diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,673 +1,2692 @@
-2022-06-15  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* cpsa.cabal (Version): Tagged as 3.6.11
-
-2022-04-07  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/{Graph,SAS,Shapes}/Main.hs: Removed extra quotes in
-	error messages.
-
-2022-03-20  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* cpsa.cabal (Version): Tagged as 3.6.10
-
-2022-03-17  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/SExpr.hs: Allow double quote and backslash in
-	strings so that S-expressions can contain Windows file names.
-
-2022-01-04  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* cpsa.cabal (Version): Tagged as 3.6.9
-
-2021-12-08  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (origUgenDiffStrand): Expunge skeletons
-	that have a value that is both uniq orig and uniq gen, and start
-	on different strands.
-
-2021-11-12  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* cpsa.cabal (Version): Tagged as 3.6.8
-
-2021-11-05  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (addBaseListener): Added a stronger
-	method for solving some Diffie-Hellman authentication tests.  The
-	method handles the special case in which the critical term has the
-	form (exp (gen) (mul ...)) and all of variables in the exponent
-	are random exponents (rndx).  It uses baseRndx to add listeners.
-
-	* src/CPSA/DiffieHellman/Algebra.hs (baseRndx): When all of the
-	factors in a group use rndx variables, baseRndx returns a list of
-	concatenations of each variable with the base term exponentiated
-	with the group without the variable.
-
-2021-11-02  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Graph/ExpandedView.hs (tdrawer): Added POV link in
-	tree.
-
-2021-09-10  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/lib/Expand.hs (macroExpand): Made it an error to apply
-	a macro to the wrong number of arguments.
-
-2021-04-27  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* cpsa.cabal (Version): Tagged as 3.6.7
-
-2021-04-27  Joshua D. Guttman  <guttman@mitre.org>
-
-	* cpsa.cabal:  Clarified package description (deorigination)
-
-2021-04-14  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* Makefile: Vastly simplified.
-
-2020-10-27  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* cpsa.cabal (Data-Files): Added missing examples to Data-files.
-
-2020-05-21  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* cpsa.cabal (Version): Tagged as 3.6.6
-
-2020-05-15  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (rlugen): Replaced an incorrect call to
-	originationNodes to be a call to generationNodes.  This fixes a
-	bug when using the ugen predicate in the conclusion of a rule.
-
-2020-05-15  Moses D. Liskov <mliskov@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (preskelWellFormed): Added a check that
-	all variables used in any terms in any declarations are used in
-	the terms of the traces.
-	* src/CPSA/Lib/Strand.hs (verbosePreskelWellFormed): Made a similar
-	change, but without removing existing more specific messages that
-	may be informative for users.
-
-2020-04-15  Joshua D. Guttman  <guttman@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (graphCloseAll):  Added a procedure to
-	generate a transitive closure that includes pairs on the same
-	strand.  Adapted gprec to use it.
-
-2020-04-02  Ian D. Kretz  <ikretz@mitre.org>
-
-	* src/CPSA/Latex/Main.hs (main): Remove number from pubk, privk
-	newcommand
-
-2020-03-31  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/SAS/SAS.hs (Preskel): Added support for unique
-	generation assertions.
-
-2020-03-20  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* cpsa.cabal (Version): Update version number as 3.6.6
-
-2020-03-04  Moses D. Liskov  <mliskov@mitre.org>
-
-	* src/CPSA/Prot/Main.hs (main): Added support for state to
-	cpsaprot.
-
-2020-02-27  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (probIsomorphic): Added quick checks for
-	thinning isomorphism check.
-
-2020-02-20  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Prot/Main.hs (main):  Improved error messages and added
-	(chmsg TERM) form for channel messages and clone for roles.
-
-2020-02-13  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Prot/Main.hs (main):  Added cpsaprot program.
-
-2020-02-11  Kretz, Ian D <ikretz@mitre.org>
-
-	* src/CPSA/LaTeX/Main.hs (main):  Added cpsa2latex program.
-
-2019-11-26  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/GoalSat/Main.hs: Added cpsagoalsat program.
-
-2019-11-12  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* cpsa.cabal (Version): Tagged as 3.6.5
-
-	* src/CPSA/Lib/Strand.hs (tryPermProb): Rewrote tryPermProb so
-	that it uses tryPerm.
-
-2019-11-08  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (tryPermProb):  Added missing invperm to
-	the third line of tryPermProb, and reenabled multistrand thinning.
-
-2019-10-21  John D. Ramsdell  <ramsdell@gootoo.mitre.org>
-
-	* cpsa.cabal (Version): Tagged as 3.6.4
-
-2019-10-21  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Utilities.hs: Used the C preprocessor to allow
-	compilation using older versions of GHC.
-
-2019-10-15  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Utilities.hs: Updated code to support the removal
-	of fail from Monad as implemented in base-4.13.0.0.
-
-2019-09-16  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (thinManyStrands):  Replaced isomorphic
-	check with probIsomorphic check so that strands in the
-	point-of-view remain unmodified.
-
-2019-08-26  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* cpsa.cabal (Version): Tagged as 3.6.3
-
-2019-08-22  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (doRewritesLoop): Fixed the code that
-	counts rewrite rules applied so it is accurate.  This allows the
-	rewrite rule limit to be correctly enforced.
-
-2019-08-21  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (runiqAt): Ensured that rewriting with
-	uniq-at fails when the index is greater than the strand length.
-
-2019-08-19  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Init/Main.hs (main): Added program cpsainit.  The
-	programs copies the files Makefile, cpsa4.mk, Make4.hs, and
-	template.lisp from the CPSA data directory to the current
-	directory, thereby easing the task of starting a CPSA project.
-
-2019-07-15  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/State.hs: Removed the label field in a transition.
-	The field was always ignored, and it causes confusion on input.
-
-2019-06-26  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (multiset): Used multisets of trace
-	briefs to reduce the number of full permutation isomorphism
-	checks.
-
-2019-06-21  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (brief): Added a summary of trace that
-	reduces the need for matching during isomorphism checking.
-
-2019-06-04  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Reduction.hs (begin): Reversed todo list after
-	running rules so as to get the output order correct.
-
-2019-05-20  Joshua D. Guttman  <guttman@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (tryPerm): Fixed bug in isomorphism
-	checking.  Checking of facts used wrong environment.
-
-2019-05-17  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/SAS/SAS.hs (leadstoKey):  Added support for leadsto in
-	shape analysis sentences.
-
-	* src/CPSA/Lib/Strand.hs (kfactVars):  Allow message variables in
-	facts that occur nowhere else.
-	(useFactVars):  Add flag that disables message variable in facts
-	that occur nowhere else and disable it, because isomorphism
-	checking is broken.
-
-	* src/CPSA/Strand.hs (doRewriteOne):  Values associated with
-	existential variables in rules are freshly generated so that
-	parameter terms can be compound.
-
-2019-04-03  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (verbosePreskelWellFormed): Added a check
-	that ensures the every variable that occurs in a fact also occurs
-	in some strand.
-
-2019-03-18  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* cpsa.cabal (Version): Tagged as 3.6.2
-
-2019-02-22  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Reduction.hs (addAnnoKey):  Added structured
-	annotations to skeleton output to facilitate post processing
-	programs besides cpsagraph.  The new keys are (aborted),
-	(satisfied-all), and (dead).
-
-2019-02-04  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Reduction.hs (step):  Changed default depth bound
-	to zero representing no bound and ignored the check when the bound
-	is not positive.  This matches what is documented in the manual.
-
-2019-01-31  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Loader.hs (badKey): Added checks for bad keys in
-	alists for skeletons ("defstrand" and "deflistener") and protocols
-	("defrole" and "defrule").
-
-2018-11-28  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Protocol.hs (AForm):  Added the leads-to predicate
-	to the goal language.
-
-2018-11-19  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Printer.hs (formula):  Added special pretty
-	printing rules for formulas in defgoal and defrule.
-
-2018-11-09  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/SAS/SAS.hs (loadPOV): Use a preskeleton as a POV
-	instead of insisting on using a skeleton.
-
-2018-08-29  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* cpsa.cabal (Version): Tagged as 3.6.1
-
-2018-08-22  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Strand.hs (doRewrites): Added a limit on the number of
-	rules that can be applied after solving an authentication test.
-
-2018-08-20  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (cleansPreskel): Cleansed facts from a
-	skeleton purged of a strand.  This changes fixes a nasty display
-	bug that occurred when a variable in a fact did not occur in any
-	strand.
-
-2018-08-06  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Loader.hs (loadConclusion):  Removed mode flag as
-	this routine should always be using mode RoleSpec.  This resolves
-	a bug in which CPSA could not load a Shape Analysis Sentence as
-	rule because equality was before the protocol specific formulas.
-
-	* src/CPSA/Lib/Strand.hs (newPreskel):  Changed newPreskel so that
-	it removed duplicates in the leadsto field when creating a new
-	preskeleton.  This resolved a bug in which CPSA produced to shapes
-	that appeared to be isomorphic, but instead, one shape had
-	duplicates in its leadsto field.
-
-2018-06-25  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* cpsa.cabal (Version): Tagged as 3.6.0
-
-2018-06-18  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (gparam): Added support for binding the
-	strand variable in gparam as opposed to relying on it being bound
-	by a role length predicate.
-
-2018-06-11  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/*.hs: Implemented geometric formulas as rewrite
-	rules.  The rules are applied after each cohort step.
-
-2018-06-05  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/*.hs: Converted the goal language to be
-	strand-oriented.  The goal language in incompatible with the
-	previous, node-oriented language.
-
-2018-05-22  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Cohort.hs (unrealizedInNode, nextNodeA):  Lifted to
-	top-level to satisfy new ambiguity check in GHC 8.4.2.
-
-2018-04-17  John D. Ramsdell  <ramsdell@mitre.org>
-
- 	* cpsa.cabal (Version): Tagged as 3.5.0.
-
-2018-03-20  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/DiffieHellman/Algebra.hs (displayVar, mkVar): Changed
-	sort names.  expn -> rndx and expr -> expt.
-
-2018-02-12  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/SAS/SAS.hs (disjoin): Changed output to (false) on an
-	empty disjunction instead of (or).
-
-2018-01-12  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Loader.hs (mkListenerRole): Changed do pattern to
-	be irrefutable.
-
-2017-09-15  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/DiffieHellman/Algebra.hs (unifyTerms):  Added calls to
-	chase before calling unifyBase which prevents a failure in the
-	occurs check.
-
-2017-09-14  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (tryPerm): Add missing inverse
-	permutation to second checkOrigs in tryPerm.
-
-2017-09-12  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* cpsa.cabal:  Removed CPSA.Lib.CPSA globally and removed
-	unnecessary dependencies.
-
-2017-08-30  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* cpsa.cabal: Added missing modules and source repository
-	location.
-
-	* src/CPSA/Lib/DebugLibrary.hs (zi): Fixed erroneous parameters in
-	Instance.
-
-2017-08-28  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Cohort.hs (solved): Fixed condition 5.  It was
-	using ct instead of ct'.
-
-2017-06-30  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Cohort.hs (transformingNode, maybeAug, nextNode):
-	Rewrote code so that it no longer fails the ambiguity check.
-
-2017-05-26  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/DiffieHellman/Algebra.hs (mkInitMatchDecis): Ensure
-	initial distinctions to not include fresh variables.
-	(partition): Do not move variables of sort expn to lhs, even if
-	they are freshly generated.
-
-2017-05-16  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/DiffieHellman/Algebra.hs (displaySubst):  Removed
-	erroneous substitution to fix substitution displaying.
-
-2017-05-10  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Strand.hs (findReplacement, permutations): Merge
-	generators so that no variable in a term has an identifier that is
-	greater than or equal to the generator.
-
-2017-02-02  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Basic/Algebra.hs (loadInvk): Added support for reading
-	(invk (privk ...)) and (invk (invk ...)).
-
-2017-01-17  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/SAS/SAS.hs (strandForm): Remove conjoin and use
-	concatMap when creating a characteristic skeleton.
-
-2017-01-09  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Loader.hs (loadPrimary): Removed generator
-	parameter that was not used.
-
-2016-12-21  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Cohort.hs (solved): In Condition 4, applied
-	substitutions to the encryption keys before testing for
-	derivability.
-
-2016-10-04  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Basic/Algebra.hs (matchRenaming):  Make isomorphism
-	check work in presence of asymmetric keys.
-
-2016-09-30  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Algebra.hs: Added isObtainedVar for variables of
-	sort expr in the Diffie-Hellman algebra.
-
-2016-08-12  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/SAS/SAS.hs (form): Changed "defsas" to "defgoal" as the
-	keyword for a generated shape analysis sentence.  This makes the
-	program compatible with its documentation.
-
-2016-06-22  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* cpsa.cabal (Extension): Add allow ambiguous types when compiling
-	with GHC 8.0.0 or later.
-
-2016-06-21  Moses D. Liskov <mliskov@mitre.org>
-
-	* src/CPSA/DiffieHellman/Algebra.hs: Added code to implement the
-	"tag" sort, which quoted string tags belong to.
-
-2016-06-03  Moses D. Liskov <mliskov@mitre.org>
-
-	* doc/examples/IKE_variants.tar.gz: Added this compressed archive
-	of IKEv1 and IKEv2 variant input files.
-
-2016-03-30  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/SAS/SAS.hs: Added support for fringe skeletons so that
-	cpassas makes use of depth limited output.  When a tree depth
-	limit is exceeded, a fringe labeled skeleton is printed.  cpsasas
-	produces a sentence with a right-hand-side that encodes both the
-	shapes and the fringe.  Thus, when cpsa is running the a tree
-	depth limit of one, cpsasas computes a cohort analysis sentence.
-
-2016-03-29  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Reduction.hs (LPreskel): Added a depth field, so
-	that CPSA aborts when the depth of one branch exceeds a bound.
-
-	* src/CPSA/Lib/Algebra.hs: Added escapeSet to Term class and remove
-	protectors, thus computing the escape set in a more
-	straightforward way.
-
-2015-11-23  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/SAS/Main.hs (main): Changed start up so that the herald
-	is read and used to find the correct algebra for further
-	processing.
-
-2015-10-02  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* doc/{index,cpsauser}.html: Added width limit of 48em.
-
-2015-07-09  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Graph/ExpandedView.hs (purgeTraces): By default, the
-	graph program now does not show traces in skeletons.  Added
-	--show-traces option to the graph program, which restores the
-	previous behavior and traces are displayed in skeletons.
-
-2015-07-02  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Algebra.hs: Added constituent to the algebra
-	interface and the algebras.  An atom is a constituent of a term if
-	the atom is among the set of atoms required to construct the term.
-	Changed occursIn so that it just applies to variables.
-
-2015-07-01  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/{Basic,DiffieHellman}/Algebra.hs (occursIn): Restricted
-	first argument of occursIn to variables and atoms and corrected
-	the implementation.
-
-2015-06-30  John D. Ramsdell  <ramsdell@mitre.org>
-
- 	* cpsa3.cabal (Version): Tagged as 3.2.2.
-
-2015-06-25  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (geq): Removed dynamic role specific test
-	because it erroneously reports violations.  The existing static
-	role specific test correctly does the job.
-
-2015-05-26  John D. Ramsdell  <ramsdell@mitre.org>
-
- 	* cpsa3.cabal (Version): Tagged as 3.2.1.
-
-	* src/CPSA/DiffieHellman/Algebra.hs (displayTerm):  Made it so
-	that CPSA prints each bltk atoms in a canonical form so that the
-	graph program draws solid arrows when it should.
-
-2015-04-27  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Loader.hs (ReturnFail): Added ReturnFail Monad so
-	that fail is correctly handled.  Added Functor and Applicative
-	instance to support GHC 7.10 base library.
-
-2015-04-20  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Characteristic.hs (mkDcls): Fixed tag for non-orig
-	and pen-non-orig.
-
-2015-04-10  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (mkListener): The role used for listener
-	strands is now the one stored in the protocol.  It has a single
-	variable x of sort mesg as its set of variables.  This change
-	enables satisfaction checking on skeleton that include listeners.
-
-2015-04-07  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (toSkeleton): Removed hulling to the
-	process of converting an input preskeleton into a skeleton as it
-	causes bugs in printing.
-
-	* Imported CPSA2's implementation of goals and expunged support
-	for subgoals.
-
-2015-03-27  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (toSkeleton): Added hulling to the
-	process of converting an input preskeleton into a skeleton.
-
-2015-03-25  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Goal.hs: Added uniq to goal language.
-
-2015-03-17  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/SAS/SAS.hs (form): Generate a defsas form rather than a
-	naked sentence.
-
-	* src/CPSA/Lib/Loader.hs (loadPrimary): Renamed equals function
-	symbol to =.
-
-2015-03-05  John D. Ramsdell  <ramsdell@mitre.org>
-
- 	* cpsa3.cabal (Version): Tagged as 3.2.0.
-
-2015-02-20  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* Added support for subgoals within point-of-view skeletons.  The
-	subgoals are evaluated for each shape, and (satisfies-a-subgoal)
-	is added to a shape when it satisfies one of the subgoals.
-
-2014-12-11  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Entry.hs (defaultOptions): Changed the default
-	strand bound to 12.
-
-2014-11-15  John D.  Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/SAS/SAS.hs: Changed the language used for a shape
-	analysis sentence to be node-oriented.
-
-2014-11-07  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Loader.hs (loadPriorities): Allowed priority
-	declarations on state synchronization nodes other than
-	initiatizers.
-
-2014-11-07  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Cohort.hs (explainable): Added the nodes reachable
-	by strand succession so that a transition can be explained by a
-	previous transition within a strand.
-
-2014-10-31  John D. Ramsdell  <ramsdell@mitre.org>
-
-	*  Changed the name of the logic producing program to cpsa3sas.
-
-2014-09-01  John D.  Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/Strand.hs (noStateSplit): An observer node should have
-	at most one transition node after it too.
-
-2014-08-31  John D.  Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/State.hs: Made labels optional.  Use "tran" for
-	state synchronization events with labels, and "sync" for ones
-	without.
-
-2014-08-29  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/Lib/*.hs: Added support for analyzing protocols with
-	state.  A state synchronization event sync was added to the events
-	that can occur in a trace, along with a new method for state-based
-	augmentation.  An example using sync events is in
-	tst/envelope.scm.
-
-2014-08-26  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* cpsa3.cabal:  Removed cpsaparameters program.
-
-2014-08-25  John D.  Ramsdell  <ramsdell@mitre.org>
-
-	* src/split.py: Added the skeleton split program that copies the
-	skeletons in a CPSA source file into separate files.
-
-2014-08-23  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/cpsajson.py (load): Added a reader in Python for JSON
-	produced by CPSA's pretty printer program cpsa3pp -j.
-
-2014-08-22  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPSA/JSON/Main.hs: Added the program cpsa3json that
-	translates JSON encoded CPSA into CPSA S-Expressions.  It expects
-	the JSON input to follow the conventions of the JSON produced by
-	the cpsapp program when given the -j option.
-
-	* src/CPSA/Lib/SExpr.hs (numOrSym): Enabled parsing a number with
-	a plus sign by removing the sign before translating the string of
-	digits into a number.
-
-2014-06-12  John D.  Ramsdell  <ramsdell@mitre.org>
-
-	* cpsa3.cabal (Version): Tagged as 3.0.3.
-
-2014-02-06  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* cpsa3.cabal (Version): Tagged as 3.0.2.
-
-2013-12-14  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* cpsa3.cabal (Version): Tagged as 3.0.1.
-
-	* cpsa3.cabal (Extra-Source-Files): Added more DH tests
-
-2013-03-12  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPET/Annotations/Annotations.hs (obligation): Replaced an
-	irrefutable pattern that raised an exception with a maybeToList.
-
-2013-02-21  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* src/CPET/DiffieHellman/Algebra.hs: Added the Diffie-Hellman
-	algebra based on Abelian groups.
-
-	* src/CPET/Basic/Algebra.hs:  Removed support for GHC 6.x.
-
-2013-02-06  John D. Ramsdell  <ramsdell@mitre.org>
-
-	* cpet.cabal (Version): Tagged as 0.0.0.
+2022-04-14  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Signature.hs (loadSig): Improved language field loading
+	error messages.
+
+2022-04-08  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Loader.hs (findPreskel, findGoal): Updated to use
+	protocol's signature.
+
+2022-04-07  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/{Graph,SAS,Shapes}/Main.hs: Removed extra quotes in
+	error messages.
+
+2022-03-25  Joshua D. Guttman  <guttman@mitre.org>
+
+	* src/CPSA/Loader.hs (loadRole etc):  Distinguish state-specific
+	generated rules from other generated rules so that only the state
+	rules will be omitted if state is not in use.
+
+2022-03-22  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Loader.hs (hasLocn): Omit adding state rules in a
+	protocol that makes no use of state.
+
+2022-03-17  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/SExpr.hs: Allow double quote and backslash in
+	strings so that S-expressions can contain Windows file names.
+
+	* src/CPSA/Loader.hs (loadLang): Optionally load a lang field in a
+	protocol.
+
+2022-02-08  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Graph/SVG.hs (kbutton): Made realized skeletions print
+	in blue and shapes are now bold.
+
+2021-12-08  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (origUgenDiffStrand): Flush skeletons that
+	have a value that is both uniq orig and uniq gen, and start on
+	different strands.
+
+2021-11-02  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Graph/ExpandedView.hs (tdrawer): Added POV link in
+	tree.
+
+2021-10-27  Joshua D. Guttman  <guttman@mitre.org>
+
+	* src/CPSA/Strand.hs:  Fixed subtle bug causing generalization to
+	fail when uniqs, nons, and pnons can be omitted.  Problem was that
+	the code for these operations modifies the preskeleton data
+	structure directly, just deleting the basic value.  But the
+	preskeleton datastructure as computed fields, especially the gist,
+	that need to be recomputed.  RenewPreskel calls newPreskel to
+	recompute these fields correctly.
+
+2021-09-14  Joshua D. Guttman  <guttman@mitre.org>
+
+	* src/CPSA/Loader.hs:  Modified the transition rules.  A load
+	event will now be asserted to be a transition event in a strand
+	only if that strand is long enough to contain a matching stor.
+	Previously it counted as a transition as long as the role
+	contained a matching stor.  This should avoid unwanted
+	consequences when roles may match up to a height that contains the
+	load but not the subsequent store.
+
+2021-09-10  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/lib/Expand.hs (macroExpand): Made it an error to apply
+	a macro to the wrong number of arguments.
+
+2021-06-26  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Roletran/Emitter.hs (displayKind): Reverted to coarse
+	program variable types for procedures.
+
+2021-06-16  Joshua D. Guttman  <guttman@mitre.org>
+
+	* src/CPSA/Roletran/Protocol.hs:  Distinguished generated rules
+	and user-written rules in the protocol datatype.  Caused Loader to
+	separate the two kinds of rules, and Displayer to display the
+	generated rules as defgenrule.
+
+2021-05-07  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* Roletran correctly handles long term keys, key inverses, and
+	named asymmetric keys.
+
+2021-04-27  Joshua D. Guttman  <guttman@mitre.org>
+
+	* clarified package description (deorigination)
+
+2021-04-14  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* Makefile: Vastly simplified.
+
+	* CPSA/Roletran/Derivation.hs (deriveEvent): Added missing checks
+	that determine if sent messages and returned messages are
+	receivable.
+
+2021-03-10  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* CPSA/Roletran/Emitter.hs (Kind):  Added refined program
+	variable types for procedures.
+
+2021-01-12  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* CPSA/Roletran/Derivation.hs (deriveInputs): Allowed inputs to
+	contain any term as long as they can be reduced using previous
+	inputs.
+
+2020-11-10  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* coq: Changed the representation of procedures to use statement
+	lists.
+
+2020-10-27  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/RoleCoq/Main.hs: Added program cpsa4rolecoq that
+	translates the roles in the first protocol of CPSA input into Coq.
+
+	* src/CPSA/Coq/Main.hs: Added program cpsa4coq that translates the
+	output of cpsa4roletran into Coq.
+
+	* coq: Added Coq libraries that can be used to verify that an
+	output of cpsa4roletran is valid.
+
+2020-09-10  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Roletran/Main.hs: Added cpsa4roletran
+
+2020-08-28  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Graph/Preskeleton.hs (nodeColor):  Added colors for
+	load and stor.
+
+2020-08-10  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 4.3.0
+
+2020-04-20  Joshua D. Guttman  <guttman@mitre.org>
+
+	* src/CPSA/Strand.hs (isAuth):  Added locations with point
+	structure and uniqueness assumptions.
+
+2020-04-02  Ian D. Kretz  <ikretz@mitre.org>
+
+	* src/CPSA/Latex/Main.hs (main): Remove number from pubk, privk
+	newcommand
+
+2020-03-05  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Extra-Source-Files): Remove defunct CGI scripts.
+
+2020-03-04  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Prot/Main.hs (maybeExpand): Added -e option that causes
+	cpsa4prot to expand macros before it generates protocols.
+
+2020-02-27  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (probIsomorphic): Added quick checks for
+	thinning isomorphism check.
+
+2020-02-20  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Prot/Main.hs (main):  Improved error messages and added
+	(chmsg TERM) form for channel messages.
+
+2020-02-18  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Prot/Main.hs (msg): Added role cloning in cpsa4prot.
+
+	* doc/cpsa4.mk: Added preprocessing rule for *.prot files that
+	invoke cpsa4prot.
+
+	* src/CPSA/Prot/Main.hs (main): Added cpsa4prot program that
+	translates protocols in Alice and Bob notation into defprotocol
+	syntax.
+
+2020-02-15  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 4.2.3
+
+2020-02-14  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* Makefile: Updated for Cabal 3.0.0.0
+
+	* cpsatst: Updated for Cabal 3.0.0.0
+
+2020-02-14  Ian D. Kretz  <ikretz@mitre.org>
+
+	* src/CPSA/Latex/Main.hs: Added the cpsa2latex program.
+
+2019-12-19  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/src/cpsafoundation.tex: Added document titled "Strand Spaces
+	with Channels and Rules".
+
+2019-12-06  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 4.2.2
+
+2019-11-27  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/GoalSat/Main.hs (main):  Added the cpsa4goalsat program.
+
+2019-11-14  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (soothePreskel):  Fixed the filters for
+	channels by testing with all channel variables rather than all
+	message variables.
+
+2019-11-12  John D. Ramsdell  <ramsdell@gootoo.mitre.org>
+
+	* src/CPSA/Strand.hs (tryPermProb): Rewrote tryPermProb so
+	that it uses tryPerm.
+
+2019-10-21  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 4.2.1
+
+	* src/CPSA/Lib/ReturnFail.hs: Used the C preprocessor to allow
+	compilation using older versions of GHC.  In particular, defined
+	MonadFail to be Monad when the base library is less than 4.13.
+
+2019-10-15  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/ReturnFail.hs: Updated code to support the removal
+	of fail from Monad as implemented in base-4.13.0.0.
+
+2019-09-16  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (probIsomorphic): In thinning, replaced
+	isomorphic check with probIsomorphic check so that strands in the
+	point-of-view remain unmodified.
+
+2019-09-11  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (dropInbnd):  Enabled strong pruning as a
+	compile time switch.  Also, when using either form of pruning,
+	thinning is disabled.
+
+2019-09-10  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (prune):  Added pruning as a compile time
+	option controlled by Strand.usePruning.  When True, CPSA prunes
+	before it attempts to thin.
+
+2019-09-05  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (fperms):  Added support for variables that
+	occur in facts but do not occur in strands.  The tricky part was
+	making isomorphism checking work, and fperms is the key function.
+
+2019-09-03  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Reduction.hs (step): Added goals-sat option (-g) so
+	that CPSA4 stops pursuing a branch when a set of goals are
+	satisfied.
+
+2019-08-26  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 4.2.0
+
+2019-08-22  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (doRewritesLoop): Fixed the code that counts
+	rewrite rules applied so it is accurate.  This allows the rewrite
+	rule limit to be correctly enforced.
+
+2019-08-21  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (runiqAt): Ensured that rewriting with
+	uniq-at fails when the index is greater than the strand length.
+	(rluniq): Fixed existing check to using kunique instead of knon.
+
+2019-08-19  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Init/Main.hs (main): Added program cpsainit.  The
+	programs copies the files Makefile, cpsa4.mk, and Make4.hs from
+	the CPSA data directory to the current directory, thereby easing
+	the task of starting a CPSA project.
+
+2019-08-12  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* Added support for channels.
+
+2019-08-08  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (krules): Added a field in Preskel that
+	tracks the names of applied rules.
+
+2019-06-26  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (multiset): Used multisets of trace
+	briefs to reduce the number of full permutation isomorphism
+	checks.
+
+2019-06-21  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (brief): Added a summary of trace that
+	reduces the need for matching during isomorphism checking.
+
+2019-06-04  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Reduction.hs (begin): Reversed todo list after running
+	rules so as to get the output order correct.
+
+2019-05-20  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (tryPerm):  Fixed bug in isomorphism
+	checking.  Second check of facts used wrong permutation.
+
+2019-05-17  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (doRewriteOne):  Values associated with
+	existential variables in rules are freshly generated so that
+	parameter terms can be compound.
+
+2019-04-03  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (verbosePreskelWellFormed):  Added a check
+	that ensures the every variable that occurs in a fact also occurs
+	in some strand.
+
+2019-03-13  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/src/cpsaspec.tex (Critical Position Solved): Corrected item
+	3 in the definition and improved its presentation.
+
+2019-02-22  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Reduction.hs (addAnnoKey):  Added structured
+	annotations to skeleton output to facilitate post processing
+	programs besides cpsagraph.  The new keys are (aborted),
+	(satisfied-all), and (dead).
+
+2019-02-04  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Reduction.hs (step): Changed default depth bound to
+	zero representing no bound and ignored the check when the bound is
+	not positive.
+
+2019-01-31  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Loader.hs (badKey): Added checks for bad keys in alists
+	for skeletons ("defstrand" and "deflistener") and protocols
+	("defrole" and "defrule").
+
+2018-11-19  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Printer.hs (formula):  Added special pretty
+	printing rules for formulas in defgoal and defrule.
+
+2018-11-13  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (firstSkeleton): Added a field pprob to
+	Preskel and use it record the strand map from a preskeleton to the
+	first skeleton.  This is used when printing the strand map of a
+	skeleton on the fringe.
+
+2018-11-09  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/SAS/SAS.hs (loadPOV): Use a preskeleton as a POV
+	instead of insisting on using a skeleton.
+
+2018-08-22  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (doRewrites): Added a limit on the number of
+	rules that can be applied after solving an authentication test.
+
+2018-08-20  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (soothePreskel): Made soothe cleans facts.
+
+	* src/CPSA/Strand.hs (tryPerm): Added case for reverse match of
+	facts.
+
+2018-08-06  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Loader.hs (loadConclusion):  Removed mode flag as
+	this routine should always be using mode RoleSpec.  This resolves
+	a bug in which CPSA could not load a Shape Analysis Sentence as
+	rule because equality was before the protocol specific formulas.
+
+2018-06-18  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (gparam): Added support for binding the
+	strand variable in gparam as opposed to relying on it being bound
+	by a role length predicate.
+
+2018-06-11  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version):  Tagged as version 4.1.1
+
+2018-05-31  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/src/cpsagoals.tex: Added DoorSEP explanation as Section 6.2.
+
+2018-05-30  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Reduction.hs (begin): Change "Not in theory" message to
+	"Not closed under rules".
+
+2018-05-29  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Cohort.hs (maximize): Eliminated generalizations that
+	fail to satisfy the rules of the skeleton's protocol.  Otherwise,
+	generalizations can undo the effects of applying rules.
+
+2018-05-21  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (changeLocations,deleteNodeRest): Flushed
+	facts that referred to variables that no long exists a skeleton's
+	instances.
+
+2018-05-15  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (doRewriteOne):  Ensured that the skeletons
+	produced by rule application are well-formed.  When rules produce
+	non well-formed skeletons, havoc ensues.
+
+2018-03-20  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* tst/fluffy_draft03_gske.scm (fluffy-rule): Added fluffy example
+	with some rules.
+
+2018-02-14  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version):  Tagged as version 4.1.0
+
+2018-02-13  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Data-Files): Removed the overview document.
+
+2018-02-12  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* Many files:  Removed support for nodes in facts.
+
+2018-02-09  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Cohort.hs (filterSame):  Added a filter that removes
+	skeletons in the cohort that are isomorphic to the parent.  Rule
+	application produced the skeletons filtered out.
+
+2018-02-07  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/src/cpsagoals.tex (section{Rules}):  Added a description of
+	rules and the DoorSEP example.
+
+	* src/CPSA/{Strand.hs,...}: Replaced unsorted rule language with
+	one that uses the security goal language.  This means a rule can
+	refer to all of the function symbols provided by the message
+	algebra.
+
+2018-01-26  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/SAS/SAS.hs (Preskel): Added support for facts in shape
+	analysis sentences.
+
+2018-01-22  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (doForm, uMatchForm): Use transitive closure
+	of prec relation instead of just the contents of the ordering
+	field.  Otherwise, rules can loop.
+
+	* src/CPSA/Strand.hs (doForm): In case of UPrec, fail when strand
+	index is too large, instead of raising an error.
+
+2018-01-17  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (deleteNode): Update facts correctly when
+	deleting a node.
+
+	* src/CPSA/Reduction.hs (begin): Start up an analysis by applying
+	as many rules as possible.  Also, added protocol transformations
+	test case.
+
+2018-01-15  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Loader.hs (loadUForm,loadUTerm): Improved loader error
+	messages for rules.
+
+2018-01-14  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/{*.tex,*.mp,Makefile}: Moved LaTeX sources to doc/src.
+
+2018-01-13  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/*.hs: Added rules to protocols enabling rewriting based
+	on geometric formulas.
+
+	* doc/cpsauser.html: Added a description of rules and facts.
+
+2018-01-12  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Loader.hs (mkListenerRole): Changed do pattern to be
+	irrefutable.
+
+2018-01-10  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/{cpsauser.html,cpsaprimer.tex}: Added a description of the
+	displaced test kind in the operation field.
+
+2018-01-04  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Loader.hs (loadConclusion): Added false as an alias for
+	(or) in the goal language.
+
+2017-12-30  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (Fact): Added facts to skeletons and the goal
+	language.
+
+2017-08-18  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* Updated README and doc/cpsauser.html.
+
+2017-05-16  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Algebra.hs (displaySubst): Removed erroneous
+	substitution to fix substitution displaying.
+
+2017-05-10  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (findReplacement, permutations): Merge
+	generators so that no variable in a term has an identifier that is
+	greater than or equal to the generator.
+
+2017-05-03  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Strand.hs (soothPreskel): Modified isomorphism check
+	and thinning so that it no longer uses matchRenaming and
+	identityEnvFor, which have been removed from the algebra module.
+	The new version of thinning follows the definition of thinning
+	more closely, and the spec has been updated to reflect the change.
+
+2017-02-02  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Algebra.hs (loadInvk): Added support for reading (invk
+	(privk ...)) and (invk (invk ...)).
+
+2017-01-27  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsagoals.tex: Updated document for the strand-oriented
+	logic language.
+
+	* cpsa.cabal (Version): Tagged as version 4.0.0
+
+2017-01-22  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsaspec.tex (chapter{Shape Analysis Sentence}): Update
+	chapter for the strand-oriented logic language.
+
+2017-01-19  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Characteristic.hs (strdRoleLength): Allowed two role
+	length atoms with the same strand as long as they agree on the
+	role.
+
+2017-01-17  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/SAS/SAS.hs (paramForm): Remove conjoin and use
+	concatMap when creating a characteristic skeleton.
+
+2017-01-09  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* Changed the goal language to one that is strand-oriented.
+
+2016-12-23  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/*.hs: Added Haddock comments.
+
+	* cpsa4.cabal: Reorganized source directory structure.  CPSA
+	specific modules are now in src/CPSA.
+
+	* src/CPSA/Lib/Cohort.hs (solved): In Condition 5, applied
+	substitutions to the encryption keys before testing for
+	derivability.
+
+	* src/CPSA/Lib/Algebra.hs (matchRenaming): Made isomorphism check
+	work in presence of asymmetric keys.
+
+	* src/CPSA/Lib/Algebra.hs (loadInvk): Enabled reading of invk
+	(pubk ...).
+
+	* tst/reflect.scm: Added reflect protocol example.
+
+	* src/CPSA/Lib/Algebra.hs (mkVar): code cleanup: better version of
+	mkVar for loadVar
+
+	* Enabled compilation using GHC 8.01 by removing the Algebra
+	class.
+
+	* Purged programs cpsaannotations and cpsaparameters.
+
+2016-04-13  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa4.cabal (Version): Updated version number to 4.0.0.
+
+	* Made it so that cpsa4diff, cpsa4shapes, cpsa4graph, cpsa4pp, and
+	cpsa4json do not rely on CPSA.Lib.Algebra.
+
+	* src/CPSA/Graph/Main.hs: Purged support for infix notation.
+
+2016-03-30  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/SAS/SAS.hs: Added support for fringe skeletons so that
+	cpassas makes use of depth limited output.  When a tree depth
+	limit is exceeded, a fringe labeled skeleton is printed.  cpsasas
+	produces a sentence with a right-hand-side that encodes both the
+	shapes and the fringe.  Thus, when cpsa is running with a tree
+	depth limit of one, cpsasas computes a cohort analysis sentence.
+
+2016-03-29  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Reduction.hs (LPreskel): Added a depth field, so
+	that CPSA aborts when the depth of one branch exceeds a bound.
+
+	* src/CPSA/Lib/Algebra.hs: Add escapeSet to Term class and remove
+	protectors, thus computing the escape set in a more
+	straightforward way.
+
+2016-01-12  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Description): Added sentence saying CPSA was
+	designed and implemented at The MITRE Corporation.
+
+	* cpsa.cabal (Version): Tagged as version 2.5.4
+
+2015-10-02  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/{index,cpsauser}.html: Added width limit of 48em.
+
+2015-08-21  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/*/*.h:  Removed leading tabs.
+
+	* src/CPSA/Annotations/Formulas.hs (EitherS): Made EitherS an
+	instance of Applicative.
+
+	* cpsa.cabal (Version): Tagged as version 2.5.3
+
+2015-08-07  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsagoals.tex: Corrected the definition of satisfaction.
+
+2015-08-06  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsagoals.tex: Made minor fixes due to another review.  Also
+	fixed the definition of a characteristic skeleton.
+
+2015-08-04  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsaprimer.tex (section{Macros}\label{sec:macros}):  Added
+	text describing splicing.
+
+2015-07-27  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* README: Updated to reflect that Haskell Platform should always
+	be used.
+
+	* cpsa.cabal (Version): Tagged as version 2.5.2
+
+2015-07-09  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Graph/ExpandedView.hs (purgeTraces): Added -p flag to
+	the graph program.  When present, the graph program purges traces
+	in skeletons it prints.
+
+2015-07-08  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 2.5.1
+
+2015-06-30  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Basic/Algebra.hs (occursIn): Restricted first argument
+	of occursIn to variables as the implementation returns incorrect
+	answers for other cases.  The code was called with a variable in
+	its first argument, so this correction does not change any
+	results.
+
+2015-06-25  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (geq): Removed dynamic role specific test
+	because it erroneously reports violations.  The existing static
+	role specific test correctly does the job.
+
+2015-06-18  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/{cpsaprimer,cpsagoals}.tex: Repaired errors and made
+	improvements in response to a review of this document.
+
+2015-05-21  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 2.5.0
+
+2015-04-27  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Loader.hs (ReturnFail): Added ReturnFail Monad so
+	that fail is correctly handled.  Added Functor and Applicative
+	instance to support GHC 7.10 base library.
+
+2015-04-20  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Source-Repository): Added github source repository.
+
+2015-04-10  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (mkListener): The role used for listener
+	strands is now the one stored in the protocol.  It has a single
+	variable x of sort mesg as its set of variables.  This change
+	enables satisfaction checking on skeleton that include listeners.
+
+2015-04-02  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (hull): Removed the hulling by
+	deorigination mode and returned to the hulling by compression
+	algorithm.  Hulling is only used on the initial preskeleton.
+
+	* src/CPSA/SAS/SAS.hs (form): Changed the output form from defsas
+	to defgoal.
+
+2015-03-30  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Loader.hs (loadPrimary): Improved the error
+	messages for ill-formed atomic formulas.
+
+	* src/CPSA/SAS/SAS.hs (loadPOV, loadOtherPreskel): Flushed the
+	check that an atom assumed to uniquely originate must originate in
+	a skeleton.  In this case, cpsasas generates a uniq assertion
+	rather than a uniq-at assertion.
+
+2015-03-27  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Loader.hs (findGoal): Allow more than one sentence
+	in a defgoal.
+
+	* src/CPSA/SAS/SAS.hs (Preskel): Added pnon predicate symbol.
+
+	* src/CPSA/Lib/Strand.hs (toSkeleton): Added hulling to the
+	process of converting an input preskeleton into a skeleton.
+
+2015-03-26  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/{Characteristic,Strand,Loader}.hs: Added new
+	toplevel form: defgoal.  The characteristic skeleton of the
+	antecedent in the goal is extracted and used as the initial
+	skeleton.
+
+2015-03-24  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/{Reduction,Strand,Loader}.hs: Made it so that when
+	a shape does not satisfy a goal, an environment showing why is
+	printed.  For each goal, the output is yes when the goal is
+	satisfied or (no (VAR VAL)...).
+
+2015-03-20  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/{Goal,Strand,Loader}.hs: Added goal loading and
+	satisfaction checking.  When a shape satisfies all goals in a
+	point-of-view skeleton, the shape is annotated with
+	(satifies-all-goals).
+
+2015-03-19  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Basic/Algebra.hs (Term): Added node variables and
+	constants for security goals.
+
+	* src/CPSA/SAS/SAS.hs (form): Changed the format of a shape
+	analysis sentences.  Instead of a bare formula, the formula is
+	wrapped in a defsas form, as in (defsas PROT SAS).  Removed the
+	protocol from role position predicates and parameter predicates.
+	Replaced function symbols uniq and sprec with uniq-at and str-prec
+	respectively.
+
+2015-03-17  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/SAS/SAS.hs (displayEq): Use = for function symbol
+	instead of equal.
+
+2014-11-24  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/prover9.pl: Added missing mesg predicates in output.
+
+2014-11-17  John D.  Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 2.4.0
+
+2014-11-15  John D.  Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/SAS/SAS.hs (nodeForm): Fixed bug where some role
+	predicates were mistakenly omitted.
+
+2014-11-13  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsaspec.tex: Updated the appendix of shape analysis
+	sentences to agree with what is produced by cpsasas.
+
+2014-11-04  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/SAS/SAS.hs (reduce): Added a function that eliminates
+	trivial homomorphism equations by substituting equivalent
+	variables and simplifying.
+
+2014-10-31  John D. Ramsdell  <ramsdell@.mitre.org>
+
+	* cpsasas: Added a program that produces shape analysis sentences
+	using the goal language used with protocol transformations.  This
+	language is superior to the one used by the cpsalogic program.
+
+	* cpsalogic: Removed this program as it has been replaced with
+	cpsasas.
+
+2014-09-05  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 2.3.5
+
+2014-09-02  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/unsorted.pl (decl_as_pairs):  Fixed bug in the case of
+	variables of sort mesg.
+
+2014-08-25  John D.  Ramsdell  <ramsdell@mitre.org>
+
+	* src/split.py: Added the skeleton split program that copies the
+	skeletons in a CPSA source file into separate files.
+
+2014-08-23  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/cpsajson.py (load): Added a reader in Python for JSON
+	produced by CPSA's pretty printer program cpsa3pp -j.
+
+2014-08-21  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/JSON/Main.hs: Added the program cpsajson that
+	translates JSON encoded CPSA into CPSA S-Expressions.  It expects
+	the JSON input to follow the conventions of the JSON produced by
+	the cpsapp program when given the -j option.
+
+	* src/CPSA/Lib/SExpr.hs (numOrSym): Enabled parsing a number with
+	a plus sign by removing the sign before translating the string of
+	digits into a number.
+
+2014-06-06  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 2.3.4
+
+	* doc/cpsauser.html:  Commented out Diffie-Hellman algebra
+	description.
+
+	* src/CPSA/Lib/Main.hs (useDiffieHellman): Added a compile time
+	switch that is used to disable the Diffie-Hellman algebra in a
+	release.
+
+2014-04-30  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Expand.hs:  Added splicing to the macro expander.
+	The splice symbol is ^.
+
+2014-04-21  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/DiffieHellman/Algebra.hs (agSolve): Added missing omit
+	when generating new equation.
+
+	* src/CPSA/DiffieHellman/Algebra.hs (genVars): Removed code that
+	conditionally generates new variables because the condition was
+	not reliable.
+
+2014-03-07  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/DiffieHellman/Algebra.hs: Changed the sort structure
+	of exponents.  The sort of exponents is now expr, and there is as
+	subsort for basis elements called expn.  Unification and matching
+	have been change so as to respect this sort structure.  This
+	change allows CPSA to solve Diffie-Hellman key exchange.
+
+2014-02-26  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Algebra.hs (specialize): Expunged specialize from
+	the interface and the algebras.
+
+2014-02-25  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/DiffieHellman/Algebra.hs (isAcquiredVar): Changed the
+	definition so that both variables of sort base and sort mesg are
+	acquired.
+
+	* src/CPSA/Lib/Algebra.hs (Term): Renamed isMesgVar to
+	isAcquiredVar.
+
+2014-02-24  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal:  Expunged Simple Diffie-Hellman and
+	Diffie-Hellman No Reciprocal algebras.
+
+2014-02-06  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 2.3.3
+
+2014-02-05  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs: Purged code for pruning.
+
+	* doc/cpsaspec.tex: Documented thinning and removed material on
+	pruning.
+
+2014-02-04  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (useThinning): Set flag to True so as use
+	thinning by default.
+
+2014-01-07  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 2.3.2
+
+2013-12-27  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/prover9.pl: Reverted to work with strings as tags fixing a
+	bug introduced in version 2.3.1.
+
+2013-12-14  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Extra-Source-Files):  Sorted the files.
+
+2013-10-15  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 2.3.1
+
+	* src/unsorted.pl: Added a missing occurs check and substitution.
+
+2013-10-11  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (prioritizeVertices): Reversed the sort
+	predicate so that high numbered priorities are considered first.
+
+2013-10-09  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* tst/epmo_acctnum.lisp: Stopped running this example as part of
+	the standard test suite because it now takes nearly 5000 steps.
+
+	* src/CPSA/Lib/Algebra.hs: Removed moreGeneral because the mgs
+	filter alleviates the need for this function.
+
+2013-10-08  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/{Strand.hs,Cohort.hs} (mgs): Replaced filters with
+	a most general homomorphism filter.
+
+2013-10-05  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (mga): Added a most general augmentation
+	filter as the MGU filter added to transformingNode did not remove
+	enough.
+
+2013-10-01  Moses D. Liskov  <mliskov@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (transformingNode): Applied the MGU
+	filter to the result of just one carried binding, not all of them.
+
+2013-10-01  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Extra-Source-Files): Deleted Diffie-Hellman tests as
+	support for DH never worked.
+
+2013-09-23  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/sexpr.pl: Reverted back to the case in which tags are
+	encoded as SWI-Prolog strings.
+
+2013-09-11  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Algebra.hs: Removed heldBy from the interface.
+
+	* src/CPSA/*/*.hs: Removed contexts from all datatypes.  This
+	language extension is deprecated and will soon be removed.
+
+2013-09-09  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/DiffieHellman/Algebra.hs (groupChase):  Add missing
+	case of chasing though group variables.
+
+2013-07-23  John D. Ramsdell  <ramsdell@mitre.org>
+
+        * cpsa.cabal (Version):  Tagged as version 2.3.0
+
+	* src/CPSA/Lib/*.hs:  Added priorities to help guide the search.
+
+	* src/CPSA/Lib/Protocol.hs (mkRole): Positions are now used to
+	specify non-origination introductions rather than heights.
+
+	* doc/cpsaspec.tex: Reverted back to zero-based indexing.
+
+	* doc/cpsauser.tex: Removed Diffie-Hellman documentation as the
+	implementation of the algebra continues to have serious issues.
+
+2013-07-22  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Graph/Tree.hs (makeTree): Skeletons without children
+	that are not marked "empty cohort" are now counted as live.
+
+2013-06-13  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Algebra.hs: Added isMesgVar for acquires check.
+
+	* src/CPSA/Lib/Strand.hs (thinStrand, thinManyStrands):  Added
+	transitive reduction before thinning.
+
+	* src/CPSA/*/Algebra.hs:  Removed support for GHC 6.x.
+
+2013-04-23  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/prover9.pl: Removed erroneous quotes that were added to the
+	translation of constants.
+
+2013-04-10  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/prover9.pl: Changed the formula translation algorithm so
+	that predicates for the sort declarations of variables are added
+	to generated formulas.  Previously, the sort information was
+	ignored.
+
+2013-03-29  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/DiffieHellman/Algebra.hs (mgu): Changed so function
+	performs substitutions on all vars on LHS, not just the ones not
+	that were originally on the LHS.
+
+2013-03-12  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Annotations/Annotations.hs (obligation): Replaced an
+	irrefutable pattern that raised an exception with a maybeToList.
+
+2013-03-06  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/DiffieHellman/Algebra.hs (sLoad):  Added code that
+	allows testing of unification and matching in GHCi.
+
+2013-02-28  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/*.html:  Convert to HTML 5 mainly by eliminating the DOCTYPE
+	element.
+
+	* cpsa.cabal (Version):  Tagged as version 2.2.13
+
+2013-02-12  Paul D. Rowe  <prowe@mitre.org>
+
+	* src/perm.pl:  Fix permutation bug.
+
+2013-01-22  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* tst/Makefile ($EXE): Added optional extension for Cygwin users.
+	On Cygwin, put "export EXE=.exe" in a startup file.
+
+2012-11-13  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsaspec.tex (chapter{Generalization}): Corrected the
+	definition of a location in the text describing variable
+	separation.
+
+2012-11-09  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version):  Tagged as version 2.2.12.
+
+2012-11-06  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/index.tex:  Added a section on useful tips.
+
+	* doc/cpsauser.tex:  Added description of Emacs Compilation Mode
+	support.
+
+2012-10-30  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/cpsaperm.scm: Added a Scheme program that renumbers the
+	strands in a skeleton while preserving all information in the
+	skeleton.
+
+2012-10-29  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsaintroslides.tex:  Added introductory slides for new
+	users.
+
+2012-10-26  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/cpsa.pl: Added support for penetrator non-origination
+	assumptions.
+
+2012-10-25  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/perm.pl: Added a program that renumbers the strands within a
+	skeleton.  This program also strips the skeleton of non-essential
+	information.
+
+2012-10-02  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Pretty/Main.hs (pjson):  Added JSON output option.
+
+2012-08-24  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version):  Tagged as version 2.2.11.
+
+	* doc/cpsaprimer.tex (Appendix B): Added a discussion on shapes
+	that CPSA fails to find.  It explains that the missing shapes only
+	occur when interpreting roles unnaturally.
+
+	* tst/incompleteness_example.scm: Added the example used in the
+	primer that shows a shape CPSA fails to find.
+
+2012-08-22  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Expand.hs (include): Added a top-level form that
+	includes source file while performing macro expansion.
+
+2012-08-06  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Reduction.hs (breadth): Added comments describing
+	loop variables.
+
+	* src/CPSA/Lib/Strand.hs (skeletonize): Expunged hulling by
+	compression code.
+
+2012-08-03  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Reduction.hs (breadth,step): Added the tobig
+	variable so that all skeletons are produced that are below the
+	strand bound.
+
+	* src/CPSA/Lib/Main.hs (main,select,go): Added source file name to
+	"All input read" comment.
+
+2012-06-28  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version):  Tagged as version 2.2.10.
+
+	* src/CPSA/Lib/Entry.hs (tryIO): Made error option in return value
+	a string so that error messages are correctly parsed by Emacs.
+
+2012-06-06  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Entry.hs (tryIO): The use of System.IO.Error.try
+	has been deprecated, so CPSA.LIB.Entry now exports a replacement.
+
+2012-06-06  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* {doc,tst}/Make.hs: Changed imports so that ExitCode and system
+	come from System.Exit and System.process, not System, which is
+	part of the haskell98 package that is now hidden by default.
+
+2012-05-25  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version):  Tagged as version 2.2.9.
+
+	* src/CPSA/Lib/Reduction.hs (begin, search): Collapsing is
+	performed as a pre-processing stage before any tests are solved.
+	As a result, there is no need for hulling, and it has been
+	disabled.
+
+2012-05-24  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (augment): Removed the ability to turn
+	off displacement.
+
+	* src/CPSA/Lib/Strand.hs (augmentAndDisplace): Put skeletons
+	produced by displacement before the ones created by augmentation.
+
+2012-05-23  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/*.hs:  Added penetrator non-origination
+	assumptions (pen-non-orig).
+
+2012-05-22  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/SimpleDiffieHellman/Algebra.hs (normalize): Equality,
+	comparison, and substitution normalize exponentiated values.
+
+2012-05-21  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/SimpleDiffieHellman/Algebra.hs (idSubst, substChase):
+	Produce canonical form for double exponents.
+
+	* src/CPSA/SimpleDiffieHellman/Algebra.hs (equalTerm)
+	(compareTerm): Compare double exponents using lists for efficiency
+	and readability.
+
+2012-05-14  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/DiffieHellmanNoReciprocal/LinDiophEq.hs: Used the
+	method in the paper by Contejean and Devie for solving an
+	inhomogeneous equation using the algorithm for the homogeneous
+	equation solver.  The previous version buggy.
+
+2012-05-04  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Graph/SVG.hs (kbutton): In a tree drawing, the label of
+	a shape is now blue.
+
+2012-02-27  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version):  Tagged as version 2.2.8.
+
+2012-02-23  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (separateVariablesLimit): Added a hard
+	coded limit to the number of attempts to perform variable
+	separation during generalization.
+
+2012-02-22  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsa.mk,doc/Make.hs: Removed rules for *.sch files.
+
+2012-02-02  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (usePrunedStrandNotInPOV): Turned this
+	flag on.  It never was supposed to be off except for when
+	experimenting.
+
+2012-02-01  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version):  Tagged as version 2.2.7.
+
+	* doc/cpsasdha.tex: Added a document describing the current
+	implementation of a Diffie-Hellman algebra.
+
+2012-01-25  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/*/Algebra.hs (encryptions): Used the C preprocessor to
+	all support for GHC 6.x while eliminating the annoying warnings
+	because Data.Map.foldWithKey has been deprecated in newer versions
+	of GHC.
+
+	* src/CPSA/Lib/Algebra.hs (encryptions): Changed the signature so
+	that an encryption returned by this function may have more than
+	one key used to prepare it as in the case of Diffie-Hellman
+	algebras.
+
+2011-12-20  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Basic/Algebra.hs (match): Handle algebra equation with
+	the rule match(invk(t), t', env) -> match(t, invk(t'), env) when
+	t' is not of the form invk(t").  Corrects a missing case in
+	previous algorithm.
+
+	* src/CPSA/Lib/Notation.hs (mesg): Print (hash a b ... z)
+	as #(a, b, ..., z).
+
+2011-12-09  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Graph/SVG.hs (tooltip): Display tool tips with
+	<g><title>TOOLTIP</title>...</g> instead of <a
+	xlink:title='MESSAGE'>...</a> so that tool tips work in Firefox
+	and Chrome again.
+
+	* cpsa.cabal (Version):  Tagged as version 2.2.6.
+
+2011-11-18  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* tst/deorig_mesg.scm (deorig-mesg):  Added an example showing
+	that variables of sort mesg make deorigination very hard.
+
+2011-11-07  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/*: Delete cpsatheory.tex, and replace references to it with
+	ones to the MTR "Completeness of CPSA".
+
+	* src/CPSA/Lib/Loader.hs (notListenerPrefix): Ensure each role
+	does not have the pattern <-t, +t, ...> so as to avoid confusion
+	with listeners.q
+
+2011-08-16  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version):  Tagged as version 2.2.5.
+
+2011-08-15  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/cpsa.pl: Changed the internal form so that compound terms
+	are represented as function symbols applied to terms, not as
+	S-expressions.
+
+2011-08-12  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/*: Updated documentation to reflect support for hashing.
+
+2011-08-11  Paul Rowe  <prowe@mitre.org>
+
+	* src/CPSA/Basic/Algebra.hs: Added support for hashing.
+
+2011-07-26  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (ksubst): Made the flag validate the
+	first argument.
+
+	* src/CPSA/Lib/Strand.hs (compress): Added a flag validate.  When
+	false, compression does not check for intrastrand orderings that
+	create cycles.  Used in thinning.
+
+2011-05-18  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version):  Tagged as version 2.2.4.
+
+2011-05-16  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/prover9.pl: Added a translator from cpsalogic output to
+	prover9 syntax.
+
+2011-05-13  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Reduction.hs (parMap): The option to compile CPSA
+	without using the parallel runtime has been removed.  The parallel
+	library comes with Haskell Platform, so it is always available
+	these days.
+
+	* cpsa.cabal (Executable cpsa): Added the GHC option -rtsopts when
+	the compiler is version 7.0.0 or greater.  In 7.0.0, needed
+	runtime option have been disabled for security reasons by default.
+
+2011-05-12  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Logic/Logic.hs (precForm): Shortened the predicate's
+	name from precedes to prec.
+
+	* src/CPSA/Logic/Logic.hs (origForm): Added the orig predicate
+	which asserts the node of origination for each uniquely originating
+	atom.
+
+	* src/CPSA/Lib/Reduction.hs (origs): Added nodes of origination
+	of uniquely originating atoms for POV and shapes for cpsalogic.
+
+	* src/CPSA/Lib/Reduction.hs (commentPreskel):  Rewrote this
+	function so as to make its much more understandable.
+
+2011-05-09  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsaspec.tex: Added the orig predicate to shape analysis
+	sentences so that eliminate a counterexample to Conjecture B.1.
+	The addition of this predicate in necessary because with out it,
+	there is no way to ensure that skeletons that model a description
+	of a skeleton preserve nodes of origination of uniquely
+	originating atoms.
+
+2011-05-04  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version):  Tagged as version 2.2.3.
+
+2011-05-02  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsaprimer.tex: Added sections on macros, cpsaparameters,
+	and cpsalogic.
+
+	* doc/cpsaspec.tex: Extensively rewritten to improve readability
+	and reflect the current code base.  Added Appendix B that
+	describes the theory behind shape analysis sentences and
+	cpsalogic.
+
+	* src/CPSA/Lib/Strand.hs (pruneStrand): Added check for
+	homomorphism.  This fix slightly reduces CPSA's ability to prune.
+	This problem was notice while rewriting The CPSA Specification.
+
+2011-04-25  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Reduction.hs (commentPreskel): The format of the
+	homomorphism comment in a shape changed to (maps (STRAND-MAP
+	SUBST) ...), where there may be more than one homomorphism.
+
+2011-04-18  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Logic/Logic.hs (logic): Added the cpsalogic program.
+	It extracts an axiom in the language of first-order logic for each
+	problem and its shapes from a CPSA run. The axiom is modeled by
+	all realized skeletons.
+
+2011-04-14  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Reduction.hs (commentPreskel): Added the
+	preskeleton symbol to input that is not the point-of-view
+	skeleton, but is the one used to generate it.
+
+2011-04-11  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Reduction.hs (commentPreskel): For each shape,
+	added the homomorphism from the POV skeleton to it as a comment
+	using the key map.  The format is (map STRAND-MAP SUBST...), where
+	there may be more than one substitution depending on the algebra.
+
+	* src/CPSA/Lib/Algebra.hs: Added displayEnv to a Context.
+
+2011-04-06  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsadesign.tex: Updated to reflect the current code base.
+
+2011-03-29  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version):  Tagged as version 2.2.2.
+
+	* src/CPSA/Lib/Cohort.hs (cowt): Added a duplicate substitution
+	removal filter so as to resolve a large memory usage bug when
+	analyzing Wang's Fair Exchange Protocol.
+
+	* tst/wang.lisp ("Wang's Fair Exchange Protocol"): Added new
+	test.
+
+2011-03-22  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsaprimer.tex: Added the hashed value as key idea:
+	(defmacro (hash x) (enc "hash" (cat "hash" x)))
+
+	* tst/epmo-key-hash.scm, tst/epmo_acctnum-key-hash.lsp: Variants
+	of epmo and empo_acctnum that use the hashed value as the key.
+
+2011-02-02  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (solved): Disabled condition 2a for
+	protocols with role variables that are all atoms.  The use of
+	condition 2a is never fruitful in this case.
+
+2011-02-01  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (solved): Added condition 2a to the
+	solved predicate so that CPSA now finds the shape in targetterms8.
+
+	* src/CPSA/Lib/Notation.hs (decl): The sort in a declaration is
+	now printed after the variables, as in "a, b: name".
+
+2010-12-27  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/SExpr.hs (abort): Close input handle when reporting
+	a failure.
+
+	* src/CPSA/Lib/SExpr.hs (isSym, isStr): Non-ASCII characters are
+	accepted as constituents of symbols and strings.
+
+2010-12-20  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version):  Tagged as version 2.2.1.
+
+2010-12-16  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Diff/Main.hs (showDiff): Closed output handle when a
+	difference is found so as to ensure the output is flushed before
+	exiting signaling failure.
+
+2010-12-15  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Graph/ExpandedView.hs (treelessView): Added
+	treelessView, an output format that just prints the skeletons.
+	It's meant to be used on cpsagraph input that is too large to
+	handle otherwise.
+
+2010-12-14  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Graph/Loader.hs (loadFirst, loadNext): The loader
+	returns one preskeleton per call, rather than returning the list
+	of all preskeletons in the input.  This allows modes of operation
+	in which only a small portion of the input is in memory at any one
+	time.
+
+2010-12-10  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsa.mk, doc/Make.hs: Changed the extension associated with
+	cpsagraph output from .xml to .xhtml.
+
+	* doc/cpsa.mk, doc/Make.hs: Changed the extension associated with
+	cpsaparameters output from .params to _parameters.txt.
+
+2010-12-09  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Graph/Tree.hs: Dump commented out copy of the old
+	algorithm.
+
+	* src/CPSA/Graph/ExpandedView.hs (kdrawer): Replaced tree
+	sorting with a queue to produce a breadth first ordering of the
+	tree on output.  This change has a big impact on performance on
+	large inputs.
+
+2010-12-08  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Graph/ExpandedView.hs (zoomControl): Omit need to run a
+	script at load time by adding the attribute onchange="zoom(event)".
+
+2010-12-07  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Graph/ExpandedView.hs: Changed the scripting to better
+	support very large documents.  Instead of running a script to
+	insert the new control, this version builds the controls into the
+	document.  The script run a load time just registers event
+	handlers.
+
+	* src/CPSA/Graph/Tree.hs (forest): Changed data structures used to
+	form the forest so as to replace linear searches on lists with
+	binary searches on maps and sets.
+
+2010-12-01  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version):  Tagged as version 2.2.0.
+
+2010-11-29  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Graph/Preskeleton.hs (addNode): Use the color blue to
+	distinguish realized reception nodes from transmission nodes.
+
+	* src/CPSA/Lib/Strand.hs (augment): Removed hullForAugmentation.
+	Hulling is now always performed after contractions, regular
+	augmentations, and listener augmentations.
+
+2010-11-26  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Graph/*.hs: Added support for the cpsagraph option
+	--zoom.  This option adds support for SVG diagram scaling in
+	the expanded format, the one that generates an XML compound
+	document.  If the browser supports HTML5 sliders, cpsagraph
+	generates them, otherwise, it generates old style drop down lists.
+
+2010-11-19  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/*.scm: Updated examples to use herald forms.
+
+	* src/CPSA/Lib/Main.hs (getHerald): Added support for a herald
+	form that allows options specified on the command line to be
+	specified within an input file.
+
+	* src/CPSA/SimpleDiffieHellman/Algebra.hs (outFlow, inFlow):
+	Updated to handle (gen) and (exp h x).
+
+2010-11-16  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (testStrand): Corrected a flaw in which
+	this function incorrectly computed the public messages available
+	at a node when the node ordering is reversed, such as when using
+	the -r option or a reverse-search role hint.
+
+2010-11-15  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Diff/Main.hs (main): Added cpsadiff, a program that
+	compares CPSA output files S-expression by S-expression, and
+	prints the first skeleton that differs.
+
+	* src/CPSA/Lib/Protocol.hs (Role):  Added the rsearch boolean that
+	is used to determine the order in which a strand is searched for a
+	test node.  The search is reversed if the role includes the
+	"reverse-search" key as one of its comments.
+
+	* src/CPSA/Lib/Entry.hs (gentlyReadSExpr): Added a version of the
+	S-expression reader that gently fails on error by printing the
+	error message to standard error and returning EOF.  Changed
+	cpsagraph, cpsashapes, and cpsapp to use this reader.  That way,
+	an aborted run can be processed by these programs.
+
+2010-11-05  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 2.1.2.
+
+	* src/CPSA/Lib/Main.hs (interp): Enabled displacement by default,
+	and changed the sense of the -d option.
+
+2010-10-25  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/SimpleDiffieHellman/Algebra.hs: Changed algebra
+	signature so that gen is a constant.
+
+2010-10-21  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (homomorphismFilter): Added a filter that
+	ensures there is a homomorphism from the parent to each member of
+	a cohort.
+
+2010-10-20  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (hullByDeOrigination): Added a mode to
+	hulling based on deorigination.
+
+2010-10-19  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/SimpleDiffieHellman/Algebra.hs (loadVar): For now,
+	variables of sort base are forbidden to deal with missing
+	contractions in the Diffie-Hellman Man-In-The-Middle example.
+
+2010-10-15  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/SimpleDiffieHellman/Algebra.hs: Made the Simple
+	Diffie-Hellman algebra what one gets where one requests the
+	algebra diffie-hellman.
+
+2010-10-14  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/{Basic,SimpleDiffieHellman}/Algebra.hs (places,
+	replace): Corrected these definitions so that they handle
+	occurrences of variables without a sort inclusion function.  For
+	example, the old version would not find I when in akey(invk(I))
+	when looking for the places at which akey(I) occurs.
+
+2010-10-13  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/SimpleDiffieHellman/Algebra.hs: Added an implementation
+	of the Simple Diffie-Hellman algebra, one that supports only
+	commutativity in exponents.
+
+	* src/CPSA/SimpleDiffieHellman/Algebra.hs (foldCarriedTerms,
+	carriedPlaces): Despite there names, these two functions follow
+	the definition of heldBy, not carriedBy.
+
+  	* src/CPSA/Lib/Protocol.hs (originates, originationPos): carriedBy
+	-> heldBy.
+
+	* src/CPSA/Lib/Cohort.hs (testNode): carriedBy -> heldBy.
+
+	* src/CPSA/Lib/Strand.hs (gainedPos, preskelWellFormed)
+	(deleteNodeRest): carriedBy -> heldBy.
+
+2010-10-12  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Algebra.hs: Changed the signature of unify and
+	match so they return a list rather than a Maybe.
+
+2010-10-06  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/DiffieHellman/Algebra.hs (specialize): Added code to
+	specialize an environment by mapping all generated variables to
+	one.  This is used when producing an environment for an instance.
+
+2010-10-04  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/DiffieHellman/Algebra.hs: Modified algebra so that
+	bases are no longer atoms, and implemented a more realistic
+	version of derivability.
+
+2010-10-02  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Algebra.hs: Added heldBy to support
+	Diffie-Hellman.
+
+2010-09-23  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Notation.hs (mesg): Use [x,y,..]k instead of
+	E(k;x,y,...).
+
+2010-09-17  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Graph/LaTeXView.hs (writeLnPreskel): Add Tree number
+	before printing a protocol.
+
+2010-09-10  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 2.1.1.
+
+	* src/CPSA/Graph/Tree.hs (assemble): To handle incomplete outputs,
+	assemble ignores unavailable seen children instead of signaling an
+	error.
+
+2010-08-24  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (augCollapses): Pruning is now performed
+	only after augmentation, and only when the augmented strand is
+	involved.
+
+2010-08-12  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Graph/LaTeXView.hs (matrix):  When drawing a skeleton,
+	communication edges between nodes with different messages is shown
+	with a dotted arrow as is already done for SVG diagrams.
+
+2010-08-09  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Notation.hs: Added an infix notation for XHTML and
+	LaTeX output.  Enable by specifying the -i flag when invoking
+	cpsagraph or cpsapp.
+
+2010-07-29  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 2.1.0.
+
+2010-07-23  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Cabal-Version): CPSA now assumes Cabal is version
+	1.6 or greater, and support for GHC 6.8 has been withdrawn.
+
+	* src/CPSA/Graph/Loader.hs (loadDefs): The graph program displays
+	the initial comments in an input file.
+
+2010-07-14  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Main.hs (options): Four new command line options
+	have been added:
+	  -d         --displacement     enable displacement
+	  -c         --check-nonces     check nonces first
+	  -t         --try-old-strands  try old strands first
+	  -r         --reverse-nodes    try old nodes first
+
+2010-07-09  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (contractAndOrder): Support for this
+	addition to authentication test solving has been removed.
+
+	* src/CPSA/Lib/Cohort.hs (contractions): Contraction has changed
+	so that it only solves the test for one position of the critical
+	message in the test node, not every position.  Previously, CPSA
+	was missing most general solutions due to contracting too many
+	positions at the same time.
+
+	* src/CPSA/Lib/Strand.hs (pruneStrands): The pruning condition now
+	checks to see that there is a variable renaming between the
+	preskeletons involved.  Previously, the only check ensured the map
+	was idempotent.
+
+2010-07-08  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (useEcapeSetInTargetTerms): Added an
+	option to include the escape set in the set of target terms.
+
+2010-06-22  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (gainedPos): In a skeleton, a node with a
+	uniquely originating atom that is gained must be after the node of
+	origination.  It used to be that only nodes in which the atom is
+	acquired must have the ordering.
+
+2010-06-18  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 2.0.5.
+
+	* doc/cpsatheory.tex: Added theory document on authentication
+	tests.
+
+2010-06-11  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (augCollapses): Added a collapsing phase
+	after adding a strand so that hulling succeeds without when
+	origination points on augmented strands move.
+
+	* src/CPSA/Lib/Strand.hs (hull): Added a better algorithm for
+	finding pairs of strands to hull.
+
+2010-06-07  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (cowt): As does cows, the cowt has to
+	iterate to ensure all places are considered.  This change fixes
+	the bug exposed by the tst/non_transforming.scm text case.
+
+2010-06-03  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (transformingNode): Removed junk in
+	output by applying the mgu filter to more substitutions used to
+	construct augmentations.  This fix has a dramatic effect on
+	performance for the NSL4 and NSL5 test cases.
+
+2010-05-06  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (cows): Update function to better match
+	correctness result in the upcoming algebra paper.
+
+2010-04-28  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 2.0.4.
+
+	* cpsa.cabal: Base versions are now base >= 3 &&< 5.
+
+2010-04-20  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (acyclicOrder): Fix acyclic check by
+	analyzing all edges in graph, not just communication edges.
+
+2010-04-15  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (firstSkeleton): Input skeletons are no
+	longer pruned.
+
+2010-03-30  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 2.0.3.
+
+	* src/CPSA/Lib/Cohort.hs (useEncryptionFirstOrder): Added switch
+	to determine critical message search order.
+
+	* src/CPSA/Lib/Strand.hs (skelNons, skelUniques): Use inheritRnon,
+	and inheritRunique for inherited origination assumptions.
+
+2010-03-27  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/pp.pl: Added an SWI-Prolog version of the pretty printer in
+	CPSA.Lib.Pretty.
+
+	* src/cpsa.pl: Added an SWI-Prolog version of the CPSA specific
+	pretty printer in CPSA.Lib.Printer and support for skeleton
+	transformations.
+
+2010-03-11  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 2.0.2.
+
+	* src/CPSA/Graph/Loader.hs (itrace): When computing the trace of
+	an instance, use the traces comment if it is available.
+
+2010-03-11  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 2.0.1.
+
+2010-03-10  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/cpsa.el: Added Emacs support for skeleton transformations.
+
+2010-03-07  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Basic/Algebra.hs (rootName):  Improved renaming
+	algorithm used to avoid collisions while printing variables.
+
+2010-03-05  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (roleOrigCheck): Added check that
+	unique origination position is preserved by inheritance.
+
+2010-03-04  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 2.0.0, the first release
+	for the public.
+
+2010-03-01  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/SExpr.hs (load): Load now returns one S-expression
+	per call.
+
+2010-02-19  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Loader.hs (loadPosBaseTerm): Added a missing check
+	that ensures a non-originating term at given length is an atom.
+
+	* doc/Make.hs (cpsa): Made *.sch the extension for problems
+	that use Diffie-Hellman.
+
+2010-02-15  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.5.5.
+
+	* src/CPSA/Lib/Loader.hs:  Added better error messages for roles
+	and preskeletons that are not well formed.
+
+2010-02-13  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Basic/Algebra.hs:  Enforce a canonical form for terms
+	so that term equality is just structural equality.
+
+2010-02-08  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (testNode): Changed order in which
+	critical message are picked to look at encryption tests before
+	nonce tests.
+
+2010-02-05  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.5.4.
+
+2010-02-04  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (origCheck): For pruning, added a check
+	that insures that origination assumptions are honored by the
+	homomorphisms associated with pruning.
+
+2010-01-29  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsauser.html (Visualization): Added a comment that notes
+	that cpsagraph draws dashed lines between nodes with terms that
+	are equivalent, but not syntactically identical.
+
+	* src/CPSA/Lib/Strand.hs (Preskel): Preskeletons retain a comment
+	that is given in the input.
+
+2010-01-21  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsa.mk (%.sch): Added a rule that runs CPSA with the
+	Diffie-Hellman algebra for *.sch files.
+
+	* tst/completeness-test.scm: Added new example
+
+2010-01-07  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (copresentVertices): Fixed a bug, and now
+	contractions with ordering codes works, when
+	Cohort.useContractionsWithOrdering is True.
+
+2010-01-06  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.5.3.
+
+2009-12-21  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (mgus): Enabled mgu filtering on
+	contractions and regular augmentation.
+
+2009-12-20  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Basic/Algebra.hs (moreGeneral): Original implementation
+	failed to consider variables in the range of the more general
+	substitution.
+
+2009-12-17  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Graph/Preskeleton.hs (addEdge): In a skeleton diagram,
+	an edge between nodes that do not agree on their message is
+	displayed with a dashed line.
+
+2009-11-16  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.5.2.
+
+2009-11-10  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (precedesCheck): Added the requirement to
+	pruning that ordering relations associated with the more
+	general (pruned) strand are implied by the less general strand.
+
+2009-10-31  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Protocol.hs (Role): Added support for delaying the
+	inheritance of a role non-origination assumption by adding a
+	length specification to role non-origination declarations.
+
+2009-10-26  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.5.1.
+
+2009-10-24  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (specialization): Generalization no
+	longer uses pruning.
+
+2009-10-24  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* license.txt: Changed license to BSD.
+
+2009-10-15  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.5.0.
+
+2009-10-14  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/preskel.sh: Added a script to change defpreskeleton to
+	defskeleton.
+
+	* src/CPSA/Lib/Loader.hs (loadSExpr): Changed defpreskeleton
+	keyword to defskeleton.
+
+2009-10-10  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Extra-Source-Files): Added files left out of a
+	distribution so that the documentation compiles.
+
+	* {doc,tst}/README: Added a doc and tst read me
+
+2009-10-03  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (checkOrigs): Isomorphism orig check now
+	uses matching.  Isomorphism checking now works in diffie-hellman.
+
+2009-10-01  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Algebra.hs (encryptions): Encryptions that occur in
+	other encryption are now required to be later in the list.
+
+	* cpsa.cabal (Version): Tagged as version 1.4.9.
+
+2009-09-30  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (roleOrigCheck): Role origination check
+	is now omitted when the inheriting strand is too short to inherit
+	a unique origination assumption.
+
+2009-09-22  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (useMguFilter): Turned off all mgu
+	filtering for contractions and augmentations.
+
+	* src/CPSA/Lib/Algebra.hs: Changed signature for unification and
+	matching so as to pass through a variable generator for
+	Diffie-Hellman.  Threaded the variable generator throughout the
+	library as needed.
+
+	* src/CPSA/Diffie-Hellman/Algebra.hs:  Added a module for
+	analyzing protocols that use Diffie-Hellman.  Its unifier and
+	matcher make use of fresh variable generation.
+
+2009-09-16  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (mgus): Added a filter that removes
+	non-most general unifiers from a list of contractions after the
+	list has been filtered to ensure each member solves the test.  For
+	each role considered during augmentation, added a filter that
+	removes non-most general unifiers from the list of augmentations
+	after the list has been filtered to ensure each member solves the
+	test.
+
+2009-08-28  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (testDestroyingContractions): Added a
+	filter that removes non-most general unifiers from the generated
+	list of potential contractions.
+
+2009-08-18  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Displayer.hs (displayOpTerm, displayOpTerms): Terms
+	in the operation field may contain variables not in the skeleton.
+	Two functions were added for printing terms is the operation
+	field.  These functions extend the display context as needed.
+
+2009-08-05  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.4.8.
+
+	* tst/{encsig.scm,sigenc.scm}: Added tests for labeled named akey
+	operations.
+
+2009-08-03  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Basic/Algebra.hs:  Added labeled named akey operations
+	(pubk STRING ID) and (privk STRING ID).
+
+2009-08-02  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Algebra.hs (lte):  Added more general substitution
+	predicate to the algebra interface.
+
+2009-07-24  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.4.7.
+
+	* src/CPSA/Lib/Strand.hs (permutations): Reversed the order in
+	which strands are matched, and found a big performance
+	improvement.
+
+	* src/CPSA/Lib/Loader.hs (loadRole): Unused variables in a role
+	are now silently dropped instead of causing an error message.
+
+2009-07-21  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (permutations): Intertwined the
+	computation of permutations with the substitutions that match
+	traces.
+
+2009-07-11  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.4.6.
+
+2009-07-08  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsaprimer.tex (Section Advice): Added a description of how
+	to use CPSA for protocol design and made other improvements.
+
+2009-07-07  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (maybeAug): Use a role's trace as a
+	template instead of generating a fresh instance for that purpose.
+
+2009-07-01  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Graph/LaTeXView.hs (latexView):
+
+2009-06-23  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Search.hs (solve): The top-level search loop is now
+	implemented in the IO monad using tail recursive functions so as to
+	ensure data is released when it should.
+
+2009-06-21  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Search.hs (solve): Added no isomorphism checking
+	mode (--noisochk).  In noisochk mode, isomorphism checks are
+	avoided by not identifying duplicate skeletons and by not
+	generalizing realized skeletons.
+
+	* src/CPSA/Lib/Search.hs (Params): Collected runtime parameters
+	into a record.
+
+	* src/CPSA/Lib/Search.hs (dump): Dump no longer generalizes
+	realized skeletons.  It just dumps them quickly.
+
+2009-06-19  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (generalize): Perform variable separation
+	last as it could take a long time.
+
+2009-06-17  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsaprimer.tex: Updated the Needham-Schroeder example, added
+	the collapsing operation, and fix other minor problems.
+
+2009-06-14  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsadesign.tex: This document was rewritten.  It now assumes
+	its reader have already read the CPSA specification
+	(doc/cpsaspec.tex).  As a result, it focuses on implementation
+	issues, and leaves correctness issues to the specification.
+
+2009-06-11  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (instRnon,instRunique): Filter
+	origination assumptions using the terms in the instance's trace.
+
+	* src/CPSA/Lib/Strand.hs (separateVariable): Don't memoize subsets
+	computation.  It causes memory problems when a large permutation
+	is used infrequently.
+
+2009-06-10  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.4.5.
+
+2009-05-29  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (isomorphic): Don't memoize
+	permutations--can cause excessive use of memory.
+
+2009-05-28  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Entry.hs: Code common to several programs has been
+	moved into the Entry module and shared.
+
+2009-05-27  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/{Search.hs,Expand.hs}: CPSA now expands macros
+	rather than using a preprocessor for the task.  The cpsapp program
+	now just pretty prints its input.
+
+	* src/CPSA/Pretty/Main.hs: The source for the cpsapp program has
+	moved into another directory as it no longer macro expands its
+	input.
+
+	* doc/cpsa.mk: Makefile no longer has preprocessor support.
+
+	* doc/cpsaoverview.tex: Add a short overview of CPSA.
+
+	* src/CPSA/Annotations/Formulas.hs (keywords): "t" and "f" are no
+	longer keywords in formulas.  Use (and) for truth and (or) for
+	falsehood.
+
+2009-05-22  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Macros/Main.hs (prettyPrint): Add -p option so that
+	cpsapp pretty prints without macro expansion.
+
+	* doc/cpsa.mk: Makefile now save preprocessor output.
+
+2009-05-12  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.4.4.
+
+	* cpsa.cabal (Flag par): Changed the default for the par flag to
+	true so that CPSA is compiled with multiprocessor support by
+	default.
+
+2009-05-11  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/SExpr.hs (Tokens): Added strictness annotations
+	that allows the reading of much larger input files and improves
+	performance.
+
+2009-05-10  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (collapse): Added the collapse operation
+	which applies to a shape.  It attempts to unify pairs of strands
+	and searches for shapes starting from the results.
+
+	* src/CPSA/Shapes/Shapes.hs (shapes): Reduced memory requirements
+	by use of shape notes and added support for output in which a
+	shape is a descendent of a shape.
+
+2009-05-09  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Search.hs (commentPreskel): Added a shape note to
+	be used by the cpsashapes program.
+
+2009-05-07  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (hull, enrich, prune): With the
+	correction of the pruning algorithm, the preskeleton reduction
+	rules are now applied in the order of hull, enrich, and then
+	prune.
+
+2009-05-05  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsaspec.tex: Added the sources to the CPSA document that
+	specifies CPSA as a reduction system.
+
+2009-05-04  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (pruneStrands): The pruning operation
+	now uses a substitution that is idempotent for strands other than
+	the pruned strand.
+
+2009-04-29  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.4.3.
+
+	* src/CPSA/Lib/Cohort.hs (specialization): The homomorphism check
+	is applied to the preskeleton because it matches the strand
+	mapping.  This fixes a bug that reject some valid generalizations.
+
+2009-04-19  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Algebra.hs (Subst): A substitution is now required
+	to be ordered.
+
+	* src/CPSA/Basic/Algebra.hs (unifyChase): The exported version of
+	a substitution no longer requires chasing to find the canonical
+	representative of the equivalence class of variables determined to
+	be equal.  This means there is a canonical representation of an
+	external version of a substitution that is ordered.
+
+	* src/CPSA/Basic/Algebra.hs (substitute): Corrected a bug in
+	substitution associated with variables of sort mesg.  The
+	correction effects tst/dy.scm only.
+
+2009-04-18  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Basic/Algebra.hs (IdMap): Use Data.Map Id Term for
+	substitutions instead of association lists.
+
+	* src/CPSA/Basic/Algebra.hs (loadVar): Removed sort "term" as a
+	synonym for "mesg".
+
+2009-04-14  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Basic/Algebra.hs (compose):  Corrected a bug in the
+	code that removes the trivial bindings from s2 to form s4.  The
+	fix changes the output for tst/dy.scm.
+
+2009-03-30  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.4.2.
+
+2009-03-27  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Search.hs (parMap): Added support for SMP
+	parallelism.  To enable, configure with -fpar.
+
+2009-03-22  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Printer.hs: Added a CPSA specific pretty printer
+	and made it so that the roles in protocols are laid out using the
+	group layout.
+
+2009-03-03  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Pretty.hs (grp): Added support for the group layout
+	and used it for the top-level lists.
+
+2009-03-01  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (unifyTerm): For contraction, the
+	unifyOnPaths function does not check to see if its result has the
+	desired properties and it turns out that sometimes it doesn't.
+	Now unifyTerm repeats its operations until the desired properties
+	hold.
+
+	* src/CPSA/Lib/Cohort.hs (unifyPast): For augmentation, the
+	original unifyPast failed to each to see if the final result has
+	the desired properties, and it turns out that sometimes it
+	doesn't.  Now unifyPast repeats its operations until the desired
+	properties hold.
+
+2009-02-23  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Loader.hs (loadInsts): Check for preskeletons
+	with no strands.
+
+2009-02-21  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Parameters/Main.hs,Flow.hs: Added a data flow analysis
+	of roles.
+
+2009-02-16  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.4.1.
+
+	* doc/*: Update document to reflect changes.
+
+2009-02-10  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Macros/*.hs: Added the macro preprocessor cpsapp.
+
+2009-02-08  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Annotations/Annotations.hs (loadFormulas): Allow base
+	terms as principals so as to allow keys as principals.
+
+2009-01-03  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (changeLocations): Changed variable
+	separation so that so that two candidates are generated for a
+	location configuration, one that maps the changes to uniques, and
+	the other does not.  This fixes a generalization bug.
+
+2009-01-31  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (solved): The cohort is now filtered so
+	that every member is solved.
+
+2009-01-03  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (changeLocations): When separating a
+	uniquely originating base term, either the term or its clone is
+	uniquely originating.
+
+2008-12-28  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Basic/Algebra.hs (Symbol): Removed tag as a sort, and
+	made tags constants of sort mesg.
+
+2008-12-24  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Basic/Algebra.hs (matchVarRenaming): Use sets to
+	improve injective test.
+
+2008-12-09  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.4.0.
+
+2008-12-08  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Search.hs (nextState): Added the --dfs command line
+	option to allow the selection of depth first search.
+
+	* src/CPSA/Graph/SVG.hs (kbutton): Duplicate nodes are now
+	rendered in italic so as to make it easier to distinguish them
+	from tree nodes.
+
+	* src/CPSA/*/{Main.hs,Search.hs}: Added default option values to
+	command line help message.
+
+2008-12-03  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Basic/Algebra.hs: Allowed variable declaration forms to
+	declare more than one variable of a given sort.
+
+	* src/CPSA/Basic/Algebra.hs: Added the sort data, a second
+	sort similar to sort text.  The second sort can be used to
+	partition nonce-like data from ordinary text-like data.
+
+	* src/CPSA/Basic/Algebra.hs: Changed the symbol used for the top
+	sort from "term" to "mesg".
+
+	* src/CPSA/Lib/SExpr.hs (isStr): The characters that make up a
+	string are the ASCII printing characters omitting double quote and
+	backslash.
+
+2008-12-02  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Search.hs (nextState): Switched back to
+	breadth-first-search and removed support for parallelism.
+	Breadth-first-search makes it more likely shapes are printed in
+	ill-fated runs.
+
+	* src/CPSA/Graph/Main.hs (interp): Changed the default output
+	format to expanded format.
+
+2008-12-01  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.3.2.
+
+2008-11-30  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (roleOrigCheck): Added new well-formed
+	preskeleton check.  Every uniquely originating role term mapped by
+	an instance must be mapped to a term that originates on the
+	instance's strand.
+
+2008-11-19  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Search.hs (nextState): Switched to
+	depth-first-search by adding freshly generated skeletons to the
+	front of the to do list.
+
+	* src/CPSA/Lib/Strand.hs (isomorphic): Added same number of
+	variables in isomorphism check to speed it up.
+
+	* src/CPSA/Lib/Algebra.hs: (matchVarRenaming) The special purpose
+	renaming detector was eliminated in favor of using matching and
+	predicate that decides if a match is one-to-one and
+	variable-to-variable.
+
+2008-11-16  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (deleteNode): Use the transitive closure
+	of the communication ordering before deleting a node.  This change
+	fixes a minimization bug.
+
+2008-11-14  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.3.1.
+
+	* src/CPSA/Lib/Cohort.hs (addListeners):  Listeners are now added
+	only for the decryption keys of the top most encryptions in the
+	escape set.  This fixes a bug caused by adding listeners for
+	decryption keys of internal encryptions in the escape set.
+
+	* src/CPSA/Lib/Algebra.hs (decryptionKey):  Changed the name from
+	keysUsedBy to reflect the fact only the decryption key from the
+	top most encryption is returned.
+
+	* src/CPSA/Lib/Algebra.hs (protectors): Changed the name from
+	decrypts to better reflect the purpose of the function.
+
+2008-11-10  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Annotations/Annotations.hs (obligations): The alist key
+	theorems was replaced with obligations as it lists the formulas
+	one is obligated to show are theorems to show the protocol is
+	sound.
+
+2008-11-07  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.3.0.
+
+	* doc/cpsauser.html:  Added cpsaannotations documentation.
+
+2008-11-02  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsadesign.tex: Added a complete draft of the algorithm part
+	of the design document.
+
+2008-10-27  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (deleteNode): When deleting a strand,
+	this function used to apply the inverse of the correct permutation
+	to the prob field, but now applies the correct permutation.
+
+2008-10-19  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Graph/Main.hs (options): Add --compact option to select
+	the use of the compact output format.
+
+2008-10-15  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (targetTerms): Added term extraction from
+	the escape set for use as targets for binding with the carried
+	terms in an outbound when looking for a transforming node.  This
+	change allows CPSA to find the flaw in the Dolev-Yao Example 1.3
+	test case.
+
+2008-10-14  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (augmentations): Changed the augmentation
+	algorithm to use foldCarriedTerms.
+
+	* src/cpsacgi.py: Added expanded graph output to the CGI script.
+	Added support for annotations.
+
+2008-10-13  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/cpsaprimer.tex: The CPSA Tutorial was renamed to the CPSA
+	Primer.
+
+2008-10-08  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (forgetAssumption): Fix a bug that allows
+	assumption forgetting to work again.
+
+2008-10-04  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Basic/Algebra.hs (loadEnc): When enc has more that two
+	terms, a concatenation is added to all but the last term.
+
+	* src/CPSA/Lib/Strand.hs (tryPerm): An isomorphism testing bug was
+	fixed.  The permutation map was applied to the wrong ordering.
+
+2008-10-03  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.2.3.
+
+	* src/CPSA/Graph/ExpandedView.hs (header): The title generated for
+	the expanded view now includes the name of the first protocol to
+	be graphed.
+
+	* src/CPSA/Lib/Search.hs (search): The comment generated for
+	non-default strand bounded or step count limited runs contained
+	an illegal character that has been removed.
+
+	* src/CPSA/Basic/Algebra.hs (displaySubst): This function displays
+	substitutions without requiring that the sort of every variable be
+	known.  The function that infers enough sort information to
+	perform the display was correct, thus fixing a reported bug.
+
+2008-09-30  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Algebra.hs (Context): Changed the interface to
+	contexts to allow them to be extended.  Also, eliminated
+	displayEnv from the Context type class.  It can be written using
+	other functions in the interface.
+
+2008-09-26  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Cohort.hs (transformingNode): The fix on the 22th
+	wasn't right, it unified on all outgoing terms.  The function now
+	unifies an outgoing term only when it is a transforming node.
+
+2008-09-24  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/*/*.hs:  Loading works with all monads.  With this
+	change, there is no longer a need for using the flexible instances
+	language extension.
+
+2008-09-23  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.2.2.
+
+2008-09-22  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Cabal-Version): Updated to use Cabal 1.2 section
+	syntax.
+
+	* src/CPSA/Lib/Cohort.hs (transformingNode): Changed the
+	augmentation algorithm so that it continues looking for more
+	transforming nodes farther down a trace after it finds one
+	transforming node.
+
+	* src/CPSA/Lib/Search.hs (par): Added HAVE_PAR preprocessor symbol
+	which should be defined when Control.Parallel is available.
+
+	* src/CPSA/*/*.hs:  A major code clean up was completed.
+
+2008-09-17  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (Gist): Created a data structure designed
+	to support only skeleton isomorphism checks, thus improving the
+	performance and memory requirements associated with the check.
+
+2008-09-15  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Annotations/*.hs: Added the cpsaannotations program
+	that propagates annotations on protocols to annotations on
+	realized skeletons.
+
+2008-09-06  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Main.hs (main): Algebras export a name and the
+	origin used to generate fresh variables.
+
+2008-08-29  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (weakenOrderings): Corrected a bug by
+	adding the strand succession edges before taking the transitive
+	closure.
+
+2008-08-25  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.2.1.
+
+2008-08-23  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (weakenOrderings): Changed the weakening
+	algorithm so as to use the transitive closure.  The result is all
+	possible weakenings are considered, and a reported bug was fixed.
+
+2008-08-19  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Graph/ExpandedView.hs (kdrawer): Added the definition
+	of the marker for arrow heads so that arrow heads now appear in
+	preskeleton drawings.
+
+2008-08-18  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.2.0.
+
+	* src/CPSA/Lib/Utilities.hs (permutations): Used permutations from
+	Haskell 1.3 as a model, and ensured the identity permutation is
+	the first one in the result.
+
+	* doc/cpsatutorial.tex, doc/cpsauser.html: Changed the
+	introductions to note that the search for shapes in the current
+	implementation is known to be not complete.  See tst/dy.scm.
+
+2008-08-11  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* tst/Makefile: Changed the file extensions to be consistent with
+	the ones used in doc/cpsa.mk.
+
+	* src/CPSA/Basic/Loader.hs: Added tags as non-atomic terms, and
+	removed tagged concatenation.
+
+	* src/CPSA/Graph/ExpandedView.hs: Added support for the expanded
+	view option (-x) in cpsagraph.
+
+2008-08-04  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal: Added support for local installation.
+
+	* doc/cpsa.mk: Added GNU Make rules for inclusion.
+
+	* src/CPSA/Lib/Search.hs: Reorganized search loop so that
+	S-expression printing is done outside the search code.
+
+	* src/CPSA/Lib/Search.hs: Modified the abort dump routine so that
+	it minimizes when it is asked to print a realized skeleton.
+
+2008-07-31  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/*/Loader.hs: Ignore top-level S-expression of the form
+	(comment S-EXP*) rather than signal an error so as to allow file
+	level comments as S-expressions.
+
+	* src/CPSA/*/*: Renamed cpsabasic to cpsa, as that program can now
+	provide support for more than one algebra.
+
+2008-07-28  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Algebra.hs: Added foldTerms to interface. It folds
+	a function through a term applying it to each term that occurs in
+	the term.
+
+2008-07-26  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Algebra.hs: Added carriedPlaces and ancestors to
+	the interface and moved existsOnAllPathsToTarget and
+	foldOnAllPathsToTarget to CPSA.Lib.Cohort as they no longer need
+	to be implemented by each algebra.
+
+2008-07-25  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/*/*.hs: Reorganized the algebra interface so that as
+	algebra exports an algebra specific protocol loader so as to allow
+	CPSA to handle more than one algebra at a time.  Algebras are now
+	linked into the program in CPSA.Lib.Main.
+
+2008-07-24  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Search.hs: Added the --bound option to limit the
+	number of strands in a skeleton.
+
+2008-07-15  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (validateSubst): Changed the result of a
+	failure to find a uniquely-originating atom to False rather than
+	an signaling an error.  The addition of unique origination
+	assumption forgetting makes this case no longer an error.
+
+2008-06-16  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Basic/Main.hs (compose): Use algorithm from Handbook of
+	Automated Reasoning, remembering to delete identity bindings.
+
+2008-06-05  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as version 1.1.0.
+
+	* doc/cpsadesign.tex: Added document status and other small
+	improvements in preparation for release.
+
+2008-05-27  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* doc/strands.mp: Placed strand macros in a separate file.
+
+2008-05-23  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/httpd_allow_execmem.te: Added this SELinux refpolicy module
+	so as to allow Haskell to run as a CGI script.
+
+2008-05-22  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Displayer.hs (displayOperation): Changed the
+	wording for the operation used to derive a skeleton.
+
+2008-05-19  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/cpsa.{sh,py}: CGI scripts modified to work with SELinux.
+
+2008-05-13  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Shapes/Main.hs: Added output margin option.
+
+	* src/CPSA/Lib/Strand.hs (Method): Added a parameter to each
+	minimization method.
+
+2008-05-04  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Strand.hs (forgetAssumption): Added the
+	origination assumption forgetting minimization operation.
+
+2008-05-04  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Search.hs (options): Added output margin option.
+
+2008-04-30  Joshua D. Guttman  <guttman@mitre.org>
+
+	* src/CPSA/Basic/Main.hs: Re-enabled indeterminates
+
+2008-02-27  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* src/CPSA/Lib/Protocol.hs: Add a comment field in protocols and
+	roles.
+
+2008-02-20  John D. Ramsdell  <ramsdell@mitre.org>
+
+	* cpsa.cabal (Version): Tagged as 1.0.0, the initial release.
diff --git a/NEWS b/NEWS
--- a/NEWS
+++ b/NEWS
@@ -1,179 +1,973 @@
-CPSA NEWS
-
-  June 2022:
-
-* Release 3.6.11 removes extra quotes in some error messages.
-
-  March 2022:
-
-* Release 3.6.10 allows double quote and backslash in S-expressions so
-  that they can contain Windows file names.
-
-  January 2022:
-
-* Release 3.6.9 expunges skeletons that have a value that is both uniq
-  orig and uniq gen, and start on different strands.
-
-  November 2021:
-
-* Release 3.6.8 adds a stronger method for solving Diffie-Hellman
-  authentication tests for the case in which the test is a base value
-  of a special form.  The form is (exp (gen) (mul ...)), where all of
-  the variables in the exponent are random exponents and there is more
-  than one variable in the exponent.  In this case, it adds a listener
-  for each variable in the exponent.  The messages listened to is the
-  concatenation of the variable and the base value after the factor
-  that involves the variable has been removed.  Thus for (exp (gen)
-  (mul x y y)), a listener is created for (cat (exp (gen) (mul y y) x)
-  and (cat (exp (gen) x) y).
-
-  May 2020:
-
-* Release 3.6.6 adds a powerful feature: the cpsaprot preprocessing
-  tool.  This allows you to specify protocols in cpsa via a more
-  intuitive "Alice and Bob" notation where you specify messages being
-  sent from one role to another.  The cpsaprot tool builds the
-  standard defprotocol from this specification, which can then be run
-  through the main CPSA tool.  This helps to reduce duplications in
-  the input files actually created by humans and thus reduces the
-  occurrence of accidental errors in input.
-
-  November 2019:
-
-* Release 3.6.5 is a bug fix release.  There are no user visible
-  changes.
-
-  October 2019:
-
-* Release 3.6.4 adds support for the latest version of the GHC
-  compiler.  As of version 8.8, the Monad type class no longer
-  contains the fail method, and that method is now provided by the
-  MonadFail type class.  This version of CPSA makes use of the C
-  preprocessor to handle this incompatible change.  The release also
-  fixes a bug in thinning.
-
-  August 2019:
-
-* Release 3.6.3 adds the cpsainit program and fixes bugs.  The
-  cpsainit program copies files from the CPSA data directory into a
-  fresh CPSA project directory.  The files ease the task of automating
-  the use of the various CPSA tools.
-
-  March, 2019:
-
-* Release 3.6.2 adds the leads-to predicate to the rule language, adds
-  better checks for malformed input, and fixes a bug so that now the
-  default depth is infinite as is specified in the manual.  It adds
-  structured annotations to skeleton output to facilitate post
-  processing programs besides cpsagraph.  The sources for OCaml
-  programs for processing CPSA input and output are now included.
-
-  August, 2018:
-
-* Release 3.6.1 is a bug fix release.  It includes updates to the CPSA
-  manual.  There are no user visible changes.
-
-  June, 2018:
-
-* Release 3.6.0 adds rules and facts.  Rules are associated with
-  protocols, and facts are associated with skeletons.  A rule is a
-  geometric formula that is used as a rewrite rule, and a fact is a
-  named relation between values.
-
-  April, 2018:
-
-* The release of CPSA version 3.5.0 contains one user visiable change.
-  The names of the exponent sorts have been changed.  Sort expn is now
-  rndx, and expr is now expt.  The change was made because people
-  found the old sort name confusing.  For compatibility, the reader
-  accepts the old names and translates them into the new ones.
-
-  December, 2017:
-
-* The release of CPSA version 3.4.1 includes the following changes:
-  - Fixed a bug that caused a crash in certain situations involving
-    generalization
-  - Fixed a bug in the chase algorithm that caused the tool to enter
-    an infinite loop
-  - Added a new declaration "eq" which declares pairs of values to be
-    equal to each other.
-  - Added a new command-line flag to skip analysis, "noanalyze" / -z.
-    This allows defgoal inputs to be read in and characteristic
-    skeletons computed, for model debugging.
-
-  September, 2017:
-
-* In CPSA version 3.4, the algorithm for handling Diffie-Hellman
-  components in protocols has been substantially altered.  Instead of
-  considering "relevant" version of the critical message when it is a
-  Diffie-Hellman value, we focus on the exact critical message, but
-  add a cohort member for exploring "precursors" of the critical
-  message.  The new algorithm no longer requires that exponents always
-  be found within an exponentiation.
-
-* Several examples added to the example distribution, including
-  "iadh_um", which makes use of the relaxation of requirements on
-  Diffie-Hellman exponents to explore forward secrecy.
-
-* A number of serious bug fixes are included in release version 3.4.
-  Bugs fixed include:
-  - A bug that caused the tool to discard some skeletons incorrectly
-    due to over-agressive thinning
-  - A bug in Diffie-Hellman matching that caused an infinite loop in
-    certain cases
-  - A bug that caused inputs with bltk to refuse to execute
-  - Bugs in the solved filter that allowed a skeleton to have itself as a child
-  - A bug in isomorphism checking that incorrectly identified certain
-    Diffie-Hellman skeletons as non-isomorphic.
-
-* Backward compatibility note: "ind-zero-in", a declaration
-  automatically added to Diffie-Hellman protocols in the previous
-  version, has been renamed to "absent".
-
-  June, 2016:
-
-* New feature: tag sort.  Introduced a new sort "tag" in both the basic and
-  diffie-hellman algebras.  Quoted string constants are now considered to be
-  of this sort rather than of least sort mesg.  This allows a user to specify
-  a variable that may stand for a string constant, without forcing the user to
-  use a variable of the mesg sort for that purpose.
-
-* New feature: depth limit.  When a depth limit is specified, analysis of
-  skeletons will proceed as long as the skeleton's depth in the search tree
-  is below the limit.  Skeletons not analyzed are marked as "(fringe)" to
-  indicate the incomplete nature of those branches of the analysis.  Unlike
-  hitting a strand bound, the tool does not exit with an error when the depth
-  limit is reached.
-
-* IKE_variants.tar.gz added: This is an archive of over 30 variants of
-  IKEv1 and IKEv2 protocols modeled in CPSA.  The archive can be found in the
-  doc/examples directory.
-
-  February, 2016: CPSA version 3 released to the public.
-
-Version 3 of CPSA is a major update to the tool including many new features.
-The most important new features included are:
-
-* Working support for Diffie-Hellman components in protocols, with two
-  main restrictions: first, exponent multiplication is modeled but
-  exponent addition is not, and second, that "bare" exponents are not
-  allowed.  This means that exponents in a role or skeleton must be
-  found within an exponentiation, and not directly (e.g. as in a pair
-  or encryption).
-
-* Support for protocols that interact with long-term state
-
-* Bidirectional long-term keys, in which the order of the two names is
-  ignored.  This more appropriately models shared symmetric keys in a
-  setting where participants are not clearly distinguishable as
-  clients or servers.
-
-* Numerous declarable constraints that allow a user to more carefully
-  limit the tool's search to executions of interest.  Including:
-  - inequality of values
-  - functional relationships between values
-  - a new type of secrecy assumption for potentially leakable long-term secrets
-
-* New, improved documentation.  Included with the release is the CPSA
-  manual which thoroughly documents the new and existing features of
-  the tool and is also a good starting place for new users.
+CPSA NEWS -- history of user-visible changes.
+
+* Changes in version 4.4.1
+
+** A bug concerning goal satisfaction was found and corrected.
+   When a goal conclusion contains existential quantifiers and
+   equalities involving the existentially bound variables, the bug
+   caused satisfaction not to be reported.  The correction allows the
+   bound variables to receive instantiations satisfying the equations.
+
+** A bug printing rules for cheq, rely, and guar was found and corrected.
+   These rules are now printed out with the defrule keywords rather
+   than the defgenrule keyword.  This is required because the printer
+   does not re-insert the original trace annotations in its output,
+   meaning that the rules would not be re-generated automatically when
+   reading the output file.
+
+* Changes in version 4.4.0
+
+** Many small bugs were corrected.  For instance, bugs that prevented
+   generalization from running to completion led to redundant shapes.
+   Imprecision in uniq-gen led to omissions.  Cpsa4sas has been
+   brought up to date to work accurately with protocols that use
+   state.
+
+** Annotations within traces are now permitted, namely rely, guarantee,
+   and cheq, enabling the specifier to indicate what a principal
+   learns on receiving a message; what the principal must ensure
+   before transmitting a message; and how a message should be further
+   destructured when additional information has been received.  The
+   latter allows commitment protocols, with the cheq annotation
+   drawing the conclusions when decommitment occurs.
+
+** The manual has been updated for CPSA 4, and equipped with a large
+   number of (we hope) interesting examples.  See
+   doc/src/cpsa4manual/examples/ for the examples.
+
+* Changes in version 4.3.1
+
+** Algebra signature extensions may be specified in a protocol.
+
+** Double quote and backslash characters are allowed in strings so
+   that S-expressions can contain Windows file names.
+
+** State rules are omitted from protocols that make no use of state.
+
+* Changes in version 4.3.0
+
+** Added support for Diffie-Hellman algebra extensions.
+
+** Added support for algebra signature extensions.
+
+** Added the Roletran compiler and proofs of its correctness.
+   The Roletran compiler translates a CPSA protocol role into a
+   language independent procedure.  The procedures are easily
+   translated into the source code for existing programming languages.
+
+** Added POV link in tree display generated by cpsa4graph.
+
+** Made it an error to apply a macro to the wrong number of arguments.
+
+* Changes in version 4.2.2
+
+** Added the cpsa4goalsat program.  The program prints the labels of
+   skeletons that do not satisfy a defgoal.  For each point of view
+   skeleton specified by a goal, the program prints a list.  The first
+   element of the list is the label of the point of view skeleton.
+   The remaining elements of the list are labels of the skeletons that
+   do not satisfy the goal.
+
+** Fixed a bug in thinning that caused channel assumptions to disappear.
+
+* Changes in version 4.2.1
+
+** Added support for new versions of GHC (>= 8.8) that omit the fail
+   method from the Monad type class.
+
+** Repaired a bug in thinning in which it occurred when it should not
+   have.  CPSA now ensures that the strands in the point-of-view remain
+   unmodified.
+
+** Added support for variables that occur in facts but do not occur in
+   strands.
+
+** Added goals-sat option (-g) so that CPSA stops pursuing a branch
+   when a set of goals are satisfied.
+
+* Changes in version 4.2.0
+
+** Added support for messages on channels.
+   A message can now be sent on a channel.  A channel can be either
+   authenticated, confidential, or both.  Channels provide a direct
+   implementation of behavior that was prevously simulated with
+   encryption in a bulky, awkard way.
+
+** Added the cpsainit program.
+   The cpsainit program copies files from the CPSA data directory into
+   a fresh CPSA project directory.  The files ease the task of
+   automating the use of the various CPSA tools.
+
+* Changes in version 4.1.1
+
+** This is a bug fix release.  There are no user visible changes.
+
+* Changes in version 4.1.0
+
+** Added rules and facts.
+   Rules are associated with protocols, and facts are associated with
+   skeletons.  A rule is a geometric formula that is used as a rewrite
+   rule, and a fact is a named relation between values.  See
+   cpsagoal.pdf for a description of rules and facts.
+
+* Changes in version 4.0.0
+
+** Changed the goal language to one that is strand-oriented.
+
+** Enabled compilation using GHC 8.01 by removing the Algebra class.
+
+** Purged cpsaannotations and cpsaparameters.
+
+* Changes in version 2.5.3
+
+** Corrected errors in the documentation on security goals.
+
+** Enabled compilation using GHC 7.10 by making some monads
+   applicative.
+
+* Changes in version 2.5.2
+
+** Added an option to purge traces in skeletons while graphing
+   In cpsagraph, supplying the --purge-traces option causes skeletons
+   to be printed without their traces.  This saves on clutter when
+   traces are large and unused.
+
+** Updated README to reflect that Haskell Platform should always be used.
+   It's available everywhere now.
+
+* Changes in version 2.5.1
+
+** CPSA Goals document updated
+
+* Changes in version 2.5.0
+
+** Added support for security goals
+   In CPSA, a security goal is expressed as a sentence in first-order
+   logic.  It asserts that if some properties hold for a skeleton,
+   then some other properties must hold for all shapes computed by
+   CPSA starting with the skeleton.  Security goals can be used to
+   formally state authentication and secrecy goals of a protocol.
+
+   Security goals have been integrated into the main CPSA program.
+   The new defgoal form can be used to pose an analysis problem by a
+   sentence instead of a skeleton.  CPSA extracts a point-of-view
+   skeleton from the antecedent of the formula and then analyzes it.
+   When it prints a shape, it checks to see if the shape satisfies the
+   conclusion of the security goal.  See cpsagoals.pdf for more
+   information.
+
+* Changes in version 2.4.0
+
+** Added program cpsasas
+   The cpsasas program extracts a formula in the language of
+   order-sorted first-order logic for each problem and its shapes from
+   a CPSA run. The formula is called a shape analysis sentence. The
+   formula is modeled by all realized skeletons when CPSA finds all
+   the shapes for the problem.  The sentence can be use with an
+   automated first-order theorem prover to verify security goals
+   associated with a protocol.
+
+   This formula extractor uses a node-oriented language, rather than a
+   strand-orient language.  The new language integrates well with
+   other work on security goals and better supports protocol
+   transformations.
+
+** Program cpsalogic removed
+   The strand-oriented formula extractor has been removed.
+
+* Changes in version 2.3.5
+
+** Added a translator from JSON to CPSA S-Expressions
+
+   When given the -j option, the program cpsapp translates
+   S-Expressions into JavaScript Object Notation (JSON) to ease
+   processing in other languages.  The new program cpsajson translates
+   JSON encoded CPSA into CPSA S-Expressions.
+
+   An example of using JSON for input and output in Python is in
+   src/split.pl.  This program copies the skeletons in a CPSA source
+   file into separate files.
+
+* Changes in version 2.3.4
+
+** Splicing added to macros
+
+   The macro expander supports splicing.  The splicing character is
+   '^'.  Example: (a ^(b c) d) becomes (a b c d) after macro
+   expansion.
+
+** Diffie-Hellman algebra is disabled
+   The implementation has never worked well enough to be anything but
+   experimental, so it is now enabled via a compile-time switch.
+
+* Changes in version 2.3.3
+
+** Thinning has replaced pruning
+   Pruning was shown to be incorrect, so it has been replaced by
+   thinning.  Two strands are said to be effectively equivalent if the
+   result of removing one is isomorphic to removing the other.
+   Thinning removes one of the strands.  CPSA also implements a
+   multi-strand version of this idea.
+
+* Changes in version 2.3.2
+
+** Bug fixed in prover9
+   A bug was introduced in 2.3.1 that caused it to fail when the input
+   contains a tag.
+
+* Changes in version 2.3.1
+
+** Bug in priority ordering fixed
+   This version reverses the sort predicate so that high numbered
+   priorities are considered first.  Nodes of priority zero will never
+   be solved.
+
+** This version fixes a bug in cohort filtering
+   There may be changes to your output as the fix often produces more
+   skeletons.
+
+* Changes in version 2.3.0
+
+** Priorities for influencing search order added
+   The priority form in roles and skeletons allows the search to focus
+   on specific nodes of interest.
+
+** Role non-origination with position changed
+   A non-origination assumption of the form (3 a) now means the
+   assumption is add when the height of the strand is greater that 3.
+   It used to be added when the height of the strand is at least three.
+
+** Shape Analysis Sentence to Prover9 translator improved
+   Changed the formula translation algorithm so that predicates for
+   the sort declarations of variables are added to generated formulas.
+   Previously, the sort information was ignored.
+
+** Bug fixed in cpsaannotations
+
+* Changes in version 2.2.13
+
+** Better support for Cygwin users
+   Added optional extension for Cygwin users.  On Cygwin, put "export
+   EXE=.exe" in a startup file.
+
+** Bug fixed in src/perm.pl
+
+* Changes in version 2.2.12
+
+** Documentation improved
+   The introductory documentation has been improved and a set of
+   slides has been added that is aimed at new users.
+
+** JavaScript Object Notation (JSON) output supported
+   The CPSA pretty printer cpsapp produces JSON output when given the
+   -j or --json command-line option.  A CPSA string translates to a
+   JSON string in which the first and last characters are a double
+   quote.  A CPSA symbol translates directly to a JSON string.
+
+* Changes in version 2.2.11
+
+** Strand bounded runs produce more output
+   When a problem exceeds a strand bound, CPSA now produces every
+   skeleton within the strand bound before aborting.  Previously, it
+   would abort as soon as it produced one skeleton with too many
+   strands.  The output skeletons are no longer guaranteed to be
+   sequentially labeled when a strand bound violation occurs.
+
+** Include file support added
+   The CPSA preprocessor includes files as it expands macros.  The
+   syntax of the top-level include form is:
+
+       (include FILE)
+
+** The source file name is included as a comment in the output of CPSA
+
+* Changes in version 2.2.10
+
+** The Make.hs program now works with latest Haskell Platform
+   The imports have been changed so that it no longer uses the
+   haskell98 package, which is now hidden by default.
+
+* Changes in version 2.2.9
+
+** Penetrator non-origination assumptions added
+   Atoms declared to be pen-non-orig cannot be originated by the
+   adversary but can carried.  An atom assumed to be penetrator
+   non-originating can be used to model passwords and similar
+   concepts.  Several regular participants might know a password and
+   originate it in a run of a protocol, but an idealized password is
+   one the penetrator cannot guess.
+
+** Collapsing is performed before test solving
+   Previously, collapsing was performed on shapes and shapes that
+   could have been derived via a dead skeleton and collapsing where
+   missed.  For an example, see tst/preprocess.scm.
+
+** Disabling displacement option retired
+   The command-line option that disabled displacement has been removed.
+
+* Changes in version 2.2.8
+
+** Performance enhancement
+   In special circumstances, the generalization method called variable
+   separation takes too long.  A bound has been added that limits the
+   number of attempts to separate variables.  The result is CPSA may
+   report a skeleton is a shape when another is more general.
+
+** Pruning bug fixed
+   Pruning is never supposed to apply to strands in the image of the
+   point-of-view skeleton, but previous version did so.
+
+* Changes in version 2.2.7
+
+** A bug in the matcher in each algebra was repaired
+   There was a missing case involving asymmetric key inverse that
+   caused an erroneous matching failure.
+
+** Compiler warnings eliminated
+   The C preprocessor is now used to eliminate the warning that
+   the use of Data.Map.foldWithKey is deprecated while preserving the
+   ability to compile CPSA using GHC 6.x.
+
+** Diffie-Hellman algebra bug fixed
+   CPSA produces two listeners for the term (exp (exp (gen) x) y),
+   instead of one as it used to.  Test case tst/dhke.scm shows the bug
+   has been fixed.
+
+** Diffie-Hellman algebra documentation added
+   The document titled "Simple Diffie-Hellman Algebra" is in cpsasdha.pdf.
+
+* Changes in version 2.2.6
+
+** SVG tooltips work once again
+   The generated SVG diagrams display a tooltip for each role and node
+   in a skeleton.  The method used for specifying a tooltip stopped
+   working in recent versions of Firefox, so a new method was
+   implemented.  Tests show Chrome and IE 9 also now correctly display
+   tooltips.
+
+* Changes in version 2.2.5
+
+** Support for hashing added
+   Both the Basic and Diffie-Hellman term algebras have a new function
+   symbol hash that provides support for hashing.  The term (hash X)
+   is treated as a kind of encryption in which the term X is the
+   encryption key.
+
+* Changes in version 2.2.4
+
+** GHC link time option added
+   For GHC version 7.0.0 or greater, some runtime options used by CPSA
+   were turned off by default due to security concerns irrelevant to
+   CPSA.  The runtime options are now enabled.
+
+** Shape Analysis Sentences
+   The orig predicate was added to a description of a skeleton.
+   Without it, the important property of a shape analysis sentence
+   described in Theorem B.1 of The CPSA Specification does not hold.
+
+   Also, the Prolog program src/prover9.pl was added.  It translates
+   cpsalogic output into prover9 syntax.
+
+* Changes in version 2.2.3
+
+** New program added
+   The cpsalogic program extracts a formula in the language of
+   order-sorted first-order logic for each problem and its shapes from
+   a CPSA run. The formula is called a shape analysis sentence. The
+   formula is modeled by all realized skeletons when CPSA finds all
+   the shapes for the problem.  The sentence can be use with an
+   automated first-order theorem prover to verify security goals
+   associated with a protocol.
+
+   To support the cpsalogic program, cpsa was modified so that for
+   each shape, it prints a homomorphism from the point-of-view
+   skeleton to the shape.
+
+** Documentation updated
+   The CPSA Specification was extensively rewritten to improve
+   readability and reflect the current code base.  Appendix B was
+   added.  It describes the theory behind shape analysis sentences and
+   cpsalogic.
+
+   The CPSA Design was updated to reflect the current code base and a
+   section was added that describes the modules in the source code.
+
+** Pruning bug fixed
+   A coding error that lead to unjustified pruning has been fixed.
+
+* Changes in version 2.2.2
+
+** Completeness problem corrected
+   Added an new condition to the solved filter so that CPSA now finds
+   the shape in targetterms8.
+
+** Performance problem corrected
+   Corrected a memory consumption problem exhibited by Wang's Fair
+   Exchange Protocol.  Before the correction, CPSA used 1.9GB of
+   memory, afterwords, it uses 3MB.
+
+** Non-ASCII accepted as input
+   Non-ASCII letters are accepted as constituents of symbols and
+   strings.
+
+* Changes in version 2.2.1
+
+** Web graph output extension changed from .xml to .xhtml
+   Firefox works better with this file extension.
+
+** No HTML5 sliders
+   The zoom option for cpsagraph no longer generates HTML5 sliders due
+   to changes designed to make large documents load faster.
+
+** Program cpsagraph tree construction algorithm improved
+   The time and space used to form derivation trees has been reduced.
+
+** Treeless option added to cpsagraph
+   For input too large to process otherwise, option --treeless
+   generates an XHTML document without trees, and therefore uses less
+   memory.  It works as long as each skeleton in the input fits into
+   memory.  The default XHTML generator requires that all skeletons
+   fit in memory simultaneously.
+
+** Output bug in cpsadiff fixed
+   A bug in cpsadiff that caused it to fail to print all of its output
+   before it exited has been fixed.
+
+* Changes in version 2.2.0
+
+** Pruning reverted to CPSA 2.1.0 behavior
+   Pruning once again occurs after contractions and listener
+   augmentations.  We found examples where it is essential to prune
+   after a contraction.  We are exploring other ways of addressing the
+   completeness problems due to pruning.
+
+** Runtime options can be specified within a file
+   The herald form has been added.  It allows one to specify most of
+   the options currently specified on the command line within a file.
+   For example, to specify the option --bound=12 within a file, write:
+
+   (herald "Needham-Schroeder Public-Key Protocol" (bound 12))
+
+** Role annotation influences test node search algorithm
+   If a role includes (reverse-search) in its association list, the
+   order in which the nodes of a strand that is an instance of this
+   role is search for a test node will be reversed.  By default, CPSA
+   selects the earliest test node in a strand, but with this
+   annotation, it will select the latest one.
+
+** CPSA specific diff program added
+   The program cpsadiff has been added.  The program compares two CPSA
+   output files S-expression by S-expression, and prints the first
+   skeleton that differs.  For Windows users, there is now a diff
+   program available without installing MSYS or Cygwin.
+
+** Some programs gently handle incomplete S-expressions
+   When a CPSA run is aborted, it may produce an incomplete
+   S-expression.  The programs cpsagraph, cpsashapes, and cpsapp,
+   treat an incomplete S-expression as end-of-file, and print a
+   warning message.  This change makes it easier to analyze runs that
+   fail to terminate.
+
+** Blue marks realized reception nodes
+   The program cpsagraph uses the color blue to distinguish realized
+   reception nodes from transmission nodes.
+
+** Diagram scalers added
+   When viewing large outputs in cpsagraph's expanded format, by
+   supplying the --zoom option, one gets controls that allow SVG
+   diagrams to be scaled.
+
+* Changes in version 2.1.2
+
+** Displacement on by default
+Displacement is on by default and the sense of the -d switch has been
+changed.  It now disables displacement.
+
+** Diffie-Hellman support changed
+Previous support for Diffie-Hellman had serious problems for which we
+have no solutions at this time.  We recognize now that the concepts of
+unique origination and non-origination as currently defined do not fit
+in well with an implementation of Diffie-Hellman in which exponents
+are an Abelian group.
+
+For now, we provide simplified Diffie-Hellman support with an algebra
+that has an equation for the commutativity of exponents, but no other
+equation.
+
+	    (exp (exp (gen) x) y) = (exp (exp (gen) y) x)
+
+This algebra is an attempt to provide some kind of Diffie-Hellman
+support within the current framework while we search for the proper
+framework.
+
+* Changes in version 2.1.1
+
+** Graph program handles incomplete output
+The graph program no longer requires that every seen child mentioned
+in the output is in it.  Therefore, the program can handle output from
+some interrupted runs.
+
+** Pruning restriction
+We found examples in which pruning prevented us from finding some
+shapes.  Pruning is now performed only after augmentation, and only
+when the augmented strand is involved.
+
+** Compact output notation
+There is a new infix notation for XHTML and LaTeX output that is more
+compact, and hopefully more readable for large problems.  Enable it by
+specifying the -i flag when invoking cpsagraph or cpsapp.
+
+* Changes in version 2.1.0
+
+** Initial comments displayed
+The graph program displays the initial comments in an input file.
+
+** New command line options
+Four new command line options have been added:
+
+   -d         --displacement     enable displacement
+   -c         --check-nonces     check nonces first
+   -t         --try-old-strands  try old strands first
+   -r         --reverse-nodes    try old nodes first
+
+In rare cases, the use of one of these options may allow normal
+termination in a case in which CPSA aborts otherwise.
+
+** GHC 6.8 no longer supported
+Use GHC 6.10 or greater.
+
+** Bugs fixes
+Some minor bugs were fixed that mostly effect artificially generated
+protocols.
+
+* Changes in version 2.0.5
+
+** Performance enhanced
+A source of duplicated effort was removed that reduces the run time
+for analyzing the NSL5 protocol from about a day to about a minute!
+The enhancement doesn't seem to effect the run times of many other
+protocols.
+
+** Bugs fixes
+Some minor bugs were fixed, and there are now no tests in the test
+suite that shows that CPSA fails to find a shape in should.
+
+** CPSA theory document added
+A document on authentication tests has been added.  The document is
+not installed are the CPSA Specification and the CPSA Design documents.
+The sources for the document are provided, and must be built by typing
+make in the doc directory.
+
+* Changes in version 2.0.4
+
+** Input skeletons are no longer pruned
+
+** Bug in the acyclic graph checker fixed
+In rare cases, the buggy checker allowed skeletons with circular
+node orderings.
+
+* Changes in version 2.0.3
+
+** Generalization bug fixed
+A bug associated with origination assumption forgetting has been
+fixed.
+
+** SWI Prolog tools added
+Tools that allows CPSA to be manipulated in Prolog are in the src
+directory.  The tools include a pretty printer that uses the same
+algorithm as is used in the Haskell pretty printer.
+
+** Cabal description improved
+An expanded description of CPSA has been added to its cabal file.
+
+* Changes in version 2.0.2
+
+** Better message terms in graphs
+CPSA graph now uses the information in the traces comment when it's
+available when printing message terms.
+
+* Changes in version 2.0.1
+
+** Inherited unique origination bug fixed
+Added check that unique origination position is preserved by
+inheritance.
+
+** Variable printing improved
+Improved renaming algorithm used to avoid collisions while printing
+variables.
+
+* Changes in version 2.0.0
+
+** CPSA is an open source package
+
+** Better support for Diffie-Hellman
+Makefiles use the *.sch the extension for problems that use
+Diffie-Hellman.
+
+* Changes in version 1.5.5
+
+** Encryption tests solved before nonce tests
+CPSA now solves encryption tests before it tries nonce tests.
+Experiments have show this heuristic can lead to substantially smaller
+derivation trees in some cases, but in a few cases, derivation trees
+are slightly larger.
+
+** Better error messages for ill-formed roles and preskeletons
+CPSA generates a more informative message when a role or a preskeleton
+is not well-formed.
+
+* Changes in version 1.5.4
+
+** Pruning bug fixed
+A check that origination assumptions are honored by the homomorphisms
+associated with pruning was added.  As a result, cases in which
+erroneous pruning was performed have been eliminated.
+
+** Comments in skeletons are preserved
+The comment field in a skeleton given as input is included when it is
+printed.
+
+* Changes in version 1.5.3
+
+** Skeleton diagrams improved
+In a skeleton diagram, an edge between nodes that do not agree on
+their message is displayed with a dashed line.
+
+** Less general skeletons removed from cohort
+During contraction and regular augmentation, some skeletons that are
+less general than others are removed from consideration.  These
+skeletons contribute nothing new.
+
+* Changes in version 1.5.2
+
+** Pruning bug fixed
+Added the requirement to pruning that ordering relations associated
+with the more general (pruned) strand are implied by the less general
+strand.
+
+** Role non-orig length specification added
+Added support for delaying the inheritance of a role non-origination
+assumption by adding a length specification to role non-origination
+declarations.  The non-orig assumption is inherited when the strand
+meets the length requirement.
+
+* Changes in version 1.5.1
+
+** Generalization bug fixed
+CPSA no longer prunes while generalizing.
+
+** Change license to BSD
+
+* Changes in version 1.5.0
+
+** Diffie-Hellman algebra added
+This is an early access release of the Diffie-Hellman algebra.  Its
+signature is described in the CPSA User Guide.  It has only been
+tested on the example in tst/dh.lisp, and the output seems reasonable.
+
+** Keyword defpreskeleton changed to defskeleton
+Most often, the defpreskeleton form described a skeleton.  To reduce
+confusion, form has been renamed.  The CPSA program still accepts the
+old keyword.  A script that updates the keyword is in src/preskel.sh.
+
+* Changes in version 1.4.9
+This version is a bug fix and speed enhancement fix only.
+
+** Obscure display bug fixed
+
+** Role origination check bug fixed
+The origination check is now omitted when the inheriting strand is too
+short to inherit a unique origination assumption.
+
+** Role origination check bug fixed
+
+** Outer most encryptions preferred for encryption tests
+When choosing among encryptions for critical messages, CPSA prefers
+outer most encryptions over ones within another encryption.
+
+* Changes in version 1.4.8
+
+** Support for key usage added
+A name may be associated with more than one asymmetric key using the
+binary form of pubk, where the first argument is a quoted constant.
+For example, (pubk "sig" a) and (pubk "enc" a) can be used to describe
+name a's public signature and encryption key.
+
+** Progressive refinement technique described
+The advice section of the CPSA Primer describes the progressive
+refinement technique.
+
+* Changes in version 1.4.7
+
+** Unused role variables are silently ignored
+Unused role variables used to cause an error.  This behavior
+interfered with the practice of submitting output as input with small
+modifications.
+
+** Isomorphism check performance improved
+
+** Added an overview section to the CPSA Specification
+
+* Changes in version 1.4.6
+
+** Added no isomorphism checking mode (--noisochk)
+In noisochk mode, isomorphism checks are avoided by not identifying
+duplicate skeletons and by not generalizing realized skeletons.
+Isomorphism checks between two skeletons with a large number of
+strands can take a long time, so for some problems, CPSA runs faster
+in this mode.  Warning, in this mode, CPSA reports that each realized
+skeleton is a shape even when it is not one.  In this way, the
+cpsashapes program can be used to extract the realized skeletons from
+the run.
+
+** Added LaTeX output mode to cpsagraph
+The cpsagraph program generates LaTeX source that places S-expressions
+in verbatim environments and generates XY-pic diagrams of skeletons.
+The XHTML output should always be preferred, however, LaTeX output is
+useful when generating a report or a briefing on the results of using
+CPSA.
+
+** CPSA Primer updated
+The example output has been updated to reflect recent changes,
+numerous editorial improvements were made, and the advice section
+has been augmented with some recently learned tricks.
+
+** CPSA algorithm specified
+At last.  The CPSA Specification contains a specification of all of
+the parts of the CPSA algorithm.  In particular, a description of
+the augmentation algorithm is in writing.
+
+** CPSA Design rewritten
+Most of the material that was once duplicated in both The CPSA
+Specification and The CPSA Design has been purged from the design
+document.  The document now assumes its reader have already read The
+CPSA Specification.  As a result, it focuses solely on implementation
+issues, and leaves correctness issues to the specification.
+
+** Aborted output is no longer generalized
+CPSA will abort when a strand bound or a step count is exceeded.
+Since generalization involves isomorphism checks, the old abort
+implementation could take a very long time to finish.
+
+* Changes in version 1.4.5
+
+** CPSA macros expanded by cpsa program
+CPSA now expands macros rather than using a preprocessor for the task.
+The cpsapp program now just pretty prints its input.
+
+** Memory leak fixed
+Permutations no longer memoized--can cause excessive use of memory.
+
+** In rely/guarantee formulas, "t" and "f" are no longer keywords
+Use (and) for truth and (or) for falsehood.
+
+* Changes in version 1.4.4
+This is a correctness critical update to CPSA.
+
+** Shape search design error fixed.
+The shape search algorithm includes a new shape collapsing operation
+that allows CPSA to find shapes it used to miss.  The operation
+includes the symbol "collapsed" followed by the two strands that were
+merged.  The Otway-Rees example in tst/or.scm makes use of the new
+operation.
+
+** Pruning bug fixed.
+The pruning operation now uses a substitution that is idempotent for
+strands other than the pruned strand.
+
+** Specification document added.
+The sources to the CPSA document that specifies CPSA as a reduction
+system are now included and can be used to build doc/cpsaspec.pdf.
+
+** S-expression reader bug fixed.
+The S-expression reader now reads much larger input files.  This means
+cpsashapes can be used on larger files.
+
+** Multiprocessor enabled CPSA built by default.
+See the README for instructions on how to build CPSA when the parallel
+libraries are missing.
+
+* Changes in version 1.4.3
+
+** Improved performance due to better substitution data structure.
+
+** Corrected a bug in substitution associated with variables of sort mesg.
+The fix changes the output for tst/dy.scm.
+
+** Corrected a bug in substitution composition
+The fix changes the output for tst/dy.scm.
+
+** Corrected a bug that caused some valid generalizations to be rejected.
+
+** Sort "term" is no longer a synonym for "mesg".
+
+* Changes in version 1.4.2
+
+** Fixed a contraction and an augmentation bug.
+
+** The protocol specification checker cpsaparameters added.
+The cpsaparameters program detects some specification errors by
+performing a base term usage analysis.
+
+** Parallel search available on SMPs.
+Semi-explicit parallelism annotations were added to the CPSA search
+routine.  Enable with -fpar during configuration.
+
+** Pretty printer changed.
+All lists in a defrole and a defpreskeleton are now broken whenever
+one of them is.
+
+** Preskeletons	with no strands are detected, and an error is signaled.
+
+* Changes in version 1.4.1
+
+** The macro preprocessor cpsapp added.
+The preprocessor was added to ease the task of specifying protocols
+with reoccurring message patterns. It can also be used to pretty print
+cpsa input.
+
+** Base terms allowed as principals in annotations.
+Base terms as principals are now allowed so as to allow keys as
+principals.
+
+** Cohort filtering added.
+The cohort is now filtered so that every member is solved.  The
+filtering removes dead ends earlier in the computation.
+
+** Fixed a minimization bug.
+When separating a uniquely originating base term, either the term or
+its clone is uniquely originating.
+
+* Changes in version 1.4.0
+
+** Variable declaration syntax changed.
+More than one variable can be declared to be of a given sort in a
+single declaration form.
+
+** New sort added.
+The sort data was added, a sort that is similar to sort text.  The new
+sort can be used to partition nonce-like data from ordinary text-like
+data.  See tst/epmo.scm for an example of its use.
+
+** Sort symbol changed.
+The symbol used for the top sort has been changed from term to mesg.
+
+** Default output format for cpsagraph changed.
+The default output format for cpsagraph is now the expanded format.
+
+* Changes in version 1.3.2
+This is a bug fix only release.
+
+** Fixed a minimization bug.
+Use the transitive closure of the communication ordering before
+deleting a node.
+
+** Added new well-formed preskeleton check.
+Every uniquely originating role term mapped by in instance must be
+mapped to a term that originates on the instance's strand.
+
+* Changes in version 1.3.1
+This is a bug fix only release.
+
+** Bad listener augmentation bug fixed.
+Listeners are now added only for the decryption keys of the top most
+encryptions in the escape set.  This fixes a bug reported by Eric Bush.
+
+* Changes in version 1.3.0
+This release changes the external syntax and fixes bugs.
+
+** Encryption syntax simplified.
+To reduce clutter, when enc has more that two terms, a concatenation
+is added to all but the last term.
+
+** New name for document.
+The CPSA Tutorial was renamed to the CPSA Primer.
+
+** The cpsaannotations program has documentation.
+Preliminary documentation is in the CPSA User Guide.
+
+** A make system for Windows was added.
+The file doc/Make.hs allows the use of Windows without Cygwin or MinGW.
+
+** A strand augmentation bug was fixed.
+This change allows CPSA to find the flaw in the Dolev-Yao Example 1.3
+test case.
+
+** Assumption forgetting works again.
+This is a fix to a bug that was introduced in the previous release.
+
+** Isomorphism bug fixed.
+A strand permutation map was applied to the wrong ordering.
+
+* Changes in version 1.2.3
+This is a bug fix only release.
+
+** Illegal comments no longer generated.
+The comment generated for non-default strand bounded or step count
+limited runs contained an illegal character that has been removed.
+As a result, the graphing programs work again.
+
+** A substitution printing failure has been fix.
+
+** The augmentation bug fix in 1.2.2 had a problem that is now fixed.
+
+** Role variables in protocols are printing in the order they were read.
+In previous version, role variables were printed in reverse order.
+
+** Better title generated for the expanded view.
+The name of the first protocol is included in the title of the
+generated XML document.
+
+** Testing showed enabling multiprocess support gives no speedup.
+
+* Changes in version 1.2.2
+
+** This release fixes a bug.
+During augmentation, previously, when a role was searched for a
+transforming edge, only the shortest instance was returned as a
+candidate for augmentation.  Now all instances are returned.
+
+** Multiprocessor support is available.
+The README describes how to enable multiprocessor support.  This
+feature is untested.
+
+** Partial support for Rely-Guarantee annotations has been added.
+The cpsaannotations program annotates shapes when given an annotated
+protocol.  The is no documentation yet, but you can test it with:
+$ (cd tst; make epmo-accounts-nums_annotations.xml)
+
+* Changes in version 1.2.1
+
+** This is a bug fix release. There are no user-visible changes.
+
+* Changes in version 1.2.0
+
+** Tags are now non-atomic terms in the Basic Crypto Algebra.
+
+** The expanded view (-x) option is available as an output for cpsagraph.
+
+** Support for local installation was added.
+
+** A standard set of GNU Make rules was added.
+
+** Comments as S-expressions may appear at the file level of input.
+
+** The program cpsabasic was renamed to cpsa.
+
+** The --bound option to cpsa limits the number of strands in a skeleton.
+
+** The current shape search is known to be not complete. See tst/dy.scm.
+
+* Changes in version 1.1.0
+
+** Support for indeterminates was added to the Basic Crypto Algebra.
+Variables of sort term, also called indeterminates, are now available
+in the Basic Crypto Algebra.
+
+** The CPSA Tutorial was added.
+
+* Initial version released as version 1.0.0
+
+Local variables:
+mode:outline
+End:
diff --git a/README b/README
new file mode 100644
--- /dev/null
+++ b/README
@@ -0,0 +1,152 @@
+CPSA4: Cryptographic Protocol Shapes Analyzer Version 4
+
+The Cryptographic Protocol Shapes Analyzer (CPSA) attempts to
+enumerate all essentially different executions possible for a
+cryptographic protocol.  We call them the shapes of the protocol.
+Naturally occurring protocols have only finitely many, indeed very few
+shapes.  Authentication and secrecy properties are easy to determine
+from them, as are attacks and anomalies.
+
+For each input problem, the CPSA program is given some initial
+behavior, and it discovers what shapes are compatible with it.
+Normally, the initial behavior is from the point of view of one
+participant.  The analysis reveals what the other participants must
+have done, given the participant's view.  The search is complete,
+i.e. we proved every shape can in fact be found in a finite number of
+steps, relative to a procedural semantics of protocol roles.
+
+CPSA4 is based on a refactoring of CPSA2.  It is distinct from CPSA3.
+It is used to experiment with new features.  It is where a different
+security goal language, the strand-oriented language described in
+"Deducing Security Goals From Shape Analysis Sentences"
+<https://arxiv.org/abs/1204.0480>, was first implemented.  The size of
+the formulas expressed in the strand-oriented language is typically
+smaller than the ones produced using the previous node-oriented
+language, an important property when the formulas are used to interact
+with theorem provers and proof assistants.
+
+CPSA4 provides rules and facts.  Rules are associated with protocols,
+and facts are associated with skeletons.  A rule is a geometric
+formula that is used as a rewrite rule, and a fact is a named relation
+between values.
+
+CPSA4 provides channels.  Channels are designed to model confidential
+and authenticated communication channels.
+
+This program has been built and tested using the Haskell miminal
+installer and Haskell Platform.  THese are available from
+<http://haskell.org> or from an operating system specific source.  The
+name of the Linux package is usually haskell-platform.  If you have
+problems installing Haskell, try using Haskell Stack, and issue the
+commands "stack init; stack build, stack install".
+
+INSTALLING FROM A TARBALL
+
+Build and install with:
+
+$ cabal build
+$ cabal install --overwrite-policy=always
+: To find the directory containing documentation and samples, type:
+$ cpsa4 -h
+
+QUICK START (Linux)
+
+: To analyze a protocol you have put in prob.scm type:
+$ cpsa4 -o prob.txt prob.scm
+$ cpsa4graph -o prob.xhtml prob.txt
+$ firefox -remote "openFile(`pwd`/prob.xhtml)"
+
+QUICK START (Mac)
+
+: To analyze a protocol you have put in prob.scm type:
+$ cpsa4 -o prob.txt prob.scm
+$ cpsa4graph -o prob.xhtml prob.txt
+$ open prob.xhtml
+
+QUICK START (Windows)
+
+With Cygwin or MinGW, the installation is similar to the Linux
+install.  The software has been tested on a Windows system on which
+neither MinGW or Cygwin has been installed.  Install Haskell Platform
+Core and then run:
+
+C:\...> cabal update
+C:\...> cabal install parallel
+C:\...> cabal build
+C:\...> cabal install --overwrite-policy=always
+
+Documentation and samples are in the directory given by
+C:\...> cpsa4 -h
+
+The installed programs can be run from the command prompt or via a
+batch file.  Alternatively, copy doc/Make4.hs into the directory
+containing your CPSA problem statements, and load it into a Haskell
+interpreter.  Read the source for usage instructions.
+
+MAKEFILE
+
+To start your own project, create a fresh directory and then type:
+
+$ cpsa4init
+
+This will create a Makefile that automates the analysis process.  For
+Windows, it will also create Make4.hs, a cpsa build script written in
+Haskell.
+
+PARALLELISM
+
+CPSA is built so it can make use of multiple processors.  To make use
+of more than one processor, start CPSA with the -N runtime flag, as in
+"+RTS -N -RTS".  The GHC documentation describes the -N option in
+detail.
+
+DOCUMENTATION
+
+The starting point for CPSA documentation doc/index.html.  Most users
+should read it and skip the rest of this section.  The documentation
+includes a user guide as an XHTML document, and three LaTeX documents.
+The CPSA Primer provides the background required to make effective use
+of the CPSA tool collection.  For those interested in the
+implementation, The CPSA Theory contains a high-level description of
+the algorithm and the current state of the effort to show that when
+program terminates, it produces a description of every possible
+execution of the protocol consistent with the initial point-of-view
+skeleton.  The CPSA Specification formally describes the implemented
+algorithm as a term reduction system.  The CPSA Design describes
+implementation details and assumes The CPSA Specification has been
+read.  The CPSA Design should be read if one is interested in reading
+the Haskell source for the tool collection.
+
+TEST SUITE
+
+Cabal currently fails to preserve permissions correctly.  To fix this
+problem, type:
+
+$ /bin/sh fixperms
+
+: To run the test suite type:
+$ ./cpsatst
+
+Tests with the .scm extension are expected to complete without error,
+tests with the .lsp extension are expected to fail, and tests with the
+.lisp extension are not run.  New users should read tst/README, and
+then browse the files it suggests while reading CPSA documentation.
+
+ADDITIONAL PROGRAMS
+
+The src directory of the source distributions includes programs
+written in Scheme, Prolog, Elisp, and OCamlq for performing tasks.  Use them
+as templates for your special purpose CPSA analysis and transformation
+needs.  Also, when given the --json option, the CPSA pretty printer
+cpsapp will transform CPSA S-expressions into JavaScript Object
+Notation (JSON).
+
+On Linux, the GHC runtime can request so much memory that thrashing
+results.  The script in src/ghcmemlimit sets an environment variable
+that limits memory to the amount of free and reclaimable memory on
+your machine.
+
+KNOWN BUGS
+
+Variable separation in generalization fails to separate variables in
+terms of the form (ltk a a).
diff --git a/README.txt b/README.txt
deleted file mode 100644
--- a/README.txt
+++ /dev/null
@@ -1,138 +0,0 @@
-CPSA: Crptographic Protocol Shapes Analyzer Version 3
-
-The Cryptographic Protocol Shapes Analyzer (CPSA), is a software tool
-designed to assist in the design and analysis of cryptographic
-protocols.  A cryptographic protocol is a specific pattern of
-interaction between principals.  TLS and IKE are some examples of
-well-known cryptographic protocols.
-
-CPSA attempts to enumerate all essentially different executions
-possible for a cryptographic protocol.  We call them the shapes of the
-protocol.  Many naturally occurring protocols have only finitely many,
-indeed very few shapes.  Authentication and secrecy properties are
-easy to determine from them, as are attacks and anomalies, and an
-auxiliary tool reads off strongest authentication and secrecy goals
-from the shapes.
-
-For each input problem, the CPSA program is given some initial
-behavior, and it discovers what shapes are compatible with it.
-Normally, the initial behavior is from the point of view of one
-participant.  The analysis reveals what the other participants must
-have done, given the participant's view.
-
-CPSA version 3 features support for Diffie-Hellman and state.  The
-manual in <doc/cpsamanual.pdf> provides a comprehensive description of
-the program.
-
-CPSA: Cryptographic Protocol Shapes Analyzer
-
-This program has been built and tested using Haskell Platform.
-It is available from <http://haskell.org> or from an operating
-system specific source.  The name of the Linux package is usually
-haskell-platform.
-
-If the Internet is available, install CPSA with:
-
-$ cabal update
-$ cabal install cpsa
-
-Find the documentation directory by typing "cpsa -h" in a command
-shell, and view index.html in a browser.
-
-INSTALLING FROM A TARBALL
-
-Build and install with:
-
-$ cabal build
-$ cabal install --overwrite-policy=always
-: To find the directory containing documentation and samples, type:
-$ cpsa4 -h
-
-QUICK START (Linux)
-
-: To analyze a protocol you have put in prob.scm type:
-$ cpsa -o prob.txt prob.scm
-$ cpsagraph -o prob.xhtml prob.txt
-$ firefox -remote "openFile(`pwd`/prob.xhtml)"
-
-QUICK START (Mac)
-
-: To analyze a protocol you have put in prob.scm type:
-$ cpsa -o prob.txt prob.scm
-$ cpsagraph -o prob.xhtml prob.txt
-$ open prob.xhtml
-
-QUICK START (Windows)
-
-With Cygwin or MinGW, the installation is similar to the Linux
-install.  The software has been tested on a Windows system on which
-neither MinGW or Cygwin has been installed.  Install Haskell Platform
-Core and then run:
-
-C:\...> cabal update
-C:\...> cabal install parallel
-C:\...> cabal build
-C:\...> cabal install --overwrite-policy=always
-
-Documentation and samples are in the directory given by
-C:\...> cpsa -h
-
-The installed programs can be run from the command prompt or via a
-batch file.  Alternatively, copy doc/Make.hs into the directory
-containing your CPSA problem statements, and load it into a Haskell
-interpreter.  Read the source for usage instructions.
-
-MAKEFILE
-
-To start your own project, create a fresh directory and then type:
-
-$ cpsainit
-
-This will create a Makefile that automates the analysis process.  For
-Windows, it will also create Make4.hs, a cpsa build script written in
-Haskell.
-
-PARALLELISM
-
-CPSA is built so it can make use of multiple processors.  To make use
-of more than one processor, start CPSA with the -N runtime flag, as in
-"+RTS -N -RTS".  The GHC documentation describes the -N option in
-detail.
-
-TEST SUITE
-
-Cabal currently fails to preserve permissions correctly.  To fix this
-problem, type:
-
-$ /bin/sh fixperms
-
-: To run the test suite type:
-$ ./cpsatst
-
-Tests with the .scm extension and .prot extension are expected to
-complete without error, tests with the .lsp extension are expected to
-fail, and tests with the .lisp extension are not run.  New users
-should read tst/README, and then browse the files it suggests while
-reading CPSA documentation.
-
-Don't develop your protocols in the tst directory.  The script is
-optimized for testing the cpsa program, not analyzing protocols.
-
-ADDITIONAL PROGRAMS
-
-The src directory of the source distributions includes programs
-written in Scheme, Prolog, Elisp, and OCaml for performing tasks.  Use
-them as templates for your special purpose CPSA analysis and
-transformation needs.  Also, when given the --json option, the CPSA
-pretty printer cpsapp will transform CPSA S-expressions into
-JavaScript Object Notation (JSON).
-
-On Linux, the GHC runtime can request so much memory that thrashing
-results.  The script in src/ghcmemlimit sets an environment variable
-that limits memory to the amount of free and reclaimable memory on
-your machine.
-
-KNOWN BUGS
-
-Variable separation in generalization fails to separate variables in
-terms of the form (ltk a a).
diff --git a/build.xml b/build.xml
new file mode 100644
--- /dev/null
+++ b/build.xml
@@ -0,0 +1,104 @@
+<project name="cpsaextras" default="all" basedir=".">
+
+<!-- Directory names -->
+<property name="src" value="src"/>
+<!-- Directory for Scala libraries -->
+<property name="lib" value="lib"/>
+<property name="build" value="build"/>
+<property name="dist" value="dist"/>
+<property name="api" value="api"/>
+
+<property name="proj" value="${ant.project.name}"/>
+<property name="version" value="0.0.0"/>
+<property name="pkg" value="${proj}"/>
+<!-- Name of version resource -->
+<property name="props" value="${src}/${proj}/version.properties"/>
+<!-- Name of Scala library -->
+<property name="library" value="${lib}/scala-library.jar"/>
+
+<!-- One usually need not change anything below this comment -->
+<!-- An exception might be the manifest in the jar task -->
+
+<target name="init">
+  <!-- Create the build directory structure used by compile -->
+  <mkdir dir="${build}"/>
+  <uptodate property="version_added" srcfile="build.xml"
+	    targetfile="${props}"/>
+  <path id="build.classpath">
+    <pathelement location="${build}"/>
+  </path>
+  <taskdef resource="scala/tools/ant/antlib.xml">
+    <classpath>
+      <pathelement location="${lib}/scala-compiler.jar"/>
+      <pathelement location="${lib}/scala-library.jar"/>
+    </classpath>
+  </taskdef>
+</target>
+
+<target name="version" depends="init" unless="version_added">
+  <propertyfile file="${props}">
+    <entry key="version" value="${version}" operation="="/>
+    <entry key="program" value="${proj}" operation="="/>
+  </propertyfile>
+  <unjar src="${library}" dest="${build}"/>
+</target>
+
+<target name="compile" depends="version">
+  <!-- Compile the scala code from ${src} into ${build} -->
+  <scalac srcdir="${src}" destdir="${build}" deprecation="on"
+	  classpathref="build.classpath"/>
+</target>
+
+<target name="resource" depends="init">
+  <!-- Copy resources from ${src} into ${build} -->
+  <copy todir="${build}">
+    <fileset dir="${src}">
+      <include name="**/*.properties"/>
+    </fileset>
+  </copy>
+  <!-- Copy the license into ${build} -->
+  <copy todir="${build}" file="license.txt"/>
+</target>
+
+<target name="all" depends="compile,version,resource">
+  <jar jarfile="${proj}.jar" basedir="${build}">
+    <manifest>
+      <attribute name="Main-Class" value="${pkg}.Main"/>
+      <attribute name="Specification-Title" value="${proj}"/>
+      <attribute name="Specification-Version" value="${version}"/>
+    </manifest>
+  </jar>
+</target>
+
+<target name="doc" depends="version">
+  <mkdir dir="${api}"/>
+  <scaladoc srcdir="${src}" destdir="${api}"
+	    classpathref="build.classpath">
+    <include name="**/*.scala"/>
+  </scaladoc>
+</target>
+
+<target name="dist" depends="all,doc">
+  <mkdir dir="${dist}/${proj}"/>
+  <copy todir="${dist}/${proj}">
+    <fileset dir=".">
+      <include name="${proj}.jar"/>
+      <include name="${lib}/"/>
+      <include name="${src}/**/*.scala"/>
+      <include name="${src}/**/*.properties"/>
+      <include name="${api}/"/>
+    </fileset>
+  </copy>
+  <zip zipfile="${proj}-${version}.zip" basedir="${dist}"/>
+</target>
+
+<target name="clean">
+  <!-- Delete the ${build} directory, the project jar file, -->
+  <!-- the version resource file, and the ${dist} and ${api} directories -->
+  <delete dir="${build}"/>
+  <delete file="${proj}.jar"/>
+  <delete file="${props}"/>
+  <delete dir="${api}"/>
+  <delete dir="${dist}"/>
+</target>
+</project>
diff --git a/coq/Alg.v b/coq/Alg.v
new file mode 100644
--- /dev/null
+++ b/coq/Alg.v
@@ -0,0 +1,576 @@
+(* Message Algebra
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+(** * The Message Algebra *)
+
+Require Import FunInd Nat Bool DecBool Monad Proc.
+(** printing <- #←# *)
+
+Notation var := nat (only parsing).
+
+(** Symmetric keys *)
+
+Inductive skey: Set :=
+| Sv: var -> skey               (* Variable as key *)
+| Lt: var -> var -> skey.       (* Long term key of two names *)
+
+(* An uninformative comment added to make coqdoc happy *)
+
+Definition skey_dec:
+  forall x y: skey, {x = y} + {x <> y}.
+Proof.
+  intros.
+  decide equality; decide equality.
+Defined.
+#[global]
+Hint Resolve skey_dec : core.
+
+(** Asymmetric keys *)
+
+Inductive akey: Set :=
+| Av: var -> akey               (* Variable as key *)
+| Pb: var -> akey               (* Public key of name *)
+| Pb2: string -> var -> akey.   (* Tagged public key of name *)
+
+(* An uninformative comment added to make coqdoc happy *)
+
+Definition akey_dec:
+  forall x y: akey, {x = y} + {x <> y}.
+Proof.
+  intros.
+  decide equality;
+    try apply string_dec;
+    decide equality.
+Defined.
+#[global]
+Hint Resolve akey_dec : core.
+
+Definition akey_eqb x y: bool :=
+  if akey_dec x y then
+    true
+  else
+    false.
+
+(** Message algebra *)
+
+Inductive alg: Set :=
+| Tx: var -> alg                (* Text *)
+| Dt: var -> alg                (* Data *)
+| Nm: var -> alg                (* Name *)
+| Sk: skey -> alg               (* Symmetric key *)
+| Ak: akey -> alg               (* Asymmetric key *)
+| Ik: akey -> alg               (* Inverse asymmetric key *)
+| Ch: var -> alg                (* Channel *)
+| Mg: var -> alg                (* Message *)
+| Tg: string -> alg             (* Tag *)
+| Pr: alg -> alg -> alg         (* Pair *)
+| En: alg -> alg -> alg         (* Encryption *)
+| Hs: alg -> alg.               (* Hash *)
+
+(* An uninformative comment added to make coqdoc happy *)
+
+Definition alg_dec:
+  forall x y: alg, {x = y} + {x <> y}.
+Proof.
+  intros.
+  decide equality;
+    try apply string_dec;
+    decide equality.
+Defined.
+#[global]
+Hint Resolve alg_dec : core.
+
+Definition alg_eqb x y: bool :=
+  if alg_dec x y then
+    true
+  else
+    false.
+
+Lemma alg_eq_correct:
+  forall x y,
+    alg_eqb x y = true <-> x = y.
+Proof.
+  intros.
+  unfold alg_eqb.
+  destruct (alg_dec x y); subst; intuition.
+  inversion H.
+Qed.
+
+Lemma alg_eq_complete:
+  forall x y,
+    alg_eqb x y = false <-> x <> y.
+Proof.
+  intros.
+  unfold alg_eqb.
+  destruct (alg_dec x y); subst; intuition.
+Qed.
+
+(** Event *)
+
+Inductive evt: Set :=
+| Sd: var -> alg -> evt         (* Send *)
+| Rv: var -> alg -> evt.        (* Recv *)
+
+(* An uninformative comment added to make coqdoc happy *)
+
+Definition evt_dec:
+  forall x y: evt, {x = y} + {x <> y}.
+Proof.
+  intros.
+  decide equality; decide equality.
+Defined.
+#[global]
+Hint Resolve evt_dec : core.
+
+(** The message communicated by an event *)
+
+Definition evt_msg (e: evt): alg :=
+  match e with
+  | Sd _ t => t
+  | Rv _ t => t
+  end.
+
+(** ** Kinds of Messages *)
+
+(** Is [x] a basic value? *)
+
+Definition is_basic (x: alg): bool :=
+  match x with
+  | Tx _ => true
+  | Dt _ => true
+  | Nm _ => true
+  | Sk _ => true
+  | Ak _ => true
+  | Ik _ => true
+  | _ => false
+  end.
+
+(** Is [x] a channel variable? *)
+
+Definition is_chan (x: alg): bool :=
+  match x with
+  | Ch _ => true
+  | _ => false
+  end.
+
+(** Is [x] a message variable? *)
+
+Definition is_mesg_var (x: alg): bool :=
+  match x with
+  | Mg _ => true
+  | _ => false
+  end.
+
+(** Is [x] a simple message, one that is not a pair, encryption, or a
+    hash? *)
+
+Definition is_simple (x: alg): bool :=
+  match x with
+  | Pr _ _ => false
+  | En _ _ => false
+  | Hs _ => false
+  | _ => true
+  end.
+
+(** Is [x] an elementary message, one that is not a pair, encryption, a
+    hash, or a tag? *)
+
+Definition is_elem (x: alg): Prop :=
+  match x with
+  | Pr _ _ => False
+  | En _ _ => False
+  | Hs _ => False
+  | Tg _ => False
+  | _ => True
+  end.
+
+(** Is [x] not an elementary message? *)
+
+Definition is_not_elem (x: alg): Prop :=
+  match x with
+  | Pr _ _ => True
+  | En _ _ => True
+  | Hs _ => True
+  | Tg _ => True
+  | _ => False
+  end.
+
+Lemma is_elem_dec:
+  forall x: alg, {is_elem x} + {is_not_elem x}.
+Proof.
+  intros.
+  unfold is_elem.
+  unfold is_not_elem.
+  destruct x; auto.
+Qed.
+
+Lemma alg_elem_ind:
+  forall P: alg -> Prop,
+    (forall x:alg, is_elem x -> P x) ->
+    (forall s: string, P (Tg s)) ->
+    (forall y: alg,
+        P y ->
+        forall z: alg,
+          P z -> P (Pr y z)) ->
+    (forall y: alg,
+        P y ->
+        forall z: alg, P (En y z)) ->
+    (forall y: alg,
+        P y -> P (Hs y)) ->
+    forall x: alg, P x.
+Proof.
+  intros.
+  induction x; simpl; auto; apply H; simpl; auto.
+Qed.
+
+(** ** Inverse of a Message *)
+
+Definition inv (x: alg): alg :=
+  match x with
+  | Ak k => Ik k
+  | Ik k => Ak k
+  | k => k
+  end.
+
+Lemma inv_inv:
+  forall (x: alg),
+    inv (inv x) = x.
+Proof.
+  intros.
+  destruct x; simpl; auto.
+Qed.
+
+Lemma inv_swap:
+  forall (x y: alg),
+    x = inv y <-> y = inv x.
+Proof.
+  split; intros; subst;
+    rewrite inv_inv; auto.
+Qed.
+
+(** ** Type of an Algebra Term *)
+
+Definition type_of (x: alg): type :=
+  match x with
+  | Tx _ => Text
+  | Dt _ => Data
+  | Nm _ => Name
+  | Sk _ => Skey
+  | Ak _ => Akey
+  | Ik _ => Ikey
+  | Ch _ => Chan
+  | _ => Mesg
+  end.
+
+(** ** Is a Term Well Formed?
+
+    When a term is well formed, variables must have a consistent type.
+    An example of a term that is not well formed is
+<<
+    Pr (Tx 0) (Nm 0)
+>>
+    The type of variable 0 can't be both [Text] and [Name].
+ *)
+
+(** Lookup [v] in association list [e]. *)
+
+Fixpoint lookup {A} (v: var) (e: list (var * A)): option A :=
+  match e with
+  | nil => None
+  | (u, a) :: e =>
+    if u =? v then
+      Some a
+    else
+      lookup v e
+  end.
+
+(** Extend the decls if the extension is consistent with previous
+    declarations. *)
+
+Definition extend decls (v: var) (s: type): option (list decl) :=
+  match lookup v decls with
+  | None => Some ((v, s) :: decls)
+  | Some s' =>
+    if type_dec s' s then
+      Some decls
+    else                        (* Type clash! *)
+      None
+  end.
+
+(** Is skey well formed? *)
+
+Definition well_formed_skey decls (k: skey): option (list decl) :=
+  match k with
+  | Sv v => extend decls v Skey
+  | Lt v v' =>
+    ds <- extend decls v Name;;
+    extend ds v' Name
+  end.
+
+(** Is akey well formed? *)
+
+Definition well_formed_akey decls (k: akey): option (list decl) :=
+  match k with
+  | Av v => extend decls v Akey
+  | Pb v =>  extend decls v Name
+  | Pb2 c v =>  extend decls v Name
+  end.
+
+(** Is algebra term well formed?  For term [x], [well_formed [] x]
+    returns the declarations for the variables that occur in x or
+    [None] when the term is not well formed.  Note that channels are
+    considered not well formed in this function. *)
+
+Fixpoint well_formed decls (x: alg): option (list decl) :=
+  match x with
+  | Tx v => extend decls v Text
+  | Dt v => extend decls v Data
+  | Nm v => extend decls v Name
+  | Sk k => well_formed_skey decls k
+  | Ak k => well_formed_akey decls k
+  | Ik k => well_formed_akey decls k
+  | Ch v => None                (* Channels are forbidden *)
+  | Mg v => extend decls v Mesg
+  | Tg z => Some decls
+  | Pr y z =>
+    ds <- well_formed decls y;;
+    well_formed ds z
+  | En y z =>
+    ds <- well_formed decls y;;
+    well_formed ds z
+  | Hs y => well_formed decls y
+  end.
+
+Definition well_formed_event decls (x: evt): option (list decl) :=
+  match x with
+  | Sd ch y =>
+    ds <- extend decls ch Chan;;
+    well_formed ds y
+  | Rv ch y =>
+    ds <- extend decls ch Chan;;
+    well_formed ds y
+  end.
+
+(** ** Is a Term Well Typed?
+
+    Like well formed except it does not extend its declarations. *)
+
+Definition well_typed_var decls (v: var) (s: type): bool :=
+  match lookup v decls with
+  | None => false
+  | Some s' => ifdec (type_dec s' s) true false
+  end.
+
+(** Is skey well typed? *)
+
+Definition well_typed_skey decls (k: skey): bool :=
+  match k with
+  | Sv v => well_typed_var decls v Skey
+  | Lt v v' => well_typed_var decls v Name &&
+               well_typed_var decls v' Name
+  end.
+
+(** Is akey well typed? *)
+
+Definition well_typed_akey decls (k: akey): bool :=
+  match k with
+  | Av v => well_typed_var decls v Akey
+  | Pb v =>  well_typed_var decls v Name
+  | Pb2 c v =>  well_typed_var decls v Name
+  end.
+
+(** Is algebra term well typed?  For term [x], [well_typed decl x]
+    is true when [x] is true when it is well typed with respect to
+    the declarations [decls].  Note that channels are considered not
+    well typed in this function. *)
+
+Fixpoint well_typed decls (x: alg): bool :=
+  match x with
+  | Tx v => well_typed_var decls v Text
+  | Dt v => well_typed_var decls v Data
+  | Nm v => well_typed_var decls v Name
+  | Sk k => well_typed_skey decls k
+  | Ak k => well_typed_akey decls k
+  | Ik k => well_typed_akey decls k
+  | Ch v => false               (* Channels are forbidden *)
+  | Mg v => well_typed_var decls v Mesg
+  | Tg z => true
+  | Pr y z => well_typed decls y &&
+              well_typed decls z
+  | En y z => well_typed decls y &&
+              well_typed decls z
+  | Hs y => well_typed decls y
+  end.
+
+(** Is algebra term or channel well typed? *)
+
+Definition well_typed_with_chan decls (x: alg): bool :=
+  match x with
+  | Ch v => well_typed_var decls v Chan
+  | _ => well_typed decls x
+  end.
+
+(** ** Measure of a term *)
+
+Fixpoint size (x: alg): nat :=
+  match x with
+  | Pr y z => S (size y + size z)
+  | En y z => S (size y + size z)
+  | Hs y => S (size y)
+  | _ => 1
+  end.
+
+Lemma inv_size:
+  forall x, size (inv x) = size x.
+Proof.
+  intros.
+  destruct x; simpl; auto.
+Qed.
+
+(** ** Origination *)
+
+(** Carried by *)
+
+Fixpoint cb (x y: alg): bool :=
+  alg_eqb x y ||
+          match y with
+          | Pr a b => cb x a || cb x b
+          | En a _ => cb x a
+          | _ => false
+          end.
+
+Functional Scheme cb_ind :=
+  Induction for cb Sort Prop.
+
+Lemma cb_refl:
+  forall x,
+    cb x x = true.
+Proof.
+  intros.
+  cut (alg_eqb x x = true); intros.
+  - destruct x; simpl; rewrite H; auto.
+  - apply alg_eq_correct; auto.
+Qed.
+
+Inductive carried_by: alg -> alg -> Prop :=
+| Carried_by_refl:
+    forall x, carried_by x x
+| Carried_by_frst:
+    forall x y z,
+      carried_by z x ->
+      carried_by z (Pr x y)
+| Carried_by_scnd:
+    forall x y z,
+      carried_by z y ->
+      carried_by z (Pr x y)
+| Carried_by_decr:
+    forall x y z,
+      carried_by z x ->
+      carried_by z (En x y).
+#[global]
+Hint Constructors carried_by : core.
+
+Lemma carried_by_trans:
+  forall x y z,
+    carried_by x y ->
+    carried_by y z ->
+    carried_by x z.
+Proof.
+  intros.
+  induction H0; simpl; auto.
+Qed.
+
+Lemma carried_by_reflect:
+  forall x y,
+    cb x y = true <-> carried_by x y.
+Proof.
+  split; intros.
+  - functional induction (cb x y);
+      try inversion H; auto; apply orb_true_iff in H;
+        destruct H; try inversion H;
+          try (apply alg_eq_correct in H; subst; auto).
+    + apply orb_true_iff in H.
+      destruct H.
+      * apply IHb in H; auto.
+      * apply IHb0 in H; auto.
+    + apply IHb in H; auto.
+  - induction H.
+    + apply cb_refl.
+    + destruct (alg_dec z (Pr x y)) as [G|G]; subst.
+      * apply cb_refl.
+      * rewrite <- alg_eq_complete in G.
+        destruct x; unfold cb; rewrite G; fold cb;
+          simpl in IHcarried_by; apply orb_true_iff in IHcarried_by;
+            destruct IHcarried_by; try inversion IHcarried_by;
+              try rewrite H0; simpl; auto; repeat rewrite orb_true_iff; auto.
+    + destruct (alg_dec z (Pr x y)) as [G|G]; subst.
+      * apply cb_refl.
+      * rewrite <- alg_eq_complete in G.
+        destruct x; unfold cb; rewrite G; fold cb; rewrite IHcarried_by;
+          repeat rewrite orb_true_iff; auto.
+    + destruct (alg_dec z (En x y)) as [G|G]; subst.
+      * apply cb_refl.
+      * rewrite <- alg_eq_complete in G.
+        destruct x; unfold cb; rewrite G; fold cb;
+          simpl in IHcarried_by; apply orb_true_iff in IHcarried_by;
+            destruct IHcarried_by; try inversion IHcarried_by;
+              try rewrite H0; simpl; auto; repeat rewrite orb_true_iff; auto.
+Qed.
+
+(** Does [x] originate in [tr]? *)
+
+Fixpoint orig (x: alg) (tr: list evt): bool :=
+  match tr with
+  | nil => false
+  | Sd _ y :: tr =>
+    if cb x y then
+      true
+    else
+      orig x tr
+  | Rv _ y :: tr =>
+    if cb x y then
+      false
+    else
+      orig x tr
+  end.
+
+(** ** Receivable messages
+
+A message [t] is _receivable_ iff
+
+ - [t] contains no occurrence of an encryption in the key of an
+   encryption, and
+ - [t] contains no occurrence of an encryption within a hash.
+*)
+
+(** Does an encryption occur in [x]? *)
+
+Fixpoint has_enc (x: alg): bool :=
+  match x with
+  | Hs y => has_enc y
+  | Pr y z => has_enc y || has_enc z
+  | En _ _ => true
+  | _ => false
+  end.
+
+Lemma inv_has_enc:
+  forall x,
+    has_enc (inv x) = has_enc x.
+Proof.
+  destruct x; simpl; auto.
+Qed.
+
+(** Is [x] receivable? *)
+
+Fixpoint receivable (x: alg): bool :=
+  match x with
+  | Hs y => negb (has_enc y)
+  | Pr y z => receivable y && receivable z
+  | En y z => receivable y && negb (has_enc z)
+  | _ => true
+  end.
diff --git a/coq/Alt_sem.v b/coq/Alt_sem.v
new file mode 100644
--- /dev/null
+++ b/coq/Alt_sem.v
@@ -0,0 +1,179 @@
+(* Alternate Abstract Execution Semantics
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+(** * An Alternate Abstract Execution Semantics
+
+    This section provides a semantics for produres using traces and
+    unique lists instead of execution.  See [sem'].  Some people might
+    find this definition more intuitive. *)
+
+Require Import FunInd Program Arith Lia.
+Require Import Preamble Monad Proc Alg Sem.
+Import List.ListNotations.
+Open Scope list_scope.
+
+(** Extract the inputs from a runtime environment. *)
+
+Definition get_ins (ev: env) (ds: list decl): list alg :=
+  map snd (skipn (length ev - length ds) ev).
+
+Functional Scheme mk_env_ind :=
+  Induction for mk_env Sort Prop.
+
+Lemma ins_inputs_length:
+  forall inputs ds,
+    ins_inputs ds inputs ->
+    length (mk_env ds inputs) = length ds.
+Proof.
+  intros.
+  functional induction (mk_env ds inputs); auto.
+  - inv H.
+  - inv H; simpl.
+    apply IHe in H6.
+    rewrite H6; auto.
+Qed.
+
+Lemma get_ins_inputs:
+  forall inputs ds ev,
+    ins_inputs ds inputs ->
+    get_ins (ev ++ mk_env ds inputs) ds = inputs.
+Proof.
+  intros.
+  unfold get_ins.
+  rewrite skipn_app.
+  rewrite app_length.
+  rewrite ins_inputs_length; auto.
+  assert (G: length ev +
+             length ds -
+             length ds = length ev).
+  lia.
+  rewrite G.
+  rewrite skipn_all.
+  rewrite app_nil_l.
+  rewrite minus_diag; simpl.
+  clear G.
+  induction H; simpl; auto.
+  rewrite IHins_inputs; auto.
+Qed.
+
+(** Function [get_ins] gets the correct inputs. *)
+
+Lemma sem_implies_inputs:
+  forall (p: proc) (ev: env) (ex: role),
+    sem p ev ex ->
+    inputs ex = get_ins ev (ins p).
+Proof.
+  intros.
+  destruct H.
+  apply stmt_list_sem_env_extends in H0.
+  destruct H0 as [ev']; subst.
+  eapply get_ins_inputs in H; eauto.
+Qed.
+
+(** Get the outputs from a runtime environment and some statements. *)
+
+Fixpoint get_outs (ev: env) (stmts: list stmt): option (list alg) :=
+  match stmts with
+  | [] => None
+  | [Return vs] => map_m (flip lookup ev) vs
+  | _ :: stmts => get_outs ev stmts
+  end.
+
+Functional Scheme get_outs_ind :=
+  Induction for get_outs Sort Prop.
+
+(** Function [get_outs] gets the correct outputs. *)
+
+Lemma stmt_list_sem_implies_outputs:
+  forall ev tr us outs stmts ev',
+    stmt_list_sem ev tr us outs stmts ev' ->
+    get_outs ev' stmts = Some outs.
+Proof.
+  intros.
+  revert H.
+  revert ev.
+  revert tr.
+  revert us.
+  functional induction (get_outs ev' stmts); intros.
+  - inv H.
+  - inv H; auto.
+    inv H6.
+  - inv H.
+    inv H6.
+  - inv H.
+    apply IHo in H8; auto.
+  - inv H.
+    apply IHo in H8; auto.
+  - inv H.
+    apply IHo in H8; auto.
+  - inv H.
+    apply IHo in H8; auto.
+  - inv H.
+    apply IHo in H8; auto.
+  - inv H.
+    apply IHo in H8; auto.
+  - inv H.
+    apply IHo in H8; auto.
+Qed.
+
+Lemma sem_implies_outputs:
+  forall (p: proc) (ev: env) (ex: role),
+    sem p ev ex ->
+    get_outs ev (body p) = Some (outputs ex).
+Proof.
+  intros.
+  unfold sem in H.
+  destruct H.
+  clear H.
+  apply stmt_list_sem_implies_outputs in H0; auto.
+Qed.
+
+(** The alternate abstract execution semantics for procedures *)
+
+Definition sem' (p: proc) (ev: env) (tr: list evt) (us: list alg): Prop :=
+  let inputs := get_ins ev (ins p) in
+  let ev_in := mk_env (ins p) inputs in
+  ins_inputs (ins p) inputs /\
+  exists outs,
+    get_outs ev (body p) = Some outs /\
+    stmt_list_sem ev_in tr us outs (body p) ev.
+
+Lemma sem_implies_sem':
+  forall (p: proc) (ev: env) (ex: role),
+    sem p ev ex ->
+    sem' p ev (trace ex) (uniqs ex).
+Proof.
+  intros.
+  pose proof H as G.
+  apply sem_implies_inputs in G.
+  pose proof H as F.
+  apply sem_implies_outputs in F.
+  unfold sem in H.
+  destruct H as [E H].
+  rewrite G in E.
+  rewrite G in H.
+  unfold sem'.
+  split; auto.
+  exists (outputs ex); split; auto.
+Qed.
+
+Lemma sem'_implies_sem:
+  forall (p: proc) (ev: env) (tr: list evt) (us: list alg),
+    sem' p ev tr us ->
+    exists outs,
+      get_outs ev (body p) = Some outs /\
+      let ins := get_ins ev (ins p) in
+      sem p ev (mkRole tr us ins outs).
+Proof.
+  intros.
+  unfold sem' in H.
+  destruct H.
+  destruct H0 as [outs].
+  exists outs.
+  unfold sem; simpl; intuition.
+Qed.
diff --git a/coq/CRun.v b/coq/CRun.v
new file mode 100644
--- /dev/null
+++ b/coq/CRun.v
@@ -0,0 +1,434 @@
+(* Concrete Algebra Procedure Execution as a Function
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+(** * Procedure Execution
+
+    This library contains a straightforward definition of the
+    semantics of procedure execution.  The semantics is specified
+    using a function.  The semantics of statement execution is defined
+    using a partial function that takes a runtime state and a list of
+    statements and returns the final runtime environment and a list of
+    terms that make up the procedure's outputs.  A runtime environment
+    is a map from program variables to terms.  A runtime state contains
+
+    - the current runtime environment,
+
+    - the current trace, and
+
+    - a list of the uniques that occur at the transmissions in the
+      current trace. *)
+
+Require Import FunInd Nat Bool Preamble Monad Proc Alg CSem.
+Import List.ListNotations.
+Open Scope list_scope.
+(** printing <- #←# *)
+
+(** A runtime state *)
+
+Record crun_state: Set :=
+  mkCRSt {
+      crenv: cenv;
+      crtr: list cevt;
+      cruniqs: list calg;
+      crs: list nat }.
+
+(** The semantics of expressions *)
+
+Definition crun_expr (rst: crun_state) (ex: expr):
+  option (crun_state * calg) :=
+  match ex with
+  | Quot_ s => Some (rst, CTg s)
+  | Hash_ v =>
+    x <- lookup v (crenv rst);;
+    Some (rst, CHs x)
+  | Pair_ u v =>
+    x <- lookup u (crenv rst);;
+    y <- lookup v (crenv rst);;
+    Some (rst, CPr x y)
+  | Encr_ u v =>
+    x <- lookup u (crenv rst);;
+    y <- lookup v (crenv rst);;
+    match crs rst with
+    | [] => Some (rst, CEn 0 x y)
+    | r :: rs =>
+      Some (mkCRSt (crenv rst)
+                   (crtr rst)
+                   (cruniqs rst)
+                   rs,
+            CEn r x y)
+    end
+  | Frst_ v =>
+    x <- lookup v (crenv rst);;
+    match x with
+    | CPr y z => Some (rst, y)
+    | _ => None
+    end
+  | Scnd_ v =>
+    x <- lookup v (crenv rst);;
+    match x with
+    | CPr y z => Some (rst, z)
+    | _ => None
+    end
+  | Decr_ u v =>
+    x <- lookup u (crenv rst);;
+    match x with
+    | CEn _ y z =>
+      k <- lookup v (crenv rst);;
+      if negb (chas_enc k) && calg_eqb k (cinv z) then
+        Some (rst, y)
+      else
+        None
+    | _ => None
+    end
+  | Recv_ v =>
+    c <- lookup v (crenv rst);;
+    match crtr rst with
+    | CRv d x :: tr =>
+      match c with
+      | CCh n =>
+        if n =? d then
+          Some (mkCRSt (crenv rst) tr (cruniqs rst) (crs rst), x)
+        else
+          None
+      | _ => None
+      end
+    | _ => None
+    end
+  | Frsh =>
+    match cruniqs rst with
+    | u :: us =>
+      Some (mkCRSt (crenv rst) (crtr rst) us (crs rst), u)
+    | _ => None
+    end
+  end.
+
+Lemma crun_expr_env_extends:
+  forall rst ex rst' val,
+    crun_expr rst ex = Some (rst', val) ->
+    crenv rst' = crenv rst.
+Proof.
+  intros.
+  destruct ex; simpl in H; inv H; auto.
+  - apply do_some in H1.
+    destruct H1.
+    destruct H.
+    inv H0; auto.
+  - apply do_some in H1.
+    destruct H1.
+    destruct H.
+    apply do_some in H0.
+    destruct H0.
+    destruct H0.
+    inv H1; auto.
+  - destruct (lookup n (crenv rst)).
+    + destruct (lookup n0 (crenv rst)).
+      * destruct (crs rst); inv H1; auto.
+      * inv H1.
+    + inv H1.
+  - destruct (lookup n (crenv rst)).
+    + destruct c; inv H1; auto.
+    + inv H1.
+  - destruct (lookup n (crenv rst)).
+    + destruct c; inv H1; auto.
+    + inv H1.
+  - destruct (lookup n (crenv rst)).
+    + destruct c; inv H1; auto.
+      destruct (lookup n0 (crenv rst)); inv H0; auto.
+      destruct (negb (chas_enc c) && calg_eqb c (cinv c2)); inv H1; auto.
+    + inv H1.
+  - destruct (cruniqs rst); inv H1; auto.
+  - destruct (lookup n (crenv rst)); inv H1; auto.
+    destruct (crtr rst); inv H0; auto.
+    destruct c0; inv H1; auto.
+    destruct c; inv H0; auto.
+    destruct (n1 =? n0); inv H1; auto.
+Qed.
+
+(** Check that the type of [x] is compatible with [t]. *)
+
+Definition ctype_check (x: calg) (t: type): bool :=
+  type_eqb t Mesg || type_eqb (ctype_of x) t.
+
+(** The semantics of statements *)
+
+Definition crun_stmt (rst: crun_state) (cmd: stmt): option crun_state :=
+  match cmd with
+  | Bind (v, t) exp =>
+    sx <- crun_expr rst exp;;
+    let (rst, x) := sx in
+    if ctype_check x t then
+      Some (mkCRSt
+              ((v, x) :: crenv rst)
+              (crtr rst)
+              (cruniqs rst)
+              (crs rst))
+    else
+      None
+   | Send u v =>
+     match crtr rst with
+     | CSd d x :: tr =>
+       c <- lookup u (crenv rst);;
+       match c with
+       | CCh n =>
+         if n =? d then
+           y <- lookup v (crenv rst);;
+           if calg_eqb x y then
+             Some (mkCRSt (crenv rst) tr (cruniqs rst) (crs rst))
+           else
+             None
+         else
+           None
+       | _ => None
+       end
+     | _ => None
+    end
+  | Same u v =>
+    x <- lookup u (crenv rst);;
+    y <- lookup v (crenv rst);;
+    if negb (chas_enc x) && calg_eqb x y then
+      Some rst
+    else
+      None
+  | Ltkp u v w =>
+    x <- lookup u (crenv rst);;
+    y <- lookup v (crenv rst);;
+    z <- lookup w (crenv rst);;
+    match y, z with
+    | CNm b, CNm c =>
+      if calg_eqb x (CSk (Lt b c)) then
+        Some rst
+      else
+        None
+    | _, _ => None
+    end
+  | Invp u v =>
+    x <- lookup u (crenv rst);;
+    y <- lookup v (crenv rst);;
+    if negb (chas_enc x) && calg_eqb x (cinv y) then
+      Some rst
+    else
+      None
+  | Namp u v =>
+    x <- lookup u (crenv rst);;
+    y <- lookup v (crenv rst);;
+    match x, y with
+    | CAk k, CNm b =>
+      if akey_eqb k (Pb b) then
+        Some rst
+      else
+        None
+    | CIk k, CNm b =>
+      if akey_eqb k (Pb b) then
+        Some rst
+      else
+        None
+    | _, _ => None
+    end
+  | Nm2p u v w =>
+    x <- lookup u (crenv rst);;
+    y <- lookup v (crenv rst);;
+    z <- lookup w (crenv rst);;
+    match x, y, z with
+    | CAk k, CTg s, CNm c =>
+      if akey_eqb k (Pb2 s c) then
+        Some rst
+      else
+        None
+    | CIk k, CTg s, CNm c =>
+      if akey_eqb k (Pb2 s c) then
+        Some rst
+      else
+        None
+    | _, _, _ => None
+    end
+  | Return _ => None
+end.
+
+Lemma crun_stmt_env_extends:
+  forall rst stmt rst',
+    crun_stmt rst stmt = Some rst' ->
+    exists ev, crenv rst' = ev ++ crenv rst.
+Proof.
+  intros.
+  destruct stmt; simpl in H.
+  - inv H.
+  - destruct d.
+    alt_option_dec (crun_expr rst e) p G; rewrite G in H.
+    + inv H.
+    + expand_let_pairs.
+      destruct p.
+      apply crun_expr_env_extends in G.
+      simpl in H.
+      destruct (ctype_check c0 t); inv H; auto.
+      exists [(n, c0)]; simpl.
+      rewrite G.
+      auto.
+  - exists []; simpl.
+    destruct (crtr rst).
+    inv H.
+    destruct c.
+    + destruct (lookup n (crenv rst)).
+      * destruct c0; try inv H.
+        destruct (n2 =? n1).
+        -- destruct (lookup n0 (crenv rst)).
+           ++ destruct (calg_eqb c c0); inv H1; simpl; auto.
+           ++ inv H1.
+        -- inv H1.
+      * inv H.
+    + inv H.
+  - exists []; simpl.
+    destruct (lookup n (crenv rst)).
+    + destruct (lookup n0 (crenv rst)).
+      * destruct (negb (chas_enc c) && calg_eqb c c0); inv H; simpl; auto.
+      * inv H.
+    + inv H.
+  - exists []; simpl.
+    destruct (lookup n (crenv rst)); inv H; auto.
+    destruct (lookup n0 (crenv rst)); inv H1; auto.
+    destruct (lookup n1 (crenv rst)); inv H0; auto.
+    destruct c0; inv H1; auto.
+    destruct c1; inv H0; auto.
+    destruct (calg_eqb c (CSk (Lt n2 n3))); inv H1; auto.
+  - exists []; simpl.
+    destruct (lookup n (crenv rst)); inv H; auto.
+    destruct (lookup n0 (crenv rst)); inv H1; auto.
+    destruct (negb (chas_enc c) && calg_eqb c (cinv c0)); inv H0; auto.
+  - exists []; simpl.
+    destruct (lookup n (crenv rst)); inv H; auto.
+    destruct (lookup n0 (crenv rst)); inv H1; auto.
+    destruct c; inv H0; auto.
+    + destruct c0; inv H1; auto.
+      destruct (akey_eqb a (Pb n1)); inv H0; auto.
+    + destruct c0; inv H1; auto.
+      destruct (akey_eqb a (Pb n1)); inv H0; auto.
+  - exists []; simpl.
+    destruct (lookup n (crenv rst)); inv H; auto.
+    destruct (lookup n0 (crenv rst)); inv H1; auto.
+    destruct (lookup n1 (crenv rst)); inv H0; auto.
+    destruct c; inv H1; auto.
+    + destruct c0; inv H0; auto.
+      destruct c1; inv H1; auto.
+      destruct (akey_eqb a (Pb2 s n2)); inv H0; auto.
+    + destruct c0; inv H0; auto.
+      destruct c1; inv H1; auto.
+      destruct (akey_eqb a (Pb2 s n2)); inv H0; auto.
+Qed.
+
+(** The semantics of lists of statements *)
+
+Fixpoint crun_stmts (rst: crun_state) (stmts: list stmt):
+  option (cenv * list calg) :=
+  match stmts with
+  | [] => None
+  | [Return vs] =>
+    match crtr rst, cruniqs rst with
+    | [], [] =>
+      xs <- map_m (fun x => lookup x (crenv rst)) vs;;
+      Some (crenv rst, xs)
+    | _, _ => None
+    end
+  | cmd :: stmts =>
+    rst <- crun_stmt rst cmd;;
+    crun_stmts rst stmts
+  end.
+
+Lemma crun_stmts_env_extends:
+  forall rst stmts ev outs,
+    crun_stmts rst stmts = Some (ev, outs) ->
+    exists ev', ev = ev' ++ crenv rst.
+Proof.
+  intros rst stmts.
+  revert rst.
+  induction stmts; intros.
+  - simpl in H.
+    inv H.
+  - destruct a; unfold crun_stmts in H; fold crun_stmts in H.
+    + exists []; simpl.
+      destruct stmts; inv H; auto.
+      destruct (crtr rst); inv H1; auto.
+      destruct (cruniqs rst); inv H0; auto.
+      destruct (map_m (fun x : nat => lookup x (crenv rst)) l); inv H1; auto.
+    + apply do_some in H.
+      repeat destruct_ex_and.
+      apply crun_stmt_env_extends in H.
+      apply IHstmts in H0.
+      repeat destruct_ex_and; subst.
+      rewrite H.
+      exists (x0 ++ x1).
+      rewrite app_assoc; auto.
+    + apply do_some in H.
+      repeat destruct_ex_and.
+      apply crun_stmt_env_extends in H.
+      apply IHstmts in H0.
+      repeat destruct_ex_and; subst.
+      rewrite H.
+      exists (x0 ++ x1).
+      rewrite app_assoc; auto.
+    + apply do_some in H.
+      repeat destruct_ex_and.
+      apply crun_stmt_env_extends in H.
+      apply IHstmts in H0.
+      repeat destruct_ex_and; subst.
+      rewrite H.
+      exists (x0 ++ x1).
+      rewrite app_assoc; auto.
+    + apply do_some in H.
+      repeat destruct_ex_and.
+      apply crun_stmt_env_extends in H.
+      apply IHstmts in H0.
+      repeat destruct_ex_and; subst.
+      rewrite H.
+      exists (x0 ++ x1).
+      rewrite app_assoc; auto.
+    + apply do_some in H.
+      repeat destruct_ex_and.
+      apply crun_stmt_env_extends in H.
+      apply IHstmts in H0.
+      repeat destruct_ex_and; subst.
+      rewrite H.
+      exists (x0 ++ x1).
+      rewrite app_assoc; auto.
+    + apply do_some in H.
+      repeat destruct_ex_and.
+      apply crun_stmt_env_extends in H.
+      apply IHstmts in H0.
+      repeat destruct_ex_and; subst.
+      rewrite H.
+      exists (x0 ++ x1).
+      rewrite app_assoc; auto.
+    + apply do_some in H.
+      repeat destruct_ex_and.
+      apply crun_stmt_env_extends in H.
+      apply IHstmts in H0.
+      repeat destruct_ex_and; subst.
+      rewrite H.
+      exists (x0 ++ x1).
+      rewrite app_assoc; auto.
+Qed.
+
+(** Bind inputs with procedure parameters. *)
+
+Fixpoint cbind_inputs (ds: list decl) (xs: list calg) (renv: cenv):
+  option cenv :=
+  match ds, xs with
+  | [], [] => Some renv
+  | (v, t) :: ds, x :: xs =>
+    if ctype_check x t then
+      cbind_inputs ds xs ((v, x) :: renv)
+    else
+      None
+  | _, _ => None
+  end.
+
+(** The semantics of a procedure *)
+
+Definition crun (p: proc) (inputs: list calg) (tr: list cevt)
+           (us: list calg) (rs: list nat):
+  option (cenv * list calg) :=
+  renv <- cbind_inputs (ins p) inputs [];;
+  crun_stmts (mkCRSt (rev renv) tr us rs) (body p).
diff --git a/coq/CRun_csem.v b/coq/CRun_csem.v
new file mode 100644
--- /dev/null
+++ b/coq/CRun_csem.v
@@ -0,0 +1,548 @@
+(* Correctness of Concrete Run semantics
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+(** This library contains proofs that the semantics specified in
+    [Roletran.Run] and [Roletran.Sem] agree. *)
+
+Require Import FunInd List Bool Arith.
+Require Import Preamble Proc Alg Role CSem CRun.
+Open Scope nat_scope.
+
+Lemma expr_csem_implies_crun_expr:
+  forall ev tr us rs exp val tr' us' rs',
+    expr_csem ev tr us rs exp val tr' us' rs' ->
+    crun_expr (mkCRSt ev tr us rs) exp =
+    Some (mkCRSt ev tr' us' rs', val).
+Proof.
+  intros.
+  inv H; simpl;
+    repeat match goal with
+           | [ H: lookup _ _ = Some _ |- _ ] => rewrite H
+           end; auto.
+  - rewrite H2; simpl.
+    destruct (bool_dec (calg_eqb (cinv b) (cinv b)) true) as [G|G].
+    + rewrite G; auto.
+    + contradiction G.
+      rewrite calg_eq_correct; auto.
+  - rewrite <- beq_nat_refl; auto.
+Qed.
+
+Lemma crun_expr_implies_expr_csem:
+  forall rst exp val rst',
+    crun_expr rst exp = Some (rst', val) ->
+    expr_csem (crenv rst) (crtr rst) (cruniqs rst) (crs rst)
+              exp val (crtr rst') (cruniqs rst') (crs rst') /\
+    crenv rst = crenv rst'.
+Proof.
+  intros.
+  destruct exp; simpl in H.
+  - inv H; simpl; auto.
+  - destruct (option_dec (lookup n (crenv rst))) as [G|G].
+    + rewrite G in H; inv H.
+    + destruct G as [b G]; rewrite G in H; inv H; auto.
+  - destruct (option_dec (lookup n (crenv rst))) as [G|G].
+    + rewrite G in H; inv H.
+    + destruct G as [b G]; rewrite G in H.
+      destruct (option_dec (lookup n0 (crenv rst))) as [F|F].
+      * rewrite F in H; inv H.
+      * destruct F as [c F]; rewrite F in H; inv H; auto.
+  - destruct (option_dec (lookup n (crenv rst))) as [G|G].
+    + rewrite G in H; inv H.
+    + destruct G as [b G]; rewrite G in H.
+      destruct (option_dec (lookup n0 (crenv rst))) as [F|F].
+      * rewrite F in H; inv H.
+      * destruct F as [c F]; rewrite F in H; inv H; auto.
+        pose proof destruct_list (crs rst) as E.
+        destruct E.
+        -- destruct s.
+           destruct s.
+           rewrite e in H1.
+           inv H1; simpl; auto.
+           rewrite e; auto.
+        -- rewrite e in H1.
+           inv H1.
+           rewrite e; auto.
+  - destruct (option_dec (lookup n (crenv rst))) as [G|G].
+    + rewrite G in H; inv H.
+    + destruct G as [b G]; rewrite G in H.
+      destruct b; inv H.
+      split; auto.
+      eapply CExpr_frst; eauto.
+  - destruct (option_dec (lookup n (crenv rst))) as [G|G].
+    + rewrite G in H; inv H.
+    + destruct G as [b G]; rewrite G in H.
+      destruct b; inv H.
+      split; auto.
+      eapply CExpr_scnd; eauto.
+  - destruct (option_dec (lookup n (crenv rst))) as [G|G].
+    + rewrite G in H; inv H.
+    + destruct G as [b G]; rewrite G in H.
+      destruct b; inv H.
+      destruct (option_dec (lookup n0 (crenv rst))) as [F|F].
+      * rewrite F in H1; inv H1; destruct b; inv H0.
+      * destruct F as [c F]; rewrite F in H1.
+        destruct (alt_bool_dec (negb (chas_enc c))) as [D|D];
+          rewrite D in H1; simpl in H1.
+        destruct (bool_dec (calg_eqb c (cinv b2)) true) as [E|E].
+        -- rewrite E in H1; inv H1.
+           apply calg_eq_correct in E; subst.
+           split; auto.
+           eapply CExpr_decr; eauto.
+           apply negb_true_iff in D; auto.
+        -- rewrite not_true_iff_false in E.
+           rewrite E in H1; inv H1.
+        -- inv H1.
+  - destruct (cruniqs rst); inv H; auto.
+  - destruct (option_dec (lookup n (crenv rst))) as [G|G].
+    + rewrite G in H; inv H.
+    + destruct G as [c G]; rewrite G in H.
+      destruct (crtr rst).
+      * inv H.
+      * destruct c0.
+        -- inv H.
+        -- destruct c; inv H.
+           destruct (bool_dec (n1 =? n0) true) as [F|F].
+           ++ rewrite F in H1; inv H1.
+              apply beq_nat_true in F; subst; auto.
+           ++ rewrite not_true_iff_false in F.
+              rewrite F in H1; inv H1.
+Qed.
+
+Lemma ctype_check_reflect:
+  forall (x: calg) (t: type),
+    ctype_check x t = true <-> CSem.ctype_check t x.
+Proof.
+  intros.
+  unfold ctype_check.
+  rewrite orb_true_iff.
+  repeat rewrite type_eq_correct.
+  split; intros; subst;
+    destruct x; inversion H; subst; simpl; auto.
+Qed.
+
+Lemma stmt_csem_implies_crun_stmt:
+  forall ev tr us rs cmd ev' tr' us' rs',
+    stmt_csem ev tr us rs cmd ev' tr' us' rs' ->
+    crun_stmt (mkCRSt ev tr us rs) cmd =
+    Some (mkCRSt ev' tr' us' rs').
+Proof.
+  intros.
+  inv H.
+  - apply expr_csem_implies_crun_expr in H0.
+    rewrite <- ctype_check_reflect in H1.
+    simpl.
+    rewrite H0.
+    rewrite H1; auto.
+  - simpl.
+    rewrite H0.
+    rewrite <- beq_nat_refl; auto.
+    rewrite H1.
+    destruct (bool_dec (calg_eqb a a) true) as [G|G].
+    + rewrite G; auto.
+    + contradiction G.
+      rewrite calg_eq_correct; auto.
+  - simpl.
+    rewrite H0.
+    rewrite H1.
+    rewrite H2.
+    simpl.
+    destruct (bool_dec (calg_eqb b b) true) as [G|G].
+    + rewrite G; auto.
+    + contradiction G.
+      rewrite calg_eq_correct; auto.
+  - simpl.
+    rewrite H0.
+    rewrite H1.
+    rewrite H2.
+    destruct (bool_dec (calg_eqb (CSk (Lt b c))
+                                 (CSk (Lt b c))) true) as [G|G].
+    + rewrite G; auto.
+    + contradiction G.
+      rewrite calg_eq_correct; auto.
+  - simpl.
+    rewrite H0.
+    rewrite H1.
+    rewrite H2.
+    simpl.
+    destruct (bool_dec (calg_eqb (cinv b) (cinv b)) true) as [G|G].
+    + rewrite G; auto.
+    + contradiction G.
+      rewrite calg_eq_correct; auto.
+  - simpl.
+    rewrite H0.
+    rewrite H1.
+    simpl.
+    unfold akey_eqb.
+    destruct (akey_dec (Pb b) (Pb b)) as [G|G]; auto.
+    contradict G; auto.
+  - simpl.
+    rewrite H0.
+    rewrite H1.
+    simpl.
+    unfold akey_eqb.
+    destruct (akey_dec (Pb b) (Pb b)) as [G|G]; auto.
+    contradict G; auto.
+  - simpl.
+    rewrite H0.
+    rewrite H1.
+    rewrite H2.
+    unfold akey_eqb.
+    destruct (akey_dec (Pb2 s b) (Pb2 s b)) as [G|G]; auto.
+    contradict G; auto.
+  - simpl.
+    rewrite H0.
+    rewrite H1.
+    rewrite H2.
+    unfold akey_eqb.
+    destruct (akey_dec (Pb2 s b) (Pb2 s b)) as [G|G]; auto.
+    contradict G; auto.
+Qed.
+
+Lemma crun_stmt_implies_stmt_csem:
+  forall rst cmd rst',
+    crun_stmt rst cmd = Some rst' ->
+    stmt_csem (crenv rst) (crtr rst) (cruniqs rst) (crs rst)
+              cmd (crenv rst') (crtr rst') (cruniqs rst') (crs rst').
+Proof.
+  intros; destruct cmd; simpl in *.
+  - inv H.
+  - destruct d as [v t].
+    destruct (option_dec (crun_expr rst e)) as [G|G].
+    + rewrite G in H; inv H.
+    + destruct G as [b G].
+      destruct b as [st x].
+      rewrite G in H.
+      destruct (bool_dec (ctype_check x t) true) as [F|F].
+      * rewrite F in H.
+        inv H; simpl.
+        rewrite ctype_check_reflect in F.
+        apply crun_expr_implies_expr_csem in G; auto.
+        destruct G.
+        rewrite <- H0.
+        eapply CStmt_bind; eauto.
+      * rewrite not_true_iff_false in F.
+        rewrite F in H; inv H.
+  - destruct (crtr rst).
+    + inv H.
+    + destruct c.
+      * destruct (option_dec (lookup n (crenv rst))) as [G|G].
+        -- rewrite G in H; inv H.
+        -- destruct G.
+           rewrite H0 in H.
+           destruct x; inv H.
+           destruct (bool_dec (n2 =? n1) true) as [G|G].
+           ++ rewrite G in H2; inv H2.
+              apply beq_nat_true in G; subst.
+              destruct (option_dec (lookup n0 (crenv rst))) as [G|G].
+              ** rewrite G in H1; inv H1.
+              ** destruct G.
+                 rewrite H in H1.
+                 destruct (bool_dec (calg_eqb c x) true) as [F|F].
+                 --- rewrite F in H1; inv H1.
+                     rewrite calg_eq_correct in F; subst.
+                     apply CStmt_send; auto.
+                 --- rewrite not_true_iff_false in F.
+                     rewrite F in H1; inv H1.
+           ++ rewrite not_true_iff_false in G.
+              rewrite G in H2; inv H2.
+      * inv H.
+  - destruct (option_dec (lookup n (crenv rst))) as [G|G].
+    + rewrite G in H; inv H.
+    + destruct G.
+      rewrite H0 in H.
+      destruct (option_dec (lookup n0 (crenv rst))) as [G|G].
+      * rewrite G in H; inv H.
+      * destruct G.
+        rewrite H1 in H.
+        destruct (alt_bool_dec (chas_enc x)) as [F|F];
+          rewrite F in H; simpl in H.
+        inv H.
+        destruct (bool_dec (calg_eqb x x0) true) as [G|G].
+        -- rewrite G in H; inv H.
+           apply calg_eq_correct in G; subst.
+           eapply CStmt_same; eauto.
+        -- rewrite not_true_iff_false in G.
+           rewrite G in H; inv H.
+  - alt_option_dec (lookup n (crenv rst)) v G;
+      rewrite G in H.
+    + inv H.
+    + alt_option_dec (lookup n0 (crenv rst)) u F;
+        rewrite F in H.
+      * inv H.
+      * alt_option_dec (lookup n1 (crenv rst)) w E;
+          rewrite E in H.
+        -- inv H.
+        -- destruct u; inv H.
+           destruct w; inv H1.
+           destruct (alt_bool_dec (calg_eqb v (CSk (Lt n2 n3)))) as [D|D];
+             rewrite D in H0.
+           ++ rewrite calg_eq_correct in D; subst.
+              inv H0.
+              eapply CStmt_ltkp; eauto.
+           ++ inv H0.
+  - alt_option_dec (lookup n (crenv rst)) x G;
+      rewrite G in H.
+    + inv H.
+    + alt_option_dec (lookup n0 (crenv rst)) y F;
+        rewrite F in H.
+      * inv H.
+      * destruct (alt_bool_dec (chas_enc x)) as [D|D];
+          rewrite D in H; simpl in H.
+        inv H.
+        destruct (alt_bool_dec (calg_eqb x (cinv y))) as [E|E];
+          rewrite E in H.
+        -- inv H.
+           apply calg_eq_correct in E.
+           eapply CStmt_invp; eauto.
+        -- inv H.
+  - alt_option_dec (lookup n (crenv rst)) x G;
+      rewrite G in H.
+    + inv H.
+    + alt_option_dec (lookup n0 (crenv rst)) y F;
+        rewrite F in H.
+      * inv H.
+      * destruct x; inv H.
+        -- destruct y; inv H1.
+           unfold akey_eqb in H0.
+           destruct (akey_dec a (Pb n1)) as [E|E]; subst.
+           ++ inv H0.
+              eapply CStmt_pub_namp; eauto.
+           ++ inv H0.
+        -- destruct y; inv H1.
+           unfold akey_eqb in H0.
+           destruct (akey_dec a (Pb n1)) as [E|E]; subst.
+           ++ inv H0.
+              eapply CStmt_priv_namp; eauto.
+           ++ inv H0.
+  - alt_option_dec (lookup n (crenv rst)) x G;
+      rewrite G in H.
+    + inv H.
+    + alt_option_dec (lookup n0 (crenv rst)) y F;
+        rewrite F in H.
+      * inv H.
+      * alt_option_dec (lookup n1 (crenv rst)) z E;
+          rewrite E in H.
+        -- inv H.
+        -- destruct x; inv H.
+           ++ destruct y; inv H1.
+              destruct z; inv H0.
+              unfold akey_eqb in H1.
+              destruct (akey_dec a (Pb2 s n2)) as [D|D].
+              ** inv H1.
+                 eapply CStmt_pub_nm2p; eauto.
+              ** inv H1.
+           ++ destruct y; inv H1.
+              destruct z; inv H0.
+              unfold akey_eqb in H1.
+              destruct (akey_dec a (Pb2 s n2)) as [D|D].
+              ** inv H1.
+                 eapply CStmt_priv_nm2p; eauto.
+              ** inv H1.
+Qed.
+
+Lemma stmt_list_csem_implies_crun_stmts:
+  forall ev_in tr us rs outs stmts ev,
+    stmt_list_csem ev_in tr us rs outs stmts ev ->
+    crun_stmts (mkCRSt ev_in tr us rs) stmts = Some (ev, outs).
+Proof.
+  intros.
+  induction H.
+  - unfold Basics.flip in H.
+    simpl.
+    rewrite H; auto.
+  - apply stmt_csem_implies_crun_stmt in H.
+    simpl; rewrite H.
+    destruct stmt; simpl; simpl in H; auto.
+    inv H.
+Qed.
+
+Functional Scheme crun_stmts_ind :=
+  Induction for crun_stmts Sort Prop.
+
+Lemma crun_stmts_implies_stmt_list_csem:
+  forall rst stmts ev outs,
+    crun_stmts rst stmts = Some (ev, outs) ->
+    stmt_list_csem (crenv rst) (crtr rst) (cruniqs rst)
+                   (crs rst) outs stmts ev.
+Proof.
+  intros.
+  functional induction (crun_stmts rst stmts); inv H.
+  - rewrite e2.
+    rewrite e3.
+    apply CStmt_return; auto.
+  - inv e2.
+  - apply crun_stmt_implies_stmt_csem in e1.
+    apply IHo in H1.
+    eapply CStmt_pair; eauto.
+  - apply crun_stmt_implies_stmt_csem in e1.
+    apply IHo in H1.
+    eapply CStmt_pair; eauto.
+  - apply crun_stmt_implies_stmt_csem in e1.
+    apply IHo in H1.
+    eapply CStmt_pair; eauto.
+  - apply crun_stmt_implies_stmt_csem in e1.
+    apply IHo in H1.
+    eapply CStmt_pair; eauto.
+  - apply crun_stmt_implies_stmt_csem in e1.
+    apply IHo in H1.
+    eapply CStmt_pair; eauto.
+  - apply crun_stmt_implies_stmt_csem in e1.
+    apply IHo in H1.
+    eapply CStmt_pair; eauto.
+  - apply crun_stmt_implies_stmt_csem in e1.
+    apply IHo in H1.
+    eapply CStmt_pair; eauto.
+Qed.
+
+Lemma csem_bind_inputs_aux:
+  forall ds xs ev,
+    cins_inputs ds xs ->
+    cbind_inputs ds xs ev = Some (rev (mk_cenv ds xs) ++ ev).
+Proof.
+  intros ds xs ev H.
+  revert ev.
+  induction H; intros; simpl; auto.
+  rewrite <- ctype_check_reflect in H.
+  rewrite H.
+  rewrite IHcins_inputs; simpl; auto.
+  repeat rewrite <- app_assoc.
+  repeat rewrite rev_app_distr; simpl.
+  simpl; auto.
+Qed.
+
+Lemma csem_bind_inputs:
+  forall ds xs,
+    cins_inputs ds xs ->
+    cbind_inputs ds xs nil = Some (rev (mk_cenv ds xs)).
+Proof.
+  intros.
+  rewrite csem_bind_inputs_aux; auto.
+  rewrite app_nil_r; auto.
+Qed.
+
+Functional Scheme cbind_inputs_ind :=
+  Induction for cbind_inputs Sort Prop.
+
+Lemma csem_ins_inputs_aux:
+  forall ds xs ev ev',
+    cbind_inputs ds xs ev = Some ev' ->
+    cins_inputs ds xs.
+Proof.
+  intros.
+  functional induction (cbind_inputs ds xs ev); simpl; auto; inv H.
+  apply ctype_check_reflect in e2.
+  apply CIns_inputs_pair; auto.
+Qed.
+
+Lemma csem_ins_inputs:
+  forall ds xs ev,
+    cbind_inputs ds xs nil = Some ev ->
+    cins_inputs ds xs /\ ev = rev (mk_cenv ds xs).
+Proof.
+  intros.
+  assert (G: cins_inputs ds xs).
+  - eapply csem_ins_inputs_aux; eauto.
+  - split; auto.
+    pose proof (csem_bind_inputs ds xs).
+    apply H0 in G.
+    rewrite G in H.
+    inv H; auto.
+Qed.
+
+Lemma crun_inputs:
+  forall (p: proc) (inputs: list calg) (rs: list nat) (cev: cenv)
+         (ctr: list cevt) (cus couts: list calg),
+    crun p inputs ctr cus rs = Some (cev, couts) ->
+    inputs = mk_ins cev (ins p).
+Proof.
+  intros.
+  unfold crun in H.
+  alt_option_dec (cbind_inputs (ins p) inputs nil) renv G;
+    rewrite G in H.
+  - inv H.
+  - apply csem_ins_inputs in G.
+    destruct G; subst.
+    rewrite rev_involutive in H.
+    apply crun_stmts_env_extends in H.
+    destruct H as [ev H].
+    simpl in H; subst.
+    rewrite mk_ins_inputs; auto.
+Qed.
+
+(** The semantics as a predicate implies the semantics as a function. *)
+
+Theorem csem_implies_run:
+  forall (p: proc) (rs: list nat) (cev: cenv) (e: role),
+    csem p rs cev e ->
+    exists (ctr: list cevt) (cus: list calg) (couts: list calg),
+      crun p (mk_ins cev (ins p)) ctr cus rs = Some (cev, couts) /\
+      trace e = map to_evt ctr /\
+      uniqs e = map to_alg cus /\
+      inputs e = map to_alg (mk_ins cev (ins p)) /\
+      outputs e = map to_alg couts.
+Proof.
+  intros.
+  apply csem_csem' in H.
+  unfold csem' in H.
+  destruct H.
+  destruct H0.
+  destruct H1 as [ctr].
+  exists ctr.
+  destruct H1 as [cus].
+  exists cus.
+  destruct H1.
+  destruct H2.
+  destruct H3 as [couts].
+  exists couts.
+  repeat destruct_ex_and.
+  apply stmt_list_csem_implies_crun_stmts in H4.
+  simpl in H4.
+  apply csem_bind_inputs in H0.
+  unfold crun.
+  rewrite H0.
+  rewrite rev_involutive.
+  auto.
+Qed.
+
+(** The semantics as a function implies the semantics as a predicate. *)
+
+Theorem run_implies_csem:
+  forall (p: proc) (inputs: list calg) (rs: list nat) (cev: cenv)
+         (ctr: list cevt) (cus couts: list calg),
+    crun p inputs ctr cus rs = Some (cev, couts) ->
+    csem p rs cev
+         (mkRole (map to_evt ctr)
+                 (map to_alg cus)
+                 (map to_alg inputs)
+                 (map to_alg couts)).
+Proof.
+  intros.
+  pose proof H as A.
+  apply crun_inputs in A.
+  subst.
+  unfold crun in H.
+  alt_option_dec (cbind_inputs (ins p) (mk_ins cev (ins p)) nil) renv G;
+    rewrite G in H.
+  - inv H.
+  - apply csem_ins_inputs in G.
+    destruct G; subst.
+    rewrite rev_involutive in H.
+    apply crun_stmts_implies_stmt_list_csem in H; simpl in H.
+    apply csem'_csem.
+    unfold csem'.
+    simpl.
+    split; auto.
+    split; auto.
+    exists ctr.
+    exists cus.
+    split; auto.
+    split; auto.
+    exists couts.
+    split; auto.
+    apply stmt_list_csem_outputs in H; auto.
+Qed.
diff --git a/coq/CSem.v b/coq/CSem.v
new file mode 100644
--- /dev/null
+++ b/coq/CSem.v
@@ -0,0 +1,1975 @@
+(* Concrete Execution Semantics
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+(** * Concrete Execution Semantics
+
+    This library presents a message algebra, called the concrete
+    message algebra, that is very similar to the algebra used by the
+    abstract execution semantics.  The only difference is the way in
+    which it models encryption.  The signature used by the previous
+    algebra has a binary operator for encryption [En], which suggests
+    that two encryptions are the same if the plaintext and the key
+    used to construct them are the same.  This is not true for
+    implementations of encryption in actual use.  Instead, some
+    randomness is added to an encryption during its construction in
+    such a way that knowledge of the randomness is not needed to
+    recover the plaintext by someone in possession of the decryption
+    key.
+
+    Probabilistic encryption is modeled by adding a random natural
+    number to the construction of every term that represents an
+    encryption.  A semantics is defined around the new algebra.  The
+    new semantics is shown to be faithful to the abstract execution
+    semantics, that is, for every run of the concrete execution
+    semantics, there is a corresponding run of the abstract semantics
+    in Theorem [csem_sem_faithfulness].  The concrete semantics is
+    shown to be adequate with respect to the abstract execution
+    semantics, that is for every run of the abstract execution
+    semantics and choice of random values, there is a run of the
+    concrete execution semantics, in Theorem [sem_csem_adequacy].
+
+    The proof of adequacy makes demands on both the abstract and
+    concrete execution semantics.  The proof depends on the fact that
+    the following terms may not contain an encryption,
+
+    - the key used during a decryption,
+
+    - the terms compared with a sameness check, and
+
+    - the terms compared with an inverse key predicate check. *)
+
+Require Import FunInd ListSet Bool Arith Program Lia.
+Require Import Preamble Monad Proc Alg Sem.
+Import List.ListNotations.
+Open Scope list_scope.
+
+(** ** Definition and Faithfulness
+
+    The key theorem in this section is [csem_sem_faithfulness], which
+    states that whenever there is a run in the concrete executions
+    semantics, there is a corresponding run in the abstract execution
+    semantics.
+
+    Concrete message algebra *)
+
+Inductive calg: Set :=
+| CTx: var -> calg              (* Text *)
+| CDt: var -> calg              (* Data *)
+| CNm: var -> calg              (* Name *)
+| CSk: skey -> calg             (* Symmetric key *)
+| CAk: akey -> calg             (* Asymmetric key *)
+| CIk: akey -> calg             (* Inverse asymmetric key *)
+| CCh: var -> calg              (* Channel *)
+| CMg: var -> calg              (* Message *)
+| CTg: string -> calg           (* Tag *)
+| CPr: calg -> calg -> calg     (* Pair *)
+| CEn: nat -> calg -> calg -> calg (* Probabilistic encryption *)
+| CHs: calg -> calg.            (* Hash *)
+
+(* An uninformative comment added to make coqdoc happy *)
+
+(** Notice that encryptions take one more argument as compared with
+    encryptions in the abstract message algebra.  The extra argument
+    is some randomness.  See [CEn].  This is how probabilistic
+    encryption is modeled. *)
+
+Definition calg_dec:
+  forall x y: calg, {x = y} + {x <> y}.
+Proof.
+  intros.
+  decide equality;
+    try apply string_dec;
+    decide equality.
+Defined.
+#[global]
+Hint Resolve calg_dec : core.
+
+Definition calg_eqb x y: bool :=
+  if calg_dec x y then
+    true
+  else
+    false.
+
+Lemma calg_eq_correct:
+  forall x y,
+    calg_eqb x y = true <-> x = y.
+Proof.
+  intros.
+  unfold calg_eqb.
+  destruct (calg_dec x y); subst; intuition.
+Qed.
+
+Lemma calg_eq_complete:
+  forall x y,
+    calg_eqb x y = false <-> x <> y.
+Proof.
+  intros.
+  unfold calg_eqb.
+  destruct (calg_dec x y); subst; intuition.
+Qed.
+
+(** ** Type of an Algebra Term *)
+
+Definition ctype_of (x: calg): type :=
+  match x with
+  | CTx _ => Text
+  | CDt _ => Data
+  | CNm _ => Name
+  | CSk _ => Skey
+  | CAk _ => Akey
+  | CIk _ => Ikey
+  | CCh _ => Chan
+  | _ => Mesg
+  end.
+
+(** Concrete event *)
+
+Inductive cevt: Set :=
+| CSd: var -> calg -> cevt      (* Send *)
+| CRv: var -> calg -> cevt.     (* Recv *)
+
+(* An uninformative comment added to make coqdoc happy *)
+
+Definition cevt_dec:
+  forall x y: cevt, {x = y} + {x <> y}.
+Proof.
+  intros.
+  decide equality; decide equality.
+Defined.
+#[global]
+Hint Resolve cevt_dec : core.
+
+(** Inverse of a concrete message *)
+
+Definition cinv (x: calg): calg :=
+  match x with
+  | CAk k => CIk k
+  | CIk k => CAk k
+  | k => k
+  end.
+
+Lemma cinv_cinv:
+  forall c,
+    cinv (cinv c) = c.
+Proof.
+  intros.
+  destruct c; simpl; auto.
+Qed.
+
+Fixpoint chas_enc (x: calg): bool :=
+  match x with
+  | CHs y => chas_enc y
+  | CPr y z => chas_enc y || chas_enc z
+  | CEn _ _ _ => true
+  | _ => false
+  end.
+
+(** Convert an concrete message [x] into its equivalent message.  This
+    is done by forgetting the randomness in each encryption. *)
+
+Fixpoint to_alg (x: calg): alg :=
+  match x with
+  | CTx v => Tx v
+  | CDt v => Dt v
+  | CNm v => Nm v
+  | CSk k => Sk k
+  | CAk k => Ak k
+  | CIk k => Ik k
+  | CCh v => Ch v
+  | CMg v => Mg v
+  | CTg z => Tg z
+  | CPr y z => Pr (to_alg y) (to_alg z)
+  | CEn _ y z => En (to_alg y) (to_alg z)
+  | CHs y => Hs (to_alg y)
+  end.
+
+Lemma inv_to_alg:
+  forall x,
+    inv (to_alg x) = to_alg (cinv x).
+Proof.
+  intros.
+  destruct x; simpl; auto.
+Qed.
+
+Lemma no_enc_eq:
+  forall x y,
+    chas_enc x = false ->
+    to_alg x = to_alg y ->
+    x = y.
+Proof.
+  induction x; induction y; intros;
+    simpl in H; simpl in H0; inv H0; auto.
+  - rewrite orb_false_iff in H.
+    destruct H.
+    apply IHx1 in H2; auto.
+    apply IHx2 in H3; auto; subst; auto.
+  - inv H.
+  - apply IHx in H2; subst; auto.
+Qed.
+
+Lemma has_enc_to_alg:
+  forall x,
+    chas_enc x = has_enc (to_alg x).
+Proof.
+  induction x; intros; simpl; auto.
+  rewrite IHx1.
+  rewrite IHx2.
+  auto.
+Qed.
+
+(** Convert a concrete event *)
+
+Definition to_evt (e: cevt): evt :=
+  match e with
+  | CSd v x => Sd v (to_alg x)
+  | CRv v x => Rv v (to_alg x)
+  end.
+
+(** A concrete runtime environment *)
+
+Definition cenv: Set := list (pvar * calg).
+
+Definition to_maplet (m: var * calg): var * alg :=
+  let (v, x) := m in (v, to_alg x).
+
+(** Convert a concrete environment *)
+
+Definition to_env (ev: cenv): env :=
+  map to_maplet ev.
+
+(** Check the type of an element in the concrete algebra. *)
+
+Definition is_cskey (x: calg): Prop :=
+  is_skey (to_alg x).
+#[global]
+Hint Unfold is_cskey : core.
+
+Inductive ctype_check: type -> calg -> Prop :=
+| CText_check: forall v,
+    ctype_check Text (CTx v)
+| CData_check: forall v,
+    ctype_check Data (CDt v)
+| CName_check: forall v,
+    ctype_check Name (CNm v)
+| CSkey_check: forall k,
+    ctype_check Skey (CSk k)
+| CAkey_check: forall k,
+    ctype_check Akey (CAk k)
+| CIkey_check: forall k,
+    ctype_check Ikey (CIk k)
+| CChan_check: forall v,
+    ctype_check Chan (CCh v)
+| CMesg_check: forall x,
+    ctype_check Mesg x.
+#[global]
+ Hint Constructors ctype_check : core.
+
+Lemma type_check_equiv:
+  forall (s: type) (c: calg),
+    ctype_check s c <-> type_check s (to_alg c).
+Proof.
+  split; intros; destruct c; simpl in *; inv H; simpl; auto;
+    destruct c2; inv H3; auto.
+Qed.
+
+(** The semantics of an expression
+
+<<
+   Parmeters:
+   cenv:      Input environment
+   list cevt: Input trace
+   list calg: Input list of uniques
+   list nat:  Input list of random values
+   expr:      Expression code fragment
+   calg:      Value of the expression
+   list cevt: Output trace
+   list calg: Output list of uniques
+   list nat:  Output list of random values
+>>
+
+*)
+
+Inductive expr_csem: cenv -> list cevt -> list calg -> list nat ->
+                     expr -> calg -> list cevt ->
+                     list calg -> list nat -> Prop :=
+| CExpr_quot: forall ev tr us rs x,
+    expr_csem ev tr us rs (Quot_ x) (CTg x) tr us rs
+| CExpr_hash: forall ev tr us rs x a,
+    lookup x ev = Some a ->
+    expr_csem ev tr us rs (Hash_ x) (CHs a) tr us rs
+| CExpr_pair: forall ev tr us rs x y a b,
+    lookup x ev = Some a ->
+    lookup y ev = Some b ->
+    expr_csem ev tr us rs (Pair_ x y) (CPr a b) tr us rs
+| CExpr_encr_prob: forall ev tr us rs x y r a b,
+    lookup x ev = Some a ->
+    lookup y ev = Some b ->
+    expr_csem ev tr us (r :: rs) (Encr_ x y) (CEn r a b) tr us rs
+| CExpr_encr_zero: forall ev tr us x y a b,
+    lookup x ev = Some a ->
+    lookup y ev = Some b ->
+    expr_csem ev tr us [] (Encr_ x y) (CEn 0 a b) tr us []
+| CExpr_frst: forall ev tr us rs x a b,
+    lookup x ev = Some (CPr a b) ->
+    expr_csem ev tr us rs (Frst_ x) a tr us rs
+| CExpr_scnd: forall ev tr us rs x a b,
+    lookup x ev = Some (CPr a b) ->
+    expr_csem ev tr us rs (Scnd_ x) b tr us rs
+| CExpr_decr: forall ev tr us rs x y r a b,
+    lookup x ev = Some (CEn r a b) ->
+    lookup y ev = Some (cinv b) ->
+    chas_enc (cinv b) = false ->
+    expr_csem ev tr us rs (Decr_ x y) a tr us rs
+| CExpr_frsh: forall ev tr us rs a,
+    expr_csem ev tr (a :: us) rs Frsh_ a tr us rs
+| CExpr_recv: forall ev tr us rs a c d,
+    lookup c ev = Some (CCh d) ->
+    expr_csem ev (CRv d a :: tr) us rs (Recv_ c) a tr us rs.
+#[global]
+Hint Constructors expr_csem : core.
+
+Lemma lookup_ev:
+  forall x cev a,
+    lookup x cev = Some a ->
+    lookup x (to_env cev) = Some (to_alg a).
+Proof.
+  intros.
+  induction cev; simpl in *; auto.
+  inv H.
+  destruct a0 as [v c]; simpl in *.
+  destruct (v =? x).
+  - inv H; auto.
+  - intuition.
+Qed.
+
+Local Ltac lookup_and_type_check :=
+  repeat match goal with
+         | [ H: lookup _ _ = Some _ |- _ ] =>
+           apply lookup_ev in H; simpl in H
+         | [ H: ctype_check _ _ |- _ ] =>
+           rewrite type_check_equiv in H
+         end.
+
+(** Main theorem about expressions *)
+
+Theorem expr_csem_expr_sem:
+  forall ev tr us rs exp val tr' us' rs',
+    expr_csem ev tr us rs exp val tr' us' rs' ->
+    expr_sem (to_env ev) (map to_evt tr) (map to_alg us) exp
+             (to_alg val) (map to_evt tr') (map to_alg us').
+Proof.
+  intros.
+  inv H; simpl; auto; lookup_and_type_check; eauto.
+  rewrite <- inv_to_alg in H1.
+  rewrite has_enc_to_alg in H2.
+  rewrite <- inv_to_alg in H2.
+  eauto.
+Qed.
+
+(** The semantics of a statement
+
+<<
+   Parmeters:
+   cenv:      Input environment
+   list cevt: Input trace
+   list calg: Input list of uniques
+   list nat:  Input list of random values
+   stmts:     Statements
+   cenv:      Output environment
+   list cevt: Output trace
+   list calg: Output list of uniques
+   list nat:  Output list of random values
+>>
+*)
+
+Inductive stmt_csem: cenv -> list cevt -> list calg ->
+                     list nat -> stmt -> cenv -> list cevt ->
+                     list calg -> list nat -> Prop :=
+| CStmt_bind: forall ev tr us rs exp val v s tr' us' rs',
+    expr_csem ev tr us rs exp val tr' us' rs' ->
+    ctype_check s val ->
+    stmt_csem ev tr us rs (Bind (v, s) exp) ((v, val) :: ev) tr' us' rs'
+| CStmt_send: forall ev tr us rs c d x a,
+    lookup c ev = Some (CCh d) ->
+    lookup x ev = Some a ->
+    stmt_csem ev (CSd d a :: tr) us rs (Send c x) ev tr us rs
+| CStmt_same: forall ev tr us rs x y a b,
+    lookup x ev = Some a ->
+    lookup y ev = Some b ->
+    chas_enc a = false ->       (* For probabilistic encryption *)
+    a = b ->                    (* Sameness check *)
+    stmt_csem ev tr us rs (Same x y) ev tr us rs
+| CStmt_ltkp: forall ev tr us rs x y z a b c,
+    lookup x ev = Some a ->
+    lookup y ev = Some (CNm b) ->
+    lookup z ev = Some (CNm c) ->
+    a = CSk (Lt b c) ->         (* Ltk check *)
+    stmt_csem ev tr us rs (Ltkp x y z) ev tr us rs
+| CStmt_invp: forall ev tr us rs x y a b,
+    lookup x ev = Some a ->
+    lookup y ev = Some b ->
+    chas_enc a = false ->       (* For probabilistic encryption *)
+    a = cinv b ->               (* Inverse check *)
+    stmt_csem ev tr us rs (Invp x y) ev tr us rs
+| CStmt_pub_namp: forall ev tr us rs x y a b,
+    lookup x ev = Some (CAk a) ->
+    lookup y ev = Some (CNm b) ->
+    a = Pb b ->                (* Name check *)
+    stmt_csem ev tr us rs (Namp x y) ev tr us rs
+| CStmt_priv_namp: forall ev tr us rs x y a b,
+    lookup x ev = Some (CIk a) ->
+    lookup y ev = Some (CNm b) ->
+    a = Pb b ->                (* Name check *)
+    stmt_csem ev tr us rs (Namp x y) ev tr us rs
+| CStmt_pub_nm2p: forall ev tr us rs x y z a s b,
+    lookup x ev = Some (CAk a) ->
+    lookup y ev = Some (CTg s) ->
+    lookup z ev = Some (CNm b) ->
+    a = Pb2 s b ->              (* Tagged name check *)
+    stmt_csem ev tr us rs (Nm2p x y z) ev tr us rs
+| CStmt_priv_nm2p: forall ev tr us rs x y z a s b,
+    lookup x ev = Some (CIk a) ->
+    lookup y ev = Some (CTg s) ->
+    lookup z ev = Some (CNm b) ->
+    a = Pb2 s b ->              (* Tagged name check *)
+    stmt_csem ev tr us rs (Nm2p x y z) ev tr us rs.
+#[global]
+Hint Constructors stmt_csem : core.
+
+Lemma stmt_csem_env_extends:
+  forall ev tr us rs exp ev' tr' us' rs',
+    stmt_csem ev tr us rs exp ev' tr' us' rs'->
+    exists ev'', ev' = ev'' ++ ev.
+Proof.
+  intros.
+  inv H.
+  - exists [(v, val)]; auto.
+  - exists []; auto.
+  - exists []; auto.
+  - exists []; auto.
+  - exists []; auto.
+  - exists []; auto.
+  - exists []; auto.
+  - exists []; auto.
+  - exists []; auto.
+Qed.
+
+(** Main theorem about statements *)
+
+Theorem stmt_csem_stmt_sem:
+  forall ev tr us rs stmt ev' tr' us' rs',
+    stmt_csem ev tr us rs stmt ev' tr' us' rs' ->
+    stmt_sem (to_env ev) (map to_evt tr) (map to_alg us)
+             stmt
+             (to_env ev') (map to_evt tr') (map to_alg us').
+Proof.
+  intros; inv H; auto; lookup_and_type_check; eauto.
+  - apply expr_csem_expr_sem in H0.
+    apply Stmt_bind; auto.
+  - apply Stmt_send; auto.
+  - rewrite has_enc_to_alg in H2.
+    eapply Stmt_same; eauto.
+  - rewrite has_enc_to_alg in H2.
+    eapply Stmt_invp; eauto.
+    rewrite inv_to_alg; auto.
+Qed.
+
+(** The semantics of a statement list
+
+    Parameters as for [stmt_csem] but with one extra argument, for
+    outputs, and no output trace, list of uniques, and list of random
+    values.
+
+<<
+   Parameters:
+   cenv:      Input environment
+   list cevt: Input trace
+   list calg: Input list of uniques
+   list nat:  Input list of random values
+   list calg: Output list
+   stmts:     Statements
+   cenv:      Output environment
+>>
+ *)
+
+Inductive stmt_list_csem:
+  cenv -> list cevt -> list calg -> list nat ->
+  list calg -> list stmt -> cenv -> Prop :=
+| CStmt_return: forall ev rs outs vs,
+    map_m (flip lookup ev) vs = Some outs ->
+    stmt_list_csem ev [] [] rs outs [Return vs] ev
+| CStmt_pair: forall ev tr us rs stmt ev' tr' us' rs'
+                     outs stmts ev'',
+    stmt_csem ev tr us rs stmt ev' tr' us' rs' ->
+    stmt_list_csem ev' tr' us' rs' outs stmts ev'' ->
+    stmt_list_csem ev tr us rs outs (stmt :: stmts) ev''.
+#[global]
+Hint Constructors stmt_list_csem : core.
+
+Lemma stmt_list_csem_env_extends:
+  forall ev tr us rs outs stmts ev',
+    stmt_list_csem ev tr us rs outs stmts ev' ->
+    exists ev'', ev' = ev'' ++ ev.
+Proof.
+  intros.
+  induction H.
+  exists []; auto.
+  apply stmt_csem_env_extends in H.
+  destruct H.
+  destruct IHstmt_list_csem.
+  subst.
+  exists (x0 ++ x).
+  apply app_assoc.
+Qed.
+
+Lemma lookup_none:
+  forall x ev,
+    lookup x ev = None <-> lookup x (to_env ev) = None.
+Proof.
+  split; intros; induction ev; simpl; auto;
+    destruct a as [v y]; simpl in *; destruct (v =? x).
+    + inv H.
+    + intuition.
+    + inv H.
+    + intuition.
+Qed.
+
+Lemma map_m_lookup_cev:
+  forall ev vs outs,
+    map_m (flip lookup ev) vs = Some outs ->
+    map_m (flip lookup (to_env ev)) vs = Some (map to_alg outs).
+Proof.
+  intros ev vs.
+  revert ev.
+  induction vs; intros; simpl; auto.
+  - simpl in H; inv H; simpl; auto.
+  - destruct outs as [|z zs].
+    + apply map_m_nil in H; intuition.
+    + apply map_m_pair in H.
+      destruct H as [H G].
+      unfold flip in H.
+      unfold flip at 1.
+      apply lookup_ev in H.
+      rewrite H.
+      apply IHvs in G.
+      rewrite G.
+      auto.
+Qed.
+
+(** Main theorem about statement lists *)
+
+Theorem stmt_list_csem_stmt_list_sem:
+  forall ev tr us rs outs stmts ev',
+      stmt_list_csem ev tr us rs outs stmts ev' ->
+      stmt_list_sem (to_env ev) (map to_evt tr) (map to_alg us)
+                    (map to_alg outs) stmts (to_env ev').
+Proof.
+  intros.
+  induction H; simpl; auto.
+  - apply Stmt_return.
+    apply map_m_lookup_cev; auto.
+  - apply stmt_csem_stmt_sem in H; auto.
+    eauto.
+Qed.
+
+(** Definitions and lemmas about inputs *)
+
+Fixpoint mk_cenv (ds: list decl) (xs: list calg): cenv :=
+  match (ds, xs) with
+  | ((v, _) :: ds, x :: xs) =>
+    (v, x) :: mk_cenv ds xs
+  | _ => []
+  end.
+
+Lemma mk_cenv_env:
+  forall ds cxs,
+    to_env (mk_cenv ds cxs) = mk_env ds (map to_alg cxs).
+Proof.
+  induction ds; intros; simpl; auto.
+  destruct a as [v s].
+  destruct cxs as [|c cxs]; simpl; auto.
+  rewrite IHds.
+  auto.
+Qed.
+
+Inductive cins_inputs: list decl -> list calg -> Prop :=
+| CIns_inputs_nil: cins_inputs nil nil
+| CIns_inputs_pair: forall v s ds x xs,
+    ctype_check s x ->
+    cins_inputs ds xs ->
+    cins_inputs ((v, s) :: ds) (x :: xs).
+#[global]
+Hint Constructors cins_inputs : core.
+
+Lemma cins_ins_inputs:
+  forall ds cxs,
+    cins_inputs ds cxs -> ins_inputs ds (map to_alg cxs).
+Proof.
+  intros; induction H; simpl; auto.
+  apply type_check_equiv in H; auto.
+Qed.
+
+(** Definition of the concrete semantics *)
+
+Definition csem (p: proc) (rs: list nat) (cev: cenv) (e: role): Prop :=
+  exists cins,
+    inputs e = map to_alg cins /\
+    cins_inputs (ins p) cins /\
+    exists ctr cus couts,
+      let ev_in := mk_cenv (ins p) cins in
+      stmt_list_csem ev_in ctr cus rs couts (body p) cev /\
+      trace e = map to_evt ctr /\
+      uniqs e = map to_alg cus /\
+      outputs e = map to_alg couts.
+
+(** Main theorem about the concrete semantics *)
+
+Theorem csem_sem_faithfulness:
+  forall p rs cev e,
+    csem p rs cev e -> sem p (to_env cev) e.
+Proof.
+  intros.
+  unfold csem in H.
+  repeat match goal with
+         | [ H: _ /\ _ |- _ ] =>
+           destruct H
+         | [ H: exists _, _ |- _ ] =>
+           destruct H
+         | [ H: cins_inputs (ins _) _ |- _ ] =>
+             apply cins_ins_inputs in H
+         end.
+  apply stmt_list_csem_stmt_list_sem in H1.
+  rewrite mk_cenv_env in H1.
+  unfold sem.
+  repeat match goal with
+         | [ H: _ e = map _ _ |- _ ] =>
+           rewrite H
+         end.
+  split; auto.
+Qed.
+
+(** ** Adequacy
+
+    Theorem [sem_csem_adequacy] states that whenever there is a run of
+    the abstract semantics, there is a run of the concrete semantics.
+    The proof of this theorem is much more difficult than the proof of
+    the faithfulness theorem.  For that theorem, it is easy to create
+    a witness by simply eliminating randomness using the [to_alg]
+    function.  This section defines some simulation relations that
+    help find the correct witness. *)
+
+Lemma ex_lookup:
+  forall v ev a,
+    lookup v (to_env ev) = Some a ->
+    exists b, lookup v ev = Some b.
+Proof.
+  induction ev; intros; simpl in *; auto.
+  - inv H.
+  - unfold to_maplet in H.
+    repeat expand_let_pairs; simpl in *.
+    destruct (alt_bool_dec (fst a =? v)) as [G|G];
+      rewrite G in *.
+    + inv H.
+      destruct a as [u c]; simpl.
+      exists c; auto.
+    + eapply IHev; eauto.
+Qed.
+
+(** This theorem states that whenever an abstract expression has a
+    value, there is corresponding value in the concrete semantics.
+    The proof of this theorem depends on the fact that the key in a
+    decryption must not contain an encryption, and therefore, no
+    randomness.  See [CExpr_decr]. *)
+
+Theorem expr_sem_expr_csem:
+  forall ev tr us rs exp val tr' us' cev ctr cus,
+    expr_sem ev tr us exp val tr' us' ->
+    to_env cev = ev ->
+    map to_evt ctr = tr ->
+    map to_alg cus = us ->
+    exists cval ctr' cus' rs',
+      expr_csem cev ctr cus rs exp cval ctr' cus' rs' /\
+      to_alg cval = val /\
+      map to_evt ctr' = tr' /\
+      map to_alg cus' = us'.
+Proof.
+  intros.
+  destruct exp; inv H.
+  - exists (CTg s).
+    exists ctr.
+    exists cus.
+    exists rs.
+    simpl.
+    auto.
+  - pose proof H7 as G.
+    apply ex_lookup in H7.
+    destruct H7.
+    erewrite lookup_ev in G; eauto.
+    inv G; subst.
+    exists (CHs x).
+    repeat eexists.
+    apply CExpr_hash; auto.
+  - pose proof H8 as H.
+    apply ex_lookup in H8.
+    destruct H8.
+    erewrite lookup_ev in H; eauto.
+    inv H; subst.
+    pose proof H12 as H.
+    apply ex_lookup in H12.
+    destruct H12.
+    erewrite lookup_ev in H; eauto.
+    inv H; subst.
+    exists (CPr x x0); simpl.
+    repeat eexists; eauto.
+  - pose proof H8 as H.
+    apply ex_lookup in H8.
+    destruct H8.
+    erewrite lookup_ev in H; eauto.
+    inv H; subst.
+    pose proof H12 as H.
+    apply ex_lookup in H12.
+    destruct H12.
+    erewrite lookup_ev in H; eauto.
+    inv H; subst.
+    destruct rs as [|r rs].
+    + exists (CEn 0 x x0); simpl.
+      repeat eexists; eauto.
+    + exists (CEn r x x0); simpl.
+      repeat eexists; eauto.
+  - pose proof H7 as H.
+    apply ex_lookup in H7.
+    destruct H7.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H2; inv H2.
+    exists x1.
+    repeat eexists; eauto.
+  - pose proof H7 as H.
+    apply ex_lookup in H7.
+    destruct H7.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H2; inv H2.
+    exists x2.
+    repeat eexists; eauto.
+  - pose proof H5 as H.
+    apply ex_lookup in H5.
+    destruct H5.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H2; inv H2.
+    rewrite inv_to_alg in H13.
+    rewrite inv_to_alg in H9.
+    pose proof H9 as H.
+    apply ex_lookup in H9.
+    destruct H9.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    exists x1.
+    repeat eexists; eauto.
+    rewrite <- has_enc_to_alg in H13.
+    eapply CExpr_decr; eauto.
+    rewrite H1.
+    apply eq_sym in H3.
+    apply no_enc_eq in H3; subst; auto.
+  - destruct cus as [| u cus]; simpl in H5; inv H5.
+    exists u.
+    repeat eexists; eauto.
+  - destruct ctr as [| e ctr]; simpl in H5; inv H5.
+    destruct e; simpl in H0; inv H0.
+    pose proof H7 as H.
+    apply ex_lookup in H7.
+    destruct H7.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H2; inv H2.
+    exists c.
+    repeat eexists; eauto.
+Qed.
+
+(** The [stmt_send] conditions ensures that a transmitted message
+    agrees with what is in the environment. *)
+
+Definition stmt_send (ev: cenv) (ctr: list cevt) (s: stmt): Prop :=
+  match s, ctr with
+  | Send c x, CSd d a :: _ =>
+    lookup x ev = Some a
+  | _, _ => True
+  end.
+
+(** This theorem states that whenever an abstract state transitions,
+    there is corresponding transition in the concrete semantics.  The
+    proof of this theorem depends on the fact that the sameness and
+    inverse predicate checks never succeed when given a term that
+    contains an encryption, so checked terms contain no randomness.
+    See [CStmt_same] and [CStmt_invp]. *)
+
+Theorem stmt_sem_stmt_csem:
+  forall ev tr us cev ctr cus rs stmt ev' tr' us',
+    stmt_sem ev tr us stmt ev' tr' us' ->
+    to_env cev = ev ->
+    map to_evt ctr = tr ->
+    map to_alg cus = us ->
+    stmt_send cev ctr stmt ->
+    exists cev' ctr' cus' rs',
+      stmt_csem cev ctr cus rs stmt cev' ctr' cus' rs' /\
+      to_env cev' = ev' /\
+      map to_evt ctr' = tr' /\
+      map to_alg cus' = us'.
+Proof.
+  intros.
+  destruct stmt; inv H.
+  - apply expr_sem_expr_csem
+      with (rs := rs)
+           (cev := cev)
+           (ctr := ctr)
+           (cus := cus)
+      in H9; auto.
+    repeat destruct_ex_and; subst.
+    rewrite <- type_check_equiv in H13.
+    exists ((v, x) :: cev).
+    exists x0.
+    exists x1.
+    exists x2.
+    auto.
+  - destruct ctr as [|e ctr].
+    simpl in H7.
+    inv H7.
+    destruct e; simpl in H7; inv H7.
+    pose proof H9 as H.
+    apply ex_lookup in H9.
+    destruct H9.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H2; inv H2.
+    pose proof H13 as H.
+    apply ex_lookup in H13.
+    destruct H13.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    unfold stmt_send in H3.
+    rewrite H1 in H3.
+    inv H3.
+    repeat eexists; eauto.
+  - exists cev.
+    exists ctr.
+    exists cus.
+    exists rs.
+    pose proof H6 as H.
+    apply ex_lookup in H6.
+    destruct H6.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    pose proof H7 as H.
+    apply ex_lookup in H7.
+    destruct H7.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    rewrite <- has_enc_to_alg in H11; auto.
+    apply eq_sym in H4.
+    apply no_enc_eq in H4; auto; subst.
+    split; auto.
+    eapply CStmt_same; eauto.
+  - exists cev.
+    exists ctr.
+    exists cus.
+    exists rs.
+    pose proof H7 as H.
+    apply ex_lookup in H7.
+    destruct H7.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H2; inv H2.
+    pose proof H11 as H.
+    apply ex_lookup in H11.
+    destruct H11.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H4; inv H4.
+    pose proof H15 as H.
+    apply ex_lookup in H15.
+    destruct H15.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H5; inv H5.
+    split; auto.
+    eapply CStmt_ltkp; eauto.
+  - exists cev.
+    exists ctr.
+    exists cus.
+    exists rs.
+    pose proof H6 as H.
+    apply ex_lookup in H6.
+    destruct H6.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    pose proof H7 as H.
+    apply ex_lookup in H7.
+    destruct H7.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    rewrite inv_to_alg in H11.
+    rewrite <- has_enc_to_alg in H11; auto.
+    rewrite inv_to_alg in H2.
+    apply eq_sym in H2.
+    apply no_enc_eq in H2; auto; subst.
+    split; auto.
+    eapply CStmt_invp; eauto.
+  - exists cev.
+    exists ctr.
+    exists cus.
+    exists rs.
+    pose proof H6 as H.
+    apply ex_lookup in H6.
+    destruct H6.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H2; inv H2.
+    pose proof H10 as H.
+    apply ex_lookup in H10.
+    destruct H10.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H4; inv H4.
+    split; auto.
+    eapply CStmt_pub_namp; eauto.
+  - exists cev.
+    exists ctr.
+    exists cus.
+    exists rs.
+    pose proof H6 as H.
+    apply ex_lookup in H6.
+    destruct H6.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H2; inv H2.
+    pose proof H10 as H.
+    apply ex_lookup in H10.
+    destruct H10.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H4; inv H4.
+    split; auto.
+    eapply CStmt_priv_namp; eauto.
+  - exists cev.
+    exists ctr.
+    exists cus.
+    exists rs.
+    pose proof H7 as H.
+    apply ex_lookup in H7.
+    destruct H7.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H2; inv H2.
+    pose proof H11 as H.
+    apply ex_lookup in H11.
+    destruct H11.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H4; inv H4.
+    pose proof H15 as H.
+    apply ex_lookup in H15.
+    destruct H15.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H5; inv H5.
+    split; auto.
+    eapply CStmt_pub_nm2p; eauto.
+  - exists cev.
+    exists ctr.
+    exists cus.
+    exists rs.
+    pose proof H7 as H.
+    apply ex_lookup in H7.
+    destruct H7.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H2; inv H2.
+    pose proof H11 as H.
+    apply ex_lookup in H11.
+    destruct H11.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H4; inv H4.
+    pose proof H15 as H.
+    apply ex_lookup in H15.
+    destruct H15.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H5; inv H5.
+    split; auto.
+    eapply CStmt_priv_nm2p; eauto.
+Qed.
+
+(** So far, the proofs have been fairly straightforward.  But that
+    is all about to change.  The next step is to show that whenever
+    there are sequences of abstract state transitions, there are
+    corresponding sequences of transitions in the concrete semantics.
+    In the previous theorem, the transmitted term had to agree with
+    what was in the environment.  The challenge is to find a trace
+    that serves as a witness that has that property.
+
+    There is considerable freedom in the choice of received terms in
+    the trace of our witness.  The primary requirement is that when
+    randomness is removed, they agree with received terms in the
+    abstract trace.  Therefore, we choose received terms that have
+    zero as the randomness for any encryption within the term.
+
+    We also have to find a sequence of concrete fresh values that
+    corresponds to a sequence of abstract fresh values.  This is easy,
+    because fresh values are basic values and contain no encryptions
+    and so no randomness. *)
+
+(** Create a concrete term from an abstract term without randomness *)
+
+Fixpoint to_calg (x: alg): calg :=
+  match x with
+  | Tx v => CTx v
+  | Dt v => CDt v
+  | Nm v => CNm v
+  | Sk k => CSk k
+  | Ak k => CAk k
+  | Ik k => CIk k
+  | Ch v => CCh v
+  | Mg v => CMg v
+  | Tg z => CTg z
+  | Pr y z => CPr (to_calg y) (to_calg z)
+  | En y z => CEn 0 (to_calg y) (to_calg z)
+  | Hs y => CHs (to_calg y)
+  end.
+
+Lemma to_alg_calg:
+  forall val,
+    to_alg (to_calg val) = val.
+Proof.
+  induction val; simpl; auto.
+  - rewrite IHval1.
+    rewrite IHval2.
+    auto.
+  - rewrite IHval1.
+    rewrite IHval2.
+    auto.
+  - rewrite IHval.
+    auto.
+Qed.
+
+Lemma map_to_alg_calg:
+  forall xs,
+    map to_alg (map to_calg xs) = xs.
+Proof.
+  induction xs; simpl; auto.
+  rewrite to_alg_calg.
+  rewrite IHxs; auto.
+Qed.
+
+(** Concrete terms without encryptions have no randomness. *)
+
+Lemma to_calg_alg:
+  forall val,
+    chas_enc val = false ->
+    to_calg (to_alg val) = val.
+Proof.
+  induction val; intros; simpl in *; auto.
+  - rewrite orb_false_iff in H.
+    destruct H.
+    rewrite IHval1; auto.
+    rewrite IHval2; auto.
+  - inv H.
+  - rewrite IHval; auto.
+Qed.
+
+Lemma has_enc_lookup:
+  forall x cev v,
+    has_enc x = false ->
+    lookup v (to_env cev) = Some x ->
+    lookup v cev = Some (to_calg x).
+Proof.
+  intros.
+  pose proof H0 as G.
+  apply ex_lookup in H0.
+  destruct H0 as [y].
+  pose proof H0 as F.
+  apply lookup_ev in H0.
+  rewrite G in H0.
+  inv H0.
+  rewrite <- has_enc_to_alg in H.
+  rewrite to_calg_alg; auto.
+Qed.
+
+Definition to_cmaplet (m: var * alg): var * calg :=
+  let (v, x) := m in (v, to_calg x).
+
+(** Convert a concrete environment.  This is used to convert inputs to
+    a role.  Since they are basic values, they do not contain
+    randomness. *)
+
+Definition to_cenv (ev: env): cenv :=
+  map to_cmaplet ev.
+
+Lemma to_env_cenv:
+  forall ev,
+    to_env (to_cenv ev) = ev.
+Proof.
+  induction ev; simpl; auto.
+  rewrite IHev.
+  unfold to_cmaplet.
+  unfold to_maplet.
+  repeat expand_let_pairs; simpl.
+  rewrite to_alg_calg; auto.
+Qed.
+
+Lemma mk_env_cenv:
+  forall ds xs,
+    to_cenv (mk_env ds xs) = mk_cenv ds (map to_calg xs).
+Proof.
+  induction ds; intros; simpl; auto.
+  destruct a as [v s].
+  destruct xs as [|c xxs]; simpl; auto.
+  rewrite IHds.
+  auto.
+Qed.
+
+Lemma map_m_lookup_ev:
+  forall ev vs outs,
+    map_m (flip lookup (to_env ev)) vs = Some outs ->
+    exists couts,
+      map_m (flip lookup ev) vs = Some couts /\
+      map to_alg couts = outs.
+Proof.
+  intros ev vs.
+  revert ev.
+  induction vs; intros; simpl in *; auto.
+  - inv H.
+    exists []; simpl; auto.
+  - apply do_some in H.
+    destruct H as [x].
+    destruct H.
+    apply do_some in H0.
+    destruct H0 as [xs].
+    destruct H0.
+    inv H1.
+    apply IHvs in H0.
+    destruct H0 as [couts'].
+    destruct H0; subst.
+    pose proof H as G.
+    apply ex_lookup in H.
+    destruct H as [b].
+    exists (b :: couts').
+    unfold flip at 1.
+    rewrite H.
+    rewrite H0.
+    split; auto.
+    simpl.
+    unfold flip in G.
+    apply lookup_ev in H.
+    rewrite H in G.
+    inv G; subst; auto.
+Qed.
+
+(** Relate expressions
+
+<<
+   Parmeters:
+   cenv:      Input environment
+   list evt:  Input trace
+   list alg:  Input list of uniques
+   list nat:  Input list of random values
+   expr:      Expression code fragment
+   calg:      Value of the expression
+   list evt:  Output trace
+   list alg:  Output list of uniques
+   list nat:  Output list of random values
+   list cevt: Output added concrete events
+   list calg: Output added concrete uniques
+>>
+*)
+
+Inductive expr_sim:
+  cenv -> list evt -> list alg -> list nat -> expr ->
+  calg -> list evt -> list alg -> list nat ->
+  list cevt -> list calg -> Prop :=
+| Sim_quot: forall ev tr us rs x,
+    expr_sim ev tr us rs (Quot_ x) (CTg x)
+             tr us rs [] []
+| Sim_hash: forall ev tr us rs x a,
+    lookup x ev = Some a ->
+    expr_sim ev tr us rs (Hash_ x) (CHs a) tr us rs [] []
+| Sim_pair: forall ev tr us rs x y a b,
+    lookup x ev = Some a ->
+    lookup y ev = Some b ->
+    expr_sim ev tr us rs (Pair_ x y) (CPr a b) tr us rs [] []
+| Sim_encr_prob: forall ev tr us rs x y r a b,
+    lookup x ev = Some a ->
+    lookup y ev = Some b ->
+    expr_sim ev tr us (r :: rs) (Encr_ x y) (CEn r a b) tr us rs [] []
+| Sim_encr_zero: forall ev tr us x y a b,
+    lookup x ev = Some a ->
+    lookup y ev = Some b ->
+    expr_sim ev tr us [] (Encr_ x y) (CEn 0 a b) tr us [] [] []
+| Sim_frst: forall ev tr us rs x a b,
+    lookup x ev = Some (CPr a b) ->
+    expr_sim ev tr us rs (Frst_ x) a tr us rs [] []
+| Sim_scnd: forall ev tr us rs x a b,
+    lookup x ev = Some (CPr a b) ->
+    expr_sim ev tr us rs (Scnd_ x) b tr us rs [] []
+| Sim_decr: forall ev tr us rs x y r a b,
+    lookup x ev = Some (CEn r a b) ->
+    lookup y ev = Some (cinv b) ->
+    chas_enc (cinv b) = false ->
+    expr_sim ev tr us rs (Decr_ x y) a tr us rs [] []
+| Sim_frsh: forall ev tr us rs a,
+    expr_sim ev tr (a :: us) rs Frsh_ (to_calg a) tr us rs [] [to_calg a]
+| Sim_recv: forall ev tr us rs a c d,
+    lookup c ev = Some (CCh d) ->
+    expr_sim ev (Rv d a :: tr) us rs (Recv_ c) (to_calg a)
+             tr us rs [CRv d (to_calg a)] [].
+#[global]
+Hint Constructors expr_sim : core.
+
+Lemma expr_sim_to_alg:
+  forall cev tr us rs exp val tr' us' rs' dtr dus,
+    expr_sim cev tr us rs exp val tr' us' rs' dtr dus ->
+    map to_evt dtr ++ tr' = tr /\ map to_alg dus ++ us' = us.
+Proof.
+  intros.
+  destruct exp; inv H; simpl; auto;
+    rewrite to_alg_calg; auto.
+Qed.
+
+(** The simulation always exists *)
+
+Lemma expr_sem_expr_sim:
+  forall ev tr us exp val rs tr' us' cev,
+    expr_sem ev tr us exp val tr' us' ->
+    to_env cev = ev ->
+    exists cval rs' dtr dus,
+      expr_sim cev tr us rs exp cval tr' us' rs' dtr dus /\
+      to_alg cval = val.
+Proof.
+  intros.
+  destruct exp; inv H.
+  - exists (CTg s); exists rs; exists []; exists [].
+    auto.
+  - pose proof H5 as H.
+    apply ex_lookup in H5.
+    destruct H5.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    exists (CHs x); exists rs; exists []; exists [].
+    auto.
+  - pose proof H6 as H.
+    apply ex_lookup in H6.
+    destruct H6.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    pose proof H10 as H.
+    apply ex_lookup in H10.
+    destruct H10.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    exists (CPr x x0); exists rs; exists []; exists [].
+    auto.
+  - pose proof H6 as H.
+    apply ex_lookup in H6.
+    destruct H6.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    pose proof H10 as H.
+    apply ex_lookup in H10.
+    destruct H10.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct rs as [| r rs].
+    + exists (CEn 0 x x0); exists []; exists []; exists [].
+      auto.
+    + exists (CEn r x x0); exists rs; exists []; exists [].
+      auto.
+  - pose proof H5 as H.
+    apply ex_lookup in H5.
+    destruct H5.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H2; inv H2.
+    exists x1; exists rs; exists []; exists [].
+    split; auto.
+    eapply Sim_frst; eauto.
+  - pose proof H5 as H.
+    apply ex_lookup in H5.
+    destruct H5.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H2; inv H2.
+    exists x2; exists rs; exists []; exists [].
+    split; auto.
+    eapply Sim_scnd; eauto.
+  - pose proof H3 as H.
+    apply ex_lookup in H3.
+    destruct H3.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H2; inv H2.
+    pose proof H7 as H.
+    apply ex_lookup in H7.
+    destruct H7.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    rewrite inv_to_alg in *.
+    apply eq_sym in H3.
+    rewrite <- has_enc_to_alg in H11.
+    apply no_enc_eq in H3; auto; subst.
+    exists x1; exists rs; exists []; exists [].
+    split; auto.
+    eapply Sim_decr; eauto.
+  - exists (to_calg val); exists rs; exists [];
+      exists [to_calg val].
+    rewrite to_alg_calg.
+    auto.
+  - pose proof H5 as H.
+    apply ex_lookup in H5.
+    destruct H5.
+    erewrite lookup_ev in H; eauto.
+    inv H.
+    destruct x; simpl in H2; inv H2.
+    exists (to_calg val); exists rs;
+      exists [CRv d (to_calg val)]; exists [].
+    rewrite to_alg_calg.
+    auto.
+Qed.
+
+Lemma expr_sim_injective:
+  forall cev tr us rs exp
+         val' tr' us' rs' dtr' cus'
+         val'' tr'' us'' rs'' dtr'' cus'',
+    expr_sim cev tr us rs exp val' tr' us' rs' dtr' cus' ->
+    expr_sim cev tr us rs exp val'' tr'' us'' rs'' dtr'' cus'' ->
+    val' = val'' /\ tr' = tr'' /\ us' = us'' /\
+    rs' = rs'' /\ dtr' = dtr'' /\ cus' = cus''.
+Proof.
+  intros.
+  destruct exp; inv H; inv H0; intuition.
+  - rewrite H5 in H6; inv H6; auto.
+  - rewrite H7 in H6; inv H6.
+    rewrite H15 in H14; inv H14; auto.
+  - rewrite H7 in H15; inv H15.
+    rewrite H16 in H14; inv H14; auto.
+  - rewrite H7 in H5; inv H5.
+    rewrite H6 in H14; inv H14; auto.
+  - rewrite H6 in H5; inv H5; auto.
+  - rewrite H6 in H5; inv H5; auto.
+  - rewrite H3 in H2; inv H2; auto.
+Qed.
+
+(** The desired simulation between abstract and concrete expressions *)
+
+Lemma expr_sem_sim_csem:
+  forall ev tr us exp val tr' us'
+         cev cval rs rs' dtr dus ctr cus,
+    expr_sem ev tr us exp val tr' us' ->
+    expr_sim cev tr us rs exp cval tr' us' rs' dtr dus ->
+    to_env cev = ev ->
+    to_alg cval = val ->
+    expr_csem cev (dtr ++ ctr) (dus ++ cus) rs exp cval ctr cus rs'.
+Proof.
+  intros.
+  pose proof H0 as G.
+  apply expr_sim_to_alg in H0.
+  destruct H0.
+  destruct exp; inv H; inv G; simpl; auto.
+  - eapply CExpr_frst; eauto.
+  - eapply CExpr_scnd; eauto.
+  - eapply CExpr_decr; eauto.
+Qed.
+
+(** Relate statements
+
+<<
+   Parmeters:
+   cenv:      Input environment
+   list evt:  Input trace
+   list alg:  Input list of uniques
+   list nat:  Input list of random values
+   stmt:      Statement
+   cenv:      Output environment
+   list evt:  Output trace
+   list alg:  Ouput list of uniques
+   list nat:  Output list of random values
+   list cevt: Output added concrete events
+   list calg: Output added concrete uniques
+>>
+*)
+
+Inductive stmt_sim:
+  cenv -> list evt -> list alg -> list nat -> stmt ->
+  cenv -> list evt -> list alg -> list nat ->
+  list cevt -> list calg -> Prop :=
+| Sim_bind: forall ev tr us rs v s exp val
+                   tr' us' rs' dtr dus,
+    expr_sim ev tr us rs exp val tr' us' rs' dtr dus ->
+    ctype_check s val ->
+    stmt_sim ev tr us rs (Bind (v, s) exp)
+             ((v, val) :: ev) tr' us' rs' dtr dus
+| Sim_send: forall ev tr us rs c x d a,
+    lookup c ev = Some (CCh d) ->
+    lookup x ev = Some a ->
+    stmt_sim ev (Sd d (to_alg a) :: tr) us rs
+             (Send c x) ev tr us rs [CSd d a] []
+| Sim_same: forall ev tr us rs x y,
+    stmt_sim ev tr us rs (Same x y) ev tr us rs [] []
+| Sim_ltkp: forall ev tr us rs x y z,
+    stmt_sim ev tr us rs (Ltkp x y z) ev tr us rs [] []
+| Sim_invp: forall ev tr us rs x y,
+    stmt_sim ev tr us rs (Invp x y) ev tr us rs [] []
+| Sim_namp: forall ev tr us rs x y,
+    stmt_sim ev tr us rs (Namp x y) ev tr us rs [] []
+| Sim_nm2p: forall ev tr us rs x y z,
+    stmt_sim ev tr us rs (Nm2p x y z) ev tr us rs [] [].
+#[global]
+Hint Constructors stmt_sim : core.
+
+Lemma stmt_sim_to_alg:
+  forall ev tr us rs stmt ev' tr' us' rs' dtr dus,
+    stmt_sim ev tr us rs stmt ev' tr' us' rs' dtr dus ->
+    map to_evt dtr ++ tr' = tr /\ map to_alg dus ++ us' = us.
+Proof.
+  intros.
+  destruct stmt; inv H; simpl; auto.
+  apply expr_sim_to_alg in H6; auto.
+Qed.
+
+(** The simulation always exists *)
+
+Lemma stmt_sem_stmt_sim:
+  forall cev ev tr us rs stmt ev' tr' us',
+    stmt_sem ev tr us stmt ev' tr' us' ->
+    to_env cev = ev ->
+    exists cev' rs' dtr dus,
+      stmt_sim cev tr us rs stmt cev' tr' us' rs' dtr dus /\
+      to_env cev' = ev'.
+Proof.
+  intros.
+  inv H.
+  - apply expr_sem_expr_sim
+      with (rs := rs)
+           (cev := cev) in H1; auto.
+    destruct H1 as [cval G].
+    destruct G as [rs' G].
+    destruct G as [dtr G].
+    destruct G as [dus G].
+    destruct G; subst.
+    rewrite <- type_check_equiv in H2.
+    exists ((v, cval) :: cev).
+    exists rs'.
+    exists dtr.
+    exists dus.
+    simpl.
+    split; auto.
+  - pose proof H2 as G.
+    apply ex_lookup in H2.
+    destruct H2 as [b].
+    pose proof H1 as F.
+    apply has_enc_lookup in H1; simpl; auto.
+    simpl in H1.
+    pose proof H as E.
+    apply lookup_ev in H.
+    rewrite H in G.
+    inv G.
+    exists cev.
+    exists rs.
+    exists [CSd d b].
+    exists [].
+    split; auto.
+  - pose proof H1 as G.
+    apply has_enc_lookup in H1; simpl; auto.
+    pose proof H2 as F.
+    apply has_enc_lookup in H2; simpl; auto.
+    exists cev.
+    exists rs.
+    exists [].
+    exists [].
+    split; auto.
+  - pose proof H1 as G.
+    apply has_enc_lookup in H1; simpl; auto.
+    pose proof H2 as F.
+    apply has_enc_lookup in H2; simpl; auto.
+    pose proof H3 as E.
+    apply has_enc_lookup in H3; simpl; auto.
+    exists cev.
+    exists rs.
+    exists [].
+    exists [].
+    split; auto.
+  - pose proof H1 as G.
+    apply has_enc_lookup in H1; simpl; auto.
+    rewrite inv_has_enc in H3.
+    pose proof H2 as F.
+    apply has_enc_lookup in H2; simpl; auto.
+    exists cev.
+    exists rs.
+    exists [].
+    exists [].
+    split; auto.
+  - pose proof H1 as G.
+    apply has_enc_lookup in H1; simpl; auto.
+    pose proof H2 as F.
+    apply has_enc_lookup in H2; simpl; auto.
+    exists cev.
+    exists rs.
+    exists [].
+    exists [].
+    split; auto.
+  - pose proof H1 as G.
+    apply has_enc_lookup in H1; simpl; auto.
+    pose proof H2 as F.
+    apply has_enc_lookup in H2; simpl; auto.
+    exists cev.
+    exists rs.
+    exists [].
+    exists [].
+    split; auto.
+  - pose proof H1 as G.
+    apply has_enc_lookup in H1; simpl; auto.
+    pose proof H2 as F.
+    apply has_enc_lookup in H2; simpl; auto.
+    pose proof H3 as E.
+    apply has_enc_lookup in H3; simpl; auto.
+    exists cev.
+    exists rs.
+    exists [].
+    exists [].
+    split; auto.
+  - pose proof H1 as G.
+    apply has_enc_lookup in H1; simpl; auto.
+    pose proof H2 as F.
+    apply has_enc_lookup in H2; simpl; auto.
+    pose proof H3 as E.
+    apply has_enc_lookup in H3; simpl; auto.
+    exists cev.
+    exists rs.
+    exists [].
+    exists [].
+    split; auto.
+Qed.
+
+Lemma stmt_sim_injective:
+  forall cev tr us rs stmt
+         cev' tr' us' rs' dtr' dus'
+         cev'' tr'' us'' rs'' dtr'' dus'',
+    stmt_sim cev tr us rs stmt cev' tr' us' rs' dtr' dus' ->
+    stmt_sim cev tr us rs stmt cev'' tr'' us'' rs'' dtr'' dus'' ->
+    cev' = cev'' /\ tr' = tr'' /\ us' = us'' /\
+    rs' = rs'' /\ dtr' = dtr'' /\ dus' = dus''.
+Proof.
+  intros.
+  destruct stmt; inv H; inv H0; intuition.
+  - eapply expr_sim_injective in H7; eauto.
+    repeat destruct_ex_and; subst; auto.
+  - eapply expr_sim_injective in H7; eauto.
+    repeat destruct_ex_and; subst; auto.
+  - eapply expr_sim_injective in H7; eauto.
+    repeat destruct_ex_and; subst; auto.
+  - eapply expr_sim_injective in H7; eauto.
+    repeat destruct_ex_and; subst; auto.
+  - eapply expr_sim_injective in H7; eauto.
+    repeat destruct_ex_and; subst; auto.
+  - eapply expr_sim_injective in H7; eauto.
+    repeat destruct_ex_and; subst; auto.
+  - rewrite H14 in H17.
+    inv H17; subst; auto.
+Qed.
+
+(** The desired simulation between abstract and concrete statements *)
+
+Lemma stmt_sem_sim_csem:
+  forall cev ev tr us rs stmt ev' tr' us'
+         cev' rs' dtr dus ctr cus,
+    stmt_sem ev tr us stmt ev' tr' us' ->
+    stmt_sim cev tr us rs stmt cev' tr' us' rs' dtr dus ->
+    to_env cev = ev ->
+    to_env cev' = ev' ->
+    stmt_csem cev (dtr ++ ctr) (dus ++ cus) rs stmt
+              cev' ctr cus rs'.
+Proof.
+  intros.
+  pose proof H0 as G.
+  apply stmt_sim_to_alg in H0.
+  destruct H0.
+  destruct stmt; inv H; inv G; simpl in *; subst; auto.
+  - inv H10.
+    eapply expr_sem_sim_csem in H15; eauto.
+  - apply has_enc_lookup in H6; auto.
+    apply has_enc_lookup in H7; auto.
+    eapply CStmt_same; eauto.
+    rewrite has_enc_to_alg.
+    rewrite to_alg_calg; auto.
+  - apply has_enc_lookup in H7; auto.
+    apply has_enc_lookup in H11; auto.
+    apply has_enc_lookup in H15; auto.
+    eapply CStmt_ltkp; eauto.
+  - apply has_enc_lookup in H6; auto.
+    pose proof H11 as G.
+    rewrite inv_has_enc in H11.
+    apply has_enc_lookup in H7; auto.
+    eapply CStmt_invp; eauto.
+    rewrite has_enc_to_alg.
+    rewrite to_alg_calg; auto.
+    destruct b; auto.
+  - apply has_enc_lookup in H6; auto.
+    apply has_enc_lookup in H10; auto.
+    eapply CStmt_pub_namp; eauto.
+  - apply has_enc_lookup in H6; auto.
+    apply has_enc_lookup in H10; auto.
+    eapply CStmt_priv_namp; eauto.
+  - apply has_enc_lookup in H7; auto.
+    apply has_enc_lookup in H11; auto.
+    apply has_enc_lookup in H15; auto.
+    eapply CStmt_pub_nm2p; eauto.
+  - apply has_enc_lookup in H7; auto.
+    apply has_enc_lookup in H11; auto.
+    apply has_enc_lookup in H15; auto.
+    eapply CStmt_priv_nm2p; eauto.
+Qed.
+
+(** Relate sequences of statements
+
+<<
+   Parmeters:
+   cenv:      Input environment
+   list evt:  Input trace
+   list alg:  Input list of uniques
+   list nat:  Input list of random values
+   list calg: Output list
+   list stmt: Statements
+   cenv:      Output environment
+   list cevt: Output added concrete events
+   list calg: Output added concrete uniques
+>>
+*)
+Inductive stmt_list_sim:
+  cenv -> list evt -> list alg -> list nat -> list calg -> list stmt ->
+  cenv -> list cevt -> list calg -> Prop :=
+| Sim_return: forall ev rs outs vs,
+    map_m (flip lookup ev) vs = Some outs ->
+    stmt_list_sim ev [] [] rs outs [Return vs] ev [] []
+| Sim_stmts: forall ev tr us rs outs s stmts ev' tr' us' rs' dtr dus
+                    ev'' ctr cus,
+    stmt_sim ev tr us rs s ev' tr' us' rs' dtr dus ->
+    stmt_list_sim ev' tr' us' rs' outs stmts ev'' ctr cus ->
+    stmt_list_sim ev tr us rs outs (s :: stmts)
+                  ev'' (dtr ++ ctr) (dus ++ cus).
+#[global]
+Hint Constructors stmt_list_sim : core.
+
+Lemma stmt_list_sim_to_alg:
+  forall stmts cev tr us rs couts cev' ctr cus,
+    stmt_list_sim cev tr us rs couts stmts cev' ctr cus ->
+    map to_evt ctr = tr /\ map to_alg cus = us.
+Proof.
+  induction stmts; intros; inv H; simpl; auto.
+  apply stmt_sim_to_alg in H7; auto.
+  destruct H7; subst.
+  apply IHstmts in H11.
+  destruct H11; subst.
+  repeat rewrite map_app; auto.
+Qed.
+
+(** The simulation always exists *)
+
+Lemma stmt_list_sem_stmt_list_sim:
+  forall stmts ev tr us rs outs ev' cev,
+    stmt_list_sem ev tr us outs stmts ev' ->
+    to_env cev = ev ->
+    exists couts cev' ctr cus,
+      stmt_list_sim cev tr us rs couts stmts cev' ctr cus /\
+      map to_alg couts = outs.
+Proof.
+  induction stmts; intros; simpl; auto; inv H.
+  - apply map_m_lookup_ev in H8.
+    destruct H8 as [couts].
+    destruct H; subst.
+    exists couts.
+    exists cev.
+    exists [].
+    exists [].
+    auto.
+  - pose proof H7 as H.
+    apply stmt_sem_stmt_sim
+      with (cev := cev) (rs := rs) in H7; auto.
+    destruct H7 as [cev' G].
+    destruct G as [rs' G].
+    destruct G as [dtr G].
+    destruct G as [dus G].
+    destruct G; subst.
+    pose proof H0 as F.
+    apply stmt_sim_to_alg in H0.
+    destruct H0; subst.
+    apply IHstmts
+      with (rs := rs') (cev := cev') in H9; auto.
+    destruct H9 as [couts G].
+    destruct G as [cev'' G].
+    destruct G as [ctr G].
+    destruct G as [cus G].
+    exists couts.
+    exists cev''.
+    exists (dtr ++ ctr).
+    exists (dus ++ cus).
+    destruct G; subst.
+    split; auto.
+    pose proof H0 as G.
+    apply stmt_list_sim_to_alg in H0.
+    destruct H0; subst.
+    eapply Sim_stmts in G; eauto.
+Qed.
+
+(** The desired simulation between abstract and concrete statement
+    sequences *)
+
+Lemma stmt_list_sem_sim_csem:
+  forall stmts ev tr us outs ev' cev rs
+         couts cev' ctr cus,
+    stmt_list_sem ev tr us outs stmts ev' ->
+    stmt_list_sim cev tr us rs couts stmts
+                  cev' ctr cus ->
+    to_env cev = ev ->
+    map to_evt ctr = tr ->
+    map to_alg cus = us ->
+    stmt_list_csem cev ctr cus rs
+                   couts stmts cev'.
+Proof.
+  induction stmts; intros; inv H; inv H0; simpl; auto.
+  - inv H9.
+  - pose proof H7 as G.
+    apply stmt_sim_to_alg in H7.
+    repeat rewrite map_app in H7.
+    destruct H7.
+    rewrite app_inv_head_iff in H; subst.
+    rewrite app_inv_head_iff in H0; subst.
+    pose proof H10 as F.
+    apply stmt_sem_stmt_sim
+      with (cev := cev) (rs := rs) in H10; auto.
+    destruct H10 as [cev'' D].
+    destruct D as [rs'' D].
+    destruct D as [dtr' D].
+    destruct D as [dus' D].
+    destruct D as [D]; subst.
+    eapply stmt_sim_injective in D; eauto.
+    repeat destruct_ex_and; subst.
+    eapply stmt_sem_sim_csem in G; eauto.
+Qed.
+
+Theorem stmt_list_sem_stmt_list_csem:
+  forall ev tr us outs stmts ev' cev rs,
+    stmt_list_sem ev tr us outs stmts ev' ->
+    to_env cev = ev ->
+    exists ctr cus couts cev',
+      stmt_list_csem cev ctr cus rs couts stmts cev' /\
+      map to_evt ctr = tr /\
+      map to_alg cus = us /\
+      map to_alg couts = outs.
+Proof.
+  intros.
+  pose proof H as G.
+  apply stmt_list_sem_stmt_list_sim
+    with (rs := rs) (cev := cev) in H; auto.
+  destruct H as [couts'].
+  destruct H as [cev'].
+  destruct H as [ctr'].
+  destruct H as [cus'].
+  destruct H.
+  exists ctr'.
+  exists cus'.
+  exists couts'.
+  exists cev'.
+  pose proof H as F.
+  apply stmt_list_sim_to_alg in F; auto.
+  destruct F.
+  eapply stmt_list_sem_sim_csem in H; eauto.
+Qed.
+
+Lemma ins_cins_inputs:
+  forall ds xs,
+    ins_inputs ds xs -> cins_inputs ds (map to_calg xs).
+Proof.
+  intros; induction H; simpl; auto.
+  apply CIns_inputs_pair; auto.
+  apply type_check_equiv.
+  rewrite to_alg_calg; auto.
+Qed.
+
+Theorem sem_csem_adequacy:
+  forall p ev rs e,
+    sem p ev e ->
+    exists cev,
+      csem p rs cev e.
+Proof.
+  intros.
+  unfold sem in H.
+  destruct H as [H G].
+  apply ins_cins_inputs in H.
+  apply stmt_list_sem_stmt_list_csem
+    with (cev := to_cenv (mk_env (ins p) (inputs e)))
+         (rs := rs) in G; auto.
+  - destruct G as [ctr G].
+    destruct G as [cus G].
+    destruct G as [couts G].
+    destruct G as [cev' G].
+    destruct G as [G F].
+    rewrite mk_env_cenv in G.
+    exists cev'.
+    unfold csem.
+    exists (map to_calg (inputs e)).
+    rewrite map_to_alg_calg.
+    split; auto.
+    split; auto.
+    exists ctr.
+    exists cus.
+    exists couts.
+    split; auto.
+    intuition.
+  - rewrite to_env_cenv; auto.
+Qed.
+
+(** ** Alternate Concrete Execution Semantics
+
+    In this semantics, the inputs are computed from the given output
+    environment instead of being assumed to exist, and outputs are
+    computed from the environment and the statement list. *)
+
+Definition mk_ins (ev: cenv) (ds: list decl): list calg :=
+  map snd (skipn (length ev - length ds) ev).
+
+Fixpoint mk_outs (ev: cenv) (stmts: list stmt): option (list calg) :=
+  match stmts with
+  | [] => None
+  | [Return vs] => map_m (flip lookup ev) vs
+  | _ :: stmts => mk_outs ev stmts
+  end.
+
+Definition csem' (p: proc) (rs: list nat) (cev: cenv) (e: role): Prop :=
+  let cins := mk_ins cev (ins p) in
+  inputs e = map to_alg cins /\
+  cins_inputs (ins p) cins /\
+  exists ctr cus,
+    trace e = map to_evt ctr /\
+    uniqs e = map to_alg cus /\
+    let ev_in := mk_cenv (ins p) cins in
+    exists couts,
+      mk_outs cev (body p) = Some couts /\
+      stmt_list_csem ev_in ctr cus rs couts (body p) cev /\
+      outputs e = map to_alg couts.
+
+Theorem csem'_csem:
+  forall p rs cev ex,
+    csem' p rs cev ex ->
+    csem p rs cev ex.
+Proof.
+  intros.
+  unfold csem' in H.
+  repeat destruct_ex_and.
+  unfold csem.
+  eexists; intuition; eauto.
+    eexists; eexists; eexists;
+      intuition; eauto.
+Qed.
+
+Functional Scheme mk_cenv_ind :=
+  Induction for mk_cenv Sort Prop.
+
+Lemma ins_inputs_length:
+  forall inputs ds,
+    cins_inputs ds inputs ->
+    length (mk_cenv ds inputs) = length ds.
+Proof.
+  intros.
+  functional induction (mk_cenv ds inputs); auto.
+  - inv H.
+  - inv H; simpl.
+    apply IHc in H6.
+    rewrite H6; auto.
+Qed.
+
+Lemma mk_ins_inputs:
+  forall inputs ds ev,
+    cins_inputs ds inputs ->
+    mk_ins (ev ++ mk_cenv ds inputs) ds = inputs.
+Proof.
+  intros.
+  unfold mk_ins.
+  rewrite skipn_app.
+  rewrite app_length.
+  rewrite ins_inputs_length; auto.
+  assert (G: length ev +
+             length ds -
+             length ds = length ev).
+  lia.
+  rewrite G.
+  rewrite skipn_all.
+  rewrite app_nil_l.
+  rewrite minus_diag; simpl.
+  clear G.
+  induction H; simpl; auto.
+  rewrite IHcins_inputs; auto.
+Qed.
+
+Functional Scheme mk_outs_ind :=
+  Induction for mk_outs Sort Prop.
+
+Lemma stmt_list_csem_outputs:
+  forall ev tr us rs outs stmts ev',
+    stmt_list_csem ev tr us rs outs stmts ev' ->
+    mk_outs ev' stmts = Some outs.
+Proof.
+  intros.
+  revert H.
+  revert ev.
+  revert tr.
+  revert us.
+  revert rs.
+  functional induction (mk_outs ev' stmts); intros.
+  - inv H.
+  - inv H; auto.
+    inv H7.
+  - inv H.
+    inv H7.
+  - inv H.
+    apply IHo in H9; auto.
+  - inv H.
+    apply IHo in H9; auto.
+  - inv H.
+    apply IHo in H9; auto.
+  - inv H.
+    apply IHo in H9; auto.
+  - inv H.
+    apply IHo in H9; auto.
+  - inv H.
+    apply IHo in H9; auto.
+  - inv H.
+    apply IHo in H9; auto.
+Qed.
+
+Theorem csem_csem':
+  forall p rs cev ex,
+    csem p rs cev ex ->
+    csem' p rs cev ex.
+Proof.
+  intros.
+  unfold csem in H.
+  repeat destruct_ex_and.
+  pose proof H1 as G.
+  apply stmt_list_csem_outputs in G.
+  unfold csem'.
+  rewrite G.
+  pose proof H1 as F.
+  apply stmt_list_csem_env_extends in F.
+  destruct F as [ev'' F]; subst.
+  rewrite mk_ins_inputs; auto.
+  repeat split; auto.
+  exists x0.
+  exists x1.
+  intuition.
+  eexists; eauto.
+Qed.
diff --git a/coq/Comp.v b/coq/Comp.v
new file mode 100644
--- /dev/null
+++ b/coq/Comp.v
@@ -0,0 +1,348 @@
+(* Role Compiler
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+(** * Role Compiler
+
+    THE COMPILER IS OUT-OF-DATE.  Please ignore this for now.
+
+    The role compiler translates a role specified as a [Proc.Sem.role]
+    into a procedure specified as a [Proc.Proc.proc] and also returns
+    the final compile time [store] produced during the compilation.
+
+    The compiler is mostly specified by recursive functions, however,
+    there is one part of the compiler that cannot be specified that
+    way.  The code generated to destructure a reception is described
+    by a recursive function that does not have an easily specified
+    measure, and thus is not accepted by Coq.  Instead, that section
+    of the code is specified by mutually inductive predicates.  This
+    means code generation must be guided by a proof script. *)
+
+Require Import List Monad Proc Alg Sem
+        Unilateral_role Unilateral_proof.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope nat_scope.
+Open Scope program_scope.
+(** printing <- #←# *)
+
+(** A compile time store *)
+
+Definition store: Set := list (alg * pvar).
+
+(** Find [x] in association list [l]. *)
+
+Fixpoint find {A} (x: alg) (l: list (alg * A)): option A :=
+  match l with
+  | nil => None
+  | (y, v) :: l =>
+    if alg_eqb x y then
+      Some v
+    else
+      find x l
+  end.
+
+(** The state of a compilation *)
+
+Record state: Set :=
+  mkSt {
+      fresh: pvar;
+      cstore: store;
+      code: list stmt }.
+
+(** ** Uniques
+
+    Function [uniq_list] computes the uniques that originate within
+    each transmission in a trace.  The length of the list is the
+    number of transmissions in the trace. *)
+
+Definition uniq_here (x: alg) (u: alg) (z: list alg * list alg):
+  list alg * list alg :=
+  if cb u x then
+    (fst z, u :: snd z)
+  else
+    (u :: fst z, snd z).
+
+Fixpoint uniq_list (tr: list evt) (us: list alg): list (list alg) :=
+  match tr with
+  | [] => []
+  | Sd _ x :: tr =>
+    let (us, here) := fold_right (uniq_here x) ([], []) us in
+    here :: uniq_list tr us
+  | Rv _ _ :: tr => uniq_list tr us
+  end.
+
+(** Compile one unique. *)
+
+Definition comp_uniq (st: state) (u: alg): state :=
+  mkSt (S (fresh st))
+       ((u, fresh st) :: cstore st)
+       ((Bind (fresh st, type_of u) Frsh_) :: code st).
+
+(** ** Trace and Outputs
+
+    Synthesize [x] and place it in the returned variable. *)
+
+Fixpoint synth (st: state) (x: alg): option (state * pvar) :=
+  match find x (cstore st) with
+  | Some v => Some (st, v)
+  | None =>
+    match x with
+    | Tg s =>
+      Some (mkSt (S (fresh st))
+                 ((x, fresh st) :: cstore st)
+                 ((Bind (fresh st, type_of x)
+                        (Quot_ s)) :: code st),
+            fresh st)
+    | Pr y z =>
+      l <- synth st y;;
+      let (st, v) := l in
+      r <- synth st z;;
+      let (st, u) := r in
+      Some (mkSt (S (fresh st))
+                 ((x, fresh st) :: cstore st)
+                 ((Bind (fresh st, type_of x)
+                        (Pair_ v u)) :: code st),
+            fresh st)
+    | En y z =>
+      l <- synth st y;;
+      let (st, v) := l in
+      r <- synth st z;;
+      let (st, u) := r in
+      Some (mkSt (S (fresh st))
+                 ((x, fresh st) :: cstore st)
+                 ((Bind (fresh st, type_of x)
+                        (Encr_ v u)) :: code st),
+            fresh st)
+    | Hs y =>
+      l <- synth st y;;
+      let (st, v) := l in
+      Some (mkSt (S (fresh st))
+                 ((x, fresh st) :: cstore st)
+                 ((Bind (fresh st, type_of x)
+                        (Hash_ v)) :: code st),
+            fresh st)
+    | _ => None
+    end
+end.
+
+Definition synth_fold (acc: state * list pvar) (x: alg):
+  option (state * list pvar) :=
+  let (st, vs) := acc in
+  y <- synth st x;;
+  let (st, v) := y in
+  Some (st, v :: vs).
+
+(** Synthesize procedure outputs *)
+
+Definition synth_return (st: state) (xs: list alg):
+  option (state * list pvar) :=
+  w <- fold_m synth_fold (st, []) xs;;
+  let (st, vs) := w in
+  Some (st, rev vs).
+
+(** *** Compile a Transmission *)
+
+Definition comp_send (st: state) (ch: var) (x: alg)
+           (us: list alg): option state :=
+  let st := fold_left comp_uniq us st in
+  y <- synth st x;;
+  let (st, v) := y in
+  z <- synth st (Ch ch);;
+  let (st, u) := z in
+  Some (mkSt
+         (fresh st)
+         (cstore st)
+         (Send u v :: code st)).
+
+(** *** Compile a Reception
+
+    Pick some element out of a list and remove it from the list. *)
+
+Inductive pick {A}: list A -> A -> list A -> Prop :=
+| Pick_this: forall x xs,
+    pick (x :: xs) x xs
+| Pick_next: forall x y xs ys,
+    pick xs y ys ->
+    pick (x :: xs) y (x :: ys).
+
+(** The hairy predicates for generating code to destructure a
+    reception.  *)
+
+Inductive comp_recv_loop: state -> store -> state -> Prop :=
+| Comp_loop_nil: forall st, comp_recv_loop st [] st
+| Comp_loop_pair: forall r x v r' st st',
+    pick r (x, v) r' ->
+    comp_recv_match st x v r' st' ->
+    comp_recv_loop st r st'
+with comp_recv_match: state -> alg -> pvar -> store ->
+                      state -> Prop :=
+| Comp_pair: forall st y z v r' st' st'',
+    st' = mkSt
+            (S (S (fresh st)))
+            ((Pr y z, v) :: cstore st)
+            ((Bind (S (fresh st), type_of z) (Scnd_ v))
+               :: (Bind (fresh st, type_of y) (Frst_ v))
+               :: code st) ->
+    comp_recv_loop st' (r' ++ [(y, fresh st); (z, S (fresh st))]) st'' ->
+    comp_recv_match st (Pr y z) v r' st''
+| Comp_decr: forall st y z v u r' st' st'' st''',
+    synth st (inv z) = Some (st', u) ->
+    st'' = mkSt
+            (S (fresh st'))
+            ((En y z, v) :: cstore st')
+            ((Bind (fresh st', type_of y)
+                   (Decr_ v u)) :: code st) ->
+    comp_recv_loop st'' (r' ++ [(y, fresh st)]) st''' ->
+    comp_recv_match st (En y z) v r' st'''
+| Comp_hash: forall st y v u r' st' st'' st''',
+    synth st (Hs y) = Some (st', u) ->
+    st'' = mkSt
+            (fresh st')
+            (cstore st')
+            (Same v u :: code st) ->
+    comp_recv_loop st'' r' st''' ->
+    comp_recv_match st (Hs y) v r' st'''
+| Comp_simple: forall st x v r' st' st'',
+    is_simple x = true ->
+    st' = match synth st x with
+          | None =>
+            mkSt
+              (fresh st)
+              ((x, v) :: cstore st)
+              (code st)
+          | Some (st'', u) =>
+            mkSt
+              (fresh st'')
+              (cstore st'')
+              (Same v u :: code st)
+          end ->
+    comp_recv_loop st' r' st'' ->
+    comp_recv_match st x v r' st''.
+#[global]
+Hint Resolve Comp_loop_nil : core.
+
+(** Add a recption and then destructure the result. *)
+
+Inductive comp_recv (st: state) (ch: pvar) (x: alg) (st': state): Prop :=
+| Comp_recv:
+    comp_recv_loop (mkSt
+                      (S (fresh st))
+                      (cstore st)
+                      ((Bind (fresh st, type_of x)
+                             (Recv_ ch)) :: code st))
+                   [(x, fresh st)] st' ->
+    comp_recv st ch x st'.
+#[global]
+Hint Constructors comp_recv : core.
+
+(** *** Compile a Trace
+
+<<
+   Parmeters:
+   state:            Input state
+   list evt:         Input trace
+   list (list alg):  Input unique list at an event
+   list alg:         Input outputs of procedure
+   store:            Output store
+   stmts:            Output stmts
+>>
+*)
+
+Inductive comp_tr: state -> list evt -> list (list alg) ->
+                   list alg -> store -> list stmt -> Prop :=
+| Comp_return: forall st outs st' vs,
+    synth_return st outs = Some (st', vs) ->
+    comp_tr st [] [] outs (cstore st') (rev ((Return vs) :: code st'))
+| Comp_sd: forall st ch x ys st' tr us outs ost ostmts,
+    comp_send st ch x ys = Some st' ->
+    comp_tr st' tr us outs ost ostmts ->
+    comp_tr st (Sd ch x :: tr) (ys :: us) outs ost ostmts
+| Comp_rv: forall st ch x st' tr us outs ost ostmts,
+    comp_recv st ch x st' ->
+    comp_tr st' tr us outs ost ostmts ->
+    comp_tr st (Rv ch x :: tr) us outs ost ostmts.
+#[global]
+Hint Resolve Comp_return : core.
+
+(** ** Inputs *)
+
+Definition istate: Set := pvar * store * list decl.
+
+Definition comp_input (ins: istate) (x: alg): istate :=
+  let (z, decls) := ins in
+  let (v, cs) := z in
+  (S v, (x, v) :: cs, (v, type_of x) :: decls).
+
+Definition comp_inputs (ins: list alg): istate :=
+  fold_left comp_input ins (0, [], []).
+
+(** *** The Role Compiler
+
+<<
+   Parmeters:
+   role:     Input role
+   store:    Output store
+   proc:     Output procedure
+>>
+*)
+
+Inductive comp (rl: role) (cs: store) (p: proc): Prop :=
+| Comp: forall ist st uniques ss,
+    valid_role rl = true ->
+    comp_inputs (inputs rl) = ist ->
+    comp_recv_loop (mkSt (fst (fst ist)) [] []) (snd (fst ist)) st  ->
+    uniq_list (trace rl) (uniqs rl) = uniques ->
+    comp_tr st (trace rl) uniques (outputs rl) cs ss ->
+    p = mkProc (rev (snd ist)) ss ->
+    comp rl cs p.
+
+(** This predicate is used to view existential variables. *)
+
+Ltac run_comp :=
+  repeat match goal with
+         | [ H: pick _ _ _ |- _ ] =>
+           apply Pick_this
+         | _ => econstructor; simpl; eauto
+         end.
+
+Inductive view_proc (cs: store) (p: proc): Prop :=
+| View_proc: view_proc cs p.
+
+Lemma comp_init:
+    exists (cs: store) (is: list decl) (ss: list stmt),
+      comp init_role cs (mkProc is ss) /\
+      view_proc cs (mkProc is ss).
+Proof.
+  eexists; eexists; eexists; split.
+  - eapply Comp; eauto; run_comp.
+  - simpl.
+    apply View_proc.
+Qed.
+
+Lemma comp_resp:
+    exists (cs: store) (is: list decl) (ss: list stmt),
+      comp resp_role cs (mkProc is ss) /\
+      view_proc cs (mkProc is ss).
+Proof.
+  eexists; eexists; eexists; split.
+  - eapply Comp; eauto; run_comp.
+  - simpl.
+    apply View_proc.
+Qed.
+
+(** ** Correctness Conjecture *)
+
+Conjecture compiler_correct_liveness:
+  forall (rl: role) (cs: store) (p: proc),
+    comp rl cs p ->
+    correct_io_liveness rl p.
+
+Conjecture compiler_correct_safety:
+  forall (rl: role) (cs: store) (p: proc),
+    comp rl cs p ->
+    correct_io_safety rl p.
diff --git a/coq/Derives.v b/coq/Derives.v
new file mode 100644
--- /dev/null
+++ b/coq/Derives.v
@@ -0,0 +1,232 @@
+(* Derivability
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+(** * Derivability *)
+
+Require Import List ListSet Bool Lia Alg Sem_tactics.
+
+(** [derives pub t] when [t] can be derived using the terms in [pub]. *)
+
+Inductive derives (pub: list alg): alg -> Prop :=
+| Der_mem: forall x: alg, In x pub -> derives pub x
+| Der_tagg: forall s, derives pub (Tg s)
+| Der_pair: forall x y,
+    derives pub x -> derives pub y -> derives pub (Pr x y)
+| Der_encr: forall x y,
+    derives pub x -> derives pub y -> derives pub (En x y)
+| Der_hash: forall x,
+    derives pub x -> derives pub (Hs x)
+| Der_frst: forall x y, derives pub (Pr x y) -> derives pub x
+| Der_scnd: forall x y, derives pub (Pr x y) -> derives pub y
+| Der_decr: forall x y,
+    derives pub (En x y) -> derives pub (inv y) -> derives pub x.
+#[global]
+Hint Constructors derives : core.
+
+(* There is no good way to implement derives directly in code.  There
+   is an easy way to do it with analyze-then-synthesize.  Here is the
+   algorithm used in CPSA and in the role compiler:
+
+synth(T, t): bool :=
+  if t in T return true;
+  if t = (t1, t2) return synth t1 && synth t2;
+  if t = (enc t1 t2) return synth t1 && synth t2;
+  if t = (hash t1) return synth t1;
+  if t = "..." return true.
+
+analyze(T): set of terms :=
+  while T changes do
+      let t = some element in T;
+      if t = (t1, t2) then add t1 and t2 to T
+      else if t = (enc t1 t2) and synth(T, invk(t2)) then add t1 to T;
+   done;
+   return T.
+*)
+
+(* synth pub t when t can be synthesized using the terms in pub. *)
+Inductive synth (pub: alg -> Prop): alg -> Prop :=
+| Synth_mem: forall x: alg, pub x -> synth pub x
+| Synth_tag: forall i, synth pub (Tg i)
+| Synth_pair: forall x y,
+    synth pub x -> synth pub y -> synth pub (Pr x y)
+| Synth_encr: forall x y,
+    synth pub x -> synth pub y -> synth pub (En x y)
+| Synth_hash: forall x,
+    synth pub x -> synth pub (Hs x).
+#[global]
+Hint Constructors synth : core.
+
+(* analyze pub t when t can be analyzed using the terms in pub. *)
+Inductive analyze (pub: list alg): alg -> Prop :=
+| Analyze_mem: forall x: alg, In x pub -> analyze pub x
+| Analyze_frst: forall x y, analyze pub (Pr x y) -> analyze pub x
+| Analyze_scnd: forall x y, analyze pub (Pr x y) -> analyze pub y
+| Analyze_decr: forall x y,
+    analyze pub (En x y) -> synth (analyze pub) (inv y) -> analyze pub x.
+
+Theorem derives_implies_analyze_then_synth:
+  forall pub x, derives pub x -> synth (analyze pub) x.
+Proof.
+  intros pub x H.
+  induction H; auto.
+  - apply Synth_mem; apply Analyze_mem; assumption.
+  - inv IHderives; auto.
+    apply Analyze_frst in H0.
+    apply Synth_mem; assumption.
+  - inv IHderives; auto.
+    apply Analyze_scnd in H0.
+    apply Synth_mem; assumption.
+  - inv IHderives1; auto.
+    apply Analyze_decr in H1; auto.
+Qed.
+
+(* Failed attempt that the final Theorem *)
+
+Theorem analyze_then_synth_implies_derives:
+  forall pub x, synth (analyze pub) x -> derives pub x.
+Proof.
+  intros pub x H.
+  induction H; auto.
+  induction H.
+  - apply Der_mem; auto.
+  - eapply Der_frst; eauto.
+  - eapply Der_scnd; eauto.
+  - eapply Der_decr; eauto.
+    clear IHanalyze H x.
+    (* HELP!!! *)
+    give_up.
+Abort.
+
+(* Analyze stratified *)
+
+Inductive analyze_strat (pub: list alg): nat -> alg -> Prop :=
+| Analyze_strat_mem: forall x,
+    In x pub ->
+    analyze_strat pub 0 x
+| Analyze_strat_incl: forall n x,
+    analyze_strat pub n x ->
+    analyze_strat pub (S n) x
+| Analyze_strat_frst: forall n x y,
+    analyze_strat pub n (Pr x y) ->
+    analyze_strat pub (S n) x
+| Analyze_strat_scnd: forall n x y,
+    analyze_strat pub n (Pr x y) ->
+    analyze_strat pub (S n) y
+| Analyze_strat_decr: forall n x y,
+    analyze_strat pub n (En x y) ->
+    synth (analyze_strat pub n) (inv y) ->
+    analyze_strat pub (S n) x.
+#[global]
+Hint Constructors analyze_strat : core.
+
+Lemma analyze_strat_zero:
+  forall pub t,
+    analyze_strat pub 0 t <-> In t pub.
+Proof.
+  split; intros.
+  - inv H; auto.
+  - apply Analyze_strat_mem; auto.
+Qed.
+
+Lemma analyze_strat_zero_then_synth:
+  forall pub t,
+    synth (analyze_strat pub 0) t <-> synth (fun y => In y pub) t.
+Proof.
+  split; intros.
+  - induction H; simpl; auto.
+    rewrite analyze_strat_zero in H.
+    apply Synth_mem; auto.
+  - induction H; simpl; auto.
+Qed.
+
+Lemma synth_implies_derives:
+  forall pub x, synth (fun y => In y pub) x -> derives pub x.
+Proof.
+  intros pub x H.
+  induction H; auto.
+Qed.
+
+Lemma analyze_strat_derives:
+  forall pub n t,
+    synth (analyze_strat pub n) t -> derives pub t.
+Proof.
+  induction n; intros.
+  - rewrite analyze_strat_zero_then_synth in H.
+    apply synth_implies_derives; auto.
+  - induction H; simpl; auto.
+    inv H.
+    + apply IHn.
+      apply Synth_mem; auto.
+    + apply Der_frst with (y := y); auto.
+    + apply Der_scnd with (x := x0); auto.
+    + apply IHn in H2.
+      apply Der_decr with (y := y); auto.
+Qed.
+
+Lemma analyze_strat_monotonic_1:
+  forall pub m t,
+    synth (analyze_strat pub m) t ->
+    synth (analyze_strat pub (S m)) t.
+Proof.
+  intros.
+  induction H; simpl; auto.
+Qed.
+
+Lemma analyze_strat_monotonic_2:
+  forall pub m n t,
+    synth (analyze_strat pub m) t ->
+    synth (analyze_strat pub (n + m)) t.
+Proof.
+  intros.
+  induction n; simpl; auto.
+  apply analyze_strat_monotonic_1; auto.
+Qed.
+
+Lemma analyze_strat_monotonic:
+  forall pub m n t,
+    m <= n ->
+    synth (analyze_strat pub m) t ->
+    synth (analyze_strat pub n) t.
+Proof.
+  intros pub m n t H G.
+  apply analyze_strat_monotonic_2 with (n := n - m) in G.
+  assert (F: n - m + m = n).
+  - lia.
+  - rewrite F in G; auto.
+Qed.
+
+(* Reflection for synth *)
+
+Fixpoint synthb (pub: list alg) t: bool :=
+  set_mem alg_dec t pub ||
+          match t with
+          | Pr x y => synthb pub x && synthb pub y
+          | En x y => synthb pub x && synthb pub y
+          | Hs x => synthb pub x
+          | Tg _ => true
+          | _ => false
+          end.
+
+Lemma synthb_correct :
+  forall pub x, synth (fun y => In y pub) x <-> synthb pub x = true.
+Proof.
+  split.
+  - intro H.
+    induction H; try apply orb_true_iff; intuition.
+    destruct x; apply orb_true_iff; left; apply set_mem_correct2; auto.
+  - induction x; intro H; simpl in H; apply orb_true_iff in H;
+      destruct H; auto;
+        try match goal with
+            | [ H: set_mem alg_dec _ pub = true |- _ ] =>
+              apply set_mem_correct1 in H; auto
+            end; try intuition.
+    + apply andb_true_iff in H.
+      destruct H; auto.
+    + apply andb_true_iff in H.
+      destruct H; auto.
+Qed.
diff --git a/coq/Examples/Bad_unilateral.v b/coq/Examples/Bad_unilateral.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Bad_unilateral.v
@@ -0,0 +1,36 @@
+(** Protocol: bad-unilateral (bad_unilateral.scm:6:1) *)
+
+Require Import Proc.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: init (bad_unilateral.scm:7:3) *)
+
+Definition init: proc :=
+  mkProc
+  [(0, Chan); (1, Akey)]
+  [
+   (* Send (bad_unilateral.scm:10:6) *)
+   Bind (2, Text) (Frsh_);
+   Bind (3, Mesg) (Encr_ 2 1);
+   Send 0 3;
+   (* Recv (bad_unilateral.scm:11:6) *)
+   Bind (4, Text) (Recv_ 0);
+   Same 4 2;
+   Return [2]
+  ].
+
+(** Role: resp (bad_unilateral.scm:15:3) *)
+
+Definition resp: proc :=
+  mkProc
+  [(0, Chan); (1, Akey)]
+  [
+   (* Recv (bad_unilateral.scm:18:6) *)
+   Bind (2, Mesg) (Recv_ 0);
+   Bind (3, Text) (Decr_ 2 1);
+   (* Send (bad_unilateral.scm:19:6) *)
+   Send 0 3;
+   Return [3]
+  ].
diff --git a/coq/Examples/Bad_unilateral_proof.v b/coq/Examples/Bad_unilateral_proof.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Bad_unilateral_proof.v
@@ -0,0 +1,27 @@
+(** * Bad Unilateral Protocol Generated Code Verification *)
+
+Require Import Sem Sem_tactics Nsl Nsl_role.
+
+Theorem correct_bad_unilateral_init_io_liveness:
+  correct_io_liveness init_role init.
+Proof.
+  sem_liveness.
+Qed.
+
+Theorem correct_bad_unilateral_resp_io_liveness:
+  correct_io_liveness resp_role resp.
+Proof.
+  sem_liveness.
+Qed.
+
+Theorem correct_bad_unilateral_init_io_safety:
+  correct_io_safety init_role init.
+Proof.
+  sem_safety.
+Qed.
+
+Theorem correct_bad_unilateral_resp_io_safety:
+  correct_io_safety resp_role resp.
+Proof.
+  sem_safety.
+Qed.
diff --git a/coq/Examples/Bad_unilateral_role.v b/coq/Examples/Bad_unilateral_role.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Bad_unilateral_role.v
@@ -0,0 +1,24 @@
+(** Protocol: bad-unilateral (bad_unilateral.scm:6:1) *)
+
+Require Import String List Alg Role.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: init (bad_unilateral.scm:7:3) *)
+
+Definition init_role: role :=
+  mkRole
+  [Sd 0 (En (Tx 2) (Ak (Av 1))); Rv 0 (Tx 2)]
+  [Tx 2]
+  [Ch 0; Ak (Av 1)]
+  [Tx 2].
+
+(** Role: resp (bad_unilateral.scm:15:3) *)
+
+Definition resp_role: role :=
+  mkRole
+  [Rv 0 (En (Tx 2) (Ik (Av 1))); Sd 0 (Tx 2)]
+  []
+  [Ch 0; Ak (Av 1)]
+  [Tx 2].
diff --git a/coq/Examples/Invk.v b/coq/Examples/Invk.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Invk.v
@@ -0,0 +1,23 @@
+(** Protocol: invk (invk.scm:3:1) *)
+
+Require Import Proc.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: rho (invk.scm:4:3) *)
+
+Definition rho: proc :=
+  mkProc
+  [(0, Chan); (1, Akey)]
+  [
+   (* Recv (invk.scm:7:6) *)
+   Bind (2, Mesg) (Recv_ 0);
+   Bind (3, Name) (Frst_ 2);
+   Bind (4, Ikey) (Scnd_ 2);
+   Invp 4 1;
+   (* Send (invk.scm:8:6) *)
+   Bind (5, Mesg) (Encr_ 3 1);
+   Send 0 5;
+   Return []
+  ].
diff --git a/coq/Examples/Invk_proof.v b/coq/Examples/Invk_proof.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Invk_proof.v
@@ -0,0 +1,15 @@
+(** * Invk Protocol Generated Code Verification *)
+
+Require Import Sem Sem_tactics Invk Invk_role.
+
+Theorem correct_invk_rho_io_liveness:
+  correct_io_liveness rho_role rho.
+Proof.
+  sem_liveness.
+Qed.
+
+Theorem correct_invk_rho_io_safety:
+  correct_io_safety rho_role rho.
+Proof.
+  sem_safety.
+Qed.
diff --git a/coq/Examples/Invk_role.v b/coq/Examples/Invk_role.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Invk_role.v
@@ -0,0 +1,15 @@
+(** Protocol: invk (invk.scm:3:1) *)
+
+Require Import String List Alg Role.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: rho (invk.scm:4:3) *)
+
+Definition rho_role: role :=
+  mkRole
+  [Rv 1 (Pr (Nm 0) (Ik (Av 2))); Sd 1 (En (Nm 0) (Ak (Av 2)))]
+  []
+  [Ch 1; Ak (Av 2)]
+  [].
diff --git a/coq/Examples/Ltk.v b/coq/Examples/Ltk.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Ltk.v
@@ -0,0 +1,27 @@
+(** Protocol: ltk (ltk.scm:3:1) *)
+
+Require Import Proc.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: rho (ltk.scm:4:3) *)
+
+Definition rho: proc :=
+  mkProc
+  [(0, Chan); (1, Ikey)]
+  [
+   (* Recv (ltk.scm:7:6) *)
+   Bind (2, Mesg) (Recv_ 0);
+   Bind (3, Mesg) (Decr_ 2 1);
+   Bind (4, Name) (Frst_ 3);
+   Bind (5, Mesg) (Scnd_ 3);
+   Bind (6, Name) (Frst_ 5);
+   Bind (7, Skey) (Scnd_ 5);
+   Ltkp 7 4 6;
+   (* Send (ltk.scm:8:6) *)
+   Bind (8, Mesg) (Pair_ 4 6);
+   Bind (9, Mesg) (Encr_ 8 7);
+   Send 0 9;
+   Return []
+  ].
diff --git a/coq/Examples/Ltk_proof.v b/coq/Examples/Ltk_proof.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Ltk_proof.v
@@ -0,0 +1,15 @@
+(** * Ltk Protocol Generated Code Verification *)
+
+Require Import Sem Sem_tactics Ltk Ltk_role.
+
+Theorem correct_ltk_rho_io_liveness:
+  correct_io_liveness rho_role rho.
+Proof.
+  sem_liveness.
+Qed.
+
+Theorem correct_ltk_rho_io_safety:
+  correct_io_safety rho_role rho.
+Proof.
+  sem_safety.
+Qed.
diff --git a/coq/Examples/Ltk_role.v b/coq/Examples/Ltk_role.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Ltk_role.v
@@ -0,0 +1,16 @@
+(** Protocol: ltk (ltk.scm:3:1) *)
+
+Require Import String List Alg Role.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: rho (ltk.scm:4:3) *)
+
+Definition rho_role: role :=
+  mkRole
+  [Rv 2 (En (Pr (Nm 0) (Pr (Nm 1) (Sk (Lt 0 1)))) (Ak (Av 3)));
+   Sd 2 (En (Pr (Nm 0) (Nm 1)) (Sk (Lt 0 1)))]
+  []
+  [Ch 2; Ik (Av 3)]
+  [].
diff --git a/coq/Examples/Makefile b/coq/Examples/Makefile
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Makefile
@@ -0,0 +1,30 @@
+# Coq project makefile
+
+# Documentation target.  Type "make DOC=all-gal.pdf" to make PDF.
+DOC	?= gallinahtml
+
+# File $(PROJ) contains the list of source files.
+# See "man coq_makefile" for its format.
+PROJ	= _CoqProject
+
+# Generated makefile
+COQMK	= coq.mk
+
+all:	$(COQMK)
+	$(MAKE) -f $(COQMK)
+	$(MAKE) -f $(COQMK) $(DOC)
+
+$(COQMK): $(PROJ)
+	coq_makefile -o $(COQMK) -f $(PROJ)
+
+$(PROJ):
+	@echo make $@
+
+%:	$(COQMK) force
+	$(MAKE) -f $(COQMK) $@
+
+clean:	$(COQMK)
+	$(MAKE) -f $(COQMK) clean
+	rm $(COQMK) $(COQMK).conf
+
+.PHONY:	all clean force
diff --git a/coq/Examples/Nsl.v b/coq/Examples/Nsl.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Nsl.v
@@ -0,0 +1,57 @@
+(** Protocol: nsl (nsl.scm:3:1) *)
+
+Require Import Proc.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: init (nsl.scm:4:3) *)
+
+Definition init: proc :=
+  mkProc
+  [(0, Chan); (1, Ikey); (2, Akey); (3, Akey)]
+  [
+   (* Send (nsl.scm:7:6) *)
+   Bind (4, Text) (Frsh_);
+   Bind (5, Mesg) (Pair_ 4 2);
+   Bind (6, Mesg) (Encr_ 5 3);
+   Send 0 6;
+   (* Recv (nsl.scm:8:6) *)
+   Bind (7, Mesg) (Recv_ 0);
+   Bind (8, Mesg) (Decr_ 7 1);
+   Bind (9, Text) (Frst_ 8);
+   Bind (10, Mesg) (Scnd_ 8);
+   Same 9 4;
+   Bind (11, Text) (Frst_ 10);
+   Bind (12, Akey) (Scnd_ 10);
+   Same 12 3;
+   (* Send (nsl.scm:9:6) *)
+   Bind (13, Mesg) (Encr_ 11 3);
+   Send 0 13;
+   Return [4; 11]
+  ].
+
+(** Role: resp (nsl.scm:13:3) *)
+
+Definition resp: proc :=
+  mkProc
+  [(0, Chan); (1, Ikey); (2, Akey); (3, Akey)]
+  [
+   (* Recv (nsl.scm:16:6) *)
+   Bind (4, Mesg) (Recv_ 0);
+   Bind (5, Mesg) (Decr_ 4 1);
+   Bind (6, Text) (Frst_ 5);
+   Bind (7, Akey) (Scnd_ 5);
+   Same 7 3;
+   (* Send (nsl.scm:17:6) *)
+   Bind (8, Text) (Frsh_);
+   Bind (9, Mesg) (Pair_ 8 2);
+   Bind (10, Mesg) (Pair_ 6 9);
+   Bind (11, Mesg) (Encr_ 10 3);
+   Send 0 11;
+   (* Recv (nsl.scm:18:6) *)
+   Bind (12, Mesg) (Recv_ 0);
+   Bind (13, Text) (Decr_ 12 1);
+   Same 13 8;
+   Return [8; 6]
+  ].
diff --git a/coq/Examples/Nsl_proof.v b/coq/Examples/Nsl_proof.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Nsl_proof.v
@@ -0,0 +1,27 @@
+(** * Nsl Protocol Generated Code Verification *)
+
+Require Import Sem Sem_tactics Nsl Nsl_role.
+
+Theorem correct_nsl_init_io_liveness:
+  correct_io_liveness init_role init.
+Proof.
+  sem_liveness.
+Qed.
+
+Theorem correct_nsl_resp_io_liveness:
+  correct_io_liveness resp_role resp.
+Proof.
+  sem_liveness.
+Qed.
+
+Theorem correct_nsl_init_io_safety:
+  correct_io_safety init_role init.
+Proof.
+  sem_safety.
+Qed.
+
+Theorem correct_nsl_resp_io_safety:
+  correct_io_safety resp_role resp.
+Proof.
+  sem_safety.
+Qed.
diff --git a/coq/Examples/Nsl_role.v b/coq/Examples/Nsl_role.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Nsl_role.v
@@ -0,0 +1,28 @@
+(** Protocol: nsl (nsl.scm:3:1) *)
+
+Require Import String List Alg Role.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: init (nsl.scm:4:3) *)
+
+Definition init_role: role :=
+  mkRole
+  [Sd 2 (En (Pr (Tx 3) (Ak (Av 0))) (Ak (Av 1)));
+   Rv 2 (En (Pr (Tx 3) (Pr (Tx 4) (Ak (Av 1)))) (Ak (Av 0)));
+   Sd 2 (En (Tx 4) (Ak (Av 1)))]
+  [Tx 3]
+  [Ch 2; Ik (Av 0); Ak (Av 0); Ak (Av 1)]
+  [Tx 3; Tx 4].
+
+(** Role: resp (nsl.scm:13:3) *)
+
+Definition resp_role: role :=
+  mkRole
+  [Rv 2 (En (Pr (Tx 3) (Ak (Av 0))) (Ak (Av 1)));
+   Sd 2 (En (Pr (Tx 3) (Pr (Tx 4) (Ak (Av 1)))) (Ak (Av 0)));
+   Rv 2 (En (Tx 4) (Ak (Av 1)))]
+  [Tx 4]
+  [Ch 2; Ik (Av 1); Ak (Av 1); Ak (Av 0)]
+  [Tx 4; Tx 3].
diff --git a/coq/Examples/Otway_rees.v b/coq/Examples/Otway_rees.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Otway_rees.v
@@ -0,0 +1,99 @@
+(** Protocol: otway-rees (otway_rees.scm:7:1) *)
+
+Require Import Proc.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: init (otway_rees.scm:9:3) *)
+
+Definition init: proc :=
+  mkProc
+  [(0, Chan); (1, Name); (2, Name); (3, Skey)]
+  [
+   (* Send (otway_rees.scm:12:6) *)
+   Bind (4, Text) (Frsh_);
+   Bind (5, Mesg) (Pair_ 2 4);
+   Bind (6, Mesg) (Pair_ 1 5);
+   Send 0 6;
+   (* Recv (otway_rees.scm:13:6) *)
+   Bind (7, Mesg) (Recv_ 0);
+   Bind (8, Mesg) (Decr_ 7 3);
+   Bind (9, Text) (Frst_ 8);
+   Bind (10, Mesg) (Scnd_ 8);
+   Same 9 4;
+   Bind (11, Name) (Frst_ 10);
+   Bind (12, Mesg) (Scnd_ 10);
+   Same 11 1;
+   Bind (13, Name) (Frst_ 12);
+   Bind (14, Skey) (Scnd_ 12);
+   Same 13 2;
+   Return [14]
+  ].
+
+(** Role: resp (otway_rees.scm:20:3) *)
+
+Definition resp: proc :=
+  mkProc
+  [(0, Chan); (1, Chan); (2, Name); (3, Skey)]
+  [
+   (* Recv (otway_rees.scm:24:6) *)
+   Bind (4, Mesg) (Recv_ 0);
+   Bind (5, Name) (Frst_ 4);
+   Bind (6, Mesg) (Scnd_ 4);
+   Bind (7, Name) (Frst_ 6);
+   Bind (8, Text) (Scnd_ 6);
+   Same 7 2;
+   (* Send (otway_rees.scm:25:6) *)
+   Bind (9, Text) (Frsh_);
+   Bind (10, Mesg) (Pair_ 8 9);
+   Bind (11, Mesg) (Pair_ 2 10);
+   Bind (12, Mesg) (Pair_ 5 11);
+   Send 1 12;
+   (* Recv (otway_rees.scm:26:6) *)
+   Bind (13, Mesg) (Recv_ 1);
+   Bind (14, Mesg) (Frst_ 13);
+   Bind (15, Mesg) (Scnd_ 13);
+   Bind (16, Mesg) (Decr_ 15 3);
+   Bind (17, Text) (Frst_ 16);
+   Bind (18, Mesg) (Scnd_ 16);
+   Same 17 9;
+   Bind (19, Name) (Frst_ 18);
+   Bind (20, Mesg) (Scnd_ 18);
+   Same 19 5;
+   Bind (21, Name) (Frst_ 20);
+   Bind (22, Skey) (Scnd_ 20);
+   Same 21 2;
+   (* Send (otway_rees.scm:27:6) *)
+   Send 0 14;
+   Return [5; 22]
+  ].
+
+(** Role: serv (otway_rees.scm:34:3) *)
+
+Definition serv: proc :=
+  mkProc
+  [(0, Chan); (1, Name); (2, Name); (3, Skey); (4, Skey)]
+  [
+   (* Recv (otway_rees.scm:37:6) *)
+   Bind (5, Mesg) (Recv_ 0);
+   Bind (6, Name) (Frst_ 5);
+   Bind (7, Mesg) (Scnd_ 5);
+   Same 6 1;
+   Bind (8, Name) (Frst_ 7);
+   Bind (9, Mesg) (Scnd_ 7);
+   Same 8 2;
+   Bind (10, Text) (Frst_ 9);
+   Bind (11, Text) (Scnd_ 9);
+   (* Send (otway_rees.scm:38:6) *)
+   Bind (12, Skey) (Frsh_);
+   Bind (13, Mesg) (Pair_ 2 12);
+   Bind (14, Mesg) (Pair_ 1 13);
+   Bind (15, Mesg) (Pair_ 10 14);
+   Bind (16, Mesg) (Encr_ 15 3);
+   Bind (17, Mesg) (Pair_ 11 14);
+   Bind (18, Mesg) (Encr_ 17 4);
+   Bind (19, Mesg) (Pair_ 16 18);
+   Send 0 19;
+   Return [12]
+  ].
diff --git a/coq/Examples/Otway_rees_proof.v b/coq/Examples/Otway_rees_proof.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Otway_rees_proof.v
@@ -0,0 +1,39 @@
+(** * Otway Rees Protocol Generated Code Verification *)
+
+Require Import Sem Sem_tactics Otway_rees Otway_rees_role.
+
+Theorem correct_otway_rees_init_io_liveness:
+  correct_io_liveness init_role init.
+Proof.
+  sem_liveness.
+Qed.
+
+Theorem correct_otway_rees_resp_io_liveness:
+  correct_io_liveness resp_role resp.
+Proof.
+  sem_liveness.
+Qed.
+
+Theorem correct_otway_rees_serv_io_liveness:
+  correct_io_liveness serv_role serv.
+Proof.
+  sem_liveness.
+Qed.
+
+Theorem correct_otway_rees_init_io_safety:
+  correct_io_safety init_role init.
+Proof.
+  sem_safety.
+Qed.
+
+Theorem correct_otway_rees_resp_io_safety:
+  correct_io_safety resp_role resp.
+Proof.
+  sem_safety.
+Qed.
+
+Theorem correct_otway_rees_serv_io_safety:
+  correct_io_safety serv_role serv.
+Proof.
+  sem_safety.
+Qed.
diff --git a/coq/Examples/Otway_rees_role.v b/coq/Examples/Otway_rees_role.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Otway_rees_role.v
@@ -0,0 +1,44 @@
+(** Protocol: otway-rees (otway_rees.scm:7:1) *)
+
+Require Import String List Alg Role.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: init (otway_rees.scm:9:3) *)
+
+Definition init_role: role :=
+  mkRole
+  [Sd 4 (Pr (Nm 0) (Pr (Nm 1) (Tx 3)));
+   Rv 4 (En (Pr (Tx 3) (Pr (Nm 0) (Pr (Nm 1) (Sk (Sv 2)))))
+            (Sk (Lt 0 5)))]
+  [Tx 3]
+  [Ch 4; Nm 0; Nm 1; Sk (Lt 0 5)]
+  [Sk (Sv 2)].
+
+(** Role: resp (otway_rees.scm:20:3) *)
+
+Definition resp_role: role :=
+  mkRole
+  [Rv 6 (Pr (Nm 0) (Pr (Nm 1) (Tx 3)));
+   Sd 7 (Pr (Nm 0) (Pr (Nm 1) (Pr (Tx 3) (Tx 4))));
+   Rv 7 (Pr (Mg 5)
+            (En (Pr (Tx 4) (Pr (Nm 0) (Pr (Nm 1) (Sk (Sv 2)))))
+                (Sk (Lt 1 8))));
+   Sd 6 (Mg 5)]
+  [Tx 4]
+  [Ch 6; Ch 7; Nm 1; Sk (Lt 1 8)]
+  [Nm 0; Sk (Sv 2)].
+
+(** Role: serv (otway_rees.scm:34:3) *)
+
+Definition serv_role: role :=
+  mkRole
+  [Rv 5 (Pr (Nm 0) (Pr (Nm 1) (Pr (Tx 3) (Tx 4))));
+   Sd 5 (Pr (En (Pr (Tx 3) (Pr (Nm 0) (Pr (Nm 1) (Sk (Sv 2)))))
+                (Sk (Lt 0 6)))
+            (En (Pr (Tx 4) (Pr (Nm 0) (Pr (Nm 1) (Sk (Sv 2)))))
+                (Sk (Lt 1 6))))]
+  [Sk (Sv 2)]
+  [Ch 5; Nm 0; Nm 1; Sk (Lt 0 6); Sk (Lt 1 6)]
+  [Sk (Sv 2)].
diff --git a/coq/Examples/Privk.v b/coq/Examples/Privk.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Privk.v
@@ -0,0 +1,24 @@
+(** Protocol: privk (privk.scm:3:1) *)
+
+Require Import Proc.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: rho (privk.scm:4:3) *)
+
+Definition rho: proc :=
+  mkProc
+  [(0, Chan); (1, Ikey)]
+  [
+   (* Recv (privk.scm:7:6) *)
+   Bind (2, Mesg) (Recv_ 0);
+   Bind (3, Mesg) (Decr_ 2 1);
+   Bind (4, Name) (Frst_ 3);
+   Bind (5, Ikey) (Scnd_ 3);
+   Namp 5 4;
+   (* Send (privk.scm:8:6) *)
+   Bind (6, Mesg) (Encr_ 4 5);
+   Send 0 6;
+   Return []
+  ].
diff --git a/coq/Examples/Privk2.v b/coq/Examples/Privk2.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Privk2.v
@@ -0,0 +1,25 @@
+(** Protocol: privk2 (privk2.scm:3:1) *)
+
+Require Import Proc.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: rho (privk2.scm:4:3) *)
+
+Definition rho: proc :=
+  mkProc
+  [(0, Chan); (1, Ikey)]
+  [
+   (* Recv (privk2.scm:7:6) *)
+   Bind (2, Mesg) (Recv_ 0);
+   Bind (3, Mesg) (Decr_ 2 1);
+   Bind (4, Name) (Frst_ 3);
+   Bind (5, Ikey) (Scnd_ 3);
+   Bind (6, Mesg) (Quot_ "enc");
+   Nm2p 5 6 4;
+   (* Send (privk2.scm:8:6) *)
+   Bind (7, Mesg) (Encr_ 4 5);
+   Send 0 7;
+   Return []
+  ].
diff --git a/coq/Examples/Privk2_proof.v b/coq/Examples/Privk2_proof.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Privk2_proof.v
@@ -0,0 +1,15 @@
+(** * Privk2 Protocol Generated Code Verification *)
+
+Require Import Sem Sem_tactics Privk2 Privk2_role.
+
+Theorem correct_privk2_rho_io_liveness:
+  correct_io_liveness rho_role rho.
+Proof.
+  sem_liveness.
+Qed.
+
+Theorem correct_privk2_rho_io_safety:
+  correct_io_safety rho_role rho.
+Proof.
+  sem_safety.
+Qed.
diff --git a/coq/Examples/Privk2_role.v b/coq/Examples/Privk2_role.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Privk2_role.v
@@ -0,0 +1,16 @@
+(** Protocol: privk2 (privk2.scm:3:1) *)
+
+Require Import String List Alg Role.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: rho (privk2.scm:4:3) *)
+
+Definition rho_role: role :=
+  mkRole
+  [Rv 1 (En (Pr (Nm 0) (Ik (Pb2 "enc" 0))) (Ak (Av 2)));
+   Sd 1 (En (Nm 0) (Ik (Pb2 "enc" 0)))]
+  []
+  [Ch 1; Ik (Av 2)]
+  [].
diff --git a/coq/Examples/Privk_proof.v b/coq/Examples/Privk_proof.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Privk_proof.v
@@ -0,0 +1,15 @@
+(** * Privk Protocol Generated Code Verification *)
+
+Require Import Sem Sem_tactics Privk Privk_role.
+
+Theorem correct_privk_rho_io_liveness:
+  correct_io_liveness rho_role rho.
+Proof.
+  sem_liveness.
+Qed.
+
+Theorem correct_privk_rho_io_safety:
+  correct_io_safety rho_role rho.
+Proof.
+  sem_safety.
+Qed.
diff --git a/coq/Examples/Privk_role.v b/coq/Examples/Privk_role.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Privk_role.v
@@ -0,0 +1,16 @@
+(** Protocol: privk (privk.scm:3:1) *)
+
+Require Import String List Alg Role.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: rho (privk.scm:4:3) *)
+
+Definition rho_role: role :=
+  mkRole
+  [Rv 1 (En (Pr (Nm 0) (Ik (Pb 0))) (Ak (Av 2)));
+   Sd 1 (En (Nm 0) (Ik (Pb 0)))]
+  []
+  [Ch 1; Ik (Av 2)]
+  [].
diff --git a/coq/Examples/Pubk.v b/coq/Examples/Pubk.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Pubk.v
@@ -0,0 +1,24 @@
+(** Protocol: pubk (pubk.scm:3:1) *)
+
+Require Import Proc.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: rho (pubk.scm:4:3) *)
+
+Definition rho: proc :=
+  mkProc
+  [(0, Chan); (1, Ikey)]
+  [
+   (* Recv (pubk.scm:7:6) *)
+   Bind (2, Mesg) (Recv_ 0);
+   Bind (3, Mesg) (Decr_ 2 1);
+   Bind (4, Name) (Frst_ 3);
+   Bind (5, Akey) (Scnd_ 3);
+   Namp 5 4;
+   (* Send (pubk.scm:8:6) *)
+   Bind (6, Mesg) (Encr_ 4 5);
+   Send 0 6;
+   Return []
+  ].
diff --git a/coq/Examples/Pubk2.v b/coq/Examples/Pubk2.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Pubk2.v
@@ -0,0 +1,25 @@
+(** Protocol: pubk2 (pubk2.scm:3:1) *)
+
+Require Import Proc.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: rho (pubk2.scm:4:3) *)
+
+Definition rho: proc :=
+  mkProc
+  [(0, Chan); (1, Ikey)]
+  [
+   (* Recv (pubk2.scm:7:6) *)
+   Bind (2, Mesg) (Recv_ 0);
+   Bind (3, Mesg) (Decr_ 2 1);
+   Bind (4, Name) (Frst_ 3);
+   Bind (5, Akey) (Scnd_ 3);
+   Bind (6, Mesg) (Quot_ "enc");
+   Nm2p 5 6 4;
+   (* Send (pubk2.scm:8:6) *)
+   Bind (7, Mesg) (Encr_ 4 5);
+   Send 0 7;
+   Return []
+  ].
diff --git a/coq/Examples/Pubk2_proof.v b/coq/Examples/Pubk2_proof.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Pubk2_proof.v
@@ -0,0 +1,15 @@
+(** * Pubk2 Protocol Generated Code Verification *)
+
+Require Import Sem Sem_tactics Pubk2 Pubk2_role.
+
+Theorem correct_pubk2_rho_io_liveness:
+  correct_io_liveness rho_role rho.
+Proof.
+  sem_liveness.
+Qed.
+
+Theorem correct_pubk2_rho_io_safety:
+  correct_io_safety rho_role rho.
+Proof.
+  sem_safety.
+Qed.
diff --git a/coq/Examples/Pubk2_role.v b/coq/Examples/Pubk2_role.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Pubk2_role.v
@@ -0,0 +1,16 @@
+(** Protocol: pubk2 (pubk2.scm:3:1) *)
+
+Require Import String List Alg Role.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: rho (pubk2.scm:4:3) *)
+
+Definition rho_role: role :=
+  mkRole
+  [Rv 1 (En (Pr (Nm 0) (Ak (Pb2 "enc" 0))) (Ak (Av 2)));
+   Sd 1 (En (Nm 0) (Ak (Pb2 "enc" 0)))]
+  []
+  [Ch 1; Ik (Av 2)]
+  [].
diff --git a/coq/Examples/Pubk_proof.v b/coq/Examples/Pubk_proof.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Pubk_proof.v
@@ -0,0 +1,15 @@
+(** * Pubk Protocol Generated Code Verification *)
+
+Require Import Sem Sem_tactics Pubk Pubk_role.
+
+Theorem correct_pubk_rho_io_liveness:
+  correct_io_liveness rho_role rho.
+Proof.
+  sem_liveness.
+Qed.
+
+Theorem correct_pubk_rho_io_safety:
+  correct_io_safety rho_role rho.
+Proof.
+  sem_safety.
+Qed.
diff --git a/coq/Examples/Pubk_role.v b/coq/Examples/Pubk_role.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Pubk_role.v
@@ -0,0 +1,16 @@
+(** Protocol: pubk (pubk.scm:3:1) *)
+
+Require Import String List Alg Role.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: rho (pubk.scm:4:3) *)
+
+Definition rho_role: role :=
+  mkRole
+  [Rv 1 (En (Pr (Nm 0) (Ak (Pb 0))) (Ak (Av 2)));
+   Sd 1 (En (Nm 0) (Ak (Pb 0)))]
+  []
+  [Ch 1; Ik (Av 2)]
+  [].
diff --git a/coq/Examples/README b/coq/Examples/README
new file mode 100644
--- /dev/null
+++ b/coq/Examples/README
@@ -0,0 +1,9 @@
+This directory contains the Coq sources for proofs about input/output
+pairs produced by the CPSA4 role compiler.
+
+To build the proofs and an HTML document, type:
+
+    $ pushd ..; make; popd
+    $ make
+
+and then view html/toc.html.
diff --git a/coq/Examples/Yahalom.v b/coq/Examples/Yahalom.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Yahalom.v
@@ -0,0 +1,104 @@
+(** Protocol: yahalom (yahalom.scm:7:1) *)
+
+Require Import Proc.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: init (yahalom.scm:9:3) *)
+
+Definition init: proc :=
+  mkProc
+  [(0, Chan); (1, Chan); (2, Name); (3, Name); (4, Skey)]
+  [
+   (* Send (yahalom.scm:13:6) *)
+   Bind (5, Text) (Frsh_);
+   Bind (6, Mesg) (Pair_ 2 5);
+   Send 0 6;
+   (* Recv (yahalom.scm:14:6) *)
+   Bind (7, Mesg) (Recv_ 1);
+   Bind (8, Mesg) (Frst_ 7);
+   Bind (9, Mesg) (Scnd_ 7);
+   Bind (10, Mesg) (Decr_ 8 4);
+   Bind (11, Name) (Frst_ 10);
+   Bind (12, Mesg) (Scnd_ 10);
+   Same 11 3;
+   Bind (13, Skey) (Frst_ 12);
+   Bind (14, Mesg) (Scnd_ 12);
+   Bind (15, Text) (Frst_ 14);
+   Bind (16, Text) (Scnd_ 14);
+   Same 15 5;
+   (* Send (yahalom.scm:15:6) *)
+   Bind (17, Mesg) (Encr_ 16 13);
+   Bind (18, Mesg) (Pair_ 9 17);
+   Send 0 18;
+   Return [13]
+  ].
+
+(** Role: resp (yahalom.scm:23:3) *)
+
+Definition resp: proc :=
+  mkProc
+  [(0, Chan); (1, Chan); (2, Name); (3, Skey)]
+  [
+   (* Recv (yahalom.scm:26:6) *)
+   Bind (4, Mesg) (Recv_ 0);
+   Bind (5, Name) (Frst_ 4);
+   Bind (6, Text) (Scnd_ 4);
+   (* Send (yahalom.scm:27:6) *)
+   Bind (7, Text) (Frsh_);
+   Bind (8, Mesg) (Pair_ 6 7);
+   Bind (9, Mesg) (Pair_ 5 8);
+   Bind (10, Mesg) (Encr_ 9 3);
+   Bind (11, Mesg) (Pair_ 2 10);
+   Send 1 11;
+   (* Recv (yahalom.scm:28:6) *)
+   Bind (12, Mesg) (Recv_ 0);
+   Bind (13, Mesg) (Frst_ 12);
+   Bind (14, Mesg) (Scnd_ 12);
+   Bind (15, Mesg) (Decr_ 13 3);
+   Bind (16, Name) (Frst_ 15);
+   Bind (17, Skey) (Scnd_ 15);
+   Same 16 5;
+   Bind (18, Text) (Decr_ 14 17);
+   Same 18 7;
+   Return [5; 17]
+  ].
+
+(** Role: serv-init (yahalom.scm:36:3) *)
+
+Definition serv_init: proc :=
+  mkProc
+  [(0, Chan); (1, Name); (2, Skey)]
+  [
+   (* Recv (yahalom.scm:39:6) *)
+   Bind (3, Mesg) (Recv_ 0);
+   Bind (4, Name) (Frst_ 3);
+   Bind (5, Mesg) (Scnd_ 3);
+   Same 4 1;
+   Bind (6, Mesg) (Decr_ 5 2);
+   Bind (7, Name) (Frst_ 6);
+   Bind (8, Mesg) (Scnd_ 6);
+   Bind (9, Text) (Frst_ 8);
+   Bind (10, Text) (Scnd_ 8);
+   Return [7; 9; 10]
+  ].
+
+(** Role: serv-complete (yahalom.scm:45:3) *)
+
+Definition serv_complete: proc :=
+  mkProc
+  [(0, Chan); (1, Name); (2, Name); (3, Skey); (4, Skey); (5, Text); (6, Text)]
+  [
+   (* Send (yahalom.scm:48:6) *)
+   Bind (7, Skey) (Frsh_);
+   Bind (8, Mesg) (Pair_ 5 6);
+   Bind (9, Mesg) (Pair_ 7 8);
+   Bind (10, Mesg) (Pair_ 2 9);
+   Bind (11, Mesg) (Encr_ 10 3);
+   Bind (12, Mesg) (Pair_ 1 7);
+   Bind (13, Mesg) (Encr_ 12 4);
+   Bind (14, Mesg) (Pair_ 11 13);
+   Send 0 14;
+   Return [7]
+  ].
diff --git a/coq/Examples/Yahalom_proof.v b/coq/Examples/Yahalom_proof.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Yahalom_proof.v
@@ -0,0 +1,51 @@
+(** * Yahalom Protocol Generated Code Verification *)
+
+Require Import Sem Sem_tactics Yahalom Yahalom_role.
+
+Theorem correct_yahalom_init_io_liveness:
+  correct_io_liveness init_role init.
+Proof.
+  sem_liveness.
+Qed.
+
+Theorem correct_yahalom_resp_io_liveness:
+  correct_io_liveness resp_role resp.
+Proof.
+  sem_liveness.
+Qed.
+
+Theorem correct_yahalom_serv_init_io_liveness:
+  correct_io_liveness serv_init_role serv_init.
+Proof.
+  sem_liveness.
+Qed.
+
+Theorem correct_yahalom_serv_complete_io_liveness:
+  correct_io_liveness serv_complete_role serv_complete.
+Proof.
+  sem_liveness.
+Qed.
+
+Theorem correct_yahalom_init_io_safety:
+  correct_io_safety init_role init.
+Proof.
+  sem_safety.
+Qed.
+
+Theorem correct_yahalom_resp_io_safety:
+  correct_io_safety resp_role resp.
+Proof.
+  sem_safety.
+Qed.
+
+Theorem correct_yahalom_serv_init_io_safety:
+  correct_io_safety serv_init_role serv_init.
+Proof.
+  sem_safety.
+Qed.
+
+Theorem correct_yahalom_serv_complete_io_safety:
+  correct_io_safety serv_complete_role serv_complete.
+Proof.
+  sem_safety.
+Qed.
diff --git a/coq/Examples/Yahalom_role.v b/coq/Examples/Yahalom_role.v
new file mode 100644
--- /dev/null
+++ b/coq/Examples/Yahalom_role.v
@@ -0,0 +1,50 @@
+(** Protocol: yahalom (yahalom.scm:7:1) *)
+
+Require Import String List Alg Role.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: init (yahalom.scm:9:3) *)
+
+Definition init_role: role :=
+  mkRole
+  [Sd 6 (Pr (Nm 0) (Tx 3));
+   Rv 7 (Pr (En (Pr (Nm 1) (Pr (Sk (Sv 2)) (Pr (Tx 3) (Tx 4))))
+                (Sk (Lt 0 8))) (Mg 5));
+   Sd 6 (Pr (Mg 5) (En (Tx 4) (Sk (Sv 2))))]
+  [Tx 3]
+  [Ch 6; Ch 7; Nm 0; Nm 1; Sk (Lt 0 8)]
+  [Sk (Sv 2)].
+
+(** Role: resp (yahalom.scm:23:3) *)
+
+Definition resp_role: role :=
+  mkRole
+  [Rv 5 (Pr (Nm 0) (Tx 3));
+   Sd 6 (Pr (Nm 1) (En (Pr (Nm 0) (Pr (Tx 3) (Tx 4))) (Sk (Lt 1 7))));
+   Rv 5 (Pr (En (Pr (Nm 0) (Sk (Sv 2))) (Sk (Lt 1 7)))
+            (En (Tx 4) (Sk (Sv 2))))]
+  [Tx 4]
+  [Ch 5; Ch 6; Nm 1; Sk (Lt 1 7)]
+  [Nm 0; Sk (Sv 2)].
+
+(** Role: serv-init (yahalom.scm:36:3) *)
+
+Definition serv_init_role: role :=
+  mkRole
+  [Rv 4 (Pr (Nm 1) (En (Pr (Nm 0) (Pr (Tx 2) (Tx 3))) (Sk (Lt 1 5))))]
+  []
+  [Ch 4; Nm 1; Sk (Lt 1 5)]
+  [Nm 0; Tx 2; Tx 3].
+
+(** Role: serv-complete (yahalom.scm:45:3) *)
+
+Definition serv_complete_role: role :=
+  mkRole
+  [Sd 5 (Pr (En (Pr (Nm 1) (Pr (Sk (Sv 2)) (Pr (Tx 3) (Tx 4))))
+                (Sk (Lt 0 6)))
+            (En (Pr (Nm 0) (Sk (Sv 2))) (Sk (Lt 1 6))))]
+  [Sk (Sv 2)]
+  [Ch 5; Nm 0; Nm 1; Sk (Lt 0 6); Sk (Lt 1 6); Tx 3; Tx 4]
+  [Sk (Sv 2)].
diff --git a/coq/Examples/_CoqProject b/coq/Examples/_CoqProject
new file mode 100644
--- /dev/null
+++ b/coq/Examples/_CoqProject
@@ -0,0 +1,31 @@
+-R .. Roletran
+Nsl.v
+Nsl_role.v
+Nsl_proof.v
+Otway_rees.v
+Otway_rees_role.v
+Otway_rees_proof.v
+Yahalom.v
+Yahalom_role.v
+Yahalom_proof.v
+Bad_unilateral.v
+Bad_unilateral_role.v
+Bad_unilateral_proof.v
+Ltk.v
+Ltk_role.v
+Ltk_proof.v
+Invk.v
+Invk_role.v
+Invk_proof.v
+Pubk.v
+Pubk_role.v
+Pubk_proof.v
+Pubk2.v
+Pubk2_role.v
+Pubk2_proof.v
+Privk.v
+Privk_role.v
+Privk_proof.v
+Privk2.v
+Privk2_role.v
+Privk2_proof.v
diff --git a/coq/Examples/bad_unilateral.scm b/coq/Examples/bad_unilateral.scm
new file mode 100644
--- /dev/null
+++ b/coq/Examples/bad_unilateral.scm
@@ -0,0 +1,32 @@
+;; This protocol has two roles that use a key and its inverse
+;; inconsistently.  If one follows the convention that (enc n k)
+;; represents an encryption and (enc n (invk k)) represents a digital
+;; signature, the two roles clash.
+
+(defprotocol bad-unilateral basic
+  (defrole init
+    (vars (ch chan) (n text) (k akey))
+    (trace
+     (send ch (enc n k))
+     (recv ch n))
+    (uniq-orig n)
+    (inputs ch k)
+    (outputs n))
+  (defrole resp
+    (vars (ch chan) (n text) (k akey))
+    (trace
+     (recv ch (enc n (invk k)))
+     (send ch n))
+    (inputs ch k)
+    (outputs n)))
+
+(defskeleton bad-unilateral
+  (vars (k akey))
+  (defstrand init 2 (k k))
+  (non-orig (invk k)))
+
+(defskeleton bad-unilateral
+  (vars (n text) (k akey))
+  (defstrand resp 2 (n n) (k k))
+  (pen-non-orig n)
+  (non-orig k))
diff --git a/coq/Examples/invk.scm b/coq/Examples/invk.scm
new file mode 100644
--- /dev/null
+++ b/coq/Examples/invk.scm
@@ -0,0 +1,9 @@
+(herald invk)
+
+(defprotocol invk basic
+  (defrole rho
+    (vars (ch chan) (a name) (k akey))
+    (trace
+     (recv ch (cat a (invk k)))
+     (send ch (enc a k)))
+    (inputs ch k)))
diff --git a/coq/Examples/ltk.scm b/coq/Examples/ltk.scm
new file mode 100644
--- /dev/null
+++ b/coq/Examples/ltk.scm
@@ -0,0 +1,9 @@
+(herald ltk)
+
+(defprotocol ltk basic
+  (defrole rho
+    (vars (ch chan) (a b name) (k akey))
+    (trace
+     (recv ch (enc a b (ltk a b) k))
+     (send ch (enc a b (ltk a b))))
+    (inputs ch (invk k))))
diff --git a/coq/Examples/nsl.scm b/coq/Examples/nsl.scm
new file mode 100644
--- /dev/null
+++ b/coq/Examples/nsl.scm
@@ -0,0 +1,33 @@
+(herald "Needham-Schroeder-Lowe")
+
+(defprotocol nsl basic
+  (defrole init
+    (vars (ch chan) (a b akey) (n1 n2 text))
+    (trace
+     (send ch (enc n1 a b))
+     (recv ch (enc n1 n2 b a))
+     (send ch (enc n2 b)))
+    (uniq-orig n1)
+    (inputs ch (invk a) a b)
+    (outputs n1 n2))
+  (defrole resp
+    (vars (ch chan) (b a akey) (n2 n1 text))
+    (trace
+     (recv ch (enc n1 a b))
+     (send ch (enc n1 n2 b a))
+     (recv ch (enc n2 b)))
+    (uniq-orig n2)
+    (inputs ch (invk b) b a)
+    (outputs n2 n1)))
+
+;;; The initiator point-of-view
+(defskeleton nsl
+  (vars (a b akey))
+  (defstrand init 3 (a a) (b b))
+  (non-orig (invk b) (invk a)))
+
+;;; The responder point-of-view
+(defskeleton nsl
+  (vars (a b akey))
+  (defstrand resp 3 (a a) (b b))
+  (non-orig (invk b) (invk a)))
diff --git a/coq/Examples/otway_rees.scm b/coq/Examples/otway_rees.scm
new file mode 100644
--- /dev/null
+++ b/coq/Examples/otway_rees.scm
@@ -0,0 +1,64 @@
+;; Simplified Otway-Rees protocol
+;; As described in "Prudent Engineering Practices"
+;; by Abadi and Needham
+
+(herald otway-rees)
+
+(defprotocol otway-rees basic
+
+  (defrole init
+    (vars (pub chan) (a b s name) (na text) (kab skey))
+    (trace
+     (send pub (cat a b na))
+     (recv pub (enc na a b kab (ltk a s)))
+     )
+    (uniq-orig na)
+    (inputs pub a b (ltk a s))
+    (outputs kab)
+    )
+
+  (defrole resp
+    (vars (pub1 pub2 chan) (b a s name) (na nb text) (kab skey)
+	  (pkg mesg))
+    (trace
+     (recv pub1 (cat a b na))
+     (send pub2 (cat a b na nb))
+     (recv pub2 (cat pkg (enc nb a b kab (ltk b s))))
+     (send pub1 pkg)
+     )
+    (uniq-orig nb)
+    (inputs pub1 pub2 b (ltk b s))
+    (outputs a kab)
+    )
+
+  (defrole serv
+    (vars (pub chan) (s a b name) (na nb text) (kab skey))
+    (trace
+     (recv pub (cat a b na nb))
+     (send pub (cat (enc na a b kab (ltk a s))
+		    (enc nb a b kab (ltk b s))))
+     )
+    (uniq-orig kab)
+    (inputs pub a b (ltk a s) (ltk b s))
+    (outputs kab)
+    )
+
+  )
+
+(defskeleton otway-rees
+  (vars (a s name))
+  (defstrand init 2 (a a) (s s))
+  (non-orig (ltk a s))
+  )
+
+(defskeleton otway-rees
+  (vars (b s name))
+  (defstrand resp 4 (b b) (s s))
+  (non-orig (ltk b s))
+  )
+
+(defskeleton otway-rees
+  (vars (s a b name))
+  (defstrand serv 2 (s s) (a a) (b b))
+  (non-orig (ltk a s) (ltk b s))
+  )
diff --git a/coq/Examples/privk.scm b/coq/Examples/privk.scm
new file mode 100644
--- /dev/null
+++ b/coq/Examples/privk.scm
@@ -0,0 +1,9 @@
+(herald privk)
+
+(defprotocol privk basic
+  (defrole rho
+    (vars (ch chan) (a name) (k akey))
+    (trace
+     (recv ch (enc a (privk a) k))
+     (send ch (enc a (privk a))))
+    (inputs ch (invk k))))
diff --git a/coq/Examples/privk2.scm b/coq/Examples/privk2.scm
new file mode 100644
--- /dev/null
+++ b/coq/Examples/privk2.scm
@@ -0,0 +1,9 @@
+(herald privk2)
+
+(defprotocol privk2 basic
+  (defrole rho
+    (vars (ch chan) (a name) (k akey))
+    (trace
+     (recv ch (enc a (privk "enc" a) k))
+     (send ch (enc a (privk "enc" a))))
+    (inputs ch (invk k))))
diff --git a/coq/Examples/pubk.scm b/coq/Examples/pubk.scm
new file mode 100644
--- /dev/null
+++ b/coq/Examples/pubk.scm
@@ -0,0 +1,9 @@
+(herald pubk)
+
+(defprotocol pubk basic
+  (defrole rho
+    (vars (ch chan) (a name) (k akey))
+    (trace
+     (recv ch (enc a (pubk a) k))
+     (send ch (enc a (pubk a))))
+    (inputs ch (invk k))))
diff --git a/coq/Examples/pubk2.scm b/coq/Examples/pubk2.scm
new file mode 100644
--- /dev/null
+++ b/coq/Examples/pubk2.scm
@@ -0,0 +1,9 @@
+(herald pubk2)
+
+(defprotocol pubk2 basic
+  (defrole rho
+    (vars (ch chan) (a name) (k akey))
+    (trace
+     (recv ch (enc a (pubk "enc" a) k))
+     (send ch (enc a (pubk "enc" a))))
+    (inputs ch (invk k))))
diff --git a/coq/Examples/update b/coq/Examples/update
new file mode 100644
--- /dev/null
+++ b/coq/Examples/update
@@ -0,0 +1,14 @@
+#! /bin/sh
+
+capitalize ()
+{
+    echo $* | awk '{ print toupper( substr( $0, 1, 1 ) ) substr( $0, 2 ); }'
+}
+
+for i in *.scm
+do
+    a=$(basename $(capitalize $i) .scm)
+    echo ${a}
+    cpsa4rolecoq -o "${a}_role.v" "$i"
+    cpsa4roletran "$i" | cpsa4coq -o "${a}.v"
+done
diff --git a/coq/Examples/yahalom.scm b/coq/Examples/yahalom.scm
new file mode 100644
--- /dev/null
+++ b/coq/Examples/yahalom.scm
@@ -0,0 +1,74 @@
+;; Yahalom protocol
+
+(herald yahalom
+	(bound 20)
+	)
+
+(defprotocol yahalom basic
+
+  (defrole init
+    (vars (pub1 pub2 chan) (a b s name) (na nb text)
+	  (kab skey) (pkg mesg))
+    (trace
+     (send pub1 (cat a na))
+     (recv pub2 (cat (enc b kab na nb (ltk a s)) pkg))
+     (send pub1 (cat pkg
+		     (enc nb kab)))
+     )
+    (uniq-orig na)
+    (inputs pub1 pub2 a b (ltk a s))
+    (outputs kab)
+    )
+
+  (defrole resp
+    (vars (pub1 pub2 chan) (b a s name) (na nb text) (kab skey))
+    (trace
+     (recv pub1 (cat a na))
+     (send pub2 (cat b (enc a na nb (ltk b s))))
+     (recv pub1 (cat (enc a kab (ltk b s))
+		     (enc nb kab)))
+     )
+    (uniq-orig nb)
+    (inputs pub1 pub2 b (ltk b s))
+    (outputs a kab)
+    )
+
+  (defrole serv-init
+    (vars (pub chan) (s a b name) (na nb text))
+    (trace
+     (recv pub (cat b (enc a na nb (ltk b s))))
+     )
+    (inputs pub b (ltk b s))
+    (outputs a na nb)
+    )
+
+  (defrole serv-complete
+    (vars (pub chan) (s a b name) (na nb text) (kab skey))
+    (trace
+     (send pub (cat (enc b kab na nb (ltk a s))
+		    (enc a kab (ltk b s))))
+     )
+    (uniq-orig kab)
+    (inputs pub a b (ltk a s) (ltk b s) na nb)
+    (outputs kab)
+    )
+
+  )
+
+(defskeleton yahalom
+  (vars (a b s name))
+  (defstrand init 3 (a a) (b b) (s s))
+  (non-orig (ltk a s) (ltk b s))
+  )
+
+(defskeleton yahalom
+  (vars (b a s name))
+  (defstrand resp 3 (b b) (a a) (s s))
+  (non-orig (ltk b s) (ltk a s))
+  )
+
+(defskeleton yahalom
+  (vars (s b name))
+  (defstrand serv-init 1 (s s) (b b))
+  (non-orig (ltk b s))
+  )
diff --git a/coq/Exec.v b/coq/Exec.v
new file mode 100644
--- /dev/null
+++ b/coq/Exec.v
@@ -0,0 +1,79 @@
+(* Executable Roles
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+(** * Executable Roles
+
+    Every executable role will be compiled. *)
+
+Require Import Proc Alg Role Derives Comp.
+
+(** A member [y] of [ys] is reducible iff every encryption carried by
+    y can be decrypted and every hash can be synthesized.  *)
+
+Definition reducible (xs ys: list alg): Prop :=
+  forall y,
+    In y ys ->
+    (forall x k,
+        carried_by (En x k) y ->
+        derives (ys ++ xs) (inv k)) /\
+    (forall x,
+        carried_by (Hs x) y ->
+        derives (ys ++ xs) x).
+
+(** ** Executable Role
+
+    A role is executable iff
+
+    - the role is valid,
+
+    - the input is reducible, and
+
+    - the trace is executable.
+
+    A trace is executable iff
+
+    - the outputs can be derived from previous messaging,
+
+    - sent terms can be derived from previous messaging, and
+
+    - received terms are reducible given previous messaging. *)
+
+Fixpoint exec_tr (xs: list alg) (tr: list evt)
+         (us: list (list alg)) (outs: list alg): Prop :=
+  match tr, us with
+  | nil, nil =>
+    forall x,
+      In x outs ->
+      derives xs x
+  | Sd v x :: tr, u :: us =>
+    derives (u ++ xs) (Ch v) /\
+    derives (u ++ xs) x /\
+    exec_tr (u ++ xs) tr us outs
+  | Rv v x :: tr, us =>
+    derives xs (Ch v) /\
+    reducible xs (x :: nil) /\
+    exec_tr (x :: xs) tr us outs
+  | _, _ => False
+  end.
+
+Definition exec_rl (rl: role): Prop :=
+  valid_role rl = true /\
+  reducible nil (inputs rl) /\
+  exec_tr (rev (inputs rl))
+          (trace rl)
+          (uniq_list (trace rl) (uniqs rl))
+          (outputs rl).
+
+(** When the compiler is presented with an executable role, it will
+    produce code. *)
+
+Conjecture exec_implies_comp:
+  forall (rl: role),
+    exec_rl rl ->
+    exists (cs: store) (p: proc),
+      comp rl cs p.
diff --git a/coq/Intro.v b/coq/Intro.v
new file mode 100644
--- /dev/null
+++ b/coq/Intro.v
@@ -0,0 +1,78 @@
+(* Introduction
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+(**
+
+* Introduction
+
+CPSA4 analyzes cryptographic protocols.  It allows its users to
+determine if a protocol achieves authentication and secrecy goals.
+
+Once a protocol is analyzed, there is the question of determining how
+the analyzed protocol corresponds to its implementation.  One wants to
+be confident that the implemented protocol achieves the authentication
+and secrecy goals determined by CPSA4.
+
+Roletran is a compiler that translates roles in CPSA4 protocols into a
+language independent description of procedures called Zappa
+Intermediate Language (ZIL).  This Coq development is in support of
+verifying the translation of CPSA4 roles into ZIL procedures.
+
+The are three relevant Haskell programs: cpsa4roletran, cpsa4coq,
+cpsa4rolecoq.  The Roletran compiler is call cpsa4roletran.  ZIL
+procedures are translated into Coq using cpsa4coq.  CPSA4 roles are
+translated into Coq using cpsa4rolecoq.  The roles extracted from the
+Unilateral protocol are in library Unilateral_roles.  The procedures
+generated by Roletran are in library Unilateral.  There are more
+examples in the Examples directory.
+
+** Road Map
+
+Library Monad provides monadic operations on option types.  It
+provides a Haskell-like do notation that makes it easier to define
+partial functions.
+
+Library Alg defines the message algebra.
+
+Library Role defines a role and the properties in needs to be valid.
+
+Library Derives defines the derivation relation.
+
+Library Exec defines the notion of an executable role.
+
+Library Proc defines what is need to interpret the output of cpsa4coq.
+It defines the types used by the runtime system and the syntax of
+statements.
+
+Library Match defines what it means for one role to contain all of the
+structure contained in another.
+
+Library Sem defines the abstract execution semantics of procedures.
+
+Library Alt_sem defines an alternate abstract execution semantics of
+procedures that some people might find more intuitive.
+
+Library Run defines the abstract execution semantics of procedures as
+a Coq function.  When its inputs are known, it will compute the
+results of executing a procedure.
+
+Library Nonce defines a function that computes the correct order for
+generating nonces during a run of a procedure.
+
+Library Run_sem contains proofs that the semantics specified in Run
+and Sem agree.
+
+Library Sem_tactics defines tactics used to automate many proof.
+
+Library CSem defines a concrete execution semantics in which
+probabilistic encryption is simulated by adding an argument to
+encryption that provides randomness.
+
+Library Comp defines the Roletran compiler (Not up-to-date).
+
+*)
diff --git a/coq/Makefile b/coq/Makefile
new file mode 100644
--- /dev/null
+++ b/coq/Makefile
@@ -0,0 +1,30 @@
+# Coq project makefile
+
+# Documentation target.  Type "make DOC=all-gal.pdf" to make PDF.
+DOC	?= gallinahtml
+
+# File $(PROJ) contains the list of source files.
+# See "man coq_makefile" for its format.
+PROJ	= _CoqProject
+
+# Generated makefile
+COQMK	= coq.mk
+
+all:	$(COQMK)
+	$(MAKE) -f $(COQMK)
+	$(MAKE) -f $(COQMK) $(DOC)
+
+$(COQMK): $(PROJ)
+	coq_makefile -o $(COQMK) -f $(PROJ)
+
+$(PROJ):
+	@echo make $@
+
+%:	$(COQMK) force
+	$(MAKE) -f $(COQMK) $@
+
+clean:	$(COQMK)
+	$(MAKE) -f $(COQMK) clean
+	rm $(COQMK) $(COQMK).conf
+
+.PHONY:	all clean force
diff --git a/coq/Match.v b/coq/Match.v
new file mode 100644
--- /dev/null
+++ b/coq/Match.v
@@ -0,0 +1,137 @@
+(* Matching
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+(** * Matching
+
+    A term [x] matches [y] if there is a substitution [sb] such that
+    applying [sb] to [x] gives [y].  The match function defined within
+    computes substitutions. *)
+
+Require Import String Monad Alg Role.
+Import List.ListNotations.
+Open Scope list_scope.
+(** printing <- #←# *)
+
+(** A substitution *)
+
+Definition sbst: Set := list (var * alg).
+
+Definition extend_term (sb: sbst) (v: var) (x: alg): option sbst :=
+  match lookup v sb with
+  | None => Some ((v, x) :: sb)
+  | Some y =>
+    if alg_dec x y then
+      Some sb
+    else                        (* Term clash! *)
+      None
+  end.
+
+Definition match_skey (sb: sbst) (x y: skey): option sbst :=
+  match x, y with
+  | Sv v, w => extend_term sb v (Sk w)
+  | Lt v w, Lt x y =>
+    sb <- extend_term sb v (Nm x);;
+    extend_term sb w (Nm y)
+  | _, _ => None
+  end.
+
+Definition match_akey (sb: sbst) (x y: akey): option sbst :=
+  match x, y with
+  | Av v, w => extend_term sb v (Ak w)
+  | Pb v, Pb w => extend_term sb v (Nm w)
+  | Pb2 s v, Pb2 t w =>
+    if eqb s t then
+      extend_term sb v (Nm w)
+    else
+      None
+  | _, _ => None
+  end.
+
+(** Definition of matching *)
+
+Fixpoint match_term (sb: sbst) (x y: alg): option sbst :=
+  match x, y with
+  | Tx v, Tx w => extend_term sb v (Tx w)
+  | Dt v, Dt w => extend_term sb v (Dt w)
+  | Nm v, Nm w => extend_term sb v (Nm w)
+  | Sk v, Sk w => match_skey sb v w
+  | Ak v, Ak w => match_akey sb v w
+  | Ak (Av v), Ik w => extend_term sb v (Ik w)
+  | Ik v, Ik w => match_akey sb v w
+  | Ik (Av v), Ak w => extend_term sb v (Ik w)
+  | Ch v, Ch w => extend_term sb v (Ch w)
+  | Mg v, w => extend_term sb v w
+  | Tg s, Tg t =>
+    if eqb s t then
+      Some sb
+    else
+      None
+  | Pr v w, Pr x y =>
+    sb <- match_term sb v x;;
+    match_term sb w y
+  | En v w, En x y =>
+    sb <- match_term sb v x;;
+    match_term sb w y
+  | Hs v, Hs w => match_term sb v w
+  | _, _ => None
+  end.
+
+(** ** Role Homomorphism
+
+    See if [x] matches one item in [ys]. *)
+
+Definition match_evt (sb: sbst) (x y: evt): option sbst :=
+  match x, y with
+  | Sd c x, Sd d y =>
+    sb <- match_term sb (Ch c) (Ch d);;
+    match_term sb x y
+  | Rv c x, Rv d y =>
+    sb <- match_term sb (Ch c) (Ch d);;
+    match_term sb x y
+  | _, _ => None
+  end.
+
+Fixpoint match_trace (sb: sbst) (xs ys: list evt): option sbst :=
+  match xs, ys with
+  | [], [] => Some sb
+  | x :: xs, y :: ys =>
+    sb <- match_evt sb x y;;
+    match_trace sb xs ys
+  | _, _ => None
+  end.
+
+Fixpoint match_list (sb: sbst) (xs ys: list alg): option sbst :=
+  match xs, ys with
+  | [], [] => Some sb
+  | x :: xs, y :: ys =>
+    sb <- match_term sb x y;;
+    match_list sb xs ys
+  | _, _ => None
+end.
+
+Fixpoint match_one (ys: list alg) (sb: sbst) (x: alg): option sbst :=
+  match ys with
+  | [] => None
+  | y :: ys =>
+    match match_term sb x y with
+    | Some sb => Some sb
+    | None => match_one ys sb x
+    end
+  end.
+
+Definition match_uniqs (sb: sbst) (xs ys: list alg): option sbst :=
+  fold_m (match_one ys) sb xs.
+
+(** There exists a homomorphism from [x] to [y] iff the result is not
+    [None]. *)
+
+Definition homomorphism (x y: role): option sbst :=
+  sb <- match_trace [] (trace x) (trace y);;
+  sb <- match_uniqs sb (uniqs x) (uniqs y);;
+  sb <- match_list sb (inputs x) (inputs y);;
+  match_list sb (outputs x) (outputs y).
diff --git a/coq/Monad.v b/coq/Monad.v
new file mode 100644
--- /dev/null
+++ b/coq/Monad.v
@@ -0,0 +1,84 @@
+(* Monadic Operations
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+(** * Monadic Operations on Option Types *)
+
+Require Import List.
+Import List.ListNotations.
+Open Scope list_scope.
+(** printing <- #←# *)
+
+(** Haskell do-like notation for option types *)
+
+Notation "x <- M ;; N" := (match M with None => None | Some x => N end)
+  (at level 30, right associativity).
+
+Lemma do_some:
+  forall A B (f: option A) (g: A -> option B) b,
+    x <- f;; g x = Some b ->
+    exists a, f = Some a /\ g a = Some b.
+Proof.
+  intros.
+  destruct f as [x|].
+  - exists x; auto.
+  - inversion H.
+Qed.
+
+(** Monadic map *)
+
+Fixpoint map_m {A B} (f: A -> option B) (l: list A): option (list B) :=
+  match l with
+  | [] => Some []
+  | x :: xs =>
+    y <- f x;;
+    ys <- map_m f xs;;
+    Some (y :: ys)
+  end.
+
+Lemma map_m_nil:
+  forall A B (f: A -> option B) x xs,
+    map_m f (x :: xs) <> Some [].
+Proof.
+  intros.
+  intro.
+  simpl in H.
+  apply do_some in H.
+  destruct H as [y H].
+  destruct H as [H G].
+  apply do_some in G.
+  destruct G as [ys G].
+  destruct G as [G F].
+  inversion F.
+Qed.
+
+Lemma map_m_pair:
+  forall A B (f: A -> option B) x xs y ys,
+    map_m f (x :: xs) = Some (y :: ys) ->
+    f x = Some y /\ map_m f xs = Some ys.
+Proof.
+  intros.
+  simpl in H.
+  apply do_some in H.
+  destruct H as [z H].
+  destruct H as [H G].
+  apply do_some in G.
+  destruct G as [zs G].
+  destruct G as [G F].
+  inversion F; subst; auto.
+Qed.
+
+(** Monadic fold *)
+
+Fixpoint fold_m {A B} (f: A -> B -> option A)
+         (a: A) (l: list B): option A :=
+  match l with
+  | [] => Some a
+  | x :: xs =>
+    b <- f a x;;
+    fold_m f b xs
+  end.
diff --git a/coq/Nonce.v b/coq/Nonce.v
new file mode 100644
--- /dev/null
+++ b/coq/Nonce.v
@@ -0,0 +1,167 @@
+(* Nonce Generation Order
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+(** * Nonce Generation Order
+
+    This library defines a function that computes the correct order
+    for generating nonces during a run of a procedure.  It makes sure
+    that basic values that uniquely originate are generated just
+    before the transmission of the message in which they originate. *)
+
+Require Import FunInd Bool Preamble Monad Proc Alg Role Sem Run Run_sem.
+(** printing <- #←# *)
+
+(** Find a nonce [u] of type [t] that is carried by [x].  Remove [u]
+    from the list of uniquely originating values. *)
+
+Fixpoint find_nonce (x: alg) (t: type) (acc: list alg) (us: list alg):
+  option (alg * list alg) :=
+  match us with
+  | nil => None
+  | u :: us =>
+    if type_eqb t (type_of u) && cb u x then
+      Some (u, rev acc ++ us)
+    else
+      find_nonce x t (u :: acc) us
+  end.
+
+(** Return a list of correctly ordered generated nonces if it exists. *)
+
+Fixpoint nonce (stmts: list stmt) (tr: list evt) (us: list alg):
+  option (list alg) :=
+  match stmts, tr with
+  | nil, _ => None
+  | Return _ :: _, nil =>
+    match us with
+    | nil => Some nil
+    | _ => None
+    end
+  | Bind (_, t) Frsh_ :: stmts, Sd _ x :: _ =>
+    p <- find_nonce x t nil us;;
+    let (u, us) := p in
+    us <- nonce stmts tr us;;
+    Some (u :: us)
+  | Bind (_, _) Frsh_ :: stmts, Rv _ _ :: _ =>
+    None
+  | Send _ _ :: stmts, Sd _ x :: tr =>
+    if existsb (fun u => cb u x) us then
+      None
+    else
+      nonce stmts tr us
+  | Send _ _ :: _, Rv _ _ :: _ => None
+  | Bind _ (Recv_ _) :: stmts, Rv _ _ :: tr =>
+    nonce stmts tr us
+  | Bind _ (Recv_ _) :: _, Sd _ _ :: _ =>  None
+  | _ :: stmts, tr => nonce stmts tr us
+  end.
+
+(** Compute the correct nonce order and use it to execute the procedure. *)
+
+Definition run_nonce (p: proc) (ins: list alg) (tr: list evt)
+           (us: list alg): option (env * list alg) :=
+  us <- nonce (body p) tr us;;
+  run p ins tr us.
+
+Functional Scheme find_nonce_ind :=
+  Induction for find_nonce Sort Prop.
+
+Lemma found_nonces_preserved:
+  forall x t acc us u us',
+    find_nonce x t acc us = Some (u, us') ->
+    incl (rev acc ++ us) (u :: us') /\  incl (u :: us') (rev acc ++ us).
+Proof.
+  intros x t acc us.
+  functional induction (find_nonce x t acc us); intros.
+  - inv H.
+  - inv H.
+    split; unfold incl; intros; simpl; rewrite in_app_iff; simpl.
+    + apply in_app_iff in H; destruct H; auto.
+      apply in_inv in H; intuition.
+    + apply in_inv in H; intuition.
+      apply in_app_iff in H0; destruct H0; auto.
+  - apply IHo in H.
+    simpl in H.
+    rewrite <- app_assoc in H.
+    simpl in H; intuition.
+Qed.
+
+Functional Scheme nonce_ind :=
+  Induction for nonce Sort Prop.
+
+(** The [nonces] function preserves the nonces when it succeeds. *)
+
+Lemma nonces_preserved:
+  forall stmts tr us,
+    match nonce stmts tr us with
+    | None => True
+    | Some us' => incl us' us /\ incl us us'
+    end.
+Proof.
+  intros.
+  functional induction (nonce stmts tr us); auto.
+  - split; apply incl_nil_l.
+  - rewrite e9 in IHo; destruct IHo.
+    apply found_nonces_preserved in e7.
+    simpl in e7.
+    destruct e7.
+    split; unfold incl; intros.
+    + apply H2; simpl.
+      apply in_inv in H3; intuition.
+    + apply H1 in H3.
+      apply in_inv in H3; intuition; subst; simpl; auto.
+Qed.
+
+(** An easily computed condition for a compiler source target pair to
+    be correct. *)
+
+Definition correct_source_target_pair (rl: role) (p: proc): Prop :=
+  valid_role rl = true /\
+  match run_nonce p (inputs rl) (trace rl) (uniqs rl) with
+  | Some (_, outs) => outs = outputs rl
+  | None => False
+  end.
+
+(** The proof script that performs the proof. *)
+
+Ltac correct_source_target_pair_proof :=
+  unfold correct_source_target_pair;
+  compute; auto.
+
+(** A run using the correct nonce ordering satisfies the semantics. *)
+
+Theorem run_nonce_sem:
+  forall p rl us ev,
+    nonce (body p) (trace rl) (uniqs rl) = Some us ->
+    run p (inputs rl) (trace rl) us = Some (ev, outputs rl) ->
+    sem p ev (mkRole
+                (trace rl)
+                us
+                (inputs rl)
+                (outputs rl)).
+Proof.
+  unfold run.
+  intros.
+  unfold sem.
+  simpl.
+  apply do_some in H0.
+  destruct H0 as [ev' G].
+  destruct G.
+  apply sem_ins_inputs in H0.
+  destruct H0; subst; split; auto.
+  rewrite rev_involutive in H1.
+  apply run_stmts_implies_stmt_list_sem in H1.
+  simpl in H1; auto.
+Qed.
+
+(** This conjecture is likely true, but lemmas about homomophisms
+    needed to complete the proof have not been proved. *)
+
+Conjecture correct_source_target_pair_io_liveness:
+  forall rl p,
+    correct_source_target_pair rl p ->
+    correct_io_liveness rl p.
diff --git a/coq/Preamble.v b/coq/Preamble.v
new file mode 100644
--- /dev/null
+++ b/coq/Preamble.v
@@ -0,0 +1,76 @@
+(* Preamble
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+(** * Some General Purpose Tactics *)
+
+Require Import Bool Plus List.
+
+Ltac inv H := inversion H; clear H; subst.
+
+Ltac find_if :=
+  match goal with
+  | [ |- context[ if ?X then _ else _ ] ] => destruct X
+  end.
+
+Ltac destruct_disjunct :=
+  match goal with
+  | [ H: _ \/ _  |- _ ] => destruct H as [H|H]
+  end.
+
+Ltac destruct_ex_and :=
+  match goal with
+  | [ H: _ /\ _ |- _ ] =>
+    destruct H
+  | [ H: exists _, _ |- _ ] =>
+    destruct H
+  end.
+
+(** Expand let expressions in both the antecedent and the
+    conclusion. *)
+
+Ltac expand_let_pairs :=
+  match goal with
+  | |- context [let (_,_) := ?e in _] =>
+    rewrite (surjective_pairing e)
+  | [ H: context [let (_,_) := ?e in _] |- _ ] =>
+    rewrite (surjective_pairing e) in H
+  end.
+
+Lemma option_dec {A} (a: option A):
+  {a = None} + {exists b, a = Some b}.
+Proof.
+  destruct a.
+  - right.
+    exists a; auto.
+  - left; auto.
+Qed.
+
+Ltac alt_option_dec x y H :=
+  destruct (option_dec x) as [H|H];
+  [ idtac | destruct H as [y H] ].
+
+Lemma alt_bool_dec (b: bool):
+  {b = true} + {b = false}.
+Proof.
+  destruct (bool_dec b true) as [H|H]; auto.
+  rewrite not_true_iff_false in H; auto.
+Qed.
+
+Lemma map_inj_eq:
+  forall {A B} (f: A -> B) (x y: list A),
+    (forall x y, f x = f y -> x = y) ->
+    map f x = map f y ->
+    x = y.
+Proof.
+  intros A B f x y H.
+  revert y.
+  induction x; intros; simpl in *; auto;
+    destruct y; simpl in *; auto; inv H0.
+  - apply IHx in H3; subst.
+    apply H in H2; subst; auto.
+Qed.
diff --git a/coq/Proc.v b/coq/Proc.v
new file mode 100644
--- /dev/null
+++ b/coq/Proc.v
@@ -0,0 +1,114 @@
+(* Procedures
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+(** * Representation of Generated Code *)
+
+Require Export String List.
+
+(** A procedure variable is a nat *)
+
+Notation pvar := nat (only parsing).
+
+(** Types *)
+
+Inductive type: Set :=
+| Text
+| Data
+| Name
+| Skey
+| Akey
+| Ikey
+| Chan
+| Mesg.
+
+Definition type_dec:
+  forall x y: type, {x = y} + {x <> y}.
+Proof.
+  intros.
+  decide equality.
+Defined.
+#[global]
+Hint Resolve type_dec : core.
+
+Definition type_eqb x y: bool :=
+  if type_dec x y then
+    true
+  else
+    false.
+
+Lemma type_eq_correct:
+  forall x y,
+    type_eqb x y = true <-> x = y.
+Proof.
+  intros.
+  unfold type_eqb.
+  destruct (type_dec x y); subst; intuition.
+  inversion H.
+Qed.
+
+Lemma type_eq_complete:
+  forall x y,
+    type_eqb x y = false <-> x <> y.
+Proof.
+  intros.
+  unfold type_eqb.
+  destruct (type_dec x y); subst; intuition.
+Qed.
+
+(** The inverse type *)
+
+Definition inv_type (x: type): type :=
+  match x with
+  | Akey => Ikey
+  | Ikey => Akey
+  | s => s
+  end.
+
+(** Declarations *)
+
+Definition decl: Set := pvar * type.
+
+Definition decl_dec:
+  forall x y: decl, {x = y} + {x <> y}.
+Proof.
+  intros.
+  decide equality; decide equality.
+Defined.
+#[global]
+Hint Resolve decl_dec : core.
+
+(** Expressions *)
+Inductive expr: Set :=
+| Quot_: string -> expr         (* Construct a tag *)
+| Hash_: pvar -> expr           (* Construct a hash *)
+| Pair_: pvar -> pvar -> expr   (* Construct a pair *)
+| Encr_: pvar -> pvar -> expr   (* Encrypt plain text *)
+| Frst_: pvar -> expr           (* Project first component of pair *)
+| Scnd_: pvar -> expr           (* Project second component of pair *)
+| Decr_: pvar -> pvar -> expr   (* Decrypt cipher text *)
+| Frsh_: expr                   (* Generate a nonce *)
+| Recv_:  pvar -> expr.         (* Receive a message *)
+
+(** Statements *)
+
+Inductive stmt: Set :=
+| Return: list pvar -> stmt     (* Return values *)
+| Bind: decl -> expr -> stmt    (* Bind a variable *)
+| Send: pvar -> pvar -> stmt    (* Send a message *)
+| Same: pvar -> pvar -> stmt    (* Check for sameness *)
+| Ltkp: pvar -> pvar -> pvar -> stmt (* Check LTK predicate *)
+| Invp: pvar -> pvar -> stmt    (* Check Inv predicate *)
+| Namp: pvar -> pvar -> stmt    (* Check Name predicate *)
+| Nm2p: pvar -> pvar -> pvar -> stmt. (* Check Name2 predicate *)
+
+(** Procedures *)
+
+Record proc: Set :=
+  mkProc {
+      ins: list decl;
+      body: list stmt }.
diff --git a/coq/README b/coq/README
new file mode 100644
--- /dev/null
+++ b/coq/README
@@ -0,0 +1,25 @@
+This directory contains the Coq sources for proofs about procedures
+generated by the CPSA4 role compiler.
+
+To build the proofs and an HTML document, type:
+
+    $ make
+
+and then view html/toc.html.
+
+To build the PDF document, type:
+
+    $ ./mkdoc
+
+and then view proc.pdf.
+
+DISTRIBUTION
+
+To make a distribution from within the Git repository, do:
+
+   $ git clean -xdf
+   $ make
+   $ mv html ..
+   $ git clean -xdf
+   $ mv ../html .
+   $ ./mkdist
diff --git a/coq/Role.v b/coq/Role.v
new file mode 100644
--- /dev/null
+++ b/coq/Role.v
@@ -0,0 +1,50 @@
+(* Protocol Roles
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+Require Import List ListSet Bool Program Monad Proc Alg.
+
+(** * Protocol Roles *)
+
+Record role: Set :=
+  mkRole {
+      trace: list evt;
+      uniqs: list alg;
+      inputs: list alg;
+      outputs: list alg }.
+
+(** Is [x] not in list [l]? *)
+
+Definition not_in (x: alg) (l: list alg): bool :=
+  negb (set_mem alg_dec x l).
+
+(** Does list [l] contain duplicates? *)
+
+Fixpoint has_no_dups (l: list alg): bool :=
+  match l with
+  | nil => true
+  | x :: xs => not_in x xs && has_no_dups xs
+  end.
+
+(** Is [r] a valid role? *)
+
+Definition valid_role (r: role): bool :=
+  match fold_m well_formed_event nil (trace r) with
+  | None => false
+  | Some decls =>
+    forallb (well_typed decls) (uniqs r) &&
+    forallb (flip orig (trace r)) (uniqs r) &&
+    forallb is_basic (uniqs r) &&
+    has_no_dups (uniqs r) &&
+    forallb (well_typed_with_chan decls) (inputs r) &&
+    forallb (fun t => is_basic t || is_chan t) (inputs r) &&
+    forallb receivable (map evt_msg (trace r)) &&
+    forallb receivable (outputs r) &&
+    forallb (well_typed decls) (outputs r) &&
+    forallb (flip not_in (uniqs r)) (inputs r) &&
+    forallb (flip not_in (outputs r)) (inputs r)
+  end.
diff --git a/coq/Run.v b/coq/Run.v
new file mode 100644
--- /dev/null
+++ b/coq/Run.v
@@ -0,0 +1,241 @@
+(* Procedure Execution as a Function
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+(** * Procedure Execution
+
+    This library contains a straightforward definition of the
+    semantics of procedure execution.  The semantics is specified
+    using a function.  The semantics of statement execution is defined
+    using a partial function that takes a runtime state and a list of
+    statements and returns the final runtime environment and a list of
+    terms that make up the procedure's outputs.  A runtime environment
+    is a map from program variables to terms.  A runtime state contains
+
+    - the current runtime environment,
+
+    - the current trace, and
+
+    - a list of the uniques that occur at the transmissions in the
+      current trace. *)
+
+Require Import Nat Bool Preamble Monad Proc Alg.
+Import List.ListNotations.
+Open Scope list_scope.
+(** printing <- #←# *)
+
+(** A runtime environment *)
+
+Definition env: Set := list (pvar * alg).
+
+(** A runtime state *)
+
+Record run_state: Set :=
+  mkRSt {
+      renv: env;
+      rtr: list evt;
+      runiqs: list alg }.
+
+(** The semantics of expressions *)
+
+Definition run_expr (rst: run_state) (ex: expr):
+  option (run_state * alg) :=
+  match ex with
+  | Quot_ s => Some (rst, Tg s)
+  | Hash_ v =>
+    x <- lookup v (renv rst);;
+    Some (rst, Hs x)
+  | Pair_ u v =>
+    x <- lookup u (renv rst);;
+    y <- lookup v (renv rst);;
+    Some (rst, Pr x y)
+  | Encr_ u v =>
+    x <- lookup u (renv rst);;
+    y <- lookup v (renv rst);;
+    Some (rst, En x y)
+  | Frst_ v =>
+    x <- lookup v (renv rst);;
+    match x with
+    | Pr y z => Some (rst, y)
+    | _ => None
+    end
+  | Scnd_ v =>
+    x <- lookup v (renv rst);;
+    match x with
+    | Pr y z => Some (rst, z)
+    | _ => None
+    end
+  | Decr_ u v =>
+    x <- lookup u (renv rst);;
+    match x with
+    | En y z =>
+      k <- lookup v (renv rst);;
+      if negb (has_enc k) && alg_eqb k (inv z) then
+        Some (rst, y)
+      else
+        None
+    | _ => None
+    end
+  | Recv_ v =>
+    c <- lookup v (renv rst);;
+    match rtr rst with
+    | Rv d x :: tr =>
+      match c with
+      | Ch n =>
+        if n =? d then
+          Some (mkRSt (renv rst) tr (runiqs rst), x)
+        else
+          None
+      | _ => None
+      end
+    | _ => None
+    end
+  | Frsh =>
+    match runiqs rst with
+    | u :: us =>
+      Some (mkRSt (renv rst) (rtr rst) us, u)
+    | _ => None
+    end
+  end.
+
+(** Check that the type of [x] is compatible with [t]. *)
+
+Definition type_check (x: alg) (t: type): bool :=
+  type_eqb t Mesg || type_eqb (type_of x) t.
+
+(** The semantics of statements *)
+
+Definition run_stmt (rst: run_state) (cmd: stmt): option run_state :=
+  match cmd with
+  | Bind (v, t) exp =>
+    sx <- run_expr rst exp;;
+    let (rst, x) := sx in
+    if type_check x t then
+      Some (mkRSt
+              ((v, x) :: renv rst)
+              (rtr rst)
+              (runiqs rst))
+    else
+      None
+   | Send u v =>
+     match rtr rst with
+     | Sd d x :: tr =>
+       c <- lookup u (renv rst);;
+       match c with
+       | Ch n =>
+         if n =? d then
+           y <- lookup v (renv rst);;
+           if alg_eqb x y then
+             Some (mkRSt (renv rst) tr (runiqs rst))
+           else
+             None
+         else
+           None
+       | _ => None
+       end
+     | _ => None
+    end
+  | Same u v =>
+    x <- lookup u (renv rst);;
+    y <- lookup v (renv rst);;
+    if negb (has_enc x) && alg_eqb x y then
+      Some rst
+    else
+      None
+  | Ltkp u v w =>
+    x <- lookup u (renv rst);;
+    y <- lookup v (renv rst);;
+    z <- lookup w (renv rst);;
+    match y, z with
+    | Nm b, Nm c =>
+      if alg_eqb x (Sk (Lt b c)) then
+        Some rst
+      else
+        None
+    | _, _ => None
+    end
+  | Invp u v =>
+    x <- lookup u (renv rst);;
+    y <- lookup v (renv rst);;
+    if negb (has_enc x) && alg_eqb x (inv y) then
+      Some rst
+    else
+      None
+  | Namp u v =>
+    x <- lookup u (renv rst);;
+    y <- lookup v (renv rst);;
+    match x, y with
+    | Ak k, Nm b =>
+      if akey_eqb k (Pb b) then
+        Some rst
+      else
+        None
+    | Ik k, Nm b =>
+      if akey_eqb k (Pb b) then
+        Some rst
+      else
+        None
+    | _, _ => None
+    end
+  | Nm2p u v w =>
+    x <- lookup u (renv rst);;
+    y <- lookup v (renv rst);;
+    z <- lookup w (renv rst);;
+    match x, y, z with
+    | Ak k, Tg s, Nm c =>
+      if akey_eqb k (Pb2 s c) then
+        Some rst
+      else
+        None
+    | Ik k, Tg s, Nm c =>
+      if akey_eqb k (Pb2 s c) then
+        Some rst
+      else
+        None
+    | _, _, _ => None
+    end
+  | Return _ => None
+end.
+
+(** The semantics of lists of statements *)
+
+Fixpoint run_stmts (rst: run_state) (stmts: list stmt):
+  option (env * list alg) :=
+  match stmts with
+  | [] => None
+  | [Return vs] =>
+    match rtr rst, runiqs rst with
+    | [], [] =>
+      xs <- map_m (fun x => lookup x (renv rst)) vs;;
+      Some (renv rst, xs)
+    | _, _ => None
+    end
+  | cmd :: stmts =>
+    rst <- run_stmt rst cmd;;
+    run_stmts rst stmts
+  end.
+
+(** Bind inputs with procedure parameters. *)
+
+Fixpoint bind_inputs (ds: list decl) (xs: list alg) (renv: env):
+  option env :=
+  match ds, xs with
+  | [], [] => Some renv
+  | (v, t) :: ds, x :: xs =>
+    if type_check x t then
+      bind_inputs ds xs ((v, x) :: renv)
+    else
+      None
+  | _, _ => None
+  end.
+
+(** The semantics of a procedure *)
+
+Definition run (p: proc) (inputs: list alg) (tr: list evt) (us: list alg):
+  option (env * list alg) :=
+  renv <- bind_inputs (ins p) inputs [];;
+  run_stmts (mkRSt (rev renv) tr us) (body p).
diff --git a/coq/Run_sem.v b/coq/Run_sem.v
new file mode 100644
--- /dev/null
+++ b/coq/Run_sem.v
@@ -0,0 +1,509 @@
+(* Correctness of Run semantics
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+(** This library contains proofs that the semantics specified in
+    [Roletran.Run] and [Roletran.Sem] agree. *)
+
+Require Import FunInd List Bool Arith.
+Require Import Preamble Proc Alg Sem Alt_sem Run.
+Open Scope nat_scope.
+
+Lemma expr_sem_implies_run_expr:
+  forall ev tr us exp val tr' us',
+    expr_sem ev tr us exp val tr' us' ->
+    run_expr (mkRSt ev tr us) exp =
+    Some (mkRSt ev tr' us', val).
+Proof.
+  intros.
+  inv H; simpl;
+    repeat match goal with
+           | [ H: lookup _ _ = Some _ |- _ ] => rewrite H
+           end; auto.
+  - rewrite H2; simpl.
+    destruct (bool_dec (alg_eqb (inv b) (inv b)) true) as [G|G].
+    + rewrite G; auto.
+    + contradiction G.
+      rewrite alg_eq_correct; auto.
+  - rewrite <- beq_nat_refl; auto.
+Qed.
+
+Lemma run_expr_implies_expr_sem:
+  forall rst exp val rst',
+    run_expr rst exp = Some (rst', val) ->
+    expr_sem (renv rst) (rtr rst) (runiqs rst)
+             exp val (rtr rst') (runiqs rst') /\
+    renv rst = renv rst'.
+Proof.
+  intros.
+  destruct exp; simpl in H.
+  - inv H; simpl; auto.
+  - destruct (option_dec (lookup n (renv rst))) as [G|G].
+    + rewrite G in H; inv H.
+    + destruct G as [b G]; rewrite G in H; inv H; auto.
+  - destruct (option_dec (lookup n (renv rst))) as [G|G].
+    + rewrite G in H; inv H.
+    + destruct G as [b G]; rewrite G in H.
+      destruct (option_dec (lookup n0 (renv rst))) as [F|F].
+      * rewrite F in H; inv H.
+      * destruct F as [c F]; rewrite F in H; inv H; auto.
+  - destruct (option_dec (lookup n (renv rst))) as [G|G].
+    + rewrite G in H; inv H.
+    + destruct G as [b G]; rewrite G in H.
+      destruct (option_dec (lookup n0 (renv rst))) as [F|F].
+      * rewrite F in H; inv H.
+      * destruct F as [c F]; rewrite F in H; inv H; auto.
+  - destruct (option_dec (lookup n (renv rst))) as [G|G].
+    + rewrite G in H; inv H.
+    + destruct G as [b G]; rewrite G in H.
+      destruct b; inv H.
+      split; auto.
+      eapply Expr_frst; eauto.
+  - destruct (option_dec (lookup n (renv rst))) as [G|G].
+    + rewrite G in H; inv H.
+    + destruct G as [b G]; rewrite G in H.
+      destruct b; inv H.
+      split; auto.
+      eapply Expr_scnd; eauto.
+  - destruct (option_dec (lookup n (renv rst))) as [G|G].
+    + rewrite G in H; inv H.
+    + destruct G as [b G]; rewrite G in H.
+      destruct b; inv H.
+      destruct (option_dec (lookup n0 (renv rst))) as [F|F].
+      * rewrite F in H1; inv H1; destruct b; inv H0.
+      * destruct F as [c F]; rewrite F in H1.
+        destruct (alt_bool_dec (negb (has_enc c))) as [D|D];
+          rewrite D in H1; simpl in H1.
+        destruct (bool_dec (alg_eqb c (inv b2)) true) as [E|E].
+        -- rewrite E in H1; inv H1.
+           apply alg_eq_correct in E; subst.
+           split; auto.
+           eapply Expr_decr; eauto.
+           apply negb_true_iff in D; auto.
+        -- rewrite not_true_iff_false in E.
+           rewrite E in H1; inv H1.
+        -- inv H1.
+  - destruct (runiqs rst); inv H; auto.
+  - destruct (option_dec (lookup n (renv rst))) as [G|G].
+    + rewrite G in H; inv H.
+    + destruct G as [c G]; rewrite G in H.
+      destruct (rtr rst).
+      * inv H.
+      * destruct e.
+        -- inv H.
+        -- destruct c; inv H.
+           destruct (bool_dec (n1 =? n0) true) as [F|F].
+           ++ rewrite F in H1; inv H1.
+              apply beq_nat_true in F; subst; auto.
+           ++ rewrite not_true_iff_false in F.
+              rewrite F in H1; inv H1.
+Qed.
+
+Lemma type_check_reflect:
+  forall (x: alg) (t: type),
+    type_check x t = true <-> Sem.type_check t x.
+Proof.
+  intros.
+  unfold type_check.
+  rewrite orb_true_iff.
+  repeat rewrite type_eq_correct.
+  rewrite Sem.type_check_type_of; intuition.
+Qed.
+
+Lemma stmt_sem_implies_run_stmt:
+  forall ev tr us cmd ev' tr' us',
+    stmt_sem ev tr us cmd ev' tr' us' ->
+    run_stmt (mkRSt ev tr us) cmd =
+    Some (mkRSt ev' tr' us').
+Proof.
+  intros.
+  inv H.
+  - apply expr_sem_implies_run_expr in H0.
+    rewrite <- type_check_reflect in H1.
+    simpl.
+    rewrite H0.
+    rewrite H1; auto.
+  - simpl.
+    rewrite H0.
+    rewrite <- beq_nat_refl; auto.
+    rewrite H1.
+    destruct (bool_dec (alg_eqb a a) true) as [G|G].
+    + rewrite G; auto.
+    + contradiction G.
+      rewrite alg_eq_correct; auto.
+  - simpl.
+    rewrite H0.
+    rewrite H1.
+    rewrite H2.
+    simpl.
+    destruct (bool_dec (alg_eqb b b) true) as [G|G].
+    + rewrite G; auto.
+    + contradiction G.
+      rewrite alg_eq_correct; auto.
+  - simpl.
+    rewrite H0.
+    rewrite H1.
+    rewrite H2.
+    destruct (bool_dec (alg_eqb (Sk (Lt b c))
+                                (Sk (Lt b c))) true) as [G|G].
+    + rewrite G; auto.
+    + contradiction G.
+      rewrite alg_eq_correct; auto.
+  - simpl.
+    rewrite H0.
+    rewrite H1.
+    rewrite H2.
+    simpl.
+    destruct (bool_dec (alg_eqb (inv b) (inv b)) true) as [G|G].
+    + rewrite G; auto.
+    + contradiction G.
+      rewrite alg_eq_correct; auto.
+  - simpl.
+    rewrite H0.
+    rewrite H1.
+    simpl.
+    unfold akey_eqb.
+    destruct (akey_dec (Pb b) (Pb b)) as [G|G]; auto.
+    contradict G; auto.
+  - simpl.
+    rewrite H0.
+    rewrite H1.
+    simpl.
+    unfold akey_eqb.
+    destruct (akey_dec (Pb b) (Pb b)) as [G|G]; auto.
+    contradict G; auto.
+  - simpl.
+    rewrite H0.
+    rewrite H1.
+    rewrite H2.
+    unfold akey_eqb.
+    destruct (akey_dec (Pb2 s b) (Pb2 s b)) as [G|G]; auto.
+    contradict G; auto.
+  - simpl.
+    rewrite H0.
+    rewrite H1.
+    rewrite H2.
+    unfold akey_eqb.
+    destruct (akey_dec (Pb2 s b) (Pb2 s b)) as [G|G]; auto.
+    contradict G; auto.
+Qed.
+
+Lemma run_stmt_implies_stmt_sem:
+  forall rst cmd rst',
+    run_stmt rst cmd = Some rst' ->
+    stmt_sem (renv rst) (rtr rst) (runiqs rst)
+             cmd (renv rst') (rtr rst') (runiqs rst').
+Proof.
+  intros; destruct cmd; simpl in *.
+  - inv H.
+  - destruct d as [v t].
+    destruct (option_dec (run_expr rst e)) as [G|G].
+    + rewrite G in H; inv H.
+    + destruct G as [b G].
+      destruct b as [st x].
+      rewrite G in H.
+      destruct (bool_dec (type_check x t) true) as [F|F].
+      * rewrite F in H.
+        inv H; simpl.
+        rewrite type_check_reflect in F.
+        apply run_expr_implies_expr_sem in G; auto.
+        destruct G.
+        rewrite <- H0.
+        eapply Stmt_bind; eauto.
+      * rewrite not_true_iff_false in F.
+        rewrite F in H; inv H.
+  - destruct (rtr rst).
+    + inv H.
+    + destruct e.
+      * destruct (option_dec (lookup n (renv rst))) as [G|G].
+        -- rewrite G in H; inv H.
+        -- destruct G.
+           rewrite H0 in H.
+           destruct x; inv H.
+           destruct (bool_dec (n2 =? n1) true) as [G|G].
+           ++ rewrite G in H2; inv H2.
+              apply beq_nat_true in G; subst.
+              destruct (option_dec (lookup n0 (renv rst))) as [G|G].
+              ** rewrite G in H1; inv H1.
+              ** destruct G.
+                 rewrite H in H1.
+                 destruct (bool_dec (alg_eqb a x) true) as [F|F].
+                 --- rewrite F in H1; inv H1.
+                     rewrite alg_eq_correct in F; subst.
+                     apply Stmt_send; auto.
+                 --- rewrite not_true_iff_false in F.
+                     rewrite F in H1; inv H1.
+           ++ rewrite not_true_iff_false in G.
+              rewrite G in H2; inv H2.
+      * inv H.
+  - destruct (option_dec (lookup n (renv rst))) as [G|G].
+    + rewrite G in H; inv H.
+    + destruct G.
+      rewrite H0 in H.
+      destruct (option_dec (lookup n0 (renv rst))) as [G|G].
+      * rewrite G in H; inv H.
+      * destruct G.
+        rewrite H1 in H.
+        destruct (alt_bool_dec (has_enc x)) as [F|F];
+          rewrite F in H; simpl in H.
+        inv H.
+        destruct (bool_dec (alg_eqb x x0) true) as [G|G].
+        -- rewrite G in H; inv H.
+           apply alg_eq_correct in G; subst.
+           eapply Stmt_same; eauto.
+        -- rewrite not_true_iff_false in G.
+           rewrite G in H; inv H.
+  - alt_option_dec (lookup n (renv rst)) v G;
+      rewrite G in H.
+    + inv H.
+    + alt_option_dec (lookup n0 (renv rst)) u F;
+        rewrite F in H.
+      * inv H.
+      * alt_option_dec (lookup n1 (renv rst)) w E;
+          rewrite E in H.
+        -- inv H.
+        -- destruct u; inv H.
+           destruct w; inv H1.
+           destruct (alt_bool_dec (alg_eqb v (Sk (Lt n2 n3)))) as [D|D];
+             rewrite D in H0.
+           ++ rewrite alg_eq_correct in D; subst.
+              inv H0.
+              eapply Stmt_ltkp; eauto.
+           ++ inv H0.
+  - alt_option_dec (lookup n (renv rst)) x G;
+      rewrite G in H.
+    + inv H.
+    + alt_option_dec (lookup n0 (renv rst)) y F;
+        rewrite F in H.
+      * inv H.
+      * destruct (alt_bool_dec (has_enc x)) as [D|D];
+          rewrite D in H; simpl in H.
+        inv H.
+        destruct (alt_bool_dec (alg_eqb x (inv y))) as [E|E];
+          rewrite E in H.
+        -- inv H.
+           apply alg_eq_correct in E.
+           eapply Stmt_invp; eauto.
+        -- inv H.
+  - alt_option_dec (lookup n (renv rst)) x G;
+      rewrite G in H.
+    + inv H.
+    + alt_option_dec (lookup n0 (renv rst)) y F;
+        rewrite F in H.
+      * inv H.
+      * destruct x; inv H.
+        -- destruct y; inv H1.
+           unfold akey_eqb in H0.
+           destruct (akey_dec a (Pb n1)) as [E|E]; subst.
+           ++ inv H0.
+              eapply Stmt_pub_namp; eauto.
+           ++ inv H0.
+        -- destruct y; inv H1.
+           unfold akey_eqb in H0.
+           destruct (akey_dec a (Pb n1)) as [E|E]; subst.
+           ++ inv H0.
+              eapply Stmt_priv_namp; eauto.
+           ++ inv H0.
+  - alt_option_dec (lookup n (renv rst)) x G;
+      rewrite G in H.
+    + inv H.
+    + alt_option_dec (lookup n0 (renv rst)) y F;
+        rewrite F in H.
+      * inv H.
+      * alt_option_dec (lookup n1 (renv rst)) z E;
+          rewrite E in H.
+        -- inv H.
+        -- destruct x; inv H.
+           ++ destruct y; inv H1.
+              destruct z; inv H0.
+              unfold akey_eqb in H1.
+              destruct (akey_dec a (Pb2 s n2)) as [D|D].
+              ** inv H1.
+                 eapply Stmt_pub_nm2p; eauto.
+              ** inv H1.
+           ++ destruct y; inv H1.
+              destruct z; inv H0.
+              unfold akey_eqb in H1.
+              destruct (akey_dec a (Pb2 s n2)) as [D|D].
+              ** inv H1.
+                 eapply Stmt_priv_nm2p; eauto.
+              ** inv H1.
+Qed.
+
+Lemma stmt_list_sem_implies_run_stmts:
+  forall ev_in tr us outs stmts ev,
+    stmt_list_sem ev_in tr us outs stmts ev ->
+    run_stmts (mkRSt ev_in tr us) stmts = Some (ev, outs).
+Proof.
+  intros.
+  induction H.
+  - unfold Basics.flip in H.
+    simpl.
+    rewrite H; auto.
+  - apply stmt_sem_implies_run_stmt in H.
+    simpl; rewrite H.
+    destruct stmt; simpl; simpl in H; auto.
+    inv H.
+Qed.
+
+Functional Scheme run_stmts_ind :=
+  Induction for run_stmts Sort Prop.
+
+Lemma run_stmts_implies_stmt_list_sem:
+  forall rst stmts ev outs,
+    run_stmts rst stmts = Some (ev, outs) ->
+    stmt_list_sem (renv rst) (rtr rst) (runiqs rst) outs stmts ev.
+Proof.
+  intros.
+  functional induction (run_stmts rst stmts); inv H.
+  - rewrite e2.
+    rewrite e3.
+    apply Stmt_return; auto.
+  - inv e2.
+  - apply run_stmt_implies_stmt_sem in e1.
+    apply IHo in H1.
+    eapply Stmt_pair; eauto.
+  - apply run_stmt_implies_stmt_sem in e1.
+    apply IHo in H1.
+    eapply Stmt_pair; eauto.
+  - apply run_stmt_implies_stmt_sem in e1.
+    apply IHo in H1.
+    eapply Stmt_pair; eauto.
+  - apply run_stmt_implies_stmt_sem in e1.
+    apply IHo in H1.
+    eapply Stmt_pair; eauto.
+  - apply run_stmt_implies_stmt_sem in e1.
+    apply IHo in H1.
+    eapply Stmt_pair; eauto.
+  - apply run_stmt_implies_stmt_sem in e1.
+    apply IHo in H1.
+    eapply Stmt_pair; eauto.
+  - apply run_stmt_implies_stmt_sem in e1.
+    apply IHo in H1.
+    eapply Stmt_pair; eauto.
+Qed.
+
+Lemma sem_bind_inputs_aux:
+  forall ds xs ev,
+    ins_inputs ds xs ->
+    bind_inputs ds xs ev = Some (rev (mk_env ds xs) ++ ev).
+Proof.
+  intros ds xs ev H.
+  revert ev.
+  induction H; intros; simpl; auto.
+  rewrite <- type_check_reflect in H.
+  rewrite H.
+  rewrite IHins_inputs; simpl; auto.
+  repeat rewrite <- app_assoc.
+  repeat rewrite rev_app_distr; simpl.
+  simpl; auto.
+Qed.
+
+Lemma sem_bind_inputs:
+  forall ds xs,
+    ins_inputs ds xs ->
+    bind_inputs ds xs nil = Some (rev (mk_env ds xs)).
+Proof.
+  intros.
+  rewrite sem_bind_inputs_aux; auto.
+  rewrite app_nil_r; auto.
+Qed.
+
+Functional Scheme bind_inputs_ind :=
+  Induction for bind_inputs Sort Prop.
+
+Lemma sem_ins_inputs_aux:
+  forall ds xs ev ev',
+    bind_inputs ds xs ev = Some ev' ->
+    ins_inputs ds xs.
+Proof.
+  intros.
+  functional induction (bind_inputs ds xs ev); simpl; auto; inv H.
+  apply type_check_reflect in e2.
+  apply Ins_inputs_pair; auto.
+Qed.
+
+Lemma sem_ins_inputs:
+  forall ds xs ev,
+    bind_inputs ds xs nil = Some ev ->
+    ins_inputs ds xs /\ ev = rev (mk_env ds xs).
+Proof.
+  intros.
+  assert (G: ins_inputs ds xs).
+  - eapply sem_ins_inputs_aux; eauto.
+  - split; auto.
+    pose proof (sem_bind_inputs ds xs).
+    apply H0 in G.
+    rewrite G in H.
+    inv H; auto.
+Qed.
+
+Lemma sem'_implies_run:
+  forall (p: proc) (ev: env) (tr: list evt) (us: list alg),
+    sem' p ev tr us ->
+    exists outs,
+      get_outs ev (body p) = Some outs /\
+      run p (get_ins ev (ins p)) tr us = Some (ev, outs).
+Proof.
+  intros.
+  unfold sem' in H.
+  repeat destruct_ex_and.
+  exists x.
+  split; auto.
+  unfold run.
+  rewrite sem_bind_inputs; auto.
+  rewrite rev_involutive.
+  eapply stmt_list_sem_implies_run_stmts in H1; eauto.
+Qed.
+
+(** The semantics as a predicate implies the semantics as a function. *)
+
+Theorem sem_implies_run:
+  forall (p: proc) (ev: env) (ex: role),
+    sem p ev ex ->
+    run p (inputs ex) (trace ex) (uniqs ex) =
+    Some (ev, outputs ex).
+Proof.
+  intros.
+  erewrite sem_implies_inputs; eauto.
+  pose proof H as G.
+  apply sem_implies_sem' in H.
+  apply sem_implies_outputs in G.
+  unfold sem' in H.
+  repeat destruct_ex_and.
+  rewrite G in H0.
+  inv H0.
+  apply sem_bind_inputs in H.
+  apply stmt_list_sem_implies_run_stmts in H1.
+  unfold run.
+  rewrite H; auto.
+  rewrite rev_involutive; auto.
+Qed.
+
+(** The semantics as a function implies the semantics as a predicate. *)
+
+Theorem run_implies_sem':
+  forall p tr us ev outs,
+    run p (get_ins ev (ins p)) tr us = Some (ev, outs) ->
+    sem' p ev tr us.
+Proof.
+  intros.
+  unfold run in H.
+  destruct (option_dec (bind_inputs (ins p) (get_ins ev (ins p)) nil)) as [G|G].
+  - rewrite G in H; inv H.
+  - destruct G as [ev' G].
+    rewrite G in H.
+    apply sem_ins_inputs in G.
+    destruct G; subst.
+    rewrite rev_involutive in H.
+    unfold sem'.
+    split; auto.
+    exists outs.
+    eapply run_stmts_implies_stmt_list_sem in H; eauto.
+    split; auto.
+    apply stmt_list_sem_implies_outputs in H; auto.
+Qed.
diff --git a/coq/Sem.v b/coq/Sem.v
new file mode 100644
--- /dev/null
+++ b/coq/Sem.v
@@ -0,0 +1,311 @@
+(* Abstract Execution Semantics
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+(** * Abstract Execution Semantics for Procedures
+
+    This section provides the semantics of procedures generated by the
+    role compiler. *)
+
+Require Import ListSet Bool Program Monad Proc Alg.
+Require Export Role Match.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope nat_scope.
+(** printing <- #←# *)
+
+(** A runtime environment *)
+
+Definition env: Set := list (pvar * alg).
+
+(** Check the type of an element of the message algebra. *)
+
+Definition is_skey (x: alg): Prop :=
+  match x with
+  | Ak _ => False
+  | Ik _ => False
+  | _ => True
+  end.
+#[global]
+Hint Unfold is_skey : core.
+
+Inductive type_check: type -> alg -> Prop :=
+| Text_check: forall v,
+    type_check Text (Tx v)
+| Data_check: forall v,
+    type_check Data (Dt v)
+| Name_check: forall v,
+    type_check Name (Nm v)
+| Skey_check: forall k,
+    type_check Skey (Sk k)
+| Akey_check: forall k,
+    type_check Akey (Ak k)
+| Ikey_check: forall k,
+    type_check Ikey (Ik k)
+| Chan_check: forall v,
+    type_check Chan (Ch v)
+| Mesg_check: forall x,
+    type_check Mesg x.
+#[global]
+ Hint Constructors type_check : core.
+
+Lemma type_check_type_of:
+  forall s x,
+    type_check s x <-> s = type_of x \/ s = Mesg.
+Proof.
+  split; intros; subst.
+  - destruct x; inversion H; subst; simpl; auto.
+  - destruct H; subst; destruct x; simpl; auto.
+Qed.
+
+(** The semantics of an expression
+
+<<
+   Parameters:
+   env:      Input environment
+   list evt: Input trace
+   list alg: Input list of uniques
+   expr:     Expression code fragment
+   alg:      Value of the expression
+   list evt: Output trace
+   list alg: Output list of uniques
+>>
+*)
+
+Inductive expr_sem: env -> list evt -> list alg -> expr ->
+                    alg -> list evt -> list alg -> Prop :=
+| Expr_quot: forall ev tr us x,
+    expr_sem ev tr us (Quot_ x) (Tg x) tr us
+| Expr_hash: forall ev tr us x a,
+    lookup x ev = Some a ->
+    expr_sem ev tr us (Hash_ x) (Hs a) tr us
+| Expr_pair: forall ev tr us x y a b,
+    lookup x ev = Some a ->
+    lookup y ev = Some b ->
+    expr_sem ev tr us (Pair_ x y) (Pr a b) tr us
+| Expr_encr: forall ev tr us x y a b,
+    lookup x ev = Some a ->
+    lookup y ev = Some b ->
+    expr_sem ev tr us (Encr_ x y) (En a b) tr us
+| Expr_frst: forall ev tr us x a b,
+    lookup x ev = Some (Pr a b) ->
+    expr_sem ev tr us (Frst_ x) a tr us
+| Expr_scnd: forall ev tr us x a b,
+    lookup x ev = Some (Pr a b) ->
+    expr_sem ev tr us (Scnd_ x) b tr us
+| Expr_decr: forall ev tr us x y a b,
+    lookup x ev = Some (En a b) ->
+    lookup y ev = Some (inv b) ->
+    has_enc (inv b) = false ->
+    expr_sem ev tr us (Decr_ x y) a tr us
+| Expr_frsh: forall ev tr us a,
+    expr_sem ev tr (a :: us) Frsh_ a tr us
+| Expr_recv: forall ev tr us a c d,
+    lookup c ev = Some (Ch d) ->
+    expr_sem ev (Rv d a :: tr) us (Recv_ c) a tr us.
+#[global]
+Hint Constructors expr_sem : core.
+
+(** The semantics of a statement
+
+<<
+   Parameters:
+   env:      Input environment
+   list evt: Input trace
+   list alg: Input list of uniques
+   stmt:     Statement
+   env:      Output environment
+   list evt: Output trace
+   list alg: Output list of uniques
+>>
+*)
+
+Inductive stmt_sem: env -> list evt -> list alg ->
+                    stmt -> env -> list evt ->
+                    list alg -> Prop :=
+| Stmt_bind: forall ev tr us exp val v s tr' us',
+    expr_sem ev tr us exp val tr' us' ->
+    type_check s val ->
+    stmt_sem ev tr us (Bind (v, s) exp) ((v, val) :: ev) tr' us'
+| Stmt_send: forall ev tr us c d x a,
+    lookup c ev = Some (Ch d) ->
+    lookup x ev = Some a ->
+    stmt_sem ev (Sd d a :: tr) us (Send c x) ev tr us
+| Stmt_same: forall ev tr us x y a b,
+    lookup x ev = Some a ->
+    lookup y ev = Some b ->
+    has_enc a = false ->        (* For probabilistic encryption *)
+    a = b ->                    (* Sameness check *)
+    stmt_sem ev tr us (Same x y) ev tr us
+| Stmt_ltkp: forall ev tr us x y z a b c,
+    lookup x ev = Some a ->
+    lookup y ev = Some (Nm b) ->
+    lookup z ev = Some (Nm c) ->
+    a = Sk (Lt b c) ->          (* Ltk check *)
+    stmt_sem ev tr us (Ltkp x y z) ev tr us
+| Stmt_invp: forall ev tr us x y a b,
+    lookup x ev = Some a ->
+    lookup y ev = Some b ->
+    has_enc a = false ->        (* For probabilistic encryption *)
+    a = inv b ->                (* Inverse check *)
+    stmt_sem ev tr us (Invp x y) ev tr us
+| Stmt_pub_namp: forall ev tr us x y a b,
+    lookup x ev = Some (Ak a) ->
+    lookup y ev = Some (Nm b) ->
+    a = Pb b ->                (* Name check *)
+    stmt_sem ev tr us (Namp x y) ev tr us
+| Stmt_priv_namp: forall ev tr us x y a b,
+    lookup x ev = Some (Ik a) ->
+    lookup y ev = Some (Nm b) ->
+    a = Pb b ->                (* Name check *)
+    stmt_sem ev tr us (Namp x y) ev tr us
+| Stmt_pub_nm2p: forall ev tr us x y z a s b,
+    lookup x ev = Some (Ak a) ->
+    lookup y ev = Some (Tg s) ->
+    lookup z ev = Some (Nm b) ->
+    a = Pb2 s b ->              (* Tagged name check *)
+    stmt_sem ev tr us (Nm2p x y z) ev tr us
+| Stmt_priv_nm2p: forall ev tr us x y z a s b,
+    lookup x ev = Some (Ik a) ->
+    lookup y ev = Some (Tg s) ->
+    lookup z ev = Some (Nm b) ->
+    a = Pb2 s b ->              (* Tagged name check *)
+    stmt_sem ev tr us (Nm2p x y z) ev tr us.
+#[global]
+Hint Constructors stmt_sem : core.
+
+Lemma stmt_sem_env_extends:
+  forall ev tr us cmd ev' tr' us',
+    stmt_sem ev tr us cmd ev' tr' us' ->
+    exists ev'', ev' = ev'' ++ ev.
+Proof.
+  intros.
+  inversion H; subst.
+  - exists [(v, val)]; auto.
+  - exists []; auto.
+  - exists []; auto.
+  - exists []; auto.
+  - exists []; auto.
+  - exists []; auto.
+  - exists []; auto.
+  - exists []; auto.
+  - exists []; auto.
+Qed.
+
+(** The semantics of a statement list
+
+    Parameters as for [stmt_sem] but with one extra argument,
+    for outputs, and no output trace and list of uniques.
+
+<<
+   Parameters:
+   env:        Input environment
+   list evt:   Input trace
+   list alg:   Input list of uniques
+   list alg:   Output list
+   list stmt:  Statement list
+   env:        Output environment
+>>
+*)
+
+Inductive stmt_list_sem:
+  env -> list evt -> list alg ->
+  list alg -> list stmt -> env -> Prop :=
+| Stmt_return: forall ev outs vs,
+    map_m (flip lookup ev) vs = Some outs ->
+    stmt_list_sem ev [] [] outs [Return vs] ev
+| Stmt_pair: forall ev tr us outs stmt ev' tr' us' stmts ev'',
+    stmt_sem ev tr us stmt ev' tr' us' ->
+    stmt_list_sem ev' tr' us' outs stmts ev'' ->
+    stmt_list_sem ev tr us outs (stmt :: stmts) ev''.
+#[global]
+Hint Constructors stmt_list_sem : core.
+
+Lemma stmt_list_sem_env_extends:
+  forall ev tr us outs stmts ev',
+    stmt_list_sem ev tr us outs stmts ev' ->
+    exists ev'', ev' = ev'' ++ ev.
+Proof.
+  intros.
+  induction H.
+  exists []; auto.
+  apply stmt_sem_env_extends in H.
+  destruct H.
+  destruct IHstmt_list_sem.
+  subst.
+  exists (x0 ++ x).
+  apply app_assoc.
+Qed.
+
+(** Executions are roles with one exception.  The order in which
+    uniques occur in an execution is significant, but it is not for a
+    role.  In an execution, the order of the uniques determines the
+    order in which they are used to generate nonces.  Within a role,
+    uniques are just a set of basic values. *)
+
+Fixpoint mk_env (ds: list decl) (xs: list alg): env :=
+  match (ds, xs) with
+  | ((v, _) :: ds, x :: xs) =>
+    (v, x) :: mk_env ds xs
+  | _ => []
+  end.
+
+Inductive ins_inputs: list decl -> list alg -> Prop :=
+| Ins_inputs_nil: ins_inputs nil nil
+| Ins_inputs_pair: forall v s ds x xs,
+    type_check s x ->
+    ins_inputs ds xs ->
+    ins_inputs ((v, s) :: ds) (x :: xs).
+#[global]
+Hint Constructors ins_inputs : core.
+
+(** The semantics of a procedure using statement lists *)
+
+Definition sem (p: proc) (ev: env) (e: role): Prop :=
+  let ev_in := mk_env (ins p) (inputs e) in
+  ins_inputs (ins p) (inputs e) /\
+  stmt_list_sem ev_in (trace e) (uniqs e) (outputs e) (body p) ev.
+
+(** ** Correct Input and Output *)
+
+Definition correct_io_liveness (rl: role) (p: proc): Prop :=
+  valid_role rl = true /\
+  exists ev ex,
+    inputs rl = inputs ex /\
+    sem p ev ex /\
+    homomorphism rl ex <> None /\
+    homomorphism ex rl <> None.
+
+Definition correct_io_safety (rl: role) (p: proc): Prop :=
+  forall ev ex,
+    inputs rl = inputs ex ->
+    sem p ev ex ->
+    homomorphism rl ex <> None.
+
+(** Try using the role as the execution, but remember that the uniques
+    are a set and list order might differ. *)
+
+Lemma correct_io_liveness_aid:
+  forall (rl: role) (p: proc),
+    valid_role rl = true ->
+    (exists ev ex uniqs,
+        ex = mkRole (trace rl) uniqs (inputs rl) (outputs rl) /\
+        sem p ev ex /\
+        homomorphism rl ex <> None /\
+        homomorphism ex rl <> None) ->
+    correct_io_liveness rl p.
+Proof.
+  intros rl p G H.
+  destruct H as [ev H].
+  destruct H as [ex H].
+  destruct H as [uniqs H].
+  unfold correct_io_liveness.
+  split; auto.
+  destruct H.
+  exists ev; exists ex.
+  subst; auto.
+Qed.
diff --git a/coq/Sem_tactics.v b/coq/Sem_tactics.v
new file mode 100644
--- /dev/null
+++ b/coq/Sem_tactics.v
@@ -0,0 +1,81 @@
+(* Tactics for the Abstract Execution Semantics
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+(** * Tactics for the Abstract Execution Semantics *)
+
+Require Import Alg Sem.
+Require Export Preamble.
+
+(** A tactic for running an execution *)
+
+Ltac sem_auto :=
+  repeat (econstructor; simpl; eauto).
+
+(** A tactic proving liveness *)
+
+Ltac sem_liveness :=
+  apply correct_io_liveness_aid;
+  eexists; eexists; eexists; split; eauto;
+  split; sem_auto;
+  let H := fresh "H" in
+  unfold homomorphism; simpl; intro H; inv H.
+
+(** This tactic handles input checks in a hypothesis. *)
+
+Ltac sem_inputs :=
+  repeat
+    match goal with
+    | [ H: type_check _ _ |- _ ] => inv H
+    | [ H: ins_inputs _ _ |- _ ] => inv H
+    end.
+
+(** A semantics specific tactic for performing inversions *)
+
+Ltac sem_inv :=
+  repeat
+    match goal with
+    | [ H: Some _ = Some _ |- _ ] => inv H
+    | [ H: ?l = inv ?r |- _ ] =>
+      apply inv_swap in H; simpl in H; subst
+    | [ H: lookup _ _ = _ |- _ ] => inv H
+    | [ H: type_check _ _ |- _ ] => inv H
+    | [ H: expr_sem _ _ _ _ _ _ _ |- _ ] => inv H
+    | [ H: stmt_sem _ _ _ _ _ _ _ |- _ ] => inv H
+    | [ H: stmt_list_sem _ _ _ _ _ _ |- _ ] => inv H
+    end.
+
+Ltac sem_rewrite :=
+  repeat
+    match goal with
+    | [ H: _ = _ _ |- _ ] => rewrite <- H
+    end.
+
+(** Perform a safety proof. *)
+
+Ltac sem_safety :=
+  unfold correct_io_safety;
+  intros ev ex E H;
+  inv H;
+  rewrite <- E in *;
+  sem_inputs;
+  sem_inv;
+  simpl in *;
+  sem_inv;
+  unfold homomorphism;
+  sem_rewrite;
+  clear;
+  simpl;
+  unfold match_evt; simpl;
+  unfold match_uniqs; simpl;
+  unfold match_skey; simpl;
+  unfold match_akey; simpl;
+  unfold extend_term; simpl;
+  repeat (find_if; simpl; auto);
+  let H := fresh "H" in
+  intro H;
+  inv H.
diff --git a/coq/Subst.v b/coq/Subst.v
new file mode 100644
--- /dev/null
+++ b/coq/Subst.v
@@ -0,0 +1,414 @@
+(* Substitition
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+(** * Substitition
+
+    This library is a companion to the [Match] library.  It provides a
+    substitution function [subst_term] such that when [match_term]
+    matches [x] to [y] and produces substitution [sb], then
+    [subst_term sb x] equals [y]. *)
+
+Require Import FunInd String List Nat Bool Arith.
+Require Import Preamble Monad Alg Match.
+
+Definition subst_skey (sb: sbst) (x: skey): skey :=
+  match x with
+  | Sv v =>
+    match lookup v sb with
+    | Some (Sk y) => y
+    | _ => x
+    end
+  | Lt u v =>
+    let x :=
+        match lookup u sb with
+        | Some (Nm x) => x
+        | _ => u
+        end in
+    let y :=
+        match lookup v sb with
+        | Some (Nm y) => y
+        | _ => v
+        end in
+    Lt x y
+  end.
+
+Definition subst_akey (sb: sbst) (x: akey): alg :=
+  match x with
+  | Av v =>
+    match lookup v sb with
+    | Some (Ak y) => Ak y
+    | Some (Ik y) => Ik y
+    | _ => Ak x
+    end
+  | Pb v =>
+    match lookup v sb with
+    | Some (Nm u) => Ak (Pb u)
+    | _ => Ak x
+    end
+  | Pb2 s v =>
+    match lookup v sb with
+    | Some (Nm u) => Ak (Pb2 s u)
+    | _ => Ak x
+    end
+  end.
+
+(** Definition of substitution *)
+
+Fixpoint subst_term (sb: sbst) (x: alg): alg :=
+  match x with
+  | Tx v =>
+    match lookup v sb with
+    | Some (Tx u) => Tx u
+    | _ => x
+    end
+  | Dt v =>
+    match lookup v sb with
+    | Some (Dt u) => Dt u
+    | _ => x
+    end
+  | Nm v =>
+    match lookup v sb with
+    | Some (Nm u) => Nm u
+    | _ => x
+    end
+  | Sk x => Sk (subst_skey sb x)
+  | Ak x => subst_akey sb x
+  | Ik x => inv (subst_akey sb x)
+  | Ch v =>
+    match lookup v sb with
+    | Some (Ch u) => Ch u
+    | _ => x
+    end
+  | Mg v =>
+    match lookup v sb with
+    | Some y => y
+    | None => x
+    end
+  | Tg s => x
+  | Pr x y => Pr (subst_term sb x) (subst_term sb y)
+  | En x y => En (subst_term sb x) (subst_term sb y)
+  | Hs x => Hs (subst_term sb x)
+  end.
+
+(** ** Correctness of Substitution *)
+
+Lemma extend_term_lookup:
+  forall (sb sb': sbst) (v: var) (x: alg),
+    extend_term sb v x = Some sb' ->
+    lookup v sb' = Some x.
+Proof.
+  unfold extend_term.
+  intros.
+  alt_option_dec (lookup v sb) b G;
+    rewrite G in H.
+  - inv H; simpl; auto.
+    rewrite Nat.eqb_refl; simpl; auto.
+  - destruct (alg_dec x b); inv H; simpl; auto.
+Qed.
+
+Lemma lookup_extend_term_lookup:
+  forall v x y z sb sb',
+    lookup v sb = Some x ->
+    extend_term sb y z = Some sb' ->
+    lookup v sb' = Some x.
+Proof.
+  intros.
+  unfold extend_term in H0.
+  destruct (Nat.eq_dec y v) as [G|G]; subst.
+  - rewrite H in H0.
+    destruct (alg_dec z x) as [G|G]; subst; inv H0; auto.
+  - alt_option_dec (lookup y sb) b F;
+      rewrite F in H0.
+    + inv H0; simpl.
+      rewrite <- Nat.eqb_neq in G.
+      rewrite G; auto.
+    + destruct (alg_dec z b); subst.
+      inv H0; auto.
+      inv H0.
+Qed.
+
+Lemma lookup_match_skey_lookup:
+  forall v x y z sb sb',
+    lookup v sb = Some x ->
+    match_skey sb y z = Some sb' ->
+    lookup v sb' = Some x.
+Proof.
+  intros.
+  unfold match_skey in H0.
+  destruct y.
+  - eapply lookup_extend_term_lookup in H0; eauto.
+  - destruct z.
+    + inv H0.
+    + apply do_some in H0.
+      repeat destruct_ex_and.
+      eapply lookup_extend_term_lookup in H0; eauto.
+      eapply lookup_extend_term_lookup in H1; eauto.
+Qed.
+
+Lemma lookup_match_akey_lookup:
+  forall v x y z sb sb',
+    lookup v sb = Some x ->
+    match_akey sb y z = Some sb' ->
+    lookup v sb' = Some x.
+Proof.
+  intros.
+  unfold match_akey in H0.
+  destruct y.
+  - eapply lookup_extend_term_lookup in H0; eauto.
+  - destruct z.
+    + inv H0.
+    + eapply lookup_extend_term_lookup in H0; eauto.
+    + inv H0.
+  - destruct z.
+    + inv H0.
+    + inv H0.
+    + destruct (String.eqb_spec s s0); subst.
+      * eapply lookup_extend_term_lookup in H; eauto.
+      * inv H.
+        inv H0.
+Qed.
+
+Functional Scheme match_term_ind :=
+  Induction for match_term Sort Prop.
+
+Lemma lookup_match_term_lookup:
+  forall v x y z sb sb',
+    lookup v sb = Some x ->
+    match_term sb y z = Some sb' ->
+    lookup v sb' = Some x.
+Proof.
+  intros.
+  revert H0.
+  revert H.
+  revert sb'.
+  revert x.
+  revert v.
+  functional induction (match_term sb y z); intros;
+    try match goal with
+        | [ H: None = Some _ |- _ ] => inv H
+        | [ H: extend_term _ _ _ = Some _ |- _ ] =>
+          eapply lookup_extend_term_lookup in H; eauto
+        | [ H: match_skey _ _ _ = Some _ |- _ ] =>
+          eapply lookup_match_skey_lookup in H; eauto
+        | [ H: match_akey _ _ _ = Some _ |- _ ] =>
+          eapply lookup_match_akey_lookup in H; eauto
+        end.
+  - inv H0; auto.
+  - eapply IHo0; eauto.
+  - eapply IHo0; eauto.
+  - eapply IHo; eauto.
+Qed.
+
+Lemma match_match_subst_skey:
+  forall w x y z sb sb' sb'',
+    match_skey sb w y = Some sb' ->
+    match_term sb' x z = Some sb'' ->
+    subst_skey sb'' w = y.
+Proof.
+  intros.
+  unfold match_skey in H.
+  destruct w.
+  - apply extend_term_lookup in H.
+    eapply lookup_match_term_lookup in H; eauto.
+    simpl; rewrite H; auto.
+  - destruct y.
+    * inv H.
+    * apply do_some in H.
+      repeat destruct_ex_and.
+      apply extend_term_lookup in H.
+      eapply lookup_extend_term_lookup in H; eauto.
+      eapply lookup_match_term_lookup in H; eauto.
+      apply extend_term_lookup in H1.
+      eapply lookup_match_term_lookup in H1; eauto.
+      simpl.
+      rewrite H.
+      rewrite H1; auto.
+Qed.
+
+Lemma match_match_subst_akey:
+  forall w x y z sb sb' sb'',
+    match_akey sb w y = Some sb' ->
+    match_term sb' x z = Some sb'' ->
+    subst_akey sb'' w = (Ak y).
+Proof.
+  intros.
+  unfold match_akey in H.
+  destruct w.
+  - apply extend_term_lookup in H.
+    eapply lookup_match_term_lookup in H; eauto.
+    simpl; rewrite H; auto.
+  - destruct y.
+    * inv H.
+    * apply extend_term_lookup in H.
+      eapply lookup_match_term_lookup in H; eauto.
+      simpl.
+      rewrite H; auto.
+    * inv H.
+  - destruct y.
+    * inv H.
+    * inv H.
+    * destruct (String.eqb_spec s s0); subst.
+      -- apply extend_term_lookup in H.
+         eapply lookup_match_term_lookup in H; eauto.
+         simpl.
+         rewrite H; auto.
+      -- inv H.
+Qed.
+
+(** The proof of this lemma contains two tricky steps. *)
+
+Lemma match_match_subst_term:
+  forall w x y z sb sb' sb'',
+    match_term sb w y = Some sb' ->
+    match_term sb' x z = Some sb'' ->
+    subst_term sb'' w = y.
+Proof.
+  intros w x y z sb sb' sb''.
+  revert sb'.
+  revert z.
+  revert x.
+  functional induction (match_term sb w y); intros; simpl;
+    try match goal with
+        | [ H: None = Some _ |- _ ] => inv H
+        | [ H: extend_term _ _ _ = Some _ |- _ ] =>
+          apply extend_term_lookup in H;
+          eapply lookup_match_term_lookup in H; eauto;
+            match goal with
+            | [ H: lookup _ _ = Some _ |- _ ] =>
+              rewrite H; simpl; auto
+            end
+        | [ H: match_akey _ _ _ = Some _ |- _ ] =>
+          eapply match_match_subst_akey in H; eauto;
+            match goal with
+            | [ H: lookup _ _ = Some _ |- _ ] =>
+              rewrite H; simpl; auto
+            end
+        end.
+  - eapply match_match_subst_skey in H; eauto.
+    rewrite H; auto.
+  - eapply match_match_subst_akey in H; eauto.
+    simpl in H.
+    apply eq_sym.
+    rewrite inv_swap.
+    simpl; auto.
+  - eapply match_match_subst_akey in H; eauto.
+    simpl in H.
+    apply eq_sym.
+    rewrite inv_swap.
+    simpl; auto.
+  - eapply match_match_subst_akey in H; eauto.
+    simpl in H.
+    apply eq_sym.
+    rewrite inv_swap.
+    simpl; auto.
+  - rewrite String.eqb_eq in e1; subst; auto.
+  - (* This in the tricky part *)
+    apply IHo with (x := Pr w x)(z := Pr y0 z) in e1; auto.
+    + eapply IHo0 in H; eauto.
+      rewrite H.
+      rewrite e1; auto.
+    + simpl; auto.
+      rewrite H; auto.
+  - (* This in the tricky part *)
+    apply IHo with (x := En w x)(z := En y0 z) in e1; auto.
+    + eapply IHo0 in H; eauto.
+      rewrite H.
+      rewrite e1; auto.
+    + simpl; auto.
+      rewrite H; auto.
+  - eapply IHo in H; eauto.
+    rewrite H; auto.
+Qed.
+
+Lemma match_subst_skey:
+  forall x y sb sb',
+    match_skey sb x y = Some sb' ->
+    subst_skey sb' x = y.
+Proof.
+  intros.
+  unfold match_skey in H.
+  unfold subst_skey.
+  destruct x; simpl in *; auto.
+  - apply extend_term_lookup in H.
+    rewrite H; auto.
+  - destruct y; simpl in *; auto.
+    + inv H.
+    + apply do_some in H.
+      repeat destruct_ex_and.
+      apply extend_term_lookup in H.
+      eapply lookup_extend_term_lookup in H; eauto.
+      apply extend_term_lookup in H0.
+      rewrite H0.
+      rewrite H; auto.
+Qed.
+
+Lemma match_subst_akey:
+  forall x y sb sb',
+    match_akey sb x y = Some sb' ->
+    subst_akey sb' x = Ak y.
+Proof.
+  intros.
+  unfold match_akey in H.
+  unfold subst_akey.
+  destruct x; simpl in *; auto.
+  - apply extend_term_lookup in H.
+    rewrite H; auto.
+  - destruct y; simpl in *; auto.
+    + inv H.
+    + apply extend_term_lookup in H.
+      rewrite H; auto.
+    + inv H.
+  - destruct y; simpl in *; auto.
+    + inv H.
+    + inv H.
+    + destruct (String.eqb_spec s s0); subst.
+      apply extend_term_lookup in H.
+      rewrite H; auto.
+      inv H.
+Qed.
+
+(** The main correctness theorem *)
+
+Theorem match_subst_term:
+  forall x y sb sb',
+    match_term sb x y = Some sb' ->
+    subst_term sb' x = y.
+Proof.
+  intros x y sb.
+  functional induction (match_term sb x y); intros;
+    try match goal with
+        | [ H: None = Some _ |- _ ] => inv H
+        | [ H: extend_term _ _ _ = Some _ |- _ ] =>
+          apply extend_term_lookup in H;
+            simpl; rewrite H; auto
+        | [ H: match_skey _ _ _ = Some _ |- _ ] =>
+          apply match_subst_skey in H;
+            simpl; rewrite H; auto
+        | [ H: match_akey _ _ _ = Some _ |- _ ] =>
+          apply match_subst_akey in H;
+            unfold subst_akey in H;
+            simpl; rewrite H; auto
+        end.
+  - apply String.eqb_eq in e1; subst.
+    simpl; auto.
+  - simpl.
+    pose proof H as G.
+    eapply match_match_subst_term in H; eauto.
+    apply IHo0 in G.
+    rewrite G.
+    rewrite H; auto.
+  - simpl.
+    pose proof H as G.
+    eapply match_match_subst_term in H; eauto.
+    apply IHo0 in G.
+    rewrite G.
+    rewrite H; auto.
+  - simpl.
+    apply IHo in H; auto.
+    rewrite H; auto.
+Qed.
diff --git a/coq/Unilateral.v b/coq/Unilateral.v
new file mode 100644
--- /dev/null
+++ b/coq/Unilateral.v
@@ -0,0 +1,36 @@
+(** Protocol: unilateral (unilateral.scm:5:1) *)
+
+Require Import Proc.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: init (unilateral.scm:6:3) *)
+
+Definition init: proc :=
+  mkProc
+  [(0, Chan); (1, Akey)]
+  [
+   (* Send (unilateral.scm:9:7) *)
+   Bind (2, Text) (Frsh_);
+   Bind (3, Mesg) (Encr_ 2 1);
+   Send 0 3;
+   (* Recv (unilateral.scm:10:7) *)
+   Bind (4, Text) (Recv_ 0);
+   Same 4 2;
+   Return [2]
+  ].
+
+(** Role: resp (unilateral.scm:14:3) *)
+
+Definition resp: proc :=
+  mkProc
+  [(0, Chan); (1, Ikey)]
+  [
+   (* Recv (unilateral.scm:17:7) *)
+   Bind (2, Mesg) (Recv_ 0);
+   Bind (3, Text) (Decr_ 2 1);
+   (* Send (unilateral.scm:18:7) *)
+   Send 0 3;
+   Return [3]
+  ].
diff --git a/coq/Unilateral_proof.v b/coq/Unilateral_proof.v
new file mode 100644
--- /dev/null
+++ b/coq/Unilateral_proof.v
@@ -0,0 +1,144 @@
+(* Unilateral Proofs
+
+Copyright (c) 2021 The MITRE Corporation
+
+This program is free software: you can redistribute it and/or
+modify it under the terms of the BSD License as published by the
+University of California. *)
+
+(** * Unilateral Protocol Generated Code Verification *)
+
+Require Import List Program Monad Proc Alg.
+Require Import Sem Sem_tactics Unilateral Unilateral_role.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope nat_scope.
+
+Lemma init_valid:
+  valid_role init_role = true.
+Proof.
+  simpl; auto.
+Qed.
+
+(** This shows the expected execution is a run of the [init] procedure. *)
+
+Theorem unilateral_init:
+  exists ev,
+    sem init ev init_role.
+Proof.
+  eexists.
+  unfold sem; simpl; split; auto.
+  sem_auto.
+Qed.
+
+Lemma resp_valid:
+  valid_role resp_role = true.
+Proof.
+  simpl; auto.
+Qed.
+
+(** This shows the expected execution is a run of the [resp] procedure. *)
+
+Theorem unilateral_resp:
+  exists ev,
+    sem resp ev resp_role.
+Proof.
+  eexists.
+  unfold sem; simpl; split; auto.
+  sem_auto.
+Qed.
+
+(** ** Correct Input/Output *)
+
+Theorem correct_unilateral_init_io_liveness:
+  correct_io_liveness init_role init.
+Proof.
+  sem_liveness.
+Qed.
+
+Theorem correct_unilateral_resp_io_liveness:
+  correct_io_liveness resp_role resp.
+Proof.
+  sem_liveness.
+Qed.
+
+Theorem correct_unilateral_init_io_safety:
+  correct_io_safety init_role init.
+Proof.
+  sem_safety.
+Qed.
+
+Theorem correct_unilateral_resp_io_safety:
+  correct_io_safety resp_role resp.
+Proof.
+  sem_safety.
+Qed.
+
+(** ** Bad Init
+
+    The section shows what can go wrong when an input/output pair
+    has a bad output.
+
+    This version of init fails to make a sameness check. *)
+
+Definition bad_init: proc :=
+  mkProc
+  [(0, Chan); (1, Akey)]
+  [
+   (* Send (rtst/unilateral.scm:9:7) *)
+   Bind (2, Text) (Frsh_);
+   Bind (3, Mesg) (Encr_ 2 1);
+   Send 0 3;
+   (* Recv (rtst/unilateral.scm:10:7) *)
+   Bind (4, Text) (Recv_ 0);
+   Return [2]
+  ].
+
+(** Liveness is okay. *)
+
+Theorem correct_unilateral_bad_init_io_liveness:
+  correct_io_liveness init_role bad_init.
+Proof.
+  sem_liveness.
+Qed.
+
+Definition bad_init_role: role :=
+  mkRole
+  [Sd 0 (En (Tx 2) (Ak (Av 1))); Rv 0 (Tx 3)]
+  [Tx 2]
+  [Ch 0; Ak (Av 1)]
+  [Tx 2].
+
+Lemma unilateral_bad_init:
+  exists ev,
+    sem bad_init ev bad_init_role.
+Proof.
+  eexists.
+  unfold sem; simpl; split; auto.
+  sem_auto.
+Qed.
+
+(** Safety fails. *)
+
+Theorem correct_unilateral_bad_init_io_safety:
+  ~(correct_io_safety init_role bad_init).
+Proof.
+  intro.
+  unfold correct_io_safety in H.
+  pose proof unilateral_bad_init as G.
+  destruct G as [ev G].
+  apply H in G; simpl; auto.
+Qed.
+
+(** The good version of [init] does not allow a [bad_init_role] run. *)
+
+Lemma bad_init_fails_good_proc:
+  forall ev,
+    ~sem init ev bad_init_role.
+Proof.
+  intro.
+  intro.
+  unfold sem in H.
+  destruct H as [G H].
+  sem_inv.
+Qed.
diff --git a/coq/Unilateral_role.v b/coq/Unilateral_role.v
new file mode 100644
--- /dev/null
+++ b/coq/Unilateral_role.v
@@ -0,0 +1,24 @@
+(** Protocol: unilateral (../rtst/unilateral.scm:5:1) *)
+
+Require Import String List Alg Role.
+Import List.ListNotations.
+Open Scope list_scope.
+Open Scope string.
+
+(** Role: init (../rtst/unilateral.scm:6:3) *)
+
+Definition init_role: role :=
+  mkRole
+  [Sd 0 (En (Tx 2) (Ak (Av 1))); Rv 0 (Tx 2)]
+  [Tx 2]
+  [Ch 0; Ak (Av 1)]
+  [Tx 2].
+
+(** Role: resp (../rtst/unilateral.scm:14:3) *)
+
+Definition resp_role: role :=
+  mkRole
+  [Rv 0 (En (Tx 2) (Ak (Av 1))); Sd 0 (Tx 2)]
+  []
+  [Ch 0; Ik (Av 1)]
+  [Tx 2].
diff --git a/coq/_CoqProject b/coq/_CoqProject
new file mode 100644
--- /dev/null
+++ b/coq/_CoqProject
@@ -0,0 +1,24 @@
+-R . Roletran
+Intro.v
+Preamble.v
+Monad.v
+Proc.v
+Alg.v
+Role.v
+Match.v
+Subst.v
+Sem.v
+Run.v
+Nonce.v
+Run_sem.v
+Sem_tactics.v
+Unilateral.v
+Unilateral_role.v
+Unilateral_proof.v
+Alt_sem.v
+CSem.v
+CRun.v
+CRun_csem.v
+Comp.v
+Derives.v
+Exec.v
diff --git a/coq/mkdist b/coq/mkdist
new file mode 100644
--- /dev/null
+++ b/coq/mkdist
@@ -0,0 +1,9 @@
+#! /bin/sh
+
+NAME=$(basename `pwd`)
+DATE=${1:-`date -u +%y-%m-%d`}
+find . -name .git -prune -o -print0 \
+	| cpio -pmd0 ../"${NAME}-${DATE}"
+cd ..
+tar czf "${NAME}-${DATE}".tar.gz "${NAME}-${DATE}"
+rm -rf "${NAME}-${DATE}"
diff --git a/coq/mkdoc b/coq/mkdoc
new file mode 100644
--- /dev/null
+++ b/coq/mkdoc
@@ -0,0 +1,3 @@
+#! /bin/sh
+make coq.mk
+exec make -f procdoc.mk "$@"
diff --git a/coq/procdoc.mk b/coq/procdoc.mk
new file mode 100644
--- /dev/null
+++ b/coq/procdoc.mk
@@ -0,0 +1,24 @@
+include coq.mk.conf
+
+DOC	= procdoc.pdf
+VTEXFILES = $(COQMF_VFILES:.v=.v.tex)
+TEXFILES = $(DOC:.pdf=.tex) body.tex $(VTEXFILES)
+COQDOCFLAGS = --interpolate --latex --gallina --body-only --lib-name ""
+
+%.v.tex: %.v
+	coqdoc -o $@ $(COQDOCFLAGS) $<
+
+all:	$(DOC)
+
+body.tex:	$(VTEXFILES) _CoqProject
+	-rm body.tex
+	for i in $(COQMF_VFILES); do echo "\\include{$$i}" >> body.tex; done
+
+$(DOC):	$(TEXFILES)
+	pdflatex $(DOC:.pdf=)
+	pdflatex $(DOC:.pdf=)
+
+clean:
+	-rm body.tex $(VTEXFILES) $(VTEXFILES:.tex=.aux) coqdoc.sty
+	-rm $(DOC) $(DOC:.pdf=.log) $(DOC:.pdf=.aux) \
+		$(DOC:.pdf=.out) $(DOC:.pdf=.toc)
diff --git a/coq/procdoc.tex b/coq/procdoc.tex
new file mode 100644
--- /dev/null
+++ b/coq/procdoc.tex
@@ -0,0 +1,30 @@
+\documentclass[12pt]{report}
+%\usepackage[T1]{fontenc}
+%\usepackage{lmodern}
+%\usepackage{fullpage}
+\usepackage{coqdoc}
+\usepackage{amsmath,amssymb}
+\usepackage{url}
+\usepackage{hyperref}
+
+\title{Roletran Semantics and Proofs}
+
+\author{Daniel J.~Dougherty\and John D. Ramsdell}
+
+\begin{document}
+
+\maketitle
+
+\begin{abstract}
+  The abstract is currently missing.
+\end{abstract}
+
+\tableofcontents
+
+\coqlibrary{Introduction}{}{Introduction}
+
+The introduction is currently missing.
+
+\input{body}
+
+\end{document}
diff --git a/coq/unilateral.scm b/coq/unilateral.scm
new file mode 100644
--- /dev/null
+++ b/coq/unilateral.scm
@@ -0,0 +1,65 @@
+(herald chan-unilateral)
+
+;; Unilateral authentication using channels with differing assumptions.
+
+(defprotocol unilateral basic
+  (defrole init
+     (vars (ch chan) (n text) (k akey))
+     (trace
+      (send ch (enc n k))
+      (recv ch n))
+     (uniq-orig n)
+     (inputs ch k)
+     (outputs n))
+  (defrole resp
+     (vars (ch chan) (n text) (k akey))
+     (trace
+      (recv ch (enc n k))
+      (send ch n))
+     (inputs ch (invk k))
+     (outputs n))
+  (comment "Unilateral protocol with inputs and outputs"))
+
+(defskeleton unilateral
+   (vars (ch chan))
+   (defstrand init 2 (ch ch)))
+
+(defskeleton unilateral
+   (vars (ch chan))
+   (defstrand init 2 (ch ch))
+   (auth ch))
+
+(defskeleton unilateral
+   (vars (ch chan))
+   (defstrand init 2 (ch ch))
+   (conf ch))
+
+(defskeleton unilateral
+   (vars (ch chan))
+   (defstrand init 2 (ch ch))
+   (auth ch)
+   (conf ch))
+
+(defskeleton unilateral
+  (vars (n text) (ch chan))
+  (defstrand resp 2 (n n) (ch ch))
+  (pen-non-orig n))
+
+(defskeleton unilateral
+  (vars (n text) (ch chan))
+  (defstrand resp 2 (n n) (ch ch))
+  (pen-non-orig n)
+  (auth ch))
+
+(defskeleton unilateral
+  (vars (n text) (ch chan))
+  (defstrand resp 2 (n n) (ch ch))
+  (pen-non-orig n)
+  (conf ch))
+
+(defskeleton unilateral
+  (vars (n text) (ch chan))
+  (defstrand resp 2 (n n) (ch ch))
+  (pen-non-orig n)
+  (auth ch)
+  (conf ch))
diff --git a/cpsa.cabal b/cpsa.cabal
--- a/cpsa.cabal
+++ b/cpsa.cabal
@@ -1,6 +1,6 @@
 Name:                   cpsa
-Version:                3.6.11
-Maintainer:             mliskov@mitre.org
+Version:                4.4.1
+Maintainer:             ramsdell@mitre.org
 Cabal-Version:          >= 1.10
 License:                BSD3
 License-File:           license.txt
@@ -16,144 +16,289 @@
   shapes.
   .
   For each input problem, the CPSA program is given some initial
-  behavior, and it discovers what shapes are compatible with
-  it. Normally, the initial behavior is from the point of view of one
-  participant. The analysis reveals what the other participants must
-  have done, given the participant's view. The search is complete,
-  i.e. we proved every shape can be found in a finite number of steps,
-  relative to a procedural semantics of protocol roles.  This version
-  of CPSA has the ability to analyze Diffie-Hellman protocols.
+  behavior, and it discovers what shapes are compatible with it.
+  Normally, the initial behavior is from the point of view of one
+  participant.  The analysis reveals what the other participants must
+  have done, given the participant's view.  The search is complete,
+  i.e. we proved every shape can in fact be found in a finite number
+  of steps, relative to a procedural semantics of protocol roles.
   .
   The package contains a set of programs used to perform the analysis
   and display it in a browser.  Program documentation is in the doc
   directory in the source distribution, and installed in the package's
   data directory.  You can locate the package's data directory by
-  typing "cpsa --help" to a command prompt.  New users should start
-  learning to use the tool from the manual, found at "cpsamanual.pdf"
-  in the data directory.  Examples referenced in the manual can be
-  found in the data directory as well.  It is suggested that users
-  make an examples directory and copy "*.scm *.xhtml" to their local
-  examples directory, both so that they may be modified and for ease
-  of access.
+  typing "cpsa --help" to a command prompt.  New users should study
+  the documentation and the sample inputs in the data directory.  The
+  source distribution includes a test suite with an expanded set of
+  input files and is easily installed on operating systems that decend
+  from Unix.  Serious Windows users should install MSYS so as to allow
+  the use of make and script execution.
   .
   The theory and algorithm used by CPSA was developed with the help of
   Joshua D. Guttman, John D. Ramsdell, Jon C. Herzog, Shaddin
   F. Doghmi, F. Javier Thayer, Paul D. Rowe, and Moses D. Liskov.
-  John D. Ramsdell and Moses D. Liskov implemented the algorithm in
-  Haskell.  CPSA was designed and implemented at The MITRE Corporation.
+  John D. Ramsdell implemented the algorithm in Haskell.  CPSA was
+  designed and implemented at The MITRE Corporation.
 Category:               Cryptography
 Build-Type:             Simple
 Data-Files:
-  Make.hs cpsa.mk cpsamanual.pdf init/Makefile init/template.lisp
-  examples/IKE_variants.tar.gz examples/IKE_variants_nobase.tar.gz
-  examples/Makefile examples/blanchet.scm examples/blanchet.xhtml
-  examples/bltk_or.scm examples/bltk_or.xhtml examples/bltk_test.scm
-  examples/dh_mim.scm examples/dh_mim.xhtml examples/envelope.scm
-  examples/envelope.xhtml examples/eq_test.scm examples/eq_test.xhtml
-  examples/ffgg.scm examples/ffgg.xhtml
-  examples/fluffy_draft03_fixing_gske.scm
-  examples/fluffy_draft03_gske.scm
-  examples/fluffy_draft03_improving_pske.scm
-  examples/fluffy_draft03_pske.scm examples/fnof_test.scm
-  examples/fnof_test.xhtml examples/fnof_yahalom.scm
-  examples/fnof_yahalom.xhtml examples/goals.scm examples/goals.xhtml
-  examples/iadh_um.scm examples/iadh_um.xhtml examples/kerb.scm
-  examples/kerb.xhtml examples/lt_test.scm examples/lt_test.xhtml
-  examples/neq_test.scm examples/neq_test.xhtml examples/ns.scm
-  examples/ns.xhtml examples/or.scm examples/or.xhtml
-  examples/pkinit.scm examples/pkinit.xhtml examples/plaindh.scm
-  examples/plaindh.xhtml examples/priority_test.scm
-  examples/priority_test.xhtml examples/rules.scm examples/rules.xhtml
-  examples/station.scm examples/station.xhtml
-  examples/subsort_test.scm examples/subsort_test.xhtml
-  examples/woolam.scm examples/woolam.xhtml examples/yahalom.scm
-  examples/yahalom.xhtml
+  index.html cpsalogo.svg readme.html cpsauser.html cpsa4.mk Make4.hs
+  init/Makefile cpsaprimer.pdf cpsagoals.pdf cpsaintroslides.pdf cpsaspec.pdf
+  cpsafoundation.pdf cpsadesign.pdf cpsa4roletran.md roletran.pdf
+  ffgg.scm ns.scm blanchet.scm or.scm woolam.scm yahalom.scm goals.scm
+  rules.scm cpsa4manual.pdf
 
 Data-Dir:               doc
 Extra-Source-Files:
-  Makefile ChangeLog README.txt NEWS mkghci fixperms cpsatst setup.bat
-  src/cpsa.el src/cpsaops.scm src/cpsa.pl src/pp.pl
-  src/sexpr.pl src/ghcmemlimit src/cpsajson.py src/split.py
+  Makefile ChangeLog README NEWS mkghci cpsatst fixperms setup.bat doc/README
+  doc/src/cpsa.bib doc/src/cmstrands.mp doc/src/macros.tex
+  doc/src/cpsa4manual/ns_skel1.pdf doc/src/cpsa4manual/intro.tex
+  doc/src/cpsa4manual/cmstrands.mp doc/src/cpsa4manual/state-rules.scm
+  doc/src/cpsa4manual/ns_skel0.pdf doc/src/cpsa4manual/algebra.tex
+  doc/src/cpsa4manual/tools.tex doc/src/cpsa4manual/declarations.tex
+  doc/src/cpsa4manual/ns_skel2.pdf
+  doc/src/cpsa4manual/ns_search_tree.eps
+  doc/src/cpsa4manual/CPSA_cribsheet.pptx
+  doc/src/cpsa4manual/algorithm.tex
+  doc/src/cpsa4manual/yahalom_q_resp_pov1.png
+  doc/src/cpsa4manual/blanchet_skel13.eps
+  doc/src/cpsa4manual/kerb_skel3_operation_circled.pdf
+  doc/src/cpsa4manual/secureprotocols.bib
+  doc/src/cpsa4manual/envelope_skel10.pdf
+  doc/src/cpsa4manual/ns_skel4.pdf doc/src/cpsa4manual/macros.tex
+  doc/src/cpsa4manual/plaindh_skel4_5.pdf doc/src/cpsa4manual/ltxs.mk
+  doc/src/cpsa4manual/blanchet_tree6.pdf doc/src/cpsa4manual/Makefile
+  doc/src/cpsa4manual/yahalom_ch_resp_pov.png
+  doc/src/cpsa4manual/kerb_skel4.eps doc/src/cpsa4manual/blanchet.mp
+  doc/src/cpsa4manual/cpsadiagrams.mp doc/src/cpsa4manual/goals.tex
+  doc/src/cpsa4manual/kerb_skel7.eps
+  doc/src/cpsa4manual/ns_skel1_cursor.pdf
+  doc/src/cpsa4manual/kerb_skel7.pdf doc/src/cpsa4manual/bcasyntax.tex
+  doc/src/cpsa4manual/termtree.mp doc/src/cpsa4manual/strands.mp
+  doc/src/cpsa4manual/basic.tex doc/src/cpsa4manual/kerb_skel4.pdf
+  doc/src/cpsa4manual/blanchet_tree6.eps
+  doc/src/cpsa4manual/ns_skel2_cursor.pdf
+  doc/src/cpsa4manual/input.tex
+  doc/src/cpsa4manual/examples/plaindh.scm
+  doc/src/cpsa4manual/examples/plaindh.tst
+  doc/src/cpsa4manual/examples/dhcr_um_expt_assume.scm
+  doc/src/cpsa4manual/examples/dhcr_um_expt_assume.tst
+  doc/src/cpsa4manual/examples/commitment.scm
+  doc/src/cpsa4manual/examples/Makefile
+  doc/src/cpsa4manual/examples/minipay-rely-guar.scm
+  doc/src/cpsa4manual/examples/open-closed.tst
+  doc/src/cpsa4manual/examples/ns.tst
+  doc/src/cpsa4manual/examples/kerberos-variant-guar.tst
+  doc/src/cpsa4manual/examples/ns.scm
+  doc/src/cpsa4manual/examples/open-closed.scm
+  doc/src/cpsa4manual/examples/minipay-rely-guar.tst
+  doc/src/cpsa4manual/examples/or.scm
+  doc/src/cpsa4manual/examples/minipay.tst
+  doc/src/cpsa4manual/examples/bltk_test.scm
+  doc/src/cpsa4manual/examples/blanchet.scm
+  doc/src/cpsa4manual/examples/chan-yahalom-role-decl.tst
+  doc/src/cpsa4manual/examples/pkinit.scm
+  doc/src/cpsa4manual/examples/blanchet.tst
+  doc/src/cpsa4manual/examples/pkinit.tst
+  doc/src/cpsa4manual/examples/chan-yahalom-role-decl.scm
+  doc/src/cpsa4manual/examples/or.tst
+  doc/src/cpsa4manual/examples/minipay.scm
+  doc/src/cpsa4manual/examples/bltk_test.tst
+  doc/src/cpsa4manual/examples/cpsa4diff_out.tst
+  doc/src/cpsa4manual/examples/cpsa4.mk
+  doc/src/cpsa4manual/examples/minipay-guar.tst
+  doc/src/cpsa4manual/examples/rules.scm
+  doc/src/cpsa4manual/examples/minipay-guar.scm
+  doc/src/cpsa4manual/examples/kerb.tst
+  doc/src/cpsa4manual/examples/kerb.scm
+  doc/src/cpsa4manual/examples/open-closed-late-destructure.tst
+  doc/src/cpsa4manual/examples/new_dhcr_um_expt_assume.tst
+  doc/src/cpsa4manual/examples/chan-yahalom.scm
+  doc/src/cpsa4manual/examples/open-closed-late-destructure.scm
+  doc/src/cpsa4manual/examples/chan-yahalom.tst
+  doc/src/cpsa4manual/cpsaprimer.tex doc/src/cpsa4manual/carriers.mp
+  doc/src/cpsa4manual/ns_skel1_cursor.eps
+  doc/src/cpsa4manual/CPSA_cribsheet.pdf
+  doc/src/cpsa4manual/mitrelogo.mp
+  doc/src/cpsa4manual/channels_state.tex
+  doc/src/cpsa4manual/blanchet_skel13.pdf
+  doc/src/cpsa4manual/ns_search_tree.pdf
+  doc/src/cpsa4manual/ns_skel2.eps doc/src/cpsa4manual/ltxmp.mk
+  doc/src/cpsa4manual/ns_skel0.eps doc/src/cpsa4manual/ns_skel1.eps
+  doc/src/cpsa4manual/trace_constraints.tex
+  doc/src/cpsa4manual/cpsa4manual.tex doc/src/cpsa4manual/setup.tex
+  doc/src/cpsa4manual/state.tex
+  doc/src/cpsa4manual/plaindh_skel4_5.eps
+  doc/src/cpsa4manual/ns_skel4.eps
+  doc/src/cpsa4manual/envelope_skel10.eps
+  doc/src/cpsa4manual/troubleshooting.tex
+  doc/src/cpsa4manual/kerb_skel3_operation_circled.eps
+  doc/src/Makefile doc/src/blanchet.mp doc/src/cpsadiagrams.mp
+  doc/src/cpsaspec.tex doc/src/bcasyntax.tex doc/src/termtree.mp
+  doc/src/strands.mp doc/src/cpsaintroslides.tex doc/src/mkdoc
+  doc/src/mitreslides.sty doc/src/cpsafoundation.tex
+  doc/src/cpsaprimer.tex doc/src/carriers.mp doc/src/mitrelogo.mp
+  doc/src/cpsagoals.tex doc/src/rulestheory.tex doc/src/cpsadesign.tex
+  doc/SDAG.lhs doc/cpsalogo.mp src/index.html src/cpsajson.py
+  src/split.py src/cpsa2svg src/cpsa.el src/cpsaperm.scm src/lastlabel.py
+  src/cpsaops.scm src/preskel src/cpsa.pl src/unsorted.pl src/pp.pl
+  src/sexpr.pl src/perm.pl src/prover9.pl src/zoom.js src/js2hs
+  src/ghcmemlimit build.xml src/scala/Main.scala
+  src/scala/Pretty.scala src/scala/Printer.scala src/scala/SExpr.scala
   src/ocaml/Makefile src/ocaml/README src/ocaml/cpsa.d.itarget
   src/ocaml/cpsa.itarget src/ocaml/cpsa.mllib src/ocaml/cpsa.mltop
   src/ocaml/cpsa.odocl src/ocaml/expand.ml src/ocaml/main.ml
   src/ocaml/main.mli src/ocaml/pp.ml src/ocaml/token.ml
   src/ocaml/token.mli src/ocaml/scanner.mll src/ocaml/sexpr.ml
   src/ocaml/sexpr.mli src/ocaml/sexpr_type.ml
-  tst/checktst tst/updatetst tst/cpsagraphtst
-  tst/Makefile tst/Make.hs tst/README
-  tst/aik.scm tst/aik.tst tst/attest.scm tst/attest.tst tst/axiom2.scm
-  tst/axiom2.tst tst/blanchet.scm tst/blanchet.tst tst/bltk_or.scm
-  tst/bltk_or.tst tst/bltk_test.scm tst/bltk_test.tst tst/comment.scm
-  tst/comment.tst tst/comp_test.scm tst/comp_test.tst tst/dh-ca.scm
-  tst/dh-ca.tst tst/dh_group_sig.scm tst/dh_group_sig.tst
-  tst/dh_mim.scm tst/dh_mim.tst tst/dh_mim2.scm tst/dh_mim2.tst
-  tst/dh_mim_nobase.scm tst/dh_mim_nobase.tst tst/dh_sig.scm
-  tst/dh_sig.tst tst/dh_test.scm tst/dh_test.tst tst/dhcr_um.scm
-  tst/dhcr_um.tst tst/dhcr_um3.scm tst/dhcr_um3.tst tst/dhcr_umx.scm
-  tst/dhcr_umx.tst tst/dhnsl_basic.scm tst/dhnsl_basic.tst
-  tst/dhnsl_use.scm tst/dhnsl_use.tst tst/doorsep.scm tst/doorsep.tst
-  tst/doorsep2invk.scm tst/doorsep2invk.tst tst/eadh_um.scm
-  tst/eadh_um.tst tst/enrich.scm tst/enrich.tst tst/envelope.scm
-  tst/envelope.tst tst/envelope_short.scm tst/envelope_short.tst
-  tst/eq_test.scm tst/eq_test.tst tst/ffgg.scm tst/ffgg.tst
-  tst/fluffy_draft03_gske.scm tst/fluffy_draft03_gske.tst
-  tst/fnof_or.scm tst/fnof_or.tst tst/fnof_test.scm tst/fnof_test.tst
-  tst/fnof_woolam.scm tst/fnof_woolam.tst tst/fnof_yahalom.scm
-  tst/fnof_yahalom.tst tst/goals.scm tst/goals.tst tst/iadh_um.scm
-  tst/iadh_um.tst tst/iadh_um_eq.scm tst/iadh_um_eq.tst
-  tst/iadh_um_joshua.scm tst/iadh_um_joshua.tst tst/iadh_umx.scm
-  tst/iadh_umx.tst tst/injection.scm tst/injection.tst tst/kerb.scm
-  tst/kerb.tst tst/kerberos++.scm tst/kerberos++.tst tst/lt_test.scm
-  tst/lt_test.tst tst/neq_test.scm tst/neq_test.tst tst/nh-ca-w-dh.scm
-  tst/nh-ca-w-dh.tst tst/nh-ca.scm tst/nh-ca.tst tst/nhcr_um.scm
-  tst/nhcr_um.tst tst/nhcr_um3.scm tst/nhcr_um3.tst tst/nhcr_umx.scm
-  tst/nhcr_umx.tst tst/ns.scm tst/ns.tst tst/or.scm tst/or.tst
-  tst/ordered.scm tst/ordered.tst tst/owang.scm tst/owang.tst
-  tst/owat.scm tst/owat.tst tst/pkinit.scm tst/pkinit.tst
-  tst/plaindh.scm tst/plaindh.tst tst/precursor.scm tst/precursor.tst
-  tst/priority_test.scm tst/priority_test.tst tst/prottrans.scm
-  tst/prottrans.tst tst/reflect.scm tst/reflect.tst tst/reflect_dh.scm
-  tst/reflect_dh.tst tst/role_uniq.scm tst/role_uniq.tst
-  tst/rule-order.scm tst/rule-order.tst tst/staticdh.scm
-  tst/staticdh.tst tst/station.scm tst/station.tst tst/station2.scm
-  tst/station2.tst tst/station_newhope.scm tst/station_newhope.tst
-  tst/station_nobase.scm tst/station_nobase.tst tst/stationbase.scm
-  tst/stationbase.tst tst/subsort_test.scm tst/subsort_test.tst
-  tst/tag_test.scm tst/tag_test.tst tst/target.scm tst/target.tst
-  tst/test_g.scm tst/test_g.tst tst/test_small.scm tst/test_small.tst
-  tst/thinning.scm tst/thinning.tst tst/trust-anchor.scm
-  tst/trust-anchor.tst tst/ugen_test.scm tst/ugen_test.tst
-  tst/unilateral.scm tst/unilateral.tst tst/uniq-gen-test.scm
-  tst/uniq-gen-test.tst tst/uniq_orig_doesnt_fail.scm
-  tst/uniq_orig_doesnt_fail.tst tst/wd-goalssat.scm
-  tst/wd-goalssat.tst tst/wd-gs-simple.scm tst/wd-gs-simple.tst
-  tst/woolam.scm tst/woolam.tst tst/yahalom.scm tst/yahalom.tst
-  tst/yolo.scm tst/yolo.tst tst/wrap_decrypt.lsp tst/wrap_decrypt.tst
-  tst/blanchet_doorsep.prot tst/blanchet_doorsep.tst
+  tst/DH_hack.scm tst/DH_hack.tst tst/Make4.hs tst/Makefile tst/README
+  tst/ab.scm tst/ab.tst tst/abc.scm tst/abc.tst tst/aik.scm
+  tst/aik.tst tst/atomic-open-closed.scm tst/atomic-open-closed.tst
+  tst/attest.scm tst/attest.tst tst/auth-enc.scm tst/auth-enc.tst
+  tst/auth-hash.scm tst/auth-hash.tst tst/blanchet.scm
+  tst/blanchet.tst tst/blanchet_doorsep.prot tst/blanchet_doorsep.tst
+  tst/bug_example.scm tst/bug_example.tst tst/cert_lang.scm
+  tst/cert_lang.tst tst/chan-envelope.scm tst/chan-envelope.tst
+  tst/chan-perrig-song.scm tst/chan-perrig-song.tst
+  tst/chan-unilateral.scm tst/chan-unilateral.tst
+  tst/chan-yahalom-role-decl.scm tst/chan-yahalom-role-decl.tst
+  tst/chan-yahalom.scm tst/chan-yahalom.tst tst/checktst
+  tst/commitment.scm tst/commitment.tst tst/comp_test.scm
+  tst/comp_test.tst tst/completeness-test.scm
+  tst/completeness-test.tst tst/cpsagraphall tst/cpsagraphtst
+  tst/cpsashapesall tst/crushing.scm tst/crushing.tst
+  tst/dass-mod.lisp tst/dass.lisp tst/dass_simple.scm
+  tst/dass_simple.tst tst/denning-sacco.scm tst/denning-sacco.tst
+  tst/deorig_contract.scm tst/deorig_contract.tst tst/deorig_mesg.scm
+  tst/deorig_mesg.tst tst/deorig_simple.scm tst/deorig_simple.tst
+  tst/dh-ca_hack.scm tst/dh-ca_hack.tst tst/dh_encrypt_hack.scm
+  tst/dh_encrypt_hack.tst tst/dh_group_sig.scm tst/dh_group_sig.tst
+  tst/dh_group_sig_auth_failure.scm tst/dh_group_sig_auth_failure.tst
+  tst/dh_mim.lisp tst/dh_mim_hack.scm tst/dh_mim_hack.tst
+  tst/dhcr_um.lisp tst/dhcr_um.scm tst/dhcr_um.tst tst/dhcr_um3.scm
+  tst/dhcr_um3.tst tst/dhcr_um_exercise_resolved_bug.scm
+  tst/dhcr_um_exercise_resolved_bug.tst tst/dhcr_um_expt.scm
+  tst/dhcr_um_expt.tst tst/dhcr_umx.scm tst/dhcr_umx.tst
+  tst/dhke2.lisp tst/dhnsl_hack.scm tst/dhnsl_hack.tst
+  tst/dhstatic-state.scm tst/dhstatic-state.tst tst/disclosure.scm
+  tst/disclosure.tst tst/doorsep.scm tst/doorsep.tst
+  tst/doorsep2invk.scm tst/doorsep2invk.tst tst/ds-short.lisp
+  tst/dy.lsp tst/dy.tst tst/encsig.scm tst/encsig.tst tst/envelope.scm
+  tst/envelope.tst tst/epmo-hash.scm tst/epmo-hash.tst
+  tst/epmo-key-hash.scm tst/epmo-key-hash.tst tst/epmo.scm
+  tst/epmo.tst tst/epmo_acctnum-key-hash.scm
+  tst/epmo_acctnum-key-hash.tst tst/epmo_acctnum.lisp
+  tst/epmo_acctnum.tst tst/expand.scm tst/expand.tst tst/facts.scm
+  tst/facts.tst tst/factvar.scm tst/factvar.tst tst/ffgg.scm
+  tst/ffgg.tst tst/fluffy_draft03_gske.scm tst/fluffy_draft03_gske.tst
+  tst/fragile_pruning.scm tst/fragile_pruning.tst tst/goals.scm
+  tst/goals.tst tst/hashtest-key-hash.scm tst/hashtest-key-hash.tst
+  tst/hashtest.scm tst/hashtest.tst tst/incompleteness_example.scm
+  tst/incompleteness_example.tst tst/isoreject-corrected.scm
+  tst/isoreject-corrected.tst tst/isoreject.scm tst/isoreject.tst
+  tst/jdg-neuman-stubblebine-reauth.tst tst/kelly1.scm tst/kelly1.tst
+  tst/kelly64.lisp tst/kerb5.lisp tst/kerberos.scm tst/kerberos.tst
+  tst/locn_envelope.scm tst/locn_envelope.tst tst/mass.lsp
+  tst/mass.tst tst/mass2.lsp tst/mass2.tst tst/missing_contraction.scm
+  tst/missing_contraction.tst tst/mksas tst/neq_test.scm
+  tst/neq_test.tst tst/neuman-stubblebine-alt.lisp
+  tst/neuman-stubblebine-reauth-tagged.tst
+  tst/neuman-stubblebine-reauth.lisp tst/neuman-stubblebine-reauth.lsp
+  tst/neuman-stubblebine-reauth.tst tst/neuman-stubblebine.scm
+  tst/neuman-stubblebine.tst tst/no_contraction.scm
+  tst/no_contraction.tst tst/non_transforming.scm
+  tst/non_transforming.tst tst/nonaug-prune.scm tst/nonaug-prune.tst
+  tst/ns-l.scm tst/ns-l.tst tst/ns-rebinding.scm tst/ns-rebinding.tst
+  tst/ns.scm tst/ns.tst tst/nsl3.scm tst/nsl3.tst tst/nsl4.lisp
+  tst/nsl4cm1.lisp tst/nsl4init.lisp tst/nsl4resp1.lisp
+  tst/nsl4resp2.lisp tst/nsl4resp3.lisp tst/nsl5.lisp tst/nsl5i.lisp
+  tst/nsl5resp3.lisp tst/nslsk.scm tst/nslsk.tst
+  tst/open-closed-multiloc.scm tst/open-closed-multiloc.tst
+  tst/open-closed-tag.scm tst/open-closed-tag.tst tst/open-closed.scm
+  tst/open-closed.tst tst/or.scm tst/or.tst tst/ordered.scm
+  tst/ordered.tst tst/par tst/pca.scm tst/pca.tst
+  tst/pen-non-orig-test.scm tst/pen-non-orig-test.tst
+  tst/pfs-via-pubkey.scm tst/pfs-via-pubkey.tst tst/pkinit.scm
+  tst/pkinit.tst tst/preprocess.scm tst/preprocess.tst tst/print.scm
+  tst/print.tst tst/prottrans.scm tst/prottrans.tst tst/pruning1.scm
+  tst/pruning1.tst tst/puzzle_example.scm tst/puzzle_example.tst
+  tst/reflect.scm tst/reflect.tst tst/renamings.scm tst/renamings.tst
+  tst/role_uniq.scm tst/role_uniq.tst tst/rule-node.scm
+  tst/rule-node.tst tst/rule-order.scm tst/rule-order.tst
+  tst/sigenc.scm tst/sigenc.tst tst/sorted_epmo_acctnum.scm
+  tst/sorted_epmo_acctnum.tst tst/sts.scm tst/sts.tst
+  tst/sts_unflip.scm tst/sts_unflip.tst tst/sts_weak.scm
+  tst/sts_weak.tst tst/subatomic-open-closed-test-genrule.scm
+  tst/subatomic-open-closed-test-genrule.tst
+  tst/subatomic-open-closed.scm tst/subatomic-open-closed.tst
+  tst/sync_locn_envelope.scm tst/sync_locn_envelope.tst
+  tst/targetterms1.scm tst/targetterms1.tst tst/targetterms2.scm
+  tst/targetterms2.tst tst/targetterms6.scm tst/targetterms6.tst
+  tst/targetterms8.scm tst/targetterms8.tst
+  tst/thisthat.scm tst/thisthat.tst tst/tickle-unique.scm
+  tst/tickle-unique.tst tst/timestamping.scm tst/timestamping.tst
+  tst/tnsl5.lisp tst/trust-anchor.scm tst/trust-anchor.tst
+  tst/uncarried_keys.scm tst/uncarried_keys.tst tst/unilateral.scm
+  tst/unilateral.tst tst/uniq-gen-test.scm tst/uniq-gen-test.tst
+  tst/uo.scm tst/uo.tst tst/updatetst tst/wang-hash.scm
+  tst/wang-hash.tst tst/wang-key-hash-tst.tst tst/wang-key-hash.scm
+  tst/wang-key-hash.tst tst/wang.lisp
+  tst/weakened-subatomic-open-closed.tst tst/weird.scm tst/weird.tst
+  tst/wide-mouth-frog-scyther.lsp tst/wide-mouth-frog-scyther.tst
+  tst/wide-mouth-frog.lsp tst/wide-mouth-frog.tst tst/wonthull.scm
+  tst/wonthull.tst tst/wonthull2.scm tst/wonthull2.tst
+  tst/wonthull3.scm tst/wonthull3.tst tst/woolam.scm tst/woolam.tst
+  tst/wrap_decrypt.tst tst/yahalom-6.3.6.scm tst/yahalom-6.3.6.tst
+  tst/yahalom.scm tst/yahalom.tst
+  coq/Sem_tactics.v coq/Comp.v coq/Alt_sem.v coq/Match.v coq/Alg.v
+  coq/Exec.v coq/Intro.v coq/Nonce.v coq/Preamble.v
+  coq/Unilateral_proof.v coq/Makefile coq/Run.v coq/procdoc.tex
+  coq/Run_sem.v coq/_CoqProject coq/Monad.v coq/procdoc.mk coq/README
+  coq/Sem.v coq/mkdist coq/Unilateral_role.v coq/mkdoc
+  coq/Examples/Otway_rees_proof.v coq/Examples/Otway_rees.v
+  coq/Examples/Ltk_proof.v coq/Examples/nsl.scm
+  coq/Examples/privk2.scm coq/Examples/Yahalom.v coq/Examples/update
+  coq/Examples/Privk2_role.v coq/Examples/invk.scm
+  coq/Examples/Privk2.v coq/Examples/Pubk2_role.v
+  coq/Examples/Makefile coq/Examples/ltk.scm
+  coq/Examples/Pubk2_proof.v coq/Examples/Invk_role.v
+  coq/Examples/Privk.v coq/Examples/Bad_unilateral_proof.v
+  coq/Examples/Invk_proof.v coq/Examples/Nsl_proof.v
+  coq/Examples/_CoqProject coq/Examples/Ltk.v coq/Examples/Nsl_role.v
+  coq/Examples/README coq/Examples/Ltk_role.v coq/Examples/pubk.scm
+  coq/Examples/Privk_proof.v coq/Examples/bad_unilateral.scm
+  coq/Examples/Pubk.v coq/Examples/Yahalom_proof.v
+  coq/Examples/Pubk2.v coq/Examples/otway_rees.scm
+  coq/Examples/Bad_unilateral_role.v coq/Examples/privk.scm
+  coq/Examples/Privk_role.v coq/Examples/Otway_rees_role.v
+  coq/Examples/Nsl.v coq/Examples/Invk.v coq/Examples/Pubk_role.v
+  coq/Examples/Bad_unilateral.v coq/Examples/Privk2_proof.v
+  coq/Examples/pubk2.scm coq/Examples/Pubk_proof.v
+  coq/Examples/yahalom.scm coq/Examples/Yahalom_role.v coq/Proc.v
+  coq/Derives.v coq/unilateral.scm coq/Unilateral.v coq/Role.v
+  coq/Subst.v coq/CSem.v coq/CRun.v coq/CRun_csem.v
 
 Source-Repository head
   Type:     git
-  Location: git://github.com/mitre/cpsa.git
+  Location: git://github.com/mitre/cpsaexp.git
 
-Executable cpsa
-  Main-Is:              CPSA/Lib/Main.hs
+Executable cpsa4
+  Main-Is:              CPSA/Main.hs
   Default-Language:     Haskell2010
   Build-Depends:        base >= 4.13 && < 5, containers, parallel
   GHC-Options:
     -Wall -fno-warn-name-shadowing -fwarn-unused-imports -threaded -rtsopts
   Hs-Source-Dirs:       src
   Other-Modules:
-    Paths_cpsa CPSA.Lib.Utilities
-    CPSA.Lib.Pretty CPSA.Lib.SExpr CPSA.Lib.Printer CPSA.Lib.Entry
-    CPSA.Lib.Algebra CPSA.Lib.AlgebraLibrary CPSA.Lib.State
-    CPSA.Lib.Protocol CPSA.Lib.Strand
-    CPSA.Lib.Characteristic CPSA.Lib.Loader CPSA.Lib.Displayer
-    CPSA.Lib.Cohort CPSA.Lib.Expand CPSA.Lib.Reduction
-    CPSA.Basic.Algebra CPSA.DiffieHellman.Algebra CPSA.Lib.Declaration
+    Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.ReturnFail CPSA.Lib.Pretty
+    CPSA.Lib.SExpr CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Options
+    CPSA.Algebra CPSA.Protocol CPSA.Strand CPSA.Characteristic
+    CPSA.Channel CPSA.LoadFormulas CPSA.GenRules CPSA.Loader
+    CPSA.Displayer CPSA.Cohort
+    CPSA.Lib.Expand CPSA.Reduction CPSA.Signature
 
-Executable cpsagraph
-  Main-Is:              CPSA/Graph/Main.hs
+Executable cpsa4sas
+  Main-Is:              CPSA/SAS/Main.hs
   Default-Language:     Haskell2010
   Build-Depends:        base >= 4.13 && < 5, containers
   GHC-Options:
@@ -161,151 +306,144 @@
   Hs-Source-Dirs:       src
   Other-Modules:
     Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr
-    CPSA.Lib.Printer CPSA.Lib.Notation CPSA.Lib.Entry CPSA.Lib.Algebra
-    CPSA.Graph.XMLOutput CPSA.Graph.Config
-    CPSA.Graph.SVG CPSA.Graph.Loader CPSA.Graph.Preskeleton
-    CPSA.Graph.Layout CPSA.Graph.Tree CPSA.Graph.CompactView
-    CPSA.Graph.ExpandedView CPSA.Graph.LaTeXView CPSA.Basic.Algebra
+    CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Options CPSA.Algebra
+    CPSA.Signature CPSA.SAS.SAS
 
-Executable cpsashapes
-  Main-Is:              CPSA/Shapes/Main.hs
+Executable cpsa4prot
+  Main-Is:              CPSA/Prot/Main.hs
   Default-Language:     Haskell2010
-  Build-Depends:        base >= 4.13 && < 5, containers
+  Build-Depends:        base >= 3 && < 5, containers
   GHC-Options:
     -Wall -fno-warn-name-shadowing -fwarn-unused-imports
   Hs-Source-Dirs:       src
   Other-Modules:
     Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr
-    CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra
-    CPSA.Shapes.Shapes CPSA.Basic.Algebra
+    CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Expand
 
-Executable cpsaannotations
-  Main-Is:              CPSA/Annotations/Main.hs
+Executable cpsa4goalsat
+  Main-Is:              CPSA/GoalSat/Main.hs
   Default-Language:     Haskell2010
-  Build-Depends:        base >= 4.13 && < 5, containers
+  Build-Depends:        base
   GHC-Options:
     -Wall -fno-warn-name-shadowing -fwarn-unused-imports
   Hs-Source-Dirs:       src
   Other-Modules:
-    Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr
-    CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra
-    CPSA.Annotations.Formulas CPSA.Annotations.Annotations
-    CPSA.Basic.Algebra CPSA.DiffieHellman.Algebra
+    Paths_cpsa CPSA.Lib.Pretty CPSA.Lib.SExpr
+    CPSA.Lib.Printer CPSA.Lib.Entry
 
-Executable cpsadiff
+Executable cpsa4diff
   Main-Is:              CPSA/Diff/Main.hs
   Default-Language:     Haskell2010
-  Build-Depends:        base >= 3 && < 5, containers
+  Build-Depends:        base
   GHC-Options:
     -Wall -fno-warn-name-shadowing -fwarn-unused-imports
   Hs-Source-Dirs:       src
   Other-Modules:
-    Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr
-    CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra
-    CPSA.Basic.Algebra
+    Paths_cpsa CPSA.Lib.Pretty CPSA.Lib.SExpr
+    CPSA.Lib.Printer CPSA.Lib.Entry
 
-Executable cpsasas
-  Main-Is:              CPSA/SAS/Main.hs
+Executable cpsa4graph
+  Main-Is:              CPSA/Graph/Main.hs
   Default-Language:     Haskell2010
-  Build-Depends:        base >= 4.13 && < 5, containers
+  Build-Depends:        base >= 4.13, containers
   GHC-Options:
     -Wall -fno-warn-name-shadowing -fwarn-unused-imports
   Hs-Source-Dirs:       src
   Other-Modules:
     Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr
-    CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra CPSA.SAS.SAS
-    CPSA.Basic.Algebra CPSA.DiffieHellman.Algebra
+    CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Graph.XMLOutput
+    CPSA.Graph.Config CPSA.Graph.SVG CPSA.Graph.Loader
+    CPSA.Graph.Preskeleton CPSA.Graph.Layout CPSA.Graph.Tree
+    CPSA.Graph.CompactView CPSA.Graph.ExpandedView
+    CPSA.Graph.LaTeXView
 
-Executable cpsaprot
-  Main-Is:              CPSA/Prot/Main.hs
+Executable cpsa4shapes
+  Main-Is:              CPSA/Shapes/Main.hs
   Default-Language:     Haskell2010
-  Build-Depends:        base >= 3 && < 5, containers
+  Build-Depends:        base >= 4.13, containers
   GHC-Options:
     -Wall -fno-warn-name-shadowing -fwarn-unused-imports
   Hs-Source-Dirs:       src
   Other-Modules:
-    Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr
-    CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra
-    CPSA.Basic.Algebra CPSA.Lib.Expand
+    Paths_cpsa CPSA.Lib.SExpr CPSA.Lib.Pretty CPSA.Lib.Printer
+    CPSA.Lib.Entry CPSA.Shapes.Shapes
 
-Executable cpsapp
+Executable cpsa4pp
   Main-Is:              CPSA/Pretty/Main.hs
   Default-Language:     Haskell2010
-  Build-Depends:        base >= 3 && < 5, containers
+  Build-Depends:        base
   GHC-Options:
     -Wall -fno-warn-name-shadowing -fwarn-unused-imports
   Hs-Source-Dirs:       src
   Other-Modules:
-    Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr
-    CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra
-    CPSA.Basic.Algebra
+    Paths_cpsa CPSA.Lib.Pretty CPSA.Lib.SExpr
+    CPSA.Lib.Printer CPSA.Lib.Entry
 
-Executable cpsajson
+Executable cpsa4json
   Main-Is:              CPSA/JSON/Main.hs
   Default-Language:     Haskell2010
-  Build-Depends:        base >= 3 && < 5, containers
+  Build-Depends:        base
   GHC-Options:
     -Wall -fno-warn-name-shadowing -fwarn-unused-imports
   Hs-Source-Dirs:       src
   Other-Modules:
-    Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr
-    CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra
-    CPSA.Basic.Algebra
+    Paths_cpsa CPSA.Lib.Pretty CPSA.Lib.SExpr
+    CPSA.Lib.Printer CPSA.Lib.Entry
 
-Executable cpsadebase
-  Main-Is:              CPSA/Debase/Main.hs
+Executable cpsa4init
+  Main-Is:              CPSA/Init/Main.hs
   Default-Language:     Haskell2010
-  Build-Depends:        base >= 3 && < 5, containers
+  Build-Depends:        base, directory
   GHC-Options:
     -Wall -fno-warn-name-shadowing -fwarn-unused-imports
   Hs-Source-Dirs:       src
   Other-Modules:
-    Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr
-    CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra
-    CPSA.Basic.Algebra
+    Paths_cpsa
 
-Executable cpsamatch
-  Main-Is:              CPSA/Match/Main.hs
+Executable cpsa42latex
+  Main-Is:              CPSA/Latex/Main.hs
   Default-Language:     Haskell2010
-  Build-Depends:        base >= 4.13 && < 5, containers
+  Build-Depends:        base
   GHC-Options:
     -Wall -fno-warn-name-shadowing -fwarn-unused-imports
   Hs-Source-Dirs:       src
   Other-Modules:
-    Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr
-    CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra CPSA.Match.Match
-    CPSA.Basic.Algebra CPSA.DiffieHellman.Algebra
+    Paths_cpsa CPSA.Lib.Pretty CPSA.Lib.SExpr
+    CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Expand
 
-Executable cpsainit
-  Main-Is:              CPSA/Init/Main.hs
+Executable cpsa4roletran
+  Main-Is:              CPSA/Roletran/Main.hs
   Default-Language:     Haskell2010
-  Build-Depends:        base, directory
+  Build-Depends:        base >= 4.13 && < 5, containers
   GHC-Options:
     -Wall -fno-warn-name-shadowing -fwarn-unused-imports
   Hs-Source-Dirs:       src
   Other-Modules:
-    Paths_cpsa
+    Paths_cpsa CPSA.Lib.ReturnFail CPSA.Lib.Pretty CPSA.Lib.SExpr
+    CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Expand
+    CPSA.Roletran.Algebra CPSA.Roletran.Protocol CPSA.Roletran.Loader
+    CPSA.Roletran.Displayer CPSA.Roletran.Derivation CPSA.Roletran.Emitter
 
-Executable cpsagoalsat
-  Main-Is:              CPSA/GoalSat/Main.hs
+Executable cpsa4coq
+  Main-Is:              CPSA/Coq/Main.hs
   Default-Language:     Haskell2010
-  Build-Depends:        base >= 3 && < 5, containers
+  Build-Depends:        base >= 4.13 && < 5, containers
   GHC-Options:
     -Wall -fno-warn-name-shadowing -fwarn-unused-imports
   Hs-Source-Dirs:       src
   Other-Modules:
-    Paths_cpsa CPSA.Lib.Utilities CPSA.Lib.Pretty CPSA.Lib.SExpr
-    CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Algebra
-    CPSA.Basic.Algebra
+    Paths_cpsa CPSA.Lib.Pretty CPSA.Lib.SExpr CPSA.Lib.Printer
+    CPSA.Lib.Entry CPSA.Lib.Expand CPSA.Proc.Proc
 
-Executable cpsa2latex
-  Main-Is:              CPSA/Latex/Main.hs
+Executable cpsa4rolecoq
+  Main-Is:              CPSA/RoleCoq/Main.hs
   Default-Language:     Haskell2010
-  Build-Depends:        base >= 3 && < 5, containers
+  Build-Depends:        base >= 4.13 && < 5, containers
   GHC-Options:
     -Wall -fno-warn-name-shadowing -fwarn-unused-imports
   Hs-Source-Dirs:       src
   Other-Modules:
-    Paths_cpsa CPSA.Lib.SExpr CPSA.Lib.Expand CPSA.Lib.Entry
-    CPSA.Basic.Algebra CPSA.Lib.Algebra CPSA.Lib.Pretty
-    CPSA.Lib.Printer CPSA.Lib.Utilities
+    Paths_cpsa CPSA.Lib.ReturnFail CPSA.Lib.Pretty CPSA.Lib.SExpr
+    CPSA.Lib.Printer CPSA.Lib.Entry CPSA.Lib.Expand
+    CPSA.Roletran.Algebra CPSA.Roletran.Protocol CPSA.Roletran.Loader
+    CPSA.Roletran.Displayer CPSA.Roletran.Emitter
diff --git a/cpsatst b/cpsatst
--- a/cpsatst
+++ b/cpsatst
@@ -1,7 +1,7 @@
 #! /bin/sh
 
 # This script runs the test suite, and then reduces the data for
-# inspection.  If you see "cpsa failed", something is very wrong.  If
+# inspection.  If you see "cpsa4 failed", something is very wrong.  If
 # differences appear in the output, there might be a problem.
 
 # The following scripts in the tst directory might also serve as a
@@ -16,38 +16,40 @@
 
 # Analyze the results of a CPSA run.
 analyze () {
-    echo cpsadiff "$1.tst" "$1.txt"
-    cabal run cpsadiff -v0 -- "$1.tst" "$1.txt"
-    echo cpsagraph -o "$1.xhtml" "$1.txt"
-    cabal run cpsagraph -v0 -- -o "$1.xhtml" "$1.txt"
-    echo cpsashapes -o "${1}_shapes.txt" "$1.txt"
-    cabal run cpsashapes -v0 -- -o "${1}_shapes.txt" "$1.txt"
-    echo cpsagraph -o "${1}_shapes.xhtml" "${1}_shapes.txt"
-    cabal run cpsagraph -v0 -- -o "${1}_shapes.xhtml" "${1}_shapes.txt"
+    echo cpsa4diff "$1.tst" "$1.txt"
+    cabal run cpsa4diff -v0 -- "$1.tst" "$1.txt"
+    echo cpsa4graph -o "$1.xhtml" "$1.txt"
+    cabal run cpsa4graph -v0 -- -o "$1.xhtml" "$1.txt"
+    echo cpsa4shapes -o "${1}_shapes.txt" "$1.txt"
+    cabal run cpsa4shapes -v0 -- -o "${1}_shapes.txt" "$1.txt"
+    echo cpsa4graph -o "${1}_shapes.xhtml" "${1}_shapes.txt"
+    cabal run cpsa4graph -v0 -- -o "${1}_shapes.xhtml" "${1}_shapes.txt"
+    echo cpsa4sas -o "${1}_sas.text" "${1}.txt"
+    cabal run cpsa4sas -v0 -- -o "${1}_sas.text" "${1}.txt"
 }
 
 for i in ${TST}/*.scm
 do
     b=${TST}/`basename "$i" .scm`
-    echo cpsa ${CPSAFLAGS} -o "$b.txt" "$i"
-    cabal run cpsa -v0 -- ${CPSAFLAGS} -o "$b.txt" "$i" || echo cpsa failed.
+    echo cpsa4 ${CPSAFLAGS} -o "$b.txt" "$i"
+    time cabal run cpsa4 -v0 -- ${CPSAFLAGS} -o "$b.txt" "$i" || echo cpsa4 failed.
     analyze "$b"
 done
 
 for i in ${TST}/*.prot
 do
     b=${TST}/`basename "$i" .prot`
-    echo cpsaprot  "$i" '|' cpsa ${CPSAFLAGS} -o "$b.txt"
-    cabal run cpsaprot -v0 -- "$i" | \
-	cabal run cpsa -v0 -- ${CPSAFLAGS} -o "$b.txt" || \
-	echo cpsa failed.
+    echo cpsa4prot  "$i" '|' cpsa4 ${CPSAFLAGS} -o "$b.txt"
+    cabal run cpsa4prot -v0 -- "$i" | \
+	time cabal run cpsa4 -v0 -- ${CPSAFLAGS} -o "$b.txt" || \
+	echo cpsa4 failed.
     analyze "$b"
 done
 
 for i in ${TST}/*.lsp
 do
     b=${TST}/`basename "$i" .lsp`
-    echo cpsa ${CPSAFLAGS} -o "$b.txt" "$i"
-    cabal run cpsa -v0 -- ${CPSAFLAGS} -o "$b.txt" "$i"
+    echo cpsa4 ${CPSAFLAGS} -o "$b.txt" "$i"
+    time cabal run cpsa4 -v0 -- ${CPSAFLAGS} -o "$b.txt" "$i"
     analyze "$b"
 done
diff --git a/doc/Make.hs b/doc/Make.hs
deleted file mode 100644
--- a/doc/Make.hs
+++ /dev/null
@@ -1,319 +0,0 @@
--- A simple, CPSA specific make system
-
-module Make (cpsa, shapes, sas, annos, params, cleanse, get, set,
-             build, clean, roots) where
-
-{- Place a copy of this source file in the directory used to store
-CPSA problem statements, edit it to suit your needs, and load it into
-a Haskell interpreter.
-
-Normally, just the build and the clean command are used.  It's the
-build command that you usually modify.
-
-To analyze a problem in prob.scm, type:
-
-*Make> cpsa "prob"
-
-If successful, the analysis is in the file prob.xhtml, which can be
-viewed with a standards-compliant browser.
-
-For a shapes only version of the analysis, type:
-
-*Make> shapes "prob"
-
-If successful, the shapes are in the file prob_shapes.xhtml.
-
-*Make> sas "prob"
-
-If successful, the shape analysis sentences are in the file
-prob_sas.text.
-
-When the protocol is annotated with rely-guarantee formulas, type:
-
-*Make> annos "prob"
-
-If successful, the annotated shapes are in the file prob_annotations.xhtml.
-
-*Make> params "prob"
-
-If successful, roles with parameter descriptions are in prob_parameters.txt.
-
-To remove the files generated from source files, type:
-
-*Make> cleanse "prob"
-
-To see the command-line options used by CPSA, type:
-
-*Make> get
-
-To change the command-line options used by CPSA to "-b 15", type:
-
-*Make> set "-b 15"
-
-To analyze all source files in the directory, type:
-
-*Make> build
-
-To remove the files generated from source files in the directory, type:
-
-*Make> clean
-
--}
-
-import Control.Monad (mapM_)
-import Data.List (sort)
-import Data.IORef (IORef, newIORef, readIORef, writeIORef)
-import System.Exit (ExitCode (..))
-import System.Process (system)
-import System.IO (putStrLn)
-import System.IO.Unsafe (unsafePerformIO)
-import System.FilePath (FilePath, splitExtension)
-import System.Directory (removeFile, doesFileExist, getModificationTime,
-                         getCurrentDirectory, getDirectoryContents)
-
--- Flags for CPSA
-
-initialCpsaFlags :: String
-initialCpsaFlags = "+RTS -M512m -RTS"
-
-graphFlags :: String
-graphFlags = ""
--- To enable zooming, use:
--- graphFlags = " -z"
-
--- A mutable location for CPSA flags
-cpsaFlags :: IORef String
-cpsaFlags = unsafePerformIO $ newIORef initialCpsaFlags
-
--- Get the CPSA flags
-get :: IO String
-get =
-    readIORef cpsaFlags
-
--- Set the CPSA flags
-set :: String -> IO ()
-set flags =
-    writeIORef cpsaFlags flags
-
--- Transformation rules
-
-data Rule = Rule
-    { prog :: String,           -- program to run
-      inputExt :: String,       -- input file name extension
-      outputExt :: String }     -- output file name extension
-
--- Graph Rule
-
-graph :: FilePath -> IO ()
-graph root =
-    make graphRule root         -- make graph using given rule
-
-graphRule :: Rule
-graphRule =
-    Rule { prog = "cpsagraph" ++ graphFlags,
-           inputExt = cpsaExt,
-           outputExt = graphExt }
-
--- CPSA Rule
-
-cpsa :: FilePath -> IO ()
-cpsa root =
-    do
-      cpsaBasic root
-      shapes root
-      graph root
-
--- CPSA using Basic rule
-
-cpsaBasic :: FilePath -> IO ()
-cpsaBasic root =
-    do
-      flags <- get               -- get CPSA flags
-      make (cpsaBasicRule flags) root -- make CPSA output using given rule
-
-cpsaBasicRule :: String -> Rule
-cpsaBasicRule flags =
-    Rule { prog = "cpsa " ++ flags,
-           inputExt = sourceBasicExt,
-           outputExt = cpsaExt }
-
--- Shapes Rule
-
-shapes :: FilePath -> IO ()
-shapes root =
-    do
-      cpsaBasic root            -- Run CPSA if need be
-      make shapesRule root
-      graph $ root ++ shapesRoot
-
-shapesRule :: Rule
-shapesRule =
-    Rule { prog = "cpsashapes",
-           inputExt = cpsaExt,
-           outputExt = shapesRoot ++ cpsaExt }
-
--- Sas Rule
-
-sas :: FilePath -> IO ()
-sas root =
-    do
-      cpsaBasic root            -- Run CPSA if need be
-      make sasRule root
-
-sasRule :: Rule
-sasRule =
-    Rule { prog = "cpsasas",
-           inputExt = cpsaExt,
-           outputExt = sasExt }
-
--- Annotations Rule
-
-annos :: FilePath -> IO ()
-annos root =
-    do
-      cpsa root                 -- Run CPSA and make shapes
-      make annosRule root
-      graph $ root ++ annosRoot
-
-annosRule :: Rule
-annosRule =
-    Rule { prog = "cpsaannotations",
-           inputExt = shapesRoot ++ cpsaExt,
-           outputExt = annosRoot ++ cpsaExt }
-
--- Parameters Rule
-
-params :: FilePath -> IO ()
-params root =
-     do
-       make cpsaparametersRule root
-
-cpsaparametersRule :: Rule
-cpsaparametersRule =
-    Rule { prog = "cpsaparameters",
-           inputExt = sourceBasicExt,
-           outputExt = paramsRoot ++ cpsaExt }
-
--- Clean generated files
-
-cleanse :: FilePath -> IO ()
-cleanse root =
-    do
-      rm $ root ++ cpsaExt
-      rm $ root ++ graphExt
-      rm $ root ++ shapesRoot ++ cpsaExt
-      rm $ root ++ shapesRoot ++ graphExt
-      rm $ root ++ sasExt
-      rm $ root ++ annosRoot ++ cpsaExt
-      rm $ root ++ annosRoot ++ graphExt
-      rm $ root ++ paramsRoot ++ cpsaExt
-
--- File Extensions
-
-sourceBasicExt :: String
-sourceBasicExt = ".scm"
-
-cpsaExt :: String
-cpsaExt = ".txt"
-
-shapesRoot :: String
-shapesRoot = "_shapes"
-
-sasExt :: String
-sasExt = "_sas.text"
-
-annosRoot :: String
-annosRoot = "_annotations"
-
-paramsRoot :: String
-paramsRoot = "_parameters"
-
-graphExt :: String
-graphExt = ".xhtml"
-
--- Rule Interpreters
-
--- Make output for root using rule
-make :: Rule -> FilePath -> IO ()
-make rule root =
-    do
-      let input = root ++ inputExt rule
-      let output = root ++ outputExt rule
-      done <- made input output
-      case done of
-        True -> return ()       -- Nothing to do
-        False -> run (prog rule) input output
-
--- See if an output file is up-to-date
-made :: FilePath -> FilePath -> IO Bool
-made input output =
-    do
-      src <- doesFileExist input
-      dst <- doesFileExist output
-      case src && dst of
-        False -> return False
-        True ->
-            do
-              src <- getModificationTime input
-              dst <- getModificationTime output
-              return $ src < dst
-
--- Run a program with input and output from files
-
--- Print the command before running it.  Delete the output when the
--- command fails.
-run :: String -> FilePath -> FilePath -> IO ()
-run prog input output =
-    do
-      let cmd = prog ++ " -o " ++ output ++ " " ++ input
-      putStrLn cmd
-      code <- system cmd
-      case code of
-        ExitSuccess -> return ()
-        ExitFailure _ ->
-            do
-              --rm output
-              fail "Command failed"
-
--- Remove a file
-
--- Prints the command when there is a file to be deleted.
-rm :: FilePath -> IO ()
-rm output =
-    do
-      exists <- doesFileExist output
-      case exists of
-        False -> return ()      -- File doesn't exist
-        True ->
-            do                  -- Print command before removal
-              putStrLn $ "rm " ++ output
-              removeFile output
-
--- Return the roots of the CPSA source files in the current directory.
-
-roots :: [String] -> IO [FilePath]
-roots exts =
-    do
-      dir <- getCurrentDirectory
-      files <- getDirectoryContents dir
-      let roots = [ root |
-                    file <- files,
-                    let (root, ext) = splitExtension file,
-                    elem ext exts ] -- Filter for source files
-      return $ sort roots
-
--- Build the shapes for all the source files in the current directory.
-
-build :: IO ()
-build =
-    do
-      probs <- roots [sourceBasicExt]
-      mapM_ cpsa probs
-
--- Clean files generated for all the source files in the current directory.
-
-clean :: IO ()
-clean =
-    do
-      probs <- roots [sourceBasicExt]
-      mapM_ cleanse probs
diff --git a/doc/Make4.hs b/doc/Make4.hs
new file mode 100644
--- /dev/null
+++ b/doc/Make4.hs
@@ -0,0 +1,272 @@
+-- A simple, CPSA specific make system
+
+module Make (cpsa, shapes, sas, cleanse, get, set,
+             build, clean, roots) where
+
+{- Place a copy of this source file in the directory used to store
+CPSA problem statements, edit it to suit your needs, and load it into
+a Haskell interpreter.
+
+Normally, just the build and the clean command are used.  It's the
+build command that you usually modify.
+
+To analyze a problem in prob.scm, type:
+
+*Make> cpsa "prob"
+
+If successful, the analysis is in the file prob.xhtml, which can be
+viewed with a standards-compliant browser.
+
+For a shapes only version of the analysis, type:
+
+*Make> shapes "prob"
+
+If successful, the shapes are in the file prob_shapes.xhtml.
+
+*Make> sas "prob"
+
+If successful, the shape analysis sentences are in the file
+prob_sas.text.
+
+To remove the files generated from source files, type:
+
+*Make> cleanse "prob"
+
+To see the command-line options used by CPSA, type:
+
+*Make> get
+
+To change the command-line options used by CPSA to "-b 15", type:
+
+*Make> set "-b 15"
+
+To analyze all source files in the directory, type:
+
+*Make> build
+
+To remove the files generated from source files in the directory, type:
+
+*Make> clean
+
+-}
+
+import Control.Monad (mapM_)
+import Data.List (sort)
+import Data.IORef (IORef, newIORef, readIORef, writeIORef)
+import System.Exit (ExitCode (..))
+import System.Process (system)
+import System.IO (putStrLn)
+import System.IO.Unsafe (unsafePerformIO)
+import System.FilePath (FilePath, splitExtension)
+import System.Directory (removeFile, doesFileExist, getModificationTime,
+                         getCurrentDirectory, getDirectoryContents)
+
+-- Flags for CPSA
+
+initialCpsaFlags :: String
+initialCpsaFlags = "+RTS -M512m -RTS"
+
+graphFlags :: String
+graphFlags = ""
+-- To enable zooming, use:
+-- graphFlags = " -z"
+
+-- A mutable location for CPSA flags
+cpsaFlags :: IORef String
+cpsaFlags = unsafePerformIO $ newIORef initialCpsaFlags
+
+-- Get the CPSA flags
+get :: IO String
+get =
+    readIORef cpsaFlags
+
+-- Set the CPSA flags
+set :: String -> IO ()
+set flags =
+    writeIORef cpsaFlags flags
+
+-- Transformation rules
+
+data Rule = Rule
+    { prog :: String,           -- program to run
+      inputExt :: String,       -- input file name extension
+      outputExt :: String }     -- output file name extension
+
+-- Graph Rule
+
+graph :: FilePath -> IO ()
+graph root =
+    make graphRule root         -- make graph using given rule
+
+graphRule :: Rule
+graphRule =
+    Rule { prog = "cpsa4graph" ++ graphFlags,
+           inputExt = cpsaExt,
+           outputExt = graphExt }
+
+-- CPSA Rule
+
+cpsa :: FilePath -> IO ()
+cpsa root =
+    do
+      cpsaBasic root
+      shapes root
+      graph root
+
+-- CPSA using Basic rule
+
+cpsaBasic :: FilePath -> IO ()
+cpsaBasic root =
+    do
+      flags <- get               -- get CPSA flags
+      make (cpsaBasicRule flags) root -- make CPSA output using given rule
+
+cpsaBasicRule :: String -> Rule
+cpsaBasicRule flags =
+    Rule { prog = "cpsa4 " ++ flags,
+           inputExt = sourceBasicExt,
+           outputExt = cpsaExt }
+
+-- Shapes Rule
+
+shapes :: FilePath -> IO ()
+shapes root =
+    do
+      cpsaBasic root            -- Run CPSA if need be
+      make shapesRule root
+      graph $ root ++ shapesRoot
+
+shapesRule :: Rule
+shapesRule =
+    Rule { prog = "cpsa4shapes",
+           inputExt = cpsaExt,
+           outputExt = shapesRoot ++ cpsaExt }
+
+-- SAS Rule
+
+sas :: FilePath -> IO ()
+sas root =
+    do
+      cpsaBasic root            -- Run CPSA if need be
+      make sasRule root
+
+sasRule :: Rule
+sasRule =
+    Rule { prog = "cpsa4sas",
+           inputExt = cpsaExt,
+           outputExt = sasExt }
+
+-- Clean generated files
+
+cleanse :: FilePath -> IO ()
+cleanse root =
+    do
+      rm $ root ++ cpsaExt
+      rm $ root ++ graphExt
+      rm $ root ++ shapesRoot ++ cpsaExt
+      rm $ root ++ shapesRoot ++ graphExt
+      rm $ root ++ sasExt
+
+-- File Extensions
+
+sourceBasicExt :: String
+sourceBasicExt = ".scm"
+
+cpsaExt :: String
+cpsaExt = ".txt"
+
+shapesRoot :: String
+shapesRoot = "_shapes"
+
+sasExt :: String
+sasExt = "_sas.text"
+
+graphExt :: String
+graphExt = ".xhtml"
+
+-- Rule Interpreters
+
+-- Make output for root using rule
+make :: Rule -> FilePath -> IO ()
+make rule root =
+    do
+      let input = root ++ inputExt rule
+      let output = root ++ outputExt rule
+      done <- made input output
+      case done of
+        True -> return ()       -- Nothing to do
+        False -> run (prog rule) input output
+
+-- See if an output file is up-to-date
+made :: FilePath -> FilePath -> IO Bool
+made input output =
+    do
+      src <- doesFileExist input
+      dst <- doesFileExist output
+      case src && dst of
+        False -> return False
+        True ->
+            do
+              src <- getModificationTime input
+              dst <- getModificationTime output
+              return $ src < dst
+
+-- Run a program with input and output from files
+
+-- Print the command before running it.  Delete the output when the
+-- command fails.
+run :: String -> FilePath -> FilePath -> IO ()
+run prog input output =
+    do
+      let cmd = prog ++ " -o " ++ output ++ " " ++ input
+      putStrLn cmd
+      code <- system cmd
+      case code of
+        ExitSuccess -> return ()
+        ExitFailure _ ->
+            do
+              --rm output
+              fail "Command failed"
+
+-- Remove a file
+
+-- Prints the command when there is a file to be deleted.
+rm :: FilePath -> IO ()
+rm output =
+    do
+      exists <- doesFileExist output
+      case exists of
+        False -> return ()      -- File doesn't exist
+        True ->
+            do                  -- Print command before removal
+              putStrLn $ "rm " ++ output
+              removeFile output
+
+-- Return the roots of the CPSA source files in the current directory.
+
+roots :: [String] -> IO [FilePath]
+roots exts =
+    do
+      dir <- getCurrentDirectory
+      files <- getDirectoryContents dir
+      let roots = [ root |
+                    file <- files,
+                    let (root, ext) = splitExtension file,
+                    elem ext exts ] -- Filter for source files
+      return $ sort roots
+
+-- Build the shapes for all the source files in the current directory.
+
+build :: IO ()
+build =
+    do
+      probs <- roots [sourceBasicExt]
+      mapM_ cpsa probs
+
+-- Clean files generated for all the source files in the current directory.
+
+clean :: IO ()
+clean =
+    do
+      probs <- roots [sourceBasicExt]
+      mapM_ cleanse probs
diff --git a/doc/README b/doc/README
new file mode 100644
--- /dev/null
+++ b/doc/README
@@ -0,0 +1,38 @@
+This directory contains CPSA documentation.
+
+* index.html: Documentation starting point with some useful tips.
+
+* cpsauser.html: CPSA User Guide, an essential reference document
+
+* cpsaprimer.pdf: CPSA Primer, an introduction to using CPSA
+
+* cpsaoverview.pdf: Another attempt at a gentle introduction to CPSA
+
+* cpsagoals.pdf: CPSA and Formal Security Goals, an introduction
+  to reasoning about security goals using first-order logic.
+
+* cpsaspec.pdf: The CPSA Specification, a formal specification of the
+  algorithm
+
+* cpsadesign.pdf: CPSA Design, a description of implementation choices
+
+To build the documentation, you need Metapost and XY-pic.  On Linux,
+Metapost is supplied via the package texlive-metapost, and XY-pic is
+supplied in package texlive-pictures.  On some older versions of
+Linux, you may also have to install texlive-context.
+
+If you want to build the documentation from the sources, and you don't
+have and want to install the cmarrows package for Metapost, comment
+out the line in cpsadiagrams.mp that loads cmstrands.
+
+diff -u -r1.4 cpsadiagrams.mp
+--- doc/cpsadiagrams.mp	9 Oct 2009 19:33:53 -0000	1.4
++++ doc/cpsadiagrams.mp	10 Oct 2009 11:59:38 -0000
+@@ -13,7 +13,7 @@
+
+ input strands;
+
+-input cmstrands;		% Use CM arrows
++% input cmstrands;		% Use CM arrows
+
+ picture node; node = btex $\bullet$ etex;
diff --git a/doc/SDAG.lhs b/doc/SDAG.lhs
new file mode 100644
--- /dev/null
+++ b/doc/SDAG.lhs
@@ -0,0 +1,317 @@
+Strand Directed Acyclic Graphs
+
+Run this with
+
+  $ ghci SDAG.lhs
+
+> module SDAG where
+
+> import qualified Data.List as L
+> import qualified Data.Set as S
+
+The strands in a skeleton are represented by the natural numbers less
+than the number of strands in the skeleton.  The strands in a
+skeleton are describe by a list of integers, where each element of
+the list gives the height of its strand.
+
+> type Strands = [Int]          -- [Strand height]
+
+A node is a pair of natural numbers.  The first number is the node's
+strand, and the second is the position of the node within the strand.
+
+> type Node = (Int, Int)        -- (Strand, Position)
+
+Given a strand height list, the set of nodes are
+
+> nodes :: Strands -> [Node]
+> nodes heights =
+>     [(s, p) | (s, n) <- zip [0..] hts, p <- nats n]
+>     where hts = filter (0 <) heights -- remove non-positive heights
+
+where nats n is the list of natural numbers less than n.
+
+> nats :: Int -> [Int]
+> nats n = take n [0..]
+
+Thus for a skeleton with three strands, of height 2, 3, and 2, the
+nodes are
+
+  *SDAG> nodes [2,3,2]
+  [(0,0),(0,1),(1,0),(1,1),(1,2),(2,0),(2,1)]
+
+The edges in an SDAG represent the precedes relation.
+
+> type Edge = (Node, Node)      -- Precedes relation
+
+When (n0, n1) :: Edge, the message event at n0 precedes the one at n1.
+
+The strand succession edges are
+
+> successors :: Strands -> [Edge]
+> successors heights =
+>     [((s, p), (s, p + 1)) | (s, n) <- zip [0..] hts, p <- nats (n - 1)]
+>     where hts = filter (0 <) heights -- remove non-positive heights
+
+For a skeleton with three strands, of height 2, 3, and 2, the strand
+succession edges are
+
+  *SDAG> successors [2,3,2]
+  [((0,0),(0,1)),((1,0),(1,1)),((1,1),(1,2)),((2,0),(2,1))]
+
+A Strand Directed Acyclic Graph (SDAG) is a strand height list and a
+set of edges.  It represents an acyclic graph.
+
+> type SDAG = (Strands, [Edge])
+
+The normalized form of a SDAG contains no strand succession edges or
+elements in its transitive closure.
+
+> normalize :: SDAG -> SDAG
+> normalize (strands, precedes) =
+>     if isAcyclic (adj sdag) ns then
+>         sdag                  -- SDAG must be acyclic
+>     else
+>         error "SDAG has a cycle"
+>     where
+>       ns = nodes strands      -- Sort SDAG and remove duplicates
+>       sdag = (strands, L.sort (L.nub prec))
+>       prec = [(n0, n1) |
+>               (n0, n1) <- precedes,
+>               elem n0 ns,     -- Ensure n0 and n1 are in nodes
+>               elem n1 ns,     -- Remove strand succession edges
+>               not (sameStrands (n0, n1))]
+
+> sameStrands :: Edge -> Bool
+> sameStrands ((s0, _), (s1, _)) = s0 == s1
+
+The adjacency list representation of an SDAG is used to map a node to
+a list of its predecessors.  The adjacency list representation is
+[[[Node]]], and lookup involves list indexing.  The representation of
+an SDAG includes the strand succession edges.
+
+> adj :: SDAG -> Node -> [Node]
+> adj (strands, precedes) (s, p) =
+>     [ strand s h | (s, h) <- zip [0..] strands ] !! s !! p
+>     where
+>       strand s h = [ entry (s, p) | p <- nats h ]
+>       entry n = enrich n [ n0 | (n0, n1) <- precedes, n1 == n ]
+>       -- add strand succession edges
+>       enrich (s, p) ns
+>           | p > 0 = (s, p - 1) : ns
+>           | otherwise = ns
+
+Is graph acyclic?
+
+> isAcyclic :: Ord a => (a -> [a]) -> [a] -> Bool
+> isAcyclic adj nodes =
+>     all (not . backEdge numbering) (S.toList edges)
+>     where
+>       numbering = dfs adj (S.toList start)
+>       -- Remove nodes that have non-zero indegree
+>       start = S.difference (S.fromList nodes) (S.map fst edges)
+>       edges = foldl f S.empty nodes
+>       f edges src = foldl (g src) edges (adj src)
+>       g src edges dst = S.insert (dst, src) edges
+
+Compute a depth first search numbering of nodes using postorder.
+With postorder, only back edges go from a lower number to a higher
+one.  Assumes nodes, the set of nodes with indegree zero, is not empty.
+
+> dfs :: Ord a => (a -> [a]) -> [a] -> [(a, Int)]
+> dfs adj nodes =
+>     alist
+>     where
+>       (_, alist, _) = foldl po (0, [], S.empty) nodes
+>       po a@(num, alist, seen) node
+>          | S.member node seen = a
+>          | otherwise =
+>              (num' + 1, (node, num') : alist', seen'')
+>              where  -- Search is postorder because nodes at the end of
+>                (num', alist', seen'') = -- edges are explored before
+>                    foldl po (num, alist, seen') nodes' -- the node
+>                seen' = S.insert node seen -- Insert node as soon as
+>                nodes' = adj node          -- it's seen
+
+Is edge a back edge, meaning a cycle has been found?  If an edge
+contains a node that is not in the alist, it means it was not
+visited during the depth first seach.  This can happen when there
+is a strong component that has no edges from other strong
+components to it.  We report this edge to be a back edge so as to
+get the correct overall result.
+
+> backEdge :: Eq a => [(a, Int)] -> (a, a) -> Bool
+> backEdge alist (node, node') =
+>     case (lookup node alist, lookup node' alist) of
+>       (Just n, Just n') -> n >= n'
+>       _ -> True
+
+Compute the transitive reduction
+
+> reduce :: SDAG -> SDAG
+> reduce g@(strands, precedes) =
+>     (strands, filter essential precedes)
+>     where
+>       essential (dst, src) =
+>           loop dst (L.delete dst (adj g src)) [src]
+>       loop _ [] _ = True        -- No other path found
+>       loop dst (n : ns) seen
+>           | n == dst = False    -- There is another path
+>           | elem n seen = loop dst ns seen
+>           | otherwise = loop dst (adj g n ++ ns) (n : seen)
+
+Compute the transitive closure
+
+> close :: SDAG -> SDAG
+> close g@(strands, precedes) =
+>     normalize (strands, loop prec False prec)
+>     where
+>       prec = successors strands ++ precedes
+>       loop prec False [] = prec
+>       loop prec True [] =
+>           loop prec False prec -- restart loop
+>       loop prec repeat ((n0, n1) : pairs) =
+>           inner prec repeat pairs [(n, n1) | n <- adj g n0]
+>       inner prec repeat pairs [] =
+>           loop prec repeat pairs
+>       inner prec repeat pairs (p : rest)
+>           | elem p prec = inner prec repeat pairs rest
+>           | otherwise = inner (p : prec) True pairs rest
+
+Shorthands that check their arguments.
+
+> r :: SDAG -> SDAG
+> r = reduce . normalize
+
+> c :: SDAG -> SDAG
+> c = close . normalize
+
+Is x a proper sublist of y?
+
+> sublist :: Eq a => [a] -> [a] -> Bool
+> sublist x y =
+>     all (flip elem y) x &&    -- All x in y
+>     any (flip notElem x) y    -- Some y not in x
+
+The list of all sublists
+
+> sublists :: [a] -> [[a]]
+> sublists [] = [[]]
+> sublists (x:xs) = sublists xs ++ map (x:) (sublists xs)
+
+Compute all the SDAGs that are weaker than the given SDAG.
+
+> w :: SDAG -> [SDAG]
+> w sdag =
+>     let (s, es) = c sdag in
+>     L.nub [r |
+>            es0 <- sublists es,
+>            let r = reduce (s, es0),
+>            let (_, es1) = close (s, snd r),
+>            sublist es1 es]
+
+Examples
+
+  *SDAG> w ([2,2], [((0,0),(1, 1))])
+  [([2,2],[])]
+
+  *SDAG> w ([2,2], [((0,1),(1, 0))])
+  [([2,2],[]),
+   ([2,2],[((0,1),(1,1))]),
+   ([2,2],[((0,0),(1,1))]),
+   ([2,2],[((0,0),(1,0))]),
+   ([2,2],[((0,0),(1,0)),((0,1),(1,1))])]
+
+Compute the SDAGs in w x that are not weaker than a SDAG in w x.
+
+> m :: SDAG -> [SDAG]
+> m sdag =
+>     map reduce (filter maximal sdags)
+>     where
+>       sdags = map close (w sdag) -- All weaker SDAGs
+>       maximal sdag =          -- Is SDAG not weaker than some other
+>           not (any (weaker sdag) sdags)
+>       weaker (s0, es0) (s1, es1) =
+>           s0 == s1 && sublist es0 es1
+
+Examples
+
+  *SDAG> m ([2,2], [((0,0),(1, 1))])
+  [([2,2],[])]
+
+  *SDAG> m ([2,2], [((0,1),(1, 0))])
+  [([2,2],[((0,0),(1,0)),((0,1),(1,1))])]
+
+Compute the SDAGs in w x that are not weaker than a SDAG in w x using
+the implemented algorithm.
+
+> m' :: SDAG -> [SDAG]
+> m' sdag =
+>     let (s, es) = c sdag in
+>     L.nub [reduce (s, L.delete e es) | e <- snd (reduce sdag)]
+
+Read and show for CPSA orderings
+
+> data O = O [Edge]
+
+> instance Show O where
+>    showsPrec _ (O es) =
+>         showString "(precedes" . showl es
+>         where
+>           showl [] = showChar ')'
+>           showl (e : es) = showChar ' ' . shows (E e) . showl es
+
+> instance Read O where
+>     readsPrec _ s0 =
+>         [(O ord, s3) |
+>          ("(", s1) <- lex s0,
+>          ("precedes", s2) <- lex s1,
+>          (ord, s3) <- readl s2]
+>         where
+>           readl s0 = [([], s1) |
+>                       (")", s1) <- lex s0] ++
+>                      [(e : es, s2) |
+>                       (E e, s1) <- reads s0,
+>                       (es, s2) <- readl s1]
+
+A guess at the strand height list associated with some edges
+
+> strands :: [Edge] -> Strands
+> strands es =
+>     [height s | s <- nats n]
+>     where
+>       n = 1 + foldl max 0 (map fst nodes)
+>       nodes = L.nub (foldl (\ns (n0, n1) -> n0 : n1 : ns) [] es)
+>       height s = 1 + foldl max 0 [p | (s', p) <- nodes, s' == s]
+
+Read and show for edges
+
+> data E = E Edge
+
+> instance Show E where
+>     showsPrec _ (E (n0, n1)) =
+>         showChar '(' . shows (N n0) . showChar ' ' .
+>                 shows (N n1) . showChar ')'
+
+> instance Read E where
+>     readsPrec _ s0 =
+>         [(E (n0, n1), s4) |
+>          ("(", s1) <- lex s0,
+>          (N n0, s2) <- reads s1,
+>          (N n1, s3) <- reads s2,
+>          (")", s4) <- lex s3]
+
+Read and show for nodes
+
+> data N = N Node
+
+> instance Show N where
+>     showsPrec _ (N (s, p)) =
+>         showChar '(' . shows s . showChar ' ' . shows p . showChar ')'
+
+> instance Read N where
+>     readsPrec _ s0 =
+>         [(N (s, p), s4) |
+>          ("(", s1) <- lex s0,
+>          (s, s2) <- reads s1,
+>          (p, s3) <- reads s2,
+>          (")", s4) <- lex s3]
diff --git a/doc/blanchet.scm b/doc/blanchet.scm
new file mode 100644
--- /dev/null
+++ b/doc/blanchet.scm
@@ -0,0 +1,88 @@
+(herald "Blanchet's Simple Example Protocol"
+  (comment "There is a flaw in this protocol by design"))
+
+(defprotocol blanchet basic
+  (defrole init
+    (vars (a b name) (s skey) (d data))
+    (trace
+     (send (enc (enc s (privk a)) (pubk b)))
+     (recv (enc d s))))
+  (defrole resp
+    (vars (a b name) (s skey) (d data))
+    (trace
+     (recv (enc (enc s (privk a)) (pubk b)))
+     (send (enc d s))))
+  (comment "Blanchet's protocol using named asymmetric keys"))
+
+(defskeleton blanchet
+  (vars (a b name) (s skey) (d data))
+  (defstrand init 2 (a a) (b b) (s s) (d d))
+  (non-orig (privk b))
+  (uniq-orig s)
+  (comment "Analyze from the initiator's perspective"))
+
+(defskeleton blanchet
+  (vars (a b name) (s skey) (d data))
+  (defstrand init 2 (a a) (b b) (s s) (d d))
+  (deflistener d)
+  (non-orig (privk b))
+  (uniq-orig s d)
+  (comment "From the initiator's perspective, is the secret leaked?"))
+
+(defskeleton blanchet
+  (vars (a b name) (s skey) (d data))
+  (defstrand resp 2 (a a) (b b) (s s) (d d))
+  (non-orig (privk a) (privk b))
+  (uniq-orig s)
+  (comment "Analyze from the responder's perspective"))
+
+(defskeleton blanchet
+  (vars (a b name) (s skey) (d data))
+  (defstrand resp 2 (a a) (b b) (s s) (d d))
+  (deflistener d)
+  (non-orig (privk a) (privk b))
+  (uniq-orig s d)
+  (comment "From the responders's perspective, is the secret leaked?"))
+
+(defprotocol blanchet-fixed basic
+  (defrole init
+    (vars (a b name) (s skey) (d data))
+    (trace
+     (send (enc (enc s b (privk a)) (pubk b)))
+     (recv (enc d s))))
+  (defrole resp
+    (vars (a b name) (s skey) (d data))
+    (trace
+     (recv (enc (enc s b (privk a)) (pubk b)))
+     (send (enc d s))))
+  (comment "Fixed Blanchet's protocol using named asymmetric keys"))
+
+(defskeleton blanchet-fixed
+  (vars (a b name) (s skey) (d data))
+  (defstrand init 2 (a a) (b b) (s s) (d d))
+  (non-orig (privk b))
+  (uniq-orig s)
+  (comment "Analyze from the initiator's perspective"))
+
+(defskeleton blanchet-fixed
+  (vars (a b name) (s skey) (d data))
+  (defstrand init 2 (a a) (b b) (s s) (d d))
+  (deflistener d)
+  (non-orig (privk b))
+  (uniq-orig s d)
+  (comment "From the initiator's perspective, is the secret leaked?"))
+
+(defskeleton blanchet-fixed
+  (vars (a b name) (s skey) (d data))
+  (defstrand resp 2 (a a) (b b) (s s) (d d))
+  (non-orig (privk a) (privk b))
+  (uniq-orig s)
+  (comment "Analyze from the responder's perspective"))
+
+(defskeleton blanchet-fixed
+  (vars (a b name) (s skey) (d data))
+  (defstrand resp 2 (a a) (b b) (s s) (d d))
+  (deflistener d)
+  (non-orig (privk a) (privk b))
+  (uniq-orig s d)
+  (comment "From the responders's perspective, is the secret leaked?"))
diff --git a/doc/cpsa.mk b/doc/cpsa.mk
deleted file mode 100644
--- a/doc/cpsa.mk
+++ /dev/null
@@ -1,46 +0,0 @@
-# Makefile rules for CPSA
-
-# Suggested CPSA flags include a memory use limit:
-# CPSAFLAGS = +RTS -M512m -RTS
-
-# Analyze protocols for shapes
-%.txt:		%.scm
-	$(CPSATIME) cpsa $(CPSAFLAGS) -o $@ $<
-
-# Preprocess by transforming defprot forms into defprotocol
-%.scm:		%.prot
-	cpsaprot $(CPSAPROTFLAGS) -o $@ $<
-
-# Analyze protocols for shapes, but don't fail when CPSA does
-%.txt:		%.lsp
-	-$(CPSATIME) cpsa $(CPSAFLAGS) -o $@ $<
-
-# Extract shapes
-%_shapes.txt:	%.txt
-	cpsashapes $(SHAPESFLAGS) -o $@ $<
-
-# Extract shape analysis sentences
-%_sas.text:	%.txt
-	cpsasas $(SASFLAGS) -o $@ $<
-
-# Annotate shapes
-%_annotations.txt:	%_shapes.txt
-	cpsaannotations $(ANNOTATIONSFLAGS) -o $@ $<
-
-# Compute protocol parameters
-%_parameters.txt:	%_shapes.txt
-	cpsaparameters $(PARAMETERSFLAGS) -o $@ $<
-
-# Visualize output using the expanded format (default)
-%.xhtml:	%.txt
-	cpsagraph $(GRAPHFLAGS) -o $@ $<
-
-# Visualize output using the compact format
-%.svg:		%.txt
-	cpsagraph -c -o $@ $<
-
-# Visualize output using the LaTeX format
-%.tex:		%.txt
-	cpsagraph -l -m 62 -o $@ $<
-
-.PRECIOUS:	%.txt %_shapes.txt %_annotations.txt
diff --git a/doc/cpsa4.mk b/doc/cpsa4.mk
new file mode 100644
--- /dev/null
+++ b/doc/cpsa4.mk
@@ -0,0 +1,38 @@
+# Makefile rules for CPSA
+
+# Suggested CPSA flags include a memory use limit:
+# CPSAFLAGS = +RTS -M512m -N -RTS
+
+# Analyze protocols for shapes
+%.txt:		%.scm
+	$(CPSATIME) cpsa4 $(CPSAFLAGS) -o $@ $<
+
+# Preprocess by transforming defprot forms into defprotocol
+%.scm:		%.prot
+	cpsa4prot $(CPSAPROTFLAGS) -o $@ $<
+
+# Analyze protocols for shapes, but don't fail when CPSA does
+%.txt:		%.lsp
+	-$(CPSATIME) cpsa4 $(CPSAFLAGS) -o $@ $<
+
+# Extract shapes
+%_shapes.txt:	%.txt
+	cpsa4shapes $(SHAPESFLAGS) -o $@ $<
+
+# Extract shape analysis sentences
+%_sas.text:	%.txt
+	cpsa4sas $(SASFLAGS) -o $@ $<
+
+# Visualize output using the expanded format (default)
+%.xhtml:	%.txt
+	cpsa4graph $(GRAPHFLAGS) -o $@ $<
+
+# Visualize output using the compact format
+%.svg:		%.txt
+	cpsa4graph -c -o $@ $<
+
+# Visualize output using the LaTeX format
+%.tex:		%.txt
+	cpsa4graph -l -m 62 -o $@ $<
+
+.PRECIOUS:	%.txt %_shapes.txt
diff --git a/doc/cpsa4manual.pdf b/doc/cpsa4manual.pdf
new file mode 100644
Binary files /dev/null and b/doc/cpsa4manual.pdf differ
diff --git a/doc/cpsa4roletran.md b/doc/cpsa4roletran.md
new file mode 100644
--- /dev/null
+++ b/doc/cpsa4roletran.md
@@ -0,0 +1,183 @@
+# CPSA4 Roletran
+
+The Cryptographic Protocol Shapes Analyzer (CPSA) attempts to
+enumerate all essentially different executions possible for a
+cryptographic protocol.  We call them the shapes of the
+protocol. Naturally occurring protocols have only finitely many,
+indeed very few shapes.  Authentication and secrecy properties are
+easy to determine from them, as are attacks and anomalies.
+
+For each input problem, the CPSA program is given some initial
+behavior, and it discovers what shapes are compatible with it.
+Normally, the initial behavior is from the point of view of one
+participant.  The analysis reveals what the other participants must
+have done, given the participant's view.  The search is complete,
+i.e. we proved every shape can in fact be found in a finite number of
+steps, relative to a procedural semantics of protocol roles.
+
+When we say a role has natural role semantics, we mean that there
+exists a program that implements the intent of the specified role.
+Until now, establishing the correspondence between a CPSA role and its
+implementation has been informal.  It requires a programmer that is
+well versed in the semantics of CPSA.  As the messages used in roles
+become more complex, the likelihood of errors in the correspondence
+increases, even when employing the best programmer/CPSA expert.  The
+`cpsa4roletran` compiler automates the translation of a CPSA role into
+a language independent procedure.  It uses the same algorithms
+implemented in CPSA to ensure a faithful translation.
+
+This document describes the use of the compiler.  It assumes the
+reader is experienced with CPSA4, version four of CPSA.  This version
+of CPSA is required because channels play an essential part in the
+translation.
+
+In typical usage, protocols are analyzed using CPSA4 to ensure they
+achieve desired security goals before any attempt is made to construct
+programs that implement them.
+
+## Input
+
+`cpsa4roletran` translates an annotated CPSA4 role into a language
+independent procedure.  The translator consumes the first protocol
+that appears in a CPSA4 input file, and ignores everything else in the
+file.  Within the protocol, the translators ignores everything but the
+protocol name and the role definitions.
+
+There are two syntactic constraints on roles accepted by `cpsa4roletran`.
+
+ * Every messaging event in the trace of a role must occur on a channel.
+
+ * Every role must include two fields particular to `cpsa4roletran`:
+   `inputs` and `outputs`.  The `inputs` specify the terms that become
+   the formal parameters of the generated procedure.  The `inputs`
+   must include all channel variables that occur in the role's trace.
+   The `outputs` contain the terms returned by the generated
+   procedure.
+
+The translator ignores all fields in a role definition except its
+name, `vars`, `trace`, `uniq-orig`, `inputs`, and `outputs`.
+
+The translator performs various checks to ensure that each role read
+is well formed.  It ensures the each term in the inputs is either a
+basic value or a channel.  It ensures that any basic value assumed to
+be uniquely originating originates in the role's trace, and that no
+uniquely originating value is in the inputs.  It ensures that no input
+variable is specified as an output.  It also ensures that every
+variable in terms that occur in the inputs, outputs, or are assumed to
+be uniquely originating also occur in the role's trace.
+
+Finally, a role must be executable.  A role is *executable* iff
+
+ * each transmitted term can be built from the inputs and previously
+   sent and received terms;
+
+ * each received term can be destructured into previously seen basic
+   values and hashes; and
+
+ * each output term can be build from the inputs and previously sent
+   and received terms.
+
+### Input Example
+
+Here is a protocol that performs unilateral authentication.  Its roles
+have been annotated for `cpsa4roletran`.
+
+```
+(defprotocol unilateral basic
+  (defrole init
+    (vars (ch chan) (n text) (k akey))
+    (trace
+     (send ch (enc n k))
+     (recv ch n))
+    (uniq-orig n)
+    (inputs ch k)
+    (outputs n))
+  (defrole resp
+    (vars (ch chan) (n text) (k akey))
+    (trace
+     (recv ch (enc n k))
+     (send ch n))
+    (inputs ch (invk k))
+    (outputs n)))
+```
+
+The initiator role `init` creates a fresh nonce `n` and sends it on
+channel `ch` encrypted with public asymmetric key `k`.  To perform the
+encryption, the inputs include the key.  The initiator concludes that
+it is communicating with a party that possesses the private companion
+key by receiving a nonce unencrypted and ensuring it is what it sent.
+
+The responder role `resp` receives the encrypted nonce, and decrypts
+with the private key `(invk k)`.  To do the decryption, the inputs
+include that key.  In this example, both roles return the nonce for
+use by other parts of the program.
+
+## Output
+
+The compiler generates a language independent procedure for each role
+in the input protocol.  A user need not understand the details of the
+generated code, but a rough understanding can be helpful when the code
+generated is unexpected.  It could mean that the CPSA role specifies
+something other that what its author intended.
+
+The structure of a generated procedure is:
+
+```
+(comment "Role: NAME (FILE_POSITION)")
+(defproc NAME (PARAMS) (OUTPUTS) STMTS)
+```
+
+where NAME is the name of the role, FILE_POSITION is the location of
+the role's definition in the source file, PARAMS are the input
+parameters of the procedure, OUTPUTS is the output types of the
+procedure, and STMTS is the statements that make up the body of the
+procedure.
+
+There are six kinds of statements.
+
+- `(let (VAR TYPE) EXPR)` binds variable VAR to the results of
+  expression EXPR.
+- `(let (VAR TYPE) (recv CVAR))` binds variable VAR to the results of
+  reading a message on channel CVAR.
+- `(send CVAR VAR)` transmits the contents of variable VAR on channel
+  CVAR.
+- `(same VAR1 VAR2)` ensures the contents of VAR1 agrees with what is
+  in VAR2.
+- `(return VAR ...)` returns the contents of a sequence of variables
+  from the procedure.
+
+Finally, there is a comment statement for each message event that
+tells where the event being translated occurs in the source file.
+
+Expressions are self explanatory.  They include pairing, projection,
+encryption, decryption, hashing, and nonce generation.  The names of
+procedures called in expressions include letters that follow the
+underscore character which specify type information.  This part of the
+procedure name can be safely ignored.
+
+### Init Role Example
+
+The code generated for the `init` role in the unilateral protocol
+follows.  Notice how this code agrees with the description of the
+role.
+
+```
+(comment "Role: init (rtst/unilateral.scm:6:3)")
+
+(defproc init ((p0 chan) (p1 akey)) (text)
+  (comment "Send (rtst/unilateral.scm:9:7)")
+  (let (v2 text) (frsh_t))
+  (let (v3 aenc) (encr_ta v2 p1))
+  (send_m p0 v3)
+  (comment "Recv (rtst/unilateral.scm:10:7)")
+  (let (v4 text) (recv_t p0))
+  (same_t v4 v2)
+  (return v2))
+```
+
+The initiator role `init` creates a fresh nonce `n` (`v2`) and sends
+it on channel `ch` (`p0`) encrypted with public asymmetric key `k`
+(`p1`).  To perform the encryption, the inputs include the key.  The
+initiator concludes that it is communicating with a party that
+possesses the private companion key by receiving a nonce unencrypted
+(`v4`) and ensuring it is what it sent `(same_t v4 v2)`.
diff --git a/doc/cpsadesign.pdf b/doc/cpsadesign.pdf
new file mode 100644
Binary files /dev/null and b/doc/cpsadesign.pdf differ
diff --git a/doc/cpsafoundation.pdf b/doc/cpsafoundation.pdf
new file mode 100644
Binary files /dev/null and b/doc/cpsafoundation.pdf differ
diff --git a/doc/cpsagoals.pdf b/doc/cpsagoals.pdf
new file mode 100644
Binary files /dev/null and b/doc/cpsagoals.pdf differ
diff --git a/doc/cpsaintroslides.pdf b/doc/cpsaintroslides.pdf
new file mode 100644
Binary files /dev/null and b/doc/cpsaintroslides.pdf differ
diff --git a/doc/cpsalogo.mp b/doc/cpsalogo.mp
new file mode 100644
--- /dev/null
+++ b/doc/cpsalogo.mp
@@ -0,0 +1,51 @@
+outputformat := "svg";
+outputtemplate := "%j.svg";
+prologues := 3;
+
+verbatimtex
+\documentclass[12pt]{article}
+\begin{document}
+etex
+
+input boxes;
+
+input strands;
+
+input cmstrands;		% Use CM arrows
+
+color mitreblue;
+mitreblue      = (0,70/255,174/255); % MITRE blue PMS 293 Blue
+
+picture node; node = btex $\bullet$ etex;
+
+% The height of a downarrow is the unit of length for a strand
+% succession edge.
+
+numeric delta;
+begingroup;
+  path p; p = bbox(btex $\downarrow$ etex);
+  delta = ypart(ulcorner p - llcorner p);
+endgroup;
+
+pair w; w = (2cm, 0);		% Width of diagram
+
+beginfig(1);
+
+    % Strand for principal A
+  strand.a(2, origin, delta, node, node);
+
+  % Strand for principal B
+  strand.b(2, w, delta, node, node);
+
+  drawmsg(a1.e -- b1.w);
+  drawmsg(b2.w -- a2.e);
+
+  boxit.t(btex \Large\sf CPSA etex); t.c = .5[a2.c, b1.c];
+  draw pic t withcolor mitreblue;
+
+endfig;
+
+verbatimtex
+\end{document}
+etex
+bye;
diff --git a/doc/cpsalogo.svg b/doc/cpsalogo.svg
new file mode 100644
--- /dev/null
+++ b/doc/cpsalogo.svg
@@ -0,0 +1,50 @@
+<?xml version="1.0"?>
+<!-- Created by MetaPost 1.9991 on 2018.01.24:1640 -->
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="65.445358" height="34.526352" viewBox="0 0 65.445358 34.526352">
+<!-- Original BoundingBox: -4.389099 -4.303909 61.056259 30.222443 -->
+  <defs>
+    <g transform="scale(0.009963,0.009963)" id="GLYPHcmsy10_15">
+      <path style="fill-rule: evenodd;" d="M444.000000 -250.000000C444.000000 -357.000000,355.000000 -444.000000,250.000000 -444.000000C142.000000 -444.000000,55.000000 -355.000000,55.000000 -250.000000C55.000000 -144.000000,142.000000 -56.000000,250.000000 -56.000000C355.000000 -56.000000,444.000000 -143.000000,444.000000 -250.000000"></path>
+    </g>
+    <g transform="scale(0.017215,0.017215)" id="GLYPHcmss17_65">
+      <path style="fill-rule: evenodd;" d="M355.000000 -694.000000L269.000000 -694.000000L26.000000 -0.000000L102.000000 -0.000000L172.000000 -202.000000L440.000000 -202.000000L511.000000 -0.000000L598.000000 -0.000000M421.000000 -258.000000L191.000000 -258.000000C239.000000 -398.000000,299.000000 -572.000000,306.000000 -617.000000L307.000000 -617.000000C314.000000 -576.000000,334.000000 -516.000000,351.000000 -465.000000"></path>
+    </g>
+    <g transform="scale(0.017215,0.017215)" id="GLYPHcmss17_67">
+      <path style="fill-rule: evenodd;" d="M547.000000 -115.000000C480.000000 -70.000000,449.000000 -57.000000,368.000000 -57.000000C228.000000 -57.000000,146.000000 -208.000000,146.000000 -346.000000C146.000000 -493.000000,230.000000 -638.000000,372.000000 -638.000000C436.000000 -638.000000,478.000000 -620.000000,529.000000 -588.000000L543.000000 -667.000000C495.000000 -691.000000,434.000000 -702.000000,373.000000 -702.000000C181.000000 -702.000000,62.000000 -525.000000,62.000000 -346.000000C62.000000 -149.000000,203.000000 7.000000,363.000000 7.000000C449.000000 7.000000,479.000000 -0.000000,553.000000 -47.000000"></path>
+    </g>
+    <g transform="scale(0.017215,0.017215)" id="GLYPHcmss17_80">
+      <path style="fill-rule: evenodd;" d="M329.000000 -289.000000C449.000000 -289.000000,547.000000 -382.000000,547.000000 -492.000000C547.000000 -600.000000,453.000000 -694.000000,323.000000 -694.000000L89.000000 -694.000000L89.000000 -0.000000L173.000000 -0.000000L173.000000 -289.000000M301.000000 -638.000000C417.000000 -638.000000,468.000000 -565.000000,468.000000 -492.000000C468.000000 -424.000000,421.000000 -347.000000,301.000000 -347.000000L171.000000 -347.000000L171.000000 -638.000000"></path>
+    </g>
+    <g transform="scale(0.017215,0.017215)" id="GLYPHcmss17_83">
+      <path style="fill-rule: evenodd;" d="M437.000000 -661.000000C393.000000 -687.000000,345.000000 -710.000000,264.000000 -710.000000C135.000000 -710.000000,52.000000 -615.000000,52.000000 -518.000000C52.000000 -480.000000,63.000000 -437.000000,102.000000 -393.000000C141.000000 -349.000000,185.000000 -337.000000,241.000000 -323.000000C264.000000 -317.000000,303.000000 -306.000000,310.000000 -303.000000C366.000000 -281.000000,393.000000 -230.000000,393.000000 -182.000000C393.000000 -119.000000,344.000000 -52.000000,257.000000 -52.000000C227.000000 -52.000000,139.000000 -57.000000,56.000000 -133.000000L42.000000 -54.000000C124.000000 6.000000,213.000000 16.000000,258.000000 16.000000C381.000000 16.000000,469.000000 -81.000000,469.000000 -191.000000C469.000000 -231.000000,457.000000 -282.000000,415.000000 -329.000000C374.000000 -374.000000,338.000000 -384.000000,256.000000 -406.000000C209.000000 -418.000000,179.000000 -426.000000,154.000000 -457.000000C137.000000 -479.000000,128.000000 -500.000000,128.000000 -527.000000C128.000000 -583.000000,176.000000 -644.000000,264.000000 -644.000000C308.000000 -644.000000,365.000000 -635.000000,423.000000 -581.000000"></path>
+    </g>
+  </defs>
+  <g transform="matrix(1.199997,-0.000000,-0.000000,1.199997,1.011200 32.656708)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
+    <use xlink:href="#GLYPHcmsy10_15"></use>
+  </g>
+  <g transform="matrix(1.199997,-0.000000,-0.000000,1.199997,1.011200 6.716492)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
+    <use xlink:href="#GLYPHcmsy10_15"></use>
+  </g>
+  <path d="M4.000092 24.343628C4.667618 22.105804,6.253876 20.257187,8.363190 19.257355L8.363113 18.659592C7.411346 19.110306,6.553085 19.715561,5.818237 20.442551L5.220383 20.442612L5.220398 21.093384C4.740494 21.668762,4.329910 22.303192,4.000046 22.984146L4.000107 22.984146C3.670197 22.303223,3.259613 21.668823,2.779678 21.093506L2.779663 20.442719L2.181839 20.442734C1.440277 19.709198,0.573044 19.099594,-0.389099 18.647720L-0.389099 19.245529C1.733185 20.242279,3.329758 22.096710,4.000092 24.343628Z" style="stroke:rgb(0.000000%,0.000000%,0.000000%); stroke-width: 0.000000;fill: rgb(0.000000%,0.000000%,0.000000%);"></path>
+  <path d="M5.519257 9.716492L5.519257 15.079468L5.519257 20.442413" style="stroke:rgb(0.000000%,0.000000%,0.000000%); stroke-width: 0.597763;stroke-linecap: round;stroke-linejoin: round;stroke-miterlimit: 10.000000;fill: none;"></path>
+  <path d="M2.480743 9.716492L2.480743 15.079468L2.480743 20.442413" style="stroke:rgb(0.000000%,0.000000%,0.000000%); stroke-width: 0.597763;stroke-linecap: round;stroke-linejoin: round;stroke-miterlimit: 10.000000;fill: none;"></path>
+  <g transform="matrix(1.199997,-0.000000,-0.000000,1.199997,57.704102 32.656708)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
+    <use xlink:href="#GLYPHcmsy10_15"></use>
+  </g>
+  <g transform="matrix(1.199997,-0.000000,-0.000000,1.199997,57.704102 6.716492)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
+    <use xlink:href="#GLYPHcmsy10_15"></use>
+  </g>
+  <path d="M60.692780 24.343628C61.360306 22.105804,62.946701 20.257187,65.056259 19.257355L65.056137 18.659592C64.104263 19.110306,63.245911 19.715561,62.511002 20.442551L61.913071 20.442612L61.913101 21.093384C61.433151 21.668762,61.022552 22.303192,60.692673 22.984146L60.692734 22.984146C60.362762 22.303223,59.952072 21.668823,59.472061 21.093506L59.472031 20.442719L58.874100 20.442703C58.139069 19.715790,57.280640 19.110596,56.328705 18.659988L56.328781 19.257797C58.438431 20.257446,60.024994 22.105896,60.692780 24.343628Z" style="stroke:rgb(0.000000%,0.000000%,0.000000%); stroke-width: 0.000000;fill: rgb(0.000000%,0.000000%,0.000000%);"></path>
+  <path d="M62.212158 9.716492L62.212158 15.079468L62.212158 20.442413" style="stroke:rgb(0.000000%,0.000000%,0.000000%); stroke-width: 0.597763;stroke-linecap: round;stroke-linejoin: round;stroke-miterlimit: 10.000000;fill: none;"></path>
+  <path d="M59.173645 9.716492L59.173645 15.079468L59.173645 20.442413" style="stroke:rgb(0.000000%,0.000000%,0.000000%); stroke-width: 0.597763;stroke-linecap: round;stroke-linejoin: round;stroke-miterlimit: 10.000000;fill: none;"></path>
+  <path d="M54.702011 4.060913C52.956543 4.858185,51.722275 6.469849,51.408112 8.362030L50.810287 8.362152C51.074326 6.771713,51.914078 5.353363,53.143387 4.359619L53.143387 4.359650L53.143402 3.761932L53.143417 3.761993C51.920288 2.771896,51.082809 1.360718,50.814301 -0.222397L51.412125 -0.222443C51.732727 1.662262,52.963913 3.266052,54.702042 4.060974Z" style="stroke:rgb(0.000000%,0.000000%,0.000000%); stroke-width: 0.000000;fill: rgb(0.000000%,0.000000%,0.000000%);"></path>
+  <path d="M9.988800 4.059784L53.145050 4.059784" style="stroke:rgb(0.000000%,0.000000%,0.000000%); stroke-width: 0.597763;stroke-linecap: round;stroke-linejoin: round;stroke-miterlimit: 10.000000;fill: none;"></path>
+  <path d="M9.987793 30.000275C11.727356 29.205750,12.961548 27.602890,13.285721 25.719345L13.883514 25.719360C13.612000 27.301498,12.771866 28.711838,11.546906 29.701401L11.546921 29.701355L11.546921 30.299057L11.546921 30.299011C12.778091 31.293289,13.620529 32.712494,13.887604 34.303909L13.289810 34.303909C12.972061 32.410522,11.734756 30.797882,9.987793 30.000214Z" style="stroke:rgb(0.000000%,0.000000%,0.000000%); stroke-width: 0.000000;fill: rgb(0.000000%,0.000000%,0.000000%);"></path>
+  <path d="M54.704102 30.000000L11.547852 30.000000" style="stroke:rgb(0.000000%,0.000000%,0.000000%); stroke-width: 0.597763;stroke-linecap: round;stroke-linejoin: round;stroke-miterlimit: 10.000000;fill: none;"></path>
+  <g transform="translate(12.141144 23.007492)" style="fill: rgb(0.000000%,27.450562%,68.235779%);">
+    <use xlink:href="#GLYPHcmss17_67"></use>
+    <use xlink:href="#GLYPHcmss17_80" x="10.382024"></use>
+    <use xlink:href="#GLYPHcmss17_83" x="20.743202"></use>
+    <use xlink:href="#GLYPHcmss17_65" x="29.771055"></use>
+  </g>
+</svg>
diff --git a/doc/cpsamanual.pdf b/doc/cpsamanual.pdf
deleted file mode 100644
Binary files a/doc/cpsamanual.pdf and /dev/null differ
diff --git a/doc/cpsaprimer.pdf b/doc/cpsaprimer.pdf
new file mode 100644
Binary files /dev/null and b/doc/cpsaprimer.pdf differ
diff --git a/doc/cpsaspec.pdf b/doc/cpsaspec.pdf
new file mode 100644
Binary files /dev/null and b/doc/cpsaspec.pdf differ
diff --git a/doc/cpsauser.html b/doc/cpsauser.html
new file mode 100644
--- /dev/null
+++ b/doc/cpsauser.html
@@ -0,0 +1,1077 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <meta http-equiv="content-type"
+  content="application/xhtml+xml; charset=UTF-8" />
+  <title>CPSA 4.3 User Guide</title>
+  <meta name="generator" content="Amaya 9.54, see http://www.w3.org/Amaya/" />
+  <style type="text/css">
+    h1 { text-align: center }
+    body { background: white; color: black; max-width: 48em }
+  </style>
+</head>
+
+<body>
+<h1>CPSA 4.3 User Guide</h1>
+
+<p>The Cryptographic Protocol Shapes Analyzer (CPSA) attempts to enumerate all
+essentially different executions possible for a cryptographic protocol. We call
+them the <i>shapes</i> of the protocol. Naturally occurring protocols have only
+finitely many, indeed very few shapes. Authentication and secrecy properties
+are easy to determine from them, as are attacks and anomalies.</p>
+
+<p>For each input problem, the CPSA program is given some initial
+behavior, and it discovers what shapes are compatible with
+it. Normally, the initial behavior is from the point of view of one
+participant. The analysis reveals what the other participants must
+have done, given the participant's view. The search is based on a
+high-level algorithm that was claimed to be complete, i.e. every shape
+can in fact be found in a finite number of steps. Further theoretical
+work showed classes of executions that are not found by the algorithm,
+however it also showed that every omitted execution requires an
+unnatural interpretation of a protocol's roles.  Hence the algorithm
+is complete relative to natural role semantics.</p>
+
+<p>The analyzer is designed to work well with other
+  tools. S-expressions are used for both input and output. The
+  analyzer reads all the problems in its input, writes out the
+  solution to each problem, and then exits. This release contains nine
+  tools.  The <a href="#cpsainit"><code>cpsa4init</code></a> program
+  copies a Makefile and a Haskell script for use
+  with <code>ghci</code> into the current directory.  They orchestrate
+  the use of the other tools.
+  The <a href="#cpsagraph"><code>cpsa4graph</code></a> program
+  provides a visualization of answers using Scalable Vector Graphics
+  (<a href="http://www.w3.org/Graphics/SVG/">SVG</a>).
+  The <a href="#cpsashapes"><code>cpsa4shapes</code></a> program
+  removes intermediate results from analyzer runs making the shapes
+  easy to identify.
+  The <a href="#cpsadiff"><code>cpsa4diff</code></a> program compares
+  CPSA output files S-expression by S-expression, and prints the first
+  skeleton that differs.
+  The <a href="#cpsasas"><code>cpsa4sas</code></a> program logical
+  formula that can be used to ensure security goals are achieved.
+  The <a href="#cpsagoalsat"><code>cpsa4goalsat</code></a> program
+  prints skeletons that do not satisfy the goal associated with the
+  point of view skeleton.  The
+  <a href="#cpsaprot"><code>cpsa4prot</code></a> program translates
+  protocols expressed in Alice and Bob notation into
+  CPSA's <code>defprotocol</code> syntax.
+  <a href="#cpsapp"><code>cpsa4pp</code></a> program pretty prints its
+  input using a CPSA specific algorithm.  It also translates
+  S-Expressions into JavaScript Object Notation
+  (<a href="http://json.org">JSON</a>) to ease processing in other
+  languages.  The
+  <a href="#cpsajson"><code>cpsa4json</code></a> program translates
+  JSON encoded CPSA into CPSA S-Expressions. Finally,
+  the <a href="#cpsa42latex"><code>cpsa42latex</code></a> program
+  translates CPSA macros into equivalent LaTeX macros.</p>
+
+<p>The input syntax is essentially the same as the output syntax. A
+  Lisp aware editor will pretty print input, and the output is pretty
+  printed. We use Emacs' Scheme mode to prepare input. This document
+  describes the syntax, but provides little assistance for its
+  interpretation. See the <a href="cpsaprimer.pdf">CPSA Primer</a> and
+  <a href="cpsagoals.pdf">CPSA Security Goals and Rules</a> for more
+  information.</p>
+
+<p>The typical pattern of usage is to enter the set of problems to be analyzed
+into a file, in this example, <code>prob.scm</code>, analyze the problems, and if
+something interesting is produced, visualize the answers.</p>
+
+<blockquote>
+  <pre>$ cpsa4 +RTS -M512m -RTS -o prob.txt prob.scm
+$ cpsa4graph -o prob.xhtml prob.txt
+$ firefox -remote "openFile(`pwd`/prob.xhtml)"</pre>
+</blockquote>
+
+<p>Often a summary of the analysis is more enlightening.</p>
+
+<blockquote>
+  <pre>$ cpsa4shapes -o prob_shapes.txt prob.txt
+$ cpsa4graph -o prob_shapes.xhtml prob_shapes.txt
+$ firefox -remote "openFile(`pwd`/prob_shapes.xhtml)"</pre>
+</blockquote>
+
+<p id="make"> The <a href="#cpsainit"><code>cpsa4init</code></a>
+  program creates the file <a href="cpsa4.mk"><code>cpsa4.mk</code></a>
+  for inclusion into your makefile. A sample makefile is also created.</p>
+
+<p>The CPSA program
+  is <a href="http://www.gnu.org/software/emacs/">Emacs</a> friendly.
+  If you run the above <code>makefile</code> via &quot;<kbd>M-x
+  compile</kbd>&quot;, the results will be displayed in a buffer in
+  Compilation Mode.  The command &quot;<kbd>C-x `</kbd>&quot; will visit
+  the locus of the next error message or match (<code>next-error</code>)
+  in your CPSA input file.</p>
+
+<p>For platforms without GNU <code>make</code>, the Haskell
+ program <a href="make4.hs"><code>make4.hs</code></a> can be loaded
+ into a Haskell interpreter and perform a similar function. Users are
+ expected to copy the makefile or the Haskell program into the
+ directory containing a set of analysis problems
+ using <a href="#cpsainit"><code>cpsa4init</code></a>, and then modify
+ a file so it specifies the command line flags appropriate for the
+ problems in the directory.</p>
+
+<h2>Syntax</h2>
+
+<p>The syntax is extensible. Association lists in which the key is always a
+symbol are allowed at various points in the grammar. Key-value pairs with
+unrecognized keys are ignored, and are available for use by other tools. On
+output, unrecognized key-value pairs are preserved when printing protocols, but
+elided when printing skeletons, with the exception of the <code>comment</code>
+key.</p>
+
+<p>The input is an option herald form followed by a sequence of
+protocol definitions and problem statements.
+A <a href="#usage">herald form</a> allows options normally specified
+on the command line to be specified within an input file.  A problem
+statement describes the initial behavior as a skeleton or a security
+goal.</p>
+
+<h3>Protocols</h3>
+
+<p>The grammar for a protocol follows.</p>
+
+<blockquote>
+  <pre>PROTOCOL   ::= (defprotocol ID ALG ROLE+ RULE* PROT-ALIST)
+ID         ::= SYMBOL
+ALG        ::= SYMBOL
+ROLE       ::= (defrole ID VARS TRACE ROLE-ALIST)
+VARS       ::= (vars DECL*)
+DECL       ::= (ID+ SORT)
+TRACE      ::= (trace EVENT+)
+EVENT      ::= (send TERM) | (send ID TERM) | (stor ID TERM)
+            |  (recv TERM) | (recv ID TERM) | (load ID TERM)
+ROLE-ALIST ::= (non-orig POS-TERM*) ROLE-ALIST
+            |  (pen-non-orig POS-TERM*) ROLE-ALIST
+            |  (uniq-orig TERM*) ROLE-ALIST
+            |  (conf ID*) ROLE-ALIST
+            |  (auth ID*) ROLE-ALIST
+            |  (priority POS-INT*) ROLE-ALIST
+	    |  (gen-st TERM+) ROLE-ALIST
+            |  (critical-sections POS-INT+) ROLE-ALIST
+	    |  (facts FACTS*) ROLE-ALIST | ...
+POS-TERM   ::= TERM | (INT TERM)
+POS-INT    ::= (INT INT)
+RULE       ::= (defrule ID SENTENCE RULE-ALIST)
+RULE-ALIST ::= ...
+PROT-ALIST ::= (lang LDECL*) PROT-ALIST | ...
+LDECL      ::= (ID+ KIND)
+KIND       ::= atom | akey | hash | (tuple INT)
+            |  enc | senc | aenc | sign</pre>
+</blockquote>
+
+<p>The syntax for <code>SORT</code>, <code>TERM</code>,
+  and <code>SENTENCE</code> will be presented later.</p>
+
+<p>The protocol <code>ID</code> is a symbol that names the protocol, and the role
+<code>ID</code> is a symbol that names the role. The <code>ALG</code>
+symbol identifies the algebra used by the protocol. For the Basic
+Cryptographic Algebra, the symbol is <code>basic</code>.
+The <code>var</code> form contains symbols that declare the sort of
+the variables used in this role. The set of sort symbols is algebra
+specific, but must include <code>mesg</code>
+and <code>chan</code>.</p>
+
+<p>Events specify message transmission (<code>send</code>) or
+  reception (<code>recv</code>).  A message can be sent on a channel
+  using the form <code>(send ID TERM)</code> where <code>ID</code> is
+  declared to be of sort <code>chan</code>, and similarly for message
+  receptions.  A state value may be received or loaded from a location
+  using the form <code>(stor ID TERM)</code> where <code>ID</code> is
+  declared to be of sort <code>locn</code>.  Every store event
+  must be in a group consisting of a number of loads followed by a
+  number of stores.  Moreover, each <code>locn</code> in a store
+  event must have had a load event earlier in that group.</p>
+
+<p>The protocol association list has no predefined keys, while the
+role association list has nine predefined keys. The value associated
+with <code>non-orig, pen-non-orig, uniq-orig, conf, auth</code> must
+be atoms in the algebra. Each <code>non-orig</code> term must not be
+carried by any event in the role's trace, but each of its variables
+must occur in some term.  A role non-origination assumption of the
+form <code>(3 a)</code> asserts that atom <code>a</code> will not be
+mapped into an instance unless its height is greater than three.  For
+each <code>pen-non-orig</code> term, each of its variables must occur
+in some term, but unlike a non-origination assumption, the term may be
+carried.  Each <code>uniq-orig</code> term must originate in the
+role's trace.  Each <code>conf</code> term must be a channel variable,
+and it asserts the channel is confidential.  Each <code>auth</code>
+term must be a channel variable, and it asserts the channel is
+authenticated.  Each <code>gen-st</code> must be a term loaded in the
+role.  It entails that the instances of these terms are not initial
+values, and they must be explained by a previous store event on some
+strand.  Each <code>critical-section</code> designates the start and
+end of a group of loads and stores that must occur atomically.  It is
+not needed when there is only one load and at most one store in the
+group of events.  And it is not needed if the events are not assumed
+to occur atomically.  Each <code>facts</code> declaration ensures
+that, whenever an instance of the role proceeds long enough to have
+chosen parameter values for each parameter that appears in the facts,
+the corresponding instance of the fact will be inferred.  Every
+variable of sort <code>mesg</code> must be acquired by the role's
+trace.</p>
+
+<p>The structure of sorts and terms in the Basic Cryptographic Algebra
+follows.</p>
+
+<blockquote>
+  <pre>SORT ::= text | data | name | skey | akey | mesg | chan | locn
+TERM ::= ID | AKEY | (ltk ID ID) | STRING
+      |  (cat TERM+) | (enc TERM+ TERM) | (hash TERM+)
+AKEY ::= ID | (invk AKEY) | (pubk ID) | (privk ID)
+      |  (pubk STRING ID) | (privk STRING ID)</pre>
+</blockquote>
+
+<p>The form (<code>cat</code> a b c d e) is expands to
+  (<code>cat</code> a (<code>cat</code> b (<code>cat</code> c
+  (<code>cat</code> d e)))).  The form (<code>enc</code> a b c d e) is
+  expands to (<code>enc</code> (<code>cat</code> a b c d) e).</p>
+
+<p>A term in the Basic Crypto Algebra is an atom if it is a variable
+  of a sort other than <code>mesg</code>, or it if formed from one of
+  the following
+  operations: <code>pubk</code>, <code>privk</code>, <code>invk</code>,
+  and <code>ltk</code>.</p>
+
+<p>The Diffie-Hellman algebra adds three
+  sorts: <code>rndx</code>, <code>expt</code>, and <code>base</code>.
+  Variables of sort <code>rndx</code> are considered atoms.  The new
+  terms are <code>BASE</code>:</p>
+
+<blockquote>
+  <pre>BASE ::= ID | (gen) | (exp BASE EXPT)
+EXPT ::= ID | (one) | (mul EXPT EXPT) | (rec EXPT)</pre>
+</blockquote>
+
+<h4>Algebra Signature Extensions</h4>
+
+<p>The signature of the message algebra used by CPSA is extensible.
+  There are two forms of extensibility provided by CPSA.  Users can add
+  operations for encryption, tupling, and hashing; and add sorts for
+  atomic data.</p>
+
+<p>A common extension is to add tupling operations to message algebras.
+  Previously, complex protocols often made use of tagged concatenation
+  to encode a tagged sequence of messages.  In CPSA, concatenation is
+  implemented as sequences of pairing operations.  Thus, the expression
+  for a certificate body of the form</p>
+
+<blockquote>
+  <pre>(cat "cert-body" dn serial-no pub-key)</pre>
+</blockquote>
+
+<p>is syntax for</p>
+
+<blockquote>
+  <pre>(cat "cert-body" (cat dn (cat serial-no pub-key)))</pre>
+</blockquote>
+
+<p>Algebra extensions are declared using the <code>lang</code> key in
+  the protocol's association list, at the end of a protocol.  For the
+  certificate body example,</p>
+
+<blockquote>
+  <pre>(defprotocol cert basic
+  ...
+  (lang (cert-body (tuple 3))))</pre>
+</blockquote>
+
+<p>adds one tupling operation so that the example above can be written as</p>
+
+<blockquote>
+  <pre>(cert-body dn serial-no pub-key)</pre>
+</blockquote>
+
+<p>CPSA represents this form internally as sequence of messages with a
+  distinguished mark.  This representation is more efficient as compared
+  with the tagged concatenation representation.</p>
+
+<blockquote>
+  <pre>LANG  ::= (lang LDECL*)
+LDECL ::= (ID+ KIND)
+KIND  ::= atom | akey | hash | (tuple INT)
+       |  enc | senc | aenc | sign</pre>
+</blockquote>
+
+The syntax of a <code>lang</code> declaration is given above.
+There are eight kinds of ways that CPSA algebras can be extended.
+
+<ul>
+
+  <li>An atomic sort is added to the algebra when a symbol is declared
+    to be of kind <code>atom</code>.  If <code>dollar</code> is
+    declared to be an atomic sort, than <code>(price dollar)</code> in
+    a <code>var</code> form declares <code>price</code> to be of
+    sort <code>dollar</code>.</li>
+
+  <li>An atomic sort is also added to the algebra when a symbol is
+    declared to be of kind <code>akey</code>.  However, in addition to
+    adding the sort, CPSA adds the equation <code>(invk (invk x)) =
+    x</code> for variables of the new sort.</li>
+
+  <li>A unary operation is added to the algebra when a symbol is
+    declared to be of kind <code>hash</code>.  As with the default
+    hash operation, the adversary cannot extract the contents of the
+    hash.</li>
+
+  <li>An N-ary operation is added to the algebra when a symbol is
+    declared to be of kind (<code>tuple</code> N).  As with
+    concatenation, the adversary can construct and extract contents of
+    tuples.  N must be positive.</li>
+
+  <li>A binary operation is added to the algebra when a symbol is
+    declared to be of kind <code>enc</code>.  As with the default
+    encryption operation, the adversary cannot extract contents of the
+    encryption without access to the inverse of the key.</li>
+
+  <li>A symbol of kind <code>senc</code> is just like one of kind
+    <code>enc</code> except that the key supplied when it is applied
+    must be symmetric.</li>
+
+  <li>A symbol of kind <code>aenc</code> is just like one of kind
+    <code>enc</code> except that the key supplied when it is applied
+    must be asymmetric.</li>
+
+  <li>A symbol of kind <code>sign</code> is just like one of kind
+    <code>enc</code> except that the key supplied when it is applied
+    must be the inverse applied to an asymmetric key.</li>
+
+</ul>
+
+<h3>Skeletons</h3>
+
+<blockquote>
+  <pre>SKELETON   ::= (defskeleton ID VARS STRAND+ SKEL-ALIST)
+STRAND     ::= (defstrand ID INT MAPLET*) | (deflistener TERM)
+MAPLET     ::= (TERM TERM)
+SKEL-ALIST ::= (non-orig TERM*) SKEL-ALIST
+            |  (pen-non-orig TERM*) SKEL-ALIST
+            |  (uniq-orig TERM*) SKEL-ALIST
+            |  (uniq-gen TERM*) SKEL-ALIST
+            |  (conf ID*) SKEL-ALIST
+            |  (auth ID*) SKEL-ALIST
+            |  (precedes NODE-PAIR*) SKEL-ALIST
+            |  (facts FACTS*) SKEL-ALIST
+            |  (priority NODE-INT*) SKEL-ALIST | ...
+NODE-PAIR  ::= (NODE NODE)
+NODE       ::= (INT INT)
+FACT       ::= (ID FTERM*)
+FTERM      ::= TERM | INT</pre>
+</blockquote>
+
+<p>The <code>ID</code> in the skeleton form names a protocol. It refers to the last
+protocol definition of that name which precedes the skeleton form. The
+<code>ID</code> in the strand form names a role. The integer in the strand form
+gives the height of the strand. The sequence of pairs of terms in the strand
+form specify an environment used to construct the messages in a strand from its
+role's trace. The first term is interpreted using the role's variables and the
+second term uses the skeleton's variables. The environment used to produce the
+strand's trace is derived by matching the second term using the first term as a
+pattern.</p>
+
+<p>The first integer in a node identifies a strand, and the second one
+specifies the position of the node in the strand. Zero-based indexing is used.
+Zero identifies the first strand, and the first node in a strand has position
+zero.</p>
+
+<p>A variable may occur in more then one role within a protocol. The
+reader performs a renaming so as to ensure these occurrences do not
+overlap.  Furthermore, the maplets used to specify a strand need not
+specify how to map every role variable. The reader inserts missing
+mappings, and renames every skeleton variable that also occurs in a
+role of its protocol. The sort of every skeleton variable that occurs
+in the <code>non-orig</code>, <code>pen-non-orig</code>,
+<code>uniq-orig</code>, <code>uniq-gen</code>, <code>conf</code>,
+or <code>auth</code> list or in a maplet must be declared.</p>
+
+<p>On output, key-value pairs are added to all skeleton's association list.
+Every skeleton in the output is labeled with a unique identifier with
+<code>(label INT)</code> A skeleton has <code>(parent INT)</code> if it is a member of
+the cohort of the identified parent. A skeleton has <code>(seen INT+)</code> when
+members of its cohort are isomorphic to previously seen skeletons. A skeleton
+lists its unrealized nodes with <code>(unrealized NODE*)</code>. The traces
+associated with each strand is given by the <code>(traces ...)</code> form.
+Finally, the operation used to derive this skeleton from its parent is recorded
+with <code>(operation TEST KIND TERM NODE TERM*)</code>, where <code>TEST</code> is the
+authentication test <code>encryption-test</code> or <code>nonce</code>, <code>KIND</code>
+is <code>(added-strand ID INT)</code>,
+<code>(displaced INT INT ID INT)</code>,
+<code>(contracted MAPLET*)</code>,
+<code>(added-listener TERM)</code>, or
+<code>TERM</code> is the critical term,
+<code>NODE</code> in the test node,
+and the remaining terms specify the escape set.
+When the operation kind is augmenting, the instance's role name and height are
+provided.
+For kind displacing, the first number is the strand being merged, the
+second number is the strand it was merged into, and the remaining give
+the new instance's role name and height.
+For kind listening, a term is provided. For kind contracting, the
+substitution is provided. When a substitution refers to a variable not in the
+skeleton, its name is unpredictable. For generalization, the operation is
+recorded as <code>(operation generalization METHOD)</code>, where <code>METHOD</code>
+is one of <code>deleted NODE</code>, <code>weakened NODE-PAIR</code>, <code>separated
+TERM</code> and <code>forgot TERM</code>. Generalization is used to find shapes from
+realized skeletons. For shape collapsing, the operation is recorded as
+<code>(operation collapsed INT INT)</code>, where the two <code>INT</code>s identify
+the strands merged. Shape collapsing is used to find related shapes.</p>
+
+<!--
+<p><em>Diffie-Hellman support is experimental.</em></p>
+
+<p>The Diffie-Hellman Algebra adds sorts and terms as follows.</p>
+
+<blockquote>
+  <pre>SORT ::= ... | base | expn | expr
+TERM ::= ... | (gen) | (exp TERM EXPR)
+EXPR ::= (mul EXPR EXPR) | (rec EXPR) | (one)</pre>
+</blockquote>
+
+<p>Sort <code>expn</code> is a subsort of <code>expr</code> and
+sorts <code>expr</code> and <code>base</code> are subsorts
+of <code>mesg</code>.</p>
+
+<p>The exponent of a Diffie-Hellman value is a free Abelian group.
+  Its basis elements are in sort <code>expn</code>.  The basis
+  elements are the atoms of the group.  For the Diffie-Hellman
+  algebra as a whole, the atoms the ones in the Basis Cryptographic
+  Algebra augmented with variables of sort <code>expn</code> and
+  terms of the form <code>(exp (gen) x)</code>,
+  where <code>x</code> is a variable of sort <code>expn</code>.</p>
+
+<p>The axioms for Diffie-Hellman values are the usual ones for an
+  Abelian group for terms of sort <code>expr</code>.  For terms of
+  sort <code>base</code>, <code>(exp h (one)) = h</code> and
+<code>(exp (exp h x) y) = (exp h (mul x y))</code>.</p>
+
+-->
+
+<h3>First-order Logic and Security Goals</h3>
+
+<p>Another way to specify a problem statement is with a security
+  goal. A security goal a sentence in first-order logic.  It asserts
+  that if some properties hold for a skeleton, then some other
+  properties must hold for all shapes computed by CPSA starting with
+  the skeleton.  Security goals can be used to formally state
+  authentication and secrecy goals of a protocol.</p>
+
+<p>The <code>defgoal</code> form is used to pose an analysis problem
+  with a sentence instead of a skeleton.  CPSA extracts a point of
+  view skeleton from the antecedent of the formula and then analyzes
+  it.  When a <code>defgoal</code> form has a sequence of sentences,
+  they must all contain the same antecedent.  CPSA will evaluate all
+  of the conclusions during the analysis of this shared antecedent.
+  When it prints a shape, it checks to see if the shape satisfies the
+  conclusions of the security goal sentences.  When invoked with
+  the <code>goals-sat</code> option, CPSA will successfully terminate
+  any branch of its analysis as soon as the conclusions of the goals
+  are satisfied.  See
+  <a href="cpsagoals.pdf">CPSA Security Goals and Rules</a> for
+  details.</p>  
+
+<p>To be precise, a security goal is an order-sorted first-order logic
+  sentence in a restricted form.  The set of sort symbols available
+  for use in a <code>DECL</code> is the ones provided by the message
+  algebra augmented with the symbol <code>strd</code>.  The form of a
+  sentence is restricted by the syntax that follows.</p>
+
+<blockquote>
+  <pre>GOAL        ::= (defgoal ID SENTENCE+ GOAL-ALIST)
+SENTENCE    ::= (forall (DECL*) (implies ANTECEDENT CONCLUSION))
+CONCLUSION  ::= (false) | EXISTENTIAL | (or EXISTENTIAL*)
+EXISTENTIAL ::= (exists (DECL*) ANTECEDENT) | ANTECEDENT
+ANTECEDENT  ::= ATOMIC | (and ATOMIC+)
+ATOMIC      ::= (p ROLEID SVAR HGT) | (p ROLEID PARAM SVAR TERM)
+             |  (prec SVAR POS SVAR POS) | (non TERM) | (pnon TERM)
+             |  (uniq TERM) | (uniq-at TERM SVAR POS)
+             |  (ugen TERM) | (ugen-at TERM SVAR POS)
+             |  (conf ID) | (auth ID)
+	     |  (gen-st TERM) | (comm-pr SVAR POS SVAR POS)
+	     |  (same-locn SVAR POS SVAR POS) | (state-node SVAR POS)
+	     |  (trans SVAR POS) | (leads-to SVAR POS SVAR POS)
+             |  (fact ID TERM*) | (= TERM TERM)
+ROLEID      ::= STRING
+HGT         ::= INT
+POS         ::= INT | ID
+SVAR        ::= ID
+PARAM       ::= STRING</pre>
+</blockquote>
+
+<p>An atomic formula asserts that a skeleton has some property.  The
+  formula <code>(p "init" s 3)</code> asserts that
+  strand <code>s</code> in the skeleton is an instance of
+  an <code>init</code> role and is of length 3 or greater.  The
+  formula <code>(p "init" "x" s y)</code> asserts that
+  strand <code>s</code> is an instance of an
+  <code>init</code> role and is of a length that is great enough so
+  that role parameter <code>x</code> occurs in the role, and the role
+  parameter <code>x</code> is instantiated to become
+  term <code>y</code>.  Formula <code>(prec (x 2) (y 1))</code>
+  asserts that for some strands <code>x</code> and <code>y</code> in
+  the skeleton, the transitive closure of the precedence relation
+  contains the mentioned pair of nodes.  Formula <code>(non t)</code>
+  asserts <code>t</code> is assumed to be non-originating in the
+  skeleton.  Predicates <code>pnon</code> and <code>uniq</code> have
+  similar interpretations. The formula <code>(fact foo s (invk
+  t))</code> asserts the skeleton contains a fact
+  called <code>foo</code> relating a strand to the inverse of some term.
+  The formula <code>(= s t)</code> asserts that <code>s</code>
+  and <code>t</code> refer to the same object in the skeleton.</p>
+
+<p>The empty string names the listener role of a protocol.  The
+  role has the variable <code>x</code> of sort <code>mesg</code>
+  as its only role variable. There are two positions in the listener
+  role.</p>
+
+<p> <code>gen-st</code> asserts that its argument is a generated state
+  value, and cannot be an initial value.  <code>comm-pr</code> asserts
+  that the two nodes that follow are a transmission-reception pair
+  with the same message.  <code>same-locn</code> asserts that the two
+  nodes that follow are state nodes involving the same
+  location.  <code>same-locn</code> asserts that the node that follows
+  is a state node.  <code>trans</code> asserts that the node that
+  follows is a transition node rather than a pure
+  observation.  <code>leads-to</code> asserts that the two nodes that
+  follow are a transmission and a reception on the same location that
+  are immediately related, ie no other transition comes between them.</p>
+
+<h3>Rules</h3>
+
+<p>Each protocol may include a small collection of rules.  A rule is
+  written using the language of security goals.</p>
+
+<p>A rule is an axiom added to a protocol.  CPSA uses the axiom as a
+  rewrite rule to derive zero or more new skeletons from a skeleton
+  produced after each analysis step.  A protocol with a rule
+  follows.</p>
+
+<blockquote>
+<pre>(defprotocol doorsep basic
+  (defrole person
+    (vars (d p akey) (k skey) (t text))
+    (trace
+     (send (enc (enc k (invk p)) d))
+     (recv (enc t k))
+     (send t)))
+  (defrole door
+    (vars (d p akey) (k skey) (t text))
+    (trace
+     (recv (enc (enc k (invk p)) d))
+     (send (enc t k))
+     (recv t)))
+  (defrule trust
+    (forall ((z strd) (p d akey))
+            (implies
+             (and (p "person" z 1)
+                  (p "person" "p" z p)
+                  (p "person" "d" z d)
+                  (non (invk p)))
+             (non (invk d))))
+    (comment "The trust rule"))
+  (comment "Doorsep protocol using unnamed asymmetric keys"))
+
+(defskeleton doorsep
+  (vars (p akey))
+  (defstrand door 3 (p p))
+  (non-orig (invk p))
+  (comment "Analyze from the doors's perspective"))</pre>
+</blockquote>
+
+<p>The trust rule states that when CPSA finds a person strand of
+  length at least one, and the inverse of it's <code>p</code>
+  parameter is non-originating, CPSA should assume the inverse of
+  it's <code>d</code> parameter is non-originating.</p>
+
+<h3>Long-term (cross-session) state</h3>
+
+<p>Some protocols manipulate state.  Key management protocols acquire
+secrets and certificates, and store them so that subsequent rules can
+use them.  Hardware security modules store keys and other data, and
+use them in a succession of controlled ways, some of which modifies
+the data.  Many other examples arise.</p>
+
+<p>CPSA supports long-term state using two basic event forms,
+namely <code>(load l term)</code> and <code>(stor l term)</code>.
+A <code>load</code> event acquires the piece of state in
+location <code>l</code> of sort <code>locn</code>.  The
+term <code>term</code> in <code>(load l term)</code> constrains the
+value in <code>l</code> at the time this event occurs.  That value
+must have the form of <code>term</code>, and any variables
+within <code>term</code> that are already bound constrain the value
+found there.  All remaining variables are newly bound here, and will
+constrain the subsequent occurrences.</p>
+
+<p>A <code>(stor l term)</code> event places the value
+of <code>term</code> into location <code>l</code> so that
+subsequent <code>load</code>s will receive it.  We say that
+a <code>stor</code> event on location <code>l</code> leads to
+a <code>load</code> event on the same location <code>l</code> if the
+latter happens immediately after; CPSA formalizes this internally by
+creating a special value (a "point") that originates uniquely at
+each <code>stor</code> and must match in an immediately
+subsequent <code>load</code> event.  There may be several immediately
+subsequent <code>load</code> events, since several events may observe the
+value without causing a transition.  A transition consists of a pair
+of adjacent events, one which <code>load</code>s the current value,
+followed by another the <code>stor</code>es the subsequent value.
+There can be at most one transition to which a
+single <code>stor</code> event leads.</p>
+
+<p>Internally, CPSA regards a location <code>l</code> of
+sort <code>locn</code> as a kind of channel.  It is a confidential
+channel, since the location remains within the device, and the
+adversary can obtain the value only via message transmissions.  It is
+not a channel with (full) authenticity, since we regard initial values
+as always being available.  However, any value that is non-initial
+must be generated by a previous transition; i.e. a location offers
+authenticity for values known to be non-initial.</p>
+
+<p>We formalize this using a <code>gen-st</code> predicate in the rule
+language.  CPSA uses the formula <code>(gen-st term)</code> to assert
+that <code>term</code> is definitely non-initial, and requires a
+(regular) <code>(stor l term)</code> event to explain it being
+available in location <code>l</code>.  Rules with this kind of
+conclusion allow CPSA to infer these formulas when needed.</p>
+
+<p>Within a role definition, a declaration <code>(gen-st term-1
+... term-i)</code> causes CPSA to generate rules that establish that
+each of the terms given is <code>gen-st</code> as long as a role
+instance is long enough for the variables in it to be
+well-defined.</p>
+
+<h3>Macros and Includes</h3>
+
+<p>After reading the input, <code>cpsa4</code> expands macros before analyzing
+the results. A macro definition is a top-level form.</p>
+
+<blockquote>
+  <pre>(defmacro (NAME ARG*) BODY)</pre>
+</blockquote>
+
+<p>The <code>cpsa4</code> program expands all calls to macros in
+non-macro defining S-expressions using the macros that have been
+defined previously. A macro definition can be used to expand a call if
+the first element of a list matches the name of the macro, and the
+length of the remaining elements in the list matches the length of the
+macro's argument list. When two macros definitions are applicable, the
+last definition takes precedence. The <code>cpsa4</code> program omits
+macro definitions from its output.</p>
+
+<p>After expanding a list, elements of the list of the
+  form <code>(^</code> ...<code>)</code> are spliced into the output.
+  Thus <code>(a ^(b c) d)</code> becomes
+  <code>(a b c d)</code> after macro expansion.</p>
+
+<p>A source file can be included within another with the top-level
+include form,</p>
+
+<blockquote>
+  <pre>(include FILE)</pre>
+</blockquote>
+
+<p>where <code>FILE</code> is a string. The <code>cpsa4</code> program
+includes files while it does macro expansion.</p>
+
+<h3 id="usage">Usage of CPSA</h3>
+
+<blockquote>
+  <pre>$ cpsa4 -h
+Usage: cpsa4 [OPTIONS] [FILE]
+  -o FILE    --output=FILE      output FILE
+  -l INT     --limit=INT        step count limit (default 2000)
+  -b INT     --bound=INT        strand count bound (default 8)
+  -d INT     --depth=INT        tree depth bound (default unbounded)
+  -m INT     --margin=INT       set output margin (default 72)
+  -e         --expand           expand macros only; don't analyze
+  -n         --noisochk         disable isomorphism checks
+  -c         --check-nonces     check nonces first
+  -t         --try-old-strands  try old strands first
+  -r         --reverse-nodes    try younger nodes first
+  -g         --goals-sat        Stop when goals are satisfied
+  -a STRING  --algebra=STRING   algebra (default basic)
+  -s         --show-algebras    show algebras
+  -h         --help             show help message
+  -v         --version          show version number</pre>
+</blockquote>
+
+<p>This program will abort if too many steps are taken. A skeleton is
+printed for each step taken by the program. The step count limit
+option is used to override the default step count limit. It will also
+abort when it detects a skeleton with too many strands. The strand
+count bound option is used to override the default strand count
+bound. The tree depth bound option is used to override the default
+tree depth bound.  Another way to limit resources used by the program
+is to limit the amount of memory it may use. The command-line
+option <code>+RTS -M512m -RTS</code> limits memory usage to 512m.</p>
+
+<p>The herald form can be used to specify options within a file.  The
+  grammar for a herald form follows, where <code>ALIST</code> is an
+  association list with symbols as keys.</p>
+
+<blockquote>
+  <pre>HERALD ::= (herald TITLE ALIST)
+TITLE  ::= SYMBOL | STRING</pre>
+</blockquote>
+
+<p>The title is used by <code>cpsa4graph</code> when generating XHTML.
+  In the following example, the herald form specifies a strand bound
+  of 12 in a way that is equivalent to the command line
+  option <code>--bound=12</code>.</p>
+
+<blockquote>
+  <pre>(herald "Needham-Schroeder Public-Key Protocol" (bound 12))</pre>
+</blockquote>
+
+<p>The herald form is only interpreted by the <code>cpsa4</code> program,
+  and is treated as a comment by all other programs.  In particular,
+  specifying a <code>margin</code> option effects <code>cpsa4</code> only.</p>
+
+<p>For long running problems, SMP parallelism is available. For example, on a
+quad-core machine, we would probably use <code>+RTS -N4 -RTS</code>.</p>
+
+<p>In addition to the options provided on the command line or a herald
+  form, one can influence the order in which test nodes are sought.
+  When a role includes <code>(reverse-search)</code> in its association
+  list as a comment, the nodes in its instances will be searched in
+  reverse order.</p>
+
+<p>When run with isomorphism checks disabled (<code>--noisochk</code>), CPSA
+searches for realized skeletons, not shapes. It attempts to speed up analysis
+by not identifying duplicate skeletons or generalizing realized skeletons,
+however in many cases, run times increase. It is used when normal analysis
+takes too much time on the chance that avoiding the checks makes more progress.
+</p>
+
+<p>In no isomorphism checking mode output, every realized skeleton is labeled a
+shape even when it is not. This allows the extraction of every realized
+skeletons from the output using the <a
+href="#cpsashapes"><code>cpsa4shapes</code></a> program.</p>
+
+<p>An error message that begins with "No test for unrealized node" identifies a
+severe error that should be reported as a bug.</p>
+
+<h3 id="priority">Search order</h3>
+
+<p>In its analysis, CPSA will attempt to solve unrealized nodes until the
+skeleton is realized, and then generalize until a shape is obtained.  When
+there are multiple unrealized nodes, by default, CPSA will chose the topmost,
+rightmost unrealized node among those unrealized nodes with maximum priority.
+The default priority of a node is 5, and higher numbers represent a higher
+priority.  When a node has non-positive priority, it is left unsolved.</p>
+
+<p>In a role, in order to specify a priority for an event other than
+the default, add a comment of the
+form <code>(priority (<var>i</var> <var>p</var>))</code>,
+where <var>i</var> is the index of the event in the trace,
+and <var>p</var> is the priority.
+Priorities are inherited
+from roles, but may be overridden in a skeleton with a
+<code>priority</code> comment of the form
+<code>(priority (<var>n</var> <var>p</var>))</code>,
+where <var>n</var> is a node.</p>
+
+<h2 id="cpsainit">Initialization</h2>
+
+<p>The <code>cpsa4init</code> copies the
+  files <code>Makefile</code>, <code>cpsa4.mk</code>,
+  and <code>Make4.hs</code> into the current directory.  It will not
+  overwrite existing files of the same name.  The makefile is for use
+  with systems that provide GNU <code>make</code>.  Windows users should
+  load <code>Make4.hs</code> into <code>ghci</code>.  Read the
+  comments in the script for usage instructions.</p>
+
+<h3>Usage</h3>
+
+<blockquote>
+  <pre>$ cpsa4init -h
+Usage: cpsa4init [OPTIONS]
+  -h       --help          show help message
+  -v       --version       show version number</pre>
+</blockquote>
+
+<h2 id="cpsagraph">Visualization</h2>
+
+<p>The <code>cpsa4graph</code> program produces a graphical rendering of the output
+or input of an analyzer using SVG. It is viewable only with a
+standards-compliant web browser such as FireFox.</p>
+
+<p>When applied to the output of CPSA, the program groups together all the
+skeletons related to each problem statement in the input. The program assembles
+the related skeletons into a directed acyclic graph using the parent identifier
+and renders it as a tree using SVG. Each vertex in the tree is the label added
+to the skeleton by the CPSA program. Click the label in the tree to view the
+skeleton. Hover over a node in a skeleton drawing to see the term associated
+with it. Hover over a role to see the mapping from role variables to skeleton
+variables.</p>
+
+<p>A node ordering edge in a skeleton drawing indicates that the message
+transmission at the source of the edge happened before message reception at the
+destination edge. The edge is solid if the transmitting term is syntactically
+identical to the receiving term, otherwise the edge is dashed. Thus in an
+algebra with a commutative operation <code>*</code>, the graphing program sometimes
+draws a dashed line between <code>(send (* a b))</code> and <code>(recv (* b
+a))</code>.</p>
+
+<p>In the tree drawing, the label of a shape is blue. For dead
+skeletons, the label is red, unless it has been seen before, in which
+case it is orange. Otherwise the label is green for skeletons seen
+before. Seen skeleton labels are rendered in an italic font.</p>
+
+<p>By the default, <code>cpsa4graph</code> generates a view of CPSA S-expressions as
+a compound document that contains SVG within XHTML. This view integrates
+graphics with the input text.</p>
+
+<p>In compact mode, <code>cpsa4graph</code> generates an SVG document. The tree is
+displayed immediately to the left of skeleton drawings. When there is more than
+one tree, the left-hand-side of the drawing contains a vertical listing of the
+trees. Compact mode output should never be used as a replacement for studying
+the text version of the output. The text version contains strictly more
+information, and should be displayed next to its graphical rendition.</p>
+
+<p>In LaTeX mode, <code>cpsa4graph</code> generates LaTeX source. XY-pic is used for
+drawings of skeletons. The margin specified in <a
+href="cpsa4.mk"><code>cpsa4.mk</code></a> produces good results. </p>
+
+<h3>Usage</h3>
+
+<blockquote>
+  <pre>$ cpsa4graph -h
+Usage: cpsa4graph [OPTIONS] [FILE]
+  -o FILE  --output=FILE   output FILE
+  -x       --expanded      use expanded format (default)
+  -z       --zoom          enable diagram scaling
+  -t       --treeless      use treeless expanded format
+  -c       --compact       use compact format
+  -l       --latex         use LaTeX format
+  -m INT   --margin=INT    set output margin (default 72)
+  -p       --purge-traces  purge traces
+  -h       --help          show help message
+  -v       --version       show version number</pre>
+</blockquote>
+
+<h2 id="cpsadiff">Output Comparisons</h2>
+
+<p>The <code>cpsa4diff</code> program compares CPSA output files
+S-expression by S-expression, and prints the first skeleton that
+differs.</p>
+
+<h3>Usage</h3>
+
+<blockquote>
+  <pre>$ cpsa4diff -h
+Usage: cpsa4diff [OPTIONS] OLD-FILE NEW-FILE
+  -o FILE  --output=FILE  output FILE
+  -m INT   --margin=INT   set output margin (default 72)
+  -h       --help         show help message
+  -v       --version      show version number</pre>
+</blockquote>
+
+<h2 id="cpsashapes">Shape Extraction</h2>
+
+<p>The <code>cpsa4shapes</code> program extracts the original problems and the
+shapes from the output of a CPSA run. The shapes are linked to their problem so
+the output can be graphed.</p>
+
+<h3>Usage</h3>
+
+<blockquote>
+  <pre>$ cpsa4shapes -h
+Usage: cpsa4shapes [OPTIONS] [FILE]
+  -o FILE  --output=FILE  output FILE
+  -m INT   --margin=INT   set output margin (default 72)
+  -h       --help         show help message
+  -v       --version      show version number</pre>
+</blockquote>
+
+<h2 id="cpsasas">Formula Extraction</h2>
+
+<p>The <code>cpsa4sas</code> program extracts a formula in the language
+  of order-sorted first-order logic for each problem and its shapes
+  from a CPSA run. The formula is called a
+  <a href="https://arxiv.org/abs/1204.0480">shape analysis
+  sentence</a>. The formula is satisfied in all realized skeletons
+  when CPSA finds all the shapes for the problem.</p>
+
+<h3>Usage</h3>
+
+<blockquote>
+  <pre>$ cpsa4sas -h
+Usage: cpsa4sas [OPTIONS] [FILE]
+  -o FILE    --output=FILE     output FILE
+  -m INT     --margin=INT      set output margin (default 72)
+  -a STRING  --algebra=STRING  algebra (default basic)
+  -s         --show-algebras   show algebras
+  -h         --help            show help message
+  -v         --version         show version number</pre>
+</blockquote>
+
+<h2 id="cpsagoalsat">Goal Satisfaction Checking</h2>
+
+<p>The <code>cpsa4goalsat</code> program prints the labels of
+  skeletons that do not satisfy a <code>defgoal</code>.  For each
+  point of view skeleton specified by a goal, the program prints a
+  list.  The first element of the list is the label of the point of
+  view skeleton.  The remaining elements of the list are labels of the
+  skeletons that do not satisfy the goal.</p>
+
+<h3>Usage</h3>
+
+<blockquote>
+  <pre>$ cpsa4goalsat -h
+Usage: cpsa4goalsat [OPTIONS] [FILE]
+  -o FILE  --output=FILE  output FILE
+  -m INT   --margin=INT   set output margin (default 72)
+  -h       --help         show help message
+  -v       --version      show version number</pre>
+</blockquote>
+
+<h2 id="cpsaprot">Alice and Bob notation to CPSA</h2>
+
+<p>The <code>cpsa4prot</code> program translates protocols expressed
+  in Alice and Bob notation into CPSA's <code>defprotocol</code>
+  syntax.  It translates <code>defprot</code> forms, and passes all
+  else through unchanged.  The syntax of a <code>defprot</code> form
+  is:</p>
+
+<blockquote>
+  <pre>PROT       ::= (defprot NAME ALGEBRA (vars DECLS) NOTATION* RULE* PROT-ALIST)
+NOTATION   ::= (msg ROLE ROLE CHMSG)
+            |  (msg ROLE ROLE CHMSG CHMSG)
+            |  (from ROLE CHMSG)
+            |  (to ROLE CHMSG)
+            |  (clone ROLE ROLE)
+            |  (assume ROLE ASSUMPTION*)
+CHMSG      ::= (chmsg CHAN TERM) | (chmsg TERM) | TERM
+ASSUMPTION ::= (uniq-orig ...) | (non-orig ...) | ...
+RULE       ::= (defrule ...)</pre>
+</blockquote>
+
+<p>The form <code>(msg A B M)</code> says role <code>A</code>
+  sends <code>M</code>, and role <code>B</code> receives
+  <code>M</code>.<br/>  The form <code>(msg A B M N)</code> says
+  role <code>A</code> sends <code>M</code>, and role <code>B</code>
+  receives <code>N</code>.<br/>  The form <code>(from A M)</code> says
+  role <code>A</code> sends <code>M</code>.<br/>  The form <code>(to A
+  M)</code> says role <code>A</code> receives <code>M</code>.<br/>
+  The form <code>(clone A B)</code> says make role <code>B</code> have
+  the same messages as <code>A</code> up to this point in the
+  specification.</p>
+
+<h3>Example</h3>
+
+<blockquote>
+  <pre>$ cat blanchet.prot
+(defprot blanchet basic
+  (vars (a b akey) (s skey) (d data))
+  (msg init resp (enc (enc s (invk a)) b))
+  (msg resp init (enc d s))
+  (assume init (uniq-orig s))
+  (assume resp (uniq-orig d))
+  (comment "Blanchet's protocol"))
+$ cpsa4prot blanchet.prot
+(defprotocol blanchet basic
+  (defrole init
+    (vars (a b akey) (s skey) (d data))
+    (trace (send (enc (enc s (invk a)) b)) (recv (enc d s)))
+    (uniq-orig s))
+  (defrole resp
+    (vars (a b akey) (s skey) (d data))
+    (trace (recv (enc (enc s (invk a)) b)) (send (enc d s)))
+    (uniq-orig d))
+  (comment "Blanchet's protocol"))
+$</pre>
+</blockquote>
+
+<h3>Usage</h3>
+
+<blockquote>
+  <pre>$ cpsa4prot -h
+Usage: cpsa4prot [OPTIONS] [FILE]
+  -o FILE  --output=FILE  output FILE
+  -e       --expand       expand macros first
+  -m INT   --margin=INT   set output margin (default 72)
+  -h       --help         show help message
+  -v       --version      show version number</pre>
+</blockquote>
+
+<h2 id="cpsapp">Pretty Printing</h2>
+
+<p>The <code>cpsa4pp</code> program program pretty prints its input
+using the CPSA specific algorithm.  It also translates S-Expressions
+into JavaScript Object Notation (<a href="http://json.org">JSON</a>)
+to ease processing in other languages.</p>
+
+<h3>Usage</h3>
+
+<blockquote>
+  <pre>$ cpsa4pp -h
+Usage: cpsa4pp [OPTIONS] [FILE]
+  -o FILE  --output=FILE  output FILE
+  -m INT   --margin=INT   set output margin (default 72)
+  -j       --json         output uses JSON notation
+  -h       --help         show help message
+  -v       --version      show version number</pre>
+</blockquote>
+
+<h2 id="cpsa42latex">CPSA to LaTeX Macro Translation</h2>
+
+<p>The <code>cpsa42latex</code> program translates CPSA macros
+  specifying message formats into equivalent LaTeX macros. CPSA
+  algebra primitives are mapped to unspecified LaTeX macros with the
+  same name and arity (sometimes with an optional tag), allowing the
+  user to easily customize how they would like these primitives to be
+  typeset. </p>
+
+<h3>Usage</h3>
+
+<blockquote>
+  <pre>$ cpsa42latex -h
+Usage: cpsa42latex [OPTIONS] [FILE]
+  -o FILE  --output=FILE  output FILE
+  -h       --help         show help message
+  -v       --version      show version number</pre>
+</blockquote>
+
+<h2 id="cpsajson">JSON to S-Expression Translation</h2>
+
+<p>The <code>cpsa4json</code> program translates JSON encoded CPSA into
+CPSA S-Expressions.</p>
+
+<h3>Usage</h3>
+
+<blockquote>
+  <pre>$ cpsa4json -h
+Usage: cpsa4json [OPTIONS] [FILE]
+  -o FILE  --output=FILE  output FILE
+  -m INT   --margin=INT   set output margin (default 72)
+  -h       --help         show help message
+  -v       --version      show version number</pre>
+</blockquote>
+
+<h2>S-expressions</h2>
+
+<p>The S-expressions used are restricted so that most dialects of Lisp
+can read them, and characters within symbols and strings never need
+quoting. Every list is proper. An atom is either a symbol, an integer,
+or a string. The characters that make up a symbol are the letters, the
+digits, and the special characters in
+"<code>+-*/&lt;=&gt;!?:$%_&amp;~^</code>". A symbol may not begin with
+a digit or a sign followed by a digit. The characters that make up a
+string are the printing characters omitting double quote and
+backslash, except when double quote and backslash are escaped using
+the backslash character. Double quotes delimit a string. A comment
+begins with a semicolon, or is an S-expression list at top-level that
+starts with the <code>comment</code> symbol. </p>
+
+<hr />
+
+<p>Copyright (c) 2017 The MITRE Corporation. Permission to copy without fee all
+or part of this material is granted provided that the copies are not made or
+distributed for direct commercial advantage, this copyright notice and the
+title of the publication and its date appear, and notice in given that copying
+is by permission of The MITRE Corporation.</p>
+</body>
+</html>
diff --git a/doc/examples/IKE_variants.tar.gz b/doc/examples/IKE_variants.tar.gz
deleted file mode 100644
Binary files a/doc/examples/IKE_variants.tar.gz and /dev/null differ
diff --git a/doc/examples/IKE_variants_nobase.tar.gz b/doc/examples/IKE_variants_nobase.tar.gz
deleted file mode 100644
Binary files a/doc/examples/IKE_variants_nobase.tar.gz and /dev/null differ
diff --git a/doc/examples/Makefile b/doc/examples/Makefile
deleted file mode 100644
--- a/doc/examples/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-CPSAFLAGS = +RTS -N3 -M512m -RTS
-
-SRCS := $(wildcard *.scm) $(wildcard *.lsp)
-
-include ../cpsa.mk
-
-all:    $(SRCS:%.scm=%_shapes.xhtml) $(SRCS:%.scm=%.xhtml) \
-	$(SRCS:%.lsp=%_shapes.xhtml) $(SRCS:%.lsp=%.xhtml)
-
-clean:
-	-rm *.txt *.xhtml
diff --git a/doc/examples/blanchet.scm b/doc/examples/blanchet.scm
deleted file mode 100644
--- a/doc/examples/blanchet.scm
+++ /dev/null
@@ -1,84 +0,0 @@
-(herald "Blanchet's Simple Example Protocol"
-  (comment "There is a flaw in this protocol by design"))
-
-(defprotocol blanchet basic
-  (defrole init
-    (vars (a b akey) (s skey) (d data))
-    (trace
-     (send (enc (enc s (invk a)) b))
-     (recv (enc d s)))
-    (uniq-orig s))
-  (defrole resp
-    (vars (a b akey) (s skey) (d data))
-    (trace
-     (recv (enc (enc s (invk a)) b))
-     (send (enc d s)))
-    (uniq-orig d))
-  (comment "Blanchet's protocol"))
-
-(defskeleton blanchet
-  (vars (a b akey) (s skey) (d data))
-  (defstrand init 2 (a a) (b b) (s s) (d d))
-  (non-orig (invk b))
-  (comment "Analyze from the initiator's perspective"))
-
-(defskeleton blanchet
-  (vars (a b akey) (s skey) (d data))
-  (defstrand resp 2 (a a) (b b) (s s) (d d))
-  (non-orig (invk a) (invk b))
-  (comment "Analyze from the responder's perspective"))
-
-(defskeleton blanchet
-  (vars (a b akey) (s skey) (d data))
-  (defstrand init 2 (a a) (b b) (s s) (d d))
-  (deflistener d)
-  (non-orig (invk b))
-  (comment "From the initiator's perspective, is the secret leaked?"))
-
-(defskeleton blanchet
-  (vars (a b akey) (s skey) (d data))
-  (defstrand resp 2 (a a) (b b) (s s) (d d))
-  (deflistener d)
-  (non-orig (invk a) (invk b))
-  (comment "From the responders's perspective, is the secret leaked?"))
-
-(defprotocol blanchet-corrected basic
-  (defrole init
-    (vars (a b akey) (s skey) (d data))
-    (trace
-     (send (enc (enc s b (invk a)) b))
-     (recv (enc d s)))
-    (uniq-orig s))
-  (defrole resp
-    (vars (a b akey) (s skey) (d data))
-    (trace
-     (recv (enc (enc s b (invk a)) b))
-     (send (enc d s)))
-    (uniq-orig d))
-  (comment "Corrected Blanchet's protocol"))
-
-(defskeleton blanchet-corrected
-  (vars (a b akey) (s skey) (d data))
-  (defstrand init 2 (a a) (b b) (s s) (d d))
-  (non-orig (invk b))
-  (comment "Analyze from the initiator's perspective"))
-
-(defskeleton blanchet-corrected
-  (vars (a b akey) (s skey) (d data))
-  (defstrand init 2 (a a) (b b) (s s) (d d))
-  (deflistener d)
-  (non-orig (invk b))
-  (comment "From the initiator's perspective, is the secret leaked?"))
-
-(defskeleton blanchet-corrected
-  (vars (a b akey) (s skey) (d data))
-  (defstrand resp 2 (a a) (b b) (s s) (d d))
-  (non-orig (invk a) (invk b))
-  (comment "Analyze from the responder's perspective"))
-
-(defskeleton blanchet-corrected
-  (vars (a b akey) (s skey) (d data))
-  (defstrand resp 2 (a a) (b b) (s s) (d d))
-  (deflistener d)
-  (non-orig (invk a) (invk b))
-  (comment "From the responders's perspective, is the secret leaked?"))
diff --git a/doc/examples/blanchet.xhtml b/doc/examples/blanchet.xhtml
deleted file mode 100644
--- a/doc/examples/blanchet.xhtml
+++ /dev/null
@@ -1,2017 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Blanchet's Simple Example Protocol</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(herald &quot;Blanchet&apos;s Simple Example Protocol&quot;
-  (comment &quot;There is a flaw in this protocol by design&quot;))
-(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from blanchet.scm&quot;)</pre>
-
-<p id="top">Trees: <a href="#t0">0</a> <a href="#t4">4</a> <a href="#t6">6</a> <a href="#t11">11</a> <a href="#t14">14</a> <a href="#t18">18</a> <a href="#t23">23</a> <a href="#t25">25</a>.</p>
-
-<p id="t0">Tree <a href="#top">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.760pt' height='154.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.760 154.920' font-size='12.000'>
-  <text
-   x='89.880' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k2&quot;, &quot;_self&quot;)'>2</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k3&quot;, &quot;_self&quot;)'>3</text>
-  <line
-   x1='89.880' y1='39.960' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k1&quot;, &quot;_self&quot;)'>1</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol blanchet basic
-  (defrole init
-    (vars (a b akey) (s skey) (d data))
-    (trace (send (enc (enc s (invk a)) b)) (recv (enc d s)))
-    (uniq-orig s))
-  (defrole resp
-    (vars (a b akey) (s skey) (d data))
-    (trace (recv (enc (enc s (invk a)) b)) (send (enc d s)))
-    (uniq-orig d))
-  (comment &quot;Blanchet&apos;s protocol&quot;))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>, Children: <a href="#k1">1</a> <a href="#k2">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc d s)</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s (invk a)) b)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>blanchet 0</text>
-  </svg></div>
-
-<pre>(defskeleton blanchet
-  (vars (d data) (s skey) (a b akey))
-  (defstrand init 2 (d d) (s s) (a a) (b b))
-  (non-orig (invk b))
-  (uniq-orig s)
-  (comment &quot;Analyze from the initiator&apos;s perspective&quot;)
-  (label 0)
-  (unrealized (0 1))
-  (origs (s (0 0)))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc d s)</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s (invk a-0)) b-0)</title>
-   <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc d s)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc s (invk a)) b)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a-0) (b b-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960' style='text-anchor: middle;'>blanchet 1</text>
-  </svg></div>
-
-<pre>(defskeleton blanchet
-  (vars (d data) (s skey) (a b a-0 b-0 akey))
-  (defstrand init 2 (d d) (s s) (a a) (b b))
-  (defstrand resp 2 (d d) (s s) (a a-0) (b b-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (invk b))
-  (uniq-orig d s)
-  (operation encryption-test (added-strand resp 2) (enc d s) (0 1))
-  (label 1)
-  (parent 0)
-  (unrealized (1 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k0">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>s</title><circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>s</title>
-   <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc d s)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc s (invk a)) b)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960' style='text-anchor: middle;'>blanchet 2</text>
-  </svg></div>
-
-<pre>(defskeleton blanchet
-  (vars (d data) (s skey) (a b akey))
-  (defstrand init 2 (d d) (s s) (a a) (b b))
-  (deflistener s)
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (invk b))
-  (uniq-orig s)
-  (operation encryption-test (added-listener s) (enc d s) (0 1))
-  (label 2)
-  (parent 0)
-  (unrealized (1 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc d s)</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s (invk a)) b)</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc d s)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc s (invk a)) b)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>blanchet 3 (realized)</text></svg></div>
-
-<pre>(defskeleton blanchet
-  (vars (d data) (s skey) (a b akey))
-  (defstrand init 2 (d d) (s s) (a a) (b b))
-  (defstrand resp 2 (d d) (s s) (a a) (b b))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (invk b))
-  (uniq-orig d s)
-  (operation nonce-test (contracted (a-0 a) (b-0 b)) s (1 0)
-    (enc (enc s (invk a)) b))
-  (label 3)
-  (parent 1)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (s s) (d d))))
-  (origs (d (1 1)) (s (0 0))))</pre>
-
-<p id="t4">Tree <a href="#top">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k5&quot;, &quot;_self&quot;)'>5</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k4&quot;, &quot;_self&quot;)'>4</text>
-  </svg></div>
-
-<pre>(defprotocol blanchet basic
-  (defrole init
-    (vars (a b akey) (s skey) (d data))
-    (trace (send (enc (enc s (invk a)) b)) (recv (enc d s)))
-    (uniq-orig s))
-  (defrole resp
-    (vars (a b akey) (s skey) (d data))
-    (trace (recv (enc (enc s (invk a)) b)) (send (enc d s)))
-    (uniq-orig d))
-  (comment &quot;Blanchet&apos;s protocol&quot;))</pre>
-
-<p id="k4">Item <a href="#t4">4</a>, Child: <a href="#k5">5</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc d s)</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s (invk a)) b)</title>
-   <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>blanchet 4</text>
-  </svg></div>
-
-<pre>(defskeleton blanchet
-  (vars (d data) (s skey) (a b akey))
-  (defstrand resp 2 (d d) (s s) (a a) (b b))
-  (non-orig (invk a) (invk b))
-  (uniq-orig d)
-  (comment &quot;Analyze from the responder&apos;s perspective&quot;)
-  (label 4)
-  (unrealized (0 0))
-  (origs (d (0 1)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k5">Item <a href="#t4">5</a>, Parent: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc s (invk a)) b-0)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc d s)</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s (invk a)) b)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((s s) (a a) (b b-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>blanchet 5 (realized)</text></svg></div>
-
-<pre>(defskeleton blanchet
-  (vars (d data) (s skey) (a b b-0 akey))
-  (defstrand resp 2 (d d) (s s) (a a) (b b))
-  (defstrand init 1 (s s) (a a) (b b-0))
-  (precedes ((1 0) (0 0)))
-  (non-orig (invk a) (invk b))
-  (uniq-orig d s)
-  (operation encryption-test (added-strand init 1) (enc s (invk a))
-    (0 0))
-  (label 5)
-  (parent 4)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (s s) (d d))))
-  (origs (s (1 0)) (d (0 1))))</pre>
-
-<p id="t6">Tree <a href="#top">6</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='229.680pt' height='154.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 229.680 154.920' font-size='12.000'>
-  <text
-   x='89.880' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k8&quot;, &quot;_self&quot;)'>8</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k10&quot;, &quot;_self&quot;)'>10</text>
-  <line
-   x1='139.800' y1='39.960' x2='189.720' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k9&quot;, &quot;_self&quot;)'>9</text>
-  <line
-   x1='89.880' y1='39.960' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k7&quot;, &quot;_self&quot;)'>7</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='63.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k6&quot;, &quot;_self&quot;)'>6</text>
-  </svg></div>
-
-<pre>(defprotocol blanchet basic
-  (defrole init
-    (vars (a b akey) (s skey) (d data))
-    (trace (send (enc (enc s (invk a)) b)) (recv (enc d s)))
-    (uniq-orig s))
-  (defrole resp
-    (vars (a b akey) (s skey) (d data))
-    (trace (recv (enc (enc s (invk a)) b)) (send (enc d s)))
-    (uniq-orig d))
-  (comment &quot;Blanchet&apos;s protocol&quot;))</pre>
-
-<p id="k6">Item <a href="#t6">6</a>, Children: <a href="#k7">7</a> <a href="#k8">8</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>d</title><circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>d</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc d s)</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s (invk a)) b)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960' style='text-anchor: middle;'>blanchet 6</text>
-  </svg></div>
-
-<pre>(defskeleton blanchet
-  (vars (d data) (s skey) (a b akey))
-  (defstrand init 2 (d d) (s s) (a a) (b b))
-  (deflistener d)
-  (non-orig (invk b))
-  (uniq-orig s)
-  (comment &quot;From the initiator&apos;s perspective, is the secret leaked?&quot;)
-  (label 6)
-  (unrealized (0 1))
-  (origs (s (0 0)))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k7">Item <a href="#t6">7</a>, Parent: <a href="#k6">6</a>, Child: <a href="#k9">9</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc d s)</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s (invk a-0)) b-0)</title>
-   <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>d</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc d s)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc s (invk a)) b)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a-0) (b b-0))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='139.920' y='39.960' style='text-anchor: middle;'>blanchet 7</text>
-  </svg></div>
-
-<pre>(defskeleton blanchet
-  (vars (d data) (s skey) (a b a-0 b-0 akey))
-  (defstrand init 2 (d d) (s s) (a a) (b b))
-  (deflistener d)
-  (defstrand resp 2 (d d) (s s) (a a-0) (b b-0))
-  (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 1) (1 0)))
-  (non-orig (invk b))
-  (uniq-orig d s)
-  (operation encryption-test (added-strand resp 2) (enc d s) (0 1))
-  (label 7)
-  (parent 6)
-  (unrealized (1 0) (2 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k8">Item <a href="#t6">8</a>, Parent: <a href="#k6">6</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>s</title><circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>s</title>
-   <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>d</title><circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>d</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc d s)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc s (invk a)) b)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='139.920' y='39.960' style='text-anchor: middle;'>blanchet 8</text>
-  </svg></div>
-
-<pre>(defskeleton blanchet
-  (vars (d data) (s skey) (a b akey))
-  (defstrand init 2 (d d) (s s) (a a) (b b))
-  (deflistener d)
-  (deflistener s)
-  (precedes ((0 0) (2 0)) ((2 1) (0 1)))
-  (non-orig (invk b))
-  (uniq-orig s)
-  (operation encryption-test (added-listener s) (enc d s) (0 1))
-  (label 8)
-  (parent 6)
-  (unrealized (2 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k9">Item <a href="#t6">9</a>, Parent: <a href="#k7">7</a>, Child: <a href="#k10">10</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc d s)</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s (invk a)) b)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>d</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc d s)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc s (invk a)) b)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='139.920' y='39.960' style='text-anchor: middle;'>blanchet 9</text>
-  </svg></div>
-
-<pre>(defskeleton blanchet
-  (vars (d data) (s skey) (a b akey))
-  (defstrand init 2 (d d) (s s) (a a) (b b))
-  (deflistener d)
-  (defstrand resp 2 (d d) (s s) (a a) (b b))
-  (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 1) (1 0)))
-  (non-orig (invk b))
-  (uniq-orig d s)
-  (operation nonce-test (contracted (a-0 a) (b-0 b)) s (2 0)
-    (enc (enc s (invk a)) b))
-  (label 9)
-  (parent 7)
-  (unrealized (1 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k10">Item <a href="#t6">10</a>, Parent: <a href="#k9">9</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 189.960 Q 242.880 152.460 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>s</title><circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>s</title>
-   <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc d s)</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s (invk a)) b)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>d</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc d s)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc s (invk a)) b)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>blanchet 10</text></svg></div>
-
-<pre>(defskeleton blanchet
-  (vars (d data) (s skey) (a b akey))
-  (defstrand init 2 (d d) (s s) (a a) (b b))
-  (deflistener d)
-  (defstrand resp 2 (d d) (s s) (a a) (b b))
-  (deflistener s)
-  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((2 1) (0 1)) ((2 1) (1 0))
-    ((3 1) (1 0)))
-  (non-orig (invk b))
-  (uniq-orig d s)
-  (operation nonce-test (added-listener s) d (1 0) (enc d s))
-  (label 10)
-  (parent 9)
-  (unrealized (3 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="t11">Tree <a href="#top">11</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.760pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.760 79.920' font-size='12.000'>
-  <text
-   x='139.800' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k13&quot;, &quot;_self&quot;)'>13</text>
-  <line
-   x1='89.880' y1='39.960' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k12&quot;, &quot;_self&quot;)'>12</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k11&quot;, &quot;_self&quot;)'>11</text>
-  </svg></div>
-
-<pre>(defprotocol blanchet basic
-  (defrole init
-    (vars (a b akey) (s skey) (d data))
-    (trace (send (enc (enc s (invk a)) b)) (recv (enc d s)))
-    (uniq-orig s))
-  (defrole resp
-    (vars (a b akey) (s skey) (d data))
-    (trace (recv (enc (enc s (invk a)) b)) (send (enc d s)))
-    (uniq-orig d))
-  (comment &quot;Blanchet&apos;s protocol&quot;))</pre>
-
-<p id="k11">Item <a href="#t11">11</a>, Child: <a href="#k12">12</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>d</title><circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>d</title>
-   <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc d s)</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s (invk a)) b)</title>
-   <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960' style='text-anchor: middle;'>blanchet 11</text>
-  </svg></div>
-
-<pre>(defskeleton blanchet
-  (vars (d data) (s skey) (a b akey))
-  (defstrand resp 2 (d d) (s s) (a a) (b b))
-  (deflistener d)
-  (non-orig (invk a) (invk b))
-  (uniq-orig d)
-  (comment &quot;From the responders&apos;s perspective, is the secret leaked?&quot;)
-  (label 11)
-  (unrealized (0 0) (1 0))
-  (origs (d (0 1)))
-  (preskeleton)
-  (comment &quot;Not a skeleton&quot;))</pre>
-
-<p id="k12">Item <a href="#t11">12</a>, Parent: <a href="#k11">11</a>, Child: <a href="#k13">13</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>d</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc d s)</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s (invk a)) b)</title>
-   <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960' style='text-anchor: middle;'>blanchet 12</text>
-  </svg></div>
-
-<pre>(defskeleton blanchet
-  (vars (d data) (s skey) (a b akey))
-  (defstrand resp 2 (d d) (s s) (a a) (b b))
-  (deflistener d)
-  (precedes ((0 1) (1 0)))
-  (non-orig (invk a) (invk b))
-  (uniq-orig d)
-  (comment &quot;From the responders&apos;s perspective, is the secret leaked?&quot;)
-  (label 12)
-  (parent 11)
-  (unrealized (0 0))
-  (origs (d (0 1)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k13">Item <a href="#t11">13</a>, Parent: <a href="#k12">12</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 114.960 Q 142.920 77.460 45.960 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc s (invk a)) b-0)</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>d</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc d s)</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s (invk a)) b)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((s s) (a a) (b b-0))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>blanchet 13 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton blanchet
-  (vars (d data) (s skey) (a b b-0 akey))
-  (defstrand resp 2 (d d) (s s) (a a) (b b))
-  (deflistener d)
-  (defstrand init 1 (s s) (a a) (b b-0))
-  (precedes ((0 1) (1 0)) ((2 0) (0 0)))
-  (non-orig (invk a) (invk b))
-  (uniq-orig d s)
-  (operation encryption-test (added-strand init 1) (enc s (invk a))
-    (0 0))
-  (label 13)
-  (parent 12)
-  (unrealized)
-  (shape)
-  (maps ((0 1) ((a a) (b b) (s s) (d d))))
-  (origs (s (2 0)) (d (0 1))))</pre>
-
-<p id="t14">Tree <a href="#top">14</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.760pt' height='154.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.760 154.920' font-size='12.000'>
-  <text
-   x='89.880' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k16&quot;, &quot;_self&quot;)'>16</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k17&quot;, &quot;_self&quot;)'>17</text>
-  <line
-   x1='89.880' y1='39.960' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k15&quot;, &quot;_self&quot;)'>15</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k14&quot;, &quot;_self&quot;)'>14</text>
-  </svg></div>
-
-<pre>(defprotocol blanchet-corrected basic
-  (defrole init
-    (vars (a b akey) (s skey) (d data))
-    (trace (send (enc (enc s b (invk a)) b)) (recv (enc d s)))
-    (uniq-orig s))
-  (defrole resp
-    (vars (a b akey) (s skey) (d data))
-    (trace (recv (enc (enc s b (invk a)) b)) (send (enc d s)))
-    (uniq-orig d))
-  (comment &quot;Corrected Blanchet&apos;s protocol&quot;))</pre>
-
-<p id="k14">Item <a href="#t14">14</a>, Children: <a href="#k15">15</a> <a href="#k16">16</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc d s)</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>blanchet-corrected 14</text></svg></div>
-
-<pre>(defskeleton blanchet-corrected
-  (vars (d data) (s skey) (a b akey))
-  (defstrand init 2 (d d) (s s) (a a) (b b))
-  (non-orig (invk b))
-  (uniq-orig s)
-  (comment &quot;Analyze from the initiator&apos;s perspective&quot;)
-  (label 14)
-  (unrealized (0 1))
-  (origs (s (0 0)))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k15">Item <a href="#t14">15</a>, Parent: <a href="#k14">14</a>, Child: <a href="#k17">17</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc d s)</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s b-0 (invk a-0)) b-0)</title>
-   <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc d s)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a-0) (b b-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>blanchet-corrected 15</text></svg></div>
-
-<pre>(defskeleton blanchet-corrected
-  (vars (d data) (s skey) (a b a-0 b-0 akey))
-  (defstrand init 2 (d d) (s s) (a a) (b b))
-  (defstrand resp 2 (d d) (s s) (a a-0) (b b-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (invk b))
-  (uniq-orig d s)
-  (operation encryption-test (added-strand resp 2) (enc d s) (0 1))
-  (label 15)
-  (parent 14)
-  (unrealized (1 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k16">Item <a href="#t14">16</a>, Parent: <a href="#k14">14</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>s</title><circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>s</title>
-   <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc d s)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>blanchet-corrected 16</text></svg></div>
-
-<pre>(defskeleton blanchet-corrected
-  (vars (d data) (s skey) (a b akey))
-  (defstrand init 2 (d d) (s s) (a a) (b b))
-  (deflistener s)
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (invk b))
-  (uniq-orig s)
-  (operation encryption-test (added-listener s) (enc d s) (0 1))
-  (label 16)
-  (parent 14)
-  (unrealized (1 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k17">Item <a href="#t14">17</a>, Parent: <a href="#k15">15</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc d s)</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc d s)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>blanchet-corrected 17 (realized)</text>
-  </svg></div>
-
-<pre>(defskeleton blanchet-corrected
-  (vars (d data) (s skey) (a b akey))
-  (defstrand init 2 (d d) (s s) (a a) (b b))
-  (defstrand resp 2 (d d) (s s) (a a) (b b))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (invk b))
-  (uniq-orig d s)
-  (operation nonce-test (contracted (a-0 a) (b-0 b)) s (1 0)
-    (enc (enc s b (invk a)) b))
-  (label 17)
-  (parent 15)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (s s) (d d))))
-  (origs (d (1 1)) (s (0 0))))</pre>
-
-<p id="t18">Tree <a href="#top">18</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='229.680pt' height='154.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 229.680 154.920' font-size='12.000'>
-  <text
-   x='89.880' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k20&quot;, &quot;_self&quot;)'>20</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k22&quot;, &quot;_self&quot;)'>22</text>
-  <line
-   x1='139.800' y1='39.960' x2='189.720' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k21&quot;, &quot;_self&quot;)'>21</text>
-  <line
-   x1='89.880' y1='39.960' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k19&quot;, &quot;_self&quot;)'>19</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='63.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k18&quot;, &quot;_self&quot;)'>18</text>
-  </svg></div>
-
-<pre>(defprotocol blanchet-corrected basic
-  (defrole init
-    (vars (a b akey) (s skey) (d data))
-    (trace (send (enc (enc s b (invk a)) b)) (recv (enc d s)))
-    (uniq-orig s))
-  (defrole resp
-    (vars (a b akey) (s skey) (d data))
-    (trace (recv (enc (enc s b (invk a)) b)) (send (enc d s)))
-    (uniq-orig d))
-  (comment &quot;Corrected Blanchet&apos;s protocol&quot;))</pre>
-
-<p id="k18">Item <a href="#t18">18</a>, Children: <a href="#k19">19</a> <a href="#k20">20</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>d</title><circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>d</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc d s)</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>blanchet-corrected 18</text></svg></div>
-
-<pre>(defskeleton blanchet-corrected
-  (vars (d data) (s skey) (a b akey))
-  (defstrand init 2 (d d) (s s) (a a) (b b))
-  (deflistener d)
-  (non-orig (invk b))
-  (uniq-orig s)
-  (comment &quot;From the initiator&apos;s perspective, is the secret leaked?&quot;)
-  (label 18)
-  (unrealized (0 1))
-  (origs (s (0 0)))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k19">Item <a href="#t18">19</a>, Parent: <a href="#k18">18</a>, Child: <a href="#k21">21</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc d s)</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s b-0 (invk a-0)) b-0)</title>
-   <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>d</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc d s)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a-0) (b b-0))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>blanchet-corrected 19</text></svg></div>
-
-<pre>(defskeleton blanchet-corrected
-  (vars (d data) (s skey) (a b a-0 b-0 akey))
-  (defstrand init 2 (d d) (s s) (a a) (b b))
-  (deflistener d)
-  (defstrand resp 2 (d d) (s s) (a a-0) (b b-0))
-  (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 1) (1 0)))
-  (non-orig (invk b))
-  (uniq-orig d s)
-  (operation encryption-test (added-strand resp 2) (enc d s) (0 1))
-  (label 19)
-  (parent 18)
-  (unrealized (1 0) (2 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k20">Item <a href="#t18">20</a>, Parent: <a href="#k18">18</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>s</title><circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>s</title>
-   <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>d</title><circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>d</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc d s)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>blanchet-corrected 20</text></svg></div>
-
-<pre>(defskeleton blanchet-corrected
-  (vars (d data) (s skey) (a b akey))
-  (defstrand init 2 (d d) (s s) (a a) (b b))
-  (deflistener d)
-  (deflistener s)
-  (precedes ((0 0) (2 0)) ((2 1) (0 1)))
-  (non-orig (invk b))
-  (uniq-orig s)
-  (operation encryption-test (added-listener s) (enc d s) (0 1))
-  (label 20)
-  (parent 18)
-  (unrealized (2 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k21">Item <a href="#t18">21</a>, Parent: <a href="#k19">19</a>, Child: <a href="#k22">22</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc d s)</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>d</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc d s)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>blanchet-corrected 21</text></svg></div>
-
-<pre>(defskeleton blanchet-corrected
-  (vars (d data) (s skey) (a b akey))
-  (defstrand init 2 (d d) (s s) (a a) (b b))
-  (deflistener d)
-  (defstrand resp 2 (d d) (s s) (a a) (b b))
-  (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 1) (1 0)))
-  (non-orig (invk b))
-  (uniq-orig d s)
-  (operation nonce-test (contracted (a-0 a) (b-0 b)) s (2 0)
-    (enc (enc s b (invk a)) b))
-  (label 21)
-  (parent 19)
-  (unrealized (1 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k22">Item <a href="#t18">22</a>, Parent: <a href="#k21">21</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 189.960 Q 242.880 152.460 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>s</title><circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>s</title>
-   <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc d s)</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>d</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc d s)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>blanchet-corrected 22</text></svg></div>
-
-<pre>(defskeleton blanchet-corrected
-  (vars (d data) (s skey) (a b akey))
-  (defstrand init 2 (d d) (s s) (a a) (b b))
-  (deflistener d)
-  (defstrand resp 2 (d d) (s s) (a a) (b b))
-  (deflistener s)
-  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((2 1) (0 1)) ((2 1) (1 0))
-    ((3 1) (1 0)))
-  (non-orig (invk b))
-  (uniq-orig d s)
-  (operation nonce-test (added-listener s) d (1 0) (enc d s))
-  (label 22)
-  (parent 21)
-  (unrealized (3 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="t23">Tree <a href="#top">23</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k24&quot;, &quot;_self&quot;)'>24</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k23&quot;, &quot;_self&quot;)'>23</text>
-  </svg></div>
-
-<pre>(defprotocol blanchet-corrected basic
-  (defrole init
-    (vars (a b akey) (s skey) (d data))
-    (trace (send (enc (enc s b (invk a)) b)) (recv (enc d s)))
-    (uniq-orig s))
-  (defrole resp
-    (vars (a b akey) (s skey) (d data))
-    (trace (recv (enc (enc s b (invk a)) b)) (send (enc d s)))
-    (uniq-orig d))
-  (comment &quot;Corrected Blanchet&apos;s protocol&quot;))</pre>
-
-<p id="k23">Item <a href="#t23">23</a>, Child: <a href="#k24">24</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc d s)</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>blanchet-corrected 23</text></svg></div>
-
-<pre>(defskeleton blanchet-corrected
-  (vars (d data) (s skey) (a b akey))
-  (defstrand resp 2 (d d) (s s) (a a) (b b))
-  (non-orig (invk a) (invk b))
-  (uniq-orig d)
-  (comment &quot;Analyze from the responder&apos;s perspective&quot;)
-  (label 23)
-  (unrealized (0 0))
-  (origs (d (0 1)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k24">Item <a href="#t23">24</a>, Parent: <a href="#k23">23</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc d s)</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((s s) (a a) (b b))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>blanchet-corrected 24 (realized)</text>
-  </svg></div>
-
-<pre>(defskeleton blanchet-corrected
-  (vars (d data) (s skey) (a b akey))
-  (defstrand resp 2 (d d) (s s) (a a) (b b))
-  (defstrand init 1 (s s) (a a) (b b))
-  (precedes ((1 0) (0 0)))
-  (non-orig (invk a) (invk b))
-  (uniq-orig d s)
-  (operation encryption-test (added-strand init 1) (enc s b (invk a))
-    (0 0))
-  (label 24)
-  (parent 23)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (s s) (d d))))
-  (origs (s (1 0)) (d (0 1))))</pre>
-
-<p id="t25">Tree <a href="#top">25</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='229.680pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 229.680 79.920' font-size='12.000'>
-  <text
-   x='189.720' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k28&quot;, &quot;_self&quot;)'>28</text>
-  <line
-   x1='139.800' y1='39.960' x2='189.720' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k27&quot;, &quot;_self&quot;)'>27</text>
-  <line
-   x1='89.880' y1='39.960' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k26&quot;, &quot;_self&quot;)'>26</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k25&quot;, &quot;_self&quot;)'>25</text>
-  </svg></div>
-
-<pre>(defprotocol blanchet-corrected basic
-  (defrole init
-    (vars (a b akey) (s skey) (d data))
-    (trace (send (enc (enc s b (invk a)) b)) (recv (enc d s)))
-    (uniq-orig s))
-  (defrole resp
-    (vars (a b akey) (s skey) (d data))
-    (trace (recv (enc (enc s b (invk a)) b)) (send (enc d s)))
-    (uniq-orig d))
-  (comment &quot;Corrected Blanchet&apos;s protocol&quot;))</pre>
-
-<p id="k25">Item <a href="#t25">25</a>, Child: <a href="#k26">26</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>d</title><circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>d</title>
-   <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc d s)</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>blanchet-corrected 25</text></svg></div>
-
-<pre>(defskeleton blanchet-corrected
-  (vars (d data) (s skey) (a b akey))
-  (defstrand resp 2 (d d) (s s) (a a) (b b))
-  (deflistener d)
-  (non-orig (invk a) (invk b))
-  (uniq-orig d)
-  (comment &quot;From the responders&apos;s perspective, is the secret leaked?&quot;)
-  (label 25)
-  (unrealized (0 0) (1 0))
-  (origs (d (0 1)))
-  (preskeleton)
-  (comment &quot;Not a skeleton&quot;))</pre>
-
-<p id="k26">Item <a href="#t25">26</a>, Parent: <a href="#k25">25</a>, Child: <a href="#k27">27</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>d</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc d s)</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>blanchet-corrected 26</text></svg></div>
-
-<pre>(defskeleton blanchet-corrected
-  (vars (d data) (s skey) (a b akey))
-  (defstrand resp 2 (d d) (s s) (a a) (b b))
-  (deflistener d)
-  (precedes ((0 1) (1 0)))
-  (non-orig (invk a) (invk b))
-  (uniq-orig d)
-  (comment &quot;From the responders&apos;s perspective, is the secret leaked?&quot;)
-  (label 26)
-  (parent 25)
-  (unrealized (0 0))
-  (origs (d (0 1)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k27">Item <a href="#t25">27</a>, Parent: <a href="#k26">26</a>, Child: <a href="#k28">28</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 114.960 Q 142.920 77.460 45.960 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>d</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc d s)</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((s s) (a a) (b b))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>blanchet-corrected 27</text></svg></div>
-
-<pre>(defskeleton blanchet-corrected
-  (vars (d data) (s skey) (a b akey))
-  (defstrand resp 2 (d d) (s s) (a a) (b b))
-  (deflistener d)
-  (defstrand init 1 (s s) (a a) (b b))
-  (precedes ((0 1) (1 0)) ((2 0) (0 0)))
-  (non-orig (invk a) (invk b))
-  (uniq-orig d s)
-  (operation encryption-test (added-strand init 1) (enc s b (invk a))
-    (0 0))
-  (label 27)
-  (parent 26)
-  (unrealized (1 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k28">Item <a href="#t25">28</a>, Parent: <a href="#k27">27</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 189.960 Q 242.880 152.460 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>s</title><circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>s</title>
-   <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 142.920 77.460 45.960 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 114.960 Q 286.860 114.960 333.840 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>d</title><circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>d</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc d s)</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc s b (invk a)) b)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((s s) (a a) (b b))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((d d) (s s) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>blanchet-corrected 28</text></svg></div>
-
-<pre>(defskeleton blanchet-corrected
-  (vars (d data) (s skey) (a b akey))
-  (defstrand resp 2 (d d) (s s) (a a) (b b))
-  (deflistener d)
-  (defstrand init 1 (s s) (a a) (b b))
-  (deflistener s)
-  (precedes ((0 1) (1 0)) ((2 0) (0 0)) ((2 0) (3 0)) ((3 1) (1 0)))
-  (non-orig (invk a) (invk b))
-  (uniq-orig d s)
-  (operation nonce-test (added-listener s) d (1 0) (enc d s))
-  (label 28)
-  (parent 27)
-  (unrealized (3 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-</body>
-</html>
diff --git a/doc/examples/bltk_or.scm b/doc/examples/bltk_or.scm
deleted file mode 100644
--- a/doc/examples/bltk_or.scm
+++ /dev/null
@@ -1,28 +0,0 @@
-(herald "Otway-Rees Protocol"
-	(comment "Standard version using variables of sort mesg")
-	(algebra diffie-hellman))
-
-(defprotocol or diffie-hellman
-  (defrole init (vars (a b s name) (na text) (k skey) (m text))
-    (trace
-     (send (cat m a b (enc na m a b (bltk a s))))
-     (recv (cat m (enc na k (bltk a s))))))
-  (defrole resp
-    (vars (a b s name) (nb text) (k skey) (m text) (x y mesg))
-    (trace
-     (recv (cat m a b x))
-     (send (cat m a b x (enc nb m a b (bltk b s))))
-     (recv (cat m y (enc nb k (bltk b s))))
-     (send y)))
-  (defrole serv (vars (a b s name) (na nb text) (k skey) (m text))
-    (trace
-     (recv (cat m a b (enc na m a b (bltk a s))
-		(enc nb m a b (bltk b s))))
-     (send (cat m (enc na k (bltk a s)) (enc nb k (bltk b s)))))
-    (uniq-orig k)))
-
-(defskeleton or
-  (vars (nb text) (s a b name))
-  (defstrand resp 4 (a a) (b b) (s s) (nb nb))
-  (non-orig (bltk a s) (bltk b s))
-  (uniq-orig nb))
diff --git a/doc/examples/bltk_or.xhtml b/doc/examples/bltk_or.xhtml
deleted file mode 100644
--- a/doc/examples/bltk_or.xhtml
+++ /dev/null
@@ -1,1329 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Otway-Rees Protocol</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(herald &quot;Otway-Rees Protocol&quot;
-  (comment &quot;Standard version using variables of sort mesg&quot;)
-  (algebra diffie-hellman))
-(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from bltk_or.scm&quot;)</pre>
-
-<p id="t0">Tree 0.</p>
-
-<div>
- <svg
-  class='diagram' width='279.600pt' height='829.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.600 829.920' font-size='12.000'>
-  <text
-   x='189.720' y='776.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k16&quot;, &quot;_self&quot;)'>16</text>
-  <line
-   x1='139.800' y1='714.960' x2='189.720' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='701.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k15&quot;, &quot;_self&quot;)'>15</text>
-  <line
-   x1='139.800' y1='714.960' x2='189.720' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='626.040'
-   style='font-style: italic; text-anchor: middle; fill: green;'
-   onclick='window.open(&quot;#k13&quot;, &quot;_self&quot;)'>13</text>
-  <line
-   x1='139.800' y1='714.960' x2='189.720' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='701.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k8&quot;, &quot;_self&quot;)'>8</text>
-  <line
-   x1='89.880' y1='714.960' x2='139.800' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='701.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k4&quot;, &quot;_self&quot;)'>4</text>
-  <line
-   x1='39.960' y1='414.960' x2='89.880' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='551.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k7&quot;, &quot;_self&quot;)'>7</text>
-  <line
-   x1='89.880' y1='564.960' x2='139.800' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='551.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k3&quot;, &quot;_self&quot;)'>3</text>
-  <line
-   x1='39.960' y1='414.960' x2='89.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='476.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k14&quot;, &quot;_self&quot;)'>14</text>
-  <line
-   x1='139.800' y1='377.460' x2='189.720' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='401.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k13&quot;, &quot;_self&quot;)'>13</text>
-  <line
-   x1='139.800' y1='377.460' x2='189.720' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='326.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k12&quot;, &quot;_self&quot;)'>12</text>
-  <line
-   x1='139.800' y1='377.460' x2='189.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='251.040'
-   style='font-style: italic; text-anchor: middle; fill: green;'
-   onclick='window.open(&quot;#k10&quot;, &quot;_self&quot;)'>10</text>
-  <line
-   x1='139.800' y1='377.460' x2='189.720' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='363.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k6&quot;, &quot;_self&quot;)'>6</text>
-  <line
-   x1='89.880' y1='377.460' x2='139.800' y2='377.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='363.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k2&quot;, &quot;_self&quot;)'>2</text>
-  <line
-   x1='39.960' y1='414.960' x2='89.880' y2='377.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='176.040'
-   style='font-style: italic; text-anchor: middle; fill: green;'
-   onclick='window.open(&quot;#k13&quot;, &quot;_self&quot;)'>13</text>
-  <line
-   x1='189.720' y1='189.960' x2='239.640' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='176.040' style='text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k11&quot;, &quot;_self&quot;)'>11</text>
-  <line
-   x1='139.800' y1='114.960' x2='189.720' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='101.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k10&quot;, &quot;_self&quot;)'>10</text>
-  <line
-   x1='139.800' y1='114.960' x2='189.720' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='26.040'
-   style='font-style: italic; text-anchor: middle; fill: green;'
-   onclick='window.open(&quot;#k12&quot;, &quot;_self&quot;)'>12</text>
-  <line
-   x1='189.720' y1='39.960' x2='239.640' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='26.040' style='text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k9&quot;, &quot;_self&quot;)'>9</text>
-  <line
-   x1='139.800' y1='114.960' x2='189.720' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='101.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k5&quot;, &quot;_self&quot;)'>5</text>
-  <line
-   x1='89.880' y1='114.960' x2='139.800' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='101.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k1&quot;, &quot;_self&quot;)'>1</text>
-  <line
-   x1='39.960' y1='414.960' x2='89.880' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='401.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol or diffie-hellman
-  (defrole init
-    (vars (a b s name) (na text) (k skey) (m text))
-    (trace (send (cat m a b (enc na m a b (bltk a s))))
-      (recv (cat m (enc na k (bltk a s))))))
-  (defrole resp
-    (vars (a b s name) (nb text) (k skey) (m text) (x y mesg))
-    (trace (recv (cat m a b x))
-      (send (cat m a b x (enc nb m a b (bltk b s))))
-      (recv (cat m y (enc nb k (bltk b s)))) (send y)))
-  (defrole serv
-    (vars (a b s name) (na nb text) (k skey) (m text))
-    (trace
-      (recv
-        (cat m a b (enc na m a b (bltk a s)) (enc nb m a b (bltk b s))))
-      (send (cat m (enc na k (bltk a s)) (enc nb k (bltk b s)))))
-    (uniq-orig k)))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>, Children: <a href="#k1">1</a> <a href="#k2">2</a> <a href="#k3">3</a> <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (bltk s b)))</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat m a b x (enc nb m a b (bltk s b)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a b x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text x='39.960' y='39.960' style='text-anchor: middle;'>or 0</text>
-  </svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m text) (s a b name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (non-orig (bltk s a) (bltk s b))
-  (uniq-orig nb)
-  (label 0)
-  (unrealized (0 2))
-  (origs (nb (0 1)))
-  (comment &quot;4 in cohort - 4 not yet seen&quot;))</pre>
-
-<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k5">5</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat m-0 (enc na k (bltk b a-0)) (enc nb k (bltk s b)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m-0 a-0 s (enc na m-0 a-0 s (bltk b a-0)) (enc nb m-0 a-0 s (bltk s b)))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (bltk s b)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a b x (enc nb m a b (bltk s b)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a b x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((na na) (nb nb) (m m-0) (a a-0) (b s) (s b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>or 1</text>
-  </svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m na m-0 text) (s a b a-0 name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m-0) (a a-0) (b s) (s b) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (bltk s a) (bltk s b))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand serv 2) (enc nb k (bltk s b))
-    (0 2))
-  (label 1)
-  (parent 0)
-  (unrealized (1 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k6">6</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat m-0 (enc na k (bltk s a-0)) (enc nb k (bltk s b)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m-0 a-0 b (enc na m-0 a-0 b (bltk s a-0)) (enc nb m-0 a-0 b (bltk s b)))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (bltk s b)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a b x (enc nb m a b (bltk s b)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a b x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((na na) (nb nb) (m m-0) (a a-0) (b b) (s s) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>or 2</text>
-  </svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m na m-0 text) (s a b a-0 name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m-0) (a a-0) (b b) (s s) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (bltk s a) (bltk s b))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand serv 2) (enc nb k (bltk s b))
-    (0 2))
-  (label 2)
-  (parent 0)
-  (unrealized (1 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k7">7</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat m-0 (enc nb k (bltk s b)) (enc nb-0 k (bltk b b-0)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m-0 s b-0 (enc nb m-0 s b-0 (bltk s b)) (enc nb-0 m-0 s b-0 (bltk b b-0)))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (bltk s b)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a b x (enc nb m a b (bltk s b)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a b x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((na nb) (nb nb-0) (m m-0) (a s) (b b-0) (s b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>or 3</text>
-  </svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m nb-0 m-0 text) (s a b b-0 name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb-0) (m m-0) (a s) (b b-0) (s b) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (bltk s a) (bltk s b))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand serv 2) (enc nb k (bltk s b))
-    (0 2))
-  (label 3)
-  (parent 0)
-  (unrealized (1 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k4">Item <a href="#t0">4</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k8">8</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat m-0 (enc nb k (bltk s b)) (enc nb-0 k (bltk s b-0)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m-0 b b-0 (enc nb m-0 b b-0 (bltk s b)) (enc nb-0 m-0 b b-0 (bltk s b-0)))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (bltk s b)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a b x (enc nb m a b (bltk s b)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a b x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((na nb) (nb nb-0) (m m-0) (a b) (b b-0) (s s) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>or 4</text>
-  </svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m nb-0 m-0 text) (s a b b-0 name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb-0) (m m-0) (a b) (b b-0) (s s) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (bltk s a) (bltk s b))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand serv 2) (enc nb k (bltk s b))
-    (0 2))
-  (label 4)
-  (parent 0)
-  (unrealized (1 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k5">Item <a href="#t0">5</a>, Parent: <a href="#k1">1</a>, Children: <a href="#k9">9</a> <a href="#k10">10</a> <a href="#k11">11</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m (enc na k (bltk a b)) (enc nb k (bltk b b)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m a b (enc na m a b (bltk a b)) (enc nb m a b (bltk b b)))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (bltk b b)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a b x (enc nb m a b (bltk b b)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a b x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((na na) (nb nb) (m m) (a a) (b b) (s b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s b) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>or 5</text>
-  </svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m na text) (a b name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s b) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s b) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (bltk a b) (bltk b b))
-  (uniq-orig nb k)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc nb m-0 a-0 s (bltk s b)) (1 0))
-  (label 5)
-  (parent 1)
-  (unrealized (1 0))
-  (comment &quot;3 in cohort - 3 not yet seen&quot;))</pre>
-
-<p id="k6">Item <a href="#t0">6</a>, Parent: <a href="#k2">2</a>, Children: <a href="#k12">12</a> <a href="#k13">13</a> <a href="#k14">14</a>, Seen Child: <a href="#k10">10</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m (enc na k (bltk s a)) (enc nb k (bltk s b)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m a b (enc na m a b (bltk s a)) (enc nb m a b (bltk s b)))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (bltk s b)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a b x (enc nb m a b (bltk s b)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a b x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((na na) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>or 6</text>
-  </svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m na text) (s a b name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (bltk s a) (bltk s b))
-  (uniq-orig nb k)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc nb m-0 a-0 b (bltk s b)) (1 0))
-  (label 6)
-  (parent 2)
-  (seen 10)
-  (unrealized (1 0))
-  (comment &quot;4 in cohort - 3 not yet seen&quot;))</pre>
-
-<p id="k7">Item <a href="#t0">7</a>, Parent: <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat m (enc nb k (bltk a b)) (enc nb-0 k (bltk b b)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m a b (enc nb m a b (bltk a b)) (enc nb-0 m a b (bltk b b)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (bltk a b)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a b x (enc nb m a b (bltk a b)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a b x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((na nb) (nb nb-0) (m m) (a a) (b b) (s b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s a) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>or 7 (realized)</text></svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m nb-0 text) (a b name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s a) (k k))
-  (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b b) (s b) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (bltk a a) (bltk a b))
-  (uniq-orig nb k)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc nb m-0 s b (bltk s b)) (1 0))
-  (label 7)
-  (parent 3)
-  (unrealized)
-  (shape)
-  (maps ((0) ((nb nb) (s a) (a a) (b b) (k k) (m m) (x x) (y y))))
-  (origs (k (1 1)) (nb (0 1))))</pre>
-
-<p id="k8">Item <a href="#t0">8</a>, Parent: <a href="#k4">4</a>, Children: <a href="#k15">15</a> <a href="#k16">16</a>, Seen Child: <a href="#k13">13</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat m (enc nb k (bltk s a)) (enc nb-0 k (bltk s a)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m a a (enc nb m a a (bltk s a)) (enc nb-0 m a a (bltk s a)))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (bltk s a)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a a x (enc nb m a a (bltk s a)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a a x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>or 8</text>
-  </svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m nb-0 text) (s a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (bltk s a))
-  (uniq-orig nb k)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc nb m-0 b b (bltk s b)) (1 0))
-  (label 8)
-  (parent 4)
-  (seen 13)
-  (unrealized (1 0))
-  (comment &quot;3 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k9">Item <a href="#t0">9</a>, Parent: <a href="#k5">5</a>, Seen Child: <a href="#k12">12</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 114.960 Q 192.300 150.660 144.719 186.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a b (enc na m a b (bltk a b)))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m (enc na k (bltk a b)) (enc nb k (bltk b b)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m a b (enc na m a b (bltk a b)) (enc nb m a b (bltk b b)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (bltk b b)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a b x (enc nb m a b (bltk b b)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a b x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((na na) (m m) (a a) (b b) (s b))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((na na) (nb nb) (m m) (a a) (b b) (s b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s b) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>or 9 (realized)</text></svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m na text) (a b name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s b) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s b) (k k))
-  (defstrand init 1 (na na) (m m) (a a) (b b) (s b))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))
-  (non-orig (bltk a b) (bltk b b))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand init 1)
-    (enc na m a b (bltk a b)) (1 0))
-  (label 9)
-  (parent 5)
-  (seen 12)
-  (unrealized)
-  (comment &quot;1 in cohort - 0 not yet seen&quot;))</pre>
-
-<p id="k10">Item <a href="#t0">10</a>, Parent: <a href="#k5">5</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a b x-0 (enc na m a b (bltk a b)))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a b x-0)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m (enc na k (bltk a b)) (enc nb k (bltk b b)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m a b (enc na m a b (bltk a b)) (enc nb m a b (bltk b b)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (bltk b b)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a b x (enc nb m a b (bltk b b)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a b x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((x x-0) (nb na) (m m) (a a) (b b) (s a))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((na na) (nb nb) (m m) (a a) (b b) (s b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s b) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>or 10 (realized)</text></svg></div>
-
-<pre>(defskeleton or
-  (vars (x y x-0 mesg) (nb m na text) (a b name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s b) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s b) (k k))
-  (defstrand resp 2 (x x-0) (nb na) (m m) (a a) (b b) (s a))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))
-  (non-orig (bltk a b) (bltk b b))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand resp 2)
-    (enc na m a b (bltk a b)) (1 0))
-  (label 10)
-  (parent 5)
-  (unrealized)
-  (shape)
-  (maps ((0) ((nb nb) (s b) (a a) (b b) (k k) (m m) (x x) (y y))))
-  (origs (k (1 1)) (nb (0 1))))</pre>
-
-<p id="k11">Item <a href="#t0">11</a>, Parent: <a href="#k5">5</a>, Seen Child: <a href="#k13">13</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m (enc nb k (bltk a a)) (enc nb k (bltk a a)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m a a (enc nb m a a (bltk a a)) (enc nb m a a (bltk a a)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (bltk a a)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a a x (enc nb m a a (bltk a a)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a a x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((na nb) (nb nb) (m m) (a a) (b a) (s a) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s a) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>or 11 (realized)</text></svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m text) (a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s a) (k k))
-  (defstrand serv 2 (na nb) (nb nb) (m m) (a a) (b a) (s a) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (bltk a a))
-  (uniq-orig nb k)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc na m a a (bltk a a)) (1 0))
-  (label 11)
-  (parent 5)
-  (seen 13)
-  (unrealized)
-  (comment &quot;1 in cohort - 0 not yet seen&quot;))</pre>
-
-<p id="k12">Item <a href="#t0">12</a>, Parent: <a href="#k6">6</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 114.960 Q 192.300 150.660 144.719 186.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a b (enc na m a b (bltk s a)))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m (enc na k (bltk s a)) (enc nb k (bltk s b)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m a b (enc na m a b (bltk s a)) (enc nb m a b (bltk s b)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (bltk s b)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a b x (enc nb m a b (bltk s b)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a b x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((na na) (m m) (a a) (b b) (s s))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((na na) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>or 12 (realized)</text></svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m na text) (s a b name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand init 1 (na na) (m m) (a a) (b b) (s s))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))
-  (non-orig (bltk s a) (bltk s b))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand init 1)
-    (enc na m a b (bltk s a)) (1 0))
-  (label 12)
-  (parent 6)
-  (unrealized)
-  (shape)
-  (maps ((0) ((nb nb) (s s) (a a) (b b) (k k) (m m) (x x) (y y))))
-  (origs (k (1 1)) (nb (0 1))))</pre>
-
-<p id="k13">Item <a href="#t0">13</a>, Parent: <a href="#k6">6</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m (enc nb k (bltk s a)) (enc nb k (bltk s a)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m a a (enc nb m a a (bltk s a)) (enc nb m a a (bltk s a)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (bltk s a)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a a x (enc nb m a a (bltk s a)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a a x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((na nb) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>or 13 (realized)</text></svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m text) (s a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (bltk s a))
-  (uniq-orig nb k)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc na m a a (bltk s a)) (1 0))
-  (label 13)
-  (parent 6)
-  (unrealized)
-  (shape)
-  (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))
-  (origs (k (1 1)) (nb (0 1))))</pre>
-
-<p id="k14">Item <a href="#t0">14</a>, Parent: <a href="#k6">6</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a a x-0 (enc na m a a (bltk s a)))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a a x-0)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m (enc na k (bltk s a)) (enc nb k (bltk s a)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m a a (enc na m a a (bltk s a)) (enc nb m a a (bltk s a)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (bltk s a)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a a x (enc nb m a a (bltk s a)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a a x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((x x-0) (nb na) (m m) (a a) (b a) (s s))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((na na) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>or 14 (realized)</text></svg></div>
-
-<pre>(defskeleton or
-  (vars (x y x-0 mesg) (nb m na text) (s a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand resp 2 (x x-0) (nb na) (m m) (a a) (b a) (s s))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))
-  (non-orig (bltk s a))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand resp 2)
-    (enc na m a a (bltk s a)) (1 0))
-  (label 14)
-  (parent 6)
-  (unrealized)
-  (shape)
-  (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))
-  (origs (k (1 1)) (nb (0 1))))</pre>
-
-<p id="k15">Item <a href="#t0">15</a>, Parent: <a href="#k8">8</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 114.960 Q 192.300 150.660 144.719 186.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a a (enc nb-0 m a a (bltk s a)))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat m (enc nb k (bltk s a)) (enc nb-0 k (bltk s a)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m a a (enc nb m a a (bltk s a)) (enc nb-0 m a a (bltk s a)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (bltk s a)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a a x (enc nb m a a (bltk s a)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a a x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((na nb-0) (m m) (a a) (b a) (s s))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>or 15 (realized)</text></svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m nb-0 text) (s a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))
-  (defstrand init 1 (na nb-0) (m m) (a a) (b a) (s s))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))
-  (non-orig (bltk s a))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand init 1)
-    (enc nb-0 m a a (bltk s a)) (1 0))
-  (label 15)
-  (parent 8)
-  (unrealized)
-  (shape)
-  (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))
-  (origs (k (1 1)) (nb (0 1))))</pre>
-
-<p id="k16">Item <a href="#t0">16</a>, Parent: <a href="#k8">8</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a a x-0 (enc nb-0 m a a (bltk s a)))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a a x-0)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat m (enc nb k (bltk s a)) (enc nb-0 k (bltk s a)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m a a (enc nb m a a (bltk s a)) (enc nb-0 m a a (bltk s a)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (bltk s a)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a a x (enc nb m a a (bltk s a)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a a x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((x x-0) (nb nb-0) (m m) (a a) (b a) (s s))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>or 16 (realized)</text></svg></div>
-
-<pre>(defskeleton or
-  (vars (x y x-0 mesg) (nb m nb-0 text) (s a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))
-  (defstrand resp 2 (x x-0) (nb nb-0) (m m) (a a) (b a) (s s))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))
-  (non-orig (bltk s a))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand resp 2)
-    (enc nb-0 m a a (bltk s a)) (1 0))
-  (label 16)
-  (parent 8)
-  (unrealized)
-  (shape)
-  (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))
-  (origs (k (1 1)) (nb (0 1))))</pre>
-
-</body>
-</html>
diff --git a/doc/examples/bltk_test.scm b/doc/examples/bltk_test.scm
deleted file mode 100644
--- a/doc/examples/bltk_test.scm
+++ /dev/null
@@ -1,74 +0,0 @@
-(herald "bltk Test File"
-	(algebra diffie-hellman)
-   (bound 12))
-
-(defprotocol test diffie-hellman
-  (defrole r
-    (vars (a b name) (n text))
-    (trace 
-     (send (enc n (bltk a b)))
-     (recv (enc n (bltk b a))))
-    (uniq-orig n)))
-
-;; This POV is realized. That demonstrates that (bltk a b) = (bltk b a)
-(defskeleton test
-   (vars (a b name))
-   (defstrand r 2 (a a) (b b))
-   (non-orig (bltk a b) (bltk b a)))
-
-;; These next two skeletons show that it is sufficient to declare
-;; either (bltk a b) or (bltk b a) to be non.
-(defskeleton test
-   (vars (a b name) (n text))
-   (defstrand r 2 (a a) (b b) (n n))
-   (deflistener n)
-   (non-orig (bltk a b)))
-
-(defskeleton test
-   (vars (a b name) (n text))
-   (defstrand r 2 (a a) (b b) (n n))
-   (deflistener n)
-   (non-orig (bltk b a)))
-
-;; This is the same protocol as above with bltk replaced with ltk
-(defprotocol test2 diffie-hellman
-  (defrole r
-    (vars (a b name) (n text))
-    (trace 
-     (send (enc n (ltk a b)))
-     (recv (enc n (ltk b a))))
-    (uniq-orig n)))
-
-;; The only way to realize this skeleton is to learn that a = b. This
-;; is in contrast to the first skeleton above. 
-(defskeleton test2
-   (vars (a b name))
-   (defstrand r 2 (a a) (b b))
-   (non-orig (ltk a b)))
-
-
-;; This protocol demonstrates that the position of the names a and b
-;; in (bltk a b) are not enough to determine which principal is
-;; inhabiting the role. The first send of each role commits to the
-;; identity of itself and its peer. 
-(defprotocol test3 diffie-hellman
-  (defrole recvr
-    (vars (a b name) (n text))
-    (trace
-     (send (cat "i am" a "you are" b))
-     (recv (enc n (bltk a b)))))
-  (defrole sender
-    (vars (a b name) (n text))
-    (trace
-     (send (cat "i am" b "you are" a))
-     (send (enc n (bltk a b))))
-    (uniq-orig n)))
-
-;; Since (bltk a b) = (bltk b a) the recvr role may receive the
-;; encryption from its inteded peer or from itself. That is, both a
-;; and b use the same key when inhabiting the sender role.
-(defskeleton test3
-  (vars (a b name))
-  (defstrand recvr 2 (a a) (b b))
-  (non-orig (bltk a b)))
-
diff --git a/doc/examples/dh_mim.scm b/doc/examples/dh_mim.scm
deleted file mode 100644
--- a/doc/examples/dh_mim.scm
+++ /dev/null
@@ -1,40 +0,0 @@
-; Unauthenticated Diffie-Hellman key exchange
-
-; In this example, the initiator and responder roles participate in a
-; Diffie-Hellman exchange, and then a nonce is transmitted by the
-; initiator and received by the responder.  
-
-; A man-in-the-middle attack is possible, because there is no 
-; attempt made to authenticate either of the parties.  Therefore, the
-; adversary may emulate the responder to the initator and vice versa.
-
-(herald "Diffie-Hellman protocol, man-in-the-middle attack" (algebra diffie-hellman)
-)
-
-(defprotocol dh_mim diffie-hellman
-  (defrole init
-    (vars (x rndx) (h base) (n text))
-    (trace
-     (send (exp (gen) x))
-     (recv h)
-     (send (enc n (exp h x))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (h base) (n text))
-    (trace
-     (recv h)
-     (send (exp (gen) y))
-     (recv (enc n (exp h y))))
-    (uniq-gen y))
-  (comment "Diffie-hellman key exchange followed by an encryption"))
-
-
-(defskeleton dh_mim
-  (vars (n text) (hx hy base) (x y rndx))
-  (defstrand init 3 (n n) (h hy) (x x))
-  (defstrand resp 3 (n n) (h hx) (y y))
-  (precedes ((0 2) (1 2)))
-  (uniq-orig n)
-  (pen-non-orig x y)
-  (comment "Agreement on the encrypted text only"))
-
diff --git a/doc/examples/dh_mim.xhtml b/doc/examples/dh_mim.xhtml
deleted file mode 100644
# file too large to diff: doc/examples/dh_mim.xhtml
diff --git a/doc/examples/envelope.scm b/doc/examples/envelope.scm
deleted file mode 100644
--- a/doc/examples/envelope.scm
+++ /dev/null
@@ -1,129 +0,0 @@
-;;; Mark Ryan's envelope protocol, implemented using TPMs.
-;;; The protocol includes roles to emulate interactions with a simplified
-;;; TPM (trusted platform module) that only has a single Platform
-;;; Configuration Register (PCR).  
-
-;;; The true protocol is encoded in the "alice" role.  Alice is a
-;;; teenager who wants to go out for an evening and maintain privacy
-;;; about her itinerary, but her parents insist on being able to know in
-;;; an emergency.
-
-;;; Alice uses a TPM-created key to encrypt the itinerary (represented
-;;; by 'v' for value).  Alice's parents can alter the state of the TPM
-;;; in either of two ways, but not in both: they can extend with
-;;; "obtain", which will enable decryption of 'v'.  Or, they can
-;;; extend with "refuse", which serves to represent permanently declining
-;;; the option to open the envelope.  
-
-(herald "Envelope Protocol" (bound 20))
-
-;;; Encoding of a PCR extend operation
-(defmacro (extend val old)
-  (hash val old))
-
-;; This is the refusal token
-(defmacro (refuse n pcr v k aik)
-  (enc "quote" (extend "refuse" (extend n pcr)) (enc v k) aik))
-
-(defprotocol envelope basic
-
-  ;; Power on sets the TPM to the boot state
-  (defrole tpm-power-on
-    (vars (state mesg))
-    (trace
-     (init "0")))
-
-  ;; TPM Quote has a fake event to deal with the fact that a variable
-  ;; of sort mesg must be acquired.
-  (defrole tpm-quote
-    (vars (nonce pcr mesg) (aik akey))
-    (trace
-     (recv (cat "quote" nonce))
-     (obsv pcr)
-     (send (enc "quote" pcr nonce aik)))
-    (non-orig aik))
-
-  ;; The extend command occurs only within an encrypted session.  We
-  ;; assume some session key already exists
-  (defrole tpm-extend-enc
-    (vars (value state mesg) (esk skey) (tne tno data)
-	  (tpmkey akey))
-    (trace
-     (recv (cat "establish transport"
-		tpmkey (enc esk tpmkey)))
-     (send (cat "establish transport" tne))
-     (recv (cat "execute transport"
-		(cat "extend" (enc value esk))
-		tno "false"
-		(hash esk (hash "execute transport"
-				(hash "extend"
-				      (enc value esk)))
-				tne tno "false")))
-     (tran state (extend value state)))
-    (uniq-orig tne)
-    (non-orig (invk tpmkey)))
-
-  ;; This role creates a key whose use is restricted to a requested
-  ;; pcr value (since we only model one pcr).  It doesn't create or
-  ;; change any TPM state.
-  (defrole tpm-create-key
-    (vars (k aik akey) (pcr mesg) (esk skey))
-    (trace
-     (recv (enc "create key" pcr esk)) ;; encryption prevents weird shapes
-     (send (enc "created" k pcr aik)));; no tpm state is set
-    (uniq-orig k)
-    (non-orig (invk k) aik esk))
-
-  ;; This role receives an encryption and a previously made key
-  ;; structure that restricts the decryption key to be used with a
-  ;; certain pcr value.  It retrieves the current value and checks
-  ;; that it matches before decrypting.
-  (defrole tpm-decrypt
-    (vars (m pcr mesg) (k aik akey))
-    (trace
-     (recv (cat "decrypt" (enc m k)))
-     (recv (enc "created" k pcr aik))
-     (obsv pcr)
-     (send m))
-    (non-orig aik))
-
-  ;; Alice extends a pcr with a fresh nonce in an encrypted session.
-  ;; She has the TPM create a new key whose use is bound to the hash
-  ;; of pcr value she just created with the string "obtain".  She then
-  ;; encrypts her fresh secret with this newly created key.  This role
-  ;; has a fake reception event to deal with he fact that pcr must be
-  ;; acquired.
-  (defrole alice
-    (vars (v n tne tno data) (esk1 esk skey) (k aik tpmkey akey)
-	  (pcr mesg))
-    (trace
-     (send (cat "establish transport"
-		tpmkey (enc esk tpmkey)))
-     (recv (cat "establish transport" tne))
-     (send (cat "execute transport"
-		(cat "extend" (enc n esk))
-		tno "false"
-		(hash esk (hash "execute transport"
-				(hash "extend"
-				      (enc n esk)))
-				tne tno "false")))
-     (recv pcr)				; Fake event
-     (send (enc "create key" (extend "obtain" (extend n pcr)) esk1))
-     (recv (enc "created" k (extend "obtain" (extend n pcr)) aik))
-     (send (enc v k)))
-    (uniq-orig n v tno esk)
-    (neq (tno n))
-    (non-orig aik esk1 (invk tpmkey))))
-
-;;; Initial skeleton
-(defskeleton envelope
-  (vars (v n data) (k aik akey) (pcr mesg))
-  (deflistener (refuse n pcr v k aik))
-  (deflistener v)
-  (defstrand alice 7 (n n) (pcr pcr) (v v) (k k) (aik aik)))
-
-(defskeleton envelope
-  (vars (v data))
-  (deflistener v)
-  (defstrand alice 7 (v v)))
-
diff --git a/doc/examples/envelope.xhtml b/doc/examples/envelope.xhtml
deleted file mode 100644
--- a/doc/examples/envelope.xhtml
+++ /dev/null
@@ -1,21433 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Envelope Protocol</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(herald &quot;Envelope Protocol&quot; (bound 20))
-(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from envelope.scm&quot;)
-(comment &quot;Strand count bounded at 20&quot;)</pre>
-
-<p id="top">Trees: <a href="#t0">0</a> <a href="#t59">59</a>.</p>
-
-<p id="t0">Tree <a href="#top">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='978.480pt' height='1729.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 978.480 1729.920' font-size='12.000'>
-  <text
-   x='688.920' y='1676.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k41&quot;, &quot;_self&quot;)'>41</text>
-  <line
-   x1='639.000' y1='1689.960' x2='688.920' y2='1689.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='639.000' y='1676.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k37&quot;, &quot;_self&quot;)'>37</text>
-  <line
-   x1='589.080' y1='1652.460' x2='639.000' y2='1689.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='639.000' y='1601.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k36&quot;, &quot;_self&quot;)'>36</text>
-  <line
-   x1='589.080' y1='1652.460' x2='639.000' y2='1614.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='589.080' y='1638.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k32&quot;, &quot;_self&quot;)'>32</text>
-  <line
-   x1='539.160' y1='1539.960' x2='589.080' y2='1652.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='589.080' y='1526.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k31&quot;, &quot;_self&quot;)'>31</text>
-  <line
-   x1='539.160' y1='1539.960' x2='589.080' y2='1539.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='688.920' y='1451.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k40&quot;, &quot;_self&quot;)'>40</text>
-  <line
-   x1='639.000' y1='1464.960' x2='688.920' y2='1464.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='639.000' y='1451.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k35&quot;, &quot;_self&quot;)'>35</text>
-  <line
-   x1='589.080' y1='1427.460' x2='639.000' y2='1464.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='639.000' y='1376.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k34&quot;, &quot;_self&quot;)'>34</text>
-  <line
-   x1='589.080' y1='1427.460' x2='639.000' y2='1389.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='589.080' y='1413.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k30&quot;, &quot;_self&quot;)'>30</text>
-  <line
-   x1='539.160' y1='1539.960' x2='589.080' y2='1427.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='539.160' y='1526.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k26&quot;, &quot;_self&quot;)'>26</text>
-  <line
-   x1='489.240' y1='1502.460' x2='539.160' y2='1539.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='589.080' y='1301.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k29&quot;, &quot;_self&quot;)'>29</text>
-  <line
-   x1='539.160' y1='1314.960' x2='589.080' y2='1314.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='539.160' y='1301.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k25&quot;, &quot;_self&quot;)'>25</text>
-  <line
-   x1='489.240' y1='1502.460' x2='539.160' y2='1314.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='489.240' y='1488.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k20&quot;, &quot;_self&quot;)'>20</text>
-  <line
-   x1='439.320' y1='1464.960' x2='489.240' y2='1502.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='589.080' y='1226.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k28&quot;, &quot;_self&quot;)'>28</text>
-  <line
-   x1='539.160' y1='1239.960' x2='589.080' y2='1239.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='539.160' y='1226.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k24&quot;, &quot;_self&quot;)'>24</text>
-  <line
-   x1='489.240' y1='1239.960' x2='539.160' y2='1239.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='489.240' y='1226.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k19&quot;, &quot;_self&quot;)'>19</text>
-  <line
-   x1='439.320' y1='1464.960' x2='489.240' y2='1239.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='439.320' y='1451.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k14&quot;, &quot;_self&quot;)'>14</text>
-  <line
-   x1='389.400' y1='1014.960' x2='439.320' y2='1464.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='539.160' y='1151.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k23&quot;, &quot;_self&quot;)'>23</text>
-  <line
-   x1='489.240' y1='1164.960' x2='539.160' y2='1164.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='489.240' y='1151.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k18&quot;, &quot;_self&quot;)'>18</text>
-  <line
-   x1='439.320' y1='789.960' x2='489.240' y2='1164.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='489.240' y='1076.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k17&quot;, &quot;_self&quot;)'>17</text>
-  <line
-   x1='439.320' y1='789.960' x2='489.240' y2='1089.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='539.160' y='1001.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k22&quot;, &quot;_self&quot;)'>22</text>
-  <line
-   x1='489.240' y1='714.960' x2='539.160' y2='1014.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='938.520' y='926.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k58&quot;, &quot;_self&quot;)'>58</text>
-  <line
-   x1='888.600' y1='939.960' x2='938.520' y2='939.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='888.600' y='926.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k56&quot;, &quot;_self&quot;)'>56</text>
-  <line
-   x1='838.680' y1='902.460' x2='888.600' y2='939.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='888.600' y='851.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k55&quot;, &quot;_self&quot;)'>55</text>
-  <line
-   x1='838.680' y1='902.460' x2='888.600' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='838.680' y='888.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k52&quot;, &quot;_self&quot;)'>52</text>
-  <line
-   x1='788.760' y1='789.960' x2='838.680' y2='902.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='838.680' y='776.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k51&quot;, &quot;_self&quot;)'>51</text>
-  <line
-   x1='788.760' y1='789.960' x2='838.680' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='938.520' y='701.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k57&quot;, &quot;_self&quot;)'>57</text>
-  <line
-   x1='888.600' y1='714.960' x2='938.520' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='888.600' y='701.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k54&quot;, &quot;_self&quot;)'>54</text>
-  <line
-   x1='838.680' y1='677.460' x2='888.600' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='888.600' y='626.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k53&quot;, &quot;_self&quot;)'>53</text>
-  <line
-   x1='838.680' y1='677.460' x2='888.600' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='838.680' y='663.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k50&quot;, &quot;_self&quot;)'>50</text>
-  <line
-   x1='788.760' y1='789.960' x2='838.680' y2='677.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='788.760' y='776.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k47&quot;, &quot;_self&quot;)'>47</text>
-  <line
-   x1='738.840' y1='752.460' x2='788.760' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='838.680' y='551.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k49&quot;, &quot;_self&quot;)'>49</text>
-  <line
-   x1='788.760' y1='564.960' x2='838.680' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='788.760' y='551.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k46&quot;, &quot;_self&quot;)'>46</text>
-  <line
-   x1='738.840' y1='752.460' x2='788.760' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='738.840' y='738.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k44&quot;, &quot;_self&quot;)'>44</text>
-  <line
-   x1='688.920' y1='714.960' x2='738.840' y2='752.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='838.680' y='476.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k48&quot;, &quot;_self&quot;)'>48</text>
-  <line
-   x1='788.760' y1='489.960' x2='838.680' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='788.760' y='476.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k45&quot;, &quot;_self&quot;)'>45</text>
-  <line
-   x1='738.840' y1='489.960' x2='788.760' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='738.840' y='476.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k43&quot;, &quot;_self&quot;)'>43</text>
-  <line
-   x1='688.920' y1='714.960' x2='738.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='688.920' y='701.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k39&quot;, &quot;_self&quot;)'>39</text>
-  <line
-   x1='639.000' y1='677.460' x2='688.920' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='738.840' y='401.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k42&quot;, &quot;_self&quot;)'>42</text>
-  <line
-   x1='688.920' y1='414.960' x2='738.840' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='688.920' y='401.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k38&quot;, &quot;_self&quot;)'>38</text>
-  <line
-   x1='639.000' y1='677.460' x2='688.920' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='639.000' y='663.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k33&quot;, &quot;_self&quot;)'>33</text>
-  <line
-   x1='589.080' y1='677.460' x2='639.000' y2='677.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='589.080' y='663.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k27&quot;, &quot;_self&quot;)'>27</text>
-  <line
-   x1='539.160' y1='677.460' x2='589.080' y2='677.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='539.160' y='663.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k21&quot;, &quot;_self&quot;)'>21</text>
-  <line
-   x1='489.240' y1='714.960' x2='539.160' y2='677.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='489.240' y='701.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k16&quot;, &quot;_self&quot;)'>16</text>
-  <line
-   x1='439.320' y1='789.960' x2='489.240' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='439.320' y='776.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k13&quot;, &quot;_self&quot;)'>13</text>
-  <line
-   x1='389.400' y1='1014.960' x2='439.320' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='489.240' y='326.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k15&quot;, &quot;_self&quot;)'>15</text>
-  <line
-   x1='439.320' y1='339.960' x2='489.240' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='439.320' y='326.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k12&quot;, &quot;_self&quot;)'>12</text>
-  <line
-   x1='389.400' y1='1014.960' x2='439.320' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='389.400' y='1001.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k11&quot;, &quot;_self&quot;)'>11</text>
-  <line
-   x1='339.480' y1='1014.960' x2='389.400' y2='1014.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='339.480' y='1001.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k10&quot;, &quot;_self&quot;)'>10</text>
-  <line
-   x1='289.560' y1='1014.960' x2='339.480' y2='1014.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='289.560' y='1001.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k9&quot;, &quot;_self&quot;)'>9</text>
-  <line
-   x1='239.640' y1='977.460' x2='289.560' y2='1014.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='289.560' y='251.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k8&quot;, &quot;_self&quot;)'>8</text>
-  <line
-   x1='239.640' y1='977.460' x2='289.560' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='963.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k7&quot;, &quot;_self&quot;)'>7</text>
-  <line
-   x1='189.720' y1='939.960' x2='239.640' y2='977.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='176.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k6&quot;, &quot;_self&quot;)'>6</text>
-  <line
-   x1='189.720' y1='939.960' x2='239.640' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='926.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k5&quot;, &quot;_self&quot;)'>5</text>
-  <line
-   x1='139.800' y1='902.460' x2='189.720' y2='939.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k4&quot;, &quot;_self&quot;)'>4</text>
-  <line
-   x1='139.800' y1='902.460' x2='189.720' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='888.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k3&quot;, &quot;_self&quot;)'>3</text>
-  <line
-   x1='89.880' y1='864.960' x2='139.800' y2='902.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k2&quot;, &quot;_self&quot;)'>2</text>
-  <line
-   x1='89.880' y1='864.960' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='851.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k1&quot;, &quot;_self&quot;)'>1</text>
-  <line
-   x1='39.960' y1='864.960' x2='89.880' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='851.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol envelope basic
-  (defrole tpm-power-on (vars) (trace (init &quot;0&quot;)))
-  (defrole tpm-quote
-    (vars (nonce pcr mesg) (aik akey))
-    (trace (recv (cat &quot;quote&quot; nonce)) (obsv pcr)
-      (send (enc &quot;quote&quot; pcr nonce aik)))
-    (non-orig aik))
-  (defrole tpm-extend-enc
-    (vars (value state mesg) (esk skey) (tne tno data) (tpmkey akey))
-    (trace (recv (cat &quot;establish transport&quot; tpmkey (enc esk tpmkey)))
-      (send (cat &quot;establish transport&quot; tne))
-      (recv
-        (cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc value esk)) tno
-          &quot;false&quot;
-          (hash esk
-            (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc value esk)))
-            tne tno &quot;false&quot;))) (tran state (hash value state)))
-    (non-orig (invk tpmkey))
-    (uniq-orig tne))
-  (defrole tpm-create-key
-    (vars (k aik akey) (pcr mesg) (esk skey))
-    (trace (recv (enc &quot;create key&quot; pcr esk))
-      (send (enc &quot;created&quot; k pcr aik)))
-    (non-orig (invk k) aik esk)
-    (uniq-orig k))
-  (defrole tpm-decrypt
-    (vars (m pcr mesg) (k aik akey))
-    (trace (recv (cat &quot;decrypt&quot; (enc m k)))
-      (recv (enc &quot;created&quot; k pcr aik)) (obsv pcr) (send m))
-    (non-orig aik))
-  (defrole alice
-    (vars (v n tne tno data) (esk1 esk skey) (k aik tpmkey akey)
-      (pcr mesg))
-    (trace (send (cat &quot;establish transport&quot; tpmkey (enc esk tpmkey)))
-      (recv (cat &quot;establish transport&quot; tne))
-      (send
-        (cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot;
-          (hash esk
-            (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne
-            tno &quot;false&quot;))) (recv pcr)
-      (send (enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1))
-      (recv (enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik))
-      (send (enc v k)))
-    (non-orig aik esk1 (invk tpmkey))
-    (uniq-orig v n tno esk)
-    (neq (tno n))))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='604.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 604.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: red;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='139.920' y='39.960' style='text-anchor: middle;'>envelope 0</text>
-  </svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (neq (tno n))
-  (non-orig esk1 aik (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (label 0)
-  (unrealized (0 0) (1 0) (2 5))
-  (origs (esk (2 0)) (n (2 2)) (tno (2 2)) (v (2 6)))
-  (preskeleton)
-  (comment &quot;Not a skeleton&quot;))</pre>
-
-<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Children: <a href="#k2">2</a> <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='679.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 679.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='564.960' x2='139.920' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 192.900 564.960 145.920 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: red;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='639.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='139.920' y='39.960' style='text-anchor: middle;'>envelope 1</text>
-  </svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (precedes ((2 6) (0 0)) ((2 6) (1 0)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (label 1)
-  (parent 0)
-  (unrealized (0 0) (2 5))
-  (origs (esk (2 0)) (n (2 2)) (tno (2 2)) (v (2 6)))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='679.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 679.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='564.960' x2='139.920' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 264.960 Q 291.078 374.718 242.316 484.477'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik) nonce aik-0)</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: orange;' cx='339.840' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 192.900 564.960 145.920 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='639.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)) (aik aik-0))</title>
-   <text
-    x='339.840' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='189.900' y='39.960' style='text-anchor: middle;'>envelope 2</text>
-  </svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik))
-    (aik aik-0))
-  (precedes ((2 6) (0 0)) ((2 6) (1 0)) ((3 2) (2 5)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik) (2 5))
-  (label 2)
-  (parent 1)
-  (unrealized (0 0) (3 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k1">1</a>, Children: <a href="#k4">4</a> <a href="#k5">5</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='679.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 679.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='564.960' x2='139.920' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 189.960 Q 290.808 337.114 241.777 484.268'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk-0)</title>
-   <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 192.900 564.960 145.920 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='639.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: red;' cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n pcr))) (esk esk-0) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='189.900' y='39.960' style='text-anchor: middle;'>envelope 3</text>
-  </svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk esk-0 skey)
-    (k aik tpmkey akey))
-  (deflistener (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n pcr)))
-    (esk esk-0) (k k) (aik aik))
-  (precedes ((2 6) (0 0)) ((2 6) (1 0)) ((3 1) (2 5)))
-  (neq (tno n))
-  (non-orig esk1 esk-0 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-create-key 2)
-    (enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik) (2 5))
-  (label 3)
-  (parent 1)
-  (unrealized (0 0) (1 0) (3 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k4">Item <a href="#t0">4</a>, Parent: <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='679.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 679.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='114.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='264.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='564.960' x2='139.920' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 264.960 Q 392.820 264.960 345.840 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk-0) nonce aik-0)</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk-0)</title>
-   <circle style='fill: orange;' cx='439.800' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 291.524 412.464 243.207 484.967'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk-0)</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 192.900 564.960 145.920 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='639.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: red;' cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk-0)) (aik aik-0))</title>
-   <text
-    x='439.800' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n pcr))) (esk esk-0) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='239.880' y='39.960' style='text-anchor: middle;'>envelope 4</text>
-  </svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk esk-0 skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n pcr)))
-    (esk esk-0) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk-0))
-    (aik aik-0))
-  (precedes ((2 6) (0 0)) ((2 6) (1 0)) ((3 1) (2 5)) ((4 2) (3 0)))
-  (neq (tno n))
-  (non-orig esk1 esk-0 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk-0) (3 0))
-  (label 4)
-  (parent 3)
-  (unrealized (0 0) (1 0) (4 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k5">Item <a href="#t0">5</a>, Parent: <a href="#k3">3</a>, Children: <a href="#k6">6</a> <a href="#k7">7</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='679.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 679.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='564.960' x2='139.920' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 192.900 564.960 145.920 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='639.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: red;' cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n pcr))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='189.900' y='39.960' style='text-anchor: middle;'>envelope 5</text>
-  </svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (1 0)) ((3 1) (2 5)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (displaced 4 2 alice 5)
-    (enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk-0) (3 0))
-  (label 5)
-  (parent 3)
-  (unrealized (0 0) (1 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k6">Item <a href="#t0">6</a>, Parent: <a href="#k5">5</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='754.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 754.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='489.960' x2='439.800' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='639.960' x2='139.920' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 639.960 Q 292.860 602.460 145.920 639.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc &quot;quote&quot; v nonce aik-0)</title>
-   <circle cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: orange;' cx='439.800' cy='564.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='439.800' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='714.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g><title>((nonce nonce) (pcr v) (aik aik-0))</title>
-   <text
-    x='439.800' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n pcr))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='239.880' y='39.960' style='text-anchor: middle;'>envelope 6</text>
-  </svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr v) (aik aik-0))
-  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 1)) ((3 1) (2 5))
-    ((4 2) (1 0)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation nonce-test (added-strand tpm-quote 3) v (1 0) (enc v k))
-  (label 6)
-  (parent 5)
-  (unrealized (0 0) (4 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k7">Item <a href="#t0">7</a>, Parent: <a href="#k5">5</a>, Children: <a href="#k8">8</a> <a href="#k9">9</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>pcr-0</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g><title>(enc &quot;created&quot; k pcr-0 aik-0)</title>
-   <circle style='fill: red;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g><title>((m v) (pcr pcr-0) (k k) (aik aik-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n pcr))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='239.880' y='39.960' style='text-anchor: middle;'>envelope 7</text>
-  </svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr pcr-0 mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))
-  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))
-    ((4 3) (1 0)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
-  (label 7)
-  (parent 5)
-  (unrealized (0 0) (4 1))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k8">Item <a href="#t0">8</a>, Parent: <a href="#k7">7</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='579.720pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 579.720 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='539.760' y1='414.960' x2='539.760' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 539.760 564.960 Q 492.180 600.660 444.599 636.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (enc &quot;created&quot; k pcr-0 aik-0) nonce aik-1)</title>
-   <circle cx='539.760' cy='564.960' r='6.000'/></g>
-  <g><title>(enc &quot;created&quot; k pcr-0 aik-0)</title>
-   <circle style='fill: orange;' cx='539.760' cy='489.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='539.760' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>pcr-0</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g><title>(enc &quot;created&quot; k pcr-0 aik-0)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 339.840 489.960 Q 436.800 452.460 533.760 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (enc &quot;created&quot; k pcr-0 aik-0)) (aik aik-1))</title>
-   <text
-    x='539.760' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g><title>((m v) (pcr pcr-0) (k k) (aik aik-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n pcr))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='289.860' y='39.960' style='text-anchor: middle;'>envelope 8</text>
-  </svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr pcr-0 nonce mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 aik-1 akey))
-  (deflistener (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc &quot;created&quot; k pcr-0 aik-0)) (aik aik-1))
-  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))
-    ((3 1) (5 1)) ((4 3) (1 0)) ((5 2) (4 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc &quot;created&quot; k pcr-0 aik-0) (4 1))
-  (label 8)
-  (parent 7)
-  (unrealized (0 0) (5 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k9">Item <a href="#t0">9</a>, Parent: <a href="#k7">7</a>, Child: <a href="#k10">10</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n pcr))</title>
-   <circle style='fill: orange;' cx='439.800' cy='714.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n pcr))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n pcr))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='239.880' y='39.960' style='text-anchor: middle;'>envelope 9</text>
-  </svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n pcr)))
-    (k k) (aik aik))
-  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))
-    ((4 3) (1 0)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (displaced 5 3 tpm-create-key 2)
-    (enc &quot;created&quot; k pcr-0 aik-0) (4 1))
-  (label 9)
-  (parent 7)
-  (unrealized (0 0) (4 2))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k10">Item <a href="#t0">10</a>, Parent: <a href="#k9">9</a>, Child: <a href="#k11">11</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='579.720pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 579.720 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n pcr) (hash &quot;obtain&quot; (hash n pcr)))</title>
-   <circle style='fill: orange;' cx='539.760' cy='339.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n pcr))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n pcr)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n pcr))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n pcr))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='289.860' y='39.960'
-   style='text-anchor: middle;'>envelope 10</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno tne-0 tno-0 data) (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 akey))
-  (deflistener (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n pcr)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n pcr))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))
-    ((4 3) (1 0)) ((5 3) (4 2)))
-  (leadsto ((5 3) (4 2)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0))
-  (uniq-orig v n tno tne-0 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash &quot;obtain&quot; (hash n pcr)) (4 2))
-  (label 10)
-  (parent 9)
-  (unrealized (0 0) (5 3))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k11">Item <a href="#t0">11</a>, Parent: <a href="#k10">10</a>, Children: <a href="#k12">12</a> <a href="#k13">13</a> <a href="#k14">14</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='679.680pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 679.680 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='339.840' y='39.960'
-   style='text-anchor: middle;'>envelope 11</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 3) (5 3)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash n state) (5 3))
-  (label 11)
-  (parent 10)
-  (unrealized (0 0) (6 2))
-  (comment &quot;3 in cohort - 3 not yet seen&quot;))</pre>
-
-<p id="k12">Item <a href="#t0">12</a>, Parent: <a href="#k11">11</a>, Child: <a href="#k15">15</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='779.640pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 779.640 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='739.680' y1='114.960' x2='739.680' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 739.680 264.960 Q 692.700 264.960 645.720 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;) nonce aik-0)</title>
-   <circle cx='739.680' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: orange;' cx='739.680' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='739.680' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)) (aik aik-0))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='389.820' y='39.960'
-   style='text-anchor: middle;'>envelope 12</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr
-      (hash esk-1
-        (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1
-        tno-1 &quot;false&quot;)) (aik aik-0))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 3) (5 3))
-    ((7 2) (6 2)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;) (6 2))
-  (label 12)
-  (parent 11)
-  (unrealized (0 0) (6 2) (7 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k13">Item <a href="#t0">13</a>, Parent: <a href="#k11">11</a>, Children: <a href="#k16">16</a> <a href="#k17">17</a> <a href="#k18">18</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='679.680pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 679.680 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk tpmkey-1))</title>
-   <circle style='fill: red;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='339.840' y='39.960'
-   style='text-anchor: middle;'>envelope 13</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation encryption-test (displaced 7 2 alice 3)
-    (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;) (6 2))
-  (label 13)
-  (parent 11)
-  (unrealized (0 0) (6 0))
-  (comment &quot;3 in cohort - 3 not yet seen&quot;))</pre>
-
-<p id="k14">Item <a href="#t0">14</a>, Parent: <a href="#k11">11</a>, Children: <a href="#k19">19</a> <a href="#k20">20</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='779.640pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 779.640 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='739.680' y1='189.960' x2='739.680' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 739.680 264.960 Q 692.700 264.960 645.720 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='739.680' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: red;' cx='739.680' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 686.700 189.960 733.680 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='389.820' y='39.960'
-   style='text-anchor: middle;'>envelope 14</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener
-      (cat esk-1
-        (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1
-        tno-1 &quot;false&quot;))
-    (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;) (6 2))
-  (label 14)
-  (parent 11)
-  (unrealized (0 0) (6 2) (7 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k15">Item <a href="#t0">15</a>, Parent: <a href="#k12">12</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='879.600pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 879.600 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='839.640' y1='114.960' x2='839.640' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='264.960' x2='739.680' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='264.960' x2='639.720' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='264.960' x2='539.760' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 839.640 339.960 Q 792.660 339.960 745.680 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (cat (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;) (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: orange;' cx='839.640' cy='339.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc esk-1 esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc esk-1 esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='839.640' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='839.640' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 739.680 414.960 Q 692.700 414.960 645.720 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;) nonce aik-0)</title>
-   <circle cx='739.680' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: gray;' cx='739.680' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='739.680' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 489.960 Q 592.740 489.960 545.760 489.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='639.720' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 736.680 302.460 833.640 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 539.760 489.960 Q 490.998 599.718 442.236 709.477'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='414.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.991 301.406 634.102 412.852'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((value esk-1) (state (cat (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)) (aik aik-0))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='439.800' y='39.960'
-   style='text-anchor: middle;'>envelope 15</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr
-      (hash esk-1
-        (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1
-        tno-1 &quot;false&quot;)) (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value esk-1)
-    (state
-      (cat (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-        tne-1 tno-1 &quot;false&quot;)) (tne tne-2) (tno tno-2) (esk esk-2)
-    (tpmkey tpmkey-2))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (8 3))
-    ((6 3) (5 3)) ((7 2) (6 2)) ((8 3) (7 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;) (7 1))
-  (label 15)
-  (parent 12)
-  (unrealized (0 0) (6 2) (8 3))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k16">Item <a href="#t0">16</a>, Parent: <a href="#k13">13</a>, Children: <a href="#k21">21</a> <a href="#k22">22</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='679.680pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 679.680 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='339.840' y='39.960'
-   style='text-anchor: middle;'>envelope 16</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (contracted (tpmkey-1 tpmkey)) esk (6 0)
-    (enc esk tpmkey))
-  (label 16)
-  (parent 13)
-  (unrealized (0 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k17">Item <a href="#t0">17</a>, Parent: <a href="#k13">13</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='779.640pt' height='1054.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 779.640 1054.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='739.680' y1='114.960' x2='739.680' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='264.960' x2='639.720' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='264.960' x2='539.760' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='714.960' x2='439.800' y2='939.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='939.960' x2='139.920' y2='1014.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 739.680 264.960 Q 692.700 264.960 645.720 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc &quot;quote&quot; esk nonce aik-0)</title>
-   <circle cx='739.680' cy='264.960' r='6.000'/></g>
-  <g><title>esk</title>
-   <circle style='fill: orange;' cx='739.680' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='739.680' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 639.720 489.960 Q 592.740 489.960 545.760 489.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 442.800 302.460 245.880 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk tpmkey-1))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 539.760 489.960 Q 490.553 674.561 441.345 859.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='414.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 439.800 939.960 Q 292.860 902.460 145.920 939.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='939.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='864.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <path
-   d='M 339.840 639.960 Q 292.860 639.960 245.880 639.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 714.960 Q 142.920 677.460 45.960 714.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 714.960 Q 336.840 677.460 433.800 714.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='639.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 286.860 564.960 333.840 564.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 436.800 377.460 633.720 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 486.780 152.460 733.680 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='1014.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='939.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g><title>((nonce nonce) (pcr esk) (aik aik-0))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='389.820' y='39.960'
-   style='text-anchor: middle;'>envelope 17</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((2 0) (7 1)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (6 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (6 0)
-    (enc esk tpmkey))
-  (label 17)
-  (parent 13)
-  (unrealized (0 0) (7 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k18">Item <a href="#t0">18</a>, Parent: <a href="#k13">13</a>, Child: <a href="#k23">23</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='779.640pt' height='1129.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 779.640 1129.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='739.680' y1='114.960' x2='739.680' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='339.960' x2='639.720' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='789.960' x2='439.800' y2='1014.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='639.960' x2='339.840' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='1014.960' x2='139.920' y2='1089.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 739.680 339.960 Q 692.700 339.960 645.720 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='739.680' cy='339.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: gray;' cx='739.680' cy='264.960' r='6.000'/></g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: red;' cx='739.680' cy='189.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='739.680' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 639.720 564.960 Q 592.740 564.960 545.760 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 639.720 414.960 Q 442.800 377.460 245.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk tpmkey-1))</title>
-   <circle style='fill: blue;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 539.760 564.960 Q 490.553 749.561 441.345 934.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 1014.960 Q 292.860 977.460 145.920 1014.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='1014.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='939.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='864.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='789.960' r='6.000'/></g>
-  <path
-   d='M 339.840 714.960 Q 292.860 714.960 245.880 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <path
-   d='M 239.880 789.960 Q 142.920 752.460 45.960 789.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 789.960 Q 336.840 752.460 433.800 789.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='714.960' r='6.000'/></g>
-  <path
-   d='M 239.880 639.960 Q 286.860 639.960 333.840 639.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='639.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 436.800 452.460 633.720 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 486.780 77.460 733.680 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='1089.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='1014.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g><title>((m esk) (pcr pcr) (k tpmkey) (aik aik-0))</title>
-   <text
-    x='739.680' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='389.820' y='39.960'
-   style='text-anchor: middle;'>envelope 18</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((2 0) (7 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)) ((7 3) (6 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (6 0)
-    (enc esk tpmkey))
-  (label 18)
-  (parent 13)
-  (unrealized (0 0) (7 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k19">Item <a href="#t0">19</a>, Parent: <a href="#k14">14</a>, Child: <a href="#k24">24</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='879.600pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 879.600 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='839.640' y1='114.960' x2='839.640' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='264.960' x2='739.680' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='189.960' x2='639.720' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 839.640 264.960 Q 792.660 264.960 745.680 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) nonce aik-0)</title>
-   <circle cx='839.640' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: orange;' cx='839.640' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='839.640' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 739.680 339.960 Q 692.700 339.960 645.720 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='739.680' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='739.680' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 414.960 Q 592.740 414.960 545.760 414.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 639.720 264.960 Q 686.700 264.960 733.680 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='639.720' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='639.720' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 539.760 414.960 Q 490.728 562.114 441.697 709.268'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.851 264.407 633.823 338.854'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))) (aik aik-0))</title>
-   <text
-    x='839.640' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='439.800' y='39.960'
-   style='text-anchor: middle;'>envelope 19</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-    (aik aik-0))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 2) (7 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) (7 0))
-  (label 19)
-  (parent 14)
-  (unrealized (0 0) (6 2) (8 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k20">Item <a href="#t0">20</a>, Parent: <a href="#k14">14</a>, Children: <a href="#k25">25</a> <a href="#k26">26</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='879.600pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 879.600 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='839.640' y1='114.960' x2='839.640' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='189.960' x2='739.680' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 839.640 189.960 Q 792.660 189.960 745.680 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle cx='839.640' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: red;' cx='839.640' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 739.680 264.960 Q 692.700 264.960 645.720 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='739.680' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='739.680' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 686.700 189.960 733.680 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='439.800' y='39.960'
-   style='text-anchor: middle;'>envelope 20</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener
-      (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-    (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) (7 0))
-  (label 20)
-  (parent 14)
-  (unrealized (0 0) (6 2) (8 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k21">Item <a href="#t0">21</a>, Parent: <a href="#k16">16</a>, Child: <a href="#k27">27</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='779.640pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 779.640 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 739.680 714.960 Q 392.820 677.460 45.960 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: orange;' cx='739.680' cy='639.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='389.820' y='39.960'
-   style='text-anchor: middle;'>envelope 21</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (4 0))
-    ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik) (0 0))
-  (label 21)
-  (parent 16)
-  (unrealized (7 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k22">Item <a href="#t0">22</a>, Parent: <a href="#k16">16</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='779.640pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 779.640 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='739.680' y1='489.960' x2='739.680' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='639.960' x2='39.960' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 739.680 639.960 Q 392.820 602.460 45.960 639.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik) nonce aik-0)</title>
-   <circle cx='739.680' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: orange;' cx='739.680' cy='564.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='739.680' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)) (aik aik-0))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='389.820' y='39.960'
-   style='text-anchor: middle;'>envelope 22</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 aik-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-    (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (4 0))
-    ((2 6) (7 1)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik) (0 0))
-  (label 22)
-  (parent 16)
-  (unrealized (7 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k23">Item <a href="#t0">23</a>, Parent: <a href="#k18">18</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='879.600pt' height='1204.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 879.600 1204.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='839.640' y1='114.960' x2='839.640' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='189.960' x2='739.680' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='414.960' x2='639.720' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='414.960' x2='539.760' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='864.960' x2='439.800' y2='1089.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='714.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='1089.960' x2='139.920' y2='1164.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='864.960' x2='39.960' y2='939.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 839.640 264.960 Q 792.660 264.960 745.680 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (enc &quot;created&quot; tpmkey pcr aik-0) nonce aik-1)</title>
-   <circle cx='839.640' cy='264.960' r='6.000'/></g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: orange;' cx='839.640' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='839.640' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 739.680 414.960 Q 692.700 414.960 645.720 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='739.680' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: gray;' cx='739.680' cy='339.960' r='6.000'/></g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: blue;' cx='739.680' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='739.680' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 639.720 639.960 Q 592.740 639.960 545.760 639.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 489.960 Q 442.800 452.460 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk tpmkey-1))</title>
-   <circle style='fill: blue;' cx='639.720' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 539.760 639.960 Q 490.553 824.561 441.345 1009.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 439.800 1089.960 Q 292.860 1052.460 145.920 1089.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='1089.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='1014.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='939.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='864.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 292.860 789.960 245.880 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <path
-   d='M 239.880 864.960 Q 142.920 827.460 45.960 864.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 864.960 Q 336.840 827.460 433.800 864.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='864.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='789.960' r='6.000'/></g>
-  <path
-   d='M 239.880 714.960 Q 286.860 714.960 333.840 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='714.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='639.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 436.800 527.460 633.720 564.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 486.780 152.460 733.680 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='1164.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='1089.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='939.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='864.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (enc &quot;created&quot; tpmkey pcr aik-0)) (aik aik-1))</title>
-   <text
-    x='839.640' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g><title>((m esk) (pcr pcr) (k tpmkey) (aik aik-0))</title>
-   <text
-    x='739.680' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='439.800' y='39.960'
-   style='text-anchor: middle;'>envelope 23</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state pcr nonce mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc &quot;created&quot; tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((2 0) (7 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)) ((7 3) (6 0)) ((8 2) (7 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc &quot;created&quot; tpmkey pcr aik-0) (7 1))
-  (label 23)
-  (parent 18)
-  (unrealized (0 0) (8 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k24">Item <a href="#t0">24</a>, Parent: <a href="#k19">19</a>, Child: <a href="#k28">28</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='979.560pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 979.560 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='939.600' y1='114.960' x2='939.600' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='264.960' x2='839.640' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='414.960' x2='739.680' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='339.960' x2='639.720' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 939.600 339.960 Q 892.620 339.960 845.640 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash &quot;extend&quot; (enc n esk-1)) (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))</title>
-   <circle style='fill: orange;' cx='939.600' cy='339.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;execute transport&quot; esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;execute transport&quot; esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='939.600' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='939.600' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 839.640 414.960 Q 792.660 414.960 745.680 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) nonce aik-0)</title>
-   <circle cx='839.640' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='839.640' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 739.680 489.960 Q 692.700 489.960 645.720 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='739.680' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='739.680' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 639.720 564.960 Q 592.740 564.960 545.760 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='639.720' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 639.720 414.960 Q 686.700 414.960 733.680 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='639.720' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 539.760 564.960 Q 491.444 637.464 443.127 709.967'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 437.186 338.489 634.491 487.018'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((value &quot;execute transport&quot;) (state (hash &quot;extend&quot; (enc n esk-1))) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))) (aik aik-0))</title>
-   <text
-    x='839.640' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='489.780' y='39.960'
-   style='text-anchor: middle;'>envelope 24</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-    (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value &quot;execute transport&quot;)
-    (state (hash &quot;extend&quot; (enc n esk-1))) (tne tne-2) (tno tno-2)
-    (esk esk-2) (tpmkey tpmkey-2))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 2) (7 0)) ((9 3) (8 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((9 3) (8 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) (8 1))
-  (label 24)
-  (parent 19)
-  (unrealized (0 0) (6 2) (9 3))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k25">Item <a href="#t0">25</a>, Parent: <a href="#k20">20</a>, Child: <a href="#k29">29</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='979.560pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 979.560 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='939.600' y1='114.960' x2='939.600' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='264.960' x2='839.640' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='339.960' x2='739.680' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='264.960' x2='639.720' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='264.960' x2='539.760' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 939.600 264.960 Q 892.620 264.960 845.640 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;extend&quot; (enc n esk-1)) nonce aik-0)</title>
-   <circle cx='939.600' cy='264.960' r='6.000'/></g>
-  <g><title>(hash &quot;extend&quot; (enc n esk-1))</title>
-   <circle style='fill: orange;' cx='939.600' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='939.600' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 839.640 339.960 Q 792.660 339.960 745.680 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle cx='839.640' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: blue;' cx='839.640' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 739.680 414.960 Q 692.700 414.960 645.720 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='739.680' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='739.680' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 639.720 489.960 Q 592.740 489.960 545.760 489.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='639.720' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 686.700 339.960 733.680 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 539.760 489.960 Q 490.998 599.718 442.236 709.477'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='414.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.991 301.406 634.102 412.852'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash &quot;extend&quot; (enc n esk-1))) (aik aik-0))</title>
-   <text
-    x='939.600' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='489.780' y='39.960'
-   style='text-anchor: middle;'>envelope 25</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash &quot;extend&quot; (enc n esk-1))) (aik aik-0))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 2) (8 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash &quot;extend&quot; (enc n esk-1)) (8 0))
-  (label 25)
-  (parent 20)
-  (unrealized (0 0) (6 2) (9 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k26">Item <a href="#t0">26</a>, Parent: <a href="#k20">20</a>, Children: <a href="#k30">30</a> <a href="#k31">31</a> <a href="#k32">32</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='979.560pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 979.560 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='939.600' y1='264.960' x2='939.600' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='339.960' x2='839.640' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='414.960' x2='739.680' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='339.960' x2='639.720' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 939.600 339.960 Q 892.620 339.960 845.640 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle cx='939.600' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle style='fill: red;' cx='939.600' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 839.640 414.960 Q 792.660 414.960 745.680 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle cx='839.640' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: blue;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 739.680 489.960 Q 692.700 489.960 645.720 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='739.680' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='739.680' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 639.720 564.960 Q 592.740 564.960 545.760 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 639.720 414.960 Q 686.700 414.960 733.680 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='639.720' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 539.760 564.960 Q 491.444 637.464 443.127 709.967'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 586.740 227.460 933.600 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='489.780' y='39.960'
-   style='text-anchor: middle;'>envelope 26</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-  (deflistener (cat &quot;extend&quot; (enc n esk-1)))
-  (precedes ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener (cat &quot;extend&quot; (enc n esk-1)))
-    (hash &quot;extend&quot; (enc n esk-1)) (8 0))
-  (label 26)
-  (parent 20)
-  (unrealized (0 0) (9 0))
-  (comment &quot;3 in cohort - 3 not yet seen&quot;))</pre>
-
-<p id="k27">Item <a href="#t0">27</a>, Parent: <a href="#k21">21</a>, Child: <a href="#k33">33</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='879.600pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 879.600 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='839.640' y1='114.960' x2='839.640' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 839.640 339.960 Q 790.608 487.114 741.577 634.268'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: orange;' cx='839.640' cy='339.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 739.680 714.960 Q 392.820 677.460 45.960 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='439.800' y='39.960'
-   style='text-anchor: middle;'>envelope 27</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (4 0))
-    ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tne tno tne-0 tne-1 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash &quot;refuse&quot; (hash n state)) (7 1))
-  (label 27)
-  (parent 21)
-  (unrealized (8 3))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k28">Item <a href="#t0">28</a>, Parent: <a href="#k24">24</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1079.520pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1079.520 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1039.560' y1='114.960' x2='1039.560' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='114.960' x2='939.600' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='264.960' x2='839.640' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='414.960' x2='739.680' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='339.960' x2='639.720' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1039.560 339.960 Q 992.580 339.960 945.600 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (enc n esk-1) (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: orange;' cx='1039.560' cy='339.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;extend&quot; esk-3)) tno-3 &quot;false&quot; (hash esk-3 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;extend&quot; esk-3))) tne-3 tno-3 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='1039.560' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;establish transport&quot; tne-3)</title>
-   <circle cx='1039.560' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-3 (enc esk-3 tpmkey-3))</title>
-   <circle style='fill: blue;' cx='1039.560' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 339.960 Q 892.620 339.960 845.640 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash &quot;extend&quot; (enc n esk-1)) (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))</title>
-   <circle style='fill: gray;' cx='939.600' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;execute transport&quot; esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;execute transport&quot; esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='939.600' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='939.600' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 839.640 414.960 Q 792.660 414.960 745.680 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) nonce aik-0)</title>
-   <circle cx='839.640' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='839.640' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 739.680 489.960 Q 692.700 489.960 645.720 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='739.680' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='739.680' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 639.720 564.960 Q 592.740 564.960 545.760 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='639.720' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 639.720 414.960 Q 686.700 414.960 733.680 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='639.720' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 539.760 564.960 Q 491.444 637.464 443.127 709.967'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 636.733 264.680 1033.586 339.400'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((value &quot;extend&quot;) (state (enc n esk-1)) (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))</title>
-   <text
-    x='1039.560' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;execute transport&quot;) (state (hash &quot;extend&quot; (enc n esk-1))) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))) (aik aik-0))</title>
-   <text
-    x='839.640' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='539.760' y='39.960'
-   style='text-anchor: middle;'>envelope 28</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)
-    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 tpmkey-3 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-    (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value &quot;execute transport&quot;)
-    (state (hash &quot;extend&quot; (enc n esk-1))) (tne tne-2) (tno tno-2)
-    (esk esk-2) (tpmkey tpmkey-2))
-  (defstrand tpm-extend-enc 4 (value &quot;extend&quot;) (state (enc n esk-1))
-    (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))
-  (precedes ((2 2) (10 3)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 2) (7 0)) ((9 3) (8 1))
-    ((10 3) (9 3)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((9 3) (8 1)) ((10 3) (9 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 tne-3 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash &quot;extend&quot; (enc n esk-1)) (9 3))
-  (label 28)
-  (parent 24)
-  (unrealized (0 0) (6 2) (10 3))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k29">Item <a href="#t0">29</a>, Parent: <a href="#k25">25</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1079.520pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1079.520 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1039.560' y1='114.960' x2='1039.560' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='264.960' x2='939.600' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='414.960' x2='839.640' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='489.960' x2='739.680' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='414.960' x2='639.720' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='414.960' x2='539.760' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1039.560 339.960 Q 992.580 339.960 945.600 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (enc n esk-1) (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: orange;' cx='1039.560' cy='339.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;extend&quot; esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;extend&quot; esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='1039.560' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='1039.560' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='1039.560' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 414.960 Q 892.620 414.960 845.640 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;extend&quot; (enc n esk-1)) nonce aik-0)</title>
-   <circle cx='939.600' cy='414.960' r='6.000'/></g>
-  <g><title>(hash &quot;extend&quot; (enc n esk-1))</title>
-   <circle style='fill: gray;' cx='939.600' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='939.600' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 839.640 489.960 Q 792.660 489.960 745.680 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle cx='839.640' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: blue;' cx='839.640' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 739.680 564.960 Q 692.700 564.960 645.720 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='739.680' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='739.680' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 639.720 639.960 Q 592.740 639.960 545.760 639.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='639.720' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 489.960 Q 686.700 489.960 733.680 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='639.720' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='639.720' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 539.760 639.960 Q 492.180 675.660 444.599 711.359'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 636.733 264.680 1033.586 339.400'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((value &quot;extend&quot;) (state (enc n esk-1)) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='1039.560' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash &quot;extend&quot; (enc n esk-1))) (aik aik-0))</title>
-   <text
-    x='939.600' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='539.760' y='39.960'
-   style='text-anchor: middle;'>envelope 29</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash &quot;extend&quot; (enc n esk-1))) (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value &quot;extend&quot;) (state (enc n esk-1))
-    (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (precedes ((2 2) (10 3)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 2) (8 0))
-    ((10 3) (9 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((10 3) (9 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash &quot;extend&quot; (enc n esk-1)) (9 1))
-  (label 29)
-  (parent 25)
-  (unrealized (0 0) (6 2) (10 3))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k30">Item <a href="#t0">30</a>, Parent: <a href="#k26">26</a>, Children: <a href="#k34">34</a> <a href="#k35">35</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='979.560pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 979.560 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='939.600' y1='264.960' x2='939.600' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='339.960' x2='839.640' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='414.960' x2='739.680' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='339.960' x2='639.720' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 939.600 339.960 Q 892.620 339.960 845.640 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle cx='939.600' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle style='fill: blue;' cx='939.600' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 839.640 414.960 Q 792.660 414.960 745.680 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle cx='839.640' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle style='fill: blue;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 739.680 489.960 Q 692.700 489.960 645.720 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='739.680' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: red;' cx='739.680' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 639.720 564.960 Q 592.740 564.960 545.760 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno-1 &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 639.720 414.960 Q 686.700 414.960 733.680 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='639.720' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk tpmkey-1))</title>
-   <circle style='fill: red;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 539.760 564.960 Q 491.444 637.464 443.127 709.967'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 586.740 227.460 933.600 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 437.186 188.489 634.491 337.018'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='489.780' y='39.960'
-   style='text-anchor: middle;'>envelope 30</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))))
-  (deflistener (cat &quot;extend&quot; (enc n esk)))
-  (precedes ((2 0) (6 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (contracted (esk-1 esk)) n (9 0) (enc n esk))
-  (label 30)
-  (parent 26)
-  (unrealized (0 0) (6 0) (7 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k31">Item <a href="#t0">31</a>, Parent: <a href="#k26">26</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1079.520pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1079.520 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1039.560' y1='189.960' x2='1039.560' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='339.960' x2='939.600' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='414.960' x2='839.640' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='489.960' x2='739.680' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='414.960' x2='639.720' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='414.960' x2='539.760' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1039.560 339.960 Q 992.580 339.960 945.600 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc &quot;quote&quot; n nonce aik-0)</title>
-   <circle cx='1039.560' cy='339.960' r='6.000'/></g>
-  <g><title>n</title>
-   <circle style='fill: orange;' cx='1039.560' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='189.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 414.960 Q 892.620 414.960 845.640 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle cx='939.600' cy='414.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle style='fill: blue;' cx='939.600' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 839.640 489.960 Q 792.660 489.960 745.680 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle cx='839.640' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: blue;' cx='839.640' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 739.680 564.960 Q 692.700 564.960 645.720 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='739.680' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='739.680' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 639.720 639.960 Q 592.740 639.960 545.760 639.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 489.960 Q 686.700 489.960 733.680 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='639.720' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='639.720' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 539.760 639.960 Q 492.180 675.660 444.599 711.359'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 636.720 227.460 1033.560 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g><title>((nonce nonce) (pcr n) (aik aik-0))</title>
-   <text
-    x='1039.560' y='77.460'
-    style='text-anchor: middle;'>tpm-quote</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='539.760' y='39.960'
-   style='text-anchor: middle;'>envelope 31</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-  (deflistener (cat &quot;extend&quot; (enc n esk-1)))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr n) (aik aik-0))
-  (precedes ((2 2) (10 1)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 1) (8 0))
-    ((10 2) (9 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) n (9 0) (enc n esk))
-  (label 31)
-  (parent 26)
-  (unrealized (0 0) (10 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k32">Item <a href="#t0">32</a>, Parent: <a href="#k26">26</a>, Children: <a href="#k36">36</a> <a href="#k37">37</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1079.520pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1079.520 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1039.560' y1='114.960' x2='1039.560' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='264.960' x2='939.600' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='339.960' x2='839.640' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='414.960' x2='739.680' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='339.960' x2='639.720' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1039.560 189.960 Q 991.980 225.660 944.399 261.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='1039.560' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>esk</title>
-   <circle style='fill: red;' cx='1039.560' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 939.600 339.960 Q 892.620 339.960 845.640 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle cx='939.600' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle style='fill: blue;' cx='939.600' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 839.640 414.960 Q 792.660 414.960 745.680 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle cx='839.640' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: blue;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 739.680 489.960 Q 692.700 489.960 645.720 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='739.680' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='739.680' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 639.720 564.960 Q 592.740 564.960 545.760 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 639.720 414.960 Q 686.700 414.960 733.680 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='639.720' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 539.760 564.960 Q 491.444 637.464 443.127 709.967'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 586.740 227.460 933.600 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 636.720 77.460 1033.560 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='539.760' y='39.960'
-   style='text-anchor: middle;'>envelope 32</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-  (deflistener (cat &quot;extend&quot; (enc n esk-1)))
-  (deflistener esk)
-  (precedes ((2 0) (10 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-listener esk) n (9 0) (enc n esk))
-  (label 32)
-  (parent 26)
-  (unrealized (0 0) (10 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k33">Item <a href="#t0">33</a>, Parent: <a href="#k27">27</a>, Children: <a href="#k38">38</a> <a href="#k39">39</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='979.560pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 979.560 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='939.600' y1='114.960' x2='939.600' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='114.960' x2='839.640' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 939.600 339.960 Q 892.620 339.960 845.640 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='939.600' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='939.600' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='939.600' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 839.640 339.960 Q 790.608 487.114 741.577 634.268'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 739.680 714.960 Q 392.820 677.460 45.960 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 586.740 227.460 933.600 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='489.780' y='39.960'
-   style='text-anchor: middle;'>envelope 33</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 3) (8 3)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash n state) (8 3))
-  (label 33)
-  (parent 27)
-  (unrealized (9 2))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k34">Item <a href="#t0">34</a>, Parent: <a href="#k30">30</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1079.520pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1079.520 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1039.560' y1='114.960' x2='1039.560' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='264.960' x2='939.600' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='339.960' x2='839.640' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='414.960' x2='739.680' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='339.960' x2='639.720' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1039.560 264.960 Q 892.303 301.118 745.046 412.276'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc &quot;quote&quot; esk nonce aik-0)</title>
-   <circle cx='1039.560' cy='264.960' r='6.000'/></g>
-  <g><title>esk</title>
-   <circle style='fill: orange;' cx='1039.560' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 339.960 Q 892.620 339.960 845.640 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle cx='939.600' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle style='fill: blue;' cx='939.600' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 839.640 414.960 Q 792.660 414.960 745.680 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle cx='839.640' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle style='fill: blue;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 739.680 489.960 Q 692.700 489.960 645.720 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='739.680' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='739.680' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 639.720 564.960 Q 592.740 564.960 545.760 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno-1 &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 639.720 414.960 Q 686.700 414.960 733.680 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='639.720' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk tpmkey-1))</title>
-   <circle style='fill: red;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 539.760 564.960 Q 491.444 637.464 443.127 709.967'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 586.740 227.460 933.600 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 437.186 188.489 634.491 337.018'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 114.960 Q 636.733 114.680 1033.586 189.400'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g><title>((nonce nonce) (pcr esk) (aik aik-0))</title>
-   <text
-    x='1039.560' y='77.460'
-    style='text-anchor: middle;'>tpm-quote</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='539.760' y='39.960'
-   style='text-anchor: middle;'>envelope 34</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))))
-  (deflistener (cat &quot;extend&quot; (enc n esk)))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 0) (10 1)) ((2 2) (9 0)) ((2 4) (3 0))
-    ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2))
-    ((8 1) (7 0)) ((9 1) (8 0)) ((10 2) (7 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (7 0)
-    (enc esk tpmkey))
-  (label 34)
-  (parent 30)
-  (unrealized (0 0) (6 0) (10 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k35">Item <a href="#t0">35</a>, Parent: <a href="#k30">30</a>, Child: <a href="#k40">40</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1079.520pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1079.520 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1039.560' y1='114.960' x2='1039.560' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='264.960' x2='939.600' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='339.960' x2='839.640' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='414.960' x2='739.680' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='339.960' x2='639.720' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1039.560 339.960 Q 892.530 339.232 745.501 413.504'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='1039.560' cy='339.960' r='6.000'/>
-   </g>
-  <g><title>pcr</title>
-   <circle style='fill: gray;' cx='1039.560' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: red;' cx='1039.560' cy='189.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='1039.560' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 339.960 Q 892.620 339.960 845.640 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle cx='939.600' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle style='fill: blue;' cx='939.600' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 839.640 414.960 Q 792.660 414.960 745.680 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle cx='839.640' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle style='fill: blue;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 739.680 489.960 Q 692.700 489.960 645.720 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='739.680' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='739.680' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 639.720 564.960 Q 592.740 564.960 545.760 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno-1 &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 639.720 414.960 Q 686.700 414.960 733.680 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='639.720' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk tpmkey-1))</title>
-   <circle style='fill: red;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 539.760 564.960 Q 491.444 637.464 443.127 709.967'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 586.740 227.460 933.600 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 437.186 188.489 634.491 337.018'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 114.960 Q 636.720 77.460 1033.560 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g><title>((m esk) (pcr pcr) (k tpmkey) (aik aik-0))</title>
-   <text
-    x='1039.560' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='539.760' y='39.960'
-   style='text-anchor: middle;'>envelope 35</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))))
-  (deflistener (cat &quot;extend&quot; (enc n esk)))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 2) (9 0)) ((2 4) (3 0))
-    ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2))
-    ((8 1) (7 0)) ((9 1) (8 0)) ((10 3) (7 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (7 0)
-    (enc esk tpmkey))
-  (label 35)
-  (parent 30)
-  (unrealized (0 0) (6 0) (10 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k36">Item <a href="#t0">36</a>, Parent: <a href="#k32">32</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1179.480pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1179.480 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1139.520' y1='114.960' x2='1139.520' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='264.960' x2='1039.560' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='339.960' x2='939.600' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='414.960' x2='839.640' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='489.960' x2='739.680' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='414.960' x2='639.720' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='414.960' x2='539.760' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1139.520 264.960 Q 1092.540 264.960 1045.560 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc &quot;quote&quot; esk nonce aik-0)</title>
-   <circle cx='1139.520' cy='264.960' r='6.000'/></g>
-  <g><title>esk</title>
-   <circle style='fill: orange;' cx='1139.520' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='1139.520' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 339.960 Q 992.580 339.960 945.600 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='1039.560' cy='339.960' r='6.000'/>
-   </g>
-  <g><title>esk</title>
-   <circle style='fill: blue;' cx='1039.560' cy='264.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 414.960 Q 892.620 414.960 845.640 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle cx='939.600' cy='414.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle style='fill: blue;' cx='939.600' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 839.640 489.960 Q 792.660 489.960 745.680 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle cx='839.640' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: blue;' cx='839.640' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 739.680 564.960 Q 692.700 564.960 645.720 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='739.680' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='739.680' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 639.720 639.960 Q 592.740 639.960 545.760 639.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 489.960 Q 686.700 489.960 733.680 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='639.720' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='639.720' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 539.760 639.960 Q 492.180 675.660 444.599 711.359'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 586.757 264.640 933.634 339.321'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 686.710 114.711 1133.541 189.462'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g><title>((nonce nonce) (pcr esk) (aik aik-0))</title>
-   <text
-    x='1139.520' y='77.460'
-    style='text-anchor: middle;'>tpm-quote</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='589.740' y='39.960'
-   style='text-anchor: middle;'>envelope 36</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-  (deflistener (cat &quot;extend&quot; (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((2 0) (11 1)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 1) (9 0)) ((11 2) (10 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (10 0)
-    (enc esk tpmkey))
-  (label 36)
-  (parent 32)
-  (unrealized (0 0) (11 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k37">Item <a href="#t0">37</a>, Parent: <a href="#k32">32</a>, Child: <a href="#k41">41</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1179.480pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1179.480 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1139.520' y1='114.960' x2='1139.520' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='339.960' x2='1039.560' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='414.960' x2='939.600' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='489.960' x2='839.640' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='489.960' x2='639.720' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='489.960' x2='539.760' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1139.520 339.960 Q 1092.540 339.960 1045.560 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='1139.520' cy='339.960' r='6.000'/>
-   </g>
-  <g><title>pcr</title>
-   <circle style='fill: gray;' cx='1139.520' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: red;' cx='1139.520' cy='189.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='1139.520' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 414.960 Q 992.580 414.960 945.600 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='1039.560' cy='414.960' r='6.000'/>
-   </g>
-  <g><title>esk</title>
-   <circle style='fill: blue;' cx='1039.560' cy='339.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 489.960 Q 892.620 489.960 845.640 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle cx='939.600' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle style='fill: blue;' cx='939.600' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 839.640 564.960 Q 792.660 564.960 745.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle cx='839.640' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: blue;' cx='839.640' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 739.680 639.960 Q 692.700 639.960 645.720 639.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='739.680' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 714.960 Q 592.740 714.960 545.760 714.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='639.960' r='6.000'/></g>
-  <path
-   d='M 639.720 564.960 Q 686.700 564.960 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='639.720' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='639.720' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 539.760 714.960 Q 492.780 714.960 445.800 714.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 586.807 301.831 933.733 413.702'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 686.700 77.460 1133.520 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g><title>((m esk) (pcr pcr) (k tpmkey) (aik aik-0))</title>
-   <text
-    x='1139.520' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='589.740' y='39.960'
-   style='text-anchor: middle;'>envelope 37</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-  (deflistener (cat &quot;extend&quot; (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((2 0) (11 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 1) (9 0)) ((11 3) (10 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (10 0)
-    (enc esk tpmkey))
-  (label 37)
-  (parent 32)
-  (unrealized (0 0) (11 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k38">Item <a href="#t0">38</a>, Parent: <a href="#k33">33</a>, Child: <a href="#k42">42</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1079.520pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1079.520 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1039.560' y1='114.960' x2='1039.560' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='114.960' x2='939.600' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='114.960' x2='839.640' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1039.560 264.960 Q 992.580 264.960 945.600 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;) nonce aik-0)</title>
-   <circle cx='1039.560' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle style='fill: orange;' cx='1039.560' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 339.960 Q 892.620 339.960 845.640 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='939.600' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='939.600' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='939.600' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 839.640 339.960 Q 790.608 487.114 741.577 634.268'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 739.680 714.960 Q 392.820 677.460 45.960 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 586.740 227.460 933.600 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)) (aik aik-0))</title>
-   <text
-    x='1039.560' y='77.460'
-    style='text-anchor: middle;'>tpm-quote</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='539.760' y='39.960'
-   style='text-anchor: middle;'>envelope 38</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr
-      (hash esk-2
-        (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2
-        tno-2 &quot;false&quot;)) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 3) (8 3)) ((10 2) (9 2)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))
-      tne-2 tno-2 &quot;false&quot;) (9 2))
-  (label 38)
-  (parent 33)
-  (unrealized (9 2) (10 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k39">Item <a href="#t0">39</a>, Parent: <a href="#k33">33</a>, Children: <a href="#k43">43</a> <a href="#k44">44</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1079.520pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1079.520 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1039.560' y1='189.960' x2='1039.560' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='114.960' x2='939.600' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='114.960' x2='839.640' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1039.560 264.960 Q 992.580 264.960 945.600 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle cx='1039.560' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle style='fill: red;' cx='1039.560' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 939.600 339.960 Q 892.620 339.960 845.640 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='939.600' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='939.600' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 939.600 189.960 Q 986.580 189.960 1033.560 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='939.600' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 839.640 339.960 Q 790.608 487.114 741.577 634.268'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 739.680 714.960 Q 392.820 677.460 45.960 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 586.740 227.460 933.600 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='539.760' y='39.960'
-   style='text-anchor: middle;'>envelope 39</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))
-      tne-2 tno-2 &quot;false&quot;))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test
-    (added-listener
-      (cat esk-2
-        (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2
-        tno-2 &quot;false&quot;))
-    (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))
-      tne-2 tno-2 &quot;false&quot;) (9 2))
-  (label 39)
-  (parent 33)
-  (unrealized (9 2) (10 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k40">Item <a href="#t0">40</a>, Parent: <a href="#k35">35</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1179.480pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1179.480 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1139.520' y1='114.960' x2='1139.520' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='189.960' x2='1039.560' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='264.960' x2='939.600' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='339.960' x2='839.640' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='414.960' x2='739.680' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='339.960' x2='639.720' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1139.520 264.960 Q 1092.540 264.960 1045.560 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (enc &quot;created&quot; tpmkey pcr aik-0) nonce aik-1)</title>
-   <circle cx='1139.520' cy='264.960' r='6.000'/></g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: orange;' cx='1139.520' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='1139.520' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 414.960 Q 892.620 377.460 745.680 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='1039.560' cy='414.960' r='6.000'/>
-   </g>
-  <g><title>pcr</title>
-   <circle style='fill: gray;' cx='1039.560' cy='339.960' r='6.000'/>
-   </g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;decrypt&quot; (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='1039.560' cy='189.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 339.960 Q 892.620 339.960 845.640 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle cx='939.600' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle style='fill: blue;' cx='939.600' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 839.640 414.960 Q 792.660 414.960 745.680 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle cx='839.640' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle style='fill: blue;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 739.680 489.960 Q 692.700 489.960 645.720 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='739.680' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='739.680' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 639.720 564.960 Q 592.740 564.960 545.760 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno-1 &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 639.720 414.960 Q 686.700 414.960 733.680 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='639.720' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk tpmkey-1))</title>
-   <circle style='fill: red;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 539.760 564.960 Q 491.444 637.464 443.127 709.967'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 586.740 227.460 933.600 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 437.186 188.489 634.491 337.018'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 114.960 Q 636.733 114.680 1033.586 189.400'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (enc &quot;created&quot; tpmkey pcr aik-0)) (aik aik-1))</title>
-   <text
-    x='1139.520' y='77.460'
-    style='text-anchor: middle;'>tpm-quote</text></g>
-  <g><title>((m esk) (pcr pcr) (k tpmkey) (aik aik-0))</title>
-   <text
-    x='1039.560' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='589.740' y='39.960'
-   style='text-anchor: middle;'>envelope 40</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state pcr nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 data) (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))))
-  (deflistener (cat &quot;extend&quot; (enc n esk)))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc &quot;created&quot; tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 2) (9 0)) ((2 4) (3 0))
-    ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2))
-    ((8 1) (7 0)) ((9 1) (8 0)) ((10 3) (7 0)) ((11 2) (10 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc &quot;created&quot; tpmkey pcr aik-0) (10 1))
-  (label 40)
-  (parent 35)
-  (unrealized (0 0) (6 0) (11 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k41">Item <a href="#t0">41</a>, Parent: <a href="#k37">37</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1279.440pt' height='979.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1279.440 979.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1239.480' y1='114.960' x2='1239.480' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1139.520' y1='189.960' x2='1139.520' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='414.960' x2='1039.560' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='489.960' x2='939.600' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='564.960' x2='839.640' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='639.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='564.960' x2='639.720' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='564.960' x2='539.760' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='639.960' x2='439.800' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='864.960' x2='139.920' y2='939.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1239.480 264.960 Q 1192.500 264.960 1145.520 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (enc &quot;created&quot; tpmkey pcr aik-0) nonce aik-1)</title>
-   <circle cx='1239.480' cy='264.960' r='6.000'/></g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: orange;' cx='1239.480' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='1239.480' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1139.520 414.960 Q 1092.540 414.960 1045.560 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='1139.520' cy='414.960' r='6.000'/>
-   </g>
-  <g><title>pcr</title>
-   <circle style='fill: gray;' cx='1139.520' cy='339.960' r='6.000'/>
-   </g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: blue;' cx='1139.520' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;decrypt&quot; (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='1139.520' cy='189.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 489.960 Q 992.580 489.960 945.600 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='1039.560' cy='489.960' r='6.000'/>
-   </g>
-  <g><title>esk</title>
-   <circle style='fill: blue;' cx='1039.560' cy='414.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 564.960 Q 892.620 564.960 845.640 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle cx='939.600' cy='564.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle style='fill: blue;' cx='939.600' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 839.640 639.960 Q 792.660 639.960 745.680 639.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle cx='839.640' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: blue;' cx='839.640' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 739.680 714.960 Q 692.700 714.960 645.720 714.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <path
-   d='M 639.720 789.960 Q 592.740 789.960 545.760 789.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='714.960' r='6.000'/></g>
-  <path
-   d='M 639.720 639.960 Q 686.700 639.960 733.680 639.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='639.720' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='639.720' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 539.760 789.960 Q 492.780 789.960 445.800 789.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='714.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 439.800 864.960 Q 292.860 827.460 145.920 864.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='864.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 142.920 527.460 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 337.031 563.906 434.182 637.853'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 586.884 339.042 933.888 488.123'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 686.710 114.711 1133.541 189.462'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='939.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='864.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (enc &quot;created&quot; tpmkey pcr aik-0)) (aik aik-1))</title>
-   <text
-    x='1239.480' y='77.460'
-    style='text-anchor: middle;'>tpm-quote</text></g>
-  <g><title>((m esk) (pcr pcr) (k tpmkey) (aik aik-0))</title>
-   <text
-    x='1139.520' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='639.720' y='39.960'
-   style='text-anchor: middle;'>envelope 41</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state pcr nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-  (deflistener (cat &quot;extend&quot; (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc &quot;created&quot; tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((2 0) (11 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 1) (9 0)) ((11 3) (10 0)) ((12 2) (11 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc &quot;created&quot; tpmkey pcr aik-0) (11 1))
-  (label 41)
-  (parent 37)
-  (unrealized (0 0) (12 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k42">Item <a href="#t0">42</a>, Parent: <a href="#k38">38</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1179.480pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1179.480 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1139.520' y1='114.960' x2='1139.520' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='264.960' x2='1039.560' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='264.960' x2='939.600' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='264.960' x2='839.640' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1139.520 339.960 Q 1092.540 339.960 1045.560 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (cat (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;) (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: orange;' cx='1139.520' cy='339.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc esk-2 esk-3)) tno-3 &quot;false&quot; (hash esk-3 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc esk-2 esk-3))) tne-3 tno-3 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='1139.520' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;establish transport&quot; tne-3)</title>
-   <circle cx='1139.520' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-3 (enc esk-3 tpmkey-3))</title>
-   <circle style='fill: blue;' cx='1139.520' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 414.960 Q 992.580 414.960 945.600 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;) nonce aik-0)</title>
-   <circle cx='1039.560' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle style='fill: gray;' cx='1039.560' cy='339.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='264.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 489.960 Q 892.620 489.960 845.640 489.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='939.600' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='939.600' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 939.600 339.960 Q 1036.560 302.460 1133.520 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='939.600' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 839.640 489.960 Q 791.324 562.464 743.007 634.967'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='414.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 739.680 714.960 Q 392.820 677.460 45.960 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 586.807 301.831 933.733 413.702'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>((value esk-2) (state (cat (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)) (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))</title>
-   <text
-    x='1139.520' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)) (aik aik-0))</title>
-   <text
-    x='1039.560' y='77.460'
-    style='text-anchor: middle;'>tpm-quote</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='589.740' y='39.960'
-   style='text-anchor: middle;'>envelope 42</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)
-    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr
-      (hash esk-2
-        (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2
-        tno-2 &quot;false&quot;)) (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value esk-2)
-    (state
-      (cat (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))
-        tne-2 tno-2 &quot;false&quot;)) (tne tne-3) (tno tno-3) (esk esk-3)
-    (tpmkey tpmkey-3))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (11 3)) ((9 3) (8 3)) ((10 2) (9 2))
-    ((11 3) (10 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))
-    ((11 3) (10 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))
-      tne-2 tno-2 &quot;false&quot;) (10 1))
-  (label 42)
-  (parent 38)
-  (unrealized (9 2) (11 3))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k43">Item <a href="#t0">43</a>, Parent: <a href="#k39">39</a>, Child: <a href="#k45">45</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1179.480pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1179.480 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1139.520' y1='114.960' x2='1139.520' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='264.960' x2='1039.560' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='189.960' x2='939.600' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='189.960' x2='839.640' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1139.520 264.960 Q 1092.540 264.960 1045.560 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) nonce aik-0)</title>
-   <circle cx='1139.520' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle style='fill: orange;' cx='1139.520' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='1139.520' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 339.960 Q 992.580 339.960 945.600 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle cx='1039.560' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='264.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 414.960 Q 892.620 414.960 845.640 414.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='939.600' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='939.600' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 939.600 264.960 Q 986.580 264.960 1033.560 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='939.600' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 839.640 414.960 Q 790.878 524.718 742.116 634.477'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 739.680 714.960 Q 392.820 677.460 45.960 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 586.757 264.640 933.634 339.321'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))) (aik aik-0))</title>
-   <text
-    x='1139.520' y='77.460'
-    style='text-anchor: middle;'>tpm-quote</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='589.740' y='39.960'
-   style='text-anchor: middle;'>envelope 43</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))
-      tne-2 tno-2 &quot;false&quot;))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))))
-    (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 2) (10 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) (10 0))
-  (label 43)
-  (parent 39)
-  (unrealized (9 2) (11 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k44">Item <a href="#t0">44</a>, Parent: <a href="#k39">39</a>, Children: <a href="#k46">46</a> <a href="#k47">47</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1179.480pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1179.480 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1139.520' y1='114.960' x2='1139.520' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='189.960' x2='1039.560' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='114.960' x2='939.600' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='114.960' x2='839.640' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1139.520 189.960 Q 1092.540 189.960 1045.560 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle cx='1139.520' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle style='fill: red;' cx='1139.520' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 1039.560 264.960 Q 992.580 264.960 945.600 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle cx='1039.560' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='189.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 339.960 Q 892.620 339.960 845.640 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='939.600' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='939.600' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 939.600 189.960 Q 986.580 189.960 1033.560 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='939.600' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 839.640 339.960 Q 790.608 487.114 741.577 634.268'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 739.680 714.960 Q 392.820 677.460 45.960 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 586.740 227.460 933.600 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='589.740' y='39.960'
-   style='text-anchor: middle;'>envelope 44</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))
-      tne-2 tno-2 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 1) (10 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test
-    (added-listener
-      (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))))
-    (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) (10 0))
-  (label 44)
-  (parent 39)
-  (unrealized (9 2) (11 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k45">Item <a href="#t0">45</a>, Parent: <a href="#k43">43</a>, Child: <a href="#k48">48</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1279.440pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1279.440 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1239.480' y1='114.960' x2='1239.480' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1139.520' y1='264.960' x2='1139.520' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='414.960' x2='1039.560' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='339.960' x2='939.600' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='339.960' x2='839.640' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1239.480 339.960 Q 1192.500 339.960 1145.520 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash &quot;extend&quot; (enc n esk-2)) (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))))</title>
-   <circle style='fill: orange;' cx='1239.480' cy='339.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;execute transport&quot; esk-3)) tno-3 &quot;false&quot; (hash esk-3 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;execute transport&quot; esk-3))) tne-3 tno-3 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='1239.480' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;establish transport&quot; tne-3)</title>
-   <circle cx='1239.480' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-3 (enc esk-3 tpmkey-3))</title>
-   <circle style='fill: blue;' cx='1239.480' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1139.520 414.960 Q 1092.540 414.960 1045.560 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) nonce aik-0)</title>
-   <circle cx='1139.520' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle style='fill: gray;' cx='1139.520' cy='339.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='1139.520' cy='264.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 489.960 Q 992.580 489.960 945.600 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle cx='1039.560' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='414.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 564.960 Q 892.620 564.960 845.640 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='939.600' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='939.600' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 939.600 414.960 Q 986.580 414.960 1033.560 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='939.600' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 839.640 564.960 Q 792.060 600.660 744.479 636.359'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 739.680 714.960 Q 392.820 677.460 45.960 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 586.884 339.042 933.888 488.123'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>((value &quot;execute transport&quot;) (state (hash &quot;extend&quot; (enc n esk-2))) (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))</title>
-   <text
-    x='1239.480' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))) (aik aik-0))</title>
-   <text
-    x='1139.520' y='77.460'
-    style='text-anchor: middle;'>tpm-quote</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='639.720' y='39.960'
-   style='text-anchor: middle;'>envelope 45</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)
-    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))
-      tne-2 tno-2 &quot;false&quot;))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))))
-    (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value &quot;execute transport&quot;)
-    (state (hash &quot;extend&quot; (enc n esk-2))) (tne tne-3) (tno tno-3)
-    (esk esk-3) (tpmkey tpmkey-3))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 2) (10 0)) ((12 3) (11 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))
-    ((12 3) (11 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) (11 1))
-  (label 45)
-  (parent 43)
-  (unrealized (9 2) (12 3))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k46">Item <a href="#t0">46</a>, Parent: <a href="#k44">44</a>, Child: <a href="#k49">49</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1279.440pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1279.440 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1239.480' y1='114.960' x2='1239.480' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1139.520' y1='264.960' x2='1139.520' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='339.960' x2='1039.560' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='264.960' x2='939.600' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='264.960' x2='839.640' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1239.480 264.960 Q 1192.500 264.960 1145.520 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;extend&quot; (enc n esk-2)) nonce aik-0)</title>
-   <circle cx='1239.480' cy='264.960' r='6.000'/></g>
-  <g><title>(hash &quot;extend&quot; (enc n esk-2))</title>
-   <circle style='fill: orange;' cx='1239.480' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='1239.480' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1139.520 339.960 Q 1092.540 339.960 1045.560 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle cx='1139.520' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle style='fill: blue;' cx='1139.520' cy='264.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 414.960 Q 992.580 414.960 945.600 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle cx='1039.560' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='339.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 489.960 Q 892.620 489.960 845.640 489.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='939.600' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='939.600' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 939.600 339.960 Q 986.580 339.960 1033.560 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='939.600' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 839.640 489.960 Q 791.324 562.464 743.007 634.967'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='414.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 739.680 714.960 Q 392.820 677.460 45.960 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 586.807 301.831 933.733 413.702'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash &quot;extend&quot; (enc n esk-2))) (aik aik-0))</title>
-   <text
-    x='1239.480' y='77.460'
-    style='text-anchor: middle;'>tpm-quote</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='639.720' y='39.960'
-   style='text-anchor: middle;'>envelope 46</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))
-      tne-2 tno-2 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash &quot;extend&quot; (enc n esk-2))) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 1) (10 0)) ((12 2) (11 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash &quot;extend&quot; (enc n esk-2)) (11 0))
-  (label 46)
-  (parent 44)
-  (unrealized (9 2) (12 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k47">Item <a href="#t0">47</a>, Parent: <a href="#k44">44</a>, Children: <a href="#k50">50</a> <a href="#k51">51</a> <a href="#k52">52</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1279.440pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1279.440 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1239.480' y1='264.960' x2='1239.480' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1139.520' y1='339.960' x2='1139.520' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='414.960' x2='1039.560' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='339.960' x2='939.600' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='339.960' x2='839.640' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1239.480 339.960 Q 1192.500 339.960 1145.520 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk-2))</title>
-   <circle cx='1239.480' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk-2))</title>
-   <circle style='fill: red;' cx='1239.480' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 1139.520 414.960 Q 1092.540 414.960 1045.560 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle cx='1139.520' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle style='fill: blue;' cx='1139.520' cy='339.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 489.960 Q 992.580 489.960 945.600 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle cx='1039.560' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='414.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 564.960 Q 892.620 564.960 845.640 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='939.600' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='939.600' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 939.600 414.960 Q 986.580 414.960 1033.560 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='939.600' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 839.640 564.960 Q 792.060 600.660 744.479 636.359'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 739.680 714.960 Q 392.820 677.460 45.960 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 736.680 227.460 1233.480 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='639.720' y='39.960'
-   style='text-anchor: middle;'>envelope 47</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))
-      tne-2 tno-2 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))))
-  (deflistener (cat &quot;extend&quot; (enc n esk-2)))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (12 0)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 1) (10 0)) ((12 1) (11 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test
-    (added-listener (cat &quot;extend&quot; (enc n esk-2)))
-    (hash &quot;extend&quot; (enc n esk-2)) (11 0))
-  (label 47)
-  (parent 44)
-  (unrealized (12 0))
-  (comment &quot;3 in cohort - 3 not yet seen&quot;))</pre>
-
-<p id="k48">Item <a href="#t0">48</a>, Parent: <a href="#k45">45</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1379.400pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1379.400 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1339.440' y1='114.960' x2='1339.440' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1239.480' y1='114.960' x2='1239.480' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1139.520' y1='264.960' x2='1139.520' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='414.960' x2='1039.560' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='339.960' x2='939.600' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='339.960' x2='839.640' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1339.440 339.960 Q 1292.460 339.960 1245.480 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (enc n esk-2) (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle style='fill: orange;' cx='1339.440' cy='339.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;extend&quot; esk-4)) tno-4 &quot;false&quot; (hash esk-4 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;extend&quot; esk-4))) tne-4 tno-4 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='1339.440' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;establish transport&quot; tne-4)</title>
-   <circle cx='1339.440' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-4 (enc esk-4 tpmkey-4))</title>
-   <circle style='fill: blue;' cx='1339.440' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1239.480 339.960 Q 1192.500 339.960 1145.520 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash &quot;extend&quot; (enc n esk-2)) (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))))</title>
-   <circle style='fill: gray;' cx='1239.480' cy='339.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;execute transport&quot; esk-3)) tno-3 &quot;false&quot; (hash esk-3 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;execute transport&quot; esk-3))) tne-3 tno-3 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='1239.480' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;establish transport&quot; tne-3)</title>
-   <circle cx='1239.480' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-3 (enc esk-3 tpmkey-3))</title>
-   <circle style='fill: blue;' cx='1239.480' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1139.520 414.960 Q 1092.540 414.960 1045.560 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) nonce aik-0)</title>
-   <circle cx='1139.520' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle style='fill: gray;' cx='1139.520' cy='339.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='1139.520' cy='264.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 489.960 Q 992.580 489.960 945.600 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle cx='1039.560' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='414.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 564.960 Q 892.620 564.960 845.640 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='939.600' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='939.600' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 939.600 414.960 Q 986.580 414.960 1033.560 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='939.600' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 839.640 564.960 Q 792.060 600.660 744.479 636.359'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 739.680 714.960 Q 392.820 677.460 45.960 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 786.667 264.756 1333.454 339.552'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>((value &quot;extend&quot;) (state (enc n esk-2)) (tne tne-4) (tno tno-4) (esk esk-4) (tpmkey tpmkey-4))</title>
-   <text
-    x='1339.440' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;execute transport&quot;) (state (hash &quot;extend&quot; (enc n esk-2))) (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))</title>
-   <text
-    x='1239.480' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))) (aik aik-0))</title>
-   <text
-    x='1139.520' y='77.460'
-    style='text-anchor: middle;'>tpm-quote</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='689.700' y='39.960'
-   style='text-anchor: middle;'>envelope 48</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 tne-4
-      tno-4 data) (esk1 esk esk-0 esk-1 esk-2 esk-3 esk-4 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 tpmkey-4
-      akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))
-      tne-2 tno-2 &quot;false&quot;))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))))
-    (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value &quot;execute transport&quot;)
-    (state (hash &quot;extend&quot; (enc n esk-2))) (tne tne-3) (tno tno-3)
-    (esk esk-3) (tpmkey tpmkey-3))
-  (defstrand tpm-extend-enc 4 (value &quot;extend&quot;) (state (enc n esk-2))
-    (tne tne-4) (tno tno-4) (esk esk-4) (tpmkey tpmkey-4))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (13 3)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 2) (10 0)) ((12 3) (11 1)) ((13 3) (12 3)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))
-    ((12 3) (11 1)) ((13 3) (12 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3) (invk tpmkey-4))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 tne-4 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash &quot;extend&quot; (enc n esk-2)) (12 3))
-  (label 48)
-  (parent 45)
-  (unrealized (9 2) (13 3))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k49">Item <a href="#t0">49</a>, Parent: <a href="#k46">46</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1379.400pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1379.400 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1339.440' y1='114.960' x2='1339.440' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1239.480' y1='264.960' x2='1239.480' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1139.520' y1='414.960' x2='1139.520' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='489.960' x2='1039.560' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='414.960' x2='939.600' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='414.960' x2='839.640' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1339.440 339.960 Q 1292.460 339.960 1245.480 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (enc n esk-2) (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle style='fill: orange;' cx='1339.440' cy='339.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;extend&quot; esk-3)) tno-3 &quot;false&quot; (hash esk-3 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;extend&quot; esk-3))) tne-3 tno-3 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='1339.440' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;establish transport&quot; tne-3)</title>
-   <circle cx='1339.440' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-3 (enc esk-3 tpmkey-3))</title>
-   <circle style='fill: blue;' cx='1339.440' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1239.480 414.960 Q 1192.500 414.960 1145.520 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;extend&quot; (enc n esk-2)) nonce aik-0)</title>
-   <circle cx='1239.480' cy='414.960' r='6.000'/></g>
-  <g><title>(hash &quot;extend&quot; (enc n esk-2))</title>
-   <circle style='fill: gray;' cx='1239.480' cy='339.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='1239.480' cy='264.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1139.520 489.960 Q 1092.540 489.960 1045.560 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle cx='1139.520' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle style='fill: blue;' cx='1139.520' cy='414.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 564.960 Q 992.580 564.960 945.600 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle cx='1039.560' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='489.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 639.960 Q 892.620 639.960 845.640 639.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='939.600' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='939.600' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 939.600 489.960 Q 986.580 489.960 1033.560 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='939.600' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 839.640 639.960 Q 792.660 639.960 745.680 639.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='564.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 739.680 714.960 Q 392.820 677.460 45.960 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 786.667 264.756 1333.454 339.552'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>((value &quot;extend&quot;) (state (enc n esk-2)) (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))</title>
-   <text
-    x='1339.440' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash &quot;extend&quot; (enc n esk-2))) (aik aik-0))</title>
-   <text
-    x='1239.480' y='77.460'
-    style='text-anchor: middle;'>tpm-quote</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='689.700' y='39.960'
-   style='text-anchor: middle;'>envelope 49</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)
-    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))
-      tne-2 tno-2 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash &quot;extend&quot; (enc n esk-2))) (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value &quot;extend&quot;) (state (enc n esk-2))
-    (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (13 3)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 1) (10 0)) ((12 2) (11 0)) ((13 3) (12 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))
-    ((13 3) (12 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash &quot;extend&quot; (enc n esk-2)) (12 1))
-  (label 49)
-  (parent 46)
-  (unrealized (9 2) (13 3))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k50">Item <a href="#t0">50</a>, Parent: <a href="#k47">47</a>, Children: <a href="#k53">53</a> <a href="#k54">54</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1279.440pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1279.440 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1239.480' y1='264.960' x2='1239.480' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1139.520' y1='339.960' x2='1139.520' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='414.960' x2='1039.560' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='339.960' x2='939.600' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='339.960' x2='839.640' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1239.480 339.960 Q 1192.500 339.960 1145.520 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle cx='1239.480' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle style='fill: blue;' cx='1239.480' cy='264.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1139.520 414.960 Q 1092.540 414.960 1045.560 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle cx='1139.520' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle style='fill: blue;' cx='1139.520' cy='339.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 489.960 Q 992.580 489.960 945.600 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle cx='1039.560' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle style='fill: red;' cx='1039.560' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 939.600 564.960 Q 892.620 564.960 845.640 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='939.600' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno-2 &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='939.600' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 939.600 414.960 Q 986.580 414.960 1033.560 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk tpmkey-2))</title>
-   <circle style='fill: red;' cx='939.600' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 839.640 564.960 Q 792.060 600.660 744.479 636.359'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 739.680 714.960 Q 392.820 677.460 45.960 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 736.680 227.460 1233.480 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 114.960 Q 586.884 189.042 933.888 338.123'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne-2) (tno tno-2) (esk esk) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='639.720' y='39.960'
-   style='text-anchor: middle;'>envelope 50</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))
-      tne-2 tno-2 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))))
-  (deflistener (cat &quot;extend&quot; (enc n esk)))
-  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 2) (6 2)) ((2 2) (12 0))
-    ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))
-    ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))
-    ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))
-    ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (contracted (esk-2 esk)) n (12 0) (enc n esk))
-  (label 50)
-  (parent 47)
-  (unrealized (9 0) (10 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k51">Item <a href="#t0">51</a>, Parent: <a href="#k47">47</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1379.400pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1379.400 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1339.440' y1='189.960' x2='1339.440' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1239.480' y1='339.960' x2='1239.480' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1139.520' y1='414.960' x2='1139.520' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='489.960' x2='1039.560' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='414.960' x2='939.600' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='414.960' x2='839.640' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1339.440 339.960 Q 1292.460 339.960 1245.480 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc &quot;quote&quot; n nonce aik-0)</title>
-   <circle cx='1339.440' cy='339.960' r='6.000'/></g>
-  <g><title>n</title>
-   <circle style='fill: orange;' cx='1339.440' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='1339.440' cy='189.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1239.480 414.960 Q 1192.500 414.960 1145.520 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk-2))</title>
-   <circle cx='1239.480' cy='414.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk-2))</title>
-   <circle style='fill: blue;' cx='1239.480' cy='339.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1139.520 489.960 Q 1092.540 489.960 1045.560 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle cx='1139.520' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle style='fill: blue;' cx='1139.520' cy='414.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 564.960 Q 992.580 564.960 945.600 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle cx='1039.560' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='489.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 639.960 Q 892.620 639.960 845.640 639.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='939.600' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='939.600' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 939.600 489.960 Q 986.580 489.960 1033.560 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='939.600' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 839.640 639.960 Q 792.660 639.960 745.680 639.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='564.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 739.680 714.960 Q 392.820 677.460 45.960 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 786.660 227.460 1333.440 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g><title>((nonce nonce) (pcr n) (aik aik-0))</title>
-   <text
-    x='1339.440' y='77.460'
-    style='text-anchor: middle;'>tpm-quote</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='689.700' y='39.960'
-   style='text-anchor: middle;'>envelope 51</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))
-      tne-2 tno-2 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))))
-  (deflistener (cat &quot;extend&quot; (enc n esk-2)))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr n) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (13 1)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 1) (10 0)) ((12 1) (11 0)) ((13 2) (12 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) n (12 0) (enc n esk))
-  (label 51)
-  (parent 47)
-  (unrealized (13 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k52">Item <a href="#t0">52</a>, Parent: <a href="#k47">47</a>, Children: <a href="#k55">55</a> <a href="#k56">56</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1379.400pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1379.400 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1339.440' y1='114.960' x2='1339.440' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1239.480' y1='264.960' x2='1239.480' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1139.520' y1='339.960' x2='1139.520' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='414.960' x2='1039.560' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='339.960' x2='939.600' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='339.960' x2='839.640' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1339.440 189.960 Q 1291.860 225.660 1244.279 261.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='1339.440' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>esk</title>
-   <circle style='fill: red;' cx='1339.440' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 1239.480 339.960 Q 1192.500 339.960 1145.520 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk-2))</title>
-   <circle cx='1239.480' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk-2))</title>
-   <circle style='fill: blue;' cx='1239.480' cy='264.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1139.520 414.960 Q 1092.540 414.960 1045.560 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle cx='1139.520' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle style='fill: blue;' cx='1139.520' cy='339.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 489.960 Q 992.580 489.960 945.600 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle cx='1039.560' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='414.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 564.960 Q 892.620 564.960 845.640 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='939.600' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='939.600' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 939.600 414.960 Q 986.580 414.960 1033.560 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='939.600' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 839.640 564.960 Q 792.060 600.660 744.479 636.359'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 739.680 714.960 Q 392.820 677.460 45.960 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 736.680 227.460 1233.480 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 114.960 Q 786.660 77.460 1333.440 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='689.700' y='39.960'
-   style='text-anchor: middle;'>envelope 52</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))
-      tne-2 tno-2 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))))
-  (deflistener (cat &quot;extend&quot; (enc n esk-2)))
-  (deflistener esk)
-  (precedes ((2 0) (6 0)) ((2 0) (13 0)) ((2 2) (6 2)) ((2 2) (12 0))
-    ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))
-    ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))
-    ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))
-    ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (added-listener esk) n (12 0) (enc n esk))
-  (label 52)
-  (parent 47)
-  (unrealized (13 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k53">Item <a href="#t0">53</a>, Parent: <a href="#k50">50</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1379.400pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1379.400 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1339.440' y1='114.960' x2='1339.440' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1239.480' y1='264.960' x2='1239.480' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1139.520' y1='339.960' x2='1139.520' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='414.960' x2='1039.560' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='339.960' x2='939.600' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='339.960' x2='839.640' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1339.440 264.960 Q 1192.183 301.118 1044.926 412.276'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc &quot;quote&quot; esk nonce aik-0)</title>
-   <circle cx='1339.440' cy='264.960' r='6.000'/></g>
-  <g><title>esk</title>
-   <circle style='fill: orange;' cx='1339.440' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='1339.440' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1239.480 339.960 Q 1192.500 339.960 1145.520 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle cx='1239.480' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle style='fill: blue;' cx='1239.480' cy='264.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1139.520 414.960 Q 1092.540 414.960 1045.560 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle cx='1139.520' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle style='fill: blue;' cx='1139.520' cy='339.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 489.960 Q 992.580 489.960 945.600 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle cx='1039.560' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='414.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 564.960 Q 892.620 564.960 845.640 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='939.600' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno-2 &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='939.600' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 939.600 414.960 Q 986.580 414.960 1033.560 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk tpmkey-2))</title>
-   <circle style='fill: red;' cx='939.600' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 839.640 564.960 Q 792.060 600.660 744.479 636.359'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 739.680 714.960 Q 392.820 677.460 45.960 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 736.680 227.460 1233.480 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 114.960 Q 586.884 189.042 933.888 338.123'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 114.960 Q 786.667 114.756 1333.454 189.552'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g><title>((nonce nonce) (pcr esk) (aik aik-0))</title>
-   <text
-    x='1339.440' y='77.460'
-    style='text-anchor: middle;'>tpm-quote</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-2) (tno tno-2) (esk esk) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='689.700' y='39.960'
-   style='text-anchor: middle;'>envelope 53</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))
-      tne-2 tno-2 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))))
-  (deflistener (cat &quot;extend&quot; (enc n esk)))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 0) (13 1)) ((2 2) (6 2))
-    ((2 2) (12 0)) ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1))
-    ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0))
-    ((9 3) (8 3)) ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0))
-    ((13 2) (10 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (10 0)
-    (enc esk tpmkey))
-  (label 53)
-  (parent 50)
-  (unrealized (9 0) (13 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k54">Item <a href="#t0">54</a>, Parent: <a href="#k50">50</a>, Child: <a href="#k57">57</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1379.400pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1379.400 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1339.440' y1='114.960' x2='1339.440' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1239.480' y1='264.960' x2='1239.480' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1139.520' y1='339.960' x2='1139.520' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='414.960' x2='1039.560' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='339.960' x2='939.600' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='339.960' x2='839.640' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1339.440 339.960 Q 1192.410 339.232 1045.381 413.504'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='1339.440' cy='339.960' r='6.000'/>
-   </g>
-  <g><title>pcr</title>
-   <circle style='fill: gray;' cx='1339.440' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: red;' cx='1339.440' cy='189.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='1339.440' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1239.480 339.960 Q 1192.500 339.960 1145.520 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle cx='1239.480' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle style='fill: blue;' cx='1239.480' cy='264.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1139.520 414.960 Q 1092.540 414.960 1045.560 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle cx='1139.520' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle style='fill: blue;' cx='1139.520' cy='339.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 489.960 Q 992.580 489.960 945.600 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle cx='1039.560' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='414.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 564.960 Q 892.620 564.960 845.640 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='939.600' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno-2 &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='939.600' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 939.600 414.960 Q 986.580 414.960 1033.560 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk tpmkey-2))</title>
-   <circle style='fill: red;' cx='939.600' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 839.640 564.960 Q 792.060 600.660 744.479 636.359'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 739.680 714.960 Q 392.820 677.460 45.960 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 736.680 227.460 1233.480 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 114.960 Q 586.884 189.042 933.888 338.123'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 114.960 Q 786.660 77.460 1333.440 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g><title>((m esk) (pcr pcr) (k tpmkey) (aik aik-0))</title>
-   <text
-    x='1339.440' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-2) (tno tno-2) (esk esk) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='689.700' y='39.960'
-   style='text-anchor: middle;'>envelope 54</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state pcr mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))
-      tne-2 tno-2 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))))
-  (deflistener (cat &quot;extend&quot; (enc n esk)))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 0) (13 0)) ((2 2) (6 2))
-    ((2 2) (12 0)) ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1))
-    ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0))
-    ((9 3) (8 3)) ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0))
-    ((13 3) (10 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (10 0)
-    (enc esk tpmkey))
-  (label 54)
-  (parent 50)
-  (unrealized (9 0) (13 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k55">Item <a href="#t0">55</a>, Parent: <a href="#k52">52</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1479.360pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1479.360 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1439.400' y1='114.960' x2='1439.400' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1339.440' y1='264.960' x2='1339.440' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1239.480' y1='339.960' x2='1239.480' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1139.520' y1='414.960' x2='1139.520' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='489.960' x2='1039.560' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='414.960' x2='939.600' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='414.960' x2='839.640' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1439.400 264.960 Q 1392.420 264.960 1345.440 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc &quot;quote&quot; esk nonce aik-0)</title>
-   <circle cx='1439.400' cy='264.960' r='6.000'/></g>
-  <g><title>esk</title>
-   <circle style='fill: orange;' cx='1439.400' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='1439.400' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1339.440 339.960 Q 1292.460 339.960 1245.480 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='1339.440' cy='339.960' r='6.000'/>
-   </g>
-  <g><title>esk</title>
-   <circle style='fill: blue;' cx='1339.440' cy='264.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1239.480 414.960 Q 1192.500 414.960 1145.520 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk-2))</title>
-   <circle cx='1239.480' cy='414.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk-2))</title>
-   <circle style='fill: blue;' cx='1239.480' cy='339.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1139.520 489.960 Q 1092.540 489.960 1045.560 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle cx='1139.520' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle style='fill: blue;' cx='1139.520' cy='414.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 564.960 Q 992.580 564.960 945.600 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle cx='1039.560' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='489.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 639.960 Q 892.620 639.960 845.640 639.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='939.600' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='939.600' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 939.600 489.960 Q 986.580 489.960 1033.560 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='939.600' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 839.640 639.960 Q 792.660 639.960 745.680 639.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='564.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 739.680 714.960 Q 392.820 677.460 45.960 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 736.688 264.736 1233.497 339.511'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 114.960 Q 836.646 114.773 1433.412 189.586'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g><title>((nonce nonce) (pcr esk) (aik aik-0))</title>
-   <text
-    x='1439.400' y='77.460'
-    style='text-anchor: middle;'>tpm-quote</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='739.680' y='39.960'
-   style='text-anchor: middle;'>envelope 55</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))
-      tne-2 tno-2 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))))
-  (deflistener (cat &quot;extend&quot; (enc n esk-2)))
-  (deflistener esk)
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 0) (14 1)) ((2 2) (6 2)) ((2 2) (12 0))
-    ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))
-    ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))
-    ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))
-    ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0))
-    ((14 2) (13 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (13 0)
-    (enc esk tpmkey))
-  (label 55)
-  (parent 52)
-  (unrealized (14 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k56">Item <a href="#t0">56</a>, Parent: <a href="#k52">52</a>, Child: <a href="#k58">58</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1479.360pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1479.360 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1439.400' y1='114.960' x2='1439.400' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1339.440' y1='339.960' x2='1339.440' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1239.480' y1='414.960' x2='1239.480' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1139.520' y1='489.960' x2='1139.520' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='564.960' x2='1039.560' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='489.960' x2='939.600' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='489.960' x2='839.640' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='639.960' x2='739.680' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1439.400 339.960 Q 1392.420 339.960 1345.440 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='1439.400' cy='339.960' r='6.000'/>
-   </g>
-  <g><title>pcr</title>
-   <circle style='fill: gray;' cx='1439.400' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: red;' cx='1439.400' cy='189.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='1439.400' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1339.440 414.960 Q 1292.460 414.960 1245.480 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='1339.440' cy='414.960' r='6.000'/>
-   </g>
-  <g><title>esk</title>
-   <circle style='fill: blue;' cx='1339.440' cy='339.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1239.480 489.960 Q 1192.500 489.960 1145.520 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk-2))</title>
-   <circle cx='1239.480' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk-2))</title>
-   <circle style='fill: blue;' cx='1239.480' cy='414.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1139.520 564.960 Q 1092.540 564.960 1045.560 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle cx='1139.520' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle style='fill: blue;' cx='1139.520' cy='489.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 639.960 Q 992.580 639.960 945.600 639.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle cx='1039.560' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='564.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 714.960 Q 892.620 714.960 845.640 714.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='939.600' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='939.600' cy='639.960' r='6.000'/></g>
-  <path
-   d='M 939.600 564.960 Q 986.580 564.960 1033.560 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='939.600' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 839.640 714.960 Q 792.660 714.960 745.680 714.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 739.680 789.960 Q 392.820 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.813 564.515 733.746 639.070'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 736.713 302.015 1233.546 414.070'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 114.960 Q 836.640 77.460 1433.400 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g><title>((m esk) (pcr pcr) (k tpmkey) (aik aik-0))</title>
-   <text
-    x='1439.400' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='739.680' y='39.960'
-   style='text-anchor: middle;'>envelope 56</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state pcr mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))
-      tne-2 tno-2 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))))
-  (deflistener (cat &quot;extend&quot; (enc n esk-2)))
-  (deflistener esk)
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 0) (14 0)) ((2 2) (6 2)) ((2 2) (12 0))
-    ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))
-    ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))
-    ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))
-    ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0))
-    ((14 3) (13 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (13 0)
-    (enc esk tpmkey))
-  (label 56)
-  (parent 52)
-  (unrealized (14 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k57">Item <a href="#t0">57</a>, Parent: <a href="#k54">54</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1479.360pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1479.360 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1439.400' y1='114.960' x2='1439.400' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1339.440' y1='189.960' x2='1339.440' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1239.480' y1='264.960' x2='1239.480' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1139.520' y1='339.960' x2='1139.520' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='414.960' x2='1039.560' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='339.960' x2='939.600' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='339.960' x2='839.640' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='714.960' x2='39.960' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1439.400 264.960 Q 1392.420 264.960 1345.440 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (enc &quot;created&quot; tpmkey pcr aik-0) nonce aik-1)</title>
-   <circle cx='1439.400' cy='264.960' r='6.000'/></g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: orange;' cx='1439.400' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='1439.400' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1339.440 414.960 Q 1192.500 377.460 1045.560 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='1339.440' cy='414.960' r='6.000'/>
-   </g>
-  <g><title>pcr</title>
-   <circle style='fill: gray;' cx='1339.440' cy='339.960' r='6.000'/>
-   </g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: blue;' cx='1339.440' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;decrypt&quot; (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='1339.440' cy='189.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1239.480 339.960 Q 1192.500 339.960 1145.520 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle cx='1239.480' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle style='fill: blue;' cx='1239.480' cy='264.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1139.520 414.960 Q 1092.540 414.960 1045.560 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle cx='1139.520' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle style='fill: blue;' cx='1139.520' cy='339.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 489.960 Q 992.580 489.960 945.600 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle cx='1039.560' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='414.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 564.960 Q 892.620 564.960 845.640 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='939.600' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno-2 &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='939.600' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 939.600 414.960 Q 986.580 414.960 1033.560 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk tpmkey-2))</title>
-   <circle style='fill: red;' cx='939.600' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 839.640 564.960 Q 792.060 600.660 744.479 636.359'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 739.680 714.960 Q 392.820 677.460 45.960 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='714.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.780 527.460 733.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 736.680 227.460 1233.480 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 114.960 Q 586.884 189.042 933.888 338.123'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 114.960 Q 786.667 114.756 1333.454 189.552'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (enc &quot;created&quot; tpmkey pcr aik-0)) (aik aik-1))</title>
-   <text
-    x='1439.400' y='77.460'
-    style='text-anchor: middle;'>tpm-quote</text></g>
-  <g><title>((m esk) (pcr pcr) (k tpmkey) (aik aik-0))</title>
-   <text
-    x='1339.440' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-2) (tno tno-2) (esk esk) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='739.680' y='39.960'
-   style='text-anchor: middle;'>envelope 57</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state pcr nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 aik-1 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))
-      tne-2 tno-2 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))))
-  (deflistener (cat &quot;extend&quot; (enc n esk)))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc &quot;created&quot; tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 0) (13 0)) ((2 2) (6 2))
-    ((2 2) (12 0)) ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1))
-    ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0))
-    ((9 3) (8 3)) ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0))
-    ((13 3) (10 0)) ((14 2) (13 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc &quot;created&quot; tpmkey pcr aik-0) (13 1))
-  (label 57)
-  (parent 54)
-  (unrealized (9 0) (14 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k58">Item <a href="#t0">58</a>, Parent: <a href="#k56">56</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1579.320pt' height='979.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1579.320 979.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1539.360' y1='114.960' x2='1539.360' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1439.400' y1='189.960' x2='1439.400' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1339.440' y1='414.960' x2='1339.440' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1239.480' y1='489.960' x2='1239.480' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1139.520' y1='564.960' x2='1139.520' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='639.960' x2='1039.560' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='564.960' x2='939.600' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='564.960' x2='839.640' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='714.960' x2='739.680' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='414.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='789.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='864.960' x2='39.960' y2='939.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1539.360 264.960 Q 1492.380 264.960 1445.400 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (enc &quot;created&quot; tpmkey pcr aik-0) nonce aik-1)</title>
-   <circle cx='1539.360' cy='264.960' r='6.000'/></g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: orange;' cx='1539.360' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='1539.360' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1439.400 414.960 Q 1392.420 414.960 1345.440 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='1439.400' cy='414.960' r='6.000'/>
-   </g>
-  <g><title>pcr</title>
-   <circle style='fill: gray;' cx='1439.400' cy='339.960' r='6.000'/>
-   </g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: blue;' cx='1439.400' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;decrypt&quot; (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='1439.400' cy='189.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1339.440 489.960 Q 1292.460 489.960 1245.480 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='1339.440' cy='489.960' r='6.000'/>
-   </g>
-  <g><title>esk</title>
-   <circle style='fill: blue;' cx='1339.440' cy='414.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1239.480 564.960 Q 1192.500 564.960 1145.520 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk-2))</title>
-   <circle cx='1239.480' cy='564.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk-2))</title>
-   <circle style='fill: blue;' cx='1239.480' cy='489.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1139.520 639.960 Q 1092.540 639.960 1045.560 639.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle cx='1139.520' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))</title>
-   <circle style='fill: blue;' cx='1139.520' cy='564.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 714.960 Q 992.580 714.960 945.600 714.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle cx='1039.560' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='639.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 789.960 Q 892.620 789.960 845.640 789.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='939.600' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='939.600' cy='714.960' r='6.000'/></g>
-  <path
-   d='M 939.600 639.960 Q 986.580 639.960 1033.560 639.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='939.600' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 839.640 789.960 Q 792.660 789.960 745.680 789.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;refuse&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='839.640' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;refuse&quot; esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;refuse&quot; esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='714.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='839.640' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 739.680 864.960 Q 392.820 827.460 45.960 864.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='739.680' cy='864.960' r='6.000'/></g>
-  <g><title>(hash &quot;refuse&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='739.680' cy='789.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='739.680' cy='714.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 189.960 Q 442.800 152.460 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='639.720' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 490.553 524.561 441.345 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 292.860 752.460 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='439.800' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 292.860 489.960 245.880 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 564.960 Q 336.840 527.460 433.800 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 564.960 Q 486.907 601.598 733.933 713.235'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='239.880' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='239.880' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 286.860 414.960 333.840 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 436.800 227.460 633.720 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 736.753 339.301 1233.626 488.642'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 114.960 Q 436.800 77.460 633.720 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 114.960 Q 836.646 114.773 1433.412 189.586'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle cx='39.960' cy='939.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik)</title>
-   <circle style='fill: blue;' cx='39.960' cy='864.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (enc &quot;created&quot; tpmkey pcr aik-0)) (aik aik-1))</title>
-   <text
-    x='1539.360' y='77.460'
-    style='text-anchor: middle;'>tpm-quote</text></g>
-  <g><title>((m esk) (pcr pcr) (k tpmkey) (aik aik-0))</title>
-   <text
-    x='1439.400' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;refuse&quot;) (state (hash n state)) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce (enc v k)) (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='789.660' y='39.960'
-   style='text-anchor: middle;'>envelope 58</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state pcr nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 aik-1 akey))
-  (deflistener
-    (enc &quot;quote&quot; (hash &quot;refuse&quot; (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash &quot;refuse&quot; (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;refuse&quot;) (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2)))
-      tne-2 tno-2 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-2))))
-  (deflistener (cat &quot;extend&quot; (enc n esk-2)))
-  (deflistener esk)
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc &quot;created&quot; tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((2 0) (6 0)) ((2 0) (14 0)) ((2 2) (6 2)) ((2 2) (12 0))
-    ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))
-    ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))
-    ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))
-    ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0))
-    ((14 3) (13 0)) ((15 2) (14 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc &quot;created&quot; tpmkey pcr aik-0) (14 1))
-  (label 58)
-  (parent 56)
-  (unrealized (15 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="t59">Tree <a href="#top">59</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='728.880pt' height='1129.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 728.880 1129.920' font-size='12.000'>
-  <text
-   x='688.920' y='1076.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k94&quot;, &quot;_self&quot;)'>94</text>
-  <line
-   x1='639.000' y1='1089.960' x2='688.920' y2='1089.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='639.000' y='1076.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k92&quot;, &quot;_self&quot;)'>92</text>
-  <line
-   x1='589.080' y1='1052.460' x2='639.000' y2='1089.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='639.000' y='1001.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k91&quot;, &quot;_self&quot;)'>91</text>
-  <line
-   x1='589.080' y1='1052.460' x2='639.000' y2='1014.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='589.080' y='1038.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k88&quot;, &quot;_self&quot;)'>88</text>
-  <line
-   x1='539.160' y1='939.960' x2='589.080' y2='1052.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='589.080' y='926.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k87&quot;, &quot;_self&quot;)'>87</text>
-  <line
-   x1='539.160' y1='939.960' x2='589.080' y2='939.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='688.920' y='851.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k93&quot;, &quot;_self&quot;)'>93</text>
-  <line
-   x1='639.000' y1='864.960' x2='688.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='639.000' y='851.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k90&quot;, &quot;_self&quot;)'>90</text>
-  <line
-   x1='589.080' y1='827.460' x2='639.000' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='639.000' y='776.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k89&quot;, &quot;_self&quot;)'>89</text>
-  <line
-   x1='589.080' y1='827.460' x2='639.000' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='589.080' y='813.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k86&quot;, &quot;_self&quot;)'>86</text>
-  <line
-   x1='539.160' y1='939.960' x2='589.080' y2='827.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='539.160' y='926.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k83&quot;, &quot;_self&quot;)'>83</text>
-  <line
-   x1='489.240' y1='902.460' x2='539.160' y2='939.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='589.080' y='701.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k85&quot;, &quot;_self&quot;)'>85</text>
-  <line
-   x1='539.160' y1='714.960' x2='589.080' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='539.160' y='701.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k82&quot;, &quot;_self&quot;)'>82</text>
-  <line
-   x1='489.240' y1='902.460' x2='539.160' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='489.240' y='888.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k79&quot;, &quot;_self&quot;)'>79</text>
-  <line
-   x1='439.320' y1='864.960' x2='489.240' y2='902.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='589.080' y='626.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k84&quot;, &quot;_self&quot;)'>84</text>
-  <line
-   x1='539.160' y1='639.960' x2='589.080' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='539.160' y='626.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k81&quot;, &quot;_self&quot;)'>81</text>
-  <line
-   x1='489.240' y1='639.960' x2='539.160' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='489.240' y='626.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k78&quot;, &quot;_self&quot;)'>78</text>
-  <line
-   x1='439.320' y1='864.960' x2='489.240' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='439.320' y='851.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k73&quot;, &quot;_self&quot;)'>73</text>
-  <line
-   x1='389.400' y1='714.960' x2='439.320' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='539.160' y='551.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k80&quot;, &quot;_self&quot;)'>80</text>
-  <line
-   x1='489.240' y1='564.960' x2='539.160' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='489.240' y='551.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k77&quot;, &quot;_self&quot;)'>77</text>
-  <line
-   x1='439.320' y1='489.960' x2='489.240' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='489.240' y='476.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k76&quot;, &quot;_self&quot;)'>76</text>
-  <line
-   x1='439.320' y1='489.960' x2='489.240' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='489.240' y='401.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k75&quot;, &quot;_self&quot;)'>75</text>
-  <line
-   x1='439.320' y1='489.960' x2='489.240' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='439.320' y='476.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k72&quot;, &quot;_self&quot;)'>72</text>
-  <line
-   x1='389.400' y1='714.960' x2='439.320' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='489.240' y='326.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k74&quot;, &quot;_self&quot;)'>74</text>
-  <line
-   x1='439.320' y1='339.960' x2='489.240' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='439.320' y='326.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k71&quot;, &quot;_self&quot;)'>71</text>
-  <line
-   x1='389.400' y1='714.960' x2='439.320' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='389.400' y='701.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k70&quot;, &quot;_self&quot;)'>70</text>
-  <line
-   x1='339.480' y1='714.960' x2='389.400' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='339.480' y='701.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k69&quot;, &quot;_self&quot;)'>69</text>
-  <line
-   x1='289.560' y1='714.960' x2='339.480' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='289.560' y='701.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k68&quot;, &quot;_self&quot;)'>68</text>
-  <line
-   x1='239.640' y1='677.460' x2='289.560' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='289.560' y='251.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k67&quot;, &quot;_self&quot;)'>67</text>
-  <line
-   x1='239.640' y1='677.460' x2='289.560' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='663.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k66&quot;, &quot;_self&quot;)'>66</text>
-  <line
-   x1='189.720' y1='639.960' x2='239.640' y2='677.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='176.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k65&quot;, &quot;_self&quot;)'>65</text>
-  <line
-   x1='189.720' y1='639.960' x2='239.640' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='626.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k64&quot;, &quot;_self&quot;)'>64</text>
-  <line
-   x1='139.800' y1='602.460' x2='189.720' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k63&quot;, &quot;_self&quot;)'>63</text>
-  <line
-   x1='139.800' y1='602.460' x2='189.720' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='588.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k62&quot;, &quot;_self&quot;)'>62</text>
-  <line
-   x1='89.880' y1='564.960' x2='139.800' y2='602.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k61&quot;, &quot;_self&quot;)'>61</text>
-  <line
-   x1='89.880' y1='564.960' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='551.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k60&quot;, &quot;_self&quot;)'>60</text>
-  <line
-   x1='39.960' y1='564.960' x2='89.880' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='551.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k59&quot;, &quot;_self&quot;)'>59</text>
-  </svg></div>
-
-<pre>(defprotocol envelope basic
-  (defrole tpm-power-on (vars) (trace (init &quot;0&quot;)))
-  (defrole tpm-quote
-    (vars (nonce pcr mesg) (aik akey))
-    (trace (recv (cat &quot;quote&quot; nonce)) (obsv pcr)
-      (send (enc &quot;quote&quot; pcr nonce aik)))
-    (non-orig aik))
-  (defrole tpm-extend-enc
-    (vars (value state mesg) (esk skey) (tne tno data) (tpmkey akey))
-    (trace (recv (cat &quot;establish transport&quot; tpmkey (enc esk tpmkey)))
-      (send (cat &quot;establish transport&quot; tne))
-      (recv
-        (cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc value esk)) tno
-          &quot;false&quot;
-          (hash esk
-            (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc value esk)))
-            tne tno &quot;false&quot;))) (tran state (hash value state)))
-    (non-orig (invk tpmkey))
-    (uniq-orig tne))
-  (defrole tpm-create-key
-    (vars (k aik akey) (pcr mesg) (esk skey))
-    (trace (recv (enc &quot;create key&quot; pcr esk))
-      (send (enc &quot;created&quot; k pcr aik)))
-    (non-orig (invk k) aik esk)
-    (uniq-orig k))
-  (defrole tpm-decrypt
-    (vars (m pcr mesg) (k aik akey))
-    (trace (recv (cat &quot;decrypt&quot; (enc m k)))
-      (recv (enc &quot;created&quot; k pcr aik)) (obsv pcr) (send m))
-    (non-orig aik))
-  (defrole alice
-    (vars (v n tne tno data) (esk1 esk skey) (k aik tpmkey akey)
-      (pcr mesg))
-    (trace (send (cat &quot;establish transport&quot; tpmkey (enc esk tpmkey)))
-      (recv (cat &quot;establish transport&quot; tne))
-      (send
-        (cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot;
-          (hash esk
-            (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne
-            tno &quot;false&quot;))) (recv pcr)
-      (send (enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1))
-      (recv (enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik))
-      (send (enc v k)))
-    (non-orig aik esk1 (invk tpmkey))
-    (uniq-orig v n tno esk)
-    (neq (tno n))))</pre>
-
-<p id="k59">Item <a href="#t59">59</a>, Child: <a href="#k60">60</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='604.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 604.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: red;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='89.940' y='39.960' style='text-anchor: middle;'>envelope 59</text>
-  </svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (neq (tno n))
-  (non-orig esk1 aik (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (label 59)
-  (unrealized (0 0) (1 5))
-  (origs (esk (1 0)) (n (1 2)) (tno (1 2)) (v (1 6)))
-  (preskeleton)
-  (comment &quot;Not a skeleton&quot;))</pre>
-
-<p id="k60">Item <a href="#t59">60</a>, Parent: <a href="#k59">59</a>, Children: <a href="#k61">61</a> <a href="#k62">62</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='679.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 679.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: red;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='89.940' y='39.960' style='text-anchor: middle;'>envelope 60</text>
-  </svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (precedes ((1 6) (0 0)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (label 60)
-  (parent 59)
-  (unrealized (1 5))
-  (origs (esk (1 0)) (n (1 2)) (tno (1 2)) (v (1 6)))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k61">Item <a href="#t59">61</a>, Parent: <a href="#k60">60</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='679.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 679.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 264.960 Q 191.118 374.718 142.356 484.477'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik) nonce aik-0)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: orange;' cx='239.880' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)) (aik aik-0))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>envelope 61</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik))
-    (aik aik-0))
-  (precedes ((1 6) (0 0)) ((2 2) (1 5)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik) (1 5))
-  (label 61)
-  (parent 60)
-  (unrealized (2 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k62">Item <a href="#t59">62</a>, Parent: <a href="#k60">60</a>, Children: <a href="#k63">63</a> <a href="#k64">64</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='679.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 679.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 190.848 337.114 141.817 484.268'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk-0)</title>
-   <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n pcr))) (esk esk-0) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>envelope 62</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk esk-0 skey)
-    (k aik tpmkey akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n pcr)))
-    (esk esk-0) (k k) (aik aik))
-  (precedes ((1 6) (0 0)) ((2 1) (1 5)))
-  (neq (tno n))
-  (non-orig esk1 esk-0 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-create-key 2)
-    (enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik) (1 5))
-  (label 62)
-  (parent 60)
-  (unrealized (0 0) (2 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k63">Item <a href="#t59">63</a>, Parent: <a href="#k62">62</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='679.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 679.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk-0) nonce aik-0)</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk-0)</title>
-   <circle style='fill: orange;' cx='339.840' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 191.564 412.464 143.247 484.967'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk-0)</title>
-   <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk-0)) (aik aik-0))</title>
-   <text
-    x='339.840' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n pcr))) (esk esk-0) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>envelope 63</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk esk-0 skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n pcr)))
-    (esk esk-0) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk-0))
-    (aik aik-0))
-  (precedes ((1 6) (0 0)) ((2 1) (1 5)) ((3 2) (2 0)))
-  (neq (tno n))
-  (non-orig esk1 esk-0 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk-0) (2 0))
-  (label 63)
-  (parent 62)
-  (unrealized (0 0) (3 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k64">Item <a href="#t59">64</a>, Parent: <a href="#k62">62</a>, Children: <a href="#k65">65</a> <a href="#k66">66</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='679.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 679.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='564.960' x2='39.960' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 92.940 564.960 45.960 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='639.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: red;' cx='39.960' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n pcr))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>envelope 64</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (precedes ((1 4) (2 0)) ((1 6) (0 0)) ((2 1) (1 5)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (displaced 3 1 alice 5)
-    (enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk-0) (2 0))
-  (label 64)
-  (parent 62)
-  (unrealized (0 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k65">Item <a href="#t59">65</a>, Parent: <a href="#k64">64</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='754.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 754.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='489.960' x2='339.840' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='639.960' x2='39.960' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 639.960 Q 192.900 602.460 45.960 639.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc &quot;quote&quot; v nonce aik-0)</title>
-   <circle cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: orange;' cx='339.840' cy='564.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='339.840' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='714.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='639.960' r='6.000'/></g>
-  <g><title>((nonce nonce) (pcr v) (aik aik-0))</title>
-   <text
-    x='339.840' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n pcr))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>envelope 65</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr v) (aik aik-0))
-  (precedes ((1 4) (2 0)) ((1 6) (3 1)) ((2 1) (1 5)) ((3 2) (0 0)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation nonce-test (added-strand tpm-quote 3) v (0 0) (enc v k))
-  (label 65)
-  (parent 64)
-  (unrealized (3 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k66">Item <a href="#t59">66</a>, Parent: <a href="#k64">64</a>, Children: <a href="#k67">67</a> <a href="#k68">68</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>pcr-0</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g><title>(enc &quot;created&quot; k pcr-0 aik-0)</title>
-   <circle style='fill: red;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g><title>((m v) (pcr pcr-0) (k k) (aik aik-0))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n pcr))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>envelope 66</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr pcr-0 mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))
-  (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
-  (label 66)
-  (parent 64)
-  (unrealized (3 1))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k67">Item <a href="#t59">67</a>, Parent: <a href="#k66">66</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='414.960' x2='439.800' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 564.960 Q 392.220 600.660 344.639 636.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (enc &quot;created&quot; k pcr-0 aik-0) nonce aik-1)</title>
-   <circle cx='439.800' cy='564.960' r='6.000'/></g>
-  <g><title>(enc &quot;created&quot; k pcr-0 aik-0)</title>
-   <circle style='fill: orange;' cx='439.800' cy='489.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='439.800' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>pcr-0</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g><title>(enc &quot;created&quot; k pcr-0 aik-0)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 489.960 Q 336.840 452.460 433.800 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (enc &quot;created&quot; k pcr-0 aik-0)) (aik aik-1))</title>
-   <text
-    x='439.800' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g><title>((m v) (pcr pcr-0) (k k) (aik aik-0))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n pcr))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='239.880' y='39.960'
-   style='text-anchor: middle;'>envelope 67</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr pcr-0 nonce mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 aik-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc &quot;created&quot; k pcr-0 aik-0)) (aik aik-1))
-  (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((2 1) (4 1))
-    ((3 3) (0 0)) ((4 2) (3 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc &quot;created&quot; k pcr-0 aik-0) (3 1))
-  (label 67)
-  (parent 66)
-  (unrealized (4 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k68">Item <a href="#t59">68</a>, Parent: <a href="#k66">66</a>, Child: <a href="#k69">69</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n pcr))</title>
-   <circle style='fill: orange;' cx='339.840' cy='714.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n pcr))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n pcr))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>envelope 68</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n pcr)))
-    (k k) (aik aik))
-  (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (displaced 4 2 tpm-create-key 2)
-    (enc &quot;created&quot; k pcr-0 aik-0) (3 1))
-  (label 68)
-  (parent 66)
-  (unrealized (3 2))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k69">Item <a href="#t59">69</a>, Parent: <a href="#k68">68</a>, Child: <a href="#k70">70</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='114.960' x2='439.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 339.960 Q 390.593 524.561 341.385 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n pcr) (hash &quot;obtain&quot; (hash n pcr)))</title>
-   <circle style='fill: orange;' cx='439.800' cy='339.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n pcr))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n pcr)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n pcr)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n pcr)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n pcr))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n pcr))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr pcr) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='239.880' y='39.960'
-   style='text-anchor: middle;'>envelope 69</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno tne-0 tno-0 data) (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n pcr)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n pcr))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0))
-    ((4 3) (3 2)))
-  (leadsto ((4 3) (3 2)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0))
-  (uniq-orig v n tno tne-0 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash &quot;obtain&quot; (hash n pcr)) (3 2))
-  (label 69)
-  (parent 68)
-  (unrealized (4 3))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k70">Item <a href="#t59">70</a>, Parent: <a href="#k69">69</a>, Children: <a href="#k71">71</a> <a href="#k72">72</a> <a href="#k73">73</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='579.720pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 579.720 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='114.960' x2='439.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 539.760 339.960 Q 492.780 339.960 445.800 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 339.960 Q 390.593 524.561 341.385 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 336.840 227.460 533.760 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='289.860' y='39.960'
-   style='text-anchor: middle;'>envelope 70</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 3) (4 3)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash n state) (4 3))
-  (label 70)
-  (parent 69)
-  (unrealized (5 2))
-  (comment &quot;3 in cohort - 3 not yet seen&quot;))</pre>
-
-<p id="k71">Item <a href="#t59">71</a>, Parent: <a href="#k70">70</a>, Child: <a href="#k74">74</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='679.680pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 679.680 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='114.960' x2='439.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 639.720 264.960 Q 592.740 264.960 545.760 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;) nonce aik-0)</title>
-   <circle cx='639.720' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: orange;' cx='639.720' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 492.780 339.960 445.800 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 339.960 Q 390.593 524.561 341.385 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 336.840 227.460 533.760 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)) (aik aik-0))</title>
-   <text
-    x='639.720' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='339.840' y='39.960'
-   style='text-anchor: middle;'>envelope 71</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr
-      (hash esk-1
-        (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1
-        tno-1 &quot;false&quot;)) (aik aik-0))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 3) (4 3)) ((6 2) (5 2)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;) (5 2))
-  (label 71)
-  (parent 70)
-  (unrealized (5 2) (6 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k72">Item <a href="#t59">72</a>, Parent: <a href="#k70">70</a>, Children: <a href="#k75">75</a> <a href="#k76">76</a> <a href="#k77">77</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='579.720pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 579.720 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='114.960' x2='439.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 539.760 339.960 Q 492.780 339.960 445.800 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 539.760 189.960 Q 342.840 152.460 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk tpmkey-1))</title>
-   <circle style='fill: red;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 339.960 Q 390.593 524.561 341.385 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 336.840 227.460 533.760 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 336.840 77.460 533.760 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='289.860' y='39.960'
-   style='text-anchor: middle;'>envelope 72</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (precedes ((1 0) (5 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))
-    ((5 3) (4 3)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation encryption-test (displaced 6 1 alice 3)
-    (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;) (5 2))
-  (label 72)
-  (parent 70)
-  (unrealized (5 0))
-  (comment &quot;3 in cohort - 3 not yet seen&quot;))</pre>
-
-<p id="k73">Item <a href="#t59">73</a>, Parent: <a href="#k70">70</a>, Children: <a href="#k78">78</a> <a href="#k79">79</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='679.680pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 679.680 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='639.720' y1='189.960' x2='639.720' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='114.960' x2='439.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 639.720 264.960 Q 592.740 264.960 545.760 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='639.720' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: red;' cx='639.720' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 492.780 339.960 445.800 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 539.760 189.960 Q 586.740 189.960 633.720 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 339.960 Q 390.593 524.561 341.385 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 336.840 227.460 533.760 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='339.840' y='39.960'
-   style='text-anchor: middle;'>envelope 73</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener
-      (cat esk-1
-        (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1
-        tno-1 &quot;false&quot;))
-    (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;) (5 2))
-  (label 73)
-  (parent 70)
-  (unrealized (5 2) (6 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k74">Item <a href="#t59">74</a>, Parent: <a href="#k71">71</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='779.640pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 779.640 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='739.680' y1='114.960' x2='739.680' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='264.960' x2='639.720' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='264.960' x2='539.760' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='264.960' x2='439.800' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 739.680 339.960 Q 692.700 339.960 645.720 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (cat (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;) (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: orange;' cx='739.680' cy='339.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc esk-1 esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc esk-1 esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='739.680' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='739.680' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='739.680' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 639.720 414.960 Q 592.740 414.960 545.760 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;) nonce aik-0)</title>
-   <circle cx='639.720' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 539.760 489.960 Q 492.780 489.960 445.800 489.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='539.760' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 636.720 302.460 733.680 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 439.800 489.960 Q 391.038 599.718 342.276 709.477'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='414.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 337.031 301.406 534.142 412.852'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>((value esk-1) (state (cat (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='739.680' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)) (aik aik-0))</title>
-   <text
-    x='639.720' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='389.820' y='39.960'
-   style='text-anchor: middle;'>envelope 74</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr
-      (hash esk-1
-        (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1
-        tno-1 &quot;false&quot;)) (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value esk-1)
-    (state
-      (cat (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-        tne-1 tno-1 &quot;false&quot;)) (tne tne-2) (tno tno-2) (esk esk-2)
-    (tpmkey tpmkey-2))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (7 3)) ((5 3) (4 3))
-    ((6 2) (5 2)) ((7 3) (6 1)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((7 3) (6 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;) (6 1))
-  (label 74)
-  (parent 71)
-  (unrealized (5 2) (7 3))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k75">Item <a href="#t59">75</a>, Parent: <a href="#k72">72</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='579.720pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 579.720 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='114.960' x2='439.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 539.760 339.960 Q 492.780 339.960 445.800 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 539.760 189.960 Q 342.840 152.460 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 339.960 Q 390.593 524.561 341.385 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 336.840 227.460 533.760 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 336.840 77.460 533.760 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='289.860' y='39.960'
-   style='text-anchor: middle;'>envelope 75 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (precedes ((1 0) (5 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))
-    ((5 3) (4 3)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (contracted (tpmkey-1 tpmkey)) esk (5 0)
-    (enc esk tpmkey))
-  (label 75)
-  (parent 72)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k)
-        (aik aik) (tpmkey tpmkey) (pcr state))))
-  (origs (n (1 2)) (tno (1 2)) (esk (1 0)) (tne (5 1)) (tne-0 (4 1))
-    (k (2 1)) (v (1 6))))</pre>
-
-<p id="k76">Item <a href="#t59">76</a>, Parent: <a href="#k72">72</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='679.680pt' height='1054.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 679.680 1054.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='264.960' x2='539.760' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='264.960' x2='439.800' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='714.960' x2='339.840' y2='939.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='564.960' x2='239.880' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='939.960' x2='39.960' y2='1014.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 639.720 264.960 Q 592.740 264.960 545.760 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc &quot;quote&quot; esk nonce aik-0)</title>
-   <circle cx='639.720' cy='264.960' r='6.000'/></g>
-  <g><title>esk</title>
-   <circle style='fill: orange;' cx='639.720' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 489.960 Q 492.780 489.960 445.800 489.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 342.840 302.460 145.920 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk tpmkey-1))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 439.800 489.960 Q 390.593 674.561 341.385 859.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='414.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 339.840 939.960 Q 192.900 902.460 45.960 939.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='939.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='864.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <path
-   d='M 239.880 639.960 Q 192.900 639.960 145.920 639.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 139.920 714.960 Q 236.880 677.460 333.840 714.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='639.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 186.900 564.960 233.880 564.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 336.840 377.460 533.760 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 189.960 Q 386.820 152.460 633.720 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='1014.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='939.960' r='6.000'/></g>
-  <g><title>((nonce nonce) (pcr esk) (aik aik-0))</title>
-   <text
-    x='639.720' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='339.840' y='39.960'
-   style='text-anchor: middle;'>envelope 76</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((1 0) (6 1)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))
-    ((5 3) (4 3)) ((6 2) (5 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (5 0)
-    (enc esk tpmkey))
-  (label 76)
-  (parent 72)
-  (unrealized (6 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k77">Item <a href="#t59">77</a>, Parent: <a href="#k72">72</a>, Child: <a href="#k80">80</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='679.680pt' height='1129.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 679.680 1129.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='639.720' y1='114.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='339.960' x2='439.800' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='789.960' x2='339.840' y2='1014.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='639.960' x2='239.880' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='1014.960' x2='39.960' y2='1089.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='639.720' cy='339.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: gray;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: red;' cx='639.720' cy='189.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 539.760 564.960 Q 492.780 564.960 445.800 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 539.760 414.960 Q 342.840 377.460 145.920 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk tpmkey-1))</title>
-   <circle style='fill: blue;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 564.960 Q 390.593 749.561 341.385 934.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 339.840 1014.960 Q 192.900 977.460 45.960 1014.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='1014.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='939.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='864.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='789.960' r='6.000'/></g>
-  <path
-   d='M 239.880 714.960 Q 192.900 714.960 145.920 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='639.960' r='6.000'/></g>
-  <path
-   d='M 139.920 789.960 Q 236.880 752.460 333.840 789.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='714.960' r='6.000'/></g>
-  <path
-   d='M 139.920 639.960 Q 186.900 639.960 233.880 639.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='639.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 139.920 489.960 Q 336.840 452.460 533.760 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 386.820 77.460 633.720 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='1089.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='1014.960' r='6.000'/></g>
-  <g><title>((m esk) (pcr pcr) (k tpmkey) (aik aik-0))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='339.840' y='39.960'
-   style='text-anchor: middle;'>envelope 77</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((1 0) (6 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))
-    ((5 3) (4 3)) ((6 3) (5 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (5 0)
-    (enc esk tpmkey))
-  (label 77)
-  (parent 72)
-  (unrealized (6 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k78">Item <a href="#t59">78</a>, Parent: <a href="#k73">73</a>, Child: <a href="#k81">81</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='779.640pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 779.640 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='739.680' y1='114.960' x2='739.680' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='264.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 739.680 264.960 Q 692.700 264.960 645.720 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) nonce aik-0)</title>
-   <circle cx='739.680' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: orange;' cx='739.680' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='739.680' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='639.720' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 539.760 414.960 Q 492.780 414.960 445.800 414.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 539.760 264.960 Q 586.740 264.960 633.720 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='539.760' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 414.960 Q 390.768 562.114 341.737 709.268'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 336.891 264.407 533.863 338.854'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))) (aik aik-0))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='389.820' y='39.960'
-   style='text-anchor: middle;'>envelope 78</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-    (aik aik-0))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 2) (6 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) (6 0))
-  (label 78)
-  (parent 73)
-  (unrealized (5 2) (7 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k79">Item <a href="#t59">79</a>, Parent: <a href="#k73">73</a>, Children: <a href="#k82">82</a> <a href="#k83">83</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='779.640pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 779.640 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='739.680' y1='114.960' x2='739.680' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='189.960' x2='639.720' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='114.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='114.960' x2='439.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 739.680 189.960 Q 692.700 189.960 645.720 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle cx='739.680' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: red;' cx='739.680' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 639.720 264.960 Q 592.740 264.960 545.760 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='639.720' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='639.720' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 492.780 339.960 445.800 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 539.760 189.960 Q 586.740 189.960 633.720 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='539.760' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 439.800 339.960 Q 390.593 524.561 341.385 709.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 336.840 227.460 533.760 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='389.820' y='39.960'
-   style='text-anchor: middle;'>envelope 79</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 1) (6 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener
-      (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-    (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) (6 0))
-  (label 79)
-  (parent 73)
-  (unrealized (5 2) (7 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k80">Item <a href="#t59">80</a>, Parent: <a href="#k77">77</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='779.640pt' height='1204.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 779.640 1204.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='739.680' y1='114.960' x2='739.680' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='189.960' x2='639.720' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='414.960' x2='539.760' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='414.960' x2='439.800' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='864.960' x2='339.840' y2='1089.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='714.960' x2='239.880' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='1089.960' x2='39.960' y2='1164.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 739.680 264.960 Q 692.700 264.960 645.720 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (enc &quot;created&quot; tpmkey pcr aik-0) nonce aik-1)</title>
-   <circle cx='739.680' cy='264.960' r='6.000'/></g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: orange;' cx='739.680' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='739.680' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 639.720 414.960 Q 592.740 414.960 545.760 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='639.720' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: gray;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: blue;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='639.720' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 539.760 639.960 Q 492.780 639.960 445.800 639.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 539.760 489.960 Q 342.840 452.460 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle cx='539.760' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk tpmkey-1))</title>
-   <circle style='fill: blue;' cx='539.760' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 439.800 639.960 Q 390.593 824.561 341.385 1009.162'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 339.840 1089.960 Q 192.900 1052.460 45.960 1089.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='1089.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='1014.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='939.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='864.960' r='6.000'/></g>
-  <path
-   d='M 239.880 789.960 Q 192.900 789.960 145.920 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='714.960' r='6.000'/></g>
-  <path
-   d='M 139.920 864.960 Q 236.880 827.460 333.840 864.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='864.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='789.960' r='6.000'/></g>
-  <path
-   d='M 139.920 714.960 Q 186.900 714.960 233.880 714.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='714.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='639.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 336.840 527.460 533.760 564.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 189.960 Q 386.820 152.460 633.720 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='1164.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='1089.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (enc &quot;created&quot; tpmkey pcr aik-0)) (aik aik-1))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g><title>((m esk) (pcr pcr) (k tpmkey) (aik aik-0))</title>
-   <text
-    x='639.720' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne) (tno tno) (esk esk) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='389.820' y='39.960'
-   style='text-anchor: middle;'>envelope 80</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state pcr nonce mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc &quot;created&quot; tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((1 0) (6 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))
-    ((5 3) (4 3)) ((6 3) (5 0)) ((7 2) (6 1)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc &quot;created&quot; tpmkey pcr aik-0) (6 1))
-  (label 80)
-  (parent 77)
-  (unrealized (7 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k81">Item <a href="#t59">81</a>, Parent: <a href="#k78">78</a>, Child: <a href="#k84">84</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='879.600pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 879.600 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='839.640' y1='114.960' x2='839.640' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='264.960' x2='739.680' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='414.960' x2='639.720' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='339.960' x2='439.800' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 839.640 339.960 Q 792.660 339.960 745.680 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash &quot;extend&quot; (enc n esk-1)) (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))</title>
-   <circle style='fill: orange;' cx='839.640' cy='339.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;execute transport&quot; esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;execute transport&quot; esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='839.640' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='839.640' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 739.680 414.960 Q 692.700 414.960 645.720 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) nonce aik-0)</title>
-   <circle cx='739.680' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: gray;' cx='739.680' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='739.680' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 489.960 Q 592.740 489.960 545.760 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='639.720' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='639.720' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 539.760 564.960 Q 492.780 564.960 445.800 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 539.760 414.960 Q 586.740 414.960 633.720 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 564.960 Q 391.484 637.464 343.167 709.967'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 337.226 338.489 534.531 487.018'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>((value &quot;execute transport&quot;) (state (hash &quot;extend&quot; (enc n esk-1))) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))) (aik aik-0))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='439.800' y='39.960'
-   style='text-anchor: middle;'>envelope 81</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-    (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value &quot;execute transport&quot;)
-    (state (hash &quot;extend&quot; (enc n esk-1))) (tne tne-2) (tno tno-2)
-    (esk esk-2) (tpmkey tpmkey-2))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 2) (6 0)) ((8 3) (7 1)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((8 3) (7 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) (7 1))
-  (label 81)
-  (parent 78)
-  (unrealized (5 2) (8 3))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k82">Item <a href="#t59">82</a>, Parent: <a href="#k79">79</a>, Child: <a href="#k85">85</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='879.600pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 879.600 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='839.640' y1='114.960' x2='839.640' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='264.960' x2='739.680' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='339.960' x2='639.720' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='264.960' x2='539.760' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='264.960' x2='439.800' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 839.640 264.960 Q 792.660 264.960 745.680 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;extend&quot; (enc n esk-1)) nonce aik-0)</title>
-   <circle cx='839.640' cy='264.960' r='6.000'/></g>
-  <g><title>(hash &quot;extend&quot; (enc n esk-1))</title>
-   <circle style='fill: orange;' cx='839.640' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='839.640' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 739.680 339.960 Q 692.700 339.960 645.720 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle cx='739.680' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: blue;' cx='739.680' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 414.960 Q 592.740 414.960 545.760 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='639.720' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 539.760 489.960 Q 492.780 489.960 445.800 489.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='539.760' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 586.740 339.960 633.720 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 439.800 489.960 Q 391.038 599.718 342.276 709.477'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='414.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 337.031 301.406 534.142 412.852'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash &quot;extend&quot; (enc n esk-1))) (aik aik-0))</title>
-   <text
-    x='839.640' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='439.800' y='39.960'
-   style='text-anchor: middle;'>envelope 82</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash &quot;extend&quot; (enc n esk-1))) (aik aik-0))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 1) (6 0)) ((8 2) (7 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash &quot;extend&quot; (enc n esk-1)) (7 0))
-  (label 82)
-  (parent 79)
-  (unrealized (5 2) (8 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k83">Item <a href="#t59">83</a>, Parent: <a href="#k79">79</a>, Children: <a href="#k86">86</a> <a href="#k87">87</a> <a href="#k88">88</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='879.600pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 879.600 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='839.640' y1='264.960' x2='839.640' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='339.960' x2='739.680' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='414.960' x2='639.720' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='339.960' x2='439.800' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 839.640 339.960 Q 792.660 339.960 745.680 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle cx='839.640' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle style='fill: red;' cx='839.640' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 739.680 414.960 Q 692.700 414.960 645.720 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle cx='739.680' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: blue;' cx='739.680' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 639.720 489.960 Q 592.740 489.960 545.760 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='639.720' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='639.720' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 539.760 564.960 Q 492.780 564.960 445.800 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 539.760 414.960 Q 586.740 414.960 633.720 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 564.960 Q 391.484 637.464 343.167 709.967'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 486.780 227.460 833.640 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='439.800' y='39.960'
-   style='text-anchor: middle;'>envelope 83</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-  (deflistener (cat &quot;extend&quot; (enc n esk-1)))
-  (precedes ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener (cat &quot;extend&quot; (enc n esk-1)))
-    (hash &quot;extend&quot; (enc n esk-1)) (7 0))
-  (label 83)
-  (parent 79)
-  (unrealized (8 0))
-  (comment &quot;3 in cohort - 3 not yet seen&quot;))</pre>
-
-<p id="k84">Item <a href="#t59">84</a>, Parent: <a href="#k81">81</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='979.560pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 979.560 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='939.600' y1='114.960' x2='939.600' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='114.960' x2='839.640' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='264.960' x2='739.680' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='414.960' x2='639.720' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='339.960' x2='439.800' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 939.600 339.960 Q 892.620 339.960 845.640 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (enc n esk-1) (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: orange;' cx='939.600' cy='339.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;extend&quot; esk-3)) tno-3 &quot;false&quot; (hash esk-3 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;extend&quot; esk-3))) tne-3 tno-3 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='939.600' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-3)</title>
-   <circle cx='939.600' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-3 (enc esk-3 tpmkey-3))</title>
-   <circle style='fill: blue;' cx='939.600' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 839.640 339.960 Q 792.660 339.960 745.680 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash &quot;extend&quot; (enc n esk-1)) (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))</title>
-   <circle style='fill: gray;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;execute transport&quot; esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;execute transport&quot; esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='839.640' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='839.640' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='839.640' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 739.680 414.960 Q 692.700 414.960 645.720 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) nonce aik-0)</title>
-   <circle cx='739.680' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: gray;' cx='739.680' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='739.680' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 489.960 Q 592.740 489.960 545.760 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='639.720' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='639.720' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 539.760 564.960 Q 492.780 564.960 445.800 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 539.760 414.960 Q 586.740 414.960 633.720 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 564.960 Q 391.484 637.464 343.167 709.967'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 536.773 264.680 933.626 339.400'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>((value &quot;extend&quot;) (state (enc n esk-1)) (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;execute transport&quot;) (state (hash &quot;extend&quot; (enc n esk-1))) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='839.640' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))) (aik aik-0))</title>
-   <text
-    x='739.680' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='489.780' y='39.960'
-   style='text-anchor: middle;'>envelope 84</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)
-    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 tpmkey-3 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-    (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value &quot;execute transport&quot;)
-    (state (hash &quot;extend&quot; (enc n esk-1))) (tne tne-2) (tno tno-2)
-    (esk esk-2) (tpmkey tpmkey-2))
-  (defstrand tpm-extend-enc 4 (value &quot;extend&quot;) (state (enc n esk-1))
-    (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))
-  (precedes ((1 2) (9 3)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 2) (6 0)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 tne-3 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash &quot;extend&quot; (enc n esk-1)) (8 3))
-  (label 84)
-  (parent 81)
-  (unrealized (5 2) (9 3))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k85">Item <a href="#t59">85</a>, Parent: <a href="#k82">82</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='979.560pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 979.560 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='939.600' y1='114.960' x2='939.600' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='264.960' x2='839.640' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='414.960' x2='739.680' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='489.960' x2='639.720' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='414.960' x2='539.760' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='414.960' x2='439.800' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 939.600 339.960 Q 892.620 339.960 845.640 339.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (enc n esk-1) (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: orange;' cx='939.600' cy='339.960' r='6.000'/>
-   </g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;extend&quot; esk-2)) tno-2 &quot;false&quot; (hash esk-2 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;extend&quot; esk-2))) tne-2 tno-2 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='939.600' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-2)</title>
-   <circle cx='939.600' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-2 (enc esk-2 tpmkey-2))</title>
-   <circle style='fill: blue;' cx='939.600' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 839.640 414.960 Q 792.660 414.960 745.680 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (hash &quot;extend&quot; (enc n esk-1)) nonce aik-0)</title>
-   <circle cx='839.640' cy='414.960' r='6.000'/></g>
-  <g><title>(hash &quot;extend&quot; (enc n esk-1))</title>
-   <circle style='fill: gray;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='839.640' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 739.680 489.960 Q 692.700 489.960 645.720 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle cx='739.680' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: blue;' cx='739.680' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 639.720 564.960 Q 592.740 564.960 545.760 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='639.720' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='639.720' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 539.760 639.960 Q 492.780 639.960 445.800 639.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: red;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 539.760 489.960 Q 586.740 489.960 633.720 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='539.760' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='539.760' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 439.800 639.960 Q 392.220 675.660 344.639 711.359'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 536.773 264.680 933.626 339.400'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>((value &quot;extend&quot;) (state (enc n esk-1)) (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((nonce nonce) (pcr (hash &quot;extend&quot; (enc n esk-1))) (aik aik-0))</title>
-   <text
-    x='839.640' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='489.780' y='39.960'
-   style='text-anchor: middle;'>envelope 85</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash &quot;extend&quot; (enc n esk-1))) (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value &quot;extend&quot;) (state (enc n esk-1))
-    (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (precedes ((1 2) (9 3)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 1) (6 0)) ((8 2) (7 0)) ((9 3) (8 1)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((9 3) (8 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash &quot;extend&quot; (enc n esk-1)) (8 1))
-  (label 85)
-  (parent 82)
-  (unrealized (5 2) (9 3))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k86">Item <a href="#t59">86</a>, Parent: <a href="#k83">83</a>, Children: <a href="#k89">89</a> <a href="#k90">90</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='879.600pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 879.600 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='839.640' y1='264.960' x2='839.640' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='339.960' x2='739.680' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='414.960' x2='639.720' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='339.960' x2='439.800' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 839.640 339.960 Q 792.660 339.960 745.680 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle cx='839.640' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle style='fill: blue;' cx='839.640' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 739.680 414.960 Q 692.700 414.960 645.720 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle cx='739.680' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle style='fill: blue;' cx='739.680' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 639.720 489.960 Q 592.740 489.960 545.760 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='639.720' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: red;' cx='639.720' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 539.760 564.960 Q 492.780 564.960 445.800 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno-1 &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 539.760 414.960 Q 586.740 414.960 633.720 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk tpmkey-1))</title>
-   <circle style='fill: red;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 564.960 Q 391.484 637.464 343.167 709.967'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 486.780 227.460 833.640 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 337.226 188.489 534.531 337.018'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='439.800' y='39.960'
-   style='text-anchor: middle;'>envelope 86</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))))
-  (deflistener (cat &quot;extend&quot; (enc n esk)))
-  (precedes ((1 0) (5 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))
-    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (contracted (esk-1 esk)) n (8 0) (enc n esk))
-  (label 86)
-  (parent 83)
-  (unrealized (5 0) (6 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k87">Item <a href="#t59">87</a>, Parent: <a href="#k83">83</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='979.560pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 979.560 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='939.600' y1='189.960' x2='939.600' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='339.960' x2='839.640' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='414.960' x2='739.680' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='489.960' x2='639.720' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='414.960' x2='539.760' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='414.960' x2='439.800' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 939.600 339.960 Q 892.620 339.960 845.640 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc &quot;quote&quot; n nonce aik-0)</title>
-   <circle cx='939.600' cy='339.960' r='6.000'/></g>
-  <g><title>n</title>
-   <circle style='fill: orange;' cx='939.600' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='939.600' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 839.640 414.960 Q 792.660 414.960 745.680 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle cx='839.640' cy='414.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 739.680 489.960 Q 692.700 489.960 645.720 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle cx='739.680' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: blue;' cx='739.680' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 639.720 564.960 Q 592.740 564.960 545.760 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='639.720' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='639.720' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 539.760 639.960 Q 492.780 639.960 445.800 639.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 539.760 489.960 Q 586.740 489.960 633.720 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='539.760' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='539.760' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 439.800 639.960 Q 392.220 675.660 344.639 711.359'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 536.760 227.460 933.600 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g><title>((nonce nonce) (pcr n) (aik aik-0))</title>
-   <text
-    x='939.600' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='489.780' y='39.960'
-   style='text-anchor: middle;'>envelope 87</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-  (deflistener (cat &quot;extend&quot; (enc n esk-1)))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr n) (aik aik-0))
-  (precedes ((1 2) (9 1)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)) ((9 2) (8 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) n (8 0) (enc n esk))
-  (label 87)
-  (parent 83)
-  (unrealized (9 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k88">Item <a href="#t59">88</a>, Parent: <a href="#k83">83</a>, Children: <a href="#k91">91</a> <a href="#k92">92</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='979.560pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 979.560 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='939.600' y1='114.960' x2='939.600' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='264.960' x2='839.640' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='339.960' x2='739.680' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='414.960' x2='639.720' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='339.960' x2='439.800' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 939.600 189.960 Q 892.020 225.660 844.439 261.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='939.600' cy='189.960' r='6.000'/></g>
-  <g><title>esk</title>
-   <circle style='fill: red;' cx='939.600' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 839.640 339.960 Q 792.660 339.960 745.680 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle cx='839.640' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 739.680 414.960 Q 692.700 414.960 645.720 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle cx='739.680' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: blue;' cx='739.680' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 639.720 489.960 Q 592.740 489.960 545.760 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='639.720' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='639.720' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 539.760 564.960 Q 492.780 564.960 445.800 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 539.760 414.960 Q 586.740 414.960 633.720 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 564.960 Q 391.484 637.464 343.167 709.967'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 486.780 227.460 833.640 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 536.760 77.460 933.600 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='489.780' y='39.960'
-   style='text-anchor: middle;'>envelope 88</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-  (deflistener (cat &quot;extend&quot; (enc n esk-1)))
-  (deflistener esk)
-  (precedes ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))
-    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-listener esk) n (8 0) (enc n esk))
-  (label 88)
-  (parent 83)
-  (unrealized (9 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k89">Item <a href="#t59">89</a>, Parent: <a href="#k86">86</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='979.560pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 979.560 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='939.600' y1='114.960' x2='939.600' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='264.960' x2='839.640' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='339.960' x2='739.680' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='414.960' x2='639.720' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='339.960' x2='439.800' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 939.600 264.960 Q 792.343 301.118 645.086 412.276'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc &quot;quote&quot; esk nonce aik-0)</title>
-   <circle cx='939.600' cy='264.960' r='6.000'/></g>
-  <g><title>esk</title>
-   <circle style='fill: orange;' cx='939.600' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='939.600' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 839.640 339.960 Q 792.660 339.960 745.680 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle cx='839.640' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle style='fill: blue;' cx='839.640' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 739.680 414.960 Q 692.700 414.960 645.720 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle cx='739.680' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle style='fill: blue;' cx='739.680' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 639.720 489.960 Q 592.740 489.960 545.760 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='639.720' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='639.720' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 539.760 564.960 Q 492.780 564.960 445.800 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno-1 &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 539.760 414.960 Q 586.740 414.960 633.720 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk tpmkey-1))</title>
-   <circle style='fill: red;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 564.960 Q 391.484 637.464 343.167 709.967'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 486.780 227.460 833.640 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 337.226 188.489 534.531 337.018'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 139.920 114.960 Q 536.773 114.680 933.626 189.400'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g><title>((nonce nonce) (pcr esk) (aik aik-0))</title>
-   <text
-    x='939.600' y='77.460' style='text-anchor: middle;'>tpm-quote</text>
-   </g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='489.780' y='39.960'
-   style='text-anchor: middle;'>envelope 89</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))))
-  (deflistener (cat &quot;extend&quot; (enc n esk)))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((1 0) (5 0)) ((1 0) (9 1)) ((1 2) (8 0)) ((1 4) (2 0))
-    ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2))
-    ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))
-    ((8 1) (7 0)) ((9 2) (6 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (6 0)
-    (enc esk tpmkey))
-  (label 89)
-  (parent 86)
-  (unrealized (5 0) (9 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k90">Item <a href="#t59">90</a>, Parent: <a href="#k86">86</a>, Child: <a href="#k93">93</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='979.560pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 979.560 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='939.600' y1='114.960' x2='939.600' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='264.960' x2='839.640' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='339.960' x2='739.680' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='414.960' x2='639.720' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='339.960' x2='439.800' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 939.600 339.960 Q 792.570 339.232 645.541 413.504'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='939.600' cy='339.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: gray;' cx='939.600' cy='264.960' r='6.000'/></g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: red;' cx='939.600' cy='189.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='939.600' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 839.640 339.960 Q 792.660 339.960 745.680 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle cx='839.640' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle style='fill: blue;' cx='839.640' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 739.680 414.960 Q 692.700 414.960 645.720 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle cx='739.680' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle style='fill: blue;' cx='739.680' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 639.720 489.960 Q 592.740 489.960 545.760 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='639.720' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='639.720' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 539.760 564.960 Q 492.780 564.960 445.800 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno-1 &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 539.760 414.960 Q 586.740 414.960 633.720 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk tpmkey-1))</title>
-   <circle style='fill: red;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 564.960 Q 391.484 637.464 343.167 709.967'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 486.780 227.460 833.640 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 337.226 188.489 534.531 337.018'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 139.920 114.960 Q 536.760 77.460 933.600 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g><title>((m esk) (pcr pcr) (k tpmkey) (aik aik-0))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='489.780' y='39.960'
-   style='text-anchor: middle;'>envelope 90</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))))
-  (deflistener (cat &quot;extend&quot; (enc n esk)))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((1 0) (5 0)) ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0))
-    ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2))
-    ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))
-    ((8 1) (7 0)) ((9 3) (6 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (6 0)
-    (enc esk tpmkey))
-  (label 90)
-  (parent 86)
-  (unrealized (5 0) (9 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k91">Item <a href="#t59">91</a>, Parent: <a href="#k88">88</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1079.520pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1079.520 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1039.560' y1='114.960' x2='1039.560' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='264.960' x2='939.600' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='339.960' x2='839.640' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='414.960' x2='739.680' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='489.960' x2='639.720' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='414.960' x2='539.760' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='414.960' x2='439.800' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1039.560 264.960 Q 992.580 264.960 945.600 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc &quot;quote&quot; esk nonce aik-0)</title>
-   <circle cx='1039.560' cy='264.960' r='6.000'/></g>
-  <g><title>esk</title>
-   <circle style='fill: orange;' cx='1039.560' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 339.960 Q 892.620 339.960 845.640 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='939.600' cy='339.960' r='6.000'/></g>
-  <g><title>esk</title>
-   <circle style='fill: blue;' cx='939.600' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 839.640 414.960 Q 792.660 414.960 745.680 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle cx='839.640' cy='414.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 739.680 489.960 Q 692.700 489.960 645.720 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle cx='739.680' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: blue;' cx='739.680' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 639.720 564.960 Q 592.740 564.960 545.760 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='639.720' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='639.720' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 539.760 639.960 Q 492.780 639.960 445.800 639.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 539.760 489.960 Q 586.740 489.960 633.720 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='539.760' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='539.760' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 439.800 639.960 Q 392.220 675.660 344.639 711.359'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 486.797 264.640 833.674 339.321'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 586.750 114.711 1033.581 189.462'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g><title>((nonce nonce) (pcr esk) (aik aik-0))</title>
-   <text
-    x='1039.560' y='77.460'
-    style='text-anchor: middle;'>tpm-quote</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='539.760' y='39.960'
-   style='text-anchor: middle;'>envelope 91</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-  (deflistener (cat &quot;extend&quot; (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((1 0) (10 1)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))
-    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 2) (9 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (9 0)
-    (enc esk tpmkey))
-  (label 91)
-  (parent 88)
-  (unrealized (10 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k92">Item <a href="#t59">92</a>, Parent: <a href="#k88">88</a>, Child: <a href="#k94">94</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1079.520pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1079.520 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1039.560' y1='114.960' x2='1039.560' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='339.960' x2='939.600' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='414.960' x2='839.640' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='489.960' x2='739.680' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='564.960' x2='639.720' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='489.960' x2='539.760' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='489.960' x2='439.800' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1039.560 339.960 Q 992.580 339.960 945.600 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='1039.560' cy='339.960' r='6.000'/>
-   </g>
-  <g><title>pcr</title>
-   <circle style='fill: gray;' cx='1039.560' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: red;' cx='1039.560' cy='189.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='1039.560' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 414.960 Q 892.620 414.960 845.640 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='939.600' cy='414.960' r='6.000'/></g>
-  <g><title>esk</title>
-   <circle style='fill: blue;' cx='939.600' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 839.640 489.960 Q 792.660 489.960 745.680 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle cx='839.640' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 739.680 564.960 Q 692.700 564.960 645.720 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle cx='739.680' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: blue;' cx='739.680' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 639.720 639.960 Q 592.740 639.960 545.760 639.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='639.720' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='639.720' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 539.760 714.960 Q 492.780 714.960 445.800 714.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='639.960' r='6.000'/></g>
-  <path
-   d='M 539.760 564.960 Q 586.740 564.960 633.720 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='539.760' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 439.800 714.960 Q 392.820 714.960 345.840 714.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 486.847 301.831 833.773 413.702'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 586.740 77.460 1033.560 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g><title>((m esk) (pcr pcr) (k tpmkey) (aik aik-0))</title>
-   <text
-    x='1039.560' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='539.760' y='39.960'
-   style='text-anchor: middle;'>envelope 92</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-  (deflistener (cat &quot;extend&quot; (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((1 0) (10 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))
-    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 3) (9 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (9 0)
-    (enc esk tpmkey))
-  (label 92)
-  (parent 88)
-  (unrealized (10 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k93">Item <a href="#t59">93</a>, Parent: <a href="#k90">90</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1079.520pt' height='904.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1079.520 904.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1039.560' y1='114.960' x2='1039.560' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='189.960' x2='939.600' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='264.960' x2='839.640' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='339.960' x2='739.680' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='414.960' x2='639.720' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='339.960' x2='439.800' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='564.960' x2='339.840' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='789.960' x2='39.960' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1039.560 264.960 Q 992.580 264.960 945.600 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (enc &quot;created&quot; tpmkey pcr aik-0) nonce aik-1)</title>
-   <circle cx='1039.560' cy='264.960' r='6.000'/></g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: orange;' cx='1039.560' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 414.960 Q 792.660 377.460 645.720 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='939.600' cy='414.960' r='6.000'/></g>
-  <g><title>pcr</title>
-   <circle style='fill: gray;' cx='939.600' cy='339.960' r='6.000'/></g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: blue;' cx='939.600' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='939.600' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 839.640 339.960 Q 792.660 339.960 745.680 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle cx='839.640' cy='339.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk))</title>
-   <circle style='fill: blue;' cx='839.640' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 739.680 414.960 Q 692.700 414.960 645.720 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle cx='739.680' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))</title>
-   <circle style='fill: blue;' cx='739.680' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 639.720 489.960 Q 592.740 489.960 545.760 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='639.720' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='639.720' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 539.760 564.960 Q 492.780 564.960 445.800 564.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno-1 &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 539.760 414.960 Q 586.740 414.960 633.720 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk tpmkey-1))</title>
-   <circle style='fill: red;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 564.960 Q 391.484 637.464 343.167 709.967'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='489.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 339.840 789.960 Q 192.900 752.460 45.960 789.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='789.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 236.880 527.460 333.840 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 486.780 227.460 833.640 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 337.226 188.489 534.531 337.018'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 139.920 114.960 Q 536.773 114.680 933.626 189.400'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='864.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (enc &quot;created&quot; tpmkey pcr aik-0)) (aik aik-1))</title>
-   <text
-    x='1039.560' y='77.460'
-    style='text-anchor: middle;'>tpm-quote</text></g>
-  <g><title>((m esk) (pcr pcr) (k tpmkey) (aik aik-0))</title>
-   <text
-    x='939.600' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='539.760' y='39.960'
-   style='text-anchor: middle;'>envelope 93</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state pcr nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 data) (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))))
-  (deflistener (cat &quot;extend&quot; (enc n esk)))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc &quot;created&quot; tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((1 0) (5 0)) ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0))
-    ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2))
-    ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))
-    ((8 1) (7 0)) ((9 3) (6 0)) ((10 2) (9 1)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc &quot;created&quot; tpmkey pcr aik-0) (9 1))
-  (label 93)
-  (parent 90)
-  (unrealized (5 0) (10 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k94">Item <a href="#t59">94</a>, Parent: <a href="#k92">92</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='1179.480pt' height='979.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 1179.480 979.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='1139.520' y1='114.960' x2='1139.520' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='1039.560' y1='189.960' x2='1039.560' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='939.600' y1='414.960' x2='939.600' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='839.640' y1='489.960' x2='839.640' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='739.680' y1='564.960' x2='739.680' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='639.960' x2='639.720' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='564.960' x2='539.760' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='564.960' x2='439.800' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='639.960' x2='339.840' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='414.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='864.960' x2='39.960' y2='939.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 1139.520 264.960 Q 1092.540 264.960 1045.560 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;quote&quot; (enc &quot;created&quot; tpmkey pcr aik-0) nonce aik-1)</title>
-   <circle cx='1139.520' cy='264.960' r='6.000'/></g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: orange;' cx='1139.520' cy='189.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;quote&quot; nonce)</title>
-   <circle style='fill: blue;' cx='1139.520' cy='114.960' r='6.000'/>
-   </g>
-  <path
-   d='M 1039.560 414.960 Q 992.580 414.960 945.600 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='1039.560' cy='414.960' r='6.000'/>
-   </g>
-  <g><title>pcr</title>
-   <circle style='fill: gray;' cx='1039.560' cy='339.960' r='6.000'/>
-   </g>
-  <g><title>(enc &quot;created&quot; tpmkey pcr aik-0)</title>
-   <circle style='fill: blue;' cx='1039.560' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>(cat &quot;decrypt&quot; (enc esk tpmkey))</title>
-   <circle style='fill: blue;' cx='1039.560' cy='189.960' r='6.000'/>
-   </g>
-  <path
-   d='M 939.600 489.960 Q 892.620 489.960 845.640 489.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>esk</title><circle cx='939.600' cy='489.960' r='6.000'/></g>
-  <g><title>esk</title>
-   <circle style='fill: blue;' cx='939.600' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 839.640 564.960 Q 792.660 564.960 745.680 564.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle cx='839.640' cy='564.960' r='6.000'/></g>
-  <g><title>(cat &quot;extend&quot; (enc n esk-1))</title>
-   <circle style='fill: blue;' cx='839.640' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 739.680 639.960 Q 692.700 639.960 645.720 639.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle cx='739.680' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))</title>
-   <circle style='fill: blue;' cx='739.680' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 639.720 714.960 Q 592.740 714.960 545.760 714.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle cx='639.720' cy='714.960' r='6.000'/></g>
-  <g>
-   <title>(cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;)</title>
-   <circle style='fill: blue;' cx='639.720' cy='639.960' r='6.000'/></g>
-  <path
-   d='M 539.760 789.960 Q 492.780 789.960 445.800 789.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(tran state (hash n state))</title>
-   <circle style='fill: gray;' cx='539.760' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk-1)) tno-1 &quot;false&quot; (hash esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))) tne-1 tno-1 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='539.760' cy='714.960' r='6.000'/></g>
-  <path
-   d='M 539.760 639.960 Q 586.740 639.960 633.720 639.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat &quot;establish transport&quot; tne-1)</title>
-   <circle cx='539.760' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-1 (enc esk-1 tpmkey-1))</title>
-   <circle style='fill: blue;' cx='539.760' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 439.800 789.960 Q 392.820 789.960 345.840 789.960'
-   style='stroke-width: 0.960; stroke: blue; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(tran (hash n state) (hash &quot;obtain&quot; (hash n state)))</title>
-   <circle style='fill: gray;' cx='439.800' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc &quot;obtain&quot; esk-0)) tno-0 &quot;false&quot; (hash esk-0 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc &quot;obtain&quot; esk-0))) tne-0 tno-0 &quot;false&quot;))</title>
-   <circle style='fill: blue;' cx='439.800' cy='714.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne-0)</title>
-   <circle cx='439.800' cy='639.960' r='6.000'/></g>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey-0 (enc esk-0 tpmkey-0))</title>
-   <circle style='fill: blue;' cx='439.800' cy='564.960' r='6.000'/></g>
-  <path
-   d='M 339.840 864.960 Q 192.900 827.460 45.960 864.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>v</title><circle cx='339.840' cy='864.960' r='6.000'/></g>
-  <g><title>(hash &quot;obtain&quot; (hash n state))</title>
-   <circle style='fill: gray;' cx='339.840' cy='789.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='339.840' cy='714.960' r='6.000'/></g>
-  <g><title>(cat &quot;decrypt&quot; (enc v k))</title>
-   <circle style='fill: blue;' cx='339.840' cy='639.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 192.900 489.960 145.920 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 139.920 564.960 Q 237.071 563.906 334.222 637.853'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc v k)</title>
-   <circle cx='139.920' cy='564.960' r='6.000'/></g>
-  <g>
-   <title>(enc &quot;created&quot; k (hash &quot;obtain&quot; (hash n state)) aik)</title>
-   <circle style='fill: blue;' cx='139.920' cy='489.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 186.900 414.960 233.880 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc &quot;create key&quot; (hash &quot;obtain&quot; (hash n state)) esk1)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>state</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 486.924 339.042 833.928 488.123'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;execute transport&quot; (cat &quot;extend&quot; (enc n esk)) tno &quot;false&quot; (hash esk (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk))) tne tno &quot;false&quot;))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat &quot;establish transport&quot; tne)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 586.750 114.711 1033.581 189.462'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat &quot;establish transport&quot; tpmkey (enc esk tpmkey))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>v</title><circle cx='39.960' cy='939.960' r='6.000'/></g>
-  <g><title>v</title>
-   <circle style='fill: blue;' cx='39.960' cy='864.960' r='6.000'/></g>
-  <g>
-   <title>((nonce nonce) (pcr (enc &quot;created&quot; tpmkey pcr aik-0)) (aik aik-1))</title>
-   <text
-    x='1139.520' y='77.460'
-    style='text-anchor: middle;'>tpm-quote</text></g>
-  <g><title>((m esk) (pcr pcr) (k tpmkey) (aik aik-0))</title>
-   <text
-    x='1039.560' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((value n) (state state) (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))</title>
-   <text
-    x='539.760' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((value &quot;obtain&quot;) (state (hash n state)) (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))</title>
-   <text
-    x='439.800' y='77.460'
-    style='text-anchor: middle;'>tpm-extend-enc</text></g>
-  <g>
-   <title>((m v) (pcr (hash &quot;obtain&quot; (hash n state))) (k k) (aik aik))</title>
-   <text
-    x='339.840' y='77.460'
-    style='text-anchor: middle;'>tpm-decrypt</text></g>
-  <g>
-   <title>((pcr (hash &quot;obtain&quot; (hash n state))) (esk esk1) (k k) (aik aik))</title>
-   <text
-    x='239.880' y='77.460'
-    style='text-anchor: middle;'>tpm-create-key</text></g>
-  <g>
-   <title>((pcr state) (v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>alice</text></g>
-  <text
-   x='589.740' y='39.960'
-   style='text-anchor: middle;'>envelope 94</text></svg></div>
-
-<pre>(defskeleton envelope
-  (vars (state pcr nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash &quot;obtain&quot; (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash &quot;obtain&quot; (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value &quot;obtain&quot;) (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1)))
-      tne-1 tno-1 &quot;false&quot;))
-  (deflistener (cat &quot;execute transport&quot; (hash &quot;extend&quot; (enc n esk-1))))
-  (deflistener (cat &quot;extend&quot; (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc &quot;created&quot; tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((1 0) (10 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))
-    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 3) (9 0)) ((11 2) (10 1)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc &quot;created&quot; tpmkey pcr aik-0) (10 1))
-  (label 94)
-  (parent 92)
-  (unrealized (11 1))
-  (comment &quot;empty cohort&quot;))</pre>
-
-</body>
-</html>
diff --git a/doc/examples/eq_test.scm b/doc/examples/eq_test.scm
deleted file mode 100644
--- a/doc/examples/eq_test.scm
+++ /dev/null
@@ -1,33 +0,0 @@
-(herald "Equality constraint test protocol"
-   (comment "First skeleton should have a shape,"
-            "second, and hird should be dead."))
-
-(defprotocol eqtest basic
-  (defrole init
-     (vars (n1 n2 text) (k skey))
-     (trace
-       (send (cat n1 (enc n1 n2 k)))
-       (recv n2))
-     (non-orig k)
-     (uniq-orig n1 n2)
-  )
-)
-
-;;; With no inequality declaration, a shape
-;;; should be found where n1 = n2.
-(defskeleton eqtest
-   (vars (n1 n2 text) (k skey))
-   (defstrand init 2 (n1 n1) (n2 n2) (k k)))
-
-;;; With the equality declaration, n1 = n2 should
-;;; be found by skeletonizing.
-(defskeleton eqtest
-   (vars (n1 n2 text))
-   (defstrand init 2 (n1 n1) (n2 n2))
-   (eq (n1 n2)))
-
-;;; An fn-of declaration should produce a similar result.
-(defskeleton eqtest
-  (vars (n1 n2 text))
-  (defstrand init 2 (n1 n1) (n2 n2))
-  (fn-of ("foo" (n1 "bar") (n2 "bar"))))
diff --git a/doc/examples/eq_test.xhtml b/doc/examples/eq_test.xhtml
deleted file mode 100644
--- a/doc/examples/eq_test.xhtml
+++ /dev/null
@@ -1,345 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Equality constraint test protocol</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(herald &quot;Equality constraint test protocol&quot;
-  (comment &quot;First skeleton should have a shape,&quot;
-    &quot;second, and hird should be dead.&quot;))
-(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from eq_test.scm&quot;)</pre>
-
-<p id="top">Trees: <a href="#t0">0</a> <a href="#t2">2</a> <a href="#t4">4</a>.</p>
-
-<p id="t0">Tree <a href="#top">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k1&quot;, &quot;_self&quot;)'>1</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol eqtest basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n2 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>eqtest 0</text>
-  </svg></div>
-
-<pre>(defskeleton eqtest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (label 0)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n1</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n1 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n1) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>eqtest 1 (realized)</text></svg></div>
-
-<pre>(defskeleton eqtest
-  (vars (n1 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n1) (k k))
-  (non-orig k)
-  (uniq-orig n1)
-  (operation nonce-test (displaced 1 0 init 1) n2 (0 1) (enc n1 n2 k))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n1 n1) (n2 n1) (k k))))
-  (origs (n1 (0 0))))</pre>
-
-<p id="t2">Tree <a href="#top">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k3&quot;, &quot;_self&quot;)'>3</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k2&quot;, &quot;_self&quot;)'>2</text>
-  </svg></div>
-
-<pre>(defprotocol eqtest basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))</pre>
-
-<p id="k2">Item <a href="#t2">2</a>, Child: <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n2 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>eqtest 2</text>
-  </svg></div>
-
-<pre>(defskeleton eqtest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (label 2)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k3">Item <a href="#t2">3</a>, Parent: <a href="#k2">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n1</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n1 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n1) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>eqtest 3 (realized)</text></svg></div>
-
-<pre>(defskeleton eqtest
-  (vars (n1 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n1) (k k))
-  (non-orig k)
-  (uniq-orig n1)
-  (operation nonce-test (displaced 1 0 init 1) n2 (0 1) (enc n1 n2 k))
-  (label 3)
-  (parent 2)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n1 n1) (n2 n1) (k k))))
-  (origs (n1 (0 0))))</pre>
-
-<p id="t4">Tree <a href="#top">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k5&quot;, &quot;_self&quot;)'>5</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k4&quot;, &quot;_self&quot;)'>4</text>
-  </svg></div>
-
-<pre>(defprotocol eqtest basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))</pre>
-
-<p id="k4">Item <a href="#t4">4</a>, Child: <a href="#k5">5</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n2 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>eqtest 4</text>
-  </svg></div>
-
-<pre>(defskeleton eqtest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (fn-of (&quot;foo&quot; (n1 &quot;bar&quot;) (n2 &quot;bar&quot;)))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (label 4)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (preskeleton)
-  (comment &quot;Not a skeleton&quot;))</pre>
-
-<p id="k5">Item <a href="#t4">5</a>, Parent: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n2</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n2 (enc n2 n2 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n2) (n2 n2) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>eqtest 5 (realized)</text></svg></div>
-
-<pre>(defskeleton eqtest
-  (vars (n2 text) (k skey))
-  (defstrand init 2 (n1 n2) (n2 n2) (k k))
-  (fn-of (&quot;foo&quot; (n2 &quot;bar&quot;)))
-  (non-orig k)
-  (uniq-orig n2)
-  (label 5)
-  (parent 4)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n2 n2) (k k))))
-  (origs (n2 (0 0))))</pre>
-
-</body>
-</html>
diff --git a/doc/examples/ffgg.scm b/doc/examples/ffgg.scm
deleted file mode 100644
--- a/doc/examples/ffgg.scm
+++ /dev/null
@@ -1,24 +0,0 @@
-(herald "The ffgg Protocol"
-	(comment "From A Necessarily Parallel Attack by Jon K. Millen"))
-
-(defprotocol ffgg basic
-  (defrole init (vars (a b name) (n1 n2 m x y text))
-    (trace
-     (send a)
-     (recv (cat b n1 n2))
-     (send (cat a (enc n1 n2 m (pubk b))))
-     (recv (cat n1 x (enc x y n1 (pubk b))))))
-  (defrole resp (vars (b a name) (n1 n2 x y text))
-    (trace
-     (recv a)
-     (send (cat b n1 n2))
-     (recv (cat a (enc n1 x y (pubk b))))
-     (send (cat n1 x (enc x y n1 (pubk b)))))
-    (uniq-orig n1 n2)))
-
-(defskeleton ffgg
-  (vars (b name) (n1 n2 m text))
-  (defstrand init 4 (b b) (m m))
-  (deflistener m)
-  (uniq-orig m)
-  (non-orig (privk b)))
diff --git a/doc/examples/ffgg.xhtml b/doc/examples/ffgg.xhtml
deleted file mode 100644
--- a/doc/examples/ffgg.xhtml
+++ /dev/null
@@ -1,448 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>The ffgg Protocol</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(herald &quot;The ffgg Protocol&quot;
-  (comment &quot;From A Necessarily Parallel Attack by Jon K. Millen&quot;))
-(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from ffgg.scm&quot;)</pre>
-
-<p id="t0">Tree 0.</p>
-
-<div>
- <svg
-  class='diagram' width='279.600pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.600 79.920' font-size='12.000'>
-  <text
-   x='239.640' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k4&quot;, &quot;_self&quot;)'>4</text>
-  <line
-   x1='189.720' y1='39.960' x2='239.640' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k3&quot;, &quot;_self&quot;)'>3</text>
-  <line
-   x1='139.800' y1='39.960' x2='189.720' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k2&quot;, &quot;_self&quot;)'>2</text>
-  <line
-   x1='89.880' y1='39.960' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k1&quot;, &quot;_self&quot;)'>1</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol ffgg basic
-  (defrole init
-    (vars (a b name) (n1 n2 m x y text))
-    (trace (send a) (recv (cat b n1 n2))
-      (send (cat a (enc n1 n2 m (pubk b))))
-      (recv (cat n1 x (enc x y n1 (pubk b))))))
-  (defrole resp
-    (vars (b a name) (n1 n2 x y text))
-    (trace (recv a) (send (cat b n1 n2))
-      (recv (cat a (enc n1 x y (pubk b))))
-      (send (cat n1 x (enc x y n1 (pubk b)))))
-    (uniq-orig n1 n2)))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>m</title><circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>m</title>
-   <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(cat n1 x (enc x y n1 (pubk b)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a (enc n1 n2 m (pubk b)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b n1 n2)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>a</title><circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (m m) (x x) (y y) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>ffgg 0</text>
-  </svg></div>
-
-<pre>(defskeleton ffgg
-  (vars (m n1 n2 x y text) (b a name))
-  (defstrand init 4 (n1 n1) (n2 n2) (m m) (x x) (y y) (a a) (b b))
-  (deflistener m)
-  (non-orig (privk b))
-  (uniq-orig m)
-  (label 0)
-  (unrealized (1 0))
-  (origs (m (0 2)))
-  (preskeleton)
-  (comment &quot;Not a skeleton&quot;))</pre>
-
-<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k2">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='264.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>m</title><circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>m</title>
-   <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat n1 x (enc x y n1 (pubk b)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat a (enc n1 n2 m (pubk b)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b n1 n2)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>a</title><circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (m m) (x x) (y y) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>ffgg 1</text>
-  </svg></div>
-
-<pre>(defskeleton ffgg
-  (vars (m n1 n2 x y text) (b a name))
-  (defstrand init 4 (n1 n1) (n2 n2) (m m) (x x) (y y) (a a) (b b))
-  (deflistener m)
-  (precedes ((0 2) (1 0)))
-  (non-orig (privk b))
-  (uniq-orig m)
-  (label 1)
-  (parent 0)
-  (unrealized (1 0))
-  (origs (m (0 2)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k1">1</a>, Child: <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='339.960' x2='139.920' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat n1 n2 (enc n2 m n1 (pubk b)))</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 (enc n1 n2 m (pubk b)))</title>
-   <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b n1 n2-0)</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>a-0</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>m</title><circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>m</title>
-   <circle style='fill: red;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>(cat n1 x (enc x y n1 (pubk b)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 264.960 Q 136.920 227.460 233.880 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat a (enc n1 n2 m (pubk b)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b n1 n2)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>a</title><circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2-0) (x n2) (y m) (b b) (a a-0))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (m m) (x x) (y y) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='139.920' y='39.960' style='text-anchor: middle;'>ffgg 2</text>
-  </svg></div>
-
-<pre>(defskeleton ffgg
-  (vars (m n1 n2 x y n2-0 text) (b a a-0 name))
-  (defstrand init 4 (n1 n1) (n2 n2) (m m) (x x) (y y) (a a) (b b))
-  (deflistener m)
-  (defstrand resp 4 (n1 n1) (n2 n2-0) (x n2) (y m) (b b) (a a-0))
-  (precedes ((0 2) (2 2)) ((2 1) (0 1)) ((2 3) (1 0)))
-  (non-orig (privk b))
-  (uniq-orig m n1 n2-0)
-  (operation nonce-test (added-strand resp 4) m (1 0)
-    (enc n1 n2 m (pubk b)))
-  (label 2)
-  (parent 1)
-  (unrealized (1 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k2">2</a>, Child: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='339.960' x2='139.920' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 339.960 Q 242.880 302.460 145.920 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat n2 m (enc m n1 n2 (pubk b)))</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-1 (enc n2 m n1 (pubk b)))</title>
-   <circle style='fill: red;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b n2 n2-1)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>a-1</title>
-   <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat n1 n2 (enc n2 m n1 (pubk b)))</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 (enc n1 n2 m (pubk b)))</title>
-   <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b n1 n2-0)</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>a-0</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>m</title><circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>m</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>(cat n1 x (enc x y n1 (pubk b)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 264.960 Q 136.920 227.460 233.880 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 264.960 Q 186.900 227.460 333.840 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat a (enc n1 n2 m (pubk b)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b n1 n2)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>a</title><circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n2) (n2 n2-1) (x m) (y n1) (b b) (a a-1))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2-0) (x n2) (y m) (b b) (a a-0))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (m m) (x x) (y y) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='189.900' y='39.960' style='text-anchor: middle;'>ffgg 3</text>
-  </svg></div>
-
-<pre>(defskeleton ffgg
-  (vars (m n1 n2 x y n2-0 n2-1 text) (b a a-0 a-1 name))
-  (defstrand init 4 (n1 n1) (n2 n2) (m m) (x x) (y y) (a a) (b b))
-  (deflistener m)
-  (defstrand resp 4 (n1 n1) (n2 n2-0) (x n2) (y m) (b b) (a a-0))
-  (defstrand resp 4 (n1 n2) (n2 n2-1) (x m) (y n1) (b b) (a a-1))
-  (precedes ((0 2) (2 2)) ((0 2) (3 2)) ((2 1) (0 1)) ((2 3) (1 0))
-    ((3 1) (0 1)) ((3 3) (1 0)))
-  (non-orig (privk b))
-  (uniq-orig m n1 n2 n2-0 n2-1)
-  (operation nonce-test (added-strand resp 4) m (1 0)
-    (enc n1 n2 m (pubk b)) (enc n2 m n1 (pubk b)))
-  (label 3)
-  (parent 2)
-  (unrealized (3 2))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k4">Item <a href="#t0">4</a>, Parent: <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='529.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 529.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='414.960' x2='139.920' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 414.960 Q 242.880 377.460 145.920 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat n2 m (enc m n1 n2 (pubk b)))</title>
-   <circle cx='339.840' cy='414.960' r='6.000'/></g>
-  <g><title>(cat a-1 (enc n2 m n1 (pubk b)))</title>
-   <circle style='fill: blue;' cx='339.840' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b n2 n2-1)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>a-1</title>
-   <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 286.860 339.960 333.840 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat n1 n2 (enc n2 m n1 (pubk b)))</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 (enc n1 n2 m (pubk b)))</title>
-   <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b n1 n2-0)</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>a-0</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>m</title><circle cx='139.920' cy='489.960' r='6.000'/></g>
-  <g><title>m</title>
-   <circle style='fill: blue;' cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>(cat n1 x (enc x y n1 (pubk b)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 264.960 Q 136.920 227.460 233.880 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat a (enc n1 n2 m (pubk b)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b n1 n2)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>a</title><circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n2) (n2 n2-1) (x m) (y n1) (b b) (a a-1))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2-0) (x n2) (y m) (b b) (a a-0))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (m m) (x x) (y y) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>ffgg 4 (realized)</text></svg></div>
-
-<pre>(defskeleton ffgg
-  (vars (m n1 n2 x y n2-0 n2-1 text) (b a a-0 a-1 name))
-  (defstrand init 4 (n1 n1) (n2 n2) (m m) (x x) (y y) (a a) (b b))
-  (deflistener m)
-  (defstrand resp 4 (n1 n1) (n2 n2-0) (x n2) (y m) (b b) (a a-0))
-  (defstrand resp 4 (n1 n2) (n2 n2-1) (x m) (y n1) (b b) (a a-1))
-  (precedes ((0 2) (2 2)) ((2 1) (0 1)) ((2 3) (3 2)) ((3 1) (0 1))
-    ((3 3) (1 0)))
-  (non-orig (privk b))
-  (uniq-orig m n1 n2 n2-0 n2-1)
-  (operation nonce-test (displaced 4 2 resp 4) m (3 2)
-    (enc n1 n2 m (pubk b)))
-  (label 4)
-  (parent 3)
-  (unrealized)
-  (shape)
-  (maps ((0 1) ((b b) (m m) (a a) (n1 n1) (n2 n2) (x x) (y y))))
-  (origs (n1 (2 1)) (n2-0 (2 1)) (n2 (3 1)) (n2-1 (3 1)) (m (0 2))))</pre>
-
-</body>
-</html>
diff --git a/doc/examples/fluffy_draft03_fixing_gske.scm b/doc/examples/fluffy_draft03_fixing_gske.scm
deleted file mode 100644
--- a/doc/examples/fluffy_draft03_fixing_gske.scm
+++ /dev/null
@@ -1,51 +0,0 @@
-(herald "GSKE, part of Fluffy: Simplified Key Exchange for Constrained Environments draft-hardjono-ace-fluffy-03"
- (comment "Proposed fixes to the Internet-Draft: https://www.ietf.org/archive/id/draft-hardjono-ace-fluffy-03.txt"))
-
-;; This model does not include timestamps or optional fields.
-(defprotocol fluffy basic
- (defrole sp 
-  (vars (b s name) (nb g text) (gk skey))
-  (trace 
-   (send (cat "req" s g (enc (hash (cat "req" s g)) b nb (ltk s b))))
-   (recv (cat "resp" b (enc s g nb gk (ltk s b))))))
- (defrole keyserv
-  (vars (a b s name) (nb na g text) (gk skey))
-  (trace
-   (recv (cat "req" s g (enc (hash (cat "req" s g)) b nb (ltk s b))))
-   (send (cat "resp" b (enc s g nb gk (ltk s b))))
-   (recv (cat "fetch" s g (enc (hash (cat "fetch" s g)) a na (ltk s a))))
-   (send (cat "deliver" a (enc s g na gk (ltk s a)))))
-  (uniq-gen gk))
- (defrole client
-  (vars (a b s name) (na g text) (gk skey))
-  (trace
-   (send (cat "fetch" s g 
-   (enc (hash (cat "fetch" s g))  a na (ltk s a))))
-   (recv (cat "deliver" a (enc s g na gk (ltk s a)))))))
-
-;; Service principal's (sp) point-of-view
-(defskeleton fluffy
- (vars (b s name) (nb text) (gk skey))
- (defstrand sp 2 (b b) (s s) (nb nb) (gk gk))
- (non-orig (ltk s b))
- (uniq-orig nb)
- (comment "Service Principal's point-of-view"))
-
-;; Simple key distribution center's (skdc) point-of-view
-(defskeleton fluffy
- (vars (a b s name) (nb na text) (gk skey))
- (defstrand keyserv 4 (a a) (b b) (s s) (nb nb) (na na) (gk gk))
- (non-orig (ltk s b) (ltk s a))
- (uniq-gen gk)
- (comment "SKDC's point-of-view"))
-
-;; Client's point-of-view
-(defskeleton fluffy
- (vars (a s name) (na text) (gk skey))
- (defstrand client 2 (a a) (s s) (na na) (gk gk))
- (non-orig (ltk s a))
- (uniq-orig na)
- (comment "Clients's point-of-view"))
-
-
-
diff --git a/doc/examples/fluffy_draft03_gske.scm b/doc/examples/fluffy_draft03_gske.scm
deleted file mode 100644
--- a/doc/examples/fluffy_draft03_gske.scm
+++ /dev/null
@@ -1,50 +0,0 @@
-(herald "GSKE, part of Fluffy: Simplified Key Exchange for Constrained Environments draft-hardjono-ace-fluffy-03"
- (comment "Based on the Internet-Draft: https://www.ietf.org/archive/id/draft-hardjono-ace-fluffy-03.txt"))
-
-;; This model does not include timestamps or optional fields.
-(defprotocol fluffy basic
- (defrole sp 
-  (vars (b s name) (nb g text) (gk skey))
-  (trace 
-   (send (cat "req" s g (enc b nb (ltk s b))))
-   (recv (cat "resp" b (enc s g nb gk (ltk s b))))))
- (defrole keyserv
-  (vars (a b s name) (nb na g text) (gk skey))
-  (trace
-   (recv (cat "req" s g (enc b nb (ltk s b))))
-   (send (cat "resp" b (enc s g nb gk (ltk s b))))
-   (recv (cat "fetch" s g (enc a na (ltk s a))))
-   (send (cat "deliver" a (enc s g na gk (ltk s a)))))
-  (uniq-gen gk))
- (defrole client
-  (vars (a b s name) (na g text) (gk skey))
-  (trace
-   (send (cat "fetch" s g (enc a na (ltk s a))))
-   (recv (cat "deliver" a (enc s g na gk (ltk s a)))))))
-
-;; Service principal's (sp) point-of-view
-(defskeleton fluffy
- (vars (b s name) (nb text) (gk skey))
- (defstrand sp 2 (b b) (s s) (nb nb) (gk gk))
- (non-orig (ltk s b))
- (uniq-orig nb)
- (comment "Service Principal's point-of-view"))
-
-;; Simple key distribution center's (skdc) point-of-view
-(defskeleton fluffy
- (vars (a b s name) (nb na text) (gk skey))
- (defstrand keyserv 4 (a a) (b b) (s s) (nb nb) (na na) (gk gk))
- (non-orig (ltk s b) (ltk s a))
- (uniq-gen gk)
- (comment "SKDC's point-of-view"))
-
-;; Client's point-of-view
-(defskeleton fluffy
- (vars (a s name) (na text) (gk skey))
- (defstrand client 2 (a a) (s s) (na na) (gk gk))
- (non-orig (ltk s a))
- (uniq-orig na)
- (comment "Clients's point-of-view"))
-
-
-
diff --git a/doc/examples/fluffy_draft03_improving_pske.scm b/doc/examples/fluffy_draft03_improving_pske.scm
deleted file mode 100644
--- a/doc/examples/fluffy_draft03_improving_pske.scm
+++ /dev/null
@@ -1,47 +0,0 @@
-(herald "Fluffy: Simplified Key Exchange for Constrained Environments draft-hardjono-ace-fluffy-03"
- (comment "This version does not include timestamps or optional fields"))
-
-;; The protocol aims to provide mutual authentication in addition to key establishment.
-;; This model does not include timestamps or optional fields.
-(defprotocol fluffy basic
- (defrole client 
-  (vars (a b s name) (n1 n2 text) (k skey) (m mesg))
-  (trace 
-   (send (cat "req" a s b (enc (hash (cat "req" a s b)) a n1 (ltk s a))))
-   (recv (cat "resp" a s b m (enc s b n1 k (ltk s a))))
-   (send (cat "est" a s b m (enc (hash (cat "est" a s b m)) a n2 k)))
-   (recv (enc "ack" a b n2 k))))
- (defrole skdc
-  (vars (a b s name) (n1 text) (k skey))
-  (trace
-   (recv (cat "req" a s b (enc (hash (cat "req" a s b)) a n1 (ltk s a))))
-   (send (cat "resp" a s b (enc a k (ltk s b)) (enc s b n1 k (ltk s a)))))
-  (uniq-gen k))
- (defrole sp
-  (vars (a b s name) (n2 text) (k skey))
-  (trace
-   (recv (cat "est" a s b (enc a k (ltk s b)) (enc (hash (cat "est" a s b (enc a k (ltk s b)))) a n2 k)))
-   (send (enc "ack" a b n2 k)))))
-
-;; Client's point-of-view
-(defskeleton fluffy
- (vars (a b s name) (n1 n2 text) (k skey) (m mesg))
- (defstrand client 4 (a a) (b b) (s s) (n1 n1) (n2 n2) (k k) (m m))
- (non-orig (ltk s b) (ltk s a))
- (uniq-orig n1 n2)
- (comment "Client's point-of-view"))
-
-;; Simple key distribution center principal's (SKDC) point-of-view
-(defskeleton fluffy
- (vars (a b s name) (n1 text) (k skey))
- (defstrand skdc 2 (a a) (b b) (s s) (n1 n1) (k k))
- (non-orig (ltk s b) (ltk s a))
- (comment "Simple Key Distribution Center's point-of-view"))
-
-;; Service principal or SP's point-of-view
-(defskeleton fluffy
- (vars (a b s name) (n2 text) (k skey))
- (defstrand sp 2 (a a) (b b) (s s) (n2 n2) (k k))
- (non-orig (ltk s b) (ltk s a))
- (comment "Service Principal's point-of-view"))
-
diff --git a/doc/examples/fluffy_draft03_pske.scm b/doc/examples/fluffy_draft03_pske.scm
deleted file mode 100644
--- a/doc/examples/fluffy_draft03_pske.scm
+++ /dev/null
@@ -1,47 +0,0 @@
-(herald "PSKE, part of Fluffy: Simplified Key Exchange for Constrained Environments draft-hardjono-ace-fluffy-03"
- (comment "Based on the Internet-Draft: https://www.ietf.org/archive/id/draft-hardjono-ace-fluffy-03.txt"))
-
-;; The protocol aims to provide mutual authentication in addition to key establishment.
-;; This model does not include timestamps or optional fields.
-(defprotocol fluffy basic
- (defrole client 
-  (vars (a b s name) (n1 n2 text) (k skey) (m mesg))
-  (trace 
-   (send (cat "req" a s b (enc a n1 (ltk s a))))
-   (recv (cat "resp" a s b m (enc s b n1 k (ltk s a))))
-   (send (cat "est" a s b m (enc a n2 k)))
-   (recv (enc "ack" a b n2 k))))
- (defrole skdc
-  (vars (a b s name) (n1 text) (k skey))
-  (trace
-   (recv (cat "req" a s b (enc a n1 (ltk s a))))
-   (send (cat "resp" a s b (enc a k (ltk s b)) (enc s b n1 k (ltk s a)))))
-  (uniq-gen k))
- (defrole sp
-  (vars (a b s name) (n2 text) (k skey))
-  (trace
-   (recv (cat "est" a s b (enc a k (ltk s b)) (enc a n2 k)))
-   (send (enc "ack" a b n2 k)))))
-
-;; Client's point-of-view
-(defskeleton fluffy
- (vars (a b s name) (n1 n2 text) (k skey) (m mesg))
- (defstrand client 4 (a a) (b b) (s s) (n1 n1) (n2 n2) (k k) (m m))
- (non-orig (ltk s b) (ltk s a))
- (uniq-orig n1 n2)
- (comment "Client's point-of-view"))
-
-;; Simple key distribution center principal's (skdc) point-of-view
-(defskeleton fluffy
- (vars (a b s name) (n1 text) (k skey))
- (defstrand skdc 2 (a a) (b b) (s s) (n1 n1) (k k))
- (non-orig (ltk s b) (ltk s a))
- (comment "Simple Key Distribution Center's point-of-view"))
-
-;; Service principal's (sp) point-of-view
-(defskeleton fluffy
- (vars (a b s name) (n2 text) (k skey))
- (defstrand sp 2 (a a) (b b) (s s) (n2 n2) (k k))
- (non-orig (ltk s b) (ltk s a))
- (comment "Service Principal's point-of-view"))
-
diff --git a/doc/examples/fnof_test.scm b/doc/examples/fnof_test.scm
deleted file mode 100644
--- a/doc/examples/fnof_test.scm
+++ /dev/null
@@ -1,86 +0,0 @@
-(herald "Function constraint test protocol"
-   (comment "Skeletons 2, 4, and 7 should have no shapes."))
-
-(defprotocol fnoftest basic
-  (defrole init
-     (vars (an0 an1 n0 n1 text) (k skey))
-     (trace
-       (send (cat n0 (enc an0 an1 n0 n1 k)))
-       (recv n1))
-     (non-orig k)
-     (uniq-orig n0 n1)
-  )
-)
-
-;;; In this skeleton, after n0 and n1 are unified, an0 and an1 will
-;;; remain distinct.
-(defskeleton fnoftest
-   (vars (an0 an1 n0 n1 text) (k skey))
-   (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n1) (k k))
-)
-
-;;; This skeleton will be dead.  The fn-of declaration forces an0 =
-;;; an1 which violates the neq declaration.
-(defskeleton fnoftest
-   (vars (an0 an1 n0 n1 text) (k skey))
-   (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n1) (k k))
-   (neq (an0 an1))
-   (fn-of (a (an0 n0) (an1 n1)))
-)
-
-;;; Tests whether rectification will happen properly on initial load,
-;;; since n1 and n0 are already unified.
-(defskeleton fnoftest
-   (vars (an0 an1 n1 text) (k skey))
-   (defstrand init 2 (an0 an0) (an1 an1) (n0 n1) (n1 n1) (k k))
-   (fn-of (a (an0 n1) (an1 n1)))
-)
-
-;;; Tests whether rectification will happen properly on initial load
-;;; when it leads to an impossibility.
-(defskeleton fnoftest
-   (vars (an0 an1 n1 text) (k skey))
-   (defstrand init 2 (an0 an0) (an1 an1) (n0 n1) (n1 n1) (k k))
-   (fn-of (a (an0 n1) (an1 n1)))
-   (neq (an0 an1))
-)
-
-(defprotocol fnoftest2 basic
-  (defrole init
-     (vars (bn0 bn1 name) (an0 an1 n0 n1 text) (k skey))
-     (trace
-       (send (cat n0 (enc bn0 bn1 an0 an1 n0 n1 k)))
-       (recv n1))
-     (non-orig k)
-     (uniq-orig n0 n1)
-     (fn-of (a (an0 n0) (an1 n1)))
-     (fn-of (b ((pubk bn0) an0)))
-  )
-)
-
-;;; This skeleton should be fine, but bn0 = bn1.  Tests cascading
-;;; requirements, as the bn0 = bn1 requirement only arises after an0 =
-;;; an1 happens.
-(defskeleton fnoftest2
-   (vars (bn0 bn1 name) (an0 an1 n0 n1 text) (k skey))
-   (defstrand init 2 (bn0 bn0) (bn1 bn1) (an0 an0) (an1 an1) (n0 n0) (n1 n1) (k k))
-   (fn-of (b ((pubk bn1) an1)))
-)
-
-;;; Here, bn0 and bn1 are not unified because they are the result of
-;;; different functions, even once the inputs are unified.
-(defskeleton fnoftest2
-   (vars (bn0 bn1 name) (an0 an1 n0 n1 text) (k skey))
-   (defstrand init 2 (bn0 bn0) (bn1 bn1) (an0 an0) (an1 an1) (n0 n0) (n1 n1) (k k))
-   (fn-of (c ((pubk bn1) an1)))
-   (decl foo ((n0 n1) (0 1)) ((k k k n0) (0 0) (0 0) (0 1)))
-)
-
-;;; This should be dead due to a cascade, because pubk bn0 cannot be
-;;; unified with privk bn0.
-(defskeleton fnoftest2
-   (vars (bn0 bn1 name) (an0 an1 n0 n1 text) (k skey))
-   (defstrand init 2 (bn0 bn0) (bn1 bn1) (an0 an0) (an1 an1) (n0 n0) (n1 n1) (k k))
-   (fn-of (b ((privk bn0) an1)))
-   (decl foo ((n0 n1) (0 1)) ((k k k n0) (0 0) (0 0) (0 1)))
-)
diff --git a/doc/examples/fnof_test.xhtml b/doc/examples/fnof_test.xhtml
deleted file mode 100644
--- a/doc/examples/fnof_test.xhtml
+++ /dev/null
@@ -1,660 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Function constraint test protocol</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(herald &quot;Function constraint test protocol&quot;
-  (comment &quot;Skeletons 2, 4, and 7 should have no shapes.&quot;))
-(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from fnof_test.scm&quot;)</pre>
-
-<p id="top">Trees: <a href="#t0">0</a> <a href="#t2">2</a> <a href="#t3">3</a> <a href="#t5">5</a> <a href="#t6">6</a> <a href="#t8">8</a> <a href="#t10">10</a>.</p>
-
-<p id="t0">Tree <a href="#top">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k1&quot;, &quot;_self&quot;)'>1</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol fnoftest basic
-  (defrole init
-    (vars (an0 an1 n0 n1 text) (k skey))
-    (trace (send (cat n0 (enc an0 an1 n0 n1 k))) (recv n1))
-    (non-orig k)
-    (uniq-orig n0 n1)))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n1</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n0 (enc an0 an1 n0 n1 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((an0 an0) (an1 an1) (n0 n0) (n1 n1) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>fnoftest 0</text>
-  </svg></div>
-
-<pre>(defskeleton fnoftest
-  (vars (an0 an1 n0 n1 text) (k skey))
-  (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n1) (k k))
-  (non-orig k)
-  (uniq-orig n0 n1)
-  (label 0)
-  (unrealized (0 1))
-  (origs (n0 (0 0)) (n1 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n0</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n0 (enc an0 an1 n0 n0 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((an0 an0) (an1 an1) (n0 n0) (n1 n0) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>fnoftest 1 (realized)</text></svg></div>
-
-<pre>(defskeleton fnoftest
-  (vars (an0 an1 n0 text) (k skey))
-  (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n0) (k k))
-  (non-orig k)
-  (uniq-orig n0)
-  (operation nonce-test (displaced 1 0 init 1) n1 (0 1)
-    (enc an0 an1 n0 n1 k))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((an0 an0) (an1 an1) (n0 n0) (n1 n0) (k k))))
-  (origs (n0 (0 0))))</pre>
-
-<p id="t2">Tree <a href="#top">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 79.920' font-size='12.000'>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k2&quot;, &quot;_self&quot;)'>2</text>
-  </svg></div>
-
-<pre>(defprotocol fnoftest basic
-  (defrole init
-    (vars (an0 an1 n0 n1 text) (k skey))
-    (trace (send (cat n0 (enc an0 an1 n0 n1 k))) (recv n1))
-    (non-orig k)
-    (uniq-orig n0 n1)))</pre>
-
-<p id="k2">Item <a href="#t2">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n1</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n0 (enc an0 an1 n0 n1 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((an0 an0) (an1 an1) (n0 n0) (n1 n1) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>fnoftest 2</text>
-  </svg></div>
-
-<pre>(defskeleton fnoftest
-  (vars (an0 an1 n0 n1 text) (k skey))
-  (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n1) (k k))
-  (fn-of (a (an0 n0) (an1 n1)))
-  (neq (an0 an1))
-  (non-orig k)
-  (uniq-orig n0 n1)
-  (label 2)
-  (unrealized (0 1))
-  (origs (n0 (0 0)) (n1 (0 0)))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="t3">Tree <a href="#top">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k4&quot;, &quot;_self&quot;)'>4</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k3&quot;, &quot;_self&quot;)'>3</text>
-  </svg></div>
-
-<pre>(defprotocol fnoftest basic
-  (defrole init
-    (vars (an0 an1 n0 n1 text) (k skey))
-    (trace (send (cat n0 (enc an0 an1 n0 n1 k))) (recv n1))
-    (non-orig k)
-    (uniq-orig n0 n1)))</pre>
-
-<p id="k3">Item <a href="#t3">3</a>, Child: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n1</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc an0 an1 n1 n1 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((an0 an0) (an1 an1) (n0 n1) (n1 n1) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>fnoftest 3 (realized)</text></svg></div>
-
-<pre>(defskeleton fnoftest
-  (vars (an0 an1 n1 text) (k skey))
-  (defstrand init 2 (an0 an0) (an1 an1) (n0 n1) (n1 n1) (k k))
-  (fn-of (a (an0 n1) (an1 n1)))
-  (non-orig k)
-  (uniq-orig n1)
-  (label 3)
-  (unrealized)
-  (origs (n1 (0 0)))
-  (preskeleton)
-  (comment &quot;Not a skeleton&quot;))</pre>
-
-<p id="k4">Item <a href="#t3">4</a>, Parent: <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n1</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc an1 an1 n1 n1 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((an0 an1) (an1 an1) (n0 n1) (n1 n1) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>fnoftest 4 (realized)</text></svg></div>
-
-<pre>(defskeleton fnoftest
-  (vars (an1 n1 text) (k skey))
-  (defstrand init 2 (an0 an1) (an1 an1) (n0 n1) (n1 n1) (k k))
-  (fn-of (a (an1 n1)))
-  (non-orig k)
-  (uniq-orig n1)
-  (label 4)
-  (parent 3)
-  (unrealized)
-  (shape)
-  (maps ((0) ((an1 an1) (n1 n1) (k k))))
-  (origs (n1 (0 0))))</pre>
-
-<p id="t5">Tree <a href="#top">5</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 79.920' font-size='12.000'>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k5&quot;, &quot;_self&quot;)'>5</text>
-  </svg></div>
-
-<pre>(defprotocol fnoftest basic
-  (defrole init
-    (vars (an0 an1 n0 n1 text) (k skey))
-    (trace (send (cat n0 (enc an0 an1 n0 n1 k))) (recv n1))
-    (non-orig k)
-    (uniq-orig n0 n1)))</pre>
-
-<p id="k5">Item <a href="#t5">5</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n1</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc an0 an1 n1 n1 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((an0 an0) (an1 an1) (n0 n1) (n1 n1) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>fnoftest 5 (realized)</text></svg></div>
-
-<pre>(defskeleton fnoftest
-  (vars (an0 an1 n1 text) (k skey))
-  (defstrand init 2 (an0 an0) (an1 an1) (n0 n1) (n1 n1) (k k))
-  (fn-of (a (an0 n1) (an1 n1)))
-  (neq (an0 an1))
-  (non-orig k)
-  (uniq-orig n1)
-  (label 5)
-  (unrealized)
-  (origs (n1 (0 0)))
-  (comment &quot;Input cannot be made into a skeleton--nothing to do&quot;))</pre>
-
-<p id="t6">Tree <a href="#top">6</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k7&quot;, &quot;_self&quot;)'>7</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k6&quot;, &quot;_self&quot;)'>6</text>
-  </svg></div>
-
-<pre>(defprotocol fnoftest2 basic
-  (defrole init
-    (vars (bn0 bn1 name) (an0 an1 n0 n1 text) (k skey))
-    (trace (send (cat n0 (enc bn0 bn1 an0 an1 n0 n1 k))) (recv n1))
-    (non-orig k)
-    (uniq-orig n0 n1)
-    (fn-of (a (an0 n0) (an1 n1)) (b ((pubk bn0) an0)))))</pre>
-
-<p id="k6">Item <a href="#t6">6</a>, Child: <a href="#k7">7</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n1</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n0 (enc bn0 bn1 an0 an1 n0 n1 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((an0 an0) (an1 an1) (n0 n0) (n1 n1) (bn0 bn0) (bn1 bn1) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>fnoftest2 6</text>
-  </svg></div>
-
-<pre>(defskeleton fnoftest2
-  (vars (an0 an1 n0 n1 text) (bn0 bn1 name) (k skey))
-  (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n1) (bn0 bn0)
-    (bn1 bn1) (k k))
-  (fn-of (a (an0 n0) (an1 n1)) (b ((pubk bn1) an1) ((pubk bn0) an0)))
-  (non-orig k)
-  (uniq-orig n0 n1)
-  (label 6)
-  (unrealized (0 1))
-  (origs (n0 (0 0)) (n1 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k7">Item <a href="#t6">7</a>, Parent: <a href="#k6">6</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n0</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n0 (enc bn1 bn1 an1 an1 n0 n0 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((an0 an1) (an1 an1) (n0 n0) (n1 n0) (bn0 bn1) (bn1 bn1) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>fnoftest2 7 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton fnoftest2
-  (vars (an1 n0 text) (bn1 name) (k skey))
-  (defstrand init 2 (an0 an1) (an1 an1) (n0 n0) (n1 n0) (bn0 bn1)
-    (bn1 bn1) (k k))
-  (fn-of (a (an1 n0)) (b ((pubk bn1) an1)))
-  (non-orig k)
-  (uniq-orig n0)
-  (operation nonce-test (displaced 1 0 init 1) n1 (0 1)
-    (enc bn0 bn1 an0 an1 n0 n1 k))
-  (label 7)
-  (parent 6)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((bn0 bn1) (bn1 bn1) (an0 an1) (an1 an1) (n0 n0) (n1 n0) (k k))))
-  (origs (n0 (0 0))))</pre>
-
-<p id="t8">Tree <a href="#top">8</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k9&quot;, &quot;_self&quot;)'>9</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k8&quot;, &quot;_self&quot;)'>8</text>
-  </svg></div>
-
-<pre>(defprotocol fnoftest2 basic
-  (defrole init
-    (vars (bn0 bn1 name) (an0 an1 n0 n1 text) (k skey))
-    (trace (send (cat n0 (enc bn0 bn1 an0 an1 n0 n1 k))) (recv n1))
-    (non-orig k)
-    (uniq-orig n0 n1)
-    (fn-of (a (an0 n0) (an1 n1)) (b ((pubk bn0) an0)))))</pre>
-
-<p id="k8">Item <a href="#t8">8</a>, Child: <a href="#k9">9</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n1</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n0 (enc bn0 bn1 an0 an1 n0 n1 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((an0 an0) (an1 an1) (n0 n0) (n1 n1) (bn0 bn0) (bn1 bn1) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>fnoftest2 8</text>
-  </svg></div>
-
-<pre>(defskeleton fnoftest2
-  (vars (an0 an1 n0 n1 text) (bn0 bn1 name) (k skey))
-  (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n1) (bn0 bn0)
-    (bn1 bn1) (k k))
-  (decl foo ((n0 n1) (0 1)) ((k k k n0) (0 0) (0 0) (0 1)))
-  (fn-of (a (an0 n0) (an1 n1)) (b ((pubk bn0) an0))
-    (c ((pubk bn1) an1)))
-  (non-orig k)
-  (uniq-orig n0 n1)
-  (label 8)
-  (unrealized (0 1))
-  (origs (n0 (0 0)) (n1 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k9">Item <a href="#t8">9</a>, Parent: <a href="#k8">8</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n0</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n0 (enc bn0 bn1 an1 an1 n0 n0 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((an0 an1) (an1 an1) (n0 n0) (n1 n0) (bn0 bn0) (bn1 bn1) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>fnoftest2 9 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton fnoftest2
-  (vars (an1 n0 text) (bn0 bn1 name) (k skey))
-  (defstrand init 2 (an0 an1) (an1 an1) (n0 n0) (n1 n0) (bn0 bn0)
-    (bn1 bn1) (k k))
-  (decl foo ((n0 n0) (0 1)) ((k k k n0) (0 0) (0 0) (0 1)))
-  (fn-of (a (an1 n0)) (b ((pubk bn0) an1)) (c ((pubk bn1) an1)))
-  (non-orig k)
-  (uniq-orig n0)
-  (operation nonce-test (displaced 1 0 init 1) n1 (0 1)
-    (enc bn0 bn1 an0 an1 n0 n1 k))
-  (label 9)
-  (parent 8)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((bn0 bn0) (bn1 bn1) (an0 an1) (an1 an1) (n0 n0) (n1 n0) (k k))))
-  (origs (n0 (0 0))))</pre>
-
-<p id="t10">Tree <a href="#top">10</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 79.920' font-size='12.000'>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k10&quot;, &quot;_self&quot;)'>10</text>
-  </svg></div>
-
-<pre>(defprotocol fnoftest2 basic
-  (defrole init
-    (vars (bn0 bn1 name) (an0 an1 n0 n1 text) (k skey))
-    (trace (send (cat n0 (enc bn0 bn1 an0 an1 n0 n1 k))) (recv n1))
-    (non-orig k)
-    (uniq-orig n0 n1)
-    (fn-of (a (an0 n0) (an1 n1)) (b ((pubk bn0) an0)))))</pre>
-
-<p id="k10">Item <a href="#t10">10</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n1</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n0 (enc bn0 bn1 an0 an1 n0 n1 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((an0 an0) (an1 an1) (n0 n0) (n1 n1) (bn0 bn0) (bn1 bn1) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>fnoftest2 10</text></svg></div>
-
-<pre>(defskeleton fnoftest2
-  (vars (an0 an1 n0 n1 text) (bn0 bn1 name) (k skey))
-  (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n1) (bn0 bn0)
-    (bn1 bn1) (k k))
-  (decl foo ((n0 n1) (0 1)) ((k k k n0) (0 0) (0 0) (0 1)))
-  (fn-of (a (an0 n0) (an1 n1)) (b ((privk bn0) an1) ((pubk bn0) an0)))
-  (non-orig k)
-  (uniq-orig n0 n1)
-  (label 10)
-  (unrealized (0 1))
-  (origs (n0 (0 0)) (n1 (0 0)))
-  (comment &quot;empty cohort&quot;))</pre>
-
-</body>
-</html>
diff --git a/doc/examples/fnof_yahalom.scm b/doc/examples/fnof_yahalom.scm
deleted file mode 100644
--- a/doc/examples/fnof_yahalom.scm
+++ /dev/null
@@ -1,135 +0,0 @@
-(herald "Yahalom Protocol with Forwarding Removed, using fnof to emulate ltk function"
-   (bound 12))
-
-(defprotocol yahalom basic
-  (defrole init
-    (vars (a b c name) (n-a n-b text) (ltkac ltkbc k skey))
-    ; Including init (c ltkac) to force c, ltkac to be present in the
-    ; trace.
-    (trace (init (cat c ltkac))
-           (send (cat a n-a))
-	   (recv (enc b k n-a n-b ltkac))
-	   (send (enc n-b k)))
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))
-    (fn-of ("ltk-inv" ((cat a c) ltkac) ((cat b c) ltkbc)))
-  )
-  (defrole resp
-    (vars (b a c name) (n-a n-b text) (ltkac ltkbc k skey))
-    ; Including init (c ltkac) to force c, ltkac to be present in the
-    ; trace.
-    (trace (init (cat c ltkac))
-           (recv (cat a n-a))
-	   (send (cat b (enc a n-a n-b ltkbc)))
-	   (recv (enc a k ltkbc))
-	   (recv (enc n-b k)))
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))
-    (fn-of ("ltk-inv" ((cat a c) ltkac) ((cat b c) ltkbc)))
-  )
-  (defrole serv
-    (vars (c a b name) (n-a n-b text) (ltkac ltkbc k skey))
-    ; Including init c to force c to be present in the trace.
-    (trace (init c)
-           (recv (cat b (enc a n-a n-b ltkbc)))
-	   (send (enc b k n-a n-b ltkac))
-	   (send (enc a k ltkbc)))
-    (uniq-orig k)
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))
-    (fn-of ("ltk-inv" ((cat a c) ltkac) ((cat b c) ltkbc)))
-  )
-)
-
-(defskeleton yahalom
-  (vars (a b c name) (n-b text) (ltkac ltkbc skey))
-  (defstrand resp 4 (a a) (b b) (c c) (n-b n-b) (ltkac ltkac) (ltkbc ltkbc))
-  (non-orig ltkbc ltkac)
-  (uniq-orig n-b)
-)
-
-;;; Ensure encryption key remains secret.
-(defskeleton yahalom
-  (vars (a b c name) (n-b text) (ltkac ltkbc k skey))
-  (defstrand resp 4 (a a) (b b) (c c) (n-b n-b) (k k) (ltkac ltkac) (ltkbc ltkbc))
-  (deflistener k)
-  (non-orig ltkbc ltkac)
-  (uniq-orig n-b)
-)
-
-;;;  In this version, fn-of is only used for the "forward" direction
-;;; of the ltk function.  In other words, if y = ltk(a,b) and z =
-;;; ltk(a,b) then y = z.  But if y = ltk(a,b) and z = ltk(c,d) it is
-;;; not necessarily the case that if y = z then a = b and c = d.
-(defprotocol yahalom2 basic
-  (defrole init
-    (vars (a b c name) (n-a n-b text) (ltkac ltkbc k skey))
-    ; Including init (c ltkac) to force c, ltkac to be present in the
-    ; trace.
-    (trace (init (cat c ltkac))
-           (send (cat a n-a))
-	   (recv (enc b k n-a n-b ltkac))
-	   (send (enc n-b k)))
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))
-  )
-  (defrole resp
-    (vars (b a c name) (n-a n-b text) (ltkac ltkbc k skey))
-    ; Including init (c ltkac) to force c, ltkac to be present in the
-    ; trace.
-    (trace (init (cat c ltkac))
-           (recv (cat a n-a))
-	   (send (cat b (enc a n-a n-b ltkbc)))
-	   (recv (enc a k ltkbc))
-	   (recv (enc n-b k)))
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))
-  )
-  (defrole serv
-    (vars (c a b name) (n-a n-b text) (ltkac ltkbc k skey))
-    ; Including init c to force c to be present in the trace.
-    (trace (init c)
-           (recv (cat b (enc a n-a n-b ltkbc)))
-	   (send (enc b k n-a n-b ltkac))
-	   (send (enc a k ltkbc)))
-    (uniq-orig k)
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))
-  )
-)
-
-(defprotocol yahalom2 basic
-  (defrole init
-    (vars (a b c name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (send (cat a n-a (hash ltkbc)))
-	   (recv (enc b k n-a n-b ltkac))
-	   (send (enc n-b k)))
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))
-  )
-  (defrole resp
-    (vars (b a c name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (recv (cat a n-a))
-	   (send (cat b (enc a n-a n-b ltkbc) (hash c ltkac)))
-	   (recv (enc a k ltkbc))
-	   (recv (enc n-b k)))
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))
-  )
-  (defrole serv
-    (vars (c a b name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (recv (cat b (enc a n-a n-b ltkbc)))
-	   (send (cat (hash c) (enc b k n-a n-b ltkac)))
-	   (send (enc a k ltkbc)))
-    (uniq-orig k)
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))
-  )
-)
-
-(defskeleton yahalom2
-  (vars (a b c name) (n-b text) (ltkac ltkbc skey))
-  (defstrand resp 4 (a a) (b b) (c c) (n-b n-b) (ltkac ltkac) (ltkbc ltkbc))
-  (non-orig ltkbc ltkac)
-  (uniq-orig n-b)
-)
-
-;;; Ensure encryption key remains secret.
-(defskeleton yahalom2
-  (vars (a b c name) (n-b text) (ltkac ltkbc k skey))
-  (defstrand resp 4 (a a) (b b) (c c) (n-b n-b) (k k) (ltkac ltkac) (ltkbc ltkbc))
-  (deflistener k)
-  (non-orig ltkbc ltkac)
-  (uniq-orig n-b)
-)
diff --git a/doc/examples/fnof_yahalom.xhtml b/doc/examples/fnof_yahalom.xhtml
deleted file mode 100644
--- a/doc/examples/fnof_yahalom.xhtml
+++ /dev/null
@@ -1,1876 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Yahalom Protocol with Forwarding Removed, using fnof to emulate ltk function</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(herald
-  &quot;Yahalom Protocol with Forwarding Removed, using fnof to emulate ltk function&quot;
-  (bound 12))
-(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from fnof_yahalom.scm&quot;)</pre>
-
-<p id="top">Trees: <a href="#t0">0</a> <a href="#t4">4</a> <a href="#t10">10</a> <a href="#t15">15</a>.</p>
-
-<p id="t0">Tree <a href="#top">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.760pt' height='154.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.760 154.920' font-size='12.000'>
-  <text
-   x='139.800' y='101.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k3&quot;, &quot;_self&quot;)'>3</text>
-  <line
-   x1='89.880' y1='77.460' x2='139.800' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k2&quot;, &quot;_self&quot;)'>2</text>
-  <line
-   x1='89.880' y1='77.460' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k1&quot;, &quot;_self&quot;)'>1</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='77.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol yahalom basic
-  (defrole init
-    (vars (a b c name) (n-a n-b text) (ltkac k skey))
-    (trace (init (cat c ltkac)) (send (cat a n-a))
-      (recv (enc b k n-a n-b ltkac)) (send (enc n-b k)))
-    (fn-of (&quot;ltk&quot; (ltkac (cat a c))) (&quot;ltk-inv&quot; ((cat a c) ltkac))))
-  (defrole resp
-    (vars (b a c name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (init (cat c ltkac)) (recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc))) (recv (enc a k ltkbc))
-      (recv (enc n-b k)))
-    (fn-of (&quot;ltk&quot; (ltkac (cat a c)) (ltkbc (cat b c)))
-      (&quot;ltk-inv&quot; ((cat a c) ltkac) ((cat b c) ltkbc))))
-  (defrole serv
-    (vars (c a b name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (init c) (recv (cat b (enc a n-a n-b ltkbc)))
-      (send (enc b k n-a n-b ltkac)) (send (enc a k ltkbc)))
-    (uniq-orig k)
-    (fn-of (&quot;ltk&quot; (ltkac (cat a c)) (ltkbc (cat b c)))
-      (&quot;ltk-inv&quot; ((cat a c) ltkac) ((cat b c) ltkbc)))))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc a k ltkbc)</title>
-   <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b ltkbc))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat c ltkac)</title>
-   <circle style='fill: gray;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>yahalom 0</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (fn-of (&quot;ltk&quot; (ltkac (cat a c)) (ltkbc (cat b c)))
-    (&quot;ltk-inv&quot; ((cat a c) ltkac) ((cat b c) ltkbc)))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b)
-  (label 0)
-  (unrealized (0 3))
-  (origs (n-b (0 2)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Children: <a href="#k2">2</a> <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k ltkbc)</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a-0 n-b-0 ltkac)</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a-0 n-b-0 ltkbc))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>c</title>
-   <circle style='fill: gray;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc a k ltkbc)</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b ltkbc))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat c ltkac)</title>
-   <circle style='fill: gray;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960' style='text-anchor: middle;'>yahalom 1</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (defstrand serv 4 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b)
-    (ltkac ltkac) (ltkbc ltkbc) (k k))
-  (precedes ((1 3) (0 3)))
-  (fn-of (&quot;ltk&quot; (ltkbc (cat b c)) (ltkac (cat a c)))
-    (&quot;ltk-inv&quot; ((cat b c) ltkbc) ((cat a c) ltkac)))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand serv 4) (enc a k ltkbc)
-    (0 3))
-  (label 1)
-  (parent 0)
-  (unrealized (1 1))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k ltkbc)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b ltkac)</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b ltkbc))</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>c</title>
-   <circle style='fill: gray;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc a k ltkbc)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b ltkbc))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat c ltkac)</title>
-   <circle style='fill: gray;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>yahalom 2 (realized)</text></svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (defstrand serv 4 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (precedes ((0 2) (1 1)) ((1 3) (0 3)))
-  (fn-of (&quot;ltk&quot; (ltkac (cat a c)) (ltkbc (cat b c)))
-    (&quot;ltk-inv&quot; ((cat a c) ltkac) ((cat b c) ltkbc)))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (displaced 2 0 resp 3)
-    (enc a n-a-0 n-b-0 ltkbc) (1 1))
-  (label 2)
-  (parent 1)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((a a) (b b) (c c) (n-b n-b) (ltkac ltkac) (ltkbc ltkbc) (n-a n-a)
-        (k k))))
-  (origs (k (1 2)) (n-b (0 2))))</pre>
-
-<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='189.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a-0 n-b-0 ltkbc))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a-0)</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat c ltkac)</title>
-   <circle style='fill: gray;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k ltkbc)</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b k n-a-0 n-b-0 ltkac)</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a-0 n-b-0 ltkbc))</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>c</title>
-   <circle style='fill: gray;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc a k ltkbc)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b ltkbc))</title>
-   <circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat c ltkac)</title>
-   <circle style='fill: gray;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>yahalom 3 (realized)</text></svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (defstrand serv 4 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b)
-    (ltkac ltkac) (ltkbc ltkbc) (k k))
-  (defstrand resp 3 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c)
-    (ltkac ltkac) (ltkbc ltkbc))
-  (precedes ((1 3) (0 3)) ((2 2) (1 1)))
-  (fn-of (&quot;ltk&quot; (ltkac (cat a c)) (ltkbc (cat b c)))
-    (&quot;ltk-inv&quot; ((cat a c) ltkac) ((cat b c) ltkbc)))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand resp 3)
-    (enc a n-a-0 n-b-0 ltkbc) (1 1))
-  (label 3)
-  (parent 1)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((a a) (b b) (c c) (n-b n-b) (ltkac ltkac) (ltkbc ltkbc) (n-a n-a)
-        (k k))))
-  (origs (k (1 2)) (n-b (0 2))))</pre>
-
-<p id="t4">Tree <a href="#top">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='229.680pt' height='154.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 229.680 154.920' font-size='12.000'>
-  <text
-   x='189.720' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k9&quot;, &quot;_self&quot;)'>9</text>
-  <line
-   x1='139.800' y1='114.960' x2='189.720' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k7&quot;, &quot;_self&quot;)'>7</text>
-  <line
-   x1='89.880' y1='77.460' x2='139.800' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k8&quot;, &quot;_self&quot;)'>8</text>
-  <line
-   x1='139.800' y1='39.960' x2='189.720' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k6&quot;, &quot;_self&quot;)'>6</text>
-  <line
-   x1='89.880' y1='77.460' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='63.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k5&quot;, &quot;_self&quot;)'>5</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='77.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='63.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k4&quot;, &quot;_self&quot;)'>4</text>
-  </svg></div>
-
-<pre>(defprotocol yahalom basic
-  (defrole init
-    (vars (a b c name) (n-a n-b text) (ltkac k skey))
-    (trace (init (cat c ltkac)) (send (cat a n-a))
-      (recv (enc b k n-a n-b ltkac)) (send (enc n-b k)))
-    (fn-of (&quot;ltk&quot; (ltkac (cat a c))) (&quot;ltk-inv&quot; ((cat a c) ltkac))))
-  (defrole resp
-    (vars (b a c name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (init (cat c ltkac)) (recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc))) (recv (enc a k ltkbc))
-      (recv (enc n-b k)))
-    (fn-of (&quot;ltk&quot; (ltkac (cat a c)) (ltkbc (cat b c)))
-      (&quot;ltk-inv&quot; ((cat a c) ltkac) ((cat b c) ltkbc))))
-  (defrole serv
-    (vars (c a b name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (init c) (recv (cat b (enc a n-a n-b ltkbc)))
-      (send (enc b k n-a n-b ltkac)) (send (enc a k ltkbc)))
-    (uniq-orig k)
-    (fn-of (&quot;ltk&quot; (ltkac (cat a c)) (ltkbc (cat b c)))
-      (&quot;ltk-inv&quot; ((cat a c) ltkac) ((cat b c) ltkbc)))))</pre>
-
-<p id="k4">Item <a href="#t4">4</a>, Child: <a href="#k5">5</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>k</title><circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc a k ltkbc)</title>
-   <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b ltkbc))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat c ltkac)</title>
-   <circle style='fill: gray;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960' style='text-anchor: middle;'>yahalom 4</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (fn-of (&quot;ltk&quot; (ltkac (cat a c)) (ltkbc (cat b c)))
-    (&quot;ltk-inv&quot; ((cat a c) ltkac) ((cat b c) ltkbc)))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b)
-  (label 4)
-  (unrealized (0 3))
-  (origs (n-b (0 2)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k5">Item <a href="#t4">5</a>, Parent: <a href="#k4">4</a>, Children: <a href="#k6">6</a> <a href="#k7">7</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='264.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 339.960 Q 142.920 302.460 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k ltkbc)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a-0 n-b-0 ltkac)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a-0 n-b-0 ltkbc))</title>
-   <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>c</title>
-   <circle style='fill: gray;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>k</title><circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc a k ltkbc)</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b ltkbc))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat c ltkac)</title>
-   <circle style='fill: gray;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960' style='text-anchor: middle;'>yahalom 5</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (defstrand serv 4 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b)
-    (ltkac ltkac) (ltkbc ltkbc) (k k))
-  (precedes ((2 2) (1 0)) ((2 3) (0 3)))
-  (fn-of (&quot;ltk&quot; (ltkbc (cat b c)) (ltkac (cat a c)))
-    (&quot;ltk-inv&quot; ((cat b c) ltkbc) ((cat a c) ltkac)))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand serv 4) (enc a k ltkbc)
-    (0 3))
-  (label 5)
-  (parent 4)
-  (unrealized (1 0) (2 1))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k6">Item <a href="#t4">6</a>, Parent: <a href="#k5">5</a>, Child: <a href="#k8">8</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='339.960' x2='139.920' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k ltkbc)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b ltkac)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b ltkbc))</title>
-   <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>c</title>
-   <circle style='fill: gray;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>k</title><circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>(enc a k ltkbc)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 264.960 Q 136.920 227.460 233.880 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b ltkbc))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat c ltkac)</title>
-   <circle style='fill: gray;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960' style='text-anchor: middle;'>yahalom 6</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (defstrand serv 4 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (precedes ((0 2) (2 1)) ((2 2) (1 0)) ((2 3) (0 3)))
-  (fn-of (&quot;ltk&quot; (ltkac (cat a c)) (ltkbc (cat b c)))
-    (&quot;ltk-inv&quot; ((cat a c) ltkac) ((cat b c) ltkbc)))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (displaced 3 0 resp 3)
-    (enc a n-a-0 n-b-0 ltkbc) (2 1))
-  (label 6)
-  (parent 5)
-  (unrealized (1 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k7">Item <a href="#t4">7</a>, Parent: <a href="#k5">5</a>, Child: <a href="#k9">9</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='339.960' x2='139.920' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='189.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a-0 n-b-0 ltkbc))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a-0)</title>
-   <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>(cat c ltkac)</title>
-   <circle style='fill: gray;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k ltkbc)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a-0 n-b-0 ltkac)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a-0 n-b-0 ltkbc))</title>
-   <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>c</title>
-   <circle style='fill: gray;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>k</title><circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>(enc a k ltkbc)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b ltkbc))</title>
-   <circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat c ltkac)</title>
-   <circle style='fill: gray;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='189.900' y='39.960' style='text-anchor: middle;'>yahalom 7</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (defstrand serv 4 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b)
-    (ltkac ltkac) (ltkbc ltkbc) (k k))
-  (defstrand resp 3 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c)
-    (ltkac ltkac) (ltkbc ltkbc))
-  (precedes ((2 2) (1 0)) ((2 3) (0 3)) ((3 2) (2 1)))
-  (fn-of (&quot;ltk&quot; (ltkac (cat a c)) (ltkbc (cat b c)))
-    (&quot;ltk-inv&quot; ((cat a c) ltkac) ((cat b c) ltkbc)))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand resp 3)
-    (enc a n-a-0 n-b-0 ltkbc) (2 1))
-  (label 7)
-  (parent 5)
-  (unrealized (1 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k8">Item <a href="#t4">8</a>, Parent: <a href="#k6">6</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='529.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 529.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='414.960' x2='139.920' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 414.960 Q 192.900 414.960 145.920 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k ltkbc)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b ltkac)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b ltkbc))</title>
-   <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>c</title>
-   <circle style='fill: gray;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>k</title><circle cx='139.920' cy='489.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k ltkbc)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 264.960 Q 136.920 227.460 233.880 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b ltkbc))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat c ltkac)</title>
-   <circle style='fill: gray;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960' style='text-anchor: middle;'>yahalom 8</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (defstrand serv 4 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (precedes ((0 2) (2 1)) ((2 3) (0 3)) ((2 3) (1 0)))
-  (fn-of (&quot;ltk&quot; (ltkbc (cat b c)) (ltkac (cat a c)))
-    (&quot;ltk-inv&quot; ((cat b c) ltkbc) ((cat a c) ltkac)))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation nonce-test (displaced 3 2 serv 4) k (1 0)
-    (enc b k n-a n-b ltkac))
-  (label 8)
-  (parent 6)
-  (unrealized (1 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k9">Item <a href="#t4">9</a>, Parent: <a href="#k7">7</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='529.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 529.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='414.960' x2='139.920' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='189.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a-0 n-b-0 ltkbc))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a-0)</title>
-   <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>(cat c ltkac)</title>
-   <circle style='fill: gray;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 414.960 Q 192.900 414.960 145.920 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k ltkbc)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b k n-a-0 n-b-0 ltkac)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a-0 n-b-0 ltkbc))</title>
-   <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>c</title>
-   <circle style='fill: gray;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>k</title><circle cx='139.920' cy='489.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k ltkbc)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b ltkbc))</title>
-   <circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat c ltkac)</title>
-   <circle style='fill: gray;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='189.900' y='39.960' style='text-anchor: middle;'>yahalom 9</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (defstrand serv 4 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b)
-    (ltkac ltkac) (ltkbc ltkbc) (k k))
-  (defstrand resp 3 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c)
-    (ltkac ltkac) (ltkbc ltkbc))
-  (precedes ((2 3) (0 3)) ((2 3) (1 0)) ((3 2) (2 1)))
-  (fn-of (&quot;ltk&quot; (ltkbc (cat b c)) (ltkac (cat a c)))
-    (&quot;ltk-inv&quot; ((cat b c) ltkbc) ((cat a c) ltkac)))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation nonce-test (displaced 4 2 serv 4) k (1 0)
-    (enc b k n-a-0 n-b-0 ltkac))
-  (label 9)
-  (parent 7)
-  (unrealized (1 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="t10">Tree <a href="#top">10</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='229.680pt' height='154.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 229.680 154.920' font-size='12.000'>
-  <text
-   x='189.720' y='101.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k14&quot;, &quot;_self&quot;)'>14</text>
-  <line
-   x1='139.800' y1='114.960' x2='189.720' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='101.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k13&quot;, &quot;_self&quot;)'>13</text>
-  <line
-   x1='89.880' y1='77.460' x2='139.800' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k12&quot;, &quot;_self&quot;)'>12</text>
-  <line
-   x1='89.880' y1='77.460' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k11&quot;, &quot;_self&quot;)'>11</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='77.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k10&quot;, &quot;_self&quot;)'>10</text>
-  </svg></div>
-
-<pre>(defprotocol yahalom2 basic
-  (defrole init
-    (vars (a b name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (send (cat a n-a (hash ltkbc)))
-      (recv (enc b k n-a n-b ltkac)) (send (enc n-b k))))
-  (defrole resp
-    (vars (b a c name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc) (hash c ltkac)))
-      (recv (enc a k ltkbc)) (recv (enc n-b k)))
-    (fn-of (&quot;ltk&quot; (ltkac (cat a c)) (ltkbc (cat b c)))))
-  (defrole serv
-    (vars (c a b name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (recv (cat b (enc a n-a n-b ltkbc)))
-      (send (cat (hash c) (enc b k n-a n-b ltkac)))
-      (send (enc a k ltkbc)))
-    (uniq-orig k)
-    (fn-of (&quot;ltk&quot; (ltkac (cat a c)) (ltkbc (cat b c))))))</pre>
-
-<p id="k10">Item <a href="#t10">10</a>, Child: <a href="#k11">11</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(enc a k ltkbc)</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b ltkbc) (hash c ltkac))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>yahalom2 10</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom2
-  (vars (n-b n-a text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (fn-of (&quot;ltk&quot; (ltkac (cat a c)) (ltkbc (cat b c))))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b)
-  (label 10)
-  (unrealized (0 2) (0 3))
-  (origs (n-b (0 1)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k11">Item <a href="#t10">11</a>, Parent: <a href="#k10">10</a>, Children: <a href="#k12">12</a> <a href="#k13">13</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k ltkbc)</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat (hash c-0) (enc b-0 k n-a-0 n-b-0 ltkac-0))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(cat b-0 (enc a n-a-0 n-b-0 ltkbc))</title>
-   <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(enc a k ltkbc)</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b ltkbc) (hash c ltkac))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b-0) (c c-0) (a a) (b b-0) (ltkac ltkac-0) (ltkbc ltkbc) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960' style='text-anchor: middle;'>yahalom2 11</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom2
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c c-0 b-0 name)
-    (ltkac ltkbc k ltkac-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c-0) (a a) (b b-0)
-    (ltkac ltkac-0) (ltkbc ltkbc) (k k))
-  (precedes ((1 2) (0 2)))
-  (fn-of
-    (&quot;ltk&quot; (ltkac-0 (cat a c-0)) (ltkbc (cat b-0 c-0)) (ltkac (cat a c))
-      (ltkbc (cat b c))))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand serv 3) (enc a k ltkbc)
-    (0 2))
-  (label 11)
-  (parent 10)
-  (unrealized (0 3) (1 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k12">Item <a href="#t10">12</a>, Parent: <a href="#k11">11</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k ltkbc)</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>(cat (hash c-0) (enc b-0 k n-a n-b ltkac-0))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b-0 (enc a n-a n-b ltkbc))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k ltkbc)</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b ltkbc) (hash c ltkac))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (c c-0) (a a) (b b-0) (ltkac ltkac-0) (ltkbc ltkbc) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>yahalom2 12 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton yahalom2
-  (vars (n-b n-a text) (a b c c-0 b-0 name)
-    (ltkac ltkbc k ltkac-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c-0) (a a) (b b-0)
-    (ltkac ltkac-0) (ltkbc ltkbc) (k k))
-  (precedes ((0 1) (1 0)) ((1 2) (0 2)))
-  (fn-of
-    (&quot;ltk&quot; (ltkac (cat a c)) (ltkbc (cat b c)) (ltkac-0 (cat a c-0))
-      (ltkbc (cat b-0 c-0))))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc a n-a-0 n-b-0 ltkbc) (1 0))
-  (label 12)
-  (parent 11)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((a a) (b b) (c c) (n-b n-b) (ltkac ltkac) (ltkbc ltkbc) (n-a n-a)
-        (k k))))
-  (origs (k (1 1)) (n-b (0 1))))</pre>
-
-<p id="k13">Item <a href="#t10">13</a>, Parent: <a href="#k11">11</a>, Child: <a href="#k14">14</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='189.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat b-1 (enc a n-a-0 n-b-0 ltkbc) (hash c-1 ltkac-1))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a-0)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k ltkbc)</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>(cat (hash c-0) (enc b-0 k n-a-0 n-b-0 ltkac-0))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b-0 (enc a n-a-0 n-b-0 ltkbc))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k ltkbc)</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b ltkbc) (hash c ltkac))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b-0) (b b-1) (a a) (c c-1) (ltkac ltkac-1) (ltkbc ltkbc))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b-0) (c c-0) (a a) (b b-0) (ltkac ltkac-0) (ltkbc ltkbc) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>yahalom2 13</text></svg></div>
-
-<pre>(defskeleton yahalom2
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c c-0 b-0 b-1 c-1 name)
-    (ltkac ltkbc k ltkac-0 ltkac-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c-0) (a a) (b b-0)
-    (ltkac ltkac-0) (ltkbc ltkbc) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b-1) (a a) (c c-1)
-    (ltkac ltkac-1) (ltkbc ltkbc))
-  (precedes ((1 2) (0 2)) ((2 1) (1 0)))
-  (fn-of
-    (&quot;ltk&quot; (ltkac-1 (cat a c-1)) (ltkbc (cat b-1 c-1))
-      (ltkac-0 (cat a c-0)) (ltkbc (cat b-0 c-0)) (ltkac (cat a c))
-      (ltkbc (cat b c))))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand resp 2)
-    (enc a n-a-0 n-b-0 ltkbc) (1 0))
-  (label 13)
-  (parent 11)
-  (unrealized (0 3))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k14">Item <a href="#t10">14</a>, Parent: <a href="#k13">13</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 264.960 Q 192.583 301.118 45.326 412.276'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (hash c-2) (enc b-2 k-0 n-a n-b ltkac-2))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b-2 (enc a n-a n-b ltkbc))</title>
-   <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat b-1 (enc a n-a-0 n-b-0 ltkbc) (hash c-1 ltkac-1))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a-0)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k ltkbc)</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>(cat (hash c-0) (enc b-0 k n-a-0 n-b-0 ltkac-0))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b-0 (enc a n-a-0 n-b-0 ltkbc))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k ltkbc)</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b ltkbc) (hash c ltkac))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (c c-2) (a a) (b b-2) (ltkac ltkac-2) (ltkbc ltkbc) (k k-0))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b-0) (b b-1) (a a) (c c-1) (ltkac ltkac-1) (ltkbc ltkbc))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b-0) (c c-0) (a a) (b b-0) (ltkac ltkac-0) (ltkbc ltkbc) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>yahalom2 14 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton yahalom2
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c c-0 b-0 b-1 c-1 c-2 b-2 name)
-    (ltkac ltkbc k ltkac-0 ltkac-1 ltkac-2 k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c-0) (a a) (b b-0)
-    (ltkac ltkac-0) (ltkbc ltkbc) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b-1) (a a) (c c-1)
-    (ltkac ltkac-1) (ltkbc ltkbc))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c-2) (a a) (b b-2)
-    (ltkac ltkac-2) (ltkbc ltkbc) (k k-0))
-  (precedes ((0 1) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (0 3)))
-  (fn-of
-    (&quot;ltk&quot; (ltkac-2 (cat a c-2)) (ltkbc (cat b-2 c-2))
-      (ltkac-1 (cat a c-1)) (ltkbc (cat b-1 c-1)) (ltkac-0 (cat a c-0))
-      (ltkbc (cat b-0 c-0)) (ltkac (cat a c)) (ltkbc (cat b c))))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (added-strand serv 2) n-b (0 3)
-    (enc a n-a n-b ltkbc))
-  (label 14)
-  (parent 13)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((a a) (b b) (c c) (n-b n-b) (ltkac ltkac) (ltkbc ltkbc) (n-a n-a)
-        (k k))))
-  (origs (k-0 (3 1)) (k (1 1)) (n-b (0 1))))</pre>
-
-<p id="t15">Tree <a href="#top">15</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='229.680pt' height='154.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 229.680 154.920' font-size='12.000'>
-  <text
-   x='189.720' y='101.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k19&quot;, &quot;_self&quot;)'>19</text>
-  <line
-   x1='139.800' y1='114.960' x2='189.720' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='101.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k18&quot;, &quot;_self&quot;)'>18</text>
-  <line
-   x1='89.880' y1='77.460' x2='139.800' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k17&quot;, &quot;_self&quot;)'>17</text>
-  <line
-   x1='89.880' y1='77.460' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k16&quot;, &quot;_self&quot;)'>16</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='77.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k15&quot;, &quot;_self&quot;)'>15</text>
-  </svg></div>
-
-<pre>(defprotocol yahalom2 basic
-  (defrole init
-    (vars (a b name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (send (cat a n-a (hash ltkbc)))
-      (recv (enc b k n-a n-b ltkac)) (send (enc n-b k))))
-  (defrole resp
-    (vars (b a c name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc) (hash c ltkac)))
-      (recv (enc a k ltkbc)) (recv (enc n-b k)))
-    (fn-of (&quot;ltk&quot; (ltkac (cat a c)) (ltkbc (cat b c)))))
-  (defrole serv
-    (vars (c a b name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (recv (cat b (enc a n-a n-b ltkbc)))
-      (send (cat (hash c) (enc b k n-a n-b ltkac)))
-      (send (enc a k ltkbc)))
-    (uniq-orig k)
-    (fn-of (&quot;ltk&quot; (ltkac (cat a c)) (ltkbc (cat b c))))))</pre>
-
-<p id="k15">Item <a href="#t15">15</a>, Child: <a href="#k16">16</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>k</title><circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(enc a k ltkbc)</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b ltkbc) (hash c ltkac))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960' style='text-anchor: middle;'>yahalom2 15</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom2
-  (vars (n-b n-a text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (fn-of (&quot;ltk&quot; (ltkac (cat a c)) (ltkbc (cat b c))))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b)
-  (label 15)
-  (unrealized (0 2) (0 3))
-  (origs (n-b (0 1)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k16">Item <a href="#t15">16</a>, Parent: <a href="#k15">15</a>, Children: <a href="#k17">17</a> <a href="#k18">18</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k ltkbc)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (hash c-0) (enc b-0 k n-a-0 n-b-0 ltkac-0))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat b-0 (enc a n-a-0 n-b-0 ltkbc))</title>
-   <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>k</title><circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(enc a k ltkbc)</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b ltkbc) (hash c ltkac))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b-0) (c c-0) (a a) (b b-0) (ltkac ltkac-0) (ltkbc ltkbc) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>yahalom2 16</text></svg></div>
-
-<pre>(defskeleton yahalom2
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c c-0 b-0 name)
-    (ltkac ltkbc k ltkac-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c-0) (a a) (b b-0)
-    (ltkac ltkac-0) (ltkbc ltkbc) (k k))
-  (precedes ((2 1) (1 0)) ((2 2) (0 2)))
-  (fn-of
-    (&quot;ltk&quot; (ltkac-0 (cat a c-0)) (ltkbc (cat b-0 c-0)) (ltkac (cat a c))
-      (ltkbc (cat b c))))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand serv 3) (enc a k ltkbc)
-    (0 2))
-  (label 16)
-  (parent 15)
-  (unrealized (0 3) (2 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k17">Item <a href="#t15">17</a>, Parent: <a href="#k16">16</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='264.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 339.960 Q 142.920 302.460 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k ltkbc)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (hash c-0) (enc b-0 k n-a n-b ltkac-0))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b-0 (enc a n-a n-b ltkbc))</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>k</title><circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k ltkbc)</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b ltkbc) (hash c ltkac))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (c c-0) (a a) (b b-0) (ltkac ltkac-0) (ltkbc ltkbc) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>yahalom2 17 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton yahalom2
-  (vars (n-b n-a text) (a b c c-0 b-0 name)
-    (ltkac ltkbc k ltkac-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c-0) (a a) (b b-0)
-    (ltkac ltkac-0) (ltkbc ltkbc) (k k))
-  (precedes ((0 1) (2 0)) ((2 1) (1 0)) ((2 2) (0 2)))
-  (fn-of
-    (&quot;ltk&quot; (ltkac (cat a c)) (ltkbc (cat b c)) (ltkac-0 (cat a c-0))
-      (ltkbc (cat b-0 c-0))))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (displaced 3 0 resp 2)
-    (enc a n-a-0 n-b-0 ltkbc) (2 0))
-  (label 17)
-  (parent 16)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((a a) (b b) (c c) (n-b n-b) (ltkac ltkac) (ltkbc ltkbc) (k k)
-        (n-a n-a))))
-  (origs (k (2 1)) (n-b (0 1))))</pre>
-
-<p id="k18">Item <a href="#t15">18</a>, Parent: <a href="#k16">16</a>, Child: <a href="#k19">19</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='264.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='189.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat b-1 (enc a n-a-0 n-b-0 ltkbc) (hash c-1 ltkac-1))</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a-0)</title>
-   <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 142.920 302.460 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k ltkbc)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (hash c-0) (enc b-0 k n-a-0 n-b-0 ltkac-0))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b-0 (enc a n-a-0 n-b-0 ltkbc))</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>k</title><circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k ltkbc)</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b ltkbc) (hash c ltkac))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b-0) (b b-1) (a a) (c c-1) (ltkac ltkac-1) (ltkbc ltkbc))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b-0) (c c-0) (a a) (b b-0) (ltkac ltkac-0) (ltkbc ltkbc) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>yahalom2 18</text></svg></div>
-
-<pre>(defskeleton yahalom2
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c c-0 b-0 b-1 c-1 name)
-    (ltkac ltkbc k ltkac-0 ltkac-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c-0) (a a) (b b-0)
-    (ltkac ltkac-0) (ltkbc ltkbc) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b-1) (a a) (c c-1)
-    (ltkac ltkac-1) (ltkbc ltkbc))
-  (precedes ((2 1) (1 0)) ((2 2) (0 2)) ((3 1) (2 0)))
-  (fn-of
-    (&quot;ltk&quot; (ltkac-1 (cat a c-1)) (ltkbc (cat b-1 c-1))
-      (ltkac-0 (cat a c-0)) (ltkbc (cat b-0 c-0)) (ltkac (cat a c))
-      (ltkbc (cat b c))))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand resp 2)
-    (enc a n-a-0 n-b-0 ltkbc) (2 0))
-  (label 18)
-  (parent 16)
-  (unrealized (0 3))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k19">Item <a href="#t15">19</a>, Parent: <a href="#k18">18</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='264.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 264.960 Q 242.689 301.406 45.578 412.852'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (hash c-2) (enc b-2 k-0 n-a n-b ltkac-2))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b-2 (enc a n-a n-b ltkbc))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat b-1 (enc a n-a-0 n-b-0 ltkbc) (hash c-1 ltkac-1))</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a-0)</title>
-   <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 142.920 302.460 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k ltkbc)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (hash c-0) (enc b-0 k n-a-0 n-b-0 ltkac-0))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b-0 (enc a n-a-0 n-b-0 ltkbc))</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>k</title><circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k ltkbc)</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b ltkbc) (hash c ltkac))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (c c-2) (a a) (b b-2) (ltkac ltkac-2) (ltkbc ltkbc) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b-0) (b b-1) (a a) (c c-1) (ltkac ltkac-1) (ltkbc ltkbc))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b-0) (c c-0) (a a) (b b-0) (ltkac ltkac-0) (ltkbc ltkbc) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac) (ltkbc ltkbc) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='239.880' y='39.960'
-   style='text-anchor: middle;'>yahalom2 19 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton yahalom2
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c c-0 b-0 b-1 c-1 c-2 b-2 name)
-    (ltkac ltkbc k ltkac-0 ltkac-1 ltkac-2 k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c-0) (a a) (b b-0)
-    (ltkac ltkac-0) (ltkbc ltkbc) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b-1) (a a) (c c-1)
-    (ltkac ltkac-1) (ltkbc ltkbc))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c-2) (a a) (b b-2)
-    (ltkac ltkac-2) (ltkbc ltkbc) (k k-0))
-  (precedes ((0 1) (4 0)) ((2 1) (1 0)) ((2 2) (0 2)) ((3 1) (2 0))
-    ((4 1) (0 3)))
-  (fn-of
-    (&quot;ltk&quot; (ltkac-2 (cat a c-2)) (ltkbc (cat b-2 c-2))
-      (ltkac-1 (cat a c-1)) (ltkbc (cat b-1 c-1)) (ltkac-0 (cat a c-0))
-      (ltkbc (cat b-0 c-0)) (ltkac (cat a c)) (ltkbc (cat b c))))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (added-strand serv 2) n-b (0 3)
-    (enc a n-a n-b ltkbc))
-  (label 19)
-  (parent 18)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((a a) (b b) (c c) (n-b n-b) (ltkac ltkac) (ltkbc ltkbc) (k k)
-        (n-a n-a))))
-  (origs (k-0 (4 1)) (k (2 1)) (n-b (0 1))))</pre>
-
-</body>
-</html>
diff --git a/doc/examples/goals.scm b/doc/examples/goals.scm
deleted file mode 100644
--- a/doc/examples/goals.scm
+++ /dev/null
@@ -1,240 +0,0 @@
-(herald goals)
-
-;;; Section 1 --- Examples from CPSA and Formal Security Goals
-
-;;; Needham-Schroeder from Section 10 of the CPSA Primer
-
-(defprotocol ns basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace
-     (send (enc n1 a (pubk b)))
-     (recv (enc n1 n2 (pubk a)))
-     (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace
-     (recv (enc n1 a (pubk b)))
-     (send (enc n1 n2 (pubk a)))
-     (recv (enc n2 (pubk b)))))
-  (comment "Needham-Schroeder with no role origination assumptions"))
-
-(defgoal ns
-  (forall ((b name) (n1 text) (z0 strd))
-    (implies
-     (and (p "init" z0 3)
-      (p "init" "n1" z0 n1) (p "init" "b" z0 b)
-      (non (privk b)) (uniq n1))
-     (exists ((z1 strd))
-	     (and (p "resp" z1 2) (p "resp" "b" z1 b)))))
-  (comment "Initiator point of view")
-  (comment "Authentication goal: agreement on name b"))
-
-(defgoal ns
-  (forall ((b name) (n1 text) (z0 strd))
-    (implies
-     (and (p "init" z0 3)
-      (p "init" "n1" z0 n1) (p "init" "b" z0 b)
-      (non (privk b)) (uniq n1))
-     (exists ((z1 strd))
-	     (and (p "resp" z1 2) (p "resp" "b" z1 b)
-	      (prec z1 1 z0 2)))))
-  (comment "Prec example"))
-
-(defgoal ns
-  (forall ((a b name) (n2 text) (z0 strd))
-    (implies
-     (and (p "resp" z0 3) (p "resp" "n2" z0 n2)
-      (p "resp" "a" z0 a) (p "resp" "b" z0 b)
-      (non (privk a)) (uniq n2))
-     (exists ((z1 strd))
-      (and (p "init" z1 2) (p "init" "b" z1 b)))))
-  (comment "Responder point of view")
-  (comment "Failed authentication goal: agreement on name b"))
-
-(defprotocol nsl basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace
-     (send (enc n1 a (pubk b)))
-     (recv (enc n1 n2 b (pubk a)))
-     (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace
-     (recv (enc n1 a (pubk b)))
-     (send (enc n1 n2 b (pubk a)))
-     (recv (enc n2 (pubk b)))))
-  (comment "Needham-Schroeder-Lowe with no role origination assumptions"))
-
-(defgoal nsl
-  (forall ((a b name) (n2 text) (z0 strd))
-    (implies
-     (and (p "resp" z0 3) (p "resp" "n2" z0 n2)
-      (p "resp" "a" z0 a) (p "resp" "b" z0 b)
-      (non (privk a)) (uniq n2))
-     (exists ((z1 strd))
-      (and (p "init" z1 2) (p "init" "b" z1 b)))))
-  (comment "Responder point of view")
-  (comment "Authentication goal: agreement on name b"))
-
-(defgoal ns
-  (forall ((a b name) (n1 text) (z0 z1 strd))
-    (implies
-     (and (p "init" z0 3) (p "init" "n1" z0 n1)
-      (p "init" "a" z0 a) (p "init" "b" z0 b)
-      (p "" z1 1) (p "" "x" z1 n1)
-      (non (privk a)) (non (privk b)) (uniq n1))
-     (false)))
-  (comment "Initiator point of view")
-  (comment "Secrecy goal: nonce n1 not revealed"))
-
-(defprotocol unilateral basic
-  (defrole init
-    (vars (a name) (n text))
-    (trace
-     (send (enc n (pubk a)))
-     (recv n)))
-  (defrole resp
-    (vars (a name) (n text))
-    (trace
-     (recv (enc n (pubk a)))
-     (send n)))
-  (comment "Unilateral authentication"))
-
-(defgoal unilateral
-  (forall ((a name) (n text)
-           (z0 strd))
-   (implies
-    (and (p "init" z0 2)
-     (p "init" "n" z0 n)
-     (p "init" "a" z0 a)
-     (non (privk a)) (uniq n))
-    (exists ((z1 strd))
-     (and (p "resp" z1 2)
-      (p "resp" "a" z1 a)))))
-  (comment "Unilateral authentication goal"))
-
-;;; Does initiator satisfy the unilateral authentication goal?
-
-;;; Note that the goal requires translation of some of the role
-;;; specific predicates.
-(defgoal ns
-  (forall ((a name) (n text) (z0 strd))
-   (implies
-    (and (p "init" z0 2) (p "init" "n1" z0 n)
-     (p "init" "b" z0 a) (non (privk a)) (uniq n))
-    (exists ((z1 strd))
-     (and (p "resp" z1 2) (p "resp" "b" z1 a)))))
-  (comment "Initiator authentication goal")
-  (comment "Same as unilateral goal under the predicate mapping:")
-  (comment (p "init" "n") "->" (p "init" "n1") "and")
-  (comment (p "init" "a") "->" (p "init" "b") "and")
-  (comment (p "resp" "a") "->" (p "resp" "b")))
-
-;;; Does responder satisfy the unilateral authentication goal?
-
-(defgoal ns
-  (forall ((a name) (n text) (z0 strd))
-   (implies
-    (and (p "resp" z0 3) (p "resp" "n2" z0 n)
-     (p "resp" "a" z0 a) (non (privk a)) (uniq n))
-    (exists ((z1 strd))
-     (and (p "init" z1 3) (p "init" "a" z1 a)))))
-  (comment "Responder authentication goal")
-  (comment "Same as unilateral goal under the predicate mapping:")
-  (comment (p "init" 1) "->" (p "resp" 2) "and")
-  (comment (p "init" "n") "->" (p "resp" "n2") "and")
-  (comment (p "init" "a") "->" (p "resp" "a") "and")
-  (comment (p "resp" 1) "->" (p "init" 2) "and")
-  (comment (p "resp" "a") "->" (p "init" "a")))
-
-(defgoal ns
-  (forall ((a b name) (n text) (z0 strd))
-    (implies
-     (and
-      (p "init" z0 2) (p "init" "n1" z0 n)
-      (p "init" "a" z0 a) (p "init" "b" z0 b)
-      (non (privk a)) (non (privk b)) (uniq n))
-     (exists ((z1 strd))
-      (and (p "resp" z1 2) (p "resp" "b" z1 b)))))
-  (forall ((a b name) (n text) (z0 strd))
-   (implies
-     (and
-      (p "init" z0 2) (p "init" "n1" z0 n)
-      (p "init" "a" z0 a) (p "init" "b" z0 b)
-      (non (privk a)) (non (privk b)) (uniq n))
-     (exists ((z1 strd))
-      (and (p "resp" z1 2) (p "resp" "a" z1 a)))))
-  (comment "Two initiator authentication goals"))
-
-;;; The shape analysis sentence as input (kind of useless)
-
-(defgoal ns
-  (forall ((n1 n2 text) (b a name) (z strd))
-    (implies
-      (and (p "init" z 3) (p "init" "n1" z n1) (p "init" "n2" z n2)
-        (p "init" "a" z a) (p "init" "b" z b) (non (privk b))
-        (uniq-at n1 z 0))
-      (exists ((n2-0 text) (z-0 strd))
-        (and (p "resp" z-0 2) (p "resp" "n2" z-0 n2-0)
-          (p "resp" "n1" z-0 n1) (p "resp" "b" z-0 b)
-          (p "resp" "a" z-0 a) (prec z 0 z-0 0) (prec z-0 1 z 1)))))
-  (comment "Shape analysis sentence"))
-
-;;; Section 2 --- Additional Examples
-
-(defgoal ns
-  (forall ((a b name) (n2 text) (z0 z1 strd))
-    (implies
-     (and
-      (p "resp" z0 3) (p "resp" "n2" z0 n2)
-      (p "resp" "a" z0 a) (p "resp" "b" z0 b)
-      (p "" z1 1) (p "" "x" z1 n2)
-      (non (privk a)) (non (privk b)) (uniq n2))
-     (false)))
-  (comment "Responder point of view")
-  (comment "Failed secrecy goal: nonce n2 not revealed"))
-
-;;; Double initiator point of view
-(defskeleton ns
-  (vars (a b name) (n1 n1-0 text))
-  (defstrand init 3 (a a) (b b) (n1 n1))
-  (defstrand init 3 (a a) (b b) (n1 n1-0))
-  (non-orig (privk b) (privk a))
-  (uniq-orig n1 n1-0)
-  (goals
-  (forall ((n1 n1-0 n2 n2-0 text) (a b name) (z z-0 strd))
-    (implies
-      (and (p "init" z 3) (p "init" z-0 3) (p "init" "n1" z n1)
-        (p "init" "n2" z n2) (p "init" "a" z a) (p "init" "b" z b)
-        (p "init" "n1" z-0 n1-0) (p "init" "n2" z-0 n2-0)
-        (p "init" "a" z-0 a) (p "init" "b" z-0 b) (non (privk a))
-        (non (privk b)) (uniq-at n1 z 0) (uniq-at n1-0 z-0 0))
-      (= z z-0))))
-  (comment "Double initiator point of view"))
-
-(defprotocol nsl-typeless basic
-  (defrole init
-    (vars (a b name) (n1 text) (n2 mesg))
-    (trace
-     (send (enc a n1 (pubk b)))
-     (recv (enc n1 n2 b (pubk a)))
-     (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a name) (n2 text) (n1 mesg))
-    (trace
-     (recv (enc a n1 (pubk b)))
-     (send (enc n1 n2 b (pubk a)))
-     (recv (enc n2 (pubk b)))))
-  (comment "Needham-Schroeder-Lowe with untyped nonces"))
-
-;;; The responder point of view
-(defgoal nsl-typeless
-  (forall ((n2 text) (a b name) (z z-0 strd))
-    (implies
-      (and (p "resp" z 2) (p "" z-0 1)
-        (p "resp" "n2" z n2) (p "resp" "b" z b) (p "resp" "a" z a)
-        (p "" "x" z-0 n2) (non (privk a)) (non (privk b)) (uniq n2))
-      (false)))
-  (comment "Shows typeflaw in typeless NSL"))
diff --git a/doc/examples/goals.xhtml b/doc/examples/goals.xhtml
deleted file mode 100644
--- a/doc/examples/goals.xhtml
+++ /dev/null
@@ -1,3441 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>goals</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(herald goals)
-(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from goals.scm&quot;)</pre>
-
-<p id="top">Trees: <a href="#t0">0</a> <a href="#t2">2</a> <a href="#t4">4</a> <a href="#t6">6</a> <a href="#t8">8</a> <a href="#t17">17</a> <a href="#t19">19</a> <a href="#t21">21</a> <a href="#t23">23</a> <a href="#t26">26</a> <a href="#t28">28</a> <a href="#t33">33</a> <a href="#t41">41</a>.</p>
-
-<p id="t0">Tree <a href="#top">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k1&quot;, &quot;_self&quot;)'>1</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol ns basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
-      (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
-      (recv (enc n2 (pubk b)))))
-  (comment &quot;Needham-Schroeder with no role origination assumptions&quot;))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='39.960' y='39.960' style='text-anchor: middle;'>ns 0</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n2 text) (b a name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (non-orig (privk b))
-  (uniq-orig n1)
-  (goals
-    (forall ((b name) (n1 text) (z0 strd))
-      (implies
-        (and (p &quot;init&quot; z0 3) (p &quot;init&quot; &quot;n1&quot; z0 n1) (p &quot;init&quot; &quot;b&quot; z0 b)
-          (non (privk b)) (uniq n1))
-        (exists ((z1 strd))
-          (and (p &quot;resp&quot; z1 2) (p &quot;resp&quot; &quot;b&quot; z1 b))))))
-  (comment &quot;Initiator point of view&quot;
-    &quot;Authentication goal: agreement on name b&quot;)
-  (label 0)
-  (unrealized (0 1))
-  (origs (n1 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2-0 (pubk a))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n2-0) (n1 n1) (b b) (a a))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>ns 1 (realized)</text></svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n2 n2-0 text) (b a name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk b))
-  (uniq-orig n1)
-  (operation nonce-test (added-strand resp 2) n1 (0 1)
-    (enc n1 a (pubk b)))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (satisfies yes)
-  (maps ((0) ((b b) (n1 n1) (a a) (n2 n2))))
-  (origs (n1 (0 0))))</pre>
-
-<p id="t2">Tree <a href="#top">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k3&quot;, &quot;_self&quot;)'>3</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k2&quot;, &quot;_self&quot;)'>2</text>
-  </svg></div>
-
-<pre>(defprotocol ns basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
-      (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
-      (recv (enc n2 (pubk b)))))
-  (comment &quot;Needham-Schroeder with no role origination assumptions&quot;))</pre>
-
-<p id="k2">Item <a href="#t2">2</a>, Child: <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='39.960' y='39.960' style='text-anchor: middle;'>ns 2</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n2 text) (b a name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (non-orig (privk b))
-  (uniq-orig n1)
-  (goals
-    (forall ((b name) (n1 text) (z0 strd))
-      (implies
-        (and (p &quot;init&quot; z0 3) (p &quot;init&quot; &quot;n1&quot; z0 n1) (p &quot;init&quot; &quot;b&quot; z0 b)
-          (non (privk b)) (uniq n1))
-        (exists ((z1 strd))
-          (and (p &quot;resp&quot; z1 2) (p &quot;resp&quot; &quot;b&quot; z1 b) (prec z1 1 z0 2))))))
-  (comment &quot;Prec example&quot;)
-  (label 2)
-  (unrealized (0 1))
-  (origs (n1 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k3">Item <a href="#t2">3</a>, Parent: <a href="#k2">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2-0 (pubk a))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n2-0) (n1 n1) (b b) (a a))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>ns 3 (realized)</text></svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n2 n2-0 text) (b a name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk b))
-  (uniq-orig n1)
-  (operation nonce-test (added-strand resp 2) n1 (0 1)
-    (enc n1 a (pubk b)))
-  (label 3)
-  (parent 2)
-  (unrealized)
-  (shape)
-  (satisfies yes)
-  (maps ((0) ((b b) (n1 n1) (a a) (n2 n2))))
-  (origs (n1 (0 0))))</pre>
-
-<p id="t4">Tree <a href="#top">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k5&quot;, &quot;_self&quot;)'>5</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k4&quot;, &quot;_self&quot;)'>4</text>
-  </svg></div>
-
-<pre>(defprotocol ns basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
-      (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
-      (recv (enc n2 (pubk b)))))
-  (comment &quot;Needham-Schroeder with no role origination assumptions&quot;))</pre>
-
-<p id="k4">Item <a href="#t4">4</a>, Child: <a href="#k5">5</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n2) (n1 n1) (b b) (a a))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text x='39.960' y='39.960' style='text-anchor: middle;'>ns 4</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n2 n1 text) (a b name))
-  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
-  (non-orig (privk a))
-  (uniq-orig n2)
-  (goals
-    (forall ((a b name) (n2 text) (z0 strd))
-      (implies
-        (and (p &quot;resp&quot; z0 3) (p &quot;resp&quot; &quot;n2&quot; z0 n2) (p &quot;resp&quot; &quot;a&quot; z0 a)
-          (p &quot;resp&quot; &quot;b&quot; z0 b) (non (privk a)) (uniq n2))
-        (exists ((z1 strd))
-          (and (p &quot;init&quot; z1 2) (p &quot;init&quot; &quot;b&quot; z1 b))))))
-  (comment &quot;Responder point of view&quot;
-    &quot;Failed authentication goal: agreement on name b&quot;)
-  (label 4)
-  (unrealized (0 2))
-  (origs (n2 (0 1)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k5">Item <a href="#t4">5</a>, Parent: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n2 (pubk b-0))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b-0))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n2 n2) (n1 n1) (b b) (a a))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>ns 5 (realized)</text></svg></div>
-
-<pre>(defskeleton ns
-  (vars (n2 n1 text) (a b b-0 name))
-  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0))
-  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
-  (non-orig (privk a))
-  (uniq-orig n2)
-  (operation nonce-test (added-strand init 3) n2 (0 2)
-    (enc n1 n2 (pubk a)))
-  (label 5)
-  (parent 4)
-  (unrealized)
-  (shape)
-  (satisfies (no (a a) (b b) (n2 n2) (z0 0)))
-  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
-  (origs (n2 (0 1))))</pre>
-
-<p id="t6">Tree <a href="#top">6</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k7&quot;, &quot;_self&quot;)'>7</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k6&quot;, &quot;_self&quot;)'>6</text>
-  </svg></div>
-
-<pre>(defprotocol nsl basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
-      (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 b (pubk a)))
-      (recv (enc n2 (pubk b)))))
-  (comment
-    &quot;Needham-Schroeder-Lowe with no role origination assumptions&quot;))</pre>
-
-<p id="k6">Item <a href="#t6">6</a>, Child: <a href="#k7">7</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 b (pubk a))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n2) (n1 n1) (b b) (a a))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text x='39.960' y='39.960' style='text-anchor: middle;'>nsl 6</text>
-  </svg></div>
-
-<pre>(defskeleton nsl
-  (vars (n2 n1 text) (a b name))
-  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
-  (non-orig (privk a))
-  (uniq-orig n2)
-  (goals
-    (forall ((a b name) (n2 text) (z0 strd))
-      (implies
-        (and (p &quot;resp&quot; z0 3) (p &quot;resp&quot; &quot;n2&quot; z0 n2) (p &quot;resp&quot; &quot;a&quot; z0 a)
-          (p &quot;resp&quot; &quot;b&quot; z0 b) (non (privk a)) (uniq n2))
-        (exists ((z1 strd))
-          (and (p &quot;init&quot; z1 2) (p &quot;init&quot; &quot;b&quot; z1 b))))))
-  (comment &quot;Responder point of view&quot;
-    &quot;Authentication goal: agreement on name b&quot;)
-  (label 6)
-  (unrealized (0 2))
-  (origs (n2 (0 1)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k7">Item <a href="#t6">7</a>, Parent: <a href="#k6">6</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 b (pubk a))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2 b (pubk a))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n2 n2) (n1 n1) (b b) (a a))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>nsl 7 (realized)</text></svg></div>
-
-<pre>(defskeleton nsl
-  (vars (n2 n1 text) (a b name))
-  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
-  (non-orig (privk a))
-  (uniq-orig n2)
-  (operation nonce-test (added-strand init 3) n2 (0 2)
-    (enc n1 n2 b (pubk a)))
-  (label 7)
-  (parent 6)
-  (unrealized)
-  (shape)
-  (satisfies yes)
-  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
-  (origs (n2 (0 1))))</pre>
-
-<p id="t8">Tree <a href="#top">8</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.440pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.440 229.920' font-size='12.000'>
-  <text
-   x='289.560' y='176.040'
-   style='font-style: italic; text-anchor: middle; fill: orange;'
-   onclick='window.open(&quot;#k15&quot;, &quot;_self&quot;)'>15</text>
-  <line
-   x1='239.640' y1='189.960' x2='289.560' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='176.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k13&quot;, &quot;_self&quot;)'>13</text>
-  <line
-   x1='189.720' y1='114.960' x2='239.640' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='339.480' y='101.040'
-   style='font-style: italic; text-anchor: middle; fill: orange;'
-   onclick='window.open(&quot;#k16&quot;, &quot;_self&quot;)'>16</text>
-  <line
-   x1='289.560' y1='114.960' x2='339.480' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='289.560' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k15&quot;, &quot;_self&quot;)'>15</text>
-  <line
-   x1='239.640' y1='77.460' x2='289.560' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='339.480' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k16&quot;, &quot;_self&quot;)'>16</text>
-  <line
-   x1='289.560' y1='39.960' x2='339.480' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='289.560' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k14&quot;, &quot;_self&quot;)'>14</text>
-  <line
-   x1='239.640' y1='77.460' x2='289.560' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='63.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k12&quot;, &quot;_self&quot;)'>12</text>
-  <line
-   x1='189.720' y1='114.960' x2='239.640' y2='77.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='101.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k11&quot;, &quot;_self&quot;)'>11</text>
-  <line
-   x1='139.800' y1='114.960' x2='189.720' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='101.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k10&quot;, &quot;_self&quot;)'>10</text>
-  <line
-   x1='89.880' y1='114.960' x2='139.800' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='101.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k9&quot;, &quot;_self&quot;)'>9</text>
-  <line
-   x1='39.960' y1='114.960' x2='89.880' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='101.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k8&quot;, &quot;_self&quot;)'>8</text>
-  </svg></div>
-
-<pre>(defprotocol ns basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
-      (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
-      (recv (enc n2 (pubk b)))))
-  (comment &quot;Needham-Schroeder with no role origination assumptions&quot;))</pre>
-
-<p id="k8">Item <a href="#t8">8</a>, Child: <a href="#k9">9</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>n1</title><circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>n1</title>
-   <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>ns 8</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n2 text) (a b name))
-  (deflistener n1)
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1)
-  (goals
-    (forall ((a b name) (n1 text) (z0 z1 strd))
-      (implies
-        (and (p &quot;init&quot; z0 3) (p &quot;init&quot; &quot;n1&quot; z0 n1) (p &quot;init&quot; &quot;a&quot; z0 a)
-          (p &quot;init&quot; &quot;b&quot; z0 b) (p &quot;&quot; z1 1) (p &quot;&quot; &quot;x&quot; z1 n1)
-          (non (privk a)) (non (privk b)) (uniq n1)) (false))))
-  (comment &quot;Initiator point of view&quot;
-    &quot;Secrecy goal: nonce n1 not revealed&quot;)
-  (label 8)
-  (unrealized (0 0) (1 1))
-  (origs (n1 (1 0)))
-  (preskeleton)
-  (comment &quot;Not a skeleton&quot;))</pre>
-
-<p id="k9">Item <a href="#t8">9</a>, Parent: <a href="#k8">8</a>, Child: <a href="#k10">10</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>n1</title><circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>n1</title>
-   <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>ns 9</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n2 text) (a b name))
-  (deflistener n1)
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (precedes ((1 0) (0 0)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1)
-  (goals
-    (forall ((a b name) (n1 text) (z0 z1 strd))
-      (implies
-        (and (p &quot;init&quot; z0 3) (p &quot;init&quot; &quot;n1&quot; z0 n1) (p &quot;init&quot; &quot;a&quot; z0 a)
-          (p &quot;init&quot; &quot;b&quot; z0 b) (p &quot;&quot; z1 1) (p &quot;&quot; &quot;x&quot; z1 n1)
-          (non (privk a)) (non (privk b)) (uniq n1)) (false))))
-  (comment &quot;Initiator point of view&quot;
-    &quot;Secrecy goal: nonce n1 not revealed&quot;)
-  (label 9)
-  (parent 8)
-  (unrealized (0 0) (1 1))
-  (origs (n1 (1 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k10">Item <a href="#t8">10</a>, Parent: <a href="#k9">9</a>, Child: <a href="#k11">11</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2-0 (pubk a))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 139.920 114.960 Q 186.900 114.960 233.880 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>n1</title><circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>n1</title>
-   <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n2-0) (n1 n1) (b b) (a a))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='139.920' y='39.960' style='text-anchor: middle;'>ns 10</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n2 n2-0 text) (a b name))
-  (deflistener n1)
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
-  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (1 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1)
-  (operation nonce-test (added-strand resp 2) n1 (1 1)
-    (enc n1 a (pubk b)))
-  (label 10)
-  (parent 9)
-  (unrealized (0 0) (1 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k11">Item <a href="#t8">11</a>, Parent: <a href="#k10">10</a>, Children: <a href="#k12">12</a> <a href="#k13">13</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 139.920 114.960 Q 186.900 114.960 233.880 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>n1</title><circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>n1</title>
-   <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n2) (n1 n1) (b b) (a a))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='139.920' y='39.960' style='text-anchor: middle;'>ns 11</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n2 text) (a b name))
-  (deflistener n1)
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
-  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (1 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1)
-  (operation nonce-test (contracted (n2-0 n2)) n1 (1 1)
-    (enc n1 n2 (pubk a)) (enc n1 a (pubk b)))
-  (label 11)
-  (parent 10)
-  (unrealized (0 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k12">Item <a href="#t8">12</a>, Parent: <a href="#k11">11</a>, Children: <a href="#k14">14</a> <a href="#k15">15</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='189.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 186.900 114.960 233.880 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>n1</title><circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>n1</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>((n2 n2) (n1 n1) (b b) (a a))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='139.920' y='39.960' style='text-anchor: middle;'>ns 12</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n2 text) (a b name))
-  (deflistener n1)
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
-  (precedes ((1 0) (2 0)) ((2 1) (0 0)) ((2 1) (1 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1)
-  (operation nonce-test (displaced 3 2 resp 2) n1 (0 0)
-    (enc n1 a (pubk b)))
-  (label 12)
-  (parent 11)
-  (unrealized (0 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k13">Item <a href="#t8">13</a>, Parent: <a href="#k11">11</a>, Seen Child: <a href="#k15">15</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='189.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2-0 (pubk a))</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 186.900 114.960 233.880 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 139.920 114.960 Q 236.880 77.460 333.840 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>n1</title><circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>n1</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>((n2 n2-0) (n1 n1) (b b) (a a))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n2 n2) (n1 n1) (b b) (a a))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='189.900' y='39.960' style='text-anchor: middle;'>ns 13</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n2 n2-0 text) (a b name))
-  (deflistener n1)
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
-  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((2 1) (1 1)) ((3 1) (0 0)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1)
-  (operation nonce-test (added-strand resp 2) n1 (0 0)
-    (enc n1 a (pubk b)))
-  (label 13)
-  (parent 11)
-  (seen 15)
-  (unrealized (0 0))
-  (comment &quot;1 in cohort - 0 not yet seen&quot;))</pre>
-
-<p id="k14">Item <a href="#t8">14</a>, Parent: <a href="#k12">12</a>, Child: <a href="#k16">16</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='264.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n2 n2 (pubk a))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n2 a (pubk b))</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n2 n2 (pubk a))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 186.900 114.960 233.880 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n2 a (pubk b))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>n2</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>((n2 n2) (n1 n2) (b b) (a a))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n2) (n2 n2) (a a) (b b))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='139.920' y='39.960' style='text-anchor: middle;'>ns 14</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n2 text) (a b name))
-  (deflistener n2)
-  (defstrand init 3 (n1 n2) (n2 n2) (a a) (b b))
-  (defstrand resp 2 (n2 n2) (n1 n2) (b b) (a a))
-  (precedes ((1 0) (2 0)) ((1 2) (0 0)) ((2 1) (1 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n2)
-  (operation nonce-test (displaced 3 1 init 3) n2 (0 0)
-    (enc n2 n2 (pubk a)) (enc n2 a (pubk b)))
-  (label 14)
-  (parent 12)
-  (unrealized (0 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k15">Item <a href="#t8">15</a>, Parent: <a href="#k12">12</a>, Seen Child: <a href="#k16">16</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='189.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2-0 (pubk a))</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 186.900 114.960 233.880 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 139.920 114.960 Q 236.880 77.460 333.840 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>n1</title><circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>n1</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>((n2 n2-0) (n1 n1) (b b) (a a))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n2 n2) (n1 n1) (b b) (a a))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='189.900' y='39.960' style='text-anchor: middle;'>ns 15</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n2 n2-0 text) (a b name))
-  (deflistener n1)
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
-  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((2 1) (0 0)) ((2 1) (1 1))
-    ((3 1) (0 0)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1)
-  (operation nonce-test (added-strand resp 2) n1 (0 0)
-    (enc n1 n2 (pubk a)) (enc n1 a (pubk b)))
-  (label 15)
-  (parent 12)
-  (seen 16)
-  (unrealized (0 0))
-  (comment &quot;1 in cohort - 0 not yet seen&quot;))</pre>
-
-<p id="k16">Item <a href="#t8">16</a>, Parent: <a href="#k14">14</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='264.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 189.960 Q 192.810 189.232 45.781 263.504'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n2 n2-0 (pubk a))</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n2 a (pubk b))</title>
-   <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n2 n2 (pubk a))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n2 a (pubk b))</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n2 n2 (pubk a))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 186.900 114.960 233.880 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 139.920 114.960 Q 236.880 77.460 333.840 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n2 a (pubk b))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>n2</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>((n2 n2-0) (n1 n2) (b b) (a a))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n2 n2) (n1 n2) (b b) (a a))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n2) (n2 n2) (a a) (b b))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='189.900' y='39.960' style='text-anchor: middle;'>ns 16</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n2 n2-0 text) (a b name))
-  (deflistener n2)
-  (defstrand init 3 (n1 n2) (n2 n2) (a a) (b b))
-  (defstrand resp 2 (n2 n2) (n1 n2) (b b) (a a))
-  (defstrand resp 2 (n2 n2-0) (n1 n2) (b b) (a a))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 2) (0 0)) ((2 1) (1 1))
-    ((3 1) (0 0)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n2)
-  (operation nonce-test (added-strand resp 2) n2 (0 0) (enc n2 (pubk b))
-    (enc n2 n2 (pubk a)) (enc n2 a (pubk b)))
-  (label 16)
-  (parent 14)
-  (unrealized (0 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="t17">Tree <a href="#top">17</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k18&quot;, &quot;_self&quot;)'>18</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k17&quot;, &quot;_self&quot;)'>17</text>
-  </svg></div>
-
-<pre>(defprotocol unilateral basic
-  (defrole init
-    (vars (a name) (n text))
-    (trace (send (enc n (pubk a))) (recv n)))
-  (defrole resp
-    (vars (a name) (n text))
-    (trace (recv (enc n (pubk a))) (send n)))
-  (comment &quot;Unilateral authentication&quot;))</pre>
-
-<p id="k17">Item <a href="#t17">17</a>, Child: <a href="#k18">18</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n (pubk a))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n n) (a a))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>unilateral 17</text></svg></div>
-
-<pre>(defskeleton unilateral
-  (vars (n text) (a name))
-  (defstrand init 2 (n n) (a a))
-  (non-orig (privk a))
-  (uniq-orig n)
-  (goals
-    (forall ((a name) (n text) (z0 strd))
-      (implies
-        (and (p &quot;init&quot; z0 2) (p &quot;init&quot; &quot;n&quot; z0 n) (p &quot;init&quot; &quot;a&quot; z0 a)
-          (non (privk a)) (uniq n))
-        (exists ((z1 strd))
-          (and (p &quot;resp&quot; z1 2) (p &quot;resp&quot; &quot;a&quot; z1 a))))))
-  (comment &quot;Unilateral authentication goal&quot;)
-  (label 17)
-  (unrealized (0 1))
-  (origs (n (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k18">Item <a href="#t17">18</a>, Parent: <a href="#k17">17</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>n</title><circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n (pubk a))</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>n</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n (pubk a))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n n) (a a))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n n) (a a))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>unilateral 18 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton unilateral
-  (vars (n text) (a name))
-  (defstrand init 2 (n n) (a a))
-  (defstrand resp 2 (n n) (a a))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a))
-  (uniq-orig n)
-  (operation nonce-test (added-strand resp 2) n (0 1) (enc n (pubk a)))
-  (label 18)
-  (parent 17)
-  (unrealized)
-  (shape)
-  (satisfies yes)
-  (maps ((0) ((a a) (n n))))
-  (origs (n (0 0))))</pre>
-
-<p id="t19">Tree <a href="#top">19</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k20&quot;, &quot;_self&quot;)'>20</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k19&quot;, &quot;_self&quot;)'>19</text>
-  </svg></div>
-
-<pre>(defprotocol ns basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
-      (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
-      (recv (enc n2 (pubk b)))))
-  (comment &quot;Needham-Schroeder with no role origination assumptions&quot;))</pre>
-
-<p id="k19">Item <a href="#t19">19</a>, Child: <a href="#k20">20</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n n2 (pubk a-0))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n a-0 (pubk a))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n) (n2 n2) (a a-0) (b a))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='39.960' y='39.960' style='text-anchor: middle;'>ns 19</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n n2 text) (a a-0 name))
-  (defstrand init 2 (n1 n) (n2 n2) (a a-0) (b a))
-  (non-orig (privk a))
-  (uniq-orig n)
-  (goals
-    (forall ((a name) (n text) (z0 strd))
-      (implies
-        (and (p &quot;init&quot; z0 2) (p &quot;init&quot; &quot;n1&quot; z0 n) (p &quot;init&quot; &quot;b&quot; z0 a)
-          (non (privk a)) (uniq n))
-        (exists ((z1 strd))
-          (and (p &quot;resp&quot; z1 2) (p &quot;resp&quot; &quot;b&quot; z1 a))))))
-  (comment &quot;Initiator authentication goal&quot;
-    &quot;Same as unilateral goal under the predicate mapping:&quot;
-    (p &quot;init&quot; &quot;n&quot;) &quot;-&gt;&quot; (p &quot;init&quot; &quot;n1&quot;) &quot;and&quot; (p &quot;init&quot; &quot;a&quot;) &quot;-&gt;&quot;
-    (p &quot;init&quot; &quot;b&quot;) &quot;and&quot; (p &quot;resp&quot; &quot;a&quot;) &quot;-&gt;&quot; (p &quot;resp&quot; &quot;b&quot;))
-  (label 19)
-  (unrealized (0 1))
-  (origs (n (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k20">Item <a href="#t19">20</a>, Parent: <a href="#k19">19</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n n2-0 (pubk a-0))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n a-0 (pubk a))</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n n2 (pubk a-0))</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n a-0 (pubk a))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n2-0) (n1 n) (b a) (a a-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n) (n2 n2) (a a-0) (b a))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>ns 20 (realized)</text></svg></div>
-
-<pre>(defskeleton ns
-  (vars (n n2 n2-0 text) (a a-0 name))
-  (defstrand init 2 (n1 n) (n2 n2) (a a-0) (b a))
-  (defstrand resp 2 (n2 n2-0) (n1 n) (b a) (a a-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a))
-  (uniq-orig n)
-  (operation nonce-test (added-strand resp 2) n (0 1)
-    (enc n a-0 (pubk a)))
-  (label 20)
-  (parent 19)
-  (unrealized)
-  (shape)
-  (satisfies yes)
-  (maps ((0) ((a a) (n n) (a-0 a-0) (n2 n2))))
-  (origs (n (0 0))))</pre>
-
-<p id="t21">Tree <a href="#top">21</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k22&quot;, &quot;_self&quot;)'>22</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k21&quot;, &quot;_self&quot;)'>21</text>
-  </svg></div>
-
-<pre>(defprotocol ns basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
-      (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
-      (recv (enc n2 (pubk b)))))
-  (comment &quot;Needham-Schroeder with no role origination assumptions&quot;))</pre>
-
-<p id="k21">Item <a href="#t21">21</a>, Child: <a href="#k22">22</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n (pubk b))</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n (pubk a))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n) (n1 n1) (b b) (a a))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text x='39.960' y='39.960' style='text-anchor: middle;'>ns 21</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n n1 text) (a b name))
-  (defstrand resp 3 (n2 n) (n1 n1) (b b) (a a))
-  (non-orig (privk a))
-  (uniq-orig n)
-  (goals
-    (forall ((a name) (n text) (z0 strd))
-      (implies
-        (and (p &quot;resp&quot; z0 3) (p &quot;resp&quot; &quot;n2&quot; z0 n) (p &quot;resp&quot; &quot;a&quot; z0 a)
-          (non (privk a)) (uniq n))
-        (exists ((z1 strd))
-          (and (p &quot;init&quot; z1 3) (p &quot;init&quot; &quot;a&quot; z1 a))))))
-  (comment &quot;Responder authentication goal&quot;
-    &quot;Same as unilateral goal under the predicate mapping:&quot; (p &quot;init&quot; 1)
-    &quot;-&gt;&quot; (p &quot;resp&quot; 2) &quot;and&quot; (p &quot;init&quot; &quot;n&quot;) &quot;-&gt;&quot; (p &quot;resp&quot; &quot;n2&quot;) &quot;and&quot;
-    (p &quot;init&quot; &quot;a&quot;) &quot;-&gt;&quot; (p &quot;resp&quot; &quot;a&quot;) &quot;and&quot; (p &quot;resp&quot; 1) &quot;-&gt;&quot;
-    (p &quot;init&quot; 2) &quot;and&quot; (p &quot;resp&quot; &quot;a&quot;) &quot;-&gt;&quot; (p &quot;init&quot; &quot;a&quot;))
-  (label 21)
-  (unrealized (0 2))
-  (origs (n (0 1)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k22">Item <a href="#t21">22</a>, Parent: <a href="#k21">21</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n (pubk b-0))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n (pubk a))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b-0))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n (pubk b))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n (pubk a))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n) (a a) (b b-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n2 n) (n1 n1) (b b) (a a))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>ns 22 (realized)</text></svg></div>
-
-<pre>(defskeleton ns
-  (vars (n n1 text) (a b b-0 name))
-  (defstrand resp 3 (n2 n) (n1 n1) (b b) (a a))
-  (defstrand init 3 (n1 n1) (n2 n) (a a) (b b-0))
-  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
-  (non-orig (privk a))
-  (uniq-orig n)
-  (operation nonce-test (added-strand init 3) n (0 2)
-    (enc n1 n (pubk a)))
-  (label 22)
-  (parent 21)
-  (unrealized)
-  (shape)
-  (satisfies yes)
-  (maps ((0) ((a a) (n n) (b b) (n1 n1))))
-  (origs (n (0 1))))</pre>
-
-<p id="t23">Tree <a href="#top">23</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.760pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.760 79.920' font-size='12.000'>
-  <text
-   x='139.800' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k25&quot;, &quot;_self&quot;)'>25</text>
-  <line
-   x1='89.880' y1='39.960' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k24&quot;, &quot;_self&quot;)'>24</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k23&quot;, &quot;_self&quot;)'>23</text>
-  </svg></div>
-
-<pre>(defprotocol ns basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
-      (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
-      (recv (enc n2 (pubk b)))))
-  (comment &quot;Needham-Schroeder with no role origination assumptions&quot;))</pre>
-
-<p id="k23">Item <a href="#t23">23</a>, Child: <a href="#k24">24</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n n2 (pubk a))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n a (pubk b))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n) (n2 n2) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='39.960' y='39.960' style='text-anchor: middle;'>ns 23</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n n2 text) (a b name))
-  (defstrand init 2 (n1 n) (n2 n2) (a a) (b b))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n)
-  (goals
-    (forall ((a b name) (n text) (z0 strd))
-      (implies
-        (and (p &quot;init&quot; z0 2) (p &quot;init&quot; &quot;n1&quot; z0 n) (p &quot;init&quot; &quot;a&quot; z0 a)
-          (p &quot;init&quot; &quot;b&quot; z0 b) (non (privk a)) (non (privk b)) (uniq n))
-        (exists ((z1 strd)) (and (p &quot;resp&quot; z1 2) (p &quot;resp&quot; &quot;b&quot; z1 b)))))
-    (forall ((a b name) (n text) (z0 strd))
-      (implies
-        (and (p &quot;init&quot; z0 2) (p &quot;init&quot; &quot;n1&quot; z0 n) (p &quot;init&quot; &quot;a&quot; z0 a)
-          (p &quot;init&quot; &quot;b&quot; z0 b) (non (privk a)) (non (privk b)) (uniq n))
-        (exists ((z1 strd))
-          (and (p &quot;resp&quot; z1 2) (p &quot;resp&quot; &quot;a&quot; z1 a))))))
-  (comment &quot;Two initiator authentication goals&quot;)
-  (label 23)
-  (unrealized (0 1))
-  (origs (n (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k24">Item <a href="#t23">24</a>, Parent: <a href="#k23">23</a>, Child: <a href="#k25">25</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n n2-0 (pubk a))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n a (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n n2 (pubk a))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n a (pubk b))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n2-0) (n1 n) (b b) (a a))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n) (n2 n2) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>ns 24</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n n2 n2-0 text) (a b name))
-  (defstrand init 2 (n1 n) (n2 n2) (a a) (b b))
-  (defstrand resp 2 (n2 n2-0) (n1 n) (b b) (a a))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n)
-  (operation nonce-test (added-strand resp 2) n (0 1)
-    (enc n a (pubk b)))
-  (label 24)
-  (parent 23)
-  (unrealized (0 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k25">Item <a href="#t23">25</a>, Parent: <a href="#k24">24</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n n2 (pubk a))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n a (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n n2 (pubk a))</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n a (pubk b))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n2) (n1 n) (b b) (a a))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n) (n2 n2) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>ns 25 (realized)</text></svg></div>
-
-<pre>(defskeleton ns
-  (vars (n n2 text) (a b name))
-  (defstrand init 2 (n1 n) (n2 n2) (a a) (b b))
-  (defstrand resp 2 (n2 n2) (n1 n) (b b) (a a))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n)
-  (operation nonce-test (contracted (n2-0 n2)) n (0 1)
-    (enc n n2 (pubk a)) (enc n a (pubk b)))
-  (label 25)
-  (parent 24)
-  (unrealized)
-  (shape)
-  (satisfies yes yes)
-  (maps ((0) ((a a) (b b) (n n) (n2 n2))))
-  (origs (n (0 0))))</pre>
-
-<p id="t26">Tree <a href="#top">26</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k27&quot;, &quot;_self&quot;)'>27</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k26&quot;, &quot;_self&quot;)'>26</text>
-  </svg></div>
-
-<pre>(defprotocol ns basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
-      (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
-      (recv (enc n2 (pubk b)))))
-  (comment &quot;Needham-Schroeder with no role origination assumptions&quot;))</pre>
-
-<p id="k26">Item <a href="#t26">26</a>, Child: <a href="#k27">27</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='39.960' y='39.960' style='text-anchor: middle;'>ns 26</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n2 text) (b a name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (non-orig (privk b))
-  (uniq-orig n1)
-  (goals
-    (forall ((n1 n2 text) (b a name) (z strd))
-      (implies
-        (and (p &quot;init&quot; z 3) (p &quot;init&quot; &quot;n1&quot; z n1) (p &quot;init&quot; &quot;n2&quot; z n2)
-          (p &quot;init&quot; &quot;a&quot; z a) (p &quot;init&quot; &quot;b&quot; z b) (non (privk b))
-          (uniq-at n1 z 0))
-        (exists ((n2-0 text) (z-0 strd))
-          (and (p &quot;resp&quot; z-0 2) (p &quot;resp&quot; &quot;n2&quot; z-0 n2-0)
-            (p &quot;resp&quot; &quot;n1&quot; z-0 n1) (p &quot;resp&quot; &quot;b&quot; z-0 b)
-            (p &quot;resp&quot; &quot;a&quot; z-0 a) (prec z 0 z-0 0) (prec z-0 1 z 1))))))
-  (comment &quot;Shape analysis sentence&quot;)
-  (label 26)
-  (unrealized (0 1))
-  (origs (n1 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k27">Item <a href="#t26">27</a>, Parent: <a href="#k26">26</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2-0 (pubk a))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n2-0) (n1 n1) (b b) (a a))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>ns 27 (realized)</text></svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n2 n2-0 text) (b a name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk b))
-  (uniq-orig n1)
-  (operation nonce-test (added-strand resp 2) n1 (0 1)
-    (enc n1 a (pubk b)))
-  (label 27)
-  (parent 26)
-  (unrealized)
-  (shape)
-  (satisfies yes)
-  (maps ((0) ((n1 n1) (n2 n2) (b b) (a a))))
-  (origs (n1 (0 0))))</pre>
-
-<p id="t28">Tree <a href="#top">28</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='229.680pt' height='154.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 229.680 154.920' font-size='12.000'>
-  <text
-   x='189.720' y='101.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k32&quot;, &quot;_self&quot;)'>32</text>
-  <line
-   x1='139.800' y1='77.460' x2='189.720' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k31&quot;, &quot;_self&quot;)'>31</text>
-  <line
-   x1='139.800' y1='77.460' x2='189.720' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k30&quot;, &quot;_self&quot;)'>30</text>
-  <line
-   x1='89.880' y1='77.460' x2='139.800' y2='77.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k29&quot;, &quot;_self&quot;)'>29</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='77.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k28&quot;, &quot;_self&quot;)'>28</text>
-  </svg></div>
-
-<pre>(defprotocol ns basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
-      (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
-      (recv (enc n2 (pubk b)))))
-  (comment &quot;Needham-Schroeder with no role origination assumptions&quot;))</pre>
-
-<p id="k28">Item <a href="#t28">28</a>, Child: <a href="#k29">29</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>n2</title><circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n2) (n1 n1) (b b) (a a))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>ns 28</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n2 n1 text) (a b name))
-  (deflistener n2)
-  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n2)
-  (goals
-    (forall ((a b name) (n2 text) (z0 z1 strd))
-      (implies
-        (and (p &quot;resp&quot; z0 3) (p &quot;resp&quot; &quot;n2&quot; z0 n2) (p &quot;resp&quot; &quot;a&quot; z0 a)
-          (p &quot;resp&quot; &quot;b&quot; z0 b) (p &quot;&quot; z1 1) (p &quot;&quot; &quot;x&quot; z1 n2)
-          (non (privk a)) (non (privk b)) (uniq n2)) (false))))
-  (comment &quot;Responder point of view&quot;
-    &quot;Failed secrecy goal: nonce n2 not revealed&quot;)
-  (label 28)
-  (unrealized (0 0) (1 2))
-  (origs (n2 (1 1)))
-  (preskeleton)
-  (comment &quot;Not a skeleton&quot;))</pre>
-
-<p id="k29">Item <a href="#t28">29</a>, Parent: <a href="#k28">28</a>, Child: <a href="#k30">30</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='189.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>n2</title><circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>((n2 n2) (n1 n1) (b b) (a a))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>ns 29</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n2 n1 text) (a b name))
-  (deflistener n2)
-  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
-  (precedes ((1 1) (0 0)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n2)
-  (goals
-    (forall ((a b name) (n2 text) (z0 z1 strd))
-      (implies
-        (and (p &quot;resp&quot; z0 3) (p &quot;resp&quot; &quot;n2&quot; z0 n2) (p &quot;resp&quot; &quot;a&quot; z0 a)
-          (p &quot;resp&quot; &quot;b&quot; z0 b) (p &quot;&quot; z1 1) (p &quot;&quot; &quot;x&quot; z1 n2)
-          (non (privk a)) (non (privk b)) (uniq n2)) (false))))
-  (comment &quot;Responder point of view&quot;
-    &quot;Failed secrecy goal: nonce n2 not revealed&quot;)
-  (label 29)
-  (parent 28)
-  (unrealized (0 0) (1 2))
-  (origs (n2 (1 1)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k30">Item <a href="#t28">30</a>, Parent: <a href="#k29">29</a>, Children: <a href="#k31">31</a> <a href="#k32">32</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='189.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n2 (pubk b-0))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b-0))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>n2</title><circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b-0))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n2 n2) (n1 n1) (b b) (a a))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text x='139.920' y='39.960' style='text-anchor: middle;'>ns 30</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n2 n1 text) (a b b-0 name))
-  (deflistener n2)
-  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0))
-  (precedes ((1 1) (0 0)) ((1 1) (2 1)) ((2 2) (1 2)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n2)
-  (operation nonce-test (added-strand init 3) n2 (1 2)
-    (enc n1 n2 (pubk a)))
-  (label 30)
-  (parent 29)
-  (unrealized (0 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k31">Item <a href="#t28">31</a>, Parent: <a href="#k30">30</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='264.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n2 (pubk b-0))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b-0))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>n2</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>n2</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b-0))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n2 n2) (n1 n1) (b b) (a a))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>ns 31 (realized)</text></svg></div>
-
-<pre>(defskeleton ns
-  (vars (n2 n1 text) (a b b-0 name))
-  (deflistener n2)
-  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0))
-  (precedes ((1 1) (2 1)) ((2 2) (0 0)) ((2 2) (1 2)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n2)
-  (operation nonce-test (displaced 3 2 init 3) n2 (0 0)
-    (enc n1 n2 (pubk a)))
-  (label 31)
-  (parent 30)
-  (unrealized)
-  (shape)
-  (satisfies (no (a a) (b b) (n2 n2) (z0 1) (z1 0)))
-  (maps ((0 1) ((a a) (b b) (n2 n2) (n1 n1))))
-  (origs (n2 (1 1))))</pre>
-
-<p id="k32">Item <a href="#t28">32</a>, Parent: <a href="#k30">30</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='264.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 264.960 Q 192.900 227.460 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n2 (pubk b-1))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b-1))</title>
-   <circle cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n2 (pubk b-0))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b-0))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 139.920 189.960 Q 236.880 152.460 333.840 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>n2</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>n2</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b-1))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b-0))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n2 n2) (n1 n1) (b b) (a a))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>ns 32 (realized)</text></svg></div>
-
-<pre>(defskeleton ns
-  (vars (n2 n1 text) (a b b-0 b-1 name))
-  (deflistener n2)
-  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-1))
-  (precedes ((1 1) (2 1)) ((1 1) (3 1)) ((2 2) (1 2)) ((3 2) (0 0)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n2)
-  (operation nonce-test (added-strand init 3) n2 (0 0)
-    (enc n1 n2 (pubk a)))
-  (label 32)
-  (parent 30)
-  (unrealized)
-  (shape)
-  (satisfies (no (a a) (b b) (n2 n2) (z0 1) (z1 0)))
-  (maps ((0 1) ((a a) (b b) (n2 n2) (n1 n1))))
-  (origs (n2 (1 1))))</pre>
-
-<p id="t33">Tree <a href="#top">33</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.600pt' height='154.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.600 154.920' font-size='12.000'>
-  <text
-   x='239.640' y='101.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k40&quot;, &quot;_self&quot;)'>40</text>
-  <line
-   x1='189.720' y1='114.960' x2='239.640' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='101.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k39&quot;, &quot;_self&quot;)'>39</text>
-  <line
-   x1='139.800' y1='114.960' x2='189.720' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='101.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k37&quot;, &quot;_self&quot;)'>37</text>
-  <line
-   x1='89.880' y1='114.960' x2='139.800' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='101.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k35&quot;, &quot;_self&quot;)'>35</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k38&quot;, &quot;_self&quot;)'>38</text>
-  <line
-   x1='139.800' y1='39.960' x2='189.720' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k36&quot;, &quot;_self&quot;)'>36</text>
-  <line
-   x1='89.880' y1='39.960' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k34&quot;, &quot;_self&quot;)'>34</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k33&quot;, &quot;_self&quot;)'>33</text>
-  </svg></div>
-
-<pre>(defprotocol ns basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
-      (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
-      (recv (enc n2 (pubk b)))))
-  (comment &quot;Needham-Schroeder with no role origination assumptions&quot;))</pre>
-
-<p id="k33">Item <a href="#t33">33</a>, Children: <a href="#k34">34</a> <a href="#k35">35</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n2-0 (pubk b))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1-0 n2-0 (pubk a))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1-0 a (pubk b))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1-0) (n2 n2-0) (a a) (b b))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>ns 33</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n1-0 n2 n2-0 text) (a b name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1 n1-0)
-  (subgoals
-    (forall ((n1 n1-0 n2 n2-0 text) (a b name) (z z-0 strd))
-      (implies
-        (and (p &quot;init&quot; z 3) (p &quot;init&quot; z-0 3) (p &quot;init&quot; &quot;n1&quot; z n1)
-          (p &quot;init&quot; &quot;n2&quot; z n2) (p &quot;init&quot; &quot;a&quot; z a) (p &quot;init&quot; &quot;b&quot; z b)
-          (p &quot;init&quot; &quot;n1&quot; z-0 n1-0) (p &quot;init&quot; &quot;n2&quot; z-0 n2-0)
-          (p &quot;init&quot; &quot;a&quot; z-0 a) (p &quot;init&quot; &quot;b&quot; z-0 b) (non (privk a))
-          (non (privk b)) (uniq-at n1 z 0) (uniq-at n1-0 z-0 0))
-        (= z z-0))))
-  (comment &quot;Double initiator point of view&quot;)
-  (label 33)
-  (unrealized (0 1) (1 1))
-  (origs (n1 (0 0)) (n1-0 (1 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k34">Item <a href="#t33">34</a>, Parent: <a href="#k33">33</a>, Child: <a href="#k36">36</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='39.960' y='39.960' style='text-anchor: middle;'>ns 34</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n2 text) (a b name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1)
-  (operation collapsed 1 0)
-  (label 34)
-  (parent 33)
-  (unrealized (0 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k35">Item <a href="#t33">35</a>, Parent: <a href="#k33">33</a>, Child: <a href="#k37">37</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1-0 n2-1 (pubk a))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1-0 a (pubk b))</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2-0 (pubk b))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1-0 n2-0 (pubk a))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 186.900 114.960 233.880 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1-0 a (pubk b))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n2-1) (n1 n1-0) (b b) (a a))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1-0) (n2 n2-0) (a a) (b b))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='139.920' y='39.960' style='text-anchor: middle;'>ns 35</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n1-0 n2 n2-0 n2-1 text) (a b name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b))
-  (defstrand resp 2 (n2 n2-1) (n1 n1-0) (b b) (a a))
-  (precedes ((1 0) (2 0)) ((2 1) (1 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1 n1-0)
-  (operation nonce-test (added-strand resp 2) n1-0 (1 1)
-    (enc n1-0 a (pubk b)))
-  (label 35)
-  (parent 33)
-  (unrealized (0 1) (1 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k36">Item <a href="#t33">36</a>, Parent: <a href="#k34">34</a>, Child: <a href="#k38">38</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2-0 (pubk a))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n2-0) (n1 n1) (b b) (a a))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>ns 36</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n2 n2-0 text) (a b name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1)
-  (operation nonce-test (added-strand resp 2) n1 (0 1)
-    (enc n1 a (pubk b)))
-  (label 36)
-  (parent 34)
-  (unrealized (0 1))
-  (origs (n1 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k37">Item <a href="#t33">37</a>, Parent: <a href="#k35">35</a>, Child: <a href="#k39">39</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1-0 n2-0 (pubk a))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1-0 a (pubk b))</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2-0 (pubk b))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1-0 n2-0 (pubk a))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 186.900 114.960 233.880 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1-0 a (pubk b))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n2-0) (n1 n1-0) (b b) (a a))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1-0) (n2 n2-0) (a a) (b b))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='139.920' y='39.960' style='text-anchor: middle;'>ns 37</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n1-0 n2 n2-0 text) (a b name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b))
-  (defstrand resp 2 (n2 n2-0) (n1 n1-0) (b b) (a a))
-  (precedes ((1 0) (2 0)) ((2 1) (1 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1 n1-0)
-  (operation nonce-test (contracted (n2-1 n2-0)) n1-0 (1 1)
-    (enc n1-0 n2-0 (pubk a)) (enc n1-0 a (pubk b)))
-  (label 37)
-  (parent 35)
-  (unrealized (0 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k38">Item <a href="#t33">38</a>, Parent: <a href="#k36">36</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n2) (n1 n1) (b b) (a a))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>ns 38 (realized)</text></svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n2 text) (a b name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1)
-  (operation nonce-test (contracted (n2-0 n2)) n1 (0 1)
-    (enc n1 n2 (pubk a)) (enc n1 a (pubk b)))
-  (label 38)
-  (parent 36)
-  (unrealized)
-  (shape)
-  (satisfies yes)
-  (maps ((0 0) ((a a) (b b) (n1 n1) (n1-0 n1) (n2 n2) (n2-0 n2))))
-  (origs (n1 (0 0))))</pre>
-
-<p id="k39">Item <a href="#t33">39</a>, Parent: <a href="#k37">37</a>, Child: <a href="#k40">40</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2-1 (pubk a))</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1-0 n2-0 (pubk a))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1-0 a (pubk b))</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2-0 (pubk b))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1-0 n2-0 (pubk a))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 186.900 114.960 233.880 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1-0 a (pubk b))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n2-1) (n1 n1) (b b) (a a))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n2 n2-0) (n1 n1-0) (b b) (a a))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1-0) (n2 n2-0) (a a) (b b))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='189.900' y='39.960' style='text-anchor: middle;'>ns 39</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n1-0 n2 n2-0 n2-1 text) (a b name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b))
-  (defstrand resp 2 (n2 n2-0) (n1 n1-0) (b b) (a a))
-  (defstrand resp 2 (n2 n2-1) (n1 n1) (b b) (a a))
-  (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((2 1) (1 1)) ((3 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1 n1-0)
-  (operation nonce-test (added-strand resp 2) n1 (0 1)
-    (enc n1 a (pubk b)))
-  (label 39)
-  (parent 37)
-  (unrealized (0 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k40">Item <a href="#t33">40</a>, Parent: <a href="#k39">39</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 189.960 Q 192.900 152.460 45.960 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2-0 (pubk a))</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1-0 n2 (pubk a))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1-0 a (pubk b))</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1-0 n2 (pubk a))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 186.900 114.960 233.880 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1-0 a (pubk b))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2-0 (pubk b))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2-0 (pubk a))</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n2-0) (n1 n1) (b b) (a a))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n2 n2) (n1 n1-0) (b b) (a a))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1-0) (n2 n2) (a a) (b b))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2-0) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>ns 40 (realized)</text></svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n1-0 n2 n2-0 text) (a b name))
-  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
-  (defstrand init 3 (n1 n1-0) (n2 n2) (a a) (b b))
-  (defstrand resp 2 (n2 n2) (n1 n1-0) (b b) (a a))
-  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
-  (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((2 1) (1 1)) ((3 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1 n1-0)
-  (operation nonce-test (contracted (n2-1 n2-0)) n1 (0 1)
-    (enc n1 n2-0 (pubk a)) (enc n1 a (pubk b)))
-  (label 40)
-  (parent 39)
-  (unrealized)
-  (shape)
-  (satisfies
-    (no (n1 n1) (n1-0 n1-0) (n2 n2-0) (n2-0 n2) (a a) (b b) (z 0)
-      (z-0 1)))
-  (maps ((0 1) ((a a) (b b) (n1 n1) (n1-0 n1-0) (n2 n2-0) (n2-0 n2))))
-  (origs (n1 (0 0)) (n1-0 (1 0))))</pre>
-
-<p id="t41">Tree <a href="#top">41</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.760pt' height='154.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.760 154.920' font-size='12.000'>
-  <text
-   x='139.800' y='101.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k44&quot;, &quot;_self&quot;)'>44</text>
-  <line
-   x1='89.880' y1='77.460' x2='139.800' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k43&quot;, &quot;_self&quot;)'>43</text>
-  <line
-   x1='89.880' y1='77.460' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k42&quot;, &quot;_self&quot;)'>42</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='77.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k41&quot;, &quot;_self&quot;)'>41</text>
-  </svg></div>
-
-<pre>(defprotocol nsl-typeless basic
-  (defrole init
-    (vars (a b name) (n1 text) (n2 mesg))
-    (trace (send (enc a n1 (pubk b))) (recv (enc n1 n2 b (pubk a)))
-      (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a name) (n2 text) (n1 mesg))
-    (trace (recv (enc a n1 (pubk b))) (send (enc n1 n2 b (pubk a)))
-      (recv (enc n2 (pubk b)))))
-  (comment &quot;Needham-Schroeder-Lowe with untyped nonces&quot;))</pre>
-
-<p id="k41">Item <a href="#t41">41</a>, Child: <a href="#k42">42</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n1 n2 b (pubk a))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc a n1 (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>n2</title><circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (b b) (a a))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>nsl-typeless 41</text></svg></div>
-
-<pre>(defskeleton nsl-typeless
-  (vars (n1 mesg) (n2 text) (a b name))
-  (deflistener n2)
-  (defstrand resp 2 (n1 n1) (n2 n2) (b b) (a a))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n2)
-  (goals
-    (forall ((n2 text) (a b name) (z z-0 strd))
-      (implies
-        (and (p &quot;resp&quot; z 2) (p &quot;&quot; z-0 1) (p &quot;resp&quot; &quot;n2&quot; z n2)
-          (p &quot;resp&quot; &quot;b&quot; z b) (p &quot;resp&quot; &quot;a&quot; z a) (p &quot;&quot; &quot;x&quot; z-0 n2)
-          (non (privk a)) (non (privk b)) (uniq n2)) (false))))
-  (comment &quot;Shows typeflaw in typeless NSL&quot;)
-  (label 41)
-  (unrealized (0 0))
-  (origs (n2 (1 1)))
-  (preskeleton)
-  (comment &quot;Not a skeleton&quot;))</pre>
-
-<p id="k42">Item <a href="#t41">42</a>, Parent: <a href="#k41">41</a>, Children: <a href="#k43">43</a> <a href="#k44">44</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='189.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2 b (pubk a))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc a n1 (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>n2</title><circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (b b) (a a))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>nsl-typeless 42</text></svg></div>
-
-<pre>(defskeleton nsl-typeless
-  (vars (n1 mesg) (n2 text) (a b name))
-  (deflistener n2)
-  (defstrand resp 2 (n1 n1) (n2 n2) (b b) (a a))
-  (precedes ((1 1) (0 0)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n2)
-  (goals
-    (forall ((n2 text) (a b name) (z z-0 strd))
-      (implies
-        (and (p &quot;resp&quot; z 2) (p &quot;&quot; z-0 1) (p &quot;resp&quot; &quot;n2&quot; z n2)
-          (p &quot;resp&quot; &quot;b&quot; z b) (p &quot;resp&quot; &quot;a&quot; z a) (p &quot;&quot; &quot;x&quot; z-0 n2)
-          (non (privk a)) (non (privk b)) (uniq n2)) (false))))
-  (comment &quot;Shows typeflaw in typeless NSL&quot;)
-  (label 42)
-  (parent 41)
-  (unrealized (0 0))
-  (origs (n2 (1 1)))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k43">Item <a href="#t41">43</a>, Parent: <a href="#k42">42</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='264.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 b (pubk a))</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(enc a n1 (pubk b))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2 b (pubk a))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc a n1 (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>n2</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>((n2 n2) (n1 n1) (a a) (b b))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (b b) (a a))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>nsl-typeless 43</text></svg></div>
-
-<pre>(defskeleton nsl-typeless
-  (vars (n2 n1 text) (a b name))
-  (deflistener n2)
-  (defstrand resp 2 (n1 n1) (n2 n2) (b b) (a a))
-  (defstrand init 3 (n2 n2) (n1 n1) (a a) (b b))
-  (precedes ((1 1) (2 1)) ((2 2) (0 0)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n2)
-  (operation nonce-test (added-strand init 3) n2 (0 0)
-    (enc n1 n2 b (pubk a)))
-  (label 43)
-  (parent 42)
-  (unrealized (0 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k44">Item <a href="#t41">44</a>, Parent: <a href="#k42">42</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='264.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (cat n2 b) n2-0 a (pubk a-0))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(enc a-0 n2 b (pubk a))</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a-0 n2 b (pubk a))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc a a-0 (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>n2</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>n2</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>((n1 (cat n2 b)) (n2 n2-0) (b a) (a a-0))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 a-0) (n2 n2) (b b) (a a))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>nsl-typeless 44 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton nsl-typeless
-  (vars (n2 n2-0 text) (a b a-0 name))
-  (deflistener n2)
-  (defstrand resp 2 (n1 a-0) (n2 n2) (b b) (a a))
-  (defstrand resp 2 (n1 (cat n2 b)) (n2 n2-0) (b a) (a a-0))
-  (precedes ((1 1) (2 0)) ((2 1) (0 0)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n2)
-  (operation nonce-test (added-strand resp 2) n2 (0 0)
-    (enc a-0 n2 b (pubk a)))
-  (label 44)
-  (parent 42)
-  (unrealized)
-  (shape)
-  (satisfies (no (n2 n2) (a a) (b b) (z 1) (z-0 0)))
-  (maps ((0 1) ((n2 n2) (a a) (b b) (n1 a-0))))
-  (origs (n2 (1 1))))</pre>
-
-</body>
-</html>
diff --git a/doc/examples/iadh_um.scm b/doc/examples/iadh_um.scm
deleted file mode 100644
--- a/doc/examples/iadh_um.scm
+++ /dev/null
@@ -1,73 +0,0 @@
-; Unified Model
-
-; This file models the "Unified Model" method of determining a fresh
-; key from long-term and ephemeral Diffie-Hellman exponents.  Since
-; CPSA does not provide an intrinsic association between names and
-; Diffie-Hellman values, we use digital signatures to link
-; authentication of a Diffie-Hellman long-term public value to a
-; public key.
-
-; A role is provided in which a party signs a fresh long-term
-; Diffie-Hellman value, and then leaks the exponent.  The latter step
-; is used to test the notion of forward security.
-
-; Two inputs are analyzed.  In the first, we model that two
-; participants exist that agree on the UM key.  The notion of
-; "implicit authentication" suggests that if one participant exists
-; and another party knows the same key, that party must be either the
-; participant or the participant's intended partner.
-
-; In this version, we assume that the long-term keys of the
-; participants do not leak.
-
-; The second input checks whether the key can be learned when the key
-; is generated honestly.  In this version, we do NOT assume that the
-; long-term keys of the participants do not leak.
-
-(herald "IADH: unified model (UM)" (bound 20) (limit 2000) (algebra diffie-hellman))
-
-(defprotocol iadh-um diffie-hellman
-  (defrole participant
-    (vars (l e rndx) (lp ep expt) (self peer name) (key n data))
-    (trace
-     (recv (enc "cert" (exp (gen) l) self (privk self)))
-     (recv (enc "cert" (exp (gen) lp) peer (privk peer)))
-     (send (exp (gen) e))
-     (recv (exp (gen) ep))
-     (send key))
-    (fn-of (foo ((hash (exp (gen) (mul l lp)) (exp (gen) (mul e ep))) key)))
-    (uniq-gen e)
-    (neq (ep (one))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace
-     (send (enc "cert" (exp (gen) l) self (privk self)))
-     (send l))
-    (uniq-gen l)
-    (fn-of ("principal-of" (l self))))
-  )
-
-
-;; Implicit authentication: participants will agree on the resulting key
-;; foo(key).  Therefore they should agree on the names A and B.
- (defskeleton iadh-um
-  (vars (key data) (eA lA eB lB rndx) (A B C D name))
-  (defstrand participant 5 (key key) (e eA) (l lA) (self A) (peer C))
-  (defstrand participant 5 (key key) (e eB) (l lB) (self B) (peer D))
-  (non-orig lA lB)
-  (neq (eA eB))
-  (non-orig (privk C) (privk D) (privk A) (privk B))
-  (comment "Implicit authentication")
-)
-
- ;; Security: 
-(defskeleton iadh-um
-  (vars (e1 e2 l rndx) (lp expt) (A B name))
-  (defstrand participant 5 (e e1) (l l) (ep e2) (lp lp) (self A) (peer B))
-  (defstrand participant 3 (e e2))
-  (deflistener (hash (exp (gen) (mul l lp)) (exp (gen) (mul e1 e2))))
-  (non-orig (privk A) (privk B))
-)
-
-
- 
diff --git a/doc/examples/iadh_um.xhtml b/doc/examples/iadh_um.xhtml
deleted file mode 100644
# file too large to diff: doc/examples/iadh_um.xhtml
diff --git a/doc/examples/kerb.scm b/doc/examples/kerb.scm
deleted file mode 100644
--- a/doc/examples/kerb.scm
+++ /dev/null
@@ -1,76 +0,0 @@
-; Flawed and Fixed Kerberos
-
-; In this example, the initiator is trying to send a private message
-; to the responder.  Each are presumed to share a long-term private key
-; with the key server, which will choose a fresh session key on request
-; and encrypt it for both parties.
-
-; A flaw exists in the protocol intentionally: the initiator will need
-; confirmation that the session key is shared between the initiator and
-; the partner they specified.
-
-; This version of the protocol is not modeled properly and misses the flaw.
-(defprotocol kerb-flawed basic
-  (defrole init
-    (vars (a b s name) (m n text) (k skey))
-    (trace
-       ;; Make the request
-       (send (cat a b n))
-       ;; Receive the encrypted key and ticket
-       (recv (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))
-       (send (cat (enc m k) (enc k a b (ltk b s)))))
-    (uniq-orig n))
-  (defrole resp
-    (vars (a b s name) (m text) (k skey))
-    (trace
-       (recv (cat (enc m k) (enc k a b (ltk b s))))))
-  (defrole keyserv
-    (vars (a b s name) (m n text) (k skey))
-    (trace
-       ;; Receive the request
-       (recv (cat a b n))
-       ;; Send the encrypted key and ticket
-       (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s)))))
-    (uniq-orig k))
-)
-
-; This skeleton should be dead, even though m can leak
-(defskeleton kerb-flawed
-  (vars (a b s name) (m text))
-  (defstrand init 3 (a a) (b b) (s s) (m m))
-  (deflistener m)
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig m))
-
-; This version of the protocol is modeled properly, with a generic variable (ticket)
-(defprotocol kerb-flawed2 basic
-  (defrole init
-    (vars (a b s name) (ticket mesg) (m n text) (k skey))
-    (trace
-       ;; Make the request
-       (send (cat a b n))
-       ;; Receive the encrypted key and ticket
-       (recv (cat (enc k n (ltk a s)) ticket))
-       (send (cat (enc m k) ticket)))
-    (uniq-orig n))
-  (defrole resp
-    (vars (a b s name) (m text) (k skey))
-    (trace
-       (recv (cat (enc m k) (enc k a b (ltk b s))))))
-  (defrole keyserv
-    (vars (a b s name) (m n text) (k skey))
-    (trace
-       ;; Receive the request
-       (recv (cat a b n))
-       ;; Send the encrypted key and ticket
-       (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s)))))
-    (uniq-orig k))
-)
-
-; This skeleton should have a shape, demonstrating that m may be leaked.
-(defskeleton kerb-flawed2
-  (vars (a b s name) (m text))
-  (defstrand init 3 (a a) (b b) (s s) (m m))
-  (deflistener m)
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig m))
diff --git a/doc/examples/kerb.xhtml b/doc/examples/kerb.xhtml
deleted file mode 100644
--- a/doc/examples/kerb.xhtml
+++ /dev/null
@@ -1,622 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>kerb-flawed</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from kerb.scm&quot;)</pre>
-
-<p id="top">Trees: <a href="#t0">0</a> <a href="#t5">5</a>.</p>
-
-<p id="t0">Tree <a href="#top">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.600pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.600 79.920' font-size='12.000'>
-  <text
-   x='239.640' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k4&quot;, &quot;_self&quot;)'>4</text>
-  <line
-   x1='189.720' y1='39.960' x2='239.640' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k3&quot;, &quot;_self&quot;)'>3</text>
-  <line
-   x1='139.800' y1='39.960' x2='189.720' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k2&quot;, &quot;_self&quot;)'>2</text>
-  <line
-   x1='89.880' y1='39.960' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k1&quot;, &quot;_self&quot;)'>1</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol kerb-flawed basic
-  (defrole init
-    (vars (a b s name) (m n text) (k skey))
-    (trace (send (cat a b n))
-      (recv (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))
-      (send (cat (enc m k) (enc k a b (ltk b s)))))
-    (uniq-orig n))
-  (defrole resp
-    (vars (a b s name) (m text) (k skey))
-    (trace (recv (cat (enc m k) (enc k a b (ltk b s))))))
-  (defrole keyserv
-    (vars (a b s name) (n text) (k skey))
-    (trace (recv (cat a b n))
-      (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s)))))
-    (uniq-orig k)))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>m</title><circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>m</title>
-   <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(cat (enc m k) (enc k a b (ltk b s)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a b n)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((m m) (n n) (a a) (b b) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>kerb-flawed 0</text></svg></div>
-
-<pre>(defskeleton kerb-flawed
-  (vars (m n text) (a b s name) (k skey))
-  (defstrand init 3 (m m) (n n) (a a) (b b) (s s) (k k))
-  (deflistener m)
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig m n)
-  (label 0)
-  (unrealized (0 1) (1 0))
-  (origs (n (0 0)) (m (0 2)))
-  (preskeleton)
-  (comment &quot;Not a skeleton&quot;))</pre>
-
-<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k2">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='264.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>m</title><circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>m</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc m k) (enc k a b (ltk b s)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a b n)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((m m) (n n) (a a) (b b) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>kerb-flawed 1</text></svg></div>
-
-<pre>(defskeleton kerb-flawed
-  (vars (m n text) (a b s name) (k skey))
-  (defstrand init 3 (m m) (n n) (a a) (b b) (s s) (k k))
-  (deflistener m)
-  (precedes ((0 2) (1 0)))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig m n)
-  (label 1)
-  (parent 0)
-  (unrealized (0 1))
-  (origs (n (0 0)) (m (0 2)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k1">1</a>, Child: <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='264.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc k n (ltk a s)) (enc k a b-0 (ltk b-0 s)))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a b-0 n)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>m</title><circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>m</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc m k) (enc k a b (ltk b s)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat a b n)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n n) (a a) (b b-0) (s s) (k k))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>keyserv</text>
-   </g>
-  <g><title>((m m) (n n) (a a) (b b) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>kerb-flawed 2</text></svg></div>
-
-<pre>(defskeleton kerb-flawed
-  (vars (m n text) (a b s b-0 name) (k skey))
-  (defstrand init 3 (m m) (n n) (a a) (b b) (s s) (k k))
-  (deflistener m)
-  (defstrand keyserv 2 (n n) (a a) (b b-0) (s s) (k k))
-  (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1)))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig m n k)
-  (operation encryption-test (added-strand keyserv 2)
-    (enc k n (ltk a s)) (0 1))
-  (label 2)
-  (parent 1)
-  (unrealized (0 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k2">2</a>, Child: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='264.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a b n)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>m</title><circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>m</title>
-   <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc m k) (enc k a b (ltk b s)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat a b n)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n n) (a a) (b b) (s s) (k k))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>keyserv</text>
-   </g>
-  <g><title>((m m) (n n) (a a) (b b) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>kerb-flawed 3</text></svg></div>
-
-<pre>(defskeleton kerb-flawed
-  (vars (m n text) (a s b name) (k skey))
-  (defstrand init 3 (m m) (n n) (a a) (b b) (s s) (k k))
-  (deflistener m)
-  (defstrand keyserv 2 (n n) (a a) (b b) (s s) (k k))
-  (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1)))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig m n k)
-  (operation encryption-test (displaced 3 2 keyserv 2)
-    (enc k a b-0 (ltk b-0 s)) (0 1))
-  (label 3)
-  (parent 2)
-  (unrealized (1 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k4">Item <a href="#t0">4</a>, Parent: <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='264.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 264.960 Q 242.880 227.460 145.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k</title><circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 189.960 Q 286.860 189.960 333.840 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a b n)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>m</title><circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>m</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc m k) (enc k a b (ltk b s)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat (enc k n (ltk a s)) (enc k a b (ltk b s)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat a b n)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n n) (a a) (b b) (s s) (k k))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>keyserv</text>
-   </g>
-  <g><title>((m m) (n n) (a a) (b b) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>kerb-flawed 4</text></svg></div>
-
-<pre>(defskeleton kerb-flawed
-  (vars (m n text) (a s b name) (k skey))
-  (defstrand init 3 (m m) (n n) (a a) (b b) (s s) (k k))
-  (deflistener m)
-  (defstrand keyserv 2 (n n) (a a) (b b) (s s) (k k))
-  (deflistener k)
-  (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1)) ((2 1) (3 0))
-    ((3 1) (1 0)))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig m n k)
-  (operation nonce-test (added-listener k) m (1 0) (enc m k))
-  (label 4)
-  (parent 3)
-  (unrealized (3 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="t5">Tree <a href="#top">5</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.760pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.760 79.920' font-size='12.000'>
-  <text
-   x='139.800' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k7&quot;, &quot;_self&quot;)'>7</text>
-  <line
-   x1='89.880' y1='39.960' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k6&quot;, &quot;_self&quot;)'>6</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k5&quot;, &quot;_self&quot;)'>5</text>
-  </svg></div>
-
-<pre>(defprotocol kerb-flawed2 basic
-  (defrole init
-    (vars (a b s name) (ticket mesg) (m n text) (k skey))
-    (trace (send (cat a b n)) (recv (cat (enc k n (ltk a s)) ticket))
-      (send (cat (enc m k) ticket)))
-    (uniq-orig n))
-  (defrole resp
-    (vars (a b s name) (m text) (k skey))
-    (trace (recv (cat (enc m k) (enc k a b (ltk b s))))))
-  (defrole keyserv
-    (vars (a b s name) (n text) (k skey))
-    (trace (recv (cat a b n))
-      (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s)))))
-    (uniq-orig k)))</pre>
-
-<p id="k5">Item <a href="#t5">5</a>, Child: <a href="#k6">6</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>m</title><circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>m</title>
-   <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(cat (enc m k) ticket)</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat (enc k n (ltk a s)) ticket)</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a b n)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>kerb-flawed2 5</text></svg></div>
-
-<pre>(defskeleton kerb-flawed2
-  (vars (ticket mesg) (m n text) (a b s name) (k skey))
-  (defstrand init 3 (ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k))
-  (deflistener m)
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig m n)
-  (label 5)
-  (unrealized (0 1) (1 0))
-  (origs (n (0 0)) (m (0 2)))
-  (preskeleton)
-  (comment &quot;Not a skeleton&quot;))</pre>
-
-<p id="k6">Item <a href="#t5">6</a>, Parent: <a href="#k5">5</a>, Child: <a href="#k7">7</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='264.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>m</title><circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>m</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc m k) ticket)</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat (enc k n (ltk a s)) ticket)</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a b n)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>kerb-flawed2 6</text></svg></div>
-
-<pre>(defskeleton kerb-flawed2
-  (vars (ticket mesg) (m n text) (a b s name) (k skey))
-  (defstrand init 3 (ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k))
-  (deflistener m)
-  (precedes ((0 2) (1 0)))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig m n)
-  (label 6)
-  (parent 5)
-  (unrealized (0 1))
-  (origs (n (0 0)) (m (0 2)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k7">Item <a href="#t5">7</a>, Parent: <a href="#k6">6</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='264.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 142.920 152.460 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc k n (ltk a s)) (enc k a b-0 (ltk b-0 s)))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a b-0 n)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>m</title><circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>m</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 264.960 Q 86.940 264.960 133.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc m k) ticket)</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat (enc k n (ltk a s)) ticket)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat a b n)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n n) (a a) (b b-0) (s s) (k k))</title>
-   <text
-    x='239.880' y='77.460' style='text-anchor: middle;'>keyserv</text>
-   </g>
-  <g>
-   <title>((ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>kerb-flawed2 7 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton kerb-flawed2
-  (vars (ticket mesg) (m n text) (a b s b-0 name) (k skey))
-  (defstrand init 3 (ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k))
-  (deflistener m)
-  (defstrand keyserv 2 (n n) (a a) (b b-0) (s s) (k k))
-  (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1)))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig m n k)
-  (operation encryption-test (added-strand keyserv 2)
-    (enc k n (ltk a s)) (0 1))
-  (label 7)
-  (parent 6)
-  (unrealized)
-  (shape)
-  (maps ((0 1) ((a a) (b b) (s s) (m m) (ticket ticket) (n n) (k k))))
-  (origs (k (2 1)) (n (0 0)) (m (0 2))))</pre>
-
-</body>
-</html>
diff --git a/doc/examples/lt_test.scm b/doc/examples/lt_test.scm
deleted file mode 100644
--- a/doc/examples/lt_test.scm
+++ /dev/null
@@ -1,55 +0,0 @@
-(herald "Less-than constraint test protocol"
-   (comment "First and third skeletons should have a shape,"
-            "second and fourth should be dead."))
-
-(defprotocol lttest basic
-  (defrole init
-     (vars (n1 n2 text) (k skey))
-     (trace
-       (send (cat n1 (enc n1 n2 k)))
-       (recv n2))
-     (non-orig k)
-     (uniq-orig n1 n2)
-  )
-)
-
-;;; With no declaration, a shape
-;;; should be found where n1 = n2.
-(defskeleton lttest
-   (vars (n1 n2 text) (k skey))
-   (defstrand init 2) (n1 n1) (n2 n2) (k k))
-
-;;; With the declaration that n1 < n2,
-;;; no shape should exist, since n1 = n2 would
-;;; be a cycle.
-(defskeleton lttest
-   (vars (n1 n2 text))
-   (defstrand init 2 (n1 n1) (n2 n2))
-   (lt (n1 n2)))
-
-(defprotocol lttest2 basic
-  (defrole init
-     (vars (n1 n2 n text) (k skey))
-     (trace
-       (send n)
-       (send (cat n1 (enc n1 n2 k)))
-       (recv n2))
-     (non-orig k)
-     (uniq-orig n1 n2)
-     (lt (n2 n))
-  )
-)
-
-;;; In this version, the single lt declaration
-;;; should not interfere.
-(defskeleton lttest2
-   (vars (n n1 n2 text) (k skey))
-   (defstrand init 3) (n1 n1) (n2 n2) (k k))
-
-;;; In this version, the additional requirement
-;;; that n1 < n prevents n1 and n2 from being
-;;; unified.
-(defskeleton lttest2
-   (vars (n n1 n2 text) (k skey))
-   (defstrand init 3 (n1 n1) (n2 n2) (k k) (n n))
-   (lt (n n1)))
diff --git a/doc/examples/lt_test.xhtml b/doc/examples/lt_test.xhtml
deleted file mode 100644
--- a/doc/examples/lt_test.xhtml
+++ /dev/null
@@ -1,361 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Less-than constraint test protocol</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(herald &quot;Less-than constraint test protocol&quot;
-  (comment &quot;First and third skeletons should have a shape,&quot;
-    &quot;second and fourth should be dead.&quot;))
-(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from lt_test.scm&quot;)</pre>
-
-<p id="top">Trees: <a href="#t0">0</a> <a href="#t2">2</a> <a href="#t3">3</a> <a href="#t5">5</a>.</p>
-
-<p id="t0">Tree <a href="#top">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k1&quot;, &quot;_self&quot;)'>1</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol lttest basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n2 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>lttest 0</text>
-  </svg></div>
-
-<pre>(defskeleton lttest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (label 0)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n1</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n1 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n1) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>lttest 1 (realized)</text></svg></div>
-
-<pre>(defskeleton lttest
-  (vars (n1 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n1) (k k))
-  (non-orig k)
-  (uniq-orig n1)
-  (operation nonce-test (displaced 1 0 init 1) n2 (0 1) (enc n1 n2 k))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n1 n1) (n2 n1) (k k))))
-  (origs (n1 (0 0))))</pre>
-
-<p id="t2">Tree <a href="#top">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 79.920' font-size='12.000'>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k2&quot;, &quot;_self&quot;)'>2</text>
-  </svg></div>
-
-<pre>(defprotocol lttest basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))</pre>
-
-<p id="k2">Item <a href="#t2">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n2 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>lttest 2</text>
-  </svg></div>
-
-<pre>(defskeleton lttest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (lt (n1 n2))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (label 2)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="t3">Tree <a href="#top">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k4&quot;, &quot;_self&quot;)'>4</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k3&quot;, &quot;_self&quot;)'>3</text>
-  </svg></div>
-
-<pre>(defprotocol lttest2 basic
-  (defrole init
-    (vars (n1 n2 n text) (k skey))
-    (trace (send n) (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)
-    (lt (n2 n))))</pre>
-
-<p id="k3">Item <a href="#t3">3</a>, Child: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n2 k))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>n</title><circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (n n) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>lttest2 3</text>
-  </svg></div>
-
-<pre>(defskeleton lttest2
-  (vars (n1 n2 n text) (k skey))
-  (defstrand init 3 (n1 n1) (n2 n2) (n n) (k k))
-  (lt (n2 n))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (label 3)
-  (unrealized (0 2))
-  (origs (n1 (0 1)) (n2 (0 1)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k4">Item <a href="#t3">4</a>, Parent: <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n1</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n1 k))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>n</title><circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n1) (n n) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>lttest2 4 (realized)</text></svg></div>
-
-<pre>(defskeleton lttest2
-  (vars (n1 n text) (k skey))
-  (defstrand init 3 (n1 n1) (n2 n1) (n n) (k k))
-  (lt (n1 n))
-  (non-orig k)
-  (uniq-orig n1)
-  (operation nonce-test (displaced 1 0 init 2) n2 (0 2) (enc n1 n2 k))
-  (label 4)
-  (parent 3)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n1 n1) (n2 n1) (n n) (k k))))
-  (origs (n1 (0 1))))</pre>
-
-<p id="t5">Tree <a href="#top">5</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 79.920' font-size='12.000'>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k5&quot;, &quot;_self&quot;)'>5</text>
-  </svg></div>
-
-<pre>(defprotocol lttest2 basic
-  (defrole init
-    (vars (n1 n2 n text) (k skey))
-    (trace (send n) (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)
-    (lt (n2 n))))</pre>
-
-<p id="k5">Item <a href="#t5">5</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n2 k))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>n</title><circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (n n) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>lttest2 5</text>
-  </svg></div>
-
-<pre>(defskeleton lttest2
-  (vars (n n1 n2 text) (k skey))
-  (defstrand init 3 (n1 n1) (n2 n2) (n n) (k k))
-  (lt (n n1) (n2 n))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (label 5)
-  (unrealized (0 2))
-  (origs (n1 (0 1)) (n2 (0 1)))
-  (comment &quot;empty cohort&quot;))</pre>
-
-</body>
-</html>
diff --git a/doc/examples/neq_test.scm b/doc/examples/neq_test.scm
deleted file mode 100644
--- a/doc/examples/neq_test.scm
+++ /dev/null
@@ -1,46 +0,0 @@
-(herald "Inequality constraint test protocol"
-   (comment "First skeleton should have a shape,"
-            "second, and hird should be dead."))
-
-(defprotocol neqtest basic
-  (defrole init
-     (vars (n1 n2 text) (k skey))
-     (trace
-       (send (cat n1 (enc n1 n2 k)))
-       (recv n2))
-     (non-orig k)
-     (uniq-orig n1 n2)
-  )
-)
-
-;;; With no inequality declaration, a shape
-;;; should be found where n1 = n2.
-(defskeleton neqtest
-   (vars (n1 n2 text) (k skey))
-   (defstrand init 2 (n1 n1) (n2 n2) (k k)))
-
-;;; With the inequality declaration that n1 != n2,
-;;; no shape should exist.
-(defskeleton neqtest
-   (vars (n1 n2 text))
-   (defstrand init 2 (n1 n1) (n2 n2))
-   (neq (n1 n2)))
-
-(defprotocol neqtest2 basic
-  (defrole init
-     (vars (n1 n2 n3 text) (k skey))
-     (trace
-       (send (cat n1 (enc n1 n2 n3 k)))
-       (recv n2))
-     (non-orig k)
-     (uniq-orig n1 n2)
-  )
-)
-
-;;; Here, we use the neqlist declaration to force
-;;; deadness, as an alternative.
-(defskeleton neqtest2
-   (vars (n1 n2 n3 text) (k skey))
-   (defstrand init 2 (n1 n1) (n2 n2) (n3 n3) (k k))
-   (neqlist ((n1 n2 n3)))
-)
diff --git a/doc/examples/neq_test.xhtml b/doc/examples/neq_test.xhtml
deleted file mode 100644
--- a/doc/examples/neq_test.xhtml
+++ /dev/null
@@ -1,247 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Inequality constraint test protocol</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(herald &quot;Inequality constraint test protocol&quot;
-  (comment &quot;First skeleton should have a shape,&quot;
-    &quot;second, and hird should be dead.&quot;))
-(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from neq_test.scm&quot;)</pre>
-
-<p id="top">Trees: <a href="#t0">0</a> <a href="#t2">2</a> <a href="#t3">3</a>.</p>
-
-<p id="t0">Tree <a href="#top">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k1&quot;, &quot;_self&quot;)'>1</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol neqtest basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n2 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>neqtest 0</text>
-  </svg></div>
-
-<pre>(defskeleton neqtest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (label 0)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n1</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n1 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n1) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>neqtest 1 (realized)</text></svg></div>
-
-<pre>(defskeleton neqtest
-  (vars (n1 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n1) (k k))
-  (non-orig k)
-  (uniq-orig n1)
-  (operation nonce-test (displaced 1 0 init 1) n2 (0 1) (enc n1 n2 k))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n1 n1) (n2 n1) (k k))))
-  (origs (n1 (0 0))))</pre>
-
-<p id="t2">Tree <a href="#top">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 79.920' font-size='12.000'>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k2&quot;, &quot;_self&quot;)'>2</text>
-  </svg></div>
-
-<pre>(defprotocol neqtest basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))</pre>
-
-<p id="k2">Item <a href="#t2">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n2 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>neqtest 2</text>
-  </svg></div>
-
-<pre>(defskeleton neqtest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (neq (n1 n2))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (label 2)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="t3">Tree <a href="#top">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 79.920' font-size='12.000'>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k3&quot;, &quot;_self&quot;)'>3</text>
-  </svg></div>
-
-<pre>(defprotocol neqtest2 basic
-  (defrole init
-    (vars (n1 n2 n3 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 n3 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))</pre>
-
-<p id="k3">Item <a href="#t3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n2 n3 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (n3 n3) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>neqtest2 3</text>
-  </svg></div>
-
-<pre>(defskeleton neqtest2
-  (vars (n1 n2 n3 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (n3 n3) (k k))
-  (neqlist ((n1 n2 n3)))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (label 3)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment &quot;empty cohort&quot;))</pre>
-
-</body>
-</html>
diff --git a/doc/examples/ns.scm b/doc/examples/ns.scm
deleted file mode 100644
--- a/doc/examples/ns.scm
+++ /dev/null
@@ -1,37 +0,0 @@
-(herald "Needham-Schroeder Public-Key Protocol"
-	(comment "This protocol contains a man-in-the-middle"
-		 "attack discovered by Galvin Lowe."))
-
-;;; Used to generate output for inclusion in the primer.
-;;; Use margin = 60 (-m 60) to generate the output.
-
-(defprotocol ns basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace
-     (send (enc n1 a (pubk b)))
-     (recv (enc n1 n2 (pubk a)))
-     (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace
-     (recv (enc n1 a (pubk b)))
-     (send (enc n1 n2 (pubk a)))
-     (recv (enc n2 (pubk b)))))
-  (comment "Needham-Schroeder"))
-
-;;; The initiator point-of-view
-(defskeleton ns
-  (vars (a b name) (n1 text))
-  (defstrand init 3 (a a) (b b) (n1 n1))
-  (non-orig (privk b) (privk a))
-  (uniq-orig n1)
-  (comment "Initiator point-of-view"))
-
-;;; The responder point-of-view
-(defskeleton ns
-  (vars (a b name) (n2 text))
-  (defstrand resp 3 (a a) (b b) (n2 n2))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n2)
-  (comment "Responder point-of-view"))
diff --git a/doc/examples/ns.xhtml b/doc/examples/ns.xhtml
deleted file mode 100644
--- a/doc/examples/ns.xhtml
+++ /dev/null
@@ -1,358 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Needham-Schroeder Public-Key Protocol</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(herald &quot;Needham-Schroeder Public-Key Protocol&quot;
-  (comment &quot;This protocol contains a man-in-the-middle&quot;
-    &quot;attack discovered by Galvin Lowe.&quot;))
-(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from ns.scm&quot;)</pre>
-
-<p id="top">Trees: <a href="#t0">0</a> <a href="#t3">3</a>.</p>
-
-<p id="t0">Tree <a href="#top">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.760pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.760 79.920' font-size='12.000'>
-  <text
-   x='139.800' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k2&quot;, &quot;_self&quot;)'>2</text>
-  <line
-   x1='89.880' y1='39.960' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k1&quot;, &quot;_self&quot;)'>1</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol ns basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
-      (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
-      (recv (enc n2 (pubk b)))))
-  (comment &quot;Needham-Schroeder&quot;))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='39.960' y='39.960' style='text-anchor: middle;'>ns 0</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n2 text) (a b name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1)
-  (comment &quot;Initiator point-of-view&quot;)
-  (label 0)
-  (unrealized (0 1))
-  (origs (n1 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k2">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2-0 (pubk a))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n2-0) (n1 n1) (b b) (a a))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>ns 1</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n2 n2-0 text) (a b name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1)
-  (operation nonce-test (added-strand resp 2) n1 (0 1)
-    (enc n1 a (pubk b)))
-  (label 1)
-  (parent 0)
-  (unrealized (0 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n2) (n1 n1) (b b) (a a))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>ns 2 (realized)</text></svg></div>
-
-<pre>(defskeleton ns
-  (vars (n1 n2 text) (a b name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1)
-  (operation nonce-test (contracted (n2-0 n2)) n1 (0 1)
-    (enc n1 n2 (pubk a)) (enc n1 a (pubk b)))
-  (label 2)
-  (parent 1)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
-  (origs (n1 (0 0))))</pre>
-
-<p id="t3">Tree <a href="#top">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k4&quot;, &quot;_self&quot;)'>4</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k3&quot;, &quot;_self&quot;)'>3</text>
-  </svg></div>
-
-<pre>(defprotocol ns basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
-      (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
-      (recv (enc n2 (pubk b)))))
-  (comment &quot;Needham-Schroeder&quot;))</pre>
-
-<p id="k3">Item <a href="#t3">3</a>, Child: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n2 n2) (n1 n1) (b b) (a a))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text x='39.960' y='39.960' style='text-anchor: middle;'>ns 3</text>
-  </svg></div>
-
-<pre>(defskeleton ns
-  (vars (n2 n1 text) (a b name))
-  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n2)
-  (comment &quot;Responder point-of-view&quot;)
-  (label 3)
-  (unrealized (0 2))
-  (origs (n2 (0 1)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k4">Item <a href="#t3">4</a>, Parent: <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n2 (pubk b-0))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b-0))</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n2 (pubk b))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n1 n2 (pubk a))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 a (pubk b))</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (a a) (b b-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n2 n2) (n1 n1) (b b) (a a))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>ns 4 (realized)</text></svg></div>
-
-<pre>(defskeleton ns
-  (vars (n2 n1 text) (a b b-0 name))
-  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0))
-  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n2)
-  (operation nonce-test (added-strand init 3) n2 (0 2)
-    (enc n1 n2 (pubk a)))
-  (label 4)
-  (parent 3)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
-  (origs (n2 (0 1))))</pre>
-
-</body>
-</html>
diff --git a/doc/examples/or.scm b/doc/examples/or.scm
deleted file mode 100644
--- a/doc/examples/or.scm
+++ /dev/null
@@ -1,27 +0,0 @@
-(herald "Otway-Rees Protocol"
-	(comment "Standard version using variables of sort mesg"))
-
-(defprotocol or basic
-  (defrole init (vars (a b s name) (na text) (k skey) (m text))
-    (trace
-     (send (cat m a b (enc na m a b (ltk a s))))
-     (recv (cat m (enc na k (ltk a s))))))
-  (defrole resp
-    (vars (a b s name) (nb text) (k skey) (m text) (x y mesg))
-    (trace
-     (recv (cat m a b x))
-     (send (cat m a b x (enc nb m a b (ltk b s))))
-     (recv (cat m y (enc nb k (ltk b s))))
-     (send y)))
-  (defrole serv (vars (a b s name) (na nb text) (k skey) (m text))
-    (trace
-     (recv (cat m a b (enc na m a b (ltk a s))
-		(enc nb m a b (ltk b s))))
-     (send (cat m (enc na k (ltk a s)) (enc nb k (ltk b s)))))
-    (uniq-orig k)))
-
-(defskeleton or
-  (vars (nb text) (s a b name))
-  (defstrand resp 4 (a a) (b b) (s s) (nb nb))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig nb))
diff --git a/doc/examples/or.xhtml b/doc/examples/or.xhtml
deleted file mode 100644
--- a/doc/examples/or.xhtml
+++ /dev/null
@@ -1,785 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Otway-Rees Protocol</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(herald &quot;Otway-Rees Protocol&quot;
-  (comment &quot;Standard version using variables of sort mesg&quot;))
-(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from or.scm&quot;)</pre>
-
-<p id="t0">Tree 0.</p>
-
-<div>
- <svg
-  class='diagram' width='229.680pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 229.680 454.920' font-size='12.000'>
-  <text
-   x='189.720' y='401.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k9&quot;, &quot;_self&quot;)'>9</text>
-  <line
-   x1='139.800' y1='339.960' x2='189.720' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='326.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k8&quot;, &quot;_self&quot;)'>8</text>
-  <line
-   x1='139.800' y1='339.960' x2='189.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='251.040'
-   style='font-style: italic; text-anchor: middle; fill: green;'
-   onclick='window.open(&quot;#k6&quot;, &quot;_self&quot;)'>6</text>
-  <line
-   x1='139.800' y1='339.960' x2='189.720' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='326.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k4&quot;, &quot;_self&quot;)'>4</text>
-  <line
-   x1='89.880' y1='339.960' x2='139.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='326.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k2&quot;, &quot;_self&quot;)'>2</text>
-  <line
-   x1='39.960' y1='227.460' x2='89.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='176.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k7&quot;, &quot;_self&quot;)'>7</text>
-  <line
-   x1='139.800' y1='114.960' x2='189.720' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='101.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k6&quot;, &quot;_self&quot;)'>6</text>
-  <line
-   x1='139.800' y1='114.960' x2='189.720' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k5&quot;, &quot;_self&quot;)'>5</text>
-  <line
-   x1='139.800' y1='114.960' x2='189.720' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='101.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k3&quot;, &quot;_self&quot;)'>3</text>
-  <line
-   x1='89.880' y1='114.960' x2='139.800' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='101.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k1&quot;, &quot;_self&quot;)'>1</text>
-  <line
-   x1='39.960' y1='227.460' x2='89.880' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='213.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol or basic
-  (defrole init
-    (vars (a b s name) (na text) (k skey) (m text))
-    (trace (send (cat m a b (enc na m a b (ltk a s))))
-      (recv (cat m (enc na k (ltk a s))))))
-  (defrole resp
-    (vars (a b s name) (nb text) (k skey) (m text) (x y mesg))
-    (trace (recv (cat m a b x))
-      (send (cat m a b x (enc nb m a b (ltk b s))))
-      (recv (cat m y (enc nb k (ltk b s)))) (send y)))
-  (defrole serv
-    (vars (a b s name) (na nb text) (k skey) (m text))
-    (trace
-      (recv
-        (cat m a b (enc na m a b (ltk a s)) (enc nb m a b (ltk b s))))
-      (send (cat m (enc na k (ltk a s)) (enc nb k (ltk b s)))))
-    (uniq-orig k)))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>, Children: <a href="#k1">1</a> <a href="#k2">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (ltk b s)))</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat m a b x (enc nb m a b (ltk b s)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a b x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text x='39.960' y='39.960' style='text-anchor: middle;'>or 0</text>
-  </svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m text) (s a b name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig nb)
-  (label 0)
-  (unrealized (0 2))
-  (origs (nb (0 1)))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat m-0 (enc na k (ltk a-0 s)) (enc nb k (ltk b s)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m-0 a-0 b (enc na m-0 a-0 b (ltk a-0 s)) (enc nb m-0 a-0 b (ltk b s)))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (ltk b s)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a b x (enc nb m a b (ltk b s)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a b x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((na na) (nb nb) (m m-0) (a a-0) (b b) (s s) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>or 1</text>
-  </svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m na m-0 text) (s a b a-0 name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m-0) (a a-0) (b b) (s s) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand serv 2) (enc nb k (ltk b s))
-    (0 2))
-  (label 1)
-  (parent 0)
-  (unrealized (1 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat m-0 (enc nb k (ltk b s)) (enc nb-0 k (ltk b-0 s)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m-0 b b-0 (enc nb m-0 b b-0 (ltk b s)) (enc nb-0 m-0 b b-0 (ltk b-0 s)))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (ltk b s)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a b x (enc nb m a b (ltk b s)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a b x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((na nb) (nb nb-0) (m m-0) (a b) (b b-0) (s s) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>or 2</text>
-  </svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m nb-0 m-0 text) (s a b b-0 name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb-0) (m m-0) (a b) (b b-0) (s s) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand serv 2) (enc nb k (ltk b s))
-    (0 2))
-  (label 2)
-  (parent 0)
-  (unrealized (1 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k1">1</a>, Children: <a href="#k5">5</a> <a href="#k6">6</a> <a href="#k7">7</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m (enc na k (ltk a s)) (enc nb k (ltk b s)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m a b (enc na m a b (ltk a s)) (enc nb m a b (ltk b s)))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (ltk b s)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a b x (enc nb m a b (ltk b s)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a b x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((na na) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>or 3</text>
-  </svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m na text) (s a b name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig nb k)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc nb m-0 a-0 b (ltk b s)) (1 0))
-  (label 3)
-  (parent 1)
-  (unrealized (1 0))
-  (comment &quot;3 in cohort - 3 not yet seen&quot;))</pre>
-
-<p id="k4">Item <a href="#t0">4</a>, Parent: <a href="#k2">2</a>, Children: <a href="#k8">8</a> <a href="#k9">9</a>, Seen Child: <a href="#k6">6</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m (enc nb k (ltk a s)) (enc nb-0 k (ltk a s)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m a a (enc nb m a a (ltk a s)) (enc nb-0 m a a (ltk a s)))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (ltk a s)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a a x (enc nb m a a (ltk a s)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a a x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text x='89.940' y='39.960' style='text-anchor: middle;'>or 4</text>
-  </svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m nb-0 text) (s a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (ltk a s))
-  (uniq-orig nb k)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc nb m-0 b b (ltk b s)) (1 0))
-  (label 4)
-  (parent 2)
-  (seen 6)
-  (unrealized (1 0))
-  (comment &quot;3 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k5">Item <a href="#t0">5</a>, Parent: <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 114.960 Q 192.300 150.660 144.719 186.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a b (enc na m a b (ltk a s)))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m (enc na k (ltk a s)) (enc nb k (ltk b s)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m a b (enc na m a b (ltk a s)) (enc nb m a b (ltk b s)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (ltk b s)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a b x (enc nb m a b (ltk b s)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a b x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((na na) (m m) (a a) (b b) (s s))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((na na) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>or 5 (realized)</text></svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m na text) (s a b name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand init 1 (na na) (m m) (a a) (b b) (s s))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand init 1)
-    (enc na m a b (ltk a s)) (1 0))
-  (label 5)
-  (parent 3)
-  (unrealized)
-  (shape)
-  (maps ((0) ((nb nb) (s s) (a a) (b b) (k k) (m m) (x x) (y y))))
-  (origs (k (1 1)) (nb (0 1))))</pre>
-
-<p id="k6">Item <a href="#t0">6</a>, Parent: <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m (enc nb k (ltk a s)) (enc nb k (ltk a s)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m a a (enc nb m a a (ltk a s)) (enc nb m a a (ltk a s)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (ltk a s)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a a x (enc nb m a a (ltk a s)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a a x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((na nb) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>or 6 (realized)</text></svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m text) (s a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (ltk a s))
-  (uniq-orig nb k)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc na m a a (ltk a s)) (1 0))
-  (label 6)
-  (parent 3)
-  (unrealized)
-  (shape)
-  (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))
-  (origs (k (1 1)) (nb (0 1))))</pre>
-
-<p id="k7">Item <a href="#t0">7</a>, Parent: <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a a x-0 (enc na m a a (ltk a s)))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a a x-0)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m (enc na k (ltk a s)) (enc nb k (ltk a s)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m a a (enc na m a a (ltk a s)) (enc nb m a a (ltk a s)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (ltk a s)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a a x (enc nb m a a (ltk a s)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a a x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((x x-0) (nb na) (m m) (a a) (b a) (s s))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((na na) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>or 7 (realized)</text></svg></div>
-
-<pre>(defskeleton or
-  (vars (x y x-0 mesg) (nb m na text) (s a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand resp 2 (x x-0) (nb na) (m m) (a a) (b a) (s s))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))
-  (non-orig (ltk a s))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand resp 2)
-    (enc na m a a (ltk a s)) (1 0))
-  (label 7)
-  (parent 3)
-  (unrealized)
-  (shape)
-  (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))
-  (origs (k (1 1)) (nb (0 1))))</pre>
-
-<p id="k8">Item <a href="#t0">8</a>, Parent: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 114.960 Q 192.300 150.660 144.719 186.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a a (enc nb-0 m a a (ltk a s)))</title>
-   <circle cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m (enc nb k (ltk a s)) (enc nb-0 k (ltk a s)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m a a (enc nb m a a (ltk a s)) (enc nb-0 m a a (ltk a s)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (ltk a s)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a a x (enc nb m a a (ltk a s)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a a x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((na nb-0) (m m) (a a) (b a) (s s))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>or 8 (realized)</text></svg></div>
-
-<pre>(defskeleton or
-  (vars (x y mesg) (nb m nb-0 text) (s a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))
-  (defstrand init 1 (na nb-0) (m m) (a a) (b a) (s s))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))
-  (non-orig (ltk a s))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand init 1)
-    (enc nb-0 m a a (ltk a s)) (1 0))
-  (label 8)
-  (parent 4)
-  (unrealized)
-  (shape)
-  (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))
-  (origs (k (1 1)) (nb (0 1))))</pre>
-
-<p id="k9">Item <a href="#t0">9</a>, Parent: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a a x-0 (enc nb-0 m a a (ltk a s)))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a a x-0)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m (enc nb k (ltk a s)) (enc nb-0 k (ltk a s)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat m a a (enc nb m a a (ltk a s)) (enc nb-0 m a a (ltk a s)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>y</title><circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat m y (enc nb k (ltk a s)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat m a a x (enc nb m a a (ltk a s)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat m a a x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((x x-0) (nb nb-0) (m m) (a a) (b a) (s s))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>or 9 (realized)</text></svg></div>
-
-<pre>(defskeleton or
-  (vars (x y x-0 mesg) (nb m nb-0 text) (s a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))
-  (defstrand resp 2 (x x-0) (nb nb-0) (m m) (a a) (b a) (s s))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))
-  (non-orig (ltk a s))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand resp 2)
-    (enc nb-0 m a a (ltk a s)) (1 0))
-  (label 9)
-  (parent 4)
-  (unrealized)
-  (shape)
-  (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))
-  (origs (k (1 1)) (nb (0 1))))</pre>
-
-</body>
-</html>
diff --git a/doc/examples/pkinit.scm b/doc/examples/pkinit.scm
deleted file mode 100644
--- a/doc/examples/pkinit.scm
+++ /dev/null
@@ -1,203 +0,0 @@
-(herald "Kerberos PKINIT")
-
-;;; This file includes three versions of the Kerberos PKINIT
-;;; protocol. The first version is the flawed version that Cervesato
-;;; et al. analyzed in "Breaking and Fixing Public-Key Kerberos." The
-;;; other two versions are the two fixes that are explored in the same
-;;; paper.
-
-;;; We also express the goal that the authors identify as a property
-;;; not met by the original flawed version, but which both fixes do
-;;; achieve. Running CPSA with this input demonstrates that the flawed
-;;; version does not satisfy the goal, but both fixed versions do.
-
-;;; How to use this file:
-;;;
-;;; CPSA looks at the goal and creates an initial point of view that
-;;; corresponds to the information contained in the antecedent of the
-;;; implication of the goal. It then outputs a characterization
-;;; (consisting of shapes) of all executions containing at least the
-;;; structure contained in the point of view. It then evaluates the
-;;; goal against each of those shapes. The guarantee CPSA provides is
-;;; that a goal is achieved iff each of the shapes satisfies the goal.
-
-;;; We can look at the output in pkinit.xhtml to determine what CPSA
-;;; discovered. Notice that the shape associated with the first
-;;; analysis (of the flawed version) contains an annotation that says
-;;; (satisfies (no (c c) (as as) (k k) (z (0 1)))). This means that
-;;; the goal is not satisfied. The pairs of terms represent a variable
-;;; assignment for the logical variables of the goal into elements of
-;;; the shape. This is the variable assignment of the antecendant
-;;; which has no extension for which the conclusion is also
-;;; satisfied. The shapes for the other analyses contain the
-;;; annotation (satisfies yes) indicating that the goal is satisfied
-;;; in the shape (and hence in any realized skeleton).
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;                       ;;
-;; Protocol Descriptions ;;
-;;                       ;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-;; This is the flawed version of the Kerberos public key initial
-;; round.
-(defprotocol pkinit-flawed basic
-  (defrole client
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    (uniq-orig n1 n2))
-  (defrole auth
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    (uniq-orig k ak)))
-
-;; This is the fix the authors proposed to the standards group. It
-;; adds the value c in a new field inside the server's signature.
-(defprotocol pkinit-fix1 basic
-  (defrole client
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    (uniq-orig n1 n2))
-  (defrole auth
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    (uniq-orig k ak)))
-
-;; This is the fix that the standards group proposed and adopted. It
-;; replaces n2 in the server's with a hash of the entire first
-;; message.
-(defprotocol pkinit-fix2 basic
-  (defrole client
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat (enc (enc k (hash (cat (enc tc n2 (privk c)) c t n1))
-                       (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))))
-    (uniq-orig n1 n2))
-  (defrole auth
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat (enc (enc k (hash (cat (enc tc n2 (privk c)) c t n1))
-                       (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))))
-    (uniq-orig k ak)))
-
-;;;;;;;;;;;;;;;;;;;;;
-;;                 ;;
-;; Goal Statements ;;
-;;                 ;;
-;;;;;;;;;;;;;;;;;;;;;
-
-;; This is the goal that the authors discovered was not met by the
-;; original, flawed version, but which was met by both fixes.
-(defgoal pkinit-flawed
-  (forall ((c as name) (k skey) (z strd))
-          (implies
-           (and (p "client" z 2)
-                (p "client" "c" z c)
-                (p "client" "as" z as)
-                (p "client" "k" z k)
-                (non (privk as))
-                (non (privk c)))
-           (exists ((z-0 strd))
-                   (and (p "auth" z-0 2)
-                        (p "auth" "as" z-0 as)
-                        (p "auth" "k" z-0 k)
-                        (p "auth" "c" z-0 c))))))
-
-;; Since we reference the protocol in the expression of the goal, we
-;; must repeat it once for every protocol against which we would like
-;; to evaluate the goal.
-(defgoal pkinit-fix1
-  (forall ((c as name) (k skey) (z strd))
-          (implies
-           (and (p "client" z 2)
-                (p "client" "c" z c)
-                (p "client" "as" z as)
-                (p "client" "k" z k)
-                (non (privk as))
-                (non (privk c)))
-           (exists ((z-0 strd))
-                   (and (p "auth" z-0 2)
-                        (p "auth" "as" z-0 as)
-                        (p "auth" "k" z-0 k)
-                        (p "auth" "c" z-0 c))))))
-
-;; Repeated once more.
-(defgoal pkinit-fix2
-  (forall ((c as name) (k skey) (z strd))
-          (implies
-           (and (p "client" z 2)
-                (p "client" "c" z c)
-                (p "client" "as" z as)
-                (p "client" "k" z k)
-                (non (privk as))
-                (non (privk c)))
-           (exists ((z-0 strd))
-                   (and (p "auth" z-0 2)
-                        (p "auth" "as" z-0 as)
-                        (p "auth" "k" z-0 k)
-                        (p "auth" "c" z-0 c))))))
-
-;;;;;;;;
-
-(defgoal pkinit-flawed
-  (forall ((c c-0 as name) (k skey) (z z-0 strd))
-          (implies
-           (and (p "client" z 2)
-                (p "client" "c" z c)
-                (p "client" "as" z as)
-                (p "client" "k" z k)
-                (p "auth" z-0 2)
-                (p "auth" "k" z-0 k)
-                (p "auth" "c" z-0 c-0)
-                (non (privk as))
-                (non (privk c)))
-           ;(exists ((z-1 strd))
-           ;        (p "client" 1 z-1))
-           (= c c-0)
-           )))
-
-(defgoal pkinit-fix1
-  (forall ((c c-0 as name) (k skey) (z z-0 strd))
-          (implies
-           (and (p "client" z 2)
-                (p "client" "c" z c)
-                (p "client" "as" z as)
-                (p "client" "k" z k)
-                (p "auth" z-0 2)
-                (p "auth" "k" z-0 k)
-                (p "auth" "c" z-0 c-0)
-                (non (privk as))
-                (non (privk c)))
-           (exists ((z-1 strd))
-                   (p "client" z-1 2))
-           ;(= c c-0)
-           )))
-
-(defgoal pkinit-fix2
-  (forall ((c c-0 as name) (k skey) (z z-0 strd))
-          (implies
-           (and (p "client" z 2)
-                (p "client" "c" z c)
-                (p "client" "as" z as)
-                (p "client" "k" z k)
-                (p "auth" z-0 2)
-                (p "auth" "k" z-0 k)
-                (p "auth" "c" z-0 c-0)
-                (non (privk as))
-                (non (privk c)))
-           (exists ((z-1 strd))
-                   (p "client" z-1 2)))))
diff --git a/doc/examples/pkinit.xhtml b/doc/examples/pkinit.xhtml
deleted file mode 100644
--- a/doc/examples/pkinit.xhtml
+++ /dev/null
@@ -1,2356 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Kerberos PKINIT</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(herald &quot;Kerberos PKINIT&quot;)
-(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from pkinit.scm&quot;)</pre>
-
-<p id="top">Trees: <a href="#t0">0</a> <a href="#t2">2</a> <a href="#t8">8</a> <a href="#t13">13</a> <a href="#t16">16</a> <a href="#t23">23</a>.</p>
-
-<p id="t0">Tree <a href="#top">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k1&quot;, &quot;_self&quot;)'>1</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol pkinit-flawed basic
-  (defrole client
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    (uniq-orig n2 n1))
-  (defrole auth
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    (uniq-orig k ak)))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g>
-   <title>(cat (enc (enc k n2 (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text
-    x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>pkinit-flawed 0</text></svg></div>
-
-<pre>(defskeleton pkinit-flawed
-  (vars (n2 n1 text) (tc tk tgt data) (c as t name) (k ak skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1)
-  (goals
-    (forall ((c as name) (k skey) (z strd))
-      (implies
-        (and (p &quot;client&quot; z 2) (p &quot;client&quot; &quot;c&quot; z c)
-          (p &quot;client&quot; &quot;as&quot; z as) (p &quot;client&quot; &quot;k&quot; z k) (non (privk as))
-          (non (privk c)))
-        (exists ((z-0 strd))
-          (and (p &quot;auth&quot; z-0 2) (p &quot;auth&quot; &quot;as&quot; z-0 as)
-            (p &quot;auth&quot; &quot;k&quot; z-0 k) (p &quot;auth&quot; &quot;c&quot; z-0 c))))))
-  (label 0)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc k n2 (privk as)) (pubk c-0)) c-0 tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc-0 n2 (privk c-0)) c-0 t-0 n1-0)</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(cat (enc (enc k n2 (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c-0) (t t-0) (as as) (k k) (ak ak-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text
-    x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>pkinit-flawed 1 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton pkinit-flawed
-  (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c as t c-0 t-0 name) (k ak ak-0 skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand auth 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0)
-    (c c-0) (t t-0) (as as) (k k) (ak ak-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak-0)
-  (operation encryption-test (added-strand auth 2) (enc k n2 (privk as))
-    (0 1))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (satisfies (no (c c) (as as) (k k) (z 0)))
-  (maps
-    ((0)
-      ((c c) (as as) (k k) (t t) (n2 n2) (n1 n1) (tc tc) (tk tk)
-        (tgt tgt) (ak ak))))
-  (origs (k (1 1)) (ak-0 (1 1)) (n1 (0 0)) (n2 (0 0))))</pre>
-
-<p id="t2">Tree <a href="#top">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.600pt' height='154.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.600 154.920' font-size='12.000'>
-  <text
-   x='239.640' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k7&quot;, &quot;_self&quot;)'>7</text>
-  <line
-   x1='189.720' y1='114.960' x2='239.640' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k6&quot;, &quot;_self&quot;)'>6</text>
-  <line
-   x1='139.800' y1='77.460' x2='189.720' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k5&quot;, &quot;_self&quot;)'>5</text>
-  <line
-   x1='139.800' y1='77.460' x2='189.720' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k4&quot;, &quot;_self&quot;)'>4</text>
-  <line
-   x1='89.880' y1='77.460' x2='139.800' y2='77.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k3&quot;, &quot;_self&quot;)'>3</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='77.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k2&quot;, &quot;_self&quot;)'>2</text>
-  </svg></div>
-
-<pre>(defprotocol pkinit-fix1 basic
-  (defrole client
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    (uniq-orig n2 n1))
-  (defrole auth
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    (uniq-orig k ak)))</pre>
-
-<p id="k2">Item <a href="#t2">2</a>, Child: <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g>
-   <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text
-    x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix1 2</text></svg></div>
-
-<pre>(defskeleton pkinit-fix1
-  (vars (n2 n1 text) (tc tk tgt data) (c as t name) (k ak skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1)
-  (goals
-    (forall ((c as name) (k skey) (z strd))
-      (implies
-        (and (p &quot;client&quot; z 2) (p &quot;client&quot; &quot;c&quot; z c)
-          (p &quot;client&quot; &quot;as&quot; z as) (p &quot;client&quot; &quot;k&quot; z k) (non (privk as))
-          (non (privk c)))
-        (exists ((z-0 strd))
-          (and (p &quot;auth&quot; z-0 2) (p &quot;auth&quot; &quot;as&quot; z-0 as)
-            (p &quot;auth&quot; &quot;k&quot; z-0 k) (p &quot;auth&quot; &quot;c&quot; z-0 c))))))
-  (label 2)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k3">Item <a href="#t2">3</a>, Parent: <a href="#k2">2</a>, Child: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc-0 n2 (privk c)) c t-0 n1-0)</title>
-   <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text
-    x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix1 3</text></svg></div>
-
-<pre>(defskeleton pkinit-fix1
-  (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c as t t-0 name) (k ak ak-0 skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand auth 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0)
-    (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak-0)
-  (operation encryption-test (added-strand auth 2)
-    (enc k n2 c (privk as)) (0 1))
-  (label 3)
-  (parent 2)
-  (unrealized (0 1) (1 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k4">Item <a href="#t2">4</a>, Parent: <a href="#k3">3</a>, Children: <a href="#k5">5</a> <a href="#k6">6</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c)) c t-0 n1-0)</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text
-    x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix1 4</text></svg></div>
-
-<pre>(defskeleton pkinit-fix1
-  (vars (n2 n1 n1-0 text) (tc tk tgt tk-0 tgt-0 data) (c as t t-0 name)
-    (k ak ak-0 skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand auth 2 (n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0)
-    (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak-0)
-  (operation encryption-test (displaced 2 0 client 1)
-    (enc tc-0 n2 (privk c)) (1 0))
-  (label 4)
-  (parent 3)
-  (unrealized (0 1))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k5">Item <a href="#t2">5</a>, Parent: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak n1 tk t k))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text
-    x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix1 5 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton pkinit-fix1
-  (vars (n2 n1 text) (tc tgt tk tgt-0 data) (c as t name) (k ak skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak)
-  (operation encryption-test (displaced 2 1 auth 2)
-    (enc ak-0 n1-0 tk-0 t-0 k) (0 1))
-  (label 5)
-  (parent 4)
-  (unrealized)
-  (shape)
-  (satisfies yes)
-  (maps
-    ((0)
-      ((c c) (as as) (k k) (t t) (n2 n2) (n1 n1) (tc tc) (tk tk)
-        (tgt tgt) (ak ak))))
-  (origs (k (1 1)) (ak (1 1)) (n1 (0 0)) (n2 (0 0))))</pre>
-
-<p id="k6">Item <a href="#t2">6</a>, Parent: <a href="#k4">4</a>, Child: <a href="#k7">7</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k</title><circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c)) c t-0 n1-0)</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text
-    x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix1 6</text></svg></div>
-
-<pre>(defskeleton pkinit-fix1
-  (vars (n2 n1 n1-0 text) (tc tk tgt tk-0 tgt-0 data) (c as t t-0 name)
-    (k ak ak-0 skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand auth 2 (n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0)
-    (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (deflistener k)
-  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak-0)
-  (operation encryption-test (added-listener k) (enc ak n1 tk t k)
-    (0 1))
-  (label 6)
-  (parent 4)
-  (unrealized (2 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k7">Item <a href="#t2">7</a>, Parent: <a href="#k6">6</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>ak-0</title><circle cx='239.880' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>ak-0</title>
-   <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc ak-0 n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 ak-0))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c)) c t-0 n1-0)</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(cat (enc (enc ak-0 n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t ak-0))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k ak-0) (ak ak-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k ak-0) (ak ak))</title>
-   <text
-    x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix1 7</text></svg></div>
-
-<pre>(defskeleton pkinit-fix1
-  (vars (n2 n1 n1-0 text) (tc tk tgt tk-0 tgt-0 data) (c as t t-0 name)
-    (ak ak-0 skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k ak-0) (ak ak))
-  (defstrand auth 2 (n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0)
-    (c c) (t t-0) (as as) (k ak-0) (ak ak-0))
-  (deflistener ak-0)
-  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 ak-0)
-  (operation nonce-test (displaced 3 1 auth 2) k (2 0)
-    (enc (enc k n2 c (privk as)) (pubk c)))
-  (label 7)
-  (parent 6)
-  (unrealized (2 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="t8">Tree <a href="#top">8</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='229.680pt' height='154.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 229.680 154.920' font-size='12.000'>
-  <text
-   x='189.720' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k12&quot;, &quot;_self&quot;)'>12</text>
-  <line
-   x1='139.800' y1='114.960' x2='189.720' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k11&quot;, &quot;_self&quot;)'>11</text>
-  <line
-   x1='89.880' y1='77.460' x2='139.800' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k10&quot;, &quot;_self&quot;)'>10</text>
-  <line
-   x1='89.880' y1='77.460' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k9&quot;, &quot;_self&quot;)'>9</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='77.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k8&quot;, &quot;_self&quot;)'>8</text>
-  </svg></div>
-
-<pre>(defprotocol pkinit-fix2 basic
-  (defrole client
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt (enc ak n1 tk t k))))
-    (uniq-orig n2 n1))
-  (defrole auth
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt (enc ak n1 tk t k))))
-    (uniq-orig k ak)))</pre>
-
-<p id="k8">Item <a href="#t8">8</a>, Child: <a href="#k9">9</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g>
-   <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text
-    x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix2 8</text></svg></div>
-
-<pre>(defskeleton pkinit-fix2
-  (vars (n2 n1 text) (tc tk tgt data) (c as t name) (k ak skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1)
-  (goals
-    (forall ((c as name) (k skey) (z strd))
-      (implies
-        (and (p &quot;client&quot; z 2) (p &quot;client&quot; &quot;c&quot; z c)
-          (p &quot;client&quot; &quot;as&quot; z as) (p &quot;client&quot; &quot;k&quot; z k) (non (privk as))
-          (non (privk c)))
-        (exists ((z-0 strd))
-          (and (p &quot;auth&quot; z-0 2) (p &quot;auth&quot; &quot;as&quot; z-0 as)
-            (p &quot;auth&quot; &quot;k&quot; z-0 k) (p &quot;auth&quot; &quot;c&quot; z-0 c))))))
-  (label 8)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k9">Item <a href="#t8">9</a>, Parent: <a href="#k8">8</a>, Children: <a href="#k10">10</a> <a href="#k11">11</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text
-    x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix2 9</text></svg></div>
-
-<pre>(defskeleton pkinit-fix2
-  (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c as t name)
-    (k ak ak-0 skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c)
-    (t t) (as as) (k k) (ak ak-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak-0)
-  (operation encryption-test (added-strand auth 2)
-    (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (0 1))
-  (label 9)
-  (parent 8)
-  (unrealized (0 1))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k10">Item <a href="#t8">10</a>, Parent: <a href="#k9">9</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak n1 tk t k))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text
-    x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix2 10 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton pkinit-fix2
-  (vars (n2 n1 text) (tc tgt tk tgt-0 data) (c as t name) (k ak skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak)
-  (operation encryption-test (displaced 2 1 auth 2)
-    (enc ak-0 n1 tk-0 t k) (0 1))
-  (label 10)
-  (parent 9)
-  (unrealized)
-  (shape)
-  (satisfies yes)
-  (maps
-    ((0)
-      ((c c) (as as) (k k) (t t) (n2 n2) (n1 n1) (tc tc) (tk tk)
-        (tgt tgt) (ak ak))))
-  (origs (k (1 1)) (ak (1 1)) (n1 (0 0)) (n2 (0 0))))</pre>
-
-<p id="k11">Item <a href="#t8">11</a>, Parent: <a href="#k9">9</a>, Child: <a href="#k12">12</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k</title><circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text
-    x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix2 11</text></svg></div>
-
-<pre>(defskeleton pkinit-fix2
-  (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c as t name)
-    (k ak ak-0 skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c)
-    (t t) (as as) (k k) (ak ak-0))
-  (deflistener k)
-  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak-0)
-  (operation encryption-test (added-listener k) (enc ak n1 tk t k)
-    (0 1))
-  (label 11)
-  (parent 9)
-  (unrealized (2 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k12">Item <a href="#t8">12</a>, Parent: <a href="#k11">11</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>ak-0</title><circle cx='239.880' cy='264.960' r='6.000'/>
-   </g>
-  <g><title>ak-0</title>
-   <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 189.960 Q 186.900 189.960 233.880 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc ak-0 (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t ak-0))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(cat (enc (enc ak-0 (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t ak-0))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t) (as as) (k ak-0) (ak ak-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k ak-0) (ak ak))</title>
-   <text
-    x='39.960' y='77.460' style='text-anchor: middle;'>client</text></g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix2 12</text></svg></div>
-
-<pre>(defskeleton pkinit-fix2
-  (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c as t name)
-    (ak ak-0 skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k ak-0) (ak ak))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c)
-    (t t) (as as) (k ak-0) (ak ak-0))
-  (deflistener ak-0)
-  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 ak-0)
-  (operation nonce-test (displaced 3 1 auth 2) k (2 0)
-    (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-      (pubk c)))
-  (label 12)
-  (parent 11)
-  (unrealized (2 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="t13">Tree <a href="#top">13</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.760pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.760 79.920' font-size='12.000'>
-  <text
-   x='139.800' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k15&quot;, &quot;_self&quot;)'>15</text>
-  <line
-   x1='89.880' y1='39.960' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k14&quot;, &quot;_self&quot;)'>14</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k13&quot;, &quot;_self&quot;)'>13</text>
-  </svg></div>
-
-<pre>(defprotocol pkinit-flawed basic
-  (defrole client
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    (uniq-orig n2 n1))
-  (defrole auth
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    (uniq-orig k ak)))</pre>
-
-<p id="k13">Item <a href="#t13">13</a>, Child: <a href="#k14">14</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g>
-   <title>(cat (enc (enc k n2-0 (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(cat (enc (enc k n2 (privk as-0)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>client</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as-0) (k k) (ak ak))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>pkinit-flawed 13</text></svg></div>
-
-<pre>(defskeleton pkinit-flawed
-  (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c c-0 as t as-0 t-0 name) (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)
-    (t t) (as as-0) (k k) (ak ak))
-  (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0)
-    (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2-0 n1-0 k ak)
-  (goals
-    (forall ((c c-0 as name) (k skey) (z z-0 strd))
-      (implies
-        (and (p &quot;client&quot; z 2) (p &quot;client&quot; &quot;c&quot; z c)
-          (p &quot;client&quot; &quot;as&quot; z as) (p &quot;client&quot; &quot;k&quot; z k) (p &quot;auth&quot; z-0 2)
-          (p &quot;auth&quot; &quot;k&quot; z-0 k) (p &quot;auth&quot; &quot;c&quot; z-0 c-0) (non (privk as))
-          (non (privk c))) (= c c-0))))
-  (label 13)
-  (unrealized (1 1))
-  (origs (n1-0 (1 0)) (n2-0 (1 0)) (k (0 1)) (ak (0 1)))
-  (preskeleton)
-  (comment &quot;Not a skeleton&quot;))</pre>
-
-<p id="k14">Item <a href="#t13">14</a>, Parent: <a href="#k13">13</a>, Child: <a href="#k15">15</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g>
-   <title>(cat (enc (enc k n2-0 (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc k n2 (privk as-0)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>client</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as-0) (k k) (ak ak))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>pkinit-flawed 14</text></svg></div>
-
-<pre>(defskeleton pkinit-flawed
-  (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c c-0 as t as-0 t-0 name) (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)
-    (t t) (as as-0) (k k) (ak ak))
-  (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0)
-    (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (precedes ((0 1) (1 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2-0 n1-0 k ak)
-  (goals
-    (forall ((c c-0 as name) (k skey) (z z-0 strd))
-      (implies
-        (and (p &quot;client&quot; z 2) (p &quot;client&quot; &quot;c&quot; z c)
-          (p &quot;client&quot; &quot;as&quot; z as) (p &quot;client&quot; &quot;k&quot; z k) (p &quot;auth&quot; z-0 2)
-          (p &quot;auth&quot; &quot;k&quot; z-0 k) (p &quot;auth&quot; &quot;c&quot; z-0 c-0) (non (privk as))
-          (non (privk c))) (= c c-0))))
-  (label 14)
-  (parent 13)
-  (unrealized (1 1))
-  (origs (n1-0 (1 0)) (n2-0 (1 0)) (k (0 1)) (ak (0 1)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k15">Item <a href="#t13">15</a>, Parent: <a href="#k14">14</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g>
-   <title>(cat (enc (enc k n2 (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc tc-0 n2 (privk c)) c t-0 n1-0)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc k n2 (privk as)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>client</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as) (k k) (ak ak))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>pkinit-flawed 15 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton pkinit-flawed
-  (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c c-0 t as t-0 name) (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand client 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0)
-    (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1-0 k ak)
-  (operation encryption-test (displaced 2 0 auth 2)
-    (enc k n2-0 (privk as-0)) (1 1))
-  (label 15)
-  (parent 14)
-  (unrealized)
-  (shape)
-  (satisfies (no (c c) (c-0 c-0) (as as) (k k) (z 1) (z-0 0)))
-  (maps
-    ((0 1)
-      ((c c) (c-0 c-0) (as as) (k k) (t t) (as-0 as) (n2 n2) (n1 n1)
-        (tc tc) (tk tk) (tgt tgt) (ak ak) (t-0 t-0) (n2-0 n2)
-        (n1-0 n1-0) (tc-0 tc-0) (tk-0 tk-0) (tgt-0 tgt-0) (ak-0 ak-0))))
-  (origs (k (0 1)) (ak (0 1)) (n1-0 (1 0)) (n2 (1 0))))</pre>
-
-<p id="t16">Tree <a href="#top">16</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.600pt' height='154.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.600 154.920' font-size='12.000'>
-  <text
-   x='239.640' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k22&quot;, &quot;_self&quot;)'>22</text>
-  <line
-   x1='189.720' y1='114.960' x2='239.640' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k20&quot;, &quot;_self&quot;)'>20</text>
-  <line
-   x1='139.800' y1='77.460' x2='189.720' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k21&quot;, &quot;_self&quot;)'>21</text>
-  <line
-   x1='189.720' y1='39.960' x2='239.640' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k19&quot;, &quot;_self&quot;)'>19</text>
-  <line
-   x1='139.800' y1='77.460' x2='189.720' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k18&quot;, &quot;_self&quot;)'>18</text>
-  <line
-   x1='89.880' y1='77.460' x2='139.800' y2='77.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k17&quot;, &quot;_self&quot;)'>17</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='77.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k16&quot;, &quot;_self&quot;)'>16</text>
-  </svg></div>
-
-<pre>(defprotocol pkinit-fix1 basic
-  (defrole client
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    (uniq-orig n2 n1))
-  (defrole auth
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    (uniq-orig k ak)))</pre>
-
-<p id="k16">Item <a href="#t16">16</a>, Child: <a href="#k17">17</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g>
-   <title>(cat (enc (enc k n2-0 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(cat (enc (enc k n2 c-0 (privk as-0)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>client</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as-0) (k k) (ak ak))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix1 16</text></svg></div>
-
-<pre>(defskeleton pkinit-fix1
-  (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c c-0 as t as-0 t-0 name) (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)
-    (t t) (as as-0) (k k) (ak ak))
-  (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0)
-    (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2-0 n1-0 k ak)
-  (goals
-    (forall ((c c-0 as name) (k skey) (z z-0 strd))
-      (implies
-        (and (p &quot;client&quot; z 2) (p &quot;client&quot; &quot;c&quot; z c)
-          (p &quot;client&quot; &quot;as&quot; z as) (p &quot;client&quot; &quot;k&quot; z k) (p &quot;auth&quot; z-0 2)
-          (p &quot;auth&quot; &quot;k&quot; z-0 k) (p &quot;auth&quot; &quot;c&quot; z-0 c-0) (non (privk as))
-          (non (privk c))) (exists ((z-1 strd)) (p &quot;client&quot; z-1 2)))))
-  (label 16)
-  (unrealized (1 1))
-  (origs (n1-0 (1 0)) (n2-0 (1 0)) (k (0 1)) (ak (0 1)))
-  (preskeleton)
-  (comment &quot;Not a skeleton&quot;))</pre>
-
-<p id="k17">Item <a href="#t16">17</a>, Parent: <a href="#k16">16</a>, Child: <a href="#k18">18</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g>
-   <title>(cat (enc (enc k n2-0 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc k n2 c-0 (privk as-0)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>client</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as-0) (k k) (ak ak))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix1 17</text></svg></div>
-
-<pre>(defskeleton pkinit-fix1
-  (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c c-0 as t as-0 t-0 name) (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)
-    (t t) (as as-0) (k k) (ak ak))
-  (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0)
-    (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (precedes ((0 1) (1 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2-0 n1-0 k ak)
-  (goals
-    (forall ((c c-0 as name) (k skey) (z z-0 strd))
-      (implies
-        (and (p &quot;client&quot; z 2) (p &quot;client&quot; &quot;c&quot; z c)
-          (p &quot;client&quot; &quot;as&quot; z as) (p &quot;client&quot; &quot;k&quot; z k) (p &quot;auth&quot; z-0 2)
-          (p &quot;auth&quot; &quot;k&quot; z-0 k) (p &quot;auth&quot; &quot;c&quot; z-0 c-0) (non (privk as))
-          (non (privk c))) (exists ((z-1 strd)) (p &quot;client&quot; z-1 2)))))
-  (label 17)
-  (parent 16)
-  (unrealized (1 1))
-  (origs (n1-0 (1 0)) (n2-0 (1 0)) (k (0 1)) (ak (0 1)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k18">Item <a href="#t16">18</a>, Parent: <a href="#k17">17</a>, Children: <a href="#k19">19</a> <a href="#k20">20</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g>
-   <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc tc-0 n2 (privk c)) c t-0 n1-0)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>client</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix1 18</text></svg></div>
-
-<pre>(defskeleton pkinit-fix1
-  (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c t as t-0 name) (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand client 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0)
-    (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1-0 k ak)
-  (operation encryption-test (displaced 2 0 auth 2)
-    (enc k n2-0 c-0 (privk as-0)) (1 1))
-  (label 18)
-  (parent 17)
-  (unrealized (0 0) (1 1))
-  (origs (k (0 1)) (ak (0 1)) (n1-0 (1 0)) (n2 (1 0)))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k19">Item <a href="#t16">19</a>, Parent: <a href="#k18">18</a>, Child: <a href="#k21">21</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g>
-   <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak n1 tk t k))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc tc-0 n2 (privk c)) c t n1)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc-0) (tk tk) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>client</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix1 19</text></svg></div>
-
-<pre>(defskeleton pkinit-fix1
-  (vars (n2 n1 text) (tc tk tgt tc-0 tgt-0 data) (c t as name)
-    (k ak skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc-0) (tk tk) (tgt tgt-0)
-    (c c) (t t) (as as) (k k) (ak ak))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak)
-  (operation encryption-test (displaced 2 0 auth 2)
-    (enc ak-0 n1-0 tk-0 t-0 k) (1 1))
-  (label 19)
-  (parent 18)
-  (unrealized (0 0))
-  (origs (k (0 1)) (ak (0 1)) (n1 (1 0)) (n2 (1 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k20">Item <a href="#t16">20</a>, Parent: <a href="#k18">18</a>, Child: <a href="#k22">22</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k</title><circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc tc-0 n2 (privk c)) c t-0 n1-0)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>client</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix1 20</text></svg></div>
-
-<pre>(defskeleton pkinit-fix1
-  (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c t as t-0 name) (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand client 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0)
-    (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (deflistener k)
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (1 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1-0 k ak)
-  (operation encryption-test (added-listener k)
-    (enc ak-0 n1-0 tk-0 t-0 k) (1 1))
-  (label 20)
-  (parent 18)
-  (unrealized (0 0) (2 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k21">Item <a href="#t16">21</a>, Parent: <a href="#k19">19</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g>
-   <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0 (enc ak n1 tk t k))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>client</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix1 21 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton pkinit-fix1
-  (vars (n2 n1 text) (tk tgt tc tgt-0 data) (c t as name) (k ak skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak)
-  (operation encryption-test (displaced 2 1 client 1)
-    (enc tc-0 n2 (privk c)) (0 0))
-  (label 21)
-  (parent 19)
-  (unrealized)
-  (shape)
-  (satisfies yes)
-  (maps
-    ((0 1)
-      ((c c) (c-0 c) (as as) (k k) (t t) (as-0 as) (n2 n2) (n1 n1)
-        (tc tc) (tk tk) (tgt tgt) (ak ak) (t-0 t) (n2-0 n2) (n1-0 n1)
-        (tc-0 tc) (tk-0 tk) (tgt-0 tgt-0) (ak-0 ak))))
-  (origs (n1 (1 0)) (n2 (1 0)) (k (0 1)) (ak (0 1))))</pre>
-
-<p id="k22">Item <a href="#t16">22</a>, Parent: <a href="#k20">20</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>ak</title><circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>ak</title>
-   <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat (enc (enc ak n2 c (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 ak))</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc tc-0 n2 (privk c)) c t-0 n1-0)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc ak n2 c (privk as)) (pubk c)) c tgt (enc ak n1 tk t ak))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k ak) (ak ak-0))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>client</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k ak) (ak ak))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix1 22</text></svg></div>
-
-<pre>(defskeleton pkinit-fix1
-  (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c t as t-0 name) (ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k ak) (ak ak))
-  (defstrand client 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0)
-    (c c) (t t-0) (as as) (k ak) (ak ak-0))
-  (deflistener ak)
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (1 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1-0 ak)
-  (operation nonce-test (displaced 3 0 auth 2) k (2 0)
-    (enc (enc k n2 c (privk as)) (pubk c)))
-  (label 22)
-  (parent 20)
-  (unrealized (0 0) (2 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="t23">Tree <a href="#top">23</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.600pt' height='154.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.600 154.920' font-size='12.000'>
-  <text
-   x='239.640' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k28&quot;, &quot;_self&quot;)'>28</text>
-  <line
-   x1='189.720' y1='114.960' x2='239.640' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k27&quot;, &quot;_self&quot;)'>27</text>
-  <line
-   x1='139.800' y1='77.460' x2='189.720' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k26&quot;, &quot;_self&quot;)'>26</text>
-  <line
-   x1='139.800' y1='77.460' x2='189.720' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k25&quot;, &quot;_self&quot;)'>25</text>
-  <line
-   x1='89.880' y1='77.460' x2='139.800' y2='77.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k24&quot;, &quot;_self&quot;)'>24</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='77.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k23&quot;, &quot;_self&quot;)'>23</text>
-  </svg></div>
-
-<pre>(defprotocol pkinit-fix2 basic
-  (defrole client
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt (enc ak n1 tk t k))))
-    (uniq-orig n2 n1))
-  (defrole auth
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt (enc ak n1 tk t k))))
-    (uniq-orig k ak)))</pre>
-
-<p id="k23">Item <a href="#t23">23</a>, Child: <a href="#k24">24</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g>
-   <title>(cat (enc (enc k (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(cat (enc (enc k (hash (enc tc n2 (privk c-0)) c-0 t n1) (privk as-0)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>client</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as-0) (k k) (ak ak))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix2 23</text></svg></div>
-
-<pre>(defskeleton pkinit-fix2
-  (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c c-0 as t as-0 t-0 name) (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)
-    (t t) (as as-0) (k k) (ak ak))
-  (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0)
-    (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2-0 n1-0 k ak)
-  (goals
-    (forall ((c c-0 as name) (k skey) (z z-0 strd))
-      (implies
-        (and (p &quot;client&quot; z 2) (p &quot;client&quot; &quot;c&quot; z c)
-          (p &quot;client&quot; &quot;as&quot; z as) (p &quot;client&quot; &quot;k&quot; z k) (p &quot;auth&quot; z-0 2)
-          (p &quot;auth&quot; &quot;k&quot; z-0 k) (p &quot;auth&quot; &quot;c&quot; z-0 c-0) (non (privk as))
-          (non (privk c))) (exists ((z-1 strd)) (p &quot;client&quot; z-1 2)))))
-  (label 23)
-  (unrealized (1 1))
-  (origs (n1-0 (1 0)) (n2-0 (1 0)) (k (0 1)) (ak (0 1)))
-  (preskeleton)
-  (comment &quot;Not a skeleton&quot;))</pre>
-
-<p id="k24">Item <a href="#t23">24</a>, Parent: <a href="#k23">23</a>, Child: <a href="#k25">25</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g>
-   <title>(cat (enc (enc k (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1-0 tk-0 t-0 k))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc k (hash (enc tc n2 (privk c-0)) c-0 t n1) (privk as-0)) (pubk c-0)) c-0 tgt (enc ak n1 tk t k))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c-0)) c-0 t n1)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>client</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0) (t t) (as as-0) (k k) (ak ak))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix2 24</text></svg></div>
-
-<pre>(defskeleton pkinit-fix2
-  (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c c-0 as t as-0 t-0 name) (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)
-    (t t) (as as-0) (k k) (ak ak))
-  (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0)
-    (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (precedes ((0 1) (1 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2-0 n1-0 k ak)
-  (goals
-    (forall ((c c-0 as name) (k skey) (z z-0 strd))
-      (implies
-        (and (p &quot;client&quot; z 2) (p &quot;client&quot; &quot;c&quot; z c)
-          (p &quot;client&quot; &quot;as&quot; z as) (p &quot;client&quot; &quot;k&quot; z k) (p &quot;auth&quot; z-0 2)
-          (p &quot;auth&quot; &quot;k&quot; z-0 k) (p &quot;auth&quot; &quot;c&quot; z-0 c-0) (non (privk as))
-          (non (privk c))) (exists ((z-1 strd)) (p &quot;client&quot; z-1 2)))))
-  (label 24)
-  (parent 23)
-  (unrealized (1 1))
-  (origs (n1-0 (1 0)) (n2-0 (1 0)) (k (0 1)) (ak (0 1)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k25">Item <a href="#t23">25</a>, Parent: <a href="#k24">24</a>, Children: <a href="#k26">26</a> <a href="#k27">27</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g>
-   <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak-0))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>client</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix2 25</text></svg></div>
-
-<pre>(defskeleton pkinit-fix2
-  (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c t as name)
-    (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0)
-    (c c) (t t) (as as) (k k) (ak ak-0))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak)
-  (operation encryption-test (displaced 2 0 auth 2)
-    (enc k (hash (enc tc-0 n2-0 (privk c-0)) c-0 t-0 n1-0) (privk as-0))
-    (1 1))
-  (label 25)
-  (parent 24)
-  (unrealized (1 1))
-  (origs (k (0 1)) (ak (0 1)) (n1 (1 0)) (n2 (1 0)))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k26">Item <a href="#t23">26</a>, Parent: <a href="#k25">25</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g>
-   <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak n1 tk t k))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>client</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix2 26 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton pkinit-fix2
-  (vars (n2 n1 text) (tc tk tgt tgt-0 data) (c t as name) (k ak skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak)
-  (operation encryption-test (displaced 2 0 auth 2)
-    (enc ak-0 n1 tk-0 t k) (1 1))
-  (label 26)
-  (parent 25)
-  (unrealized)
-  (shape)
-  (satisfies yes)
-  (maps
-    ((0 1)
-      ((c c) (c-0 c) (as as) (k k) (t t) (as-0 as) (n2 n2) (n1 n1)
-        (tc tc) (tk tk) (tgt tgt) (ak ak) (t-0 t) (n2-0 n2) (n1-0 n1)
-        (tc-0 tc) (tk-0 tk) (tgt-0 tgt-0) (ak-0 ak))))
-  (origs (k (0 1)) (ak (0 1)) (n1 (1 0)) (n2 (1 0))))</pre>
-
-<p id="k27">Item <a href="#t23">27</a>, Parent: <a href="#k25">25</a>, Child: <a href="#k28">28</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k</title><circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k))</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t) (as as) (k k) (ak ak-0))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>client</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k k) (ak ak))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix2 27</text></svg></div>
-
-<pre>(defskeleton pkinit-fix2
-  (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c t as name)
-    (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0)
-    (c c) (t t) (as as) (k k) (ak ak-0))
-  (deflistener k)
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (1 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak)
-  (operation encryption-test (added-listener k) (enc ak-0 n1 tk-0 t k)
-    (1 1))
-  (label 27)
-  (parent 25)
-  (unrealized (2 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k28">Item <a href="#t23">28</a>, Parent: <a href="#k27">27</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>ak</title><circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>ak</title>
-   <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(cat (enc (enc ak (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t ak))</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (enc (enc ak (hash (enc tc n2 (privk c)) c t n1) (privk as)) (pubk c)) c tgt (enc ak n1 tk t ak))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (enc tc n2 (privk c)) c t n1)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c) (t t) (as as) (k ak) (ak ak-0))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>client</text>
-   </g>
-  <g>
-   <title>((n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c) (t t) (as as) (k ak) (ak ak))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>auth</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>pkinit-fix2 28</text></svg></div>
-
-<pre>(defskeleton pkinit-fix2
-  (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c t as name)
-    (ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k ak) (ak ak))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0)
-    (c c) (t t) (as as) (k ak) (ak ak-0))
-  (deflistener ak)
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (1 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 ak)
-  (operation nonce-test (displaced 3 0 auth 2) k (2 0)
-    (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-      (pubk c)))
-  (label 28)
-  (parent 27)
-  (unrealized (2 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-</body>
-</html>
diff --git a/doc/examples/plaindh.scm b/doc/examples/plaindh.scm
deleted file mode 100644
--- a/doc/examples/plaindh.scm
+++ /dev/null
@@ -1,25 +0,0 @@
-(herald "Plain diffie-hellman protocol with challenge-response" (algebra diffie-hellman)
-; (limit 1)
-)
-
-(defprotocol plaindh diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (n text))
-    (trace (send (exp (gen) x))
-           (recv (exp (gen) y))
-           (send (enc n (exp (gen) (mul x y))))
-           (recv n))
-    (uniq-orig n)
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (n text))
-    (trace (recv (exp (gen) x))
-           (send (exp (gen) y))
-           (recv (enc n (exp (gen) (mul x y))))
-           (send n))
-    (uniq-gen y))
-  (comment "Diffie-hellman key exchange followed by an encryption"))
-
-(defskeleton plaindh
-  (vars )
-  (defstrand init 4))
diff --git a/doc/examples/plaindh.xhtml b/doc/examples/plaindh.xhtml
deleted file mode 100644
--- a/doc/examples/plaindh.xhtml
+++ /dev/null
@@ -1,91 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Plain diffie-hellman protocol with challenge-response</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(herald &quot;Plain diffie-hellman protocol with challenge-response&quot;
-  (algebra diffie-hellman))
-(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from plaindh.scm&quot;)</pre>
-
-<p id="t0">Tree 0.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 79.920' font-size='12.000'>
-  <text
-   x='39.960' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol plaindh diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (n text))
-    (trace (send (exp (gen) x)) (recv (exp (gen) y))
-      (send (enc n (exp (gen) (mul x y)))) (recv n))
-    (uniq-orig n)
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (n text))
-    (trace (recv (exp (gen) x)) (send (exp (gen) y))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    (uniq-gen y)
-    (absent (y (exp (gen) x))))
-  (comment &quot;Diffie-hellman key exchange followed by an encryption&quot;))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(enc n (exp (gen) (mul x y)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(exp (gen) y)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n n) (x x) (y y))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>plaindh 0 (realized)</text></svg></div>
-
-<pre>(defskeleton plaindh
-  (vars (n text) (x rndx) (y expt))
-  (defstrand init 4 (n n) (x x) (y y))
-  (uniq-gen x)
-  (uniq-orig n)
-  (label 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((x x) (y y) (n n))))
-  (origs (n (0 2))))</pre>
-
-</body>
-</html>
diff --git a/doc/examples/priority_test.scm b/doc/examples/priority_test.scm
deleted file mode 100644
--- a/doc/examples/priority_test.scm
+++ /dev/null
@@ -1,28 +0,0 @@
-(herald "Receive priority test protocol"
-  )
-
-(defprotocol priority_test basic
-  (defrole init
-     (vars (n1 n2 n3 n4 text) (k skey))
-     (trace
-       (send (enc n1 n1 k))
-       (recv (enc n1 n2 k))
-       (recv (enc n1 n3 k))
-       (recv (enc n1 n4 k)))
-     (priority (2 0) (3 10))
-     (non-orig k)
-     (uniq-orig n1)
-  )
-)
-
-
-; Node 4 should realize first, then node 2, then node 3.
-(defskeleton priority_test
-   (vars (n1 text))
-   (defstrand init 4 (n1 n1)))
-
-; Node 3 should realize first, then node 2, then node 4.
-(defskeleton priority_test
-   (vars (n1 text))
-   (defstrand init 4 (n1 n1))
-   (priority ((0 2) 10) ((0 3) 0)))
diff --git a/doc/examples/priority_test.xhtml b/doc/examples/priority_test.xhtml
deleted file mode 100644
--- a/doc/examples/priority_test.xhtml
+++ /dev/null
@@ -1,356 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Receive priority test protocol</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(herald &quot;Receive priority test protocol&quot;)
-(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from priority_test.scm&quot;)</pre>
-
-<p id="top">Trees: <a href="#t0">0</a> <a href="#t3">3</a>.</p>
-
-<p id="t0">Tree <a href="#top">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.760pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.760 79.920' font-size='12.000'>
-  <text
-   x='139.800' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k2&quot;, &quot;_self&quot;)'>2</text>
-  <line
-   x1='89.880' y1='39.960' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k1&quot;, &quot;_self&quot;)'>1</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol priority_test basic
-  (defrole init
-    (vars (n1 n2 n3 n4 text) (k skey))
-    (trace (send (enc n1 n1 k)) (recv (enc n1 n2 k))
-      (recv (enc n1 n3 k)) (recv (enc n1 n4 k)))
-    (non-orig k)
-    (uniq-orig n1)
-    (priority (2 0) (3 10))))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n1 n4 k)</title>
-   <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(enc n1 n3 k)</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 k)</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 n1 k)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (n3 n3) (n4 n4) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>priority_test 0</text></svg></div>
-
-<pre>(defskeleton priority_test
-  (vars (n1 n2 n3 n4 text) (k skey))
-  (defstrand init 4 (n1 n1) (n2 n2) (n3 n3) (n4 n4) (k k))
-  (priority ((0 2) 0) ((0 3) 10))
-  (non-orig k)
-  (uniq-orig n1)
-  (label 0)
-  (unrealized (0 1) (0 2) (0 3))
-  (origs (n1 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k2">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n4 n4 k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(enc n4 n3 k)</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n4 n2 k)</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n4 n4 k)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n4) (n2 n2) (n3 n3) (n4 n4) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>priority_test 1</text></svg></div>
-
-<pre>(defskeleton priority_test
-  (vars (n2 n3 n4 text) (k skey))
-  (defstrand init 4 (n1 n4) (n2 n2) (n3 n3) (n4 n4) (k k))
-  (priority ((0 2) 0) ((0 3) 10))
-  (non-orig k)
-  (uniq-orig n4)
-  (operation encryption-test (displaced 1 0 init 1) (enc n4 n4 k) (0 3))
-  (label 1)
-  (parent 0)
-  (unrealized (0 1) (0 2))
-  (origs (n4 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n2 n2 k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(enc n2 n3 k)</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n2 n2 k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n2 n2 k)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n2) (n2 n2) (n3 n3) (n4 n2) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>priority_test 2</text></svg></div>
-
-<pre>(defskeleton priority_test
-  (vars (n2 n3 text) (k skey))
-  (defstrand init 4 (n1 n2) (n2 n2) (n3 n3) (n4 n2) (k k))
-  (priority ((0 2) 0) ((0 3) 10))
-  (non-orig k)
-  (uniq-orig n2)
-  (operation encryption-test (displaced 1 0 init 1) (enc n2 n2 k) (0 1))
-  (label 2)
-  (parent 1)
-  (unrealized (0 2))
-  (origs (n2 (0 0))))</pre>
-
-<p id="t3">Tree <a href="#top">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.760pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.760 79.920' font-size='12.000'>
-  <text
-   x='139.800' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k5&quot;, &quot;_self&quot;)'>5</text>
-  <line
-   x1='89.880' y1='39.960' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k4&quot;, &quot;_self&quot;)'>4</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k3&quot;, &quot;_self&quot;)'>3</text>
-  </svg></div>
-
-<pre>(defprotocol priority_test basic
-  (defrole init
-    (vars (n1 n2 n3 n4 text) (k skey))
-    (trace (send (enc n1 n1 k)) (recv (enc n1 n2 k))
-      (recv (enc n1 n3 k)) (recv (enc n1 n4 k)))
-    (non-orig k)
-    (uniq-orig n1)
-    (priority (2 0) (3 10))))</pre>
-
-<p id="k3">Item <a href="#t3">3</a>, Child: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n1 n4 k)</title>
-   <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(enc n1 n3 k)</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n1 n2 k)</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n1 n1 k)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (n3 n3) (n4 n4) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>priority_test 3</text></svg></div>
-
-<pre>(defskeleton priority_test
-  (vars (n1 n2 n3 n4 text) (k skey))
-  (defstrand init 4 (n1 n1) (n2 n2) (n3 n3) (n4 n4) (k k))
-  (priority ((0 2) 10) ((0 3) 0))
-  (non-orig k)
-  (uniq-orig n1)
-  (label 3)
-  (unrealized (0 1) (0 2) (0 3))
-  (origs (n1 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k4">Item <a href="#t3">4</a>, Parent: <a href="#k3">3</a>, Child: <a href="#k5">5</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n3 n4 k)</title>
-   <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(enc n3 n3 k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n3 n2 k)</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n3 n3 k)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n3) (n2 n2) (n3 n3) (n4 n4) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>priority_test 4</text></svg></div>
-
-<pre>(defskeleton priority_test
-  (vars (n2 n3 n4 text) (k skey))
-  (defstrand init 4 (n1 n3) (n2 n2) (n3 n3) (n4 n4) (k k))
-  (priority ((0 2) 10) ((0 3) 0))
-  (non-orig k)
-  (uniq-orig n3)
-  (operation encryption-test (displaced 1 0 init 1) (enc n3 n3 k) (0 2))
-  (label 4)
-  (parent 3)
-  (unrealized (0 1) (0 3))
-  (origs (n3 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k5">Item <a href="#t3">5</a>, Parent: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n2 n4 k)</title>
-   <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(enc n2 n2 k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n2 n2 k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n2 n2 k)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n2) (n2 n2) (n3 n2) (n4 n4) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>priority_test 5</text></svg></div>
-
-<pre>(defskeleton priority_test
-  (vars (n2 n4 text) (k skey))
-  (defstrand init 4 (n1 n2) (n2 n2) (n3 n2) (n4 n4) (k k))
-  (priority ((0 2) 10) ((0 3) 0))
-  (non-orig k)
-  (uniq-orig n2)
-  (operation encryption-test (displaced 1 0 init 1) (enc n2 n2 k) (0 1))
-  (label 5)
-  (parent 4)
-  (unrealized (0 3))
-  (origs (n2 (0 0))))</pre>
-
-</body>
-</html>
diff --git a/doc/examples/rules.scm b/doc/examples/rules.scm
deleted file mode 100644
--- a/doc/examples/rules.scm
+++ /dev/null
@@ -1,65 +0,0 @@
-(herald "Rules and Facts")
-
-(defprotocol neq-test basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace
-     (send (cat n1 (enc n1 n2 k)))
-     (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2))
-  (defrule neq
-    (forall ((a mesg))
-	    (implies
-	     (fact neq a a)
-	     (false))))
-  (comment "Impose an nequality constraint using facts and rules"))
-
-;;; With no inequality fact,
-;;; a shape should be found where n1 = n2.
-(defskeleton neq-test
-  (vars)
-  (defstrand init 2)
-  (comment "This skeleton should have a shape"))
-
-;;; With an inequality fact,
-;;; no shape should exist.
-(defskeleton neq-test
-  (vars (n1 n2 text))
-  (defstrand init 2 (n1 n1) (n2 n2))
-  (facts (neq n1 n2))			;  assert n1 != n2
-  (comment "This skeleton should have no shapes"))
-
-;;;
-
-(herald doorsep (comment "Door Simple Example Protocol"))
-
-(defprotocol doorsep basic
-  (defrole person
-    (vars (d p akey) (k skey) (t text))
-    (trace
-     (send (enc (enc k (invk p)) d))
-     (recv (enc t k))
-     (send t)))
-  (defrole door
-    (vars (d p akey) (k skey) (t text))
-    (trace
-     (recv (enc (enc k (invk p)) d))
-     (send (enc t k))
-     (recv t)))
-  (defrule trust
-    (forall ((z strd) (p d akey))
-	    (implies
-	     (and (p "person" z 1)
-		  (p "person" "p" z p)
-		  (p "person" "d" z d)
-		  (non (invk p)))
-	     (non (invk d))))
-    (comment "The trust rule"))
-  (comment "Door Simple Example Protocol"))
-
-(defskeleton doorsep
-  (vars (p akey))
-  (defstrand door 3 (p p))
-  (non-orig (invk p))
-  (comment "Analyze from the doors's perspective"))
diff --git a/doc/examples/rules.xhtml b/doc/examples/rules.xhtml
deleted file mode 100644
--- a/doc/examples/rules.xhtml
+++ /dev/null
@@ -1,389 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Rules and Facts</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(herald &quot;Rules and Facts&quot;)
-(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from rules.scm&quot;)</pre>
-
-<p id="top">Trees: <a href="#t0">0</a> <a href="#t2">2</a> <a href="#t3">3</a>.</p>
-
-<p id="t0">Tree <a href="#top">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k1&quot;, &quot;_self&quot;)'>1</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol neq-test basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2))
-  (defrule neq (forall ((a mesg)) (implies (fact neq a a) (false))))
-  (comment &quot;Impose an nequality constraint using facts and rules&quot;))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n2 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>neq-test 0</text>
-  </svg></div>
-
-<pre>(defskeleton neq-test
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (comment &quot;This skeleton should have a shape&quot;)
-  (label 0)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n1</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n1 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n1) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>neq-test 1 (realized)</text></svg></div>
-
-<pre>(defskeleton neq-test
-  (vars (n1 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n1) (k k))
-  (non-orig k)
-  (uniq-orig n1)
-  (operation nonce-test (displaced 1 0 init 1) n2 (0 1) (enc n1 n2 k))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n1 n1) (n2 n1) (k k))))
-  (origs (n1 (0 0))))</pre>
-
-<p id="t2">Tree <a href="#top">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 79.920' font-size='12.000'>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k2&quot;, &quot;_self&quot;)'>2</text>
-  </svg></div>
-
-<pre>(defprotocol neq-test basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2))
-  (defrule neq (forall ((a mesg)) (implies (fact neq a a) (false))))
-  (comment &quot;Impose an nequality constraint using facts and rules&quot;))</pre>
-
-<p id="k2">Item <a href="#t2">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n2 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>neq-test 2</text>
-  </svg></div>
-
-<pre>(defskeleton neq-test
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (facts (neq n1 n2))
-  (comment &quot;This skeleton should have no shapes&quot;)
-  (label 2)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="t3">Tree <a href="#top">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.760pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.760 79.920' font-size='12.000'>
-  <text
-   x='139.800' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k5&quot;, &quot;_self&quot;)'>5</text>
-  <line
-   x1='89.880' y1='39.960' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k4&quot;, &quot;_self&quot;)'>4</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k3&quot;, &quot;_self&quot;)'>3</text>
-  </svg></div>
-
-<pre>(defprotocol doorsep basic
-  (defrole person
-    (vars (d p akey) (k skey) (t text))
-    (trace (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t)))
-  (defrole door
-    (vars (d p akey) (k skey) (t text))
-    (trace (recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t)))
-  (defrule trust
-    (forall ((z strd) (p d akey))
-      (implies
-        (and (p &quot;person&quot; z 1) (p &quot;person&quot; &quot;p&quot; z p) (p &quot;person&quot; &quot;d&quot; z d)
-          (non (invk p)))
-        (non (invk d))))
-    (comment &quot;The trust rule&quot;))
-  (comment &quot;Door Simple Example Protocol&quot;))</pre>
-
-<p id="k3">Item <a href="#t3">3</a>, Child: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>t</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc t k)</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc k (invk p)) d)</title>
-   <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((t t) (k k) (d d) (p p))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>door</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>doorsep 3</text>
-  </svg></div>
-
-<pre>(defskeleton doorsep
-  (vars (t text) (k skey) (p d akey))
-  (defstrand door 3 (t t) (k k) (d d) (p p))
-  (non-orig (invk p))
-  (comment &quot;Analyze from the doors&apos;s perspective&quot;)
-  (label 3)
-  (unrealized (0 0))
-  (origs)
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k4">Item <a href="#t3">4</a>, Parent: <a href="#k3">3</a>, Child: <a href="#k5">5</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc k (invk p)) d-0)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>t</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc t k)</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc k (invk p)) d)</title>
-   <circle style='fill: red;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((k k) (d d-0) (p p))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>person</text>
-   </g>
-  <g><title>((t t) (k k) (d d) (p p))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>door</text>
-   </g>
-  <text
-   x='89.940' y='39.960' style='text-anchor: middle;'>doorsep 4</text>
-  </svg></div>
-
-<pre>(defskeleton doorsep
-  (vars (t text) (k skey) (p d d-0 akey))
-  (defstrand door 3 (t t) (k k) (d d) (p p))
-  (defstrand person 1 (k k) (d d-0) (p p))
-  (precedes ((1 0) (0 0)))
-  (non-orig (invk p) (invk d-0))
-  (rule trust)
-  (operation encryption-test (added-strand person 1) (enc k (invk p))
-    (0 0))
-  (label 4)
-  (parent 3)
-  (unrealized (0 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k5">Item <a href="#t3">5</a>, Parent: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc (enc k (invk p)) d)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>t</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(enc t k)</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(enc (enc k (invk p)) d)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((k k) (d d) (p p))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>person</text>
-   </g>
-  <g><title>((t t) (k k) (d d) (p p))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>door</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>doorsep 5 (realized)</text></svg></div>
-
-<pre>(defskeleton doorsep
-  (vars (t text) (k skey) (p d akey))
-  (defstrand door 3 (t t) (k k) (d d) (p p))
-  (defstrand person 1 (k k) (d d) (p p))
-  (precedes ((1 0) (0 0)))
-  (non-orig (invk p) (invk d))
-  (operation encryption-test (contracted (d-0 d)) (enc k (invk p)) (0 0)
-    (enc (enc k (invk p)) d))
-  (label 5)
-  (parent 4)
-  (unrealized)
-  (shape)
-  (maps ((0) ((p p) (d d) (k k) (t t))))
-  (origs))</pre>
-
-</body>
-</html>
diff --git a/doc/examples/station.scm b/doc/examples/station.scm
deleted file mode 100644
--- a/doc/examples/station.scm
+++ /dev/null
@@ -1,80 +0,0 @@
-; Station-to-station
-
-; This is an authenticated form of a Diffie-Hellman key exchange.
-
-; The file contains two different models of the station-to-station
-; protocol.  In the first, an assumption is made that *any* initiator
-; or responder properly picks a fresh random exponent and does not
-; allow it to be obtained by the adversary.
-
-; In the second, we do not include this assumption, and as a result,
-; less can be guaranteed.
-
-(herald "Station-to-station protocol" (algebra diffie-hellman))
-
-(defprotocol station-to-station diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (a b name))
-    (trace
-     (send (exp (gen) x))
-     (recv (cat (exp (gen) y)
-		(enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x)))))
-     (send (enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace
-     (recv (exp (gen) x))
-     (send (cat (exp (gen) y)
-		(enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y)))))
-     (recv (enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))))
-    (uniq-gen y))
-)
-
-(defskeleton station-to-station
-  (vars (a b name))
-  (defstrand init 3 (a a) (b b))
-  (non-orig (privk b) (privk a))
-)
-
-(defskeleton station-to-station
-  (vars (a b name))
-  (defstrand resp 3 (a a) (b b))
-  (non-orig (privk a) (privk b))
-)
-
-(defprotocol station-weak diffie-hellman
-  (defrole weak-init
-    (vars (x rndx) (y expt) (a b name))
-    (trace
-     (send (exp (gen) x))
-     (recv (cat (exp (gen) y)
-		(enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x)))))
-     (send (enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))))
-					;(uniq-gen x)
-    )
-  (defrole weak-resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace
-     (recv (exp (gen) x))
-     (send (cat (exp (gen) y)
-		(enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y)))))
-     (recv (enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))))
-					;    (uniq-gen y)
-     (absent (y (exp (gen) x)))
-    )
-)
-
-(defskeleton station-weak
-  (vars (a b name) (x rndx))
-  (defstrand weak-init 3 (a a) (b b) (x x))
-  (uniq-gen x)
-  (non-orig (privk b) (privk a))
-)
-
-(defskeleton station-weak
-  (vars (a b name) (y rndx))
-  (defstrand weak-resp 3 (a a) (b b) (y y))
-  (uniq-gen y)
-  (non-orig (privk a) (privk b))
-)
diff --git a/doc/examples/station.xhtml b/doc/examples/station.xhtml
deleted file mode 100644
--- a/doc/examples/station.xhtml
+++ /dev/null
@@ -1,2392 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Station-to-station protocol</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(herald &quot;Station-to-station protocol&quot; (algebra diffie-hellman))
-(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from station.scm&quot;)</pre>
-
-<p id="top">Trees: <a href="#t0">0</a> <a href="#t10">10</a> <a href="#t20">20</a> <a href="#t23">23</a>.</p>
-
-<p id="t0">Tree <a href="#top">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.600pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.600 454.920' font-size='12.000'>
-  <text
-   x='89.880' y='401.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k2&quot;, &quot;_self&quot;)'>2</text>
-  <line
-   x1='39.960' y1='227.460' x2='89.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='326.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k9&quot;, &quot;_self&quot;)'>9</text>
-  <line
-   x1='189.720' y1='189.960' x2='239.640' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='251.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k8&quot;, &quot;_self&quot;)'>8</text>
-  <line
-   x1='189.720' y1='189.960' x2='239.640' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='176.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k7&quot;, &quot;_self&quot;)'>7</text>
-  <line
-   x1='189.720' y1='189.960' x2='239.640' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k6&quot;, &quot;_self&quot;)'>6</text>
-  <line
-   x1='189.720' y1='189.960' x2='239.640' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k5&quot;, &quot;_self&quot;)'>5</text>
-  <line
-   x1='189.720' y1='189.960' x2='239.640' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='176.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k4&quot;, &quot;_self&quot;)'>4</text>
-  <line
-   x1='139.800' y1='189.960' x2='189.720' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='176.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k3&quot;, &quot;_self&quot;)'>3</text>
-  <line
-   x1='89.880' y1='189.960' x2='139.800' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='176.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k1&quot;, &quot;_self&quot;)'>1</text>
-  <line
-   x1='39.960' y1='227.460' x2='89.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='213.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol station-to-station diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (a b name))
-    (trace (send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace (recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x)))))
-    (uniq-gen y)
-    (absent (y (exp (gen) x)))))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>, Children: <a href="#k1">1</a> <a href="#k2">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((a a) (b b) (x x) (y y))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>station-to-station 0</text></svg></div>
-
-<pre>(defskeleton station-to-station
-  (vars (a b name) (x rndx) (y expt))
-  (defstrand init 3 (a a) (b b) (x x) (y y))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (label 0)
-  (unrealized (0 1))
-  (origs)
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='189.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0)) (exp (gen) (mul x x-0))))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk a)) (exp (gen) (mul x x-0)))</title>
-   <circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0))))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x-0)</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>((a b) (b b-0) (x x) (y x-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((a a) (b b) (x x-0) (y x))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>station-to-station 1</text></svg></div>
-
-<pre>(defskeleton station-to-station
-  (vars (a b b-0 name) (x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (x x-0) (y x))
-  (defstrand init 3 (a b) (b b-0) (x x) (y x-0))
-  (precedes ((0 0) (1 1)) ((1 2) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x x-0)
-  (operation encryption-test (added-strand init 3)
-    (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (0 1))
-  (label 1)
-  (parent 0)
-  (unrealized (1 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k0">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((b b) (y y) (x x))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((a a) (b b) (x x) (y y))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>station-to-station 2 (realized)</text>
-  </svg></div>
-
-<pre>(defskeleton station-to-station
-  (vars (a b name) (y x rndx))
-  (defstrand init 3 (a a) (b b) (x x) (y y))
-  (defstrand resp 2 (b b) (y y) (x x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (operation encryption-test (added-strand resp 2)
-    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
-  (label 2)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (x x) (y y))))
-  (origs))</pre>
-
-<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k1">1</a>, Child: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) (mul x x-0))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) (mul x x-0))</title>
-   <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0)) (exp (gen) (mul x x-0))))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 186.900 114.960 233.880 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk a)) (exp (gen) (mul x x-0)))</title>
-   <circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0))))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 136.920 77.460 233.880 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x-0)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((a b) (b b-0) (x x) (y x-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((a a) (b b) (x x-0) (y x))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>station-to-station 3</text></svg></div>
-
-<pre>(defskeleton station-to-station
-  (vars (a b b-0 name) (x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (x x-0) (y x))
-  (defstrand init 3 (a b) (b b-0) (x x) (y x-0))
-  (deflistener (exp (gen) (mul x x-0)))
-  (precedes ((0 0) (2 0)) ((1 0) (2 0)) ((1 2) (0 1)) ((2 1) (1 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x x-0)
-  (operation encryption-test (added-listener (exp (gen) (mul x x-0)))
-    (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))
-      (exp (gen) (mul x x-0))) (1 1))
-  (label 3)
-  (parent 1)
-  (unrealized (2 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k4">Item <a href="#t0">4</a>, Parent: <a href="#k3">3</a>, Children: <a href="#k5">5</a> <a href="#k6">6</a> <a href="#k7">7</a> <a href="#k8">8</a> <a href="#k9">9</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (exp (gen) (mul x x-0 (rec w))) w)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (exp (gen) (mul x x-0 (rec w))) w)</title>
-   <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) (mul x x-0))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(exp (gen) (mul x x-0))</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0)))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0)) (exp (gen) (mul x x-0))))</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 236.880 77.460 333.840 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk a)) (exp (gen) (mul x x-0)))</title>
-   <circle cx='39.960' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0))))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x-0)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((a b) (b b-0) (x x) (y x-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((a a) (b b) (x x-0) (y x))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>station-to-station 4</text></svg></div>
-
-<pre>(defskeleton station-to-station
-  (vars (a b b-0 name) (x x-0 rndx) (w expt))
-  (defstrand init 3 (a a) (b b) (x x-0) (y x))
-  (defstrand init 3 (a b) (b b-0) (x x) (y x-0))
-  (deflistener (exp (gen) (mul x x-0)))
-  (deflistener (cat (exp (gen) (mul x x-0 (rec w))) w))
-  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x x-0)
-  (precur (3 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x x-0 (rec w))) w))
-    (exp (gen) (mul x x-0)) (2 0))
-  (label 4)
-  (parent 3)
-  (unrealized (3 0))
-  (comment &quot;5 in cohort - 5 not yet seen&quot;))</pre>
-
-<p id="k5">Item <a href="#t0">5</a>, Parent: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (gen) (mul x x-0))</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (gen) (mul x x-0))</title>
-   <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) (mul x x-0))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(exp (gen) (mul x x-0))</title>
-   <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0)))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0)) (exp (gen) (mul x x-0))))</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 236.880 77.460 333.840 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk a)) (exp (gen) (mul x x-0)))</title>
-   <circle cx='39.960' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0))))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x-0)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((a b) (b b-0) (x x) (y x-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((a a) (b b) (x x-0) (y x))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>station-to-station 5</text></svg></div>
-
-<pre>(defskeleton station-to-station
-  (vars (a b b-0 name) (x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (x x-0) (y x))
-  (defstrand init 3 (a b) (b b-0) (x x) (y x-0))
-  (deflistener (exp (gen) (mul x x-0)))
-  (deflistener (cat (gen) (mul x x-0)))
-  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x x-0)
-  (precur (3 0))
-  (operation nonce-test (contracted (x-1 x) (x-2 x-0) (w (mul x x-0)))
-    (gen) (3 0))
-  (label 5)
-  (parent 4)
-  (unrealized (2 0) (3 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k6">Item <a href="#t0">6</a>, Parent: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (exp (gen) x-0) x)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (exp (gen) x-0) x)</title>
-   <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) (mul x x-0))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(exp (gen) (mul x x-0))</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0)))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0)) (exp (gen) (mul x x-0))))</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 236.880 77.460 333.840 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk a)) (exp (gen) (mul x x-0)))</title>
-   <circle cx='39.960' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0))))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x-0)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((a b) (b b-0) (x x) (y x-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((a a) (b b) (x x-0) (y x))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>station-to-station 6</text></svg></div>
-
-<pre>(defskeleton station-to-station
-  (vars (a b b-0 name) (x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (x x-0) (y x))
-  (defstrand init 3 (a b) (b b-0) (x x) (y x-0))
-  (deflistener (exp (gen) (mul x x-0)))
-  (deflistener (cat (exp (gen) x-0) x))
-  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (non-orig (privk a) (privk b))
-  (precur (3 0))
-  (uniq-gen x x-0)
-  (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-1) (3 0))
-  (label 6)
-  (parent 4)
-  (unrealized (3 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k7">Item <a href="#t0">7</a>, Parent: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (exp (gen) x-0) x)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (exp (gen) x-0) x)</title>
-   <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) (mul x x-0))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(exp (gen) (mul x x-0))</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0)))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x x-0))))</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 236.880 77.460 333.840 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x-0)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk a)) (exp (gen) (mul x x-0)))</title>
-   <circle cx='39.960' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (exp (gen) (mul x x-0))))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((a b) (b b-0) (x x-0) (y x))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((a a) (b b) (x x) (y x-0))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>station-to-station 7</text></svg></div>
-
-<pre>(defskeleton station-to-station
-  (vars (a b b-0 name) (x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (x x) (y x-0))
-  (defstrand init 3 (a b) (b b-0) (x x-0) (y x))
-  (deflistener (exp (gen) (mul x x-0)))
-  (deflistener (cat (exp (gen) x-0) x))
-  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (non-orig (privk a) (privk b))
-  (precur (3 0))
-  (uniq-gen x x-0)
-  (operation nonce-test (displaced 4 1 init 1) (exp (gen) x-1) (3 0))
-  (label 7)
-  (parent 4)
-  (unrealized (3 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k8">Item <a href="#t0">8</a>, Parent: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='114.960' x2='439.800' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 114.960 Q 392.820 114.960 345.840 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x-1)</title>
-   <circle cx='439.800' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (exp (gen) x-1) (mul x x-0 (rec x-1)))</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>(cat (exp (gen) x-1) (mul x x-0 (rec x-1)))</title>
-   <circle style='fill: red;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) (mul x x-0))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(exp (gen) (mul x x-0))</title>
-   <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0)))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0)) (exp (gen) (mul x x-0))))</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 236.880 77.460 333.840 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk a)) (exp (gen) (mul x x-0)))</title>
-   <circle cx='39.960' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0))))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 186.900 77.460 333.840 114.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x-0)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((x x-1))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((a b) (b b-0) (x x) (y x-0))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((a a) (b b) (x x-0) (y x))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='239.880' y='39.960'
-   style='text-anchor: middle;'>station-to-station 8</text></svg></div>
-
-<pre>(defskeleton station-to-station
-  (vars (a b b-0 name) (x x-0 x-1 rndx))
-  (defstrand init 3 (a a) (b b) (x x-0) (y x))
-  (defstrand init 3 (a b) (b b-0) (x x) (y x-0))
-  (deflistener (exp (gen) (mul x x-0)))
-  (deflistener (cat (exp (gen) x-1) (mul x x-0 (rec x-1))))
-  (defstrand init 1 (x x-1))
-  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))
-    ((3 1) (2 0)) ((4 0) (3 0)))
-  (non-orig (privk a) (privk b))
-  (precur (3 0))
-  (uniq-gen x x-0 x-1)
-  (operation nonce-test (added-strand init 1) (exp (gen) x-1) (3 0))
-  (label 8)
-  (parent 4)
-  (unrealized (2 0) (3 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k9">Item <a href="#t0">9</a>, Parent: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='529.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 529.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='114.960' x2='439.800' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='189.960' x2='39.960' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-1)) (exp (gen) (mul x y))))</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (exp (gen) y) (mul x-0 x-1 (rec y)))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat (exp (gen) y) (mul x-0 x-1 (rec y)))</title>
-   <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) (mul x-0 x-1))</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(exp (gen) (mul x-0 x-1))</title>
-   <circle style='fill: red;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x-0) (exp (gen) x-1) (privk b)) (exp (gen) (mul x-0 x-1)))</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) x-1) (enc (enc (exp (gen) x-1) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x-0 x-1))))</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 189.960 Q 236.880 152.460 333.840 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x-0)</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x-1) (exp (gen) x-0) (privk a)) (exp (gen) (mul x-0 x-1)))</title>
-   <circle cx='39.960' cy='489.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x-1) (privk b)) (exp (gen) (mul x-0 x-1))))</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x-1)</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>((b b-1) (y y) (x x))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((a b) (b b-0) (x x-0) (y x-1))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((a a) (b b) (x x-1) (y x-0))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='239.880' y='39.960'
-   style='text-anchor: middle;'>station-to-station 9</text></svg></div>
-
-<pre>(defskeleton station-to-station
-  (vars (a b b-0 b-1 name) (x expt) (x-0 x-1 y rndx))
-  (defstrand init 3 (a a) (b b) (x x-1) (y x-0))
-  (defstrand init 3 (a b) (b b-0) (x x-0) (y x-1))
-  (deflistener (exp (gen) (mul x-0 x-1)))
-  (deflistener (cat (exp (gen) y) (mul x-0 x-1 (rec y))))
-  (defstrand resp 2 (b b-1) (y y) (x x))
-  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))
-    ((3 1) (2 0)) ((4 1) (3 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (3 0))
-  (uniq-gen x-0 x-1 y)
-  (operation nonce-test (added-strand resp 2) (exp (gen) y) (3 0))
-  (label 9)
-  (parent 4)
-  (unrealized (2 0) (3 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="t10">Tree <a href="#top">10</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.600pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.600 454.920' font-size='12.000'>
-  <text
-   x='239.640' y='401.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k19&quot;, &quot;_self&quot;)'>19</text>
-  <line
-   x1='189.720' y1='264.960' x2='239.640' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='326.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k18&quot;, &quot;_self&quot;)'>18</text>
-  <line
-   x1='189.720' y1='264.960' x2='239.640' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='251.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k17&quot;, &quot;_self&quot;)'>17</text>
-  <line
-   x1='189.720' y1='264.960' x2='239.640' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='176.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k16&quot;, &quot;_self&quot;)'>16</text>
-  <line
-   x1='189.720' y1='264.960' x2='239.640' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k15&quot;, &quot;_self&quot;)'>15</text>
-  <line
-   x1='189.720' y1='264.960' x2='239.640' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='251.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k14&quot;, &quot;_self&quot;)'>14</text>
-  <line
-   x1='139.800' y1='264.960' x2='189.720' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='251.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k13&quot;, &quot;_self&quot;)'>13</text>
-  <line
-   x1='89.880' y1='227.460' x2='139.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k12&quot;, &quot;_self&quot;)'>12</text>
-  <line
-   x1='89.880' y1='227.460' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='213.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k11&quot;, &quot;_self&quot;)'>11</text>
-  <line
-   x1='39.960' y1='227.460' x2='89.880' y2='227.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='213.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k10&quot;, &quot;_self&quot;)'>10</text>
-  </svg></div>
-
-<pre>(defprotocol station-to-station diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (a b name))
-    (trace (send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace (recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x)))))
-    (uniq-gen y)
-    (absent (y (exp (gen) x)))))</pre>
-
-<p id="k10">Item <a href="#t10">10</a>, Child: <a href="#k11">11</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((a a) (b b) (y y) (x x))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>station-to-station 10</text></svg></div>
-
-<pre>(defskeleton station-to-station
-  (vars (a b name) (y rndx) (x expt))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y)
-  (label 10)
-  (unrealized (0 2))
-  (origs)
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k11">Item <a href="#t10">11</a>, Parent: <a href="#k10">10</a>, Children: <a href="#k12">12</a> <a href="#k13">13</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul x y))))</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((a a) (b b-0) (x x) (y y))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((a a) (b b) (y y) (x x))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>station-to-station 11</text></svg></div>
-
-<pre>(defskeleton station-to-station
-  (vars (a b b-0 name) (x y rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b-0) (x x) (y y))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation encryption-test (added-strand init 3)
-    (enc (exp (gen) x) (exp (gen) y) (privk a)) (0 2))
-  (label 11)
-  (parent 10)
-  (unrealized (1 1))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k12">Item <a href="#t10">12</a>, Parent: <a href="#k11">11</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((a a) (b b) (x x) (y y))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((a a) (b b) (y y) (x x))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>station-to-station 12 (realized)</text>
-  </svg></div>
-
-<pre>(defskeleton station-to-station
-  (vars (a b name) (y x rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b) (x x) (y y))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-      (exp (gen) (mul y x))) (1 1))
-  (label 12)
-  (parent 11)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (y y) (x x))))
-  (origs))</pre>
-
-<p id="k13">Item <a href="#t10">13</a>, Parent: <a href="#k11">11</a>, Child: <a href="#k14">14</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) (mul x y))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(exp (gen) (mul x y))</title>
-   <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul x y))))</title>
-   <circle style='fill: blue;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((a a) (b b-0) (x x) (y y))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((a a) (b b) (y y) (x x))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>station-to-station 13</text></svg></div>
-
-<pre>(defskeleton station-to-station
-  (vars (a b b-0 name) (x y rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b-0) (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation encryption-test (added-listener (exp (gen) (mul x y)))
-    (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-      (exp (gen) (mul x y))) (1 1))
-  (label 13)
-  (parent 11)
-  (unrealized (2 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k14">Item <a href="#t10">14</a>, Parent: <a href="#k13">13</a>, Children: <a href="#k15">15</a> <a href="#k16">16</a> <a href="#k17">17</a> <a href="#k18">18</a> <a href="#k19">19</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (exp (gen) (mul x y (rec w))) w)</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat (exp (gen) (mul x y (rec w))) w)</title>
-   <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) (mul x y))</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(exp (gen) (mul x y))</title>
-   <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul x y))))</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((a a) (b b-0) (x x) (y y))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((a a) (b b) (y y) (x x))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>station-to-station 14</text></svg></div>
-
-<pre>(defskeleton station-to-station
-  (vars (a b b-0 name) (x y rndx) (w expt))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b-0) (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (deflistener (cat (exp (gen) (mul x y (rec w))) w))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (precur (3 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x y (rec w))) w))
-    (exp (gen) (mul x y)) (2 0))
-  (label 14)
-  (parent 13)
-  (unrealized (3 0))
-  (comment &quot;5 in cohort - 5 not yet seen&quot;))</pre>
-
-<p id="k15">Item <a href="#t10">15</a>, Parent: <a href="#k14">14</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (gen) (mul x y))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat (gen) (mul x y))</title>
-   <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) (mul x y))</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(exp (gen) (mul x y))</title>
-   <circle style='fill: red;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul x y))))</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((a a) (b b-0) (x x) (y y))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((a a) (b b) (y y) (x x))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>station-to-station 15</text></svg></div>
-
-<pre>(defskeleton station-to-station
-  (vars (a b b-0 name) (x y rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b-0) (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (deflistener (cat (gen) (mul x y)))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (precur (3 0))
-  (operation nonce-test (contracted (x-0 x) (y-0 y) (w (mul x y))) (gen)
-    (3 0))
-  (label 15)
-  (parent 14)
-  (unrealized (2 0) (3 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k16">Item <a href="#t10">16</a>, Parent: <a href="#k14">14</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (exp (gen) x) y)</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat (exp (gen) x) y)</title>
-   <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) (mul y x))</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(exp (gen) (mul y x))</title>
-   <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul y x))))</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((a a) (b b-0) (x x) (y y))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((a a) (b b) (y y) (x x))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>station-to-station 16</text></svg></div>
-
-<pre>(defskeleton station-to-station
-  (vars (a b b-0 name) (y x rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b-0) (x x) (y y))
-  (deflistener (exp (gen) (mul y x)))
-  (deflistener (cat (exp (gen) x) y))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (3 0))
-  (uniq-gen y x)
-  (operation nonce-test (displaced 4 1 init 1) (exp (gen) x-0) (3 0))
-  (label 16)
-  (parent 14)
-  (unrealized (3 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k17">Item <a href="#t10">17</a>, Parent: <a href="#k14">14</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='114.960' x2='439.800' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 114.960 Q 392.220 150.660 344.639 186.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x-0)</title>
-   <circle cx='439.800' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (exp (gen) x-0) (mul x y (rec x-0)))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat (exp (gen) x-0) (mul x y (rec x-0)))</title>
-   <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) (mul x y))</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(exp (gen) (mul x y))</title>
-   <circle style='fill: red;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul x y))))</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((x x-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((a a) (b b-0) (x x) (y y))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((a a) (b b) (y y) (x x))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='239.880' y='39.960'
-   style='text-anchor: middle;'>station-to-station 17</text></svg></div>
-
-<pre>(defskeleton station-to-station
-  (vars (a b b-0 name) (x y x-0 rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b-0) (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (deflistener (cat (exp (gen) x-0) (mul x y (rec x-0))))
-  (defstrand init 1 (x x-0))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))
-    ((3 1) (2 0)) ((4 0) (3 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (3 0))
-  (uniq-gen x y x-0)
-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))
-  (label 17)
-  (parent 14)
-  (unrealized (2 0) (3 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k18">Item <a href="#t10">18</a>, Parent: <a href="#k14">14</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (exp (gen) y) x)</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat (exp (gen) y) x)</title>
-   <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) (mul x y))</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(exp (gen) (mul x y))</title>
-   <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul x y))))</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((a a) (b b-0) (x x) (y y))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((a a) (b b) (y y) (x x))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>station-to-station 18</text></svg></div>
-
-<pre>(defskeleton station-to-station
-  (vars (a b b-0 name) (x y rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b-0) (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (deflistener (cat (exp (gen) y) x))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (3 0))
-  (uniq-gen x y)
-  (operation nonce-test (displaced 4 0 resp 2) (exp (gen) y-0) (3 0))
-  (label 18)
-  (parent 14)
-  (unrealized (3 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k19">Item <a href="#t10">19</a>, Parent: <a href="#k14">14</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='114.960' x2='439.800' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 189.960 Q 392.820 189.960 345.840 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (exp (gen) y-0) (enc (enc (exp (gen) y-0) (exp (gen) x) (privk b-1)) (exp (gen) (mul x y-0))))</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle style='fill: blue;' cx='439.800' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat (exp (gen) y-0) (mul x-0 y (rec y-0)))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat (exp (gen) y-0) (mul x-0 y (rec y-0)))</title>
-   <circle style='fill: red;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) (mul x-0 y))</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(exp (gen) (mul x-0 y))</title>
-   <circle style='fill: red;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 414.960 Q 92.940 414.960 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x-0) (exp (gen) y) (privk a)) (exp (gen) (mul x-0 y)))</title>
-   <circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x-0) (privk b-0)) (exp (gen) (mul x-0 y))))</title>
-   <circle style='fill: blue;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 114.960 Q 92.940 114.960 45.960 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x-0)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x-0) (exp (gen) y) (privk a)) (exp (gen) (mul x-0 y)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x-0) (privk b)) (exp (gen) (mul x-0 y))))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x-0)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((b b-1) (y y-0) (x x))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((a a) (b b-0) (x x-0) (y y))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((a a) (b b) (y y) (x x-0))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='239.880' y='39.960'
-   style='text-anchor: middle;'>station-to-station 19</text></svg></div>
-
-<pre>(defskeleton station-to-station
-  (vars (a b b-0 b-1 name) (x expt) (x-0 y y-0 rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x-0))
-  (defstrand init 3 (a a) (b b-0) (x x-0) (y y))
-  (deflistener (exp (gen) (mul x-0 y)))
-  (deflistener (cat (exp (gen) y-0) (mul x-0 y (rec y-0))))
-  (defstrand resp 2 (b b-1) (y y-0) (x x))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))
-    ((3 1) (2 0)) ((4 1) (3 0)))
-  (absent (y-0 (exp (gen) x)) (y (exp (gen) x-0)))
-  (non-orig (privk a) (privk b))
-  (precur (3 0))
-  (uniq-gen x-0 y y-0)
-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (3 0))
-  (label 19)
-  (parent 14)
-  (unrealized (2 0) (3 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="t20">Tree <a href="#top">20</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='154.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 154.920' font-size='12.000'>
-  <text
-   x='89.880' y='101.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k22&quot;, &quot;_self&quot;)'>22</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k21&quot;, &quot;_self&quot;)'>21</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k20&quot;, &quot;_self&quot;)'>20</text>
-  </svg></div>
-
-<pre>(defprotocol station-weak diffie-hellman
-  (defrole weak-init
-    (vars (x rndx) (y expt) (a b name))
-    (trace (send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y))))))
-  (defrole weak-resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace (recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x)))))
-    (absent (y (exp (gen) x)))))</pre>
-
-<p id="k20">Item <a href="#t20">20</a>, Children: <a href="#k21">21</a> <a href="#k22">22</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((a a) (b b) (x x) (y y))</title>
-   <text
-    x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>station-weak 20</text></svg></div>
-
-<pre>(defskeleton station-weak
-  (vars (a b name) (x rndx) (y expt))
-  (defstrand weak-init 3 (a a) (b b) (x x) (y y))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (label 20)
-  (unrealized (0 1))
-  (origs)
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k21">Item <a href="#t20">21</a>, Parent: <a href="#k20">20</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='189.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) x-0) (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0)) (exp (gen) (mul x x-0))))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x-0) (exp (gen) x) (privk a)) (exp (gen) (mul x x-0)))</title>
-   <circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) x) (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (exp (gen) (mul x x-0))))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x-0)</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>((a b) (b b-0) (x x) (y x-0))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>weak-init</text>
-   </g>
-  <g><title>((a a) (b b) (x x-0) (y x))</title>
-   <text
-    x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>station-weak 21 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton station-weak
-  (vars (a b b-0 name) (x x-0 rndx))
-  (defstrand weak-init 3 (a a) (b b) (x x-0) (y x))
-  (defstrand weak-init 3 (a b) (b b-0) (x x) (y x-0))
-  (precedes ((0 0) (1 1)) ((1 2) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x-0)
-  (operation encryption-test (added-strand weak-init 3)
-    (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (0 1))
-  (label 21)
-  (parent 20)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (x x-0) (y x))))
-  (origs))</pre>
-
-<p id="k22">Item <a href="#t20">22</a>, Parent: <a href="#k20">20</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 189.960 Q 92.940 189.960 45.960 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 39.960 114.960 Q 86.940 114.960 133.920 114.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((b b) (y y) (x x))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>weak-resp</text>
-   </g>
-  <g><title>((a a) (b b) (x x) (y y))</title>
-   <text
-    x='39.960' y='77.460' style='text-anchor: middle;'>weak-init</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>station-weak 22 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton station-weak
-  (vars (a b name) (y x rndx))
-  (defstrand weak-init 3 (a a) (b b) (x x) (y y))
-  (defstrand weak-resp 2 (b b) (y y) (x x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (operation encryption-test (added-strand weak-resp 2)
-    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
-  (label 22)
-  (parent 20)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (x x) (y y))))
-  (origs))</pre>
-
-<p id="t23">Tree <a href="#top">23</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='154.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 154.920' font-size='12.000'>
-  <text
-   x='89.880' y='101.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k25&quot;, &quot;_self&quot;)'>25</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k24&quot;, &quot;_self&quot;)'>24</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='63.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k23&quot;, &quot;_self&quot;)'>23</text>
-  </svg></div>
-
-<pre>(defprotocol station-weak diffie-hellman
-  (defrole weak-init
-    (vars (x rndx) (y expt) (a b name))
-    (trace (send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y))))))
-  (defrole weak-resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace (recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x)))))
-    (absent (y (exp (gen) x)))))</pre>
-
-<p id="k23">Item <a href="#t23">23</a>, Children: <a href="#k24">24</a> <a href="#k25">25</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul y x)))</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul y x))))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((a a) (b b) (y y) (x x))</title>
-   <text
-    x='39.960' y='77.460' style='text-anchor: middle;'>weak-resp</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>station-weak 23</text></svg></div>
-
-<pre>(defskeleton station-weak
-  (vars (a b name) (y rndx) (x expt))
-  (defstrand weak-resp 3 (a a) (b b) (y y) (x x))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y)
-  (label 23)
-  (unrealized (0 2))
-  (origs)
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k24">Item <a href="#t23">24</a>, Parent: <a href="#k23">23</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0)) (exp (gen) (mul x y))))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y))))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) x)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((a a) (b b-0) (x x) (y y))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>weak-init</text>
-   </g>
-  <g><title>((a a) (b b) (y y) (x x))</title>
-   <text
-    x='39.960' y='77.460' style='text-anchor: middle;'>weak-resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>station-weak 24 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton station-weak
-  (vars (a b b-0 name) (x y rndx))
-  (defstrand weak-resp 3 (a a) (b b) (y y) (x x))
-  (defstrand weak-init 3 (a a) (b b-0) (x x) (y y))
-  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y)
-  (operation encryption-test (added-strand weak-init 3)
-    (enc (exp (gen) x) (exp (gen) y) (privk a)) (0 2))
-  (label 24)
-  (parent 23)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (y y) (x x))))
-  (origs))</pre>
-
-<p id="k25">Item <a href="#t23">25</a>, Parent: <a href="#k23">23</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='304.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 304.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen) y-0) (privk a)) (exp (gen) (mul y y-0))))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(exp (gen) y-0)</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>(enc (enc (exp (gen) y) (exp (gen) y-0) (privk a)) (exp (gen) (mul y y-0)))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g>
-   <title>(cat (exp (gen) y-0) (enc (enc (exp (gen) y-0) (exp (gen) y) (privk b)) (exp (gen) (mul y y-0))))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(exp (gen) y)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((b a) (y y) (x y-0))</title>
-   <text
-    x='139.920' y='77.460' style='text-anchor: middle;'>weak-resp</text>
-   </g>
-  <g><title>((a a) (b b) (y y-0) (x y))</title>
-   <text
-    x='39.960' y='77.460' style='text-anchor: middle;'>weak-resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960'
-   style='text-anchor: middle;'>station-weak 25 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton station-weak
-  (vars (a b name) (y y-0 rndx))
-  (defstrand weak-resp 3 (a a) (b b) (y y-0) (x y))
-  (defstrand weak-resp 2 (b a) (y y) (x y-0))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (absent (y (exp (gen) y-0)) (y-0 (exp (gen) y)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y-0)
-  (operation encryption-test (added-strand weak-resp 2)
-    (enc (exp (gen) y) (exp (gen) y-0) (privk a)) (0 2))
-  (label 25)
-  (parent 23)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (y y-0) (x y))))
-  (origs))</pre>
-
-</body>
-</html>
diff --git a/doc/examples/subsort_test.scm b/doc/examples/subsort_test.scm
deleted file mode 100644
--- a/doc/examples/subsort_test.scm
+++ /dev/null
@@ -1,43 +0,0 @@
-(herald "Subsort constraint test protocol"
-   (comment "First, third, and fourth skeletons should have a shape,"
-            "second should be dead."))
-
-(defprotocol subsorttest basic
-  (defrole init
-     (vars (n1 n2 text) (k skey))
-     (trace
-       (send (cat n1 (enc n1 n2 k)))
-       (recv n2))
-     (non-orig k)
-     (uniq-orig n1 n2)
-  )
-)
-
-;;; With no declaration, a shape should be found where n1 = n2.
-(defskeleton subsorttest
-   (vars (n1 n2 text) (k skey))
-   (defstrand init 2) (n1 n1) (n2 n2) (k k))
-
-;;; By declaring n1 to be of subsort A and n2 to be of subsort B, the
-;;; unification of n1 and n2 is prevented, so no shape should exist.
-(defskeleton subsorttest
-   (vars (n1 n2 text))
-   (defstrand init 2 (n1 n1) (n2 n2))
-   (subsort (A n1) (B n2))
-)
-
-;;; Here, only n1 is declared to be of a subsort.  Unification with n2
-;;; is allowed, so a shape should be found.
-(defskeleton subsorttest
-   (vars (n1 n2 text))
-   (defstrand init 2 (n1 n1) (n2 n2))
-   (subsort (A n1))
-)
-
-;;; Here, both n1 and n2 are declared to be of the same subsort (A),
-;;; which should allow their unification.
-(defskeleton subsorttest
-   (vars (n1 n2 text))
-   (defstrand init 2 (n1 n1) (n2 n2))
-   (subsort (A n1 n2))
-)
diff --git a/doc/examples/subsort_test.xhtml b/doc/examples/subsort_test.xhtml
deleted file mode 100644
--- a/doc/examples/subsort_test.xhtml
+++ /dev/null
@@ -1,409 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Subsort constraint test protocol</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(herald &quot;Subsort constraint test protocol&quot;
-  (comment &quot;First, third, and fourth skeletons should have a shape,&quot;
-    &quot;second should be dead.&quot;))
-(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from subsort_test.scm&quot;)</pre>
-
-<p id="top">Trees: <a href="#t0">0</a> <a href="#t2">2</a> <a href="#t3">3</a> <a href="#t5">5</a>.</p>
-
-<p id="t0">Tree <a href="#top">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k1&quot;, &quot;_self&quot;)'>1</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol subsorttest basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n2 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>subsorttest 0</text></svg></div>
-
-<pre>(defskeleton subsorttest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (label 0)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n1</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n1 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n1) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>subsorttest 1 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton subsorttest
-  (vars (n1 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n1) (k k))
-  (non-orig k)
-  (uniq-orig n1)
-  (operation nonce-test (displaced 1 0 init 1) n2 (0 1) (enc n1 n2 k))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n1 n1) (n2 n1) (k k))))
-  (origs (n1 (0 0))))</pre>
-
-<p id="t2">Tree <a href="#top">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 79.920' font-size='12.000'>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k2&quot;, &quot;_self&quot;)'>2</text>
-  </svg></div>
-
-<pre>(defprotocol subsorttest basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))</pre>
-
-<p id="k2">Item <a href="#t2">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n2 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>subsorttest 2</text></svg></div>
-
-<pre>(defskeleton subsorttest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (non-orig k)
-  (subsort (A n1) (B n2))
-  (uniq-orig n1 n2)
-  (label 2)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="t3">Tree <a href="#top">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k4&quot;, &quot;_self&quot;)'>4</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k3&quot;, &quot;_self&quot;)'>3</text>
-  </svg></div>
-
-<pre>(defprotocol subsorttest basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))</pre>
-
-<p id="k3">Item <a href="#t3">3</a>, Child: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n2 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>subsorttest 3</text></svg></div>
-
-<pre>(defskeleton subsorttest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (non-orig k)
-  (subsort (A n1))
-  (uniq-orig n1 n2)
-  (label 3)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k4">Item <a href="#t3">4</a>, Parent: <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n1</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n1 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n1) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>subsorttest 4 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton subsorttest
-  (vars (n1 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n1) (k k))
-  (non-orig k)
-  (subsort (A n1))
-  (uniq-orig n1)
-  (operation nonce-test (displaced 1 0 init 1) n2 (0 1) (enc n1 n2 k))
-  (label 4)
-  (parent 3)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n1 n1) (n2 n1) (k k))))
-  (origs (n1 (0 0))))</pre>
-
-<p id="t5">Tree <a href="#top">5</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='129.840pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 129.840 79.920' font-size='12.000'>
-  <text
-   x='89.880' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k6&quot;, &quot;_self&quot;)'>6</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k5&quot;, &quot;_self&quot;)'>5</text>
-  </svg></div>
-
-<pre>(defprotocol subsorttest basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))</pre>
-
-<p id="k5">Item <a href="#t5">5</a>, Child: <a href="#k6">6</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n2</title>
-   <circle style='fill: red;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n2 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n2) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>subsorttest 5</text></svg></div>
-
-<pre>(defskeleton subsorttest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (non-orig k)
-  (subsort (A n1 n2))
-  (uniq-orig n1 n2)
-  (label 5)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k6">Item <a href="#t5">6</a>, Parent: <a href="#k5">5</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='229.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 229.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>n1</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat n1 (enc n1 n1 k))</title>
-   <circle cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n1 n1) (n2 n1) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <text
-   x='39.960' y='39.960'
-   style='text-anchor: middle;'>subsorttest 6 (realized)</text></svg>
- </div>
-
-<pre>(defskeleton subsorttest
-  (vars (n1 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n1) (k k))
-  (non-orig k)
-  (subsort (A n1))
-  (uniq-orig n1)
-  (operation nonce-test (displaced 1 0 init 1) n2 (0 1) (enc n1 n2 k))
-  (label 6)
-  (parent 5)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n1 n1) (n2 n1) (k k))))
-  (origs (n1 (0 0))))</pre>
-
-</body>
-</html>
diff --git a/doc/examples/woolam.scm b/doc/examples/woolam.scm
deleted file mode 100644
--- a/doc/examples/woolam.scm
+++ /dev/null
@@ -1,26 +0,0 @@
-(herald "Woo-Lam Protocol")
-
-(defprotocol woolam basic
-  (defrole init (vars (a s name) (n text))
-    (trace
-     (send a)
-     (recv n)
-     (send (enc n (ltk a s))))
-    (non-orig (ltk a s)))
-  (defrole resp (vars (a s b name) (n text))
-    (trace
-     (recv a)
-     (send n)
-     (recv (enc n (ltk a s)))
-     (send (enc a (enc n (ltk a s)) (ltk b s)))
-     (recv (enc a n (ltk b s))))
-    (non-orig (ltk b s))
-    (uniq-orig n))
-  (defrole serv (vars (a s b name) (n text))
-    (trace
-     (recv (enc a (enc n (ltk a s)) (ltk b s)))
-     (send (enc a n (ltk b s))))))
-
-(defskeleton woolam (vars (n text) (a s name))
-  (defstrand resp 5 (a a) (s s))
-  (non-orig (ltk a s)))
diff --git a/doc/examples/woolam.xhtml b/doc/examples/woolam.xhtml
deleted file mode 100644
--- a/doc/examples/woolam.xhtml
+++ /dev/null
@@ -1,341 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Woo-Lam Protocol</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(herald &quot;Woo-Lam Protocol&quot;)
-(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from woolam.scm&quot;)</pre>
-
-<p id="t0">Tree 0.</p>
-
-<div>
- <svg
-  class='diagram' width='229.680pt' height='79.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 229.680 79.920' font-size='12.000'>
-  <text
-   x='189.720' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k3&quot;, &quot;_self&quot;)'>3</text>
-  <line
-   x1='139.800' y1='39.960' x2='189.720' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k2&quot;, &quot;_self&quot;)'>2</text>
-  <line
-   x1='89.880' y1='39.960' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k1&quot;, &quot;_self&quot;)'>1</text>
-  <line
-   x1='39.960' y1='39.960' x2='89.880' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='26.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol woolam basic
-  (defrole init
-    (vars (a s name) (n text))
-    (trace (send a) (recv n) (send (enc n (ltk a s))))
-    (non-orig (ltk a s)))
-  (defrole resp
-    (vars (a s b name) (n text))
-    (trace (recv a) (send n) (recv (enc n (ltk a s)))
-      (send (enc a (enc n (ltk a s)) (ltk b s)))
-      (recv (enc a n (ltk b s))))
-    (non-orig (ltk b s))
-    (uniq-orig n))
-  (defrole serv
-    (vars (a s b name) (n text))
-    (trace (recv (enc a (enc n (ltk a s)) (ltk b s)))
-      (send (enc a n (ltk b s))))))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc a n (ltk b s))</title>
-   <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a (enc n (ltk a s)) (ltk b s))</title>
-   <circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(enc n (ltk a s))</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>n</title><circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>a</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n n) (a a) (s s) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>woolam 0</text>
-  </svg></div>
-
-<pre>(defskeleton woolam
-  (vars (n text) (a s b name))
-  (defstrand resp 5 (n n) (a a) (s s) (b b))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig n)
-  (label 0)
-  (unrealized (0 2) (0 4))
-  (origs (n (0 1)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Child: <a href="#k2">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n (ltk a s))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>n</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>a</title><circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc a n (ltk b s))</title>
-   <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a (enc n (ltk a s)) (ltk b s))</title>
-   <circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(enc n (ltk a s))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>n</title><circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>a</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n n) (a a) (s s))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n n) (a a) (s s) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960' style='text-anchor: middle;'>woolam 1</text>
-  </svg></div>
-
-<pre>(defskeleton woolam
-  (vars (n text) (a s b name))
-  (defstrand resp 5 (n n) (a a) (s s) (b b))
-  (defstrand init 3 (n n) (a a) (s s))
-  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig n)
-  (operation encryption-test (added-strand init 3) (enc n (ltk a s))
-    (0 2))
-  (label 1)
-  (parent 0)
-  (unrealized (0 4))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k1">1</a>, Child: <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 264.960 Q 142.320 300.660 44.759 411.359'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a n (ltk b s))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(enc a (enc n (ltk a s)) (ltk b s))</title>
-   <circle style='fill: red;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n (ltk a s))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>n</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>a</title><circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc a n (ltk b s))</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a (enc n (ltk a s)) (ltk b s))</title>
-   <circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(enc n (ltk a s))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>n</title><circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>a</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n n) (a a) (s s) (b b))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n n) (a a) (s s))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n n) (a a) (s s) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960' style='text-anchor: middle;'>woolam 2</text>
-  </svg></div>
-
-<pre>(defskeleton woolam
-  (vars (n text) (a s b name))
-  (defstrand resp 5 (n n) (a a) (s s) (b b))
-  (defstrand init 3 (n n) (a a) (s s))
-  (defstrand serv 2 (n n) (a a) (s s) (b b))
-  (precedes ((0 1) (1 1)) ((0 1) (2 0)) ((1 2) (0 2)) ((2 1) (0 4)))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig n)
-  (operation encryption-test (added-strand serv 2) (enc a n (ltk b s))
-    (0 4))
-  (label 2)
-  (parent 1)
-  (unrealized (2 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k2">2</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='339.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a n (ltk b s))</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a (enc n (ltk a s)) (ltk b s))</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n (ltk a s))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>n</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>a</title><circle cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc a n (ltk b s))</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 339.960 Q 136.920 302.460 233.880 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a (enc n (ltk a s)) (ltk b s))</title>
-   <circle cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(enc n (ltk a s))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>n</title><circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>a</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n n) (a a) (s s) (b b))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n n) (a a) (s s))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n n) (a a) (s s) (b b))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>woolam 3 (realized)</text></svg></div>
-
-<pre>(defskeleton woolam
-  (vars (n text) (a s b name))
-  (defstrand resp 5 (n n) (a a) (s s) (b b))
-  (defstrand init 3 (n n) (a a) (s s))
-  (defstrand serv 2 (n n) (a a) (s s) (b b))
-  (precedes ((0 1) (1 1)) ((0 3) (2 0)) ((1 2) (0 2)) ((2 1) (0 4)))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig n)
-  (operation encryption-test (displaced 3 0 resp 4)
-    (enc a (enc n (ltk a s)) (ltk b s)) (2 0))
-  (label 3)
-  (parent 2)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (s s) (b b) (n n))))
-  (origs (n (0 1))))</pre>
-
-</body>
-</html>
diff --git a/doc/examples/yahalom.scm b/doc/examples/yahalom.scm
deleted file mode 100644
--- a/doc/examples/yahalom.scm
+++ /dev/null
@@ -1,36 +0,0 @@
-(herald "Yahalom Protocol with Forwarding Removed"
-	(algebra diffie-hellman)
-   (bound 12))
-
-(defprotocol yahalom diffie-hellman
-  (defrole init
-    (vars (a b c name) (n-a n-b text) (k skey))
-    (trace (send (cat a n-a))
-	   (recv (enc b k n-a n-b (ltk a c)))
-	   (send (enc n-b k))))
-  (defrole resp
-    (vars (b a c name) (n-a n-b text) (k skey))
-    (trace (recv (cat a n-a))
-	   (send (cat b (enc a n-a n-b (ltk b c))))
-	   (recv (enc a k (ltk b c)))
-	   (recv (enc n-b k))))
-  (defrole serv
-    (vars (c a b name) (n-a n-b text) (k skey))
-    (trace (recv (cat b (enc a n-a n-b (ltk b c))))
-	   (send (enc b k n-a n-b (ltk a c)))
-	   (send (enc a k (ltk b c))))
-    (uniq-orig k)))
-
-(defskeleton yahalom
-  (vars (a b c name) (n-b text))
-  (defstrand resp 4 (a a) (b b) (c c) (n-b n-b))
-  (non-orig (ltk b c) (ltk a c))
-  (uniq-orig n-b))
-
-;;; Ensure encryption key remains secret.
-(defskeleton yahalom
-  (vars (a b c name) (n-b text) (k skey))
-  (defstrand resp 4 (a a) (b b) (c c) (n-b n-b) (k k))
-  (deflistener k)
-  (non-orig (ltk b c) (ltk a c))
-  (uniq-orig n-b))
diff --git a/doc/examples/yahalom.xhtml b/doc/examples/yahalom.xhtml
deleted file mode 100644
--- a/doc/examples/yahalom.xhtml
+++ /dev/null
@@ -1,7364 +0,0 @@
-<?xml version="1.0"?>
-<!-- CPSA 3.6.2 -->
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>Yahalom Protocol with Forwarding Removed</title>
- <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
- <style>
-  svg.diagram { border-width: 1px; border-style: solid }
- </style>
-</head>
-<body>
-
-<pre>(herald &quot;Yahalom Protocol with Forwarding Removed&quot;
-  (algebra diffie-hellman) (bound 12))
-(comment &quot;CPSA 3.6.2&quot;)
-(comment &quot;All input read from yahalom.scm&quot;)</pre>
-
-<p id="top">Trees: <a href="#t0">0</a> <a href="#t52">52</a>.</p>
-
-<p id="t0">Tree <a href="#top">0</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='629.040pt' height='1729.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 629.040 1729.920' font-size='12.000'>
-  <text
-   x='239.640' y='1676.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k13&quot;, &quot;_self&quot;)'>13</text>
-  <line
-   x1='189.720' y1='1689.960' x2='239.640' y2='1689.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='1676.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k7&quot;, &quot;_self&quot;)'>7</text>
-  <line
-   x1='139.800' y1='1614.960' x2='189.720' y2='1689.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='389.400' y='1601.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k38&quot;, &quot;_self&quot;)'>38</text>
-  <line
-   x1='339.480' y1='1614.960' x2='389.400' y2='1614.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='339.480' y='1601.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k27&quot;, &quot;_self&quot;)'>27</text>
-  <line
-   x1='289.560' y1='1577.460' x2='339.480' y2='1614.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='439.320' y='1526.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k47&quot;, &quot;_self&quot;)'>47</text>
-  <line
-   x1='389.400' y1='1539.960' x2='439.320' y2='1539.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='389.400' y='1526.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k37&quot;, &quot;_self&quot;)'>37</text>
-  <line
-   x1='339.480' y1='1539.960' x2='389.400' y2='1539.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='339.480' y='1526.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k26&quot;, &quot;_self&quot;)'>26</text>
-  <line
-   x1='289.560' y1='1577.460' x2='339.480' y2='1539.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='289.560' y='1563.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k18&quot;, &quot;_self&quot;)'>18</text>
-  <line
-   x1='239.640' y1='1577.460' x2='289.560' y2='1577.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='1563.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k12&quot;, &quot;_self&quot;)'>12</text>
-  <line
-   x1='189.720' y1='1577.460' x2='239.640' y2='1577.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='1563.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k6&quot;, &quot;_self&quot;)'>6</text>
-  <line
-   x1='139.800' y1='1614.960' x2='189.720' y2='1577.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='1601.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k3&quot;, &quot;_self&quot;)'>3</text>
-  <line
-   x1='89.880' y1='864.960' x2='139.800' y2='1614.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='1451.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k11&quot;, &quot;_self&quot;)'>11</text>
-  <line
-   x1='189.720' y1='1464.960' x2='239.640' y2='1464.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='1451.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k5&quot;, &quot;_self&quot;)'>5</text>
-  <line
-   x1='139.800' y1='752.460' x2='189.720' y2='1464.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='389.400' y='1376.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k36&quot;, &quot;_self&quot;)'>36</text>
-  <line
-   x1='339.480' y1='1389.960' x2='389.400' y2='1389.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='339.480' y='1376.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k25&quot;, &quot;_self&quot;)'>25</text>
-  <line
-   x1='289.560' y1='1202.460' x2='339.480' y2='1389.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='439.320' y='1301.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k46&quot;, &quot;_self&quot;)'>46</text>
-  <line
-   x1='389.400' y1='1314.960' x2='439.320' y2='1314.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='389.400' y='1301.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k35&quot;, &quot;_self&quot;)'>35</text>
-  <line
-   x1='339.480' y1='1239.960' x2='389.400' y2='1314.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='489.240' y='1226.040'
-   style='font-style: italic; text-anchor: middle; fill: green;'
-   onclick='window.open(&quot;#k16&quot;, &quot;_self&quot;)'>16</text>
-  <line
-   x1='439.320' y1='1239.960' x2='489.240' y2='1239.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='439.320' y='1226.040' style='text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k45&quot;, &quot;_self&quot;)'>45</text>
-  <line
-   x1='389.400' y1='1239.960' x2='439.320' y2='1239.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='389.400' y='1226.040' style='text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k34&quot;, &quot;_self&quot;)'>34</text>
-  <line
-   x1='339.480' y1='1239.960' x2='389.400' y2='1239.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='389.400' y='1151.040'
-   style='font-style: italic; text-anchor: middle; fill: green;'
-   onclick='window.open(&quot;#k30&quot;, &quot;_self&quot;)'>30</text>
-  <line
-   x1='339.480' y1='1239.960' x2='389.400' y2='1164.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='339.480' y='1226.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k24&quot;, &quot;_self&quot;)'>24</text>
-  <line
-   x1='289.560' y1='1202.460' x2='339.480' y2='1239.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='389.400' y='1076.040'
-   style='font-style: italic; text-anchor: middle; fill: green;'
-   onclick='window.open(&quot;#k16&quot;, &quot;_self&quot;)'>16</text>
-  <line
-   x1='339.480' y1='1089.960' x2='389.400' y2='1089.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='339.480' y='1076.040' style='text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k23&quot;, &quot;_self&quot;)'>23</text>
-  <line
-   x1='289.560' y1='1202.460' x2='339.480' y2='1089.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='339.480' y='1001.040'
-   style='font-style: italic; text-anchor: middle; fill: green;'
-   onclick='window.open(&quot;#k20&quot;, &quot;_self&quot;)'>20</text>
-  <line
-   x1='289.560' y1='1202.460' x2='339.480' y2='1014.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='289.560' y='1188.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k17&quot;, &quot;_self&quot;)'>17</text>
-  <line
-   x1='239.640' y1='1127.460' x2='289.560' y2='1202.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='339.480' y='926.040'
-   style='font-style: italic; text-anchor: middle; fill: green;'
-   onclick='window.open(&quot;#k8&quot;, &quot;_self&quot;)'>8</text>
-  <line
-   x1='289.560' y1='939.960' x2='339.480' y2='939.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='289.560' y='926.040' style='text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k16&quot;, &quot;_self&quot;)'>16</text>
-  <line
-   x1='239.640' y1='1127.460' x2='289.560' y2='939.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='289.560' y='851.040'
-   style='font-style: italic; text-anchor: middle; fill: green;'
-   onclick='window.open(&quot;#k14&quot;, &quot;_self&quot;)'>14</text>
-  <line
-   x1='239.640' y1='1127.460' x2='289.560' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='1113.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k10&quot;, &quot;_self&quot;)'>10</text>
-  <line
-   x1='189.720' y1='714.960' x2='239.640' y2='1127.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='339.480' y='776.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k22&quot;, &quot;_self&quot;)'>22</text>
-  <line
-   x1='289.560' y1='789.960' x2='339.480' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='289.560' y='776.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k15&quot;, &quot;_self&quot;)'>15</text>
-  <line
-   x1='239.640' y1='452.460' x2='289.560' y2='789.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='389.400' y='701.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k33&quot;, &quot;_self&quot;)'>33</text>
-  <line
-   x1='339.480' y1='714.960' x2='389.400' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='339.480' y='701.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k21&quot;, &quot;_self&quot;)'>21</text>
-  <line
-   x1='289.560' y1='452.460' x2='339.480' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='439.320' y='626.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k44&quot;, &quot;_self&quot;)'>44</text>
-  <line
-   x1='389.400' y1='639.960' x2='439.320' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='389.400' y='626.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k32&quot;, &quot;_self&quot;)'>32</text>
-  <line
-   x1='339.480' y1='452.460' x2='389.400' y2='639.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='439.320' y='551.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k43&quot;, &quot;_self&quot;)'>43</text>
-  <line
-   x1='389.400' y1='564.960' x2='439.320' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='389.400' y='551.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k31&quot;, &quot;_self&quot;)'>31</text>
-  <line
-   x1='339.480' y1='452.460' x2='389.400' y2='564.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='489.240' y='476.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k50&quot;, &quot;_self&quot;)'>50</text>
-  <line
-   x1='439.320' y1='489.960' x2='489.240' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='439.320' y='476.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k42&quot;, &quot;_self&quot;)'>42</text>
-  <line
-   x1='389.400' y1='414.960' x2='439.320' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='489.240' y='401.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k49&quot;, &quot;_self&quot;)'>49</text>
-  <line
-   x1='439.320' y1='414.960' x2='489.240' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='439.320' y='401.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k41&quot;, &quot;_self&quot;)'>41</text>
-  <line
-   x1='389.400' y1='414.960' x2='439.320' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='589.080' y='326.040'
-   style='font-style: italic; text-anchor: middle; fill: green;'
-   onclick='window.open(&quot;#k28&quot;, &quot;_self&quot;)'>28</text>
-  <line
-   x1='539.160' y1='339.960' x2='589.080' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='539.160' y='326.040' style='text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k51&quot;, &quot;_self&quot;)'>51</text>
-  <line
-   x1='489.240' y1='339.960' x2='539.160' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='489.240' y='326.040' style='text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k48&quot;, &quot;_self&quot;)'>48</text>
-  <line
-   x1='439.320' y1='339.960' x2='489.240' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='439.320' y='326.040' style='text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k40&quot;, &quot;_self&quot;)'>40</text>
-  <line
-   x1='389.400' y1='414.960' x2='439.320' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='389.400' y='401.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k30&quot;, &quot;_self&quot;)'>30</text>
-  <line
-   x1='339.480' y1='452.460' x2='389.400' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='489.240' y='251.040'
-   style='font-style: italic; text-anchor: middle; fill: green;'
-   onclick='window.open(&quot;#k28&quot;, &quot;_self&quot;)'>28</text>
-  <line
-   x1='439.320' y1='264.960' x2='489.240' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='439.320' y='251.040' style='text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k39&quot;, &quot;_self&quot;)'>39</text>
-  <line
-   x1='389.400' y1='264.960' x2='439.320' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='389.400' y='251.040' style='text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k29&quot;, &quot;_self&quot;)'>29</text>
-  <line
-   x1='339.480' y1='452.460' x2='389.400' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='339.480' y='438.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k20&quot;, &quot;_self&quot;)'>20</text>
-  <line
-   x1='289.560' y1='452.460' x2='339.480' y2='452.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='439.320' y='176.040'
-   style='font-style: italic; text-anchor: middle; fill: green;'
-   onclick='window.open(&quot;#k8&quot;, &quot;_self&quot;)'>8</text>
-  <line
-   x1='389.400' y1='189.960' x2='439.320' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='389.400' y='176.040' style='text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k28&quot;, &quot;_self&quot;)'>28</text>
-  <line
-   x1='339.480' y1='189.960' x2='389.400' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='339.480' y='176.040' style='text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k19&quot;, &quot;_self&quot;)'>19</text>
-  <line
-   x1='289.560' y1='452.460' x2='339.480' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='289.560' y='438.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k14&quot;, &quot;_self&quot;)'>14</text>
-  <line
-   x1='239.640' y1='452.460' x2='289.560' y2='452.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='289.560' y='101.040'
-   style='font-style: italic; text-anchor: middle; fill: green;'
-   onclick='window.open(&quot;#k8&quot;, &quot;_self&quot;)'>8</text>
-  <line
-   x1='239.640' y1='452.460' x2='289.560' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='438.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k9&quot;, &quot;_self&quot;)'>9</text>
-  <line
-   x1='189.720' y1='714.960' x2='239.640' y2='452.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='239.640' y='26.040'
-   style='font-weight: bold; text-anchor: middle; fill: blue;'
-   onclick='window.open(&quot;#k8&quot;, &quot;_self&quot;)'>8</text>
-  <line
-   x1='189.720' y1='714.960' x2='239.640' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='701.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k4&quot;, &quot;_self&quot;)'>4</text>
-  <line
-   x1='139.800' y1='752.460' x2='189.720' y2='714.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='738.540' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k2&quot;, &quot;_self&quot;)'>2</text>
-  <line
-   x1='89.880' y1='864.960' x2='139.800' y2='752.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='851.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k1&quot;, &quot;_self&quot;)'>1</text>
-  <line
-   x1='39.960' y1='864.960' x2='89.880' y2='864.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='851.040' style='text-anchor: middle; fill: black;'
-   onclick='window.open(&quot;#k0&quot;, &quot;_self&quot;)'>0</text>
-  </svg></div>
-
-<pre>(defprotocol yahalom diffie-hellman
-  (defrole init
-    (vars (a b c name) (n-a n-b text) (k skey))
-    (trace (send (cat a n-a)) (recv (enc b k n-a n-b (ltk a c)))
-      (send (enc n-b k))))
-  (defrole resp
-    (vars (b a c name) (n-a n-b text) (k skey))
-    (trace (recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b c))))
-      (recv (enc a k (ltk b c))) (recv (enc n-b k))))
-  (defrole serv
-    (vars (c a b name) (n-a n-b text) (k skey))
-    (trace (recv (cat b (enc a n-a n-b (ltk b c))))
-      (send (enc b k n-a n-b (ltk a c))) (send (enc a k (ltk b c))))
-    (uniq-orig k)))</pre>
-
-<p id="k0">Item <a href="#t0">0</a>, Child: <a href="#k1">1</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='79.920pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 79.920 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='39.960' y='39.960' style='text-anchor: middle;'>yahalom 0</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b)
-  (label 0)
-  (unrealized (0 2) (0 3))
-  (origs (n-b (0 1)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k1">Item <a href="#t0">1</a>, Parent: <a href="#k0">0</a>, Children: <a href="#k2">2</a> <a href="#k3">3</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 264.960 Q 92.940 264.960 45.960 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc b k n-a-0 n-b-0 (ltk a c))</title>
-   <circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle style='fill: red;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960' style='text-anchor: middle;'>yahalom 1</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
-  (precedes ((1 2) (0 2)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand serv 3) (enc a k (ltk b c))
-    (0 2))
-  (label 1)
-  (parent 0)
-  (unrealized (0 3) (1 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k2">Item <a href="#t0">2</a>, Parent: <a href="#k1">1</a>, Children: <a href="#k4">4</a> <a href="#k5">5</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960' style='text-anchor: middle;'>yahalom 2</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (precedes ((0 1) (1 0)) ((1 2) (0 2)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc a n-a-0 n-b-0 (ltk b c)) (1 0))
-  (label 2)
-  (parent 1)
-  (unrealized (0 3))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k3">Item <a href="#t0">3</a>, Parent: <a href="#k1">1</a>, Children: <a href="#k6">6</a> <a href="#k7">7</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='189.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a-0)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a-0 n-b-0 (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960' style='text-anchor: middle;'>yahalom 3</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (precedes ((1 2) (0 2)) ((2 1) (1 0)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand resp 2)
-    (enc a n-a-0 n-b-0 (ltk b c)) (1 0))
-  (label 3)
-  (parent 1)
-  (unrealized (0 3))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k4">Item <a href="#t0">4</a>, Parent: <a href="#k2">2</a>, Children: <a href="#k8">8</a> <a href="#k9">9</a> <a href="#k10">10</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 339.960 Q 142.729 338.906 45.578 412.852'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 186.900 264.960 233.880 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960' style='text-anchor: middle;'>yahalom 4</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((1 2) (0 2)) ((2 2) (0 3)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand init 3) (enc n-b k) (0 3))
-  (label 4)
-  (parent 2)
-  (unrealized (2 1))
-  (comment &quot;3 in cohort - 3 not yet seen&quot;))</pre>
-
-<p id="k5">Item <a href="#t0">5</a>, Parent: <a href="#k2">2</a>, Child: <a href="#k11">11</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 339.960 Q 142.729 338.906 45.578 412.852'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k</title><circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 186.900 264.960 233.880 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960' style='text-anchor: middle;'>yahalom 5</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (deflistener k)
-  (precedes ((0 1) (1 0)) ((1 1) (2 0)) ((1 2) (0 2)) ((2 1) (0 3)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
-  (operation encryption-test (added-listener k) (enc n-b k) (0 3))
-  (label 5)
-  (parent 2)
-  (unrealized (0 3) (2 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k6">Item <a href="#t0">6</a>, Parent: <a href="#k3">3</a>, Child: <a href="#k12">12</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='189.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 339.960 Q 192.810 339.232 45.781 413.504'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-1 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-1)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a-0)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a-0 n-b-0 (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 264.960 Q 186.900 227.460 333.840 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g>
-   <title>((n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='189.900' y='39.960' style='text-anchor: middle;'>yahalom 6</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b c a-0 b-0 c-0 name)
-    (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (defstrand init 3 (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (precedes ((0 1) (3 1)) ((1 1) (3 1)) ((1 2) (0 2)) ((2 1) (1 0))
-    ((3 2) (0 3)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand init 3) (enc n-b k) (0 3))
-  (label 6)
-  (parent 3)
-  (unrealized (3 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k7">Item <a href="#t0">7</a>, Parent: <a href="#k3">3</a>, Child: <a href="#k13">13</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='264.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='189.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 339.960 Q 192.810 339.232 45.781 413.504'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k</title><circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a-0)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a-0 n-b-0 (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='189.900' y='39.960' style='text-anchor: middle;'>yahalom 7</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (deflistener k)
-  (precedes ((1 1) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (0 3)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
-  (operation encryption-test (added-listener k) (enc n-b k) (0 3))
-  (label 7)
-  (parent 3)
-  (unrealized (0 3) (3 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k8">Item <a href="#t0">8</a>, Parent: <a href="#k4">4</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 339.960 Q 142.729 338.906 45.578 412.852'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 186.900 264.960 233.880 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960'
-   style='text-anchor: middle;'>yahalom 8 (realized)</text></svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((1 2) (0 2)) ((2 2) (0 3)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
-  (operation nonce-test (contracted (a-0 a) (b-0 b) (c-0 c) (n-a-0 n-a))
-    n-b (2 1) (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c)))
-  (label 8)
-  (parent 4)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (c c) (n-b n-b) (n-a n-a) (k k))))
-  (origs (k (1 1)) (n-b (0 1))))</pre>
-
-<p id="k9">Item <a href="#t0">9</a>, Parent: <a href="#k4">4</a>, Children: <a href="#k14">14</a> <a href="#k15">15</a>, Seen Child: <a href="#k8">8</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 339.960 Q 292.860 339.960 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='189.900' y='39.960' style='text-anchor: middle;'>yahalom 9</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (3 1)) ((1 2) (0 2)) ((2 2) (0 3))
-    ((3 2) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
-  (operation nonce-test (added-strand init 3) n-b (2 1)
-    (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c)))
-  (label 9)
-  (parent 4)
-  (seen 8)
-  (unrealized (2 1))
-  (comment &quot;3 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k10">Item <a href="#t0">10</a>, Parent: <a href="#k4">4</a>, Children: <a href="#k16">16</a> <a href="#k17">17</a>, Seen Child: <a href="#k14">14</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 142.729 338.906 45.578 412.852'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 186.900 264.960 233.880 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='189.900' y='39.960' style='text-anchor: middle;'>yahalom 10</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((1 2) (0 2))
-    ((2 2) (0 3)) ((3 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (added-strand serv 2) n-b (2 1)
-    (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c)))
-  (label 10)
-  (parent 4)
-  (seen 14)
-  (unrealized (2 1))
-  (comment &quot;3 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k11">Item <a href="#t0">11</a>, Parent: <a href="#k5">5</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='339.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k</title><circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 139.920 339.960 Q 186.900 339.960 233.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960' style='text-anchor: middle;'>yahalom 11</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (deflistener k)
-  (precedes ((0 1) (1 0)) ((1 2) (0 2)) ((1 2) (2 0)) ((2 1) (0 3)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
-  (operation nonce-test (displaced 3 1 serv 3) k (2 0)
-    (enc b k n-a n-b (ltk a c)))
-  (label 11)
-  (parent 5)
-  (unrealized (0 3) (2 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k12">Item <a href="#t0">12</a>, Parent: <a href="#k6">6</a>, Child: <a href="#k18">18</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 264.960 Q 392.820 264.960 345.840 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 192.810 339.232 45.781 413.504'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-1 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-1)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a-0)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a-0 n-b-0 (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='239.880' y='39.960' style='text-anchor: middle;'>yahalom 12</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b c a-0 b-0 c-0 name)
-    (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (defstrand init 3 (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (precedes ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2)) ((2 1) (1 0))
-    ((3 2) (0 3)) ((4 1) (3 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (added-strand serv 2) n-b (3 1)
-    (enc a n-a n-b (ltk b c)))
-  (label 12)
-  (parent 6)
-  (unrealized (3 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k13">Item <a href="#t0">13</a>, Parent: <a href="#k7">7</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='339.960' x2='339.840' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='189.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 414.960 Q 192.900 377.460 45.960 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k</title><circle cx='339.840' cy='414.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='339.840' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a-0)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 139.920 339.960 Q 236.880 302.460 333.840 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a-0 n-b-0 (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='189.900' y='39.960' style='text-anchor: middle;'>yahalom 13</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (deflistener k)
-  (precedes ((1 2) (0 2)) ((1 2) (3 0)) ((2 1) (1 0)) ((3 1) (0 3)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
-  (operation nonce-test (displaced 4 1 serv 3) k (3 0)
-    (enc b k n-a-0 n-b-0 (ltk a c)))
-  (label 13)
-  (parent 7)
-  (unrealized (0 3) (3 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k14">Item <a href="#t0">14</a>, Parent: <a href="#k9">9</a>, Children: <a href="#k19">19</a> <a href="#k20">20</a> <a href="#k21">21</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 264.960 Q 342.649 263.906 245.498 337.852'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 292.860 339.960 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='239.880' y='39.960' style='text-anchor: middle;'>yahalom 14</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2))
-    ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (added-strand serv 2) n-b (2 1) (enc n-b k)
-    (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c)))
-  (label 14)
-  (parent 9)
-  (unrealized (2 1))
-  (comment &quot;3 in cohort - 3 not yet seen&quot;))</pre>
-
-<p id="k15">Item <a href="#t0">15</a>, Parent: <a href="#k9">9</a>, Child: <a href="#k22">22</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='264.960' x2='439.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 339.960 Q 342.840 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k</title><circle cx='439.800' cy='339.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 292.860 339.960 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 139.920 264.960 Q 286.860 227.460 433.800 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='239.880' y='39.960' style='text-anchor: middle;'>yahalom 15</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (deflistener k)
-  (precedes ((0 1) (1 0)) ((1 1) (3 1)) ((1 1) (4 0)) ((1 2) (0 2))
-    ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
-  (operation nonce-test (added-listener k) n-b (2 1) (enc n-b k)
-    (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c)))
-  (label 15)
-  (parent 9)
-  (unrealized (4 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k16">Item <a href="#t0">16</a>, Parent: <a href="#k10">10</a>, Seen Child: <a href="#k8">8</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 142.729 338.906 45.578 412.852'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 186.900 264.960 233.880 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>yahalom 16 (realized)</text></svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((1 2) (0 2))
-    ((2 2) (0 3)) ((3 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (contracted (a-0 a) (b-0 b) (c-0 c) (n-a-0 n-a))
-    n-b (2 1) (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
-    (enc b k-0 n-a n-b (ltk a c)))
-  (label 16)
-  (parent 10)
-  (seen 8)
-  (unrealized)
-  (comment &quot;1 in cohort - 0 not yet seen&quot;))</pre>
-
-<p id="k17">Item <a href="#t0">17</a>, Parent: <a href="#k10">10</a>, Children: <a href="#k23">23</a> <a href="#k24">24</a> <a href="#k25">25</a>, Seen Child: <a href="#k20">20</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 339.960 Q 342.840 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='439.800' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 264.960 Q 386.820 264.960 433.800 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 187.500 300.660 235.081 336.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='239.880' y='39.960' style='text-anchor: middle;'>yahalom 17</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((1 2) (0 2))
-    ((2 2) (0 3)) ((3 1) (4 1)) ((4 2) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (added-strand init 3) n-b (2 1)
-    (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
-    (enc b k-0 n-a n-b (ltk a c)))
-  (label 17)
-  (parent 10)
-  (seen 20)
-  (unrealized (2 1))
-  (comment &quot;4 in cohort - 3 not yet seen&quot;))</pre>
-
-<p id="k18">Item <a href="#t0">18</a>, Parent: <a href="#k12">12</a>, Children: <a href="#k26">26</a> <a href="#k27">27</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='579.720pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 579.720 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='264.960' x2='339.840' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 539.760 339.960 Q 442.800 302.460 345.840 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 264.960 Q 486.780 264.960 533.760 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 414.960 Q 192.900 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-1 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-1)</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a-0)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 237.071 263.906 334.222 337.852'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a-0 n-b-0 (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='289.860' y='39.960' style='text-anchor: middle;'>yahalom 18</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b c a-0 b-0 c-0 name)
-    (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (defstrand init 3 (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (precedes ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2)) ((2 1) (1 0))
-    ((3 2) (0 3)) ((4 1) (5 1)) ((5 2) (3 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (added-strand init 3) n-b (3 1)
-    (enc a n-a n-b (ltk b c)) (enc b k-0 n-a n-b (ltk a c)))
-  (label 18)
-  (parent 12)
-  (unrealized (3 1))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k19">Item <a href="#t0">19</a>, Parent: <a href="#k14">14</a>, Child: <a href="#k28">28</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 264.960 Q 342.649 263.906 245.498 337.852'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 292.860 339.960 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='239.880' y='39.960'
-   style='text-anchor: middle;'>yahalom 19 (realized)</text></svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2))
-    ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (contracted (a-0 a) (b-0 b) (c-0 c) (n-a-0 n-a))
-    n-b (2 1) (enc n-b k) (enc a n-a n-b (ltk b c))
-    (enc b k n-a n-b (ltk a c)) (enc b k-0 n-a n-b (ltk a c)))
-  (label 19)
-  (parent 14)
-  (unrealized)
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k20">Item <a href="#t0">20</a>, Parent: <a href="#k14">14</a>, Children: <a href="#k29">29</a> <a href="#k30">30</a> <a href="#k31">31</a> <a href="#k32">32</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='579.720pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 579.720 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 539.760 339.960 Q 392.820 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 264.960 Q 486.780 264.960 533.760 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 292.860 339.960 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='289.860' y='39.960' style='text-anchor: middle;'>yahalom 20</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2))
-    ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (5 1)) ((5 2) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (added-strand init 3) n-b (2 1) (enc n-b k)
-    (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
-    (enc b k-0 n-a n-b (ltk a c)))
-  (label 20)
-  (parent 14)
-  (unrealized (2 1))
-  (comment &quot;4 in cohort - 4 not yet seen&quot;))</pre>
-
-<p id="k21">Item <a href="#t0">21</a>, Parent: <a href="#k14">14</a>, Child: <a href="#k33">33</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='579.720pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 579.720 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='539.760' y1='264.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 539.760 339.960 Q 392.820 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k</title><circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 439.800 264.960 Q 342.649 263.906 245.498 337.852'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 292.860 339.960 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 139.920 264.960 Q 336.840 227.460 533.760 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='289.860' y='39.960' style='text-anchor: middle;'>yahalom 21</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (deflistener k)
-  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((1 1) (5 0))
-    ((1 2) (0 2)) ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (2 1))
-    ((5 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (added-listener k) n-b (2 1) (enc n-b k)
-    (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
-    (enc b k-0 n-a n-b (ltk a c)))
-  (label 21)
-  (parent 14)
-  (unrealized (5 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k22">Item <a href="#t0">22</a>, Parent: <a href="#k15">15</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='529.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 529.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='339.960' x2='439.800' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='339.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 414.960 Q 342.840 377.460 245.880 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k</title><circle cx='439.800' cy='414.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='439.800' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 292.260 375.660 244.679 411.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 142.920 452.460 45.960 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 139.920 339.960 Q 286.860 302.460 433.800 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='239.880' y='39.960' style='text-anchor: middle;'>yahalom 22</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (deflistener k)
-  (precedes ((0 1) (1 0)) ((1 1) (3 1)) ((1 2) (0 2)) ((1 2) (4 0))
-    ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
-  (operation nonce-test (displaced 5 1 serv 3) k (4 0)
-    (enc b k n-a n-b (ltk a c)))
-  (label 22)
-  (parent 15)
-  (unrealized (4 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k23">Item <a href="#t0">23</a>, Parent: <a href="#k17">17</a>, Seen Child: <a href="#k16">16</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 339.960 Q 342.840 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='439.800' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 264.960 Q 386.820 264.960 433.800 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 187.500 300.660 235.081 336.359'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='239.880' y='39.960'
-   style='text-anchor: middle;'>yahalom 23 (realized)</text></svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((1 2) (0 2))
-    ((2 2) (0 3)) ((3 1) (4 1)) ((4 2) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (contracted (a-0 a) (b-0 b) (c-0 c) (n-a-0 n-a))
-    n-b (2 1) (enc n-b k-0) (enc a n-a n-b (ltk b c))
-    (enc b k n-a n-b (ltk a c)) (enc b k-0 n-a n-b (ltk a c)))
-  (label 23)
-  (parent 17)
-  (seen 16)
-  (unrealized)
-  (comment &quot;1 in cohort - 0 not yet seen&quot;))</pre>
-
-<p id="k24">Item <a href="#t0">24</a>, Parent: <a href="#k17">17</a>, Children: <a href="#k34">34</a> <a href="#k35">35</a>, Seen Child: <a href="#k30">30</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='579.720pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 579.720 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 539.760 264.960 Q 392.730 264.232 245.701 338.504'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-1 n-a n-b (ltk a c))</title>
-   <circle cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 339.960 Q 342.840 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='439.800' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 264.960 Q 386.820 264.960 433.800 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 187.500 300.660 235.081 336.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 286.860 152.460 533.760 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='289.860' y='39.960' style='text-anchor: middle;'>yahalom 24</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
-  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((0 1) (5 0)) ((1 1) (2 1))
-    ((1 2) (0 2)) ((2 2) (0 3)) ((3 1) (4 1)) ((4 2) (2 1))
-    ((5 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
-  (operation nonce-test (added-strand serv 2) n-b (2 1) (enc n-b k-0)
-    (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
-    (enc b k-0 n-a n-b (ltk a c)))
-  (label 24)
-  (parent 17)
-  (seen 30)
-  (unrealized (2 1))
-  (comment &quot;3 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k25">Item <a href="#t0">25</a>, Parent: <a href="#k17">17</a>, Child: <a href="#k36">36</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='579.720pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 579.720 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='539.760' y1='264.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 539.760 339.960 Q 392.820 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k-0</title><circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g><title>k-0</title>
-   <circle style='fill: red;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 439.800 339.960 Q 342.840 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='439.800' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 264.960 Q 386.820 264.960 433.800 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 339.840 264.960 Q 436.800 227.460 533.760 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 187.500 300.660 235.081 336.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='289.860' y='39.960' style='text-anchor: middle;'>yahalom 25</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (deflistener k-0)
-  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((1 2) (0 2))
-    ((2 2) (0 3)) ((3 1) (4 1)) ((3 1) (5 0)) ((4 2) (2 1))
-    ((5 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (added-listener k-0) n-b (2 1) (enc n-b k-0)
-    (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
-    (enc b k-0 n-a n-b (ltk a c)))
-  (label 25)
-  (parent 17)
-  (unrealized (2 1) (5 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k26">Item <a href="#t0">26</a>, Parent: <a href="#k18">18</a>, Child: <a href="#k37">37</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='679.680pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 679.680 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='639.720' y1='189.960' x2='639.720' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='264.960' x2='339.840' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 639.720 264.960 Q 492.690 264.232 345.661 338.504'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-1 n-a n-b (ltk a c))</title>
-   <circle cx='639.720' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='639.720' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 442.800 302.460 345.840 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 264.960 Q 486.780 264.960 533.760 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 414.960 Q 192.900 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-1 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-1)</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a-0)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 237.071 263.906 334.222 337.852'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a-0 n-b-0 (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 336.840 152.460 633.720 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))</title>
-   <text x='639.720' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='339.840' y='39.960' style='text-anchor: middle;'>yahalom 26</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b c a-0 b-0 c-0 name)
-    (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (defstrand init 3 (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
-  (precedes ((0 1) (4 0)) ((0 1) (6 0)) ((1 1) (3 1)) ((1 2) (0 2))
-    ((2 1) (1 0)) ((3 2) (0 3)) ((4 1) (5 1)) ((5 2) (3 1))
-    ((6 1) (3 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
-  (operation nonce-test (added-strand serv 2) n-b (3 1) (enc n-b k-0)
-    (enc a n-a n-b (ltk b c)) (enc b k-0 n-a n-b (ltk a c)))
-  (label 26)
-  (parent 18)
-  (unrealized (3 1))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k27">Item <a href="#t0">27</a>, Parent: <a href="#k18">18</a>, Child: <a href="#k38">38</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='679.680pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 679.680 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='639.720' y1='264.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='264.960' x2='339.840' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 639.720 339.960 Q 492.780 302.460 345.840 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k-0</title><circle cx='639.720' cy='339.960' r='6.000'/></g>
-  <g><title>k-0</title>
-   <circle style='fill: red;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 442.800 302.460 345.840 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 264.960 Q 486.780 264.960 533.760 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 439.800 264.960 Q 536.760 227.460 633.720 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 414.960 Q 192.900 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-1 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-1)</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a-0)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 237.071 263.906 334.222 337.852'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a-0 n-b-0 (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='339.840' y='39.960' style='text-anchor: middle;'>yahalom 27</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b c a-0 b-0 c-0 name)
-    (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (defstrand init 3 (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (deflistener k-0)
-  (precedes ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2)) ((2 1) (1 0))
-    ((3 2) (0 3)) ((4 1) (5 1)) ((4 1) (6 0)) ((5 2) (3 1))
-    ((6 1) (3 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (added-listener k-0) n-b (3 1) (enc n-b k-0)
-    (enc a n-a n-b (ltk b c)) (enc b k-0 n-a n-b (ltk a c)))
-  (label 27)
-  (parent 18)
-  (unrealized (3 1) (6 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k28">Item <a href="#t0">28</a>, Parent: <a href="#k19">19</a>, Seen Child: <a href="#k8">8</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 264.960 Q 192.583 301.118 45.326 412.276'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 142.729 338.906 45.578 412.852'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 186.900 264.960 233.880 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='189.900' y='39.960'
-   style='text-anchor: middle;'>yahalom 28 (realized)</text></svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((1 2) (0 2))
-    ((2 2) (0 3)) ((3 1) (0 3)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation generalization deleted (2 0))
-  (label 28)
-  (parent 19)
-  (seen 8)
-  (unrealized)
-  (comment &quot;1 in cohort - 0 not yet seen&quot;))</pre>
-
-<p id="k29">Item <a href="#t0">29</a>, Parent: <a href="#k20">20</a>, Child: <a href="#k39">39</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='579.720pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 579.720 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 539.760 339.960 Q 392.820 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 264.960 Q 486.780 264.960 533.760 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 292.860 339.960 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='289.860' y='39.960'
-   style='text-anchor: middle;'>yahalom 29 (realized)</text></svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2))
-    ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (5 1)) ((5 2) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (contracted (a-0 a) (b-0 b) (c-0 c) (n-a-0 n-a))
-    n-b (2 1) (enc n-b k) (enc n-b k-0) (enc a n-a n-b (ltk b c))
-    (enc b k n-a n-b (ltk a c)) (enc b k-0 n-a n-b (ltk a c)))
-  (label 29)
-  (parent 20)
-  (unrealized)
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k30">Item <a href="#t0">30</a>, Parent: <a href="#k20">20</a>, Children: <a href="#k40">40</a> <a href="#k41">41</a> <a href="#k42">42</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='679.680pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 679.680 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='639.720' y1='189.960' x2='639.720' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 639.720 264.960 Q 442.749 264.407 245.777 338.854'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-1 n-a n-b (ltk a c))</title>
-   <circle cx='639.720' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='639.720' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 392.820 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 264.960 Q 486.780 264.960 533.760 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 292.860 339.960 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 336.840 152.460 633.720 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))</title>
-   <text x='639.720' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='339.840' y='39.960' style='text-anchor: middle;'>yahalom 30</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
-  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((0 1) (6 0)) ((1 1) (3 1))
-    ((1 2) (0 2)) ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (5 1))
-    ((5 2) (2 1)) ((6 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
-  (operation nonce-test (added-strand serv 2) n-b (2 1) (enc n-b k)
-    (enc n-b k-0) (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
-    (enc b k-0 n-a n-b (ltk a c)))
-  (label 30)
-  (parent 20)
-  (unrealized (2 1))
-  (comment &quot;3 in cohort - 3 not yet seen&quot;))</pre>
-
-<p id="k31">Item <a href="#t0">31</a>, Parent: <a href="#k20">20</a>, Child: <a href="#k43">43</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='679.680pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 679.680 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='639.720' y1='264.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 639.720 339.960 Q 442.800 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k</title><circle cx='639.720' cy='339.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 392.820 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 264.960 Q 486.780 264.960 533.760 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 292.860 339.960 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 139.920 264.960 Q 386.820 227.460 633.720 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='339.840' y='39.960' style='text-anchor: middle;'>yahalom 31</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (deflistener k)
-  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((1 1) (6 0))
-    ((1 2) (0 2)) ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (5 1))
-    ((5 2) (2 1)) ((6 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (added-listener k) n-b (2 1) (enc n-b k)
-    (enc n-b k-0) (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
-    (enc b k-0 n-a n-b (ltk a c)))
-  (label 31)
-  (parent 20)
-  (unrealized (6 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k32">Item <a href="#t0">32</a>, Parent: <a href="#k20">20</a>, Child: <a href="#k44">44</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='679.680pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 679.680 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='639.720' y1='264.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 639.720 339.960 Q 442.800 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k-0</title><circle cx='639.720' cy='339.960' r='6.000'/></g>
-  <g><title>k-0</title>
-   <circle style='fill: red;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 392.820 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 264.960 Q 486.780 264.960 533.760 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 439.800 264.960 Q 536.760 227.460 633.720 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 292.860 339.960 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='339.840' y='39.960' style='text-anchor: middle;'>yahalom 32</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (deflistener k-0)
-  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2))
-    ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (5 1)) ((4 1) (6 0))
-    ((5 2) (2 1)) ((6 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (added-listener k-0) n-b (2 1) (enc n-b k)
-    (enc n-b k-0) (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
-    (enc b k-0 n-a n-b (ltk a c)))
-  (label 32)
-  (parent 20)
-  (unrealized (2 1) (6 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k33">Item <a href="#t0">33</a>, Parent: <a href="#k21">21</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='579.720pt' height='529.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 579.720 529.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='339.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 539.760 414.960 Q 392.820 377.460 245.880 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k</title><circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 264.960 Q 342.240 300.660 244.679 411.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 292.260 375.660 244.679 411.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 142.920 452.460 45.960 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 139.920 339.960 Q 336.840 302.460 533.760 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='289.860' y='39.960' style='text-anchor: middle;'>yahalom 33</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (deflistener k)
-  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2))
-    ((1 2) (5 0)) ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (2 1))
-    ((5 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (displaced 6 1 serv 3) k (5 0)
-    (enc b k n-a n-b (ltk a c)))
-  (label 33)
-  (parent 21)
-  (unrealized (5 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k34">Item <a href="#t0">34</a>, Parent: <a href="#k24">24</a>, Child: <a href="#k45">45</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='579.720pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 579.720 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 539.760 264.960 Q 392.730 264.232 245.701 338.504'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-1 n-a n-b (ltk a c))</title>
-   <circle cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 339.960 Q 342.840 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='439.800' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 264.960 Q 386.820 264.960 433.800 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 187.500 300.660 235.081 336.359'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 286.860 152.460 533.760 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='289.860' y='39.960'
-   style='text-anchor: middle;'>yahalom 34 (realized)</text></svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
-  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((0 1) (5 0)) ((1 1) (2 1))
-    ((1 2) (0 2)) ((2 2) (0 3)) ((3 1) (4 1)) ((4 2) (2 1))
-    ((5 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
-  (operation nonce-test (contracted (a-0 a) (b-0 b) (c-0 c) (n-a-0 n-a))
-    n-b (2 1) (enc n-b k-0) (enc a n-a n-b (ltk b c))
-    (enc b k n-a n-b (ltk a c)) (enc b k-0 n-a n-b (ltk a c))
-    (enc b k-1 n-a n-b (ltk a c)))
-  (label 34)
-  (parent 24)
-  (unrealized)
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k35">Item <a href="#t0">35</a>, Parent: <a href="#k24">24</a>, Child: <a href="#k46">46</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='679.680pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 679.680 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='639.720' y1='264.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 639.720 339.960 Q 442.800 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k-0</title><circle cx='639.720' cy='339.960' r='6.000'/></g>
-  <g><title>k-0</title>
-   <circle style='fill: red;' cx='639.720' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 539.760 264.960 Q 392.730 264.232 245.701 338.504'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-1 n-a n-b (ltk a c))</title>
-   <circle cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 339.960 Q 342.840 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='439.800' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 264.960 Q 386.820 264.960 433.800 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 339.840 264.960 Q 486.780 227.460 633.720 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 187.500 300.660 235.081 336.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 286.860 152.460 533.760 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='339.840' y='39.960' style='text-anchor: middle;'>yahalom 35</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
-  (deflistener k-0)
-  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((0 1) (5 0)) ((1 1) (2 1))
-    ((1 2) (0 2)) ((2 2) (0 3)) ((3 1) (4 1)) ((3 1) (6 0))
-    ((4 2) (2 1)) ((5 1) (2 1)) ((6 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
-  (operation nonce-test (added-listener k-0) n-b (2 1) (enc n-b k-0)
-    (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
-    (enc b k-0 n-a n-b (ltk a c)) (enc b k-1 n-a n-b (ltk a c)))
-  (label 35)
-  (parent 24)
-  (unrealized (2 1) (6 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k36">Item <a href="#t0">36</a>, Parent: <a href="#k25">25</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='579.720pt' height='529.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 579.720 529.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='339.960' x2='439.800' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='339.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 539.760 339.960 Q 492.780 339.960 445.800 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k-0 (ltk b c))</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 539.760 264.960 Q 442.800 227.460 345.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 414.960 Q 342.840 377.460 245.880 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k-0</title><circle cx='439.800' cy='414.960' r='6.000'/></g>
-  <g><title>k-0</title>
-   <circle style='fill: red;' cx='439.800' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 292.260 375.660 244.679 411.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 142.920 452.460 45.960 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 188.236 337.464 236.553 409.967'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 286.860 152.460 533.760 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='289.860' y='39.960' style='text-anchor: middle;'>yahalom 36</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (deflistener k-0)
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (precedes ((0 1) (1 0)) ((0 1) (5 0)) ((1 1) (2 1)) ((1 2) (0 2))
-    ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (2 1)) ((5 1) (3 1))
-    ((5 2) (4 0)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (displaced 3 6 serv 3) k-0 (5 0)
-    (enc b k-0 n-a n-b (ltk a c)))
-  (label 36)
-  (parent 25)
-  (unrealized (2 1) (4 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k37">Item <a href="#t0">37</a>, Parent: <a href="#k26">26</a>, Child: <a href="#k47">47</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='779.640pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 779.640 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='739.680' y1='264.960' x2='739.680' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='189.960' x2='639.720' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='264.960' x2='339.840' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 739.680 339.960 Q 542.760 302.460 345.840 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k-0</title><circle cx='739.680' cy='339.960' r='6.000'/></g>
-  <g><title>k-0</title>
-   <circle style='fill: red;' cx='739.680' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 264.960 Q 492.690 264.232 345.661 338.504'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-1 n-a n-b (ltk a c))</title>
-   <circle cx='639.720' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='639.720' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 442.800 302.460 345.840 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 264.960 Q 486.780 264.960 533.760 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 439.800 264.960 Q 586.740 227.460 733.680 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 414.960 Q 192.900 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-1 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-1)</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a-0)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 237.071 263.906 334.222 337.852'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a-0 n-b-0 (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 336.840 152.460 633.720 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))</title>
-   <text x='639.720' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g>
-   <title>((n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='389.820' y='39.960' style='text-anchor: middle;'>yahalom 37</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b c a-0 b-0 c-0 name)
-    (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (defstrand init 3 (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
-  (deflistener k-0)
-  (precedes ((0 1) (4 0)) ((0 1) (6 0)) ((1 1) (3 1)) ((1 2) (0 2))
-    ((2 1) (1 0)) ((3 2) (0 3)) ((4 1) (5 1)) ((4 1) (7 0))
-    ((5 2) (3 1)) ((6 1) (3 1)) ((7 1) (3 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
-  (operation nonce-test (added-listener k-0) n-b (3 1) (enc n-b k-0)
-    (enc a n-a n-b (ltk b c)) (enc b k-0 n-a n-b (ltk a c))
-    (enc b k-1 n-a n-b (ltk a c)))
-  (label 37)
-  (parent 26)
-  (unrealized (3 1) (7 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k38">Item <a href="#t0">38</a>, Parent: <a href="#k27">27</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='679.680pt' height='529.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 679.680 529.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='639.720' y1='189.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='339.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k-0 (ltk b c))</title>
-   <circle cx='639.720' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 639.720 264.960 Q 542.760 227.460 445.800 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='639.720' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='639.720' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 539.760 414.960 Q 442.800 377.460 345.840 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k-0</title><circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g><title>k-0</title>
-   <circle style='fill: red;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 339.960 Q 392.220 375.660 344.639 411.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='439.800' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 192.900 452.460 45.960 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-1 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-1)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a-0)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 237.480 300.660 335.041 411.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a-0 n-b-0 (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 336.840 152.460 633.720 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='639.720' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g>
-   <title>((n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='339.840' y='39.960' style='text-anchor: middle;'>yahalom 38</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b c a-0 b-0 c-0 name)
-    (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (defstrand init 3 (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (deflistener k-0)
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (precedes ((0 1) (6 0)) ((1 1) (3 1)) ((1 2) (0 2)) ((2 1) (1 0))
-    ((3 2) (0 3)) ((4 2) (3 1)) ((5 1) (3 1)) ((6 1) (4 1))
-    ((6 2) (5 0)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (displaced 4 7 serv 3) k-0 (6 0)
-    (enc b k-0 n-a n-b (ltk a c)))
-  (label 38)
-  (parent 27)
-  (unrealized (3 1) (5 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k39">Item <a href="#t0">39</a>, Parent: <a href="#k29">29</a>, Seen Child: <a href="#k28">28</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 339.960 Q 242.829 339.407 45.857 413.854'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='439.800' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 264.960 Q 386.820 264.960 433.800 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 142.729 338.906 45.578 412.852'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 186.900 264.960 233.880 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='239.880' y='39.960'
-   style='text-anchor: middle;'>yahalom 39 (realized)</text></svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((1 2) (0 2))
-    ((2 2) (0 3)) ((3 1) (4 1)) ((4 2) (0 3)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation generalization deleted (2 0))
-  (label 39)
-  (parent 29)
-  (seen 28)
-  (unrealized)
-  (comment &quot;1 in cohort - 0 not yet seen&quot;))</pre>
-
-<p id="k40">Item <a href="#t0">40</a>, Parent: <a href="#k30">30</a>, Child: <a href="#k48">48</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='679.680pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 679.680 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='639.720' y1='189.960' x2='639.720' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 639.720 264.960 Q 442.749 264.407 245.777 338.854'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-1 n-a n-b (ltk a c))</title>
-   <circle cx='639.720' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='639.720' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 392.820 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 264.960 Q 486.780 264.960 533.760 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 292.860 339.960 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 336.840 152.460 633.720 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))</title>
-   <text x='639.720' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='339.840' y='39.960'
-   style='text-anchor: middle;'>yahalom 40 (realized)</text></svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
-  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((0 1) (6 0)) ((1 1) (3 1))
-    ((1 2) (0 2)) ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (5 1))
-    ((5 2) (2 1)) ((6 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
-  (operation nonce-test (contracted (a-0 a) (b-0 b) (c-0 c) (n-a-0 n-a))
-    n-b (2 1) (enc n-b k) (enc n-b k-0) (enc a n-a n-b (ltk b c))
-    (enc b k n-a n-b (ltk a c)) (enc b k-0 n-a n-b (ltk a c))
-    (enc b k-1 n-a n-b (ltk a c)))
-  (label 40)
-  (parent 30)
-  (unrealized)
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k41">Item <a href="#t0">41</a>, Parent: <a href="#k30">30</a>, Child: <a href="#k49">49</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='779.640pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 779.640 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='739.680' y1='264.960' x2='739.680' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='189.960' x2='639.720' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 739.680 339.960 Q 492.780 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k</title><circle cx='739.680' cy='339.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='739.680' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 264.960 Q 442.749 264.407 245.777 338.854'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-1 n-a n-b (ltk a c))</title>
-   <circle cx='639.720' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='639.720' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 392.820 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 264.960 Q 486.780 264.960 533.760 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 292.860 339.960 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: blue;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 139.920 264.960 Q 436.800 227.460 733.680 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 336.840 152.460 633.720 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))</title>
-   <text x='639.720' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='389.820' y='39.960' style='text-anchor: middle;'>yahalom 41</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
-  (deflistener k)
-  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((0 1) (6 0)) ((1 1) (3 1))
-    ((1 1) (7 0)) ((1 2) (0 2)) ((2 2) (0 3)) ((3 2) (2 1))
-    ((4 1) (5 1)) ((5 2) (2 1)) ((6 1) (2 1)) ((7 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
-  (operation nonce-test (added-listener k) n-b (2 1) (enc n-b k)
-    (enc n-b k-0) (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
-    (enc b k-0 n-a n-b (ltk a c)) (enc b k-1 n-a n-b (ltk a c)))
-  (label 41)
-  (parent 30)
-  (unrealized (7 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k42">Item <a href="#t0">42</a>, Parent: <a href="#k30">30</a>, Child: <a href="#k50">50</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='779.640pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 779.640 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='739.680' y1='264.960' x2='739.680' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='189.960' x2='639.720' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='264.960' x2='239.880' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 739.680 339.960 Q 492.780 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k-0</title><circle cx='739.680' cy='339.960' r='6.000'/></g>
-  <g><title>k-0</title>
-   <circle style='fill: red;' cx='739.680' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 639.720 264.960 Q 442.749 264.407 245.777 338.854'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-1 n-a n-b (ltk a c))</title>
-   <circle cx='639.720' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='639.720' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 392.820 302.460 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 264.960 Q 486.780 264.960 533.760 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 439.800 264.960 Q 586.740 227.460 733.680 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 292.860 339.960 245.880 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 414.960 Q 142.920 377.460 45.960 414.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 336.840 152.460 633.720 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))</title>
-   <text x='639.720' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='389.820' y='39.960' style='text-anchor: middle;'>yahalom 42</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
-  (deflistener k-0)
-  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((0 1) (6 0)) ((1 1) (3 1))
-    ((1 2) (0 2)) ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (5 1))
-    ((4 1) (7 0)) ((5 2) (2 1)) ((6 1) (2 1)) ((7 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
-  (operation nonce-test (added-listener k-0) n-b (2 1) (enc n-b k)
-    (enc n-b k-0) (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
-    (enc b k-0 n-a n-b (ltk a c)) (enc b k-1 n-a n-b (ltk a c)))
-  (label 42)
-  (parent 30)
-  (unrealized (2 1) (7 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k43">Item <a href="#t0">43</a>, Parent: <a href="#k31">31</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='679.680pt' height='529.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 679.680 529.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='639.720' y1='339.960' x2='639.720' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='339.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 639.720 414.960 Q 442.800 377.460 245.880 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k</title><circle cx='639.720' cy='414.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 392.730 339.232 245.701 413.504'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 264.960 Q 486.780 264.960 533.760 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 292.260 375.660 244.679 411.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 142.920 452.460 45.960 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 139.920 339.960 Q 386.820 302.460 633.720 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='339.840' y='39.960' style='text-anchor: middle;'>yahalom 43</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (deflistener k)
-  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2))
-    ((1 2) (6 0)) ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (5 1))
-    ((5 2) (2 1)) ((6 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (displaced 7 1 serv 3) k (6 0)
-    (enc b k n-a n-b (ltk a c)))
-  (label 43)
-  (parent 31)
-  (unrealized (6 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k44">Item <a href="#t0">44</a>, Parent: <a href="#k32">32</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='679.680pt' height='529.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 679.680 529.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='639.720' y1='189.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='339.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k-0 (ltk b c))</title>
-   <circle cx='639.720' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 639.720 264.960 Q 542.760 227.460 445.800 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='639.720' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='639.720' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 539.760 414.960 Q 392.820 377.460 245.880 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k-0</title><circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g><title>k-0</title>
-   <circle style='fill: red;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 339.960 Q 342.649 338.906 245.498 412.852'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='439.800' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 292.260 375.660 244.679 411.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 142.920 452.460 45.960 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 336.840 152.460 633.720 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='639.720' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='339.840' y='39.960' style='text-anchor: middle;'>yahalom 44</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (deflistener k-0)
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (precedes ((0 1) (1 0)) ((0 1) (6 0)) ((1 1) (3 1)) ((1 2) (0 2))
-    ((2 2) (0 3)) ((3 2) (2 1)) ((4 2) (2 1)) ((5 1) (2 1))
-    ((6 1) (4 1)) ((6 2) (5 0)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (displaced 4 7 serv 3) k-0 (6 0)
-    (enc b k-0 n-a n-b (ltk a c)))
-  (label 44)
-  (parent 32)
-  (unrealized (2 1) (5 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k45">Item <a href="#t0">45</a>, Parent: <a href="#k34">34</a>, Seen Child: <a href="#k16">16</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 264.960 Q 342.840 227.460 245.880 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-1 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 264.960 Q 292.860 264.960 245.880 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 142.729 338.906 45.578 412.852'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 186.900 264.960 233.880 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='239.880' y='39.960'
-   style='text-anchor: middle;'>yahalom 45 (realized)</text></svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
-  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((0 1) (4 0)) ((1 1) (2 1))
-    ((1 2) (0 2)) ((2 2) (0 3)) ((3 1) (2 1)) ((4 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
-  (operation generalization deleted (4 0))
-  (label 45)
-  (parent 34)
-  (seen 16)
-  (unrealized)
-  (comment &quot;1 in cohort - 0 not yet seen&quot;))</pre>
-
-<p id="k46">Item <a href="#t0">46</a>, Parent: <a href="#k35">35</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='679.680pt' height='529.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 679.680 529.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='639.720' y1='189.960' x2='639.720' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='339.960' x2='539.760' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='339.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 639.720 339.960 Q 592.740 339.960 545.760 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k-0 (ltk b c))</title>
-   <circle cx='639.720' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 639.720 264.960 Q 492.780 227.460 345.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='639.720' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='639.720' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 539.760 414.960 Q 392.820 377.460 245.880 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k-0</title><circle cx='539.760' cy='414.960' r='6.000'/></g>
-  <g><title>k-0</title>
-   <circle style='fill: red;' cx='539.760' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 439.800 264.960 Q 342.240 300.660 244.679 411.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-1 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 292.260 375.660 244.679 411.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 142.920 452.460 45.960 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 188.236 337.464 236.553 409.967'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 336.840 152.460 633.720 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='639.720' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='339.840' y='39.960' style='text-anchor: middle;'>yahalom 46</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
-  (deflistener k-0)
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((0 1) (6 0)) ((1 1) (2 1))
-    ((1 2) (0 2)) ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (2 1))
-    ((5 1) (2 1)) ((6 1) (3 1)) ((6 2) (5 0)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
-  (operation nonce-test (displaced 3 7 serv 3) k-0 (6 0)
-    (enc b k-0 n-a n-b (ltk a c)))
-  (label 46)
-  (parent 35)
-  (unrealized (2 1) (5 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k47">Item <a href="#t0">47</a>, Parent: <a href="#k37">37</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='779.640pt' height='529.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 779.640 529.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='739.680' y1='189.960' x2='739.680' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='339.960' x2='639.720' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='339.960' x2='339.840' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 739.680 339.960 Q 692.700 339.960 645.720 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k-0 (ltk b c))</title>
-   <circle cx='739.680' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 739.680 264.960 Q 592.740 227.460 445.800 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='739.680' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='739.680' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 639.720 414.960 Q 492.780 377.460 345.840 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k-0</title><circle cx='639.720' cy='414.960' r='6.000'/></g>
-  <g><title>k-0</title>
-   <circle style='fill: red;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 539.760 264.960 Q 442.200 300.660 344.639 411.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-1 n-a n-b (ltk a c))</title>
-   <circle cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 339.960 Q 392.220 375.660 344.639 411.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='439.800' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 489.960 Q 192.900 452.460 45.960 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='489.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-1 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='339.840' cy='414.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-1)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a-0)</title>
-   <circle style='fill: blue;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 237.480 300.660 335.041 411.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a-0 n-b-0 (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 286.860 152.460 533.760 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 386.820 152.460 733.680 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='739.680' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g>
-   <title>((n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='389.820' y='39.960' style='text-anchor: middle;'>yahalom 47</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b c a-0 b-0 c-0 name)
-    (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (defstrand init 3 (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
-  (deflistener k-0)
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (precedes ((0 1) (5 0)) ((0 1) (7 0)) ((1 1) (3 1)) ((1 2) (0 2))
-    ((2 1) (1 0)) ((3 2) (0 3)) ((4 2) (3 1)) ((5 1) (3 1))
-    ((6 1) (3 1)) ((7 1) (4 1)) ((7 2) (6 0)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
-  (operation nonce-test (displaced 4 8 serv 3) k-0 (7 0)
-    (enc b k-0 n-a n-b (ltk a c)))
-  (label 47)
-  (parent 37)
-  (unrealized (3 1) (6 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k48">Item <a href="#t0">48</a>, Parent: <a href="#k40">40</a>, Child: <a href="#k51">51</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='579.720pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 579.720 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 539.760 264.960 Q 292.733 301.598 45.707 413.235'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-1 n-a n-b (ltk a c))</title>
-   <circle cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 339.960 Q 242.829 339.407 45.857 413.854'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='439.800' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 264.960 Q 386.820 264.960 433.800 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 142.729 338.906 45.578 412.852'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 186.900 264.960 233.880 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 286.860 152.460 533.760 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='289.860' y='39.960'
-   style='text-anchor: middle;'>yahalom 48 (realized)</text></svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
-  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((0 1) (5 0)) ((1 1) (2 1))
-    ((1 2) (0 2)) ((2 2) (0 3)) ((3 1) (4 1)) ((4 2) (0 3))
-    ((5 1) (0 3)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
-  (operation generalization deleted (2 0))
-  (label 48)
-  (parent 40)
-  (unrealized)
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k49">Item <a href="#t0">49</a>, Parent: <a href="#k41">41</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='779.640pt' height='529.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 779.640 529.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='739.680' y1='339.960' x2='739.680' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='189.960' x2='639.720' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='339.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 739.680 414.960 Q 492.780 377.460 245.880 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k</title><circle cx='739.680' cy='414.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='739.680' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 639.720 264.960 Q 442.609 301.406 245.498 412.852'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-1 n-a n-b (ltk a c))</title>
-   <circle cx='639.720' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='639.720' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 539.760 339.960 Q 392.730 339.232 245.701 413.504'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='539.760' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 264.960 Q 486.780 264.960 533.760 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 292.260 375.660 244.679 411.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 142.920 452.460 45.960 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: blue;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 139.920 339.960 Q 436.800 302.460 733.680 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 336.840 152.460 633.720 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))</title>
-   <text x='639.720' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='389.820' y='39.960' style='text-anchor: middle;'>yahalom 49</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
-  (deflistener k)
-  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((0 1) (6 0)) ((1 1) (3 1))
-    ((1 2) (0 2)) ((1 2) (7 0)) ((2 2) (0 3)) ((3 2) (2 1))
-    ((4 1) (5 1)) ((5 2) (2 1)) ((6 1) (2 1)) ((7 1) (2 1)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
-  (operation nonce-test (displaced 8 1 serv 3) k (7 0)
-    (enc b k n-a n-b (ltk a c)))
-  (label 49)
-  (parent 41)
-  (unrealized (7 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k50">Item <a href="#t0">50</a>, Parent: <a href="#k42">42</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='779.640pt' height='529.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 779.640 529.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='739.680' y1='189.960' x2='739.680' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='639.720' y1='339.960' x2='639.720' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='539.760' y1='189.960' x2='539.760' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='339.960' x2='239.880' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='489.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 739.680 339.960 Q 692.700 339.960 645.720 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k-0 (ltk b c))</title>
-   <circle cx='739.680' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 739.680 264.960 Q 592.740 227.460 445.800 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='739.680' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='739.680' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 639.720 414.960 Q 442.800 377.460 245.880 414.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>k-0</title><circle cx='639.720' cy='414.960' r='6.000'/></g>
-  <g><title>k-0</title>
-   <circle style='fill: red;' cx='639.720' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 539.760 264.960 Q 392.503 301.118 245.246 412.276'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-1 n-a n-b (ltk a c))</title>
-   <circle cx='539.760' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='539.760' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 439.800 339.960 Q 342.649 338.906 245.498 412.852'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k-0)</title>
-   <circle cx='439.800' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 339.960 Q 292.260 375.660 244.679 411.359'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='339.840' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 489.960 Q 142.920 452.460 45.960 489.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='489.960' r='6.000'/></g>
-  <g><title>(enc b-0 k n-a-0 n-b (ltk a-0 c-0))</title>
-   <circle style='fill: red;' cx='239.880' cy='414.960' r='6.000'/></g>
-  <g><title>(cat a-0 n-a-0)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.340 375.660 44.759 411.359'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 236.880 227.460 333.840 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='489.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 286.860 152.460 533.760 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 386.820 152.460 733.680 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='739.680' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))</title>
-   <text x='539.760' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g>
-   <title>((n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='389.820' y='39.960' style='text-anchor: middle;'>yahalom 50</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
-  (deflistener k-0)
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (precedes ((0 1) (1 0)) ((0 1) (5 0)) ((0 1) (7 0)) ((1 1) (3 1))
-    ((1 2) (0 2)) ((2 2) (0 3)) ((3 2) (2 1)) ((4 2) (2 1))
-    ((5 1) (2 1)) ((6 1) (2 1)) ((7 1) (4 1)) ((7 2) (6 0)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
-  (operation nonce-test (displaced 4 8 serv 3) k-0 (7 0)
-    (enc b k-0 n-a n-b (ltk a c)))
-  (label 50)
-  (parent 42)
-  (unrealized (2 1) (6 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k51">Item <a href="#t0">51</a>, Parent: <a href="#k48">48</a>, Seen Child: <a href="#k28">28</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='479.760pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 479.760 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='439.800' y1='189.960' x2='439.800' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='339.840' y1='189.960' x2='339.840' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 439.800 264.960 Q 242.689 301.406 45.578 412.852'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-1 n-a n-b (ltk a c))</title>
-   <circle cx='439.800' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='439.800' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 339.840 264.960 Q 192.583 301.118 45.326 412.276'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k-0 n-a n-b (ltk a c))</title>
-   <circle cx='339.840' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='339.840' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 142.729 338.906 45.578 412.852'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc n-b k)</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle style='fill: blue;' cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <path
-   d='M 139.920 339.960 Q 92.940 339.960 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 139.920 264.960 Q 186.900 264.960 233.880 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: blue;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 86.940 189.960 133.920 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 186.900 152.460 333.840 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 39.960 189.960 Q 236.880 152.460 433.800 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))</title>
-   <text x='439.800' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>init</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='139.920' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='239.880' y='39.960'
-   style='text-anchor: middle;'>yahalom 51 (realized)</text></svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
-  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((0 1) (4 0)) ((1 1) (2 1))
-    ((1 2) (0 2)) ((2 2) (0 3)) ((3 1) (0 3)) ((4 1) (0 3)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
-  (operation generalization deleted (4 0))
-  (label 51)
-  (parent 48)
-  (seen 28)
-  (unrealized)
-  (comment &quot;1 in cohort - 0 not yet seen&quot;))</pre>
-
-<p id="t52">Tree <a href="#top">52</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='229.680pt' height='154.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 229.680 154.920' font-size='12.000'>
-  <text
-   x='189.720' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k57&quot;, &quot;_self&quot;)'>57</text>
-  <line
-   x1='139.800' y1='114.960' x2='189.720' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='101.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k55&quot;, &quot;_self&quot;)'>55</text>
-  <line
-   x1='89.880' y1='77.460' x2='139.800' y2='114.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='189.720' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k56&quot;, &quot;_self&quot;)'>56</text>
-  <line
-   x1='139.800' y1='39.960' x2='189.720' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='139.800' y='26.040' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k54&quot;, &quot;_self&quot;)'>54</text>
-  <line
-   x1='89.880' y1='77.460' x2='139.800' y2='39.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='89.880' y='63.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k53&quot;, &quot;_self&quot;)'>53</text>
-  <line
-   x1='39.960' y1='77.460' x2='89.880' y2='77.460'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <text
-   x='39.960' y='63.540' style='text-anchor: middle; fill: red;'
-   onclick='window.open(&quot;#k52&quot;, &quot;_self&quot;)'>52</text>
-  </svg></div>
-
-<pre>(defprotocol yahalom diffie-hellman
-  (defrole init
-    (vars (a b c name) (n-a n-b text) (k skey))
-    (trace (send (cat a n-a)) (recv (enc b k n-a n-b (ltk a c)))
-      (send (enc n-b k))))
-  (defrole resp
-    (vars (b a c name) (n-a n-b text) (k skey))
-    (trace (recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b c))))
-      (recv (enc a k (ltk b c))) (recv (enc n-b k))))
-  (defrole serv
-    (vars (c a b name) (n-a n-b text) (k skey))
-    (trace (recv (cat b (enc a n-a n-b (ltk b c))))
-      (send (enc b k n-a n-b (ltk a c))) (send (enc a k (ltk b c))))
-    (uniq-orig k)))</pre>
-
-<p id="k52">Item <a href="#t52">52</a>, Child: <a href="#k53">53</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='179.880pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 179.880 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='139.920' y1='114.960' x2='139.920' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <g><title>k</title><circle cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: blue;' cx='139.920' cy='114.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: red;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='89.940' y='39.960' style='text-anchor: middle;'>yahalom 52</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (deflistener k)
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b)
-  (label 52)
-  (unrealized (0 2) (0 3))
-  (origs (n-b (0 1)))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k53">Item <a href="#t52">53</a>, Parent: <a href="#k52">52</a>, Children: <a href="#k54">54</a> <a href="#k55">55</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='379.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 379.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='114.960' x2='239.880' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='189.960' x2='139.920' y2='264.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 264.960 Q 142.920 227.460 45.960 264.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <path
-   d='M 239.880 189.960 Q 192.900 189.960 145.920 189.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a-0 n-b-0 (ltk a c))</title>
-   <circle cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle style='fill: red;' cx='239.880' cy='114.960' r='6.000'/></g>
-  <g><title>k</title><circle cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='139.920' cy='189.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: red;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960' style='text-anchor: middle;'>yahalom 53</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (deflistener k)
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
-  (precedes ((2 1) (1 0)) ((2 2) (0 2)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand serv 3) (enc a k (ltk b c))
-    (0 2))
-  (label 53)
-  (parent 52)
-  (unrealized (0 3) (1 0) (2 0))
-  (comment &quot;2 in cohort - 2 not yet seen&quot;))</pre>
-
-<p id="k54">Item <a href="#t52">54</a>, Parent: <a href="#k53">53</a>, Child: <a href="#k56">56</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='264.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 339.960 Q 142.920 302.460 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>k</title><circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960' style='text-anchor: middle;'>yahalom 54</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (deflistener k)
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (precedes ((0 1) (2 0)) ((2 1) (1 0)) ((2 2) (0 2)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
-  (operation encryption-test (displaced 3 0 resp 2)
-    (enc a n-a-0 n-b-0 (ltk b c)) (2 0))
-  (label 54)
-  (parent 53)
-  (unrealized (0 3) (1 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k55">Item <a href="#t52">55</a>, Parent: <a href="#k53">53</a>, Child: <a href="#k57">57</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='264.960' x2='139.920' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='189.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a-0)</title>
-   <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 142.920 302.460 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 239.880 264.960 Q 192.900 264.960 145.920 264.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc b k n-a-0 n-b-0 (ltk a c))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>k</title><circle cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='139.920' cy='264.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='189.900' y='39.960' style='text-anchor: middle;'>yahalom 55</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (deflistener k)
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (precedes ((2 1) (1 0)) ((2 2) (0 2)) ((3 1) (2 0)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand resp 2)
-    (enc a n-a-0 n-b-0 (ltk b c)) (2 0))
-  (label 55)
-  (parent 53)
-  (unrealized (0 3) (1 0))
-  (comment &quot;1 in cohort - 1 not yet seen&quot;))</pre>
-
-<p id="k56">Item <a href="#t52">56</a>, Parent: <a href="#k54">54</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='279.840pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 279.840 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='339.960' x2='139.920' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='114.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 239.880 339.960 Q 142.920 302.460 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a n-b (ltk a c))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>k</title><circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <path
-   d='M 39.960 189.960 Q 136.920 152.460 233.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='114.960' r='6.000'/></g>
-  <g><title>((n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='139.920' y='39.960' style='text-anchor: middle;'>yahalom 56</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (deflistener k)
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (precedes ((0 1) (2 0)) ((2 2) (0 2)) ((2 2) (1 0)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
-  (operation nonce-test (displaced 3 2 serv 3) k (1 0)
-    (enc b k n-a n-b (ltk a c)))
-  (label 56)
-  (parent 54)
-  (unrealized (0 3) (1 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-<p id="k57">Item <a href="#t52">57</a>, Parent: <a href="#k55">55</a>.</p>
-
-<div>
- <svg
-  class='diagram' width='379.800pt' height='454.920pt'
-  xmlns='http://www.w3.org/2000/svg' version='1.1'
-  viewBox='0 0 379.800 454.920' font-size='12.000'>
-  <defs>
-   <marker
-    id='arrow' orient='auto' markerWidth='5' markerHeight='10' refX='5'
-    refY='5'>
-    <path
-     d='M 0 0 5 5 0 10'
-     style='stroke-width: 2; fill: none; stroke: black;'/></marker>
-   </defs>
-  <line
-   x1='339.840' y1='114.960' x2='339.840' y2='189.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='239.880' y1='189.960' x2='239.880' y2='339.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='139.920' y1='339.960' x2='139.920' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <line
-   x1='39.960' y1='189.960' x2='39.960' y2='414.960'
-   style='stroke-width: 0.960; stroke: gray;'/>
-  <path
-   d='M 339.840 189.960 Q 292.860 189.960 245.880 189.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle cx='339.840' cy='189.960' r='6.000'/></g>
-  <g><title>(cat a n-a-0)</title>
-   <circle style='fill: blue;' cx='339.840' cy='114.960' r='6.000'/></g>
-  <path
-   d='M 239.880 339.960 Q 142.920 302.460 45.960 339.960'
-   style='stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <path
-   d='M 239.880 339.960 Q 192.900 339.960 145.920 339.960'
-   style='stroke-dasharray: 6.000,2.400; stroke-width: 0.960; stroke: black; marker-end: url(#arrow); fill: none;'/>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle cx='239.880' cy='339.960' r='6.000'/></g>
-  <g><title>(enc b k n-a-0 n-b-0 (ltk a c))</title>
-   <circle cx='239.880' cy='264.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a-0 n-b-0 (ltk b c)))</title>
-   <circle style='fill: blue;' cx='239.880' cy='189.960' r='6.000'/></g>
-  <g><title>k</title><circle cx='139.920' cy='414.960' r='6.000'/></g>
-  <g><title>k</title>
-   <circle style='fill: red;' cx='139.920' cy='339.960' r='6.000'/></g>
-  <g><title>(enc n-b k)</title>
-   <circle style='fill: red;' cx='39.960' cy='414.960' r='6.000'/></g>
-  <g><title>(enc a k (ltk b c))</title>
-   <circle style='fill: blue;' cx='39.960' cy='339.960' r='6.000'/></g>
-  <g><title>(cat b (enc a n-a n-b (ltk b c)))</title>
-   <circle cx='39.960' cy='264.960' r='6.000'/></g>
-  <g><title>(cat a n-a)</title>
-   <circle style='fill: blue;' cx='39.960' cy='189.960' r='6.000'/></g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))</title>
-   <text x='339.840' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <g><title>((n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))</title>
-   <text x='239.880' y='77.460' style='text-anchor: middle;'>serv</text>
-   </g>
-  <g><title>((n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))</title>
-   <text x='39.960' y='77.460' style='text-anchor: middle;'>resp</text>
-   </g>
-  <text
-   x='189.900' y='39.960' style='text-anchor: middle;'>yahalom 57</text>
-  </svg></div>
-
-<pre>(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (deflistener k)
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (precedes ((2 2) (0 2)) ((2 2) (1 0)) ((3 1) (2 0)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
-  (operation nonce-test (displaced 4 2 serv 3) k (1 0)
-    (enc b k n-a-0 n-b-0 (ltk a c)))
-  (label 57)
-  (parent 55)
-  (unrealized (0 3) (1 0))
-  (comment &quot;empty cohort&quot;))</pre>
-
-</body>
-</html>
diff --git a/doc/ffgg.scm b/doc/ffgg.scm
new file mode 100644
--- /dev/null
+++ b/doc/ffgg.scm
@@ -0,0 +1,24 @@
+(herald "The ffgg Protocol"
+	(comment "From A Necessarily Parallel Attack by Jon K. Millen"))
+
+(defprotocol ffgg basic
+  (defrole init (vars (a b name) (n1 n2 m x y text))
+    (trace
+     (send a)
+     (recv (cat b n1 n2))
+     (send (cat a (enc n1 n2 m (pubk b))))
+     (recv (cat n1 x (enc x y n1 (pubk b))))))
+  (defrole resp (vars (b a name) (n1 n2 x y text))
+    (trace
+     (recv a)
+     (send (cat b n1 n2))
+     (recv (cat a (enc n1 x y (pubk b))))
+     (send (cat n1 x (enc x y n1 (pubk b)))))
+    (uniq-orig n1 n2)))
+
+(defskeleton ffgg
+  (vars (b name) (n1 n2 m text))
+  (defstrand init 4 (b b) (m m))
+  (deflistener m)
+  (uniq-orig m)
+  (non-orig (privk b)))
diff --git a/doc/goals.scm b/doc/goals.scm
new file mode 100644
--- /dev/null
+++ b/doc/goals.scm
@@ -0,0 +1,240 @@
+(herald goals)
+
+;;; Section 1 --- Examples from CPSA Security Goals and Rules
+
+;;; Needham-Schroeder from Section 10 of the CPSA Primer
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace
+     (send (enc n1 a (pubk b)))
+     (recv (enc n1 n2 (pubk a)))
+     (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace
+     (recv (enc n1 a (pubk b)))
+     (send (enc n1 n2 (pubk a)))
+     (recv (enc n2 (pubk b)))))
+  (comment "Needham-Schroeder with no role origination assumptions"))
+
+(defgoal ns
+  (forall ((b name) (n1 text) (z0 strd))
+    (implies
+     (and (p "init" z0 3)
+      (p "init" "n1" z0 n1) (p "init" "b" z0 b)
+      (non (privk b)) (uniq n1))
+     (exists ((z1 strd))
+	     (and (p "resp" z1 2) (p "resp" "b" z1 b)))))
+  (comment "Initiator point of view")
+  (comment "Authentication goal: agreement on name b"))
+
+(defgoal ns
+  (forall ((b name) (n1 text) (z0 strd))
+    (implies
+     (and (p "init" z0 3)
+      (p "init" "n1" z0 n1) (p "init" "b" z0 b)
+      (non (privk b)) (uniq n1))
+     (exists ((z1 strd))
+	     (and (p "resp" z1 2) (p "resp" "b" z1 b)
+	      (prec z1 1 z0 2)))))
+  (comment "Prec example"))
+
+(defgoal ns
+  (forall ((a b name) (n2 text) (z0 strd))
+    (implies
+     (and (p "resp" z0 3) (p "resp" "n2" z0 n2)
+      (p "resp" "a" z0 a) (p "resp" "b" z0 b)
+      (non (privk a)) (uniq n2))
+     (exists ((z1 strd))
+      (and (p "init" z1 2) (p "init" "b" z1 b)))))
+  (comment "Responder point of view")
+  (comment "Failed authentication goal: agreement on name b"))
+
+(defprotocol nsl basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace
+     (send (enc n1 a (pubk b)))
+     (recv (enc n1 n2 b (pubk a)))
+     (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace
+     (recv (enc n1 a (pubk b)))
+     (send (enc n1 n2 b (pubk a)))
+     (recv (enc n2 (pubk b)))))
+  (comment "Needham-Schroeder-Lowe with no role origination assumptions"))
+
+(defgoal nsl
+  (forall ((a b name) (n2 text) (z0 strd))
+    (implies
+     (and (p "resp" z0 3) (p "resp" "n2" z0 n2)
+      (p "resp" "a" z0 a) (p "resp" "b" z0 b)
+      (non (privk a)) (uniq n2))
+     (exists ((z1 strd))
+      (and (p "init" z1 2) (p "init" "b" z1 b)))))
+  (comment "Responder point of view")
+  (comment "Authentication goal: agreement on name b"))
+
+(defgoal ns
+  (forall ((a b name) (n1 text) (z0 z1 strd))
+    (implies
+     (and (p "init" z0 3) (p "init" "n1" z0 n1)
+      (p "init" "a" z0 a) (p "init" "b" z0 b)
+      (p "" z1 1) (p "" "x" z1 n1)
+      (non (privk a)) (non (privk b)) (uniq n1))
+     (false)))
+  (comment "Initiator point of view")
+  (comment "Secrecy goal: nonce n1 not revealed"))
+
+(defprotocol unilateral basic
+  (defrole init
+    (vars (a name) (n text))
+    (trace
+     (send (enc n (pubk a)))
+     (recv n)))
+  (defrole resp
+    (vars (a name) (n text))
+    (trace
+     (recv (enc n (pubk a)))
+     (send n)))
+  (comment "Unilateral authentication"))
+
+(defgoal unilateral
+  (forall ((a name) (n text)
+           (z0 strd))
+   (implies
+    (and (p "init" z0 2)
+     (p "init" "n" z0 n)
+     (p "init" "a" z0 a)
+     (non (privk a)) (uniq n))
+    (exists ((z1 strd))
+     (and (p "resp" z1 2)
+      (p "resp" "a" z1 a)))))
+  (comment "Unilateral authentication goal"))
+
+;;; Does initiator satisfy the unilateral authentication goal?
+
+;;; Note that the goal requires translation of some of the role
+;;; specific predicates.
+(defgoal ns
+  (forall ((a name) (n text) (z0 strd))
+   (implies
+    (and (p "init" z0 2) (p "init" "n1" z0 n)
+     (p "init" "b" z0 a) (non (privk a)) (uniq n))
+    (exists ((z1 strd))
+     (and (p "resp" z1 2) (p "resp" "b" z1 a)))))
+  (comment "Initiator authentication goal")
+  (comment "Same as unilateral goal under the predicate mapping:")
+  (comment (p "init" "n") "->" (p "init" "n1") "and")
+  (comment (p "init" "a") "->" (p "init" "b") "and")
+  (comment (p "resp" "a") "->" (p "resp" "b")))
+
+;;; Does responder satisfy the unilateral authentication goal?
+
+(defgoal ns
+  (forall ((a name) (n text) (z0 strd))
+   (implies
+    (and (p "resp" z0 3) (p "resp" "n2" z0 n)
+     (p "resp" "a" z0 a) (non (privk a)) (uniq n))
+    (exists ((z1 strd))
+     (and (p "init" z1 3) (p "init" "a" z1 a)))))
+  (comment "Responder authentication goal")
+  (comment "Same as unilateral goal under the predicate mapping:")
+  (comment (p "init" 1) "->" (p "resp" 2) "and")
+  (comment (p "init" "n") "->" (p "resp" "n2") "and")
+  (comment (p "init" "a") "->" (p "resp" "a") "and")
+  (comment (p "resp" 1) "->" (p "init" 2) "and")
+  (comment (p "resp" "a") "->" (p "init" "a")))
+
+(defgoal ns
+  (forall ((a b name) (n text) (z0 strd))
+    (implies
+     (and
+      (p "init" z0 2) (p "init" "n1" z0 n)
+      (p "init" "a" z0 a) (p "init" "b" z0 b)
+      (non (privk a)) (non (privk b)) (uniq n))
+     (exists ((z1 strd))
+      (and (p "resp" z1 2) (p "resp" "b" z1 b)))))
+  (forall ((a b name) (n text) (z0 strd))
+   (implies
+     (and
+      (p "init" z0 2) (p "init" "n1" z0 n)
+      (p "init" "a" z0 a) (p "init" "b" z0 b)
+      (non (privk a)) (non (privk b)) (uniq n))
+     (exists ((z1 strd))
+      (and (p "resp" z1 2) (p "resp" "a" z1 a)))))
+  (comment "Two initiator authentication goals"))
+
+;;; The shape analysis sentence as input (kind of useless)
+
+(defgoal ns
+  (forall ((n1 n2 text) (b a name) (z strd))
+    (implies
+      (and (p "init" z 3) (p "init" "n1" z n1) (p "init" "n2" z n2)
+        (p "init" "a" z a) (p "init" "b" z b) (non (privk b))
+        (uniq-at n1 z 0))
+      (exists ((n2-0 text) (z-0 strd))
+        (and (p "resp" z-0 2) (p "resp" "n2" z-0 n2-0)
+          (p "resp" "n1" z-0 n1) (p "resp" "b" z-0 b)
+          (p "resp" "a" z-0 a) (prec z 0 z-0 0) (prec z-0 1 z 1)))))
+  (comment "Shape analysis sentence"))
+
+;;; Section 2 --- Additional Examples
+
+(defgoal ns
+  (forall ((a b name) (n2 text) (z0 z1 strd))
+    (implies
+     (and
+      (p "resp" z0 3) (p "resp" "n2" z0 n2)
+      (p "resp" "a" z0 a) (p "resp" "b" z0 b)
+      (p "" z1 1) (p "" "x" z1 n2)
+      (non (privk a)) (non (privk b)) (uniq n2))
+     (false)))
+  (comment "Responder point of view")
+  (comment "Failed secrecy goal: nonce n2 not revealed"))
+
+;;; Double initiator point of view
+(defskeleton ns
+  (vars (a b name) (n1 n1-0 text))
+  (defstrand init 3 (a a) (b b) (n1 n1))
+  (defstrand init 3 (a a) (b b) (n1 n1-0))
+  (non-orig (privk b) (privk a))
+  (uniq-orig n1 n1-0)
+  (goals
+  (forall ((n1 n1-0 n2 n2-0 text) (a b name) (z z-0 strd))
+    (implies
+      (and (p "init" z 3) (p "init" z-0 3) (p "init" "n1" z n1)
+        (p "init" "n2" z n2) (p "init" "a" z a) (p "init" "b" z b)
+        (p "init" "n1" z-0 n1-0) (p "init" "n2" z-0 n2-0)
+        (p "init" "a" z-0 a) (p "init" "b" z-0 b) (non (privk a))
+        (non (privk b)) (uniq-at n1 z 0) (uniq-at n1-0 z-0 0))
+      (= z z-0))))
+  (comment "Double initiator point of view"))
+
+(defprotocol nsl-typeless basic
+  (defrole init
+    (vars (a b name) (n1 text) (n2 mesg))
+    (trace
+     (send (enc a n1 (pubk b)))
+     (recv (enc n1 n2 b (pubk a)))
+     (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 text) (n1 mesg))
+    (trace
+     (recv (enc a n1 (pubk b)))
+     (send (enc n1 n2 b (pubk a)))
+     (recv (enc n2 (pubk b)))))
+  (comment "Needham-Schroeder-Lowe with untyped nonces"))
+
+;;; The responder point of view
+(defgoal nsl-typeless
+  (forall ((n2 text) (a b name) (z z-0 strd))
+    (implies
+      (and (p "resp" z 2) (p "" z-0 1)
+        (p "resp" "n2" z n2) (p "resp" "b" z b) (p "resp" "a" z a)
+        (p "" "x" z-0 n2) (non (privk a)) (non (privk b)) (uniq n2))
+      (false)))
+  (comment "Shows typeflaw in typeless NSL"))
diff --git a/doc/index.html b/doc/index.html
new file mode 100644
--- /dev/null
+++ b/doc/index.html
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <meta http-equiv="content-type"
+	content="application/xhtml+xml; charset=UTF-8" />
+  <title>CPSA</title>
+  <style type="text/css">
+    h1 { text-align: center }
+    body { background: white; color: black; max-width: 48em }
+    img.pic { float: left; margin-top: 0em; margin-right: 1em }
+  </style>
+</head>
+
+<body>
+
+<p>[<a href="cpsauser.html">CPSA User Guide</a>]
+[<a href="cpsaprimer.pdf">CPSA Primer</a>]
+[<a href="cpsagoals.pdf">CPSA Security Goals and Rules</a>]
+[<a href="cpsaintroslides.pdf">CPSA Introductory Slides</a>]
+[<a href="http://www.mitre.org/publications/technical-papers/completeness-of-cpsa">CPSA Correctness Proof</a>]</p>
+
+<h1>CPSA</h1><img class="pic" src="cpsalogo.svg" alt="CPSA Logo"/>
+
+<p>The Cryptographic Protocol Shapes Analyzer (CPSA) attempts to
+  enumerate all essentially different executions possible for a
+  cryptographic protocol. We call them the <i>shapes</i> of the
+  protocol. Naturally occurring protocols have only finitely many,
+  indeed very few shapes. Authentication and secrecy properties are
+  easy to determine from them, as are attacks and anomalies.</p>
+
+<p>CPSA comes with a user guide, a manual, a primer, goal
+  documentation, and some slides.  The user guide provides usage
+  information for each program in the CPSA package.  The
+  <a href="cpsa4manual.pdf">manual</a> is the primary documentation.
+  Its sources are contained in the <a href="src/cpsa4manual/">manual
+  source directory</a>, and a large set of examples discussed in the
+  manual are in the <a href="src/cpsa4manual/examples/">examples</a>
+  subdirectory.  The primer provides an English language description
+  of the CPSA algorithm.</p>
+
+<p>At this point, new users should open the
+  <a href="cpsaintroslides.pdf">introductory slides</a> and start
+  using CPSA by analyzing the protocols that come with this document.
+  Copy the contents of this directory to a place that allows it to be
+  modified.  In a Unix shell, type:</p>
+
+<blockquote>
+  <pre>$ echo build | ghci Make.hs</pre>
+</blockquote>
+
+<p>In Windows, click on <code>Make.hs</code> and type <code>build</code> at
+  the <code>GHCi</code> prompt <code>*Make&gt;</code>.
+  The <a href="cpsauser.html#make">CPSA User Guide</a> describes a
+  better way to analyze protocols when GNU Make is available.</p>
+
+<p>After running the analysis, you will note files with the extension
+  <code>.xhtml</code>. These are XHTML/SVG compound documents that can
+  be viewed by standards compliant browsers. See the section
+  on <a href="cpsauser.html#cpsagraph">visualization</a> in the user
+  guide for help interpreting these documents.</p>
+
+<p>New users should study CPSA's analysis of the following protocols
+  in order, Blanchet (<code>blanchet.xhtml</code>), Needham-Schroeder
+  (<code>ns.xhtml</code>), Woo-Lam (<code>woolam.xhtml</code>),
+  Yahalom (<code>yahalom.xhtml</code>), ffgg
+  (<code>ffgg.xhtml</code>), and finally Otway-Rees
+  (<code>or.xhtml</code>). When studying the full output,
+  simultaneously display the extracted shapes. The shapes file has an
+  extension of <code>_shapes.xhtml</code>.
+
+<p>An analysis of Needham-Schroeder
+  using <a href="cpsagoals.pdf">security goals</a> is
+  in <code>goals.xhtml</code>.  Examples of using the security goal
+  language for rewrite rules is in <code>rules.xhtml</code>.  These
+  examples can safely be ignored by new users.</p>
+
+<p>To make effective use of CPSA, new users should scan the
+  <a href="cpsauser.html">user guide</a> to get a flavor of its
+  contents, and then read the <a href="cpsaprimer.pdf">primer</a>.
+  The remainder of this document contains some usage tips to be read
+  after running CPSA and learning to understand its output.</p>
+
+<h2>Tips</h2>
+
+<p>Choose a small, simple protocol for your first analysis task. When
+  analyzing complex protocols, analyze small parts of the protocol
+  first, and then enrich the description of the problem. </p>
+
+<p>The source distribution contains additional programs and a test
+  suite with many examples.  The README in the top-level directory of
+  the source distribution contains the installation instructions and
+  is essential reading for its effective use.  Serious users should
+  favor the source distribution if on a Unix-like platform.</p>
+
+<p>Authentication tests guide the search for new skeletons in CPSA.
+  The authentication test solved at each step of the search is
+  described by the <code>operation</code> form in CPSA output.  When CPSA
+  generates unexpected output, find the first skeleton in the
+  derivation tree that exhibits the problem and read
+  the <code>operation</code> form to find out what happened.
+  Authentication tests are introduced in
+  the <a href="cpsaprimer.pdf">primer</a> and described in full
+  detail in the <a href="cpsaspec.pdf">The CPSA
+  Specification</a>.</p>
+
+<p>An origination assumption
+  (<code>non-orig</code>, <code>pen-non-orig</code>,
+  and <code>unig-orig</code>), can be specified in a role or in a
+  skeleton.  Be sure to read the advice in
+  the <a href="cpsaprimer.pdf">primer</a> on the proper placement of
+  origination assumptions.</p>
+
+<p>Variables of sort message unify with any message.  See Otway-Rees
+  (<code>or.xhtml</code>) for an example of the use of variables of this
+  sort.</p>
+
+<p>A quoted string is a constant of sort message and is called a tag.
+  Tags can be used to distinguish messages that have similar
+  structure in the case where the implementation of the protocol
+  contains protections against message conflation.</p>
+
+<p>Lisp-like macros in <code>cpsa</code> input can be used to replace
+  multiple occurrences of a message with one named definition of it.
+  Macros are described in the <a href="cpsaprimer.pdf">primer</a>.</p>
+
+<p>When the <code>cpsagraph</code> program is given
+  the <code>--zoom</code> option, it produces diagrams that scale.
+  This is useful when viewing large diagrams.</p>
+
+<p>In CPSA, a security goal is expressed as a sentence in first-order
+  logic.  It asserts that if some properties hold for a skeleton, then
+  some other properties must hold for all shapes computed by CPSA
+  starting with the skeleton.  Security goals can be used to state
+  authentication and secrecy goals of a protocol.  See
+  <a href="cpsagoals.pdf">CPSA Security Goals and Rules</a>.  An
+  analysis of Needham-Schroeder using first-order logic is
+  in <code>goals.xhtml</code>.  Examples of using the security goal
+  language for rewrite rules is in <code>rules.xhtml</code>.</p>
+
+<p>When the <code>cpsapp</code> program is given
+  the <code>--json</code> option, it translates S-expressions into
+  JavaScript Object Notation (JSON).  The <code>cpsajson</code>
+  program translates JSON into S-expressions.  These two programs
+  makes it easy to manipulate CPSA input and output using Python or
+  other languages with JSON libraries.</p>
+
+<p>The goal of CPSA is to automatically characterize the possible
+  executions of a protocol compatible with a specified partial
+  execution. There is a rigorous
+  <a href="http://www.mitre.org/publications/technical-papers/completeness-of-cpsa">proof</a>
+  that the algorithm enumerates all of these characterizations.</p>
+
+<p>The <a href="cpsaspec.pdf">specification</a> describes the CPSA
+  algorithm as a term reduction system.
+  The <a href="cpsadesign.pdf">design</a> describes implementation
+  choices made and should be read when viewing the source code.</p>
+
+</body>
+</html>
diff --git a/doc/init/Makefile b/doc/init/Makefile
--- a/doc/init/Makefile
+++ b/doc/init/Makefile
@@ -2,7 +2,7 @@
 
 SRCS := $(wildcard *.scm) $(wildcard *.prot) $(wildcard *.lsp)
 
-include cpsa.mk
+include cpsa4.mk
 
 all:	$(SRCS:%.scm=%_shapes.xhtml) $(SRCS:%.scm=%.xhtml) \
 	$(SRCS:%.prot=%_shapes.xhtml) $(SRCS:%.prot=%.xhtml) \
diff --git a/doc/init/template.lisp b/doc/init/template.lisp
deleted file mode 100644
--- a/doc/init/template.lisp
+++ /dev/null
@@ -1,39 +0,0 @@
-;; This is a minimal template for a CPSA input file.
-
-;; Replace <TITLE> with the desired title and <PROTONAME>
-;; with the desired name of your project.
-
-;; The defrole template below may be copied and used as
-;; a starting point for the roles of your protocol.
-;; Change the <ROLENAME> field in each copy as desired.
-;; Roles must have distinct names.
-
-;; The basic cryptoalgebra is selected by default. If
-;; your project requires the diffie-hellman algebra,
-;; delete "basic" on the defprotocol line, uncomment
-;; "diffie-hellman" on this same line and uncomment
-;; the "(algebra diffie-hellman)" statement in the
-;; herald.
-
-;; Refer to the CPSA manual for more information
-;; about syntax and additional features.
-
-(herald "<TITLE>"
-	;; (algebra diffie-hellman)
-	)
-
-(defprotocol <PROTONAME> basic ;; diffie-hellman
-
-  (defrole <ROLENAME>
-    (vars )
-    (trace
-
-     )
-    )
-
-  )
-
-(defskeleton <PROTONAME>
-  (vars )
-  (defstrand )
-  )
diff --git a/doc/ns.scm b/doc/ns.scm
new file mode 100644
--- /dev/null
+++ b/doc/ns.scm
@@ -0,0 +1,37 @@
+(herald "Needham-Schroeder Public-Key Protocol"
+	(comment "This protocol contains a man-in-the-middle"
+		 "attack discovered by Gavin Lowe."))
+
+;;; Used to generate output for inclusion in the primer.
+;;; Use margin = 60 (-m 60) to generate the output.
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace
+     (send (enc n1 a (pubk b)))
+     (recv (enc n1 n2 (pubk a)))
+     (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace
+     (recv (enc n1 a (pubk b)))
+     (send (enc n1 n2 (pubk a)))
+     (recv (enc n2 (pubk b)))))
+  (comment "Needham-Schroeder"))
+
+;;; The initiator point-of-view
+(defskeleton ns
+  (vars (a b name) (n1 text))
+  (defstrand init 3 (a a) (b b) (n1 n1))
+  (non-orig (privk b) (privk a))
+  (uniq-orig n1)
+  (comment "Initiator point-of-view"))
+
+;;; The responder point-of-view
+(defskeleton ns
+  (vars (a name) (n2 text))
+  (defstrand resp 3 (a a) (n2 n2))
+  (non-orig (privk a))
+  (uniq-orig n2)
+  (comment "Responder point-of-view"))
diff --git a/doc/or.scm b/doc/or.scm
new file mode 100644
--- /dev/null
+++ b/doc/or.scm
@@ -0,0 +1,27 @@
+(herald "Otway-Rees Protocol"
+	(comment "Standard version using variables of sort mesg"))
+
+(defprotocol or basic
+  (defrole init (vars (a b s name) (na text) (k skey) (m text))
+    (trace
+     (send (cat m a b (enc na m a b (ltk a s))))
+     (recv (cat m (enc na k (ltk a s))))))
+  (defrole resp
+    (vars (a b s name) (nb text) (k skey) (m text) (x y mesg))
+    (trace
+     (recv (cat m a b x))
+     (send (cat m a b x (enc nb m a b (ltk b s))))
+     (recv (cat m y (enc nb k (ltk b s))))
+     (send y)))
+  (defrole serv (vars (a b s name) (na nb text) (k skey) (m text))
+    (trace
+     (recv (cat m a b (enc na m a b (ltk a s))
+		(enc nb m a b (ltk b s))))
+     (send (cat m (enc na k (ltk a s)) (enc nb k (ltk b s)))))
+    (uniq-orig k)))
+
+(defskeleton or
+  (vars (nb text) (s a b name))
+  (defstrand resp 4 (a a) (b b) (s s) (nb nb))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig nb))
diff --git a/doc/readme.html b/doc/readme.html
new file mode 100644
--- /dev/null
+++ b/doc/readme.html
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <meta http-equiv="REFRESH" content="0;url=index.html" />
+  <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
+  <title>CPSA</title>
+</head>
+
+<body>
+  <p>Start <a href="index.html">here</a>.</p>
+</body>
+</html>
diff --git a/doc/roletran.pdf b/doc/roletran.pdf
new file mode 100644
Binary files /dev/null and b/doc/roletran.pdf differ
diff --git a/doc/rules.scm b/doc/rules.scm
new file mode 100644
--- /dev/null
+++ b/doc/rules.scm
@@ -0,0 +1,67 @@
+(herald "Rules and Facts")
+
+(defprotocol neq-test basic
+  (defrole init
+    (vars (n1 n2 text) (k skey))
+    (trace
+     (send (cat n1 (enc n1 n2 k)))
+     (recv n2))
+    (non-orig k)
+    (uniq-orig n1 n2))
+  (defrule neq
+    (forall ((a mesg))
+	    (implies
+	     (fact neq a a)
+	     (false))))
+  (comment "Impose an nequality constraint using facts and rules"))
+
+;;; With no inequality fact,
+;;; a shape should be found where n1 = n2.
+(defskeleton neq-test
+  (vars)
+  (defstrand init 2)
+  (comment "This skeleton should have a shape"))
+
+;;; With an inequality fact,
+;;; no shape should exist.
+(defskeleton neq-test
+  (vars (n1 n2 text))
+  (defstrand init 2 (n1 n1) (n2 n2))
+  (facts (neq n1 n2))			;  assert n1 != n2
+  (comment "This skeleton should have no shapes"))
+
+;;;
+
+(herald doorsep (comment "Door Simple Example Protocol"))
+
+(defprotocol doorsep basic
+  (defrole person
+    (vars (d p akey) (k skey) (t text))
+    (trace
+     (send (enc (enc k (invk p)) d))
+     (recv (enc t k))
+     (send t))
+    (uniq-orig k))
+  (defrole door
+    (vars (d p akey) (k skey) (t text))
+    (trace
+     (recv (enc (enc k (invk p)) d))
+     (send (enc t k))
+     (recv t))
+    (uniq-orig t))
+  (defrule trust
+    (forall ((z strd) (p d akey))
+	    (implies
+	     (and (p "person" z 1)
+		  (p "person" "p" z p)
+		  (p "person" "d" z d)
+		  (non (invk p)))
+	     (non (invk d))))
+    (comment "The trust rule"))
+  (comment "Doorsep protocol using unnamed asymmetric keys"))
+
+(defskeleton doorsep
+  (vars (p akey))
+  (defstrand door 3 (p p))
+  (non-orig (invk p))
+  (comment "Analyze from the doors's perspective"))
diff --git a/doc/src/Makefile b/doc/src/Makefile
new file mode 100644
--- /dev/null
+++ b/doc/src/Makefile
@@ -0,0 +1,79 @@
+# A LaTeX/MetaPost makefile for CPSA documents
+
+# Requrements
+# * GNU Make
+# * package texlive-context
+# * package texlive-pictures
+
+# See README for more information
+
+SHELL = /bin/sh
+
+PRIMER = cpsaprimer
+GOALS = cpsagoals
+SLIDES = cpsaintroslides
+DESIGN = cpsadesign
+SPEC = cpsaspec
+FOUNDATION = cpsafoundation
+BIB = cpsa
+
+TEX_SRCS = macros.tex bcasyntax.tex
+
+MP_SRCS	= cpsadiagrams.mp carriers.mp termtree.mp blanchet.mp mitrelogo.mp
+
+%-0.mps:	%.mp
+	mpost -tex=latex $*
+
+%.bbl:	$(BIB).bib
+	if test ! -f $*.aux; then pdflatex $*.tex; fi
+	bibtex $*
+	pdflatex $*.tex
+
+%.ind:	%.idx
+	makeindex $*
+
+all:	$(PRIMER).pdf $(GOALS).pdf $(SLIDES).pdf $(DESIGN).pdf\
+	$(SPEC).pdf $(FOUNDATION).pdf
+
+$(PRIMER).pdf:	$(MP_SRCS:.mp=-0.mps) $(TEX_SRCS) \
+		 $(PRIMER).tex $(PRIMER).bbl
+	if test ! -f $(PRIMER).aux; then pdflatex $(PRIMER).tex; fi
+	if test -f $(PRIMER).idx; then $(MAKE) $(PRIMER).ind; fi
+	pdflatex $(PRIMER).tex
+
+$(GOALS).pdf: $(MP_SRCS:.mp=-0.mps) $(TEX_SRCS) \
+		$(GOALS).tex $(GOALS).bbl
+	if test ! -f $(GOALS).aux; then pdflatex $(GOALS).tex; fi
+	pdflatex $(GOALS).tex
+
+$(FOUNDATION).pdf: $(MP_SRCS:.mp=-0.mps) $(TEX_SRCS) \
+		$(FOUNDATION).tex $(FOUNDATION).bbl
+	if test ! -f $(FOUNDATION).aux; then pdflatex $(FOUNDATION).tex; fi
+	pdflatex $(FOUNDATION).tex
+
+$(SLIDES).pdf:	$(MP_SRCS:.mp=-0.mps) $(SLIDES).tex
+	pdflatex $(SLIDES).tex
+
+$(DESIGN).pdf:	$(MP_SRCS:.mp=-0.mps) $(TEX_SRCS) \
+		 $(DESIGN).tex $(DESIGN).bbl
+	if test ! -f $(DESIGN).aux; then pdflatex $(DESIGN).tex; fi
+	if test -f $(DESIGN).idx; then $(MAKE) $(DESIGN).ind; fi
+	pdflatex $(DESIGN).tex
+
+$(SPEC).pdf:	$(MP_SRCS:.mp=-0.mps) $(TEX_SRCS) \
+		 $(SPEC).tex $(SPEC).bbl
+	if test ! -f $(SPEC).aux; then pdflatex $(SPEC).tex; fi
+	if test -f $(SPEC).idx; then $(MAKE) $(SPEC).ind; fi
+	pdflatex $(SPEC).tex
+
+CLEAN_FILES := $(PRIMER).pdf $(GOALS).pdf $(SLIDES).pdf \
+               $(DESIGN).pdf $(SPEC).pdf $(FOUNDATION).pdf \
+	$(wildcard *.log *.aux *.toc *.mps *.mpx *.lot *.lof) \
+	$(wildcard *.bbl *.blg *.ind *.idx *.ilg *.out)
+
+clean:
+	-rm $(CLEAN_FILES)
+
+dist:	clean
+	DIR=`pwd`; DIR=`basename $${DIR}`; \
+	cd ..; tar czf $${DIR}.tar.gz $${DIR}
diff --git a/doc/src/bcasyntax.tex b/doc/src/bcasyntax.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/bcasyntax.tex
@@ -0,0 +1,141 @@
+The complete syntax for the analyzer using the Basic Crypto Algebra is
+shown in Tables~\ref{tab:syntax} and~\ref{tab:goal}.  The start
+grammar symbol is \textsc{file}, and the terminal grammar symbols
+are: \textsc{(, ), symbol, string, integer,} and the constants set in
+typewriter font.  The language used for stating security goals is in
+Table~\ref{tab:goal}.  The goal language adds the sort
+symbol \texttt{node}.
+
+The \textsc{alist}, \textsc{prot-alist}, \textsc{role-alist},
+\textsc{skel-alist}, and \textsc{goal-alist} productions are
+Lisp style association lists, that is, lists of key-value pairs, where
+every key is a symbol.  Key-value pairs with unrecognized keys are
+ignored, and are available for use by other tools.  On output,
+unrecognized key-value pairs are preserved when printing protocols,
+but elided when printing skeletons.
+
+\begin{table}
+\newcommand{\sym}[1]{\textup{\texttt{#1}}}
+\begin{center}\scshape
+\begin{tabular}{rcl}
+file&$\leftarrow$&herald?~form+
+\\herald&$\leftarrow$&
+(\sym{herald}~title~alist)
+\\title&$\leftarrow$&$\mbox{symbol}\mid\mbox{string}$
+\\form&$\leftarrow$&
+$\mbox{comment}\mid\mbox{protocol}\mid\mbox{skeleton}\mid\mbox{goal}$
+\\ comment&$\leftarrow$&
+(\sym{comment}~\ldots)
+\\ protocol&$\leftarrow$&
+(\sym{defprotocol} id alg role+ rule$\ast$ prot-alist)
+\\ id&$\leftarrow$&symbol
+\\ alg&$\leftarrow$&symbol
+\\ role&$\leftarrow$&
+(\sym{defrole} id vars trace role-alist)
+\\ vars&$\leftarrow$&
+(\sym{vars} decl$\ast$)
+\\ decl&$\leftarrow$&
+(id+ sort)
+\\ sort&$\leftarrow$&
+$\sym{text} \mid \sym{data} \mid \sym{name} \mid \sym{skey}
+\mid \sym{akey}\mid\sym{mesg}\mid\sym{chan}$
+\\ trace&$\leftarrow$&(\sym{trace} event+)
+\\ event&$\leftarrow$&
+$(\sym{send}\mbox{ id? term})\mid(\sym{recv}\mbox{ id? term})$
+\\ term&$\leftarrow$&
+$\mbox{id}\mid\mbox{akey}\mid(\sym{ltk}\mbox{ id id})\mid\mbox{string}\mid(\sym{cat}\mbox{ term+})$
+\\ &$\mid$&$(\sym{enc}\mbox{ term+ term})\mid(\sym{hash}\mbox{ term+})$
+\\ akey&$\leftarrow$&
+$\mbox{id}\mid(\sym{invk}\mbox{ id})
+\mid(\sym{pubk}\mbox{ id})
+\mid(\sym{privk}\mbox{ akey})$
+\\ &$\mid$&$(\sym{pubk}\mbox{ id}\mbox{ string})
+\mid(\sym{privk}\mbox{ id}\mbox{ string})$
+\\ role-alist&$\leftarrow$&$
+(\sym{non-orig}\mbox{ ht-term}\ast)\mbox{ role-alist}$
+\\ &$\mid$&$(\sym{pen-non-orig}\mbox{ ht-term}\ast)\mbox{ role-alist}$
+\\ &$\mid$&$(\sym{uniq-orig}\mbox{ term}\ast)\mbox{ role-alist}$
+\\ &$\mid$&$(\sym{conf}\mbox{ id}\ast)\mbox{ role-alist}$
+\\ &$\mid$&$(\sym{auth}\mbox{ id}\ast)\mbox{ role-alist}$
+\\ ht-term&$\leftarrow$&term${}\mid{}$(integer term)
+\\ rule&$\leftarrow$&
+(\sym{defrule} id sentence rule-alist)
+\\ rule-alist&$\leftarrow$&$\ldots$
+\\ prot-alist&$\leftarrow$
+&$(\sym{lang}\mbox{ ldecl}\ast)\mbox{ prot-alist}\mid{}$\ldots
+\\ ldecl&$\leftarrow$&$(\sym{symbol}{\mathord +}\mbox{ kind})$
+\\ kind&$\leftarrow$&$\sym{atom}\mid\sym{akey}\mid\sym{hash}\mid
+(\sym{tupl}\mbox{ integer})$
+\\ &&$\sym{enc}\mid\sym{senc}\mid\sym{aenc}\mid\sym{sign}$
+\end{tabular}
+\end{center}
+\caption{{\cpsa} Syntax}\label{tab:syntax}
+\end{table}
+
+\begin{table}
+\newcommand{\sym}[1]{\textup{\texttt{#1}}}
+\begin{center}\scshape
+\begin{tabular}{rcl}
+   skeleton&$\leftarrow$&
+(\sym{defskeleton} id vars
+\\ &&\qquad strand+ skel-alist)
+\\ strand&$\leftarrow$&
+(\sym{defstrand} id integer maplet$\ast$)
+\\ &$\mid$&(\sym{deflistener} term)
+\\ maplet&$\leftarrow$&
+(term term)
+\\ skel-alist&$\leftarrow$&$(\sym{non-orig}\mbox{ term}\ast)\mbox{ skel-alist}$
+\\ &$\mid$&$(\sym{pen-non-orig}\mbox{ term}\ast)\mbox{ skel-alist}$
+\\ &$\mid$&$(\sym{uniq-orig}\mbox{ term}\ast)\mbox{ skel-alist}$
+\\ &$\mid$&$(\sym{conf}\mbox{ id}\ast)\mbox{ skel-alist}$
+\\ &$\mid$&$(\sym{auth}\mbox{ id}\ast)\mbox{ skel-alist}$
+\\ &$\mid$&$(\sym{facts}\mbox{ fact$\ast$})\mbox{ skel-alist}$
+\\ &$\mid$&$(\sym{precedes}\mbox{ node-pair}\ast)\mbox{ skel-alist}\mid\ldots$
+\\ node-pair&$\leftarrow$&
+(node node)
+\\ node&$\leftarrow$&
+(integer integer)
+\\ fact&$\leftarrow$&(id fterm$\ast$)
+\\ fterm&$\leftarrow$&term $\mid$ integer
+\\
+\\ goal&$\leftarrow$&
+(\sym{defgoal} id sentence+ goal-alist)
+\\ sentence&$\leftarrow$&(\sym{forall} (decl$\ast$) implication)
+\\ implication&$\leftarrow$&
+(\sym{implies} \mbox{antecedent} \mbox{conclusion})
+\\ conclusion&$\leftarrow$&(\sym{false})
+   $\mid$ existential $\mid$ (\sym{or} existential$\ast)$
+\\ existential&$\leftarrow$&(\sym{exists}
+(decl$\ast$) antecedent) $\mid$ antecedent
+\\ antecedent&$\leftarrow$& atomic $\mid$ (\sym{and} atomic$\ast$)
+\\ atomic&$\leftarrow$&(\sym{p} roleid svar hgt)
+\\ &$\mid$&(\sym{p} roleid param svar term)
+\\ &$\mid$&(\sym{prec} svar pos svar pos)
+\\ &$\mid$&(\sym{non} term) $\mid$ (\sym{pnon} term)
+\\ &$\mid$&(\sym{uniq} term) $\mid$ (\sym{uniq-at} term svar pos)
+\\ &$\mid$&(\sym{conf} id) $\mid$ (\sym{auth} id)
+\\ &$\mid$&(\sym{fact} id term$\ast$) $\mid$ (= term term)
+\\ roleid&$\leftarrow$& string
+\\ hgt&$\leftarrow$& integer
+\\ pos&$\leftarrow$& integer
+\\ svar&$\leftarrow$& id
+\\ param&$\leftarrow$& string
+\end{tabular}
+\end{center}
+\caption{{\cpsa} Syntax Continued}\label{tab:goal}
+\end{table}
+
+The contents of a file can be interpreted as a sequence of
+S-expressions.  The S-expressions used are restricted so that most
+dialects of Lisp can read them, and characters within symbols and
+strings never need quoting.  Every list is proper.  An S-expression
+atom is either a \textsc{symbol}, an \textsc{integer}, or
+a \textsc{string}.  The characters that make up a symbol are the
+letters, the digits, and the special characters in
+``\verb|-*/<=>!?:$%_&~^+|''.  A symbol may not begin with a digit or a
+sign followed by a digit.  The characters that make up a string are
+the printing characters omitting double quote and backslash, except
+when double quote and backslash are escaped using the backslash
+character.  Double quotes delimit a string.  A comment\index{comments}
+begins with a semicolon, or is an S-expression list at top-level that
+starts with the \texttt{comment} symbol.
diff --git a/doc/src/blanchet.mp b/doc/src/blanchet.mp
new file mode 100644
--- /dev/null
+++ b/doc/src/blanchet.mp
@@ -0,0 +1,146 @@
+filenametemplate "%j-%c.mps";
+
+verbatimtex
+\documentclass{slides}
+\usepackage{color}
+\newcommand{\enc}[2]{\{\!|#1|\!\}_{#2}}
+\newcommand{\privk}[1]{\ensuremath{K^{-1}_{#1}}}
+\newcommand{\pubk}[1]{\ensuremath{K_{#1}}}
+\newcommand{\msgone}{$\enc{\enc{S}{\privk{A}}}{\pubk{B}}$}
+\newcommand{\msgtwo}{$\enc{D}{S}$}
+\newcommand{\msgthree}{$\enc{\enc{S,B}{\privk{A}}}{\pubk{B}}$}
+\newcommand{\msgfour}{$\enc{\enc{S}{\privk{A}}}{\pubk{\textcolor{blue}{B'}}}$}
+\newcommand{\msgfive}{$\enc{\enc{S}{\privk{A}}}{\pubk{B'}}$}
+\newcommand{\msgsix}{\ensuremath{\enc{S}{\privk{A}}}}
+\begin{document}
+etex
+
+input boxes;
+
+input strands;
+
+input cmstrands;
+
+ahlength := 2mm;		% Arrow head length
+
+picture node; node = btex $\bullet$ etex;
+
+% The height of a downarrow is the unit of length for a strand
+% succession edge.
+
+numeric delta;
+begingroup;
+  path p; p = bbox(btex $\downarrow$ etex);
+  delta = ypart(ulcorner p - llcorner p);
+endgroup;
+
+% The width of a leftarrow is the unit of length for a directed term
+% symbol.
+
+numeric dir_width;
+begingroup;
+  path p; p = bbox(btex $\leftarrow$ etex);
+  dir_width = xpart (lrcorner p - llcorner p);
+endgroup;
+
+w = 19cm;			% Width of diagram
+
+% Node vertical node separation is gamma
+
+numeric gamma;
+gamma = 2delta;
+
+beginfig(0);
+  % Backbone
+  strand.a(2, origin, gamma, btex $\mathstrut\mathit{init}$ etex, node);
+
+  % Messages
+  outbnd.a(1, dir_width, btex \msgone etex);
+  inbnd.a(2, dir_width, btex \msgtwo etex);
+endfig;
+
+% Responder role
+
+beginfig(1);
+  % Backbone
+  strand.a(2, origin, gamma, btex $\mathstrut\mathit{resp}$ etex, node);
+
+  % Messages
+  rinbnd.a(1, dir_width, btex \msgone etex);
+  routbnd.a(2, dir_width, btex \msgtwo etex);
+endfig;
+
+beginfig(2);
+  % Backbone
+  strand.a(2, origin, gamma, btex $\mathstrut\mathit{init}$ etex, node);
+
+  % Messages
+  outbnd.a(1, dir_width, btex \msgthree etex);
+  inbnd.a(2, dir_width, btex \msgtwo etex);
+endfig;
+
+% Responder role
+
+beginfig(3);
+  % Backbone
+  strand.b(2, origin, gamma, btex $\mathstrut\mathit{resp}$ etex, node);
+
+  % Messages
+  rinbnd.b(1, dir_width, btex \msgthree etex);
+  routbnd.b(2, dir_width, btex \msgtwo etex);
+endfig;
+
+beginfig(4);
+  % Backbones
+  strand.b(2, origin, gamma,
+    btex $\mathstrut\mathit{resp}$ etex, node);
+  strand.a(1, (w, ypart b1.c), gamma,
+    btex $\mathstrut\mathit{init}$ etex, node);
+
+  boxit.o1(btex $\succ$ etex);
+  o1.c = .5[b1.c,a1.c];
+  draw pic o1;
+
+  drawmsg(a1.w -- o1.e);
+  drawmsg(o1.w -- b1.e);
+  label.top(btex \msgfour etex, .5[a1.w,o1.e]);
+  label.top(btex \msgone etex, .5[o1.w,b1.e]);
+endfig;
+
+beginfig(5);
+  % Initial point-of-view
+  strand.b(2, origin, gamma,
+    btex $\mathstrut\textcolor{red}{\mathit{resp}}$ etex, node);
+endfig;
+
+beginfig(6);
+  % Bundle
+  strand.b(2, origin, gamma,
+    btex $\mathstrut\mathit{resp}$ etex, node);
+  strand.e(3, (2w/3, ypart b1.c), gamma,
+    btex $\mathstrut\mathit{enc}$ etex, node);
+  strand.g(1, (w/3, ypart e2.c), gamma,
+    btex $\mathstrut\mathit{gen}$ etex, node);
+  strand.d(3, (w/3, ypart e1.c), gamma,
+    btex $\mathstrut\mathit{dec}$ etex, node);
+  strand.h(1, (2w/3, ypart d2.c), gamma,
+    btex $\mathstrut\mathit{gen}$ etex, node);
+  strand.a(1, (w, ypart d1.c), gamma,
+    btex $\mathstrut\mathit{init}$ etex, node);
+
+  drawmsg(e3.w -- b1.e);
+  label.top(btex \msgone etex, .5[e3.w,b1.e]);
+  drawmsg(g1.e -- e2.w);
+  label.top(btex \pubk{B} etex, .5[g1.e,e2.w]);
+  drawmsg(d3.e -- e1.w);
+  label.top(btex \msgsix etex, .5[d3.e,e1.w]);
+  drawmsg(h1.w -- d2.e);
+  label.top(btex \privk{B'} etex, .5[h1.w,d2.e]);
+  drawmsg(a1.w -- d1.e);
+  label.top(btex \msgfive etex, .5[a1.w,d1.e]);
+endfig;
+
+verbatimtex
+\end{document}
+etex
+bye;
diff --git a/doc/src/carriers.mp b/doc/src/carriers.mp
new file mode 100644
--- /dev/null
+++ b/doc/src/carriers.mp
@@ -0,0 +1,64 @@
+filenametemplate "%j-%c.mps";
+
+verbatimtex
+\documentclass[12pt]{article}
+\newcommand{\enc}[2]{\{\!|#1|\!\}_{#2}}
+\begin{document}
+etex
+
+numeric base_width;
+begingroup;
+  path p; p = bbox(btex $\strut$ etex rotated 90);
+  base_width = 1.3 xpart (lrcorner p - llcorner p);
+endgroup;
+
+input boxes;
+
+beginfig(0);
+  boxit.b1(btex $X_\top$ etex);
+  boxit.b2(btex $\mathsf{text}$ etex rotated 90);
+  boxit.b3(btex $\mathsf{data}$ etex rotated 90);
+  boxit.b4(btex $\mathsf{name}$ etex rotated 90);
+  boxit.b5(btex $\mathsf{akey}$ etex rotated 90);
+  boxit.b6(btex $\mathsf{skey}$ etex rotated 90);
+  boxit.b7(btex $\mathsf{tags}$ etex rotated 90);
+
+  b4.s = origin;
+
+  for i = 1 upto 6:
+    b[i].sw=b[i+1].se;
+    b[i].nw=b[i+1].ne;
+  endfor;
+
+  for i = 1 upto 7:
+    b[i].e + (base_width, 0) = b[i].w;
+  endfor;
+
+  for i = 4 upto 6:
+    drawboxed(b[i]);
+  endfor;
+
+  for i = 3 downto 2:
+    drawboxed(b[i]);
+  endfor;
+
+  draw pic b[1];
+  draw pic b[7];
+
+  % Top of triangle contrained to force a right triange
+  z1 = b4.n - b4.s + (b7.nw - b4.n) rotated 90;
+
+  ypart z2 = ypart z3 = 0;
+  z2 = whatever[b7.nw,z1];
+  z3 = whatever[b1.ne,z1];
+
+  draw z1--z2--z3--z1;
+
+  label(btex \begin{tabular}{c}pairings\\[1ex]
+    encryptions\end{tabular} etex, .5z1);
+endfig;
+
+verbatimtex
+\end{document}
+etex
+bye;
diff --git a/doc/src/cmstrands.mp b/doc/src/cmstrands.mp
new file mode 100644
--- /dev/null
+++ b/doc/src/cmstrands.mp
@@ -0,0 +1,24 @@
+% CM strand arrows for documents
+
+% Use the cmarrows package if you want double arrows for strand
+% succession edges.
+
+input cmarrows;
+
+setup_cmarrows(
+  arrow_name = "doublearrow";
+  parameter_file = "cmr12.mf";
+  macro_name = "drawdubarrow");
+
+def drawsucc(expr p) =
+  drawdubarrow p;
+enddef;
+
+setup_cmarrows(
+  arrow_name = "texarrow";
+  parameter_file = "cmr12.mf";
+  macro_name = "drawtexarrow");
+
+def drawmsg(expr p) =
+  drawtexarrow p;
+enddef;
diff --git a/doc/src/cpsa.bib b/doc/src/cpsa.bib
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa.bib
@@ -0,0 +1,481 @@
+@Book{Pierce91,
+  author = {Benjamin C. Pierce},
+  title = {Basic Category Theory for Computer Sicentists},
+  publisher = {The {MIT} Press},
+  year = 1991}
+
+@Unpublished{DoghmiGuttmanThayer06a,
+  author = 	 {Shaddin F. Doghmi and Joshua D.~Guttman and F. Javier
+  Thayer},
+  title = 	 {Searching for Shapes in Cryptographic Protocols (Extended Version)},
+  note = 	 {\url{http://eprint.iacr.org/2006/435}},
+  month = 	 nov,
+  year = 	 2006}
+
+@InProceedings{DoghmiGuttmanThayer07,
+  author    = {Shaddin F. Doghmi and
+               Joshua D. Guttman and
+               F. Javier Thayer},
+  title = 	 {Searching for Shapes in Cryptographic Protocols},
+  booktitle = {Tools and Algorithms for Construction and
+               Analysis of Systems {(TACAS)}},
+  year = 	 2007,
+  series = 	 {LNCS},
+  number =	 4424,
+  pages =	{523--538},
+  month = 	 mar,
+  publisher = {Springer},
+  note = 	 {Extended version at \url{http://eprint.iacr.org/2006/435}}}
+
+@InProceedings{Fay79,
+  author = {M. Fay},
+  title = {First-order Unification in an Equational Theory},
+  booktitle = {Proc. 4th Workshop on Automated Deduction},
+  year = 1979}
+
+@Book{BaaderNipkow98,
+  author = {Franz Baader and Tobias Nipkow},
+  title = {Term Rewriting and All That},
+  publisher = {Cambridge University Press},
+  year = 1998}
+
+@Book{Paulson91,
+  author = {Laurence C. Paulson},
+  title = {ML for the Working Programmer},
+  publisher = {Cambridge University Press},
+  year = 1991}
+
+@Book{RobinsonVoronkov01,
+  author = {Alan Robinson and Andrei Voronkov},
+  title = {Handbook of Automated Reasoning},
+  vol = 1,
+  publisher = {The {MIT} Press},
+  year = 2001}
+
+@InCollection{BaaderSnyder01,
+  author = 	 {Franz Baader and Wayne Snyder},
+  title = 	 {Unification Theory},
+  booktitle = 	 {Handbook of Automated Reasoning},
+  publisher =    {The {MIT} Press},
+  year =         2001,
+  editor = 	 {Alan Robinson and Andrei Voronkov},
+  volume = 	 1,
+  chapter = 	 8,
+  note = {\url{https://www.cs.bu.edu/fac/snyder/publications/UnifChapter.pdf}}}
+
+@book{Knuth81,
+  author    = {Donald E. Knuth},
+  title     = {The Art of Computer Programming, Volume {II:} Seminumerical Algorithms,
+               2nd Edition},
+  publisher = {Addison-Wesley},
+  year      = {1981},
+  isbn      = {0-201-03822-6},
+  timestamp = {Thu, 03 Jan 2002 11:51:07 +0100},
+  biburl    = {http://dblp.org/rec/bib/books/aw/Knuth81},
+  bibsource = {dblp computer science bibliography, http://dblp.org}
+}
+
+@Misc{agum09,
+  author =       {John D. Ramsdell},
+  title =        {{AGUM}: Unification and Matching in an Abelian Group},
+  booktitle =    {Hackage},
+  publisher =    {The MITRE Corporation},
+  year =         2009,
+  note =         {\url{http://hackage.haskell.org/package/agum}}
+}
+
+@InProceedings{KepserRichts99,
+  author = 	 {Stephan Kepser and J\"{o}rn Richts},
+  title = 	 {Optimisation Techniques for Combining Constraint Solvers},
+  booktitle =    {Frontiers of Combining Systems 2},
+  pages = 	 {193--210},
+  year = 	 1999,
+  editor = 	 {Maarten de Rijke and Dov Gabbay},
+  address = 	 {Asmsterdam},
+  publisher =    {Research Studies Press/Wiley},
+  note = {\url{http://tcl.sfs.uni-tuebingen.de/~kepser/papers/optimisation.ps.gz}}}
+
+@InProceedings{MeadowsNarendran02,
+  author = {Catherine Meadows and Paliath Narendran},
+  title = {A Unification Algorithm for the Group Diffie-Hellman Protocol},
+  booktitle = {WITS 2002},
+  month = jan,
+  year = 2002,
+  note = {\url{http://www.dsi.unive.it/IFIPWG1_7/WITS2002/prog/annotated_program.html}}}
+
+@PhdThesis{Liu12,
+  author = 	 {Zhiqiang Liu},
+  title = 	 {Dealing Efficiently with Exclusive OR, Abelian
+                  Groups and Homomorphism in Cryptographic Protocol
+                  Analysis},
+  school = 	 {Clarkson University},
+  year = 	 2012,
+  month = 	 sep,
+  note = 	 {\url{http://people.clarkson.edu/~clynch/papers/}}}
+
+@article{GoguenMeseguer92,
+    author = "Joseph A. Goguen and Jose Meseguer",
+    title = "Order-Sorted Algebra {I}: Equational Deduction for Multiple
+Inheritance, Overloading, Exceptions and Partial Operations",
+    journal = "Theoretical Computer Science",
+    volume = "105",
+    number = "2",
+    pages = "217--273",
+    year = "1992",
+    url = "citeseer.ist.psu.edu/goguen92ordersorted.html" }
+
+@inproceedings{Millen99,
+    author = "Jonathan K. Millen",
+    title = "A Necessarily Parallel Attack",
+    booktitle = "Workshop on Formal Methods and Security Protocols,
+Part of the Federated Logic Conference",
+    address = "Trento, Italy",
+    editor = "Nevin Heintze and Edmund Clarke",
+    year = "1999",
+    url = "citeseer.ist.psu.edu/millen99necessarily.html" }
+
+@inproceedings{PavlovicMeadows06,
+    author = "Dusko Pavlovic and Catherine Meadows",
+    title = "Deriving Secrecy in Key Establishment Protocols",
+    booktitle = "European Symposium on Research in Computer Security",
+    month = sep,
+    year = 2006,
+    url = "http://www.kestrel.edu/home/people/pavlovic/security.html" }
+
+@article{GansnerNorth00,
+    author = "Emden R. Gansner and Stephen C. North",
+    title = "An open graph visualization system and its applications to software engineering",
+    journal = "Soft\-ware --- Prac\-tice and Experience",
+    volume = "30",
+    number = "11",
+    pages = "1203--1233",
+    year = "2000",
+    url = "citeseer.ist.psu.edu/gansner99open.html" }
+
+@Unpublished{Dijkstra82,
+  author = 	 {Edsger W. Dijkstra},
+  title = 	 {Why numbering should start at zero},
+  note = 	 {\url{http://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html}},
+  month = 	 aug,
+  year = 	 1982}
+
+@article{GuttmanThayer02,
+  author    = {Joshua D. Guttman and
+               F. Javier Thayer},
+  title     = {Authentication tests and the structure of bundles},
+  journal   = {Theor. Comput. Sci.},
+  volume    = {283},
+  number    = {2},
+  year      = {2002},
+  pages     = {333--380},
+  ee        = {http://dx.doi.org/10.1016/S0304-3975(01)00139-6},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@article{ThayerEtal99,
+  author    = {F. Javier Thayer and
+               Jonathan C. Herzog and
+               Joshua D. Guttman},
+  title     = {Strand Spaces: Proving Security Protocols Correct},
+  journal   = {Journal of Computer Security},
+  volume    = {7},
+  number    = {1},
+  year      = {1999},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@article{DolevYao83,
+    author = "Daniel Dolev and Andrew Yao",
+    title = "On the security of public-key protocols",
+    journal = "{IEEE} Transactions on Information Theory",
+    volume = 29,
+    pages = "198--208",
+    year = 1983
+}
+
+@TechReport{cpsatheory11,
+  title = 	 {Completeness of {CPSA}},
+  author = 	 {Moses D.~Liskov and Paul D.~Rowe and F.~Javier Thayer},
+  institution = {The MITRE Corporation},
+  year = 	 2011,
+  number = 	 {MTR110479},
+}
+
+@Manual{cpsaspec09,
+  title = 	 {The {CPSA} Specification:
+    A Reduction System for Searching for Shapes in Cryptographic Protocols},
+  OPTkey = 	 {},
+  author = 	 {John D.~Ramsdell and Joshua D.~Guttman and Moses D.~Liskov and Paul D.~Rowe},
+  organization = {The MITRE Corporation},
+  OPTaddress = 	 {},
+  OPTedition = 	 {},
+  OPTmonth = 	 {},
+  year = 	 2009,
+  note = 	 {In \url{https://github.com/mitre/cpsaexp} source
+    distribution, \texttt{doc} directory},
+  OPTannote = 	 {}
+}
+
+@Manual{cpsadesign09,
+  title = 	 {{CPSA} Design},
+  OPTkey = 	 {},
+  author = 	 {John D.~Ramsdell and Joshua D.~Guttman},
+  organization = {The MITRE Corporation},
+  OPTaddress = 	 {},
+  OPTedition = 	 {},
+  OPTmonth = 	 {},
+  year = 	 2009,
+  note = 	 {In \url{https://github.com/mitre/cpsaexp} source
+    distribution, \texttt{doc} directory},
+  OPTannote = 	 {}
+}
+
+@Manual{cpsaprimer09,
+  title = 	 {{CPSA} Primer},
+  OPTkey = 	 {},
+  author = 	 {John D.~Ramsdell and Joshua D.~Guttman},
+  organization = {The MITRE Corporation},
+  OPTaddress = 	 {},
+  OPTedition = 	 {},
+  OPTmonth = 	 {},
+  year = 	 2009,
+  note = 	 {In \url{https://github.com/mitre/cpsaexp} source
+    distribution, \texttt{doc} directory},
+  OPTannote = 	 {}
+}
+
+@Manual{cpsagoals09,
+  title = 	 {{CPSA} Security Goals and Rules},
+  OPTkey = 	 {},
+  author = 	 {John D.~Ramsdell},
+  organization = {The MITRE Corporation},
+  OPTaddress = 	 {},
+  OPTedition = 	 {},
+  OPTmonth = 	 {},
+  year = 	 2015,
+  note = 	 {In \url{https://github.com/mitre/cpsaexp} source
+    distribution, \texttt{doc} directory},
+  OPTannote = 	 {}
+}
+
+@Manual{cpsaoverview09,
+  title = 	 {{CPSA} Overview},
+  OPTkey = 	 {},
+  author = 	 {John D.~Ramsdell and Joshua D.~Guttman},
+  organization = {The MITRE Corporation},
+  OPTaddress = 	 {},
+  OPTedition = 	 {},
+  OPTmonth = 	 {},
+  year = 	 2009,
+  note = 	 {In \url{https://github.com/mitre/cpsaexp} source
+    distribution, \texttt{doc} directory},
+  OPTannote = 	 {}
+}
+
+@Manual{cpsauser09,
+  title = 	 {{CPSA} User Guide},
+  OPTkey = 	 {},
+  author = 	 {John D.~Ramsdell},
+  organization = {The MITRE Corporation},
+  OPTaddress = 	 {},
+  OPTedition = 	 {},
+  OPTmonth = 	 {},
+  year = 	 2009,
+  note = 	 {In \url{https://github.com/mitre/cpsaexp} source
+    distribution, \texttt{doc} directory},
+  OPTannote = 	 {}
+}
+
+@Manual{cpsa09,
+  author = 	 {John D. Ramsdell and Joshua D. Guttman},
+  title = 	 {{CPSA4}: A cryptographic protocol shapes analyzer},
+  organization = {The MITRE Corporation},
+  year = 	 2018,
+  note = 	 {\url{https://github.com/mitre/cpsaexp}},
+}
+
+@unpublished{algimpl11,
+  author = {Moses Liskov and John D. Ramsdell},
+  title = {Implementing Strand Space Algebras},
+  note = {\url{http://www.ccs.neu.edu/home/ramsdell/papers/algimpl.pdf}},
+  year = 2011
+}
+
+@incollection{ComonLundhMillen10,
+    author=	 {H. Comon-Lundh and S. Delaune and J. Millen},
+    title =	 {Constraint solving techniques and enriching
+                  the model with equational theories},
+    booktitle =	 {Formal Models and Techniques for Analyzing
+                  Security Protocols},
+    editor =	 {Veronique Cortier and Steve Kremer},
+    series =	 {Cryptology and Information Security Series},
+    volume = 	 5,
+    year =	 2011,
+    isbn =	 {978-1-60750-713-0},
+    publisher =	 {{ISO} Press}
+    }
+
+@InCollection{Guttman11,
+  author = 	 {Joshua D. Guttman},
+  title = 	 {Shapes: Surveying Crypto Protocol Runs},
+  booktitle = 	 {Formal Models and Techniques for Analyzing
+                  Security Protocols},
+  key = 	 {CortierKremer2011},
+  publisher =	 {{IOS} Press},
+  year = 	 2011,
+  volume = 	 5,
+  isbn =	 {978-1-60750-713-0},
+  editor = 	 {Veronique Cortier and Steve Kremer},
+  series = 	 {Cryptology and Information Security Series}}
+
+@article{CokerEtAl11,
+   author = {George Coker and Joshua Guttman and Peter Loscocco and
+                  Amy Herzog and Jonathan Millen and Brian O'Hanlon
+                  and John Ramsdell and Ariel Segall and Justin Sheehy
+                  and Brian Sniffen},
+   affiliation = {National Security Agency and The MITRE Corporation},
+   title = {Principles of remote attestation},
+   journal = {International Journal of Information Security},
+   publisher = {Springer Berlin / Heidelberg},
+   issn = {1615-5262},
+   keyword = {Computer Science},
+   pages = {63-81},
+   volume = {10},
+   issue = {2},
+   url = {http://dx.doi.org/10.1007/s10207-011-0124-7},
+   note = {10.1007/s10207-011-0124-7},
+   year = {2011}
+}
+
+@InProceedings{Guttman09,
+  author = 	 {Joshua D. Guttman},
+  title = 	 {Security Theorems via Model Theory},
+  OPTcrossref =  {},
+  OPTkey = 	 {},
+  booktitle =    {Express: Expressiveness in Concurrency,
+                  Workshop affiliated with Concur},
+  OPTpages = 	 {},
+  year = 	 2009,
+  OPTeditor = 	 {},
+  OPTvolume = 	 {},
+  OPTnumber = 	 {},
+  OPTseries = 	 {},
+  OPTaddress = 	 {},
+  month = 	 sep,
+  OPTorganization = {},
+  OPTpublisher = {},
+  note = 	 {Post-proceedings to appear in EPTCS,
+                  \url{http://www.eptcs.org/}},
+  OPTannote = 	 {}
+}
+
+@article{DenningSacco81,
+  author =	 {Dorothy E. Denning and Giovanni M. Sacco},
+  title =	 {Timestamps in key distribution protocols},
+  journal =	 {Communications of the ACM},
+  volume =	 24,
+  number =	 8,
+  pages =	 {533--536},
+  month =	 aug,
+  year =	 1981
+}
+
+@inproceedings{GuttmanEtAl04,
+    author = {Joshua D. Guttman and F. Javier Thayer and Jay A. Carlson and Jonathan C. Herzog and John D. Ramsdell and Brian T. Sniffen},
+    title = {Trust management in strand spaces: A rely-guarantee method},
+    booktitle = {In Proc. of the European Symposium on Programming (ESOP ’04), LNCS},
+    year = 2004,
+    pages = {325--339},
+    publisher = {Springer-Verlag}
+}
+
+@Misc{Ramsdell12,
+  author = 	 {John D. Ramsdell},
+  title = 	 {Deducing Security Goals from Shape Analysis Sentences},
+  howpublished = {The MITRE Corporation},
+  month =        apr,
+  year = 	 2012,
+  note = 	 {\url{http://arxiv.org/abs/1204.0480}}}
+
+@TechReport{Ramsdell13,
+  title = 	 {Proving Security Goals With Shape Analysis Sentences},
+  author = 	 {John D.~Ramsdell},
+  institution =  {The MITRE Corporation},
+  year = 	 2013,
+  month =        sep,
+  number = 	 {MTR130488},
+  note =         {\url{http://arxiv.org/abs/1403.3563}},
+}
+
+@Misc{RamsdellEtAl14,
+  author = 	 {John D. Ramsdell and Daniel J. Dougherty and
+                  Joshua D. Guttman and Paul D. Rowe},
+  title = 	 {A Hybrid Analysis for Security Protocols with State},
+  howpublished = {The MITRE Corporation and Worcester Polytechnic Institute},
+  month =        apr,
+  year = 	 2014,
+  note = 	 {\url{http://arxiv.org/abs/1404.3899}}}
+
+@TechReport{RamsdellEtAl09,
+  author = 	 {John D. Ramsdell and Joshua D. Guttman and
+                  Jonathan K. Millen and Brian O'Hanlon},
+  title = 	 {An Analysis of the {CAVES} Attestation Protocol using {CPSA}},
+  note = 	 {\url{http://arxiv.org/abs/1207.0418}},
+  institution =  {The {MITRE} Corporation},
+  month = 	 dec,
+  year = 	 2009,
+  type = 	 {{MITRE} Technical Report},
+  number = 	 {{MTR090213}}
+}
+
+@InProceedings{GuttmanLiskovRowe14,
+  author = 	 {Joshua D. Guttman and Moses D. Liskov and Paul D. Rowe},
+  title = 	 {Security Goals and Evolving Standards},
+  booktitle =    {Security Standardization Research},
+  year = 	 2014,
+  editor = 	 {Liqun Chen and Chris Mitchell},
+  volume = 	 8839,
+  series = 	 {LNCS},
+  pages = 	 {93--110},
+  month = 	 dec,
+  publisher =    {Springer},
+}
+
+@Article{Guttman14,
+  author = 	 {Joshua D. Guttman},
+  title = 	 {Establishing and Preserving Protocol Security Goals},
+  journal = 	 {Journal of Computer Security},
+  year = 	 2014,
+  volume = 	 22,
+  number = 	 2,
+  pages = 	 {201--267}}
+
+@Unpublished{prover9,
+  author = 	 {Bill W. McCune},
+  title = 	 {Prover9},
+  note = 	 {\url{http://www.cs.unm.edu/~mccune/mace4/}},
+  OPTkey = 	 {},
+  OPTmonth = 	 {},
+  OPTyear = 	 {},
+  OPTannote = 	 {}
+}
+
+@InProceedings{LiskovThayer14,
+  author = 	 {Moses D. Liskov and F. Javier Thayer},
+  title = 	 {Modeling Diffie-Hellman Derivability for Automated Analysis},
+  OPTcrossref =  {},
+  OPTkey = 	 {},
+  booktitle =    {Computer Security Foundations},
+  year = 	 2014,
+  OPTeditor = 	 {},
+  OPTvolume = 	 {},
+  number = 	 27,
+  OPTseries = 	 {},
+  OPTpages = 	 {},
+  month = 	 jul,
+  OPTaddress = 	 {},
+  organization = {{IEEE}},
+  OPTpublisher = {},
+  note = 	 {\url{http://www.mitre.org/sites/default/files/publications/PR_13-2517.pdf}},
+  OPTannote = 	 {}
+}
diff --git a/doc/src/cpsa4manual/CPSA_cribsheet.pdf b/doc/src/cpsa4manual/CPSA_cribsheet.pdf
new file mode 100644
Binary files /dev/null and b/doc/src/cpsa4manual/CPSA_cribsheet.pdf differ
diff --git a/doc/src/cpsa4manual/CPSA_cribsheet.pptx b/doc/src/cpsa4manual/CPSA_cribsheet.pptx
new file mode 100644
Binary files /dev/null and b/doc/src/cpsa4manual/CPSA_cribsheet.pptx differ
diff --git a/doc/src/cpsa4manual/Makefile b/doc/src/cpsa4manual/Makefile
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/Makefile
@@ -0,0 +1,6 @@
+BASE_NAME = cpsa4manual
+BIB_NAME = secureprotocols
+MP_MACROS = strands.mp cmstrands.mp
+export BIBINPUTS = .:
+include ltxmp.mk
+
diff --git a/doc/src/cpsa4manual/algebra.tex b/doc/src/cpsa4manual/algebra.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/algebra.tex
@@ -0,0 +1,696 @@
+\chapter{Algebra Features of CPSA}
+\label{ch:algebra}
+
+\index{Diffie-Hellman!algebra}
+The {\cpsa} distribution comes equipped with two cryptographic
+alegbras, the \texttt{basic} cryptoalgebra and the
+\texttt{diffie-hellman} cryptoalgebra.  The Diffie-Hellman algebra is
+a pure extension of the basic algebra, so a user may always use the
+Diffie-Hellman algebra to access all algebraic features.  However, the
+performance of the tool is superior when using the basic algebra, so
+users are advised to choose the basic algebra whenever they are not
+making use of Diffie-Hellman features.
+
+In Chapter~\ref{ch:basic}, we introduced the basic cryptoalgebra,
+along with the \texttt{data, text, name, skey,} and \texttt{akey}
+sorts, and the \texttt{pubk, privk, invk, enc,} and \texttt{cat}
+function symbols.  In addition to these, the basic cryptoalgebra
+contains the sorts \ttindex{tag} \texttt{tag} and \texttt{mesg}, and the \texttt{ltk}
+and \texttt{hash} function symbols, and string constants.
+
+The Diffie-Hellman cryptoalgebra introduces three further sorts,
+\texttt{base, rndx,} and \texttt{expt}, and six new function symbols,
+\texttt{bltk, exp, rec, mul, gen,} and \texttt{one}.  For performance
+reasons, one should always avoid using variables of sort
+\texttt{base}.  Instead, replace the variable with \texttt{(exp (gen)
+  x)}, where \texttt{x} is a variable of sort \texttt{expt}.
+
+In this chapter we will explain these additional features with
+examples.  In Section~\ref{sec:kerberos}, we will discuss the
+\texttt{ltk} function symbol and the use of the \texttt{mesg} sort,
+worked with an example based on the Kerberos protocol.  In
+Section~\ref{sec:dh}, we will discuss the tool's Diffie-Hellman
+features.  In Section~\ref{sec:other_algebra}, we will discuss the
+remaining features, and note examples that demonstrate their use.
+For a more complete reference about the two algebras, see Section~\ref{sec:algebra_ref}.
+
+\section{Generic messages and long-term keys}
+\label{sec:kerberos}
+
+\index{Kerberos protocol}
+\index{examples!Kerberos}
+Securing communications purely with symmetric keys faces an inherent
+scaling problem: when there are $n$ parties that may wish to
+communicate, there must be $O(n^2)$ keys shared between parties, which
+gets to be too many in any system with a large number of users.
+
+The Kerberos protocol is a well-known protocol for the distribution of
+symmetric keys.  Instead of having the $n$ parties share keys with
+each other party, the users share a key only with a central key server
+(also known as a key distribution center).  The key server controls
+key distribution within a \emph{realm} that can be thought of as the
+set of users that share keys with the key server.
+
+Suppose a user wishes to communicate securely with another user in the
+same realm.  The first user would contact the key server and request a
+session key for communication with the other user.  The key server
+could then encrypt the session key twice, once under each user's
+shared key with the server.  One encrypted key is sent back to the
+user that requested the channel, and the other (called the ``ticket'')
+is also sent to the requesting user, to be forwarded on to their
+communication partner.
+
+We will focus on a flawed protocol similar to the initialization
+protocol used by Kerberos.  The protocol is described informally as
+follows.  There are three parties, the initiator $a$, the responder
+$b$, and the key server $s$.
+
+\begin{itemize}
+
+\item $a$ sends a message $(a, b, n)$ to the key server, where $n$ is
+  a freshly chosen nonce.
+
+\item The key server, on a message $(a, b, n)$, picks a fresh, random
+  session key $k$, and sends two encryptions to $a$:
+  $\enc{k,n}{SK(a,s)}$ and $\enc{k,a,b}{SK(b,s)}$.  Here, $SK(x,s)$
+  refers to the shared secret between the key server and~$x$.
+
+\item $a$ receives these two messages, decrypts the first to learn $k$
+  and to check that the proper nonce $n$ was included, then sends a
+  message $m$ on to the responder, encrypted under $k$, along with the
+  second message (the ticket).
+
+\item $b$ receives two encrypted messages, decrypts the second to
+  learn $k$, and decrypts the first with $k$ to learn the message.
+\end{itemize}
+
+\ttindex{ltk} The \texttt{ltk} function symbol is used in {\cpsa} to
+represent long-term shared keys between two specific parties, when
+communication of that key is assumed out of scope of the analysis.
+See Figure~\ref{fig:kerb-flawed defprotocol} for a
+\texttt{defprotocol} that attempts to describe this flawed version of
+the Kerberos initialization protocol.  See \texttt{kerb.scm} in the
+examples directory for the input file discussed here.
+
+\begin{figure}
+\centering
+\begin{tabular}{l}
+\verb|(defprotocol kerb-flawed basic|\\
+\verb|  (defrole init|\\
+\verb|    (vars (a b s name) (m n text) (k skey))|\\
+\verb|    (trace (send (cat a b n))|\\
+\verb|           (recv (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))|\\
+\verb|           (send (cat (enc m k) (enc k a b (ltk b s)))))|\\
+\verb|    (uniq-orig n))|\\
+\verb|  (defrole keyserv|\\
+\verb|    (vars (a b s name) (n text) (k skey))|\\
+\verb|    (trace (recv (cat a b n))|\\
+\verb|           (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s)))))|\\
+\verb|    (uniq-orig k))|\\
+\verb|  (defrole resp|\\
+\verb|    (vars (a b s name) (m n text) (k skey))|\\
+\verb|    (trace (recv (cat (enc m k) (enc k a b (ltk b s)))))))|\\
+\end{tabular}
+\caption{A flawed version of Kerberos}
+\label{fig:kerb-flawed defprotocol}
+\end{figure}
+
+The actual Kerberos protocol contains several additional elements that
+we omit for simplicity, but the key difference is that the message
+encrypted under $SK(a,s)$ should include $b$.  The message from the
+initiator that requests a session key is transmitted in the clear and
+can be tampered with, so the initiator needs assurance that the
+session key $k$ is being exposed only to the initiator and $b$.
+Otherwise, even assuming the long-term keys of both $a$ and $b$ with
+the key server are secure, a third party may observe the message $m$:
+all the adversary has to do is block the initial message and substitute
+$b$ with another name $c$.
+
+Will {\cpsa} find this attack?  See \texttt{kerb.xhtml} for the
+results of the analysis for the point-of-view skeleton described in
+Figure~\ref{fig:kerb-flawed-pov}.  Note the use of
+\texttt{defstrandmax}; this is a shortcut you can use in \cpsa to
+specify a full-height instance of a role.
+
+\begin{figure}
+\centering
+\begin{tabular}{l}
+\verb|(defskeleton kerb-flawed|\\
+\verb|  (vars (a b s name) (m text))|\\
+\verb|  (defstrandmax init (a a) (b b) (s s) (m m))|\\
+\verb|  (deflistener m)|\\
+\verb|  (non-orig (ltk a s) (ltk b s))|\\
+\verb|  (uniq-orig m))|\\
+\end{tabular}
+\caption{Flawed Kerberos point of view}
+\label{fig:kerb-flawed-pov}
+\end{figure}
+
+Interestingly, the result of the analysis does not indicate any attack
+is possible!  The analysis gets stuck at a skeleton (see
+Figure~\ref{fig:kerb-skel4}) where the key server does in fact
+generate a session key for $a$ and $b$, and where that session key is
+exposed, but it cannot be exposed if it was generated for $a$ and $b$
+and if we are assuming both of their long-term keys are private.
+
+\begin{figure}
+\centering
+\includegraphics{kerb_skel4}
+\caption[Flawed Kerberos dead skeleton]{Flawed Kerberos dead skeleton.  The use of the \texttt{mesg} sort provides a fix to this badly modeled version of the protocol.}
+\label{fig:kerb-skel4}
+\end{figure}
+
+\ttindex{mesg} \index{generics} The reason {\cpsa} gets the wrong
+result here is that we have inadvertently modeled our protocol
+question incorrectly.  Specifically, we have described a version of
+the protocol where the initiator is able to check the validity of the
+ticket.  The attack we have in mind is one where the two encrypted
+keys received by the initiator are prepared by a key server instance,
+but one which does not agree with the initiator on $b$.  However, the
+ticket would not match what the initiator expects in our expression of
+the initiator role.\footnote{An alert reader may wonder how they could
+  detect such an error of their own when using the tool.  We will
+  return to this example in Chapter~\ref{ch:algorithm}, when we
+  discuss how the {\cpsa} search process works.}
+
+We described an initiator that will only proceed onto the third step
+(sending $m$) if the ticket is of the form we specified.  In fact, the
+initiator cannot do this.  The initiator cannot even verify that the
+ticket is encrypted under the correct key! The solution is to use a
+generic variable, one that can stand for any message, even one that a
+particular participant cannot parse or understand.  The \texttt{mesg}
+sort is the sort of all possible messages, so a variable of the
+\texttt{mesg} sort can stand for any potential value at all.  See
+Figure~\ref{fig:kerb-flawed2 defprotocol} for a version that models
+the initiator's reception properly.  Note the \texttt{ticket} variable
+in the initiator role, which stands for the ticket value the initiator
+cannot inspect.
+
+\begin{figure}
+\begin{center}
+\begin{tabular}{l}
+\verb|(defprotocol kerb-flawed2 basic|\\
+\verb|  (defrole init|\\
+\verb|    (vars (a b s name) (m n text) (ticket mesg) (k skey))|\\
+\verb|    (trace (send (cat a b n))|\\
+\verb|           (recv (cat (enc k n (ltk a s)) ticket))|\\
+\verb|           (send (cat (enc m k) ticket)))|\\
+\verb|    (uniq-orig n))|\\
+\verb|  (defrole keyserv|\\
+\verb|    (vars (a b s name) (n text) (k skey))|\\
+\verb|    (trace (recv (cat a b n))|\\
+\verb|           (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s)))))|\\
+\verb|    (uniq-orig k))|\\
+\verb|  (defrole resp|\\
+\verb|    (vars (a b s name) (m n text) (k skey))|\\
+\verb|    (trace (recv (cat (enc m k) (enc k a b (ltk b s)))))))|\\
+\end{tabular}
+\end{center}
+\caption[Flawed Kerberos with a generic ticket]{Using a variable of
+  sort \texttt{mesg} in a flawed version of Kerberos}
+\label{fig:kerb-flawed2 defprotocol}
+\end{figure}
+
+This version of the flawed Kerberos protocol may also be found in the
+file \texttt{kerb.scm}, and its analysis may be found in
+\texttt{kerb.xhtml}.  This time, there is a shape found.  See
+Figure~\ref{fig:kerb-skel7}.
+
+\begin{figure}
+\centering
+\includegraphics[scale=0.8]{kerb_skel7}
+\caption[Flawed Kerberos shape]{Flawed Kerberos shape.  The use of the \texttt{mesg} variable allows us to find the attack illustrated here.}
+\label{fig:kerb-skel7}
+\end{figure}
+
+\paragraph{Notes on generic variables.}
+Variables of the \texttt{mesg} sort are constrained in {\cpsa}, and
+may only be used when they are received before they are transmitted.
+So for instance the $m$ variable in the initiator role of the flawed
+Kerberos protocol cannot be of the \texttt{mesg} sort, because it
+appears first in a transmission. However, if the responder is willing
+to accept an encryption of any message $m$, then $m$ may declared as a
+variable of the \texttt{mesg} sort within that role.
+
+Also, variables of the \texttt{mesg} sort should never be used as a
+key in any encryption.  This is because {\cpsa} uses a single function
+symbol to represent both symmetric and asymmetric encryption, and when
+the key is a variable of sort \texttt{mesg}, it is ambiguous which is
+meant.
+
+\paragraph{Notes on long-term keys.}
+\ttindex{ltk}
+Long-term keys are uni-directional: \texttt{(ltk a b)} and
+\texttt{(ltk b a)} are distinct values.  In fact, {\cpsa} believes
+that they cannot be the same unless $a = b$.  This is fine for
+modeling protocols like Kerberos where there is a clear distinction
+between client and server behavior.  Note that in our protocol
+example, all long-term keys were described in all roles with a client
+name in the first position and a server name in the second position.
+See Section~\ref{sec:bltk} for discussion of the
+\texttt{bltk} function symbol, which models \emph{bi-directional}
+long-term symmetric keys.
+
+\index{Yahalom protocol}\index{examples!Yahalom}
+For another example of the use of long-term symmetric keys in a
+protocol, see \texttt{yahalom.scm} in the examples directory.
+
+\begin{exercise}
+\label{ex:fix_kerberos}
+Fix the flawed version of Kerberos so that the initiator can believe
+their transmission is private to them and $b$.  Continue to use the
+ticket variable of sort \texttt{mesg}.
+
+Construct a \texttt{defskeleton} for the responder's point of view
+for your fixed protocol, analyze it, and explain in English what
+authentication property this analysis implies.
+\end{exercise}
+
+\begin{exercise}
+  Construct a \texttt{defskeleton} for the initiator's point of view,
+  without the listener for $m$, in the fixed version you created in
+  Exercise~\ref{ex:fix_kerberos}.  Run the tool on your
+  \texttt{defskeleton}.  Why are there dashed arrows in the result?
+  Does this represent an insecurity in the protocol?
+
+Whether or not you think this is an insecurity, think about how you
+would alter the protocol to avoid the dashed arrows, and try out your
+ideas.
+\end{exercise}
+
+\index{Otway-Rees protocol} \index{examples!Otway-Rees} The Otway-Rees
+protocol is another example of very similar modeling; see
+\texttt{or.scm} and \texttt{or.xhtml} if you wish to explore these
+issues further on your own.
+
+\section{Modeling Diffie-Hellman}
+\label{sec:dh}
+
+\index{Diffie-Hellman}
+In their seminal 1976 paper, ``New Directions in Cryptography'',
+Diffie and Hellman proposed the notion of public-key cryptography
+\cite{DiffieHellman76}.  They did not have a method for public-key direct
+encryption, but they did have a key exchange protocol that has become
+a crucial building block in cryptographic protocols.
+
+The Diffie-Hellman protocol works as follows.  A large prime number
+$p$ is chosen and agreed upon as a parameter, and $g$ is chosen to be
+some integer modulo $p$.  In order to enable secure communication
+between arbitrary parties, Diffie and Hellman imagined a directory of
+public values, like a phone book.  Each person who wishes to be able
+to communicate securely with others will generate for themselves a
+private value $x$, and publicize $g^x \bmod p$ as their public value.
+If Alice's private value is $a$, and Bob's private value is $b$, then
+the shared secret between Alice and Bob would be $g^{ab} \bmod p$,
+which each party can calcuate from their own private value and their
+partner's public value.  For instance, Alice can calculate $g^{ab}
+\equiv (g^b)^a \bmod p$.
+
+Version 3 of {\cpsa} introduces the Diffie-Hellman algebra, which
+allows for analysis of protocols that incorporate Diffie-Hellman
+techniques.  The Diffie-Hellman algebra includes all the function
+symbols and sorts available in the basic algebra, plus three
+additional sorts: two sorts (\texttt{rndx} and \texttt{expt}) for
+exponents such as $x$, and \texttt{base}, for exponentiated values
+such as $g^x$.  The Diffie-Hellman specific functions symbols are as
+follows:
+
+\begin{itemize}
+\item \texttt{exp} represents exponentation.  For example, $h^x$ is
+encoded as \\ \texttt{(exp h x)}.
+\item \texttt{mul} represents multiplication of exponents.  So if $x$
+is an exponent, \\ \texttt{(mul x x)} would represent the square of $x$.
+\item \texttt{gen} represents the standard generator $g$.  It is
+  probably best to think of \texttt{gen} as a constant, i.e. a
+  function symbol with arity~0.
+
+\item \texttt{one} represents the multiplicative identity for the group of
+exponents.  Like \texttt{gen}, \texttt{one} is a 0-ary function.
+
+{\bf Important: } \texttt{gen} and \texttt{one} are functions, so they
+must be enclosed in parentheses.  So \texttt{(exp (gen) x)} represents
+$g^x$, while \texttt{(exp gen x)} would represent ${gen}^x$ where
+${gen}$ is expected to be a variable.  Similarly, \texttt{(mul (one)
+  x)} represents $1 \cdot x$ while \texttt{(mul one x)} would
+represent $one \cdot x$ where the tool expects $one$ to be an exponent
+variable.
+
+\item \texttt{rec} represents the multiplicative inverse in the group
+  of exponents.  So for instance \texttt{(exp (exp (gen) x) (rec x)) =
+    (exp (gen) (one)) = (gen)}.
+\end{itemize}
+
+At this time, {\cpsa} does not model addition of exponents, although
+there are many examples of protocols that add or subtract exponents.
+There is no way to take a product of exponentiated values either
+(e.g. $g^x \cdot g^y$) since this would be equivalent to including
+addition of exponents.
+
+\index{Diffie-Hellman!unauthenticated}
+\index{Diffie-Hellman!plain}
+\index{examples!Diffie-Hellman}
+Several examples of Diffie-Hellman protocols are available in the examples
+directory of the distribution.  The \texttt{plaindh.scm} example models
+a simple, unauthenticated Diffie-Hellman exchange between two parties.
+
+The initiator and responder perform a Diffie-Hellman exchange, followed by
+the initiator choosing a random nonce $n$ and sending it, encrypted with the
+Diffie-Hellman key, to the responder, who decrypts $n$ and sends it back.
+
+The analysis result can be found in \texttt{plaindh.xhtml}.  You can see
+there that a shape is found where an initiator exists but no
+responder; the $n$ can be decrypted because $g^{x x_0}$ can be
+calculated by the adversary when $x_0$ is not assumed secret.
+
+Two features of the {\cpsa} model of Diffie-Hellman in this protocol are
+worth drawing attention to.  See Figure~\ref{fig:plaindh defprotocol}
+
+\begin{figure}
+\begin{center}
+\begin{tabular}{l}
+\verb|(defprotocol plaindh diffie-hellman|\\
+\verb|  (defrole init|\\
+\verb|    (vars (x rndx) (y expt) (n text))|\\
+\verb|    (trace (send (exp (gen) x))|\\
+\verb|           (recv (exp (gen) y)) |\\
+\verb|           (send (enc n (exp (gen) (mul y x))))|\\
+\verb|           (recv n))|\\
+\verb|    (uniq-orig n)|\\
+\verb|    (uniq-gen x))|\\
+\verb| ...)|
+\end{tabular}
+\end{center}
+\caption{Diffie-Hellman defprotocol}
+\label{fig:plaindh defprotocol}
+\end{figure}
+
+\ttindex{rndx} \ttindex{expt}
+Note that the initiator uses a variable $x$ of the \texttt{rndx} sort
+to represent its own random variable, and a variable $y$ of the
+\texttt{expt} sort to represent the exponent present in the base value
+it receives from the initiator.  Distinct values of the \texttt{rndx}
+sort model distinct independent random choices of exponents, while
+\texttt{expt} values merely represent arbitrary exponents which may or
+may not be calculated as some product of other known values.  Here,
+since the initiator chooses their own exponent, we model $x$ as an
+\texttt{rndx} value.  But since the initiator cannot know how the base value
+$g^y$ was calculated, we model $y$ as an \texttt{expt} value.
+
+Note that unlike the example in Section~\ref{sec:kerberos},
+where receiving a specifically formatted encryption in a protocol role
+implied the ability to decrypt and check that structure is present,
+the use of a value like $g^y$ in a reception does not imply that $y$
+is \emph{known}, only that $y$ is defined to be the value such that
+$g^y$ is the base value received.
+
+\ttindex{uniq-gen} Second, you may notice that $n$ is declared
+\texttt{uniq-orig} while $x$ is declared \texttt{uniq-gen}.  The
+difference between these declarations is rather technical: see
+Section~\ref{sec:secrecy_assumptions} for details.  For the moment, it
+is sufficient to say that one should use \texttt{uniq-gen} for
+exponents that first occur within an exponentiation, rather than
+\texttt{uniq-orig}.
+
+\label{anchor:generalization}
+\index{deletion} \index{generalization} It is also instructive to
+examine the two final skeletons in the analysis that leads to the
+shape; see Figure~\ref{fig:plaindh_skel4_5}.  The first realized
+skeleton reached in the branch is skeleton 4, on the left, which
+includes an instance of the initiator role and a listener.  But this
+realized skeleton has a child: skeleton 5.  The difference is that
+skeleton 5 does not include the listener.  This is an example of a
+step that {\cpsa} takes called \emph{generalization}: when {\cpsa}
+recognizes a realized skeleton (that is, one that has no unexplainable
+receptions), it attempts to identify ways to make that skeleton more
+general without losing coverage.  Here, {\cpsa} has deleted the
+listener, because that actual explicit reception and re-transmission
+of $g^{x x_0}$ is not strictly necessary.  When a realized skeleton
+cannot be further generalized, {\cpsa} declares it a ``shape'' and
+stops working in that branch of the analysis.
+
+\begin{figure}
+\centering
+\includegraphics[scale=0.8]{plaindh_skel4_5}
+\caption{Deletion of strand}
+\label{fig:plaindh_skel4_5}
+\end{figure}
+
+\index{minimality of {\cpsa} output} You may notice there is another
+shape in \texttt{plaindh.xhtml}, in which a responder is present.  As it
+happens, the other shape is strictly less general than the shape shown
+as skeleton 5.  {\cpsa} does not promise that the set of shapes it
+outputs is strictly minimal, and this is one example where the output
+of {\cpsa} is not minimal.
+
+\subsection{Other examples}
+
+\index{Station to Station protocol} \index{examples!Station to
+  Station} The examples directory also contains the
+\texttt{station.scm} and \texttt{station.xhtml} examples that model
+the station-to-station protocol.  This protocol uses digital
+signatures in order to authenticate a Diffie-Hellman exchange so that
+the key established represents a secure and authenticated channel.
+Two versions of the protocol are provided; in one, the Diffie-Hellman
+exponents are assumed fresh in the roles, while in the other, they are
+not.  The two analyses produce different results.
+
+\index{forward secrecy}
+\index{Unified Method} \index{examples!Unified Method} Another example
+provided can be found in \texttt{iadh-um.scm} and
+\texttt{iadh-um.xhtml}.  These inputs concern a method of determining
+Diffie-Hellman session keys using both long-term and ``ephemeral''
+exponents called the \emph{unified method}.  The ``ia'' in the example
+name stands for \emph{implicitly authenticated}, because this method
+of session key creation allows the parties to be sure that no other
+party knows the key.  One interesting feature of this input is that it
+contains an example of an exponent being transmitted outside of an
+exponentiation.  Specifically, there is a role in which a party
+generates and signs their long-term Diffie-Hellman public value, and
+then compromises it by releasing the key.  The explicit compromise
+allows us to test the ``forward secrecy'' property of the unified
+method.
+
+\section{Other Algebra Features}
+\label{sec:other_algebra}
+
+\subsection{Hashing}
+\index{hash functions} \ttindex{hash} The {\cpsa} basic cryptoalgebra
+includes a \texttt{hash} function symbol that can be used to represent
+the use of a hash function.  The function takes a single input, but
+\texttt{(hash t1 t2 ... tn)} is interpreted as shorthand for
+\texttt{(hash (cat t1 (cat t2 ( \ldots tn) \ldots )))}.
+
+\begin{exercise}
+  The Needham-Schroeder protocol discussed in Chapter~\ref{ch:basic}
+  was described as for key agreement, but no session key is apparent
+  in the protocol.  The intention is to use the hash of the two nonces
+  as the key.  Make a copy of the \texttt{ns.scm} example in which
+  this key is explicitly used to encrypt and transmit a separate fresh
+  value, and make a point of view testing the confidentiality of the
+  plaintext.
+\end{exercise}
+
+\subsection{Constants}
+\index{constants} \index{tags} \ttindex{tag} Numerous cryptographic
+protocols make use of magic numbers or string constants to
+disambiguate the purpose of various messages that occur during the
+protocol.  {\cpsa} includes constant strings in the basic
+cryptoalgebra.  Such constants always appear as quoted strings,
+e.g. \texttt{"foo"}.  These strings do not need to be declared in a
+\texttt{vars} statement because they are not variables.  Tags are
+messages, so that a variable of
+\verb|mesg| sort may be instantiated by a tag.
+
+%   The sort of
+%   string constants is always \texttt{tag}, which is a basic sort much
+%   like \texttt{text} or \texttt{data}, however, it is strongly
+%   recommended that the \texttt{tag} sort be used only for variables that
+%   are intended to represent as-yet undetermined string constants.  See
+%   Section~\ref{sec:distinct_decls} for strategies to avoid such
+%   non-recommended uses.
+
+\begin{exercise}
+Note that in the Needham-Schroeder protocol, there seems to be no way
+for an initiator to accidentally talk to another initiator, even though
+the initiator both sends and receives an encrypted message with two
+components in it.  Make a copy of the Needham-Schroeder protocol in which
+the nonces are declared to be of sort \texttt{name} instead of \texttt{text},
+so that $\enc{n_1,a}{K_b}$ and $\enc{n_1,n_2}{K_a}$ are modeled as similar
+enough in format that confusing the two is possible.  What changes?
+
+Then try adding distinct tag constants to each encrypted message, to
+avoid the ambiguity we just created.  Run the analysis to see the
+effect.
+\end{exercise}
+
+Constants may also be used to modify the \texttt{pubk} and
+\texttt{privk} function symbols, to describe distinct keys associated
+with a particular name.  For instance, one might use \texttt{(pubk
+  "encrypt" a)} to describe the public encryption key of $a$, so as to
+distinguish it from the public signature verification key of $a$.  Or,
+one might wish to describe a certifying authority's
+certificate-signing key but also a key used to sign certificate
+revocation statements that might be different.
+
+\subsection{Bidirectional Long-Term Keys}
+\label{sec:bltk}
+\ttindex{bltk}
+\index{long-term key!bidirectional}
+The \texttt{ltk} function symbol is used to describe the long-term secret
+key shared between two parties.  However, the names of the two parties
+are, in the function symbol, presented in a distinguished order.
+
+In other words, {\cpsa} regards \texttt{(ltk a b)} and \texttt{(ltk b
+  a)} as distinct from each other; in fact, they are only considered
+equal when $a = b$.
+
+The \texttt{bltk} function symbol is available in {\cpsa} in \emph{the
+  Diffie-Hellman algebra only},\footnote{This choice may seem odd; it
+  was made for performance reasons.  The presence of \texttt{bltk} or
+  of Diffie-Hellman elements complicates some basic algebraic
+  operations.  The \texttt{basic} cryptoalgebra is provided for
+  optimized performance when analyzing protocols that do not include
+  these features.} and regards the two names as equivalent in order.
+In the Kerberos example discussed in Section~\ref{sec:kerberos}, we
+noted that the server's name $s$ always appears second in our
+\texttt{ltk} expressions.  This is fine if participants never can act
+as both client and server, but if a participant can act as both, the
+use of \texttt{ltk} implies that the participant maintains a strict
+separation between the keys they share with other servers when acting
+as a client (in which their own name appears first), and keys they
+share with clients when acting as a server (in which their own name
+appears second).
+
+The use of \texttt{bltk} implies that participants can act as both
+servers and clients, and that they only share one key with other
+entities, and use that key both when acting as a server and when
+acting as a client.
+
+\index{Otway-Rees protocol!with bi-directional keys}
+\index{examples!Otway-Rees!with bi-directional keys} See
+\texttt{bltk\_or.scm} and \texttt{bltk\_or.xhtml} for modeling of the
+Otway-Rees protocol with bi-directional long-term keys rather than
+uni-directional ones.
+
+\index{examples!Kerberos!with bi-directional keys}
+\begin{exercise}
+\label{ex:bltk_kerb}
+Make a version of the flawed Kerberos input file \texttt{kerb.scm}
+that uses bi-directional long-term keys instead.  Remember to switch
+the algebra to Diffie-Hellman!  What differences do you observe?
+\end{exercise}
+
+\index{examples!Yahalom!with bi-directional keys}
+\begin{exercise}
+Repeat the Exercise~\ref{ex:bltk_kerb} but with the Yahalom protocol
+(\texttt{yahalom.scm}) instead.
+\end{exercise}
+
+\section{The Lang Field:  Declaring new operators}
+\label{sec:algebra:lang:field}
+
+The signature of the message algebra used by {\cpsa} is extensible.
+There are two forms of extensibility provided by {\cpsa}.  Users can
+add operations for encryption, \index{tuple}tupling, and hashing; and
+add sorts for atomic data.
+
+A common extension is to add tupling operations to message algebras.
+Previously, complex protocols often made use of tagged concatenation
+to encode a tagged sequence of messages.  In {\cpsa}, concatenation is
+implemented as sequences of pairing operations.  Thus, the expression
+for a certificate body of the form
+\begin{quote}
+\begin{verbatim}
+(cat "cert-body" dn serial-no pub-key)
+\end{verbatim}
+\end{quote}
+is syntax for
+\begin{quote}
+\begin{verbatim}
+(cat "cert-body" (cat dn (cat serial-no pub-key)))
+\end{verbatim}
+\end{quote}
+
+Algebra extensions are declared using the \texttt{lang} key in the
+protocol's association list, at the end of a protocol.  For the
+certificate body example,
+\begin{quote}
+\begin{verbatim}
+(defprotocol cert basic
+  ...
+  (lang (cert-body (tuple 3))))
+\end{verbatim}
+\end{quote}
+adds one tupling operation so that the example above can be written as
+\begin{quote}
+\begin{verbatim}
+(cert-body dn serial-no pub-key)
+\end{verbatim}
+\end{quote}
+{\cpsa} represents this form internally as a sequence of messages with a
+distinguished mark.  This representation is more efficient as compared
+with the tagged concatenation representation.
+
+\begin{table}
+%\newcommand{\sym}[1]{\textup{\texttt{#1}}}
+\begin{center}\scshape
+\begin{tabular}{rcl}
+  lang&$\leftarrow$&(\sym{lang} ldecl$\ast$)
+  \\ ldecl&$\leftarrow$&(symbol+ kind)
+  \\ kind&$\leftarrow$&
+  $\sym{atom}\mid\sym{akey}\mid\sym{hash}\mid\mbox{(\sym{tuple}
+    integer)}$
+  \\ &$\mid$&$\sym{enc}\mid\sym{senc}\mid\sym{aenc}\mid\sym{sign}$
+\end{tabular}
+\end{center}
+\caption{Lang Field Syntax}\label{tab:lang field syntax}
+\end{table}
+
+The syntax of a \index{lang field}\texttt{lang} declaration is given
+in Table~\ref{tab:lang field syntax}.  There are eight kinds of ways
+that {\cpsa} algebras can be extended.
+
+\begin{itemize}
+
+\item An atomic sort is added to the algebra when a symbol is declared
+  to be of kind \texttt{atom}.  If \texttt{dollar} is declared to be
+  an atomic sort, then \verb|(price dollar)| in a \texttt{var} form
+  declares \texttt{price} to be of sort \texttt{dollar}.
+
+\item An atomic sort is also added to the algebra when a symbol is declared
+  to be of kind \texttt{akey}.  However, in addition to adding the
+  sort, {\cpsa} adds the equation $(x^{-1})^{-1}=x$ for variables of
+  the new sort.
+
+\item A unary operation is added to the algebra when a symbol is
+  declared to be of kind \texttt{hash}.  As with the default hash
+  operation, the adversary cannot extract the contents of the hash.
+
+\item An $n$-ary operation is added to the algebra when a symbol is
+  declared to be of kind (\texttt{tuple} $n$).  As with concatenation,
+ the adversary can construct and extract contents of tuples.
+ Constraint: $n>0$.
+
+\item A binary operation is added to the algebra when a symbol is
+  declared to be of kind \texttt{enc}.  As with the default encryption
+  operation, the adversary cannot extract contents of the encryption
+  without access to the inverse of the key.
+
+\item A symbol of kind \texttt{senc} is just like one of kind
+  \texttt{enc} except that the key supplied when it is applied must be
+  symmetric, that is, the sort of the key must not be asymmetric.
+
+\item A symbol of kind \texttt{aenc} is just like one of kind
+  \texttt{enc} except that the key supplied when it is applied must be
+  asymmetric, but not the inverse applied to an asymmetric key.
+
+\item A symbol of kind \texttt{sign} is just like one of kind
+  \texttt{enc} except that the key supplied when it is applied must be
+  the inverse applied to an asymmetric key.
+
+\end{itemize}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "cpsa4manual"
+%%% End:
diff --git a/doc/src/cpsa4manual/algorithm.tex b/doc/src/cpsa4manual/algorithm.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/algorithm.tex
@@ -0,0 +1,252 @@
+\chapter{The CPSA Search Algorithm}
+\label{ch:algorithm}
+
+The result of running the \texttt{cpsashape} tool is a file that
+contains only ``shapes'', which include all essential structures
+possible in executions of the protocol under the conditions input to
+the analysis.  Although this output contains the most important
+elements of the results of an analysis, it can be useful to an analyst
+to examine the full result.
+
+Consider analyzing a protocol that has a secrecy property you wish to
+guarantee.  After modeling the protocol, you model a set of conditions
+under which you expect the secrecy property to hold, but you include a
+listener that would invalidate it.  See Section~\ref{sec:blanchet} for
+an instance of the use of this technique.
+
+Suppose the analysis confirms the secrecy property.  This would mean
+that there are no shapes at all, because any shape would represent a
+possible way in which the conditions were present but the secret is
+revealed.  If you look only at the shapes file, you will see nothing
+other than the fact that no shapes are present.  The full analysis,
+however, can be used to understand the space of attacks that were
+explored, which gives a much clearer sense of \emph{why} the analysis
+resulted in no shapes.
+
+It is a complicated and somewhat unnatural process modeling a protocol
+and setting up the conditions for an analysis.  Human error is
+possible, and when a human error occurs, it is difficult for the
+analyst---most likely, the human that made the error in the first
+place---to distinguish a human error from a correct analysis result.
+
+By examining the full analysis carefully, the analyst may discover
+errors of two types: segments of the analysis that seem inconsistent
+with the intended scenario, or the \emph{lack} of analysis that the
+user expected to be present.  The first circumstance indicates an
+analysis that was \emph{under-constrained}, while the latter indicates
+one that was \emph{over-constrained}.  In order to detect errors of
+the second type, however, the analyst needs to understand the search
+algorithm.
+
+Another reason to understand the search algorithm is when the user has
+obtained an analysis that describes a genuine attack against a
+protocol.  By stepping through the path in the analysis that led to
+the shape in question, a user may gain an understanding of what
+features of the protocol allowed this attack to take place. This often
+leads to insights about how to repair the protocol and eliminate the
+attack.
+
+\section{Solving tests}
+\label{sec:tests}
+
+\index{skeleton!realized} A \emph{realized} skeleton is one in which
+every reception is explainable given the assumed restrictions on the
+attacker.  The attacker is capable of producing every basic value
+(that is, every possible value of the base sorts
+$\scap{data},\scap{text},\scap{name},\scap{akey},\scap{skey},$ and
+$\scap{rndx}$), except for those specifically withheld from the
+adversary.  The values withheld are the ones for which there is one of
+the following declarations present: \texttt{uniq-orig},
+\texttt{uniq-gen}, \texttt{non-orig}, or \texttt{pen-non-orig} (see
+Section~\ref{sec:secrecy_assumptions} for detail).
+
+In addition, the attacker observes all of the transmissions made in a
+skeleton.  The attacker is also capable of manipulating messages in
+certain specific ways -- these are the derivations present in
+Table~\ref{tab:basic_algebra_signature}.
+
+When a reception message can be constructed by the attacker from the
+basic values accessible to the attacker and the transmissions that
+occur prior to that reception, we say it is \emph{realized}, meaning
+that this reception can be explained.
+
+When a skeleton to be analyzed contains at least one unrealized node,
+one of these nodes is selected as the ``test node'', and the
+subsequent skeletons are determined based on four distinct strategies
+for resolving (or at least making progress at resolving) the problem
+at the test node.  The strategies focus on a \emph{critical term}, a
+sub-value of the reception value that is a specific problem for
+derivability.  The critical term may be a freshly generated value,
+which was generated by a regular participant but is subsequently found
+in a different message context than any in which it is known to have
+been transmitted.  It may also be an encrypted (or digitally signed)
+unit, which must be generated on some regular strand unless the
+generating key is compromised.  This inference builds in the
+assumption that cryptographic operators have an authentication value,
+as a symmetric encryption may be an authenticated encryption.  {\cpsa}
+always interprets an encryption operator as guaranteeing authenticity,
+unless the key is compromised.
+
+Only certain kinds of sub-values may be of interest as critical terms,
+specifically, those which are \emph{carried} \index{carried subterm}.
+The notion of a carried sub-term can be defined recursively: a term
+carries itself, a pair carries either of its components, and an
+encryption carries its plaintext.
+
+The four strategies are:
+
+\begin{itemize}
+
+\index{augmentation!regular}\index{regular augmentation}
+\item A \emph{regular augmentation}, which assumes the presence of an
+  additional transmission carrying the critical term, in an entirely
+  new strand,
+
+\index{displacement}
+\item A \emph{displacement}, which assumes the presence of an
+  additional transmission carrying the critical term, but in an
+  already existing strand,
+
+\index{contraction}
+\item A \emph{contraction}, which assumes that the critical issue
+  can be resolved with some more refined version of the current
+  transmissions that carry the critical value, and
+
+\index{listener augmentation} \index{augmentation!listener}
+\item A \emph{listener augmentation}, which assumes that some key
+  not known to be derivable is in fact derivable.
+
+\end{itemize}
+
+When examining a skeleton and one of its children in full {\cpsa}
+analysis it is often simple to determine which sort of strategy was
+used.  If a child has one more strand than its parent then it was
+produced by either augmentation (if the extra strand is a role
+instance) or listener augmentation (if the extra strand is a
+listener).  If a child has the same number of strands but additional
+nodes, it is the result of a displacement.  When a child has the same
+number of nodes and strands, it may be the result of a displacement or
+a contraction, but either way the only thing that has changed is a
+map of terms.
+
+\section{Flawed Kerberos, revisited}
+\label{sec:kerberos2}
+In Section~\ref{sec:kerberos}, we worked through an example -- a
+flawed version of the Kerberos protocol.  The first attempt at
+modeling the protocol was flawed in a way that would prevent the tool
+from discovering the attack against the protocol.
+
+\index{Kerberos protocol}
+\index{examples!Kerberos}
+See Figure~\ref{fig:kerb-flawed defprotocol} for the flawed model of
+the protocol.  Recall that the initiator is $a$, the server is $s$,
+and the responder is $b$.  See Figure~\ref{fig:kerb-flawed2
+  defprotocol} for the corrected model; the difference is that in the
+corrected version, the initiator uses a variable of sort $\scap{mesg}$
+to represent the ticket the initiator receives, since the initiator is not
+able to check the internal format of the ticket.
+
+\subsection{The operation field}
+\label{sec:operation}
+\index{operation field} Examining the full {\cpsa} analysis is
+essential to detecting the mistake.  Each skeleton has an
+\texttt{operation} field describing how it was derived from its
+parent, with one exception: when the input skeleton does not meet all
+the requirements for a skeleton, the first child will be the minimal
+skeleton incorporating the input.
+
+In \texttt{kerb.xhtml}, tree 0 is the flawed model.  Item 0 is the input
+point of view and Item 1 is the completion of that input into a
+skeleton; notice that the skeleton below Item 1 has no S-expression of
+the form \texttt{(operation ...)} in it.
+
+\ttindex{added strand} Item 2 is a child of Item 1 that adds a key
+server instance.  This was a regular augmentation, because a new
+protocol role instance was added.  The operation field will include
+\texttt{added-strand} whenever the skeleton was produced by regular
+augmentation.  The full operation field in Item 2 is:
+
+\begin{center}
+\verb|(operation encryption-test (added-strand keyserv 2)|\\
+\verb|        (enc k n (ltk a s)) (0 1))|
+\end{center}
+
+The first argument to the operation field is the general type of
+operation performed.  Typically this will be one of the following
+three possibilities:
+
+\begin{itemize}
+\item \texttt{encryption-test} indicates that the critical term at the
+  test node was an encryption.
+\item \texttt{nonce-test} indicates that the critical term at the test
+  node was an atom, not an encryption.
+\item \texttt{generalization} indicates that the skeleton was realized
+  and the tool is trying to make it more general without making it
+  unrealized.
+\end{itemize}
+
+The second argument describes the operation; here, the operation is
+\texttt{added-strand} (regular augmentation), where the new instance
+is an instance of \texttt{keyserv} and is of length 2.  The third
+argument is the criticial term; here it was \texttt{(enc k n (ltk a s))},
+the portion of the server's message intended for the initiator.  The
+last argument is a node, normally the test node, so in this case, the
+\texttt{(0 1)} refers to strand 0, node 1 -- the second node of the
+initiator strand in Item 1.
+
+Returning to our example, Item 2's critical term is the encryption
+$\enc{k,n}{SK(a,s)}$.  The regular augmentation creates a new
+transmission of that encryption in some carried form; in this case, it
+is a transmission by the key server.  Note that the key server
+instance in Item 2 agrees with the initiator on $a$ but not on $b$.
+
+See Figure~\ref{fig:kerb-skel3} for Item 3 in the analysis.  It is
+this step at which the analyst should notice there was a mistake of
+some sort.  If the analyst is trying to understand why it should be
+impossible for the secret $m$ to leak, thus far the reasoning is that
+if the initiator proceeds to its third event, there is a key server
+that agreed with the initiator on $a, s$, and $n$.  But since the
+second initiator node is red, this indicates there is still something
+unexplained in the execution.
+
+\begin{figure}
+\begin{center}
+\includegraphics[scale=0.8]{kerb_skel3_operation_circled}
+\end{center}
+\caption{Flawed Kerberos key moment in analysis}
+\label{fig:kerb-skel3}
+\end{figure}
+
+The operation field of Item 3 is telling:
+
+\begin{center}
+\verb|(operation encryption-test (displaced 3 2 keyserv 2)|\\
+\verb|        (enc k a b-0 (ltk b-0 s)) (0 1))|
+\end{center}
+
+The critical term here is the encryption $\enc{k,a,b0}{K(b0,s)}$.
+Thus, the ticket portion of the initiator's reception is driving this
+step in the analysis.\footnote{Note that the specific encryption
+  $\enc{k,a,b0}{K(b0,s)}$ is not actually present in Item 2 or in Item
+  3, it is a side effect of the internal way {\cpsa} represents
+  variables and determines how to display them.  Still, only the
+  ticket portion of the node \texttt{(0 1)} is of this kind of format,
+  so the conclusion in the text is correct.}  After the displacement
+(which, you may notice, adds no new nodes), the key server agrees with
+the initiator on $b$.
+
+In other words, the tool reasons first that the presence of the
+``authenticator'' portion of the reception guarantees there is a key
+server instance that believes it is responding to a request initiated
+by $a$, but may or may not believe the request initiated by $a$ was
+for communicating with $b$.  The ticket portion makes the guarantee,
+but that's strange because the ticket is for $b$ and not $a$ to
+examine.  To believe this reasoning implies that the initiator really
+is checking the format of the ticket, which the analyst should realize
+is not the way the protocol is intended to work.
+
+If you next examine the properly modeled protocol, you will find that
+Items 5, 6, and 7 follow a very similar path.  Item 6 makes Item 5 into
+a skeleton, while Item 7 adds a key server instance in which the key
+server agrees with the initiator on $a$ but not on $b$.  But Item 7 is
+a realized skeleton, while Item 2 is not realized.
diff --git a/doc/src/cpsa4manual/basic.tex b/doc/src/cpsa4manual/basic.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/basic.tex
@@ -0,0 +1,725 @@
+\chapter{Basic Protocol Modeling and Analysis with CPSA}
+\label{ch:basic}
+
+This chapter is designed to be a tutorial for a new user with access
+to the tool, but totally unfamiliar with the ideas behind it.  We will
+explain the basics of the tool while stepping through an example input
+and its output.  Input \emph{and output} for the examples in this
+chapter and in other chapters are included in the distribution.
+Explorations are included for readers to build their understanding of the
+tool through experience.  If you are a new user but do not intend to
+work through the explorations, we recommend that you at least copy the
+input files and run the tool yourself to check that you can produce
+outputs mirroring those in the distribution.
+
+\index{Needham-Schroeder}
+\index{examples!Needham-Schroeder}
+The first protocol we discuss is the Needham-Schroeder protocol for
+establishing key transport over insecure networks.  The protocol has
+two participants: an \emph{initiator} $a$ and a \emph{responder} $b$.
+The intention is for the following interaction to take place:
+
+\begin{enumerate}
+\item $a$ picks a fresh, random nonce $n_1$ and encrypts a message
+  containing $n_1$ and $a$'s name under $b$'s public encryption key,
+  and sends the result to $b$.
+
+\item $b$, on receiving such a message, picks a fresh random nonce
+  $n_2$ and encrypts a message containing $n_1$ and $n_2$ under $a$'s
+  public encryption key, and sends the result to $a$.
+
+\item $a$, on receiving this reply, encrypts $n_2$ under $b$'s public
+  encryption key and sends the result to $b$.
+\end{enumerate}
+
+The intention is that $a$ and $b$ should have authenticated each
+other (that is, that $a$ is communicating with $b$ and vice versa) and
+that the pair of nonces establish a unique session of such
+authentication.  The nonces should also be unreadable by the network
+adversary, so that they can be used to create a session key between
+$a$ and $b$.
+
+This protocol has a well known but non-obvious flaw discovered by
+Lowe~\cite{Lowe96a} that {\cpsa} can discover automatically.
+
+\section{Basic CPSA modeling}
+\label{sec:basic}
+
+\index{model}
+In order to use {\cpsa} on this protocol,
+we must first understand some basics about how {\cpsa} models protocols
+and messages.
+
+Since {\cpsa}'s aim is to analyze protocols in the presence of a
+powerful network attacker, we equate the network with the attacker,
+and do not model the notion of addressing of messages.  The
+description provided above for Needham-Schroeder describes messages
+that (for instance) $a$ sends to $b$.  In {\cpsa}, we ignore the
+intended recipient because the attacker is free to ignore it.
+
+The protocol can be thought of as made up of the roles that entities
+can play during the protocol.  In the case of Needham-Schroeder, there
+are two: the initiator and the responder.  These roles describe the
+sequence of message-related events each party observes during the
+protocol.  The events are described by giving a formula for the format
+of each message, along with an indiciation whether each event is a
+reception of a message or a transmission of one.
+
+Messages in {\cpsa} are represented as formally structured objects,
+specifically as terms in an order-sorted
+algebra~\cite{GoguenMeseguer92}.  Terms are either variables or
+functional outputs of simpler terms.  Variables have types called
+\emph{sorts}, and function symbols have specific signatures that
+specifies the sorts of each input and the sort of the output.  The
+roles of Needham-Schroeder are given in Figure~\ref{fig:ns roles}.
+
+\begin{figure}
+\begin{center}
+\[\xymatrix{
+\textit{init}\ar[r]\ar@{=>}[d]&\enc{n_1, a}{K_b}&\enc{n_1,a}{K_b}\ar[r]&\textit{resp}\ar@{=>}[d]\\
+\bullet\ar@{=>}[d]&\enc{n_1, n_2}{K_a}\ar[l]&\enc{n_1, n_2}{K_a}&\bullet\ar[l]\ar@{=>}[d]\\
+\bullet\ar[r]&\enc{n_2}{K_b}&\enc{n_2}{K_b}\ar[r]&\bullet}\]
+\end{center}
+\caption[Needham-Schroeder roles]{Needham-Schroeder initiator and responder roles}
+\label{fig:ns roles}
+\end{figure}
+
+\index{message algebra}
+\index{role}
+\index{protocol}
+\index{encryption!function symbol}
+\index{pairing function symbol}
+\index{key-of function symbol}
+The messages in these roles are built from variables ($n_1, n_2, a,
+b$) and function symbols; the three function symbols used in this
+protocol are encryption, pairing, and the ``key of'' function.
+
+$\enc{m}{k}$ denotes the encryption of message $m$ under encryption
+key $k$.  In {cpsa}, encryption operators are always regarded as
+offering authenticated encryption, meaning that a participant without
+access to an encryption key is overwhelmingly unlikely to generate a
+message that can be successfully descrypted.  This property is
+primarily relevant in symmetric (secret-key) kinds of encryption.
+
+Terms in a pair are represented in comma-separated lists.  And $K_a$
+denotes the result of the ``key of'' function symbol on input $a$.
+This represents the public key (either an encryption key or a
+signature verification key) of $a$.  The values $n_1$ and $n_2$ are of
+a different sort than $a$ and $b$: the latter are names to which the
+$K_{(\cdot)}$ function can be applied, while $n_1$ and $n_2$ are
+simple values.
+
+\index{skeleton}
+\index{instance}
+In addition to a description of the protocol, {\cpsa} expects the
+description of a what we call a \emph{skeleton}---a partial protocol
+execution.  A skeleton is made up of \emph{instances} of the roles, that is,
+viewpoints of honest parties, along with what values are associated with the
+variables in those viewpoints.  These viewpoints may be partial, but they
+always represent a prefix of a full role.
+
+\section{CPSA input}
+
+\index{file extensions!.scm} The \texttt{ns.scm} file in the examples
+directory contains a protocol description for Needham-Schroeder and
+two skeletons: one representing the viewpoint of a completed
+initiator, and one representing the viewpoint of a completed
+responder.  The \texttt{.scm} extension used for {\cpsa} input files
+refers to the Scheme programming language, which is a language derived
+from Lisp.  This allows the user to make use of an IDE or text editor
+that knows about Scheme syntax, for ease of editing input files.  The
+{\cpsa} tool itself does not require any particular extension, but
+auxiliary tools may, including the \texttt{Make.hs} program described
+in Section~\ref{sec:running}.
+
+\ttindex{defskeleton} \ttindex{defprotocol} The input file for
+Needham-Schroeder contains comments found on lines beginning with `;',
+and four top-level S-Expressions: a \texttt{herald}, a \texttt{defprotocol},
+and two \texttt{defskeleton}s.  We will describe heralds in
+Section~\ref{sec:heralds}; ignore them for now.
+
+The \texttt{defprotocol} S-expression describes and names a protocol,
+while the \texttt{defskeleton} describes a skeleton, referencing a
+particular protocol.  A portion of the Needham-Schroeder
+\texttt{defprotocol} is reproduced in Figure~\ref{fig:ns defprotocol}
+for ease of reference.
+
+\begin{figure}
+\begin{center}
+\begin{tabular}{l}
+\verb|(defprotocol ns basic|\\
+\verb|  (defrole init|\\
+\verb|    (vars (a b name) (n1 n2 text))|\\
+\verb|    (trace (send (enc n1 a (pubk b)))|\\
+\verb|           (recv (enc n1 n2 (pubk a)))|\\
+\verb|           (send (enc n2 (pubk b))))|\\
+\verb|  (defrole resp| \ldots\texttt{))}
+\end{tabular}
+\end{center}
+\caption{Needham-Schroeder \texttt{defprotocol}}
+\label{fig:ns defprotocol}
+\end{figure}
+
+\index{Algebra} A \texttt{defprotocol} S-expression starts with a protocol
+name, \texttt{ns} in this case, followed by the name of a message
+algebra.  The \texttt{basic} algebra contains enough elements to
+describe Needham-Schroeder and most simple examples; the only other
+algebra contained in the {\cpsa} distribution is
+\texttt{diffie-hellman}; see Chapter~\ref{ch:algebra}, and
+specifically Section~\ref{sec:dh}, for details of the Diffie-Hellman
+algbera.
+
+\ttindex{defrole} The rest of the \texttt{defprotocol} S-expression is
+a sequence of roles, each defined by a \texttt{defrole} S-expression.
+In our example, there are two roles, and thus two \texttt{defrole}s,
+the first defining the initiator role (\texttt{init}) and the latter
+describing the responder role (\texttt{resp}).
+
+\ttindex{vars} \ttindex{trace} \ttindex{send} \ttindex{recv} The first
+input to a \texttt{defrole} is a role name; the second should be a set
+of variable declarations (\texttt{vars}), and the third should be a
+\texttt{trace} declaration which describes the event sequence of the
+role.  The variable declarations define and give types to the
+variables used in the role's trace.  The \texttt{trace} S-expression
+defines the list of events: a \texttt{recv} S-expression describes a
+reception and \texttt{send} describes a transmission.
+
+\ttindex{enc} \ttindex{pubk} \ttindex{cat} Function symbols in the
+{\cpsa} message algebra have specific S-expressions associated with
+them.  \texttt{enc} denotes an encryption, \texttt{cat} denotes a
+pair, and \texttt{pubk} denotes the ``key of'' function.  You may
+notice that \texttt{cat} does not occur in the figure: this is because
+its use is hidden by ``syntactic sugar''---a convenient shortcut in
+the syntax.  The message \texttt{(enc n1 a (pubk b))} is more properly
+the encryption of the pair $(n_1, a)$ under the key $K_b$, but when an
+\texttt{enc} S-expression is given more than two inputs, it is assumed
+that all but the last are concatenated together using pairs.
+
+\begin{figure}
+%\begin{center}
+\centering
+\begin{tabular}{l}
+\verb|(defskeleton ns|\\
+\verb|  (vars (b name) (n1 text))|\\
+\verb|  (defstrand init 3 (b b) (n1 n1))|\\
+\verb|  (non-orig (privk b))|\\
+\verb|  (uniq-orig n1))|
+\end{tabular}
+%\end{center}
+\caption{Initiator point of view}
+\label{fig:ns init pov}
+\end{figure}
+
+\begin{figure}
+%\begin{center}
+\centering
+\begin{tabular}{l}
+\verb|(defskeleton ns|\\
+\verb|  (vars (a name) (n2 text))|\\
+\verb|  (defstrand resp 3 (a a) (n2 n2))|\\
+\verb|  (non-orig (privk a))|\\
+\verb|  (uniq-orig n2))|
+\end{tabular}
+%\end{center}
+\caption{Responder point of view}
+\label{fig:ns resp pov}
+\end{figure}
+
+In Figures~\ref{fig:ns init pov} and~\ref{fig:ns resp pov}, we
+reproduce the skeletons described in our example input file.  A
+\texttt{defskeleton} S-expression includes first of all a protocol
+name, then variable declarations, and then a list of instances, most
+of which are defined by the \texttt{defstrand} S-expression.  A
+defstrand includes an input specifying the name of the role the strand
+is an instance of, as well as a height, that is, a number of the
+events (\texttt{send} / \texttt{recv}) in the role that are to be
+reflected in the instance, starting from the first event.  In our
+example input, each \texttt{defskeleton} includes one
+\texttt{defstrand}, which defines an instance of height 3 since that
+refers to a full execution of either role in the protocol.  A
+\texttt{defstrand} S-expression may optionally include
+\index{maplet}\emph{maplets} that specify values to be used to
+instantiate variables in the role specification.  A maplet is a
+parentheses-delimited pair where the first element is the name of the
+role variable to be instantiated and the second is the value, which
+can be any term formed over the variables declared in the
+\texttt{vars} portion of the \texttt{defskeleton}.
+
+\index{non-orig} \index{uniq-orig} A \texttt{defskeleton} will usually
+have one or more \emph{declarations} in it that restrict the class of
+executions the tool is to explore.  Here, each example includes two
+declarations: one \texttt{non-orig} declaration and one
+\texttt{uniq-orig} declaration.  Declarations must be made about
+expressions that can be parsed given the variables in the
+\texttt{defskeleton}; it is because of these declarations that we
+specify an instantiation of certain variables in a \texttt{defstrand}.
+
+A \texttt{non-orig} declaration specifies a value (usually a symmetric
+or private key) as secret and never sent by honest parties in any
+potentially decryptable form.  A \texttt{uniq-orig} declaration
+specifies a value as being randomly and freshly chosen where it first
+occurs in a transmission.  Here, the initiator point of view specifies
+two assumptions: that the initiator picks her own nonce properly
+(i.e. randomly), and that the initiator's intended communication
+partner has an uncompromised private key.  Similarly, the responder's
+point of view assumes that the the responder picks his own nonce
+properly and that his intended partner has an uncompromised private
+key.
+
+\section{CPSA output}
+
+When we run the {\cpsa} tool on the Needham-Schroeder input file, and
+then run the \texttt{cpsagraph} graphing tool on the result, we obtain
+a .xhtml file that can be viewed in a web browser.  The
+\texttt{ns.xhtml} file in the examples directory contains these
+results.
+
+\index{graphing} The graphing output contains some top matter that
+includes the herald from the input file.  Below this is a list of
+trees, each
+of which represents the analysis of one of the input
+\texttt{defskeleton}s; in the case of our example, there are two
+trees.
+
+The rest of the graph output consists of the search results.  The
+numbers in the list of trees link to the start of each tree.  Each
+search result starts with an identification (``Tree 0'' in the
+example), followed by a graph of the search, then the
+\texttt{defprotocol} used in that search, and then the skeletons
+considered by {\cpsa} during its analysis.  Figure~\ref{fig:ns init
+  search tree} illustrates the list of trees, the tree identification,
+and that tree's search graph.
+
+\begin{figure}
+\centering
+\includegraphics[scale=0.8]{ns_search_tree}
+\caption[Needham-Schroeder search tree]{Search tree diagram for the
+  initiator point of view in \texttt{ns.xhtml}}
+\label{fig:ns init search tree}
+\end{figure}
+
+The search tree diagrams the steps in the search.  Each skeleton in
+the entire graph file has a \index{label} label, a number starting
+from 0.  The number associated with a tree is the label number of the
+input skeleton.  The left edge of the search graph is the root of the tree:
+in the case of Figure~\ref{fig:ns init search tree}, the graph does
+not look very tree-like because the analysis doesn't branch.  The
+numbers in the graph are the \index{label}labels of the skeletons
+considered by {\cpsa} during its analysis, and clicking on a number
+will direct the browser to display the corresponding skeleton.
+
+The process by which {\cpsa} analyzes a skeleton is the repeated use
+of an operation called the \index{cohort}\emph{cohort}, which takes an
+input skeleton and produces a set of more refined skeletons that cover
+all the possible executions the input skeleton covered.  The
+relationship between a parent skeleton and a child is that a child is
+included in the cohort calculated with the parent as an input.
+
+\index{search tree}\index{search tree!colors} Numbers are normally
+displayed in black, but may also be displayed in other colors.  Blue
+numbers represent \emph{realized} skeletons, that is, skeletons that
+may represent an actual execution.\footnote{Note that while realized
+  skeletons already represent complete executions, \cpsa does further
+  analysis once a realized skeleton is reached in order to
+  \emph{generalize} that skeleton as much as possible.  A skeleton
+  that is both realized and cannot be further generalized is a
+  \index{shape}\emph{shape}.  See page \pageref{anchor:generalization}
+  for more detail on generalization.}  Red numbers represent
+\emph{dead} skeletons, that is, skeletons that represent partial
+executions that are not part of any actual execution -- in other
+words, impossible scenarios.
+
+\index{skeleton!realized}\index{skeleton!dead} Numbers may occur in
+the tree more than once, because it is possible that {\cpsa} will
+discover a particular skeleton through more than one branch of the
+analysis.  Green, italicized numbers represent skeletons present in
+more than one branch that are not dead skeletons, while orange
+italicized numbers represent dead skeletons present in more than one
+branch.
+
+Each skeleton starts with a line that indicates its label
+(\texttt{item}) and the labels of its parent ((\texttt{parent}), if
+any) and its children ((\texttt{child}), if any) See Fig.~\ref{fig:ns
+  skel1}) The parent and child numbers link to those skeletons, while
+the ``item'' number links back to the tree this skeleton is part of.
+
+\begin{figure}
+\centering
+\includegraphics[height=7in]{ns_skel1_cursor}
+\caption[Needham-Schroeder skeleton]{Skeleton from the initiator point
+  of view in \texttt{ns.xhtml}}
+\label{fig:ns skel1}
+\end{figure}
+
+Below the diagram is a \texttt{defskeleton} that fully describes the
+skeleton.  This text is fully compatible with {\cpsa} input and can be
+used as a skeleton input for analysis with this protocol, although
+some of the fields in it are added by {\cpsa} and would be ignored
+during input, for instance, the \texttt{label} and \texttt{parent}
+fields.
+
+The diagram shows the skeleton as a graph.  Strands are columns,
+ordered from top to bottom.  The nodes in the graph are events,
+normally transmissions or receptions of messages.  Nodes may be blue,
+red, or black; a black node represents a transmission, while blue and
+red nodes represent receptions.  A blue node represents an explainable
+reception while a red node represents an unexplainable one.  The
+left-most strands in a skeleton are normally the strands from the
+input \texttt{defskeleton}.
+
+\index{tooltip!skeleton node} The user may hover their mouse cursor
+over any node and will see a display of the S-expression describing
+the message at that event (see Figure~\ref{fig:ns skel1}). Here, if we
+hover over the red node (as shown) we will see that this is an event where the
+initiator receives the message $\enc{n1, n2}{K_a}$.  This occurs after
+two transmissions: the first event in the init strand and the second
+in the resp strand.  Those two transmissions are $\enc{n1, a}{K_b}$
+and $\enc{n1, n2_0}{K_a}$.  Neither transmission is the expected
+message, but sometimes a reception can be explained even if no regular
+node sends the exact message.  Here, it is a question of what the
+adversary can build given the messages available.  In this skeleton
+there are \texttt{non-orig} or \texttt{uniq-orig} assumptions about
+$n1, SK_a$, and $SK_b$, so since both messages are encrypted under
+keys for which we have a secrecy assumption on the decryption key, the
+adversary is unable to decrypt them.  The adversary is also unable to
+build the required message: although the adversary is allowed access
+to $n2$ and $K_a$ (since there are no restrictions on those), the
+adversary does not have access to $n1$.  Hence, this node is
+unexplainable.
+
+Arrows in the diagram represent basic orderings in the skeleton;
+arrows go from earlier events to later events.  An arrow is solid when
+it goes from an event transmitting a message to one receiving the same
+message. So the blue node in this example is obviously explained
+because the exact message was transmitted by the initiator,
+specifically, at the first node in the initiator strand.  The arrow
+ending at the red node is dashed because the messages do not agree,
+but it still represents that in this skeleton the second node of the
+responder strand occurs before the second node of the initiator strand.
+
+\section{Interpreting shapes}
+
+Next, we turn our attention to Figure~\ref{fig:ns init shape}, which
+is the one shape found by {\cpsa} during the search on the initiator
+point of view.
+
+\begin{figure}
+\centering
+\includegraphics[height=7in]{ns_skel2_cursor}
+\caption[NS shape, initiator point of view]{The only shape from the
+  initiator point of view (\texttt{ns.xhtml})}
+\label{fig:ns init shape}
+\end{figure}
+
+Before we get into detail on what is contained in this skeleton, note
+the graph.  All the arrows are solid, and there are arrows everywhere
+we expect them to be.  This describes a message being sent by an
+initiator and received, unaltered, by a responder, who then sends a
+message that is received, again unaltered, by the same initiator, who
+then sends a message.
+
+\index{tooltip!instance} The user can hover their mouse cursor over
+the name of the role at the top of a strand in the skeleton diagram to
+see the variable assignment used in that instance.  Here, hovering
+over both the instances indicates that they are in agreement about the
+values of $n1, n2, a$, and $b$: that is, the initiator's internal
+value for each variable is the same as the responder's internal value
+for the variable of the same name.
+
+It may seem slightly odd that the initiator sends a message in its
+third node that is not received by anyone, but we know that in general
+it need not be received.  The adversary completely controls the network,
+so it does not have to deliver that message.
+
+\paragraph{The responder's point of view.}
+The shape found during the search on the \emph{responder's} point of
+view, however, includes something unusual.  See Figure~\ref{fig:ns
+  resp shape}.
+
+\begin{figure}
+\centering
+\includegraphics[scale=0.9]{ns_skel4}
+\caption[NS shape for responder point of view]{The only shape in the
+  responder point of view search in \texttt{ns.xhtml}}
+\label{fig:ns resp shape}
+\end{figure}
+
+The graph of this shape should look less like expected behavior.  Two
+things look odd, even at first glance.  Most noticeable is the dashed
+arrow from the third initiator node to the third responder node.
+Also, there's the fact that there is a blue node (the one in the top
+left) that does not have any arrow coming in.
+
+Inspection of the instances in this shape reveals that the initiator
+and responder agree on all the values except for $b$.  This explains
+the dashed arrow: the initiator sends $\enc{n2}{K_{b_0}}$ but the
+responder receives $\enc{n2}{K_b}$; these messages are not the same,
+which is why the arrow is not solid.  As for how the responder could
+receive the proper value, note that we only assumed $SK_a$ and $SK_b$
+are secure, but we did not assume $SK_{b_0}$ was secure.  It would have
+been hard to do so, since $b0$ is a value we know nothing about from
+the initiator's point of view. The initiator's transmission of
+$\enc{n2}{K_{b_0}}$ thus does not protect $n2$ from decryption, so an
+attacker could have created the responder's received message by
+encrypting $n2$ under $K_b$.
+
+The lack of an incoming arrow for the responder's first node can be
+explained because of the lack of any assumption about the value $n1$.
+The value $n1$ is the initiator's nonce, but this analysis does not
+assume that an initiator, if present, will choose their nonce
+properly.  So $n1$ could actually be a value already chosen by the
+adversary, and the message $\enc{n1,a}{K_b}$ can be constructed and
+delivered to the responder before the initiator even starts.
+
+The fact that the initiator and responder do not agree on $b$ is an
+interesting feature of this protocol.  We know from the initiator's
+point of view that the initiator $a$, when they have completed their
+execution, can infer that $b$ has taken part in the responder role
+with $a$, and that they agree on both nonces.
+
+The responder's point of view leads to less information.  The
+responder $b$ knows that $a$ has taken part in the initiator role, but
+does not know that $a$ intended to initate communication with $b$.
+This lets us conclude that the Needham-Schroeder protocol provides
+less than an ideal level of authentication.
+
+\index{Lowe attack}
+\index{Needham-Schroeder-Lowe protocol}
+\begin{exercise}
+  The attack described above was first identified by Gavin
+  Lowe~\cite{Lowe96a}, who also proposed a fix, namely, to have the
+  second message in the Needham-Schroeder protocol include the name
+  $b$ of the responder.
+
+Make a copy of the Needham-Schroeder input file and modify the
+protocol so that the second message (in both roles) includes a $b$.
+Run the analysis again and graph it.  You should observe that the
+disagreement on $b$ from the responder's point of view is no longer
+possible, and that the initiator's point of view is still good.
+\end{exercise}
+
+\section{Blanchet's simple example protocol}
+\label{sec:blanchet}
+
+\index{Blanchet protocol} \index{examples!Blanchet} Next we turn our
+attention to a second protocol, which will help build the reader's
+experience with {\cpsa} and also introduce some additional features.
+This protocol is due to Bruno Blanchet, and has a flaw introduced by
+design for the purpose of discussing protocol analysis.  In this
+protocol there are again two participants: an initiator and a
+responder.  However, in this protocol, we do not use names, just
+public keys.  Specifically, one party has a public signing key ($a$),
+while the other has a public encryption key ($b$).
+
+The protocol is as follows, informally:
+
+\begin{itemize}
+
+\item The initiator chooses a fresh, random session key $s$, signs it
+  with their private signing key (corresponding to the public key
+  $a$), and encrypts it with the responder's public key $b$ and sends
+  the result to the responder.
+
+\item The responder receives and decrypts such a message, confirms the
+  signature, and then encrypts a piece of data $d$ under $s$ and sends
+  this back to the initiator.
+\end{itemize}
+
+The file \texttt{blanchet.scm} in the examples directory contains
+Blanchet's simple example protocol described above.  See
+Figure~\ref{fig:blanchet defprotocol} for the protocol declaration.
+
+\begin{figure}
+\centering
+\begin{tabular}{l}
+\verb|(defprotocol blanchet basic|\\
+\verb|  (defrole init|\\
+\verb|    (vars (a b akey) (s skey) (d data))|\\
+\verb|    (trace (send (enc (enc s (invk a)) b))|\\
+\verb|           (recv (enc d s)))|\\
+\verb|    (uniq-orig s))|\\
+\verb|  (defrole resp|\\
+\verb|    (vars (a b akey) (s skey) (d data))|\\
+\verb|    (trace (recv (enc (enc s (invk a)) b))|\\
+\verb|           (send (enc d s)))|\\
+\verb|    (uniq-orig d)))|
+\end{tabular}
+\caption{The Blanchet simple example protocol}
+\label{fig:blanchet defprotocol}
+\end{figure}
+
+\ttindex{akey} \ttindex{skey} \ttindex{data} There are several
+elements of this protocol input that are new.  First of all, the
+Needham-Schroeder protocol used only two types: \texttt{name} and
+\texttt{text}, while this protocol uses three new types.  The
+\texttt{data} type is for simple values, much like \texttt{text}.  In
+fact, the two types are interchangeable, but both are available for
+cases where an analyst may wish to describe a protocol in which two
+types of simple values exist that cannot be confused for each other.
+
+The \texttt{akey} and \texttt{skey} types are for keys, specifically,
+asymmetric and symmetric keys, respectively.  The \texttt{invk}
+function symbol maps an asymmetric key to its inverse.
+
+\index{signatures} Note that we use \texttt{(enc s (invk a))} to
+represent the digital signature.  A digital signature in the {\cpsa}
+message algebra is represented as an encryption under the signature
+key.
+
+\index{role declarations} A third feature is the presence of a
+delcaration such as \texttt{(uniq-orig s)} within a
+\texttt{defrole}.  Like the \texttt{uniq-orig} declaration that can
+appear in a skeleton, this declaration indicates that the value
+contained inside is freshly chosen.  When this declaration appears in
+the role, however, the assumption is that the value is freshly chosen
+by \emph{every} honest participant in the protocol who plays that
+role.  Declarations present in a role are inherited by every skeleton
+with an instance of that role.  See Chapter~\ref{ch:declarations} for
+more on the declarations supported by \cpsa.
+
+\begin{exercise}
+Make a variant of the Needham-Schroeder protocol in which the
+freshness of each party's nonce is assumed via a \texttt{uniq-orig}
+declaration in the protocol role.  Run the analysis from each
+participant's point of view.  What differs in the shapes, and why?
+(There should be one difference that's noticeable in the graph of one
+of the shapes.)
+\end{exercise}
+
+\begin{exercise}
+Make a variant of the Needham-Schroeder protocol in which the secrecy
+of each party's partner's private key is assumed via a
+\texttt{non-orig} declaration in the protocol role.  Run the analysis
+from each participant's point of view.
+
+You should observe that the authentication failure is no longer
+present in the shape from the analysis of the responder's viewpoint.
+What conclusion can you draw about this declaration?  Did we fix the
+protocol?  If not, why does the analysis seem to contain no flaws?
+\end{exercise}
+
+The \texttt{blanchet.scm} file contains four inputs to the analysis.
+The first and second are just the points of view of each participant,
+under typical assumptions.  But the third and fourth contain another
+new element.  See Figure~\ref{fig:blanchet pov3-4} for these two
+inputs.
+
+\begin{figure}
+\centering
+\begin{tabular}{l}
+\verb|(defskeleton blanchet|\\
+\verb|  (vars (a b akey) (s skey) (d data))|\\
+\verb|  (defstrand init 2 (a a) (b b) (s s) (d d))|\\
+\verb|  (deflistener d)|\\
+\verb|  (non-orig (invk b)))|\\\\
+\verb|(defskeleton blanchet|\\
+\verb|  (vars (a b akey) (s skey) (d data))|\\
+\verb|  (defstrand resp 2 (a a) (b b) (s s) (d d))|\\
+\verb|  (deflistener d)|\\
+\verb|  (non-orig (invk a) (invk b)))|\\\\
+\end{tabular}
+\caption{Blanchet points of view}
+\label{fig:blanchet pov3-4}
+\end{figure}
+
+\ttindex{deflistener}\index{listener} These two inputs are prepared to
+ask a confidentiality question: specifically, is the value $d$ exposed
+to the adversary?  A \emph{listener} is a pseudo-role that is
+considered part of all protocols by {\cpsa}.  That role consists of
+receiving some arbitrary message and then sending that same message.
+Listeners can show up in {\cpsa} analyses, in order to handle a case
+where a certain value is learnable, so that the rest of the case
+breakdown can assume that value is not learnable.
+
+\index{skeleton!dead}
+In this protocol, the secret data $d$ remains private in the
+initiator's point of view.  Figure~\ref{fig:blanchet tree 6} shows the
+search tree for the point of view in which the initiator completes the
+protocol and in which there is a listener for the same $d$ value the
+initiator hears.  The fact that all the numbers are red here indicates
+that all the skeletons in the search are ``dead'', meaning that they are
+inconsistent with any actual executions.  In other words, there are no
+executions in which $d$ is revealed given our assumption that the private
+decryption key of $b$ is not compromised.
+
+However, $d$ does not remain private in the responder's point of view.
+Figure~\ref{fig:blanchet skel 13} shows the graph of a shape for the
+point of view in which the responder completes the protocol and in
+which there is a listener for the $d$ value the responder sends.  Note
+that although $d$ is encrypted under $s$, and $s$ is freshly chosen by
+an initiator, the shape shows that $s$ can leak.  We are not
+guaranteed that the initiator and responder agree on $b$.  Therefore,
+the initiator may have sent $s$ encrypted with $b_0$, and since the
+private key corresponding to $b_0$ is not necessarily secret, $s$ may
+leak.
+
+\begin{figure}
+\centering
+\includegraphics{blanchet_tree6}
+\caption[Blanchet privacy search tree]{The search tree for the privacy
+  of $d$ in the initiator's point of view in \texttt{blanchet.xhtml}}
+\label{fig:blanchet tree 6}
+\end{figure}
+
+\begin{figure}
+\centering
+\includegraphics[scale=0.9]{blanchet_skel13}
+\caption[Blanchet shape for responder's point of view]{The only shape
+  in the analysis for the responder's point of view with a listener
+  for $d$ in \texttt{blanchet.xhtml}.  The second strand, with no role
+  name, is the listener. }
+\label{fig:blanchet skel 13}
+\end{figure}
+
+The \texttt{blanchet.scm} file also contains a second protocol with
+the name \texttt{blanchet-corrected} in which the flaw that allows $d$
+to be learned in the responder's point of view is eliminated.
+
+\begin{exercise}
+  Modify the Blanchet protocol to add a role that is identical to the
+  initiator role, except that $s$ is not declared \texttt{uniq-orig}.
+  What impact does this have on the analyses?
+\end{exercise}
+
+\begin{exercise}
+  If you modify the Blanchet protocol to instead add a role that is
+  identical to the responder role, except that $d$ is not declared
+  \texttt{uniq-orig}, what impact do you believe this will have on the
+  analyses?  Make a prediction, then check your prediction.
+\end{exercise}
+
+\begin{exercise}
+\label{ex:noroledecls_blanchet}
+Try modifying the Blanchet protocol, removing the \texttt{uniq-orig}
+declarations from the two roles.  Replace the \texttt{defskeleton}s in
+the input file with the point of view skeletons for the un-corrected
+version of the Blanchet protocol from \texttt{blanchet.xhtml}; these
+skeletons will explicitly include declarations that would be inherited
+but were lost due to the removal of the role declaration.
+\end{exercise}
+
+\begin{exercise}
+Starting from your modified version of the Blanchet protocol from
+Exercise~\ref{ex:noroledecls_blanchet}, add a \texttt{uniq-orig} declaration
+on $s$ to the point of view with a responder instance and a listener for $d$.
+
+This should produce an error message, because {\cpsa} expects that for
+every value declared to be uniquely originating, that value originates
+at some point in the skeleton.  When only the responder's strand and
+the listener are present, $s$ does not originate; it is received by
+the responder before being used in an outgoing message, and it does
+not occur on the listener strand at all.
+
+Now add a \texttt{defstrand} adding an instance of an initiator
+(height 1), using the same $s$, and declare $s$ to be uniquely
+originating.  Check that the resulting shape is the same attack shape
+as in the unmodified \texttt{blanchet.xhtml}.
+\end{exercise}
+
+%  See Section~\ref{sec:role_decls2} for more about how role
+%  declarations work.
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "cpsa4manual"
+%%% End:
diff --git a/doc/src/cpsa4manual/bcasyntax.tex b/doc/src/cpsa4manual/bcasyntax.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/bcasyntax.tex
@@ -0,0 +1,89 @@
+The complete syntax for the analyzer using the Basic Crypto Algebra is
+shown in Table~\ref{tab:syntax}.  The start grammar symbol is
+\textsc{file}, and the terminal grammar symbols are: \textsc{(, ),
+  symbol, string, integer,} and the constants set in typewriter font.
+
+The \textsc{alist}, \textsc{prot-alist}, \textsc{role-alist},
+and \textsc{skel-alist} productions are Lisp style association lists,
+that is, lists of key-value pairs, where every key is a symbol.
+Key-value pairs with unrecognized keys are ignored, and are available
+for use by other tools.  On output, unrecognized key-value pairs are
+preserved when printing protocols, but elided when printing skeletons.
+
+\begin{table}
+\newcommand{\sym}[1]{\textup{\texttt{#1}}}
+\begin{center}\scshape
+\begin{tabular}{rcl}
+file&$\leftarrow$&herald?~form+
+\\herald&$\leftarrow$&
+(\sym{herald}~title~alist)
+\\title&$\leftarrow$&$\mbox{symbol}\mid\mbox{string}$
+\\form&$\leftarrow$&
+$\mbox{comment}\mid\mbox{protocol}\mid\mbox{skeleton}$
+\\ comment&$\leftarrow$&
+(\sym{comment}~\ldots)
+\\ protocol&$\leftarrow$&
+(\sym{defprotocol} id alg role+ prot-alist)
+\\ id&$\leftarrow$&symbol
+\\ alg&$\leftarrow$&symbol
+\\ role&$\leftarrow$&
+(\sym{defrole} id vars trace role-alist)
+\\ vars&$\leftarrow$&
+(\sym{vars} decl$\ast$)
+\\ decl&$\leftarrow$&
+(id+ sort)
+\\ sort&$\leftarrow$&
+$\sym{text} \mid \sym{data} \mid \sym{name} \mid \sym{skey}
+\mid \sym{akey}\mid\sym{mesg}$
+\\ trace&$\leftarrow$&(\sym{trace} event+)
+\\ event&$\leftarrow$&
+$(\sym{send}\mbox{ term})\mid(\sym{recv}\mbox{ term})$
+\\ term&$\leftarrow$&
+$\mbox{id}\mid(\sym{pubk}\mbox{ id})
+\mid(\sym{privk}\mbox{ id})
+\mid(\sym{invk}\mbox{ id})$
+\\ &$\mid$&$(\sym{pubk}\mbox{ id}\mbox{ string})
+\mid(\sym{privk}\mbox{ id}\mbox{ string})$
+\\ &$\mid$&$(\sym{ltk}\mbox{ id id})\mid\mbox{string}\mid(\sym{cat}\mbox{ term+})$
+\\ &$\mid$&$(\sym{enc}\mbox{ term+ term})\mid(\sym{hash}\mbox{ term+})$
+\\ role-alist&$\leftarrow$&$
+(\sym{non-orig}\mbox{ ht-term}\ast)\mbox{ role-alist}$
+\\ &$\mid$&$(\sym{pen-non-orig}\mbox{ ht-term}\ast)\mbox{ role-alist}$
+\\ &$\mid$&$(\sym{uniq-orig}\mbox{ term}\ast)\mbox{ role-alist}\mid\ldots$
+\\ ht-term&$\leftarrow$&term${}\mid{}$(integer term)
+\\ prot-alist&$\leftarrow$&$\ldots$
+\\ skeleton&$\leftarrow$&
+(\sym{defskeleton} id vars
+\\ &&\qquad strand+ skel-alist)
+\\ strand&$\leftarrow$&
+(\sym{defstrand} id integer maplet$\ast$)
+\\ &$\mid$&(\sym{deflistener} term)
+\\ maplet&$\leftarrow$&
+(term term)
+\\ skel-alist&$\leftarrow$&$(\sym{non-orig}\mbox{ term}\ast)\mbox{ skel-alist}$
+\\ &$\mid$&$(\sym{pen-non-orig}\mbox{ term}\ast)\mbox{ skel-alist}$
+\\ &$\mid$&$(\sym{uniq-orig}\mbox{ term}\ast)\mbox{ skel-alist}$
+\\ &$\mid$&$(\sym{precedes}\mbox{ node-pair}\ast)\mbox{ skel-alist}\mid\ldots$
+\\ node-pair&$\leftarrow$&
+(node node)
+\\ node&$\leftarrow$&
+(integer integer)
+\end{tabular}
+\end{center}
+\caption{{\cpsa} Syntax}\label{tab:syntax}
+\end{table}
+
+The contents of a file can be interpreted as a sequence of
+S-expressions.  The S-expressions used are restricted so that most
+dialects of Lisp can read them, and characters within symbols and
+strings never need quoting.  Every list is proper.  An S-expression
+atom is either a \textsc{symbol}, an \textsc{integer}, or
+a \textsc{string}.  The characters that make up a symbol are the
+letters, the digits, and the special characters in
+``\verb|-*/<=>!?:$%_&~^+|''.  A symbol may not begin with a digit or a
+sign followed by a digit.  The characters that make up a string are
+the printing characters omitting double quote and backslash, except
+when double quote and backslash are escaped using the backslash
+character.  Double quotes delimit a string.  A comment\index{comments}
+begins with a semicolon, or is an S-expression list at top-level that
+starts with the \texttt{comment} symbol.
diff --git a/doc/src/cpsa4manual/blanchet.mp b/doc/src/cpsa4manual/blanchet.mp
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/blanchet.mp
@@ -0,0 +1,146 @@
+filenametemplate "%j-%c.mps";
+
+verbatimtex
+\documentclass{slides}
+\usepackage{color}
+\newcommand{\enc}[2]{\{\!|#1|\!\}_{#2}}
+\newcommand{\privk}[1]{\ensuremath{K^{-1}_{#1}}}
+\newcommand{\pubk}[1]{\ensuremath{K_{#1}}}
+\newcommand{\msgone}{$\enc{\enc{S}{\privk{A}}}{\pubk{B}}$}
+\newcommand{\msgtwo}{$\enc{D}{S}$}
+\newcommand{\msgthree}{$\enc{\enc{S,B}{\privk{A}}}{\pubk{B}}$}
+\newcommand{\msgfour}{$\enc{\enc{S}{\privk{A}}}{\pubk{\textcolor{blue}{B'}}}$}
+\newcommand{\msgfive}{$\enc{\enc{S}{\privk{A}}}{\pubk{B'}}$}
+\newcommand{\msgsix}{\ensuremath{\enc{S}{\privk{A}}}}
+\begin{document}
+etex
+
+input boxes;
+
+input strands;
+
+input cmstrands;
+
+ahlength := 2mm;		% Arrow head length
+
+picture node; node = btex $\bullet$ etex;
+
+% The height of a downarrow is the unit of length for a strand
+% succession edge.
+
+numeric delta;
+begingroup;
+  path p; p = bbox(btex $\downarrow$ etex);
+  delta = ypart(ulcorner p - llcorner p);
+endgroup;
+
+% The width of a leftarrow is the unit of length for a directed term
+% symbol.
+
+numeric dir_width;
+begingroup;
+  path p; p = bbox(btex $\leftarrow$ etex);
+  dir_width = xpart (lrcorner p - llcorner p);
+endgroup;
+
+w = 19cm;			% Width of diagram
+
+% Node vertical node separation is gamma
+
+numeric gamma;
+gamma = 2delta;
+
+beginfig(0);
+  % Backbone
+  strand.a(2, origin, gamma, btex $\mathstrut\mathit{init}$ etex, node);
+
+  % Messages
+  outbnd.a(1, dir_width, btex \msgone etex);
+  inbnd.a(2, dir_width, btex \msgtwo etex);
+endfig;
+
+% Responder role
+
+beginfig(1);
+  % Backbone
+  strand.a(2, origin, gamma, btex $\mathstrut\mathit{resp}$ etex, node);
+
+  % Messages
+  rinbnd.a(1, dir_width, btex \msgone etex);
+  routbnd.a(2, dir_width, btex \msgtwo etex);
+endfig;
+
+beginfig(2);
+  % Backbone
+  strand.a(2, origin, gamma, btex $\mathstrut\mathit{init}$ etex, node);
+
+  % Messages
+  outbnd.a(1, dir_width, btex \msgthree etex);
+  inbnd.a(2, dir_width, btex \msgtwo etex);
+endfig;
+
+% Responder role
+
+beginfig(3);
+  % Backbone
+  strand.b(2, origin, gamma, btex $\mathstrut\mathit{resp}$ etex, node);
+
+  % Messages
+  rinbnd.b(1, dir_width, btex \msgthree etex);
+  routbnd.b(2, dir_width, btex \msgtwo etex);
+endfig;
+
+beginfig(4);
+  % Backbones
+  strand.b(2, origin, gamma,
+    btex $\mathstrut\mathit{resp}$ etex, node);
+  strand.a(1, (w, ypart b1.c), gamma,
+    btex $\mathstrut\mathit{init}$ etex, node);
+
+  boxit.o1(btex $\succ$ etex);
+  o1.c = .5[b1.c,a1.c];
+  draw pic o1;
+
+  drawmsg(a1.w -- o1.e);
+  drawmsg(o1.w -- b1.e);
+  label.top(btex \msgfour etex, .5[a1.w,o1.e]);
+  label.top(btex \msgone etex, .5[o1.w,b1.e]);
+endfig;
+
+beginfig(5);
+  % Initial point-of-view
+  strand.b(2, origin, gamma,
+    btex $\mathstrut\textcolor{red}{\mathit{resp}}$ etex, node);
+endfig;
+
+beginfig(6);
+  % Bundle
+  strand.b(2, origin, gamma,
+    btex $\mathstrut\mathit{resp}$ etex, node);
+  strand.e(3, (2w/3, ypart b1.c), gamma,
+    btex $\mathstrut\mathit{enc}$ etex, node);
+  strand.g(1, (w/3, ypart e2.c), gamma,
+    btex $\mathstrut\mathit{gen}$ etex, node);
+  strand.d(3, (w/3, ypart e1.c), gamma,
+    btex $\mathstrut\mathit{dec}$ etex, node);
+  strand.h(1, (2w/3, ypart d2.c), gamma,
+    btex $\mathstrut\mathit{gen}$ etex, node);
+  strand.a(1, (w, ypart d1.c), gamma,
+    btex $\mathstrut\mathit{init}$ etex, node);
+
+  drawmsg(e3.w -- b1.e);
+  label.top(btex \msgone etex, .5[e3.w,b1.e]);
+  drawmsg(g1.e -- e2.w);
+  label.top(btex \pubk{B} etex, .5[g1.e,e2.w]);
+  drawmsg(d3.e -- e1.w);
+  label.top(btex \msgsix etex, .5[d3.e,e1.w]);
+  drawmsg(h1.w -- d2.e);
+  label.top(btex \privk{B'} etex, .5[h1.w,d2.e]);
+  drawmsg(a1.w -- d1.e);
+  label.top(btex \msgfive etex, .5[a1.w,d1.e]);
+endfig;
+
+verbatimtex
+\end{document}
+etex
+bye;
diff --git a/doc/src/cpsa4manual/blanchet_skel13.eps b/doc/src/cpsa4manual/blanchet_skel13.eps
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/blanchet_skel13.eps
@@ -0,0 +1,26693 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (/srv/www/vhosts/releases/20/save/queued/b/8/e/b8e908204af9ba14704193ff35054a34/intermediate1/o_f6eef21472f1b95e.eps)
+%%CreationDate: (2015-07-14T15:12:17+02:00)
+%%BoundingBox: -0 -0 364 531
+%%HiResBoundingBox: 0 0 363.788 531
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image.  The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+  %
+  % Get a DirectClass packet.
+  %
+  % Parameters:
+  %   red.
+  %   green.
+  %   blue.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+  %
+  % Display a DirectClass image.
+  %
+  systemdict /colorimage known
+  {
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { DirectClassPacket } false 3 colorimage
+  }
+  {
+    %
+    % No colorimage operator;  convert to grayscale.
+    %
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { GrayDirectClassPacket } image
+  } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+  %
+  % Get a DirectClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   red
+  %   green
+  %   blue
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+  %
+  % Display a PseudoClass image.
+  %
+  % Parameters:
+  %   class: 0-PseudoClass or 1-Grayscale.
+  %
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  class 0 gt
+  {
+    currentfile buffer readline pop
+    token pop /depth exch def pop
+    /grays columns 8 add depth sub depth mul 8 idiv string def
+    columns rows depth
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { currentfile grays readhexstring pop } image
+  }
+  {
+    %
+    % Parameters:
+    %   colors: number of colors in the colormap.
+    %   colormap: red, green, blue color packets.
+    %
+    currentfile buffer readline pop
+    token pop /colors exch def pop
+    /colors colors 3 mul def
+    /colormap colors string def
+    currentfile colormap readhexstring pop pop
+    systemdict /colorimage known
+    {
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { PseudoClassPacket } false 3 colorimage
+    }
+    {
+      %
+      % No colorimage operator;  convert to grayscale.
+      %
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { GrayPseudoClassPacket } image
+    } ifelse
+  } ifelse
+} bind def
+
+/DisplayImage
+{
+  %
+  % Display a DirectClass or PseudoClass image.
+  %
+  % Parameters:
+  %   x & y translation.
+  %   x & y scale.
+  %   label pointsize.
+  %   image label.
+  %   image columns & rows.
+  %   class: 0-DirectClass or 1-PseudoClass.
+  %   compression: 0-none or 1-RunlengthEncoded.
+  %   hex color packets.
+  %
+  gsave
+  /buffer 512 string def
+  /byte 1 string def
+  /color_packet 3 string def
+  /pixels 768 string def
+
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  x y translate
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  currentfile buffer readline pop
+  token pop /pointsize exch def pop
+  /Times-Roman findfont pointsize scalefont setfont
+  x y scale
+  currentfile buffer readline pop
+  token pop /columns exch def
+  token pop /rows exch def pop
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  currentfile buffer readline pop
+  token pop /compression exch def pop
+  class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+  grestore
+} bind def
+%%EndProlog
+%%Page:  1 1
+%%PageBoundingBox: 0 0 364 531
+userdict begin
+DisplayImage
+0 0
+363.788 531.055
+12
+485 708
+0
+0
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7E5D4B0A87F4C9DB9E9FFFFFFFFFFFFFFFFFFFFFFFFECCF9A995F2F8B552F8E
+7AA1D7F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000
+000000000000000000001727476797C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBEFDBC8A47795
+5F93D3FFFFFFFFFFFFFFFFFFFFFFFFF4DBBA8F5A8B551A8B5A5AA4B9DBF4FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670000
+5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C993926A3D8B551A99B9E9FFFFFFFFFFFFFFFFFFF7
+D9B0B2CFE9FBFFFFFFF4DBB67A2F8B9ACCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7B767000077BFFFFFFFFFF7E7B7773700003787C7F7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE2BA7A538E5A1A8B5593D3FFFFFFFFFFFFFFFFFFFFF7CC9A85C8E9FFFFFFFFE9C48592
+552F99B9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFF7BF6F87C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2B66A1A99
+B9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C97E8B84BEF0FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFF7BF77
+17000057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F77A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C97E8B5593D3FFFFFFFFFFFFFFFFFFF4C5CC
+D9FFFFFFFFFFFFFFFFFFF7CC8F1A8B7AB7ECFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFEFC787370087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE9BA7A1A99B9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEA468AF
+D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000
+87C7FFFFFFFFFFFFFFFFE7A74F00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA757174FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4938B5593D3
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B9618B7AB7ECFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FF
+FFFFFFDFAF5F3700000000000000000087C7FFFFFFFFEFC78F57271700001727578FC7EFFFFFFF
+FFEFCFAF87572787C7EFCF97572717001F4F97CFF7F7D7A76F471F0017275FAFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9BA7A1A99B9E9FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF0DAB9779DAFDBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFCF8F2F000057AFE7FFFFFFF7D7A76F4727
+170000001727476FB7DFFFFFFFFFEFCFAF875727779FAF6F3F1700278FCFFFFFFFFFEFC78F5727
+1700001727578FC7EFFFFFFFF7E7BF9767475FA7DFDFAF6F471F0017275FAFDFFFFFEFC78F4717
+00000000000000004FA7E7FFFFEFB7671F1F67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFD4938B5593D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA9F4495
+B4E2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFF7CF876797CFEFFF
+FFFFFFEFC78F3F00479FDFEFB76717170000004F8FC7E7F7FFFFEFB76F1700476FA7C7E7FFFFFF
+EFB76700006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9BA7A1A99B9E9FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE9BA7A1A8B551A8B552F929FD4F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000077BFF7FFFFFFFFEFBF873700001767
+B7EFFFFFFFF7B76F174797D7FFFFFFFFE7AF5F001787CFFFE7A75717170000004F9FDFFFFFFFFF
+FFFFFFFFF7CF876797CFEFFFFFFFFFEFC78F3F00479FDFCF973717000000375F9FCFEFFFFFFFDF
+9F47001787CFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4938B5593D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFD4AF7493D7F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F000087C7FFFF
+FFFFFFEFB7670000000000000000000000000000004FA7E7FFFFE7A74F000087C7FFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE9BA7A1A99B9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E9CCAF7A2F8B5577C1
+F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000475F67
+47271700001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFEFDFB79767471F00000087C7FFFFFFFF
+E7A74F000087C7FFFFFFFFFFFFFFFFEFB7670000000000000000000000000000004FA7E7FFFFC7
+8700004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4938B5593D3FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2AF6FAFD9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFF
+FFFFFFE7A74F000087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9BA7A1A99B9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFB79D5561BAE9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D79F5F273F6F9FBF
+D7EFBF87000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFFFC7870000
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFD4938B5593D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D4A1B2D4F7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787000087C7FFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFEFB76700479FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787
+00004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9BA7A1A99B9E9FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCA85A85CCF9FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787170067B7F7FFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFF
+EFB76700479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFC78700
+0087C7FFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4938B5593D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B7AF
+BFE2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767000067B7EFFFFFFFFFFFFFFFC777000077C7FFDFAFAFCF
+FFF7BF6F17174787BFE7FFFFFFFFFFFFDF9F97BFF7FFFFDF9F4F000077BFFFFFFFFFFFFFD7973F
+003F97D7FFFFFFFFFFFFBF7700004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFD4AF5F1A95B4E2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0DAAF6F9DB9E2FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76700005FAFE7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F00004F9FDFFFFFF7E7C78747000077C7FFFFFFFFDF9F4F
+000087C7FFFFFFFFFFFFFFFFFFF7BF6F17174787BFE7FFFFFFFFFFFFDF9F97BFF7FFFFBF770000
+4F9FDFFFFFFFFFFFF7B767000067B7F7FFFFFFFFDFA74F004FA7DFF7C7AFBFEFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECBF6F8B5585CFFFFFFFFFFFFF
+FFFFFFFFFFFFE9B7ABB9E2FFFFFFFFFFFFFFFFFFF0CF9AB6D9FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000004FA7E7FFFF
+FFE7AF5F2717173F87C7F7FFFFFFFFFFDFAF6F4727170000001F375F87BFDFFFE7A74F00000000
+0000000087C7E7A74F000000000000000087C7C78700000000000000004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFD4938B551A8B551A8B551A8B7AB0E9FFFFFFFFFFDEB45A8B551A8B552F8E
+6A6FABCFE9FBFFFFFFFFFFFFFFFFEFB7671F0027579FCFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F00001F4F8FC7EFCF
+973F171F4787AD9C4F0000000000373F3F87C7FFFFFFFFFFFFFFFFFFDFAF6F4727170000001F37
+5F87BFDFFFC78700000000000000004FA7E7C78700000000000000004FA7E7FFF7CF8F471F001F
+5FAFDFFFFFFFFFEFB7671F1F67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9BA7A1A8B
+551A8B551A8B551AA8D4FFFFFFFFFFE9B0995A1A8B551A8B551A8B551A8B551A8B5F9AD7FFFFFF
+FFFFD79737003797D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B7A7B7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A62AF551A8B551A8B551A8B
+551A8B551A8B551A8B551A8B551A8B551A8B551A8B551A8B551A8B551A8B551A8B551A8BC8B5D9
+EFD7B7AFB7D7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC1ACD4551A8B551A8B551A8B551A8B551A8B551A8B551A8B551A8B
+551A8B551A8B551A8B551A8B551A8B551A8B551A8B916BB4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCFAF874F1F87C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7E7BF975F3F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFCFAF874F1F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7E7C7A7875F375FA7E7FFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F578FCFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7E7BF975F3F87C7FFFFFFFFFFFFEFB7673767B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7C79F6F475FA7E7FFFFCF976FA7D7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F271F00000087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78F1F1F00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF873F3F271700004FA7E7FFFFFFFFFFFFFFFFFFF7CFA797BFE7FFFF
+FFFFEFD79F57171787C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F67
+A7D7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78F1F1F00000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F1F1700004FA7E7FFFFFFEFD79F5F37
+5FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+6F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+004FA7E7FFFFFFFFFFFFFFDFA74F3787CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFC787370087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD797578FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F473F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087B7CF9757
+27170017275797CFF7FFFFFFFFFFFFFFC787000087C7FFFFFFFFF7D7A76F472717000000172747
+6FB7DFFFFFFFFFEFCFAF87572787C7EFCF97572717001F478FC7F7FFFFFFFFFFFFFFF7D7A76F47
+271700001727578FC7EFFFFFFFFFE7A74F000087C7EFCF974F1F00001F478FC7F7FFFFFFFFFFFF
+FFF7D7A76F471F0000001F476FA7D7F7FFDFAF5F3700000000000000000087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCFA7
+675F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787172F8FCFFFFFFFFFFFFFFF
+FFEFCFAF875727779FAF6F3F1700278FCFFFFFF7D7A76F471F0000001F476FA7D7F7FFFFFFFFF7
+D7A76F4727170000001727476FB7DFFFFFFFFFFFFFFFC787000087C7FFFFFFFFF7E7BF975F3F87
+C7FFFFFFF7BF6F00000000000000000000000000001767B7EFFFFFFFF7D7A76F471F0000001F47
+6FA7D7F7FFFFFFFFFFFFFFDFAF6F472717001F5FAFC7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFCF
+87172F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0000579FD7EFFFFFFFEFCF8F47001767B7EFFFFFFFFFFFC787000087C7FFFFFFF7B7
+6F174797D7FFFFFFFFE7AF5F001787CFFFEFB76717170000004F87BFDFF7FFFFF7BF6F170057AF
+E7FFFFFFFFDFA7571F57A7DFFFFFFFFFCF97471F3F97D7FFFFFFE7A74F00004F87BFDFF7FFFFEF
+B76F170067B7EFFFFFFFFFE7AF6777B7E7F7FFFFFFF7E7A75F001777BFF7FFFFE7A74F000087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F000000000000173F8FCFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F
+3F0067B7EFFFFFFFFFFFFFE7A75717170000004F9FDFFFFFFFFFFFFFFFE7AF6777B7E7F7FFFFFF
+F7E7A75F001777BFF7FFF7B76F174797D7FFFFFFFFE7AF5F001787CFFFFFFFFFFFFFC787000087
+C7FFFFFFC78F1F1F00000087C7FFFFFFE7A7779FDFFFFFFFFFFFF7C78737003787C7F7FFFFFFE7
+AF6777B7E7F7FFFFFFF7E7A75F001777BFF7FFFFF7BF6F173787BFEFFFFFFFEFC79F5F3F004FA7
+E7FFFFFFFFFFFFFFFFFFFFE7AF57003F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFC787170067B7EFFFFFFF
+FFC787000087C7FFFFFFFFFFFFFFFFFFEFDFB79767471F00000087C7FFFFFFFFE7A74F000087C7
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFCF87173F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFCF8F2F0000000000000000000000000000
+0087C7FFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7975717000067B7EFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFF
+FFCF8F2F00000000000000000000000000000087C7FFFFFFFFFFFFFFEFDFB79767471F00000087
+C7FFFFFFFFFFFFC787000087C7FFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFDFA757
+171757A7DFFFFFFFFFFFCF8F2F00000000000000000000000000000087C7FFDF9F47006FBFF7FF
+FFFFFFFFFFFFCF8F2F004FA7E7FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFF
+FFFFE7A74F004FA7E7FFFFFFFFC787000087C7FFFFFFFFF7D79F5F273F6F9FBFD7EFBF87000087
+C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFE7A74F004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+AF5F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D79F5F
+273F6F9FBFD7EFBF87000087C7FFFFFFFFFFFFC787000087C7FFFFFFFFFFFFC787000087C7FFFF
+FFFFFFFFFFFFF7C78737003787C7F7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFB767000087C7FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFC78700
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFFFF7BF6F002F8FCFFFFFFFFFFFC787000087C7FFFFFFC787170067
+B7F7FFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFF
+FFCF8717006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFCF8F2F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC7771777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F0067
+B7EFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFCF8F2F1777BFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787170067B7F7FFFFFFFFFFC787000087C7FFFFFFFFFFFFC787000087C7FFFF
+FFFFFFFFC787000087C7FFFFFFFFFFFFE7AF571700479FDFFFFFFFFFFFFFFFFFFFFFCF8F2F1777
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC77700005FAFEFFFFFFFFFFFFFFFE7A74F004FA7E7FFFF
+FFFFFFFFFFFFFFFFEFB767003F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7AF5F17004F97CFEFFFFFFFEFC787371757AFE7FFFFFFFFFFF7B767
+00005FAFEFFFF7BF6F00004F9FDFFFFFF7E7C78747000077C7FFFFFFFFDF9F4F000077BFFFFFFF
+FFFFFFD7973F003F97D7FFFFFFFFCF8F37003777B7E7FFFFFFFFFFFFEFB78FAFE7FFFFDF9F4F00
+0077BFFFFFFFFFFFFFD7973F003F97D7FFFFFFFFDF9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDF
+FFFFFFC777000077C7FFDFAFAFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F004F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD79F5F5FA7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFCF8F2F2F8FCFFFFFFFFFFFFFFFFFFFDF9F4F000087C7FFFFFFFFFFFFFFFFDF
+9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDFF7BF6F00004F9FDFFFFFF7E7C78747000077C7FFFF
+FFFFFFF7B76700005FAFEFFFFFFFFFF7B76700005FAFEFFFFFFFDFA757171757A7DFFFFFFFFFFF
+FFFFD7979FC7FFFFDF9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDFFFF7C7872F003767AFDFF7FF
+FFEFC79F5F3F0000171F5FAFE7FFFFFFFFFFFFFFCF8F2F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB78757271700001F375F8FC7
+EFFFFFFFFFFFFFC78700000000000000004FA7DFCF974F1F00001F4F8FC7EFCF973F171F4787AD
+9C4F000000000000000087C7E7A74F000000000000000087C7FFFFFFEFC78F572717000000173F
+4F6797CFF7E7A74F000000000000000087C7E7A74F000000000000000087C7FFFFFFEFCF975F37
+1F000000172747679FCFF7FFFFFFFFE7AF5F2717173F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787000000000000000000004FA7E7FFFFFFFFFFD79F471F0000000017273F5F8FBFE7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFE7A74F00000000
+00373F3F87C7FFFFFFFFFFFFFFEFCF975F371F000000172747679FCFF7FFFFF7CF974F1F00001F
+4F8FC7EFCF973F171F4787BFEFC78700000000000000004FA7B48700000000000000004F8C8937
+0000000000000000000000000000000087C7FFFFFFFFEFCF975F371F000000172747679FCFF7FF
+FFFFFFFFDFB76F471F00001F478FC7D7A75F476F9FC7E7FFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF873F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA7573F87CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFAF5F375F9FD7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFD7A767475FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7A76F97CFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5797CFEFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7673767B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7673767B7EFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC787370087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFCFAF875727779FAF6F3F1700278FCFFFFFF7D7A76F471F0000001F476FA7D7F7FFFFFFFFFF
+DFAF5F2717173F87C7D7A787A7E7FFFFEFD7B78F572787B7D7A76F3F170017275797CFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7BF975F3F87
+C7FFFFFFEFCFAF87572787C7EFCF97572717001F478FC7F7FFFFFFFFFFF7E7BF975F3F87C7FFDF
+AF5F3700000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A75717170000004F9FDFFFFFFFFFFFFFFFE7AF6777B7E7F7FFFFFF
+F7E7A75F001777BFF7FFEFB7673F97D7FFFFFFFFEFBF7767A7E7E7AF5F17170000003F77BFE7FF
+FFFFEFC78737001767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC78F1F1F00000087C7FFEFB76717170000004F87BFDFF7FFFFF7BF6F170057AFE7FFFF
+FFC78F1F1F00000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFF
+FFCF8F2F00000000000000000000000000000087C7FFE7AF57174787B7D7EFFFFFFFFFFFFFFFFF
+FFFFE7A74F000087C7FFFFFFFFFFFFFFF7BF6F000067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F
+1F0000001727578FC7EFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFF
+FFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFCF8F2F1777BFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A7874F1F003797D7FFFFE7A74F000087C7FFFFFFFFFFFF
+FFFFC787171787C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFF
+FFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F000087C7FFFFFFFFFFFFFFFFDF
+9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDFFFE7A7676FB7E7F7FFFFFFFFD7973F2F8FCFFFFFE7
+A74F00003787BFEFFFFFFFF7DFA75717479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B76700005FAFEFFFFFFFDF9F4F000077BFFFFFFFFFFFFF
+D7973F003F97D7FFFFFFFFFFF7B76700005FAFEFFFFFFFFFC777000077C7FFDFAFAFCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00000000
+00373F3F87C7FFFFFFFFFFFFFFEFCF975F371F000000172747679FCFF7FFFFE7A78FAFDFCF974F
+1F0017275797CFF7FFFFFFE7A74F000077A7AF5F1F000017275797CFEFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000000476D4800
+0000000000000087C7E7A74F000000000000000087C7C78700000000000000004FA7E7FFE7AF5F
+2717173F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F00
+0077BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0DFDFDF
+FFFFFFFFFFFFEFEFEFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFCFCFFFFFFFFFFFFF
+FFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFEFC0C0C0C0C0C0B0B0B0808080DFDFDFFFFFFFFFFFFF6F6F6F404040404040
+202020000000000000000000000000BFBFBFFFFFFFFFFFFF7F7F7F000000000000000000000000
+0000000000000000007F7F7FFFFFFFFFFFFFBFBFBF000000000000000000000000000000000000
+0000003F3F3FFFFFFFFFFFFFFFFFFF000000000000000000000000000000202020404040404040
+FFFFFFFFFFFFFFFFFF9F9F9F808080B0B0B0C0C0C0C0C0C0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFC0C0C0C0C0C0808080
+FFFFFFFFFFFFFFFFFF6F6F6F0000000000000000000000000000000000002F2F2FCFCFCFFFFFFF
+FFFFFFBFBFBF7F7F7F7F7F7F7F7F7FBFBFBFBFBFBFBFBFBFBFBFBFDFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBF7F7F7F7F7F7F7F7F7FFFFFFFFFFFFFFFFFFF3F3F3F2F2F2F000000000000000000000000
+000000000000DFDFDFFFFFFFFFFFFF9F9F9F808080C0C0C0C0C0C0EFEFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF707070404040303030000000
+0000000000000000001F1F1FFFFFFFFFFFFFFFFFFF9F9F9FAFAFAFBFBFBFBFBFBFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFBFBFBFBFBFBFAFAFAFFFFFFFFFFFFFFFFFFF6F6F6F2F2F2F000000000000
+000000000000303030404040CFCFCFFFFFFFFFFFFFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCFCFCFB0B0B0808080606060404040101010000000FFFFFFFFFFFFFFFFFF
+5F5F5F7F7F7F7F7F7FBFBFBFBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBF7F7F7F7F7F7FDFDFDFFFFFFFFFFFFF4F4F4F000000
+000000404040606060808080B0B0B0CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCFCFCFCFCFCFFFFFFFFFFFFFFFFFFF0000000000000000002F2F2F4F4F4F7F7F7F9F9F9F
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFEFBFBFBF9F9F9F7F7F7F4F4F4F3F3F3F000000000000BFBFBFFFFFFFFFFFFF
+BFBFBFB0B0B0CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C0C0C0909090606060404040000000000000202020FFFFFFFFFFFFFFFFFFBFBFBFDFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDFEFEFEFFFFFFFFFFFFF8F8F8F000000000000000000303030606060909090C0C0C0EFEFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF
+FFFFFFFFFFFFEFEFEF0000000000001F1F1F4F4F4F7F7F7FAFAFAFDFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFBFBFBF7F7F7F
+4F4F4F1F1F1F0000009F9F9FFFFFFFFFFFFFBFBFBFC0C0C0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFA0A0A0
+606060303030000000202020FFFFFFFFFFFFFFFFFFBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFF8F8F8F000000000000
+303030606060909090CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+4040401010100000000F0F0F4F4F4F7F7F7FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFBFBFBF7F7F7F4F4F4F1F1F1F000000000000CFCFCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFB0B0B0707070
+505050FFFFFFFFFFFFFFFFFF8F8F8F9F9F9FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFAFAFAF
+DFDFDFFFFFFFFFFFFF5F5F5F303030707070B0B0B0DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFB0B0B0707070
+3030300000000000003F3F3F7F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF7F7F7F3F3F3F000000000000303030
+707070B0B0B0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF1F1F1F0000003F3F3F7F7F7FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFBFBFBF7F7F7F3F3F3F000000DFDFDFFFFFFFFFFFFFCFCFCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF909090
+505050000000EFEFEFFFFFFFFFFFFFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+303030000000404040909090CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0B0B0
+7070702020200000001F1F1F5F5F5F9F9F9FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFEFEFAFAFAF6F6F6F1F1F1F000000202020606060B0B0B0EFEFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF3F3F3F0000003F3F3F8F8F8FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+8F8F8F4F4F4F000000FFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CFCFCF808080303030BFBFBFFFFFFFFFFFFFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000202020707070
+CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC0C0C07070702020200000002F2F2F6F6F6FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCFCFCF7F7F7F2F2F2F000000101010606060B0B0B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFFA0A0FF
+7070FF5050FF8080FFC0C0FFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFAFAFAF1010100000002F2F2F8F8F8FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF8F8F8F4F4F4F0000004F4F4F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFEFEFC0C0C0808080505050707070909090C0C0C0FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFFF5050FF0000FF0000FF0000FF0000FF0000FF0000FF1010FFAFAFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF0000000000005F5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFB0B0B0AFAFAFFFFFFFFFFFFFDFDFDF9F9F9FDFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFEFDFDFDFFFFFFFFFFFFFBFBFBF606060B0B0B0FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF101010000000000000000000000000
+000000000000404040DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFBFBFFF1010FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF5050FFFFFFFFFFFFFFFFFFFF5F5F5F000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFB0B0B06060601010100000006F6F6FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF4F4F4F000000
+101010606060B0B0B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6F000000000000
+000000000000000000000000000000000000000000101010AFAFAFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF1010FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF7F7FFFFFFFFFEFEFEF1010100000003F3F3FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF7070702020200000003F3F3F9F9F9FEFEFEFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFEFEF9F9F9F4F4F4F000000101010606060DFDFDFFFFFFFFFFFFFFFFFFF
+8F8F8F000000000000000000000000000000000000000000000000000000000000000000101010
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFBFBFFF8F8F8F
+0000000000009F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0F2F2F2F8F8F8FDFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF9F9F9F2F2F2F
+DFDFDFFFFFFFFFFFFFDFDFDF101010000000000000000000000000000000000000000000000000
+000000000000000000000000404040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CFCFFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF3F3FFF1F1F1F0000001F1F1FFFFFFFEFEFEFA0A0A0505050EFEFEFFFFFFFFFFFFF
+EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF121212000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9F9FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF1010FF0000000000005F5F5F6060600000000F0F0F
+5F5F5FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF262626000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+7F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6FFF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF000020000000
+0000004F4F4F9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000004F4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF000040000000000000505050BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000003F3F3FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FFFFFFFF000000000000000000000000303030A0A0A0
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0F000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000006F6F6F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF1F1FFFFFFFFFBFBFBF5F5F5F
+000000000000000000000000101010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF3F3F3F000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000008F8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF0F0FFF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+6F6FFFFFFFFFFFFFFFFFFFFFDFDFDF7F7F7F0F0F0F000000000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFAFAFFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF1F1FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF9F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F2F2F000000000000
+0000000000000000000000000000000000000000000000000000000000008F8F8FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCFCFCF0F0F0F000000000000000000000000000000000000000000000000000000000000
+3F3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+7F7FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF1F1FFFBFBFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF2F2F2F000000000000000000000000000000
+0000000000000000006F6F6FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFF3F3FFF0F0FFF0000FF0000FF0000FF2F2FFF6F6FFF
+EFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F
+2F2F2F0000000000000000000000003F3F3FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3C3E3
+6060A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFA0A0A0626262282828808080
+B0B0B0DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFFFB0B0FF
+8080FF4040FF8080FFA0A0FFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF505050000000
+000000000000000000000000000000101010AFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF7F7FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF7070FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+BFBFBF101010000000000000000000000000000000000000000000000000000000505050FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000606060FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFEFFF3030FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF3030FFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFEFEF101010000000000000000000000000000000000000000000000000
+0000000000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0F
+000000000000606060FFFFFFFFFFFFFFFFFFFFFFFF3F3FFF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF3030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000
+000000000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCFCFCF0F0F0F000000000000606060FFFFFFFFFFFF8F8FFF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF7F7FFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000003F3F3F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF0F0F0F000000000000606060
+FFFFFF0F0FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9F9F9F000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000101010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CFCFCF0F0F0F0000000000005454600000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6F000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000D1D1D1FFFFFFFFFFFFDFDFDFC0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0DFDFDFFFFFFFFFFFFFEFEFEFC0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0CFCFCFFFFFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0FFFFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0FFFFFFFFFFFFFFFFFFCFCFCFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0EFEFEF
+FFFFFFFFFFFFDFDFDFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0DFDFDFFFFFFFFFFFFF
+EFEFEFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFCFCFFFFFFFFFFFFFFFFFFFC0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFFFFFFFFFFFFFCFCFCFC0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0EFEFEFFFFFFFCFCFCF0D0D0D0000000000000000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF8F8FFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000008F8F8F
+FFFFFFFFFFFF7F7F7F0000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFF
+BFBFBF0000000000000000000000000000000000000000003F3F3FFFFFFFFFFFFFFFFFFF000000
+000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFF3F3F3F000000000000000000000000
+000000000000000000BFBFBFFFFFFFFFFFFF7F7F7F000000000000000000000000000000000000
+0000007F7F7FFFFFFFFFFFFFBFBFBF0000000000000000000000000000000000000000003F3F3F
+FFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000FFFFFFFFFFFF
+FFFFFF000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF3F3F3F
+000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFF3F3F3F000000000000
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+7F7F7F000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9F9F0000000000000B0B0F0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFBFBFBF000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000002F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9F9F0000000000000F0F0FCFCFCF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFDFDFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF0F0F0F000000000000000000
+0000000000000000000000000000000000000000000000000000000000006F6F6FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F0000000000000F0F0FCFCFCFFFFFFF3F3FFF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+AFAFAF000000000000000000000000000000000000000000000000000000000000000000000000
+1F1F1FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F0000000000000F0F0F
+CFCFCFFFFFFFFFFFFFDFDFFF0F0FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000000000000000
+000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+0000000000000F0F0FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFF8F8FFF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000000000
+0000000000000000000000000000000000001F1F1FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF0F0F0F0F0F0FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+AFAFFF0F0FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0F0FFF8F8FFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCFCFCF3F3F3F0F0F0F0000000000000000002F2F2F6F6F6FEFEFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF5F5FFF1F1FFF0000FF0000FF0000FF1F1FFF4F4FFF
+DFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFBFBFBFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF
+6060A0D1D1E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFB0B0B0808080202020626262
+A0A0A0CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000
+000000000000000000000000000000000000707070EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFEF303030000000000000000000000000000000000000000000000000000000303030CFCFCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF3F3F3F000000000000000000000000000000000000000000000000
+000000000000000000303030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F000000000000000000000000000000
+0000000000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0F000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000008F8F8FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000007F7F7F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+BFBFBF000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000AFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F3F3F000000000000000000
+0000000000000000000000000000000000000000000000000000000000002F2F2FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF0F0F0F000000000000000000000000000000000000000000000000000000000000000000
+000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F000000000000000000000000000000000000000000
+0000000000000000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF0F0F0F000000
+0000000000000000000000000000000000000F0F0F8F8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFEF5F5F5F1F1F1F0000000000000000001F1F1F4F4F4FDFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBFEFEFEFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFAF6F471F00000000004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F2F77BFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFC78F572717000000171717004FA7E7FFFFFFFFFFEFC78F57271700
+001727476FB7DFFFFFFFFFC78700000000000000000000000000000087C7FFFFFFFFFFF7CF975F
+371F0000000000004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFF7CF8F47275F9FD7F7FFFFFFFF
+FFEFC78F57271700001727476FB7DFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFE7A74F0000000000000000000000000000
+4FA7E7FFFFFFFFFFEFC78F5727170000001F375F97CFF7FFFFFFFFE7A74F4F97AF975727170000
+1F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7BF8F
+5727170017275797CFF7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFE7A7
+4F000000000000001F476FB7DFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFF
+FFFFFFF7D7A76F47271700000000004FA7E7FFFFFFFFE7A74F2F77A7A76F3F1700001F478FC7F7
+FFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFE7A74F000000000000000000000000
+00004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F373787BFEFFFFFFFFFFFBF77004FA7E7
+FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7DFEFBF773F
+3F87C7EFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F1767B7EFFFFF
+E7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFC78700003767AFDFFF
+FFFFDFA74F006FBFF7FFFFFFFFEFB76717478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017
+3F87C7EFFFFFF7C7772F3F9FDFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F4FA7DFFF
+FFFFFFFFFFFFC787004FA7E7FFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFD79F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFF
+FFFFC787003747471F378FCFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000000
+87C7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFE7A74F00000000000000000000
+0000000087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFF
+FFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFF7CF975F371F00000000000000004FA7E7
+FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFE7AF570077C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFC787000000000000000000
+00000000004FA7E7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFE7A74F3F9FDFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7BF
+A78F5F3F1F3F8FCFF7FFFFFFFFFFC787004FA7D7C787373787C7F7FFFFFFFFFFFFFFE7A74F3F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFE7
+A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFF7BF77172F77BF
+EFFFFFFFFFFFC787004FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F
+0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFF
+FFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFDFAF673F17174FA7E7FFFFFF
+CF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F374FA7E7FFFFFFFFFFC787004FA7E7FFFFDFA7571F57
+A7DFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F
+004F9FDFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFFFFFFEFBF87371777BFF7FFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFF
+C787004FA7E7FFFFFFFFDF9F4717579FCFEFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFE7A74F0087C7FFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F3F1700001F
+4787BFCFA74F4FA7E7FFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFF7C787371757A7DFFFFFFFFFF7D7A76F4727170000000000000087C7FFFF
+FFFFE7A74F0000000000000000000000000087C7FFFFFFFFFFF7D7A76F47271700000000000000
+87C7FFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFF7D7A76F47271700001727
+476FA7D7F7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF674727170000001727476FA7D7F7FFFFFFFFFFE7A74F00
+00000000000000000000000087C7FFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFF
+C787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFEFC78F5F371F0000000000004FA7E7
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFEFC78F5F371F000000000000
+004FA7E7FFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB7
+6F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F37
+8FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7
+773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F
+0000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7BF6F174F97D7EFFFFFFFEFD7974F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFDF9F4717
+87C7FFFFFFFFFFFFFFFFE7A74F1777BFF7FFFFFFC7870000000000000017275797CFF7FFFFFFFF
+FFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFFFFDFB76F47271700000000000087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFC78F572717000000171717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFFFC78700
+00000000000017275797CFF7FFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFF
+E7A74F000000000000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFF7CF975F371F0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFFFE7A74F0087C7FF
+FFFFFFDFB7673F3F77BFEFFFFFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFDF9F4717
+87C7FFFFFFFFFFFFFFFFCF8F2F2F8FCFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC7870077A7BF8F5727170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFFFFDFA75F1F001787CFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F476FB7DFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFDFB7673F3F77BFEFFFFFFFFFFFF7D7A76F471F0000001F375F97
+CFF7FFFFFFDF9F471787C7FFFFFFFFFFFFFFFFCF8F2F2F8FCFFFFFFFFFFFFFFFFFFFFFFFDF9F47
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFEFAF5F1787C7FFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFD7973F3F9FDFFFFFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFFFC78700
+67AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F373787BFEFFFFFFFFFFFBF77004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7F7D79F57275FA7DFFFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEF
+C78F47479FDFFFFFFFEFAF5F1777BFF7FFFFFFFFFFCF8F2F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F
+1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFEFBF7747
+4777BFAF770067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB767006FBFF7FFFFFFE7A74F0087C7F7D79F57275FA7DFFFFFFFFFFFFFFFF7BF77
+3F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFEFAF5F1777BFF7FFFFFFFFFFCF8F2F4FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771F77BFF7FFFFFFDF9F47479FDFFF
+FFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFCF8F2F4FA7DFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76700
+77C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFDFB76F472717000000000000000087C7FFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F00000000000000004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD79F471F3F5F
+8FA7BFD7EFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF6F
+371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFE7A74F003F47471767AFEFFFFFFFFFFFFFFFFFFFFFE7
+A74F000000000000000000000000000087C7FFFFFFFFF7BF771F77BFF7FFFFFFC7871F77BFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F000000
+00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFE7A74F00000000000000000087C7FFFFFFFF
+CF8F2F4F97B79F5F375FA7DFFFFFFFC7870067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7CF975F371F00000000000000004FA7E7FFFFFFE7A74F003F47471767AFEFFF
+FFFFFFFFFFFFFFFFFFC78700000000000000000000000000004FA7E7FFFFFFF7BF771F77BFF7FF
+FFFFC7871F77BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37
+77BFF7FFDF9F475FAFEFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFDF9F47004F9FDFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFF7BF77172F
+77BFEFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFD7BFA78F5F3F1F3F8FCFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFE7A74F0087BFDFA7571F
+57A7DFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F
+67B7EFF7BF77378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7AF5700173F87C7EFFFFFFFFFFFE7A74F2F8FCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFF
+E7A74F0087BFDFA7571F57A7DFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F2F67B7EFF7BF77378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDF9F476FBFD79F578FCFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7
+773F170087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFDFAF673F17174FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7
+FFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFF
+FFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+C777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F
+006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F374FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFF
+FFFFE7A74F0087C7FFFFF7C787373787C7EFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDF9F474F8F8F5F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767376FB7E7FFFFFFFFE7B76F
+2F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFF
+EFCF9F5F1F004FA7E7FFFFFFE7A74F0087C7FFFFF7C787373787C7EFFFFFFFFFFFEFAF5F00478F
+C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F474F8F8F5F479FDFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F4F679FDFFFFFFFFFFFFFFFFF
+FFE7B76F471F000017275787B79F770087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F3F1700001F
+4787BFCFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F
+000017275F9FD7B7870087C7FFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFF
+FFFFFFFFDFB76F471F00000000004FA7E7FFFFFFF7CF9757271700001F47679FAF974F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000017
+27476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00000000
+0000001F375F8FC7EFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFDFA757173787C7F7FFFFFFFFF7D7
+A76F4727170000000000000087C7FFFFFFFFFFFFFFFFFFEFAF5F00005FAFEFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF
+974F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF67472717000000
+1727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F
+000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7CF9757271700001727578FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFDFA75717
+3787C7F7FFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFFFFFFFEFAF5F00005FAF
+EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00
+5FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFAF5F005FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7
+87373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7B77737378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78737
+3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B77737378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00001F476FB7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFAF6F47
+1F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFB76F67A7DFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5F8FC7EFFFFFFFEFBF772F1777BFF7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFF7C777
+2F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F000000001717170087C7
+FFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFC78700000000000000000000000000
+000087C7FFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFE7A74F000000000000000000
+00000000004FA7E7FFFFFFFFFFC7870077AFC78F57271700001F478FC7F7FFFFFFFFE7A74F0000
+00000000001F476FB7DFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFF7
+D7A76F471F000000001717170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC7870077AFC78F57271700001F478FC7F7FFFFFFFFFFEFC78F57271700001727476FB7DF
+FFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFFFC7870077AFBF874727170017
+275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000000171717004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F000000001717170087C7
+FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F4727170000
+0000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F47
+271700000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFF
+FFFFFFC7870000000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175F
+AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777
+BFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7BF8F5727170017275797CFF7FFFFFFFFFF
+FFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F57A7
+DFF7FFFFFFFFDF9F4F0087C7FFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700174787BFE7F7FFFFFFCF87
+2F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFE7A74F0017478FCFEFFFFFF7
+C7772F3F9FDFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFDF9F4F57
+A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F373787BFEFFFFFFF
+FFFFBF77004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F57A7
+DFF7FFFFFFFFDF9F4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F
+4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFF7FF
+FFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFC78700000000000000000000
+000000004FA7E7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F
+6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F00000000000000004FA7E7FFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFEFBF6F371F4F6F9F
+AFCFDFF7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFCF8F2F4FA7DFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC777
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000
+000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F0000
+0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFF
+FFFFFFC787004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFE7A74F0087C7FF
+FFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F
+0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D79F571F579F
+D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F
+1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF
+9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFDF9F
+47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFF
+EFCF8F4F1F170087C7FFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFF
+FFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFC78700
+4F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C7873F275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFDFAF673F
+17174FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFF
+EFCF8F4F1F170087C7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FF
+FFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD797
+4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFEFC78F5F371F00000000000000
+4FA7E7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7A74F00000000000000
+1F375F8FC7EFFFFFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFE7A74F000000000000001F37
+5F8FC7EFFFFFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFF
+DFB76F3F1700001F4787BFCFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7
+FFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679F
+AF974F4FA7E7FFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFEFC78F5F37
+1F000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+AF674727170000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67
+AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F57
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F
+5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFAF6F471F00000000004FA7E7FFFFFFC78700
+00000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F2F77BFEFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F
+6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F
+378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFDFA74F3787C7F7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFF7D7A76F471F0000001F
+375F97CFF7FFFFFFFFC78700000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFDF
+B76F47271700000000000087C7FFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFF
+FFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FF
+FFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFFFFFC7870077AFC78F5727170000
+1F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F57271700
+0000171717004FA7E7FFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFF
+F7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFE7A74F001747
+8FCFEFFFFFF7C7772F3F9FDFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFF
+C78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F373787BFEFFFFFFFFFFFBF77004FA7E7FFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFEFB7670077C7FFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000000000000000
+004FA7E7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFC787000000000000000000
+00000000004FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F4FA7DFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+C777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFEFAF5F
+00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFF7BF6F004F9FDFFFFF
+FFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B767004F9FDFFFFFFFDFAF673F17174FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F000017275F9F
+D7B7870087C7FFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFE7A74F00
+00000000000000000000000087C7FFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFF
+FFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFEFC78F5F371F000000000000004FA7E7
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFEFC78F5F371F000000000000
+004FA7E7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F3F1700001F4787BFCFA74F4FA7E7FFFFFFFFFFFFFFFFFF
+FFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7DFAF6F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFB76F67A7DFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F
+1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F
+471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B7770000
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7BF6F174F97D7EFFFFFFFEFD7974F378FCFFFFFFFFFFFFFFFFFFFF7C7772F4FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F00
+0000001717170087C7FFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFC78700000000
+000000000000000000000087C7FFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFE7A74F
+00000000000000000000000000004FA7E7FFFFFFFFFFC7870077AFC78F57271700001F478FC7F7
+FFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFFFE7A74F4F97AF9757271700001F478F
+C7F7FFFFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFFC7870077A7B76F
+471F000017275FAFDFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFE7A74F0000
+0000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F4727170000000000
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F00
+00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F000000000000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7
+FFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7BF8F5727170017275797CFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFFFFDFA75F1F001787CFFFFF
+FFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF67
+1F77BFF7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787001747
+87BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFE7A74F
+0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEF
+BF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFEFBF
+77474777BFAF770067B7EFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFC78700
+000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F0000000000
+0000004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFEFB7670077C7FFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD79F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F00000000000000004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F0000000000
+0000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFFFC7870000000000000000004FA7E7FFFF
+FFFFCF8F2F4F97B79F5F375FA7DFFFFFFFC7870067B7EFFFFFFFFFFFFFFFFFFFFFFFC7770087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+DFA74F0087C7FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFF7
+BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAF
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7BFA78F5F
+3F1F3F8FCFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F
+77BFEFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5700173F87C7EFFFFFFFFFFFE7A74F2F8FCFFFFFFFFFFF
+FFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF
+670087C7FFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7CF8F374FA7E7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F17
+77BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767376FB7E7FFFFFFFFE7
+B76F2F378FCFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFEFC78F5F
+371F000000000000004FA7E7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7
+A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FF
+FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF974F
+4FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFF7CF974F1F000017275F9F
+D7B7870087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00000000
+00000000000000000087C7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFE7A74F
+0000000000000000000000000087C7FFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFF
+FFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF974F
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFEFC78F5F371F0000
+00001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF67
+4727170000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7CF9757271700001727578FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787
+578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78737
+3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFEFC78F5727
+17000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7
+C7A787572717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFF
+FFFFFFFFFFFFF7E7C7A787572717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFF7C7773757
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7
+DFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFEFC78F5727
+17000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+C78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFF
+FFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C777
+2F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFCF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F3767B7EF
+FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFE7AF6F6FAFDF
+F7FFFFFFDF9F4F00479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F
+174F97D7EFFFFFFFEFD7974F378FCFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFF
+FFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFF7C777
+2F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B79F67371F00001F476FB7DFFFFFFFFFFFE7A7
+4F4F97B7A76F471F000017275FAFDFFFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFF
+FFFFFFFFFFEFC78F5F371F00000000000087C7FFFFFFFFFFFFEFC78F57271700001727476FB7DF
+FFFFFFFFFFFFFFFFEFC78F572717000000171717004FA7E7FFFFFFFFFFEFC78F57271700001727
+476FB7DFFFFFFFFFFFFFFFF7CF975F371F0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F2F479FDFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC7873F170057AFE7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFF
+FFFFFFFFEFC7873F170057AFE7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFFFFDFA75F1F001787CFFFFFFFFFFFFFFFFFFFFFDF
+9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671777BFF7FFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC7873F170057AFE7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC7873F170057AF
+E7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFF
+DF9F4F1777BFF7FFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFF7BF773F87BFEFFF
+FFFFFFF7E7AF671F77BFF7FFFFFFFFCF8F372F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F4F57
+A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFCF8F373787BFEFFFFFFFFFFFBF77004FA7E7FFFFFF
+DF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F
+375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F1777BFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFEFBF77474777BFAF770067
+B7EFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F
+375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFF
+F7D79F5F375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC78700000000000000000000000000004FA7E7FFFFFFCF87174FA7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFCF8F2F4FA7DFFFFFFFFF
+FFFFFFC787004FA7E7FFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFD79F471F
+3F5F8FA7BFD7EFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFF
+EFB7670077AFBF77474787C7EFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670077AFBF77474787C7EFFFFFE7A74F2F8FCFFFFF
+FFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC7
+87373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F4F97B79F
+5F375FA7DFFFFFFFC7870067B7EFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFF
+EFB7670077AFBF77474787C7EFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7670077AFBF77474787C7EFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFC777
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFD7BFA78F5F3F1F3F8FCFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFF
+FFFFFFFFC7871767B7EFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFBF77373777BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7AF5700173F87C7EFFFFFFFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFC777
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFF
+FFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFFFFFFFFFFFE7B76F2F
+479FDFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7BF77173777B7E7F7FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFDFAF673F17174FA7E7FFFFFFCF8F2F
+2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F374FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFFFFEFD797
+4F1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F374F97D7EFFFFFFFEFD7974F1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F
+9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F273F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767376FB7E7FFFFFFFFE7B76F2F378FCFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFFFFEFD797
+4F1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFF
+FFEFD7974F1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+000000000000001F375F8FC7EFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFFFF7D7A76F47271700000000000087
+C7FFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFFFDFB76F3F1700001F4787BF
+CFA74F4FA7E7FFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFC787000000000000
+001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000000000
+000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700
+001727578FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C777
+2F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA757
+1F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67
+AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F57
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5F
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7
+EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFEFC78F5727170000001F375F97CFF7FF
+FFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7D7A76F471F0000001727476FB7DFFFFFFFFFFFFFFFC7870077AFC78F57
+271700001F478FC7F7FFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFFFFFFEFC78F57
+27170000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFF
+FFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFF7BF77174FA7E7FFFFFFFFFFFFFFFFC787
+17479FDFFFFFE7A74F0087C7FFFFFFFFDFB7673F3F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFF
+DF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFF
+E7A74F4F97AF9757271700001F478FC7F7FFFFFFDF9F471787C7FFFFFFFFFFFFFFFFE7A74F1777
+BFF7FFFFFFC787004FA7E7FFFFFFF7CF8F47275F9FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC7870077A7BF8F5727170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF
+77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFCF8F372F6FB7
+E7FFFFFFFFEFD7974F1767B7EFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767174F97D7EFFFFFFFFFE7B76F2F3797D7FF
+FFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFEFB767004F9FDFFFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFCF8F2F
+4FA7E7FFFFFFFFFFF7BF77175FAFEFFFFFFFE7A74F0087C7F7D79F57275FA7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFEFAF5F1787C7
+FFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFC787004FA7DFEFBF773F3F87C7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFF
+FFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFFFE7A74F0087C7FFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFC7870000000000000000004FA7E7FFFFFFF7BF6F006FBFF7FFFF
+FFFFFFFFFFFFCF8F2F4FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFFFDF9F4F0067B7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFDF9F47479FDFFFFFFFF7BF771F77BFF7FFFFFFFFE7A74F003F47471767
+AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F
+472717000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFF7BF771F77BFF7FFFFFFDF9F47479FDFFFFFFFFFFFFFC787003747471F378FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFF
+FFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFDF9F4F2737271700
+001727578FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFEFAF5F479FDFFFF7BF77378FCFFFFFFF
+FFFFFFE7A74F0087BFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC7
+770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFCF8F3777BFF7FFDF9F475FAFEFFFFFFFFFFF
+FFFFC787004FA7D7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFCF8F2F3777B7E7FFFF
+FFFFEFBF87371777BFF7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F17579FD7EFFFFFFFF7DFA75717479FDFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFCF871767AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFF7BF77
+479FCFBF7767AFEFFFFFFFFFFFFFFFE7A74F0087C7FFFFF7C787373787C7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFF
+FFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F476FBF
+D79F578FCFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFF7D7A76F47271700001727476FA7D7F7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F000000
+1F375F8FC7EFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000
+0000000000000000000087C7FFFFFFFFD7973700000000000000000017275797CFF7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFF
+FFFFE7A74F0000000000000000000000000087C7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFCF8F574F4F77BFF7FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFDF
+A757173787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F0000
+17275787B79F770087C7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0000000000000000000000000087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFEFAF674F4F679FDFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C787
+371757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF6747271700000017
+27476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77174FA7DFFFFFFFFFFFFF
+FFE7AF5F0057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+AF57004F9FDFF7FFFFFFFFFFEFBF772F1787C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000000017275787AFD7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD797
+3F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5F
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+D7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFE7A74F0000000000004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFEFC78F5727170000001F373F375FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001727476FB7DFFFFFFFFFFFFFC787
+0077AFC78F57271700001F478FC7F7FFFFFFFFE7A74F0000000000004FA7E7FFFFFFFFFFFFFFFF
+FFFFEFC78F5727170000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFC78F572717000000171717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFF7BF
+77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFCF8F373787BFEFFFFFFFFFFFBF77004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767174F97D7EFFFFFFFFFE7
+B76F2F3797D7FFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F373787BFEFFFFFFFFFFFBF77004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFCF8F2F4FA7
+DFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFC7870000000000000000004FA7E7FFFFFFFFF7BF
+6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFFFDF9F4F00
+67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F4FA7DFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F
+4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFDF9F
+4F2737271700001727578FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767005FAF
+E7FFFFF7DFA75717000087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFDFAF673700004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F17579FD7EFFFFFFFF7DFA75717
+479FDFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFCF871767AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFDFAF673F17174FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFF
+FFFFFFFFFFFFFFF7CF974F1F00001727578FBFA7770087C7FFFFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFDFB76F3F1700
+001F476FB7A777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC7
+8F5F371F0000001F375F8FC7EFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787000000000000000000000000004FA7E7FFFFFFD7973700000000000000000017275797CF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F3F1700001F4787BFCF
+A74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000
+001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77174FA7DF
+FFFFFFFFFFFFFFE7AF5F0057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7AF57004F9FDFF7FFFFFFFFFFEFBF772F1787C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000000017275787AFD7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB7
+6F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFF
+FFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF973F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF973F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F37
+8FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF973F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F
+97D7FFFFFFFFFFFFFFFFFFFFFFFFCF973F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A787572717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F5F97BFC79F4F004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFC78F5727170000001F375F97CFF7FFFFFFFFE7A74F4F97B79F6737
+1F00001F476FB7DFFFFFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFFFFFC78700
+77AFC78F57271700001F478FC7F7FFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFE7A7
+4F00000000000000000000000000004FA7E7FFFFFFFFC7870000000000000087C7FFFFFFFFFFFF
+FFFFFFFFFFEFC78F5727170000001F375F97CFF7FFFFFFFFE7A74F4F97AF9757271700001F478F
+C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5727170000
+1727476FB7DFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFEFC78F
+5F371F00000000000087C7FFFFFFFFFFC7870077AFC78F57271700001F478FC7F7FFFFDF9F4717
+87C7FFFFFFFFFFFFFFFFCF8F2F2F8FCFFFFFFFE7A74F4F97B79F67371F00001F476FB7DFFFFFFF
+C78700000000000000000000000000000087C7FFFFFFFFFFC7870000000000000087C7FFFFFFFF
+FFFFFFFFFFFFF7D7A76F471F0000001727476FB7DFFFFFFFFFFFFFC7870077A7B76F471F000017
+275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000000
+0000000000000087C7FFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFFFFFF7CF97
+5F371F0000000000004FA7E7FFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFFFFFF7D7A76F471F00000000171717
+0087C7FFFFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFF7D7A76F471F000000
+1F375F97CFF7FFFFFFFFFFFFFFEFC78F572717000000171717004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFC7870000
+0000000000000000000000000087C7FFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFF
+FFFFFFC7870000000000000017275797CFF7FFFFFFFFFFC7870077A7B76F471F000017275FAFDF
+FFFFFFFFFFFFFFEFC78F572717000000171717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFFE7A74F4F97AF975727
+1700001F478FC7F7FFFFFFFFFFFFE7A74F0000000000004FA7E7FFFFFFFFFFFFFFC78700000000
+000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFE7A74F4F97AF9757271700
+001F478FC7F7FFFFFFFFFFFFFFFFEFC78F5F371F00000000000087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0000000000004FA7E7FFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7
+FFFFFFF7BF77174FA7E7FFFFFFFFFFFFFFFFC78717479FDFFFFFFFE7A74F0087C7FFFFFFFFDFB7
+673F3F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000
+000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F1767B7
+EFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF
+671F77BFF7FFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB767006FBFF7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F1767B7EFFFFFE7A74F
+0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFC78700003767AFDFFFFFFFDFA74F006F
+BFF7FFFFFFFFFFCF8F372F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC78700174787BFE7F7FFFF
+FFCF872F4FA7E7FFFFEFAF5F1777BFF7FFFFFFFFFFCF8F2F4FA7E7FFFFFFFFE7A74F0017478FC7
+EFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFEFB767174F97D7EFFFFFFFFFE7B76F2F3797D7FFFFFFFF
+C78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF
+671F77BFF7FFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFEFB767
+1F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFF
+FFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFCF8F373787BFEFFFFFFFFFFFBF77004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F003767A7CF
+EFFFFFFFE7AF5F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFC7870000
+3767AFDFFFFFFFDFA74F006FBFF7FFFFFFCF8F373787BFEFFFFFFFFFFFBF77004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FF
+FFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFCF8F372F67AFDFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFE7A74F0017
+478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFCF8F2F4FA7E7FFFFFFFFFFF7BF77175FAFEFFFFFFFFF
+E7A74F0087C7F7D79F57275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFF
+FFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFC787
+00000000000000000000000000004FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7CF975F371F00000000000000004FA7E7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFF
+FFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFC787004F
+A7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFCF87174FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771F77BFF7FFFFFFC7871F77BFF7FF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFF
+FFFFFFCF8F2F4FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFE7A74F00
+000000000000000087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC787
+00000000000000000000000000004FA7E7FFFFFFFFD79F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F47271700000000
+0000000087C7FFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFEFB7670077C7FFFFFF
+FFFFFFFFE7A74F0087C7FFFFFFC78700000000000000000000000000004FA7E7FFFFCF8F2F4FA7
+DFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC7870000000000000000004FA7E7FFFFFFFFFF
+FFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000
+000087C7FFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFCF8F2F4FA7DFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000
+00000000000000004FA7E7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFCF87174F
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFDF9F47479FDFFFFFFF
+F7BF771F77BFF7FFFFFFFFFFE7A74F003F47471767AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFF
+FFDF9F3F4FA7DFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFDF
+9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFC787004FA7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F
+67B7EFF7BF77378FCFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+F7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7
+BFA78F5F3F1F3F8FCFF7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+DF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFC787006FBFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F
+47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FF
+FFC787004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFC787004FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFEFAF5F479FDFFFF7BF77378FCFFFFFFFFFFFFFFFE7A74F0087BFDFA7571F57A7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFFFFFFEFBF87371777BFF7FFFF
+E7A74F0077BFFFFFFFFFFFE7B76F2F479FDFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F
+1F004FA7E7FFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFFFFFFEFBF87371777BFF7FFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF
+8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FF
+FFFFFFF7BF77173777B7E7F7FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDF9F474F8F8F5F479FDFFFFFFFFFFFFFFFFFE7A74F0077BFFFFFFFFFFF
+E7B76F2F479FDFFFFFFFFFFFFFFFDF9F3F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFEFAF5F17579FD7EFFFFFFFF7DFA75717479FDFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDF9F3F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F374FA7E7FFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFCF8F2F2F77BF
+EFFFFFEFCF8F4F1F170087C7FFFFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFEFAF
+5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFDFAF673F17174FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF6700
+87C7FFFFFFFFFFFFFFFFDF9F3F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFC787004FA7E7FF
+FFFFFFFFFFC787004FA7E7FFFFEFB767004F9FDFFFFFFFDFAF673F17174FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFDF9F3F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F
+006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFF7BF77173777B7E7F7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF6700
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFF7BF77479FCFBF7767AFEFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFF7C787373787C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F47271700
+001727476FA7D7F7FFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFEFC78F
+5F371F000000000000004FA7E7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+CF9757271700001F47679FAF974F4FA7E7FFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7
+FFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFF7D7A76F47271700001727476FA7
+D7F7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFC787004FA7E7FF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7D7A76F47271700000000000087C7FFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00005FAFEFFFFFFFFFFFFFFFFF
+FFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFF7CF97572717000000000087
+C7FFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFEFC78F5F371F0000001F375F
+8FC7EFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF97572717000000000087C7FFFFFFFFFFFFEFC78F
+5F371F000000000000004FA7E7FFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFFFFF
+FFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F77
+0087C7FFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFF7CF974F1F000017275F
+9FD7B7870087C7FFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFDFB76F3F1700
+001F4787BFCFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFF7CF97572717000000000087C7FFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087
+C7FFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFDFB76F3F1700001F4787BFCF
+A74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000
+0000000000000087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFC7870000
+00000000000000000000004FA7E7FFFFFFFFFFFFFFF7CF97572717000000000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000087C7FF
+FFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F000000
+000000004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFF7D7A76F47
+271700000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000004F
+A7E7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFCF8F574F4F77BFF7
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFDFA757173787C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFFFFFFFFF
+FFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00
+5FAFEFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7B77737378FCFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7
+87373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7
+87373787C7F7FFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFF
+FFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFF7BF6F174F97D7EFFFFFFFEFD797
+4F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFF
+FFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFEFB767
+006FBFF7FFFFFFFFFFDFA75F1F001787CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F3F9FDFFFFFFFFFFFEFC7873F170057AFE7FFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFF
+FFFFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFEFBF77474777BFAF770067B7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFFFFFFFFFF
+FFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F4F97B79F5F375FA7DFFFFFFFC78700
+67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670077AFBF77474787C7EFFFFF
+E7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5700173F
+87C7EFFFFFFFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF87
+17001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFF
+FFFFFFFFFFFFFFEFB767376FB7E7FFFFFFFFE7B76F2F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFFFFEFD7974F1767B7EFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001727578FC7EFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F0000001F476FA7D7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767
+B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87
+C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFE7A74F0000000000004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7E7C7A787572717004FA7E7FFFFFFFFFFFFFFFFFFE7A74F0000000000001727
+5787BFDFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7D797471787CFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFF
+FFFFC7870000000000000017275797CFF7FFFFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DF
+FFFFFFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF873F57AFE7FFFFFFFFFFFFFFFFFFFF
+FFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFE7A74F0017
+478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7A74F000000000027579FCF
+EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFDFB76F47271700000000000000
+0087C7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFE7A74F0000000000000000
+00000000000087C7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7DFA75717479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFDF9F47
+004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFF
+FFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFE7A74F0077BFF7FF
+FFFFFFE7B76F2F479FDFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCF9F571F67B7EF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFF
+FFC787000000000000000000000000004FA7E7FFFFFFE7B76F471F000017275787B79F770087C7
+FFFFFFFFEFC78F5F371F000000001F375F8FC7EFFFFFFFFFFFFFFFF7D7A76F4727170000000000
+000087C7FFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFE7A74F000000
+0000001F375F87B7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F000087C7FFFFFFFFFFFFFFFFFFFFEFC78F57
+2717000017275797CFF7FFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFF
+FFFFFFFFFFFFFFCF8F5F8FC7EFFFFFFFEFBF772F1777BFF7FFFFFFFFFFFFFFFFFFFFF7C7772F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F4F97B79F67371F00001F476FB7DFFFFFFFFFFFFFC7870000000000000017275797
+CFF7FFFFFFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFFFFEFC78F5727170000
+1727476FB7DFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFE7A74F0000000000
+0000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FF
+FFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFC78700003767AFDFFFFFFFDFA74F006F
+BFF7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFDFA74F3F9FDFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFC787004F
+A7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFF7D79F571F579FD7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFFFFFFFFFFFE7B76F2F479FDFFFFFFFCF8F2F0067B7
+F7FFFFF7E7B7773F170087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF
+8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFF7C7873F275FA7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7
+EFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFC787004FA7E7FF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FFFF
+E7A74F000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFE7A74F4F97B7A7
+6F471F000017275FAFDFFFFFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFFFE7A74F
+000000000000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFC7870000000000000087C7FFFFFFFFFFFFFFFFFFFFC78700000000000000000000001767B7EF
+FFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFFFFFFFF7D7A76F471F000000001717
+170087C7FFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDF
+FFFFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC7
+8F47479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA76F87C7F7FFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFEFB7
+671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F000000000000000000000000000087C7FFFFFFFFF7CF975F371F00000000000000004FA7E7FF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C78767A7DFFFFFFFFFFFFFFFFFC78700000000000000000000
+000000004FA7E7FFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA75F5FA7DFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767
+005FAFE7FFFFF7DFA75717000087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFF
+FFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFDFA76F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77
+BFEFFFFFEFCF8F4F1F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFF7CF974F1F00001727578FBFA7770087C7FFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A7
+6F4727170000000000000087C7FFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFFFF
+E7A74F0000000000000000000000000087C7FFFFFFE7A74F0000000000000000000000000087C7
+FFFFFFF7CF873700000000000000000000000087C7FFFFFFFFFFEFC78F5F371F00000000000000
+4FA7E7FFFFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFFFFFFFFFFFFFF7BF77
+1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F0000000000004FA7E7FFFFFFFFE7A74F2F77A7
+A76F3F1700001F478FC7F7FFFFFFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFFFC7
+870077AFBF874727170017275797CFF7FFFFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F00173F87C7EFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFD7973F3F9FDFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFDF9F4F57A7DFF7
+FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFD7
+9F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFDFB76F472717000000000000000087C7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC77700
+6FBFF7FFE7A74F000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7BFA78F5F3F1F3F8FCFF7FFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFC787004F
+A7E7FFFFFFFFFFFFF7BF6F0077C7FFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F374FA7E7
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F
+170087C7FFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFCF8F2F2F67AFDFF7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFC787000000
+000000001727476FA7D7F7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7
+B76F471F000017275787B79F770087C7FFFFFFFFC787000000000000001727476FA7D7F7FFFFFF
+FFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF
+5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFF7BF6F174F97D7EFFFFFFFEFD7974F378FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+F7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFC7870077
+A7AF5F1F003787BFBF873F17173F97D7FFFFFFFFC7870000000000000017275797CFF7FFFFFFFF
+FFE7A74F4F97B79F67371F00001F476FB7DFFFFFFFFFFFFFFFDFB76F47271700000000000087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFF
+FFFFDFA75F1F001787CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000017275797
+CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000
+17275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F0000000000004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000000171717004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F00000000171717
+0087C7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFC7870000378FCFDFA74F001767AFE7C787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFD7973F3F9FDFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFC78700
+67AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFCF8F2F4FA7E7FFFFEFBF77474777BFAF770067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFF
+FFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F373787BF
+EFFFFFFFFFFFBF77004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767
+1F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFC787004FA7DFFFE7A74F0077C7FFFFC787004F
+A7E7FFFFFFDFB76F472717000000000000000087C7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF
+A74F3F9FDFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFCF8F2F4F97B79F5F375FA7DFFFFFFFC7870067B7EFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF
+A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F
+4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7
+9F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFCF8F2F4FA7DFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+E7A74F0087C7FFFFC787004FA7E7FFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFE7AF5700173F87C7EFFFFFFFFF
+FFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7BFA78F5F3F1F3F8FCFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFE7A74F0087C7FFFFC787004FA7E7FFCF8F2F0067B7F7FFFFF7E7B7
+773F170087C7FFFFFFFFE7A74F0077BFFFFFFFFFFFE7B76F2F479FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+EFB767376FB7E7FFFFFFFFE7B76F2F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7
+F7FFFFF7E7B7773F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F374FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFF
+DFAF673F17174FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77BF
+EFFFFFEFCF8F4F1F170087C7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFE7A74F0087C7FFFFC787004FA7E7FF
+FFE7B76F471F000017275787B79F770087C7FFFFFFFFE7A74F000000000000001F375F8FC7EFFF
+FFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001727578FC7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFF
+FFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFF
+FFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFFFFFFFFFFFFF
+F7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F000000001F375F8FC7EFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F000000001F375F8FC7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000
+001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000
+000000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFB76F3F1700001F4787BFCFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFFFFFFFFFFFFFDF9F472F
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787
+578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F
+97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C787373787C7F7FFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFF
+FFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78737
+3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFF7
+D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFD7B79767471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFE7AF6F6FAFDFF7FFFFFF
+DF9F4F00479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F6FB7
+E7FFFFFFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFF7BF6F174F97D7EFFFFFFFEFD7974F378FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5727170000001F375F97CFF7FF
+FFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFFE7A74F0000000000004FA7E7FF
+FFFFFFFFFFFFFFFFFFF7D7A76F471F0000000000000000000087C7FFFFFFFFDFB76F4727170000
+0000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F0000000000004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC7873F170057AFE7FFFFFFFFFFFFFFFFFFF7BF77175F
+AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFEFC7
+8F572717000000171717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFFFFDFA75F1F001787
+CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77
+175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F372F6FB7
+E7FFFFFFFFEFD7974F1767B7EFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFFFEFBF772F479FDFFFFF
+FFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F378FCFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F1777BFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFF
+FFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFCF8F373787BFEFFFFFFFFFFFBF77004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFCF8F2F4FA7E7FF
+FFEFBF77474777BFAF770067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFCF8F2F2F77BFEF
+FFFFFFEFBF772F2F8FCFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFD79F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC787373787
+C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670077AFBF77474787
+C7EFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F4FA7DFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFCF8F2F4F97B79F5F375FA7DFFFFFFFC7870067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFF7BF773737371F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F
+1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7BFA78F5F3F1F3F8FCFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFBF77373777BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFF
+FFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFE7AF5700173F87C7EFFFFFFFFFFFE7A74F2F8FCFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFF
+FFFFEFBF87371777BFF7FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFE7AF57378FCFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F37
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFDFAF5F273F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFFFFEFD7974F1767B7EFFFFFFFFFFFFF
+FFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFF
+FFFFFFFFEFB767004F9FDFFFFFFFDFAF673F17174FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767376FB7E7FFFF
+FFFFE7B76F2F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFF7D7A76F47271700001727476FA7D7F7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FFFFFFEFB76700000000000000
+0000001F476FB7DFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFC787
+000000000000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFC7870000000000000000000000000000
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F0000001F47
+6FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFDFB76F3F1700001F4787BFCFA74F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7CF9757271700001727578FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFDF9F47
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDF9F472F77C7F7FFFFFFFFFFFFFFCF872F1787CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF87172F77BFEFFFFFFFFFFFF7DF9F4F004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F00000000001F47
+6797C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/doc/src/cpsa4manual/blanchet_skel13.pdf b/doc/src/cpsa4manual/blanchet_skel13.pdf
new file mode 100644
Binary files /dev/null and b/doc/src/cpsa4manual/blanchet_skel13.pdf differ
diff --git a/doc/src/cpsa4manual/blanchet_tree6.eps b/doc/src/cpsa4manual/blanchet_tree6.eps
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/blanchet_tree6.eps
@@ -0,0 +1,6351 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (/srv/www/vhosts/releases/18/save/queued/5/7/d/57d41d89c8f534dfe601bf02c5e3a334/intermediate1/o_c8fccb1089084dba.eps)
+%%CreationDate: (2015-07-14T15:12:33+02:00)
+%%BoundingBox: -0 -0 238 187
+%%HiResBoundingBox: 0 0 237.775 187
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image.  The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+  %
+  % Get a DirectClass packet.
+  %
+  % Parameters:
+  %   red.
+  %   green.
+  %   blue.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+  %
+  % Display a DirectClass image.
+  %
+  systemdict /colorimage known
+  {
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { DirectClassPacket } false 3 colorimage
+  }
+  {
+    %
+    % No colorimage operator;  convert to grayscale.
+    %
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { GrayDirectClassPacket } image
+  } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+  %
+  % Get a DirectClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   red
+  %   green
+  %   blue
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+  %
+  % Display a PseudoClass image.
+  %
+  % Parameters:
+  %   class: 0-PseudoClass or 1-Grayscale.
+  %
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  class 0 gt
+  {
+    currentfile buffer readline pop
+    token pop /depth exch def pop
+    /grays columns 8 add depth sub depth mul 8 idiv string def
+    columns rows depth
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { currentfile grays readhexstring pop } image
+  }
+  {
+    %
+    % Parameters:
+    %   colors: number of colors in the colormap.
+    %   colormap: red, green, blue color packets.
+    %
+    currentfile buffer readline pop
+    token pop /colors exch def pop
+    /colors colors 3 mul def
+    /colormap colors string def
+    currentfile colormap readhexstring pop pop
+    systemdict /colorimage known
+    {
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { PseudoClassPacket } false 3 colorimage
+    }
+    {
+      %
+      % No colorimage operator;  convert to grayscale.
+      %
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { GrayPseudoClassPacket } image
+    } ifelse
+  } ifelse
+} bind def
+
+/DisplayImage
+{
+  %
+  % Display a DirectClass or PseudoClass image.
+  %
+  % Parameters:
+  %   x & y translation.
+  %   x & y scale.
+  %   label pointsize.
+  %   image label.
+  %   image columns & rows.
+  %   class: 0-DirectClass or 1-PseudoClass.
+  %   compression: 0-none or 1-RunlengthEncoded.
+  %   hex color packets.
+  %
+  gsave
+  /buffer 512 string def
+  /byte 1 string def
+  /color_packet 3 string def
+  /pixels 768 string def
+
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  x y translate
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  currentfile buffer readline pop
+  token pop /pointsize exch def pop
+  /Times-Roman findfont pointsize scalefont setfont
+  x y scale
+  currentfile buffer readline pop
+  token pop /columns exch def
+  token pop /rows exch def pop
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  currentfile buffer readline pop
+  token pop /compression exch def pop
+  class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+  grestore
+} bind def
+%%EndProlog
+%%Page:  1 1
+%%PageBoundingBox: 0 0 238 187
+userdict begin
+DisplayImage
+0 0
+237.775 186.769
+12
+317 249
+0
+0
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000
+00000000000000000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCEFCFF2875FEE1F00EE87C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A75757A7DFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFEFC7873787C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9
+C787EE171FEF8FB7F5E7F7FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B7AFCFFFFFFFFFFFFFFFE7A74F00
+4FA7E7FFFFFFFFFFFFFFE7AFAFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFACF87EE0037F0BFEFFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFF13700EE8FCFFCFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFF7E7BF9767475797AF974F1F00175FB7EFFFFFF7D7A76F471F0000001F476FA7D7
+F7FFFFFFFFFFFFFFF7D7A76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA
+BF77EE0057F1AF8FEF2717EE001FEE87BFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFC78717170000002F77BFEFFFFFFFFFFFFFFFE7
+AF6777B7E7F7FFFFFFF7E7A75F001777BFF7FFFFFFE7AF6777B7E7F7FFFFFFF7E7A75F001777BF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFF58F2FEE2F6FF3E7F7FCFFFFF9D79FEF1700EE8FCFFCFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+8700004FA7E7FFFFFFFFFFFFFFCF8F2F00000000000000000000000000000087C7FFFFCF8F2F00
+000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFF48700EE87C7FFFFFFFF
+FFFFFFFFFFF48F2FEE2F8FF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF48717EE77C7FCFFFFFFFFFFFFFFFFFABF6FEE0087F4FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700004FA7E7FFFFFF
+FFFFFFFFCF8F2F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F1777BFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFABF77EE2F8FF4FFFFFFFFFFFFFFFFF7A74FEE
+67B7F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F002F87CFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFBF7700004FA7E7FFFFFFFFFFFFFFFFDF9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDF
+FFFFFFDF9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFF2
+4F00EE87C7F9FFFFFBE7B7F03737F1CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000
+000000000000000087C7FFFFFFFFFFFFFFC7870000000000173F3F67A7E7FFFFFFFFFFFFFFEFCF
+975F371F000000172747679FCFF7FFFFFFFFFFFFEFCF975F371F000000172747679FCFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CFF15727EE0000EE2757F0C7EFFCFFFFFFFFFFFFEFB767
+1F1F67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+4D4DF20000EE0000EE0000EE0000EE0000EE0000EE0000EEB1B1F9FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F2FFF0000FF0000FF0000FF0000FF0057FFE7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFF8F57FF1700FF1F47FFA7D7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7C7FF875FFF5FA7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFB76FFF1F00FF1F47FFBFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7FF9FD7FFFFFF
+FFFFFFFFFFFFFFEFB7FF479FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FF8737
+FF8FCFFFFFFFFFEFBFFF3717FFAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BFFF3F3FFF1700
+FF4FA7FFFFFFFFFFFFFFFFFFFFFFFFFFC787FF3787FFEFFFFFEFC7FF3737FFCFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB767FF9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A7FF006FFFF7FFFFFFFFFFFFFFFFBF77FF1787FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFF9F3FFF4FA7FFFFFFFFFFFFFFFFFFFFFFDFFF4700FFBFF7FFFFFF
+FFFFFFFFBF6FFF5FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFF673F
+FFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787FF0087FFFFFFFFFFFFFFFFFF
+FFEFB7FF002FFFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA74FFF4FA7FFFFFFFFFFFF
+FFFFFFFFE7AFFF004FFFE7FFFFFFFFFFFFFFFFE7A7FF0067FFEFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB7FF3F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF87FF003FFFDFFFFFFFFFFFFFFFFFEFB7FF0000FFC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFA74FFF4FA7FFFFFFFFFFFFFFFFFFFFC787FF0077FFFFFFFFFFFFFFFFFFFFF7BFFF0017
+FFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB767FF9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7FF2F00FF57A7FFF7FFFFFFF7FFB76FFF004FFFDFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA74FFF4FA7FFFFFFFFFFFFFFFFFFFFC787FF0087
+FFFFFFFFFFFFFFFFFFFFFFC7FF0000FFC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+FF673FFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAFFF471F
+FF001FFF679FFF9F5FFF2F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA74FFF4FA7
+FFFFFFFFFFFFFFFFFFFFC787FF0087FFFFFFFFFFFFFFFFFFFFE7A7FF002FFFCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BFFF3F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7FF4F00FF9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFA74FFF4FA7FFFFFFFFFFFFFFFFFFFFE7A7FF0057FFE7FFFFFFFFFFFFFF
+FFDFA7FF0067FFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF6FFF9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA757FF57A7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA74FFF4FA7FFFFFFFFFFFFFFFFFF
+FFFFDFFF4700FFBFF7FFFFFFFFFFFFFFB767FF5FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7FF6F3FFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7FFDFC7FF6F3FFF478FFFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FF8F2FFF4F9FFFFFFFFFFFFFFFFFFFFFFFFFFFC777FF4F97FFF7FFFFEFC7FF3737FFCFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BFFF3F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A7FF0000FF375FFFAFD7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC7FF0000FF0000FF0000FF004FFFE7FFFFFFFFFFFFFFFFFFFFFFAF6F
+FF1700FF2757FFC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDEDEDDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF858585808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+8080808080808080808080808080808080808080808080808080808080808080808080809E9E9E
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6
+9F9F9F868686D6D6D6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE878787969696EEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF808080B6B6B6FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F69F9F9F868686
+D6D6D6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE878787969696EEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF808080B6B6B6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F69F9F9F868686D6D6D6FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+878787969696EEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFBFBFBF808080B6B6B6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F69F9F9F868686D6D6D6FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE878787969696
+EEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFBFBFBF808080AEAEAEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF6F6F69F9F9F868686CECECEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE878787969696E6E6E6FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF
+808080AEAEAEF6F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF6F6F69F9F9F868686CECECEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE878787969696E6E6E6FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF808080AEAEAE
+F6F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F6F6F69F9F9F868686CECECEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE878787969696E6E6E6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFA787FF371FFF0087
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF808080AEAEAEF6F6F6FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFC7FF3F17FF4F8FFFD7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F69F9F9F
+868686CECECEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7CFFF3700FF77BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE878787969696E6E6E6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F37FF378FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF808080AEAEAEF6F6F6FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BFFF1700FF97AFFF5727FF0000FF4787FFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F69F9F9F868686CECECE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8FFF002FFFB7E7FFFFFFFFEFD7FF5717FF378FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE878787969696E6E6E6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787FF0087FFFFFF
+FFFFFFFFFFFFFFCF8FFF002FFFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFBFBFBF808080AEAEAEF6F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF87FF0077FFFFFFFFFFFFFFFFFFFFF7BFFF0000FFC7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F69F9F9F868686CECECEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BFFF172FFFCFFFFFFFFFFFFFFFFFE7A7
+FF0067FFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE878787
+969696E6E6E6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFA74FFF3787FFEFFFFFFFE7FF7737FF8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFBFBFBF808080AEAEAEF6F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FF9757FF1700FF1727FF8FC7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F69F9F9F868686CECECEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE878787969696E6E6E6
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C7C7C7808080AEAEAEF6F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF6F6F6A7A7A7868686CECECEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6E6E68F8F8F969696E6E6E6FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7C7C7808080
+AEAEAEF6F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF6F6F6A7A7A7868686CECECEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6E6E68F8F8F969696E6E6E6FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7C7C7808080AEAEAEF6F6F6
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6
+A7A7A7868686CECECEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE6E6E68F8F8F969696E6E6E6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7C7C7808080AEAEAEF6F6F6FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6A7A7A7868686
+CECECEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE6E6E68F8F8F969696E6E6E6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7C7C7808080AEAEAEF6F6F6FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6A7A7A7868686CECECEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6E6E6
+8F8F8F969696E6E6E6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC7C7C7808080AEAEAEF6F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4A4A4868686CECECEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C8C8C
+A5A5A5F6F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE868686979797E6E6E6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F69E9E9E878787
+CECECEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFBEBEBE808080AFAFAFF6F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE868686979797
+E6E6E6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF6F6F69E9E9E878787CECECEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBEBEBE808080AFAFAF
+F6F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE868686979797E6E6E6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F69E9E9E878787CECECE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFBEBEBE808080AFAFAFF6F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE868686979797EEEEEE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF6F6F69E9E9E878787D6D6D6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBEBEBE808080B7B7B7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE868686979797EEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F69E9E9E878787D6D6D6FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFBEBEBE808080B7B7B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE868686979797EEEEEEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF6F6F69E9E9E878787D6D6D6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBEBEBE808080B7B7B7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE868686979797EEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F69E9E9E878787D6D6D6FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFBEBEBE808080B7B7B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+FF8F57FF1700FF1727FF8FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE868686979797EEEEEEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFF8F37FF4F97FFEFFFFFFFEFFF772FFF97D7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F6F6F69E9E9E878787D6D6D6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7FF4F00FFA7E7FFFFFFFFFFFF
+FFC787FF4FA7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBEBEBE808080B7B7B7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFFF6700FF5FAFFFFFFFFFFFFFFFAF5FFF9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE868686979797EEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9FFF1717FF87C7FFEFBFFF87B7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F69E9E9E878787D6D6D6FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+FF0000FF3787FFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+BEBEBE808080B7B7B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFFF878FFFCFBFFF4717FF3777FFEFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D6D6868686979797EEEEEEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FF8737FFA7E7FFFFFFFFFFEFFF7737
+FF5FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEEEEE
+969696878787D6D6D6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+FF0000FFBFF7FFFFFFFFFFFFFFF7BFFF0087FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6B6B6808080B7B7B7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFF6717FF579FFFEFFFFFFFFFFFB76FFF57AFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D6D6
+868686979797EEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7FF6F47FF0000
+FF001FFF6FA7FFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEEEEE969696878787D6D6D6FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6B6B6
+808080B7B7B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D6D6868686979797EEEEEEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEEEEE969696
+878787D6D6D6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6B6B6808080B7B7B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D6D6868686
+979797EEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEEEEEE969696878787D6D6D6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6B6B6808080
+B7B7B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFD6D6D6868686979797EEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEEEEE969696878787
+D6D6D6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFB6B6B6808080B7B7B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D6D6868686979797
+EEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEEEEEE969696878787D6D6D6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6B6B6808080B7B7B7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFD6D6D6868686979797EEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEEEEE969696878787D6D6D6
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFB6B6B6808080B7B7B7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6D6D6868686979797F6F6F6
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEEEEEEBEBEBEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/doc/src/cpsa4manual/blanchet_tree6.pdf b/doc/src/cpsa4manual/blanchet_tree6.pdf
new file mode 100644
Binary files /dev/null and b/doc/src/cpsa4manual/blanchet_tree6.pdf differ
diff --git a/doc/src/cpsa4manual/carriers.mp b/doc/src/cpsa4manual/carriers.mp
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/carriers.mp
@@ -0,0 +1,64 @@
+filenametemplate "%j-%c.mps";
+
+verbatimtex
+\documentclass[12pt]{article}
+\newcommand{\enc}[2]{\{\!|#1|\!\}_{#2}}
+\begin{document}
+etex
+
+numeric base_width;
+begingroup;
+  path p; p = bbox(btex $\strut$ etex rotated 90);
+  base_width = 1.3 xpart (lrcorner p - llcorner p);
+endgroup;
+
+input boxes;
+
+beginfig(0);
+  boxit.b1(btex $X_\top$ etex);
+  boxit.b2(btex $\mathsf{text}$ etex rotated 90);
+  boxit.b3(btex $\mathsf{data}$ etex rotated 90);
+  boxit.b4(btex $\mathsf{name}$ etex rotated 90);
+  boxit.b5(btex $\mathsf{akey}$ etex rotated 90);
+  boxit.b6(btex $\mathsf{skey}$ etex rotated 90);
+  boxit.b7(btex $\mathsf{tags}$ etex rotated 90);
+
+  b4.s = origin;
+
+  for i = 1 upto 6:
+    b[i].sw=b[i+1].se;
+    b[i].nw=b[i+1].ne;
+  endfor;
+
+  for i = 1 upto 7:
+    b[i].e + (base_width, 0) = b[i].w;
+  endfor;
+
+  for i = 4 upto 6:
+    drawboxed(b[i]);
+  endfor;
+
+  for i = 3 downto 2:
+    drawboxed(b[i]);
+  endfor;
+
+  draw pic b[1];
+  draw pic b[7];
+
+  % Top of triangle contrained to force a right triange
+  z1 = b4.n - b4.s + (b7.nw - b4.n) rotated 90;
+
+  ypart z2 = ypart z3 = 0;
+  z2 = whatever[b7.nw,z1];
+  z3 = whatever[b1.ne,z1];
+
+  draw z1--z2--z3--z1;
+
+  label(btex \begin{tabular}{c}pairings\\[1ex]
+    encryptions\end{tabular} etex, .5z1);
+endfig;
+
+verbatimtex
+\end{document}
+etex
+bye;
diff --git a/doc/src/cpsa4manual/channels_state.tex b/doc/src/cpsa4manual/channels_state.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/channels_state.tex
@@ -0,0 +1,928 @@
+
+\chapter{Channels and State}
+\label{chap:channels:state}
+
+Suppose that we are developing a protocol.  We may well want to work
+out the overall message flow, and understand the consequences of
+different choices, before we figure out how---concretely---to protect
+particular messages.  For instance, we may know that the sender of a
+particular message will want to ensure that its contents will remain
+confidential, without selecting a particular mechanism for doing so.
+Having worked out the overall structure of the protocol, it may later
+be clear how to discharge the assumption that the contents remain
+confidential.  Or in other cases, we may know that we will use the
+same main message flow in several contexts, and in each of those
+contexts there may be different mechanisms that would make sense.
+
+In those kinds of development, {\cpsa} allows us to assume that
+messages are transmitted over \emph{channels} that are assumed to
+offer security guarantees to the messages they carry.  The treatment
+of channels also helped determine an approach to representing
+long-term, cross-session mutable state in {\cpsa}.  The goal of this
+chapter is to explain how to use the {\cpsa} channel mechanism, and to
+build on that understanding to work with long-term mutable state.
+
+\paragraph{Channel security guarantees.}  The most important
+guarantees are \emph{authenticated} channels and \emph{confidential}
+channels.  They stipulate actions that must be taken by some instance
+of a role of the protocol, rather than by the adversary.
+%
+\begin{itemize}
+  \item An authenticated channel guarantees to the recipient of a
+  message that this message was sent by some instance of a role of the
+  protocol.
+  \item A confidential channel guarantees to the sender that this
+  transmission will not be received by the adversary, i.e.~that any
+  recipient is an instance of a role of the protocol.  Hence, any
+  disclosure of not-yet-public parts of the message occur only if the
+  message is received and acted on by one or more instances of
+  protocol roles.
+\end{itemize}
+%
+A channel that is both \emph{authenticated} and \emph{confidential} is
+sometimes called a \emph{secure} channel.
+
+Later, when we have developed an adequate protocol using the channel
+properties, we can refine it to one or more protocols that use
+specific cryptographic mechanisms to achieve the properties we need.
+For instance, digital signatures or Message Authentication Codes can
+achieve authenticity, public-key encryption can achieve
+confidentiality, and symmetric encryption (e.g.~an authenticated
+encryption mode) can implement a secure channel.
+
+Likewise, specific TLS modes can be used to implement authentic,
+confidential, and secure channels.  For instance, a typical
+unilaterally authenticated TLS connection provides the client an
+authenticated channel for messages from the server, while it provides
+a confidential channel for messages to the server.  In itself, the TLS
+unilateral handshake provides no guarantee to the server.
+
+Other properties of channels are sometimes of interest, but are not
+directly implemented by {\cpsa}.  For instance, a \emph{fair} channel
+ensures that a message transmitted onto it will eventually be
+delivered to some instance of a role of the protocol.  A
+\emph{deliver-once} channel ensures that a message transmitted onto it
+will be delivered at most once to any instance of a role of the
+protocol.  \emph{In-order delivery} is another possible channel
+property.  Some of these may be represented indirectly in {\cpsa}
+specifications~\cite{Guttman12}.  However, authenticated and
+confidential channels are often useful in protocol design, and fit
+smoothly into the {\cpsa} authentication test method.
+
+In Section~\ref{sec:channels:state:ch}, we describe how to use the
+{\cpsa} channel mechanism.
+
+\paragraph{Channels and long-term state.}  In
+Section~\ref{sec:channels:state:state}, we also describe a model of
+protocols that rely on long-term, cross-session state, which is based
+on the channel mechanism.  Here we consider a regular principal that
+interacts privately with a device containing some registers that
+maintain state.\footnote{By a \emph{regular} principal for a protocol
+  $\Pi$, we mean a non-adversarial principal, i.e.~one that acts only
+  in accordance with the protocol $\Pi$.}
+%
+The principal may read values out of the state registers and write
+back other values, often related values; these actions determine the
+state transitions the device can undergo when used in this protocol.
+
+The connection with channels is this.  When a regular protocol
+participant writes a value into a state register, this is akin to
+sending a message to oneself at a future moment.  What one relies on,
+when using this mechanism, is that the recipient of this
+message---one's future self---is still a regular participant, so that
+any future disclosure to the adversary will be due to some other
+action.  That is, writing to a state register is sending a message on
+a confidential channel.
+
+When reading from a state register, there are two possibilities.  One
+is that one's past self wrote this value into the state register
+previously.  In this case, reading from the state register is like
+receiving a message on an authenticated channel.  However, there is
+another case also, in which the value read may simply have been an
+initial state, available from the state register at power-up, so to
+speak.  We call a state value a \emph{generated state value} when the
+second case cannot apply to it, i.e.~it is a value that may have been
+written into the register but was definitely not available simply as
+an initial, power-up value.  We summarize the idea by saying that
+reading a generated state value from a state register is receiving a
+authenticated value from a channel.
+
+Thus, state registers offer a confidentiality property for written
+values, and an authenticity property for read values, if they are
+generated values.  Thus, for state registers, the duality of
+confidentiality and authenticity holds in a limited form, i.e.~for
+generated values.  This is the reason why {\cpsa} implements state via
+the same ideas as confidential and authenticated channels, although
+state requires some additional properties that will be described below
+in Section~\ref{sec:channels:state:state}.
+
+\section{Channels}
+\label{sec:channels:state:ch}
+
+The {\cpsa} model of authenticated or confidential channels requires
+only a small amount of syntax.  First, variables of sort \verb|chan|
+may be declared to range over channels, for instance:
+%
+\begin{verbatim}
+    (vars ... (ch-name-1 ch-name-2 chan) ...)
+\end{verbatim}
+%
+Second, a transmission event or reception event may have an additional
+component that is a variable of sort \verb|chan|, taking the forms:
+%
+\begin{verbatim}
+    (send ch-name-1 sent-msg)
+    (recv ch-name-2 recvd-msg)
+\end{verbatim}
+%
+Finally, we may assert the \emph{authenticated} or \emph{confidential}
+property of a channel, using the annotations:
+%
+\begin{verbatim}
+    (auth ch-name-1 ch-name-2)
+    (conf ch-name-2)
+\end{verbatim}
+%
+As with annotations such as \verb|uniq-orig| and \verb|non-orig|,
+these can appear either within a \verb|defskeleton| query form or
+within a \verb|defrole| role declaration.  As in the previous cases,
+the semantics for an annotation in a particular query is that the
+annotation holds only for that specific instance.  An annotation in a
+role declaration is a much stronger assumption.  It instructs {\cpsa}
+to add the instance of the assumption \emph{every time} it adds an
+instance of that role.  Since it is a much stronger assumption, it
+yields less precise analyses.
+
+\subsection{Yahalom with Channels}
+\label{sec:channels:state:ch:yahalom}
+
+We provide two examples of the channel mechanism, both based on the
+Yahalom protocol.  They both use channels with annotations to explain
+the security properties needed for interaction with the key server.
+An explicit encryption is present only for the last message, in which
+the initiator encrypts and returns the responder's nonce, establishing
+that the session key has been received and accepted, and was indeed
+requested by the initiator when starting the session.
+
+In the first version (Section~\ref{sec:channels:state:ch:role:level}),
+we ``take the easy way out,'' and incorporate the channel annotations
+into the role definitions, meaning that {\cpsa} will introduce a new
+instance of the assumption for every instance of a role that it
+considers.
+
+In the second version, we use the slower mechanism, and introduce each
+individual channel property in a declaration in the \verb|defskeleton|
+query forms.  From the latter we learn a kind of
+\emph{session-independence\/}:  The security properties of a
+particular session of the protocol depend only in the channels that
+should be used in that protocol session, and the messages cannot leak
+from one session to undermine the security goals of another session.
+
+It is perfectly reasonable in a development process to explore the
+protocol design choices with the channel annotations as assumptions at
+the role definition level first.  When analysis shows that a version
+is acceptable, then one can remove the role definition annotations,
+and add assumptions strand-by-strand during a stepwise analysis.
+
+If this analysis yields an acceptable result, for instance the
+session-independence property, one can then further refine the
+protocol by incorporating cryptographic mechanisms to ensure the
+channel properties are met.  In the original Yahalom protocol (see
+e.g.~\cite{Paulson97c}), the channels are implemented via symmetric
+cryptography.  If the initiator and responder each share an
+uncompromised long term key with the server, then an authenticated
+encryption mode certainly satisfies the channel properties.  However,
+other mechanisms are also possible, e.g.~asymmetric primitives or,
+indeed, TLS.
+
+Indeed, a choice of a particular primitive early in the design process
+obscures what actual properties are needed for the protocol to achieve
+its goals.
+
+\paragraph{Yahalom:  Protocol idea.}  In the Yahalom protocol, the
+initiator $A$ provides a nonce $N_A$ to the responder $B$, who passes
+that along with its own nonce $N_B$ and both names $A,B$ to a key
+server.  The server then creates a fresh session key $K$ for $A$ and
+$B$, packaging it separately for $A$ and for $B$ with their names; the
+package for $A$ also contains $N_A,N_B$.  $A$ completes the exchange
+by encrypting $B$'s nonce $N_B$ with the session key $K$.
+
+\paragraph{Yahalom:  Channel assumptions.}  In any session, the server
+needs a confidentiality guarantee for the packages it sends in order
+to protect the session key $K$ in that session.  So that requires the
+channel confidentiality property for the outbound channels from the
+server.  Moreover, the initiator and responder each need an
+authentication guarantee for the packages it receives, so as to know
+that the key is safe to use.
+
+\subsection{Yahalom with Channels, 1:  Role-level assumptions}
+\label{sec:channels:state:ch:role:level}
+
+We first codify the confidentiality and authenticity channel
+properties using annotations in the role declarations.  This
+corresponds to the stronger assumption that compliant principals
+\emph{always} use channels that successfully achieve those security
+properties.  Since the assumption is stronger, any conclusions we
+reach will be \emph{weaker} conclusions: they are implications that
+depend on a stronger hypothesis.  In
+Section~\ref{sec:channels:state:ch:strand:level}, we will show how,
+with a bit of extra work, we can find the tightest relevant
+hypotheses.
+
+In Fig.~\ref{fig:yahalom:ch:role} we show the three roles of the
+protocol with the behavior and channel assumptions mentioned at the
+end of Section~\ref{sec:channels:state:ch:yahalom}.  {\cpsa} will
+automatically instantiate the channel assumptions for each role every
+time it incorporates an instance of the role.
+%
+\begin{figure}\small
+%
+\begin{verbatim}(defprotocol yahalom basic
+  (defrole init
+    (vars (a b c name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a))
+           (recv ch3 (cat a b k n-a n-b))
+           (send (enc n-b k)))
+    (auth ch3))
+
+  (defrole resp
+    (vars (b a c name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a))
+           (send ch1 (cat a b n-a n-b))
+           (recv ch2 (cat a b k))
+           (recv (enc n-b k)))
+    (auth ch2))
+
+  (defrole serv
+    (vars (c a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b))
+           (send ch3 (cat a b k n-a n-b))
+           (send ch2 (cat a b k)))
+    (conf ch3 ch2)
+    (uniq-orig k)))\end{verbatim}
+  \caption[Yahalom (role decls.)]{Yahalom protocol with channel
+    assumptions in role declarations}
+  \label{fig:yahalom:ch:role}
+\end{figure}
+
+We can now ask {\cpsa} a succession of queries about this protocol.
+First, if the responder has a complete, four-step local session, then
+there are corresponding server and initiator runs
+(Fig.~\ref{fig:yahalom:ch:resp:pov}).  All participants agree on the
+identities $A,B$, the responder's nonce $N_b$, and the session key
+$K$.  Moreover, the server and initiator agree on the initiator's
+nonce $N_A$, but the responder does not need to.
+%
+\begin{figure}
+  \centering
+  \begin{minipage}[c][2.5in][c]{.4\linewidth}
+    \includegraphics[height=2.5in]{yahalom_ch_resp_pov.png}
+  \end{minipage}
+  \begin{minipage}[c][2.5in][c]{.5\linewidth}\small
+\begin{verbatim}(defstrand resp 4 (k k) (n-a n-a)
+           (n-b n-b) (b b) (a a) ...)
+
+(defstrand serv 3 (k k) (n-a n-a-0)
+           (n-b n-b) (a a) (b b) ...)
+
+(defstrand init 3 (k k) (n-a n-a-0)
+           (n-b n-b) (a a) (b b) ...)
+\end{verbatim}
+  \end{minipage}
+  \caption{The responder's point of view}
+  \label{fig:yahalom:ch:resp:pov}
+\end{figure}
+%
+{\cpsa} also validates that the session key $K$ cannot be disclosed.
+
+When we ask what follows if the initiator has a full local session,
+the result is more limited.  The initiator authenticates a server
+session of at least length two, agreeing on the identities $A,B$, the
+two nonces, and the session key $K$.  Again, {\cpsa} validates that
+$K$ cannot be disclosed.
+
+Observe that if any initiator and responder have local sessions
+involving a shared key $K$, then at least the result of
+Fig.~\ref{fig:yahalom:ch:resp:pov} must hold, and they agree on each
+other's identities $A,B$.
+
+The server receives no authentication guarantees from the protocol as
+defined here, but is guaranteed that the shared key $K$ will remain
+undisclosed.  This is undesirable from one point of view, as it may
+cost resources for the key server to generate a new key and package
+it.  Thus, an adversary can force this to occur as desired.  This is
+(presumably) the reason why the original Yahalom protocol encrypts the
+message from the responder to the server (the arrow that appears
+dashed in Fig.~\ref{fig:yahalom:ch:resp:pov}).  We may achieve the
+desired effect by stipulating that the server's channel \verb|ch1| is
+authenticated.  Our analysis shows that there is no benefit to
+confidentiality on that channel.
+
+One might, however, doubt whether there is much benefit to the
+\texttt{(auth ch1)} stipulation, since the adversary can still arrange
+for messages from legitimate responders to be delivered repeatedly.
+
+We can infer from this analysis that symmetric authenticated
+encryption long term key shared between the key server and each client
+is a good way to implement the channels \verb|ch2| and \verb|ch3|,
+since the key server relies on their confidentiality property and the
+clients rely on their authentication property.
+
+\subsection{Yahalom with Channels, 2:  Per-strand assumptions}
+\label{sec:channels:state:ch:strand:level}
+
+We now remove the role definition annotations, i.e.~we omit the
+\texttt{(conf ch3 ch2)} annotation from the declaration of the server,
+and we omit the \texttt{(auth ch2)} and \texttt{(auth ch3)}
+annotations from the responder and initiator declarations, resp.  We
+will now ask a succession of queries, each eliciting some more
+information, and allowing us to add small assumptions at each stage to
+identify the individual channel properties that matter.  First, we
+ask:
+%
+{\small
+\begin{verbatim}(defskeleton yahalom
+  (vars (a b c name) (n-b text) (ch1 ch2 chan))
+  (defstrand resp 4 (a a) (b b) (n-b n-b) (ch1 ch1) (ch2 ch2))
+  (auth ch2)
+  (uniq-orig n-b))\end{verbatim}}
+%
+This yields the output in Fig.~\ref{fig:yahalom:q:resp:pov:1}.
+%
+\begin{figure}
+  \begin{minipage}[c][2in][c]{.25\linewidth}
+    \includegraphics[height=2in]{yahalom_q_resp_pov1.png}
+  \end{minipage}
+  \begin{minipage}[c][2in][c]{.7\linewidth}\small
+\begin{verbatim}(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text)
+                 (a b name) ...)
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b)
+                    (b b) (a a) ...)
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0)
+                    (a a) (b b) ...)
+  (precedes ((1 2) (0 2)))
+  (uniq-orig k n-b)
+  (auth ch2) ...) \end{verbatim}
+  \end{minipage}
+  \caption{Responder's first guarantee}
+  \label{fig:yahalom:q:resp:pov:1}
+\end{figure}
+
+Now that we have ascertained a server run occurred with the same
+identities $A,B$ and session key $K$, we may resubmit this output to
+{\cpsa} with the added annotation \texttt{(conf ch2 ch3)}, saying that
+we will assume that \emph{this} server session successfully used
+channels with the confidential property.  At this point, {\cpsa}
+completes the analysis with the same shape shown in
+Fig.~\ref{fig:yahalom:ch:resp:pov}.
+
+This establishes that no other channel assumptions could be relevant
+to the conclusion.  This was not evident from
+Fig.~\ref{fig:yahalom:ch:resp:pov}, since other channel assumptions
+may have led {\cpsa} to discard some branches of analysis as
+impossible, which might then never be displayed.
+
+The analysis from the initiator's point of view can then follow the
+same pattern.
+
+\section{State}
+\label{sec:channels:state:state}
+
+{\cpsa} models situations in which regular principals control devices
+with state registers or storage locations---we will henceforth use the
+term \emph{location} for all such pieces of memory---that allow long
+term storage and coordination among different local protocol sessions.%
+%
+\footnote{Allowing the Dolev-Yao adversary to have devices does not
+  strengthen its powers, as it can already remember unbounded numbers
+  of messages and perform all the reasonable operations on them.  This
+  is why our model highlights devices under the control of the regular
+  principals.}
+%
+Each protocol role determines when a regular principal reads from a
+device location; what it does with the value read from it, and the
+parts of the value; and when it writes a new value into a location.
+
+\paragraph{Locations and channels.}  As we mentioned at the start of
+the chapter, {\cpsa} relies on the analogy between reading from
+locations and receiving messages from channels, and between writing to
+locations and sending messages onto channels.  In particular, writing
+to a location is like sending to a confidential channel, as we are
+modeling regular principals in control of the devices.  And reading a
+state value is partly like receiving from an authenticated channel:
+Unless the value read might be the result of device initialization, it
+must have been written by a previous write action by a regular
+principal.  We say that a value is a \emph{generated state value} when
+we model it as not a possible result of device initialization.  When
+{\cpsa} knows of a value read from a location that it is a generated
+state value, it treats this as an authenticated channel reception.  It
+then investigates the possible ways that regular principals may
+previously have written this state value to the location.
+
+\paragraph{Contrast:  Locations are mutable.}  Channels can deliver
+the same message more than once, and, since redelivery is never ruled
+out, effectively always remember their previous contents.  However,
+locations are mutable.  After a transition event observes the value in
+a location and writes a new (possibly related) value into the
+location, subsequent reads are guaranteed to deliver the new value,
+not its predecessor.  Although any number of read events may observe
+the same value, a transition event ensures that the new value is the
+only value available from this location.  This fact---that transitions
+erase the past---is the essential characteristic of mutable state.
+
+\paragraph{``Leads to.''}  When a state transition event $n_0$ writes
+a value $v$ into a state location $\ell$, and a later observation or
+transition event $n_1$ obtains this value $v$ from $\ell$, without any
+other transitions having occurred to $\ell$ in between, we say that
+$n_0$ \emph{leads to} $n_1$, and we write $n_0\leadsto n_1$.
+
+Thus, when $n_0\leadsto n_1$ the following conclusions hold:
+\begin{renumerate}
+  \item $n_0$ and $n_1$ are events on the same location $\ell$;
+  \item  $n_0$ is a transition event;
+  \item $n_0$ precedes $n_1$, also written $n_0\prec n_1$; and
+  \item $n_1$ receives the value that $n_0$ has written into $\ell$.
+\end{renumerate}
+%
+The event $n_1$ may just be a state observation rather than a state
+transition.  In the former case, it is a pure read against $\ell$.  In
+the latter case, it is the beginning of a transition event, which we
+think of as consisting of a read of the old value in $\ell$ followed
+by a write of the new value into $\ell$.
+
+Internally, {\cpsa} represents a state event as transmitting or
+receiving a pair $t=(p,v)$.  The second component is the state value
+$v$ being read or written.  The first component is a special value
+which is thought of as a spacetime point $p$.  If the event is a write
+event, then {\cpsa} assumes $p$ to be uniquely originating.  {\cpsa}
+defines $n_0\leadsto n_1$ to hold iff (i) $n_0$ is a state node; (ii)
+$n_0\prec n_1$, and (iii) for some message $t$, $n_0$ transmits $t$
+and $n_1$ receives $t$.
+
+This {\cpsa} representation lets us add to (1)--(4) another
+conclusion:  When $n_0\leadsto n_1$,
+%
+\begin{renumerate}
+  \item if also $n_2\leadsto n_1$, then $n_0=n_2$.
+\end{renumerate}
+
+\subsection{The axioms of state}
+\label{sec:channels:state:axioms}
+
+The mutating, past-erasing property of transitions is expressed in two
+basic properties of the leads-to relation.  They say in essence that
+leads-to is \emph{discrete} for transitions events on any one
+location.
+
+We write them diagrammatically in Fig.~\ref{fig:leads:to}, using a
+boxed variable $\xymatrix@1{*+[F]{\,m\,\strut}}$ to represent a
+transition event, and a plain variable $m$ to represent an event that
+may be either a transition or a pure observation.  We use a wavy arrow
+to represent leads-to; a dotted arrow to represent the precedence
+ordering $\prec$; and $\preceq$ to express the weak ordering,
+i.e.~$n_0\preceq n_1$ holds if and only if $n_0\prec n_1$ or
+$n_0=n_1$.
+%
+\begin{figure}
+  \centering
+  %
+  \[(i)\qquad
+    \xymatrix@R=1mm@C=4mm{&
+      *+[F]{n}\ar@{~>}[ddl]\ar@{.>}[ddr]^{\prec} & & & &
+      *+[F]{n}\ar@{~>}[ddl]\ar@{.>}[ddr]^{\prec} \\
+      & & & \Longrightarrow &    \\
+      *+[F]{m_0} & & *+[F]{m_1} & &
+      *+[F]{m_0} & \textcolor{red}{\preceq} & *+[F]{m_1} }
+    %
+  \]\vspace{3ex}
+  %
+  \[(ii)\qquad
+    \xymatrix@R=1mm@C=4mm{*+[F]{m_0}\ar@{.>}[ddr]_{\prec} & &
+      *+[F]{m_1}\ar@{~>}[ddl] & &
+      *+[F]{m_0}\ar@{.>}[ddr]_{\prec} &\textcolor{red}{\preceq} &
+      *+[F]{m_1}\ar@{~>}[ddl]\\
+      & & & \Longrightarrow   \\
+      & n && && n}
+  \]
+  \caption[Leads-to axioms]{Two axioms about state events on the same
+    location $\ell$}
+  \label{fig:leads:to}
+\end{figure}
+%
+
+In each case, the events $n,m_0,m_1$ are all state events on the same
+location $\ell$.
+%
+\begin{description}
+  \item[Axiom (i)] states that when $n\leadsto m_0$ and $n\prec m_1$,
+  all of these being transition events on $\ell$, then
+  $m_0\preceq m_1$.  Thus, the leads-to relation is a discrete step,
+  and if $m_0\not= m_1$, then the latter comes definitely later.
+
+  We call axiom (i) the \textbf{discrete-after} axiom, since it forces
+  $m_1$ to come after a transition that is the target of the
+  $\leadsto$ edge.
+  \item[Axiom (ii)] states that when $m_0\prec n$ and $m_1\leadsto n$,
+  each $m_i$ being a transition on $\ell$, then $m_0\preceq m_1$.
+  Again, the leads-to relation is a discrete step, and if
+  $m_0\not= m_1$, then the former comes definitely earlier.
+
+  We call axiom (ii) the \textbf{discrete-before} axiom, since it
+  forces $m_0$ to come before a transition that is the source of the
+  $\leadsto$ edge.
+\end{description}
+%
+The symmetry between these two principles is better brought out if we
+omit to state, in (i), that $n$ is a transition.  The source of a
+leads-to edge is always a transition.  The common idea is that a weak
+ordering holds between $m_0$ and $m_1$, whenever one is a connected to
+$n$ by $\leadsto$ and the other by $\prec$.  They jointly say:  a
+transition ordered with respect to one end of a leads-to arrow has the
+corresponding weak ordering with respect to the other end.
+
+Their concrete form may be found in the output of {\cpsa}
+specifications using state, such as~\texttt{examples/open-closed.tst},
+although {\cpsa} refers to them as the \texttt{shearsRule} and
+\texttt{invShearsRule}, resp.
+
+\subsection{Consequences of the axioms}
+\label{sec:channels:state:consequences}
+
+What is distinctive of state---over and above channel confidentiality
+and channel authenticity for generated state values---is captured in
+the \emph{discrete-after} and \emph{discrete-before} axioms.  However,
+each of them has a disjunction as its conclusion, namely either
+$m_0=m_1$ or $m_0\prec m_1$.  Disjunctions are logically less
+convenient than non-disjunctive conclusions, since separate
+possibilities must each be explored.
+%
+\begin{figure}
+  \centering\[ \xymatrix@R=1mm@C=1mm{&
+      *+[F]{n}\ar@{~>}[ddl]\ar@{~>}[ddr] & \\
+      & & & \Longrightarrow &  \textcolor{red}{m_0=m_1}  \\
+      *+[F]{m_0} & & *+[F]{m_1}} \qquad\qquad
+    %
+    \xymatrix@R=1mm@C=1mm{&
+      *+[F]{n_0}\ar@{~>}[ddl]\ar@{.>}[ddr]^{\prec} & \\
+      & & & \Longrightarrow &  \textcolor{red}{\mathsf{false}}  \\
+      *+[F]{n_1} &\succ & *+[F]{m}}
+    %
+  \]
+  \[ \xymatrix@R=1mm@C=4mm{&
+      *+[F]{n_0}\ar@{~>}[ddl]\ar@{~>}[ddr] & \\
+      & & & \Longrightarrow &  \textcolor{red}{\mathsf{false}}  \\
+      *+[F]{n_1} &\prec & {m}}
+    %
+  \]
+  \caption{Three derived rules for state:  Scissors, no interruption,
+    and cake}
+  \label{fig:derived:state:rules}
+\end{figure}
+%
+Hence, {\cpsa} also formalizes three consequences of the discreteness
+axioms.  One of them has the conclusion $m_0=m_1$, and the other two
+have the conclusion \emph {false}.  Again assuming that the state
+events concern the same location $\ell$, the rules are:
+%
+\begin{description}
+  \item[Scissors rule,] which says that when a given node $n$ leads to
+  transition nodes $m_0,m_1$, the latter two are equal.
+
+  Equivalently, a single node leads to at most one transition node.
+  \item[No interruption,] which says that a transition node $m$ is
+  never properly between transition nodes $n_0$ and $n_1$ when
+  $n_0\leadsto n_1$.
+
+  Thus, a transition node $m$ cannot ``interrupt'' the leads-to edge.
+  \item[Cake rule,] which says that if a node $n_0$ leads to two other
+  nodes, and one of them is a transition $n_1$, then the other one $m$
+  does not follow the transition.
+
+  Thus, it says that a transition $n_1$ caps off the period when other
+  events $m$ (which are pure observations by the scissors rule) may
+  result from $n_0$.
+\end{description}
+%
+We present these diagrammatically in
+Fig.~\ref{fig:derived:state:rules}.  The two leads-to edges of the
+\emph{scissors rule} are like the blades, which the equation
+${m_0=m_1}$ snaps shut.  The cake rule formalizes the fact that you
+can't eat your cake at $n_1$ and have it too at $m$, at least not if
+$m$ follows $n_1$.
+
+Again, their concrete form may be found in the output of {\cpsa}
+specifications using state, such as~\texttt{examples/open-closed.tst}.
+
+\paragraph{Why these rules are consequences.}  Each of these rules is
+easily justified from the discrete-after and discrete-before rules,
+using the facts that $n\leadsto m$ implies $n\prec m$ and that
+$\preceq$ is a (weak) partial order.
+
+\begin{description}
+  \item[Scissors rule:]  The scissors rule follows by two applications
+  of the discrete-after axiom.  Specifically, since $n\leadsto m_1$
+  implies $n\prec m_1$, we can apply the discrete-after axiom to infer
+  that $m_0\preceq m_1$.  Symmetrically, observing thay
+  $n\leadsto m_0$ implies $n\prec m_0$, we can again apply the
+  discrete-after axiom to infer that $m_1\preceq m_0$.
+
+  The antisymmetry of $\preceq$ implies that $m_0=m_1$.
+  \item[No interruptions rule:]  For the no interruptions rule, apply
+  discrete-after to infer that $n_1\preceq m$.  But since
+  $m \prec n_1$ is also assumed, this would yield a cycle.
+  \item[Cake rule:]  For the cake rule, apply discrete-before,
+  instantiating its variable $m_0$ as $m$, its $m_1$ as $n_0$, and its
+  $n$ as $n_1$.  Thus, it follows that $m\preceq n_0$, but the
+  leads-to edge $n_0\leadsto m$ implies $n_0\prec m$, yielding a
+  contradiction.
+\end{description}
+
+\subsection{Syntax for state}
+\label{sec:channels:state:syntax}
+
+In defining the syntax for modeling state, we first describe state
+events and the state segments that they can build up.  We then
+describe how to specify generated state values---which were mentioned
+at the beginning of the chapter---and critical sections---which are
+atomicity assumptions about state segments.
+
+\paragraph{State events and state segments.}  In addition to the
+\verb|chan| sort discussed in Section~\ref{sec:channels:state:ch},
+there is a sort \verb|locn|.  A variable \verb|lv| declared of sort
+\verb|locn| via a declaration such as \verb|(lv locn)| may be used as
+the target of \verb|load| and \verb|stor| events; these events
+indicate that a value is to be read from a location or written to it.
+Thus, Fig.~\ref{fig:dev:open}, which uses a number of operators from a
+\texttt{lang} field,%
+\footnote{See Section~\ref{sec:algebra:lang:field}.  In this example,
+  \texttt{dev-key-state}, \texttt{open-req}, \texttt{door-state}, and
+  \texttt{opened} are tuple operators, and \texttt{hash-dk} is a hash
+  operator, in essence a key derivation function.  This example is
+  found in~\texttt{examples/open-closed.scm}.}
+%
+shows a role that manipulates two variables \texttt{lk, ls} of sort
+\verb|locn|.  Its intent is to open a door in response to a suitable
+encrypted command, conforming its action.
+%
+\begin{figure}\small
+  %
+\begin{verbatim}(defrole dev-open
+    (vars (k skey) (n nb text) (any mesg) (d o b name) (lk ls locn))
+    (trace
+     (load lk (dev-key-state d o k))
+     (recv (cat b n (enc (open-req b d o nb n) (hash-dk (cat b nb n k)))))
+     (load ls (door-state d any))
+     (load lk (dev-key-state d o k))         ; check k unchanged
+     (stor ls (door-state d (opened b nb n)))
+     (send (hash (open-req b d o nb n))))
+    (gen-st (dev-key-state d o k))
+    (facts (same-dev ls lk)))\end{verbatim}
+  %
+  \caption{Device-open role causing door to open}
+  \label{fig:dev:open}
+\end{figure}
+%
+The form \texttt{(lk ls locn)} declares the variables of sort
+\verb|locn|.  The form \texttt{(load lk (dev-key-state d o k))} loads
+a tuple including a key \verb|k| from the \verb|locn| \verb|lk|, which
+must contain a tuple of this kind for the event to occur.  After
+receiving a message that contains a request to open the door, it loads
+the current door state from the other location \verb|ls|, after which
+it stores back the ``open'' value.  These events might be implemented
+by a sensor and an actuator in a real device.  Finally, it confirms
+success by sending the hash of the open request.
+
+A \verb|load| or \verb|stor| event always contains a location variable
+followed by a message term, just like a channel \verb|send| or
+\verb|recv| (Section~\ref{sec:channels:state:ch}).
+
+Observe that the \verb|stor| event immediately follows a \verb|load|
+event, and this is in fact always the case.  Since together they
+represent a transition that consumes an old value that will no longer
+be available after the the transition, the \verb|stor| event always
+follows a paired \verb|load| event.  Together, they form a \emph{state
+  segment}.  However, state segments may be longer than a single pair
+of events.
+
+In general, a state segment consists of one or more \verb|load|
+events followed by zero or more \verb|stor| events, subject to the
+requirements that:
+%
+\begin{enumerate}
+  \item no two \verb|load| events in this state segment load from the
+  same location;
+  \item no two \verb|stor| events in this state segment store into the
+  same location;
+  \item each \verb|stor| event stores into a location from which a
+  value was \verb|load|ed in this state segment.
+\end{enumerate}
+%
+A particular state segment is a \emph{transition for} a location
+$\ell$ iff there is a \verb|stor| into $\ell$ in this state segment.
+It is a \emph{(pure) observation for} $\ell$ iff there is a
+\verb|load| from $\ell$ but no \verb|stor| into $\ell$ in this state
+segment.
+
+We use state segments of length greater than two to represent events
+that involve multiple locations.  If a transition for location
+$\ell_1$ depends on the value present in $\ell_2$, then a state
+segment can load $v_1$ and $v_2$ from $\ell_1$ and $\ell_2$
+(resp.)~and then store a new value dependent on $v_1,v_2$ into
+$\ell_1$.  In this case, the state segment is a transition for
+$\ell_1$ but a pure observation for $\ell_2$.  If instead new values
+are stored into both $\ell_1$ and $\ell_2$, then the state segment is
+a transition for both.  In other cases, a state segment loads from
+both $\ell_1$ and $\ell_2$, but instead of storing back to either of
+them, it simply uses those values to control future message
+transmissions and receptions.  In the latter cases, the state segment
+is a pure observation for both $\ell_1$ and $\ell_2$.
+
+\paragraph{Rules for protocols with
+  state.}  \label{state:gen:rules:start} {\cpsa} generates three types
+of rules for protocols that manipulate state, in addition to the two
+axioms of Section~\ref{sec:channels:state:axioms} and the three
+consequences of Section~\ref{sec:channels:state:consequences}.%
+%
+\footnote{See Section~\ref{sec: rules} for rules in {\cpsa}.}
+
+The first kind are the \emph{transition rules}, and these are
+generated entirely automatically by {\cpsa}.  The axioms and rules of
+Sections~\ref{sec:channels:state:axioms}--\ref{sec:channels:state:consequences}
+depend on which events are transition events, the boxed events in
+Figs~\ref{fig:leads:to}--\ref{fig:derived:state:rules}.  Moreover, the
+syntax of the state segments determines which these are.  Thus,
+{\cpsa} generates rules that imply that an event is a transition event
+if:
+%
+\begin{enumerate}
+  \item it is a \verb|stor| event; or
+  \item it is a \verb|load| event, and the strand is long enough also
+  to have a \verb|stor| event from this state segment for the same
+  location $\ell$.
+\end{enumerate}
+%
+These are the transition rules.
+
+The second kind are the \emph{generated state value rules}.  As we
+mentioned at the start, a generated state value is a value $v$ that is
+definitely non-initial.  Thus, if a \verb|load| event reads a
+generated state value $v$ from a location $\ell$, then $\ell$ is
+acting like an authenticated channel for $v$.  In particular {\cpsa}
+will consider which instances of the roles could previously have
+stored $v$ into $\ell$; one of those must be present.
+
+A generated state assumption may be introduced as a per-strand
+assumption, akin to the declarations discussed in
+Section~\ref{sec:channels:state:ch:strand:level}.  In that case it is
+syntactically present in a {\cpsa} \texttt{defskeleton} query such as:
+%
+{\small
+\begin{verbatim}(defskeleton open-closed
+  (vars (k skey) (d o name))
+  (defstrand dev-pass 4 (k k) (d d) (o o))
+  (gen-st (dev-key-state d o k)))
+\end{verbatim}}
+%
+This \texttt{gen-st} declaration says that the particular tuple
+\texttt{(dev-key-state d o k)} using the values of the variables that
+appear in this strand forms a generated state value.
+
+A generated state assumption may be introduced as a role-level
+assumption, akin to the declarations discussed in
+Section~\ref{sec:channels:state:ch:role:level}.  In this case, the
+specifier wants to tell {\cpsa} that the declared value is a generated
+state value whenever an instance of the role is long enough to furnish
+values for the variables that appear in it.  Fig.~\ref{fig:dev:open}
+contains a role-level generated state assumption, namely
+\texttt{(dev-key-state d o k)}.  Since the trace of the
+\texttt{dev-open} rule loads a value of this form as its first action,
+these variables have values in every instance of height $\ge 1$.
+
+{\cpsa} enforces this role-level assumption by generating a rule
+stating:
+%
+{\small
+\begin{verbatim}(defgenrule gen-st-dev-open-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-open" z 1) (p "dev-open" "k" z k)
+             (p "dev-open" "o" z o) (p "dev-open" "d" z d))
+        (gen-st (dev-key-state d o k)))))
+\end{verbatim}
+}
+%
+\noindent{\cpsa} uses the \texttt{defgenrule} form to distinguish
+rules it has generated automatically from rules that were explicitly
+written by the specifier, as described in Section~\ref{sec: rules}.
+
+Finally, the third kind of rule concerns \emph{critical sections}.
+%
+\begin{figure}\small
+%
+\begin{verbatim}(defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (ch chan) (lk ls locn))
+    (trace
+     (recv ch (cat "power-up" d o k))
+     (load lk old)
+     (load ls old1)
+     (stor lk (dev-key-state d o k))
+     (stor ls (door-state d (closed o)))
+     (send (enc "up" k)))
+    (auth ch)
+    (critical-sections (1 4))
+    (facts (same-dev ls lk)))
+\end{verbatim}
+%
+  \caption{Critical section declaration}
+  \label{fig:critical:section}
+\end{figure}
+%
+%
+\begin{figure}\small
+  %
+\begin{verbatim}  (defgenrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies
+        (and (p "dev-up" z 3) (prec z1 i z 2))
+        (or (= z z1) (prec z1 i z 1)))))
+
+  (defgenrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies
+        (and (p "dev-up" z 4) (prec z 3 z1 i))
+        (or (= z z1) (and (p "dev-up" z 5) (prec z 4 z1 i))))))\end{verbatim}
+%
+  \caption{Critical section:  Generated rules}
+  \label{fig:critical:section:rules}
+\end{figure}
+%
+A critical section declaration in the definition of a role takes the
+form \texttt{(critical-sections (i j))}, where the trace must have a
+state segment that starts at or before event \emph{i} and ends at or
+after event $j$, where these are 0-based indices.  It implies that any
+node that precedes one of the load events must precede all of them.
+Any node that follows one of the store events must follow all of them.
+Thus for instance in Fig.~\ref{fig:critical:section}, the load events
+at indices 1, 2 and the store events at indices 3, 4 occur with
+transaction-like atomicity.  This declaration would cause {\cpsa} to
+generate the rules in Fig.~\ref{fig:critical:section:rules}.  They are
+of value only when the state segment has multiple loads or multiple
+stores.  In this particular example, the critical section declaration
+does not in fact make a difference to the analysis.
+%
+\label{state:gen:rules:end}
+
+\subsection{Channels and state:  Summary}
+\label{sec:channels:state:summary}
+
+A core idea is that receptions may have \emph{authenticity}, meaning
+that the adversary has not delivered the message; thus, {\cpsa}
+explores what regular strands may have transmitted it.  Dually, a
+transmission may have \emph{confidentiality}, meaning that the
+adversary will not receive the message directly.  Thus, any parts of
+the transmitted message that appear in new forms subsequently will
+require some regular strand to have received it and transformed these
+parts.
+
+In the {channel} mechanism, {\cpsa} allows these properties to be
+directly associated with channels, providing a useful technique for
+protocol design.  In the state mechanism, {\cpsa} models the
+\emph{confidentiality} of storing a value into a device controlled
+locally by the regular principal(s).  Moreover, \emph{stored} state
+values with the \texttt{gen-st} property satisfy the
+\emph{authenticity} condition also.
+
+Besides these properties, mutable state also requires modeling the
+fact that an old state value can no longer be observed in a location
+after that location has undergone a transition.  We express these in
+the two axioms of Fig.~\ref{fig:leads:to}; {\cpsa} also uses their
+three consequences as shown in Fig.~\ref{fig:derived:state:rules} for
+efficiency.
+
+The modeling distinguishes between \emph{transitions} on a location,
+which are expressed in state segments that contain a \verb|stor| to
+it, and \emph{observations}, expressed in state segments that contain
+a \verb|load| but no \verb|stor| to it.  {\cpsa} determines which
+events are transitions on a location automatically, and generates
+rules to keep track of this information.  Rules are also available to
+determine which state values are \emph{stored} state values, and these
+are generated from \texttt{gen-st} declarations.
+
+{\cpsa}'s job is to enumerate shapes.  When a specification
+distinguishes a kind of value that can only appear in an initial
+\verb|load|, and transitions that do not produce these values, but
+always produce \emph{stored} state values with the \texttt{gen-st}
+property, then a run can typically have 0, 1, 2, \dots, $n$
+transitions, and these will have no homomorphisms between them.  Hence
+there will be infinitely many distinct shapes to enumerate, and
+{\cpsa} will not terminate, although its partial outputs are often
+informative.  The craft of using {\cpsa} to understand state in
+protocols is often to restrict the \texttt{gen-st} declarations so
+that {\cpsa} does not distinguish among state histories of
+(irrelevantly) different lengths.
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "cpsa4manual"
+%%% End:
diff --git a/doc/src/cpsa4manual/cmstrands.mp b/doc/src/cpsa4manual/cmstrands.mp
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/cmstrands.mp
@@ -0,0 +1,24 @@
+% CM strand arrows for documents
+
+% Use the cmarrows package if you want double arrows for strand
+% succession edges.
+
+input cmarrows;
+
+setup_cmarrows(
+  arrow_name = "doublearrow";
+  parameter_file = "cmr12.mf";
+  macro_name = "drawdubarrow");
+
+def drawsucc(expr p) =
+  drawdubarrow p;
+enddef;
+
+setup_cmarrows(
+  arrow_name = "texarrow";
+  parameter_file = "cmr12.mf";
+  macro_name = "drawtexarrow");
+
+def drawmsg(expr p) =
+  drawtexarrow p;
+enddef;
diff --git a/doc/src/cpsa4manual/cpsa4manual.tex b/doc/src/cpsa4manual/cpsa4manual.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/cpsa4manual.tex
@@ -0,0 +1,105 @@
+\documentclass[11pt]{report}
+\usepackage{amssymb}
+\usepackage{amsmath}
+\usepackage{amsthm}
+\usepackage{url}
+\usepackage{graphicx,geometry,color}
+\usepackage{makeidx}
+\usepackage{alltt}
+\usepackage[hyperfootnotes=false]{hyperref}
+\usepackage[all]{xy}
+\usepackage{fancyhdr}
+\usepackage{pdfpages}
+\input{macros}
+
+\newif\ifpubrel
+%\pubreltrue
+\pubrelfalse
+
+\fancypagestyle{title}{%
+  \fancyhf{}%
+  \renewcommand\headrulewidth{0pt}%
+  \fancyhead[L]{Approved for Public Release; Distribution Unlimited. Case Number 15-3120.}%
+  \fancyfoot[C]{This technical data was produced for the
+    U.S. Government\\ under Contract. No. W15P7T-13-C-A802, and is\\
+    subject to the Rights in Technical Data-Noncommercial Items clause\\
+    at DFARS 252.227-7013 (FEB 2012)\\
+\copyright 2016 The MITRE Corporation. ALL RIGHTS RESERVED.}%
+}
+
+\pagestyle{plain}
+
+\makeindex
+
+\title{The Cryptographic Protocol Shapes Analyzer:\\ A Manual for CPSA
+  4\thanks{\ {\copyright} 2016--2022 The
+    MITRE Corporation.  Permission to copy without fee all or part of
+    this material is granted provided that the copies are not made or
+    distributed for direct commercial advantage, this copyright notice
+    and the title of the publication and its date appear, and notice
+    in given that copying is by permission of The MITRE
+    Corporation.}}
+\author{Moses D.~Liskov\qquad John D.~Ramsdell\\Joshua D.~Guttman\qquad Paul D.~Rowe\\ \\
+  {\Large The MITRE Corporation}\\ \\ CPSA Version \version}
+
+\makeindex
+\begin{document}
+
+\ifpubrel
+\thispagestyle{title}
+\fi
+\maketitle
+\vfill
+%{\footnotesize}
+%\cpsacopying
+\ifpubrel
+\thispagestyle{title}
+\fi
+\pagenumbering{roman}
+
+\tableofcontents
+
+\listoffigures
+
+\listoftables
+
+\newpage
+\pagenumbering{arabic}
+\setcounter{page}{1}
+\input{intro}
+
+\part{Basic use of CPSA}
+\label{part:basic}
+\input{setup}
+\input{basic}
+\input{algebra}
+\part{Understanding and Guiding CPSA}
+\label{part:intermediate}
+\input{algorithm}
+\input{declarations}
+\part{Advanced features of CPSA}
+\label{part:advanced}
+\input{goals}
+\input{channels_state}
+%\input{trace_constraints}
+
+\part{Reference material}
+\label{part:reference}
+\input{troubleshooting}
+\input{input}
+\input{tools}
+
+\bibliography{secureprotocols}
+\bibliographystyle{plain}
+
+\printindex
+
+\newpage
+\includepdf[angle=90]{CPSA_cribsheet}
+
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
diff --git a/doc/src/cpsa4manual/cpsadiagrams.mp b/doc/src/cpsa4manual/cpsadiagrams.mp
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/cpsadiagrams.mp
@@ -0,0 +1,307 @@
+filenametemplate "%j-%c.mps";
+
+verbatimtex
+\documentclass[12pt]{article}
+\newcommand{\enc}[2]{\{\!|#1|\!\}_{#2}}
+\begin{document}
+etex
+
+input boxes;
+
+pair w; w = (4in, 0);		% Width of diagram
+
+alpha = .45;			% Row offset ratio for messages
+beta = .85;		        % Row offset ratio for shortened arrows
+
+input strands;
+
+input cmstrands;		% Use CM arrows
+
+picture node; node = btex $\bullet$ etex;
+
+% The height of a downarrow is the unit of length for a strand
+% succession edge.
+
+numeric delta;
+begingroup;
+  path p; p = bbox(btex $\downarrow$ etex);
+  delta = ypart(ulcorner p - llcorner p);
+endgroup;
+
+% The width of a leftarrow is the unit of length for a directed term
+% symbol.
+
+numeric dir_width;
+begingroup;
+  path p; p = bbox(btex $\leftarrow$ etex);
+  dir_width = xpart (lrcorner p - llcorner p);
+endgroup;
+
+% Needham-Schroeder Protocol
+
+% Initiator role
+
+beginfig(0);
+  % Backbone
+  strand.a(3, origin, delta, btex $\mathstrut\mathit{init}$ etex, node);
+
+  % Messages
+  outbnd.a(1, dir_width, btex $\enc{N_1, A}{K_B}$ etex);
+  inbnd.a(2, dir_width, btex $\enc{N_1, N_2}{K_A}$ etex);
+  outbnd.a(3, dir_width, btex $\enc{N_2}{K_B}$ etex);
+endfig;
+
+% Responder role
+
+beginfig(1);
+  % Backbone
+  strand.a(3, origin, delta, btex $\mathstrut\mathit{resp}$ etex, node);
+
+  % Messages
+  rinbnd.a(1, dir_width, btex $\enc{N_1, A}{K_B}$ etex);
+  routbnd.a(2, dir_width, btex $\enc{N_1, N_2}{K_A}$ etex);
+  rinbnd.a(3, dir_width, btex $\enc{N_2}{K_B}$ etex);
+endfig;
+
+% Intended run
+
+beginfig(2);
+  % Strand for principal A
+  strand.a(3, origin, delta, btex $\mathstrut\mathit{init}$ etex, node);
+
+  % Strand for principal B
+  strand.b(3, .5w, delta, btex $\mathstrut\mathit{resp}$ etex, node);
+
+  % Messages and arrows
+  label.top(btex $\enc{N_1, A}{K_B}$ etex, .5[a1.c, b1.c]);
+  drawmsg(a1.e -- b1.w);
+  label.top(btex $\enc{N_1, N_2}{K_A}$ etex, .5[a2.c, b2.c]);
+  drawmsg(b2.w -- a2.e);
+  label.top(btex $\enc{N_2}{K_B}$ etex, .5[a3.c, b3.c]);
+  drawmsg(a3.e -- b3.w);
+endfig;
+
+% Penetrated run
+
+beginfig(3);
+  % Strand for principal B
+  boxstrand.b(3, w, btex $\mathstrut B$ etex, node);
+  draw pic b3;
+
+  % Strand for principal P
+  boxstrand.p(4, .5w, btex $\mathstrut P$ etex, node);
+  draw pic p4;
+
+  spacestrand.p(3, delta);
+  draw pic p3;
+
+  % Strand for principal A
+  boxstrand.a(3, p3.c - p4.c, btex $\mathstrut A$ etex, node);
+  draw pic a3;
+
+  spacestrand.a(2, delta);
+  draw pic a2;
+
+  ypart b2.c = ypart a2.c;
+  draw pic b2;
+
+  spacestrand.b(1, delta);
+  draw pic b1;
+
+  ypart p2.c = ypart b1.c;
+  draw pic p2;
+
+  spacestrand.p(1, delta);
+  draw pic p1;
+
+  ypart a1.c = ypart p1.c;
+  draw pic a1;
+
+  drawsucc(a1.s -- a2.n);
+  drawsucc(a2.s -- a3.n);
+  drawsucc(p1.s -- p2.n);
+  drawsucc(p2.s -- p3.n);
+  drawsucc(p3.s -- p4.n);
+  drawsucc(b1.s -- b2.n);
+  drawsucc(b2.s -- b3.n);
+
+  label.top(btex $\enc{N_1, A}{K_P}$ etex, .5[a1.c, p1.c]);
+  drawmsg(a1.e -- p1.w);
+  label.top(btex $\enc{N_1, A}{K_B}$ etex, .5[p2.c, b1.c]);
+  drawmsg(p2.e -- b1.w);
+  label.top(btex $\enc{N_1, N_2}{K_A}$ etex, .75[b2.c, a2.c]);
+  drawmsg(b2.w -- a2.e);
+  label.top(btex $\enc{N_2}{K_P}$ etex, .5[a3.c, p3.c]);
+  drawmsg(a3.e -- p3.w);
+  label.top(btex $\enc{N_2}{K_B}$ etex, .5[p4.c, b3.c]);
+  drawmsg(p4.e -- b3.w);
+endfig;
+
+% Shape with $K^{-1}_A$ uncompromised, $N_2$ fresh
+
+beginfig(4);
+  % Strand for principal A
+  strand.a(3, origin, delta, btex $\mathstrut\mathit{init}$ etex, node);
+
+  % Strand for principal B
+  strand.b(3, w, delta, btex $\mathstrut\mathit{resp}$ etex, node);
+
+  % Centered ordering symbols
+  boxit.o1(btex \phantom{$\prec$} etex); o1.c = .5[a1.c, b1.c];
+  boxit.o2(btex $\succ$ etex); o2.c = .5[a2.c, b2.c];
+  boxit.o3(btex $\prec$ etex); o3.c = .5[a3.c, b3.c];
+
+  for i = 1 upto 3:
+    draw pic o[i];
+  endfor;
+
+  % Messages and arrows
+  label.top(btex $\enc{N_1, A}{K_C}$ etex, alpha[a1.c, o1.c]);
+  drawmsg(a1.e -- beta[a1.e,o1.w]); % Shortened arrow
+  label.top(btex $\enc{N_1, A}{K_B}$ etex, alpha[b1.c, o1.c]);
+  drawmsg(beta[b1.w,o1.e] -- b1.w); % Shortened arrow
+  label.top(btex $\enc{N_1, N_2}{K_A}$ etex, alpha[a2.c, o2.c]);
+  drawmsg(o2.w -- a2.e);
+  label.top(btex $\enc{N_1, N_2}{K_A}$ etex, alpha[b2.c, o2.c]);
+  drawmsg(b2.w -- o2.e);
+  label.top(btex $\enc{N_2}{K_C}$ etex, alpha[a3.c, o3.c]);
+  drawmsg(a3.e -- o3.w);
+  label.top(btex $\enc{N_2}{K_B}$ etex, alpha[b3.c, o3.c]);
+  drawmsg(o3.e -- b3.w);
+endfig;
+
+beginfig(5);
+  % Strand for principal A
+  strand.a(3, origin, delta, btex $\mathstrut\mathit{init}$ etex, node);
+
+  % Strand for principal B
+  strand.b(2, w + a2.c, delta, btex $\mathstrut\mathit{resp}$ etex, node);
+
+  % Centered ordering symbols
+  boxit.o1(btex $\prec$ etex); o1.c = .5[a1.c, b1.c];
+  boxit.o2(btex $\succ$ etex); o2.c = .5[a2.c, b2.c];
+
+  for i = 1 upto 2:
+    draw pic o[i];
+  endfor;
+
+  % Messages and arrows
+  label.top(btex $\enc{N_1, A}{K_B}$ etex, alpha[a1.c, o1.c]);
+  drawmsg(a1.e -- o1.w);
+  label.top(btex $\enc{N_1, A}{K_B}$ etex, alpha[b1.c, o1.c]);
+  drawmsg(o1.e -- b1.w);
+  label.top(btex $\enc{N_1, N_2}{K_A}$ etex, alpha[a2.c, o2.c]);
+  drawmsg(o2.w -- a2.e);
+  label.top(btex $\enc{N_1, N_2}{K_A}$ etex, alpha[b2.c, o2.c]);
+  drawmsg(b2.w -- o2.e);
+  label.top(btex $\enc{N_2}{K_B}$ etex,
+    alpha[a3.c, (xpart o2.c, ypart a3.c)]);
+  drawmsg(a3.c -- (beta * xpart o2.c, ypart a3.c));
+endfig;
+
+% Incompleteness example
+
+% Initiator role
+
+beginfig(6);
+  % Backbone
+  strand.a(2, origin, delta, btex $\mathstrut\mathit{init}$ etex, node);
+
+  % Messages
+  outbnd.a(1, dir_width, btex $\enc{N}{K}$ etex);
+  inbnd.a(2, dir_width, btex $N$ etex);
+endfig;
+
+% Responder role
+
+beginfig(7);
+  % Backbone
+  strand.a(2, origin, delta, btex $\mathstrut\mathit{resp}$ etex, node);
+
+  % Messages
+  rinbnd.a(1, dir_width, btex $\enc{N_1}{K}$ etex);
+  routbnd.a(2, dir_width, btex $N_2$ etex);
+endfig;
+
+% Omitted run
+
+beginfig(8);
+  % Strand for principal A
+  strand.a(2, origin, delta, btex $\mathstrut\mathit{init}$ etex, node);
+
+  % Strand for principal B
+  strand.b(2, .5w, delta, btex $\mathstrut\mathit{resp}$ etex, node);
+
+  % Messages and arrows
+  label.top(btex $\enc{N}{K}$ etex, .5[a1.c, b1.c]);
+  drawmsg(a1.e -- b1.w);
+  label.top(btex $N$ etex, .5[a2.c, b2.c]);
+  drawmsg(b2.w -- a2.e);
+endfig;
+
+beginfig(9);
+  % Strand for principal A
+  strand.a(3, origin, delta, btex $\mathstrut\mathit{init}$ etex, node);
+
+  % Strand for principal B
+  strand.b(2, w + a2.c, delta, btex $\mathstrut\mathit{resp}$ etex, node);
+
+  % Centered ordering symbols
+  boxit.o1(btex $\prec$ etex); o1.c = .5[a1.c, b1.c];
+  boxit.o2(btex $\succ$ etex); o2.c = .5[a2.c, b2.c];
+
+  for i = 1 upto 2:
+    draw pic o[i];
+  endfor;
+
+  % Messages and arrows
+  label.top(btex $\enc{N_1, A}{K_B}$ etex, alpha[a1.c, o1.c]);
+  drawmsg(a1.e -- o1.w);
+  label.top(btex $\enc{N_1, A}{K_B}$ etex, alpha[b1.c, o1.c]);
+  drawmsg(o1.e -- b1.w);
+  label.top(btex $\enc{N_1, N_2}{K_A}$ etex, alpha[a2.c, o2.c]);
+  drawmsg(o2.w -- a2.e);
+  label.top(btex $\enc{N_1, N_2'}{K_A}$ etex, alpha[b2.c, o2.c]);
+  drawmsg(b2.w -- o2.e);
+  label.top(btex $\enc{N_2}{K_B}$ etex,
+    alpha[a3.c, (xpart o2.c, ypart a3.c)]);
+  drawmsg(a3.e -- (beta * xpart o2.w, ypart a3.c));
+endfig;
+
+beginfig(10);
+  % Strand for principal A
+  strand.a(3, origin, delta, btex $\mathstrut\mathit{resp}$ etex, node);
+
+  % Strand for principal B
+  strand.b(3, w, delta, btex $\mathstrut\mathit{init}$ etex, node);
+
+  % Centered ordering symbols
+  boxit.o2(btex $\prec$ etex); o2.c = .5[a2.c, b2.c];
+  boxit.o3(btex $\succ$ etex); o3.c = .5[a3.c, b3.c];
+
+  for i = 2 upto 3:
+    draw pic o[i];
+  endfor;
+
+  % Messages and arrows
+  label.top(btex $\enc{N_1, A}{K_B}$ etex,
+      alpha[a1.c, (xpart o2.c, ypart a1.c)]);
+  drawmsg(a1.e -- (beta * xpart o2.w, ypart a1.c));
+  label.top(btex $\enc{N_1, A}{K_{B'}}$ etex,
+      alpha[b1.c, (xpart o2.c, ypart b1.c)]);
+  drawmsg((1-beta)[(xpart o2.e, ypart b1.c), b1.w] -- b1.w);
+  label.top(btex $\enc{N_1, N_2}{K_A}$ etex, alpha[a2.c, o2.c]);
+  drawmsg(a2.e -- o2.w);
+  label.top(btex $\enc{N_1, N_2}{K_A}$ etex, alpha[b2.c, o2.c]);
+  drawmsg(o2.e -- b2.w);
+  label.top(btex $\enc{N_2}{K_B}$ etex, alpha[a3.c, o3.c]);
+  drawmsg(o3.w -- a3.e);
+  label.top(btex $\enc{N_2}{K_{B'}}$ etex, alpha[b3.c, o3.c]);
+  drawmsg(b3.w -- o3.e);
+
+endfig;
+
+verbatimtex
+\end{document}
+etex
+bye;
diff --git a/doc/src/cpsa4manual/cpsaprimer.tex b/doc/src/cpsa4manual/cpsaprimer.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/cpsaprimer.tex
@@ -0,0 +1,1271 @@
+\documentclass[12pt]{article}
+\usepackage{amssymb}
+\usepackage{amsmath}
+\usepackage{url}
+\usepackage{graphicx}
+\usepackage{makeidx}
+\usepackage{alltt}
+\input{macros}
+
+\makeindex
+
+\title{CPSA Primer}
+\author{John D.~Ramsdell\qquad Joshua D.~Guttman\\
+  The MITRE Corporation\\ CPSA Version \version}
+
+\begin{document}
+\maketitle
+\cpsacopying
+
+\tableofcontents
+
+\listoffigures
+
+\listoftables
+
+\newpage
+
+\section{Introduction}
+
+\begin{sloppypar}
+Analyzing a cryptographic protocol means finding out what security
+properties---essentially, authentication and secrecy properties---are
+true in all its possible executions.  Protocol analysis is hard
+because an adversary can often manipulate the regular, law-abiding
+participants.  The adversary may be able to manipulate the regular
+participants into an unexpected execution, breaking a secrecy or
+authentication property that the protocol was intended to ensure.
+\end{sloppypar}
+
+{\cpsa}, The Cryptographic Protocol Shapes Analyzer, is a software
+tool.  Given a protocol definition and some assumptions about
+executions, it attempts to produce descriptions of all possible
+executions of the protocol compatible with the assumptions.
+Naturally, there are infinitely many possible executions of a useful
+protocol, since different participants can run it with varying
+parameters, and the participants can run it repeatedly.
+
+However, for many naturally occurring protocols, there are only
+finitely many of these runs that are essentially different.  Indeed,
+there are frequently very few, often just one or two, even in cases
+where the protocol is flawed.  We call these essentially different
+executions the \emph{shapes} of the protocol.  Authentication and
+secrecy properties are easy to ``read off'' from the shapes, as are
+attacks and anomalies.
+
+The purpose of this document is to provide the background required to
+make effective use of a {\cpsa} software distribution.  In particular,
+the advice in Section~\ref{sec:advice} is essential reading.
+
+The {\cpsa} program reads a sequence of problem descriptions, and
+prints the steps it used to solve each problem.  Each input problem
+contains some initial behavior, together with assumptions about some
+uncompromised keys and freshly chosen values.  {\cpsa} discovers what
+shapes are compatible with this problem description.  Normally, the
+initial behavior is a local run of one participant, so that the
+problem is to see what possible executions exist from that
+participant's ``point of view.''  The analysis reveals what the other
+participants must have done, given the first participant's view.
+
+The shapes analysis is performed within a pure Dolev-Yao
+model~\cite{DolevYao83}.  {\cpsa}'s search is based on a high-level
+algorithm that was claimed to be complete, i.e.\@ every shape can in
+fact be found in a finite number of
+steps~\cite{DoghmiGuttmanThayer07,Guttman11}.  Further theoretical
+work showed classes of executions that are not found by the algorithm,
+however it also showed that every omitted execution requires an
+unnatural interpretation of a protocol's roles.  Hence the algorithm
+is complete relative to natural role semantics.
+Appendix~\ref{sec:omitted executions} discusses omitted executions.
+
+\section{Overview}
+
+A {\cpsa} release includes several programs, an analyzer, and various
+tools used to interpret the results.  The analyzer, \texttt{cpsa},
+provides support for several algebras, one of which is the Basic
+Crypto Algebra.  Programs that assist in the interpretation of results
+are \texttt{cpsashape} and \texttt{cpsagraph}.  The analyzer prints
+the steps it used to solve each problem.  The \texttt{cpsashapes}
+program extracts the shapes discovered by an analyzer run.  The
+\texttt{cpsagraph} program graphs both forms of output using Scalable
+Vector Graphics~(\textsc{svg}).  A standards-compliant browser such as
+FireFox or Safari displays the generated diagrams.
+
+The expected work flow follows.  An analysis problem is entered using
+an ordinary text editor, preferably one with support for Lisp syntax.
+Problem statement errors in the input are detected by running the
+analyzer.  Many error reports are of the form that allow editors such
+as Emacs to move its cursor to location of the problem.
+
+There are two classes of problem statement errors: syntax and semantic
+errors.  Correcting syntax errors is straightforward, but correcting
+semantic errors requires an understanding of the core data structures.
+Section~\ref{sec:semantic errors} describes their correction.
+
+Once the problem statement errors have been eliminated, the analyzer
+should produce useful output as a text document.  The text document
+contains each step used to derive a shape from a problem statement.
+It is common to filter the output using the \texttt{cpsashapes}
+program, and look only at the computed shapes associated with each
+problem statement.
+
+The \texttt{cpsagraph} program is applied to the output to produce a
+more readable, hyperlinked \textsc{xhtml} document that can be displayed
+in a standards-compliant web browser.  The {\cpsa} User Guide contains
+the up-to-date description of \texttt{cpsagraph} generated documents.
+The guide is also the place to find command-line usage information for
+all programs in a release.  The user guide is an \textsc{xhtml}
+document delivered with the software.
+
+The \texttt{cpsa} program uses S-expressions for both input and
+output.  S-expression is an abbreviation for a Symbolic Expression of
+Lisp fame, and is described in Appendix~\ref{sec:syntax reference}.
+
+The input may optionally start with a \texttt{herald} form.  The form
+contains a title for the run and an association list.  The association
+list allows options normally specified on the command line to be
+specified within an input file.  In the following example, the herald
+form specifies a strand bound of 12 in a way that is equivalent to the
+command line option \texttt{--bound=12}.
+
+\begin{quote}
+\begin{verbatim}
+(herald Needham-Schroeder (bound 12))
+\end{verbatim}
+\end{quote}
+
+The body of the input consists of two forms: protocol definitions and
+initial behavior descriptions.  The exact details of both forms depend
+on the message algebra specified by the protocol.  Protocols that
+specify \texttt{basic} as their algebra get an implementation of the
+Basic Crypto Algebra~(\textsc{bca}) described in the next section.  A
+complete grammar for \texttt{cpsa} input with \textsc{bca} protocols
+is displayed in Table~\ref{tab:syntax} on Page~\pageref{tab:syntax}.
+
+\section{BCA Messages}
+
+Each message exchanged in a protocol is represented by a term.  Terms
+represent atomic values such text objects, principal names, and
+asymmetric and symmetric keys.  They also represent values composed
+from other values via encryption and concatenation.
+
+A sort system is used to classify terms. A {\cpsa} message algebra is
+an order-sorted algebra~\cite{GoguenMeseguer92} with restrictions,
+hence the use of the word sort instead of type.  Other aspects of
+{\cpsa}'s use of order-sorted algebras is beyond the scope of this
+paper.
+
+The sorts that correspond to the atomic values are the base
+sorts---for \textsc{bca} they are \fn{text}, \fn{data}, \fn{name},
+\fn{akey}, and \fn{skey}.  The non-base sort is
+\fn{mesg}.  Every term is of sort~\fn{mesg}, and every one of the
+other sorts is a subsort of~\fn{mesg}.\index{sort}
+
+The simplest term is a variable, which syntactically is a
+\textsc{symbol} as described in Appendix~\ref{sec:syntax reference}.
+Internally, each variable has a sort, so the sort of each variable in
+the input must be declared in a \texttt{vars} form, such as:
+$$\texttt{(vars (t text) (n name) (k akey))}.$$
+
+Asymmetric keys come in pairs related by the \texttt{invk}
+\index{operator}operator.  If~$t$ is a term of sort~\fn{akey}, so is
+$\texttt{(invk~}t\texttt{)}$.  Furthermore,
+$\texttt{(invk~(invk~}t\texttt{))}$ is equated with~$t$.  A name can
+be used to identify an asymmetric key pair using the \texttt{pubk} and
+\texttt{privk} operators, as in \texttt{(pubk~n)} and
+\texttt{(privk~n)}---the latter is interpreted as
+\texttt{(invk~(pubk~n))}.  A name may be associated with more than one
+key using the binary form of \texttt{pubk}, where the first argument
+is a quoted constant, as in
+\texttt{(pubk~"sig"~n)} and
+\texttt{(pubk~"enc"~n)}.
+Two names can be used to identify a long
+term symmetric key with the \texttt{ltk} operator.
+
+Terms formed from base sorted variables, and the operators
+\texttt{invk}, \texttt{pubk}, \texttt{privk}, and \texttt{ltk} are
+called atoms, because each one represents an atomic value.  A key
+property of an atom is that the receiver of an atom carried in a
+message term cannot decompose the atom into parts.  For example, the
+reception of a message that consists of the atom \texttt{(invk~k)}
+does not allow its receiver to deduce~\texttt{k}.  Within this
+document, S-expression syntax will often, for the sake of readability,
+be replaced by the traditional notation for terms.  Thus
+\texttt{(invk~k)} will be written as $K^{-1}$, and \texttt{(pubk~n)}
+as $K_{N}$.
+
+The terms in this algebra are freely generated from the atoms, tags,
+concatenation, encryption, and hashing.  A tag is a quoted constant.
+The concatenation of terms~$t$ and~$t'$ is~$t,t'$ in traditional infix
+notation and \texttt{(cat $t$ $t'$)} in S-expression syntax.  The
+comma operator is right associative and \texttt{(cat $a$ $b$ $c$ $d$)}
+is equivalent to \texttt{(cat $a$ (cat $b$ (cat $c$ $d$)))}.
+Given~$t$, the term to be protected, and key term~$k$, the encryption
+of~$t$ using~$k$ is~$\enc{t}{k}$ in traditional notation and
+\texttt{(enc $t$ $k$)} in S-expression syntax.  The term represents
+asymmetric encryption when the key is of sort \dom{akey}, otherwise it
+represents symmetric encryption.  Additionally, \texttt{(enc $a$ $b$
+  $c$ $d$ $k$)} is equivalent to \texttt{(enc (cat $a$ $b$ $c$ $d$)
+  $k$)}.  Given~$t$, the term to be hashed, its hash is $\hash{t}$ in
+traditional notation and \texttt{(hash $t$)} in S-expression syntax.
+{\cpsa} treats a hashed term as if it were an encryption in which the
+term that is hashed is the encryption key.  As with encryption,
+\texttt{(hash $a$ $b$ $c$ $d$)} is equivalent to \texttt{hash (cat $a$
+  $b$ $c$ $d$))}.  Figure~\ref{fig:ns responder} on
+Page~\pageref{fig:ns responder} contains examples of \textsc{bca}
+message terms.  Also see \textsc{term} in Table~\ref{tab:syntax},
+Appendix~\ref{sec:syntax reference}.
+
+A message term \emph{carries}\index{carries} a subterm of the message
+if the possession of the right set of keys allows the extraction of
+the subterm.  The carries relation is the least relation such that
+(1)~$t$ carries~$t$, (2)~$\enc{t_0}{t_1}$ carries~$t$ if~$t_0$
+carries~$t$, and (3)~$t_0,t_1$ carries~$t$ if~$t_0$ or~$t_1$
+carries~$t$.  As noted above, the message~$k^{-1}$ does not carry~$k$.
+Also,~$\enc{t}{k}$ does not carry~$k$ unless (anomalously)~$t$
+carries~$k$.
+
+\begin{figure}
+\begin{center}
+\includegraphics{cpsadiagrams-0.mps}\hfil
+\includegraphics{cpsadiagrams-1.mps}
+\caption{Needham-Schroeder Initiator and Responder Roles}
+\label{fig:ns roles}
+\end{center}
+\end{figure}
+
+\section{Protocols}
+
+A \index{protocol}\emph{protocol} defines the patterns of allowed
+behavior for non-adversarial participants.  In other words, the
+behavior of each participant must be an instance of some protocol
+template, called a \index{role}\emph{role.}  Figure~\ref{fig:ns roles}
+displays the roles that make up the Needham-Schroeder protocol.
+
+In S-expression syntax, a protocol is a named set of roles and is
+defined by the \texttt{defprotocol} form.  See \textsc{protocol} in
+Table~\ref{tab:syntax}, Appendix~\ref{sec:syntax reference}.
+\begin{center}
+\begin{tabular}{l}
+\verb|(defprotocol ns basic|\\
+\verb|  (defrole init| \ldots\texttt{)}\\
+\verb|  (defrole resp| \ldots\texttt{))}
+\end{tabular}
+\end{center}
+
+The name of this protocol (\textsc{id}) is \texttt{ns}, and the second
+identifier (\textsc{alg}) names the message algebra in use.  The
+identifier for the Basic Crypto Algebra is \texttt{basic}.
+
+A role has a name, a declared set of variables, and a trace that
+provides a template for the behavior of its instances.  A trace is a
+non-empty sequence of message events, either a message reception or a
+transmission.  An inbound\index{inbound} message with term~$t$
+is~$\inbnd t$ in text and \texttt{(recv $t$)} in S-expression syntax.
+An outbound\index{outbound} term is~$\outbnd t$ in text and
+\texttt{(send $t$)} in S-expression syntax.  The Needham-Schroeder
+responder's role in S-expression syntax is in Figure~\ref{fig:ns
+  responder}.
+
+% A linear representation of the Needham-Schroeder responder's trace
+% follows.
+% $$\fn{resp}_t=\inbnd\enc{N_1, A}{K_B}\Rightarrow \outbnd\enc{N_1,
+%  N_2}{K_A}\Rightarrow\inbnd \enc{N_2}{K_B}$$
+
+\begin{figure}
+\begin{quote}
+\begin{verbatim}
+(defrole resp (vars (b a name) (n2 n1 text))
+  (trace (recv (enc n1 a (pubk b)))
+         (send (enc n1 n2 (pubk a)))
+         (recv (enc n2 (pubk b)))))
+\end{verbatim}
+\end{quote}
+\caption{Needham-Schroeder Responder Role}
+\label{fig:ns responder}
+\end{figure}
+
+Zero-based indexing\index{zero-based indexing}\index{indexing,
+  zero-based} is used though out this document and in the source code
+it describes.  Within the document, a finite sequence is a function
+from an initial segment of the natural numbers.  Angle brackets are
+used for sequence construction.  Thus $\seq{3,2,99} = \{0\mapsto 3,
+1\mapsto 2, 2\mapsto 99\}$, and the responder's trace is
+$\seq{\inbnd\enc{N_1, A}{K_B}, \outbnd\enc{N_1,
+    N_2}{K_A},\inbnd\enc{N_2}{K_B}}.$ The length of a sequence~$x$ is
+$|x|$.  \nocite{Dijkstra82}
+
+A term \emph{originates}\index{origination} in a trace if it is
+carried in some event and the first term in which it is
+carried is an outbound term.  A term is
+\emph{acquired}\index{acquired} by a trace if it first occurs in an
+inbound term and is also carried by that term.
+
+Some atoms in a role have special properties.  An atom may be declared
+to be non-originating with the \texttt{non-orig} form or the
+\texttt{pen-non-orig} form and uniquely originating with the
+\texttt{uniq-orig} form.  The declarations make assertions about
+instances of a role, assertions that will be defined after role
+instantiation is explained.
+
+Every variable that occurs in each term declared to be non-originating
+must occur in some term in the trace, and the term must not be carried
+by any term in the trace.  Every variable that occurs in each term
+declared to be penetrator non-originating must occur in some term in
+the trace, but the term may be carried by some term in a trace.  Each
+term declared to be uniquely originating must originate in the trace.
+Each variable of sort \fn{mesg} must be acquired in the trace.
+
+\section{Executions}
+
+A protocol analysis problem is specified by a skeleton.  Some
+background information is presented before details of a problem
+specification is given.
+
+A skeleton describes a set of executions of a protocol.  They
+specify the local behavior of participants and their interactions via
+message-passing.  A definition of an execution is presented for the
+case in which protocols declare no terms to be non-originating or
+uniquely originating, and then is later amended.  The executions are a
+representation of the strand space notion of bundle.
+
+A strand\index{strand} represents a principal executing a single local
+session of a protocol role.  The sequence of events that
+describes the session is patterned after a prefix of its role's trace.
+In the context of a protocol, a strand's trace is represented by an
+\emph{instance}\index{instance}, a triple consisting of a role name, a
+height, and a map from role variables to terms.  The length of the
+described sequence is the instance's \emph{height}\index{height}, and
+must be positive and no greater than the length of the associated
+role's trace.  The map is the instance's
+\index{environment}\emph{environment.}  The domain of the map is the
+set of variables that occur in the events in the prefix of the
+role's trace of the same length as the instance's height.  \iffalse An
+instance is in $I=R\times\nat\times(X\rightarrow T)$.  \fi
+
+An example of an instance of the Needham-Schroeder responder role
+is:
+\begin{center}
+\texttt{(defstrand resp 2 (b a) (a b) (n1 n1) (n2 n2))}
+\end{center}
+The trace associated with this instance is:
+$$\seq{\inbnd\enc{N_1, B}{K_A}, \outbnd\enc{N_1,
+N_2}{K_B}}.$$
+
+The \emph{position}\index{position} of a event in the
+instance's trace is its index in the sequence, and in this example,
+the position of $\inbnd\enc{N_1, B}{K_A}$ is zero.
+
+In addition to a protocol, a component of an execution is a collection
+of local sessions.  An instance cannot be used to identify one
+session, because two principals may engage in the same pattern of
+message passing.  Instead, a sequence of instances is used as a
+component of an execution, and a \emph{strand} is represented by an
+index that selects an instance from the sequence.  In other words,
+each principal executing a local session is represented by a natural
+number less than the length of the sequence of instances, and its
+behavior is described by the instance found using its representation.
+
+A \emph{node}\index{node} is a pair of natural numbers that identifies
+an event within a sequence of instances.  The first integer is
+the strand, and the second is the position of the event within
+the strand's trace.  A node with an inbound term is a reception
+node\index{reception node}, and one with an outbound term is a
+\index{transmission node}transmission node.  Given a sequence~$i$, its
+nodes are: $$\{(s,p)\mid s<|i|, p<\cn{height}(i(s))\}.$$
+
+The remaining component of an execution is a binary relation between
+transmission nodes and reception nodes, where each pair of nodes in
+the relation agree on their message term.  The relation specifies
+message transmissions between strands.  The nodes of the graph
+associated with an execution are the nodes in the sequence of
+instances, and the edges include the ones in the relation.
+Additionally, the following strand succession edges\index{strand
+  succession edges} are included: $$\{((s,p), (s, p+1))\mid s<|i|,
+p+1<\cn{height}(i(s))\}.$$ Executions with cyclic graphs are omitted
+from consideration, because they violate causality.  The transitive
+irreflexive~$\prec$ is the transitive closure of the graph's edges,
+and $n_0\prec n_1$ asserts that the message event at~$n_0$ precedes
+the one at~$n_1$.
+
+The node relation of an execution satisfies one additional property.
+For each reception node in its sequence, there exists a unique
+transmission node, related to it by the communication ordering.  In
+other words, the relation must be a function.  Informally, this
+property ensures that every message reception is accounted for by the
+activity of a principal that is part of the execution.
+Figure~\ref{fig:ns intended} shows the intended execution of the
+Needham-Schroeder Protocol.  The node graph of an execution is a
+bundle.
+
+A set of runs of the protocol is associated with each execution.  A
+variable is associated with an execution if the variable occurs in the
+range of an environment in some instance.  To derive a run from an
+execution, a substitution that maps each variable associated with the
+execution to a ground term is applied to the execution.  {\cpsa}
+message algebras do not contain the constants required to name all the
+ground terms.  For most sorts, the identity of a particular ground
+term is irrelevant to the analysis.  Message tags are the only
+exception to this rule.  For this reason, {\cpsa} message algebras are
+free algebras, but not initial algebras.
+
+Strands in executions represent both adversarial and non-adversarial
+behaviors.  A strand that is an instance of a protocol role is
+non-adversarial, and is called \index{regular}\emph{regular.}  A
+strand that represents adversarial behavior is called a
+\emph{penetrator}\index{penetrator} strand.
+
+\begin{figure}
+\begin{center}
+\includegraphics{cpsadiagrams-2.mps}
+\end{center}
+\begin{quote}
+\begin{verbatim}
+(vars (n1 n2 text) (a b name))
+(defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+(defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+(precedes ((0 0) (1 0)) ((1 1) (0 1)) ((0 2) (1 2)))
+\end{verbatim}
+\end{quote}
+\caption{Needham-Schroeder Intended Run}
+\label{fig:ns intended}
+\end{figure}
+
+The roles that define adversary behavior codify the basic abilities
+that make up the Dolev-Yao model.  They include transmitting an atom
+such as a name or a key; transmitting a tag; transmitting an encrypted
+message after receiving its plain text and the key; and transmitting a
+plain text after receiving ciphertext and its decryption key.  The
+adversary can also concatenate two messages, or separate the pieces of
+a concatenated message.  Since a penetrator strand that encrypts or
+decrypts must receive the key as one of its inputs, keys used by the
+adversary---compromised keys---have always been transmitted by some
+participant.
+
+Figure~\ref{fig:ns penetrated} shows a penetrated execution of the
+Needham-Schroeder Protocol.  Strand space theory would decompose the
+penetrator behavior into multiple strands; instead the description of
+the penetrator has been simplified by the use of an artificially
+constructed role~\fn{pen}.
+
+A \index{non-origination}\emph{non-originating term} is an atom
+that is carried by no message, and it or its inverse is the key of an
+encryption in some message.  Each non-originating term is a key that
+is not compromised, as the penetrator has no access to the key.
+
+A \index{penetrator non-origination}\emph{penetrator non-originating
+  term} is an atom that is forbidden from being originated on a
+penetrator strand in an execution.
+
+A \index{unique origination}\emph{uniquely originating term} is an
+atom that originates on exactly one strand in the execution.  The
+correct behavior of some protocols depends on the fact that its
+executions include only ones in which some terms are uniquely
+originating---each term's provenance is one node.  Implementations of
+these protocols can ensure unique origination of a term by freshly
+generating a nonce for the component of the message it represents.
+
+Occasionally, protocol roles designate some terms to be
+non-originating or uniquely originating.  Consider the prefix of the
+trace of a role associated with some instance.  When a uniquely
+originating role term is carried in the prefix, the instance's
+environment maps it to a term that must originate in the instance's
+strand.  Furthermore, when the variables in a non-originating role
+term occur in the prefix, the instance's environment maps that term to
+one that must not be carried by any message term in the execution.
+The mapping of a non-originating role term can be conditioned on the
+height of the instance.  A role non-origination assumption of the form
+\texttt{(3 a)} asserts that \texttt{a} will not be mapped into an
+instance unless its height is at least three.  Penetrator
+non-originating atoms are similar.  Section~\ref{sec:advice} provides
+advice on when to add non-origination or unique origination
+assumptions to roles.
+
+\begin{figure}
+\begin{center}
+\includegraphics{cpsadiagrams-3.mps}
+\caption{Needham-Schroeder Penetrated}
+\label{fig:ns penetrated}
+\end{center}
+\end{figure}
+
+\section{Skeletons}\index{skeleton}
+
+A \emph{skeleton} represents regular behavior that might make up part
+of an execution.  The components of a skeleton are similar to an
+execution.  The components of a skeleton include a protocol, a
+sequence of instances, and a binary relation between transmission
+nodes and reception nodes within the sequence.  Unlike an execution,
+the strands in a skeleton specify only regular behavior.  Furthermore,
+the pair of nodes in the relation need not agree on their message
+term.  Two nodes are related if the transmitting node precedes the
+reception node, as an execution it represents may include nodes
+between the related transmission and reception nodes.
+
+The final three additional components of a skeleton are a set of
+non-originating terms, a set of penetrator non-originating terms, and
+a set of uniquely originating terms.  To be a skeleton, each uniquely
+originating term must originate in at most one strand in the skeleton,
+and each non-originating term must never be carried by some event in
+the skeleton and every variable that occurs in the term must occur in
+some event.  For a penetrator non-originating term, is suffices that
+every variable that occurs in the term must occur in some event.
+Furthermore, for each uniquely originating term that originates in the
+skeleton, the node relation must ensure that reception nodes that
+carry the term follow the node of its origination.
+Figure~\ref{fig:skeleton} shows the components in the S-expression
+representation of a skeleton.
+
+\begin{figure}
+\begin{quote}
+\begin{alltt}
+(defskeleton \textsc{protocol} \textsc{variables}
+   \ldots                ; Instance sequence
+   (precedes \ldots)     ; Node orderings
+   (non-orig \ldots)     ; Non-originating terms
+   (pen-non-orig \ldots) ; Penetrator non-originating terms
+   (uniq-orig \ldots))   ; Uniquely originating terms
+\end{alltt}
+\end{quote}
+\caption{Components of Skeletons}\label{fig:skeleton}
+\end{figure}
+
+Two skeletons are equivalent if there is a permutation of the strands
+in one skeleton that when applied to its sequence and its node
+relation, produces the other skeleton.  Two skeletons are also
+equivalent if they differ only by a systematic, sort-preserving
+renaming of their variables, excluding variables that occur in the
+domains of environments---the role variables.  The trace of a strand
+is used for the comparison, so role names need not match.
+
+A skeleton is normalized by performing a transitive reduction on its
+node relation.  The transitive reduction\index{transitive reduction}
+of an ordering is the minimal ordering such that both orderings have
+the same transitive closure.  Here, communication orderings implied by
+transitive closure are removed.  Two skeletons are equivalent if their
+normalized forms are equivalent.
+
+One special skeleton is associated with each execution.  It summarizes
+the regular behavior of the execution.  It is derived from the
+execution by enriching its node relation to contain all node orderings
+implied by transitive closure, deleting all strands and nodes that
+refer to penetrator behavior, and then performing the transitive
+reduction on the resulting node relation.  The set of uniquely
+originating terms is the set of terms that originate on exactly one
+strand in the execution, and are carried in a term of a regular
+strand.  The set of non-originating terms is the union of two sets.
+One set contains each term that is used as an encryption or decryption
+key in some term in the execution, but is not carried by any term.
+The other set contains the terms specified by non-origination
+assumptions in roles.  If a realized skeleton instance maps all of the
+variables that occur in one of its non-originating role terms, the
+mapped term is a member of the skeleton's set of non-originating
+terms.  A skeleton is \emph{realized}\index{realized skeleton} if it
+summarizes the behavior of some execution.
+
+Skeletons are a central concept in the {\cpsa} algorithm because they
+capture the notion that the details of penetrator behavior are
+irrelevant to the analysis.  From the perspective of regular behavior,
+all that is needed is a description of the messages that can be
+derived by the penetrator at a given reception node of a regular
+strand.  In a realized skeleton, some combination of penetrator
+behavior and regular behavior derives the message at every reception
+node.  The skeleton's node relation specifies the transmission nodes
+that provide messages available to the penetrator for message
+derivations.  The rules for message derivation are algebra specific.
+If the message derivation rules imply a message at a reception node in a
+skeleton is derivable, the node is~\emph{realized.}
+
+A skeleton with an unrealized node might be related to another
+skeleton with additional regular behavior that makes the original node
+realized.  A skeleton with additional regular behavior is called a
+refinement.
+
+A skeleton~$A$ structurally refines~$B$ if the transitive closure of the
+graph associated with~$B$ is a subgraph of the one associated
+with~$A$, the event at corresponding nodes agree, the set of
+uniquely originating terms of~$B$ is a subset of the ones in~$A$, the
+set of non-originating terms of~$B$ is a subset of the ones in~$A$,
+and a uniquely originating term that originates in~$B$ originates at
+the corresponding node in~$A$.  Penetrator non-originating assumptions
+are similar to non-originating assumptions.
+
+A skeleton~$A$ message refines~$B$ if~$A$ and~$B$ agree on all but the
+terms in the range of each strand's environment and its
+non-originating and uniquely originating terms, and there is a
+substitution that maps each term in~$B$ to its related term in~$A$.
+Similar to structural refinement, a uniquely originating term that
+originates in~$B$ originates at the same node in the image of~$B$.
+
+A skeleton~$A$ refines\index{refinement}~$B$ if~$A$ is equivalent to a
+skeleton that structurally or message refines~$B$.\footnote{A
+  skeleton~$A$ refines~$B$ if there is a homomorphism from~$B$ to~$A$
+  as defined in~\cite{DoghmiGuttmanThayer07}.  The implementation
+  avoids the complexities of directly representing homomorphisms by
+  composing structural and message refinement with equivalence checks,
+  as is done in this chapter.}  Each skeleton describes the realized
+skeletons that refine it.  A skeleton is \emph{dead} if no realized
+skeleton refines it.  A diagram of a skeleton is in Figure~\ref{fig:ns
+  shape}.
+
+\begin{figure}
+\begin{center}
+\includegraphics{cpsadiagrams-4.mps}
+\caption{Needham-Schroeder Shape ($K^{-1}_A$ uncompromised, $N_2$ fresh)}
+\label{fig:ns shape}
+\end{center}
+\end{figure}
+
+The {\cpsa} algorithm computes realized skeletons from unrealized
+skeletons by identifying an unrealized node, and computing the
+skeletons that refine the unrealized skeleton by making the target
+node realized.
+
+\section{Listeners}\index{listeners}
+
+In addition to the roles specified in a protocol, for each term~$t$, a
+regular strand may be an instance of the listener role with the trace
+$\fn{lsn}(t) = \seq{\inbnd t, \outbnd t}$.  There are no non-originating or
+uniquely originating terms associated with a listener role.
+
+A listener strand is used in a skeleton to assert that an atom~$t$ is
+available on its own to the adversary, unprotected by encryption.  For
+example, to test if the protocol keeps a term~$t$ from the adversary,
+one adds a strand that listens for~$t$.  The term is protected if the
+resulting skeleton is dead.  Otherwise, the {\cpsa} analyzer program
+will find a refined realized skeleton that shows how the adversary
+accesses~$t$.
+
+A listener instance in S-expression syntax follows.  See
+\textsc{strand} in Table~\ref{tab:syntax}, Appendix~\ref{sec:syntax
+  reference}.
+\begin{center}
+\texttt{(deflistener }\textsc{term}\texttt{)}
+\end{center}
+The {\cpsa} programs generate the associated listener role and hide
+it on output.  Listener role names are absent in all forms of output,
+one indication that a strand is an instance of a listener role.
+
+\section{Authentication Tests}\label{sec:authentication tests}
+\index{nonce test}\index{encryption test}
+
+Authentication tests~\cite{GuttmanThayer02} guide the search for
+skeletons that refine one with an unrealized node into ones in which
+it is realized.  There are two types of authentication tests, nonce
+and encryption tests.  In both cases, an unrealized node is selected,
+called the \index{test node}\emph{test node.}  A term carried by the
+inbound message at the test node is identified as the \index{critical
+  term}\emph{critical term.}  A critical term is one that occurs in a
+message context, the construction of which cannot be explained by the
+regular behavior in the current skeleton or by penetrator behavior.
+An authentication test determines the additional regular behavior
+required to refine a skeleton into ones in which the test node is
+realized.
+
+The critical term in a nonce test is a uniquely originating term, the
+nonce.  It is freshly generated by one regular participant in each run
+of the protocol.  A nonce is unguessable by both regular and
+adversarial participants except when it is received in an unprotected
+context.
+
+A reception node's \index{outbound predecessors}\emph{outbound
+  predecessors} is the set of messages sent by transmission nodes that
+precede the reception node, as given by the transitive closure of its
+skeleton's node ordering relation.  Suppose every occurrence of the
+nonce in the outbound predecessors of the test node is within a
+context protected by encryption, but the critical term in the test
+node occurs outside of all of those encryptions.  Clearly, another
+participant was able to decrypt one of the test node's outbound
+predecessors.  The set of encryptions that protects a critical term
+in a test node's outbound predecessors is called its \index{escape
+  set}\emph{escape set.}
+
+There are three ways to refine a skeleton to account for the
+decryption: regular augmentation, listener augmentation, and
+contraction.  For regular augmentation, an instance of a protocol role
+is added to the skeleton.  The final transmission node of the strand
+is called a \emph{transforming node.}  The strand is selected for
+augmentation because relative to the test node's outbound
+predecessors, the transforming node's message shows the strand
+performed the decryption.
+
+The penetrator can expose the critical term if it has access to any
+of the decryption keys used to protect it in the escape set.  For
+listener augmentation, an instance of a listener role listening to one
+decryption key used to protect the critical term is added, and the
+skeleton's communication ordering relation is updated to record the
+fact that the listener's transmission node precedes the test node.  If
+the resulting skeleton is not dead, the decryption can be explained by
+penetrator behavior.
+
+For a contraction, a message refining substitution is found that
+equates two or more atoms.  Sometimes, the key used to protect the
+critical term can be equated with one used in previous messages,
+thus vacuously explaining the decryption of the critical term.
+
+The critical term in an encryption test is an encryption.  When the
+encryption key is unavailable, the encryption is unguessable.
+Whenever the unavailability of the encryption key can be established,
+the methods used to refine skeletons with nonce tests apply.
+Additionally, an instance of a listener role listening for the
+critical term's encryption key is added.  If the resulting skeleton
+is not dead, the encryption can be explained by penetrator behavior.
+
+\section{Generalization}
+
+Repeated use of authentication tests either produce realized skeletons
+or show that a skeleton is dead.  The next step in the algorithm is to
+make each realized skeleton into a shape, using the process of
+generalization.
+
+Realized skeleton~$A$ \emph{generalizes}\index{generalization}
+realized skeleton~$B$ if~$A$ refines the origin problem specification,
+and $B$ refines~$A$.  Furthermore,~$A$ may not combine strands in~$B$.
+The \emph{shape}\index{shape} associated with a realized skeleton is
+its maximally generalized realized skeleton.  The shapes of a protocol
+capture all the essentially different executions possible for the
+protocol consistent with the initial behavior specification.
+Figure~\ref{fig:ns shape} shows the shape associated with the
+Needham-Schroeder Protocol from the point of view of a responder
+strand.
+
+A different fixed set of operations is used to transform a realized
+skeleton into a shape: deletion, weakening, separation, and
+forgetting.  If an operation succeeds, it produces a more general
+realized skeleton, one that is not equivalent to the starting
+skeleton.  If no operations succeeds, the skeleton is a shape.
+
+For deletion, a node and all nodes that follow it in a strand are
+deleted, and the resulting skeleton is checked to see if it
+generalized the starting skeleton.  The operation is tried for each
+node in the starting skeleton until there is a success.
+
+If deletion fails, a skeleton is weakened by deleting one element of
+the communication ordering, then checking the result to see if it
+generalized the starting skeleton.  The operation is tried for each
+communication ordering in the starting skeleton until there is a success.
+
+If weakening fails, origination assumption forgetting is tried by
+deleting each term in the non-originating set that is not
+specified by a role.  This is followed by deleting each term in the
+uniquely originating set that is not specified by a role.
+
+If origination assumption forgetting fails, variable separation is
+tried.  Sometimes a more general skeleton can be found by replacing
+some occurrences of one variable by a fresh variable.  To separate a
+variable, the collection of places at which the variable occurs in the
+range of all environments is generated, and a fresh variable is
+substituted for the variable at a subset of these places.  All
+possibilities are tried until a more general skeleton is found.
+
+Sometimes a shape is derived from another shape by collapsing two
+strands in a shape.  Collapsing might produce an unrealized skeleton,
+so authentication tests apply.
+
+\section{Skeletons}\index{skeleton}\label{sec:skeletons}
+
+With this background, the \texttt{defskeleton} form in
+Table~\ref{tab:syntax}, Appendix~\ref{sec:syntax reference} is
+explained.  The key object in {\cpsa} input and output is a skeleton,
+but an object with weaker properties is allowed for the initial
+problem statement.  A \index{preskeleton}\emph{preskeleton} is a
+skeleton except that terms in the uniquely originating set may
+originate in more than one strand.  Furthermore, the node relation of
+a preskeleton need not imply that a node that carries a uniquely
+originating term is after the node of its origination.  A preskeleton
+that cannot be immediately converted into a skeleton is erroneous, and
+an error message is issued.
+
+Referring to \textsc{skeleton} in Table~\ref{tab:syntax}, the
+\textsc{id} in the skeleton form names a protocol.  It refers to
+the most recent protocol definition of that name which precedes the
+skeleton form.  The \textsc{id} in the strand form names a role.
+The integer in the strand form gives the height of the strand.  The
+sequence of pairs of terms in the strand form specify an environment
+used to construct the messages in a strand from its role's trace.  The
+first term is interpreted using the role's variables and the second
+term uses the skeleton's variables.  The environment used to
+produce the strand's trace is derived by matching the second term
+using the first term as a pattern.
+
+The \texttt{precedes} form specifies members of the node relation.
+The first integer in a node identifies the strand using the order in
+which strands are defined in the \texttt{defskeleton} form.
+
+A variable may occur in more then one role within a protocol.  The
+reader performs a renaming so as to ensure these occurrences do not
+overlap.  Furthermore, the maplets used to specify a strand need not
+specify how to map every role variable.  The reader inserts missing
+mappings, and renames every skeleton variable that also occurs in a
+role of its protocol.  The sort of every skeleton variable that occurs
+in the \texttt{non-orig}, \texttt{pen-non-orig}, or \texttt{uniq-orig}
+list or in a maplet must be declared, using the \texttt{vars} form.
+
+The \textsc{prot-alist}, \textsc{role-alist}, and \textsc{skel-alist}
+productions are Lisp style association lists, that is, lists of
+key-value pairs, where every key is a symbol.  Key-value pairs with
+unrecognized keys are ignored, and are available for use by other
+tools.  On output, unrecognized key-value pairs are preserved when
+printing protocols, but elided when printing skeletons, with the
+exception of the \texttt{comment} key.
+
+\subsection{Semantic Errors in the Input}\label{sec:semantic errors}
+
+The error messages generated for syntax errors are informative,
+however the ones generated for semantic errors are less so.  A role
+might be rejected because it is not \index{well-formed
+  role}well-formed.  A role is not well-formed if (1) there is a term
+declared to be uniquely originating that does not originate in the
+trace, (2) there is a term declared to be non-originating that is
+carried by some term in the trace, a variable occurs in the term that
+does not occur in the trace, or the declaration of the term included a
+height, and a variable occurs in the term that does not occur in the
+prefix of the trace of the given height, or (3) a variable of sort
+\dom{mesg} is not acquired in the trace.  The error message might not
+indicate which condition caused the rejection.
+
+Similarly, a skeleton might be rejected because it is not
+\index{well-formed skeleton}well-formed.  A skeleton is not
+well-formed if (1) the first node in a node pair refers to an inbound
+term, or the second node refers to an outbound term, (2) the node
+ordering contains cycles, (3) a term declared to be uniquely
+originating, is not carried by any term, (4) an instance maps a
+uniquely originating role term to a term that does not originate in
+the instance's strand, or (5) a term declared to be non-originating is
+carried by a term in some strand, or a variable occurs in the term
+that does not occur in any strand.  Once again, the error message might
+not indicate which condition caused the rejection.
+
+\subsection{Needham-Schroeder Input}
+
+\begin{sloppypar}
+This section contains the verbatim input of the running example used
+throughout this paper.  The use of an editor that pretty-prints
+S-expressions is recommended.
+\end{sloppypar}
+
+\begin{verbatim}
+;;; Hey Emacs, use -*- mode:scheme -*-
+(herald "Needham-Schroeder Public-Key Protocol"
+        (comment "This protocol contains a man-in-the-middle"
+                 "attack discovered by Galvin Lowe."))
+\end{verbatim}
+
+An S-expression version of Figure~\ref{fig:ns roles} follows.
+
+\begin{verbatim}
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace
+     (send (enc n1 a (pubk b)))
+     (recv (enc n1 n2 (pubk a)))
+     (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace
+     (recv (enc n1 a (pubk b)))
+     (send (enc n1 n2 (pubk a)))
+     (recv (enc n2 (pubk b))))))
+\end{verbatim}
+
+The protocol is analyzed from the point of view of a complete run of
+one instance of an initiator role.
+
+\begin{verbatim}
+(defskeleton ns
+  (vars (a b name) (n1 text))
+  (defstrand init 3 (a a) (b b) (n1 n1))
+  (non-orig (privk b) (privk a))
+  (uniq-orig n1))
+\end{verbatim}
+
+\section{Output}\label{sec:output}
+
+The {\cpsa} output format has been designed so that it can be reused
+as input.  All skeletons in the output are normalized skeletons,
+with the possible exception of an initial preskeleton, the one used to
+state a problem.  If an initial preskeleton cannot be converted into a
+skeleton, an error is immediately signaled.
+
+For each skeleton, a {\cpsa} analyzer computes a set of skeletons that
+refine it using a fixed set of operations based on authentication
+tests.  The immediate descendants of a skeleton is called its
+\index{cohort}\emph{cohort.}  A member of the cohort that is
+equivalent to a previously seen skeleton is replaced by that skeleton.
+Thus the skeletons in an analysis form a directed acyclic graph.  All
+but one skeleton has a single parent, and one skeleton can be a member
+of several cohorts.
+
+The operations above either produce realized skeletons or show that a
+skeleton is dead.  The next step in the algorithm is to make each
+realized skeleton into a shape, using the process of generalization.
+Although the set of shapes is in some sense the answer to the problem,
+an understanding of the operations used to generate the shapes can be
+very informative.  The remainder of this section describes the
+annotations in the output that allow for an understanding of each step
+of the analysis.
+
+On output, key-value pairs are added to each skeleton's association
+list, \textsc{skel-alist}.  Every skeleton in the output is labeled
+with a unique identifier with
+\index{label}\texttt{(label~}\textsc{integer}\texttt{)}.  A skeleton
+has \texttt{(parent~}\textsc{integer}\texttt{)} if it is a member of
+the cohort of the identified parent.  A skeleton has
+\texttt{(seen~}\textsc{integer+}\texttt{)} when members of its cohort
+are equivalent to previously seen skeletons.  A skeleton lists its
+unrealized nodes with
+\texttt{(unrealized~}\textsc{node$\ast$}\texttt{)}.  The traces
+associated with each strand is given by the
+\texttt{(traces~}\ldots\texttt{)} form.
+
+\begin{figure}
+\begin{verbatim}
+(defskeleton ns
+  (vars (n1 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (operation nonce-test (added-strand resp 2) n1 (0 1)
+    (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b)))
+      (send (enc n1 n2-0 (pubk a)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+\end{verbatim}
+\caption{Annotated {\cpsa} Output}\label{fig:output}
+\end{figure}
+
+Figure~\ref{fig:output} shows a skeleton generated during an analysis
+of the Needham-Schroeder Protocol from the point of view of an
+initiator strand.  It is labeled as~1.  It's parent is labeled~0.  It
+has one child, and that child has not been seen before.  It is
+unrealized.
+
+\label{sec:operation}
+\begin{sloppypar}
+The operation used to derive a skeleton is recorded with
+\index{operation}\texttt{(operation~}\textsc{test kind term node
+  term$\ast$}\texttt{)}, where \textsc{test} is the authentication
+test \texttt{encryption-test} or \texttt{nonce-test}, \textsc{kind} is
+\texttt{(added-strand} \textsc{id} \textsc{integer}\texttt{)},
+\texttt{(contracted} \textsc{maplet$\ast$}\texttt{)}, or
+\texttt{(added-listener} \textsc{term}\texttt{)}, \textsc{term} is the
+critical term, \textsc{node} in the test node, and the remaining terms
+specify the escape set. When the operation kind is added strand, the
+instance's role name and height are provided. For kind added-listener,
+a term is provided. For kind contracted, the substitution is
+provided. When a substitution refers to a variable not in the
+skeleton, its name is unpredictable. For generalization, the operation
+is recorded as
+\texttt{(operation~generalization~}\textsc{method}\texttt{)}, where
+\textsc{method} is one of \texttt{deleted} \textsc{node},
+\texttt{weakened} \textsc{node-pair}, \texttt{separated}
+\textsc{term}, or \texttt{forgot} \textsc{term}.  Shapes can be
+collapsed leading to new shapes.  For shape collapsing, the operation
+is recorded as \texttt{(operation~collapsed} \textsc{integer}
+\textsc{integer}\texttt{)}, where the two \textsc{integer}s identify
+the strands merged.
+\end{sloppypar}
+
+The skeleton in Figure~\ref{fig:output} was generated as a result of a
+nonce test, by augmenting the starting skeleton with a responder
+strand of length two.  The critical term is \texttt{n1}, the test
+node is \texttt{(0~1)}, and the escape set has one element.
+
+When the operation kind is added strand, it is possible that the
+number of strands in the skeleton and its parent are the same.  In
+this case, {\cpsa} has found a way to produce a more concise
+representation of the skeleton by merging two strands.
+
+\subsection{Needham-Schroeder Output}
+
+% Use --margin=60 to generate output
+
+This section contains the verbatim output of the running example used
+throughout this paper.  A run starts by displaying the program's
+version number.
+
+\begin{verbatim}
+(herald "Needham-Schroeder Public-Key Protocol"
+  (comment "This protocol contains a man-in-the-middle"
+    "attack discovered by Galvin Lowe."))
+\end{verbatim}
+
+\begin{flushleft}
+\texttt{(comment "CPSA {\version}")}\\
+\texttt{(comment "All input read")}
+\end{flushleft}
+
+An S-expression version of Figure~\ref{fig:ns roles} follows.
+
+\begin{verbatim}
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc n1 a (pubk b)))
+      (recv (enc n1 n2 (pubk a))) (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc n1 a (pubk b)))
+      (send (enc n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b))))))
+\end{verbatim}
+
+The protocol is analyzed from the point of view of a complete run of
+one instance of an initiator role.
+
+\begin{verbatim}
+(defskeleton ns
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 0)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+\end{verbatim}
+
+A nonce test justifies adding an instance of part of a reponder role.
+
+\begin{verbatim}
+(defskeleton ns
+  (vars (n1 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (operation nonce-test (added-strand resp 2) n1 (0 1)
+    (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b)))
+      (send (enc n1 n2-0 (pubk a)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+\end{verbatim}
+
+A nonce test justifies a contraction that produces the one and only
+shape.  The shape is also displayed in Figure~\ref{fig:ns init pov}.
+
+\begin{figure}
+\begin{center}
+\includegraphics{cpsadiagrams-5.mps}
+\caption{Needham-Schroeder Shape (Initiator Point of View)}
+\label{fig:ns init pov}
+\end{center}
+\end{figure}
+
+\begin{verbatim}
+(defskeleton ns
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (operation nonce-test (contracted (n2-0 n2)) n1 (0 1)
+    (enc n1 n2 (pubk a)) (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b)))
+      (send (enc n1 n2 (pubk a)))))
+  (label 2)
+  (parent 1)
+  (unrealized)
+  (shape))
+\end{verbatim}
+
+The following phrase means {\cpsa} is finished with this problem---its
+exhausted its to do list.
+
+\begin{verbatim}
+(comment "Nothing left to do")
+\end{verbatim}
+
+\section{Macros}\label{sec:macros}
+
+After reading the input, {\cpsa} expands macros before in analyzing
+the results. A macro definition is a top-level form.\index{macros}
+
+\begin{quote}\scshape
+(\texttt{\textup{defmacro}} (name arg${}^\ast$) body)
+\end{quote}
+
+The {\cpsa} program expands all calls to macros in non-macro defining
+S-expressions using the macros that have been defined previously. A
+macro definition can be used to expand a call if the first element of
+a list matches the name of the macro, and the length of the remaining
+elements in the list matches the length of the macro's argument
+list. When two macros definitions are applicable, the last definition
+takes precedence. The {\cpsa} program omits macro definitions from its
+output.
+
+\section{Includes}\label{sec:include}
+
+While performing macro expansion, {\cpsa} includes other source files
+with the top-level include form,\index{includes}
+\begin{quote}\scshape
+(\texttt{\textup{include}} file)
+\end{quote}
+where \texttt{\scshape file} is a string.
+
+\section{Advice}\label{sec:advice}
+
+This section contains advice derived from using {\cpsa}.  When
+specifying {\cpsa} input, one must decide when to specify terms as
+uniquely originating or non-originating in a role, and when to
+specifying them in the initial skeleton.  If a flesh value is
+generated by all programs that implement a role in a protocol, the
+term that represents the fresh value should be assumed to be uniquely
+originating in the role.  Otherwise, unique origination assumptions
+should be specified in the initial skeleton.
+
+Adding non-origination assumptions to a role can lead to an
+excessively weak protocol analysis, i.e.\ an analysis relative to an
+unrealistically narrow assumption.  Placing non-origination
+assumptions in the initial skeleton is preferred whenever possible.
+
+The Basic Crypto Algebra has two text-like sorts, \dom{text} and
+\dom{data}.  For some protocols, message fields that carry uniquely
+originating data cannot be carried by other text-like fields.  To
+ensure {\cpsa} does not explore skeletons in which uniquely
+originating data is carried in fields with predictable values, the
+convention is to use the sort \dom{data} for uniquely originating
+data, and sort \dom{text} for the other fields.
+
+When looking at the output, try extracting the shapes first.  If the
+shapes only version of the output does not answer your questions, try
+studying the output that contains intermediate skeletons.
+
+When {\cpsa} generates an unexpected intermediate skeleton, study its
+operation field (see Page~\ref{sec:operation}).  Usually, the
+unexpected intermediate skeletons of interest have been generated as a
+result of an authentication test.  Section~\ref{sec:authentication
+  tests} explains how to interpret an operation field for an
+authentication test.
+
+When using {\cpsa} for protocol design, focus on authentication tests.
+For each iteration of the design, search for the most informative
+unexpected intermediate skeleton.  That skeleton is likely to suggest
+a  missing origination assumption, or the redesign of some message
+term included in the operation field.
+
+There are situations in which origination assumptions are not
+justified for initial segments of runs of a protocol, but are required
+to show that complete runs of the protocol have certain expected
+shapes.  In this case, the progressive refinement analysis technique
+is used.  The initial segments of runs are analyzed with only the
+origination assumptions justified initially.  A shape associated with
+a partial run may justify additional origination assumptions.  For
+example, a strand in a partial run may send its next message only
+after a trust decision is made, and the implication of the decision is
+that the strand infers that some key is uncompromised.  In this
+case, the shape with the new origination assumption and additional
+regular behavior is supplied as input to {\cpsa}, thereby refining the
+original problem.
+
+As there is no guarantee that {\cpsa} is bug free, you may come upon
+input that causes non-termination.  As a result, whenever you run the
+program unattended, you should limit its memory usage.  To get output
+that can be visualized, specify a step count and/or a strand bound so
+that {\cpsa} has the chance to abort the run in a fashion that
+generates graphable output.  Of course, sending us input that causes
+erroneous behavior will help us improve {\cpsa}.
+
+\section{Formula Extraction}\label{sec:formulas}
+
+The \texttt{cpsalogic} program extracts a formula in the language of
+order-sorted first-order logic for each problem and its shapes from a
+{\cpsa} run. The formula is called a shape analysis
+sentence~\cite{Ramsdell12}. The formula is satisfied in all realized
+skeletons when {\cpsa} finds all the shapes for the problem.  The
+details of formula extraction are presented in Appendix~B of The
+{\cpsa} Specification~\cite{cpsaspec09}.
+
+\section{Annotations}\label{sec:annotations}
+
+The \texttt{cpsaannotations} program uses protocol annotations to
+annotate shapes and generate protocol soundness obligations for use
+with the rely-guarantee method of trust
+management~\cite{GuttmanEtAl04,RamsdellEtAl09}.  The language of
+formulas is order-sorted first-order logic extended with a modal says
+operator.  Formula terms may include function symbols that are not
+part of a protocol's message signature.  The syntax of a formula is
+specified in the {\cpsa} Overview~\cite{cpsaoverview09}.
+
+\section{Parameter Analysis}\label{sec:parameters}
+
+The parameters of a role are the atoms that are not acquired by the
+role's trace, but must be available before a complete execution of the
+trace is possible. The \texttt{cpsaparameters} program computes sets
+of sets of parameters consistent with the role. If the expected
+parameter set is not a member, a specification error is indicated.
+The details of parameter analysis are presented in Appendix~A of The
+{\cpsa} Specification~\cite{cpsaspec09}.
+
+\section*{Acknowledgement}
+
+Jonathan K.\@ Millen provided valuable feedback as our first {\cpsa}
+user and on a draft of this document.
+
+\appendix
+
+\section{BCA Syntax Reference}\label{sec:syntax reference}
+
+\input{bcasyntax}
+
+\section{Omitted Executions}\label{sec:omitted executions}
+
+When given some initial behavior, the {\cpsa} program discovers what
+shapes are compatible with it.  Early work claimed that the {\cpsa}
+algorithm would generate every shape in a finite number of
+steps~\cite{DoghmiGuttmanThayer07,Guttman11}.  Further theoretical
+work showed classes of executions that are not found by the algorithm,
+however it also showed that every omitted execution requires an
+unnatural interpretation of a protocol's roles.  Hence the algorithm
+is complete relative to natural role semantics.  We present an example
+of a protocol that has a shape missed by {\cpsa}.
+
+The protocol has an initiator role and a responder role.
+\begin{center}
+\includegraphics{cpsadiagrams-6.mps}\hfil
+\includegraphics{cpsadiagrams-7.mps}
+\end{center}
+
+Observe that a natural interpretation of~$N_2$ in the responder role
+is that a binding for it is known when an instance of the role begins
+execution.
+
+Consider a scenario in which there is an instance of the initiator
+role where~$N$ is freshly generated and~$K^{-1}$ is uncompromised.
+{\cpsa} will find no shapes compatible with the scenario, however what
+follows is.
+\begin{center}
+\includegraphics{cpsadiagrams-8.mps}
+\end{center}
+Yet this shape requires that the message for~$N_2$ in an instance the
+responder role be obtained from its first message reception---an
+unnatural interpretation of the responder role.
+
+\bibliography{cpsa}
+\bibliographystyle{plain}
+
+\printindex
+
+\end{document}
diff --git a/doc/src/cpsa4manual/declarations.tex b/doc/src/cpsa4manual/declarations.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/declarations.tex
@@ -0,0 +1,433 @@
+\chapter{Constraining CPSA's search}
+\label{ch:declarations}
+
+If you have read Chapters~\ref{ch:basic} and~\ref{ch:algebra}, you
+have seen the \texttt{uniq-orig} and \texttt{non-orig} features, which
+are the first representatives of a large class of features called
+\emph{declarations}.  These ``declare'' certain assumed properties about
+an execution in order to constrain the tool's search.  In this chapter,
+we will describe more precisely the notion of execution that motivates
+the {\cpsa} analysis, and precisely define these and other declarations
+available for use in the tool.
+
+\section{Bundles: A Strand-Based Execution Model}
+\label{sec:bundles}
+
+\index{strand spaces} \index{event} The {\cpsa} tool is based on
+strand space theory~\cite{DoghmiGuttmanThayer07}.  A strand is simply
+a sequence of \emph{events}, which are transmissions or receptions of
+messages.
+
+A bundle is a set of strands, along with a satisfaction relation
+$\rightarrow$ from transmissions to receptions, where for every
+reception event $e_1$ of a message $m$, there is a unique transmission
+event $e_0$ of $m$ such that $e_0 \rightarrow e_1$, and such that the
+graph formed on the events of the strands with edges defined by
+$\rightarrow$ and strand succession is acyclic.
+
+Bundles express an explanatory framework in which a set of sequential
+viewpoints of transmissions and receptions is self-contained.  Although
+bundles do not totally order the events, they express the orderings that
+are essential due to causality.
+
+The most basic notion of a protocol is simply a set of roles which are
+each themselves strands representing a template of behavior.  A bundle
+is a bundle \emph{of a protocol} $P$ if every strand in the bundle is
+either an instance of a role in $P$ or an instance of a penetrator
+role.  There are two types of penetrator roles: derivation roles and
+the ``create'' role.  The derivation roles are determined by the
+message model; one matches each derivability rule in the algebra used.
+The create role consists of a one-event strand in which certain basic
+values may be transmitted.  This always includes all constants (such
+as tag constants or the generator $g$ in the Diffie-Hellman algebra),
+and also includes all values of basic sorts: the sorts other than
+$\scap{mesg}$ in the basic algebra, and those sorts plus the
+$\scap{rndx}$ sort in the Diffie-Hellman algebra.
+
+\section{Secrecy assumptions}
+\label{sec:secrecy_assumptions}
+A priori, the analysis of (say) the initiator's point of view in
+Needham-Schroeder is tasked with exploring all bundles of the
+Needham-Schroeder protocol in which an initiator instance of
+sufficient length is included.  As it turns out, there is a most
+general shape, namely, the full-length initiator instance, alone.
+However, the bundle this shape describes is not of great interest,
+because the nonce chosen by the initiator appears in a ``create''
+instance.
+
+An assumption of secrecy is, in essence, a statement that the analyst
+is interested only in certain bundles.  In the case of this nonce, for
+instance, we assume the nonce is secret and are thus uninterested in
+bundles in which that nonce appears in a ``create'' instance.
+
+There are four declarations that may be used in {\cpsa} to represent
+a secrecy assumption, but these assumptions are distinct from each other
+and each have a particular semantic and syntactic meaning.
+
+\index{carried subterm}
+To describe these assumptions, we first need some terminology.  We
+use ``carried'' to refer to subterms of a term that can potentially be
+obtained from that term via decomposition. A pair carries each of its
+elements, and an encryption carries its plaintext.  We extend this
+notion transitively, so for instance $\enc{n1, n2}{K(a)}$ carries $n1$
+since it carries the plaintext $(n1, n2)$ which in turn carries $n1$.
+
+\index{origination} We say that a value \emph{originates} on a strand
+when its first \emph{carried} occurrence is in a transmission.
+
+\begin{itemize}
+\index{origination!unique}
+\item A value \emph{uniquely originates} in a bundle if it originates
+  on exactly one strand.  Note that if the unique origination point of
+  a value is on a regular strand, then it cannot be produced in a
+  ``create'' instance because that would constitute a second point of
+  origination.
+
+\index{origination!non-origination}
+\item A value is \emph{non-originating} in a bundle if it does not
+  originate on any strands.  A simple lemma can show that a value is
+  non-originating only if it is not carried in any message in the
+  bundle.
+
+\index{origination!penetrator non-origination}
+\item A value is \emph{penetrator non-originating} in a bundle of
+  a protocol if it does not originate on any penetrator strands.
+  Clearly, such a value cannot be produced in a ``create'' instance.
+\end{itemize}
+
+\ttindex{uniq-orig} \ttindex{non-orig} \ttindex{pen-non-orig} The
+presence of a \texttt{uniq-orig}, \texttt{non-orig}, or
+\texttt{pen-non-orig} declaration of a value is a statement by the
+user that they are only interested in bundles in which the declared
+value uniquely originates, is non-originating, or is penetrator
+non-originating, respectively.
+
+\ttindex{uniq-gen} \index{generation} The fourth declaration that
+imposes a secrecy assumption is the \texttt{uniq-gen} declaration.  We
+say that a value \emph{generates} on a strand when its first
+occurrence (carried or not) in that strand is in a transmission.  The
+presence of a \texttt{uniq-gen} declaration of a value equates to a
+restriction to bundles in which the declared value generates on only
+one strand.  Note that if a value that generates uniquely generates on
+a regular strand, it cannot be produced in a ``create'' instance.
+
+The \texttt{uniq-orig} (resp. \texttt{uniq-gen}) declaration can only
+be used in {\cpsa} input for values that do originate (resp. generate)
+on the role or in the skeleton in which the declaration appears.  This
+forces the use of such declarations to create a secrecy assumption.
+
+\begin{exercise}
+Experiment with variants of your favorite simple protocol in which you
+try replacing \texttt{uniq-orig} with \texttt{uniq-gen} and/or
+\texttt{non-orig} with \texttt{pen-non-orig}.  What do you find?
+\end{exercise}
+
+\begin{exercise}
+Suppose a protocol you wish to model involves key management, and
+includes keys being encrypted and transmitted and received in
+encrypted form.  What declaration should you use to model a long-term
+(not recently chosen) key as secret, if you are concerned about the
+actual possibility of that key leaking?
+\end{exercise}
+
+Note: these four declarations (\texttt{uniq-orig, non-orig,
+  pen-non-orig,} and \texttt{uniq-gen}) may only be applied to basic
+values.  One of the main purposes of such declarations is to restrict
+the use of the ``create'' role in bundles, so such declarations on
+values that cannot be produced in the ``create'' role is undesirable.
+
+\section{Diffie-Hellman declarations}
+A declaration arises as a part of the algorithm {\cpsa} uses for
+Diffie-Hellman protocols.  Like other declarations, these may be
+provided as part of a protocol or skeleton input.
+
+\begin{itemize}
+
+  \item \ttindex{absent} The \texttt{absent} declaration specifies
+    that a particular \scap{rndx} variable does not occur in a base or
+    exponent expression.  This declaration is automatically added to
+    specify $x$ is absent within $y$ whenever $y$ is a base or
+    exponent expression that occurs in a strand in which $x$ is
+    declared \texttt{uniq-gen} before the point where $x$ is
+    generated.  This declaration is also added by the algorithm in
+    rare circumstances.
+%z
+\end{itemize}
+
+\iffalse
+
+\section{Distinctness assumptions}
+\label{sec:distinct_decls}
+
+\index{inequality declarations}
+\index{distinctness declarations}
+One inconvenient consequence of representing protocol roles as strands
+is that certain kinds of checks are not easy to represent.  The
+structure of received terms implies that the participant executing the
+protocol is capable of parsing and checking such formats.  However,
+there is no way, with format, to represent a check that two values are
+unequal.
+
+The tool includes four special declarations that may be used to
+describe distinctness of values.
+
+\begin{itemize}
+
+\ttindex{neq}
+\item A pair of values may be declared unequal with the \texttt{neq}
+  declaration.  For instance, \texttt{(neq (a b))} restricts the
+  analysis to consider bundles in which $a \neq b$.  See
+  \texttt{neq\_test.scm} in the examples directory for examples of use.
+
+\ttindex{neqlist}
+\item A larger list of values may be declared distinct with the
+  \texttt{neqlist} declaration.  For instance, \texttt{(neqlist (a b c
+    d))} adds a requirement that $a, b, c$, and $d$ all be distinct
+  from one another.  This may be useful as shorthand, rather than the more
+  cumbersome \texttt{(neq (a b) (a c) (a d) (b c) (b d) (c d))}.
+
+\ttindex{subsort}
+\item The $\scap{data}$ and $\scap{text}$ sorts are identical to one
+  another, but they are distinct and thus allow a user to separate the
+  purpose of certain parameters from others, and exclude analyses in
+  which parameters are confused across types.  The \texttt{subsort}
+  declaration may be used to sub-categorize values into disjoint
+  classes, which may never be confused for each other.  For instance,
+  an e-commerce protocol may involve prices, quantities, item numbers,
+  et cetera.  Each subsort is named with a string.  For instance,
+  \texttt{(subsort ("A" a1 a2 a3) ("B" b1 b2))} defines two classes of
+  values, ``A'' and ``B'', and requires that no ``A'' value be equal
+  to any other value with a subsort other than ``A''.  So in
+  particular, all the $a$ variables are distinct from the $b$
+  variables and vice versa, but the $a$ variables are not required to
+  be distinct from each other.  See \texttt{subsort\_test.scm} in the
+  examples directory for examples of use.
+
+\ttindex{lt}
+\item Finally, one particular reason two values may be unequal is if
+  they are compared and put in an order.  For instance, in an auction,
+  a bid may be rejected only if another bid is strictly higher.  Or, a
+  value in a protocol model may be intended to represent time, and
+  some of these may be strictly orderable with respect to each other.
+  The \texttt{lt} declaration (short for ``less than'') asserts a
+  strict comparability between two values in a partial order.  For
+  instance, \texttt{(lt (a b))} declares that $b$ is less than $a$.
+  The presence of \texttt{lt} declarations on pairs of values
+  restricts the tool to bundles in which the implied orderings form no
+  cycles.  See \texttt{lt\_test.scm} in the examples directory for
+  examples of use.
+\end{itemize}
+
+For each of these declarations, {\cpsa} checks the conditions required
+at every skeleton it considers.  Those skeletons for which any
+required condition is violated are discarded.  You will never see a
+skeleton with (for instance) \texttt{(neq (a a))} in it.
+
+\section{Functional dependence assumptions}
+
+Another disadvantage of the lightweight way {\cpsa} represents
+protocols is that it does not understand the relationships between
+values involved in messages.  For instance, an e-commerce protocol
+may involve both identifiers for merchandise and prices.  An honest
+merchant would assign a consistent price to any particular item,
+but protocol roles and secrecy or distinctness assumptions cannot
+describe this particular scenario.
+
+\ttindex{fn-of} \index{functional dependence}
+For this purpose, {\cpsa} allows the declaration of a functional
+dependence using the \texttt{fn-of} declaration (short for ``function
+of'').  Like the \texttt{subsort} declaration, a subtag is required
+to identify the function, so that multiple independent functions could
+be described if necessary.  An example:
+
+\begin{center}
+\verb|(fn-of ("f" (y x) (z w)))|
+\end{center}
+
+This declaration says that there is a function $f$ such that $y=f(x)$
+and $z=f(w)$.  In the e-commerce example, if $f$ was the ``price of''
+function, then $x$ and $w$ would be items and $y$ and $z$ would be
+their respective prices.  The presence of a set of \texttt{fn-of}
+declarations restricts the tool's search so that in this case, if
+$x = w$ then $y = z$.
+
+\index{Yahalom protocol}\index{examples!Yahalom}
+The \texttt{fn-of} declaration is a powerful tool that can emulate
+function symbols in the algebra.  See \texttt{yahalom.scm} in the
+examples repository for an example protocol involving the \texttt{ltk}
+function symbol.  We can totally emulate the use of this function symbol
+via the \texttt{fn-of} declaration: see \texttt{fnof\_yahalom.scm} for how
+this is done.
+
+\index{init@\texttt{init}!use for introducing variables} It is important to note
+that one limitation of the \texttt{fn-of} declaration is that it
+cannot introduce variables not used in a skeleton or role.  The
+emulation of the \texttt{ltk} symbol in \texttt{fnof\_yahalom.scm}, for
+instance, requires three variables (the long-term key variable and the
+two names) where there were formerly only two.  {\cpsa} will ignore
+declarations involving variables not present anywhere, so in order to
+make sure these declarations are not ignored, we need to use the
+variables in the trace.  We use the \texttt{init} event (see
+Chapter~\ref{chap:channels:state}) to introduce these variables, since we know
+that without state events this will have no effect on the penetrator's
+abilities.
+
+\subsection{Equality constraints}
+
+\index{equality} \ttindex{eq} The \texttt{fn-of} declaration allows a
+user to express functional dependence relationships between values.
+In simpler inputs, it may be desirable to simply declare that two
+values are equal; this is particularly useful for Diffie-Hellman
+protocols, for instance, to declare that two separate parties agree on
+a session key.  The \texttt{eq} declaration simply declares that two
+values must be equal.  An example:
+
+\begin{center}
+  \verb|(eq ((exp (gen) (mul x y)) (exp (gen) (mul z w))))|
+\end{center}
+
+This declaration guarantees that $g^{xy} = g^{zw}$.
+
+\section{Role declarations and conditional role declarations}
+\label{sec:role_decls2}
+
+\index{role declarations} When a declaration is present in a
+\texttt{defskeleton} in an input file, the constraint is applied to
+all analyses that descends from that skeleton.  In
+Section~\ref{sec:blanchet} we discussed the notion of a role
+declaration and how such a declaration differs in meaning from a
+skeleton declaration.
+
+Here we discuss more precisely when a role declaration affects a
+skeleton.  Skeletons are made up of \emph{instances}, which follow
+the structure of a role, but instances do not have to be full-length.
+The declarations inherited in an instance of a role from the role
+may vary based on the length of the instance.
+
+Declarations are, most importantly, declarations on a term or list of
+terms.  A declaration is not inherited in an instance of height $h$
+(that is, an instance of the first $h$ events in the role) unless all the
+variables present in terms in the declaration are present in the first $h$
+events in the role's trace.
+
+The tool also regards declarations as about a node or list of nodes,
+although in most cases that list is empty.  There are two exceptions.
+\ttindex{uniq-gen} \ttindex{uniq-orig} The \texttt{uniq-gen} and
+\texttt{uniq-orig} declarations refer to the node at which the
+declared value generates or originates, but in an automatic and
+hidden way.
+
+Role declarations refer to a node which is a particular event in the
+role's trace.  In addition to the rule about variables in a
+declaration's terms, a declaration is only inherited if all its nodes
+are present in the instance.
+
+\index{role declarations!conditional} All the declarations natively
+included in the tool may include a node when used in a role.  This
+allows the user to describe declarations that are conditional on
+sufficient progress being made through the role's trace.  This may
+be appropriate when, for instance, a participant receives a certificate
+and comes to trust a party it has already started communicating with.
+
+A declaration is made conditional by replacing a term (or list of
+terms) with a list whose first element is the term (or list of terms)
+and whose second element is the node.  Most {\cpsa} declarations allow
+many declarations to be made in one S-expression; for instance
+\texttt{(non-orig k1 k2 k3)} is actually three distinct declarations
+rather than one.  To make the $k1$ declaration conditional on reaching
+node 3, we would write \texttt{(non-orig (k1 2) k2 k3)}.  See
+Table~\ref{tab:decl_syntax} for full detail on the syntax for
+conditional declarations.
+
+\section{Diffie-Hellman declarations}
+There are two declarations that arise as a part of the algorithm
+{\cpsa} uses for Diffie-Hellman protocols.  Like other declarations,
+these may also be provided as part of a protocol or skeleton input.
+
+\begin{itemize}
+
+  \item \ttindex{absent} The \texttt{absent} declaration specifies
+    that a particular \scap{rndx} variable does not occur in a base or
+    exponent expression.  This declaration is automatically added to
+    specify $x$ is absent within $y$ whenever $y$ is a base or
+    exponent expression that occurs in a strand in which $x$ is
+    declared \texttt{uniq-gen} before the point where $x$ is
+    generated.  This declaration is also added by the algorithm in
+    rare circumstances.
+
+  \item \ttindex{precur} The \texttt{precur} declaration specifies
+    that a particular node is present in the skeleton to be the
+    ``precursor'' for some other value.  This is used to prevent
+    {\cpsa} from failing to terminate in certain cases.
+\end{itemize}
+
+\section{Other declarations}
+\label{sec:other_decls}
+
+The tool makes use of declaration-like syntax for several other
+purposes.
+
+\paragraph{Precedes.}
+\ttindex{precedes} In {\cpsa} text output, you may notice an
+S-expression that starts with \texttt{precedes}.  This is how {\cpsa}
+records the orderings present in a skeleton, before it is graphed.
+You may also use precedes declarations within a \texttt{defskeleton},
+to set up orderings between strands.
+
+\ttindex{leadsto}
+\paragraph{Leadsto.}  Similarly, the \texttt{leadsto} field of
+a \texttt{defskeleton} specifies state causality orderings.  See
+Chapter~\ref{chap:channels:state} for more detail on what this means.
+
+\paragraph{Priority.}
+\ttindex{priority} The tool contains an ability to declare a priority
+for certain receptions that differs from the default.  Priority takes
+precedence over all other search orderings.  See
+Section~\ref{sec:decl_syntax} for the format requirements for
+declaring priorities, and the \texttt{priority\_test.scm} example in the
+examples directory.
+
+Note that the default priority is 5, and priority 0 indicates that the
+tool should never bother solving tests at those nodes.  This may be of
+use, for instance, if solving one particular node leads to infinite
+analysis, but other nodes would result in a quick determination that a
+skeleton is dead.
+
+\paragraph{User-defined declarations.}
+The final type of declaration supported by {\cpsa} is totally general,
+but does not affect the search.  Instead, this type of declaration is
+merely kept around as a note about the skeleton in question, but a
+note that is aware of its use of algebra variables and nodes and
+evolves as the skeleton evolves.
+
+\index{user-defined declarations} \ttindex{decl} This feature is meant
+for advanced users only, who may wish to write their own custom
+post-processing tools.  For this reason we do not give an example
+involving user-defined declarations; for the proper syntax, consult
+Table~\ref{tab:decl_syntax}.  The keyword to identify a user-defined
+declaration is \texttt{decl}.
+
+\fi
+
+\section{A Caution about typos}
+Declarations are typically found syntactically in ``association
+lists'' which include declarations and may also include other fields,
+whether in protocol declarations, role declarations within them, or in
+skeleton query declarations.  For instance, the {\cpsa} tool creates
+associations in its \texttt{defskeleton} outputs specifying things
+like the algorithmic method used to produce this skeleton, or the
+label of the parent, etc.  {\cpsa} handles comments in the same way.
+Any association list entry \verb|(header| \dots
+\emph{stuff}\dots\verb|)| in which the header is unrecognized is
+treated as a comment, and preserved in the output.  This is convenient
+not just for documenting your specifications, but also for defining
+material to be used not by {\cpsa} itself but by downstream tools.
+
+Be careful when using declarations that you do not mis-spell the
+keywords!  If you do, they will typically be treated just like a
+comment and ignored, so they will not have the effect you intended.
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "cpsa4manual"
+%%% End:
diff --git a/doc/src/cpsa4manual/envelope_skel10.eps b/doc/src/cpsa4manual/envelope_skel10.eps
new file mode 100644
# file too large to diff: doc/src/cpsa4manual/envelope_skel10.eps
diff --git a/doc/src/cpsa4manual/envelope_skel10.pdf b/doc/src/cpsa4manual/envelope_skel10.pdf
new file mode 100644
Binary files /dev/null and b/doc/src/cpsa4manual/envelope_skel10.pdf differ
diff --git a/doc/src/cpsa4manual/examples/Makefile b/doc/src/cpsa4manual/examples/Makefile
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/Makefile
@@ -0,0 +1,13 @@
+CPSAFLAGS = +RTS -M512m -N -RTS
+CPSATIME = time 
+
+SRCS := $(wildcard *.scm) $(wildcard *.prot) $(wildcard *.lsp)
+
+include cpsa4.mk
+
+all:	$(SRCS:%.scm=%_shapes.xhtml) $(SRCS:%.scm=%.xhtml) \
+	$(SRCS:%.prot=%_shapes.xhtml) $(SRCS:%.prot=%.xhtml) \
+	$(SRCS:%.lsp=%_shapes.xhtml) $(SRCS:%.lsp=%.xhtml)
+
+clean:
+	-rm *.txt *.xhtml
diff --git a/doc/src/cpsa4manual/examples/blanchet.scm b/doc/src/cpsa4manual/examples/blanchet.scm
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/blanchet.scm
@@ -0,0 +1,84 @@
+(herald "Blanchet's Simple Example Protocol"
+  (comment "There is a flaw in this protocol by design"))
+
+(defprotocol blanchet basic
+  (defrole init
+    (vars (a b akey) (s skey) (d data))
+    (trace
+     (send (enc (enc s (invk a)) b))
+     (recv (enc d s)))
+    (uniq-orig s))
+  (defrole resp
+    (vars (a b akey) (s skey) (d data))
+    (trace
+     (recv (enc (enc s (invk a)) b))
+     (send (enc d s)))
+    (uniq-orig d))
+  (comment "Blanchet's protocol"))
+
+(defskeleton blanchet
+  (vars (a b akey) (s skey) (d data))
+  (defstrand init 2 (a a) (b b) (s s) (d d))
+  (non-orig (invk b))
+  (comment "Analyze from the initiator's perspective"))
+
+(defskeleton blanchet
+  (vars (a b akey) (s skey) (d data))
+  (defstrand resp 2 (a a) (b b) (s s) (d d))
+  (non-orig (invk a) (invk b))
+  (comment "Analyze from the responder's perspective"))
+
+(defskeleton blanchet
+  (vars (a b akey) (s skey) (d data))
+  (defstrand init 2 (a a) (b b) (s s) (d d))
+  (deflistener d)
+  (non-orig (invk b))
+  (comment "From the initiator's perspective, is the secret leaked?"))
+
+(defskeleton blanchet
+  (vars (a b akey) (s skey) (d data))
+  (defstrand resp 2 (a a) (b b) (s s) (d d))
+  (deflistener d)
+  (non-orig (invk a) (invk b))
+  (comment "From the responders's perspective, is the secret leaked?"))
+
+(defprotocol blanchet-corrected basic
+  (defrole init
+    (vars (a b akey) (s skey) (d data))
+    (trace
+     (send (enc (enc s b (invk a)) b))
+     (recv (enc d s)))
+    (uniq-orig s))
+  (defrole resp
+    (vars (a b akey) (s skey) (d data))
+    (trace
+     (recv (enc (enc s b (invk a)) b))
+     (send (enc d s)))
+    (uniq-orig d))
+  (comment "Corrected Blanchet's protocol"))
+
+(defskeleton blanchet-corrected
+  (vars (a b akey) (s skey) (d data))
+  (defstrand init 2 (a a) (b b) (s s) (d d))
+  (non-orig (invk b))
+  (comment "Analyze from the initiator's perspective"))
+
+(defskeleton blanchet-corrected
+  (vars (a b akey) (s skey) (d data))
+  (defstrand init 2 (a a) (b b) (s s) (d d))
+  (deflistener d)
+  (non-orig (invk b))
+  (comment "From the initiator's perspective, is the secret leaked?"))
+
+(defskeleton blanchet-corrected
+  (vars (a b akey) (s skey) (d data))
+  (defstrand resp 2 (a a) (b b) (s s) (d d))
+  (non-orig (invk a) (invk b))
+  (comment "Analyze from the responder's perspective"))
+
+(defskeleton blanchet-corrected
+  (vars (a b akey) (s skey) (d data))
+  (defstrand resp 2 (a a) (b b) (s s) (d d))
+  (deflistener d)
+  (non-orig (invk a) (invk b))
+  (comment "From the responders's perspective, is the secret leaked?"))
diff --git a/doc/src/cpsa4manual/examples/blanchet.tst b/doc/src/cpsa4manual/examples/blanchet.tst
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/blanchet.tst
@@ -0,0 +1,628 @@
+(herald "Blanchet's Simple Example Protocol"
+  (comment "There is a flaw in this protocol by design"))
+
+(comment "CPSA 4.4.0")
+(comment "All input read from blanchet.scm")
+
+(defprotocol blanchet basic
+  (defrole init
+    (vars (a b akey) (s skey) (d data))
+    (trace (send (enc (enc s (invk a)) b)) (recv (enc d s)))
+    (uniq-orig s))
+  (defrole resp
+    (vars (a b akey) (s skey) (d data))
+    (trace (recv (enc (enc s (invk a)) b)) (send (enc d s)))
+    (uniq-orig d))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Blanchet's protocol"))
+
+(defskeleton blanchet
+  (vars (d data) (s skey) (a b akey))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (non-orig (invk b))
+  (uniq-orig s)
+  (comment "Analyze from the initiator's perspective")
+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (s (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton blanchet
+  (vars (d data) (s skey) (a b a-0 b-0 akey))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (defstrand resp 2 (d d) (s s) (a a-0) (b b-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk b))
+  (uniq-orig d s)
+  (operation encryption-test (added-strand resp 2) (enc d s) (0 1))
+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
+    ((recv (enc (enc s (invk a-0)) b-0)) (send (enc d s))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton blanchet
+  (vars (d data) (s skey) (a b akey))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (deflistener s)
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk b))
+  (uniq-orig s)
+  (operation encryption-test (added-listener s) (enc d s) (0 1))
+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
+    ((recv s) (send s)))
+  (label 2)
+  (parent 0)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton blanchet
+  (vars (d data) (s skey) (a b akey))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk b))
+  (uniq-orig d s)
+  (operation nonce-test (contracted (a-0 a) (b-0 b)) s (1 0)
+    (enc (enc s (invk a)) b))
+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
+    ((recv (enc (enc s (invk a)) b)) (send (enc d s))))
+  (label 3)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (s s) (d d))))
+  (origs (d (1 1)) (s (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol blanchet basic
+  (defrole init
+    (vars (a b akey) (s skey) (d data))
+    (trace (send (enc (enc s (invk a)) b)) (recv (enc d s)))
+    (uniq-orig s))
+  (defrole resp
+    (vars (a b akey) (s skey) (d data))
+    (trace (recv (enc (enc s (invk a)) b)) (send (enc d s)))
+    (uniq-orig d))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Blanchet's protocol"))
+
+(defskeleton blanchet
+  (vars (d data) (s skey) (a b akey))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (non-orig (invk a) (invk b))
+  (uniq-orig d)
+  (comment "Analyze from the responder's perspective")
+  (traces ((recv (enc (enc s (invk a)) b)) (send (enc d s))))
+  (label 4)
+  (unrealized (0 0))
+  (origs (d (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton blanchet
+  (vars (d data) (s skey) (a b b-0 akey))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (defstrand init 1 (s s) (a a) (b b-0))
+  (precedes ((1 0) (0 0)))
+  (non-orig (invk a) (invk b))
+  (uniq-orig d s)
+  (operation encryption-test (added-strand init 1) (enc s (invk a))
+    (0 0))
+  (traces ((recv (enc (enc s (invk a)) b)) (send (enc d s)))
+    ((send (enc (enc s (invk a)) b-0))))
+  (label 5)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (s s) (d d))))
+  (origs (s (1 0)) (d (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol blanchet basic
+  (defrole init
+    (vars (a b akey) (s skey) (d data))
+    (trace (send (enc (enc s (invk a)) b)) (recv (enc d s)))
+    (uniq-orig s))
+  (defrole resp
+    (vars (a b akey) (s skey) (d data))
+    (trace (recv (enc (enc s (invk a)) b)) (send (enc d s)))
+    (uniq-orig d))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Blanchet's protocol"))
+
+(defskeleton blanchet
+  (vars (d data) (s skey) (a b akey))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (non-orig (invk b))
+  (uniq-orig s)
+  (comment "From the initiator's perspective, is the secret leaked?")
+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
+    ((recv d) (send d)))
+  (label 6)
+  (unrealized (0 1))
+  (origs (s (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton blanchet
+  (vars (d data) (s skey) (a b a-0 b-0 akey))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (defstrand resp 2 (d d) (s s) (a a-0) (b b-0))
+  (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (invk b))
+  (uniq-orig d s)
+  (operation encryption-test (added-strand resp 2) (enc d s) (0 1))
+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
+    ((recv d) (send d))
+    ((recv (enc (enc s (invk a-0)) b-0)) (send (enc d s))))
+  (label 7)
+  (parent 6)
+  (unrealized (1 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton blanchet
+  (vars (d data) (s skey) (a b akey))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (deflistener s)
+  (precedes ((0 0) (2 0)) ((2 1) (0 1)))
+  (non-orig (invk b))
+  (uniq-orig s)
+  (operation encryption-test (added-listener s) (enc d s) (0 1))
+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
+    ((recv d) (send d)) ((recv s) (send s)))
+  (label 8)
+  (parent 6)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton blanchet
+  (vars (d data) (s skey) (a b akey))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (invk b))
+  (uniq-orig d s)
+  (operation nonce-test (contracted (a-0 a) (b-0 b)) s (2 0)
+    (enc (enc s (invk a)) b))
+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
+    ((recv d) (send d))
+    ((recv (enc (enc s (invk a)) b)) (send (enc d s))))
+  (label 9)
+  (parent 7)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton blanchet
+  (vars (d data) (s skey) (a b akey))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (deflistener s)
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((2 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (invk b))
+  (uniq-orig d s)
+  (operation nonce-test (added-listener s) d (1 0) (enc d s))
+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
+    ((recv d) (send d))
+    ((recv (enc (enc s (invk a)) b)) (send (enc d s)))
+    ((recv s) (send s)))
+  (label 10)
+  (parent 9)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol blanchet basic
+  (defrole init
+    (vars (a b akey) (s skey) (d data))
+    (trace (send (enc (enc s (invk a)) b)) (recv (enc d s)))
+    (uniq-orig s))
+  (defrole resp
+    (vars (a b akey) (s skey) (d data))
+    (trace (recv (enc (enc s (invk a)) b)) (send (enc d s)))
+    (uniq-orig d))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Blanchet's protocol"))
+
+(defskeleton blanchet
+  (vars (d data) (s skey) (a b akey))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (non-orig (invk a) (invk b))
+  (uniq-orig d)
+  (comment "From the responders's perspective, is the secret leaked?")
+  (traces ((recv (enc (enc s (invk a)) b)) (send (enc d s)))
+    ((recv d) (send d)))
+  (label 11)
+  (unrealized (0 0) (1 0))
+  (preskeleton)
+  (origs (d (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton blanchet
+  (vars (d data) (s skey) (a b akey))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (precedes ((0 1) (1 0)))
+  (non-orig (invk a) (invk b))
+  (uniq-orig d)
+  (traces ((recv (enc (enc s (invk a)) b)) (send (enc d s)))
+    ((recv d) (send d)))
+  (label 12)
+  (parent 11)
+  (unrealized (0 0))
+  (origs (d (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton blanchet
+  (vars (d data) (s skey) (a b b-0 akey))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (defstrand init 1 (s s) (a a) (b b-0))
+  (precedes ((0 1) (1 0)) ((2 0) (0 0)))
+  (non-orig (invk a) (invk b))
+  (uniq-orig d s)
+  (operation encryption-test (added-strand init 1) (enc s (invk a))
+    (0 0))
+  (traces ((recv (enc (enc s (invk a)) b)) (send (enc d s)))
+    ((recv d) (send d)) ((send (enc (enc s (invk a)) b-0))))
+  (label 13)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps ((0 1) ((a a) (b b) (s s) (d d))))
+  (origs (s (2 0)) (d (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol blanchet-corrected basic
+  (defrole init
+    (vars (a b akey) (s skey) (d data))
+    (trace (send (enc (enc s b (invk a)) b)) (recv (enc d s)))
+    (uniq-orig s))
+  (defrole resp
+    (vars (a b akey) (s skey) (d data))
+    (trace (recv (enc (enc s b (invk a)) b)) (send (enc d s)))
+    (uniq-orig d))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Corrected Blanchet's protocol"))
+
+(defskeleton blanchet-corrected
+  (vars (d data) (s skey) (a b akey))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (non-orig (invk b))
+  (uniq-orig s)
+  (comment "Analyze from the initiator's perspective")
+  (traces ((send (enc (enc s b (invk a)) b)) (recv (enc d s))))
+  (label 14)
+  (unrealized (0 1))
+  (origs (s (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton blanchet-corrected
+  (vars (d data) (s skey) (a b a-0 b-0 akey))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (defstrand resp 2 (d d) (s s) (a a-0) (b b-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk b))
+  (uniq-orig d s)
+  (operation encryption-test (added-strand resp 2) (enc d s) (0 1))
+  (traces ((send (enc (enc s b (invk a)) b)) (recv (enc d s)))
+    ((recv (enc (enc s b-0 (invk a-0)) b-0)) (send (enc d s))))
+  (label 15)
+  (parent 14)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton blanchet-corrected
+  (vars (d data) (s skey) (a b akey))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (deflistener s)
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk b))
+  (uniq-orig s)
+  (operation encryption-test (added-listener s) (enc d s) (0 1))
+  (traces ((send (enc (enc s b (invk a)) b)) (recv (enc d s)))
+    ((recv s) (send s)))
+  (label 16)
+  (parent 14)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton blanchet-corrected
+  (vars (d data) (s skey) (a b akey))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk b))
+  (uniq-orig d s)
+  (operation nonce-test (contracted (a-0 a) (b-0 b)) s (1 0)
+    (enc (enc s b (invk a)) b))
+  (traces ((send (enc (enc s b (invk a)) b)) (recv (enc d s)))
+    ((recv (enc (enc s b (invk a)) b)) (send (enc d s))))
+  (label 17)
+  (parent 15)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (s s) (d d))))
+  (origs (d (1 1)) (s (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol blanchet-corrected basic
+  (defrole init
+    (vars (a b akey) (s skey) (d data))
+    (trace (send (enc (enc s b (invk a)) b)) (recv (enc d s)))
+    (uniq-orig s))
+  (defrole resp
+    (vars (a b akey) (s skey) (d data))
+    (trace (recv (enc (enc s b (invk a)) b)) (send (enc d s)))
+    (uniq-orig d))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Corrected Blanchet's protocol"))
+
+(defskeleton blanchet-corrected
+  (vars (d data) (s skey) (a b akey))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (non-orig (invk b))
+  (uniq-orig s)
+  (comment "From the initiator's perspective, is the secret leaked?")
+  (traces ((send (enc (enc s b (invk a)) b)) (recv (enc d s)))
+    ((recv d) (send d)))
+  (label 18)
+  (unrealized (0 1))
+  (origs (s (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton blanchet-corrected
+  (vars (d data) (s skey) (a b a-0 b-0 akey))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (defstrand resp 2 (d d) (s s) (a a-0) (b b-0))
+  (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (invk b))
+  (uniq-orig d s)
+  (operation encryption-test (added-strand resp 2) (enc d s) (0 1))
+  (traces ((send (enc (enc s b (invk a)) b)) (recv (enc d s)))
+    ((recv d) (send d))
+    ((recv (enc (enc s b-0 (invk a-0)) b-0)) (send (enc d s))))
+  (label 19)
+  (parent 18)
+  (unrealized (1 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton blanchet-corrected
+  (vars (d data) (s skey) (a b akey))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (deflistener s)
+  (precedes ((0 0) (2 0)) ((2 1) (0 1)))
+  (non-orig (invk b))
+  (uniq-orig s)
+  (operation encryption-test (added-listener s) (enc d s) (0 1))
+  (traces ((send (enc (enc s b (invk a)) b)) (recv (enc d s)))
+    ((recv d) (send d)) ((recv s) (send s)))
+  (label 20)
+  (parent 18)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton blanchet-corrected
+  (vars (d data) (s skey) (a b akey))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (invk b))
+  (uniq-orig d s)
+  (operation nonce-test (contracted (a-0 a) (b-0 b)) s (2 0)
+    (enc (enc s b (invk a)) b))
+  (traces ((send (enc (enc s b (invk a)) b)) (recv (enc d s)))
+    ((recv d) (send d))
+    ((recv (enc (enc s b (invk a)) b)) (send (enc d s))))
+  (label 21)
+  (parent 19)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton blanchet-corrected
+  (vars (d data) (s skey) (a b akey))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (deflistener s)
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((2 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (invk b))
+  (uniq-orig d s)
+  (operation nonce-test (added-listener s) d (1 0) (enc d s))
+  (traces ((send (enc (enc s b (invk a)) b)) (recv (enc d s)))
+    ((recv d) (send d))
+    ((recv (enc (enc s b (invk a)) b)) (send (enc d s)))
+    ((recv s) (send s)))
+  (label 22)
+  (parent 21)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol blanchet-corrected basic
+  (defrole init
+    (vars (a b akey) (s skey) (d data))
+    (trace (send (enc (enc s b (invk a)) b)) (recv (enc d s)))
+    (uniq-orig s))
+  (defrole resp
+    (vars (a b akey) (s skey) (d data))
+    (trace (recv (enc (enc s b (invk a)) b)) (send (enc d s)))
+    (uniq-orig d))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Corrected Blanchet's protocol"))
+
+(defskeleton blanchet-corrected
+  (vars (d data) (s skey) (a b akey))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (non-orig (invk a) (invk b))
+  (uniq-orig d)
+  (comment "Analyze from the responder's perspective")
+  (traces ((recv (enc (enc s b (invk a)) b)) (send (enc d s))))
+  (label 23)
+  (unrealized (0 0))
+  (origs (d (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton blanchet-corrected
+  (vars (d data) (s skey) (a b akey))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (defstrand init 1 (s s) (a a) (b b))
+  (precedes ((1 0) (0 0)))
+  (non-orig (invk a) (invk b))
+  (uniq-orig d s)
+  (operation encryption-test (added-strand init 1) (enc s b (invk a))
+    (0 0))
+  (traces ((recv (enc (enc s b (invk a)) b)) (send (enc d s)))
+    ((send (enc (enc s b (invk a)) b))))
+  (label 24)
+  (parent 23)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (s s) (d d))))
+  (origs (s (1 0)) (d (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol blanchet-corrected basic
+  (defrole init
+    (vars (a b akey) (s skey) (d data))
+    (trace (send (enc (enc s b (invk a)) b)) (recv (enc d s)))
+    (uniq-orig s))
+  (defrole resp
+    (vars (a b akey) (s skey) (d data))
+    (trace (recv (enc (enc s b (invk a)) b)) (send (enc d s)))
+    (uniq-orig d))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Corrected Blanchet's protocol"))
+
+(defskeleton blanchet-corrected
+  (vars (d data) (s skey) (a b akey))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (non-orig (invk a) (invk b))
+  (uniq-orig d)
+  (comment "From the responders's perspective, is the secret leaked?")
+  (traces ((recv (enc (enc s b (invk a)) b)) (send (enc d s)))
+    ((recv d) (send d)))
+  (label 25)
+  (unrealized (0 0) (1 0))
+  (preskeleton)
+  (origs (d (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton blanchet-corrected
+  (vars (d data) (s skey) (a b akey))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (precedes ((0 1) (1 0)))
+  (non-orig (invk a) (invk b))
+  (uniq-orig d)
+  (traces ((recv (enc (enc s b (invk a)) b)) (send (enc d s)))
+    ((recv d) (send d)))
+  (label 26)
+  (parent 25)
+  (unrealized (0 0))
+  (origs (d (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton blanchet-corrected
+  (vars (d data) (s skey) (a b akey))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (defstrand init 1 (s s) (a a) (b b))
+  (precedes ((0 1) (1 0)) ((2 0) (0 0)))
+  (non-orig (invk a) (invk b))
+  (uniq-orig d s)
+  (operation encryption-test (added-strand init 1) (enc s b (invk a))
+    (0 0))
+  (traces ((recv (enc (enc s b (invk a)) b)) (send (enc d s)))
+    ((recv d) (send d)) ((send (enc (enc s b (invk a)) b))))
+  (label 27)
+  (parent 26)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton blanchet-corrected
+  (vars (d data) (s skey) (a b akey))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (defstrand init 1 (s s) (a a) (b b))
+  (deflistener s)
+  (precedes ((0 1) (1 0)) ((2 0) (0 0)) ((2 0) (3 0)) ((3 1) (1 0)))
+  (non-orig (invk a) (invk b))
+  (uniq-orig d s)
+  (operation nonce-test (added-listener s) d (1 0) (enc d s))
+  (traces ((recv (enc (enc s b (invk a)) b)) (send (enc d s)))
+    ((recv d) (send d)) ((send (enc (enc s b (invk a)) b)))
+    ((recv s) (send s)))
+  (label 28)
+  (parent 27)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/doc/src/cpsa4manual/examples/bltk_test.scm b/doc/src/cpsa4manual/examples/bltk_test.scm
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/bltk_test.scm
@@ -0,0 +1,72 @@
+(herald "bltk Test File"
+	(algebra diffie-hellman)
+   (bound 12))
+
+(defprotocol test diffie-hellman
+  (defrole r
+    (vars (a b name) (n text))
+    (trace
+     (send (enc n (bltk a b)))
+     (recv (enc n (bltk b a))))
+    (uniq-orig n)))
+
+;; This POV is realized. That demonstrates that (bltk a b) = (bltk b a)
+(defskeleton test
+   (vars (a b name))
+   (defstrand r 2 (a a) (b b))
+   (non-orig (bltk a b) (bltk b a)))
+
+;; These next two skeletons show that it is sufficient to declare
+;; either (bltk a b) or (bltk b a) to be non.
+(defskeleton test
+   (vars (a b name) (n text))
+   (defstrand r 2 (a a) (b b) (n n))
+   (deflistener n)
+   (non-orig (bltk a b)))
+
+(defskeleton test
+   (vars (a b name) (n text))
+   (defstrand r 2 (a a) (b b) (n n))
+   (deflistener n)
+   (non-orig (bltk b a)))
+
+;; This is the same protocol as above with bltk replaced with ltk
+(defprotocol test2 diffie-hellman
+  (defrole r
+    (vars (a b name) (n text))
+    (trace
+     (send (enc n (ltk a b)))
+     (recv (enc n (ltk b a))))
+    (uniq-orig n)))
+
+;; The only way to realize this skeleton is to learn that a = b. This
+;; is in contrast to the first skeleton above.
+(defskeleton test2
+   (vars (a b name))
+   (defstrand r 2 (a a) (b b))
+   (non-orig (ltk a b)))
+
+;; This protocol demonstrates that the position of the names a and b
+;; in (bltk a b) are not enough to determine which principal is
+;; inhabiting the role. The first send of each role commits to the
+;; identity of itself and its peer.
+(defprotocol test3 diffie-hellman
+  (defrole recvr
+    (vars (a b name) (n text))
+    (trace
+     (send (cat "i am" a "you are" b))
+     (recv (enc n (bltk a b)))))
+  (defrole sender
+    (vars (a b name) (n text))
+    (trace
+     (send (cat "i am" b "you are" a))
+     (send (enc n (bltk a b))))
+    (uniq-orig n)))
+
+;; Since (bltk a b) = (bltk b a) the recvr role may receive the
+;; encryption from its inteded peer or from itself. That is, both a
+;; and b use the same key when inhabiting the sender role.
+(defskeleton test3
+  (vars (a b name))
+  (defstrand recvr 2 (a a) (b b))
+  (non-orig (bltk a b)))
diff --git a/doc/src/cpsa4manual/examples/bltk_test.tst b/doc/src/cpsa4manual/examples/bltk_test.tst
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/bltk_test.tst
@@ -0,0 +1,221 @@
+(herald "bltk Test File" (algebra diffie-hellman) (bound 12))
+
+(comment "CPSA 4.4.0")
+(comment "All input read from bltk_test.scm")
+(comment "Strand count bounded at 12")
+
+(defprotocol test diffie-hellman
+  (defrole r
+    (vars (a b name) (n text))
+    (trace (send (enc n (bltk a b))) (recv (enc n (bltk a b))))
+    (uniq-orig n))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton test
+  (vars (n text) (a b name))
+  (defstrand r 2 (n n) (a a) (b b))
+  (non-orig (bltk a b))
+  (uniq-orig n)
+  (traces ((send (enc n (bltk a b))) (recv (enc n (bltk a b)))))
+  (label 0)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n n))) ((0) ((a b) (b a) (n n))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol test diffie-hellman
+  (defrole r
+    (vars (a b name) (n text))
+    (trace (send (enc n (bltk a b))) (recv (enc n (bltk a b))))
+    (uniq-orig n))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton test
+  (vars (n text) (a b name))
+  (defstrand r 2 (n n) (a a) (b b))
+  (deflistener n)
+  (non-orig (bltk a b))
+  (uniq-orig n)
+  (traces ((send (enc n (bltk a b))) (recv (enc n (bltk a b))))
+    ((recv n) (send n)))
+  (label 1)
+  (unrealized (1 0))
+  (preskeleton)
+  (origs (n (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton test
+  (vars (n text) (a b name))
+  (defstrand r 2 (n n) (a a) (b b))
+  (deflistener n)
+  (precedes ((0 0) (1 0)))
+  (non-orig (bltk a b))
+  (uniq-orig n)
+  (traces ((send (enc n (bltk a b))) (recv (enc n (bltk a b))))
+    ((recv n) (send n)))
+  (label 2)
+  (parent 1)
+  (unrealized (1 0))
+  (dead)
+  (origs (n (0 0)))
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol test diffie-hellman
+  (defrole r
+    (vars (a b name) (n text))
+    (trace (send (enc n (bltk a b))) (recv (enc n (bltk a b))))
+    (uniq-orig n))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton test
+  (vars (n text) (a b name))
+  (defstrand r 2 (n n) (a a) (b b))
+  (deflistener n)
+  (non-orig (bltk a b))
+  (uniq-orig n)
+  (traces ((send (enc n (bltk a b))) (recv (enc n (bltk a b))))
+    ((recv n) (send n)))
+  (label 3)
+  (unrealized (1 0))
+  (preskeleton)
+  (origs (n (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton test
+  (vars (n text) (a b name))
+  (defstrand r 2 (n n) (a a) (b b))
+  (deflistener n)
+  (precedes ((0 0) (1 0)))
+  (non-orig (bltk a b))
+  (uniq-orig n)
+  (traces ((send (enc n (bltk a b))) (recv (enc n (bltk a b))))
+    ((recv n) (send n)))
+  (label 4)
+  (parent 3)
+  (unrealized (1 0))
+  (dead)
+  (origs (n (0 0)))
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol test2 diffie-hellman
+  (defrole r
+    (vars (a b name) (n text))
+    (trace (send (enc n (ltk a b))) (recv (enc n (ltk b a))))
+    (uniq-orig n))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton test2
+  (vars (n text) (a b name))
+  (defstrand r 2 (n n) (a a) (b b))
+  (non-orig (ltk a b))
+  (uniq-orig n)
+  (traces ((send (enc n (ltk a b))) (recv (enc n (ltk b a)))))
+  (label 5)
+  (unrealized (0 1))
+  (origs (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton test2
+  (vars (n text) (a name))
+  (defstrand r 2 (n n) (a a) (b a))
+  (non-orig (ltk a a))
+  (uniq-orig n)
+  (operation nonce-test (contracted (b a)) n (0 1) (enc n (ltk a a)))
+  (traces ((send (enc n (ltk a a))) (recv (enc n (ltk a a)))))
+  (label 6)
+  (parent 5)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b a) (n n))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol test3 diffie-hellman
+  (defrole recvr
+    (vars (a b name) (n text))
+    (trace (send (cat "i am" a "you are" b)) (recv (enc n (bltk a b)))))
+  (defrole sender
+    (vars (a b name) (n text))
+    (trace (send (cat "i am" b "you are" a)) (send (enc n (bltk a b))))
+    (uniq-orig n))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton test3
+  (vars (n text) (a b name))
+  (defstrand recvr 2 (n n) (a a) (b b))
+  (non-orig (bltk a b))
+  (traces ((send (cat "i am" a "you are" b)) (recv (enc n (bltk a b)))))
+  (label 7)
+  (unrealized (0 1))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton test3
+  (vars (n text) (a b name))
+  (defstrand recvr 2 (n n) (a a) (b b))
+  (defstrand sender 2 (n n) (a b) (b a))
+  (precedes ((1 1) (0 1)))
+  (non-orig (bltk a b))
+  (uniq-orig n)
+  (operation encryption-test (added-strand sender 2) (enc n (bltk a b))
+    (0 1))
+  (traces ((send (cat "i am" a "you are" b)) (recv (enc n (bltk a b))))
+    ((send (cat "i am" a "you are" b)) (send (enc n (bltk a b)))))
+  (label 8)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n n))))
+  (origs (n (1 1))))
+
+(defskeleton test3
+  (vars (n text) (a b name))
+  (defstrand recvr 2 (n n) (a a) (b b))
+  (defstrand sender 2 (n n) (a a) (b b))
+  (precedes ((1 1) (0 1)))
+  (non-orig (bltk a b))
+  (uniq-orig n)
+  (operation encryption-test (added-strand sender 2) (enc n (bltk a b))
+    (0 1))
+  (traces ((send (cat "i am" a "you are" b)) (recv (enc n (bltk a b))))
+    ((send (cat "i am" b "you are" a)) (send (enc n (bltk a b)))))
+  (label 9)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n n))))
+  (origs (n (1 1))))
+
+(comment "Nothing left to do")
diff --git a/doc/src/cpsa4manual/examples/chan-yahalom-role-decl.scm b/doc/src/cpsa4manual/examples/chan-yahalom-role-decl.scm
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/chan-yahalom-role-decl.scm
@@ -0,0 +1,78 @@
+(herald "Yahalom Protocol Without Forwarding" (bound 15))
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b c name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a))
+	   (recv ch3 (cat a b k n-a n-b))
+	   (send (enc n-b k)))
+    (auth ch3))
+  (defrole resp
+    (vars (b a c name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a))
+	   (send ch1 (cat a b n-a n-b))
+	   (recv ch2 (cat a b k))
+	   (recv (enc n-b k)))
+    (auth ch2))
+  (defrole serv
+    (vars (c a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b))
+	   (send ch3 (cat a b k n-a n-b))
+	   (send ch2 (cat a b k)))
+    (conf ch3 ch2)
+    (uniq-orig k)))
+
+;;; How much do we know assuming that the resp had a run, which
+;;; because of the role declaration is necessarily using an
+;;; authenticated channel ch2?  We also assume the responder's nonce
+;;; is freshly chosen.
+
+(defskeleton yahalom
+  (vars (a b c name) (n-b text) (ch1 ch2 chan))
+  (defstrand resp 4 (n-b n-b))
+  (uniq-orig n-b))
+
+(defskeleton yahalom
+  (vars (a b c name) (k skey) (n-b text) (ch1 ch2 chan))
+  (defstrand resp 4 (k k) (n-b n-b))
+  (deflistener k)
+  (uniq-orig n-b))
+
+;;; Let's turn now to the initiator's point of view:
+
+(defskeleton yahalom
+  (vars (a b c name) (n-a text) (k skey) (ch3 chan))
+  (defstrand init 3 (n-a n-a))
+  (uniq-orig n-a))
+
+(defskeleton yahalom
+  (vars (a b c name) (n-a text) (k skey) (ch3 chan))
+  (defstrand init 3 (k k))
+  (deflistener k))
+
+(defskeleton yahalom
+  (vars (a b c name) (n-a text) (k skey) (ch3 chan))
+  (defstrand init 3 (k k) (n-a n-a))
+  (defstrand resp 3 (k k))
+  (uniq-orig n-a))
+
+(defskeleton yahalom
+  (vars (a b c name) (n-a text) (k skey) (ch3 chan))
+  (defstrand init 3 (k k) (n-a n-a))
+  (defstrand resp 4 (k k))
+  (uniq-orig n-a))
+
+;;; Finally, the server knows only that the responder has requested a
+;;; session key.
+
+(defskeleton yahalom
+  (vars (c a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+  (defstrand serv 3))
+
+;;; However, the server can be sure that the session key will not be
+;;; disclosed.
+
+(defskeleton yahalom
+  (vars (c a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k))
+  (deflistener k))
diff --git a/doc/src/cpsa4manual/examples/chan-yahalom-role-decl.tst b/doc/src/cpsa4manual/examples/chan-yahalom-role-decl.tst
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/chan-yahalom-role-decl.tst
@@ -0,0 +1,878 @@
+(herald "Yahalom Protocol Without Forwarding" (bound 15))
+
+(comment "CPSA 4.4.0")
+(comment "All input read from chan-yahalom-role-decl.scm")
+(comment "Strand count bounded at 15")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    (auth ch3))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    (auth ch2))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k)
+    (conf ch2 ch3))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a text) (b a name) (ch1 ch2 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (uniq-orig n-b)
+  (auth ch2)
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))))
+  (label 0)
+  (unrealized (0 2))
+  (origs (n-b (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (b a name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (precedes ((1 2) (0 2)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation channel-test (added-strand serv 3) (ch-msg ch2 (cat a b k))
+    (0 2))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 n-a-1 text) (b a a-0 b-0 name)
+    (ch1 ch2 ch1-0 ch3 ch3-0 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (defstrand init 3 (k k) (n-a n-a-1) (n-b n-b) (a a-0) (b b-0)
+    (ch3 ch3-0))
+  (precedes ((0 1) (2 1)) ((1 1) (2 1)) ((1 2) (0 2)) ((2 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch3-0)
+  (operation encryption-test (added-strand init 3) (enc n-b k) (0 3))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((send (cat a-0 n-a-1)) (recv ch3-0 (cat a-0 b-0 k n-a-1 n-b))
+      (send (enc n-b k))))
+  (label 2)
+  (parent 1)
+  (unrealized (2 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (b a name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((1 1) (2 0)) ((1 2) (0 2)) ((2 1) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation encryption-test (added-listener k) (enc n-b k) (0 3))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv k) (send k)))
+  (label 3)
+  (parent 1)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-a-0 n-b text) (b a name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b) (a a) (b b) (ch1 ch1-0)
+    (ch2 ch2) (ch3 ch3))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((1 2) (0 2)) ((2 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch3)
+  (operation channel-test (displaced 3 1 serv 2)
+    (ch-msg ch3-0 (cat a-0 b-0 k n-a-1 n-b-0)) (2 1))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b)) (send ch3 (cat a b k n-a-0 n-b))
+      (send ch2 (cat a b k)))
+    ((send (cat a n-a-0)) (recv ch3 (cat a b k n-a-0 n-b))
+      (send (enc n-b k))))
+  (label 4)
+  (parent 2)
+  (realized)
+  (shape)
+  (maps
+    ((0) ((n-b n-b) (b b) (a a) (n-a n-a) (k k) (ch1 ch1) (ch2 ch2))))
+  (origs (k (1 1)) (n-b (0 1))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (b a name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((1 2) (0 2)) ((1 2) (2 0)) ((2 1) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation nonce-test (displaced 3 1 serv 3) k (2 0)
+    (ch-msg ch3 (cat a b k n-a-0 n-b-0)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv k) (send k)))
+  (label 5)
+  (parent 3)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    (auth ch3))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    (auth ch2))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k)
+    (conf ch2 ch3))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a text) (b a name) (ch1 ch2 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (deflistener k)
+  (uniq-orig n-b)
+  (auth ch2)
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))) ((recv k) (send k)))
+  (label 6)
+  (unrealized (0 2))
+  (origs (n-b (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (b a name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (deflistener k)
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (precedes ((2 1) (1 0)) ((2 2) (0 2)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation channel-test (added-strand serv 3) (ch-msg ch2 (cat a b k))
+    (0 2))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))) ((recv k) (send k))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k))))
+  (label 7)
+  (parent 6)
+  (unrealized (0 3) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (b a name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (deflistener k)
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (precedes ((2 2) (0 2)) ((2 2) (1 0)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation nonce-test (displaced 3 2 serv 3) k (1 0)
+    (ch-msg ch3 (cat a b k n-a-0 n-b-0)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))) ((recv k) (send k))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k))))
+  (label 8)
+  (parent 7)
+  (unrealized (0 3) (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    (auth ch3))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    (auth ch2))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k)
+    (conf ch2 ch3))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (uniq-orig n-a)
+  (auth ch3)
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (label 9)
+  (unrealized (0 1))
+  (origs (n-a (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 ch1 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch3 ch3))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig k n-a)
+  (conf ch3)
+  (auth ch3)
+  (operation channel-test (added-strand serv 2)
+    (ch-msg ch3 (cat a b k n-a n-b)) (0 1))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))))
+  (label 10)
+  (parent 9)
+  (realized)
+  (shape)
+  (maps ((0) ((n-a n-a) (a a) (b b) (n-b n-b) (k k) (ch3 ch3))))
+  (origs (k (1 1)) (n-a (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    (auth ch3))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    (auth ch2))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k)
+    (conf ch2 ch3))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (deflistener k)
+  (auth ch3)
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))) ((recv k) (send k)))
+  (label 11)
+  (unrealized (0 1))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 ch1 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (deflistener k)
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch3 ch3))
+  (precedes ((2 1) (0 1)) ((2 1) (1 0)))
+  (uniq-orig k)
+  (conf ch3)
+  (auth ch3)
+  (operation channel-test (added-strand serv 2)
+    (ch-msg ch3 (cat a b k n-a n-b)) (0 1))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))) ((recv k) (send k))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))))
+  (label 12)
+  (parent 11)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 ch1 ch2 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (deflistener k)
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (precedes ((2 1) (0 1)) ((2 2) (1 0)))
+  (uniq-orig k)
+  (conf ch3 ch2)
+  (auth ch3)
+  (operation nonce-test (displaced 2 3 serv 3) k (1 0)
+    (ch-msg ch3 (cat a b k n-a n-b)))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))) ((recv k) (send k))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))))
+  (label 13)
+  (parent 12)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    (auth ch3))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    (auth ch2))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k)
+    (conf ch2 ch3))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 text) (a b b-0 a-0 name)
+    (ch3 ch1 ch2 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand resp 3 (k k) (n-a n-a-0) (n-b n-b-0) (b b-0) (a a-0)
+    (ch1 ch1) (ch2 ch2))
+  (uniq-orig n-a)
+  (auth ch3 ch2)
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv (cat a-0 n-a-0)) (send ch1 (cat a-0 b-0 n-a-0 n-b-0))
+      (recv ch2 (cat a-0 b-0 k))))
+  (label 14)
+  (unrealized (0 1) (1 2))
+  (origs (n-a (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 n-a-1 n-b-1 text)
+    (a b b-0 a-0 name) (ch3 ch1 ch2 ch1-0 ch3-0 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand resp 3 (k k) (n-a n-a-0) (n-b n-b-0) (b b-0) (a a-0)
+    (ch1 ch1) (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-1) (n-b n-b-1) (a a-0) (b b-0)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3-0))
+  (precedes ((2 1) (0 1)) ((2 2) (1 2)))
+  (uniq-orig k n-a)
+  (conf ch2 ch3-0)
+  (auth ch3 ch2)
+  (operation channel-test (added-strand serv 3)
+    (ch-msg ch2 (cat a-0 b-0 k)) (1 2))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv (cat a-0 n-a-0)) (send ch1 (cat a-0 b-0 n-a-0 n-b-0))
+      (recv ch2 (cat a-0 b-0 k)))
+    ((recv ch1-0 (cat a-0 b-0 n-a-1 n-b-1))
+      (send ch3-0 (cat a-0 b-0 k n-a-1 n-b-1))
+      (send ch2 (cat a-0 b-0 k))))
+  (label 15)
+  (parent 14)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 text) (b a name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b) (ch3 ch3))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 2) (1 2)))
+  (uniq-orig k n-a-0)
+  (conf ch2 ch3)
+  (auth ch2 ch3)
+  (operation channel-test (displaced 3 2 serv 2)
+    (ch-msg ch3-0 (cat a-0 b-0 k n-a-1 n-b-1)) (0 1))
+  (traces
+    ((send (cat a n-a-0)) (recv ch3 (cat a b k n-a-0 n-b-0))
+      (send (enc n-b-0 k)))
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k))))
+  (label 16)
+  (parent 15)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((n-a n-a-0) (k k) (a a) (b b) (n-b n-b-0) (ch3 ch3) (b-0 b)
+        (a-0 a) (n-a-0 n-a) (n-b-0 n-b) (ch1 ch1) (ch2 ch2))))
+  (origs (k (2 1)) (n-a-0 (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    (auth ch3))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    (auth ch2))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k)
+    (conf ch2 ch3))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 text) (a b b-0 a-0 name)
+    (ch3 ch1 ch2 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand resp 4 (k k) (n-a n-a-0) (n-b n-b-0) (b b-0) (a a-0)
+    (ch1 ch1) (ch2 ch2))
+  (uniq-orig n-a)
+  (auth ch3 ch2)
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv (cat a-0 n-a-0)) (send ch1 (cat a-0 b-0 n-a-0 n-b-0))
+      (recv ch2 (cat a-0 b-0 k)) (recv (enc n-b-0 k))))
+  (label 17)
+  (unrealized (0 1) (1 2))
+  (origs (n-a (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 n-a-1 n-b-1 text)
+    (a b b-0 a-0 name) (ch3 ch1 ch2 ch1-0 ch3-0 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand resp 4 (k k) (n-a n-a-0) (n-b n-b-0) (b b-0) (a a-0)
+    (ch1 ch1) (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-1) (n-b n-b-1) (a a-0) (b b-0)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3-0))
+  (precedes ((2 1) (0 1)) ((2 2) (1 2)))
+  (uniq-orig k n-a)
+  (conf ch2 ch3-0)
+  (auth ch3 ch2)
+  (operation channel-test (added-strand serv 3)
+    (ch-msg ch2 (cat a-0 b-0 k)) (1 2))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv (cat a-0 n-a-0)) (send ch1 (cat a-0 b-0 n-a-0 n-b-0))
+      (recv ch2 (cat a-0 b-0 k)) (recv (enc n-b-0 k)))
+    ((recv ch1-0 (cat a-0 b-0 n-a-1 n-b-1))
+      (send ch3-0 (cat a-0 b-0 k n-a-1 n-b-1))
+      (send ch2 (cat a-0 b-0 k))))
+  (label 18)
+  (parent 17)
+  (unrealized (0 1) (1 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-a-1 n-b-0 text) (a b b-0 a-0 name)
+    (ch3 ch1 ch2 ch1-0 ch3-0 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand resp 4 (k k) (n-a n-a-0) (n-b n-b) (b b-0) (a a-0)
+    (ch1 ch1) (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-1) (n-b n-b-0) (a a-0) (b b-0)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3-0))
+  (precedes ((0 2) (1 3)) ((2 1) (0 1)) ((2 2) (1 2)))
+  (uniq-orig k n-a)
+  (conf ch2 ch3-0)
+  (auth ch3 ch2)
+  (operation encryption-test (displaced 3 0 init 3) (enc n-b-1 k) (1 3))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv (cat a-0 n-a-0)) (send ch1 (cat a-0 b-0 n-a-0 n-b))
+      (recv ch2 (cat a-0 b-0 k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a-0 b-0 n-a-1 n-b-0))
+      (send ch3-0 (cat a-0 b-0 k n-a-1 n-b-0))
+      (send ch2 (cat a-0 b-0 k))))
+  (label 19)
+  (parent 18)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 n-a-1 n-b-1 n-a-2 text)
+    (a b b-0 a-0 a-1 b-1 name) (ch3 ch1 ch2 ch1-0 ch3-0 ch3-1 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand resp 4 (k k) (n-a n-a-0) (n-b n-b-0) (b b-0) (a a-0)
+    (ch1 ch1) (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-1) (n-b n-b-1) (a a-0) (b b-0)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3-0))
+  (defstrand init 3 (k k) (n-a n-a-2) (n-b n-b-0) (a a-1) (b b-1)
+    (ch3 ch3-1))
+  (precedes ((2 1) (0 1)) ((2 1) (3 1)) ((2 2) (1 2)) ((3 2) (1 3)))
+  (uniq-orig k n-a)
+  (conf ch2 ch3-0)
+  (auth ch3 ch2 ch3-1)
+  (operation encryption-test (added-strand init 3) (enc n-b-0 k) (1 3))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv (cat a-0 n-a-0)) (send ch1 (cat a-0 b-0 n-a-0 n-b-0))
+      (recv ch2 (cat a-0 b-0 k)) (recv (enc n-b-0 k)))
+    ((recv ch1-0 (cat a-0 b-0 n-a-1 n-b-1))
+      (send ch3-0 (cat a-0 b-0 k n-a-1 n-b-1))
+      (send ch2 (cat a-0 b-0 k)))
+    ((send (cat a-1 n-a-2)) (recv ch3-1 (cat a-1 b-1 k n-a-2 n-b-0))
+      (send (enc n-b-0 k))))
+  (label 20)
+  (parent 18)
+  (unrealized (0 1) (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 n-a-1 n-b-1 text)
+    (a b b-0 a-0 name) (ch3 ch1 ch2 ch1-0 ch3-0 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand resp 4 (k k) (n-a n-a-0) (n-b n-b-0) (b b-0) (a a-0)
+    (ch1 ch1) (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-1) (n-b n-b-1) (a a-0) (b b-0)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3-0))
+  (deflistener k)
+  (precedes ((2 1) (0 1)) ((2 1) (3 0)) ((2 2) (1 2)) ((3 1) (1 3)))
+  (uniq-orig k n-a)
+  (conf ch2 ch3-0)
+  (auth ch3 ch2)
+  (operation encryption-test (added-listener k) (enc n-b-0 k) (1 3))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv (cat a-0 n-a-0)) (send ch1 (cat a-0 b-0 n-a-0 n-b-0))
+      (recv ch2 (cat a-0 b-0 k)) (recv (enc n-b-0 k)))
+    ((recv ch1-0 (cat a-0 b-0 n-a-1 n-b-1))
+      (send ch3-0 (cat a-0 b-0 k n-a-1 n-b-1))
+      (send ch2 (cat a-0 b-0 k))) ((recv k) (send k)))
+  (label 21)
+  (parent 18)
+  (unrealized (0 1) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-a-0 n-b text) (b a name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b) (a a) (b b) (ch1 ch1-0)
+    (ch2 ch2) (ch3 ch3))
+  (precedes ((0 0) (2 0)) ((0 2) (1 3)) ((2 1) (0 1)) ((2 2) (1 2)))
+  (uniq-orig k n-a-0)
+  (conf ch2 ch3)
+  (auth ch2 ch3)
+  (operation channel-test (displaced 3 2 serv 2)
+    (ch-msg ch3-0 (cat a-0 b-0 k n-a-1 n-b-0)) (0 1))
+  (traces
+    ((send (cat a n-a-0)) (recv ch3 (cat a b k n-a-0 n-b))
+      (send (enc n-b k)))
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b)) (send ch3 (cat a b k n-a-0 n-b))
+      (send ch2 (cat a b k))))
+  (label 22)
+  (parent 19)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((n-a n-a-0) (k k) (a a) (b b) (n-b n-b) (ch3 ch3) (b-0 b) (a-0 a)
+        (n-a-0 n-a) (n-b-0 n-b) (ch1 ch1) (ch2 ch2))))
+  (origs (k (2 1)) (n-a-0 (0 0))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-a-1 n-b-0 text) (a b b-0 a-0 name)
+    (ch3 ch1 ch2 ch1-0 ch3-0 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand resp 4 (k k) (n-a n-a-0) (n-b n-b-0) (b b-0) (a a-0)
+    (ch1 ch1) (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-1) (n-b n-b-0) (a a-0) (b b-0)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3-0))
+  (defstrand init 3 (k k) (n-a n-a-1) (n-b n-b-0) (a a-0) (b b-0)
+    (ch3 ch3-0))
+  (precedes ((2 1) (0 1)) ((2 1) (3 1)) ((2 2) (1 2)) ((3 2) (1 3)))
+  (uniq-orig k n-a)
+  (conf ch2 ch3-0)
+  (auth ch3 ch2 ch3-0)
+  (operation channel-test (displaced 4 2 serv 2)
+    (ch-msg ch3-1 (cat a-1 b-1 k n-a-2 n-b-1)) (3 1))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv (cat a-0 n-a-0)) (send ch1 (cat a-0 b-0 n-a-0 n-b-0))
+      (recv ch2 (cat a-0 b-0 k)) (recv (enc n-b-0 k)))
+    ((recv ch1-0 (cat a-0 b-0 n-a-1 n-b-0))
+      (send ch3-0 (cat a-0 b-0 k n-a-1 n-b-0))
+      (send ch2 (cat a-0 b-0 k)))
+    ((send (cat a-0 n-a-1)) (recv ch3-0 (cat a-0 b-0 k n-a-1 n-b-0))
+      (send (enc n-b-0 k))))
+  (label 23)
+  (parent 20)
+  (unrealized (0 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 n-a-1 n-b-1 text)
+    (a b b-0 a-0 name) (ch3 ch1 ch2 ch1-0 ch3-0 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand resp 4 (k k) (n-a n-a-0) (n-b n-b-0) (b b-0) (a a-0)
+    (ch1 ch1) (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-1) (n-b n-b-1) (a a-0) (b b-0)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3-0))
+  (deflistener k)
+  (precedes ((2 1) (0 1)) ((2 2) (1 2)) ((2 2) (3 0)) ((3 1) (1 3)))
+  (uniq-orig k n-a)
+  (conf ch2 ch3-0)
+  (auth ch3 ch2)
+  (operation nonce-test (displaced 4 2 serv 3) k (3 0)
+    (ch-msg ch3-0 (cat a-0 b-0 k n-a-1 n-b-1)))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv (cat a-0 n-a-0)) (send ch1 (cat a-0 b-0 n-a-0 n-b-0))
+      (recv ch2 (cat a-0 b-0 k)) (recv (enc n-b-0 k)))
+    ((recv ch1-0 (cat a-0 b-0 n-a-1 n-b-1))
+      (send ch3-0 (cat a-0 b-0 k n-a-1 n-b-1))
+      (send ch2 (cat a-0 b-0 k))) ((recv k) (send k)))
+  (label 24)
+  (parent 21)
+  (unrealized (0 1) (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    (auth ch3))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    (auth ch2))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k)
+    (conf ch2 ch3))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (uniq-orig k)
+  (conf ch2 ch3)
+  (traces
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))))
+  (label 25)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (n-a n-a) (n-b n-b) (k k) (ch1 ch1) (ch2 ch2)
+        (ch3 ch3))))
+  (origs (k (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    (auth ch3))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    (auth ch2))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k)
+    (conf ch2 ch3))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (uniq-orig k)
+  (conf ch2 ch3)
+  (traces
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))) ((recv k) (send k)))
+  (label 26)
+  (unrealized (1 0))
+  (preskeleton)
+  (origs (k (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((0 1) (1 0)))
+  (uniq-orig k)
+  (conf ch2 ch3)
+  (traces
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))) ((recv k) (send k)))
+  (label 27)
+  (parent 26)
+  (unrealized (1 0))
+  (origs (k (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((0 2) (1 0)))
+  (uniq-orig k)
+  (conf ch2 ch3)
+  (operation nonce-test (displaced 2 0 serv 3) k (1 0)
+    (ch-msg ch3 (cat a b k n-a n-b)))
+  (traces
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))) ((recv k) (send k)))
+  (label 28)
+  (parent 27)
+  (unrealized (1 0))
+  (dead)
+  (origs (k (0 1)))
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/doc/src/cpsa4manual/examples/chan-yahalom.scm b/doc/src/cpsa4manual/examples/chan-yahalom.scm
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/chan-yahalom.scm
@@ -0,0 +1,129 @@
+(herald "Yahalom Protocol Without Forwarding" (bound 15))
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b c name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a))
+	   (recv ch3 (cat a b k n-a n-b))
+	   (send (enc n-b k))))
+  (defrole resp
+    (vars (b a c name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a))
+	   (send ch1 (cat a b n-a n-b))
+	   (recv ch2 (cat a b k))
+	   (recv (enc n-b k))))
+  (defrole serv
+    (vars (c a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b))
+	   (send ch3 (cat a b k n-a n-b))
+	   (send ch2 (cat a b k)))
+    (uniq-orig k)))
+
+;;; How much do we know assuming that the resp had a run with an
+;;; authenticated channel ch2?  We also assume the responder's nonce
+;;; is freshly chosen.
+
+(defskeleton yahalom
+  (vars (a b c name) (n-b text) (ch1 ch2 chan))
+  (defstrand resp 4 (a a) (b b) (n-b n-b) (ch1 ch1) (ch2 ch2))
+  (auth ch2)
+  (uniq-orig n-b))
+
+;;; This is the answer to the previous question, to which we have
+;;; added the assumptions that ch2 and ch3, used by the key server to
+;;; distribute the key, are confidential channels.  In this case, we
+;;; find *almost* all we would expect.
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (precedes ((1 2) (0 2)))
+  (uniq-orig k n-b)
+  (auth ch2)
+  (conf ch2 ch3))
+
+;;; This is the answer to the previous question, together with the
+;;; assumption that the server's request channel is an authenticated
+;;; channel.  This yields all of the desired result, including the
+;;; fact that the channels used by the server and the responder agree:
+;;; ch1-0 = ch1.
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (uniq-orig k n-b)
+  (auth ch2 ch1-0)
+  (conf ch2 ch3))
+
+;;; In particular, we can now check that the session key cannot be
+;;; compromised, subject to the assumptions we have imposed, using
+;;; (deflistener k).
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (uniq-orig k n-b)
+  (auth ch2 ch1-0)
+  (conf ch2 ch3))
+
+;;; Let's turn now to the initiator's point of view:
+
+(defskeleton yahalom
+  (vars (a b c name) (n-a text) (k skey) (ch3 chan))
+  (defstrand init 3 (ch3 ch3) (n-a n-a))
+  (uniq-orig n-a)
+  (auth ch3))
+
+;;; The initiator infers the presence of the server.  We can now add
+;;; the assumptions that the server's channels -- ch1 and ch, here --
+;;; have the same trust properties as before, ie ch1 is auth and ch is
+;;; conf, in addition to the auth previously assumed:
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 ch3-0 ch1 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch3 ch3-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig k n-a)
+  (auth ch3 ch1)
+  (conf ch3-0))
+
+;;; This now authenticates the presence of the responder for the first
+;;; two nodes, and its agreement on all of the values present there.
+
+;;; Finally, let us consider the server's point of view, with an
+;;; authenticated channel for the request, and confidential channels
+;;; over which to transmit the session key.
+
+(defskeleton yahalom
+  (vars (c a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (ch1 ch1) (ch2 ch2) (ch3 ch3))
+  (auth ch1)
+  (conf ch2 ch3))
+
+;;; This query confirms that the server has authenticated the first
+;;; two nodes of the responder, but has not authenticated the
+;;; initiator at all.
+
+;;; However, the session key is safe:
+
+(defskeleton yahalom
+  (vars (c a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k) (ch1 ch1) (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (auth ch1)
+  (conf ch2 ch3))
diff --git a/doc/src/cpsa4manual/examples/chan-yahalom.tst b/doc/src/cpsa4manual/examples/chan-yahalom.tst
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/chan-yahalom.tst
@@ -0,0 +1,1093 @@
+(herald "Yahalom Protocol Without Forwarding" (bound 15))
+
+(comment "CPSA 4.4.0")
+(comment "All input read from chan-yahalom.scm")
+(comment "Strand count bounded at 15")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a text) (a b name) (ch1 ch2 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (uniq-orig n-b)
+  (auth ch2)
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))))
+  (label 0)
+  (unrealized (0 2))
+  (origs (n-b (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (precedes ((1 2) (0 2)))
+  (uniq-orig k n-b)
+  (auth ch2)
+  (operation channel-test (added-strand serv 3) (ch-msg ch2 (cat a b k))
+    (0 2))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k))))
+  (label 1)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps
+    ((0) ((a a) (b b) (n-b n-b) (ch1 ch1) (ch2 ch2) (n-a n-a) (k k))))
+  (origs (k (1 1)) (n-b (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (precedes ((1 2) (0 2)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k))))
+  (label 2)
+  (unrealized (0 3))
+  (origs (k (1 1)) (n-b (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b a-0 b-0 name)
+    (ch1 ch2 ch1-0 ch3 ch3-0 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (defstrand init 3 (k k) (n-a n-a-1) (n-b n-b) (a a-0) (b b-0)
+    (ch3 ch3-0))
+  (precedes ((0 1) (2 1)) ((1 1) (2 1)) ((1 2) (0 2)) ((2 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation encryption-test (added-strand init 3) (enc n-b k) (0 3))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((send (cat a-0 n-a-1)) (recv ch3-0 (cat a-0 b-0 k n-a-1 n-b))
+      (send (enc n-b k))))
+  (label 3)
+  (parent 2)
+  (unrealized (2 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((1 1) (2 0)) ((1 2) (0 2)) ((2 1) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation encryption-test (added-listener k) (enc n-b k) (0 3))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv k) (send k)))
+  (label 4)
+  (parent 2)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-a-0 n-b text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b) (a a) (b b) (ch1 ch1-0)
+    (ch2 ch2) (ch3 ch3))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((1 2) (0 2)) ((2 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation nonce-test
+    (contracted (n-b-0 n-b) (a-0 a) (b-0 b) (n-a-1 n-a-0) (ch3-0 ch3)) k
+    (2 1) (ch-msg ch3 (cat a b k n-a-0 n-b)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b)) (send ch3 (cat a b k n-a-0 n-b))
+      (send ch2 (cat a b k)))
+    ((send (cat a n-a-0)) (recv ch3 (cat a b k n-a-0 n-b))
+      (send (enc n-b k))))
+  (label 5)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((k k) (n-b n-b) (n-a n-a) (n-a-0 n-a-0) (n-b-0 n-b) (a a) (b b)
+        (ch1 ch1) (ch2 ch2) (ch1-0 ch1-0) (ch3 ch3))))
+  (origs (k (1 1)) (n-b (0 1))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b a-0 b-0 name)
+    (ch1 ch2 ch1-0 ch3 ch3-0 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (defstrand init 3 (k k) (n-a n-a-1) (n-b n-b) (a a-0) (b b-0)
+    (ch3 ch3-0))
+  (precedes ((0 1) (2 1)) ((1 2) (0 2)) ((1 2) (2 1)) ((2 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation nonce-test (displaced 3 1 serv 3) k (2 1)
+    (ch-msg ch3 (cat a b k n-a-0 n-b-0)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((send (cat a-0 n-a-1)) (recv ch3-0 (cat a-0 b-0 k n-a-1 n-b))
+      (send (enc n-b k))))
+  (label 6)
+  (parent 3)
+  (unrealized (2 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((1 2) (0 2)) ((1 2) (2 0)) ((2 1) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation nonce-test (displaced 3 1 serv 3) k (2 0)
+    (ch-msg ch3 (cat a b k n-a-0 n-b-0)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv k) (send k)))
+  (label 7)
+  (parent 4)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-a-0 n-b text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b) (a a) (b b) (ch1 ch1-0)
+    (ch2 ch2) (ch3 ch3))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (precedes ((0 1) (1 0)) ((1 2) (0 2)) ((1 2) (2 1)) ((2 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation nonce-test
+    (contracted (n-b-0 n-b) (a-0 a) (b-0 b) (n-a-1 n-a-0) (ch3-0 ch3)) k
+    (2 1) (ch-msg ch2 (cat a b k)) (ch-msg ch3 (cat a b k n-a-0 n-b)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b)) (send ch3 (cat a b k n-a-0 n-b))
+      (send ch2 (cat a b k)))
+    ((send (cat a n-a-0)) (recv ch3 (cat a b k n-a-0 n-b))
+      (send (enc n-b k))))
+  (label 8)
+  (parent 6)
+  (seen 5)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k))))
+  (label 9)
+  (unrealized (0 2) (0 3) (1 0))
+  (preskeleton)
+  (origs (k (1 1)) (n-b (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (precedes ((1 1) (0 2)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k))))
+  (label 10)
+  (parent 9)
+  (unrealized (0 2) (0 3) (1 0))
+  (origs (k (1 1)) (n-b (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch1 ch2)
+  (operation channel-test (displaced 2 0 resp 2)
+    (ch-msg ch1-0 (cat a b n-a-0 n-b-0)) (1 0))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))))
+  (label 11)
+  (parent 10)
+  (unrealized (0 2) (0 3))
+  (origs (k (1 1)) (n-b (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (ch1 ch1-0))
+  (precedes ((1 1) (0 2)) ((2 1) (1 0)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (operation channel-test (added-strand resp 2)
+    (ch-msg ch1-0 (cat a b n-a-0 n-b-0)) (1 0))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv (cat a n-a-0)) (send ch1-0 (cat a b n-a-0 n-b-0))))
+  (label 12)
+  (parent 10)
+  (unrealized (0 2) (0 3))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (precedes ((0 1) (1 0)) ((1 2) (0 2)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch1 ch2)
+  (operation channel-test (displaced 2 1 serv 3)
+    (ch-msg ch2 (cat a b k)) (0 2))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))))
+  (label 13)
+  (parent 11)
+  (unrealized (0 3))
+  (origs (k (1 1)) (n-b (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (ch1 ch1-0))
+  (precedes ((1 2) (0 2)) ((2 1) (1 0)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (operation channel-test (displaced 3 1 serv 3)
+    (ch-msg ch2 (cat a b k)) (0 2))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv (cat a n-a-0)) (send ch1-0 (cat a b n-a-0 n-b-0))))
+  (label 14)
+  (parent 12)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 text) (a b a-0 b-0 name)
+    (ch1 ch2 ch3 ch3-0 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0)
+    (ch3 ch3-0))
+  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((1 2) (0 2)) ((2 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch1 ch2)
+  (operation encryption-test (added-strand init 3) (enc n-b k) (0 3))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    ((send (cat a-0 n-a-0)) (recv ch3-0 (cat a-0 b-0 k n-a-0 n-b))
+      (send (enc n-b k))))
+  (label 15)
+  (parent 13)
+  (unrealized (2 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((0 1) (1 0)) ((1 1) (2 0)) ((1 2) (0 2)) ((2 1) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch1 ch2)
+  (operation encryption-test (added-listener k) (enc n-b k) (0 3))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))) ((recv k) (send k)))
+  (label 16)
+  (parent 13)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b a-0 b-0 name)
+    (ch1 ch2 ch1-0 ch3 ch3-0 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (ch1 ch1-0))
+  (defstrand init 3 (k k) (n-a n-a-1) (n-b n-b) (a a-0) (b b-0)
+    (ch3 ch3-0))
+  (precedes ((0 1) (3 1)) ((1 1) (3 1)) ((1 2) (0 2)) ((2 1) (1 0))
+    ((3 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (operation encryption-test (added-strand init 3) (enc n-b k) (0 3))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv (cat a n-a-0)) (send ch1-0 (cat a b n-a-0 n-b-0)))
+    ((send (cat a-0 n-a-1)) (recv ch3-0 (cat a-0 b-0 k n-a-1 n-b))
+      (send (enc n-b k))))
+  (label 17)
+  (parent 14)
+  (unrealized (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (ch1 ch1-0))
+  (deflistener k)
+  (precedes ((1 1) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (operation encryption-test (added-listener k) (enc n-b k) (0 3))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv (cat a n-a-0)) (send ch1-0 (cat a b n-a-0 n-b-0)))
+    ((recv k) (send k)))
+  (label 18)
+  (parent 14)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((1 2) (0 2)) ((2 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch1 ch2)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (n-a-0 n-a) (ch3-0 ch3)) k (2 1)
+    (ch-msg ch3 (cat a b k n-a n-b)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (label 19)
+  (parent 15)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((k k) (n-b n-b) (n-a n-a) (n-a-0 n-a) (n-b-0 n-b) (a a) (b b)
+        (ch1 ch1) (ch2 ch2) (ch1-0 ch1) (ch3 ch3))))
+  (origs (k (1 1)) (n-b (0 1))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 text) (a b a-0 b-0 name)
+    (ch1 ch2 ch3 ch3-0 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0)
+    (ch3 ch3-0))
+  (precedes ((0 1) (1 0)) ((1 2) (0 2)) ((1 2) (2 1)) ((2 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch1 ch2)
+  (operation nonce-test (displaced 3 1 serv 3) k (2 1)
+    (ch-msg ch3 (cat a b k n-a n-b)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    ((send (cat a-0 n-a-0)) (recv ch3-0 (cat a-0 b-0 k n-a-0 n-b))
+      (send (enc n-b k))))
+  (label 20)
+  (parent 15)
+  (unrealized (2 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((0 1) (1 0)) ((1 2) (0 2)) ((1 2) (2 0)) ((2 1) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch1 ch2)
+  (operation nonce-test (displaced 3 1 serv 3) k (2 0)
+    (ch-msg ch3 (cat a b k n-a n-b)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))) ((recv k) (send k)))
+  (label 21)
+  (parent 16)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b a-0 b-0 name)
+    (ch1 ch2 ch1-0 ch3 ch3-0 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (ch1 ch1-0))
+  (defstrand init 3 (k k) (n-a n-a-1) (n-b n-b) (a a-0) (b b-0)
+    (ch3 ch3-0))
+  (precedes ((0 1) (3 1)) ((1 2) (0 2)) ((1 2) (3 1)) ((2 1) (1 0))
+    ((3 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (operation nonce-test (displaced 4 1 serv 3) k (3 1)
+    (ch-msg ch3 (cat a b k n-a-0 n-b-0)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv (cat a n-a-0)) (send ch1-0 (cat a b n-a-0 n-b-0)))
+    ((send (cat a-0 n-a-1)) (recv ch3-0 (cat a-0 b-0 k n-a-1 n-b))
+      (send (enc n-b k))))
+  (label 22)
+  (parent 17)
+  (unrealized (3 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (ch1 ch1-0))
+  (deflistener k)
+  (precedes ((1 2) (0 2)) ((1 2) (3 0)) ((2 1) (1 0)) ((3 1) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (operation nonce-test (displaced 4 1 serv 3) k (3 0)
+    (ch-msg ch3 (cat a b k n-a-0 n-b-0)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv (cat a n-a-0)) (send ch1-0 (cat a b n-a-0 n-b-0)))
+    ((recv k) (send k)))
+  (label 23)
+  (parent 18)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (precedes ((0 1) (1 0)) ((1 2) (0 2)) ((1 2) (2 1)) ((2 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch1 ch2)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (n-a-0 n-a) (ch3-0 ch3)) k (2 1)
+    (ch-msg ch2 (cat a b k)) (ch-msg ch3 (cat a b k n-a n-b)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (label 24)
+  (parent 20)
+  (seen 19)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv k) (send k)))
+  (label 25)
+  (unrealized (0 2) (0 3) (1 0) (2 0))
+  (preskeleton)
+  (origs (k (1 1)) (n-b (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((1 1) (0 2)) ((1 1) (2 0)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv k) (send k)))
+  (label 26)
+  (parent 25)
+  (unrealized (0 2) (0 3) (1 0) (2 0))
+  (origs (k (1 1)) (n-b (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((1 1) (0 2)) ((1 2) (2 0)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (operation nonce-test (displaced 3 1 serv 3) k (2 0)
+    (ch-msg ch3 (cat a b k n-a-0 n-b-0)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv k) (send k)))
+  (label 27)
+  (parent 26)
+  (unrealized (0 2) (0 3) (1 0) (2 0))
+  (dead)
+  (origs (k (1 1)) (n-b (0 1)))
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (uniq-orig n-a)
+  (auth ch3)
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (label 28)
+  (unrealized (0 1))
+  (origs (n-a (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 ch1 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch3 ch3))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig k n-a)
+  (auth ch3)
+  (operation channel-test (added-strand serv 2)
+    (ch-msg ch3 (cat a b k n-a n-b)) (0 1))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))))
+  (label 29)
+  (parent 28)
+  (realized)
+  (shape)
+  (maps ((0) ((n-a n-a) (ch3 ch3) (a a) (b b) (n-b n-b) (k k))))
+  (origs (k (1 1)) (n-a (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 ch3-0 ch1 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch3 ch3-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig k n-a)
+  (conf ch3-0)
+  (auth ch3 ch1)
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3-0 (cat a b k n-a n-b))))
+  (label 30)
+  (unrealized (0 1) (1 0))
+  (origs (k (1 1)) (n-a (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 ch3-0 ch1 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch3 ch3-0))
+  (defstrand resp 2 (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (uniq-orig k n-a)
+  (conf ch3-0)
+  (auth ch3 ch1)
+  (operation channel-test (added-strand resp 2)
+    (ch-msg ch1 (cat a b n-a n-b)) (1 0))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3-0 (cat a b k n-a n-b)))
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))))
+  (label 31)
+  (parent 30)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 ch1 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch3 ch3))
+  (defstrand resp 2 (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (uniq-orig k n-a)
+  (conf ch3)
+  (auth ch3 ch1)
+  (operation channel-test (displaced 3 1 serv 2)
+    (ch-msg ch3-0 (cat a b k n-a n-b)) (0 1))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b)))
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))))
+  (label 32)
+  (parent 31)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3) (ch3-0 ch3)
+        (ch1 ch1))))
+  (origs (k (1 1)) (n-a (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (uniq-orig k)
+  (conf ch2 ch3)
+  (auth ch1)
+  (traces
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))))
+  (label 33)
+  (unrealized (0 0))
+  (origs (k (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (defstrand resp 2 (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1))
+  (precedes ((1 1) (0 0)))
+  (uniq-orig k)
+  (conf ch2 ch3)
+  (auth ch1)
+  (operation channel-test (added-strand resp 2)
+    (ch-msg ch1 (cat a b n-a n-b)) (0 0))
+  (traces
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))))
+  (label 34)
+  (parent 33)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((ch1 ch1) (ch2 ch2) (ch3 ch3) (a a) (b b) (n-a n-a) (n-b n-b)
+        (k k))))
+  (origs (k (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (uniq-orig k)
+  (conf ch2 ch3)
+  (auth ch1)
+  (traces
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))) ((recv k) (send k)))
+  (label 35)
+  (unrealized (0 0) (1 0))
+  (preskeleton)
+  (origs (k (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((0 1) (1 0)))
+  (uniq-orig k)
+  (conf ch2 ch3)
+  (auth ch1)
+  (traces
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))) ((recv k) (send k)))
+  (label 36)
+  (parent 35)
+  (unrealized (0 0) (1 0))
+  (origs (k (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((0 2) (1 0)))
+  (uniq-orig k)
+  (conf ch2 ch3)
+  (auth ch1)
+  (operation nonce-test (displaced 2 0 serv 3) k (1 0)
+    (ch-msg ch3 (cat a b k n-a n-b)))
+  (traces
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))) ((recv k) (send k)))
+  (label 37)
+  (parent 36)
+  (unrealized (0 0) (1 0))
+  (dead)
+  (origs (k (0 1)))
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/doc/src/cpsa4manual/examples/commitment.scm b/doc/src/cpsa4manual/examples/commitment.scm
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/commitment.scm
@@ -0,0 +1,44 @@
+(herald commitment)
+
+(defprotocol commit basic
+  (defrole bidder
+    (vars (a b name) (n data) (quote outcome text))
+    (trace
+     (send (enc "bid" (hash a b n quote) (privk "sig" a)))
+     (recv (enc "receipt" (hash a b n quote) (privk "sig" b)))
+     (send (cat n quote))
+     (recv (enc "result" a b n quote outcome (privk "sig" b)))))
+
+  (defrole bid-trash
+    (vars (a b name) (n data) (outcome trash text))
+    (trace
+     (send (enc "bid" (hash n trash) (privk "sig" a)))
+     (recv (enc "receipt" (hash n trash) (privk "sig" b)))))
+
+  (defrole auctioneer
+    (vars (a b name) (n data) (quote outcome text) (sealed mesg))
+    (trace
+     (recv (enc "bid" sealed (privk "sig" a)))
+     (send (enc "receipt" sealed (privk "sig" b)))
+     (recv (cat n quote))
+     (cheq sealed (hash a b n quote))
+     (send (enc "result" a b n quote outcome (privk "sig" b))))))
+
+(defskeleton commit
+  (vars (a b name) (n data) (quote outcome text) (sealed mesg))
+  (defstrand auctioneer 4 (a a))	; full height:  cheq doesn't
+					; count separately
+  (non-orig (privk "sig" a)))
+
+(defskeleton commit
+  (vars (a b name) (n data) (quote outcome text) (sealed mesg))
+  (defstrand auctioneer 2 (a a))	; up to last recv
+  (non-orig (privk "sig" a)))
+
+(defskeleton commit
+  (vars (n data) (quote outcome text) (a b name))
+  (defstrand auctioneer 4 (sealed (hash a b n quote)) (n n)
+    (quote quote) (outcome outcome) (a a) (b b))
+  (defstrand bidder 1 (n n) (quote quote) (a a) (b b))
+  (uniq-gen n)
+  (non-orig (privk "sig" a)))
diff --git a/doc/src/cpsa4manual/examples/cpsa4.mk b/doc/src/cpsa4manual/examples/cpsa4.mk
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/cpsa4.mk
@@ -0,0 +1,38 @@
+# Makefile rules for CPSA
+
+# Suggested CPSA flags include a memory use limit:
+# CPSAFLAGS = +RTS -M512m -N -RTS
+
+# Analyze protocols for shapes
+%.txt:		%.scm
+	$(CPSATIME) cpsa4 $(CPSAFLAGS) -o $@ $<
+
+# Preprocess by transforming defprot forms into defprotocol
+%.scm:		%.prot
+	cpsa4prot $(CPSAPROTFLAGS) -o $@ $<
+
+# Analyze protocols for shapes, but don't fail when CPSA does
+%.txt:		%.lsp
+	-$(CPSATIME) cpsa4 $(CPSAFLAGS) -o $@ $<
+
+# Extract shapes
+%_shapes.txt:	%.txt
+	cpsa4shapes $(SHAPESFLAGS) -o $@ $<
+
+# Extract shape analysis sentences
+%_sas.text:	%.txt
+	cpsa4sas $(SASFLAGS) -o $@ $<
+
+# Visualize output using the expanded format (default)
+%.xhtml:	%.txt
+	cpsa4graph $(GRAPHFLAGS) -o $@ $<
+
+# Visualize output using the compact format
+%.svg:		%.txt
+	cpsa4graph -c -o $@ $<
+
+# Visualize output using the LaTeX format
+%.tex:		%.txt
+	cpsa4graph -l -m 62 -o $@ $<
+
+.PRECIOUS:	%.txt %_shapes.txt
diff --git a/doc/src/cpsa4manual/examples/cpsa4diff_out.tst b/doc/src/cpsa4manual/examples/cpsa4diff_out.tst
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/cpsa4diff_out.tst
@@ -0,0 +1,869 @@
+guttman@MM271004-PC examples % for i in *.tst; do echo $i; cpsa4diff $i `basename $i tst`txt; done 
+for i in *.tst; do echo $i; cpsa4diff $i `basename $i tst`txt; done 
+blanchet.tst
+blanchet_shapes.tst
+bltk_test.tst
+bltk_test_shapes.tst
+chan-yahalom-role-decl.tst
+chan-yahalom-role-decl_shapes.tst
+chan-yahalom.tst
+chan-yahalom_shapes.tst
+dhcr_um_expt_assume.tst
+<<< dhcr_um_expt_assume.tst:258:1: 
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 lb x y rndx)
+    (zeta expt))
+  (defstrand init 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
+    (la l) (x x) (beta l-0) (upsilon (mul (rec x) y zeta)))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
+    (lb lb) (y y) (alpha (mul l l-0 (rec lb))) (zeta zeta))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 3) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (x l-0) (y (mul l l-0 (rec lb))) (y lb) (y zeta))
+  (gen-st (pv a l) (pv b lb))
+  (facts (neq (exp (gen) (mul (rec x) y zeta)) (gen))
+    (neq (exp (gen) zeta) (gen)) (trans 2 1) (trans 1 1) (trans 2 0)
+    (trans 1 0) (neq a b) (undisclosed l)
+    (undisclosed l-0)) gen-st-ltx-disclose-0)
+<<<
+>>> dhcr_um_expt_assume.txt:258:1: 
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 lb x y rndx)
+    (zeta expt))
+  (defstrand init 5 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor)
+    (la l) (x x) (beta l-0) (upsilon (mul (rec x) y zeta)))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (priv-stor priv-stor-1)
+    (lb lb) (y y) (alpha (mul l l-0 (rec lb))) (zeta zeta))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 3) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (x l-0) (y (mul l l-0 (rec lb))) (y lb) (y zeta))
+  (gen-st (pv a l) (pv b lb))
+  (facts (neq (exp (gen) (mul (rec x) y zeta)) (gen))
+    (neq (exp (gen) zeta) (gen)) (trans 2 1) (trans 1 1) (trans 2 0)
+    (trans 1 0) (neq a b) (undisclosed l) (undisclosed l-0))
+  (operation encryption-test (added-strand resp 4)
+    (enc na nb a b
+      (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y zeta)))) (0 3))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y zeta))
+          (enc na nb a b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y zeta))))))
+      (send nb))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-1 (cat pt-3 (pv b lb)))
+      (recv
+        (sig (body a (exp (gen) (mul l l-0 (rec lb))) (pubk "sig" a))
+          (privk "sig" a))) (recv (cat na a b (exp (gen) zeta)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y zeta))))))))
+  (label 4)
+  (parent 3)
+  (unrealized (0 3) (3 0) (3 1))
+  (comment "2 in cohort - 2 not yet seen"))
+>>>
+dhcr_um_expt_assume_shapes.tst
+<<< dhcr_um_expt_assume_shapes.tst:161:1: 
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (lb l x y rndx))
+  (defstrand init 5 (na na) (nb nb) (a self) (b b)
+    (priv-stor priv-stor-0) (la l) (x x) (beta lb) (upsilon y))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l lb))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
+    (lb lb) (y y) (alpha l) (zeta x))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb lb l)
+  (uniq-gen x y)
+  (absent (x lb) (x l) (y lb) (y l) (y x))
+  (gen-st (pv b lb) (pv self l))
+  (facts (neq (exp (gen) y) (gen)) (neq (exp (gen) x) (gen)) (trans 3 1)
+    (trans 1 1) (trans 3 0) (trans 1 0) (neq self b) (undisclosed l)
+    (undisclosed lb))
+  (rule assume-init-0 assume-resp-0 trRl_ltx-gen-at-1 trRl_ltx-gen-at-0)
+  (operation nonce-test (displaced 4 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) lb) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul lb l)) (exp (gen) (mul x y))))))
+      (send nb))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b lb)))
+      (send
+        (sig (body b (exp (gen) lb) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b lb)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul lb l)) (exp (gen) (mul x y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 16)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a self) (b b) (la l) (beta lb) (x x) (upsilon y) (na na) (nb nb)
+        (priv-stor priv-stor-0) (pt pt-2))))
+  (origs (nb (2 3)) (l (3 1)) (pt-2 (3 1)) (lb (1 1)) (pt-0 (1 1))
+    (na (0 2))))
+<<<
+>>> dhcr_um_expt_assume_shapes.txt:161:1: 
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (lb l x y rndx))
+  (defstrand init 5 (na na) (nb nb) (a self) (b b)
+    (priv-stor priv-stor-0) (la l) (x x) (beta lb) (upsilon y))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l lb))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (priv-stor priv-stor)
+    (lb lb) (y y) (alpha l) (zeta x))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb lb l)
+  (uniq-gen x y)
+  (absent (x lb) (x l) (y lb) (y l) (y x))
+  (gen-st (pv b lb) (pv self l))
+  (facts (neq (exp (gen) y) (gen)) (neq (exp (gen) x) (gen)) (trans 3 1)
+    (trans 1 1) (trans 3 0) (trans 1 0) (neq self b) (undisclosed l)
+    (undisclosed lb))
+  (operation nonce-test (displaced 4 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) lb) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul lb l)) (exp (gen) (mul x y))))))
+      (send nb))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b lb)))
+      (send
+        (sig (body b (exp (gen) lb) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b lb)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul lb l)) (exp (gen) (mul x y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 16)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a self) (b b) (la l) (beta lb) (x x) (upsilon y) (na na) (nb nb)
+        (priv-stor priv-stor-0) (pt pt-2))))
+  (origs (nb (2 3)) (l (3 1)) (pt-2 (3 1)) (lb (1 1)) (pt-0 (1 1))
+    (na (0 2))))
+>>>
+kerb.tst
+kerb_shapes.tst
+kerberos-variant-guar.tst
+kerberos-variant-guar_shapes.tst
+<<< kerberos-variant-guar_shapes.tst:236:1: 
+(defskeleton kerberos-variant
+  (vars (a-ks-lt b-ks-lt k skey) (t l text) (a b ks name))
+  (defstrand keyserver 2 (a-ks-lt a-ks-lt) (b-ks-lt b-ks-lt) (k k) (t t)
+    (l l) (a a) (b b) (ks ks))
+  (non-orig a-ks-lt b-ks-lt)
+  (uniq-orig k)
+  (facts (long-term b ks b-ks-lt) (long-term a ks a-ks-lt))
+  (rule long-term-key-non guar-keyserver-2)
+  (traces
+    ((recv (cat a b ks))
+      (send
+        (cat (enc t l k a b ks a-ks-lt)
+          (enc "ticket" t l k a b ks b-ks-lt)))))
+  (label 13)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (ks ks) (a-ks-lt a-ks-lt) (b-ks-lt b-ks-lt) (t t)
+        (l l) (k k))))
+  (origs (k (0 1))))
+<<<
+>>> kerberos-variant-guar_shapes.txt:236:1: 
+(defskeleton kerberos-variant
+  (vars (a-ks-lt b-ks-lt k skey) (t l text) (a b ks name))
+  (defstrand keyserver 2 (a-ks-lt a-ks-lt) (b-ks-lt b-ks-lt) (k k) (t t)
+    (l l) (a a) (b b) (ks ks))
+  (non-orig a-ks-lt b-ks-lt)
+  (uniq-orig k)
+  (facts (long-term b ks b-ks-lt) (long-term a ks a-ks-lt))
+  (traces
+    ((recv (cat a b ks))
+      (send
+        (cat (enc t l k a b ks a-ks-lt)
+          (enc "ticket" t l k a b ks b-ks-lt)))))
+  (label 13)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (ks ks) (a-ks-lt a-ks-lt) (b-ks-lt b-ks-lt) (t t)
+        (l l) (k k))))
+  (origs (k (0 1))))
+>>>
+minipay-rely-guar-2.tst
+>>> minipay-rely-guar-2.txt:2163:1: 
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit mesg) (cost amount) (account n account-0 data)
+    (item item-0 merchandise)
+    (merc-conf btr mtr merc-conf-0 bank-conf bank-conf-0 text)
+    (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account-0 bank-conf-0 (hash n merc-conf)
+        (pubk "enc" b))) (bank-conf-commit bank-conf-commit) (cost cost)
+    (n n) (item item) (merc-conf merc-conf) (bank-conf bank-conf-0)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (cost cost) (account account) (n n) (item item-0)
+    (merc-conf merc-conf-0) (bank-conf bank-conf) (c c) (m m) (b b))
+  (defstrand bank 2 (cost cost) (account account-0) (n n)
+    (merc-conf merc-conf) (bank-conf bank-conf-0) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (2 0)) ((2 1) (0 2)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" m)
+    (privk "sig" b))
+  (uniq-orig btr mtr)
+  (facts (buy-via c m b item-0 cost n)
+    (will-transfer c m b cost n mtr btr))
+  (operation encryption-test (contracted (bank-conf-1 bank-conf-0))
+    (sign (bconf c m b (hash n cost) merc-conf btr mtr) (privk "sig" b))
+    (0 2)
+    (enc bank-conf-0
+      (sign (bconf c m b (hash n cost) merc-conf btr mtr)
+        (privk "sig" b)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 (hash n merc-conf)
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (sign
+          (payreq c m b (hash cost n) merc-conf mtr
+            (enc n cost account-0 bank-conf-0 (hash n merc-conf)
+              (pubk "enc" b))) (privk "sig" m)))
+      (recv
+        (enc bank-conf-0
+          (sign (bconf c m b (hash n cost) merc-conf btr mtr)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item-0 merc-conf-0 (hash n bank-conf)
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf (hash n merc-conf-0)
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (sign
+         (payreq c m b (hash cost n) merc-conf mtr
+           (enc n cost account-0 bank-conf-0 (hash n merc-conf)
+             (pubk "enc" b))) (privk "sig" m)))
+      (send
+        (enc bank-conf-0
+          (sign (bconf c m b (hash n cost) merc-conf btr mtr)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 26)
+  (parent 25)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((c c) (m m) (b b) (cost cost) (item item) (merc-conf merc-conf)
+        (bank-conf bank-conf-0) (btr btr) (mtr mtr) (n n)
+        (for-bank
+          (enc n cost account-0 bank-conf-0 (hash n merc-conf)
+            (pubk "enc" b))) (bank-conf-commit bank-conf-commit))))
+  (origs (mtr (0 1)) (btr (2 1))))
+>>>
+minipay-rely-guar.tst
+<<< minipay-rely-guar.tst:159:1: 
+(defskeleton minipay-rely-guar
+  (vars (cost amount) (n account data) (item merchandise)
+    (merc-conf bank-conf btr mtr text) (c m b name))
+  (defstrand cust 3 (cost cost) (account account) (n n) (item item)
+    (merc-conf merc-conf) (bank-conf bank-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" m)
+    (privk "sig" b))
+  (uniq-orig n)
+  (facts (will-transfer c m b cost n mtr btr) (will-ship c m b item mtr)
+    (buy-via c m b item cost n))
+  (rule rely-cust-3 guar-cust-1)
+  (traces
+    ((send
+       (enc n cost item merc-conf (hash n bank-conf)
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf (hash n merc-conf)
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign (bconf c m b (hash n cost) merc-conf btr mtr)
+          (privk "sig" b)))
+      (recv
+        (sign (mconf c m b (hash n item cost) bank-conf btr mtr)
+          (privk "sig" m)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1) (0 2))
+  (origs (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+<<<
+>>> minipay-rely-guar.txt:159:1: 
+(defskeleton minipay-rely-guar
+  (vars (cost amount) (n account data) (item merchandise)
+    (merc-conf bank-conf btr mtr text) (c m b name))
+  (defstrand cust 3 (cost cost) (account account) (n n) (item item)
+    (merc-conf merc-conf) (bank-conf bank-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" m)
+    (privk "sig" b))
+  (uniq-orig n)
+  (facts (will-transfer c m b cost n mtr btr) (will-ship c m b item mtr)
+    (buy-via c m b item cost n))
+  (traces
+    ((send
+       (enc n cost item merc-conf (hash n bank-conf)
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf (hash n merc-conf)
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign (bconf c m b (hash n cost) merc-conf btr mtr)
+          (privk "sig" b)))
+      (recv
+        (sign (mconf c m b (hash n item cost) bank-conf btr mtr)
+          (privk "sig" m)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1) (0 2))
+  (origs (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+>>>
+minipay-rely-guar_shapes.tst
+<<< minipay-rely-guar_shapes.tst:163:1: 
+(defskeleton minipay-rely-guar
+  (vars (cost amount) (n account data) (item merchandise)
+    (merc-conf bank-conf btr mtr text) (c m b name))
+  (defstrand cust 3 (cost cost) (account account) (n n) (item item)
+    (merc-conf merc-conf) (bank-conf bank-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (cost cost) (account account) (n n)
+    (merc-conf merc-conf) (bank-conf bank-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf (hash n merc-conf) (pubk "enc" b)))
+    (bank-conf-commit (hash n bank-conf)) (cost cost) (n n) (item item)
+    (merc-conf merc-conf) (bank-conf bank-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (precedes ((0 0) (2 0)) ((1 1) (2 2)) ((2 1) (1 0)) ((2 3) (0 1)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" m)
+    (privk "sig" b))
+  (uniq-orig n btr mtr)
+  (facts (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule guar-cust-1 guar-merc-4 guar-bank-2)
+  (operation encryption-test (displaced 2 3 merc 4)
+    (sign (bconf c m b (hash n cost) merc-conf btr mtr) (privk "sig" b))
+    (0 1)
+    (enc bank-conf
+      (sign (bconf c m b (hash n cost) merc-conf btr mtr)
+        (privk "sig" b)) (pubk "enc" m)))
+  (traces
+    ((send
+       (enc n cost item merc-conf (hash n bank-conf)
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf (hash n merc-conf)
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign (bconf c m b (hash n cost) merc-conf btr mtr)
+          (privk "sig" b)))
+      (recv
+        (sign (mconf c m b (hash n item cost) bank-conf btr mtr)
+          (privk "sig" m))))
+    ((recv
+       (sign
+         (payreq c m b (hash cost n) merc-conf mtr
+           (enc n cost account bank-conf (hash n merc-conf)
+             (pubk "enc" b))) (privk "sig" m)))
+      (send
+        (enc bank-conf
+          (sign (bconf c m b (hash n cost) merc-conf btr mtr)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf (hash n bank-conf)
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf (hash n merc-conf)
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (sign
+          (payreq c m b (hash cost n) merc-conf mtr
+            (enc n cost account bank-conf (hash n merc-conf)
+              (pubk "enc" b))) (privk "sig" m)))
+      (recv
+        (enc bank-conf
+          (sign (bconf c m b (hash n cost) merc-conf btr mtr)
+            (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (cat
+          (sign (bconf c m b (hash n cost) merc-conf btr mtr)
+            (privk "sig" b))
+          (sign (mconf c m b (hash n item cost) bank-conf btr mtr)
+            (privk "sig" m))))))
+  (label 7)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((c c) (m m) (b b) (n n) (cost cost) (item item)
+        (merc-conf merc-conf) (bank-conf bank-conf) (btr btr) (mtr mtr)
+        (account account))))
+  (origs (mtr (2 1)) (btr (1 1)) (n (0 0))))
+<<<
+>>> minipay-rely-guar_shapes.txt:163:1: 
+(defskeleton minipay-rely-guar
+  (vars (cost amount) (n account data) (item merchandise)
+    (merc-conf bank-conf btr mtr text) (c m b name))
+  (defstrand cust 3 (cost cost) (account account) (n n) (item item)
+    (merc-conf merc-conf) (bank-conf bank-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (cost cost) (account account) (n n)
+    (merc-conf merc-conf) (bank-conf bank-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf (hash n merc-conf) (pubk "enc" b)))
+    (bank-conf-commit (hash n bank-conf)) (cost cost) (n n) (item item)
+    (merc-conf merc-conf) (bank-conf bank-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (precedes ((0 0) (2 0)) ((1 1) (2 2)) ((2 1) (1 0)) ((2 3) (0 1)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" m)
+    (privk "sig" b))
+  (uniq-orig n btr mtr)
+  (facts (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (operation encryption-test (displaced 2 3 merc 4)
+    (sign (bconf c m b (hash n cost) merc-conf btr mtr) (privk "sig" b))
+    (0 1)
+    (enc bank-conf
+      (sign (bconf c m b (hash n cost) merc-conf btr mtr)
+        (privk "sig" b)) (pubk "enc" m)))
+  (traces
+    ((send
+       (enc n cost item merc-conf (hash n bank-conf)
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf (hash n merc-conf)
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign (bconf c m b (hash n cost) merc-conf btr mtr)
+          (privk "sig" b)))
+      (recv
+        (sign (mconf c m b (hash n item cost) bank-conf btr mtr)
+          (privk "sig" m))))
+    ((recv
+       (sign
+         (payreq c m b (hash cost n) merc-conf mtr
+           (enc n cost account bank-conf (hash n merc-conf)
+             (pubk "enc" b))) (privk "sig" m)))
+      (send
+        (enc bank-conf
+          (sign (bconf c m b (hash n cost) merc-conf btr mtr)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf (hash n bank-conf)
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf (hash n merc-conf)
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (sign
+          (payreq c m b (hash cost n) merc-conf mtr
+            (enc n cost account bank-conf (hash n merc-conf)
+              (pubk "enc" b))) (privk "sig" m)))
+      (recv
+        (enc bank-conf
+          (sign (bconf c m b (hash n cost) merc-conf btr mtr)
+            (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (cat
+          (sign (bconf c m b (hash n cost) merc-conf btr mtr)
+            (privk "sig" b))
+          (sign (mconf c m b (hash n item cost) bank-conf btr mtr)
+            (privk "sig" m))))))
+  (label 7)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((c c) (m m) (b b) (n n) (cost cost) (item item)
+        (merc-conf merc-conf) (bank-conf bank-conf) (btr btr) (mtr mtr)
+        (account account))))
+  (origs (mtr (2 1)) (btr (1 1)) (n (0 0))))
+>>>
+minipay-test-relies.tst
+<<< minipay-test-relies.tst:137:1: 
+(defskeleton minipay-rely-guar
+  (vars (cost amount) (n account data) (item merchandise)
+    (mtr btr merc-conf bank-conf text) (c m b name))
+  (defstrand cust 3 (cost cost) (account account) (n n) (item item)
+    (merc-conf merc-conf) (bank-conf bank-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" m)
+    (privk "sig" b))
+  (facts (buy-via c m b item cost n))
+  (rule guar-cust-1)
+  (traces
+    ((send
+       (enc n cost item merc-conf (hash n bank-conf)
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf (hash n merc-conf)
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign (bconf c m b (hash n cost) merc-conf btr mtr)
+          (privk "sig" b)))
+      (recv
+        (sign (mconf c m b (hash n item cost) bank-conf btr mtr)
+          (privk "sig" m)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1) (0 2))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+<<<
+>>> minipay-test-relies.txt:137:1: 
+(defskeleton minipay-rely-guar
+  (vars (cost amount) (n account data) (item merchandise)
+    (mtr btr merc-conf bank-conf text) (c m b name))
+  (defstrand cust 3 (cost cost) (account account) (n n) (item item)
+    (merc-conf merc-conf) (bank-conf bank-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" m)
+    (privk "sig" b))
+  (facts (buy-via c m b item cost n))
+  (traces
+    ((send
+       (enc n cost item merc-conf (hash n bank-conf)
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf (hash n merc-conf)
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign (bconf c m b (hash n cost) merc-conf btr mtr)
+          (privk "sig" b)))
+      (recv
+        (sign (mconf c m b (hash n item cost) bank-conf btr mtr)
+          (privk "sig" m)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1) (0 2))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+>>>
+minipay.tst
+minipay_shapes.tst
+ns.tst
+ns_shapes.tst
+open-closed-late-destructure.tst
+<<< open-closed-late-destructure.tst:264:1: 
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (k skey) (d o name) (pt pt-0 pt-1 pt-2 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (auth start-ch)
+  (facts (trans 2 4) (trans 2 2) (same-dev ls lk) (trans 2 3)
+    (trans 2
+      1)) fact-dev-up-same-dev0 trRl_dev-up-at-3 trRl_dev-up-at-1)
+<<<
+>>> open-closed-late-destructure.txt:264:1: 
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (k skey) (d o name) (pt pt-0 pt-1 pt-2 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (auth start-ch)
+  (facts (trans 2 4) (trans 2 2) (same-dev ls lk) (trans 2 3)
+    (trans 2 1))
+  (operation nonce-test (added-strand dev-up 4) k (1 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt old))
+      (load ls (cat pt-0 old1))
+      (stor lk (cat pt-1 (dev-key-state d o k)))
+      (stor ls (cat pt-2 (door-state d (closed o))))))
+  (label 2)
+  (parent 1)
+  (seen 2)
+  (unrealized (0 1) (1 0))
+  (comment "1 in cohort - 0 not yet seen"))
+>>>
+open-closed-late-destructure_shapes.tst
+<<< open-closed-late-destructure_shapes.tst:498:1: 
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (precedes ((1 4) (3 1)) ((2 0) (1 0)) ((3 3) (0 0)))
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (trans 3 3) (trans 3 1) (trans 1 4)
+    (trans 1 2) (trans 1 3) (trans 1 1))
+  (operation channel-test (displaced 4 1 dev-up 4)
+    (ch-msg lk (cat pt-5 (dev-key-state d o-0 k-0))) (3 2))
+  (traces
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n))))))
+  (label 8)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk) (ls ls) (pt pt-2)
+        (pt-0 pt))))
+  (origs (pt-2 (1 3)) (pt (3 3)) (pt-3 (1 4))))
+<<<
+>>> open-closed-late-destructure_shapes.txt:498:1: 
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (precedes ((1 4) (3 1)) ((2 0) (1 0)) ((3 3) (0 0)))
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (trans 1 4) (trans 1 3) (trans 1 2)
+    (trans 1 1) (trans 3 3) (trans 3 1))
+  (operation channel-test (displaced 4 1 dev-up 4)
+    (ch-msg lk (cat pt-5 (dev-key-state d o-0 k-0))) (3 2))
+  (traces
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n))))))
+  (label 8)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk) (ls ls) (pt pt-2)
+        (pt-0 pt))))
+  (origs (pt-2 (1 3)) (pt (3 3)) (pt-3 (1 4))))
+>>>
+open-closed.tst
+open-closed_shapes.tst
+<<< open-closed_shapes.tst:466:1: 
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (precedes ((1 4) (3 0)) ((2 0) (1 0)) ((3 4) (0 0)))
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (trans 1 4) (trans 1 3) (trans 1 2)
+    (trans 1 1) (trans 3 4) (trans 3 2))
+  (rule fact-dev-pass-same-dev0 trRl_dev-up-at-4 trRl_dev-up-at-3
+    trRl_dev-up-at-2 trRl_dev-up-at-1 trRl_dev-open-at-4
+    trRl_dev-open-at-2)
+  (operation channel-test (displaced 4 1 dev-up 4)
+    (ch-msg lk (cat pt-5 (dev-key-state d o k))) (3 3))
+  (traces
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((send start-ch (cat "power-up" d o k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n))))))
+  (label 10)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk) (ls ls) (pt pt-2)
+        (pt-0 pt))))
+  (origs (pt-2 (1 3)) (pt-3 (1 4)) (pt (3 4))))
+<<<
+>>> open-closed_shapes.txt:466:1: 
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (precedes ((1 4) (3 0)) ((2 0) (1 0)) ((3 4) (0 0)))
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (trans 1 4) (trans 1 3) (trans 1 2)
+    (trans 1 1) (trans 3 4) (trans 3 2))
+  (operation channel-test (displaced 4 1 dev-up 4)
+    (ch-msg lk (cat pt-5 (dev-key-state d o k))) (3 3))
+  (traces
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((send start-ch (cat "power-up" d o k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n))))))
+  (label 10)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk) (ls ls) (pt pt-2)
+        (pt-0 pt))))
+  (origs (pt-2 (1 3)) (pt-3 (1 4)) (pt (3 4))))
+>>>
+or.tst
+or_shapes.tst
+pkinit.tst
+pkinit_shapes.tst
+plaindh.tst
+plaindh_shapes.tst
diff --git a/doc/src/cpsa4manual/examples/dhcr_um_expt_assume.scm b/doc/src/cpsa4manual/examples/dhcr_um_expt_assume.scm
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/dhcr_um_expt_assume.scm
@@ -0,0 +1,215 @@
+;;; Unified Model  This version used in the paper, tooldev/dh/conf_dh/dh_ebn.tex
+
+;;; This file models the "Unified Model" method of determining a fresh
+;;; key from long-term and ephemeral Diffie-Hellman exponents.  We use
+;;; function relation declarations to link names to long-term public
+;;; values.
+
+;;; This file contains the standard version, in which the two
+;;; ephemeral are mixed, as are the two static exponents.
+
+;;; A role is provided in which a party signs a fresh long-term
+;;; Diffie-Hellman value, and then leaks the exponent.  The latter step
+;;; is used to test the notion of forward security.
+
+;;; Two inputs are analyzed.  In the first, we model that two
+;;; participants exist that agree on the UM key.  The notion of
+;;; "implicit authentication" suggests that if one participant exists
+;;; and another party knows the same key, that party must be either the
+;;; participant or the participant's intended partner.
+
+;;; In this version, we assume that the long-term keys of the
+;;; participants do not leak.
+
+;;; The second input checks whether the key can be learned when the key
+;;; is generated honestly.  In this version, we do NOT assume that the
+;;; long-term keys of the participants do not leak.
+
+;;; CPSA4 revisions:
+;;;
+;;; 1.  Self certify my public value in ltx-gen,
+;;;     and assume signing keys non.
+;;; 2.  Deposit private value in state and retrieve
+;;;	it at the beginning of each init or resp run.
+;;; 3.  Discard the private value from state before
+;;;	disclosing it, when testing forward secrecy.
+
+(herald "DHCR: unified model (UM) original"
+	(bound 20)
+	(limit 12000)
+	(algebra diffie-hellman))
+
+(defmacro (kcfa l gb x gy)
+  (hash (exp gb l) (exp gy x)))
+
+(defmacro (kcfb l ga y gx)
+  (hash (exp ga l) (exp gx y)))
+
+(defprotocol dhcr-um diffie-hellman
+  (defrole init
+    (vars (la x rndx) (beta upsilon expt) (a b name) (na nb data) (priv-stor locn))
+    (trace
+     (load priv-stor (pv a la))
+     (recv (sig (body b (exp (gen) beta) (pubk "sig" b))
+		(privk "sig" b)))
+     (send (cat na a b (exp (gen) x) ;; (sig na a b (exp (gen) x) (privk "sig" a))
+		))
+     (recv (cat (exp (gen) upsilon)
+		(enc na nb a b
+		     (kcfa la (exp (gen) beta) x (exp (gen) upsilon)))))
+     (send nb)
+     )
+    (uniq-gen x)
+    (uniq-orig na)
+    (assume (fact neq (exp (gen) upsilon) (gen)))
+    (gen-st (pv a la)))
+
+  (defrole resp
+    (vars (lb y rndx) (alpha zeta expt) (a b name) (na nb data) (priv-stor locn))
+    (trace
+     (load priv-stor (pv b lb))
+     (recv (sig (body a (exp (gen) alpha) (pubk "sig" a))
+		(privk "sig" a)))
+     (recv (cat na a b (exp (gen) zeta) ;; (sig na a b (exp (gen) zeta) (privk "sig" a))
+		))
+     (send (cat (exp (gen) y)
+		(enc na nb a b
+		     (kcfb lb (exp (gen) alpha) y (exp (gen) zeta)))))
+     (recv nb)
+     )
+    (uniq-gen y)
+    (uniq-orig nb)
+    (assume (fact neq (exp (gen) zeta) (gen)))
+    (gen-st (pv b lb)))
+
+  (defrole ltx-gen
+    (vars (self name) (l rndx)
+	  (priv-stor locn) (ignore mesg))
+    (trace
+     (load priv-stor ignore)
+     (stor priv-stor (pv self l))
+     (send (sig (body self (exp (gen) l) (pubk "sig" self))
+		(privk "sig" self))))
+    (uniq-orig l))
+
+  (defrole ltx-disclose
+    (vars (self name) (l rndx)
+	  (priv-stor locn) (ignore mesg))
+    (trace
+     (load priv-stor (pv self l))
+     (stor priv-stor "nil")
+     (send l))
+    (gen-st (pv self l)))
+
+;     (defrule fact-resp-neq0
+;       (forall ((z strd) (zeta expt))
+;         (implies (and (p "resp" z 3) (p "resp" "zeta" z zeta))
+;           (fact neq zeta one))))
+
+  (defrule undisclosed-not-disclosed
+    (forall
+     ((z strd) (l rndx))
+     (implies
+      (and (fact undisclosed l)
+	  (p "ltx-disclose" z 2)
+	  (p "ltx-disclose" "l" z l))
+      (false))))
+
+  (lang (sig sign)
+	(body (tuple 3))
+	(pv (tuple 2))))
+
+; Initiator point of view: both LTX exponents secret
+(defskeleton dhcr-um
+  (vars (a b name) (la l-peer rndx) (beta expt))
+  (defstrand init 5 (a a) (b b) (la la) (beta beta))
+  (non-orig (privk "sig" b))
+  (facts (neq a b)
+	 (undisclosed la)
+	 (undisclosed beta)))
+
+; Initiator point of view:  peer exponent secret
+(defskeleton dhcr-um
+  (vars (a b name) (la l-peer rndx) (beta expt))
+  (defstrand init 5 (a a) (b b) (la la) (beta beta))
+  (non-orig (privk "sig" b))
+  (facts (neq a b)
+	 ;;	 (undisclosed la)
+	 (undisclosed beta)))
+
+; Initiator point of view:  my exponent secret
+(defskeleton dhcr-um
+  (vars (a b name) (la rndx))
+  (defstrand init 5 (a a) (b b) (la la) )
+  (non-orig (privk "sig" b))
+  (facts (neq a b)
+	 ;;	 (undisclosed l-peer)
+	 (undisclosed la)))
+
+; Initiator point of view:  neither exponent secret
+
+(defskeleton dhcr-um
+  (vars (a b name) (la rndx))
+  (defstrand init 5 (a a) (b b) (la la))
+  (non-orig (privk "sig" b))
+  (facts (neq a b)
+	 ;;	 (undisclosed l-peer)
+	 ;;	 (undisclosed la)
+	 ))
+
+(defskeleton dhcr-um
+  (vars (a b name) (la lb rndx) (alpha beta expt))
+  (defstrand resp 5 (a a) (b b) (lb lb) (alpha alpha))
+  (defstrand init 5 (a a) (b b) (la la) (beta beta))
+  (non-orig (privk "sig" a) (privk "sig" b))
+  (facts (neq a b)
+	 (undisclosed la)
+	 (undisclosed lb)))
+
+; Responder point of view: both exponents secret
+(defskeleton dhcr-um
+  (vars (a b name) (lb rndx) (alpha expt))
+  (defstrand resp 5 (a a) (b b) (lb lb) (alpha alpha))
+  (non-orig (privk "sig" a))
+  (facts (neq a b)
+	 (undisclosed lb)
+	 (undisclosed alpha)))
+
+; Responder point of view:  peer exponent secret
+(defskeleton dhcr-um
+  (vars (a b name) (lb l-peer rndx) (alpha expt))
+  (defstrand resp 5 (a a) (b b) (lb lb) (alpha alpha))
+  (non-orig (privk "sig" a))
+  (facts (neq a b)
+	 ;;	 (undisclosed lb)
+	 (undisclosed alpha)))
+
+; Responder point of view:  my exponent secret
+(defskeleton dhcr-um
+  (vars (a b name) (lb rndx) (l-peer expt))
+  (defstrand resp 5 (a a) (b b) (lb lb) )
+  (non-orig (privk "sig" a))
+  (facts (neq a b)
+	 ;;	 (undisclosed l-peer)
+	 (undisclosed lb)))
+
+; Responder point of view:  neither exponent secret
+
+(defskeleton dhcr-um
+  (vars (a b name) (lb rndx) (l-peer expt))
+  (defstrand resp 5 (a a) (b b) (lb lb))
+  (non-orig (privk "sig" a))
+  (facts (neq a b)
+	 ;;	 (undisclosed l-peer)
+	 ;;	 (undisclosed lb)
+	 ))
+
+;;; Initiator point of view: partner's exponent secret
+(defskeleton dhcr-um
+  (vars (la beta rndx) (a b name))
+  (defstrand init 4 (la la) (beta beta) (a a) (b b))
+  (defstrand ltx-gen 3 (l beta))
+  (uniq-orig beta)
+  (facts (neq a b)))
+
+					; Responder point of view; both exponents secret
diff --git a/doc/src/cpsa4manual/examples/dhcr_um_expt_assume.tst b/doc/src/cpsa4manual/examples/dhcr_um_expt_assume.tst
new file mode 100644
# file too large to diff: doc/src/cpsa4manual/examples/dhcr_um_expt_assume.tst
diff --git a/doc/src/cpsa4manual/examples/kerb.scm b/doc/src/cpsa4manual/examples/kerb.scm
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/kerb.scm
@@ -0,0 +1,76 @@
+; Flawed and Fixed Kerberos
+
+; In this example, the initiator is trying to send a private message
+; to the responder.  Each are presumed to share a long-term private key
+; with the key server, which will choose a fresh session key on request
+; and encrypt it for both parties.
+
+; A flaw exists in the protocol intentionally: the initiator will need
+; confirmation that the session key is shared between the initiator and
+; the partner they specified.
+
+; This version of the protocol is not modeled properly and misses the flaw.
+(defprotocol kerb-flawed basic
+  (defrole init
+    (vars (a b s name) (m n text) (k skey))
+    (trace
+       ;; Make the request
+       (send (cat a b n))
+       ;; Receive the encrypted key and ticket
+       (recv (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))
+       (send (cat (enc m k) (enc k a b (ltk b s)))))
+    (uniq-orig n))
+  (defrole resp
+    (vars (a b s name) (m text) (k skey))
+    (trace
+       (recv (cat (enc m k) (enc k a b (ltk b s))))))
+  (defrole keyserv
+    (vars (a b s name) (m n text) (k skey))
+    (trace
+       ;; Receive the request
+       (recv (cat a b n))
+       ;; Send the encrypted key and ticket
+       (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s)))))
+    (uniq-orig k))
+)
+
+; This skeleton should be dead, even though m can leak
+(defskeleton kerb-flawed
+  (vars (a b s name) (m text))
+  (defstrand init 3 (a a) (b b) (s s) (m m))
+  (deflistener m)
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig m))
+
+; This version of the protocol is not modeled properly, with a generic variable (ticket)
+(defprotocol kerb-flawed2 basic
+  (defrole init
+    (vars (a b s name) (ticket mesg) (m n text) (k skey))
+    (trace
+       ;; Make the request
+       (send (cat a b n))
+       ;; Receive the encrypted key and ticket
+       (recv (cat (enc k n (ltk a s)) ticket))
+       (send (cat (enc m k) ticket)))
+    (uniq-orig n))
+  (defrole resp
+    (vars (a b s name) (m text) (k skey))
+    (trace
+       (recv (cat (enc m k) (enc k a b (ltk b s))))))
+  (defrole keyserv
+    (vars (a b s name) (m n text) (k skey))
+    (trace
+       ;; Receive the request
+       (recv (cat a b n))
+       ;; Send the encrypted key and ticket
+       (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s)))))
+    (uniq-orig k))
+)
+
+; This skeleton should have a shape, demonstrating that m may be leaked.
+(defskeleton kerb-flawed2
+  (vars (a b s name) (m text))
+  (defstrand init 3 (a a) (b b) (s s) (m m))
+  (deflistener m)
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig m))
diff --git a/doc/src/cpsa4manual/examples/kerb.tst b/doc/src/cpsa4manual/examples/kerb.tst
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/kerb.tst
@@ -0,0 +1,201 @@
+(comment "CPSA 4.4.0")
+(comment "All input read from kerb.scm")
+
+(defprotocol kerb-flawed basic
+  (defrole init
+    (vars (a b s name) (m n text) (k skey))
+    (trace (send (cat a b n))
+      (recv (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))
+      (send (cat (enc m k) (enc k a b (ltk b s)))))
+    (uniq-orig n))
+  (defrole resp
+    (vars (a b s name) (m text) (k skey))
+    (trace (recv (cat (enc m k) (enc k a b (ltk b s))))))
+  (defrole keyserv
+    (vars (a b s name) (n text) (k skey))
+    (trace (recv (cat a b n))
+      (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s)))))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton kerb-flawed
+  (vars (k skey) (m n text) (a b s name))
+  (defstrand init 3 (k k) (m m) (n n) (a a) (b b) (s s))
+  (deflistener m)
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig m n)
+  (traces
+    ((send (cat a b n))
+      (recv (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))
+      (send (cat (enc m k) (enc k a b (ltk b s))))) ((recv m) (send m)))
+  (label 0)
+  (unrealized (0 1) (1 0))
+  (preskeleton)
+  (origs (n (0 0)) (m (0 2)))
+  (comment "Not a skeleton"))
+
+(defskeleton kerb-flawed
+  (vars (k skey) (m n text) (a b s name))
+  (defstrand init 3 (k k) (m m) (n n) (a a) (b b) (s s))
+  (deflistener m)
+  (precedes ((0 2) (1 0)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig m n)
+  (traces
+    ((send (cat a b n))
+      (recv (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))
+      (send (cat (enc m k) (enc k a b (ltk b s))))) ((recv m) (send m)))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1))
+  (origs (n (0 0)) (m (0 2)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton kerb-flawed
+  (vars (k skey) (m n text) (a b s b-0 name))
+  (defstrand init 3 (k k) (m m) (n n) (a a) (b b) (s s))
+  (deflistener m)
+  (defstrand keyserv 2 (k k) (n n) (a a) (b b-0) (s s))
+  (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k m n)
+  (operation encryption-test (added-strand keyserv 2)
+    (enc k n (ltk a s)) (0 1))
+  (traces
+    ((send (cat a b n))
+      (recv (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))
+      (send (cat (enc m k) (enc k a b (ltk b s))))) ((recv m) (send m))
+    ((recv (cat a b-0 n))
+      (send (cat (enc k n (ltk a s)) (enc k a b-0 (ltk b-0 s))))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton kerb-flawed
+  (vars (k skey) (m n text) (a s b name))
+  (defstrand init 3 (k k) (m m) (n n) (a a) (b b) (s s))
+  (deflistener m)
+  (defstrand keyserv 2 (k k) (n n) (a a) (b b) (s s))
+  (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k m n)
+  (operation encryption-test (displaced 3 2 keyserv 2)
+    (enc k a b-0 (ltk b-0 s)) (0 1))
+  (traces
+    ((send (cat a b n))
+      (recv (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))
+      (send (cat (enc m k) (enc k a b (ltk b s))))) ((recv m) (send m))
+    ((recv (cat a b n))
+      (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))))
+  (label 3)
+  (parent 2)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton kerb-flawed
+  (vars (k skey) (m n text) (a s b name))
+  (defstrand init 3 (k k) (m m) (n n) (a a) (b b) (s s))
+  (deflistener m)
+  (defstrand keyserv 2 (k k) (n n) (a a) (b b) (s s))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1)) ((2 1) (3 0))
+    ((3 1) (1 0)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k m n)
+  (operation nonce-test (added-listener k) m (1 0) (enc m k))
+  (traces
+    ((send (cat a b n))
+      (recv (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))
+      (send (cat (enc m k) (enc k a b (ltk b s))))) ((recv m) (send m))
+    ((recv (cat a b n))
+      (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s)))))
+    ((recv k) (send k)))
+  (label 4)
+  (parent 3)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol kerb-flawed2 basic
+  (defrole init
+    (vars (a b s name) (ticket mesg) (m n text) (k skey))
+    (trace (send (cat a b n)) (recv (cat (enc k n (ltk a s)) ticket))
+      (send (cat (enc m k) ticket)))
+    (uniq-orig n))
+  (defrole resp
+    (vars (a b s name) (m text) (k skey))
+    (trace (recv (cat (enc m k) (enc k a b (ltk b s))))))
+  (defrole keyserv
+    (vars (a b s name) (n text) (k skey))
+    (trace (recv (cat a b n))
+      (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s)))))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton kerb-flawed2
+  (vars (ticket mesg) (k skey) (m n text) (a b s name))
+  (defstrand init 3 (ticket ticket) (k k) (m m) (n n) (a a) (b b) (s s))
+  (deflistener m)
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig m n)
+  (traces
+    ((send (cat a b n)) (recv (cat (enc k n (ltk a s)) ticket))
+      (send (cat (enc m k) ticket))) ((recv m) (send m)))
+  (label 5)
+  (unrealized (0 1) (1 0))
+  (preskeleton)
+  (origs (n (0 0)) (m (0 2)))
+  (comment "Not a skeleton"))
+
+(defskeleton kerb-flawed2
+  (vars (ticket mesg) (k skey) (m n text) (a b s name))
+  (defstrand init 3 (ticket ticket) (k k) (m m) (n n) (a a) (b b) (s s))
+  (deflistener m)
+  (precedes ((0 2) (1 0)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig m n)
+  (traces
+    ((send (cat a b n)) (recv (cat (enc k n (ltk a s)) ticket))
+      (send (cat (enc m k) ticket))) ((recv m) (send m)))
+  (label 6)
+  (parent 5)
+  (unrealized (0 1))
+  (origs (n (0 0)) (m (0 2)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton kerb-flawed2
+  (vars (ticket mesg) (k skey) (m n text) (a b s b-0 name))
+  (defstrand init 3 (ticket ticket) (k k) (m m) (n n) (a a) (b b) (s s))
+  (deflistener m)
+  (defstrand keyserv 2 (k k) (n n) (a a) (b b-0) (s s))
+  (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k m n)
+  (operation encryption-test (added-strand keyserv 2)
+    (enc k n (ltk a s)) (0 1))
+  (traces
+    ((send (cat a b n)) (recv (cat (enc k n (ltk a s)) ticket))
+      (send (cat (enc m k) ticket))) ((recv m) (send m))
+    ((recv (cat a b-0 n))
+      (send (cat (enc k n (ltk a s)) (enc k a b-0 (ltk b-0 s))))))
+  (label 7)
+  (parent 6)
+  (realized)
+  (shape)
+  (maps ((0 1) ((a a) (b b) (s s) (m m) (ticket ticket) (n n) (k k))))
+  (origs (k (2 1)) (n (0 0)) (m (0 2))))
+
+(comment "Nothing left to do")
diff --git a/doc/src/cpsa4manual/examples/kerberos-variant-guar.tst b/doc/src/cpsa4manual/examples/kerberos-variant-guar.tst
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/kerberos-variant-guar.tst
@@ -0,0 +1,477 @@
+(comment "CPSA 4.3.1")
+(comment "All input read from kerberos-variant-guar.scm")
+
+(defprotocol kerberos-variant basic
+  (defrole init
+    (vars (a b ks name) (t n t-prime l text) (a-ks-lt k skey)
+      (ticket mesg))
+    (trace (send (cat a b ks))
+      (recv (cat (enc t l k a b ks a-ks-lt) ticket))
+      (send (cat (enc a t n k) ticket)) (recv (enc n t-prime k))))
+  (defrole resp
+    (vars (a b ks name) (t n t-prime l text) (b-ks-lt k skey))
+    (trace
+      (recv (cat (enc a t n k) (enc "ticket" t l k a b ks b-ks-lt)))
+      (send (enc n t-prime k))))
+  (defrole keyserver
+    (vars (a b ks name) (t l text) (a-ks-lt b-ks-lt k skey))
+    (trace (recv (cat a b ks))
+      (send
+        (cat (enc t l k a b ks a-ks-lt)
+          (enc "ticket" t l k a b ks b-ks-lt))))
+    (uniq-orig k))
+  (defrule long-term-key-non
+    (forall ((p ks name) (k-lt skey))
+      (implies (fact long-term p ks k-lt) (non k-lt))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule guar-keyserver-2
+    (forall ((z strd) (a-ks-lt b-ks-lt skey) (ks a b name))
+      (implies
+        (and (p "keyserver" z 2) (p "keyserver" "a-ks-lt" z a-ks-lt)
+          (p "keyserver" "b-ks-lt" z b-ks-lt) (p "keyserver" "ks" z ks)
+          (p "keyserver" "a" z a) (p "keyserver" "b" z b))
+        (and (fact long-term a ks a-ks-lt)
+          (fact long-term b ks b-ks-lt))))))
+
+(defskeleton kerberos-variant
+  (vars (ticket mesg) (a-ks-lt k skey) (n t t-prime l text)
+    (a b ks name))
+  (defstrand init 4 (ticket ticket) (a-ks-lt a-ks-lt) (k k) (t t) (n n)
+    (t-prime t-prime) (l l) (a a) (b b) (ks ks))
+  (non-orig a-ks-lt)
+  (uniq-orig n)
+  (traces
+    ((send (cat a b ks)) (recv (cat (enc t l k a b ks a-ks-lt) ticket))
+      (send (cat (enc a t n k) ticket)) (recv (enc n t-prime k))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (n (0 2)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton kerberos-variant
+  (vars (ticket mesg) (a-ks-lt k b-ks-lt skey) (n t t-prime l text)
+    (a b ks name))
+  (defstrand init 4 (ticket ticket) (a-ks-lt a-ks-lt) (k k) (t t) (n n)
+    (t-prime t-prime) (l l) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (a-ks-lt a-ks-lt) (b-ks-lt b-ks-lt) (k k) (t t)
+    (l l) (a a) (b b) (ks ks))
+  (precedes ((1 1) (0 1)))
+  (non-orig a-ks-lt b-ks-lt)
+  (uniq-orig k n)
+  (facts (long-term b ks b-ks-lt) (long-term a ks a-ks-lt))
+  (operation encryption-test (added-strand keyserver 2)
+    (enc t l k a b ks a-ks-lt) (0 1))
+  (traces
+    ((send (cat a b ks)) (recv (cat (enc t l k a b ks a-ks-lt) ticket))
+      (send (cat (enc a t n k) ticket)) (recv (enc n t-prime k)))
+    ((recv (cat a b ks))
+      (send
+        (cat (enc t l k a b ks a-ks-lt)
+          (enc "ticket" t l k a b ks b-ks-lt)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton kerberos-variant
+  (vars (ticket mesg) (a-ks-lt k b-ks-lt b-ks-lt-0 skey)
+    (n t t-prime l t-0 l-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand init 4 (ticket ticket) (a-ks-lt a-ks-lt) (k k) (t t) (n n)
+    (t-prime t-prime) (l l) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (a-ks-lt a-ks-lt) (b-ks-lt b-ks-lt) (k k) (t t)
+    (l l) (a a) (b b) (ks ks))
+  (defstrand resp 2 (b-ks-lt b-ks-lt-0) (k k) (t t-0) (n n)
+    (t-prime t-prime) (l l-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
+  (non-orig a-ks-lt b-ks-lt)
+  (uniq-orig k n)
+  (facts (long-term b ks b-ks-lt) (long-term a ks a-ks-lt))
+  (operation encryption-test (added-strand resp 2) (enc n t-prime k)
+    (0 3))
+  (traces
+    ((send (cat a b ks)) (recv (cat (enc t l k a b ks a-ks-lt) ticket))
+      (send (cat (enc a t n k) ticket)) (recv (enc n t-prime k)))
+    ((recv (cat a b ks))
+      (send
+        (cat (enc t l k a b ks a-ks-lt)
+          (enc "ticket" t l k a b ks b-ks-lt))))
+    ((recv
+       (cat (enc a-0 t-0 n k)
+         (enc "ticket" t-0 l-0 k a-0 b-0 ks-0 b-ks-lt-0)))
+      (send (enc n t-prime k))))
+  (label 2)
+  (parent 1)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton kerberos-variant
+  (vars (ticket mesg) (a-ks-lt k b-ks-lt skey) (n t t-prime l text)
+    (a b ks name))
+  (defstrand init 4 (ticket ticket) (a-ks-lt a-ks-lt) (k k) (t t) (n n)
+    (t-prime t-prime) (l l) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (a-ks-lt a-ks-lt) (b-ks-lt b-ks-lt) (k k) (t t)
+    (l l) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 3)))
+  (non-orig a-ks-lt b-ks-lt)
+  (uniq-orig k n)
+  (facts (long-term b ks b-ks-lt) (long-term a ks a-ks-lt))
+  (operation encryption-test (added-listener k) (enc n t-prime k) (0 3))
+  (traces
+    ((send (cat a b ks)) (recv (cat (enc t l k a b ks a-ks-lt) ticket))
+      (send (cat (enc a t n k) ticket)) (recv (enc n t-prime k)))
+    ((recv (cat a b ks))
+      (send
+        (cat (enc t l k a b ks a-ks-lt)
+          (enc "ticket" t l k a b ks b-ks-lt)))) ((recv k) (send k)))
+  (label 3)
+  (parent 1)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton kerberos-variant
+  (vars (ticket mesg) (a-ks-lt k b-ks-lt b-ks-lt-0 skey)
+    (n t t-prime l l-0 text) (a b ks b-0 ks-0 name))
+  (defstrand init 4 (ticket ticket) (a-ks-lt a-ks-lt) (k k) (t t) (n n)
+    (t-prime t-prime) (l l) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (a-ks-lt a-ks-lt) (b-ks-lt b-ks-lt) (k k) (t t)
+    (l l) (a a) (b b) (ks ks))
+  (defstrand resp 2 (b-ks-lt b-ks-lt-0) (k k) (t t) (n n)
+    (t-prime t-prime) (l l-0) (a a) (b b-0) (ks ks-0))
+  (precedes ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
+  (non-orig a-ks-lt b-ks-lt)
+  (uniq-orig k n)
+  (facts (long-term b ks b-ks-lt) (long-term a ks a-ks-lt))
+  (operation encryption-test (displaced 3 0 init 3) (enc a-0 t-0 n k)
+    (2 0))
+  (traces
+    ((send (cat a b ks)) (recv (cat (enc t l k a b ks a-ks-lt) ticket))
+      (send (cat (enc a t n k) ticket)) (recv (enc n t-prime k)))
+    ((recv (cat a b ks))
+      (send
+        (cat (enc t l k a b ks a-ks-lt)
+          (enc "ticket" t l k a b ks b-ks-lt))))
+    ((recv
+       (cat (enc a t n k) (enc "ticket" t l-0 k a b-0 ks-0 b-ks-lt-0)))
+      (send (enc n t-prime k))))
+  (label 4)
+  (parent 2)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton kerberos-variant
+  (vars (ticket mesg) (a-ks-lt k b-ks-lt b-ks-lt-0 skey)
+    (n t t-prime l t-0 l-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand init 4 (ticket ticket) (a-ks-lt a-ks-lt) (k k) (t t) (n n)
+    (t-prime t-prime) (l l) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (a-ks-lt a-ks-lt) (b-ks-lt b-ks-lt) (k k) (t t)
+    (l l) (a a) (b b) (ks ks))
+  (defstrand resp 2 (b-ks-lt b-ks-lt-0) (k k) (t t-0) (n n)
+    (t-prime t-prime) (l l-0) (a a-0) (b b-0) (ks ks-0))
+  (deflistener k)
+  (precedes ((0 2) (2 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))
+    ((3 1) (2 0)))
+  (non-orig a-ks-lt b-ks-lt)
+  (uniq-orig k n)
+  (facts (long-term b ks b-ks-lt) (long-term a ks a-ks-lt))
+  (operation encryption-test (added-listener k) (enc a-0 t-0 n k) (2 0))
+  (traces
+    ((send (cat a b ks)) (recv (cat (enc t l k a b ks a-ks-lt) ticket))
+      (send (cat (enc a t n k) ticket)) (recv (enc n t-prime k)))
+    ((recv (cat a b ks))
+      (send
+        (cat (enc t l k a b ks a-ks-lt)
+          (enc "ticket" t l k a b ks b-ks-lt))))
+    ((recv
+       (cat (enc a-0 t-0 n k)
+         (enc "ticket" t-0 l-0 k a-0 b-0 ks-0 b-ks-lt-0)))
+      (send (enc n t-prime k))) ((recv k) (send k)))
+  (label 5)
+  (parent 2)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton kerberos-variant
+  (vars (ticket mesg) (a-ks-lt k b-ks-lt skey) (n t t-prime l text)
+    (a b ks name))
+  (defstrand init 4 (ticket ticket) (a-ks-lt a-ks-lt) (k k) (t t) (n n)
+    (t-prime t-prime) (l l) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (a-ks-lt a-ks-lt) (b-ks-lt b-ks-lt) (k k) (t t)
+    (l l) (a a) (b b) (ks ks))
+  (defstrand resp 2 (b-ks-lt b-ks-lt) (k k) (t t) (n n)
+    (t-prime t-prime) (l l) (a a) (b b) (ks ks))
+  (precedes ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
+  (non-orig a-ks-lt b-ks-lt)
+  (uniq-orig k n)
+  (facts (long-term b ks b-ks-lt) (long-term a ks a-ks-lt))
+  (operation nonce-test
+    (contracted (b-0 b) (ks-0 ks) (l-0 l) (b-ks-lt-0 b-ks-lt)) k (2 0)
+    (enc "ticket" t l k a b ks b-ks-lt) (enc t l k a b ks a-ks-lt))
+  (traces
+    ((send (cat a b ks)) (recv (cat (enc t l k a b ks a-ks-lt) ticket))
+      (send (cat (enc a t n k) ticket)) (recv (enc n t-prime k)))
+    ((recv (cat a b ks))
+      (send
+        (cat (enc t l k a b ks a-ks-lt)
+          (enc "ticket" t l k a b ks b-ks-lt))))
+    ((recv (cat (enc a t n k) (enc "ticket" t l k a b ks b-ks-lt)))
+      (send (enc n t-prime k))))
+  (label 6)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (ks ks) (n n) (a-ks-lt a-ks-lt) (t t)
+        (t-prime t-prime) (l l) (k k) (ticket ticket))))
+  (origs (k (1 1)) (n (0 2))))
+
+(comment "Nothing left to do")
+
+(defprotocol kerberos-variant basic
+  (defrole init
+    (vars (a b ks name) (t n t-prime l text) (a-ks-lt k skey)
+      (ticket mesg))
+    (trace (send (cat a b ks))
+      (recv (cat (enc t l k a b ks a-ks-lt) ticket))
+      (send (cat (enc a t n k) ticket)) (recv (enc n t-prime k))))
+  (defrole resp
+    (vars (a b ks name) (t n t-prime l text) (b-ks-lt k skey))
+    (trace
+      (recv (cat (enc a t n k) (enc "ticket" t l k a b ks b-ks-lt)))
+      (send (enc n t-prime k))))
+  (defrole keyserver
+    (vars (a b ks name) (t l text) (a-ks-lt b-ks-lt k skey))
+    (trace (recv (cat a b ks))
+      (send
+        (cat (enc t l k a b ks a-ks-lt)
+          (enc "ticket" t l k a b ks b-ks-lt))))
+    (uniq-orig k))
+  (defrule long-term-key-non
+    (forall ((p ks name) (k-lt skey))
+      (implies (fact long-term p ks k-lt) (non k-lt))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule guar-keyserver-2
+    (forall ((z strd) (a-ks-lt b-ks-lt skey) (ks a b name))
+      (implies
+        (and (p "keyserver" z 2) (p "keyserver" "a-ks-lt" z a-ks-lt)
+          (p "keyserver" "b-ks-lt" z b-ks-lt) (p "keyserver" "ks" z ks)
+          (p "keyserver" "a" z a) (p "keyserver" "b" z b))
+        (and (fact long-term a ks a-ks-lt)
+          (fact long-term b ks b-ks-lt))))))
+
+(defskeleton kerberos-variant
+  (vars (b-ks-lt k skey) (t n t-prime l text) (a b ks name))
+  (defstrand resp 2 (b-ks-lt b-ks-lt) (k k) (t t) (n n)
+    (t-prime t-prime) (l l) (a a) (b b) (ks ks))
+  (non-orig b-ks-lt)
+  (traces
+    ((recv (cat (enc a t n k) (enc "ticket" t l k a b ks b-ks-lt)))
+      (send (enc n t-prime k))))
+  (label 7)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton kerberos-variant
+  (vars (b-ks-lt k a-ks-lt skey) (t n t-prime l text) (a b ks name))
+  (defstrand resp 2 (b-ks-lt b-ks-lt) (k k) (t t) (n n)
+    (t-prime t-prime) (l l) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (a-ks-lt a-ks-lt) (b-ks-lt b-ks-lt) (k k) (t t)
+    (l l) (a a) (b b) (ks ks))
+  (precedes ((1 1) (0 0)))
+  (non-orig b-ks-lt a-ks-lt)
+  (uniq-orig k)
+  (facts (long-term b ks b-ks-lt) (long-term a ks a-ks-lt))
+  (operation encryption-test (added-strand keyserver 2)
+    (enc "ticket" t l k a b ks b-ks-lt) (0 0))
+  (traces
+    ((recv (cat (enc a t n k) (enc "ticket" t l k a b ks b-ks-lt)))
+      (send (enc n t-prime k)))
+    ((recv (cat a b ks))
+      (send
+        (cat (enc t l k a b ks a-ks-lt)
+          (enc "ticket" t l k a b ks b-ks-lt)))))
+  (label 8)
+  (parent 7)
+  (unrealized (0 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton kerberos-variant
+  (vars (ticket mesg) (b-ks-lt k a-ks-lt a-ks-lt-0 skey)
+    (t n t-prime l l-0 text) (a b ks b-0 ks-0 name))
+  (defstrand resp 2 (b-ks-lt b-ks-lt) (k k) (t t) (n n)
+    (t-prime t-prime) (l l) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (a-ks-lt a-ks-lt) (b-ks-lt b-ks-lt) (k k) (t t)
+    (l l) (a a) (b b) (ks ks))
+  (defstrand init 3 (ticket ticket) (a-ks-lt a-ks-lt-0) (k k) (t t)
+    (n n) (l l-0) (a a) (b b-0) (ks ks-0))
+  (precedes ((1 1) (2 1)) ((2 2) (0 0)))
+  (non-orig b-ks-lt a-ks-lt)
+  (uniq-orig k)
+  (facts (long-term b ks b-ks-lt) (long-term a ks a-ks-lt))
+  (operation encryption-test (added-strand init 3) (enc a t n k) (0 0))
+  (traces
+    ((recv (cat (enc a t n k) (enc "ticket" t l k a b ks b-ks-lt)))
+      (send (enc n t-prime k)))
+    ((recv (cat a b ks))
+      (send
+        (cat (enc t l k a b ks a-ks-lt)
+          (enc "ticket" t l k a b ks b-ks-lt))))
+    ((send (cat a b-0 ks-0))
+      (recv (cat (enc t l-0 k a b-0 ks-0 a-ks-lt-0) ticket))
+      (send (cat (enc a t n k) ticket))))
+  (label 9)
+  (parent 8)
+  (unrealized (2 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton kerberos-variant
+  (vars (b-ks-lt k a-ks-lt skey) (t n t-prime l text) (a b ks name))
+  (defstrand resp 2 (b-ks-lt b-ks-lt) (k k) (t t) (n n)
+    (t-prime t-prime) (l l) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (a-ks-lt a-ks-lt) (b-ks-lt b-ks-lt) (k k) (t t)
+    (l l) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (2 0)) ((2 1) (0 0)))
+  (non-orig b-ks-lt a-ks-lt)
+  (uniq-orig k)
+  (facts (long-term b ks b-ks-lt) (long-term a ks a-ks-lt))
+  (operation encryption-test (added-listener k) (enc a t n k) (0 0))
+  (traces
+    ((recv (cat (enc a t n k) (enc "ticket" t l k a b ks b-ks-lt)))
+      (send (enc n t-prime k)))
+    ((recv (cat a b ks))
+      (send
+        (cat (enc t l k a b ks a-ks-lt)
+          (enc "ticket" t l k a b ks b-ks-lt)))) ((recv k) (send k)))
+  (label 10)
+  (parent 8)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton kerberos-variant
+  (vars (ticket mesg) (b-ks-lt k a-ks-lt skey) (t n t-prime l text)
+    (a b ks name))
+  (defstrand resp 2 (b-ks-lt b-ks-lt) (k k) (t t) (n n)
+    (t-prime t-prime) (l l) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (a-ks-lt a-ks-lt) (b-ks-lt b-ks-lt) (k k) (t t)
+    (l l) (a a) (b b) (ks ks))
+  (defstrand init 3 (ticket ticket) (a-ks-lt a-ks-lt) (k k) (t t) (n n)
+    (l l) (a a) (b b) (ks ks))
+  (precedes ((1 1) (2 1)) ((2 2) (0 0)))
+  (non-orig b-ks-lt a-ks-lt)
+  (uniq-orig k)
+  (facts (long-term b ks b-ks-lt) (long-term a ks a-ks-lt))
+  (operation nonce-test
+    (contracted (b-0 b) (ks-0 ks) (l-0 l) (a-ks-lt-0 a-ks-lt)) k (2 1)
+    (enc "ticket" t l k a b ks b-ks-lt) (enc t l k a b ks a-ks-lt))
+  (traces
+    ((recv (cat (enc a t n k) (enc "ticket" t l k a b ks b-ks-lt)))
+      (send (enc n t-prime k)))
+    ((recv (cat a b ks))
+      (send
+        (cat (enc t l k a b ks a-ks-lt)
+          (enc "ticket" t l k a b ks b-ks-lt))))
+    ((send (cat a b ks)) (recv (cat (enc t l k a b ks a-ks-lt) ticket))
+      (send (cat (enc a t n k) ticket))))
+  (label 11)
+  (parent 9)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (ks ks) (b-ks-lt b-ks-lt) (t t) (n n)
+        (t-prime t-prime) (l l) (k k))))
+  (origs (k (1 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol kerberos-variant basic
+  (defrole init
+    (vars (a b ks name) (t n t-prime l text) (a-ks-lt k skey)
+      (ticket mesg))
+    (trace (send (cat a b ks))
+      (recv (cat (enc t l k a b ks a-ks-lt) ticket))
+      (send (cat (enc a t n k) ticket)) (recv (enc n t-prime k))))
+  (defrole resp
+    (vars (a b ks name) (t n t-prime l text) (b-ks-lt k skey))
+    (trace
+      (recv (cat (enc a t n k) (enc "ticket" t l k a b ks b-ks-lt)))
+      (send (enc n t-prime k))))
+  (defrole keyserver
+    (vars (a b ks name) (t l text) (a-ks-lt b-ks-lt k skey))
+    (trace (recv (cat a b ks))
+      (send
+        (cat (enc t l k a b ks a-ks-lt)
+          (enc "ticket" t l k a b ks b-ks-lt))))
+    (uniq-orig k))
+  (defrule long-term-key-non
+    (forall ((p ks name) (k-lt skey))
+      (implies (fact long-term p ks k-lt) (non k-lt))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule guar-keyserver-2
+    (forall ((z strd) (a-ks-lt b-ks-lt skey) (ks a b name))
+      (implies
+        (and (p "keyserver" z 2) (p "keyserver" "a-ks-lt" z a-ks-lt)
+          (p "keyserver" "b-ks-lt" z b-ks-lt) (p "keyserver" "ks" z ks)
+          (p "keyserver" "a" z a) (p "keyserver" "b" z b))
+        (and (fact long-term a ks a-ks-lt)
+          (fact long-term b ks b-ks-lt))))))
+
+(defskeleton kerberos-variant
+  (vars (a-ks-lt b-ks-lt k skey) (t l text) (a b ks name))
+  (defstrand keyserver 2 (a-ks-lt a-ks-lt) (b-ks-lt b-ks-lt) (k k) (t t)
+    (l l) (a a) (b b) (ks ks))
+  (uniq-orig k)
+  (traces
+    ((recv (cat a b ks))
+      (send
+        (cat (enc t l k a b ks a-ks-lt)
+          (enc "ticket" t l k a b ks b-ks-lt)))))
+  (label 12)
+  (realized)
+  (origs (k (0 1)))
+  (comment "Not closed under rules"))
+
+(defskeleton kerberos-variant
+  (vars (a-ks-lt b-ks-lt k skey) (t l text) (a b ks name))
+  (defstrand keyserver 2 (a-ks-lt a-ks-lt) (b-ks-lt b-ks-lt) (k k) (t t)
+    (l l) (a a) (b b) (ks ks))
+  (non-orig a-ks-lt b-ks-lt)
+  (uniq-orig k)
+  (facts (long-term b ks b-ks-lt) (long-term a ks a-ks-lt))
+  (traces
+    ((recv (cat a b ks))
+      (send
+        (cat (enc t l k a b ks a-ks-lt)
+          (enc "ticket" t l k a b ks b-ks-lt)))))
+  (label 13)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (ks ks) (a-ks-lt a-ks-lt) (b-ks-lt b-ks-lt) (t t)
+        (l l) (k k))))
+  (origs (k (0 1))))
+
+(comment "Nothing left to do")
diff --git a/doc/src/cpsa4manual/examples/minipay-guar.scm b/doc/src/cpsa4manual/examples/minipay-guar.scm
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/minipay-guar.scm
@@ -0,0 +1,174 @@
+(herald minipay-guar
+	(try-old-strands)
+	(bound 16)
+	;; (limit 5000)
+	)
+
+(defprotocol minipay-guar basic
+  (defrole cust
+    (vars (c m b name) (cost amount) (item merchandise)
+	  (merc-conf bank-conf btr mtr text) (account acct) (n ncb ncm data))
+    (trace
+     ;; the customer chooses an item and cost...
+     (guar (fact buy-via c m b item cost n))
+     ;; the customer submits item and cost,
+     ;; as well as confidential values merc-conf, bank-conf
+     ;; to be shared only with the named peer.  A commitment
+     ;; will be shared with other peer.
+     ;; bank never learns item.
+     (send (enc n cost item merc-conf ncm
+		(hash n (hash ncb bank-conf))
+		(sign (order c m b cost
+			     (enc n cost account bank-conf ncb
+				  (hash n (hash ncm item merc-conf))
+				  (pubk "enc" b)))
+		      (privk "sig" c))
+		(pubk "enc" m)))
+
+     ;; signed payment info from bank
+     (recv (sign (bconf (hash c m b n cost
+			      (hash n (hash ncm item merc-conf)))
+			btr mtr)
+		 (privk "sig" b)))
+
+     ;; signed shipping form from merchant
+     (recv (sign (mconf (hash c m b n item cost
+			      (hash n (hash ncb bank-conf)))
+			btr mtr)
+		 (privk "sig" m))))
+    (facts (neq n ncb) (neq n ncm) (neq ncm ncb))
+    )
+
+  (defrole merc
+    (vars (c m b name) (cost amount) (item merchandise)
+	  (merc-conf bank-conf btr mtr text) (n ncm data)
+	  (for-bank bank-conf-commit bank-conf-decommit mesg))
+    (trace
+     (recv (enc n cost item merc-conf ncm
+		bank-conf-commit
+		(sign (order c m b cost for-bank)
+		      (privk "sig" c))
+		(pubk "enc" m)))
+     ;; transmit payment request to bank
+     (send (enc (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+			 (cat (sign (order c m b cost for-bank)
+				    (privk "sig" c))
+			      for-bank))
+		 (pubk "enc" b)))
+     ;; receive payment offer and decommit for bank-conf
+     (recv (enc bank-conf-decommit
+		(sign (bconf (hash c m b n cost (hash n (hash ncm item merc-conf))) btr mtr)
+		      (privk "sig" b))
+		(pubk "enc" m)))
+     (cheq bank-conf-commit (hash n bank-conf-decommit))
+
+     ;; Now commit to shipping the goods
+     (guar (fact will-ship c m b item mtr))
+     ;; return signed info to customer
+     (send (sign (bconf (hash c m b n cost (hash n (hash ncm item merc-conf))) btr mtr)
+		 (privk "sig" b)))
+     (send (sign (mconf (hash c m b n item cost (hash n bank-conf-decommit)) btr mtr)
+		 (privk "sig" m))))
+    (uniq-orig mtr)
+    ;; (facts (neq n ncm))
+    )
+
+  (defrole bank
+    (vars (c m b name) (cost amount)
+	  (merc-conf bank-conf btr mtr text) (merc-conf-decommit mesg) (account acct) (n ncb data))
+    (trace
+     ;; receive payment requests from merchant and customer,
+     ;; including decommit for merc-conf
+     (recv (enc (payreq c m b (hash cost n) merc-conf-decommit mtr
+			 (cat
+			  (sign (order c m b cost
+				       (enc n cost account bank-conf ncb
+					    (hash n merc-conf-decommit) (pubk "enc" b)))
+				(privk "sig" c))
+			  (enc n cost account bank-conf ncb
+			       (hash n merc-conf-decommit)
+			       (pubk "enc" b))))
+		 (pubk "enc" b)))
+
+     ;; Do not proceed unless customer signature trustworthy
+     ;; Given that, now commit to transferring the funds
+     (guar (and (non (privk "sig" c))
+		(fact will-transfer c m b cost n mtr btr)))
+     ;; send payment offer
+     (send (enc (hash ncb bank-conf)
+		(sign (bconf (hash c m b n cost (hash n merc-conf-decommit)) btr mtr)
+		      (privk "sig" b))
+		(pubk "enc" m))))
+    (uniq-orig btr)
+;;    (facts (neq n ncb))
+    )
+
+  (lang (acct atom)
+	(amount atom)
+	(merchandise atom)
+	(sign sign)
+	(order (tuple 5))
+	(bconf (tuple 3))
+	(mconf (tuple 3))
+	(payreq (tuple 7))))
+
+(defgoal minipay-guar
+  (forall
+   ((z strd) (c m b name) (cost amount) (n data) (mtr btr text))
+   (implies
+    (and (p "cust" z 2)
+	 (p "cust" "c" z c)
+	 (p "cust" "m" z m)
+	 (p "cust" "b" z b)
+	 (p "cust" "cost" z cost)
+	 (p "cust" "n" z n)
+	 (p "cust" "mtr" z mtr)
+	 (p "cust" "btr" z btr)
+	 (non (privk "sig" b)))
+    (fact will-transfer c m b cost n mtr btr))))
+
+(defgoal minipay-guar
+  (forall
+   ((z strd) (c m b name) (item merchandise) (n data) (mtr btr text))
+   (implies
+    (and (p "cust" z 3)
+	 (p "cust" "c" z c)
+	 (p "cust" "m" z m)
+	 (p "cust" "b" z b)
+	 (p "cust" "item" z item)
+	 (p "cust" "n" z n)
+	 (p "cust" "mtr" z mtr)
+	 (p "cust" "btr" z btr)
+	 (non (privk "sig" m)))
+    (fact will-ship c m b item mtr))))
+
+(defgoal minipay-guar
+  (forall
+   ((z strd) (c m b name) (item merchandise) (cost amount) (n data) (mtr btr text))
+   (implies
+    (and (p "merc" z 3)
+	 (p "merc" "c" z c)
+	 (p "merc" "m" z m)
+	 (p "merc" "b" z b)
+	 (p "merc" "item" z item)
+	 (p "merc" "cost" z cost)
+	 (p "merc" "n" z n)
+	 (p "merc" "mtr" z mtr)
+	 (p "merc" "btr" z btr)
+	 (non (privk "sig" b)))
+    (and (fact will-transfer c m b cost n mtr btr)
+	 (fact buy-via c m b item cost n)))))
+
+(defgoal minipay-guar
+  (forall
+   ((z strd) (c m b name) (cost amount) (n data))
+   (implies
+    (and (p "bank" z 1)
+	 (p "bank" "c" z c)
+	 (p "bank" "m" z m)
+	 (p "bank" "b" z b)
+	 (p "bank" "cost" z cost)
+	 (p "bank" "n" z n)
+	 (non (privk "sig" c)))
+    (exists ((item merchandise))
+	    (fact buy-via c m b item cost n)))))
diff --git a/doc/src/cpsa4manual/examples/minipay-guar.tst b/doc/src/cpsa4manual/examples/minipay-guar.tst
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/minipay-guar.tst
@@ -0,0 +1,1429 @@
+(herald minipay-guar (try-old-strands) (bound 16))
+
+(comment "CPSA 4.4.0")
+(comment "All input read from minipay-guar.scm")
+(comment "Strand count bounded at 16")
+(comment "Old strands tried first")
+
+(defprotocol minipay-guar basic
+  (defrole cust
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf bank-conf btr mtr text) (account acct)
+      (n ncb ncm data))
+    (trace
+      (send
+        (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    (facts (neq n ncb) (neq n ncm) (neq ncm ncb)))
+  (defrole merc
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf btr mtr text) (n ncm data)
+      (for-bank bank-conf-commit bank-conf-decommit mesg))
+    (trace
+      (recv
+        (enc n cost item merc-conf ncm bank-conf-commit
+          (sign (order c m b cost for-bank) (privk "sig" c))
+          (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n bank-conf-decommit))
+            btr mtr) (privk "sig" m))))
+    (uniq-orig mtr))
+  (defrole bank
+    (vars (c m b name) (cost amount) (bank-conf btr mtr text)
+      (merc-conf-decommit mesg) (account acct) (n ncb data))
+    (trace
+      (recv
+        (enc
+          (payreq c m b (hash cost n) merc-conf-decommit mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n merc-conf-decommit) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n merc-conf-decommit) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf (hash c m b n cost (hash n merc-conf-decommit)) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    (uniq-orig btr))
+  (defrule guar-cust-1
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "item" z item)
+          (p "cust" "b" z b) (p "cust" "m" z m) (p "cust" "c" z c))
+        (fact buy-via c m b item cost n))))
+  (defrule guar-merc-4
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "mtr" z mtr)
+          (p "merc" "item" z item) (p "merc" "b" z b) (p "merc" "m" z m)
+          (p "merc" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule guar-bank-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (c b m name))
+      (implies
+        (and (p "bank" z (idx 2)) (p "bank" "btr" z btr)
+          (p "bank" "mtr" z mtr) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "c" z c) (p "bank" "b" z b)
+          (p "bank" "m" z m))
+        (and (non (privk "sig" c))
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule cheq-merc-4
+    (forall
+      ((z strd) (n data) (bank-conf-decommit bank-conf-commit mesg))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "n" z n)
+          (p "merc" "bank-conf-decommit" z bank-conf-decommit)
+          (p "merc" "bank-conf-commit" z bank-conf-commit))
+        (= bank-conf-commit (hash n bank-conf-decommit)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule fact-cust-neq2
+    (forall ((z strd) (ncb n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "n" z n)) (fact neq n ncb))))
+  (defgenrule fact-cust-neq1
+    (forall ((z strd) (ncm n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncm" z ncm)
+          (p "cust" "n" z n)) (fact neq n ncm))))
+  (defgenrule fact-cust-neq0
+    (forall ((z strd) (ncb ncm data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "ncm" z ncm)) (fact neq ncm ncb))))
+  (lang (acct atom) (amount atom) (merchandise atom) (sign sign)
+    (order (tuple 5)) (bconf (tuple 3)) (mconf (tuple 3))
+    (payreq (tuple 7))))
+
+(defskeleton minipay-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (mtr btr merc-conf bank-conf text) (c m b name))
+  (defstrand cust 2 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (non-orig (privk "sig" b))
+  (goals
+    (forall
+      ((z strd) (c m b name) (cost amount) (n data) (mtr btr text))
+      (implies
+        (and (p "cust" z 2) (p "cust" "c" z c) (p "cust" "m" z m)
+          (p "cust" "b" z b) (p "cust" "cost" z cost) (p "cust" "n" z n)
+          (p "cust" "mtr" z mtr) (p "cust" "btr" z btr)
+          (non (privk "sig" b)))
+        (fact will-transfer c m b cost n mtr btr))))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))))
+  (label 0)
+  (unrealized (0 1))
+  (origs)
+  (comment "Not closed under rules"))
+
+(defskeleton minipay-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (mtr btr merc-conf bank-conf text) (c m b name))
+  (defstrand cust 2 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (non-orig (privk "sig" b))
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-cust-1)
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-guar
+  (vars (account account-0 acct) (cost amount) (n ncb ncm ncb-0 data)
+    (item merchandise) (mtr btr merc-conf bank-conf bank-conf-0 text)
+    (c m b name))
+  (defstrand cust 2 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk "sig" c) (privk "sig" b))
+  (uniq-orig btr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand bank 2)
+    (sign
+      (bconf (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+        mtr) (privk "sig" b)) (0 1))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 2)
+  (parent 1)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (mtr btr merc-conf bank-conf text) (c m b name))
+  (defstrand cust 2 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk "sig" c) (privk "sig" b))
+  (uniq-orig btr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 2 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf-0 ncb-0
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 3)
+  (parent 2)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((0)
+      ((c c) (m m) (b b) (cost cost) (n n) (mtr mtr) (btr btr)
+        (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+        (account account) (ncb ncb) (ncm ncm))))
+  (origs (btr (1 1))))
+
+(defskeleton minipay-guar
+  (vars (account account-0 acct) (cost amount) (n ncb ncm ncb-0 data)
+    (item merchandise) (mtr btr merc-conf bank-conf bank-conf-0 text)
+    (c m b name))
+  (defstrand cust 2 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf-0)
+    (c c) (m m) (b b))
+  (precedes ((1 1) (0 1)) ((2 0) (1 0)))
+  (non-orig (privk "sig" c) (privk "sig" b))
+  (uniq-orig btr)
+  (facts (neq n ncb-0) (neq n ncb) (neq n ncm) (neq ncm ncb-0)
+    (neq ncm ncb) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf-0 ncb-0
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 4)
+  (parent 2)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((0)
+      ((c c) (m m) (b b) (cost cost) (n n) (mtr mtr) (btr btr)
+        (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+        (account account) (ncb ncb) (ncm ncm))))
+  (origs (btr (1 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol minipay-guar basic
+  (defrole cust
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf bank-conf btr mtr text) (account acct)
+      (n ncb ncm data))
+    (trace
+      (send
+        (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    (facts (neq n ncb) (neq n ncm) (neq ncm ncb)))
+  (defrole merc
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf btr mtr text) (n ncm data)
+      (for-bank bank-conf-commit bank-conf-decommit mesg))
+    (trace
+      (recv
+        (enc n cost item merc-conf ncm bank-conf-commit
+          (sign (order c m b cost for-bank) (privk "sig" c))
+          (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n bank-conf-decommit))
+            btr mtr) (privk "sig" m))))
+    (uniq-orig mtr))
+  (defrole bank
+    (vars (c m b name) (cost amount) (bank-conf btr mtr text)
+      (merc-conf-decommit mesg) (account acct) (n ncb data))
+    (trace
+      (recv
+        (enc
+          (payreq c m b (hash cost n) merc-conf-decommit mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n merc-conf-decommit) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n merc-conf-decommit) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf (hash c m b n cost (hash n merc-conf-decommit)) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    (uniq-orig btr))
+  (defrule guar-cust-1
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "item" z item)
+          (p "cust" "b" z b) (p "cust" "m" z m) (p "cust" "c" z c))
+        (fact buy-via c m b item cost n))))
+  (defrule guar-merc-4
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "mtr" z mtr)
+          (p "merc" "item" z item) (p "merc" "b" z b) (p "merc" "m" z m)
+          (p "merc" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule guar-bank-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (c b m name))
+      (implies
+        (and (p "bank" z (idx 2)) (p "bank" "btr" z btr)
+          (p "bank" "mtr" z mtr) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "c" z c) (p "bank" "b" z b)
+          (p "bank" "m" z m))
+        (and (non (privk "sig" c))
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule cheq-merc-4
+    (forall
+      ((z strd) (n data) (bank-conf-decommit bank-conf-commit mesg))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "n" z n)
+          (p "merc" "bank-conf-decommit" z bank-conf-decommit)
+          (p "merc" "bank-conf-commit" z bank-conf-commit))
+        (= bank-conf-commit (hash n bank-conf-decommit)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule fact-cust-neq2
+    (forall ((z strd) (ncb n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "n" z n)) (fact neq n ncb))))
+  (defgenrule fact-cust-neq1
+    (forall ((z strd) (ncm n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncm" z ncm)
+          (p "cust" "n" z n)) (fact neq n ncm))))
+  (defgenrule fact-cust-neq0
+    (forall ((z strd) (ncb ncm data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "ncm" z ncm)) (fact neq ncm ncb))))
+  (lang (acct atom) (amount atom) (merchandise atom) (sign sign)
+    (order (tuple 5)) (bconf (tuple 3)) (mconf (tuple 3))
+    (payreq (tuple 7))))
+
+(defskeleton minipay-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (mtr btr merc-conf bank-conf text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (non-orig (privk "sig" m))
+  (goals
+    (forall
+      ((z strd) (c m b name) (item merchandise) (n data) (mtr btr text))
+      (implies
+        (and (p "cust" z 3) (p "cust" "c" z c) (p "cust" "m" z m)
+          (p "cust" "b" z b) (p "cust" "item" z item) (p "cust" "n" z n)
+          (p "cust" "mtr" z mtr) (p "cust" "btr" z btr)
+          (non (privk "sig" m))) (fact will-ship c m b item mtr))))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m)))))
+  (label 5)
+  (unrealized (0 2))
+  (origs)
+  (comment "Not closed under rules"))
+
+(defskeleton minipay-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (mtr btr merc-conf bank-conf text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (non-orig (privk "sig" m))
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-cust-1)
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m)))))
+  (label 6)
+  (parent 5)
+  (unrealized (0 2))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-guar
+  (vars (for-bank mesg) (account acct) (cost amount)
+    (n ncb ncm ncm-0 data) (item merchandise)
+    (mtr btr merc-conf bank-conf merc-conf-0 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5 (for-bank for-bank)
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm-0) (item item) (merc-conf merc-conf-0) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (precedes ((1 1) (0 1)) ((1 4) (0 2)))
+  (non-orig (privk "sig" m))
+  (uniq-orig mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr))
+  (rule cheq-merc-4 fact-cust-neq0 fact-cust-neq1 fact-cust-neq2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (added-strand merc 5)
+    (sign
+      (mconf (hash c m b n item cost (hash n (hash ncb bank-conf))) btr
+        mtr) (privk "sig" m)) (0 2))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf-0 ncm-0 (hash n (hash ncb bank-conf))
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item merc-conf-0) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm-0 item merc-conf-0)))
+              btr mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf
+            (hash c m b n cost (hash n (hash ncm-0 item merc-conf-0)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m)))))
+  (label 7)
+  (parent 6)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((0)
+      ((c c) (m m) (b b) (item item) (n n) (mtr mtr) (btr btr)
+        (cost cost) (merc-conf merc-conf) (bank-conf bank-conf)
+        (account account) (ncb ncb) (ncm ncm))))
+  (origs (mtr (1 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol minipay-guar basic
+  (defrole cust
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf bank-conf btr mtr text) (account acct)
+      (n ncb ncm data))
+    (trace
+      (send
+        (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    (facts (neq n ncb) (neq n ncm) (neq ncm ncb)))
+  (defrole merc
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf btr mtr text) (n ncm data)
+      (for-bank bank-conf-commit bank-conf-decommit mesg))
+    (trace
+      (recv
+        (enc n cost item merc-conf ncm bank-conf-commit
+          (sign (order c m b cost for-bank) (privk "sig" c))
+          (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n bank-conf-decommit))
+            btr mtr) (privk "sig" m))))
+    (uniq-orig mtr))
+  (defrole bank
+    (vars (c m b name) (cost amount) (bank-conf btr mtr text)
+      (merc-conf-decommit mesg) (account acct) (n ncb data))
+    (trace
+      (recv
+        (enc
+          (payreq c m b (hash cost n) merc-conf-decommit mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n merc-conf-decommit) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n merc-conf-decommit) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf (hash c m b n cost (hash n merc-conf-decommit)) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    (uniq-orig btr))
+  (defrule guar-cust-1
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "item" z item)
+          (p "cust" "b" z b) (p "cust" "m" z m) (p "cust" "c" z c))
+        (fact buy-via c m b item cost n))))
+  (defrule guar-merc-4
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "mtr" z mtr)
+          (p "merc" "item" z item) (p "merc" "b" z b) (p "merc" "m" z m)
+          (p "merc" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule guar-bank-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (c b m name))
+      (implies
+        (and (p "bank" z (idx 2)) (p "bank" "btr" z btr)
+          (p "bank" "mtr" z mtr) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "c" z c) (p "bank" "b" z b)
+          (p "bank" "m" z m))
+        (and (non (privk "sig" c))
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule cheq-merc-4
+    (forall
+      ((z strd) (n data) (bank-conf-decommit bank-conf-commit mesg))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "n" z n)
+          (p "merc" "bank-conf-decommit" z bank-conf-decommit)
+          (p "merc" "bank-conf-commit" z bank-conf-commit))
+        (= bank-conf-commit (hash n bank-conf-decommit)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule fact-cust-neq2
+    (forall ((z strd) (ncb n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "n" z n)) (fact neq n ncb))))
+  (defgenrule fact-cust-neq1
+    (forall ((z strd) (ncm n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncm" z ncm)
+          (p "cust" "n" z n)) (fact neq n ncm))))
+  (defgenrule fact-cust-neq0
+    (forall ((z strd) (ncb ncm data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "ncm" z ncm)) (fact neq ncm ncb))))
+  (lang (acct atom) (amount atom) (merchandise atom) (sign sign)
+    (order (tuple 5)) (bconf (tuple 3)) (mconf (tuple 3))
+    (payreq (tuple 7))))
+
+(defskeleton minipay-guar
+  (vars (for-bank bank-conf-commit bank-conf-decommit mesg)
+    (cost amount) (n ncm data) (item merchandise)
+    (mtr btr merc-conf text) (c m b name))
+  (defstrand merc 3 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (non-orig (privk "sig" b))
+  (uniq-orig mtr)
+  (goals
+    (forall
+      ((z strd) (c m b name) (item merchandise) (cost amount) (n data)
+        (mtr btr text))
+      (implies
+        (and (p "merc" z 3) (p "merc" "c" z c) (p "merc" "m" z m)
+          (p "merc" "b" z b) (p "merc" "item" z item)
+          (p "merc" "cost" z cost) (p "merc" "n" z n)
+          (p "merc" "mtr" z mtr) (p "merc" "btr" z btr)
+          (non (privk "sig" b)))
+        (and (fact will-transfer c m b cost n mtr btr)
+          (fact buy-via c m b item cost n)))))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 8)
+  (unrealized (0 2))
+  (origs (mtr (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-guar
+  (vars (for-bank bank-conf-commit bank-conf-decommit mesg)
+    (account acct) (cost amount) (n ncm ncb data) (item merchandise)
+    (mtr btr merc-conf bank-conf text) (c m b name))
+  (defstrand merc 3 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk "sig" c) (privk "sig" b))
+  (uniq-orig mtr btr)
+  (facts (will-transfer c m b cost n mtr btr))
+  (rule guar-bank-2)
+  (operation encryption-test (added-strand bank 2)
+    (sign
+      (bconf (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+        mtr) (privk "sig" b)) (0 2))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 9)
+  (parent 8)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-guar
+  (vars (bank-conf-commit bank-conf-decommit mesg)
+    (account account-0 acct) (cost amount)
+    (n ncm ncb n-0 ncb-0 ncm-0 data) (item item-0 merchandise)
+    (mtr btr merc-conf bank-conf merc-conf-0 bank-conf-0 text)
+    (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n-0) (ncb ncb-0)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)))
+  (non-orig (privk "sig" c) (privk "sig" b))
+  (uniq-orig mtr btr)
+  (facts (neq n-0 ncb-0) (neq n-0 ncm-0) (neq ncm-0 ncb-0)
+    (buy-via c m b item-0 cost n-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n-0 cost account-0 bank-conf-0 ncb-0
+          (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))))
+  (label 10)
+  (parent 9)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-guar
+  (vars (bank-conf-commit bank-conf-decommit mesg) (account acct)
+    (cost amount) (n ncb ncm data) (item merchandise)
+    (mtr btr merc-conf bank-conf text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)))
+  (non-orig (privk "sig" c) (privk "sig" b))
+  (uniq-orig mtr btr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 3 2 cust 1)
+    (sign
+      (order c m b cost
+        (enc n-0 cost account-0 bank-conf-0 ncb-0
+          (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 11)
+  (parent 10)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((0)
+      ((c c) (m m) (b b) (item item) (cost cost) (n n) (mtr mtr)
+        (btr btr) (merc-conf merc-conf) (ncm ncm)
+        (for-bank
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (bank-conf-commit bank-conf-commit)
+        (bank-conf-decommit bank-conf-decommit))))
+  (origs (btr (1 1)) (mtr (0 1))))
+
+(defskeleton minipay-guar
+  (vars (bank-conf-commit bank-conf-decommit mesg)
+    (account account-0 acct) (cost amount)
+    (n ncm ncb n-0 ncb-0 ncm-0 data) (item item-0 merchandise)
+    (mtr btr merc-conf bank-conf merc-conf-0 bank-conf-0 text)
+    (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n-0) (ncb ncb-0)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 0) (1 0)))
+  (non-orig (privk "sig" c) (privk "sig" b))
+  (uniq-orig mtr btr)
+  (facts (neq n ncb) (neq n-0 ncb-0) (neq n ncm) (neq n-0 ncm-0)
+    (neq ncm ncb) (neq ncm-0 ncb-0) (buy-via c m b item cost n)
+    (buy-via c m b item-0 cost n-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 12)
+  (parent 10)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((0)
+      ((c c) (m m) (b b) (item item) (cost cost) (n n) (mtr mtr)
+        (btr btr) (merc-conf merc-conf) (ncm ncm)
+        (for-bank
+          (enc n-0 cost account-0 bank-conf-0 ncb-0
+            (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+        (bank-conf-commit bank-conf-commit)
+        (bank-conf-decommit bank-conf-decommit))))
+  (origs (btr (1 1)) (mtr (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol minipay-guar basic
+  (defrole cust
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf bank-conf btr mtr text) (account acct)
+      (n ncb ncm data))
+    (trace
+      (send
+        (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    (facts (neq n ncb) (neq n ncm) (neq ncm ncb)))
+  (defrole merc
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf btr mtr text) (n ncm data)
+      (for-bank bank-conf-commit bank-conf-decommit mesg))
+    (trace
+      (recv
+        (enc n cost item merc-conf ncm bank-conf-commit
+          (sign (order c m b cost for-bank) (privk "sig" c))
+          (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n bank-conf-decommit))
+            btr mtr) (privk "sig" m))))
+    (uniq-orig mtr))
+  (defrole bank
+    (vars (c m b name) (cost amount) (bank-conf btr mtr text)
+      (merc-conf-decommit mesg) (account acct) (n ncb data))
+    (trace
+      (recv
+        (enc
+          (payreq c m b (hash cost n) merc-conf-decommit mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n merc-conf-decommit) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n merc-conf-decommit) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf (hash c m b n cost (hash n merc-conf-decommit)) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    (uniq-orig btr))
+  (defrule guar-cust-1
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "item" z item)
+          (p "cust" "b" z b) (p "cust" "m" z m) (p "cust" "c" z c))
+        (fact buy-via c m b item cost n))))
+  (defrule guar-merc-4
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "mtr" z mtr)
+          (p "merc" "item" z item) (p "merc" "b" z b) (p "merc" "m" z m)
+          (p "merc" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule guar-bank-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (c b m name))
+      (implies
+        (and (p "bank" z (idx 2)) (p "bank" "btr" z btr)
+          (p "bank" "mtr" z mtr) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "c" z c) (p "bank" "b" z b)
+          (p "bank" "m" z m))
+        (and (non (privk "sig" c))
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule cheq-merc-4
+    (forall
+      ((z strd) (n data) (bank-conf-decommit bank-conf-commit mesg))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "n" z n)
+          (p "merc" "bank-conf-decommit" z bank-conf-decommit)
+          (p "merc" "bank-conf-commit" z bank-conf-commit))
+        (= bank-conf-commit (hash n bank-conf-decommit)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule fact-cust-neq2
+    (forall ((z strd) (ncb n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "n" z n)) (fact neq n ncb))))
+  (defgenrule fact-cust-neq1
+    (forall ((z strd) (ncm n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncm" z ncm)
+          (p "cust" "n" z n)) (fact neq n ncm))))
+  (defgenrule fact-cust-neq0
+    (forall ((z strd) (ncb ncm data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "ncm" z ncm)) (fact neq ncm ncb))))
+  (lang (acct atom) (amount atom) (merchandise atom) (sign sign)
+    (order (tuple 5)) (bconf (tuple 3)) (mconf (tuple 3))
+    (payreq (tuple 7))))
+
+(defskeleton minipay-guar
+  (vars (merc-conf-decommit mesg) (account acct) (cost amount)
+    (n ncb data) (bank-conf mtr text) (c m b name))
+  (defstrand bank 1 (merc-conf-decommit merc-conf-decommit)
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (mtr mtr) (c c) (m m) (b b))
+  (non-orig (privk "sig" c))
+  (goals
+    (forall ((z strd) (c m b name) (cost amount) (n data))
+      (implies
+        (and (p "bank" z 1) (p "bank" "c" z c) (p "bank" "m" z m)
+          (p "bank" "b" z b) (p "bank" "cost" z cost) (p "bank" "n" z n)
+          (non (privk "sig" c)))
+        (exists ((item merchandise))
+          (fact buy-via c m b item cost n)))))
+  (traces
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) merc-conf-decommit mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n merc-conf-decommit) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n merc-conf-decommit) (pubk "enc" b))))
+         (pubk "enc" b)))))
+  (label 13)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf mtr merc-conf text) (c m b name))
+  (defstrand bank 1 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "sig" c))
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0))
+  (traces
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 14)
+  (parent 13)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((0)
+      ((c c) (m m) (b b) (cost cost) (n n) (bank-conf bank-conf)
+        (mtr mtr) (merc-conf-decommit (hash ncm item merc-conf))
+        (account account) (ncb ncb))))
+  (origs))
+
+(comment "Nothing left to do")
diff --git a/doc/src/cpsa4manual/examples/minipay-rely-guar.scm b/doc/src/cpsa4manual/examples/minipay-rely-guar.scm
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/minipay-rely-guar.scm
@@ -0,0 +1,203 @@
+(herald minipay-rely-guar
+	(try-old-strands)
+	(bound 16)
+	;; (limit 5000)
+	)
+
+(defprotocol minipay-rely-guar basic
+  (defrole cust
+    (vars (c m b name) (cost amount) (item merchandise)
+	  (merc-conf bank-conf btr mtr text) (account acct) (n ncb ncm data))
+    (trace
+     ;; the customer chooses an item and cost...
+     (guar (fact buy-via c m b item cost n))
+     ;; the customer submits item and cost,
+     ;; as well as confidential values merc-conf, bank-conf
+     ;; to be shared only with the named peer.  A commitment
+     ;; will be shared with other peer.
+     ;; bank never learns item.
+     (send (enc n cost item merc-conf ncm
+		(hash n (hash ncb bank-conf))
+		(sign (order c m b cost
+			     (enc n cost account bank-conf ncb
+				  (hash n (hash ncm item merc-conf))
+				  (pubk "enc" b)))
+		      (privk "sig" c))
+		(pubk "enc" m)))
+
+     ;; signed payment info from bank
+     (recv (sign (bconf (hash c m b n cost
+			      (hash n (hash ncm item merc-conf)))
+			btr mtr)
+		 (privk "sig" b)))
+     (rely (fact will-transfer c m b cost n mtr btr))
+
+     ;; signed shipping form from merchant
+     (recv (sign (mconf (hash c m b n item cost
+			      (hash n (hash ncb bank-conf)))
+			btr mtr)
+		 (privk "sig" m)))
+     (rely (fact will-ship c m b item mtr)))
+    (facts (neq n ncb) (neq n ncm) (neq ncm ncb))
+    )
+
+  (defrole merc
+    (vars (c m b name) (cost amount) (item merchandise)
+	  (merc-conf bank-conf btr mtr text) (n ncm data)
+	  (for-bank bank-conf-commit bank-conf-decommit mesg))
+    (trace
+     (recv (enc n cost item merc-conf ncm
+		bank-conf-commit
+		(sign (order c m b cost for-bank)
+		      (privk "sig" c))
+		(pubk "enc" m)))
+     ;; transmit payment request to bank
+     (send (enc (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+			 (cat (sign (order c m b cost for-bank)
+				    (privk "sig" c))
+			      for-bank))
+		 (pubk "enc" b)))
+     ;; receive payment offer and decommit for bank-conf
+     (recv (enc bank-conf-decommit
+		(sign (bconf (hash c m b n cost (hash n (hash ncm item merc-conf))) btr mtr)
+		      (privk "sig" b))
+		(pubk "enc" m)))
+     (cheq bank-conf-commit (hash n bank-conf-decommit))
+     (rely (and (fact buy-via c m b item cost n)
+		(fact will-transfer c m b cost n mtr btr)))
+
+     ;; Now commit to shipping the goods
+     (guar (fact will-ship c m b item mtr))
+     ;; return signed info to customer
+     (send (sign (bconf (hash c m b n cost (hash n (hash ncm item merc-conf))) btr mtr)
+		 (privk "sig" b)))
+     (send (sign (mconf (hash c m b n item cost (hash n bank-conf-decommit)) btr mtr)
+		 (privk "sig" m))))
+    (uniq-orig mtr)
+    ;; (facts (neq n ncm))
+    )
+
+  (defrole bank
+    (vars (c m b name) (cost amount)
+	  (merc-conf bank-conf btr mtr text) (merc-conf-decommit mesg) (account acct) (n ncb data))
+    (trace
+     ;; receive payment requests from merchant and customer,
+     ;; including decommit for merc-conf
+     (recv (enc (payreq c m b (hash cost n) merc-conf-decommit mtr
+			(cat
+			 (sign (order c m b cost
+				      (enc n cost account bank-conf ncb
+					   (hash n merc-conf-decommit) (pubk "enc" b)))
+			       (privk "sig" c))
+			 (enc n cost account bank-conf ncb
+			      (hash n merc-conf-decommit)
+			      (pubk "enc" b))))
+		(pubk "enc" b)))
+     (rely (exists ((item merchandise))
+		   (fact buy-via c m b item cost n)))
+
+     ;; Do not proceed unless customer signature trustworthy
+     ;; Given that, now commit to transferring the funds
+     (guar (and (non (privk "sig" c))
+		(fact will-transfer c m b cost n mtr btr)))
+     ;; send payment offer
+     (send (enc (hash ncb bank-conf)
+		(sign (bconf (hash c m b n cost (hash n merc-conf-decommit)) btr mtr)
+		      (privk "sig" b))
+		(pubk "enc" m))))
+    (uniq-orig btr)
+;;    (facts (neq n ncb))
+    )
+
+  (lang (acct atom)
+	(amount atom)
+	(merchandise atom)
+	(sign sign)
+	(order (tuple 5))
+	(bconf (tuple 3))
+	(mconf (tuple 3))
+	(payreq (tuple 7))))
+
+(defskeleton minipay-rely-guar
+  (vars (c m b name) (cost item merc-conf bank-conf text) (account n data))
+  (defstrand cust 3 (c c) (m m) (b b) (n n))
+  (uniq-orig n)
+  (non-orig (privk "sig" m) (privk "sig" b)
+	    (privk "enc" m) (privk "enc" b)))
+
+(defskeleton minipay-rely-guar
+  (vars (c m b name) (cost item merc-conf bank-conf text) (account n data))
+  (defstrand merc 3 (c c) (m m) (b b))
+  (non-orig (privk "sig" b) (privk "sig" m)
+	    (privk "enc" m) (privk "enc" b)))
+
+(defskeleton minipay-rely-guar
+  (vars (c m b name) (cost item merc-conf bank-conf text) (account n data))
+  (defstrand bank 2 (c c) (m m) (b b) (n n))
+  (non-orig (privk "sig" m) (privk "sig" c)
+	    (privk "enc" m) (privk "enc" b)))
+
+(defskeleton minipay-rely-guar
+  (vars (c m b name) (cost item merc-conf bank-conf text) (account n data))
+  (defstrand bank 2 (c c) (m m) (b b) (n n))
+  (non-orig (privk "enc" m) (privk "sig" c)))
+
+(defskeleton minipay-rely-guar
+  (vars (c m b name) (cost item merc-conf bank-conf text) (account n data))
+  (defstrand cust 3 (c c) (m m) (b b) (n n))
+  (defstrand merc 3 (c c) (m m) (b b) (n n))
+  (defstrand merc 3 (c c) (m m) (b b) (n n))
+  (uniq-orig n)
+  (non-orig (privk "sig" b)
+	    (privk "enc" b)))
+
+(comment
+ (defskeleton minipay-rely-guar
+   (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+	 (bank-conf btr mtr merc-conf mtr-0 text) (c m b name))
+   (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+     (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+     (btr btr) (mtr mtr) (c c) (m m) (b b))
+   (defstrand cust
+     ;; Increase cust to full height
+     3
+     (account account) (cost cost) (n n) (ncb ncb)
+     (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+     (c c) (m m) (b b))
+   (defstrand merc 2
+     (for-bank
+      (enc n cost account bank-conf ncb
+           (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+     (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+     (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+     (b b))
+   (precedes ((1 0) (2 0)) ((2 1) (0 0)))
+   (non-orig (privk "enc" m) (privk "sig" c)
+	     ;; add merchant sig key, bank sig key
+	     (privk "sig" m) (privk "sig" b))
+   (uniq-orig btr mtr-0 ncm n ncb)
+   (facts (neq n ncb) (neq n ncm) (neq ncm ncb))))
+
+(defskeleton minipay-rely-guar
+  (vars (c m b name) (cost item merc-conf bank-conf text) (account acct) (n data))
+  (defstrand merc 4 (c c) (m m) (b b))
+  (non-orig (privk "sig" b) (privk "sig" m)
+	    (privk "enc" m) (privk "enc" b)))
+
+(defskeleton minipay-rely-guar
+  (vars (c m b name) (cost item merc-conf bank-conf text) (account acct) (n data))
+  (defstrand merc 4 (c c) (m m) (b b))
+  (non-orig (privk "sig" b)))
+
+(defskeleton minipay-rely-guar
+  (vars (c m b name) (cost item merc-conf bank-conf text) (account acct) (n data))
+  (defstrand merc 1 (c c) (m m) (b b))
+  (non-orig (privk "sig" c)
+	    (privk "enc" m)))
+
+(defskeleton minipay-rely-guar
+  (vars (c m b name) (cost item merc-conf bank-conf text) (account acct) (n data))
+  (defstrand merc 1 (c c) (m m) (b b))
+  (non-orig (privk "sig" c)
+	    (privk "enc" m)
+	    (privk "enc" b)))
diff --git a/doc/src/cpsa4manual/examples/minipay-rely-guar.tst b/doc/src/cpsa4manual/examples/minipay-rely-guar.tst
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/minipay-rely-guar.tst
@@ -0,0 +1,28857 @@
+(herald minipay-rely-guar (try-old-strands) (bound 16))
+
+(comment "CPSA 4.4.0")
+(comment "All input read from minipay-rely-guar.scm")
+(comment "Strand count bounded at 16")
+(comment "Old strands tried first")
+
+(defprotocol minipay-rely-guar basic
+  (defrole cust
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf bank-conf btr mtr text) (account acct)
+      (n ncb ncm data))
+    (trace
+      (send
+        (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    (facts (neq n ncb) (neq n ncm) (neq ncm ncb)))
+  (defrole merc
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf btr mtr text) (n ncm data)
+      (for-bank bank-conf-commit bank-conf-decommit mesg))
+    (trace
+      (recv
+        (enc n cost item merc-conf ncm bank-conf-commit
+          (sign (order c m b cost for-bank) (privk "sig" c))
+          (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n bank-conf-decommit))
+            btr mtr) (privk "sig" m))))
+    (uniq-orig mtr))
+  (defrole bank
+    (vars (c m b name) (cost amount) (bank-conf btr mtr text)
+      (merc-conf-decommit mesg) (account acct) (n ncb data))
+    (trace
+      (recv
+        (enc
+          (payreq c m b (hash cost n) merc-conf-decommit mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n merc-conf-decommit) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n merc-conf-decommit) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf (hash c m b n cost (hash n merc-conf-decommit)) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    (uniq-orig btr))
+  (defrule rely-cust-3
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 3)) (p "cust" "mtr" z mtr)
+          (p "cust" "item" z item) (p "cust" "b" z b) (p "cust" "m" z m)
+          (p "cust" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule rely-cust-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (b m c name))
+      (implies
+        (and (p "cust" z (idx 2)) (p "cust" "btr" z btr)
+          (p "cust" "mtr" z mtr) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "b" z b) (p "cust" "m" z m)
+          (p "cust" "c" z c))
+        (fact will-transfer c m b cost n mtr btr))))
+  (defrule rely-merc-3
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name)
+        (btr mtr text))
+      (implies
+        (and (p "merc" z (idx 3)) (p "merc" "n" z n)
+          (p "merc" "cost" z cost) (p "merc" "item" z item)
+          (p "merc" "b" z b) (p "merc" "m" z m) (p "merc" "c" z c)
+          (p "merc" "btr" z btr) (p "merc" "mtr" z mtr))
+        (and (fact buy-via c m b item cost n)
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule rely-bank-1
+    (forall ((z strd) (n data) (cost amount) (b m c name))
+      (implies
+        (and (p "bank" z (idx 1)) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "b" z b) (p "bank" "m" z m)
+          (p "bank" "c" z c))
+        (exists ((item merchandise))
+          (fact buy-via c m b item cost n)))))
+  (defrule guar-cust-1
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "item" z item)
+          (p "cust" "b" z b) (p "cust" "m" z m) (p "cust" "c" z c))
+        (fact buy-via c m b item cost n))))
+  (defrule guar-merc-4
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "mtr" z mtr)
+          (p "merc" "item" z item) (p "merc" "b" z b) (p "merc" "m" z m)
+          (p "merc" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule guar-bank-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (c b m name))
+      (implies
+        (and (p "bank" z (idx 2)) (p "bank" "btr" z btr)
+          (p "bank" "mtr" z mtr) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "c" z c) (p "bank" "b" z b)
+          (p "bank" "m" z m))
+        (and (non (privk "sig" c))
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule cheq-merc-4
+    (forall
+      ((z strd) (n data) (bank-conf-decommit bank-conf-commit mesg))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "n" z n)
+          (p "merc" "bank-conf-decommit" z bank-conf-decommit)
+          (p "merc" "bank-conf-commit" z bank-conf-commit))
+        (= bank-conf-commit (hash n bank-conf-decommit)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule fact-cust-neq2
+    (forall ((z strd) (ncb n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "n" z n)) (fact neq n ncb))))
+  (defgenrule fact-cust-neq1
+    (forall ((z strd) (ncm n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncm" z ncm)
+          (p "cust" "n" z n)) (fact neq n ncm))))
+  (defgenrule fact-cust-neq0
+    (forall ((z strd) (ncb ncm data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "ncm" z ncm)) (fact neq ncm ncb))))
+  (lang (acct atom) (amount atom) (merchandise atom) (sign sign)
+    (order (tuple 5)) (bconf (tuple 3)) (mconf (tuple 3))
+    (payreq (tuple 7))))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (merc-conf bank-conf btr mtr text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" m)
+    (privk "sig" b))
+  (uniq-orig n)
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m)))))
+  (label 0)
+  (unrealized (0 1) (0 2))
+  (origs (n (0 0)))
+  (comment "Not closed under rules"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (merc-conf bank-conf btr mtr text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" m)
+    (privk "sig" b))
+  (uniq-orig n)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr) (will-transfer c m b cost n mtr btr)
+    (buy-via c m b item cost n))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-cust-1
+    rely-cust-2 rely-cust-3)
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1) (0 2))
+  (origs (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account account-0 acct) (cost amount) (n ncb ncm ncb-0 data)
+    (item merchandise) (merc-conf bank-conf btr mtr bank-conf-0 text)
+    (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3)
+  (operation encryption-test (added-strand bank 2)
+    (sign
+      (bconf (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+        mtr) (privk "sig" b)) (0 1))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 1) (0 2) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank mesg) (account account-0 acct) (cost amount)
+    (n ncb ncm ncb-0 data) (item merchandise)
+    (merc-conf bank-conf btr mtr bank-conf-0 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 4 (for-bank for-bank)
+    (bank-conf-commit (hash n (hash ncb-0 bank-conf-0)))
+    (bank-conf-decommit (hash ncb-0 bank-conf-0)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (precedes ((0 0) (2 0)) ((1 1) (2 2)) ((2 1) (1 0)) ((2 3) (0 1)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule cheq-merc-4 fact-cust-neq0 fact-cust-neq1 fact-cust-neq2
+    guar-bank-2 guar-cust-1 guar-merc-4)
+  (operation encryption-test (added-strand merc 4)
+    (sign
+      (bconf (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+        mtr) (privk "sig" b)) (0 1)
+    (enc (hash ncb-0 bank-conf-0)
+      (sign
+        (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+          btr mtr) (privk "sig" b)) (pubk "enc" m)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 2) (1 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank mesg) (account account-0 acct) (cost amount)
+    (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb)
+    (bank-conf bank-conf) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5 (for-bank for-bank)
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (precedes ((0 0) (2 0)) ((1 1) (2 2)) ((2 1) (1 0)) ((2 3) (0 1))
+    ((2 4) (0 2)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 2 3 merc 5)
+    (sign
+      (mconf (hash c m b n item cost (hash n (hash ncb bank-conf))) btr
+        mtr) (privk "sig" m)) (0 2))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m)))))
+  (label 4)
+  (parent 3)
+  (unrealized (1 0) (2 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account account-0 acct) (cost amount) (n ncb ncm data)
+    (item merchandise) (bank-conf btr mtr merc-conf text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb)
+    (bank-conf bank-conf) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account-0 bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (precedes ((0 0) (2 0)) ((1 1) (2 2)) ((2 1) (1 0)) ((2 3) (0 1))
+    ((2 4) (0 2)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test
+    (contracted
+      (for-bank
+        (enc n cost account-0 bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+    (hash cost n) (1 0)
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account-0 bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account-0 bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m)))))
+  (label 5)
+  (parent 4)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank for-bank-0 bank-conf-commit mesg)
+    (account account-0 acct) (cost amount) (n ncb ncm ncm-0 data)
+    (item item-0 merchandise)
+    (bank-conf btr mtr merc-conf merc-conf-0 mtr-0 text)
+    (c m b c-0 m-0 b-0 name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb)
+    (bank-conf bank-conf) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5 (for-bank for-bank)
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand merc 2 (for-bank for-bank-0)
+    (bank-conf-commit bank-conf-commit) (cost cost) (n n) (ncm ncm-0)
+    (item item-0) (merc-conf merc-conf-0) (mtr mtr-0) (c c-0) (m m-0)
+    (b b-0))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (2 2)) ((2 1) (1 0))
+    ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (added-strand merc 2) (hash cost n) (1 0)
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+        (cat (sign (order c m b cost for-bank) (privk "sig" c))
+          for-bank)) (pubk "enc" b)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign (order c-0 m-0 b-0 cost for-bank-0) (privk "sig" c-0))
+         (pubk "enc" m-0)))
+      (send
+        (enc
+          (payreq c-0 m-0 b-0 (hash cost n)
+            (hash ncm-0 item-0 merc-conf-0) mtr-0
+            (cat
+              (sign (order c-0 m-0 b-0 cost for-bank-0)
+                (privk "sig" c-0)) for-bank-0)) (pubk "enc" b-0)))))
+  (label 6)
+  (parent 4)
+  (unrealized (1 0) (2 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank mesg) (account account-0 acct) (cost amount)
+    (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb)
+    (bank-conf bank-conf) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5 (for-bank for-bank)
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (deflistener (cat cost n))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (2 2)) ((2 1) (1 0))
+    ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (added-listener (cat cost n)) (hash cost n)
+    (1 0)
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+        (cat (sign (order c m b cost for-bank) (privk "sig" c))
+          for-bank)) (pubk "enc" b)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv (cat cost n)) (send (cat cost n))))
+  (label 7)
+  (parent 4)
+  (unrealized (1 0) (2 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (precedes ((0 0) (2 0)) ((1 1) (2 2)) ((2 1) (1 0)) ((2 3) (0 1))
+    ((2 4) (0 2)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (contracted (account-0 account))
+    (hash n (hash ncb bank-conf)) (2 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m)))))
+  (label 8)
+  (parent 5)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((c c) (m m) (b b) (n n) (cost cost) (item item)
+        (merc-conf merc-conf) (bank-conf bank-conf) (btr btr) (mtr mtr)
+        (account account) (ncb ncb) (ncm ncm))))
+  (origs (mtr (2 1)) (btr (1 1)) (n (0 0))))
+
+(defskeleton minipay-rely-guar
+  (vars (account account-0 acct) (cost amount) (n ncb ncm data)
+    (item merchandise) (bank-conf btr mtr merc-conf text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb)
+    (bank-conf bank-conf) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account-0 bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (deflistener (cat n (hash ncb bank-conf)))
+  (precedes ((0 0) (3 0)) ((1 1) (2 2)) ((2 1) (1 0)) ((2 3) (0 1))
+    ((2 4) (0 2)) ((3 1) (2 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test
+    (added-listener (cat n (hash ncb bank-conf)))
+    (hash n (hash ncb bank-conf)) (2 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv (cat n (hash ncb bank-conf)))
+      (send (cat n (hash ncb bank-conf)))))
+  (label 9)
+  (parent 5)
+  (unrealized (2 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank for-bank-0 bank-conf-commit mesg) (account acct)
+    (cost amount) (n ncb ncm ncm-0 data) (item item-0 merchandise)
+    (bank-conf btr mtr merc-conf merc-conf-0 mtr-0 text)
+    (c m b c-0 m-0 b-0 name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5 (for-bank for-bank)
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand merc 2 (for-bank for-bank-0)
+    (bank-conf-commit bank-conf-commit) (cost cost) (n n) (ncm ncm-0)
+    (item item-0) (merc-conf merc-conf-0) (mtr mtr-0) (c c-0) (m m-0)
+    (b b-0))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (2 2)) ((2 1) (1 0))
+    ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 4 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign (order c-0 m-0 b-0 cost for-bank-0) (privk "sig" c-0))
+         (pubk "enc" m-0)))
+      (send
+        (enc
+          (payreq c-0 m-0 b-0 (hash cost n)
+            (hash ncm-0 item-0 merc-conf-0) mtr-0
+            (cat
+              (sign (order c-0 m-0 b-0 cost for-bank-0)
+                (privk "sig" c-0)) for-bank-0)) (pubk "enc" b-0)))))
+  (label 10)
+  (parent 6)
+  (unrealized (1 0) (2 0) (3 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank mesg) (account acct) (cost amount) (n ncb ncm data)
+    (item merchandise) (bank-conf btr mtr merc-conf text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5 (for-bank for-bank)
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (deflistener (cat cost n))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (2 2)) ((2 1) (1 0))
+    ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 4 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv (cat cost n)) (send (cat cost n))))
+  (label 11)
+  (parent 7)
+  (unrealized (1 0) (2 0) (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (deflistener (cat n (hash ncb bank-conf)))
+  (precedes ((0 0) (3 0)) ((1 1) (2 2)) ((2 1) (1 0)) ((2 3) (0 1))
+    ((2 4) (0 2)) ((3 1) (2 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 4 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv (cat n (hash ncb bank-conf)))
+      (send (cat n (hash ncb bank-conf)))))
+  (label 12)
+  (parent 9)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-commit mesg) (account acct) (cost amount)
+    (n ncb ncm ncm-0 data) (item item-0 merchandise)
+    (bank-conf btr mtr merc-conf merc-conf-0 mtr-0 text)
+    (c m b c-0 m-0 b-0 name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand merc 2 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit) (cost cost) (n n) (ncm ncm-0)
+    (item item-0) (merc-conf merc-conf-0) (mtr mtr-0) (c c-0) (m m-0)
+    (b b-0))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (2 2)) ((2 1) (1 0))
+    ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 4 2 merc 2)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign (order c-0 m-0 b-0 cost for-bank) (privk "sig" c-0))
+         (pubk "enc" m-0)))
+      (send
+        (enc
+          (payreq c-0 m-0 b-0 (hash cost n)
+            (hash ncm-0 item-0 merc-conf-0) mtr-0
+            (cat
+              (sign (order c-0 m-0 b-0 cost for-bank) (privk "sig" c-0))
+              for-bank)) (pubk "enc" b-0)))))
+  (label 13)
+  (parent 10)
+  (unrealized (3 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank mesg) (account acct) (cost amount) (n ncb ncm data)
+    (item merchandise) (bank-conf btr mtr merc-conf mtr-0 text)
+    (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5 (for-bank for-bank)
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (2 2)) ((2 1) (1 0))
+    ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 4 3 merc 2)
+    (sign
+      (order c-0 m-0 b-0 cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b-0)))
+      (privk "sig" c-0)) (1 0)
+    (enc n cost item-0 merc-conf-0 ncm-0 (hash n (hash ncb bank-conf))
+      (sign
+        (order c-0 m-0 b-0 cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b-0)))
+        (privk "sig" c-0)) (pubk "enc" m-0)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 14)
+  (parent 10)
+  (seen 15 17 19)
+  (unrealized (1 0) (2 0))
+  (comment "3 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank for-bank-0 bank-conf-commit mesg) (account acct)
+    (cost amount) (n ncb ncm ncm-0 data) (item item-0 merchandise)
+    (bank-conf btr mtr merc-conf merc-conf-0 mtr-0 mtr-1 text)
+    (c m b c-0 m-0 b-0 name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5 (for-bank for-bank)
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand merc 2 (for-bank for-bank-0)
+    (bank-conf-commit bank-conf-commit) (cost cost) (n n) (ncm ncm-0)
+    (item item-0) (merc-conf merc-conf-0) (mtr mtr-0) (c c-0) (m m-0)
+    (b b-0))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (2 2))
+    ((2 1) (1 0)) ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0))
+    ((4 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (added-strand merc 2)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign (order c-0 m-0 b-0 cost for-bank-0) (privk "sig" c-0))
+         (pubk "enc" m-0)))
+      (send
+        (enc
+          (payreq c-0 m-0 b-0 (hash cost n)
+            (hash ncm-0 item-0 merc-conf-0) mtr-0
+            (cat
+              (sign (order c-0 m-0 b-0 cost for-bank-0)
+                (privk "sig" c-0)) for-bank-0)) (pubk "enc" b-0))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 15)
+  (parent 10)
+  (unrealized (1 0) (2 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (deflistener (cat cost n))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (2 2)) ((2 1) (1 0))
+    ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 4 2 merc 2)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv (cat cost n)) (send (cat cost n))))
+  (label 16)
+  (parent 11)
+  (unrealized (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank mesg) (account acct) (cost amount) (n ncb ncm data)
+    (item merchandise) (bank-conf btr mtr merc-conf mtr-0 text)
+    (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5 (for-bank for-bank)
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (deflistener (cat cost n))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (2 2))
+    ((2 1) (1 0)) ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0))
+    ((4 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (added-strand merc 2)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv (cat cost n)) (send (cat cost n)))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 17)
+  (parent 11)
+  (unrealized (1 0) (2 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf mtr-0 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (deflistener (cat n (hash ncb bank-conf)))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (4 0)) ((1 1) (2 2)) ((2 1) (1 0)) ((2 3) (0 1))
+    ((2 4) (0 2)) ((3 1) (2 0)) ((4 1) (3 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation nonce-test (added-strand merc 2) n (3 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv (cat n (hash ncb bank-conf)))
+      (send (cat n (hash ncb bank-conf))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 18)
+  (parent 12)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf mtr-0 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (2 2)) ((2 1) (1 0))
+    ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation nonce-test
+    (contracted (c-0 c) (m-0 m) (b-0 b) (item-0 item)
+      (merc-conf-0 merc-conf) (ncm-0 ncm)
+      (for-bank
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (bank-conf-commit (hash n (hash ncb bank-conf)))) n (3 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 19)
+  (parent 13)
+  (seen 8)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-commit mesg) (account acct) (cost amount)
+    (n ncb ncm ncm-0 data) (item item-0 merchandise)
+    (bank-conf btr mtr merc-conf merc-conf-0 mtr-0 text)
+    (c m b c-0 m-0 b-0 name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand merc 2 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit) (cost cost) (n n) (ncm ncm-0)
+    (item item-0) (merc-conf merc-conf-0) (mtr mtr-0) (c c-0) (m m-0)
+    (b b-0))
+  (precedes ((0 0) (2 0)) ((1 1) (2 2)) ((2 1) (3 0)) ((2 3) (0 1))
+    ((2 4) (0 2)) ((3 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation nonce-test (displaced 4 2 merc 2) n (3 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign (order c-0 m-0 b-0 cost for-bank) (privk "sig" c-0))
+         (pubk "enc" m-0)))
+      (send
+        (enc
+          (payreq c-0 m-0 b-0 (hash cost n)
+            (hash ncm-0 item-0 merc-conf-0) mtr-0
+            (cat
+              (sign (order c-0 m-0 b-0 cost for-bank) (privk "sig" c-0))
+              for-bank)) (pubk "enc" b-0)))))
+  (label 20)
+  (parent 13)
+  (unrealized (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-commit mesg) (account acct) (cost amount)
+    (n ncb ncm ncm-0 data) (item item-0 merchandise)
+    (bank-conf btr mtr merc-conf merc-conf-0 mtr-0 mtr-1 text)
+    (c m b c-0 m-0 b-0 name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand merc 2 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit) (cost cost) (n n) (ncm ncm-0)
+    (item item-0) (merc-conf merc-conf-0) (mtr mtr-0) (c c-0) (m m-0)
+    (b b-0))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (2 2)) ((2 1) (1 0))
+    ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0)) ((4 1) (3 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation nonce-test (added-strand merc 2) n (3 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign (order c-0 m-0 b-0 cost for-bank) (privk "sig" c-0))
+         (pubk "enc" m-0)))
+      (send
+        (enc
+          (payreq c-0 m-0 b-0 (hash cost n)
+            (hash ncm-0 item-0 merc-conf-0) mtr-0
+            (cat
+              (sign (order c-0 m-0 b-0 cost for-bank) (privk "sig" c-0))
+              for-bank)) (pubk "enc" b-0))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 21)
+  (parent 13)
+  (seen 27)
+  (unrealized (3 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-commit mesg) (account acct) (cost amount)
+    (n ncb ncm ncm-0 data) (item item-0 merchandise)
+    (bank-conf btr mtr merc-conf merc-conf-0 mtr-0 mtr-1 text)
+    (c m b c-0 m-0 b-0 name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand merc 2 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit) (cost cost) (n n) (ncm ncm-0)
+    (item item-0) (merc-conf merc-conf-0) (mtr mtr-0) (c c-0) (m m-0)
+    (b b-0))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (2 2))
+    ((2 1) (1 0)) ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0))
+    ((4 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 5 2 merc 2)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m))
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign (order c-0 m-0 b-0 cost for-bank) (privk "sig" c-0))
+         (pubk "enc" m-0)))
+      (send
+        (enc
+          (payreq c-0 m-0 b-0 (hash cost n)
+            (hash ncm-0 item-0 merc-conf-0) mtr-0
+            (cat
+              (sign (order c-0 m-0 b-0 cost for-bank) (privk "sig" c-0))
+              for-bank)) (pubk "enc" b-0))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 22)
+  (parent 15)
+  (seen 21)
+  (unrealized (3 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (deflistener (cat cost n))
+  (precedes ((0 0) (2 0)) ((1 1) (2 2)) ((2 1) (3 0)) ((2 3) (0 1))
+    ((2 4) (0 2)) ((3 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation nonce-test (displaced 4 2 merc 2) n (3 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv (cat cost n)) (send (cat cost n))))
+  (label 23)
+  (parent 16)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf mtr-0 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (deflistener (cat cost n))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (2 2)) ((2 1) (1 0))
+    ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0)) ((4 1) (3 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation nonce-test (added-strand merc 2) n (3 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv (cat cost n)) (send (cat cost n)))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 24)
+  (parent 16)
+  (seen 30)
+  (unrealized (3 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf mtr-0 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (deflistener (cat cost n))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (2 2))
+    ((2 1) (1 0)) ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0))
+    ((4 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 5 2 merc 2)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m))
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv (cat cost n)) (send (cat cost n)))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 25)
+  (parent 17)
+  (seen 24)
+  (unrealized (3 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf mtr-0 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((1 1) (2 2)) ((2 1) (3 0)) ((2 3) (0 1))
+    ((2 4) (0 2)) ((3 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation nonce-test
+    (contracted (c-0 c) (m-0 m) (b-0 b) (item-0 item)
+      (merc-conf-0 merc-conf) (ncm-0 ncm)
+      (for-bank
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (bank-conf-commit (hash n (hash ncb bank-conf)))) n (3 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m))
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 26)
+  (parent 20)
+  (seen 8)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-commit mesg) (account acct) (cost amount)
+    (n ncb ncm ncm-0 data) (item item-0 merchandise)
+    (bank-conf btr mtr merc-conf merc-conf-0 mtr-0 mtr-1 text)
+    (c m b c-0 m-0 b-0 name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand merc 2 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit) (cost cost) (n n) (ncm ncm-0)
+    (item item-0) (merc-conf merc-conf-0) (mtr mtr-0) (c c-0) (m m-0)
+    (b b-0))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (2 2)) ((2 1) (3 0))
+    ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0)) ((4 1) (3 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation nonce-test (added-strand merc 2) n (3 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m))
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign (order c-0 m-0 b-0 cost for-bank) (privk "sig" c-0))
+         (pubk "enc" m-0)))
+      (send
+        (enc
+          (payreq c-0 m-0 b-0 (hash cost n)
+            (hash ncm-0 item-0 merc-conf-0) mtr-0
+            (cat
+              (sign (order c-0 m-0 b-0 cost for-bank) (privk "sig" c-0))
+              for-bank)) (pubk "enc" b-0))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 27)
+  (parent 20)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-commit mesg) (account acct) (cost amount)
+    (n ncb ncm ncm-0 data) (item item-0 merchandise)
+    (bank-conf btr mtr merc-conf merc-conf-0 mtr-0 mtr-1 text)
+    (c m b c-0 m-0 b-0 name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand merc 2 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit) (cost cost) (n n) (ncm ncm-0)
+    (item item-0) (merc-conf merc-conf-0) (mtr mtr-0) (c c-0) (m m-0)
+    (b b-0))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (2 2)) ((2 1) (3 0))
+    ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation nonce-test (displaced 5 2 merc 2) n (3 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign (order c-0 m-0 b-0 cost for-bank) (privk "sig" c-0))
+         (pubk "enc" m-0)))
+      (send
+        (enc
+          (payreq c-0 m-0 b-0 (hash cost n)
+            (hash ncm-0 item-0 merc-conf-0) mtr-0
+            (cat
+              (sign (order c-0 m-0 b-0 cost for-bank) (privk "sig" c-0))
+              for-bank)) (pubk "enc" b-0))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 28)
+  (parent 22)
+  (seen 27)
+  (unrealized (3 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-commit mesg) (account acct) (cost amount)
+    (n ncb ncm ncm-0 data) (item item-0 merchandise)
+    (bank-conf btr mtr merc-conf merc-conf-0 mtr-0 mtr-1 mtr-2 text)
+    (c m b c-0 m-0 b-0 name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand merc 2 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit) (cost cost) (n n) (ncm ncm-0)
+    (item item-0) (merc-conf merc-conf-0) (mtr mtr-0) (c c-0) (m m-0)
+    (b b-0))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-2) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((0 0) (5 0)) ((1 1) (2 2))
+    ((2 1) (1 0)) ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0))
+    ((4 1) (1 0)) ((5 1) (3 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0 mtr-1 mtr-2)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation nonce-test (added-strand merc 2) n (3 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign (order c-0 m-0 b-0 cost for-bank) (privk "sig" c-0))
+         (pubk "enc" m-0)))
+      (send
+        (enc
+          (payreq c-0 m-0 b-0 (hash cost n)
+            (hash ncm-0 item-0 merc-conf-0) mtr-0
+            (cat
+              (sign (order c-0 m-0 b-0 cost for-bank) (privk "sig" c-0))
+              for-bank)) (pubk "enc" b-0))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-2
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 29)
+  (parent 22)
+  (seen 35)
+  (unrealized (3 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf mtr-0 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (deflistener (cat cost n))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (2 2)) ((2 1) (3 0))
+    ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0)) ((4 1) (3 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation nonce-test (added-strand merc 2) n (3 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m))
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv (cat cost n)) (send (cat cost n)))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 30)
+  (parent 23)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf mtr-0 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (deflistener (cat cost n))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (2 2)) ((2 1) (3 0))
+    ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation nonce-test (displaced 5 2 merc 2) n (3 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv (cat cost n)) (send (cat cost n)))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 31)
+  (parent 25)
+  (seen 30)
+  (unrealized (3 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (deflistener (cat cost n))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((0 0) (5 0)) ((1 1) (2 2))
+    ((2 1) (1 0)) ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0))
+    ((4 1) (1 0)) ((5 1) (3 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation nonce-test (added-strand merc 2) n (3 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv (cat cost n)) (send (cat cost n)))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 32)
+  (parent 25)
+  (seen 36)
+  (unrealized (3 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (2 2)) ((2 1) (3 0))
+    ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0)) ((4 1) (3 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation nonce-test
+    (contracted (c-0 c) (m-0 m) (b-0 b) (item-0 item)
+      (merc-conf-0 merc-conf) (ncm-0 ncm)
+      (for-bank
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (bank-conf-commit (hash n (hash ncb bank-conf)))) n (3 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m))
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b))
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 33)
+  (parent 27)
+  (seen 19)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (2 2)) ((2 1) (3 0))
+    ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation nonce-test
+    (contracted (c-0 c) (m-0 m) (b-0 b) (item-0 item)
+      (merc-conf-0 merc-conf) (ncm-0 ncm)
+      (for-bank
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (bank-conf-commit (hash n (hash ncb bank-conf)))) n (3 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m))
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 34)
+  (parent 28)
+  (seen 19)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-commit mesg) (account acct) (cost amount)
+    (n ncb ncm ncm-0 data) (item item-0 merchandise)
+    (bank-conf btr mtr merc-conf merc-conf-0 mtr-0 mtr-1 mtr-2 text)
+    (c m b c-0 m-0 b-0 name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand merc 2 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit) (cost cost) (n n) (ncm ncm-0)
+    (item item-0) (merc-conf merc-conf-0) (mtr mtr-0) (c c-0) (m m-0)
+    (b b-0))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-2) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((0 0) (5 0)) ((1 1) (2 2))
+    ((2 1) (3 0)) ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0))
+    ((4 1) (1 0)) ((5 1) (3 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0 mtr-1 mtr-2)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation nonce-test (added-strand merc 2) n (3 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m))
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign (order c-0 m-0 b-0 cost for-bank) (privk "sig" c-0))
+         (pubk "enc" m-0)))
+      (send
+        (enc
+          (payreq c-0 m-0 b-0 (hash cost n)
+            (hash ncm-0 item-0 merc-conf-0) mtr-0
+            (cat
+              (sign (order c-0 m-0 b-0 cost for-bank) (privk "sig" c-0))
+              for-bank)) (pubk "enc" b-0))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-2
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 35)
+  (parent 28)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (deflistener (cat cost n))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((0 0) (5 0)) ((1 1) (2 2))
+    ((2 1) (3 0)) ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0))
+    ((4 1) (1 0)) ((5 1) (3 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation nonce-test (added-strand merc 2) n (3 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m))
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv (cat cost n)) (send (cat cost n)))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 36)
+  (parent 31)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf mtr-0 mtr-1 mtr-2 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-2) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((0 0) (5 0)) ((1 1) (2 2))
+    ((2 1) (3 0)) ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0))
+    ((4 1) (1 0)) ((5 1) (3 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0 mtr-1 mtr-2)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation nonce-test
+    (contracted (c-0 c) (m-0 m) (b-0 b) (item-0 item)
+      (merc-conf-0 merc-conf) (ncm-0 ncm)
+      (for-bank
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (bank-conf-commit (hash n (hash ncb bank-conf)))) n (3 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m))
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b))
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-2
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b)))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-2
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 37)
+  (parent 35)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 5
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (2 2))
+    ((2 1) (1 0)) ((2 3) (0 1)) ((2 4) (0 2)) ((3 1) (1 0))
+    ((4 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation generalization deleted (3 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 38)
+  (parent 37)
+  (seen 19)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol minipay-rely-guar basic
+  (defrole cust
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf bank-conf btr mtr text) (account acct)
+      (n ncb ncm data))
+    (trace
+      (send
+        (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    (facts (neq n ncb) (neq n ncm) (neq ncm ncb)))
+  (defrole merc
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf btr mtr text) (n ncm data)
+      (for-bank bank-conf-commit bank-conf-decommit mesg))
+    (trace
+      (recv
+        (enc n cost item merc-conf ncm bank-conf-commit
+          (sign (order c m b cost for-bank) (privk "sig" c))
+          (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n bank-conf-decommit))
+            btr mtr) (privk "sig" m))))
+    (uniq-orig mtr))
+  (defrole bank
+    (vars (c m b name) (cost amount) (bank-conf btr mtr text)
+      (merc-conf-decommit mesg) (account acct) (n ncb data))
+    (trace
+      (recv
+        (enc
+          (payreq c m b (hash cost n) merc-conf-decommit mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n merc-conf-decommit) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n merc-conf-decommit) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf (hash c m b n cost (hash n merc-conf-decommit)) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    (uniq-orig btr))
+  (defrule rely-cust-3
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 3)) (p "cust" "mtr" z mtr)
+          (p "cust" "item" z item) (p "cust" "b" z b) (p "cust" "m" z m)
+          (p "cust" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule rely-cust-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (b m c name))
+      (implies
+        (and (p "cust" z (idx 2)) (p "cust" "btr" z btr)
+          (p "cust" "mtr" z mtr) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "b" z b) (p "cust" "m" z m)
+          (p "cust" "c" z c))
+        (fact will-transfer c m b cost n mtr btr))))
+  (defrule rely-merc-3
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name)
+        (btr mtr text))
+      (implies
+        (and (p "merc" z (idx 3)) (p "merc" "n" z n)
+          (p "merc" "cost" z cost) (p "merc" "item" z item)
+          (p "merc" "b" z b) (p "merc" "m" z m) (p "merc" "c" z c)
+          (p "merc" "btr" z btr) (p "merc" "mtr" z mtr))
+        (and (fact buy-via c m b item cost n)
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule rely-bank-1
+    (forall ((z strd) (n data) (cost amount) (b m c name))
+      (implies
+        (and (p "bank" z (idx 1)) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "b" z b) (p "bank" "m" z m)
+          (p "bank" "c" z c))
+        (exists ((item merchandise))
+          (fact buy-via c m b item cost n)))))
+  (defrule guar-cust-1
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "item" z item)
+          (p "cust" "b" z b) (p "cust" "m" z m) (p "cust" "c" z c))
+        (fact buy-via c m b item cost n))))
+  (defrule guar-merc-4
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "mtr" z mtr)
+          (p "merc" "item" z item) (p "merc" "b" z b) (p "merc" "m" z m)
+          (p "merc" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule guar-bank-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (c b m name))
+      (implies
+        (and (p "bank" z (idx 2)) (p "bank" "btr" z btr)
+          (p "bank" "mtr" z mtr) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "c" z c) (p "bank" "b" z b)
+          (p "bank" "m" z m))
+        (and (non (privk "sig" c))
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule cheq-merc-4
+    (forall
+      ((z strd) (n data) (bank-conf-decommit bank-conf-commit mesg))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "n" z n)
+          (p "merc" "bank-conf-decommit" z bank-conf-decommit)
+          (p "merc" "bank-conf-commit" z bank-conf-commit))
+        (= bank-conf-commit (hash n bank-conf-decommit)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule fact-cust-neq2
+    (forall ((z strd) (ncb n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "n" z n)) (fact neq n ncb))))
+  (defgenrule fact-cust-neq1
+    (forall ((z strd) (ncm n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncm" z ncm)
+          (p "cust" "n" z n)) (fact neq n ncm))))
+  (defgenrule fact-cust-neq0
+    (forall ((z strd) (ncb ncm data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "ncm" z ncm)) (fact neq ncm ncb))))
+  (lang (acct atom) (amount atom) (merchandise atom) (sign sign)
+    (order (tuple 5)) (bconf (tuple 3)) (mconf (tuple 3))
+    (payreq (tuple 7))))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-commit bank-conf-decommit mesg)
+    (cost amount) (n ncm data) (item merchandise)
+    (merc-conf btr mtr text) (c m b name))
+  (defstrand merc 3 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" m)
+    (privk "sig" b))
+  (uniq-orig mtr)
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 39)
+  (unrealized (0 2))
+  (origs (mtr (0 1)))
+  (comment "Not closed under rules"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-commit bank-conf-decommit mesg)
+    (cost amount) (n ncm data) (item merchandise)
+    (merc-conf btr mtr text) (c m b name))
+  (defstrand merc 3 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" m)
+    (privk "sig" b))
+  (uniq-orig mtr)
+  (facts (will-transfer c m b cost n mtr btr)
+    (buy-via c m b item cost n))
+  (rule rely-merc-3)
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 40)
+  (parent 39)
+  (unrealized (0 2))
+  (origs (mtr (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-commit bank-conf-decommit mesg)
+    (account acct) (cost amount) (n ncm ncb data) (item merchandise)
+    (merc-conf btr mtr bank-conf text) (c m b name))
+  (defstrand merc 3 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr)
+  (facts (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr btr))
+  (rule guar-bank-2 rely-merc-3)
+  (operation encryption-test (added-strand bank 2)
+    (sign
+      (bconf (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+        mtr) (privk "sig" b)) (0 2))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 41)
+  (parent 40)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit bank-conf-decommit mesg)
+    (account account-0 acct) (cost amount)
+    (n ncm ncb n-0 ncb-0 ncm-0 data) (item item-0 merchandise)
+    (merc-conf btr mtr bank-conf merc-conf-0 bank-conf-0 text)
+    (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n-0) (ncb ncb-0)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr)
+  (facts (neq n-0 ncb-0) (neq n-0 ncm-0) (neq ncm-0 ncb-0)
+    (buy-via c m b item cost n) (buy-via c m b item-0 cost n-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-merc-3)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n-0 cost account-0 bank-conf-0 ncb-0
+          (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))))
+  (label 42)
+  (parent 41)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-decommit mesg) (account account-0 acct) (cost amount)
+    (ncb n ncb-0 ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf bank-conf-0 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account-0 bank-conf-0 ncb-0
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb-0 bank-conf-0)))
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf-0)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr)
+  (facts (neq n ncb-0) (neq n ncm) (neq ncm ncb-0)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test
+    (contracted (item-0 item) (merc-conf-0 merc-conf) (n-0 n)
+      (ncm-0 ncm) (bank-conf-commit (hash n (hash ncb-0 bank-conf-0))))
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf-0 ncb-0
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+      (sign
+        (order c m b cost
+          (enc n cost account-0 bank-conf-0 ncb-0
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf-0 ncb-0
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf-0 ncb-0
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 43)
+  (parent 42)
+  (unrealized (0 2) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit bank-conf-decommit mesg)
+    (account account-0 acct) (cost amount)
+    (n ncm ncb n-0 ncb-0 ncm-0 data) (item item-0 merchandise)
+    (merc-conf btr mtr bank-conf merc-conf-0 bank-conf-0 mtr-0 text)
+    (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n-0) (ncb ncb-0)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n-0 cost account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit (hash n-0 (hash ncb-0 bank-conf-0))) (cost cost)
+    (n n-0) (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n-0 ncb-0) (neq n-0 ncm-0) (neq ncm-0 ncb-0)
+    (buy-via c m b item cost n) (buy-via c m b item-0 cost n-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-merc-3)
+  (operation encryption-test (added-strand merc 2)
+    (sign
+      (order c m b cost
+        (enc n-0 cost account-0 bank-conf-0 ncb-0
+          (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0)
+    (enc n-0 cost item-0 merc-conf-0 ncm-0
+      (hash n-0 (hash ncb-0 bank-conf-0))
+      (sign
+        (order c m b cost
+          (enc n-0 cost account-0 bank-conf-0 ncb-0
+            (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n-0) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                (pubk "enc" b)))) (pubk "enc" b)))))
+  (label 44)
+  (parent 42)
+  (unrealized (0 0) (0 2) (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account account-0 acct) (cost amount) (ncb n ncb-0 ncm data)
+    (item merchandise) (btr mtr bank-conf merc-conf bank-conf-0 text)
+    (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account-0 bank-conf-0 ncb-0
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb-0 bank-conf-0)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf-0)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr)
+  (facts (neq n ncb-0) (neq n ncm) (neq ncm ncb-0)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test
+    (contracted (bank-conf-decommit (hash ncb bank-conf)))
+    (sign
+      (bconf (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+        mtr) (privk "sig" b)) (0 2)
+    (enc (hash ncb bank-conf)
+      (sign
+        (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+          btr mtr) (privk "sig" b)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf-0 ncb-0
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf-0 ncb-0
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 45)
+  (parent 43)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-decommit mesg) (account account-0 acct) (cost amount)
+    (ncb n ncb-0 ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf bank-conf-0 mtr-0 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account-0 bank-conf-0 ncb-0
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb-0 bank-conf-0)))
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf-0)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account-0 bank-conf-0 ncb-0
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb-0 bank-conf-0))) (cost cost)
+    (n n) (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c)
+    (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb-0) (neq n ncm) (neq ncm ncb-0)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test
+    (contracted (item-0 item) (merc-conf-0 merc-conf) (n-0 n)
+      (ncm-0 ncm) (bank-conf-commit (hash n (hash ncb-0 bank-conf-0))))
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf-0 ncb-0
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+      (sign
+        (order c m b cost
+          (enc n cost account-0 bank-conf-0 ncb-0
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m))
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account-0 bank-conf-0 ncb-0
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account-0 bank-conf-0 ncb-0
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf-0 ncb-0
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf-0 ncb-0
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf-0 ncb-0
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf-0 ncb-0
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 46)
+  (parent 44)
+  (unrealized (0 2) (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 3 2 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf-0 ncb-0
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 47)
+  (parent 45)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((c c) (m m) (b b) (cost cost) (item item) (merc-conf merc-conf)
+        (btr btr) (mtr mtr) (n n) (ncm ncm)
+        (for-bank
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (bank-conf-commit (hash n (hash ncb bank-conf)))
+        (bank-conf-decommit (hash ncb bank-conf)))))
+  (origs (btr (1 1)) (mtr (0 1))))
+
+(defskeleton minipay-rely-guar
+  (vars (account account-0 acct) (cost amount) (ncb n ncb-0 ncm data)
+    (item merchandise) (btr mtr bank-conf merc-conf bank-conf-0 text)
+    (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account-0 bank-conf-0 ncb-0
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb-0 bank-conf-0)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf-0)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 0) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr)
+  (facts (neq n ncb) (neq n ncb-0) (neq n ncm) (neq ncm ncb)
+    (neq ncm ncb-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf-0 ncb-0
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf-0 ncb-0
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 48)
+  (parent 45)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account account-0 acct) (cost amount) (ncb n ncb-0 ncm data)
+    (item merchandise)
+    (btr mtr bank-conf merc-conf bank-conf-0 mtr-0 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account-0 bank-conf-0 ncb-0
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb-0 bank-conf-0)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf-0)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account-0 bank-conf-0 ncb-0
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb-0 bank-conf-0))) (cost cost)
+    (n n) (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c)
+    (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb-0) (neq n ncm) (neq ncm ncb-0)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test
+    (contracted (bank-conf-decommit (hash ncb bank-conf)))
+    (sign
+      (bconf (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+        mtr) (privk "sig" b)) (0 2)
+    (enc (hash ncb bank-conf)
+      (sign
+        (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+          btr mtr) (privk "sig" b)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf-0 ncb-0
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf-0 ncb-0
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf-0 ncb-0
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf-0 ncb-0
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 49)
+  (parent 46)
+  (unrealized (1 0) (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 0) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 4 0 merc 2)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf-0 ncb-0
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+      (sign
+        (order c m b cost
+          (enc n cost account-0 bank-conf-0 ncb-0
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 50)
+  (parent 48)
+  (seen 47)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account account-0 acct) (cost amount) (ncb n ncb-0 ncm data)
+    (item merchandise)
+    (btr mtr bank-conf merc-conf bank-conf-0 mtr-0 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account-0 bank-conf-0 ncb-0
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb-0 bank-conf-0)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf-0)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 0) (1 0))
+    ((4 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncb-0) (neq n ncm) (neq ncm ncb)
+    (neq ncm ncb-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand merc 2)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf-0 ncb-0
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf-0 ncb-0
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 51)
+  (parent 48)
+  (unrealized (1 0) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 4 2 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf-0 ncb-0
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 52)
+  (parent 49)
+  (unrealized (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account account-0 acct) (cost amount) (ncb n ncb-0 ncm data)
+    (item merchandise)
+    (btr mtr bank-conf merc-conf bank-conf-0 mtr-0 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account-0 bank-conf-0 ncb-0
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb-0 bank-conf-0)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf-0)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account-0 bank-conf-0 ncb-0
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb-0 bank-conf-0))) (cost cost)
+    (n n) (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c)
+    (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncb-0) (neq n ncm) (neq ncm ncb)
+    (neq ncm ncb-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf-0 ncb-0
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf-0 ncb-0
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf-0 ncb-0
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf-0 ncb-0
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 53)
+  (parent 49)
+  (unrealized (1 0) (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 0) (1 0))
+    ((4 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 5 0 merc 2)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf-0 ncb-0
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+      (sign
+        (order c m b cost
+          (enc n cost account-0 bank-conf-0 ncb-0
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m))
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account-0 bank-conf-0 ncb-0
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account-0 bank-conf-0 ncb-0
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 54)
+  (parent 51)
+  (unrealized (4 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (3 0)) ((3 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 4 2 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 55)
+  (parent 52)
+  (seen 47)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (3 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 56)
+  (parent 52)
+  (seen 55)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 5 3 merc 2)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf-0 ncb-0
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+      (sign
+        (order c m b cost
+          (enc n cost account-0 bank-conf-0 ncb-0
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 57)
+  (parent 53)
+  (seen 56)
+  (unrealized (3 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account account-0 acct) (cost amount) (ncb n ncb-0 ncm data)
+    (item merchandise)
+    (btr mtr bank-conf merc-conf bank-conf-0 mtr-0 mtr-1 text)
+    (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account-0 bank-conf-0 ncb-0
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb-0 bank-conf-0)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf-0)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account-0 bank-conf-0 ncb-0
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb-0 bank-conf-0))) (cost cost)
+    (n n) (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c)
+    (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (1 0)) ((5 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncb-0) (neq n ncm) (neq ncm ncb)
+    (neq ncm ncb-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand merc 2)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf-0 ncb-0
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf-0 ncb-0
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf-0 ncb-0
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf-0 ncb-0
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 58)
+  (parent 53)
+  (unrealized (1 0) (3 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 0) (4 0))
+    ((3 0) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 5 2 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (4 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 59)
+  (parent 54)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 0) (4 0))
+    ((4 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 5 3 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (4 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 60)
+  (parent 54)
+  (seen 50)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 0) (1 0))
+    ((4 1) (1 0)) ((5 0) (4 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (4 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 61)
+  (parent 54)
+  (seen 60)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (3 0)) ((3 1) (0 0))
+    ((4 0) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 5 2 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 62)
+  (parent 57)
+  (seen 50)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (1 0)) ((5 0) (3 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 63)
+  (parent 57)
+  (seen 62)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (1 0)) ((5 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 6 3 merc 2)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf-0 ncb-0
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+      (sign
+        (order c m b cost
+          (enc n cost account-0 bank-conf-0 ncb-0
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m))
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account-0 bank-conf-0 ncb-0
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account-0 bank-conf-0 ncb-0
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 64)
+  (parent 58)
+  (unrealized (3 0) (5 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 0) (3 0))
+    ((3 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation generalization deleted (3 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 65)
+  (parent 59)
+  (seen 47)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (3 0)) ((3 1) (0 0))
+    ((4 0) (1 0)) ((5 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 6 2 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 66)
+  (parent 64)
+  (unrealized (5 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (3 0)) ((5 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 6 4 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 67)
+  (parent 64)
+  (unrealized (5 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (1 0)) ((5 1) (1 0)) ((6 0) (3 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 68)
+  (parent 64)
+  (seen 74)
+  (unrealized (5 0))
+  (comment "4 in cohort - 3 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (3 0)) ((2 0) (5 0))
+    ((3 1) (0 0)) ((4 0) (1 0)) ((5 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 6 2 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 69)
+  (parent 66)
+  (seen 59)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (3 0)) ((3 1) (0 0))
+    ((4 0) (5 0)) ((5 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 6 4 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 70)
+  (parent 66)
+  (seen 60)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (3 0)) ((3 1) (0 0))
+    ((4 0) (1 0)) ((5 1) (1 0)) ((6 0) (5 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 71)
+  (parent 66)
+  (seen 61)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 0) (5 0))
+    ((3 1) (0 0)) ((4 0) (3 0)) ((5 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 6 2 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 72)
+  (parent 67)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (3 0)) ((4 0) (5 0)) ((5 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 6 4 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 73)
+  (parent 67)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (3 0)) ((5 1) (1 0)) ((6 0) (5 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 74)
+  (parent 67)
+  (seen 70)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 0) (5 0))
+    ((3 1) (0 0)) ((4 0) (1 0)) ((5 1) (1 0)) ((6 0) (3 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 7 2 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 75)
+  (parent 68)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (1 0)) ((5 1) (1 0)) ((6 0) (3 0)) ((6 0) (5 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 7 6 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 76)
+  (parent 68)
+  (seen 69)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (1 0)) ((5 1) (1 0)) ((6 0) (3 0)) ((7 0) (5 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 77)
+  (parent 68)
+  (seen 71)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 0) (4 0))
+    ((3 0) (0 0)) ((4 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation generalization deleted (3 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 78)
+  (parent 72)
+  (seen 65)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 0)) ((3 0) (2 0))
+    ((3 0) (4 0)) ((4 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation generalization deleted (2 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 79)
+  (parent 73)
+  (seen 65)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf mtr-0 text) (c m b name))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 0) (4 0))
+    ((3 0) (1 0)) ((4 1) (1 0)) ((5 0) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation generalization deleted (3 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 80)
+  (parent 75)
+  (seen 78)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol minipay-rely-guar basic
+  (defrole cust
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf bank-conf btr mtr text) (account acct)
+      (n ncb ncm data))
+    (trace
+      (send
+        (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    (facts (neq n ncb) (neq n ncm) (neq ncm ncb)))
+  (defrole merc
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf btr mtr text) (n ncm data)
+      (for-bank bank-conf-commit bank-conf-decommit mesg))
+    (trace
+      (recv
+        (enc n cost item merc-conf ncm bank-conf-commit
+          (sign (order c m b cost for-bank) (privk "sig" c))
+          (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n bank-conf-decommit))
+            btr mtr) (privk "sig" m))))
+    (uniq-orig mtr))
+  (defrole bank
+    (vars (c m b name) (cost amount) (bank-conf btr mtr text)
+      (merc-conf-decommit mesg) (account acct) (n ncb data))
+    (trace
+      (recv
+        (enc
+          (payreq c m b (hash cost n) merc-conf-decommit mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n merc-conf-decommit) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n merc-conf-decommit) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf (hash c m b n cost (hash n merc-conf-decommit)) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    (uniq-orig btr))
+  (defrule rely-cust-3
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 3)) (p "cust" "mtr" z mtr)
+          (p "cust" "item" z item) (p "cust" "b" z b) (p "cust" "m" z m)
+          (p "cust" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule rely-cust-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (b m c name))
+      (implies
+        (and (p "cust" z (idx 2)) (p "cust" "btr" z btr)
+          (p "cust" "mtr" z mtr) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "b" z b) (p "cust" "m" z m)
+          (p "cust" "c" z c))
+        (fact will-transfer c m b cost n mtr btr))))
+  (defrule rely-merc-3
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name)
+        (btr mtr text))
+      (implies
+        (and (p "merc" z (idx 3)) (p "merc" "n" z n)
+          (p "merc" "cost" z cost) (p "merc" "item" z item)
+          (p "merc" "b" z b) (p "merc" "m" z m) (p "merc" "c" z c)
+          (p "merc" "btr" z btr) (p "merc" "mtr" z mtr))
+        (and (fact buy-via c m b item cost n)
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule rely-bank-1
+    (forall ((z strd) (n data) (cost amount) (b m c name))
+      (implies
+        (and (p "bank" z (idx 1)) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "b" z b) (p "bank" "m" z m)
+          (p "bank" "c" z c))
+        (exists ((item merchandise))
+          (fact buy-via c m b item cost n)))))
+  (defrule guar-cust-1
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "item" z item)
+          (p "cust" "b" z b) (p "cust" "m" z m) (p "cust" "c" z c))
+        (fact buy-via c m b item cost n))))
+  (defrule guar-merc-4
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "mtr" z mtr)
+          (p "merc" "item" z item) (p "merc" "b" z b) (p "merc" "m" z m)
+          (p "merc" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule guar-bank-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (c b m name))
+      (implies
+        (and (p "bank" z (idx 2)) (p "bank" "btr" z btr)
+          (p "bank" "mtr" z mtr) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "c" z c) (p "bank" "b" z b)
+          (p "bank" "m" z m))
+        (and (non (privk "sig" c))
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule cheq-merc-4
+    (forall
+      ((z strd) (n data) (bank-conf-decommit bank-conf-commit mesg))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "n" z n)
+          (p "merc" "bank-conf-decommit" z bank-conf-decommit)
+          (p "merc" "bank-conf-commit" z bank-conf-commit))
+        (= bank-conf-commit (hash n bank-conf-decommit)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule fact-cust-neq2
+    (forall ((z strd) (ncb n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "n" z n)) (fact neq n ncb))))
+  (defgenrule fact-cust-neq1
+    (forall ((z strd) (ncm n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncm" z ncm)
+          (p "cust" "n" z n)) (fact neq n ncm))))
+  (defgenrule fact-cust-neq0
+    (forall ((z strd) (ncb ncm data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "ncm" z ncm)) (fact neq ncm ncb))))
+  (lang (acct atom) (amount atom) (merchandise atom) (sign sign)
+    (order (tuple 5)) (bconf (tuple 3)) (mconf (tuple 3))
+    (payreq (tuple 7))))
+
+(defskeleton minipay-rely-guar
+  (vars (merc-conf-decommit mesg) (account acct) (cost amount)
+    (n ncb data) (bank-conf btr mtr text) (c m b name))
+  (defstrand bank 2 (merc-conf-decommit merc-conf-decommit)
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m))
+  (uniq-orig btr)
+  (traces
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) merc-conf-decommit mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n merc-conf-decommit) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n merc-conf-decommit) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf (hash c m b n cost (hash n merc-conf-decommit)) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 81)
+  (unrealized (0 0))
+  (origs (btr (0 1)))
+  (comment "Not closed under rules"))
+
+(defskeleton minipay-rely-guar
+  (vars (item merchandise) (merc-conf-decommit mesg) (account acct)
+    (cost amount) (n ncb data) (bank-conf btr mtr text) (c m b name))
+  (defstrand bank 2 (merc-conf-decommit merc-conf-decommit)
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m))
+  (uniq-orig btr)
+  (facts (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr btr))
+  (rule guar-bank-2 rely-bank-1)
+  (traces
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) merc-conf-decommit mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n merc-conf-decommit) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n merc-conf-decommit) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf (hash c m b n cost (hash n merc-conf-decommit)) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 82)
+  (parent 81)
+  (unrealized (0 0))
+  (origs (btr (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf text) (c m b name))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m))
+  (uniq-orig btr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0))
+  (traces
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 83)
+  (parent 82)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf mtr-0 text) (c m b name))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((1 0) (0 0)) ((2 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m))
+  (uniq-orig btr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand merc 2)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 84)
+  (parent 83)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr merc-conf mtr text) (c m b name))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr) (c c) (m m)
+    (b b))
+  (precedes ((1 0) (0 0)) ((2 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m))
+  (uniq-orig btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (contracted (mtr-0 mtr))
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m))
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b)))
+  (traces
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 85)
+  (parent 84)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr merc-conf mtr text) (c m b name))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr) (c c) (m m)
+    (b b))
+  (precedes ((1 0) (2 0)) ((2 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m))
+  (uniq-orig btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 3 1 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 86)
+  (parent 85)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((c c) (m m) (b b) (n n) (cost cost) (bank-conf bank-conf)
+        (btr btr) (mtr mtr)
+        (merc-conf-decommit (hash ncm item merc-conf)) (account account)
+        (ncb ncb))))
+  (origs (mtr (2 1)) (btr (0 1))))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr merc-conf mtr text) (c m b name))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((1 0) (0 0)) ((2 1) (0 0)) ((3 0) (2 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m))
+  (uniq-orig btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 87)
+  (parent 85)
+  (seen 86)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol minipay-rely-guar basic
+  (defrole cust
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf bank-conf btr mtr text) (account acct)
+      (n ncb ncm data))
+    (trace
+      (send
+        (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    (facts (neq n ncb) (neq n ncm) (neq ncm ncb)))
+  (defrole merc
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf btr mtr text) (n ncm data)
+      (for-bank bank-conf-commit bank-conf-decommit mesg))
+    (trace
+      (recv
+        (enc n cost item merc-conf ncm bank-conf-commit
+          (sign (order c m b cost for-bank) (privk "sig" c))
+          (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n bank-conf-decommit))
+            btr mtr) (privk "sig" m))))
+    (uniq-orig mtr))
+  (defrole bank
+    (vars (c m b name) (cost amount) (bank-conf btr mtr text)
+      (merc-conf-decommit mesg) (account acct) (n ncb data))
+    (trace
+      (recv
+        (enc
+          (payreq c m b (hash cost n) merc-conf-decommit mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n merc-conf-decommit) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n merc-conf-decommit) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf (hash c m b n cost (hash n merc-conf-decommit)) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    (uniq-orig btr))
+  (defrule rely-cust-3
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 3)) (p "cust" "mtr" z mtr)
+          (p "cust" "item" z item) (p "cust" "b" z b) (p "cust" "m" z m)
+          (p "cust" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule rely-cust-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (b m c name))
+      (implies
+        (and (p "cust" z (idx 2)) (p "cust" "btr" z btr)
+          (p "cust" "mtr" z mtr) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "b" z b) (p "cust" "m" z m)
+          (p "cust" "c" z c))
+        (fact will-transfer c m b cost n mtr btr))))
+  (defrule rely-merc-3
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name)
+        (btr mtr text))
+      (implies
+        (and (p "merc" z (idx 3)) (p "merc" "n" z n)
+          (p "merc" "cost" z cost) (p "merc" "item" z item)
+          (p "merc" "b" z b) (p "merc" "m" z m) (p "merc" "c" z c)
+          (p "merc" "btr" z btr) (p "merc" "mtr" z mtr))
+        (and (fact buy-via c m b item cost n)
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule rely-bank-1
+    (forall ((z strd) (n data) (cost amount) (b m c name))
+      (implies
+        (and (p "bank" z (idx 1)) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "b" z b) (p "bank" "m" z m)
+          (p "bank" "c" z c))
+        (exists ((item merchandise))
+          (fact buy-via c m b item cost n)))))
+  (defrule guar-cust-1
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "item" z item)
+          (p "cust" "b" z b) (p "cust" "m" z m) (p "cust" "c" z c))
+        (fact buy-via c m b item cost n))))
+  (defrule guar-merc-4
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "mtr" z mtr)
+          (p "merc" "item" z item) (p "merc" "b" z b) (p "merc" "m" z m)
+          (p "merc" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule guar-bank-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (c b m name))
+      (implies
+        (and (p "bank" z (idx 2)) (p "bank" "btr" z btr)
+          (p "bank" "mtr" z mtr) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "c" z c) (p "bank" "b" z b)
+          (p "bank" "m" z m))
+        (and (non (privk "sig" c))
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule cheq-merc-4
+    (forall
+      ((z strd) (n data) (bank-conf-decommit bank-conf-commit mesg))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "n" z n)
+          (p "merc" "bank-conf-decommit" z bank-conf-decommit)
+          (p "merc" "bank-conf-commit" z bank-conf-commit))
+        (= bank-conf-commit (hash n bank-conf-decommit)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule fact-cust-neq2
+    (forall ((z strd) (ncb n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "n" z n)) (fact neq n ncb))))
+  (defgenrule fact-cust-neq1
+    (forall ((z strd) (ncm n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncm" z ncm)
+          (p "cust" "n" z n)) (fact neq n ncm))))
+  (defgenrule fact-cust-neq0
+    (forall ((z strd) (ncb ncm data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "ncm" z ncm)) (fact neq ncm ncb))))
+  (lang (acct atom) (amount atom) (merchandise atom) (sign sign)
+    (order (tuple 5)) (bconf (tuple 3)) (mconf (tuple 3))
+    (payreq (tuple 7))))
+
+(defskeleton minipay-rely-guar
+  (vars (merc-conf-decommit mesg) (account acct) (cost amount)
+    (n ncb data) (bank-conf btr mtr text) (c m b name))
+  (defstrand bank 2 (merc-conf-decommit merc-conf-decommit)
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (non-orig (privk "enc" m) (privk "sig" c))
+  (uniq-orig btr)
+  (traces
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) merc-conf-decommit mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n merc-conf-decommit) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n merc-conf-decommit) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf (hash c m b n cost (hash n merc-conf-decommit)) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 88)
+  (unrealized (0 0))
+  (origs (btr (0 1)))
+  (comment "Not closed under rules"))
+
+(defskeleton minipay-rely-guar
+  (vars (item merchandise) (merc-conf-decommit mesg) (account acct)
+    (cost amount) (n ncb data) (bank-conf btr mtr text) (c m b name))
+  (defstrand bank 2 (merc-conf-decommit merc-conf-decommit)
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (non-orig (privk "enc" m) (privk "sig" c))
+  (uniq-orig btr)
+  (facts (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr btr))
+  (rule guar-bank-2 rely-bank-1)
+  (traces
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) merc-conf-decommit mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n merc-conf-decommit) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n merc-conf-decommit) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf (hash c m b n cost (hash n merc-conf-decommit)) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 89)
+  (parent 88)
+  (unrealized (0 0))
+  (origs (btr (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf text) (c m b name))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "enc" m) (privk "sig" c))
+  (uniq-orig btr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0))
+  (traces
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 90)
+  (parent 89)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf mtr-0 text) (c m b name))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((1 0) (0 0)) ((2 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "sig" c))
+  (uniq-orig btr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand merc 2)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 91)
+  (parent 90)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf mtr-0 text) (c m b name))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((1 0) (2 0)) ((2 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "sig" c))
+  (uniq-orig btr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (displaced 3 1 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 92)
+  (parent 91)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((c c) (m m) (b b) (n n) (cost cost) (bank-conf bank-conf)
+        (btr btr) (mtr mtr)
+        (merc-conf-decommit (hash ncm item merc-conf)) (account account)
+        (ncb ncb))))
+  (origs (mtr-0 (2 1)) (btr (0 1))))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf mtr-0 text) (c m b name))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((1 0) (0 0)) ((2 1) (0 0)) ((3 0) (2 0)))
+  (non-orig (privk "enc" m) (privk "sig" c))
+  (uniq-orig btr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 93)
+  (parent 91)
+  (seen 92)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol minipay-rely-guar basic
+  (defrole cust
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf bank-conf btr mtr text) (account acct)
+      (n ncb ncm data))
+    (trace
+      (send
+        (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    (facts (neq n ncb) (neq n ncm) (neq ncm ncb)))
+  (defrole merc
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf btr mtr text) (n ncm data)
+      (for-bank bank-conf-commit bank-conf-decommit mesg))
+    (trace
+      (recv
+        (enc n cost item merc-conf ncm bank-conf-commit
+          (sign (order c m b cost for-bank) (privk "sig" c))
+          (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n bank-conf-decommit))
+            btr mtr) (privk "sig" m))))
+    (uniq-orig mtr))
+  (defrole bank
+    (vars (c m b name) (cost amount) (bank-conf btr mtr text)
+      (merc-conf-decommit mesg) (account acct) (n ncb data))
+    (trace
+      (recv
+        (enc
+          (payreq c m b (hash cost n) merc-conf-decommit mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n merc-conf-decommit) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n merc-conf-decommit) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf (hash c m b n cost (hash n merc-conf-decommit)) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    (uniq-orig btr))
+  (defrule rely-cust-3
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 3)) (p "cust" "mtr" z mtr)
+          (p "cust" "item" z item) (p "cust" "b" z b) (p "cust" "m" z m)
+          (p "cust" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule rely-cust-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (b m c name))
+      (implies
+        (and (p "cust" z (idx 2)) (p "cust" "btr" z btr)
+          (p "cust" "mtr" z mtr) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "b" z b) (p "cust" "m" z m)
+          (p "cust" "c" z c))
+        (fact will-transfer c m b cost n mtr btr))))
+  (defrule rely-merc-3
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name)
+        (btr mtr text))
+      (implies
+        (and (p "merc" z (idx 3)) (p "merc" "n" z n)
+          (p "merc" "cost" z cost) (p "merc" "item" z item)
+          (p "merc" "b" z b) (p "merc" "m" z m) (p "merc" "c" z c)
+          (p "merc" "btr" z btr) (p "merc" "mtr" z mtr))
+        (and (fact buy-via c m b item cost n)
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule rely-bank-1
+    (forall ((z strd) (n data) (cost amount) (b m c name))
+      (implies
+        (and (p "bank" z (idx 1)) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "b" z b) (p "bank" "m" z m)
+          (p "bank" "c" z c))
+        (exists ((item merchandise))
+          (fact buy-via c m b item cost n)))))
+  (defrule guar-cust-1
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "item" z item)
+          (p "cust" "b" z b) (p "cust" "m" z m) (p "cust" "c" z c))
+        (fact buy-via c m b item cost n))))
+  (defrule guar-merc-4
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "mtr" z mtr)
+          (p "merc" "item" z item) (p "merc" "b" z b) (p "merc" "m" z m)
+          (p "merc" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule guar-bank-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (c b m name))
+      (implies
+        (and (p "bank" z (idx 2)) (p "bank" "btr" z btr)
+          (p "bank" "mtr" z mtr) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "c" z c) (p "bank" "b" z b)
+          (p "bank" "m" z m))
+        (and (non (privk "sig" c))
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule cheq-merc-4
+    (forall
+      ((z strd) (n data) (bank-conf-decommit bank-conf-commit mesg))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "n" z n)
+          (p "merc" "bank-conf-decommit" z bank-conf-decommit)
+          (p "merc" "bank-conf-commit" z bank-conf-commit))
+        (= bank-conf-commit (hash n bank-conf-decommit)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule fact-cust-neq2
+    (forall ((z strd) (ncb n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "n" z n)) (fact neq n ncb))))
+  (defgenrule fact-cust-neq1
+    (forall ((z strd) (ncm n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncm" z ncm)
+          (p "cust" "n" z n)) (fact neq n ncm))))
+  (defgenrule fact-cust-neq0
+    (forall ((z strd) (ncb ncm data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "ncm" z ncm)) (fact neq ncm ncb))))
+  (lang (acct atom) (amount atom) (merchandise atom) (sign sign)
+    (order (tuple 5)) (bconf (tuple 3)) (mconf (tuple 3))
+    (payreq (tuple 7))))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (for-bank bank-conf-commit bank-conf-decommit for-bank-0
+      bank-conf-commit-0 bank-conf-decommit-0 mesg) (account acct)
+    (cost cost-0 cost-1 amount) (n ncb ncm ncm-0 ncm-1 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3 (for-bank for-bank-0)
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-1) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (non-orig (privk "enc" b) (privk "sig" b))
+  (uniq-orig n mtr-0 mtr-1)
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign (order c m b cost-0 for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat (sign (order c m b cost-0 for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-1 item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign (order c m b cost-1 for-bank-0) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-1 n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat (sign (order c m b cost-1 for-bank-0) (privk "sig" c))
+              for-bank-0)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-1
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 94)
+  (unrealized (0 1) (1 0) (1 2) (2 0) (2 2))
+  (preskeleton)
+  (origs (mtr-1 (2 1)) (mtr-0 (1 1)) (n (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (for-bank bank-conf-commit bank-conf-decommit for-bank-0
+      bank-conf-commit-0 bank-conf-decommit-0 mesg) (account acct)
+    (cost cost-0 cost-1 amount) (n ncb ncm ncm-0 ncm-1 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3 (for-bank for-bank-0)
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-1) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)))
+  (non-orig (privk "enc" b) (privk "sig" b))
+  (uniq-orig n mtr-0 mtr-1)
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign (order c m b cost-0 for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat (sign (order c m b cost-0 for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-1 item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign (order c m b cost-1 for-bank-0) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-1 n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat (sign (order c m b cost-1 for-bank-0) (privk "sig" c))
+              for-bank-0)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-1
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 95)
+  (parent 94)
+  (unrealized (0 1) (1 2) (2 2))
+  (origs (mtr-1 (2 1)) (mtr-0 (1 1)) (n (0 0)))
+  (comment "Not closed under rules"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (for-bank bank-conf-commit bank-conf-decommit for-bank-0
+      bank-conf-commit-0 bank-conf-decommit-0 mesg) (account acct)
+    (cost cost-0 cost-1 amount) (n ncb ncm ncm-0 ncm-1 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3 (for-bank for-bank-0)
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-1) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)))
+  (non-orig (privk "enc" b) (privk "sig" b))
+  (uniq-orig n mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr) (will-transfer c m b cost n mtr btr)
+    (will-transfer c m b cost-1 n mtr-1 btr-1)
+    (buy-via c m b item-1 cost-1 n)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (buy-via c m b item-0 cost-0 n) (buy-via c m b item cost n))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-cust-1
+    rely-cust-2 rely-cust-3 rely-merc-3)
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign (order c m b cost-0 for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat (sign (order c m b cost-0 for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-1 item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign (order c m b cost-1 for-bank-0) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-1 n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat (sign (order c m b cost-1 for-bank-0) (privk "sig" c))
+              for-bank-0)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-1
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 96)
+  (parent 95)
+  (unrealized (0 1) (1 2) (2 2))
+  (origs (mtr-1 (2 1)) (mtr-0 (1 1)) (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-commit bank-conf-decommit mesg)
+    (account acct) (cost cost-0 amount) (n ncb ncm ncm-0 data)
+    (item item-0 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 text)
+    (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)))
+  (non-orig (privk "enc" b) (privk "sig" b))
+  (uniq-orig n mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr) (will-transfer c m b cost n mtr btr)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (buy-via c m b item-0 cost-0 n) (buy-via c m b item cost n))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-cust-1
+    rely-cust-2 rely-cust-3 rely-merc-3)
+  (operation collapsed 2 1)
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign (order c m b cost-0 for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat (sign (order c m b cost-0 for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 97)
+  (parent 96)
+  (unrealized (0 1) (1 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (for-bank bank-conf-commit bank-conf-decommit for-bank-0
+      bank-conf-commit-0 bank-conf-decommit-0 mesg)
+    (account account-0 acct) (cost cost-0 cost-1 amount)
+    (n ncb ncm ncm-0 ncm-1 ncb-0 data) (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 bank-conf-0 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3 (for-bank for-bank-0)
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-1) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((3 1) (0 1)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr)
+    (will-transfer c m b cost-1 n mtr-1 btr-1)
+    (buy-via c m b item-1 cost-1 n)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (buy-via c m b item-0 cost-0 n) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (added-strand bank 2)
+    (sign
+      (bconf (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+        mtr) (privk "sig" b)) (0 1))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign (order c m b cost-0 for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat (sign (order c m b cost-0 for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-1 item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign (order c m b cost-1 for-bank-0) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-1 n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat (sign (order c m b cost-1 for-bank-0) (privk "sig" c))
+              for-bank-0)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-1
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 98)
+  (parent 96)
+  (unrealized (1 0) (1 2) (2 0) (2 2) (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-commit bank-conf-decommit mesg)
+    (account account-0 acct) (cost cost-0 amount)
+    (n ncb ncm ncm-0 ncb-0 data) (item item-0 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 bank-conf-0
+      text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (buy-via c m b item-0 cost-0 n) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (added-strand bank 2)
+    (sign
+      (bconf (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+        mtr) (privk "sig" b)) (0 1))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign (order c m b cost-0 for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat (sign (order c m b cost-0 for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 99)
+  (parent 97)
+  (unrealized (1 0) (1 2) (2 0))
+  (origs (btr (2 1)) (mtr-0 (1 1)) (n (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit for-bank bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 acct)
+    (cost cost-0 amount) (n ncb ncm ncm-0 ncm-1 ncb-0 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 bank-conf-0 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-0) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((3 1) (0 1)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr)
+    (will-transfer c m b cost-0 n mtr-1 btr-1)
+    (buy-via c m b item-1 cost-0 n)
+    (will-transfer c m b cost n mtr-0 btr-0)
+    (buy-via c m b item-0 cost n) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 4 0 cust 1)
+    (sign
+      (order c m b cost-1
+        (enc n-0 cost-1 account-1 bank-conf-1 ncb-1
+          (hash n-0 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-0 item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign (order c m b cost-0 for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat (sign (order c m b cost-0 for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 100)
+  (parent 98)
+  (unrealized (1 2) (2 0) (2 2) (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit for-bank bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 account-1 acct)
+    (cost cost-0 cost-1 amount)
+    (n ncb ncm ncm-0 ncm-1 ncb-0 n-0 ncb-1 ncm-2 data)
+    (item item-0 item-1 item-2 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 bank-conf-0 merc-conf-2 bank-conf-1 text)
+    (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-1) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost-0) (n n-0)
+    (ncb ncb-1) (ncm ncm-2) (item item-2) (merc-conf merc-conf-2)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((3 1) (0 1))
+    ((4 0) (1 0)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr-0 mtr-1)
+  (facts (neq n-0 ncb-1) (neq n ncb) (neq n-0 ncm-2) (neq n ncm)
+    (neq ncm-2 ncb-1) (neq ncm ncb) (will-ship c m b item mtr)
+    (will-transfer c m b cost-1 n mtr-1 btr-1)
+    (buy-via c m b item-1 cost-1 n)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (buy-via c m b item-0 cost-0 n) (buy-via c m b item-2 cost-0 n-0)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost-0
+        (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+          (hash n-0 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-1 item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign (order c m b cost-1 for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-1 n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat (sign (order c m b cost-1 for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-1
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost-0 item-2 merc-conf-2 ncm-2
+         (hash n-0 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))))
+  (label 101)
+  (parent 98)
+  (unrealized (1 2) (2 0) (2 2) (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit bank-conf-decommit mesg)
+    (account account-0 acct) (cost amount) (n ncb ncm ncm-0 ncb-0 data)
+    (item item-0 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 bank-conf-0
+      text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr) (will-transfer c m b cost n mtr-0 btr-0)
+    (buy-via c m b item-0 cost n) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 3 0 cust 1)
+    (sign
+      (order c m b cost-0
+        (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+          (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 102)
+  (parent 99)
+  (unrealized (1 2) (2 0))
+  (origs (btr (2 1)) (mtr-0 (1 1)) (n (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit bank-conf-decommit mesg)
+    (account account-0 account-1 acct) (cost cost-0 amount)
+    (n ncb ncm ncm-0 ncb-0 n-0 ncb-1 ncm-1 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 bank-conf-0
+      merc-conf-1 bank-conf-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost-0) (n n-0)
+    (ncb ncb-1) (ncm ncm-1) (item item-1) (merc-conf merc-conf-1)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((2 1) (0 1)) ((3 0) (1 0)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr-0)
+  (facts (neq n-0 ncb-1) (neq n ncb) (neq n-0 ncm-1) (neq n ncm)
+    (neq ncm-1 ncb-1) (neq ncm ncb) (will-ship c m b item mtr)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (buy-via c m b item-0 cost-0 n) (buy-via c m b item-1 cost-0 n-0)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost-0
+        (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+          (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost-0 item-1 merc-conf-1 ncm-1
+         (hash n-0 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))))
+  (label 103)
+  (parent 99)
+  (unrealized (1 2) (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit for-bank bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 acct)
+    (cost cost-0 amount) (n ncb ncm ncm-0 ncb-0 data)
+    (item item-0 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 bank-conf-0
+      text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand merc 3 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (3 0)) ((3 1) (0 1))
+    ((3 1) (1 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (buy-via c m b item-0 cost-0 n) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 4 3 bank 2)
+    (sign
+      (bconf
+        (hash c m b n cost (hash n (hash ncm-1 item-1 merc-conf-1)))
+        btr-1 mtr-1) (privk "sig" b)) (1 2))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit-0
+         (sign (order c m b cost-0 for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat (sign (order c m b cost-0 for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 104)
+  (parent 100)
+  (unrealized (2 0) (2 2) (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit for-bank bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 account-1 acct)
+    (cost cost-0 amount) (n ncb ncm ncm-0 ncm-1 ncb-0 ncb-1 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 bank-conf-0 bank-conf-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-0) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-1) (cost cost) (n n) (ncb ncb-1)
+    (bank-conf bank-conf-1) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (4 0))
+    ((3 1) (0 1)) ((4 1) (1 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr)
+    (will-transfer c m b cost-0 n mtr-1 btr-1)
+    (buy-via c m b item-1 cost-0 n) (buy-via c m b item-0 cost n)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (added-strand bank 2)
+    (sign
+      (bconf
+        (hash c m b n cost (hash n (hash ncm-0 item-0 merc-conf-0)))
+        btr-0 mtr-0) (privk "sig" b)) (1 2))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-0 item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign (order c m b cost-0 for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat (sign (order c m b cost-0 for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-1 bank-conf-1 ncb-1
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost account-1 bank-conf-1 ncb-1
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-1 bank-conf-1)
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 105)
+  (parent 100)
+  (unrealized (2 0) (2 2) (3 0) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit for-bank bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 account-1 acct)
+    (cost cost-0 amount) (n ncb ncm ncm-0 ncb-0 n-0 ncb-1 ncm-1 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 bank-conf-0
+      merc-conf-1 bank-conf-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand merc 3 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost) (n n-0) (ncb ncb-1)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (3 0)) ((3 1) (0 1))
+    ((3 1) (1 2)) ((4 0) (1 0)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0)
+  (facts (neq n-0 ncb-1) (neq n ncb) (neq n-0 ncm-1) (neq n ncm)
+    (neq ncm-1 ncb-1) (neq ncm ncb) (will-ship c m b item mtr)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (buy-via c m b item-0 cost-0 n) (buy-via c m b item-1 cost n-0)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 5 3 bank 2)
+    (sign
+      (bconf
+        (hash c m b n cost-1 (hash n (hash ncm-2 item-2 merc-conf-2)))
+        btr-1 mtr-1) (privk "sig" b)) (1 2))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit-0
+         (sign (order c m b cost-0 for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat (sign (order c m b cost-0 for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-1 merc-conf-1 ncm-1
+         (hash n-0 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))))
+  (label 106)
+  (parent 101)
+  (unrealized (2 0) (2 2) (3 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit for-bank bank-conf-commit-0
+      bank-conf-decommit-0 mesg)
+    (account account-0 account-1 account-2 acct)
+    (cost cost-0 cost-1 amount)
+    (n ncb ncm ncm-0 ncm-1 ncb-0 n-0 ncb-1 ncm-2 ncb-2 data)
+    (item item-0 item-1 item-2 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 bank-conf-0 merc-conf-2 bank-conf-1 bank-conf-2 text)
+    (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-1) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost-0) (n n-0)
+    (ncb ncb-1) (ncm ncm-2) (item item-2) (merc-conf merc-conf-2)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-2) (cost cost-0) (n n) (ncb ncb-2)
+    (bank-conf bank-conf-2) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (5 0))
+    ((3 1) (0 1)) ((4 0) (1 0)) ((5 1) (1 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 mtr-1)
+  (facts (neq n-0 ncb-1) (neq n ncb) (neq n-0 ncm-2) (neq n ncm)
+    (neq ncm-2 ncb-1) (neq ncm ncb) (will-ship c m b item mtr)
+    (will-transfer c m b cost-1 n mtr-1 btr-1)
+    (buy-via c m b item-1 cost-1 n) (buy-via c m b item-0 cost-0 n)
+    (buy-via c m b item-2 cost-0 n-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (added-strand bank 2)
+    (sign
+      (bconf
+        (hash c m b n cost-0 (hash n (hash ncm-0 item-0 merc-conf-0)))
+        btr-0 mtr-0) (privk "sig" b)) (1 2))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-1 item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign (order c m b cost-1 for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-1 n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat (sign (order c m b cost-1 for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-1
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost-0 item-2 merc-conf-2 ncm-2
+         (hash n-0 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost-0
+                 (enc n cost-0 account-2 bank-conf-2 ncb-2
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-0 account-2 bank-conf-2 ncb-2
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-2 bank-conf-2)
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 107)
+  (parent 101)
+  (unrealized (2 0) (2 2) (3 0) (5 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit bank-conf-decommit mesg)
+    (account account-0 acct) (cost amount) (n ncb ncm ncb-0 data)
+    (item merchandise) (merc-conf bank-conf btr mtr bank-conf-0 text)
+    (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)) ((2 1) (1 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3)
+  (operation encryption-test (displaced 3 2 bank 2)
+    (sign
+      (bconf
+        (hash c m b n cost (hash n (hash ncm-0 item-0 merc-conf-0)))
+        btr-0 mtr-0) (privk "sig" b)) (1 2))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 108)
+  (parent 102)
+  (unrealized (2 0))
+  (origs (btr (2 1)) (mtr (1 1)) (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit bank-conf-decommit mesg)
+    (account account-0 account-1 acct) (cost amount)
+    (n ncb ncm ncm-0 ncb-0 ncb-1 data) (item item-0 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 bank-conf-0
+      bank-conf-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-1) (cost cost) (n n) (ncb ncb-1)
+    (bank-conf bank-conf-1) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (3 0)) ((2 1) (0 1))
+    ((3 1) (1 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr) (buy-via c m b item-0 cost n)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (added-strand bank 2)
+    (sign
+      (bconf
+        (hash c m b n cost (hash n (hash ncm-0 item-0 merc-conf-0)))
+        btr-0 mtr-0) (privk "sig" b)) (1 2))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-1 bank-conf-1 ncb-1
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost account-1 bank-conf-1 ncb-1
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-1 bank-conf-1)
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 109)
+  (parent 102)
+  (unrealized (2 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit bank-conf-decommit mesg)
+    (account account-0 account-1 acct) (cost amount)
+    (n ncb ncm ncb-0 n-0 ncb-1 ncm-0 data) (item item-0 merchandise)
+    (merc-conf bank-conf btr mtr bank-conf-0 merc-conf-0 bank-conf-1
+      text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost) (n n-0) (ncb ncb-1)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)) ((2 1) (1 2))
+    ((3 0) (1 0)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr)
+  (facts (neq n-0 ncb-1) (neq n ncb) (neq n-0 ncm-0) (neq n ncm)
+    (neq ncm-0 ncb-1) (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-0 cost n-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3)
+  (operation encryption-test (displaced 4 2 bank 2)
+    (sign
+      (bconf
+        (hash c m b n cost-0 (hash n (hash ncm-1 item-1 merc-conf-1)))
+        btr-0 mtr-0) (privk "sig" b)) (1 2))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))))
+  (label 110)
+  (parent 103)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit bank-conf-decommit mesg)
+    (account account-0 account-1 account-2 acct) (cost cost-0 amount)
+    (n ncb ncm ncm-0 ncb-0 n-0 ncb-1 ncm-1 ncb-2 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 bank-conf-0
+      merc-conf-1 bank-conf-1 bank-conf-2 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost-0) (n n-0)
+    (ncb ncb-1) (ncm ncm-1) (item item-1) (merc-conf merc-conf-1)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-2) (cost cost-0) (n n) (ncb ncb-2)
+    (bank-conf bank-conf-2) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (4 0)) ((2 1) (0 1))
+    ((3 0) (1 0)) ((4 1) (1 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0)
+  (facts (neq n-0 ncb-1) (neq n ncb) (neq n-0 ncm-1) (neq n ncm)
+    (neq ncm-1 ncb-1) (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-0 cost-0 n) (buy-via c m b item-1 cost-0 n-0)
+    (buy-via c m b item cost n)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (added-strand bank 2)
+    (sign
+      (bconf
+        (hash c m b n cost-0 (hash n (hash ncm-0 item-0 merc-conf-0)))
+        btr-0 mtr-0) (privk "sig" b)) (1 2))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost-0 item-1 merc-conf-1 ncm-1
+         (hash n-0 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost-0
+                 (enc n cost-0 account-2 bank-conf-2 ncb-2
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-0 account-2 bank-conf-2 ncb-2
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-2 bank-conf-2)
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 111)
+  (parent 103)
+  (unrealized (2 0) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 acct) (cost amount)
+    (n ncb ncm ncm-0 ncb-0 data) (item item-0 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 bank-conf-0
+      text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (3 0)) ((3 1) (0 1))
+    ((3 1) (1 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr) (will-transfer c m b cost n mtr-0 btr-0)
+    (buy-via c m b item-0 cost n) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 4 0 cust 1)
+    (sign
+      (order c m b cost-0
+        (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+          (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit-0
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 112)
+  (parent 104)
+  (unrealized (2 2) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 account-1 acct)
+    (cost cost-0 amount) (n ncb ncm ncm-0 ncb-0 n-0 ncb-1 ncm-1 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 bank-conf-0
+      merc-conf-1 bank-conf-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost-0) (n n-0)
+    (ncb ncb-1) (ncm ncm-1) (item item-1) (merc-conf merc-conf-1)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (3 0)) ((3 1) (0 1))
+    ((3 1) (1 2)) ((4 0) (2 0)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0)
+  (facts (neq n-0 ncb-1) (neq n ncb) (neq n-0 ncm-1) (neq n ncm)
+    (neq ncm-1 ncb-1) (neq ncm ncb) (will-ship c m b item mtr)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (buy-via c m b item-0 cost-0 n) (buy-via c m b item-1 cost-0 n-0)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost-0
+        (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+          (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit-0
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost-0 item-1 merc-conf-1 ncm-1
+         (hash n-0 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))))
+  (label 113)
+  (parent 104)
+  (unrealized (2 2) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 account-1 acct)
+    (cost amount) (n ncb ncm ncm-0 ncm-1 ncb-0 ncb-1 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 bank-conf-0 bank-conf-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-1) (cost cost) (n n) (ncb ncb-1)
+    (bank-conf bank-conf-1) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (4 0))
+    ((3 1) (0 1)) ((4 1) (1 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr) (will-transfer c m b cost n mtr-1 btr-1)
+    (buy-via c m b item-1 cost n) (buy-via c m b item-0 cost n)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 5 0 cust 1)
+    (sign
+      (order c m b cost-0
+        (enc n-0 cost-0 account-2 bank-conf-2 ncb-2
+          (hash n-0 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-1 bank-conf-1 ncb-1
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost account-1 bank-conf-1 ncb-1
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-1 bank-conf-1)
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 114)
+  (parent 105)
+  (seen 126)
+  (unrealized (2 2) (3 0) (4 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg)
+    (account account-0 account-1 account-2 acct) (cost cost-0 amount)
+    (n ncb ncm ncm-0 ncm-1 ncb-0 ncb-1 n-0 ncb-2 ncm-2 data)
+    (item item-0 item-1 item-2 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 bank-conf-0 bank-conf-1 merc-conf-2 bank-conf-2 text)
+    (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-2 bank-conf-2 ncb-2
+        (hash n-0 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-0) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-1) (cost cost) (n n) (ncb ncb-1)
+    (bank-conf bank-conf-1) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-2) (cost cost-0) (n n-0)
+    (ncb ncb-2) (ncm ncm-2) (item item-2) (merc-conf merc-conf-2)
+    (bank-conf bank-conf-2) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (4 0))
+    ((3 1) (0 1)) ((4 1) (1 2)) ((5 0) (2 0)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 mtr-1)
+  (facts (neq n-0 ncb-2) (neq n ncb) (neq n-0 ncm-2) (neq n ncm)
+    (neq ncm-2 ncb-2) (neq ncm ncb) (will-ship c m b item mtr)
+    (will-transfer c m b cost-0 n mtr-1 btr-1)
+    (buy-via c m b item-1 cost-0 n) (buy-via c m b item-0 cost n)
+    (buy-via c m b item-2 cost-0 n-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost-0
+        (enc n-0 cost-0 account-2 bank-conf-2 ncb-2
+          (hash n-0 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-0 item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-2 bank-conf-2 ncb-2
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-2 bank-conf-2 ncb-2
+                    (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-2 bank-conf-2 ncb-2
+                (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-1 bank-conf-1 ncb-1
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost account-1 bank-conf-1 ncb-1
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-1 bank-conf-1)
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost-0 item-2 merc-conf-2 ncm-2
+         (hash n-0 (hash ncb-2 bank-conf-2))
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-2 bank-conf-2 ncb-2
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))))
+  (label 115)
+  (parent 105)
+  (unrealized (2 2) (3 0) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 account-1 acct)
+    (cost amount) (n ncb ncm ncm-0 ncb-0 n-0 ncb-1 ncm-1 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 bank-conf-0
+      merc-conf-1 bank-conf-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost) (n n-0) (ncb ncb-1)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (3 0)) ((3 1) (0 1))
+    ((3 1) (1 2)) ((4 0) (1 0)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0)
+  (facts (neq n-0 ncb-1) (neq n ncb) (neq n-0 ncm-1) (neq n ncm)
+    (neq ncm-1 ncb-1) (neq ncm ncb) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr-0 btr-0)
+    (buy-via c m b item-0 cost n) (buy-via c m b item-1 cost n-0)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 5 0 cust 1)
+    (sign
+      (order c m b cost-0
+        (enc n-1 cost-0 account-2 bank-conf-2 ncb-2
+          (hash n-1 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit-0
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-1 merc-conf-1 ncm-1
+         (hash n-0 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))))
+  (label 116)
+  (parent 106)
+  (seen 129)
+  (unrealized (2 2) (3 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 account-1 acct)
+    (cost amount) (n ncb ncm ncm-0 ncb-0 n-0 ncb-1 ncm-1 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 bank-conf-0
+      merc-conf-1 bank-conf-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost) (n n-0) (ncb ncb-1)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (3 0)) ((3 1) (0 1))
+    ((3 1) (1 2)) ((4 0) (1 0)) ((4 0) (2 0)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0)
+  (facts (neq n-0 ncb-1) (neq n ncb) (neq n-0 ncm-1) (neq n ncm)
+    (neq ncm-1 ncb-1) (neq ncm ncb) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr-0 btr-0)
+    (buy-via c m b item-0 cost n) (buy-via c m b item-1 cost n-0)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 5 4 cust 1)
+    (sign
+      (order c m b cost-0
+        (enc n-1 cost-0 account-2 bank-conf-2 ncb-2
+          (hash n-1 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit-0
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-1 merc-conf-1 ncm-1
+         (hash n-0 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))))
+  (label 117)
+  (parent 106)
+  (unrealized (2 2) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg)
+    (account account-0 account-1 account-2 acct) (cost cost-0 amount)
+    (n ncb ncm ncm-0 ncb-0 n-0 ncb-1 ncm-1 n-1 ncb-2 ncm-2 data)
+    (item item-0 item-1 item-2 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 bank-conf-0
+      merc-conf-1 bank-conf-1 merc-conf-2 bank-conf-2 text)
+    (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-1 cost-0 account-2 bank-conf-2 ncb-2
+        (hash n-1 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost) (n n-0) (ncb ncb-1)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-2) (cost cost-0) (n n-1)
+    (ncb ncb-2) (ncm ncm-2) (item item-2) (merc-conf merc-conf-2)
+    (bank-conf bank-conf-2) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (3 0)) ((3 1) (0 1))
+    ((3 1) (1 2)) ((4 0) (1 0)) ((5 0) (2 0)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr mtr-0)
+  (facts (neq n-1 ncb-2) (neq n-0 ncb-1) (neq n ncb) (neq n-1 ncm-2)
+    (neq n-0 ncm-1) (neq n ncm) (neq ncm-2 ncb-2) (neq ncm-1 ncb-1)
+    (neq ncm ncb) (will-ship c m b item mtr)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (buy-via c m b item-0 cost-0 n) (buy-via c m b item-2 cost-0 n-1)
+    (buy-via c m b item-1 cost n-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost-0
+        (enc n-1 cost-0 account-2 bank-conf-2 ncb-2
+          (hash n-1 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit-0
+         (sign
+           (order c m b cost-0
+             (enc n-1 cost-0 account-2 bank-conf-2 ncb-2
+               (hash n-1 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-1 cost-0 account-2 bank-conf-2 ncb-2
+                    (hash n-1 (hash ncm-2 item-2 merc-conf-2))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-1 cost-0 account-2 bank-conf-2 ncb-2
+                (hash n-1 (hash ncm-2 item-2 merc-conf-2))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-1 merc-conf-1 ncm-1
+         (hash n-0 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n-1 cost-0 item-2 merc-conf-2 ncm-2
+         (hash n-1 (hash ncb-2 bank-conf-2))
+         (sign
+           (order c m b cost-0
+             (enc n-1 cost-0 account-2 bank-conf-2 ncb-2
+               (hash n-1 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))))
+  (label 118)
+  (parent 106)
+  (unrealized (2 2) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg)
+    (account account-0 account-1 account-2 acct) (cost cost-0 amount)
+    (n ncb ncm ncm-0 ncm-1 ncb-0 n-0 ncb-1 ncm-2 ncb-2 data)
+    (item item-0 item-1 item-2 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 bank-conf-0 merc-conf-2 bank-conf-1 bank-conf-2 text)
+    (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost-0) (n n-0)
+    (ncb ncb-1) (ncm ncm-2) (item item-2) (merc-conf merc-conf-2)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-2) (cost cost-0) (n n) (ncb ncb-2)
+    (bank-conf bank-conf-2) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (5 0))
+    ((3 1) (0 1)) ((4 0) (1 0)) ((5 1) (1 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 mtr-1)
+  (facts (neq n-0 ncb-1) (neq n ncb) (neq n-0 ncm-2) (neq n ncm)
+    (neq ncm-2 ncb-1) (neq ncm ncb) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr-1 btr-1)
+    (buy-via c m b item-1 cost n) (buy-via c m b item-0 cost-0 n)
+    (buy-via c m b item-2 cost-0 n-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 6 0 cust 1)
+    (sign
+      (order c m b cost-1
+        (enc n-1 cost-1 account-3 bank-conf-3 ncb-3
+          (hash n-1 (hash ncm-3 item-3 merc-conf-3)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost-0 item-2 merc-conf-2 ncm-2
+         (hash n-0 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost-0
+                 (enc n cost-0 account-2 bank-conf-2 ncb-2
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-0 account-2 bank-conf-2 ncb-2
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-2 bank-conf-2)
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 119)
+  (parent 107)
+  (seen 127 130)
+  (unrealized (2 2) (3 0) (5 0))
+  (comment "2 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg)
+    (account account-0 account-1 account-2 acct) (cost cost-0 amount)
+    (n ncb ncm ncm-0 ncm-1 ncb-0 n-0 ncb-1 ncm-2 ncb-2 data)
+    (item item-0 item-1 item-2 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 bank-conf-0 merc-conf-2 bank-conf-1 bank-conf-2 text)
+    (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-0) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost-0) (n n-0)
+    (ncb ncb-1) (ncm ncm-2) (item item-2) (merc-conf merc-conf-2)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-2) (cost cost-0) (n n) (ncb ncb-2)
+    (bank-conf bank-conf-2) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (5 0))
+    ((3 1) (0 1)) ((4 0) (1 0)) ((4 0) (2 0)) ((5 1) (1 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 mtr-1)
+  (facts (neq n-0 ncb-1) (neq n ncb) (neq n-0 ncm-2) (neq n ncm)
+    (neq ncm-2 ncb-1) (neq ncm ncb) (will-ship c m b item mtr)
+    (will-transfer c m b cost-0 n mtr-1 btr-1)
+    (buy-via c m b item-1 cost-0 n) (buy-via c m b item-0 cost-0 n)
+    (buy-via c m b item-2 cost-0 n-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 6 4 cust 1)
+    (sign
+      (order c m b cost-1
+        (enc n-1 cost-1 account-3 bank-conf-3 ncb-3
+          (hash n-1 (hash ncm-3 item-3 merc-conf-3)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-0 item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost-0 item-2 merc-conf-2 ncm-2
+         (hash n-0 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost-0
+                 (enc n cost-0 account-2 bank-conf-2 ncb-2
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-0 account-2 bank-conf-2 ncb-2
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-2 bank-conf-2)
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 120)
+  (parent 107)
+  (seen 131)
+  (unrealized (2 2) (3 0) (5 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg)
+    (account account-0 account-1 account-2 account-3 acct)
+    (cost cost-0 cost-1 amount)
+    (n ncb ncm ncm-0 ncm-1 ncb-0 n-0 ncb-1 ncm-2 ncb-2 n-1 ncb-3 ncm-3
+      data) (item item-0 item-1 item-2 item-3 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 bank-conf-0 merc-conf-2 bank-conf-1 bank-conf-2
+      merc-conf-3 bank-conf-3 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-1 cost-1 account-3 bank-conf-3 ncb-3
+        (hash n-1 (hash ncm-3 item-3 merc-conf-3)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-1) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost-0) (n n-0)
+    (ncb ncb-1) (ncm ncm-2) (item item-2) (merc-conf merc-conf-2)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-2) (cost cost-0) (n n) (ncb ncb-2)
+    (bank-conf bank-conf-2) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-3) (cost cost-1) (n n-1)
+    (ncb ncb-3) (ncm ncm-3) (item item-3) (merc-conf merc-conf-3)
+    (bank-conf bank-conf-3) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (5 0))
+    ((3 1) (0 1)) ((4 0) (1 0)) ((5 1) (1 2)) ((6 0) (2 0)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 mtr-1)
+  (facts (neq n-1 ncb-3) (neq n-0 ncb-1) (neq n ncb) (neq n-1 ncm-3)
+    (neq n-0 ncm-2) (neq n ncm) (neq ncm-3 ncb-3) (neq ncm-2 ncb-1)
+    (neq ncm ncb) (will-ship c m b item mtr)
+    (will-transfer c m b cost-1 n mtr-1 btr-1)
+    (buy-via c m b item-1 cost-1 n) (buy-via c m b item-0 cost-0 n)
+    (buy-via c m b item-3 cost-1 n-1) (buy-via c m b item-2 cost-0 n-0)
+    (buy-via c m b item cost n)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost-1
+        (enc n-1 cost-1 account-3 bank-conf-3 ncb-3
+          (hash n-1 (hash ncm-3 item-3 merc-conf-3)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-1 item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign
+           (order c m b cost-1
+             (enc n-1 cost-1 account-3 bank-conf-3 ncb-3
+               (hash n-1 (hash ncm-3 item-3 merc-conf-3))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-1 n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat
+              (sign
+                (order c m b cost-1
+                  (enc n-1 cost-1 account-3 bank-conf-3 ncb-3
+                    (hash n-1 (hash ncm-3 item-3 merc-conf-3))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-1 cost-1 account-3 bank-conf-3 ncb-3
+                (hash n-1 (hash ncm-3 item-3 merc-conf-3))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-1
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost-0 item-2 merc-conf-2 ncm-2
+         (hash n-0 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost-0
+                 (enc n cost-0 account-2 bank-conf-2 ncb-2
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-0 account-2 bank-conf-2 ncb-2
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-2 bank-conf-2)
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-1 cost-1 item-3 merc-conf-3 ncm-3
+         (hash n-1 (hash ncb-3 bank-conf-3))
+         (sign
+           (order c m b cost-1
+             (enc n-1 cost-1 account-3 bank-conf-3 ncb-3
+               (hash n-1 (hash ncm-3 item-3 merc-conf-3))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))))
+  (label 121)
+  (parent 107)
+  (seen 132)
+  (unrealized (2 2) (3 0) (5 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit bank-conf-decommit mesg) (account acct)
+    (cost amount) (n ncb ncm data) (item merchandise)
+    (merc-conf bank-conf btr mtr text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)) ((2 1) (1 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3)
+  (operation encryption-test (displaced 3 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf-0 ncb-0
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 122)
+  (parent 108)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 1)
+      ((c c) (m m) (b b) (n n) (cost cost) (item item)
+        (merc-conf merc-conf) (bank-conf bank-conf) (btr btr) (mtr mtr)
+        (account account) (ncb ncb) (ncm ncm) (cost-0 cost)
+        (item-0 item) (merc-conf-0 merc-conf) (btr-0 btr) (mtr-0 mtr)
+        (ncm-0 ncm)
+        (for-bank
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (bank-conf-commit bank-conf-commit)
+        (bank-conf-decommit bank-conf-decommit) (cost-1 cost)
+        (item-1 item) (merc-conf-1 merc-conf) (btr-1 btr) (mtr-1 mtr)
+        (ncm-1 ncm)
+        (for-bank-0
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (bank-conf-commit-0 bank-conf-commit)
+        (bank-conf-decommit-0 bank-conf-decommit))))
+  (origs (btr (2 1)) (mtr (1 1)) (n (0 0))))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit bank-conf-decommit mesg)
+    (account account-0 acct) (cost amount) (n ncb ncm ncm-0 ncb-0 data)
+    (item item-0 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 bank-conf-0
+      text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (3 0)) ((2 1) (0 1))
+    ((3 1) (1 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr) (buy-via c m b item-0 cost n)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 4 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-1 bank-conf-1 ncb-1
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 123)
+  (parent 109)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit bank-conf-decommit mesg)
+    (account account-0 acct) (cost amount)
+    (n ncb ncm n-0 ncb-0 ncm-0 data) (item item-0 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 bank-conf-0 text)
+    (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n-0) (ncb ncb-0)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)) ((2 1) (1 2))
+    ((3 0) (1 0)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr)
+  (facts (neq n-0 ncb-0) (neq n ncb) (neq n-0 ncm-0) (neq n ncm)
+    (neq ncm-0 ncb-0) (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-0 cost n-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3)
+  (operation encryption-test (displaced 4 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-1 bank-conf-1 ncb-1
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))))
+  (label 124)
+  (parent 110)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit bank-conf-decommit mesg)
+    (account account-0 account-1 acct) (cost cost-0 amount)
+    (n ncb ncm ncm-0 n-0 ncb-0 ncm-1 ncb-1 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      bank-conf-0 bank-conf-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost-0) (n n-0)
+    (ncb ncb-0) (ncm ncm-1) (item item-1) (merc-conf merc-conf-1)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-1) (cost cost-0) (n n) (ncb ncb-1)
+    (bank-conf bank-conf-1) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (4 0)) ((2 1) (0 1))
+    ((3 0) (1 0)) ((4 1) (1 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0)
+  (facts (neq n-0 ncb-0) (neq n ncb) (neq n-0 ncm-1) (neq n ncm)
+    (neq ncm-1 ncb-0) (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-0 cost-0 n) (buy-via c m b item-1 cost-0 n-0)
+    (buy-via c m b item cost n)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 5 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-2 bank-conf-2 ncb-2
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost-0 item-1 merc-conf-1 ncm-1
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost-0
+                 (enc n cost-0 account-1 bank-conf-1 ncb-1
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-0 account-1 bank-conf-1 ncb-1
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-1 bank-conf-1)
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 125)
+  (parent 111)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 account-1 acct)
+    (cost amount) (n ncb ncm ncm-0 ncb-0 ncb-1 data)
+    (item item-0 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 bank-conf-0
+      bank-conf-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-1) (cost cost) (n n) (ncb ncb-1)
+    (bank-conf bank-conf-1) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (3 0)) ((2 1) (4 0))
+    ((3 1) (0 1)) ((3 1) (1 2)) ((4 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr btr-0 mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr) (buy-via c m b item-0 cost n)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (added-strand bank 2)
+    (sign
+      (bconf
+        (hash c m b n cost (hash n (hash ncm-0 item-0 merc-conf-0)))
+        btr-0 mtr-0) (privk "sig" b)) (2 2))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit-0
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-1 bank-conf-1 ncb-1
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost account-1 bank-conf-1 ncb-1
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-1 bank-conf-1)
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 126)
+  (parent 112)
+  (unrealized (3 0) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg)
+    (account account-0 account-1 account-2 acct) (cost cost-0 amount)
+    (n ncb ncm ncm-0 ncb-0 n-0 ncb-1 ncm-1 ncb-2 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 bank-conf-0
+      merc-conf-1 bank-conf-1 bank-conf-2 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost-0) (n n-0)
+    (ncb ncb-1) (ncm ncm-1) (item item-1) (merc-conf merc-conf-1)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-2) (cost cost-0) (n n) (ncb ncb-2)
+    (bank-conf bank-conf-2) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (3 0)) ((2 1) (5 0))
+    ((3 1) (0 1)) ((3 1) (1 2)) ((4 0) (2 0)) ((5 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr btr-0 mtr-0)
+  (facts (neq n-0 ncb-1) (neq n ncb) (neq n-0 ncm-1) (neq n ncm)
+    (neq ncm-1 ncb-1) (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-0 cost-0 n) (buy-via c m b item-1 cost-0 n-0)
+    (buy-via c m b item cost n)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (added-strand bank 2)
+    (sign
+      (bconf
+        (hash c m b n cost-0 (hash n (hash ncm-0 item-0 merc-conf-0)))
+        btr-0 mtr-0) (privk "sig" b)) (2 2))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit-0
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost-0 item-1 merc-conf-1 ncm-1
+         (hash n-0 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost-0
+                 (enc n cost-0 account-2 bank-conf-2 ncb-2
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-0 account-2 bank-conf-2 ncb-2
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-2 bank-conf-2)
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 127)
+  (parent 113)
+  (unrealized (3 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg)
+    (account account-0 account-1 account-2 acct) (cost amount)
+    (n ncb ncm ncm-0 ncm-1 ncb-0 ncb-1 ncb-2 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 bank-conf-0 bank-conf-1 bank-conf-2 text)
+    (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-1) (cost cost) (n n) (ncb ncb-1)
+    (bank-conf bank-conf-1) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-1 item-1 merc-conf-1))
+    (account account-2) (cost cost) (n n) (ncb ncb-2)
+    (bank-conf bank-conf-2) (btr btr-1) (mtr mtr-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (0 1)) ((4 1) (1 2)) ((5 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 btr-1 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr) (buy-via c m b item-1 cost n)
+    (buy-via c m b item-0 cost n) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr-1 btr-1)
+    (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (added-strand bank 2)
+    (sign
+      (bconf
+        (hash c m b n cost (hash n (hash ncm-1 item-1 merc-conf-1)))
+        btr-1 mtr-1) (privk "sig" b)) (2 2))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-1 bank-conf-1 ncb-1
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost account-1 bank-conf-1 ncb-1
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-1 bank-conf-1)
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm-1 item-1 merc-conf-1)
+           mtr-1
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-2 bank-conf-2 ncb-2
+                   (hash n (hash ncm-1 item-1 merc-conf-1))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost account-2 bank-conf-2 ncb-2
+               (hash n (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-2 bank-conf-2)
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 128)
+  (parent 114)
+  (unrealized (3 0) (4 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg)
+    (account account-0 account-1 account-2 acct) (cost amount)
+    (n ncb ncm ncm-0 ncb-0 ncb-1 n-0 ncb-2 ncm-1 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 bank-conf-0
+      bank-conf-1 merc-conf-1 bank-conf-2 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-2 bank-conf-2 ncb-2
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-1) (cost cost) (n n) (ncb ncb-1)
+    (bank-conf bank-conf-1) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-2) (cost cost) (n n-0) (ncb ncb-2)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1)
+    (bank-conf bank-conf-2) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (4 0)) ((2 1) (3 0))
+    ((3 1) (0 1)) ((3 1) (2 2)) ((4 1) (1 2)) ((5 0) (2 0)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr btr-0 mtr-0)
+  (facts (neq n-0 ncb-2) (neq n ncb) (neq n-0 ncm-1) (neq n ncm)
+    (neq ncm-1 ncb-2) (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-0 cost n) (buy-via c m b item-1 cost n-0)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 6 3 bank 2)
+    (sign
+      (bconf
+        (hash c m b n cost-0 (hash n (hash ncm-2 item-2 merc-conf-2)))
+        btr-1 mtr-1) (privk "sig" b)) (2 2))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit-0
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-2 bank-conf-2 ncb-2
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-2 bank-conf-2 ncb-2
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-2 bank-conf-2 ncb-2
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-1 bank-conf-1 ncb-1
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost account-1 bank-conf-1 ncb-1
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-1 bank-conf-1)
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-1 merc-conf-1 ncm-1
+         (hash n-0 (hash ncb-2 bank-conf-2))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-2 bank-conf-2 ncb-2
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))))
+  (label 129)
+  (parent 115)
+  (unrealized (3 0) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg)
+    (account account-0 account-1 account-2 account-3 acct)
+    (cost cost-0 amount)
+    (n ncb ncm ncm-0 ncm-1 ncb-0 ncb-1 n-0 ncb-2 ncm-2 ncb-3 data)
+    (item item-0 item-1 item-2 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 bank-conf-0 bank-conf-1 merc-conf-2 bank-conf-2
+      bank-conf-3 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-2 bank-conf-2 ncb-2
+        (hash n-0 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-0) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-1) (cost cost) (n n) (ncb ncb-1)
+    (bank-conf bank-conf-1) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-2) (cost cost-0) (n n-0)
+    (ncb ncb-2) (ncm ncm-2) (item item-2) (merc-conf merc-conf-2)
+    (bank-conf bank-conf-2) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-1 item-1 merc-conf-1))
+    (account account-3) (cost cost-0) (n n) (ncb ncb-3)
+    (bank-conf bank-conf-3) (btr btr-1) (mtr mtr-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (4 0))
+    ((2 1) (6 0)) ((3 1) (0 1)) ((4 1) (1 2)) ((5 0) (2 0))
+    ((6 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 btr-1 mtr-1)
+  (facts (neq n-0 ncb-2) (neq n ncb) (neq n-0 ncm-2) (neq n ncm)
+    (neq ncm-2 ncb-2) (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-1 cost-0 n) (buy-via c m b item-0 cost n)
+    (buy-via c m b item-2 cost-0 n-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost-0 n mtr-1 btr-1)
+    (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (added-strand bank 2)
+    (sign
+      (bconf
+        (hash c m b n cost-0 (hash n (hash ncm-1 item-1 merc-conf-1)))
+        btr-1 mtr-1) (privk "sig" b)) (2 2))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-0 item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-2 bank-conf-2 ncb-2
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-2 bank-conf-2 ncb-2
+                    (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-2 bank-conf-2 ncb-2
+                (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-1 bank-conf-1 ncb-1
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost account-1 bank-conf-1 ncb-1
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-1 bank-conf-1)
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost-0 item-2 merc-conf-2 ncm-2
+         (hash n-0 (hash ncb-2 bank-conf-2))
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-2 bank-conf-2 ncb-2
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-0 n) (hash ncm-1 item-1 merc-conf-1)
+           mtr-1
+           (cat
+             (sign
+               (order c m b cost-0
+                 (enc n cost-0 account-3 bank-conf-3 ncb-3
+                   (hash n (hash ncm-1 item-1 merc-conf-1))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-0 account-3 bank-conf-3 ncb-3
+               (hash n (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-3 bank-conf-3)
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 130)
+  (parent 115)
+  (unrealized (3 0) (4 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg)
+    (account account-0 account-1 account-2 acct) (cost amount)
+    (n ncb ncm ncm-0 ncb-0 n-0 ncb-1 ncm-1 ncb-2 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 bank-conf-0
+      merc-conf-1 bank-conf-1 bank-conf-2 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost) (n n-0) (ncb ncb-1)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-2) (cost cost) (n n) (ncb ncb-2)
+    (bank-conf bank-conf-2) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (3 0)) ((2 1) (5 0))
+    ((3 1) (0 1)) ((3 1) (1 2)) ((4 0) (1 0)) ((4 0) (2 0))
+    ((5 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr btr-0 mtr-0)
+  (facts (neq n-0 ncb-1) (neq n ncb) (neq n-0 ncm-1) (neq n ncm)
+    (neq ncm-1 ncb-1) (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-0 cost n) (buy-via c m b item-1 cost n-0)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (added-strand bank 2)
+    (sign
+      (bconf
+        (hash c m b n cost (hash n (hash ncm-0 item-0 merc-conf-0)))
+        btr-0 mtr-0) (privk "sig" b)) (2 2))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit-0
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-1 merc-conf-1 ncm-1
+         (hash n-0 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-2 bank-conf-2 ncb-2
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost account-2 bank-conf-2 ncb-2
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-2 bank-conf-2)
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 131)
+  (parent 117)
+  (unrealized (3 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg)
+    (account account-0 account-1 account-2 account-3 acct)
+    (cost cost-0 amount)
+    (n ncb ncm ncm-0 ncb-0 n-0 ncb-1 ncm-1 n-1 ncb-2 ncm-2 ncb-3 data)
+    (item item-0 item-1 item-2 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 bank-conf-0
+      merc-conf-1 bank-conf-1 merc-conf-2 bank-conf-2 bank-conf-3 text)
+    (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-1 cost-0 account-2 bank-conf-2 ncb-2
+        (hash n-1 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost) (n n-0) (ncb ncb-1)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-2) (cost cost-0) (n n-1)
+    (ncb ncb-2) (ncm ncm-2) (item item-2) (merc-conf merc-conf-2)
+    (bank-conf bank-conf-2) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-3) (cost cost-0) (n n) (ncb ncb-3)
+    (bank-conf bank-conf-3) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (3 0)) ((2 1) (6 0))
+    ((3 1) (0 1)) ((3 1) (1 2)) ((4 0) (1 0)) ((5 0) (2 0))
+    ((6 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr btr-0 mtr-0)
+  (facts (neq n-1 ncb-2) (neq n-0 ncb-1) (neq n ncb) (neq n-1 ncm-2)
+    (neq n-0 ncm-1) (neq n ncm) (neq ncm-2 ncb-2) (neq ncm-1 ncb-1)
+    (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-0 cost-0 n) (buy-via c m b item-2 cost-0 n-1)
+    (buy-via c m b item-1 cost n-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (added-strand bank 2)
+    (sign
+      (bconf
+        (hash c m b n cost-0 (hash n (hash ncm-0 item-0 merc-conf-0)))
+        btr-0 mtr-0) (privk "sig" b)) (2 2))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit-0
+         (sign
+           (order c m b cost-0
+             (enc n-1 cost-0 account-2 bank-conf-2 ncb-2
+               (hash n-1 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-1 cost-0 account-2 bank-conf-2 ncb-2
+                    (hash n-1 (hash ncm-2 item-2 merc-conf-2))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-1 cost-0 account-2 bank-conf-2 ncb-2
+                (hash n-1 (hash ncm-2 item-2 merc-conf-2))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-1 merc-conf-1 ncm-1
+         (hash n-0 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n-1 cost-0 item-2 merc-conf-2 ncm-2
+         (hash n-1 (hash ncb-2 bank-conf-2))
+         (sign
+           (order c m b cost-0
+             (enc n-1 cost-0 account-2 bank-conf-2 ncb-2
+               (hash n-1 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost-0
+                 (enc n cost-0 account-3 bank-conf-3 ncb-3
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-0 account-3 bank-conf-3 ncb-3
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-3 bank-conf-3)
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 132)
+  (parent 118)
+  (unrealized (3 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg)
+    (account account-0 account-1 account-2 account-3 acct)
+    (cost cost-0 amount)
+    (n ncb ncm ncm-0 ncm-1 ncb-0 n-0 ncb-1 ncm-2 ncb-2 ncb-3 data)
+    (item item-0 item-1 item-2 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 bank-conf-0 merc-conf-2 bank-conf-1 bank-conf-2
+      bank-conf-3 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-0) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost-0) (n n-0)
+    (ncb ncb-1) (ncm ncm-2) (item item-2) (merc-conf merc-conf-2)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-2) (cost cost-0) (n n) (ncb ncb-2)
+    (bank-conf bank-conf-2) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-1 item-1 merc-conf-1))
+    (account account-3) (cost cost-0) (n n) (ncb ncb-3)
+    (bank-conf bank-conf-3) (btr btr-1) (mtr mtr-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (0 1)) ((4 0) (1 0)) ((4 0) (2 0))
+    ((5 1) (1 2)) ((6 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 btr-1 mtr-1)
+  (facts (neq n-0 ncb-1) (neq n ncb) (neq n-0 ncm-2) (neq n ncm)
+    (neq ncm-2 ncb-1) (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-1 cost-0 n) (buy-via c m b item-0 cost-0 n)
+    (buy-via c m b item-2 cost-0 n-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost-0 n mtr-1 btr-1)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (added-strand bank 2)
+    (sign
+      (bconf
+        (hash c m b n cost-0 (hash n (hash ncm-1 item-1 merc-conf-1)))
+        btr-1 mtr-1) (privk "sig" b)) (2 2))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-0 item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost-0 item-2 merc-conf-2 ncm-2
+         (hash n-0 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost-0
+                 (enc n cost-0 account-2 bank-conf-2 ncb-2
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-0 account-2 bank-conf-2 ncb-2
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-2 bank-conf-2)
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-0 n) (hash ncm-1 item-1 merc-conf-1)
+           mtr-1
+           (cat
+             (sign
+               (order c m b cost-0
+                 (enc n cost-0 account-3 bank-conf-3 ncb-3
+                   (hash n (hash ncm-1 item-1 merc-conf-1))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-0 account-3 bank-conf-3 ncb-3
+               (hash n (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-3 bank-conf-3)
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 133)
+  (parent 120)
+  (unrealized (3 0) (5 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg)
+    (account account-0 account-1 account-2 account-3 account-4 acct)
+    (cost cost-0 cost-1 amount)
+    (n ncb ncm ncm-0 ncm-1 ncb-0 n-0 ncb-1 ncm-2 ncb-2 n-1 ncb-3 ncm-3
+      ncb-4 data) (item item-0 item-1 item-2 item-3 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 bank-conf-0 merc-conf-2 bank-conf-1 bank-conf-2
+      merc-conf-3 bank-conf-3 bank-conf-4 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-1 cost-1 account-3 bank-conf-3 ncb-3
+        (hash n-1 (hash ncm-3 item-3 merc-conf-3)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-1) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost-0) (n n-0)
+    (ncb ncb-1) (ncm ncm-2) (item item-2) (merc-conf merc-conf-2)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-2) (cost cost-0) (n n) (ncb ncb-2)
+    (bank-conf bank-conf-2) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-3) (cost cost-1) (n n-1)
+    (ncb ncb-3) (ncm ncm-3) (item item-3) (merc-conf merc-conf-3)
+    (bank-conf bank-conf-3) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-1 item-1 merc-conf-1))
+    (account account-4) (cost cost-1) (n n) (ncb ncb-4)
+    (bank-conf bank-conf-4) (btr btr-1) (mtr mtr-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (5 0))
+    ((2 1) (7 0)) ((3 1) (0 1)) ((4 0) (1 0)) ((5 1) (1 2))
+    ((6 0) (2 0)) ((7 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 btr-1 mtr-1)
+  (facts (neq n-1 ncb-3) (neq n-0 ncb-1) (neq n ncb) (neq n-1 ncm-3)
+    (neq n-0 ncm-2) (neq n ncm) (neq ncm-3 ncb-3) (neq ncm-2 ncb-1)
+    (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-1 cost-1 n) (buy-via c m b item-0 cost-0 n)
+    (buy-via c m b item-3 cost-1 n-1) (buy-via c m b item-2 cost-0 n-0)
+    (buy-via c m b item cost n)
+    (will-transfer c m b cost-1 n mtr-1 btr-1)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (added-strand bank 2)
+    (sign
+      (bconf
+        (hash c m b n cost-1 (hash n (hash ncm-1 item-1 merc-conf-1)))
+        btr-1 mtr-1) (privk "sig" b)) (2 2))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-1 item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign
+           (order c m b cost-1
+             (enc n-1 cost-1 account-3 bank-conf-3 ncb-3
+               (hash n-1 (hash ncm-3 item-3 merc-conf-3))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-1 n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat
+              (sign
+                (order c m b cost-1
+                  (enc n-1 cost-1 account-3 bank-conf-3 ncb-3
+                    (hash n-1 (hash ncm-3 item-3 merc-conf-3))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-1 cost-1 account-3 bank-conf-3 ncb-3
+                (hash n-1 (hash ncm-3 item-3 merc-conf-3))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-1
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost-0 item-2 merc-conf-2 ncm-2
+         (hash n-0 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost-0
+                 (enc n cost-0 account-2 bank-conf-2 ncb-2
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-0 account-2 bank-conf-2 ncb-2
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-2 bank-conf-2)
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-1 cost-1 item-3 merc-conf-3 ncm-3
+         (hash n-1 (hash ncb-3 bank-conf-3))
+         (sign
+           (order c m b cost-1
+             (enc n-1 cost-1 account-3 bank-conf-3 ncb-3
+               (hash n-1 (hash ncm-3 item-3 merc-conf-3))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-1 n) (hash ncm-1 item-1 merc-conf-1)
+           mtr-1
+           (cat
+             (sign
+               (order c m b cost-1
+                 (enc n cost-1 account-4 bank-conf-4 ncb-4
+                   (hash n (hash ncm-1 item-1 merc-conf-1))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-1 account-4 bank-conf-4 ncb-4
+               (hash n (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-4 bank-conf-4)
+          (sign
+            (bconf
+              (hash c m b n cost-1
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 134)
+  (parent 121)
+  (unrealized (3 0) (5 0) (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit bank-conf-decommit mesg) (account acct)
+    (cost amount) (n ncb ncm data) (item merchandise)
+    (merc-conf bank-conf btr mtr btr-0 mtr-0 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr-0) (mtr mtr-0) (c c)
+    (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (3 0)) ((2 1) (0 1))
+    ((3 1) (1 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3)
+  (operation encryption-test (displaced 4 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf-0 ncb-0
+          (hash n (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-0 mtr-0) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-0 mtr-0) (privk "sig" b)) (pubk "enc" m)))))
+  (label 135)
+  (parent 123)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 1)
+      ((c c) (m m) (b b) (n n) (cost cost) (item item)
+        (merc-conf merc-conf) (bank-conf bank-conf) (btr btr) (mtr mtr)
+        (account account) (ncb ncb) (ncm ncm) (cost-0 cost)
+        (item-0 item) (merc-conf-0 merc-conf) (btr-0 btr-0)
+        (mtr-0 mtr-0) (ncm-0 ncm)
+        (for-bank
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (bank-conf-commit bank-conf-commit)
+        (bank-conf-decommit bank-conf-decommit) (cost-1 cost)
+        (item-1 item) (merc-conf-1 merc-conf) (btr-1 btr-0)
+        (mtr-1 mtr-0) (ncm-1 ncm)
+        (for-bank-0
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (bank-conf-commit-0 bank-conf-commit)
+        (bank-conf-decommit-0 bank-conf-decommit))))
+  (origs (btr-0 (3 1)) (btr (2 1)) (mtr-0 (1 1)) (n (0 0))))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit bank-conf-decommit mesg)
+    (account account-0 acct) (cost amount)
+    (n ncb ncm n-0 ncb-0 ncm-0 data) (item item-0 merchandise)
+    (merc-conf bank-conf btr mtr btr-0 mtr-0 merc-conf-0 bank-conf-0
+      text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr-0) (mtr mtr-0) (c c)
+    (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n-0) (ncb ncb-0)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (4 0)) ((2 1) (0 1))
+    ((3 0) (1 0)) ((4 1) (1 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0)
+  (facts (neq n-0 ncb-0) (neq n ncb) (neq n-0 ncm-0) (neq n ncm)
+    (neq ncm-0 ncb-0) (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-0 cost n-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3)
+  (operation encryption-test (displaced 5 0 cust 1)
+    (sign
+      (order c m b cost-0
+        (enc n cost-0 account-1 bank-conf-1 ncb-1
+          (hash n (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+      (privk "sig" c)) (4 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-0 mtr-0) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-0 mtr-0) (privk "sig" b)) (pubk "enc" m)))))
+  (label 136)
+  (parent 125)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 acct) (cost amount)
+    (n ncb ncm ncm-0 ncb-0 data) (item item-0 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 bank-conf-0
+      text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (3 0)) ((2 1) (4 0))
+    ((3 1) (0 1)) ((3 1) (1 2)) ((4 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr btr-0 mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr) (buy-via c m b item-0 cost n)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 5 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-1 bank-conf-1 ncb-1
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit-0
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 137)
+  (parent 126)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 account-1 acct)
+    (cost cost-0 amount) (n ncb ncm ncm-0 n-0 ncb-0 ncm-1 ncb-1 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      bank-conf-0 bank-conf-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost-0) (n n-0)
+    (ncb ncb-0) (ncm ncm-1) (item item-1) (merc-conf merc-conf-1)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-1) (cost cost-0) (n n) (ncb ncb-1)
+    (bank-conf bank-conf-1) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (3 0)) ((2 1) (5 0))
+    ((3 1) (0 1)) ((3 1) (1 2)) ((4 0) (2 0)) ((5 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr btr-0 mtr-0)
+  (facts (neq n-0 ncb-0) (neq n ncb) (neq n-0 ncm-1) (neq n ncm)
+    (neq ncm-1 ncb-0) (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-0 cost-0 n) (buy-via c m b item-1 cost-0 n-0)
+    (buy-via c m b item cost n)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 6 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-2 bank-conf-2 ncb-2
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit-0
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost-0 item-1 merc-conf-1 ncm-1
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost-0
+                 (enc n cost-0 account-1 bank-conf-1 ncb-1
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-0 account-1 bank-conf-1 ncb-1
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-1 bank-conf-1)
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 138)
+  (parent 127)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 account-1 acct)
+    (cost amount) (n ncb ncm ncm-0 ncm-1 ncb-0 ncb-1 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 bank-conf-0 bank-conf-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-1 item-1 merc-conf-1))
+    (account account-1) (cost cost) (n n) (ncb ncb-1)
+    (bank-conf bank-conf-1) (btr btr-1) (mtr mtr-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (0 1)) ((4 1) (1 2)) ((5 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 btr-1 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr) (buy-via c m b item-1 cost n)
+    (buy-via c m b item-0 cost n) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr-1 btr-1)
+    (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 6 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-2 bank-conf-2 ncb-2
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm-1 item-1 merc-conf-1)
+           mtr-1
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-1 bank-conf-1 ncb-1
+                   (hash n (hash ncm-1 item-1 merc-conf-1))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost account-1 bank-conf-1 ncb-1
+               (hash n (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-1 bank-conf-1)
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 139)
+  (parent 128)
+  (unrealized (4 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 account-1 acct)
+    (cost amount) (n ncb ncm ncm-0 ncb-0 n-0 ncb-1 ncm-1 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 bank-conf-0
+      merc-conf-1 bank-conf-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost) (n n-0) (ncb ncb-1)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (4 0)) ((2 1) (3 0))
+    ((3 1) (0 1)) ((3 1) (2 2)) ((4 1) (1 2)) ((5 0) (2 0)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr btr-0 mtr-0)
+  (facts (neq n-0 ncb-1) (neq n ncb) (neq n-0 ncm-1) (neq n ncm)
+    (neq ncm-1 ncb-1) (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-0 cost n) (buy-via c m b item-1 cost n-0)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 6 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-2 bank-conf-2 ncb-2
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit-0
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-1 merc-conf-1 ncm-1
+         (hash n-0 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))))
+  (label 140)
+  (parent 129)
+  (unrealized (3 0) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg)
+    (account account-0 account-1 account-2 acct) (cost cost-0 amount)
+    (n ncb ncm ncm-0 ncm-1 ncb-0 n-0 ncb-1 ncm-2 ncb-2 data)
+    (item item-0 item-1 item-2 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 bank-conf-0 merc-conf-2 bank-conf-1 bank-conf-2 text)
+    (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+        (hash n-0 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-0) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost-0) (n n-0)
+    (ncb ncb-1) (ncm ncm-2) (item item-2) (merc-conf merc-conf-2)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-1 item-1 merc-conf-1))
+    (account account-2) (cost cost-0) (n n) (ncb ncb-2)
+    (bank-conf bank-conf-2) (btr btr-1) (mtr mtr-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (4 0))
+    ((2 1) (6 0)) ((3 1) (0 1)) ((4 1) (1 2)) ((5 0) (2 0))
+    ((6 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 btr-1 mtr-1)
+  (facts (neq n-0 ncb-1) (neq n ncb) (neq n-0 ncm-2) (neq n ncm)
+    (neq ncm-2 ncb-1) (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-1 cost-0 n) (buy-via c m b item-0 cost n)
+    (buy-via c m b item-2 cost-0 n-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost-0 n mtr-1 btr-1)
+    (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 7 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-3 bank-conf-3 ncb-3
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-0 item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                    (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+                (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost-0 item-2 merc-conf-2 ncm-2
+         (hash n-0 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-0 n) (hash ncm-1 item-1 merc-conf-1)
+           mtr-1
+           (cat
+             (sign
+               (order c m b cost-0
+                 (enc n cost-0 account-2 bank-conf-2 ncb-2
+                   (hash n (hash ncm-1 item-1 merc-conf-1))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-0 account-2 bank-conf-2 ncb-2
+               (hash n (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-2 bank-conf-2)
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 141)
+  (parent 130)
+  (unrealized (4 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 account-1 acct)
+    (cost amount) (n ncb ncm ncm-0 n-0 ncb-0 ncm-1 ncb-1 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      bank-conf-0 bank-conf-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n-0) (ncb ncb-0)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-1) (cost cost) (n n) (ncb ncb-1)
+    (bank-conf bank-conf-1) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (3 0)) ((2 1) (5 0))
+    ((3 1) (0 1)) ((3 1) (1 2)) ((4 0) (1 0)) ((4 0) (2 0))
+    ((5 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr btr-0 mtr-0)
+  (facts (neq n-0 ncb-0) (neq n ncb) (neq n-0 ncm-1) (neq n ncm)
+    (neq ncm-1 ncb-0) (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-0 cost n) (buy-via c m b item-1 cost n-0)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 6 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-2 bank-conf-2 ncb-2
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit-0
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-1 merc-conf-1 ncm-1
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-1 bank-conf-1 ncb-1
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost account-1 bank-conf-1 ncb-1
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-1 bank-conf-1)
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 142)
+  (parent 131)
+  (unrealized (3 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg)
+    (account account-0 account-1 account-2 acct) (cost cost-0 amount)
+    (n ncb ncm ncm-0 n-0 ncb-0 ncm-1 n-1 ncb-1 ncm-2 ncb-2 data)
+    (item item-0 item-1 item-2 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      bank-conf-0 merc-conf-2 bank-conf-1 bank-conf-2 text)
+    (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-1 cost-0 account-1 bank-conf-1 ncb-1
+        (hash n-1 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n-0) (ncb ncb-0)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost-0) (n n-1)
+    (ncb ncb-1) (ncm ncm-2) (item item-2) (merc-conf merc-conf-2)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-2) (cost cost-0) (n n) (ncb ncb-2)
+    (bank-conf bank-conf-2) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (3 0)) ((2 1) (6 0))
+    ((3 1) (0 1)) ((3 1) (1 2)) ((4 0) (1 0)) ((5 0) (2 0))
+    ((6 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr btr-0 mtr-0)
+  (facts (neq n-1 ncb-1) (neq n-0 ncb-0) (neq n ncb) (neq n-1 ncm-2)
+    (neq n-0 ncm-1) (neq n ncm) (neq ncm-2 ncb-1) (neq ncm-1 ncb-0)
+    (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-0 cost-0 n) (buy-via c m b item-2 cost-0 n-1)
+    (buy-via c m b item-1 cost n-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 7 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-3 bank-conf-3 ncb-3
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit-0
+         (sign
+           (order c m b cost-0
+             (enc n-1 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-1 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-1 cost-0 account-1 bank-conf-1 ncb-1
+                    (hash n-1 (hash ncm-2 item-2 merc-conf-2))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-1 cost-0 account-1 bank-conf-1 ncb-1
+                (hash n-1 (hash ncm-2 item-2 merc-conf-2))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-1 merc-conf-1 ncm-1
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n-1 cost-0 item-2 merc-conf-2 ncm-2
+         (hash n-1 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost-0
+             (enc n-1 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-1 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost-0
+                 (enc n cost-0 account-2 bank-conf-2 ncb-2
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-0 account-2 bank-conf-2 ncb-2
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-2 bank-conf-2)
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 143)
+  (parent 132)
+  (unrealized (3 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg)
+    (account account-0 account-1 account-2 acct) (cost cost-0 amount)
+    (n ncb ncm ncm-0 ncm-1 n-0 ncb-0 ncm-2 ncb-1 ncb-2 data)
+    (item item-0 item-1 item-2 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 merc-conf-2 bank-conf-0 bank-conf-1 bank-conf-2 text)
+    (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-0) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost-0) (n n-0)
+    (ncb ncb-0) (ncm ncm-2) (item item-2) (merc-conf merc-conf-2)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-1) (cost cost-0) (n n) (ncb ncb-1)
+    (bank-conf bank-conf-1) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-1 item-1 merc-conf-1))
+    (account account-2) (cost cost-0) (n n) (ncb ncb-2)
+    (bank-conf bank-conf-2) (btr btr-1) (mtr mtr-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (0 1)) ((4 0) (1 0)) ((4 0) (2 0))
+    ((5 1) (1 2)) ((6 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 btr-1 mtr-1)
+  (facts (neq n-0 ncb-0) (neq n ncb) (neq n-0 ncm-2) (neq n ncm)
+    (neq ncm-2 ncb-0) (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-1 cost-0 n) (buy-via c m b item-0 cost-0 n)
+    (buy-via c m b item-2 cost-0 n-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost-0 n mtr-1 btr-1)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 7 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-3 bank-conf-3 ncb-3
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-0 item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost-0 item-2 merc-conf-2 ncm-2
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost-0
+                 (enc n cost-0 account-1 bank-conf-1 ncb-1
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-0 account-1 bank-conf-1 ncb-1
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-1 bank-conf-1)
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-0 n) (hash ncm-1 item-1 merc-conf-1)
+           mtr-1
+           (cat
+             (sign
+               (order c m b cost-0
+                 (enc n cost-0 account-2 bank-conf-2 ncb-2
+                   (hash n (hash ncm-1 item-1 merc-conf-1))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-0 account-2 bank-conf-2 ncb-2
+               (hash n (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-2 bank-conf-2)
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 144)
+  (parent 133)
+  (unrealized (5 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg)
+    (account account-0 account-1 account-2 account-3 acct)
+    (cost cost-0 cost-1 amount)
+    (n ncb ncm ncm-0 ncm-1 n-0 ncb-0 ncm-2 ncb-1 n-1 ncb-2 ncm-3 ncb-3
+      data) (item item-0 item-1 item-2 item-3 merchandise)
+    (merc-conf bank-conf btr mtr merc-conf-0 btr-0 mtr-0 merc-conf-1
+      btr-1 mtr-1 merc-conf-2 bank-conf-0 bank-conf-1 merc-conf-3
+      bank-conf-2 bank-conf-3 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-1 cost-1 account-2 bank-conf-2 ncb-2
+        (hash n-1 (hash ncm-3 item-3 merc-conf-3)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-1) (n n)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost-0) (n n-0)
+    (ncb ncb-0) (ncm ncm-2) (item item-2) (merc-conf merc-conf-2)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-1) (cost cost-0) (n n) (ncb ncb-1)
+    (bank-conf bank-conf-1) (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-2) (cost cost-1) (n n-1)
+    (ncb ncb-2) (ncm ncm-3) (item item-3) (merc-conf merc-conf-3)
+    (bank-conf bank-conf-2) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-1 item-1 merc-conf-1))
+    (account account-3) (cost cost-1) (n n) (ncb ncb-3)
+    (bank-conf bank-conf-3) (btr btr-1) (mtr mtr-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (5 0))
+    ((2 1) (7 0)) ((3 1) (0 1)) ((4 0) (1 0)) ((5 1) (1 2))
+    ((6 0) (2 0)) ((7 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 btr-1 mtr-1)
+  (facts (neq n-1 ncb-2) (neq n-0 ncb-0) (neq n ncb) (neq n-1 ncm-3)
+    (neq n-0 ncm-2) (neq n ncm) (neq ncm-3 ncb-2) (neq ncm-2 ncb-0)
+    (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-1 cost-1 n) (buy-via c m b item-0 cost-0 n)
+    (buy-via c m b item-3 cost-1 n-1) (buy-via c m b item-2 cost-0 n-0)
+    (buy-via c m b item cost n)
+    (will-transfer c m b cost-1 n mtr-1 btr-1)
+    (will-transfer c m b cost-0 n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 8 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-4 bank-conf-4 ncb-4
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-1 item-1 merc-conf-1 ncm-1 bank-conf-commit-0
+         (sign
+           (order c m b cost-1
+             (enc n-1 cost-1 account-2 bank-conf-2 ncb-2
+               (hash n-1 (hash ncm-3 item-3 merc-conf-3))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-1 n) (hash ncm-1 item-1 merc-conf-1)
+            mtr-1
+            (cat
+              (sign
+                (order c m b cost-1
+                  (enc n-1 cost-1 account-2 bank-conf-2 ncb-2
+                    (hash n-1 (hash ncm-3 item-3 merc-conf-3))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-1 cost-1 account-2 bank-conf-2 ncb-2
+                (hash n-1 (hash ncm-3 item-3 merc-conf-3))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-1
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost-0 item-2 merc-conf-2 ncm-2
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-0
+           (cat
+             (sign
+               (order c m b cost-0
+                 (enc n cost-0 account-1 bank-conf-1 ncb-1
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-0 account-1 bank-conf-1 ncb-1
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-1 bank-conf-1)
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-0 mtr-0)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-1 cost-1 item-3 merc-conf-3 ncm-3
+         (hash n-1 (hash ncb-2 bank-conf-2))
+         (sign
+           (order c m b cost-1
+             (enc n-1 cost-1 account-2 bank-conf-2 ncb-2
+               (hash n-1 (hash ncm-3 item-3 merc-conf-3))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-1 n) (hash ncm-1 item-1 merc-conf-1)
+           mtr-1
+           (cat
+             (sign
+               (order c m b cost-1
+                 (enc n cost-1 account-3 bank-conf-3 ncb-3
+                   (hash n (hash ncm-1 item-1 merc-conf-1))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-1 account-3 bank-conf-3 ncb-3
+               (hash n (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-3 bank-conf-3)
+          (sign
+            (bconf
+              (hash c m b n cost-1
+                (hash n (hash ncm-1 item-1 merc-conf-1))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 145)
+  (parent 134)
+  (unrealized (5 0) (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account acct) (cost amount)
+    (n ncb ncm data) (item merchandise)
+    (merc-conf bank-conf btr mtr btr-0 mtr-0 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr-0) (mtr mtr-0)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (3 0)) ((2 1) (4 0))
+    ((3 1) (0 1)) ((3 1) (1 2)) ((4 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr btr-0 mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3)
+  (operation encryption-test (displaced 5 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf-0 ncb-0
+          (hash n (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+      (privk "sig" c)) (4 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit-0
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-0 mtr-0) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-0 mtr-0) (privk "sig" b)) (pubk "enc" m)))))
+  (label 146)
+  (parent 137)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 2)
+      ((c c) (m m) (b b) (n n) (cost cost) (item item)
+        (merc-conf merc-conf) (bank-conf bank-conf) (btr btr) (mtr mtr)
+        (account account) (ncb ncb) (ncm ncm) (cost-0 cost)
+        (item-0 item) (merc-conf-0 merc-conf) (btr-0 btr) (mtr-0 mtr)
+        (ncm-0 ncm)
+        (for-bank
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (bank-conf-commit bank-conf-commit)
+        (bank-conf-decommit bank-conf-decommit) (cost-1 cost)
+        (item-1 item) (merc-conf-1 merc-conf) (btr-1 btr-0)
+        (mtr-1 mtr-0) (ncm-1 ncm)
+        (for-bank-0
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (bank-conf-commit-0 bank-conf-commit-0)
+        (bank-conf-decommit-0 bank-conf-decommit-0))))
+  (origs (btr-0 (4 1)) (btr (3 1)) (mtr-0 (2 1)) (mtr (1 1)) (n (0 0))))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 acct) (cost amount)
+    (n ncb ncm n-0 ncb-0 ncm-0 data) (item item-0 merchandise)
+    (merc-conf bank-conf btr mtr btr-0 mtr-0 merc-conf-0 bank-conf-0
+      text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr-0) (mtr mtr-0)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n-0) (ncb ncb-0)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (3 0)) ((2 1) (5 0))
+    ((3 1) (0 1)) ((3 1) (1 2)) ((4 0) (2 0)) ((5 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr mtr btr-0 mtr-0)
+  (facts (neq n-0 ncb-0) (neq n ncb) (neq n-0 ncm-0) (neq n ncm)
+    (neq ncm-0 ncb-0) (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-0 cost n-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3)
+  (operation encryption-test (displaced 6 0 cust 1)
+    (sign
+      (order c m b cost-0
+        (enc n cost-0 account-1 bank-conf-1 ncb-1
+          (hash n (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit-0
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-0 mtr-0) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-0 mtr-0) (privk "sig" b)) (pubk "enc" m)))))
+  (label 147)
+  (parent 138)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 acct) (cost amount)
+    (n ncb ncm ncm-0 ncb-0 data) (item item-0 merchandise)
+    (merc-conf bank-conf btr mtr btr-0 mtr-0 merc-conf-0 btr-1 mtr-1
+      bank-conf-0 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr-0) (mtr mtr-0) (c c)
+    (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (bank-conf bank-conf-0) (btr btr-1) (mtr mtr-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (0 1)) ((4 1) (1 2)) ((5 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 btr-1 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr) (buy-via c m b item-0 cost n)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr-1 btr-1)
+    (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 6 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-1 bank-conf-1 ncb-1
+          (hash n (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+      (privk "sig" c)) (4 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-0 mtr-0) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit-0
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-0 mtr-0) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-1
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-0 bank-conf-0 ncb-0
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 148)
+  (parent 139)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 account-1 acct)
+    (cost cost-0 amount) (n ncb ncm ncm-0 n-0 ncb-0 ncm-1 ncb-1 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr btr-0 mtr-0 merc-conf-0 btr-1 mtr-1
+      merc-conf-1 bank-conf-0 bank-conf-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr-0) (mtr mtr-0) (c c)
+    (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost-0) (n n-0)
+    (ncb ncb-0) (ncm ncm-1) (item item-1) (merc-conf merc-conf-1)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-1) (cost cost-0) (n n) (ncb ncb-1)
+    (bank-conf bank-conf-1) (btr btr-1) (mtr mtr-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (4 0))
+    ((2 1) (6 0)) ((3 1) (0 1)) ((4 1) (1 2)) ((5 0) (2 0))
+    ((6 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 btr-1 mtr-1)
+  (facts (neq n-0 ncb-0) (neq n ncb) (neq n-0 ncm-1) (neq n ncm)
+    (neq ncm-1 ncb-0) (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-0 cost-0 n) (buy-via c m b item-1 cost-0 n-0)
+    (buy-via c m b item cost n)
+    (will-transfer c m b cost-0 n mtr-1 btr-1)
+    (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 7 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-2 bank-conf-2 ncb-2
+          (hash n (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+      (privk "sig" c)) (4 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-0 mtr-0) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit-0
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-1
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-0 mtr-0) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost-0 item-1 merc-conf-1 ncm-1
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost-0
+             (enc n-0 cost-0 account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-1
+           (cat
+             (sign
+               (order c m b cost-0
+                 (enc n cost-0 account-1 bank-conf-1 ncb-1
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-0 account-1 bank-conf-1 ncb-1
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-1 bank-conf-1)
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 149)
+  (parent 141)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 account-1 acct)
+    (cost amount) (n ncb ncm ncm-0 n-0 ncb-0 ncm-1 ncb-1 data)
+    (item item-0 item-1 merchandise)
+    (merc-conf bank-conf btr mtr btr-0 mtr-0 merc-conf-0 btr-1 mtr-1
+      merc-conf-1 bank-conf-0 bank-conf-1 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr-0) (mtr mtr-0) (c c)
+    (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n-0) (ncb ncb-0)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-1) (cost cost) (n n) (ncb ncb-1)
+    (bank-conf bank-conf-1) (btr btr-1) (mtr mtr-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (0 1)) ((4 0) (1 0)) ((4 0) (2 0))
+    ((5 1) (1 2)) ((6 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 btr-1 mtr-1)
+  (facts (neq n-0 ncb-0) (neq n ncb) (neq n-0 ncm-1) (neq n ncm)
+    (neq ncm-1 ncb-0) (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-0 cost n) (buy-via c m b item-1 cost n-0)
+    (buy-via c m b item cost n) (will-transfer c m b cost n mtr-1 btr-1)
+    (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 7 0 cust 1)
+    (sign
+      (order c m b cost-0
+        (enc n cost-0 account-2 bank-conf-2 ncb-2
+          (hash n (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-0 mtr-0) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item-0 merc-conf-0 ncm-0 bank-conf-commit-0
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-1 merc-conf-1 ncm-1
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-0 mtr-0) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-1
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account-1 bank-conf-1 ncb-1
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost account-1 bank-conf-1 ncb-1
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-1 bank-conf-1)
+          (sign
+            (bconf
+              (hash c m b n cost
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 150)
+  (parent 144)
+  (unrealized (5 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg)
+    (account account-0 account-1 account-2 acct) (cost cost-0 amount)
+    (n ncb ncm ncm-0 n-0 ncb-0 ncm-1 n-1 ncb-1 ncm-2 ncb-2 data)
+    (item item-0 item-1 item-2 merchandise)
+    (merc-conf bank-conf btr mtr btr-0 mtr-0 merc-conf-0 btr-1 mtr-1
+      merc-conf-1 bank-conf-0 merc-conf-2 bank-conf-1 bank-conf-2 text)
+    (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr-0) (mtr mtr-0) (c c)
+    (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-1 cost-0 account-1 bank-conf-1 ncb-1
+        (hash n-1 (hash ncm-2 item-2 merc-conf-2)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost-0) (n n)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (btr btr-1)
+    (mtr mtr-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n-0) (ncb ncb-0)
+    (ncm ncm-1) (item item-1) (merc-conf merc-conf-1)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-1) (cost cost-0) (n n-1)
+    (ncb ncb-1) (ncm ncm-2) (item item-2) (merc-conf merc-conf-2)
+    (bank-conf bank-conf-1) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm-0 item-0 merc-conf-0))
+    (account account-2) (cost cost-0) (n n) (ncb ncb-2)
+    (bank-conf bank-conf-2) (btr btr-1) (mtr mtr-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (5 0))
+    ((2 1) (7 0)) ((3 1) (0 1)) ((4 0) (1 0)) ((5 1) (1 2))
+    ((6 0) (2 0)) ((7 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 btr-1 mtr-1)
+  (facts (neq n-1 ncb-1) (neq n-0 ncb-0) (neq n ncb) (neq n-1 ncm-2)
+    (neq n-0 ncm-1) (neq n ncm) (neq ncm-2 ncb-1) (neq ncm-1 ncb-0)
+    (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-0 cost-0 n) (buy-via c m b item-2 cost-0 n-1)
+    (buy-via c m b item-1 cost n-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost-0 n mtr-1 btr-1)
+    (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3 rely-merc-3)
+  (operation encryption-test (displaced 8 0 cust 1)
+    (sign
+      (order c m b cost-1
+        (enc n cost-1 account-3 bank-conf-3 ncb-3
+          (hash n (hash ncm-3 item-3 merc-conf-3)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-0 mtr-0) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost-0 item-0 merc-conf-0 ncm-0 bank-conf-commit-0
+         (sign
+           (order c m b cost-0
+             (enc n-1 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-1 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+            mtr-1
+            (cat
+              (sign
+                (order c m b cost-0
+                  (enc n-1 cost-0 account-1 bank-conf-1 ncb-1
+                    (hash n-1 (hash ncm-2 item-2 merc-conf-2))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-1 cost-0 account-1 bank-conf-1 ncb-1
+                (hash n-1 (hash ncm-2 item-2 merc-conf-2))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-1 merc-conf-1 ncm-1
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-1 item-1 merc-conf-1))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-0 mtr-0) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-1 cost-0 item-2 merc-conf-2 ncm-2
+         (hash n-1 (hash ncb-1 bank-conf-1))
+         (sign
+           (order c m b cost-0
+             (enc n-1 cost-0 account-1 bank-conf-1 ncb-1
+               (hash n-1 (hash ncm-2 item-2 merc-conf-2))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost-0 n) (hash ncm-0 item-0 merc-conf-0)
+           mtr-1
+           (cat
+             (sign
+               (order c m b cost-0
+                 (enc n cost-0 account-2 bank-conf-2 ncb-2
+                   (hash n (hash ncm-0 item-0 merc-conf-0))
+                   (pubk "enc" b))) (privk "sig" c))
+             (enc n cost-0 account-2 bank-conf-2 ncb-2
+               (hash n (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b)))) (pubk "enc" b)))
+      (send
+        (enc (hash ncb-2 bank-conf-2)
+          (sign
+            (bconf
+              (hash c m b n cost-0
+                (hash n (hash ncm-0 item-0 merc-conf-0))) btr-1 mtr-1)
+            (privk "sig" b)) (pubk "enc" m)))))
+  (label 151)
+  (parent 145)
+  (unrealized (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account acct) (cost amount)
+    (n ncb ncm data) (item merchandise)
+    (merc-conf bank-conf btr mtr btr-0 mtr-0 btr-1 mtr-1 text)
+    (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr-0) (mtr mtr-0) (c c)
+    (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr-1) (mtr mtr-1)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr-1) (mtr mtr-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (0 1)) ((4 1) (1 2)) ((5 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 btr-1 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (will-ship c m b item mtr) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr-1 btr-1)
+    (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3)
+  (operation encryption-test (displaced 6 0 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf-0 ncb-0
+          (hash n (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-0 mtr-0) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit-0
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-1 mtr-1) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-0 mtr-0) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-1 mtr-1) (privk "sig" b)) (pubk "enc" m)))))
+  (label 152)
+  (parent 148)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 2)
+      ((c c) (m m) (b b) (n n) (cost cost) (item item)
+        (merc-conf merc-conf) (bank-conf bank-conf) (btr btr) (mtr mtr)
+        (account account) (ncb ncb) (ncm ncm) (cost-0 cost)
+        (item-0 item) (merc-conf-0 merc-conf) (btr-0 btr-0)
+        (mtr-0 mtr-0) (ncm-0 ncm)
+        (for-bank
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (bank-conf-commit bank-conf-commit)
+        (bank-conf-decommit bank-conf-decommit) (cost-1 cost)
+        (item-1 item) (merc-conf-1 merc-conf) (btr-1 btr-1)
+        (mtr-1 mtr-1) (ncm-1 ncm)
+        (for-bank-0
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (bank-conf-commit-0 bank-conf-commit-0)
+        (bank-conf-decommit-0 bank-conf-decommit-0))))
+  (origs (btr-1 (5 1)) (btr-0 (4 1)) (btr (3 1)) (mtr-1 (2 1))
+    (mtr-0 (1 1)) (n (0 0))))
+
+(defskeleton minipay-rely-guar
+  (vars
+    (bank-conf-commit bank-conf-decommit bank-conf-commit-0
+      bank-conf-decommit-0 mesg) (account account-0 acct) (cost amount)
+    (n ncb ncm n-0 ncb-0 ncm-0 data) (item item-0 merchandise)
+    (merc-conf bank-conf btr mtr btr-0 mtr-0 btr-1 mtr-1 merc-conf-0
+      bank-conf-0 text) (c m b name))
+  (defstrand cust 3 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr-0) (mtr mtr-0) (c c)
+    (m m) (b b))
+  (defstrand merc 3
+    (for-bank
+      (enc n-0 cost account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit-0)
+    (bank-conf-decommit bank-conf-decommit-0) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr-1) (mtr mtr-1)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr-0) (mtr mtr-0) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n-0) (ncb ncb-0)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr-1) (mtr mtr-1) (c c) (m m) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (4 0))
+    ((2 1) (6 0)) ((3 1) (0 1)) ((4 1) (1 2)) ((5 0) (2 0))
+    ((6 1) (2 2)))
+  (non-orig (privk "enc" b) (privk "sig" c) (privk "sig" b))
+  (uniq-orig n btr btr-0 mtr-0 btr-1 mtr-1)
+  (facts (neq n-0 ncb-0) (neq n ncb) (neq n-0 ncm-0) (neq n ncm)
+    (neq ncm-0 ncb-0) (neq ncm ncb) (will-ship c m b item mtr)
+    (buy-via c m b item-0 cost n-0) (buy-via c m b item cost n)
+    (will-transfer c m b cost n mtr-1 btr-1)
+    (will-transfer c m b cost n mtr-0 btr-0)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 rely-cust-3)
+  (operation encryption-test (displaced 7 0 cust 1)
+    (sign
+      (order c m b cost-0
+        (enc n cost-0 account-1 bank-conf-1 ncb-1
+          (hash n (hash ncm-1 item-1 merc-conf-1)) (pubk "enc" b)))
+      (privk "sig" c)) (6 0))
+  (traces
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-0 mtr-0) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit-0
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit-0
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-1 mtr-1) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-0 mtr-0) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf)))
+              btr-1 mtr-1) (privk "sig" b)) (pubk "enc" m)))))
+  (label 153)
+  (parent 149)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol minipay-rely-guar basic
+  (defrole cust
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf bank-conf btr mtr text) (account acct)
+      (n ncb ncm data))
+    (trace
+      (send
+        (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    (facts (neq n ncb) (neq n ncm) (neq ncm ncb)))
+  (defrole merc
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf btr mtr text) (n ncm data)
+      (for-bank bank-conf-commit bank-conf-decommit mesg))
+    (trace
+      (recv
+        (enc n cost item merc-conf ncm bank-conf-commit
+          (sign (order c m b cost for-bank) (privk "sig" c))
+          (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n bank-conf-decommit))
+            btr mtr) (privk "sig" m))))
+    (uniq-orig mtr))
+  (defrole bank
+    (vars (c m b name) (cost amount) (bank-conf btr mtr text)
+      (merc-conf-decommit mesg) (account acct) (n ncb data))
+    (trace
+      (recv
+        (enc
+          (payreq c m b (hash cost n) merc-conf-decommit mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n merc-conf-decommit) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n merc-conf-decommit) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf (hash c m b n cost (hash n merc-conf-decommit)) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    (uniq-orig btr))
+  (defrule rely-cust-3
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 3)) (p "cust" "mtr" z mtr)
+          (p "cust" "item" z item) (p "cust" "b" z b) (p "cust" "m" z m)
+          (p "cust" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule rely-cust-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (b m c name))
+      (implies
+        (and (p "cust" z (idx 2)) (p "cust" "btr" z btr)
+          (p "cust" "mtr" z mtr) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "b" z b) (p "cust" "m" z m)
+          (p "cust" "c" z c))
+        (fact will-transfer c m b cost n mtr btr))))
+  (defrule rely-merc-3
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name)
+        (btr mtr text))
+      (implies
+        (and (p "merc" z (idx 3)) (p "merc" "n" z n)
+          (p "merc" "cost" z cost) (p "merc" "item" z item)
+          (p "merc" "b" z b) (p "merc" "m" z m) (p "merc" "c" z c)
+          (p "merc" "btr" z btr) (p "merc" "mtr" z mtr))
+        (and (fact buy-via c m b item cost n)
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule rely-bank-1
+    (forall ((z strd) (n data) (cost amount) (b m c name))
+      (implies
+        (and (p "bank" z (idx 1)) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "b" z b) (p "bank" "m" z m)
+          (p "bank" "c" z c))
+        (exists ((item merchandise))
+          (fact buy-via c m b item cost n)))))
+  (defrule guar-cust-1
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "item" z item)
+          (p "cust" "b" z b) (p "cust" "m" z m) (p "cust" "c" z c))
+        (fact buy-via c m b item cost n))))
+  (defrule guar-merc-4
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "mtr" z mtr)
+          (p "merc" "item" z item) (p "merc" "b" z b) (p "merc" "m" z m)
+          (p "merc" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule guar-bank-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (c b m name))
+      (implies
+        (and (p "bank" z (idx 2)) (p "bank" "btr" z btr)
+          (p "bank" "mtr" z mtr) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "c" z c) (p "bank" "b" z b)
+          (p "bank" "m" z m))
+        (and (non (privk "sig" c))
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule cheq-merc-4
+    (forall
+      ((z strd) (n data) (bank-conf-decommit bank-conf-commit mesg))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "n" z n)
+          (p "merc" "bank-conf-decommit" z bank-conf-decommit)
+          (p "merc" "bank-conf-commit" z bank-conf-commit))
+        (= bank-conf-commit (hash n bank-conf-decommit)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule fact-cust-neq2
+    (forall ((z strd) (ncb n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "n" z n)) (fact neq n ncb))))
+  (defgenrule fact-cust-neq1
+    (forall ((z strd) (ncm n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncm" z ncm)
+          (p "cust" "n" z n)) (fact neq n ncm))))
+  (defgenrule fact-cust-neq0
+    (forall ((z strd) (ncb ncm data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "ncm" z ncm)) (fact neq ncm ncb))))
+  (lang (acct atom) (amount atom) (merchandise atom) (sign sign)
+    (order (tuple 5)) (bconf (tuple 3)) (mconf (tuple 3))
+    (payreq (tuple 7))))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-commit bank-conf-decommit mesg)
+    (cost amount) (n ncm data) (item merchandise)
+    (merc-conf btr mtr text) (c m b name))
+  (defstrand merc 4 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" m)
+    (privk "sig" b))
+  (uniq-orig mtr)
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))))
+  (label 154)
+  (unrealized (0 2))
+  (origs (mtr (0 1)))
+  (comment "Not closed under rules"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-decommit mesg) (cost amount) (n ncm data)
+    (item merchandise) (merc-conf btr mtr text) (c m b name))
+  (defstrand merc 4 (for-bank for-bank)
+    (bank-conf-commit (hash n bank-conf-decommit))
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" m)
+    (privk "sig" b))
+  (uniq-orig mtr)
+  (facts (will-transfer c m b cost n mtr btr)
+    (buy-via c m b item cost n) (will-ship c m b item mtr))
+  (rule cheq-merc-4 guar-merc-4 rely-merc-3)
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n bank-conf-decommit)
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))))
+  (label 155)
+  (parent 154)
+  (unrealized (0 2))
+  (origs (mtr (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-decommit mesg) (account acct) (cost amount)
+    (n ncm ncb data) (item merchandise)
+    (merc-conf btr mtr bank-conf text) (c m b name))
+  (defstrand merc 4 (for-bank for-bank)
+    (bank-conf-commit (hash n bank-conf-decommit))
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr)
+  (facts (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule guar-bank-2 guar-merc-4 rely-merc-3)
+  (operation encryption-test (added-strand bank 2)
+    (sign
+      (bconf (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+        mtr) (privk "sig" b)) (0 2))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n bank-conf-decommit)
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 156)
+  (parent 155)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-decommit mesg) (account account-0 acct) (cost amount)
+    (n ncm ncb n-0 ncb-0 ncm-0 data) (item item-0 merchandise)
+    (merc-conf btr mtr bank-conf merc-conf-0 bank-conf-0 text)
+    (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n-0 cost account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit (hash n bank-conf-decommit))
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n-0) (ncb ncb-0)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr)
+  (facts (neq n-0 ncb-0) (neq n-0 ncm-0) (neq ncm-0 ncb-0)
+    (buy-via c m b item cost n) (buy-via c m b item-0 cost n-0)
+    (will-ship c m b item mtr) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4 rely-merc-3)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n-0 cost account-0 bank-conf-0 ncb-0
+          (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n bank-conf-decommit)
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))))
+  (label 157)
+  (parent 156)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account account-0 acct) (cost amount) (ncb n ncb-0 ncm data)
+    (item merchandise) (btr mtr bank-conf merc-conf bank-conf-0 text)
+    (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account-0 bank-conf-0 ncb-0
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb-0 bank-conf-0)))
+    (bank-conf-decommit (hash ncb-0 bank-conf-0)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf-0)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr)
+  (facts (neq n ncb-0) (neq n ncm) (neq ncm ncb-0)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test
+    (contracted (item-0 item) (merc-conf-0 merc-conf) (n-0 n)
+      (ncm-0 ncm) (bank-conf-decommit (hash ncb-0 bank-conf-0)))
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf-0 ncb-0
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+      (sign
+        (order c m b cost
+          (enc n cost account-0 bank-conf-0 ncb-0
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf-0 ncb-0
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf-0 ncb-0
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 158)
+  (parent 157)
+  (unrealized (0 2) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-decommit mesg) (account account-0 acct) (cost amount)
+    (n ncm ncb n-0 ncb-0 ncm-0 data) (item item-0 merchandise)
+    (merc-conf btr mtr bank-conf merc-conf-0 bank-conf-0 mtr-0 text)
+    (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n-0 cost account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit (hash n bank-conf-decommit))
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n-0) (ncb ncb-0)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n-0 cost account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit (hash n-0 (hash ncb-0 bank-conf-0))) (cost cost)
+    (n n-0) (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (mtr mtr-0) (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n-0 ncb-0) (neq n-0 ncm-0) (neq ncm-0 ncb-0)
+    (buy-via c m b item cost n) (buy-via c m b item-0 cost n-0)
+    (will-ship c m b item mtr) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4 rely-merc-3)
+  (operation encryption-test (added-strand merc 2)
+    (sign
+      (order c m b cost
+        (enc n-0 cost account-0 bank-conf-0 ncb-0
+          (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0)
+    (enc n-0 cost item-0 merc-conf-0 ncm-0
+      (hash n-0 (hash ncb-0 bank-conf-0))
+      (sign
+        (order c m b cost
+          (enc n-0 cost account-0 bank-conf-0 ncb-0
+            (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n bank-conf-decommit)
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n-0) (hash ncm-0 item-0 merc-conf-0)
+            mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                (pubk "enc" b)))) (pubk "enc" b)))))
+  (label 159)
+  (parent 157)
+  (unrealized (0 0) (0 2) (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account account-0 acct) (cost amount) (ncb n ncm data)
+    (item merchandise) (btr mtr bank-conf merc-conf text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account-0 bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test
+    (contracted (bank-conf-0 bank-conf) (ncb-0 ncb))
+    (sign
+      (bconf (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+        mtr) (privk "sig" b)) (0 2)
+    (enc (hash ncb bank-conf)
+      (sign
+        (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+          btr mtr) (privk "sig" b)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 160)
+  (parent 158)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account account-0 acct) (cost amount) (ncb n ncb-0 ncm data)
+    (item merchandise)
+    (btr mtr bank-conf merc-conf bank-conf-0 mtr-0 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account-0 bank-conf-0 ncb-0
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb-0 bank-conf-0)))
+    (bank-conf-decommit (hash ncb-0 bank-conf-0)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n) (ncb ncb-0)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf-0)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account-0 bank-conf-0 ncb-0
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb-0 bank-conf-0))) (cost cost)
+    (n n) (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c)
+    (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb-0) (neq n ncm) (neq ncm ncb-0)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test
+    (contracted (item-0 item) (merc-conf-0 merc-conf) (n-0 n)
+      (ncm-0 ncm) (bank-conf-decommit (hash ncb-0 bank-conf-0)))
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf-0 ncb-0
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+      (sign
+        (order c m b cost
+          (enc n cost account-0 bank-conf-0 ncb-0
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m))
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account-0 bank-conf-0 ncb-0
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account-0 bank-conf-0 ncb-0
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf-0 ncb-0
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf-0 ncb-0
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb-0 bank-conf-0)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf-0 ncb-0
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf-0 ncb-0
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf-0 ncb-0
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 161)
+  (parent 159)
+  (unrealized (0 2) (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 3 2 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 162)
+  (parent 160)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((c c) (m m) (b b) (cost cost) (item item) (merc-conf merc-conf)
+        (btr btr) (mtr mtr) (n n) (ncm ncm)
+        (for-bank
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (bank-conf-commit (hash n (hash ncb bank-conf)))
+        (bank-conf-decommit (hash ncb bank-conf)))))
+  (origs (btr (1 1)) (mtr (0 1))))
+
+(defskeleton minipay-rely-guar
+  (vars (account account-0 acct) (cost amount) (ncb n ncm data)
+    (item merchandise) (btr mtr bank-conf merc-conf text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account-0 bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 0) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 163)
+  (parent 160)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account account-0 acct) (cost amount) (ncb n ncm data)
+    (item merchandise) (btr mtr bank-conf merc-conf mtr-0 text)
+    (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account-0 bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account-0 bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test
+    (contracted (bank-conf-0 bank-conf) (ncb-0 ncb))
+    (sign
+      (bconf (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+        mtr) (privk "sig" b)) (0 2)
+    (enc (hash ncb bank-conf)
+      (sign
+        (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+          btr mtr) (privk "sig" b)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 164)
+  (parent 161)
+  (unrealized (1 0) (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 0) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 4 0 merc 2)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account-0 bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 165)
+  (parent 163)
+  (seen 162)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account account-0 acct) (cost amount) (ncb n ncm data)
+    (item merchandise) (btr mtr bank-conf merc-conf mtr-0 text)
+    (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account-0 bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 0) (1 0))
+    ((4 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (added-strand merc 2)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 166)
+  (parent 163)
+  (unrealized (1 0) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 4 2 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 167)
+  (parent 164)
+  (unrealized (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account account-0 acct) (cost amount) (ncb n ncm data)
+    (item merchandise) (btr mtr bank-conf merc-conf mtr-0 text)
+    (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account-0 bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account-0 bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 168)
+  (parent 164)
+  (unrealized (1 0) (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 0) (1 0))
+    ((4 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 5 0 merc 2)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account-0 bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m))
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account-0 bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account-0 bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 169)
+  (parent 166)
+  (unrealized (4 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (3 0)) ((3 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 4 2 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 170)
+  (parent 167)
+  (seen 162)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (3 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 171)
+  (parent 167)
+  (seen 170)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 5 3 merc 2)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account-0 bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 172)
+  (parent 168)
+  (seen 171)
+  (unrealized (3 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account account-0 acct) (cost amount) (ncb n ncm data)
+    (item merchandise) (btr mtr bank-conf merc-conf mtr-0 mtr-1 text)
+    (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account-0 bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account-0 bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (1 0)) ((5 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (added-strand merc 2)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account-0 bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account-0 bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account-0 bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 173)
+  (parent 168)
+  (unrealized (1 0) (3 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 0) (4 0))
+    ((3 0) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 5 2 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (4 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 174)
+  (parent 169)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 0) (4 0))
+    ((4 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 5 3 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (4 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 175)
+  (parent 169)
+  (seen 165)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 0) (1 0))
+    ((4 1) (1 0)) ((5 0) (4 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (4 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 176)
+  (parent 169)
+  (seen 175)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (3 0)) ((3 1) (0 0))
+    ((4 0) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 5 2 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 177)
+  (parent 172)
+  (seen 165)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (1 0)) ((5 0) (3 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 178)
+  (parent 172)
+  (seen 177)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (1 0)) ((5 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 6 3 merc 2)
+    (sign
+      (order c m b cost
+        (enc n cost account-0 bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account-0 bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m))
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account-0 bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account-0 bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 179)
+  (parent 173)
+  (unrealized (3 0) (5 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 0) (3 0))
+    ((3 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation generalization deleted (3 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 180)
+  (parent 174)
+  (seen 162)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (3 0)) ((3 1) (0 0))
+    ((4 0) (1 0)) ((5 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 6 2 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 181)
+  (parent 179)
+  (unrealized (5 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (3 0)) ((5 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 6 4 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 182)
+  (parent 179)
+  (unrealized (5 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (1 0)) ((5 1) (1 0)) ((6 0) (3 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (3 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 183)
+  (parent 179)
+  (seen 189)
+  (unrealized (5 0))
+  (comment "4 in cohort - 3 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (3 0)) ((2 0) (5 0))
+    ((3 1) (0 0)) ((4 0) (1 0)) ((5 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 6 2 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 184)
+  (parent 181)
+  (seen 174)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (3 0)) ((3 1) (0 0))
+    ((4 0) (5 0)) ((5 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 6 4 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 185)
+  (parent 181)
+  (seen 175)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (3 0)) ((3 1) (0 0))
+    ((4 0) (1 0)) ((5 1) (1 0)) ((6 0) (5 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 186)
+  (parent 181)
+  (seen 176)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 0) (5 0))
+    ((3 1) (0 0)) ((4 0) (3 0)) ((5 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 6 2 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 187)
+  (parent 182)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (3 0)) ((4 0) (5 0)) ((5 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 6 4 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 188)
+  (parent 182)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (3 0)) ((5 1) (1 0)) ((6 0) (5 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 189)
+  (parent 182)
+  (seen 185)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 0) (5 0))
+    ((3 1) (0 0)) ((4 0) (1 0)) ((5 1) (1 0)) ((6 0) (3 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 7 2 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 190)
+  (parent 183)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (1 0)) ((5 1) (1 0)) ((6 0) (3 0)) ((6 0) (5 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 7 6 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 191)
+  (parent 183)
+  (seen 184)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 1) (0 0))
+    ((4 0) (1 0)) ((5 1) (1 0)) ((6 0) (3 0)) ((7 0) (5 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (5 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 192)
+  (parent 183)
+  (seen 186)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 0) (4 0))
+    ((3 0) (0 0)) ((4 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation generalization deleted (3 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 193)
+  (parent 187)
+  (seen 180)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 mtr-1 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-1) (c c) (m m)
+    (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 0)) ((3 0) (2 0))
+    ((3 0) (4 0)) ((4 1) (1 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0 mtr-1)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation generalization deleted (2 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-1
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 194)
+  (parent 188)
+  (seen 180)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (ncb n ncm data) (item merchandise)
+    (btr mtr bank-conf merc-conf mtr-0 text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf)))
+    (bank-conf-decommit (hash ncb bank-conf)) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (btr btr) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 0) (4 0))
+    ((3 0) (1 0)) ((4 1) (1 0)) ((5 0) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c)
+    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr mtr-0)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation generalization deleted (3 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr-0
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 195)
+  (parent 190)
+  (seen 193)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol minipay-rely-guar basic
+  (defrole cust
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf bank-conf btr mtr text) (account acct)
+      (n ncb ncm data))
+    (trace
+      (send
+        (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    (facts (neq n ncb) (neq n ncm) (neq ncm ncb)))
+  (defrole merc
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf btr mtr text) (n ncm data)
+      (for-bank bank-conf-commit bank-conf-decommit mesg))
+    (trace
+      (recv
+        (enc n cost item merc-conf ncm bank-conf-commit
+          (sign (order c m b cost for-bank) (privk "sig" c))
+          (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n bank-conf-decommit))
+            btr mtr) (privk "sig" m))))
+    (uniq-orig mtr))
+  (defrole bank
+    (vars (c m b name) (cost amount) (bank-conf btr mtr text)
+      (merc-conf-decommit mesg) (account acct) (n ncb data))
+    (trace
+      (recv
+        (enc
+          (payreq c m b (hash cost n) merc-conf-decommit mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n merc-conf-decommit) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n merc-conf-decommit) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf (hash c m b n cost (hash n merc-conf-decommit)) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    (uniq-orig btr))
+  (defrule rely-cust-3
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 3)) (p "cust" "mtr" z mtr)
+          (p "cust" "item" z item) (p "cust" "b" z b) (p "cust" "m" z m)
+          (p "cust" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule rely-cust-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (b m c name))
+      (implies
+        (and (p "cust" z (idx 2)) (p "cust" "btr" z btr)
+          (p "cust" "mtr" z mtr) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "b" z b) (p "cust" "m" z m)
+          (p "cust" "c" z c))
+        (fact will-transfer c m b cost n mtr btr))))
+  (defrule rely-merc-3
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name)
+        (btr mtr text))
+      (implies
+        (and (p "merc" z (idx 3)) (p "merc" "n" z n)
+          (p "merc" "cost" z cost) (p "merc" "item" z item)
+          (p "merc" "b" z b) (p "merc" "m" z m) (p "merc" "c" z c)
+          (p "merc" "btr" z btr) (p "merc" "mtr" z mtr))
+        (and (fact buy-via c m b item cost n)
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule rely-bank-1
+    (forall ((z strd) (n data) (cost amount) (b m c name))
+      (implies
+        (and (p "bank" z (idx 1)) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "b" z b) (p "bank" "m" z m)
+          (p "bank" "c" z c))
+        (exists ((item merchandise))
+          (fact buy-via c m b item cost n)))))
+  (defrule guar-cust-1
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "item" z item)
+          (p "cust" "b" z b) (p "cust" "m" z m) (p "cust" "c" z c))
+        (fact buy-via c m b item cost n))))
+  (defrule guar-merc-4
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "mtr" z mtr)
+          (p "merc" "item" z item) (p "merc" "b" z b) (p "merc" "m" z m)
+          (p "merc" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule guar-bank-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (c b m name))
+      (implies
+        (and (p "bank" z (idx 2)) (p "bank" "btr" z btr)
+          (p "bank" "mtr" z mtr) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "c" z c) (p "bank" "b" z b)
+          (p "bank" "m" z m))
+        (and (non (privk "sig" c))
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule cheq-merc-4
+    (forall
+      ((z strd) (n data) (bank-conf-decommit bank-conf-commit mesg))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "n" z n)
+          (p "merc" "bank-conf-decommit" z bank-conf-decommit)
+          (p "merc" "bank-conf-commit" z bank-conf-commit))
+        (= bank-conf-commit (hash n bank-conf-decommit)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule fact-cust-neq2
+    (forall ((z strd) (ncb n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "n" z n)) (fact neq n ncb))))
+  (defgenrule fact-cust-neq1
+    (forall ((z strd) (ncm n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncm" z ncm)
+          (p "cust" "n" z n)) (fact neq n ncm))))
+  (defgenrule fact-cust-neq0
+    (forall ((z strd) (ncb ncm data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "ncm" z ncm)) (fact neq ncm ncb))))
+  (lang (acct atom) (amount atom) (merchandise atom) (sign sign)
+    (order (tuple 5)) (bconf (tuple 3)) (mconf (tuple 3))
+    (payreq (tuple 7))))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-commit bank-conf-decommit mesg)
+    (cost amount) (n ncm data) (item merchandise)
+    (merc-conf btr mtr text) (c m b name))
+  (defstrand merc 4 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit)
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (non-orig (privk "sig" b))
+  (uniq-orig mtr)
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))))
+  (label 196)
+  (unrealized (0 2))
+  (origs (mtr (0 1)))
+  (comment "Not closed under rules"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-decommit mesg) (cost amount) (n ncm data)
+    (item merchandise) (merc-conf btr mtr text) (c m b name))
+  (defstrand merc 4 (for-bank for-bank)
+    (bank-conf-commit (hash n bank-conf-decommit))
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (non-orig (privk "sig" b))
+  (uniq-orig mtr)
+  (facts (will-transfer c m b cost n mtr btr)
+    (buy-via c m b item cost n) (will-ship c m b item mtr))
+  (rule cheq-merc-4 guar-merc-4 rely-merc-3)
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n bank-conf-decommit)
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))))
+  (label 197)
+  (parent 196)
+  (unrealized (0 2))
+  (origs (mtr (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-decommit mesg) (account acct) (cost amount)
+    (n ncm ncb data) (item merchandise)
+    (merc-conf btr mtr bank-conf text) (c m b name))
+  (defstrand merc 4 (for-bank for-bank)
+    (bank-conf-commit (hash n bank-conf-decommit))
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk "sig" c) (privk "sig" b))
+  (uniq-orig btr mtr)
+  (facts (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule guar-bank-2 guar-merc-4 rely-merc-3)
+  (operation encryption-test (added-strand bank 2)
+    (sign
+      (bconf (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+        mtr) (privk "sig" b)) (0 2))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n bank-conf-decommit)
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))))
+  (label 198)
+  (parent 197)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-decommit mesg) (account account-0 acct) (cost amount)
+    (n ncm ncb n-0 ncb-0 ncm-0 data) (item item-0 merchandise)
+    (merc-conf btr mtr bank-conf merc-conf-0 bank-conf-0 text)
+    (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n-0 cost account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit (hash n bank-conf-decommit))
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n-0) (ncb ncb-0)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)))
+  (non-orig (privk "sig" c) (privk "sig" b))
+  (uniq-orig btr mtr)
+  (facts (neq n-0 ncb-0) (neq n-0 ncm-0) (neq ncm-0 ncb-0)
+    (buy-via c m b item cost n) (buy-via c m b item-0 cost n-0)
+    (will-ship c m b item mtr) (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4 rely-merc-3)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n-0 cost account-0 bank-conf-0 ncb-0
+          (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n bank-conf-decommit)
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))))
+  (label 199)
+  (parent 198)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-decommit mesg) (account acct) (cost amount)
+    (n ncb ncm data) (item merchandise)
+    (btr mtr merc-conf bank-conf text) (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n bank-conf-decommit))
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)))
+  (non-orig (privk "sig" c) (privk "sig" b))
+  (uniq-orig btr mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (displaced 3 2 cust 1)
+    (sign
+      (order c m b cost
+        (enc n-0 cost account-0 bank-conf-0 ncb-0
+          (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n bank-conf-decommit)
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 200)
+  (parent 199)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((c c) (m m) (b b) (cost cost) (item item) (merc-conf merc-conf)
+        (btr btr) (mtr mtr) (n n) (ncm ncm)
+        (for-bank
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (bank-conf-commit (hash n bank-conf-decommit))
+        (bank-conf-decommit bank-conf-decommit))))
+  (origs (btr (1 1)) (mtr (0 1))))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-decommit mesg) (account account-0 acct) (cost amount)
+    (n ncm ncb n-0 ncb-0 ncm-0 data) (item item-0 merchandise)
+    (merc-conf btr mtr bank-conf merc-conf-0 bank-conf-0 text)
+    (c m b name))
+  (defstrand merc 4
+    (for-bank
+      (enc n-0 cost account-0 bank-conf-0 ncb-0
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit (hash n bank-conf-decommit))
+    (bank-conf-decommit bank-conf-decommit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (btr btr) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust 1 (account account-0) (cost cost) (n n-0) (ncb ncb-0)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (bank-conf bank-conf-0) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)) ((3 0) (1 0)))
+  (non-orig (privk "sig" c) (privk "sig" b))
+  (uniq-orig btr mtr)
+  (facts (neq n ncb) (neq n-0 ncb-0) (neq n ncm) (neq n-0 ncm-0)
+    (neq ncm ncb) (neq ncm-0 ncb-0) (buy-via c m b item cost n)
+    (buy-via c m b item-0 cost n-0) (will-ship c m b item mtr)
+    (will-transfer c m b cost n mtr btr))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-bank-2
+    guar-cust-1 guar-merc-4)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (1 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n bank-conf-decommit)
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account-0 bank-conf-0 ncb-0
+                    (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account-0 bank-conf-0 ncb-0
+                (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                (pubk "enc" b)))) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b))))
+    ((recv
+       (enc
+         (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+           (cat
+             (sign
+               (order c m b cost
+                 (enc n cost account bank-conf ncb
+                   (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+               (privk "sig" c))
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+         (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb-0 bank-conf-0))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account-0 bank-conf-0 ncb-0
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 201)
+  (parent 199)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((c c) (m m) (b b) (cost cost) (item item) (merc-conf merc-conf)
+        (btr btr) (mtr mtr) (n n) (ncm ncm)
+        (for-bank
+          (enc n-0 cost account-0 bank-conf-0 ncb-0
+            (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+        (bank-conf-commit (hash n bank-conf-decommit))
+        (bank-conf-decommit bank-conf-decommit))))
+  (origs (btr (1 1)) (mtr (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol minipay-rely-guar basic
+  (defrole cust
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf bank-conf btr mtr text) (account acct)
+      (n ncb ncm data))
+    (trace
+      (send
+        (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    (facts (neq n ncb) (neq n ncm) (neq ncm ncb)))
+  (defrole merc
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf btr mtr text) (n ncm data)
+      (for-bank bank-conf-commit bank-conf-decommit mesg))
+    (trace
+      (recv
+        (enc n cost item merc-conf ncm bank-conf-commit
+          (sign (order c m b cost for-bank) (privk "sig" c))
+          (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n bank-conf-decommit))
+            btr mtr) (privk "sig" m))))
+    (uniq-orig mtr))
+  (defrole bank
+    (vars (c m b name) (cost amount) (bank-conf btr mtr text)
+      (merc-conf-decommit mesg) (account acct) (n ncb data))
+    (trace
+      (recv
+        (enc
+          (payreq c m b (hash cost n) merc-conf-decommit mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n merc-conf-decommit) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n merc-conf-decommit) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf (hash c m b n cost (hash n merc-conf-decommit)) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    (uniq-orig btr))
+  (defrule rely-cust-3
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 3)) (p "cust" "mtr" z mtr)
+          (p "cust" "item" z item) (p "cust" "b" z b) (p "cust" "m" z m)
+          (p "cust" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule rely-cust-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (b m c name))
+      (implies
+        (and (p "cust" z (idx 2)) (p "cust" "btr" z btr)
+          (p "cust" "mtr" z mtr) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "b" z b) (p "cust" "m" z m)
+          (p "cust" "c" z c))
+        (fact will-transfer c m b cost n mtr btr))))
+  (defrule rely-merc-3
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name)
+        (btr mtr text))
+      (implies
+        (and (p "merc" z (idx 3)) (p "merc" "n" z n)
+          (p "merc" "cost" z cost) (p "merc" "item" z item)
+          (p "merc" "b" z b) (p "merc" "m" z m) (p "merc" "c" z c)
+          (p "merc" "btr" z btr) (p "merc" "mtr" z mtr))
+        (and (fact buy-via c m b item cost n)
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule rely-bank-1
+    (forall ((z strd) (n data) (cost amount) (b m c name))
+      (implies
+        (and (p "bank" z (idx 1)) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "b" z b) (p "bank" "m" z m)
+          (p "bank" "c" z c))
+        (exists ((item merchandise))
+          (fact buy-via c m b item cost n)))))
+  (defrule guar-cust-1
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "item" z item)
+          (p "cust" "b" z b) (p "cust" "m" z m) (p "cust" "c" z c))
+        (fact buy-via c m b item cost n))))
+  (defrule guar-merc-4
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "mtr" z mtr)
+          (p "merc" "item" z item) (p "merc" "b" z b) (p "merc" "m" z m)
+          (p "merc" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule guar-bank-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (c b m name))
+      (implies
+        (and (p "bank" z (idx 2)) (p "bank" "btr" z btr)
+          (p "bank" "mtr" z mtr) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "c" z c) (p "bank" "b" z b)
+          (p "bank" "m" z m))
+        (and (non (privk "sig" c))
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule cheq-merc-4
+    (forall
+      ((z strd) (n data) (bank-conf-decommit bank-conf-commit mesg))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "n" z n)
+          (p "merc" "bank-conf-decommit" z bank-conf-decommit)
+          (p "merc" "bank-conf-commit" z bank-conf-commit))
+        (= bank-conf-commit (hash n bank-conf-decommit)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule fact-cust-neq2
+    (forall ((z strd) (ncb n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "n" z n)) (fact neq n ncb))))
+  (defgenrule fact-cust-neq1
+    (forall ((z strd) (ncm n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncm" z ncm)
+          (p "cust" "n" z n)) (fact neq n ncm))))
+  (defgenrule fact-cust-neq0
+    (forall ((z strd) (ncb ncm data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "ncm" z ncm)) (fact neq ncm ncb))))
+  (lang (acct atom) (amount atom) (merchandise atom) (sign sign)
+    (order (tuple 5)) (bconf (tuple 3)) (mconf (tuple 3))
+    (payreq (tuple 7))))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-commit mesg) (cost amount) (n ncm data)
+    (item merchandise) (merc-conf text) (c m b name))
+  (defstrand merc 1 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (c c) (m m) (b b))
+  (non-orig (privk "enc" m) (privk "sig" c))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))))
+  (label 202)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit mesg) (account acct) (cost amount)
+    (n ncm n-0 ncb ncm-0 data) (item item-0 merchandise)
+    (merc-conf merc-conf-0 bank-conf text) (c m b name))
+  (defstrand merc 1
+    (for-bank
+      (enc n-0 cost account bank-conf ncb
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n-0) (ncb ncb)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (bank-conf bank-conf) (c c) (m m) (b b))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "enc" m) (privk "sig" c))
+  (facts (neq n-0 ncb) (neq n-0 ncm-0) (neq ncm-0 ncb)
+    (buy-via c m b item-0 cost n-0))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n-0 cost account bank-conf ncb
+          (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account bank-conf ncb
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account bank-conf ncb
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))))
+  (label 203)
+  (parent 202)
+  (unrealized (0 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (merc-conf bank-conf text) (c m b name))
+  (defstrand merc 1
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "enc" m) (privk "sig" c))
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-cust-1)
+  (operation encryption-test
+    (contracted (item-0 item) (merc-conf-0 merc-conf) (n-0 n)
+      (ncm-0 ncm) (bank-conf-commit (hash n (hash ncb bank-conf))))
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 204)
+  (parent 203)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((c c) (m m) (b b) (cost cost) (item item) (merc-conf merc-conf)
+        (n n) (ncm ncm)
+        (for-bank
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (bank-conf-commit (hash n (hash ncb bank-conf))))))
+  (origs))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit mesg) (account acct) (cost amount)
+    (n ncm n-0 ncb ncm-0 data) (item item-0 merchandise)
+    (merc-conf merc-conf-0 bank-conf mtr text) (c m b name))
+  (defstrand merc 1
+    (for-bank
+      (enc n-0 cost account bank-conf ncb
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n-0) (ncb ncb)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (bank-conf bank-conf) (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n-0 cost account bank-conf ncb
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit (hash n-0 (hash ncb bank-conf))) (cost cost)
+    (n n-0) (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (mtr mtr)
+    (c c) (m m) (b b))
+  (precedes ((1 0) (0 0)) ((2 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "sig" c))
+  (uniq-orig mtr)
+  (facts (neq n-0 ncb) (neq n-0 ncm-0) (neq ncm-0 ncb)
+    (buy-via c m b item-0 cost n-0))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-cust-1)
+  (operation encryption-test (added-strand merc 2)
+    (sign
+      (order c m b cost
+        (enc n-0 cost account bank-conf ncb
+          (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0)
+    (enc n-0 cost item-0 merc-conf-0 ncm-0
+      (hash n-0 (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n-0 cost account bank-conf ncb
+            (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account bank-conf ncb
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account bank-conf ncb
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account bank-conf ncb
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n-0) (hash ncm-0 item-0 merc-conf-0)
+            mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account bank-conf ncb
+                    (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account bank-conf ncb
+                (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                (pubk "enc" b)))) (pubk "enc" b)))))
+  (label 205)
+  (parent 203)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit mesg) (account acct) (cost amount)
+    (n ncm n-0 ncb ncm-0 data) (item item-0 merchandise)
+    (merc-conf merc-conf-0 bank-conf mtr text) (c m b name))
+  (defstrand merc 1
+    (for-bank
+      (enc n-0 cost account bank-conf ncb
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n-0) (ncb ncb)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (bank-conf bank-conf) (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n-0 cost account bank-conf ncb
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit (hash n-0 (hash ncb bank-conf))) (cost cost)
+    (n n-0) (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (mtr mtr)
+    (c c) (m m) (b b))
+  (precedes ((1 0) (2 0)) ((2 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "sig" c))
+  (uniq-orig mtr)
+  (facts (neq n-0 ncb) (neq n-0 ncm-0) (neq ncm-0 ncb)
+    (buy-via c m b item-0 cost n-0))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-cust-1)
+  (operation encryption-test (displaced 3 1 cust 1)
+    (sign
+      (order c m b cost
+        (enc n-0 cost account bank-conf ncb
+          (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account bank-conf ncb
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account bank-conf ncb
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account bank-conf ncb
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n-0) (hash ncm-0 item-0 merc-conf-0)
+            mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account bank-conf ncb
+                    (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account bank-conf ncb
+                (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                (pubk "enc" b)))) (pubk "enc" b)))))
+  (label 206)
+  (parent 205)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((c c) (m m) (b b) (cost cost) (item item) (merc-conf merc-conf)
+        (n n) (ncm ncm)
+        (for-bank
+          (enc n-0 cost account bank-conf ncb
+            (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+        (bank-conf-commit bank-conf-commit))))
+  (origs (mtr (2 1))))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit mesg) (account acct) (cost amount)
+    (n ncm n-0 ncb ncm-0 data) (item item-0 merchandise)
+    (merc-conf merc-conf-0 bank-conf mtr text) (c m b name))
+  (defstrand merc 1
+    (for-bank
+      (enc n-0 cost account bank-conf ncb
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n-0) (ncb ncb)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (bank-conf bank-conf) (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n-0 cost account bank-conf ncb
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit (hash n-0 (hash ncb bank-conf))) (cost cost)
+    (n n-0) (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (mtr mtr)
+    (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n-0) (ncb ncb)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (bank-conf bank-conf) (c c) (m m) (b b))
+  (precedes ((1 0) (0 0)) ((2 1) (0 0)) ((3 0) (2 0)))
+  (non-orig (privk "enc" m) (privk "sig" c))
+  (uniq-orig mtr)
+  (facts (neq n-0 ncb) (neq n-0 ncm-0) (neq ncm-0 ncb)
+    (buy-via c m b item-0 cost n-0))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n-0 cost account bank-conf ncb
+          (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account bank-conf ncb
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account bank-conf ncb
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account bank-conf ncb
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n-0) (hash ncm-0 item-0 merc-conf-0)
+            mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account bank-conf ncb
+                    (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account bank-conf ncb
+                (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                (pubk "enc" b)))) (pubk "enc" b))))
+    ((send
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account bank-conf ncb
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))))
+  (label 207)
+  (parent 205)
+  (seen 206)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol minipay-rely-guar basic
+  (defrole cust
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf bank-conf btr mtr text) (account acct)
+      (n ncb ncm data))
+    (trace
+      (send
+        (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c)) (pubk "enc" m)))
+      (recv
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (recv
+        (sign
+          (mconf (hash c m b n item cost (hash n (hash ncb bank-conf)))
+            btr mtr) (privk "sig" m))))
+    (facts (neq n ncb) (neq n ncm) (neq ncm ncb)))
+  (defrole merc
+    (vars (c m b name) (cost amount) (item merchandise)
+      (merc-conf btr mtr text) (n ncm data)
+      (for-bank bank-conf-commit bank-conf-decommit mesg))
+    (trace
+      (recv
+        (enc n cost item merc-conf ncm bank-conf-commit
+          (sign (order c m b cost for-bank) (privk "sig" c))
+          (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat (sign (order c m b cost for-bank) (privk "sig" c))
+              for-bank)) (pubk "enc" b)))
+      (recv
+        (enc bank-conf-decommit
+          (sign
+            (bconf
+              (hash c m b n cost (hash n (hash ncm item merc-conf))) btr
+              mtr) (privk "sig" b)) (pubk "enc" m)))
+      (send
+        (sign
+          (bconf (hash c m b n cost (hash n (hash ncm item merc-conf)))
+            btr mtr) (privk "sig" b)))
+      (send
+        (sign
+          (mconf (hash c m b n item cost (hash n bank-conf-decommit))
+            btr mtr) (privk "sig" m))))
+    (uniq-orig mtr))
+  (defrole bank
+    (vars (c m b name) (cost amount) (bank-conf btr mtr text)
+      (merc-conf-decommit mesg) (account acct) (n ncb data))
+    (trace
+      (recv
+        (enc
+          (payreq c m b (hash cost n) merc-conf-decommit mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n merc-conf-decommit) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n merc-conf-decommit) (pubk "enc" b))))
+          (pubk "enc" b)))
+      (send
+        (enc (hash ncb bank-conf)
+          (sign
+            (bconf (hash c m b n cost (hash n merc-conf-decommit)) btr
+              mtr) (privk "sig" b)) (pubk "enc" m))))
+    (uniq-orig btr))
+  (defrule rely-cust-3
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 3)) (p "cust" "mtr" z mtr)
+          (p "cust" "item" z item) (p "cust" "b" z b) (p "cust" "m" z m)
+          (p "cust" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule rely-cust-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (b m c name))
+      (implies
+        (and (p "cust" z (idx 2)) (p "cust" "btr" z btr)
+          (p "cust" "mtr" z mtr) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "b" z b) (p "cust" "m" z m)
+          (p "cust" "c" z c))
+        (fact will-transfer c m b cost n mtr btr))))
+  (defrule rely-merc-3
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name)
+        (btr mtr text))
+      (implies
+        (and (p "merc" z (idx 3)) (p "merc" "n" z n)
+          (p "merc" "cost" z cost) (p "merc" "item" z item)
+          (p "merc" "b" z b) (p "merc" "m" z m) (p "merc" "c" z c)
+          (p "merc" "btr" z btr) (p "merc" "mtr" z mtr))
+        (and (fact buy-via c m b item cost n)
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule rely-bank-1
+    (forall ((z strd) (n data) (cost amount) (b m c name))
+      (implies
+        (and (p "bank" z (idx 1)) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "b" z b) (p "bank" "m" z m)
+          (p "bank" "c" z c))
+        (exists ((item merchandise))
+          (fact buy-via c m b item cost n)))))
+  (defrule guar-cust-1
+    (forall
+      ((z strd) (n data) (cost amount) (item merchandise) (b m c name))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "n" z n)
+          (p "cust" "cost" z cost) (p "cust" "item" z item)
+          (p "cust" "b" z b) (p "cust" "m" z m) (p "cust" "c" z c))
+        (fact buy-via c m b item cost n))))
+  (defrule guar-merc-4
+    (forall ((z strd) (mtr text) (item merchandise) (b m c name))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "mtr" z mtr)
+          (p "merc" "item" z item) (p "merc" "b" z b) (p "merc" "m" z m)
+          (p "merc" "c" z c))
+        (fact will-ship c m b item mtr))))
+  (defrule guar-bank-2
+    (forall
+      ((z strd) (btr mtr text) (n data) (cost amount) (c b m name))
+      (implies
+        (and (p "bank" z (idx 2)) (p "bank" "btr" z btr)
+          (p "bank" "mtr" z mtr) (p "bank" "n" z n)
+          (p "bank" "cost" z cost) (p "bank" "c" z c) (p "bank" "b" z b)
+          (p "bank" "m" z m))
+        (and (non (privk "sig" c))
+          (fact will-transfer c m b cost n mtr btr)))))
+  (defrule cheq-merc-4
+    (forall
+      ((z strd) (n data) (bank-conf-decommit bank-conf-commit mesg))
+      (implies
+        (and (p "merc" z (idx 4)) (p "merc" "n" z n)
+          (p "merc" "bank-conf-decommit" z bank-conf-decommit)
+          (p "merc" "bank-conf-commit" z bank-conf-commit))
+        (= bank-conf-commit (hash n bank-conf-decommit)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule fact-cust-neq2
+    (forall ((z strd) (ncb n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "n" z n)) (fact neq n ncb))))
+  (defgenrule fact-cust-neq1
+    (forall ((z strd) (ncm n data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncm" z ncm)
+          (p "cust" "n" z n)) (fact neq n ncm))))
+  (defgenrule fact-cust-neq0
+    (forall ((z strd) (ncb ncm data))
+      (implies
+        (and (p "cust" z (idx 1)) (p "cust" "ncb" z ncb)
+          (p "cust" "ncm" z ncm)) (fact neq ncm ncb))))
+  (lang (acct atom) (amount atom) (merchandise atom) (sign sign)
+    (order (tuple 5)) (bconf (tuple 3)) (mconf (tuple 3))
+    (payreq (tuple 7))))
+
+(defskeleton minipay-rely-guar
+  (vars (for-bank bank-conf-commit mesg) (cost amount) (n ncm data)
+    (item merchandise) (merc-conf text) (c m b name))
+  (defstrand merc 1 (for-bank for-bank)
+    (bank-conf-commit bank-conf-commit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (c c) (m m) (b b))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign (order c m b cost for-bank) (privk "sig" c))
+         (pubk "enc" m)))))
+  (label 208)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit mesg) (account acct) (cost amount)
+    (n ncm n-0 ncb ncm-0 data) (item item-0 merchandise)
+    (merc-conf merc-conf-0 bank-conf text) (c m b name))
+  (defstrand merc 1
+    (for-bank
+      (enc n-0 cost account bank-conf ncb
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n-0) (ncb ncb)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (bank-conf bank-conf) (c c) (m m) (b b))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c))
+  (facts (neq n-0 ncb) (neq n-0 ncm-0) (neq ncm-0 ncb)
+    (buy-via c m b item-0 cost n-0))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n-0 cost account bank-conf ncb
+          (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account bank-conf ncb
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account bank-conf ncb
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))))
+  (label 209)
+  (parent 208)
+  (unrealized (0 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (merc-conf bank-conf text) (c m b name))
+  (defstrand merc 1
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c))
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-cust-1)
+  (operation encryption-test
+    (contracted (item-0 item) (merc-conf-0 merc-conf) (n-0 n)
+      (ncm-0 ncm) (bank-conf-commit (hash n (hash ncb bank-conf))))
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 210)
+  (parent 209)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((c c) (m m) (b b) (cost cost) (item item) (merc-conf merc-conf)
+        (n n) (ncm ncm)
+        (for-bank
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (bank-conf-commit (hash n (hash ncb bank-conf))))))
+  (origs))
+
+(defskeleton minipay-rely-guar
+  (vars (bank-conf-commit mesg) (account acct) (cost amount)
+    (n ncm n-0 ncb ncm-0 data) (item item-0 merchandise)
+    (merc-conf merc-conf-0 bank-conf mtr text) (c m b name))
+  (defstrand merc 1
+    (for-bank
+      (enc n-0 cost account bank-conf ncb
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit bank-conf-commit) (cost cost) (n n) (ncm ncm)
+    (item item) (merc-conf merc-conf) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n-0) (ncb ncb)
+    (ncm ncm-0) (item item-0) (merc-conf merc-conf-0)
+    (bank-conf bank-conf) (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n-0 cost account bank-conf ncb
+        (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+    (bank-conf-commit (hash n-0 (hash ncb bank-conf))) (cost cost)
+    (n n-0) (ncm ncm-0) (item item-0) (merc-conf merc-conf-0) (mtr mtr)
+    (c c) (m m) (b b))
+  (precedes ((1 0) (0 0)) ((2 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c))
+  (uniq-orig mtr)
+  (facts (neq n-0 ncb) (neq n-0 ncm-0) (neq ncm-0 ncb)
+    (buy-via c m b item-0 cost n-0))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-cust-1)
+  (operation encryption-test (added-strand merc 2)
+    (sign
+      (order c m b cost
+        (enc n-0 cost account bank-conf ncb
+          (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0)
+    (enc n-0 cost item-0 merc-conf-0 ncm-0
+      (hash n-0 (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n-0 cost account bank-conf ncb
+            (hash n-0 (hash ncm-0 item-0 merc-conf-0)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm bank-conf-commit
+         (sign
+           (order c m b cost
+             (enc n-0 cost account bank-conf ncb
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account bank-conf ncb
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n-0 cost item-0 merc-conf-0 ncm-0
+         (hash n-0 (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n-0 cost account bank-conf ncb
+               (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+               (pubk "enc" b))) (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n-0) (hash ncm-0 item-0 merc-conf-0)
+            mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n-0 cost account bank-conf ncb
+                    (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                    (pubk "enc" b))) (privk "sig" c))
+              (enc n-0 cost account bank-conf ncb
+                (hash n-0 (hash ncm-0 item-0 merc-conf-0))
+                (pubk "enc" b)))) (pubk "enc" b)))))
+  (label 211)
+  (parent 209)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (merc-conf bank-conf mtr text) (c m b name))
+  (defstrand merc 1
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr) (c c) (m m)
+    (b b))
+  (precedes ((1 0) (0 0)) ((2 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c))
+  (uniq-orig mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-cust-1)
+  (operation encryption-test
+    (contracted (item-0 item) (merc-conf-0 merc-conf) (n-0 n)
+      (ncm-0 ncm) (bank-conf-commit (hash n (hash ncb bank-conf))))
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (0 0)
+    (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+      (sign
+        (order c m b cost
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+        (privk "sig" c)) (pubk "enc" m))
+    (enc
+      (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+        (cat
+          (sign
+            (order c m b cost
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+            (privk "sig" c))
+          (enc n cost account bank-conf ncb
+            (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+      (pubk "enc" b)))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 212)
+  (parent 211)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (merc-conf bank-conf mtr text) (c m b name))
+  (defstrand merc 1
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr) (c c) (m m)
+    (b b))
+  (precedes ((1 0) (2 0)) ((2 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c))
+  (uniq-orig mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-cust-1)
+  (operation encryption-test (displaced 3 1 cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b)))))
+  (label 213)
+  (parent 212)
+  (seen 210)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton minipay-rely-guar
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (merc-conf bank-conf mtr text) (c m b name))
+  (defstrand merc 1
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (c c) (m m) (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr) (c c) (m m)
+    (b b))
+  (defstrand cust 1 (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (precedes ((1 0) (0 0)) ((2 1) (0 0)) ((3 0) (2 0)))
+  (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c))
+  (uniq-orig mtr)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)
+    (buy-via c m b item cost n))
+  (rule fact-cust-neq0 fact-cust-neq1 fact-cust-neq2 guar-cust-1)
+  (operation encryption-test (added-strand cust 1)
+    (sign
+      (order c m b cost
+        (enc n cost account bank-conf ncb
+          (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+      (privk "sig" c)) (2 0))
+  (traces
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m))))
+    ((recv
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))
+      (send
+        (enc
+          (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+            (cat
+              (sign
+                (order c m b cost
+                  (enc n cost account bank-conf ncb
+                    (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+                (privk "sig" c))
+              (enc n cost account bank-conf ncb
+                (hash n (hash ncm item merc-conf)) (pubk "enc" b))))
+          (pubk "enc" b))))
+    ((send
+       (enc n cost item merc-conf ncm (hash n (hash ncb bank-conf))
+         (sign
+           (order c m b cost
+             (enc n cost account bank-conf ncb
+               (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+           (privk "sig" c)) (pubk "enc" m)))))
+  (label 214)
+  (parent 212)
+  (seen 213)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/doc/src/cpsa4manual/examples/minipay.scm b/doc/src/cpsa4manual/examples/minipay.scm
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/minipay.scm
@@ -0,0 +1,187 @@
+(herald minipay
+	(try-old-strands)
+	(bound 16)
+	(limit 5000)
+	)
+
+(defprotocol minipay basic
+  (defrole cust
+    (vars (c m b name) (cost amount) (item merchandise)
+	  (merc-conf bank-conf btr mtr text) (account acct) (n ncb ncm data))
+    (trace
+     ;; the customer submits item and cost,
+     ;; as well as confidential values merc-conf, bank-conf
+     ;; to be shared only with the named peer.  A commitment
+     ;; will be shared with other peer.
+     ;; bank never learns item.
+     (send (enc n cost item merc-conf ncm
+		(hash n (hash ncb bank-conf))
+		(sign (order c m b cost
+			     (enc n cost account bank-conf ncb
+				  (hash n (hash ncm item merc-conf))
+				  (pubk "enc" b)))
+		      (privk "sig" c))
+		(pubk "enc" m)))
+
+     ;; signed payment info from bank
+     (recv (sign (bconf (hash c m b n cost
+			      (hash n (hash ncm item merc-conf)))
+			btr mtr)
+		 (privk "sig" b)))
+
+     ;; signed shipping form from merchant
+     (recv (sign (mconf (hash c m b n item cost
+			      (hash n (hash ncb bank-conf)))
+			btr mtr)
+		 (privk "sig" m))))
+    (facts (neq n ncb) (neq n ncm) (neq ncm ncb))
+    )
+
+  (defrole merc
+    (vars (c m b name) (cost amount) (item merchandise)
+	  (merc-conf bank-conf btr mtr text) (n ncm data)
+	  (for-bank bank-conf-commit bank-conf-decommit mesg))
+    (trace
+     (recv (enc n cost item merc-conf ncm
+		bank-conf-commit
+		(sign (order c m b cost for-bank)
+		      (privk "sig" c))
+		(pubk "enc" m)))
+     ;; transmit payment request to bank
+     (send (enc (payreq c m b (hash cost n) (hash ncm item merc-conf) mtr
+			 (cat (sign (order c m b cost for-bank)
+				    (privk "sig" c))
+			      for-bank))
+		 (pubk "enc" b)))
+     ;; receive payment offer and decommit for bank-conf
+     (recv (enc bank-conf-decommit
+		(sign (bconf (hash c m b n cost (hash n (hash ncm item merc-conf))) btr mtr)
+		      (privk "sig" b))
+		(pubk "enc" m)))
+     (cheq bank-conf-commit (hash n bank-conf-decommit))
+     ;; return signed info to customer
+     (send (sign (bconf (hash c m b n cost (hash n (hash ncm item merc-conf))) btr mtr)
+		 (privk "sig" b)))
+     (send (sign (mconf (hash c m b n item cost (hash n bank-conf-decommit)) btr mtr)
+		 (privk "sig" m))))
+    (uniq-orig mtr)
+    ;; (facts (neq n ncm))
+    )
+
+  (defrole bank
+    (vars (c m b name) (cost amount)
+	  (merc-conf bank-conf btr mtr text) (merc-conf-decommit mesg) (account acct) (n ncb data))
+    (trace
+     ;; receive payment requests from merchant and customer,
+     ;; including decommit for merc-conf
+     (recv (enc (payreq c m b (hash cost n) merc-conf-decommit mtr
+			 (cat
+			  (sign (order c m b cost
+				       (enc n cost account bank-conf ncb
+					    (hash n merc-conf-decommit) (pubk "enc" b)))
+				(privk "sig" c))
+			  (enc n cost account bank-conf ncb
+			       (hash n merc-conf-decommit)
+			       (pubk "enc" b))))
+		 (pubk "enc" b)))
+     ;; send payment offer
+     (send (enc (hash ncb bank-conf)
+		(sign (bconf (hash c m b n cost (hash n merc-conf-decommit)) btr mtr)
+		      (privk "sig" b))
+		(pubk "enc" m))))
+    (uniq-orig btr)
+;;    (facts (neq n ncb))
+    )
+
+  (lang (acct atom)
+	(amount atom)
+	(merchandise atom)
+	(sign sign)
+	(order (tuple 5))
+	(bconf (tuple 3))
+	(mconf (tuple 3))
+	(payreq (tuple 7))))
+
+(defskeleton minipay
+  (vars (c m b name) (cost item merc-conf bank-conf text) (account n data))
+  (defstrand cust 3 (c c) (m m) (b b) (n n))
+  (uniq-orig n)
+  (non-orig (privk "sig" m) (privk "sig" b)
+	    (privk "enc" m) (privk "enc" b)))
+
+(defskeleton minipay
+  (vars (c m b name) (cost item merc-conf bank-conf text) (account n data))
+  (defstrand merc 3 (c c) (m m) (b b))
+  (non-orig (privk "sig" b) (privk "sig" m)
+	    (privk "enc" m) (privk "enc" b)))
+
+(defskeleton minipay
+  (vars (c m b name) (cost item merc-conf bank-conf text) (account n data))
+  (defstrand bank 2 (c c) (m m) (b b) (n n))
+  (non-orig (privk "sig" m) (privk "sig" c)
+	    (privk "enc" m) (privk "enc" b)))
+
+(defskeleton minipay
+  (vars (c m b name) (cost item merc-conf bank-conf text) (account n data))
+  (defstrand bank 2 (c c) (m m) (b b) (n n))
+  (non-orig (privk "enc" m) (privk "sig" c)))
+
+(comment
+ "This  blows everything up!"
+ (defskeleton minipay
+   (vars (c m b name) (cost item merc-conf bank-conf text) (account n data))
+   (defstrand cust 3 (c c) (m m) (b b) (n n))
+   (defstrand bank 2 (c c) (m m) (b b) (n n))
+   (defstrand bank 2 (c c) (m m) (b b) (n n))
+   (uniq-orig n)
+   (non-orig (privk "enc" m) (privk "enc" b) (privk "sig" c))))
+
+(defskeleton minipay
+  (vars (account acct) (cost amount) (n ncb ncm data) (item merchandise)
+    (bank-conf btr mtr merc-conf mtr-0 text) (c m b name))
+  (defstrand bank 2 (merc-conf-decommit (hash ncm item merc-conf))
+    (account account) (cost cost) (n n) (ncb ncb) (bank-conf bank-conf)
+    (btr btr) (mtr mtr) (c c) (m m) (b b))
+  (defstrand cust
+    ;; Increase cust to full height
+    3
+    (account account) (cost cost) (n n) (ncb ncb)
+    (ncm ncm) (item item) (merc-conf merc-conf) (bank-conf bank-conf)
+    (c c) (m m) (b b))
+  (defstrand merc 2
+    (for-bank
+      (enc n cost account bank-conf ncb
+        (hash n (hash ncm item merc-conf)) (pubk "enc" b)))
+    (bank-conf-commit (hash n (hash ncb bank-conf))) (cost cost) (n n)
+    (ncm ncm) (item item) (merc-conf merc-conf) (mtr mtr-0) (c c) (m m)
+    (b b))
+  (precedes ((1 0) (2 0)) ((2 1) (0 0)))
+  (non-orig (privk "enc" m) (privk "sig" c)
+	    ;; add merchant sig key, bank sig key
+	    (privk "sig" m) (privk "sig" b))
+  (uniq-orig btr mtr-0 ncm n ncb)
+  (facts (neq n ncb) (neq n ncm) (neq ncm ncb)))
+
+(defskeleton minipay
+  (vars (c m b name) (cost item merc-conf bank-conf text) (account acct) (n data))
+  (defstrand merc 4 (c c) (m m) (b b))
+  (non-orig (privk "sig" b) (privk "sig" m)
+	    (privk "enc" m) (privk "enc" b)))
+
+(defskeleton minipay
+  (vars (c m b name) (cost item merc-conf bank-conf text) (account acct) (n data))
+  (defstrand merc 4 (c c) (m m) (b b))
+  (non-orig (privk "sig" b)))
+
+(defskeleton minipay
+  (vars (c m b name) (cost item merc-conf bank-conf text) (account acct) (n data))
+  (defstrand merc 1 (c c) (m m) (b b))
+  (non-orig (privk "sig" c)
+	    (privk "enc" m)))
+
+(defskeleton minipay
+  (vars (c m b name) (cost item merc-conf bank-conf text) (account acct) (n data))
+  (defstrand merc 1 (c c) (m m) (b b))
+  (non-orig (privk "sig" c)
+	    (privk "enc" m)
+	    (privk "enc" b)))
diff --git a/doc/src/cpsa4manual/examples/minipay.tst b/doc/src/cpsa4manual/examples/minipay.tst
new file mode 100644
# file too large to diff: doc/src/cpsa4manual/examples/minipay.tst
diff --git a/doc/src/cpsa4manual/examples/new_dhcr_um_expt_assume.tst b/doc/src/cpsa4manual/examples/new_dhcr_um_expt_assume.tst
new file mode 100644
# file too large to diff: doc/src/cpsa4manual/examples/new_dhcr_um_expt_assume.tst
diff --git a/doc/src/cpsa4manual/examples/ns.scm b/doc/src/cpsa4manual/examples/ns.scm
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/ns.scm
@@ -0,0 +1,37 @@
+(herald "Needham-Schroeder Public-Key Protocol"
+	(comment "This protocol contains a man-in-the-middle"
+		 "attack discovered by Galvin Lowe."))
+
+;;; Used to generate output for inclusion in the primer.
+;;; Use margin = 60 (-m 60) to generate the output.
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace
+     (send (enc n1 a (pubk b)))
+     (recv (enc n1 n2 (pubk a)))
+     (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace
+     (recv (enc n1 a (pubk b)))
+     (send (enc n1 n2 (pubk a)))
+     (recv (enc n2 (pubk b)))))
+  (comment "Needham-Schroeder"))
+
+;;; The initiator point-of-view
+(defskeleton ns
+  (vars (a b name) (n1 text))
+  (defstrand init 3 (a a) (b b) (n1 n1))
+  (non-orig (privk b) (privk a))
+  (uniq-orig n1)
+  (comment "Initiator point-of-view"))
+
+;;; The responder point-of-view
+(defskeleton ns
+  (vars (a b name) (n2 text))
+  (defstrand resp 3 (a a) (b b) (n2 n2))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n2)
+  (comment "Responder point-of-view"))
diff --git a/doc/src/cpsa4manual/examples/ns.tst b/doc/src/cpsa4manual/examples/ns.tst
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/ns.tst
@@ -0,0 +1,131 @@
+(herald "Needham-Schroeder Public-Key Protocol"
+  (comment "This protocol contains a man-in-the-middle"
+    "attack discovered by Galvin Lowe."))
+
+(comment "CPSA 4.4.0")
+(comment "All input read from ns.scm")
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Needham-Schroeder"))
+
+(defskeleton ns
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (comment "Initiator point-of-view")
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (n1 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (operation nonce-test (added-strand resp 2) n1 (0 1)
+    (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2-0 (pubk a)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (operation nonce-test (contracted (n2-0 n2)) n1 (0 1)
+    (enc n1 n2 (pubk a)) (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))))
+  (label 2)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Needham-Schroeder"))
+
+(defskeleton ns
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n2)
+  (comment "Responder point-of-view")
+  (traces
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b)))))
+  (label 3)
+  (unrealized (0 2))
+  (origs (n2 (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (n2 n1 text) (a b b-0 name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n2)
+  (operation nonce-test (added-strand init 3) n2 (0 2)
+    (enc n1 n2 (pubk a)))
+  (traces
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b))))
+    ((send (enc n1 a (pubk b-0))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b-0)))))
+  (label 4)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 1))))
+
+(comment "Nothing left to do")
diff --git a/doc/src/cpsa4manual/examples/open-closed-late-destructure.scm b/doc/src/cpsa4manual/examples/open-closed-late-destructure.scm
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/open-closed-late-destructure.scm
@@ -0,0 +1,160 @@
+(herald open-closed-late-destructure
+	(bound 40))
+
+(defprotocol subatomic-open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan) (lk ls locn))
+    (trace
+     (recv start-ch (cat "power-up" d o k))
+     (load lk old)
+     (load ls old1)
+     (stor lk (dev-key-state d o k))
+     (stor ls (door-state d (closed o)))
+     (send (enc "up" k)))
+    (auth start-ch)
+    ;; (critical-sections (1 4))
+    (facts (same-dev ls lk)))
+
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace
+     (send start-ch (cat "power-up" d o k))
+     (recv (enc "up" k)))
+    (conf start-ch))
+
+  (defrole owner-delg-key
+    (vars (k skey) (n nb text) (d o b name) (to-b from-b chan))
+    (trace
+     (recv from-b (cat "req-key" b nb))
+     (send to-b (delegate b d o nb n (hash-dk (cat b nb n k))))
+     (recv (hash b nb n)))
+     (conf to-b)
+     (auth from-b)
+    (uniq-orig n))
+
+  (defrole passer-recv-key
+    (vars (kp ign mesg) (n nb text) (d o b name) (to-b from-b chan) (del-key-locn locn))
+    (trace
+     (send from-b (cat "req-key" b nb))
+     (recv to-b (delegate b d o nb n kp))
+     (send (hash b nb n))
+     (load del-key-locn ign)
+     (stor del-key-locn (key-rec b d o nb n kp)))
+    (uniq-orig nb)
+    (auth to-b))
+
+  (defrole passer-open
+    (vars (kp ign mesg) (n nb text) (d o b name) (to-b chan) (del-key-locn locn))
+    (trace
+     (load del-key-locn (key-rec b d o nb n kp))
+     (send (cat b n (enc (open-req b d o nb n) kp)))
+     (recv (hash (open-req b d o nb n)))))
+
+  (defrole passer-close
+    (vars (kp ign mesg) (n nb text) (d o b name) (to-b chan) (del-key-locn locn))
+    (trace
+     (load del-key-locn (key-rec b d o nb n kp))
+     (send (cat b n (enc (close-req b d o nb n) kp)))
+     (recv (hash (close-req b d o nb n)))))
+
+  (defrole dev-open
+    (vars (k skey) (n nb text) (any new-key-state request mesg) (d o b name) (lk ls locn))
+    (trace
+     (recv (cat b n nb request))
+     (load ls (door-state d any))
+     (load lk (dev-key-state d o k))
+     (cheq request (enc (open-req b d o nb n)
+			(hash-dk (cat b nb n k))))
+     (stor ls (door-state d (opened b nb n)))
+     (send (hash (open-req b d o nb n))))
+    (gen-st (dev-key-state d o k))
+    (facts (same-dev ls lk)))
+
+  (defrole dev-closed
+    (vars (k skey) (n nb text) (any new-key-state request mesg) (d o b name) (lk ls locn))
+    (trace
+     (recv (cat b n nb request))
+     (load ls (door-state d any))
+     (load lk (dev-key-state d o k))
+     (cheq request (enc (close-req b d o nb n)
+			(hash-dk (cat b nb n k))))
+     (stor ls (door-state d (closed o)))
+     (send (hash (close-req b d o nb n))))
+    (gen-st (dev-key-state d o k))
+    (facts (same-dev ls lk)))
+
+  (defrole dev-pass
+    (vars (k skey) (n nb text) (d o b name) (lk ls locn))
+    (trace
+     (load lk (dev-key-state d o k))
+     (load ls (door-state d (opened b nb n)))
+     (recv (cat b nb n (enc "may I pass" (hash-dk (cat b nb n k)))))
+     (send (enc "you may pass" n (hash-dk (cat b nb n k)))))
+    (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+    ;;    (critical-sections (0 1))
+    (facts (same-dev ls lk)))
+
+  (defrole passer-pass
+    (vars (kp ign mesg) (n nb text) (d o b name) (to-b chan) (del-key-locn locn))
+    (trace
+     (load del-key-locn (key-rec b d o nb n kp))
+     (send (cat b nb n (enc "may I pass" kp)))
+     (recv (enc "you may pass" kp))))
+
+   (defrule power-deliver-once
+     (forall
+      ((z1 z2 strd) (k skey))
+      (implies
+       (and (p "dev-up" z1 2)
+ 	   (p "dev-up" z2 2)
+ 	   (p "dev-up" "k" z1 k)
+ 	   (p "dev-up" "k" z2 k))
+       (= z1 z2))))
+
+   (defrule same-dev-ls-lk
+     (forall ((ls lk lk-0 locn))
+  	     (implies
+  	      (and (fact same-dev ls lk)
+  		   (fact same-dev ls lk-0))
+  	      (= lk lk-0))))
+
+   (defrule same-dev-lk-ls
+     (forall ((lk ls ls-0 locn))
+  	     (implies
+  	      (and (fact same-dev ls lk)
+  		   (fact same-dev ls-0 lk))
+     	      (= ls ls-0))))
+
+   (lang (closed (tuple 1))
+	 (opened (tuple 3))
+	 (door-state (tuple 2))
+	 (dev-key-state (tuple 3))
+	 (open-req (tuple 5))
+	 (close-req (tuple 5))
+	 (key-rec (tuple 6))
+	 (delegate (tuple 6))
+	 (hash-dk hash)))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k))
+  (deflistener k)
+  (uniq-orig k))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  (defstrand dev-pass 4 (k k)))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k))
+  (defstrand dev-pass 4 (k k))
+  (uniq-orig k))
+
+(comment
+ (defskeleton subatomic-open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  (defstrand dev-pass 4 (k k) (d d) (o o))
+  (gen-st (dev-key-state d o k)))
+
+ )
diff --git a/doc/src/cpsa4manual/examples/open-closed-late-destructure.tst b/doc/src/cpsa4manual/examples/open-closed-late-destructure.tst
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/open-closed-late-destructure.tst
@@ -0,0 +1,3583 @@
+(herald open-closed-late-destructure (bound 40))
+
+(comment "CPSA 4.4.0")
+(comment "All input read from open-closed-late-destructure.scm")
+(comment "Strand count bounded at 40")
+
+(defprotocol subatomic-open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (load ls old1) (stor lk (dev-key-state d o k))
+      (stor ls (door-state d (closed o))) (send (enc "up" k)))
+    (auth start-ch)
+    (facts (same-dev ls lk)))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-delg-key
+    (vars (k skey) (n nb text) (d o b name) (to-b from-b chan))
+    (trace (recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (recv (hash b nb n)))
+    (uniq-orig n)
+    (conf to-b)
+    (auth from-b))
+  (defrole passer-recv-key
+    (vars (kp ign mesg) (n nb text) (d o b name) (to-b from-b chan)
+      (del-key-locn locn))
+    (trace (send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n kp)) (send (hash b nb n))
+      (load del-key-locn ign)
+      (stor del-key-locn (key-rec b d o nb n kp)))
+    (uniq-orig nb)
+    (auth to-b))
+  (defrole passer-open
+    (vars (kp mesg) (n nb text) (d o b name) (del-key-locn locn))
+    (trace (load del-key-locn (key-rec b d o nb n kp))
+      (send (cat b n (enc (open-req b d o nb n) kp)))
+      (recv (hash (open-req b d o nb n)))))
+  (defrole passer-close
+    (vars (kp mesg) (n nb text) (d o b name) (del-key-locn locn))
+    (trace (load del-key-locn (key-rec b d o nb n kp))
+      (send (cat b n (enc (close-req b d o nb n) kp)))
+      (recv (hash (close-req b d o nb n)))))
+  (defrole dev-open
+    (vars (k skey) (n nb text) (any request mesg) (d o b name)
+      (lk ls locn))
+    (trace (recv (cat b n nb request)) (load ls (door-state d any))
+      (load lk (dev-key-state d o k))
+      (stor ls (door-state d (opened b nb n)))
+      (send (hash (open-req b d o nb n))))
+    (gen-st (dev-key-state d o k))
+    (facts (same-dev ls lk)))
+  (defrole dev-closed
+    (vars (k skey) (n nb text) (any request mesg) (d o b name)
+      (lk ls locn))
+    (trace (recv (cat b n nb request)) (load ls (door-state d any))
+      (load lk (dev-key-state d o k))
+      (stor ls (door-state d (closed o)))
+      (send (hash (close-req b d o nb n))))
+    (gen-st (dev-key-state d o k))
+    (facts (same-dev ls lk)))
+  (defrole dev-pass
+    (vars (k skey) (n nb text) (d o b name) (lk ls locn))
+    (trace (load lk (dev-key-state d o k))
+      (load ls (door-state d (opened b nb n)))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+    (facts (same-dev ls lk)))
+  (defrole passer-pass
+    (vars (kp mesg) (n nb text) (d o b name) (del-key-locn locn))
+    (trace (load del-key-locn (key-rec b d o nb n kp))
+      (send (cat b nb n (enc "may I pass" kp)))
+      (recv (enc "you may pass" kp))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defrule same-dev-ls-lk
+    (forall ((ls lk lk-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls lk-0))
+        (= lk lk-0))))
+  (defrule same-dev-lk-ls
+    (forall ((lk ls ls-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls-0 lk))
+        (= ls ls-0))))
+  (defrule cheq-dev-open-4
+    (forall ((z strd) (k skey) (n nb text) (o d b name) (request mesg))
+      (implies
+        (and (p "dev-open" z (idx 4)) (p "dev-open" "k" z k)
+          (p "dev-open" "n" z n) (p "dev-open" "nb" z nb)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d)
+          (p "dev-open" "b" z b) (p "dev-open" "request" z request))
+        (= request (enc (open-req b d o nb n) (hash-dk b nb n k))))))
+  (defrule cheq-dev-closed-4
+    (forall ((z strd) (k skey) (n nb text) (o d b name) (request mesg))
+      (implies
+        (and (p "dev-closed" z (idx 4)) (p "dev-closed" "k" z k)
+          (p "dev-closed" "n" z n) (p "dev-closed" "nb" z nb)
+          (p "dev-closed" "o" z o) (p "dev-closed" "d" z d)
+          (p "dev-closed" "b" z b) (p "dev-closed" "request" z request))
+        (= request (enc (close-req b d o nb n) (hash-dk b nb n k))))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule fact-dev-up-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-up" z (idx 3)) (p "dev-up" "lk" z lk)
+          (p "dev-up" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-open-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-open" z (idx 3)) (p "dev-open" "lk" z lk)
+          (p "dev-open" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-closed-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-closed" z (idx 3)) (p "dev-closed" "lk" z lk)
+          (p "dev-closed" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-pass-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-pass" z (idx 2)) (p "dev-pass" "lk" z lk)
+          (p "dev-pass" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_passer-recv-key-at-4
+    (forall ((z strd))
+      (implies (p "passer-recv-key" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_passer-recv-key-at-3
+    (forall ((z strd))
+      (implies (p "passer-recv-key" z (idx 5)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-1
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-closed-at-3
+    (forall ((z strd))
+      (implies (p "dev-closed" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-closed-at-1
+    (forall ((z strd))
+      (implies (p "dev-closed" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 4)) (prec z (idx 3) z1 i))
+        (or (= z z1)
+          (and (p "dev-up" z (idx 5)) (prec z (idx 4) z1 i))))))
+  (defgenrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-open-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-open" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-closed-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-closed" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-pass-1
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-pass" z (idx 2)) (prec z1 i z (idx 1)))
+        (or (= z z1) (prec z1 i z (idx 0))))))
+  (defgenrule gen-st-dev-open-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-open" z (idx 3)) (p "dev-open" "k" z k)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d))
+        (gen-st (dev-key-state d o k)))))
+  (defgenrule gen-st-dev-closed-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-closed" z (idx 3)) (p "dev-closed" "k" z k)
+          (p "dev-closed" "o" z o) (p "dev-closed" "d" z d))
+        (gen-st (dev-key-state d o k)))))
+  (defgenrule gen-st-dev-pass-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "k" z k)
+          (p "dev-pass" "o" z o) (p "dev-pass" "d" z d))
+        (gen-st (dev-key-state d o k)))))
+  (defgenrule gen-st-dev-pass-0
+    (forall ((z strd) (n nb text) (b d name))
+      (implies
+        (and (p "dev-pass" z (idx 2)) (p "dev-pass" "n" z n)
+          (p "dev-pass" "nb" z nb) (p "dev-pass" "b" z b)
+          (p "dev-pass" "d" z d))
+        (gen-st (door-state d (opened b nb n))))))
+  (lang (closed (tuple 1)) (opened (tuple 3)) (door-state (tuple 2))
+    (dev-key-state (tuple 3)) (open-req (tuple 5)) (close-req (tuple 5))
+    (key-rec (tuple 6)) (delegate (tuple 6)) (hash-dk hash)))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (d o name) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (uniq-orig k)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k)))
+  (label 0)
+  (unrealized (0 1) (1 0))
+  (preskeleton)
+  (origs (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (d o name) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k)))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1) (1 0))
+  (origs (k (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (k skey) (d o name) (pt pt-0 pt-1 pt-2 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (rule eff-dev-up-3 fact-dev-up-same-dev0 trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (added-strand dev-up 4) k (1 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt old))
+      (load ls (cat pt-0 old1))
+      (stor lk (cat pt-1 (dev-key-state d o k)))
+      (stor ls (cat pt-2 (door-state d (closed o))))))
+  (label 2)
+  (parent 1)
+  (seen 2)
+  (unrealized (0 1) (1 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol subatomic-open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (load ls old1) (stor lk (dev-key-state d o k))
+      (stor ls (door-state d (closed o))) (send (enc "up" k)))
+    (auth start-ch)
+    (facts (same-dev ls lk)))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-delg-key
+    (vars (k skey) (n nb text) (d o b name) (to-b from-b chan))
+    (trace (recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (recv (hash b nb n)))
+    (uniq-orig n)
+    (conf to-b)
+    (auth from-b))
+  (defrole passer-recv-key
+    (vars (kp ign mesg) (n nb text) (d o b name) (to-b from-b chan)
+      (del-key-locn locn))
+    (trace (send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n kp)) (send (hash b nb n))
+      (load del-key-locn ign)
+      (stor del-key-locn (key-rec b d o nb n kp)))
+    (uniq-orig nb)
+    (auth to-b))
+  (defrole passer-open
+    (vars (kp mesg) (n nb text) (d o b name) (del-key-locn locn))
+    (trace (load del-key-locn (key-rec b d o nb n kp))
+      (send (cat b n (enc (open-req b d o nb n) kp)))
+      (recv (hash (open-req b d o nb n)))))
+  (defrole passer-close
+    (vars (kp mesg) (n nb text) (d o b name) (del-key-locn locn))
+    (trace (load del-key-locn (key-rec b d o nb n kp))
+      (send (cat b n (enc (close-req b d o nb n) kp)))
+      (recv (hash (close-req b d o nb n)))))
+  (defrole dev-open
+    (vars (k skey) (n nb text) (any request mesg) (d o b name)
+      (lk ls locn))
+    (trace (recv (cat b n nb request)) (load ls (door-state d any))
+      (load lk (dev-key-state d o k))
+      (stor ls (door-state d (opened b nb n)))
+      (send (hash (open-req b d o nb n))))
+    (gen-st (dev-key-state d o k))
+    (facts (same-dev ls lk)))
+  (defrole dev-closed
+    (vars (k skey) (n nb text) (any request mesg) (d o b name)
+      (lk ls locn))
+    (trace (recv (cat b n nb request)) (load ls (door-state d any))
+      (load lk (dev-key-state d o k))
+      (stor ls (door-state d (closed o)))
+      (send (hash (close-req b d o nb n))))
+    (gen-st (dev-key-state d o k))
+    (facts (same-dev ls lk)))
+  (defrole dev-pass
+    (vars (k skey) (n nb text) (d o b name) (lk ls locn))
+    (trace (load lk (dev-key-state d o k))
+      (load ls (door-state d (opened b nb n)))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+    (facts (same-dev ls lk)))
+  (defrole passer-pass
+    (vars (kp mesg) (n nb text) (d o b name) (del-key-locn locn))
+    (trace (load del-key-locn (key-rec b d o nb n kp))
+      (send (cat b nb n (enc "may I pass" kp)))
+      (recv (enc "you may pass" kp))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defrule same-dev-ls-lk
+    (forall ((ls lk lk-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls lk-0))
+        (= lk lk-0))))
+  (defrule same-dev-lk-ls
+    (forall ((lk ls ls-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls-0 lk))
+        (= ls ls-0))))
+  (defrule cheq-dev-open-4
+    (forall ((z strd) (k skey) (n nb text) (o d b name) (request mesg))
+      (implies
+        (and (p "dev-open" z (idx 4)) (p "dev-open" "k" z k)
+          (p "dev-open" "n" z n) (p "dev-open" "nb" z nb)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d)
+          (p "dev-open" "b" z b) (p "dev-open" "request" z request))
+        (= request (enc (open-req b d o nb n) (hash-dk b nb n k))))))
+  (defrule cheq-dev-closed-4
+    (forall ((z strd) (k skey) (n nb text) (o d b name) (request mesg))
+      (implies
+        (and (p "dev-closed" z (idx 4)) (p "dev-closed" "k" z k)
+          (p "dev-closed" "n" z n) (p "dev-closed" "nb" z nb)
+          (p "dev-closed" "o" z o) (p "dev-closed" "d" z d)
+          (p "dev-closed" "b" z b) (p "dev-closed" "request" z request))
+        (= request (enc (close-req b d o nb n) (hash-dk b nb n k))))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule fact-dev-up-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-up" z (idx 3)) (p "dev-up" "lk" z lk)
+          (p "dev-up" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-open-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-open" z (idx 3)) (p "dev-open" "lk" z lk)
+          (p "dev-open" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-closed-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-closed" z (idx 3)) (p "dev-closed" "lk" z lk)
+          (p "dev-closed" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-pass-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-pass" z (idx 2)) (p "dev-pass" "lk" z lk)
+          (p "dev-pass" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_passer-recv-key-at-4
+    (forall ((z strd))
+      (implies (p "passer-recv-key" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_passer-recv-key-at-3
+    (forall ((z strd))
+      (implies (p "passer-recv-key" z (idx 5)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-1
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-closed-at-3
+    (forall ((z strd))
+      (implies (p "dev-closed" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-closed-at-1
+    (forall ((z strd))
+      (implies (p "dev-closed" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 4)) (prec z (idx 3) z1 i))
+        (or (= z z1)
+          (and (p "dev-up" z (idx 5)) (prec z (idx 4) z1 i))))))
+  (defgenrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-open-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-open" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-closed-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-closed" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-pass-1
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-pass" z (idx 2)) (prec z1 i z (idx 1)))
+        (or (= z z1) (prec z1 i z (idx 0))))))
+  (defgenrule gen-st-dev-open-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-open" z (idx 3)) (p "dev-open" "k" z k)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d))
+        (gen-st (dev-key-state d o k)))))
+  (defgenrule gen-st-dev-closed-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-closed" z (idx 3)) (p "dev-closed" "k" z k)
+          (p "dev-closed" "o" z o) (p "dev-closed" "d" z d))
+        (gen-st (dev-key-state d o k)))))
+  (defgenrule gen-st-dev-pass-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "k" z k)
+          (p "dev-pass" "o" z o) (p "dev-pass" "d" z d))
+        (gen-st (dev-key-state d o k)))))
+  (defgenrule gen-st-dev-pass-0
+    (forall ((z strd) (n nb text) (b d name))
+      (implies
+        (and (p "dev-pass" z (idx 2)) (p "dev-pass" "n" z n)
+          (p "dev-pass" "nb" z nb) (p "dev-pass" "b" z b)
+          (p "dev-pass" "d" z d))
+        (gen-st (door-state d (opened b nb n))))))
+  (lang (closed (tuple 1)) (opened (tuple 3)) (door-state (tuple 2))
+    (dev-key-state (tuple 3)) (open-req (tuple 5)) (close-req (tuple 5))
+    (key-rec (tuple 6)) (delegate (tuple 6)) (hash-dk hash)))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (n nb text) (d o b name) (pt pt-0 pval) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (traces
+    ((load lk (cat pt (dev-key-state d o k)))
+      (load ls (cat pt-0 (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k)))))
+  (label 3)
+  (realized)
+  (origs)
+  (comment "Not closed under rules"))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (n nb text) (d o b name) (pt pt-0 pval) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (facts (same-dev ls lk))
+  (rule fact-dev-pass-same-dev0 gen-st-dev-pass-0 gen-st-dev-pass-1)
+  (traces
+    ((load lk (cat pt (dev-key-state d o k)))
+      (load ls (cat pt-0 (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k)))))
+  (label 4)
+  (parent 3)
+  (seen 5)
+  (unrealized (0 0) (0 1))
+  (origs)
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((1 4) (0 0)))
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((1 3) (0 0)))
+  (rule cau-dev-pass-1 eff-dev-up-3 fact-dev-pass-same-dev0
+    fact-dev-up-same-dev0 same-dev-lk-ls trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-2 (dev-key-state d o k))) (0 0))
+  (traces
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o))))))
+  (label 5)
+  (parent 4)
+  (unrealized (0 1) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (precedes ((1 4) (0 0)) ((2 0) (1 0)))
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand owner-power-dev 1)
+    (ch-msg start-ch (cat "power-up" d o k)) (1 0))
+  (traces
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((send start-ch (cat "power-up" d o k))))
+  (label 6)
+  (parent 5)
+  (seen 7)
+  (unrealized (0 1))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k k-0 skey) (n nb text) (b d o o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk locn))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o-0 nb n) (hash-dk b nb n k-0))) (k k-0)
+    (n n) (nb nb) (d d) (o o-0) (b b) (lk lk) (ls ls))
+  (precedes ((1 4) (3 1)) ((2 0) (1 0)) ((3 3) (0 0)))
+  (gen-st (dev-key-state d o k) (dev-key-state d o-0 k-0)
+    (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((1 3) (0 0)) ((3 3) (0 1)))
+  (rule cau-dev-closed-2 cau-dev-pass-1 cheq-dev-open-4
+    fact-dev-closed-same-dev0 fact-dev-pass-same-dev0
+    gen-st-dev-closed-0 invShearsRule same-dev-ls-lk trRl_dev-open-at-1
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-open 4)
+    (ch-msg ls (cat pt (door-state d (opened b nb n)))) (0 1))
+  (traces
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv
+       (cat b n nb (enc (open-req b d o-0 nb n) (hash-dk b nb n k-0))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o-0 k-0)))
+      (stor ls (cat pt (door-state d (opened b nb n))))))
+  (label 7)
+  (parent 6)
+  (seen 8)
+  (unrealized (3 2))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (precedes ((1 4) (3 1)) ((2 0) (1 0)) ((3 3) (0 0)))
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((1 3) (0 0)) ((1 3) (3 2)) ((3 3) (0 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (displaced 4 1 dev-up 4)
+    (ch-msg lk (cat pt-5 (dev-key-state d o-0 k-0))) (3 2))
+  (traces
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n))))))
+  (label 8)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0) ((k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))))
+  (origs (pt-2 (1 3)) (pt (3 3)) (pt-3 (1 4))))
+
+(comment "Nothing left to do")
+
+(defprotocol subatomic-open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (load ls old1) (stor lk (dev-key-state d o k))
+      (stor ls (door-state d (closed o))) (send (enc "up" k)))
+    (auth start-ch)
+    (facts (same-dev ls lk)))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-delg-key
+    (vars (k skey) (n nb text) (d o b name) (to-b from-b chan))
+    (trace (recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (recv (hash b nb n)))
+    (uniq-orig n)
+    (conf to-b)
+    (auth from-b))
+  (defrole passer-recv-key
+    (vars (kp ign mesg) (n nb text) (d o b name) (to-b from-b chan)
+      (del-key-locn locn))
+    (trace (send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n kp)) (send (hash b nb n))
+      (load del-key-locn ign)
+      (stor del-key-locn (key-rec b d o nb n kp)))
+    (uniq-orig nb)
+    (auth to-b))
+  (defrole passer-open
+    (vars (kp mesg) (n nb text) (d o b name) (del-key-locn locn))
+    (trace (load del-key-locn (key-rec b d o nb n kp))
+      (send (cat b n (enc (open-req b d o nb n) kp)))
+      (recv (hash (open-req b d o nb n)))))
+  (defrole passer-close
+    (vars (kp mesg) (n nb text) (d o b name) (del-key-locn locn))
+    (trace (load del-key-locn (key-rec b d o nb n kp))
+      (send (cat b n (enc (close-req b d o nb n) kp)))
+      (recv (hash (close-req b d o nb n)))))
+  (defrole dev-open
+    (vars (k skey) (n nb text) (any request mesg) (d o b name)
+      (lk ls locn))
+    (trace (recv (cat b n nb request)) (load ls (door-state d any))
+      (load lk (dev-key-state d o k))
+      (stor ls (door-state d (opened b nb n)))
+      (send (hash (open-req b d o nb n))))
+    (gen-st (dev-key-state d o k))
+    (facts (same-dev ls lk)))
+  (defrole dev-closed
+    (vars (k skey) (n nb text) (any request mesg) (d o b name)
+      (lk ls locn))
+    (trace (recv (cat b n nb request)) (load ls (door-state d any))
+      (load lk (dev-key-state d o k))
+      (stor ls (door-state d (closed o)))
+      (send (hash (close-req b d o nb n))))
+    (gen-st (dev-key-state d o k))
+    (facts (same-dev ls lk)))
+  (defrole dev-pass
+    (vars (k skey) (n nb text) (d o b name) (lk ls locn))
+    (trace (load lk (dev-key-state d o k))
+      (load ls (door-state d (opened b nb n)))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+    (facts (same-dev ls lk)))
+  (defrole passer-pass
+    (vars (kp mesg) (n nb text) (d o b name) (del-key-locn locn))
+    (trace (load del-key-locn (key-rec b d o nb n kp))
+      (send (cat b nb n (enc "may I pass" kp)))
+      (recv (enc "you may pass" kp))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defrule same-dev-ls-lk
+    (forall ((ls lk lk-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls lk-0))
+        (= lk lk-0))))
+  (defrule same-dev-lk-ls
+    (forall ((lk ls ls-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls-0 lk))
+        (= ls ls-0))))
+  (defrule cheq-dev-open-4
+    (forall ((z strd) (k skey) (n nb text) (o d b name) (request mesg))
+      (implies
+        (and (p "dev-open" z (idx 4)) (p "dev-open" "k" z k)
+          (p "dev-open" "n" z n) (p "dev-open" "nb" z nb)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d)
+          (p "dev-open" "b" z b) (p "dev-open" "request" z request))
+        (= request (enc (open-req b d o nb n) (hash-dk b nb n k))))))
+  (defrule cheq-dev-closed-4
+    (forall ((z strd) (k skey) (n nb text) (o d b name) (request mesg))
+      (implies
+        (and (p "dev-closed" z (idx 4)) (p "dev-closed" "k" z k)
+          (p "dev-closed" "n" z n) (p "dev-closed" "nb" z nb)
+          (p "dev-closed" "o" z o) (p "dev-closed" "d" z d)
+          (p "dev-closed" "b" z b) (p "dev-closed" "request" z request))
+        (= request (enc (close-req b d o nb n) (hash-dk b nb n k))))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule fact-dev-up-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-up" z (idx 3)) (p "dev-up" "lk" z lk)
+          (p "dev-up" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-open-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-open" z (idx 3)) (p "dev-open" "lk" z lk)
+          (p "dev-open" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-closed-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-closed" z (idx 3)) (p "dev-closed" "lk" z lk)
+          (p "dev-closed" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-pass-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-pass" z (idx 2)) (p "dev-pass" "lk" z lk)
+          (p "dev-pass" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_passer-recv-key-at-4
+    (forall ((z strd))
+      (implies (p "passer-recv-key" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_passer-recv-key-at-3
+    (forall ((z strd))
+      (implies (p "passer-recv-key" z (idx 5)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-1
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-closed-at-3
+    (forall ((z strd))
+      (implies (p "dev-closed" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-closed-at-1
+    (forall ((z strd))
+      (implies (p "dev-closed" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 4)) (prec z (idx 3) z1 i))
+        (or (= z z1)
+          (and (p "dev-up" z (idx 5)) (prec z (idx 4) z1 i))))))
+  (defgenrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-open-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-open" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-closed-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-closed" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-pass-1
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-pass" z (idx 2)) (prec z1 i z (idx 1)))
+        (or (= z z1) (prec z1 i z (idx 0))))))
+  (defgenrule gen-st-dev-open-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-open" z (idx 3)) (p "dev-open" "k" z k)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d))
+        (gen-st (dev-key-state d o k)))))
+  (defgenrule gen-st-dev-closed-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-closed" z (idx 3)) (p "dev-closed" "k" z k)
+          (p "dev-closed" "o" z o) (p "dev-closed" "d" z d))
+        (gen-st (dev-key-state d o k)))))
+  (defgenrule gen-st-dev-pass-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "k" z k)
+          (p "dev-pass" "o" z o) (p "dev-pass" "d" z d))
+        (gen-st (dev-key-state d o k)))))
+  (defgenrule gen-st-dev-pass-0
+    (forall ((z strd) (n nb text) (b d name))
+      (implies
+        (and (p "dev-pass" z (idx 2)) (p "dev-pass" "n" z n)
+          (p "dev-pass" "nb" z nb) (p "dev-pass" "b" z b)
+          (p "dev-pass" "d" z d))
+        (gen-st (door-state d (opened b nb n))))))
+  (lang (closed (tuple 1)) (opened (tuple 3)) (door-state (tuple 2))
+    (dev-key-state (tuple 3)) (open-req (tuple 5)) (close-req (tuple 5))
+    (key-rec (tuple 6)) (delegate (tuple 6)) (hash-dk hash)))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (n nb text) (d o d-0 o-0 b name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (lk lk) (ls ls))
+  (uniq-orig k)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt (dev-key-state d-0 o-0 k)))
+      (load ls (cat pt-0 (door-state d-0 (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k)))))
+  (label 9)
+  (unrealized (0 1) (1 0) (1 2))
+  (preskeleton)
+  (origs (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (n nb text) (d o d-0 o-0 b name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (lk lk) (ls ls))
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt (dev-key-state d-0 o-0 k)))
+      (load ls (cat pt-0 (door-state d-0 (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k)))))
+  (label 10)
+  (parent 9)
+  (unrealized (0 1) (1 0) (1 2))
+  (origs (k (0 0)))
+  (comment "Not closed under rules"))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (n nb text) (d o d-0 o-0 b name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (lk lk) (ls ls))
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d-0 o-0 k) (door-state d-0 (opened b nb n)))
+  (conf start-ch)
+  (facts (same-dev ls lk))
+  (rule fact-dev-pass-same-dev0 gen-st-dev-pass-0 gen-st-dev-pass-1)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt (dev-key-state d-0 o-0 k)))
+      (load ls (cat pt-0 (door-state d-0 (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k)))))
+  (label 11)
+  (parent 10)
+  (seen 12)
+  (unrealized (0 1) (1 0) (1 1) (1 2))
+  (origs (k (0 0)))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (k skey) (n nb text) (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch start-ch-0 chan)
+    (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d-0) (o o-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d-0 o-0 k) (door-state d-0 (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch-0)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)))
+  (rule cau-dev-pass-1 eff-dev-up-3 fact-dev-pass-same-dev0
+    fact-dev-up-same-dev0 same-dev-lk-ls trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-2 (dev-key-state d-0 o-0 k))) (1 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d-0 o-0 k)))
+      (load ls (cat pt (door-state d-0 (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch-0 (cat "power-up" d-0 o-0 k))
+      (load lk (cat pt-0 old)) (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d-0 o-0 k)))
+      (stor ls (cat pt-3 (door-state d-0 (closed o-0))))))
+  (label 12)
+  (parent 11)
+  (unrealized (0 1) (1 1) (1 2) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (k skey) (n nb text) (d o b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (displaced 3 0 owner-power-dev 1)
+    (ch-msg start-ch-0 (cat "power-up" d-0 o-0 k)) (2 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o))))))
+  (label 13)
+  (parent 12)
+  (seen 14)
+  (unrealized (0 1) (1 1) (1 2))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k k-0 skey) (n nb text) (d o b o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o-0 nb n) (hash-dk b nb n k-0))) (k k-0)
+    (n n) (nb nb) (d d) (o o-0) (b b) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d o k) (dev-key-state d o-0 k-0)
+    (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((3 3) (1 1)))
+  (rule cau-dev-closed-2 cau-dev-pass-1 cheq-dev-open-4
+    fact-dev-closed-same-dev0 fact-dev-pass-same-dev0
+    gen-st-dev-closed-0 invShearsRule same-dev-ls-lk trRl_dev-open-at-1
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-open 4)
+    (ch-msg ls (cat pt (door-state d (opened b nb n)))) (1 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv
+       (cat b n nb (enc (open-req b d o-0 nb n) (hash-dk b nb n k-0))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o-0 k-0)))
+      (stor ls (cat pt (door-state d (opened b nb n))))))
+  (label 14)
+  (parent 13)
+  (seen 15)
+  (unrealized (0 1) (1 2) (3 2))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (displaced 4 2 dev-up 4)
+    (ch-msg lk (cat pt-5 (dev-key-state d o-0 k-0))) (3 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n))))))
+  (label 15)
+  (parent 14)
+  (unrealized (0 1) (1 2) (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 1) (3 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-strand passer-open 2)
+    (enc (open-req b d o nb n) (hash-dk b nb n k)) (3 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-5 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))))
+  (label 16)
+  (parent 15)
+  (unrealized (0 1) (1 2) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (deflistener (hash-dk b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 1) (3 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-listener (hash-dk b nb n k))
+    (enc (open-req b d o nb n) (hash-dk b nb n k)) (3 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k))))
+  (label 17)
+  (parent 15)
+  (unrealized (0 1) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch to-b from-b chan)
+    (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 1) (3 0))
+    ((5 1) (4 0)))
+  (uniq-orig k n)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-strand owner-delg-key 2)
+    (hash-dk b nb n k) (4 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-5 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k)))))
+  (label 18)
+  (parent 16)
+  (unrealized (0 1) (1 2) (4 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((2 4) (3 1)) ((3 3) (1 0))
+    ((4 1) (3 0)) ((5 1) (4 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-listener (cat b nb n k))
+    (hash-dk b nb n k) (4 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-5 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 19)
+  (parent 16)
+  (seen 23)
+  (unrealized (0 1) (5 0))
+  (comment "8 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch to-b from-b chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (deflistener (hash-dk b nb n k))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 1) (3 0))
+    ((5 1) (4 0)))
+  (uniq-orig k n)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-strand owner-delg-key 2)
+    (hash-dk b nb n k) (4 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k)))))
+  (label 20)
+  (parent 17)
+  (unrealized (0 1) (1 2) (3 0) (4 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (deflistener (hash-dk b nb n k))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((2 4) (3 1)) ((3 3) (1 0))
+    ((4 1) (3 0)) ((5 1) (4 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-listener (cat b nb n k))
+    (hash-dk b nb n k) (4 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 21)
+  (parent 17)
+  (seen 25)
+  (unrealized (0 1) (5 0))
+  (comment "8 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch to-b from-b chan)
+    (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 1 (nb nb) (b b) (from-b from-b))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 1) (3 0))
+    ((5 1) (4 0)) ((6 0) (5 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand passer-recv-key 1)
+    (ch-msg from-b (cat "req-key" b nb)) (5 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-5 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))))
+  (label 22)
+  (parent 18)
+  (unrealized (0 1) (1 2) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (5 0)) ((3 3) (1 0)) ((4 1) (3 0))
+    ((5 1) (4 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-1
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (displaced 6 2 dev-up 4) k (5 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-5 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 23)
+  (parent 19)
+  (seen 23)
+  (unrealized (0 1) (5 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch to-b from-b chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (deflistener (hash-dk b nb n k))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 1 (nb nb) (b b) (from-b from-b))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 1) (3 0))
+    ((5 1) (4 0)) ((6 0) (5 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand passer-recv-key 1)
+    (ch-msg from-b (cat "req-key" b nb)) (5 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))))
+  (label 24)
+  (parent 20)
+  (unrealized (0 1) (1 2) (3 0) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (deflistener (hash-dk b nb n k))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (5 0)) ((3 3) (1 0)) ((4 1) (3 0))
+    ((5 1) (4 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-1
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (displaced 6 2 dev-up 4) k (5 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 25)
+  (parent 21)
+  (seen 25)
+  (unrealized (0 1) (5 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text)
+    (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan)
+    (ls lk del-key-locn del-key-locn-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d-0) (o o-0) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn-0))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 1) (3 0))
+    ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (displaced 6 7 passer-recv-key 5)
+    (hash-dk b nb n k) (4 0)
+    (ch-msg to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-5 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn-0 (cat pt-6 ign))
+      (stor del-key-locn-0
+        (cat pt-7 (key-rec b d-0 o-0 nb n (hash-dk b nb n k))))))
+  (label 26)
+  (parent 22)
+  (unrealized (0 1) (1 2) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch to-b from-b chan)
+    (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 1 (nb nb) (b b) (from-b from-b))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((0 0) (7 0)) ((2 4) (3 1)) ((3 3) (1 0))
+    ((4 1) (3 0)) ((5 1) (7 0)) ((6 0) (5 0)) ((7 1) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-listener (cat b nb n k))
+    (hash-dk b nb n k) (4 0)
+    (ch-msg to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-5 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb)))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 27)
+  (parent 22)
+  (seen 32)
+  (unrealized (0 1) (7 0))
+  (comment "8 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text)
+    (d o b d-0 o-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (deflistener (hash-dk b nb n k))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d-0) (o o-0) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 1) (3 0))
+    ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (displaced 6 7 passer-recv-key 5)
+    (hash-dk b nb n k) (4 0)
+    (ch-msg to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d-0 o-0 nb n (hash-dk b nb n k))))))
+  (label 28)
+  (parent 24)
+  (unrealized (0 1) (1 2) (3 0) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch to-b from-b chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (deflistener (hash-dk b nb n k))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 1 (nb nb) (b b) (from-b from-b))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((0 0) (7 0)) ((2 4) (3 1)) ((3 3) (1 0))
+    ((4 1) (3 0)) ((5 1) (7 0)) ((6 0) (5 0)) ((7 1) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-listener (cat b nb n k))
+    (hash-dk b nb n k) (4 0)
+    (ch-msg to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb)))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 29)
+  (parent 24)
+  (seen 34)
+  (unrealized (0 1) (7 0))
+  (comment "8 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 1) (3 0))
+    ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)) ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test
+    (contracted (d-0 d) (o-0 o) (del-key-locn-0 del-key-locn)
+      (pt-7 pt-6)) (hash-dk b nb n k) (4 0)
+    (ch-msg to-b (delegate b d o nb n (hash-dk b nb n k)))
+    (ch-msg del-key-locn
+      (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))))
+  (label 30)
+  (parent 26)
+  (unrealized (0 1) (1 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text)
+    (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan)
+    (ls lk del-key-locn del-key-locn-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d-0) (o o-0) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn-0))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((0 0) (7 0)) ((2 4) (3 1)) ((3 3) (1 0))
+    ((4 1) (3 0)) ((5 1) (6 1)) ((5 1) (7 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((7 1) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (added-listener (cat b nb n k))
+    (hash-dk b nb n k) (4 0)
+    (ch-msg to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k)))
+    (ch-msg del-key-locn-0
+      (cat pt-7 (key-rec b d-0 o-0 nb n (hash-dk b nb n k)))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-5 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn-0 (cat pt-6 ign))
+      (stor del-key-locn-0
+        (cat pt-7 (key-rec b d-0 o-0 nb n (hash-dk b nb n k)))))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 31)
+  (parent 26)
+  (seen 37)
+  (unrealized (0 1) (7 0))
+  (comment "8 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch to-b from-b chan)
+    (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 1 (nb nb) (b b) (from-b from-b))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (7 0)) ((3 3) (1 0)) ((4 1) (3 0))
+    ((5 1) (7 0)) ((6 0) (5 0)) ((7 1) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-1
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (displaced 8 2 dev-up 4) k (7 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-5 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb)))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 32)
+  (parent 27)
+  (seen 32)
+  (unrealized (0 1) (7 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text)
+    (d o b d-0 o-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (deflistener (hash-dk b nb n k))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d-0) (o o-0) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((0 0) (7 0)) ((2 4) (3 1)) ((3 3) (1 0))
+    ((4 1) (3 0)) ((5 1) (6 1)) ((5 1) (7 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((7 1) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (added-listener (cat b nb n k))
+    (hash-dk b nb n k) (4 0)
+    (ch-msg to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k)))
+    (ch-msg del-key-locn
+      (cat pt-6 (key-rec b d-0 o-0 nb n (hash-dk b nb n k)))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d-0 o-0 nb n (hash-dk b nb n k)))))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 33)
+  (parent 28)
+  (seen 38)
+  (unrealized (0 1) (7 0))
+  (comment "8 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch to-b from-b chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (deflistener (hash-dk b nb n k))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 1 (nb nb) (b b) (from-b from-b))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (7 0)) ((3 3) (1 0)) ((4 1) (3 0))
+    ((5 1) (7 0)) ((6 0) (5 0)) ((7 1) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-1
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (displaced 8 2 dev-up 4) k (7 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb)))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 34)
+  (parent 29)
+  (seen 34)
+  (unrealized (0 1) (7 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb n-0 nb-0 text)
+    (b d o d-0 o-0 b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan)
+    (ls lk del-key-locn del-key-locn-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n-0) (nb nb-0)
+    (d d-0) (o o-0) (b b-0) (del-key-locn del-key-locn-0))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 1) (3 0))
+    ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0)) ((7 1) (1 2)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)) ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (added-strand passer-pass 2)
+    (enc "may I pass" (hash-dk b nb n k)) (1 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn-0
+       (cat pt-7 (key-rec b-0 d-0 o-0 nb-0 n-0 (hash-dk b nb n k))))
+      (send (cat b-0 nb-0 n-0 (enc "may I pass" (hash-dk b nb n k))))))
+  (label 35)
+  (parent 30)
+  (unrealized (0 1) (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (deflistener (hash-dk b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 1) (3 0))
+    ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0)) ((7 1) (1 2)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)) ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (added-listener (hash-dk b nb n k))
+    (enc "may I pass" (hash-dk b nb n k)) (1 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k))))
+  (label 36)
+  (parent 30)
+  (unrealized (0 1) (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text)
+    (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan)
+    (ls lk del-key-locn del-key-locn-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d-0) (o o-0) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn-0))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (7 0)) ((3 3) (1 0)) ((4 1) (3 0))
+    ((5 1) (6 1)) ((5 1) (7 0)) ((6 0) (5 0)) ((6 4) (4 0))
+    ((7 1) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-1
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4 trRl_passer-recv-key-at-3
+    trRl_passer-recv-key-at-4)
+  (operation nonce-test (displaced 8 2 dev-up 4) k (7 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-5 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn-0 (cat pt-6 ign))
+      (stor del-key-locn-0
+        (cat pt-7 (key-rec b d-0 o-0 nb n (hash-dk b nb n k)))))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 37)
+  (parent 31)
+  (seen 37)
+  (unrealized (0 1) (7 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text)
+    (d o b d-0 o-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (deflistener (hash-dk b nb n k))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d-0) (o o-0) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (7 0)) ((3 3) (1 0)) ((4 1) (3 0))
+    ((5 1) (6 1)) ((5 1) (7 0)) ((6 0) (5 0)) ((6 4) (4 0))
+    ((7 1) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-1
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4 trRl_passer-recv-key-at-3
+    trRl_passer-recv-key-at-4)
+  (operation nonce-test (displaced 8 2 dev-up 4) k (7 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d-0 o-0 nb n (hash-dk b nb n k)))))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 38)
+  (parent 33)
+  (seen 38)
+  (unrealized (0 1) (7 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb n-0 nb-0 text)
+    (b d o d-0 o-0 b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan)
+    (ls lk del-key-locn del-key-locn-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n-0) (nb nb-0)
+    (d d-0) (o o-0) (b b-0) (del-key-locn del-key-locn-0))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 1) (3 0))
+    ((5 1) (6 1)) ((5 1) (7 0)) ((6 0) (5 0)) ((6 4) (4 0))
+    ((7 1) (1 2)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)) ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (displaced 8 5 owner-delg-key 2)
+    (hash-dk b nb n k) (7 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn-0
+       (cat pt-7 (key-rec b-0 d-0 o-0 nb-0 n-0 (hash-dk b nb n k))))
+      (send (cat b-0 nb-0 n-0 (enc "may I pass" (hash-dk b nb n k))))))
+  (label 39)
+  (parent 35)
+  (unrealized (0 1) (7 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (deflistener (hash-dk b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 1) (3 0))
+    ((5 1) (6 1)) ((5 1) (7 0)) ((6 0) (5 0)) ((6 4) (4 0))
+    ((7 1) (1 2)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)) ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (displaced 8 5 owner-delg-key 2)
+    (hash-dk b nb n k) (7 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k))))
+  (label 40)
+  (parent 36)
+  (unrealized (0 1) (7 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb n-0 nb-0 text)
+    (b d o d-0 o-0 b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan)
+    (ls lk del-key-locn del-key-locn-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n-0) (nb nb-0)
+    (d d-0) (o o-0) (b b-0) (del-key-locn del-key-locn-0))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 1) (3 0))
+    ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0)) ((6 4) (7 0))
+    ((7 1) (1 2)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)) ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (displaced 8 6 passer-recv-key 5)
+    (hash-dk b nb n k) (7 0)
+    (ch-msg to-b (delegate b d o nb n (hash-dk b nb n k))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn-0
+       (cat pt-7 (key-rec b-0 d-0 o-0 nb-0 n-0 (hash-dk b nb n k))))
+      (send (cat b-0 nb-0 n-0 (enc "may I pass" (hash-dk b nb n k))))))
+  (label 41)
+  (parent 39)
+  (unrealized (0 1) (7 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb n-0 nb-0 text)
+    (b d o d-0 o-0 b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan)
+    (ls lk del-key-locn del-key-locn-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n-0) (nb nb-0)
+    (d d-0) (o o-0) (b b-0) (del-key-locn del-key-locn-0))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((0 0) (8 0)) ((2 4) (3 1)) ((3 3) (1 0))
+    ((4 1) (3 0)) ((5 1) (6 1)) ((5 1) (8 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((7 1) (1 2)) ((8 1) (7 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)) ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (added-listener (cat b nb n k))
+    (hash-dk b nb n k) (7 0)
+    (ch-msg to-b (delegate b d o nb n (hash-dk b nb n k))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn-0
+       (cat pt-7 (key-rec b-0 d-0 o-0 nb-0 n-0 (hash-dk b nb n k))))
+      (send (cat b-0 nb-0 n-0 (enc "may I pass" (hash-dk b nb n k)))))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 42)
+  (parent 39)
+  (seen 47)
+  (unrealized (0 1) (8 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (deflistener (hash-dk b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 1) (3 0))
+    ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0)) ((6 4) (7 0))
+    ((7 1) (1 2)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)) ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (displaced 8 6 passer-recv-key 5)
+    (hash-dk b nb n k) (7 0)
+    (ch-msg to-b (delegate b d o nb n (hash-dk b nb n k))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k))))
+  (label 43)
+  (parent 40)
+  (unrealized (0 1) (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (deflistener (hash-dk b nb n k))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((0 0) (8 0)) ((2 4) (3 1)) ((3 3) (1 0))
+    ((4 1) (3 0)) ((5 1) (6 1)) ((5 1) (8 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((7 1) (1 2)) ((8 1) (7 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)) ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (added-listener (cat b nb n k))
+    (hash-dk b nb n k) (7 0)
+    (ch-msg to-b (delegate b d o nb n (hash-dk b nb n k))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 44)
+  (parent 40)
+  (seen 49)
+  (unrealized (0 1) (8 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 1) (3 0))
+    ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0)) ((6 4) (7 0))
+    ((7 1) (1 2)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)) ((6 4) (4 0))
+    ((6 4) (7 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test
+    (contracted (n-0 n) (nb-0 nb) (d-0 d) (o-0 o) (b-0 b)
+      (del-key-locn-0 del-key-locn) (pt-7 pt-6)) (hash-dk b nb n k)
+    (7 0) (ch-msg to-b (delegate b d o nb n (hash-dk b nb n k)))
+    (ch-msg del-key-locn
+      (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b nb n (enc "may I pass" (hash-dk b nb n k))))))
+  (label 45)
+  (parent 41)
+  (seen 50)
+  (unrealized (0 1))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb n-0 nb-0 text)
+    (b d o d-0 o-0 b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan)
+    (ls lk del-key-locn del-key-locn-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n-0) (nb nb-0)
+    (d d-0) (o o-0) (b b-0) (del-key-locn del-key-locn-0))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((0 0) (8 0)) ((2 4) (3 1)) ((3 3) (1 0))
+    ((4 1) (3 0)) ((5 1) (6 1)) ((5 1) (8 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((6 4) (7 0)) ((7 1) (1 2)) ((8 1) (7 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)) ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (added-listener (cat b nb n k))
+    (hash-dk b nb n k) (7 0)
+    (ch-msg to-b (delegate b d o nb n (hash-dk b nb n k)))
+    (ch-msg del-key-locn
+      (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn-0
+       (cat pt-7 (key-rec b-0 d-0 o-0 nb-0 n-0 (hash-dk b nb n k))))
+      (send (cat b-0 nb-0 n-0 (enc "may I pass" (hash-dk b nb n k)))))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 46)
+  (parent 41)
+  (seen 52)
+  (unrealized (0 1) (8 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb n-0 nb-0 text)
+    (b d o d-0 o-0 b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan)
+    (ls lk del-key-locn del-key-locn-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n-0) (nb nb-0)
+    (d d-0) (o o-0) (b b-0) (del-key-locn del-key-locn-0))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((2 4) (8 0)) ((3 3) (1 0))
+    ((4 1) (3 0)) ((5 1) (6 1)) ((5 1) (8 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((7 1) (1 2)) ((8 1) (7 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)) ((6 4) (4 0)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-1
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4 trRl_passer-recv-key-at-3
+    trRl_passer-recv-key-at-4)
+  (operation nonce-test (displaced 9 2 dev-up 4) k (8 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn-0
+       (cat pt-7 (key-rec b-0 d-0 o-0 nb-0 n-0 (hash-dk b nb n k))))
+      (send (cat b-0 nb-0 n-0 (enc "may I pass" (hash-dk b nb n k)))))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 47)
+  (parent 42)
+  (seen 47)
+  (unrealized (0 1) (8 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (deflistener (hash-dk b nb n k))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((0 0) (8 0)) ((2 4) (3 1)) ((3 3) (1 0))
+    ((4 1) (3 0)) ((5 1) (6 1)) ((5 1) (8 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((6 4) (7 0)) ((7 1) (1 2)) ((8 1) (7 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)) ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (added-listener (cat b nb n k))
+    (hash-dk b nb n k) (7 0)
+    (ch-msg to-b (delegate b d o nb n (hash-dk b nb n k)))
+    (ch-msg del-key-locn
+      (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 48)
+  (parent 43)
+  (seen 53)
+  (unrealized (0 1) (8 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (deflistener (hash-dk b nb n k))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((2 4) (8 0)) ((3 3) (1 0))
+    ((4 1) (3 0)) ((5 1) (6 1)) ((5 1) (8 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((7 1) (1 2)) ((8 1) (7 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)) ((6 4) (4 0)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-1
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4 trRl_passer-recv-key-at-3
+    trRl_passer-recv-key-at-4)
+  (operation nonce-test (displaced 9 2 dev-up 4) k (8 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 49)
+  (parent 44)
+  (seen 49)
+  (unrealized (0 1) (8 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (any ign old old1 mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (to-b from-b start-ch chan) (del-key-locn lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand dev-up 6 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (7 0)) ((2 3) (1 0)) ((3 1) (2 0)) ((4 1) (5 1))
+    ((5 0) (4 0)) ((5 4) (3 0)) ((5 4) (6 0)) ((6 1) (1 2))
+    ((7 4) (2 1)) ((7 5) (0 1)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf to-b start-ch)
+  (auth to-b from-b start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 1)) ((5 4) (3 0)) ((5 4) (6 0)) ((7 3) (1 0))
+    ((7 3) (2 2)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (displaced 2 8 dev-up 6) (enc "up" k)
+    (0 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-5 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-0 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-2 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-1 ign))
+      (stor del-key-locn
+        (cat pt-2 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn
+       (cat pt-2 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b nb n (enc "may I pass" (hash-dk b nb n k)))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-3 old))
+      (load ls (cat pt-4 old1))
+      (stor lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt-6 (door-state d (closed o))))
+      (send (enc "up" k))))
+  (label 50)
+  (parent 45)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((k k) (d d) (o o) (start-ch start-ch) (n n) (nb nb) (d-0 d)
+        (o-0 o) (b b) (lk lk) (ls ls))))
+  (origs (pt-5 (7 3)) (pt-6 (7 4)) (nb (5 0)) (pt-2 (5 4)) (n (4 1))
+    (pt (2 3)) (k (0 0))))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((0 0) (8 0)) ((2 4) (3 1)) ((3 3) (1 0))
+    ((4 1) (3 0)) ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0))
+    ((6 4) (7 0)) ((7 1) (1 2)) ((8 1) (0 1)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)) ((6 4) (4 0))
+    ((6 4) (7 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (added-listener k) (enc "up" k) (0 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b nb n (enc "may I pass" (hash-dk b nb n k)))))
+    ((recv k) (send k)))
+  (label 51)
+  (parent 45)
+  (seen 54)
+  (unrealized (8 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb n-0 nb-0 text)
+    (b d o d-0 o-0 b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan)
+    (ls lk del-key-locn del-key-locn-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n-0) (nb nb-0)
+    (d d-0) (o o-0) (b b-0) (del-key-locn del-key-locn-0))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((2 4) (8 0)) ((3 3) (1 0))
+    ((4 1) (3 0)) ((5 1) (6 1)) ((5 1) (8 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((6 4) (7 0)) ((7 1) (1 2)) ((8 1) (7 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)) ((6 4) (4 0)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-1
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4 trRl_passer-recv-key-at-3
+    trRl_passer-recv-key-at-4)
+  (operation nonce-test (displaced 9 2 dev-up 4) k (8 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn-0
+       (cat pt-7 (key-rec b-0 d-0 o-0 nb-0 n-0 (hash-dk b nb n k))))
+      (send (cat b-0 nb-0 n-0 (enc "may I pass" (hash-dk b nb n k)))))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 52)
+  (parent 46)
+  (seen 52)
+  (unrealized (0 1) (8 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (deflistener (hash-dk b nb n k))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((2 4) (8 0)) ((3 3) (1 0))
+    ((4 1) (3 0)) ((5 1) (6 1)) ((5 1) (8 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((6 4) (7 0)) ((7 1) (1 2)) ((8 1) (7 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)) ((6 4) (4 0)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-1
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4 trRl_passer-recv-key-at-3
+    trRl_passer-recv-key-at-4)
+  (operation nonce-test (displaced 9 2 dev-up 4) k (8 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 53)
+  (parent 48)
+  (seen 53)
+  (unrealized (0 1) (8 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any)
+    (request (enc (open-req b d o nb n) (hash-dk b nb n k))) (k k) (n n)
+    (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((2 4) (8 0)) ((3 3) (1 0))
+    ((4 1) (3 0)) ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0))
+    ((6 4) (7 0)) ((7 1) (1 2)) ((8 1) (0 1)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)) ((6 4) (4 0))
+    ((6 4) (7 0)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-1
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4 trRl_passer-recv-key-at-3
+    trRl_passer-recv-key-at-4)
+  (operation nonce-test (displaced 9 2 dev-up 4) k (8 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((recv (cat b n nb (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b nb n (enc "may I pass" (hash-dk b nb n k)))))
+    ((recv k) (send k)))
+  (label 54)
+  (parent 51)
+  (seen 54)
+  (unrealized (8 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/doc/src/cpsa4manual/examples/open-closed.scm b/doc/src/cpsa4manual/examples/open-closed.scm
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/open-closed.scm
@@ -0,0 +1,148 @@
+(herald open-closed-alt
+	(bound 40))
+
+(defprotocol open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan) (lk ls locn))
+    (trace
+     (recv start-ch (cat "power-up" d o k))
+     (load lk old)
+     (load ls old1)
+     (stor lk (dev-key-state d o k))
+     (stor ls (door-state d (closed o)))
+     (send (enc "up" k)))
+    (auth start-ch)
+    (facts (same-dev ls lk)))
+
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace
+     (send start-ch (cat "power-up" d o k))
+     (recv (enc "up" k)))
+    (conf start-ch))
+
+  (defrole owner-delg-key
+    (vars (k skey) (n nb text) (d o b name) (to-b from-b chan))
+    (trace
+     (recv from-b (cat "req-key" b nb))
+     (send to-b (delegate b d o nb n (hash-dk (cat b nb n k))))
+     (recv (hash b nb n)))
+     (conf to-b)
+     (auth from-b)
+    (uniq-orig n))
+
+  (defrole passer-recv-key
+    (vars (kp ign mesg) (n nb text) (d o b name) (to-b from-b chan) (del-key-locn locn))
+    (trace
+     (send from-b (cat "req-key" b nb))
+     (recv to-b (delegate b d o nb n kp))
+     (send (hash b nb n))
+     (load del-key-locn ign)
+     (stor del-key-locn (key-rec b d o nb n kp)))
+    (uniq-orig nb)
+    (auth to-b))
+
+  (defrole passer-open
+    (vars (kp ign mesg) (n nb text) (d o b name) (to-b chan) (del-key-locn locn))
+    (trace
+     (load del-key-locn (key-rec b d o nb n kp))
+     (send (cat b n (enc (open-req b d o nb n) kp)))
+     (recv (hash (open-req b d o nb n)))))
+
+  (defrole passer-close
+    (vars (kp ign mesg) (n nb text) (d o b name) (to-b chan) (del-key-locn locn))
+    (trace
+     (load del-key-locn (key-rec b d o nb n kp))
+     (send (cat b n (enc (close-req b d o nb n) kp)))
+     (recv (hash (close-req b d o nb n)))))
+
+  (defrole dev-open
+    (vars (k skey) (n nb text) (any mesg) (d o b name) (lk ls locn))
+    (trace
+     (load lk (dev-key-state d o k))
+     (recv (cat b n (enc (open-req b d o nb n) (hash-dk (cat b nb n k)))))
+     (load ls (door-state d any))
+     (load lk (dev-key-state d o k))	; Important to re-check this is unchanged
+     (stor ls (door-state d (opened b nb n)))
+     (send (hash (open-req b d o nb n))))
+    (gen-st (dev-key-state d o k))
+    (facts (same-dev ls lk)))
+
+  (defrole dev-closed
+    (vars (k skey) (n nb text) (any mesg) (d o b name) (lk ls locn))
+    (trace
+     (load lk (dev-key-state d o k))
+     (recv (cat b n (enc (close-req b d o nb n) (hash-dk (cat b nb n k)))))
+     (load ls (door-state d any))
+     (load lk (dev-key-state d o k))	; Important to re-check this is unchanged
+     (stor ls (door-state d (closed o)))
+     (send (hash (close-req b d o nb n))))
+    (gen-st (dev-key-state d o k))
+    (facts (same-dev ls lk)))
+
+  (defrole dev-pass
+    (vars (k skey) (n nb text) (d o b name) (lk ls locn))
+    (trace
+     (load lk (dev-key-state d o k))
+     (load ls (door-state d (opened b nb n)))
+     (recv (cat b nb n (enc "may I pass" (hash-dk (cat b nb n k)))))
+     (send (enc "you may pass" n (hash-dk (cat b nb n k)))))
+    (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+    (facts (same-dev ls lk)))
+
+  (defrole passer-pass
+    (vars (kp ign mesg) (n nb text) (d o b name) (to-b chan) (del-key-locn locn))
+    (trace
+     (load del-key-locn (key-rec b d o nb n kp))
+     (send (cat b nb n (enc "may I pass" kp)))
+     (recv (enc "you may pass" kp))))
+
+   (defrule power-deliver-once
+     (forall
+      ((z1 z2 strd) (k skey))
+      (implies
+       (and (p "dev-up" z1 2)
+ 	   (p "dev-up" z2 2)
+ 	   (p "dev-up" "k" z1 k)
+ 	   (p "dev-up" "k" z2 k))
+       (= z1 z2))))
+
+   (defrule same-dev-ls-lk
+     (forall ((ls lk lk-0 locn))
+  	     (implies
+  	      (and (fact same-dev ls lk)
+  		   (fact same-dev ls lk-0))
+  	      (= lk lk-0))))
+
+   (defrule same-dev-lk-ls
+     (forall ((lk ls ls-0 locn))
+  	     (implies
+  	      (and (fact same-dev ls lk)
+  		   (fact same-dev ls-0 lk))
+     	      (= ls ls-0))))
+
+   (lang (closed (tuple 1))
+	 (opened (tuple 3))
+	 (door-state (tuple 2))
+	 (dev-key-state (tuple 3))
+	 (open-req (tuple 5))
+	 (close-req (tuple 5))
+	 (key-rec (tuple 6))
+	 (delegate (tuple 6))
+	 (hash-dk hash)))
+
+(defskeleton open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k))
+  (deflistener k)
+  (uniq-orig k))
+
+(defskeleton open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  (defstrand dev-pass 4 (k k)))
+
+(defskeleton open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k))
+  (defstrand dev-pass 4 (k k))
+  (uniq-orig k))
diff --git a/doc/src/cpsa4manual/examples/open-closed.tst b/doc/src/cpsa4manual/examples/open-closed.tst
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/open-closed.tst
@@ -0,0 +1,3876 @@
+(herald open-closed-alt (bound 40))
+
+(comment "CPSA 4.4.0")
+(comment "All input read from open-closed.scm")
+(comment "Strand count bounded at 40")
+
+(defprotocol open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (load ls old1) (stor lk (dev-key-state d o k))
+      (stor ls (door-state d (closed o))) (send (enc "up" k)))
+    (auth start-ch)
+    (facts (same-dev ls lk)))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-delg-key
+    (vars (k skey) (n nb text) (d o b name) (to-b from-b chan))
+    (trace (recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (recv (hash b nb n)))
+    (uniq-orig n)
+    (conf to-b)
+    (auth from-b))
+  (defrole passer-recv-key
+    (vars (kp ign mesg) (n nb text) (d o b name) (to-b from-b chan)
+      (del-key-locn locn))
+    (trace (send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n kp)) (send (hash b nb n))
+      (load del-key-locn ign)
+      (stor del-key-locn (key-rec b d o nb n kp)))
+    (uniq-orig nb)
+    (auth to-b))
+  (defrole passer-open
+    (vars (kp mesg) (n nb text) (d o b name) (del-key-locn locn))
+    (trace (load del-key-locn (key-rec b d o nb n kp))
+      (send (cat b n (enc (open-req b d o nb n) kp)))
+      (recv (hash (open-req b d o nb n)))))
+  (defrole passer-close
+    (vars (kp mesg) (n nb text) (d o b name) (del-key-locn locn))
+    (trace (load del-key-locn (key-rec b d o nb n kp))
+      (send (cat b n (enc (close-req b d o nb n) kp)))
+      (recv (hash (close-req b d o nb n)))))
+  (defrole dev-open
+    (vars (k skey) (n nb text) (any mesg) (d o b name) (lk ls locn))
+    (trace (load lk (dev-key-state d o k))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (door-state d any)) (load lk (dev-key-state d o k))
+      (stor ls (door-state d (opened b nb n)))
+      (send (hash (open-req b d o nb n))))
+    (gen-st (dev-key-state d o k))
+    (facts (same-dev ls lk)))
+  (defrole dev-closed
+    (vars (k skey) (n nb text) (any mesg) (d o b name) (lk ls locn))
+    (trace (load lk (dev-key-state d o k))
+      (recv (cat b n (enc (close-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (door-state d any)) (load lk (dev-key-state d o k))
+      (stor ls (door-state d (closed o)))
+      (send (hash (close-req b d o nb n))))
+    (gen-st (dev-key-state d o k))
+    (facts (same-dev ls lk)))
+  (defrole dev-pass
+    (vars (k skey) (n nb text) (d o b name) (lk ls locn))
+    (trace (load lk (dev-key-state d o k))
+      (load ls (door-state d (opened b nb n)))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+    (facts (same-dev ls lk)))
+  (defrole passer-pass
+    (vars (kp mesg) (n nb text) (d o b name) (del-key-locn locn))
+    (trace (load del-key-locn (key-rec b d o nb n kp))
+      (send (cat b nb n (enc "may I pass" kp)))
+      (recv (enc "you may pass" kp))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defrule same-dev-ls-lk
+    (forall ((ls lk lk-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls lk-0))
+        (= lk lk-0))))
+  (defrule same-dev-lk-ls
+    (forall ((lk ls ls-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls-0 lk))
+        (= ls ls-0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule fact-dev-up-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-up" z (idx 3)) (p "dev-up" "lk" z lk)
+          (p "dev-up" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-open-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-open" z (idx 3)) (p "dev-open" "lk" z lk)
+          (p "dev-open" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-closed-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-closed" z (idx 3)) (p "dev-closed" "lk" z lk)
+          (p "dev-closed" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-pass-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-pass" z (idx 2)) (p "dev-pass" "lk" z lk)
+          (p "dev-pass" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_passer-recv-key-at-4
+    (forall ((z strd))
+      (implies (p "passer-recv-key" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_passer-recv-key-at-3
+    (forall ((z strd))
+      (implies (p "passer-recv-key" z (idx 5)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-4
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-open-at-2
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 5)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-closed-at-4
+    (forall ((z strd))
+      (implies (p "dev-closed" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-closed-at-2
+    (forall ((z strd))
+      (implies (p "dev-closed" z (idx 5)) (trans z (idx 2)))))
+  (defgenrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 4)) (prec z (idx 3) z1 i))
+        (or (= z z1)
+          (and (p "dev-up" z (idx 5)) (prec z (idx 4) z1 i))))))
+  (defgenrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-open-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-open" z (idx 4)) (prec z1 i z (idx 3)))
+        (or (= z z1) (prec z1 i z (idx 2))))))
+  (defgenrule cau-dev-closed-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-closed" z (idx 4)) (prec z1 i z (idx 3)))
+        (or (= z z1) (prec z1 i z (idx 2))))))
+  (defgenrule cau-dev-pass-1
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-pass" z (idx 2)) (prec z1 i z (idx 1)))
+        (or (= z z1) (prec z1 i z (idx 0))))))
+  (defgenrule gen-st-dev-open-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-open" z (idx 1)) (p "dev-open" "k" z k)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d))
+        (gen-st (dev-key-state d o k)))))
+  (defgenrule gen-st-dev-closed-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-closed" z (idx 1)) (p "dev-closed" "k" z k)
+          (p "dev-closed" "o" z o) (p "dev-closed" "d" z d))
+        (gen-st (dev-key-state d o k)))))
+  (defgenrule gen-st-dev-pass-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "k" z k)
+          (p "dev-pass" "o" z o) (p "dev-pass" "d" z d))
+        (gen-st (dev-key-state d o k)))))
+  (defgenrule gen-st-dev-pass-0
+    (forall ((z strd) (n nb text) (b d name))
+      (implies
+        (and (p "dev-pass" z (idx 2)) (p "dev-pass" "n" z n)
+          (p "dev-pass" "nb" z nb) (p "dev-pass" "b" z b)
+          (p "dev-pass" "d" z d))
+        (gen-st (door-state d (opened b nb n))))))
+  (lang (closed (tuple 1)) (opened (tuple 3)) (door-state (tuple 2))
+    (dev-key-state (tuple 3)) (open-req (tuple 5)) (close-req (tuple 5))
+    (key-rec (tuple 6)) (delegate (tuple 6)) (hash-dk hash)))
+
+(defskeleton open-closed
+  (vars (k skey) (d o name) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (uniq-orig k)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k)))
+  (label 0)
+  (unrealized (0 1) (1 0))
+  (preskeleton)
+  (origs (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton open-closed
+  (vars (k skey) (d o name) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k)))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1) (1 0))
+  (origs (k (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 mesg) (k skey) (d o name) (pt pt-0 pt-1 pt-2 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (rule eff-dev-up-3 fact-dev-up-same-dev0 trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (added-strand dev-up 4) k (1 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt old))
+      (load ls (cat pt-0 old1))
+      (stor lk (cat pt-1 (dev-key-state d o k)))
+      (stor ls (cat pt-2 (door-state d (closed o))))))
+  (label 2)
+  (parent 1)
+  (seen 2)
+  (unrealized (0 1) (1 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (load ls old1) (stor lk (dev-key-state d o k))
+      (stor ls (door-state d (closed o))) (send (enc "up" k)))
+    (auth start-ch)
+    (facts (same-dev ls lk)))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-delg-key
+    (vars (k skey) (n nb text) (d o b name) (to-b from-b chan))
+    (trace (recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (recv (hash b nb n)))
+    (uniq-orig n)
+    (conf to-b)
+    (auth from-b))
+  (defrole passer-recv-key
+    (vars (kp ign mesg) (n nb text) (d o b name) (to-b from-b chan)
+      (del-key-locn locn))
+    (trace (send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n kp)) (send (hash b nb n))
+      (load del-key-locn ign)
+      (stor del-key-locn (key-rec b d o nb n kp)))
+    (uniq-orig nb)
+    (auth to-b))
+  (defrole passer-open
+    (vars (kp mesg) (n nb text) (d o b name) (del-key-locn locn))
+    (trace (load del-key-locn (key-rec b d o nb n kp))
+      (send (cat b n (enc (open-req b d o nb n) kp)))
+      (recv (hash (open-req b d o nb n)))))
+  (defrole passer-close
+    (vars (kp mesg) (n nb text) (d o b name) (del-key-locn locn))
+    (trace (load del-key-locn (key-rec b d o nb n kp))
+      (send (cat b n (enc (close-req b d o nb n) kp)))
+      (recv (hash (close-req b d o nb n)))))
+  (defrole dev-open
+    (vars (k skey) (n nb text) (any mesg) (d o b name) (lk ls locn))
+    (trace (load lk (dev-key-state d o k))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (door-state d any)) (load lk (dev-key-state d o k))
+      (stor ls (door-state d (opened b nb n)))
+      (send (hash (open-req b d o nb n))))
+    (gen-st (dev-key-state d o k))
+    (facts (same-dev ls lk)))
+  (defrole dev-closed
+    (vars (k skey) (n nb text) (any mesg) (d o b name) (lk ls locn))
+    (trace (load lk (dev-key-state d o k))
+      (recv (cat b n (enc (close-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (door-state d any)) (load lk (dev-key-state d o k))
+      (stor ls (door-state d (closed o)))
+      (send (hash (close-req b d o nb n))))
+    (gen-st (dev-key-state d o k))
+    (facts (same-dev ls lk)))
+  (defrole dev-pass
+    (vars (k skey) (n nb text) (d o b name) (lk ls locn))
+    (trace (load lk (dev-key-state d o k))
+      (load ls (door-state d (opened b nb n)))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+    (facts (same-dev ls lk)))
+  (defrole passer-pass
+    (vars (kp mesg) (n nb text) (d o b name) (del-key-locn locn))
+    (trace (load del-key-locn (key-rec b d o nb n kp))
+      (send (cat b nb n (enc "may I pass" kp)))
+      (recv (enc "you may pass" kp))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defrule same-dev-ls-lk
+    (forall ((ls lk lk-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls lk-0))
+        (= lk lk-0))))
+  (defrule same-dev-lk-ls
+    (forall ((lk ls ls-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls-0 lk))
+        (= ls ls-0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule fact-dev-up-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-up" z (idx 3)) (p "dev-up" "lk" z lk)
+          (p "dev-up" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-open-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-open" z (idx 3)) (p "dev-open" "lk" z lk)
+          (p "dev-open" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-closed-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-closed" z (idx 3)) (p "dev-closed" "lk" z lk)
+          (p "dev-closed" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-pass-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-pass" z (idx 2)) (p "dev-pass" "lk" z lk)
+          (p "dev-pass" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_passer-recv-key-at-4
+    (forall ((z strd))
+      (implies (p "passer-recv-key" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_passer-recv-key-at-3
+    (forall ((z strd))
+      (implies (p "passer-recv-key" z (idx 5)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-4
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-open-at-2
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 5)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-closed-at-4
+    (forall ((z strd))
+      (implies (p "dev-closed" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-closed-at-2
+    (forall ((z strd))
+      (implies (p "dev-closed" z (idx 5)) (trans z (idx 2)))))
+  (defgenrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 4)) (prec z (idx 3) z1 i))
+        (or (= z z1)
+          (and (p "dev-up" z (idx 5)) (prec z (idx 4) z1 i))))))
+  (defgenrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-open-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-open" z (idx 4)) (prec z1 i z (idx 3)))
+        (or (= z z1) (prec z1 i z (idx 2))))))
+  (defgenrule cau-dev-closed-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-closed" z (idx 4)) (prec z1 i z (idx 3)))
+        (or (= z z1) (prec z1 i z (idx 2))))))
+  (defgenrule cau-dev-pass-1
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-pass" z (idx 2)) (prec z1 i z (idx 1)))
+        (or (= z z1) (prec z1 i z (idx 0))))))
+  (defgenrule gen-st-dev-open-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-open" z (idx 1)) (p "dev-open" "k" z k)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d))
+        (gen-st (dev-key-state d o k)))))
+  (defgenrule gen-st-dev-closed-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-closed" z (idx 1)) (p "dev-closed" "k" z k)
+          (p "dev-closed" "o" z o) (p "dev-closed" "d" z d))
+        (gen-st (dev-key-state d o k)))))
+  (defgenrule gen-st-dev-pass-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "k" z k)
+          (p "dev-pass" "o" z o) (p "dev-pass" "d" z d))
+        (gen-st (dev-key-state d o k)))))
+  (defgenrule gen-st-dev-pass-0
+    (forall ((z strd) (n nb text) (b d name))
+      (implies
+        (and (p "dev-pass" z (idx 2)) (p "dev-pass" "n" z n)
+          (p "dev-pass" "nb" z nb) (p "dev-pass" "b" z b)
+          (p "dev-pass" "d" z d))
+        (gen-st (door-state d (opened b nb n))))))
+  (lang (closed (tuple 1)) (opened (tuple 3)) (door-state (tuple 2))
+    (dev-key-state (tuple 3)) (open-req (tuple 5)) (close-req (tuple 5))
+    (key-rec (tuple 6)) (delegate (tuple 6)) (hash-dk hash)))
+
+(defskeleton open-closed
+  (vars (k skey) (n nb text) (d o b name) (pt pt-0 pval) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (traces
+    ((load lk (cat pt (dev-key-state d o k)))
+      (load ls (cat pt-0 (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k)))))
+  (label 3)
+  (realized)
+  (origs)
+  (comment "Not closed under rules"))
+
+(defskeleton open-closed
+  (vars (k skey) (n nb text) (d o b name) (pt pt-0 pval) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (facts (same-dev ls lk))
+  (rule fact-dev-pass-same-dev0 gen-st-dev-pass-0 gen-st-dev-pass-1)
+  (traces
+    ((load lk (cat pt (dev-key-state d o k)))
+      (load ls (cat pt-0 (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k)))))
+  (label 4)
+  (parent 3)
+  (seen 5)
+  (unrealized (0 0) (0 1))
+  (origs)
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((1 4) (0 0)))
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((1 3) (0 0)))
+  (rule cau-dev-pass-1 eff-dev-up-3 fact-dev-pass-same-dev0
+    fact-dev-up-same-dev0 same-dev-lk-ls trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-2 (dev-key-state d o k))) (0 0))
+  (traces
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o))))))
+  (label 5)
+  (parent 4)
+  (unrealized (0 1) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (precedes ((1 4) (0 0)) ((2 0) (1 0)))
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand owner-power-dev 1)
+    (ch-msg start-ch (cat "power-up" d o k)) (1 0))
+  (traces
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((send start-ch (cat "power-up" d o k))))
+  (label 6)
+  (parent 5)
+  (seen 7)
+  (unrealized (0 1))
+  (comment "5 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k k-0 skey) (n nb text) (b d o o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (start-ch chan)
+    (ls lk locn))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-open 5 (any any) (k k-0) (n n) (nb nb) (d d) (o o-0)
+    (b b) (lk lk) (ls ls))
+  (precedes ((1 4) (3 2)) ((2 0) (1 0)) ((3 4) (0 0)))
+  (gen-st (dev-key-state d o k) (dev-key-state d o-0 k-0)
+    (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((1 3) (0 0)) ((3 4) (0 1)))
+  (rule cau-dev-open-3 cau-dev-pass-1 fact-dev-open-same-dev0
+    fact-dev-pass-same-dev0 gen-st-dev-pass-1 invShearsRule
+    same-dev-ls-lk trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-open 5)
+    (ch-msg ls (cat pt (door-state d (opened b nb n)))) (0 1))
+  (traces
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((send start-ch (cat "power-up" d o k)))
+    ((load lk (cat pt-4 (dev-key-state d o-0 k-0)))
+      (recv
+        (cat b n (enc (open-req b d o-0 nb n) (hash-dk b nb n k-0))))
+      (load ls (cat pt-5 (door-state d any)))
+      (load lk (cat pt-6 (dev-key-state d o-0 k-0)))
+      (stor ls (cat pt (door-state d (opened b nb n))))))
+  (label 7)
+  (parent 6)
+  (seen 8 9)
+  (unrealized (3 0) (3 3))
+  (comment "118 in cohort - 2 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk locn))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (precedes ((1 4) (3 0)) ((2 0) (1 0)) ((3 4) (0 0)))
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((1 3) (0 0)) ((1 3) (3 0)) ((3 4) (0 1)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-2
+    trRl_dev-open-at-4 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (displaced 4 1 dev-up 4)
+    (ch-msg lk (cat pt-6 (dev-key-state d o-0 k-0))) (3 0))
+  (traces
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((send start-ch (cat "power-up" d o k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n))))))
+  (label 8)
+  (parent 7)
+  (seen 10)
+  (unrealized (3 3))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (k k-0 skey) (n nb text)
+    (b o d o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pt-9 pval)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-open 5 (any any) (k k-0) (n n) (nb nb) (d d) (o o-0)
+    (b b) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (k k-0) (d d) (o o-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((1 4) (3 2)) ((2 0) (1 0)) ((3 4) (0 0)) ((4 4) (1 1))
+    ((4 4) (3 0)))
+  (gen-st (dev-key-state d o k) (dev-key-state d o-0 k-0)
+    (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk))
+  (leads-to ((1 3) (0 0)) ((3 4) (0 1)) ((4 3) (3 0)))
+  (rule cau-dev-open-3 cau-dev-up-2 eff-dev-up-3 fact-dev-pass-same-dev0
+    fact-dev-up-same-dev0 invShearsRule same-dev-lk-ls
+    trRl_dev-open-at-2 trRl_dev-open-at-4 trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-8 (dev-key-state d o-0 k-0))) (3 0))
+  (traces
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((send start-ch (cat "power-up" d o k)))
+    ((load lk (cat pt-8 (dev-key-state d o-0 k-0)))
+      (recv
+        (cat b n (enc (open-req b d o-0 nb n) (hash-dk b nb n k-0))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o-0 k-0)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv start-ch-0 (cat "power-up" d o-0 k-0))
+      (load lk (cat pt-6 old-0)) (load ls (cat pt-7 old1-0))
+      (stor lk (cat pt-8 (dev-key-state d o-0 k-0)))
+      (stor ls (cat pt-9 (door-state d (closed o-0))))))
+  (label 9)
+  (parent 7)
+  (unrealized (3 3) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (precedes ((1 4) (3 0)) ((2 0) (1 0)) ((3 4) (0 0)))
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((1 3) (0 0)) ((1 3) (3 0)) ((1 3) (3 3)) ((3 4) (0 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (displaced 4 1 dev-up 4)
+    (ch-msg lk (cat pt-5 (dev-key-state d o k))) (3 3))
+  (traces
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((send start-ch (cat "power-up" d o k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n))))))
+  (label 10)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps ((0) ((k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk) (ls ls))))
+  (origs (pt-2 (1 3)) (pt-3 (1 4)) (pt (3 4))))
+
+(defskeleton open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (k k-0 skey) (n nb text)
+    (b o d o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pt-9 pval)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-open 5 (any any) (k k-0) (n n) (nb nb) (d d) (o o-0)
+    (b b) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (k k-0) (d d) (o o-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k-0) (d d) (o o-0)
+    (start-ch start-ch-0))
+  (precedes ((1 4) (3 2)) ((2 0) (1 0)) ((3 4) (0 0)) ((4 4) (1 1))
+    ((4 4) (3 0)) ((5 0) (4 0)))
+  (gen-st (dev-key-state d o k) (dev-key-state d o-0 k-0)
+    (door-state d (opened b nb n)))
+  (conf start-ch start-ch-0)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk))
+  (leads-to ((1 3) (0 0)) ((3 4) (0 1)) ((4 3) (3 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand owner-power-dev 1)
+    (ch-msg start-ch-0 (cat "power-up" d o-0 k-0)) (4 0))
+  (traces
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((send start-ch (cat "power-up" d o k)))
+    ((load lk (cat pt-8 (dev-key-state d o-0 k-0)))
+      (recv
+        (cat b n (enc (open-req b d o-0 nb n) (hash-dk b nb n k-0))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o-0 k-0)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv start-ch-0 (cat "power-up" d o-0 k-0))
+      (load lk (cat pt-6 old-0)) (load ls (cat pt-7 old1-0))
+      (stor lk (cat pt-8 (dev-key-state d o-0 k-0)))
+      (stor ls (cat pt-9 (door-state d (closed o-0)))))
+    ((send start-ch-0 (cat "power-up" d o-0 k-0))))
+  (label 11)
+  (parent 9)
+  (unrealized (3 3))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (load ls old1) (stor lk (dev-key-state d o k))
+      (stor ls (door-state d (closed o))) (send (enc "up" k)))
+    (auth start-ch)
+    (facts (same-dev ls lk)))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-delg-key
+    (vars (k skey) (n nb text) (d o b name) (to-b from-b chan))
+    (trace (recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (recv (hash b nb n)))
+    (uniq-orig n)
+    (conf to-b)
+    (auth from-b))
+  (defrole passer-recv-key
+    (vars (kp ign mesg) (n nb text) (d o b name) (to-b from-b chan)
+      (del-key-locn locn))
+    (trace (send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n kp)) (send (hash b nb n))
+      (load del-key-locn ign)
+      (stor del-key-locn (key-rec b d o nb n kp)))
+    (uniq-orig nb)
+    (auth to-b))
+  (defrole passer-open
+    (vars (kp mesg) (n nb text) (d o b name) (del-key-locn locn))
+    (trace (load del-key-locn (key-rec b d o nb n kp))
+      (send (cat b n (enc (open-req b d o nb n) kp)))
+      (recv (hash (open-req b d o nb n)))))
+  (defrole passer-close
+    (vars (kp mesg) (n nb text) (d o b name) (del-key-locn locn))
+    (trace (load del-key-locn (key-rec b d o nb n kp))
+      (send (cat b n (enc (close-req b d o nb n) kp)))
+      (recv (hash (close-req b d o nb n)))))
+  (defrole dev-open
+    (vars (k skey) (n nb text) (any mesg) (d o b name) (lk ls locn))
+    (trace (load lk (dev-key-state d o k))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (door-state d any)) (load lk (dev-key-state d o k))
+      (stor ls (door-state d (opened b nb n)))
+      (send (hash (open-req b d o nb n))))
+    (gen-st (dev-key-state d o k))
+    (facts (same-dev ls lk)))
+  (defrole dev-closed
+    (vars (k skey) (n nb text) (any mesg) (d o b name) (lk ls locn))
+    (trace (load lk (dev-key-state d o k))
+      (recv (cat b n (enc (close-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (door-state d any)) (load lk (dev-key-state d o k))
+      (stor ls (door-state d (closed o)))
+      (send (hash (close-req b d o nb n))))
+    (gen-st (dev-key-state d o k))
+    (facts (same-dev ls lk)))
+  (defrole dev-pass
+    (vars (k skey) (n nb text) (d o b name) (lk ls locn))
+    (trace (load lk (dev-key-state d o k))
+      (load ls (door-state d (opened b nb n)))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+    (facts (same-dev ls lk)))
+  (defrole passer-pass
+    (vars (kp mesg) (n nb text) (d o b name) (del-key-locn locn))
+    (trace (load del-key-locn (key-rec b d o nb n kp))
+      (send (cat b nb n (enc "may I pass" kp)))
+      (recv (enc "you may pass" kp))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defrule same-dev-ls-lk
+    (forall ((ls lk lk-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls lk-0))
+        (= lk lk-0))))
+  (defrule same-dev-lk-ls
+    (forall ((lk ls ls-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls-0 lk))
+        (= ls ls-0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule fact-dev-up-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-up" z (idx 3)) (p "dev-up" "lk" z lk)
+          (p "dev-up" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-open-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-open" z (idx 3)) (p "dev-open" "lk" z lk)
+          (p "dev-open" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-closed-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-closed" z (idx 3)) (p "dev-closed" "lk" z lk)
+          (p "dev-closed" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-pass-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-pass" z (idx 2)) (p "dev-pass" "lk" z lk)
+          (p "dev-pass" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_passer-recv-key-at-4
+    (forall ((z strd))
+      (implies (p "passer-recv-key" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_passer-recv-key-at-3
+    (forall ((z strd))
+      (implies (p "passer-recv-key" z (idx 5)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-4
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-open-at-2
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 5)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-closed-at-4
+    (forall ((z strd))
+      (implies (p "dev-closed" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-closed-at-2
+    (forall ((z strd))
+      (implies (p "dev-closed" z (idx 5)) (trans z (idx 2)))))
+  (defgenrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 4)) (prec z (idx 3) z1 i))
+        (or (= z z1)
+          (and (p "dev-up" z (idx 5)) (prec z (idx 4) z1 i))))))
+  (defgenrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-open-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-open" z (idx 4)) (prec z1 i z (idx 3)))
+        (or (= z z1) (prec z1 i z (idx 2))))))
+  (defgenrule cau-dev-closed-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-closed" z (idx 4)) (prec z1 i z (idx 3)))
+        (or (= z z1) (prec z1 i z (idx 2))))))
+  (defgenrule cau-dev-pass-1
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-pass" z (idx 2)) (prec z1 i z (idx 1)))
+        (or (= z z1) (prec z1 i z (idx 0))))))
+  (defgenrule gen-st-dev-open-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-open" z (idx 1)) (p "dev-open" "k" z k)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d))
+        (gen-st (dev-key-state d o k)))))
+  (defgenrule gen-st-dev-closed-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-closed" z (idx 1)) (p "dev-closed" "k" z k)
+          (p "dev-closed" "o" z o) (p "dev-closed" "d" z d))
+        (gen-st (dev-key-state d o k)))))
+  (defgenrule gen-st-dev-pass-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "k" z k)
+          (p "dev-pass" "o" z o) (p "dev-pass" "d" z d))
+        (gen-st (dev-key-state d o k)))))
+  (defgenrule gen-st-dev-pass-0
+    (forall ((z strd) (n nb text) (b d name))
+      (implies
+        (and (p "dev-pass" z (idx 2)) (p "dev-pass" "n" z n)
+          (p "dev-pass" "nb" z nb) (p "dev-pass" "b" z b)
+          (p "dev-pass" "d" z d))
+        (gen-st (door-state d (opened b nb n))))))
+  (lang (closed (tuple 1)) (opened (tuple 3)) (door-state (tuple 2))
+    (dev-key-state (tuple 3)) (open-req (tuple 5)) (close-req (tuple 5))
+    (key-rec (tuple 6)) (delegate (tuple 6)) (hash-dk hash)))
+
+(defskeleton open-closed
+  (vars (k skey) (n nb text) (d o d-0 o-0 b name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (lk lk) (ls ls))
+  (uniq-orig k)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt (dev-key-state d-0 o-0 k)))
+      (load ls (cat pt-0 (door-state d-0 (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k)))))
+  (label 12)
+  (unrealized (0 1) (1 0) (1 2))
+  (preskeleton)
+  (origs (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton open-closed
+  (vars (k skey) (n nb text) (d o d-0 o-0 b name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (lk lk) (ls ls))
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt (dev-key-state d-0 o-0 k)))
+      (load ls (cat pt-0 (door-state d-0 (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k)))))
+  (label 13)
+  (parent 12)
+  (unrealized (0 1) (1 0) (1 2))
+  (origs (k (0 0)))
+  (comment "Not closed under rules"))
+
+(defskeleton open-closed
+  (vars (k skey) (n nb text) (d o d-0 o-0 b name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (lk lk) (ls ls))
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d-0 o-0 k) (door-state d-0 (opened b nb n)))
+  (conf start-ch)
+  (facts (same-dev ls lk))
+  (rule fact-dev-pass-same-dev0 gen-st-dev-pass-0 gen-st-dev-pass-1)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt (dev-key-state d-0 o-0 k)))
+      (load ls (cat pt-0 (door-state d-0 (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k)))))
+  (label 14)
+  (parent 13)
+  (seen 15)
+  (unrealized (0 1) (1 0) (1 1) (1 2))
+  (origs (k (0 0)))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 mesg) (k skey) (n nb text) (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch start-ch-0 chan)
+    (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d-0) (o o-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d-0 o-0 k) (door-state d-0 (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch-0)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)))
+  (rule cau-dev-pass-1 eff-dev-up-3 fact-dev-pass-same-dev0
+    fact-dev-up-same-dev0 same-dev-lk-ls trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-2 (dev-key-state d-0 o-0 k))) (1 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d-0 o-0 k)))
+      (load ls (cat pt (door-state d-0 (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch-0 (cat "power-up" d-0 o-0 k))
+      (load lk (cat pt-0 old)) (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d-0 o-0 k)))
+      (stor ls (cat pt-3 (door-state d-0 (closed o-0))))))
+  (label 15)
+  (parent 14)
+  (unrealized (0 1) (1 1) (1 2) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 mesg) (k skey) (n nb text) (d o b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (displaced 3 0 owner-power-dev 1)
+    (ch-msg start-ch-0 (cat "power-up" d-0 o-0 k)) (2 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o))))))
+  (label 16)
+  (parent 15)
+  (seen 17)
+  (unrealized (0 1) (1 1) (1 2))
+  (comment "5 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k k-0 skey) (n nb text) (d o b o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (start-ch chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k-0) (n n) (nb nb) (d d) (o o-0)
+    (b b) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (3 2)) ((3 4) (1 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d o k) (dev-key-state d o-0 k-0)
+    (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((3 4) (1 1)))
+  (rule cau-dev-open-3 cau-dev-pass-1 fact-dev-open-same-dev0
+    fact-dev-pass-same-dev0 gen-st-dev-pass-1 invShearsRule
+    same-dev-ls-lk trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-open 5)
+    (ch-msg ls (cat pt (door-state d (opened b nb n)))) (1 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-4 (dev-key-state d o-0 k-0)))
+      (recv
+        (cat b n (enc (open-req b d o-0 nb n) (hash-dk b nb n k-0))))
+      (load ls (cat pt-5 (door-state d any)))
+      (load lk (cat pt-6 (dev-key-state d o-0 k-0)))
+      (stor ls (cat pt (door-state d (opened b nb n))))))
+  (label 17)
+  (parent 16)
+  (seen 18 19)
+  (unrealized (0 1) (1 2) (3 0) (3 3))
+  (comment "118 in cohort - 2 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((3 4) (1 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-2
+    trRl_dev-open-at-4 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (displaced 4 2 dev-up 4)
+    (ch-msg lk (cat pt-6 (dev-key-state d o-0 k-0))) (3 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n))))))
+  (label 18)
+  (parent 17)
+  (unrealized (0 1) (1 2) (3 1) (3 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (k k-0 skey) (n nb text)
+    (o b d o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pt-9 pval)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k-0) (n n) (nb nb) (d d) (o o-0)
+    (b b) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (k k-0) (d d) (o o-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (3 2)) ((3 4) (1 0)) ((4 4) (2 1))
+    ((4 4) (3 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d o k) (dev-key-state d o-0 k-0)
+    (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((3 4) (1 1)) ((4 3) (3 0)))
+  (rule cau-dev-open-3 cau-dev-up-2 eff-dev-up-3 fact-dev-pass-same-dev0
+    fact-dev-up-same-dev0 invShearsRule same-dev-lk-ls
+    trRl_dev-open-at-2 trRl_dev-open-at-4 trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-8 (dev-key-state d o-0 k-0))) (3 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-8 (dev-key-state d o-0 k-0)))
+      (recv
+        (cat b n (enc (open-req b d o-0 nb n) (hash-dk b nb n k-0))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o-0 k-0)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv start-ch-0 (cat "power-up" d o-0 k-0))
+      (load lk (cat pt-6 old-0)) (load ls (cat pt-7 old1-0))
+      (stor lk (cat pt-8 (dev-key-state d o-0 k-0)))
+      (stor ls (cat pt-9 (door-state d (closed o-0))))))
+  (label 19)
+  (parent 17)
+  (unrealized (0 1) (1 2) (3 3) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (start-ch chan)
+    (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((3 4) (1 0)) ((4 1) (3 1)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-strand passer-open 2)
+    (enc (open-req b d o nb n) (hash-dk b nb n k)) (3 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))))
+  (label 20)
+  (parent 18)
+  (unrealized (0 1) (1 2) (3 3) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (deflistener (hash-dk b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((3 4) (1 0)) ((4 1) (3 1)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-listener (hash-dk b nb n k))
+    (enc (open-req b d o nb n) (hash-dk b nb n k)) (3 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k))))
+  (label 21)
+  (parent 18)
+  (unrealized (0 1) (3 3) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (k k-0 skey) (n nb text)
+    (o b d o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pt-9 pval)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k-0) (n n) (nb nb) (d d) (o o-0)
+    (b b) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (k k-0) (d d) (o o-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k-0) (d d) (o o-0)
+    (start-ch start-ch-0))
+  (precedes ((0 0) (2 0)) ((2 4) (3 2)) ((3 4) (1 0)) ((4 4) (2 1))
+    ((4 4) (3 0)) ((5 0) (4 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d o k) (dev-key-state d o-0 k-0)
+    (door-state d (opened b nb n)))
+  (conf start-ch start-ch-0)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((3 4) (1 1)) ((4 3) (3 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand owner-power-dev 1)
+    (ch-msg start-ch-0 (cat "power-up" d o-0 k-0)) (4 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-8 (dev-key-state d o-0 k-0)))
+      (recv
+        (cat b n (enc (open-req b d o-0 nb n) (hash-dk b nb n k-0))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o-0 k-0)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv start-ch-0 (cat "power-up" d o-0 k-0))
+      (load lk (cat pt-6 old-0)) (load ls (cat pt-7 old1-0))
+      (stor lk (cat pt-8 (dev-key-state d o-0 k-0)))
+      (stor ls (cat pt-9 (door-state d (closed o-0)))))
+    ((send start-ch-0 (cat "power-up" d o-0 k-0))))
+  (label 22)
+  (parent 19)
+  (unrealized (0 1) (1 2) (3 3))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((3 4) (1 0)) ((4 1) (3 1))
+    ((5 1) (4 0)))
+  (uniq-orig k n)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-strand owner-delg-key 2)
+    (hash-dk b nb n k) (4 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k)))))
+  (label 23)
+  (parent 20)
+  (unrealized (0 1) (1 2) (3 3) (4 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (start-ch chan)
+    (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((2 4) (3 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (4 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-listener (cat b nb n k))
+    (hash-dk b nb n k) (4 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 24)
+  (parent 20)
+  (seen 28)
+  (unrealized (0 1) (3 3) (5 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch to-b from-b chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (deflistener (hash-dk b nb n k))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((3 4) (1 0)) ((4 1) (3 1))
+    ((5 1) (4 0)))
+  (uniq-orig k n)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-strand owner-delg-key 2)
+    (hash-dk b nb n k) (4 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k)))))
+  (label 25)
+  (parent 21)
+  (unrealized (0 1) (1 2) (3 1) (3 3) (4 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (deflistener (hash-dk b nb n k))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((2 4) (3 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (4 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-listener (cat b nb n k))
+    (hash-dk b nb n k) (4 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 26)
+  (parent 21)
+  (seen 30)
+  (unrealized (0 1) (3 3) (5 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 1 (nb nb) (b b) (from-b from-b))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((3 4) (1 0)) ((4 1) (3 1))
+    ((5 1) (4 0)) ((6 0) (5 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand passer-recv-key 1)
+    (ch-msg from-b (cat "req-key" b nb)) (5 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))))
+  (label 27)
+  (parent 23)
+  (unrealized (0 1) (1 2) (3 3) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (start-ch chan)
+    (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((2 4) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (4 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-2
+    trRl_dev-open-at-4 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (displaced 6 2 dev-up 4) k (5 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 28)
+  (parent 24)
+  (seen 28)
+  (unrealized (0 1) (3 3) (5 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch to-b from-b chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (deflistener (hash-dk b nb n k))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 1 (nb nb) (b b) (from-b from-b))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((3 4) (1 0)) ((4 1) (3 1))
+    ((5 1) (4 0)) ((6 0) (5 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand passer-recv-key 1)
+    (ch-msg from-b (cat "req-key" b nb)) (5 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))))
+  (label 29)
+  (parent 25)
+  (unrealized (0 1) (1 2) (3 1) (3 3) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (deflistener (hash-dk b nb n k))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((2 4) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (4 0)))
+  (uniq-orig k)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-2
+    trRl_dev-open-at-4 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (displaced 6 2 dev-up 4) k (5 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 30)
+  (parent 26)
+  (seen 30)
+  (unrealized (0 1) (3 3) (5 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text)
+    (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval)
+    (start-ch to-b from-b chan)
+    (ls lk del-key-locn del-key-locn-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d-0) (o o-0) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn-0))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((3 4) (1 0)) ((4 1) (3 1))
+    ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (displaced 6 7 passer-recv-key 5)
+    (hash-dk b nb n k) (4 0)
+    (ch-msg to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn-0 (cat pt-7 ign))
+      (stor del-key-locn-0
+        (cat pt-8 (key-rec b d-0 o-0 nb n (hash-dk b nb n k))))))
+  (label 31)
+  (parent 27)
+  (unrealized (0 1) (1 2) (3 3) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 1 (nb nb) (b b) (from-b from-b))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((0 0) (7 0)) ((2 4) (3 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (7 0)) ((6 0) (5 0)) ((7 1) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-listener (cat b nb n k))
+    (hash-dk b nb n k) (4 0)
+    (ch-msg to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb)))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 32)
+  (parent 27)
+  (seen 37)
+  (unrealized (0 1) (3 3) (7 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text)
+    (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (deflistener (hash-dk b nb n k))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d-0) (o o-0) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((3 4) (1 0)) ((4 1) (3 1))
+    ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (displaced 6 7 passer-recv-key 5)
+    (hash-dk b nb n k) (4 0)
+    (ch-msg to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-6 ign))
+      (stor del-key-locn
+        (cat pt-7 (key-rec b d-0 o-0 nb n (hash-dk b nb n k))))))
+  (label 33)
+  (parent 29)
+  (unrealized (0 1) (1 2) (3 1) (3 3) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch to-b from-b chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (deflistener (hash-dk b nb n k))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 1 (nb nb) (b b) (from-b from-b))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((0 0) (7 0)) ((2 4) (3 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (7 0)) ((6 0) (5 0)) ((7 1) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-listener (cat b nb n k))
+    (hash-dk b nb n k) (4 0)
+    (ch-msg to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb)))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 34)
+  (parent 29)
+  (seen 39)
+  (unrealized (0 1) (3 3) (7 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((3 4) (1 0)) ((4 1) (3 1))
+    ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)) ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test
+    (contracted (d-0 d) (o-0 o) (del-key-locn-0 del-key-locn)
+      (pt-8 pt-7)) (hash-dk b nb n k) (4 0)
+    (ch-msg to-b (delegate b d o nb n (hash-dk b nb n k)))
+    (ch-msg del-key-locn
+      (cat pt-7 (key-rec b d o nb n (hash-dk b nb n k)))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-7 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-6 ign))
+      (stor del-key-locn
+        (cat pt-7 (key-rec b d o nb n (hash-dk b nb n k))))))
+  (label 35)
+  (parent 31)
+  (seen 40)
+  (unrealized (0 1) (1 2) (3 3))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text)
+    (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval)
+    (start-ch to-b from-b chan)
+    (ls lk del-key-locn del-key-locn-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d-0) (o o-0) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn-0))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((0 0) (7 0)) ((2 4) (3 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (6 1)) ((5 1) (7 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((7 1) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (added-listener (cat b nb n k))
+    (hash-dk b nb n k) (4 0)
+    (ch-msg to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k)))
+    (ch-msg del-key-locn-0
+      (cat pt-8 (key-rec b d-0 o-0 nb n (hash-dk b nb n k)))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn-0 (cat pt-7 ign))
+      (stor del-key-locn-0
+        (cat pt-8 (key-rec b d-0 o-0 nb n (hash-dk b nb n k)))))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 36)
+  (parent 31)
+  (seen 41)
+  (unrealized (0 1) (3 3) (7 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 1 (nb nb) (b b) (from-b from-b))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((2 4) (7 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (7 0)) ((6 0) (5 0)) ((7 1) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-2
+    trRl_dev-open-at-4 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (displaced 8 2 dev-up 4) k (7 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb)))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 37)
+  (parent 32)
+  (seen 37)
+  (unrealized (0 1) (3 3) (7 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text)
+    (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (deflistener (hash-dk b nb n k))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d-0) (o o-0) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((0 0) (7 0)) ((2 4) (3 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (6 1)) ((5 1) (7 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((7 1) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (added-listener (cat b nb n k))
+    (hash-dk b nb n k) (4 0)
+    (ch-msg to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k)))
+    (ch-msg del-key-locn
+      (cat pt-7 (key-rec b d-0 o-0 nb n (hash-dk b nb n k)))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-6 ign))
+      (stor del-key-locn
+        (cat pt-7 (key-rec b d-0 o-0 nb n (hash-dk b nb n k)))))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 38)
+  (parent 33)
+  (seen 42)
+  (unrealized (0 1) (3 3) (7 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k skey) (n nb text) (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch to-b from-b chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (deflistener (hash-dk b nb n k))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 1 (nb nb) (b b) (from-b from-b))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((2 4) (7 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (7 0)) ((6 0) (5 0)) ((7 1) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-2
+    trRl_dev-open-at-4 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (displaced 8 2 dev-up 4) k (7 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb)))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 39)
+  (parent 34)
+  (seen 39)
+  (unrealized (0 1) (3 3) (7 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((3 4) (1 0)) ((4 1) (3 1))
+    ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((2 3) (3 3)) ((3 4) (1 1))
+    ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation channel-test (displaced 7 2 dev-up 4)
+    (ch-msg lk (cat pt-7 (dev-key-state d o k))) (3 3))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))))
+  (label 40)
+  (parent 35)
+  (unrealized (0 1) (1 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text)
+    (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval)
+    (start-ch to-b from-b chan)
+    (ls lk del-key-locn del-key-locn-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d-0) (o o-0) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn-0))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((2 4) (7 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (6 1)) ((5 1) (7 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((7 1) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-2
+    trRl_dev-open-at-4 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4 trRl_passer-recv-key-at-3
+    trRl_passer-recv-key-at-4)
+  (operation nonce-test (displaced 8 2 dev-up 4) k (7 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn-0 (cat pt-7 ign))
+      (stor del-key-locn-0
+        (cat pt-8 (key-rec b d-0 o-0 nb n (hash-dk b nb n k)))))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 41)
+  (parent 36)
+  (seen 41)
+  (unrealized (0 1) (3 3) (7 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text)
+    (d o b d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (deflistener (hash-dk b nb n k))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d-0) (o o-0) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d-0) (o o-0) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((2 4) (7 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (6 1)) ((5 1) (7 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((7 1) (4 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((3 4) (1 1)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-2
+    trRl_dev-open-at-4 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4 trRl_passer-recv-key-at-3
+    trRl_passer-recv-key-at-4)
+  (operation nonce-test (displaced 8 2 dev-up 4) k (7 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d-0 o-0 nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-6 ign))
+      (stor del-key-locn
+        (cat pt-7 (key-rec b d-0 o-0 nb n (hash-dk b nb n k)))))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 42)
+  (parent 38)
+  (seen 42)
+  (unrealized (0 1) (3 3) (7 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb n-0 nb-0 text)
+    (b d o d-0 o-0 b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan)
+    (ls lk del-key-locn del-key-locn-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n-0) (nb nb-0)
+    (d d-0) (o o-0) (b b-0) (del-key-locn del-key-locn-0))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((3 4) (1 0)) ((4 1) (3 1))
+    ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0)) ((7 1) (1 2)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((2 3) (3 3)) ((3 4) (1 1))
+    ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (added-strand passer-pass 2)
+    (enc "may I pass" (hash-dk b nb n k)) (1 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn-0
+       (cat pt-7 (key-rec b-0 d-0 o-0 nb-0 n-0 (hash-dk b nb n k))))
+      (send (cat b-0 nb-0 n-0 (enc "may I pass" (hash-dk b nb n k))))))
+  (label 43)
+  (parent 40)
+  (unrealized (0 1) (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (deflistener (hash-dk b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((3 4) (1 0)) ((4 1) (3 1))
+    ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0)) ((7 1) (1 2)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((2 3) (3 3)) ((3 4) (1 1))
+    ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (added-listener (hash-dk b nb n k))
+    (enc "may I pass" (hash-dk b nb n k)) (1 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k))))
+  (label 44)
+  (parent 40)
+  (unrealized (0 1) (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb n-0 nb-0 text)
+    (b d o d-0 o-0 b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan)
+    (ls lk del-key-locn del-key-locn-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n-0) (nb nb-0)
+    (d d-0) (o o-0) (b b-0) (del-key-locn del-key-locn-0))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((3 4) (1 0)) ((4 1) (3 1))
+    ((5 1) (6 1)) ((5 1) (7 0)) ((6 0) (5 0)) ((6 4) (4 0))
+    ((7 1) (1 2)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((2 3) (3 3)) ((3 4) (1 1))
+    ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (displaced 8 5 owner-delg-key 2)
+    (hash-dk b nb n k) (7 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn-0
+       (cat pt-7 (key-rec b-0 d-0 o-0 nb-0 n-0 (hash-dk b nb n k))))
+      (send (cat b-0 nb-0 n-0 (enc "may I pass" (hash-dk b nb n k))))))
+  (label 45)
+  (parent 43)
+  (unrealized (0 1) (7 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (deflistener (hash-dk b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((3 4) (1 0)) ((4 1) (3 1))
+    ((5 1) (6 1)) ((5 1) (7 0)) ((6 0) (5 0)) ((6 4) (4 0))
+    ((7 1) (1 2)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((2 3) (3 3)) ((3 4) (1 1))
+    ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (displaced 8 5 owner-delg-key 2)
+    (hash-dk b nb n k) (7 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k))))
+  (label 46)
+  (parent 44)
+  (unrealized (0 1) (7 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb n-0 nb-0 text)
+    (b d o d-0 o-0 b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan)
+    (ls lk del-key-locn del-key-locn-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n-0) (nb nb-0)
+    (d d-0) (o o-0) (b b-0) (del-key-locn del-key-locn-0))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((3 4) (1 0)) ((4 1) (3 1))
+    ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0)) ((6 4) (7 0))
+    ((7 1) (1 2)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((2 3) (3 3)) ((3 4) (1 1))
+    ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (displaced 8 6 passer-recv-key 5)
+    (hash-dk b nb n k) (7 0)
+    (ch-msg to-b (delegate b d o nb n (hash-dk b nb n k))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn-0
+       (cat pt-7 (key-rec b-0 d-0 o-0 nb-0 n-0 (hash-dk b nb n k))))
+      (send (cat b-0 nb-0 n-0 (enc "may I pass" (hash-dk b nb n k))))))
+  (label 47)
+  (parent 45)
+  (unrealized (0 1) (7 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb n-0 nb-0 text)
+    (b d o d-0 o-0 b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan)
+    (ls lk del-key-locn del-key-locn-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n-0) (nb nb-0)
+    (d d-0) (o o-0) (b b-0) (del-key-locn del-key-locn-0))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((0 0) (8 0)) ((2 4) (3 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (6 1)) ((5 1) (8 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((7 1) (1 2)) ((8 1) (7 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((2 3) (3 3)) ((3 4) (1 1))
+    ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (added-listener (cat b nb n k))
+    (hash-dk b nb n k) (7 0)
+    (ch-msg to-b (delegate b d o nb n (hash-dk b nb n k))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn-0
+       (cat pt-7 (key-rec b-0 d-0 o-0 nb-0 n-0 (hash-dk b nb n k))))
+      (send (cat b-0 nb-0 n-0 (enc "may I pass" (hash-dk b nb n k)))))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 48)
+  (parent 45)
+  (seen 53)
+  (unrealized (0 1) (8 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (deflistener (hash-dk b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((3 4) (1 0)) ((4 1) (3 1))
+    ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0)) ((6 4) (7 0))
+    ((7 1) (1 2)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((2 3) (3 3)) ((3 4) (1 1))
+    ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (displaced 8 6 passer-recv-key 5)
+    (hash-dk b nb n k) (7 0)
+    (ch-msg to-b (delegate b d o nb n (hash-dk b nb n k))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k))))
+  (label 49)
+  (parent 46)
+  (unrealized (0 1) (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (deflistener (hash-dk b nb n k))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((0 0) (8 0)) ((2 4) (3 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (6 1)) ((5 1) (8 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((7 1) (1 2)) ((8 1) (7 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((2 3) (3 3)) ((3 4) (1 1))
+    ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (added-listener (cat b nb n k))
+    (hash-dk b nb n k) (7 0)
+    (ch-msg to-b (delegate b d o nb n (hash-dk b nb n k))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 50)
+  (parent 46)
+  (seen 55)
+  (unrealized (0 1) (8 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((3 4) (1 0)) ((4 1) (3 1))
+    ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0)) ((6 4) (7 0))
+    ((7 1) (1 2)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((2 3) (3 3)) ((3 4) (1 1))
+    ((6 4) (4 0)) ((6 4) (7 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test
+    (contracted (n-0 n) (nb-0 nb) (d-0 d) (o-0 o) (b-0 b)
+      (del-key-locn-0 del-key-locn) (pt-7 pt-6)) (hash-dk b nb n k)
+    (7 0) (ch-msg to-b (delegate b d o nb n (hash-dk b nb n k)))
+    (ch-msg del-key-locn
+      (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b nb n (enc "may I pass" (hash-dk b nb n k))))))
+  (label 51)
+  (parent 47)
+  (seen 56)
+  (unrealized (0 1))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb n-0 nb-0 text)
+    (b d o d-0 o-0 b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan)
+    (ls lk del-key-locn del-key-locn-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n-0) (nb nb-0)
+    (d d-0) (o o-0) (b b-0) (del-key-locn del-key-locn-0))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((0 0) (8 0)) ((2 4) (3 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (6 1)) ((5 1) (8 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((6 4) (7 0)) ((7 1) (1 2)) ((8 1) (7 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((2 3) (3 3)) ((3 4) (1 1))
+    ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (added-listener (cat b nb n k))
+    (hash-dk b nb n k) (7 0)
+    (ch-msg to-b (delegate b d o nb n (hash-dk b nb n k)))
+    (ch-msg del-key-locn
+      (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn-0
+       (cat pt-7 (key-rec b-0 d-0 o-0 nb-0 n-0 (hash-dk b nb n k))))
+      (send (cat b-0 nb-0 n-0 (enc "may I pass" (hash-dk b nb n k)))))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 52)
+  (parent 47)
+  (seen 58)
+  (unrealized (0 1) (8 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb n-0 nb-0 text)
+    (b d o d-0 o-0 b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan)
+    (ls lk del-key-locn del-key-locn-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n-0) (nb nb-0)
+    (d d-0) (o o-0) (b b-0) (del-key-locn del-key-locn-0))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((2 4) (8 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (6 1)) ((5 1) (8 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((7 1) (1 2)) ((8 1) (7 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((2 3) (3 3)) ((3 4) (1 1))
+    ((6 4) (4 0)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-2
+    trRl_dev-open-at-4 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4 trRl_passer-recv-key-at-3
+    trRl_passer-recv-key-at-4)
+  (operation nonce-test (displaced 9 2 dev-up 4) k (8 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn-0
+       (cat pt-7 (key-rec b-0 d-0 o-0 nb-0 n-0 (hash-dk b nb n k))))
+      (send (cat b-0 nb-0 n-0 (enc "may I pass" (hash-dk b nb n k)))))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 53)
+  (parent 48)
+  (seen 53)
+  (unrealized (0 1) (8 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (deflistener (hash-dk b nb n k))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((0 0) (8 0)) ((2 4) (3 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (6 1)) ((5 1) (8 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((6 4) (7 0)) ((7 1) (1 2)) ((8 1) (7 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((2 3) (3 3)) ((3 4) (1 1))
+    ((6 4) (4 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (added-listener (cat b nb n k))
+    (hash-dk b nb n k) (7 0)
+    (ch-msg to-b (delegate b d o nb n (hash-dk b nb n k)))
+    (ch-msg del-key-locn
+      (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 54)
+  (parent 49)
+  (seen 59)
+  (unrealized (0 1) (8 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (deflistener (hash-dk b nb n k))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((2 4) (8 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (6 1)) ((5 1) (8 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((7 1) (1 2)) ((8 1) (7 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((2 3) (3 3)) ((3 4) (1 1))
+    ((6 4) (4 0)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-2
+    trRl_dev-open-at-4 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4 trRl_passer-recv-key-at-3
+    trRl_passer-recv-key-at-4)
+  (operation nonce-test (displaced 9 2 dev-up 4) k (8 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 55)
+  (parent 50)
+  (seen 55)
+  (unrealized (0 1) (8 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton open-closed
+  (vars (any ign old old1 mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (to-b from-b start-ch chan) (del-key-locn lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand dev-up 6 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (7 0)) ((2 4) (1 0)) ((3 1) (2 1)) ((4 1) (5 1))
+    ((5 0) (4 0)) ((5 4) (3 0)) ((5 4) (6 0)) ((6 1) (1 2))
+    ((7 4) (2 0)) ((7 5) (0 1)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf to-b start-ch)
+  (auth to-b from-b start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((2 4) (1 1)) ((5 4) (3 0)) ((5 4) (6 0)) ((7 3) (1 0))
+    ((7 3) (2 0)) ((7 3) (2 3)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (displaced 2 8 dev-up 6) (enc "up" k)
+    (0 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-5 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((load lk (cat pt-5 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-0 (door-state d any)))
+      (load lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-2 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-1 ign))
+      (stor del-key-locn
+        (cat pt-2 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn
+       (cat pt-2 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b nb n (enc "may I pass" (hash-dk b nb n k)))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-3 old))
+      (load ls (cat pt-4 old1))
+      (stor lk (cat pt-5 (dev-key-state d o k)))
+      (stor ls (cat pt-6 (door-state d (closed o))))
+      (send (enc "up" k))))
+  (label 56)
+  (parent 51)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((k k) (d d) (o o) (start-ch start-ch) (n n) (nb nb) (d-0 d)
+        (o-0 o) (b b) (lk lk) (ls ls))))
+  (origs (pt-5 (7 3)) (pt-6 (7 4)) (nb (5 0)) (pt-2 (5 4)) (n (4 1))
+    (pt (2 4)) (k (0 0))))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((0 0) (8 0)) ((2 4) (3 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0))
+    ((6 4) (7 0)) ((7 1) (1 2)) ((8 1) (0 1)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((2 3) (3 3)) ((3 4) (1 1))
+    ((6 4) (4 0)) ((6 4) (7 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-2 trRl_dev-open-at-4
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4
+    trRl_passer-recv-key-at-3 trRl_passer-recv-key-at-4)
+  (operation encryption-test (added-listener k) (enc "up" k) (0 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b nb n (enc "may I pass" (hash-dk b nb n k)))))
+    ((recv k) (send k)))
+  (label 57)
+  (parent 51)
+  (seen 60)
+  (unrealized (8 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb n-0 nb-0 text)
+    (b d o d-0 o-0 b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval)
+    (start-ch to-b from-b chan)
+    (ls lk del-key-locn del-key-locn-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n-0) (nb nb-0)
+    (d d-0) (o o-0) (b b-0) (del-key-locn del-key-locn-0))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((2 4) (8 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (6 1)) ((5 1) (8 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((6 4) (7 0)) ((7 1) (1 2)) ((8 1) (7 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((2 3) (3 3)) ((3 4) (1 1))
+    ((6 4) (4 0)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-2
+    trRl_dev-open-at-4 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4 trRl_passer-recv-key-at-3
+    trRl_passer-recv-key-at-4)
+  (operation nonce-test (displaced 9 2 dev-up 4) k (8 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn-0
+       (cat pt-7 (key-rec b-0 d-0 o-0 nb-0 n-0 (hash-dk b nb n k))))
+      (send (cat b-0 nb-0 n-0 (enc "may I pass" (hash-dk b nb n k)))))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 58)
+  (parent 52)
+  (seen 58)
+  (unrealized (0 1) (8 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (deflistener (hash-dk b nb n k))
+  (deflistener (cat b nb n k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((2 4) (8 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (6 1)) ((5 1) (8 0)) ((6 0) (5 0))
+    ((6 4) (4 0)) ((6 4) (7 0)) ((7 1) (1 2)) ((8 1) (7 0)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((2 3) (3 3)) ((3 4) (1 1))
+    ((6 4) (4 0)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-2
+    trRl_dev-open-at-4 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4 trRl_passer-recv-key-at-3
+    trRl_passer-recv-key-at-4)
+  (operation nonce-test (displaced 9 2 dev-up 4) k (8 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((recv (hash-dk b nb n k)) (send (hash-dk b nb n k)))
+    ((recv (cat b nb n k)) (send (cat b nb n k))))
+  (label 59)
+  (parent 54)
+  (seen 59)
+  (unrealized (0 1) (8 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any ign mesg) (k skey) (n nb text) (b d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (start-ch to-b from-b chan) (ls lk del-key-locn locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (nb nb) (d d) (o o) (b b) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 5 (any any) (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (lk lk) (ls ls))
+  (defstrand passer-open 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (defstrand owner-delg-key 2 (k k) (n n) (nb nb) (d d) (o o) (b b)
+    (to-b to-b) (from-b from-b))
+  (defstrand passer-recv-key 5 (kp (hash-dk b nb n k)) (ign ign) (n n)
+    (nb nb) (d d) (o o) (b b) (to-b to-b) (from-b from-b)
+    (del-key-locn del-key-locn))
+  (defstrand passer-pass 2 (kp (hash-dk b nb n k)) (n n) (nb nb) (d d)
+    (o o) (b b) (del-key-locn del-key-locn))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 4) (3 0)) ((2 4) (8 0)) ((3 4) (1 0))
+    ((4 1) (3 1)) ((5 1) (6 1)) ((6 0) (5 0)) ((6 4) (4 0))
+    ((6 4) (7 0)) ((7 1) (1 2)) ((8 1) (0 1)))
+  (uniq-orig k n nb)
+  (gen-st (dev-key-state d o k) (door-state d (opened b nb n)))
+  (conf start-ch to-b)
+  (auth start-ch to-b from-b)
+  (facts (same-dev ls lk))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 0)) ((2 3) (3 3)) ((3 4) (1 1))
+    ((6 4) (4 0)) ((6 4) (7 0)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-2
+    trRl_dev-open-at-4 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4 trRl_passer-recv-key-at-3
+    trRl_passer-recv-key-at-4)
+  (operation nonce-test (displaced 9 2 dev-up 4) k (8 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (load ls (cat pt (door-state d (opened b nb n))))
+      (recv (cat b nb n (enc "may I pass" (hash-dk b nb n k))))
+      (send (enc "you may pass" n (hash-dk b nb n k))))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt-3 (door-state d (closed o)))))
+    ((load lk (cat pt-2 (dev-key-state d o k)))
+      (recv (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k))))
+      (load ls (cat pt-4 (door-state d any)))
+      (load lk (cat pt-2 (dev-key-state d o k)))
+      (stor ls (cat pt (door-state d (opened b nb n)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b n (enc (open-req b d o nb n) (hash-dk b nb n k)))))
+    ((recv from-b (cat "req-key" b nb))
+      (send to-b (delegate b d o nb n (hash-dk b nb n k))))
+    ((send from-b (cat "req-key" b nb))
+      (recv to-b (delegate b d o nb n (hash-dk b nb n k)))
+      (send (hash b nb n)) (load del-key-locn (cat pt-5 ign))
+      (stor del-key-locn
+        (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k)))))
+    ((load del-key-locn
+       (cat pt-6 (key-rec b d o nb n (hash-dk b nb n k))))
+      (send (cat b nb n (enc "may I pass" (hash-dk b nb n k)))))
+    ((recv k) (send k)))
+  (label 60)
+  (parent 57)
+  (seen 60)
+  (unrealized (8 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/doc/src/cpsa4manual/examples/or.scm b/doc/src/cpsa4manual/examples/or.scm
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/or.scm
@@ -0,0 +1,27 @@
+(herald "Otway-Rees Protocol"
+	(comment "Standard version using variables of sort mesg"))
+
+(defprotocol or basic
+  (defrole init (vars (a b s name) (na text) (k skey) (m text))
+    (trace
+     (send (cat m a b (enc na m a b (ltk a s))))
+     (recv (cat m (enc na k (ltk a s))))))
+  (defrole resp
+    (vars (a b s name) (nb text) (k skey) (m text) (x y mesg))
+    (trace
+     (recv (cat m a b x))
+     (send (cat m a b x (enc nb m a b (ltk b s))))
+     (recv (cat m y (enc nb k (ltk b s))))
+     (send y)))
+  (defrole serv (vars (a b s name) (na nb text) (k skey) (m text))
+    (trace
+     (recv (cat m a b (enc na m a b (ltk a s))
+		(enc nb m a b (ltk b s))))
+     (send (cat m (enc na k (ltk a s)) (enc nb k (ltk b s)))))
+    (uniq-orig k)))
+
+(defskeleton or
+  (vars (nb text) (s a b name))
+  (defstrand resp 4 (a a) (b b) (s s) (nb nb))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig nb))
diff --git a/doc/src/cpsa4manual/examples/or.tst b/doc/src/cpsa4manual/examples/or.tst
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/or.tst
@@ -0,0 +1,247 @@
+(herald "Otway-Rees Protocol"
+  (comment "Standard version using variables of sort mesg"))
+
+(comment "CPSA 4.4.0")
+(comment "All input read from or.scm")
+
+(defprotocol or basic
+  (defrole init
+    (vars (a b s name) (na text) (k skey) (m text))
+    (trace (send (cat m a b (enc na m a b (ltk a s))))
+      (recv (cat m (enc na k (ltk a s))))))
+  (defrole resp
+    (vars (a b s name) (nb text) (k skey) (m text) (x y mesg))
+    (trace (recv (cat m a b x))
+      (send (cat m a b x (enc nb m a b (ltk b s))))
+      (recv (cat m y (enc nb k (ltk b s)))) (send y)))
+  (defrole serv
+    (vars (a b s name) (na nb text) (k skey) (m text))
+    (trace
+      (recv
+        (cat m a b (enc na m a b (ltk a s)) (enc nb m a b (ltk b s))))
+      (send (cat m (enc na k (ltk a s)) (enc nb k (ltk b s)))))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton or
+  (vars (x y mesg) (k skey) (nb m text) (s a b name))
+  (defstrand resp 4 (x x) (y y) (k k) (nb nb) (m m) (a a) (b b) (s s))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig nb)
+  (traces
+    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (ltk b s))))
+      (recv (cat m y (enc nb k (ltk b s)))) (send y)))
+  (label 0)
+  (unrealized (0 2))
+  (origs (nb (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton or
+  (vars (x y mesg) (k skey) (nb m na m-0 text) (s a b a-0 name))
+  (defstrand resp 4 (x x) (y y) (k k) (nb nb) (m m) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (na na) (nb nb) (m m-0) (a a-0) (b b) (s s))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k nb)
+  (operation encryption-test (added-strand serv 2) (enc nb k (ltk b s))
+    (0 2))
+  (traces
+    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (ltk b s))))
+      (recv (cat m y (enc nb k (ltk b s)))) (send y))
+    ((recv
+       (cat m-0 a-0 b (enc na m-0 a-0 b (ltk a-0 s))
+         (enc nb m-0 a-0 b (ltk b s))))
+      (send (cat m-0 (enc na k (ltk a-0 s)) (enc nb k (ltk b s))))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton or
+  (vars (x y mesg) (k skey) (nb m nb-0 m-0 text) (s a b b-0 name))
+  (defstrand resp 4 (x x) (y y) (k k) (nb nb) (m m) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (na nb) (nb nb-0) (m m-0) (a b) (b b-0) (s s))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k nb)
+  (operation encryption-test (added-strand serv 2) (enc nb k (ltk b s))
+    (0 2))
+  (traces
+    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (ltk b s))))
+      (recv (cat m y (enc nb k (ltk b s)))) (send y))
+    ((recv
+       (cat m-0 b b-0 (enc nb m-0 b b-0 (ltk b s))
+         (enc nb-0 m-0 b b-0 (ltk b-0 s))))
+      (send (cat m-0 (enc nb k (ltk b s)) (enc nb-0 k (ltk b-0 s))))))
+  (label 2)
+  (parent 0)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton or
+  (vars (x y mesg) (k skey) (nb m na text) (s a b name))
+  (defstrand resp 4 (x x) (y y) (k k) (nb nb) (m m) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (na na) (nb nb) (m m) (a a) (b b) (s s))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k nb)
+  (operation encryption-test (displaced 2 0 resp 2)
+    (enc nb m-0 a-0 b (ltk b s)) (1 0))
+  (traces
+    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (ltk b s))))
+      (recv (cat m y (enc nb k (ltk b s)))) (send y))
+    ((recv
+       (cat m a b (enc na m a b (ltk a s)) (enc nb m a b (ltk b s))))
+      (send (cat m (enc na k (ltk a s)) (enc nb k (ltk b s))))))
+  (label 3)
+  (parent 1)
+  (unrealized (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton or
+  (vars (x y mesg) (k skey) (nb m nb-0 text) (s a name))
+  (defstrand resp 4 (x x) (y y) (k k) (nb nb) (m m) (a a) (b a) (s s))
+  (defstrand serv 2 (k k) (na nb) (nb nb-0) (m m) (a a) (b a) (s s))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (ltk a s))
+  (uniq-orig k nb)
+  (operation encryption-test (displaced 2 0 resp 2)
+    (enc nb m-0 b b (ltk b s)) (1 0))
+  (traces
+    ((recv (cat m a a x)) (send (cat m a a x (enc nb m a a (ltk a s))))
+      (recv (cat m y (enc nb k (ltk a s)))) (send y))
+    ((recv
+       (cat m a a (enc nb m a a (ltk a s)) (enc nb-0 m a a (ltk a s))))
+      (send (cat m (enc nb k (ltk a s)) (enc nb-0 k (ltk a s))))))
+  (label 4)
+  (parent 2)
+  (seen 6)
+  (unrealized (1 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton or
+  (vars (x y mesg) (k skey) (nb m na text) (s a b name))
+  (defstrand resp 4 (x x) (y y) (k k) (nb nb) (m m) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (na na) (nb nb) (m m) (a a) (b b) (s s))
+  (defstrand init 1 (na na) (m m) (a a) (b b) (s s))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k nb)
+  (operation encryption-test (added-strand init 1)
+    (enc na m a b (ltk a s)) (1 0))
+  (traces
+    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (ltk b s))))
+      (recv (cat m y (enc nb k (ltk b s)))) (send y))
+    ((recv
+       (cat m a b (enc na m a b (ltk a s)) (enc nb m a b (ltk b s))))
+      (send (cat m (enc na k (ltk a s)) (enc nb k (ltk b s)))))
+    ((send (cat m a b (enc na m a b (ltk a s))))))
+  (label 5)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((nb nb) (s s) (a a) (b b) (k k) (m m) (x x) (y y))))
+  (origs (k (1 1)) (nb (0 1))))
+
+(defskeleton or
+  (vars (x y mesg) (k skey) (nb m text) (s a name))
+  (defstrand resp 4 (x x) (y y) (k k) (nb nb) (m m) (a a) (b a) (s s))
+  (defstrand serv 2 (k k) (na nb) (nb nb) (m m) (a a) (b a) (s s))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (ltk a s))
+  (uniq-orig k nb)
+  (operation encryption-test (displaced 2 0 resp 2)
+    (enc na m a a (ltk a s)) (1 0))
+  (traces
+    ((recv (cat m a a x)) (send (cat m a a x (enc nb m a a (ltk a s))))
+      (recv (cat m y (enc nb k (ltk a s)))) (send y))
+    ((recv
+       (cat m a a (enc nb m a a (ltk a s)) (enc nb m a a (ltk a s))))
+      (send (cat m (enc nb k (ltk a s)) (enc nb k (ltk a s))))))
+  (label 6)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))
+  (origs (k (1 1)) (nb (0 1))))
+
+(defskeleton or
+  (vars (x y x-0 mesg) (k skey) (nb m na text) (s a name))
+  (defstrand resp 4 (x x) (y y) (k k) (nb nb) (m m) (a a) (b a) (s s))
+  (defstrand serv 2 (k k) (na na) (nb nb) (m m) (a a) (b a) (s s))
+  (defstrand resp 2 (x x-0) (nb na) (m m) (a a) (b a) (s s))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (ltk a s))
+  (uniq-orig k nb)
+  (operation encryption-test (added-strand resp 2)
+    (enc na m a a (ltk a s)) (1 0))
+  (traces
+    ((recv (cat m a a x)) (send (cat m a a x (enc nb m a a (ltk a s))))
+      (recv (cat m y (enc nb k (ltk a s)))) (send y))
+    ((recv
+       (cat m a a (enc na m a a (ltk a s)) (enc nb m a a (ltk a s))))
+      (send (cat m (enc na k (ltk a s)) (enc nb k (ltk a s)))))
+    ((recv (cat m a a x-0))
+      (send (cat m a a x-0 (enc na m a a (ltk a s))))))
+  (label 7)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))
+  (origs (k (1 1)) (nb (0 1))))
+
+(defskeleton or
+  (vars (x y mesg) (k skey) (nb m nb-0 text) (s a name))
+  (defstrand resp 4 (x x) (y y) (k k) (nb nb) (m m) (a a) (b a) (s s))
+  (defstrand serv 2 (k k) (na nb) (nb nb-0) (m m) (a a) (b a) (s s))
+  (defstrand init 1 (na nb-0) (m m) (a a) (b a) (s s))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))
+  (non-orig (ltk a s))
+  (uniq-orig k nb)
+  (operation encryption-test (added-strand init 1)
+    (enc nb-0 m a a (ltk a s)) (1 0))
+  (traces
+    ((recv (cat m a a x)) (send (cat m a a x (enc nb m a a (ltk a s))))
+      (recv (cat m y (enc nb k (ltk a s)))) (send y))
+    ((recv
+       (cat m a a (enc nb m a a (ltk a s)) (enc nb-0 m a a (ltk a s))))
+      (send (cat m (enc nb k (ltk a s)) (enc nb-0 k (ltk a s)))))
+    ((send (cat m a a (enc nb-0 m a a (ltk a s))))))
+  (label 8)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))
+  (origs (k (1 1)) (nb (0 1))))
+
+(defskeleton or
+  (vars (x y x-0 mesg) (k skey) (nb m nb-0 text) (s a name))
+  (defstrand resp 4 (x x) (y y) (k k) (nb nb) (m m) (a a) (b a) (s s))
+  (defstrand serv 2 (k k) (na nb) (nb nb-0) (m m) (a a) (b a) (s s))
+  (defstrand resp 2 (x x-0) (nb nb-0) (m m) (a a) (b a) (s s))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (ltk a s))
+  (uniq-orig k nb)
+  (operation encryption-test (added-strand resp 2)
+    (enc nb-0 m a a (ltk a s)) (1 0))
+  (traces
+    ((recv (cat m a a x)) (send (cat m a a x (enc nb m a a (ltk a s))))
+      (recv (cat m y (enc nb k (ltk a s)))) (send y))
+    ((recv
+       (cat m a a (enc nb m a a (ltk a s)) (enc nb-0 m a a (ltk a s))))
+      (send (cat m (enc nb k (ltk a s)) (enc nb-0 k (ltk a s)))))
+    ((recv (cat m a a x-0))
+      (send (cat m a a x-0 (enc nb-0 m a a (ltk a s))))))
+  (label 9)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))
+  (origs (k (1 1)) (nb (0 1))))
+
+(comment "Nothing left to do")
diff --git a/doc/src/cpsa4manual/examples/pkinit.scm b/doc/src/cpsa4manual/examples/pkinit.scm
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/pkinit.scm
@@ -0,0 +1,203 @@
+(herald "Kerberos PKINIT")
+
+;;; This file includes three versions of the Kerberos PKINIT
+;;; protocol. The first version is the flawed version that Cervesato
+;;; et al. analyzed in "Breaking and Fixing Public-Key Kerberos." The
+;;; other two versions are the two fixes that are explored in the same
+;;; paper.
+
+;;; We also express the goal that the authors identify as a property
+;;; not met by the original flawed version, but which both fixes do
+;;; achieve. Running CPSA with this input demonstrates that the flawed
+;;; version does not satisfy the goal, but both fixed versions do.
+
+;;; How to use this file:
+;;;
+;;; CPSA looks at the goal and creates an initial point of view that
+;;; corresponds to the information contained in the antecedent of the
+;;; implication of the goal. It then outputs a characterization
+;;; (consisting of shapes) of all executions containing at least the
+;;; structure contained in the point of view. It then evaluates the
+;;; goal against each of those shapes. The guarantee CPSA provides is
+;;; that a goal is achieved iff each of the shapes satisfies the goal.
+
+;;; We can look at the output in pkinit.xhtml to determine what CPSA
+;;; discovered. Notice that the shape associated with the first
+;;; analysis (of the flawed version) contains an annotation that says
+;;; (satisfies (no (c c) (as as) (k k) (z (0 1)))). This means that
+;;; the goal is not satisfied. The pairs of terms represent a variable
+;;; assignment for the logical variables of the goal into elements of
+;;; the shape. This is the variable assignment of the antecendant
+;;; which has no extension for which the conclusion is also
+;;; satisfied. The shapes for the other analyses contain the
+;;; annotation (satisfies yes) indicating that the goal is satisfied
+;;; in the shape (and hence in any realized skeleton).
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;                       ;;
+;; Protocol Descriptions ;;
+;;                       ;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;; This is the flawed version of the Kerberos public key initial
+;; round.
+(defprotocol pkinit-flawed basic
+  (defrole client
+    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
+    (trace (send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    (uniq-orig n1 n2))
+  (defrole auth
+    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
+    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
+      (send
+        (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    (uniq-orig k ak)))
+
+;; This is the fix the authors proposed to the standards group. It
+;; adds the value c in a new field inside the server's signature.
+(defprotocol pkinit-fix1 basic
+  (defrole client
+    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
+    (trace (send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    (uniq-orig n1 n2))
+  (defrole auth
+    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
+    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
+      (send
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    (uniq-orig k ak)))
+
+;; This is the fix that the standards group proposed and adopted. It
+;; replaces n2 in the server's with a hash of the entire first
+;; message.
+(defprotocol pkinit-fix2 basic
+  (defrole client
+    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
+    (trace (send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc k (hash (cat (enc tc n2 (privk c)) c t n1))
+                       (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))))
+    (uniq-orig n1 n2))
+  (defrole auth
+    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
+    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
+      (send
+        (cat (enc (enc k (hash (cat (enc tc n2 (privk c)) c t n1))
+                       (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))))
+    (uniq-orig k ak)))
+
+;;;;;;;;;;;;;;;;;;;;;
+;;                 ;;
+;; Goal Statements ;;
+;;                 ;;
+;;;;;;;;;;;;;;;;;;;;;
+
+;; This is the goal that the authors discovered was not met by the
+;; original, flawed version, but which was met by both fixes.
+(defgoal pkinit-flawed
+  (forall ((c as name) (k skey) (z strd))
+          (implies
+           (and (p "client" z 2)
+                (p "client" "c" z c)
+                (p "client" "as" z as)
+                (p "client" "k" z k)
+                (non (privk as))
+                (non (privk c)))
+           (exists ((z-0 strd))
+                   (and (p "auth" z-0 1)
+                        (p "auth" "as" z-0 as)
+                        (p "auth" "k" z-0 k)
+                        (p "auth" "c" z-0 c))))))
+
+;; Since we reference the protocol in the expression of the goal, we
+;; must repeat it once for every protocol against which we would like
+;; to evaluate the goal.
+(defgoal pkinit-fix1
+  (forall ((c as name) (k skey) (z strd))
+          (implies
+           (and (p "client" z 2)
+                (p "client" "c" z c)
+                (p "client" "as" z as)
+                (p "client" "k" z k)
+                (non (privk as))
+                (non (privk c)))
+           (exists ((z-0 strd))
+                   (and (p "auth" z-0 1)
+                        (p "auth" "as" z-0 as)
+                        (p "auth" "k" z-0 k)
+                        (p "auth" "c" z-0 c))))))
+
+;; Repeated once more.
+(defgoal pkinit-fix2
+  (forall ((c as name) (k skey) (z strd))
+          (implies
+           (and (p "client" z 2)
+                (p "client" "c" z c)
+                (p "client" "as" z as)
+                (p "client" "k" z k)
+                (non (privk as))
+                (non (privk c)))
+           (exists ((z-0 strd))
+                   (and (p "auth" z-0 1)
+                        (p "auth" "as" z-0 as)
+                        (p "auth" "k" z-0 k)
+                        (p "auth" "c" z-0 c))))))
+
+;;;;;;;;
+
+(defgoal pkinit-flawed
+  (forall ((c c-0 as name) (k skey) (z z-0 strd))
+          (implies
+           (and (p "client" z 2)
+                (p "client" "c" z c)
+                (p "client" "as" z as)
+                (p "client" "k" z k)
+                (p "auth" z-0 1)
+                (p "auth" "k" z-0 k)
+                (p "auth" "c" z-0 c-0)
+                (non (privk as))
+                (non (privk c)))
+           ;(exists ((z-1 strd))
+           ;        (p "client" 1 z-1))
+           (= c c-0)
+           )))
+
+(defgoal pkinit-fix1
+  (forall ((c c-0 as name) (k skey) (z z-0 strd))
+          (implies
+           (and (p "client" z 2)
+                (p "client" "c" z c)
+                (p "client" "as" z as)
+                (p "client" "k" z k)
+                (p "auth" z-0 1)
+                (p "auth" "k" z-0 k)
+                (p "auth" "c" z-0 c-0)
+                (non (privk as))
+                (non (privk c)))
+           (exists ((z-1 strd))
+                   (p "client" z-1 1))
+           ;(= c c-0)
+           )))
+
+(defgoal pkinit-fix2
+  (forall ((c c-0 as name) (k skey) (z z-0 strd))
+          (implies
+           (and (p "client" z 2)
+                (p "client" "c" z c)
+                (p "client" "as" z as)
+                (p "client" "k" z k)
+                (p "auth" z-0 1)
+                (p "auth" "k" z-0 k)
+                (p "auth" "c" z-0 c-0)
+                (non (privk as))
+                (non (privk c)))
+           (exists ((z-1 strd))
+                   (p "client" z-1 1)))))
diff --git a/doc/src/cpsa4manual/examples/pkinit.tst b/doc/src/cpsa4manual/examples/pkinit.tst
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/pkinit.tst
@@ -0,0 +1,1213 @@
+(herald "Kerberos PKINIT")
+
+(comment "CPSA 4.4.0")
+(comment "All input read from pkinit.scm")
+
+(defprotocol pkinit-flawed basic
+  (defrole client
+    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
+    (trace (send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    (uniq-orig n2 n1))
+  (defrole auth
+    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
+    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
+      (send
+        (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    (uniq-orig k ak))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton pkinit-flawed
+  (vars (tc tk tgt data) (k ak skey) (n2 n1 text) (c as t name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (non-orig (privk c) (privk as))
+  (uniq-orig n2 n1)
+  (goals
+    (forall ((c as name) (k skey) (z strd))
+      (implies
+        (and (p "client" z 2) (p "client" "c" z c)
+          (p "client" "as" z as) (p "client" "k" z k) (non (privk as))
+          (non (privk c)))
+        (exists ((z-0 strd))
+          (and (p "auth" z-0 1) (p "auth" "as" z-0 as)
+            (p "auth" "k" z-0 k) (p "auth" "c" z-0 c))))))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k)))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (n2 (0 0)) (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pkinit-flawed
+  (vars (tc tk tgt tc-0 tk-0 tgt-0 data) (k ak ak-0 skey)
+    (n2 n1 n1-0 text) (c as t c-0 t-0 name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc-0) (tk tk-0) (tgt tgt-0) (k k) (ak ak-0)
+    (n2 n2) (n1 n1-0) (c c-0) (t t-0) (as as))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak-0 n2 n1)
+  (operation encryption-test (added-strand auth 2) (enc k n2 (privk as))
+    (0 1))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    ((recv (cat (enc tc-0 n2 (privk c-0)) c-0 t-0 n1-0))
+      (send
+        (cat (enc (enc k n2 (privk as)) (pubk c-0)) c-0 tgt-0
+          (enc ak-0 n1-0 tk-0 t-0 k)))))
+  (label 1)
+  (parent 0)
+  (realized)
+  (shape)
+  (satisfies (no (p "auth" "c" z-0 c) (c c) (as as) (k k) (z 0)))
+  (maps
+    ((0)
+      ((c c) (as as) (k k) (t t) (n2 n2) (n1 n1) (tc tc) (tk tk)
+        (tgt tgt) (ak ak))))
+  (origs (k (1 1)) (ak-0 (1 1)) (n2 (0 0)) (n1 (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol pkinit-fix1 basic
+  (defrole client
+    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
+    (trace (send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    (uniq-orig n2 n1))
+  (defrole auth
+    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
+    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
+      (send
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    (uniq-orig k ak))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton pkinit-fix1
+  (vars (tc tk tgt data) (k ak skey) (n2 n1 text) (c as t name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (non-orig (privk c) (privk as))
+  (uniq-orig n2 n1)
+  (goals
+    (forall ((c as name) (k skey) (z strd))
+      (implies
+        (and (p "client" z 2) (p "client" "c" z c)
+          (p "client" "as" z as) (p "client" "k" z k) (non (privk as))
+          (non (privk c)))
+        (exists ((z-0 strd))
+          (and (p "auth" z-0 1) (p "auth" "as" z-0 as)
+            (p "auth" "k" z-0 k) (p "auth" "c" z-0 c))))))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k)))))
+  (label 2)
+  (unrealized (0 1))
+  (origs (n2 (0 0)) (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pkinit-fix1
+  (vars (tc tk tgt tc-0 tk-0 tgt-0 data) (k ak ak-0 skey)
+    (n2 n1 n1-0 text) (c as t t-0 name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc-0) (tk tk-0) (tgt tgt-0) (k k) (ak ak-0)
+    (n2 n2) (n1 n1-0) (c c) (t t-0) (as as))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak-0 n2 n1)
+  (operation encryption-test (added-strand auth 2)
+    (enc k n2 c (privk as)) (0 1))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    ((recv (cat (enc tc-0 n2 (privk c)) c t-0 n1-0))
+      (send
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0
+          (enc ak-0 n1-0 tk-0 t-0 k)))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 1) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pkinit-fix1
+  (vars (tc tk tgt tk-0 tgt-0 data) (k ak ak-0 skey) (n2 n1 n1-0 text)
+    (c as t t-0 name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc) (tk tk-0) (tgt tgt-0) (k k) (ak ak-0)
+    (n2 n2) (n1 n1-0) (c c) (t t-0) (as as))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak-0 n2 n1)
+  (operation encryption-test (displaced 2 0 client 1)
+    (enc tc-0 n2 (privk c)) (1 0))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    ((recv (cat (enc tc n2 (privk c)) c t-0 n1-0))
+      (send
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0
+          (enc ak-0 n1-0 tk-0 t-0 k)))))
+  (label 4)
+  (parent 3)
+  (unrealized (0 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton pkinit-fix1
+  (vars (tc tgt tk tgt-0 data) (k ak skey) (n2 n1 text) (c as t name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc) (tk tk) (tgt tgt-0) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak n2 n1)
+  (operation encryption-test (displaced 2 1 auth 2)
+    (enc ak-0 n1-0 tk-0 t-0 k) (0 1))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    ((recv (cat (enc tc n2 (privk c)) c t n1))
+      (send
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0
+          (enc ak n1 tk t k)))))
+  (label 5)
+  (parent 4)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((0)
+      ((c c) (as as) (k k) (t t) (n2 n2) (n1 n1) (tc tc) (tk tk)
+        (tgt tgt) (ak ak))))
+  (origs (k (1 1)) (ak (1 1)) (n1 (0 0)) (n2 (0 0))))
+
+(defskeleton pkinit-fix1
+  (vars (tc tk tgt tk-0 tgt-0 data) (k ak ak-0 skey) (n2 n1 n1-0 text)
+    (c as t t-0 name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc) (tk tk-0) (tgt tgt-0) (k k) (ak ak-0)
+    (n2 n2) (n1 n1-0) (c c) (t t-0) (as as))
+  (deflistener k)
+  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak-0 n2 n1)
+  (operation encryption-test (added-listener k) (enc ak n1 tk t k)
+    (0 1))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    ((recv (cat (enc tc n2 (privk c)) c t-0 n1-0))
+      (send
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0
+          (enc ak-0 n1-0 tk-0 t-0 k)))) ((recv k) (send k)))
+  (label 6)
+  (parent 4)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pkinit-fix1
+  (vars (tc tk tgt tk-0 tgt-0 data) (ak ak-0 skey) (n2 n1 n1-0 text)
+    (c as t t-0 name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k ak-0) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc) (tk tk-0) (tgt tgt-0) (k ak-0) (ak ak-0)
+    (n2 n2) (n1 n1-0) (c c) (t t-0) (as as))
+  (deflistener ak-0)
+  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig ak-0 n2 n1)
+  (operation nonce-test (displaced 3 1 auth 2) k (2 0)
+    (enc (enc k n2 c (privk as)) (pubk c)))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc ak-0 n2 c (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t ak-0))))
+    ((recv (cat (enc tc n2 (privk c)) c t-0 n1-0))
+      (send
+        (cat (enc (enc ak-0 n2 c (privk as)) (pubk c)) c tgt-0
+          (enc ak-0 n1-0 tk-0 t-0 ak-0)))) ((recv ak-0) (send ak-0)))
+  (label 7)
+  (parent 6)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol pkinit-fix2 basic
+  (defrole client
+    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
+    (trace (send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat
+          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt (enc ak n1 tk t k))))
+    (uniq-orig n2 n1))
+  (defrole auth
+    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
+    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
+      (send
+        (cat
+          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt (enc ak n1 tk t k))))
+    (uniq-orig k ak))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton pkinit-fix2
+  (vars (tc tk tgt data) (k ak skey) (n2 n1 text) (c as t name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (non-orig (privk c) (privk as))
+  (uniq-orig n2 n1)
+  (goals
+    (forall ((c as name) (k skey) (z strd))
+      (implies
+        (and (p "client" z 2) (p "client" "c" z c)
+          (p "client" "as" z as) (p "client" "k" z k) (non (privk as))
+          (non (privk c)))
+        (exists ((z-0 strd))
+          (and (p "auth" z-0 1) (p "auth" "as" z-0 as)
+            (p "auth" "k" z-0 k) (p "auth" "c" z-0 c))))))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat
+          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt (enc ak n1 tk t k)))))
+  (label 8)
+  (unrealized (0 1))
+  (origs (n2 (0 0)) (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pkinit-fix2
+  (vars (tc tk tgt tk-0 tgt-0 data) (k ak ak-0 skey) (n2 n1 text)
+    (c as t name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc) (tk tk-0) (tgt tgt-0) (k k) (ak ak-0)
+    (n2 n2) (n1 n1) (c c) (t t) (as as))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak-0 n2 n1)
+  (operation encryption-test (added-strand auth 2)
+    (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (0 1))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat
+          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt (enc ak n1 tk t k))))
+    ((recv (cat (enc tc n2 (privk c)) c t n1))
+      (send
+        (cat
+          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k)))))
+  (label 9)
+  (parent 8)
+  (unrealized (0 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton pkinit-fix2
+  (vars (tc tgt tk tgt-0 data) (k ak skey) (n2 n1 text) (c as t name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc) (tk tk) (tgt tgt-0) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak n2 n1)
+  (operation encryption-test (displaced 2 1 auth 2)
+    (enc ak-0 n1 tk-0 t k) (0 1))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat
+          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt (enc ak n1 tk t k))))
+    ((recv (cat (enc tc n2 (privk c)) c t n1))
+      (send
+        (cat
+          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt-0 (enc ak n1 tk t k)))))
+  (label 10)
+  (parent 9)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((0)
+      ((c c) (as as) (k k) (t t) (n2 n2) (n1 n1) (tc tc) (tk tk)
+        (tgt tgt) (ak ak))))
+  (origs (k (1 1)) (ak (1 1)) (n2 (0 0)) (n1 (0 0))))
+
+(defskeleton pkinit-fix2
+  (vars (tc tk tgt tk-0 tgt-0 data) (k ak ak-0 skey) (n2 n1 text)
+    (c as t name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc) (tk tk-0) (tgt tgt-0) (k k) (ak ak-0)
+    (n2 n2) (n1 n1) (c c) (t t) (as as))
+  (deflistener k)
+  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak-0 n2 n1)
+  (operation encryption-test (added-listener k) (enc ak n1 tk t k)
+    (0 1))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat
+          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt (enc ak n1 tk t k))))
+    ((recv (cat (enc tc n2 (privk c)) c t n1))
+      (send
+        (cat
+          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k))))
+    ((recv k) (send k)))
+  (label 11)
+  (parent 9)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pkinit-fix2
+  (vars (tc tk tgt tk-0 tgt-0 data) (ak ak-0 skey) (n2 n1 text)
+    (c as t name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k ak-0) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc) (tk tk-0) (tgt tgt-0) (k ak-0) (ak ak-0)
+    (n2 n2) (n1 n1) (c c) (t t) (as as))
+  (deflistener ak-0)
+  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig ak-0 n2 n1)
+  (operation nonce-test (displaced 3 1 auth 2) k (2 0)
+    (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
+      (pubk c)))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat
+          (enc (enc ak-0 (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt (enc ak n1 tk t ak-0))))
+    ((recv (cat (enc tc n2 (privk c)) c t n1))
+      (send
+        (cat
+          (enc (enc ak-0 (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t ak-0))))
+    ((recv ak-0) (send ak-0)))
+  (label 12)
+  (parent 11)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol pkinit-flawed basic
+  (defrole client
+    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
+    (trace (send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    (uniq-orig n2 n1))
+  (defrole auth
+    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
+    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
+      (send
+        (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    (uniq-orig k ak))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton pkinit-flawed
+  (vars (tc tc-0 tk tgt data) (k ak skey) (n2 n1 n2-0 n1-0 text)
+    (c c-0 as t t-0 name))
+  (defstrand auth 1 (tc tc) (n2 n2) (n1 n1) (c c-0) (t t))
+  (defstrand client 2 (tc tc-0) (tk tk) (tgt tgt) (k k) (ak ak)
+    (n2 n2-0) (n1 n1-0) (c c) (t t-0) (as as))
+  (non-orig (privk c) (privk as))
+  (uniq-orig n2-0 n1-0)
+  (goals
+    (forall ((c c-0 as name) (k skey) (z z-0 strd))
+      (implies
+        (and (p "client" z 2) (p "client" "c" z c)
+          (p "client" "as" z as) (p "client" "k" z k) (p "auth" z-0 1)
+          (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as))
+          (non (privk c))) (= c c-0))))
+  (traces ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)))
+    ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
+      (recv
+        (cat (enc (enc k n2-0 (privk as)) (pubk c)) c tgt
+          (enc ak n1-0 tk t-0 k)))))
+  (label 13)
+  (unrealized (1 1))
+  (origs (n2-0 (1 0)) (n1-0 (1 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton pkinit-flawed
+  (vars (tc tk tgt tc-0 tk-0 tgt-0 data) (k ak ak-0 skey)
+    (n2 n1 n1-0 text) (c as t c-0 t-0 name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc-0) (tk tk-0) (tgt tgt-0) (k k) (ak ak-0)
+    (n2 n2) (n1 n1-0) (c c-0) (t t-0) (as as))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak-0 n2 n1)
+  (operation encryption-test (displaced 0 2 auth 2)
+    (enc k n2 (privk as)) (1 1))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    ((recv (cat (enc tc-0 n2 (privk c-0)) c-0 t-0 n1-0))
+      (send
+        (cat (enc (enc k n2 (privk as)) (pubk c-0)) c-0 tgt-0
+          (enc ak-0 n1-0 tk-0 t-0 k)))))
+  (label 14)
+  (parent 13)
+  (realized)
+  (shape)
+  (satisfies (no (= c c-0) (c c) (c-0 c-0) (as as) (k k) (z 0) (z-0 1)))
+  (maps
+    ((1 0)
+      ((c c) (c-0 c-0) (as as) (k k) (t t-0) (n2 n2) (n1 n1-0) (tc tc-0)
+        (t-0 t) (n2-0 n2) (n1-0 n1) (tc-0 tc) (tk tk) (tgt tgt)
+        (ak ak))))
+  (origs (k (1 1)) (ak-0 (1 1)) (n2 (0 0)) (n1 (0 0))))
+
+(defskeleton pkinit-flawed
+  (vars (tc tc-0 tk tgt tc-1 tk-0 tgt-0 data) (k ak ak-0 skey)
+    (n2 n1 n2-0 n1-0 n1-1 text) (c c-0 as t t-0 c-1 t-1 name))
+  (defstrand auth 1 (tc tc) (n2 n2) (n1 n1) (c c-0) (t t))
+  (defstrand client 2 (tc tc-0) (tk tk) (tgt tgt) (k k) (ak ak)
+    (n2 n2-0) (n1 n1-0) (c c) (t t-0) (as as))
+  (defstrand auth 2 (tc tc-1) (tk tk-0) (tgt tgt-0) (k k) (ak ak-0)
+    (n2 n2-0) (n1 n1-1) (c c-1) (t t-1) (as as))
+  (precedes ((1 0) (2 0)) ((2 1) (1 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak-0 n2-0 n1-0)
+  (operation encryption-test (added-strand auth 2)
+    (enc k n2-0 (privk as)) (1 1))
+  (traces ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)))
+    ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
+      (recv
+        (cat (enc (enc k n2-0 (privk as)) (pubk c)) c tgt
+          (enc ak n1-0 tk t-0 k))))
+    ((recv (cat (enc tc-1 n2-0 (privk c-1)) c-1 t-1 n1-1))
+      (send
+        (cat (enc (enc k n2-0 (privk as)) (pubk c-1)) c-1 tgt-0
+          (enc ak-0 n1-1 tk-0 t-1 k)))))
+  (label 15)
+  (parent 13)
+  (realized)
+  (shape)
+  (satisfies (no (= c c-0) (c c) (c-0 c-1) (as as) (k k) (z 1) (z-0 2)))
+  (maps
+    ((0 1)
+      ((c c) (c-0 c-0) (as as) (k k) (t t) (n2 n2) (n1 n1) (tc tc)
+        (t-0 t-0) (n2-0 n2-0) (n1-0 n1-0) (tc-0 tc-0) (tk tk) (tgt tgt)
+        (ak ak))))
+  (origs (k (2 1)) (ak-0 (2 1)) (n2-0 (1 0)) (n1-0 (1 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol pkinit-fix1 basic
+  (defrole client
+    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
+    (trace (send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    (uniq-orig n2 n1))
+  (defrole auth
+    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
+    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
+      (send
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    (uniq-orig k ak))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton pkinit-fix1
+  (vars (tc tc-0 tk tgt data) (k ak skey) (n2 n1 n2-0 n1-0 text)
+    (c c-0 as t t-0 name))
+  (defstrand auth 1 (tc tc) (n2 n2) (n1 n1) (c c-0) (t t))
+  (defstrand client 2 (tc tc-0) (tk tk) (tgt tgt) (k k) (ak ak)
+    (n2 n2-0) (n1 n1-0) (c c) (t t-0) (as as))
+  (non-orig (privk c) (privk as))
+  (uniq-orig n2-0 n1-0)
+  (goals
+    (forall ((c c-0 as name) (k skey) (z z-0 strd))
+      (implies
+        (and (p "client" z 2) (p "client" "c" z c)
+          (p "client" "as" z as) (p "client" "k" z k) (p "auth" z-0 1)
+          (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as))
+          (non (privk c))) (exists ((z-1 strd)) (p "client" z-1 1)))))
+  (traces ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)))
+    ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
+      (recv
+        (cat (enc (enc k n2-0 c (privk as)) (pubk c)) c tgt
+          (enc ak n1-0 tk t-0 k)))))
+  (label 16)
+  (unrealized (1 1))
+  (origs (n2-0 (1 0)) (n1-0 (1 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton pkinit-fix1
+  (vars (tc tk tgt tc-0 tk-0 tgt-0 data) (k ak ak-0 skey)
+    (n2 n1 n1-0 text) (c as t t-0 name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc-0) (tk tk-0) (tgt tgt-0) (k k) (ak ak-0)
+    (n2 n2) (n1 n1-0) (c c) (t t-0) (as as))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak-0 n2 n1)
+  (operation encryption-test (displaced 0 2 auth 2)
+    (enc k n2 c (privk as)) (1 1))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    ((recv (cat (enc tc-0 n2 (privk c)) c t-0 n1-0))
+      (send
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0
+          (enc ak-0 n1-0 tk-0 t-0 k)))))
+  (label 17)
+  (parent 16)
+  (unrealized (0 1) (1 0))
+  (origs (k (1 1)) (ak-0 (1 1)) (n2 (0 0)) (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pkinit-fix1
+  (vars (tc tc-0 tk tgt tc-1 tk-0 tgt-0 data) (k ak ak-0 skey)
+    (n2 n1 n2-0 n1-0 n1-1 text) (c c-0 as t t-0 t-1 name))
+  (defstrand auth 1 (tc tc) (n2 n2) (n1 n1) (c c-0) (t t))
+  (defstrand client 2 (tc tc-0) (tk tk) (tgt tgt) (k k) (ak ak)
+    (n2 n2-0) (n1 n1-0) (c c) (t t-0) (as as))
+  (defstrand auth 2 (tc tc-1) (tk tk-0) (tgt tgt-0) (k k) (ak ak-0)
+    (n2 n2-0) (n1 n1-1) (c c) (t t-1) (as as))
+  (precedes ((1 0) (2 0)) ((2 1) (1 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak-0 n2-0 n1-0)
+  (operation encryption-test (added-strand auth 2)
+    (enc k n2-0 c (privk as)) (1 1))
+  (traces ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)))
+    ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
+      (recv
+        (cat (enc (enc k n2-0 c (privk as)) (pubk c)) c tgt
+          (enc ak n1-0 tk t-0 k))))
+    ((recv (cat (enc tc-1 n2-0 (privk c)) c t-1 n1-1))
+      (send
+        (cat (enc (enc k n2-0 c (privk as)) (pubk c)) c tgt-0
+          (enc ak-0 n1-1 tk-0 t-1 k)))))
+  (label 18)
+  (parent 16)
+  (unrealized (1 1) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pkinit-fix1
+  (vars (tc tk tgt tk-0 tgt-0 data) (k ak ak-0 skey) (n2 n1 n1-0 text)
+    (c as t t-0 name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc) (tk tk-0) (tgt tgt-0) (k k) (ak ak-0)
+    (n2 n2) (n1 n1-0) (c c) (t t-0) (as as))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak-0 n2 n1)
+  (operation encryption-test (displaced 2 0 client 1)
+    (enc tc-0 n2 (privk c)) (1 0))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    ((recv (cat (enc tc n2 (privk c)) c t-0 n1-0))
+      (send
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0
+          (enc ak-0 n1-0 tk-0 t-0 k)))))
+  (label 19)
+  (parent 17)
+  (unrealized (0 1))
+  (origs (n1 (0 0)) (n2 (0 0)) (k (1 1)) (ak-0 (1 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton pkinit-fix1
+  (vars (tc tc-0 tk tgt tk-0 tgt-0 data) (k ak ak-0 skey)
+    (n2 n1 n2-0 n1-0 n1-1 text) (c c-0 as t t-0 t-1 name))
+  (defstrand auth 1 (tc tc) (n2 n2) (n1 n1) (c c-0) (t t))
+  (defstrand client 2 (tc tc-0) (tk tk) (tgt tgt) (k k) (ak ak)
+    (n2 n2-0) (n1 n1-0) (c c) (t t-0) (as as))
+  (defstrand auth 2 (tc tc-0) (tk tk-0) (tgt tgt-0) (k k) (ak ak-0)
+    (n2 n2-0) (n1 n1-1) (c c) (t t-1) (as as))
+  (precedes ((1 0) (2 0)) ((2 1) (1 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak-0 n2-0 n1-0)
+  (operation encryption-test (displaced 3 1 client 1)
+    (enc tc-1 n2-0 (privk c)) (2 0))
+  (traces ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)))
+    ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
+      (recv
+        (cat (enc (enc k n2-0 c (privk as)) (pubk c)) c tgt
+          (enc ak n1-0 tk t-0 k))))
+    ((recv (cat (enc tc-0 n2-0 (privk c)) c t-1 n1-1))
+      (send
+        (cat (enc (enc k n2-0 c (privk as)) (pubk c)) c tgt-0
+          (enc ak-0 n1-1 tk-0 t-1 k)))))
+  (label 20)
+  (parent 18)
+  (unrealized (1 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton pkinit-fix1
+  (vars (tc tgt tk tgt-0 data) (k ak skey) (n2 n1 text) (c as t name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc) (tk tk) (tgt tgt-0) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak n2 n1)
+  (operation encryption-test (displaced 2 1 auth 2)
+    (enc ak-0 n1-0 tk-0 t-0 k) (0 1))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    ((recv (cat (enc tc n2 (privk c)) c t n1))
+      (send
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0
+          (enc ak n1 tk t k)))))
+  (label 21)
+  (parent 19)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((1 0)
+      ((c c) (c-0 c) (as as) (k k) (t t) (n2 n2) (n1 n1) (tc tc) (t-0 t)
+        (n2-0 n2) (n1-0 n1) (tc-0 tc) (tk tk) (tgt tgt) (ak ak))))
+  (origs (k (1 1)) (ak (1 1)) (n1 (0 0)) (n2 (0 0))))
+
+(defskeleton pkinit-fix1
+  (vars (tc tk tgt tk-0 tgt-0 data) (k ak ak-0 skey) (n2 n1 n1-0 text)
+    (c as t t-0 name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc) (tk tk-0) (tgt tgt-0) (k k) (ak ak-0)
+    (n2 n2) (n1 n1-0) (c c) (t t-0) (as as))
+  (deflistener k)
+  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak-0 n2 n1)
+  (operation encryption-test (added-listener k) (enc ak n1 tk t k)
+    (0 1))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t k))))
+    ((recv (cat (enc tc n2 (privk c)) c t-0 n1-0))
+      (send
+        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0
+          (enc ak-0 n1-0 tk-0 t-0 k)))) ((recv k) (send k)))
+  (label 22)
+  (parent 19)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pkinit-fix1
+  (vars (tc tc-0 tgt tk tgt-0 data) (k ak skey) (n2 n1 n2-0 n1-0 text)
+    (c c-0 as t t-0 name))
+  (defstrand auth 1 (tc tc) (n2 n2) (n1 n1) (c c-0) (t t))
+  (defstrand client 2 (tc tc-0) (tk tk) (tgt tgt) (k k) (ak ak)
+    (n2 n2-0) (n1 n1-0) (c c) (t t-0) (as as))
+  (defstrand auth 2 (tc tc-0) (tk tk) (tgt tgt-0) (k k) (ak ak)
+    (n2 n2-0) (n1 n1-0) (c c) (t t-0) (as as))
+  (precedes ((1 0) (2 0)) ((2 1) (1 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak n2-0 n1-0)
+  (operation encryption-test (displaced 3 2 auth 2)
+    (enc ak-0 n1-1 tk-0 t-1 k) (1 1))
+  (traces ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)))
+    ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
+      (recv
+        (cat (enc (enc k n2-0 c (privk as)) (pubk c)) c tgt
+          (enc ak n1-0 tk t-0 k))))
+    ((recv (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
+      (send
+        (cat (enc (enc k n2-0 c (privk as)) (pubk c)) c tgt-0
+          (enc ak n1-0 tk t-0 k)))))
+  (label 23)
+  (parent 20)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((0 1)
+      ((c c) (c-0 c-0) (as as) (k k) (t t) (n2 n2) (n1 n1) (tc tc)
+        (t-0 t-0) (n2-0 n2-0) (n1-0 n1-0) (tc-0 tc-0) (tk tk) (tgt tgt)
+        (ak ak))))
+  (origs (k (2 1)) (ak (2 1)) (n1-0 (1 0)) (n2-0 (1 0))))
+
+(defskeleton pkinit-fix1
+  (vars (tc tc-0 tk tgt tk-0 tgt-0 data) (k ak ak-0 skey)
+    (n2 n1 n2-0 n1-0 n1-1 text) (c c-0 as t t-0 t-1 name))
+  (defstrand auth 1 (tc tc) (n2 n2) (n1 n1) (c c-0) (t t))
+  (defstrand client 2 (tc tc-0) (tk tk) (tgt tgt) (k k) (ak ak)
+    (n2 n2-0) (n1 n1-0) (c c) (t t-0) (as as))
+  (defstrand auth 2 (tc tc-0) (tk tk-0) (tgt tgt-0) (k k) (ak ak-0)
+    (n2 n2-0) (n1 n1-1) (c c) (t t-1) (as as))
+  (deflistener k)
+  (precedes ((1 0) (2 0)) ((2 1) (3 0)) ((3 1) (1 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak-0 n2-0 n1-0)
+  (operation encryption-test (added-listener k) (enc ak n1-0 tk t-0 k)
+    (1 1))
+  (traces ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)))
+    ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
+      (recv
+        (cat (enc (enc k n2-0 c (privk as)) (pubk c)) c tgt
+          (enc ak n1-0 tk t-0 k))))
+    ((recv (cat (enc tc-0 n2-0 (privk c)) c t-1 n1-1))
+      (send
+        (cat (enc (enc k n2-0 c (privk as)) (pubk c)) c tgt-0
+          (enc ak-0 n1-1 tk-0 t-1 k)))) ((recv k) (send k)))
+  (label 24)
+  (parent 20)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pkinit-fix1
+  (vars (tc tk tgt tk-0 tgt-0 data) (ak ak-0 skey) (n2 n1 n1-0 text)
+    (c as t t-0 name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k ak-0) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc) (tk tk-0) (tgt tgt-0) (k ak-0) (ak ak-0)
+    (n2 n2) (n1 n1-0) (c c) (t t-0) (as as))
+  (deflistener ak-0)
+  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig ak-0 n2 n1)
+  (operation nonce-test (displaced 3 1 auth 2) k (2 0)
+    (enc (enc k n2 c (privk as)) (pubk c)))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat (enc (enc ak-0 n2 c (privk as)) (pubk c)) c tgt
+          (enc ak n1 tk t ak-0))))
+    ((recv (cat (enc tc n2 (privk c)) c t-0 n1-0))
+      (send
+        (cat (enc (enc ak-0 n2 c (privk as)) (pubk c)) c tgt-0
+          (enc ak-0 n1-0 tk-0 t-0 ak-0)))) ((recv ak-0) (send ak-0)))
+  (label 25)
+  (parent 22)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton pkinit-fix1
+  (vars (tc tc-0 tk tgt tk-0 tgt-0 data) (ak ak-0 skey)
+    (n2 n1 n2-0 n1-0 n1-1 text) (c c-0 as t t-0 t-1 name))
+  (defstrand auth 1 (tc tc) (n2 n2) (n1 n1) (c c-0) (t t))
+  (defstrand client 2 (tc tc-0) (tk tk) (tgt tgt) (k ak-0) (ak ak)
+    (n2 n2-0) (n1 n1-0) (c c) (t t-0) (as as))
+  (defstrand auth 2 (tc tc-0) (tk tk-0) (tgt tgt-0) (k ak-0) (ak ak-0)
+    (n2 n2-0) (n1 n1-1) (c c) (t t-1) (as as))
+  (deflistener ak-0)
+  (precedes ((1 0) (2 0)) ((2 1) (3 0)) ((3 1) (1 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig ak-0 n2-0 n1-0)
+  (operation nonce-test (displaced 4 2 auth 2) k (3 0)
+    (enc (enc k n2-0 c (privk as)) (pubk c)))
+  (traces ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)))
+    ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
+      (recv
+        (cat (enc (enc ak-0 n2-0 c (privk as)) (pubk c)) c tgt
+          (enc ak n1-0 tk t-0 ak-0))))
+    ((recv (cat (enc tc-0 n2-0 (privk c)) c t-1 n1-1))
+      (send
+        (cat (enc (enc ak-0 n2-0 c (privk as)) (pubk c)) c tgt-0
+          (enc ak-0 n1-1 tk-0 t-1 ak-0)))) ((recv ak-0) (send ak-0)))
+  (label 26)
+  (parent 24)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol pkinit-fix2 basic
+  (defrole client
+    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
+    (trace (send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat
+          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt (enc ak n1 tk t k))))
+    (uniq-orig n2 n1))
+  (defrole auth
+    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
+    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
+      (send
+        (cat
+          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt (enc ak n1 tk t k))))
+    (uniq-orig k ak))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton pkinit-fix2
+  (vars (tc tc-0 tk tgt data) (k ak skey) (n2 n1 n2-0 n1-0 text)
+    (c c-0 as t t-0 name))
+  (defstrand auth 1 (tc tc) (n2 n2) (n1 n1) (c c-0) (t t))
+  (defstrand client 2 (tc tc-0) (tk tk) (tgt tgt) (k k) (ak ak)
+    (n2 n2-0) (n1 n1-0) (c c) (t t-0) (as as))
+  (non-orig (privk c) (privk as))
+  (uniq-orig n2-0 n1-0)
+  (goals
+    (forall ((c c-0 as name) (k skey) (z z-0 strd))
+      (implies
+        (and (p "client" z 2) (p "client" "c" z c)
+          (p "client" "as" z as) (p "client" "k" z k) (p "auth" z-0 1)
+          (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as))
+          (non (privk c))) (exists ((z-1 strd)) (p "client" z-1 1)))))
+  (traces ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)))
+    ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
+      (recv
+        (cat
+          (enc
+            (enc k (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0)
+              (privk as)) (pubk c)) c tgt (enc ak n1-0 tk t-0 k)))))
+  (label 27)
+  (unrealized (1 1))
+  (origs (n2-0 (1 0)) (n1-0 (1 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton pkinit-fix2
+  (vars (tc tk tgt tk-0 tgt-0 data) (k ak ak-0 skey) (n2 n1 text)
+    (c as t name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc) (tk tk-0) (tgt tgt-0) (k k) (ak ak-0)
+    (n2 n2) (n1 n1) (c c) (t t) (as as))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak-0 n2 n1)
+  (operation encryption-test (displaced 0 2 auth 2)
+    (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (1 1))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat
+          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt (enc ak n1 tk t k))))
+    ((recv (cat (enc tc n2 (privk c)) c t n1))
+      (send
+        (cat
+          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k)))))
+  (label 28)
+  (parent 27)
+  (unrealized (0 1))
+  (origs (k (1 1)) (ak-0 (1 1)) (n2 (0 0)) (n1 (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton pkinit-fix2
+  (vars (tc tc-0 tk tgt tk-0 tgt-0 data) (k ak ak-0 skey)
+    (n2 n1 n2-0 n1-0 text) (c c-0 as t t-0 name))
+  (defstrand auth 1 (tc tc) (n2 n2) (n1 n1) (c c-0) (t t))
+  (defstrand client 2 (tc tc-0) (tk tk) (tgt tgt) (k k) (ak ak)
+    (n2 n2-0) (n1 n1-0) (c c) (t t-0) (as as))
+  (defstrand auth 2 (tc tc-0) (tk tk-0) (tgt tgt-0) (k k) (ak ak-0)
+    (n2 n2-0) (n1 n1-0) (c c) (t t-0) (as as))
+  (precedes ((1 0) (2 0)) ((2 1) (1 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak-0 n2-0 n1-0)
+  (operation encryption-test (added-strand auth 2)
+    (enc k (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0) (privk as))
+    (1 1))
+  (traces ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)))
+    ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
+      (recv
+        (cat
+          (enc
+            (enc k (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0)
+              (privk as)) (pubk c)) c tgt (enc ak n1-0 tk t-0 k))))
+    ((recv (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
+      (send
+        (cat
+          (enc
+            (enc k (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0)
+              (privk as)) (pubk c)) c tgt-0
+          (enc ak-0 n1-0 tk-0 t-0 k)))))
+  (label 29)
+  (parent 27)
+  (unrealized (1 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton pkinit-fix2
+  (vars (tc tgt tk tgt-0 data) (k ak skey) (n2 n1 text) (c as t name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc) (tk tk) (tgt tgt-0) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak n2 n1)
+  (operation encryption-test (displaced 2 1 auth 2)
+    (enc ak-0 n1 tk-0 t k) (0 1))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat
+          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt (enc ak n1 tk t k))))
+    ((recv (cat (enc tc n2 (privk c)) c t n1))
+      (send
+        (cat
+          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt-0 (enc ak n1 tk t k)))))
+  (label 30)
+  (parent 28)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((1 0)
+      ((c c) (c-0 c) (as as) (k k) (t t) (n2 n2) (n1 n1) (tc tc) (t-0 t)
+        (n2-0 n2) (n1-0 n1) (tc-0 tc) (tk tk) (tgt tgt) (ak ak))))
+  (origs (k (1 1)) (ak (1 1)) (n2 (0 0)) (n1 (0 0))))
+
+(defskeleton pkinit-fix2
+  (vars (tc tk tgt tk-0 tgt-0 data) (k ak ak-0 skey) (n2 n1 text)
+    (c as t name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc) (tk tk-0) (tgt tgt-0) (k k) (ak ak-0)
+    (n2 n2) (n1 n1) (c c) (t t) (as as))
+  (deflistener k)
+  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak-0 n2 n1)
+  (operation encryption-test (added-listener k) (enc ak n1 tk t k)
+    (0 1))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat
+          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt (enc ak n1 tk t k))))
+    ((recv (cat (enc tc n2 (privk c)) c t n1))
+      (send
+        (cat
+          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k))))
+    ((recv k) (send k)))
+  (label 31)
+  (parent 28)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pkinit-fix2
+  (vars (tc tc-0 tgt tk tgt-0 data) (k ak skey) (n2 n1 n2-0 n1-0 text)
+    (c c-0 as t t-0 name))
+  (defstrand auth 1 (tc tc) (n2 n2) (n1 n1) (c c-0) (t t))
+  (defstrand client 2 (tc tc-0) (tk tk) (tgt tgt) (k k) (ak ak)
+    (n2 n2-0) (n1 n1-0) (c c) (t t-0) (as as))
+  (defstrand auth 2 (tc tc-0) (tk tk) (tgt tgt-0) (k k) (ak ak)
+    (n2 n2-0) (n1 n1-0) (c c) (t t-0) (as as))
+  (precedes ((1 0) (2 0)) ((2 1) (1 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak n2-0 n1-0)
+  (operation encryption-test (displaced 3 2 auth 2)
+    (enc ak-0 n1-0 tk-0 t-0 k) (1 1))
+  (traces ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)))
+    ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
+      (recv
+        (cat
+          (enc
+            (enc k (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0)
+              (privk as)) (pubk c)) c tgt (enc ak n1-0 tk t-0 k))))
+    ((recv (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
+      (send
+        (cat
+          (enc
+            (enc k (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0)
+              (privk as)) (pubk c)) c tgt-0 (enc ak n1-0 tk t-0 k)))))
+  (label 32)
+  (parent 29)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((0 1)
+      ((c c) (c-0 c-0) (as as) (k k) (t t) (n2 n2) (n1 n1) (tc tc)
+        (t-0 t-0) (n2-0 n2-0) (n1-0 n1-0) (tc-0 tc-0) (tk tk) (tgt tgt)
+        (ak ak))))
+  (origs (k (2 1)) (ak (2 1)) (n2-0 (1 0)) (n1-0 (1 0))))
+
+(defskeleton pkinit-fix2
+  (vars (tc tc-0 tk tgt tk-0 tgt-0 data) (k ak ak-0 skey)
+    (n2 n1 n2-0 n1-0 text) (c c-0 as t t-0 name))
+  (defstrand auth 1 (tc tc) (n2 n2) (n1 n1) (c c-0) (t t))
+  (defstrand client 2 (tc tc-0) (tk tk) (tgt tgt) (k k) (ak ak)
+    (n2 n2-0) (n1 n1-0) (c c) (t t-0) (as as))
+  (defstrand auth 2 (tc tc-0) (tk tk-0) (tgt tgt-0) (k k) (ak ak-0)
+    (n2 n2-0) (n1 n1-0) (c c) (t t-0) (as as))
+  (deflistener k)
+  (precedes ((1 0) (2 0)) ((2 1) (3 0)) ((3 1) (1 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig k ak-0 n2-0 n1-0)
+  (operation encryption-test (added-listener k) (enc ak n1-0 tk t-0 k)
+    (1 1))
+  (traces ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)))
+    ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
+      (recv
+        (cat
+          (enc
+            (enc k (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0)
+              (privk as)) (pubk c)) c tgt (enc ak n1-0 tk t-0 k))))
+    ((recv (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
+      (send
+        (cat
+          (enc
+            (enc k (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0)
+              (privk as)) (pubk c)) c tgt-0
+          (enc ak-0 n1-0 tk-0 t-0 k)))) ((recv k) (send k)))
+  (label 33)
+  (parent 29)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pkinit-fix2
+  (vars (tc tk tgt tk-0 tgt-0 data) (ak ak-0 skey) (n2 n1 text)
+    (c as t name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k ak-0) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc) (tk tk-0) (tgt tgt-0) (k ak-0) (ak ak-0)
+    (n2 n2) (n1 n1) (c c) (t t) (as as))
+  (deflistener ak-0)
+  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig ak-0 n2 n1)
+  (operation nonce-test (displaced 3 1 auth 2) k (2 0)
+    (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
+      (pubk c)))
+  (traces
+    ((send (cat (enc tc n2 (privk c)) c t n1))
+      (recv
+        (cat
+          (enc (enc ak-0 (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt (enc ak n1 tk t ak-0))))
+    ((recv (cat (enc tc n2 (privk c)) c t n1))
+      (send
+        (cat
+          (enc (enc ak-0 (hash (enc tc n2 (privk c)) c t n1) (privk as))
+            (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t ak-0))))
+    ((recv ak-0) (send ak-0)))
+  (label 34)
+  (parent 31)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton pkinit-fix2
+  (vars (tc tc-0 tk tgt tk-0 tgt-0 data) (ak ak-0 skey)
+    (n2 n1 n2-0 n1-0 text) (c c-0 as t t-0 name))
+  (defstrand auth 1 (tc tc) (n2 n2) (n1 n1) (c c-0) (t t))
+  (defstrand client 2 (tc tc-0) (tk tk) (tgt tgt) (k ak-0) (ak ak)
+    (n2 n2-0) (n1 n1-0) (c c) (t t-0) (as as))
+  (defstrand auth 2 (tc tc-0) (tk tk-0) (tgt tgt-0) (k ak-0) (ak ak-0)
+    (n2 n2-0) (n1 n1-0) (c c) (t t-0) (as as))
+  (deflistener ak-0)
+  (precedes ((1 0) (2 0)) ((2 1) (3 0)) ((3 1) (1 1)))
+  (non-orig (privk c) (privk as))
+  (uniq-orig ak-0 n2-0 n1-0)
+  (operation nonce-test (displaced 4 2 auth 2) k (3 0)
+    (enc (enc k (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0) (privk as))
+      (pubk c)))
+  (traces ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1)))
+    ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
+      (recv
+        (cat
+          (enc
+            (enc ak-0 (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0)
+              (privk as)) (pubk c)) c tgt (enc ak n1-0 tk t-0 ak-0))))
+    ((recv (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
+      (send
+        (cat
+          (enc
+            (enc ak-0 (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0)
+              (privk as)) (pubk c)) c tgt-0
+          (enc ak-0 n1-0 tk-0 t-0 ak-0)))) ((recv ak-0) (send ak-0)))
+  (label 35)
+  (parent 33)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/doc/src/cpsa4manual/examples/plaindh.scm b/doc/src/cpsa4manual/examples/plaindh.scm
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/plaindh.scm
@@ -0,0 +1,25 @@
+(herald "Plain diffie-hellman protocol with challenge-response" (algebra diffie-hellman)
+; (limit 1)
+)
+
+(defprotocol plaindh diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (n text))
+    (trace (send (exp (gen) x))
+           (recv h)
+           (send (enc n (exp h x)))
+           (recv n))
+    (uniq-orig n)
+    (uniq-gen x))
+  (defrole resp
+    (vars (y rndx) (h base) (n text))
+    (trace (recv h)
+           (send (exp (gen) y))
+           (recv (enc n (exp h y)))
+           (send n))
+    (uniq-gen y))
+  (comment "Diffie-hellman key exchange followed by an encryption"))
+
+(defskeleton plaindh
+  (vars )
+  (defstrand init 4))
diff --git a/doc/src/cpsa4manual/examples/plaindh.tst b/doc/src/cpsa4manual/examples/plaindh.tst
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/plaindh.tst
@@ -0,0 +1,2957 @@
+(herald "Plain diffie-hellman protocol with challenge-response"
+  (algebra diffie-hellman))
+
+(comment "CPSA 4.4.0")
+(comment "All input read from plaindh.scm")
+
+(defprotocol plaindh diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (n text))
+    (trace (send (exp (gen) x)) (recv h) (send (enc n (exp h x)))
+      (recv n))
+    (uniq-orig n)
+    (uniq-gen x))
+  (defrole resp
+    (vars (y rndx) (h base) (n text))
+    (trace (recv h) (send (exp (gen) y)) (recv (enc n (exp h y)))
+      (send n))
+    (uniq-gen y))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Diffie-hellman key exchange followed by an encryption"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x rndx))
+  (defstrand init 4 (n n) (h h) (x x))
+  (uniq-orig n)
+  (uniq-gen x)
+  (traces
+    ((send (exp (gen) x)) (recv h) (send (enc n (exp h x))) (recv n)))
+  (label 0)
+  (unrealized (0 3))
+  (origs (n (0 2)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y rndx))
+  (defstrand init 4 (n n) (h h) (x x))
+  (defstrand resp 4 (n n) (h (exp h (mul x (rec y)))) (y y))
+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 3) (0 3)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (operation nonce-test (added-strand resp 4) n (0 3) (enc n (exp h x)))
+  (traces
+    ((send (exp (gen) x)) (recv h) (send (enc n (exp h x))) (recv n))
+    ((recv (exp h (mul x (rec y)))) (send (exp (gen) y))
+      (recv (enc n (exp h x))) (send n)))
+  (label 1)
+  (parent 0)
+  (unrealized (1 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x rndx))
+  (defstrand init 4 (n n) (h h) (x x))
+  (deflistener (exp h x))
+  (precedes ((0 0) (1 0)) ((1 1) (0 3)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (operation nonce-test (added-listener (exp h x)) n (0 3)
+    (enc n (exp h x)))
+  (traces
+    ((send (exp (gen) x)) (recv h) (send (enc n (exp h x))) (recv n))
+    ((recv (exp h x)) (send (exp h x))))
+  (label 2)
+  (parent 0)
+  (unrealized (1 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (y x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))
+  (uniq-orig n)
+  (uniq-gen y x)
+  (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) y))
+      (send (enc n (exp (gen) (mul y x)))) (recv n))
+    ((recv (exp (gen) x)) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul y x)))) (send n)))
+  (label 3)
+  (parent 1)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))
+  (defstrand resp 4 (n n) (h (gen)) (y y))
+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (operation nonce-test (contracted (h (exp (gen) (mul (rec x) y))))
+    (gen) (1 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))
+      (send (enc n (exp (gen) y))) (recv n))
+    ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y)))
+      (send n)))
+  (label 4)
+  (parent 1)
+  (unrealized (0 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x y x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))
+    ((2 0) (1 0)))
+  (uniq-orig n)
+  (uniq-gen x y x-0)
+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))
+      (send (enc n (exp (gen) (mul y x-0)))) (recv n))
+    ((recv (exp (gen) x-0)) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul y x-0)))) (send n))
+    ((send (exp (gen) x-0))))
+  (label 5)
+  (parent 1)
+  (unrealized (0 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y y-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))
+  (defstrand resp 2 (h h) (y y-0))
+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))
+    ((2 1) (1 0)))
+  (uniq-orig n)
+  (uniq-gen x y y-0)
+  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))
+      (send (enc n (exp (gen) (mul y y-0)))) (recv n))
+    ((recv (exp (gen) y-0)) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul y y-0)))) (send n))
+    ((recv h) (send (exp (gen) y-0))))
+  (label 6)
+  (parent 1)
+  (unrealized (0 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y rndx) (w expt))
+  (defstrand init 4 (n n) (h h) (x x))
+  (defstrand resp 4 (n n) (h (exp h (mul x (rec y)))) (y y))
+  (deflistener (cat (exp h (mul x (rec y) (rec w))) w))
+  (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 3) (0 3)) ((2 1) (1 0)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation nonce-test
+    (added-listener (cat (exp h (mul x (rec y) (rec w))) w))
+    (exp h (mul x (rec y))) (1 0))
+  (traces
+    ((send (exp (gen) x)) (recv h) (send (enc n (exp h x))) (recv n))
+    ((recv (exp h (mul x (rec y)))) (send (exp (gen) y))
+      (recv (enc n (exp h x))) (send n))
+    ((recv (cat (exp h (mul x (rec y) (rec w))) w))
+      (send (cat (exp h (mul x (rec y) (rec w))) w))))
+  (label 7)
+  (parent 1)
+  (unrealized (2 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx))
+  (defstrand init 4 (n n) (h (gen)) (x x))
+  (deflistener (exp (gen) x))
+  (precedes ((0 0) (1 0)) ((1 1) (0 3)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))
+  (traces
+    ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x)))
+      (recv n)) ((recv (exp (gen) x)) (send (exp (gen) x))))
+  (label 8)
+  (parent 2)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))
+  (deflistener (gen))
+  (precedes ((0 0) (1 0)) ((1 1) (0 3)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (operation nonce-test (contracted (h (exp (gen) (rec x)))) (gen)
+    (1 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (rec x)))
+      (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen))))
+  (label 9)
+  (parent 2)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))
+  (deflistener (exp (gen) x-0))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 3)) ((2 0) (0 1)) ((2 0) (1 0)))
+  (uniq-orig n)
+  (uniq-gen x x-0)
+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))
+      (send (enc n (exp (gen) x-0))) (recv n))
+    ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))
+    ((send (exp (gen) x-0))))
+  (label 10)
+  (parent 2)
+  (unrealized (0 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))
+  (deflistener (exp (gen) y))
+  (defstrand resp 2 (h h) (y y))
+  (precedes ((0 0) (1 0)) ((1 1) (0 3)) ((2 1) (0 1)) ((2 1) (1 0)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (operation nonce-test (added-strand resp 2) (exp (gen) y) (1 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))
+      (send (enc n (exp (gen) y))) (recv n))
+    ((recv (exp (gen) y)) (send (exp (gen) y)))
+    ((recv h) (send (exp (gen) y))))
+  (label 11)
+  (parent 2)
+  (unrealized (0 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x rndx) (w expt))
+  (defstrand init 4 (n n) (h h) (x x))
+  (deflistener (exp h x))
+  (deflistener (cat (exp h (mul x (rec w))) w))
+  (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp h (mul x (rec w))) w))
+    (exp h x) (1 0))
+  (traces
+    ((send (exp (gen) x)) (recv h) (send (enc n (exp h x))) (recv n))
+    ((recv (exp h x)) (send (exp h x)))
+    ((recv (cat (exp h (mul x (rec w))) w))
+      (send (cat (exp h (mul x (rec w))) w))))
+  (label 12)
+  (parent 2)
+  (unrealized (2 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (y x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) y)) (x x))
+  (uniq-orig n)
+  (uniq-gen x)
+  (operation generalization deleted (1 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) y))
+      (send (enc n (exp (gen) (mul y x)))) (recv n)))
+  (label 13)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((x x) (h (exp (gen) y)) (n n))))
+  (origs (n (0 2))))
+
+(defskeleton plaindh
+  (vars (n text) (x y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))
+  (defstrand resp 4 (n n) (h (gen)) (y y))
+  (deflistener (cat (exp (gen) (rec x)) y))
+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 3) (0 3))
+    ((2 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (operation nonce-test (added-listener (cat (exp (gen) (rec x)) y))
+    (exp (gen) (mul (rec x) y)) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))
+      (send (enc n (exp (gen) y))) (recv n))
+    ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y)))
+      (send n))
+    ((recv (cat (exp (gen) (rec x)) y))
+      (send (cat (exp (gen) (rec x)) y))))
+  (label 14)
+  (parent 4)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))
+  (defstrand resp 4 (n n) (h (gen)) (y y))
+  (deflistener (cat (exp (gen) y) x))
+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((1 3) (0 3))
+    ((2 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (operation nonce-test (added-listener (cat (exp (gen) y) x))
+    (exp (gen) (mul (rec x) y)) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))
+      (send (enc n (exp (gen) y))) (recv n))
+    ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y)))
+      (send n))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
+  (label 15)
+  (parent 4)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x y x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))
+  (defstrand init 1 (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) x-0))
+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))
+    ((2 0) (1 0)) ((3 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x y x-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) x-0))
+    (exp (gen) (mul (rec x) y x-0)) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))
+      (send (enc n (exp (gen) (mul y x-0)))) (recv n))
+    ((recv (exp (gen) x-0)) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul y x-0)))) (send n))
+    ((send (exp (gen) x-0)))
+    ((recv (cat (exp (gen) (mul (rec x) y)) x-0))
+      (send (cat (exp (gen) (mul (rec x) y)) x-0))))
+  (label 16)
+  (parent 5)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x y x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))
+  (defstrand init 1 (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) x-0)) y))
+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))
+    ((2 0) (1 0)) ((3 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x y x-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) x-0)) y))
+    (exp (gen) (mul (rec x) y x-0)) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))
+      (send (enc n (exp (gen) (mul y x-0)))) (recv n))
+    ((recv (exp (gen) x-0)) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul y x-0)))) (send n))
+    ((send (exp (gen) x-0)))
+    ((recv (cat (exp (gen) (mul (rec x) x-0)) y))
+      (send (cat (exp (gen) (mul (rec x) x-0)) y))))
+  (label 17)
+  (parent 5)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x y x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y x-0))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))
+  (defstrand init 1 (x x-0))
+  (deflistener (cat (exp (gen) (mul y x-0)) x))
+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))
+    ((2 0) (1 0)) ((3 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x y x-0)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y x-0)) x))
+    (exp (gen) (mul (rec x) y x-0)) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y x-0)))
+      (send (enc n (exp (gen) (mul y x-0)))) (recv n))
+    ((recv (exp (gen) x-0)) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul y x-0)))) (send n))
+    ((send (exp (gen) x-0)))
+    ((recv (cat (exp (gen) (mul y x-0)) x))
+      (send (cat (exp (gen) (mul y x-0)) x))))
+  (label 18)
+  (parent 5)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y y-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))
+  (defstrand resp 2 (h h) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) y-0))
+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))
+    ((2 1) (1 0)) ((3 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x y y-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) y-0))
+    (exp (gen) (mul (rec x) y y-0)) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))
+      (send (enc n (exp (gen) (mul y y-0)))) (recv n))
+    ((recv (exp (gen) y-0)) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul y y-0)))) (send n))
+    ((recv h) (send (exp (gen) y-0)))
+    ((recv (cat (exp (gen) (mul (rec x) y)) y-0))
+      (send (cat (exp (gen) (mul (rec x) y)) y-0))))
+  (label 19)
+  (parent 6)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y y-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))
+  (defstrand resp 2 (h h) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y-0)) y))
+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))
+    ((2 1) (1 0)) ((3 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x y y-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y-0)) y))
+    (exp (gen) (mul (rec x) y y-0)) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))
+      (send (enc n (exp (gen) (mul y y-0)))) (recv n))
+    ((recv (exp (gen) y-0)) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul y y-0)))) (send n))
+    ((recv h) (send (exp (gen) y-0)))
+    ((recv (cat (exp (gen) (mul (rec x) y-0)) y))
+      (send (cat (exp (gen) (mul (rec x) y-0)) y))))
+  (label 20)
+  (parent 6)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y y-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y y-0))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))
+  (defstrand resp 2 (h h) (y y-0))
+  (deflistener (cat (exp (gen) (mul y y-0)) x))
+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))
+    ((2 1) (1 0)) ((3 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x y y-0)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y y-0)) x))
+    (exp (gen) (mul (rec x) y y-0)) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y y-0)))
+      (send (enc n (exp (gen) (mul y y-0)))) (recv n))
+    ((recv (exp (gen) y-0)) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul y y-0)))) (send n))
+    ((recv h) (send (exp (gen) y-0)))
+    ((recv (cat (exp (gen) (mul y y-0)) x))
+      (send (cat (exp (gen) (mul y y-0)) x))))
+  (label 21)
+  (parent 6)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (y rndx) (w expt) (x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul y w))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) (mul w x))) (y y))
+  (deflistener (cat (exp (gen) x) w))
+  (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))
+    ((2 1) (1 0)))
+  (uniq-orig n)
+  (uniq-gen y x)
+  (precur (2 0))
+  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul y w)))
+      (send (enc n (exp (gen) (mul y w x)))) (recv n))
+    ((recv (exp (gen) (mul w x))) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul y w x)))) (send n))
+    ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))
+  (label 22)
+  (parent 7)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x y rndx) (w expt))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y w))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) w)) (y y))
+  (deflistener (cat (gen) w))
+  (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))
+    ((2 1) (1 0)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation nonce-test (contracted (h (exp (gen) (mul (rec x) y w))))
+    (gen) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w)))
+      (send (enc n (exp (gen) (mul y w)))) (recv n))
+    ((recv (exp (gen) w)) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul y w)))) (send n))
+    ((recv (cat (gen) w)) (send (cat (gen) w))))
+  (label 23)
+  (parent 7)
+  (unrealized (0 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x y rndx) (w expt) (x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y w x-0))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) (mul w x-0))) (y y))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))
+    ((2 1) (1 0)) ((3 0) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x y x-0)
+  (precur (2 0))
+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w x-0)))
+      (send (enc n (exp (gen) (mul y w x-0)))) (recv n))
+    ((recv (exp (gen) (mul w x-0))) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul y w x-0)))) (send n))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((send (exp (gen) x-0))))
+  (label 24)
+  (parent 7)
+  (unrealized (0 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y rndx) (w expt) (y-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y w y-0))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) (mul w y-0))) (y y))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 2 (h h) (y y-0))
+  (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))
+    ((2 1) (1 0)) ((3 1) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x y y-0)
+  (precur (2 0))
+  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w y-0)))
+      (send (enc n (exp (gen) (mul y w y-0)))) (recv n))
+    ((recv (exp (gen) (mul w y-0))) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul y w y-0)))) (send n))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((recv h) (send (exp (gen) y-0))))
+  (label 25)
+  (parent 7)
+  (unrealized (0 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx))
+  (defstrand init 4 (n n) (h (gen)) (x x))
+  (uniq-orig n)
+  (uniq-gen x)
+  (operation generalization deleted (1 0))
+  (traces
+    ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x)))
+      (recv n)))
+  (label 26)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps ((0) ((x x) (h (gen)) (n n))))
+  (origs (n (0 2))))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx) (w expt))
+  (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))
+  (deflistener (gen))
+  (deflistener (cat (exp (gen) (mul (rec x) (rec w))) w))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) (rec w))) w))
+    (exp (gen) (rec x)) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (rec x)))
+      (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))
+    ((recv (cat (exp (gen) (mul (rec x) (rec w))) w))
+      (send (cat (exp (gen) (mul (rec x) (rec w))) w))))
+  (label 27)
+  (parent 9)
+  (unrealized (2 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))
+  (deflistener (exp (gen) x-0))
+  (defstrand init 1 (x x-0))
+  (deflistener (cat (exp (gen) (rec x)) x-0))
+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 0) (1 0))
+    ((2 0) (3 0)) ((3 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x x-0)
+  (operation nonce-test (added-listener (cat (exp (gen) (rec x)) x-0))
+    (exp (gen) (mul (rec x) x-0)) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))
+      (send (enc n (exp (gen) x-0))) (recv n))
+    ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))
+    ((send (exp (gen) x-0)))
+    ((recv (cat (exp (gen) (rec x)) x-0))
+      (send (cat (exp (gen) (rec x)) x-0))))
+  (label 28)
+  (parent 10)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))
+  (deflistener (exp (gen) x-0))
+  (defstrand init 1 (x x-0))
+  (deflistener (cat (exp (gen) x-0) x))
+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 0) (1 0))
+    ((2 0) (3 0)) ((3 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x x-0)
+  (operation nonce-test (added-listener (cat (exp (gen) x-0) x))
+    (exp (gen) (mul (rec x) x-0)) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))
+      (send (enc n (exp (gen) x-0))) (recv n))
+    ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))
+    ((send (exp (gen) x-0)))
+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x))))
+  (label 29)
+  (parent 10)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))
+  (deflistener (exp (gen) y))
+  (defstrand resp 2 (h h) (y y))
+  (deflistener (cat (exp (gen) (rec x)) y))
+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((3 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (operation nonce-test (added-listener (cat (exp (gen) (rec x)) y))
+    (exp (gen) (mul (rec x) y)) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))
+      (send (enc n (exp (gen) y))) (recv n))
+    ((recv (exp (gen) y)) (send (exp (gen) y)))
+    ((recv h) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) (rec x)) y))
+      (send (cat (exp (gen) (rec x)) y))))
+  (label 30)
+  (parent 11)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))
+  (deflistener (exp (gen) y))
+  (defstrand resp 2 (h h) (y y))
+  (deflistener (cat (exp (gen) y) x))
+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((3 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (operation nonce-test (added-listener (cat (exp (gen) y) x))
+    (exp (gen) (mul (rec x) y)) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))
+      (send (enc n (exp (gen) y))) (recv n))
+    ((recv (exp (gen) y)) (send (exp (gen) y)))
+    ((recv h) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
+  (label 31)
+  (parent 11)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (w expt) (x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) w)) (x x))
+  (deflistener (exp (gen) (mul w x)))
+  (deflistener (cat (exp (gen) x) w))
+  (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) w))
+      (send (enc n (exp (gen) (mul w x)))) (recv n))
+    ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))
+    ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))
+  (label 32)
+  (parent 12)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx) (w expt))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) w))) (x x))
+  (deflistener (exp (gen) w))
+  (deflistener (cat (gen) w))
+  (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (contracted (h (exp (gen) (mul (rec x) w))))
+    (gen) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w)))
+      (send (enc n (exp (gen) w))) (recv n))
+    ((recv (exp (gen) w)) (send (exp (gen) w)))
+    ((recv (cat (gen) w)) (send (cat (gen) w))))
+  (label 33)
+  (parent 12)
+  (unrealized (0 1))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx) (w expt) (x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) w x-0))) (x x))
+  (deflistener (exp (gen) (mul w x-0)))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))
+    ((3 0) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w x-0)))
+      (send (enc n (exp (gen) (mul w x-0)))) (recv n))
+    ((recv (exp (gen) (mul w x-0))) (send (exp (gen) (mul w x-0))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((send (exp (gen) x-0))))
+  (label 34)
+  (parent 12)
+  (unrealized (0 1))
+  (comment "6 in cohort - 6 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x rndx) (w expt) (y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) w y))) (x x))
+  (deflistener (exp (gen) (mul w y)))
+  (deflistener (cat (exp (gen) y) w))
+  (defstrand resp 2 (h h) (y y))
+  (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))
+    ((3 1) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation nonce-test (added-strand resp 2) (exp (gen) y) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w y)))
+      (send (enc n (exp (gen) (mul w y)))) (recv n))
+    ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
+    ((recv h) (send (exp (gen) y))))
+  (label 35)
+  (parent 12)
+  (unrealized (0 1))
+  (comment "6 in cohort - 6 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (y rndx) (w expt) (x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul y w))) (x x))
+  (deflistener (cat (exp (gen) x) w))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (1 0))
+  (operation generalization deleted (1 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul y w)))
+      (send (enc n (exp (gen) (mul y w x)))) (recv n))
+    ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))
+  (label 36)
+  (parent 22)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) x)) (y y))
+  (deflistener (cat (gen) x))
+  (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))
+    ((2 1) (1 0)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-0) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) y))
+      (send (enc n (exp (gen) (mul x y)))) (recv n))
+    ((recv (exp (gen) x)) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul x y)))) (send n))
+    ((recv (cat (gen) x)) (send (cat (gen) x))))
+  (label 37)
+  (parent 23)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x y rndx) (w w-0 expt))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y w))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) w)) (y y))
+  (deflistener (cat (gen) w))
+  (deflistener (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))
+  (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))
+    ((2 1) (1 0)) ((3 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (precur (2 0) (3 0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w)) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w)))
+      (send (enc n (exp (gen) (mul y w)))) (recv n))
+    ((recv (exp (gen) w)) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul y w)))) (send n))
+    ((recv (cat (gen) w)) (send (cat (gen) w)))
+    ((recv (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))))
+  (label 38)
+  (parent 23)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x x-0 y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) x)) (y y))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))
+    ((2 1) (1 0)) ((3 0) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x x-0 y)
+  (precur (2 0))
+  (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) y))
+      (send (enc n (exp (gen) (mul x y)))) (recv n))
+    ((recv (exp (gen) x)) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul x y)))) (send n))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
+    ((send (exp (gen) x-0))))
+  (label 39)
+  (parent 24)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x y rndx) (w expt) (x-0 rndx) (w-0 expt))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y w x-0))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) (mul w x-0))) (y y))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 1 (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+  (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))
+    ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x y x-0)
+  (precur (2 0) (4 0))
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w x-0)) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w x-0)))
+      (send (enc n (exp (gen) (mul y w x-0)))) (recv n))
+    ((recv (exp (gen) (mul w x-0))) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul y w x-0)))) (send n))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((send (exp (gen) x-0)))
+    ((recv (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))))
+  (label 40)
+  (parent 24)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y y-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) y-0)) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) x)) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul x (rec y))))
+  (defstrand resp 2 (h h) (y y))
+  (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3))
+    ((2 1) (1 0)) ((3 1) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x y y-0)
+  (precur (2 0))
+  (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-1) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) y-0))
+      (send (enc n (exp (gen) (mul x y-0)))) (recv n))
+    ((recv (exp (gen) x)) (send (exp (gen) y-0))
+      (recv (enc n (exp (gen) (mul x y-0)))) (send n))
+    ((recv (cat (exp (gen) y) (mul x (rec y))))
+      (send (cat (exp (gen) y) (mul x (rec y)))))
+    ((recv h) (send (exp (gen) y))))
+  (label 41)
+  (parent 25)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y rndx) (w expt) (y-0 rndx) (w-0 expt))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y w y-0))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) (mul w y-0))) (y y))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 2 (h h) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+  (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))
+    ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x y y-0)
+  (precur (2 0) (4 0))
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w y-0)) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y w y-0)))
+      (send (enc n (exp (gen) (mul y w y-0)))) (recv n))
+    ((recv (exp (gen) (mul w y-0))) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul y w y-0)))) (send n))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((recv h) (send (exp (gen) y-0)))
+    ((recv (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))))
+  (label 42)
+  (parent 25)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))
+  (deflistener (gen))
+  (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (rec x)))
+      (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))
+    ((recv (cat (exp (gen) x) (mul (rec x) (rec x))))
+      (send (cat (exp (gen) x) (mul (rec x) (rec x))))))
+  (label 43)
+  (parent 27)
+  (unrealized (0 1) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))
+  (deflistener (gen))
+  (deflistener (cat (gen) (rec x)))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (contracted (x-0 x) (w (rec x))) (gen) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (rec x)))
+      (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))
+    ((recv (cat (gen) (rec x))) (send (cat (gen) (rec x)))))
+  (label 44)
+  (parent 27)
+  (unrealized (0 1) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))
+  (deflistener (gen))
+  (deflistener (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (0 1))
+    ((3 0) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (rec x)))
+      (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))
+    ((recv (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul (rec x) (rec x-0)))))
+    ((send (exp (gen) x-0))))
+  (label 45)
+  (parent 27)
+  (unrealized (0 1) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))
+  (deflistener (gen))
+  (deflistener (cat (exp (gen) y) (mul (rec x) (rec y))))
+  (defstrand resp 2 (h h) (y y))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (0 1))
+    ((3 1) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation nonce-test (added-strand resp 2) (exp (gen) y) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (rec x)))
+      (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))
+    ((recv (cat (exp (gen) y) (mul (rec x) (rec y))))
+      (send (cat (exp (gen) y) (mul (rec x) (rec y)))))
+    ((recv h) (send (exp (gen) y))))
+  (label 46)
+  (parent 27)
+  (unrealized (0 1) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (w expt) (x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) w)) (x x))
+  (deflistener (cat (exp (gen) x) w))
+  (precedes ((0 0) (1 0)) ((1 1) (0 3)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (1 0))
+  (operation generalization deleted (1 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) w))
+      (send (enc n (exp (gen) (mul w x)))) (recv n))
+    ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))
+  (label 47)
+  (parent 32)
+  (seen 65)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) x)) (x x))
+  (deflistener (exp (gen) (mul x x)))
+  (deflistener (cat (gen) (mul x x)))
+  (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) x))
+      (send (enc n (exp (gen) (mul x x)))) (recv n))
+    ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))
+    ((recv (cat (gen) (mul x x))) (send (cat (gen) (mul x x)))))
+  (label 48)
+  (parent 33)
+  (unrealized (1 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx))
+  (defstrand init 4 (n n) (h (gen)) (x x))
+  (deflistener (exp (gen) x))
+  (deflistener (cat (gen) x))
+  (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (contracted (x-0 x) (w x)) (gen) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x)))
+      (recv n)) ((recv (exp (gen) x)) (send (exp (gen) x)))
+    ((recv (cat (gen) x)) (send (cat (gen) x))))
+  (label 49)
+  (parent 33)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (gen) (mul x x-0)))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))
+    ((3 0) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) x-0))
+      (send (enc n (exp (gen) (mul x x-0)))) (recv n))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (gen) (mul x x-0))) (send (cat (gen) (mul x x-0))))
+    ((send (exp (gen) x-0))))
+  (label 50)
+  (parent 33)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (gen) (mul x y)))
+  (defstrand resp 2 (h h) (y y))
+  (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))
+    ((3 1) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation nonce-test (added-strand resp 2) (exp (gen) y) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) y))
+      (send (enc n (exp (gen) (mul x y)))) (recv n))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (gen) (mul x y))) (send (cat (gen) (mul x y))))
+    ((recv h) (send (exp (gen) y))))
+  (label 51)
+  (parent 33)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx) (w w-0 expt))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) w))) (x x))
+  (deflistener (exp (gen) w))
+  (deflistener (cat (gen) w))
+  (deflistener (cat (exp (gen) (mul (rec x) w (rec w-0))) w-0))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (2 0) (3 0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) w (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) w)) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w)))
+      (send (enc n (exp (gen) w))) (recv n))
+    ((recv (exp (gen) w)) (send (exp (gen) w)))
+    ((recv (cat (gen) w)) (send (cat (gen) w)))
+    ((recv (cat (exp (gen) (mul (rec x) w (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) w (rec w-0))) w-0))))
+  (label 52)
+  (parent 33)
+  (unrealized (3 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x-0) x))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))
+    ((3 0) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (displaced 4 3 init 1) (exp (gen) x-1) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) x-0))
+      (send (enc n (exp (gen) (mul x x-0)))) (recv n))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x)))
+    ((send (exp (gen) x-0))))
+  (label 53)
+  (parent 34)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) x-0)) (x x-0))
+  (deflistener (exp (gen) (mul x-0 x-0)))
+  (deflistener (cat (exp (gen) x) (mul (rec x) x-0 x-0)))
+  (defstrand init 1 (x x))
+  (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))
+    ((3 0) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-1) (0 1))
+  (traces
+    ((send (exp (gen) x-0)) (recv (exp (gen) x-0))
+      (send (enc n (exp (gen) (mul x-0 x-0)))) (recv n))
+    ((recv (exp (gen) (mul x-0 x-0))) (send (exp (gen) (mul x-0 x-0))))
+    ((recv (cat (exp (gen) x) (mul (rec x) x-0 x-0)))
+      (send (cat (exp (gen) x) (mul (rec x) x-0 x-0))))
+    ((send (exp (gen) x))))
+  (label 54)
+  (parent 34)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x x-0 rndx))
+  (defstrand init 4 (n n) (h (gen)) (x x))
+  (deflistener (exp (gen) x))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))
+    ((3 0) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test
+    (contracted (x-1 x) (w (mul x (rec x-0))) (x-2 x-0)) (gen) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x)))
+      (recv n)) ((recv (exp (gen) x)) (send (exp (gen) x)))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
+    ((send (exp (gen) x-0))))
+  (label 55)
+  (parent 34)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x x-0 x-1 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) x-1)) (x x))
+  (deflistener (exp (gen) (mul x x-1)))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))
+  (defstrand init 1 (x x-0))
+  (defstrand init 1 (x x-1))
+  (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))
+    ((3 0) (2 0)) ((4 0) (0 1)) ((4 0) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x x-0 x-1)
+  (precur (2 0))
+  (operation nonce-test (added-strand init 1) (exp (gen) x-1) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) x-1))
+      (send (enc n (exp (gen) (mul x x-1)))) (recv n))
+    ((recv (exp (gen) (mul x x-1))) (send (exp (gen) (mul x x-1))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) x-1))))
+    ((send (exp (gen) x-0))) ((send (exp (gen) x-1))))
+  (label 56)
+  (parent 34)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x x-0 y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) y)))
+  (defstrand init 1 (x x-0))
+  (defstrand resp 2 (h h) (y y))
+  (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 0) (0 1))
+    ((3 0) (2 0)) ((4 1) (0 1)) ((4 1) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x x-0 y)
+  (precur (2 0))
+  (operation nonce-test (added-strand resp 2) (exp (gen) y) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) y))
+      (send (enc n (exp (gen) (mul x y)))) (recv n))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) y)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) y))))
+    ((send (exp (gen) x-0))) ((recv h) (send (exp (gen) y))))
+  (label 57)
+  (parent 34)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx) (w expt) (x-0 rndx) (w-0 expt))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) w x-0))) (x x))
+  (deflistener (exp (gen) (mul w x-0)))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 1 (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) w x-0 (rec w-0))) w-0))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x x-0)
+  (precur (2 0) (4 0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) w x-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) w x-0)) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w x-0)))
+      (send (enc n (exp (gen) (mul w x-0)))) (recv n))
+    ((recv (exp (gen) (mul w x-0))) (send (exp (gen) (mul w x-0))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((send (exp (gen) x-0)))
+    ((recv (cat (exp (gen) (mul (rec x) w x-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) w x-0 (rec w-0))) w-0))))
+  (label 58)
+  (parent 34)
+  (unrealized (4 0))
+  (comment "6 in cohort - 6 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) x-0)))
+  (defstrand resp 2 (h h) (y y))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))
+    ((3 1) (2 0)) ((4 0) (0 1)) ((4 0) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x y x-0)
+  (precur (2 0))
+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) x-0))
+      (send (enc n (exp (gen) (mul x x-0)))) (recv n))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) x-0)))
+      (send (cat (exp (gen) y) (mul x (rec y) x-0))))
+    ((recv h) (send (exp (gen) y))) ((send (exp (gen) x-0))))
+  (label 59)
+  (parent 35)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (y x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) x)) (x x))
+  (deflistener (exp (gen) (mul x x)))
+  (deflistener (cat (exp (gen) y) (mul (rec y) x x)))
+  (defstrand resp 2 (h h) (y y))
+  (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))
+    ((3 1) (2 0)))
+  (uniq-orig n)
+  (uniq-gen y x)
+  (precur (2 0))
+  (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) x))
+      (send (enc n (exp (gen) (mul x x)))) (recv n))
+    ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))
+    ((recv (cat (exp (gen) y) (mul (rec y) x x)))
+      (send (cat (exp (gen) y) (mul (rec y) x x))))
+    ((recv h) (send (exp (gen) y))))
+  (label 60)
+  (parent 35)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y rndx))
+  (defstrand init 4 (n n) (h (gen)) (x x))
+  (deflistener (exp (gen) x))
+  (deflistener (cat (exp (gen) y) (mul x (rec y))))
+  (defstrand resp 2 (h h) (y y))
+  (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))
+    ((3 1) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation nonce-test (contracted (x-0 x) (w (mul x (rec y))) (y-0 y))
+    (gen) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (gen)) (send (enc n (exp (gen) x)))
+      (recv n)) ((recv (exp (gen) x)) (send (exp (gen) x)))
+    ((recv (cat (exp (gen) y) (mul x (rec y))))
+      (send (cat (exp (gen) y) (mul x (rec y)))))
+    ((recv h) (send (exp (gen) y))))
+  (label 61)
+  (parent 35)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) y) x))
+  (defstrand resp 2 (h h) (y y))
+  (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))
+    ((3 1) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation nonce-test (displaced 4 3 resp 2) (exp (gen) y-0) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) y))
+      (send (enc n (exp (gen) (mul x y)))) (recv n))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x)))
+    ((recv h) (send (exp (gen) y))))
+  (label 62)
+  (parent 35)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h h-0 base) (x y y-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) y-0)) (x x))
+  (deflistener (exp (gen) (mul x y-0)))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) y-0)))
+  (defstrand resp 2 (h h) (y y))
+  (defstrand resp 2 (h h-0) (y y-0))
+  (precedes ((0 0) (2 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (0 1))
+    ((3 1) (2 0)) ((4 1) (0 1)) ((4 1) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x y y-0)
+  (precur (2 0))
+  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) y-0))
+      (send (enc n (exp (gen) (mul x y-0)))) (recv n))
+    ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) y-0)))
+      (send (cat (exp (gen) y) (mul x (rec y) y-0))))
+    ((recv h) (send (exp (gen) y))) ((recv h-0) (send (exp (gen) y-0))))
+  (label 63)
+  (parent 35)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x rndx) (w expt) (y rndx) (w-0 expt))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) w y))) (x x))
+  (deflistener (exp (gen) (mul w y)))
+  (deflistener (cat (exp (gen) y) w))
+  (defstrand resp 2 (h h) (y y))
+  (deflistener (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (precur (2 0) (4 0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) w y)) (0 1))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) w y)))
+      (send (enc n (exp (gen) (mul w y)))) (recv n))
+    ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
+    ((recv h) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) w y (rec w-0))) w-0))))
+  (label 64)
+  (parent 35)
+  (unrealized (4 0))
+  (comment "6 in cohort - 6 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (y rndx) (w expt) (x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul y w))) (x x))
+  (uniq-orig n)
+  (uniq-gen x)
+  (operation generalization deleted (1 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul y w)))
+      (send (enc n (exp (gen) (mul y w x)))) (recv n)))
+  (label 65)
+  (parent 36)
+  (realized)
+  (shape)
+  (maps ((0) ((x x) (h (exp (gen) (mul y w))) (n n))))
+  (origs (n (0 2))))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx) (w expt) (y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y))
+  (deflistener (cat (gen) (mul x w)))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))
+    ((2 1) (1 0)) ((3 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (precur (2 0) (3 0))
+  (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y-0) (3 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))
+      (send (enc n (exp (gen) (mul x w y)))) (recv n))
+    ((recv (exp (gen) (mul x w))) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul x w y)))) (send n))
+    ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 66)
+  (parent 38)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x x-0 rndx) (w expt) (y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+  (defstrand init 1 (x x-0))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))
+    ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x x-0 y)
+  (precur (2 0) (4 0))
+  (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y-0) (4 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))
+      (send (enc n (exp (gen) (mul x w y)))) (recv n))
+    ((recv (exp (gen) (mul x w))) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul x w y)))) (send n))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))
+    ((send (exp (gen) x-0)))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 67)
+  (parent 40)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y rndx) (w expt) (y-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul w y-0))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) w)))
+  (defstrand resp 2 (h h) (y y))
+  (deflistener (cat (exp (gen) y-0) w))
+  (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))
+    ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x y y-0)
+  (precur (2 0) (4 0))
+  (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y-1) (4 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0)))
+      (send (enc n (exp (gen) (mul x w y-0)))) (recv n))
+    ((recv (exp (gen) (mul x w))) (send (exp (gen) y-0))
+      (recv (enc n (exp (gen) (mul x w y-0)))) (send n))
+    ((recv (cat (exp (gen) y) (mul x (rec y) w)))
+      (send (cat (exp (gen) y) (mul x (rec y) w))))
+    ((recv h) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w))))
+  (label 68)
+  (parent 42)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))
+  (deflistener (gen))
+  (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))
+  (deflistener x)
+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (0 1))
+    ((3 1) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (added-listener x) (mul (rec x) (rec x)) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (rec x)))
+      (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))
+    ((recv (cat (exp (gen) x) (mul (rec x) (rec x))))
+      (send (cat (exp (gen) x) (mul (rec x) (rec x)))))
+    ((recv x) (send x)))
+  (label 69)
+  (parent 43)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))
+  (deflistener (gen))
+  (deflistener (cat (gen) (rec x)))
+  (deflistener x)
+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (0 1))
+    ((3 1) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (added-listener x) (rec x) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (rec x)))
+      (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))
+    ((recv (cat (gen) (rec x))) (send (cat (gen) (rec x))))
+    ((recv x) (send x)))
+  (label 70)
+  (parent 44)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) x)) (x x))
+  (deflistener (exp (gen) (mul x x)))
+  (deflistener (cat (gen) (mul x x)))
+  (deflistener x)
+  (precedes ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0)) ((3 1) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (added-listener x) (mul x x) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) x))
+      (send (enc n (exp (gen) (mul x x)))) (recv n))
+    ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))
+    ((recv (cat (gen) (mul x x))) (send (cat (gen) (mul x x))))
+    ((recv x) (send x)))
+  (label 71)
+  (parent 48)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (w expt) (x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul w x))) (x x))
+  (deflistener (exp (gen) (mul w x x)))
+  (deflistener (cat (gen) (mul w x x)))
+  (deflistener (cat (exp (gen) x) w))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (2 0) (3 0))
+  (operation nonce-test (displaced 4 0 init 1) (exp (gen) x-0) (3 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul w x)))
+      (send (enc n (exp (gen) (mul w x x)))) (recv n))
+    ((recv (exp (gen) (mul w x x))) (send (exp (gen) (mul w x x))))
+    ((recv (cat (gen) (mul w x x))) (send (cat (gen) (mul w x x))))
+    ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))
+  (label 72)
+  (parent 52)
+  (unrealized (1 0) (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx) (w expt))
+  (defstrand init 4 (n n) (h (exp (gen) w)) (x x))
+  (deflistener (exp (gen) (mul x w)))
+  (deflistener (cat (gen) (mul x w)))
+  (deflistener (cat (gen) w))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (2 0) (3 0))
+  (operation nonce-test (contracted (x-0 x) (w-0 (mul x w)) (w-1 w))
+    (gen) (3 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) w))
+      (send (enc n (exp (gen) (mul x w)))) (recv n))
+    ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))
+    ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))
+    ((recv (cat (gen) w)) (send (cat (gen) w))))
+  (label 73)
+  (parent 52)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx) (w expt) (x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul w x-0))) (x x))
+  (deflistener (exp (gen) (mul x w x-0)))
+  (deflistener (cat (gen) (mul x w x-0)))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (0 1)) ((4 0) (2 0)) ((4 0) (3 0)))
+  (uniq-orig n)
+  (uniq-gen x x-0)
+  (precur (2 0) (3 0))
+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (3 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0)))
+      (send (enc n (exp (gen) (mul x w x-0)))) (recv n))
+    ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) (mul x w x-0))))
+    ((recv (cat (gen) (mul x w x-0))) (send (cat (gen) (mul x w x-0))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((send (exp (gen) x-0))))
+  (label 74)
+  (parent 52)
+  (unrealized (1 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (y x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))
+  (deflistener (exp (gen) y))
+  (deflistener (cat (gen) y))
+  (deflistener (cat (exp (gen) y) (rec x)))
+  (precedes ((0 0) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((3 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen y x)
+  (precur (2 0) (3 0))
+  (operation nonce-test (displaced 4 1 resp 2) (exp (gen) y) (3 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))
+      (send (enc n (exp (gen) y))) (recv n))
+    ((recv (exp (gen) y)) (send (exp (gen) y)))
+    ((recv (cat (gen) y)) (send (cat (gen) y)))
+    ((recv (cat (exp (gen) y) (rec x)))
+      (send (cat (exp (gen) y) (rec x)))))
+  (label 75)
+  (parent 52)
+  (unrealized (0 1) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x rndx) (w expt) (y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))
+  (deflistener (exp (gen) (mul x w y)))
+  (deflistener (cat (gen) (mul x w y)))
+  (deflistener (cat (exp (gen) y) w))
+  (defstrand resp 2 (h h) (y y))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (0 1)) ((4 1) (2 0)) ((4 1) (3 0)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (precur (2 0) (3 0))
+  (operation nonce-test (added-strand resp 2) (exp (gen) y) (3 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))
+      (send (enc n (exp (gen) (mul x w y)))) (recv n))
+    ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))
+    ((recv (cat (gen) (mul x w y))) (send (cat (gen) (mul x w y))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
+    ((recv h) (send (exp (gen) y))))
+  (label 76)
+  (parent 52)
+  (unrealized (1 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx) (w expt) (x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul w x-0))) (x x))
+  (deflistener (exp (gen) (mul x w x-0)))
+  (deflistener (cat (exp (gen) x-0) (mul x w)))
+  (defstrand init 1 (x x-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x x-0)
+  (precur (2 0) (4 0))
+  (operation nonce-test (displaced 5 3 init 1) (exp (gen) x-1) (4 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0)))
+      (send (enc n (exp (gen) (mul x w x-0)))) (recv n))
+    ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) (mul x w x-0))))
+    ((recv (cat (exp (gen) x-0) (mul x w)))
+      (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w))))
+  (label 77)
+  (parent 58)
+  (unrealized (1 0) (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx) (w expt) (x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul w x-0))) (x x-0))
+  (deflistener (exp (gen) (mul w x-0 x-0)))
+  (deflistener (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))
+  (defstrand init 1 (x x))
+  (deflistener (cat (exp (gen) x-0) w))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x x-0)
+  (precur (2 0) (4 0))
+  (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-1) (4 0))
+  (traces
+    ((send (exp (gen) x-0)) (recv (exp (gen) (mul w x-0)))
+      (send (enc n (exp (gen) (mul w x-0 x-0)))) (recv n))
+    ((recv (exp (gen) (mul w x-0 x-0)))
+      (send (exp (gen) (mul w x-0 x-0))))
+    ((recv (cat (exp (gen) x) (mul (rec x) w x-0 x-0)))
+      (send (cat (exp (gen) x) (mul (rec x) w x-0 x-0))))
+    ((send (exp (gen) x)))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w))))
+  (label 78)
+  (parent 58)
+  (unrealized (1 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x x-0 rndx) (w expt))
+  (defstrand init 4 (n n) (h (exp (gen) w)) (x x))
+  (deflistener (exp (gen) (mul x w)))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+  (defstrand init 1 (x x-0))
+  (deflistener (cat (gen) w))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x x-0)
+  (precur (2 0) (4 0))
+  (operation nonce-test
+    (contracted (x-1 x) (w-0 (mul x (rec x-0) w)) (x-2 x-0) (w-1 w))
+    (gen) (4 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) w))
+      (send (enc n (exp (gen) (mul x w)))) (recv n))
+    ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))
+    ((send (exp (gen) x-0)))
+    ((recv (cat (gen) w)) (send (cat (gen) w))))
+  (label 79)
+  (parent 58)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x x-0 rndx) (w expt) (x-1 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul w x-1))) (x x))
+  (deflistener (exp (gen) (mul x w x-1)))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))
+  (defstrand init 1 (x x-0))
+  (deflistener (cat (exp (gen) x-1) w))
+  (defstrand init 1 (x x-1))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))
+    ((5 0) (4 0)))
+  (uniq-orig n)
+  (uniq-gen x x-0 x-1)
+  (precur (2 0) (4 0))
+  (operation nonce-test (added-strand init 1) (exp (gen) x-1) (4 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul w x-1)))
+      (send (enc n (exp (gen) (mul x w x-1)))) (recv n))
+    ((recv (exp (gen) (mul x w x-1))) (send (exp (gen) (mul x w x-1))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w x-1)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) w x-1))))
+    ((send (exp (gen) x-0)))
+    ((recv (cat (exp (gen) x-1) w)) (send (cat (exp (gen) x-1) w)))
+    ((send (exp (gen) x-1))))
+  (label 80)
+  (parent 58)
+  (unrealized (1 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x y x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x-0)))) (x x-0))
+  (deflistener (exp (gen) y))
+  (deflistener (cat (exp (gen) x) (mul (rec x) y)))
+  (defstrand init 1 (x x))
+  (deflistener (cat (exp (gen) y) (rec x-0)))
+  (precedes ((0 0) (2 0)) ((1 1) (4 0)) ((2 1) (1 0)) ((3 0) (2 0))
+    ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x y x-0)
+  (precur (2 0) (4 0))
+  (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y) (4 0))
+  (traces
+    ((send (exp (gen) x-0)) (recv (exp (gen) (mul y (rec x-0))))
+      (send (enc n (exp (gen) y))) (recv n))
+    ((recv (exp (gen) y)) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) x) (mul (rec x) y)))
+      (send (cat (exp (gen) x) (mul (rec x) y)))) ((send (exp (gen) x)))
+    ((recv (cat (exp (gen) y) (rec x-0)))
+      (send (cat (exp (gen) y) (rec x-0)))))
+  (label 81)
+  (parent 58)
+  (unrealized (0 1) (2 0) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x x-0 rndx) (w expt) (y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))
+  (deflistener (exp (gen) (mul x w y)))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w y)))
+  (defstrand init 1 (x x-0))
+  (deflistener (cat (exp (gen) y) w))
+  (defstrand resp 2 (h h) (y y))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))
+    ((5 1) (4 0)))
+  (uniq-orig n)
+  (uniq-gen x x-0 y)
+  (precur (2 0) (4 0))
+  (operation nonce-test (added-strand resp 2) (exp (gen) y) (4 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))
+      (send (enc n (exp (gen) (mul x w y)))) (recv n))
+    ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w y)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) w y))))
+    ((send (exp (gen) x-0)))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
+    ((recv h) (send (exp (gen) y))))
+  (label 82)
+  (parent 58)
+  (unrealized (1 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y rndx) (w expt) (x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul w x-0))) (x x))
+  (deflistener (exp (gen) (mul x w x-0)))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) w x-0)))
+  (defstrand resp 2 (h h) (y y))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))
+    ((5 0) (4 0)))
+  (uniq-orig n)
+  (uniq-gen x y x-0)
+  (precur (2 0) (4 0))
+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (4 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0)))
+      (send (enc n (exp (gen) (mul x w x-0)))) (recv n))
+    ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) (mul x w x-0))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) w x-0)))
+      (send (cat (exp (gen) y) (mul x (rec y) w x-0))))
+    ((recv h) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((send (exp (gen) x-0))))
+  (label 83)
+  (parent 64)
+  (unrealized (1 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (y rndx) (w expt) (x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul w x))) (x x))
+  (deflistener (exp (gen) (mul w x x)))
+  (deflistener (cat (exp (gen) y) (mul (rec y) w x x)))
+  (defstrand resp 2 (h h) (y y))
+  (deflistener (cat (exp (gen) x) w))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen y x)
+  (precur (2 0) (4 0))
+  (operation nonce-test (displaced 5 0 init 1) (exp (gen) x-0) (4 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul w x)))
+      (send (enc n (exp (gen) (mul w x x)))) (recv n))
+    ((recv (exp (gen) (mul w x x))) (send (exp (gen) (mul w x x))))
+    ((recv (cat (exp (gen) y) (mul (rec y) w x x)))
+      (send (cat (exp (gen) y) (mul (rec y) w x x))))
+    ((recv h) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))
+  (label 84)
+  (parent 64)
+  (unrealized (1 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y rndx) (w expt))
+  (defstrand init 4 (n n) (h (exp (gen) w)) (x x))
+  (deflistener (exp (gen) (mul x w)))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) w)))
+  (defstrand resp 2 (h h) (y y))
+  (deflistener (cat (gen) w))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (precur (2 0) (4 0))
+  (operation nonce-test
+    (contracted (x-0 x) (w-0 (mul x (rec y) w)) (y-0 y) (w-1 w)) (gen)
+    (4 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) w))
+      (send (enc n (exp (gen) (mul x w)))) (recv n))
+    ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) w)))
+      (send (cat (exp (gen) y) (mul x (rec y) w))))
+    ((recv h) (send (exp (gen) y)))
+    ((recv (cat (gen) w)) (send (cat (gen) w))))
+  (label 85)
+  (parent 64)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (y y-0 x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul y-0 (rec x)))) (x x))
+  (deflistener (exp (gen) y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec y) y-0)))
+  (defstrand resp 2 (h h) (y y))
+  (deflistener (cat (exp (gen) y-0) (rec x)))
+  (precedes ((0 0) (2 0)) ((1 1) (4 0)) ((2 1) (1 0)) ((3 1) (2 0))
+    ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen y y-0 x)
+  (precur (2 0) (4 0))
+  (operation nonce-test (displaced 5 1 resp 2) (exp (gen) y-0) (4 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul y-0 (rec x))))
+      (send (enc n (exp (gen) y-0))) (recv n))
+    ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))
+    ((recv (cat (exp (gen) y) (mul (rec y) y-0)))
+      (send (cat (exp (gen) y) (mul (rec y) y-0))))
+    ((recv h) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) y-0) (rec x)))
+      (send (cat (exp (gen) y-0) (rec x)))))
+  (label 86)
+  (parent 64)
+  (unrealized (0 1) (2 0) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x rndx) (w expt) (y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))
+  (deflistener (exp (gen) (mul x w y)))
+  (deflistener (cat (exp (gen) y) (mul x w)))
+  (defstrand resp 2 (h h) (y y))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (precur (2 0) (4 0))
+  (operation nonce-test (displaced 5 3 resp 2) (exp (gen) y-0) (4 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))
+      (send (enc n (exp (gen) (mul x w y)))) (recv n))
+    ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))
+    ((recv (cat (exp (gen) y) (mul x w)))
+      (send (cat (exp (gen) y) (mul x w))))
+    ((recv h) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 87)
+  (parent 64)
+  (unrealized (1 0) (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (h h-0 base) (x y rndx) (w expt) (y-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul w y-0))) (x x))
+  (deflistener (exp (gen) (mul x w y-0)))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) w y-0)))
+  (defstrand resp 2 (h h) (y y))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 2 (h h-0) (y y-0))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))
+    ((5 1) (4 0)))
+  (uniq-orig n)
+  (uniq-gen x y y-0)
+  (precur (2 0) (4 0))
+  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (4 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul w y-0)))
+      (send (enc n (exp (gen) (mul x w y-0)))) (recv n))
+    ((recv (exp (gen) (mul x w y-0))) (send (exp (gen) (mul x w y-0))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) w y-0)))
+      (send (cat (exp (gen) y) (mul x (rec y) w y-0))))
+    ((recv h) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((recv h-0) (send (exp (gen) y-0))))
+  (label 88)
+  (parent 64)
+  (unrealized (1 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (y x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))
+  (defstrand resp 4 (n n) (h (gen)) (y y))
+  (deflistener (cat (gen) (one)))
+  (deflistener (cat (exp (gen) y) (rec x)))
+  (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))
+    ((2 1) (1 0)) ((3 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen y x)
+  (precur (2 0) (3 0))
+  (operation nonce-test (contracted (x-0 x) (w (rec x))) (one) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))
+      (send (enc n (exp (gen) y))) (recv n))
+    ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y)))
+      (send n)) ((recv (cat (gen) (one))) (send (cat (gen) (one))))
+    ((recv (cat (exp (gen) y) (rec x)))
+      (send (cat (exp (gen) y) (rec x)))))
+  (label 89)
+  (parent 66)
+  (unrealized (0 1) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx) (w expt) (y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) (mul x w))) (y y))
+  (deflistener (cat (gen) (mul x w)))
+  (deflistener (cat (exp (gen) y) w))
+  (deflistener x)
+  (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((1 3) (0 3))
+    ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (precur (2 0) (3 0))
+  (operation nonce-test (added-listener x) (mul x w) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))
+      (send (enc n (exp (gen) (mul x w y)))) (recv n))
+    ((recv (exp (gen) (mul x w))) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul x w y)))) (send n))
+    ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
+    ((recv x) (send x)))
+  (label 90)
+  (parent 66)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (y x x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x) x-0))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) x-0)) (y y))
+  (deflistener (cat (exp (gen) x-0) (one)))
+  (defstrand init 1 (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))
+  (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))
+    ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen y x x-0)
+  (precur (2 0) (4 0))
+  (operation nonce-test
+    (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x) x-0)))
+      (send (enc n (exp (gen) (mul y x-0)))) (recv n))
+    ((recv (exp (gen) x-0)) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul y x-0)))) (send n))
+    ((recv (cat (exp (gen) x-0) (one)))
+      (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0)))))
+  (label 91)
+  (parent 67)
+  (unrealized (0 1) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (y x y-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x) y-0))) (x x))
+  (defstrand resp 4 (n n) (h (exp (gen) y-0)) (y y))
+  (deflistener (cat (exp (gen) y-0) (one)))
+  (defstrand resp 2 (h h) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0)))
+  (precedes ((0 0) (2 0)) ((0 2) (1 2)) ((1 1) (4 0)) ((1 3) (0 3))
+    ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen y x y-0)
+  (precur (2 0) (4 0))
+  (operation nonce-test
+    (contracted (x-0 x) (y-1 y-0) (w (mul (rec x) y-0))) (one) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x) y-0)))
+      (send (enc n (exp (gen) (mul y y-0)))) (recv n))
+    ((recv (exp (gen) y-0)) (send (exp (gen) y))
+      (recv (enc n (exp (gen) (mul y y-0)))) (send n))
+    ((recv (cat (exp (gen) y-0) (one)))
+      (send (cat (exp (gen) y-0) (one))))
+    ((recv h) (send (exp (gen) y-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0)))))
+  (label 92)
+  (parent 68)
+  (unrealized (0 1) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))
+  (deflistener (gen))
+  (deflistener (cat (gen) (one)))
+  (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (2 0) (3 0))
+  (operation nonce-test (contracted (w (mul (rec x) (rec x))) (x-0 x))
+    (one) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (rec x)))
+      (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))
+    ((recv (cat (gen) (one))) (send (cat (gen) (one))))
+    ((recv (cat (exp (gen) x) (mul (rec x) (rec x))))
+      (send (cat (exp (gen) x) (mul (rec x) (rec x))))))
+  (label 93)
+  (parent 72)
+  (unrealized (0 1) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (w expt) (x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul w x))) (x x))
+  (deflistener (exp (gen) (mul w x x)))
+  (deflistener (cat (gen) (mul w x x)))
+  (deflistener (cat (exp (gen) x) w))
+  (deflistener x)
+  (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (0 1)) ((4 1) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (2 0) (3 0))
+  (operation nonce-test (added-listener x) (mul w x x) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul w x)))
+      (send (enc n (exp (gen) (mul w x x)))) (recv n))
+    ((recv (exp (gen) (mul w x x))) (send (exp (gen) (mul w x x))))
+    ((recv (cat (gen) (mul w x x))) (send (cat (gen) (mul w x x))))
+    ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w)))
+    ((recv x) (send x)))
+  (label 94)
+  (parent 72)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))
+  (deflistener (gen))
+  (deflistener (cat (gen) (one)))
+  (deflistener (cat (gen) (rec x)))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (2 0) (3 0))
+  (operation nonce-test (contracted (x-0 x) (w (rec x))) (one) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (rec x)))
+      (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))
+    ((recv (cat (gen) (one))) (send (cat (gen) (one))))
+    ((recv (cat (gen) (rec x))) (send (cat (gen) (rec x)))))
+  (label 95)
+  (parent 73)
+  (unrealized (0 1) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx) (w expt))
+  (defstrand init 4 (n n) (h (exp (gen) w)) (x x))
+  (deflistener (exp (gen) (mul x w)))
+  (deflistener (cat (gen) (mul x w)))
+  (deflistener (cat (gen) w))
+  (deflistener x)
+  (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (0 1)) ((4 1) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (2 0) (3 0))
+  (operation nonce-test (added-listener x) (mul x w) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) w))
+      (send (enc n (exp (gen) (mul x w)))) (recv n))
+    ((recv (exp (gen) (mul x w))) (send (exp (gen) (mul x w))))
+    ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))
+    ((recv (cat (gen) w)) (send (cat (gen) w))) ((recv x) (send x)))
+  (label 96)
+  (parent 73)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))
+  (deflistener (gen))
+  (deflistener (cat (gen) (one)))
+  (deflistener (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (0 1)) ((4 0) (2 0)) ((4 0) (3 0)))
+  (uniq-orig n)
+  (uniq-gen x x-0)
+  (precur (2 0) (3 0))
+  (operation nonce-test
+    (contracted (x-1 x) (w (mul (rec x) (rec x-0))) (x-2 x-0)) (one)
+    (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (rec x)))
+      (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))
+    ((recv (cat (gen) (one))) (send (cat (gen) (one))))
+    ((recv (cat (exp (gen) x-0) (mul (rec x) (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul (rec x) (rec x-0)))))
+    ((send (exp (gen) x-0))))
+  (label 97)
+  (parent 74)
+  (unrealized (0 1) (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (y x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))
+  (deflistener (exp (gen) y))
+  (deflistener (cat (gen) y))
+  (deflistener (cat (exp (gen) y) (rec x)))
+  (deflistener x)
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (3 0)) ((2 1) (1 0))
+    ((3 1) (0 1)) ((4 1) (3 0)))
+  (uniq-orig n)
+  (uniq-gen y x)
+  (precur (2 0) (3 0))
+  (operation nonce-test (added-listener x) (rec x) (3 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))
+      (send (enc n (exp (gen) y))) (recv n))
+    ((recv (exp (gen) y)) (send (exp (gen) y)))
+    ((recv (cat (gen) y)) (send (cat (gen) y)))
+    ((recv (cat (exp (gen) y) (rec x)))
+      (send (cat (exp (gen) y) (rec x)))) ((recv x) (send x)))
+  (label 98)
+  (parent 75)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))
+  (deflistener (gen))
+  (deflistener (cat (gen) (one)))
+  (deflistener (cat (exp (gen) y) (mul (rec x) (rec y))))
+  (defstrand resp 2 (h h) (y y))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (0 1)) ((4 1) (2 0)) ((4 1) (3 0)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (precur (2 0) (3 0))
+  (operation nonce-test
+    (contracted (x-0 x) (w (mul (rec x) (rec y))) (y-0 y)) (one) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (rec x)))
+      (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))
+    ((recv (cat (gen) (one))) (send (cat (gen) (one))))
+    ((recv (cat (exp (gen) y) (mul (rec x) (rec y))))
+      (send (cat (exp (gen) y) (mul (rec x) (rec y)))))
+    ((recv h) (send (exp (gen) y))))
+  (label 99)
+  (parent 76)
+  (unrealized (0 1) (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))
+  (deflistener (exp (gen) x))
+  (deflistener (cat (exp (gen) x) (one)))
+  (defstrand init 1 (x x))
+  (deflistener (cat (exp (gen) x) (rec x-0)))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x x-0)
+  (precur (2 0) (4 0))
+  (operation nonce-test (contracted (x-1 x-0) (w (rec x-0))) (one)
+    (2 0))
+  (traces
+    ((send (exp (gen) x-0)) (recv (exp (gen) (mul x (rec x-0))))
+      (send (enc n (exp (gen) x))) (recv n))
+    ((recv (exp (gen) x)) (send (exp (gen) x)))
+    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))
+    ((send (exp (gen) x)))
+    ((recv (cat (exp (gen) x) (rec x-0)))
+      (send (cat (exp (gen) x) (rec x-0)))))
+  (label 100)
+  (parent 77)
+  (unrealized (0 1) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx) (w expt) (x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul w x-0))) (x x))
+  (deflistener (exp (gen) (mul x w x-0)))
+  (deflistener (cat (exp (gen) x-0) (mul x w)))
+  (defstrand init 1 (x x-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (deflistener x)
+  (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x x-0)
+  (precur (2 0) (4 0))
+  (operation nonce-test (added-listener x) (mul x w) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul w x-0)))
+      (send (enc n (exp (gen) (mul x w x-0)))) (recv n))
+    ((recv (exp (gen) (mul x w x-0))) (send (exp (gen) (mul x w x-0))))
+    ((recv (cat (exp (gen) x-0) (mul x w)))
+      (send (cat (exp (gen) x-0) (mul x w)))) ((send (exp (gen) x-0)))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((recv x) (send x)))
+  (label 101)
+  (parent 77)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))
+  (deflistener (exp (gen) x))
+  (deflistener (cat (exp (gen) x) (one)))
+  (defstrand init 1 (x x))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x x-0)
+  (precur (2 0) (4 0))
+  (operation nonce-test
+    (contracted (x-1 x) (w (mul x (rec x-0) (rec x-0))) (x-2 x-0)) (one)
+    (2 0))
+  (traces
+    ((send (exp (gen) x-0)) (recv (exp (gen) (mul x (rec x-0))))
+      (send (enc n (exp (gen) x))) (recv n))
+    ((recv (exp (gen) x)) (send (exp (gen) x)))
+    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))
+    ((send (exp (gen) x)))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) (rec x-0))))))
+  (label 102)
+  (parent 78)
+  (unrealized (0 1) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))
+  (deflistener (exp (gen) x-0))
+  (deflistener (cat (exp (gen) x-0) (one)))
+  (defstrand init 1 (x x-0))
+  (deflistener (cat (gen) (mul (rec x) x-0)))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x x-0)
+  (precur (2 0) (4 0))
+  (operation nonce-test
+    (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))
+      (send (enc n (exp (gen) x-0))) (recv n))
+    ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))
+    ((recv (cat (exp (gen) x-0) (one)))
+      (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))
+    ((recv (cat (gen) (mul (rec x) x-0)))
+      (send (cat (gen) (mul (rec x) x-0)))))
+  (label 103)
+  (parent 79)
+  (unrealized (0 1) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x x-0 x-1 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))
+  (deflistener (exp (gen) x-0))
+  (deflistener (cat (exp (gen) x-0) (one)))
+  (defstrand init 1 (x x-0))
+  (deflistener (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1))))
+  (defstrand init 1 (x x-1))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))
+    ((5 0) (4 0)))
+  (uniq-orig n)
+  (uniq-gen x x-0 x-1)
+  (precur (2 0) (4 0))
+  (operation nonce-test
+    (contracted (x-2 x) (x-3 x-0) (w (mul (rec x) x-0 (rec x-1)))
+      (x-4 x-1)) (one) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))
+      (send (enc n (exp (gen) x-0))) (recv n))
+    ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))
+    ((recv (cat (exp (gen) x-0) (one)))
+      (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))
+    ((recv (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1))))
+      (send (cat (exp (gen) x-1) (mul (rec x) x-0 (rec x-1)))))
+    ((send (exp (gen) x-1))))
+  (label 104)
+  (parent 80)
+  (unrealized (0 1) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x y x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x-0)))) (x x-0))
+  (deflistener (exp (gen) y))
+  (deflistener (cat (exp (gen) x) (mul (rec x) y)))
+  (defstrand init 1 (x x))
+  (deflistener (cat (exp (gen) y) (rec x-0)))
+  (deflistener x-0)
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (4 0)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))
+  (uniq-orig n)
+  (uniq-gen x y x-0)
+  (precur (2 0) (4 0))
+  (operation nonce-test (added-listener x-0) (rec x-0) (4 0))
+  (traces
+    ((send (exp (gen) x-0)) (recv (exp (gen) (mul y (rec x-0))))
+      (send (enc n (exp (gen) y))) (recv n))
+    ((recv (exp (gen) y)) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) x) (mul (rec x) y)))
+      (send (cat (exp (gen) x) (mul (rec x) y)))) ((send (exp (gen) x)))
+    ((recv (cat (exp (gen) y) (rec x-0)))
+      (send (cat (exp (gen) y) (rec x-0)))) ((recv x-0) (send x-0)))
+  (label 105)
+  (parent 81)
+  (unrealized (2 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x x-0 y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) x-0))) (x x))
+  (deflistener (exp (gen) x-0))
+  (deflistener (cat (exp (gen) x-0) (one)))
+  (defstrand init 1 (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))
+  (defstrand resp 2 (h h) (y y))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))
+    ((5 1) (4 0)))
+  (uniq-orig n)
+  (uniq-gen x x-0 y)
+  (precur (2 0) (4 0))
+  (operation nonce-test
+    (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0 (rec y))) (y-0 y))
+    (one) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) x-0)))
+      (send (enc n (exp (gen) x-0))) (recv n))
+    ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))
+    ((recv (cat (exp (gen) x-0) (one)))
+      (send (cat (exp (gen) x-0) (one)))) ((send (exp (gen) x-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 (rec y))))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 (rec y)))))
+    ((recv h) (send (exp (gen) y))))
+  (label 106)
+  (parent 82)
+  (unrealized (0 1) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))
+  (deflistener (exp (gen) y))
+  (deflistener (cat (exp (gen) y) (one)))
+  (defstrand resp 2 (h h) (y y))
+  (deflistener (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 0) (2 0))
+    ((5 0) (4 0)))
+  (uniq-orig n)
+  (uniq-gen x y x-0)
+  (precur (2 0) (4 0))
+  (operation nonce-test
+    (contracted (x-1 x) (y-0 y) (w (mul (rec x) y (rec x-0))) (x-2 x-0))
+    (one) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))
+      (send (enc n (exp (gen) y))) (recv n))
+    ((recv (exp (gen) y)) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
+    ((recv h) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) x-0) (mul (rec x) y (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul (rec x) y (rec x-0)))))
+    ((send (exp (gen) x-0))))
+  (label 107)
+  (parent 83)
+  (unrealized (0 1) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (y x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))
+  (deflistener (exp (gen) y))
+  (deflistener (cat (exp (gen) y) (one)))
+  (defstrand resp 2 (h h) (y y))
+  (deflistener (cat (exp (gen) x) (mul y (rec x) (rec x))))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen y x)
+  (precur (2 0) (4 0))
+  (operation nonce-test
+    (contracted (y-0 y) (w (mul y (rec x) (rec x))) (x-0 x)) (one)
+    (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))
+      (send (enc n (exp (gen) y))) (recv n))
+    ((recv (exp (gen) y)) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
+    ((recv h) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) x) (mul y (rec x) (rec x))))
+      (send (cat (exp (gen) x) (mul y (rec x) (rec x))))))
+  (label 108)
+  (parent 84)
+  (unrealized (0 1) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))
+  (deflistener (exp (gen) y))
+  (deflistener (cat (exp (gen) y) (one)))
+  (defstrand resp 2 (h h) (y y))
+  (deflistener (cat (gen) (mul (rec x) y)))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (precur (2 0) (4 0))
+  (operation nonce-test (contracted (x-0 x) (y-0 y) (w (mul (rec x) y)))
+    (one) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))
+      (send (enc n (exp (gen) y))) (recv n))
+    ((recv (exp (gen) y)) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
+    ((recv h) (send (exp (gen) y)))
+    ((recv (cat (gen) (mul (rec x) y)))
+      (send (cat (gen) (mul (rec x) y)))))
+  (label 109)
+  (parent 85)
+  (unrealized (0 1) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (y y-0 x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul y-0 (rec x)))) (x x))
+  (deflistener (exp (gen) y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec y) y-0)))
+  (defstrand resp 2 (h h) (y y))
+  (deflistener (cat (exp (gen) y-0) (rec x)))
+  (deflistener x)
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (4 0)) ((2 1) (1 0))
+    ((3 1) (2 0)) ((4 1) (0 1)) ((5 1) (4 0)))
+  (uniq-orig n)
+  (uniq-gen y y-0 x)
+  (precur (2 0) (4 0))
+  (operation nonce-test (added-listener x) (rec x) (4 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul y-0 (rec x))))
+      (send (enc n (exp (gen) y-0))) (recv n))
+    ((recv (exp (gen) y-0)) (send (exp (gen) y-0)))
+    ((recv (cat (exp (gen) y) (mul (rec y) y-0)))
+      (send (cat (exp (gen) y) (mul (rec y) y-0))))
+    ((recv h) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) y-0) (rec x)))
+      (send (cat (exp (gen) y-0) (rec x)))) ((recv x) (send x)))
+  (label 110)
+  (parent 86)
+  (unrealized (2 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (y x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))
+  (deflistener (exp (gen) y))
+  (deflistener (cat (exp (gen) y) (one)))
+  (defstrand resp 2 (h h) (y y))
+  (deflistener (cat (exp (gen) y) (rec x)))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)))
+  (uniq-orig n)
+  (uniq-gen y x)
+  (precur (2 0) (4 0))
+  (operation nonce-test (contracted (x-0 x) (w (rec x))) (one) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))
+      (send (enc n (exp (gen) y))) (recv n))
+    ((recv (exp (gen) y)) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
+    ((recv h) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) y) (rec x)))
+      (send (cat (exp (gen) y) (rec x)))))
+  (label 111)
+  (parent 87)
+  (unrealized (0 1) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (x rndx) (w expt) (y rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul w y))) (x x))
+  (deflistener (exp (gen) (mul x w y)))
+  (deflistener (cat (exp (gen) y) (mul x w)))
+  (defstrand resp 2 (h h) (y y))
+  (deflistener (cat (exp (gen) y) w))
+  (deflistener x)
+  (precedes ((0 0) (4 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (2 0)))
+  (uniq-orig n)
+  (uniq-gen x y)
+  (precur (2 0) (4 0))
+  (operation nonce-test (added-listener x) (mul x w) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul w y)))
+      (send (enc n (exp (gen) (mul x w y)))) (recv n))
+    ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))
+    ((recv (cat (exp (gen) y) (mul x w)))
+      (send (cat (exp (gen) y) (mul x w))))
+    ((recv h) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
+    ((recv x) (send x)))
+  (label 112)
+  (parent 87)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h h-0 base) (x y y-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul (rec x) y))) (x x))
+  (deflistener (exp (gen) y))
+  (deflistener (cat (exp (gen) y) (one)))
+  (defstrand resp 2 (h h) (y y))
+  (deflistener (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))
+  (defstrand resp 2 (h h-0) (y y-0))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (2 0))
+    ((5 1) (4 0)))
+  (uniq-orig n)
+  (uniq-gen x y y-0)
+  (precur (2 0) (4 0))
+  (operation nonce-test
+    (contracted (x-0 x) (y-1 y) (w (mul (rec x) y (rec y-0))) (y-2 y-0))
+    (one) (2 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul (rec x) y)))
+      (send (enc n (exp (gen) y))) (recv n))
+    ((recv (exp (gen) y)) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
+    ((recv h) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) y-0) (mul (rec x) y (rec y-0))))
+      (send (cat (exp (gen) y-0) (mul (rec x) y (rec y-0)))))
+    ((recv h-0) (send (exp (gen) y-0))))
+  (label 113)
+  (parent 88)
+  (unrealized (0 1) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (y x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))
+  (defstrand resp 4 (n n) (h (gen)) (y y))
+  (deflistener (cat (gen) (one)))
+  (deflistener (cat (exp (gen) y) (rec x)))
+  (deflistener x)
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0))
+    ((1 3) (0 3)) ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (3 0)))
+  (uniq-orig n)
+  (uniq-gen y x)
+  (precur (2 0) (3 0))
+  (operation nonce-test (added-listener x) (rec x) (3 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))
+      (send (enc n (exp (gen) y))) (recv n))
+    ((recv (gen)) (send (exp (gen) y)) (recv (enc n (exp (gen) y)))
+      (send n)) ((recv (cat (gen) (one))) (send (cat (gen) (one))))
+    ((recv (cat (exp (gen) y) (rec x)))
+      (send (cat (exp (gen) y) (rec x)))) ((recv x) (send x)))
+  (label 114)
+  (parent 89)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))
+  (deflistener (gen))
+  (deflistener (cat (gen) (one)))
+  (deflistener (cat (exp (gen) x) (mul (rec x) (rec x))))
+  (deflistener x)
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (0 1)) ((4 1) (3 0)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (2 0) (3 0))
+  (operation nonce-test (added-listener x) (mul (rec x) (rec x)) (3 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (rec x)))
+      (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))
+    ((recv (cat (gen) (one))) (send (cat (gen) (one))))
+    ((recv (cat (exp (gen) x) (mul (rec x) (rec x))))
+      (send (cat (exp (gen) x) (mul (rec x) (rec x)))))
+    ((recv x) (send x)))
+  (label 115)
+  (parent 93)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (rec x))) (x x))
+  (deflistener (gen))
+  (deflistener (cat (gen) (one)))
+  (deflistener (cat (gen) (rec x)))
+  (deflistener x)
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (0 1)) ((4 1) (3 0)))
+  (uniq-orig n)
+  (uniq-gen x)
+  (precur (2 0) (3 0))
+  (operation nonce-test (added-listener x) (rec x) (3 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (rec x)))
+      (send (enc n (gen))) (recv n)) ((recv (gen)) (send (gen)))
+    ((recv (cat (gen) (one))) (send (cat (gen) (one))))
+    ((recv (cat (gen) (rec x))) (send (cat (gen) (rec x))))
+    ((recv x) (send x)))
+  (label 116)
+  (parent 95)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (x x-0 rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul x (rec x-0)))) (x x-0))
+  (deflistener (exp (gen) x))
+  (deflistener (cat (exp (gen) x) (one)))
+  (defstrand init 1 (x x))
+  (deflistener (cat (exp (gen) x) (rec x-0)))
+  (deflistener x-0)
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 1)) ((5 1) (4 0)))
+  (uniq-orig n)
+  (uniq-gen x x-0)
+  (precur (2 0) (4 0))
+  (operation nonce-test (added-listener x-0) (rec x-0) (4 0))
+  (traces
+    ((send (exp (gen) x-0)) (recv (exp (gen) (mul x (rec x-0))))
+      (send (enc n (exp (gen) x))) (recv n))
+    ((recv (exp (gen) x)) (send (exp (gen) x)))
+    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))
+    ((send (exp (gen) x)))
+    ((recv (cat (exp (gen) x) (rec x-0)))
+      (send (cat (exp (gen) x) (rec x-0)))) ((recv x-0) (send x-0)))
+  (label 117)
+  (parent 100)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton plaindh
+  (vars (n text) (h base) (y x rndx))
+  (defstrand init 4 (n n) (h (exp (gen) (mul y (rec x)))) (x x))
+  (deflistener (exp (gen) y))
+  (deflistener (cat (exp (gen) y) (one)))
+  (defstrand resp 2 (h h) (y y))
+  (deflistener (cat (exp (gen) y) (rec x)))
+  (deflistener x)
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 3)) ((2 1) (1 0))
+    ((3 1) (2 0)) ((3 1) (4 0)) ((4 1) (0 1)) ((5 1) (4 0)))
+  (uniq-orig n)
+  (uniq-gen y x)
+  (precur (2 0) (4 0))
+  (operation nonce-test (added-listener x) (rec x) (4 0))
+  (traces
+    ((send (exp (gen) x)) (recv (exp (gen) (mul y (rec x))))
+      (send (enc n (exp (gen) y))) (recv n))
+    ((recv (exp (gen) y)) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
+    ((recv h) (send (exp (gen) y)))
+    ((recv (cat (exp (gen) y) (rec x)))
+      (send (cat (exp (gen) y) (rec x)))) ((recv x) (send x)))
+  (label 118)
+  (parent 111)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/doc/src/cpsa4manual/examples/rules.scm b/doc/src/cpsa4manual/examples/rules.scm
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/examples/rules.scm
@@ -0,0 +1,67 @@
+(herald "Rules and Facts")
+
+(defprotocol neq-test basic
+  (defrole init
+    (vars (n1 n2 text) (k skey))
+    (trace
+     (send (cat n1 (enc n1 n2 k)))
+     (recv n2))
+    (non-orig k)
+    (uniq-orig n1 n2))
+  (defrule neq
+    (forall ((a mesg))
+	    (implies
+	     (fact neq a a)
+	     (false))))
+  (comment "Impose an nequality constraint using facts and rules"))
+
+;;; With no inequality fact,
+;;; a shape should be found where n1 = n2.
+(defskeleton neq-test
+  (vars)
+  (defstrand init 2)
+  (comment "This skeleton should have a shape"))
+
+;;; With an inequality fact,
+;;; no shape should exist.
+(defskeleton neq-test
+  (vars (n1 n2 text))
+  (defstrand init 2 (n1 n1) (n2 n2))
+  (facts (neq n1 n2))			;  assert n1 != n2
+  (comment "This skeleton should have no shapes"))
+
+;;;
+
+(herald doorsep (comment "Door Simple Example Protocol"))
+
+(defprotocol doorsep basic
+  (defrole person
+    (vars (d p akey) (k skey) (t text))
+    (trace
+     (send (enc (enc k (invk p)) d))
+     (recv (enc t k))
+     (send t))
+    (uniq-orig k))
+  (defrole door
+    (vars (d p akey) (k skey) (t text))
+    (trace
+     (recv (enc (enc k (invk p)) d))
+     (send (enc t k))
+     (recv t))
+    (uniq-orig t))
+  (defrule trust
+    (forall ((z strd) (p d akey))
+	    (implies
+	     (and (p "person" z 1)
+		  (p "person" "p" z p)
+		  (p "person" "d" z d)
+		  (non (invk p)))
+	     (non (invk d))))
+    (comment "The trust rule"))
+  (comment "Doorsep protocol using unnamed asymmetric keys"))
+
+(defskeleton doorsep
+  (vars (p akey))
+  (defstrand door 3 (p p))
+  (non-orig (invk p))
+  (comment "Analyze from the doors's perspective"))
diff --git a/doc/src/cpsa4manual/goals.tex b/doc/src/cpsa4manual/goals.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/goals.tex
@@ -0,0 +1,1206 @@
+\chapter{Logical Security Goals and Rules}
+\label{ch:goals}
+
+\newtheorem{axiom}{Trust Assumption}
+
+How easy is it to read off authentication and secrecy properties?
+What precisely is it that an expert sees?  This chapter describes
+{\cpsa}'s support for reasoning about security goals using first-order
+logic.  With security goals expressed in first-order logic, intuition
+is replaced by determining if a formula is true in all executions of
+the protocol.
+
+% \emph{Something about the benefits of first-order logic goes here.}
+
+This treatment of security goals relies heavily on a branch of
+first-order logic called model theory.  It deals with the relationship
+between descriptions in first-order languages and the structures that
+satisfy these descriptions.  In our case, the structures are skeletons
+that denote a collection of executions of a protocol.  This chapter
+describes the language of security goals and its structures without
+requiring the reader to have studied model theory.
+
+The model theoretical foundation of this approach to security goals
+appears in~\cite{Guttman14}.  A practical use of security goals in
+protocol standardization is described
+in~\cite{guttman2014security,RoweEtAl2016}.  The precise semantics of
+the goal language is in~\cite{Ramsdell12}.  The syntax of
+security goals appears in Table~\ref{tab:goal_syntax}.
+
+\begin{table}
+\begin{center}\scshape
+  \begin{tabular}{rcl}
+ goal&$\leftarrow$&(\sym{defgoal} id sentence+ alist)
+\\ sentence&$\leftarrow$&(\sym{forall} (gvdecl$\ast$) implication)
+\\ gvdecl&$\leftarrow$&(id+ sort)~$\mid$~(id+ \sym{strd})~$\mid$~(id+ \sym{indx})
+\\ implication&$\leftarrow$&(\sym{implies} conjunction conclusion)
+\\ conjunction&$\leftarrow$&atomic~$\mid$~(\sym{and} atomic+)
+\\ conclusion&$\leftarrow$&(\sym{false})~$\mid$~existential
+\\ &$\mid$& (\sym{or} existential+)
+\\ existential&$\leftarrow$&conjunction~$\mid$~(\sym{exists} (gvdecl$\ast$) conjunction)
+\\ atomic&$\leftarrow$&(\sym{p} string strdvar integer)
+\\ &$\mid$&(\sym{p} string string strdvar term)
+\\ &$\mid$&(\sym{prec} strdvar index strdvar index)
+\\ &$\mid$&(\sym{leads-to} strdvar index strdvar index)
+\\ &$\mid$&(\sym{non} term)~$\mid$~(\sym{pnon} term)
+\\ &$\mid$&(\sym{uniq} term)~$\mid$~(\sym{uniq-at} term strdvar index)
+\\ &$\mid$&(\sym{ugen} term)~$\mid$~(\sym{ugen-at} term strdvar index)
+\\ &$\mid$&(\sym{=} strdvar strdvar)~$\mid$~(\sym{=} term term)
+    \\ &$\mid$&(\sym{fact} id term*)
+                %~$\mid$~(\sym{absent} (term term)+)
+\\ strdvar&$\leftarrow$&symbol
+\\ index&$\leftarrow$&symbol~$\mid$~integer
+  \end{tabular}
+\end{center}
+\caption[Goal syntax]{Goal syntax.  See Tables~\ref{tab:basic_term}
+  and~\ref{tab:dh_term} for the algebra syntax, which defines the
+  $\scap{term}$ and $\scap{sort}$ symbols.}
+\label{tab:goal_syntax}
+\end{table}
+
+\ttindex{defgoal}\ttindex{forall}\ttindex{implies}\ttindex{false}\ttindex{exists}
+\ttindex{and}\ttindex{or}
+
+The {\cpsa} distribution contains, in its examples directory, the
+input file \texttt{goals.scm}.  The reader is encouraged to run the
+examples and examine the output while reading this chapter.
+
+%% Use a margin width of 62 for S-expressions
+
+\begin{figure}
+\begin{center}
+\includegraphics{cpsadiagrams-0.mps}\hfil
+\includegraphics{cpsadiagrams-1.mps}\\
+\end{center}
+\begin{center}
+\begin{minipage}{3in}
+\begin{verbatim}
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace
+     (send (enc n1 a (pubk b)))
+     (recv (enc n1 n2 (pubk a)))
+     (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace
+     (recv (enc n1 a (pubk b)))
+     (send (enc n1 n2 (pubk a)))
+     (recv (enc n2 (pubk b))))))
+\end{verbatim}
+\end{minipage}
+\end{center}
+\caption{Needham-Schroeder Initiator and Responder Roles}
+\label{fig:ns roles 2}
+\end{figure}
+
+\begin{figure}
+\begin{verbatim}
+(defgoal ns                ; Goal
+  (forall ((b name) (n1 text) (z0 strd))
+    (implies
+     (and (p "init" z0 3)
+      (p "init" "n1" z0 n1) (p "init" "b" z0 b)
+      (non (privk b)) (uniq n1))
+     (exists ((z1 node))
+      (and (p "resp" z1 2) (p "resp" "b" z1 b))))))
+
+(defskeleton ns            ; Point of view skeleton
+  (vars (a b name) (n1 n2 text))
+  (defstrand init 3 (a a) (b b) (n1 n1) (n2 n2))
+  (non-orig (privk b))
+  (uniq-orig n1))
+\end{verbatim}
+{\centering
+\includegraphics{cpsadiagrams-9.mps}}
+\begin{verbatim}
+(defskeleton ns            ; Shape
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-orig n1)
+  (satisfies yes))
+\end{verbatim}
+\caption{Needham-Schroeder Initiator Point of View}
+\label{fig:ns init}
+\end{figure}
+
+\index{Needham-Schroeder!logical goals in}
+\index{examples!Needham-Schroeder!logical goals in}
+In this chapter we return to the Needham-Schroeder protocol discussed
+in Chapter~\ref{ch:basic}.  The roles are displayed in
+Figure~\ref{fig:ns roles 2}.
+
+The protocol is analyzed from the point of view of a complete run of
+one instance of the initiator role.  The input security goal, followed
+by the point of view skeleton it generates and the shape produced by
+{\cpsa}, are shown in Figure~\ref{fig:ns init}.  The syntax and
+semantics of the goal will be explained later.  Roughly speaking, it
+asserts that if a realized skeleton contains a full length initiator
+strand, its private key is uncompromised, and it uniquely generates
+\texttt{n1}, then the skeleton will contain a responder strand that
+agrees with the initiator on the name \texttt{b}.  The shape produced
+by {\cpsa} contains the annotation \texttt{(satisfies yes)}.  This
+indicates that its structure satisfies the description given by the
+security goal.  It will be explained later why the properties of
+{\cpsa} allows us to conclude that this goal is true in all executions
+of the protocol, and therefore conclude that the Needham-Schroeder
+protocol achieves this authentication goal.
+
+\section{Overview}\label{sec:goalsoverview}
+
+In addition to \texttt{defskeleton} S-expressions, a {\cpsa} input
+file may contain \texttt{defgoal} S-expressions.  Like a
+\texttt{defskeleton}, a \texttt{defgoal} takes as its first parameter
+the name of a protocol which the tool expects has been previously
+defined in the input file.  The second parameter to a \texttt{defgoal}
+is a \emph{geometric} sentence in first-order logic.  A geometric
+sentence contains one implication.  The antecedent is a conjunction
+of atomic formulas.  The free variables that occur in the antecedent
+are universally quantified.  The conclusion is a disjunction of
+existentially quantified conjunctions of atomic formulas.
+
+Alternately, a \texttt{defskeleton} can be augmentend with a
+\texttt{goal}, which may specify one or more geometric
+formulas to check.
+
+When the tool is run, a \texttt{defgoal} is converted to a
+\texttt{defskeleton} that represents as narrowly as possible the
+left-hand side of the implication and has a \texttt{goal} recorded for
+the right-hand side.  The tool then analyzes \texttt{defskeleton}s as
+usual, but realized skeletons found during the course of analysis of a
+\texttt{defskeleton} with a \texttt{goal} are augmented with
+a \texttt{satisfies} S-expression indicating whether the goal is met or
+not.
+
+The tool \texttt{cpsagoalsat} will examine the output from a {\cpsa}
+run, and, for each goal formula, will determine whether the analysis
+ensures that the goal is met.  If not, it identifies the labels of all
+the skeletons that furnish counterexamples to the goal.  See
+Section~\ref{ch:tools}.
+
+The remainder of this chapter is devoted to explaining the semantics
+of this feature in greater detail.
+
+\section{Semantics}\label{sec:semantics}
+
+In a \texttt{defgoal} sentence, the antecedent specifies the point of
+view skeleton.  We focus on the antecedent.  In the example,
+
+\begin{quote}
+\begin{verbatim}
+(defstrand init 3 (a a) (b b) (n1 n1) (n2 n2))
+\end{verbatim}
+\end{quote}
+is extracted from
+\begin{quote}
+\begin{verbatim}
+(and (p "init" z0 3)
+  (p "init" "n1" z0 n1) (p "init" "b" z0 b)).
+\end{verbatim}
+\end{quote}
+Notice that {\cpsa} adds a binding for \texttt{a} and \texttt{n2} just
+as it does had
+\begin{quote}
+\begin{verbatim}
+(defstrand init 3 (b b) (n1 n1))
+\end{verbatim}
+\end{quote}
+been given as input.
+
+Our aim now is to specify how to decide if a security goal is true in
+all possible executions of a protocol.  A skeleton defines a set of
+executions that contain the skeleton's structure.  We say a skeleton
+\emph{satisfies} a formula if the skeleton contains all of the
+structure specified by the formula.  To decide if a skeleton
+satisfies a formula, we decide if it satisfies each of its atomic
+formulas, and combine the results using the rules of first-order
+logic.
+
+Atomic formula \texttt{(p "init" z0 3)} is called a role strand length
+formula.  A skeleton~$k$ satisfies the formula if \texttt{z0} maps to
+a strand~$s$ in~$k$ such that
+\begin{enumerate}
+\item the trace of strand~$s$ in~$k$ has a length greater than 2, and
+\item the trace when truncated to length 3 is an instance of the init
+  role.
+\end{enumerate}
+Consider the shape in Figure~\ref{fig:ns init}.  It satisfies
+\texttt{(p "init" z0 3)} when \texttt{z0} maps to~0.
+
+Atomic formula \texttt{(p "init" "n1" z0 n1)} is called a role
+parameter formula.  A skeleton~$k$ satisfies the formula if
+\texttt{z0} maps to strand~$s$ in~$k$, \texttt{n1} first occurs in at
+position~$i$ in the trace of the init role, and \texttt{n1} maps to a
+message algebra term~$t$ in~$k$ such that
+\begin{enumerate}
+\item the trace of strand~$s$ in~$k$ has a length greater than~$i$,
+\item the trace truncated to length $i+1$ is an instance of the
+  init role, and
+\item the truncated trace is compatible with mapping the init role's
+  \texttt{"n1"} role variable to~$t$.
+\end{enumerate}
+The shape in Figure~\ref{fig:ns init} satisfies \texttt{(p "init" "n1"
+  z0 n1)} when \texttt{z0} maps to~0 and \texttt{n1} maps to the
+message algebra term \texttt{n1}.
+
+Collectively, a skeleton satisfies the formula
+\begin{quote}
+\begin{verbatim}
+(and (p "init" z0 3)
+     (p "init" "a" z0 a) (p "init" "b" z0 b)
+     (p "init" "n1" z0 n1) (p "init" "n2" z0 n2))
+\end{verbatim}
+\end{quote}
+if the skeleton contains the structure specified by
+\begin{quote}
+\begin{verbatim}
+(defstrand init 3 (a a) (b b) (n1 n1) (n2 n2)).
+\end{verbatim}
+\end{quote}
+
+The antecedent in Figure~\ref{fig:ns init} contains two origination
+assertions.  The formula \texttt{(non (privk b))} is extracted as
+\texttt{(privk b)}.  A skeleton~$k$ satisfies the formula if
+\texttt{b} maps to a message algebra term~$t$ in~$k$ such that~$k$
+assumes that~$t$ is non-originating.  The unique origination formula for
+\texttt{n1} is similarly extracted.
+
+Putting it all together, the mapping
+\[\{\mathtt{n1}\mapsto\mathtt{n1},
+\mathtt{n2}\mapsto\mathtt{n2}, \mathtt{a}\mapsto\mathtt{a},
+\mathtt{b}\mapsto\mathtt{b},\mbox{\tt z0}\mapsto0\}\] shows that
+the shape in Figure~\ref{fig:ns init} satisfies the antecedent of the
+security goal.
+
+The \texttt{prec} predicate is used to assert a node precedes another
+node.  The conclusion in Figure~\ref{fig:ns init} with \texttt{(prec
+  z1 1 z0 2)} added is satisfied by the shape using the mapping
+$\mbox{\tt z0}\mapsto0$ and $\mbox{\tt z1}\mapsto1$.
+
+The \texttt{uniq-at} predicate is used to assert not only that an atom
+uniquely originates, but also the node at which it originates.  In the
+Figure~\ref{fig:ns init} goal, the \texttt{(uniq n1)} formula could
+have been replaced by \texttt{(uniq-at n1 z0 0)}.  The extracted point
+of view skeleton is the same.
+
+The \texttt{ugen} and \texttt{ugen-at} predicates are similar, except
+that they refer to an earliest outbound occurrence, whether carried or
+not.  If an atom is an asymmetric key, it and its inverse are
+generated together at the first outbound occurrence of either one.
+
+\iffalse{
+    %
+    In the Diffie-Hellman algebra (see Section~\ref{sec:input:dh}), a
+    random exponent $x\colon\sym{rndx}$ is \texttt{absent} from a term
+    $t\colon\sym{expt}$ if the latter is a monomial in which $x$ is of
+    degree 0.  Homomorphisms must preserve this positive formula,
+    meaning that, given a skeleton satisfying
+    $\texttt{absent}(x,\alpha)$, a map such as $\alpha\mapsto xy$ is
+    not a homomorphism instantiating $\alpha$.  It would map $\alpha$
+    to a monomial in which $x$ has degree 1.  }
+  %
+\fi
+
+Recall that our aim in analyzing a protocol is to find out what
+security goals are true in all of its possible executions.  We are
+interested in runs of {\cpsa} that show that when every shape
+satisfies a goal, it is true in every execution.
+
+When {\cpsa} performs a shape analysis, every shape it generates
+refines the input skeleton.  Skeleton refinement is defined
+in~Chapter~\ref{ch:algorithm}.  The definition makes precise the
+notion of structure containment, as skeleton~$A$ refines skeleton~$B$
+if and only if~$A$ contains the structure of skeleton~$B$.
+
+The skeleton~$k_0$ extracted from the antecedent of a security goal
+has the property that a skeleton refines~$k_0$ if and only if it
+satisfies the antecedent.  A skeleton with this property is called the
+\emph{characteristic skeleton} of the antecedent.
+
+Given a goal~\(\Phi\), consider a shape analysis starting from the
+characteristic skeleton~$k_0$ of its antecedent.  Assume {\cpsa} finds
+shapes $k_1,\ldots,k_n$ and that {\cpsa} determines that each~$k_i$
+satisfies~$\Phi$.  Consider the executions that contain the structure
+in~$k_0$.  {\cpsa} tells us that each execution is in the executions
+that contain the structure of some~$k_i$.  Furthermore, because~$k_0$
+is a characteristic skeleton, each~$k_i$ satisfies the antecedent
+of~$\Phi$.  Executions that do not contain the structure in~$k_0$ do
+not satisfy the antecedent.  Therefore,~$\Phi$ is true in all
+executions of the protocol and maximally informative.
+
+\section{Examples}\label{sec:examples}
+
+This section contains examples of both authentication and secrecy
+goals.  The first example shows the feedback the user receives when a
+shape does not satisfy a security goal.  The second example shows how
+to use a listener to state a secrecy goal.
+
+\subsection{Needham-Schroeder Responder}\label{sec:ns resp}
+
+\begin{figure}
+\begin{verbatim}
+(defgoal ns                ; Goal
+  (forall ((a b name) (n2 text) (z0 strd))
+    (implies
+      (and (p "resp" z0 3) (p "resp" "n2" z0 n2)
+        (p "resp" "a" z0 a) (p "resp" "b" z0 b)
+        (non (privk a)) (uniq n2))
+      (exists ((z1 strd))
+        (and (p "init" z1 2) (p "init" "b" z1 b))))))
+
+(defskeleton ns            ; Point of view skeleton
+  (vars (a b name) (n1 n2 text))
+  (defstrand resp 3 (a a) (b b) (n1 n1) (n2 n2))
+  (non-orig (privk a))
+  (uniq-orig n2))
+\end{verbatim}
+\begin{center}
+\includegraphics{cpsadiagrams-10.mps}
+\end{center}
+\begin{verbatim}
+(defskeleton ns            ; Shape
+  (vars (n1 n2 text) (a b b-0 name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig n2)
+  (satisfies (no (a a) (b b) (n2 n2) (z0 0))))
+\end{verbatim}
+\caption{Needham-Schroeder Responder Point of View}
+\label{fig:ns resp}
+\end{figure}
+
+Figure~\ref{fig:ns resp} contains an analysis of Needham-Schroeder
+from the point of view of a complete run of the responder under the
+assumption that the responder's private key is uncompromised and the
+nonce it generates uniquely originates.
+
+The conclusion of the goal asserts that in an execution compatible
+with the point of view, there must be an initiator strand that agrees
+with the responder strand on the name \texttt{b}.  The shape produced
+by {\cpsa} is a counterexample to this assertion.  Because of this,
+{\cpsa} annotates the shape with
+\begin{quote}
+\begin{verbatim}
+(satisfies (no (a a) (b b) (n2 n2) (z0 0))).
+\end{verbatim}
+\end{quote}
+The annotation includes a variable mapping for the shape that
+satisfies the antecedent of the goal but does not satisfy its
+conclusion.  The reason the shape does not satisfy the goal is because
+the mapping \texttt{(b b)} maps the initiator's \texttt{b} parameter
+to \texttt{b}, not \texttt{b-0} as is required to model the shape.
+
+Galvin Lowe identified this authentication failure in
+Needham-Schroeder and provided a fix.  In the Needham-Schroeder-Lowe
+Protocol, the name \texttt{b} is included within the encryption in second
+message of both roles.  With this modification, the shape found by
+{\cpsa} satisfies the security goal in Figure~\ref{fig:ns resp}, so
+Needham-Schroeder-Lowe achieves this authentication goal.
+
+\subsection{A Needham-Schroeder Secrecy Goal}\label{sec:secrecy goal}
+
+\begin{figure}
+\begin{quote}\small
+\begin{verbatim}
+(defgoal ns
+  (forall ((a b name) (n1 text) (z0 z1 strd))
+    (implies
+      (and (p "init" z0 3) (p "init" "n1" z0 n1)
+        (p "init" "a" z0 a) (p "init" "b" z0 b)
+        (p "" z1 1) (p "" "x" z1 n1)  ; Listener
+        (non (privk a)) (non (privk b))
+        (uniq n1))
+      (false))))
+\end{verbatim}
+\end{quote}
+\caption{Needham-Schroeder Secrecy Goal}\label{fig:ns secrecy}
+\end{figure}
+
+Figure~\ref{fig:ns secrecy} contains an analysis of Needham-Schroeder
+from the point of view of a complete run of the initiator under the
+assumption that the responder's and its peer's private keys are
+uncompromised and the nonce~\texttt{n1} it generates uniquely
+originates.  Futhermore, the point of view asserts that the nonce is
+leaked using a listener.
+\begin{quote}
+\begin{verbatim}
+(p "" z1 1) (p "" "x" z1 n1)    ; Listener
+\end{verbatim}
+\end{quote}
+
+{\cpsa} finds no shapes, so Needham-Schroeder achieves this secrecy
+goal and does not leak~\texttt{n1}.
+
+\section{The Rest of the Story}\label{sec:whole story}
+
+The examples in the previous section demonstrate the typical way
+security goals are analyzed with {\cpsa}.  However, there are more
+features that may be useful.
+
+A \texttt{defgoal} form may contain more than one sentence.  See
+Figure~\ref{fig:ns init goals} for an example.  When presented with
+more than one sentence, {\cpsa} extracts the point of view skeleton
+from the first sentence.
+
+It is wise to ensure that the antecedent in every sentence is
+identical.  When {\cpsa} performs satisfaction-checking on
+sentence~$\Phi$, it only determines if each shape it finds is
+satisfied.  If the point of view skeleton is not the characteristic
+skeleton of the antecedent of~$\Phi$, the fact that all skeletons
+satisfy~$\Phi$ cannot be used to conclude that~$\Phi$ is true in all
+executions of the protocol.
+
+\begin{figure}
+\begin{quote}\small
+\begin{verbatim}
+(defgoal ns
+  (forall ((a b name) (n text) (z0 strd))
+    (implies
+      (and (p "init" z0 2) (p "init" "n1" z0 n)
+        (p "init" "a" z0 a) (p "init" "b" z0 b)
+        (non (privk a)) (non (privk b)) (uniq n))
+      (exists ((z1 strd))
+        (and (p "resp" z1 2) (p "resp" "b" z1 b)))))
+  (forall ((a b name) (n text) (z0 strd))
+    (implies
+      (and (p "init" z0 2) (p "init" "n1" z0 n)
+        (p "init" "a" z0 a) (p "init" "b" z0 b)
+        (non (privk a)) (non (privk b)) (uniq n))
+      (exists ((z1 strd))
+        (and (p "resp" z1 2) (p "resp" "a" z1 a))))))
+\end{verbatim}
+\end{quote}
+\caption{Two Initiator Authentication Goals}\label{fig:ns init goals}
+\end{figure}
+
+{\cpsa} performs satisfaction-checking when an input skeleton in annotated
+with one or more security goals.  The annotation uses the
+\texttt{goals} key.
+
+\begin{quote}
+  \begin{alltt}
+(defskeleton
+   \ldots
+   (goals \textsc{sent\ensuremath{+}}))
+  \end{alltt}
+\end{quote}
+
+The program \texttt{cpsasas}, discussed in the next section, can be
+used to generate a formula with an antecedent such that the input
+skeleton is the characteristic skeleton of the antecedent.
+
+\subsection{Shape Analysis Sentences}\label{sec:sas}
+
+A shape analysis sentence expresses all that can be learned from a run
+of {\cpsa} as a security goal.  If a security goal can be derived from
+a shape analysis sentence, then the protocol achieves the security
+goal, that is, the goal is true in all executions of the protocol.
+
+The program \texttt{cpsasas} extracts shape analysis sentences from
+the output of {\cpsa}.  Consider the first example in this paper
+(Figure~\ref{fig:ns init}), which is in the sample file
+\texttt{goals.scm}.  To generate a maximally informative security goal
+from the initiator point of view with \texttt{ghci} and
+\texttt{Make.hs}, type
+\begin{quote}
+\begin{verbatim}
+$ ghci Make.hs
+*Make> sas "goals"
+\end{verbatim}
+\end{quote}
+When using GNU make, type ``\texttt{make goals\_sas.text}''.  The
+resulting shape analysis sentence is displayed in Figure~\ref{fig:ns
+  sas}.
+
+\begin{figure}\small
+\begin{verbatim}
+(defgoal ns
+  (forall ((n1 n2 text) (b a name) (z strd))
+    (implies
+      (and (p "init" z 3) (p "init" "n1" z n1)
+        (p "init" "n2" z n2) (p "init" "a" z a)
+        (p "init" "b" z b) (non (privk b)) (uniq-at n1 z 0))
+      (exists ((n2-0 text) (z-0 strd))
+        (and (p "resp" z-0 2) (p "resp" "n2" z-0 n2-0)
+          (p "resp" "n1" z-0 n1) (p "resp" "b" z-0 b)
+          (p "resp" "a" z-0 a) (prec z 0 z-0 0)
+          (prec z-0 1 z 1))))))
+\end{verbatim}
+\caption{Initiator Shape Analysis Sentence}\label{fig:ns sas}
+\end{figure}
+
+A shape analysis sentences asserts that either a realized skeleton
+does not satisfy its antecedent or it satisfies one or more of the
+disjuncts in its conclusion.  {\cpsa} has been designed so that this
+assertion is true.  Therefore, every shape analysis sentence is true
+in all executions.
+
+A security goal is true in all executions if it can be derived from a
+shape analysis sentence~\cite{Ramsdell12}.  In practice,
+theorem-proving using shape analysis sentences is rarely employed.
+It's clumsy and it requires too much expertise.  The main use of
+\texttt{cpsasas} is for generating a formula that is edited to become
+a desired security goal.
+
+\section{Rules}\label{sec: rules}
+
+Support for rules was introduced in version 3.6.0 of {\cpsa}.
+
+Each protocol includes a small collection of rules.  A rule is a
+sentence in the goal language presented in Section~\ref{sec:goalsyntax}.
+Rules are defined after the roles of a protocol are defined.  The
+syntax of a rule follows.
+
+\begin{center}\scshape
+  \begin{tabular}{rcl}
+    rule&$\leftarrow$&(\sym{defrule} name sent comments)
+  \end{tabular}
+\end{center}
+
+A rule is an axiom added to a protocol.  {\cpsa} uses the axiom as a
+rewrite rule to derive zero or more new skeletons from a skeleton
+produced during a step.  An example of a protocol with a rule is in
+Figure~\ref{fig:doorsep} on Page~\pageref{fig:doorsep}.
+
+The trust rule states that when CPSA finds a person strand of length
+at least one, and the inverse of it's \texttt{p} parameter is
+non-originating, CPSA should assume the inverse of it's \texttt{d}
+parameter is non-originating.
+
+\subsection{Facts}\label{sec:facts}
+Each skeleton includes a small database of facts.  A fact is a named
+relation among fact terms.  A fact term\index{fact term} is either a
+strand of the skeleton or an algebra term.  A set of facts is defined
+anywhere after strands are defined using the \sym{facts} form.  The
+syntax of facts follows.
+
+\begin{center}\scshape
+  \begin{tabular}{rcl}
+    facts&$\leftarrow$&(\sym{facts} fact$\ast$) \\
+    fact&$\leftarrow$&(symbol fterm$\ast$) \\
+    fterm&$\leftarrow$&mesg $\mid$ nat
+  \end{tabular}
+\end{center}
+
+For example, in a skeleton, a user may want to note that strand 0 owns
+the private key for~\texttt{a} by assuming.
+
+\begin{center}
+  \verb|(facts (owns 0 (privk a)))|
+\end{center}
+
+Facts are most useful when combined with rules.  Here is an example of
+their combination.  Suppose a point of view skeleton has two names,
+\texttt{a} and~\texttt{b}, and the problem is modeling a situation in
+which the two names are known to differ.  To enforce this constraint, add
+\begin{center}
+  \verb|(facts (neq a b))|
+\end{center}
+to the point of view skeleton and the \texttt{neq} rule below to the
+protocol.
+
+%below, eliminates skeletons that
+%violate the constraint.
+\begin{quote}
+\begin{verbatim}
+(defrule neq
+  (forall ((a mesg))
+    (implies
+      (fact neq a a)
+      (false))))
+\end{verbatim}
+\end{quote}
+
+\subsection{DoorSEP}
+
+\begin{sloppypar}
+As a motivating scenario consider the Door Simple Example Protocol
+(DoorSEP), derived from an expository protocol that was designed to
+have a weakness.  Despite this, the protocol achieves the needs of an
+application, given a trust assumption.
+\end{sloppypar}
+
+Imagine a door~$D$ which is equipped with a badge reader, and a
+person~$P$ equipped with a badge.  When the person swipes the badge,
+the protocol executes.  Principals such as doors or persons are
+identified by the public parts of their key pairs, with \iv{D} and
+\iv{P} being the corresponding private keys.  We write \enc{M}{K} for
+the encryption of message~$M$ with key~$K$.  We represent digital
+signatures $\enc{M}{\iv{P}}$ as if they were the result of encrypting
+with $P$'s private key.
+
+$P$ initiates the exchange by creating a fresh symmetric key~$K$,
+signing it, and sending it to the door $D$ encrypted with the door's
+public key.  $D$ extracts the symmetric key after checking the
+signature, freshly generates a token~$T$, and sends it---encrypted
+with the symmetric key---back to $P$.  $P$ demonstrates they are
+authorized to enter by decrypting the token and sending it as
+plaintext to the door.  The two roles of DoorSEP are shown in
+Fig.~\ref{fig:doorsep protocol}, where each vertical column displays
+the behavior of one of the roles.  The {\cpsa} encoding of the roles is
+in Figure~\ref{fig:doorsep}.
+
+\begin{figure}[tb]
+  \[\begin{array}[c]{rc@{\qquad\qquad}cl}
+      & \mbox{person}
+      &\mbox{door}
+      &\\
+      \begin{array}[c]{r} ~ \\ ~ \\
+        \mbox{Fresh: $K$}
+      \end{array}
+      & \xymatrix@R=2mm@C=7em{
+      \bullet\ar@{=>}[d]\ar[r]^{\enc{\enc{K}{\iv{P}}}{D}}
+      &\\
+      \bullet\ar@{=>}[d]& \ar[l]_{\enc{T}{K}}\\
+      \bullet \ar[r]^T & }
+      &
+        \xymatrix@R=2mm@C=7em{
+        \ar[r]^{\enc{\enc{K}{\iv{P}}}{D}}    &\bullet\ar@{=>}[d]\\
+      &\bullet\ar@{=>}[d] \ar[l]_{\enc{T}{K}}\\
+      \ar[r]^T      &\bullet}
+      &
+        \begin{array}[c]{r} ~ \\ ~ \\
+          \mbox{Fresh: $T$}
+        \end{array}
+  \end{array}\]
+  \caption{DoorSEP Protocol}\label{fig:doorsep protocol}
+\end{figure}
+
+%   \[
+%   \begin{array}{l@{{}:{}}l}
+%     P\to D & \enc{\enc{K}{\iv{P}}}{D}\\
+%     D\to P & \enc{T}{K}\\
+%     P\to D & T.
+%   \end{array}
+%   \]
+
+{\cpsa} finds an undesirable execution of DoorSEP.  Assume the
+person's private key \iv{P} is uncompromised and the door has received
+the token it sent out.  Then {\cpsa} finds that~$P$ freshly created
+the symmetric key~$K$.  However, nothing ensures that the person meant
+to open door $D$.  If $P$ ever initiates a run with a compromised
+door~$C$, the adversary can perform a man-in-the-middle attack,
+decrypting using the compromised key $C^{-1}$ and re-encrypting with
+$D$'s public key, as elided in the $\cdots$ in Fig.~\ref{fig:doorsep
+  first shape}.  To verify this result with {\cpsa}, remove the trust
+axiom in the doorsep protocol in \texttt{examples/rules.scm} and run
+{\cpsa}.
+%
+\begin{figure}[tb]
+  \[\xymatrix@R=2mm@C=7em{
+    \txt{\strut person}&&\txt{\strut door}\\
+    \bullet \ar[r]^{\enc{\enc{K}{\iv{P}}}{C}} & \cdots\ar[r]^{\enc{\enc{K}{\iv{P}}}{D}} &
+    \bullet\ar@{=>}[d] \\
+    & \null &   \bullet\ar@{=>}[d]\ar[l]_{\enc{T}{K}}\\
+    &\null\ar[r]^T & \bullet}\]
+  \begin{center}
+    Uncompromised: $P\quad$ Fresh: $K, T$
+  \end{center}
+  \caption{DoorSEP Weakness}\label{fig:doorsep first shape}
+\end{figure}
+%
+%   \[
+%   \begin{array}{l@{{}:{}}l}
+%     P\to A & \enc{\enc{K}{\iv{P}}}{C}\\
+%     A\to D & \enc{\enc{K}{\iv{P}}}{D}\\
+%     D\to A & \enc{T}{K}\\
+%     A\to D & T.
+%   \end{array}
+%   \]
+%
+Thus, without additional assumptions, the door cannot authenticate the
+person requesting entry.
+
+\begin{figure}\small
+\begin{verbatim}
+(defprotocol doorsep basic
+  (defrole person
+    (vars (d p akey) (k skey) (t text))
+    (trace
+     (send (enc (enc k (invk p)) d))
+     (recv (enc t k))
+     (send t)))
+  (defrole door
+    (vars (d p akey) (k skey) (t text))
+    (trace
+     (recv (enc (enc k (invk p)) d))
+     (send (enc t k))
+     (recv t)))
+  (defrule trust
+    (forall ((z strd) (p d akey))
+            (implies
+             (and (p "person" z 1)
+                  (p "person" "p" z p)
+                  (p "person" "d" z d)
+                  (non (invk p)))
+             (non (invk d))))
+    (comment "The trust rule"))
+  (comment "Doorsep protocol using unnamed asymmetric keys"))
+
+(defskeleton doorsep
+  (vars (p akey))
+  (defstrand door 3 (p p))
+  (non-orig (invk p))
+  (comment "Analyze from the doors's perspective"))
+\end{verbatim}
+\caption{Door Simple Example Protocol}\label{fig:doorsep}
+\end{figure}
+
+But possibly we can trust the person to swipe her badge only in front
+of doors our organization controls.  And we can we ensure that our
+doors have uncompromised private keys.  If so, then the adversary
+cannot exercise the flaw.
+
+We regard this as a \emph{trust assumption}, and we can express it as
+an axiom:
+%
+\begin{axiom}\label{axiom:trust assumption}
+  If an uncompromised signing key ${\iv{P}}$ is used to prepare an
+  instance of the first DoorSEP message, then its owning principal has
+  ensured that the selected door $D$ has an uncompromised private key.
+\end{axiom}
+%
+The responsibility for ensuring the truth of this axiom may be split
+between $P$ and the organization controlling $D$.  $P$ makes sure to
+swipe her badge only at legitimate doors of the organization's
+buildings.  The organization maintains a security posture that
+protects the corresponding private keys.
+
+\medskip\noindent\textbf{Is DoorSEP good enough}, assuming the trust
+axiom?  Add the trust axiom back to the doorsep protocol in
+\texttt{doc/rules.scm} and see.  You should find that the protocol
+does its job; namely, ensuring that the door opens only when an
+authorized person requests it to open.
+
+\subsection{Generated rules}
+\label{sec:goals:rules:gen}
+
+{\cpsa} generates certain rules either automatically in all cases or
+else as a consequence of user inputs.  The rules generated for a given
+protocol input may be found in the printed output for that protocol;
+these are the formulas appearing in \texttt{defgenrule} forms in the
+\texttt{.txt} and \texttt{.xhtml} files.
+
+\paragraph{Negated equalities.}  Since negated equalities are often
+needed to express assumptions users are interested in, {\cpsa}
+generates three rules with the body:
+%
+\begin{verbatim}(implies (fact neq x x)
+         (false))
+\end{verbatim}
+%
+This rule has the effect of terminating a branch of analysis if two
+expressions that the user has stipulated should not be equal become
+unified to the same value.  Three rules are generated since the
+variable \verb|x| may be of sort \verb|mesg|, or of sort \verb|strd|
+for a strand in the skeleton, or of sort \verb|indx| meaning the index
+of a node along a strand.  To stipulate a negated equality between two
+expressions $e_1,e_2$, the user may write in the input file:
+%
+\begin{tabbing}
+\texttt{(de}\=\texttt{fskeleton protocol}  \\
+  \>\dots strand declarations, etc. \dots \\
+  \>\texttt{(facts (neq} $e_1$ $e_2$\texttt{)))}
+\end{tabbing}
+%
+Negated equality assertions may also appear in the conclusions of
+user-defined rules, or anywhere else that an atomic formula may
+appear.
+
+A good number of additional rules are generated to implement {\cpsa}
+4's model of state (see Section~\ref{sec:channels:state:state},
+esp. Figs.~\ref{fig:leads:to}--\ref{fig:derived:state:rules} and
+pp.~\pageref{state:gen:rules:start}--\pageref{state:gen:rules:end}).
+
+\paragraph{``Assume'' declarations.}  A formula may be provided after
+the \verb|trace| declaration in a \verb|defprotocol| declaration in an
+\verb|assume| clause.  For instance:\footnote{See the file
+  \texttt{dhcr\_um\_expt\_assume.scm} in the manual examples
+  directory.}
+%
+\begin{verbatim}(defrole init
+    (vars ...)
+    (trace ...)
+    ...
+    (assume (fact neq (exp (gen) upsilon) (gen))))
+\end{verbatim}
+%
+In this case, the {\cpsa} loader checks that all of the free variables
+(just \verb|upsilon| here) appear in the trace.  If $i$ is the first
+height at which all of the variables have occurred, {\cpsa} generates
+a rule stating that any instance of the rule of height $\ge i$
+satisfies this property of the instances of the role parameters.  In
+this case, $i=4$, so the generated formula states:
+%
+\begin{verbatim}(defgenrule assume-init-0
+    (forall ((z strd) (upsilon expt))
+      (implies (and (p "init" z 4) (p "init" "upsilon" z upsilon))
+        (fact neq (exp (gen) upsilon) (gen)))))
+\end{verbatim}
+%
+Here, the assumption is the uninterpreted predicate symbol \verb|neq|
+applied to two expressions.  However, the assumption may also involve
+conjunction and existential quantifiers.  {\cpsa} also permits
+disjunctions, but these typically cause unreasonable branching and bad
+performance.
+
+In case the assumption is a fact, such as the \verb|neq| assertion
+above, one can write
+%
+\begin{verbatim}(defrole init
+    (vars ...)
+    (trace ...)
+    ...
+    (facts (neq (gen) (exp (gen) upsilon))))
+\end{verbatim}
+%
+instead of writing the assume annotation above.  Many facts may be
+listed as clauses here, with the effect of a conjunction.  The keyword
+here is the plural \verb|facts|, and the singular \verb|fact| does not
+appear in the individual clauses.
+
+The \verb|facts| annotation may also appear in a \verb|defskeleton|
+query.
+%
+\begin{verbatim}(defskeleton dhcr-um
+  (vars (a b name) (beta expt))
+  (defstrand init 5 (a a) (b b) (beta beta))
+  (non-orig (privk "sig" b))
+  (facts (neq a b) (undisclosed beta)))
+\end{verbatim}
+%
+Currently, {\cpsa} does not recognize the \verb|assume| keyword in
+\verb|defskeleton| queries.
+
+\subsection{Rules generated for trace annotations}
+\label{sec:goals:rules:gen:trace}
+%
+{\cpsa} now allows a few types of annotations to be interspersed
+within the trace declaration within a role.  These are:
+%
+\begin{description}
+  \item[cheq,] used to ensure that two values are equal in any
+  instance of the role that progresses beyond this point;
+  \item[rely,] used after a reception to declare a formula containing
+  only free variables appearing up to and including this reception.
+  Every instance of the role long enough to include a successful
+  instance of this reception must satisfy the formula;
+  \item[guar,] used before a transmission to declare a formula
+  containing only free variables appearing up to and including the
+  following transmission.  Every instance of the role long enough to
+  include an instance of the following transmission must satisfy the
+  formula.
+\end{description}
+%
+All of these trace annotations will cause similar rules to be
+generated.  However, when Zappa compiles role definitions to Rust
+code, they are compiled to have different operational effects.  Trace
+annotations do not add to the height of the trace.  They simply
+express constraints on what happens in the ``real'' events around
+them.
+
+\paragraph{Checking equality.}  Many protocols use \emph{commitments}
+%
+\begin{figure}\small
+\begin{verbatim}(defrole auctioneer
+    (vars (a b name) (n data) (quote outcome text) (sealed mesg))
+    (trace
+     (recv (enc "bid" sealed (privk "sig" a)))
+     (send (enc "receipt" sealed (privk "sig" b)))
+     (recv (cat n quote))
+     (cheq sealed (hash a b n quote))
+     (send (enc "result" a b n quote outcome (privk "sig" b)))))\end{verbatim}
+
+   \caption[Decommitment with \texttt{cheq}]{A role that accepts a
+     commitment and decommits it with \texttt{cheq}}
+  \label{fig:commit:cheq}
+\end{figure}
+%
+that are messages that the recipient obtains early in a session, but
+cannot fully destructure.  Subsequent messages may \emph{decommit} by
+providing information that allows the recipient to further destructure
+an earlier message.  A \emph{check-equality} annotation, written:
+%
+\begin{verbatim}  (cheq var term)\end{verbatim}
+%
+may be used in these situations.
+
+For instance, in Fig.~\ref{fig:commit:cheq}, an auctioneer receives a
+sealed bid in its first event.\footnote{See the file
+  \texttt{commitment.scm} in the manual examples directory.}
+%
+\begin{figure}\small
+%
+\begin{verbatim}  (defgenrule cheq-auctioneer-4
+    (forall ((z strd) (quote text) (n data) (b a name) (sealed mesg))
+      (implies
+        (and (p "auctioneer" z 4) (p "auctioneer" "quote" z quote)
+          (p "auctioneer" "n" z n) (p "auctioneer" "b" z b)
+          (p "auctioneer" "a" z a) (p "auctioneer" "sealed" z sealed))
+        (= sealed (hash a b n quote)))))
+\end{verbatim}
+%
+  \caption[Generated rule, \texttt{cheq}]{Generated rule for the
+    auctioneer's \texttt{cheq}}
+  \label{fig:commit:cheq:rule}
+\end{figure}
+%
+If, after returning a receipt for the bid, the auctioneer
+subsequently---presumably, when the auction has closed---receives a
+nonce and a quote, and checks that the sealed bid is a hash reflecting
+these values.  If so, it delivers an outcome, e.g.~a contract if this
+is the winning bid or a message of regret otherwise.
+
+{\cpsa} generates a rule that states that ``long-enough'' instances of
+the auctioneer role will satisfy the equality expressed in
+Fig.~\ref{fig:commit:cheq:rule}, for that instance's values of the
+role parameters.  In this case, ``long enough'' instances are of
+height 4, since the final send is the fourth event; the \verb|cheq|
+annotation does not count as an event.  The relevant role parameters
+are the ones named \verb|"sealed"|, \verb|"a"|, \verb|"b"|,
+\verb|"n"|, and \verb|"quote"|.
+
+\paragraph{Expressing rely and guarantee statements.}  In work on
+trust management, and on compiling cryptographic
+protocols~\cite{GuttmanEtAl04,GuttmanEtAl05,McCarthyEtAl07}, we
+introduced the idea of a \emph{rely formula} that expresses what a
+principal learns when a message is received, possibly assuming that
+certain peers are uncompromised.  We also introduced the idea of a
+(dual) \emph{guarantee formula} that must be true in order for a
+principal to transmit a message.  In particular, if a message sent by
+a principal $A$ has a particular guarantee formula $\phi$, and a peer
+$B$ receives it and authenticates its origin with $A$ in this step of
+the protocol, then $B$ may rely on a formula with the meaning, $A$
+\emph{says} $\phi$.
+
+This example will be \emph{sound} in the sense that the authentication
+property ensures that $A$ really did say (i.e.~guarantee) $\phi$ in
+any execution in which $B$ relies on the claim.  The soundness of rely
+statements may be checked by analyzing the protocol with the rely
+statements are omitted, and querying them as goal statements under the
+relevant non-compromise assumptions.  We will now assume that this
+soundness checking has been done, and that any relevant non-compromise
+assumptions are made in the protocol definition.
+
+Thus, a \emph{rely} formula definitely holds true whenever the
+principal successfully completes the preceding receive event.  Indeed,
+the operational interpretation of a \emph{rely} formula is that the
+principal will add an assertion to a database of its knowledge.
+{\cpsa} transforms a \emph{rely} formula after a reception which is at
+height $i$ in a trace into a rule stating:  ``long-enough'' instances
+of the role will satisfy the formula, for that instance's values of
+the role parameters.
+
+This transformation is similar to what {\cpsa} does for a \texttt{cheq}
+annotation, except that instead of an equation, the conclusion may
+involve other atomic formulas, conjunctions, and existential
+quantifiers.  Disjunctions are permitted, but will usually lead to
+intractable {\cpsa} analysis.
+
+A \emph{guarantee} formula has a dual relation with a subsequent
+transmission.  Just as the received message may determine the
+instances of parameters appearing in a rely formula, a guarantee
+formula may dually select instances of parameters that will appear in
+the subsequent transmission.  As a rely formula is interpreted
+operationally as an assert to a database held by the principal, a
+guarantee formula is interpreted operationally as a query against that
+database.  Hence, assertions caused by previous rely formulas may
+influence the parameter instances selected by subsequent guarantee
+formulas.
+
+\paragraph{A rely-guarantee example.}  Consider a protocol in which a
+customer will interact with a merchant and a bank to purchase an item
+at a cost; the merchant will be paid by a debit from the customer's
+account at the bank.  Each participant should obtain evidence that the
+expected peers are participating in a corresponding session.
+Moreover, the merchant does not need to know the customer's account
+number, and therefore should not see this information.  The bank does
+not need to know what item the customer is buying, and therefore
+should not see that.  Outsiders should not see the details at all.
+How best to achieve this goal?
+
+Each party will need to generate a digital signature, since in case of
+dispute a third party must be able to reconstruct who committed to
+paying whom, and to sending what merchandise.  Moreover, public key
+encryption will be needed, at least for a handshake, since the parties
+must protect secrets from the outsiders and from the third party.
+Thus, there is no way to avoid having three digital signatures
+generated, along with a similar number of public key encryptions, with
+corresponding verification and decryption actions.  A protocol that
+achieves this goal is found in~\texttt{examples/minipay.scm}.
+
+Each party is making assertions, in effect.  The customer asserts his
+desire to buy the item for the cost.  The bank asserts that it will
+transfer the funds to the merchant.  The merchant asserts that it will
+ship the item.  Moreover, the protocol should ensure that each party
+knows that the others have made these commitments.  For instance, the
+merchant is willing to ship the goods because it knows that the bank
+will transfer the payment.  Thus, each party makes a \emph{guarantee},
+and each party learns that it may \emph{rely} on its peers having made
+their guarantee.  A fine point is the bank's rely formula; it learns
+that the customer has requested \emph{some} item in exchange for the
+cost, but not which one.  Thus, the item is existentially bound in the
+bank's rely formula.
+
+This yields the rely and guarantee formulas displayed in
+Fig.~\ref{fig:minipay:rely:guar}; the protocol with these trust
+annotations may be found in~\texttt{examples/minipay-rely-guar.scm}.
+%
+\begin{figure}\small
+\begin{verbatim}  (defrole cust (vars ...)
+    (trace
+      (guar (fact buy-via c m b item cost n))
+      (send ...)
+      (recv ...)           ; from bank
+      (rely (fact will-transfer c m b cost n mtr btr))
+      (recv ...)           ; from merchant
+      (rely (fact will-ship c m b item mtr))))
+
+  (defrole merc (vars ...)
+    (trace
+      (recv ...)           ; from customer
+      (send ...)
+      (recv ...)           ; from bank
+      (rely (and (fact buy-via c m b item cost n)
+                 (fact will-transfer c m b cost n mtr btr)))
+      (guar (fact will-ship c m b item mtr))
+      (send ...)))
+
+  (defrole bank (vars ...)
+    (trace
+      (recv ...)
+      (rely (exists ((item merchandise))
+                    (fact buy-via c m b item cost n)))
+      ;; Do not proceed unless customer signature trustworthy.
+      ;; Given that, now commit to transferring the funds
+      (guar (and (non (privk "sig" c))
+                 (fact will-transfer c m b cost n mtr btr)))
+      (send ...))) \end{verbatim}
+
+  \caption[Minipay rely/guarantee formulas]{Rely and gauantee formulas
+    in \texttt{minipay.scm}}
+  \label{fig:minipay:rely:guar}
+\end{figure}
+%
+The principals in a particular session are required not to proceed
+past a guarantee formula unless the instances of the variables are
+known to satisfy the property claimed.  The rely formulas summarize
+what they have learned in the preceding reception.
+
+But:  How do we know these formulas are in fact true in every
+execution that includes the preceding reception, or at least every
+execution satisfying some reasonable assumptions about uncompromised
+keys?
+
+We can use goal formulas to check this.  In a separate file,
+\texttt{examples/minipay-guar.scm}, we define the protocol with the
+same message structure and guarantee formulas, but with no rely
+formulas.  We now pose goal statements for {\cpsa} to resolve; these
+are shown in
+Fig.~\ref{fig:rely:goals:cust}--\ref{fig:rely:goals:others}.  In these
+formulas, the conclusions are the rely statements that must be
+justified.  The hypotheses say that there is a strand $z$
+instantiating the relevant role long enough to reach the rely
+statement position.  They also connect the variables in the rely
+formula with the parameters of $z$.  Moreover, each customer goal
+assumes only the relevant peer's signature key to be non-compromised.
+The merchant assumes only the bank's signing key non-compromised,
+which is desirable since it may have no long-term association with the
+customer.  The bank presumably has an association with the customer,
+established when the customer opened the account; the customer's
+signing key could be established at that time.
+
+The goals may be constructed from the generated rules {\cpsa} provides
+when processing~\texttt{examples/minipay-rely-guar.scm}, essentially
+adding the non-compromise assumptions.
+%
+\begin{figure}\small
+\begin{verbatim}(defgoal minipay-guar
+  (forall
+   ((z strd) (c m b name) (cost amount) (n data) (mtr btr text))
+   (implies
+    (and (p "cust" z 2)
+         (p "cust" "c" z c)
+         (p "cust" "m" z m)
+         (p "cust" "b" z b)
+         (p "cust" "cost" z cost)
+         (p "cust" "n" z n)
+         (p "cust" "mtr" z mtr)
+         (p "cust" "btr" z btr)
+         (non (privk "sig" b)))
+    (fact will-transfer c m b cost n mtr btr))))
+
+(defgoal minipay-guar
+  (forall
+   ((z strd) (c m b name) (item merchandise) (n data) (mtr btr text))
+   (implies
+    (and (p "cust" z 3)
+         (p "cust" "c" z c)
+         (p "cust" "m" z m)
+         (p "cust" "b" z b)
+         (p "cust" "item" z item)
+         (p "cust" "n" z n)
+         (p "cust" "mtr" z mtr)
+         (p "cust" "btr" z btr)
+         (non (privk "sig" m)))
+    (fact will-ship c m b item mtr))))
+\end{verbatim}
+  \caption[Goal statements, 1]{Goal statements to validate customer's rely formulas}
+  \label{fig:rely:goals:cust}
+\end{figure}
+
+\begin{figure}\small
+\begin{verbatim}(defgoal minipay-guar
+  (forall
+   ((z strd) (c m b name) (item merchandise) (cost amount) (n data) (mtr btr text))
+   (implies
+    (and (p "merc" z 3)
+         (p "merc" "c" z c)
+         (p "merc" "m" z m)
+         (p "merc" "b" z b)
+         (p "merc" "item" z item)
+         (p "merc" "cost" z cost)
+         (p "merc" "n" z n)
+         (p "merc" "mtr" z mtr)
+         (p "merc" "btr" z btr)
+         (non (privk "sig" b)))
+    (and (fact will-transfer c m b cost n mtr btr)
+         (fact buy-via c m b item cost n)))))
+
+(defgoal minipay-guar
+  (forall
+   ((z strd) (c m b name) (cost amount) (n data))
+   (implies
+    (and (p "bank" z 1)
+         (p "bank" "c" z c)
+         (p "bank" "m" z m)
+         (p "bank" "b" z b)
+         (p "bank" "cost" z cost)
+         (p "bank" "n" z n)
+         (non (privk "sig" c)))
+    (exists ((item merchandise))
+            (fact buy-via c m b item cost n))))) \end{verbatim}
+  \caption[Goal statements]{Goal statements to validate other rely formulas}
+  \label{fig:rely:goals:others}
+\end{figure}
+%
+Since {\cpsa} validates these goal formulas in the
+\texttt{minipay-guar} protocol that contains the guarantee formulas
+but not the rely formulas, the generated rules introduced by the rely
+formulas are also sound subject to the stated non-compromise
+assumptions.
+
+We regard this rely-guarantee method as a systematic way to formalize
+the trust assumptions, and the effects, of protocols that accomplish
+real-world tasks, in this case purchase and payment.
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "cpsa4manual"
+%%% End:
diff --git a/doc/src/cpsa4manual/input.tex b/doc/src/cpsa4manual/input.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/input.tex
@@ -0,0 +1,570 @@
+\chapter{CPSA Program}
+\label{ch:input}
+
+\section{CPSA pre-processing}
+
+The {\cpsa} tool performs a pre-processing step before it interprets
+its input.  There are two important features that take place during
+pre-processing: macros and file inclusion.
+
+\paragraph{File inclusion.}
+\ttindex{include} {\cpsa} input files that become large enough become
+unweildy, and the user may wish to break them down into logical
+components and include one file in another.  For instance, one might
+wish to separate protocol definitions out so they can be reused, or
+a user might wish to put together a file of macros they find useful.
+To include one file in another, add \texttt{(include "filename")}
+as a top-level S-expression where you wish that file to be included.
+Inclusion recognizes only relative paths.
+
+\paragraph{Macros.}
+\ttindex{defmacro} \index{macros} The {\cpsa} pre-processor interprets
+macros.
+
+\index{examples!Envelope protocol!macros in}
+To define a macro in a {\cpsa} input file, use the \texttt{defmacro}
+keyword in an S-expression.  The \texttt{envelope.scm} file in the
+examples directory uses the following macro:
+
+\begin{verbatim}
+;; This is the refusal token
+(defmacro (refuse n pcr v k aik)
+  (enc "quote" (extend "refuse" (extend n pcr)) (enc v k) aik))
+\end{verbatim}
+
+The first input to the defmacro defines the format that will trigger
+the macro.  In this case, the first macros are defined for an
+S-expression with keyword \texttt{refuse} and five additional inputs.
+The second input to the defmacro describes what the macro should be
+replaced with.  Symbols that exactly match the subsequent symbols in
+the first input are interpreted as standing for the inputs when the
+macro is used.  So for instance \texttt{(refuse a b c d e)} would be
+replaced by
+
+\begin{verbatim}
+(enc "quote" (extend "refuse" (extend a b)) (env c d) e)
+\end{verbatim}
+
+\noindent
+wherever it appears in what follows.  \index{macros!nesting} Macros
+can call on other macros, but there is a depth limit to the amount of
+recursion that this can entail.  In the example, \texttt{extend} is
+actually another macro.
+
+\ttindexalt{\^}{(macro splicing)}
+\index{macros!splicing} Normally a \texttt{defmacro} will
+replace a symbol with a single S-expression, but the \texttt{\^}
+(splice) keyword can be used to indicate that a macro should be
+replaced with more than one S-expression.  This may be of use, for
+instance, to describe a portion of a role's trace, when defining
+multiple roles with some behavior in common.  For instance:
+
+\begin{verbatim}
+(defmacro (handshake n a b)
+  (^ (send (enc "hello" a b n (pubk b)))
+     (recv (enc "hello-received" a n (pubk a))))
+\end{verbatim}
+
+Note that the pre-processor actually handles the splice keyword as a
+separate pre-processing step after macro expansion.  For this reason,
+use of \texttt{\^} outside of macros can produce unanticipated behavior.
+
+\section{CPSA input syntax}
+\label{sec:input}
+
+The complete syntax for the analyzer using the Basic Crypto Algebra is
+shown in Table~\ref{tab:syntax}.  The start grammar symbol is
+\textsc{file}, and the terminal grammar symbols are: \textsc{(, ),
+  symbol, string, integer,} and the constants set in typewriter font.
+
+The \textsc{alist}, \textsc{prot-alist}, \textsc{role-alist},
+and \textsc{skel-alist} productions are Lisp style association lists,
+that is, lists of key-value pairs, where every key is a symbol.
+Key-value pairs with unrecognized keys are ignored, and are available
+for use by other tools.  On output, unrecognized key-value pairs are
+preserved when printing protocols, but elided when printing skeletons.
+
+\begin{table}
+\begin{center}\scshape
+\begin{tabular}{rcl}
+file&$\leftarrow$&herald?~form+
+\\herald&$\leftarrow$&
+(\sym{herald}~$[\mbox{symbol}\mid\mbox{string}]$~alist)
+\\form&$\leftarrow$&(\sym{comment}~$\ldots)\mid\mbox{protocol}\mid\mbox{skeleton}\mid\mbox{goal}$
+\\ protocol&$\leftarrow$&
+(\sym{defprotocol} id alg role+ rule$\ast$ prot-alist)
+\\ id&$\leftarrow$&symbol
+\\ alg&$\leftarrow$&\sym{basic}~$\mid$~\sym{diffie-hellman}
+\\ role&$\leftarrow$&
+(\sym{defrole} id vars trace role-alist)
+\\ vars&$\leftarrow$&
+(\sym{vars} vdecl$\ast$)
+\\ vdecl&$\leftarrow$&(id+ sort)
+\\ trace&$\leftarrow$&(\sym{trace} \{event $\mid$ annot\}+)
+\\ event&$\leftarrow$&({dir id? term})
+\\ dir&$\leftarrow$&$\sym{send}\mid\sym{recv}\mid\sym{load}\mid\sym{stor}$
+\\ annot&$\leftarrow$&(\sym{cheq} id term) $\mid$
+                       (\sym{rely} conclusion) $\mid$ (\sym{guarantee} conclusion)
+\\ rule&$\leftarrow$&(\sym{defrule} id sentence alist)
+\\ role-alist&$\leftarrow$&role-decl\mbox{ role-alist }$\mid$~\mbox{alist role-alist}
+\\ alist&$\leftarrow$&(symbol~$\ldots$)?\mbox{ alist?}
+\\ skeleton&$\leftarrow$&
+(\sym{defskeleton} id vars strand+ skel-alist)
+\\ strand&$\leftarrow$& (\sym{defstrand} id integer maplet$\ast$)
+\\ &$\mid$&(\sym{defstrandmax} id integer? maplet$\ast$)
+\\ &$\mid$&(\sym{deflistener} term)
+\\ maplet&$\leftarrow$&
+(term term)
+\\ skel-alist&$\leftarrow$&\mbox{skel-decl skel-alist }$\mid$~\mbox{alist skel-alist}
+\\ &$\mid$&$(\sym{precedes}\mbox{ node-pair}\ast)\mbox{ skel-alist}$
+\\ &$\mid$&$(\sym{leadsto}\mbox{ node-pair}\ast)\mbox{ skel-alist}$
+\\ &$\mid$&(\sym{goal} sentence+)$\mid$~$(\sym{facts} (\mbox{id term*}))$
+\\ node-pair&$\leftarrow$&(node node)
+\\ node&$\leftarrow$&(integer integer)
+\\ goal&$\leftarrow$&(\sym{defgoal} id sentence+ alist)
+\end{tabular}
+\end{center}
+\caption[{\cpsa} Input Syntax]{{\cpsa} Input Syntax.  See
+  Tables~\ref{tab:basic_term} and~\ref{tab:dh_term} for algebra syntax
+  (for the $\scap{term}$ and $\scap{sort}$ symbols),
+  Table~\ref{tab:decl_syntax} for declaration syntax (for the
+  $\scap{role-decl}$ and $\scap{skel-decl}$ symbols), and
+  Table~\ref{tab:goal_syntax} for goal syntax (for the
+  $\scap{sentence}$ and $\scap{conclusion}$ symbols).}
+\label{tab:syntax}
+\end{table}
+
+The contents of a file can be interpreted as a sequence of
+S-expressions.  The S-expressions used are restricted so that most
+dialects of Lisp can read them, and characters within symbols and
+strings never need quoting.  Every list is proper.  An S-expression
+atom is either a \textsc{symbol}, an \textsc{integer}, or a
+\textsc{string}.  The characters that make up a symbol are the
+letters, the digits, and the special characters in
+``\verb|-*/<=>!?:$%_&~^+|''.  A symbol may not begin with a digit or a
+sign followed by a digit.  The characters that make up a string are
+the printing characters omitting double quote and backslash, except
+when double quote and backslash are escaped using the backslash
+character.  Double quotes delimit a string.  A comment\index{comments}
+begins with a semicolon, or is an S-expression list at top-level that
+starts with the \texttt{comment} symbol.
+
+\section{Algebra reference}\label{sec:algebra_ref}
+
+\subsection{Basic crypto algebra}
+
+\begin{table}
+\centering
+%
+\begin{tabular}{|lll|}\multicolumn{3}{c}{Sorts}\\ \hline
+  Sorts:
+  & \multicolumn{2}{l|}{\scap{name}, \scap{text},
+    \scap{data}, \scap{tag}, \scap{skey}, \scap{akey}  $<$
+    \scap{mesg}} \\
+  &  \multicolumn{2}{l|}{\scap{chan}, \scap{locn} $<$ \scap{mesg}} \\
+  \hline \multicolumn{3}{c}{Operations}\\ \hline
+  $\enc{\cdot}{(\cdot)}\phantom{\colon}$ &
+  $\scap{mesg}\times\scap{mesg}\rightarrow\scap{mesg} $&
+  Encryption\\ $(\cdot,\cdot)\phantom{\colon}$ &
+  $\scap{mesg}\times\scap{mesg}\rightarrow\scap{mesg}$
+  &Pairing\\
+  $\#(\cdot)\phantom{\colon}$ & $\scap{mesg} \rightarrow \scap{mesg}$ & Hashing \\
+  $K_{(\cdot)}\phantom{\colon}$ &
+  $\scap{name}\rightarrow\scap{akey}$ &Public key of
+  name\\ $K^{s}_{(\cdot)}\phantom{\colon}$ &
+  $\scap{name}\rightarrow\scap{akey}$ & $s$-Public key of
+  name\\ $(\cdot)^{-1}\phantom{\colon}$ &
+  $\scap{akey}\rightarrow\scap{akey}$ &Inverse of
+  key\\ $\cn{ltk}(\cdot,\cdot)\phantom{\colon}$ &
+  $\scap{name}\times\scap{name}\rightarrow\scap{skey}$ & Long-term key\\
+  \hline
+%
+\multicolumn{3}{c}{Constants}\\ \hline
+$Tags$ $\phantom{\colon}$ & $\scap{tag}$ & Tag constants \\ \hline
+\multicolumn{3}{c}{Equations}\\ \hline
+%
+$(a^{-1})^{-1} = a$ & $a \colon \scap{akey}$ &  \\ \hline
+\multicolumn{3}{c}{Derivations}\\ \hline
+$m_0, m_1 \vDash \enc{m_0}{m_1}$ & $m_0, m_1 \colon \scap{mesg}$ & Encryption \\
+$m_0, m_1 \vDash (m_0, m_1)$ & $m_0, m_1 \colon \scap{mesg}$ & Pairing \\
+$(m_0, m_1) \vDash \{m_0, m_1\}$ & $m_0, m_1 \colon \scap{mesg}$ & Destructuring \\
+$\enc{m}{k}, \mathrm{inv}(k) \vDash m$ & $m, k \colon \scap{mesg}$ & Decryption \\
+$m \vDash \#(m)$ & $m \colon \scap{mesg}$ & Hashing\\
+\hline
+%
+\end{tabular}
+\caption{The Basic Cryptoalgebra}
+\label{tab:basic_algebra_signature}
+\end{table}
+
+The basic crypto algebra is an order-sorted algebra with signature
+described in Table~\ref{tab:basic_algebra_signature}.  The algebra is
+the free order-sorted algebra generated by the function symbols,
+sorts, and constants given, modulo the one equation.
+
+Additionally, {\cpsa} reasons about derivability of values from other
+values, and the basic derivation rules are given in the table, where
+$\mathrm{inv}$ is defined as follows (with $\bot$ indicating
+``undefined''):
+\begin{equation}
+%
+\mathrm{inv}(a) = \left\{
+%
+\begin{array}{ll}
+%
+a^{-1} & \mbox{if $a : \scap{akey}$}\\
+%
+a & \mbox{if $a$ is not a variable of sort $\scap{mesg}$} \\
+%
+\bot & \mbox{otherwise}.
+%
+\end{array}
+%
+\right.  %}
+\end{equation}
+
+Because $\mathrm{inv}$ is undefined on variables of sort
+$\scap{mesg}$, {\cpsa} cannot handle protocols or skeletons in which a
+value is encrypted with such a variable.  This is a consequence of the
+choice we made in the design of {\cpsa} to use only one encryption
+function symbol, despite there being two forms of encryption
+(symmetric and asymmetric).  When encrypting with a variable of sort
+$\scap{mesg}$, the type of encryption is ambiguous.
+
+Table~\ref{tab:basic_term} describes the grammar for basic crypto
+algbera messages in the input syntax.
+
+\begin{table}
+\centering{\scshape
+\begin{tabular}{rcl}
+\\ alg&$\leftarrow$&$\sym{basic}$
+\\
+  sort&$\leftarrow$&$\sym{text}\mid\sym{data}\mid\sym{name}\mid\sym{tag}\mid\sym{skey}\mid\sym{akey}$\\
+  &$\mid$&$\sym{chan}\mid\sym{locn}\mid\sym{mesg}\mid$ id
+\\ id&$\leftarrow$&symbol
+\\ term&$\leftarrow$&
+$\mbox{id}\mid(\sym{pubk}\mbox{ id})
+\mid(\sym{privk}\mbox{ id})
+\mid(\sym{invk}\mbox{ id})$
+\\ &$\mid$&$(\sym{pubk}\mbox{ id}\mbox{ string})
+\mid(\sym{privk}\mbox{ id}\mbox{ string})$
+\\ &$\mid$&$(\sym{ltk}\mbox{ id id})\mid\mbox{string}\mid(\sym{cat}\mbox{ term+})$
+\\ &$\mid$&$(\sym{enc}\mbox{ term+ term})\mid(\sym{hash}\mbox{ term+})$
+\\ &$\mid$&$(\mbox{id term+})$
+\end{tabular}}
+\caption{{\cpsa} Basic Algebra Syntax; {sorts}, operators \textsc{id}
+  from \textsc{Lang} field}\label{tab:basic_term}
+\end{table}
+
+Each of these function symbols has a specific interpretation in the
+algebra signature; for instance, \texttt{enc} refers to the
+$\enc{\cdot}{\cdot}$ function symbol, and \texttt{pubk} refers to the
+$K_{(\cdot)}$ function symbol when it has one input, but to
+$K^s_{(\cdot)}$ when it has two inputs, where the second is $s$.
+\texttt{privk} refers to the composition of either $K_{(\cdot)}$ or
+$K^s_{(\cdot)}$ with $(\cdot)^{-1}$.
+
+\subsection{The Diffie-Hellman crypto algebra}
+\label{sec:input:dh}
+
+The Diffie-Hellman crypto algebra is an order-sorted algebra with signature
+described in Table~\ref{tab:dh_algebra_signature}.  The algebra is
+the free order-sorted algebra generated by the function symbols,
+sorts, and constants given, modulo the equations.
+
+\begin{table}
+\centering
+%
+\begin{tabular}{|lll|}
+\multicolumn{3}{c}{Sorts}\\ \hline
+Sorts: & \multicolumn{2}{l|}{\scap{name}, \scap{text}, \scap{data}, \scap{tag}, \scap{skey}, \scap{akey}, \scap{base}  $<$ \scap{mesg}} \\
+       & \multicolumn{2}{l|}{\scap{rndx} $<$ \scap{expt} $<$ \scap{mesg}} \\
+  &  \multicolumn{2}{l|}{\scap{chan}, \scap{locn} $<$ \scap{mesg}}
+\\ \hline \multicolumn{3}{c}{Operations}\\ \hline
+$\enc{\cdot}{(\cdot)}\phantom{\colon}$ &
+$\scap{mesg}\times\scap{mesg}\rightarrow\scap{mesg} $& Encryption\\
+$(\cdot,\cdot)\phantom{\colon}$ &
+$\scap{mesg}\times\scap{mesg}\rightarrow\scap{mesg}$ &Pairing\\
+$\#(\cdot)\phantom{\colon}$ & $\scap{mesg} \rightarrow \scap{mesg}$ & Hashing \\
+$K_{(\cdot)}\phantom{\colon}$ &
+$\scap{name}\rightarrow\scap{akey}$ &Public key of name\\
+$K^{s}_{(\cdot)}\phantom{\colon}$ &
+$\scap{name}\rightarrow\scap{akey}$ & $s$-Public key of name\\
+$(\cdot)^{-1}\phantom{\colon}$ & $\scap{akey}\rightarrow\scap{akey}$ &Inverse of key\\
+$\cn{ltk}(\cdot,\cdot)\phantom{\colon}$ &
+$\scap{name}\times\scap{name}\rightarrow\scap{skey}$ & Long-term key \\
+$\cn{bltk}(\cdot,\cdot)\phantom{\colon}$ &
+$\scap{name}\times\scap{name}\rightarrow\scap{skey}$ & Bi-directional LTK \\
+$(\cdot)^{(\cdot)}\phantom{\colon}$ & $\scap{base} \times \scap{expt} \rightarrow \scap{base}$ &
+Exponentiation \\
+$(\cdot \cdot)\phantom{\colon}$ & $\scap{expt} \times \scap{expt} \rightarrow \scap{expt}$ &
+Multiplication \\
+$i(\cdot) \phantom{\colon}$ & $\scap{expt} \rightarrow \scap{expt}$ & Mult. Inverse\\
+\hline
+%
+\multicolumn{3}{c}{Constants}\\ \hline
+$Tags$ $\phantom{\colon}$ & $\scap{mesg}$ & Tag constants \\
+$g \phantom{\colon}$ & $\scap{base}$ & Generator \\
+$1 \phantom{\colon}$ & $\scap{expt}$ & Mult. Identity \\ \hline
+
+\multicolumn{3}{c}{Equations}\\ \hline
+%
+$(a^{-1})^{-1} = a$ & & $a \colon \scap{akey}$\\
+$\cn{bltk}(a,b) = \cn{bltk}(b,a)$ & & $a, b \colon \scap{name}$ \\
+$xy = yx$ & $x(yz) = (xy)z$ & $x, y \colon \scap{expt}$\\
+$x1 = x$ & $x(i(x)) = 1$ & $x \colon \scap{expt}$ \\
+$h^1 = h$ & $(h^x)^y = h^{(xy)}$ & $h \colon \scap{base}, x, y \colon \scap{expt}$ \\
+\hline
+\multicolumn{3}{c}{Derivations}\\ \hline
+$m_0, m_1 \vDash \enc{m_0}{m_1}$ & $m_0, m_1 \colon \scap{mesg}$ & Encryption \\
+$m_0, m_1 \vDash (m_0, m_1)$ & $m_0, m_1 \colon \scap{mesg}$ & Pairing \\
+$(m_0, m_1) \vDash \{m_0, m_1\}$ & $m_0, m_1 \colon \scap{mesg}$ & Destructuring \\
+$\enc{m}{k}, \mathrm{inv}(k) \vDash m$ & $m, k \colon \scap{mesg}$ & Decryption \\
+$m \vDash \#(m)$ & $m \colon \scap{mesg}$ & Hashing\\
+$x, y \vDash xy$ & $x, y \colon \scap{expt}$ & Multiplication\\
+$x \vDash i(x)$ & $x \colon \scap{expt}$ & Inversion\\
+$h, x \vDash h^x$ & $h \colon \scap{base}, x \colon \scap{expt}$ & Exponentiation\\
+\hline
+%
+\end{tabular}
+%\caption[]{The Diffie-Hellman Cryptoalgebra, continued.}
+%\label{tab:dh_algebra_signature2}
+\caption{The Diffie-Hellman Cryptoalgebra}
+\label{tab:dh_algebra_signature}
+\end{table}
+
+\ttindex{expt}
+In Section~\ref{sec:dh} we discussed modeling Diffie-Hellman in
+{\cpsa}, but we said almost nothing about the $\scap{expt}$ sort that
+features prominently in the algebra signature.  Our message model for
+Diffie-Hellman has two sorts of exponents.  The $\scap{rndx}$ sort is
+for exponents that are to be thought of as atomic values.  Randomly
+chosen exponents should always be of this sort, which is why
+\texttt{rndx} appears exclusively in our examples, while \texttt{expt}
+does not.  The $\scap{expt}$ sort is for compound expressions
+involving exponents.  There may also be variables of this sort, but
+they should not appear in protocol roles, and even using them in a
+\texttt{defskeleton} is unusual.  However, they do appear in the
+output with some frequency, due to one of two kinds of bits of
+reasoning: first, a base variable (say, $h$) may be rewritten as an
+explicit power of $g$.  When this happens, since $h$ could stand for
+any power of $g$ including a power with a complex variable, if we
+rewrite $h$ as $g^z$, $z$ will need to be of the generic $\scap{expt}$
+sort so that those possibilities are covered.  Second, {\cpsa} will
+sometimes assume the presence of a value in some instance related to
+another one, and a generic $\scap{expt}$ variable is used to capture
+the somewhat arbitrary relationship between the two.
+
+Table~\ref{tab:dh_term} describes the grammar for Diffie-Hellman
+crypto algbera messages in the input syntax.  Symbols in the grammar
+appearing in the grammar for the basic crypto algebra retain their
+same interpretation.  Additionally, the \texttt{gen} and \texttt{one}
+symbols, used as 0-ary function symbols, specify the $g$ and $1$
+constants, respectively.
+
+\begin{table}
+\centering{\scshape
+\begin{tabular}{rcl}
+\\ alg&$\leftarrow$&$\sym{diffie-hellman}$
+\\
+  sort&$\leftarrow$&$\sym{text}\mid\sym{data}\mid\sym{name}\mid\sym{tag}\mid\sym{skey}\mid\sym{akey}$
+\\ &$\mid$ & $\sym{rndx}~\mid\sym{expt}\mid\sym{base}\mid\sym{chan}\mid\sym{locn}\mid\sym{mesg}\mid$ id
+\\ id&$\leftarrow$&symbol
+\\ term&$\leftarrow$&
+$\mbox{id}\mid(\sym{pubk}\mbox{ id})
+\mid(\sym{privk}\mbox{ id})
+\mid(\sym{invk}\mbox{ id})$
+\\ &$\mid$&$(\sym{pubk}\mbox{ id}\mbox{ string})
+\mid(\sym{privk}\mbox{ id}\mbox{ string})$
+\\ &$\mid$&$(\sym{ltk}\mbox{ id id})\mid\mbox{string}\mid(\sym{cat}\mbox{ term+})$
+\\ &$\mid$&$(\sym{enc}\mbox{ term+ term})\mid(\sym{hash}\mbox{ term+})$
+\\ &$\mid$&$(\sym{exp}\mbox{ term term })\mid(\sym{gen})\mid(\sym{mul}\mbox{ term term})$
+\\ &$\mid$&$(\sym{rec}\mbox{ term})\mid (\mbox{id term+})$
+\end{tabular}}
+\caption{{\cpsa} Diffie-Hellman Algebra Syntax}\label{tab:dh_term}
+\end{table}
+\section{Declaration syntax}
+\label{sec:decl_syntax}
+
+Table~\ref{tab:decl_syntax} gives a grammar for the syntax of native
+and user-defined declarations.  For the purposes of this table, there
+are two top-level symbols: \textsc{role-decl} and \textsc{skel-decl}.
+
+\begin{table}
+\begin{center}\scshape
+  \begin{tabular}{rcl}
+\\ role-decl&$\leftarrow$&(one-term-decl ht-term+)
+%   \\ &$\mid$&(two-term-decl ht-termpair+)
+%   \\ &$\mid$&(\sym{neqlist} ht-termlist+)
+%   \\ &$\mid$&(\sym{subsort} ht-subsort+)
+%   \\ &$\mid$&(\sym{fn-of} ht-function+)
+%   \\ &$\mid$&(\sym{decl} symbol ht-general+)
+\\ &$\mid$&(\sym{critical-sections} (integer integer)+)
+\\ &$\mid$&(\sym{priority} (height integer)+)
+\\ &$\mid$&(\sym{facts} (id term*)*)~$\mid$~(\sym{assume} conclusion*)
+\\ one-term-decl&$\leftarrow$&\sym{non-orig}~$\mid$~\sym{pen-non-orig}~$\mid$~\sym{uniq-orig}~$\mid$~\sym{uniq-gen}
+\\ &$\mid$&\sym{conf}~$\mid$~\sym{auth}~$\mid$~\sym{gen-st}
+%\\ two-term-decl&$\leftarrow$&\sym{absent}  % \sym{neq}~$\mid$~\sym{lt}
+\\ height&$\leftarrow$&integer
+\\ ht-term&$\leftarrow$&term~$\mid$~(term height)
+%   \\ ht-termpair&$\leftarrow$&(term term)~$\mid$~(term term height)
+%   \\ ht-termlist&$\leftarrow$&(term+)~$\mid$~(term+ height)
+%   \\ ht-subsort&$\leftarrow$&(aux ht-term+)
+%   \\ ht-function&$\leftarrow$&(aux ht-termpair+)
+%   \\ ht-general&$\leftarrow$&((term$\ast$) (height$\ast$))
+%   \\ aux&$\leftarrow$&string~$\mid$~symbol~$\mid$~integer
+\\ skel-decl&$\leftarrow$&(one-term-decl term+)
+\\ &$\mid$&(two-term-decl (term term)+)
+%   \\ &$\mid$&(\sym{neqlist} (term+)+)
+%   \\ &$\mid$&(\sym{subsort} subsort+)
+%   \\ &$\mid$&(\sym{fn-of} function+)
+%   \\ &$\mid$&(\sym{decl} symbol general+)
+\\ &$\mid$&(\sym{facts} (id term*)*)
+\\ &$\mid$&(\sym{priority} (node integer)+)
+%   \\ subsort&$\leftarrow$&(aux term+)
+%   \\ function&$\leftarrow$&(aux (term term)+)
+%   \\ general&$\leftarrow$&((term$\ast$) (node$\ast$))
+\\ node&$\leftarrow$&(integer integer)
+  \end{tabular}
+\end{center}
+\caption[Declaration syntax]{Declaration syntax.  See
+  Tables~\ref{tab:basic_term} and~\ref{tab:dh_term} for the algebra
+  syntax, which defines the $\scap{term}$ symbols.  See
+  Table~\ref{tab:goal_syntax} for formulas \textsc{conclusion}.  }
+\label{tab:decl_syntax}
+\end{table}
+
+\section{Command-line options}
+\label{sec:options}
+
+The following command-line options are defined for the {\cpsa} program:
+
+\begin{itemize}
+\index{options!output}
+\item `o' (``output'') -- specifies a file to which the output will be written.
+  Usage: \texttt{-o FILE} or \texttt{--output=FILE}.
+  \index{options!limit} \index{step limit}
+\item `l' (``limit'') -- specifies a step limit (see
+  Section~\ref{sec:bounds}).  By default, the step limit is 2000.
+  Usage: \texttt{-l INT} or \texttt{--limit=INT}.
+  \index{options!bound} \index{strand bound}
+\item `d' (``depth'') -- specifies a depth limit (see
+  Section~\ref{sec:bounds}).  The depth limit is infinite by default.
+  Usage: \texttt{-d INT} or
+  \texttt{--depth=INT}. \index{options!depth} \index{depth limit}
+\item `b' (``bound'') -- specifies a strand bound (see Section~\ref{sec:bounds}).
+  By default, the strand bound is 12.
+  Usage: \texttt{-b INT} or \texttt{--bound=INT}.
+\index{options!margin}
+\item `m' (``margin'') -- specifies the number of characters allowed
+  per line in the output. By default, the margin is 72.
+  Usage: \texttt{-m INT} or \texttt{--margin=INT}.
+\index{options!expand}
+\item `e' (``expand'') -- expands macros only.  For use in debugging
+  macros; when run with this option, the tool does not analyze its
+  input.
+\index{options!noanalyze}
+\item `z' (``noanalyze'') -- loads the input but does not analyze.
+    This could be used for checking whether any errors are present in
+    the input.
+\index{options!noisochk}
+\item `n' (``noisochk'') -- disable isomorphism checks.  {\bf Not
+  recommended except in rare circumstances.}  When the tool produces a
+  new skeleton, it only gets a number in the output if no isomorphic
+  skeleton has already been found.  With isomorphism checking
+  disabled, many analyses that otherwise terminate will not terminate.
+  However, there is one advantage.  \index{seen child} Normally, when
+  a skeleton is found more than once in an analysis, its operation
+  field (see Section~\ref{sec:kerberos2}) is displayed only for the
+  first time that skeleton is found.  Other instances are not
+  annotated with an operation field but instead simply link to the
+  isomorphic skeleton.
+\index{options!check-nonces} \index{check-nonces option}
+\item `c' (``check-nonces'') -- check nonces first.  Normally, the
+  tool will consider the largest possible critical term when attempting
+  to solve an unrealized node.  This option flips the default behavior.
+  Some analyses terminate only with this option, while others perform
+  better with this option.
+\index{options!try-old-strands} \index{try-old-strands option}
+\item `t' (``try-old-strands'') -- try old strands first.  Normally,
+  when there are unrealized nodes on multiple strands, the tool will
+  focus on the highest-numbered (rightmost in the diagram) strand with
+  unrealized nodes.  This option flips the default behavior.  Some
+  analyses terminate only with this option, while others perform
+  better with this option.
+\index{options!reverse-nodes} \index{reverse-nodes option}
+\item `r' (``reverse-nodes'') -- try younger nodes first.  Normally,
+  when a strand containing unrealized nodes is chosen for analysis, if
+  there are multiple unrealized nodes, the earliest (oldest) node is
+  analyzed.  This option flips the default behavior.  Some analyses
+  terminate only with this option, while others perform better with
+  this option.
+\index{options!goals-sat} \index{goals-sat option}
+\item `g' (``goals-sat'') -- stop when goals are satisfied.  Normally,
+  a \texttt{defgoal} is converted to a skeleton and analyzed, and only
+  shapes are compared to the goals.  With this option enabled, the
+  goals are checked against every intermediate skeleton, and branches
+  of the analysis in which the goals are satisfied are not further
+  pursued.  The output analysis will show the skeletons in which the
+  goals were first satisfied, and any shapes in which the goals were
+  not satisfied.  In a sense, running {\cpsa} with this option asks
+  the question: what are all the ways in which this goal may not be
+  satisfied?
+\index{options!algebra} \index{algebra} \index{Diffie-Hellman!algebra}
+\item `a' (``algebra'') -- sets the algebra to use for the input.  The
+  analysis tool expects to run with a single algebra for an entire
+  session.  By default the tool uses the \texttt{basic} algebra; an
+  input file using the Diffie-Hellman algebra will cause an error
+  unless you specify the \texttt{diffie-hellman} algebra via this
+  option.
+  Usage: \texttt{-a STRING} or \texttt{--algebra=STRING}.
+\index{options!show-algebras}
+\item `s' (``show-algebras'') -- causes the tool to print a list of the
+  allowed algebras, instead of performing any analysis.
+\index{options!help}
+\item `h' (``help'') -- causes the tool to print a list of
+  command-line options, and also to print the directory in which the
+  package's documentation exists.  When run with this option, the tool
+  will not perform any analysis.
+\index{options!version}
+\item `v' (``version'') -- causes the tool to simply print its version
+  number rather than performing any analysis.
+
+\end{itemize}
+
+Additionally,
+
+\begin{itemize}
+  \item To protect {\cpsa} against memory exhaustion, run {\cpsa} with
+    the command-line options \verb|+RTS -M512m -RTS|.
+
+  \item To make use use of parallelism on an $n$-processor machine,
+    start {\cpsa} with the command-line options \verb|+RTS -N|$n$\verb| -RTS|.
+\end{itemize}
+
+See the GHC User's Guide \cite{ghcUsersGuide} for documentation on these and other options.
+
+\subsection{Heralds}
+\label{sec:heralds}
+\index{herald}
+At the top of each {\cpsa} input file is, optionally, a \texttt{herald}
+that is an alternate way to specify command-line options.  All of the
+examples in the examples directory contain heralds.  The herald, in
+addition to setting certain options for the analyzer, is also included
+in the output file, which may be useful to the analyst in
+distinguishing one analysis from a similar, related one.
+
+Options are included in the herald by constructing an S-expression
+with first element equal to the long name of an option, and the second
+element (if any) set to be the parameter for that option.  For instance,
+\texttt{(algebra diffie-hellman)} is included for all the examples that
+use the \texttt{diffie-hellman} algebra.
+
+Command-line options override the herald.  Also, certain command-line
+options are not allowed in the herald, specifically, ``output'',
+``help'', ``version'', and ``show-algebras''.
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "cpsa4manual"
+%%% End:
diff --git a/doc/src/cpsa4manual/intro.tex b/doc/src/cpsa4manual/intro.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/intro.tex
@@ -0,0 +1,187 @@
+\chapter{Introduction}
+\label{ch:intro}
+
+{\cpsa}, the Cryptographic Protocol Shapes Analyzer, is a software tool
+designed to assist in the design and analysis of cryptographic protocols.
+A cryptographic protocol is a specific pattern of interaction between
+principals.  TLS and IKE are some examples of well-known cryptographic protocols.
+
+The tool takes as input a protocol definition and a partial
+description of an execution, each built within a particular formal
+model by the user.  It attempts to produce descriptions of \emph{all}
+possible executions of the protocol that complete the partial
+description, consistent with the presence of a powerful network adversary
+capable of diverting, altering, replaying, or dropping network messages.
+Such an adversary may be able to manipulate honest participants into an
+unexpected execution, breaking a secrecy or authentication property that
+the protocol was intended to achieve.
+
+Naturally, there are infinitely many possible executions of a useful
+protocol, since different participants can run it with varying
+parameters, and the participants can run it repeatedly.  However, for
+many naturally occurring protocols, there are only finitely many of
+these runs that are \emph{essentially} different.  Indeed, there are
+frequently very few, often just one or two, even in cases where the
+protocol is flawed.  We call these minimal, essentially different
+executions the \emph{shapes} of the protocol.  Authentication and
+secrecy properties are easy to ``read off'' from the shapes, as are
+attacks and anomalies.
+
+The analysis performed by {\cpsa} is done within a pure Dolev-Yao
+model~\cite{DolevYao83}; as such, the analysis reveals only structural
+flaws in the protocols it analyzes.  It cannot detect flaws in underlying
+cryptographic algorithms or in actual implementations of protocol participants.
+
+The purpose of this document is to provide the background required to
+make effective use of the {\cpsa} software distribution.
+
+\section{Recommended reading}
+
+If you are new to {\cpsa}, it is recommended that you first read
+Part~\ref{part:basic}, which is introductory in nature and presented
+as a tutorial.  Chapter~\ref{ch:setup} discusses how to download,
+install, and run the tool.  Chapter~\ref{ch:basic} begins the tutorial
+describing how to use the tool, and Chapter~\ref{ch:algebra} describes
+some of the more important additional features.
+
+Readers, especially those without direct access to an experienced user
+of the tool, are encouraged to attempt the ``explorations'' present
+from Chapter~\ref{ch:basic} onwards.  The purpose of the explorations
+is to give the reader experience in the use of the tool and a chance
+to test his or her understanding of its features.  After reading
+through the first part, you should be ready to attempt to use the tool
+to analyze a protocol that interests you, whether it be an existing
+protocol or one you need to design.
+
+When you are ready for a deeper base of knowledge, read
+Part~\ref{part:intermediate}.  The chapters in
+Part~\ref{part:intermediate} will be helpful as you cross from trying
+to understand how to use the tool to trying to impact your work on
+protocol design through use of the tool.  Chapter~\ref{ch:algorithm}
+will be of general use as you try to understand the analyses {\cpsa}
+conducts, and Chapter~\ref{ch:declarations} will help you narrow the
+tool's focus to what interests you.
+
+Part~\ref{part:advanced} deals with special-purpose features of the tool.
+Chapter~\ref {chap:channels:state} deals with stateful protocols and
+Chapter~\ref{ch:goals} deals with logic-based protocol goals.  You
+should read these chapters if those features seem important to you.
+
+Part~\ref{part:reference} is reference material.
+Chapter~\ref{ch:troubleshooting} contains reference material about
+dealing with errors of various sorts that arise during the use of
+{\cpsa}, while Chapter~\ref{ch:input} documents the complete syntax of
+the tool.
+
+\section{Tool components}
+
+The distribution includes a number of separate executable command-line
+tools.  Of these, three are key components of the core expected
+workflow: \texttt{cpsa}, \texttt{cpsagraph}, and \texttt{cpsashape}.
+The other tools are auxiliary utilities most general users will not
+need to use, although \texttt{cpsadiff} is of some use to a general
+user when updating the tool.
+
+The \texttt{cpsa} program takes as input one or more analysis problems
+(at least, a protocol and a partial description of an execution), and
+analyzes them one at a time.  It outputs the full, step-by-step
+analysis for each problem, ultimately describing all possible full
+executions that complete the partial execution.
+
+The \texttt{cpsashape} program takes an analysis and reduces it to an
+analysis that skips directly from analysis input to the set of shapes
+associated with that input.
+
+The \texttt{cpsagraph} program takes an analysis (from either
+\texttt{cpsa} or \texttt{cpsashape}) and formats it into an
+\textsc{xhtml} file and includes \textsc{svg}(scalable vector
+graphics) diagrams of each partial execution as well as the overall
+branching pattern of the analysis.
+
+%The shapes analysis is performed within a pure Dolev-Yao
+%model~\cite{DolevYao83}.  {\cpsa}'s search is based on a high-level
+%algorithm that was claimed to be complete, i.e.\@ every shape can in
+%fact be found in a finite number of
+%steps~\cite{DoghmiGuttmanThayer07,Guttman11}.  Further theoretical
+%work showed classes of executions that are not found by the algorithm,
+%however it also showed that every omitted execution requires an
+%unnatural interpretation of a protocol's roles.  Hence the algorithm
+%is complete relative to natural role semantics.
+%Appendix~\ref{sec:omitted executions} discusses omitted executions.
+
+%\section{Overview}
+%
+%A {\cpsa} release includes several programs, an analyzer, and various
+%tools used to interpret the results.  The analyzer, \texttt{cpsa},
+%provides support for several algebras, one of which is the Basic
+%Crypto Algebra.  Programs that assist in the interpretation of results
+%are \texttt{cpsashape} and \texttt{cpsagraph}.  The analyzer prints
+%the steps it used to solve each problem.  The \texttt{cpsashapes}
+%program extracts the shapes discovered by an analyzer run.  The
+%\texttt{cpsagraph} program graphs both forms of output using Scalable
+%Vector Graphics~(\textsc{svg}).  A standards-compliant browser such as
+%FireFox or Safari displays the generated diagrams.
+
+The expected work flow follows.  An analysis problem is entered using
+an ordinary text editor, preferably one with support for Lisp syntax.
+The \texttt{cpsa} program uses an S-expression-based syntax for both
+input and output.  S-expression is an abbreviation for a Symbolic
+Expression (as in the Lisp programming language).
+
+The body of the input consists of two forms: \texttt{defprotocol}
+statements that describe a protocol, and \texttt{defskeleton}
+statements that describe a partial execution of a protocol.  The exact
+details of both forms depend on the message algebra specified by the
+protocol.
+%Protocols that specify \texttt{basic} as their algebra get
+%an implementation of the Basic Crypto Algebra~(\textsc{bca}) described
+%in the next section.  A complete grammar for \texttt{cpsa} input is
+%displayed in Table~\ref{tab:syntax} on Page~\pageref{tab:syntax}.
+
+%Problem statement errors in the input are detected by running the
+%analyzer.  Many error reports are of the form that allow editors such
+%as Emacs to move its cursor to location of the problem.
+
+%There are two classes of problem statement errors: syntax and semantic
+%errors.  Correcting syntax errors is straightforward, but correcting
+%semantic errors requires an understanding of the core data structures.
+%Section~\ref{sec:semantic errors} describes their correction.
+
+%Once the problem statement errors have been eliminated, the analyzer
+Assuming there are no errors in the input, the analyzer
+will produce output as a text document.  The text document
+contains each step used to derive a shape from a problem statement.
+It is common to filter the output using the \texttt{cpsashapes}
+program, and look only at the computed shapes associated with each
+problem statement.
+
+The \texttt{cpsagraph} program is applied to the output to produce a
+more readable, hyperlinked \textsc{xhtml} document that can be displayed
+in a standards-compliant web browser.  See Chapter~\ref{ch:tools} for
+more information on the programs that come with a {\cpsa} distribution.
+
+% The guide is no longer maintained.
+%
+%% The {\cpsa} User Guide contains
+%% the up-to-date description of \texttt{cpsagraph} generated documents.
+%% The guide is also the place to find command-line usage information for
+%% all programs in a release.  The user guide is an \textsc{xhtml}
+%% document delivered with the software.
+
+%The input may optionally start with a \texttt{herald} form.  The form
+%contains a title for the run and an association list.  The association
+%list allows options normally specified on the command line to be
+%specified within an input file.  In the following example, the herald
+%form specifies a strand bound of 12 in a way that is equivalent to the
+%command line option \texttt{--bound=12}.
+
+%\begin{quote}
+%\begin{verbatim}
+%(herald Needham-Schroeder (bound 12))
+%\end{verbatim}
+%\end{quote}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "cpsa4manual"
+%%% End:
diff --git a/doc/src/cpsa4manual/kerb_skel3_operation_circled.eps b/doc/src/cpsa4manual/kerb_skel3_operation_circled.eps
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/kerb_skel3_operation_circled.eps
@@ -0,0 +1,24330 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (/srv/www/vhosts/releases/56/save/queued/9/8/b/98bbaf2016cb750711ba27a4da4eed84/intermediate1/o_54c3a90c395e0359.eps)
+%%CreationDate: (2015-07-27T21:58:00+02:00)
+%%BoundingBox: -0 -0 304 579
+%%HiResBoundingBox: 0 0 303.782 579
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image.  The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+  %
+  % Get a DirectClass packet.
+  %
+  % Parameters:
+  %   red.
+  %   green.
+  %   blue.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+  %
+  % Display a DirectClass image.
+  %
+  systemdict /colorimage known
+  {
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { DirectClassPacket } false 3 colorimage
+  }
+  {
+    %
+    % No colorimage operator;  convert to grayscale.
+    %
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { GrayDirectClassPacket } image
+  } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+  %
+  % Get a DirectClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   red
+  %   green
+  %   blue
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+  %
+  % Display a PseudoClass image.
+  %
+  % Parameters:
+  %   class: 0-PseudoClass or 1-Grayscale.
+  %
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  class 0 gt
+  {
+    currentfile buffer readline pop
+    token pop /depth exch def pop
+    /grays columns 8 add depth sub depth mul 8 idiv string def
+    columns rows depth
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { currentfile grays readhexstring pop } image
+  }
+  {
+    %
+    % Parameters:
+    %   colors: number of colors in the colormap.
+    %   colormap: red, green, blue color packets.
+    %
+    currentfile buffer readline pop
+    token pop /colors exch def pop
+    /colors colors 3 mul def
+    /colormap colors string def
+    currentfile colormap readhexstring pop pop
+    systemdict /colorimage known
+    {
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { PseudoClassPacket } false 3 colorimage
+    }
+    {
+      %
+      % No colorimage operator;  convert to grayscale.
+      %
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { GrayPseudoClassPacket } image
+    } ifelse
+  } ifelse
+} bind def
+
+/DisplayImage
+{
+  %
+  % Display a DirectClass or PseudoClass image.
+  %
+  % Parameters:
+  %   x & y translation.
+  %   x & y scale.
+  %   label pointsize.
+  %   image label.
+  %   image columns & rows.
+  %   class: 0-DirectClass or 1-PseudoClass.
+  %   compression: 0-none or 1-RunlengthEncoded.
+  %   hex color packets.
+  %
+  gsave
+  /buffer 512 string def
+  /byte 1 string def
+  /color_packet 3 string def
+  /pixels 768 string def
+
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  x y translate
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  currentfile buffer readline pop
+  token pop /pointsize exch def pop
+  /Times-Roman findfont pointsize scalefont setfont
+  x y scale
+  currentfile buffer readline pop
+  token pop /columns exch def
+  token pop /rows exch def pop
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  currentfile buffer readline pop
+  token pop /compression exch def pop
+  class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+  grestore
+} bind def
+%%EndProlog
+%%Page:  1 1
+%%PageBoundingBox: 0 0 304 579
+userdict begin
+DisplayImage
+0 0
+303.782 579.06
+12
+405 772
+0
+0
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF8C78FEF2717EE0017EE5797F4F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000001727476797C7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF4DBBA8F5A8B551A8B5A5AA4B9DBF4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCF9F6F4F371F0000001727578FBFE7F7D797
+87B7EFFFFFEFCFAF874F1F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7673767B7EF
+FFFFFFFFFFEFCFAF874F5FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7C79F6F475FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC
+DFA7EF0087F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76700005FAFE7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFACFA7F1BFE7FBFFFFFCEFD7F15717EE87C7FCFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B767000077BFFFFFFFFFF7E7B7773700003787
+C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7CC9A85C8E9FFFFFFFFE9C48592552F99B9E9FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F4717174787BFDFF7FFFFFFFFFFEF
+CFA7673700004FA7E7EFB76F1F1F00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7AF5F1F1700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F1F17
+00004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFF25717EE0087F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000
+87C7FFFFFFFFFFFFFFFFFFF7BF6F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFABF6FEE67B7F9FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFF
+F7BF7717000057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F77A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C5CCD9FFFFFFFFFFFFFFFFFFF7CC8F1A8B7AB7ECFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F17002F77C7F7FFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDF9F3F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7A787F2A777EE0087F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787000087C7FFFFFFFFFFFFFFEFC787370087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59757F1CFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FF
+FFFFFFFFFFFFFFE7A74F00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA757174FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B9618B
+7AB7ECFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00003F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF7787C7FFFFFFE7A74F000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7AFF0A7DFFCC787EE0087F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787000087C7FFFFFFFFDFAF5F3700000000000000000087C7FFFFFFFFEFC7
+8F57271700001727578FC7EFFFFFFFFFEFCFAF87572787C7EFCF97572717001F4F97CFF7F7D7A7
+6F471F0017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF4A767EF
+97D7FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87000087C7FFFFFFFFFFFFFFFFCF8F2F000057AFE7FFFFFFF7D7A76F4727170000001727476FB7
+DFFFFFFFFFEFCFAF875727779FAF6F3F1700278FCFFFFFFFFFEFC78F57271700001727578FC7EF
+FFFFFFF7E7BF9767475FA7DFDFAF6F471F0017275FAFDFFFFFEFC78F471700000000000000004F
+A7E7FFFFEFB7671F1F67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDA9F4495B4E2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767
+00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7EFCF
+974F1F00001F478FC7F7FFFFFFFFFFF7E7BF975F3F87C7FFFFFFFFFFFFFFE7A74F004FA7E7FFFF
+FFFFFFFFFFFFDFAF6F472717001F5FAFC7A74F004FA7E7FFFFFFFFFFEFB7671F1F67B7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF28FA7F7FFFFFFC787EE0087F4FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFF
+FFF7CF876797CFEFFFFFFFFFEFC78F3F00479FDFEFB76717170000004F8FC7E7F7FFFFEFB76F17
+00476FA7C7E7FFFFFFEFB76700006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7F2
+4F00EE0000EE0017EE8FCFFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787000077BFF7FFFFFFFFEFBF873700001767B7EFFFFFFFF7B76F174797D7FFFFFF
+FFE7AF5F001787CFFFE7A75717170000004F9FDFFFFFFFFFFFFFFFFFF7CF876797CFEFFFFFFFFF
+EFC78F3F00479FDFCF973717000000375F9FCFEFFFFFFFDF9F47001787CFFFFFFFFFFFC7870000
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFD4AF7493D7F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+00004F87BFDFF7FFFFEFB76F170067B7EFFFFFFFC78F1F1F00000087C7FFFFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFF7BF6F173787BFEFFFFFFFEFC79F5F3F004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B787F1DFFFFFFFFFFFC787EE0087F4FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F000087
+C7FFFFFFFFFFEFB7670000000000000000000000000000004FA7E7FFFFE7A74F000087C7FFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFAE7C7F15717EE0067F2EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC7870000475F6747271700001727476FA7D7F7FFFFFFFFFFFFFFFFFF
+FFFFEFDFB79767471F00000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFEFB767000000
+0000000000000000000000004FA7E7FFFFC78700004FA7E7FFFFFFFFFFFFC787000087C7FFFFFF
+FFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE2AF6FAFD9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFDF9F47006FBFF7FFFFFFFFFFFFFFCF8F2F004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BFF19FDFFCFFFFFFFFFFFFC787EE
+0087F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFF
+E7A74F000087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+0087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAFEF004FF2E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7D79F5F273F6F9FBFD7EFBF87000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFC78700
+0087C7FFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D4A1B2D4F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0000479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC7870000
+87C7FFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFEFB767000087C7FFFFFFFFFFFFFFFFE7A74F004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A74FEE0000EE0000EE
+0000EE0000EE0000EE0000EFA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FF
+FFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFEFB76700479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC78700004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7F01777F3F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787170067B7F7FFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFF
+FFFFFFFFFFFFEFB76700479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700004FA7E7FFFFFF
+FFFFFFC787000087C7FFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B7AFBFE2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5717002F77C7F7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C78F97C7F7FFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFF
+FFFFC787000087C7FFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFC77700005FAFEFFFFFFFFFFFFF
+FFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787EE0087F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+67000067B7EFFFFFFFFFFFFFFFC777000077C7FFDFAFAFCFFFF7BF6F17174787BFE7FFFFFFFFFF
+FFDF9F97BFF7FFFFDF9F4F000077BFFFFFFFFFFFFFD7973F003F97D7FFFFFFFFFFFFBF7700004F
+9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF59F5FEFA7DFFCFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76700005FAFE7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F00004F9FDFFFFFF7E7C78747000077C7FFFFFFFFDF9F4F
+000087C7FFFFFFFFFFFFFFFFFFF7BF6F17174787BFE7FFFFFFFFFFFFDF9F97BFF7FFFFBF770000
+4F9FDFFFFFFFFFFFF7B767000067B7F7FFFFFFFFDFA74F004FA7DFF7C7AFBFEFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B7ABB9E2FFFFFFFFFFFFFFFFFFF0CF9AB6
+D9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB7673700173F77
+AFD7EFF7FFFFFFFFFFF7DFBF875F87C7F7FFFFFFFFDF9F4F000077BFFFFFFFFFFFFFD7973F003F
+97D7FFFFFFFFFFF7B76700005FAFEFFFFFFFFFFFFFD7973F002F8FCFFFFFFFFFF7C7872F003767
+AFDFF7FFFFEFC79F5F3F0000171F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787EE0087F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F000000000000000000004FA7E7FFFFFFE7AF5F2717173F87C7F7FFFFFFFFFFDFAF6F4727
+170000001F375F87BFDFFFE7A74F000000000000000087C7E7A74F000000000000000087C7C787
+00000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFF59F47EE0000EE0017EE3F5FF0BFE7FB
+FFFFFFFFFFFFFFFFEFB7671F0027579FCFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000
+000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F00001F4F8FC7EFCF973F171F4787
+AD9C4F0000000000373F3F87C7FFFFFFFFFFFFFFFFFFDFAF6F4727170000001F375F87BFDFFFC7
+8700000000000000004FA7E7C78700000000000000004FA7E7FFF7CF8F471F001F5FAFDFFFFFFF
+FFEFB7671F1F67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B0995A1A8B551A8B551A8B551A8B
+551A8B5F9AD7FFFFFFFFD79737001F476FB7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFD7AF875F3F2717000000001F375F8FBFE7FFFFFFFFFFE7A74F000000000000000087C7E7A7
+4F000000000000000087C7C78700000000000000004FA7E7E7A74F000000000000000087C7FFFF
+FFFFDFB76F471F00001F478FC7D7A75F476F9FC7E7FFFFFFFFEFB7671F1F67B7EFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787EE0087F4FFFFFFFFFFFFFFFFD7973700
+3797D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B7A7B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7A7A7CFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5151F20000EE
+0000EE0000EE0000EE0000EE0000EE0000EEADADF9EFD7B7AFB7D7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1ACD4551A8B
+551A8B551A8B551A8B551A8B551A8B551A8B916BB4FFF7E7C7B7AFC7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5A5F80000EE0000EE0000EE0000EE0000EE0000EE
+0000EE5959F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCF
+AF874F1F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCFAF874F1F87C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCF975F371F00001F44647D7F
+5C3F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7C79F6F475FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB76F1F1F00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F271F00000087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F473F97D7FFFFFF
+DF8235030300000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F1F1700004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7CFA797BFE7FFFFFFFFEFD79F57171787C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F00
+77C7FFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787000087C7FFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD797578FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFC787000000
+0000000087C7FFFFFFFFF7D7A76F471F0000001F476FA7D7F7FFFFFFEFCFAF875727779FAF6F3F
+1700278FCFE7A74F000087B7CF975727170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC78700000000000000000000000087C7FFFFC787000087C7FFFFFFFFF7D7A76F472717
+0000001727476FB7DFFFFFE7A74F0000000000004FA7E7FFC787000000000000004FA7E7FFFFFF
+C787000000000087C7FFFFFFFFF7D7A76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFDFAF6F47
+2717001F5FAFC7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCFA7
+675F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFEF
+C78F6777B7DFFFFFFFFFFFFFFFFFE7AF6777B7E7F7FFFFFFF7E7A75F001777BFDFA75717170000
+004F9FDFFFFFFFFFFFFFFFE7A74F0000579FD7EFFFFFFFEFCF8F47001767B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFC787000087C7FFFFFFF7B7
+6F174797D7FFFFFFFFE7AF5F001787CFFFFFFFFFF7BF77172F8FCFFFFFFFFFFFFFFFCF8F2F2F8F
+CFFFFFFFFFFFFFF7C7A7AFDFFFFFFFFFFFE7AF6777B7E7F7FFFFFFF7E7A75F001777BFF7FFFFF7
+BF6F173787BFEFFFFFFFEFC79F5F3F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F000000000000173F8FCFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+0067979F574F97D7F7FFFFFFFFFFFFFFFFFFFFCF8F2F00000000000000000000000000000087C7
+FFFFE7A74F000087C7FFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFC787170067B7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFC787000087
+C7FFFFFFFFFFFFFFFFFFEFDFB79767471F00000087C7FFFFFFFFFFFFC787171787C7FFFFFFFFFF
+F7BF771F171777BFF7FFFFFFF7BF9FA7E7FFFFFFFFFFCF8F2F0000000000000000000000000000
+0087C7FFDF9F47006FBFF7FFFFFFFFFFFFFFCF8F2F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7E7C7975717000067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0000778F8F37003787C7F7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFE7
+A74F004FA7E7FFC7870000000000000000000087C7FFFFFFFFFFC787000087C7FFFFFFFFFFFFFF
+FFC787000087C7FFFFFFFFF7D79F5F273F6F9FBFD7EFBF87000087C7FFFFFFFFFFFFFFCF8F2F17
+77BFF7FFFFEFAF97AFC79F3F0067B7EFFFF7BF97A7DFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFB767000087C7FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F000087C7FFDFA757171757AFE7FFFFFFFFFFFFFFCF8F2F1777BFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFE7A74F000087C7FFFFFF
+FFFFFFFFF7BF6F002F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FF
+FFFFFFFFFFFFFFC787000087C7FFFFFFC787170067B7F7FFFFFFFFFFC787000087C7FFFFFFFFFF
+FFFFFFCF8F2F1777BFF7DFAF9FC7F7FFDF9F47005FAFE7C79FA7DFFFFFFFFFFFFFFFCF8F2F1777
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC77700005FAFEFFFFFFFFFFFFFFFE7A74F004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7771777BFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F000077C7FFFFFFF7C7873F1F57A7DFFFFFFFFFFFFFDF
+9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDFFFFFDF9F4F000087C7FFFFFFFFFFFFFFFFE7AF5F17
+004F97CFEFFFFFFFEFC787371757AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+6700005FAFE7FFFFFFFFFFFFF7B76700005FAFEFFFF7BF6F00004F9FDFFFFFF7E7C78747000077
+C7FFFFFFFFFFFFFFFFFFCF8F2F0067779FAFDFFFFFFFFFEFAF5F00474F679FDFFFFFFFFFFFFFFF
+FFFFDF9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDFFFF7C7872F003767AFDFF7FFFFEFC79F5F3F
+0000171F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD79F5F5FA7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000087C7FFC787000000001717
+170087C7FFFFFFEFCF975F371F000000172747679FCFF7E7A74F0000000000373F3F87C7FFFFFF
+FFFFFFFFFFDFB78757271700001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787000000000000000000000087C7C78700000000000000004FA7DFCF974F1F00001F4F8FC7
+EFCF973F171F4787BFEFFFFFFFFFFFFFFFCF8F2F005FAFEFFFFFFFFFFFFFEFAF5F003F9FDFFFFF
+FFFFFFFFFFFFFFFFFFFFEFCF975F371F000000172747679FCFF7FFFFFFFFFFDFB76F471F00001F
+478FC7D7A75F476F9FC7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFD79F471F0000000017273F5F8FBF
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7673767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+673767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFCFAF874F1F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F00000087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F87C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC787370087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7BF975F3F87C7FFFFFFEFCFAF8757
+2787C7EFCF97572717001F478FC7F7FFFFFFFFFFF7E7BF975F3F87C7FFDFAF5F37000000000000
+00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F000087C7FFFFFFFFC7870000000000000087C7FFFFFFFFF7D7A76F471F0000001F476FA7D7
+F7FFC787000000000000000087C7FFFFFFFFE7A74F000000004FA7E7FFFFDFAF5F2717173F87C7
+D7A787A7E7FFFFFFFFFFF7D7A76F471F0000001F476FA7D7F7FFFFFFEFCFAF875727779FAF6F3F
+1700235D40000000000000004FA7E7FFFFFFE7A74F000000004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78F1F1F00000087C7FFEF
+B76717170000004F87BFDFF7FFFFF7BF6F170057AFE7FFFFFFC78F1F1F00000087C7FFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F000087C7FFFFEFC78F6777B7DFFFFFFFFFFFFFFFFFE7AF6777B7E7F7FFFFFF
+F7E7A75F001777BFF7FFFFE7AF67172777C7F7FFFFFFFFFFFFFFCF8F87B7EFFFFFFFEFB7673F97
+D7FFFFFFFFEFBF7767A7E7FFFFFFE7AF6777B7E7F7FFFFFFF7E7A75F001777BFDFA75717170000
+004F9FDFFFFFFFFFFFFFFFFFEFB7670067B7F7FFFFFFFFFFFFFFFFC7BFC7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787000087
+C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F000067979F574F97D7F7FFFFFFFFFFFFFFFFFFFFCF8F2F0000
+0000000000000000000000000087C7FFFFFFFFDF9F47004FA7E7FFFFFFFFF7BF878FCFFFFFFFFF
+FFE7AF57174787B7D7EFFFFFFFFFFFFFFFFFFFCF8F2F00000000000000000000000000000087C7
+FFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFF7BF771F77BFF7FFFFFFFFFFF7CFC7CFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFF
+FFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000778F8F37003787C7F7FFFFFFFFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767172F8FCFFFFFEFAF879F
+DFFFFFFFFFFFFFFFF7CF974F1F0000001727578FC7EFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFC78717479FDFFFFFFFEFBFBF
+CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7
+E7FFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFDFA757171757AFE7
+FFFFFFFFFFFFFFCF8F2F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37005F
+AFC79F87AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A7874F1F003797D7FFCF8F2F1777BFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F8F
+CFFFCFA7AFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B76700005FAFEFFFFFFFDF9F4F000077BFFFFFFFFFFFFF
+D7973F003F97D7FFFFFFFFFFF7B76700005FAFEFFFFFFFFFC777000077C7FFDFAFAFCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F000077C7FFFFFF
+F7C7873F1F57A7DFFFFFFFFFFFFFDF9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDFFFFFFFFFFFFF
+FFFFEFAF5F00001777BFF7FFFFFFFFFFFFFFFFE7A7676FB7E7F7FFFFFFFFD7973F2F8FCFFFFFDF
+9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDFFFFFDF9F4F000087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F3F17575F77A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000000476D4800000000000000
+0087C7E7A74F000000000000000087C7C78700000000000000004FA7E7FFE7AF5F2717173F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00000000
+0000000087C7FFC787000000001717170087C7FFFFFFEFCF975F371F000000172747679FCFF7FF
+FFFFFFFFFFFFFFFFFFFFCF8F3777BFF7FFFFFFFFFFFFFFFFFFE7A78FAFDFCF974F1F0017275797
+CFF7FFFFFFFFFFEFCF975F371F000000172747679FCFF7E7A74F0000000000373F3F87C7FFFFFF
+FFFFFFFFFFFFFFFFFFDF9F47004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF878FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F87A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47170017275797CFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFEFEFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFEFC0C0C0C0C0C0C0C0C0808080808080808080606060404040404040404040000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000404040404040404040606060808080808080
+808080C0C0C0C0C0C0C0C0C0DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFC0C0C0B0B0B0808080707070404040404040101010
+0000000000000000000000000000000000001F1F1F3F3F3F3F3F3F3F3F3F7F7F7F7F7F7F7F7F7F
+9F9F9FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CFCFCFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFAFAFAF7F7F7F7F7F7F7F7F7F4F4F4F
+3F3F3F3F3F3F1F1F1F000000000000000000000000000000000000000000404040404040707070
+808080A0A0A0C0C0C0DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF
+C0C0C0A0A0A08080806060604040402020200000000000000000000000003F3F3F3F3F3F7F7F7F
+7F7F7F8F8F8FBFBFBFBFBFBFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBF9F9F9F7F7F7F
+7F7F7F3F3F3F3F3F3F0F0F0F000000000000000000202020404040505050808080909090C0C0C0
+CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFC0C0C0909090707070404040101010
+0000000000000000000F0F0F3F3F3F4F4F4F7F7F7F8F8F8FBFBFBFBFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFBFBFBF8F8F8F7F7F7F4F4F4F3F3F3F
+1F1F1F000000000000000000000000404040707070909090C0C0C0EFEFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFEFEFC0C0C09090907070704040401010100000000000001F1F1F3F3F3F
+7F7F7F9F9F9FBFBFBFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDFBFBFBF9F9F9F7F7F7F4F4F4F1F1F1F000000000000101010
+404040707070909090C0C0C0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C0C0C0A0A0A08080804040401010100000000000001F1F1F3F3F3F7F7F7F9F9F9FBFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+BFBFBF9F9F9F7F7F7F3F3F3F1F1F1F000000000000101010404040707070909090C0C0C0FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFA0A0A0606060
+3030300000000000000F0F0F3F3F3F6F6F6F9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9F7F7F7F3F3F3F1F1F1F
+000000000000303030707070A0A0A0CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFB0B0B0808080404040101010000000
+0F0F0F4F4F4F7F7F7FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFEFBFBFBF7F7F7F3F3F3F0F0F0F000000101010404040808080B0B0B0DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C09090906060602020200000000000003F3F3F6F6F6F
+9F9F9FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFAFAFAF6F6F6F3F3F3F
+000000000000202020505050808080C0C0C0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFB0B0B07070704040400000000000001F1F1F4F4F4F8F8F8FBFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCFCFCF8F8F8F5F5F5F2F2F2F000000000000303030707070B0B0B0FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC0C0C08080804040400000000000003F3F3F7F7F7FAFAFAFEFEFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF7F7F7F3F3F3F
+000000000000404040808080C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF
+9090905050501010100000002F2F2F6F6F6FAFAFAFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFEFAFAFAF6F6F6F2F2F2F000000101010505050909090CFCFCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFA0A0A0606060
+2020200000001F1F1F5F5F5F9F9F9FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF9F9F9F5F5F5F1F1F1F000000
+101010505050A0A0A0DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0B0B0707070303030000000
+0F0F0F4F4F4F8F8F8FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF9F9F9F5F5F5F0F0F0F000000202020606060B0B0B0FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFA0A0A05050501010100000003F3F3F
+7F7F7FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF8F8F8F4F4F4F000000000000505050
+A0A0A0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF9090905050500000000F0F0F5F5F5F9F9F9F
+EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF
+9F9F9F5F5F5F0F0F0F000000404040909090DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF9090903030300000000F0F0F5F5F5FAFAFAFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF5F5F5F1F1F1F000000303030808080CFCFCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFA0A0A0707070505050808080
+C0C0C0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCFCFCF7070702020200000001F1F1F6F6F6FCFCFCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF6F6F6F2F2F2F
+000000202020707070C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFEFFFC0C0FF8080FF5050FF7070FF9090FFC0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF505050000000000000000000
+000000000000000000101010AFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFB0B0B06060602020200000002F2F2F8F8F8FCFCFCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF8F8F8F2F2F2F000000101010606060B0B0B0FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000BFBFBFFFFFFFFFFFFF
+FFFFFFFFFFFFBFBFFF1010FF0000FF0000FF0000FF0000FF0000FF0000FF4040FFDFDFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF101010000000000000
+000000000000000000000000000000000000000000505050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCFCFCF7070701010100000003F3F3F8F8F8FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF9F9F9F4F4F4F000000101010606060
+CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF0000000000005F5F5F
+FFFFFFFFFFFFFFFFFF6F6FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+1010FFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF101010000000
+0000000000000000000000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFF
+FFFFFFDFDFDF9090902020200000002F2F2F8F8F8FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF
+9F9F9F2F2F2F000000202020808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F
+000000000000DFDFDFFFFFFF8F8FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF1010FFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+B3B3B3A0A0A04040400000001F1F1F6F6F6FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF7F7F7F1F1F1F000000303030A0A0A0EFEFEFFFFFFFFFFFFF
+FFFFFFBFBFBF0000000000006F6F6FDFDFFF1010FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF4040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CFCFCF000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000F0F0F5F5F5FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF6F6F6F0F0F0F000000
+505050A0A0A0FFFFFFFFFFFF2F2F2F0000001010105959EF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFBFBFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9F9F9F000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000A0A0AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFAFAFAF5F5F5F0000001010106060607777770000000000002F2FFF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF7F7FFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF6F6F6F000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF9F9F9F3F3F3F0000000202020000000000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF606060000000000000000000
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F404040000000000000000000
+000000FFFFFF0F0FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000001F1F1F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F1F1F000000000000000000
+0000004F4F4FBFBFBFFFFFFF3F3FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF
+0F0F0F000000000000000000000000000000000000000000000000000000000000000000000000
+0000006F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000
+0F0F0F5F5F5FDFDFDFFFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFAFAFAF000000000000000000000000000000000000000000000000000000000000
+0000000000001F1F1FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF7F7F7FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F2FFF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF8F8FFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000000000000000
+000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFF0F0FFF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF3F3FFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000000000000000000000
+0000000000000000000000001F1F1FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCFCFFF2F2FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF6F6FFFEFEFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF3F3F3F
+0F0F0F0000000000000000002F2F2F6F6F6FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFF2F2FFF0000FF0000FF0000FF0000FF3F3FFFBFBFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC3C3C3606060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7777B7A7A7C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDFC0C0C0C0C0C0C0C0C0808080808080808080606060404040404040404040000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000101010404040404040404040505050808080808080
+808080909090C0C0C0C0C0C0C0C0C0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFC0C0C0B0B0B0808080707070404040404040101010
+0000000000000000000000000000000000001F1F1F3F3F3F3F3F3F3F3F3F7F7F7F7F7F7F7F7F7F
+9F9F9FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF8F8F8F7F7F7F7F7F7F7F7F7F4F4F4F
+3F3F3F3F3F3F3F3F3F0F0F0F000000000000000000000000000000101010404040404040808080
+808080A0A0A0C0C0C0CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF
+C0C0C09090908080806060604040402020200000000000000000000000003F3F3F3F3F3F7F7F7F
+7F7F7F9F9F9FBFBFBFBFBFBFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBF8F8F8F7F7F7F
+6F6F6F3F3F3F3F3F3F000000000000000000000000000000303030404040707070808080C0C0C0
+CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFC0C0C0909090707070404040101010
+0000000000000000000F0F0F3F3F3F4F4F4F7F7F7F8F8F8FBFBFBFCFCFCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFBFBFBFAFAFAF7F7F7F7F7F7F3F3F3F
+2F2F2F000000000000000000202020404040808080909090C0C0C0DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFEFEFC0C0C09090907070704040401010100000000000001F1F1F3F3F3F
+7F7F7F9F9F9FBFBFBFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDFBFBFBF8F8F8F6F6F6F3F3F3F1F1F1F000000000000000000
+303030505050808080B0B0B0DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C0C0C0A0A0A07070704040401010100000000000001F1F1F3F3F3F7F7F7F9F9F9FBFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CFCFCFBFBFBF7F7F7F5F5F5F2F2F2F000000000000000000404040606060909090C0C0C0EFEFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFA0A0A0606060
+3030300000000000000F0F0F3F3F3F7F7F7F9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF8F8F8F6F6F6F3F3F3F000000
+000000000000303030606060909090C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFB0B0B0808080404040101010000000
+0F0F0F4F4F4F7F7F7FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCFCFCF9F9F9F7F7F7F3F3F3F0F0F0F000000000000303030606060909090CFCFCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C09090906060602020200000000000003F3F3F6F6F6F
+9F9F9FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFAFAFAF7F7F7F4F4F4F
+1F1F1F000000101010404040808080C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFB0B0B07070704040400000000000001F1F1F4F4F4F8F8F8FBFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF9F9F9F5F5F5F1F1F1F000000000000303030707070B0B0B0EFEFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC0C0C08080804040400000000000003F3F3F7F7F7FAFAFAFEFEFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF9F9F9F5F5F5F1F1F1F
+000000000000303030707070B0B0B0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF
+9090905050501010100000002F2F2F6F6F6FAFAFAFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF9F9F9F5F5F5F1F1F1F000000000000303030808080C0C0C0FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFA0A0A0606060
+2020200000001F1F1F5F5F5F9F9F9FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFAFAFAF6F6F6F2F2F2F000000
+000000404040909090CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0B0B0707070303030000000
+0F0F0F4F4F4F8F8F8FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFEFEFAFAFAF5F5F5F1F1F1F000000202020606060B0B0B0FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFA0A0A05050501010100000003F3F3F
+7F7F7FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF7F7F7F2F2F2F000000000000505050
+909090DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF9090905050500000000F0F0F5F5F5F9F9F9F
+EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+9F9F9F4F4F4F000000000000202020707070CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF9090903030300000000F0F0F5F5F5FAFAFAFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF5F5F5F0F0F0F000000202020707070B0B0B0FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CFCFFFA0A0FF6262F12828D78080FFB0B0FFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCFCFCF7070702020200000001F1F1F6F6F6FCFCFCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF6F6F6F2F2F2F
+000000101010606060B0B0B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFC0C0C0808080323232545454909090C0C0C0
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFFF5050FF0000FF0000FF0000FF0000FF0000FF0000FF1010FFAFAFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF0000000000005F5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFB0B0B06060602020200000002F2F2F8F8F8FCFCFCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF8F8F8F4F4F4F000000101010606060B0B0B0FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF101010000000000000000000000000
+000000000000404040DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFBFBFFF1010FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF5050FF
+FFFFFFFFFFFFFFFFFF5F5F5F000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCFCFCF7070701010100000003F3F3F8F8F8FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF9F9F9F4F4F4F000000101010606060
+B0B0B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6F000000000000000000000000
+0000000000000000000000000000001010109F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFFF1010FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF7F7FFFFFFFFFEFEFEF1010100000003F3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF9090902020200000002F2F2F8F8F8FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+8F8F8F2F2F2F000000202020707070CFCFCFFFFFFFFFFFFFFFFFFF8F8F8F000000000000000000
+000000000000000000000000000000000000000000000000101010DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FFBFBFFF8F8F8F0000000000009F9F9FFFFFFFFFFFFFFFFFFF
+EFEFEFA0A0A04040400000001F1F1F6F6F6FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF6F6F6F1F1F1F000000202020808080C3C3C3101010000000
+000000000000000000000000000000000000000000000000000000000000000000404040FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF3F3FFF1F1F1F0000001F1F1FFFFFFFFFFFFF
+B0B0B06060600000000F0F0F5F5F5FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF5F5F5F0F0F0F000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9FFF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF1010FF000000000000747474
+7070701010100000004F4F4F9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF202020000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6FFF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF000020
+0000000000002F2F2F9F9F9FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000004F4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF000040000000000000505050BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000003F3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+7F7FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FFFFFFFF000000000000000000000000303030A0A0A0FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0F000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000006F6F6FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFBFBFFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF1F1FFFFFFFFFBFBFBF5F5F5F000000000000000000000000101010
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F3F3F000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000008F8F8FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFEFFF0F0FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF6F6FFFFFFFFFFFFFFFFFFFFFDFDFDF7F7F7F0F0F0F
+000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFFF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF1F1FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFEFEF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF2F2F2F000000000000000000000000000000000000000000000000000000000000000000
+0000008F8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFBFBFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCFCFCF0F0F0F000000000000000000000000000000000000000000000000
+0000000000003F3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+7F7FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF1F1FFFBFBFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF2F2F2F000000000000000000000000000000
+0000000000000000006F6F6FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCFCFFF3F3FFF0F0FFF0000FF0000FF0000FF2F2FFF6F6FFFEFEFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F2F2F2F000000
+0000000000000000003F3F3FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3C3E36060A0FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFBFBFBFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFA0A0A0626262282828808080B0B0B0DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFFFB0B0FF8080FF4040FF8080
+FFA0A0FFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF505050000000000000000000000000000000000000
+101010AFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF7070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF101010000000000000000000000000000000
+000000000000000000000000505050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000000000606060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF3030FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF3030FFCFCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF101010000000000000000000000000
+0000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF0F0F0F000000000000606060FFFFFFFFFFFFFFFFFFFFFFFFFF3F3FFF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF3030FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000
+000000000000000000000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF0F0F0F000000000000606060FFFFFFFFFFFFFF8F8F
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000003F3F3F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF0F0F0F000000000000606060
+FFFFFFFF0F0FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000101010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF0F0F0F
+000000000000605454FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF6F6F6F000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000D1D1D1FFFFFFFFFFFFDFDFDFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0DFDFDFFFFFFFFFFFFFEFEFEFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+CFCFCFFFFFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFF
+FFFFFFFFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFFFFFFFFFFFFF
+CFCFCFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0EFEFEFFFFFFFFFFFFFDFDFDFC0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0DFDFDFFFFFFFFFFFFFEFEFEFC0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0CFCFCFFFFFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0FFFFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0FFFFFFFFFFFFFFFFFFCFCFCFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0EFEFEF
+FFFFFFCFCFCF0D0D0D000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF3F3F3F000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000008F8F8FFFFFFFFFFFFF7F7F7F000000000000000000
+0000000000000000000000007F7F7FFFFFFFFFFFFFBFBFBF000000000000000000000000000000
+0000000000003F3F3FFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000FFFFFF
+FFFFFFFFFFFF3F3F3F000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFF
+7F7F7F0000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFFBFBFBF000000
+0000000000000000000000000000000000003F3F3FFFFFFFFFFFFFFFFFFF000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFF000000000000000000000000000000
+000000000000000000FFFFFFFFFFFFFFFFFF3F3F3F000000000000000000000000000000000000
+000000BFBFBFFFFFFFFFFFFF3F3F3F000000000000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF7F7FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6F000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F0000000000000F0B0BFF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF8F8FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000F0F0FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F0000000000000F0F0FCFB5B5FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF0F0F0F000000000000
+0000000000000000000000000000000000000000000000000000000000000000006F6F6FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F0000000000000F0F0FCFCFCFFFFFFF
+FF4F4FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F
+0000000000000000000000000000000000000000000000000000000000000000000000000F0F0F
+EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F0000000000000F0F0FCFCFCF
+FFFFFFFFFFFFFFCFCFFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF4F4F4F000000000000000000000000000000000000000000000000000000000000
+000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000F0F0F
+CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8FFF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000000000000000000000000000000000000000
+0000001F1F1FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0F
+0F0F0FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFFF0F0FFF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0F0FFF8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF3F3F3F0F0F0F000000000000
+0000002F2F2F6F6F6FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF5F5F
+FF1F1FFF0000FF0000FF0000FF1F1FFF4F4FFFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFEFA06060E1D1D1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDFB0B0B0808080202020626262A0A0A0CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF7F7F7F000000000000000000000000000000000000000000707070EFEFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFEFEF303030000000000000000000000000000000000000000000000000000000303030
+CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF3F3F3F000000000000000000000000000000000000000000000000000000
+000000000000303030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF8F8F8F000000000000000000000000000000000000000000000000
+0000000000000000000000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0F000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000008F8F8F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+BFBFBF000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000AFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F3F3F000000000000000000000000000000000000000000
+0000000000000000000000000000000000002F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF0F0F0F000000000000000000000000
+000000000000000000000000000000000000000000000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F000000000000
+0000000000000000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+AFAFAF0F0F0F0000000000000000000000000000000000000000000F0F0F8F8F8FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFEFEF5F5F5F1F1F1F0000000000000000001F1F1F4F4F4FDFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBFEFEFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7DFAF6F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFAF6F471F00000000004FA7E7FFFFE7
+A74F0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F2F77BFEFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000000171717004FA7E7
+FFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFC7870000000000000000000000000000
+0087C7FFFFFFFFFFF7CF975F371F0000000000004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFF7
+CF8F47275F9FD7F7FFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFE7A74F0000
+0000000000000000000000004FA7E7FFFFFFFFFFEFC78F5727170000001F375F97CFF7FFFFFFFF
+E7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFDFB7673F3F77BFEFFFFFFFFFFFEFC78F5727170000172747
+6FB7DFFFFFFFFFFFFFFFC7870077AFC78F57271700001F478FC7F7FFFFFFC7870077A7BF8F5727
+170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000
+000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+E7A74F000000000000001F476FB7DFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFDF9F3F4FA7
+E7FFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFFFFFF7D7A76F471F00000000171717
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F373787BFEFFFFFFFFFFF
+BF77004FA7E7FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7DFEFBF773F3F87C7EFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F
+1767B7EFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7F7D79F57275FA7DFFFFFFFFFFFFFFFDF9F4F57A7DFF7
+FFFFFFFFEFC78F47479FDFFFFFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFC78700
+003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFDFA74F4FA7E7FFFFC787176FBFF7FF
+FFC7870087C7FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFEFB7671F57A7DFF7FF
+FFFFFFDF9F4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F4FA7DFFF
+FFFFFFFFFFFFC787004FA7E7FFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFD79F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFF
+FFFFC787003747471F378FCFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000000
+87C7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFE7A74F00000000000000000000
+0000000087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFF
+FFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F003F47471767AFEFFFFFFFFFFFFFFFFFFFE7A7
+4F000000000000000000000000000087C7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFFFE7A74F00000000000000000087
+C7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFF7CF975F371F00000000000000004FA7E7FFF7BF6F1787CFFFDF9F
+8F67676FBFF7E7A74F4FA7DFFFFFE7A74F000000000000000000000000000087C7FFFFEFB76700
+77C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7BFA78F5F3F1F3F
+8FCFF7FFFFFFFFFFC787004FA7D7C787373787C7F7FFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFE7A74F3F9FDFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F
+9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087BFDFA7571F57A7DFFFFFFF
+FFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFDF9F
+3F6FBFDFA787A7DFBF7787C7CF8F2F77C7FFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB767004F9FDFFFFFFFDFAF673F17174FA7E7FFFFFFCF8F2F2F67AFDFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7CF8F374FA7E7FFFFFFFFFFC787004FA7E7FFFFDFA7571F57A7DFFFFFFFFFFFFFCF8F2F2F
+67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+CF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFF
+FFFFFFCF8F2F3777B7E7FFFFFFFFEFBF87371777BFF7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFF7C7
+87373787C7EFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004F
+A7E7FFFFF7BF6F3F7777779FDFFFEFB76F6F6F5F4FA7DFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F3F1700001F4787BFCFA74F4FA7E7FFFFFFFFF7D7A76F47
+27170000000000000087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFC787
+000000000000001727476FA7D7F7FFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757A7DFFF
+FFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFE7A74F00000000000000000000000000
+87C7FFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFFFFFFFFFDFB76F471F0000
+0000004FA7E7FFFFFFFFF7D7A76F47271700001727476FA7D7F7FFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFDFA757173787C7F7FFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF674727170000001727476FA7D7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FFFFFFF7CF9757271700001F47
+679FAF974F4FA7E7FFFFFFCF8F2F002F8FCFFFFFFFE7A74F00006FBFF7FFFFFFFFFFF7D7A76F47
+27170000000000000087C7FFFFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479F
+DFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFDF9F4717
+87C7FFFFFFFFFFFFFFFFE7A74F1777BFF7FFFFFFC7870000000000000017275797CFF7FFFFFFFF
+FFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFFFFDFB76F47271700000000000087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFE7A74F4F97A7873F171757A7C7AF5F1F001F6FB7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFF
+FFEFC78F57271700001727476FB7DFFFFFFFFFFFF7C787373787CFF7FFFFFFFFF7C787373787C7
+F7E7A74F00000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7
+FFFFFFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFE7A74F4F97A7873F171757A7C7AF
+5F1F001F6FB7EFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671777BFF7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFF7CF8F47275F9FD7F7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFF
+FFFFFFE7A74F0087C7FFFFFFFFDFB7673F3F77BFEFFFFFFFFFFFF7D7A76F471F0000001F375F97
+CFF7FFFFFFDF9F471787C7FFFFFFFFFFFFFFFFCF8F2F2F8FCFFFFFFFFFFFFFFFFFFFFFFFDF9F47
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFEFAF5F1787C7FFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F
+3F9FDFFFFFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFFFC7870067AFEFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+3F9FDFFFFFFFFFFFFFFFFFFFFFE7A74F001767AFE7C7870000378FCFDFA74F0087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFCF8F373787C7F7F7C777
+3757A7DFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F
+1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFF
+F7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFE7A74F001767AFE7
+C7870000378FCFDFA74F0087C7FFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7DFEFBF773F3F87C7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7F7D79F57275FA7DFFFFFFFFFFFFFFFF7BF773F87BFEFFFFF
+FFFFF7E7AF671F77BFF7FFFFEFAF5F1777BFF7FFFFFFFFFFCF8F2F4FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF771F77BFF7FFFFFFDF9F47479FDFFFFFFFFFFFFFDFB76F47271700
+0000000000000087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF6F
+371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFE7A74F0077C7FFFFC787004FA7DFFFE7A74F0087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFFFFFFFDFA7
+573F3F3F3F87C7F7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F00000000000000004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFF7CF975F371F00000000000000004FA7E7FFFFE7A7
+4F0077C7FFFFC787004FA7DFFFE7A74F0087C7FFE7A74F000000000000000000000000000087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787003747471F378FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F
+4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFE7A74F003F47471767AFEFFFFFFFFFFFFFFFFFFFFFC78700
+000000000000000000000000004FA7E7FFFFFFF7BF771F77BFF7FFFFFFC7871F77BFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F3777BFF7FFDF9F475FAFEFFFFFFFFFFFDF9F47
+004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFC787004FA7E7
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA75F5F6F673F57AFE7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004F
+A7E7FFFFE7A74F0087C7FFFFC787004FA7E7FFE7A74F0087C7FFE7A74F3F9FDFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7D7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFE7A74F0087BFDFA7571F57A7DFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F67B7EFF7BF77378FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F476FBFD79F578FCFFFFFFFFF
+FFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFF
+C787004FA7E7FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C787374FA7DFFFF7C7773757A7DFFFFFFFFFFFFFFFFFF7BF6F004F9FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFEFB767003F
+97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFEFB767003F97D7FFFFFFEF
+CF9F5F1F004FA7E7FFFFE7A74F0087C7FFFFC787004FA7E7FFE7A74F0087C7FFFFCF8F2F2F67AF
+DFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFE7A74F0087C7FFFFF7C78737
+3787C7EFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F474F8F
+8F5F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F4F679F
+DFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFC787004FA7E7FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFF7D7A76F4727170000
+000000000087C7FFFFFFFFDFA757174FA7DFFFFFFFFFFFF7C7772F3787C7F7FFFFFFFFFFFFFFDF
+B76F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFF
+FFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFC78F5F371F000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFF7CF9757
+271700001F47679FAF974F4FA7E7FFFFE7A74F0087C7FFFFC787004FA7E7FFE7A74F0087C7FFFF
+FFF7D7A76F4727170000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFDFA757173787C7F7FFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFFF
+FFFFEFAF5F00005FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFAF5F005FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7
+873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7B77737378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F
+57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F57
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7DFAF6F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+B76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7
+F7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFF
+FFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F00000000000017275787BFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D797471787CFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFF7D7A76F471F00
+00001F375F97CFF7FFFFFFFFC78700000000000000000000000000000087C7FFFFFFFFFFFFDFB7
+6F47271700000000000087C7FFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFF
+FFC7870077AFC78F57271700001F478FC7F7FFFFFFFFE7A74F000000000000001F476FB7DFFFFF
+FFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFF7D7A76F471F00000000171717
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000
+87C7FFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFC787000000
+0000000087C7FFFFFFFFFFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF873F57AFE7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFF
+FFFFFFE7A74F4F97A7873F171757A7C7AF5F1F001F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC7870077A7AF5F1F003787BFBF873F17173F97D7FFFFFFFFFFFFFFFFFFFFDF
+9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671777BFF7FFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000
+17275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000
+00000000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFF
+FFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC7870077A7BF8F5727170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77175F
+AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F0000000000004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFFFFF
+FFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFF7CF8F4727
+5F9FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFF7
+CF8F47275F9FD7F7FFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFF7BF77
+3F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B767006FBFF7FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFEFB7671F57A7DFF7FF
+FFFFFFDF9F4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000027579F
+CFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFF
+FFFFFFFFFFFFFFFFFFE7A74F001767AFE7C7870000378FCFDFA74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000378FCFDFA74F001767AFE7C787004FA7E7FFFFFFFF
+FFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDF
+A74F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFF
+FFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7DFEFBF
+773F3F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7DFEFBF773F3F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F37
+1F00000000000000004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFEFB76700
+77C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7DFA75717479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87006FBFF7FFFFFFFFFFFFFFFFFFFFE7A74F0077C7FFFFC787004FA7DFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7DFFFE7A74F0077C7FFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFB76F472717000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7CF975F371F00000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD79F471F3F5F8FA7BFD7EFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAF
+CFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC787
+003747471F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787003747471F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+DFA74F0087C7FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFF7
+BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFC787004FA7E7FFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFE7A74F0087C7
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFF
+FFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F00
+77C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7
+BFA78F5F3F1F3F8FCFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFC787004FA7D7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7D7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77BF
+EFFFFFEFCF8F4F1F170087C7FFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFF
+FFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCF9F571F67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFC787004F
+A7E7FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+E7A74F0087C7FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F
+2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFF
+EFD7974F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7CF8F374FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFF
+FFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFEFC78F5F371F000000000000004FA7E7
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F
+8FC7EFFFFFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFC787004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000087C7FF
+FFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFE7A74F000000000000000000000000
+0087C7FFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0000000000001F375F87B7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFC787004FA7E7FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFE7A74F0087C7FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF974F
+4FA7E7FFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F0000
+00001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF6747
+27170000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFF
+FFFFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77
+1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757A7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757A7DFFF
+FFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7
+873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87
+C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF
+5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7DFAF6F471F00000000004FA7E7FFFFFFC78700000000000000
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F000000001717170087C7
+FFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFC78700000000000000000000000000
+000087C7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC78700000000000000
+87C7FFFFFFFFFFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFE7A74F0000000000
+0000000000000000004FA7E7FFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFE7A74F
+4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFF
+FFFFFFC7870077AFC78F57271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F4F97A7873F171757A7C7AF5F1F001F6FB7EFFFFFFFFFFFFFFFFFFFF7BF77175F
+AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F57A7DFF7FFFFFFFF
+DF9F4F0087C7FFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BF
+F7FFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF
+671F77BFF7FFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F001767AFE7C7870000378FCFDFA74F0087C7FFFFFFFFFFFFFFFF
+FFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFEFB7670077C7FF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000000000
+000000004FA7E7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFC787000000000000
+00000000000000004FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077C7FFFFC787004FA7DFFFE7A74F0087C7FFFF
+FFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF
+9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFC787
+006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFC787004FA7E7FFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFEFAF5F00478FC7EFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFF
+EFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFC78700
+4FA7E7FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFEFC78F5F
+371F000000000000004FA7E7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7
+A74F0000000000000000000000000087C7FFFFFFE7A74F0000000000000000000000000087C7FF
+FFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFDFB76F471F0000000000
+4FA7E7FFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFC787004FA7E7FFE7A74F0087C7FFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87
+C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFAF6F471F00000000004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F
+5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F2F77BFEFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA757
+1F57A7DFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF6F6FAFDFF7FFFFFFDF9F4F00479F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7
+772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F
+471F000000001717170087C7FFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFC78700
+000000000000000000000000000087C7FFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFF
+E7A74F00000000000000000000000000004FA7E7FFFFFFFFFFC7870077AFC78F57271700001F47
+8FC7F7FFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFFFE7A74F4F97AF975727170000
+1F478FC7F7FFFFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFDFB7673F3F77BFEFFFFFFFFFFFEFC7
+8F57271700001727476FB7DFFFFFFFFFF7BF77174FA7E7FFFFFFFFFFFFFFEFB767005FAFEFFFFF
+FFFFDFB76F47271700000000000087C7FFFFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FF
+FFFFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFDF9F471787C7FFFFFFFFFFFFFFFFE7
+A74F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671777BFF7FFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFF
+FFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000017
+275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000
+00000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFF
+C7870077A7BF8F5727170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F0000000000004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFDFB7673F3F77
+BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFDFB7
+673F3F77BFEFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+EFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BF
+F7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700174787BFE7
+F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFE7A74F001747
+8FCFEFFFFFF7C7772F3F9FDFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7F7D79F57275FA7DFFFFFFFFFFF
+FFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFCF8F2F479FDFFFFFFFFFFFEFAF5F2F
+87C7F7FFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7
+E7AF671F77BFF7FFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFEFAF5F1787C7FFFF
+FFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C777
+2F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFF
+FFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7F7D79F57
+275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+F7D79F57275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFC78700000000000000000000
+000000004FA7E7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F
+6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F00000000000000004FA7E7FFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F003F47471767AFEFFFFF
+FFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFDF9F47479FDFFFFF
+FFE7A74F479FDFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFC78700000000
+000000000000000000004FA7E7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+BF771F77BFF7FFFFFFDF9F47479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFC787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFB76F472717000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD79F471F3F5F8FA7BFD7
+EFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+3F47471767AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F003F47471767AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC78700
+4FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFE7A74F0087C7FFFFFFFFFFFFFF
+DFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087BFDF
+A7571F57A7DFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+AF5F2F8FCFFFDF9F475FAFEFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F3777BFF7FFDF9F475FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFBF77373777BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF
+9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFD7BFA78F5F3F1F3F8FCFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087BFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087BFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFF
+EFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFF
+EFCF9F5F1F004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFCF8F2F2F77BF
+EFFFFFEFCF8F4F1F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFF7C787373787C7EFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7BF7737778F773777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF6700
+87C7FFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F476FBFD79F578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F273F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC777006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFF
+FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F17
+77BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFF7FFFFFFFFE7
+B76F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7CF8F374FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFF7C787373787C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFF7C787373787C7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F000017275F9FD7B787
+0087C7FFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFDFB7
+6F471F00000000004FA7E7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF97
+57271700001F47679FAF974F4FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFDFA757173787C7F7FFFFFFF7D7A76F4727170000000000
+000087C7FFFFFFFFFFFFFFFFFFFFCF8F2F002F8FCFFFFFFFFFFFFFFFFFFFE7A74F000000000000
+001F375F8FC7EFFFFFFFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F4F679FDFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000000000000000004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+F7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087
+C7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFDFAF67472717000000
+1727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F
+000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F
+479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFDFA757173787C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFDFA757173787C7F7FFFF
+FFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37
+479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD79F571F67B7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000017275797CFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787
+578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFEFC7
+8F572717000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7
+F7FFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFF7C7
+773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F57271700001727
+5797CFF7FFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFF7E7C7
+A787572717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA757
+1F57A7DFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F000087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A787572717004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C77737
+57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFF
+FFFFDF9F472F6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFF7C7772F4FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+37479FDFFFFFFFFFFFFFFFFFFFFFE7AF6F6FAFDFF7FFFFFFDF9F4F00479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFF
+FFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFF
+FFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5F8FC7
+EFFFFFFFEFBF772F1777BFF7FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFF
+FFFFCF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFF7C7772F4FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFE7AF6F6FAFDFF7FFFFFFDF9F4F00479FDFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFF
+FFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F5F97BF
+C79F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F4F97B79F67371F00001F476FB7DFFFFFFFFFFFE7A74F4F97B7A76F471F00
+0017275FAFDFFFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFFFFFFFFFEFC78F5F
+371F00000000000087C7FFFFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFFFFFFFEF
+C78F572717000000171717004FA7E7FFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFF
+FFFFF7CF975F371F0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFF
+FFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC7873F170057AFE7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC7873F170057AFE7FFFFFFFFFFFFFFFF
+FFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F0087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC7873F17
+0057AFE7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76717
+77BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3F
+9FDFFFFFFFFFFFEFC7873F170057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC7873F170057AFE7FFFFFFFFFFFFFFFF
+FFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9F
+DFFFFFFFFFFFEFC7873F170057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFE7A74F0037
+67A7CFEFFFFFFFE7AF5F0087C7FFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFF
+CF8F372F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFF
+FFFFFFCF8F373787BFEFFFFFFFFFFFBF77004FA7E7FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47
+479FDFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F
+9FDFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F
+5F375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFF
+FFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA74F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFF
+EFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000000000000000004F
+A7E7FFFFFFCF87174FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000
+00000087C7FFFFFFCF8F2F4FA7DFFFFFFFFFFFFFFFC787004FA7E7FFFFE7A74F00000000000000
+0000000000000087C7FFFFFFFFFFD79F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFEFB7670077AFBF77474787C7EFFFFFE7A74F2F8FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670077AFBF77474787C7EFFFFFE7A7
+4F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFC787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670077
+AFBF77474787C7EFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFC777000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+FFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670077AFBF77474787C7EFFFFFE7A7
+4F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFC787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFF
+FFFFFFFFFFFFEFB7670077AFBF77474787C7EFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F
+3F4FA7DFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFE7A74F3F
+9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7BFA78F5F3F1F3F8FCFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFF
+C7871767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFF
+FFFFFFFFC7871767B7EFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFBF77373777000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000A74F004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFF
+FFFFFFFFC7871767B7EFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFBF77373777BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFFFFFFF
+FFFFE7B76F2F479FDFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F0047
+8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77173777B7E7F7FFFFFFFFFFFFFFFFFFFFFFFFCF
+8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFDFAF673F17174FA7E7
+FFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F37
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EF
+FFFFFFEFD7974F1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37
+4F97D7EFFFFFFFEFD7974F1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000EFFFFFFFEFD7974F1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFAF5F273F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFFFFEFD7974F1767B7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+4F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+000000000000001F375F8FC7EFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFFFF7D7A76F47271700000000000087
+C7FFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFFFDFB76F3F1700001F4787BF
+CFA74F4FA7E7FFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFC787000000000000
+001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFB76F471F0000001F476FA7D7000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000FFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F
+479FDFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F0000001F476F
+A7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000
+0000000000000087C7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA757
+1F57A7DFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C787578FCFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFF000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFF000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFF
+FFE7A74F0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000FFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFCF973F5FAFE7FFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000FFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFF
+FFFFEFC78F5727170000001F375F97CFF7FFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F000000172747
+6FB7DF000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFE7A74F00000000000000000000000000004FA7E7FF
+FFFFFFE7A74F0087C7FFFFFFFFDFB7673F3F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+F7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC7
+8700000000000000000000000000000087C7FFFFFFFFFFC787004FA7E7FFFFFFF7CF8F47275F9F
+D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7BF8F572717001727
+5797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F47271700
+000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F
+3F9FDFFFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F1767B7EFFFFFFFE7A74F0017478FCFEFFFFF
+F7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767174F000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000FFFFDF9F4F1777BFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7F7D79F57275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7DFEFBF773F
+3F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AF
+DFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+0067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFFFE7A74F0087
+C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFC787000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000FFFFFFFFFFFFEFB767004F9FDFFFFFFFFFDF9F4F00
+67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F003F47471767AFEFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD79F471F3F5F8FA7BFD7EFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFC7870037
+47471F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFF
+FFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFDF9F4F2737271700
+001727578FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087BFDFA7571F57A7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7BFA78F
+5F3F1F3F8FCFF7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7D7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFCF8F2F3777B7E7FFFFFFFFEFBF8737
+1777BFF7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A7000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFCF8717
+67AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFF7C78737
+3787C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFF
+F7E7B7773F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7CF8F374FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F77BFEFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFF7D7A76F47271700
+001727476FA7D7F7FFFFFFFFFFE7A7000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000087C7
+FFFFFFFFD7973700000000000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F00000000000000
+00000000000087C7FFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFE7A74F0087C7
+FFFFFFFFFFDFA757173787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B7
+6F471F000017275787B79F770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787000000000000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFFF7CF9757
+2717000000000087C7FFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF674727170000001727476FA7D7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7BF77174FA7DFFFFFFFFFFFFFFFE7AF5F0057AFE7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C777
+2F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF57004F9FDFF7FFFFFFFFFFEFBF772F1787C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000000017275787AFD7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67
+AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7CF8F000000000000000000000000000000000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000000000000000000000000000000000000000000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000
+000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000000000000000000000000000000000000000000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000000000000000000000000000000000000000000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000FFFFFF
+FFFFFFE7A74F0087C7FFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFE7A74F00
+00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFEFC78F5727170000001F373F375FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001727476FB7DFFFFF
+FFFFFFFFC7870077AFC78F57271700001F478FC7F7FFFFFFFFE7A74F0000000000004FA7E7FFFF
+FFFFFFFFFFFFFFFFEFC78F5727170000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F4F97A7873F171757A7C7AF5F1F001F6FB7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFF7CF8F47275F9FD7F7FFFF
+FFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000E7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFCF8F373787BFEFFFFFFFFFFFBF77004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767174F97D7EFFFFFFFFFE7
+B76F2F3797D7FFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F001767AFE7C7870000378FCFDFA74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7DFEFBF773F3F87C7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000
+000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFCF8F2F4FA7DFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFC7870000000000000000004FA7E7FFFFFFFFF7BF6F006FBFF7FF
+FFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFFFDF9F4F0067B7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077C7FFFFC787004FA7DFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787003747471F37
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000FFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFDF9F4F2737271700001727578FC7
+EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFC787004F
+A7E7FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+004FA7D7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767005FAFE7FFFFF7DFA75717000087C7FFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFEFB767004F9FDFFFFFFFDFAF673700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFAF5F17579FD7EFFFFFFFF7DFA75717479FDFFFFFFFFFC787004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFCF871767AFEFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFC787004FA7E7FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787004FA7E7FFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000
+000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F00001727578FBFA7770087C7
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFC7870000000000000000000000
+00004FA7E7FFFFFFFFDFB76F3F1700001F476FB7A777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F0000001F375F8FC7EFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FFFFFFD797
+3700000000000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFC787004FA7E7FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757A7DFFFFFFFFFFFFFFFFFFFFFFF
+DF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7BF77174FA7DFFFFFFFFFFFFFFFE7AF5F0057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7AF57004F9FDFF7FFFFFFFFFFEFBF772F1787C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000
+000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000000017275787AFD7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000
+000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000
+000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000
+000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF973F5FAFE7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF973F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787000000000000001F47679FCFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017
+275797CFF7FFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFF000000000000000000
+000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1757AFE7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF6F6FAFDFF7FFFFFFDF9F4F00479FDFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5F8F
+C7EFFFFFFFEFBF772F1777BFF7FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFF
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFC78F5727170000001F375F97CFF7FFFFFFFFE7A74F4F97B79F67371F00001F476F
+B7DFFFFFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFFFFFC7870077AFC78F5727
+1700001F478FC7F7FFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFE7A74F0000000000
+0000000000000000004FA7E7FFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFFFFFFEF
+C78F5727170000001F375F97CFF7FFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F57271700001727476FB7DF
+FFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFEFC78F5F371F000000
+00000087C7FFFFFFFFFFC7870077AFC78F57271700001F478FC7F7FFFFDF9F471787C7FFFFFFFF
+FFFFFFFFCF8F2F2F8FCFFFFFFFE7A74F4F97B79F67371F00001F476FB7DFFFFFFFC78700000000
+000000000000000000000087C7FFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFFFF
+F7D7A76F471F0000001727476FB7DFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000000000000000000
+0087C7FFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFFFFFF7CF975F371F000000
+0000004FA7E7FFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+D7A76F471F000000001717170087C7FFFFFFFFE7A74F0000000000004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFF7CF975F371F0000000000004FA7E7FFFFFFFFE7A74F4F97B79F67371F00001F476FB7DF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F
+476FB7DFFFFFFFFFFFFFFFFFEFC78F5F371F00000000000087C7FFFFFFFFFFFFF7D7A76F471F00
+00001F375F97CFF7FFFFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFA7573F87CFF7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFF7CF8F4727
+5F9FD7F7FFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFDF9F471787C7FFFFFFFFFFFF
+FFFFCF8F2F2F8FCFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFFFFFFFEFC78F5727
+1700001727476FB7DFFFFFFFFFFFFFFFC7870077AFC78F57271700001F478FC7F7FFF7BF77174F
+A7E7FFFFFFFFFFFFFFFFC78717479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFF
+FFFFFFFFFFFF000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F1767B7EFFFFFE7A74F0017478FC7EF
+FFFFFFDF9F4F1777BFF7FFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFC78700
+174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F1767B7EFFFFFE7A74F0017478FCFEFFFFFF7C7772F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFF
+FFEFC78F47479FDFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFCF8F372F67
+AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFEFAF5F
+1777BFF7FFFFFFFFFFCF8F2F4FA7E7FFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFEFB767174F97D7EFFFFFFFFFE7B76F2F3797D7FFFFFFFFC78700003767AFDFFFFFFFDF
+A74F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFE7A74F37
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFF
+FFFFFFFFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFF
+FFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB767006FBFF7FFFFFFFFCF8F372F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77
+3F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000003777B7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7DFEFBF
+773F3F87C7EFFFFFFFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFEFAF5F1777
+BFF7FFFFFFFFFFCF8F2F4FA7E7FFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7
+E7FFFFCF8F2F4FA7E7FFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F
+3F2F8FCFFFFFFFFFFFFFFFFF000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000
+000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F
+0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFC78700000000000000000000000000004FA7E7FF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F00000000000000004F
+A7E7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000
+00000000000000000000000087C7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFF
+CF87174FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7BF771F77BFF7FFFFFFC7871F77BFF7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF
+A74F3F9FDFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFC787004FA7E7
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFE7A74F00000000000000000087C7FFFFFFFFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000000000000000004FA7E7FF
+FFFFFFD79F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFD79F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFF7CF975F371F00000000000000004FA7E7FFFFFFCF87174FA7DFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC78700000000000000000000000000004FA7E7FFEFB7670077C7FFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFBF87371777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFC787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+003747471F378FCFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000000000000000004FA7E7FF
+FFFFF7BF771F77BFF7FFFFFFC7871F77BFF7FFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFF
+FFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFC787004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDF9F47479FDFFFFFFFF7BF771F77BFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFF000000000000000000000000000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087
+C7FFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004F
+A7E7FFFFFFFFC787004FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F67B7EFF7BF77378FCFFFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFF
+C787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFD7BFA78F5F3F1F3F8FCFF7FFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFF
+FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7BFA78F5F3F1F3F8FCFF7FFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFC787004FA7DFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFBF77373777BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787004FA7D7C787373787C7F7FFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F67B7EFF7BF77378FCFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F
+6F4F1F1F5FAFE7FFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F479FDFFFF7BF77378FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D79F571F579FD7F7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFF000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFFFFFFEF
+BF87371777BFF7FFFFE7A74F0077BFFFFFFFFFFFE7B76F2F479FDFFFFFFFFFEFAF5F00478FC7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F
+97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFFFFFFEFBF87371777BF
+F7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFC787004FA7E7FFFFFFFFF7BF77173777B7E7F7FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F474F8F8F5F479FDFFFFFFFFFFFFFFFFFE7A7
+4F0077BFFFFFFFFFFFE7B76F2F479FDFFFFFFFFFFFFFFFDF9F3F2F77BFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFEFAF5F17579FD7EFFFFFFFF7DFA7571747
+9FDFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00478FC7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F374FA7E7FFFFFFFFFFFFFFF7
+BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7
+FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F
+374FA7E7FFFFFFE7A74F0077BFFFFFFFFFFFE7B76F2F479FDFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFF7BF77173777
+B7E7F7FFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F
+2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7E7B77737378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFAF5F273F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFDFA7571F57A7DFFFFFFFFFFFFFEFAF5F00478FC7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F474F8F8F5F479FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFAF670087C7FFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77479FCFBF7767AFEFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F275FA7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFF000000000000000000
+000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F47
+271700001727476FA7D7F7FFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFF
+EFC78F5F371F000000000000004FA7E7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFFFFFFFFFFFFFFDFB76F471F0000000000
+4FA7E7FFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFF7D7A76F47271700001727
+476FA7D7F7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFC787004F
+A7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7D7A76F47271700000000000087C7FFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00005FAFEFFFFFFFFFFF
+FFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFF7CF97572717000000
+000087C7FFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFEFC78F5F371F000000
+1F375F8FC7EFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF97572717000000000087C7FFFFFFFFFFFF
+EFC78F5F371F000000000000004FA7E7FFFFFFFFC787000000000000001727476FA7D7F7FFFFFF
+FFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F000017275F9F
+D7B7870087C7FFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFC7870000000000
+00001727476FA7D7F7FFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFE7A74F00
+00000000000000000000000087C7FFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFF
+FFFFF7D7A76F47271700000000000087C7FFFFFFFFFFFFEFC78F5F371F000000000000004FA7E7
+FFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787000000000000172747679FCFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757A7DFFFFFFFFFFF
+EFC78F5F371F000000000000004FA7E7FFFFFFFFFFFFFFFFEFAF5F00005FAFEFFFFFFFFFFFFFFF
+FFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFF7D7A76F4727170000000000000087
+C7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F574F4F77BF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000
+00000000000000000087C7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFF000000000000
+000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F005FAFEF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F005FAFEFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFF
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B777
+37378FCFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B7773737
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFF
+FFFFFF000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000
+000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F00001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7
+F7FFFFFFFFFF000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000
+000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7
+DFFFFFFFFFFFFFFFE7A74F0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F57271700001727
+5797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7
+87373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFCF
+973F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+4F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F000087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000000000000000000000000000000000000000000000000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37
+479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F6FB7
+E7FFFFFFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F174F97D7EFFF
+FFFFEFD7974F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFF7BF6F174F97D7EFFFFFFFEFD7974F
+378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B7770000
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000
+000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFF
+FFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFEFC78F5F371F00000000000087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFDFB7
+673F3F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000
+000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077
+A7BF8F5727170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF
+8F2F3F9FDFFFFFFFFFFFEFC7873F170057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFC78700000000000000000000000000000087C7FFFFFFFFE7A74F0087C7FFFFFFFF
+DFB7673F3F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7BF
+8F5727170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76700
+6FBFF7FFFFFFFFFFDFA75F1F001787CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7CF975F371F0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFF
+FFFFDFA75F1F001787CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000
+000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF
+671F77BFF7FFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFCF8F372F67AFDFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+F7D79F57275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7F7D79F57275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFCF8F2F4FA7E7FFFFEFBF77474777BFAF770067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFCF8F2F4F
+A7E7FFFFEFBF77474777BFAF770067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000
+000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000
+00000000000000004FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFCF87174F
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F003F47471767AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFFFC787000000000000
+0000004FA7E7FFFFFFFFEFB7670077AFBF77474787C7EFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F003F47471767AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFFFE7A74F00000000000000
+000087C7FFFFFFFFCF8F2F4F97B79F5F375FA7DFFFFFFFC7870067B7EFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD79F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFCF8F2F4F97B79F5F375FA7DFFFFFFFC7870067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000
+000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FF
+FFFFC787004FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087BFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087BFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5700173F87C7EFFFFFFFFFFFE7A74F2F8FCFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7BFA78F5F3F1F3F8FCFF7FFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFE7AF5700173F87C7EFFFFFFFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFF
+FFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC7
+87004FA7E7FFFFFFF7BF77173777B7E7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFF7C787373787C7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFFFFEFD7974F17
+67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F
+77BFEFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFF7C787373787C7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767376FB7E7FFFFFFFFE7B76F2F378FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F
+374FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F
+006FBFF7FFFFFFFFFFFFFFFFFFFFFFEFB767376FB7E7FFFFFFFFE7B76F2F378FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000
+000000000000000000000000000000000000000000000000000000FFFFFFFFEFB7671777BFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFC787004FA7E7FF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFF7D7A76F47271700000000000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFDFA757173787C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF674727170000001727476F
+A7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F0000
+001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFF
+FFFFFFF7CF97572717000000000087C7FFFFFFFFE7A74F0087C7FFFFFFFFFFDFA757173787C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF674727170000001727476FA7D7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001727
+578FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000
+00001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001727578FC7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000000000000
+00004FA7E7FFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000000000000000000000000000000000000000000000000000000000000000000000
+000000479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F
+5F87C7F7FFFFFFFFFFFFE7A74F0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000001F47
+679FCFF7FFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB76F1757AFE7FFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFFFE7A74F4F97B7A76F
+471F00001F476FB7DFFFFFFFFFFFFF000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFF7DFA7573F87CFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFE7A7
+4F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFDF9F4F57A7DFF7FFFFFF000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000000087C7
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFE7A74F0000000000000000000000
+00000087C7FFFFFFFF000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000FFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFE7A74F3F9FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFCF8F2F0067B7
+F7FFFFF7E7B7773F170087C7FFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFCF
+8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FFFF
+FFE7B76F471F000017275787B79F770087C7FFFFFFFFEFC78F5F371F000000001F375F8FC7EFFF
+FFFFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFE7A74F00000000000000000000
+00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFF
+FFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5F8FC7EFFFFFFFEFBF
+772F1777BFF7FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F4F97B79F67371F00001F476FB7DFFFFFFFFFFFFFC7870000000000000017275797CFF7FF
+FFFFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFFFFEFC78F5727170000172747
+6FB7DFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFE7A74F0000000000000000
+0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+D7973F3F9FDFFFFFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFDF9F4F57A7DFF7
+FFFFFFFFEFC78F47479FDFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFDFB76F47
+2717000000000000000087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F000000000000000000000000000087C7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFF
+DF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D79F571F579FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFFFFFFFFFFFE7B76F2F
+479FDFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F275FA7DFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000
+001F375F8FC7EFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000
+000087C7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787
+578FCFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFF7E7C7A787572717004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F
+476FB7DFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C77737
+57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFCF8F4F5F97BFC79F4F
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F174F97
+D7EFFFFFFFEFD7974F378FCFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F4F97AF
+9757271700001F478FC7F7FFFFFFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFF
+FFEFC78F57271700001727476FB7DFFFFFFFFFFFFFE7A74F000000000000001F476FB7DFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFF
+FFFFFFFFFFFFFFC78700000000000000000000001767B7EFFFFFFFFFFFF7D7A76F471F0000001F
+375F97CFF7FFFFFFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B767006FBFF7FFFFFFFFFFDFA75F1F001787CFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+E7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F00
+87C7FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+67006FBFF7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA76F87C7F7FFFFFFFFFFF7BF773F87BF
+EFFFFFFFFFF7E7AF671F77BFF7FFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFCF8F2F4FA7E7FFFFEFBF77474777BFAF770067B7EFFFFFFFFFFFFFFFFFFFFFFFDF9F
+3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFF7CF975F371F
+00000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78767A7DFFFFFFFFFFFFFFFFF
+C78700000000000000000000000000004FA7E7FFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFCF8F2F4F97B79F5F375FA7DFFFFFFFC7870067B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA75F5FA7DFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5700173F87C7EFFFFFFFFFFFE7A74F2F8FCFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767
+005FAFE7FFFFF7DFA75717000087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFF
+FFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFDFA76F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77
+BFEFFFFFEFCF8F4F1F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767376FB7E7FFFFFFFFE7B76F2F
+378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+4F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFF7CF974F1F00001727578FBFA7770087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000
+000000000087C7FFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFFFFE7A74F000000
+0000000000000000000087C7FFFFFFE7A74F0000000000000000000000000087C7FFFFFFF7CF87
+3700000000000000000000000087C7FFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFF
+FFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000
+0000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700
+001727578FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8717004FA7E7FFC78700004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF57000087C7FFE7A74F000087C7FFFFFF
+FFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFCF87
+170077C7FFFFFFFFFFFFFFFFEFD7B79767471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFD7B79767471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF973F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFE7AF5700
+4FA7DFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787
+C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+6FBFF7FFE7A74F0087C7FFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787003F9F
+DFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000000000
+4FA7E7FFFFFFFFFFEFC78F5727170000001F375F97CFF7FFFFFFFFC7870077A7AF5F1F003787BF
+BF873F17173F97D7FFE7A74F4F97A7873F171757A7C7AF5F1F001F6FB7EFFFFFFFFFEFC78F5727
+1700001727476FB7DFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFE7A74F0000
+0000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FF
+FFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F47271700000000004FA7E7FFFFFFFFFFFFEFC78F
+5727170000001F375F97CFF7FFFFFFFFE7A74F2F77A7A76F3F1700001F478FC7F7FFFFFFFFFFFF
+F7D7A76F471F0000001727476FB7DFFFFFFFFFFFFFC7870077AFC78F57271700001F478FC7F7FF
+FFE7A74F00000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFF7D7
+A76F471F0000001727476FB7DFFFFFFFFFC78700000000000000000000000000000087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F471787C7FFFFFFFFFFFFFFFFCF8F2F2F
+8FCFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFE7A74F000000000000000000000000
+00004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F47271700
+000000000087C7FFFFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFFFFFF7D7A76F
+471F0000001F375F97CFF7FFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76717478FC7EF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F1767B7EFFFFFC7870000378F
+CFDFA74F001767AFE7C787004FA7E7E7A74F001767AFE7C7870000378FCFDFA74F0087C7FFFFDF
+9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76717478FC7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F372F6FB7E7FFFFFFFFEFD7974F1767B7EFFFFFE7A74F00173F87C7EFFFFFF7C7772F3F9F
+DFFFFFFFEFB767174F97D7EFFFFFFFFFE7B76F2F3797D7FFFFFFFFC78700174787BFE7F7FFFFFF
+CF872F4FA7E7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7
+FFFFEFB767174F97D7EFFFFFFFFFE7B76F2F3797D7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F1777BFF7FFFFFFFF
+FFCF8F2F4FA7E7FFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+0067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFF
+F7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067
+B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7AF57
+0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFF
+C787004FA7DFFFE7A74F0077C7FFFFC787004FA7E7E7A74F0077C7FFFFC787004FA7DFFFE7A74F
+0087C7FFE7A74F000000000000000000000000000087C7FFFFFFFFC787004FA7E7FFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF570077C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFF
+FFE7A74F0087C7FFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00000000000000000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+C787004FA7E7FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771F
+77BFF7FFFFFFC7871F77BFF7FFFFFFFFC78700000000000000000000000000004FA7E7FFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFC78700000000000000000000000000
+004FA7E7FFFFC78700000000000000000000000000004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7
+670087C7FFFFC787004FA7E7FFE7A74F0087C7FFFFC787004FA7E7E7A74F0087C7FFFFC787004F
+A7E7FFE7A74F0087C7FFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087
+C7FFFFFFFFFFFFE7A74F0087C7FFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFC787004FA7E7FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F67B7EFF7BF77378FCFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFC787006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDF9F4717579FCFEFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFF
+FFFFEFBF87371777BFF7FFFFC787004FA7E7FFE7A74F0087C7FFFFC787004FA7E7E7A74F0087C7
+FFFFC787004FA7E7FFE7A74F0087C7FFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F
+4717579FCFEFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFFFFFFEFBF87371777BFF7FF
+FFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFEFAF5F17579FD7EFFFFFFFF7DFA7571747
+9FDFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F004F9FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFEFAF5F17579FD7EFFFFFFFF7DFA75717479FDF
+FFFFFFFFFFFFFFDF9F3F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F474F8F8F5F479FDFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFEFAF5F
+00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F0000000000004FA7E7FFFFFFFFF7D7
+A76F47271700001727476FA7D7F7FFFFFFFFC787004FA7E7FFE7A74F0087C7FFFFC787004FA7E7
+E7A74F0087C7FFFFC787004FA7E7FFE7A74F0087C7FFFFFFF7D7A76F4727170000000000000087
+C7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFDFB76F471F0000
+0000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFF
+C787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFC78F5F371F0000000000004FA7E7FFFFFFFFFFF7D7A76F47271700001727476F
+A7D7F7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFEFC78F5F371F000000
+1F375F8FC7EFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+B76F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFEFC78F5F371F0000001F37
+5F8FC7EFFFFFFFFFFFFFFFFFFFFFF7CF97572717000000000087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00005FAFEFFFFFFFFFFFFFFFFFFFFFEFC78F
+5F371F000000000000004FA7E7FFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFF
+FFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFEFC78F5F371F00000000000000
+4FA7E7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F005FAFEFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B77737378FCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00001F476FB7DF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/doc/src/cpsa4manual/kerb_skel3_operation_circled.pdf b/doc/src/cpsa4manual/kerb_skel3_operation_circled.pdf
new file mode 100644
Binary files /dev/null and b/doc/src/cpsa4manual/kerb_skel3_operation_circled.pdf differ
diff --git a/doc/src/cpsa4manual/kerb_skel4.eps b/doc/src/cpsa4manual/kerb_skel4.eps
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/kerb_skel4.eps
@@ -0,0 +1,26029 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (/srv/www/vhosts/releases/18/save/queued/f/a/5/fa5f73cd3ae02f813b1d671766709dad/intermediate1/o_4094d0421cf21bd9.eps)
+%%CreationDate: (2015-07-14T21:06:16+02:00)
+%%BoundingBox: -0 -0 386 488
+%%HiResBoundingBox: 0 0 386.29 488
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image.  The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+  %
+  % Get a DirectClass packet.
+  %
+  % Parameters:
+  %   red.
+  %   green.
+  %   blue.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+  %
+  % Display a DirectClass image.
+  %
+  systemdict /colorimage known
+  {
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { DirectClassPacket } false 3 colorimage
+  }
+  {
+    %
+    % No colorimage operator;  convert to grayscale.
+    %
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { GrayDirectClassPacket } image
+  } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+  %
+  % Get a DirectClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   red
+  %   green
+  %   blue
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+  %
+  % Display a PseudoClass image.
+  %
+  % Parameters:
+  %   class: 0-PseudoClass or 1-Grayscale.
+  %
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  class 0 gt
+  {
+    currentfile buffer readline pop
+    token pop /depth exch def pop
+    /grays columns 8 add depth sub depth mul 8 idiv string def
+    columns rows depth
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { currentfile grays readhexstring pop } image
+  }
+  {
+    %
+    % Parameters:
+    %   colors: number of colors in the colormap.
+    %   colormap: red, green, blue color packets.
+    %
+    currentfile buffer readline pop
+    token pop /colors exch def pop
+    /colors colors 3 mul def
+    /colormap colors string def
+    currentfile colormap readhexstring pop pop
+    systemdict /colorimage known
+    {
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { PseudoClassPacket } false 3 colorimage
+    }
+    {
+      %
+      % No colorimage operator;  convert to grayscale.
+      %
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { GrayPseudoClassPacket } image
+    } ifelse
+  } ifelse
+} bind def
+
+/DisplayImage
+{
+  %
+  % Display a DirectClass or PseudoClass image.
+  %
+  % Parameters:
+  %   x & y translation.
+  %   x & y scale.
+  %   label pointsize.
+  %   image label.
+  %   image columns & rows.
+  %   class: 0-DirectClass or 1-PseudoClass.
+  %   compression: 0-none or 1-RunlengthEncoded.
+  %   hex color packets.
+  %
+  gsave
+  /buffer 512 string def
+  /byte 1 string def
+  /color_packet 3 string def
+  /pixels 768 string def
+
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  x y translate
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  currentfile buffer readline pop
+  token pop /pointsize exch def pop
+  /Times-Roman findfont pointsize scalefont setfont
+  x y scale
+  currentfile buffer readline pop
+  token pop /columns exch def
+  token pop /rows exch def pop
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  currentfile buffer readline pop
+  token pop /compression exch def pop
+  class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+  grestore
+} bind def
+%%EndProlog
+%%Page:  1 1
+%%PageBoundingBox: 0 0 386 488
+userdict begin
+DisplayImage
+0 0
+386.29 487.551
+12
+515 650
+0
+0
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000
+000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F3772FEFA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000001727
+476797C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7F26F47EE0000EE1F47F0B7DFFCFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76700005FAFE7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFAC787EE1700EFA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7B767000077BFFFFFFFFFF7E7B7773700003787C7F7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7F397AFF5EFFFFFFFFFF8B777EE004FF2E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFF7BF6F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7F18FA7F14F00EF
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000
+87C7FFFFFFFFFFFFFFF7BF7717000057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F77A7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFF1
+3F2FF1CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFF
+FFFFFFEFC787370087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7F4978FF3F7E7F24F00EFA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFE7A74F0000
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA757174FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B7F067B7F8FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFDFAF5F3700000000000000000087C7
+FFFFFFFFEFC78F57271700001727578FC7EFFFFFFFFFEFCFAF87572787C7EFCF97572717001F4F
+97CFF7F7D7A76F471F0017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCCF9FF1
+C7F7FFFFE7F24F00EFA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFCF8F2F000057AFE7FFFFFFF7D7A76F4727170000
+001727476FB7DFFFFFFFFFEFCFAF875727779FAF6F3F1700278FCFFFFFFFFFEFC78F5727170000
+1727578FC7EFFFFFFFF7E7BF9767475FA7DFDFAF6F471F0017275FAFDFFFFFEFC78F4717000000
+00000000004FA7E7FFFFEFB7671F1F67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFAE7BFF05777F3EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87000087C7FFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFF7CF876797CFEFFFFFFFFFEFC78F
+3F00479FDFEFB76717170000004F8FC7E7F7FFFFEFB76F1700476FA7C7E7FFFFFFEFB76700006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFF187BFFAFFFFFFFFE7F24F00EFA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000077BFF7FFFFFF
+FFEFBF873700001767B7EFFFFFFFF7B76F174797D7FFFFFFFFE7AF5F001787CFFFE7A757171700
+00004F9FDFFFFFFFFFFFFFFFFFF7CF876797CFEFFFFFFFFFEFC78F3F00479FDFCF973717000000
+375F9FCFEFFFFFFFDF9F47001787CFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787EE0000EE0000EE1F5FF2E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F
+000087C7FFFFFFFFFFEFB7670000000000000000000000000000004FA7E7FFFFE7A74F000087C7
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF59F97F3F7FFFFFFFFFFFFE7F24F00EFA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000475F6747271700001727476FA7D7F7FFFFFFFFFFFF
+FFFFFFFFFFEFDFB79767471F00000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFEFB767
+0000000000000000000000000000004FA7E7FFFFC78700004FA7E7FFFFFFFFFFFFC787000087C7
+FFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFF5AF77EE0000EE8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFF
+FFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7F00000EE0000EE0000EE0000EE
+0000EE0000EE0087F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D79F5F273F6F9FBFD7EFBF870000
+87C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFFFC78700004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF48F2FEE87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FF
+FFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFEFB76700479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC78700004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7F24F00EFA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787170067B7F7FFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFF
+FFFFFFFFFFFFEFB76700479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700004FA7E7FFFFFF
+FFFFFFC787000087C7FFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A74FEE9FDFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767000067B7EFFFFFFFFFFFFFFFC777000077C7FFDF
+AFAFCFFFF7BF6F17174787BFE7FFFFFFFFFFFFDF9F97BFF7FFFFDF9F4F000077BFFFFFFFFFFFFF
+D7973F003F97D7FFFFFFFFFFFFBF7700004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7F24F00EFA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB76700005FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F00004F9FDF
+FFFFF7E7C78747000077C7FFFFFFFFDF9F4F000087C7FFFFFFFFFFFFFFFFFFF7BF6F17174787BF
+E7FFFFFFFFFFFFDF9F97BFF7FFFFBF7700004F9FDFFFFFFFFFFFF7B767000067B7F7FFFFFFFFDF
+A74F004FA7DFF7C7AFBFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFBE7B7F04F87F4F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+000000000000000000004FA7E7FFFFFFE7AF5F2717173F87C7F7FFFFFFFFFFDFAF6F4727170000
+001F375F87BFDFFFE7A74F000000000000000087C7E7A74F000000000000000087C7C787000000
+00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7F24F00EFA7E7FF
+FFFFFFFFFFEFB7671F0027579FCFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F00001F4F8FC7EFCF973F171F4787AD9C4F
+0000000000373F3F87C7FFFFFFFFFFFFFFFFFFDFAF6F4727170000001F375F87BFDFFFC7870000
+0000000000004FA7E7C78700000000000000004FA7E7FFF7CF8F471F001F5FAFDFFFFFFFFFEFB7
+671F1F67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BFF02717EE0000EE1F37EF6FA7F5EFFFFF
+FFFFFFFFFFFFFFFFD79737003797D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B7A7B7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5151F20000EE0000EE0000EE
+0000EE0000EE0000EE0000EEADADF9EFD7B7AFB7D7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3A3F80000EE0000EE0000EE
+0000EE0000EE0000EE0000EE5B5BF3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCFAF874F1F87C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFCFAF874F1F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFCF975F371F00001F44647D7F5C3F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7C79F6F475FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C777
+2F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB76F1F1F00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F271F00000087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F473F97D7FFFFFF
+DF8235030300000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F1F1700004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873717004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F0077C7FFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C78F8FA7974F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87000087C7FFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF978FC7F7E7A74F004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F000087C7FFFFFFFFC7870000000000000087C7FFFFFFFFF7D7A76F471F0000001F476FA7D7
+F7FFFFFFEFCFAF875727779FAF6F3F1700278FCFE7A74F000087B7CF975727170017275797CFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000000000000087C7FFFFC787
+000087C7FFFFFFFFF7D7A76F4727170000001727476FB7DFFFFFE7A74F0000000000004FA7E7FF
+C787000000000000004FA7E7FFFFFFC787000000000087C7FFFFFFFFF7D7A76F471F0000001F47
+6FA7D7F7FFFFFFFFFFFFFFDFAF6F472717001F5FAFC7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFCF9F8FC7F7FFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFEFC78F6777B7DF
+FFFFFFFFFFFFFFFFE7AF6777B7E7F7FFFFFFF7E7A75F001777BFDFA75717170000004F9FDFFFFF
+FFFFFFFFFFE7A74F0000579FD7EFFFFFFFEFCF8F47001767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFC787000087C7FFFFFFF7B76F174797D7FF
+FFFFFFE7AF5F001787CFFFFFFFFFF7BF77172F8FCFFFFFFFFFFFFFFFCF8F2F2F8FCFFFFFFFFFFF
+FFF7C7A7AFDFFFFFFFFFFFE7AF6777B7E7F7FFFFFFF7E7A75F001777BFF7FFFFF7BF6F173787BF
+EFFFFFFFEFC79F5F3F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF9787BFF7FFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F000067979F574F97D7F7FFFFFFFFFFFFFFFFFFFFCF8F2F0000000000
+0000000000000000000087C7FFFFE7A74F000087C7FFFFFFFFFFFFFFFFE7A74F000087C7FFFFFF
+FFFFFFFFFFC787170067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FF
+FFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFEFDFB79767471F00000087C7FFFFFFFFFF
+FFC787171787C7FFFFFFFFFFF7BF771F171777BFF7FFFFFFF7BF9FA7E7FFFFFFFFFFCF8F2F0000
+0000000000000000000000000087C7FFDF9F47006FBFF7FFFFFFFFFFFFFFCF8F2F004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F97BFF7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000778F
+8F37003787C7F7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFE7A74F004FA7E7FFC787
+0000000000000000000087C7FFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFC787000087C7FFFF
+FFFFF7D79F5F273F6F9FBFD7EFBF87000087C7FFFFFFFFFFFFFFCF8F2F1777BFF7FFFFEFAF97AF
+C79F3F0067B7EFFFF7BF97A7DFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFB767000087C7FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+00000000000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFDFA757171757AFE7FFFFFFFFFFFF
+FFCF8F2F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFFFF7BF6F002F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787000087C7FFFFFFFFFFFFFFFFC787000087C7FFFFFFC787170067B7F7FFFFFFFFFFC787
+000087C7FFFFFFFFFFFFFFFFCF8F2F1777BFF7DFAF9FC7F7FFDF9F47005FAFE7C79FA7DFFFFFFF
+FFFFFFFFCF8F2F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC77700005FAFEFFFFFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F4F000077C7FFFFFFF7C7873F1F57A7DFFFFFFFFFFFFFDF9F47003767A7D7EFFFFFFFFF
+FFF7BF8F9FDFFFFFDF9F4F000087C7FFFFFFFFFFFFFFFFE7AF5F17004F97CFEFFFFFFFEFC78737
+1757AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76700005FAFE7FFFFFFFFFFFF
+F7B76700005FAFEFFFF7BF6F00004F9FDFFFFFF7E7C78747000077C7FFFFFFFFFFFFFFFFFFCF8F
+2F0067779FAFDFFFFFFFFFEFAF5F00474F679FDFFFFFFFFFFFFFFFFFFFDF9F47003767A7D7EFFF
+FFFFFFFFF7BF8F9FDFFFF7C7872F003767AFDFF7FFFFEFC79F5F3F0000171F5FAFE7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000087C7FFC787
+000000001717170087C7FFFFFFEFCF975F371F000000172747679FCFF7E7A74F0000000000373F
+3F87C7FFFFFFFFFFFFFFFFDFB78757271700001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787000000000000000000000087C7C78700000000000000004FA7DFCF974F1F
+00001F4F8FC7EFCF973F171F4787BFEFFFFFFFFFFFFFFFCF8F2F005FAFEFFFFFFFFFFFFFEFAF5F
+003F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFCF975F371F000000172747679FCFF7FFFFFFFFFFDFB7
+6F471F00001F478FC7D7A75F476F9FC7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7673767B7EFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7673767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCFAF874F
+1F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F00000087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF6F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC787370087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+E7BF975F3F87C7FFFFFFEFCFAF87572787C7EFCF97572717001F478FC7F7FFFFFFFFFFF7E7BF97
+5F3F87C7FFDFAF5F3700000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFC7870000000000000087C7FFFFFF
+FFF7D7A76F471F0000001F476FA7D7F7FFC787000000000000000087C7FFFFFFFFE7A74F000000
+004FA7E7FFFFDFAF5F2717173F87C7D7A787A7E7FFFFFFFFFFF7D7A76F471F0000001F476FA7D7
+F7FFFFFFEFCFAF875727779FAF6F3F1700235D40000000000000004FA7E7FFFFFFE7A74F000000
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78F1F1F00000087C7FFEFB76717170000
+004F87BFDFF7FFFFF7BF6F170057AFE7FFFFFFC78F1F1F00000087C7FFFFFFFFE7A74F000087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F000087C7FFFFEFC78F6777B7DFFFFFFFFFFFFFFFFFE7AF6777B7E7F7FFFFFFF7E7A75F0017
+77BFF7FFFFE7AF67172777C7F7FFFFFFFFFFFFFFCF8F87B7EFFFFFFFEFB7673F97D7FFFFFFFFEF
+BF7767A7E7FFFFFFE7AF6777B7E7F7FFFFFFF7E7A75F001777BFDFA75717170000004F9FDFFFFF
+FFFFFFFFFFFFEFB7670067B7F7FFFFFFFFFFFFFFFFC7BFC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7
+E7FFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000067979F574F97D7F7FFFFFF
+FFFFFFFFFFFFFFCF8F2F00000000000000000000000000000087C7FFFFFFFFDF9F47004FA7E7FF
+FFFFFFF7BF878FCFFFFFFFFFFFE7AF57174787B7D7EFFFFFFFFFFFFFFFFFFFCF8F2F0000000000
+0000000000000000000087C7FFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFF7BF771F77BFF7FF
+FFFFFFFFF7CFC7CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087
+C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787000087C7FFFF
+FFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0000778F8F37003787C7F7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767172F8FCFFFFFEFAF879FDFFFFFFFFFFFFFFFF7
+CF974F1F0000001727578FC7EFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFC78717479FDFFFFFFFEFBFBFCFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7
+FFDFA757171757AFE7FFFFFFFFFFFFFFCF8F2F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F37005FAFC79F87AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A7874F1F003797D7
+FFCF8F2F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F2F8FCFFFCFA7AFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7B76700005FAFEFFFFFFFDF9F4F000077BFFFFFFFFFFFFFD7973F003F97D7FFFFFFFFFF
+F7B76700005FAFEFFFFFFFFFC777000077C7FFDFAFAFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F000077C7FFFFFFF7C7873F1F57A7DFFFFFFFFF
+FFFFDF9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDFFFFFFFFFFFFFFFFFEFAF5F00001777BFF7FF
+FFFFFFFFFFFFFFE7A7676FB7E7F7FFFFFFFFD7973F2F8FCFFFFFDF9F47003767A7D7EFFFFFFFFF
+FFF7BF8F9FDFFFFFDF9F4F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F17575F77A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000000476D4800
+0000000000000087C7E7A74F000000000000000087C7C78700000000000000004FA7E7FFE7AF5F
+2717173F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F000000000000000087C7FFC787000000001717170087C7FFFFFFEFCF975F371F0000001727
+47679FCFF7FFFFFFFFFFFFFFFFFFFFFFCF8F3777BFF7FFFFFFFFFFFFFFFFFFE7A78FAFDFCF974F
+1F0017275797CFF7FFFFFFFFFFEFCF975F371F000000172747679FCFF7E7A74F0000000000373F
+3F87C7FFFFFFFFFFFFFFFFFFFFFFFFDF9F47004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7BF878FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F87A7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F47170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFEFC0C0C0C0C0C0C0C0C0808080808080808080606060404040404040404040
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000404040404040404040606060
+808080808080808080C0C0C0C0C0C0C0C0C0DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDFC0C0C0B0B0B0808080707070404040404040101010000000000000000000000000000000
+0000001F1F1F3F3F3F3F3F3F3F3F3F7F7F7F7F7F7F7F7F7F9F9F9FBFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBFBFBFBFBFBFBFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFBFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBFBFBFBFBFBFBFAFAFAF7F7F7F7F7F7F7F7F7F4F4F4F3F3F3F3F3F3F1F1F1F000000000000
+000000000000000000000000000000404040404040707070808080A0A0A0C0C0C0DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CFCFCFC0C0C0A0A0A08080806060604040402020200000000000000000000000003F3F3F3F3F3F
+7F7F7F7F7F7F8F8F8FBFBFBFBFBFBFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFBFBFBFBFBFBF9F9F9F
+7F7F7F7F7F7F3F3F3F3F3F3F0F0F0F000000000000000000202020404040505050808080909090
+C0C0C0CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFEFEFC0C0C09090907070704040401010100000000000000000000F0F0F3F3F3F4F4F4F
+7F7F7F8F8F8FBFBFBFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCFCFCFBFBFBF8F8F8F7F7F7F4F4F4F3F3F3F1F1F1F000000000000000000000000404040
+606060909090C0C0C0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFEFEFC0C0C09090907070704040401010100000000000001F1F1F3F3F3F
+7F7F7F9F9F9FBFBFBFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDFBFBFBF9F9F9F7F7F7F4F4F4F1F1F1F000000000000101010
+404040707070909090C0C0C0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C0A0A0A0707070404040101010000000000000
+1F1F1F3F3F3F7F7F7F9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9F7F7F7F3F3F3F1F1F1F000000000000
+101010404040707070909090C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFA0A0A0606060303030
+0000000000000F0F0F3F3F3F6F6F6F9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9F7F7F7F3F3F3F1F1F1F000000
+000000303030707070A0A0A0CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF
+B0B0B08080804040401010100000000F0F0F4F4F4F7F7F7FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBF7F7F7F3F3F3F0F0F0F000000
+000000404040808080B0B0B0DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC0C0C09090906060602020200000000000003F3F3F6F6F6F9F9F9FDFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFAFAFAF6F6F6F3F3F3F000000000000
+202020505050808080C0C0C0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0B0B07070704040400000000000001F1F1F
+4F4F4F8F8F8FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF8F8F8F5F5F5F2F2F2F000000000000
+303030707070B0B0B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C0808080
+4040400000000000003F3F3F7F7F7FAFAFAFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF7F7F7F3F3F3F000000000000404040
+808080C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCFCFCF9090905050501010100000002F2F2F6F6F6FAFAFAFEFEFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFAFAFAF6F6F6F2F2F2F000000101010505050909090
+CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFA0A0A06060602020200000001F1F1F5F5F5F
+9F9F9FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFEFEF9F9F9F5F5F5F1F1F1F000000101010505050A0A0A0DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0B0B0707070
+3030300000000F0F0F4F4F4F8F8F8FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF9F9F9F5F5F5F0F0F0F000000202020606060B0B0B0FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFEFA0A0A05050501010100000003F3F3F7F7F7FCFCFCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCFCFCF8F8F8F4F4F4F000000000000505050A0A0A0EFEFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF9090905050500000000F0F0F5F5F5F
+9F9F9FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFEF9F9F9F5F5F5F0F0F0F000000404040909090DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+9090903030300000000F0F0F5F5F5FAFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF
+5F5F5F1F1F1F000000303030808080CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFA0A0A0707070505050808080
+C0C0C0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCFCFCF7070702020200000001F1F1F6F6F6FCFCFCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF6F6F6F2F2F2F
+000000202020707070B0B0B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000303030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFEFFFC0C0FF8080FF5050FF7070FF9090FFC0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFEFEF505050000000000000000000000000000000000000101010AFAFAFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0B0B0606060202020000000
+2F2F2F8F8F8FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF8F8F8F2F2F2F000000101010
+606060B0B0B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFF1010FF0000FF0000FF0000FF
+0000FF0000FF0000FF4040FFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF101010000000000000000000
+000000000000000000000000000000000000505050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCFCFCF7070701010100000003F3F3F8F8F8FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF9F9F9F4F4F4F000000101010606060CFCFCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF0000000000005F5F5FFFFFFF
+FFFFFFFFFFFF6F6FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF1010FF
+9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFEF101010000000000000000000000000000000000000000000000000000000
+0000000000007F7F7FFFFFFFFFFFFFFFFFFFDFDFDF9090902020200000002F2F2F8F8F8FEFEFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFEFEF9F9F9F2F2F2F000000202020808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000DFDFDFFFFFFF8F8FFF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF1010FFDFDFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000
+000000000000000000000000000000000000000000000000000000000000000000B3B3B3A0A0A0
+4040400000001F1F1F6F6F6FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF7F7F7F1F1F1F000000303030909090EFEFEFFFFFFFFFFFFFFFFFFFBFBFBF
+0000000000006F6F6FDFDFFF1010FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF4040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCFCFCF000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000F0F0F5F5F5FBFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CFCFCF6F6F6F0F0F0F000000505050A0A0A0FFFFFFFFFFFF2F2F2F0000001010105959EF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+BFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000A0A0AFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF5F5F5F
+0000001010106060607777770000000000002F2FFF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6F000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF9F9F9F3F3F3F000000020202
+0000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF4F4F4F000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFBFBFBF6060600000000000000000000000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF3F3FFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F404040000000
+000000000000000000FFFFFF0F0FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000001F1F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF1F1F1F0000000000000000000000004F4F4FBFBFBFFFFFFF3F3FFF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFEF0F0F0F000000000000000000000000000000000000000000000000000000000000000000
+0000000000006F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+0000000F0F0F5F5F5FDFDFDFFFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFDFDFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000000000000000
+0000000000000000000000000000000000000000000000000000001F1F1FEFEFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7FEFEFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF2F2FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000000000000000
+000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFFF0F0FFF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF3F3FFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF7F7F7F0000000000000000000000000000000000000000000000001F1F1FBFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFF2F2FFF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF6F6FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF3F3F3F0F0F0F
+0000000000000000002F2F2F6F6F6FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF7F7FFF2F2FFF0000FF0000FF0000FF0000FF3F3FFFBFBFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3C3C3606060FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF7777B7A7A7C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDFC0C0C0C0C0C0C0C0C0808080808080808080606060404040
+404040404040000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000101010404040404040
+404040505050808080808080808080909090C0C0C0C0C0C0C0C0C0EFEFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDFC0C0C0B0B0B0808080707070404040404040101010000000000000000000
+0000000000000000001F1F1F3F3F3F3F3F3F3F3F3F7F7F7F7F7F7F7F7F7F9F9F9FBFBFBFBFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFBFBFBF8F8F8F7F7F7F7F7F7F7F7F7F4F4F4F3F3F3F3F3F3F3F3F3F
+0F0F0F000000000000000000000000000000101010404040404040808080808080A0A0A0C0C0C0
+CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCFCFCFC0C0C0909090808080606060404040202020000000000000000000000000
+3F3F3F3F3F3F7F7F7F7F7F7F9F9F9FBFBFBFBFBFBFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF
+BFBFBF8F8F8F7F7F7F6F6F6F3F3F3F3F3F3F000000000000000000000000000000303030404040
+707070808080C0C0C0CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFEFEFC0C0C09090907070704040401010100000000000000000000F0F0F
+3F3F3F4F4F4F7F7F7F8F8F8FBFBFBFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDFBFBFBFAFAFAF7F7F7F7F7F7F3F3F3F2F2F2F000000000000000000
+202020404040808080909090C0C0C0DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFC0C0C0909090707070404040101010000000000000
+1F1F1F3F3F3F7F7F7F9F9F9FBFBFBFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFBFBFBF8F8F8F6F6F6F3F3F3F1F1F1F000000
+000000000000303030505050808080B0B0B0DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C0A0A0A0707070404040101010
+0000000000001F1F1F3F3F3F7F7F7F9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFBFBFBF7F7F7F5F5F5F2F2F2F
+000000000000000000404040606060909090C0C0C0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFA0A0A0
+6060603030300000000000000F0F0F3F3F3F7F7F7F9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF8F8F8F6F6F6F3F3F3F
+000000000000000000202020606060909090C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFEFEFB0B0B08080804040401010100000000F0F0F4F4F4F7F7F7FBFBFBFEFEFEFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF9F9F9F7F7F7F3F3F3F
+0F0F0F000000000000303030606060909090CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C09090906060602020200000000000003F3F3F6F6F6F
+9F9F9FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFAFAFAF7F7F7F4F4F4F
+1F1F1F000000101010404040808080C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0B0B0707070404040000000
+0000001F1F1F4F4F4F8F8F8FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF9F9F9F5F5F5F1F1F1F
+000000000000303030707070B0B0B0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C0C0C08080804040400000000000003F3F3F7F7F7FAFAFAFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF9F9F9F5F5F5F1F1F1F000000
+000000303030707070B0B0B0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCFCFCF9090905050501010100000002F2F2F6F6F6FAFAFAFEFEFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF9F9F9F5F5F5F2F2F2F000000000000
+303030808080C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFA0A0A0606060202020000000
+1F1F1F5F5F5F9F9F9FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFAFAFAF6F6F6F2F2F2F000000000000404040
+909090CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+B0B0B07070703030300000000F0F0F4F4F4F8F8F8FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFAFAFAF6F6F6F1F1F1F000000202020606060B0B0B0
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFEFEFA0A0A05050501010100000003F3F3F7F7F7FCFCFCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCFCFCF7F7F7F2F2F2F000000000000505050909090DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF909090505050000000
+0F0F0F5F5F5F9F9F9FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF9F9F9F4F4F4F000000000000202020707070CFCFCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCFCFCF9090903030300000000F0F0F5F5F5FAFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFAFAFAF5F5F5F0F0F0F000000202020707070B0B0B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCFCFFFA0A0FF6262F12828D78080FFB0B0FFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF7070702020200000001F1F1F6F6F6FCFCFCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF
+6F6F6F2F2F2F000000101010606060B0B0B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFC0C0C0808080323232545454
+909090C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBF
+FF9090FF6060FF5050FF8080FFC0C0FFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF5050FF0000FF0000FF0000FF
+0000FF0000FF0000FF1010FFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF0000000000005F5F5F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0B0B0606060
+2020200000002F2F2F8F8F8FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF8F8F8F4F4F4F
+000000101010606060B0B0B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFBFBFBF101010000000000000000000000000000000000000404040DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFFF4040FF0000FF0000FF0000FF0000FF0000FF0000
+FF2020FFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFBFBFFF1010FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+5050FFFFFFFFFFFFFFFFFFFF5F5F5F000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCFCFCF7070701010100000003F3F3F8F8F8FDFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF9F9F9F4F4F4F000000101010
+606060B0B0B0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6F000000000000000000
+0000000000000000000000000000000000001010109F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000101010CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F
+FF1010FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF7070FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF1010FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF7F7FFFFFFFFFEFEFEF101010
+0000003F3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF9090902020200000002F2F2F
+8F8F8FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF8F8F8F2F2F2F000000202020707070CFCFCF
+FFFFFFFFFFFFFFFFFF8F8F8F000000000000000000000000000000000000000000000000000000
+000000000000101010DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+000000101010CFCFCFFFFFFFFFFFFFFFFFFFFFCFCFFF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FFBFBFFF8F8F8F0000000000009F9F9FFFFFFFFFFFFFFFFFFF
+EFEFEFA0A0A04040400000001F1F1F6F6F6FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF6F6F6F1F1F1F000000202020808080C3C3C3101010000000
+000000000000000000000000000000000000000000000000000000000000000000404040FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F000000000000101010CFCFCFFFFFFF
+FFFFFFFF2F2FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF1010FFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+3F3FFF1F1F1F0000001F1F1FFFFFFFFFFFFFB0B0B06060600000000F0F0F5F5F5FBFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFBFBFBF5F5F5F0F0F0F000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9F9F000000000000101010CFCFCFFF9F9FFF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF6F6FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9FFF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF1010FF000000000000676767707070
+1010100000004F4F4F9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+202020000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F
+000000000000101010FF6F6FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF6F6FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000200000000000002F2F2F9F9F9FEFEFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000404040FFFFFFFFFFFF
+FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFFFFFFFFFFFFFCFCFCF
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0EFEFEFFFFFFFFFFFFFDFDFDFC0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0DFDFDFFFFFFFFFFFFFEFEFEFC0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0CFCFCFFFFFFFFFFFFFEFEFEFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0CFCFCFFFFFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+FFFFFFFFFFFFFFFFFFCFCFCFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0EFEFEFFFFFFF
+FFFFFFDFDFDFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0DFDFDFFFFFFFFFFFFFEFEFEF
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFCFCFFFFFFFFFFFFFEFEFEFC0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFCFCFFFFFFFFFFFFF9F9F9F000000000000FF3F3FFF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF000040
+000000000000505050BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000F0F0FFFFFFFFFFFFFFFFFFF000000000000000000000000
+000000000000000000000000FFFFFFFFFFFFFFFFFF3F3F3F000000000000000000000000000000
+000000000000BFBFBFFFFFFFFFFFFF7F7F7F000000000000000000000000000000000000000000
+7F7F7FFFFFFFFFFFFFBFBFBF0000000000000000000000000000000000000000003F3F3FFFFFFF
+FFFFFFBFBFBF0000000000000000000000000000000000000000003F3F3FFFFFFFFFFFFFFFFFFF
+000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF3F3F3F000000
+000000000000000000000000000000000000BFBFBFFFFFFFFFFFFF7F7F7F000000000000000000
+0000000000000000000000007F7F7FFFFFFFFFFFFFBFBFBF000000000000000000000000000000
+0000000000003F3F3FFFFFFFFFFFFFBFBFBF000000000000000000000000000000000000000000
+3F3F3FFFFFFFFFFFFFEFEFEF000000000000FF3F3FFF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFFF000000000000000000000000303030
+A0A0A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0F000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+6F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF303030000000
+000000FF4F4FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF1F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF2F2FFFFFFFFFBFBFBF5F5F5F000000000000000000000000101010FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F3F3F000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000008F8F8FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFEFEF3030300000000000005F5F5FFF7F7FFF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF4F4FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF0F0FFF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF6F6FFFFFFFFFFFFFFFFFFFFF
+DFDFDF7F7F7F0F0F0F000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF8F8F8F000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF303030
+0000000000005F5F5FFFFFFFFFDFDFFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFAFAFFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF1F1FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF9F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F2F2F000000000000
+0000000000000000000000000000000000000000000000000000000000008F8F8FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F2F2F0000000000005F5F5FFFFFFFFFFFFFFFFFFF
+FF7F7FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFBFBFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF0F0F0F000000000000000000000000000000000000
+0000000000000000000000003F3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF0000000000005F5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F2FFF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0F0FFFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF1F1FFFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCFCFCF2F2F2F0000000000000000000000000000000000000000000000006F6F6FEFEFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000005F5F5FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF4F4FFF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF3F3FFFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCFCFFF3F3FFF0F0FFF0000FF0000FF0000FF2F2FFF6F6FFFEFEFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F2F2F2F
+0000000000000000000000003F3F3FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFAFAFFF3F3FFF0000FF0000FF0000FF0000FF2F2FFF7F7FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC3C3E36060A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBFDFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB9B9B
+B18181FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+BFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+BFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+BFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+BFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+BFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFC0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFCFCFFFFFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC0C0C0C0C0C0C0C0C0808080BFBFBFFFFFFFFFFFFFBFBFBF404040404040303030000000
+0000000000000000004F4F4FFFFFFFFFFFFFBFBFBF000000000000000000000000000000000000
+0000003F3F3FFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000
+FFFFFFFFFFFFFFFFFF3F3F3F000000000000000000000000000000404040404040CFCFCFFFFFFF
+FFFFFFBFBFBF808080A0A0A0C0C0C0C0C0C0CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C0
+C0C0C0909090DFDFDFFFFFFFFFFFFF9F9F9F1010100000000000000000000000000000001F1F1F
+9F9F9FFFFFFFFFFFFFDFDFDF7F7F7F7F7F7F7F7F7FAFAFAFBFBFBFBFBFBFBFBFBFCFCFCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFBFBFBF
+BFBFBFBFBFBFBFBFBF9F9F9F7F7F7F7F7F7FDFDFDFFFFFFFFFFFFF8F8F8F3F3F3F0F0F0F000000
+0000000000000000000000008F8F8FFFFFFFFFFFFFBFBFBF808080B0B0B0C0C0C0DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9F9F9F4040404040400000000000000000000000000F0F0FCFCFCFFFFFFFFFFFFF
+BFBFBF9F9F9FBFBFBFBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFBFBFBFBFBFBFDFDFDF
+FFFFFFFFFFFF9F9F9F3F3F3F0000000000000000000000001010104040409F9F9FFFFFFFFFFFFF
+EFEFEFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDFC0C0C0808080707070404040202020000000BFBFBFFFFFFFFFFFFF9F9F9F6F6F6F7F7F7F
+AFAFAFBFBFBFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCFCFCFBFBFBF8F8F8F7F7F7FBFBFBFFFFFFFFFFFFF9F9F9F000000000000303030404040
+808080A0A0A0C0C0C0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+BFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDFC0C0C0FFFFFFFFFFFFFFFFFF3F3F3F0000000000001F1F1F3F3F3F7F7F7F
+8F8F8FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCFCFCFBFBFBF7F7F7F6F6F6F3F3F3F0F0F0F0000006F6F6FFFFFFF
+FFFFFFDFDFDF909090C0C0C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFA0A0A0707070404040101010000000000000CFCFCF
+FFFFFFFFFFFFCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFFFFFFFFFFFFFCFCFCF1F1F1F000000000000
+202020505050808080B0B0B0DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFFFFFFFFFFFFFFFFFFF2F2F2F
+0000000F0F0F3F3F3F7F7F7F9F9F9FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBF8F8F8F5F5F5F3F3F3F0000005F5F5F
+FFFFFFFFFFFFDFDFDFB0B0B0DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFB0B0B0
+707070404040000000000000DFDFDFFFFFFFFFFFFFCFCFCFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFCFCFCF000000000000
+101010505050808080C0C0C0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF6F6F6F2020200000000000003F3F3F7F7F7FAFAFAFDFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF9F9F9F5F5F5F2F2F2F000000000000
+7F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C0808080404040CFCFCFFFFFFFFFFFFFAFAFAF
+8F8F8FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBFBFBFBFFFFFFFFFFFFF9F9F9F202020
+606060909090CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC0C0C0808080404040
+0000000000002F2F2F6F6F6FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF8F8F8F4F4F4F0F0F0F000000101010505050
+909090DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF5F5F5F0000002F2F2F6F6F6FAFAFAFEFEFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF9F9F9F4F4F4F0F0F0F8F8F8FFFFFFFFFFFFFEFEFEF
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFA0A0A0606060101010AFAFAFFFFFFFFFFFFFDFDFDF
+EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6F000000303030707070C0C0C0FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF808080303030
+0000000F0F0F4F4F4F8F8F8FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFBFBFBF7F7F7F2F2F2F000000000000505050909090DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF8F8F8F0000002F2F2F6F6F6FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFEFEF9F9F9F5F5F5F0F0F0FAFAFAFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF9090905050506F6F6FFFFFFFFFFFFFEFEFEF
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF4F4F4F101010606060B0B0B0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF909090
+3030300000000F0F0F5F5F5FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF9F9F9F
+4F4F4F000000000000505050A0A0A0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+BFBFBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFA0A0A0626262282828
+808080B0B0B0DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFFF
+B0B0FF8080FF4040FF8080FFA0A0FFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF2020200000001F1F1F6F6F6FCFCFCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFAFAFAF5F5F5F0F0F0F
+0F0F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF909090484848323232808080C0C0C0EFEFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFEF505050000000000000000000000000000000000000101010AFAFAFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF7070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F1F1F0000000F0F0FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF909090FFFFFFFFFFFFFFFFFF
+7F7F7FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFFFFFFFFFFFFFFFFFFF505050
+A0A0A0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+404040000000000000000000000000000000000000202020BFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF101010000000000000
+000000000000000000000000000000000000000000505050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000000000606060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF
+3030FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF3030FFCFCFFFFFFFFF
+FFFFFFAFAFAF0000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF7070702020200000002F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF5F5F5F0F0F0F000000505050A0A0A0EFEFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F101010000000000000000000000000000000
+000000000000000000000000707070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFEFEF101010000000000000000000000000000000000000000000000000
+0000000000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0F
+000000000000606060FFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF3030FFFFFFFFFFFFFF3F3F3F000000000000EFEFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF9090903030300000001F1F1F7F7F7FDFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFAFAFAF5F5F5F0F0F0F000000505050AFAFAFFFFFFFFFFFFFFFFFFF
+CFCFCF000000000000000000000000000000000000000000000000000000000000000000000000
+AFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000
+000000000000000000000000000000000000000000000000000000000000000000000000BFBFBF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF0F0F0F000000000000606060FFFFFF
+FFFFFF8F8FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF7F7FFFCFCFCF0000000000005F5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+5F5F5F1F1F1F6F6F6FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFAFAFAF5F5F5F8F8F8FFFFFFFFFFFFFEFEFEF2F2F2F000000000000000000000000
+000000000000000000000000000000000000000000000000101010DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000003F3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCFCFCF0F0F0F000000000000606060FFFFFF0F0FFF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF5F5F5F000000
+000000DFDFDFFFFFFFB0B0B0606060AFAFAFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF4F4F4F000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000006F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9F9F000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000101010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF
+0F0F0F0000000000005454600000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000400000003737377070702020200000004F4F4F
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF616161000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000003F3F3F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6F000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000D1D1D1FFFFFF
+FFFFFFDFDFDFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0DFDFDFFFFFFFFFFFFFEFEFEF
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFCFCFFFFFFFFFFFFFFFFFFFC0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFFFFFFFFFFFFFCFCFCFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0EFEFEFFFFFFFFFFFFFDFDFDFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+DFDFDFFFFFFFFFFFFFEFEFEFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFCFCFFFFFFF
+FFFFFFFFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFFFFFFFFFFFFF
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFFFFFFFFFFFFFCFCFCFC0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0EFEFEFFFFFFFCFCFCF0D0D0D0000000000000000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000700000000000001F1F1F8F8F8FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F3F3F000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000008F8F8FFFFFFFFFFFFF7F7F7F000000000000000000
+0000000000000000000000007F7F7FFFFFFFFFFFFFBFBFBF000000000000000000000000000000
+0000000000003F3F3FFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000FFFFFF
+FFFFFFFFFFFF3F3F3F000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFF
+7F7F7F0000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFFBFBFBF000000
+0000000000000000000000000000000000003F3F3FFFFFFFFFFFFFFFFFFF000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFF000000000000000000000000000000
+000000000000000000FFFFFFFFFFFFFFFFFF3F3F3F000000000000000000000000000000000000
+000000BFBFBFFFFFFFFFFFFF3F3F3F0000000000000000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF5757D7000000000000202020
+A0A0A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+3F3F3F000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F000000
+0000000B0B0F0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FFAFAFFF000000000000000000000000101010808080EFEFEFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000001F1F1FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000002F2F2FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F0000000000000F0F0FCFCFCF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFDFDFFF
+DFDFDF7F7F7F0F0F0F000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF7F7F7F000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000004F4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFEFEF0F0F0F000000000000000000000000000000000000000000000000000000000000
+0000000000000000006F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F
+0000000000000F0F0FCFCFCFFFFFFF3F3FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF2F2FFFFFFFFFFFFFFFFFFFFFEFEFEF9F9F9F1F1F1F
+0000000000000F0F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000000000
+0000000000000000000000000000000000000000000000000000000000001F1F1FEFEFEFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F0000000000000F0F0FCFCFCFFFFFFFFFFFFF
+DFDFFF0F0FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000000000000000000000000000
+0000000000000000000000000000000000000000003F3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000000000
+000000000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF0000000000000F0F0FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFF8F8FFF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF2F2F2F000000000000000000000000000000000000000000000000000000
+0000000F0F0FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF7F7F7F0000000000000000000000000000000000000000000000001F1F1FBFBFBF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0F0F0F0FCFCFCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFFF0F0FFF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0F0FFF8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF4F4F4F
+0000000000000000000000000000000000000000000000003F3F3FDFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF3F3F3F
+0F0F0F0000000000000000002F2F2F6F6F6FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFEFFF5F5FFF1F1FFF0000FF0000FF0000FF1F1FFF4F4FFFDFDFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF3F3F3F000000000000000000
+0000002F2F2F7F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFBFBFBFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF
+6060A0D1D1E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFB0B0B0808080202020626262A0A0A0CFCFCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+7F7F7F000000000000000000000000000000000000000000707070EFEFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF303030000000000000000000000000000000
+000000000000000000000000303030CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF4F4F4F000000000000000000000000000000000000000000000000000000000000000000
+303030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F000000000000000000000000
+0000000000000000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF0F0F0F000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000008F8F8FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+8F8F8F000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000AFAFAFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F3F3F
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+2F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF0F0F0F000000000000000000000000
+000000000000000000000000000000000000000000000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF8F8F8F000000000000000000000000000000000000000000000000000000
+0000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF
+0F0F0F0000000000000000000000000000000000000000000F0F0F8F8F8FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF5F5F5F1F1F1F000000000000
+0000001F1F1F4F4F4FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFAF6F471F00000000004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFAF6F47
+1F00000000004FA7E7FFFFE7A74F0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFC78F572717000000171717004FA7E7FFFFFFFFFFEFC78F57271700
+001727476FB7DFFFFFFFFFC78700000000000000000000000000000087C7FFFFFFFFFFF7CF975F
+371F0000000000004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFF7CF8F47275F9FD7F7FFFFFFFF
+FFEFC78F57271700001727476FB7DFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFE7A74F0000000000000000000000000000
+4FA7E7FFFFFFFFFFEFC78F5727170000001F375F97CFF7FFFFFFFFE7A74F4F97AF975727170000
+1F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFDFB7673F3F77BFEFFFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFFFFFC787
+0077AFC78F57271700001F478FC7F7FFFFFFC7870077A7BF8F5727170017275797CFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000000000000000000087
+C7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F47
+6FB7DFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFDF9F3F4FA7E7FFFFFFFFEFC78F57271700
+001727476FB7DFFFFFFFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F373787BF
+EFFFFFFFFFFFBF77004FA7E7FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7DFEFBF773F3F87C7EFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F4747
+9FDFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEF
+C78F47479FDFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFCF8F372F6FB7E7FFFF
+FFFFEFD7974F1767B7EFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7F7D79F57275FA7DFFFFFFFFFFFFFFFDF
+9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7
+E7FFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFDFA74F4FA7E7FFFFC7
+87176FBFF7FFFFC7870087C7FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFEFB767
+1F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F4FA7DFFFFFFFFFFFFFFFC787004FA7E7FFFFE7
+A74F000000000000000000000000000087C7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFD79F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFFFFFFC787003747471F378FCFFFFFFF
+FFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F003F47471767AFEFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000000
+87C7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFC777006FBFF7FFFFFFFFE7A74F00000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFF7CF97
+5F371F00000000000000004FA7E7FFF7BF6F1787CFFFDF9F8F67676FBFF7E7A74F4FA7DFFFFFE7
+A74F000000000000000000000000000087C7FFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7BFA78F5F
+3F1F3F8FCFF7FFFFFFFFFFC787004FA7D7C787373787C7F7FFFFFFFFFFFFFFE7A74F3F9FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFE7A74F3F
+9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFDF
+9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087BFDFA7571F57A7DF
+FFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FF
+FFDF9F3F6FBFDFA787A7DFBF7787C7CF8F2F77C7FFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFDFAF67
+3F17174FA7E7FFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F374FA7E7FFFFFFFFFFC787004F
+A7E7FFFFDFA7571F57A7DFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFFFFFFEFBF8737
+1777BFF7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFF7C787373787C7EFFFFFFFFFFFCF8F2F2F67AFDF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFF7BF6F3F7777779FDFFFEFB76F6F
+6F5F4FA7DFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFF
+EFCF8F4F1F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F3F1700001F4787BFCFA74F4FA7E7FFFFFFFFF7D7A76F47
+27170000000000000087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFC787
+000000000000001727476FA7D7F7FFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757A7DFFF
+FFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFE7A74F00000000000000000000000000
+87C7FFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFFFFFFFFFDFB76F471F0000
+0000004FA7E7FFFFFFFFF7D7A76F47271700001727476FA7D7F7FFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFDFA757173787C7F7FFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF674727170000001727476FA7D7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FFFFFFF7CF9757271700001F47
+679FAF974F4FA7E7FFFFFFCF8F2F002F8FCFFFFFFFE7A74F00006FBFF7FFFFFFFFFFF7D7A76F47
+27170000000000000087C7FFFFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67
+A7DFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F37
+8FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C777
+2F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFDF9F471787C7FFFFFFFFFFFFFFFFE7A74F1777
+BFF7FFFFFFC7870000000000000017275797CFF7FFFFFFFFFFFFE7A74F4F97B7A76F471F000017
+275FAFDFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFE7A74F4F97A7873F
+171757A7C7AF5F1F001F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F00000000000000000000000000004FA7E7FFFFFFFFFFEFC78F57271700001727476FB7DF
+FFFFFFFFFFF7C787373787CFF7FFFFFFFFF7C787373787C7F7E7A74F0000000000000000000000
+0000004FA7E7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+000000000000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFB76F47271700000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFE7A74F000000000000
+001F476FB7DFFFFFFFFFE7A74F4F97A7873F171757A7C7AF5F1F001F6FB7EFFFFFFFFFEFC78F57
+271700001727476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFF7CF8F47275F9FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFDFB7
+673F3F77BFEFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFDF9F471787C7FFFFFFFF
+FFFFFFFFCF8F2F2F8FCFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFEFAF5F1787C7FFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+D7973F3F9FDFFFFFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFFFC7870067AFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFE7A74F001767AFE7C7870000378FCFDFA74F0087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFCF8F373787C7F7
+F7C7773757A7DFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFF
+DF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCF
+EFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFE7A74F0017
+67AFE7C7870000378FCFDFA74F0087C7FFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7DFEFBF773F3F87C7
+EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7F7D79F57275FA7DFFFFFFFFFFFFFFFF7BF773F87BF
+EFFFFFFFFFF7E7AF671F77BFF7FFFFEFAF5F1777BFF7FFFFFFFFFFCF8F2F4FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771F77BFF7FF
+FFFFDF9F47479FDFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFE7A74F0077C7FFFFC787004FA7DFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000
+00000000000000000087C7FFFFFFFFFFFFFFFFDFA7573F3F3F3F87C7F7FFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7CF975F371F00000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+F7CF975F371F00000000000000004FA7E7FFFFE7A74F0077C7FFFFC787004FA7DFFFE7A74F0087
+C7FFE7A74F000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787003747471F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFE7A74F
+003F47471767AFEFFFFFFFFFFFFFFFFFFFFFC78700000000000000000000000000004FA7E7FFFF
+FFF7BF771F77BFF7FFFFFFC7871F77BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F3777BFF7FFDF9F475FAFEFFFFFFFFFFFDF9F47
+004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFC787004FA7E7
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA75F5F6F673F57AFE7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004F
+A7E7FFFFE7A74F0087C7FFFFC787004FA7E7FFE7A74F0087C7FFE7A74F3F9FDFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7D7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFE7A74F0087BFDFA7571F57A7DFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F67B7EFF7BF77378FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDF9F476FBFD79F578FCFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF
+670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFC787004FA7E7FFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFF
+FFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787374FA7DFFFF7C7773757A7
+DFFFFFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A7
+4F0087C7FFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFE7A74F0087C7FFFFC78700
+4FA7E7FFE7A74F0087C7FFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF6700
+87C7FFFFFFFFE7A74F0087C7FFFFF7C787373787C7EFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F474F8F8F5F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F4F679FDFFFFF
+FFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFC787004FA7E7FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFF7D7A76F4727170000000000
+000087C7FFFFFFFFDFA757174FA7DFFFFFFFFFFFF7C7772F3787C7F7FFFFFFFFFFFFFFDFB76F47
+1F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFF7
+CF9757271700001F47679FAF974F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFC78F5F371F000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFF7CF9757271700
+001F47679FAF974F4FA7E7FFFFE7A74F0087C7FFFFC787004FA7E7FFE7A74F0087C7FFFFFFF7D7
+A76F4727170000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFDFA757173787C7F7FFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFFFFFFFEF
+AF5F00005FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F005FAFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7B77737378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00001F476FB7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7DFAF6F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7CF8F5F87C7F7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F2F77BFEFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00000000
+000017275787BFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7
+87373787C7F7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D797471787CFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F00
+0000001717170087C7FFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFC78700000000
+000000000000000000000087C7FFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFE7A74F
+00000000000000000000000000004FA7E7FFFFFFFFFFC7870077AFC78F57271700001F478FC7F7
+FFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFFFE7A74F4F97AF9757271700001F478F
+C7F7FFFFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFFC7870077A7B76F
+471F000017275FAFDFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFE7A74F0000
+0000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFBF873F57AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFE7A74F4F97A7873F171757A7C7AF5F
+1F001F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7AF5F1F0037
+87BFBF873F17173F97D7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFC7
+870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7
+FFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFFFFFFFFF
+FFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7BF8F572717001727
+5797CFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF7CF97
+5F371F0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFB76F47271700000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFF
+FFFFFFFFFFFFFFC787004FA7E7FFFFFFF7CF8F47275F9FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFF7CF8F47275F9FD7F7FFFFFFFFFFFFFFFFFFFF
+F7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFF7BF77
+3F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B767006FBFF7FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFEFB7671F57A7DFF7FF
+FFFFFFDF9F4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000027579F
+CFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFF
+FFFFFFFFFFFFFFFFFFE7A74F001767AFE7C7870000378FCFDFA74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000378FCFDFA74F001767AFE7C787004FA7E7FFFFFFFF
+FFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDF
+A74F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFF
+FFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7DFEFBF
+773F3F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7DFEFBF773F3F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFEF
+B7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFC78700000000000000000000000000004FA7
+E7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F00000000000000004FA7E7FFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFA75717479FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFE7A74F0077C7
+FFFFC787004FA7DFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7DFFFE7A74F0077C7FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F0000000000000000
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFD79F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC787003747471F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787003747471F378FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F
+0087C7FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF7717
+2F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFE7
+A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFC787004FA7E7FFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFE7A74F0087C7FFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFF
+FFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+DFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7BFA78F
+5F3F1F3F8FCFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7
+CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFC787004FA7D7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7D7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFEFAF5F00478FC7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F17
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCF9F571F67B7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFC787004FA7E7FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFE7A74F0087C7FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+DFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7
+B7773F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7
+FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC77700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F374FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFDFA7571F57A7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F
+000017275F9FD7B7870087C7FFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFF
+FFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFC787004F
+A7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFE7A74F0000000000000000000000000087C7FFFFFF
+FFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0000000000001F375F87B7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFC787004F
+A7E7FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+E7A74F0087C7FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFDF9F472F
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76717
+77BFF7FFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFF
+FFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F000000001F375F8F
+C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF6747271700000017
+27476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFC7
+87000000000000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757A7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757A7DFFFFFFFFFFFFFFF
+FFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78737
+3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA757
+3F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67
+AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675F
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFAF6F471F00000000004FA7E7FFFFFFC78700000000
+00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FF
+FFFFFFC78700000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFDFB76F47271700
+000000000087C7FFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFFFFF7D7A76F
+471F0000001F375F97CFF7FFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFF
+F7D7A76F471F0000001F375F97CFF7FFFFFFFFFFFFC7870077AFC78F57271700001F478FC7F7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97A7873F171757A7C7AF5F1F00
+1F6FB7EFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F
+0087C7FFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFF
+E7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77
+BFF7FFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F001767AFE7C7870000378FCFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFF7
+BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFC78700000000000000
+000000000000004FA7E7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFC78700000000000000000000000000004FA7E7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077C7FFFF
+C787004FA7DFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFDFA74F0087C7FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5F
+AFE7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFC787006FBFF7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFC787004FA7E7FFE7A74F0087C7FFFF
+FFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFF
+EFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFF7BF6F004F9F
+DFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0087C7FFFFC787004FA7E7FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC777006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFEFC78F5F371F00000000000000
+4FA7E7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7A74F00000000000000
+00000000000087C7FFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFE7A74F000000
+000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFEF
+C78F5F371F000000000000004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFC787004FA7E7
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFAF6F471F00000000004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F
+5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A7
+6F471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C77737
+57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF6F6FAFDFF7FFFFFFDF9F4F00479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671F6FBFF7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFF7D7A76F471F00
+00001F375F97CFF7FFFFFFFFC78700000000000000000000000000000087C7FFFFFFFFFFFFDFB7
+6F47271700000000000087C7FFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFF
+FFC7870077AFC78F57271700001F478FC7F7FFFFFFFFE7A74F000000000000001F476FB7DFFFFF
+FFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFF7D7A76F471F00000000171717
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+DFB7673F3F77BFEFFFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFF7BF77174FA7E7FF
+FFFFFFFFFFFFEFB767005FAFEFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFFFFFFFF7
+D7A76F471F0000001F375F97CFF7FFFFFFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFF
+DF9F471787C7FFFFFFFFFFFFFFFFE7A74F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFE7A74F4F97AF975727
+1700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97
+AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F47
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F479FDFFFFFFFFFFFFFFFFFFFFFFFC7870077A7BF8F5727170017275797CFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F47271700000000
+000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F00
+00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFDFB7673F3F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFDFB7673F3F77BFEFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F57A7
+DFF7FFFFFFFFDF9F4F0087C7FFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700174787BFE7F7FFFFFFCF87
+2F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFE7A74F0017478FCFEFFFFFF7
+C7772F3F9FDFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7F7D79F57275FA7DFFFFFFFFFFFFFFFDF9F4F57
+A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFCF8F2F479FDFFFFFFFFFFFEFAF5F2F87C7F7FFFFFF
+FFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BF
+F7FFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFEFAF5F1787C7FFFFFFFFFFFFDF9F
+472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA74F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F
+006FBFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+D7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+C78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8F
+CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7F7D79F57275FA7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7F7D79F57275F
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+C78700000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F0000
+0000000000004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFEFB7670077C7FF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F003F47471767AFEFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FF
+FFFFFFFFDF9F47479FDFFFFFFFE7A74F479FDFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFF
+FFFFFFFFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7BF771F77BFF7FFFFFFDF9F47479FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC787373787C7F7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777
+006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF
+6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFD79F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F003F47471767AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F003F47471767AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F
+6F4F1F1F5FAFE7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087BFDFA7571F57A7DFFFFFFF
+FFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F2F8FCFFFDF9F47
+5FAFEFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFC787006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+3777BFF7FFDF9F475FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFBF77373777BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F47
+004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7BFA78F5F3F1F3F
+8FCFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087BFDF
+A7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087BFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFEFCF8F
+4F1F170087C7FFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFF7
+BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFF7C787373787C7EFFFFFFFFFFFCF8F2F2F67AFDFF7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF7737778F773777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFAF670087C7FFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F476FBFD79F578FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F273F87C7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F
+170087C7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDF
+FFFFFFFFEFD7974F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F374FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFF7C787373787C7EFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFF7C787373787C7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFEFC78F5F
+371F000000000000004FA7E7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7
+A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FF
+FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF974F
+4FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFF7CF974F1F000017275F9F
+D7B7870087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFDFA757173787C7F7FFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFFFFFFF
+FFFFCF8F2F002F8FCFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFF
+FFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFAF674F4F679FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFF
+FFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFFFFFFFFFFFFF
+DF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFDFAF674727170000001727476FA7D7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F000000001F375F8FC7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000
+001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000
+000000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFDFA757173787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFDFA757173787C7F7FFFFFFFFFFFFFFFFFFFFDF9F472F
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F8FCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFD79F571F67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA757
+1F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000017275797CFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFAF6F47
+1F00000000004FA7E7FFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+6F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFF
+FFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFC78700000000000000000000000000000087
+C7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FF
+FFFFFFFFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFE7A74F0000000000000000
+0000000000004FA7E7FFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFE7A74F4F97AF
+9757271700001F478FC7F7FFFFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFFFFF
+C7870077AFC78F57271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFDFB7673F3F77BFEFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF67
+1F77BFF7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC7870067AF
+EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77
+3F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFF
+FFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFC78700174787BFE7F7FFFFFFCF872F
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7F7D79F57275F
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFEFB7670077C7FFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000000000000000004FA7
+E7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFC787000000000000000000000000
+00004FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F003F47471767AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087BFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F
+2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+AF670087C7FFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFEFAF5F0047
+8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFF7C787373787C7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F000017275F9FD7B7870087C7
+FFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFE7A74F00000000000000
+00000000000087C7FFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFDF
+B76F471F00000000004FA7E7FFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFDFA757173787C7F7FFFFFFFFFFFFFFFFFFF7BF771767
+B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/doc/src/cpsa4manual/kerb_skel4.pdf b/doc/src/cpsa4manual/kerb_skel4.pdf
new file mode 100644
Binary files /dev/null and b/doc/src/cpsa4manual/kerb_skel4.pdf differ
diff --git a/doc/src/cpsa4manual/kerb_skel7.eps b/doc/src/cpsa4manual/kerb_skel7.eps
new file mode 100644
# file too large to diff: doc/src/cpsa4manual/kerb_skel7.eps
diff --git a/doc/src/cpsa4manual/kerb_skel7.pdf b/doc/src/cpsa4manual/kerb_skel7.pdf
new file mode 100644
Binary files /dev/null and b/doc/src/cpsa4manual/kerb_skel7.pdf differ
diff --git a/doc/src/cpsa4manual/ltxmp.mk b/doc/src/cpsa4manual/ltxmp.mk
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/ltxmp.mk
@@ -0,0 +1,75 @@
+# A LaTeX/MetaPost makefile -- requires GNU Make
+
+# John D. Ramsdell -- The MITRE Corporation
+
+# The makefile assumes all the *.tex and *.mp source files in this
+# directory are used to build one document.  You need not have any
+# MetaPost source files to use this makefile.
+
+# To use this file, include this file in your Makefile, and define
+# BASE_NAME to be the base name of the document to be created.  If you
+# use BiBTeX, define BIB_NAME to be the base name of the BiBTeX file.
+# Define MP_MACROS to be the name of local MetaPost macro library
+# files.
+
+# Example Makefile:
+
+# BASE_NAME = mydoc
+# BIB_NAME = mybib
+# include ltxmp.mk
+
+# During development, this makefile doesn't always run enough programs
+# in response to changes in the source files.  Be sure to precede a
+# make with a make clean when you want to build a final version of a
+# document.
+
+SHELL = /bin/sh
+
+ifndef BASE_NAME
+  BASE_NAME = root
+endif
+
+ifndef LATEX
+  LATEX = pdflatex
+endif
+
+TEX_SRCS := $(wildcard *.tex)
+
+MP_SRCS	:= $(wildcard *.mp)
+
+MP_FIGS := $(filter-out $(MP_MACROS),$(MP_SRCS))
+
+%-0.mps:	%.mp
+	mpost -tex=latex $*
+
+all:	$(BASE_NAME).pdf
+
+$(BASE_NAME).pdf:	$(TEX_SRCS) $(MP_FIGS:.mp=-0.mps)
+	if test ! -f $(BASE_NAME).aux; then $(LATEX) $(BASE_NAME).tex; fi
+	if test -f $(BASE_NAME).idx; then $(MAKE) $(BASE_NAME).ind; fi
+	$(LATEX) $(BASE_NAME).tex
+
+ifdef BIB_NAME
+  $(BASE_NAME).pdf:	$(BASE_NAME).bbl
+endif
+
+$(BASE_NAME).bbl:	$(BIB_NAME).bib
+	if test ! -f $(BASE_NAME).aux; then $(LATEX) $(BASE_NAME).tex; fi
+	bibtex $(BASE_NAME)
+	$(LATEX) $(BASE_NAME).tex
+
+$(BASE_NAME).ind:	$(BASE_NAME).idx
+	makeindex $(BASE_NAME)
+
+CLEAN_FILES := $(BASE_NAME).pdf \
+	$(wildcard *.log *.aux *.toc *.lof *.out) \
+	$(wildcard *.mpx $(patsubst %.mp,%-*.mps,$(MP_FIGS))) \
+	$(wildcard *.bbl *.blg *.ind *.idx *.ilg) \
+	$(wildcard $(BASE_NAME).dvi $(BASE_NAME).ps)
+
+clean:
+	-rm $(CLEAN_FILES)
+
+dist:	clean
+	DIR=`pwd`; DIR=`basename $${DIR}`; \
+	cd ..; tar czf $${DIR}.tar.gz $${DIR}
diff --git a/doc/src/cpsa4manual/ltxs.mk b/doc/src/cpsa4manual/ltxs.mk
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/ltxs.mk
@@ -0,0 +1,11 @@
+TEX_SRCS := $(wildcard *.tex)
+LATEX = pdflatex
+
+%.pdf:	%.tex
+	$(LATEX) $*
+	$(LATEX) $*
+
+all:	$(TEX_SRCS:.tex=.pdf)
+
+clean:
+	-rm $(TEX_SRCS:.tex=.pdf) $(TEX_SRCS:.tex=.log) $(TEX_SRCS:.tex=.aux)
diff --git a/doc/src/cpsa4manual/macros.tex b/doc/src/cpsa4manual/macros.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/macros.tex
@@ -0,0 +1,77 @@
+\newcounter{running}[section]
+\newenvironment{renumerate}{\begin{enumerate}\setcounter{enumi}{\value{running}}}%
+{\setcounter{running}{\value{enumi}}\end{enumerate}}
+
+\newcommand{\cpsa}{\textsc{cpsa}}
+\newcommand{\version}{4.3}
+\newcommand{\cpsacopying}{\begingroup
+  \renewcommand{\thefootnote}{}\footnotetext{{\copyright} 2016--2022 The
+    MITRE Corporation.  Permission to copy without fee all or part of
+    this material is granted provided that the copies are not made or
+    distributed for direct commercial advantage, this copyright notice
+    and the title of the publication and its date appear, and notice
+    in given that copying is by permission of The MITRE
+    Corporation.}\endgroup}
+\newcommand{\pov}{\textsc{pov}}
+\newcommand{\cow}{\textsc{cow}}
+\newcommand{\cn}[1]{\ensuremath{\operatorname{\mathsf{#1}}}}
+\newcommand{\dom}[1]{\ensuremath{\operatorname{\mathbf{#1}}}}
+\newcommand{\fn}[1]{\ensuremath{\operatorname{\mathit{#1}}}}
+\newcommand{\seq}[1]{\ensuremath{\langle#1\rangle}}
+\newcommand{\enc}[2]{\ensuremath{\{\!|#1|\!\}_{#2}}}
+\newcommand{\iv}[1]{\ensuremath{{#1}^{-1}}}
+\newcommand{\hash}[1]{\ensuremath{\##1}}
+\newcommand{\comp}[2]{{\mathord{#1}}\circ{\mathord{#2}}}
+\newcommand{\sembrack}[1]{[\![#1]\!]}
+\newcommand{\semfn}[1]{\mathcal{#1}}
+\newcommand{\sem}[2]{\semfn{#1}\sembrack{#2}}
+\newcommand{\mcsu}{\ensuremath{\mathcal{C}}}
+\newcommand{\probs}{\ensuremath{\mathcal{E}}}
+\newcommand{\srt}[1]{\ensuremath{\mathsf{#1}}}
+\newcommand{\eqq}{\stackrel{?}{=}}
+\newcommand{\inbnd}{\mathord -}
+\newcommand{\outbnd}{\mathord +}
+\newcommand{\nat}{\mathbb{N}}
+\newcommand{\all}[1]{\mathop{\forall#1}}
+\newcommand{\some}[1]{\mathop{\exists#1}}
+\newcommand{\baseterms}{\mathbb{B}}
+\newcommand{\cons}{\mathbin{::}}
+\newcommand{\ith}{\imath^\mathrm{th}}
+\newcommand{\jth}{\jmath^\mathrm{th}}
+\newcommand{\append}{\mathbin{{}^\smallfrown}}
+\newcommand{\prefix}[2]{#1|_{#2}}
+\newcommand{\orig}{\mathcal{O}}
+\newcommand{\gain}{\mathcal{G}}
+%\newcommand{\pow}[1]{\mathcal{P}(#1)}
+%\newcommand{\pow}[1]{\wp(#1)}
+\newcommand{\pow}[1]{2^{#1}}
+\newcommand{\termat}{\mathbin{@}}
+\newcommand{\idsigma}{\sigma_{\mathrm{id}}}
+\newcommand{\idphi}{\phi_{\mathrm{id}}}
+\newcommand{\kprec}[1]{\mathbin{\prec_{#1}}}
+\newcommand{\terms}{\ensuremath{\mathcal{T}}}
+\newcommand{\alg}[1]{\ensuremath{\mathfrak#1}}
+\newcommand{\ops}[1]{\ensuremath{\mathbb#1}}
+\newcommand{\bundle}{\ensuremath{\mathcal{B}}}
+\newcommand{\der}[3]{\ensuremath{\dctx{#2}{#3}\vdash#1}}
+\newcommand{\dctx}[2]{\ensuremath{#1:#2}}
+\newcommand{\flow}[3]{\ensuremath{#1,#2\rhd#3}}
+\newcommand{\infer}[2]{\begin{array}{c}#1\\\hline#2\end{array}}
+\hyphenation{pre-skel-e-ton}
+\newcommand{\homomorphism}[1]{\stackrel{#1}{\longmapsto}}
+\newcommand{\reduction}[1]{\stackrel{#1}{\longrightarrow}}
+\newcommand{\longtwoheadrightarrow}{\relax
+\smash{\relbar\joinrel\twoheadrightarrow}\vphantom\rightarrow}
+\newcommand{\setreduction}[1]{\stackrel{#1}{\longtwoheadrightarrow}}
+\newcommand{\ttindex}[1]{\index{#1@\texttt{#1}}}
+\newcommand{\ttindexalt}[2]{\index{#1@\texttt{#1}{#2}}}
+\theoremstyle{definition}
+\newtheorem{exercise}{Exploration}[chapter]
+\newcommand{\scap}[1]{\ensuremath{\mathop{\relax
+                    \smash{\mbox{\sc#1}}}\!\mathop{\vphantom{#1}}\nolimits}}
+\newcommand{\sym}[1]{\textup{\texttt{#1}}}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "cpsa4manual"
+%%% End:
diff --git a/doc/src/cpsa4manual/mitrelogo.mp b/doc/src/cpsa4manual/mitrelogo.mp
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/mitrelogo.mp
@@ -0,0 +1,182 @@
+filenametemplate "%j-%c.mps";
+
+% Original comment in the METAFONT version of the MITRE logo.
+
+%% The MITRE logo version 1.1 released 11/16/89.
+
+%% Created by Richard Shaeff --- 1981
+%% Shaeff Design Inc, Needham, MA
+%%
+%% Programmed in METAFONT by John D. Ramsdell --- November 1989
+%% The MITRE Corporation, Bedford, MA
+%% Copyright 1989 by The MITRE Corporation.
+
+%% Richard Shaeff's original design was done by creating an
+%% outline.  Therefore, this METAFONT version generates letters
+%% by filling an outlined region.
+
+%% The program expects ht# and only ht# to be defined in a
+%% parameter file.  All other parameters are derived from this
+%% one.  This is in conformance with the MITRE policy which states
+%% that the logo may be changed only by linearly scaling all of
+%% the logo's dimensions.
+
+% The single parameter in METAPOST is h.
+h=15pt;
+
+%% Note:
+%% Measurements from the original design and are in inches.
+%% The height of the logo is 4.25 inches and that height is
+%% used to scale all dimensions.
+%%
+
+%% MITRE blue is Pantone Matching System (PMS) 293 Blue, with an RGB
+%% value of (0, 81, 186).
+
+prologue:=1;
+
+I_w            = 0.87500/4.25h;      % I width. (7/8in)
+T_bar_h        = 0.78125/4.25h;      % T bar height. (25/32in)
+T_lft_w        = 1.03125/4.25h;      % Left T bar. (1 1/32in)
+T_rt_w         = 1.00000/4.25h;      % Right T bar. (1in)
+E_gap_h        = 0.93750/4.25h;      % Upper E gap. (15/16in)
+E_bar_shrink_h = 0.06250/4.25h;      % Mid bar shrink. (1/16in)
+E_bar_w        = 1.56250/4.25h;      % E bar width. (1 9/16in)
+R_tail_a       = 125;                % R tail angle.
+M_vee_h        = 1.62500/4.25h;      % M vee height. (1 5/8in)
+M_vee_a        = 70;                 % M vee angle.
+M_edge_a       = 100;                % M edge angle.
+M_w            = 5.25000/4.25h;      % M width. (5 1/4in)
+skip_w         = 0.12500/4.25h;      % Distance between T and R.
+                                     % (1/8in)
+s = max(1, round(skip_w));           % Rounded interletter space.
+color mitreblue;
+mitreblue      = (0,70/255,174/255); % MITRE blue PMS 293 Blue
+
+def draw_M(expr o) =
+  begingroup
+    save x, y;
+    w = M_w + skip_w;
+    x1 = o;
+    y2 = y3 = y5 = y6 = h;
+    y4 = h - y12 = h - y9 = M_vee_h;       % The vee heights are the same.
+    y1 = y13 = y11 = y10 = y8 = y7 = 0;
+
+    x13 = x1 + I_w;
+    x7 = w - max(1, round(.5skip_w));
+    x8 = x7 - I_w;
+    x3 - x2 = x6 - x5;                     % Top edges widths are the same.
+    x5 - x2 = x10 - x1;                    % A strange fact---measure it!
+
+    z6 = z7 + whatever * dir M_edge_a;     % The right side has all nice
+    z9 = z8 + whatever * dir M_edge_a;     % and neat angles defining it.
+    z10 = z9 + whatever * dir M_vee_a;
+    z4 = (-I_w, 0) + whatever[z10,z9];     % Width of right diagonal is I_w.
+    z5 = z4 + whatever * dir M_vee_a;
+    z12 = z13 + whatever * (z2 - z1);
+    z11 = z12 + whatever * (z3 - z4);
+    % The width of the left diagonal is only approximately I_w.
+    % The following is only "almost" true.
+    % z4 = (I_w, 0) + whatever[z11,z12];
+
+    fill z1--z2--z3--z4--z5--z6--z7
+    & z7--z8--z9--z10--z11--z12--z13--cycle withcolor mitreblue;
+    w
+  endgroup;
+enddef;
+
+def draw_I(expr o) =
+  begingroup
+    save x, y;
+    y2 = y3 = h;
+    y1 = y4 = 0;
+
+    x1 = x2 = o;
+    x3 = x4 = o + round(I_w);
+
+    fill z1--z2--z3--z4--cycle withcolor mitreblue;
+    x3 + s
+  endgroup;
+enddef;
+
+def draw_T(expr o) =
+  begingroup;
+    save x, y;
+    y4 = y5 = h;
+    y3 = y2 = y7 = y6 = h - T_bar_h;
+    y1 = y8 = 0;
+
+    x3 = x4 = o;
+    x2 = x1 = o + round(T_lft_w);
+    x7 = x8 = o + round(T_lft_w + I_w);
+    x6 = x5 = o + round(T_lft_w + I_w + T_rt_w);
+
+    fill z1--z2--z3--z4--z5--z6--z7--z8--cycle withcolor mitreblue;
+    x6 + s
+  endgroup;
+enddef;
+
+def draw_R(expr o) =
+  begingroup;
+    save x, y;
+    y2 = y3 = h;
+    y10 = y11 = h - T_bar_h;       % y10, y8, y5, y3 must be integers.
+    y9 = y4 = y10 - .5E_gap_h;     % They help determine the position
+    y7 = y15 = y8 = y10 - E_gap_h; % of horizontal tangents to curves.
+    y6 = y5 = y7 - (T_bar_h - E_bar_shrink_h);
+    y1 = y12 = y13 = y16 = 0;
+
+    x1 = x2 = o;
+    x11 = x12 = o + round(I_w);	   % The space in the "R" must be the
+    x7 = x6 = x14 = x11 + s;       % same as the interletter space.
+    x3 = x10 = x8 = x5 = o + I_w + y7 - y 14;  % The location of the tail
+    x13 = x3 + .5E_gap_h;          % (x13) must not be rounded or
+                                % METAFONT cannot solve the equations.
+    z14 = z13 + whatever * dir R_tail_a;
+    z16 = (x13+I_w+skip_w, skip_w) + whatever * dir R_tail_a;
+    z15 = z16 + whatever * dir R_tail_a;
+
+    x9 = round(x13);               % x4 and x9 determine vertical tangents
+    x4 = round(x13 + I_w);         % so they must be integers.
+
+    fill z1--z2--z3
+    & z3{z3-z2}..z4{z5-z3}..{z6-z5}z5
+    & z5--z6--z7--z8
+    & z8{z8-z7}..z9{z10-z8}..{z11-z10}z10
+    & z10--z11--z12--cycle withcolor mitreblue;
+
+    % "R" Tail
+    fill z13--z14--z7--z15--z16--cycle withcolor mitreblue;
+    x4 + s
+  endgroup;
+enddef;
+
+def draw_E(expr o) =
+  begingroup;
+    save x, y;
+    y2 = y3 = h;
+    y5 = y4 = h - T_bar_h;
+    y6 = y7 = y5 - E_gap_h;
+    y9 = y8 = y6 - (T_bar_h - E_bar_shrink_h);
+    % Notice that the lower bar is bigger than the upper one.
+    y10 = y11 = T_bar_h + E_bar_shrink_h;
+    y1 = y12 = 0;
+
+    x1 = x2 = o;
+    x5 = x6 = x9 = x10 = o + round(I_w);
+    x3 = x4 = x7 = x8 = x11 = x12 = o + round(I_w + E_bar_w);
+
+    fill z1--z2--z3--z4--z5--z6--z7--z8
+    & z8--z9--z10--z11--z12--cycle withcolor mitreblue;
+    x3 + max(1, round(.5skip_w))
+  endgroup;
+enddef;
+
+beginfig(0);
+  x1 = draw_M(0);
+  x2 = draw_I(x1);
+  x3 = draw_T(x2);
+  x4 = draw_R(x3);
+  x5 = draw_E(x4);
+endfig;
+bye;
diff --git a/doc/src/cpsa4manual/ns_search_tree.eps b/doc/src/cpsa4manual/ns_search_tree.eps
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/ns_search_tree.eps
@@ -0,0 +1,3732 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (/srv/www/vhosts/releases/18/save/queued/6/9/1/691cdde6809be7ff4209b0979890b7df/intermediate1/o_c0a9f87569fde010.eps)
+%%CreationDate: (2015-07-14T15:12:55+02:00)
+%%BoundingBox: -0 -0 186 136
+%%HiResBoundingBox: 0 0 186.019 136
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image.  The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+  %
+  % Get a DirectClass packet.
+  %
+  % Parameters:
+  %   red.
+  %   green.
+  %   blue.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+  %
+  % Display a DirectClass image.
+  %
+  systemdict /colorimage known
+  {
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { DirectClassPacket } false 3 colorimage
+  }
+  {
+    %
+    % No colorimage operator;  convert to grayscale.
+    %
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { GrayDirectClassPacket } image
+  } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+  %
+  % Get a DirectClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   red
+  %   green
+  %   blue
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+  %
+  % Display a PseudoClass image.
+  %
+  % Parameters:
+  %   class: 0-PseudoClass or 1-Grayscale.
+  %
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  class 0 gt
+  {
+    currentfile buffer readline pop
+    token pop /depth exch def pop
+    /grays columns 8 add depth sub depth mul 8 idiv string def
+    columns rows depth
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { currentfile grays readhexstring pop } image
+  }
+  {
+    %
+    % Parameters:
+    %   colors: number of colors in the colormap.
+    %   colormap: red, green, blue color packets.
+    %
+    currentfile buffer readline pop
+    token pop /colors exch def pop
+    /colors colors 3 mul def
+    /colormap colors string def
+    currentfile colormap readhexstring pop pop
+    systemdict /colorimage known
+    {
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { PseudoClassPacket } false 3 colorimage
+    }
+    {
+      %
+      % No colorimage operator;  convert to grayscale.
+      %
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { GrayPseudoClassPacket } image
+    } ifelse
+  } ifelse
+} bind def
+
+/DisplayImage
+{
+  %
+  % Display a DirectClass or PseudoClass image.
+  %
+  % Parameters:
+  %   x & y translation.
+  %   x & y scale.
+  %   label pointsize.
+  %   image label.
+  %   image columns & rows.
+  %   class: 0-DirectClass or 1-PseudoClass.
+  %   compression: 0-none or 1-RunlengthEncoded.
+  %   hex color packets.
+  %
+  gsave
+  /buffer 512 string def
+  /byte 1 string def
+  /color_packet 3 string def
+  /pixels 768 string def
+
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  x y translate
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  currentfile buffer readline pop
+  token pop /pointsize exch def pop
+  /Times-Roman findfont pointsize scalefont setfont
+  x y scale
+  currentfile buffer readline pop
+  token pop /columns exch def
+  token pop /rows exch def pop
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  currentfile buffer readline pop
+  token pop /compression exch def pop
+  class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+  grestore
+} bind def
+%%EndProlog
+%%Page:  1 1
+%%PageBoundingBox: 0 0 186 136
+userdict begin
+DisplayImage
+0 0
+186.019 135.764
+12
+248 181
+0
+0
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000000000
+00000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFCDFB7F0471FEE001FEE87BFF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0CF
+9F688E5A1A8B5A3D99A4D4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A75757A7DFFFFFFFFFFFE7A74F00
+4FA7E7FFFFFFFFFFEFC7873787C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C7F03737F0C7EFFCFFEFF38737EE87CFFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7
+B9A1CFE9FFFFFFFFF0DFA9995A2FA8D4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B7AFCFFFFFFFFFFFFFFFE7
+A74F004FA7E7FFFFFFFFFFFFFFE7AFAFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF79F47EE6FBFFAFFFFFFFFFFFFF7BFF0005FF2EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7CC8F1A9DC4F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7F25700EFA7E7FFFFFFFFFFFFFFFFE7F24F00EFB7EFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBB27A9ADAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFF7E7BF9767475797AF974F1F00175F
+B7EFFFFFF7D7A76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFF7D7A76F471F0000001F476FA7
+D7F7FFFFFFFFFFDFAF5F2717173F87C7D7A787A7E7FFFFFFFFFFD79737003797D7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC7F00000F0C7FFFFFFFFFFFFFFFFFFF7F36F00EE87CFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFBEFD4BA8A6FB2DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFC78717170000002F77BFEFFFFF
+FFFFFFFFFFE7AF6777B7E7F7FFFFFFF7E7A75F001777BFF7FFFFFFE7AF6777B7E7F7FFFFFFF7E7
+A75F001777BFF7FFEFB7673F97D7FFFFFFFFEFBF7767A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC7F00000F0C7FFFFFFFFFFFFFFFFFFFFF48700EE87C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B099551A8B551A8B5A53ABD4F7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700004FA7E7
+FFFFFFFFFFFFFFCF8F2F00000000000000000000000000000087C7FFFFCF8F2F00000000000000
+000000000000000087C7FFE7AF57174787B7D7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7F00000F0C7FFFFFFFFFFFFFFFFFFE7F24F00EE8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E5D4A1995A1A8B84BEF0FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000
+4FA7E7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F0000001727578FC7EFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7F24F00EFAFE7FFFFFFFFFFFFFFFFDFF24F00EF
+B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFECBF6F8B7AB0E9FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+8700004FA7E7FFFFFFFFFFFFFFCF8F2F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F17
+77BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A7874F1F003797D7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79F47EE6FBFFAFFFFFFFFFFFFEFB7EF
+005FF2EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF858B8FC5F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F002F87CFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFBF7700004FA7E7FFFFFFFFFFFFFFFFDF9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDFFFFFFF
+DF9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDFFFE7A7676FB7E7F7FFFFFFFFD7973F2F8FCFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7F02F4FF1D7F7FFFFEFF3
+8737EE87CFFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4DBB67F6FBA
+E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000087C7FFFFFFFFFF
+FFFFC7870000000000173F3F67A7E7FFFFFFFFFFFFFFEFCF975F371F000000172747679FCFF7FF
+FFFFFFFFFFEFCF975F371F000000172747679FCFF7FFFFE7A78FAFDFCF974F1F0017275797CFF7
+FFFFFFFFFFD79737003797D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBDFAFF03F17EE
+1727EF8FC7F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDBB66F368B551A8B5A3D927F9ACF
+E9FFFFFFFFFFFFFFFFFFFFEFB7671F1F67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9FE0000EE0000EE
+0000EE0000EE0000EE0000EE0000EE0505EDFFFFFFFFFFFFFFFFFFFAF9FC551A8B551A8B551A8B
+551A8B551A8B551A8B551A8B581E8CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC78700000000000000000000000000000000000000000000000087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFF26F47EE
+0000EE4787F3EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A75757A7DFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFEFC7873787C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F48737EE
+87C7F9FFFFF9C787EE3787F4F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7B7AFCFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFE7AF
+AFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9FEE
+006FF3F7FFFFFFFFFFFFF7F36F00EFAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8
+AF57EE4FA7F7FFFFFFFFFFFFFFFFF7A74FEE67B7F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFF7E7BF9767475797AF974F1F00175FB7EFFFFFF7D7A76F471F0000001F47
+6FA7D7F7FFFFFFFFFFFFFFF7D7A76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF48700EE77C7FCFFFFFFFFFFFFFFFFFABF6FEE1787F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFC78717170000002F77BFEFFFFFFFFFFFFFFFE7AF6777B7E7F7FFFFFF
+F7E7A75F001777BFF7FFFFFFE7AF6777B7E7F7FFFFFFF7E7A75F001777BFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFF48700EE87C7FFFFFFFFFFFFFFFFFFFFC787EE0087F4FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFCF8F2F0000000000
+0000000000000000000087C7FFFFCF8F2F00000000000000000000000000000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFF48700EE87C7FFFFFFFFFFFFFFFFFFF7A74FEE2F8FF5FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7A74FEE57AFF8FFFFFFFFFFFFFFFFF7A74FEE67B7F9FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFCF8F
+2F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9FEE006FF3F7FFFFFFFFFFFFEFF26700EFAFEFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFD7973F002F87CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF7700004FA7E7FFFFFFFFFFFF
+FFFFDF9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDFFFFFFFDF9F47003767A7D7EFFFFFFFFFFFF7
+BF8F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F3772FEF97D7FAFFFFF9C787EE3787F4F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787000000000000000000000087C7FFFFFFFFFFFFFFC7870000000000173F3F67A7E7
+FFFFFFFFFFFFFFEFCF975F371F000000172747679FCFF7FFFFFFFFFFFFEFCF975F371F00000017
+2747679FCFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFF26F3FEE0017EE578FF3EFFFFF
+FFFFFFFFFFFFEFB7671F1F67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D4DF20000EE0000EE0000EE0000EE
+0000EE0000EE0000EEB1B1F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F00001F4787BFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A7875F375FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FF975FFF1F00FF1727FF8FC7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7EFFFFFEFC787373787CFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF873F3F271700004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F47FF0000FF0000FF0000FF
+0000FF8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47006FBFF7FFFFFFFFFFFFF7BF6F005FAF
+EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BFFF5FA7FFF7FFFFFFDFFF
+5717FF0000FF1787FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF57004FA7E7FFFFFFFFFFFFFFFFE7A7
+4F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFF
+FFFFFFC777FF0000FF4FA7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000077C7FFFFFFFFFFFFFFFF
+FFF7BF6F001787CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787FF0000FF9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFF
+FFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF8F2FFF3787FFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFF
+FFFFFFFFFFFFFFE7A74F002F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7BFFF1737FFCFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0057
+AFE7FFFFFFFFFFFFFFFFDFA74F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFFF673FFFB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+9F47006FBFF7FFFFFFFFFFFFEFB767005FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFA75FFFA7DFFFFFFFFFFFFFFFE7AFFFBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C7772F4F97D7F7FFFFEFC787373787CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787FF0000FF0000FF0000FF0000FF004FFFDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFAF6F3F17001727578FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA7FF1700FF0000FF0000FF0000FF0000FF2F8FFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6E6E6DFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDEDEDEDFDFDF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF
+DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF
+EEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E9E9E808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080969696
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080BEBEBEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/doc/src/cpsa4manual/ns_search_tree.pdf b/doc/src/cpsa4manual/ns_search_tree.pdf
new file mode 100644
Binary files /dev/null and b/doc/src/cpsa4manual/ns_search_tree.pdf differ
diff --git a/doc/src/cpsa4manual/ns_skel0.eps b/doc/src/cpsa4manual/ns_skel0.eps
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/ns_skel0.eps
@@ -0,0 +1,22176 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (/srv/www/vhosts/releases/18/save/queued/0/4/d/04da90ee70928b012cdd7d66f350af2a/intermediate1/o_fc155201a063ee5e.eps)
+%%CreationDate: (2015-07-14T15:11:31+02:00)
+%%BoundingBox: -0 -0 323 497
+%%HiResBoundingBox: 0 0 322.534 497
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image.  The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+  %
+  % Get a DirectClass packet.
+  %
+  % Parameters:
+  %   red.
+  %   green.
+  %   blue.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+  %
+  % Display a DirectClass image.
+  %
+  systemdict /colorimage known
+  {
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { DirectClassPacket } false 3 colorimage
+  }
+  {
+    %
+    % No colorimage operator;  convert to grayscale.
+    %
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { GrayDirectClassPacket } image
+  } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+  %
+  % Get a DirectClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   red
+  %   green
+  %   blue
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+  %
+  % Display a PseudoClass image.
+  %
+  % Parameters:
+  %   class: 0-PseudoClass or 1-Grayscale.
+  %
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  class 0 gt
+  {
+    currentfile buffer readline pop
+    token pop /depth exch def pop
+    /grays columns 8 add depth sub depth mul 8 idiv string def
+    columns rows depth
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { currentfile grays readhexstring pop } image
+  }
+  {
+    %
+    % Parameters:
+    %   colors: number of colors in the colormap.
+    %   colormap: red, green, blue color packets.
+    %
+    currentfile buffer readline pop
+    token pop /colors exch def pop
+    /colors colors 3 mul def
+    /colormap colors string def
+    currentfile colormap readhexstring pop pop
+    systemdict /colorimage known
+    {
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { PseudoClassPacket } false 3 colorimage
+    }
+    {
+      %
+      % No colorimage operator;  convert to grayscale.
+      %
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { GrayPseudoClassPacket } image
+    } ifelse
+  } ifelse
+} bind def
+
+/DisplayImage
+{
+  %
+  % Display a DirectClass or PseudoClass image.
+  %
+  % Parameters:
+  %   x & y translation.
+  %   x & y scale.
+  %   label pointsize.
+  %   image label.
+  %   image columns & rows.
+  %   class: 0-DirectClass or 1-PseudoClass.
+  %   compression: 0-none or 1-RunlengthEncoded.
+  %   hex color packets.
+  %
+  gsave
+  /buffer 512 string def
+  /byte 1 string def
+  /color_packet 3 string def
+  /pixels 768 string def
+
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  x y translate
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  currentfile buffer readline pop
+  token pop /pointsize exch def pop
+  /Times-Roman findfont pointsize scalefont setfont
+  x y scale
+  currentfile buffer readline pop
+  token pop /columns exch def
+  token pop /rows exch def pop
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  currentfile buffer readline pop
+  token pop /compression exch def pop
+  class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+  grestore
+} bind def
+%%EndProlog
+%%Page:  1 1
+%%PageBoundingBox: 0 0 323 497
+userdict begin
+DisplayImage
+0 0
+322.534 496.552
+12
+430 662
+0
+0
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFF26F47EE0000EE4787F3EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFB78F5F3F27170000001F476FA7
+D7EFEFB7778FCFFFFFFFEFCFAF874F1F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+673767B7EFFFFFFFFFFFEFCFAF874F5FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7C79F6F
+475FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E5
+D4B0A87F4C9DB9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76700005FAFE7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7F48737EE87C7F9FFFFF9C787EE3787F4F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76737003767A7CFEFF7FFFFFFFF
+F7E7BF874717000087C7FFEFB76F1F1F00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7AF5F1F1700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F
+1F1700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+C993926A3D8B551A99B9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000
+87C7FFFFFFFFFFFFFFFFFFF7BF6F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9FEE006FF3F7FFFFFFFFFFFFF7F36F00EFAFEFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4700004FA7DFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C7772F87C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE2B66A1A99B9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87000087C7FFFFFFFFFFFFFFEFC787370087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8AF57EE4FA7F7FFFFFFFFFFFFFFFFF7A74FEE67B7F9
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7871700006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F77A7E7FFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE9BA7A1A99B9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787000087C7FFFFFFFFDFAF5F3700000000000000000087C7FFFFFFFFEFC78F5727170000
+1727578FC7EFFFFFFFFFEFCFAF87572787C7EFCF97572717001F4F97CFF7F7D7A76F471F001727
+5FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48700EE77C7FCFFFFFFFFFFFFFFFFFABF6FEE
+1787F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F00004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7EFCF974F1F00001F47
+8FC7F7FFFFFFFFFFF7E7BF975F3F87C7FFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFDF
+AF6F472717001F5FAFC7A74F004FA7E7FFFFFFFFFFEFB7671F1F67B7EFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE9BA7A1A99B9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFF7CF876797CFEFFF
+FFFFFFEFC78F3F00479FDFEFB76717170000004F8FC7E7F7FFFFEFB76F1700476FA7C7E7FFFFFF
+EFB76700006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48700EE87C7FFFFFFFFFFFFFFFFFFFF
+C787EE0087F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00004F87BFDFF7FFFFEF
+B76F170067B7EFFFFFFFC78F1F1F00000087C7FFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFF7
+BF6F173787BFEFFFFFFFEFC79F5F3F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9BA7A1A99B9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFEFB767000000
+0000000000000000000000004FA7E7FFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFF
+FFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48700EE87C7FFFFFFFFFFFFFF
+FFFFF7A74FEE2F8FF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F004FA7E7FFFFFF
+FFDF9F47006FBFF7FFFFFFFFFFFFFFCF8F2F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9BA7A1A99B9E9FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7
+E7FFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A74FEE57AFF8FFFFFF
+FFFFFFFFFFF7A74FEE67B7F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B76700001777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F004FA7E7
+FFFFFFEFB767000087C7FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9BA7A1A99B9E9FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFF
+EFB76700479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9FEE006FF3
+F7FFFFFFFFFFFFEFF26700EFAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7CF873700004FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA787AFE7FFFFFFE7A74F00
+0087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F00
+4FA7E7FFFFFFFFC77700005FAFEFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9BA7A1A99B9E9FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767000067B7EFFFFFFFFFFFFFFFC777000077C7FFDF
+AFAFCFFFF7BF6F17174787BFE7FFFFFFFFFFFFDF9F97BFF7FFFFDF9F4F000077BFFFFFFFFFFFFF
+D7973F003F97D7FFFFFFFFFFFFBF7700004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F3
+772FEF97D7FAFFFFF9C787EE3787F4F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7CF8F4717001F5F97C7DFF7FFFFFFFFFFF7EFCFA76F6FA7DFFFFFFFFFFFDF
+9F4F000077BFFFFFFFFFFFFFD7973F003F97D7FFFFFFFFFFF7B76700005FAFEFFFFFFFFFFFFFD7
+973F002F8FCFFFFFFFFFF7C7872F003767AFDFF7FFFFEFC79F5F3F0000171F5FAFE7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4AF5F1A95B4E2FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000004FA7E7FFFFFFE7AF5F2717
+173F87C7F7FFFFFFFFFFDFAF6F4727170000001F375F87BFDFFFE7A74F000000000000000087C7
+E7A74F000000000000000087C7C78700000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFF26F3FEE0017EE578FF3EFFFFFFFFFFFFFFFEFB7671F0027579FCFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7BF97674F371F000000001727476FA7D7EFFFFFFFFFFFE7
+A74F000000000000000087C7E7A74F000000000000000087C7C78700000000000000004FA7E7E7
+A74F000000000000000087C7FFFFFFFFDFB76F471F00001F478FC7D7A75F476F9FC7E7FFFFFFFF
+EFB7671F1F67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4938B551A8B551A8B551A8B
+7AB0E9FFFFFFFFFFFFEFB7671F1F67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B7A7B7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF5151F20000EE0000EE0000EE0000EE0000EE0000EE0000EEADADF9EFD7B7AFB7D7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C64B0551A8B551A8B551A8B
+551A8B551A8B551A8B551A8BC6B3D8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFB76F471F00001F4787BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7C787373787C7EFFFFFEFC787373787CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F47006FBFF7FFFFFFFFFFFFF7BF6F005FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7AF57004FA7E7FFFFFFFFFFFFFFFFE7A74F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCFAF87572787C7
+EFCF97572717001F478FC7F7FFFFFFFFFFFFDFAF5F2717173F87C7D7A787A7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787000077C7FFFFFFFFFFFFFFFFFFF7BF6F001787CFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76717170000
+004F87BFDFF7FFFFF7BF6F170057AFE7FFFFFFEFB7673F97D7FFFFFFFFEFBF7767A7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFE7AF57174787B7D7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFE7A74F002F8FCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFF7CF974F1F0000001727578FC7
+EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0057AFE7FFFFFFFFFFFFFFFFDFA74F0067B7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFF7E7C7A787
+4F1F003797D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47006FBFF7FFFFFFFFFFFFEFB767005FAF
+EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F4F000077BFFFFFFFFFFFFFD7973F003F97D7FFFFFFE7A7676FB7E7F7FF
+FFFFFFD7973F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4F97D7F7FFFFEFC7873737
+87CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F000000000000000087C7E7A74F000000000000000087C7E7A78FAFDF
+CF974F1F0017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF6F3F1700172757
+8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7673767B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7673767B7EFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF6F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFC787370087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7BF97
+5F3F87C7FFFFFFEFCFAF87572787C7EFCF97572717001F478FC7F7FFFFFFFFFFF7E7BF975F3F87
+C7FFDFAF5F3700000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78F
+1F1F00000087C7FFEFB76717170000004F87BFDFF7FFFFF7BF6F170057AFE7FFFFFFC78F1F1F00
+000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFF
+FFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFF
+FFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7
+E7FFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7B76700005FAFEFFFFFFFDF9F4F000077BFFFFFFFFFFFFFD7973F
+003F97D7FFFFFFFFFFF7B76700005FAFEFFFFFFFFFC777000077C7FFDFAFAFCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000000476D48000000000000000087C7E7A74F
+000000000000000087C7C78700000000000000004FA7E7FFE7AF5F2717173F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCFCFCFA0A0A0707070505050808080C0C0C0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFEFEF505050000000000000000000000000000000000000101010AFAFAFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFBFBFBF101010000000000000000000000000000000000000000000000000000000505050
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFEFEF101010000000000000000000000000000000000000000000000000000000000000
+0000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF4F4F4F000000000000000000000000000000000000000000000000000000000000
+000000000000000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCFCFCF000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000003F3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9F9F000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000101010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF6F6F6F000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000002F2F2FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF0F0F0F000000000000000000
+0000000000000000000000000000000000000000000000000000000000006F6F6FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000000000
+0000000000000000000000000000000000000000000000000000000000001F1F1FEFEFEFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F
+000000000000000000000000000000000000000000000000000000000000000000BFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF7F7F7F0000000000000000000000000000000000000000000000001F1F1FBFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFBFBFBF3F3F3F0F0F0F0000000000000000001F1F1F6F6F6FEFEFEFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3C3C3606060FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFFA0A0
+F16262D72828FF8080FFB0B0FFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF5050FF0000
+FF0000FF0000FF0000FF0000FF0000FF1010FFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFF1010FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF5050FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF1010FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF7F7FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFCFCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF1010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FF6F6FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFF4F4FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFBFBFFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF0F0FFF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFFF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF1F1FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF1F1FFFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCF
+FF3F3FFF0F0FFF0000FF0000FF0000FF2F2FFF6F6FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE3C3C3A06060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF909090626262202020808080B0B0B0
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF505050000000000000000000000000000000
+0000001010109F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF101010000000000000000000000000000000
+000000000000000000000000505050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF101010000000000000000000000000000000
+0000000000000000000000000000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000
+000000000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000003F3F3FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000101010FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6F000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000002F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFEF0F0F0F000000000000000000000000000000000000000000000000000000000000000000
+0000000000006F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFAFAFAF000000000000000000000000000000000000000000000000000000000000
+0000000000001F1F1FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000000000000000000000
+000000000000000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000000000000000000000000000000000
+0000000000002F2F2FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF4F4F4F0F0F0F000000000000
+0000002F2F2F6F6F6FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFAF6F471F000000
+00004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000
+00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F2F77BFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F57271700
+0000171717004FA7E7FFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFC7870000000000
+0000000000000000000087C7FFFFFFFFFFF7CF975F371F0000000000004FA7E7FFFFFFFFFFFFC7
+87004FA7E7FFFFFFF7CF8F47275F9FD7F7FFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFEFC78F57271700001727476FB7
+DFFFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFFFFEFC78F5727170000001F
+375F97CFF7FFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFDFB7
+6F47271700000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F373787BF
+EFFFFFFFFFFFBF77004FA7E7FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7DFEFBF773F3F87C7EFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F4747
+9FDFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEF
+C78F47479FDFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFCF8F372F6FB7E7FFFF
+FFFFEFD7974F1767B7EFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFF
+C7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F4F
+A7DFFFFFFFFFFFFFFFC787004FA7E7FFFFE7A74F000000000000000000000000000087C7FFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFD79F471F3F5F8FA7BFD7EFF7FFFFFFFF
+FFFFFFFFFFC787003747471F378FCFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000
+00000087C7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFE7A74F00000000000000
+0000000000000087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFF
+FFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FF
+FFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7BFA78F5F3F1F3F
+8FCFF7FFFFFFFFFFC787004FA7D7C787373787C7F7FFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFE7A74F3F9FDFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F
+9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB767004F9FDFFFFFFFDFAF673F17174FA7E7FFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+CF8F374FA7E7FFFFFFFFFFC787004FA7E7FFFFDFA7571F57A7DFFFFFFFFFFFFFCF8F2F2F67AFDF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFCF8F2F
+2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFF
+CF8F2F3777B7E7FFFFFFFFEFBF87371777BFF7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFB76F3F1700001F4787BFCFA74F4FA7E7FFFFFFFFF7D7A76F47271700000000
+00000087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFC787000000000000
+001727476FA7D7F7FFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757A7DFFFFFFFFFF7D7A7
+6F4727170000000000000087C7FFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFF
+FFF7D7A76F4727170000000000000087C7FFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7
+FFFFFFFFF7D7A76F47271700001727476FA7D7F7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFC787004FA7E7FFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA757
+1F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F000087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFCF973F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA757
+1F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777
+000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF6F6FAFDFF7FFFFFFDF9F4F00479FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C777
+2F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFDF
+9F471787C7FFFFFFFFFFFFFFFFE7A74F1777BFF7FFFFFFC7870000000000000017275797CFF7FF
+FFFFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFFFFDFB76F4727170000000000
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFF
+FFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F0087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000000
+4FA7E7FFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFDFA7571F57AFE7FFFFFFFFFF
+DFA7571F57A7DFFFFFC78700000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFF
+DF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F47
+8FC7F7FFFFFFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFE7A74F4F97A7873F171757
+A7C7AF5F1F001F6FB7EFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFEFAF5F1787C7FFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F
+3F9FDFFFFFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFFFC7870067AFEFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFF
+FFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F1777BF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFEFB7671F57A7DF
+FFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F
+1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFF
+F7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFE7A74F001767AFE7
+C7870000378FCFDFA74F0087C7FFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFF7BF771F77BFF7FFFFFFDF9F47479FDFFFFFFFFFFFFFDFB76F47271700000000
+0000000087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F
+6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFEFC787373787
+C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFFFFFF7C7
+873F3F3F3F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F0000000000000000
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFF7CF975F371F00000000000000004FA7E7FFFFE7A74F0077
+C7FFFFC787004FA7DFFFE7A74F0087C7FFE7A74F000000000000000000000000000087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F3777BFF7FFDF9F475FAFEFFFFFFFFFFFDF9F47004F9FDFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFEFBF77373777
+BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7874F676F573F87CFF7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFE7A74F0087C7FFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFE7A7
+4F0087C7FFFFC787004FA7E7FFE7A74F0087C7FFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F476FBFD79F578FCFFFFFFFFFFFFFFFCF8F2F0067B7
+F7FFFFF7E7B7773F170087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFDFAF5F273F87
+C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA7573777C7F7FFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFDF9F3F2F77BFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFF
+EFCF9F5F1F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BF
+F7FFFFFFFFE7B76F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FF
+FFE7A74F0087C7FFFFC787004FA7E7FFE7A74F0087C7FFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F4F679FDFFFFFFFFFFFFFFFFFFFE7B7
+6F471F000017275787B79F770087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+C787004FA7E7FFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFC7870000
+0000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFF7D7A76F4727170000000000000087C7FF
+FFFFF7C787372F77C7F7FFFFFFFFFFDFA74F1757A7DFFFFFFFFFFFFFFFFFF7CF97572717000000
+000087C7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7CF97572717
+00001F47679FAF974F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F
+5F371F000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFF7CF9757271700001F47679FAF974F4F
+A7E7FFFFE7A74F0087C7FFFFC787004FA7E7FFE7A74F0087C7FFFFFFF7D7A76F47271700000000
+00000087C7FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7DFAF6F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F
+5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFF
+FFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F00000000000017275787BFDFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A787572717004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFD7B79767471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F57
+2717000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFF
+FFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D797471787CFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+5F8FC7EFFFFFFFEFBF772F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5F8FC7EFFFFFFFEFBF772F1777BF
+F7FFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFF7D7A76F471F0000001F
+375F97CFF7FFFFFFFFC78700000000000000000000000000000087C7FFFFFFFFFFFFDFB76F4727
+1700000000000087C7FFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFFFFC787
+0077AFC78F57271700001F478FC7F7FFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFFF
+E7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFF7D7A76F471F000000001717170087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FF
+FFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFC787000000000000
+0087C7FFFFFFFFFFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF873F57AFE7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFF
+FFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF975727170000
+1F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000
+000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C7870000000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFF
+FFFFFFFFFFFFC7870077A7BF8F5727170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFF7BF773F87BFEFFFFF
+FFFFF7E7AF671F77BFF7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC78700
+67AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7
+FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000027579FCFEFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFF
+FFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFFE7A74F004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEF
+FFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+C7772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFF
+FFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFC78700000000
+000000000000000000004FA7E7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+EFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F0000000000000000
+4FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFEFB7670077C7FFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFA75717479F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+DFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFB76F472717000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFF
+FFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFF
+C787004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFE7A74F0087C7FFFFFFFF
+FFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFF7D79F571F579FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFF7
+D79F571F579FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFF
+FFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFF
+EFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFF
+EFCF9F5F1F004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFCF8F2F2F77BF
+EFFFFFEFCF8F4F1F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+CF9F571F67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F
+9FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFC787004FA7E7FFFFFFFFF7C7873F275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFF7
+C7873F275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F000017275F9FD7B7870087C7
+FFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFDFB76F471F
+00000000004FA7E7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF97572717
+00001F47679FAF974F4FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFF7CF
+974F1F000017275F9FD7B7870087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0000000000000000000000000087C7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004F
+A7E7FFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFFFFFFFFFDFB76F471F0000
+0000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000
+001F375F87B7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFF
+E7A74F0000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFC7870000000000000000000000
+00004FA7E7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFF
+FFE7A74F000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFFFFFFF
+FFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFDFAF674727170000001727476FA7D7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F000000001F375F8F
+C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77
+1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7
+EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F
+1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFEFC78F57
+27170000001F375F97CFF7FFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001727476FB7DFFFFFFF
+FFFFFFFFC7870077AFC78F57271700001F478FC7F7FFFFFFFFC7870000000000000087C7FFFFFF
+FFFFFFFFFFFFFFFFEFC78F5727170000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFC7870077AFBF87
+4727170017275797CFF7FFFFFFFFFFC7870077AFC78F57271700001F478FC7F7FFFFFFFFFFC787
+0000000000000087C7FFFFFFFFFFFFFFF7BF77174FA7E7FFFFFFFFFFFFFFFFC78717479FDFFFFF
+FFC787004FA7E7FFFFFFF7CF8F47275F9FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAF
+EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B79F67371F00001F476FB7DFFFFFFFFFFFE7A74F4F97
+B7A76F471F000017275FAFDFFFFFFFFFFFE7A74F0000000000004FA7E7FFFFFFFFFFFFFFDF9F47
+1787C7FFFFFFFFFFFFFFFFE7A74F1777BFF7FFFFE7A74F0087C7FFFFFFFFDFB7673F3F77BFEFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7BF8F5727170017275797
+CFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFCF8F37
+2F6FB7E7FFFFFFFFEFD7974F1767B7EFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767174F97D7EFFFFFFFFFE7B76F2F37
+97D7FFFFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC7870000
+3767AFDFF7FFFFEFBF772F479FDFFFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFFFFFF7BF77175FAFEF
+FFFFFFFFC787004FA7DFEFBF773F3F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFE7A7
+4F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFEFAF5F1787C7FFFFFFFFFFFFDF9F472F8FCFFFFFFFFFE7A74F0087C7F7D79F57275FA7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEF
+BF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFDF
+9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFC7870000000000000000004FA7E7FFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFF
+CF8F2F4FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFFFDF9F4F0067B7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFDF9F47479FDFFFFFFFF7BF771F77
+BFF7FFFFFFFFFFC787003747471F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFF7BF771F77BFF7FFFFFFDF9F47479FDFFFFFFFFFFFE7A74F003F47471767AFEFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFF
+FFFFFFCF8F2F4FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFDF9F4F2737271700001727578FC7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFEFAF5F479FDFFFF7BF77
+378FCFFFFFFFFFFFFFFFC787004FA7D7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7
+DFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFCF8F3777BFF7FFDF9F475FAFEFFFFFFFFFFFFFE7A74F0087BFDFA7571F
+57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFCF8F2F3777B7E7FFFFFFFFEFBF87371777BFF7FFFFFFE7A74F0087C7FFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F17579FD7EF
+FFFFFFF7DFA75717479FDFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFCF871767AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77479FCF
+BF7767AFEFFFFFFFFFFFFFFFFFC787004FA7E7FFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFFFFFFFFFFFE7B76F2F
+479FDFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFDF9F476FBFD79F578FCFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFF7C787373787C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFF7D7A76F47271700001727476FA7D7F7FFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F
+5F371F0000001F375F8FC7EFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0000000000000000000000000087C7FFFFFFFFD7973700000000000000000017275797CF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFF
+FFFFFFFFFFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFFFFFFFFFCF
+8F574F4F77BFF7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757A7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFF
+FFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F37
+5F8FC7EFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000
+00000000000000004FA7E7FFFFFFFFFFFFFFEFAF674F4F679FDFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFDFA757173787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFAF674727170000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77174FA7DFFFFFFFFFFFFFFFE7AF
+5F0057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479F
+DFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF57004F9FDFF7FFFFFFFFFF
+EFBF772F1787C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+C787373787C7F7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000
+000017275787AFD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F
+5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5F
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A787572717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+E7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFE7A74F0000000000004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFEFC78F5727170000001F373F375FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001727476FB7DFFFFFFFFFFFFFC7870077AFC78F57
+271700001F478FC7F7FFFFFFFFE7A74F0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFEFC78F57
+27170000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFCF8F373787BFEFFFFFFFFFFFBF77004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB767174F97D7EFFFFFFFFFE7B76F2F3797D7FFFFFFFFC787001747
+87BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFEFB767
+004F9FDFFFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFCF8F2F4FA7DFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFC787000000
+0000000000004FA7E7FFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFF
+EFB767004F9FDFFFFFFFFFDF9F4F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFE7A74F004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFF
+FFFFFFFFDF9F4F2737271700001727578FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFE7A74F00
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767005FAFE7FFFF
+F7DFA75717000087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFDFAF673700004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F17579FD7EFFFFFFFF7DFA75717479FDF
+FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFF
+FFFFFFFFFFFFCF871767AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFE7
+A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F
+00001727578FBFA7770087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFC7
+87000000000000000000000000004FA7E7FFFFFFFFDFB76F3F1700001F476FB7A777004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F0000001F375F8FC7
+EFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000
+000000004FA7E7FFFFFFD7973700000000000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F00
+00000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7BF77174FA7DFFFFFFFFFFFFFFFE7AF5F0057AFE7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF57004F9FDFF7FFFFFFFFFFEFBF772F1787C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000000017275787AFD7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8717004FA7E7
+FFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717
+000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7AF57000087C7FFE7A74F000087C7FFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+4FA7E7FFCF87170077C7FFFFFFFFFFFFE7A74F0000000000000000000000004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFF
+FFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF973F5FAFE7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFCF973F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787174F
+9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787000087C7FFE7AF57004FA7DFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F006FBFF7FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787003F9FDFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000000000
+4FA7E7FFFFFFFFFFEFC78F5727170000001F375F97CFF7FFFFFFFFC7870077A7AF5F1F003787BF
+BF873F17173F97D7FFE7A74F4F97A7873F171757A7C7AF5F1F001F6FB7EFFFFFFFFFEFC78F5727
+1700001727476FB7DFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFE7A74F0000
+0000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFC7870000000000000087C7FF
+FFFFFFFFFFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFFC787000000000000
+0087C7FFFFFFFFFFFFFFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFC78700000000
+000000000000000000000087C7FFFFFFFFFFEFC78F5727170000001F375F97CFF7FFFFFFFFFFFF
+C7870077AFC78F57271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC7870077AFBF874727170017275797CFF7FFFFFFFFFFFFEFC78F5727170000001F375F97
+CFF7FFFFFFFFFFE7A74F0000000000004FA7E7FFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700
+001F478FC7F7FFFFFFC78700000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001727476FB7DFFFFFFFE7A74F0000
+0000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+9F471787C7FFFFFFFFFFFFFFFFE7A74F1777BFF7FFFFFFE7A74F0000000000004FA7E7FFFFFFFF
+FFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFF
+FFDF9F3F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76717478FC7EFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F1767B7EFFFFFC7870000378FCFDFA7
+4F001767AFE7C787004FA7E7E7A74F001767AFE7C7870000378FCFDFA74F0087C7FFFFDF9F4F57
+A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F1767B7EFFF
+FFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFCF8F372F6FB7E7FFFFFFFFEF
+D7974F1767B7EFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFE7A74F0017478FCF
+EFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767174F97D7EFFFFFFFFFE7B76F2F3797D7FFFFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFAF5F1787C7FFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFDFA74F4FA7E7FFFFC787176F
+BFF7FFFFC7870087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7AF570077C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFC787004FA7DF
+FFE7A74F0077C7FFFFC787004FA7E7E7A74F0077C7FFFFC787004FA7DFFFE7A74F0087C7FFE7A7
+4F000000000000000000000000000087C7FFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB76700
+87C7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFDF9F3F3F9FDFFFFFFFFF
+FFFFFFFFEFB7670087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC7870000000000000000004FA7E7FFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7
+E7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00000000000000000087
+C7FFFFFFFFFFFFF7BF771F77BFF7FFFFFFDF9F47479FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFC78700000000000000000000000000004FA7E7FFF7BF6F1787CFFFDF9F
+8F67676FBFF7E7A74F4FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFC78700
+4FA7E7FFE7A74F0087C7FFFFC787004FA7E7E7A74F0087C7FFFFC787004FA7E7FFE7A74F0087C7
+FFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEF
+B7670087C7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFDF9F3F3F9FDFFF
+FFFFFFFFFFFFFFEFB7670087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F
+2F4FA7E7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F3777BFF7FFDF9F475FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F6FBF
+DFA787A7DFBF7787C7CF8F2F77C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F
+4717579FCFEFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFFFFFFEFBF87371777BFF7FFFF
+C787004FA7E7FFE7A74F0087C7FFFFC787004FA7E7E7A74F0087C7FFFFC787004FA7E7FFE7A74F
+0087C7FFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F17
+0087C7FFFFFFFFFFFFFFFFDF9F3F2F77BFEFFFFFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFFFFFF
+EFBF87371777BFF7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFCF8F2F
+3777B7E7FFFFFFFFEFBF87371777BFF7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F2F77BFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F17579FD7EFFFFFFFF7DF
+A75717479FDFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F476FBFD79F578FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+6F3F7777779FDFFFEFB76F6F6F5F4FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFC78F5F371F0000000000004FA7E7FFFFFFFFF7D7A76F47271700001727476FA7D7F7FF
+FFFFFFC787004FA7E7FFE7A74F0087C7FFFFC787004FA7E7E7A74F0087C7FFFFC787004FA7E7FF
+E7A74F0087C7FFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0000000000000000000000004FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FF
+FFFFE7A74F0000000000000000000000000087C7FFFFFFFFFFFFFFFFFFDFB76F471F0000000000
+4FA7E7FFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFE7B76F471F000017275787
+B79F770087C7FFFFFFFFFFFFFFFFFFF7CF97572717000000000087C7FFFFFFFFF7D7A76F472717
+00001727476FA7D7F7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFFF
+FFF7D7A76F47271700001727476FA7D7F7FFFFFFFFFFC787000000000000000000000000004FA7
+E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFF7CF97572717000000
+000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F0000
+001F375F8FC7EFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F4F679FDFFFFFFFFFFFFFFFFFFFFFC7
+87000000000000000000000000004FA7E7FFFFFFFFEFC78F5F371F000000000000004FA7E7FFFF
+FFFFCF8F2F002F8FCFFFFFFFE7A74F00006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787
+578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFCF973F5FAFE7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFC7870000000000000000
+0000000000000087C7FFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFFFFC78700
+00000000000017275797CFF7FFFFFFFFFFFFFFFFEFC78F5F371F00000000000087C7FFFFFFFFFF
+FFEFC78F57271700001727476FB7DFFFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFCF8F372F67AFDFF7FFFFFFFFFFFFFFFFFFFF
+FFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFB76F472717000000000000000087C7FFFFFFFFCF87174FA7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFEFBF6F371F4F6F9FAFCFDF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFC787004FA7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF
+9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDF9F3F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFF7BF77173777B7E7F7FF
+FFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7CF97572717000000000087C7FFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFFFF7D7A76F47
+271700000000000087C7FFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFE7A74F
+000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5F
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78737
+3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7AF6F6FAFDFF7FFFFFFDF9F4F00479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F47271700000000000087C7
+FFFFFFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFFFC7870077A7B76F471F000017
+275FAFDFFFFFFFFFFFFFFFEFC78F572717000000171717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A7
+6F471F0000001F375F97CFF7FFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFF
+FFFFEFC78F5F371F00000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000
+17275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F
+479FDFFFFFFFFFFFFFFFFFFFFFFFFFC7870077AFBF874727170017275797CFF7FFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFF
+FFFFC787004FA7E7FFFFFFF7CF8F47275F9FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC7870077A7BF8F5727170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77175F
+AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671777BFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFF
+FFEFC78F57271700001727476FB7DFFFFFFFFFFFFFFFFFFFEFC78F5F371F00000000000087C7FF
+FFF7BF77174FA7E7FFFFFFFFFFFFFFFFC78717479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F000000
+1F375F97CFF7FFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFEFC78F5F
+371F00000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+77A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC7870077AFBF874727
+170017275797CFF7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7A74F4F97
+B7A76F471F00001F476FB7DFFFFFFFFFFFC787004FA7E7FFFFFFF7CF8F47275F9FD7F7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F476FB7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFC78700003767AFDFFF
+FFFFDFA74F006FBFF7FFFFFFCF8F373787BFEFFFFFFFFFFFBF77004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF
+773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FF
+FFFFFFCF8F372F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFFC787000087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BF
+F7FFFFFFFFC787004FA7DFEFBF773F3F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7
+BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FF
+FFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFCF8F372F67AFDFF7FFFFFFFFFFFF
+FFFFFFFFFFFFCF8F2F4FA7E7FFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF773F87BFEFFF
+FFFFFFF7E7AF671F77BFF7FFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFCF8F37
+2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C777
+2F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767
+AFDFF7FFFFEFBF772F479FDFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7A7
+4F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFC787004FA7DFEFBF773F3F87C7EFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAF
+CFDFF7FFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFC787004FA7E7
+FFFFFFFFFFFFC787004FA7E7FFFFCF8F2F4FA7DFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC78700000000000000000000000000004FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004F
+A7E7FFFFFFCF87174FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFC787
+000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F
+472717000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBF
+F7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA7
+4F3F9FDFFFFFFFFFC787003747471F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFCF87174FA7DFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDF9F47479FDFFFFFFFF7BF771F77BFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000
+00000000000000000000004FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFCF
+87174FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFEFC787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFC787003747471F378FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F000000000000
+00004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7
+CFAF9F6F4F1F1F5FAFE7FFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFC787004FA7E7FFFFC787004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC7
+87004FA7E7FFFFFFC787004FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F
+47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F
+0077C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFDF9F3F4FA7DFFFFFFFFFC787004FA7D7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F479FDFFFF7BF77378FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FF
+FFFFC787004FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFC787000087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFEFBF77373777BFEFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFC787004FA7D7C787373787C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFAF670087C7FFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFEFB767004F9FDFFFFFFFDFAF673F17174FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFF
+FFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFC787004FA7E7FFFFFFF7BF77173777B7E7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7
+974F1777BFF7FFFFFFEFB767005FAFE7FFFFF7DFA75717000087C7FFFFFFE7A74F0077BFF7FFFF
+FFFFE7B76F2F479FDFFFFFFFFFFFC787004FA7E7FFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77173777
+B7E7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77479FCFBF7767AFEFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFF
+FFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004F
+A7E7FFFFFFF7BF77173777B7E7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFC787
+000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFDFAF5F273F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFEFB767005FAFE7FFFFF7DFA7571700
+0087C7FFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFC787004FA7E7FFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FF
+FFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFE7
+A74F000000000000001F375F8FC7EFFFFFFFFFFFFFF7D7A76F4727170000000000000087C7FFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFDFB76F3F1700001F4787BFCFA74F
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFC787004FA7E7FF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFF7D7A76F47271700000000000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFF
+FFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000
+1727476FA7D7F7FFFFFFFFFFFFF7CF974F1F00001727578FBFA7770087C7FFFFFFEFC78F5F371F
+000000001F375F8FC7EFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF674727170000001727476FA7D7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFFFFFF7
+D7A76F47271700000000000087C7FFFFFFFFFFFFFFFFFFCF8F574F4F77BFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFF7D7A76F47271700000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFC787000000
+000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFC78700000000000000000000000000004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFF
+FFFFFFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFFFFFF7CF974F1F00001727578F
+BFA7770087C7FFFFFFFFEFC78F5F371F000000001F375F8FC7EFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFF7C787371757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757
+271700001F47679FAF974F4FA7E7FFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37
+479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87
+C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873737
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67
+AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675F
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C787578FCFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFCF8F5F8FC7EFFFFFFFEFBF772F1777BFF7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFFFFFFFFFEFC78F57
+271700001727476FB7DFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFF7
+D7A76F471F000000001717170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F57271700001727476FB7DF
+FFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFEFC78F5F371F000000
+00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF975727
+1700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC7
+870077AFBF874727170017275797CFF7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7
+FFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFC787004FA7E7FFFFFFF7CF8F4727
+5F9FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F471F00
+001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F
+9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F
+57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFF
+EFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC7
+8F47479FDFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFCF8F372F67AFDFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F001747
+8FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F479FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFF
+FFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC78700
+4FA7E7FFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFC787004FA7DFEFBF773F3F
+87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7
+EFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFE7
+A74F000000000000000000000000000087C7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7
+FFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000
+00000000000087C7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFCF87174FA7DF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFC787004FA7E7FFFFFFFFFFFF
+C787004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFC787003747471F37
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFF
+FFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC78700
+4FA7E7FFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFC78700
+4FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFF7D79F571F579FD7F7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFC787004FA7E7FFFFFF
+FFFFFFC787004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFC787004FA7
+D7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087
+C7FFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+C787004FA7E7FFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F
+67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFF
+F7BF77173777B7E7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFF7C7873F275FA7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFFFCF8F2F2F87CF
+FFFFFFEFBF873700004FA7E7FFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFC787
+004FA7E7FFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F
+8FC7EFFFFFFFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFC787004FA7E7FFFFFF
+FFFFFFC787004FA7E7FFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFF
+F7D7A76F4727170000000000000087C7FFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFF7D7A76F47271700000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7A74F0000000000000000
+00000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F
+479FDFFFFFFFFFFFFFFFFFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFFFFFFFDFB7
+6F3F1700001F476FA7B7974F4FA7E7FFFFFFEFC78F5F371F000000001F375F8FC7EFFFFFFFFFFF
+FFC787004FA7E7FFFFFFFFF7C787371757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFC78F5F371F000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7
+EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA757
+3F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67
+AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFF
+FFE7A74F0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFF
+FFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFF
+FFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFC7870000000000
+000017275797CFF7FFFFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFFFFEFC7
+8F57271700001727476FB7DFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC7873F170057AF
+E7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFD7973F3F9FDFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFDF
+9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB797
+4F2F8FCFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFDF
+B76F472717000000000000000087C7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFF
+FFE7A74F000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670077AFBF77474787C7EFFF
+FFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFF
+DF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4F
+A7DFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFF
+FFFFFFFFC7871767B7EFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFF
+FFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F
+2F479FDFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7
+EFFFFFFFEFD7974F1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000
+004FA7E7FFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFEFC78F5F371F000000001F
+375F8FC7EFFFFFFFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFE7A74F00000000
+00000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+B76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+0000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFEFC78F57
+2717000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+D7B79767471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFDF9F47
+2F6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFAF674F87AFD7B777000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F
+4F97AF9757271700001F478FC7F7FFFFFFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFF
+FFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFFFE7A74F000000000000001F476FB7DF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC7870000000000000087C7
+FFFFFFFFFFFFFFFFFFFFC78700000000000000000000001767B7EFFFFFFFFFFFF7D7A76F471F00
+00001F375F97CFF7FFFFFFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFCF
+8F2F3F9FDFFFFFFFFFFFEFC7873F170057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+E7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F00
+87C7FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+67006FBFF7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA76F87C7F7FFFFFFFFFFF7BF773F87BF
+EFFFFFFFFFF7E7AF671F77BFF7FFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFF
+FFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F
+3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFF7CF975F371F000000
+00000000004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78767A7DFFFFFFFFFFFFFFFFFC78700
+000000000000000000000000004FA7E7FFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFF
+FFFFFFFFEFB7670077AFBF77474787C7EFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA75F5FA7DFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767005FAFE7FFFFF7DFA7
+5717000087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFEFB767003F
+97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFDFA76F87C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F
+170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFFFFEFD7974F1767B7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F000017
+27578FBFA7770087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFF7
+CF9757271700001F47679FAF974F4FA7E7FFFFFFFFE7A74F0000000000000000000000000087C7
+FFFFFFE7A74F0000000000000000000000000087C7FFFFFFF7CF87370000000000000000000000
+0087C7FFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFF7CF974F1F000017275F
+9FD7B7870087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F
+479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F
+000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFF
+FFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AF
+D7B777000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F3767B7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F37
+67B7EFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5727170000001F375F97CFF7FF
+FFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFFE7A74F0000000000004FA7E7FF
+FFFFFFFFFFFFFFFFFFF7D7A76F471F0000000000000000000087C7FFFFFFFFDFB76F4727170000
+0000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFF
+FFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC7873F1700
+57AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC7
+873F170057AFE7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F
+1767B7EFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFFFEFBF772F479FDFFFFFFFFFFFC7870067AFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFF
+FFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F375F9F
+B7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F
+5F375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFF
+FFEFB7670087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFFFEFBF772F2F8FCFFFFFFFFFFFEFBF6F
+371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFEFB7670077AFBF77474787C7
+EFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670077AFBF77
+474787C7EFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFF
+FFFFFFFFEFB7670087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFF7BF773737371F0000001F476FA7D7F7FFFFFFFFFFFF
+FFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DF
+FFFFFFFFFFFFC7871767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF871700
+1F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3777B7
+E7FFFFFFFFEFBF87371777BFF7FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFE7AF57378FCFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F374F
+97D7EFFFFFFFEFD7974F1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F374F97D7EFFFFFFFEFD7974F1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7D7
+A76F47271700001727476FA7D7F7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787000000000000000000000000004FA7E7FFFFFFEFB767000000000000000000001F476F
+B7DFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F77C7F7FFFFFFFFFFFFFF
+CF872F1787CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7
+772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF87172F77BFEFFFFFFFFF
+FFF7DF9F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F00
+000000001F476797C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78757
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F57
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF871700
+4FA7E7FFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF57000087
+C7FFE7A74F000087C7FFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F
+378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F004FA7E7FFCF87170077C7FFFFFFFFFFFFFFFFEFD7B79767471F000087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFD7B79767471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF973F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+000087C7FFE7AF57004FA7DFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F006FBFF7FFE7A74F0087C7FFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787003F9FDFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000
+0000004FA7E7FFFFFFFFFFEFC78F5727170000001F375F97CFF7FFFFFFFFC7870077A7AF5F1F00
+3787BFBF873F17173F97D7FFE7A74F4F97A7873F171757A7C7AF5F1F001F6FB7EFFFFFFFFFEFC7
+8F57271700001727476FB7DFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFE7A7
+4F00000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000
+87C7FFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F47271700000000004FA7E7FFFFFFFFFFFF
+EFC78F5727170000001F375F97CFF7FFFFFFFFE7A74F2F77A7A76F3F1700001F478FC7F7FFFFFF
+FFFFFFF7D7A76F471F0000001727476FB7DFFFFFFFFFFFFFC7870077AFC78F57271700001F478F
+C7F7FFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFF
+FFF7D7A76F471F0000001727476FB7DFFFFFFFFFC78700000000000000000000000000000087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F471787C7FFFFFFFFFFFFFFFFCF
+8F2F2F8FCFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFE7A74F000000000000000000
+00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F47
+271700000000000087C7FFFFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFFFFFF7
+D7A76F471F0000001F375F97CFF7FFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76717478FC7EF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F1767B7EFFFFFC7870000378F
+CFDFA74F001767AFE7C787004FA7E7E7A74F001767AFE7C7870000378FCFDFA74F0087C7FFFFDF
+9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76717478FC7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F372F6FB7E7FFFFFFFFEFD7974F1767B7EFFFFFE7A74F00173F87C7EFFFFFF7C7772F3F9F
+DFFFFFFFEFB767174F97D7EFFFFFFFFFE7B76F2F3797D7FFFFFFFFC78700174787BFE7F7FFFFFF
+CF872F4FA7E7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7
+FFFFEFB767174F97D7EFFFFFFFFFE7B76F2F3797D7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F1777BFF7FFFFFFFF
+FFCF8F2F4FA7E7FFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+0067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFF
+F7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067
+B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7AF570077C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFC78700
+4FA7DFFFE7A74F0077C7FFFFC787004FA7E7E7A74F0077C7FFFFC787004FA7DFFFE7A74F0087C7
+FFE7A74F000000000000000000000000000087C7FFFFFFFFC787004FA7E7FFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF570077C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFFE7A7
+4F0087C7FFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00000000000000000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC78700
+4FA7E7FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFFFFFFFC787004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771F77BFF7
+FFFFFFC7871F77BFF7FFFFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFC78700000000000000000000000000004FA7
+E7FFFFC78700000000000000000000000000004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFF
+C787004FA7E7FFE7A74F0087C7FFFFC787004FA7E7E7A74F0087C7FFFFC787004FA7E7FFE7A74F
+0087C7FFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFF
+FFE7A74F0087C7FFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+C787004FA7E7FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F67B7EFF7BF77378FCFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDF9F4717579FCFEFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFFFFFFEFBF87371777BF
+F7FFFFC787004FA7E7FFE7A74F0087C7FFFFC787004FA7E7E7A74F0087C7FFFFC787004FA7E7FF
+E7A74F0087C7FFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4717579FCFEFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFFFFFFEFBF87371777BFF7FFFFE7A74F0087C7FFFF
+FFFFFFFFE7A74F0087C7FFFFFFEFAF5F17579FD7EFFFFFFFF7DFA75717479FDFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFC787004FA7E7FFFFEFAF5F17579FD7EFFFFFFFF7DFA75717479FDFFFFFFFFFFFFFFFDF9F
+3F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F474F8F8F5F479FDFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFEFAF5F00478FC7EFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFC78F5F371F0000000000004FA7E7FFFFFFFFF7D7A76F47271700001727476FA7
+D7F7FFFFFFFFC787004FA7E7FFE7A74F0087C7FFFFC787004FA7E7E7A74F0087C7FFFFC787004F
+A7E7FFE7A74F0087C7FFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFC787004FA7E7FFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F
+0000000000004FA7E7FFFFFFFFFFF7D7A76F47271700001727476FA7D7F7FFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFEFC78F5F371F0000001F375F8FC7EFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000000
+00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFEFC78F5F371F0000001F375F8FC7EFFFFFFFFFFFFFFFFF
+FFFFF7CF97572717000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFAF5F00005FAFEFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F000000000000004FA7
+E7FFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFEFC78F5F371F00
+0000000000004FA7E7FFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFAF5F005FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7B77737378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F00001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/doc/src/cpsa4manual/ns_skel0.pdf b/doc/src/cpsa4manual/ns_skel0.pdf
new file mode 100644
Binary files /dev/null and b/doc/src/cpsa4manual/ns_skel0.pdf differ
diff --git a/doc/src/cpsa4manual/ns_skel1.eps b/doc/src/cpsa4manual/ns_skel1.eps
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/ns_skel1.eps
@@ -0,0 +1,20475 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (/srv/www/vhosts/releases/17/save/queued/c/1/a/c1a2b693bf9473103e22e08b5c71928c/intermediate1/o_3ddb3053552f8067.eps)
+%%CreationDate: (2015-07-14T15:11:48+02:00)
+%%BoundingBox: -0 -0 297 497
+%%HiResBoundingBox: 0 0 297.031 497
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image.  The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+  %
+  % Get a DirectClass packet.
+  %
+  % Parameters:
+  %   red.
+  %   green.
+  %   blue.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+  %
+  % Display a DirectClass image.
+  %
+  systemdict /colorimage known
+  {
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { DirectClassPacket } false 3 colorimage
+  }
+  {
+    %
+    % No colorimage operator;  convert to grayscale.
+    %
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { GrayDirectClassPacket } image
+  } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+  %
+  % Get a DirectClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   red
+  %   green
+  %   blue
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+  %
+  % Display a PseudoClass image.
+  %
+  % Parameters:
+  %   class: 0-PseudoClass or 1-Grayscale.
+  %
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  class 0 gt
+  {
+    currentfile buffer readline pop
+    token pop /depth exch def pop
+    /grays columns 8 add depth sub depth mul 8 idiv string def
+    columns rows depth
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { currentfile grays readhexstring pop } image
+  }
+  {
+    %
+    % Parameters:
+    %   colors: number of colors in the colormap.
+    %   colormap: red, green, blue color packets.
+    %
+    currentfile buffer readline pop
+    token pop /colors exch def pop
+    /colors colors 3 mul def
+    /colormap colors string def
+    currentfile colormap readhexstring pop pop
+    systemdict /colorimage known
+    {
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { PseudoClassPacket } false 3 colorimage
+    }
+    {
+      %
+      % No colorimage operator;  convert to grayscale.
+      %
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { GrayPseudoClassPacket } image
+    } ifelse
+  } ifelse
+} bind def
+
+/DisplayImage
+{
+  %
+  % Display a DirectClass or PseudoClass image.
+  %
+  % Parameters:
+  %   x & y translation.
+  %   x & y scale.
+  %   label pointsize.
+  %   image label.
+  %   image columns & rows.
+  %   class: 0-DirectClass or 1-PseudoClass.
+  %   compression: 0-none or 1-RunlengthEncoded.
+  %   hex color packets.
+  %
+  gsave
+  /buffer 512 string def
+  /byte 1 string def
+  /color_packet 3 string def
+  /pixels 768 string def
+
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  x y translate
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  currentfile buffer readline pop
+  token pop /pointsize exch def pop
+  /Times-Roman findfont pointsize scalefont setfont
+  x y scale
+  currentfile buffer readline pop
+  token pop /columns exch def
+  token pop /rows exch def pop
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  currentfile buffer readline pop
+  token pop /compression exch def pop
+  class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+  grestore
+} bind def
+%%EndProlog
+%%Page:  1 1
+%%PageBoundingBox: 0 0 297 497
+userdict begin
+DisplayImage
+0 0
+297.031 497.302
+12
+396 663
+0
+0
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7C7A7F05F37EFA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000
+000000000000001727476797C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFACF97EF2717EE1727EF
+9FD7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFCF9F6F4F371F0000001727578FBFE7F7D79787B7EFFFFFEFCFAF874F1F87C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7673767B7EFFFFFFFFFFFEFCFAF874F5FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7C79F6F475FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF4DBBA8F5A8B551A8B5A5AA4B9DBF4FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76700005FAFE7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFABF87EE3F27EE0000EFA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7B767000077BFFFFFFFFFF7E7B7773700003787C7F7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFCDFA7EF1F57F2DFFFFFFFDFF2571FEFAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F4717174787BFDFF7FFFFFFFFFFEFCFA767370000
+4FA7E7EFB76F1F1F00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7AF5F1F1700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F1F1700004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CC9A85C8E9FFFFFFFFE9
+C48592552F99B9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787000087C7FFFFFFFFFFFFFFFFFFF7BF6F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFF13F00EFA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FF
+FFFFFFFFFFFFF7BF7717000057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F77A7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F37717EE9FDFFFFFFFFFFFFFFFDF9FEE
+2F8FF4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F17002F77
+C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFE7A74F000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDF9F3F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF4C5CCD9FFFFFFFFFFFFFFFFFFF7CC8F1A8B7AB7ECFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFEFC787370087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7F24F00EFA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFE7A74F00000087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA757174FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCFF01700F0C7FFFFFFFFFFFFFFFFFFC7F0002FF1CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F00003F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF7787C7
+FFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9
+B9618B7AB7ECFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87000087C7FFFFFFFFDFAF5F3700000000000000000087C7FFFFFFFFEFC78F5727170000172757
+8FC7EFFFFFFFFFEFCFAF87572787C7EFCF97572717001F4F97CFF7F7D7A76F471F0017275FAFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7F24F00EFA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFF
+FFFFFFFFCF8F2F000057AFE7FFFFFFF7D7A76F4727170000001727476FB7DFFFFFFFFFEFCFAF87
+5727779FAF6F3F1700278FCFFFFFFFFFEFC78F57271700001727578FC7EFFFFFFFF7E7BF976747
+5FA7DFDFAF6F471F0017275FAFDFFFFFEFC78F471700000000000000004FA7E7FFFFEFB7671F1F
+67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7EF004FF2DFFFFFFFFFFFFFFFFFFFDFF13F00EF
+AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76700000087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7EFCF974F1F00001F478FC7
+F7FFFFFFFFFFF7E7BF975F3F87C7FFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFDFAF6F
+472717001F5FAFC7A74F004FA7E7FFFFFFFFFFEFB7671F1F67B7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA9F4495B4E2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F000087C7FFFF
+FFFFFFFFF7CF876797CFEFFFFFFFFFEFC78F3F00479FDFEFB76717170000004F8FC7E7F7FFFFEF
+B76F1700476FA7C7E7FFFFFFEFB76700006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7F24F00EFA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787000077BFF7FFFFFFFFEFBF873700001767B7EFFFFFFFF7B76F174797D7
+FFFFFFFFE7AF5F001787CFFFE7A75717170000004F9FDFFFFFFFFFFFFFFFFFF7CF876797CFEFFF
+FFFFFFEFC78F3F00479FDFCF973717000000375F9FCFEFFFFFFFDF9F47001787CFFFFFFFFFFFC7
+8700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7EF
+004FF2E7FFFFFFFFFFFFFFFFFFE7F24F00EFA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F00004F87BFDFF7FFFFEFB76F170067B7EFFFFFFFC78F1F1F00000087C7FFFFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFF7BF6F173787BFEFFFFFFFEFC79F5F3F004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4AF7493D7
+F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000
+87C7FFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFEFB767000000000000000000000000000000
+4FA7E7FFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC78700004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7F24F00EFA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000475F67472717000017
+27476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFEFDFB79767471F00000087C7FFFFFFFFE7A74F000087
+C7FFFFFFFFFFFFFFFFEFB7670000000000000000000000000000004FA7E7FFFFC78700004FA7E7
+FFFFFFFFFFFFC787000087C7FFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7EF004FF2E7FFFFFFFFFFFFFFFFFFC7F00000EFB7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00000087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FF
+FFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFDF9F47006FBFF7FFFFFF
+FFFFFFFFCF8F2F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE2AF6FAFD9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7F24F00EFA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D79F5F273F6F9FBF
+D7EFBF87000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFFFC7870000
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7F01717F0
+CFFFFFFFFFFFFFFFFFFFC7F0002FF1CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F0000479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFEFB767000087C7FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D4A1B2D4F7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FF
+FFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFEFB76700479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC78700004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7F24F00EFA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787170067B7F7FFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFF
+FFFFFFFFFFFFEFB76700479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700004FA7E7FFFFFF
+FFFFFFC787000087C7FFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7F37717EE9FDFFFFFFFFFFFFFFFCF8FEE2F8FF4FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5717002F77C7F7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C78F97C7F7FFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFF
+FFFFC787000087C7FFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFC77700005FAFEFFFFFFFFFFFFF
+FFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE9B7AFBFE2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB767000067B7EFFFFFFFFFFFFFFFC777000077C7FFDFAFAFCFFFF7BF
+6F17174787BFE7FFFFFFFFFFFFDF9F97BFF7FFFFDF9F4F000077BFFFFFFFFFFFFFD7973F003F97
+D7FFFFFFFFFFFFBF7700004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFF1
+2F00EF9FDFFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB76700005FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F00004F9FDFFFFFF7E7C787
+47000077C7FFFFFFFFDF9F4F000087C7FFFFFFFFFFFFFFFFFFF7BF6F17174787BFE7FFFFFFFFFF
+FFDF9F97BFF7FFFFBF7700004F9FDFFFFFFFFFFFF7B767000067B7F7FFFFFFFFDFA74F004FA7DF
+F7C7AFBFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCDFA7EF2F6FF3
+EFFFFFFFDFF2571FEFAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFB7673700173F77AFD7EFF7FFFFFFFFFFF7DFBF875F87C7F7FFFFFFFFDF9F4F000077
+BFFFFFFFFFFFFFD7973F003F97D7FFFFFFFFFFF7B76700005FAFEFFFFFFFFFFFFFD7973F002F8F
+CFFFFFFFFFF7C7872F003767AFDFF7FFFFEFC79F5F3F0000171F5FAFE7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B7ABB9E2FFFFFFFFFFFFFFFFFFF0CF9AB6D9FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000004FA7
+E7FFFFFFE7AF5F2717173F87C7F7FFFFFFFFFFDFAF6F4727170000001F375F87BFDFFFE7A74F00
+0000000000000087C7E7A74F000000000000000087C7C78700000000000000004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787EE0000EE0000EE0000EE4FA7F7FFFFFFFFFFEFB7671F002757
+9FCFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFF7CF974F1F00001F4F8FC7EFCF973F171F4787AD9C4F0000000000373F3F87C7FFFF
+FFFFFFFFFFFFFFDFAF6F4727170000001F375F87BFDFFFC78700000000000000004FA7E7C78700
+000000000000004FA7E7FFF7CF8F471F001F5FAFDFFFFFFFFFEFB7671F1F67B7EFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF9CF97EF1F00EE1F47F0A7D7FAFFFFFFFFFFFFFFD79737001F
+476FB7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7AF875F3F2717000000001F37
+5F8FBFE7FFFFFFFFFFE7A74F000000000000000087C7E7A74F000000000000000087C7C7870000
+0000000000004FA7E7E7A74F000000000000000087C7FFFFFFFFDFB76F471F00001F478FC7D7A7
+5F476F9FC7E7FFFFFFFFEFB7671F1F67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9B0995A1A8B
+551A8B551A8B551A8B551A8B5F9AD7FFFFFFFFFFD79737003797D7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B7A7B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7A7A7CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF5151F20000EE0000EE0000EE0000EE0000EE0000EE0000EEADADF9EFD7B7AFB7D7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFA3A3F80000EE0000EE0000EE0000EE0000EE0000EE0000EE5B5BF3FFF7E7C7B7AFC7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2AED5551A8B551A8B551A8B
+551A8B551A8B551A8B551A8B9069B3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7E7C7A7875F375FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF873F3F271700004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFCFAF87572787C7EFCF97572717001F478FC7F7FFFFFFFFFFFF
+DFAF5F2717173F87C7D7A787A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76717170000004F87
+BFDFF7FFFFF7BF6F170057AFE7FFFFFFEFB7673F97D7FFFFFFFFEFBF7767A7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFE7AF571747
+87B7D7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFF7CF974F1F0000001727578FC7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFF7E7
+C7A7874F1F003797D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F000077BFFFFFFFFFFFFF
+D7973F003F97D7FFFFFFE7A7676FB7E7F7FFFFFFFFD7973F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F2F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F000000000000000087C7E7A74F000000000000000087C7E7A78FAFDFCF974F1F0017
+275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7673767B7EFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7673767B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F87C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFC787370087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7BF975F3F87C7FFFFFFEFCFAF87572787C7
+EFCF97572717001F478FC7F7FFFFFFFFFFF7E7BF975F3F87C7FFDFAF5F37000000000000000000
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCFAF875727779FAF6F3F1700278FCFFF
+FFF7D7A76F471F0000001F476FA7D7F7FFFFFFFFFFDFAF5F2717173F87C7D7A787A7E7FFFFEFD7
+B78F572787B7D7A76F3F170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78F
+1F1F00000087C7FFEFB76717170000004F87BFDFF7FFFFF7BF6F170057AFE7FFFFFFC78F1F1F00
+000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A75717170000004F9FDFFFFFFFFFFFFFFFE7AF6777B7E7F7FFFFFFF7E7A75F001777BFF7FFEFB7
+673F97D7FFFFFFFFEFBF7767A7E7E7AF5F17170000003F77BFE7FFFFFFEFC78737001767B7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFCF8F2F0000
+0000000000000000000000000087C7FFE7AF57174787B7D7EFFFFFFFFFFFFFFFFFFFFFE7A74F00
+0087C7FFFFFFFFFFFFFFF7BF6F000067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787000087
+C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F
+1F0000001727578FC7EFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFCF8F2F1777BFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A7874F1F003797D7FFFFE7A74F000087C7
+FFFFFFFFFFFFFFFFC787171787C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B76700005F
+AFEFFFFFFFDF9F4F000077BFFFFFFFFFFFFFD7973F003F97D7FFFFFFFFFFF7B76700005FAFEFFF
+FFFFFFC777000077C7FFDFAFAFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F00
+0087C7FFFFFFFFFFFFFFFFDF9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDFFFE7A7676FB7E7F7FF
+FFFFFFD7973F2F8FCFFFFFE7A74F00003787BFEFFFFFFFF7DFA75717479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC7870000000000000000476D48000000000000000087C7E7A74F000000
+000000000087C7C78700000000000000004FA7E7FFE7AF5F2717173F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000373F3F87C7FFFFFFFFFFFFFFEFCF975F371F0000
+00172747679FCFF7FFFFE7A78FAFDFCF974F1F0017275797CFF7FFFFFFE7A74F000077A7AF5F1F
+000017275797CFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F000077BFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFA0A0A0707070505050808080
+C0C0C0EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFFFB0B0FF
+8080FF4040FF8080FFA0A0FFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF
+505050000000000000000000000000000000000000101010AFAFAFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF7070FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFBFBFBF101010000000000000000000000000000000000000000000
+000000000000505050EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+000000606060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF3030FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF3030FFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF101010000000000000
+0000000000000000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0F000000000000606060FFFFFFFFFFFFFFFFFFFFFFFF
+3F3FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF3030FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF4F4F4F000000000000000000000000000000000000000000000000000000000000
+000000000000000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF0F0F0F
+000000000000606060FFFFFFFFFFFF8F8FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000003F3F3FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF0F0F0F000000000000606060FFFFFF0F0FFF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9F9F000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000101010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF
+0F0F0F0000000000005454600000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6F000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000A8A8A8C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C09C9C9C0C0C0C0000000000000000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF9F9FFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F0000000000000B0B0F0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFAFAFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+2F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F000000000000
+0F0F0FCFCFCF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFEFEF0F0F0F000000000000000000000000000000000000000000
+0000000000000000000000000000000000006F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9F9F9F0000000000000F0F0FCFCFCFFFFFFF3F3FFF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF2F2FFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000
+0000000000000000000000000000000000000000000000000000000000000000001F1F1FEFEFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F0000000000000F0F0FCFCFCFFFFFFF
+FFFFFFDFDFFF0F0FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000000000000000
+000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+0000000000000F0F0FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFF8F8FFF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F
+0000000000000000000000000000000000000000000000001F1F1FBFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0F0F0F0FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFAFAFFF0F0FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0F0FFF8F8FFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF3F3F3F0F0F0F0000000000000000002F2F2F
+6F6F6FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF5F5FFF1F1FFF0000FF
+0000FF0000FF0F0FFF4F4FFFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC3C3C3606060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF6060A0D1D1E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFFA0A0F16262
+D72828FF8080FFB0B0FFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDFB0B0B0808080202020707070A0A0A0CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFEFFF5050FF0000FF0000FF0000FF0000FF0000FF0000FF1010FFAFAFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000000000000000000000000000000000000000
+707070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFF1010FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF5050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF303030000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF303030000000000000
+000000000000000000000000000000000000000000303030CFCFCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF1010
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF7F7FFFFFFF
+FFFFFFFFFFFFEFEFEF3030300000000000002F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF3F3F3F000000000000000000000000000000000000000000000000000000000000
+000000303030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FFBFBFFFFFFFEFEFEF3030300000000000002F2F2FEFEFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F000000000000000000000000000000
+0000000000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF3F3FEFEFEF
+3030300000000000002F2F2FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+0F0F0F000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFF9F9FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF10102F2F2F0000000000002F2F2FEFEFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6FFF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000200000000000
+2C2C2CEFEFEFFFFFFFDFDFDFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0DFDFDFFFFFFF
+FFFFFFEFEFEFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFCFCFFFFFFFFFFFFFFFFFFF
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFFFFFFFFFFFFFCFCFCFC0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0EFEFEFFFFFFFFFFFFFCFCFCFC0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0EFEFEFFFFFFFFFFFFFDFDFDFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0DFDFDFFFFFFFFFFFFFEFEFEFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+CFCFCFFFFFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFF
+FFFFFFFFFFFFCFCFCFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0EFEFEFFFFFFFFFFFFF
+CFCFCFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0EFEFEFFFFFFFFFFFFF999999000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000009F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFF4F4FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF00004000000000006B6B6BFFFFFFFFFFFF7F7F7F000000000000000000
+0000000000000000000000007F7F7FFFFFFFFFFFFFBFBFBF000000000000000000000000000000
+0000000000003F3F3FFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFF3F3F3F000000000000000000000000000000000000000000BFBFBF
+FFFFFFFFFFFF3F3F3F000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFF
+7F7F7F0000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFFBFBFBF000000
+0000000000000000000000000000000000003F3F3FFFFFFFFFFFFFFFFFFF000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFF3F3F3F000000000000000000000000
+000000000000000000BFBFBFFFFFFFFFFFFF3F3F3F000000000000000000000000000000000000
+000000BFBFBFFFFFFFFFFFFF474747000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000000000000000
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+AFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFBFBFFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF2F2F9F9F9F0000000000000000009F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF0F0FFF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF6F6FFFFFFF9F9F9F000000000000
+0000009F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F3F3F000000000000
+0000000000000000000000000000000000000000000000000000000000000000002F2F2FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFAFAFFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000
+FF1F1FFFEFEFFFFFFFFFFFFF9F9F9F0000000000000000009F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF0F0F0F000000000000000000000000000000000000000000000000
+000000000000000000000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FF0000FF0000FF0000FF0000FFBFBFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F000000
+000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F000000000000
+0000000000000000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFF7F7FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF1F1FFFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F0000002F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFAFAFAF0F0F0F000000000000000000000000000000000000000000
+0F0F0F8F8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFF3F3FFF0F0FFF0000FF0000
+FF0000FF2F2FFF6F6FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF5F5F5F
+1F1F1F0000000000000000001F1F1F4F4F4FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE3C3C3A06060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBFEFEFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF
+A0A0A0626262282828808080B0B0B0DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFEFEF505050000000000000000000000000000000000000101010AFAFAF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF101010000000000000000000
+000000000000000000000000000000000000505050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFEF101010000000000000000000000000000000000000000000000000000000000000000000
+7F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000000000
+000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+3F3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9F9F9F000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000101010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6F000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFBFBFBF000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000002F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF0F0F0F000000000000000000
+0000000000000000000000000000000000000000000000000000000000006F6F6FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFAFAFAF000000000000000000000000000000000000000000000000000000000000
+0000000000001F1F1FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000
+000000000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF7F7F7F0000000000000000000000000000000000000000000000001F1F1F
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF3F3F3F0F0F0F
+0000000000000000002F2F2F6F6F6FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFAF6F471F00000000004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F57
+2717000000171717004FA7E7FFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFC7870000
+0000000000000000000000000087C7FFFFFFFFFFF7CF975F371F0000000000004FA7E7FFFFFFFF
+FFFFC787004FA7E7FFFFFFF7CF8F47275F9FD7F7FFFFFFFFFFEFC78F57271700001727476FB7DF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFEFC78F57271700001727
+476FB7DFFFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFFFFEFC78F57271700
+00001F375F97CFF7FFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFF
+FFDFB76F47271700000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F373787BFEFFFFFFFFFFFBF77004FA7E7FFFFFFDF9F4F57A7DF
+F7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7A7
+4F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7DFEFBF773F3F87C7EFFFFFFFFFFF
+FFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F1767B7EFFFFFE7A74F0017478FCFEF
+FFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000
+3767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F4FA7DFFFFFFFFF
+FFFFFFC787004FA7E7FFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFD79F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFFFFFFC7
+87003747471F378FCFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFE7A74F00000000000000000000000000
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFF
+FFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFEFBF6F
+371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFE7A74F3F9FDFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFD7BFA78F5F3F1F3F8FCFF7FFFFFFFFFFC787004FA7D7C787373787C7F7FFFFFFFFFFFFFFE7A7
+4F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFDFAF67
+3F17174FA7E7FFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F374FA7E7FFFFFFFFFFC787004F
+A7E7FFFFDFA7571F57A7DFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFFFFFFEFBF8737
+1777BFF7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFB76F3F1700001F4787BFCFA74F4FA7E7FFFFFFFFF7D7A76F47271700000000
+00000087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFC787000000000000
+001727476FA7D7F7FFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757A7DFFFFFFFFFF7D7A7
+6F4727170000000000000087C7FFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFF
+FFF7D7A76F4727170000000000000087C7FFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7
+FFFFFFFFF7D7A76F47271700001727476FA7D7F7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFC787004FA7E7FFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F
+000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF973F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF6F6F
+AFDFF7FFFFFFDF9F4F00479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF6F6FAFDFF7FFFFFFDF9F4F00479FDFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F174F97D7EFFFFFFFEFD797
+4F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFDF9F471787C7FF
+FFFFFFFFFFFFFFE7A74F1777BFF7FFFFFFC7870000000000000017275797CFF7FFFFFFFFFFFFE7
+A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFF
+FFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFC787000087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757
+271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFB767006FBFF7FFFFFFFFFFDFA75F1F001787CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFFFFEFC78F5727170000
+1727476FB7DFFFFFFFFFFFF7C787373787CFF7FFFFFFFFF7C787373787C7F7FFC7870000000000
+0000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC7870077A7BF8F5727170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFC78700000000
+00000017275797CFF7FFFFFFC7870077A7AF5F1F003787BFBF873F17173F97D7FFFFFFFFFFEFC7
+8F57271700001727476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFEFAF5F1787C7FFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFFF
+C7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F00
+6FBFF7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F1777BFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFEFBF77474777BFAF7700
+67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFCF8F373787C7F7
+F7C7773757A7DFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F
+479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7
+C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFC7870000378FCFDFA7
+4F001767AFE7C787004FA7E7FFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFFF
+FFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771F77BFF7FF
+FFFFDF9F47479FDFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFEFC787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFEFC787373787C7F7FFFFFFFFFFFFFFFFE7A74F00000000000000000087C7FFFFFFFFFF
+CF8F2F4F97B79F5F375FA7DFFFFFFFC7870067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000
+00000087C7FFFFFFFFFFFFFFFFDFA7573F3F3F3F87C7F7FFFFFFFFFFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7CF975F371F00000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFDFB76F472717000000
+000000000087C7FFFFC787004FA7DFFFE7A74F0077C7FFFFC787004FA7E7FFE7A74F0000000000
+00000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F3777BFF7FFDF9F475FAFEFFFFFFFFFFFDF9F47004F9FDFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFEFBF77373777
+BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFEFBF77373777BFEFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5700173F87C7EFFFFFFFFFFFE7A74F2F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA75F5F6F673F57
+AFE7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFC787004FA7E7FFE7A74F0087
+C7FFFFC787004FA7E7FFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F476FBFD79F57
+8FCFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFDFAF5F273F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFDFAF5F273F
+87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+67376FB7E7FFFFFFFFE7B76F2F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C787374FA7DFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFDF9F3F2F77BFEFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFEFB767003F
+97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F
+170087C7FFFFC787004FA7E7FFE7A74F0087C7FFFFC787004FA7E7FFFFCF8F2F2F67AFDFF7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFAF674F4F679FDFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787
+B79F770087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00000000
+0000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFF
+FFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFC7870000000000000000000000
+0000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFC787004FA7E7FFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001727578FC7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FF
+FFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFDFA757174FA7DFFFFFFFFFFFF7C7772F
+3787C7F7FFFFFFFFFFFFFFF7CF97572717000000000087C7FFFFFFFFFFFFFFFFFFFFFFDF9F472F
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76717
+77BFF7FFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF674727170000001727476FA7D7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFC787004FA7E7FFE7A74F0087C7FFFF
+C787004FA7E7FFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFF7BF
+771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78737
+3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFAF6F471F00000000004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7CF8F5F87C7F7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFF
+FFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F00000000000017275787BFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A787572717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFD7B79767471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F57271700001727
+5797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFFF
+DFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D797471787CF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F5F97BFC79F4F
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F5F8FC7EFFFFFFFEFBF772F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5F8FC7EFFF
+FFFFEFBF772F1777BFF7FFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F00
+0000001717170087C7FFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFC78700000000
+000000000000000000000087C7FFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFE7A74F
+00000000000000000000000000004FA7E7FFFFFFFFFFC7870077AFC78F57271700001F478FC7F7
+FFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFFFE7A74F4F97AF9757271700001F478F
+C7F7FFFFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFFC7870077A7B76F
+471F000017275FAFDFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFE7A74F0000
+0000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFBF873F57AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F00001727
+5FAFDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFF
+FFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700
+001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+F7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000017275797CFF7
+FFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC7870077A7BF8F5727
+170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97
+B7A76F471F00001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFF7BF773F87BFEFFFFF
+FFFFF7E7AF671F77BFF7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC78700
+67AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7
+FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000027579FCFEFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFF
+FFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFFE7A74F004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEF
+FFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+C7772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFF
+FFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFEFB7670077C7FFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7CF975F371F00000000000000004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7DFA75717479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC7
+87000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7
+CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFF7D79F571F579FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFF7D79F571F579FD7F7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F47004F9F
+DFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F
+47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFFFFF
+FFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F17
+0087C7FFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFF7BF6F00
+4F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB76700
+3F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+CF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFF7BF6F004F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFCF9F571F67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC7870000
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C7873F275FA7DFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFF7C7873F275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F17
+77BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFF7FFFFFFFF
+E7B76F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFEFC78F5F371F00000000000000
+4FA7E7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7A74F00000000000000
+1F375F8FC7EFFFFFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00000000000000000000000000
+87C7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFE7A74F000000000000000000
+0000000087C7FFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000001F375F87B7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFE7A74F0000000000000000000000000087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFDF9F47
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F479FDFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F
+000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0000000000000000000000000000
+87C7FFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017
+275787B79F770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F47
+1F000017275787B79F770087C7FFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFDFAF674727170000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFC78F5F371F000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFAF6F471F00000000004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F
+572717000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F0000
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A787572717004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5F8FC7EFFFFFFFEFBF772F1777BFF7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF6F6FAFDFF7FFFFFFDF9F
+4F00479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5F8FC7EFFFFFFFEFBF772F1777BFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFFFF
+FFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F5F97BF
+C79F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37
+479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F00000000
+1717170087C7FFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFC78700000000000000
+000000000000000087C7FFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFE7A74F000000
+00000000000000000000004FA7E7FFFFFFFFFFC7870077AFC78F57271700001F478FC7F7FFFFFF
+FFE7A74F000000000000001F476FB7DFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FF
+FFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC7870077AFC78F57271700001F478FC7F7FFFFFFFFFFEFC78F5727170000
+1727476FB7DFFFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFFFC7870077AFBF
+874727170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9F
+DFFFFFFFFFFFEFC7873F170057AFE7FFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFF
+FFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F00
+0017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7BF8F5727170017275797CF
+F7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000
+00000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+000000000000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFF7BF773F87BFEFFFFFFFFFF7
+E7AF671F77BFF7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+00174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFF
+E7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700174787BFE7F7FFFFFF
+CF872F4FA7E7FFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFC7870067AFEFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F479FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFF
+FFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F1777
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7
+C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F479FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFFFFFFFFFF
+FFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFFFFFFFF
+FFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF
+975F371F00000000000000004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFEF
+B7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000
+00000087C7FFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFEFC787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFDFA757
+1F57A7DFFFFFFFFFFFFFFFFFE7A74F00000000000000000087C7FFFFFFFFEFB7670077AFBF7747
+4787C7EFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000
+000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F
+00000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F
+6F4F1F1F5FAFE7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F
+1F1F5FAFE7FFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D79F571F579FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFEFBF77373777BFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFF7D79F571F579FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7
+FFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFF7BF6F004F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7
+FFFFFFEFCF9F5F1F004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFCF8F2F
+2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFC787004F9FDFFFFFFFFFEFD7
+974F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F275FA7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFDFAF5F273F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFF7C7873F275FA7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFFFF
+EFD7974F1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBF
+F7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F
+170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEF
+CF9F5F1F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFF
+FFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFEFC78F5F371F000000000000004FA7E7
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F
+8FC7EFFFFFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFC787004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFE7A74F000000000000001F375F8FC7
+EFFFFFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFC78700000000000000000000000000004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671777BFF7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFC7
+87000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFE7A74F000000000000000000000000
+0087C7FFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F0000
+00001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF6747
+27170000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFF
+FFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFFFFFFFFFFFFFFFFF7BF77
+1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7
+87373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AF
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675F
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F
+5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+B76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFEFC78F5727170000
+17275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F57
+2717000017275797CFF7FFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFF
+FFFFFFF7E7C7A787572717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFF7C7773757A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFF7E7C7A787572717004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFEFC78F5727170000
+17275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A787
+572717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FF
+FFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFF
+F7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFCF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F37
+67B7EFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFCF8F4F
+5F97BFC79F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFAF674F87AFD7B777000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFF
+FFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B79F67371F00001F476F
+B7DFFFFFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFFFFF7D7A76F471F000000
+1F375F97CFF7FFFFFFFFFFFFFFFFEFC78F5F371F00000000000087C7FFFFFFFFFFFFEFC78F5727
+1700001727476FB7DFFFFFFFFFFFFFFFFFEFC78F572717000000171717004FA7E7FFFFFFFFFFEF
+C78F57271700001727476FB7DFFFFFFFFFFFFFFFF7CF975F371F0000000000004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC787
+3F170057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFF
+FFEFC7873F170057AFE7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFCF8F2F3F9FDFFFFFFFFFFFEFC7873F170057AFE7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F
+479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC787
+3F170057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFE7A74F003767A7CFEFFFFFFFE7AF
+5F0087C7FFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFCF8F372F67AFDFF7FF
+FFFFFFFFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFCF8F373787BF
+EFFFFFFFFFFFBF77004FA7E7FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFE7A7
+4F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFF
+FFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8F
+CFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFF
+FFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9F
+DFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000
+00004FA7E7FFFFFFCF87174FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000
+00000000000087C7FFFFFFCF8F2F4FA7DFFFFFFFFFFFFFFFC787004FA7E7FFFFE7A74F00000000
+0000000000000000000087C7FFFFFFFFFFD79F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFEFB7670077AFBF77474787C7EFFFFFE7A74F
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670077AFBF77474787C7EFFF
+FFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+670077AFBF77474787C7EFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFEFB7670077AFBF77474787C7EFFFFFE7A74F
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFC777004FA7E7FFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFD7BFA78F5F3F1F3F8FCFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFFFFFFFFFFFFFFFFFFFFFFC777
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFF
+FFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFFFFFFFFFFFE7B76F2F479FDFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7BF77173777B7E7F7FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFDFAF673F17174FA7E7FFFFFFCF8F2F2F67AFDFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F374FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFFFFEFD7974F1767B7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFFFFEFD7974F17
+67B7EFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37
+4F97D7EFFFFFFFEFD7974F1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFFFFEFD7974F1767B7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+000000000000001F375F8FC7EFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFFFF7D7A76F47271700000000000087
+C7FFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFFFDFB76F3F1700001F4787BF
+CFA74F4FA7E7FFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFC787000000000000
+001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000
+0000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000
+000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671F6FBFF7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C777
+2F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7
+873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7C787578FCFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F57
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F
+1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F
+97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FF
+FFFFFFFFFFEFC78F5727170000001F375F97CFF7FFFFFFFFFFE7A74F4F97AF9757271700001F47
+8FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F000000
+1727476FB7DFFFFFFFFFFFFFFFC7870077AFC78F57271700001F478FC7F7FFFFFFFFC787000000
+0000000087C7FFFFFFFFFFFFFFFFFFFFFFEFC78F5727170000000000000000004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFF
+FFFFC7870077AFBF874727170017275797CFF7FFFFFFFFFFC7870077AFC78F57271700001F478F
+C7F7FFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFF7BF77174FA7E7FFFFFFFFFFFFFF
+FFC78717479FDFFFFFFFC787004FA7E7FFFFFFF7CF8F47275F9FD7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFFFFFFFFFFF
+FFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B79F67371F00001F476FB7DFFF
+FFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFFE7A74F0000000000004FA7E7FF
+FFFFFFFFFFFFDF9F471787C7FFFFFFFFFFFFFFFFE7A74F1777BFF7FFFFE7A74F0087C7FFFFFFFF
+DFB7673F3F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7BF
+8F5727170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F1767B7
+EFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB767174F97D7EFFFFFFFFFE7B76F2F3797D7FFFFFFFFFFC78700174787BFE7
+F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFEFB767004F9F
+DFFFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFF
+FFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFCF8F2F4FA7E7FFFFFFFFFFF7BF77175FAFEFFFFFFFFFC787004FA7DFEFBF773F3F
+87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087
+C7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFEFAF5F1787C7FFFFFFFFFFFFDF9F
+472F8FCFFFFFFFFFE7A74F0087C7F7D79F57275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFDF
+9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFC7870000000000000000004FA7E7FFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFF
+CF8F2F4FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFFFDF9F4F0067B7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFDF9F47479FDFFFFFFFF7BF771F77
+BFF7FFFFFFFFFFC787003747471F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFF7BF771F77BFF7FFFFFFDF9F47479FDFFFFFFFFFFFE7A74F003F47471767AFEFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFF
+FFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFDF9F4F2737271700
+001727578FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFEFAF5F479FDFFFF7BF77378FCFFFFFFFFFFFFFFFC787004FA7D7C787373787C7F7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFCF8F3777BFF7FFDF9F475FAFEFFF
+FFFFFFFFFFE7A74F0087BFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFCF8F2F
+3777B7E7FFFFFFFFEFBF87371777BFF7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F17579FD7EFFFFFFFF7DFA7571747
+9FDFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFCF871767AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004F
+9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77479FCFBF7767AFEFFFFFFFFF
+FFFFFFFFC787004FA7E7FFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC7
+77006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFFFFFFFFFFFE7B76F2F479FDFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFDF9F476FBFD79F578FCFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFF7C787373787C7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7
+974F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFF7D7A76F47271700001727476FA7D7F7FFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFC78F5F371F0000001F375F8FC7EFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFD797370000000000000000
+0017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76717
+77BFF7FFFFFFFFFFFFFFFFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000087C7FFFFFF
+FFFFFFFFFFCF8F574F4F77BFF7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757A7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F
+770087C7FFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000
+000000001F375F8FC7EFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87000000000000000000000000004FA7E7FFFFFFFFFFFFFFEFAF674F4F679FDFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFDFA757173787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFAF674727170000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7BF77174FA7DFFFFFFFFFFFFFFFE7AF5F0057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF57004F9FDFF7FFFFFFFFFFEFBF77
+2F1787C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78737
+3787C7F7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787
+578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7D7A76F4727170000000017275787AFD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787
+578FCFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A787572717004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFCF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+E7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFE7A74F0000000000004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFEFC78F5727170000001F373F375FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001727476FB7DFFFFFFFFFFFFFC7870077AFC78F57
+271700001F478FC7F7FFFFFFFFE7A74F0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFEFC78F57
+27170000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFCF8F373787BFEFFFFFFFFFFFBF77004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767174F97D7EFFFFFFFFFE7
+B76F2F3797D7FFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFF
+FFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFCF8F2F4FA7DFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFC7870000000000000000004FA7E7
+FFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFC787004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFEFB767004F9FDFFFFF
+FFFFDF9F4F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F
+2F4FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFDF9F4F2737271700001727578FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFEFB767005FAFE7FFFFF7DFA75717000087C7FFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFEFB7
+67004F9FDFFFFFFFDFAF673700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFAF5F17579FD7EFFFFFFFF7DFA75717479FDFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFCF871767AFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F000017
+27578FBFA7770087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFC7870000
+00000000000000000000004FA7E7FFFFFFFFDFB76F3F1700001F476FB7A777004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F0000001F375F8FC7EFFFFF
+FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000
+004FA7E7FFFFFFD7973700000000000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F00000000
+00000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77174FA7DFFFFFFFFFFFFFFFE7AF
+5F0057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7AF57004F9FDFF7FFFFFFFFFFEFBF772F1787C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000000017275787AFD7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F
+1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFCF973F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF973F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFF
+FFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A787572717004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF6F
+6FAFDFF7FFFFFFDF9F4F00479FDFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFCF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFF
+FFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87
+AFD7B777000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5727170000001F375F97CFF7FFFFFFFFE7A74F
+4F97B79F67371F00001F476FB7DFFFFFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFF
+FFFFFFC7870077AFC78F57271700001F478FC7F7FFFFFFFFE7A74F000000000000001F476FB7DF
+FFFFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFFC7870000000000000087C7
+FFFFFFFFFFFFFFFFFFFFFFEFC78F5727170000001F375F97CFF7FFFFFFFFE7A74F4F97AF975727
+1700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077
+A7B76F471F000017275FAFDFFFFFFFFFFFFFF7D7A76F471F0000001727476FB7DFFFFFFFFFFFFF
+C7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFEFC78F5F371F00000000000087C7FF
+FFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC78700000000000000000000000000000087C7FFFFFFFFFFFFEFC78F5727170000
+1727476FB7DFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFE7A74F0000000000
+0000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000017275797CFF7FFFFFF
+FFFFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFFFEFC78F572717000000171717004F
+A7E7FFFFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFFFFFEFC78F57271700000017
+1717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F00
+00000000004FA7E7FFFFFFFFC78700000000000000000000000000000087C7FFFFFFFFE7A74F4F
+97B7A76F471F000017275FAFDFFFFFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFFFFF
+C7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFEFC78F572717000000171717004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F471F00001727
+5FAFDFFFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFFFFFFFDFB76F4727170000
+0000000087C7FFFFFFFFFFC7870077AFBF874727170017275797CFF7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC7873F170057AFE7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F372F6FB7
+E7FFFFFFFFEFD7974F1767B7EFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFF7BF
+773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFCF8F372F6FB7E7FFFFFFFFEF
+D7974F1767B7EFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFEFB767174F
+97D7EFFFFFFFFFE7B76F2F3797D7FFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFF
+FFCF8F372F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFC7870067AFEFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFF
+FFFFCF8F373787BFEFFFFFFFFFFFBF77004FA7E7FFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47
+479FDFFFFFFFCF8F373787BFEFFFFFFFFFFFBF77004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFF
+CF8F373787BFEFFFFFFFFFFFBF77004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF
+671F77BFF7FFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFF7FF
+FFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA74F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFF
+FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F375F
+9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7
+FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFC78700000000000000000000000000004FA7E7FFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F00000000000000004FA7E7FF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFC787004FA7E7FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFC78700
+4FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFCF87174FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C78700000000000000000000000000004FA7E7FFFFFFFFFFE7A74F00000000000000000087C7FF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000
+00000087C7FFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFEFB767
+0077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFCF8F2F4FA7DFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFE7A74F000000000000000000000000000087C7FFFFCF8F2F4FA7DFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFE7A74F00000000000000000087C7FFFFFFFFFFFFFFD79F471F3F5F8FA7BFD7
+EFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F00000000000000004FA7E7FFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFC787004FA7E7FFFFCF8F2F4FA7DFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFEFBF6F371F4F6F9FAFCFDFF7
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFEFB7670077AFBF77474787C7EFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFF
+FFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFC787006FBF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7
+670087C7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFF7BF6F006FBFF7FFFF
+FFFFFFFFFFFFCF8F2F4FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFC78700
+4FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F
+1F5FAFE7FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47004F
+9FDFFFFFFFFFFFE7A74F0087C7FFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFC787
+004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFD7BFA78F5F3F1F3F8FCFF7FFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEF
+FFFFFFFFFFC787004FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFC787004F
+A7E7FFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFC787004FA7E7FFFFFFFFFFFFF7
+BF6F0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF773737
+77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFFC787
+1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFFFFFFEFBF87371777BFF7FFFFE7A74F0077BFFFFFFF
+FFFFE7B76F2F479FDFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFF
+FFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFCF8F2F3777B7E7FFFFFFFFEFBF87371777BFF7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFC787004FA7E7FFFFEFAF5F17579FD7EFFFFFFFF7DFA75717479FDFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFC787004FA7E7FFFFFFF7BF77173777B7E7F7FFFFFFFFFFFFFFFFFFFFFFFFEFAF5F
+00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDF9F3F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFF7BF6F004F9FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBF
+F7FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFCF8F2F2F77
+BFEFFFFFEFCF8F4F1F170087C7FFFFFFEFB767004F9FDFFFFFFFDFAF673F17174FA7E7FFFFFFFF
+CF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFDFAF673F17174FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F37
+4FA7E7FFFFFFFFFFFFFFFFDF9F3F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFC787004FA7E7
+FFFFFFFFFFFFC787004FA7E7FFFFEFB767004F9FDFFFFFFFDFAF673F17174FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087
+C7FFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFAF5F273F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F374F97D7EFFFFFFFEFD7974F1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+4F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F47271700001727
+476FA7D7F7FFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFEFC78F5F371F
+000000000000004FA7E7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757
+271700001F47679FAF974F4FA7E7FFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFF
+E7A74F0000000000000000000000000087C7FFFFFFFFF7D7A76F47271700001727476FA7D7F7FF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFEFC78F5F371F000000
+1F375F8FC7EFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFF7D7A76F
+47271700000000000087C7FFFFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF97572717000000000087C7FFFF
+FFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFE7A74F000000000000001F375F8FC7EF
+FFFFFFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F0000
+17275787B79F770087C7FFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFDFB76F
+3F1700001F4787BFCFA74F4FA7E7FFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFF
+FFDFB76F3F1700001F4787BFCFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFF7CF97572717000000
+000087C7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47
+679FAF974F4FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFDFB76F3F17
+00001F4787BFCFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFF
+FFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFC787000000000000001727476FA7D7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000000000
+000000004FA7E7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7A74F00
+00000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F0000001F476FA7D7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000000000000
+00004FA7E7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AF
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+4F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777000087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFFFC7
+870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFEFC78F5F371F00000000000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAF
+DFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+77AFBF874727170017275797CFF7FFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFF
+E7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFFC787004FA7E7FFFFFFF7CF8F47275F9F
+D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7BF8F572717001727
+5797CFF7FFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF773F87
+BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFF
+CF8F372F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F
+9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFF
+FFFFC787004FA7DFEFBF773F3F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067
+B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000000000000000004FA7E7FFFFFFC787004F
+A7E7FFFFFFFFFFFFC787004FA7E7FFFFFFCF87174FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFC777006FBFF7FFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFC787003747471F378FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC77700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFC787004F
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFC787004FA7E7
+FFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFC7
+87004FA7D7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFF
+FFFFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFC787004FA7E7FFFFFFF7BF77173777B7E7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFF
+FFEFD7974F1777BFF7FFFFFFCF8F2F2F87CFFFFFFFEFBF873700004FA7E7FFFFFFE7A74F0077BF
+F7FFFFFFFFE7B76F2F479FDFFFFFFFFFFFC787004FA7E7FFFFDFA7571F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FF
+FFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F000000
+000000004FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFF7D7A76F47
+271700000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFC787000000000000000000000000004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFF
+FFFFFFFFFFFFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFFFFFDFB76F3F1700001F
+476FA7B7974F4FA7E7FFFFFFEFC78F5F371F000000001F375F8FC7EFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFF7C787371757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+AF674727170000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFE7A74F0000
+000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A787572717004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFC7870000000000
+000017275797CFF7FFFFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFFFFEFC7
+8F57271700001727476FB7DFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFE7A74F0017478FC7
+EFFFFFFFDF9F4F1777BFF7FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFDFB76F47271700000000
+0000000087C7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFE7A74F0000000000
+00000000000000000087C7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFF
+FFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFDF9F3F4FA7DFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F17
+0087C7FFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFCF8F2F2F67AFDFF7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000004FA7
+E7FFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFEFC78F5F371F000000001F375F8F
+C7EFFFFFFFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFE7A74F00000000000000
+00000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000
+0000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F174F97D7EFFFFFFFEFD7974F378FCF
+FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F4F97B79F67371F00001F476FB7DFFFFFFFFFFFFFC7870000000000000017
+275797CFF7FFFFFFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFFFFEFC78F5727
+1700001727476FB7DFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFE7A74F0000
+0000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B767006FBFF7FFFFFFFFFFDFA75F1F001787CFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F
+1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFE7A74F003767A7CFEFFF
+FFFFE7AF5F0087C7FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFC78700003767AF
+DFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFEFBF77474777BFAF770067B7EFFF
+FFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFDFB76F47271700000000000000
+0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000
+00000000000087C7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F4F
+97B79F5F375FA7DFFFFFFFC7870067B7EFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7
+DFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5700173F87C7EFFFFFFFFFFFE7A74F2F8FCFFFFFFFFFFF
+FFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0077BFFFFFFFFFFFE7B76F2F479FDFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFF7BF6F004F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767376FB7
+E7FFFFFFFFE7B76F2F378FCFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFF
+FFE7B76F471F000017275787B79F770087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFC787004FA7E7FFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001727578FC7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFEFC78F57271700
+0017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B797
+67471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FF
+FFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F4F97AF9757271700001F478F
+C7F7FFFFFFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFFFFEFC78F5727170000
+1727476FB7DFFFFFFFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFFFFC787
+00000000000000000000001767B7EFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFF
+FFFFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC7
+873F170057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFE7A74F003767A7CFEFFFFFFFE7
+AF5F0087C7FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB767006FBFF7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA76F87C7F7FFFFFFFFFFF7BF77
+3F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFF
+FFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000
+00000087C7FFFFFFFFF7CF975F371F00000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C78767A7DFFFFFFFFFFFFFFFFFC78700000000000000000000000000004FA7E7FFFFEFB767
+0077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFEFB7670077AFBF77474787C7EFFFFFE7A7
+4F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA75F5FA7DFFFFFFFFFFFFFFFFFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767
+005FAFE7FFFFF7DFA75717000087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFF
+FFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFDFA76F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77
+BFEFFFFFEFCF8F4F1F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFFFFEFD7974F1767B7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+4F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F00001727578FBFA7770087C7FFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFF7CF9757271700001F47679FAF974F4F
+A7E7FFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFE7A74F000000000000000000
+0000000087C7FFFFFFF7CF873700000000000000000000000087C7FFFFFFFFFFEFC78F5F371F00
+0000000000004FA7E7FFFFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFCF8717004FA7E7FFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7AF57000087C7FFE7A74F000087C7FFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFCF87170077C7FFFFFFFFFF
+FFFFFFEFD7B79767471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F0000
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF973F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFE7AF57004FA7DFFFFFFFFFFFFF
+FFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F006FBFF7FFE7A74F0087C7FFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+003F9FDFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7D7A76F47271700000000004FA7E7FFFFFFFFFFEFC78F5727170000001F375F97CFF7FF
+FFFFFFC7870077A7AF5F1F003787BFBF873F17173F97D7FFE7A74F4F97A7873F171757A7C7AF5F
+1F001F6FB7EFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFFFC7870077A7B76F471F
+000017275FAFDFFFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAF
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000
+0000004FA7E7FFFFFFFFFFFFEFC78F5727170000001F375F97CFF7FFFFFFFFE7A74F2F77A7A76F
+3F1700001F478FC7F7FFFFFFFFFFFFF7D7A76F471F0000001727476FB7DFFFFFFFFFFFFFC78700
+77AFC78F57271700001F478FC7F7FFFFE7A74F00000000000000000000000000004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F
+000017275FAFDFFFFFFFFFFFFFF7D7A76F471F0000001727476FB7DFFFFFFFFFC7870000000000
+0000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47
+1787C7FFFFFFFFFFFFFFFFCF8F2F2F8FCFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFF
+E7A74F00000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFFFFFFFF7D7A76F471F0000001F
+375F97CFF7FFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFFFE7A74F4F97AF9757
+271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76717478FC7EFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F372F6FB7E7FFFFFFFFEFD7974F1767B7EFFFFFC7870000378FCFDFA74F001767AFE7C78700
+4FA7E7E7A74F001767AFE7C7870000378FCFDFA74F0087C7FFFFDF9F4F57A7DFF7FFFFFFFFEFC7
+8F47479FDFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB76717478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F372F6FB7E7FFFFFFFF
+EFD7974F1767B7EFFFFFE7A74F00173F87C7EFFFFFF7C7772F3F9FDFFFFFFFEFB767174F97D7EF
+FFFFFFFFE7B76F2F3797D7FFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFEFB767174F97D7EFFFFF
+FFFFE7B76F2F3797D7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F1777BFF7FFFFFFFFFFCF8F2F4FA7E7FFFFFFF7BF
+773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFF7BF773F87BFEFFFFFFFFFF7
+E7AF671F77BFF7FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7AF57
+0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFF
+C787004FA7DFFFE7A74F0077C7FFFFC787004FA7E7E7A74F0077C7FFFFC787004FA7DFFFE7A74F
+0087C7FFE7A74F000000000000000000000000000087C7FFFFFFFFC787004FA7E7FFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF570077C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFF
+FFE7A74F0087C7FFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00000000000000000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+C787004FA7E7FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771F
+77BFF7FFFFFFC7871F77BFF7FFFFFFFFC78700000000000000000000000000004FA7E7FFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFC78700000000000000000000000000
+004FA7E7FFFFC78700000000000000000000000000004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F
+9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFC787004FA7E7FFE7A74F0087C7FFFFC787004FA7E7
+E7A74F0087C7FFFFC787004FA7E7FFE7A74F0087C7FFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEF
+B7670087C7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFF7BF6F006FBFF7FFFFFFFFFF
+FFFFFFCF8F2F4FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFF7BF6F006FBFF7FFFFFFFFFFFFFF
+FFCF8F2F4FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F67B7EFF7BF77378FCFFFFFFFFFFFFFC787006FBF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F471757
+9FCFEFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFFFFFFEFBF87371777BFF7FFFFC78700
+4FA7E7FFE7A74F0087C7FFFFC787004FA7E7E7A74F0087C7FFFFC787004FA7E7FFE7A74F0087C7
+FFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4717579FCFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F3777B7E7FFFFFFFFEFBF87371777BFF7FFFFE7A74F0087C7FFFFFFFFFFFFE7A7
+4F0087C7FFFFFFEFAF5F17579FD7EFFFFFFFF7DFA75717479FDFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC78700
+4FA7E7FFFFEFAF5F17579FD7EFFFFFFFF7DFA75717479FDFFFFFFFFFFFFFFFDF9F3F2F77BFEFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F474F
+8F8F5F479FDFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+77006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F0000000000004FA7E7FFFFFFFFF7D7A76F47
+271700001727476FA7D7F7FFFFFFFFC787004FA7E7FFE7A74F0087C7FFFFC787004FA7E7E7A74F
+0087C7FFFFC787004FA7E7FFE7A74F0087C7FFFFFFF7D7A76F4727170000000000000087C7FFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFDFB76F471F0000000000
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFC78F5F371F0000000000004FA7E7FFFFFFFFFFF7D7A76F47271700001727476FA7D7F7
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFEFC78F5F371F0000001F375F
+8FC7EFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F47
+1F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFEFC78F5F371F0000001F375F8FC7
+EFFFFFFFFFFFFFFFFFFFFFF7CF97572717000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00005FAFEFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F
+000000000000004FA7E7FFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFF
+FFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFEFC78F5F371F000000000000004FA7E7
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F005FAF
+EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7B77737378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00001F476FB7DFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/doc/src/cpsa4manual/ns_skel1.pdf b/doc/src/cpsa4manual/ns_skel1.pdf
new file mode 100644
Binary files /dev/null and b/doc/src/cpsa4manual/ns_skel1.pdf differ
diff --git a/doc/src/cpsa4manual/ns_skel1_cursor.eps b/doc/src/cpsa4manual/ns_skel1_cursor.eps
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/ns_skel1_cursor.eps
@@ -0,0 +1,11380 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (/srv/www/vhosts/releases/54/save/queued/1/d/1/1d1504a0a49863277e8f798f5d8fccc8/intermediate1/o_790bc8d2ee001323.eps)
+%%CreationDate: (2015-10-26T15:09:32+01:00)
+%%BoundingBox: -0 -0 309 467
+%%HiResBoundingBox: 0 0 309 467
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image.  The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+  %
+  % Get a DirectClass packet.
+  %
+  % Parameters:
+  %   red.
+  %   green.
+  %   blue.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+  %
+  % Display a DirectClass image.
+  %
+  systemdict /colorimage known
+  {
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { DirectClassPacket } false 3 colorimage
+  }
+  {
+    %
+    % No colorimage operator;  convert to grayscale.
+    %
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { GrayDirectClassPacket } image
+  } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+  %
+  % Get a DirectClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   red
+  %   green
+  %   blue
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+  %
+  % Display a PseudoClass image.
+  %
+  % Parameters:
+  %   class: 0-PseudoClass or 1-Grayscale.
+  %
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  class 0 gt
+  {
+    currentfile buffer readline pop
+    token pop /depth exch def pop
+    /grays columns 8 add depth sub depth mul 8 idiv string def
+    columns rows depth
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { currentfile grays readhexstring pop } image
+  }
+  {
+    %
+    % Parameters:
+    %   colors: number of colors in the colormap.
+    %   colormap: red, green, blue color packets.
+    %
+    currentfile buffer readline pop
+    token pop /colors exch def pop
+    /colors colors 3 mul def
+    /colormap colors string def
+    currentfile colormap readhexstring pop pop
+    systemdict /colorimage known
+    {
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { PseudoClassPacket } false 3 colorimage
+    }
+    {
+      %
+      % No colorimage operator;  convert to grayscale.
+      %
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { GrayPseudoClassPacket } image
+    } ifelse
+  } ifelse
+} bind def
+
+/DisplayImage
+{
+  %
+  % Display a DirectClass or PseudoClass image.
+  %
+  % Parameters:
+  %   x & y translation.
+  %   x & y scale.
+  %   label pointsize.
+  %   image label.
+  %   image columns & rows.
+  %   class: 0-DirectClass or 1-PseudoClass.
+  %   compression: 0-none or 1-RunlengthEncoded.
+  %   hex color packets.
+  %
+  gsave
+  /buffer 512 string def
+  /byte 1 string def
+  /color_packet 3 string def
+  /pixels 768 string def
+
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  x y translate
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  currentfile buffer readline pop
+  token pop /pointsize exch def pop
+  /Times-Roman findfont pointsize scalefont setfont
+  x y scale
+  currentfile buffer readline pop
+  token pop /columns exch def
+  token pop /rows exch def pop
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  currentfile buffer readline pop
+  token pop /compression exch def pop
+  class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+  grestore
+} bind def
+%%EndProlog
+%%Page:  1 1
+%%PageBoundingBox: 0 0 309 467
+userdict begin
+DisplayImage
+0 0
+309 467
+12
+309 467
+0
+0
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFDFDFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFEFEFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFFFEFFFFFFFFFFFEFEFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFEFEFEFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFEFEFFFFFFFFFEFEFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFF
+FEFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFEFC
+FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFEFFFFFFFFFFFFFFFFFFFFFFFEFCFDFEFFFEFFFFFFFF
+FFFFFDFAFAFAFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFFFFFFFFD7C8BE9B9794949498B4C1CFFAFFFFFFFFFDFDFDFEFFFFFFFEFEFDFDFDFD
+FDFDFEFFFFFFFEFEFEFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFDFDFDFDFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFDFEE0D3F8A7A6F6F2FAFFFFFFFFFEFEFFFFFFFFFFFFFFFEFEFEFFFFFFF7F0E9B3A399
+95989AA1A1A19B9995A7B4C4F0F7FDFFFFFFFDFDFDFDFDFDFDFDFEFEFFFFFEFEFEFDFDFDFDFDFD
+FDFDFEFEFEFEFEFDFDFDFDFDFDFEFEFFFFFFFEFEFEFDFDFDFDFDFDFDFDFDFEFEFEFEFEFFFFFFFF
+FFFEFDFDFEFEFEFEFEFDFDFEFFFFFFFFFFFFFEFEFFFFFFFFEDE3F99E93F3918EF3B8C6FAFCFFFF
+FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF3ECDDA59D938D92939A9B9B989393A8B8BE
+C0BDBB8B8D9AD7E3F1FFFFFFFBFBFCFFFFFFEADDD07B6C7DE4F8FAE7DBC9837378B7C3D5FFFFFF
+FEFDFDFFFEFCD3C4B3818198E1EBF3FFFFFFFCFCFCFEFFFFFFFFFFFEFEFFFFFFFFFBF2FBAB9DF3
+807CF194A4F6E9F5FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFF
+FBF3EAA68135004589EFF6FCF5EFE0C5CADEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFEFEFFFFFFFFF5ECFA8D76F0
+2039F2EFFAFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFD5B69C000000B5D1E3E3D5C1
+6D4200678DB1F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEDFCDC6D9E9FFFFFFFFFFFF
+FFFFFFFFFFFEFEFEFFFFFFFFFDF5FB7A4CEFABC4FAEEE6FA6F36EFBBDAFCFFFFFFFEFEFFFFFFFF
+FFFFFFFEFEFEFFFFFFF0E2CD66411C6E8BA9E2EAF0F5F0E9B193732E6D92D2D4C3111E57CCDFF7
+FFFFFFFFFFFFFFFFFFF5EDE5B9B3B9EDFAFEFFF9E875323597A8C5FFFFFFFFFFFFFFFFFFF2E3CE
+2B002FD5E4F0FFFFFFFFFFFFFFFFFFFEFEFFFEFFFFFFFFFDA98AF2919EF6BFB7F52600ED8DB2F8
+FBFFFFFFFEFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFFFFCC5A76F4485B8
+F9F5F39D724C093A71BECFDCFBFFFFE0D1C5A8A7A9C0CAD6F9FFFFEAE0D5BEBFC0C5C3BEA9A7A9
+D1DEE4DAD2C7A2A2A3CBDAE8FFFFFFFFFFFEFFFFFFFDFDFFFFFFFFE0CCF76047F2F0FBFFFFFFFF
+FEFEFFFFFFFFFFFFFFFFFFFFFEFDFDFFFFFFECCEB954555CD1F1FFFFFFFFD6B67F000067E7EDEF
+D5C8BDA5A3A2BAC6D0F6FCFEE8DDD2C2C7CCC6BCB3AFBECDF3F6F4D1C2B7A7A9AFCEDAE5FFFFFD
+DCCFC8BFC5C8C7C4BFA6A2A9DCE8F1F5EBD66E551F2A6B8DD3DFE8E2D4C9B7BCC7F6FFFFFFFEFE
+FFFFFFE1C0F40F5AF1DFF3FFFFFFFFB9A3F24877F5FBFFFFFFFFFFFEFFFFFFFEFEFEFFFFFFFDF0
+976C382A6790F1FFFFFFFFFFFFFFFFFFF9F1C1BDC7E2E9D86D6C73A3ADBAB7AEA6BBC9D9F9FCFF
+EFE8DEC5C5C8E6F3FBFFFFFFA377709CAAC5FFFFFFF0E3D6B1AAADABA39A3A1B5EDEECF5F7EEE3
+B2A9B0E6F6FCFFFFFFFFFFFFFDF3FBCCCDFAFCFFFFFFFFFFBF8CF06093F5F4FFFFFFFFFFFEFEFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFF8BFA1662E79B2FAF4EF9A815748729A
+E4EFF1D4BFAA818596C7C5B3000000ACC7CFC4B99A0000008196A398886F00004090A1A8968167
+3B5377E4F9FFFFFFFFFEFEFEFEFDFFFFFFFFDCC8F65A41F2F0FBFFFFFFFFFEFEFFFFFFFFFFFFFF
+FFFFFFFEFEFDFFFFFFE7CAB44B4143B5D2E5E6D9C7601F00749BBAD6C39D226E95D7DCE0874D35
+BAD6D7B8A5860000006A6A68788A9C938A8D95A2B6BFA88A00004ACCDDE4C7AB830000008A9DA6
+856F3C417FAEEFE9E19274375D8BABEDF3F7C6A793687B91EFFFFFFFFEFEFFFFFFD3ABF35477F2
+E4F8FFFFFFFEBEAEF34050F3F5FFFFFFFFFFFEFFFFFFFEFDFFFFFFFFF1D96A480088A2C2FFFFFF
+FDFCFCFDFEFEFFFEFDFFFFFFF6F0D65C3E2B668097A49D8500005BDBE7EFCFB79B000000CBE9F6
+FFFFFE996A64A0B0CCFFFBE4745F68B3C6D3D4C3A600004EE1F0F8EDDDCC552A48D4F0F9FFFFFF
+FEFEFEFEFFFFFFFFFFFEFFFFFFFFFE9F73F0A1BCF9FFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFEFEFEFFFFFFFFF9C0A2681870ADFFFFFDB5A7846E98C9FFFFFB947862577194
+B9B8AC695F58A1BDCEEBEAD1314173E3F3FFF8E8D63F0049E5F9FFFAE0CA6D524CD6F3FEFFFFFF
+FEFEFEFEFDFFFFFFFFDCC9F65A41F2EFFBFFFFFFFFFEFEFEFEFEFDFDFEFEFFFFFFFEFEFDFFFFFF
+E8CDB94A19007183929D9B99A6AFBEEFF6FAF5ECDABAC4C7C7C4C05D0000B0D5E3ECE5D8520051
+E4F4FFFFF1D96E56217595ADB6A9985E5B6CCCD8E8F7EFC900337AE9F4FFEADCB200539CFAF8F6
+BB9A5D83B8D9FFFFFFFCF9F7F6F6F8FFFFFFFEFEFFFFFFFFD4ACF3637FF3E9FCFFFFFFFEBDABF2
+4356F3F6FFFFFFFFFEFDFDFEFEFEFEFFFFFFFFF2DB6F502289A1C2FFFFFFFEFDFEFFFFFFFDFDFD
+FFFFFFFCF3D4364163CDE0F7FFFDF17A2800BEE0EFFBEBDC7C5035CDEAF8FFFFFE996A65A8B7CF
+D7BB9A647C91FBFFFFFCEEDF5B004FD7E6F1FFFFFFF4F4F5FDFDFEFFFFFFFFFFFFFFFFFFFDFCFF
+FFFFFFDDCAF55B7FF4EAF6FFFFFFFFFDFDFEFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE
+FEFFFFFFFFF8C0A36A2374AFFFFFFAB2A37C6A96CAFFFFF38D83729CBAD6F9F9F8F6F5F5F2F2F5
+EAE1C21F477AE1EFFEF2E3CF4E005DE7F7FFF1D9C36D5959DAF3FEFFFFFFFEFEFEFEFDFFFFFFFF
+DCC8F65C45F2F0FAFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFE7C9B34F5056CAE6F9
+FFFFFFFFFFFFFFFFFFF1EADB988A90B8C0C18C5E38B6D9E8F2E8D9560056E3F5FFFAE5CE706150
+C4DFEBF8F6F6F5F5F4F6F8FBEDE6C715447EE5F0FAE3D4A9005FA0F7F6F2B4965984B7D6FFFFFF
+FFFFFFFFFFFFFFFFFEFEFEFFFFFFFFD8B2F3306BF2DFF2FFFFFFFFBFB0F3476FF5FCFFFFFFFFFF
+FFFFFFFFFFFDFEFFFFFFF7E47A50005788A7F8FFFFFFFFFDFCFDFEFFFFFFFFFFFFF7EED0455471
+CCE0F7FFFAEE925B00B4DCEDF9E9DB77482ACBE9F7FFFFFE9C6C6AA8B8C8B79B8668819BFAFFFF
+F6E9DA60005BDCE9F4FFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFEFDFFFFFFFFEFE1F98080F4E8F4FF
+FFFFFFF8FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFFFFDC2A164
+0072AEFFFFFEAF9F786088B6F5F5E98B5E475C7A97E7F4F7E4D2C0A4ACB9E2E3C9294A7BE4F3FF
+F7E7D5480057EBFCFFF7DCC76C5752DDF8FFFFFFFFFEFEFEFCFCFFFFFFFFE0CBF65028F1F0FEFF
+FFFFFFFFFDFAE2D9D2D3DAE4FEFFFFFEFDFCFFFFFFECCEB743404CCDEAFFFFFFFFFBFCFEFFFFFF
+BB863F3B83A4EBF0EC8B4300A4CBD6E6E2D54E0059E5F6FFFFF7E06C4D2483A0C0FAFCF9CDBBB2
+A9B9CEEEE8C9003B7CEAF6FFE9DBAF005CA2FCF8F4B2925177A8C7F0F2F2E1DDD9D4D7DBF7FEFF
+FFFEFEFFFFFFF5E5F82A0FEFC7E1FEFFFFFE946DEF8EB7FAFFFFFDE3D9D3D1D7E0FAFFFFFFFEFE
+FFFFFFD1B695000000AEC3D8FFFFFFFFFFFFF6EADAB5B8C1E4E6D4535269CDE0F7FFFEF1803400
+BDE4F3FEEEE078461CCFF0FDFFFFFF936461A8B8D3DEC6A200184ED4EBFAF3E6D336002EC7D8E7
+FAF7EED0CECEEDF6FBFFFFFFFEFEFEFFFFFFF7EAFA775AF0A9B6F9EDEBFBB6A6F6D4E4FDF4F2E4
+D2D3DAF8FDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFDBCBBC765B31002F62BFCDD5C8BDAC
+38000090ADBFD8D0C5692E00001930556075CFDBDCC3B591000049B6C7D6C8B39F000036B2C2CF
+C7B49A240000A6C3D5FBFFFFFEFDFEFFFFFFFFF8FCAC9BF3594CF0B4C9F9FDFFFFFFFAEFA6792D
+002A6DE2F7FEFFFFFFF7F3EDAA8A711E1A227992B0EDF3F8FFFFFFFFFFFFD8BD9B11243F7C8083
+695F4C5462768F8A82240037AABACBFFFFFFD6BFA3000000454F55677B9AEAF3F1C5AA8500004D
+B3C0C8AF9E7E002966D0DAE1C9B28E000042A9BEC9AF99853D5770E6FCFFFFFFFEFDFEFFFFFFFF
+D9C4F59294F4AFA8F49194F5F7FFFFFFFFF69F855C00306BDDF1FFFFFFFEFEFFFFFFFFF5C6B29A
+221D3286959EA9A5A0807A80B3C9D4CEC5AF17000092A7BBCABFB33800008CA9BDC4B1A03B0000
+9CB9C5D5D5C55A1E006880A4EBEAE29A7B57415A6D88826F0000009BB8C9DAD2C32A0000C4E6F4
+FFFFFFFDFFFEFFFBFDB39BF1384FF0696EF15644EE567EF5F9FFFFD6C49B000053E5F9FBFFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F1EEEDEEF0F0EFEDEDF0F4FBFBF9EBE8E7F0F5F8FFFFFF
+F3EFEDE0DFE0EFF4F9FFFFFEF1EEEDF0EFEFF1F2F3F2F0EFEFF0F0EFF0F1F2F2F0EEEEEFF0F0F3
+FCFEFFFFFFFFECECFCD0CCF8C2C2F7C6C6F8C1C3F8D3D6FAFEFFFFE9D7BB788594E8FAFFFFFFFF
+FBF9F7EEEDEDF1F1F0ECECEDF8FAFCFFFFFFFFFFFFFFFEF9ECEAE8EEEEF3F7F5F2EEECEDEFEEEE
+F0F0EFEEF0F2FCFFFFFFFFFCEFEBE6DFE2E4F5FAFDFFFFFFF0EFF0F1F0EFEFF0F0EFEEEFF0EFEE
+F3F7F9FBF9F5EAE8EAF5F9FCFBF9F3EEF0F3FDFFFFFFFFFFFFFFFFFCFDFFDEDEFAC0B8F6B4B3F6
+CFD5FAD6D6F9ECEDFFE9DBC7787D94E2F4FFFFFFFFFDFEFEFFFFFFFFFFFFF2ECE6D7D2CFD3D5DA
+EBEFF6FFFFFFF6F2F0F0EFEFEFF0F1F0EFEFF0F1F1EFEEF0F0EFEEEEEFF0EFF0F0F1F1F1F0EFEE
+EDEFF0F9FCFFFEF9F4E9E5E4E8EAEBF2F1F0F7F9FBFCFBF8EFEFEFF9FCFEFFFFFFFEFFFFFFFEFE
+D3D3F9C4C4F8C7C7F8C6C6F7C9CEF9DFE1FCFAF6F2EAECEEFAFEFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFDBDBFA
+B0B2F6BFC0F7BEBEF7BDBCF6B7B6F7FDFCFDDED9CFCEDAEAFFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
+FEFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFAF9FEBABAF7BBBDF7C0C0F7BCBBF6ADADF5DBDCFC
+E3D4CAD0D6E3FFFFFFFEFEFEFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFD2D2F9B8B8F6BEBFF7
+BEBFF7B8B7F6C2C2F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFEFEFEFEFEFEFEFEFEFFFFFFFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFEFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF
+FFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFEFEFEFEFEFEFE
+FEFEFEFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFEFE
+FFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFDFDFFFDFDFFFDFDFFFDFDFFFDFDFEFFFFFF
+FFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFDFDFFFDFDFFFDFDFFFDFDFFFDFDFFFEFEFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFDFEFFFDFDFFFDFDFFFDFDFFFDFDFFFDFDFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFA5A5A5939393A0A0A09D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D
+9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D
+9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D
+9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D
+9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D
+9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D
+9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D
+9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D
+9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D
+9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D
+9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D
+9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D
+9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D
+9D9D9DA0A0A0919191ABABABFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF949494
+F2F2F2FCFCFCF9F9F9FAFAFAFAFAFAFAFAFAFAFAFAF9F9F9FAFAFAFAFAFAFAFAFAFAFAFAFAFAFA
+FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA
+FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA
+FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA
+FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA
+FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA
+FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA
+FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF9FAFAFAFAFAFAFAFAFAFAFA
+FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF9F9F9FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA
+FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA
+FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF9FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA
+FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF9F9F9
+FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF9F9F9FDFDFDEEEEEE
+969696FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFEA0A0A0FAFAFAFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6A1A1A1FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F7F7FFFFFFFEFEFEFEFFFEFEFEFEFFFEFF
+FEFFFEFEFEFEFEFEFEFFFFFFFFFFFFFFFEFFFEFEFEFEFEFEFFFEFFFEFEFEFFFFFFFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFFFEFFFFFEFFFFFFFFFEFEFEFEFFFEFEFFFEFEFEFEFFFFFFFFFFFFFFFEFF
+FEFEFEFEFEFEFEFEFEFEFEFEFEFFFEFEFFFEFFFFFFFEFEFEFEFFFEFEFEFEFFFEFFFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFEFEFEFEFFFEFEFFFEFFFFFFFFFEFFFEFEFEFEFFFEFEFFFE
+FEFFFEFEFEFEFEFFFEFEFEFEFFFFFFFEFEFEFFFEFFFFFFFFFEFEFEFEFFFEFFFEFFFEFEFEFFFEFF
+FEFEFEFEFFFEFEFEFEFFFEFFFEFEFEFFFFFFFEFFFEFEFFFEFFFFFFFEFFFEFEFFFEFEFEFEFFFFFF
+FFFEFFFFFFFFFEFEFEFEFEFEFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFEFFFEFEFEFEFFFFFF
+FFFEFFFFFFFFFEFEFEFEFEFEFEFEFEFFFFFFFEFEFEFFFFFFFFFEFFFEFEFEFEFEFEFFFFFFFEFEFE
+FEFEFEFEFFFEFFFFFFFEFEFEFEFFFEFEFFFEFEFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFFFEFFFEFFFEFEFEFEFEFEFEFFFFFFFEFEFEFEFFFEFFFFFFFEFEFEFEFEFEFFFEFFFEFEFE
+FEFEFEFEFEFEFFFFFFFFFEFFFFFFFFFEFEFEFFFEFFFEFEFEFFFFFFFEFEFEFFFFFFFEFFFEFFFFFF
+FEFEFEFEFEFEFEFFFEFEFFFEFFFFFFFEFFFEFEFEFEFEFEFEFFFFFFFFFEFFFFFFFFFEFEFEFEFEFE
+FFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFF3F3F39F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFE
+9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE9D9D9DF7F7F7FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF9D9D9DF7F8F7
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE9D9D9D
+F7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F4
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE9D9D9D
+F7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F4
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFFFF9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFFFFFFFFFFFFFFFFFDFDFCFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFEFFFFFFFFFEF1E5D8
+9D8986B9C6D7FFFFFFFEFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF9D9D9DF7F7F7FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFEFEFFFFFFFEF7DACDBD320015A6B7CDFFFFFF
+FEFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFFFFFFFFFEE8DCD3BDBDC1C8C9C49B9195C6D7E3FFFFFFEFE5D9B0A59E
+96969DD2DCE9FFFFFFFEFEFEFFFEFEFEFFFFFFFFFF9D6D6CA7B5CDFFFFFFFEFDFDFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
+FEFEFFFFFFFCCFB8970000008094A49C8C66006394EAEEF3AF7858B0C7D7CEBCADADB5CAFFFFFF
+FEFDFDFEFFFEFFFFFFFFFFF6936261A6B5CDFFFFFFFEFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFEF4D4
+3A4E69D4E5F8FDF2CB004284E4E9F2BE9363406886BDCCD9EEF2F5FFFFFFFEFEFEFFFFFEFFFFFF
+FFFFF7956362A6B4CCFFFFFFFEFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFCF5D94D5471CEE0F4F5E8C2
+004983E3EDFAF7EBDB968464000000ABC5D7FCFFFFFFFEFEFEFEFEFFFFFFFFFFF7966766A8B6CE
+FFFFFFFEFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFAEACA082F5ECEE0F6F6EAC1004084E0E0EAC4B6B2
+EBFBFDCBAE7A0079A2F1FDFFFFFFFEFEFEFEFFFFFFFFFFFA9154529CAFC8FFFFFFFEFDFDFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFFFFFFFCCDBA9E454459A5B4C1B8AF9B4B5768B5BECFB594858895A09C9893B2C9D9
+FFFFFFFFFEFDFEFFFFFFFFF9D7CCBA715C5D707E8CCFE2EFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
+FAFAFBFCFBFBFAF9F9F8F8FAFCFBFAF9FAFBFEFEFCF2F0EEEDEFF6FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFEFAF9F8FAFBFBFAF9F9F9FBFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF9D9D9D
+F7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F4
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFF
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFE
+9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF9D9D9DF7F8F7FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFF9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9D
+F7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F4
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFFFF9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFEFCFDFEFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE9D9D9D
+F7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFE0C6AD869CADECFAFFFFFFFDFCFDFDFEFEFEFDFDFDFDFDFEFFFFFF
+D3BCAD8E99A6F1FFFFFFFFFFFFFFFFFDFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFDFDFDFEFEFFFFFEFDFDFDFDFDFDFEFEFE
+FFFFFFFEFEFEFDFDFDFDFDFDFEFEFFFEFEFEFDFDFDFEFEFDFDFDFDFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F4
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE9D9D9DF7F7F7FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFEAD7C3A6B5C3F2FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFCCC1ACB3BEFBFFFF
+FBEDE4C9CED1FDFFFFFFFEFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F5F0E0E1E4
+F6FCFFF6F0E8D5D6D9DFDCD7C4C2C5E2EEF6FFFFFFF7F1EBDFE1E7F5F3EDAF8D5E356370CCE0ED
+FFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2EDE6
+DEE0E3DBD2CCD2DDE9FFFEFBD6CAC2BDC4CDEFF5FBFFFFFFF4EADFC0BCBAC2C9D3EFF4F8F5EEE7
+D9D9DAD9D6D3C0BEC2E2EEF5FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFF9EFB0906A317191E7F6FFCDAF90000000
+7980865B492F5C81ACF4F4F0A8835D4D728FE4EFECA07448335569C0D2E2FEFEFFFFFFFFFEFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF9F4E89B795B2E43585F56476D90AC
+AB9C9BA1AAAF9A8765547B9EE7EAE4988287B7C5C99C8A83B7C3D1C5A88600001A7C86875D3D00
+255484E3F1F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFFFFFFFFE4C79C3A738DEAFDFFF0DFCE430043DCF2FBE8D3C05B3B74
+F2FFFFDEBA9D66727FF1FFFFD0A08397A4BCFFFFFFFFFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFCDB7A6493876EBF9FEEDDABB2B413C92ACBCB3A584
+00246ACFD4CA684648A2B6C5E1E3DBEBEEF9EBCFA4286181E3F5FFFBEEDA5F00009EC8E0FFFFFF
+FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFE7CDA345768DE9FDFFF4E4D1520058E4F5FFF6DFC97F6280F4FFFFE4C1A569717E
+EFFFFFCA9F829CA5C3FFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFDFEFFFFFFDAC4B35F4D82F9FFFFE4C2A55C6970CBDFE5E5E4E3E9ECEEF5FAFADBCAB4
+27000017618CE2EDF8EDD3A84D7A90E4F8FFFFFFF1A98C518BBDDAFFFFFFFFFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEED2A7
+437693F0FFFFF8E9D64E0059E9FBFFF4DECB745478F7FFFFE8C5A86F7984F5FFFFCB997A899EB1
+F2FAFAFAFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFCFEFFFFFF
+DCC7B45C4C87FBFFFFF4DCBE293045BCD0E5FFFFFFD2BFBAA8B2A8BCCBDDFCF4EB8B430085ADC3
+E5D8B33C6784EBFEFFFFF3DE6D4233BFDCEDFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFCF4ECB6986C000045B5C8DBC9B4A0
+000000B9C7D1BDA88C000030B7CAD3B5917100163BC5DFEBD4B69A0F250089A0BBF4FAFDFFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFBF7E89C826A000048C5D6E1
+FFFFF9B291700000005B6160798AA7E2DFC9605D62ACB9C095786BBACFE1EDDAB500001E979EA5
+9688737E9EBCFCFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFCF8F4E7E6E5E6E6E5E8EAEDEBE8E7E6E7E7E8E9EBEBEAE7
+E5E7E9E8E6E8E8E7E6E4E4E5EBEFF3F9F7F3DFDCDBE7EDF4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFAF8F3E6E4E4E6E6E5E8ECEFFFFFFFFFF9F3E0DDD8
+D5D9DDF5FAFDFFFFFCE9E4E4D8D6D2DAE3E9FFFFFFEDD2AA537986CCD8DFDBDCE0F8FDFEFFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFD7BB8F004C72D6EAFBFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
+FEFEFEFDFDFDFEFEFEFEFEFEFDFDFDFEFEFEFEFEFEFDFDFDFEFEFEFEFEFEFDFDFDFEFEFEFFFEFE
+FEFEFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFEFEFDFDFDFDFDFEFEFEFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFEFEFEFEFEFDFDFDFFFF
+FFF9F0C3B7AD99989AB0B9C9F5FAFDFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFCFDFEFFFFFE
+FCFBFBFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE9D9D9D
+F7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F4
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFE9D9D9DF7F8F7FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFE9D9D9DF7F8F7FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE9D9D9DF7F7F7
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9D
+F8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F4
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFFFEFEFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE9D9D9DF7F7F7
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFDFEFDFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FDFDFDFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFDFDFFFDFDFFFEFEFFFFFFFF
+FFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFEFEFB6B6B67878786C6C6C7B7B7BBFBFBFF3F3F3FFFFFFFDFDFDFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFFEFEFFFFFFFFECECFFB1B2FF7677FF6C6DFF8082FFC1C1FFF6F6FFFFFFFFFEFEFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFFFF9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFD1D1D1494949000000
+0000000000000000000000005B5B5BE7E7E7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1C1C1B6B6B6F7F7F7FFFFFFFDFDFDFFFFFF
+D2D3FF4143FF0000FF0000FF0000FF0000FF0000FF6C6DFFE2E3FFFFFFFFFEFEFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9D
+F7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFDCDCDC282828000000222222171717191919171717
+2323230000004B4B4BEBEBEBFFFFFFFDFDFDFEFEFEFEFEFEFEFEFEFEFFFEFEFFFEFEFEFEFEFEFE
+FEFEFEFEFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFEFEFEFEFEFEFE
+FEFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFEFEFEFEFEFEFEFEFEFEFEFFFEFEFEFE
+FEFEFEFEFFFEFEFEFEFEFEFEFEFEFEFEFFFEFEFEFEFEFFFEFEFEFEFEFEFEFEFFFEFEFEFEFEFEFE
+FEFFFEFEFFFEFEFEFEFEFEFEFEFEFEFEFFFEFEFEFEFEFFFEFEFEFEFEFEFEFEFEFEFEFFFEFEFEFE
+FEFFFEFEFEFEFEFEFEFEFEFEFEFFFEFEFEFEFEFEFEFEFEFEFEFFFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFFFFFFFFFFFF626262000000909090F9F9FAFFFFFFDEDFFE0000FF0000FF2223FF
+1719FF191AFF1719FF2525FF0000FF6061FFEFF0FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F4
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF9D9D9DF7F7F7FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFFFFFFFFFFFFFFFF8B8B8B000000272727010101030303020202030303010101272727000000
+929292FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7E7E76565650000008D8D8BFAFAFB7C7DFF0000FE2526FF0002FF0306FF0205FF0306FF
+0407FF2828FF0000FFA8A9FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFFFFDFDFDF
+2626260000000E0E0E020202030303030303030303020202171717000000575757F4F4F4FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFE5E5E5
+6363650000007E7E8D4141FB0000FF0A0DFE0306FF0306FF0306FF0306FF0204FF191AFF0000FE
+6565FEF0F0FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFFFFFFD3D3D3000000191919060606
+0303030303030303030303030303030606060000001D1C1D6E6E6E838383808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+808080808080808080808080808080808080808080808080808080808080808080808080808080
+8080808080808080808080808080808080808080808080807E7E7E8686867070721C1C00000008
+0000F20C0EFF0104FE0306FF0306FF0306FF0306FF0306FF0B0DFE0102FD000FFBDCDDFCFFFFFE
+FDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF
+9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFFFFFFD3D3D30000001A1A1A050505030303030303030303
+0303030202020E0E0E000000333333AFAFAFC8C8C8C4C4C4C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5
+C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5
+C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5
+C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5
+C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5
+C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5
+C5C5C5C5C5C5C5C5C5C5C5C5C4C4C4C4C4C4CDCDCD8383840000000000220B0DF30407FF0205FE
+0306FF0306FF0306FF0205FF1516FF0000FC5959F5C9CAFCE6E6F8FDFDFAFDFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFE6E6E64646460000001414140202020303030303030303030101011B1B1B
+000000616161FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDBDBDB4C4C4F0000009D9DB24849FE0000FF0F11FE0205FF0306FF0306FF
+0205FF1B1CFF0000F97878F0E0E0DCD0D0D0FBFBFBF9F9F9FEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFF9A9A9A0000002A2A2A0606060202020303030101010A0A0A262626000000A9A9A9FFFFFF
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFCFCFCFFFFFFCDCDCD
+000000000000B2B2B0FFFFFF898AFF0000FE2728FF0407FF0205FF0306FF0003FF1E1FFF0000F7
+7676EEC8C8C934342CDBDBDBFAFAFAF9F9F9FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF0F0F0676667
+0000002222221B1B1B0B0B0B1F1F1F1A1A1A0000006A6A6AF1F1F1FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D4D4D000000B5B5B5FEFEFF
+FFFFFFE4E4FE4447FF0000FF2121FF1B1CFF0C0FFE1F20FF1C1CFF0000F78E8FECD1D1CF000000
+5C5C5DDADADAF9F9F9F9F9F9FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEEEEEE7B7B7B000000000000
+000000000000000000898989E9E9E9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAFBABABAFEFEFEFFFFFFFDFDFEFFFFFFE0E0FF
+7172FF0000FF0000FF0000FF0000FF0000FF8788F7E1E1ECD1D1CE000000000000585858DADADA
+FAFAFAFAFAFAFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFE9D9D9DF7F7F7
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFFFFFFF8F8F8D8D8D8ABABAB606060B8B8B8DDDDDD
+FAFAFAFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFEFEFFFFFFFFF4F4FED8D8FFAAABF5
+6465D7B9BAFBDDDEFFF4F4F7F0F0ECCDCDCE0000002E2E2E000000555555D8D8D8F6F6F6F9F9F9
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFEEEEEEA5A5A5FDFDFDFFFFFFFFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFEFFFFFFEFEFECA9A9A6FDFDF8FFFFFF
+F8F8F7EBEBECCECECE000000060606222222000000636363EAEAEAFAFAFAFBFBFBFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFDFDFDFFFFFFEBEBEBA8A8A8F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFDFDFEFFFFFFEDEDEDACACACF8F8F9FFFFFFF6F6F7ECECECCDCDCD
+000000585858000000AFAFAFBDBDBDDFDFDFF0F0F0F5F5F5FEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+EBEBEBA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFEDEDEDABABABF8F8F9FFFFFFF7F7F7ECECECCACACA7B7B7BBEBEBE2C2C2C
+9B9B9BDFDFDFC4C4C4E3E3E3F8F8F8FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFE9D9D9D
+F7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+EDEDEDABABABF9F8F9FFFFFFF8F8F8E8E8E8E8E8E8B8B8B8D2D2D2A0A0A0000000C9C9C9E6E6E6
+F4F4F4FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F4
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF9D9D9DF7F8F7FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9
+FFFFFFFAFAFAE8E8E8E3E3E3CBCBCBD1D1D1D3D3D31F1F1FA6A6A6F7F7F7F7F7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFDFDFDF1F1F1
+E4E4E4F0F0F0E4E4E4DDDDDDB6B6B6C0C0C0EAEAEAF7F7F7FFFFFFFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFEFEFEFEFEFEFEFEFEFEFFFFFEFEFEFFFFFFFEFEFEFEFEFE
+FFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFF3F3F39E9E9EFFFFFFFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFEFEFEFEFEFEFFFFFFFEFEFE
+FEFEFEFEFEFEFEFEFEFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFEFCFCFCFBFBFBFDFDFDF7F7F7
+DDDDDDD4D4D4D5D5D5E7E7E7FCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFFFFFFF3F3F3A0A0A0FFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFEFEFEFEFEFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFE
+9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7
+F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFEFDFDFDF7F7F7EFEFEFEBEBEBE3E3E3D5D5D5D8D8D8
+E5E6E5EBEBEBECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECEC
+ECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECEBEBEBEFEFEF
+E0E1E0878787EEEEEEECECECECECECECECECECECECECECECECECECECECECECECECECECECECECEC
+ECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECEC
+ECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECEC
+ECECECECECECECECECECECECECECECEDEDEDF1F1F1F9F9F9FDFDFDFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABAB
+F9F9F9FFFFFFFDFDFDF7F7F7EAEAEAE6E5E6E3E2E3E2E1E2E1E1E1E1E1E1E2E1E2E2E2E2E2E2E2
+E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E1E2E2E2E2E2E2E2
+E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E1E2E4E3E4DEDDDEC3C2C3E3E3E3
+E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2
+E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2
+E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2
+E2E2E2E2E2E2E3E2E3E7E6E7ECECECFAFAFAFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFDFDFE
+EFEFEFE2E2E2F3F2F3F2F1F2F2F1F2F2F1F2F2F1F1F1F0F1F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2
+F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2
+F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F3F2F3F6F5F6F2F1F2F2F1F2F2F1F2F2F1F2
+F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F0F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2
+F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F0F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2
+F2F1F2F2F0F2F2F1F2F2F1F2F2F1F2F2F0F1F2F1F2F2F1F2F1F0F2F2F1F2F2F1F2F2F1F2F2F1F2
+F1EFF1E1E1E1F5F5F5FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFF9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFDFCFDECECECDDDDDDF2F0F2
+EFEEEFEFEEF0F0EFEFEFEEF0F1F1F2F0EFF0EFEEEFF0EFF0F0EEF0EFEEEFEFEEEFEFEEF0EFEEF0
+EFEEEFEFEEEFF0EFF0EFEEEFEFEEEFEFEEEFEFEEF0F0EFF0F0EFF0EFEEF0EFEEEFF0EFF0F0EFF0
+EFEDEEEFEFF0F1F0F0F0EEEFEFEEEFEFEEEFF0EEF0EFEFEFF0EFF0EFEEEFEFEEEFEFEEEFEFEEEF
+EFEEEFF0F0F1F2F1F1EFEEEFF0EFF0EFEEF0F0EFF0EFEFEFEFEEEFEFEFF0EFEEEFEFEEEFF0F0F1
+F1F0F0F0EEEFF0EEF0EFEEF0F1F0F1F1EFF0EFEEEFF0EFF0F0EFF0EFEEEFEFEFF0F1F0F1F0EFF0
+EFEEEFEFEEF0F1F1F2F1EFF0F0EFF1F2F0F1EFEEEFEFEFF0EFEEEFF0EFF0EFEEEFDBDBDBF2F2F2
+FDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFEFF9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECEC
+A7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFCFCFCEAEAEADCDBDCF2F1F2F0EFF0F0EFF0EFEEF0
+F2F0F0E8E3E4EBECEEEFEEEFEEEDEEEFEEEFF0EFF0EFEDEEEEEDEEEEEDEEEFEEF0F0EFEFEFEDEE
+EEEDEEEEEEEFF0EFF0F0EFF0F0EFF0EFEEEFEEEDEEEEEDEEEFEEEFF0EEF0F3F3F5F3F1F2EDECEE
+F0EFF0F0EFF0F0EFF0F0EFF0EFEEEFEEEDEEEEEDEFEFEFF0F0EFF0F0EFF0F0F0F1EFEBEAE5E3E7
+F0EFEFEEEDEEEEEDEEEFEEF0F0EFEFEFEEEFF0EFF0EFEEEFEFEEEFEEECEDECEBEDEEEDEEEEEDEF
+F0EFEFEDECECEDEDEFEFEEEFEFEEEFF0EFF0F0EFF0F0EEEFEDEBECEDEDEEEEEEEFF1EEEDE8E4E3
+EAEDEFEDEBE7E4E6EBF2F1F2EFEEEFF0EFF0F0EFF0EFEEEFD9D9D9F1F1F1FDFDFDFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDED
+ABABABF9F9F9FFFFFFFCFCFCE9E9E9DBDBDBF2F1F2F0EFF0EFEEEEF1F3F7EADBCA8E8C99DCEBF2
+FAF8F9F8F7F7F4F1F2F0EFF1F5F6F7F8F7F8F9F7F7F3F0F0EFEFF1F6F6F8F9F8F9F7F5F4F1EFEF
+F0EFF0F0EFF0F4F4F6F7F6F8F9F8F8F5F2F2EFEEEFEAE6E3BAA4999DB5C9EFF2F5F1EFEFF0EFF0
+F0EFF1F5F5F7F8F7F8F7F5F6F2EFF0EFEFF0EFEEF0F6F4EFBAA492A9BCD5FCFBFCF8F7F8F9F8F9
+F5F2F1EFEFF2F5F5F5F1EFEFF0F0F4FCFCF8C7B0A6A0BAD4F9FDFFF7F5F6F9F4E9ACA38FB6CFDE
+F8F9FBF7F5F5F0EEEEF1F3F6EDDDD2938CA0E0E9F8FEFBFAFAF6F2CAB1A0A8BBCFE3DDCA8F97A6
+E4EEF6F4F0EFEFEEF0F0EFF0EFEEEFD9D8D9F0F0F0FDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFF
+FCFCFCE9E9E9DBDADBF2F1F2F0EEEFEEEEF1F9F5EFBDA28896B7CDF0EEEBBEB0A79EA3ABD4DFE6
+F0EDE9C6BBB6AAA9A39FA6B1DEE5EEF5EFE9C1B4AB96989DBBC5D0EDF1F3F0EEF0F1F0EED1C6C2
+B2B0A99B9EA3CBD5E1F5F3F3C2AE9D3C250083AEC9F0F2F5F0EEEEEFEFF1F2F0ECCCC0B8A2A0A1
+B0B8C3E5ECF0F1EFEFF1F2F6EBD9C47E7C8EDEE4E5C8BCB2A1A1A19D9EA4CDDAE8F4ECE0C4C0C4
+E9EFF3E3D6CDCFD6DFC6B1A45E6E85A2A2A2AAB5C7F3F5EBA3967DB9D9E3E2D9CBACAEBBE8EEF0
+F3F4F7ECDDD28463618E97A2A1A1A5D1E0EEEFDFD0857E97E1E4E3AE9883B6CCDDF6F6F5EFEDEF
+F0EFF0EFEEEFD8D8D8F0F0F0FDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFCFCFCE9E9E9DBDADB
+F2F1F2EFEEEFEFF0F5F5EBDFA08378C7D3DEC9AB88718696A79D8F5D6F96D5D8D5723D4DA2B5BD
+A492749BB8C6CFBCA16E7C8AC1C1B9827992D0DAE8F5F3F3F4F3EB966D657B93AABCB097748C99
+E3F0F6F2F0EDBDA9A18CA9C2EFF3F7F1EEEEF0F1F5EDDECC9A8E8FB7B8B06B6261ABCBE2F5F2F1
+F4F6F8D4B6A58292B9F3E8D97D5C2382A1B6BBAA9071839DDEDCC8896F7FE1EEF6CFAE968EA4C1
+CDB8AA4C436FBEC5C17F7172ADC1CBB3A994909D9D827C7FB6CBD5EFF1F1F1F2F5EEE0D7855322
+90ABB9B7A68F66749DEEF1E8A5937DC2DBE5CEB9A88BA9C5F0F4F7F1EEEEF0EFF0EFEEEFD8D8D8
+F0F0F0FDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+ECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFCFCFCE9E9E9DBDADBF2F1F2EFEEEEF1F3F6
+EFE1D78D798ACFD4E1AA7A51718599ABA89C817E93C8C7C4878A9EE2F3FCDBCBAA93ABB6A9948E
+ABBFDEFFFFFEEAE1E2E3E3EAF2F1F3F4F1E99C888CBDD9F0F6EACE7E8E94DCEDF6FCFBF8C9B4A8
+8CA8C2EFF3F7F1EEEEF0F1F4ECDED4AFA49FADAEA7746E6CABCBE1F5F2F2F6F8F5C2A99E8AADCE
+F1EAD7937E86E0EEFAFFFDED8B828BB1BFBB9C8A93E8F4FCD8B8A59BADC6C7B2A994B1D0FFFFFF
+E1C0A4938E96ADAD930000006A8AA2ECF7FBF5EFEEEFF3F7EEDCCF897C92DEEBFEFFFAE3897F73
+C9E1E0AA9E83B2D4E5CFB8AD819DBEEEF3F6F1EFEFF0EFF0EFEEEFD8D8D8F0F0F0FDFDFDFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9D
+F7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+EDEDEDABABABF9F9F9FFFFFFFCFCFCE9E9E9DBDADBF2F1F2EFEEEFEFF1F5F5EADE9E8579C8D2DB
+BD9B78809BB0CAC4B78A91A4D3D0CD7A758BDAEDF5D0BD9889A9BAC3AF977C8DA5D8D6CE8A7D91
+CBD8E8F6F4F3F4F0E892797BB3D2E9EEE0C26C828CDCEDF6FBF9F5C2AA9B7EA0BEEFF4F7F0EDED
+F3F6F9DBBCA4525677C9C9C3725E4F99BBD5F5F3F3F4F6F8D1B6A57E95BAF2E8DA89704EA0B7CE
+D6C4AF707A8ED4D7CC8A7271C6D3D59C7D6482A3C5CAB3A03F5383D7DDDDA0837DA0AFBAA59F85
+B0C6C7AB8E7784A3BFEEF1F3F2F3F6EDDED3783C20A2BDD1D4C3AB676788E6EEE7A7967BBCDAE5
+CEBAA984A3C1EFF3F7F1EEEFF0EFF0EFEEEFD8D8D8F0F0F0FDFDFDFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9
+FFFFFFFCFCFCE9E9E9DBDADBF2F1F2F0EEEFEEEEF1F9F7F0BDA68EA1BDD0EAE6DCA698908E8C94
+B7C4D4E8E6E1B0ACB7E3EEF4DDD1BEB6C7D2EBEAE3AC998C85858AA4AFC1E8EEF3F1EFF0F3F0EB
+BEB1B2CDDEECEFE6D5ADB5B9E3EEF4F7F5F3D6C9C1B5C3D2EFF2F4F0EEEEF0F1F4ECDFD4A9A09A
+9A9A9C959290AEB6C7F0F3F3F1F1F6EDDCC583859AE0E1D792795B7B848F8F8E8CB7C8D8F6F5EE
+C2B2A58E8C8C888A90B8C9D9DCCFC592898891918D8E9BB0E3EDEAC5BCB0D0E1ECECDCCFA39EA6
+DEEBF0F3F3F4EEE5E0B49E928D91958B858ABECFE3F2E5D7887688DAE3E3B59D82ABC2D7F5F6F6
+EFEEEEF0EFF0EFEEEFD8D8D8F0F0F0FDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFCFCFCE9E9E9
+DBDADBF2F1F2F0EFF0EFEEEEF1F3F7EAD9C98A8A9BDEEDF4F9F5F5F2F1F4F5F4F4F1F0F1F5F5F5
+F1EFEFF2F2F5F5F3F3F1F0F2F6F4F5F3F1F3F6F5F5F1F0F0F0EFF0F0EFF0F5F4F5F3F1F0F0F0F3
+F6F4F5F1EFEFEFEEEFF3F3F4F5F3F3F0EEEFF0EFF0F0EFEFF1F1F3F5F5F4F3F2F3F7F6F7F2F1F2
+F0EEEFEFEEF1F6F3EDB7A69BACADACA08C92DDE7F0F8F8F8F4F2F3F0EFF0F4F4F6F4F3F5F7F6F8
+F5F3F2F2F2F4F8F7F7F4F3F3F5F5F5F2F0F1F4F3F5F2F0F0F1F1F4F7F6F6F1EFF0EFEEEFF0F0F1
+F6F6F8F7F5F4F3F2F6FCFAF6CCB39F98B1C5E2DFCB888898DFE9F4F5F1F0EFEEF0F0EFF0EFEEEF
+D8D8D8F0F0F0FDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFCFCFCE9E9E9DBDBDBF2F1F2EFEEEF
+EFEEEFEFEEF0F2F0EEE2DEDDE8EBEDF0EFF0EFEEEFEEEEEFEFEEEFEEEDEEEFEEEFEFEEEFEEEEEF
+EFEEEFEFEEEFEFEEEFEEEDEEEFEEEFF0EEF0F0EEEFEFEEEEEFEEEFEFEEEFEEEEEFEFEEEFF0EFEF
+EFEEEFEEEEEFEFEEF0EFEEEFEFEEEFEFEEEFEEEDEFEFEEEFEEEDEEEFEEEFEFEEEFEFEEEFF1EFF1
+ECE8E6E1DBDDE1DDE0EAEBEEF0EFEFEEEDEFEFEEEFEFEDEEEFEEEFEEEDEEEEEEEFEFEEEFEEEDEE
+EFEEEFEFEDEFEFEEEFEFEEEEEFEEEFEFEEEFEEEDEFEFEEF0EFEEEFEFEEEFEEEDEEEEEDEFEFEEEF
+F1EEECE4DFDDE5EAEDEBE9E3DDE0E6F1F1F2EFEEEFEFEEEFF0EFF0EFEEEFD9D9D9F0F0F0FDFDFD
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF
+9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7
+F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFEDEDEDABABABF9F9F9FFFFFFFCFCFCEAEAEADDDCDDF4F2F4F2F0F2F2F1F2F2F1F2F1F1F2
+F5F4F5F3F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2
+F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2
+F2F1F2F3F2F4F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F3F3F4F5F4F5F4F4F5
+F3F1F2F1F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2
+F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F2F1F2F1F1F2F4F3F5F4F2F3
+F3F2F4F5F3F4F2F0F1F2F1F2F2F1F2F2F1F2F1F0F1DADADAF1F1F1FDFDFDFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABAB
+F9F9F9FFFFFFFCFCFCEFEFEFE1E1E2ECEBECE9E8E9E9E8E9E9E8E9E9E8E8E8E7E8E8E8E9E9E8E9
+E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9
+E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E8E7E8E4E3E4E9E8E9
+E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E8E7E8E8E7E8E8E7E8E8E8E9E9E8E9E9E8E9
+E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9
+E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E9E8E9E8E7E8E8E7E8E9E8E8E8E7E8E9E8E9
+E9E8E9E9E8E9E9E9EAEAE9EAE1E1E1F4F4F4FDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFDFDFD
+F8F8F8EAEAEADADADAD3D3D3D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1
+D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1
+D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D0D0D0D4D4D4C7C7C7818181D3D3D3D1D1D1D1D1D1D1D1D1
+D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1
+D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1
+D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D4D4D4
+DDDDDDEEEEEEFAFAFAFEFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFDFDFDFCFCFCF8F8F8F4F4F4
+F1F1F2F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
+F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
+F0F0F0F0F0F0EFEFEFF3F3F3E5E5E5949494F2F2F2F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
+F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
+F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0
+F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F2F2F2F4F4F4F9F9F9FDFDFD
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECEC
+A7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFEFEFEFEFDFCFDFBFBFBFBFBFBFAFAFAFAFAFA
+FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA
+FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF9F9F9
+FDFDFDEFEFEF9C9C9CFCFCFCFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA
+FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA
+FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA
+FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFBFBFBFBFBFBFDFDFDFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE9D9D9DF7F8F8
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDED
+ABABABF9F9F9FFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFFFFFFF3F3F39E9E9E
+FFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFDFDFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE9D9D9DF7F7F7FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+ECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9D
+F8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+EDEDEDABABABF9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F4
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7
+F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABAB
+F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECEC
+A7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE9D9D9DF7F8F7
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDED
+ABABABF9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFE9D9D9DF7F8F7FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+ECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9D
+F7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+EDEDEDABABABF9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F4
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFE9D9D9DF7F8F7FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7
+F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE9D9D9DF7F7F7FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABAB
+F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFEBEBECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECEC
+A7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDED
+ABABABF9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+ECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFEDEDEDABABABF9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9D
+F7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+EDEDEDABABABF9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F4
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECEAEAA9A6A6F9F8F8FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEBEBEBAAAAAAF7F7F7
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFEFEFEFDFDFFFFFFEBF3F3A1ADADF9FFFFFFFFFFFEFDFDFFFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFFFFFFF4F4F4B1B1B1FFFFFFFFFFFFFDFDFDFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFEFFFF
+FFEDEDF1BDBDC58282FBC9C9FFF1F1FEFFFFFFFFFFFFFEFEFFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFFFFFFFEAEAEABDBDBD858585CACACAF2F2F2FFFFFFFFFFFFFEFFFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFF5F5FFADADFF5151FE0000FD0000
+FF0000FF5A5AFFB8B8FFFFFFFFFFFFFEFDFDFFFFFFFFFFFFF3F3F3F7F7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF8F8F8A8A8A8
+4747470000000000000000005E5E5EBFBFBFFCFCFCFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFEFEFFFFFFFFF6F6FF8A8AFF0000FF0000FF1515FF1111FF1616FF0000FF0000
+FFA6A6FEFFFFFFFFFFFFFFFFC0C1C1000000767676FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFAFAFA838383000000000000171717111111
+111111000000000000A8A8A8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE
+FFFFFFFFB3B3FF0000FF1F1FFF1B1BFF0606FE0303FF0707FF1D1DFF1A1AFF0000FEBFBFFFFFFF
+BEBDBD000000000000C5C5C5FFFFFFFDFDFDFDFDFDFDFDFDFEFEFEFFFFFFFEFEFEFDFEFDFDFDFD
+FDFEFDFDFEFDFDFEFDFEFEFEFFFFFFFEFEFEFDFDFDFEFEFEFEFEFEFDFEFEFDFDFDFEFFFEFFFFFF
+FEFEFEFDFDFDFEFEFEFDFEFEFEFEFEFEFEFEFFFFFFFFFFFFFEFEFEFEFEFEFDFEFDFDFEFDFDFEFD
+FEFEFEFFFFFFFFFFFFFEFEFEFDFEFDFEFEFEFEFEFEFDFEFDFEFEFEFFFFFFFFFFFFFEFEFEFDFDFD
+FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFEFEFEFDFEFDFEFEFEFEFEFEFDFDFDFEFEFEFFFFFF
+FFFFFFFDFDFDFDFDFDFEFEFEFEFEFEFDFDFDFEFEFEFFFFFFFEFFFEFEFEFEFDFEFEFEFEFEFEFEFE
+FDFDFDFEFEFEFFFFFFFFFFFFACACAC000000242424181818050505030303080808202020000000
+000000CCCCCCFFFFFFFDFEFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFEEEEFF5C5CFF0000
+FF1B1BFF0000FF0303FF0303FF0303FF0000FF1C1CFE0000FF7A7ACDCBCB000000000000CDCDCD
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F5F5F54A4A4A000000191919010101030303030303030303000000242424000000858585FDFCFD
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFFFF9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFFFFFFFFD5D5FF0000FF1616FF0606FF0303FF0303
+FF0303FF0303FF0202FE0F0FFF0000FE4D4DAE8E8E113232CDCCCCF8F8F8D1D1D1CFCFCFD0D0D0
+D0D0D0CECECEE8E8E8FFFFFFEFEFEFCECECED0D0D0D0D0D0D0D0D0CECECEECECECFFFFFFEDEDED
+CBCBCBD0D0D0D0D0D0D0D0D0CDCDCDF3F3F3FFFFFFE5E5E5CDCDCDD0D0D0D0D0D0CFCFCFD1D1D1
+F6F6F6FFFFFFE1E1E1CDCDCDD0D0D0D0D0D0CECECED5D5D5F8F8F8FFFFFFDEDEDECDCDCDD0D0D0
+D0D0D0CECECED7D7D7FAFAFAFEFEFEDADADBCDCDCDD0D0D0D0D0D0CECECEDADADAFEFEFEFEFEFE
+D6D6D6CECECED0D0D0D0D0D0CCCCCCDEDEDEFFFFFFF8F8F8D2D2D2CFCFCFD0D0D0D0D0D0CCCCCC
+E4E4E4FFFFFFF4F3F4D1D1D1CFCFCFD0D0D0D0D0D0CDCDCDE6E6E6FFFFFFC3C4C3000000020202
+0B0B0B0303030303030303030303030303030F0F0F0000003A3A3AE4E4E4FFFFFFFDFEFDFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFDFDFFFFFFFFD3D3FF0000FF1A1AFF0505FF0303FF0303FF0303FF0303FF0303
+FE0707FF0000F934348C5858636D6DFFFFFFDCDCDC6B6B6B707070727272737373656565BABABA
+FFFFFFD2D2D2696969717171717171737373606060CCCCCCFFFFFFD2D2D25A5A5A747474717171
+737373616161E3E3E3FFFFFFBABABA5D5D5D7474747272726D6D6D757675E6E6E6FFFFFFA6A6A6
+6464647373737272726C6C6C7E7E7EE9E9E9FDFDFD9B9B9B6868687373737272726D6D6D828282
+F2F2F2F9F9F99494946666667373737373736868688F8F8FFCFCFCFBFBFB8A8A8A676767737373
+7474745E5E5EA7A7A7FFFFFFEEEEEE7373736F6F6F7172717474745F5F5FB5B5B5FFFFFFDFDFDF
+6B6B6B717171717171737373656565B8B8B8FFFFFFACACAC0000001C1C1C050505030303030303
+0303030303030303030B0B0B000000020202DFDFDFFFFFFFFDFDFDFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF9D9D9DF7F7F7FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFD
+FFFFFFFFD9D9FF0000FF0C0CFF0909FF0303FF0303FF0303FF0303FF0303FE0F0FFF0000FE5252
+9D8383000000A4A2A2FCFCFCFFFFFFFDFEFDFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFDFDFDFFFFFFD2D2D21717170000000E0E0E030303030303030303030303020202
+1313130000004E4E4EE8E8E8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFF8F8FF7575
+FF0000FF2222FF0000FF0202FF0303FF0202FF0101FF1F1FFF0000FF8282D3D6D63D4040000000
+A4A4A4FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF8F8F85D5D5D0000001C1C1C000000020202020202020202010101262626000000979797
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFCACAFF0000FF0000FF2222
+FF1717FE0909FF1919FF2222FF0000FE0000FFD6D6FFFFFFD6D5D5414040000000A9A9A9FFFFFF
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFEFFFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFFFFFFFFEFFFEFEFEFEFFFFFFFFFFFFFFFFFFFEFEFEFEFFFEFEFFFEFFFFFF
+FEFFFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFFFEFFFFFFFFFFFFFFFFFFFFFFFFFEFFFE
+FFFFFFFEFFFEFEFFFEFFFFFFFFFFFFFFFFFFFEFFFEFEFFFEFFFFFFFFFFFFFFFFFFFEFFFFFFFFFF
+FFFFFFFFFFFFFEFFFEFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFEFFFE
+FEFEFEFFFFFFFFFFFFFFFFFFFEFFFEFEFFFEFEFFFEFEFFFEFEFEFEFEFFFEFEFFFEFFFFFFBCBCBC
+0000000F0F0F2020201818181313131A1A1A242424000000000000DADADAFFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF9D9D9D
+F7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFBFBFFF0000FF0000FF0000FF0000FF0000
+FF0000FF0000FFBBBBFEFFFFFEFFFFFFFFFFD9D9D91616166F6F6FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFA7A7A7000000000000
+000000000000000000000000000000CBCBCBFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F4
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFD1D1FF8383FC5858F52626FE6060FF8B8BFFD8D8FFFFFF
+FFFFFFFEFEFEFFFFFFFFFFFFF2F2F2F2F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFC9C9C98181815B5C5B424242646464
+8E8E8EDCDCDCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFEFEFFFFFFFEFFFFFFFFFFEDDFDFB08F8FFAEEEEFFFFFFFEFFFFFFFFFFFFFEFEFFFFFFFFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFEEEEEEDFDFDFF5F5F5FFFFFFFFFFFFFEFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFD
+FFFFFFEBEEEEA6ABABF9FBFBFFFFFFFEFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECEBEBA8A7A7
+F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFE9D9D9DF7F7F7FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECEC
+A7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFE9D9D9DF7F7F7
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+ECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFE9D9D9D
+F7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F4
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFF9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF
+9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7
+F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECEC
+A7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+ECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9D
+F7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F4
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7
+F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE9D9D9DF7F8F8FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECEC
+A7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFE9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+ECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9D
+F7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F4
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7
+F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF9D9D9DF7F8F7FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECEC
+A7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFE9D9D9DF7F8F7FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+ECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFE9D9D9D
+F7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F4
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE9D9D9DF7F7F7FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFEBEBECA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7
+F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECECECA7A7A7F9FAF9FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEBEBEBA7A7A7F9F9F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FDFDFDFFFFFFEDEDEDA9A9A9FBFBFBFFFFFFFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFE8E8E8
+A4A4A4F5F5F5FFFFFFFFFFFFFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBEBEBAEAEAE6464643C3C3C6D6D6DB7B7B7
+EFEFEFFFFFFFFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFCBCBCB3535350000000000000000000000000000004C4C4CE2E2E2FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFE9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFD8D8D8
+1010100000002424241313130C0C0C1515152525250000003D3C3DE8E8E8FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFD868686000000262626000000
+0303030303030303030000002626260000008D8D8DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9D
+F7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFDFDFDFFFFFFDDDDDD1D1D1D0000000D0D0D030303030303030303030303
+020202171717000000565656F3F3F3FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F4
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FDFDFDFFFFFFD3D3D30000001A1A1A050505030303030303030303030303020202111111000000
+333333D9D9D9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFFFFFFD4D4D4
+0000001919190505050303030303030303030303030202021313130000003E3E3EE0E0E0FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFE8E8E74C4C4C000000161516
+0202020303030303030303030101011B1B1B000000636363FDFDFDFFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF
+9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF9F9F9F000000292929090909020202030303
+0202020D0D0D252525000000AFAFAFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF3F3F37171720000001E1E1E1C1C1C1717181E1E1E131313000000
+747474F4F4F4FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF3F3F3868686000000000000000000000000000000959595EDEDEDFFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFFFFFF
+FAFAFADDDDDDBFBFBFA5A5A5C3C3C3E2E2E2FDFDFDFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF9D9D9DF7F7F7
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFEFEFEFFFFFFFEFEFEFDFDFD
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9D
+F8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F4
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFE9D9D9DF7F7F7FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFE9D9D9DF7F7F7FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9D
+F7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F4
+9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF9D9D9DF7F7F7FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9D9D9DF8F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F7FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F7F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF8F8F8
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF7F8F8FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4F4F49F9F9FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D9D9DF6F6F6FFFFFFFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFFFFFFF2F2F29E9E9EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEA2A2A2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFDFDFDA2A2A3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF868686
+C6C6C6D3D3D3D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0
+D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D4D4D4C2C2C2
+8B8B8BFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5D5D5BBBBBBC0C0C0BFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF
+BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFC0C0C0BBBBBBD7D7D7FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD
+FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFEFEFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFDFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFEFEFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFF
+FFFFFFFEFFFFFFFEFEFFFFFFF9F8F4EBEAECF6FAFDFFFFFFFEFEFEFEFEFEFEFEFEFEFEFFFFFFFF
+FEFEFFFFFFFFF9F6F2E8E8EAF5F8FAFFFFFFFEFEFEFEFEFEFEFEFEFEFFFFFFFEFCF2F0EEF0F3F6
+FFFFFFFEFEFEFEFEFEFFFFFFFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFF8F5F1E9E9EBF2F4F7FFFFFF
+FFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFFFFFFFEFEFFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFF
+FEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFCF0CBCCCEE8F5FEFFFFFEFCFDFE
+FFFFFFEFE3CF5B404CB3D7EBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFEFFFFFFF0E5D68F7872
+56545AAAC5D8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF1AE8F6D798DB0FDFFFFFFFFFFFFFFFF
+FFFEFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDDCAAF4430368F9EB9FDFFFFFFFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFEFFFFFFFCF7ECCFD2D7F5FEFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFDDC1A565718CEDFEFFFFFFFFFFFFFFF6F2EFF0F0EDA88F8F
+A3C6DDFFFFFFFBF7F3E5DFDDE5EAEFFDFFFFFFFFFFFFFFF5B2A6837097B7DCDFE1E7EBF1FFFFFF
+F9F5EEE2E1E1EAEDEEF6F8FBFFFFFFEAD0B08A88A6F7FFFFF4EFEDEFF2F4FFFFFFFEFAF6E5E3E0
+E3E7EDFDFFFFFFFFFEFBFAF9DFC9AB8D8BA6FAFFFFFFFEFEFFFFFFFEFBF7E8E1DEE3E7EBFAFEFF
+FFFFFFEEE4C3476D87DBF0FEFFFDFBFCFDFFFFFFFFFFFCF8EAE6E6E6EAEEFCFFFFFFFDFCF2F0F0
+F4F4F2EAE8E9F1F4FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF2F2F3F6F5F3ECE9E6
+F1F6F8FFFFFFFFFFFFF8F4EEE2E1E1EBEDEFF7F9FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
+FEFFFFFFFFF49B84729AB5D7FFFFFFFFFFFEE0CCB66D62627C7B7C484149B2D3EBFAF2E59A8778
+95A0A4918278A2BCCDFDFFFFDDC4AC443D2B5A6A7285899CE2ECF6FAF2E0867C7FA4AAAC806746
+84AECEFFFFFFF4DFC0A29DAFD1C3B5020000AAC2D5FAF7ECA592828C99A1968E8095ACC3F7FBFF
+FFFFFFF4DFC09490A8F9FFFFFFFFFFFAF5EAA893808F9BA197887B99B3C6EEECE6A2856000304D
+7F7C8396A2AEE8F7FFFFF9EA9E8C7A737F857E736B90A2BEF2F4EFA581624153697B796F707F92
+E7F5FCFFFFFFFEFEFEFFFFFFFFFEFEFFFFFFFFFBEC997C654E5A6B857E715A6C8BE7F4FEF8EEDB
+837B7FA5AAAB7C64448AB4D3FEFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFFDEBD9856F58
+C7E8F6FFFFFFF7ECDF6D445FC1D3E6FCF7E9928076B4D3E3C7B396000057B6C0C4AC9977005173
+D4E6FAFFFFF0ABA18276A0BCE6E9EEFBFFFFECE2CF5F4063A8B2B5968E82ACC6DBFFFFFFF5E2C6
+735B2F075B75C1D2E6FFFFFFC9A98D1B2440ACBDC2AFA58B00005CD6E2EEFFFFFFEDD8BA938FA8
+F9FFFFFFFFFFD3C1A400003EADBAC1B6A5890A475FC2D5E9E0D3B1476C81C2D0DCE3E5E8FFFFFF
+D2AF8A6E879EF2FFFFFFF6E3837457B1D8E9D6BEAD7793BBF8FCEF988C72C2E4F1FFFFFFFEFEFE
+FFFFFFFFFFFFFEFEFFFFFFFFD1B185799AB2FBFDF1A67B6BC7D9E9F1E8D2583762AAB3B5948C81
+B0CADFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFF6E2D27D5F4ED1EEF7FFFFFFF3E7DA
+5A296CD8E9FBFFFFFDA48E89B5D2E0C4B291235D8CCCD0D1C9C3BCA8ACB7E1EBFBFFFFFFC1B38F
+89B5D7FFFFFFFFFFFFF3EADFA89C9BB2B8BCA496856A7BA0F9FFFFF9E4C7816F6E85817DA4B7CA
+FFFFFFC59F874F5976C7D1D3CAC4BFA9A6B2E4ECF3FFFFFFF2D9BC938FA8F9FFFFFFFFFFCDBC9A
+00457DC5CCCFCDC7C1A8A8AFDFEDFEFFF3D5567894EBFFFFFFFAF3EFF2F4C5A2858496B0FFFFFF
+FFFFF295845FA9D5E9DCC7B894B5D8FFFFFCA5A087C9E7F3FFFFFFFEFEFEFFFFFFFFFFFFFDFEFF
+FFFFFFD6B899B0C1D9FFFFFFBF9B85C8DAEBFBF4E6A49798B3B9BCA192827082A7F9FDFFFFFFFF
+FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF5E188775CB7D9EFFFFFFFFFFDF8BEA37C586575939088
+230000799DB1DAD8CF856D70A2AFB5A79A8A7E8FA4EAF5FFE5CDB4594E234765759194A5E6EEF4
+E8E0BF00004DACB9BD9F8C7C7E94B7FEFEF9BA9E747790B9FEEFD8601D006A97BBE2D9CD927E6E
+9BAAB4ACA0917087A0E8EDF2D9C5B28676655251628F959CC9DFEEF6EDDD8A6F6D9AA8B1AEA495
+798393DDEEFDFFFAEE977F74808F957C655AA3BDD4F7F4E68772628394A09583737789A5E7F0EE
+9D72495A839FE2E2D76929008BAABDF9FFFFFFFEFEFEFFFFFFFEFEFFFFFFFFFDEE987A55526D9D
+E7E9DC78513087A5BFDAD6B91F1E55ADBABE9D897A8498B8FAFFFFFFFFFEFEFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFFFFFFFFBA9D847892B4FEFFFFFFFFFFFEFDF9E3DED9DADEE3ECECECE8E8EAFBFFFF
+F6EFE9D5D4D4DADFE0F0F4F7FFFFFFF2ECE8E6E6E8E9E8E5DFE0E3F5F8FAFDFBF8E9E5E3DBD9D7
+D7DADEF4FBFFFFFEFAECE9E7EBEFF4FFFFFBF1EEEAE2E4E8F9FDFFF8F1EBD8D4D4D8DCDFEDF3F6
+FEFEFEEFE9E4E2E4E6E9E9E8E2E1E0EBF1F8FFFFFFF8F2ECD8D5D5D7DCDEEDF1F4FDFFFFFFFFFF
+F8F2ECDCDCDAE1E6E9F7FAFCFFFFFFFAF5EFDBD7D5D9DADEF5FBFFFEFCFAE9E5E4EAECECF2F4F4
+EAE5E5E9EBEDFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDF8EAEAE8E6E6EAF4F5F2E9E9E8E8EAEE
+F7F6F5EAE6E3DAD8D6D8DBE0F5FBFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+FAECD99FA3A5E1F4FFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF
+FFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF8F8F9FBFE
+FFFFFFFEFEFEFEFEFEFEFEFEFDFDFDFEFEFEFFFFFFFEFEFEFDFDFDFDFDFDFEFEFEFFFFFFFEFEFE
+FDFDFDFDFDFDFDFDFEFEFEFFFFFFFEFEFDFDFEFEFEFEFDFEFEFEFEFFFFFFFEFEFDFEFEFEFFFFFE
+FEFEFDFDFDFEFEFEFFFEFEFEFDFEFEFEFDFDFEFEFEFFFFFFFEFEFEFDFDFDFDFDFDFDFDFDFEFEFF
+FFFFFFFEFEFEFEFDFDFDFDFDFEFEFEFFFFFFFFFFFFFEFEFEFDFDFDFDFDFEFEFEFEFFFFFFFEFEFD
+FDFDFDFDFDFDFEFEFEFFFFFFFEFDFDFEFEFEFEFEFEFEFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFDFDFCFCFDFDFDFDFDFDFDFDFEFEFEFEFEFEFDFDFEFEFEFEFDFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFE
+FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFEFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFEFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFFFFFFFFFFFCFCFBFEFEFEFFFEFEFDFDFDFDFDFEFEFEFEFDFDFDFDFDFDFEFFFEFEFEFD
+FEFEFEFEFEFDFEFEFEFFFFFFFEFEFDFDFDFDFEFEFEFDFDFDFEFEFEFFFFFFFEFEFDFEFEFEFDFDFD
+FDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFCFCFCFDFEFEFFFFFF
+FDFDFDFDFDFDFEFDFDFDFEFEFFFFFFFFFFFFFDF9F5E1DCD8E0E6F1FFFFFFFEFEFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFDFDFDFDFDFDFEFEFEFFFFFFFFFFFDE2D9CEBBBEC3EAF2F9
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFDFDFDFEFEFDFDFEFEFEFEFEFFFFFF
+F8F1E8C4BBB9D0DAE6FFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFDF7D0C4BF
+CDD9E4FEFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFDFDFEFEFDFEFEFEFEFEFE
+FFFFFFFEFEFEFDFDFDFEFEFEFDFDFEFFFFFFFEFEFDFDFDFDFEFEFEFEFDFDFDFDFDFEFEFEFEFEFE
+FDFDFDFEFEFDFEFEFEFEFFFFFFFFFFFDFCFAFFFEFEFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFDFBFAFEFFFFFFFFFFFEFEFEFDFDFDFEFEFDFDFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF7E9E0C0BFC0E4F2FBFFFFFEFDFDFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFEFDFDFDFDFDFDFDFEFDFDFEFEFFFFFFFFFFFEFDFDFDFDFEFEFDFEFE
+FEFFFFFEFEFEFDFDFDFEFEFDFDFEFEFDFEFDFEFEFEFFFFFFFEFDFDFEFEFEFDFEFDFEFEFEFFFFFF
+FFFEFEFDFBFBFFFFFFFFFFFFFFFFFFFFFFFFFCFBFCFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFE7D7C3
+8D9EB9F7FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF2E4D28A94ABEEF6FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFFFFFFFFF9DAC7AA47444F9CB5D8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDDC4A04F5A688784756D86A0E8F4FFFFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAF3DD79665B7B8687656471
+BBCCE0FFFFFFFDFDFDFEFEFEFEFEFEFEFEFEFDFEFFFFFFFCC0AB935D5D5F62646BBBD3E9FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFDFDFFFFFFFFD6C9AFA7C4DCFFFFFFFFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E6A69DAAECF8FFFFFFFF
+FEFEFDFFFFFFEFD8C197A1B0F2FEFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFE9D6C29A9BB0F9FFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF9E7D6686265C2E6FCFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFBC8AD97B4CCDE
+FFFFFFFEFCFCFFFFFFE7D7CB9195ACF3FEFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFEF6AC844E92BBD0FFFFFFF6E8DE
+BDB6B3BFC9D6E9E6DDC3BDB7B9BEC9F0F6F3DCD2C8B2B2B1B5BCC5EAF4F9FFFFFFDAD1C6BBC3CA
+DDDEDAB6A9A4B9C9D4F7FEFEDED0C5B1B1B1B3B1B4CCD7DFFBFFFFFFFEFEFEFFFFFFFFFFFFFFFF
+FFFFFEFEFFFFFFFFFEC09A6A7BA6BDFCFFFFFFF6EBCBC6C1C0C0C1AFA9A9C4D0DCFDFFFFFFFEFC
+FFFFFCC7A9959BAFD0FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFEFEFFFFFFFCDED7CEBFBEC3C3BBB2
+AEB5BDE6F3FBFFFFFFE3D0C1D2E0EFFFFFF270436AD0E0F2FFFFFFFDFDFEFFFFFFFFFFFEFEFFFF
+FFFBF2D3CBC3BFC0C3B3ACAABBC7D3FCFFFFF9F2DFB7C1C8FEFFFFD8AC7E759BAFFAFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF4DC7F7560CFEFFDD9B9A1747FA7FDFFFFFFFFFEFFFFFFFFFFFF
+FFFFFEFFFFFFF9F0E39B8E675A8AAAD5D6D9E1E8EEFFFFFFFBF4EDC4BDB6AAACAEC6D1DEFFFFFF
+DFD5C7ACAFBBE1E7E8D7CDC1AEB6C3ECF3F5E0CCB867546DBCC8D1DCDFE2F5F8FDFFFFFFFFF5E0
+6B5A63BBD2E9FFFFFFFDFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFFFFFFFFF6A58B6F83ABD0
+FFFFFFFFFFFEEEE5DBBDB6B4B2B2B6D5DFE9FEFFFFFFFFFEFFFFFFFFFFFFFFFFFFFEFFFFFFFFFC
+AB949298B0BFBEB6B3C6D3DFFCFFFFFFFFFEFEFFFFFFFFFFFEFEFEFFFFFFF9F3EEC9BFBBC0C3C1
+AEABACC5D0DDFEFFFFFFFBF2D2C7C1B3B1B1BDC1CBF3FBFFE9DBD3B9B8B4B1B2B3BDBEBEAFAAAD
+D1E3EEFFFFFFDFD3C8AFABACB2B9C5EAF5FCFFFFFFFFFFFFDFCBAC376194F0F9FFFFFFFEFEFFFF
+FFF2E081694BB4D8EBFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4EAD451406ED9E8F4FFFFFFFAF0E1834600588FB3EFF2E9
+7422006E96B7FAF8F3B193828790976B5A378BB8D4FFFFFFE1D5C2530E00536C819E9995A4B6C7
+E8E2CC625E51AFC3C998775182A7B8FBFFFFFFFEFDFEFFFFFFFFFFFFFFFFFEFEFEFFFFFFFDF5E2
+6A4F67C7D9EAFFFFFFFFFDF2A47F4F1B5274B5B4A756647AD2E7F7FFFFFFFFFFFFCFB19D9BAFCF
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFDCC5A70000009CAFB591766394A7C4FFFFFF
+FEFFFFFFFFFFE2C6A53A698CE5F2FEFFFFFFFDFEFEFFFFFFFFFFFEFEFEFFFFFFFAB99971002958
+B3B7AF64636CC0DAEEFFFFFFFFFFFFFFFBE8805A5AABC2D7FFFFFFF7F5F4F5F5F5F6F6F6F5F4F4
+FBFFFFF7E5D08C7787EFFDFFF5DEBF918BA2F8FFFFFFFFFFFEFFFFFFFFFFFEFEFFFFFFFFE3CEBA
+62543A485E748C8485B4CCDDFCFAF6AD8A5C60839DC5C3B34A3A41A8BFD4E9DCC22C002F9EA5A7
+7D7B5C6C8EB4F1EFE6AD977E3E3C4C82888593A1B2E9F1FBFFFFFFFFFFFFC1957588A7BAFCFFFF
+FFFEFDFEFFFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFF6E6D7764F4CD3ECF6FFFFFFFFFFFFDFCAB2
+777E88938574405F91EBF5FDFFFFFFFEFEFEFFFFFFFFFFFEFEFFFFFFFFFBAA846E455E73ACACA6
+6B5759B0C9DBFFFFFFFFFEFEFEFFFFFEFEFEFFFFFFFFFBF3A47D5A20517FB3B3A466686AD8F2FE
+FFFAE89A877F92979557364AADC7E2F0DFCA4322497F7F785963557478768999B2DACEB8434464
+B5C1C39C8266617394EEFEFFFFFFFFFBEEE1845442C4E3EFFFFFFFFCFCFEFFFFFFBAA18E7A8DB5
+FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFEDE1BF50819BE7F7FFFFFFFDFFFFFFECD7BB718EABE5E6DC847E8AE4F6FFFBEBD9
+918A89A9B4B79687708BB2CFFFFFFFFFFFFCA2868DC4DCF1FFFFFFFFFFFFFCF2DF978E87888F92
+89817EA9BECDF9FFFFFFFFFEFEFFFFFFFFFFFFFFFFFEFEFEFFFFFFF8EDCF5D7C8BD8EEFEFFFFFE
+FFFFFFD2B29EA7BBDAFFFFFFB08D86BED0E9FFFFFFFFFFFFD4B5A1A0B4D5FFFFFFFFFEFEFFFFFF
+FFFFFFFFFFFFFFFEFDFFFFFFFEEACE979399FAFFFFF3D6B5999BB5FFFFFFFFFFFFE8D6BD6A7284
+D3E2F1FFFFFFFDFDFEFFFFFFFFFFFFFFFFFFFEFDFDFFFFFFE0C2AD99A7C8FFFFFFC4A090A8BDDB
+FFFFFFFEF9EBA2857899AEC4FFFFFFFEF6EB9A76674E555F696863473E52B7D8EFFAE8D3866E7D
+F0FFFFF8DDBF8C849EF7FFFFFFFFFFFEFFFFFFFFFFFFFFFEFDFDFFFFFFFEC1B79286B4D5FFFFFF
+FFFFFFF3E6D75000008DA0A6B2B3AE8D8384A3ADC7FFFFFFFBE9CF1E00005C8DB3FFFFFFFFFFFF
+F9E8DA8F889AE7F4FFFFFFFFFFFFFFFEFEFFFFFFFFE1C5984A89A5EFFBFFFFFFFEFEFEFFFFFFFF
+FFFFFFFFFFFFFEFDFEFFFFFFE5D6C64E4183ECF6FCFFFFFFFEFAF4BDA89B8E9CA7B1AA9D523D6F
+E2F0F7FFFFFFFEFEFEFFFFFFFFFFFFFEFFFFFFFFFBA38B8DB5CFECFFFFFFE3D5B45883ADF4FEFF
+FFFFFEFEFEFFFFFFFFFDFDFDFFFFFFD2BAB0A0BFE0FFFFFDA19D8AD3F2FCF0DFD08A8589AEB7B8
+82645C9CAECAFFFFFAA19AB2D8D9D1A5A698D8DBCFA492A7AF916D517083AFB1B5A398908C939A
+E5F9FEFFFFFFFFFCEDA28B5994C3DFFFFFFFFEFDFCFFFFFFDCB9A17F8197F5FFFFFFFEFEFEFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEEE2C1
+487598E6F4FFFFFFFEFDFFFFFFFDF4A98C6C0000069FBDD4FFFFFFD4B9852D7796E6EDE9A3855B
+5E8FB2F4FCFFF2E7D6746171B4CCDEEBEAECFDFFFFF4E2C6878283C5D0D7C1AD88317298E9F9FF
+FFFFFEFEFEFFFFFFFFFFFFFFFEFEFEFFFFFFF8EED1587288D7EAFCFFFFFFFFFFFCB38E7583A6C9
+FFFEF3956D5BA8C2DDFFFFFFF6F4EDAF8E7B7E91B0ECF1F5FBFCFEFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFEAD4B7695F83EEFAFFDBBE9B6D7CA0F9FFFFE1C5A70000009DB1BFC6C0BFDCE6F0FFFFFF
+FEFEFEFFFFFFFFFFFFFEFEFFFFFFFFC6A58A6C8DB5FEFFFBAB856793AFD2FFFCE8814C0043698B
+C6CCC6C3CFD6F9FFFEE5DCDAD8D9DADBDBDBD8D7D8E8F2FBFFFEEA8E816BB3CFDABEA18A7E98BE
+FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFDFDFFFFFFFFCEBAA1648DAFE6E6E1BCB4B6D3D8D990613F
+94AFC0E0DED9ADA29CB6C3D5F5F0DF87777998A3A8877A6F8CA4BAF7FFFFFEEFE1806067C7D9E2
+D6CBBBB3C1D4FAFEFFFFFFFFDDC1945C90A7F1FEFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFEFDFE
+FFFFFFE8D8C75C4379E9F4FBFFFFFFF6EDE04D004BBED6E2D8C4AA000028CBDDEBFFFFFFFEFEFE
+FFFFFFFFFEFEFFFFFFFFFBED8D60446488A7E0E4DEA2896788ADC4FAFFFFFFFFFEFEFFFFFFFFFE
+FEFFFFFFFFFCB4957D7FA7C9FEF8E6786A4FC7E5EDC0A293587FA5EBECE38652257793B4EFEBDC
+736583BCBCB2868C82BDC0BA918591B0A78B58758ED2DADFCCC2B49CA4AFEBFAFEFFFFFFFFFBED
+A087559ECAE2FFFFFFFDFDFCFFFFFFD7B6A07F7F9BF8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF9F0DD693D55CEE1EFFFFFFF
+FCFCFCFFFFFFE6D6C583838FE1F5FEFFFFFFF2EBDEA5968B8D94979B97939199A2D0D9DFCBBDA7
+86898E949292A3A9B7F3FFFFF6E5CC8F8C889FA3A69D999ABACBD9FCFFFFFFFEFEFEFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFFFF9E9815555BACFE1FFFFFFFEF4E6B0A08B8EA9BDD9D4CD9F8D7CA3BFD2
+FAFBFBD4C0A98A8D9193918EA2B4C8F6F9FEFFFFFFFEFEFFFFFFFEFEFEFFFFFFFCD4CBB678778F
+D0D8DAC8C0AC79849CE0E8F1CFB8A680858EA3A09981899CDDE7F2FFFFFFFEFEFEFFFFFFFFFEFE
+FEFFFFFFFBF0BEAC94859EB2D6D7D5AA96809CB6C8E8E3D4968C85979FA0908686B0C4CFFCFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6D8C78D847E8894A7E3F2F9FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF6EBE1A79B918B8E8C959CABE9F6FBEADDCA9A93939D9E9D939DA7
+D5DCDFCFC2A7606B8BD7E1E3C9BEA96A6D8CDDE7F2FFFFFBCFBDAB8C8A8E8A8C91BDCEE0FEFFFF
+FFFFFEB2876F96AFC5FFFFFFFFFDFDFEFFFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFFDEFDD806243
+C0E0F1FFFFFFFEFAF6C9B6A6888A8F9F9D9B959694ABB6CBFDFFFFFFFFFEFEFFFFFEFEFEFFFFFF
+F3E3D6A29184878B8C8D8A88949FAFE9F4FCFFFFFFFEFEFEFFFFFFFEFEFEFFFFFFF7F0E8A58C81
+A0B1BADCDDD7977C77AEC2CEE6E1D8A0928B8F9196A2A098929BACB8AAAB938B8FBDC3BCA7ACB0
+BBBBBDAEAEA8CDD9DFBCADA094999D9B9798B1BECAF7FEFFFFFFFFF8EBDC734653D2E9F4FFFFFF
+FCFDFFFFFFFCB0988083A0C6FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFC6AA87739DBDFCFFFFFFFFFEFEFEFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFEFFFFFFFFFFFFFFFEFDFDFDFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFF
+FFFFFFD7BE9D5F88A9F4FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFDFDFDFDFDFDFD
+FDFDFDFEFEFEFEFFFFFFFFFFFFFDFCFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBFCFDFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E8CC6E6A77D4E8F8
+FFFFFFFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFFFFFFFFC5AC8E7B8FB4FCFFFFFFFFFF
+FFFFFFFEFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFDFCFBFFFFFFFFFFFFFFFEFFFFFFFFD1B68F7093B5FAFFFFFFFEFDFFFFFFF5E3D46F5E69
+D3EAF7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFEFEFFFFFFFBF5EACBCED7F8FBFFFFFFFFFFFFFFFEFEFFFFFEFEFEFEFEFEFFFF
+FEFEFEFEFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFEFEFEFE
+FFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFAF0CECDD3
+F2F6FDFFFFFFFEFEFEFEFEFEFFFFFFFEFEFEFEFEFFFFFFFFFFFFFEFEFEFEFEFEFEFEFFFFFFFFFF
+FFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFEFEFEFEFEFFFFFEFEFEFEFEFEFFFFFFFEFEFEFEFEFD
+FDFEFDFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFEFFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFF
+FFFFFFFEFEFEFEFEFFFEFEFEFEFFFFFFFFFFFEFEFEFEFEFEFFFFFEFEFEFEFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFEFEFEFFFFFFFFFEFEFEFDFEFFFFFFF3E4D8D3DBE3FEFFFFFFFEFEFFFFFFFFFFFF
+FFFFFFFEFEFFFFFFFFFFFFFFFFFEFEFFFFFFFBF4EBD1CDCFF5FFFFFFFFFFFEFEFEFFFFFFFFFEFE
+FEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFEFEFEFEFEFE
+FFFFFFFFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFEFEFEFEFEFFFEFEFEFEFFFF
+FFFFFFFEFEFEFEFEFEFFFFFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFE
+FEFEFEFEFFFFFFFDFADFD3CCE3F0F8FFFFFFFDFDFEFFFFFFEDE5E0D1D7DFFFFFFFFFFFFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFEFDFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFEFEFEFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFFFFFF
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFEFEFEFDFDFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFEFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFDFCFAF6F6F7FBFCFDFFFFFFFFFEFEFEFEFEFEFEFEFFFFFFFFFFFF
+FEFEFFFFFFFFFFFDFBF6F6F7FBFCFDFFFFFFFEFEFEFEFEFEFEFEFEFEFFFFFFFEFEFFFFFFFFFFFF
+FFFFFEFEFEFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFEFEFEFEFEFEFEFEFF
+FFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFCFCFAF7F6F7FCFDFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCF9F3F3F2FBFDFFFFFFFFFFFFFFFEFEFEFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFDFBF9F1F0F3FBFDFEFFFFFFFEFEFFFFFFFFFFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFCFBFDFEFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFEFFFFFEFEFEFEFEFEFEFEFE
+FEFFFFFFFFFEFFFFFFFFFFFFFFFFFEFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFEFEFEFEFEFEFFFFFFFEFEFEFFFFFFFFFFFFFEFDFDFEFFFFFFFFFFFEFEFEFFFFFF
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFFFFFFFFFEFEFFFFFFFFFFFFFDFBFAFDFFFFFFFFFFFFFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFEFFFFFFFFFFFFFFFD
+FAFCFDFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFFFFFFFFFFFFFEFEFFFFFFFFFFFF
+FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFF
+FEFCFBF8F9F8FCFDFEFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFCF9F8F8
+FCFDFEFFFFFEFEFEFEFFFFFFFEFEFEFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFBF4F1DBDCE2FAFDFFFFFFFFFDFDFD
+FFFFFFF4E4CC6F5A59BBD5E1FFFFFFFFFEFFFFFFFFFFFFFFFFFEFEFEFEFEFFFFFFF8EFE3A39486
+4F5062AABDD0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF6F1E0E0E4F9FCFFFFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFEFEFDFDFEFFFFFFEADDC9685D6AC0DFF0FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFEFEFDFFFFFFFAE6CC78736BD8F4FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFD
+FFFFFFF3E6D7541E6ADEECF7FFFFFFFFFFFDEFE7E2EAEEF3FFFFFFFFFEFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFFFFFFFBD7CEBD7D6F6C8C9FABE5F1F9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFEFFFFFFFFFDF4DADBDEF0F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFEF6
+D6CEC5999597D2E5ECFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFFCF4EAC6BAAA99A8C0F1F6FEFFFFFFFFFFFFF3EDEADBDEE9FEFFFFFFFFFE
+FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFCF7F4DBDBE0F8FBFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFCFAD9C8B88078718898ADE9F4FAFFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4ECDEA3978872797DC3D5E2FDFFFF
+FFFFFFF4EAE3E2E4E9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFF
+FDF6EDE0DDE0FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF8EFE8E1E0E4FEFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF7F0ECDBDEE5FFFFFFF6E7CD6E6377CDDBEA
+FFFFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFAE8DA8C817AC2E1F3FFFFFFFFFFFE
+FEFDFEFFFFFFF1EAE8DDE0EBFFFFFFFFFFFEFFFFFFFFFDF4DDE1DFF3FBFFFFFFFFFEFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFDFEFFFFFFFFD1B7916392B4FAFFFFFFFFFEFFFFFFFEFDFDFDF8EEB2A887
+99BFCFFFFFFFFFFEFBF0EEEFF1F3F8FFFFFFFFFFFFFFFFFFDABE997989A1D7DADBDDE2E8FFFFFF
+FFFCFAF0EEEEF6F7FAFEFCFDFFFFFFF7E0CE7B7797ECF7FFFFFFFFFEFFFFFDFCFBF9F9FAFFFFFF
+FEFDF9F4F7F8FEFEFFFFFFFEF8F6F4EEF1F3FCFEFFFFFFFFFDFCFBFCFDFEFCFAF8F4F4F7FFFFFF
+FFFFFFFFFFFFFFFDFBF8F5F09E8284A6CAE1FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFFFE
+F6F0E9D8D9DBF4FCFFFFFFFFFDFCFBFDFEFEFAF8F7F5F6F9FFFFFFFFFFFFFFFFFEF5F0EBD4D4DA
+F5F9FCFFFFFFFFFFFCC8A585B2BFD7FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFF
+FFFFF2BCB9B6CFD8D9A389777D9DC4FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+E0C4A6677992EEFFFFFFFEFCFAFBFCFDFDFCF6F5F6FAFCFFFFFFFFFFFDF5CFC2B6694500B0D3E1
+FFFFFFFFFEFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFCFBFDFEFEFAF8F6F5F6F9FFFFFFFFFFFF
+FBF3E4B9A9924F6491E8F1FDFFFFFEFFFFFFF0DECD6A5969DBF3FBFFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFDFEFFFFFFFFDAC29D5886A9F5FEFFFFFFFCFBFCFDFDFDFCF4F4F5FCFCFD
+FFFFFFF3E6DA5E4162BECED1AE97737BAAC6FCFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFEFBFCFB
+FDFEFEFAF8F5F8FAFAFFFFFFFFFFFCCBA9808199B0D0C9BA51527FDFEDFAFFFFFFF0D9BC5A7085
+E0F2FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFFFFFFFFC8AE967087AFFFFFFF
+FFFEFEFEFEFDF8F4F2F1F2F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE
+F7F5F3EFF1F4FEFFFFFFFFFEFFFFFFFBE8CF696B73D0E7F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFEFDFEFFFFFFFEBEA47C78A3C5FFFFFFFFF7EA8C594FB8C6D9FFFFFFFCFDFFFFFFFF
+FFFFFEFFFFFFFFFFFFFFFFFEFFFFFFFFFCF39B8581ADD3ECFFFFFEFCFFFFFFFFFFFFFFFFEBD7C4
+686174E1F7FEFFFFFFFDFEFFFFFFF492796EA8C1DCFFFFFFFDFDFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFFEF6E9885745BCD8E5FFFFFFFFFFFFEADDCD87716B828C8E6B6E62A9CAD8FEFEF4B29E93
+93989A8F8C8DB4C5D8FFFFFFE1CFC16F503C6B737D989EA4D5E2F3FFF9EAA89A8C9BA5A785705F
+95B3C2F4F9EDAA8F784B475C929896A5B2C3F5FDFFF1E3D889736F8A929B958C794E657ACEE0F3
+F0DCC78A878D918E898FA6B7F6FFFFF0DDC37168677F82836C6A6CADC8DBFFFFFFE9D7C480736E
+84868A615B65B3D1E8FFFFFFFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFF4EEDD8E786F92A4BAF8FFFF
+FFFFFFE0CDB2656269848481666D76C1D8E7FFFFFFF9EBD9968A758199B6EFF5FEFFFFFFDECDC0
+785B40737E899B9A9EC7D4DFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFCF9F1
+B29A8C9BB1CEFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFF4987E709DB4D4FFFFFF
+F9F1E9A386726B757F7B77718696A9EFF9FDFFFFFFFFFFF9B89767AFD0E0FFFFFFFEFEFDFFFFFF
+FFFFFFFFFFFFFEFEFFFFFFFEDDCAAF63626A858480666E79C5DCEBFFFFFFFFFFFFFFEFE1908195
+E5F0FDFFFFFFFCFEFFFFFFF5A38D6D8CB3D2FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFFFFAEF94644BB1CDDDFFFFFFFEF2E19B89766E767F7C756C86A1B7F4FFFFFEF8F4E7ECF1
+FFFFFFD0B27F61A0BEFBFFFFFFFFFEFEFFFFFFFFFFFEFEFFFFFFFCC6B5A06763728E8980676E7E
+CADDECFFFFFFF2EDEAFAFFFFFFF3DF5A4C75DAE9F8FFFFFFFFFEF2916864ABC2D8FFFFFFFEFDFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFF6E58A7158B0D4EAFFFFFFFFFFFDDECDBA8C8A8E
+918985A1B3CAFAFEFFFFFFFEFEFEFFFFFFFFFFFFFFFEFEFFFFFFFFE1CDBB8A898F8F8C8798B1C1
+F7FFFFFFFEFFFFFFFBA7847593AAC6FFFFFFFEFDFDFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFF
+F9EDDD75494BCDE5F0FFFFFFFFFDFABB8F65465A69817C777E8F9EE2F0FAFFFFFFFEFEFEFFFFFF
+FFFFFFFEFEFEFFFFFFBC9F915D6D77827C7678859CE0EDF5FFFFFFFFFFF098836898BCD8FFFFFF
+FDFDFDFFFFFFDCBC9B628197EEFEFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF0E4C73C5F89
+E2EFFCFFFFFFFEF7E6877462A2C1D5ECE5D98F6A45ACCBD7D9C7A5000055B4C0C7AD977D22094A
+DCF7FEFDF4EBB3977B9097ADDADDDDEDF3FCFAE7C7505B59A8BAC09C8777A6BECCFBFFF8C9B29F
+686E81B9C0C5D0D6DFFAFDFFFFFFFEDDC3A44E5667C6D6DCDCDAD9EDF5FDE8D0BE7B7983948E7D
+2B5B71D4EEFFFFF5E57C4E39B3CBDEE0CDB76581A4E8E6E4855B5AB0C3D7EBE5D57E6F61ABCEE7
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFE7D2B67E748EEEF9FEFFFFFFF3E4D1644049
+C9DDE9D1B9A06D8DB2FAFFFFFFFFFEE9D8C7706786E1ECFBFFFFFFECE1D69C8069959DACCACCCC
+DFE8EFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFCEB398000000ABC8DEFFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFEFDFFFFFFFDE9D37E7364CBEAF9FFFFFFFFFFFFC3A6926A88B1
+EBEEDF897E69C7E7F3FFFFFFFFFCF1AF9162AED0E0FFFFFFFEFEFDFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF2E1CE60404FCDDFEACDB49C7192B6FBFFFFFFFFFFF7E7D9877E95E5EFFDFFFFFFFCFCFD
+FFFFFFD0B3A177799EFAFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF5EBCF475E81
+DAEAF9FFFFFFFFFFFCB6906D7B98B5EEE9DE796873C9DDF1FFFFFFFFFFFFECD7C35C4F5BCDE5F2
+FFFFFFFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFEBD4B4545760D6E8ECC7A688909CBBFFFFFFFFFFFF
+FFFFF1A486647FA7C3FCFFFFFFFFFFFFFFFFD2AB7E709EB3F6FFFFFFFFFDFEFFFFFFFFFFFFFFFF
+FFFFFFFEFDFDFFFFFFE9D8C9613B67E6F6FBFFFFFFFFFFFDDBC7AF777F899488791E3A7CE6F1F9
+FFFFFFFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFDDC4B17A7D88938973306985DDF1FFFFFFFEFFFFFF
+E0BE9764899AEEFEFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFDFDFEFFFFFFE4D6B73A6B9AEFF7FF
+FFFFFFFFFCF7AF7D5D7E97AFE8EEECB79A83788CABF9FFFFFFFFFFFEFEFFFFFFFFFEFEFFFFFFFF
+B39384738BA8EAEDEABAA78A6F92B1F3FEFFFFFFFFC7A8967F85A8FDFFFFFFFDFDFFFFFFFAEFD4
+51577AD1E2F6FFFFFFFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDE0BE58889FE7F8FFFFFFFFFBECCF
+667476D7F4FFFFFFFFC6A880ABCAD6CDB18A4D6F82C0C3C8BEBAB5ABAFB2E2F4FCFFFFFFDFC0A1
+B2BDD7FFFFFFFFFFFFFAF3E3AEA39EA3A7AA9F927F7E9BB1F3FFFFFEE8D58485A1F9FFFFFFFFFD
+F1F2F5FFFFFFF4DBBB9FA4BBFFFFFFFFFFFFFFFAE7978D79A6C0D1DED5C16E7487DBF4FFFFFCF0
+9C838FE3F4FFFFF2E0928EA7DED9D766467CE3F2FFFFFFFFAD9890ACCEE9FFFFFFFDFEFEFFFFFF
+FFFFFFFFFFFFFEFEFDFFFFFFFFEFD59B8B9EF5FFFFFFFFFFFBEBDE91849DF5FFFFF9E0CB8A8CAE
+F9FEFFFFFFFFFFF5E7968597E7F4FFFFFFFFFFFFFFCDAB8BB6CBE1FFFFFFFBF6F5F9FAFCFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFCFBF9F6F6F8FFFFFFDABA9E736E98F9FFFFFFFFFEFEFFFFFFFFFF
+FFFFFFFEFEFDFFFFFFF1DAC979625BD9F5FDFFFFFFFFFFFFD4BEB19EBFE1FFFFFDA6A38ECEEBF6
+FFFFFFFFFFF8B69465B3D8E5FFFFFFFEFDFDFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFFAE9DB8F86A0
+F8FFFFF6DCC68B90B2FCFFFFFFFFFFFEEEE08E8199EBF6FFFFFFFFFCFCFCFFFFFFE1C0A77E7E8F
+F1FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF3E7C75C8495E0F4FFFFFFFEFFFFFF
+C8A799B4CAE8FFFFFFAD8B88C8D8EFFFFFFFDFCEBD7C726CC0D7E6FAFCFEFEFEFEFFFFFFFFFFFF
+FFFFFFFEFEFDFFFFFFF8E2C59D9CAEFFFFFFEDCEAEA1A9C2FFFFFFFCF1E7A4917B84A0BBF3F5F8
+FEFEFDFDFEFFFFFFFFDFC699488AA9F0FCFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFEFDFEFFFFFF
+E1D1C1525491F0F7FDFFFFFFF7F0E5836B77B7CBD7D4C7B45C406DE6F5FBFFFFFFFEFEFEFFFFFF
+FFFEFEFFFFFFFFF2DD8C8679B2C9D7D9CDB76A7B94E4F7FFFFFFFEFFFFFFECD5AD437B93E4F5FF
+FFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFDFDFEFFFFFFE1D3AE5D94B1F1FDFFFFFFFFFFFFFCAF7C69
+B6C5DAFFFFFFE8CCB6685784F2FDFFFFFFFFFEFEFFFFFFFFFEFEFFFFFFFFB29992A1BEDDFFFFFF
+EBDEBD587B9EEBF9FFFFFFFFDAB69C81889AF5FFFFFFFEFDFFFFFFFBF5E873557ACDDDF0FFFFFF
+FDFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF0E5C8405684E2EFFCFFFFFFFFFFF6B1937E576883A9A696
+0000007294B3E2D9C56A686FADBAC3B7AB9A7B8698EAFCFFE9DBD27E58305D6E80A6B1B4DCEBFA
+F4DBB549494BB1BFC8B2A0815C86A6F1FFFFFEEFDD87655C97A5A784776CA4BDD3EBE9DD957C5F
+4C5268A5ABB0D3E3F4FFFBE98A764E8CA6B4B0A28B0000009FC1D9ECE0CC3D0000A9C9DEDBC6A5
+000254CADBE4B2926662788CA7A094000000779DB7F5FDFFFFFFFEFEFFFFFFFFFFFFFFFFFFFEFD
+D9CAC39D8D79493C5298A1AACFDEE8E1D0B600003AC1D9E6CCAF86003672E1F2F6DDD5C8A09589
+463B4D909AA3C5D2D9FFFFFFDBC29E596E7BA8A59E6B6C86DFEBF4FFFFFFFEFEFEFFFFFFFEFEFD
+FFFFFFF6E6D6877A78AAB6B88C706698ABC7FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFEFDFFFFFF
+FFEDD67D7461C6E5F7FFFFFFFCF8EF986C425E8AA9E8E6D8601F0096B7CBFDFFF9C7BAAB5C2D00
+5B7F91D0D7E3FFFFFFFEFEFEFFFFFFFFFFFFFEFEFFFFFFFFE1CBAC000047C5DCE7C8AA80004175
+E1F3FFFBEEDFAD9E8B391B4293A5B4DEE8F3FFFFFFFFFFFFCFB39F787BA4FDFFFFFFFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF6ECD14B557CD9E8F8FFFFFFFFF7E98C632F6396BAE8E2D2
+6119009DC0D9F3EDDA4000001B69869D8F838DABC6F8FFFFFFFFFEFEFEFFFFFFFFFEFEFFFFFFFF
+CEB996000062DBE7EABBA0781B558BECF5F9BE95620000009A9F9C737282D3E1EFFFFFFFFFFFFF
+D0AB7E78A1B4F9FFFFFFFEFDFEFFFFFFFFFFFFFFFFFFFFFFFEFDFDFFFFFFEDDBC9674561E1F4FB
+FFFFFFF8EFE47552569CAEB8AB957C000000ABC0D5FFFFFFFFFEFEFFFFFFFEFEFEFFFFFFFEF3DD
+7B6C4E98AEB9AA997E000021A6C5DBFCFEFFFFFFFFDEBE986B8C9CF1FFFFFFFFFEFEFFFFFFFFFF
+FFFFFFFFFFFFFDFDFEFFFFFFE5D8B83D6296EEF7FFFFFFFFF7ECDA754300002C5EA5A4A0666058
+AAC5DEFFFFFFFFFEFEFFFFFFFFFEFEFFFFFFFDF2E48A56000000499CA5A06E5348A8C4D5FCFFFF
+FFFFFFC7A8948088AEFFFFFFFEFDFDFFFFFFF9EDCE435B77D3E5F7FFFFFFFDFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFEFEFFFFFFFFFAEE956648ABC9DCFFFFFFFFFFFFFEF9F1D4CDC9C8CACED9DBD9D8D9E1FBFCFD
+EEE5DCC5C3C3C9CBD0E1E7EDFFFFFFECE5E1D4D3D5D8D7D5CED0D3E8EFF8FEF7EED7D6D3CCCAC8
+C7C8CFEAF0F5FFFFFFFFFFFDEEE7DFCAC6C9CFD4DBF2F7F9F0EDE4D0D0D3D9D9D7CFCFD0E3EDF5
+FFFFFFF1EAE3C8C4C1CCD3D8DFDCD8D9DEE5EFECE6D8D7D5DDE4EAE9E2DDD4D5D5E9F3F8FBF9F1
+D1CAC4C8CED3DCDCDBD9DCDEF3FAFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFEE6DCD6D0D1D3D9D9D9
+D0CFCEDFE7ECF0EBE3D4D6D7E1E6EAE6DFD8D4D8DAEEF5F6E8E3DCCECED1D9DAD9D1CFCEDAE2E6
+FCFFFFFEFBF6DDD3CFC9C9CDDCE1E8FAFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF7E0DCD2
+BEBBBCCAD0D8F5FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFF8A487728CA6C7
+FFFFFFF9F5F2DBD4D2DCE0E0EBEDEDDAD2D2DBE0E5FAFDF7DCD8D5D5D7D9D4D2D3E0E3EBFFFFFF
+FFFEFEFFFFFFFFFFFFFEFFFFFFFFFDF0E9E0D3D6D8E2E6EBE6DED8D4D8DAEDF6FDF9F0E7D4D3D2
+D8D9D7D0D2D5E8EEF5FFFFFFFFFCEE967D629BBFDBFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFEFEFFFFFFFFFDF3A07453A0BED2FFFFFFFDF6EFDDDAD5D7DEE4EAE6E4D9D6D3DEE7ECF4F5EF
+DBD9DAD9D8D7D1D0D0E1E9F1FEFFFFFFFFFEFFFFFFFFFFFFFEFFFFFFFFFBE8E6DFD1D1D7EAEBEA
+E4E3DED1D3DAF0F2F6EAE3E0DAD9D8D5D3D2D2D7DEF5F8FBFFFFFFFFFBEB865E60B5CBE0FFFFFF
+FEFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFBEB957D57A2C5E1FFFFFFFFFEFDEFE5DC
+C4C1C4D4D8DADEDEDBDBDDE6FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEEE6DFC6C3C1CFD5DA
+DFDBD7D8DFE7FAFDFFFFFFF59C786B9EB5D1FFFFFFFEFDFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFFCF2E3805242BDD8E8FFFFFFF8F1E8D9D9D9DBD9D7CCC9C9D5DDE6FEFFFFFFFFFFFEFEFF
+FFFFFFFFFEFEFFFFFFFAF3EEDDD9D7D9D8D7CCC8C8D4DCE4FBFEFFFFFFFFFFF9EA8B7460A6C7E1
+FFFFFFFDFDFDFFFFFFD1B28E708DA3F5FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFF
+E2D3BB829BB8F8FDFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE
+FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF0DEC68B98A2E7F8FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEDDDD18C899BEDFAFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+E9DBC37F94B1F3FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFEFD8BD929EAAEEFCFFFFFFFEFEFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFE0CBB89597ADF8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7E4CD95979BE3F5FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFFFD5C4AD
+8DA8C6FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFFFFFFE8D6CA8D8FA2F1FDFFFFFFFFFEFEFFFFFFF0
+A39D97C5D9ECFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFBF2F1F2FBFCFE
+FFFFFFFEFEFEFDFDFEFDFDFDFBFBFBFCFDFDFFFFFFFEFEFDFDFEFEFDFDFDFDFEFEFFFFFFFEFEFE
+FDFDFDFCFCFCFBFCFCFDFDFEFFFFFEFDFDFDFDFDFDFDFDFDFEFEFEFFFFFFFFFFFFFEFEFDFDFDFD
+FDFDFDFEFEFFFEFEFEFDFDFDFDFDFDFDFDFDFEFEFEFFFFFFFEFEFEFEFEFEFDFDFDFDFDFDFDFEFE
+FEFEFEFDFDFDFDFEFEFEFEFDFDFDFDFEFEFEFEFEFEFEFEFEFDFDFDFCFBFCFCFDFDFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFDFDFDFEFEFEFEFEFD
+FDFDFDFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFEFEFFFFFFFFFFFEFDFDFDFDFDFDFDFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFDFCFDFCFCFDFDFEFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F0F0F6FAFEFFFFFFFDFDFDFDFDFEFEFEFEFDFDFD
+FDFEFEFFFFFFFDFDFCFCFCFCFCFCFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FDFDFDFEFEFEFEFEFDFDFDFDFEFEFFFFFEFEFDFCFCFCFCFCFCFDFDFEFEFEFFFFFFF8F5F4F4F8F9
+FFFFFFFFFEFEFFFFFFFFFFFFFEFEFEFDFEFEFEFFFFFFFFFFFFFFFFFEFFFFFFFFFCF3F2F2FAFCFE
+FFFFFFFDFDFDFDFDFEFEFEFEFDFDFDFDFEFEFEFEFEFDFDFDFDFDFDFDFDFDFDFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFDFDFDFDFDFDFD
+FDFDFDFEFEFEFFFFFFF9F3F1F4F8FCFFFFFFFEFEFFFFFFFFFFFFFFFFFEFEFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFDF1F0F0FAFFFFFFFFFFFEFEFEFDFEFEFEFDFDFDFDFDFDFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFEFEFDFCFCFDFDFEFEFDFDFDFDFDFDFDFEFFFFFFFBF5F3F2F5FAFFFFFF
+FFFFFFFFFFFEFDFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFEF9F1F1F3FDFEFFFFFFFE
+FDFDFDFDFDFDFDFDFDFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFDFDFDFD
+FDFDFDFDFDFDFEFEFFFFFFFFF7F4F3F4F9FAFFFFFFFFFEFEFFFFFFFFFEFAF2F3F5FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFE
+FFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF
+FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFE
+FFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFEFEFEFEFEFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFEFEFEFFFFFFFEFEFEFFFFFFF5EEE3C8C6C8E6EFF4
+FFFFFFFEFDFDFDFDFDFDFEFDFEFEFFFFFFFFFEFEFFFFFFFEE8DFD6BFBFC3DDE4ECFFFFFFFDFDFD
+FDFDFDFDFDFDFDFEFEFFFEFEFEFFFFFFFFFFFFFEFDFDFEFEFFFFFFFFFEFEFDFDFDFDFEFEFEFDFD
+FDFDFDFEFFFFFFFEFEFDFDFDFDFDFDFDFEFEFFFFFFFFFEFEFDFDFDFDFDFDFDFDFDFEFEFEFFFFFF
+FEFEFEFFFFFFF0EBE3C9C8CCE8F3FAFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFDFDFD
+FEFEFEFDFDFDFDFEFEFFFFFFFEFEFDFDFEFDFDFEFDFEFEFFFFFFFFFEFEFEFDFDFDFDFDFDFDFDFD
+FEFFFFFEFEFDFDFDFDFDFDFDFDFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFF
+FEFAF4D9D4D0DFE7EEFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFEFFFFFF
+FFFFFFFEFEFFFFFFFEFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFFFFFFFBF6EED4D1CFE6EEF4FFFFFF
+FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFDFDFDFDFDFDFEFEFEFEFFFFFFFFFF
+F1E8E1D0D2D7F3FBFFFFFFFFFEFEFFFFFFFEFEFFFFFFFFFFFFFFFFFEFEFFFFFFFFEFE8E1D5D8DF
+FAFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFEFDFDFDFDFDFDFDFDFDFDFEFEFFFFFFFFFFFFFFFDFA
+E7E5E4F1F6F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFDFDFDFDFDFD
+FEFEFFFFFFFFFFFFFFFBF6F0E4E6EBFAFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFF8EDE7D2D3D4EDF7FC
+FFFEFDFDFDFEFFFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFF6F2EBCECACFECF5F9FFFFFFFDFDFE
+FFFFFFFFFFFEFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFFFFFFFFFFFFFFFFFEFEFFFFFFFFFEFEFEFDFDFDFDFDFDFDFEFEFFFFFFFFFFFFFFFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFEFEFEFCFDFDFDFDFDFEFEFEFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFEFFFF
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFEDDFD1A1ACC0F7FCFFFFFFFEFDFEFFFFFFFFFFF1DB745833A2C6D6FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFCFDFEFFFFFFEFDDC36F6E727F818AB0BFCFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFCEDE1B0B0BFF6FDFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFEFEFFFFFFFFF6EBD9
+603C45AAD2E8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF7E6A08C715F686A686E72
+BED5E8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF8EDD9A2A9B1E6F7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBEDD78A7A67656B676B7985CFE3F3FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7C0B167605E6868688596AB
+EDFBFFFFFFFFFEFEFEFEFFFFFEFEFEFDFDFEFFFFFFEDE1D17B62514F4F51A2BCD2FBFFFFFFFFFF
+F3EBD5A0AEBBF2FCFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF6EBD7
+A1A9B4E9F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCEEB3A496483C42C1DDE8FFFFFF
+FEFEFDFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8EAD6
+9784685279A5EEF5FEFFFFFFFFFFFFE8DAD1A4A9BEF7FFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF0E3D59FA8BBF7FFFFF8E2CD595D65C8EAFEFFFFFFFFFFFFFFFEFE
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF3EAD6603E30C5E8F4FFFFFFFFFFFFFDFDFEFFFFFFE6DCC5
+A6BACCFCFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEADBC5A1B4C6
+F5FFFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF0E7D0A1B1C0F6FEFFFFFFFDFEFFFFFFF9F0BDABA2
+D6E8F3FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFAB6935E82B0C9
+FFFFFFFFFFFFFFFFFADCD3CFD4D8D6B4B1969DC1D1FFFFFFF0E6DCC2BEBEC2C7D2F0F9FEFFFFFF
+F6EEE6B598788592A7D9DDDDE7EDF4FFFFFFE8DED7C3C1C1C7C7CCDEE3E9FCFFFFE2C9B66B6484
+D3DDE5EBECEEFDFFFFF6EFE9CDC9CCE1E5E8DED9CEBEC5CDECF2FAFAF3EAD0CCC8C1C4C7DDE5EC
+FFFFFFF5ECE2D3D5D8D5D0CDC1C3CAEBF2F7FFFFFFFFFCF8DAD2CCD3D6D9A18D91ACCCE1FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFCDFD5D0D0D5DDEAE7E1C7C6C1CFDAE7FFFFFFEFE6DCC2BDBE
+C3C9D3F1FAFFFFFFFFFBF6EFD5CEC7C2C2C3CFD3D8EFF8FAE6DFDAD6D8D9DAD8D3CACBD2F0F7FB
+FFFFFFFEFEFEFFFFFFFFFFFFFFFEFEFFFFFFFFF0DEB1A7ADF2FFFFCAAA9B768EB9FFFFFFFFFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFC2A085768AA9FDFFFFFCF6F2D9D3D2D6D8D5C6C3C4
+D6DDE8FFFFFFF8E4CEADADBBFCFFFFAF898193ACCFFFFFFFFDFEFEFFFFFFFFFFFFFEFFFFFFFFFD
+EEE6DDD3D5D9D2CCC8C4C8D1F2F8FCFFFFFFCAB5B0B4CBE2FFFCE26C7168BDDEF4FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFBC0A57285B5CFEBE2D35F3F72E3F0FAFFFFFFFBF4E676414CBFD7E8
+FFFFFFFEFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFBE9A7F7A90AEFEFFFFFBF5F1
+D8D3D2D6D7D5C6C3C4D8E0EAFFFFFFFEFFFEF5EADF9B7B4BB3D5E4FFFFFFFEFEFDFFFFFFFFFFFF
+FFFFFFFEFFFFFFFFFDEDE5DCD3D5D9D1CBC8C4C9D2F4FAFDFFFFFFFEFEFAE5D5C37B7896E9F2FE
+FFFFFEFFFFFFFBECD9775F4AC0E2F1FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFF
+FFFFFCBD9A667BAAC3FDFFFFFFFEF6A28E91A9C3D3D4CECBDBE5EDFFFFFFFFFFFEFFFFFFFFFFFF
+FFFFFEFDFEFFFFFFF8B2A98CA3BFC4D2D1D0DBE2EAFFFFFFFFFFFFF1E3D258305DD9ECF7FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFF8A0725A9DB6CDFFFFFFFFFFFFF7F1EA
+D2CECAC1C4C7DCE4EBFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFF1EBE4CEC8C6C4C5CA
+E6EEF4FFFFFFFFFFFFF9F0E16B354DC8DFEDFFFFFFFCFDFFFFFFFCBAA27F6C97BFFFFFFFFFFFFE
+FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF7EDD95D3B63D5E6F2FFFFFFFFFFFBC3AA94
+5D617095968E290000AFCFDBF0E9D463505EA5B3B8A08C75697899F2FFFFE5D2C56E503B626A75
+8D9299D2E1F4FEECD0656359ACBEC28E6B3B7FA7B9F4F7E8977A60393E4E7B7F788C9EB5F1F9FF
+F7ECE49F8066283A4F828886767E87CFE1F4EDD4BD757684928978447189E5F9FFF6E4CA3F0000
+6E87948D806A75A0C0FAFBFBC3A4835E6B7C968D812B2C2EB2D3EBFFFFFFFEFEFEFFFFFFFFFFFE
+FFFFFFFFFFFED3BBAB5843355D6A7784837D98ADC3E6DCCA665865A8B5B99C88706C7DA0F8FFFF
+C1AA905F7B9BC1B9A640465AC9E7F8DBC6A60000007381897F75655A80A0EAF4FAFFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFEFEFDFFFFFFFFFFF5A083658BB1D2FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFEFEFEFFFFFFF9E584776BB4D0EBFFFFFFFDF8F0A1795300396B9C9D8F636972DBF0FAFFFFFF
+FFFFFFFFF8E6816C5FA8C7E3FFFFFFFDFEFEFFFFFFFFFFFEFDFEFFFFFFFFE1CDB000000087989C
+7A6E5F95B9D4FFFFFFFFFEFDFFFFFFEBD2B856646BD8F2FEFFFFFFFDFEFEFEFEFEFEFEFDFEFFFF
+FFFDF3AF8C72C3D8ECFFFFEE9C7A77D8E6F2FFFFFFFFFFFECCAF7F6198BAF9FFFFFFFFFEFEFEFF
+FFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFF7E27F746CB9D4EDFFFFFFFCF6EE9C724B00426F9C9B8D
+636C77DEF2FAFFFFFFFFFFF3AF9163B2D3E3FFFFFFFEFEFDFFFFFFFFFFFFFFFFFFFDFEFFFFFFFF
+DEC9AB0000008A9A9D766B5F9ABDD7FFFFFFFFFFFFFAE9DB898098E8F2FEFFFFFFFCFDFFFFFFFF
+B49C877C95BCFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF9F0DD643F60CFE1EF
+FFFFFFFFFFF9A8816A3B556695938C595164C3D9E7FFFFFFFFFEFEFEFFFFFFFFFEFDFEFFFFFFF9
+B5A5810A285C97978D575D6EB9CBDDFFFFFFFFFFF4AC916187B5D4FFFFFFFFFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF8E8CC5D6A7DD6E9FBFFFFFFFFFFFFE8D1BD7B7884938B7C476F85
+DDF2FEFFFFFFFEFEFEFFFFFFFFFFFEFDFEFFFFFFFED7C2AA79808A8E7D6D607DA7F3FAFFFFFFFF
+FFFFFCC3A6756DA1C3FDFFFFFFFDFCFFFFFFECD6C36C596CE1F7FEFFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFEEE1C04B7B98E6F5FFFFFFFFFCEED46D7672D0EFFFFFFFFEC3A57C
+A9C9D4CDB58E254E6BACB2B7A5988D75757CDAF3FBFFFFFFD7B99AADB4CEFFFFFFFFFFFFFBEFD9
+88837C8C969A8C827FAEC1CFFDFFFFEFD9C78489A0E7EFF9FFFFFFFFFFFFFFFFFFF4DBBC888D9F
+F4FFFFFFFEFDFFFEFBD3BFAE858B94A7A4965A6D80D5EFFFFFFBEF9A7C7DD7EAFEFFEAD78286A2
+DEDAD767497ADEEDFEFFFFFFAB998DA9CCE6FFFFFFFEFEFEFFFFFFFFFFFFFFFEFEFEFFFFFFFFF5
+B3937ABED5E5FFFFFFFFFDF8C5A374285975AEB3B7A3968A737681E5FDFFD4BCAE7871819A9B95
+828D98DAEBFCFEF2D57A8D93E7FDFFFFFFF1A17A45A9D1E2FFFFFFFEFDFDFFFFFFFFFFFFFEFEFE
+FFFFFFFFFEF5C0AB8F718EAEF7FFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFF5DFCC
+7B695ED6F3FCFFFFFFFFFFFFD3BBAF95B3D6FFFFFBA29B85C8E8F3FFFFFFFFF8EBA9957C8AA6C2
+FFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFEFEFDFFFFFFFAE9DA897A8DEEFCFFEED2BC7E8CAFFAFFFF
+FFFFFFF1E1D2847366BAD4E8FFFFFFE3CCB8726D67797C80766F637596B2F2F1F0B0836CC5DAEE
+FFFFF0A37E7AD8E6F2FFFFFFFFFFFFE1D2BD50639DF2FAFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFF
+FEFEFDFFFFFFF3DBC7796C64D9F5FEFFFFFFFFFFFFCFB6AB99B7DAFFFFF99E9985CCEBF6FFFFFF
+FFFEF2AF9265B6D9E7FFFFFFFEFDFDFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFF8E7D7887B91F1FFFF
+EACEB78090B4FCFFFFFFFFFFF9E8D98A839CEBF5FFFFFFFFFDFDFDFFFFFFD9B7A17F8199F6FFFF
+FFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF1E5C54E7992E2F3FFFFFFFFFFFFF89E8487
+B2CCE7FFFFFFD7C8A7638DB5F7FFFFFFFFFEFEFEFFFFFFFEFDFEFFFFFFF9B0A787AFD3E6FFFFFF
+E7C4996A8A97F0FFFFFFFFFFC7B2A16D88B8FFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFD
+FFFFFFE4C3A674838BEBFFFFFFFFFEFFFFFDD5C3B2858A92A7A6995E6D7DCFE8FBFFFFFFFDFEFE
+FFFFFFFFFEFEFFFFFFFFFCF6C3AF9E86929DA49B8E4C477AE7F3FAFFFFFFFFFFFFDAC9B4586FA6
+F7FDFFFFFFFEFEFFFFFFEFD87E765DB8DCF2FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFEDE1BF4D7D9CE7F6FFFFFFFFFDF4DD766761B0CBE1F8F1E39168369DBDCED4BE9A406680
+CFD7DED2CBBFA3A7ADE5F6FDFFFFFAC3A38297A6BEF5FBF9FCFFFFF6E7D0989190C2CBD1BDAA87
+397396EDFFFFFCE7D3746780E1EFF5E3D9CDCAD4E2FFFFFFDBC2A1878BA5F1F6F8FAFDFFFFF5DC
+6D633EB0D0E3E8DAC04A4E64CCE8FBFFF5E67D5E6ED2E9FBFAE7CF737292DADBDC7C4C54BBCFE3
+F7EFE17E61559EC2DDFFFFFFFEFEFEFFFFFFFFFFFFFFFEFEFEFFFFFAF1E19A7B6FC6D3E2FAFBFD
+FFFFFFD0B1853E6C88D1D8DED1C9BCA1A7B1EEFCF9CCBDAA929EAFD4D4CC744E48A0B5D4FFF8DA
+5E646BC0D8E7EDE1D0785049BEDCE8FFFFFFFEFDFDFFFFFFFFFEFEFFFFFFFFF7EEA88762005988
+D3D5D5D5D7DEFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFF5E0CB7B6B5DD5F2FCFFFFFF
+FFFFFFC3A79386ABCFFFFFF08D8366C1E1F0FFF4E78A663E497A9FD9D7D5D7DCE5FFFFFFFFFEFE
+FFFFFFFFFFFFFEFEFDFFFFFFF2DFCD6A6286EAFBFFE8CEB26C77A0F9FFFFE8D5C04C000097B4C4
+D6D5D7E7F2FCF5E8DEC3C1C0C5C6C7C5C3C0C3CDDAFFFFFAC6AD8088B2CBECE0CC604E7BE3F1FA
+FFFFFFFFFFFFE1D2BC48629BF2F9FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFF3DCC7
+796D63D8F4FEFFFFFFFFFFFFBEA28F8BB0D3FFFFED89826AC4E1EDFFFFFFF9EFE3997337A1C6D4
+FCFEFFFFFFFEFEFFFFFFFFFFFFFFFFFEFDFDFFFFFFF0DCC968668AEDFDFFE5CAAD707FA6F8FEFF
+FFFFFFE9D9C8736582D9E6F1FEFEFEFEFDFDFFFFFFDBB8A17F8098F6FFFFFFFEFEFEFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF1E5C4507A96E3F3FFFFFFFFFFFDF090695B85A5C2F3F6EEB39C78
+7EA6C1FAFFFFFFFFFEFEFFFFFFFFFEFEFFFFFFFFF4A18F687CA5BEF3F7F2BA96747C95ABF7FFFF
+FFFFFFC6B3A06887B7FFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFE4C4A673848A
+EBFFFFFFFFFFFFF6DF76693CA9CBE0EBDEC5535263C5E0F2FFFFFFFEFEFEFFFFFFFEFDFEFFFFFF
+F3E8DA3F0457CBE0EAD9C4AA280051DBECF5FFFFFFFFFFFFDAC9B3506EA4F6FCFFFFFFFEFEFFFF
+FFF2DB7F7A60B8DBF2FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF6EDD75D3C62
+D5E6F3FFFFFFFFFFFFDDCAB872686F878984645A568697B4EEECE5AD9E9190979E9B938E97A4B4
+F4FFFFDDCCC280706A7D828387929AD0E3F5F8E3C473716C9CA3A99C948EA7BBCDF9FFFFFFFAEE
+B6A18F80838675767EBFD2E0E3DECC8377747A7D7E888D92C5DBEEFFFFFABFAD988286898D8E8B
+7B736B9CB6CBE2D8C7756B64A8C2D4D1BEA5606674CAE1EBDACBAF726E6F858A8B736A648CA0B0
+ECF8FFFFFFFEFEFEFFFFFFFEFFFFFFFEFBEBADA3977673748282829DB0C0F0FCFFFEF3E5A3968D
+929AA09A928C98A7BAF9FFFABCAB966D7789A9AAA58A8994D5E6F7FFFBDF70695E8A9A9C877D7C
+A0B2CAF9FFFFFFFFFEFEFEFFFFFFFFFEFEFDFFFFFFEFDFD37A60527E889389827992A5C1FEFFFF
+FFFFFEFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF7E3837364B3D0EAFFFFFFF6F0E99B7A67889FAD
+DCDDD5835C4FA2BBCBDAD0C66D57548990957E7978A7B9D2FFFFFFFEFEFEFFFFFFFFFFFEFEFFFF
+FFFFFEDECBAE5A6777BDCFDAC3AA8B5E768FE0F1F1C3AC91545E7093938F7A808AD0E6F9FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4EADB95897D70717DB4CADBFFFFFFFEFDFFFFFFFFCCB381
+6397B8FAFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF5E07D7066B8D4ECFFFFFF
+F5EEE69876638CA3B1DBDBD3815C519FB6C7F8FEF2B0A39675706C747C89C1CADAFFFFFFFEFEFE
+FFFFFFFFFFFFFEFFFFFFFFFDDBC8AA59697BC0D0DAC1A788627A8EDEF1FEF5E2CE958C81767376
+8392A0D4E1EFFFFFFFFFFFFFB89F887F97BFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF9F0DB64405FCFE0EFFFFFFFF0DECE8D745E666E7582807C7F889AE1F0F8FFFFFFFEFEFE
+FFFFFFFEFEFEFFFFFFEFE7D6856F696B757C85857F77859CDEEBF5FFFFFFFFFFF5AC936289B4D2
+FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF9E6C95A6678D6E9FAFFFFFFFFFFF8
+C3B29D8285878E8E8C7E756C91ACC2F3F9FFFFFFFFFEFEFFFEFEFEFFFFFFFDF7F0B39C8D81888E
+968F87737579A8B7CCFDFFFFFFFFFCC3A9766FA0C1FDFFFFFFFDFCFFFFFFEFDAC66F5D6BE1F6FE
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFBBA99737EA7C4FEFFFFFFFEFE
+FFFFFFFCFAF7F5F6F9FFFFFFFEFDFDFFFFFFFFFFFEF4F2F1F6F8FAFFFFFFFFFFFFFDFCFCFDFEFF
+FFFEFDFCFBFCFDFDFEFFFFFFFEFDFDF7F5F3F3F4F8FFFFFFFFFFFEFFFFFFFFFFFEF8F6F8FBFDFF
+FFFFFFFDFDFCFCFDFEFFFFFEFCFCFBFCFDFEFFFFFFFFFFFFF5F4F2F8FBFEFFFFFFFDFDFDFDFDFD
+FFFFFFFDFDFDFDFDFDFFFFFEFEFFFFFFFFFFFAF8F5F6F8FBFFFFFFFEFDFDFDFEFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFEFEFCFCFCFEFFFFFEFDFCFBFCFCFEFEFFFFFFFFFFFFFDF4F2F1F6F8FBFFFFFF
+FFFFFFFFFEFFFDFCF9F1F0F1F8FCFEFFFFFFD9CBAE5D6E6DBCCED5EEF5F9FFFFFFFFFFFFFFFEFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFEFDFCFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFC9AC8F708BA7F8FFFFFFFEFDFDFDFEFFFFFEFDFDFEFFFEFFFEFDFD
+FDFFFFFFFFFFFEFDFCFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFFFFFF
+FDFCFDFDFDFEFFFFFFFDFDFDFFFFFFFFFFFFFCFCFBFEFFFFFFFFFFFEFEFEFDFDFDFDFDFDFDFDFD
+FDFDFEFEFEFFFFFFFFFEFAF6F3F4F6FFFFFFFFFEFEFFFFFFFBF5E37A5E5BC5DCEBFFFFFFFEFDFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFC6A78A7490ACFAFFFFFFFDFDFDFEFEFFFFFE
+FDFDFEFFFEFFFEFDFDFEFEFEFCFCFCFEFFFFFEFDFDFCFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFEFEFEFEFFFFFFFDFCFDFEFEFEFFFFFEFDFEFFFEFDFDFCFCFDFFFFFFFCFCFCFCFCFDFFFFFF
+F9E9D9725C5CC7E2F2FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFDC0A07B
+77A0BEFCFFFFFFFDFCFEFFFFFFFFFDF8F7F8FDFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF
+FEFDFDFEFFFFFFFFFEF7F7F9FEFFFFFFFFFFFFFFFFF0E4CD61576EDDF0F9FFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFF9A9866994B2CAFFFFFFFFFFFFFFFFFFF6F4F3F8FBFD
+FFFFFFFDFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCF4F3F4FBFEFFFFFFFFFCFBFC
+FFFFFFF8F0DC70585ECDE3F0FFFFFFFCFDFFFFFFFABA9F7B7FA1C4FFFFFFFFFFFEFEFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF7EFE1BAC0CEF7FBFFFFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFBCDBFB1918C8C9094A5E4F2F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFFEF5E8C0C2C3E8F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFFFFFFFFFFEFEFEFEFEFFFFFFF5F1DFBEC7D3F9FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFFDF3E6BFC2C5EAF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFEBE0D9C1C7D2FDFFFF
+FFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF9F2E4BBBFCCF5F9FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFDFDFEFFFFFFEAE5D4C4D0DFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF5E9D9BCC7D1F5FDFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2EDDBC0C9D7
+FCFFFFFFFEFDFEFFFFFFF8F0CDC3BDE4F3FBFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFEFEFEFEFEFEFEFFFEFEFFFFFFFFFF
+FFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFEFEFEFFFFFEFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFFFFFFF
+FEFEFEFEFFFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFEFFFEFFFFFFFEFEFD
+FEFEFEFFFFFFFFFFFFFEFEFEFEFEFFFEFEFEFEFEFEFFFFFFFFFFFFFEFFFFFEFEFEFEFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFFFFEFEFEFEFEFFFFFFFFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFE
+FEFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFEFEFDFEFFFFFFFFFF
+FEFEFEFFFFFFFFFEFEFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFFEFEFEFEFEFFFFFFFF
+FFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFEFEFEFDFEFEFFFFFFFEFEFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFEFEFDFDFDFEFEFF
+FFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFDFEFFFFFFFFFFFEFEFEFFFFFFFFFFFEFEFEFEFEFEFEFFFFFEFEFFFFFFFFFFFFFFFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFEFEFEFEFFFFFFFEFEFEFEFEFE
+FFFFFFFFFFFFFEFEFEFEFFFFFEFEFEFFFFFFFFFFFFFEFEFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFFFEFEFEFFFEFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF
+FFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFF
+FEFEFEFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFEFFFEFEFEFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFFFFEFEFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFFFFFFFFEFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFDF9F8E8E9ECFBFDFF
+FFFFFFFEFEFEFEFEFEFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFEFEFE
+FEFFFFFFFFFFFFFFFEFEFEFEFFFEFEFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFFEFEFEFFFFFFFFFFFF
+FFFEFEFEFFFFFEFEFEFDFFFFFFFEF4BEA9928C9EAEF0FEFFFFFEFEFEFFFFFFFFFFFFFEFEFEFEFE
+FFFFFFFEFEFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFF
+FCF8F7E8E9EDFCFEFFFFFFFFFEFEFEFFFFFFF4EFEEECEFF4FFFFFFFFFFFFF4EDDD9E8E8BA9BACD
+F9FFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF7EDE0A2958CA3B7CBF9FCFFFFFFFF
+FFFEF9EAEDEAF6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFF
+F1EEEAEAF1F8FFFFFFFFFFFDF0E7DCB9B6B5CCD8EAFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF0E6D99B8983B3C6D4FAFFFFFFFFFFFFFFFBEDEEEAF3FAFDFFFFFFFEFEFEFFFFFF
+F8F1EDEEEEF1FFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFBF5
+ECE9EAFBFFFFFFFFFFFEFFFFFFFFFFF0ECEBF0F4F8FFFFFFFFFFFBE9E3DBB5AFAED2E0E7FFFFFF
+FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFDEFE6DAB8B5B5CFDAECFFFFFFFEFEFFFFFFFC
+EAE7EBF5F9FEFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFF3EEED
+EDF1F5FFFFFFFFFFFFF1E9D8988A8AB0C0D2FBFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFEFCE6DDD5B5B0B0D4E4F1FFFFFFFEFEFFFFFEF8EAECEBF8FDFFFFFFFFFEFEFFFFFFFFF9F7F0
+E9EFF2FEFFFFFFFEFEFFFFFFFFFCF9EEE9E8F9FBFEFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFFFFFFFFD9C3A3698FB1F8FEFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F7FAFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCF9FAFAFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE6D9BC677D82E0F8FFFFFFFFFFFFFDF8F8FBFFFFFFFFFFFFFFFFFFFFFFFFFCFAF9
+FEFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFFFFFFFFD5BF9E6D93B6FAFFFF
+FFFFFEFEFFFFFFFEF19B8874AAC8E3FFFFFFFFFAEDA286688BA09E82705FABCCE0FFFFFFFFFEFE
+FFFFFFFFFFFFFFFEFEFFFFFFFFFDF5A3806D88959F856E62AAC1D7FFFFFFFFFFF6A08D7DA6C0DB
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFF6E6907362BDDDEEFFFFFF
+FFFDF7DDCFB76050549BB4D7FFFFFFFDFEFEFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFF8E78A7661
+899BA1766367B5CDE6FFFFFFFFFFFDB6A38B90ACCCFFFFFFFEFDFCFFFFFFF2DABD6D7D8FE5F6FF
+FFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFEFFFFFFD7BFA87683A7FCFFFFFFFEFD
+FFFFFFFEF3DF7B7476C9DFF3FFFFFFFFFFF7CCC0B3612F009EC3D2FFFFFFFFFEFDFEFFFFFFFFFF
+FFFFFFFFFFFEFEFFFFFFFEF7DBCDB45B4D55A1B9DAFFFFFFFDFEFFFFFFFDAC8675A2BED2FFFFFF
+FEFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFBEC918173B4D0E8FFFFFFFFF7E9
+987E6491A49F7C6B5FB4D3E5FFFFFFFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFFDF9F6CDBBA7635859
+A6C9E3FFFFFFFDFEFFFFFFF3968479B0C8E2FFFFFFFCFCFDFFFFFFF2E7CE5F6788E5F2FEFFFFFF
+FCFFFFFFFDF3AB8E6FA6C8DFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFEFEFFFFFFFFF8EE946642B1D0DFFFFFFFFCF0DDA0948A8E9497908A818A95A7EAF6FD
+F2EBD88B8183AEBCBEA49285737E8BD8EEFAF9EDDFA69C979A999899A2B1E4F2FCFFFFF8C4B19E
+7880858B83798090ACEDF5FEEEE2CF9C96929A9895A4B1BFF1FBFFFFFFFBCDBAA882818A9DA396
+6F8891E8FDFFF0E1D19D96959A9998A0ACBDEFFAFFFFFCF3C0B3A69C9FA2978B7D99B6CDF7FEFF
+FFFFFEFEFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFF7EB8F6140B6D5E3FFFFFFFDFCFCFFFFFFE9D2B9
+676474E3F8FEFFFFFFF1E0D069567FF3FFFFDFC8AC5F87B2FCFFFFFFFFFEFEFFFFFFFFFFFEFEFE
+FFFFFFF8EFD55C6D86E6F9FFECD2A77097AAF5FFFFFFFFFFDDBEA364788EEDFEFFFFFFFEFEFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFDFDFEFFFFFFDCC9AF526093F3FCFFFFFFFFFDFEFEFFFFFFD1B19C
+A0B3D3FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFF6E1C077818BF3FFFFD4AD928D99B8
+FFFFFFFFFFFFEAD1BA646575E0F6FFFFFFFFFEFFFFFFFEF0896866ACC3DBFFFFFFFEFDFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFBED967C5F9FC6E2FFFFFFFDFDFDFFFFFFD5B5966E8499
+F4FFFFFFFEFDFDFFFFFFFFFFC9A8779CC0D0FFFFFFFFFEFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFFFFFFFFCEAD99A3B7D7FFFFFFFDFDFDFFFFFFE8D2AF43708DE7F6FFFFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFDFFFFFFE3C9AE676E80E9FBFFFFFFFFECD9C8675F89FAFFFFD5BCA1
+6B92BBFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFC1A79EA8C7DFFFFFFFFDFDFD
+FFFFFFD7B598688299F1FFFFFFFEFDFEFFFFFFFCF4A2734EA0C4D8FFFFFFFDFCFDFFFFFFD8C4AB
+556796F4FEFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F1E6CB3F5381E0EDF9FFFFFFFFFFF5A67747415F84CCD5D5A9927B748CAEF5FBF8B59680002B62
+BBC3C8C6C7CDEAEEE9A98D643E6A92CCCFC775320085A4B7CFC6B35E5F7BD2DCE2CCB9A250658D
+DCE0DE844F2C7591A9CBC6B851250096C0DADFCFB95B667CC8D4D9BA9F8057738AE8F1E68D6C46
+6486A5CDCABD5500009FC1D2F4F5E04B004AADBCC6A9977D8AADC8F9FFFFFFFFFEFEFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFEFE3C73B5485E4F0FBFFFFFFFCFCFFFFFFFEBDAB906F92BDFFFFFFFFFFFF
+EADCCB5E6294F2FCFFE5CEBD7381A9F9FEFFFFFFFFFEFFFFFFFFFFFEFEFEFFFFFFF5EBCC7B949B
+EEFFFFEEDFBA5085A2EAF9FFFFFFFFFDF1D7606273C6DCF2FFFFFFFDFEFEFFFFFFFFFFFFFFFFFF
+FFFFFEFEFFFFFFFFF9BD9C6D8BB8D2FFFFFFFFFEFDFDFEFEFFFFFFC8AB989EB2D3FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFEFEFDFFFFFFE8CEB58D84A1FEFFFFE8CDAC9C9FB9FFFFFFFFFFFFFFFBE5
+7D726DAFCBE8FFFFFFFCFDFEFFFFFFCFA77E769EB1F7FFFFFFFEFDFEFFFFFFFFFFFFFFFFFFFFFF
+FEFDFDFFFFFFEFDFD0683B58DEF2F9FFFFFFFDFDFFFFFFF59B897996B3D4FFFFFFFDFDFDFEFFFF
+FFFFFAC2A3739BBFCFFFFFFFFFFEFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFC5A795
+A1B6D6FFFFFFFDFDFDFFFFFFFBF3E7743C5ACCDDEBFFFFFFFDFDFEFFFFFFFFFFFFFFFFFFFFFFFE
+FDFEFFFFFFFCB3A0877C9DC5FFFFFFFFFFFFE5D5C4606A9CF7FFFFDDC4B3798AB2FDFFFFFFFFFE
+FEFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFB7A098A5C7DEFFFFFFFDFDFDFFFFFFFBEDD0525D78
+CFE2F6FFFFFFFBFCFFFFFFFFD5C19B4A7EAEF7FDFFFFFFFDFFFFFFFAE6D37C6553CAE9F7FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDE0BE57889EE8F8FF
+FFFFFFFFFFFFC1957AA9B6CEFFFFFFF8E2D25A055CF3FFFFDCC2B49FBBDAFFFFFFFFFFFFFFF1E0
+86621B809BABBEBBBBA9A39FC0D0CEA192918CA6CDFFFFFFFFFFFFEDEAECEBE3CA37365398A5B2
+BFBCB7A4A4A4C1CBD7BEA97D88BAD6FFFFFFFFEECE8C989ADCDED379582A91A6B4BDBAB9A6A09B
+C1D5DEF8F9F4B89E9593989C9690868294B0F2F8FDFFFFFFFEFEFEFFFFFFFFFFFFFEFEFEFFFFFF
+EADDBA578AA3EAFAFFFFFFFDFCFDFFFFFFFBB7AC878ABAD8FFFFFFFFFFFFEFDECD5F5E8AF4FFFF
+E5CAB46580AEFAFFFFFFFFFEFEFFFFFFFFFFFEFEFEFFFFFFF7EDD263798CEBFFFFEFDBB2658EA5
+F2FFFFFFFFFFFFFCF083627BBED1E9FFFFFFFDFDFEFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFAF4
+A67040AACDDAFFFFFFFFFDFDFEFFFFFFFFFFD2B29FA5BADAFFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FEFEFDFFFFFFF0D8BA7C7F92FCFFFFDFBA9B8D97B6FFFFFFFEFEFFFFFFF99A7A82A8BEDCFFFFFF
+FCFDFEFFFFFFE2C99D4385A3EEFAFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFEFDFEFFFFFFE4D5C5
+4D4B8BEEF6FDFFFFFFFDFEFFFFFFEF96937BAAD1EBFFFFFFFEFEFDFDFFFFFFFFFFCBA879A2C8D6
+FFFFFFFFFDFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFCEAE9CA9BEDDFFFFFFFEFDFD
+FFFFFFFFF6EF9F6648BBD7E4FFFFFFFEFDFDFFFFFFFFFFFFFFFFFFFFFFFEFDFEFFFFFFF8ADA381
+95C2DEFFFFFFFFFFFFE9D6C45F6794FAFFFFDCC0AA6E8BB7FEFFFFFFFFFEFEFFFFFFFFFFFFFFFF
+FFFFFEFEFEFFFFFFFFC1A79FADCEE8FFFFFFFEFDFDFFFFFFFDF8EB79587AC8D9EEFFFFFFFCFCFD
+FFFFFFE1CFC05C679EF3FBFFFFFFFEFDFFFFFFF6E0847D62ADD2EDFFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEFE4C540628DE4F1FEFFFFFFFFFFFFC59B75
+00435DAEB4B6846F5A86A5C2EFEBDE8D6F5B61819BBDC0C8E4EDF5FFFFF8B69D7B6784A0D1D3D0
+A39385A6BECEE4DAC4675954ACBCC4B2A18B6F8DB0EBEFE89A7868869DB2D3D1CA94837CB7CEE0
+E5D9C24A2D59AFBCBF97794E00004BD2DADBA792727A96AFD4D2CA94857FB9D1DEF1EFD4483D57
+B3C5CEBEAD973B457FEAF4FDFFFFFFFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFEDE1C13E6491E7F3FF
+FFFFFFFCFDFFFFFFFDB9AA8A779EC8FFFFFFFFFFFFFFF8ECA183669CACB3918169A7C8DFFFFFFF
+FFFEFEFFFFFFFFFFFFFFFEFEFFFFFFFFFCF2A07F7496A8B2987E69ABC0D3FFFFFFFFFFFFFFF7DE
+616271C2D7EFFFFFFFFDFEFEFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFF8B9955F92BFD5FFFFFF
+FFFFFFFFFCF9E5DCCE876858647691CDD8E2F9FBFFFFFFFFFEFEFFFFFFFFFFFEFEFFFFFFFFFAE5
+8A82749FB0B4877173B1CAE2FFFFFFFDFEFFFFFFEA7F7670AAC5E3FFFFFFFCFDFEFFFFFFD8B78A
+6D98ACF5FFFFFFFFFDFEFFFFFFFFFFFFFFFFFFFFFFFEFDFDFFFFFFECDCCB643E66E4F4FBFFFFFF
+FDFDFFFFFFF39689779DBCDEFFFFFFFDFDFFFFFFFADCD4C9805400578191D3DBE5FFFFFFFFFEFE
+FFFFFFFFFFFFFFFFFEFEFFFFFFFCF8E3DACC836455687B95CFDAE4F9FBFEFFFFFFFDF6EB854A57
+CADAEAFFFFFFFDFDFEFFFFFFFFFFFFFFFFFFFFFFFEFDFEFFFFFFFAAE9F8384A8CFFFFFFFFFFFFF
+FFF5E7987C64A2AFB48A7C68AFCFE5FFFFFFFEFEFEFFFFFFFFFFFFFFFEFEFFFFFFFCFAF8DDCFC2
+7D665768849ED6E2E8FAFFFFFFFFFFFCF3D7525B75CCDEF3FFFFFFFBFCFEFFFFFFD8C8A53E74A8
+F6FCFFFFFFFDFEFFFFFFEDD9827155C2E4F4FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFFEF6E8865343B8D2E3FFFFFFFFFFFEC0997B888B9ECAC8C3BEC5CF
+F7FBFEF0E5D5BCBEBFC4C3C0B9B8BEE3EDF2FFFFFFFCF4ECC9C2BAB1B1B4BDC0C6E2EAF1FFFFFF
+E4D7CDB2AEACB1B5BDD9E3ECFFFFFFF8EEE3BFB7B5B2B5B5C1C7CBE9F2FAFFFFFDDCD2C7AFACAF
+BEC1C2C0BFC3DFE5EFFAF3E9C0BAB5B2B3B6BFC3CBECF4F8FBF8EFC7BDBDBBBBB9B4B4B8D8E4ED
+FEFFFFFFFFFEFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFDF4E6814E42BDD6E6FFFFFFFDFCFCFFFFFF
+E2CBB2605E7BE9FAFFFFFFFFFFFFFFF1E9E0B2A8A5B7C4D4FAFCFFFFFFFFFEFEFFFFFFFFFFFFFF
+FFFFFFFEFEFFFFFFFFF8EFE1B3A9A5B6C4D0F5FCFFFFFEFDFFFFFFE4CAA9627687E8FAFFFFFFFF
+FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFFFFFFFFD8C1A44C6D9CF5FCFFFFFFFFFFFBF8DCD0C4
+BCC0C3C3C0BDC2CDDAF9FCFFFFFFFFFEFEFFFFFFFFFFFFFFFEFEFEFFFFFFF1E6D9AFA8A6BFCBD7
+FBFFFFFFFEFDFFFFFFF0DBBF67686FDBF2FCFFFFFFFEFFFFFFFFF5996E64A6BED4FFFFFFFEFDFD
+FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF9E890764CA9CDE6FFFFFFFDFDFDFFFFFFCCAC90
+70839EF8FFFFFFFEFFFFFFF7D3CEC7BEC0C3C0BEBFCDD1DDFEFFFFFFFFFEFFFFFFFFFFFFFFFFFE
+FFFFFFFFFBF7DACEC3BCC0C3C2C0BCC3CEDBF9FBFEFFFFFFEBD8BA3D5F86E4F2FEFFFFFFFDFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFEFDFEFFFFFFDBC1A8646A86EFFEFFFFFFFEFFFFFFEFE5DCAFA7A5
+BBC8D8FCFEFFFFFFFFFEFEFFFFFFFFFFFFFFFEFEFEFFFFFFFDFAF7D1C4BFBFC2C4C1BDB9CBD8E0
+F9FEFFFFFFFFDEC29E637E92EEFDFFFFFFFDFDFFFFFFFEF6AC875597BCD2FFFFFFFEFCFDFFFFFF
+DFC9B35D5F8AF0FCFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFFFFFFFFDAC7AB7696B6FAFFFFFFF3DD83664A515F73B6C7DBFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFFFFFFFFD6C3A77A9BBBFBFFFFFFFFFEFEFFFFFFFFF1A19186B0CCE4
+FFFFFFFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFF
+FFFFFFFFFFFFFFFFFFFFFFFEFDFEFFFFFFF8ACA08DACC3DCFFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFEFEFFFFFFFFF6E7998774C2DFF1FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFEFDFDFFFFFFFD
+BFB2999AB2CEFFFFFFFEFDFDFFFFFFF3DEC2838B96E5F6FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFDAC4AD888DA9F8FFFFFFFEFDFFFFFFFDF4E0858087CCE1F3FFFFFF
+FDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB59487A7BFD2FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFEFFFFFFFFFCEC988B85B9D3E9FFFFFFFDFDFEFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFF4A3988A
+B4CBE2FFFFFFFDFDFDFFFFFFF4ECD3787F94E4F2FDFFFFFFFDFFFFFFFEF4B69C7BACCAE0FFFFFF
+FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFDF7
+E7E7E9FBFDFFFEF8F0DBD8D5CDCECBD4DCE5FCFDFFFFFFFEFEFEFEFDFDFDFDFDFDFDFDFDFEFEFE
+FFFFFFFEFEFEFDFDFDFEFEFEFDFDFDFEFEFEFFFFFFFEFEFDFDFEFEFEFDFDFDFEFEFFFFFFFEFEFE
+FDFDFDFEFEFEFDFDFDFEFEFFFFFFFFFEFDFDFEFEFEFDFDFDFDFDFDFEFEFEFFFEFEFDFDFDFCFCFC
+FDFDFDFEFFFFFFFFFEFDFDFDFDFDFEFEFEFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFEFFFFFFFFFDF6E7E7EAFBFCFFFFFFFFFEFEFEFFFFFFF8F3EDE9EBF2FFFFFFFFFFFFFEFEFE
+FEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFEFEFDFEFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFE
+FEFFFFFFFFFFFFFEF8E9E9EBFAFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF4EEE9E8EFF6FFFFFFFFFFFEFEFDFDFDFDFDFDFDFDFDFDFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFFFFFEFFFFFFFFFBECECEBF7F9FDFFFFFF
+FEFEFEFFFFFFF7EEEAEAF0F5FFFFFFFEFEFEFFFFFFFFFFFFFFFFFEFEFDFEFFFFFFFFFFFFFFFFFE
+FFFFFFFFFEF9E8E6E6F8FFFFFFFFFEFDFDFDFFFFFFF3EEE9EDF0F7FFFFFFFEFFFEFEFDFDFDFDFD
+FDFDFDFDFEFEFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFDFDFDFDFDFDFDFDFE
+FFFFFFFFFEFBE8E6E7F7FEFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF6F2ECEAEDF4FFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFDFDFDFDFDFDFDFDFDFDFEFEFFFFFFFFFFF8E9EAECFBFEFFFFFFFFFEFEFF
+FFFFFFF9F7F0EAEDF2FFFFFFFEFEFEFFFFFFFFFAF7EAE8E9F8FDFFFFFFFFFEFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFFF
+FFFFFFFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFEFFFFFFFFFFFF
+FFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFF
+FFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFF
+FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFEFFFFFEFDFDFCFCFCFCFCFDFD
+FDFEFEFFFFFFFFFFFFFEFEFEFDFDFDFDFEFDFEFEFFFFFFFFFEFEFDFDFDFEFEFEFDFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFDFDFDFDFEFEFEFFFFFFFFFEFEFDFDFD
+FEFEFEFEFEFEFDFDFDFEFEFEFFFFFFF4EDE8D1CFDAF7FCFEFFFFFFFFFFFFFEFEFEFDFDFDFDFEFE
+FDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFEFFFFFE
+FEFDFDFEFEFEFDFDFDFDFDFEFFFFFFFFFFFEFDFDFDFEFEFEFEFEFDFDFDFDFEFEFEFFFFFFF8F3EE
+D1CCD6F3F8FCFFFFFFFDFDFDFDFDFEFEFEFEFEFDFDFEFEFFFBFAF4DFDCDEEDF3F7FFFFFFFDFDFD
+FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFDFDFDFEFEFFFFFFFFFFFE
+FFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFEFFFEFEFEFEFDFDFDFDFDFDFDFEFEFEFFFFFFFFFEFEFDFDFDFDFDFEFEFEFEFDFEFD
+FEFEFEFFFFFFF7F2EDD1CDD7F4F9FDFFFFFFFDFDFDFDFDFEFEFEFEFDFDFDFEFFFFFBF9F3DFDCDE
+EFF4F8FEFFFEFDFCFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFBF4F0E3E2E3F2F9FDFFFEFE
+FDFEFEFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFF2E7DDB6BBCBF8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFEFFFFFFEEDDCD635888ECF7FEFFFFFFFDFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF0E5DBB6BDCDF9FDFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFFFFFFF9ECDE694A76E0EDF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9E4754A29A4C8D8FFFFFFFFFFFFFFFFFFFFFFFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFFFFFFF8EADCBEBCC3F4FDFF
+FFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEFE2D8B7BECFFBFEFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFFFFFFF7E9DA
+664C7AE3F0F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF6E16E4223A9CCDCFFFFFFFFFFFF
+FFFFFFFFFFFEFFFFFFFFFFFFFEFEFDFFFFFFF5DFCD636264C5E7FBFFFFFFFFFFFFFEFDFDFFFFFF
+F7E8DABEBDC5F6FEFFFFFFFFFEFFFFFFFFFAC5B7BCD8E5F2FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFD
+C0A06F74A5C1FDFFFFFFFDF6E6E5E6EAE8E7DED9D6E3EAEFFCFFFFFFFFFFF7F1EAD8D4D4D8DDE3
+F8FEFFFFFEFAEBE8E5E6E7E8DBD7D7E1E6ECFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFAE4DED8D4D4D8E9EFF5FFFFFFF9F4EFDEDCDFEEF1F3ECE8DFD4DADFF3F7FDFCF7EFDAD9D7
+DCE2EAFCFEFFFFFFFFFFFFFFFEFAF4E1DFDEE6E8EAE8E5E3E9EFF5FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFEFEFFFFFFFFFBBB9B6979A9C5FFFFFFFEF8F1E5E4E5EAEBE9E3E0DEE6EAF2FFFFFFF9F5EF
+DEDFE2F3F7F8EAE2DDD8DCE0F5FBFFFEF9F2DEDCD8D9DEE5F9FCFFFFFFFBEBE9E6E0E1E4F2F4F2
+EAE7E6DFDEE1F3F9F5C8C09EA1C3D1FAFAF5DEDCDBEBF3F8FFFFFFFFFFFEFFFFFFFFFFFFFFFFFF
+FFFFFFF9F5F1DFDCD8D2D5D8EBF1F5FFFFFFFEFFFFFFF6E2796A61B2CFE8FFFFFFFDFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFAB696647FAECAFFFFFFFDF7F0E4E4E5EBEBE9E2E0DE
+E6EBF3FFFFFFF8F4EEDEE0E3F3F8F8E9E1DCD9DDE1F6FCFFFEF8F1DEDBD8D9DFE6FAFCFFFFFFFB
+EBE8E5E1E1E5F2F4F2E9E7E5E0DEE1F4F9F5C4BC9BA5C6D4FAF9F4DEDCDCECF3F8FFFFFFFFFFFF
+FFFFFFFFFFFEFFFFFFFFFDF5A08D90B0CDE0E7E2E0E9F0F6FFFFFFFFFFFFFFF4DF736762B7D3EB
+FFFFFFFDFDFEFFFFFFC49F77769EB5FAFFFFFFFEFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF9F0DF6B3D57CEE2EEFFFFFF
+FFFCF09E7D5A03395B908C81495174DDEBF6FBEED76F615B8B989C8471648699B7FBFFF7B69871
+0014458A8C8252677BCFE6F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B99E88666F7E9C998E
+61656FCFE6F4F4E8E190715A4B57667E7D74586777C9DCF0FDEFDA8776596383ACF3F8FFFFFFFF
+FCF9EFA7887A5E6772756C5A001F4CBCD6E9FFFFFFFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFF7EDDB
+673A59D2E5F0FFFFFFFBF1DD7C541A00305378787151525EC2D9E9F1ECDB72503C5A6D797E756F
+626D7AD0EBFAFFF4E29C8A6C4B6D97E8F1FEFFFFFCBC9F7500004ED1E1EAC2A67F000025CBE2ED
+D2C9AEA6BDC0AF8B7800365FCCE2F0FFFFFFFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFE3CBB67A7A86
+8E867763889EE9F9FFFFFFFEFFFFFFC5A08A7D92ACFCFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF6EAD862385CD6E8F2FFFFFFF9EFDA764B0000375778786F515462C5DBEBF0EAD8
+6D4A395C6F7B7E746D63707ED4EDFCFFF2DF97866850729BEBF3FFFFFFFBB89A6E000058D5E3EA
+BDA178000036CFE4EED0C6ABA8BFC1AC8571004167CFE4F2FFFFFFFEFEFEFFFFFFFFFFFFFEFFFF
+FFFFFDAE8A76394F5C827E77595C76CEE1EDFFFFFFFFFFFFC09B858297B1FDFFFFFFFCFCFFFFFF
+F5E8CF434973DAE9F6FFFFFFFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEEE2C2457494E5F4FFFFFFFFFFFFFFDABC9489A4BA
+FFFFFCB8927FC4CFDCC29E7891ABC1FFFFFFFFF9E379745CB9E0F6E7C9AF808EAFFFFFFFB89684
+A7C1DFF5E3D18F8A85929598918D8695A9BCE0DBC6667885D8EFFFFFFFFFC7AA9A6985B1FFFFFF
+F1D6B6787E90E8F6FBF9F7F5F7F8FAFFFFFFF4E0CE8481A0EEF7FFFFFFFFE5CCA65F8797F4FFFF
+F2DCC9707596ECF7FFFFFFFFFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFEBDFBE447698E8F5FFFFFFFF
+FFFFFEB98B6C98A7C0FFFFFFE0C8B55E5080F6FFFFD0B4A37085A8F2F9FCF7F5F5F7FAFCFFFFFF
+FCECDE8B7B91E2EEFCFFFFFFF9EFDE735C75D5E7F4D4B2918CA6C2FFFFFFD8CCAD00000058698D
+ECF7FDFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFD8C3B281858D9E9A894F6C82D6EDFE
+FFFFFEFFFFFFEDD0AB577D8BE3F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFDFEFEFFFFFFE8DBBA
+44799DEBF7FFFFFFFFFFFFFCB585669CACC4FFFFFFDCC4B0605786F9FFFFCCAE9E748AACF4FAFC
+F6F5F5F8FAFCFFFFFFFAE9DA897C94E5F0FDFFFFFFF8EDDA6E5A77D9EAF5D0AD8C91ABC7FFFFFF
+D5C8A80000005E6F92EEF9FEFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFEFFFFFFFFFAA28582A2BCD8
+FFFFFFD0C09F668FB4F5FFFFFFFFFFE9CCA5568090E6F8FFFFFFFDFFFFFFFEF6ED905350C4D9E7
+FFFFFFFEFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFEDE0BE53839EE7F7FFFFFFFEFFFFFFD3B595A4B4D0FFFFFFBC9882C2D0DF
+C9A986849CB7FDFFFFFDF0D9726A5AC1E6F9E1C2AB879CC1FFFFFFC3A08AA5BADAF9EBDCAAA5A3
+ACAEAFABA8A4AFBECCE5E0CD61697BD0E7F9FFFFFFBBA08A6C8DB7FFFFFFE8CEAD9297B0FDFFFF
+FFFFFFFFFFFEFFFFFFF0DDCA7F7C99E8F2FBFFFFFFEBD7B85C6D78CDE0E8CFB9A664779CEEF6FF
+FFFFFFFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFEADDBA5385A2EAF9FFFFFFFFFFFFFEBB8E6E889CB5
+FAFFFFD8C1AB545787F7FFFFC6AA9C9DBCD9FFFFFFFFFFFFFFFFFEFEFFFFF7E9DA877689DDEAF7
+FFFFFFFFFFFFD1B79C767C72707B8FD7ECFAFFFFFFCABB9B7D96939A968CA1B6CCFBFEFFFFFFFF
+FEFFFFFFFFFFFFFEFEFFFFFFFFF2D9726D55B5D3E5E8DAC15B657CD6EDFCFFFFFFFFFFFFF1DAB5
+4E7989DFF3FFFFFFFFFDFEFFFFFFFFFFFFFFFFFFFFFDFEFEFFFFFFE7DAB65388A7EDFAFFFFFFFF
+FFFFFCB789688CA1B9FBFFFFD5BCA6585E8DF9FFFFC2A598A1C1DDFFFFFFFFFFFFFFFFFEFEFFFF
+F6E6D684768DE0ECF8FFFFFFFFFFFFCDB398767D73707C91DBEEFCFFFFFFC6B7977F989598948B
+A4B9CFFCFFFFFFFFFFFEFFFFFFFFFFFFFFFEFEFFFFFFFFF79C7D7496B3D1FFFFFEC9B5926D97B5
+F5FFFFFFFFFFEDD7B04B7B8EE2F5FFFFFFFEFEFFFFFFF6EF9C6148BED7E4FFFFFFFEFDFDFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F4EAD250406EDAE9F6FFFFFFFFFCED9F886B576C99E3E6DA876D537A98B9EFECDF8F7F72828D93
+816F6898AEC7FDFFF7B598703E7397D6DAD79774456B93B0F4FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFAC9AE9B706F7B9490836A7989DFECF3E6DFCB7C6B6163666D878D93C5DAEEFFFFF8BFB4A7
+817A7361636B818287BDD2DBFDFFFFD1BBAB8482848F82746075A0EDF4FEFFFFFFFEFEFEFFFFFF
+FFFFFFFEFEFEFFFFFFF2E7CE4C4071DEECF8FFFFFFFFFFFFC69C77374E5E95938C616672C7DAE8
+E8D9C0695C5768747C8A8B9AD7E6EFFFFFFDCAC0B0857E796362667D8086B1C3CBFAFFFFFDF1E0
+753C0086ABCDFFFFFFFAF4E0795C51BDDCE4F0E8CA0000009CADC5FDFFFFFFFFFFFEFFFFFFFFFE
+FFFFFFFFFDF0AB997F7F8B918F897F5B524A92B2CAF6FBFFFFFFFFD8B69874899BF4FFFFFFFEFE
+FEFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF0E4CB494275E2EFF9FFFFFFFFFFFFC39770395263
+95928A606776CADCE9E6D7BD6559566A757D8B8C9BD9E8F1FFFFFCC7BDAE847D776262677E8186
+B4C6CEFCFFFFFBEEDD6E32008CB0D1FFFFFFF8F1DD735750C2E0E7EDE4C6000000A0B1C8FEFFFF
+FFFEFEFEFFFFFEFEFDFFFFFFF4E3D2815A2D364D5D80817B696B7CD3E6F0FFFFFFFFFFFFD6B293
+768EA1F6FFFFFFFDFCFFFFFFFBF2DF644069D4E2F1FFFFFFFDFDFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFF7AE88628DB3CC
+FFFFFFFFFDFAF5F6F5F4F3F5F9F9F8F5F6F5F3F4F6FEFFFFFEFBF7E9E5E4ECEDF0FEFFFFFFFEFC
+F7F6F4F4F6F6F7F6F7F6F5F4F5F6F7FBFCFEFEFEFDFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFF2EDEB
+E8E7E9F5F9FDFFFFFFFAF8F5F1F2F3F5F5F4F0F0F0F5F9FCFFFFFEF5F3F2F1F1F3F6F6F5F1F0EF
+F4F6F8FFFFFFF8F3EDD7D5D4BCAD9E61769FF0F9FFFFFFFFFEFEFFFFFFFFFFFFFFFFFEFEFEFFFF
+FFFEF5A9835D92B7CFFFFFFFFFFAEFA1795D8C92A9DCE0E4F3F6FAFFFFFFFAF8F4F2F3F4F5F4F3
+F0EFF0F8FBFCFFFFFEF6F5F3F0F0F2F6F6F6F2F0F0F3F5F7FDFFFFFFFFFEF5F3F1F6FAFDFFFFFF
+FDFCF9F3F3F5FAFBFCFDFDFDF8F6F5F4F4F6FEFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFAF7
+E9E6E5EDF1F5F9F7F6F3F4F6FCFEFFFFFEED917264A6C1DCFFFFFFFDFDFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFEFEFEFFFFFFFDF3A37D5897BBD3FFFFFFFFF9ED9D73599096ACDDE1E5F4F7FAFFFFFF
+FAF7F4F2F4F5F5F4F3F0F0F0F9FBFDFFFFFEF6F4F3F0F1F2F6F6F6F1F0F0F4F6F7FDFFFFFFFFFD
+F5F3F1F7FAFDFFFFFFFDFCF9F3F3F5FAFBFCFCFDFDF8F5F5F4F4F6FEFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFCF9F8F6F6F6F7F5F3ECEAEBF4F9FCFFFFFFFFFFFFFFFCEA8C6E63ABC5DFFFFFFFFCFDFE
+FFFFFFD3B5945E87A5F3FFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF2E8D7A7B1C4F7FBFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEADDD1
+8372697D8D9BD5E4EDFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEFE5D4A7B1C5
+FAFFFFFCEFD9978B816E7676A5B9D1FFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF8E7D7B5B7BBEFFCFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFE
+FFFFFFEDE3D2A8B3C7FCFFFFFAECD794897F6E7678A9BCD3FFFFFFFFFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFEFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFDFFFFFFF7E5D4B5B8BDF0FDFFFFFFFFFEFFFFFFFFFBBFAEAFD4E3EE
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFEFDFCFEFEFFFFFFFFFEFEFEFEFEFEFFFFFEFEFEFE
+FEFEFEFFFFFFFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFFFFFFFFFEFEFEFEFEFEFEFE
+FEFEFEFEFEFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFEFDF9F8F7FBFDFFFFFFFF
+FFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFEFDFDFEFEFFFFFEFDF9F9F8
+F7F7F7F9FAFBFEFEFFFFFFFFFFFEFEFDFDFDFDFDFDFEFEFEFFFFFFFFFFFFFEFEFEFEFDFDFEFEFE
+FEFEFEFEFEFEFFFFFFFFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFDFCFC
+FDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFEFDFD
+FEFEFFFFFDFCF9F8F8F7F7F7F9FAFBFEFEFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFF
+FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFEFEFEFEFEFFFFFFFFFFFFFEFEFEFEFEFFFF
+FFFFFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFDFCFCFDFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFDFFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFDFC
+F3F3F4FDFEFFFFFFFFFEFEFDFEFEFEFEFEFEFDFDFDFEFEFFFFFEFEFDFDFDFEFEFEFEFEFEFEFEFE
+FEFEFEFFFFFFF4E9DD856F8FE1EDF7FFFFFFFEFEFEFEFEFEFDFEFDFEFEFEFDFDFDFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFEFEFEFDFDFDFEFEFE
+FEFEFEFEFEFEFEFEFFFFFFFFBEA29DA0ADCAFFFFFFFEFEFEFEFEFEFEFEFDFEFEFEFDFDFDFEFEFE
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFEFDFDFDFDFDFDFDFEFEFEFEFEFEFFFFFFFFFEF4ECE4
+C9C8C9DFE7F4FFFFFFFEFEFFFFFFFEF8F4F2FBFCFDFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFE1CDB47994B3F7FDFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFFFFFFFFF7F0
+B7AEB8EAF3FAFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFEFEFEFEFEFEFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFF
+FFFFFFDCCBC5C2CBDBFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF2CCBA9C31395AB4C9E5FFFFFF
+FCFDFFFFFFFECCAE9099B7CEFFFFFFFFFEFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFBF2A07444A3C7D9FFFFFFFDF0DFA8A3A4D6DFEDE3D2C4
+9294A4E6EDF3ECDECAA0A2A7A9A39F8F96A1DAE9F2FFFFFFFBEFDFAEA89DB0C0D0F5F9FEFFFFFF
+FFFFFBD7C7B9959598B3B5B9A8A0A4D4E5EEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD7C7B8
+99959496989FCEDCE9FFFFFCC4B7ABA9B6BECAC8C1968883AFC8D7FFFFFFDCCBB698A3ACD8E2F0
+FFFFFFFFFFFFFBF4E9B5A89F9FA7ADB2AEABB1BBC5F4FFFFFFFFFEFEFFFFFFFEFEFFFFFFFEFAED
+B7AEABADACADA29991A5B7C6F4FBFFFFFFFFFFFFFDBC9C8DB1C5E1FFFFFFFCFCFDFFFFFFEBDBC1
+3B487DE5F2FCFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF3E8CF474878DDEBF7FFFFFFFFFCF3AD8A6EA2B1CEFAF0E07F594DC2D5E7F6E9D0
+370000A3B9C4AF9C84729ABBFBFFFFFFFBF3CEBEA94D527DDEEAF9FFFFFFD8C0AB5F6271B3BBBD
+988161004776DAECF6F5F0EDE7E8E9EAEAEAE7E6E8F8FDFDE0D3BB554D6BC1D2D9CDBDA8585F77
+D4E9F4E4D6C23B000073899CB7B3AFB9C9D7FBFFFFF1E9DB8E715F90A9CEFFFFFFFFFAF1B2997A
+7B90A5C1BEB04921008BB0CDFFFFFFFFFEFEFFFFFFFFFFFEFEFFFFFFFFF9B5905D145D7FCACCC1
+74515CCAD9E9FFFFFFFFFFFCB99B8EB0C4E0FFFFFFFDFDFDFFFFFFFFF5EA95653DB4D7E7FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDE0BE
+54859DE7F8FFFFFFFEFFFFFFDABD9EACB9D5FFFFFFC8A488C7D8EDFFFAEB948195F2FFFFFDE4CF
+8688A9F7FCFFFFFFFFFFFAEE9D8897E4F1FFFFFFFFA7868191B2DBFFFFFFF7ECD07691ACE9F4F5
+A5785F344251605F592A224CBDD7E3C7B8927BB3D4FFFFFFFFFFFF986D71ABC7E6FFFFF78D7E95
+E3F7FFFFFFFFFFFFFFFFFFFFFFFFFFDEBCA8A2B4D4FFFFFFFEEFE27B4354DCECFEFFFFFFA99D8B
+ACCFE8FFFFFFFEFEFEFFFFFFFFFFFFFDFEFFFFFFFFDEC19FAFC3D8FFFFFFC7A28CC5D4E5FFFFFF
+FFFFFFC1A294B7CBE8FFFFFFFDFDFDFDFFFFFFFFF3AE966385B8D7FFFFFFFFFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEEE3C3446C93E5F2FFFFFFFF
+FFFFFFD9BD9571849CD5D0C3520000A3C3DCF0E2CD3F1E54D0E7F4DFC6A5384E81E8F5FBEFEBE4
+CBBFB1604D5FB0BDCBE8EFEFCFBDA85E5D70BFCACB9D84604A819FEAF7FFF5EEEBE8E9EAEBEBEA
+E8E7E9F8FEFEDFD1BA514A71C6D5DECFC1A7536179D2E1EDE1D0B94A496AB4C6D3DEDFE4FDFFFF
+FAF7EFDBD9D4A0856E7084A1D5DCDFF4F6F0C3AA8E5B6C7F9D9A8E4B4349B0D1E7FFFFFFFEFEFE
+FFFFFFFFFFFEFEFFFFFFFFF8B28F6B7B92B9FBFBEF956A479AB6D2FFFFFEE9E1D489655A8599B3
+E3EAF0FCFDFEFEFFFFFFFCF1A88A539BC7DEFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFBF3E2774449C5DBE9FFFFFFFFFFFFF7F1E4B1A6A0
+A0A7A7ABACA8B7C3D3E2D8C9A4A6A8C7D3DDD4C4B49FA8B0E0EEF1DAD0C3A2A1A4AEAFAEA5A2A1
+BDCCD4FAFFFCCFBFB1A8B0B3B0A9A67C8FAAECFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9
+D6C6B99F9A9B9D9EA0CCDBEAFFFAEDBFB7ABA6A8ABA7A3A3B8C1CCFBFFFFF7F1E2AFA8A6A9ABAC
+ACABA9A6A8ACE1F3F9FFFEF7D1C8C5C8C5BD807769A7CCE5FFFFFFFEFEFEFFFFFFFFFFFEFFFFFF
+FEFBEEBCB5ACA6AABDE5E7DEB4AEA7ADBACEF7F4EFCDBEAEA3A8ABA9A7A5B9C8D9FCFDFFFFFFFF
+F7ECDC6D3D57D3E7F2FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFEFEFEFFFFFFFFD0BA9A7197B9FAFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF
+F2E5DDA8958D312C66CBE3F0FFFFFFFDFCFDFDFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF8EABEB6AA9D9B8F717A8CD9ECF6FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFD4BA937C9DB9FAFFFF
+FFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE
+FFFFFFFEFAF1DADBE1F9FBFFFFFFFFFEFEFEFEFEFEFEFEFEFDFDFDFDFEFEFEFEFEFDFDFDFEFEFE
+FEFEFDFDFDFDFEFEFFFEFEFEFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFFFFFFE9DFD8BCB8B5BCBDC3
+E2EDF2FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFEFEFEFEFEFEFEFEFEFFFFFFFEFEFD
+FDFDFDFCFCFCFDFEFEFFFFFFFFFFFEFDFDFDFDFDFDFDFDFDFDFDFDFEFFFFFFFDF6D3C8C0B0B6BE
+E4EEF3FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFDFDFDFEFEFEFEFDFDFDFDFDFE
+FFFFFFFEFEFDFDFDFDFDFDFDFDFEFEFFFFFFFFFEFCE8DFDAEAF3FAFFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
+FDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFEFEFEFDFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFF
+FFFFFEFEFEFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFEFFFFFFFFFFFF
+FEFEFEFEFEFEFEFEFEFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFEFEFEFEFEFEFE
+FEFEFEFFFFFFFFFEFEFEFEFEFEFEFEFDFDFDFCFDFDFEFEFEFFFFFEFEFEFEFEFEFEFEFEFEFFFFFF
+FEFEFEFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFF8F3F1E3E2E9FAFDFFFFFFFFFFFFFFFEFEFE
+FEFEFEFEFEFEFEFEFFFFFFFFFEFEFDFDFDFDFDFDFDFDFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFFFFFFFF
+FEFEFEFDFDFDFDFDFDFEFEFEFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFEFEFEFE
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFEFEFEFE
+FFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFEFEFF
+FFFFFFFFFFFFFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFEFEFFFFFFFFFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFEFEFFFEFEFBEFEDECEFF3F6
+FDFFFFFFFFFEFFFEFEF7F4F0EAEBEDF9FCFDFFFFFFFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFEFE
+FFFFFFF9F4F1EBEDEFF9FBFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFE
+FEFEFEFFFFFFFEFEFFFFFFFFFFFFFFFDFEFEFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FFFFFFFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFEFF
+FEFEFBEFECECF0F3F7FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFFFFFFFFFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFE
+FEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFDF9F5
+F1F3F5FFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFEFEFFFFFFFFFFFFFDF7F8F9FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFEFEFEFEFEFFFFFFFFF7F4F2
+F7FBFDFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFEFAF9F9FAFCFFFFFF
+FFFFFFFEFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF7EFE8CACCD6F9FCFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFECE0D8D6DFEA
+FFFFFFFFFFFFFDFDFDFFFFFFEBD8C74E3D7DEBF7FEFFFFFFFDFDFEFFFFFFFFFFFFFFFFFFFFFFFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFEFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFAF6EBCFD2D8F6FFFFFFFFFFFFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3D8D3DFE8F3FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF8F2E5C5CDD6F4FCFFFFFFFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFEFEFDFFFFFFFFFFF8A8866C6999B5F2FDFFFFFFFFFFFFFF
+E6D1B3423F52CDE7F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFFFFFFFFEBD4BD442455
+C7D6E6FFFFFFFEFDFEFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E1D7D2E1EAF5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFFFFFF6A380676E9EBA
+F4FFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFEBDFCB857B6F616768B3C9D8FAFEFF
+FFFFFFEFE1D6D3D7DFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFEE9E2D49587829CAFBAF6FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFFFFFFFAD7D1CCDAEAF6FFFFFFFFFFFFE6DBC56D59517587A3E9F6FAFFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCD7C7B9877E7CB7D0E5FFFFFFFEFEFFFFFFF7D4D4CD
+E4F1FAFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
+FDFEFFFFFFFFC8AC80699ABAFBFFFFFFFFFFFFFFFFF5F0ECE5E4E6F2F6FAFFFFFFF7F3F1F3F6F7
+F5F3F2EEF0F2FDFFFFFFFFFFFFFFFFF5F0ECDEDCE1EDF2F8FFFFFFFCF7F4EDEDEFFAFCFCF5F1F0
+E7E8ECFAFDFDFDFBF9EEE9E6E3E4E7F6F9FCFFFFFFFFFFFFCDA68E8AA3C6FFFFFFFBFBFCFFFFFF
+FDFAF7E8E4E1DBDFE6FBFDFFFFFFFFFFFFFFFFFCF8EAE6E6E6EAEEFCFFFFFFFDFCF2F0F0F4F4F2
+EAE8E9F1F4FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF2F2F3F6F5F3ECE9E6F1F6F8
+FEFFFFFFFFFFFDF9F5E8E5E5E9EDF2FEFFFFFFFEFBF4F3F2F4F4F4EAE7E7F0F2F6FFFFFFFFFFFF
+FEFAF6E7E8E7EDEEF0F5F5F7FDFFFFFFFFFFF0E8E4E0E0E2F3F9FDFFFFFFFFFEFEFDFEFEFDFEFE
+FEFEFDFDFDFDFFFFFFECE1BF436E8BDFF2FFFFFDFBFCFDFFFFFFFFFFFCF7E5E1E1E2E4EBFBFFFF
+FFFFFFFFFDFBEDE7E3E2E4E7F1F1F4FBFEFFFFFFF9B38A79A6BFDCFFFFFFFBFCFDFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFC39D7B7D9BB5FBFFFFFFFEFEFDFCFAEFEDE9E1E3E5
+F2F6F9FFFFFFFFFFFFFDF9F6F2F3F1D7C7C27689A5EDFDFFFFFFFEF1EEEFF3F0E29A9880B9D9E7
+FFFFFFFCF9F4E6E0DDE4E9ECFCFFFFFFFFFFFFFFFDF4F3F2EFEAE29C6557B6C6DBFFFFFFFCFCFC
+FDFEFEFEFEFEFDFDFDFFFFFFFFFDFBECE6E3E2E4E7F1F1F5FBFEFFFFFDF7AF8677ABC3DFFFFFFF
+FBFCFEFFFEFDF2EEEDF1F3F7FCFBF6E9EAE8EFF3F8FFFFFDF5F2EFE3E3E2E9EEF2FFFFFFFFFDFA
+F3F3F2F4F4F3E9E7E7F1F4F7FFFFFFFFFFFFFDF9F6F2F3F1D5C4BE788EA9EEFCFFFFFFFEFEFEFF
+FFFFFFFFFFFFFFFFFFFAF7F4EDEDEFF9FBFBF4F2ECE7EBEEFAFDFFFFFFFDEDE9E6DEDEE4F4F9FD
+FFFFFFFFFFFFFAF6F0E3E1E0E9ECEEF7FAFBFAFAF8F1F0F1F7F8F6EFEDEEF6F9FCFFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFEFDFFFFFFFFFBCAA9879FB5C9E1D8CA53497CE0EDFAFFFFFFF1DCBE4E657E
+DCEFFDFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F3F2F2F4F4EFEDEAE9ECF2FCFDFF
+FFFFFEEFECE6B293716F8E9AF1FFFFFFFFFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFF
+F2E0CB6A515FD6EEF9FFFFFFFFF5E7916C59B6CDCEB09A7785AFCCFFFFFFFFFEFEFEFFFFFFFFFF
+FFFFFFFFFFFFFEFCFBE8DFD498857997BBD7FFFFFFFEFDFEFFFFFEB0947E859EC1FFFFFFFFFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFCF3E47A484C
+C6DDEAFFFFFFFFFFFFDAC7B46F61658A8D876A6F7AD1E2ECCFB399444B52767A79584F5299AFC4
+FCFFFFE4D3BF7D7983A5A6A07B7784CCDFEEF5E7D27D675B737B80817D7247446FD7E8EEEADAC4
+7F7B8290877D7E93B3F8FDFFE6D7BF67493A5C6570888D8AB4C6DBFFFFFFF3E5D082745D7A95B8
+F5F9FFFFFFFFFEF7E9A08D7B737F857E736B90A2BEF2F4EFA581624153697B796F707F92E7F5FC
+FFFFFFFEFEFEFFFFFFFFFEFEFFFFFFFFFBEC997C654E5A6B857E715A6D8CE6F3FCFEF3E087756A
+7F898B746766A0B4CEFFFFF5B0957337495F807D715D778DDEF2FFFFF2E4988067647580745B2A
+004F8BE8F0F8D5BFA67D858DA39E95808A96DDEEF9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBECDF
+9A805E003450817D8397A4B1EAF9FFFFF8E9A593898F989E978E8493A5BFFBFFFED0BB9D7D8F99
+A79F8F484F62DAF2F2D6C6AF54312D697378899094C8D7E9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFFFF7E170626DC2D6EDFFFFFFFFFFFFEDDAC78780858F8B84728A9BE6F9FFFDEFE2
+9F887269707B6E5C4A6A93B1F2FDFFD2B89F5E58627F847E445158C6E4F0FDF7ECA18B7A929EA2
+95867A9BB4C7FDFFFFD0BFA85B58637F807314003DBFCEDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFCCAB59980929CA69D8B495468DDF4F3D3C2AA512F2E6B7579899095CBDAEDFFFFFCBC9E8D
+5A616F888682605C4D87A9C9FBF4EDAA9386898E91707275C1DDEEFFFFF2A58A683E51647F7B6E
+617E95E4F6FFFDEEE09B856F6B717C6D5A4A6F96B4F2FCFFFFFFFEFEFEFFFFFFFFFEFEFEFFFFFF
+E9D9CF7F665E727983827B6A466481D8E3EDD4C0AA79808EA4A1967A8198E4F3FCFAF3E28C7F7F
+A1A9AC83684586B2D0ECEBDE7B563F5D6A6F746A605A7993D9E7F3FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFDF8F5F5FFFFFFFBE7CF49527DE0EDFBFFFFFFFFFFF5986A60A9C1D5FFFFFFFEFDFD
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFD4BBA548303F747F80645E61BCD2E0FFFFFFFFFFFFF0D5B0
+7E939BF2FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFEFFFFFFFFC3AE8F6D8FBAFFFFFF
+FFFFFFF0E1D2645685F2FFFFE8D3BC5C79A6F7FEFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFDFDFF
+FFFFFFCEB5A99BBAD3FFFFFFFEFDFCFFFFFFF0D7BA5F6C77DBF2FFFFFFFFFEFEFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEFE3C43F6A8FE4F1FEFFFFFFFEF7E1
+766F6AB6D3EAFFFFFFCFB6A36885ACE1D9D15F5176CFE0EFF6EED8747577BFCED69F7F4D4C7596
+C3C5C080532A7696AAFDFFFFDBCBA6466C8BDAE8EFEDEAEAF7FAFAE1CEB8797E879A94881E1869
+DDE9F2FDF9EFB29683879CB5DFDFE0EAEFF7FFFFFFFFFFFFECD7C4797A9CEEF6FFFFFFFFCEAD8A
+70879EF2FFFFFFF6E3837457B1D8E9D6BEAD7793BBF8FCEF988C72C2E4F1FFFFFFFEFEFEFFFFFF
+FFFFFFFEFEFFFFFFFFD1B185799AB2FBFCF1A78074C8D3DFC5A47C84A1B7FAFFFFF8EBD267685E
+C7E8F9DFBFA27285A5F8FBF8A6867AB3CCE2C9AA966C87ADF9FEFFEBDED1A5A8B9E0DFD2590005
+8397ABC3BDB15F49008BB6D6F1E9E3AFA4A2ABAEAFACA8A6ACB5C2E9F1F6D8CBAA4A6F86C5D1DD
+E3E6E9FFFFFFE0C39B00194FAAB7C0B3A38F300144DBEEEABFAB8461859AB2AB9F848B99E7F6F9
+F5ECE19F85789BAFC4E2E2E2EFF5FBFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFEFD4B7
+717C7FE2F9FFFFFFFEFFFFFFE8D4C4847D8298978B425867CDE9F9C49E8B728CB2F9FDFBD1C0A5
+7697B4DEDDCD696F76D1E8F6F8E8D5836852CAE8EDD2C0A3000046B1BDC3B19E7E28607EB6B5B6
+806B6ED1E6F1F4ECE0815153BFCEE0FCF9EAAEA6A4AAAEAFACA8A5AAB4C7FDFBF1B6A17A66899E
+B1A99D858E9CE9F8FBF3EADF9B82779EB2C7E2E2E2F0F5FBFFFFFFFFF4E69A7A5CA4BECFF1F1EE
+EBEFF4FAF0E8A38B808E989B6F60418BB7D6FFFFFFCFAE8F7B91B1FAFBF59C7E78BBD2E5C49F8C
+7690B5FAFDFBCFBEA26B8FAFF0FDFFFFFFFEFEFEFFFFFFFFFFFFFFFEFEFFFFFFFFE0C4A265758A
+DFEBEFEEEFF1ECDCC76147268098AFC2BDB1580000ACCFDBF0EEDD65395CA5B0B5998F81A6C3DC
+FFFFFCAB997591B2CBF8FAF8C3A4807093A8F7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFEFEFFFFFFFF
+FFF4E289715E9FBFD6FFFFFFFEFEFFFFFFFFD3AE7E6A9EB5F6FFFFFFFFFEFEFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF6EBDD736181D9EEF8D6C49E87AFBFFBFFFFFFFFFFE6CDA97C939CF2FFFFFFFFFE
+FEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFAF0A77F4EA9D1E2FFFFFFFFFFFFEEE1D05F5E8F
+EEFBFFECD5C5717AA4F6FCFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFDFDFEFFFFFFC5AEA39ABBD5
+FFFFFFFFFEFDFFFFFFFFFBE7766675BAD0EAFFFFFFFDFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDE0BE57869FE7F7FFFFFFFFFEF5DD6B7075C6E3F9FFFFFF
+DDC7B25F7BA6E0DAD4766C8CE1F2FFFFFFEC89847AB0BFCA9A7B4783A1B5D2D0CFBBB5ADB6C5CF
+FFFFFFDFD0AD95B9C9FFFFFFFFFFFFFDF7EB7B5C6BB5CDDCE2D6C3582054D9E9F4FFFFFFD2B099
+99B2D2FFFFFFF1ECE9EEF2F8FFFFFFF7E4D28884A0EFFAFFFFFFFFC8A07F8296B1FFFFFFFFFFF2
+95845FA9D5E9DCC7B894B5D8FFFFFCA5A087C9E7F3FFFFFFFEFEFEFFFFFFFFFFFFFDFEFFFFFFFF
+D6B899B0C1DAFFFFFFC09E8BCBD6E2BF997699B1C9FFFFFFFFFAE277725EBEE4FAE4C4AF94A8CB
+FFFFFFC3A192B7C9DEC5A6927B9BBFFFFFFFFEF7F1DEDFE5E9E2CA383456A4B4C2D3D0CCB3ACA9
+C2D4E5ECE1D7988785909597938E8B8F9CACEAFCFFFBEECF547A99EEFFFFFFF9F2EFF1F4D4B790
+426577C2CAD1CBC6BFAAADB2E5F3F2D8C9B79DA0AABDB9AD76726CB6D6EFFFFFFFB99584B5CFEA
+FFFFFFEAE9E9F4F8FCFFFFFFFEFFFFFFFFFFFFFFFFFEFEFDFFFFFFE5C6AD75797EE8FEFFFFFFFF
+FFFAEA9989689DBED3EBE3D0716D7AD4EDFAB9918487A0C9FFFFFFE5D3BC7A95B5DCD7BF647A8E
+E9FDFFFFFDE9967C62CBE8EDCCBC9C004E82C9CED0CAC3BCAFB7C3C2AEA8796879EAFDFFFFFFF3
+966156BFD0E2F9F5E1928684919597928F89919EB6F6FAF6D5C6B39DA2ABBDB8AA73726FBADAF2
+FFFFFFB59182BAD3EDFFFFFFEAE7E7F4FBFFFFFFEDA88C87E0EEFAFFFFFFFFFFFFD2BA916490AA
+E9EFE9A78F7794B9D7FFFFFFD3B29F9DB2D4FFFFFFBB988DBECFE1B792878CA5CDFFFFFFE3D0B9
+6C8CAFF4FFFFFFFFFEFEFEFFFFFFFFFFFFFFFDFEFEFFFFFFE6CBABA1ABC4FFFFFFFFFFFFF7DFC3
+5C5240A6B9C7D1CDCAB1ACA8CDE0E8F5F2E9AC9C99B0B7BBA79A886175A1FDFFF8B4A987A3C7DC
+FFFFFFDDBA956C8999F3FFFFFFFEFEFEFFFFFFFFFFFEFEFEFFFFFFF5E8D983716596AFC7F1F0F1
+F8FAFBFEFFFFFFFFFFDBC2934E8FAEF3FDFFFFFFFEFEFEFFFFFFFFFFFFFFFEFEFEFFFFFFFAF0E2
+8687A2F0FFFFE6D5AF8FB5C5FEFFFFFFFFFFEACDA97B949BF4FFFFFFFFFEFEFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFFFF6ED9A6735B6D8E4FFFFFFFFFFFFF6E7D76D5B74E6F8FFDFC5AA5F87B2
+F9FFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFEFDFFFFFFFFCAB0A39BBBD8FFFFFFFFFEFDFFFFFF
+FFFEF2886A7BB7CCE5FFFFFFFDFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF2E7CD454979DFECF9FFFFFFFFFFFBCAB09D646175A3A49C645E57BDD7E9F2E8DD
+642102798B93836D5D728CA3F2FCFDD4BFA568768AB5B8B58C7D76A9C1CFE0D9CC8469494A676E
+919AA7D4E1F2FFFCF398786C8395A0A2917F17001F93A9C3FFFFFFE7D1B86F636E9395885B6783
+D5E4EACEC3B4867C714B4D5C878C93C6D9E1F8F4E48672628394A09583737789A5E7F0EE9D7249
+5A839FE2E2D76929008BAABDF9FFFFFFFEFEFEFFFFFFFEFEFFFFFFFFFDEE987A55526D9DE7E9DC
+7A542F809EBEEBE4D1706462929EA4897264869DB9F9FEF7B08E60226D97DCE0DA8C60056F9BBD
+ECE6D8886E5382939A86735E6B91B5F3F9F4BB9D887B899AB7B6AE807775B8CEE3FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFBF4EB957D738290957A6359A8C2D8F7F1E289786E97A5B1AFA495
+76859BE8EFE7AD8D505F809BC1BBAC6D6E76C5DFF2FFFFFFD3B99E6A6C7C928E7D617897E5F1FD
+FFFFFFFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFF9E3C4667278D7EFFEFFFFFFFFFFF3AB9673788D99
+A29B8B3D200088ADC7DCD4C4745A42859197705435004462C8D9DDA889796270808E8571000000
+96B2CBF1E9D8856B6E9EABB3AA9F8F7B8BA0E5EBEEB3977A526D829288780000007399BBF8FEFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFAEBA1803E6786A0C0BAAA6B6F79C8E2F4FFFFFFD0B69A6A6E7E
+908C796780A0E4EDEAB8A9944B3A3C7A8087ABBCCCF8FFFFDDCAA65D6C78A6AAA46A4D164A7795
+DEE6E7AB88583678A1DFDFD68051007FA8C6E1D9C56E54408792976E523300415FCBDFEFFFFFFF
+FEFEFEFFFFFFFEFEFFFFFFFDDDD7C67C6551555B6A969DA4D1E3F4FFFFF5B19D87788A9EB8B5AC
+786E76CAE1E9EBE5C7100046A8B7BCA39180758AB1FFFFFDBDAC8610426996988D544E6EC2D4E5
+FFFFFFFEFEFEFFFFFFFFFEFEFFFFFFFFFDFAAF845300003996968E5A617CD7E5F1FFFFFFFFFFFF
+C69D7286ABBEFCFFFFFFFEFDFEFFFFFFFFFFFFFFFFFEFEFEFFFFFFD2BAA3000039C9DDE1B79775
+195073E5F5F7E4DFCE7E614B384B4C97A6BBF3F7FBFFFFFFFEFEFEFFFFFFFFFFFFFFFEFEFDFFFF
+FFFFF5B2936291BDD9FFFFFFFEFEFFFFFFF9C2A88A767C80747573C2DAEAFFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFEFFFFFFFEFCF9CCB7A97061534F5F72B2C5D0F5FEFFFFFFFFFFF4D761676BC2DBF1
+FFFFFFFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFDF3
+A277539DBFD4FFFFFFFFFFFFFFFFFCE9E3E0D9D6D7E3E9F0FFFFFFE6D2C26B7C9AC7D3DCDEE1E4
+F5FAFDFFFFFFFFFEFBEAE4DED4D3D6E1E4E9F8FBFCF3EFEBE4E4E5E9E7E6E0E1E4F0F4F9FFFFFF
+F9F2ECD9D5D6E1E5E8EEEEEBE7E8EDFDFFFFFFFFFBEBE6E3DADADFEAEEF3FEFFFCECE8E6E1E2E4
+E9EAE9E2E0E0EAF0F3FFFFFFFBF5EFDBD7D5D9DADEF5FBFFFEFCFAE9E5E4EAECECF2F4F4EAE5E5
+E9EBEDFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDF8EAEAE8E6E6EAF4F5F2E9E9E8E6E8EDFEFFFF
+F7F1EBD8D5D4DDDFE3F8FDFFFFFEFAEEEBE7E6EAECF0EFF0EBE8E5E7ECEFFBFFFFF9F2ECDAD6D4
+DADEE6F6FAFDFFFFFFFFFCF6E1DBDAD4D7D8E5EAEDFAFDFEFFFFFFFEFEFEFEFEFEFEFEFEFEFEFE
+FEFFFFFFFFFFF7F2EBDCDCDAE1E6E9F7FAFDFFFFFFF8F3ECD9D6D4D9DBDFEDF1F5FFFFFCF2EFEB
+E2E0DED6D4D6E5E9EFFEFFFFFFFFFFFFFDF8E6E1DFDBDDE2EEF2F6FEFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFEFEFFFFFFFFFEF2957464A0B9D3FFFFFFFFFFFFFAF6F2DDD8D5DBE1E6EEECEAE6E8EC
+FBFFFFF2ECE6D7D8D9E6EAEDEAE8E6F0F5F9FDFBF5DEDAD8DDE0E3EBEBEAE9E9EFFFFFFFF6F0EB
+D7D5D4D9DEDFEEF2F5FFFFFFFEF7F3E1DCD8DBE2E5ECECEAE7EAEFFBFCFEFFFFFEFEFEFEFEFEFE
+FEFEFFFFFFFCF0EEEAE2E0DDD6D4D7E6EAF0FEFFFFFFFFFFFFFDF7E5E0DEDBDDE2EFF3F7FDFDF7
+E6E4E4E7E8E9E5E3E1E4E9EDFBFFFFFFFEFCE7E0DAD5DADDECECECE8E8E9F0F1F3EFEDE8E6EAED
+F0EFEFEBE8E5E8EDF0FDFFFFF1EBE4D7D8D9E6EAEDEBE8E6EEF4F8FFFFFFFFFFFFFFFFFFFEFFFF
+FFFFFEF2F0EAE3E3E6E9E8E6E1E2E2EFF5FAFFFFFFFFFAF5E1DDD8D5D6D9E6E9EDFBFEFFFDFAF7
+E9E5E4DCDAD7D6D8DDF3FAFFFFFFF1A19678A0BABFD8DDDFEAF0F4FFFFFFFFFFFEFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFDF1EDECEBEAE9E4E3E2E6E9EDFAFBFCFFFFFFFCF4E0745362C2D7EAFFFFFF
+FDFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0ECEAE7E6E6F1F4F4EEEBEBE6E5E6F5FAFAF4F2ED
+E2E3E6E9E8E7E3E3E8F9FCFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFDAC4AB55678E
+F0FBFFFFFFFFFFFFFFFDFAF7DBD5D4DBE3EDFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFEFCEBE6E4E5E6E7E8E5E3E5EAEDFAFDFFFFFFFFD5BB9C6D8198F2FFFFFFFFFEFEFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFEFFFFFFEBDEC993A3BDF7FCFF
+FFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFCCDB39753575F8391A3E3F6FFFFFFFFFDFDFDFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFECDAC29AADBBF2FDFFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEDE3D07B65565F697ABBCEDCFFFFFFFFFDFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFECD5BCA3B2BEF6FFFFFFFFFEFEFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFAEDB1A699CAE4F5FFFFFFFEFDFE
+FFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFEFFFFFFF7B8B3A8C4D6EAFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFEFAF9F8FDFDFEFFFFFFFFFEFEFEFEFE
+FDFEFDFDFEFEFFFFFEF8F5F3EEEEEDEEEEEFF8FAFDFFFFFEFFFFFFFFFEFEFEFEFEFEFEFEFDFDFE
+FEFEFFFEFEFEFDFDFDFDFDFDFDFDFEFEFEFFFFFFFFFEFEFEFDFEFEFEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFEFEFEFEFDFDFDFEFEFEFFFFFFFEFEFEFDFDFDFDFDFEFDFDFDFEFEFEFFFFFFFEFEFDFDFDFD
+FDFDFDFEFEFEFFFFFFFEFDFDFEFEFEFEFEFEFEFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFDFDFDFEFEFEFEFEFDFDFDFEFEFFFFFFFEFEFEFDFDFDFDFDFDFEFEFFFFFFFFFEFEFD
+FDFEFEFEFEFEFEFDFDFDFEFEFFFFFFFEFEFEFEFEFEFEFDFEFEFEFEFFFEFEFDFDFDFDFDFDFEFEFE
+FEFDFEFEFFFFFEFEFEFDFDFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFDFDFEFEFEFF
+FEFEFEFDFDFDFDFDFEFEFDFEFEFEFEFFFFFFFEFEFEFDFDFDFDFDFDFEFEFEFEFFFFFFFFFFFEFEFE
+FDFDFDFDFDFDFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F7F7
+FBFDFFFFFFFFFEFEFEFEFEFEFEFEFEFEFDFDFDFEFEFFFFFFFEFEFEFEFEFEFEFEFEFDFDFDFEFEFE
+FEFEFEFEFDFEFEFEFEFDFDFDFEFEFEFFFFFFFEFEFEFEFEFEFEFDFDFEFEFEFFFFFFFEFEFEFEFDFE
+FEFDFEFEFDFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFEFEFEFEFEFEFE
+FEFFFFFFFFFFFFFEFEFEFDFEFEFDFDFEFEFEFFFFFEFEFEFEFDFDFDFDFDFDFEFEFEFFFFFFFFFEFE
+FEFEFEFEFEFEFEFEFEFDFEFEFEFEFEFEFEFDFDFEFEFEFEFEFEFDFDFEFEFEFFFFFFFEFEFEFEFEFE
+FEFEFEFDFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFDFDFDFDFDFDFEFEFF
+FFFFFFFEFEFEFEFDFEFEFEFEFDFDFEFEFFFFFFFFFEFEFDFDFEFEFEFDFDFDFEFFFFFCFBF9F1F0EF
+EDECEDF2F4F6FEFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFDFDFD
+FDFDFEFEFEFFFFFFFFFBF8F8FAFCFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFDFDFDFEFEFEFEFEFEFDFDFDFEFFFFFEFEFEFDFDFDFEFDFEFDFDFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFDFAF9F7F9FCFFFFFFFFFFFFFEFEFEFEFEFEFEFEFE
+FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFEFDFDFDFEFEFEFFFFFF
+FFFFFDF9F9FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFEFEFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFF
+FAFAFBFCFDFFFFFFFFFEFEFEFDFDFDFEFEFEFDFEFEFEFFFFFEFEFEFDFDFDFDFDFDFDFDFDFEFEFE
+FFFFFFFEFEFEFDFDFDFDFEFDFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFD
+FDFDFDFEFDFDFDFEFEFFFFFFFFFFFFFDF9F5E1DCD8E0E6F1FFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFDFDFDFDFEFEFDFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFBFAFBFCFDFFFFFFFEFDFDFDFDFDFDFDFDFDFDFDFEFEFFFFFEFDFDFDFEFE
+FFFFFEFDFDFCFFFFFFF5EBDBB7B7BFE9EFF5FFFFFFFCFCFDFFFFFFE7DFD2B5B6C1EFFAFDFFFEFE
+FCFDFDFEFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFE6D4C9BECCD5F6FCFFFFFDFDFDFEFEFFFFFF
+FFFFFEFBFAFDFFFFFFFFFEFEFFFFFFFFFFFFFDFDFBFCFFFFFFFFFFFEFEFFFFFFFFFFFFFDFBFDFC
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDDCC38D9EAFEEFDFFFFFFFD
+FEFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFFFFFFFFF9DAC7AA47444F9CB5D8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEBD9BF
+8EA1B3F0FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F5E6CE400030CBDBECFFFFFFFFFFFFFFFFFFE6DAC04F4E54D1EFFBFFFFFFFFFFFFFFFFFFFEFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFDCBEA2417E9FF1FFFFFFFFFFFFFFFFFEFEFFFFFFFCB59B98BBCFE1
+FFFFFFFDFCFDFFFFFFE9DEC48CA1B8F7FEFFFFFFFDFCFDFFFFFFFBBDB29FB2CAE1FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFBA77F6B92A9C5FFFFFFFFFFFFFFF9F1CDC3BBABA8AD
+BEC8D5FAFFFFEADBD2BEBEBEBDBBB6ABAFBAE2EAF3FFFFFFF7F1E8BCB1ABACB0B4B8BCC2E3EEF4
+FFFFFFFFFEFEFFFFFFFFFFFEFFFFFFFFF7EDCCC6C2C0C0C1AFA9A9C4D0DCFDFFFFFFFEFCFFFFFC
+C7A9959BAFD0FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFCF5D5CAC3B4B1B1BBC0C8
+EDF6FDFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFAA2786697AEC8FFFFFFF9F0EA
+C9C1BCC9CECFBDB5B1BCC7D3FAFFFFDACDC3C4D0DAF9F9ECC1B6B2CFDFE9FFFFFAAD7D5C96A0AB
+BDBAB8C8D3DEFDFFFFFFFFEF9EA394D4E8EBD6C4B8AFBCC5EEF8FFFFFFFFFEFFFFFFFFFFFEFEFE
+FFFFFFF4EADF847F8EB3C0C5B7B3B6DCE9F3FFFFFFFFFFFFDCBE9755839BEFFEFFFFFEFDFFFFFF
+F9EEE0703A46C7E0EEFFFFFFFDFCFCFFFFFFD9BDA7606A8BF0FFFFFFFFFFFEFEFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFFEEED5717273CAE3F7FFFFFFFFFFF7BCA58749658AC5C9BF703D2599B5CAEAE5D1
+490000849FAF9E8B6B88AABDF9FFF59F775D758B9DBCB8AA23000092BEDBFFFFFFFFFEFDFEFFFF
+FFFFFEFEFFFFFFFEF3A47F4E1B5274B5B4A756647AD2E7F7FFFFFFFFFFFFCFB19D9BAFCFFFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFAEAA38F838E969562444D9DB6D5FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFCEBD16D7276CEE5F9FFFFFFFFF9EF9C754F00305DA1A6A4
+736055A0BAC9CDC2A95A7E90F0FCF6B092686FA3B8FBFFFEAE753C1E5F7DABABA56F6259ACC8E1
+FFFFEFA09E8DA5AAA87142509CB6C5F2FAFFFFFFFFFEFEFFFFFFFFFEFEFEFFFFFFF5ECE06E2E03
+788F9CA79C8E5E657CD6EAF5FFFFFFF9F1E0613F64CFDEEEFFFFFFFCFDFFFFFFFABDA47671A2C7
+FFFFFFFFFEFDFFFFFFFFF3DA746F66B9D6EFFFFFFFFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFECD0B9
+757272E2FAFFFFFFFFFEF0E1876219718C9FB4B2B295867CA1B8C3F9FFFB9E8A9AE0F9FFF6E8C5
+90B1BEECEFD453728BE6FBFFFFFFFFEDE7E0E1E9F2FFFFFFFFFEFEFFFFFFFFFFFFFEFEFEFFFFFF
+D2B29EA7BBDAFFFFFFB08D86BED0E9FFFFFFFFFFFFD4B5A1A0B4D5FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFEDDFD2908889ABB5B88A6F648F9EBCFFFFFFFEFDFDFFFFFFFFFFFFFFFFFF
+FEFEFDFFFFFFE9CCB4757678E5FDFFFFFEFEFFFFFFC1A59E94B1D6FFFFFFF7EDCA5A7A9CDBE3D6
+96A1A2F8FFFFF2E6C28FB1C1FEFFFFA96B5FC5D5E7FFFFFFE3C2AB695E8FFFFFF9A99875000000
+9CB4CCFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFF5EBDE767494E7F7FFFFFFFFAA9A80
+94BADBFFFFFFFFF7F09F644DBAD4E2FFFFFFFDFBFDFFFFFFD3BEAE657AAEFBFFFFFFFFFEFEFEFF
+FFFFF7967980A8BEDDFFFFFFFDFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFF1D8BE757672DDF7FFFFFFFF
+FFFAED9F84587798B3DFE0DDB8AB9FAFC3D1F0EEE06B5266D0E8F6E2CCA45E889BE9F1E27A5E61
+A8C2D5EAE4DAADA59ECBE1EDFFFFFFFFFEFEFFFFFFFFFFFEFEFFFFFFFFFCB38E7583A6C9FFFEF3
+956D5BA8C2DDFFFFFFF6F4EDAF8E7B7E91B0ECF1F5FBFCFEFFFFFFFFFFFFFFFFFFFDFDFEFFFFFF
+C3A6964D739CE9EDE6936641647DA1F6FFFFFFFFFFFEFFFFFFFFFFFFFFFFFEFEFDFFFFFFEFD4B9
+737978E0F9FFFFFFFFFFFFFFC1A291556684D5DEDDB39C7B7195AFE7ECDC6C6B71CCDFE4BB9F71
+5F8DA6EFF4EE8E4C006E8CAAE4E5E1A0856B89A5C8F9F3E17A7768C4D7CB8977678EA9C2F6F9FC
+FFFFFFFEFEFFFFFFFFFEFEFEFFFFFFEEDFC937000EA5BFCFDFD8C6736459BAD9EBFFFFFFFEF7EF
+975C50BFD4E3FFFFFFFCFBFDFFFFFFCDBCA3597EB0FCFFFFFFFFFEFEFFFFFFFFF18A7878A7C0DF
+FFFFFFFDFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFF4DE746868BED6EDFFFFFFFFFFFFF0E3D59F9896
+9C9E9F96959BCCDCE4DCD1C486797DC7D8DBCABAB0827E88D9E9EFE9DDCC9086818E8D8A919BAB
+E6F0F8FFFFFFFEFEFEFFFFFFFFFEFEFFFFFFFFF6E8B0A08B8EA9BDD9D4CD9F8D7CA3BFD2FAFBFB
+D4C0A98A8D9193918EA2B4C8F6F9FEFFFFFFFEFEFFFFFFFFFEFEFEFFFFFFF1E3D7A1958E8F9095
+A3A29A8990A0DAE3EEFFFFFFFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFFFF1DA6D656AC3D9F0FFFFFF
+FFFFFFC6ADA1738497AAA3A08F939EDBEAF5FFFFFAC0AD9E878B8F94939090939FCBCDBB9B9990
+8B8C8E918C8790A1B4F2FBFDE3D8C1888DA0F1FFFDD6C7B06C7088D0D9E6FFFFFFFEFEFEFFFFFF
+FEFFFFFFFFFFDDC8B48B84818E9090878385AFC0D0F9FEFFFFFFFFF8ECD4514B72D8E6F6FFFFFF
+FCFEFFFFFFF7B0935E8AB5D0FFFFFFFFFDFCFFFFFFFCEBD06C6A62C9E4F5FFFFFFFDFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFFFFFFFFCAAC8C7897B0F9FFFFFFFEFDFFFFFFFFFFFFFCFBFCFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFDFEFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFC6A7877C9BB4FBFFFFFFF7EC987A656588A6
+CEDCE5FFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4A1867E9EB7FCFFFFFFFDFDFFFFFFF1E6CE625F79
+DFF0FAFFFFFFFCFCFEFFFFFFC6B2947C94B4FDFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFFFFFFFFFFFFFEFEFE
+FFFFFFFDF5EBCDD0D4F0FAFFFFFFFEFDFDFDFEFEFFFFFFFFFEFEFEFEFEFEFFFFFEFEFEFEFEFFFF
+FEFEFEFEFEFEFFFFFFFEFEFDFEFEFEFFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFFCF4EACCCFD4F2FDFFFEF3E9C2B8ADA29E9DBAC8D7F8FEFFFFFEFE
+FEFEFEFEFEFEFFFFFFFEFEFEFEFEFEFFFFFFFEFEFEFEFEFEFFFFFFFEFEFEFEFEFFFFFFFFFEFEFE
+FEFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFEFEFFFFFFFF
+FEFEFEFEFFFFFFFFFBD5CDCEE7F2F8FFFFFFFDFEFEFFFFFFF0EDDFD2DAE5FFFFFFFFFEFEFEFEFF
+FFFFFADBDAD4E4EDF7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFEFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF
+FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFDFCFAF6F6F6F9FAFBFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFFFFFFFEFDFDF9F8F8
+FBFDFEFFFFFFFEFEFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFFFFFFFFFFFCFBF9F6F6F7FAFBFC
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFEFFFFFFFFFFFFFEFDFDFEFFFFFFFFFF
+FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFF
+FFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFFFEFEFEFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFBF4F1DBDCE2F9FCFFFFFFFFEAD9C2685B56
+8896B1F6FEFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFEF0E79B8573B3D6EAFFFFFFFFFFFF
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFDFEFFFFFFFDDECBB1534C569DABC2FDFFFFFFFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF9F0E5BEB3A59FB0C8F7FAFFFFFFFEFFFFFFFBF3ECE0DEE1
+FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFEFDFEFFFFFFFFD1B7916392B4F9FFFFFFFFFEF9F6F3DCC9B082768FEEF9FEFFFFFF
+FEFEFEFDFCFBF1F1F0F3F6FAFFFFFFFFFFFAAC93869BC5E1FFFFFFFCFEFFFFFFFFFFFFFFFFFFFE
+F2F1EEF1F4F8FFFFFFFFFFFEF7F4EFD0B89C8888A5FAFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF8EFDFAE9C855A74A1F1F7FFFFFFFEFEFFFFFFF0DA776D68C3DFF2FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+FEF6E9885745BCD8E6FFFFFFFDFCFCFFFFFFFFF1D7978797EEF7FDFFFFFFFFF8F0B9A5978D9194
+828489C4DBE8FFFFFFCAB0A25B646F83817B71798ED6E7F3FFFCF3B7A7988E969A94908BAFC1D4
+FCFFFFFFFFFFF6E1C29591A9FAFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFFFFFF
+FAE6D58A86A1EEF7FFFFFFFFFDFDFFFFFFFFB696838399B9FFFFFFFFFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF0E4C73C5F89E3F0FC
+FFFFFFFDFDFDFFFFFFF8E8CE928395EEF7FCFFFFFFFFF7F1B0948486919872613679AACBFFFFFF
+C5A895627797E4EAEBC7B5997290A8B9AEA3402D32ABBEC6B2A586000055D7E4EFFFFFFFECD7B9
+928EA7FAFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFF1DECD8283A1EEF6FF
+FFFFFFFDFDFDFFFFFFE9C9A7637D89E6FAFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDE0BE58889FE8F8FFFFFFFEFDFDFDFFFFFF
+FFEFD6988898F1FDFFFFFFFFE1CDAC698699DAE3E2B19C838AAFD0FFFFFFC5AB9C8EACCFFFFFFF
+F6EBCE7287958A7E8B6A6574BEC7C8C0BCB8A6A3B0E3EBF3FFFFFFF6DDC09793ACFFFFFFFFFFFF
+FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFFFFFFF9E5D48A87A5F5FDFFFFFFFFFDFDFDFFFFFF
+F4DFBB4D7584DAEFFFFFFFFFFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFF0E5C8405684E2EFFCFFFFFFFFFFFEE3D5C9A694804D3D51959FA8
+CFDEE8DACBAB4F6675B8BFBA7A5912316F91D9E1E4A87D4700001A96A4A3775A459CBBCFE9DFCC
+7A665EAABAC4BAAD9D6F829BE5EBF1E1D2C297836D4D4C64A2AAB0CFDFEDFFFFFFFFFEFEFFFFFF
+FFFFFFFEFEFEFFFFFFF2E7D8A49380382B4F9BADBCE5ECF7FFFFFFFFFFFFE8CAA8697F8BE9FCFF
+FFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE
+FFFFFFFFFAEE956648ABC9DCFFFFFFFFFEFEECE2DACFD1D2D9DAD9D1CECCDCE7EFFCFDFBDED3CB
+C1C6CADADCDDDBDADAE1E3E9E3DDD8D8D9D8CECAC9D0D7DFF7FCFFFFFFFFEDE4DCC7C2C3C7CBCE
+DFE7EDFDFCFCE7DCD4CFD2D5D9D9D7D0CFCEE1EBF3FFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF
+F4EBE2D3D3D3D9D8D6CFD2D7ECF2F8FFFFFFFFFFFBAC8A778EA6C5FFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFE2D3BB
+829BB8F8FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFCECD89A9592DBEFFCFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFBF2F1F2FBFCFEFFFFFF
+FEFEFDFDFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFDFDFEFEFEFDFDFDFDFDFDFEFEFEFEFDFDFDFDFD
+FDFDFDFDFDFDFEFEFFFFFFFFFEFEFDFDFEFEFDFDFDFDFEFEFFFFFFFEFEFDFDFDFDFDFDFDFDFDFD
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFDFDFDFDFDFDFEFEFEFFFFFF
+FCF7F4F1F3F7FFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE
+FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFEFFFEFFFFFEFDFDFDFDFDFDFDFDFDFDFDFEFFFFFFFFFFFF
+FEFDFDFDFDFDFDFDFDFEFEFFFFFFFFFEFEFDFDFDFDFEFEFEFDFDFDFDFEFEFFFFFFFEFEFEFDFDFD
+FDFDFDFEFEFEFFFFFEFDFDFDFDFDFDFDFDFDFDFEFEFFFFFFFEFEFEFFFFFFFFFFFFFDFDFDFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFCE3DBD6DBE3EBFFFFFFFFFEFEFEFFFF
+FFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+EDDFD1A1ACC1F7FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFE3CCBEBBCADFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFEFEFEFFFFFFFFDCCDB25A574F54586DC5DAE6FFFFFFFFFFFCBFABACC6D6E7FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFAB6935E82B0C9FFFFFF
+FEF6ECD6D5D4DADBDAD2CECBD4DAE4FEFFFFFFFEF9E4DDD7C5C4C3C8CFD7F3F9FCFFFFFFE3DDD6
+D1D8DDECECE9CDC4C0CDD9E0FDFFFFF2E9E0C3C1BEC2C8D0F1F8FDFFFDF1D4D2D5DCD9D5C8C4C1
+D8E4ECFEFFFFFDFAF4BA957F8096B5E9EBEAEDF1F6FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+FFF6EC916257C5DFE8DECAA75384ABF4FDFFFFFFFFD5B48E6089A0F2FFFFFFFFFEFEFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF6EDD95D3B63D5E5F1FFFFFFFDF6E486590300004B
+888E8A605249A6C4DDFFF9F4AF9180868F966A5D4697BFD8FFFFFFD8CBB54713165B6E7D877D76
+90A8BCE0DDD37F69579AADB8A596765279A0E9EAE391641E1A5776A19A8A4B547FEAF3F7E6D7BD
+5D3E2E57626A7E8280B0C3D9FFFFFFFFFFFEFFFFFFFFFFFFFEFEFEFFFFFFF7EDDF6B567EE2F2FF
+F6E4D25F6792EBF5FEFFFFFFFAF1DD5B4667CEDEEFFFFFFFFDFDFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFEEE1C04B7B98E6F5FFFFFFFFFFFFFFC09477A1ADC6FFFFFFEDD7C76A4F77
+E1E2DFA8978B99A4A88B7D6587B0CEFDFFFFFFFFF99D7D82B6CEE4FFFFFFFFFFFFBC9A85393D56
+AAB6B7A8A394595984E4EAEDD2B58DABC6DBFFFFF7AA847DD2E0EDFFFFFFC9AB9798AFCDFEFEFF
+FFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFEFEFEFFFFFFF7EDDE685781E3F4FFFAE7D6696792EBF4FE
+FFFFFFFFF9F39F6552B9D0DFFFFFFFFEFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+EDE1BF4D7D9CE7F6FFFFFFFFFFFFFFC095736C849EE9F0F2C7B19D727B97C2B1894C829DEBF2EF
+AD916C6F9BBDFAFFFFFAF1E2847280C2DBEDF9F7F8FFFFFFD1AE93505870CDDADFD5CBC19DA0B0
+EBEEEDBC9A7CAFC3DFFFFFF19A7469C4D9EAFFFFFFD1AE95869CBBF8FAF2CBC6C6DFE9F5FFFFFF
+FEFEFEFFFFFFFEFEFEFFFFFFFFF6EB936E5BBED7E7D8C1A35D89AEF5FDFFFFFFFFFFFAF3A16750
+B8CFDFFFFFFFFEFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF6EDD75D3C62D5E6F3
+FFFFFFFFFFFFCAA27F565F6D9E9C94757A86D3E6F3F2E9D68F82798B9293877F76768593CED8DF
+C9B89E696C748284879DA4B3F0FEFFFFF7E9AF9E8E90989E9A958E92A5B9E8EADE9683728695B2
+E2E3D27C6B6798AEC7FFFFFFF3E5D091817F8486817B889CDDEBF8FFFFFFFEFEFEFFFFFFFFFFFF
+FEFEFFFFFFFFE4D4C080746E75818DD3E2EFFFFFFFFFFFFFFCF3DF634A6BD0DFF0FFFFFFFDFDFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFBBA99737DA6C3FEFFFFFFF9EB9A7355
+7C839CD7DFE6FCFEFFFFFFFFFFFFFFFDFAF7F3F5F6FFFFFFFFFEFEFCFDFDFDFDFDFFFFFFFDFDFC
+FCFCFCFEFEFEFFFFFFFFFFFEF5F1F1F4F7F9FFFFFFFFFFFEFEFEFFFEFEFDFDFDFDFEFFFFFEFDFD
+FEFEFEFFFFFFFEFDFBF6F7FAFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFF
+F7F4F4F4F7FCFFFFFFFEFEFEFFFFFFD1B193678BA6F5FFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF7EFE1BABFCDF8FDFFFEF2E0ABA29A888C89A9BBD0FEFFFF
+FFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFEFEFE
+FEFFFFFFFFFDCDC0C0DBE8F1FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FEFEFEFFFFFFFEFFFFFFFFFFFFFFFEFEFEFEFFFFFEFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFEFEFFFFFF
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFDFBFBFD
+FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE
+FFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFDF9F8E8E9ECFBFDFFFFFFFF
+FEFEFEFEFEFEFFFFFFFFFEFEFEFFFFFFFFFFFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFEFEFE
+FEFEFEFFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFEFEFD
+FEFFFFFFFAEEB8A8926C758CD5DFEAFFFFFFFDFCFDFFFFFFE7D6C765598BEDF7FEFFFFFFFEFEFE
+FEFEFEFFFFFFFFFEFEFEFEFEFFFFFFFEFEFEFEFFFFFFFFFFFFFEFEFEFEFEFEFEFDFEFFFFFFF8EB
+AB95839DB2C1F8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFEFCF6E6E8EBF7FCFF
+FFFFFFFFFFFEDDD0BD848191CFDEE9FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFF7F4EC
+C8C0BAB9C2C9F6FFFFFFFFFEFFFFFFFBF8F1E9EEF0FEFFFFFFFEFEFFFFFFFFFDFAEFE9E8F8FAFD
+FFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFDFEFFFFFFFFD9C3A3698FB1F8FEFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFCFBFAFBFDFFFFFFFFFFFFFFFFFFFFFFFFFDFBFBFDFFFFFFFFFFFFFFFBF7E4DBCD
+937364B4C3D8FFFFFFFDFCFDFFFFFFF6EEE7C7C7D1F6FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFEF8FAFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD6C7A7698C9AEFFFFF
+FFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFDBC09F7490A8F3FFFFFFFFFFF2DFC56E6C6D
+A3A795656E7FDCF2FDFFFFFFFEFEFFFFFFFFFFFFFFFEFEFFFFFFFFEAE4D88F6F525E7E89EBFEFF
+FFFEFDFFFFFFF7EDD5656681DEEDFBFFFFFFFCFFFFFFFFF7B596749CC0D8FFFFFFFFFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFEFEFFFFFFFFF8EE946642B1D0DFFFFFFFFDEFDD978D8CCBD6E7E1CDBC75748ADFE9F0EADAC2
+84838995918D797F89CBDFEDFFFFFFCDBFAC8A929CB8BBB88A74688FAABDF3FBFCCDBCAC929699
+979899C2D2E1FFFFFFE9DACA9B9596999593ADBBCDF9FEFFFFFFFFFFFFFFD1B396B5C1D7FFFFFF
+FFFFFFF3E4D1928D85A8BBD1F9FBFFFFFFFFFBF5F1AB9389879098978A7E8CA2BBF8FDFFF2E5D6
+9E9997999A969FAAB9EDF7FEFFFDF4BFAB9A838892999D8E7B99A5F0FFFFFFFFFEFEFFFFFFFFFF
+FFFFFFFFFFFEFFFFFFFFFFF0896866AEC2DCFFFFFFFFFFFFC9A794879EC1FFFFFF987F78A8C6E2
+FFFFFFFDFEFEFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF6DCBB7F8B8DEBFDFFFFFFFEFEFFFFFFFFF8
+AB7E5996BAD0FFFFFFFEFCFDFFFFFFE0CDB54D5A8CEFFBFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF1E6CB
+3F5381E0EDFAFFFFFFFFFFF8BB997CA2B0CDFFF9EB95725EC0D3E6FAEDD7500000B4CAD6C3AE95
+698FB4FCFFFFF3EBDC723B2F66819CCACAC9CDD6DDCEBEA9403034ACC0C9B4A58200005DE2EDF5
+EDDAC0747983978E7F042A73DFEBF6FFFFFFFFFFF8C4A88DB5C1D7FFFFFFFEFDFDFDFCF7D1BCA5
+5F6D98EEF5FEFFFFFFF5ECE4A19FABCECCC3662D0085ADCFFAF4ED9464006188A1CBCBBC4F2911
+8FA6BFCDBDA2627992D2D9D9A888666A8B9DF1FFFFFFFFFEFEFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+F8E1C66F7779D7F0FFFFFFFFFFFFFFBBA2968BA3CAFFFFFFAD8E88A7BCDAFFFFFFFDFEFEFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFEED7B67B898CEAFCFFFFFFFEFCFDFFFFFFFFDDCAA43D74A5F3FBFF
+FFFFFDFFFFFFFDEBDB846448C2E4F3FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEDE0BE57889EE8F8FFFFFFFE
+FFFFFFD9BC9BAAB9D5FFFFFFC39D83C7DAEEFFFAEA938298F3FFFFFEE5D08888A8F8FFFFFFFFFC
+A48D98D4EDFFFFFFFFFFFFFFBA947F4E5670B8C0BFB5B2AFA09FAFE0E3E3A8938DA1B4C2CEC7B8
+5F3962DDECF5FFFFFFFFFFFFD0B094BBC8DEFFFFFFFFFDFDFFFFFFFFECDB918CA7F5FEFFFFFFFF
+FFFFFFFAF0E3AB9B8BA6BFD0F5FCFEF0E4D85B000097A9AFBCBCB9A5A2A9C6C0BE9F976EA5D0EB
+FFFFFFF9DDB9839AA1F2FFFFFFFEFDFEFFFFFFFFFFFFFFFFFEFEFDFFFFFFE6C9B2757478E6FDFF
+FFFEFEFFFFFFC3A39186A3C9FFFFFFA3837DA5C0DFFFFFFFFDFEFEFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFF7DEBD829192F1FFFFFFFFFFFDFDFDFFFFFFE7D8C8585C95EEF7FFFFFFFFFDFFFFFFF9E6
+8F835FA2CBE7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEFE4C540628DE4F1FEFFFFFFFFFFFFDCC29C647489
+C1BDB030000098BAD5EADBC41A003EC6DFECD7BD98003E77E3EFF4E1D2BA49324B91A7B7C9CAD2
+F8FFFFE9D1B7675D60B8C8D1C5B8A97D8CA1E0E2E1815A599EB6C4C2AF97000000ABC3D9FBF7F1
+D4C8BB88684D77859AC6CED5EDF5F6DDD8D0AEA08E474765ACB5BCDBE8ECFCFAF4965A00005082
+C1BDB07B89A3EBEBEEB48E627B97ABD3D2CD968A85B2C4D2D5C5AC44426FB9C2BE80560000346C
+DEEEF9FFFFFFFEFEFEFFFFFFFFFFFFFEFEFDFFFFFFF5DDBF707978DBF4FFFFFFFEFFFFFFEFDAC0
+77747AB3B3A96E7780D8EEFCFFFFFFFEFEFEFFFFFFFFFFFFFEFEFFFFFFFEF0EFE6AD90732F4644
+ADC1D0F6F7F9FFFFFFFFFFFFDFD1AE316A9EF1F9FFFFFFFEFEFFFFFFF2E08B734DBADEF0FFFFFF
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFFFFFFFEF6E8865343B9D3E3FFFFFFFFFFFFFBF6EEC6BEB9B5BBBCC5C7C4CAD1DC
+E7E0D5BFC1C2D4DCE3DDD2C7BDC4C8E4EAEBDAD1C6BEC0C2C0BDBBC2C6CEF4FDFFFFFFFDE1D5CB
+B4B0B1B5B9BBCDD8E1FBFCFEEBDDD0B0ADAEBEC2C5CBCBC7C9CFDDF6F0EBCBC0B9BEC2C5C3C0BC
+BCC3CBECF5F6D9D0C7B9BABEC6C6C5BAB7B7D5E2E8F9FAF7D0C4C1C4C5C5BEBCB9C4CDDCFCFFFF
+F9F3E8C5BAB5B1B3B5BDC4C9E6EFF8FFFFF7D2C8BFAEAEB1C1C3C3C0C0C7E6EAF1FFFFFFFEFEFE
+FFFFFFFFFFFFFFFEFEFFFFFFFFF9E87F6663B0C7E1FFFFFFFDFDFEFFFFFFDDD0C6A4A4ABD2DEEA
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFECE7DABBBBBEC5C5C3BDBEC9F0F5F9FFFFFF
+FFFFF9B591618CB3C9FFFFFFFFFCFCFFFFFFE5D2BC5A527FEBF9FEFFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFF
+FFFFFFDAC7AB7797B7F9FFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFDDC5A6819DB1F4FFFFFFFFFDFEFEFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F1D97C7F8FDEEEFA
+FFFFFFFDFEFFFFFFF7BEA380A4C3DAFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFDF7E7E7EA
+FAFCFEFFFFFFFEFEFEFEFDFDFEFDFDFDFDFDFDFDFEFEFEFEFDFDFDFDFEFEFEFEFDFDFDFDFEFEFE
+FEFDFDFDFDFDFDFDFDFDFDFDFFFFFFFFFFFFFEFDFDFEFEFEFEFDFDFDFDFEFFFFFFFEFEFEFDFEFE
+FDFDFDFDFDFDFDFDFEFFFEFEFDFDFDFDFDFDFDFDFDFDFDFDFEFFFFFEFEFDFDFDFDFDFDFDFDFDFD
+FEFEFEFFFFFFFDFDFDFDFDFDFDFDFDFDFDFEFFFFFFFEFEFDFCFCFCFDFDFDFCFCFCFEFEFFFFFFFE
+FDFDFDFDFDFDFDFDFDFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBF7
+E6E6E8F6FBFFFFFFFFFEFFFFFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFDFDFDFDFDFDFDFDFDFEFEFEFFFFFFFAF8F1EAECF1FFFFFFFFFEFEFFFFFFFEFAF7
+EAE7E7F7FCFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFE
+FEFEFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFEFEFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFEFEFDFDFEFDFDFDFD
+FEFEFEFFFFFFFEFEFEFDFDFDFDFEFDFEFEFFFEFEFEFDFDFDFDFDFDFEFEFDFDFEFEFEFEFEFEFEFD
+FDFDFDFDFEFEFDFDFDFDFDFEFEFFFFFFFFFEFDFEFDFDFDFDFEFEFEFFFFFFFEFEFEFDFDFDFEFEFD
+FDFDFDFEFEFFFFFEFEFFFFFFFFFFFFFFFEFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
+FFFFFFFDF7F0E0DEDCE2E4E0DBE5EBFDFFFFFFFFFFFFFFFFF4F2F0F6F8FAFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBDCD3D5E0E6EFFFFFFFFEFEFEFEFEFDFDFEFEFEFDFD
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFDFEFDFDFEFEFEFEFF
+FFFFFFFEFEFDFCFDFDFDFDFDFFFFFFFDF8F2E2E2E0EDF2F8FFFFFEFDFEFEFFFFFFFFFFFFFEFEFE
+FDFDFDFDFEFDFEFEFFFFFFFFFEFDFDFDFDFEFEFEFEFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFDFDFE
+FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFF6F1F0F4F7FAFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFDFDFDFDFDFDFEFEFFFFFFFFFFFEFEFDFDFDFDFDFDFEFEFE
+FFFFFFFEFEFEFFFFFFFFFFFFFEFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFD
+FDFDFDFEFFFEFEFEFEFDFDFDFEFFFFFFFFFEFDFEFDFDFEFEFEFEFEFFFFFFFEFEFFFFFFFFFFFFFF
+FDFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFDFDFDFEFEFE
+FFFFFFFEFEFEFDFEFDFDFDFDFEFEFEFFFFFFFFFFFFFEFEFEFDFDFDFDFDFDFEFFFFFFFFFEFEFEFD
+FDFDFEFDFDFDFEFEFEFEFEFFFFFFFFF0EBE6DCDFE3E3DBDBEDF1F6FFFFFFFEFEFFFFFFFFFFFFFF
+FEFEFEFFFFFFFEFEFEFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFF2E7DDB6BBCAF8FCFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FBF6E7BCC1C8F2FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFFCEDD38E8D72
+9AA698789BBBF8FFFFFFFEF1BFB2A661565AC0DAE4FFFFFFFFFEFDFFFFFFFFFFFFFFFFFFFFFFFF
+FFFEFEFEFFFFFFFFFFA47E7CA8BCD5FFFFFFFDFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFCEEDC755B56AAC6E5FFFFFFFFFFFFFFFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDACAC3D4E1F1FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFEFFFFFFFEFCF8C9B4A26A6569B5D1E7FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFDFDFEFFFFFFE0D6C8
+C8D9E8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFED4CBC1D2E5F3FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FDFCFDFFFFFFCBB5AB8594AA957A78CADAEBFFFFFFFFFDF8C3B6BCDBE7F3FFFFFFFCFDFEFFFFFF
+E9E1CEBBCBD9FEFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFDC0A06F
+74A5C1FDFFFFFFFFFFFFFFFEE8E1DDD6D7DAE2E4E7F2F6F9FFFFFFF7F0EAD8D4D4D8DDE4FAFFFF
+F9F6F0E2E2E2DEDCDDE0E2E4DCDBDCE9E9E9EBEAE6DEDDDDDDDFE1E3E1DEDBDFE6FCFFFFFFFFFB
+E4DBD5CFD0D1E7EFF7FFFFFFF4F1EBE4E5E8E8E3DED9DBDDF2FAFDFFFFFFE7DCBA3A6681D3E6F5
+F8F6F4FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFF9E5A0A499B4B8B498A7C1F7FFFF
+FFFFFBEAE0D794733EABCEDDFFFFFFFFFEFDFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFEFBEBE6DF
+D4D7DBEEF3F8FFFFFFFFFCF8EBE8E6E6E7E8DBD7D6E2E7EDFFFFFFFFFFFEFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFFFFEFAE2DBD8D7D9DDE5E7EAF5F9FCFFFFFFF7F3ECDAD5D3D8DCE1F5FAFFFFFFFF
+C5A49195A6C1DFDDDEE7ECF2FFFFFFFFFFFFFAF4EEDAD5D5D6DBE0F5FCFFFFFFFCE8E2DEE4E8EC
+F4F3EFD9D4D8E5EBF0FEFBF4AC8272A0B8D4FAF9F7F6F8FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBFB
+F0EAE0A18D84A2C4DDFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFEFEFFFFFFFEF2EFEBE5E5E8E7E2DC
+D9DDDFF4FBFEFFFFFFFFFCF8E4DDD9D3D5D9EAF1F6FFFFFFFFFFF3AEA07870A2C5F2F6F8F6F7F9
+FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9ECE8E4E0E2E7F3F5F4EDEBE7DFDFE4F4F8FBFFFFFE
+E6DDD7CFCFD0E4EDF3FFFFFFFFFCEA8F85658FB8D7F7F7F7F6F9FBFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF0E8E2D2D1D1DBDCE0EDF0F4FFFFFFFFFEF8E1D8D3CFD1D3EBF2F9FFFFFF
+FFFFFFF7F2EBD7CFCCD5DBE0F7FDFFFFFBF4E6E6E6E7E5E4D7D5D7EAEFF4FFFFFFFFFFFFCDB9B1
+9FAFBAA49395D2E1F3FFFFFFFFFFFFC09A727BA4BAFBFFFFFFFCFCFFFFFFEDDFCA4D396DE1F1FB
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF9F0DF6B3D57CEE2EEFFFFFFFFFFFD
+D0B8A257505990958E00000086B3CEF1ECDD7764598A989B816E6493A4BADDDCC8502200526A73
+5A38235465617D888C877D6D46404057635E4B464D565671D5E3E9C8B19673828FAFAA9F6A6A72
+D2EAF5E6D6BD20000075858B725F5393ADCAFAF0E5997B570029487771768D9BA9E5F4FFFFFFFF
+FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF6E2E1E3E9E8E7E3E8EDFDFFFFFEFFFFFFFFFABB9B6A
+AACCDDFFFFFFFFFEFDFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFDF5CABA9F3E455EBCCFE8FFFFFF
+FFFDF3AF916A00254C8B8B80526A7FD3E9F7FFFFFFFEFEFFFFFFFFFFFEFEFFFFFFFFFEF6BB9D85
+59636F908D80000000A6CFE6F6EFE2855E5084959B8B79667D98ACF3FEFFD6AF8B3C4459888277
+587B96E8F9FFFEF1DD8070638291988C7C6D7A8CAAF1F7F5C9B294393544737C7A675D669EA7B1
+C8C5AD50231F626C6F7E858BC4D4E8FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFC3AAA0A3C3DB
+FFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFEFDFFFFFFFFDBC9AF0D00007B888C6E5B5498B1CDFFFFF9
+B7A3895B6F7F9F9A8D5A5676D8E7F1E2CDB54B351241566A807678AFC7D9FCFFFFFFFFFEFEFFFF
+FFFFFEFEFFFFFFFFF7B69462000055D9EEF7C09B6A00005DDFEDF3CEB79D707B88AFACA4706E70
+C7DCE9D4BBA2241E0E556171817C80BED6E6FFFFFFFFFEFEFFFFFFFFFFFFFEFEFEFFFFFFF4E4CB
+73726DABB8B87A520D8BB4C6FCFFFEB6977D7B8D99AEA5976B737ED7EEFBF5EADB866F639AAAB0
+99846D86A6BCF2F3E98F68332E536A8883725D829DE9F7FFFFFFFFEEE7E4E1E6E8E5E1E1EFF4FA
+FFFFFFFFFFFFF2E5CC3E4A77DDECF8FFFFFFFCFFFFFFFDF2A5855493BFDAFFFFFFFFFEFEFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFEEE2C2457494E5F3FFFFFFFFFEF6DF717070BFDCF3FFFFFF
+DDD3C7C9D2DDB3917496AEC1FFFFFFFFF9E17A7E75B8CBCDB09B96D9D3D1A2909ACCCFD79DA0AB
+A9A2A4AFBBCFC4B3B1A7BFD0C3B89CA1B5A655444F8492A5BDB9AF74644186B1D7FFF5E3927C69
+D5EEFAF7E0C1877E9CF8FFFFE4D9B956788DD0E0EDF3F4F4FFFFFFFFFFFEFEFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDFEFFFFFFFFF5B69768ACCFDEFFFFFFFFFDFD
+FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFEBB998CB0C5E2FFFFFFFFFFFFDABDA48595B5
+FFFFFFB49383A7BFDCFFFFFFFDFEFEFFFFFFFEFEFEFFFFFFF3E6C9516A82DAEEFFFFFFF9CDC3BD
+D9E6ECC9B99570A0C2FEFFFFFFFBEE805C6CBFD3EAD6B19796B0D0FFFFF792747BCADDF0D2AA82
+7F98B1FEFFFFFFFFED8E825DA0CCE8FFFFEF888170B3CFE4FDFCFAF5F5F6F7F3ECAD9184A6BBD3
+F3F2F2F9FCFFFFFFFFFEFEFFFFFFFFFFFFFFFEFEFFFFFFFFEAE2D18F88869397988F8A899EAABF
+F8FEFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFBEA69DA4C5DEFFFFFFFEFEFEFFFFFF
+FFFFFFFFFFFFFFFEFDFFFFFFFFEED68B7B72DEF4FEF1D6B69194B3E6D8C26F5E70E4F8FFFFFFFF
+CDBA8E5895B6F8FCF6B1A5807DA6C4EBEEF1F7FBFDFFFFFFFFFEFEFFFFFFFFFFFFFEFEFEFFFFFF
+FAF0DA756B70CADDEBB69582A1BDD8FFFAE355191F798CA1BEBBB37D6E4B78A0C7FAF7EA969075
+96B9D4F0F1F2F8FDFFFFFFFFFEFEFFFFFFFFFFFFFFFEFEFEFFFFFFF4E4C86B70729CA5A78B7F7D
+C0D5E1F0EAD119000090A0AEBCB5A9625B4FA6C2D7C9B59800005CB2B9BDAD9E8437607BD8E8F8
+CBA6899EB7D5FFFEF3907479CADDF1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFFFFFFFDF4EA
+8C4F4FC8DDEAFFFFFFFCFCFEFFFFFFC6B19C6C8ABAFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FEFEFEFFFFFFEDE0BE53839EE7F7FFFFFFFFFFF9E3736C6DB4D2EBFFFFFDE0D9D2DDE6E8BD9A7D
+889FB8FDFFFFFDEFD7747673BDCECEAA9297DCD8D7A1939DD4D5DC9C97A59D9599AFBDD2CAB4B1
+A7C2D6CAC8AB92AC9C4F566DA2B3C3DBD8D4B6ADA6BBCFE7FFF1DD937D86EBFBFFFAE3C589829B
+F8FFFFFBEFD356718DE3F8FFF9EDE3DAE1E8FBFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFE
+FEFEFEFEFEFEFEFEFEFFFEFEFEFFFFFFFCF2AE8954A3CAD7FFFFFFFFFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFDFEFEFFFEF9B79687ABC0DCFFFFFFFFFFFFD5B6A18DA2C6FFFFFFBF9C89A5B9D8
+FFFFFFFDFDFEFFFFFFFEFEFEFFFFFFF4EBCE4E5C79D1E8F8FFFEF6D6D1CDE8F4F4CABA9A6390B5
+F8FFFFFCF2E1715968C4D8ECCFAD95A0B9DBFFFFFEA3847BC6D7EBD9B6907289A7F8FFFFFFF7E4
+857557AAD2ECFFFDE6878D85DAF2FBFFFFFFFFFFFFFFFFFFB99480ADC6E1FFFFF9D9D8DBF0F5FC
+FFFFFFFEFEFFFFFFFFFEFEFFFFFFFFEDE5D7A8A4A4ADAFAFAAA8A6B4BDCCF9FEFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFDFFFFFFFDB99F939CBCD9FFFFFFFEFFFEFFFFFFFFFFFFFFFFFFFFFEFD
+FFFFFFFCEAD28F7F8EF2FFFFF4DAB99298B4E8DDCB715B6BDAEDF9FFFFFDC2AA7F639BBCFFFFFF
+C8B3927BACCFFFFFFFE3DBD8E8F1F9FFFFFFFFFFFEFFFFFFFFFFFFFEFEFFFFFFFFD6C0A75A3408
+64859EEEFCFFFFF6DB503E4E96ADC0DBDAD6BAB1A9B3C4DCFFFFFFAA98809BC5E3FFFFFBDDD9D9
+EEF7FDFFFFFFFEFFFFFFFFFFFEFEFEFFFFFFF3E6D19F999BC0C6C8AC98766E9BB8E2E2D13A254F
+ACBECBDAD6D1B0A9A9CEDBE3C6B496165486CFD6D8D0C8C0A5AAB5E8F0F9C09C8AABC5E4FFFFF9
+9D7B7AC7D8EEFFFFFFFCFDFDFEFEFEFEFEFEFEFFFFFFFEFEFFFFFFFFF5EC985D47C1DBE8FFFFFF
+FDFBFDFFFFFFC9B4A46C86B5FFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF4EAD2
+50406EDBE9F6FFFFFFFFFFFFDCC8B36D66678E8F885B5660C4DAEAFBF3E389796E838E947E6C6A
+A3B6C8E0DEC95741539DA5B09C8B78A9BFC59F867A544E537C939FAA9E9C96989DB6BBA87F8EA7
+C2B4A6838590A8AAA37F7A7DC5D9E7E3D9C0320044B9C7D4D0C5A81F2961CADDEDFFFFF6AA9183
+788488776863A9C0D4FDFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
+FFFFFFFFFEF0B5AA9B6453455E6F7EBCC5D6FFFFFFFEFEFEFFFFFFFFFFFFFEFEFFFFFFFFEBE4D2
+948B877069636D717A98A5AFEBF5EFB4966F43789BD7DAD5926F3F7299B5F3FDFFFFFFFEFEFEFF
+FFFFFEFEFFFFFFFFFACAB29B6A6F748E887D5C6579D6EAF6FDF3E699776B828B9283776392ADC4
+F2ECE3946F3F73A1BAE2DBCD744A0193B7D2F8F6EC9B88747A889186756D91A6BDEBEFECB2967D
+545F607A8285A4B4CCF8FBFFFFFFFFDDC8AF736E778583766F85A1E8F3FEFFFFFFFEFEFFFFFFFF
+FFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF
+FDF9F5BFA8996D6762636973B0C6D2F7FFFFFFFFFEFEFFFFFFFFFEFDFEFFFFFFFFDBCEB2290051
+C0CED7CABD9E16376FD8E3E8CDBCA2606C7D958F866F718BDAEAF5FFFFFFE8D8CA7B747587867F
+707385D9ECF7FFFFFFFEFEFEFFFFFFFFFFFFFEFEFEFFFFFFFFF9E97B3A1EB1D2E6FFFFFFFFFFFA
+D1BBA87D7E8BA9ABA7857E7AB5CADEFFFFFFDCC8B672747A86807679869BE6F6FFFFFFFFFEFEFE
+FFFFFFFEFEFEFFFFFFE9D1AB4F575FA6ADB1988C7F9BB8CFFCFFFBC3A894808895A9A8A07F7C81
+C8DEEFFAEFDF97807B96A0A79E9586899BB1E6E6E093744A6E9BBADBD3C36C4B2999BBD3FDFFFF
+FFFFFEFEFFFFFFFFFFFFFFFFFEFEFEFFFFFFF9EFDB5F3D6BD8E5F4FFFFFFFBFDFFFFFFF8B19C6D
+7DAACDFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFF7AE88628DB3CCFFFFFF
+FFFEFFFFFFFFF5F1EDE6E5E7F4F8FBFFFFFFFFFFFFFEFBF7E9E6E4ECEDF0FFFFFFFDFBF9F3F4F4
+F5F5F6F9F8F6F6F9F9F9F7F6F4F4F4F5F6F6F7F7F7F8F7F5F8F9F9F7F6F8FFFFFDF0EBEAE3E6E7
+F2F5F8FFFFFFFAFAF8F3F3F4F7F6F7F8F9F7F3F3F4F7F8FAFFFFFFFEFAF6EBEBEAEFF4F6FEFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCF3F3F2
+F4F5F6F4F2F2F4F5F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFAF8F0EFF0F4F5F6F4F3F2
+F0F1F3FAFCFBF8F7F5F4F6F7F7F6F7F6F5F4F5F7F7FCFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF1EDE9E6E7EAF8FBFEFFFFFFFFFFFFFDFBF8ECE7E6EBEDF1FDFFFFFFFDFAF5F4F3F5F8F8
+F8F7F7F6F5F4F5F7F9FEFFFFFFFDF8EAE7E5EAEBEDFDFFFFFFFDFCF2F1F1F5F5F6F2F1F0F1F4F7
+FEFEFFFFFFFFFFFFFDF3EFEEEBECF1F9FBFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FDFDFDFDFDFDFDFDFDFDFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFDF4F2F1F3F4F5
+F4F3F1F2F5F7FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF9F9F7F3F3F4F7F7F7F8F9F7F3F3F4
+F8FAFDFFFFFFF2EEEAE6E5E7F7FBFDFFFFFFFFFEFFFFFFFEF7F3EFE9ECEDF7FAFBFFFFFFFFFFFF
+FFFFFFFFFFFFFEFFFFFFFDFAEFEBE7C7BCA140628CE7F4FDFFFFFFFEFFFFFFFFFFF1EDEBE3E6E6
+F1F5F7FEFFFFFFFFFFFFFFFDF4F0EDEAEEEFF9FBFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FDFCFAF4F3F2EAE8E6E8E9EEFCFEFFFFFFFFFFFFFCEEEAE8E4E7E8F4F7F9FEFFFFFFFFFFFCF9F6
+E6E4E4E8EDEEF9FCFEFFFDFBF6F5F4F4F6F7F7F6F6F5F5F4F5F8F9FDFEFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFFFFFFFFCFB18F628CAAF5FFFFFFFEFDFFFFFFF5E9D46B545DD3E9F4FFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFF2E8D7A7B1C4F7FBFFFFFFFFFEFEFFFFFFFF
+FFFFFFFFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFF
+FFFFFFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFEFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
+FFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFF
+FFFFF5C2AE9D6C6A677A8DA3E7EFF6FFFFFFFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFEF9
+BDADAED7E6F0FFFFFFFCFDFEFFFFFFE7E1CCB1C0D3FEFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFEFEFDFEFEFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFEFEFEFEFEFEFEFEFEFEFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEFEFEFFFFFEFEFEFEFEFEFEFEFEFEFFFFFFFFFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFEFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFEFEFEFEFEFEFEFEFEFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFF
+FEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFEFEFEFEFEFE
+FEFEFEFEFEFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFEFEFEFEFEFEFEFEFEFEFFFFFF
+FFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBFAF9F8F8F8
+F9F8F9FDFDFEFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFEFEFEFEFEFEFE
+FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFF
+FFFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFEFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFDFDFDFDFFFFFFFEFEFE
+FFFFFFFFFFFFFDFDFDFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF
+
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/doc/src/cpsa4manual/ns_skel1_cursor.pdf b/doc/src/cpsa4manual/ns_skel1_cursor.pdf
new file mode 100644
Binary files /dev/null and b/doc/src/cpsa4manual/ns_skel1_cursor.pdf differ
diff --git a/doc/src/cpsa4manual/ns_skel2.eps b/doc/src/cpsa4manual/ns_skel2.eps
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/ns_skel2.eps
@@ -0,0 +1,21524 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (/srv/www/vhosts/releases/18/save/queued/0/0/5/00573cad98342a6efcda23430723112f/intermediate1/o_f4cc552a2d9797c2.eps)
+%%CreationDate: (2015-07-14T15:13:23+02:00)
+%%BoundingBox: -0 -0 302 515
+%%HiResBoundingBox: 0 0 301.626 515
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image.  The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+  %
+  % Get a DirectClass packet.
+  %
+  % Parameters:
+  %   red.
+  %   green.
+  %   blue.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+  %
+  % Display a DirectClass image.
+  %
+  systemdict /colorimage known
+  {
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { DirectClassPacket } false 3 colorimage
+  }
+  {
+    %
+    % No colorimage operator;  convert to grayscale.
+    %
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { GrayDirectClassPacket } image
+  } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+  %
+  % Get a DirectClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   red
+  %   green
+  %   blue
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+  %
+  % Display a PseudoClass image.
+  %
+  % Parameters:
+  %   class: 0-PseudoClass or 1-Grayscale.
+  %
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  class 0 gt
+  {
+    currentfile buffer readline pop
+    token pop /depth exch def pop
+    /grays columns 8 add depth sub depth mul 8 idiv string def
+    columns rows depth
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { currentfile grays readhexstring pop } image
+  }
+  {
+    %
+    % Parameters:
+    %   colors: number of colors in the colormap.
+    %   colormap: red, green, blue color packets.
+    %
+    currentfile buffer readline pop
+    token pop /colors exch def pop
+    /colors colors 3 mul def
+    /colormap colors string def
+    currentfile colormap readhexstring pop pop
+    systemdict /colorimage known
+    {
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { PseudoClassPacket } false 3 colorimage
+    }
+    {
+      %
+      % No colorimage operator;  convert to grayscale.
+      %
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { GrayPseudoClassPacket } image
+    } ifelse
+  } ifelse
+} bind def
+
+/DisplayImage
+{
+  %
+  % Display a DirectClass or PseudoClass image.
+  %
+  % Parameters:
+  %   x & y translation.
+  %   x & y scale.
+  %   label pointsize.
+  %   image label.
+  %   image columns & rows.
+  %   class: 0-DirectClass or 1-PseudoClass.
+  %   compression: 0-none or 1-RunlengthEncoded.
+  %   hex color packets.
+  %
+  gsave
+  /buffer 512 string def
+  /byte 1 string def
+  /color_packet 3 string def
+  /pixels 768 string def
+
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  x y translate
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  currentfile buffer readline pop
+  token pop /pointsize exch def pop
+  /Times-Roman findfont pointsize scalefont setfont
+  x y scale
+  currentfile buffer readline pop
+  token pop /columns exch def
+  token pop /rows exch def pop
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  currentfile buffer readline pop
+  token pop /compression exch def pop
+  class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+  grestore
+} bind def
+%%EndProlog
+%%Page:  1 1
+%%PageBoundingBox: 0 0 302 515
+userdict begin
+DisplayImage
+0 0
+301.626 515.465
+12
+402 687
+0
+0
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C78FEF
+2717EE0017EE578FF3EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F000000000000000000000000001727476797C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB
+EFDBC8A477955F93D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB76700005FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCDF9FF09FD7F9FFFFFC
+EFD7F15717EE3787F4F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7B767000077BFFFFFFFFFF7E7B7773700003787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2BA7A538E
+5A1A8B5593D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFF7BF6F87C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5BFBFF8FFFFFFFFFFFFFFFFFF
+DF9FEE0017F0CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87000087C7FFFFFFFFFFFFFFF7BF7717000057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F77A7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C97E8B
+5593D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787000087C7FFFFFFFFFFFFFFEFC787370087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7F0
+0017F0CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000
+87C7FFFFFFFFFFFFFFFFE7A74F00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA757174FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4938B5593D3
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787000087C7FFFFFFFFDFAF5F3700000000000000000087C7FFFFFFFFEFC78F5727170000
+1727578FC7EFFFFFFFFFEFCFAF87572787C7EFCF97572717001F4F97CFF7F7D7A76F471F001727
+5FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7EF1777F3
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FF
+FFFFFFFFFFFFFFCF8F2F000057AFE7FFFFFFF7D7A76F4727170000001727476FB7DFFFFFFFFFEF
+CFAF875727779FAF6F3F1700278FCFFFFFFFFFEFC78F57271700001727578FC7EFFFFFFFF7E7BF
+9767475FA7DFDFAF6F471F0017275FAFDFFFFFEFC78F471700000000000000004FA7E7FFFFEFB7
+671F1F67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4938B5593D3FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87000087C7FFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFF7CF876797CFEFFFFFFFFFEFC78F
+3F00479FDFEFB76717170000004F8FC7E7F7FFFFEFB76F1700476FA7C7E7FFFFFFEFB76700006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8AF67EFAFE7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000077BFF7FFFFFF
+FFEFBF873700001767B7EFFFFFFFF7B76F174797D7FFFFFFFFE7AF5F001787CFFFE7A757171700
+00004F9FDFFFFFFFFFFFFFFFFFF7CF876797CFEFFFFFFFFFEFC78F3F00479FDFCF973717000000
+375F9FCFEFFFFFFFDF9F47001787CFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4938B5593D3FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000
+87C7FFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFEFB767000000000000000000000000000000
+4FA7E7FFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC78700004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BFF067B7F8FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000475F67472717000017
+27476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFEFDFB79767471F00000087C7FFFFFFFFE7A74F000087
+C7FFFFFFFFFFFFFFFFEFB7670000000000000000000000000000004FA7E7FFFFC78700004FA7E7
+FFFFFFFFFFFFC787000087C7FFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4938B5593D3FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FF
+FFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC78700004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFF28FAFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7D79F5F273F6F9FBFD7EFBF87000087C7FFFFFFFFE7A74F000087C7FFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700004FA7E7FFFFFF
+FFFFFFC787000087C7FFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4938B5593D3FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFF
+FFFFFFE7A74F000087C7FFFFFFFFFFEFB76700479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7F49797F4F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787170067B7F7FFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFF
+FFFFFFEFB76700479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFF
+C787000087C7FFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4938B5593D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767000067B7EFFFFFFFFFFFFF
+FFC777000077C7FFDFAFAFCFFFF7BF6F17174787BFE7FFFFFFFFFFFFDF9F97BFF7FFFFDF9F4F00
+0077BFFFFFFFFFFFFFD7973F003F97D7FFFFFFFFFFFFBF7700004F9FDFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7F49797F4F7FFFFFFFFFFFFFFFCF7DFF297B7F8FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76700005FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF6F00004F9FDFFFFFF7E7C78747000077C7FFFFFFFFDF9F4F000087C7FFFFFFFFFFFFFFFF
+FFF7BF6F17174787BFE7FFFFFFFFFFFFDF9F97BFF7FFFFBF7700004F9FDFFFFFFFFFFFF7B76700
+0067B7F7FFFFFFFFDFA74F004FA7DFF7C7AFBFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFECBF6F8B5585CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000004FA7E7FFFFFFE7AF
+5F2717173F87C7F7FFFFFFFFFFDFAF6F4727170000001F375F87BFDFFFE7A74F00000000000000
+0087C7E7A74F000000000000000087C7C78700000000000000004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFF7F48737EE0000EE0000EE0000EE0000EE0000EFAFEFFFFFFFEFB7671F0027579FCFF7FFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFF7
+CF974F1F00001F4F8FC7EFCF973F171F4787AD9C4F0000000000373F3F87C7FFFFFFFFFFFFFFFF
+FFDFAF6F4727170000001F375F87BFDFFFC78700000000000000004FA7E7C78700000000000000
+004FA7E7FFF7CF8F471F001F5FAFDFFFFFFFFFEFB7671F1F67B7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE9BA7A1A8B551A8B551A8B551AA8D4FFFFFFFFFFFFFFD79737003797D7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B7A7B7EFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5151F20000EE
+0000EE0000EE0000EE0000EE0000EE0000EEADADF9EFD7B7AFB7D7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1ACD4551A8B
+551A8B551A8B551A8B551A8B551A8B551A8B916BB4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5727
+1700001727578FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC7
+8F578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7BF975F3F87C7FFFFFFFFFFFFEFB7
+673767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7C79F6F475FA7E7FFFFCF976FA7D7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F779FD7EFFFFFFFEF
+D79F5717003787CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F67A7D7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78F1F1F00000087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F1F1700004FA7E7FFFFFFEFD79F5F375FAFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFBFBFEFFFFFFFFFFFFFFFFFFFDF
+9F3F001787CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F004FA7E7FFFFFFFFFFFFFFDFA74F3787CFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+1787CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F473F97D7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFCFAF87572787C7EFCF97572717001F478FC7F7FFFFFFFFFFFFDFAF5F2717173F87C7
+D7A787A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787172F8FCFFFFFFFFFFFFFFFFFEFCFAF875727779F
+AF6F3F1700278FCFFFFFF7D7A76F471F0000001F476FA7D7F7FFFFFFFFF7D7A76F472717000000
+1727476FB7DFFFFFFFFFFFFFFFC787000087C7FFFFFFFFF7E7BF975F3F87C7FFFFFFF7BF6F0000
+0000000000000000000000001767B7EFFFFFFFF7D7A76F471F0000001F476FA7D7F7FFFFFFFFFF
+FFFFDFAF6F472717001F5FAFC7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFCF87172F8FCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B76717170000004F87BFDFF7FFFFF7BF6F170057AFE7FFFFFFEFB7673F97D7FFFFFFFFEFBF7767
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF6757AFE7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F0067B7EFFFFFFFFFFFFFE7A75717170000004F9FDFFFFF
+FFFFFFFFFFE7AF6777B7E7F7FFFFFFF7E7A75F001777BFF7FFF7B76F174797D7FFFFFFFFE7AF5F
+001787CFFFFFFFFFFFFFC787000087C7FFFFFFC78F1F1F00000087C7FFFFFFE7A7779FDFFFFFFF
+FFFFF7C78737003787C7F7FFFFFFE7AF6777B7E7F7FFFFFFF7E7A75F001777BFF7FFFFF7BF6F17
+3787BFEFFFFFFFEFC79F5F3F004FA7E7FFFFFFFFFFFFFFFFFFFFE7AF57003F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFE7AF57174787B7D7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF7767B7EFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFF
+FFCF8F2F00000000000000000000000000000087C7FFFFFFFFFFFFFFEFDFB79767471F00000087
+C7FFFFFFFFFFFFC787000087C7FFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFDFA757
+171757A7DFFFFFFFFFFFCF8F2F00000000000000000000000000000087C7FFDF9F47006FBFF7FF
+FFFFFFFFFFFFCF8F2F004FA7E7FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+0087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFF7CF974F1F0000001727578FC7EFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF8FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D79F5F273F6F9FBFD7EFBF87000087C7FFFF
+FFFFFFFFC787000087C7FFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFF7C78737003787C7F7
+FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767000087C7FFFFFFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFF7E7C7A7874F1F003797D7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7CF9797C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDF9F3F0067B7EFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFCF8F2F1777
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787170067B7F7FFFFFFFFFFC787000087C7FFFFFFFFFF
+FFC787000087C7FFFFFFFFFFFFC787000087C7FFFFFFFFFFFFE7AF571700479FDFFFFFFFFFFFFF
+FFFFFFFFCF8F2F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC77700005FAFEFFFFFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFEFB767003F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F000077BFFFFFFF
+FFFFFFD7973F003F97D7FFFFFFE7A7676FB7E7F7FFFFFFFFD7973F2F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C79797C7F7FFFFFFFFFFFFFFFFF7DFA797B7EFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFCF8F2F2F8FCFFFFFFFFFFFFFFFFFFFDF9F4F000087C7FFFFFFFFFFFFFFFFDF9F47003767A7
+D7EFFFFFFFFFFFF7BF8F9FDFF7BF6F00004F9FDFFFFFF7E7C78747000077C7FFFFFFFFFFF7B767
+00005FAFEFFFFFFFFFF7B76700005FAFEFFFFFFFDFA757171757A7DFFFFFFFFFFFFFFFD7979FC7
+FFFFDF9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDFFFF7C7872F003767AFDFF7FFFFEFC79F5F3F
+0000171F5FAFE7FFFFFFFFFFFFFFCF8F2F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000087C7E7A74F
+000000000000000087C7E7A78FAFDFCF974F1F0017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+F7C787370000000000000000000000000000005FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F472F8FCFFFFFFFFFFFE7A74F0000000000373F3F87C7FFFFFFFFFFFFFFEFCF975F371F0000
+00172747679FCFF7FFFFF7CF974F1F00001F4F8FC7EFCF973F171F4787BFEFC787000000000000
+00004FA7B48700000000000000004F8C89370000000000000000000000000000000087C7FFFFFF
+FFEFCF975F371F000000172747679FCFF7FFFFFFFFFFDFB76F471F00001F478FC7D7A75F476F9F
+C7E7FFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF
+873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFA7573F87CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF
+5F375F9FD7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7
+A767475FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7
+A76F97CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5797CFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB7673767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7673767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF6F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFC787370087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7BF975F3F87
+C7FFFFFFEFCFAF87572787C7EFCF97572717001F478FC7F7FFFFFFFFFFF7E7BF975F3F87C7FFDF
+AF5F3700000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCFAF8757
+27779FAF6F3F1700278FCFFFFFF7D7A76F471F0000001F476FA7D7F7FFFFFFFFFFDFAF5F271717
+3F87C7D7A787A7E7FFFFEFD7B78F572787B7D7A76F3F170017275797CFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78F1F1F00000087C7FFEF
+B76717170000004F87BFDFF7FFFFF7BF6F170057AFE7FFFFFFC78F1F1F00000087C7FFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A75717170000004F9F
+DFFFFFFFFFFFFFFFE7AF6777B7E7F7FFFFFFF7E7A75F001777BFF7FFEFB7673F97D7FFFFFFFFEF
+BF7767A7E7E7AF5F17170000003F77BFE7FFFFFFEFC78737001767B7EFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F00
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFF
+FFFFFFFFCF8F2F00000000000000000000000000000087C7FFE7AF57174787B7D7EFFFFFFFFFFF
+FFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFF7BF6F000067B7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F00
+0087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F0000001727578FC7EFFFFF
+FFFFE7A74F000087C7FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFCF8F
+2F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A7874F1F003797D7FFFFE7
+A74F000087C7FFFFFFFFFFFFFFFFC787171787C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B76700005FAFEFFFFFFFDF9F4F000077BFFFFFFF
+FFFFFFD7973F003F97D7FFFFFFFFFFF7B76700005FAFEFFFFFFFFFC777000077C7FFDFAFAFCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F000087C7FFFFFFFFFFFFFFFFDF9F4700
+3767A7D7EFFFFFFFFFFFF7BF8F9FDFFFE7A7676FB7E7F7FFFFFFFFD7973F2F8FCFFFFFE7A74F00
+003787BFEFFFFFFFF7DFA75717479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000000476D48000000000000000087C7E7A74F
+000000000000000087C7C78700000000000000004FA7E7FFE7AF5F2717173F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000373F3F87C7FFFFFFFFFFFFFFEFCF975F37
+1F000000172747679FCFF7FFFFE7A78FAFDFCF974F1F0017275797CFF7FFFFFFE7A74F000077A7
+AF5F1F000017275797CFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F000077BFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFA0A0A0707070505050808080C0C0C0
+EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFFFB0B0FF8080FF
+4040FF8080FFA0A0FFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFEFEF505050000000000000000000000000000000000000101010
+AFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF8080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFBFBFBF101010000000000000000000000000000000000000000000000000000000
+505050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000606060
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF3030FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF3030FFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFEF101010000000000000000000000000000000000000000000000000000000000000000000
+7F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0F000000000000606060
+FFFFFFFFFFFFFFFFFFFFFFFF3F3FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF3030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF0F0F0F000000000000606060
+FFFFFFFFFFFF8F8FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000003F3F3F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF0F0F0F000000000000606060
+FFFFFF0F0FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000101010FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF0F0F0F000000000000545460
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6F000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000A8A8A8C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C09C9C9C0C0C0C0000000000000000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F0000000000000B0B0F0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFAFAFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000002F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9F9F9F0000000000000F0F0FCFCFCF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFDFDFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFEFEF0F0F0F000000000000000000000000000000000000000000
+0000000000000000000000000000000000006F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9F9F9F0000000000000F0F0FCFCFCFFFFFFF3F3FFF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF2F2FFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000000000000000000000000000000000000000000000
+0000000000000000000000001F1F1FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9F9F0000000000000F0F0FCFCFCFFFFFFFFFFFFFDFDFFF0F0FFF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000000000000000000000
+000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+0000000F0F0FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFF8F8FFF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000000000000000000000000000000000000000000000
+1F1F1FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0F0F0F0F
+CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFFF0F0FFF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0F0FFF8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFBFBFBF3F3F3F0F0F0F0000000000000000002F2F2F6F6F6FEFEFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF5F5FFF1F1FFF0000FF0000FF0000FF
+0F0FFF4F4FFFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3C3C3606060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF6060A0D1D1E1FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFFA0A0FF
+6262F12828D78080FFB0B0FFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDFB0B0B0808080202020707070A0A0A0CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF5050FF0000FF0000FF0000FF
+0000FF0000FF0000FF1010FFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F
+000000000000000000000000000000000000000000707070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFF1010FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF5050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF303030000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF303030000000000000
+000000000000000000000000000000000000000000303030CFCFCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFEFFF1010FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF7F7FFFFFFFFFFFFFFFFFFFFFEFEFEF3030300000000000002F2F2F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F3F3F000000000000000000000000
+000000000000000000000000000000000000000000303030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FFBFBFFFFFFFFFEFEFEF3030300000000000002F2F2FEFEFEFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F000000000000000000000000000000000000
+0000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCFCFFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF3F3FFFEFEFEF3030300000000000002F2F2FEFEFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0F000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF1010FF2F2F2F0000000000002F2F2FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6FFF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF000020000000242424B4B4B4C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0848484000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000009F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF000040000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000000000000000009F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+BFBFBF000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000AFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF2F2FFF9F9F9F
+0000000000000000009F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF0F0FFF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF6F6FFFFFFFFF9F9F9F
+0000000000000000009F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F3F3F
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+2F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFFF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF1F1FFFEFEFFFFFFFFFFFFFFF9F9F9F
+0000000000000000009F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF0F0F0F
+000000000000000000000000000000000000000000000000000000000000000000000000CFCFCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F
+000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F000000
+0000000000000000000000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF1F1FFFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F
+0000002F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF0F0F0F
+0000000000000000000000000000000000000000000F0F0F8F8F8FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFF3F3FFF0F0FFF0000FF0000FF
+0000FF2F2FFF6F6FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF5F5F5F
+1F1F1F0000000000000000001F1F1F4F4F4FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3C3E36060A0FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFEFBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCFCFCFA0A0A0626262282828808080B0B0B0DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF
+505050000000000000000000000000000000000000101010AFAFAFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF101010000000
+000000000000000000000000000000000000000000000000505050FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF101010000000000000000000
+0000000000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000
+000000000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000003F3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9F9F9F000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000101010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF6F6F6F000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF4F4F4F000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF7F7F7F000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+BFBFBF000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000002F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF
+0F0F0F000000000000000000000000000000000000000000000000000000000000000000000000
+0000006F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF
+0000000000000000000000000000000000000000000000000000000000000000000000001F1F1F
+EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F
+000000000000000000000000000000000000000000000000000000000000000000BFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F
+0000000000000000000000000000000000000000000000001F1F1FBFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF
+3F3F3F0F0F0F0000000000000000002F2F2F6F6F6FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFAF6F471F000000
+00004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000
+00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F2F77BFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F
+378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000000171717004FA7E7FFFFFFFFFFEFC78F57
+271700001727476FB7DFFFFFFFFFC78700000000000000000000000000000087C7FFFFFFFFFFF7
+CF975F371F0000000000004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFF7CF8F47275F9FD7F7FF
+FFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFE7A74F0000000000000000000000
+0000004FA7E7FFFFFFFFFFEFC78F5727170000001F375F97CFF7FFFFFFFFE7A74F4F97AF975727
+1700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077
+A7B76F471F000017275FAFDFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F373787BFEFFFFFFFFFFFBF77004FA7E7FFFFFFDF9F4F57A7DFF7FFFF
+FFFFEFC78F47479FDFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7A74F378F
+CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7DFEFBF773F3F87C7EFFFFFFFFFFFFFFFDF
+9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F1767B7EFFFFFE7A74F0017478FCFEFFFFFF7
+C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AF
+DFFFFFFFDFA74F006FBFF7FFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFCF8F2F4FA7DFFFFFFFFFFFFFFFC787004FA7E7FFFFE7A74F00000000000000000000
+0000000087C7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFD79F471F3F5F8F
+A7BFD7EFF7FFFFFFFFFFFFFFFFFFC787003747471F378FCFFFFFFFFFFFFFFFFFFFFFE7A74F0000
+00000000000000000000000087C7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFE7
+A74F000000000000000000000000000087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFC787004FA7E7FFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7BFA78F5F
+3F1F3F8FCFF7FFFFFFFFFFC787004FA7D7C787373787C7F7FFFFFFFFFFFFFFE7A74F3F9FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFE7A74F3F
+9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFDF
+9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B767004F9FDFFFFFFFDFAF673F17174FA7E7FFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F37
+4FA7E7FFFFFFFFFFC787004FA7E7FFFFDFA7571F57A7DFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFCF8F2F2F67AF
+DFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFCF8F2F
+3777B7E7FFFFFFFFEFBF87371777BFF7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB7
+6F3F1700001F4787BFCFA74F4FA7E7FFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFC787000000000000001727476FA7D7F7FF
+FFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757A7DFFFFFFFFFF7D7A76F4727170000000000
+000087C7FFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFFFF7D7A76F47271700
+00000000000087C7FFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFF7D7A76F47
+271700001727476FA7D7F7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FF
+FFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A7
+6F471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF973F5FAFE7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF6F6FAFDFF7
+FFFFFFDF9F4F00479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFDF9F471787C7FFFFFFFFFFFFFFFFE7A74F1777BFF7FFFFFFC7870000000000
+000017275797CFF7FFFFFFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFFFFDFB7
+6F47271700000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFF
+FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000
+0000000000000000004FA7E7FFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFDFA757
+1F57AFE7FFFFFFFFFFDFA7571F57A7DFFFFFC78700000000000000000000000000000087C7FFFF
+FFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F
+476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F47
+1F00001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97
+AF9757271700001F478FC7F7FFFFFFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFE7A7
+4F4F97A7873F171757A7C7AF5F1F001F6FB7EFFFFFFFFFEFC78F57271700001727476FB7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFEFAF5F1787C7FFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+D7973F3F9FDFFFFFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFFFC7870067AFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFF
+FFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFEFB7671F
+57A7DFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFF
+DF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCF
+EFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFE7A74F0017
+67AFE7C7870000378FCFDFA74F0087C7FFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFF7BF771F77BFF7FFFFFFDF9F47479FDFFFFFFFFFFFFFDFB76F47271700000000000000
+0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAF
+CFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFEFC787373787C7F7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFFFFFF7C7873F3F
+3F3F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F00000000000000004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA7
+4F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFF7CF975F371F00000000000000004FA7E7FFFFE7A74F0077C7FFFF
+C787004FA7DFFFE7A74F0087C7FFE7A74F000000000000000000000000000087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F3777BFF7FFDF9F475FAFEFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F
+1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFEFBF77373777BFEFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7874F676F573F
+87CFF7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A7
+4F0087C7FFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFE7A74F0087C7FFFFC78700
+4FA7E7FFE7A74F0087C7FFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDF9F476FBFD79F578FCFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFC787
+000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFDFAF5F273F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFF
+FFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573777C7F7FFDFA74F3787
+C7F7FFFFFFFFFFFFFFFFFFDF9F3F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+4F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F
+9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087
+C7FFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFE7A74F0087C7FFFFC787004FA7E7
+FFE7A74F0087C7FFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+AF674F4F679FDFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFC787000000000000000000
+000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFF
+FFF7D7A76F4727170000000000000087C7FFFFFFF7C787372F77C7F7FFFFFFFFFFDFA74F1757A7
+DFFFFFFFFFFFFFFFFFF7CF97572717000000000087C7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDF
+FFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F000000001F375F8FC7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFE7A74F0087C7FFFFC787004FA7E7FFE7A7
+4F0087C7FFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFAF6F471F00000000004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+6F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7CF8F5F87C7F7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F
+6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00000000000017275787BFDFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A787572717004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFF7
+C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017
+275797CFF7FFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D797471787CFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F5F97BFC79F4F004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7
+772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F5F8FC7EFFFFFFFEFBF772F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5F8FC7EFFFFFFFEFBF772F
+1777BFF7FFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7
+772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFF7D7A76F471F0000001F375F97
+CFF7FFFFFFFFC78700000000000000000000000000000087C7FFFFFFFFFFFFDFB76F4727170000
+0000000087C7FFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFFFFC7870077AF
+C78F57271700001F478FC7F7FFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFFFE7A74F
+4F97AF9757271700001F478FC7F7FFFFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFF
+FFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFC7870000000000000087C7
+FFFFFFFFFFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF873F57AFE7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC7
+870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478F
+C7F7FFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F479FDFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000
+000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+00000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFC7870077A7BF8F5727170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+EFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BF
+F7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700174787BFE7
+F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFE7A74F001747
+8FCFEFFFFFF7C7772F3F9FDFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000027579FCFEFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC7870000
+3767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8F
+CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F479FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+D7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+C78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8F
+CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFEFB76700
+77C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFC78700000000000000000000000000004FA7E7FFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7CF975F371F00000000000000004FA7E7FFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFA75717479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFDF
+A7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F47271700000000000000
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000
+000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFDFA74F0087C7FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFF7D79F571F579FD7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFF7D79F571F579FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFF
+EFCF8F4F1F170087C7FFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFF
+FFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+F7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFCF9F571F67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C7873F275FA7DFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFF7C7873F275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFF
+FFEFD7974F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077
+BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F000017275F9F
+D7B7870087C7FFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFF
+FFDFB76F471F00000000004FA7E7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7CF9757271700001F47679FAF974F4FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFC787004FA7E7FFFFFFFF
+FFFFC787004FA7E7FFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFFFFFFFFFDF
+B76F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0000000000001F375F87B7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004F
+A7E7FFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFC7870000000000
+00000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F000000000000000000000000000087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A7
+4F0087C7FFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFF7BF77
+1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFF
+FFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFDFAF67472717000000172747
+6FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F0000
+00001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFAF6F471F00000000004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFF7C7773757A7DF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+D7B79767471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F000087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFCF8F5F8FC7EFFFFFFFEFBF772F1777BFF7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF6F6FAFDFF7FFFFFFDF9F4F00479FDFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFCF8F5F8FC7EFFFFFFFEFBF772F1777BFF7FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AF
+D7B777000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+D7A76F471F000000001717170087C7FFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFF
+C78700000000000000000000000000000087C7FFFFFFFFFFFFDFB76F47271700000000000087C7
+FFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFFFFC7870077AFC78F57271700
+001F478FC7F7FFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFFFE7A74F4F97AF975727
+1700001F478FC7F7FFFFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077AFC78F57271700001F478FC7F7FFFFFFFF
+FFEFC78F57271700001727476FB7DFFFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFF
+FFFFFFC7870077AFBF874727170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F
+471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFC787
+000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97
+AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F471F00001F476F
+B7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F471F00
+001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F000000000000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC7870000000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F57A7
+DFF7FFFFFFFFDF9F4F0087C7FFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700174787BFE7F7FFFFFFCF87
+2F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFE7A74F0017478FCFEFFFFFF7
+C7772F3F9FDFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFDF9F4F57
+A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFF
+FFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F1777BFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7C7772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFFC787000087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCF
+EFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F
+4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB767006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFEFB7670077C7FFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7CF975F371F00000000000000004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000
+00000000000000000087C7FFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFEFC787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F
+9FDFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F0000
+0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F
+472717000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+DFA74F0087C7FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFF7
+BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFC787004FA7E7
+FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7D79F571F579FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFEFBF77373777BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFF7D79F57
+1F579FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47004F9FDFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F17
+0087C7FFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFF7BF6F00
+4F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB76700
+3F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+CF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFC787004F9FDFFFFFFF
+FFEFD7974F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F
+275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFDFAF5F273F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFF7C7873F275FA7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F00
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7
+B7773F170087C7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F000017275F9FD7B7870087C7
+FFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFDFB76F471F
+00000000004FA7E7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF97572717
+00001F47679FAF974F4FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFF7CF
+974F1F000017275F9FD7B7870087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000000000000087
+C7FFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFC78700000000000000172747
+6FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000
+00000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFF
+C78700000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7A74F0000000000000000000000
+00000087C7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFEFC78F5F371F000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F
+770087C7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77
+1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA757
+1F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78757
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFF
+FFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78737
+3787C7F7FFFFFFFFFFFFFFFFF7E7C7A787572717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFF
+FFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFF7E7C7A787572717004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F
+000087C7FFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFF
+FFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7E7C7A787572717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFDF9F472F
+6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F472F6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFF
+FFFFFFFFFFFFFFFFCF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFF
+F7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFCF8F4F5F97BFC79F4F004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777000087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFDF9F472F
+6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B79F6737
+1F00001F476FB7DFFFFFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFFFFF7D7A7
+6F471F0000001F375F97CFF7FFFFFFFFFFFFFFFFEFC78F5F371F00000000000087C7FFFFFFFFFF
+FFEFC78F57271700001727476FB7DFFFFFFFFFFFFFFFFFEFC78F572717000000171717004FA7E7
+FFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFFFFFF7CF975F371F0000000000004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFF
+FFFFFFEFC7873F170057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3F
+9FDFFFFFFFFFFFEFC7873F170057AFE7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC7873F170057AFE7FFFFFFFFFFFFFFFFFFFFDF
+9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFF
+FFFFFFEFC7873F170057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFF
+DF9F4F1777BFF7FFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFF7BF773F87BFEFFF
+FFFFFFF7E7AF671F77BFF7FFFFFFFFCF8F372F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F4F57
+A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFCF8F373787BFEFFFFFFFFFFFBF77004FA7E7FFFFFF
+DF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F
+375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFF
+F7D79F5F375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F
+375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA7
+4F3F9FDFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000
+00000000004FA7E7FFFFFFCF87174FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000
+00000000000000000087C7FFFFFFCF8F2F4FA7DFFFFFFFFFFFFFFFC787004FA7E7FFFFE7A74F00
+0000000000000000000000000087C7FFFFFFFFFFD79F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFEFB7670077AFBF77474787C7EFFFFF
+E7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670077AFBF77474787
+C7EFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7670077AFBF77474787C7EFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFEFB7670077AFBF77474787C7EFFFFF
+E7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7
+DFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFE7A74F3F9FDFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7BFA78F5F3F1F3F8FCFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFFC78717
+67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFFFFFFFF
+FFC7871767B7EFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF
+8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFFC78717
+67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFFFFFFFFFFFE7B76F2F479FDFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7BF77173777B7E7F7FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFDFAF673F17174FA7E7FFFFFFCF8F2F2F67AFDFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F374FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFFFFEFD7974F1767B7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFFFFEFD7974F17
+67B7EFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37
+4F97D7EFFFFFFFEFD7974F1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFFFFEFD7974F1767B7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFF
+FFFFFFFFF7D7A76F47271700000000000087C7FFFFFFFFFFF7D7A76F4727170000000000000087
+C7FFFFFFFFFFFFDFB76F3F1700001F4787BFCFA74F4FA7E7FFFFFFFFF7D7A76F47271700000000
+00000087C7FFFFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F0000001F476FA7D7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F00000000000000
+00000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F47
+1F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFDF
+9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000087C7
+FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA757
+1F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78737
+3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78757
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F57
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67
+AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F57
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78737
+3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478F
+C7F7FFFFFFFFFFFFEFC78F5727170000001F375F97CFF7FFFFFFFFFFE7A74F4F97AF9757271700
+001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F
+0000001727476FB7DFFFFFFFFFFFFFFFC7870077AFC78F57271700001F478FC7F7FFFFFFFFC787
+0000000000000087C7FFFFFFFFFFFFFFFFFFFFFFEFC78F5727170000000000000000004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFF
+FFFFFFFFFFC7870077AFBF874727170017275797CFF7FFFFFFFFFFC7870077AFC78F5727170000
+1F478FC7F7FFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFF7BF77174FA7E7FFFFFFFF
+FFFFFFFFC78717479FDFFFFFFFC787004FA7E7FFFFFFF7CF8F47275F9FD7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFFFFF
+FFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B79F67371F00001F476F
+B7DFFFFFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFFE7A74F0000000000004F
+A7E7FFFFFFFFFFFFFFDF9F471787C7FFFFFFFFFFFFFFFFE7A74F1777BFF7FFFFE7A74F0087C7FF
+FFFFFFDFB7673F3F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+77A7BF8F5727170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDF
+FFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F1767B7EFFFFFFFE7A74F0017478FCFEFFFFFF7C777
+2F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767174F97D7EFFFFFFF
+FFE7B76F2F3797D7FFFFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFC78700174787BFE7F7FFFFFFCF872F
+4FA7E7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFFFFFF7
+BF77175FAFEFFFFFFFFFC787004FA7DFEFBF773F3F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFF
+FFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BF
+F7FFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFEFAF5F1787C7FFFFFFFFFFFFDF9F472F8FCFFFFFFFFFE7A74F0087C7F7D79F57
+275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767
+AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFDF
+9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFC7870000000000000000004FA7E7FFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFF
+CF8F2F4FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFFFDF9F4F0067B7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFDF9F47479FDFFFFFFFF7BF771F77
+BFF7FFFFFFFFFFC787003747471F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFF7BF771F77BFF7FFFFFFDF9F47479FDFFFFFFFFFFFE7A74F003F47471767AFEFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFDF9F3F3F
+9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F
+4FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFDF9F4F2737271700001727578FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFEFAF5F479FDFFFF7BF77378FCFFFFFFF
+FFFFFFFFC787004FA7D7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFCF8F3777BFF7FFDF9F475FAFEFFFFFFFFFFFFFE7A74F0087BFDFA7571F57A7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+F7BF6F0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFCF8F2F3777B7
+E7FFFFFFFFEFBF87371777BFF7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F17579FD7EFFFFFFFF7DFA75717479FDFFF
+FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFCF871767AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFF
+FFFFFFEFD7974F1777BFF7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77479FCFBF7767AFEFFFFFFFFFFFFFFF
+FFC787004FA7E7FFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC777006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFFFFFFFFFFFE7B76F2F479FDFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFDF9F476FBFD79F578FCFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFF7C787373787C7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F17
+77BFF7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFF7D7A76F47271700
+001727476FA7D7F7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F0000001F375F8FC7EFFFFFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000087C7
+FFFFFFFFD7973700000000000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFC7870000000000000017
+27476FA7D7F7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000
+0000000000000000000087C7FFFFFFFFFFFFFFFFCF8F574F4F77BFF7FFFFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFF7C787371757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFF
+EFAF674F4F679FDFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFDFA757173787C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF674727170000001727476FA7D7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+BF77174FA7DFFFFFFFFFFFFFFFE7AF5F0057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5700
+4F9FDFF7FFFFFFFFFFEFBF772F1787C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727
+170000000017275787AFD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F57
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD797
+3F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F
+97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A787572717004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F5F97BFC79F4F004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+E7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFE7A74F0000000000004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFEFC78F5727170000001F373F375FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001727476FB7DFFFFFFFFFFFFFC7870077AFC78F57
+271700001F478FC7F7FFFFFFFFE7A74F0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFEFC78F57
+27170000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F
+0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFCF8F373787BFEFFFFFFFFFFFBF77004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB767174F97D7EFFFFFFFFFE7B76F2F3797D7FFFFFFFFC78700174787BFE7F7FFFF
+FFCF872F4FA7E7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFEFB767004F9FDFFFFF
+FFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000
+3767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFCF8F
+2F4FA7DFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFC7870000000000000000004FA7E7FFFFFF
+FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFFFDF
+9F4F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFDF9F4F2737271700001727578FC7
+EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFEFB767005FAFE7FFFFF7DFA75717000087C7FFFFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFEFB767004F9FDFFF
+FFFFDFAF673700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F17
+579FD7EFFFFFFFF7DFA75717479FDFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFCF871767AFEFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFF7CF974F1F00001727578FBFA7770087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFDFB76F3F1700001F47
+6FB7A777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F37
+1F0000001F375F8FC7EFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+000000000000000000000000004FA7E7FFFFFFD7973700000000000000000017275797CFF7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004F
+A7E7FFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFF7BF771767
+B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77174FA7DFFFFFFFFFFFFFFFE7AF5F0057AFE7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7AF57004F9FDFF7FFFFFFFFFFEFBF772F1787C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7D7A76F4727170000000017275787AFD7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F
+5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F
+1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFCF973F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF973F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F57271700001727
+5797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5727
+17000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFF
+FFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7E7C7A787572717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFF7D7A76F
+471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFD7B79767471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5F8FC7EFFFFFFFEFBF772F17
+77BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFF
+FFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF6F6FAFDFF7FFFFFFDF9F4F00479FDFFFFFFFFFFFFFFF
+FFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFCF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFF7BF6F174F97D7EFFF
+FFFFEFD7974F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87
+AFD7B777000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5727170000001F375F97CFF7FFFFFFFFE7A74F4F97B7
+9F67371F00001F476FB7DFFFFFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFFFFF
+C7870077AFC78F57271700001F478FC7F7FFFFFFFFE7A74F000000000000001F476FB7DFFFFFFF
+FFE7A74F00000000000000000000000000004FA7E7FFFFFFFFC7870000000000000087C7FFFFFF
+FFFFFFFFFFFFFFFFEFC78F5727170000001F375F97CFF7FFFFFFFFE7A74F4F97AF975727170000
+1F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F
+471F000017275FAFDFFFFFFFFFFFFFF7D7A76F471F0000001727476FB7DFFFFFFFFFFFFFC78700
+77A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFEFC78F5F371F00000000000087C7FFFFFFFF
+FFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC78700000000000000000000000000000087C7FFFFFFFFFFFFEFC78F5727170000172747
+6FB7DFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFE7A74F0000000000000000
+0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F47271700000000004FA7E7FFFFFFFFFF
+EFC78F5727170000001F375F97CFF7FFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFF
+FFE7A74F00000000000000000000000000004FA7E7FFFFFFFFC7870077AFC78F57271700001F47
+8FC7F7FFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFFFFFFFF7D7A76F4727170000
+0000004FA7E7FFFFFFC78700000000000000000000000000000087C7FFFFFFFFFFF7D7A76F471F
+0000001F375F97CFF7FFFFFFFFFFFFFFEFC78F572717000000171717004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC787
+3F170057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F
+000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFFFFDF
+A75F1F001787CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F1767B7EFFFFFE7A74F0017478FC7EF
+FFFFFFDF9F4F1777BFF7FFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFC78700
+174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F1767B7EFFFFFE7A74F0017478FCFEFFFFFF7C7772F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFF
+FFDFA74F006FBFF7FFFFEFB767174F97D7EFFFFFFFFFE7B76F2F3797D7FFFFFFFFC78700003767
+AFDFFFFFFFDFA74F006FBFF7FFFFFFFFCF8F372F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77
+3F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F4747
+9FDFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB76717478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFCF8F372F6F
+B7E7FFFFFFFFEFD7974F1767B7EFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFEFB76717478FC7EFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFF7BF773F87BFEFFFFFFFFF
+F7E7AF671F77BFF7FFFFFFCF8F373787BFEFFFFFFFFFFFBF77004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F479FDFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDF
+A74F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFF
+FFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFEFBF77474777BFAF
+770067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFF
+FFDFA74F3F9FDFFFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F00000000000000004FA7E7FFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFDF
+9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC7
+87004FA7E7FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFC787004FA7E7FFFFFF
+FFFFFFC787004FA7E7FFFFFFCF87174FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000
+000000000000000000004FA7E7FFFFFFFFFFE7A74F00000000000000000087C7FFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FF
+FFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7AF570077C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFEFB7670087C7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFB76F472717000000000000000087C7FFFFFFE7AF570077C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000
+00004FA7E7FFFFCF8F2F4FA7DFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFF
+E7A74F00000000000000000087C7FFFFFFFFEFB7670077AFBF77474787C7EFFFFFE7A74F2F8FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFEFC787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFCF8F2F4F97B79F5F375FA7DFFFFFFFC7870067
+B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F
+3F4FA7DFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFDF9F3F3F
+9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004F
+A7E7FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFF
+C787004FA7E7FFFFFFC787004FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFF
+FFFFEFB7670087C7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47
+004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFF7D79F571F579FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFEFBF77373777BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFE7
+A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFE7AF5700173F87C7EFFFFFFFFFFFE7A74F2F8FCFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F2F3777B7E7FFFFFFFFEFBF87371777BFF7FFFFE7A74F0077BFFFFFFFFFFFE7B76F2F479FDF
+FFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFFFFF7BF6F004F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFCF8F2F3777B7
+E7FFFFFFFFEFBF87371777BFF7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FF
+FFEFAF5F17579FD7EFFFFFFFF7DFA75717479FDFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC78700
+4FA7E7FFFFFFF7BF77173777B7E7F7FFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F
+77BFEFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFDF9F4717579FCFEFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFFFFFFEFBF87
+371777BFF7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFF7BF6F004F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7
+F7FFFFF7E7B7773F170087C7FFFFFFFFDF9F4717579FCFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F3F2F77BFEFFFFFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB767004F9FDFFFFFFFDFAF673F17174FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFF7C7873F275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFFFFEFD7974F1767B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFF
+FFDFAF5F273F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFE7A74F00
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767376FB7E7FFFFFFFFE7B76F2F378FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7D7
+A76F47271700001727476FA7D7F7FFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFF
+FFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFFFFFFFFFFFFFFDFB76F471F0000
+0000004FA7E7FFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFF7D7A76F47271700
+001727476FA7D7F7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFF
+EFC78F5F371F0000001F375F8FC7EFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFF7D7A76F47271700000000000087C7FFFFFFFFFFFFEFC78F5F371F00000000000000
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF97572717
+000000000087C7FFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFE7A74F00000000
+0000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFC78F5F371F0000000000004FA7E7FFFFFFFFF7D7A76F47271700001727476FA7D7F7
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFDFB76F471F0000
+0000004FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017
+275787B79F770087C7FFFFFFFFFFFFEFC78F5F371F0000000000004FA7E7FFFFFFFFFFFFFFFFFF
+F7CF97572717000000000087C7FFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFF
+DFB76F3F1700001F4787BFCFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFC78700
+000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F00000000000000000000
+00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001727578FC7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFF
+FFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA757
+3F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5F
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5F
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFD7B79767471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F
+0000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787
+C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F000087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787
+C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7
+773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37
+479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFAF674F87AFD7B777000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF6F6FAFDFF7FFFFFF
+DF9F4F00479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C777
+2F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFFFC7870077A7B76F
+471F000017275FAFDFFFFFFFFFFFFFFFFFEFC78F5F371F00000000000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFF
+FFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFC7870077AFBF874727170017275797CFF7FFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFC7
+87004FA7E7FFFFFFF7CF8F47275F9FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F
+0000001F375F97CFF7FFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFF
+EFC78F5F371F00000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000172757
+97CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFC7870077AFBF874727170017275797CFF7FFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFF7CF8F47275F9FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC7870077A7BF8F5727170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFF
+FFFFFFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFC78700003767AFDFFFFF
+FFDFA74F006FBFF7FFFFFFFFCF8F372F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFF
+FFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F1777BF
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFC787004F
+A7DFEFBF773F3F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFF7BF773F87BFEFFFFFFFFF
+F7E7AF671F77BFF7FFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFCF8F372F67
+AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFC787004F
+A7DFEFBF773F3F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+8700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC78700000000000000000000000000004FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFFC7
+87004FA7E7FFFFFFCF87174FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFEFC787373787C7F7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFC787003747471F
+378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF97
+5F371F00000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000
+00004FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFCF87174FA7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFC787003747471F
+378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004F
+A7E7FFFFFFC787004FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFC787
+000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFEFBF77373777BFEFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFC787004FA7D7C7873737
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFC787004FA7DFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFC787004FA7D7C7873737
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFEFAF
+5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FF
+FFFFF7BF77173777B7E7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFC787000087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFDFAF5F273F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+C787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFEFB767005FAFE7FFFFF7DFA75717000087C7
+FFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFC787004FA7E7FFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEF
+CF9F5F1F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFF7BF77173777B7E7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+C787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFEFB767005FAFE7FFFFF7DFA75717000087C7
+FFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFFFC787004FA7E7FFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFF
+EFD7974F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F
+5F371F000000000000004FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFF7D7A76F47271700000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFC787000000000000000000000000
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC78700
+0000000000001727476FA7D7F7FFFFFFFFFFFFF7CF974F1F00001727578FBFA7770087C7FFFFFF
+FFEFC78F5F371F000000001F375F8FC7EFFFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF
+974F4FA7E7FFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7D7A76F47271700000000000087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC78700
+0000000000001727476FA7D7F7FFFFFFFFFFFFF7CF974F1F00001727578FBFA7770087C7FFFFFF
+EFC78F5F371F000000001F375F8FC7EFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF674727170000001727476F
+A7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78737
+3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67
+AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F
+5F87C7F7FFFFFFFFFFFFE7A74F0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFF
+FFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF6F6FAFDFF7FFFFFFDF9F4F00479FDFFFFFFFFFFFFFFF
+FFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFC7870000000000000017275797CFF7FF
+FFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFFFFEFC78F5727170000172747
+6FB7DFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFF
+FFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F4747
+9FDFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFE7A74F000000000000000000000000000087C7FF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFC787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFBF77373777BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFE7A74F0077BFF7FF
+FFFFFFE7B76F2F479FDFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFAF5F273F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000
+004FA7E7FFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFEFC78F5F371F000000001F
+375F8FC7EFFFFFFFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFE7A74F00000000
+00000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B797
+67471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777
+000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B7
+9F67371F00001F476FB7DFFFFFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFFFFFE7
+A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFF
+FFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFE7A74F0000000000000000000000000000
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EF
+FFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFE7A74F00
+3767A7CFEFFFFFFFE7AF5F0087C7FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFC7
+8700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFDFA74F3F9FDFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFC787004F
+A7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F
+3F4FA7DFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFFFFFFFFFFFE7B76F2F479FDF
+FFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFF
+FFE7B76F471F000017275787B79F770087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFC787004FA7E7FFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFFFF
+FFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671F6FBFF7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C777
+2F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787
+578FCFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFE7A74F4F97B7A7
+6F471F000017275FAFDFFFFFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFFFE7A74F
+000000000000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFC7870000000000000087C7FFFFFFFFFFFFFFFFFFFFC78700000000000000000000001767B7EF
+FFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFFFFFFFF7D7A76F471F000000001717
+170087C7FFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFE7A74F003767A7CFEFFF
+FFFFE7AF5F0087C7FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB767006FBFF7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA76F87C7F7FFFFFFFFFF
+F7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087
+C7FFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFF7CF975F371F000000
+00000000004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78767A7DFFFFFFFFFFFFFFFFFC78700
+000000000000000000000000004FA7E7FFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA75F5FA7DFFFFFFFFFFFFFFFFFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767005FAFE7FFFFF7DFA75717000087C7FFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004F
+A7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFDFA76F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F00001727578FBFA7770087C7FFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7D7A76F4727170000000000000087C7FFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FF
+FFFFFFE7A74F0000000000000000000000000087C7FFFFFFE7A74F000000000000000000000000
+0087C7FFFFFFF7CF873700000000000000000000000087C7FFFFFFFFFFEFC78F5F371F00000000
+0000004FA7E7FFFFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFFFFFFFFFFFFF
+F7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F0000000000004FA7E7FF
+FFFFFFE7A74F2F77A7A76F3F1700001F478FC7F7FFFFFFFFFFFFFFC78700000000000000172757
+97CFF7FFFFFFFFFFC7870077AFBF874727170017275797CFF7FFFFFFFFFFFFEFC78F5727170000
+1727476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F00173F87C7EFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9F
+DFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC7
+8F47479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFD79F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFDFB76F472717000000000000000087C7FFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFE7A74F0000000000000000000000000000
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7BFA78F5F3F1F3F8FCFF7FFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F374FA7E7FFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFC787004F
+9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFF
+FFFFFFFFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFC7870000000000
+00001727476FA7D7F7FFFFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87
+C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFFFF
+FFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C77737
+57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A787572717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+D7B79767471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F47
+6FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFFF
+DFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFF7BF6F174F97D7EFFFFFFFEFD7974F378FCFFFFFFFFFFFFFFFFFFF
+F7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671F6FBFF7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AF
+D7B777000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF6F6FAFDFF7FFFFFFDF9F4F0047
+9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFCF8F5F8FC7EFFFFFFFEFBF772F1777BFF7FFFFFFFFFFFFFFFFFFFFDF
+A74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F479FDFFFFFFFFFFFFFFFFFFFFFC7870077A7AF5F1F003787BFBF873F17173F97D7FFFFFFFFC7
+870000000000000017275797CFF7FFFFFFFFFFE7A74F4F97B79F67371F00001F476FB7DFFFFFFF
+FFFFFFFFDFB76F47271700000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFFFFDFA75F1F001787CFFFFFFFFFFFFFFFFFFFFFDF
+9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F000000000000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDF
+FFFFFFFFFFFFFFFFFFFFFFC7870077A7BF8F5727170017275797CFF7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFFFF
+FFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFC787
+000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFF
+C7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478F
+C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFF7BF77
+175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFC7870000378FCFDFA74F001767AFE7C787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFD7973F3F9FDFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFF
+C7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFCF8F2F4FA7E7FFFFEFBF77474777BFAF770067B7EFFFFFFFFFFFFFFFFFFFFFDF9F3F
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F
+9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFF
+FFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFF
+FFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FF
+FFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFC787000087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F1777BFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067
+B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFC787004FA7DFFFE7A74F0077C7FFFFC787004FA7E7FFFFFFDFB76F47271700
+0000000000000087C7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFEFBF6F
+371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFCF8F2F4F97B79F5F375FA7DFFFFFFFC7870067B7EFFFFFFFFFFFFFFFFFFFFFFFC7770087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F37
+1F00000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+B76F472717000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFF
+FFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFEFC787373787C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFE7A74F0087C7FFFFC787004FA7E7FFDF9F47004F9FDFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFF7E7
+CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFE7
+AF5700173F87C7EFFFFFFFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47004F9F
+DFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFFFFFFFFFC777
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFEFBF77373777BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFF7D79F571F579FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFE7A74F0087C7FFFFC787004FA7E7FFCF8F2F0067B7F7FFFFF7E7B7773F17
+0087C7FFFFFFFFE7A74F0077BFFFFFFFFFFFE7B76F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767
+376FB7E7FFFFFFFFE7B76F2F378FCFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F
+5F1F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFF
+F7E7B7773F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+C787004FA7E7FFFFFFFFDFAF5F273F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFF7C7873F
+275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFE7A74F0087C7FFFFC787004FA7E7FFFFE7B76F471F000017275787B79F770087C7
+FFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFE7A74F000000000000001F375F
+8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757
+271700001727578FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF974F
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787
+B79F770087C7FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFDFAF6747
+27170000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFC78F5F371F000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFE7A74F000000000000
+0000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC78700
+4FA7E7FFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7A74F0000000000
+00000000000000000087C7FFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F
+57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F
+000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFF
+FFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777000087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671F6FBFF7FFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFF
+FFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFC78F5727170000001F375F97CFF7FFFFFFFFFFE7A74F4F97B7A76F
+471F000017275FAFDFFFFFFFFFFFE7A74F0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFF7D7A7
+6F471F0000000000000000000087C7FFFFFFFFDFB76F47271700000000000087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDF
+FFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC7873F170057AFE7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC7873F170057AFE7FFFFFFFFFF
+FFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F1767B7EFFFFFFFE7A74F003767A7CFEFFFFF
+FFE7AF5F0087C7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFCF8F2F2F77BFEF
+FFFFFFEFBF772F479FDFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFF
+FFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFFF
+EFBF772F2F8FCFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFF
+FFFFFFEFB7670077AFBF77474787C7EFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB7670077AFBF77474787C7EFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFF
+FFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFDF
+9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFF7BF773737371F0000001F476F
+A7D7F7FFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFFFFFFFFFFFFFFFFFFFFFFC777
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F
+3777B7E7FFFFFFFFEFBF87371777BFF7FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFE7AF57378FCFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF
+8F374F97D7EFFFFFFFEFD7974F1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F374F97D7EFFFFFFFEFD7974F1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+4F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F47
+271700001727476FA7D7F7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87000000000000000000000000004FA7E7FFFFFFEFB767000000000000000000001F476FB7DFFF
+FFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB7
+6F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F77C7F7FFFFFFFFFFFFFFCF872F1787CFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF87172F77BFEFFFFFFFFFFFF7DF9F4F004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F00000000001F476797C7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF
+
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/doc/src/cpsa4manual/ns_skel2.pdf b/doc/src/cpsa4manual/ns_skel2.pdf
new file mode 100644
Binary files /dev/null and b/doc/src/cpsa4manual/ns_skel2.pdf differ
diff --git a/doc/src/cpsa4manual/ns_skel2_cursor.pdf b/doc/src/cpsa4manual/ns_skel2_cursor.pdf
new file mode 100644
Binary files /dev/null and b/doc/src/cpsa4manual/ns_skel2_cursor.pdf differ
diff --git a/doc/src/cpsa4manual/ns_skel4.eps b/doc/src/cpsa4manual/ns_skel4.eps
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/ns_skel4.eps
@@ -0,0 +1,20867 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (/srv/www/vhosts/releases/17/save/queued/7/4/6/7469114e75a64d786c4bbfebb51c48de/intermediate1/o_fe4358728b18407b.eps)
+%%CreationDate: (2015-07-14T15:09:53+02:00)
+%%BoundingBox: -0 -0 292 516
+%%HiResBoundingBox: 0 0 291.78 516
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image.  The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+  %
+  % Get a DirectClass packet.
+  %
+  % Parameters:
+  %   red.
+  %   green.
+  %   blue.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+  %
+  % Display a DirectClass image.
+  %
+  systemdict /colorimage known
+  {
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { DirectClassPacket } false 3 colorimage
+  }
+  {
+    %
+    % No colorimage operator;  convert to grayscale.
+    %
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { GrayDirectClassPacket } image
+  } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+  %
+  % Get a DirectClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   red
+  %   green
+  %   blue
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+  %
+  % Display a PseudoClass image.
+  %
+  % Parameters:
+  %   class: 0-PseudoClass or 1-Grayscale.
+  %
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  class 0 gt
+  {
+    currentfile buffer readline pop
+    token pop /depth exch def pop
+    /grays columns 8 add depth sub depth mul 8 idiv string def
+    columns rows depth
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { currentfile grays readhexstring pop } image
+  }
+  {
+    %
+    % Parameters:
+    %   colors: number of colors in the colormap.
+    %   colormap: red, green, blue color packets.
+    %
+    currentfile buffer readline pop
+    token pop /colors exch def pop
+    /colors colors 3 mul def
+    /colormap colors string def
+    currentfile colormap readhexstring pop pop
+    systemdict /colorimage known
+    {
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { PseudoClassPacket } false 3 colorimage
+    }
+    {
+      %
+      % No colorimage operator;  convert to grayscale.
+      %
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { GrayPseudoClassPacket } image
+    } ifelse
+  } ifelse
+} bind def
+
+/DisplayImage
+{
+  %
+  % Display a DirectClass or PseudoClass image.
+  %
+  % Parameters:
+  %   x & y translation.
+  %   x & y scale.
+  %   label pointsize.
+  %   image label.
+  %   image columns & rows.
+  %   class: 0-DirectClass or 1-PseudoClass.
+  %   compression: 0-none or 1-RunlengthEncoded.
+  %   hex color packets.
+  %
+  gsave
+  /buffer 512 string def
+  /byte 1 string def
+  /color_packet 3 string def
+  /pixels 768 string def
+
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  x y translate
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  currentfile buffer readline pop
+  token pop /pointsize exch def pop
+  /Times-Roman findfont pointsize scalefont setfont
+  x y scale
+  currentfile buffer readline pop
+  token pop /columns exch def
+  token pop /rows exch def pop
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  currentfile buffer readline pop
+  token pop /compression exch def pop
+  class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+  grestore
+} bind def
+%%EndProlog
+%%Page:  1 1
+%%PageBoundingBox: 0 0 292 516
+userdict begin
+DisplayImage
+0 0
+291.78 516.054
+12
+389 688
+0
+0
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000
+000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF944499B9E9FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000001727
+476797C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7F26F47EE0000EE1F47F0B7DFFCFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76700005FAFE7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4CF93925A1A99B9E9FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B767000077BFFFFFFFFFF7E7B7773700
+003787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7F397AFF5EFFFFFFFFFF8B777EE004FF2E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFF
+FFFFFFFFFFF7BF6F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4CCAF9FB0B27A1A99B9E9FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFF7BF77170000
+57AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F77A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFF13F2FF1CFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFF
+EFC787370087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7D7A49ACFF4E9BA7A1A99B9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFE7A74F00000087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFA757174FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B7F067B7F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFDFAF5F370000
+0000000000000087C7FFFFFFFFEFC78F57271700001727578FC7EFFFFFFFFFEFCFAF87572787C7
+EFCF97572717001F4F97CFF7F7D7A76F471F0017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFD9A9AFCFF7FFFFE9BA7A1A99B9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFCF8F2F000057AFE7FFFFFF
+F7D7A76F4727170000001727476FB7DFFFFFFFFFEFCFAF875727779FAF6F3F1700278FCFFFFFFF
+FFEFC78F57271700001727578FC7EFFFFFFFF7E7BF9767475FA7DFDFAF6F471F0017275FAFDFFF
+FFEFC78F471700000000000000004FA7E7FFFFEFB7671F1F67B7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFAE7BFF05777F3EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F000087
+C7FFFFFFFFFFFFF7CF876797CFEFFFFFFFFFEFC78F3F00479FDFEFB76717170000004F8FC7E7F7
+FFFFEFB76F1700476FA7C7E7FFFFFFEFB76700006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFD4B29AC5F4FFFFFFFFE9BA7A1A99B9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787000077BFF7FFFFFFFFEFBF873700001767B7EFFFFFFFF7B76F17
+4797D7FFFFFFFFE7AF5F001787CFFFE7A75717170000004F9FDFFFFFFFFFFFFFFFFFF7CF876797
+CFEFFFFFFFFFEFC78F3F00479FDFCF973717000000375F9FCFEFFFFFFFDF9F47001787CFFFFFFF
+FFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787EE0000EE0000EE1F5FF2E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F000087C7FFFF
+FFFFFFEFB7670000000000000000000000000000004FA7E7FFFFE7A74F000087C7FFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2B4A1CC
+F4FFFFFFFFFFFFE9BA7A1A99B9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC7870000475F6747271700001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFEF
+DFB79767471F00000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFEFB767000000000000
+0000000000000000004FA7E7FFFFC78700004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFFFC7
+8700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFF5AF77EE0000EE8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFCCA8551A8B551A8B
+551A8B551A8B551A8B551A8B5593D3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D79F5F273F6F9FBF
+D7EFBF87000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFFFC7870000
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF48F2FEE87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFEFB767
+00479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7
+E7FFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE9BA7A1A99B9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787170067B7F7FFFFFFFFFFC7
+87000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFEFB76700479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC78700004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFFFC78700004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7A74FEE9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB767000067B7EFFFFFFFFFFFFFFFC777000077C7FFDFAFAFCFFFF7BF6F1717
+4787BFE7FFFFFFFFFFFFDF9F97BFF7FFFFDF9F4F000077BFFFFFFFFFFFFFD7973F003F97D7FFFF
+FFFFFFFFBF7700004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9BA
+7A1A99B9E9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+6700005FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F00004F9FDFFFFFF7E7C787470000
+77C7FFFFFFFFDF9F4F000087C7FFFFFFFFFFFFFFFFFFF7BF6F17174787BFE7FFFFFFFFFFFFDF9F
+97BFF7FFFFBF7700004F9FDFFFFFFFFFFFF7B767000067B7F7FFFFFFFFDFA74F004FA7DFF7C7AF
+BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB
+E7B7F04F87F4F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F000000000000000000004FA7E7FFFFFFE7AF5F2717173F87C7F7FFFFFFFFFFDFAF6F4727
+170000001F375F87BFDFFFE7A74F000000000000000087C7E7A74F000000000000000087C7C787
+00000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9BA7A1A99
+B9E9FFFFFFFFFFFFEFB7671F0027579FCFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000
+000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F00001F4F8FC7EFCF973F171F4787
+AD9C4F0000000000373F3F87C7FFFFFFFFFFFFFFFFFFDFAF6F4727170000001F375F87BFDFFFC7
+8700000000000000004FA7E7C78700000000000000004FA7E7FFF7CF8F471F001F5FAFDFFFFFFF
+FFEFB7671F1F67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BFF02717EE0000EE1F37EF6FA7F5
+EFFFFFFFFFFFFFFFFFFFFFD79737003797D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7B7A7B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A62AF551A8B551A8B551A8B551A8B551A8B551A8B551A8B
+C8B5D9EFD7B7AFB7D7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3A3F80000EE0000EE0000EE0000EE0000EE0000EE0000EE
+5B5BF3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7E7BF975F3F87C7FFFFFFFFFFFFEFB7673767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7C79F6F475FA7E7FFFFCF976FA7D7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873717004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F67A7D7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC78F1F1F00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F4F1F1700004FA7E7FFFFFFEFD79F5F375FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78F8FA7974F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F004FA7E7FFFFFFFFFFFFFFDFA74F3787CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7CF978FC7F7E7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F473F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCFAF87572787C7EFCF97572717
+001F478FC7F7FFFFFFFFFFFFDFAF5F2717173F87C7D7A787A7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFCF9F8FC7F7FFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87172F8FCFFFFFFFFFFFFFFFFFEFCFAF875727779FAF6F3F1700278FCFFFFFF7D7A76F471F0000
+001F476FA7D7F7FFFFFFFFF7D7A76F4727170000001727476FB7DFFFFFFFFFFFFFFFC787000087
+C7FFFFFFFFF7E7BF975F3F87C7FFFFFFF7BF6F00000000000000000000000000001767B7EFFFFF
+FFF7D7A76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFDFAF6F472717001F5FAFC7A74F004FA7
+E7FFFFFFFFFFFFFFFFFFFFCF87172F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76717170000004F87BFDFF7FFFFF7BF6F17
+0057AFE7FFFFFFEFB7673F97D7FFFFFFFFEFBF7767A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF9787BFF7FFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F0067
+B7EFFFFFFFFFFFFFE7A75717170000004F9FDFFFFFFFFFFFFFFFE7AF6777B7E7F7FFFFFFF7E7A7
+5F001777BFF7FFF7B76F174797D7FFFFFFFFE7AF5F001787CFFFFFFFFFFFFFC787000087C7FFFF
+FFC78F1F1F00000087C7FFFFFFE7A7779FDFFFFFFFFFFFF7C78737003787C7F7FFFFFFE7AF6777
+B7E7F7FFFFFFF7E7A75F001777BFF7FFFFF7BF6F173787BFEFFFFFFFEFC79F5F3F004FA7E7FFFF
+FFFFFFFFFFFFFFFFE7AF57003F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7
+E7FFFFFFE7AF57174787B7D7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F97BFF7
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFF
+FFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFCF8F2F0000000000000000000000000000
+0087C7FFFFFFFFFFFFFFEFDFB79767471F00000087C7FFFFFFFFFFFFC787000087C7FFFFFFFFFF
+FFC787000087C7FFFFFFFFFFFFFFFFFFFFFFDFA757171757A7DFFFFFFFFFFFCF8F2F0000000000
+0000000000000000000087C7FFDF9F47006FBFF7FFFFFFFFFFFFFFCF8F2F004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFF
+FFFFF7CF974F1F0000001727578FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000
+00000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFF
+FFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7D79F5F273F6F9FBFD7EFBF87000087C7FFFFFFFFFFFFC787000087C7FFFFFFFFFFFFC787
+000087C7FFFFFFFFFFFFFFFFF7C78737003787C7F7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFB767000087C7FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFF
+FFFFFFFFF7E7C7A7874F1F003797D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F0067B7EFFFFFFFFFFFFFFF
+FFFFE7A74F000087C7FFFFFFFFFFFFFFCF8F2F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+170067B7F7FFFFFFFFFFC787000087C7FFFFFFFFFFFFC787000087C7FFFFFFFFFFFFC787000087
+C7FFFFFFFFFFFFE7AF571700479FDFFFFFFFFFFFFFFFFFFFFFCF8F2F1777BFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC77700005FAFEFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFEF
+B767003F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F4F000077BFFFFFFFFFFFFFD7973F003F97D7FFFFFFE7A7676FB7
+E7F7FFFFFFFFD7973F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F8FCFFFFFFFFFFFFFFFFFFFDF
+9F4F000087C7FFFFFFFFFFFFFFFFDF9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDFF7BF6F00004F
+9FDFFFFFF7E7C78747000077C7FFFFFFFFFFF7B76700005FAFEFFFFFFFFFF7B76700005FAFEFFF
+FFFFDFA757171757A7DFFFFFFFFFFFFFFFD7979FC7FFFFDF9F47003767A7D7EFFFFFFFFFFFF7BF
+8F9FDFFFF7C7872F003767AFDFF7FFFFEFC79F5F3F0000171F5FAFE7FFFFFFFFFFFFFFCF8F2F2F
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F000000000000000087C7E7A74F000000000000000087C7E7A78FAFDFCF974F
+1F0017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFE7A74F00000000
+00373F3F87C7FFFFFFFFFFFFFFEFCF975F371F000000172747679FCFF7FFFFF7CF974F1F00001F
+4F8FC7EFCF973F171F4787BFEFC78700000000000000004FA7B48700000000000000004F8C8937
+0000000000000000000000000000000087C7FFFFFFFFEFCF975F371F000000172747679FCFF7FF
+FFFFFFFFDFB76F471F00001F478FC7D7A75F476F9FC7E7FFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87CFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F375F9FD7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7A767475FAFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7A76F97CFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5797CFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7673767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+673767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7BF6F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+C787370087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFCFAF875727779FAF6F3F1700278FCFFFFFF7D7A76F471F0000001F476FA7D7F7FFFF
+FFFFFFDFAF5F2717173F87C7D7A787A7E7FFFFEFD7B78F572787B7D7A76F3F170017275797CFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7BF975F3F87C7FFFFFFEFCF
+AF87572787C7EFCF97572717001F478FC7F7FFFFFFFFFFF7E7BF975F3F87C7FFDFAF5F37000000
+00000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A75717170000004F9FDFFFFFFFFFFFFFFFE7AF6777B7E7F7FFFFFFF7E7A75F001777BFF7FFEFB7
+673F97D7FFFFFFFFEFBF7767A7E7E7AF5F17170000003F77BFE7FFFFFFEFC78737001767B7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78F1F1F00000087C7FFEFB76717170000
+004F87BFDFF7FFFFF7BF6F170057AFE7FFFFFFC78F1F1F00000087C7FFFFFFFFE7A74F000087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFFFCF8F2F00000000000000000000000000000087C7FFE7AF571747
+87B7D7EFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFF7BF6F000067B7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+0087C7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F0000
+001727578FC7EFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7
+FFFFFFFFFFFFFFCF8F2F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A787
+4F1F003797D7FFFFE7A74F000087C7FFFFFFFFFFFFFFFFC787171787C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F000087C7FFFFFF
+FFFFFFFFFFDF9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDFFFE7A7676FB7E7F7FFFFFFFFD7973F
+2F8FCFFFFFE7A74F00003787BFEFFFFFFFF7DFA75717479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7B76700005FAFEFFFFFFFDF9F4F000077BFFFFFFFFFFFFFD7973F
+003F97D7FFFFFFFFFFF7B76700005FAFEFFFFFFFFFC777000077C7FFDFAFAFCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000373F3F87C7FFFFFF
+FFFFFFFFEFCF975F371F000000172747679FCFF7FFFFE7A78FAFDFCF974F1F0017275797CFF7FF
+FFFFE7A74F000077A7AF5F1F000017275797CFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC7870000000000000000476D48000000000000000087C7E7A74F000000000000
+000087C7C78700000000000000004FA7E7FFE7AF5F2717173F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F00
+0077BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00000000000000
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCFCFFFA0A0FF7070FF5050FF8080FFC0C0FFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDFB0B0B0808080404040808080A0A0A0CFCFCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF5050FF
+0000FF0000FF0000FF0000FF0000FF0000FF1010FFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF7F7F7F000000000000000000000000000000000000000000808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFF1010FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF5050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF
+303030000000000000000000000000000000000000000000000000000000303030CFCFCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF1010FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F3F3F000000
+000000000000000000000000000000000000000000000000000000000000303030FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F000000000000000000
+0000000000000000000000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCFCFFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0F000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF1010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF6F6FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000009F9F9FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF4F4FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF8F8F8F000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+7F7FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFBFBFBF000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000AFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFFF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF0F0FFF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF3F3F3F000000000000000000000000000000000000000000000000000000000000
+0000000000000000002F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFFF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF1F1FFFEFEFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF0F0F0F000000000000000000000000000000000000000000000000000000000000
+000000000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFBFBFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF8F8F8F000000000000000000000000000000000000000000000000000000000000000000
+7F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF1F1FFFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFAFAFAF0F0F0F0000000000000000000000000000000000000000000F0F0F8F8F8FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFF3F3FFF
+0F0FFF0000FF0000FF0000FF2F2FFF6F6FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFEFEF5F5F5F1F1F1F0000000000000000000F0F0F4F4F4FDFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C3C3E36060A0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFEFEF606060D1D1D1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFA0A0A0626262282828808080B0B0B0DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFFFB0B0FF8080FF2020DF7070EF
+A0A0FFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFEF505050000000000000000000000000000000000000101010AFAFAFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF7070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+BFBFBF101010000000000000000000000000000000000000000000000000000000505050FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000606060FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFEFFF3030FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF3030FFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF101010
+0000000000000000000000000000000000000000000000000000000000000000007F7F7FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0F000000000000606060FFFFFFFFFFFF
+FFFFFFFFFFFF3F3FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF3030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000
+000000000000000000000000000000000000000000000000000000000000000000BFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF0F0F0F000000000000606060FFFFFFFFFFFF
+8F8FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000003F3F3FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF0F0F0F000000000000606060FFFFFF0F0FFF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000101010FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF0F0F0F0000000000005454600000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+BFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6F6F000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000A8A8A8C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C09C9C9C0C0C0C0000000000000000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF9F9FFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF7F7FFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9F9F9F0000000000000B0B0F0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFAFAFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFBFBFBF000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000002F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9F9F9F0000000000000F0F0FCFCFCF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFDFDFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFEF0F0F0F000000000000000000000000000000000000000000000000000000
+0000000000000000000000006F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9F9F0000000000000F0F0FCFCFCFFFFFFF3F3FFF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFAFAFAF000000000000000000000000000000000000000000000000000000000000
+0000000000001F1F1FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F000000
+0000000F0F0FCFCFCFFFFFFFFFFFFFDFDFFF0F0FFF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF4F4F4F000000000000000000000000000000000000000000000000000000000000
+000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000F0F0F
+CFCFCFFFFFFFFFFFFFFFFFFFFFFFFF8F8FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF7F7F7F0000000000000000000000000000000000000000000000001F1F1FBFBFBF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0F0F0F0FCFCFCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFFF0F0FFF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0F0FFF8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCFCFCF3F3F3F0F0F0F0000000000000000002F2F2F6F6F6FEFEFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF5F5FFF1F1FFF0000FF0000FF0000FF1F1FFF4F4FFF
+DFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC3C3C3606060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF6060A0D1D1E1FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFFA0A0FF6262F12828D7
+8080FFB0B0FFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF
+B0B0B0808080202020626262A0A0A0CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF5050FF0000FF0000FF0000FF0000FF0000FF
+0000FF1010FFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000000000
+000000000000000000000000000000707070EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFBFBFFF1010FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF5050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF303030000000000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF303030000000000000000000000000
+000000000000000000000000000000303030CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFFF1010FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF7F7FFFFFFFFFFFFFFFFFFFFFEFEFEF3030300000000000002F2F2FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F3F3F000000000000000000000000000000000000
+000000000000000000000000000000303030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF4F4FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FFBFBFFFFFFFFFEFEFEF3030300000000000002F2F2FEFEFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF8F8F8F000000000000000000000000000000000000000000000000
+0000000000000000000000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF3F3FFFEFEFEF3030300000000000002F2F2FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF0F0F0F000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9FFF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+1010FF2F2F2F0000000000002F2F2FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFDFDF000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6FFF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000200000002C2C2CEFEFEFFFFFFFDFDFDFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+DFDFDFFFFFFFFFFFFFEFEFEFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFCFCFFFFFFF
+FFFFFFFFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFFFFFFFFFFFFF
+CFCFCFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0EFEFEFFFFFFFFFFFFFCFCFCFC0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0EFEFEFFFFFFFFFFFFFDFDFDFC0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0DFDFDFFFFFFFFFFFFFEFEFEFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0CFCFCFFFFFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0FFFFFFFFFFFFFFFFFFCFCFCFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0EFEFEF
+FFFFFFFFFFFFCFCFCFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0EFEFEFFFFFFFFFFFFF
+999999000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000009F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF000040
+0000006B6B6BFFFFFFFFFFFF7F7F7F0000000000000000000000000000000000000000007F7F7F
+FFFFFFFFFFFFBFBFBF0000000000000000000000000000000000000000003F3F3FFFFFFFFFFFFF
+FFFFFF000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF3F3F3F
+000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFF3F3F3F000000000000
+000000000000000000000000000000BFBFBFFFFFFFFFFFFF7F7F7F000000000000000000000000
+0000000000000000007F7F7FFFFFFFFFFFFFBFBFBF000000000000000000000000000000000000
+0000003F3F3FFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000
+FFFFFFFFFFFFFFFFFF3F3F3F000000000000000000000000000000000000000000BFBFBFFFFFFF
+FFFFFF3F3F3F000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFF474747
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF000000000000
+0000009F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000AFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF2F2FFF9F9F9F000000000000
+0000009F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF0F0FFF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF6F6FFFFFFFFF9F9F9F000000000000
+0000009F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F3F3F000000000000
+0000000000000000000000000000000000000000000000000000000000000000002F2F2FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFFF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF1F1FFFEFEFFFFFFFFFFFFFFF9F9F9F000000000000
+0000009F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF0F0F0F000000000000
+000000000000000000000000000000000000000000000000000000000000CFCFCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F000000000000
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F000000000000000000
+0000000000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF1F1FFFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F0000002F2F2F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF0F0F0F000000000000
+0000000000000000000000000000000F0F0F8F8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFF4F4FFF0F0FFF0000FF0000FF0000FF2F2FFF
+6F6FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF5F5F5F1F1F1F000000
+0000000000001F1F1F4F4F4FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFFFBFBFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBF
+EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7DFAF6F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F57
+2717000000171717004FA7E7FFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFC7870000
+0000000000000000000000000087C7FFFFFFFFFFF7CF975F371F0000000000004FA7E7FFFFFFFF
+FFFFC787004FA7E7FFFFFFF7CF8F47275F9FD7F7FFFFFFFFFFEFC78F57271700001727476FB7DF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFEFC78F57271700001727
+476FB7DFFFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFFFFEFC78F57271700
+00001F375F97CFF7FFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFF
+FFDFB76F47271700000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F373787BFEFFFFF
+FFFFFFBF77004FA7E7FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7DFEFBF773F3F87C7EFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47
+479FDFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFCF8F372F6FB7E7FFFFFFFFEF
+D7974F1767B7EFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFC78700
+67AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F4FA7DFFFFFFFFFFFFFFF
+C787004FA7E7FFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFD79F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFFFFFFC7870037
+47471F378FCFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7
+670087C7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFEFBF6F371F4F
+6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC77700
+4FA7E7FFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7BFA78F5F3F1F3F8FCFF7FFFFFFFFFFC787004FA7D7C7
+87373787C7F7FFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087
+C7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFF7E7CFAF9F
+6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFDFAF673F17174FA7E7
+FFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F374FA7E7FFFFFFFFFFC787004FA7E7FFFFDFA7
+571F57A7DFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFFFFFFEFBF87371777BFF7FFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF
+670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F3F1700001F4787BFCFA74F4FA7E7FFFFFF
+FFF7D7A76F4727170000000000000087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C787
+371757A7DFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFE7A74F00000000000000
+00000000000087C7FFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFFFFFFFFFDF
+B76F471F00000000004FA7E7FFFFFFFFF7D7A76F47271700001727476FA7D7F7FFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F000000000000001F375F8FC7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA757
+1F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78757
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F57271700
+0017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A787572717004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFCF973F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F57271700001727
+5797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5F8FC7EFFFFFFFEFBF
+772F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F37
+67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFDF9F471787C7FFFFFFFF
+FFFFFFFFE7A74F1777BFF7FFFFFFC7870000000000000017275797CFF7FFFFFFFFFFFFE7A74F4F
+97B7A76F471F000017275FAFDFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC77700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700
+001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFFFFEF
+C78F57271700001727476FB7DFFFFFFFFFFFDFA7571F57AFE7FFFFFFFFFFDFA7571F57A7DFFFFF
+C78700000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC7873F170057AF
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478F
+C7F7FFFFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFC7870077A7AF5F1F003787BF
+BF873F17173F97D7FFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFFFFFFFFFFFFFFFFF
+F7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F1787C7FFFFFFFFFFFF
+DF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFE7A74F003767A7
+CFEFFFFFFFE7AF5F0087C7FFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+C78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F479FDFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C777
+2F3F9FDFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFDF9F4F57A7DF
+F7FFFFFFFFEFC78F47479FDFFFFFFFFFFFEFB7671F57A7DFFFDFA74F3787C7F7FFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFC7870000378FCFDFA74F001767AFE7
+C787004FA7E7FFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFFFFFFFFFFFFFFFF7BF
+6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771F77BFF7FFFFFFDF9F4747
+9FDFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFE7A74F00000000000000
+0000000000000087C7FFFFFFFFFFFFFFF7C7873F3F3F3F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7CF975F371F00000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFC787000000
+0000000000004FA7E7FFFFFFFFEFB7670077AFBF77474787C7EFFFFFE7A74F2F8FCFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFDFB76F472717000000000000000087C7FFFFFFC787004FA7DFFFE7A74F0077C7FFFFC78700
+4FA7E7FFC78700000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F3777BFF7FFDF9F475FAFEFFFFF
+FFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFF7D79F571F579FD7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7874F676F573F87CFF7FFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFF7
+BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFDF9F47
+004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFC787004FA7E7FFE7A74F0087C7FFFFC787004FA7E7
+FFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F476FBFD79F578FCFFFFFFFFFFFFFFF
+CF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFC787004FA7E7FFFFFFFFF7C7873F275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFA7573777C7F7FFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFDF9F3F2F77BFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB76700
+3F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFFFFEFD7974F1767B7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFCF8F2F0067B7
+F7FFFFF7E7B7773F170087C7FFFFFFC787004FA7E7FFE7A74F0087C7FFFFC787004FA7E7FFEFAF
+5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F4F679FDFFFFFFFFFFFFFFFFFFFE7B7
+6F471F000017275787B79F770087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+C787004FA7E7FFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7A74F00
+00000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFF7D7A76F4727170000000000000087C7FF
+FFFFF7C787372F77C7F7FFFFFFFFFFDFA74F1757A7DFFFFFFFFFFFFFFFFFF7CF97572717000000
+000087C7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7CF97572717
+00001F47679FAF974F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F
+5F371F000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFC78F5F371F000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7B76F471F000017
+275787B79F770087C7FFFFFFC787004FA7E7FFE7A74F0087C7FFFFC787004FA7E7FFFFFFEFC78F
+5F371F000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7DFAF6F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF
+5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F00000000000017275787BFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F
+572717000017275797CFF7FFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7D797471787CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7AF6F6FAFDFF7FFFFFFDF9F4F00479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5F8FC7EFFF
+FFFFEFBF772F1777BFF7FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671F6FBFF7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F00000000171717
+0087C7FFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFC78700000000000000000000
+000000000087C7FFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFE7A74F000000000000
+00000000000000004FA7E7FFFFFFFFFFC7870077AFC78F57271700001F478FC7F7FFFFFFFFE7A7
+4F000000000000001F476FB7DFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFF
+FFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC7870077AFC78F57271700001F478FC7F7FFFFFFFFFFEFC78F5727170000172747
+6FB7DFFFFFFFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFFFFFC7870077AFBF874727
+170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFBF873F57AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC78700
+77A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7
+FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAF
+EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFF
+FFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F476FB7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000
+17275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7
+FFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB767006FBFF7FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFEFB767
+1F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFDF9F4F57A7DFF7FFFFFFFFEFC78F4747
+9FDFFFFFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEF
+BF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000
+00000027579FCFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA74F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F
+479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767
+AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFF
+FFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFF
+FFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD797
+3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+C78700000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F0000
+0000000000004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFEFB7670077C7FF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FF
+FFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777
+006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+DFA75717479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFEFC787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F00000000000000004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000000087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFF
+C787004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFE7A74F0087C7FFFFFFFF
+FFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFEFBF
+77373777BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFF7D79F571F579FD7F7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFEFAF5F00478F
+C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F00
+4FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFCF8F2F2F77BFEFFFFFEFCF8F
+4F1F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCF9F571F67B7
+EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFDFAF5F273F87C7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFF7C7873F275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC7
+87000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFF
+FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFEFC78F5F371F00
+0000000000004FA7E7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7A74F00
+0000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFF7CF974F1F000017275F9FD7B787
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFE7A74F000000
+000000001F375F8FC7EFFFFFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000001F375F87B7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFC78700000000000000000000
+000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFFFFFFFFF
+FFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7
+FFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFC7870000000000000000
+00000000004FA7E7FFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFEFC78F
+5F371F000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFC78F5F371F000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFFFFFFF
+FFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7
+772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7
+772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DF
+AF6F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F2F77BF
+EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F37
+8FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+000000000017275787BFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7E7C7A787572717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F0000
+87C7FFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5727
+17000017275797CFF7FFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7D797471787CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777000087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5F8FC7EFFFFFFFEFBF772F1777BFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFCF8F5F8FC7EFFFFFFFEFBF772F1777BFF7FFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFF
+FFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFF
+FFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFC78700000000000000000000000000000087
+C7FFFFFFFFFFFFDFB76F47271700000000000087C7FFFFFFE7A74F000000000000000000000000
+00004FA7E7FFFFFFFFFFC7870077AFC78F57271700001F478FC7F7FFFFFFFFE7A74F0000000000
+00001F476FB7DFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFF7D7A76F
+471F000000001717170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C7870000000000000087C7FFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFF
+FFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFE7A74F0000000000000000000000000000
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+BF873F57AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F
+479FDFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F
+000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFF
+F7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC7870077A7BF8F5727170017275797CFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B7A76F471F00001F476FB7DF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC787
+3F170057AFE7FFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFF7BF77
+3F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B767006FBFF7FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFEFB7671F57A7DFF7FF
+FFFFFFDF9F4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000027579F
+CFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFF
+FFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDF
+A74F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7C7772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F
+2F8FCFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F00
+67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFC78700000000
+000000000000000000004FA7E7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+EFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F0000000000000000
+4FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFEFB7670077C7FFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7DFA75717479F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+DFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFB76F472717000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFF
+E7A74F00000000000000000087C7FFFFFFFFEFB7670077AFBF77474787C7EFFFFFE7A74F2F8FCF
+FFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFC787006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFF7D79F571F579FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFF7D79F571F579F
+D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F47
+004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFFFF
+FFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFEFAF5F00478FC7EFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFAF670087C7FFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFCF9F571F67B7EFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFF
+FFF7C7873F275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFF7C7873F275FA7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7
+F7FFFFF7E7B7773F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFFFFEFD7974F1767B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFEFC78F5F371F00000000000000
+4FA7E7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7A74F00000000000000
+1F375F8FC7EFFFFFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00000000000000000000000000
+87C7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFE7A74F000000000000000000
+0000000087C7FFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000001F375F87B7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFE7A74F0000000000000000000000000087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFDF9F47
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F479FDFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F
+000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0000000000000000000000000000
+87C7FFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017
+275787B79F770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F47
+1F000017275787B79F770087C7FFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFDFAF674727170000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFC78F5F371F000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFF
+F7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7C7A787572717004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFF7E7C7A78757
+2717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7
+C7A787572717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7
+DFFFFFFFFFFFFFFFFFFFF7E7C7A787572717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFF7C7
+773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DF
+FFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFCF8F4F5F97BFC79F4F00
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F5F97BF
+C79F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFF
+FFFFFFFFFFFFCF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F5F8FC7EFFFFFFFEFBF772F1777BFF7FFFFFFFFFFFFFFFFFFF7C777
+2F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF6F6FAFDFF7FFFFFFDF9F4F00479FDFFF
+FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B79F67371F00001F476FB7DFFFFFFFFFFFE7A74F4F97
+B7A76F471F000017275FAFDFFFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FFFFFFFFFFFF
+FFFFEFC78F5F371F00000000000087C7FFFFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFF
+FFFFFFFFFFEFC78F572717000000171717004FA7E7FFFFFFFFFFEFC78F57271700001727476FB7
+DFFFFFFFFFFFFFFFF7CF975F371F0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F
+479FDFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC7873F170057AFE7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFDF9F472F
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76717
+77BFF7FFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC7873F170057AFE7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFE7A74F003767A7CF
+EFFFFFFFE7AF5F0087C7FFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFCF8F37
+2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFF
+CF8F373787BFEFFFFFFFFFFFBF77004FA7E7FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDF
+FFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFF
+FFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FF
+FFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F1777BFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC78700000000000000000000000000004FA7E7FFFFFFCF87174FA7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFCF8F2F4F
+A7DFFFFFFFFFFFFFFFC787004FA7E7FFFFE7A74F000000000000000000000000000087C7FFFFFF
+FFFFD79F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFF
+FFFFFFFFFFFFEFB7670077AFBF77474787C7EFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFF
+FFFFFFFFFFFFEFB7670077AFBF77474787C7EFFFFFE7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFC777004FA7E7FFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFD7BFA78F5F3F1F3F8FCFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFF
+FFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7D79F571F579FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFBF77373777BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0077BFFFFFFFFFFFE7B76F2F479FDFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77173777B7E7F7FFFFFFFF
+FFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFF
+DFAF673F17174FA7E7FFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7CF8F374FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFF
+FFFFCF8F374F97D7EFFFFFFFEFD7974F1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F27
+5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFCF8F374F97D7EFFFFFFFEFD7974F1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFAF5F273F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+000000000000001F375F8FC7EFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFFFF7D7A76F47271700000000000087
+C7FFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFFFDFB76F3F1700001F4787BF
+CFA74F4FA7E7FFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFC787000000000000
+001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7
+FFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFFFFF
+FFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000
+0000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000
+000000000000000087C7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78737
+3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67
+AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7
+EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFEFC78F5727170000001F
+375F97CFF7FFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001727476FB7DFFFFFFFFFFFFFFFC787
+0077AFC78F57271700001F478FC7F7FFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFF
+FFFFEFC78F5727170000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFC7870077AFBF87472717001727
+5797CFF7FFFFFFFFFFC7870077AFC78F57271700001F478FC7F7FFFFFFFFFFC787000000000000
+0087C7FFFFFFFFFFFFFFF7BF77174FA7E7FFFFFFFFFFFFFFFFC78717479FDFFFFFFFC787004FA7
+E7FFFFFFF7CF8F47275F9FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C7870000000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F4F97B79F67371F00001F476FB7DFFFFFFFFFFFE7A74F4F97B7A76F471F00
+0017275FAFDFFFFFFFFFFFE7A74F0000000000004FA7E7FFFFFFFFFFFFFFDF9F471787C7FFFFFF
+FFFFFFFFFFE7A74F1777BFF7FFFFE7A74F0087C7FFFFFFFFDFB7673F3F77BFEFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7BF8F5727170017275797CFF7FFFFFFFF
+FFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F
+1767B7EFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB767174F97D7EFFFFFFFFFE7B76F2F3797D7FFFFFFFFFFC787001747
+87BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFEFB767
+004F9FDFFFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F47
+9FDFFFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFFFFFF7BF77175FAFEFFFFFFFFFC787004FA7DFEFBF
+773F3F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFE7A74F003767A7CFEFFFFFFFE7AF
+5F0087C7FFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFEFAF5F1787C7FFFFFFFFFF
+FFDF9F472F8FCFFFFFFFFFE7A74F0087C7F7D79F57275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFF7FFFFEFBF772F479FDFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087
+C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFC787000000000000000000
+4FA7E7FFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFFFC787004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFEFB767004F9F
+DFFFFFFFFFDF9F4F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFDF9F47479FDFFFFFFFF7BF771F77BFF7FFFFFFFFFFC787003747471F378FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717
+000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFF7BF771F77BFF7FFFFFFDF9F47
+479FDFFFFFFFFFFFE7A74F003F47471767AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFF
+FFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFF
+FFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFDF9F4F2737271700
+001727578FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFEFAF5F479FDFFFF7BF77378FCFFFFFFFFFFFFFFFC787004FA7D7C787373787C7F7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFCF8F3777BFF7FFDF9F475FAFEFFF
+FFFFFFFFFFE7A74F0087BFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFCF8F2F3777B7E7FFFFFFFFEFBF87371777BFF7FFFFFFE7A7
+4F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFAF5F17579FD7EFFFFFFFF7DFA75717479FDFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFCF871767AFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFFFC78700
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFF7BF77479FCFBF7767AFEFFFFFFFFFFFFFFFFFC787004FA7E7FFFFDFA7571F57A7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F
+170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BF
+FFFFFFFFFFE7B76F2F479FDFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFDF9F476FBFD79F578FCFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFF7C787373787C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFF7D7A76F47271700001727476FA7D7F7FFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFC78F5F371F0000001F375F8FC7EFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFD797370000000000000000001727
+5797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7
+FFFFFFFFFFFFFFFFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFFFFF
+FFFFCF8F574F4F77BFF7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757A7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087
+C7FFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000
+001F375F8FC7EFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000
+00000000000000000000004FA7E7FFFFFFFFFFFFFFEFAF674F4F679FDFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFDFA757173787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFAF674727170000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77174FA7DFFFFFFFFFFFFFFFE7AF5F0057
+AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF57004F9FDFF7FFFFFFFFFFEFBF772F1787C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000000017275787AFD7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F
+5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5F
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787
+C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7AF6F6FAFDFF7FFFFFFDF9F4F00479FDFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F4F97AF9757271700001F478FC7F7FF
+FFFFFFFFFFE7A74F0000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFEFC78F5727170000001F37
+3F375FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000
+001727476FB7DFFFFFFFFFFFFFC7870077AFC78F57271700001F478FC7F7FFFFFFFFE7A74F0000
+000000004FA7E7FFFFFFFFFFFFFFFFFFFFEFC78F5727170000000000000000004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFCF8F373787BFEFFFFFFFFFFFBF77004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767174F97D7EFFFFFFFFFE7
+B76F2F3797D7FFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFCF8F2F4FA7DFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFC7870000000000000000004FA7E7FFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F
+2F4FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFFFDF9F4F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFEFC787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC777004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFCF8F2F4FA7
+E7FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFF
+FFFFFFFFFFFFFFDF9F4F2737271700001727578FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFEFBF77
+373777BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767005FAFE7FFFFF7DFA7
+5717000087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFEFB767004F9FDFFFFFFFDFAF673700004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF5F17579FD7EFFFFFFFF7DFA75717479FDFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFF
+FFFFFFCF871767AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFDFAF5F273F87C7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F00001727578FBFA777
+0087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFC7870000000000000000
+00000000004FA7E7FFFFFFFFDFB76F3F1700001F476FB7A777004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F0000001F375F8FC7EFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FFFF
+FFD7973700000000000000000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFC7870000000000000000000000
+0000004FA7E7FFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF7717
+4FA7DFFFFFFFFFFFFFFFE7AF5F0057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF57004F9FDF
+F7FFFFFFFFFFEFBF772F1787C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000
+000017275787AFD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF973F5F
+AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFCF973F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFE7
+B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787000000000000001F47679FCFF7FFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFEFC78F57
+2717000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB76F1757AFE7FFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7AF6F6FAFDFF7FFFFFFDF9F4F00479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFDF9F472F6FB7E7FFFF
+FFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5F8F
+C7EFFFFFFFEFBF772F1777BFF7FFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F57
+27170000001F375F97CFF7FFFFFFFFE7A74F4F97B79F67371F00001F476FB7DFFFFFFFFFFFFFFF
+F7D7A76F471F0000001F375F97CFF7FFFFFFFFFFFFC7870077AFC78F57271700001F478FC7F7FF
+FFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFE7A74F0000000000000000000000000000
+4FA7E7FFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFFFFFFEFC78F5727170000001F
+375F97CFF7FFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFF7D7A7
+6F471F0000001727476FB7DFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFF
+FFFFFFEFC78F5F371F00000000000087C7FFFFFFFFFFFFF7D7A76F471F0000001F375F97CFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000000000000000
+000087C7FFFFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFFFFFDFB76F4727170000
+0000000087C7FFFFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+C7870000000000000017275797CFF7FFFFFFFFFFFFF7D7A76F471F000000001717170087C7FFFF
+FFFFFFFFEFC78F572717000000171717004FA7E7FFFFFFFFFFFFEFC78F57271700001727476FB7
+DFFFFFFFFFFFFFFFEFC78F572717000000171717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7CF975F371F0000000000004FA7E7FFFFFFFFC78700000000000000
+000000000000000087C7FFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFFE7A74F
+000000000000001F476FB7DFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFF
+FFFFEFC78F572717000000171717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0000000000004FA7E7FFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F47
+8FC7F7FFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFE7A74F000000000000000000
+00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7DFA7573F87CFF7FFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFFFFFFFFEFC7
+873F170057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F372F6FB7E7FFFF
+FFFFEFD7974F1767B7EFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFF7BF773F87
+BFEFFFFFFFFFF7E7AF671F77BFF7FFFFFFFFC78700174787BFE7F7FFFFFFCF872F4FA7E7FFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFCF8F372F6FB7E7FFFFFFFFEFD7974F
+1767B7EFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFEFB767174F97D7EF
+FFFFFFFFE7B76F2F3797D7FFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFCF8F
+372F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BFF7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFC7870067AFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFD7973F3F9FDFFFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFFFCF
+8F373787BFEFFFFFFFFFFFBF77004FA7E7FFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDF
+FFFFFFCF8F373787BFEFFFFFFFFFFFBF77004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB767006FBFF7FFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFCF8F37
+3787BFEFFFFFFFFFFFBF77004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9F
+DFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000
+00003777B7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F375F9FB797
+4F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+C7772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFF
+FFEFB7670087C7FFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFC787000000000000
+00000000000000004FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF97
+5F371F00000000000000004FA7E7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087
+C7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFF7BF6F006FBFF7FFFFFFFFFF
+FFFFFFCF8F2F4FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFCF87174FA7DF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFFF
+E7A74F00000000000000000087C7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFE7A74F000000000000000000000000000087C7FFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717
+000000000000000087C7FFFFEFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFCF8F2F4FA7
+DFFFFFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F000000000000000000000000000087C7FFFFCF
+8F2F4FA7DFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFE7A74F00000000000000000087C7FFFF
+FFFFFFFFFFD79F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F000000
+00000000004FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFCF8F2F4FA7DFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF
+87371777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFFFEFC787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFEFB7670077AFBF77474787C7EFFFFFE7A74F2F8F
+CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7
+670087C7FFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFFFC787006FBFF7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087C7FFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFF7BF6F006FBFF7FFFFFFFFFFFFFFFF
+CF8F2F4FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFC787004FA7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFE7A7
+4F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFF
+FFE7A74F0087C7FFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFC787004FA7E7FFFF
+FFFFFFFFFFC777004FA7E7FFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFD7BFA78F5F3F1F3F8FCFF7FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFC787004FA7E7FFFFFFFF
+FFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC787004FA7E7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFEFBF77
+373777BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFFC7871767B7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D79F571F579FD7F7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFFFFFFEFBF87371777BF
+F7FFFFE7A74F0077BFFFFFFFFFFFE7B76F2F479FDFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEF
+CF9F5F1F004FA7E7FFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFFFFFFEFBF87371777BFF7FFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFEFAF5F17579FD7EFFFFFFFF7DFA7571747
+9FDFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFF7BF77173777B7E7F7FFFFFF
+FFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F77BFEFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F
+67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFF
+FFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F
+170087C7FFFFFFCF8F2F2F77BFEFFFFFEFCF8F4F1F170087C7FFFFFFEFB767004F9FDFFFFFFFDF
+AF673F17174FA7E7FFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFEFB767004F9FDF
+FFFFFFDFAF673F17174FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7CF8F374FA7E7FFFFFFFFFFFFFFFFDF9F3F2F77BFEFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004F
+A7E7FFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFEFB767004F9FDFFFFFFFDFAF67
+3F17174FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+004FA7E7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFF7BF6F004F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7B77737378FCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFDFAF5F273F87C7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFFFFEFD7974F1767B7EFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F275FA7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F47271700001727476FA7D7F7FFFFFFFF
+E7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFEFC78F5F371F000000000000004FA7
+E7FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF
+974F4FA7E7FFFFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFE7A74F000000000000
+0000000000000087C7FFFFFFFFF7D7A76F47271700001727476FA7D7F7FFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFEFC78F5F371F0000001F375F8FC7EFFFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFF7D7A76F472717000000000000
+87C7FFFFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF97572717000000000087C7FFFFFFFFFFF7D7A76F4727
+170000000000000087C7FFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFF
+FFFFDFB76F471F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087
+C7FFFFFFFFF7CF974F1F000017275F9FD7B7870087C7FFFFFFFFFFDFB76F3F1700001F4787BFCF
+A74F4FA7E7FFFFFFFFFFF7D7A76F4727170000000000000087C7FFFFFFFFFFDFB76F3F1700001F
+4787BFCFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000
+000000001727476FA7D7F7FFFFFFFFFFFFFFFFFFFFF7CF97572717000000000087C7FFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FF
+FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFDFB76F3F1700001F4787BFCFA74F
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000
+000000004FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7A74F00000000
+00000000000000000087C7FFFFFFFFFFFFFFFFDFB76F471F00000000004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000172747679FCFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFC7870000000000000000000000
+0000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000000087C7FFFFFFFF
+FFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7
+873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F
+57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787
+578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F67A7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B79767471F000087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7
+773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B777000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFE7AF6F6FAFDFF7FFFFFFDF9F4F00479FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C777
+2F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F471F
+0000001F375F97CFF7FFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFEF
+C78F5F371F00000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F47
+8FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC7870077AFBF
+874727170017275797CFF7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7A7
+4F4F97B7A76F471F00001F476FB7DFFFFFFFFFFFC787004FA7E7FFFFFFF7CF8F47275F9FD7F7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F476FB7DF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFF7BF773F87BFEFFFFFFFFF
+F7E7AF671F77BFF7FFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFCF8F372F67AF
+DFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9F
+DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFF7
+FFFFEFBF772F479FDFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7A74F0017
+478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFC787004FA7DFEFBF773F3F87C7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000
+00004FA7E7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFCF87174FA7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFFFFFFFFFFFEFC787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFC777006FBFF7FFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFFFDFA74F3F9FDFFFFFFFC787003747471F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F00000000000000004FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFC787004FA7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFF
+FFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFFFEFBF77373777BFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F
+0077C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFDF9F3F4FA7DFFFFFFFC787004FA7D7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFF7BF77173777B7E7F7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+C787004FA7E7FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFDFAF5F
+273F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7
+FFFFFFEFB767005FAFE7FFFFF7DFA75717000087C7FFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F
+2F479FDFFFFFFFFFC787004FA7E7FFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFF7D7A76F47271700000000000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC78700
+4FA7E7FFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFC7870000000000
+0000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFFF
+FFF7CF974F1F00001727578FBFA7770087C7FFFFFFFFEFC78F5F371F000000001F375F8FC7EFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFF7C787371757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFFFFFFFFFFFFFFFFFFF7BF
+771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37
+479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF
+B7671F6FBFF7FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C777
+2F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873737
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+571F57A7DFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFAF5F67AF
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787
+578FCFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFE7A74F0000000000
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C7870000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA74F00000087C7FFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFCF8F374F77774F0087C7FFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFF
+FFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFFFE7A74F4F97B7A76F471F00001F47
+6FB7DFFFFFFFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFFFFFFFFFFFFFE7A74F00
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F
+57A7DFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777
+BFF7FFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFFFFFFFE7A74F0087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F67B7EFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFDF
+B76F472717000000000000000087C7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFF
+FFE7A74F000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F3777C7F7FFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFDF9F47004F9F
+DFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFE7A7
+4F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000000000000000000000
+00004FA7E7FFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFF
+F7E7B7773F170087C7FFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F479FDFFFFFFFFFCF8F2F2F
+67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFF
+FFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FFFFFFE7B76F471F000017275787
+B79F770087C7FFFFFFFFEFC78F5F371F000000001F375F8FC7EFFFFFFFFFFFFFFFF7D7A76F4727
+170000000000000087C7FFFFFFFFE7A74F0000000000000000000000000087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7
+873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7B76F378FC7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00000000000017275787BFDFFFFFFFFFFFFFFFFF
+FFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D797471787CFFFFFFFFFFFFFFFFFFFFF
+F7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97B79F67371F00001F476FB7DFFFFFFFFFFFFFC7
+870000000000000017275797CFF7FFFFFFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFF
+FFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFC7870077A7B76F471F000017275FAFDF
+FFFFFFFFE7A74F00000000000000000000000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFBF873F57AFE7FFFFFFFFFFFFFFFFFFFFFFFFDF
+9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFD7973F3F9FDFFFFFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFDF
+9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F000000000027579FCFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F
+2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFDFB76F47271700
+0000000000000087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000
+00000000000000000000000087C7FFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7DFA75717479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFDF9F3F4FA7DFFFFFDF9F47004F9FDFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0077BFFFFFFFFFFFE7B76F2F479FDFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F17
+0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFF7BF6F
+004F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFCF9F571F67B7EFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000000000
+000087C7FFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFDFB76F47
+1F00000000004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000
+0000001F375F87B7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F
+1F6FB7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFF
+FFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB76F1F1F6FB7
+EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFF
+DFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFDF
+A74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F4F97AF975727
+1700001F478FC7F7FFFFFFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFFFFEFC7
+8F57271700001727476FB7DFFFFFFFFFFFFFE7A74F000000000000001F476FB7DFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFC7870000000000000087C7FFFFFFFFFFFF
+FFFFFFFFC78700000000000000000000001767B7EFFFFFFFFFFFF7D7A76F471F0000001F375F97
+CFF7FFFFFFFFFFFFFFF7D7A76F471F000000001717170087C7FFFFFFFFFFFFFFFFFFFFFFF7BF77
+175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0017478FCFEFFFFFF7
+C7772F3F9FDFFFFFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFDF9F4F57A7DFF7
+FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFDFA76F87C7F7FFFFFFFFFFF7BF773F87BFEFFFFFFFFFF7E7AF671F77BF
+F7FFFFFFEFB7671F57A7DFF7FFFFFFFFDF9F4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067
+B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000
+00000000000087C7FFFFFFFFF7CF975F371F00000000000000004FA7E7FFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7C78767A7DFFFFFFFFFFFFFFFFFC78700000000000000000000000000004FA7E7FFFF
+EFB7670077C7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A75F5FA7DFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFDFA74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767
+005FAFE7FFFFF7DFA75717000087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F67AFDFF7FFFFFFFFFFFFFFFF
+FFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFDFA76F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFEFAF5F00478FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F77
+BFEFFFFFEFCF8F4F1F170087C7FFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7CF974F1F
+00001727578FBFA7770087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F4727170000000000000087C7FFFF
+FFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFFFFE7A74F000000000000000000000000
+0087C7FFFFFFE7A74F0000000000000000000000000087C7FFFFFFF7CF87370000000000000000
+0000000087C7FFFFFFFFFFEFC78F5F371F000000000000004FA7E7FFFFFFFFFFF7CF974F1F0000
+17275F9FD7B7870087C7FFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7CF975F371F0000000000004FA7E7FFFFFFFFE7A74F2F77A7A76F3F1700001F478F
+C7F7FFFFFFFFFFFFFFC7870000000000000017275797CFF7FFFFFFFFFFC7870077AFBF87472717
+0017275797CFF7FFFFFFFFFFFFEFC78F57271700001727476FB7DFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFE7A74F378FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00173F87C7EFFFFFF7C7772F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFC78700003767AFDFF7FFFFEFBF
+772F479FDFFFFFFFDF9F4F57A7DFF7FFFFFFFFEFC78F47479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7
+BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFD7
+9F471F3F5F8FA7BFD7EFF7FFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFDFB76F472717000000000000000087C7FFFFFFFFC787004FA7E7FFFFFFFFFFFFFFC77700
+6FBFF7FFE7A74F000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFD7BFA78F5F3F1F3F8FCFF7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFDF9F
+47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F0077C7FF
+FFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7CF8F374FA7E7FFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFCF8F2F0067
+B7F7FFFFF7E7B7773F170087C7FFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FFFFFFCF
+8F2F2F67AFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000001727
+476FA7D7F7FFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFE7B76F471F0000
+17275787B79F770087C7FFFFFFFFC787000000000000001727476FA7D7F7FFFFFFFFFFFFF7D7A7
+6F4727170000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFF
+FFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFB76F67A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFF7
+D7A76F471F0000001F476FB7DFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78737
+3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F47
+1F0000001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFF
+FFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7E7C7A787572717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7B7
+9767471F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFF7BF6F174F97
+D7EFFFFFFFEFD7974F378FCFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF6F6FAFDFF7FFFF
+FFDF9F4F00479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5F8FC7EFFFFFFFEFBF772F1777BFF7FFFFFFFFFFFF
+FFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF674F87AFD7B7
+77000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFC7870077
+A7AF5F1F003787BFBF873F17173F97D7FFFFFFFFC7870000000000000017275797CFF7FFFFFFFF
+FFE7A74F4F97B79F67371F00001F476FB7DFFFFFFFFFFFFFFFDFB76F47271700000000000087C7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFF
+FFFFDFA75F1F001787CFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000000000000001F476FB7DFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000017275797
+CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFC7870077A7BF8F
+5727170017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+4F97B7A76F471F00001F476FB7DFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFF
+FFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF975727
+1700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFC7870077A7B76F471F000017275FAFDFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F4F97AF9757271700001F478FC7F7FFFFFFFFFFFFFFFFFFFFFFFFC7870000
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFC7870000378FCF
+DFA74F001767AFE7C787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDFFFFFFFFFE7A7
+4F0017478FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFC7870067AFEFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFCF8F2F4FA7E7FFFFEFBF774747
+77BFAF770067B7EFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB767006FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7973F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFF7FF
+FFEFBF772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F001747
+8FC7EFFFFFFFDF9F4F1777BFF7FFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFF
+FFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F1777
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7
+C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700003767AFDFFFFFFFDFA74F006FBFF7FFFFFF
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFC787004FA7DFFFE7A74F
+0077C7FFFFC787004FA7E7FFFFFFDFB76F472717000000000000000087C7FFFFFFFFE7A74F0087
+C7FFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFEFBF6F371F4F6F9FAFCFDFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFCF8F2F4F97B79F5F375FA7DFFFFFFFC7
+870067B7EFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF975F371F00000000000000004FA7E7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F472717000000000000000087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFF
+C777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFEFC787373787C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
+770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006F
+BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFE7A74F0087C7
+FFFFC787004FA7E7FFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFE7A74F0087C7FFFF
+FFFFFFFFFFDF9F3F4FA7DFFFFFFFFFFFFFFFFFF7E7CFAF9F6F4F1F1F5FAFE7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFE7AF5700173F87C7EFFFFFFFFFFFE7A74F2F8F
+CFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFF7BF77172F77BFEFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F47004F9FDFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFF7BF6F00
+77C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFDF9F3F4FA7DFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFEFBF77373777BFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFFFF7D79F571F579FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087
+C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787006FBFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F
+4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFE7A74F0087C7FFFFC7
+87004FA7E7FFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFE7A74F0077BFFFFFFFFFFF
+E7B76F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF670087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFEFB767376FB7E7FFFFFFFFE7B76F2F378FCFFFFFFF
+FFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFF
+FFFFFFFFFFFFFFFFEFB767003F97D7FFFFFFEFCF9F5F1F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCF8F2F0067B7F7FFFFF7E7B7773F170087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFC787004F9FDFFFFFFFFFEFD7974F1777BFF7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0077BFF7FFFFFFFFE7B76F2F
+479FDFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7BF6F006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFC787004FA7E7FFFFFFFFFFDFAF5F273F87C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFF7C7873F275FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7
+FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777006FBFF7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFE7A74F0087C7FFFFC787004F
+A7E7FFFFE7B76F471F000017275787B79F770087C7FFFFFFFFE7A74F000000000000001F375F8F
+C7EFFFFFFFFFFFFFE7A74F000000000000001F375F8FC7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF9757271700001727578FC7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFF
+FFFFFFFFFFFFF7CF9757271700001F47679FAF974F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFE7B76F471F000017275787B79F770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+DF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFDFAF674727170000001727476FA7D7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F000000001F375F8FC7EFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671777BFF7FFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFC787004FA7E7FFFFFFFFC78700000000000000000000000000004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F
+000000000000000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFF
+FFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFC787004FA7E7FFFFFFE7A74F000000000000000000
+0000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFE7A74F0087C7FFFFFFFFFFC787000000000000000000000000004FA7E7FFFFFFFFFFFFFF
+FFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF771767B7EFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4F
+A7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F37479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
+A74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA757
+1F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFF7C787373787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+F7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78757
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F57
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFAF5F67AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF8F5F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F4F87C7
+F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7AF5F5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFD7973F1F3F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFF
+FFEFC78F572717000017275797CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7E7C7A787572717004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7773757A7DF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFCF8F5F8FC7EFFFFFFFEFBF772F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFFFFFFFFFFFFFFDF9F472F
+6FB7E7FFFFFFFFE7B76F3767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F4F5F97BFC79F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F57271700
+00001F375F97CFF7FFFFFFFFFFE7A74F4F97B7A76F471F000017275FAFDFFFFFFFFFFFE7A74F00
+00000000004FA7E7FFFFFFFFFFFFFFFFFFFFF7D7A76F471F0000000000000000000087C7FFFFFF
+FFDFB76F47271700000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFE7A74F4F97AF9757271700001F478F
+C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC777004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFCF8F2F3F9FDFFFFF
+FFFFFFEFC7873F170057AFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7BF77175FAFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F372F6FB7E7FFFFFFFFEF
+D7974F1767B7EFFFFFFFE7A74F003767A7CFEFFFFFFFE7AF5F0087C7FFFFFFFFFFFFFFFFFFFFC7
+87004FA7E7FFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFFFEFBF772F479FDFFFFFFFFFFFC78700
+67AFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0017478FCFEFFFFFF7C7772F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFEFB7670087C7FFFFF7D79F5F
+375F9FB7974F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F2F8FCFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7BF6F0067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7
+670087C7FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004F
+A7E7FFFFFFFFFFFFFFFFFFCF8F2F2F77BFEFFFFFFFEFBF772F2F8FCFFFFFFFFFFFEFBF6F371F4F
+6F9FAFCFDFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C787006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFF
+FFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFEFB7670077AFBF77474787C7EFFFFF
+E7A74F2F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFEFB7670087
+C7FFFFFFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FF
+FFFFFFFFFFFFFFFFF7BF773737371F0000001F476FA7D7F7FFFFFFFFFFFFFFFFFFFFF7E7CFAF9F
+6F4F1F1F5FAFE7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFF
+FFF7D79F571F579FD7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787006FBFF7FFFFFFFFFFFFFFFFFFFFFFCF8717001F5FA7DFFFFFFFFFFFFFC78717
+67B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7770087C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFDFA74F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F3777B7E7FFFFFFFFEFBF87371777BFF7FFFF
+FFE7A74F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787004FA7E7FFFFFFFF
+FFFFFFFFE7AF57378FCFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF
+670087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F3F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFFFF7C7873F27
+5FA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDF9F3F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFCF8F374F97D7EFFFFFFFEFD7974F1767B7EFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7
+4F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F3F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFC777006FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F
+2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFF7D7A76F47271700001727476FA7D7F7FFFFFFFFFFE7A7
+4F0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000000000000000000000000004FA7E7FF
+FFFFEFB767000000000000000000001F476FB7DFFFFFFFE7A74F000000000000001F375F8FC7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F0087C7FFFFFFFFFFFFE7A74F0087C7FFFFFFE7A74F000000000000
+000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFDFB76F471F0000001F476FA7D7F7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F0000000000000000000000000087C7
+FFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF77
+1767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F
+6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F
+472F77C7F7FFFFFFFFFFFFFFCF872F1787CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7671F6FBFF7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+671F6FBFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA74F2F87C7F7
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57
+A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF87172F77
+BFEFFFFFFFFFFFF7DF9F4F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7571F57A7DFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA757
+1F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F87C7F7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78F5F371F00
+000000001F476797C7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C787578FCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78757
+8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F57
+87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFCF8F5787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7675FA7DFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF
+
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/doc/src/cpsa4manual/ns_skel4.pdf b/doc/src/cpsa4manual/ns_skel4.pdf
new file mode 100644
Binary files /dev/null and b/doc/src/cpsa4manual/ns_skel4.pdf differ
diff --git a/doc/src/cpsa4manual/plaindh_skel4_5.eps b/doc/src/cpsa4manual/plaindh_skel4_5.eps
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/plaindh_skel4_5.eps
@@ -0,0 +1,23799 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (/srv/www/vhosts/releases/19/save/queued/4/a/7/4a79ad9bcc7708bab128e795668174b3/intermediate1/o_f1740750f6dfcaec.eps)
+%%CreationDate: (2015-07-16T20:40:27+02:00)
+%%BoundingBox: -0 -0 447 385
+%%HiResBoundingBox: 0 0 447.186 385
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 1
+%%EndComments
+
+%%BeginDefaults
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image.  The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/DirectClassPacket
+{
+  %
+  % Get a DirectClass packet.
+  %
+  % Parameters:
+  %   red.
+  %   green.
+  %   blue.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+  %
+  % Display a DirectClass image.
+  %
+  systemdict /colorimage known
+  {
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { DirectClassPacket } false 3 colorimage
+  }
+  {
+    %
+    % No colorimage operator;  convert to grayscale.
+    %
+    columns rows 8
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { GrayDirectClassPacket } image
+  } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+  %
+  % Get a DirectClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   red
+  %   green
+  %   blue
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile color_packet readhexstring pop pop
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet;  convert to grayscale.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  color_packet 0 get 0.299 mul
+  color_packet 1 get 0.587 mul add
+  color_packet 2 get 0.114 mul add
+  cvi
+  /gray_packet exch def
+  compression 0 eq
+  {
+    /number_pixels 1 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add def
+  } ifelse
+  0 1 number_pixels 1 sub
+  {
+    pixels exch gray_packet put
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+  %
+  % Get a PseudoClass packet.
+  %
+  % Parameters:
+  %   index: index into the colormap.
+  %   length: number of pixels minus one of this color (optional).
+  %
+  currentfile byte readhexstring pop 0 get
+  /offset exch 3 mul def
+  /color_packet colormap offset 3 getinterval def
+  compression 0 eq
+  {
+    /number_pixels 3 def
+  }
+  {
+    currentfile byte readhexstring pop 0 get
+    /number_pixels exch 1 add 3 mul def
+  } ifelse
+  0 3 number_pixels 1 sub
+  {
+    pixels exch color_packet putinterval
+  } for
+  pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+  %
+  % Display a PseudoClass image.
+  %
+  % Parameters:
+  %   class: 0-PseudoClass or 1-Grayscale.
+  %
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  class 0 gt
+  {
+    currentfile buffer readline pop
+    token pop /depth exch def pop
+    /grays columns 8 add depth sub depth mul 8 idiv string def
+    columns rows depth
+    [
+      columns 0 0
+      rows neg 0 rows
+    ]
+    { currentfile grays readhexstring pop } image
+  }
+  {
+    %
+    % Parameters:
+    %   colors: number of colors in the colormap.
+    %   colormap: red, green, blue color packets.
+    %
+    currentfile buffer readline pop
+    token pop /colors exch def pop
+    /colors colors 3 mul def
+    /colormap colors string def
+    currentfile colormap readhexstring pop pop
+    systemdict /colorimage known
+    {
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { PseudoClassPacket } false 3 colorimage
+    }
+    {
+      %
+      % No colorimage operator;  convert to grayscale.
+      %
+      columns rows 8
+      [
+        columns 0 0
+        rows neg 0 rows
+      ]
+      { GrayPseudoClassPacket } image
+    } ifelse
+  } ifelse
+} bind def
+
+/DisplayImage
+{
+  %
+  % Display a DirectClass or PseudoClass image.
+  %
+  % Parameters:
+  %   x & y translation.
+  %   x & y scale.
+  %   label pointsize.
+  %   image label.
+  %   image columns & rows.
+  %   class: 0-DirectClass or 1-PseudoClass.
+  %   compression: 0-none or 1-RunlengthEncoded.
+  %   hex color packets.
+  %
+  gsave
+  /buffer 512 string def
+  /byte 1 string def
+  /color_packet 3 string def
+  /pixels 768 string def
+
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  x y translate
+  currentfile buffer readline pop
+  token pop /x exch def
+  token pop /y exch def pop
+  currentfile buffer readline pop
+  token pop /pointsize exch def pop
+  /Times-Roman findfont pointsize scalefont setfont
+  x y scale
+  currentfile buffer readline pop
+  token pop /columns exch def
+  token pop /rows exch def pop
+  currentfile buffer readline pop
+  token pop /class exch def pop
+  currentfile buffer readline pop
+  token pop /compression exch def pop
+  class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+  grestore
+} bind def
+%%EndProlog
+%%Page:  1 1
+%%PageBoundingBox: 0 0 447 385
+userdict begin
+DisplayImage
+0 0
+447.186 384.91
+12
+596 513
+0
+0
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7BF975F3F87C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7673767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7C79F6F475FA7E7FFFFFFEFCFAF874F
+1F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFF7C7772F4FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC7
+8F578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7BF975F3F87C7FFFFFFFFFFFFEFB7
+673767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7C79F6F475FA7E7FFFFCF976FA7D7EF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFF7E7BF975F3F87C7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7673767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7C79F6F475FA7E7FFFFFFEFCFAF874F
+1F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF
+5F0000000000000000479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC7
+8F578FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7BF975F3F87C7FFFFFFFFFFFFEFB7
+673767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7C79F6F000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC78F1F1F00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F1F1700004FA7E7FFEFB76F1F1F00000087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873717
+004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F67A7D7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78F1F1F00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F1F1700004FA7E7FFFFFFEFD79F5F375FAFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFC78F1F1F00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F1F1700004FA7E7FFEFB76F1F1F00000087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F87BFF7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFA7573F67A7D7EFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC78F1F1F00000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F4F1F1700000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F004FA7E7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C78F8FA7974F004FA7E7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F004FA7E7FFFFFFFFFFFFFFDFA74F3787CFF7FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F004FA7E7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF879FDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C7873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F3F000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7CF978FC7F7E7A74F004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F473F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F00001727476797BFE7FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDF9F473F97D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFE7A74F000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFEFD7B78F572787B7D7A76F3F170017275797CFF7FFFFFFFFFFFFFFC787
+000087C7FFFFFFFFF7D7A76F4727170000001727476FB7DFFFFFFFFFFFF7E7BF975F3F87C7FFFF
+FFEFCFAF87572787C7EFCF97572717001F478FC7F7FFFFFFFFFFFFFFFFDFAF6F472717001F5FAF
+C7A74F004FA7E7FFFFFFFFE7A74F000087C7EFCF974F1F00001F478FC7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFCF9F8FC7F7FFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787172F8FCFFFFFFFFFFFFFFFFFEFCFAF875727779FAF6F3F1700278FCFFFFFF7D7
+A76F471F0000001F476FA7D7F7FFFFFFFFF7D7A76F4727170000001727476FB7DFFFFFFFFFFFFF
+FFC787000087C7FFFFFFFFF7E7BF975F3F87C7FFFFFFF7BF6F0000000000000000000000000000
+1767B7EFFFFFFFF7D7A76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFDFAF6F472717001F5FAF
+C7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFCF87172F8FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFC787
+000087C7FFFFFFFFF7D7A76F4727170000001727476FB7DFFFFFFFFFFFF7E7BF975F3F87C7FFFF
+FFEFCFAF87572787C7EFCF97572717001F478FC7F7FFFFFFFFFFFFFFFFDFAF6F472717001F5FAF
+C7A74F004FA7E7FFFFFFFFE7A74F000087C7EFCF974F1F00001F478FC7F7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFF7EFE7D7B78F4F1F003787C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFC787172F8FCFFFFFFFFFFFFFFFFFEFCFAF875727779FAF6F3F1700278FCFFFFFF7D7
+A76F471F0000001F476FA7D7F7FFFFFFFFF7D7A76F4727170000001727476FB7DFFFFFFFFFFFFF
+FFC787000087C7FFFFFFFFF7E7BF975F3F87C7FFFFFFF7BF6F0000000000000000000000000000
+1767B7EFFFFFFFF7D7A76F471F0000001F476FA7D7F7FFFFFFFFFFFFFFDFAF6F472717001F5FAF
+C7A74F000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFE7AF5F17170000003F77BFE7FFFFFFEFC78737001767B7EFFFFFFFFFFFC787000087C7FFFF
+FFF7B76F174797D7FFFFFFFFE7AF5F001787CFFFFFFFC78F1F1F00000087C7FFEFB76717170000
+004F87BFDFF7FFFFF7BF6F170057AFE7FFFFFFFFF7BF6F173787BFEFFFFFFFEFC79F5F3F004FA7
+E7FFFFFFFFE7A74F00004F87BFDFF7FFFFEFB76F170067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCF9787BFF7FFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F
+3F0067B7EFFFFFFFFFFFFFE7A75717170000004F9FDFFFFFFFFFFFFFFFE7AF6777B7E7F7FFFFFF
+F7E7A75F001777BFF7FFF7B76F174797D7FFFFFFFFE7AF5F001787CFFFFFFFFFFFFFC787000087
+C7FFFFFFC78F1F1F00000087C7FFFFFFE7A7779FDFFFFFFFFFFFF7C78737003787C7F7FFFFFFE7
+AF6777B7E7F7FFFFFFF7E7A75F001777BFF7FFFFF7BF6F173787BFEFFFFFFFEFC79F5F3F004FA7
+E7FFFFFFFFFFFFFFFFFFFFE7AF57003F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFC787000087C7FFFF
+FFF7B76F174797D7FFFFFFFFE7AF5F001787CFFFFFFFC78F1F1F00000087C7FFEFB76717170000
+004F87BFDFF7FFFFF7BF6F170057AFE7FFFFFFFFF7BF6F173787BFEFFFFFFFEFC79F5F3F004FA7
+E7FFFFFFFFE7A74F00004F87BFDFF7FFFFEFB76F170067B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFEFAF67171777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F
+3F0067B7EFFFFFFFFFFFFFE7A75717170000004F9FDFFFFFFFFFFFFFFFE7AF6777B7E7F7FFFFFF
+F7E7A75F001777BFF7FFF7B76F174797D7FFFFFFFFE7AF5F001787CFFFFFFFFFFFFFC787000087
+C7FFFFFFC78F1F1F00000087C7FFFFFFE7A7779FDFFFFFFFFFFFF7C78737003787C7F7FFFFFFE7
+AF6777B7E7F7FFFFFFF7E7A75F001777BFF7FFFFF7BF6F173787BFEFFFFFFFEFC79F5F3F000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFFFF7BF6F000067B7EFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFF
+FFEFDFB79767471F00000087C7FFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFDF9F47006FBFF7FFFFFFFFFFFFFFCF8F2F004FA7E7FFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F97BFF7
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFF
+FFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFCF8F2F0000000000000000000000000000
+0087C7FFFFFFFFFFFFFFEFDFB79767471F00000087C7FFFFFFFFFFFFC787000087C7FFFFFFFFFF
+FFC787000087C7FFFFFFFFFFFFFFFFFFFFFFDFA757171757A7DFFFFFFFFFFFCF8F2F0000000000
+0000000000000000000087C7FFDF9F47006FBFF7FFFFFFFFFFFFFFCF8F2F004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFC787000087C7FFFFFFFFFFFFFFFF
+FFEFDFB79767471F00000087C7FFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFF
+FFFFFFE7A74F004FA7E7FFFFFFDF9F47006FBFF7FFFFFFFFFFFFFFCF8F2F004FA7E7FFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFE7A74F1787CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFF
+FFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFCF8F2F0000000000000000000000000000
+0087C7FFFFFFFFFFFFFFEFDFB79767471F00000087C7FFFFFFFFFFFFC787000087C7FFFFFFFFFF
+FFC787000087C7FFFFFFFFFFFFFFFFFFFFFFDFA757171757A7DFFFFFFFFFFFCF8F2F0000000000
+0000000000000000000087C7FFDF9F47006FBFF7FFFFFFFFFFFFFFCF8F2F000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7
+FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFC787000087C7FFFFFFFFF7D79F5F273F6F9FBFD7
+EFBF87000087C7FFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F
+004FA7E7FFFFEFB767000087C7FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFE7A74F000087C7
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC78700000000000000000000
+00000000000000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFF
+FFFFE7A74F000087C7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+D79F5F273F6F9FBFD7EFBF87000087C7FFFFFFFFFFFFC787000087C7FFFFFFFFFFFFC787000087
+C7FFFFFFFFFFFFFFFFF7C78737003787C7F7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFB767000087C7FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+C787000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFC787000087C7FFFFFFFFF7D79F5F273F6F9FBFD7
+EFBF87000087C7FFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F
+004FA7E7FFFFEFB767000087C7FFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFE7A74F000087C7
+FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC7871787CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFFFFFFFFF
+FFFFE7A74F000087C7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
+D79F5F273F6F9FBFD7EFBF87000087C7FFFFFFFFFFFFC787000087C7FFFFFFFFFFFFC787000087
+C7FFFFFFFFFFFFFFFFF7C78737003787C7F7FFFFFFFFFFFFFFC787004FA7E7FFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFB767000087C7FFFFFFFFFFFFFFFFE7A74F000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFF
+FFFFC787171787C7FFFFFFFFFFC787000087C7FFFFFFC787170067B7F7FFFFFFFFFFC787000087
+C7FFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFF
+FFC77700005FAFEFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFE7A74F000087C7FFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7
+E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F0067B7EFFFFFFFFFFFFFFFFFFFE7A74F00
+0087C7FFFFFFFFFFFFFFCF8F2F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787170067B7F7FF
+FFFFFFFFC787000087C7FFFFFFFFFFFFC787000087C7FFFFFFFFFFFFC787000087C7FFFFFFFFFF
+FFE7AF571700479FDFFFFFFFFFFFFFFFFFFFFFCF8F2F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC77700005FAFEFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFEFB767003F9FDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFC787000087C7FFFFFFC787170067B7F7FFFFFFFFFFC787000087
+C7FFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFF
+FFC77700005FAFEFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFE7A74F000087C7FFFFFFFFFFFF
+E7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFAF67
+77BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF9F3F0067B7EFFFFFFFFFFFFFFFFFFFE7A74F00
+0087C7FFFFFFFFFFFFFFCF8F2F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFC787170067B7F7FF
+FFFFFFFFC787000087C7FFFFFFFFFFFFC787000087C7FFFFFFFFFFFFC787000087C7FFFFFFFFFF
+FFE7AF571700479FDFFFFFFFFFFFFFFFFFFFFFCF8F2F1777BFF7FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFC77700005FAFEFFFFFFFFFFFFFFFE7A74F000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00003787BFEFFFFFFFF7DFA75717479F
+DFFFFFFFFFFFF7B76700005FAFEFFFF7BF6F00004F9FDFFFFFF7E7C78747000077C7FFFFFFFFFF
+F7B76700005FAFEFFFFFFFDF9F4F000077BFFFFFFFFFFFFFD7973F003F97D7FFFFFFF7C7872F00
+3767AFDFF7FFFFEFC79F5F3F0000171F5FAFE7FFDF9F4F000077BFFFFFFFFFFFFFD7973F003F97
+D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F8FCFFFFFFFFFFFFFFFFFFFDF9F4F000087C7FFFFFF
+FFFFFFFFFFDF9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDFF7BF6F00004F9FDFFFFFF7E7C78747
+000077C7FFFFFFFFFFF7B76700005FAFEFFFFFFFFFF7B76700005FAFEFFFFFFFDFA757171757A7
+DFFFFFFFFFFFFFFFD7979FC7FFFFDF9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDFFFF7C7872F00
+3767AFDFF7FFFFEFC79F5F3F0000171F5FAFE7FFFFFFFFFFFFFFCF8F2F2F8FCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFF7B76700005FAFEFFFF7BF6F00004F9FDFFFFFF7E7C78747000077C7FFFFFFFFFF
+F7B76700005FAFEFFFFFFFDF9F4F000077BFFFFFFFFFFFFFD7973F003F97D7FFFFFFF7C7872F00
+3767AFDFF7FFFFEFC79F5F3F0000171F5FAFE7FFDF9F4F000077BFFFFFFFFFFFFFD7973F003F97
+D7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7C7DFF7FFFFFFFFFFEFCF9F6F77BFEFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F2F2F8FCFFFFFFFFFFFFFFFFFFFDF9F4F000087C7FFFFFF
+FFFFFFFFFFDF9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDFF7BF6F00004F9FDFFFFFF7E7C78747
+000077C7FFFFFFFFFFF7B76700005FAFEFFFFFFFFFF7B76700005FAFEFFFFFFFDFA757171757A7
+DFFFFFFFFFFFFFFFD7979FC7FFFFDF9F47003767A7D7EFFFFFFFFFFFF7BF8F9FDFFFF7C7872F00
+3767AFDFF7FFFFEFC79F5F3F000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F000077A7AF5F1F000017275797CFEFFFFFFFFFFFC787
+00000000000000004FA7DFCF974F1F00001F4F8FC7EFCF973F171F4787BFEFC787000000000000
+0000476D48000000000000000087C7E7A74F000000000000000087C7FFFFFFDFB76F471F00001F
+478FC7D7A75F476F9FC7E7E7A74F000000000000000087C7E7A74F000000000000000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFE7A74F0000000000373F3F87C7FFFFFFFFFFFF
+FFEFCF975F371F000000172747679FCFF7FFFFF7CF974F1F00001F4F8FC7EFCF973F171F4787BF
+EFC78700000000000000004FA7B48700000000000000004F8C8937000000000000000000000000
+0000000087C7FFFFFFFFEFCF975F371F000000172747679FCFF7FFFFFFFFFFDFB76F471F00001F
+478FC7D7A75F476F9FC7E7FFFFFFFFFFFFFFFFCF8F2F479FDFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFC787
+00000000000000004FA7DFCF974F1F00001F4F8FC7EFCF973F171F4787BFEFC787000000000000
+0000476D48000000000000000087C7E7A74F000000000000000087C7FFFFFFDFB76F471F00001F
+478FC7D7A75F476F9FC7E7E7A74F000000000000000087C7E7A74F000000000000000087C7FFFF
+FFFFFFFFFFFFFFFFFFFFF7CF8F471F17272727275787AFD7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDF9F472F8FCFFFFFFFFFFFE7A74F0000000000373F3F87C7FFFFFFFFFFFF
+FFEFCF975F371F000000172747679FCFF7FFFFF7CF974F1F00001F4F8FC7EFCF973F171F4787BF
+EFC78700000000000000004FA7B48700000000000000004F8C8937000000000000000000000000
+0000000087C7FFFFFFFFEFCF975F371F000000172747679FCFF7FFFFFFFFFFDFB76F471F00001F
+478FC7D7A75F000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7CF873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFDFA7573F87CFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7CF873F57A7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFDFA74F000077BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFAF5F375F9FD7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFD7A767475FAFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFDFAF5F375F9FD7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7A74F00000000
+0000000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7
+A76F97CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCF8F5797CFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFD7
+A76F97CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFEFB7673767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFB7
+673767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFEFB7673767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFEFB7673767B7EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7BF
+6F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFF7BF6F87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC787370087C7FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFC78737
+0087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7BF975F3F87C7FFFFFFEFCFAF87572787C7EFCF97572717
+001F478FC7F7FFFFFFFFFFF7E7BF975F3F87C7FFDFAF5F3700000000000000000087C7FFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7E7BF975F3F87C7FFFFFFEFCFAF87572787C7
+EFCF97572717001F478FC7F7FFFFFFFFFFF7E7BF975F3F87C7FFDFAF5F37000000000000000000
+87C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFC78F1F1F00000087C7FFEFB76717170000004F87BFDFF7FFFFF7BF6F170057AF
+E7FFFFFFC78F1F1F00000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFC78F1F1F00000087C7FFEFB76717170000004F87BFDFF7FFFFF7
+BF6F170057AFE7FFFFFFC78F1F1F00000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFF
+FFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7
+E7FFFFFFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787000087
+C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFF
+FFC787000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787000087C7FFFF
+FFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787000087C7FFFFFFFFE7
+A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC787
+000087C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFE7A74F004FA7E7FFFFFFFFFFFFC787000087
+C7FFFFFFFFE7A74F000087C7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B76700005FAFEFFFFFFFDF9F4F00
+0077BFFFFFFFFFFFFFD7973F003F97D7FFFFFFFFFFF7B76700005FAFEFFFFFFFFFC777000077C7
+FFDFAFAFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B76700005FAFEFFF
+FFFFDF9F4F000077BFFFFFFFFFFFFFD7973F003F97D7FFFFFFFFFFF7B76700005FAFEFFFFFFFFF
+C777000077C7FFDFAFAFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000000476D48000000000000000087C7
+E7A74F000000000000000087C7C78700000000000000004FA7E7FFE7AF5F2717173F87C7F7FFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7870000000000000000476D4800000000
+0000000087C7E7A74F000000000000000087C7C78700000000000000004FA7E7FFE7AF5F271717
+3F87C7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCFCFCFA0A0A0707070505050808080C0C0C0EFEFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFFFB0B0FF8080FF4040FF8080FFB0B0FF
+CFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFA0A0A0707070505050808080C0C0C0EFEFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFEF505050000000000000000000000000000000000000101010AFAFAFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF8080FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFEF505050000000000000000000000000000000000000101010AFAFAFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF101010000000
+000000000000000000000000000000000000000000000000505050FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000606060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFFF3030FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF3030FFCFCFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF
+101010000000000000000000000000000000000000000000000000000000505050FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF101010000000000000000000000000
+0000000000000000000000000000000000000000006F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF0F0F0F000000000000606060FFFFFFFFFFFFFFFFFFFFFFFF3F3FFF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF3030FFEFEFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF101010000000000000
+0000000000000000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F3F3F000000000000000000000000000000000000000000
+000000000000000000000000000000000000AFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCFCFCF0F0F0F000000000000606060FFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF6F6FFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000
+000000000000000000000000000000000000000000000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDF000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000004F4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CFCFCF0F0F0F000000000000606060FFFFFF1F1FFF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF1010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCFCFCF000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000004F4F4FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+7F7F7F000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF
+0F0F0F0000000000004848600000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF9F9F9F000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000101010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000B3B3B3FFFFFFFFFFFFDFDFDFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0DFDFDF
+FFFFFFFFFFFFEFEFEFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFCFCFFFFFFFFFFFFF
+FFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFFFFFFFFFFFFFC0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFFFFFFFFFFFFFCFCFCFC0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0EFEFEFFFFFFFFFFFFFDFDFDFC0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0C0C0C0C0C0C0DFDFDFFFFFFFFFFFFFEFEFEFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
+C0C0C0CFCFCFFFFFFFFFFFFFEFEFEFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0CFCFCF
+FFFFFFFFFFFFFFFFFFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FFFFFFFFFFFF
+FFFFFFCFCFCFC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0EFEFEFFFFFFFCFCFCF0D0D0D
+0000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+6F6F6F000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000008F8F8F
+FFFFFFFFFFFF7F7F7F0000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFF
+BFBFBF0000000000000000000000000000000000000000003F3F3FFFFFFFFFFFFFFFFFFF000000
+000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFF3F3F3F000000000000000000000000
+000000000000000000BFBFBFFFFFFFFFFFFF7F7F7F000000000000000000000000000000000000
+0000007F7F7FFFFFFFFFFFFFBFBFBF0000000000000000000000000000000000000000003F3F3F
+FFFFFFFFFFFFBFBFBF0000000000000000000000000000000000000000003F3F3FFFFFFFFFFFFF
+FFFFFF000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF3F3F3F
+000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFF3F3F3F000000000000
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F0000000000000B0B0F0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+AFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000002F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF9F9F9F0000000000000F0F0FCFCFCF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFDFDFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000002F2F2FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFEFEF0F0F0F000000000000000000000000000000000000000000000000
+0000000000000000000000000000006F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF9F9F9F0000000000000F0F0FCFCFCFFFFFFF3F3FFF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF2F2FFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF0F0F0F000000000000000000000000000000000000
+0000000000000000000000000000000000000000006F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFAFAFAF000000000000000000000000000000000000000000000000000000000000
+0000000000001F1F1FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F000000
+0000000F0F0FCFCFCFFFFFFFFFFFFFDFDFFF0F0FFF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000000000000000000000000000000000000000000000
+0000000000000000000000001F1F1FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF4F4F4F000000000000000000000000000000000000000000000000000000000000000000
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000F0F0FCFCFCF
+FFFFFFFFFFFFFFFFFFFFFFFF8F8FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000000000000000000000000000
+000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+7F7F7F0000000000000000000000000000000000000000000000001F1F1FBFBFBFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0F0F0F0F0F0FCFCFCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFAFAFFF0F0FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0F0FFF
+8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF6F6F6F0000000000000000000000000000000000000000000000001F1F1FBFBFBF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF
+3F3F3F0F0F0F0000000000000000001F1F1F6F6F6FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFFF5F5FFF1F1FFF0000FF0000FF0000FF0F0FFF4F4FFFDFDFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFBFBFBF3F3F3F0F0F0F0000000000000000001F1F1F6F6F6FEFEFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+C2C2C2606060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFEFFF6060A0D1D1E1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFC2C2C2606060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080DFDFDFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFF
+A0A0FF6161F02828D78080FFB0B0FFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDFDFDFB0B0B0808080202020707070A0A0A0CFCFCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFCFCFFFA0A0FF6161F02828D78080FFC0C0FFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF5050FF0000FF0000FF0000FF
+0000FF0000FF0000FF1010FFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F
+000000000000000000000000000000000000000000707070FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF5050FF0000FF
+0000FF0000FF0000FF0000FF0000FF1010FFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFF1010FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF5050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF303030000000000000000000
+000000000000000000000000000000000000303030CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFF1010FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF5050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFFF1010FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F3F3F000000000000000000000000000000000000
+000000000000000000000000000000303030FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFEFFF1010FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+4F4FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF8F8F8F000000000000000000000000000000000000000000000000000000
+0000000000000000000000007F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF4F4FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF3F3FFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF0F0F0F000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9FFF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF1010FFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9FFF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF1010FF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6FFF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFDFDFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000009F9F9F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6FFF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFDFDFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFBFBFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000AFAFAFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+BFBFFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFBFBFFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF0F0FFF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF3F3F3F000000000000000000000000000000000000000000000000000000000000
+0000000000000000002F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFFF0F0FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFFF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF1F1FFFEFEFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DFDFDF0F0F0F000000000000000000000000000000000000000000000000000000000000000000
+000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFFF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF1F1FFF
+EFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8F
+0000000000000000000000000000000000000000000000000000000000000000007F7F7FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFBFBFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF1F1FFFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF999999000000
+0000000000000000000000000000000000000000000F0F0F8F8F8FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF1F1FFFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFF3F3FFF0F0FFF0000FF0000FF0000FF
+2F2FFF6F6FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0E0E05F5F5F1F1F1F
+0000000000000000001F1F1F4F4F4FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFF3F3FFF0F0FFF0000FF
+0000FF0000FF2F2FFF6F6FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2C2E26060A0FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBF
+EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2C2E26060A0FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFAFAFAFAFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFEF1010107F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5050502F2F2F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000CFCFCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010107F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF5050502F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+AFAFAF000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFAFAFAF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFEF1010108F8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+5050502F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000CFCFCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010107F7F7FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5050502F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFAFAFAF000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9F9F8F8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFEFEF202020BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF5050502F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF
+000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010107F7F7FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5050502F2F2FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF2F2F2F7F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF707070EFEFEFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF5050502F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFAFAFAF000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF101010
+7F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5050502F2F2FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFEFEF1010107F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFAFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFCFCFCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5050503F3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFAFAFAF000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFEF1010107F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5050502F2F2F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000CFCFCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010107F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFCFCFCF5F5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5050507F7F7FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFEF1010107F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+5050502F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000CFCFCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010107F7F7FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F2F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF707070CFCFCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000CFCFCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010107F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF5050502F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF
+000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010107F7F7FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F5F5F2F2F2FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB0B0B0
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000DFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010107F7F7FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF5050502F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFAFAFAF000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF101010
+7F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5050502F2F2FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF202020
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010107F7F7FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5050502F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFAFAFAF000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFEF1010107F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5050502F2F2F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF0F0F0FCFCFCFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFA0A0A0616161282828808080B0B0B0
+DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF909090616161282828
+808080B0B0B0DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFEFEF505050000000000000000000000000000000000000101010AFAFAF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+AFAFAF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF505050000000000000000000000000000000000000
+101010AFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+BFBFBF101010000000000000000000000000000000000000000000000000000000505050FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010107F7F7F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFBFBFBF101010000000000000000000000000000000000000000000000000000000
+505050FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF101010000000
+0000000000000000000000000000000000000000000000000000000000007F7F7FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5050502F2F2FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF
+1010100000000000000000000000000000000000000000000000000000000000000000007F7F7F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000
+000000000000000000000000000000000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000
+000000000000000000000000000000000000000000000000000000000000000000BFBFBFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000003F3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFEF1010107F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000003F3F3FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF9F9F9F000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000101010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+5050502F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9F000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000101010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF6F6F6F000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF000000CFCFCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF6F6F6F000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000DFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF4F4F4F000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000002F2F2FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000002F2F2F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF0F0F0F000000000000000000000000000000
+0000000000000000000000000000000000000000000000006F6F6FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF
+1010107F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF0F0F0F000000000000000000
+0000000000000000000000000000000000000000000000000000000000006F6F6FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000000000000000000000000000000000000000
+0000000000000000000000000000001F1F1FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5050502F2F2FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000000000000000000000000000
+0000000000000000000000000000000000000000001F1F1FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000000000000000000000
+000000000000000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000CFCFCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4F000000000000000000000000000000000000
+000000000000000000000000000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF7F7F7F0000000000000000000000000000000000000000000000001F1F1F
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010107F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7F000000000000000000000000000000000000000000
+0000001F1F1FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCFCFCF3F3F3F0F0F0F0000000000000000002F2F2F6F6F6FEFEFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF5050502F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCFCFCF4F4F4F0F0F0F0000000000000000002F2F2F6F6F6FEFEFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFC2C2C2606060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF
+000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2C2C2606060FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF8F8F8FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFEFEF101010AFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF505050
+2F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000CFCFCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010107F7F7FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF5050502F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFAFAFAF000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F5F5F
+7F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFEFEF505050EFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF5050502F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000
+CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010107F7F7FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5050502F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFAFAFAF000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF1010107F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFAFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF5050502F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+AFAFAF000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010107F7F7F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5050502F2F2FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFEF1010107F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFEF6F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5050505F5F5FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFAFAFAF000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF
+1010107F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5050502F2F2FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000CFCFCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010107F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFAFAFAF3F3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF606060AFAFAFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFEFEF1010107F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF505050
+2F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000CFCFCFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010107F7F7FFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF6F6F6F2F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFEFEFEFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA0A0A0EFEFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000CFCFCFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFEFEF1010107F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF5050502F2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000
+CFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010107F7F7FFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5050501F1F1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFAFAFAFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF000000DFDFDFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010106F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF5050501F1F1FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+AFAFAF000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010107F7F7F
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5050501F1F1FEFEFEFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF2F2F2FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF505050FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF1010106F6F6FFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5050501F1F1FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFAFAFAF000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF
+1010106F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5050501F1F1FEFEFEF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+DEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF000000BFBFBFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF000000000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF0000000000006F6F6FFFFFFFFFFFFFFFFFFFAFAFAF
+BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFF2F2F2F0000003F3F3FFFFFFFFFFFFFEFEFEF1010106F6F6FFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFF5F5F5F000000000000FFFFFFFFFFFF5050501F1F1FEFEFEFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+8F8F8F000000000000CFCFCFAFAFAF000000BFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE
+808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFBFBFBF000000
+0000009595951010106F6F6FFFFFFFFFFFFFFFFFFFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFF000000000000232323
+1D1D1DB4B4B4808080505050202020000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDEDEDE808080FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCFCFFF9090FF6161F02828D78080FFB0B0FF292949000000000000000000000000
+000000000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFCFCFFF9090FF5454F32020DF8080FFB0B0FFDFDFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF5050FF
+0000FF0000FF0000FF0000FF0000FF0000FF1010FF9999E9000000000000000000000000000000
+3F3F3F6F6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFFF5050FF0000FF0000FF0000FF0000FF0000FF0000FF1010FF9F9FFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFF1010FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF5050FF6F6F6F9F9F9FCFCFCFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFF1010FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF5050FFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF1010FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFF1010FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+CFCFFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFCFCFFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF3F3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9FFF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+1010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+9F9FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF1010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6FFF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFDFDFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F6FFF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFBFBFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFBFBFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFBFBFFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF2F2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFEFEFFF0F0FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFEFEFFF0F0FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF0000FF0000FF0000FF6F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+AFAFFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+1F1FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFAFAFFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+0000FF0000FF2F2FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4FFF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FFBFBFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF4F4FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+CFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7FFF0000FF
+0000FF0000FF0000FF0000FF0000FF0000FF0000FF1F1FFFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+7F7FFF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF2F2FFFCFCFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFF3F3FFF0F0FFF
+0000FF0000FF0000FF2F2FFF6F6FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFFF
+4F4FFF0F0FFF0000FF0000FF0000FF2F2FFF6F6FFFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFFFBFBFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+EFEFFFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+FFFFFF
+
+end
+%%PageTrailer
+%%Trailer
+%%EOF
diff --git a/doc/src/cpsa4manual/plaindh_skel4_5.pdf b/doc/src/cpsa4manual/plaindh_skel4_5.pdf
new file mode 100644
Binary files /dev/null and b/doc/src/cpsa4manual/plaindh_skel4_5.pdf differ
diff --git a/doc/src/cpsa4manual/secureprotocols.bib b/doc/src/cpsa4manual/secureprotocols.bib
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/secureprotocols.bib
@@ -0,0 +1,7831 @@
+
+@Article{Abadi98,
+  author =       {Mart{\'\i}n Abadi},
+  title =        {On {SDSI}'s linked Local Name Spaces},
+  journal =      {Journal of Computer Security},
+  year =         1998,
+  volume =       6,
+  number =       {1--2},
+  pages =        {3--21}
+}
+
+@article{AbadiBlanchet05,
+  author = {Mart{\'\i}n Abadi and Bruno Blanchet},
+  title = {Analyzing Security Protocols with Secrecy Types and Logic Programs},
+  journal = {Journal of the ACM},
+  year = 2005,
+  volume = 52,
+  number = 1,
+  pages = {102--146},
+  month = {January}
+}
+
+@InProceedings{AbadiEtAl04,
+  author =       {Mart{\'\i}n Abadi and Bruno Blanchet and C{\'{e}}dric Fournet},
+  title =        {{Just Fast Keying} in the Pi Calculus},
+  booktitle =    {Programming Languages and Systems: {ESOP} 2004 Proceedings},
+  pages =        {340--354},
+  month =        {January},
+  year =         2004,
+  editor =       {David Schmidt},
+  number =       2986,
+  series =       {LNCS},
+  publisher =    {Springer Verlag}
+}
+
+@Article{AbadiEtAl93,
+  author =       {Mart{\'\i}n Abadi and Michael Burrows and Butler Lampson and Gordon D. Plotkin},
+  title =        {A Calculus for Access Control in Distributed Systems},
+  journal =      {{ACM} Transactions on Programming Languages and Systems},
+  year =         1993,
+  volume =       15,
+  number =       4,
+  pages =        {706--34},
+  month =        {September}
+}
+
+@InProceedings{FioreAbadi01,
+  author =       {Marcelo Fiore and Mart{\'\i}n Abadi},
+  title =        {Computing Symbolic Models for Verifying Cryptographic Protocols},
+  booktitle = {Computer Security Foundations Workshop},
+  year =         2001,
+  month =        {June}}
+
+@InProceedings{AbadiFournet01,
+  author =       {Mart{\'\i}n Abadi and C{\'{e}}dric Fournet},
+  title =        {Mobile Values, New Names, and Secure Communication},
+  booktitle =    {28th ACM Symposium on Principles of Programming Languages ({POPL} '01)},
+  pages =        {104--115},
+  year =         2001,
+  month =        {January}
+}
+
+@article{AbadiJurjens01,
+    author = "Mart{\'\i}n Abadi and Jan J{\"u}rjens",
+    title = "Formal Eavesdropping and Its Computational Interpretation",
+    journal = "Lecture Notes in Computer Science",
+    volume = "2215",
+    pages = "82ff.",
+    year = "2001",
+    url = "http://citeseer.nj.nec.com/abadi00formal.html" }
+
+@misc{AbadiJurjens00,
+  title=        {Formal Eavesdropping and its Computational Interpretation},
+  author=       {Mart{\'{\i}}n Abadi and Jan J{\"u}rjens},
+  year=         2000,
+  note=         {submitted for publication},
+}
+
+@Article{AbadiRogaway02,
+  author =       {Mart{\'\i}n Abadi and Phillip Rogaway},
+  title =        {Reconciling two views of cryptography (The
+                  computational soundness of formal encryption)},
+  journal =      {Journal of Cryptology},
+  year =         2002,
+  volume =       15,
+  number =       2,
+  pages =        {103--127}}
+
+@InProceedings{AbadiRogaway00,
+  author =       {Mart\'{\i}n Abadi and Phillip Rogaway},
+  title =        {Reconciling two views of cryptography (The computational soundness of formal encryption)},
+  booktitle =    {IFIP
+International Conference on Theoretical Computer Science (IFIP TCS2000)},
+  year =         2000,
+  series =       {Lecture Notes in Computer Science},
+  publisher =    {Springer-Verlag}
+}
+
+@InProceedings{AbadiGordon97,
+  author =       {Mart\'{\i}n Abadi and Andrew D. Gordon},
+  title =        {A Calculus for Cryptographic Protocols: The Spi Calculus},
+  booktitle =    {4th ACM Conference on Computer and Communications Security},
+  pages =        {36--47},
+  year =         1997,
+  month =        {April},
+  publisher =    {ACM Press},
+  annote =       {From URL http://www.research.digital.com/SRC}
+}
+
+@Article{AbadiGordon99,
+  author =       {Mart\'{\i}n Abadi and Andrew D. Gordon},
+  title =        {A Calculus for Cryptographic Protocols: The Spi Calculus},
+  journal =      {Information and Computation},
+  year =         1999,
+  volume =       148,
+  number =       1,
+  pages =        {1--70},
+  month =        {January}
+}
+
+@InProceedings{AbadiGordon97a,
+  author =       {Mart\'{\i}n Abadi and Andrew D. Gordon},
+  title =        {Reasoning about cryptographic protocols in the spi calculus},
+  booktitle =    {CONCUR 97},
+  pages =        {59--73},
+  year =         1997,
+  series =       {Lecture Notes in Computer Science},
+  month =        {July},
+  publisher =    {Springer-Verlag}
+}
+
+@InProceedings{AbadiNeedham94,
+  author =       {Mart\'{\i}n Abadi and Roger Needham},
+  title =        {Prudent Engineering Practice for Cryptographic Protocols},
+  booktitle =    {Proceedings, 1994 IEEE Symposium on Research in
+                  Security and Privacy},
+  year =         1994,
+  organization = {{\sc ieee}},
+  publisher =    {{\sc ieee} CS Press},
+  pages =        {122--136}
+}
+
+@InProceedings{AbadiTuttle91,
+  author =       {Mart\'{\i}n Abadi and Mark R. Tuttle},
+  title =        {A Semantics for a Logic of Authentication},
+  booktitle =    {Proceedings of the 10th {ACM} Symposium on Principles of Distributed Computing},
+  pages =        {201--216},
+  year =         1991,
+  month =        {August}
+}
+
+@book{abiteboul1994foundations,
+  title={{Foundations of Databases: The Logical Level}},
+  author={Abiteboul, S. and Hull, R. and Vianu, V.},
+  year=1994,
+  publisher={Addison Wesley}
+}
+
+@article{ables2010escrowed,
+  title={Escrowed data and the digital envelope},
+  author={Ables, K. and Ryan, M.},
+  journal={Trust and Trustworthy Computing},
+  pages={246--256},
+  year={2010},
+  publisher={Springer}
+}
+
+@Article{AbrahametalIBM91,
+  author =       "DG Abraham and GM Dolan and GP Double and JV Stevens",
+  title =        "Transaction Security Systems",
+  journal =      "IBM Systems Journal",
+  year =         1991,
+  volume =       30,
+  number =       2,
+  pages =        "206--229"
+}
+
+@Article{Adam92,
+  author =       "J. Adam",
+  title =        "Cryptography = Privacy?",
+  journal =      "IEEE Spectrum",
+  year =         1992,
+  pages =        "29--35",
+  month =        aug
+}
+
+@InProceedings{AdaoEtAl05,
+  author =       {Pedro Ad{\~a}o and Gergei Bana and Jonathan Herzog and Andre Scedrov},
+  title =        {Soundness of Formal Encryption in the Presence of Key-Cycles},
+  booktitle =    {Proceedings of the 10th European Symposium On Research In Computer Security {(ESORICS 2005)}},
+  year =         2005,
+  month =        {September}
+}
+
+@Article{Ajluni95,
+  author =       "C. Ajluni",
+  title =        "Two New Imagine Techniques Promise To Improve IC Defect Identification",
+  journal =      "Electronic Design",
+  volume =       "43",
+  number =       "14",
+  month =        "July",
+  year =         1995,
+  pages =        "37--38"
+}
+
+@Article{Akl83,
+  author =       "Selim G. Akl",
+  title =        "Digital Signatures: A Tutorial Survey",
+  journal =      "Computer",
+  year =         1983,
+  pages =        "15--24",
+  month =        feb
+}
+
+@InProceedings{AmadioLugiez00,
+  author =       {Roberto M. Amadio and Denis Lugiez},
+  title =        {On the Reachability Problem in Cryptographic Protocols},
+  booktitle = {Concur},
+  pages =        {380--394},
+  year =         2000,
+  number =       1877,
+  series =       {LNCS}}
+
+@article{amadio2003symbolic,
+  title={On the symbolic reduction of processes with cryptographic functions},
+  author={Amadio, R.M. and Lugiez, D. and Vanack{\`e}re, V.},
+  journal={Theoretical Computer Science},
+  volume={290},
+  number={1},
+  pages={695--740},
+  year={2003},
+  publisher={Elsevier}
+}
+
+@InProceedings{AndersonKuhn96,
+  author =       "Ross Anderson and M. Kuhn",
+  title =        "Tamper Resistance - a Cautionary Note",
+  booktitle =    "Proceedings of the Second Usenix Workshop on Electronic Commerce",
+  pages =        "1--11",
+  year =         1996
+}
+
+@InProceedings{AndersonKuhn97,
+  author =       "Ross Anderson and Markus Kuhn",
+  title =        "Low Cost Attacks on Tamper Resistant Devices",
+  booktitle =    "{IWSP}: International Workshop on Security Protocols, {LNCS}",
+  year =         "1997"
+}
+
+@Article{AndersonNeedham,
+  author =       "R. Anderson and R. Needham",
+  title =        "Programming Satan's Computer",
+  journal =      "Computer Science Today: Lecture Notes in Computer Science",
+  volume =       "1000",
+  year =         1995,
+  pages =        "426--441"
+}
+ @Article{ACGMMR2006composing,
+ title = {Sufficient Conditions for Composing Security Protocols},
+ author = {S. Andova and C.J.F. Cremers and K. Gj{\o}steen and S. Mauw
+                  and S.F. Mj{\o}lsnes and S. Radomirovi\'{c}},
+ booktitle = {Special issue on Computer Security: Foundations and Automated Reasoning},
+ journal = {Information and Computation},
+ volume={206},
+ number={2},
+ pages={425--459},
+ year = 2008
+}
+
+@article{ankney1995unified,
+  title={{The Unified Model}. Contribution to {ANSI X9F1}},
+  author={Ankney, R. and Johnson, D. and Matyas, M.},
+  journal={Standards Projects (Financial Crypto Tools), ANSI X},
+  volume={42},
+  year={1995}
+}
+
+@Article{AnsonMitchell90,
+  author =       "Colin l'Anson and Chris Mitchell",
+  title =        "Security Defects in the CCITT Recommendation {X}.509 ---
+                  The Directory Authentication Framework",
+  journal =      "Computer Communication Review",
+  year =         1990,
+  volume =       20,
+  number =       2,
+  pages =        "30-34",
+  month =        apr
+}
+
+@inproceedings{Anteniese99,
+ author = {Ateniese, Giuseppe},
+ title = {Efficient verifiable encryption (and fair exchange) of digital signatures},
+ booktitle = {CCS '99: Proceedings of the 6th ACM conference on Computer and communications security},
+ year = {1999},
+ isbn = {1-58113-148-8},
+ pages = {138--146},
+ location = {Kent Ridge Digital Labs, Singapore},
+ doi = {http://doi.acm.org/10.1145/319709.319728},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+ }
+
+@InProceedings{AppelFelten99,
+  author =       {Andrew W. Appel and Edward W. Felten},
+  title =        {Proof-Carrying Authentication},
+  booktitle =    {6th {ACM} Conference on Computer and Communications Security},
+  year =         1999,
+  month =        {November}
+}
+
+@InProceedings{ArapinisEtAl2011,
+  author =       {Myrto Arapinis and Mark Ryan and Eike Ritter},
+  title =        {{StatVerif}: Verification of Stateful Processes},
+  booktitle = {{IEEE} Symposium on Computer Security Foundations},
+  year =         2011,
+  month =        {June},
+  publisher = {{IEEE CS} Press}}
+
+@Book{AristotleNE,
+  author =       {Aristotle},
+  title =        {Nicomachean Ethics},
+  publisher =    {Oxford University Press},
+  year =         1953
+}
+
+@Misc{ASN1,
+  author =       {ISO},
+  title =        {Abstract Syntax Notation One ({ASN.1})},
+  howpublished = {ISO/IEC 8824}
+}
+
+@article{AsokanEtAl00,
+  title={Optimistic fair exchange of digital signatures},
+  author={N. Asokan and Victor Shoup and Michael Waidner},
+  journal={{IEEE} J. Sel.~Areas in Comms.},
+  volume=18,
+  number=4,
+  pages={593--610},
+  year=2000
+}
+
+@InProceedings{AsokanEtAl97,
+  author =       {N. Asokan and Matthias Schunter and Michael Waidner},
+  title =        {Optimistic Protocols for Fair Exchange},
+  booktitle = {4th Conference on Computer and Communications Security ({CCS})},
+  pages =        {6--17},
+  year =         1997,
+  publisher = {{ACM}}}
+
+@Misc{rfc1826,
+  OPTkey =       {},
+  author =       {R. Atkinson},
+  title =        {{IP} Authentication Header},
+  howpublished = {Internet Request for Comments 1826},
+  year =         {1995},
+  month =        {August},
+  note =         {Available at \texttt{http://ds.internic.net/rfc/rfc1826.txt}.},
+  OPTannote =    {}
+}
+
+@article{ax1968elementary,
+  title={{The elementary theory of finite fields}},
+  author={Ax, J.},
+  journal={The Annals of Mathematics},
+  volume={88},
+  number={2},
+  pages={239--271},
+  issn={0003-486X},
+  year={1968},
+  publisher={JSTOR}
+}
+
+@InProceedings{BackesEtAl02,
+  author =       {Michael Backes and Christian Jacobi and Birgit Pfitzmann},
+  title =        {Deriving Cryptographically Sound Implementations
+                  Using Composition and Formally Verified Bisimulation},
+  booktitle =    {Formal Methods Europe '02 (FME)},
+  pages =        {310--329},
+  year =         2002,
+  series =       {LNCS},
+  volume =       2391,
+  publisher =    {Springer Verlag}
+}
+
+@InProceedings{BackesPfitzmann05,
+  author =       {Michael Backes and Birgit Pfitzmann},
+  title =        {Relating Cryptographic and Symbolic Key Secrecy},
+  booktitle = {Proceedings, 26th {IEEE} Symposium on Security and Privacy},
+  year =         2005,
+  month =        {May},
+  note =         {Extended version,
+                  \url{http://eprint.iacr.org/2004/300}}}
+
+@InProceedings{BackesEtAl08,
+  author =       {Michael Backes and Matteo Maffei and Dominique Unruh},
+  title =        {Zero-Knowledge in the Applied Pi-calculus and Automated Verification of the {Direct Anonymous Attestation} Protocol},
+  booktitle = {{IEEE} Symposium on Security and Privacy},
+  year =         2008}
+
+@inproceedings{MaffeiEtAl07,
+ author = {Michael Backes and Agostino Cortesi and Riccardo Focardi and Matteo Maffei},
+ title = {A calculus of challenges and responses},
+ booktitle = {FMSE '07: ACM Workshop on Formal methods in Security Engineering},
+ year = 2007,
+ isbn = {978-1-59593-887-9},
+ pages = {51--60},
+ location = {Fairfax, Virginia, USA},
+ doi = {http://doi.acm.org/10.1145/1314436.1314444},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+ }
+
+@Misc{rfc1827,
+  OPTkey =       {},
+  author =       {R. Atkinson},
+  title =        {{IP} Encapsulating Security Payload {(ESP)}},
+  howpublished = {Internet Request for Comments 1827},
+  year =         {1995},
+  month =        {August},
+  note =         {Available at \texttt{http://ds.internic.net/rfc/rfc1827.txt}.},
+  OPTannote =    {}
+}
+
+@InProceedings{BartalEtAl99,
+  author =       {Yair Bartal and Alain Mayer and Kobbi Nissim and Avishai Wool},
+  title =        {Firmato: A Novel Firewall Management Toolkit},
+  booktitle =    {Proceedings, {IEEE} Symposium on Security and Privacy},
+  year =         1999,
+  month =        {May},
+  publisher =    {IEEE CS Press}
+}
+
+@inproceedings{BasinEtAl05,
+  author    = {A. Armando and
+               D. A. Basin and
+               Y. Boichut and
+               Y. Chevalier and
+               L. Compagna and
+               J. Cu{\'e}llar and
+               P. Hankes Drielsma and
+               P.-C. H{\'e}am and
+               O. Kouchnarenko and
+               J. Mantovani and
+               S. M{\"o}dersheim and
+               D. von Oheimb and
+               M. Rusinowitch and
+               J. Santiago and
+               M. Turuani and
+               L. Vigan{\`o} and
+               L. Vigneron},
+  title     = {The {AVISPA} Tool for the Automated Validation of Internet
+               Security Protocols and Applications},
+  booktitle = {CAV},
+  year      = {2005},
+  pages     = {281--285},
+  ee        = {http://dx.doi.org/10.1007/11513988_27},
+  crossref  = {DBLP:conf/cav/2005},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@article{DBLP:journals/ijisec/BasinMV05,
+  author    = {David A. Basin and
+               Sebastian M{\"o}dersheim and
+               Luca Vigan{\`o}},
+  title     = {{OFMC}: A symbolic model checker for security protocols},
+  journal   = {Int. J. Inf. Sec.},
+  volume    = {4},
+  number    = {3},
+  year      = {2005},
+  pages     = {181-208},
+  ee        = {http://dx.doi.org/10.1007/s10207-004-0055-7},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@article{CaleiroEtAl2005,
+  title={{Relating strand spaces and distributed temporal logic for security protocol analysis}},
+  author={Caleiro, C. and Vigano, L. and Basin, D.},
+  journal={Logic Journal of IGPL},
+  volume={13},
+  number={6},
+  pages={637},
+  year={2005},
+  publisher={Oxford Univ Press}
+}
+
+@proceedings{DBLP:conf/cav/2005,
+  editor    = {Kousha Etessami and
+               Sriram K. Rajamani},
+  title     = {Computer Aided Verification, 17th International Conference,
+               CAV 2005, Edinburgh, Scotland, UK, July 6-10, 2005, Proceedings},
+  booktitle = {CAV},
+  publisher = {Springer},
+  series    = {Lecture Notes in Computer Science},
+  volume    = {3576},
+  year      = {2005},
+  isbn      = {3-540-27231-3},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@InProceedings{BeckerSewell04,
+  author =       {Moritz Y. Becker and Peter Sewell},
+  title =        {Cassandra: Flexible Trust Management, Applied to Electronic Health Records},
+  booktitle =    {17th Computer Security Foundations Workshop},
+  pages =        {139--154},
+  year =         2004,
+  address =      {Asilomar, CA},
+  month =        {June},
+  publisher =    {{IEEE CS} Press}
+}
+
+@TechReport{BellLaPadula75,
+  author =       {David E. Bell and Leonard J. LaPadula},
+  title =        {Computer Security Model:  Unified Exposition and {Multics} Interpretation},
+  institution =  {ESD},
+  year =         1975,
+  number =       {75-306},
+  month =        {June}
+}
+
+@TechReport{BellaEtAl01,
+  author =       {Giampaolo Bella and Fabio Massacci and Lawrence C. Paulson},
+  title =        {Verifying the {SET} Purchase Protocols},
+  institution =  {Cambridge University Computer Laboratory},
+  year =         {2001},
+  OPTkey =       {},
+  OPTtype =      {Report},
+  OPTnumber =    {524},
+  OPTaddress =   {},
+  OPTmonth =     {November},
+  note =         {Short version appeared in International Joint Conference on Automated Reasoning, June, 2001.  Available at http://www.cl.cam.ac.uk/\-users/\-lcp/\-papers/\-protocols.html},
+  OPTannote =    {}
+}
+
+@InProceedings{Bellare98,
+  author =       {Mihir Bellare},
+  title =        {Practice-Oriented Provable Security},
+  booktitle =    {First International Workshop on Information Security ({ISW} 97)},
+  year =         1998,
+  editor =       {E. Okamoto and G. Davida and M. Mambo},
+  volume =       1396,
+  series =       {LNCS},
+  publisher =    {Springer Verlag}
+}
+
+@InProceedings{BellareKillianRogaway94,
+  author =       {Mihir Bellare and J. Killian and Phillip Rogaway},
+  title =        {The Security of Cipher Block Chaining},
+  booktitle =    {Advances in Cryptology --- Crypto 94},
+  year =         1994,
+  editor =       {Yvo Desmedt},
+  volume =       839,
+  series =       {LNCS},
+  publisher =    {Springer Verlag}
+}
+
+@InProceedings{BellareRogaway93,
+  author =       {Mihir Bellare and Phillip Rogaway},
+  title =        {Entity Authentication and Key Distribution},
+  booktitle =    {Advances in Cryptology -- Crypto '93 Proceedings},
+  year =         1993,
+  number = 773,
+  series = {LNCS},
+  publisher =    {Springer-Verlag}
+}
+
+@InProceedings{BellareRogaway93a,
+  author =       {Mihir Bellare and Phillip Rogaway},
+  title =        {Random Oracles are Practical: a paradigm for designing efficient protocols},
+  booktitle =    {Proceedings, {ACM} Conference on Communications and Computer Security},
+  year =         1993,
+  pages =        "62--73",
+  publisher =    {{ACM}},
+  note =         {Full version available at http://www-cse.ucsd.edu/users/mihir/papers/}
+}
+
+@Article{BellerChangYacobi93,
+  author =       "Michael J. Beller and Li-Fung Chang and Yacov Yacobi",
+  title =        "Privacy and Authentication on a Portable
+                  Communications System",
+  journal =      "Journal on Selected Areas in Communications",
+  year =         1993,
+  volume =       11,
+  number =       6,
+  pages =        "821--829",
+  month =        aug
+}
+
+@Article{BellovinMerrit90,
+  author =        "S. M. Bellovin and M. Merrit",
+  title =        "Limitations of the {Kerberos} Authentication System",
+  journal =      "Computer Communication Review",
+  year =         1990,
+  volume =       20,
+  number =       5,
+  pages =        "119--132",
+  month =        oct,
+}
+
+@InProceedings{BellovinMerrit92,
+  author =       "S. M. Bellovin and M. Merrit",
+  title =        "Encrypted Key Exchange: Password based protocols
+                  secure against dictionary attacks",
+  pages =        "72--84",
+  booktitle =    "Proceedings 1992 IEEE Symposium on Research in
+                  Security and Privacy",
+  year =         1992,
+  publisher =    "IEEE CS",
+  month =        may
+}
+
+@InProceedings{Bellovin96,
+  author =       {Steven Bellovin},
+  title =        {Problem Areas for the {IP} Security Protocols},
+  booktitle =    {Proceedings of the Sixth USENIX {UNIX} Security Symposium},
+  year =         1996,
+  month =        {July},
+  note =         {Also at ftp://ftp.research.att.com/dist/smb/badesp.ps}
+}
+
+@Article{BessonEtAl01,
+  author =       {F. Besson and T. Jensen and D. L. M{\'e}tayer and T. Thorn},
+  title =        {Model Checking Security Properties of Control Flow Graphs},
+  journal =      {Journal of Computer Security},
+  year =         2001,
+  volume =       9,
+  pages =        {217--250}
+}
+
+@inproceedings{DBLP:conf/lpar/BezemC05,
+  author    = {Marc Bezem and
+               Thierry Coquand},
+  title     = {Automating Coherent Logic},
+  booktitle = {{LPAR}, Logic for Programming, Artificial Intelligence,
+                  and Reasoning},
+  year      = 2005,
+  pages     = {246-260},
+  series    = {Lecture Notes in Computer Science},
+  volume    = 3835,
+  ee        = {http://dx.doi.org/10.1007/11591191_18},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@proceedings{DBLP:conf/lpar/2005,
+  editor    = {Geoff Sutcliffe and
+               Andrei Voronkov},
+  title     = {Logic for Programming, Artificial Intelligence, and Reasoning,
+               12th International Conference, LPAR 2005, Montego Bay, Jamaica,
+               December 2-6, 2005, Proceedings},
+  booktitle = {LPAR},
+  publisher = {Springer},
+  series    = {Lecture Notes in Computer Science},
+  volume    = {3835},
+  year      = {2005},
+  isbn      = {3-540-30553-X},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@InProceedings{Bieber90,
+  author =       "P. Bieber",
+  title =        "A Logic of Communication in a Hostile Environment",
+  pages =        "14--22",
+  booktitle =    "Proceedings of the Computer Security Foundations
+                  Workshop III",
+  year =         1990,
+  publisher =    "IEEE CS Press"
+}
+
+@Article{BihamShamir91a,
+author =       "E. Biham and A. Shamir",
+title =        "Differential Cryptanalysis of DES-like Cryptosystems",
+OPTcrossref =  "",
+OPTkey =       "",
+OPTjournal =   "Advances in Cryptology -- Proceedings of CRYPTO
+'90",
+OPTyear =      "1991",
+OPTvolume =    "",
+OPTnumber =    "",
+OPTpages =     "3--72",
+OPTmonth =     "",
+OPTnote =      "",
+OPTannote =    ""
+}
+
+@Article{BihamShamir97,
+  author =       "Eli Biham and Adi Shamir",
+  title =        "Differential Fault Analysis of Secret Key Cryptosystems",
+  journal =      "Lecture Notes in Computer Science",
+  volume =       "1294",
+  year =         "1997"
+}
+
+@InProceedings{BirdGopalHerzbergJansonKuttenMolvaYung91,
+  author =       "R. Bird and I. Gopal and A. Herzberg and P. A.
+                  Janson and S. Kutten and R. Mulva and M. Yung",
+  title =        "Systematic Design of Two-Party Authentication Protocols",
+  editor =       "J. Feigenbaum",
+  series =       "Lecture Notes in Computer Science",
+  number =       576,
+  pages =        "44--61",
+  booktitle =    "Proceedings of Crypto '91: Advances in Cryptology ",
+  year =         1991,
+  publisher =    "Springer Verlag"
+}
+
+@Article{BirdGopalHerzbergJansonKuttenMolvaYung93,
+  author =       "R. Bird and I. Gopal and A. Herzberg and P. A.
+                  Janson and S. Kutten and R. Mulva and M. Yung",
+  title =        "Systematic Design of a Family of Attack-Resistant
+                  Authentication protocols",
+  journal =      "IEEE Journal on Selected Areas in Communications",
+  year =         1993,
+  volume =       11,
+  number =       5,
+  pages =        "679--693"
+}
+
+@Article{Birrell85,
+  author =       "A. D. Birrell",
+  title =        "Secure Communication using Remote Procedure Calls",
+  journal =      "ACM Transactions on Operating Systems",
+  year =         1985,
+  volume =       3,
+  number =       1,
+  pages =        "1--14",
+  month =        feb
+}
+
+@InProceedings{Blakely79,
+  author =       "G. R. Blakely",
+  title =        "Safeguarding Cryptographic Keys.",
+  pages =        "313--317",
+  booktitle =    "Proceedings AFIPS 1979 National Computer Conference",
+  year =         1979,
+  publisher =    AFIPS
+}
+
+@InProceedings{Blanchet01,
+  author =       {Bruno Blanchet},
+  title =        {An Efficient Protocol Verifier based on {Prolog} Rules},
+  booktitle =    {14th Computer Security Foundations Workshop},
+  pages =        {82--96},
+  year =         2001,
+  month =        {June},
+  publisher =    {IEEE CS Press}
+}
+
+@InProceedings{Blanchet02,
+  author =       {Bruno Blanchet},
+  title =        {From Secrecy to Authenticity in Security Protocols},
+  booktitle =    {9th Static Analysis Symposium},
+  pages =        {342--359},
+  number =       2477,
+  series =       {LNCS},
+  month =        {September},
+  year =         2002,
+  publisher =    {Springer Verlag}
+}
+
+@INPROCEEDINGS{Blanchet04,
+  title={Automatic proof of strong secrecy for security protocols},
+  author={Blanchet, B.},
+  booktitle={Security and Privacy, 2004. Proceedings. 2004 IEEE Symposium on},
+  year=2004,
+  month={May},
+  publisher =    {IEEE CS Press},
+  pages={ 86-100} }
+
+@PHDTHESIS{Blanchet08,
+  AUTHOR = {Bruno Blanchet},
+  TITLE = {V\'{e}rification automatique de protocoles cryptographiques:  mod{\`e}le formel et mod{\`e}le calculatoire. Automatic verification of security protocols: formal model and computational model},
+  SCHOOL = {Universit{\'e} Paris-Dauphine},
+  YEAR = 2008,
+  TYPE = {M\'{e}moire d'habilitation \`{a} diriger des recherches},
+  MONTH = NOV,
+  NOTE = {En fran\c{c}ais avec publications en anglais en annexe. In French with publications in English in appendix.}
+}
+
+@InProceedings{BlanchetPodelski03,
+  author =       {Bruno Blanchet and Andreas Podelski},
+  title =        {Verification of Cryptographic Protocols:  Tagging Enforces Termination},
+  booktitle =    {Foundations of Software Science and Computation Structures},
+  pages =        {136--152},
+  year =         2003,
+  series =       {LNCS},
+  month =        {April}
+}
+
+@InProceedings{Boebert85,
+  author =       "W. E. Boebert and R. Y. Kain",
+  title =        "A Practical Alternative to Hierarchical Integrity Policies",
+  booktitle =    "Proceedings of the Eighth National Computer Security Conference",
+  year =         1985
+}
+
+@InProceedings{BlazeEtAl97,
+  author =       {Matt Blaze and Joan Feigenbaum and Jack Lacy},
+  title =        {Distributed Trust Management},
+  booktitle =    {Proceedings, 1996 {IEEE} Symposium on Security and Privacy},
+  pages =        {164--173},
+  year =         1997,
+  month =        {May}
+}
+
+@Misc{BlazeEtAl99,
+  author =       {Matt Blaze and Joan Feigenbaum and John Ioannidis and Angelos D. Keromytis},
+  title =        {The {KeyNote} Trust Management System, version 2},
+  howpublished = {{IETF RFC} 2704},
+  month =        {September},
+  year =         1999
+}
+
+@Article{BonehEtAl97,
+  author =       "Dan Boneh and Richard A. DeMillo and Richard J. Lipton",
+  title =        "On the Importance of Checking Cryptographic Protocols for Faults",
+  journal =      "Lecture Notes in Computer Science",
+  volume =       "1233",
+  pages =        "37--51",
+  year =         "1997"
+}
+
+@TechReport{BonehEtAl98,
+  author =       "Bill Aiello and Dan Boneh and Matthew Franklin and Jeremy Horwitz",
+  title =        "Protocols for Secure Generation of Shared {RSA} Keys",
+  institution =  "Standford University",
+  year =         1998,
+  note =         "DARPA Contract F30602-97-C-0326, Data Item Number A007: Technical Information Report"
+}
+
+@InProceedings{Boneh98,
+  author =       {Dan Boneh},
+  title =        {The decision {Diffie-Hellman} problem},
+  booktitle =    {Proceedings of the Third Algorithmic Number Theory Symposium},
+  pages =        {48--63},
+  year =         1998,
+  number =       1423,
+  series =       {Lecture Notes in Computer Science},
+  publisher =    {Springer--Verlag}
+}
+
+@InProceedings{BonehFranklin97,
+  author =       "D. Boneh and M. Franklin",
+  title =        "Efficient Generation of Shared RSA Keys",
+  series =       "Lecture Notes in Computer Science",
+  number =       1233,
+  pages =        "425--439",
+  booktitle =    "Proceedings of Crypto '97",
+  year =         1997,
+  publisher =    "Springer Verlag"
+}
+
+@InProceedings{Boreale01,
+  author =       {Michele Boreale},
+  title =        {Symbolic Trace Analysis of Cryptographic Protocols},
+  booktitle =    {{ICALP}},
+  year =         2001
+}
+
+@InProceedings{Bovenlander,
+  author =       "E. Bovenlander and RL van Renesse",
+  title =        "Smartcards and Biometrics: An Overview",
+  booktitle =    "Computer Fraud and Security Bulletin",
+  year =         "1995",
+  pages =        "8--12"
+}
+
+@Article{Boyd90,
+  author =       "Colin Boyd",
+  title =        "Hidden Assumptions in Cryptographic Protocols",
+  journal =      "Proceedings of the IEE",
+  year =         1990,
+  volume =       "137 Pt E",
+  number =       6,
+  pages =        "433--436",
+  month =        nov,
+}
+
+@InProceedings{Boyd92,
+  author =       "C. Boyd",
+  title =        "A Formal Framework for Authentication",
+  pages =        "273--292",
+  booktitle =    "Proceedings ESORICS 92",
+  editor =       "Y. Deswarte and G. Eizenberg and J.-J. Quisquater",
+  publisher =    "Springer LNCS 648",
+  year =         "1992",
+}
+
+@InProceedings{BoydMao94a,
+  title =        "Designing Secure Key Exchange Protocols",
+  year =         1994,
+  pages =        "93--106",
+  editor =       "Dieter Gollmann",
+  booktitle=     "Computer Security---{ESORICS} '94",
+  author =       "Colin Boyd and Wenbo Mao",
+  publisher =    "Springer-Verlag"
+}
+
+@InProceedings{BraceEtAl90,
+  author =       {Karl S. Brace and Richard L. Rudell and Randal E. Bryant},
+  title =        {Efficient Implementation of a {BDD} Package},
+  booktitle =    {27th {ACM/IEEE} Design Automation Conference},
+  pages =        {40--45},
+  year =         1990
+}
+
+@InProceedings{BrickellCamenischChen04,
+  author =       {Ernie Brickell and Jan Camenisch and Liqun Chen},
+  title =        {Direct Anonymous Attestation},
+  booktitle = {ACM Conference on Communications and Computer Security ({CCS})},
+  year =         2004,
+  note =         {Full version available at \url{http://eprint.iacr.org/2004/205}}}
+
+@Article{BrickellOdlyzko88,
+  author =       "E. F. Brickell and A. M. Odlyzko",
+  title =        "Cryptanalysis: A Survey of Recent Results",
+  journal =      "Proceedings of the IEEE",
+  year =         1988,
+  volume =       76,
+  number =       5,
+  month =        may
+}
+
+@InProceedings{BroadfootLowe03,
+  author =       {Philippa Broadfoot and Gavin Lowe},
+  title =        {On Distributed Security Transactions that use Secure Transport Protocols},
+  booktitle =    {Proceedings, 16th Computer Security Foundations Workshop},
+  pages =        {63--73},
+  year =         2003,
+  publisher =    {{IEEE} {CS} Press}
+}
+
+@Article{Bryant86,
+  author =       {Randal E. Bryant},
+  title =        {Graph-Based Algorithms for Boolean Function Manipulation},
+  journal =      {IEEE Transactions on Computers},
+  year =         1986,
+  volume =       {C-35},
+  number =       8,
+  pages =        {677--691},
+  month =        {August}
+}
+
+@Article{BurrowsAbadiNeedham89,
+  author =       {Michael Burrows and Mart\'{\i}n Abadi and Roger Needham},
+  title =        {A Logic of Authentication},
+  journal =      {Proceedings of the Royal Society},
+  year =         1989,
+  volume =       {Series A, 426},
+  number =       1871,
+  pages =        {233--271},
+  month =        {December},
+  OPTnote =      {Also appeared as SRC Research Report 39 and, in a shortened form, in ACM Transactions on Computer
+Systems 8, 1 (February 1990), 18-36. }
+}
+
+@TechReport{BurrowsAbadiNeedham89a,
+  author =       "Michael Burrows and Mart\'{\i}n Abadi and Roger Needham",
+  title =        "A Logic of Authentication",
+  institution =  "Digital Systems Research Center",
+  year =         1989,
+  type =         "Technical Report",
+  number =       39,
+  month =        feb
+}
+
+@Article{BurrowsAbadiNeedham90,
+  author =       "Michael Burrows and Mart\'{\i}n Abadi and Roger M. Needham",
+  title =        "Rejoinder to {Nessett}",
+  journal =      "ACM Operating Systems Review",
+  year =         1990,
+  volume =       24,
+  number =       2,
+  pages =        "39--40",
+  month =        apr
+}
+
+@TechReport{BurrowsAbadiNeedham94,
+  author =       "Michael Burrows and Mart\'{\i}n Abadi and Roger M. Needham",
+  title =        "The Scope of a Logic of Authentication",
+  institution =  "Digital Systems Research Center",
+  year =         1994,
+  type =         "Revised Research Report",
+  number =       39
+}
+
+@InProceedings{ButtyanEtAl98,
+  author =       {Levente Butty{\'a}n and Sebastian Staamann and Uwe Wilhelm},
+  title =        {A Simple Logic for Authentication Protocol Design},
+  booktitle =    {11th {IEEE} Computer Security Foundations Workshop},
+  pages =        {153--162},
+  year =         1998
+}
+
+@Manual{CCITTX509,
+  title =        "The Directory-Authentication Framework",
+  author =       "{C. C. I. T. T. Recommendation X.509}",
+  organization = "C. C. I. T. T.",
+  year =         1988,
+  month =        dec,
+}
+
+@InProceedings{CampbellSafavi-NainiPleasants92,
+  author =       "E. A. Campbell and R. Safavi-Naini and P. A. Pleasants",
+  title =        "Partial Belief and Probabilistic Reasoning in the
+                  Analysis of Secure Protocols",
+  pages =        "84--91",
+  booktitle =    "Proceedings 5th IEEE Computer Security Foundations Workshop",
+  year =         1992,
+  publisher =    "IEEE CS Press"
+}
+
+@TechReport{Canetti01,
+  author =       {Ran Canetti},
+  title =        {Universally Composable Security: A New Paradigm for
+                  Cryptographic Protocols},
+  institution =  {IACR},
+  year =         2001,
+  number =       {2000/067},
+  month =        Oct,
+  note =         {Appeared in FOCS, 2001},
+  online =       {http://eprint.iacr.org/2000/067.ps.gz},
+}
+
+@InProceedings{CanettiHerzog06,
+  author =       {Ran Canetti and Jonathan Herzog},
+  title =        {Universally composable symbolic analysis of mutual authentication and key exchange protocols},
+  booktitle = {Proceedings, Theory of Cryptography Conference (TCC)},
+  year =         2006,
+  month =        {March}}
+
+@InProceedings{CanettiKrawczyk01,
+  title={Analysis of key-exchange protocols and their use for building secure channels},
+  author={Canetti, R. and Krawczyk, H.},
+  booktitle={Advances in Cryptology—EUROCRYPT 2001},
+  pages={453--474},
+  series =       {LNCS},
+  year={2001},
+  publisher={Springer}
+}
+
+@InProceedings{CanettiKrawczyk02,
+  author =       {Ran Canetti and Hugo Krawczyk},
+  title =        {Universally Composable Notions of Key Exchange and
+                  Secure Channels},
+  booktitle =    {Eurocrypt 2002},
+  pages =        {337--351},
+  series =       {LNCS},
+  publisher =    {Springer Verlag},
+  year =         2002
+}
+
+@InProceedings{CarboneEtAl03,
+  author =       {Marco Carbone and Mogens Nielsen and Vladimiro Sassone},
+  title =        {A Formal Model for Trust in Dynamic Networks},
+  booktitle =    {International Conference on Software Engineering and Formal Methods},
+  year =         2003,
+  editor =       {Antonio Cerone},
+  month =        {September},
+  publisher =    {{IEEE CS} Press}
+}
+
+@inproceedings{CarboneEtAl07,
+  author    = {Marco Carbone and
+               Kohei Honda and
+               Nobuko Yoshida},
+  title     = {Structured Communication-Centred Programming for Web Services},
+  booktitle = {Programming Languages and Systems, 16th European
+                  Symposium on Programming, ESOP 2007},
+  year      = 2007,
+  pages     = {2-17},
+  ee        = {http://dx.doi.org/10.1007/978-3-540-71316-6_2},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@InProceedings{Carlsen94a,
+  author =       "Ulf Carlsen",
+  title =        "Cryptographic Protocol Flaws",
+  booktitle =    "Proceedings 7th IEEE Computer Security Foundations Workshop",
+  publisher =    "IEEE CS",
+  year =         1994,
+  pages =        "192--200"
+}
+
+@InProceedings{Carlsen94b,
+  author =       "Ulf Carlsen",
+  title =        "Generating Formal Cryptographic Protocol Specifications",
+  booktitle =    "Proceedings 7th IEEE Computer Security Foundations Workshop",
+  year =         1994,
+  organization = "IEEE CS Press"
+}
+
+@Article{Carlsen94c,
+  author =       "Ulf Carlsen",
+  title =        "Optimal Privacy and Authentication on a Portable
+                  Communications System",
+  journal =      "Operating Systems Review",
+  year =         1994,
+  volume =       28,
+  number =       3,
+  pages =        "16--23"
+}
+
+@Article{CarterWegman79,
+  author =       {J. Lawrence Carter and Mark N. Wegman},
+  title =        {Universal Classes of Hash Functions},
+  journal =      {Journal of Computer and System Sciences},
+  year =         1979,
+  volume =       18,
+  pages =        {143--54}
+}
+
+@Article{WegmanCarter81,
+  author =       {Mark N. Wegman and J. Lawrence Carter},
+  title =        {New Hash Functions and Their Use in Authentication and Set Equality},
+  journal =      {Journal of Computer and System Sciences},
+  year =         1981,
+  volume =       22,
+  pages =        {265--79}
+}
+
+@InProceedings{CederquistEtAl07,
+  author =       {Jan Cederquist and Mohammad Torabi Dashti and Sjouke Mauw},
+  title =        {A Certified Email Protocol using Key Chains},
+  booktitle = {Advanced Information Networking and Applications
+                  Workshops/Symposia {(AINA'07)}, Symposium on
+                  Security in Networks and Distributed Systems
+                  {(SSNDS07)}},
+  pages =        {525--530},
+  year =         2007,
+  volume =       1,
+  publisher = {IEEE CS Press}}
+
+@InProceedings{MitchellEtAl99,
+  author =       {I. Cervesato and N. A. Durgin and P. D. Lincoln and J. C. Mitchell and A. Scedrov},
+  title =        {A Meta-Notation for Protocol Analysis},
+  booktitle =    {Proceedings, 12th {IEEE} Computer Security Foundations Workshop},
+  year =         1999,
+  month =        {June},
+  publisher =    {{IEEE} CS Press}
+}
+
+@InProceedings{CervesatoEtAl00,
+  author =       {I. Cervesato and N. A. Durgin and P. D. Lincoln and J. C. Mitchell and A. Scedrov},
+  title =        {Relating Strands and Multiset Rewriting for Security Protocol Analysis},
+  booktitle =    {Proceedings, 13th {IEEE} Computer Security Foundations Workshop},
+  year =         2000,
+  month =        {July},
+  publisher =    {{IEEE} CS Press}
+}
+
+@Article{CeriGottlobTanca89,
+  author =       "Stefano Ceri and Georg Gottlob and Letizia Tanca",
+  title =        "What You Always Wanted to Know About Datalog (And Never Dared to Ask)",
+  journal =      "IEEE Transactions of Knowledge and Data Engineering",
+  year =         1989,
+  volume =       1,
+  number =       1
+}
+
+@InProceedings{ChadhaEtAl01,
+  author =       {Rohit Chadha and Max Kanovich and Andr{\'e} Scedrov},
+  title =        {Inductive Methods and Contract-Signing Protocols},
+  booktitle =    {Proceedings, 8th {ACM} Conference on Computer and Communications Security},
+  pages =        {176--185},
+  year =         2001,
+  editor =       {Pierangela Samarati},
+  address =      {New York},
+  month =        {November},
+  publisher =    {{ACM} Press}
+}
+
+@InProceedings{ChadhaEtAl03,
+  author =       {Rohit Chadha and John C. Mitchell  and  Andre Scedrov and Vitaly Shmatikov},
+  title =        {Contract Signing, Optimism, and Advantage},
+  booktitle = {Concur --- Concurrency Theory},
+  pages =        {366-382},
+  year =         2003,
+  series =       {LNCS},
+  publisher = {Springer}}
+
+@InProceedings{Chaum83,
+  author =       "D. Chaum",
+  title =        "Blind Signatures for Untraceable Payments",
+  booktitle =    "Advances in Cryptology: proceedings of Crypto 82",
+  pages =        "199--203",
+  year =         "1983",
+  publisher =    "Plenum Press"
+}
+
+@InProceedings{ChengGligor90,
+  author =       "P.-C. Cheng and Virgil D. Gligor",
+  title =        "On the Formal Specification and Verification of a
+                  Multiparty Session Protocol",
+  pages =        "216--233",
+  booktitle =    "Proceedings of the IEEE 1990 Symposium on Research
+                  in Security and Privacy",
+  year =         1990,
+  publisher =    "IEEE CS Press"
+}
+
+@Article{ChenSwiftWarren95,
+  author =       "W. Chen and T. Swift and D. S. Warren",
+  title =        "Efficient Top-Down Computation of Queries under the Well-Founded Semantics",
+  journal =      "J. Logic Prog.",
+  year =         1995,
+  volume =       24,
+  number =       3,
+  pages =        "161--199"
+}
+
+@Article{ChenWarren96,
+  author =       "W. Chen and D. S. Warren",
+  title =        "Tabled Evaluation with Delaying for General Logic Programs",
+  journal =      "J. ACM",
+  mon =          jan,
+  year =         1996,
+  volume =       43,
+  number =       1,
+  pages =        "20--74"
+}
+
+@ARTICLE{CheinMugnier92,
+    author = {Michel Chein and Marie-Laure Mugnier},
+    title = {Conceptual Graphs: fundamental notions},
+    journal = {Revue d'Intelligence Artificielle},
+    year = {1992},
+    volume = {6},
+    pages = {365--406}
+}
+
+@inproceedings{CheinMugnier04,
+  author    = {Michel Chein and
+               Marie-Laure Mugnier},
+  title     = {Concept Types and Coreference in Simple Conceptual Graphs},
+  booktitle = {Conceptual Structures at Work: 12th International Conference
+               on Conceptual Structures, ICCS 2004, Huntsville, AL, USA,
+               July 19-23, 2004. Proceedings},
+  year      = {2004},
+  series    = {LNCS},
+  number    = {3127},
+  pages     = {303-318},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@article{chevalier2003deciding,
+  title={{Deciding the security of protocols with {Diffie-Hellman} exponentiation and products in exponents}},
+  author={Yannick Chevalier and Ralf K{\"u}sters and Micha{\"e}l
+                  Rusinowitch and Mathieu Turuani},
+  journal={FST TCS 2003: Foundations of Software Technology and Theoretical Computer Science},
+  pages={124--135},
+  year={2003},
+  publisher={Springer}
+}
+
+@InProceedings{Choretal85,
+  author =       "B. Chor and S. Goldwasser and S. Micali and B. Awerbuch",
+  title =        "Verifiable secret sharing and achieving simultaneity in the presence of faults",
+  pages =        "383--395",
+  booktitle =    "Proceedings of the 26th IEEE Symposium on Foundations of Computer Science",
+  year =          1985,
+  publisher =     "IEEE"
+}
+
+@Manual{CiscoCommandRef10,
+  title =        {Router Products Command Reference},
+  organization = {Cisco Systems},
+  address =      {San Jose, CA},
+  edition =      "10th",
+  year =         1994,
+  note =         {Chapters 10 to 17 (especially Chapter~16).  For more recent information, see~\url{http://www.cisco.com/univercd/}.}
+}
+
+@inproceedings{CiobacaCortier2010,
+   author = {{\c{S}}tefan Ciob{\^a}c{\u{a}} and V{\'e}ronique Cortier},
+   booktitle = {CSF},
+   DOI = {10.1109/CSF.2010.29},
+   month = jul,
+   pages = {322-336},
+   publisher = {{IEEE} Computer Society Press},
+   title = {Protocol composition for arbitrary primitives},
+   url = {http://www.lsv.ens-cachan.fr/Publis/RAPPORTS_LSV/PDF/ rr-lsv-2010-09.pdf},
+   year = {2010},
+}
+
+@Article{DClarkeEtAl01,
+  author =       {Dwaine Clarke and Jean-Emile Elien and Carl Ellison and Matt Fredette and Alexander Morcos and Ronald L. Rivest},
+  title =        {Certificate Chain Discovery in {SPKI/SDSI}},
+  journal =      {Journal of Computer Security},
+  year =         2001,
+  volume =       9,
+  number =       4,
+  pages =        {285--322}
+}
+
+@Book{ClarkeEtAl01,
+  author =       {Edmund M. {Clarke, Jr.} and Orna Grumberg and Doron A. Peled},
+  title =        {Model Checking},
+  publisher =    {{MIT} Press},
+  year =         2001
+}
+
+@Article{ClarkJacob95,
+  author =       "John Clark and Jeremy Jacob",
+    title =      "On The Security of Recent Protocols",
+      journal =  "Information Processing Letters",
+        year =   1995,
+          volume =       56,
+            number =     3,
+              pages =    "151--155",
+                month =  nov
+                }
+
+@TechReport{ClarkJacob95a,
+  author =       "John Clark and Jeremy Jacob",
+  title =        "{Security Protocols: An Annotated Bibliography}",
+  institution =  "Dept. of Computer Science, University of York",
+  year =         1995,
+  month =        "June"
+}
+
+@TechReport{ClarkJacob95b,
+  author =       "John Clark and Jeremy Jacob",
+  title =        "{A Library of Security Protocols}",
+  institution =  "Dept. of Computer Science, University of York",
+  year =         1995,
+  month =        "June"
+}
+
+@TechReport{ClarkJacob95c,
+  author =       "John Clark and Jeremy Jacob",
+  title =        "{A Library of Security Protocols with Attacks}",
+  institution =  "Dept. of Computer Science, University of York",
+  year =         1995,
+  month =        "June"
+}
+
+@Unpublished{ClarkJacob95d,
+  author =       "John Clark and Jeremy Jacob",
+  title =        "{Implementation Dependencies in Repeated
+                  Authentication Protocols}",
+  note =         "",
+  OPTcrossref =  "",
+  OPTkey =       "",
+  OPTyear =      "1995",
+  OPTmonth =     "June",
+  OPTannote =    ""
+}
+
+@Unpublished{ClarkJacob95e,
+  author =       "John Clark and Jeremy Jacob",
+  title =        "{On the Security of Hwang and Chen's SPLICE/AS
+                  Augmented Protocol}",
+  year =         1995,
+  month =        "June",
+  note = "University of York, Department of Computer Science"
+}
+
+@Unpublished{ClarkJacob97a,
+  author =       "John Clark and Jeremy Jacob",
+  title =        "A Survey of Authentication Protocol Literature: Version 1.0",
+  year =         1997,
+  month =        "November",
+  note = "University of York, Department of Computer Science"
+}
+
+@Unpublished{ClarkJacob95f,
+  author =       "John Clark and Jeremy Jacob",
+  title =        "On the {Security of Recent Protocols}",
+  note =         "Submitted to Information Processing Letters",
+  year =         1995,
+  month =        "July",
+  annote =       "Submitted to Information Processing Letters"
+}
+
+@Unpublished{ClarkJacob96a,
+  author =       "John Clark and Jeremy Jacob",
+  title =        "Multi-server Spoofing in the {Kerberos} Authentication Protocol",
+  note =         "",
+  OPTcrossref =  "",
+  OPTkey =       "",
+  OPTyear =      1996,
+  OPTmonth =     jan,
+}
+
+@Unpublished{ClarkJacob96b,
+  author =       "John Clark and Jeremy Jacob",
+  title =        "Freshness is Not Enough",
+  note =         "",
+  OPTcrossref =  "",
+  OPTkey =       "",
+  OPTyear =      1996,
+  OPTmonth =     jan,
+}
+
+@Unpublished{ClarkJacob96c,
+  author =       "John Clark and Jeremy Jacob",
+  title =        "Non-Repeatability is Not Enough",
+  note =         "",
+  OPTcrossref =  "",
+  OPTkey =       "",
+  OPTyear =      1996,
+  OPTmonth =     jan,
+}
+
+@InProceedings{ClarkeJhaMarrero98,
+  author =       {Edmund Clarke and Somesh Jha and Will Marrero},
+  title =        {Using State Space Exploration and a Natural Deduction Style Message Derivation Engine to Verify Security Protocols},
+  booktitle =    {Proceedings, {IFIP} Working Conference on Programming Concepts and Methods (\textsc{Procomet})},
+  year =         1998
+}
+
+@Article{CokerEtAl10,
+  author =       {George Coker and Joshua Guttman and Peter Loscocco
+                  and Amy Herzog and Jonathan Millen and Brian
+                  O'Hanlon and John Ramsdell and Ariel Segall and
+                  Justin Sheehy and Brian Sniffen},
+  title =        {Principles of Remote Attestation},
+  journal =      {International Journal of Information Security},
+  year =         2011,
+  volume = 10,
+  number = 2,
+  pages = {63--81}}
+
+@Article{ComonCortier04,
+  author =       {Hubert Comon and V\'{e}ronique Cortier},
+  title =        {Security properties: two agents are sufficient},
+  journal =      {Science of Computer Programming},
+  year =         2004,
+  volume =       50,
+  number =       {1-3},
+  pages =        {51--71},
+  month =        {March}
+}
+
+@inproceedings{CortierDelaune07,
+        author =        {V{\'e}ronique Cortier and J{\'e}r{\'e}mie Delaitre and St{\'e}phanie Delaune},
+        booktitle =     {{F}oundations of {S}oftware {T}echnology and {T}heoretical {C}omputer {S}cience ({FSTTCS}'07)},
+        month = dec,
+        publisher =     {Springer},
+        series =        {LNCS},
+        title = {Safely Composing Security Protocols},
+        url =   {\url{http://www.lsv.ens-cachan.fr/Publis/PAPERS/PDF/CDD-fsttcs07.pdf}},
+        year =  2007,
+}
+
+@article{cortier2009safely,
+  title={Safely composing security protocols},
+  author={V{\'e}ronique Cortier and St{\'e}phanie Delaune},
+  journal={Formal Methods in System Design},
+  volume={34},
+  number={1},
+  pages={1--36},
+  year={2009},
+  publisher={Springer}
+}
+
+@TechReport{Coppersmith89,
+  author =       "D. Coppersmith",
+  title =        "Analysis of {ISO/CCITT} Document {X.509} Annex {D}",
+  institution =  "IBM Research Division",
+  year =         1989,
+  address =      "Yorktown Heights",
+  month =        jun
+}
+
+@Article{Coppersmith94,
+  author =       "D. Coppersmith",
+  title =        "The Data Encryption Standard (DES) and its strength
+                  against attacks",
+  journal =      "IBM Journal of Research and Development",
+  year =         1994,
+  volume =       38,
+  number =       3,
+  pages =        "243--250",
+  month =        "May"
+}
+
+@inproceedings{CorinEtAl07,
+  author    = {Ricardo Corin and
+               Pierre-Malo Deni{\'e}lou and
+               C{\'e}dric Fournet and
+               Karthikeyan Bhargavan and
+               James J. Leifer},
+  title     = {Secure Implementations for Typed Session Abstractions},
+  booktitle = {20th IEEE Computer Security Foundations Symposium {CSF}},
+  year      = {2007},
+  pages     = {170-186},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@inproceedings{BhargavanEtAl09,
+  author    = {Karthikeyan Bhargavan and Ricardo Corin and
+               Pierre-Malo Deni{\'e}lou and
+               C{\'e}dric Fournet and
+               James J. Leifer},
+  title     = {Cryptographic Protocol Synthesis and Verification for Multiparty Sessions},
+  booktitle = {IEEE Computer Security Foundations Symposium},
+  year      = 2009
+}
+
+@conference{blake1999authenticated,
+  title={{Authenticated {Diffe-Hellman} key agreement protocols}},
+  author={Simon Blake-Wilson and Alfred Menezes},
+  booktitle={Selected Areas in Cryptography},
+  pages={630--630},
+  year={1999},
+  organization={Springer}
+}
+
+@article{boneh1998decision,
+  title={The decision {Diffie-Hellman} problem},
+  author={Dan Boneh},
+  journal={Algorithmic Number Theory},
+  pages={48--63},
+  year={1998},
+  publisher={Springer}
+}
+
+@article{boreale2003symbolic,
+  title={{Symbolic analysis of crypto-protocols based on modular exponentiation}},
+  author={Boreale, M. and Buscemi, M.G.},
+  journal={Mathematical Foundations of Computer Science},
+  pages={269--278},
+  year={2003},
+  publisher={Springer}
+}
+
+@InCollection{BressonEtAl11,
+  author =       {Emmanuel Bresson and Yassine Lakhnech and Laurent
+                  Mazar{\'e} and Bogdan Warinschi},
+  title =        {Computational Soundness:  The Case of
+                  {Diffie-Hellman} Keys},
+  booktitle =    {Formal Models and Techniques for Analyzing Security Protocols},
+  key =          {CortierKremer2011},
+  publisher = {{IOS} Press},
+  year =         2011,
+  editor =       {Veronique Cortier and Steve Kremer},
+  series =       {Cryptology and Information Security Series}
+}
+
+@InProceedings{Ciobaca10,
+  author = 	 {Stefan Ciobaca and V\'eronique Cortier},
+  title = 	 {Protocol Composition for Arbitrary Primitives},
+  booktitle = {{CSF} '10},
+  pages = 	 {322-336},
+  year = 	 2010,
+  publisher = {{IEEE} {CS} Press}}
+
+@article{CokerEtAl11,
+   author = {George Coker and Joshua Guttman and Peter Loscocco and
+                  Amy Herzog and Jonathan Millen and Brian O'Hanlon
+                  and John Ramsdell and Ariel Segall and Justin Sheehy
+                  and Brian Sniffen},
+   affiliation = {National Security Agency and The MITRE Corporation},
+   title = {Principles of remote attestation},
+   journal = {International Journal of Information Security},
+   publisher = {Springer Berlin / Heidelberg},
+   issn = {1615-5262},
+   keyword = {Computer Science},
+   pages = {1-19},
+   url = {http://dx.doi.org/10.1007/s10207-011-0124-7},
+   year = {2011}
+}
+
+@InProceedings{CrazzolaraMilicia02,
+  author =       {Federico Crazzolara and Giuseppe Milicia},
+  title =        {Developing Security Protocols in $\chi$-Spaces},
+  booktitle =    {Proceedings, 7th Nordic Workshop on Secure {IT} Systems},
+  year =         2002,
+  address =      {Karlstad, Sweden},
+  month =        {November}
+}
+
+@InProceedings{CrazzolaraWinskel01,
+  author =       {Federico Crazzolara and Glynn Winskel},
+  title =        {Events in Security Protocols},
+  booktitle =    {Proceedings, 8th {ACM} Conference on Computer and Communications Security},
+  pages =        {96--105},
+  year =         2001,
+  address =      {Philadelphia},
+  month =        {November},
+  publisher =    {{ACM} Press}
+}
+
+@InProceedings{CrazzolaraWinskel02,
+  author =       {Federico Crazzolara and Glynn Winskel},
+  title =        {Composing Strand Spaces},
+  booktitle =    {Proceedings, Foundations of Software Technology and Theoretical Computer Science},
+  pages =        {97--108},
+  year =         2002,
+  number =       2556,
+  series =       {LNCS},
+  address =      {Kanpur},
+  month =        {December},
+  publisher =    {Springer Verlag}
+}
+
+@phdthesis{Cremers06,
+  Author    = {C.J.F. Cremers},
+  Title     = {Scyther - Semantics and Verification of Security Protocols},
+  School    = {Eindhoven University of Technology},
+  Publisher = {University Press Eindhoven},
+  Year      = 2006,
+  Type      = {{Ph.D.} dissertation},
+  ISBN      = {978-90-386-0804-4},
+}
+
+@inproceedings{Cremers2008,
+ author = {Cas J.F. Cremers},
+ title = {Unbounded verification, falsification, and characterization of security protocols by pattern refinement},
+ booktitle = {{ACM} Conference on Computer and Communications Security
+                  ({CCS})},
+ year = 2008,
+ isbn = {978-1-59593-810-7},
+ pages = {119--128},
+ location = {Alexandria, Virginia, USA},
+ doi = {http://doi.acm.org/10.1145/1455770.1455787},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+}
+
+@misc{CremersFeltz2011,
+    author = {Cas Cremers and Michele Feltz},
+    title = {One-round Strongly Secure Key Exchange with Perfect Forward Secrecy and Deniability},
+    howpublished = {Cryptology ePrint Archive, Report 2011/300},
+    year = {2011},
+    note = {\url{http://eprint.iacr.org/2011/300}},
+}
+
+@article{Cremers12,
+  title={Automated analysis of {Diffie-Hellman} protocols and advanced security properties},
+  author={Benedikt Schmidt and Simon Meier and Cas Cremers and David A. Basin},
+  journal={Computer Security Foundations, ({CSF})},
+  pages= {25--27},
+  year= 2012
+}
+
+@Proceedings{Crypto93,
+  title =        "Efficient DES Key Search",
+  year =         1993
+}
+
+@PhdThesis{TorabiDashti07,
+  author =       {Mohammad Torabi Dashti},
+  title =        {Keeping Fairness Alive},
+  school =       {Vrije Universiteit},
+  year =         2007,
+  address =      {Amsterdam}}
+
+@inproceedings{DattaEtAl03a,
+  author =       "Anupam Datta and Ante Derek and John C. Mitchell and Dusko Pavlovic",
+  title =        "Secure protocol composition",
+  booktitle =    "Proceedings, Formal Methods in Security Engineering",
+  editor =       "Michael Backes and David Basin and Michael Waidner",
+  publisher =    "ACM",
+  pages =        "11--23",
+  year =         2003
+}
+
+@inproceedings{DattaEtAl03,
+  author =       "Anupam Datta and Ante Derek and John C. Mitchell and Dusko Pavlovic",
+  title =        "A derivation system for security protocols and its logical formalization",
+  booktitle =    "Proceedings, 16th Computer Security Foundations Workshop",
+  editor =       "Dennis Volpano",
+  publisher =    "IEEE CS Press",
+  pages =        "109--125",
+  year =         "2003",
+  url =          "ftp://ftp.kestrel.edu/pub/papers/pavlovic/CSFW03.pdf",
+}
+
+@InProceedings{DattaEtAl04,
+  author =       {Anupam Datta and Ante Derek and John C. Mitchell and Dusko Pavlovic},
+  title =        {Abstraction and Refinement in Protocol Derivation},
+  booktitle = {{IEEE} Computer Security Foundations Workshop},
+  year =         2004,
+  publisher = {{IEEE} {CS} Press}}
+
+@Article{DattaEtAl05,
+  author =       {Anupam Datta and Ante Derek and John C. Mitchell and Dusko Pavlovic},
+  title =        {A Derivation System and Compositional Logic for
+     Security Protocols},
+  journal =      {Journal of Computer Security},
+  year =         2005,
+  volume =       13,
+  number =       3,
+  pages =        {423--482}
+}
+
+@inproceedings{DBLP:conf/csfw/DattaDMW06,
+  author    = {Anupam Datta and
+               Ante Derek and
+               John C. Mitchell and
+               Bogdan Warinschi},
+  title     = {Computationally Sound Compositional Logic for Key Exchange
+               Protocols},
+  booktitle = {Computer Security Foundations Workshop},
+  year      = 2006,
+  pages     = {321-334},
+  ee        = {http://doi.ieeecomputersociety.org/10.1109/CSFW.2006.9},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@proceedings{DBLP:conf/csfw/2006,
+  title     = {19th IEEE Computer Security Foundations Workshop, (CSFW-19
+               2006), 5-7 July 2006, Venice, Italy},
+  booktitle = {CSFW},
+  publisher = {IEEE CS},
+  year      = {2006},
+  isbn      = {0-7695-2615-2},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@Article{DavisSwick90,
+  author =       "D Davis and R Swick",
+  title =        "Network Security via Private-Key Certificates",
+  year =         1990,
+  journal =      "Operating Systems Review",
+  pages =        "64--67"
+}
+
+@Booklet{Dedekind1888,
+  title =        {Was Sind und Was Sollen die Zahlen?},
+  author =       {Richard Dedekind},
+  address =      {Brunschweig},
+  year =         1888,
+  note =         {Translated as ``The Nature and Meaning of Numbers,'' in Richard Dedekind, \emph{Essays on the Theory of Numbers}, New York:  Dover, 1963.}
+}
+
+@InProceedings{DelauneEtAl2011,
+  author =       {St{\'e}phanie Delaune and Steve Kremer and Mark D. Ryan and Graham Steel},
+  title =        {Formal analysis of protocols based on {TPM} state registers},
+  booktitle = {{IEEE} Symposium on Computer Security Foundations},
+  year =         2011,
+  month =        {June},
+  publisher = {{IEEE CS} Press}}
+
+@Book{Denning82,
+author =       "D. E. Denning",
+title =        "Cryptography and Data Security",
+publisher =    "Addison Wesley",
+year =         "1982",
+}
+
+@Article{DenningSacco81,
+  author =       "Dorothy Denning and G. Sacco",
+  title =        "Timestamps in Key Distribution Protocols",
+  journal =      "Communications of the ACM",
+  year =         1981,
+  volume =       24,
+  number =       8,
+  month =        aug
+}
+
+@Misc{DOD5200.28,
+  title =        {{Department of Defense} Trusted Computer System Evaluation Criteria},
+  howpublished = {{DOD} 5200.28-{STD}},
+  month =        {December},
+  year =         1985,
+  key =          {Department of Defense}
+}
+
+@Misc{DES,
+  author =       "National Bureau of Standards",
+  title =        "Data Encryption Standard",
+  howpublished = "Federal Information Processing Standards Publication 46",
+  month =        "January",
+  year =         1977
+}
+
+@Misc{DierksEtAl99,
+  author =       {T. Dierks and C. Allen},
+  title =        {The {TLS} Protocol},
+  howpublished = {{RFC} 2246},
+  month =        {January},
+  year =         1999
+}
+
+@Misc{RFC2104,
+  author =       {H. Krawczyk and M. Ballare and R. Canetti},
+  title =        {{HMAC}: Keyed--Hashing for Message Authentication},
+  howpublished = {{RFC} 2104},
+  month =        {February},
+  year =         1997
+}
+
+@Misc{rfc2246,
+  author =       {T. Dierks and C. Allen},
+  title =        {The {TLS} Protocol},
+  howpublished = {{RFC} 2246},
+  month =        {January},
+  year =         1999
+}
+
+@Article{Diffie88,
+  author =       "Whitfield Diffie",
+  title =        "The First Ten Years in Public Key Cryptography",
+  journal =      "Proceedings of the IEEE",
+  year =         1988,
+  volume =       76,
+  number =       5,
+  pages =        "560-577",
+  month =        may,
+}
+
+@Article{DiffieHellman76,
+  author =       "W. Diffie and M. Hellman",
+  title =        "New Directions in Cryptography",
+  journal =      "IEEE Transactions on Information Theory",
+  year =         1976,
+  volume =       22,
+  number =       6,
+  pages =        "644--654",
+  month =        nov
+}
+
+@article{diffie1992authentication,
+  title={{Authentication and authenticated key exchanges}},
+  author={Whitfield Diffie and Paul C. {van Oorschot} and Michael J. Wiener},
+  journal={Designs, Codes and Cryptography},
+  volume=2,
+  number=2,
+  pages={107--125},
+  issn={0925-1022},
+  year=1992,
+  publisher={Springer}
+}
+
+@inproceedings{dilloway2008specifying,
+  title={Specifying secure transport channels},
+  author={Christopher Dilloway and Gavin Lowe},
+  booktitle={CSF},
+  pages={210--223},
+  year=2008,
+  organization={IEEE}
+}
+
+@article{DoughertyGuttman2012,
+  title={Symbolic Protocol Analysis for {Diffie-Hellman}},
+  author={Daniel J. Dougherty and Joshua D. Guttman},
+  journal={Arxiv preprint arXiv:1202.2168},
+  note = {At \url{http://arxiv.org/abs/1202.2168v1}},
+  year={2012}
+}
+
+@InProceedings{DoughertyGuttman2012a,
+ author = 	 {Daniel J. Dougherty and Joshua D. Guttman},
+  title = 	 {An Algebra for
+  Symbolic {Diffie-Hellman} Protocol Analysis},
+  booktitle = {Trustworthy Global
+  Computing},
+  year = 	 2012,
+  editor = 	 {C. Palamidessi and M. Ryan},
+  volume    = {8191},
+  pages     = {164--181},
+  series = 	 {LNCS}}
+
+@TechReport{DoghmiGuttmanThayer04,
+  author =       {Shaddin Doghmi and Joshua Guttman and F. Javier Thayer},
+  title =        {The Shapes of Bundles},
+  institution =  {The MITRE Corp.},
+  year =         2004,
+  type =         {MTR},
+  number =       {05 B 02}
+}
+
+@TechReport{DoghmiGuttmanThayer05,
+  author =       {Shaddin Doghmi and Joshua Guttman and F. Javier Thayer},
+  title =        {Skeletons and the Shapes of Bundles},
+  institution =  {The MITRE Corp.},
+  year =         2005,
+  type =         {MTR},
+  number =       {05 B 02, Revision 1}
+}
+
+@TechReport{DoghmiGuttmanThayer05a,
+  author =       {Shaddin Doghmi and Joshua Guttman and F. Javier Thayer},
+  title =        {Skeletons and the Shapes of Bundles},
+  institution =  {The MITRE Corp.},
+  year =         2005,
+  note =         {Available at \url{http://www.ccs.neu.edu/home/guttman/skeletons.pdf}}
+}
+
+@Unpublished{DoghmiGuttmanThayer06,
+  author =       {Shaddin F. Doghmi and Joshua D.~Guttman and F. Javier
+  Thayer},
+  title =        {Skeletons, Homomorphisms, and Shapes: Characterizing Protocol Executions},
+  note =         {Submitted for publication},
+  month =        {June},
+  year =         2006}
+
+@Unpublished{DoghmiGuttmanThayer06a,
+  author =       {Shaddin F. Doghmi and Joshua D.~Guttman and F. Javier
+  Thayer},
+  title =        {Searching for Shapes in Cryptographic Protocols (Extended Version)},
+  note =         {\url{http://eprint.iacr.org/2006/435}},
+  month =        {November},
+  year =         2006}
+
+@InProceedings{DoghmiGuttmanThayer07a,
+  author =       {Shaddin F. Doghmi and Joshua D.~Guttman and F. Javier
+  Thayer},
+  title =        {Skeletons, Homomorphisms, and Shapes: Characterizing Protocol Executions},
+  booktitle = {Proceedings, Mathematical Foundations of Program Semantics},
+  year =         2007,
+  editor =       {M. Mislove},
+  OPTseries =    {Electronic Lecture Notes in Theoretical Computer Science},
+  month =        {April}}
+
+@InProceedings{DoghmiGuttmanThayer07,
+  author =       {Shaddin F. Doghmi and Joshua D.~Guttman and F. Javier
+  Thayer},
+  title =        {Searching for Shapes in Cryptographic Protocols},
+  booktitle = {Tools and Algorithms for Construction and Analysis of Systems {(TACAS)}},
+  year =         2007,
+  series =       {LNCS},
+  number =       4424,
+  pages =       {523--538},
+  formernote =   {Extended version at \url{http://eprint.iacr.org/2006/435}.  {CPSA} is available at \url{http://hackage.haskell.org/package/cpsa}}}
+
+@InProceedings{DoghmiGuttmanThayer07b,
+  author =       {Shaddin F. Doghmi and Joshua D.~Guttman and F. Javier Thayer},
+  title =        {Completeness of the Authentication Tests},
+  booktitle =    {European Symposium on Research in Computer Security ({ESORICS})},
+  pages =        {106--121},
+  year =         2007,
+  editor =       {J. Biskup and J. Lopez},
+  number =       4734,
+  series =       {LNCS},
+  month =        {September},
+  publisher =    {Springer-Verlag}}
+
+@InProceedings{DoghmiGuttmanThayer07c,
+  author =       {Shaddin~F. Doghmi and Joshua~D. Guttman and F.~Javier Thayer},
+  title =        {Skeletons and the Shapes of Bundles},
+  booktitle = {Workshop on Issues in the Theory of Security ({WITS})},
+  year =         2007,
+  month =        {March},
+  note =         {Workshop associated with ETAPS, Braga, Portugal}}
+
+@Article{DolevYao83,
+  author =       {Daniel Dolev and Andrew Yao},
+  title =        {On the Security of Public-Key Protocols},
+  journal =      {{IEEE} Transactions on Information Theory},
+  year =         1983,
+  volume =       29,
+  pages =        {198--208}
+}
+
+@Article{DolevEvenKarp82,
+  author =       {D. Dolev and S. Even and R. M. Karp},
+  title =        {On the Security of Ping-Pong Protocols},
+  journal =      {Information and Control},
+  year =         1982,
+  volume =       55,
+  pages =        {57--68}
+}
+
+@TechReport{DTOS97,
+  author =       "Secure Computing Corporation",
+  title =        "DTOS General System Security and Assurability Assessment Report",
+  institution =  "MD A904-93-C-4209 CDRL A011",
+  year =         1997,
+  month =        "June",
+  note =         "(http://www.securecomputing.com/randt/HTML/dtos.html)"
+}
+
+@InProceedings{DurginEtAl99,
+  author =       {N. A. Durgin and P. D. Lincoln and J. C. Mitchell and A. Scedrov},
+  title =        {Undecidability of Bounded Security Protocols},
+  booktitle =    {Proceedings of the Workshop on Formal Methods and Security Protocols --- FMSP},
+  year =         1999,
+  note =         {Final version appears in \emph{Journal of Computer Security}, 2004}
+}
+
+@Article{DurginEtAl04a,
+  author =       {Nancy Durgin and Patrick Lincoln and John Mitchell and Andre Scedrov},
+  title =        {Multiset Rewriting and the Complexity of Bounded Security Protocols},
+  journal =      {Journal of Computer Security},
+  year =         2004,
+  volume =       12,
+  number =       2,
+  pages =        {247--311},
+  note =         {Initial version  appeared in \emph{Workshop on Formal Methods and Security Protocols}, 1999}
+}
+
+@Article{DurginEtAl04,
+  author =       {Nancy Durgin and Patrick Lincoln and John Mitchell and Andre Scedrov},
+  title =        {Multiset Rewriting and the Complexity of Bounded Security Protocols},
+  journal =      {Journal of Computer Security},
+  year =         2004,
+  volume =       12,
+  number =       2,
+  pages =        {247--311},
+  note =         {Initial version  appeared in \emph{Workshop on Formal Methods and Security Protocols}, 1999}
+}
+
+@Unpublished{DurginEtAl00,
+  author =       {Nancy Durgin and John C. Mitchell and Dusko Pavlovic},
+  title =        {Protocol Composition and Correctness},
+  note =         {Short talk delivered at \emph{Logic in Computer Science}},
+  month =        {June},
+  year =         2000
+}
+
+@InProceedings{DurginEtAl01,
+  author =       {Nancy Durgin and John Mitchell and Dusko Pavlovic},
+  title =        {A Compositional Logic for Protocol Correctness},
+  booktitle =    {Proceedings, 14th Computer Security Foundations Workshop},
+  year =         2001,
+  publisher =    {{IEEE} CS Press},
+  month =        {June}
+}
+
+@Article{DurginEtAl03,
+  author =       {Nancy Durgin and John Mitchell and Dusko Pavlovic},
+  title =        {A Compositional Logic for proving security properties of protocols},
+  journal =      {Journal of Computer Security},
+  year =         2003,
+  volume =       11,
+  number =       4,
+  pages =        {677--721}
+}
+
+@Misc{Eastlake99,
+  author =       {D. Eastlake},
+  title =        {Domain Name Security Extensions},
+  howpublished = {{RFC} 2535},
+  month =        {March},
+  year =         1999
+}
+
+@Misc{RFC2535,
+  author =       {D. Eastlake},
+  title =        {Domain Name Security Extensions},
+  howpublished = {{RFC} 2535},
+  month =        {March},
+  year =         1999
+}
+
+@Misc{Eastlake98,
+  author =       {Donald Eastlake},
+  title =        {Secret Key Establishment for {DNS}},
+  howpublished = {Internet--Draft draft-ietf-dnssec-tkey-01.txt},
+  month =        {September},
+  year =         1998
+}
+
+@Misc{Eastlake98a,
+  author =       {Donald E. Eastlake},
+  title =        {Secure Domain Name System Dynamic Update},
+  howpublished = {Internet--Draft draft-ietf-dnssec-update2-00.txt},
+  month =        {August},
+  year =         1998
+}
+
+@Misc{Ellison99,
+  author =       {Carl Ellison},
+  title =        {{SPKI}  Requirements},
+  howpublished = {{IETF RFC} 2692},
+  month =        {September},
+  year =         1999
+}
+
+@Misc{EllisonEtAl99,
+  author =       {Carl Ellison and Bill Frantz and Butler Lampson and Ron Rivest and Brian Thomas and Tatu Ylonen},
+  title =        {{SPKI} Certificate Theory},
+  howpublished = {{IETF RFC} 2693},
+  month =        {September},
+  year =         1999
+}
+
+@Misc{ElzBush97,
+  author =       {R. Elz and R.  Bush},
+  title =        {Clarifications to the {DNS} Specification},
+  howpublished = {{RFC} 2182},
+  month =        {July},
+  year =         1997
+}
+
+@Misc{RFC2182,
+  author =       {R. Elz and R.  Bush},
+  title =        {Clarifications to the {DNS} Specification},
+  howpublished = {{RFC} 2182},
+  month =        {July},
+  year =         1997
+}
+
+@article{escobar2008state,
+  title={{State space reduction in the Maude-{NPA} protocol analyzer}},
+  author={Santiago Escobar and Catherine Meadows and Jos\'e Meseguer},
+  journal={Computer Security-ESORICS 2008},
+  pages={548--562},
+  year={2008},
+  publisher={Springer}
+}
+
+@article{escobar2009maude,
+  title={{Maude-{NPA}: Cryptographic protocol analysis modulo
+                  equational properties}},
+  author={Santiago Escobar and Catherine Meadows and Jos\'e Meseguer},
+  journal={Foundations of Security Analysis and Design V},
+  pages={1--50},
+  year={2009},
+  publisher={Springer}
+}
+
+@inproceedings{DBLP:conf/fosad/EscobarMM07,
+  author    = {Santiago Escobar and
+               Catherine Meadows and
+               Jos\'e Meseguer},
+  title     = {Maude-{NPA}: Cryptographic Protocol Analysis Modulo Equational
+               Properties},
+  booktitle = {Foundations of Security Analysis and Design {V}, {FOSAD}
+                  2007--2009 Tutorial Lectures},
+  pages     = {1-50},
+  publisher = {Springer},
+  series    = {Lecture Notes in Computer Science},
+  volume    = 5705,
+  year      = 2009,
+  isbn      = {978-3-642-03828-0},
+  ee        = {http://dx.doi.org/10.1007/978-3-642-03829-7_1},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@TechReport{EvenYacobi80,
+  title={Relations among public key signature systems},
+  author={Shimon Even and Yacov Yacobi},
+  institution={Computer Science Department, Technion},
+  number=175,
+  year =         1980
+}
+
+@InProceedings{EvenEtAl85,
+  author =       {Shimon Even and Oded Goldreich and Adi Shamir},
+  title =        {On the Security of Ping-Pong Protocols when Implemented using the {RSA}},
+  booktitle =    {Advances in Cryptology---{\sc crypto} '85},
+  pages =        {58--72},
+  year =         1985,
+  series =       {LNCS},
+  publisher =    {Springer Verlag}
+}
+
+@InProceedings{FarmerEtAl92,
+    author = {William M. Farmer and Joshua D. Guttman and F. Javier Thayer},
+    title = {Little theories},
+    booktitle = {Automated Deduction:  CADE-11},
+    number =     607,
+    series =     {LNCS},
+    year = 1992,
+    pages = {567--581},
+    publisher = {Springer-Verlag}
+}
+
+@InProceedings{,
+  author =       {},
+  title =        {},
+  OPTcrossref =  {},
+  OPTkey =       {},
+  OPTbooktitle = {},
+  OPTpages =     {},
+  OPTyear =      {},
+  OPTeditor =    {},
+  OPTvolume =    {},
+  OPTnumber =    {},
+  OPTseries =    {},
+  OPTaddress =   {},
+  OPTmonth =     {},
+  OPTorganization = {},
+  OPTpublisher = {},
+  OPTnote =      {},
+  OPTannote =    {}
+}
+
+@Article{FarmerEtAl93,
+  author =       {William M.~Farmer and Joshua D.~Guttman and F.~Javier Thayer},
+  title =        {{\sc imps}: An {I}nteractive {M}athematical {P}roof {S}ystem},
+  journal =      {Journal of Automated Reasoning},
+  year =         1993,
+  volume =       11,
+  pages =        {213--248}}
+
+@Article{FarmerGuttman00,
+  author =       {W. M. Farmer and J. D. Guttman},
+  title =        {A Set Theory with Support for Partial Functions},
+  journal =      {Studia Logica},
+  year =         2000,
+  volume =       65,
+  pages =        {59--70}
+}
+
+@InProceedings{Failure98,
+  author =       {P.A. Loscocco and S.D. Smalley and P.A. Muckelbauer and R.C. Taylor and S.J. Turner and J.F. Farrell},
+  title =        {The Inevitability of Failure: The Flawed Assumption of Security in Modern Computing Environments},
+  booktitle =    {Proceedings of the 21st National Information Systems Security Conference},
+  pages =        {303--314},
+  year =         1998,
+  month =        {October}
+}
+
+@InProceedings{Feldman87,
+ author =       "P. Feldman",
+ title =        "A practical scheme for non-interactive verifiable secret sharing",
+ booktitle =    "Proceedings of the 28th IEEE Symposium on the Foundations of Computer Science",
+ pages =        "427-438",
+ year =         1987,
+ publisher =    "IEEE"
+}
+
+@InProceedings{FerraioloKuhn92,
+  author =       "David Ferraiolo and Richard Kuhn",
+  title =        "Role-Based Access Control",
+  booktitle =    "Proceedings of the 15th National Computer Security Conference",
+  year =         1992
+}
+
+@Book{Feller,
+  author =      "W. Feller",
+  title =       "An Introduction to Probability Theory and its Applications",
+  publisher =   "John Wiley and Sons, Inc.",
+  year =        "1958",
+  OPTeditor =   "",
+  OPTvolume =   "",
+  OPTseries =   "",
+  address =     "New York",
+  OPTedition =  "",
+  OPTmonth =    "",
+  OPTnote =     ""
+}
+
+@Book{Dudley,
+  author =      "R.  M. Dudley",
+  title =       "Real Analysis and Probability",
+  publisher =   "Wadsworth and Brookscole",
+  year =        "1989",
+  OPTeditor =   "",
+  OPTvolume =   "",
+  OPTseries =   "",
+  address =     "Pacific Grove",
+  OPTedition =  "",
+  OPTmonth =    "",
+  OPTnote =     ""
+}
+
+@Manual{FIPS,
+  title =        "Security Requirements for Cryptographic Modules",
+  note =         "FIPS PUB 140-1",
+  author =       "Federal Information Processing Standards Publication",
+  organization = "National Institue of Standards and Technology",
+  note =         "US Department of Commerce",
+  month =        "January",
+  year =         1994
+}
+
+@Manual{FIPS4676,
+title =        "Federal Information Processing Standard 46 -- the
+    Data Encryption Standard",
+OPTcrossref =  "",
+OPTkey =       "",
+OPTauthor =    "",
+OPTorganization = "",
+OPTaddress =   "",
+OPTedition =   "",
+OPTyear =      "1976",
+OPTmonth =     "",
+OPTnote =      "",
+OPTannote =    ""
+}
+
+@Article{FocardiGorrieri97,
+  author =       {Riccardo Focardi and Roberto Gorrieri},
+  title =        {The Compositional Security Checker: A Tool for the Verification of Information Flow Security Properties},
+  journal =      {IEEE Transactions on Software Engineering},
+  year =         1997,
+  volume =       23,
+  number =       9,
+  month =        {September},
+  annote =    {Retrieved from http://www.cs.unibo.it/\~focardi/www/biblio2.html}
+}
+
+@InProceedings{DuranteFocardiGorrieri99,
+  author =       {Antonio Durante and Riccardo Focardi and Roberto Gorrieri},
+  title =        {{CVS}: A Compiler for the Analysis of Cryptographic Protocols},
+  booktitle =    {12th Computer Security Foundations
+                  Workshop Proceedings},
+  pages =        {203--212},
+  year =         1999,
+  month =        {June},
+  publisher =    {{IEEE} CS Press}
+}
+
+@TechReport{FDR2,
+  author =       {Formal Systems (Europe) Ltd.},
+  title =        {Failures-Divergence Refinement: {FDR}~2 User Manual},
+  institution =  {Formal Systems (Europe) Ltd.},
+  year =         {1997},
+  OPTkey =       {},
+  OPTtype =      {},
+  OPTnumber =    {},
+  address =      {http: //www.formal.demon.co.uk/},
+  OPTmonth =     {},
+  OPTnote =      {},
+  OPTannote =    {}
+}
+
+@InProceedings{FournetEtAl05,
+  author =       {C\'{e}dric Fournet and Andrew Gordon and Sergei Maffeis},
+  title =        {A Type Discipline for Authorization Policies},
+  booktitle =    {European Symposium on Programming},
+  year =         2005,
+  editor =       {Mooly Sagiv},
+  volume =       {LNCS No},
+  series =       {LNCS},
+  publisher =    {Springer Verlag}
+}
+
+@Misc{FrierEtAl96,
+  author =       {Alan Frier and Philip Karlton and Paul Kocher},
+  title =        {The {SSL} 3.0 Protocol},
+  year =         1996,
+  key =          {draft-freier-ssl-version3-02.txt},
+  howpublished = {Internet Draft},
+  month =        nov
+}
+
+@InProceedings{Froeschle08,
+  author = {Sibylle Fr{\"o}schle},
+  title = {Adding Branching to the Strand Space Model},
+  booktitle = {Proceedings of {EXPRESS'08}},
+  series = {ENTCS},
+  publisher = {Elsevier},
+  year =         2008
+}
+
+@Article{FumyLandrock93,
+  author =       "W. Fumy and P. Landrock",
+  title =        "Principles of Key Management",
+  journal =      "IEEE Journal on Selected Areas in Communications",
+  year =         1993,
+  pages =        "785--793",
+  month =        jun
+}
+
+@inproceedings{GarayEtAl99,
+ author = {Juan A. Garay and Markus Jakobsson and Philip D. MacKenzie},
+ title = {Abuse-Free Optimistic Contract Signing},
+ booktitle = {CRYPTO '99: Proceedings of the 19th Annual International Cryptology Conference on Advances in Cryptology},
+ year = {1999},
+ isbn = {3-540-66347-9},
+ pages = {449--466},
+ publisher = {Springer-Verlag},
+ address = {London, UK},
+ }
+
+@InCollection{Gentzen35,
+  author =      "G. Gentzen",
+  title =       "Investigations into Logical Deduction (1935)",
+  booktitle =   "The Collected Works of Gerhard Gentzen",
+  publisher =   "North Holland",
+  year =        1969}
+
+@InProceedings{GeometricLogic,
+  author =       {NN},
+  title =        {Geometric Logic},
+  booktitle = {Whatever volume contains it},
+  year =         {200?}}
+
+@misc{ghcUsersGuide,
+  title = {{GHC} User's Guide Documentation, release 8.2.1},
+  author = {The {GHC} Team},
+  note = {\url{https://downloads.haskell.org/~ghc/latest/docs/users_guide.pdf}},
+  month = {July},
+  year = {2017},
+  day = 21,
+}
+
+@InProceedings{GoguenMeseguer82,
+  author =       {Joseph A. Goguen and Jos\'e Meseguer},
+  title =        {Security Policies and Security Models},
+  booktitle =    {{IEEE} Symposium on Security and Privacy},
+  year =         1982
+}
+
+@article{GoguenMeseguer92,
+ author = {Joseph A. Goguen and Jos\'{e} Meseguer},
+ title = {Order-sorted algebra {I}: equational deduction for multiple inheritance, overloading, exceptions and partial operations},
+ journal = {Theoretical Computer Science},
+ volume = {105},
+ number = {2},
+ year = {1992},
+ pages = {217--273},
+ doi = {http://dx.doi.org/10.1016/0304-3975(92)90302-V},
+ publisher = {Elsevier Science Publishers Ltd.},
+ address = {Essex, UK},
+ }
+
+@Article{GongAuth,
+  author =       "Li Gong",
+  title =        "Increasing Availability and Security of an Authentication Service",
+  journal =      "IEEE Journal on Selected Areas in Communications",
+  year =         1993,
+  volume =       11,
+  number =       5,
+  month =        jun
+}
+
+@Article{Gong89,
+  author =       "Li Gong",
+  title =        "Using One-way Functions for Authentication ",
+  journal =      "Computer Communication Review",
+  year =         1989,
+  volume =       19,
+  number =       5,
+  pages =        "8-11",
+  month =        oct
+}
+
+@Unpublished{GoldwasserBellare,
+  author =       {Shafi Goldwasser and Mihir Bellare},
+  title =        {Lecture Notes on Cryptography},
+  note =         {Avaliable at http://www.cs.ucsd.edu/users/mihir/papers/gb.html},
+  month =        {August},
+  year =         1999
+}
+
+@InProceedings{Gong90a,
+  author =       "Li Gong",
+  title =        "Verifiable-Text Attacks in Cryptographic Protocols",
+  pages =        "686--693",
+  booktitle =    "Proceedings {IEEE} {INFOCOM'90} ",
+  year =         1990,
+  publisher =    "IEEE CS",
+  month =        jun,
+}
+
+@Article{Gong90b,
+  author =       "Li Gong",
+  title =        "A Note on Redundancy in Encrypted Messages",
+  journal =      "Computer Communication Review",
+  year =         1990,
+  volume =       20,
+  number =       5,
+  pages =        "18-22",
+  month =        oct,
+}
+
+@InProceedings{Gong91,
+  author =       "Li Gong",
+  title =        "Handling Infeasible Specifications of Cryptographic
+                  Protocols",
+  pages =        "99--102",
+  booktitle =    "Proceedings of The 4th {IEEE} Computer Security
+                  Foundations Workshop",
+  year =         1991,
+  publisher =    "IEEE CS",
+  month =        jun
+}
+
+@InProceedings{Gong93,
+  author =       "Li Gong",
+  title =        "Variations on the Themes of Message Freshness and
+                  Replay and Replay or, the Difficulty of of Devising
+                  Formal Nethods to Analyse Cryptographic Protocols",
+  pages =        "131--136",
+  booktitle =    "Proceedings 6th Computer Security Foundations Workshop",
+  year =         1993,
+  publisher =    "IEEE CS Press"
+}
+
+@Article{GongLomasNeedhamSaltzer93,
+  author =       "Li Gong and A. Lomas and Roger M. Needham and Jerry
+                  H. Saltzer",
+  title =        "Protecting Poorly Chosen Secrets from Guessing Attacks",
+  journal =      "IEEE Journal on Selected Areas in Communications",
+  year =         1993,
+  volume =       11,
+  number =       5,
+  month =        jun
+}
+
+@InProceedings{GongNeedhamYahalom90,
+  author =       "Li Gong and Roger Needham and Raphael Yahalom",
+  title =        "Reasoning About Belief in Cryptographic Protocols",
+  editor =       "Deborah Cooper and Teresa Lunt",
+  pages =        "234--248",
+  booktitle =    "Proceedings 1990 IEEE Symposium on Research in
+                  Security and Privacy",
+  year =         1990,
+  publisher =    "IEEE CS",
+  month =        may
+}
+
+@InProceedings{GongSyverson95,
+  author =       {Li Gong and Paul Syverson},
+  title =        {Fail-Stop Protocols: An Approach to Designing Secure Protocols},
+  booktitle =    {5th International Working Conference on Dependable Computing for Critical Applications},
+  pages =        {44--55},
+  year =         1995,
+  month =        {September}
+}
+
+@InProceedings{Gordon84,
+  title =        "Public Key Cryptosystems",
+  author =       "John Gordon",
+  booktitle =    "Proceedings of Networks '84",
+  year =         1984
+}
+
+@InProceedings{GordonJeffrey01a,
+  author =       {Andrew D. Gordon and Alan Jeffrey},
+  title =        {Authentication by Typing},
+  booktitle =    {Proceedings, 14th Computer Security Foundations Workshop},
+  year =         2001,
+  month =        {June},
+  publisher =    {{IEEE} CS Press}
+}
+
+@InProceedings{GordonJeffrey02,
+  author =       {Andrew D. Gordon and Alan Jeffrey},
+  title =        {Types and Effects for Asymmetric Cryptographic Protocols},
+  booktitle =    {Proceedings, 15th Computer Security Foundations Workshop},
+  year =         2002,
+  month =        {June},
+  publisher =    {{IEEE} CS Press}
+}
+
+@Article{GordonJeffrey03,
+  author =       {Andrew D. Gordon and Alan Jeffrey},
+  title =        {Authenticity by typing for security protocols},
+  journal =      {Journal of Computer Security},
+  year =         2003,
+  volume =       11,
+  number =       4,
+  pages =        {451-–521}}
+
+@Article{GordonJeffrey03a,
+  author =       {Andrew D. Gordon and Alan Jeffrey},
+  title =        {Types and effects for asymmetric cryptographic protocols},
+  journal =      {Journal of Computer Security},
+  year =         2004,
+  volume =       12,
+  number =       {3/4},
+  pages =        {435–-484}}
+
+@article{goubault2005abstraction,
+  title={{Abstraction and resolution modulo AC: How to verify {Diffie-Hellman}-like protocols automatically}},
+  author={Jean Goubault-Larrecq and Muriel Roger and Kumar Verma},
+  journal={Journal of Logic and Algebraic Programming},
+  volume={64},
+  number={2},
+  pages={219--251},
+  issn={1567-8326},
+  year={2005},
+  publisher={Elsevier}
+}
+ @inproceedings{GoubaultLarrecq08,
+  author    = {Jean Goubault-Larrecq},
+  title     = {Towards Producing Formally Checkable Security Proofs, Automatically},
+  booktitle = {Computer Security Foundations Workshop},
+  year      = {2008},
+  pages     = {224-238},
+  ee        = {http://doi.ieeecomputersociety.org/10.1109/CSF.2008.21},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@inproceedings{gross2011vertical,
+  title={Vertical protocol composition},
+  author={Thomas Gro{\ss} and Sebastian M{\"o}dersheim},
+  booktitle={CSF},
+  pages={235--250},
+  year={2011},
+  organization={IEEE}
+}
+
+@Article{VLispIntro95,
+  author =       {Joshua~D. Guttman and John~D. Ramsdell and Mitchell Wand},
+  title =        {{VLISP}: A verified implementation of {Scheme}},
+  journal =      {Lisp and Symbolic Computation},
+  year =         1995,
+  volume =       8,
+  number =       {1/2},
+  pages =        {5--32}}
+
+@Article{VLispScheme95,
+  author =       {Joshua~D. Guttman and John~D. Ramsdell and Vipin Swarup},
+  title =        {The {VLISP} verified {Scheme} system},
+  journal =      {Lisp and Symbolic Computation},
+  year =         1995,
+  volume =       8,
+  number =       {1/2},
+  pages =        {33--110}}
+
+@TECHREPORT{Guttman96,
+        AUTHOR = "Joshua D. Guttman",
+        TITLE = "Filtering Postures: Local Enforcement for Global Policies",
+        NUMBER = "MTR 97B0000007",
+        INSTITUTION = "The MITRE Corporation, Center for Integrated Intelligence Systems",
+        ADDRESS = "Bedford, Massachusets",
+        MONTH = "November",
+        YEAR = "1996" }
+
+@InProceedings{Guttman97,
+  author =       {Joshua D. Guttman},
+  title =        {Filtering Postures:  Local Enforcement for Global Policies},
+  booktitle =    {Proceedings, 1997 {IEEE} Symposium on Security and Privacy},
+  pages =        {120--29},
+  year =         1997,
+  month =        {May},
+  publisher =    {{IEEE} CS Press}
+}
+
+@Unpublished{Guttman99,
+  author =       {Joshua D. Guttman},
+  title =        {Packet Filters and their Atoms},
+  note =         {Lecture at University of Pennsylvania, host C.~Gunter},
+  month =        {April},
+  year =         1999
+}
+
+@InCollection{Guttman01,
+  author =       {Joshua D. Guttman},
+  title =        {Security Goals: Packet Trajectories and Strand Spaces},
+  booktitle =    {Foundations of Security Analysis and Design},
+  publisher =    {Springer Verlag},
+  year =         2001,
+  editor =       {Roberto Gorrieri and Riccardo Focardi},
+  volume =       2171,
+  series =       {LNCS},
+  pages =        {197--261},
+  note =         {}
+}
+
+@Article{Guttman01a,
+  author =       {Joshua D. Guttman},
+  title =        {Key Compromise and the Authentication Tests},
+  journal =      {Electronic Notes in Theoretical Computer Science},
+  year =         2001,
+  volume =       47,
+  note =         {Editor, M. Mislove.  URL~\url{http://www.elsevier.nl/locate/entcs/volume47.html}, 21 pages}
+}
+
+@InProceedings{Guttman02,
+  author =       {Joshua D. Guttman},
+  title =        {Security Protocol Design via Authentication Tests},
+  booktitle =    {Proceedings, 15th Computer Security Foundations Workshop},
+  year =         2002,
+  month =        {June},
+  publisher =    {{IEEE} CS Press}
+}
+
+@Article{Guttman04,
+  author =       {Joshua D. Guttman},
+  title =        {Authentication Tests and Disjoint Encryption: a Design Method for Security Protocols},
+  journal =      {Journal of Computer Security},
+  year =         2004,
+  volume =       12,
+  number =       {3/4},
+  pages =        {409--433}
+}
+
+@Article{Guttman04old,
+  author =       {Joshua D. Guttman},
+  title =        {Authentication Tests and Disjoint Encryption: a Design Method for Security Protocols},
+  journal =      {Journal of Computer Security},
+  year =         2004,
+  volume =       12,
+  number =       {3/4},
+  note =        {Extended version of ``Security Protocol Design via Authentication Tests,'' CSFW 2002.},
+  pages =        {409--433}
+}
+
+@InProceedings{Guttman04a,
+  author =       {Joshua D. Guttman},
+  title =        {Security, Protocols, and Trust},
+  booktitle =    {VMCAI 2004:  Verification, Model Checking, and Abstract Interpretation},
+  year =         2004,
+  editor =       {G. Levi and B. Steffen},
+  volume =       2937,
+  series =       {LNCS},
+  publisher =    {Springer Verlag},
+  note =         {(abstract of tutorial)}
+}
+
+@Unpublished{Guttman08,
+  author =       {Joshua D. Guttman},
+  title =        {Cryptographic Protocol Composition, via the
+                  Authentication Tests},
+  note =         {Submitted for publication},
+  month =        {January},
+  year =         2008}
+
+@InProceedings{Guttman09,
+  author =       {Joshua D. Guttman},
+  title =        {Cryptographic Protocol Composition via the
+                  Authentication Tests},
+  booktitle = {Foundations of Software Science and Computation Structures ({FOSSACS})},
+  year =         2009,
+  editor =       {Luca de Alfaro},
+  series =       {LNCS},
+  number =       5504,
+  pages =        {303--317},
+  month =        {March},
+  publisher = {Springer}}
+
+@InProceedings{Guttman09a,
+  author =       {Joshua D. Guttman},
+  title =        {Transformations between Cryptographic Protocols},
+  booktitle = {Automated Reasoning in Security Protocol Analysis, and Workshop on Issues in the Theory of Security ({ARSPA-WITS})},
+  year =         2009,
+  pages =        {107--123},
+  number =       5511,
+  editor =       {P. Degano and L. Vigan{\`o}},
+  series =       {LNCS},
+  publisher = {Springer}}
+
+@InProceedings{Guttman09b,
+  author =       {Joshua D. Guttman},
+  title =        {Fair Exchange in Strand Spaces},
+  booktitle = {SecCo: 7th International Workshop on Security Issues
+                  in Concurrency},
+  year =         2009,
+  editor =       {M. Boreale and S. Kremer},
+  series =       {EPTCS},
+  month =        {Sep},
+  publisher = {Electronic Proceedings in Theoretical Computer
+                  Science}}
+
+@Article{Guttman09c,
+  author = {Joshua D. Guttman},
+  title = {Security Theorems via Model Theory},
+  journal = {EXPRESS:  Expressiveness in Concurrency (EPTCS)},
+  volume = {8},
+  pages = {51},
+  url = {http://cgi.cse.unsw.edu.au/~rvg/eptcs/content.cgi?EXPRESS2009},
+  note = {doi:10.4204/EPTCS.8.5},
+  year = {2009}
+}
+
+@Article{Guttman12,
+  author = 	 {Joshua D. Guttman},
+  title = 	 {State and Progress in Strand Spaces:  Proving Fair
+                  Exchange},
+  journal = 	 {Journal of Automated Reasoning},
+  year = 	 2012,
+  volume = 	 48,
+  number = 	 2,
+  pages = 	 {159--195},
+  url =         {http://www.springerlink.com/content/p87u245036468165/},
+  doinote = 	 {DOI: 10.1007/s10817-010-9202-1}}
+
+@Article{Guttman11a,
+  author =       {Joshua D. Guttman},
+  title =        {State and Progress in Strand Spaces:  Proving Fair
+                  Exchange},
+  journal =      {Journal of Automated Reasoning},
+  year =         2012,
+  url =         {http://www.springerlink.com/content/p87u245036468165/},
+  note =         {Accepted, March 2010.  DOI: 10.1007/s10817-010-9202-1}}
+
+@Book{CortierKremer2011,
+  editor =       {Veronique Cortier and Steve Kremer},
+  title =        {Formal Models and Techniques for Analyzing Security Protocols},
+  publisher =    {IOS Press},
+  year =         2011,
+  series =       {Cryptology and Information Security Series}}
+
+@InCollection{Guttman10,
+  author =       {Joshua D. Guttman},
+  title =        {Shapes: Surveying Crypto Protocol Runs},
+  booktitle =    {Formal Models and Techniques for Analyzing Security Protocols},
+  key =          {CortierKremer2011},
+  publisher = {{IOS} Press},
+  year =         2011,
+  editor =       {Veronique Cortier and Steve Kremer},
+  series =       {Cryptology and Information Security Series}}
+
+@InProceedings{Guttman11,
+  author =       {Joshua D. Guttman},
+  title =        {Security Goals and Protocol Transformations},
+  booktitle = {Tosca:  Theory of Security and Applications},
+  year =         2011,
+  editor =       {Sebastian M{\"o}dersheim and Catuscia Palamidessi},
+  series =       {LNCS},
+  month =        {March},
+  publisher = {Springer}}
+
+@InProceedings{GuttmanEtAl00,
+  author =       {Joshua Guttman and Amy L. Herzog and F. Javier Thayer},
+  booktitle =    {Proceedings, ESORICS 2000},
+  pages =        {255-272},
+  year =         {2000},
+  month =        {October},
+  publisher =    {Springer},
+  note =         {Lecture Notes in Computer Science 1895}
+}
+
+@InProceedings{GuttmanHerzog02,
+  author =       "Joshua D. Guttman and Amy L. Herzog",
+  title =        "Eager Formal Methods for Security Management",
+  booktitle =    "Proceedings, VERIFY '02",
+  pages =        "91--101",
+  year =         2002,
+  month =        "July"
+}
+
+@Article{GuttmanHerzog05,
+  author =       {Joshua D. Guttman and Amy L. Herzog},
+  title =        {Rigorous Automated Network Security Management},
+  journal =      {International Journal for Information Security},
+  year =         2005,
+  volume =       5,
+  number =       {1--2},
+  pages =        {29--48}
+}
+
+@Article{GuttmanHerzog03,
+  author =       {Joshua D. Guttman and Amy L. Herzog},
+  title =        {Rigorous Automated Network Security Management},
+  journal =      {International Journal for Information Security},
+  year =         2004,
+  note =         {Forthcoming}
+}
+
+@Misc{GuttmanHerzogRamsdell03,
+  author =       {Joshua D. Guttman and Amy L. Herzog and John D. Ramsdell},
+  title =        {Information Flow in Operating Systems: Eager Formal Methods},
+  howpublished = {Submitted for publication},
+  month =        {January},
+  year =         2003
+}
+
+@Article{GuttmanHerzogRamsdell04,
+  author =       {Joshua D. Guttman and Amy L. Herzog and John D. Ramsdell and Clement W. Skorupka},
+  title =        {Verifying Information Flow Goals in {Security-Enhanced Linux}},
+  journal =      {Journal of Computer Security},
+  year =         2005,
+  volume =       13,
+  number =       1,
+  pages =        {115--134},
+  note =         {Preliminary version appeared in the Workshop on Issues in the Theory of Security (IFIP WG 1.7), April 2003.}
+}
+
+@TechReport{GuttmanHerzogThayer00ab,
+  author =       {Joshua D. Guttman and Amy L. Herzog and F. Javier Thayer},
+  title =        {Authentication and Confidentiality via {IPsec}},
+  institution =  {The {MITRE} Corporation},
+  year =         2000,
+  month =        {March}
+}
+
+@InProceedings{GuttmanHerzogThayer00,
+  author =       {Joshua D. Guttman and Amy L. Herzog and F. Javier Thayer},
+  title =        {Authentication and Confidentiality via {IPsec}},
+  booktitle =    {ESORICS 2000: European Symposium on Research in Computer Security},
+  year =         2000,
+  number =       1895,
+  editor =       {D. Gollman},
+  series =       {LNCS},
+  publisher =    {Springer Verlag}
+}
+
+@InProceedings{GuttmanEtAl05,
+  author =       {Joshua D. Guttman and Jonathan C. Herzog and John D. Ramsdell and Brian T. Sniffen},
+  title =        {Programming Cryptographic Protocols},
+  booktitle =    {Trust in Global Computing},
+  pages =        {116--145},
+  year =         2005,
+  editor =       {Rocco De Nicola and Davide Sangiorgi},
+  number =       3705,
+  series =       {LNCS},
+  publisher =    {Springer}
+}
+
+@inproceedings{McCarthyEtAl07,
+  author    = {Jay A. McCarthy and
+               Shriram Krishnamurthi and
+               Joshua D. Guttman and
+               John D. Ramsdell},
+  title     = {Compiling cryptographic protocols for deployment on the web},
+  booktitle = {World Wide Web Conference},
+  pages     = {687--696},
+  publisher = {{ACM}},
+  year      = {2007},
+  url       = {https://doi.org/10.1145/1242572.1242665},
+  doi       = {10.1145/1242572.1242665},
+  timestamp = {Tue, 06 Nov 2018 16:57:07 +0100},
+  biburl    = {https://dblp.org/rec/conf/www/McCarthyKGR07.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@Unpublished{GuttmanThayer99,
+  author =       {Joshua D. Guttman and F. Javier {\textsc{Thayer} F\'abrega}},
+  title =        {Disjoint Encryption and the Normal Penetrator},
+  note =         {Unpublished},
+  month =        {September},
+  year =         1999
+}
+
+@InProceedings{GuttmanThayer00,
+  author =       {Joshua D. Guttman and F. Javier {Thayer}},
+  title =        {Authentication Tests},
+  booktitle =    {Proceedings, 2000 IEEE Symposium on Security and Privacy},
+  year =         2000,
+  organization = {May},
+  publisher =    {IEEE CS Press}
+}
+
+@TechReport{GuttmanThayer00a,
+  author =       {Joshua D. Guttman and F. Javier {\textsc{Thayer} F{\'a}brega}},
+  title =        {Authentication Tests and the Normal Penetrator},
+  institution =  {The {MITRE} Corporation},
+  year =         2000,
+  type =         {MTR},
+  number =       {00B04},
+  month =        {February},
+  note =         {Also submitted for publication.{\typeout{ERROR:  Don't cite this anymore, use GuttmanThayer00c.}}}
+}
+
+@Article{GuttmanThayer00caca,
+  author =       {Joshua D. Guttman and F. Javier {\textsc{Thayer} F{\'a}brega}},
+  title =        {Authentication Tests and the Structure of Bundles},
+  journal =      {Theoretical Computer Science},
+  year =         2002,
+  note =         {To appear}
+}
+
+@Article{GuttmanThayer00c,
+  author =       {Joshua D. Guttman and F. Javier {{Thayer}}},
+  title =        {Authentication Tests and the Structure of Bundles},
+  journal =      {Theoretical Computer Science},
+  year =         2002,
+  month =        {June},
+  pages =        {333--380},
+  volume =       283,
+  number =       2
+}
+
+@Article{GuttmanThayer02,
+  author =       {Joshua D. Guttman and F. Javier {{Thayer}}},
+  title =        {Authentication Tests and the Structure of Bundles},
+  journal =      {Theoretical Computer Science},
+  year =         2002,
+  month =        {June},
+  pages =        {333--380},
+  volume =       283,
+  number =       2
+}
+
+@InProceedings{GuttmanThayer00b,
+  author =       {Joshua D. Guttman and F. Javier {{Thayer}}},
+  title =        {Protocol Independence through Disjoint Encryption},
+  booktitle =    {Computer Security Foundations Workshop},
+  year =         2000,
+  publisher =    {{IEEE} {CS} Press}
+}
+
+@Unpublished{GuttmanThayer00ba,
+  author =       {Joshua D. Guttman and F. Javier {\textsc{Thayer} F{\'a}brega}},
+  title =        {Protocol Independence through Disjoint Encryption},
+  note =         {In preparation.},
+  OPTkey =       {},
+  OPTmonth =     {},
+  OPTyear =      {},
+  OPTannote =    {}
+}
+
+@TechReport{GuttmanThayer05,
+  author =       {Joshua D. Guttman and F. Javier Thayer},
+  title =        {The Sizes of Skeletons:  Decidable Cryptographic Protocol
+  Authentication and Secrecy Goals},
+  institution =  {The MITRE Corporation},
+  year =         2005,
+  type =         {MTR},
+  number =       {05B09 Revision~1},
+  month =        {March}
+}
+
+@TechReport{GuttmanThayer05a,
+  author =       {Joshua D. Guttman and F. Javier Thayer},
+  title =        {Protocol Security Goals and the Size of Skeletons},
+  institution =  {The MITRE Corp.},
+  year =         2005,
+  note =         {Available at \url{http://www.ccs.neu.edu/home/guttman/sizes_of_skeletons.pdf}, submitted for publication}
+}
+
+@InProceedings{GuttmanThayerZuck01,
+  author =       {Joshua D. Guttman and F. Javier Thayer and Lenore D. Zuck},
+  title =        {The Faithfulness of Abstract Protocol Analysis:  Message Authentication},
+  booktitle =    {Proceedings, Eighth ACM Conference on Computer and Communications Security},
+  year =         2001,
+  month =        {November},
+  organization = {{ACM}}
+}
+
+@InProceedings{GuttmanEtAl04,
+  author =       {Joshua D. {Guttman} and F. Javier Thayer and Jay A. Carlson and Jonathan C. Herzog and John D. Ramsdell and Brian T. Sniffen},
+  title =        {Trust Management in Strand Spaces: A Rely-Guarantee Method},
+  booktitle =    {Programming Languages and Systems: 13th European Symposium on Programming},
+  pages =        {325--339},
+  year =         2004,
+  editor =       {David Schmidt},
+  number =       2986,
+  series =       {LNCS},
+  publisher =    {Springer}
+}
+
+@Article{GuttmanThayerZuck03,
+  author =       {Joshua D. Guttman and F. Javier Thayer and Lenore D. Zuck},
+  title =        {The Faithfulness of Abstract Protocol Analysis:  Message Authentication},
+  journal =      {Journal of Computer Security},
+  year =         2004,
+  volume =       12,
+  number =       6,
+  pages =        {865--891}
+}
+
+@Article{GuttmanThayerZuck04,
+  author =       {Joshua D. Guttman and F. Javier Thayer and Lenore D. Zuck},
+  title =        {The Faithfulness of Abstract Protocol Analysis:  Message Authentication},
+  journal =      {Journal of Computer Security},
+  year =         2004,
+  volume =       12,
+  number =       6,
+  pages =        {865--891}
+}
+
+@proceedings{DBLP:conf/ifip1-7/2008,
+  editor    = {Pierpaolo Degano and
+               Joshua D. Guttman and
+               Fabio Martinelli},
+  title     = {Formal Aspects in Security and Trust, 5th International
+               Workshop, FAST 2008, Malaga, Spain, October 9-10, 2008,
+               Revised Selected Papers},
+  booktitle = {Formal Aspects in Security and Trust},
+  publisher = {Springer},
+  series    = {Lecture Notes in Computer Science},
+  volume    = {5491},
+  year      = {2009},
+  ee        = {http://dx.doi.org/10.1007/978-3-642-01465-9},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@InCollection{Halpern95,
+  author =       {Joseph Y. Halpern},
+  title =        {Reasoning about Knowledge:  A Survey},
+  booktitle =    {Handbook of Logic in Artificial Intelligence and Logic Programming},
+  pages =        {1--34},
+  publisher =    {Oxford University Press},
+  year =         1995,
+  editor =       {D. Gabbay and C. J. Hogger and J. A Robinson},
+  volume =       4
+}
+
+@Article{HalpernvanderMeyden01,
+  author =       {Joseph Y. Halpern and Ron {van der Meyden}},
+  title =        {A Logic for {SDSI}'s Linked Local Name Spaces},
+  journal =      {Journal of Computer Security},
+  year =         2001,
+  volume =       9,
+  number =       {1--2},
+  pages =        {47--74}
+}
+
+@Book{HalpernEtAl95,
+  author =       {Ronald Fagin and Joseph Y. Halpern and Yoram Moses and Moshe Y. Vardi},
+  title =        {Reasoning about Knowledge},
+  publisher =    {{MIT} Press},
+  year =         1995,
+  address =      {Cambridge, MA}
+}
+
+@Article{HalpernPucella03,
+  author =       {Joseph Y. Halpern and Riccardo Pucella},
+  title =        {On the Relationship between Strand Spaces and Multi-Agent Systems},
+  journal =      {{ACM} Transactions on Information and System Security},
+  year =         2003,
+  volume =       6,
+  number =       1,
+  pages =        {43--70},
+  month =        {February}
+}
+
+@InProceedings{HauserJansenMolvaTsudikHerreweghen94,
+  author =       "R. Hauser and P. Jansen and R. Molva and G. Tsudik
+                  and E. van Herreweghen",
+  title =        "Robust and Secure Pasword and Key Change Method",
+  editor =       "Dieter Gollmann",
+  number =       875,
+  series =       "Lecture Notes in Computer Science",
+  pages =        "107--122",
+  booktitle =    "Computer Security---{ESORICS} '94",
+  year =         1994,
+  publisher =    "Springer"
+}
+
+@InProceedings{HeatherEtAl00,
+  author =       {James Heather and Gavin Lowe and Steve Schneider},
+  title =        {How to Prevent Type Flaw Attacks on Security Protocols},
+  booktitle =    {Proceedings, 13th Computer Security Foundations Workshop},
+  year =         2000,
+  month =        {July},
+  publisher =    {{IEEE} CS Press}
+}
+
+@InProceedings{HeatherSchneider00,
+  author =       {James Heather and Steve Schneider},
+  title =        {Toward Automatic Verification of Authentication Protocols on an Unbounded Network},
+  booktitle =    {Proceedings, 13th Computer Security Foundations Workshop},
+  year =         2000,
+  month =        {July},
+  publisher =    {{IEEE} CS Press}
+}
+
+@Article{HeatherSchneider05,
+  author =       {James A. Heather and Steve A. Schneider},
+  title =        {A Decision Procedure for the Existence of a Rank Function},
+  journal =      {Journal of Computer Security},
+  year =         2005,
+  note =         "Forthcoming."
+}
+
+@Unpublished{HeatherSchneider05a,
+  author =       {James A. Heather and Steve A. Schneider},
+  title =        {Infinite/Finite ???},
+  note =         {Submitted for publication},
+  month =        {April},
+  year =         2005
+}
+
+@Article{Hellman79,
+  author =       "Martin E Hellman",
+  title =        "The Mathematics of Public Key Cryptography",
+  journal =      "Scientific American",
+  year =         1979,
+  pages =        "130-139",
+  month =        aug
+}
+
+@TechReport{HerzogGuttman02,
+  author =       {Amy L. Herzog and Joshua D. Guttman},
+  title =        {Security Goal Achievement In A Heterogeneous Environment},
+  institution =  {The MITRE Corporation},
+  year =         2002
+}
+
+@Unpublished{HerzogEtAl98,
+  author =       {Jonathan Herzog and Joshua Guttman and Fred Chase},
+  title =        {A Strand Space Analysis of the {SSH} Version 2 Protocol},
+  note =         {{MITRE} Product {MP} 98B0000056},
+  month =        {September},
+  year =         1998
+}
+
+@Unpublished{HerzogEtAl99,
+  author =       {Jonathan Herzog and Fred Chase and Joshua Guttman},
+  title =        {A Saying-Logic Analysis of core {DNS} Security},
+  note =         {{MITRE} Product {MP} 99{B}0000039},
+  year =         1999
+}
+
+@Unpublished{Herzog00,
+  author =       {Jonathan Herzog},
+  title =        {Some Security Concerns Regarding {PPP}--{EAP}--{TLS}},
+  note =         {{MITRE} Product {MP} 00{B}0000019},
+  year =         2000
+}
+
+@Unpublished{HerzogEtAl00,
+  author =       {Jonathan Herzog and Laura Feinstein and Joshua Guttman},
+  title =        {A Strand Space Analysis of {TLS} 1.0},
+  note =         {{MITRE} Document {MTR} 0{B}0000011},
+  year =         2000
+}
+
+@Unpublished{Herzog00b,
+  author =       {Jonathan Herzog},
+  title =        {Mobile {IP} Security},
+  note =         {{MITRE} Product {MP} 00{B}0000063},
+  year =         2000
+}
+
+@MastersThesis{Herzog02,
+  author =       {Jonathan Herzog},
+  title =        {Computational Soundness of Formal Adversaries},
+  school =       {Massachusetts Institute of Technology},
+  year =         2002
+}
+
+@InProceedings{Herzog03,
+  author =       {Jonathan C. Herzog},
+  title =        {The {Diffie-Hellman} Key-Agreement Scheme in the Strand-Space Model},
+  booktitle =    {16th Computer Security Foundations Workshop},
+  pages =        {234--247},
+  year =         2003,
+  address =      {Asilomar, CA},
+  month =        {June},
+  publisher =    {{IEEE CS} Press}
+}
+
+@TechReport{HerzogEtAl04,
+  author =       {Jonathan Herzog and Brian Sniffen and Jay Carlson and Joshua D. Guttman and John D. Ramsdell},
+  title =        {Trust Management with Cryptographic Hardware Assistance},
+  institution =  {The MITRE Corp.},
+  year =         2003,
+  type =         {MTR},
+  number =       {03B0082},
+  address =      {Bedford, MA},
+  month =        {September}
+}
+
+@PhdThesis{Herzog04,
+  author =       {Jonathan Herzog},
+  title =        {Computational Soundess for Standard Assumption of Formal Cryptography},
+  school =       {Massachusetts Institute of Technology},
+  year =         2004
+}
+
+@Misc{Hitchcock53,
+  author =       {Alfred Hitchcock},
+  title =        {I Confess},
+  howpublished = {Warner Brothers},
+  month =        {March},
+  year =         1953,
+  note =         {\url{http://www.imdb.com/title/tt0045897/}}}
+
+@Article{Hoare78,
+  author =       {C. A. R. Hoare},
+  title =        {Communicating Sequential Processes},
+  journal =      {CACM},
+  year =         1978,
+  volume =       21,
+  number =       8,
+  pages =        {666--77}
+}
+
+@Book{Hoare85,
+  author =      "C. A. R. Hoare",
+  title =       "Communicating Sequential Processes",
+  publisher =   "Prentice-Hall International",
+  year =        1985,
+  address =     "Englewood Cliffs, New Jersey",
+  patron =      "Guttman"
+}
+
+@Book{Holzmann91,
+  author =       {Gerard Holzmann},
+  title =        {Design and Validation of Computer Protocols},
+  publisher =    {Prentice Hall},
+  year =         1991
+}
+
+@Misc{HouselyEtAl99,
+  author =       {R. Housley and W. Ford and W. Polk and D. Solo},
+  title =        {Internet {X.509} Public Key Infrastructure Certificate and {CRL} Profile},
+  howpublished = {{RFC} 2459},
+  month =        {January},
+  year =         1999
+}
+
+@Misc{RFC2459,
+  author =       {R. Housley and W. Ford and W. Polk and D. Solo},
+  title =        {Internet X.509 Public Key Infrastructure Certificate and CRL Profile},
+  howpublished = {{RFC} 2459},
+  month =        {January},
+  year =         1999
+}
+
+@Misc{RFC3280,
+  author =       {R. Housley and W. Polk and W. Ford and D. Solo},
+  title =        {Internet X.509 Public Key Infrastructure Certificate and CRL Profile},
+  howpublished = {{RFC} 3280},
+  month =        {April},
+  year =         2002
+}
+
+@InProceedings{HuiLowe99,
+  author =       {Mei Lin Hui and Gavin Lowe},
+  title =        {Safe Simplifying Transformations for Security Protocols},
+  booktitle =    {12th Computer Security Foundations
+                  Workshop Proceedings},
+  year =         1999,
+  publisher =    {{IEEE} CS Press},
+  pages =        {32--43},
+  month =        {June}
+}
+
+@article{HuiLowe01,
+  author    = {Mei Lin Hui and
+               Gavin Lowe},
+  title     = {Fault-Preserving Simplifying Transformations for Security
+               Protocols},
+  journal   = {Journal of Computer Security},
+  volume    = 9,
+  number    = {1/2},
+  year      = 2001,
+  pages     = {3-46},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@Article{HwangChen95,
+   author =       "Tzonelih Hwang and Yung-Hsiang Chen",
+   title =        "On the security of {SPLICE/AS}: The
+                authentication system in {WIDE Internet}",
+   journal =      "Information Processing
+                   Letters",
+    year =         1995,
+    volume =       53,
+    pages =        "97--101"
+}
+
+@Article{HwangLeeLiKoChen95,
+  author =       "Tzonelih Hwang and Narn-Yoh Lee and Chuang-Ming Li
+                  and Ming-Yung Ko and Yung-Hsiang Chen",
+  title =        "Two Attacks on {Neuman-Stubblebine}
+                  Authentication Protocols",
+  journal =      "Information Processing Letters",
+  year =         1995,
+  volume =       53,
+  pages =        "103--107"
+}
+
+@InProceedings{Integrating01,
+  author =       {P. Loscocco and S. Smalley},
+  title =        {Integrating Flexible Support for Security Policies into the {Linux} Operating System},
+  booktitle =    {Proceedings of the FREENIX Track of the 2001 USENIX Annual Technical Conference},
+  year =         2001
+}
+
+@Misc{ikev2:id:17,
+  author =       {Charlie {Kaufman, ed.}},
+  title =        {Internet Key Exchange ({IKEv2}) Protocol},
+  howpublished = {Internet Draft},
+  month =        {September},
+  year =         2004,
+  note =         {Available at \url{http://www.ietf.org/internet-drafts/draft-ietf-ipsec-ikev2-17.txt}}
+}
+
+@Misc{IPchains00,
+  key =          {IPchains00},
+  author =       {Rusty Russell},
+  title =        {Linux IP Firewalling Chains},
+  howpublished = {Linux Howto},
+  month =        {October},
+  year =         2000,
+  note =         {URL~\url{http://www.netfilter.org/ipchains/}}
+}
+
+@Misc{IPfilter00,
+  key =          {IPfilter00},
+  author =       {Darren Reed},
+  title =        {IP Filter},
+  howpublished = {Download Web Page},
+  month =        {December},
+  year =         2002,
+  note =         {URL~\url{http://coombs.anu.edu.au/~avalon/}}
+}
+
+@Manual{ISOIEC9798-1,
+  title =        "Information Technology - Security techniques ---
+                  Entity Authentication Mechanisms Part 1: General Model",
+  organization = "ISO/IEC",
+  year =         1991
+}
+
+@Manual{ISOIECDIS9798-2,
+  title =        "Information Technology - Security techniques ---
+                  Entity Authentication Mechanisms Part 2: Entity
+                  authentication using symmetric techniques",
+  organization = "ISO/IEC",
+  year =         1993
+}
+
+@Manual{ISOIECDIS9798-3,
+  title =        "Information Technology - Security techniques ---
+                  Entity Authentication Mechanisms Part 3: Entity
+                  authentication using a public key algorithm",
+  organization = "ISO/IEC",
+  year =         1993
+}
+
+@Misc{ITUMSC99,
+  author =       {ITU},
+  title =        {Message Sequence Chart ({MSC})},
+  howpublished = {Recommendation Z.120},
+  year =         1999}
+
+@Unpublished{ITTCweb,
+  author =       "D. Boneh and T. Raj and M. Malkin and T. Wu",
+  title =        "Intrustion Tolerance via Threshold Cryptography",
+  note =         "http://crypto.stanford.edu/\~dabo/ITTC"
+}
+
+@InProceedings{JiwaSeberryZheng94,
+  author =       "A Jiwa and J Seberry and Y Zheng",
+  title =        "Beacon Based Authentication",
+  editor =       "Dieter Gollmann",
+  number =       875,
+  series =       "Lecture Notes in Computer Science",
+  pages =        "125--142",
+  booktitle =    "Computer Security --- {ESORICS} '94",
+  year =         1994,
+  publisher =    "Springer"
+}
+
+@Article{Jones83,
+  author =       {Cliff B. Jones},
+  title =        {Tentative Steps toward a Development Method for Interfering Programs},
+  journal =      {{ACM} Transactions on Programming Languages and Systems},
+  year =         {1983},
+  OPTkey =       {},
+  OPTvolume =    {5},
+  OPTnumber =    {4},
+  OPTpages =     {596--619},
+  OPTmonth =     {},
+  OPTnote =      {},
+  OPTannote =    {}
+}
+
+@Unpublished{JurjensWimmel01,
+  author = {Jan {J{\"u}rjens} and Guido Wimmel},
+  title =        {Specification-Based Testing of Firewalls},
+  note =         {Submitted for publication},
+  year =         {2001},
+}
+
+@InProceedings{KailarGligor91,
+  author =       "R. Kailar and Virgil D. Gligor",
+  title =        "On Belief Evolution in Authentication Protocols",
+  pages =        "103--116",
+  booktitle =    "Proceedings of the Computer Security Foundations
+                  Workshop IV",
+  year =         1991,
+  publisher =    "IEEE CS Press"
+}
+
+@article{kaliski2001unknown,
+  title={{An unknown key-share attack on the MQV key agreement protocol}},
+  author={Burton S. Kaliski},
+  journal={{ACM} Transactions on Information and System Security},
+  volume=4,
+  number=3,
+  pages={275--288},
+  issn={1094-9224},
+  year=2001,
+  publisher={ACM}
+}
+
+@article{kapur2003unification,
+  title={{An E-unification algorithm for analyzing protocols that use modular exponentiation}},
+  author={Deepak Kapur and Paliath Narendran and Lida Wang},
+  journal={Rewriting Techniques and Applications},
+  year={2003},
+  publisher={Springer}
+}
+
+@article{DBLP:journals/joc/KatzY07,
+  author    = {Jonathan Katz and
+               Moti Yung},
+  title     = {Scalable Protocols for Authenticated Group Key Exchange},
+  journal   = {J. Cryptology},
+  volume    = {20},
+  number    = {1},
+  year      = {2007},
+  pages     = {85-113},
+  ee        = {http://dx.doi.org/10.1007/s00145-006-0361-5},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@Article{KehneSchoenwalderLangendorfer92,
+  author =       "A. Kehne and J. Sch{\"{o}}enw{\"{a}}lder and H.
+                  Langend{\"{o}}rfer",
+  title =        "A Nonce-Based Protocol for Multiple Authentication",
+  journal =      "Operating Systems Review",
+  year =         1992,
+  volume =       26,
+  number =       4,
+  pages =        "84--89"
+}
+
+@InProceedings{KelseySchneierWagner97,
+  author = "John Kelsey and Bruce Schneier and David Wagner",
+  title = " Protocol Interactions and the Chosen Protocol Attack",
+  booktitle = "Security Protocols Workshop",
+  year = 1998,
+  ignorepages = "91--104",
+  publisher = "Springer"
+}
+
+@InProceedings{Kemmerer87,
+  author =       "R. A. Kemmerer",
+  title =        "Using Formal
+                  Verification Techniques to Analyse Encryption Protocols",
+  pages =        "134--139",
+  booktitle =    "Proceedings of the 1987 IEEE Symposium on Research
+                  in Security and Privacy",
+  year =         1987,
+  publisher =    "IEEE CS Press"
+}
+
+@Article{Kemmerer89,
+  author =       "R. A. Kemmerer",
+  title =        "Analysing Encryption Protocols Using Formal
+                  Verification Techniques",
+  journal =      "IEEE Journal on Selected Areas in Communications",
+  year =         1989,
+  volume =       7,
+  number =       4,
+  pages =        "448--457"
+}
+
+@InProceedings{KesslerWedel94,
+  author =       "V. Kessler and G. Wedel",
+  title =        "AUTLOG --- An advanced logic of authentication",
+  pages =        "90--99",
+  booktitle =    "Proceedings of the Computer Security Foundations
+                  Workshop VII",
+  year =         1994
+}
+
+@InProceedings{Kocher96,
+  author =       "Paul C. Kocher",
+  title =        "Timing Attacks on Implementations of {Diffie-Hellman}, {RSA}, {DSS}, and Other Systems",
+  pages =        "104--113",
+  editor =       "Neal Koblitz",
+  number =       1109,
+  series =       "Lecture Notes in Computer Science",
+  booktitle =    "Advances in Cryptology --- {CRYPTO} '96",
+  year =         1996,
+  publisher =    "Springer"
+}
+
+@inproceedings{KlayVigneron08,
+  author    = {Francis Klay and
+               Laurent Vigneron},
+  title     = {Automatic Methods for Analyzing Non-repudiation Protocols
+               with an Active Intruder},
+  booktitle = {Formal Aspects in Security and Trust},
+  year      = {2008},
+  pages     = {192-209},
+  ee        = {http://dx.doi.org/10.1007/978-3-642-01465-9_13},
+  crossref  = {DBLP:conf/ifip1-7/2008},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@Article{KocherJaffeJun99,
+  author =       "Paul Kocher and Joshua Jaffe and Benjamin Jun",
+  title =        "Differential Power Analysis",
+  journal =      "Lecture Notes in Computer Science",
+  volume =       "1666",
+  pages =        "388--397",
+  year =         "1999"
+}
+
+@Misc{KohlNeuman93,
+  author= "J. Kohl and C. Neuman",
+  title=  "The {Kerberos} Network Authentication Service (V5)",
+  howpublished="{RFC} 1510",
+  month=sep,
+  year= 1993
+}
+
+@Misc{RFC1510,
+  author= "J. Kohl and C. Neuman",
+  title=  "The {Kerberos} Network Authentication Service (V5)",
+  howpublished="{RFC} 1510",
+  month=sep,
+  year= 1993
+}
+
+@InProceedings{KommerlingKuhn99,
+  author =       "Oliver K{\"{o}}mmerling and Markus G. Kuhn",
+  title =        "Design Principles for Tamper-Resistant Smartcard Processors",
+  pages =        "9--20",
+  booktitle =    "Proceedings of the USENIX Workshop on Smartcard Technology",
+  year =         1999
+}
+
+@conference{krawczyk2005hmqv,
+  title={{HMQV: A high-performance secure {Diffie-Hellman} protocol}},
+  author={Krawczyk, H.},
+  booktitle={Advances in Cryptology--CRYPTO 2005},
+  pages={546--566},
+  year={2005},
+  organization={Springer}
+}
+
+@InProceedings{KremerRaskin02,
+  author =       {Steve Kremer and Jean-Fran{\c{c}}ois Raskin},
+  title =        {Game Analysis of Abuse-Free Contract Signing},
+  booktitle =    {Proceedings, 15th Computer Security Foundations
+                  Workshop},
+  year =         2002,
+  month =        {June},
+  publisher =    {{IEEE} CS Press}
+}
+
+@InProceedings{kuesters2009using,
+  title={Using {ProVerif} to analyze protocols with {Diffie-Hellman} exponentiation},
+  author={Ralf K{\"u}sters and Tomasz Truderung},
+  booktitle={{IEEE} Computer Security Foundations Symposium},
+  pages={157--171},
+  issn={1063-6900},
+  year=2009,
+  organization={IEEE}
+}
+
+@inproceedings{kusters2011composition,
+  title={Composition theorems without pre-established session identifiers},
+  author={K{\"u}sters, R. and Tuengerthal, M.},
+  booktitle={CCS},
+  pages={41--50},
+  year={2011},
+  organization={ACM}
+}
+
+@article{kunz2006security,
+  title={{About the Security of MTI/C0 and MQV}},
+  author={Sebastian Kunz-Jacques and David Pointcheval},
+  journal={Security and Cryptography for Networks},
+  pages={156--172},
+  year={2006},
+  publisher={Springer}
+}
+
+@Article{LadkinLeue94,
+  author =       {Peter B. Ladkin and Stefan Leue},
+  title =        {Interpreting Message Flow Graphs},
+  journal =      {Formal Aspects of Computing},
+  year =         1994,
+  volume =       3,
+  number =       1
+}
+
+@InProceedings{LakhnechEtAl03,
+  author =       {L. Bozga and Y. Lakhnech and M. Perin},
+  title =        {Pattern-based Abstraction for Verifying Secrecy in Protocols},
+  booktitle = {Tools and Algorithms for Construction and Analysis of Systems {(TACAS)}},
+  year =         2003,
+  number =       2619,
+  series =       {LNCS},
+  publisher = {Springer}}
+
+@article{lamacchia2007stronger,
+  title={Stronger security of authenticated key exchange},
+  author={LaMacchia, B. and Lauter, K. and Mityagin, A.},
+  journal={Provable Security},
+  volume = 4784,
+  series =       {LNCS},
+  note = {DOI: \url{dx.doi.org/10.1007/978-3-540-75670-5_1}},
+  year=2007,
+  publisher={Springer}
+}
+
+@Article{Lamport78,
+  author =       {Leslie Lamport},
+  title =        {Time, clocks and the ordering of events in a
+distributed system},
+  journal =      {CACM},
+  year =         1978,
+  volume =       21,
+  number =       7,
+  pages =        {558–-565}}
+
+@Article{LampsonEtAl92,
+  author =       {Butler Lampson and Mart{\'\i}n Abadi and Michael Burrows and Edward Wobber},
+  title =        {Authentication in  Distributed Systems:  Theory and Practice},
+  journal =      {{ACM} Transactions on  Computer Systems},
+  year =         1992,
+  volume =       10,
+  number =       4,
+  pages =        {265--310},
+  month =        {November}
+}
+
+@article{law2003efficient,
+  title={{An efficient protocol for authenticated key agreement}},
+  author={Law, L. and Menezes, A. and Qu, M. and Solinas, J. and Vanstone, S.},
+  journal={Designs, Codes and Cryptography},
+  volume={28},
+  number={2},
+  pages={119--134},
+  issn={0925-1022},
+  year={2003},
+  publisher={Springer}
+}
+
+@Manual{Leroy00,
+  title =        {The Objective Caml System},
+  author =       {Xavier Leroy and Damien Doligez and Jacques Garrigue and Didier R\'emy and J\'er\^ome Vouillon},
+  organization = {{INRIA}},
+  address =      {\texttt{http://caml.inria.fr/}},
+  note =         {Version 3.00},
+  year =         2000
+}
+
+@Misc{LeroyCryptokit05,
+  author =       {Xavier Leroy},
+  title =        {Cryptokit},
+  howpublished = {Sofwtare available via \url{http://pauillac.inria.fr/~xleroy/software.html}},
+  month =        {April},
+  year =         2005,
+  note =         {Version 1.3}
+}
+
+@article{li2012secure,
+  author = 	 {Ming Li and Sucheng Yu and Joshua D. Guttman and
+                  Wenjing Lou and Kui Ren},
+  title = 	 {Secure ad-hoc trust initialization and key management in
+    wireless body area networks},
+  journal = 	 {ACM Transactions on Sensor
+    Networks (TOSN)},
+  volume    = 9,
+  number    = 2,
+  pages     = 18,
+  year      = 2013
+}
+
+@InProceedings{LiEtAl02,
+  author =       {Ninghui Li and John C. Mitchell and William H. Winsborough},
+  title =        {Design of a Role-Based Trust Management Framework},
+  booktitle =    {Proceedings, 2002 IEEE Symposium on Security and Privacy},
+  year =         2002,
+  organization = {May},
+  pages =        {114--130},
+  publisher =    {IEEE CS Press}
+}
+
+@InProceedings{LiEtAl03a,
+  author =       {Ninghui Li  and William H. Winsborough and John C. Mitchell},
+  title =        {Beyond Proof-of-Compliance: Safety and Availability Analysis on Trust Management},
+  booktitle =    {Proceedings, 2003 IEEE Symposium on Security and Privacy},
+  year =         2003,
+  organization = {May},
+  publisher =    {IEEE CS Press}
+}
+
+@Article{LiEtAl03,
+  author =       {Ninghui Li and William H. Winsborough and John C. Mitchell},
+  title =        {Distributed Credential Chain Discovery in Trust Management},
+  journal =      {Journal of Computer Security},
+  year =         2003,
+  month =        feb,
+  volume =       11,
+  number =       1,
+  pages =        {35--86}
+}
+
+@Article{Liebl93,
+  author =       "Armin Liebl",
+  title =        "Authentication in Distributed Systems: A Bibliography",
+  journal =      "Operating Systems Review",
+  year =         1993,
+  volume =       27,
+  number =       4,
+  pages =        "122--136",
+  month =        oct
+}
+
+@Article{Lowe95,
+   author =      "Gavin Lowe",
+   title =       "An Attack on the {Needham-Schroeder}
+                    Public Key  Authentication Protocol",
+   journal =     "Information Processing   Letters",
+   year =        1995,
+   volume =      56,
+   number =      3,
+   pages =       "131--136",
+   month =       nov
+}
+
+@InProceedings{Lowe96,
+  author =       {Gavin Lowe},
+  title =        {Some New Attacks upon Security Protocols},
+  booktitle =    {Proceedings of the Computer Security Foundations
+                  Workshop IX},
+  year =         1996,
+  publisher =    {{IEEE} CS Press}
+}
+
+@InProceedings{Lowe96a,
+  author =       {Gavin Lowe},
+  title =        {Breaking and Fixing the {Needham-Schroeder} Public-Key
+                  Protocol using {FDR}},
+  booktitle =    {Proceeedings of {\sc tacas}},
+  volume =       1055,
+  series =       {LNCS},
+  year =         1996,
+  pages =        {147--166}
+}
+
+@InProceedings{Lowe97,
+  author =       {Gavin Lowe},
+  title =        {A Hierarchy of Authentication Specifications},
+  booktitle =    {10th Computer Security Foundations
+                  Workshop Proceedings},
+  year =         1997,
+  publisher =    {{IEEE} CS Press},
+  pages =        {31--43}
+}
+
+@InProceedings{Lowe97a,
+  author =       {Gavin Lowe},
+  title =        {Casper:  A Compiler for the Analysis of Security Protocols},
+  booktitle =    {10th Computer Security Foundations
+                  Workshop Proceedings},
+  year =         1997,
+  publisher =    {{IEEE} CS Press},
+  pages =        {18--30}
+}
+
+@InProceedings{Lowe98,
+  author =       {Gavin Lowe},
+  title =        {Toward a Completeness Result for Model Checking of Security Protocols},
+  booktitle =    {11th Computer Security Foundations
+                  Workshop Proceedings},
+  year =         1998,
+  publisher =    {{IEEE} CS Press},
+  pages =        {96--105}
+}
+
+@InProceedings{Lowe02,
+  author =       {Gavin Lowe},
+  title =        {Analyzing Protocols subject to Guessing Attacks},
+  booktitle =    {WITS:  Workshop on Issues in the Theory of Security},
+  year =         2002,
+  month =        {January},
+  note =         {Available at http://www.dsi.unive.it/IFIPWG1\_7/wits2002.html}
+}
+
+@Article{Lowe03,
+  author =       {Gavin Lowe},
+  title =        {Analyzing Protocols subject to Guessing Attacks},
+  journal =      {Journal of Computer Security},
+  year =         2003,
+  note =         {Forthcoming}
+}
+
+@TechReport{LoweAuty07,
+  author =       {Gavin Lowe and Michael Auty},
+  title =        {A Calculus for Security Protocol Development},
+  institution =  {Oxford University Computing Laboratory},
+  year =         2007,
+  month =        {March}}
+
+@InProceedings{WuMalkinBoneh99,
+  author =       "T. Wu and M. Malkin and D. Boneh",
+  title =        "Building Intrusion Tolerant Applications",
+  pages =        "79--91",
+  booktitle =    "Proceedings of the 8th USENIX Security Symposium",
+  year =         1999
+}
+
+@InProceedings{MalkinWuBoneh99,
+  author =       "M. Malkin and T. Wu and D. Boneh",
+  title =        "Experimenting with Shared Generation of RSA Keys",
+  pages =        "43--56",
+  booktitle =    "Proceedings of the Internet Society's 1999 Symposium on Network and Distributed System Security (SNDSS)",
+  year =         1999
+}
+
+@InProceedings{MaoBoyd93,
+  author =       "Wenbo Mao and Colin Boyd",
+  title =        "Towards the Formal Analysis of Security Protocols",
+  pages =        "147--158",
+  booktitle =    "Proceedings of the Computer Security Foundations
+                  Workshop VI",
+  year =         1993,
+  publisher =    "IEEE CS Press"
+}
+
+@InProceedings{Maneki99,
+  author =       {Al Maneki},
+  title =        {Honest functions and their Application to the Analysis of
+Cryptographic Protocols},
+  booktitle =    {Proceedings of the 12th Computer Security Foundations
+                  Workshop},
+  year =         1999,
+  month =        {June},
+  publisher =    {IEEE CS Press}
+}
+
+@InProceedings{MaoBoyd94a,
+  author =       "Wenbo Mao and Colin Boyd",
+  title =        "Development of Authentication Protocols: Some
+                  Misconceptions and a New Approach",
+  booktitle =    "Proceedings 7th Computer Security Foundations Workshop",
+  publisher =    "IEEE CS Press",
+  year =         1994,
+  pages =        "178--186"
+}
+
+@InProceedings{MaoBoyd94b,
+  author =       "Wenbo Mao and Colin Boyd",
+  title =        "On Strengthening Authentication protocols
+                  to Foil Cryptanalysis",
+  editor =       "Dieter Gollmann",
+  number =       875,
+  series =       "Lecture Notes in Computer Science",
+  pages =        "193--204",
+  booktitle =    "Computer Security---ESORICS 94",
+  year =         1994,
+  publisher =    "Springer",
+  month =        nov
+}
+
+@InProceedings{MarreroEtAl97,
+  author =       {Will Marrero and Edmund Clarke and Somesh Jha},
+  title =        {A Model Checker for Authentication Protocols},
+  booktitle =    {Proceedings of the {DIMACS} Workshop on Design and Verification of Security Protocols},
+  year =         1997,
+  editor =       {Cathy Meadows and Hilary Orman},
+  month =        {September},
+  organization = {{DIMACS}, Rutgers University}
+}
+
+@Article{MaurerMassey93,
+  author =       {Ueli Maurer and James Massey},
+  title =        {Cascade Ciphers: The Importance of Being First},
+  journal =      {Journal of Cryptology},
+  year =         1993,
+  volume =       6,
+  number =       1,
+  pages =        {55-61}
+}
+
+@Article{Massey88,
+  author =       "James L. Massey",
+  title =        "An Introduction to Contemporary Cryptology",
+  journal =      "Proceedings of the IEEE",
+  year =         1988,
+  volume =       76,
+  number =       5,
+  pages =        "533-549",
+  month =        may
+}
+
+@Article{Meadows92,
+  author =       "Catherine Meadows",
+  title =        "Applying Formal Methods to the Analysis of a Key
+                  Management Protocol",
+  journal =      "Journal of Computer Security",
+  year =         1992,
+  volume =       1,
+  number =       1,
+  pages =        "5--35",
+  ISSN =         "0926-227X"
+}
+
+@article{meadows1996nrl,
+  title={The {NRL} protocol analyzer: An overview},
+  author={Meadows, C.},
+  journal={The Journal of Logic Programming},
+  volume={26},
+  number={2},
+  pages={113--131},
+  year={1996},
+  publisher={Elsevier}
+}
+
+@InProceedings{MayerEtAl00,
+  author =       {Alain Mayer and Avishai Wool and Elisha Ziskind},
+  title =        {Fang:  A Firewall Analysis Engine},
+  booktitle =    {Proceedings, {IEEE} Symposium on Security and Privacy},
+  pages =        {177--187},
+  year =         2000,
+  month =        {May},
+  publisher =    {IEEE CS Press}
+}
+
+@InProceedings{Meadows94,
+  author =       {Catherine Meadows},
+  title =        {A Model of Computation for the {NRL} Protocol Analyzer},
+  booktitle =    {Proceedings of the Computer Security Foundations
+                  Workshop VII},
+  year =         1994,
+  organization = {{IEEE}},
+  publisher =    {{IEEE} CS Press},
+  pages =        {84--89}
+}
+
+@InProceedings{Meadows99,
+  author =       {Catherine Meadows},
+  title =        {Analysis of the {Internet} {Key} {Exchange} Protocol using the {NRL} Protocol Analyzer},
+  booktitle =    {Proceedings, 1999 IEEE Symposium on Security and Privacy},
+  year =         1999,
+  month =        {May},
+  publisher =    {IEEE CS Press}
+}
+
+@InProceedings{Meadows00,
+  author =       {Catherine Meadows},
+  title =        {Open Issues in Formal Methods for Cryptographic Protocol Analysis},
+  booktitle =    {{DISCEX} Workshop},
+  year =         2000,
+  month =        {January},
+  organization = {DARPA}
+}
+
+@InProceedings{Meadows00a,
+  author =       {Catherine Meadows},
+  title =        {Invariant Generation Techniques in Cryptographic Protocol Analsyis},
+  booktitle =    {Proceedings, 13th Computer Security Foundations
+                  Workshop},
+  year =         2000,
+  month =        {July},
+  publisher =    {{IEEE} CS Press}
+}
+
+@inproceedings{cervesato2005encapsulated,
+  title={An encapsulated authentication logic for reasoning about key distribution protocols},
+  author={Cervesato, I. and Meadows, C. and Pavlovic, D.},
+  booktitle={Computer Security Foundations, 2005. CSFW-18 2005. 18th IEEE Workshop},
+  pages={48--61},
+  year={2005},
+  organization={IEEE}
+}
+
+@article{pavlovic2006deriving,
+  title={Deriving secrecy in key establishment protocols},
+  author={Pavlovic, D. and Meadows, C.},
+  journal={Computer Security--ESORICS 2006},
+  pages={384--403},
+  year={2006},
+  publisher={Springer}
+}
+
+@book{menezes2005another,
+  title={{Another look at HMQV}},
+  author={Menezes, A. and University of Waterloo. Dept. of Combinatorics and Optimization and University of Waterloo. Faculty of Mathematics},
+  year={2005},
+  publisher={Citeseer}
+}
+
+@Article{menezes2007another,
+  author =       {Alfred Menezes},
+  title =        {Another look at {HMQV}},
+  journal =      {Journal of Mathematical Cryptology},
+  year =         2007,
+  volume =       1,
+  pages =        {47--64}
+}
+
+@Article{MillenClarkFreedman87,
+  author =       "J. K. Millen and S. C. Clark and S. B. Freedman",
+  title =        "The {Interrogator}: Protocol Security Analysis",
+  journal =      "IEEE Transactions on Software Engineering",
+  year =         1987,
+  volume =       13,
+  number =       2,
+  pages =        "274--288",
+  month =        feb
+}
+
+@InProceedings{Millen95,
+  author =       {Jonathan K. Millen},
+  title =        {The {Interrogator} Model},
+  booktitle =    {Proceedings of the 1995 IEEE Symposium on Security and
+                  Privacy},
+  year =         1995,
+  pages =        {251--60}
+}
+
+@Article{Millen03,
+  author =       {Jonathan K. Millen},
+  title =        {On the Freedom of Encryption},
+  journal =      {Information Processing Letters},
+  year =         2003,
+  volume =       86,
+  number =       6,
+  pages =        {329--333}
+}
+
+@TechReport{MillenMuller01,
+  author =       {Jonathan Millen and Frederic Muller},
+  title =        {Cryptographic Protocol Generation from {CAPSL}},
+  institution =  {{SRI} International},
+  year =         2001,
+  number =       {SRI-CSL-01-07},
+  month =        {December}
+}
+
+@InProceedings{MillenRuess00,
+  author =       {Jonathan K. Millen and Harald Ruess},
+  title =        {Protocol-Independent Secrecy},
+  booktitle =    {Proceedings, 2000 IEEE Symposium on Security and
+                  Privacy},
+  year =         2000,
+  month =        {May},
+  publisher =    {IEEE CS Press}
+}
+
+@InProceedings{MillenShmatikov01,
+  author =       {Jonathan K. Millen and  Vitaly Shmatikov},
+  title =        {Constraint Solving for Bounded-Process Cryptographic Protocol Analysis},
+  booktitle =    {CCS},
+  pages =        {166--175},
+  year =         2001,
+  organization = {ACM}
+}
+
+@TechReport{MillerNeumanSchillerSaltzer87,
+  author =       "S. P. Miller and C. Neuman and J. I. Schiller and
+                  Jerry H. Saltzer",
+  title =        "Project Athena Technical Plan (Section E.2.1)",
+  institution =  "MIT",
+  year =         1987,
+  month =        jul
+}
+
+@Book{Milner89,
+  author =       "Robin Milner",
+  title =        "Communication and Concurrency",
+  publisher =    "Prentice-Hall International",
+  year =         1989,
+  address =      "Englewood Cliffs",
+  patron =      "Guttman"
+}
+
+@InProceedings{Minear95,
+  author =       "Spencer E. Minear",
+  title =        "Providing Policy Control Over Object Operations in a Mach Based System",
+  booktitle =    "Proceedings of the Fifth USENIX UNIX Security Symposium",
+  pages =        "141--156",
+  year =         1995,
+  month =        "June"
+}
+
+@Misc{Mockapetris87,
+  author =       {P. Mockapetris},
+  title =        {Domain Names - Concepts and Facilities},
+  howpublished = {{RFC} 1034},
+  month =        {November},
+  year =         1987
+}
+
+@Misc{RFC1034,
+  author =       {P. Mockapetris},
+  title =        {Domain Names - Concepts and Facilities},
+  howpublished = {{RFC} 1034},
+  month =        {November},
+  year =         1987
+}
+
+@Misc{Mockapetris87a,
+  author =       {P. Mockapetris},
+  title =        {Domain Names - Implementation and Specification},
+  howpublished = {{RFC} 1035},
+  month =        {November},
+  year =         1987
+}
+
+@Misc{RFC1035,
+  author =       {P. Mockapetris},
+  title =        {Domain Names - Implementation and Specification},
+  howpublished = {{RFC} 1035},
+  month =        {November},
+  year =         1987
+}
+
+@article{modersheim2009secure,
+  title={Secure pseudonymous channels},
+  author={M{\"o}dersheim, S. and Vigan{\`o}, L.},
+  journal={ESORICS},
+  pages={337--354},
+  year={2009},
+  series={LNCS}
+}
+
+@Article{Moore88,
+  author =       "Judy H. Moore",
+  title =        "Protocol Failures in Cryptosystems",
+  journal =      "Proceedings of the IEEE",
+  year =         1988,
+  volume =       76,
+  number =       5,
+  month =        may
+}
+
+@InProceedings{MooreAndersonKuhn00,
+  author =       "S. Moore and R. Anderson and M. Kuhn",
+  title =        "Improving Smartcard Security using Self-Timed Circuit Technology",
+  booktitle =    "Fourth AciD-WG Workshop",
+  year =         2000
+}
+
+@InProceedings{MooreEtAl02,
+  author =       "Simon Moore and Ross Anderson and Paul Cunningham and Robert Mullins and George Taylor",
+  title =        "Improving Smart Card Security using Self-Timed Circuits",
+  booktitle =    "Eigth International Symposium on Advanced Research in Asynchronous Circuits and Systems",
+  year =         2002
+}
+
+@InProceedings{Moser89,
+  author =       "Louise E. Moser",
+  title =        "A Logic of Knowledge and Belief about Computer Security",
+  editor =       "J Thomas Haigh",
+  pages =        "57--63",
+  booktitle =    "Proceedings of the Computer Security Foundations
+                  Workshop III",
+  organization = "IEEE",
+  publisher =    "CS Press of the IEEE",
+  year =         1989
+}
+
+@InProceedings{MitchellEtAl97,
+  author =       {John C. Mitchell and Mark Mitchell and Ulrich Stern},
+  title =        {Automated Analysis of Cryptographic Protocols using {Mur}$\varphi$},
+  booktitle =    {Proceedings, 1997 IEEE Symposium on Security and Privacy},
+  pages =        {141--151},
+  year =         1997,
+  organization = {IEEE},
+  publisher =    {CS Press of the IEEE}
+}
+
+@InProceedings{MostrousEtAl09,
+  author =       {Dimitris Mostrous and Nobuko Yoshida and Kohei Honda},
+  title =        {Global principal typing in partially commutative
+asynchronous sessions},
+  booktitle = {{ESOP} Proceedings},
+  year =         2009,
+  series =       {LNCS},
+  month =        {March}}
+
+@Misc{rfc2560,
+  author =       {M.Myers and R.Ankney and A.Malpani and S.Galperin and C. Adams},
+  title =        {X.509 Internet Public Key Infrastructure: Online Certificate Status Protocol - OCSP},
+  howpublished = {Internet Request for Comments 2560},
+  month =        {June},
+  year =         1999,
+  note =         {Available at \texttt{http://www.ietf.org/rfc/rfc2560.txt}}
+}
+
+@Article{NeedhamSchroeder78,
+  author =       "Roger Needham and Michael Schroeder",
+  title =        "Using Encryption for Authentication in Large
+                  Networks of Computers",
+  journal =      "{CACM}",
+  year =         1978,
+  volume =       21,
+  number =       12,
+  pages=         {993--999},
+  month =        dec
+}
+
+@Article{NeedhamSchroeder87,
+  author =       "Roger M. Needham and M. D. Schroeder",
+  title =        "Authentication Revisited",
+  journal =      "Operating Systems Review",
+  year =         1987,
+  volume =       21,
+  number =       7,
+  pages =        "7--7",
+  month =        jan
+}
+
+@Article{Nessett90,
+  author =       "Daniel M. Nessett",
+  title =        "A Critique of the {Burrows}, {Abadi} and {Needham} Logic",
+  journal =      "ACM Operating Systems Review",
+  year =         1990,
+  volume =       24,
+  number =       2,
+  pages =        "35--38",
+  month =        apr
+}
+
+@Article{NeumanStubblebine93,
+  author =       "B. Clifford Neuman and Stuart G. Stubblebine",
+  title =        "A Note on the Use of Timestamps as Nonces",
+  journal =      "Operating Systems Review",
+  year =         1993,
+  volume =       27,
+  number =       2,
+  pages =        "10--14",
+  month =        apr
+}
+
+@Article{Ng03,
+  author =       {Siaw-Lynn Ng},
+  title =        {Posets and protocols:  Picking the right three-party protocol},
+  journal =      {{IEEE} Journal on Selected Areas in Communication},
+  month =        {January},
+  pages =        "55--61",
+  year =         2003
+}
+
+@Misc{NuSMV01,
+  key =          {NuSMV},
+  title =        {{NuSMV}: a new symbolic model checker},
+  howpublished = {URL \url{http://sra.itc.it/tools/nusmv}},
+  year =         2001
+}
+
+@InProceedings{OlawskyEtAl96,
+  author =       "D. Olawsky and T. Fine and E. Schneider and R. Spencer",
+  title =        "Developing and Using a Policy Neutral Access Control Policy",
+  booktitle =    "Proceedings of the New Security Paradigms Workshop",
+  year =         1996,
+  month =        "September"
+}
+
+@InProceedings{Ottawa01,
+  author =       {P. Loscocco and S. Smalley},
+  title =        {Meeting Critical Security Objectives with Security-Enhanced {Linux}},
+  booktitle =    {Proceedings of the 2001 Ottawa Linux Symposium},
+  year =         2001
+}
+
+@Article{OtwayRees87,
+  author =       "D. Otway and O. Rees",
+  title =        "Efficient and Timely Mutual Authentication",
+  journal =      "Operating Systems Review",
+  year =         1987,
+  volume =       21,
+  number =       1,
+  pages =        "8--10",
+  month =        jan
+}
+
+@Misc{PCKS1,
+  author =       {{RSA} Laboratories},
+  title =        {{PCKS} \#1: {RSA} Encryption Standard},
+  month =        {November},
+  year =         1993,
+  note =         {Version 1.5}
+}
+
+@InProceedings{Patel97,
+  author =       {Sarvar Patel},
+  title =        {Number Theoretic Attacks on Secure Password Schemes},
+  booktitle =    {Proceedings of the 1997 {IEEE} Symposium on Security and
+                  Privacy},
+  pages =        {236--247},
+  year =         1997,
+  month =        {May},
+  publisher =    {{IEEE} CS Press}
+}
+
+@Book{Paulson94,
+  author =       {L. C. Paulson},
+  title =        {Isabelle:  A Generic Theorem Prover},
+  publisher =    {Springer Verlag},
+  year =         1994,
+  number =       828,
+  series =       {LNCS}
+}
+
+@InProceedings{Paulson97,
+  author =       {Lawrence C. Paulson},
+  title =        {Proving Properties of Security Protocols by Induction},
+  booktitle =    {10th {IEEE} Computer Security Foundations Workshop},
+  year =         1997,
+  publisher =    {IEEE CS Press},
+  pages =        {70--83}
+}
+
+@InProceedings{Paulson97a,
+  author =       {Lawrence C. Paulson},
+  title =        {Mechanized Proofs of a Recursive Authentication Protocol},
+  booktitle =    {10th {IEEE} Computer Security Foundations Workshop},
+  year =         1997,
+  publisher =    {IEEE CS Press},
+  pages =        {84--94}
+}
+
+@TechReport{Paulson97b,
+  author =       {Lawrence C. Paulson},
+  title =        {On Two Formal Analyses of the {Yahalom} Protocol},
+  institution =  {Cambridge University Computer Laboratory},
+  year =         1997,
+  number =       432,
+  month =        {July},
+  annote =       {http://www.cl.cam.ac.uk/users/lcp/papers/protocols.html}
+}
+
+@Article{Paulson97c,
+  author =       {Lawrence C. Paulson},
+  title =        {Relations between secrets: Two Formal Analyses of the {Yahalom} Protocol},
+  journal =      {Journal of Computer Security},
+  year =         2001,
+  annote =       {http://www.cl.cam.ac.uk/users/lcp/papers/protocols.html}
+}
+
+@Article{Paulson97d,
+  author =       {Lawrence C. Paulson},
+  title =        {Relations between secrets: Two Formal Analyses of the {Yahalom} Protocol},
+  journal =      {Journal of Computer Security},
+  year =         2001,
+  note =         {Also available as Cambridge University Computer Laboratory Technical Report 432 (1997)},
+  annote =       {http://www.cl.cam.ac.uk/users/lcp/papers/protocols.html}
+}
+
+@Article{Paulson98,
+  author =       {Lawrence C. Paulson},
+  title =        {The Inductive Approach to Verifying Cryptographic Protocols},
+  journal =      {Journal of Computer Security},
+  year =         1998,
+  note =         {Also Report 443, Cambridge University Computer Lab},
+  annote =       {From http://www.cl.cam.ac.uk/users/lcp/papers/protocols.html}
+}
+
+@Article{Paulson99,
+  author =       {Lawrence C. Paulson},
+  title =        {Inductive analysis of the {Internet} protocol {TLS}},
+  journal =      {ACM Transactions on Computer and System Security},
+  year =         1999,
+  annote =       {From http://www.cl.cam.ac.uk/users/lcp/papers/protocols.html}
+}
+
+@Article{PfitzmannEtAl00,
+  author =       {Birgit Pfitzmann and Matthias Schunter and Michael Waidner},
+  title =        {Cryptographic Security of Reactive Systems},
+  journal =      {Electronic Notes in Theoretical Computer Science},
+  year =         2000,
+  volume =       32
+}
+
+@InProceedings{PfitzmannSchunterWaidner1998,
+  Author =       {Birgit Pfitzmann and Matthias Schunter and Michael
+                  Waidner},
+  Title =        {Optimal Efficiency of Optimistic Contract Signing},
+  BookTitle =    {Seventeenth Annual {ACM} Symposium on Principles of
+                  Distributed Computing},
+  Pages =        {113--122},
+  Address =      {New York},
+  Organization = {ACM},
+  month =        may,
+  added-by =     {aso},
+  year =         1998,
+}
+
+@InProceedings{PfitzmannWaidner00,
+  author =       {Birgit Pfitzmann and Michael Waidner},
+  title =        {Composition and Integrity Preservation of Secure Reactive Systems},
+  booktitle =    {Proceedings, Seventh ACM Conference of Communication and Computer Security},
+  year =         2000,
+  month =        {November},
+  organization = {{ACM}}
+}
+
+@InProceedings{PfitzmannWaidner01,
+  author =       {Birgit Pfitzmann and Michael Waidner},
+  title =        {A Model for Asynchronous Reactive Systems and its Application to Secure Message Transmission},
+  booktitle =    {Proceedings, 2001 IEEE Symposium on Security and Privacy},
+  year =         2001,
+  month =        May,
+  publisher =    {{IEEE CS} Press},
+  url = "citeseer.nj.nec.com/pfitzmann00model.html",
+  note =         {Preprint at \url{http://iacr.org/2000/066.ps.gz}}
+}
+
+@Book{Prawitz65,
+  author =       {Dag Prawitz},
+  title =        {Natural Deduction:  A Proof-Theoretic Study},
+  publisher =    {Almqvist and Wiksel},
+  year =         1965,
+  address =      {Stockholm}
+}
+
+@Unpublished{prover9,
+  author = 	 {Bill W. McCune},
+  title = 	 {Prover9},
+  note = 	 {\url{http://www.cs.unm.edu/~mccune/mace4/}},
+  OPTkey = 	 {},
+  OPTmonth = 	 {},
+  OPTyear = 	 {},
+  OPTannote = 	 {}
+}
+
+@InProceedings{PurdyEtAl82,
+  author =       {G. B. Purdy and G. J. Simmons and J. A. Studier},
+  title =        {A Software Protection Scheme},
+  booktitle =    {1982 IEEE Symposium on Security and Privacy},
+  year =         1982,
+  pages =        {99--103}
+}
+
+@Book{PearsonEtAl03,
+  author =       {Boris Balacheff and Liqun Chen and Siani Pearson and David Plaquin and Graeme Proudler},
+  title =        {Trusted Computing Platforms: {TCPA} Technology in Context},
+  publisher =    {Prentice Hall PTR},
+  year =         2003,
+  address =      {Upper Saddle River, NJ}
+}
+
+@InProceedings{QuisquaterSamyde01,
+  author =       "J.J. Quisquater and D. Samyde",
+  title =        "ElectroMagnetic Analysis (EMA): Measures and Countermeasures for Smart Cards",
+  booktitle =    "International Conference on Research in Smart Cards (E-smart 2001)",
+  pages =        "200--210",
+  month =        "September",
+  year =         2001
+}
+
+@Manual{cpsaspec09,
+  title = 	 {The {CPSA} Specification:
+    A Reduction System for Searching for Shapes in Cryptographic Protocols},
+  OPTkey = 	 {},
+  author = 	 {John D.~Ramsdell and Joshua D.~Guttman and Moses D.~Liskov and Paul D.~Rowe},
+  organization = {The MITRE Corporation},
+  OPTaddress = 	 {},
+  OPTedition = 	 {},
+  OPTmonth = 	 {},
+  year = 	 2009,
+  note = 	 {In \url{http://hackage.haskell.org/package/cpsa} source
+    distribution, \texttt{doc} directory},
+  OPTannote = 	 {}
+}
+
+@Manual{cpsadesign09,
+  title = 	 {{CPSA} Design},
+  OPTkey = 	 {},
+  author = 	 {John D.~Ramsdell and Joshua D.~Guttman},
+  organization = {The MITRE Corporation},
+  OPTaddress = 	 {},
+  OPTedition = 	 {},
+  OPTmonth = 	 {},
+  year = 	 2009,
+  note = 	 {In \url{http://hackage.haskell.org/package/cpsa} source
+    distribution, \texttt{doc} directory},
+  OPTannote = 	 {}
+}
+
+@Manual{cpsaprimer09,
+  title = 	 {{CPSA} Primer},
+  OPTkey = 	 {},
+  author = 	 {John D.~Ramsdell and Joshua D.~Guttman},
+  organization = {The MITRE Corporation},
+  OPTaddress = 	 {},
+  OPTedition = 	 {},
+  OPTmonth = 	 {},
+  year = 	 2009,
+  note = 	 {In \url{http://hackage.haskell.org/package/cpsa} source
+    distribution, \texttt{doc} directory},
+  OPTannote = 	 {}
+}
+
+@Manual{cpsaoverview09,
+  title = 	 {{CPSA} Overview},
+  OPTkey = 	 {},
+  author = 	 {John D.~Ramsdell and Joshua D.~Guttman},
+  organization = {The MITRE Corporation},
+  OPTaddress = 	 {},
+  OPTedition = 	 {},
+  OPTmonth = 	 {},
+  year = 	 2009,
+  note = 	 {In \url{http://hackage.haskell.org/package/cpsa} source
+    distribution, \texttt{doc} directory},
+  OPTannote = 	 {}
+}
+
+@Manual{cpsauser09,
+  title = 	 {{CPSA} User Guide},
+  OPTkey = 	 {},
+  author = 	 {John D.~Ramsdell},
+  organization = {The MITRE Corporation},
+  OPTaddress = 	 {},
+  OPTedition = 	 {},
+  OPTmonth = 	 {},
+  year = 	 2009,
+  note = 	 {In \url{http://hackage.haskell.org/package/cpsa} source
+    distribution, \texttt{doc} directory},
+  OPTannote = 	 {}
+}
+
+@Misc{cpsa09,
+  author =       {John D. Ramsdell and Joshua D. Guttman},
+  title =        {{CPSA}: A cryptographic protocol shapes analyzer},
+  booktitle =    {Hackage},
+  publisher =    {The MITRE Corporation},
+  year =         2009,
+  note =         {\url{http://hackage.haskell.org/package/cpsa}}}
+
+@Misc{cpsa16,
+  author =       {John D. Ramsdell and Joshua D. Guttman and Moses Liskov},
+  title =        {{CPSA}: A cryptographic protocol shapes analyzer},
+  booktitle =    {Hackage},
+  publisher =    {The MITRE Corporation},
+  year =         2016,
+  note =         {\url{http://hackage.haskell.org/package/cpsa}}}
+
+@Misc{cpsa17,
+  author =       {John D. Ramsdell and Joshua D. Guttman},
+  title =        {{CPSA4}: A cryptographic protocol shapes analyzer},
+  booktitle =    {Hackage},
+  publisher =    {The MITRE Corporation},
+  year =         2017,
+  note =         {\url{https://github.com/mitre/cpsaexp}}}
+
+@Misc{agum09,
+  author =       {John D. Ramsdell},
+  title =        {{AGUM}: Unification and Matching in an Abelian Group},
+  booktitle =    {Hackage},
+  publisher =    {The MITRE Corporation},
+  year =         2009,
+  note =         {\url{http://hackage.haskell.org/package/agum}}
+}
+
+@InProceedings{KepserRichts99,
+  author = 	 {Stephan Kepser and J\"{o}rn Richts},
+  title = 	 {Optimisation Techniques for Combining Constraint Solvers},
+  booktitle =    {Frontiers of Combining Systems 2},
+  pages = 	 {193--210},
+  year = 	 1999,
+  editor = 	 {Maarten de Rijke and Dov Gabbay},
+  address = 	 {Asmsterdam},
+  publisher =    {Research Studies Press/Wiley},
+  note = {\url{http://tcl.sfs.uni-tuebingen.de/~kepser/papers/optimisation.ps.gz}}}
+
+@PhdThesis{Liu12,
+  author = 	 {Zhiqiang Liu},
+  title = 	 {Dealing Efficiently with Exclusive OR, Abelian
+                  Groups and Homomorphism in Cryptographic Protocol
+                  Analysis},
+  school = 	 {Clarkson University},
+  year = 	 2012,
+  month = 	 sep,
+  note = 	 {\url{http://people.clarkson.edu/~clynch/papers/}}}
+
+@book{Knuth81,
+  author    = {Donald E. Knuth},
+  title     = {The Art of Computer Programming, Volume {II:} Seminumerical Algorithms,
+               2nd Edition},
+  publisher = {Addison-Wesley},
+  year      = {1981},
+  isbn      = {0-201-03822-6},
+  timestamp = {Thu, 03 Jan 2002 11:51:07 +0100},
+  biburl    = {http://dblp.org/rec/bib/books/aw/Knuth81},
+  bibsource = {dblp computer science bibliography, http://dblp.org}
+}
+
+@Misc{rfc1661,
+  author =       {W. Simpson},
+  title =        {The Point--to--Point Protocol},
+  howpublished = {RFC 1661},
+  month =        {July},
+  year =         1994
+}
+
+@Misc{rfc2420,
+  author =       {H. Jummert},
+  title =        {The {PPP} Triple--{DES} Encryption Protocol},
+  howpublished = {RFC 2420},
+  month =        {September},
+  year =         1998
+}
+
+@Misc{rfc2419,
+  author =       {K Sklower and G. Meyer},
+  title =        {The {PPP} {DES} Encryption Protocol, Version 2},
+  howpublished = {{RFC} 2419},
+  month =        {September},
+  year =         1998
+}
+
+@Misc{rfc1968,
+  author =       {G. Meyer},
+  title =        {The {PPP} Encryption Control Protocol},
+  howpublished = {{RFC} 1968},
+  month =        {June},
+  year =         1996
+}
+
+@Misc{rfc2284,
+  author =       {L. Blunk},
+  title =        {{PPP} Extensible Authentication Protocol},
+  howpublished = {RFC 2284},
+  month =        {March},
+  year =         1998
+}
+
+@Misc{rfc2716,
+  author =       {B. Aboba and D. Simon},
+  title =        {{PPP} {EAP} {TLS} Authentication Protocol},
+  howpublished = {{RFC} 2716},
+  month =        {October},
+  year =         1999
+}
+
+@MANUAL{rfc:2401,
+        TITLE = "Security Architecture for the Internet Protocol",
+        ORGANIZATION = "{IETF} Network Working Group {RFC} 2401",
+        AUTHOR = "S. Kent and R. Atkinson",
+        MONTH = "November",
+        YEAR = "1998" }
+
+@MANUAL{rfc:2402,
+        TITLE = "IP Authentication Header",
+        ORGANIZATION = "IETF Network Working Group {RFC} 2402",
+        AUTHOR = "S. Kent and R. Atkinson",
+        MONTH = "November",
+        YEAR = "1998" }
+
+@MANUAL{rfc:2406,
+        TITLE = "IP Encapsulating Security Payload",
+        ORGANIZATION = "IETF Network Working Group {RFC} 2406",
+        AUTHOR = "S. Kent and R. Atkinson",
+        MONTH = "November",
+        YEAR = "1998" }
+
+@MANUAL{rfc:2407,
+        TITLE = "The Internet IP Security Domain of Interpretation for ISAKMP",
+        ORGANIZATION = "IETF Network Working Group {RFC} 2407",
+        AUTHOR = "D. Piper",
+        MONTH = "November",
+        YEAR = "1998" }
+
+@MANUAL{rfc:2408,
+        TITLE = "Internet Security Association and Key Management Protocol (ISAKMP)",
+        ORGANIZATION = "IETF Network Working Group {RFC} 2408",
+        AUTHOR = "D. Maughan and M. Schertler and M. Schneider and J. Turner",
+        MONTH = "November",
+        YEAR = "1998" }
+
+@MANUAL{rfc:2409,
+        TITLE = "The Internet Key Exchange (IKE)",
+        ORGANIZATION = "IETF Network Working Group {RFC} 2409",
+        AUTHOR = "D. Harkins and D. Carrel",
+        MONTH = "November",
+        YEAR = "1998" }
+
+@techreport{Rabin81,
+  title={How to exchange secrets by oblivious transfer},
+  author={Michael Rabin},
+  year={1981},
+  institution={Technical Report TR-81, Harvard Aiken Computation Laboratory},
+note = "Available at \url{http://eprint.iacr.org/2005/187}"
+}
+
+@Article{RivestShamirAdleman78,
+  author =       "R. Rivest and A. Shamir and L. Adleman",
+  title =        "A Method for Obtaining Digital Signatures and Public
+                  Key Cryptosystems",
+  journal =      "Communications of the ACM",
+  year =         1978,
+  volume =       21,
+  number =       2,
+  pages =        "120--126",
+  month =        feb
+}
+
+@InCollection{Roscoe94,
+  author =       {A. W. Roscoe},
+  title =        {Model-Checking {CSP}},
+  booktitle =    {A Classical Mind:  Essays in Honour of C. A. R. Hoare},
+  publisher =    {Prentice-Hall},
+  year =         1994,
+  editor =       {A. W. Roscoe}
+}
+
+@InProceedings{Roscoe95,
+  author =       {A. W. Roscoe},
+  title =        {Modeling and Verifying Key-Exchange Protocols Using {CSP} and {FDR}},
+  booktitle =    {Proceedings of the 8th {IEEE} Computer Security Foundations
+                  Workshop},
+  year =         1995,
+  pages =        {98--107}
+}
+
+@inproceedings{Roscoe1995csp,
+  title={{CSP} and Determinism in Security Modelling},
+  author={Roscoe, A William},
+  booktitle={{IEEE} Security and Privacy},
+  pages={114--127},
+  year={1995},
+  organization={IEEE}
+}
+
+@InProceedings{Roscoe96,
+  author =       {A. W. Roscoe},
+  title =        {Intensional Specifications of Security Protocols},
+  booktitle =    {Proceedings of the 9th {IEEE} Computer Security Foundations
+                  Workshop},
+  year =         1996,
+  pages =        {28--38}
+}
+
+@Book{Roscoe97,
+  author =       {A. W. Roscoe},
+  title =        {The Theory and Practice of Concurrency},
+  publisher =    {Prentice-Hall},
+  year =         1997
+}
+
+@InProceedings{RoscoeGoldsmith99,
+  author =       {A. W. Roscoe and M. H. Goldsmith},
+  title =        {What is Intransitive Noninterference?},
+  booktitle =    {12th {IEEE} Computer Security Foundations Workshop},
+  pages =        {228--238},
+  year =         1999,
+  month =        {June},
+  publisher =    {{IEEE} {CS} Press}
+}
+
+@TechReport{RubinHoneyman93,
+  author =       "A. D. Rubin and P. Honeyman",
+  title =        "Formal Methods for the Analysis of Authentication Protocols",
+  institution =  "CITI",
+  year =         1993,
+  number =       "Technical report 93--7",
+  month =        nov
+}
+
+@InProceedings{RubinHoneyman94,
+  author =       "A. D. Rubin and P. Honeyman",
+  title =        "Nonmonotonic Crytpographic Protocols",
+  pages =        "100--115",
+  booktitle =    "Proceedings of the Computer Security Foundations
+                  Workshop VII",
+  year =         1994,
+  publisher =    "IEEE CS Press"
+}
+
+@inproceedings{RusinowitchTuruani01,
+  author    = {Micha{\"e}l Rusinowitch and
+               Mathieu Turuani},
+  title     = {Protocol Insecurity with Finite Number of Sessions is {NP}-Complete},
+  booktitle = {Computer Security Foundations Workshop},
+  year      = 2001,
+  pages     = {174-},
+  ee        = {http://csdl.computer.org/comp/proceedings/csfw/2001/1146/00/11460174abs.htm},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@article{RusinowitchTuruani03,
+  author    = {Micha{\"e}l Rusinowitch and
+               Mathieu Turuani},
+  title     = {Protocol insecurity with a finite number of sessions, composed
+               keys is NP-complete},
+  journal   = {Theor. Comput. Sci.},
+  volume    = {1-3},
+  number    = {299},
+  year      = {2003},
+  pages     = {451-475},
+  ee        = {http://dx.doi.org/10.1016/S0304-3975(02)00490-5},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@Article{RyanSchneider98,
+  author =       {Peter Y. A. Ryan and Steve Schneider},
+  title =        {An Attack on {APM}'s Recursive Authentication Protocol---a Cautionary Tale},
+  journal =      {Information Processing Letters},
+  year =         1998,
+  volume =       65
+}
+
+@article{RyanSchneider2001,
+ author = {Peter Ryan and Steve Schneider},
+ title = {Process Algebra and Non-interference},
+ journal = {J. Comput. Secur.},
+ volume = {9},
+ number = {1-2},
+ month = jan,
+ year = {2001},
+ pages = {75--103}
+}
+
+@Article{SabelfeldMyers03,
+  author =       {Andrei Sabelfeld and Andrew C. Myers},
+  title =        {Language-based Information-Flow Security},
+  journal =      {{IEEE} Journal on Selected Areas in Communication},
+  year =         2003,
+  volume =       21,
+  number =       1,
+  pages =        {5--19},
+  month =        {January}
+}
+
+@TechReport{Satyanarayanan87,
+  author =       "N. Satyanarayanan",
+  title =        "Integrating Security in a Large Distributed System",
+  institution =  "CMU",
+  year =         1987,
+  number =       "iCMU-CS-87-179",
+  month =        "nov"
+}
+
+@InProceedings{Schneider96,
+  author =       {Steve Schneider},
+  title =        {Security Properties and {CSP}},
+  booktitle =    {Proceedings, 1996 {IEEE} Symposium on Security and Privacy},
+  pages =        {174--87},
+  year =         1996,
+  month =        {May},
+  publisher =    {{IEEE} CS Press}
+}
+
+@InProceedings{Schneider97,
+  author =       {Steve Schneider},
+  title =        {Verifying Authentication Protocols with {CSP}},
+  booktitle =    {Proceedings of the 10th {IEEE} Computer Security Foundations
+                  Workshop},
+  year =         1997,
+  publisher =    {IEEE CS Press},
+  pages =        {3--17}
+}
+
+@Article{Schneier93,
+  author =       "B. Schneier",
+  title =        "The IDEA Encryption Algorithm",
+  journal =      "Dr. Dobb's Journal",
+  year =         1993,
+  pages =        "50--56",
+  month =        "December"
+}
+
+@Book{Schneier94,
+  author =       "Bruce Schneier",
+  title =        "Applied Cryptography",
+  publisher =    "Wiley",
+  year =         1994
+}
+
+@unpublished{SchneierShostack99,
+  author =      "Bruce Schneier and Adam Shostack",
+  title =       "Breaking Up Is Hard To Do: Modeling Security Threats for Smart Cards",
+  note =        "Counterpane Systems and Netect, Inc., available at http://www.counterpane.com/smart-card-threats.html",
+  year =        1999
+}
+
+@UNPUBLISHED{FergusonSchneier99,
+         AUTHOR = "Niels Ferguson and Bruce Schneier",
+         TITLE = "A Cryptographic Evaluation of IPsec",
+         NOTE = "Counterpane Internet Security, Inc., available at http://www.counterpane.com/ipsec.html",
+         year = 1999
+}
+
+@article{Selinger01,
+  author    = {Peter Selinger},
+  title     = {Models for an adversary-centric protocol logic},
+  journal   = {Electr. Notes Theor. Comput. Sci.},
+  volume    = {55},
+  number    = {1},
+  year      = {2001},
+  ee        = {http://www.elsevier.com/gej-ng/31/29/23/83/27/show/Products/notes/index.htt\#007},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@Misc{SELinux03,
+  author =       {{National Security Agency}},
+  title =        {Security-Enhanced {Linux}},
+  howpublished = {At URL \url{http://www.nsa.gov/selinux/index.html}},
+  month =        {April},
+  year =         2003
+}
+
+@Misc{SetSpec97,
+  key =          {SET},
+  title =        {{SET} Secure Electronic Transaction Specification},
+  month =        {May},
+  year =         1997,
+  note =         {Available at {http://www.setco.org/download.html}}
+}
+
+@TechReport{SELTechRep,
+  author =       "P. Loscocco and S. Smalley",
+  title =        "Integrating Flexible Support for Security Policies into the Linux Operating System",
+  institution =  "NSA, NAI Labs",
+  year =         "2001",
+  month =        "April"
+}
+
+@Unpublished{sendmail01,
+  author =       "Franklin Haskell",
+  title =        "Confining Sendmail Using Security-Enhanced Linux",
+  month =        "October",
+  year =         2001
+}
+
+@InProceedings{Shamir00,
+  author =       "A. Shamir",
+  title =        "Protecting Smart Cards from Passive Power Analysis with Detached Power Supplies",
+  booktitle =    "CHES 2000, Springer-Verlag",
+  year =         2000,
+  pages =        "71--77"
+}
+
+@TechReport{Shoup99,
+  author =       {Victor Shoup},
+  title =        {On Formal Models for Secure Key Exchange},
+  institution =  {IBM Research},
+  year =         1999,
+  type =         {Research Report},
+  number =       {RZ 3120 (\#93166)},
+  month =        Apr,
+  day =          19,
+  note =         {A revised version 4, dated November 15, 1999, is
+                  available from \url{http://www.shoup.net/papers/}}
+}
+
+@InProceedings{Simmons85,
+  author =       {Gustavus J. Simmons},
+  title =        {How to (Selectively) Broadcast a Secret},
+  booktitle =    {1985 IEEE Symposium on Security and Privacy},
+  year =         1985,
+  pages =        {108--113}
+}
+
+@Article{Simmons88,
+  author =       "G.J. Simmons",
+  title =        "How to Insure that Data Aquired to Verify Treaty
+                  Compliance are Trustworthy",
+  journal =      "Proceedings of the IEEE",
+  year =         1988,
+  volume =       76,
+  number =       5,
+  pages =        "621--627",
+  month =        "May"
+}
+
+@Unpublished{SkoroAnderson02,
+  author =       "Sergei Skorobogatov and Ross Anderson",
+  title =        "Optical Fault Induction Attacks",
+  year =         2002,
+  note =         "University of Cambridge, Computer Laboratory. Available at http://www.ftp.cl.cam.ac.uk/ftp/users/rja14/faultpap3.pdf"
+}
+
+@Article{SmidBranstad88,
+  author =       "Miles E. Smid and Dennis K. Branstad",
+  title =        "The Data Encryption Standard: Past and Future",
+  journal =      "Proceedings of the IEEE",
+  year =         1988,
+  volume =       76,
+  number =       5,
+  pages =        "550--559",
+  month =        may
+}
+
+@InProceedings{Snekkenes91,
+  author =       "Einar Snekkenes",
+  title =        "Exploring the BAN Approach to Protocol Analysis",
+  pages =        "171--181",
+  booktitle =    "1991 IEEE Symposium on Research in Security and Privacy",
+  year =         1991,
+  publisher =    "IEEE CS Press"
+}
+
+@InProceedings{Snekkenes92,
+  author =       "E. Snekkenes",
+  title =        "Roles in Cryptographic protocols",
+  booktitle =    "Proceedings of the 1992 IEEE Symposium  on Security
+                  and Privacy",
+  year =         1992,
+  publisher =    "IEEE CS Press"
+}
+
+@InProceedings{Song99,
+  author =       {Dawn Xiaodong Song},
+  title =        {Athena: a New Efficient Automated Checker for Security Protocol Analysis},
+  booktitle =    {Proceedings of the 12th {IEEE} Computer Security Foundations Workshop},
+  year =         1999,
+  month =        {June},
+  publisher =    {{IEEE} CS Press}
+}
+
+@InProceedings{PerrigSong00,
+  author =       {Adrian Perrig and Dawn Xiaodong Song},
+  title =        {Looking for Diamonds in the Desert:  Extending Automatic Protocol Generation to Three-Party Authentication and Key Agreement Protocols},
+  booktitle =    {Proceedings of the 13th {IEEE} Computer Security Foundations Workshop},
+  year =         2000,
+  month =        {July},
+  publisher =    {{IEEE} CS Press}
+}
+
+@InProceedings{PerrigSong00a,
+  author =       {Adrian Perrig and Dawn Xiaodong Song},
+  title =        {A First Step Toward the Automatic Generation of Security Protocols},
+  booktitle =    {Network and Distributed System Security Symposium},
+  year =         2000,
+  month =        {February},
+  publisher =    {Internet Society}
+}
+
+@InProceedings{SpiessensVanRoy05,
+  author =       {Fred Spiessens and Peter {Van Roy}},
+  title =        {A Practical Formal Model for Safety Analysis in Capability-Based Systems},
+  booktitle =    {Trust in Global Computing},
+  year =         2005,
+  editor =       {Rocco De Nicola and Davide Sangiorgi},
+  number =       3705,
+  series =       {LNCS},
+  publisher =    {Springer}
+}
+
+@InProceedings{RamanujamSuresh03,
+  author =       {R. Ramanujam and S. P. Suresh},
+  title =        {A Decidable Subclass of Unbounded Security Protocol},
+  booktitle =    {WITS '03: Workshop on Issues in the Theory of Security},
+  pages =        {11--20},
+  year =         2003,
+  editor =       {R. Gorrieri},
+  address =      {Warsaw},
+  month =        {April}
+}
+
+@incollection{ramanujam2003tagging,
+  title={Tagging makes secrecy decidable with unbounded nonces as well},
+  author={Ramaswamy Ramanujam and S P Suresh},
+  booktitle={FST TCS 2003: Foundations of Software Technology and Theoretical Computer Science},
+  pages={363--374},
+  year={2003},
+  publisher={Springer}
+}
+
+@Article{RamanujamSuresh05,
+  author =       {R. Ramanujam and S. P. Suresh},
+  title =        {Decidability of Context-Explicit Security Protocols},
+  journal =      {Journal of Computer Security},
+  year =         2005,
+  volume =       13,
+  number =       1,
+  pages =        {135--166},
+  note =         {Preliminary version appeared in WITS '03, \emph{Workshop on Issues in the Theory of Security}, Warsaw, April 2003}
+}
+
+@Unpublished{Ramsdell12a,
+ author =       {John D. Ramsdell},
+ title =        {Deducing Security Goals From Shape Analysis Sentences},
+ note =         {\url{http://arxiv.org/abs/1204.0480}},
+ OPTkey =       {},
+ month =        apr,
+ year =         2012,
+ OPTannote =    {}
+}
+
+@Misc{Ramsdell12,
+  author = 	 {John D. Ramsdell},
+  title = 	 {Deducing Security Goals from Shape Analysis Sentences},
+  howpublished = {The MITRE Corporation},
+  month =        apr,
+  year = 	 2012,
+  note = 	 {\url{http://arxiv.org/abs/1204.0480}}}
+
+@Misc{RamsdellEtAl14,
+  author = 	 {John D. Ramsdell and Daniel J. Dougherty and
+                  Joshua D. Guttman and Paul D. Rowe},
+  title = 	 {A Hybrid Analysis for Security Protocols with State},
+  howpublished = {The MITRE Corporation and Worcester Polytechnic Institute},
+  month =        apr,
+  year = 	 2014,
+  note = 	 {\url{http://arxiv.org/abs/1404.3899}}}
+
+@TechReport{SegallGuttman08,
+  author =       {Ariel Segall and Joshua Guttman},
+  title =        {A Strand Space/Multiset Rewriting Model of {TPM}
+                  Commands},
+  institution =  {The MITRE Corporation},
+  year =         2008,
+  type =         {MTR},
+  number =       080181,
+  address =      {Bedford, MA},
+  month =        {July}}
+
+@InProceedings{SpencerSmalleyEtAl99,
+  author =       "R. Spencer and S. Smalley and P. Loscocco and M. Hibler and D. Anderson and J. Lepreau",
+  title =        "The Flask Security Architecture: System Support for Diverse Security Policies",
+  booktitle =    "Proceedings of the Eighth USENIX Security Symposium",
+  year =         1999,
+  month =        "August",
+  pages =        "123--139"
+}
+
+@InProceedings{Stoller99,
+  author =       {Scott Stoller},
+  title =        {A Reduction for Automated Verification of Authentication Protocols},
+  booktitle =    {Workshop on Formal Methods and Security Protocols},
+  year =         1999,
+  month =        {July},
+  note =         {Available at http://www.cs.indiana.edu/\~{ }stoller/}
+}
+
+@Unpublished{Stoller99a,
+  author =       {Scott Stoller},
+  title =        {A Bound on Attacks on Authentication Protocols},
+  note =         {Available at http://www.cs.indiana.edu/\~{ }stoller/},
+  month =        {July},
+  year =         1999
+}
+
+@InProceedings{StubblebineGligor92,
+  author =       "Stuart G. Stubblebine and Virgil D. Gligor",
+  title =        "On Message Integrity in Cryptographic Protocols",
+  pages =        "85-104",
+  booktitle =    "Proceedings of the 1992 IEEE Symposium on Research
+                  in Security and Privacy",
+  year =         1992,
+  publisher =    "IEEE"
+}
+
+@InProceedings{Sutherland86,
+  author =       {David Sutherland},
+  title =        {A Model of Information},
+  booktitle =    {9th National Computer Security Conference},
+  year =         1986,
+  organization = {National Institute of Standards and Technology}
+}
+
+@InProceedings{Syverson91,
+  author =       "Paul Syverson",
+  title =        "The Use of Logic in the Analysis of Cryptographic Protocols",
+  booktitle =    "Proceedings of the 1991 IEEE Symposium on Security
+                  and Privacy",
+  publisher =    "IEEE CS",
+  year =         1991,
+  editor =       "Teresa F. Lunt and John McLean",
+  pages =        "156--170",
+  month =        may
+}
+
+@InProceedings{Syverson94a,
+  author =       "Paul Syverson",
+  title =        "A Taxonomy Of Replay Attacks",
+  pages =        "131--136",
+  booktitle =    "Proceedings of the 7th IEEE  Computer Security
+                  Foundations Workshop",
+  year =         1994,
+  publisher =    "IEEE CS Press"
+}
+
+@InProceedings{Syverson94b,
+  author =       "Paul Syverson",
+  title =        "On Key Distribution for Repeated Authentication",
+  pages =        "24--30",
+  booktitle =    "Operating Systems Review",
+  year =         1994
+}
+
+@Article{Syverson99,
+  author =       {Paul Syverson},
+  title =        {Towards a Strand Semantics for Authentication Logic},
+  journal =      {Electronic Notes in Theoretical Computer Science},
+  year =         1999,
+  volume =       20
+}
+
+@InProceedings{SyversonMeadows93,
+  author =       "Paul Syverson and Catherine Meadows",
+  title =        "A Logic language for Specifying Cryptographic
+                  Protocol Requirements",
+  pages =        "165--177",
+  booktitle =    "Proceedings of the 1993 IEEE Symposium on Research
+                  in Security and Privacy",
+  year =         1993,
+  publisher =    "IEEE CS Press",
+  month =        May
+}
+
+@InCollection{Tarski28,
+  author =      "A. Tarski",
+  title =       "On some Fundamental Concepts of Metamathematics",
+  booktitle =   "Logic, Semantics, Meta-Mathematics",
+  publisher =   "Hackett Publishing Company",
+  year =        1983,
+  editor =      "J. Corcoran",
+  chapter =     "III",
+  pages =       "30--37"
+}
+
+@InCollection{Tarski35,
+  author =      "A. Tarski",
+  title =       "On the Concept of Logical Consequence",
+  booktitle =   "Logic, Semantics, Meta-Mathematics",
+  publisher =   "Hackett Publishing Company",
+  year =        1983,
+  editor =      "J. Corcoran",
+  chapter =     "XVI",
+  pages =       "409--420"
+}
+
+@InProceedings{TatebayashiEtAl90,
+  author =       {M. Tatebayashi and N. Matsuzaki and D. Newman},
+  title =        {Key Distribution Protocol for Digital Mobile Communication
+                  Systems},
+  booktitle =    {Advances in Cryptology:  {\sc crypto} '89},
+  editor =       {G. Brassard},
+  volume =       435,
+  series =       {Lecture Notes in Computer Science},
+  year =         1990,
+  publisher =    {Springer Verlag},
+  pages =        {324--331}
+}
+
+@TechReport{ThayerHerzogGuttman97,
+  author =       {F. Javier {\textsc{Thayer} F\'{a}brega} and Jonathan C. Herzog and Joshua D. Guttman},
+  title =        {Strand Spaces},
+  institution =  {The {\sc Mitre} Corporation},
+  year =         1997,
+  month =        {November}
+}
+
+@InProceedings{ThayerHerzogGuttman98,
+  author =       {F. Javier {\textsc{Thayer} F\'{a}brega} and Jonathan C. Herzog and Joshua D. Guttman},
+  title =        {Strand Spaces:  Why is a Security Protocol Correct?},
+  booktitle =    {1998 {IEEE} Symposium on Security and Privacy},
+  year =         1998,
+  month =        {May},
+  publisher =    {{IEEE} CS Press}
+}
+
+@InProceedings{ThayerHerzogGuttman98a,
+  author =       {F. Javier {\textsc{Thayer} F\'{a}brega} and Jonathan C. Herzog and Joshua D. Guttman},
+  title =        {Honest Ideals on Strand Spaces},
+  booktitle =    {Proceedings of the 11th {IEEE} Computer Security Foundations Workshop},
+  year =         1998,
+  month =        {June},
+  publisher =    {{IEEE} CS Press}
+}
+
+@Unpublished{ThayerHerzogGuttman98b,
+  author =       {F. Javier {\textsc{Thayer} F\'{a}brega} and Jonathan C. Herzog and Joshua D. Guttman},
+  title =        {Strand Space Pictures},
+  note =         {Presented at the {LICS Workshop on Formal Methods and Security Protocols}},
+  month =        {June},
+  year =         1998
+}
+
+@Article{ThayerHerzogGuttman99,
+  author =       {F. Javier Thayer and Jonathan C. Herzog and Joshua D. Guttman},
+  title =        {Strand Spaces:  Proving Security Protocols Correct},
+  journal =      {Journal of Computer Security},
+  year =         1999,
+  volume =       7,
+  number =       {2/3},
+  pages =        {191--230}
+}
+
+@InProceedings{ThayerHerzogGuttman99a,
+  author =       {F. Javier Thayer and Jonathan C. Herzog and Joshua D. Guttman},
+  title =        {Mixed Strand Spaces},
+  booktitle =    {Proceedings of the 12th {IEEE} Computer Security Foundations Workshop},
+  year =         1999,
+  month =        {June},
+  publisher =    {{IEEE} CS Press}
+}
+
+@Manual{TCGspec01,
+  title =        {Trusted Computing Group Main Specification},
+  key =          {Trusted Computing Group},
+  organization = {Trusted Computing Group},
+  edition =      {Version 1.1b},
+  month =        sep,
+  year =         2001,
+  note =         {URL \url{https://www.trustedcomputinggroup.org/downloads/tcg_spec_1_1b.zip}}
+}
+
+@Manual{TCGArch04,
+  title =        {TCG Specification Architecture Overview},
+  organization = {Trusted Computing Group},
+  address =      {\url{https://www.trustedcomputinggroup.org/downloads/TCG_1_0_Architecture_Overview.pdf}},
+  edition =      {Revision 1.2},
+  month =        {April},
+  year =         2004
+}
+
+@Manual{TCGMainDesign05,
+  title =        {{TPM} Main:  Part {I} Design Principles},
+  organization = {Trusted Computing Group},
+  address =      {\url{https://www.trustedcomputinggroup.org/downloads/specifications/mainP1DP_rev85.zip}},
+  edition =      {Specification Version 1.2, Revision 85},
+  month =        {February},
+  year =         2005
+}
+
+@Misc{VixieEtAl97,
+  author =       {P. Vixie and S. Thompson and Y. Rekhter and J. Bound},
+  title =        {Dynamic Updates in the Domain Name System},
+  howpublished = {RFC 2136},
+  month =        {April},
+  year =         1997
+}
+
+@Article{VolpanoEtAl96,
+  author =       {Cynthia Irvine and Dennis Volpano and Geoffrey Smith},
+  title =        {A Sound Type System for Secure Flow Analysis},
+  journal =      {Journal of Computer Security},
+  year =         1996,
+  volume =       4,
+  number =       3,
+  pages =        {1--21}
+}
+
+@Article{VoydockKent83,
+  author =       "Victor L. Voydock and Stephen T. Kent",
+  title =        "Security Mechanisms in High-Level Network Protocols",
+  journal =      "Computing Surveys",
+  year =         1983,
+  volume =       15,
+  number =       2,
+  pages =        "135--171",
+  month =        jun
+}
+
+@InProceedings{WagnerSchneier96,
+  author =       {D. Wagner and B. Schneier},
+  title =        {Analysis of the {SSL} 3.0 Protocol},
+  booktitle =    {Proceedings, Second USENIX Workshop on Electronic Commerce},
+  pages =        {29--40},
+  year =         1996,
+  note =         {Available at http://www.counterpane.com/ssl.html}
+}
+
+@InProceedings{WallachFelten98,
+  author =       {Daniel S. Wallach and Edward W. Felten},
+  title =        {Understanding Java Stack Inspection},
+  booktitle =    {{IEEE} Symposium on Security and Privacy},
+  pages =        {52--63},
+  year =         1998
+}
+
+@article{Wang2006,
+  title={Generic non-repudiation protocols supporting transparent off-line {TTP}},
+  author={Guilin Wang},
+  journal={Journal of Computer Security},
+  volume={14},
+  number={5},
+  pages={441--467},
+  year={2006},
+  publisher={IOS Press}
+}
+
+@Proceedings{Wiener93,
+title =        "Efficient DES Key Search ",
+year =         1993,
+series =       "Crypto 93",
+month =        aug
+}
+
+@Article{Willet82,
+  author =       "Michael Willet",
+  title =        "Cryptography Old and New",
+  journal =      "Computers and Security",
+  volume =       "Vol 1",
+  pages =        "177--186",
+  year =         1982
+}
+
+@Article{WooLam92,
+  author =       "T. Y. C. Woo and S. S. Lam",
+  title =        "Authentication for Distributed Systems",
+  journal =      "Computer",
+  year =         1992,
+  volume =       25,
+  number =       1,
+  pages =        "39--52",
+  month =        jan
+}
+
+@Article{WooLam92a,
+  author =       {Thomas Y. C. Woo and Simon S. Lam},
+  title =        {Authentication for Distributed Systems},
+  journal =      {Computer},
+  year =         1992,
+  volume =       25,
+  number =       1,
+  pages =        {39--52},
+  month =        {January}
+}
+
+@InProceedings{WooLam93,
+  author =       {Thomas Y. C. Woo and Simon S. Lam},
+  title =        {Verifying authentication protocols: Methodology and example},
+  booktitle =    {Proc. Int. Conference on Network Protocols},
+  year =         1993,
+  month =        {October}
+}
+
+@Article{WooLam94,
+  author =       "Thomas Y. C. Woo and Simon S. Lam",
+  title =        "A Lesson on Authentication Protocol Design",
+  journal =      "Operating Systems Review",
+  year =         1994,
+  pages =        "24--37"
+}
+
+@InProceedings{Wray91,
+  author =       {John C. Wray},
+  title =        {An Analysis of Covert Timing Channels},
+  booktitle =    {Proceedings, 1991 {IEEE} Symposium on Research in Security and Privacy},
+  pages =        {2--7},
+  year =         1991,
+  month =        {May},
+  organization = {{IEEE} CS}
+}
+
+@InProceedings{YamaguchiOkayamaMiyahara90,
+  author =       "S. Yamaguchi and K. Okayama and H. Miyahara",
+  title =        "Design and Implementation of an Authentication System
+                in {WIDE Internet} Environment",
+  booktitle =    "Proceedings of the 10th Regional
+                  Conference on Computers
+                and Communication Systems",
+  year =         1990
+}
+
+@InProceedings{WoolEtAl00,
+  author =       {Alain Mayer and Avishai Wool and Elisha Ziskind},
+  title =        {Fang:  A Firewall Analysis Engine},
+  booktitle =    {Proceedings, IEEE Symposium on Security and Privacy},
+  year =         2000
+}
+
+@Unpublished{YasinacWulf93,
+  author =       "Alec F Yasinsac and William A Wulf",
+  title =        "A Formal Semantics for Evaluating Cryptographic Protocols",
+  note =         "The paper has been superceeded by a later version
+                  published in the IEEE Symposium on Security and
+                  Privacy 1994.",
+  year =         1993
+}
+
+@Misc{SSHArch,
+  author =       {T. Ylonen and T. Kivinen and M. Saarinen},
+  title =        {{SSH} Prototcol Architecture},
+  howpublished = {Internet draft},
+  month =        {November},
+  year =         {1997},
+  note =         {Also named draft-ietf-secsh-architecture-01.txt}
+}
+
+@Misc{SSHConn,
+  author =       {T. Ylonen and T. Kivinen and M. Saarinen},
+  title =        {{SSH} Connection Prototcol},
+  howpublished = {Internet draft},
+  month =        {November},
+  year =         {1997},
+  note =         {Also named draft-ietf-secsh-connect-03.txt}
+}
+
+@Misc{SSHTrans,
+  author =       {T. Ylonen and T. Kivinen and M. Saarinen},
+  title =        {{SSH} Transport Layer Prototcol},
+  howpublished = {Internet draft},
+  month =        {November},
+  year =         {1997},
+  note =         {Also named draft-ietf-secsh-transport-01.txt}
+}
+
+@Misc{SSHAuth,
+  author =       {T. Ylonen and T. Kivinen and M. Saarinen},
+  title =        {{SSH} Authentication Prototcol},
+  howpublished = {Internet draft},
+  month =        {November},
+  year =         {1997},
+  note =         {Also named draft-ietf-secsh-userauth-01.txt}
+}
+
+@Book{ReedSimon80,
+  author =      {M. Reed and B. Simon},
+  title =       {Functional Analysis},
+  publisher =   {Academic Press},
+  year =        {1980},
+  address =     {Orlando}
+}
+
+@Book{billingsley1,
+  author =      "Patrick Billingsley Jr.",
+  title =       "Convergence of Probability Measures",
+  publisher =   "John Wiley and Sons",
+  year =        "1968",
+  OPTeditor =   "",
+  OPTvolume =   "",
+  OPTseries =   "",
+  address =     "New York",
+  OPTedition =  "",
+  OPTmonth =    "",
+  OPTnote =     ""
+}
+
+@Book{DaemenRijmen,
+    author ={J. Daemen and V. Rijmen},
+    title = {The Design of Rijndael},
+    publisher = {Springer-Verlag},
+    year = {2002},
+    address = {Berlin}
+}
+
+@InProceedings{LincolnEtAl99,
+  author =       {Lincoln,P.D. and Mitchell, J.C. and Mitchell, M. and Scedrov, A.},
+  title =        {Probabilistic polynomial-time equivalence and security protocols},
+  booktitle =    {{FM}'99 World Congress On Formal Methods in the Development of Computing Systems},
+  year =         1999,
+  month =        {September}
+}
+
+@InProceedings{LincolnEtAl98,
+  author =       {Lincoln, P.D. and Mitchell, J.C. and Mitchell, M. and Scedrov, A.},
+  title =        {A Probabilistic Poly-time Framework for Protocol Analysis},
+  booktitle =    {{ACM} Computer and Communication Security ({CCS}-5)},
+  pages =        {112-121},
+  year =         1998
+}
+
+@InProceedings{MitchelEtAl98,
+  author =       {J. C. Mitchell and M. Mitchell and A. Scedrov},
+  title =        {A linguistic characterization of bounded oracle computation and probabilistic polynomial time},
+  booktitle =    {{IEEE} Foundations of Computer Science},
+  pages =        {725-733},
+  year =         1998
+}
+
+@InProceedings{PereiraO:2001:CSFW,
+  author       = "Olivier Pereira and Jean-Jacques Quisquater",
+  title        = "A Security Analysis of the Cliques Protocols Suites",
+  booktitle    = "14th IEEE Computer Security Foundations
+                  Workshop --- CSFW'01",
+  year         = 2001,
+  pages        = "73--81",
+  address      = "Cape Breton, Canada",
+  month        = "11--13 June",
+  publisher    = "IEEE CS Press"
+}
+
+@inproceedings{pereira2004generic,
+  title={Generic insecurity of cliques-type authenticated group key agreement protocols},
+  author={Olivier Pereira and J-J Quisquater},
+  booktitle={Computer Security Foundations Workshop, 2004. Proceedings. 17th IEEE},
+  pages={16--29},
+  year={2004},
+  organization={IEEE}
+}
+
+@article{pereira2006impossibility,
+  title={On the impossibility of building secure cliques-type authenticated group key agreement protocols},
+  author={Olivier Pereira and Jean-Jacques Quisquater},
+  journal={Journal of Computer Security},
+  volume={14},
+  number={2},
+  pages={197--246},
+  year={2006},
+  publisher={IOS Press}
+}
+
+@InProceedings{PereiraO:2001:CSFW,
+  author       = "Olivier Pereira and Jean-Jacques Quisquater",
+  title        = "A Security Analysis of the Cliques Protocols Suites",
+  booktitle    = "14th IEEE Computer Security Foundations
+                  Workshop --- CSFW'01",
+  year         = 2001,
+  pages        = "73--81",
+  address      = "Cape Breton, Canada",
+  month        = "11--13 June",
+  publisher    = "IEEE CS Press"
+}
+
+@Unpublished{BackesEtAl2003,
+  author =       {Michael Backes and Birgit Pfitzmann and Michael Waidner},
+  title =        {A Universally Composable Cryptographic Library},
+  note =         {Available at \texttt{http://eprint.iacr.org/2003/015/}},
+  month =        {January},
+  year =         2003
+}
+
+@inproceedings{DBLP:conf/esorics/CortierWZ07,
+  author    = {V{\'e}ronique Cortier and
+               Bogdan Warinschi and
+               Eugen Zalinescu},
+  title     = {Synthesizing Secure Protocols},
+  booktitle = {{ESORICS}:  European Symposium
+               On Research In Computer Security},
+  publisher = {Springer},
+  series    = {Lecture Notes in Computer Science},
+  volume    = {4734},
+  year      = {2007},
+  pages     = {406-421},
+  ee        = {http://dx.doi.org/10.1007/978-3-540-74835-9_27},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@Article{LiEtAl2012,
+  author = 	 {Ming Li and Sucheng Yu and Joshua D. Guttman and
+                  Wenjing Lou and Kui Ren},
+  title = 	 {Secure ad-hoc trust initialization and key management in
+    wireless body area networks},
+  journal = 	 {ACM Transactions on Sensor
+    Networks (TOSN)},
+  volume    = 9,
+  number    = 2,
+  pages     = 18,
+  year      = 2013}
+
+@inproceedings{DenielouYoshida2011,
+  author    = {Pierre-Malo Deni{\'e}lou and
+               Nobuko Yoshida},
+  title     = {Dynamic multirole session types},
+  booktitle = {POPL},
+  year      = 2011,
+  pages     = {435-446},
+  ee        = {http://doi.acm.org/10.1145/1926385.1926435},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@InProceedings{CG09b,
+  author = {Marco Carbone and Joshua Guttman},
+  title = {Choreographies with Secure Boxes and Compromised Principals},
+  booktitle = {{Proc. of Interaction and Concurrency Experience (ICE'09)}},
+  publisher = {EPTCS},
+  volume = {12},
+  pages = {1--15},
+  year = {2009},
+  url = {http://arxiv.org/abs/0911.5444}
+}
+
+@article{KL11,
+  author    = {Allaa Kamil and
+               Gavin Lowe},
+  title     = {Analysing {TLS} in the strand spaces model},
+  journal   = {Journal of Computer Security},
+  volume    = {19},
+  number    = {5},
+  year      = {2011},
+  pages     = {975-1025},
+  ee        = {http://dx.doi.org/10.3233/JCS-2011-0429},
+}
+
+@Misc{onlineappendix,
+  author = {Marco Carbone and Joshua Guttman},
+  title =        {Online Appendix},
+  howpublished = {\url{http://www.itu.dk/people/maca/separation}}
+}
+
+@InProceedings{ADK08,
+  author =       "Myrto Arapinis and Stephanie Delaune and Steve Kremer",
+  title =        "From one Session to many: Dynamic Tags for Security Protocols",
+  booktitle =    "Proc. of LPAR'08",
+  year =         "2008"
+}
+
+@inproceedings{DKR08,
+   author = {Delaune, St{\'e}phanie and Kremer, Steve and Ryan, Mark D.},
+   booktitle = {{P}roceedings of the 21st {IEEE} {C}omputer {S}ecurity {F}oundations {S}ymposium ({CSF}'08)},
+   DOI = {10.1109/CSF.2008.6},
+   month = jun,
+   pages = {239-251},
+   publisher = {{IEEE} Computer Society Press},
+   title = {Composition of Password-based Protocols},
+   url = {http://www.lsv.ens-cachan.fr/Publis/PAPERS/PDF/DKR-csf08.pdf},
+   year = {2008},
+}
+
+@techreport{KL08,
+  title = "Analysing TLS in the Strand Spaces Model",
+  author = "Allaa Kamil and Gavin Lowe",
+  year = "2008",
+}
+
+@InProceedings{HYC08,
+  author =       "K. Honda and N. Yoshida and M. Carbone",
+  title =        "Multiparty Asynchronous Session Types",
+  booktitle =    "Proc. of POPL",
+  year =         "2008",
+  pages =     {273--284},
+  volume    = {43(1)},
+  publisher = {ACM},
+}
+
+@InProceedings{sessiontypes,
+  author       = {Kohei Honda and Vasco Vasconcelos and Makoto Kubo},
+  title        = {Language primitives and type disciplines for structured
+                 communication-based programming},
+  booktitle    = "ESOP'98",
+  series       = "LNCS",
+  volume       = "1381",
+  pages        = {22--138},
+  year        = {1998},
+   publisher =    {Springer-Verlag},
+}
+
+@InProceedings{DoughertyGuttman12,
+  author = 	 {Daniel J. Dougherty and Joshua D. Guttman},
+  title = 	 {An Algebra for
+  Symbolic {Diffie-Hellman} Protocol Analysis},
+  booktitle = {Trustworthy Global
+  Computing},
+  year = 	 2012,
+  volume    = {8191},
+  pages     = {164--181},
+  series = 	 {LNCS}}
+
+@Article{Guttman12a,
+  author = 	 {Joshua D. Guttman},
+  title = 	 {Establishing and Preserving Protocol Security Goals},
+  journal = 	 {Journal of Computer Security},
+  year = 	 2014,
+  volume = 	 22,
+  number = 	 2,
+  pages = 	 {203--267}}
+
+@Article{Guttman14,
+  author = 	 {Joshua D. Guttman},
+  title = 	 {Establishing and Preserving Protocol Security Goals},
+  journal = 	 {Journal of Computer Security},
+  year = 	 2014,
+  volume = 	 22,
+  number = 	 2,
+  pages = 	 {201--267}}
+
+@InProceedings{Fay79,
+  author = {M. Fay},
+  title = {First-order Unification in an Equational Theory},
+  booktitle = {Proc. 4th Workshop on Automated Deduction},
+  year = 1979}
+
+@Book{BaaderNipkow98,
+  author = {Franz Baader and Tobias Nipkow},
+  title = {Term Rewriting and All That},
+  publisher = {Cambridge University Press},
+  year = 1998}
+
+@Book{Paulson91,
+  author = {Laurence C. Paulson},
+  title = {ML for the Working Programmer},
+  publisher = {Cambridge University Press},
+  year = 1991}
+
+@Book{RobinsonVoronkov01,
+  author = {Alan Robinson and Andrei Voronkov},
+  title = {Handbook of Automated Reasoning},
+  vol = 1,
+  publisher = {The {MIT} Press},
+  year = 2001}
+
+@inproceedings{Millen99,
+    author = "Jonathan K. Millen",
+    title = "A Necessarily Parallel Attack",
+    booktitle = "Workshop on Formal Methods and Security Protocols,
+Part of the Federated Logic Conference",
+    address = "Trento, Italy",
+    editor = "Nevin Heintze and Edmund Clarke",
+    year = "1999",
+    url = "citeseer.ist.psu.edu/millen99necessarily.html" }
+
+@inproceedings{PavlovicMeadows06,
+    author = "Dusko Pavlovic and Catherine Meadows",
+    title = "Deriving Secrecy in Key Establishment Protocols",
+    booktitle = "European Symposium on Research in Computer Security",
+    month = sep,
+    year = 2006,
+    url = "http://www.kestrel.edu/home/people/pavlovic/security.html" }
+
+@article{GansnerNorth00,
+    author = "Emden R. Gansner and Stephen C. North",
+    title = "An open graph visualization system and its applications to software engineering",
+    journal = "Soft\-ware --- Prac\-tice and Experience",
+    volume = "30",
+    number = "11",
+    pages = "1203--1233",
+    year = "2000",
+    url = "citeseer.ist.psu.edu/gansner99open.html" }
+
+@Unpublished{Dijkstra82,
+  author = 	 {Edsger W. Dijkstra},
+  title = 	 {Why numbering should start at zero},
+  note = 	 {\url{http://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html}},
+  month = 	 aug,
+  year = 	 1982}
+
+@TechReport{cpsatheory11,
+  title = 	 {Completeness of {CPSA}},
+  author = 	 {Moses D.~Liskov and Paul D.~Rowe and F.~Javier Thayer},
+  institution = {The MITRE Corporation},
+  year = 	 2011,
+  month =        mar,
+  number = 	 {MTR110479},
+  note =         {\url{http://www.mitre.org/publications/technical-papers/completeness-of-cpsa}}
+}
+
+@TechReport{Ramsdell13,
+  title = 	 {Proving Security Goals With Shape Analysis Sentences},
+  author = 	 {John D.~Ramsdell},
+  institution =  {The MITRE Corporation},
+  year = 	 2013,
+  month =        sep,
+  number = 	 {MTR130488},
+  note =         {\url{http://arxiv.org/abs/1403.3563}},
+}
+
+@inproceedings{cade92-pvs,
+    AUTHOR = {{S.} Owre and {J.} {M.} Rushby and and {N.} Shankar},
+    TITLE = {{PVS:} {A} Prototype Verification System},
+    BOOKTITLE = {11th International Conference on Automated Deduction (CADE)},
+    YEAR = {1992},
+    EDITOR = {Deepak Kapur},
+    SERIES = {Lecture Notes in Artificial Intelligence},
+    VOLUME = {607},
+    PAGES = {748--752},
+    ADDRESS = {Saratoga, {NY}},
+    MONTH = jun,
+    PUBLISHER = {Springer-Verlag},
+    URL = {http://pvs.csl.sri.com/papers/cade92-pvs/},
+    note = {\url{http://pvs.csl.sri.com}}
+}
+
+@unpublished{algimpl11,
+  author = {Moses Liskov and John D. Ramsdell},
+  title = {Implementing Strand Space Algebras},
+  note = {\url{http://www.ccs.neu.edu/home/ramsdell/papers/algimpl.pdf}},
+  year = 2011
+}
+
+@incollection{ComonLundhMillen10,
+    author=	 {H. Comon-Lundh and S. Delaune and J. Millen},
+    title =	 {Constraint solving techniques and enriching
+                  the model with equational theories},
+    booktitle =	 {Formal Models and Techniques for Analyzing
+                  Security Protocols},
+    editor =	 {Veronique Cortier and Steve Kremer},
+    series =	 {Cryptology and Information Security Series},
+    volume = 	 5,
+    year =	 2011,
+    isbn =	 {978-1-60750-713-0},
+    publisher =	 {{ISO} Press}
+    }
+
+@TechReport{RamsdellEtAl09,
+  author = 	 {John D. Ramsdell and Joshua D. Guttman and
+                  Jonathan K. Millen and Brian O'Hanlon},
+  title = 	 {An Analysis of the {CAVES} Attestation Protocol using {CPSA}},
+  note = 	 {\url{http://arxiv.org/abs/1207.0418}},
+  institution =  {The {MITRE} Corporation},
+  month = 	 dec,
+  year = 	 2009,
+  type = 	 {{MITRE} Technical Report},
+  number = 	 {{MTR090213}}
+}
+
+@inproceedings{DBLP:conf/csfw/SchmidtMCB12,
+  author    = {Benedikt Schmidt and
+               Simon Meier and
+               Cas J. F. Cremers and
+               David A. Basin},
+  title     = {Automated Analysis of {Diffie-Hellman} Protocols and Advanced
+               Security Properties},
+  booktitle = {{IEEE} Symposium on Computer Security Foundations},
+  year      = {2012},
+  pages     = {78-94},
+  ee        = {http://doi.ieeecomputersociety.org/10.1109/CSF.2012.25},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@article{chevalier2008complexity,
+  title={Complexity results for security protocols with {Diffie-Hellman} exponentiation and commuting public key encryption},
+  author={Yannick Chevalier and Ralf K{\"u}sters and Micha{\"e}l Rusinowitch and Mathieu Turuani},
+  journal={ACM Transactions on Computational Logic (TOCL)},
+  volume={9},
+  number={4},
+  pages={24},
+  year={2008},
+  publisher={ACM}
+}
+
+@incollection{gurgens2007security,
+  title={Security evaluation of scenarios based on the {TCG's TPM} specification},
+  author={Sigrid G{\"u}rgens  and Carsten Rudolph and Dirk Scheuermann and Marion Atts and Rainer Plaga},
+  booktitle={Computer Security--ESORICS 2007},
+  pages={438--453},
+  year={2007},
+  publisher={Springer}
+}
+
+@inproceedings{datta2009logic,
+  title={A logic of secure systems and its application to trusted computing},
+  author={Anupam Datta and Jason Franklin and Deepak Garg and Dilsun Kaynar},
+  booktitle={Security and Privacy, 2009 30th IEEE Symposium on},
+  pages={221--236},
+  year={2009},
+  organization={IEEE}
+}
+
+@inproceedings{youn2007robbing,
+  title={Robbing the bank with a theorem prover},
+  author={Paul Youn and Ben Adida and Mike Bond and Jolyon Clulow and Jonathan Herzog and Amerson Lin and Ronald Rivest and Ross Anderson},
+  booktitle={Security Protocols Workshop},
+  note={Available at \url{http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-644.pdf}},
+  year=2007
+}
+
+@incollection{cortier2007automatic,
+  title={Automatic analysis of the security of XOR-based key management schemes},
+  author={V{\'e}ronique Cortier and Gavin Keighren and Graham Steel},
+  booktitle={Tools and Algorithms for the Construction and Analysis of Systems},
+  pages={538--552},
+  year={2007},
+  publisher={Springer}
+}
+
+@incollection{cortier2009generic,
+  title={A generic security API for symmetric key management on cryptographic devices},
+  author={V{\'e}ronique Cortier and Graham Steel},
+  booktitle={Computer Security--ESORICS 2009},
+  pages={605--620},
+  year={2009},
+  publisher={Springer}
+}
+
+@incollection{froschle2011reasoning,
+  title={Reasoning with past to prove {PKCS\# 11} keys secure},
+  author={Sibylle Fr{\"o}schle and Nils Sommer},
+  booktitle={Formal Aspects of Security and Trust},
+  pages={96--110},
+  year={2011},
+  publisher={Springer}
+}
+
+@article{modersheim2010abstraction,
+  title={Abstraction by set-membership: verifying security protocols and web services with databases},
+  author={Sebastian M{\"o}dersheim},
+  journal={ACM Conference on Computer and Communications Security},
+  pages={351--360},
+  year={2010}
+}
+
+@inproceedings{arapinis2011statverif,
+  title={Statverif: Verification of stateful processes},
+  author={Myrto Arapinis and Eike Ritter and Mark Dermot Ryan},
+  booktitle={Computer Security Foundations Symposium (CSF)},
+  pages={33--47},
+  year={2011},
+  organization={IEEE}
+}
+
+@incollection{delaune2011formal,
+  title={A formal analysis of authentication in the {TPM}},
+  author={Delaune, St{\'e}phanie and Kremer, Steve and Ryan, Mark D and Steel, Graham},
+  booktitle={Formal Aspects of Security and Trust},
+  pages={111--125},
+  year={2011},
+  publisher={Springer}
+}
+
+@article{herzog2006applying,
+  title={Applying protocol analysis to security device interfaces},
+  author={Jonathan Herzog},
+  journal={IEEE Security \& Privacy},
+  volume={4},
+  number={4},
+  pages={84--87},
+  year={2006},
+  publisher={IEEE}
+}
+
+@incollection{sampaio2002refinement,
+  title={Refinement in {Circus}},
+  author={Augusto Sampaio and Jim Woodcock and Ana Cavalcanti},
+  booktitle={FME 2002: Formal Methods},
+  pages={451--470},
+  year={2002},
+  publisher={Springer}
+}
+
+@incollection{butler2005combining,
+  title={Combining {CSP} and {B} for specification and property verification},
+  author={Michael Butler and Michael Leuschel},
+  booktitle={FM 2005: Formal Methods},
+  pages={221--236},
+  year={2005},
+  publisher={Springer}
+}
+
+@inproceedings{Clulow03,
+  author    = {Jolyon Clulow},
+  title     = {On the Security of {PKCS}\#11},
+  booktitle = {Cryptographic Hardware and Embedded Systems - {CHES} 2003},
+  year      = {2003},
+  pages     = {411-425},
+  ee        = {http://dx.doi.org/10.1007/978-3-540-45238-6_32},
+  publisher = {Springer},
+  series    = {Lecture Notes in Computer Science},
+  volume    = {2779},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@article{meier2013efficient,
+  title={Efficient construction of machine-checked symbolic protocol security proofs},
+  author={Simon Meier and Cas Cremers and David Basin},
+  journal={Journal of Computer Security},
+  volume={21},
+  number={1},
+  pages={41--87},
+  year={2013},
+  publisher={IOS Press}
+}
+
+@book{cremers2012operational,
+  title={Operational semantics and verification of security protocols},
+  author={Cas Cremers and Sjouke Mauw},
+  year={2012},
+  publisher={Springer}
+}
+
+@article{jacobs2009semantics,
+  title={Semantics and logic for security protocols},
+  author={Bart Jacobs and Ichiro Hasuo},
+  journal={Journal of Computer Security},
+  volume={17},
+  number={6},
+  pages={909--944},
+  year={2009},
+  publisher={IOS Press}
+}
+
+@techreport{LiskovThayer13,
+  author = {Moses D. Liskov and F. Javier Thayer},
+title = {Formal Modeling of {Diffie-Hellman} Derivability for Exploratory Automated Analysis},
+  institution = {{MITRE} },
+  year = {2013},
+  month = {June},
+  note = {TR 13-0411}
+}
+
+@article{Comon-LundhCZ10,
+  author    = {Hubert Comon-Lundh and
+               V{\'e}ronique Cortier and
+               Eugen Zalinescu},
+  title     = {Deciding security properties for cryptographic protocols.
+               {A}pplication to key cycles},
+  journal   = {ACM Trans. Comput. Log.},
+  volume    = {11},
+  number    = {2},
+  year      = {2010},
+  ee        = {http://doi.acm.org/10.1145/1656242.1656244},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@book{BoydMathuria03,
+  title={Protocols for authentication and key establishment},
+  author={Boyd, Colin and Mathuria, Anish},
+  year={2003},
+  publisher={Springer}
+}
+
+@Article{MTI86,
+  author = 	 {T. Matsumoto and Y. Takashima and H. Imai},
+  title = 	 {On Seeking Smart Public-key Distribution Systems},
+  journal = 	 {Transactions of the IECE of Japan},
+  year = 	 1986,
+  volume = 	 {E69},
+  pages = 	 {99--106}}
+
+@article{clarkson2010hyperproperties,
+  title={Hyperproperties},
+  author={Michael R. Clarkson and Fred B. Schneider},
+  journal={Journal of Computer Security},
+  volume={18},
+  number={6},
+  pages={1157--1210},
+  year={2010},
+  publisher={IOS Press}
+}
+
+@inproceedings{sprenger2010developing,
+  title={Developing security protocols by refinement},
+  author={Christoph Sprenger and David Basin},
+  booktitle={{ACM CCS}},
+  pages={361--374},
+  year={2010}
+}
+
+@inproceedings{sprenger2012refining,
+  title={Refining key establishment},
+  author={Christoph Sprenger and David Basin},
+  booktitle={{IEEE CSF}},
+  pages={230--246},
+  year={2012}
+}
+
+@incollection{maurer1994calculus,
+  title={A calculus for secure channel establishment in open networks},
+  author={{\"U}li Maurer and Pierre Schmid},
+  booktitle={{ESORICS} 94},
+  pages={173--192},
+  year={1994},
+  publisher={Springer}
+}
+
+@incollection{Cremers11keyexchange,
+  title={Key exchange in {IPsec} revisited: Formal analysis of {IKEv1} and {IKEv2}},
+  author={Cremers, Cas},
+  year={2011},
+  publisher={Springer},
+  booktitle={Computer Security--ESORICS 2011},
+}
+
+@Misc{cdgk2014,
+  key = 	 {ckgk2014},
+  author = 	 {V{\'e}ronique Cortier and Daniel J. Dougherty and
+                  Joshua D. Guttman and Steve Kremer},
+  title = 	 {The Real-or-Random Property for Lightweight
+                  {Diffie-Hellman} Protocols},
+  howpublished = {Meetings},
+  month = 	 {January},
+  year = 	 2014}
+
+@Misc{whatever,
+  key = 	 {whatever},
+  author = 	 {Someone somewhere},
+  title = 	 {Good citation for undecidability of unification in rings}}
+
+@article{MillenShmatikov05,
+  author    = {Jonathan K. Millen and
+               Vitaly Shmatikov},
+  title     = {Symbolic protocol analysis with an Abelian group operator
+               or Diffie-Hellman exponentiation},
+  journal   = {Journal of Computer Security},
+  volume    = {13},
+  number    = {3},
+  year      = {2005},
+  pages     = {515-564},
+  ee        = {http://iospress.metapress.com/openurl.asp?genre=article{\&}issn=0926-227X{\&}volume=13{\&}issue=3{\&}spage=515},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@article{cortier2006survey,
+  title={A survey of algebraic properties used in cryptographic protocols},
+  author={V{\'e}ronique Cortier and St{\'e}phanie Delaune and Pascal
+                  Lafourcade},
+  journal={Journal of Computer Security},
+  volume={14},
+  number={1},
+  pages={1--43},
+  year={2006},
+  publisher={IOS Press}
+}
+
+@article{kremer2010computationally,
+  title={Computationally sound analysis of protocols using bilinear pairings},
+  author={Steve Kremer and  Laurent Mazar{\'e}},
+  journal={Journal of Computer Security},
+  volume={18},
+  number={6},
+  pages={999--1033},
+  year={2010},
+  publisher={IOS Press}
+}
+
+@InProceedings{DoughertyGuttman2014,
+  author = 	 {Daniel J. Dougherty and Joshua D. Guttman},
+  title = 	 {Decidability for Lightweight {Diffie-Hellman}
+                  Protocols},
+  booktitle = {{IEEE} Symposium on Computer Security Foundations},
+  year = 	 2014}
+
+@article{jacobs2009semantics,
+  title={Semantics and logic for security protocols},
+  author={Bart Jacobs and Ichiro Hasuo},
+  journal={Journal of Computer Security},
+  volume={17},
+  number={6},
+  pages={909--944},
+  year={2009},
+  publisher={IOS Press}
+}
+
+@article{meier2013efficient,
+  title={Efficient construction of machine-checked symbolic protocol security proofs},
+  author={Simon Meier and Cas Cremers and David Basin},
+  journal={Journal of Computer Security},
+  volume={21},
+  number={1},
+  pages={41--87},
+  year={2013},
+  publisher={IOS Press}
+}
+
+@InProceedings{Adida2008,
+  author = 	 {Ben Adida},
+  title = 	 {Helios:  Web-based Open-Audit Voting},
+  booktitle = {Usenix Security Symposium},
+  year = 	 2008,
+  organization = {Usenix Association}}
+
+@article{gottlob2008efficient,
+  title={Efficient core computation in data exchange},
+  author={Gottlob, Georg and Nash, Alan},
+  journal={{JACM}},
+  volume={55},
+  number={2},
+  pages={9},
+  year={2008},
+  publisher={ACM}
+}
+
+@inproceedings{mccullough1987specifications,
+  title={Specifications for multi-level security and a hook-up property},
+  author={Daryl McCullough},
+  booktitle={{IEEE} Symposium on Security and Privacy},
+  pages={161--161},
+  year={1987}
+}
+
+@inproceedings{mccullough1988noninterference,
+  title={Noninterference and the composability of security properties},
+  author={Daryl McCullough},
+  booktitle={{IEEE} Symposium on Security and Privacy},
+  pages={177--186},
+  year={1988}
+}
+
+@article{zdancewic2002secure,
+  title={Secure program partitioning},
+  author={Steve Zdancewic and Lantian Zheng and Nathaniel Nystrom and
+                  Andrew C Myers},
+  journal={ACM Transactions on Computer Systems (TOCS)},
+  volume={20},
+  number={3},
+  pages={283--328},
+  year={2002},
+  publisher={ACM}
+}
+
+@inproceedings{LiZdancewic05,
+  author    = {Peng Li and
+               Steve Zdancewic},
+  title     = {Downgrading policies and relaxed noninterference},
+  booktitle = {Principles of Programming Languages {POPL}},
+  pages     = {158--170},
+  year      = {2005},
+  timestamp = {Tue, 22 May 2012 15:24:56 +0200},
+  biburl    = {http://dblp.uni-trier.de/rec/bib/conf/popl/LiZ05},
+  bibsource = {dblp computer science bibliography, http://dblp.org}
+}
+
+@inproceedings{chong2007secure,
+  title={Secure web applications via automatic partitioning},
+  author={Stephen Chong and Jed Liu and Andrew C Myers and Xin Qi and Krishnaprasad Vikram and Lantian Zheng and Xin Zheng},
+  booktitle={{ACM SIGOPS} Operating Systems Review},
+  volume={41},
+  pages={31--44},
+  year={2007},
+  organization={ACM}
+}
+
+@inproceedings{bohannon2009reactive,
+  title={Reactive noninterference},
+  author={Bohannon, Aaron and Pierce, Benjamin C and Sj{\"o}berg, Vilhelm and Weirich, Stephanie and Zdancewic, Steve},
+  booktitle={{ACM} conference on Computer and Communications Security},
+  pages={79--90},
+  year={2009},
+  organization={ACM}
+}
+
+@article{sabelfeld2009declassification,
+  title={Declassification: Dimensions and principles},
+  author={Andrei Sabelfeld and David Sands},
+  journal={Journal of Computer Security},
+  volume={17},
+  number={5},
+  pages={517--548},
+  year={2009}
+}
+
+@inproceedings{chong2009deriving,
+  title={Deriving epistemic conclusions from agent architecture},
+  author={Stephen Chong and Ron {van der Meyden}},
+  booktitle={Theoretical Aspects of Rationality and Knowledge},
+  pages={61--70},
+  year={2009},
+  organization={ACM}
+}
+
+@InProceedings{RafnssonSabelfeld14,
+  author = 	 {Willard Rafnsson and Andrei Sabelfeld},
+  title = 	 {Compositional Information-Flow Security for Interactive Systems},
+  booktitle = {{IEEE} Symp.~{CSF}},
+  year = 	 2014,
+  pages = 	 {277--292},
+  month = 	 {July},
+}
+
+@article{ryan2009pret,
+  title={Pr{\^e}t {\`a} voter: a voter-verifiable voting system},
+  author={Peter YA Ryan and David Bismark and James Heather and Steve Schneider and Zhe Xia},
+  journal={Information Forensics and Security, IEEE Transactions on},
+  volume={4},
+  number={4},
+  pages={662--673},
+  year={2009},
+  publisher={IEEE}
+}
+
+@article{jacob1992basic,
+  title={Basic theorems about security},
+  author={Jeremy Jacob},
+  journal={Journal of Computer Security},
+  volume={1},
+  number={3},
+  pages={385--411},
+  year={1992},
+  publisher={IOS Press}
+}
+
+@inproceedings{morgan2006shadow,
+  title={The shadow knows: Refinement of ignorance in sequential programs},
+  author={Carroll Morgan},
+  booktitle={Mathematics of program construction},
+  pages={359--378},
+  year={2006},
+  organization={Springer}
+}
+
+@Article{ArapinisEtAl14,
+  author = 	 {Myrto Arapinis and St{\'e}phanie Delaune and Steve
+                  Kremer},
+  title = 	 {Dynamic Tags for Security Protocols},
+  journal = 	 {Logical Methods in Computer Science},
+  year = 	 {2014},
+  OPTkey = 	 {},
+  OPTvolume = 	 {10},
+  OPTnumber = 	 {2:11},
+  OPTpages = 	 {1--50}
+}
+
+@incollection{carbone2013sessions,
+  title={Sessions and separability in security protocols},
+  author={Marco Carbone and Joshua D  Guttman},
+  booktitle={Principles of Security and Trust},
+  pages={267--286},
+  year={2013},
+  publisher={Springer}
+}
+
+@inproceedings{adao2014mignis,
+  title={Mignis: A semantic based tool for firewall configuration},
+  author={P Adao and Claudio Bozzato and Gian-Luca Dei Rossi, R Focardi and F Luccio},
+  booktitle={{IEEE CSF}},
+  year=2014
+}
+
+@article{van2012architectural,
+  title={Architectural refinement and notions of intransitive noninterference},
+  author={Ron {van der Meyden}},
+  journal={Formal Aspects of Computing},
+  volume={24},
+  number={4-6},
+  pages={769--792},
+  year={2012},
+  publisher={Springer}
+}
+
+@book{rushby1992noninterference,
+  title={Noninterference, transitivity, and channel-control security policies},
+  author={John Rushby},
+  year={1992},
+  publisher={SRI International, Computer Science Laboratory}
+}
+
+@incollection{van2007indeed,
+  title={What, indeed, is intransitive noninterference?},
+  author={Ron {van der Meyden}},
+  booktitle={Computer Security--ESORICS 2007},
+  pages={235--250},
+  year={2007},
+  publisher={Springer}
+}
+
+@TechReport{ChongvanderMeyden14,
+  author = 	 {Stephen Chong and Ron {van der Meyden}},
+  title = 	 {Using Architecture to Reason about Information Security},
+  institution =  {Arxiv},
+  year = 	 2014,
+  number = 	 {arXiv:1409.0309},
+  month = 	 {Sept.},
+  note = 	 {\url{http://arxiv.org/abs/1409.0309v1}}}
+
+@incollection{sabelfeld2004model,
+  title={A model for delimited information release},
+  author={Andrei Sabelfeld and Andrew C Myers},
+  booktitle={Software Security-Theories and Systems},
+  pages={174--191},
+  year={2004},
+  publisher={Springer}
+}
+
+@article{delaune2009verifying,
+  title={Verifying privacy-type properties of electronic voting protocols},
+  author={St{\'e}phanie Delaune and Steve Kremer and Mark Ryan},
+  journal={Journal of Computer Security},
+  volume={17},
+  number={4},
+  pages={435--487},
+  year={2009},
+  publisher={IOS Press}
+}
+
+@inproceedings{wittbold1990information,
+  title={Information flow in nondeterministic systems},
+  author={J Todd Wittbold and Dale M Johnson},
+  booktitle={{IEEE} Symp. Security and Privacy},
+  pages={144--144},
+  year={1990}
+}
+
+@Article{HaighYoung1987,
+  author = 	 {J Thomas Haigh and William D Young},
+  title = 	 {Extending the non-interference version of MLS for SAT},
+  journal = 	 {{IEEE} Transactions on Software Engineering},
+  year = 	 1987,
+  volume = 	 13,
+  number = 	 2}
+
+@inproceedings{askarov2007gradual,
+  title={Gradual release: Unifying declassification, encryption and key release policies},
+  author={Aslan Askarov and Andrei Sabelfeld},
+  booktitle={{IEEE} Symp. Security and Privacy},
+  pages={207--221},
+  year={2007},
+  organization={IEEE}
+}
+
+@inproceedings{mantel2011assumptions,
+  title={Assumptions and guarantees for compositional noninterference},
+  author={Heiko Mantel and David Sands and Henning Sudbrock},
+  booktitle={{IEEE} Computer Security Foundations Symposium},
+  pages={218--232},
+  year={2011}
+}
+
+@incollection{roscoe1994non,
+  title={Non-interference through determinism},
+  author={A.W. Roscoe and J.C.P. Woodcock and L. Wulf},
+  booktitle={Computer Security---ESORICS 94},
+  pages={31--53},
+  year={1994},
+  publisher={Springer}
+}
+
+@inproceedings{mclean1994general,
+  title={A general theory of composition for trace sets closed under selective interleaving functions},
+  author={John McLean},
+  booktitle={{IEEE} Symp.~Security and Privacy},
+  pages={79--93},
+  year={1994}
+}
+
+@article{McLean1996,
+ author = {McLean, John},
+ title = {A General Theory of Composition for a Class of ``Possibilistic'' Properties},
+ journal = {IEEE Trans. Softw. Eng.},
+ issue_date = {January 1996},
+ volume = {22},
+ number = {1},
+ month = jan,
+ year = {1996},
+ pages = {53--67}
+ }
+
+@Misc{GuttmanRowe14:cut,
+  author = 	 {Joshua D. Guttman and Paul D. Rowe},
+  title = 	 {A Cut Principle for Information Flow},
+  howpublished = {Arxiv},
+  month = 	 {October},
+  year = 	 2014,
+  note = 	 {\url{http://arxiv.org/abs/1410.4617}}}
+
+@InProceedings{GuttmanRowe15,
+  author = 	 {Joshua D. Guttman and Paul D. Rowe},
+  title = 	 {A Cut Principle for Information Flow},
+  booktitle = {{IEEE} Computer Security Foundations},
+  year = 	 2015,
+  month = 	 {July},
+  publisher = {{IEEE} Computer Society Press}}
+
+@book{cormen2003introduction,
+  title={Introduction to Algorithms},
+  author={Thomas H. Cormen and Charles E. Leiserson and Ronald
+                  L. Rivest and Clifford Stein},
+  publisher={MIT Press},
+  edition={second},
+  address = {Cambridge, MA},
+  year=2003
+}
+
+@article{bossi2004verifying,
+  title={Verifying persistent security properties},
+  author={Annalisa Bossi and Riccardo Focardi and Carla Piazza and Sabina Rossi},
+  journal={Computer Languages, Systems \& Structures},
+  volume={30},
+  number={3},
+  pages={231--258},
+  year={2004}
+}
+
+@inproceedings{rossi2009information,
+  title={Information flow security for service compositions.},
+  author={Sabina Rossi and Damiano Macedonio},
+  booktitle={ICUMT},
+  pages={1--8},
+  year={2009}
+}
+
+@incollection{focardi2001classification,
+  title={Classification of security properties},
+  author={Riccardo Focardi and Roberto Gorrieri},
+  booktitle={Foundations of Security Analysis and Design},
+  pages={331--396},
+  year={2001},
+  publisher={Springer}
+}
+
+@inproceedings{mantel2000possibilistic,
+  title={Possibilistic definitions of security-an assembly kit},
+  author={Heiko Mantel},
+  booktitle={{IEEE} Computer Security Foundations},
+  pages={185--199},
+  year={2000},
+  organization={IEEE}
+}
+
+@inproceedings{mantel2001preserving,
+  title={Preserving information flow properties under refinement},
+  author={Heiko Mantel},
+  booktitle={{IEEE} Computer Security Foundations},
+  pages={78--91},
+  year={2001}
+}
+
+@inproceedings{mantel2002composition,
+  title={On the composition of secure systems},
+  author={Heiko Mantel},
+  booktitle={{IEEE} Security and Privacy},
+  pages={88--101},
+  year={2002}
+}
+
+@article{zakinthinos1995composability,
+  title={The composability of non-interference},
+  author={Aris Zakinthinos and E Stewart Lee},
+  journal={Journal of Computer Security},
+  volume={3},
+  number={4},
+  pages={269--281},
+  year={1995}
+}
+
+@inproceedings{johnson1988security,
+  title={Security and the Composition of Machines.},
+  author={Dale M Johnson and F Javier Thayer},
+  booktitle={CSFW},
+  volume={88},
+  pages={72--89},
+  year={1988}
+}
+
+@article{askarov2008cryptographically,
+  title={Cryptographically-masked flows},
+  author={Aslan Askarov and Daniel Hedin and Andrei Sabelfeld},
+  journal={Theoretical Computer Science},
+  volume={402},
+  number={2},
+  pages={82--101},
+  year={2008},
+  publisher={Elsevier}
+}
+
+@Misc{rivest2006threeballot,
+  author = 	 {Ronald L. Rivest},
+  title = 	 {The {ThreeBallot} voting system},
+  howpublished = {\url{http://theory.lcs.mit.edu/\~rivest/Rivest-TheThreeBallotVotingSystem.pdf}},
+  month = 	 Oct,
+  year = 	 2006}
+
+@Misc{rivest2007three,
+  title =	{Three Voting Protocols: {ThreeBallot}, {VAV}, and {Twin}},
+  author=	{Rivest, Ronald L and Smith, Warren D},
+  howpublished = {\url{http://people.csail.mit.edu/rivest/pubs/RS07.pdf}},
+  year = 	 2007}
+
+@inproceedings{clark2007security,
+  title={On the security of ballot receipts in E2E voting systems},
+  author={Jeremy Clark and Aleks Essex and Carlisle Adams},
+  booktitle={Workshop on Trustworthy Elections ({WOTE})},
+  year={2007}
+}
+
+@incollection{chatzikokolakis2007making,
+  title={Making random choices invisible to the scheduler},
+  author={Konstantinos Chatzikokolakis and Catuscia Palamidessi},
+  booktitle={CONCUR},
+  pages={42--58},
+  year={2007},
+  publisher={Springer}
+}
+
+@incollection{canetti2006time,
+  title={Time-bounded task-PIOAs: A framework for analyzing security protocols},
+  author={Ran Canetti and Ling Cheung and Dilsun Kaynar and Moses Liskov and Nancy Lynch and Olivier Pereira and Roberto Segala},
+  booktitle={Distributed Computing},
+  pages={238--253},
+  year={2006},
+  publisher={Springer}
+}
+
+@article{CanettiCKLLPS08,
+  author    = {Ran Canetti and
+               Ling Cheung and
+               Dilsun Kirli Kaynar and
+               Moses Liskov and
+               Nancy A. Lynch and
+               Olivier Pereira and
+               Roberto Segala},
+  title     = {Analyzing Security Protocols Using Time-Bounded Task-{PIOAs}},
+  journal   = {Discrete Event Dynamic Systems},
+  volume    = {18},
+  number    = {1},
+  pages     = {111--159},
+  year      = {2008}
+}
+
+@article{mccamant2008quantitative,
+  title={Quantitative information flow as network flow capacity},
+  author={Stephen McCamant and Michael D Ernst},
+  journal={ACM SIGPLAN Notices ({PLDI})},
+  volume={43},
+  number={6},
+  pages={193--205},
+  year={2008},
+  publisher={ACM}
+}
+
+@incollection{guttman2014security,
+  title={Security Goals and Evolving Standards},
+  author={Joshua D Guttman and Moses D Liskov and Paul D Rowe},
+  booktitle={Security Standardisation Research},
+  pages={93--110},
+  year={2014},
+  publisher={Springer}
+}
+
+@Article{MoranHeatherSchneider2015,
+  author = 	 {Murat Moran and James Heather and Steve Schneider},
+  title = 	 {Automated anonymity verification of the {ThreeBallot} and {VAV} voting systems},
+  journal = 	 {Software and Systems Modeling},
+  year = 	 2015,
+  note = 	 {Forthcoming}}
+
+@incollection{sabelfeld2010dynamic,
+  title={From dynamic to static and back: Riding the roller coaster of information-flow control research},
+  author={Andrei Sabelfeld and Alejandro Russo},
+  booktitle={Perspectives of Systems Informatics},
+  pages={352--365},
+  year={2010},
+  publisher={Springer}
+}
+
+@inproceedings{RamsdellDGR14,
+  author    = {John D. Ramsdell and
+               Daniel J. Dougherty and
+               Joshua D. Guttman and
+               Paul D. Rowe},
+  title     = {A Hybrid Analysis for Security Protocols with State},
+  booktitle = {Integrated Formal Methods},
+  pages     = {272--287},
+  year      = {2014},
+  url       = {http://dx.doi.org/10.1007/978-3-319-10181-1_17},
+  doi       = {10.1007/978-3-319-10181-1_17},
+  biburl    = {http://dblp.uni-trier.de/rec/bib/conf/ifm/RamsdellDGR14},
+  bibsource = {dblp computer science bibliography, http://dblp.org}
+}
+
+@article{denning1977certification,
+  title={Certification of programs for secure information flow},
+  author={Dorothy E Denning and Peter J Denning},
+  journal={Communications of the ACM},
+  volume={20},
+  number={7},
+  pages={504--513},
+  year={1977},
+  publisher={ACM}
+}
+
+@inproceedings{Mattern1989,
+    author = "Friedemann Mattern",
+    editor = "M. Cosnard",
+    title = "Virtual Time and Global States of Distributed Systems",
+    booktitle = "Proc. Workshop on Parallel and Distributed Algorithms",
+    year = "1989",
+    pages = "215--226",
+    address = "North-Holland / Elsevier",
+    note = {(Reprinted in: Z. Yang, T.A. Marsland (Eds.), "Global States and Time in Distributed Systems", IEEE, 1994, pp. 123-133.)}
+}
+
+@inproceedings{balliu2011epistemic,
+  title={Epistemic temporal logic for information flow security},
+  author={Musard Balliu and Mads Dam and Gurvan Le Guernic},
+  booktitle={Programming Languages and Analysis for Security},
+  year={2011},
+  organization={ACM}
+}
+
+@inproceedings{landauer1993lattice,
+  title={A lattice of information},
+  author={Jaisook Landauer and Timothy Redmond},
+  booktitle={Computer Security Foundations Workshop},
+  pages={65--70},
+  year={1993},
+  organization={IEEE}
+}
+
+@inproceedings{cade92-pvs-old,
+    AUTHOR = {{S.} Owre and {J.} {M.} Rushby and {N.} Shankar},
+    TITLE = {{PVS:} {A} Prototype Verification System},
+    BOOKTITLE = {Conference on Automated Deduction},
+    YEAR = 1992,
+    SERIES = {LNAI},
+    MONTH = jun,
+    note = {\url{http://pvs.csl.sri.com}}
+}
+
+@inproceedings{GuttmanNadel88,
+  author    = {Joshua D. Guttman and
+               Mark E. Nadel},
+  title     = {What Needs Securing?},
+  booktitle = {{IEEE} Computer Security Foundations Workshop},
+  pages     = {34--57},
+  year      = {1988}
+}
+
+@inproceedings{HuntMastroeni05,
+  author    = {Sebastian Hunt and
+               Isabella Mastroeni},
+  title     = {The {PER} Model of Abstract Non-interference},
+  booktitle = {Static Analysis Symposium {SAS}},
+  pages     = {171--185},
+  year      = {2005}
+}
+
+@inproceedings{KuhlmanMBET08,
+  author    = {Doug Kuhlman and
+               Ryan Moriarty and
+               Tony Braskich and
+               Steve Emeott and
+               Mahesh V. Tripunitara},
+  title     = {{A Correctness Proof of a Mesh Security Architecture}},
+  booktitle = {CSF},
+  year      = {2008},
+  pages     = {315-330},
+  ee        = {http://doi.ieeecomputersociety.org/10.1109/CSF.2008.23},
+  crossref  = {DBLP:conf/csfw/2008},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@inproceedings{HeSDDM05,
+  author    = {Changhua He and
+               Mukund Sundararajan and
+               Anupam Datta and
+               Ante Derek and
+               John C. Mitchell},
+  title     = {{A modular correctness proof of IEEE 802.11i and TLS}},
+  booktitle = {ACM Conference on Computer and Communications Security},
+  year      = {2005},
+  pages     = {2-15},
+  ee        = {http://doi.acm.org/10.1145/1102120.1102124},
+  crossref  = {DBLP:conf/ccs/2005},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@inproceedings{BhargavanFGS08,
+  author    = {Karthikeyan Bhargavan and
+               C{\'e}dric Fournet and
+               Andrew D. Gordon and
+               Nikhil Swamy},
+  title     = {{Verified implementations of the information card federated
+               identity-management protocol}},
+  booktitle = {ASIACCS},
+  year      = {2008},
+  pages     = {123-135},
+  ee        = {http://doi.acm.org/10.1145/1368310.1368330},
+  crossref  = {DBLP:conf/ccs/2008asia},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@article{BhargavanFCZ12,
+  author    = {Karthikeyan Bhargavan and
+               C{\'e}dric Fournet and
+               Ricardo Corin and
+               Eugen Zalinescu},
+  title     = {{Verified Cryptographic Implementations for TLS}},
+  journal   = {ACM Trans. Inf. Syst. Secur.},
+  volume    = {15},
+  number    = {1},
+  year      = {2012},
+  pages     = {3},
+  ee        = {http://doi.acm.org/10.1145/2133375.2133378},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@inproceedings{MitchellRRS08,
+  author    = {John C. Mitchell and
+               Arnab Roy and
+               Paul Rowe and
+               Andre Scedrov},
+  title     = {Analysis of {EAP-GPSK} Authentication Protocol},
+  booktitle = {ACNS},
+  year      = {2008},
+  pages     = {309-327},
+  ee        = {http://dx.doi.org/10.1007/978-3-540-68914-0_19},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@misc{rfc4120,
+  author="C. Neuman and T. Yu and S. Hartman and K. Raeburn",
+  title="{The Kerberos Network Authentication Service (V5)}",
+  series="Request for Comments",
+  number="4120",
+  howpublished="RFC 4120 (Proposed Standard)",
+  publisher="IETF",
+  organization="Internet Engineering Task Force",
+  year=2005,
+  month=jul,
+    note="Updated by RFCs 4537, 5021, 5896, 6111, 6112, 6113, 6649, 6806",
+  url="http://www.ietf.org/rfc/rfc4120.txt",
+}
+
+@misc{rfc4556,
+  author="L. Zhu and B. Tung",
+  title="{Public Key Cryptography for Initial Authentication in Kerberos (PKINIT)}",
+  series="Request for Comments",
+  number="4556",
+  howpublished="RFC 4556 (Proposed Standard)",
+  publisher="IETF",
+  organization="Internet Engineering Task Force",
+  year=2006,
+  month=jun,
+    note="Updated by RFC 6112",
+  url="http://www.ietf.org/rfc/rfc4556.txt",
+}
+
+@article{CervesatoJSTW08,
+  author    = {Iliano Cervesato and
+               Aaron D. Jaggard and
+               Andre Scedrov and
+               Joe-Kai Tsay and
+               Christopher Walstad},
+  title     = {Breaking and fixing public-key {Kerberos}},
+  journal   = {Inf. Comput.},
+  volume    = {206},
+  number    = {2-4},
+  year      = {2008},
+  pages     = {402-424},
+  ee        = {http://dx.doi.org/10.1016/j.ic.2007.05.005},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@misc{rfc5746,
+  author="E. Rescorla and M. Ray and S. Dispensa and N. Oskov",
+  title="{Transport Layer Security (TLS) Renegotiation Indication Extension}",
+  series="Request for Comments",
+  number="5746",
+  howpublished="RFC 5746 (Proposed Standard)",
+  publisher="IETF",
+  organization="Internet Engineering Task Force",
+  year=2010,
+  month=feb,
+    url="http://www.ietf.org/rfc/rfc5746.txt",
+}
+
+@misc{rfc5246,
+  author="T. Dierks and E. Rescorla",
+  title="{The Transport Layer Security (TLS) Protocol Version 1.2}",
+  series="Request for Comments",
+  number="5246",
+  howpublished="RFC 5246 (Proposed Standard)",
+  publisher="IETF",
+  organization="Internet Engineering Task Force",
+  year=2008,
+  month=aug,
+    note="Updated by RFCs 5746, 5878, 6176",
+  url="http://www.ietf.org/rfc/rfc5246.txt",
+}
+
+@article{BasinCM13,
+  author    = {David A. Basin and
+               Cas Cremers and
+               Simon Meier},
+  title     = {Provably repairing the {ISO/IEC} 9798 standard for entity
+               authentication},
+  journal   = {Journal of Computer Security},
+  volume    = {21},
+  number    = {6},
+  year      = {2013},
+  pages     = {817-846},
+  ee        = {http://dx.doi.org/10.3233/JCS-130472},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@article {Meadows03,
+  author    = {Catherine Meadows},
+  title     = {Formal methods for cryptographic protocol analysis: Emerging
+               issues and trends},
+  journal   = {IEEE Journal on Selected Areas in Communications},
+  volume    = {21},
+  number    = {1},
+  year      = {2003},
+  pages     = {44-54},
+  ee        = {http://dx.doi.org/10.1109/JSAC.2002.806125},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@article {PimentelM08,
+  author    = {Juan Carlos L{\'o}pez Pimentel and
+               Raul Monroy},
+  title     = {Formal Support to Security Protocol Development: A Survey},
+  journal   = {Computaci{\'o}n y Sistemas},
+  volume    = {12},
+  number    = {1},
+  year      = {2008},
+  ee        = {http://cys.cic.ipn.mx/ojs/index.php/CyS/article/view/1190},
+  bibsource = {DBLP, http://dblp.uni-trier.de}
+}
+
+@inproceedings {BhargavanDFPS14,
+  author    = {Karthikeyan Bhargavan and
+               Antoine Delignat-Lavaud and
+               C{\'e}dric Fournet and
+               Alfredo Pironti and
+               Pierre-Yves Strub},
+  title     = {Triple Handshakes and Cookie Cutters: Breaking and Fixing Authentication over {TLS}},
+  booktitle = {IEEE Symposium on Security and Privacy},
+  year      = {2014}
+}
+
+@article {DattaDMR07,
+  author    = {Anupam Datta and
+               Ante Derek and
+               John C. Mitchell and
+               Arnab Roy},
+  title     = {Protocol Composition Logic ({PCL})},
+  journal   = {Electr. Notes Theor. Comput. Sci.},
+  volume    = {172},
+  year      = {2007},
+  pages     = {311-358},
+}
+
+@Unpublished{RoweEtAl2015,
+  author = 	 {Paul D. Rowe and Joshua D. Guttman and Moses D. Liskov},
+  title = 	 {Measuring Protocol Strength with Security Goals},
+  note = 	 {Submitted to \emph{IJIS} in the SSR 2014 special issue.  Available at \url{http://web.cs.wpi.edu/~guttman/pubs/ijis_measuring-security.pdf}},
+  month = 	 {April},
+  year = 	 2015}
+
+@Article{RoweEtAl2016,
+  author = 	 {Paul D. Rowe and Joshua D. Guttman and Moses D. Liskov},
+  title = 	 {Measuring Protocol Strength with Security Goals},
+  journal = 	 {International Journal of Information Security},
+  year = 	 2016,
+  volume = 15,
+  number = 6,
+  month = nov,
+  pages = {575--596},
+  note = 	 {DOI 10.1007/s10207-016-0319-z, \url{http://web.cs.wpi.edu/~guttman/pubs/ijis_measuring-security.pdf}}}
+
+@inproceedings{KremerKuennemann14,
+  author    = {Steve Kremer and
+               Robert K{\"{u}}nnemann},
+  title     = {Automated Analysis of Security Protocols with Global State},
+  booktitle = {{IEEE} Symposium on Security and Privacy},
+  pages     = {163--178},
+  year      = {2014},
+  url       = {http://dx.doi.org/10.1109/SP.2014.18},
+  doi       = {10.1109/SP.2014.18},
+  timestamp = {Tue, 02 Dec 2014 18:47:29 +0100},
+  biburl    = {http://dblp.uni-trier.de/rec/bib/conf/sp/KremerK14},
+  bibsource = {dblp computer science bibliography, http://dblp.org}
+}
+
+@inproceedings{MeierSCB13,
+  author    = {Simon Meier and
+               Benedikt Schmidt and
+               Cas Cremers and
+               David A. Basin},
+  title     = {The {tamarin} Prover for the Symbolic Analysis of Security Protocols},
+  booktitle = {Computer Aided Verification ({CAV})},
+  pages     = {696--701},
+  year      = 2013,
+  url       = {http://dx.doi.org/10.1007/978-3-642-39799-8_48},
+  doi       = {10.1007/978-3-642-39799-8_48},
+  timestamp = {Fri, 12 Jul 2013 13:57:42 +0200},
+  biburl    = {http://dblp.uni-trier.de/rec/bib/conf/cav/MeierSCB13},
+  bibsource = {dblp computer science bibliography, http://dblp.org}
+}
+
+@Misc{GLRR2015a,
+  author = 	 {Joshua D. Guttman and Moses D. Liskov and John D. Ramsdell and Paul D. Rowe},
+  title = 	 {Formal Support for Standardizing Protocols with State (extended version)},
+  howpublished = {Arxiv},
+  month = 	 sep,
+  year = 	 2015,
+  note = 	 {Available at \url{http://arxiv.org/abs/1509.07552}}}
+
+@InProceedings{AlmousaEtAl2015,
+  author = 	 {Omar Almousa and Sebastian A. M\"{o}dersheim and Paolo Modesti and Luca Vigan\`{o}},
+  title = 	 {Typing and Compositionality for Security Protocols: A Generalization to the Geometric Fragment},
+  booktitle = {ESORICS},
+  year = 	 2015,
+  series = 	 {LNCS},
+  month = 	 sep,
+  publisher = {Springer}}
+
+@InProceedings{AndoGuttman15,
+  author = 	 {Megumi Ando and Joshua D. Guttman},
+  title = 	 {Composable Bounds on Information Flow from Distribution Differences},
+  booktitle = {Data Privacy Management, and Security Assurance},
+  year = 	 2015,
+  volume = 	 9481,
+  series = 	 {LNCS},
+  pages = 	 {13--29},
+  publisher = {Springer}}
+
+@InProceedings{AdaoEtAl16,
+  author = 	 {Pedro Ad{\~a}o and Riccardo Focardi and Flaminia L. Luccio and Joshua D. Guttman},
+  title = 	 {Localizing Firewall Security Policies},
+  booktitle = {{IEEE} Symp. Computer Security Foundations},
+  year = 	 2016,
+  month = 	 {June},
+  organization = {{IEEE} Computer Society}}
+
+@Inbook{GuttmanEtAl2016,
+  author="Joshua D. Guttman
+and  John D. Ramsdell
+and Paul D. Rowe",
+title="Cross-Tool Semantics for Protocol Security Goals",
+bookTitle="Security Standardisation Research, SSR 2016",
+year="2016",
+publisher="Springer",
+pages="32--61",
+isbn="978-3-319-49100-4",
+doi="10.1007/978-3-319-49100-4_2",
+url="http://dx.doi.org/10.1007/978-3-319-49100-4_2"
+}
+
+@inproceedings{DeMoura08,
+ author = {De Moura, Leonardo and Bj{\o}rner, Nikolaj},
+ title = {Z3: An Efficient SMT Solver},
+ booktitle = {Proceedings of the Theory and Practice of Software, 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems},
+ series = {TACAS'08/ETAPS'08},
+ year = {2008},
+ isbn = {3-540-78799-2, 978-3-540-78799-0},
+ location = {Budapest, Hungary},
+ pages = {337--340},
+ numpages = {4},
+ url = {https://github.com/Z3Prover/z3/wiki},
+ acmid = {1792766},
+ publisher = {Springer-Verlag},
+ address = {Berlin, Heidelberg}
+}
+
+@inproceedings{Maurer05,
+  author    = {Ueli M. Maurer},
+  title     = {Abstract Models of Computation in Cryptography},
+  booktitle = {Cryptography and Coding},
+  pages     = {1--12},
+  year      = {2005},
+  publisher = {Springer},
+  volume    = {3796},
+  series = {LNCS},
+  url       = {https://doi.org/10.1007/11586821_1},
+  doi       = {10.1007/11586821_1},
+  timestamp = {Tue, 30 May 2017 16:36:52 +0200},
+  biburl    = {http://dblp.uni-trier.de/rec/bib/conf/ima/Maurer05},
+  bibsource = {dblp computer science bibliography, http://dblp.org}
+}
+
+@inproceedings{BartheFFMSS14,
+  author    = {Gilles Barthe and
+               Edvard Fagerholm and
+               Dario Fiore and
+               John C. Mitchell and
+               Andre Scedrov and
+               Benedikt Schmidt},
+  title     = {Automated Analysis of Cryptographic Assumptions in Generic Group Models},
+  booktitle = {{CRYPTO}},
+  pages     = {95--112},
+  year      = 2014,
+  publisher = {Springer},
+  volume    = 8616,
+  series = {LNCS},
+  url       = {https://doi.org/10.1007/978-3-662-44371-2_6},
+  doi       = {10.1007/978-3-662-44371-2_6},
+  timestamp = {Fri, 02 Jun 2017 20:50:15 +0200},
+  biburl    = {http://dblp.uni-trier.de/rec/bib/conf/crypto/BartheFFMSS14},
+  bibsource = {dblp computer science bibliography, http://dblp.org}
+}
+
+@inproceedings{Shoup97,
+  author    = {Victor Shoup},
+  title     = {Lower Bounds for Discrete Logarithms and Related Problems},
+  booktitle = {{EUROCRYPT}},
+  pages     = {256--266},
+  year      = {1997},
+  series    = {Lecture Notes in Computer Science},
+  volume    = {1233},
+  publisher = {Springer},
+  url       = {https://doi.org/10.1007/3-540-69053-0_18},
+  doi       = {10.1007/3-540-69053-0_18},
+  timestamp = {Mon, 22 May 2017 17:12:28 +0200},
+  biburl    = {http://dblp.uni-trier.de/rec/bib/conf/eurocrypt/Shoup97},
+  bibsource = {dblp computer science bibliography, http://dblp.org}
+}
+
+@inproceedings{LiskovThayer14,
+  author    = {Moses Liskov and F. Javier Thayer},
+  title     = {Modeling {Diffie-Hellman} Derivability for Automated
+                  Analysis},
+  booktitle = {{IEEE} Computer Security Foundations},
+  pages     = {232--243},
+  year      = 2014,
+  url       = {https://doi.org/10.1109/CSF.2014.24},
+  doi       = {10.1109/CSF.2014.24},
+  timestamp = {Thu, 25 May 2017 00:40:51 +0200},
+  biburl    = {http://dblp.uni-trier.de/rec/bib/conf/csfw/LiskovT14},
+  bibsource = {dblp computer science bibliography, http://dblp.org}
+}
+
+@inproceedings{MoedersheimKatsoris14,
+  author    = {Sebastian M{\"{o}}dersheim and
+               Georgios Katsoris},
+  title     = {A Sound Abstraction of the Parsing Problem},
+  booktitle = {{IEEE} {CSF}},
+  pages     = {259--273},
+  year      = {2014},
+  url       = {https://doi.org/10.1109/CSF.2014.26},
+  doi       = {10.1109/CSF.2014.26},
+  timestamp = {Thu, 25 May 2017 00:40:50 +0200},
+  biburl    = {http://dblp.uni-trier.de/rec/bib/conf/csfw/ModersheimK14},
+  bibsource = {dblp computer science bibliography, http://dblp.org}
+}
+
+@inproceedings{GuttmanLRR15,
+  author    = {Joshua D. Guttman and
+               Moses D. Liskov and
+               John D. Ramsdell and
+               Paul D. Rowe},
+  title     = {Formal Support for Standardizing Protocols with State},
+  booktitle = {Security Standardisation Research {SSR}},
+  pages     = {246--265},
+  year      = {2015},
+  note      = {Extended version at \url{http://arxiv.org/abs/1509.07552}},
+  url       = {https://doi.org/10.1007/978-3-319-27152-1_13},
+  doi       = {10.1007/978-3-319-27152-1_13},
+  timestamp = {Sun, 21 May 2017 00:17:16 +0200},
+  biburl    = {http://dblp.uni-trier.de/rec/bib/conf/secsr/GuttmanLRR15},
+  bibsource = {dblp computer science bibliography, http://dblp.org}
+}
+
+@InCollection{BaaderSnyder01,
+  author = 	 {Franz Baader and Wayne Snyder},
+  title = 	 {Unification Theory},
+  booktitle = 	 {Handbook of Automated Reasoning},
+  publisher =    {The {MIT} Press},
+  year =         2001,
+  editor = 	 {Alan Robinson and Andrei Voronkov},
+  volume = 	 1,
+  chapter = 	 8}
+
+@InCollection{BaaderSnyder01troublesome,
+  author = 	 {Franz Baader and Wayne Snyder},
+  title = 	 {Unification Theory},
+  booktitle = 	 {Handbook of Automated Reasoning},
+  publisher =    {The {MIT} Press},
+  year =         2001,
+  editor = 	 {Alan Robinson and Andrei Voronkov},
+  volume = 	 1,
+  chapter = 	 8,
+  note = {\url{http://www.cs.bu.edu/~snyder/publications/UnifChapter.pdf‎}}}
+
+@Misc{LiskovGRRT18,
+  author = 	 {Moses D. Liskov and Joshua D. Guttman and John D. Ramsdell and Paul D. Rowe and F. Javier Thayer},
+  title = 	 {Enrich-by-need Protocol Analysis for
+                  {Diffie-Hellman} (Extended Version)},
+  howpublished = {\url{http://arxiv.org/abs/1804.05713}},
+  month = 	 {April},
+  year = 	 2018}
+
+@article{vigano2006automated,
+  title={Automated security protocol analysis with the {AVISPA} tool},
+  author={Luca Vigan{\`o}},
+  journal={Electronic Notes in Theoretical Computer Science},
+  volume=155,
+  pages={61--86},
+  year=2006,
+  publisher={Elsevier}
+}
+
+@inproceedings{turuani2006cl,
+  title={The {CL-Atse} protocol analyser},
+  author={Mathieu Turuani},
+  booktitle={Rewriting Techniques and Applications},
+  pages={277--286},
+  year={2006},
+  organization={Springer}
+}
+
+@inproceedings{Molina-MarkhamR17,
+  author    = {Andres Molina{-}Markham and
+               Paul D. Rowe},
+  title     = {Continuous Verification for Cryptographic Protocol Development},
+  booktitle = {Proceedings of the 1st {ACM} Workshop on the Internet of Safe Things,
+               SafeThings@SenSys 2017, Delft, The Netherlands, November 5, 2017},
+  pages     = {51--56},
+  year      = {2017},
+  url       = {https://doi.org/10.1145/3137003.3137006},
+  doi       = {10.1145/3137003.3137006},
+  timestamp = {Tue, 06 Nov 2018 16:57:58 +0100},
+  biburl    = {https://dblp.org/rec/bib/conf/sensys/Molina-MarkhamR17},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{AvoineBGG0OR17,
+  author    = {Gildas Avoine and
+               Xavier Bultel and
+               S{\'{e}}bastien Gambs and
+               David G{\'{e}}rault and
+               Pascal Lafourcade and
+               Cristina Onete and
+               Jean{-}Marc Robert},
+  editor    = {Ramesh Karri and
+               Ozgur Sinanoglu and
+               Ahmad{-}Reza Sadeghi and
+               Xun Yi},
+  title     = {A Terrorist-fraud Resistant and Extractor-free Anonymous Distance-bounding
+               Protocol},
+  booktitle = {Proceedings of the 2017 {ACM} on Asia Conference on Computer and Communications
+               Security, AsiaCCS 2017, Abu Dhabi, United Arab Emirates, April 2-6,
+               2017},
+  pages     = {800--814},
+  publisher = {{ACM}},
+  year      = {2017},
+  url       = {https://doi.org/10.1145/3052973.3053000},
+  doi       = {10.1145/3052973.3053000},
+  timestamp = {Mon, 16 Sep 2019 15:24:37 +0200},
+  biburl    = {https://dblp.org/rec/conf/ccs/AvoineBGG0OR17.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{CremersRSC12,
+  author    = {Cas J. F. Cremers and
+               Kasper Bonne Rasmussen and
+               Benedikt Schmidt and
+               Srdjan {\v{C}}apkun},
+  title     = {Distance Hijacking Attacks on Distance Bounding Protocols},
+  booktitle = {{IEEE} Symposium on Security and Privacy, {SP} 2012, 21-23 May 2012,
+               San Francisco, California, {USA}},
+  pages     = {113--127},
+  publisher = {{IEEE} Computer Society},
+  year      = {2012},
+  url       = {https://doi.org/10.1109/SP.2012.17},
+  doi       = {10.1109/SP.2012.17},
+  timestamp = {Wed, 16 Oct 2019 14:14:51 +0200},
+  biburl    = {https://dblp.org/rec/conf/sp/CremersRSC12.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{MauwSTT18,
+  author    = {Sjouke Mauw and
+               Zach Smith and
+               Jorge Toro{-}Pozo and
+               Rolando Trujillo{-}Rasua},
+  title     = {Distance-Bounding Protocols: Verification without Time and Location},
+  booktitle = {2018 {IEEE} Symposium on Security and Privacy, {SP} 2018, Proceedings,
+               21-23 May 2018, San Francisco, California, {USA}},
+  pages     = {549--566},
+  publisher = {{IEEE} Computer Society},
+  year      = {2018},
+  url       = {https://doi.org/10.1109/SP.2018.00001},
+  doi       = {10.1109/SP.2018.00001},
+  timestamp = {Sat, 19 Oct 2019 20:19:29 +0200},
+  biburl    = {https://dblp.org/rec/conf/sp/MauwSTT18.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{ChothiaRS18,
+  author    = {Tom Chothia and
+               Joeri de Ruiter and
+               Ben Smyth},
+  editor    = {William Enck and
+               Adrienne Porter Felt},
+  title     = {Modelling and Analysis of a Hierarchy of Distance Bounding Attacks},
+  booktitle = {27th {USENIX} Security Symposium, {USENIX} Security 2018, Baltimore,
+               MD, USA, August 15-17, 2018},
+  pages     = {1563--1580},
+  publisher = {{USENIX} Association},
+  year      = {2018},
+  url       = {https://www.usenix.org/conference/usenixsecurity18/presentation/chothia},
+  timestamp = {Mon, 20 Aug 2018 15:16:57 +0200},
+  biburl    = {https://dblp.org/rec/conf/uss/ChothiaRS18.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@article{MaurerS96,
+  author    = {Ueli M. Maurer and
+               Pierre E. Schmid},
+  title     = {A Calculus for Security Bootstrapping in Distributed Systems},
+  journal   = {Journal of Computer Security},
+  volume    = {4},
+  number    = {1},
+  pages     = {55--80},
+  year      = {1996},
+  url       = {https://doi.org/10.3233/JCS-1996-4104},
+  doi       = {10.3233/JCS-1996-4104},
+  timestamp = {Fri, 26 May 2017 22:53:13 +0200},
+  biburl    = {https://dblp.org/rec/journals/jcs/MaurerS96.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{ThayerSG10,
+  author    = {F. Javier Thayer and
+               Vipin Swarup and
+               Joshua D. Guttman},
+  title     = {Metric Strand Spaces for Locale Authentication Protocols},
+  booktitle = {Trust Management, {IFIP} {WG} 11.11},
+  series    = {{IFIP} Advances in Information and Communication Technology},
+  volume    = {321},
+  pages     = {79--94},
+  publisher = {Springer},
+  year      = {2010},
+  url       = {https://doi.org/10.1007/978-3-642-13446-3\_6},
+  doi       = {10.1007/978-3-642-13446-3\_6},
+  timestamp = {Sat, 19 Oct 2019 20:14:34 +0200},
+  biburl    = {https://dblp.org/rec/conf/ifiptm/ThayerSG10.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{BrandsC93,
+  author    = {Stefan Brands and
+               David Chaum},
+  editor    = {Tor Helleseth},
+  title     = {Distance-Bounding Protocols (Extended Abstract)},
+  booktitle = {Advances in Cryptology - {EUROCRYPT} '93, Workshop on the Theory and
+               Application of of Cryptographic Techniques, Lofthus, Norway, May 23-27,
+               1993, Proceedings},
+  series    = {Lecture Notes in Computer Science},
+  volume    = {765},
+  pages     = {344--359},
+  publisher = {Springer},
+  year      = {1993},
+  url       = {https://doi.org/10.1007/3-540-48285-7\_30},
+  doi       = {10.1007/3-540-48285-7\_30},
+  timestamp = {Tue, 14 May 2019 10:00:53 +0200},
+  biburl    = {https://dblp.org/rec/conf/eurocrypt/BrandsC93.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{RasmussenC10,
+  author    = {Kasper Bonne Rasmussen and
+               Srdjan Capkun},
+  title     = {Realization of {RF} Distance Bounding},
+  booktitle = {19th {USENIX} Security Symposium, Washington, DC, USA, August 11-13,
+               2010, Proceedings},
+  pages     = {389--402},
+  publisher = {{USENIX} Association},
+  year      = {2010},
+  url       = {http://www.usenix.org/events/sec10/tech/full\_papers/Rasmussen.pdf},
+  timestamp = {Wed, 04 Jul 2018 13:06:34 +0200},
+  biburl    = {https://dblp.org/rec/conf/uss/RasmussenC10.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@incollection{MeadowsPPCS07,
+  author    = {Catherine A. Meadows and
+               Radha Poovendran and
+               Dusko Pavlovic and
+               LiWu Chang and
+               Paul F. Syverson},
+  editor    = {Radha Poovendran and
+               Sumit Roy and
+               Cliff Wang},
+  title     = {Distance Bounding Protocols: Authentication Logic Analysis and Collusion
+               Attacks},
+  booktitle = {Secure Localization and Time Synchronization for Wireless Sensor and
+               Ad Hoc Networks},
+  series    = {Advances in Information Security},
+  volume    = {30},
+  pages     = {279--298},
+  publisher = {Springer},
+  year      = {2007},
+  url       = {https://doi.org/10.1007/978-0-387-46276-9\_12},
+  doi       = {10.1007/978-0-387-46276-9\_12},
+  timestamp = {Tue, 16 May 2017 14:24:25 +0200},
+  biburl    = {https://dblp.org/rec/series/ais/MeadowsPPCS07.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{AvoineT09,
+  author    = {Gildas Avoine and
+               Aslan Tchamkerten},
+  editor    = {Pierangela Samarati and
+               Moti Yung and
+               Fabio Martinelli and
+               Claudio Agostino Ardagna},
+  title     = {An Efficient Distance Bounding {RFID} Authentication Protocol: Balancing
+               False-Acceptance Rate and Memory Requirement},
+  booktitle = {Information Security, 12th International Conference, {ISC} 2009, Pisa,
+               Italy, September 7-9, 2009. Proceedings},
+  series    = {Lecture Notes in Computer Science},
+  volume    = {5735},
+  pages     = {250--261},
+  publisher = {Springer},
+  year      = {2009},
+  url       = {https://doi.org/10.1007/978-3-642-04474-8\_21},
+  doi       = {10.1007/978-3-642-04474-8\_21},
+  timestamp = {Tue, 14 May 2019 10:00:53 +0200},
+  biburl    = {https://dblp.org/rec/conf/isw/AvoineT09.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{Trujillo-RasuaMA10,
+  author    = {Rolando Trujillo{-}Rasua and
+               Benjamin Martin and
+               Gildas Avoine},
+  editor    = {Siddika Berna Ors Yalcin},
+  title     = {The Poulidor Distance-Bounding Protocol},
+  booktitle = {Radio Frequency Identification: Security and Privacy Issues - 6th
+               International Workshop, RFIDSec 2010, Istanbul, Turkey, June 8-9,
+               2010, Revised Selected Papers},
+  series    = {Lecture Notes in Computer Science},
+  volume    = {6370},
+  pages     = {239--257},
+  publisher = {Springer},
+  year      = {2010},
+  url       = {https://doi.org/10.1007/978-3-642-16822-2\_19},
+  doi       = {10.1007/978-3-642-16822-2\_19},
+  timestamp = {Tue, 14 May 2019 10:00:38 +0200},
+  biburl    = {https://dblp.org/rec/conf/rfidsec/Trujillo-RasuaMA10.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{HanckeK05,
+  author    = {Gerhard P. Hancke and
+               Markus G. Kuhn},
+  title     = {An {RFID} Distance Bounding Protocol},
+  booktitle = {First International Conference on Security and Privacy for Emerging
+               Areas in Communications Networks, SecureComm 2005, Athens, Greece,
+               5-9 September, 2005},
+  pages     = {67--73},
+  publisher = {{IEEE}},
+  year      = {2005},
+  url       = {https://doi.org/10.1109/SECURECOMM.2005.56},
+  doi       = {10.1109/SECURECOMM.2005.56},
+  timestamp = {Wed, 16 Oct 2019 14:14:54 +0200},
+  biburl    = {https://dblp.org/rec/conf/securecomm/HanckeK05.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{MauwTT16,
+  author    = {Sjouke Mauw and
+               Jorge Toro{-}Pozo and
+               Rolando Trujillo{-}Rasua},
+  title     = {A Class of Precomputation-Based Distance-Bounding Protocols},
+  booktitle = {{IEEE} European Symposium on Security and Privacy, EuroS{\&}P
+               2016, Saarbr{\"{u}}cken, Germany, March 21-24, 2016},
+  pages     = {97--111},
+  publisher = {{IEEE}},
+  year      = {2016},
+  url       = {https://doi.org/10.1109/EuroSP.2016.19},
+  doi       = {10.1109/EuroSP.2016.19},
+  timestamp = {Wed, 16 Oct 2019 14:14:55 +0200},
+  biburl    = {https://dblp.org/rec/conf/eurosp/MauwTT16.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{KimA09,
+  author    = {Chong Hee Kim and
+               Gildas Avoine},
+  editor    = {Juan A. Garay and
+               Atsuko Miyaji and
+               Akira Otsuka},
+  title     = {{RFID} Distance Bounding Protocol with Mixed Challenges to Prevent
+               Relay Attacks},
+  booktitle = {Cryptology and Network Security, 8th International Conference, {CANS}
+               2009, Kanazawa, Japan, December 12-14, 2009. Proceedings},
+  series    = {Lecture Notes in Computer Science},
+  volume    = {5888},
+  pages     = {119--133},
+  publisher = {Springer},
+  year      = {2009},
+  url       = {https://doi.org/10.1007/978-3-642-10433-6\_9},
+  doi       = {10.1007/978-3-642-10433-6\_9},
+  timestamp = {Tue, 14 May 2019 10:00:50 +0200},
+  biburl    = {https://dblp.org/rec/conf/cans/KimA09.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@article{MunillaP08,
+  author    = {Jorge Munilla and
+               Alberto Peinado},
+  title     = {Distance bounding protocols for {RFID} enhanced by using void-challenges
+               and analysis in noisy channels},
+  journal   = {Wireless Communications and Mobile Computing},
+  volume    = {8},
+  number    = {9},
+  pages     = {1227--1232},
+  year      = {2008},
+  url       = {https://doi.org/10.1002/wcm.590},
+  doi       = {10.1002/wcm.590},
+  timestamp = {Wed, 17 May 2017 14:25:29 +0200},
+  biburl    = {https://dblp.org/rec/journals/wicomm/MunillaP08.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{ReidNTS07,
+  author    = {Jason Reid and
+               Juan Manuel Gonz{\'{a}}lez Nieto and
+               Tee Tang and
+               Bouchra Senadji},
+  editor    = {Feng Bao and
+               Steven Miller},
+  title     = {Detecting relay attacks with timing-based protocols},
+  booktitle = {Proceedings of the 2007 {ACM} Symposium on Information, Computer and
+               Communications Security, {ASIACCS} 2007, Singapore, March 20-22, 2007},
+  pages     = {204--213},
+  publisher = {{ACM}},
+  year      = {2007},
+  url       = {https://doi.org/10.1145/1229285.1229314},
+  doi       = {10.1145/1229285.1229314},
+  timestamp = {Tue, 06 Nov 2018 11:07:29 +0100},
+  biburl    = {https://dblp.org/rec/conf/ccs/ReidNTS07.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{KimAKSP08,
+  author    = {Chong Hee Kim and
+               Gildas Avoine and
+               Fran{\c{c}}ois Koeune and
+               Fran{\c{c}}ois{-}Xavier Standaert and
+               Olivier Pereira},
+  editor    = {Pil Joong Lee and
+               Jung Hee Cheon},
+  title     = {The Swiss-Knife {RFID} Distance Bounding Protocol},
+  booktitle = {Information Security and Cryptology - {ICISC} 2008, 11th International
+               Conference, Seoul, Korea, December 3-5, 2008, Revised Selected Papers},
+  series    = {Lecture Notes in Computer Science},
+  volume    = {5461},
+  pages     = {98--115},
+  publisher = {Springer},
+  year      = {2008},
+  url       = {https://doi.org/10.1007/978-3-642-00730-9\_7},
+  doi       = {10.1007/978-3-642-00730-9\_7},
+  timestamp = {Tue, 14 May 2019 10:00:36 +0200},
+  biburl    = {https://dblp.org/rec/conf/icisc/KimAKSP08.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@article{AvoineBGGLOR17,
+  author    = {Gildas Avoine and
+               Xavier Bultel and
+               S{\'{e}}bastien Gambs and
+               David G{\'{e}}rault and
+               Pascal Lafourcade and
+               Cristina Onete and
+               Jean{-}Marc Robert},
+  title     = {A Terrorist-fraud Resistant and Extractor-free Anonymous Distance-bounding
+               Protocol},
+  journal   = {{IACR} Cryptology ePrint Archive},
+  volume    = {2017},
+  pages     = {297},
+  year      = {2017},
+  url       = {http://eprint.iacr.org/2017/297},
+  timestamp = {Tue, 14 Aug 2018 17:08:17 +0200},
+  biburl    = {https://dblp.org/rec/journals/iacr/AvoineBGGLOR17.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{ChothiaGRBT15,
+  author    = {Tom Chothia and
+               Flavio D. Garcia and
+               Joeri de Ruiter and
+               Jordi van den Breekel and
+               Matthew Thompson},
+  editor    = {Rainer B{\"{o}}hme and
+               Tatsuaki Okamoto},
+  title     = {Relay Cost Bounding for Contactless {EMV} Payments},
+  booktitle = {Financial Cryptography and Data Security - 19th International Conference,
+               {FC} 2015, San Juan, Puerto Rico, January 26-30, 2015, Revised Selected
+               Papers},
+  series    = {Lecture Notes in Computer Science},
+  volume    = {8975},
+  pages     = {189--206},
+  publisher = {Springer},
+  year      = {2015},
+  url       = {https://doi.org/10.1007/978-3-662-47854-7\_11},
+  doi       = {10.1007/978-3-662-47854-7\_11},
+  timestamp = {Tue, 14 May 2019 10:00:38 +0200},
+  biburl    = {https://dblp.org/rec/conf/fc/ChothiaGRBT15.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{MauwSTT19,
+  author    = {Sjouke Mauw and
+               Zach Smith and
+               Jorge Toro{-}Pozo and
+               Rolando Trujillo{-}Rasua},
+  editor    = {Lorenzo Cavallaro and
+               Johannes Kinder and
+               XiaoFeng Wang and
+               Jonathan Katz},
+  title     = {Post-Collusion Security and Distance Bounding},
+  booktitle = {Proceedings of the 2019 {ACM} {SIGSAC} Conference on Computer and
+               Communications Security, {CCS} 2019, London, UK, November 11-15, 2019},
+  pages     = {941--958},
+  publisher = {{ACM}},
+  year      = {2019},
+  url       = {https://doi.org/10.1145/3319535.3345651},
+  doi       = {10.1145/3319535.3345651},
+  timestamp = {Fri, 08 Nov 2019 12:58:49 +0100},
+  biburl    = {https://dblp.org/rec/conf/ccs/MauwSTT19.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{DebantD19,
+  author    = {Alexandre Debant and
+               St{\'{e}}phanie Delaune},
+  editor    = {Flemming Nielson and
+               David Sands},
+  title     = {Symbolic Verification of Distance Bounding Protocols},
+  booktitle = {Principles of Security and Trust - 8th International Conference, {POST}
+               2019, Held as Part of the European Joint Conferences on Theory and
+               Practice of Software, {ETAPS} 2019, Prague, Czech Republic, April
+               6-11, 2019, Proceedings},
+  series    = {Lecture Notes in Computer Science},
+  volume    = {11426},
+  pages     = {149--174},
+  publisher = {Springer},
+  year      = {2019},
+  url       = {https://doi.org/10.1007/978-3-030-17138-4\_7},
+  doi       = {10.1007/978-3-030-17138-4\_7},
+  timestamp = {Fri, 31 Jan 2020 21:32:30 +0100},
+  biburl    = {https://dblp.org/rec/conf/post/DebantD19.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{Desmedt88,
+  author={Yvo Desmedt},
+  title={Major security problems with the `unforgeable'
+                  (feige)-fiat-shamir proofs of identity and how to
+                  overcome them},
+  booktitle={SECURICOM'88},
+  year={1988},
+  pages={15--17}
+}
+
+@inproceedings{AlTurkiKKNST18,
+  author    = {Musab A. AlTurki and
+               Max I. Kanovich and
+               Tajana Ban Kirigin and
+               Vivek Nigam and
+               Andre Scedrov and
+               Carolyn L. Talcott},
+  editor    = {David Lie and
+               Mohammad Mannan},
+  title     = {Statistical Model Checking of Distance Fraud Attacks on the Hancke-Kuhn
+               Family of Protocols},
+  booktitle = {Proceedings of the 2018 Workshop on Cyber-Physical Systems Security
+               and PrivaCy, CPS-SPC@CCS 2018, Toronto, ON, Canada, October 19, 2018},
+  pages     = {60--71},
+  publisher = {{ACM}},
+  year      = {2018},
+  url       = {https://doi.org/10.1145/3264888.3264895},
+  doi       = {10.1145/3264888.3264895},
+  timestamp = {Wed, 21 Nov 2018 12:44:06 +0100},
+  biburl    = {https://dblp.org/rec/conf/ccs/AlTurkiKKNST18.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@article{KanovichKNST17,
+  author    = {Max I. Kanovich and
+               Tajana Ban Kirigin and
+               Vivek Nigam and
+               Andre Scedrov and
+               Carolyn L. Talcott},
+  title     = {Time, computational complexity, and probability in the analysis of
+               distance-bounding protocols},
+  journal   = {Journal of Computer Security},
+  volume    = {25},
+  number    = {6},
+  pages     = {585--630},
+  year      = {2017},
+  url       = {https://doi.org/10.3233/JCS-0560},
+  doi       = {10.3233/JCS-0560},
+  timestamp = {Wed, 30 Aug 2017 15:38:06 +0200},
+  biburl    = {https://dblp.org/rec/journals/jcs/KanovichKNST17.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{KanovichKNST16,
+  author    = {Max I. Kanovich and
+               Tajana Ban Kirigin and
+               Vivek Nigam and
+               Andre Scedrov and
+               Carolyn L. Talcott},
+  editor    = {Martin Fr{\"{a}}nzle and
+               Nicolas Markey},
+  title     = {Timed Multiset Rewriting and the Verification of Time-Sensitive Distributed
+               Systems},
+  booktitle = {Formal Modeling and Analysis of Timed Systems - 14th International
+               Conference, {FORMATS} 2016, Quebec, QC, Canada, August 24-26, 2016,
+               Proceedings},
+  series    = {Lecture Notes in Computer Science},
+  volume    = {9884},
+  pages     = {228--244},
+  publisher = {Springer},
+  year      = {2016},
+  url       = {https://doi.org/10.1007/978-3-319-44878-7\_14},
+  doi       = {10.1007/978-3-319-44878-7\_14},
+  timestamp = {Tue, 14 May 2019 10:00:38 +0200},
+  biburl    = {https://dblp.org/rec/conf/formats/KanovichKNST16.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
+
+@inproceedings{AlTurkiKKNST19,
+  author    = {Musab A. AlTurki and
+               Tajana Ban Kirigin and
+               Max I. Kanovich and
+               Vivek Nigam and
+               Andre Scedrov and
+               Carolyn L. Talcott},
+  editor    = {Joshua D. Guttman and
+               Carl E. Landwehr and
+               Jos{\'{e}} Meseguer and
+               Dusko Pavlovic},
+  title     = {A Multiset Rewriting Model for Specifying and Verifying Timing Aspects
+               of Security Protocols},
+  booktitle = {Foundations of Security, Protocols, and Equational Reasoning - Essays
+               Dedicated to Catherine A. Meadows},
+  series    = {Lecture Notes in Computer Science},
+  volume    = {11565},
+  pages     = {192--213},
+  publisher = {Springer},
+  year      = {2019},
+  url       = {https://doi.org/10.1007/978-3-030-19052-1\_13},
+  doi       = {10.1007/978-3-030-19052-1\_13},
+  timestamp = {Fri, 24 May 2019 17:45:03 +0200},
+  biburl    = {https://dblp.org/rec/conf/birthday/AlTurkiKKNST19.bib},
+  bibsource = {dblp computer science bibliography, https://dblp.org}
+}
diff --git a/doc/src/cpsa4manual/setup.tex b/doc/src/cpsa4manual/setup.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/setup.tex
@@ -0,0 +1,206 @@
+\chapter{Setup and Installation}
+\label{ch:setup}
+
+\section{Basic Installation}
+
+The use of {\cpsa} requires Haskell, the programming language in which
+{\cpsa} is coded.  Our recommendation is to use the Haskell Platform,
+which is available for Windows, Mac, and Linux.  The ``Core'' platform
+is sufficient, but the ``Full'' platform is also fine.  On Linux,
+install the \texttt{haskell-platform} package.  Otherwise, follow the
+download and installation instructions at:
+
+\begin{center}
+\url{http://www.haskell.org/platform/}
+\end{center}
+
+To install {\cpsa}, run in a terminal or command prompt:
+
+\noindent \texttt{\$ cabal update} (to get the latest package list; this may take a while.)\\
+\texttt{\$ cabal install cpsa}
+
+Note that if you are behind a proxy, you may have to set the http
+proxy for your shell if you haven't already. For example, on a mac:\\
+\texttt{\$ export http\_proxy=http://proxy.myorg:port}\\
+On Windows:\\
+\texttt{\$ set HTTP\_PROXY=http://proxy.myorg:port}
+
+Cabal will install {\cpsa} in a directory specified in its config file
+(usually in ~/.cabal/config, unless you've installed Haskell in a
+different directory). Instructions for changing your path are included
+in the config file. The final step in the cabal install process should
+print the location that {\cpsa} has been installed in.
+
+\subsection{Getting the Source}
+If you have trouble with \texttt{cabal}, or if you'd like extra
+features such as the {\cpsa} test suite of example protocols, you can
+download the current source distribution directly~at:
+
+\begin{center}
+  \url{http://github.com/mitre/cpsa}
+\end{center}
+
+There is a directory named \texttt{cpsa} at the top-level of the
+repository.  It contains a copy of the {\cpsa} sources downloaded and
+compiled using \texttt{cabal}.  On all platforms, to install from this
+source, change into the \texttt{cpsa} directory and type:
+
+\begin{verbatim}
+$ cabal update
+$ cabal install parallel
+$ cabal configure
+$ cabal build
+$ cabal install
+\end{verbatim}
+
+Alternatively, there are other install options described in
+\texttt{README.txt} in the \texttt{cpsa} directory.
+
+\section{Finding Documentation}
+{\cpsa} comes with documentation, but it can be difficult to locate by
+hand when the tool has been installed through cabal.  Run
+
+\texttt{\$ cpsa -h}
+
+\noindent
+to see the program's help message, including the documentation
+directory, where this manual should be found.
+
+\section{Running {\cpsa}}
+\label{sec:running}
+
+To analyze a protocol you have put in prob.scm type:
+\begin{verbatim}
+$ cpsa -o prob.txt prob.scm
+$ cpsashapes -o prob_shapes.txt prob.txt
+$ cpsagraph -o prob_shapes.xhtml prob_shapes.txt
+\end{verbatim}
+
+See Section~\ref{sec:options} for command-line options.
+
+The \texttt{cpsashapes} command is optional, but recommended; it cuts
+down {\cpsa}'s output to only show final results. Unless you're
+doing detailed debugging, using it will make the output much easier to
+read.
+
+To analyze a protocol without using the \texttt{cpsashapes} comment, type:
+\begin{verbatim}
+$ cpsa -o prob.txt prob.scm
+$ cpsagraph -o prob.xhtml prob.txt
+\end{verbatim}
+
+The .xhtml results can be opened in a web browser.
+
+\subsection{{\cpsa} Projects}\label{sec:cpsainit}
+
+A {\cpsa} project is a directory containing some {\cpsa} input files
+and items that orchestrate the use of the various {\cpsa} tools.  To
+create a project, in a fresh directory, run \texttt{cpsainit}.
+
+\begin{verbatim}
+$ mkdir project
+$ cd project
+$ cpsainit
+Created Makefile
+Created cpsa.mk
+Created Make.hs
+Created template.lisp
+\end{verbatim}
+
+The \texttt{cpsainit} will not overwrite a file if it is already
+present in the current directory.  The file \texttt{template.lisp}
+contains a starting point for writing {\cpsa} input files.  Rename the
+file to one that uses the \texttt{.scm} extension and fill in the
+holes.  The distribution provides two ways to relieve users of the
+tedium of issuing individual commands.
+
+\subsection{Using the {\cpsa} Makefile}
+
+%% \begin{figure}
+%%   \begin{quote}
+%%     \begin{verbatim}
+%% CPSAFLAGS = +RTS -M512m -RTS
+
+%% SRCS := $(wildcard *.scm) $(wildcard *.lsp)
+
+%% include cpsa.mk
+
+%% all:    $(SRCS:%.scm=%_shapes.xhtml) $(SRCS:%.scm=%.xhtml) \
+%%         $(SRCS:%.lsp=%_shapes.xhtml) $(SRCS:%.lsp=%.xhtml)
+
+%% clean:
+%%         -rm *.txt *.xhtml
+%% \end{verbatim}
+%%   \end{quote}
+%%   \caption{\texttt{Makefile}}\label{fig:makefile}
+%% \end{figure}
+
+%% The easiest way to orchestrate {\cpsa} programs is to use GNU make.
+%% The distribution comes with the file \texttt{cpsa.mk} for inclusion
+%% into your makefile.  Figure~\ref{fig:makefile} contains a sample
+%% makefile. If you cut-and-paste, be sure to convert the leading spaces
+%% in the last line into a tab character.  To analyze protocols, copy
+%% these two files into a directory containing your protocol sources, and
+%% type \texttt{make}.
+
+The easiest way to orchestrate {\cpsa} programs is to use GNU make.  A
+{\cpsa} project contains the files \texttt{Makefile} and
+\texttt{cpsa.mk}.  To analyze the problems in your project, type
+\texttt{make}.  Edit the file \texttt{Makefile} to adjust program
+flags to suit your needs.  For example, you many want to enable the
+use of multiple processors during protocol analysis as described in
+Section~\ref{sec:parallelism}.
+
+The {\cpsa} program is Emacs friendly. If you run the above makefile
+via \texttt{M-x compile}, the results will be displayed in a buffer in
+Compilation Mode. The command \texttt{C-x `} will visit the locus of
+the next error message or match (next-error) in your {\cpsa} input
+file.
+
+\subsection{Using the Haskell Makefile}
+
+This approach is designed to be easy for Windows users, who do not want
+to bother installing Cygwin or MSYS.
+
+Locate \texttt{Make.hs} in your project directory. If using Windows,
+double-click on the file and it will open up a new window with a
+prompt. On a Mac or Linux machine, run \texttt{\$ ghci Make.hs}
+
+From the \texttt{Make.hs} prompt, you can use the following commands:
+
+\begin{itemize}
+\item \texttt{build}: Run {\cpsa} on all protocols (.scm files) in the
+  directory, and produce .xhtml output files displaying the results.
+\item \texttt{clean}: Remove all {\cpsa} output files, to ensure that any
+  changes to protocol files are reflected in the output.
+\begin{itemize}
+\item Because intermediate files are used for behind-the-scenes
+  processing, it can be possible to have the results in the .xhtml
+  output files not reflect the most up-to-date protocol file
+  contents. If you make changes and don't see them reflected in the
+  output, try running \texttt{clean}. Getting into the habit of
+  running \texttt{clean} before \texttt{build} is a good idea.
+\end{itemize}
+\item \texttt{cpsa} \texttt{"\textit{protocolname}"} Run {\cpsa} on just the
+  protocol provided. Note that the file extension (.scm) should
+  \textit{not} be included in the name; if your protocol is in
+  \texttt{foo.scm}, you would run \texttt{cpsa "foo"}. Most useful if you
+  have an exceptionally large number of protocols in a single
+  directory.
+\item \texttt{:q} Quit.
+\end{itemize}
+
+\subsection{Memory usage}
+
+On large problems, {\cpsa} can consume large amounts of memory.  To
+protect against memory exhaustion, run {\cpsa} with the command-line
+options \verb|+RTS -M512m -RTS|.  The initial makefile includes these
+options by default.
+
+\subsection{Parallelism}\label{sec:parallelism}
+
+CPSA is built so it can make use of multiple processors.  To make use
+of more than one processor, start CPSA with a runtime flag that
+specifies the number of processors to be used, such as
+\verb|+RTS -N4 -RTS|.  The GHC documentation describes the \texttt{-N}
+option in detail.
diff --git a/doc/src/cpsa4manual/state-rules.scm b/doc/src/cpsa4manual/state-rules.scm
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/state-rules.scm
@@ -0,0 +1,34 @@
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
diff --git a/doc/src/cpsa4manual/state.tex b/doc/src/cpsa4manual/state.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/state.tex
@@ -0,0 +1,389 @@
+\chapter{Modeling Stateful Protocols}
+\label{ch:state}
+
+\index{stateful protocols}
+The {\cpsa} tool has the ability to also model stateful protocols:
+that is, protocols in which participants interact through messages but
+also with stateful devices the attacker is not assumed to have direct
+control of.
+
+\section{The Envelope Protocol}
+\label{sec:envelope}
+
+\index{envelope protocol}
+We use Mark Ryan's Envelope Protocol~\cite{ArapinisEtAl2011} as a
+concrete example throughout the chapter. The protocol leverages
+cryptographic mechanisms supported by a Trusted Platform Modeul (TPM)
+to allow one party to package a secret such that another party can
+either reveal the secret or prove the secret never was and never will
+be revealed, but not both.
+
+The plight of a teenager motivates the protocol.  The teenager is
+going out for the night, and her parents want to know her destination
+in case of emergency.  Chafing at the loss of privacy, she agrees to
+the following protocol.  Before leaving for the night, she writes her
+destination on a piece of paper and seals the note in an envelope.
+Upon her return, the parents can prove the secret was never revealed
+by returning the envelope unopened. Alternatively, they can open the
+envelope to learn her destination.
+
+The parents would like to learn their daughter's destination while
+still pretending that they have respected her privacy. The parents are
+thus the adversary.  The goal of the protocol is to prevent this
+deception.
+
+One implementation of this protocol uses a TPM to achieve the security
+goal.  Here we restrict our attention to a subset of the TPM's
+functionality. In particular we model the TPM as having a state
+consisting of a single ``Platform Configuration Register'' (PCR) and
+only responding to five commands.
+
+A \textsf{boot} command (re)sets the PCR to a known value.  The
+\textsf{extend} command takes a piece of data, $d$, and replaces the
+current value $s$ of the PCR state with the hash of $d$ and
+$s$, denoted $\#(d,s)$.  In fact, the form of
+\textsf{extend} that we model, which is an \textsf{extend} within an
+encrypted session, also protects against replay.  These are the only
+commands that alter the value in a PCR.
+
+The TPM provides other services that do not alter the PCR.  The
+\textsf{quote} command reports the value contained in the PCR and is
+signed in a way as to ensure its authenticity.  The \textsf{create
+  key} command causes the TPM to create an asymmetric key pair where
+the private part remains shielded within the TPM.  However, it can
+only be used for decryption when the PCR has a specific value.  The
+\textsf{decrypt} command causes the TPM to decrypt a message using
+this shielded private key, but only if the value in the PCR matches
+the constraint of the decryption key.
+
+In what follows, Alice plays the role of the teenaged daughter
+packaging the secret. Alice calls the \textsf{extend} command with a
+fresh nonce $n$ in an encrypted session.  She uses the \textsf{create
+  key} command constraining a new key $k'$ to be used only when a
+specific value is present in the PCR.  In particular, the constraining
+value $cv$ she chooses is the following:
+$$ cv = \#(\cn{\mathtt{\cn{obt}}},\#(n,s)) $$ where $\cn{obt}$ is a
+string constant and $s$ represents an arbitrary PCR value prior the
+extend command.  She then encrypts her secret $v$ with $k'$, denoted
+$\enc{v}{k'}$.
+
+Using typical message passing notation, Alice's part of the protocol
+might be represented as follows (where we temporarily ignore the
+replay protection for the \texttt{extend} command):\\
+
+\noindent
+$$
+\begin{array}{c@{{}\to{}}c@{~:~}l}
+\mathrm{A} & \mathrm{TPM} & \enc{\mathtt{\cn{ext}},n}{k}\\
+\mathrm{A} & \mathrm{TPM} & \mathtt{\cn{create}},
+\#(\mathtt{\cn{obt}},\#(n,s)) \\
+\mathrm{TPM} & \mathrm{A} & k'\\
+\mathrm{A} & \mathrm{Parent} & \enc{v}{k'}\\
+\end{array}
+$$
+%
+The parent acts as the adversary in this protocol. We assume he can
+perform all the normal Dolev-Yao operations such as encrypting and
+decrypting messages when he has the relevant key, and interacting with
+honest protocol participants. Most importantly, the parent can use the
+TPM commands available in any order with any inputs he likes. Thus he
+can extend the PCR with the string \texttt{obtain} and use the key to
+decrypt the secret.  Alternatively, he can refuse to learn the secret
+and extend the PCR with the string $\cn{ref}$ and then generate a TPM
+quote as evidence the secret will never be exposed. The goal of the
+Envelope Protocol is to ensure that once Alice has prepared the TPM
+and encrypted her secret, the parent should not be able to both
+decrypt the secret and also generate a refusal quote,
+$\enc{\cn{\mathtt{\cn{quote}}},
+  \#(\cn{\mathtt{\cn{ref}}},\#(n,s)), \enc{v}{k'}}{\fn{aik}}$.
+
+A crucial fact about the PCR role in this protocol is the
+collision-free nature of hashing, ensuring that for every $x$
+\begin{align} \label{eq:injective} \#(\mathtt{\cn{obt}},\#(n,s))
+  \quad \neq \quad \#(\mathtt{\cn{ref}}, x )
+\end{align}
+
+We represent each TPM command with a separate role that receives a
+request, consults and/or changes the state and optionally provides a
+response. To model the state of the TPM, we make use of three additional
+types of events in~\cpsa that can be specified to occur in traces:
+
+\begin{itemize}
+
+\index{init@\texttt{init}} \ttindex{obsv} \ttindex{tran}
+\item \texttt{init} events begin a sequence of states,
+\item \texttt{tran} events mark the moment when the state of a machine changes from one state to another, and
+\item \texttt{obsv} events mark a moment at which the machine's state is checked without changing it.
+\end{itemize}
+
+We use $m\!\!\to\!\!\bullet$ and $\bullet\!\!\to\!\!m$ to represent
+the reception and transmission of message $m$ respectively. Similarly,
+we use $s\!\leadsto\!\!\circ$ and $\circ\!\leadsto\!s$ to represent
+the actions of reading and writing the value $s$ to the state.  A
+\texttt{tran} event reads and then writes a state, while \texttt{init}
+writes only and \texttt{obsv} reads only.
+
+\begin{figure}
+  \begin{trivlist}\item
+    \hfil\xymatrix@R=3ex@C=1.1em{
+      &\texttt{[re-]boot}&\\
+      \ar@{->}[r]^{\cn{boot}}&\bullet\ar@{=>}[d]&\\
+          [\ar@{~>}[r]^{s}&]\circ\ar@{~>}[r]^{\cn{s}_0}&
+    }\hfil
+    \xymatrix@R=3ex@C=1.7em{
+      &\texttt{create key}&\\
+      \ar@{->}[r]^{\cn{create}, s}&\bullet\ar@{=>}[d]&\\
+      &\bullet\ar@{->}[rr]^{\enc{\cn{created},k',s}{\fn{aik}}}&&
+    }\hfil
+    \xymatrix@R=3ex@C=2em{
+      &\texttt{quote}&\\
+      \ar@{->}[r]^{\cn{quote},n}&\bullet\ar@{=>}[d]&\\
+      \ar@{~>}[r]^{s}&\circ\ar@{=>}[d]&\\
+      &\bullet\ar@{->}[rr]^{\enc{\cn{quote},s,n}{\fn{aik}}}&&
+    }\hfil\vspace{2.5ex}\item
+    \hfil\xymatrix@R=3ex@C=3.2em{
+      &&\texttt{extend}&\\
+      \ar@{->}[rr]^{\cn{sess},\fn{tpmk},\enc{\fn{esk}}{\fn{tpmk}}}
+      &&\bullet\ar@{=>}[d]&\\
+      &&\bullet\ar@{=>}[d]\ar@{->}[r]^{\cn{sess},\fn{sid}}&\\
+      \ar@{->}[rr]^{\enc{\cn{ext},n,\fn{sid}}{\fn{esk}}}&&\bullet\ar@{=>}[d]&\\
+      \ar@{~>}[rr]^{s}&&\circ\ar@{~>}[r]^{\#(n,s)}&
+    }\hfil
+    \xymatrix@R=3ex{
+      &&\texttt{decrypt}&\\
+      \ar@{->}[rr]^{\cn{dec},\enc{m}{k'}}&&\bullet\ar@{=>}[d]&\\
+      \ar@{->}[rr]^{\enc{\cn{created},k',s}{\fn{aik}}}&&\bullet\ar@{=>}[d]&\\
+      \ar@{~>}[rr]^{s}&&\circ\ar@{=>}[d]&\\
+      &&\bullet\ar@{->}[r]^{m}&
+    }\hfil
+  \end{trivlist}
+
+  \caption{TPM roles}\label{fig:TPM roles}
+\end{figure}
+
+The ``boot'' role receives the command and creates a current
+state $s$ of the known value $\cn{s}_0$.  An alternate version of boot
+(``reboot'') is needed to allow the power-cycling of the TPM; this version
+transitions the TPM state from any arbitrary state back to $\cn{s}_0$.
+
+The ``extend'' role first creates an encrypted channel by
+receiving an encrypted session key $\fn{esk}$ which is itself
+encrypted by some other secured TPM asymmetric key $tpmk$. The TPM
+replies with a random session id $sid$ to protect against replay. It
+then receives the encrypted command to extend the value $n$ into the
+PCR and updates the arbitrary state $s$ to become $\#(n,s)$.
+
+The ``create key'' role does not interact directly with the
+state. It receives the command with the argument $s$ specifying a
+state. It then replies with a signed certificate for a freshly created
+public key $k'$ that binds it to the state value $s$. The certificate
+asserts that the corresponding private key $k'^{-1}$ will only be used
+in the TPM and only when the current value of the state is $s$. This
+constraint is leveraged in the ``decrypt'' role which receives a
+message $m$ encrypted by $k'$ and a certificate for $k'$ that binds it
+to a state $s$. The TPM then consults the state (without changing it)
+to ensure it is in the correct state before performing the decryption
+and returning the message $m$.
+
+Finally, the ``quote'' role receives the command together with a
+nonce $n$. It consults the state and reports the result $s$ in a
+signed structure that binds the state to the nonce to protect against
+replay. To ensure that our sequences of state are well-founded we also
+include another TPM role that creates the initial state.
+
+We similarly formalize Alice's actions. Her access to the TPM state is
+entirely mediated via the message-based interface to the TPM, so her
+role has no state events. It is displayed in Fig.~\ref{fig:Alice role}
+
+\begin{figure}
+  \begin{trivlist}\item
+    \hfil\xymatrix@R=3ex@C=10.5em{
+      &\texttt{Alice}&\\
+      &\bullet\ar@{=>}[d]\ar@{->}[r]^{\cn{sess},tpmk,\enc{\fn{esk}}{tpmk}}&\\
+      \ar@{->}[r]^{\cn{sess},sid}&\bullet\ar@{=>}[d]&\\
+      &\bullet\ar@{=>}[d]\ar@{->}[r]^{\enc{\cn{ext},n,sid}{\fn{esk}}}&\\
+      &\bullet\ar@{=>}[d]\ar@{->}[r]^{\cn{create},
+        \#(\cn{obt},\#(n,s))}&\\
+      \ar@{->}[r]^{\enc{\cn{created},k',\#(\cn{obt},\#(n,s))}{\fn{aik}}~}&
+      \bullet\ar@{=>}[d]&\\
+      &\bullet\ar@{->}[r]^{\enc{v}{k'}}&
+    }\hfil
+  \end{trivlist}
+  \caption{Alice's role}\label{fig:Alice role}
+\end{figure}
+
+Alice begins by establishing an encrypted session with the TPM in
+order to extend a fresh value $n$ into the PCR. She then has the TPM
+create a fresh key that can only be used when the PCR contains the
+value $\#(\cn{obt},\#(n,s))$, where $s$ is whatever value was in the
+PCR immediately before Alice performed her extend command. Upon
+receiving the certificate for the freshly chosen key, she uses it to
+encrypt her secret $v$ that gives her destination for the night.
+
+The parents may then either choose to further extend the PCR with the
+value $\cn{obt}$ in order to enable the decryption of Alice's secret,
+or they can choose to extend the PCR with the value $\cn{ref}$ and get
+a quote of that new value to prove to Alice that they did not take the
+other option.
+
+\subsubsection{Modeling stateful protocols in CPSA}
+
+\ttindex{trace} The file \texttt{envelope.scm} in the examples directory
+contains the TPM-based implementation of the Envelope Protocol.  Roles
+with state events in {\cpsa} are represented by including one of the
+three types of state events in the trace: \texttt{init},
+\texttt{tran}, or \texttt{obsv}.  No special command or setting is
+needed to use state events in {\cpsa}; the tool simply regards
+non-stateful protocols as a special case of stateful ones.
+
+\index{init@\texttt{init}} \ttindex{obsv} \ttindex{tran}
+The syntax for a state event is one of: \texttt{(init} $s$\texttt{)},
+\texttt{(obsv} $s$\texttt{)}, or \texttt{(tran} $s_1, s_2$\texttt{)},
+where state values are messages.  A state event can occur within a
+trace (in a \texttt{defprotocol}) along with traditional send and
+receive events.
+
+\paragraph{Graphing stateful protocols.}
+Stateful protocols result in some additional features when graphed.
+See Figure~\ref{fig:envelope skel10} for an example skeleton in
+\texttt{envelope.xhtml}.  Here, you will notice three elements that may be
+unfamiliar: a grey node, an orange node, and a blue arrow.  State
+events are graphed as either gray (when explained) or orange (when
+unexplained).  Initialization events cannot be unexplained, and
+observation or transition events are explained by another state event
+producing the required current state.  However, the existence of a
+state event producing state $s$ does not explain the existence of a
+state event requiring state $s$, there must be a connection noted
+between the two that the state required is produced at this specific
+earlier event.
+
+\begin{figure}
+\centering
+\includegraphics[scale=0.7]{envelope_skel10}
+\caption[Graph of a stateful skeleton]{Graph of a stateful skeleton from the Envelope Protocol analysis.  Note the orange node, the gray node, and the blue arrow.}
+\label{fig:envelope skel10}
+\end{figure}
+
+\ttindex{leadsto} This relationship is noted in a \texttt{leadsto}
+field in a \texttt{defskeleton}, and is displayed when graphed as
+a blue arrow.  Note that the graphing program will only display a
+blue arrow when the two related state events are in distinct strands.
+If such a relation is determined between two state events in the same
+strand, the tool will note it in the \texttt{defskeleton} output, but
+the arrow will not show up in the graph.
+
+\begin{figure}
+  \centering\tabcolsep=2em
+    \begin{tabular}{cc}%\SelectTips{cm}{}
+      \xymatrix@R=8ex@C=.7em{
+        &\circ\ar@{~>}[dr]\ar@{~>}[dl]\\ \texttt{tran}&=&\texttt{tran}
+      } &
+      \xymatrix@R=8ex@C=.7em{
+        &\circ\ar@{~>}[dr]\ar@{~>}[dl]\\ \texttt{obsv} & \leftarrow & \texttt{tran}
+      }
+%\xymatrix@R=2.5ex@C=2em{
+%        \tran(\cdot,t)\ar@{~>}[dr]\ar@{->}[dd]\\ &\tran(t,\cdot)
+%        \ar@{<~}[dl]^(.3){\mbox{~}}\\ \obsv t\\ }
+      \\ (1)& (2)
+    \end{tabular}
+  \caption[State-respecting semantics]{State-respecting semantics.
+    (1) State produced (either from a \texttt{tran} or \texttt{init}
+    event) cannot be consumed by two distinct transitions.  (2)
+    Observation occurs after the state observed is produced but before
+    that state is consumed by a subsequent
+    transition.}\label{fig:sequential semantics}
+\end{figure}
+
+Two important semantic rules are enforced by the tool regarding state.
+First, state produced can only be consumed by a unique transition.  In
+other words, state evolves in a linear fashion, and old states are not
+available for modification.  Second, when a state is observed, and
+that state is also consumed by a transition, the observation must
+occur before the transition.  See Figure~\ref{fig:sequential semantics}.
+
+\subsection{Macros for Simplifying Complex Protocols}
+\label{sec:macros}
+
+Users will often find, as they try to model more and more complicated
+protocols, that models of protocols created by hand are cumbersome to
+maintain.  For instance, one might have a particular encrypted message
+component referenced in several roles in a model, and the user may
+decide they should modify their model of that message.  The user would
+normally have to find each instance of the model and update them all:
+a repetitive task that would best be handled by computers.
+
+The envelope protocol includes such a feature in a couple of places.
+For example, we chose to model TPM register extension using the
+\texttt{hash} function symbol, and this modeling choice affects many
+protocol roles.
+
+\ttindex{defmacro} \index{macros}
+The {\cpsa} tool includes a macro functionality that helps with this
+kind of challenge, and the \texttt{envelope.scm} example also serves
+as an example of macro use.
+
+To define a macro in a {\cpsa} input file, use the \texttt{defmacro}
+keyword in an S-expression.  The \texttt{envelope.scm} file in the
+examples directory uses the following two macros:
+
+\begin{verbatim}
+;;; Encoding of a PCR extend operation
+(defmacro (extend val old)
+  (hash val old))
+
+;; This is the refusal token
+(defmacro (refuse n pcr v k aik)
+  (enc "quote" (extend "refuse" (extend n pcr)) (enc v k) aik))
+\end{verbatim}
+
+The first input to the defmacro defines the format that will trigger
+the macro.  In this case, the first macro is defined for an
+S-expression with keyword \texttt{extend} and two additional inputs,
+while the second macro is defined for an S-expression with the keyword
+\texttt{refuse} and five additional inputs.
+
+The second input to each defmacro describes what the macro should be
+replaced with.  Symbols that exactly match the subsequent symbols in
+the first input are interpreted as standing for the inputs when the
+macro is used.  So for instance \texttt{(refuse a b c d e)} would be
+replaced by
+
+\begin{verbatim}
+(enc "quote" (extend "refuse" (extend a b)) (env c d) e)
+\end{verbatim}
+
+\noindent
+which in turn would be replaced by
+
+\begin{verbatim}
+(enc "quote" (hash "refuse" (extend a b)) (env c d) e)
+\end{verbatim}
+
+\noindent
+\index{macros!nesting} Macros can call on other macros, (as in the
+\texttt{refuse} macro example here) but there is a depth limit to the
+amount of recursion that this can entail.
+
+\ttindexalt{\^}{(macro splicing)}
+\index{macros!splicing} Normally a \texttt{defmacro} will
+replace a symbol with a single S-expression, but the \texttt{\^}
+(splice) keyword can be used to indicate that a macro should be
+replaced with more than one S-expression.
+
+A user might use this feature to replicate a sequence of events or even
+the entire variables and trace of a \texttt{defrole}.  For instance:
+
+\begin{verbatim}
+(defmacro (handshake n a b)
+  (^ (send (enc "hello" a b n (pubk b)))
+     (recv (enc "hello-received" a n (pubk a)))))
+\end{verbatim}
+
+Note that the pre-processor actually handles the splice keyword as a
+separate pre-processing step after macro expansion.  For this reason,
+use of \texttt{\^} outside of macros can produce unanticipated behavior.
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "cpsa4manual"
+%%% End:
diff --git a/doc/src/cpsa4manual/strands.mp b/doc/src/cpsa4manual/strands.mp
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/strands.mp
@@ -0,0 +1,129 @@
+% Strand macros
+
+%% John D. Ramsdell--May 2008,
+%% The MITRE Corporation, Bedford, MA.
+
+% For simple drawings, use the strand macro.
+
+% Use these macros when drawing strand edges.  The cmstrands package
+% redefines these two macros.
+
+% Draw a message edge
+def drawmsg(expr p) =
+  drawarrow p;
+enddef;
+
+% Draw a strand succession edge.  The arrow head is drawn, not filled.
+% Based on "Hints and Tricks" in TUGboat, Volume 19 (1998), No. 2, by
+% Jeremy Gibbons.
+def drawsucc(expr p) =
+  draw arrowhead p;
+  path q;
+  q := fullcircle scaled (2*ahlength)
+    shifted (point (length p) of p);
+  numeric tp, tq;
+  (tp,tq) = p intersectiontimes q;
+  draw subpath (0, tp) of p;
+enddef;
+
+% Draw a message edge with a dashed line.  Used sometimes for when the
+% source and the distination message differ.
+def drawdashedmsg(expr p) =
+  drawarrow p dashed evenly scaled 3;
+enddef;
+
+% Strand drawing macros
+
+% Box the nodes of a strand.  The origin of the strand is the center
+% of the last strand node.  The name is a picture for the first node,
+% and node is a picture for the successive nodes.
+vardef boxstrand@#(expr height, origin, name, node) =
+  boxit.@#1(name);
+  for i = 2 upto height:
+    boxit.@#[i](node);
+    xpart @#[i-1].s = xpart @#[i].n;
+  endfor;
+  @#[height].c = origin;
+enddef;
+
+% Space a pair of strand nodes using the given height and separation
+% delta.
+vardef spacestrand@#(expr pos, delta) =
+  ypart @#[pos].s = delta + ypart @#[pos+1].n;
+enddef;
+
+% Layout strand by making the distance been successive nodes the given
+% separation delta.
+vardef layoutstrand@#(expr height, delta) =
+  for i = 1 upto height - 1:
+    spacestrand@#(i, delta);
+  endfor;
+enddef;
+
+% Link the nodes of a strand.
+vardef linkstrand@#(expr height) =
+  for i = 2 upto height:
+    drawsucc(@#[i-1].s -- @#[i].n);
+  endfor;
+enddef;
+
+% Draw a strand with equally spaced nodes.  The origin of the strand
+% is the center of the last strand node.  The the distance between
+% successive nodes is delta.  The name is a picture for the first
+% node, and node is a picture for the successive nodes.
+
+% A strand is drawn bottom up because the size of the label in the
+% first box may vary.
+
+vardef strand@#(expr height, origin, delta, name, node) =
+  boxstrand@#(height, origin, name, node);
+  layoutstrand@#(height, delta);
+  for i = height downto 1:
+    draw pic @#[i];
+  endfor;
+  linkstrand@#(height);
+enddef;
+
+% layout a strand but don't draw it.
+vardef phantomstrand@#(expr height, origin, delta, name, node) =
+  boxstrand@#(height, origin, name, node);
+  layoutstrand@#(height, delta);
+  for i = height downto 1:
+    fixsize(@#[i]);
+  endfor;
+enddef;
+
+% Event macros used while displaying roles.
+
+% Draw an inbound term at a given strand position.
+% The width is the length of the first arrow.
+vardef inbnd@#(expr pos, width, term) =
+  pair d;
+  d = (xpart @#[1].e + width, ypart @#[pos].e);
+  drawmsg(d .. @#[pos].e);
+  label.rt(term, d);
+enddef;
+
+% Draw an outbound term at a given strand position.
+% The width is the length of the first arrow.
+vardef outbnd@#(expr pos, width, term) =
+  pair d;
+  d = (xpart @#[1].e + width, ypart @#[pos].e);
+  drawmsg(@#[pos].e .. d);
+  label.rt(term, d);
+enddef;
+
+% Reverse versions:
+vardef rinbnd@#(expr pos, width, term) =
+  pair d;
+  d = (xpart @#[1].w - width, ypart @#[pos].w);
+  drawmsg(d .. @#[pos].w);
+  label.lft(term, d);
+enddef;
+
+vardef routbnd@#(expr pos, width, term) =
+  pair d;
+  d = (xpart @#[1].w - width, ypart @#[pos].w);
+  drawmsg(@#[pos].w .. d);
+  label.lft(term, d);
+enddef;
diff --git a/doc/src/cpsa4manual/termtree.mp b/doc/src/cpsa4manual/termtree.mp
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/termtree.mp
@@ -0,0 +1,60 @@
+filenametemplate "%j-%c.mps";
+
+verbatimtex
+\documentclass[12pt]{article}
+\newcommand{\enc}{\ensuremath{\mathsf{enc}}}
+\newcommand{\pair}{\ensuremath{\mathsf{pair}}}
+\newcommand{\pubk}{\ensuremath{\mathsf{pubk}}}
+%\newcommand{\enc}{\ensuremath{\{\!|\cdot|\!\}_{(\cdot)}}}
+%\newcommand{\pair}{\ensuremath{(\cdot,\cdot)}}
+%\newcommand{\pubk}{\ensuremath{K_{(\cdot)}}}
+\begin{document}
+etex
+
+beginfig(0);
+  h = -1cm;
+  w = 1cm;
+  z0 = origin;
+  z1 = z0 + (-1.5w, h);
+  z2 = z1 + (-.5w, h);
+  z3 = z1 + (.5w, h);
+  z4 = z3 + (0, h);
+  z5 = z0 + (1.5w, h);
+  z6 = z5 + (-w, h);
+  z7 = z6 + (-.5w, h);
+  z8 = z6 + (.5w, h);
+  z9 = z8 + (0, h);
+  z10 = z5 + (w, h);
+  z11 = z10 + (0, h);
+
+  draw z0--z1;
+  draw z1--z2;
+  draw z1--z3;
+  draw z3--z4;
+  draw z0--z5;
+  draw z5--z6;
+  draw z6--z7;
+  draw z6--z8;
+  draw z8--z9;
+  draw z5--z10;
+  draw z10--z11;
+
+  pickup pencircle scaled 4pt;
+  dotlabel.rt(btex ~~\pair etex, z0);
+  dotlabel.rt(btex ~~\enc etex, z1);
+  dotlabel.rt(btex ~$x$ etex, z2);
+  dotlabel.rt(btex ~\pubk etex, z3);
+  dotlabel.rt(btex ~$a$ etex, z4);
+  dotlabel.rt(btex ~\enc etex, z5);
+  dotlabel.rt(btex ~\enc etex, z6);
+  dotlabel.rt(btex ~$x$ etex, z7);
+  dotlabel.rt(btex ~\pubk etex, z8);
+  dotlabel.rt(btex ~$a$ etex, z9);
+  dotlabel.rt(btex ~\pubk etex, z10);
+  dotlabel.rt(btex ~$b$ etex, z11);
+endfig;
+
+verbatimtex
+\end{document}
+etex
+bye;
diff --git a/doc/src/cpsa4manual/tools.tex b/doc/src/cpsa4manual/tools.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/tools.tex
@@ -0,0 +1,125 @@
+\chapter{CPSA Tools}
+\label{ch:tools}
+
+This chapter describes programs that complement the {\cpsa} program.
+All the tools accept a \texttt{--help} option that describes the
+tool's usage and a \texttt{--version} option that prints the version
+of the tool.
+
+\begin{description}
+\item[\texttt{cpsa4init}:] Populates a directory with files used to
+  create a {\cpsa} project.  See Section~\ref{sec:cpsainit}.
+
+\item[\texttt{cpsa4shape}:] Cuts down {\cpsa}'s output to only show
+  final results---the shapes.
+
+\item[\texttt{cpsa4graph}:] Constructs an \textsc{xhtml} document that
+  visualizes the output of a {\cpsa} run or the output of
+  \texttt{cpsa4shape}.
+
+\item[\texttt{cpsa4goalsat}:]  Prints the labels of skeletons that do
+  not satisfy a \texttt{defgoal}.  See
+  Section~\ref{sec:goalsoverview}.  For each point of view skeleton
+  specified by a goal, the program prints a list.  The first element
+  of the list is the label of the point of view skeleton.  The
+  remaining elements of the list are labels of the skeletons that do
+  not satisfy the goal.
+
+\item[\texttt{cpsa4prot}:] Translates protocols expressed in Alice and
+  Bob notation into {\cpsa}'s \texttt{defprotocol} syntax.  It
+  translates \texttt{defprot} forms, and passes all else through
+  unchanged.  The syntax of \texttt{defprot} forms is presented in
+  Table~\ref{tab:defprot}.
+
+  The basic layout of a \texttt{defprot} is a chronological
+  description of things that happen in the intended execution of the
+  protocol.  The s-expression \texttt{(msg A B M)} is used to indicate
+  that role \texttt{A} sends \texttt{M}, while role \texttt{B}
+  receives it.  Other features of \texttt{cpsa4prot} are given in Table~\ref{tab:defprot_commands}.
+
+  See Figure~\ref{fig:defprot} for an
+  example.
+
+\item[\texttt{cpsa4sas}:]  Generates Shape Analysis Sentences from the
+  output of {\cpsa}.  See Section~\ref{sec:sas}.
+
+\item[\texttt{cpsa4pp}:] Pretty prints {\cpsa} input.  It can also be
+  used to translate S-expression syntax into \textsc{json} for use
+  with tools written in other languages such as Python.
+
+\item[\texttt{cpsa42latex}:] Translates {\cpsa} macros specifying
+  message formats into equivalent {\LaTeX} macros. Algebra primitives
+  such as \texttt{enc} and \texttt{pubk} are mapped to unspecified
+  {\LaTeX} macros with the same name and arity (sometimes with an
+  optional tag), allowing the user to easily customize how they would
+  like these primitives to be typeset.
+
+\item[\texttt{cpsa4json}:]  Translates {\cpsa} input in \textsc{json}
+  syntax into S-expression syntax.
+
+\item[\texttt{cpsa4diff}:]  Compares the skeletons in two files.  If a
+  difference is detected, it prints the first difference and exits.
+
+\end{description}
+
+\begin{table}
+\begin{center}\scshape
+\begin{tabular}{rcl}
+prot&$\leftarrow$&(\sym{defprot} id alg vars form$\ast$ rule$\ast$ prot-alist)
+\\ vars&$\leftarrow$&(\sym{vars} vdecl$\ast$)
+\\ form&$\leftarrow$&(\sym{msg} role role chmsg)
+\\ &$\mid$&(\sym{msg} role role chmsg chmsg)
+\\ &$\mid$&(\sym{from} role chmsg)
+\\ &$\mid$&(\sym{to} role chmsg)
+\\ &$\mid$&(\sym{assume} role role-alist)
+\\ &$\mid$&(\sym{clone} role role)
+\\ chmmsg&$\leftarrow$&(\sym{chmsg} id term) $\mid$ (\sym{chmsg} term)
+$\mid$ term
+\end{tabular}
+\end{center}
+\caption{\texttt{defprot} Grammar}\label{tab:defprot}
+\end{table}
+
+\begin{table}
+  \begin{center}
+    \begin{tabular}{c|c}
+      Form & Meaning \\
+      \hline
+      (\texttt{msg A B M}) & \texttt{A} sends \texttt{M} to \texttt{B} \\
+      (\texttt{msg A B M N}) & \texttt{A} sends \texttt{M} and \texttt{B} receives it as \texttt{N}\\
+      (\texttt{from A M}) & \texttt{A} sends \texttt{M}\\
+      (\texttt{to A M}) & \texttt{A} receives \texttt{M}\\
+      (\texttt{assume A M}) & Add the assumption \texttt{M} to the role \texttt{A}\\
+      (\texttt{clone A B}) & Create a role \texttt{B} which includes all behavior described for \texttt{A} to this point.
+    \end{tabular}
+  \end{center}
+  \caption{\texttt{defprot} commands}\label{tab:defprot_commands}
+  \end{table}
+
+\begin{figure}
+  \begin{quote}
+    \begin{verbatim}
+$ cat blanchet.prot
+(defprot blanchet basic
+  (vars (a b akey) (s skey) (d data))
+  (msg init resp (enc (enc s (invk a)) b))
+  (msg resp init (enc d s))
+  (assume init (uniq-orig s))
+  (assume resp (uniq-orig d))
+  (comment "Blanchet's protocol"))
+$ cpsa4prot blanchet.prot
+(defprotocol blanchet basic
+  (defrole init
+    (vars (a b akey) (s skey) (d data))
+    (trace (send (enc (enc s (invk a)) b)) (recv (enc d s)))
+    (uniq-orig s))
+  (defrole resp
+    (vars (a b akey) (s skey) (d data))
+    (trace (recv (enc (enc s (invk a)) b)) (send (enc d s)))
+    (uniq-orig d))
+  (comment "Blanchet's protocol"))
+$
+    \end{verbatim}
+  \end{quote}
+\caption{\texttt{defprot} Example}\label{fig:defprot}
+\end{figure}
diff --git a/doc/src/cpsa4manual/trace_constraints.tex b/doc/src/cpsa4manual/trace_constraints.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/trace_constraints.tex
@@ -0,0 +1,20 @@
+
+\chapter{Trace constraints}
+\label{chap:trace:constraints}
+
+In some cases, one wants to declare properties that all of the
+``real'' instances of a role must satisfy.  For instance, possibly two
+parameters will never receive the same value, e.g.~because a server is
+required to check that the client name in a transaction is different
+from its own name.  {\cpsa} presents several ways of ensuring such
+constraints, some of which may be logically indistinguishable as far
+as {\cpsa} is concerned, while representing different operational
+consequences for other tools, such as the Zappa {\cpsa}-to-Rust
+compiler.
+
+%%  Must include:  rely; guarantee; cheq
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "cpsa4manual"
+%%% End:
diff --git a/doc/src/cpsa4manual/troubleshooting.tex b/doc/src/cpsa4manual/troubleshooting.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsa4manual/troubleshooting.tex
@@ -0,0 +1,447 @@
+\chapter {Troubleshooting}
+\label{ch:troubleshooting}
+
+The {\cpsa} tool is a complicated one and many errors are possible in
+its use.  In this chapter we discuss these errors, from the simplest
+to the most complex, and offer suggestions as to how to resolve them.
+
+\section{Non-termination}
+\label{sec:bounds}
+
+The {\cpsa} tool is not guaranteed to complete its search on all
+well-formed inputs.  The problem space {\cpsa} attempts to perform
+includes some Turing-undecidable problems.
+
+Because of this, the tool has two bail-out conditions that users should be
+aware of:
+
+\begin{itemize}
+
+\index{strand bound}
+\item The {\bf strand bound} causes the tool to abort its analysis if any
+skeleton it analyzes has more strands than the bound.  By default, the strand
+bound is 12.
+
+\index{step limit}
+\item The {\bf step limit} causes the tool to abort its analysis if during
+the analysis of a single input \texttt{defskeleton} or \texttt{defgoal}, the
+number of skeletons it processes exceeds the limit.  By default, the step limit
+is 2000.
+
+\index{depth limit}
+\item The {\bf depth limit} causes the tool to not analyze skeletons
+  more steps away from the initial point of view than the bound.
+  There is no depth limit by default.  Skeletons that are unrealized and not
+  analyzed due to the depth limit are marked with ``\texttt{(fringe)}''.
+
+\end{itemize}
+
+If you execute an analysis and the tool says ``Strand bound exceeded''
+or ``Step limit reached,'' then that bail-out condition has come into play.
+This may indicate an analysis that would never terminate, but it may also be
+the case that the strand bound or step limit is too small, and a larger one will
+enable the analysis to complete.
+
+Unlike the strand bound and the step limit, the depth limit never
+triggers an error condition, and can thus be useful for multi-skeleton
+analyses in which one of the earlier skeletons would otherwise have a
+non-terminating analysis.
+
+The step limit, depth limit, and strand bound can be adjusted through the
+\texttt{limit}, \texttt{depth}, and \texttt{bound} options, respectively.  See
+Section~\ref{sec:options}.
+
+\index{interrupting}
+Note that sometimes, a user may become impatient waiting for an
+analysis to either complete or bail out.  When this happens, the user should
+not hesitate to interrupt the tool; the tool will output a partial result that can
+be graphed so the user can examing the analysis done so far.
+
+An analysis that doesn't terminate does not necessarily represent an
+insecure protocol, it may just indicate a protocol where a more clever
+analysis is required than {\cpsa}'s automated one.
+
+\subsection{Tweaking the search}
+There are cases in which the default {\cpsa} analysis does not
+terminate, but a non-default analysis would terminate.  The tool has
+several settings that influence the search but can be tweaked:
+
+\begin{itemize}
+\index{try-old-strands option}
+\index{reverse-nodes option}
+\index{options!try-old-strands}
+\index{options!reverse-nodes}
+\item {\bf Node precedence.}  In a skeleton with multiple unrealized
+  receptions, the tool will, by default, focus on the topmost
+  unrealized node of the rightmost strand that contains an unrealized
+  node.  If you find that an analysis gets into a large search space
+  due to exploring those unrealized receptions first, you could alter
+  this order with the \texttt{reverse-nodes} or
+  \texttt{try-old-strands} options.  The latter will prioritize the
+  leftmost strands over the rightmost, while the former will
+  prioritize the bottom-most unrealized node in the strand rather than
+  the topmost.
+
+\index{check-nonces option}
+\index{options!check-nonces}
+\item {\bf Critical term precedence.}  Occasionally, a reception will
+  arise that is unrealized and multiple critical terms are available.
+  In particular, there are cases where a term contains both a
+  hard-to-explain encryption and a restricted nonce.  For instance, in
+  the Kerberos protocol, the ticket $\enc{k,a,b}{SK(b,s)}$ can serve
+  as both a critical encryption (because $SK(b,s)$ may be declared
+  non-originating) and a critical term (because $k$ is uniquely
+  originating).  By default, {\cpsa} will treat the encryption as the
+  critical term because this tends to lead to learning more in fewer
+  steps, but this choice can be reversed by using the
+  \texttt{check-nonces} option.
+
+\index{priority}
+\item {\bf Priority.}  The tool contains an ability to declare a
+  priority for certain receptions that differs from the default.
+  Priority takes precedence over all other search orderings.  See
+  Section~\ref{sec:decl_syntax} for the format requirements for
+  declaring priorities, and the \texttt{priority\_test.scm} example in the
+  examples directory.
+
+  Note that the default priority is 5, and priority 0 indicates that
+  the tool should never bother solving tests at those nodes.  This may
+  be of use, for instance, if solving one particular node leads to
+  infinite analysis, but other nodes would result in a quick
+  determination that a skeleton is dead.
+\end{itemize}
+
+\section{Error messages}
+\label{sec:errors}
+
+In this section, we provide an alphabetical listing of error messages
+/ failures that may arise during {\cpsa} execution.  If you get an error
+message not included here, it likely represents a bug and should be reported
+to the tool maintainers.
+
+\begin{itemize}
+\item \textbf{``[ASSERT FAILED] [...]''}.  This kind of error should
+  not occur.  If you see this happen, please contact the tool maintainers
+  and make a bug report!
+
+\item \textbf{``Aborting after applying 500 rules and more are
+  applicable''}.  This most likely indicates a circular use of rules.
+
+\item \textbf{``Algebra.absenceSubst: bad absence assertion''} or
+  \textbf{``Algebra.nullifyOne: unexpected pattern''} The
+  \texttt{absent} declaration must be declared on a pair where the
+  first element is an \scap{rndx} variable and the second element is either
+  an exponent or a \scap{base} term.  These errors should not occur if you
+  did not give {\cpsa} an input with an absent declaration.
+
+\item \textbf{``Algebra.inv: Cannot invert a variable of sort mesg''}.
+  Variables of the \texttt{mesg} sort should never be used as the key
+  in an encryption.  {\cpsa} uses a single function symbol to represent
+  both symmetric and asymmetric encryption, and when the key is a variable
+  of sort \texttt{mesg}, it is ambiguous which is meant.  As a result,
+  it is unclear what the decryption key would be for such a message.  When
+  {\cpsa} tries to calculate the decryption key when the encryption key
+  is a variable of sort \texttt{mesg}, this error is produced.
+
+\item \textbf{``Atom not unique at node''}.  This occurs when a
+  formula has been specified including a \texttt{uniq-at} predicate in
+  the antecedent that is untrue.
+
+\item \textbf{``Bad char [...]''}.  This error message comes from a
+  low-level parser trying to understand S-expressions.  When parsing
+  an S-expression, any non-whitespace that isn't a parenthesis is an
+  ``atom'' but we expect atoms to be symbols, numbers, or quoted
+  strings, and only certain characters are allowed in these.  An atom
+  that starts with a digit is expected to be a number, for instance, so
+  subsequent non-digits will cause an error of this kind.  The characters
+  allowed in symbols include all alphanumeric characters and the following
+  punctuation marks: \verb|+, -, *, /, <, =, >, !, ?, :, $,|  \verb|%, _, &, ~, ^|.
+
+\item \textbf{``Bad height'' / ``Bad position in role'' / ``Negative
+  position in role''}.  A \texttt{defstrand} includes a specification
+  of a height (the length of the instance) but that height must be
+  positive and must not exceed the length of the role.
+
+\item \textbf{``Bad str-prec''}.  Your goal included a
+  \texttt{str-prec} predicate among node variables associated with
+  different roles.  In other words, your formula has attempted to make
+  a single strand that includes events from distinct roles.
+
+\item \textbf{``Close of unopened list''}.  Your input has an erroneous
+  close-paren.
+
+\item \textbf{``Disallowed bare exponent''}.  See Section~\ref{sec:dh}.
+  The tool requires that within roles and skeletons, exponents occur only
+  inside an exponentiation function.
+
+\item \textbf{``Domain does not match range''}.  This error message
+  occurs when {\cpsa} is trying to understand the variable assignment
+  you have specified in a \texttt{defstrand}.  You may have defined
+  the value of a parameter more than once, or your definition may have
+  a type mismatch.  For instance if $a$ is a parameter role expected
+  to be of the name type, and you declare $t$ to be a text variable,
+  then including \texttt{(a t)} in a defstrand will produce this
+  error.
+
+\item \textbf{``Duplicate role [...] in protocol [...]''}.  Fairly
+  self-explanatory: the roles in a protocol must have distinct names.
+  This error occurs if you have two protocols with the same name.
+
+\item \textbf{``Duplicate variable declaration for [...]''}.  Fairly
+  self-explanatory: within any \texttt{vars} statement, any symbol may
+  be used for a variable name, but each variable name can be declared only once.
+
+\item \textbf{``End of input in string''}.  You included a quote-delimited
+  string but didn't close it before the end of the input file.
+
+\item \textbf{``Equals not allowed in antecedent''}.  The \texttt{equals}
+  predicate may only be used on the conclusion side of a \texttt{defgoal}.
+
+\item \textbf{``Expansion limit exceeded''}.  This most likely indicates
+  a circular use of macros.  The limit of expansion of a macro within a macro is
+  hard-coded in the tool as depth 1000.
+
+\item \textbf{``Expecting [...] to be [a/an ...]''}.  You have a type
+  error in your use of a function symbol.  For instance if
+  \texttt{(pubk a)} is to be loaded within a particular variable
+  declaration scope, the $a$ variable should be of the $\scap{name}$
+  sort.
+
+\item \textbf{``Expecting a node variable'' / ``Expecting an algebra
+  term''}.  Certain predicates within a \texttt{defgoal} expect one of
+  their inputs to be a declared node variable (or to be a non-node
+  variable).  If a variable used in such an input is declared
+  otherwise, this error message is produced.
+
+\item \textbf{``Expecting an atom''}.  Certain declarations, in particular
+  the \texttt{uniq-orig}, \texttt{uniq-gen}, and \texttt{non-orig} ones,
+  are expected to be used on atomic terms rather than compound ones.
+
+\item \textbf{``Expecting terms in algebra [...]''}.  The tool
+  actually expects to know the message algebra to use up front, before
+  it begins parsing.  The algebra is the basic one by default, or you
+  may specify through a command-line argument or a herald to use the
+  Diffie-Hellman algebra.  Each \texttt{defprotocol} in the input
+  specifies an algebra to use, and this error occurs when that algebra
+  doesn't match the one {\cpsa} is prepared to parse.  To resolve:
+  check that you aren't requesting the wrong algebra, and check that
+  you have properly spelled the name of the algebra in your
+  \texttt{defprotocol}.
+
+\item \textbf{``Identifier [...] unknown''}.  This is a relatively common
+  user-caused error that occurs when you try to use a variable not declared
+  in your \texttt{vars} declaration.
+
+\item \textbf{``Include depth exceeded with file [...]''}.  Most
+  likely, this indicates a circular use of the \texttt{include}
+  command.  The limit of inclusion within an included file is depth
+  16.
+
+\item \textbf{``Keyword [...] unknown''}.  The tool was expecting the symbol
+  to specify an algebra function symbol, but it didn't match any of the available
+  ones.  This most commonly indicates that the user forgot to include a
+  function symbol name at the beginning of a list when describing a term.  One of
+  the most common forms of this mistake is to include \texttt{(send (a b))} in
+  a trace of a role, when the user intended to model the sending of the pair $(a,b)$.
+  The proper input would be \texttt{(send (cat a b))}.
+
+  Because of this type of mistake, it is recommended to avoid using variables
+  in your model that are the same as function symbol names such as
+  ``ltk'' or ``pubk''.
+
+\item \textbf{``In a rule equality check, cannot find a binding for
+  some variable''}.  An equality in a rule is receiving a variable
+  that has not been bound by a length or parameter predicate.  Try
+  moving the equality to the end of the conjunction in which it
+  occurs.
+
+\item \textbf{``In rule [...], parameter predicate for [...] did not
+  get a strand''}.  This message occurs when a strand variable is not
+  bound by a length predicate.
+
+\item \textbf{``In rule [...], [...] did not get a strand''}.
+  This message occurs when a strand variable is not bound by a length
+  predicate.
+
+\item \textbf{``In rule [...], [...] did not get a term}.  This
+  message occurs when an algebra variable is not bound by a parameter
+  predicate.
+
+\item \textbf{``Malformed [...]''}.  Generally speaking, this indicates
+  a syntax error.  Consult the grammar in Chapter~\ref{ch:input} for the
+  syntax requirements for the type of object the tool claims was malformed.
+  Double-check that you have spelled required keywords correctly, and that
+  your parentheses are matched.
+
+\item \textbf{``Malformed association list''}.  This refers to one of
+  the ``-alist'' symbols in the grammar; these may occur in skeletons,
+  goals, protocols, or roles.
+
+  Association lists are lists of S-expressions, each of which is a
+  list that starts with a symbol.  This error would occur if you had,
+  for instance, a symbol or a number, or an S-expression starting with
+  a number as an input to a \texttt{defrole} or \texttt{defskeleton}.
+
+\item \textbf{``Malformed input''}.  Top level S-expressions in your
+  input file must be one of the following: \texttt{defprotocol,
+    defskeleton, defgoal, comment,} or \texttt{herald}.  The tool also
+  recognizes \texttt{defpreskeleton} as a synonym for
+  \texttt{defskeleton}.  If you have an S-expression at the top level
+  that is other than one of these, this is the error message you will
+  see.
+
+\item \textbf{``Malformed pair -- nodes in same strand''}.  In a \texttt{defskeleton}
+  you are prohibited from specifying orderings between nodes in the same strand.
+
+  This is not the case for \texttt{leadsto} relationships.
+
+\item \textbf{``No strands''}.  Your \texttt{defskeleton} did not include
+  any strands at all; it must include at least one.
+
+\item \textbf{``Node occurs in more than one role predicate''}.  Node variables
+  in a goal must occur within a role position predicate, but should not occur within
+  more than one within their defined scope.
+
+\item \textbf{``Priority declaration disallowed on [...]''}.  Prioritization
+  has no effect except on events that need an explanation.  If you try to
+  change the default priority of a send or state initialization event, this
+  is assumed to be a mistake and the tool produces this error.
+
+\item \textbf{``Protocol [...] unknown''}.  This error occurs when you
+  have a \texttt{defskeleton} or \texttt{defgoal} with a protocol name
+  not matching any \texttt{defprotocol} so far present in the file.
+
+\item \textbf{``Role [...] not found in [...]''}.  You included a
+  \texttt{defstrand} referencing a role that does not exist in the
+  protocol definition.
+
+\item \textbf{``Role in parameter pred differs from role position
+  pred''}.  A node variable in a formula should occur in a role
+  position predicate but may also occur in node parameter predicates.
+  However, node parameter predicates for a given node variable should
+  match the role of the role position predicate the variable occurs
+  in.
+
+\item \textbf{``Role not well formed: role trace is a prefix of a listener''}.  {\cpsa}
+  disallows the use of roles that begin with the reception of some
+  message followed by the transmission of that same message, because
+  there is an ambiguity as to whether an instance is a listener or an
+  instance of a protocol role.  This should not be a problem because
+  beginning a role in this manner is quite unusual, but if it is
+  necessary to you to do so we recommend the reception be paired with
+  a tag constant such as \texttt{(cat "regular role" [...])}.
+
+\item \textbf{``Role not well formed: non-orig [...] carried''}.  The \texttt{non-orig}
+  declaration specifies that a certain atomic value not be carried
+  (see Section~\ref{sec:secrecy_assumptions}).  You have made such a declaration but a
+  plain (full-height) instance of your role violates the rule.
+
+  \item \textbf{``Role not well formed: uniq-orig [...] doesn't
+    originate''}.  The \texttt{uniq-orig} declaration states not only
+  that the declared value originates on a regular strand uniquely (see
+  Section~\ref{sec:secrecy_assumptions}), but also states that the
+  apparent origination point is the unique origination point of that
+  value.  As such, you may only use the \texttt{uniq-orig} declaration
+  on a value that does originate somewhere.  If you declare a value
+  \texttt{uniq-orig} on a role but it does not originate on that role,
+  you get this error.
+
+\item \textbf{``Role not well formed: variable [...] not acquired''}.
+  Variables of the $\scap{mesg}$ sort must be ``acquired'' when used
+  in roles.  This means that the first occurrence of the variable must
+  be a \emph{carried} occurrence in a reception event.  See
+  Section~\ref{sec:secrecy_assumptions} fr an explanation of
+  ``carried.''
+
+\item \textbf{``Role not well formed: variable [...] not obtained''}.
+  Variables of the $\scap{base}$ or $\scap{expr}$ sort must be
+  ``obtained'' when used in roles, meaning that the first occurrence
+  must be in a reception.
+
+\item \textbf{``[Role / Skeleton] not well formed: inequality
+  conditions violated''}.  A \texttt{neq} declaration is false where
+  it is first declared: in a role or skeleton definition.
+
+\item \textbf{``[Role / Skeleton] not well formed: lt declarations form a cycle''}.  The
+  \texttt{lt} declarations present in a role or in a skeleton are already violated in
+  the role or skeleton definition.
+
+\item \textbf{``[Role / Skeleton] not well formed: subsort requirements violated''}.  The
+  \texttt{subsort} declarations present in the role or skeleton being defined are already
+  violated.
+
+\item \textbf{``Skeleton not well formed: a variable in [...] is not in some trace''}.
+  A \texttt{defskeleton} causes this error when a variable used in a declaration
+  does not appear in any of the traces.
+
+\item \textbf{``Skeleton not well formed: cycle found in ordered pairs''}.
+  The ordering edges (strand succession plus ordered pairs) of a skeleton should form
+  an acyclic graph.  A cycle represents circular causality which should not be possible in
+  any real execution.
+
+\item \textbf{``Skeleton not well formed: non-orig [...] carried''}.  The \texttt{non-orig}
+  declaration specifies that a certain atomic value not be carried
+  (see Section~\ref{sec:secrecy_assumptions}).  You have made such a declaration but your
+  \texttt{defskeleton} violates the rule.
+
+\item \textbf{``Skeleton not well formed: ordered pairs not well formed''}.
+  This error occurs when an ordering is specified between the wrong types of events.
+  In {\cpsa}, an ordering must be such that the earlier node has an outgoing type, so
+  for instance an ordering directly between two reception events is disallowed.
+
+  \item \textbf{``Skeleton not well formed: uniq-orig [...] doesn't
+    originate''}.  The \texttt{uniq-orig} declaration states not only
+  that the declared value originates on a regular strand uniquely (see
+  Section~\ref{sec:secrecy_assumptions}), but also states that the
+  apparent origination point is the unique origination point of that
+  value.  As such, you may only use the \texttt{uniq-orig} declaration
+  on a value that does originate somewhere.  If you declare a value
+  \texttt{uniq-orig} on a skeleton but it does not originate in the
+  skeleton, you get this error.
+
+  Similarly, \textbf{``...: uniq-gen [...] doesn't generate''}
+  represents a detected error in that \texttt{uniq-gen} states that
+  not only does the given value generate (see
+  Section~\ref{sec:secrecy_assumptions}) uniquely, but that its apparent
+  generation point is that generation point.  As such, a generation
+  point is expected.
+
+\item \textbf{``Sort [...] not recognized''}.  You attempted to declare a variable
+  to be of a sort not present in the algebra.  Check to ensure that if you are using
+  Diffie-Hellman-related sorts that you are using the \texttt{diffie-hellman} algebra.
+
+\item \textbf{``Terms in [role/skeleton] not well formed''}.  This error occurs
+  when you have constructed a term using a function symbol that
+  expects inputs of a certain sort, but your inputs are not of that
+  sort.  For instance, in \texttt{(ltk a b)}, \texttt{a} and
+  \texttt{b} must be variables of the \texttt{name} sort, or they are not
+  well-formed.  To resolve: double-check your variable declarations and
+  your use of function symbols.
+
+  This may also occur if you use the \texttt{node} sort in a role or skeleton; that
+  sort should only be used in a goal declaration.
+
+\item \textbf{``Too many locations in declaration''}.  You have a
+  native declaration that appears to include two or more
+  locations in it.  All native declarations allow at most one
+  location.
+
+\item \textbf{``Type mismatch in equals''}.  The \texttt{equals} predicate
+  in a \texttt{defgoal} can be used to compare node variables or to compare
+  algebra variables, but cannot be used to compare node variables to algebra
+  variables.
+
+\item \textbf{``Unbound variable in [...]''}.  In a \texttt{defgoal},
+  variables must meet specific binding requirements.  See Chapter~\ref{ch:goals}
+  for details.  This error indicates that you have provided a formula that the
+  tool rejects for this reason.
+
+\item \textbf{``Unexpected end of input in list''}.  One of the most frequent
+  user errors - you didn't include close parens for all your S-expressions.
+
+\end{itemize}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "cpsa4manual"
+%%% End:
diff --git a/doc/src/cpsa4manual/yahalom_ch_resp_pov.png b/doc/src/cpsa4manual/yahalom_ch_resp_pov.png
new file mode 100644
Binary files /dev/null and b/doc/src/cpsa4manual/yahalom_ch_resp_pov.png differ
diff --git a/doc/src/cpsa4manual/yahalom_q_resp_pov1.png b/doc/src/cpsa4manual/yahalom_q_resp_pov1.png
new file mode 100644
Binary files /dev/null and b/doc/src/cpsa4manual/yahalom_q_resp_pov1.png differ
diff --git a/doc/src/cpsadesign.tex b/doc/src/cpsadesign.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsadesign.tex
@@ -0,0 +1,1234 @@
+\documentclass[12pt]{report}
+\usepackage{amssymb}
+\usepackage{amsmath}
+\usepackage{amsthm}
+\usepackage{url}
+\usepackage{graphicx}
+\usepackage{makeidx}
+\theoremstyle{definition}
+\newtheorem{defn}{Definition}[chapter]
+\newtheorem{thm}{Theorem}[chapter]
+\newtheorem{lem}[thm]{Lemma}
+\input{macros}
+\newcommand{\gen}{\ensuremath{G}}
+
+\makeindex
+
+\title{CPSA Design}
+\author{John D.~Ramsdell\qquad Joshua D.~Guttman\\
+  The MITRE Corporation\\ CPSA Version \version}
+
+\begin{document}
+\maketitle
+\cpsacopying
+
+\tableofcontents
+
+\chapter{Introduction}
+
+The Cryptographic Protocol Shapes Analyzer ({\cpsa}) attempts to
+enumerate all essentially different executions possible for a
+cryptographic protocol.  We call them the \emph{shapes} of the
+protocol.  Naturally occurring protocols have only finitely many,
+indeed very few shapes.  Authentication and secrecy properties are
+easy to determine from them, as are attacks and anomalies.
+
+The shapes analysis is performed within a pure Dolev-Yao model.  The
+{\cpsa} program reads a sequence of problem descriptions, and prints
+the steps it used to solve each problem.  For each input problem,
+{\cpsa} is given some initial behavior, and it descovers what shapes
+are compatible with it.  Normally, the initial behavior is from the
+point of view of one participant.  The analysis reveals what the other
+participants must have done, given the participant's view.
+
+Ideally, if there is a finite number of shapes associated with a
+problem statement, {\cpsa} will find them given enough resources.  In
+other words, the search is complete, i.e.\ every shape can in fact be
+found in a finite number of steps.  The Completeness of
+{\cpsa}~\cite{cpsatheory11} contains a proof that the search algorithm
+is complete.
+
+A {\cpsa} release includes two other documents, The {\cpsa}
+Specification~\cite{cpsaspec09} and the {\cpsa}
+Primer~\cite{cpsaprimer09}.  The specification describes the {\cpsa}
+algorithm in a form that is closely related to its implementation.
+
+There are many design decisions that are not reflected in the
+specification.  Including these decisions in the specification would
+clutter the document.  The purpose of this document is to describe the
+key omitted design decisions and provide a link between the
+specification and the source code.  It assumes the specification has
+been thoroughly read.  Definitions are not reproduced, so the
+specification should be accessible when reading this document.  The
+{\cpsa} Primer provides an overview of {\cpsa}, and may be worth
+reading before this document is approached.
+
+\section{Notation}\label{sec:notation}
+
+Originally, the specification and the design were one and the same.
+Everything was specified in the design formalism.  After the split,
+the description of protocols and preskeletons diverged by omitting
+details in the design formalism in what is used for the specification
+formalism.
+
+The key difference between the two formalisms is the design formalism
+more directly models the Haskell data structures used in the {\cpsa}
+program.  An instance of a Haskell data structure is modeled as an
+element in an order-sorted term algebra~\cite{GoguenMeseguer92}.  The
+reduction systems in the specification translate to term reduction
+systems in the design.
+
+Unlike the specification, zero-based indexing\index{zero-based
+  indexing}\index{indexing, zero-based} is used though out this
+document and in the source code it describes.  In what follows, a
+finite sequence is a function from an initial segment of the natural
+numbers.  The length of a sequence~$f$ is~$|f|$, and
+sequence~$f=\seq{f(0),\ldots,f(n-1)}$ for $n=|f|$.  Alternatively,
+$\seq{x_0,x_1,\ldots,x_{n-1}} =x_0\cons x_1\cons\ldots\cons
+x_{n-1}\cons\seq{}$.  If~$S$ is a set, then~$S^\ast$ is the set of
+finite sequences of~$S$, and~$S^+$ is the non-empty finite sequences
+of~$S$.  The concatenation of sequences~$f$ and~$f'$ is~$f\append f'$.
+The prefix of sequence~$f$ of length~$n$ is~$\prefix{f}{n}$.
+
+Those familiar with literature on strand spaces might wonder why
+lowercase $k$ is used for skeletons rather than blackboard bold
+$\mathbb{A}$.  The notation used in the design document is motivated
+by the code, and~$k$ with and without decoration somehow became
+associated with preskeletons, probably because $p$, $r$, $t$, and $s$,
+were already in use.  Many other notational conventions are directly
+inspired by the code.
+
+In this document, lowercase Latin letters usually stand for terms, and
+uppercase Latin letters stand for sequences or sets of terms.
+
+\chapter{Messages}\label{cha:messages}
+
+The formalism used in the design and the specification for message
+algebras is the same, an order-sorted term algebra.  This chapter
+describes the relation between terms and the external syntax used by
+the {\cpsa} program for the Basic Crypto Algebra, and then describes
+the interface between the algebra module and the rest of the program.
+
+Table~\ref{tab:bca} presents a slightly modified signature for the
+Basic Crypto Algebra.  It specifies a syntax for operations that
+follows mathematical tradition, such as writing $K_A$ for
+$\cn{pubk}(A)$.  Tag constants are quoted strings.
+
+\begin{table}
+\begin{center}
+Base sort symbols: \dom{name}, \dom{text}, \dom{data}, \dom{skey},
+\dom{akey}\\
+Non-base sort symbol: \dom{mesg} \\[1ex]
+Subsorts: \dom{name}, \dom{text}, \dom{data}, \dom{akey},
+$\dom{skey}<\dom{mesg}$\\[1ex]
+\begin{tabular}{@{}ll}
+$\enc{\cdot}{(\cdot)}\colon\dom{mesg}\times\dom{mesg}\rightarrow\dom{mesg}$
+&Encryption\\
+$\#\colon\dom{mesg}\rightarrow\dom{mesg}$
+&Hashing\\
+$(\cdot,\cdot)\colon\dom{mesg}\times\dom{mesg}\rightarrow\dom{mesg}$
+&Pairing\\
+``\ldots''$\colon\dom{mesg}$& Tag constants\\
+$K_{(\cdot)}\colon\dom{name}\rightarrow\dom{akey}$
+&Public key of name\\
+$(\cdot)^{-1}\colon\dom{akey}\rightarrow\dom{akey}$
+&Inverse of asymmetric key\\
+$\cn{ltk}\colon\dom{name}\times\dom{name}\rightarrow\dom{skey}$
+& Long term shared key
+\end{tabular}\\[1ex]
+Axiom: $(x^{-1})^{-1}\approx x$ for $x\colon\dom{akey}$\\[1ex]
+\caption{Basic Crypto Signature}\label{tab:bca}
+\end{center}
+\end{table}
+
+For pairing, parentheses are omitted when the context permits, and
+comma is right associative.  Pairing was once called concatenation,
+hence the use of the symbol \texttt{cat} for pairing.
+
+In the actual implementation, binary operations for \cn{pubk} and
+\cn{privk} have been added.  The first argument is a name and the
+second argument is a tag.  This extension was added so as to model key
+usage, such as associating a signing and encryption key with a name.
+
+In the S-expression syntax used by the program, the simplest term is a
+variable, which syntactically is a \textsc{symbol} as described in
+Appendix~\ref{cha:bca syntax reference}.  Internally, each variable
+has a sort, so the sort of each variable in the input must be declared
+in a \texttt{vars} form, such as:
+$$\texttt{(vars (t text) (n name) (k akey))}.$$
+
+\begin{table}
+$$\begin{array}{r@{}c@{}l}
+\sembrack{\texttt{(pubk~}t\texttt{)}}&{}={}&K_{\sembrack{t}}\\
+\sembrack{\texttt{(privk~}t\texttt{)}}&{}={}&K_{\sembrack{t}}^{-1}\\
+\sembrack{\texttt{(invk~}t\texttt{)}}&{}={}&\sembrack{t}^{-1}\\
+\sembrack{\texttt{(ltk~}t_0~t_1\texttt{)}}&{}={}&
+\cn{ltk}(\sembrack{t_0},\sembrack{t_1})\\
+\sembrack{\texttt{"}\ldots\texttt{"}}&{}={}&\mbox{``\ldots''}\\
+\sembrack{\texttt{(enc~}t_0~\ldots~t_{n-1}~t_n\texttt{)}}&{}={}&
+\enc{\sembrack{\texttt{(cat~}t_0~\ldots~t_{n-1}\texttt{)}}}{\sembrack{t_n}}\\
+\sembrack{\texttt{(hash~}t_0~\ldots~t_{n-1}\texttt{)}}&{}={}&
+\hash{\sembrack{\texttt{(cat~}t_0~\ldots~t_{n-1}\texttt{)}}}\\
+\sembrack{\texttt{(cat~}t\texttt{)}}&{}={}&\sembrack{t}\\
+\sembrack{\texttt{(cat~}t_0~t_1~\ldots\texttt{)}}&{}={}&
+(\sembrack{t_0},\sembrack{\texttt{(cat~}t_1~\ldots\texttt{)}})
+
+\end{array}$$
+\caption{S-expression Terms}\label{tab:trans}
+\end{table}
+
+The translation of S-expression terms is given in
+Table~\ref{tab:trans}.  Figure~\ref{fig:ns responder} on
+Page~\pageref{fig:ns responder} contains examples of \textsc{bca}
+message terms.  Also see \textsc{term} in Table~\ref{tab:syntax},
+Appendix~\ref{cha:bca syntax reference}.
+
+The code that implements the Basic Crypto Algebra does not directly
+implement an order-sorted algebra.  Instead, it implements a
+many-sorted algebra and exports an order-sort algebra based on the
+implementation.  Appendix~\ref{cha:bca} provides the complete details
+of the implementation.
+
+\section{Algebra Interface}
+
+The details of each implementation of a {\cpsa} message algebra are
+hidden by an interface.  This section presents the view of a term
+algebra exposed by the interface.  Some aspects of the interface are
+omitted from this discussion.  For example, each implementation of an
+algebra must provide a means to read a term from an S-expression, and
+write a term as an S-expression.  Also omitted are functions in the
+interface that are specializations of a more general function added to
+enhance performance.
+
+Each algebra provides a predicate to determine if a term is a
+variable, and another to determine if a term is an atom.  A fresh
+variable generator is in the interface.  Given a generator state and a
+term, it produces a clone of the term in which the variables have been
+replaced with freshly generated ones.  It also returns the new
+generator state.
+
+\subsection{Equations}\label{sec:equations}
+
+An algebra reports answers to unification and matching problems by
+returning a sequence of order-sorted substitutions.  A
+different data structure is used for each problem, in this document
+indicated by using~$\sigma$ for answers to the unification problem of
+$\sigma(t_0)\equiv\sigma(t_1)$, and using~$\sigma_E$ for answers to the
+matching problem of $\sigma_E(t_0)\equiv t_1$.  As the typical case is for
+sets of equations to be solved, the unification and match functions
+have been designed to allow an incremental approach to solving the
+members of the set, by extending a substitution for one pair of
+equated terms.  They have the following signatures:
+$$\begin{array}{l}
+\fn{unify}\colon
+\mathcal{T}_\top(X)\times\mathcal{T}_\top(X)\times
+(X\rightarrow\mathcal{T}_\top(X))\rightarrow
+(X\rightarrow\mathcal{T}_\top(X))^\ast\\
+\fn{match}\colon
+\mathcal{T}_\top(X)\times\mathcal{T}_\top(Y)\times
+(X\rightarrow\mathcal{T}_\top(Y))\rightarrow
+(X\rightarrow\mathcal{T}_\top(Y))^\ast
+\end{array}$$
+
+An answer to the matching problem is called an
+\index{environment}\emph{environment}.  An environment differs from a
+substitution produced as an answer to a unification problem in that it
+may explicitly specify identity mappings, thus forbidding extensions
+to the environment that conflicts with these mappings.  This
+distinction is crucial for correctly answering matching problems by
+iteratively extending an environment.
+
+To support checks to see if terms are isomorphic via the match
+function, the algebra interface includes the \emph{match variable
+  renaming} predicate that tests an environment to see if it is a
+one-to-one variable-to-variable order sorted substitution.
+
+To support pruning, there is a function that given an environment and
+a term, determines if there are variables in the term that are in the
+domain of the environment.
+
+\subsection{Term Internals}\label{sec:term internals}
+
+The interface includes a function that returns the set of variables in
+a term, and a function that returns the terms carried by a term.
+Other subterms are accessed via position oriented
+functions.  Recall that a position is a finite sequence of natural
+numbers, and the message in~$t$ that occurs at~$p$, is
+written~$t\termat p$.  The interface includes a data type for a
+position that hides its implementation.  The interface also includes
+the ancestors function $\fn{anc}(t,p)$ and the carried positions
+function $\fn{carpos}(t,t')$ as defined in the specification.
+
+Each algebra provides a way to obtain a set of positions at which a
+subterm occurs within a term, and a way to replace the subterm at a
+given position with another term.  These functions are used to
+generalize by variable separation.
+
+\begin{defn}[All Positions]\index{all positions}
+Given a term~$t$, the set of positions at which~$t$ occurs in~$t'$ is
+$\fn{allpos}(t,t')$, where
+$$\fn{allpos}(t,t')=\left\{
+\begin{array}{ll}
+\{\seq{}\}&\mbox{if $t'\equiv t$, else}\\
+\multicolumn{2}{l}{\{\seq{i}\append p \mid
+p\in\fn{allpos}(t,t_i),i<n\}} \\
+& \mbox{if $t'=f(t_0,\ldots,t_{n-1})$, else}\\
+\{\}&\mbox{otherwise.}
+\end{array}\right.$$
+\end{defn}
+
+\begin{defn}[Replace]\index{replace}
+Given terms~$t$ and~$t'$, and position~$p$, the term that results from
+replacing the term at~$p$ with~$t$ in~$t'$, is
+$\fn{replace}(t,p,t')$, where
+$$\begin{array}{l}
+\fn{replace}(t,\seq{},t')=t;\\
+\fn{replace}(t,\seq{i}\append p,f(t_0,\ldots,t_{n-1}))=
+f(t'_0,\ldots,t'_{n-1})\mbox{ where}\\
+t'_j=\left\{
+\begin{array}{ll}
+\fn{replace}(t,p,t_i)&\mbox{if $i=j$;}\\
+t_j&\mbox{otherwise.}
+\end{array}\right.
+\end{array}$$
+\end{defn}
+
+\subsection{Encryptions and Derivations}\label{sec:encryptions}
+
+Finally, the remaining functions in the interface are the ones that
+expose the encryption oriented properties of terms.  The
+\emph{decryption key} function returns the key used to decrypt a term
+if it is an encryption, otherwise it returns an error indicator.  The
+\emph{encryptions} function returns the set of encryption terms
+carried by a term, each one paired with its encryption key.  {\cpsa}
+treats a hashed term as if it were an encryption in which the term
+that is hashed is the encryption key, so hashes with their content is
+also returned by this function.  The penetrator derivable function
+from the section in the specification of the same name is in the
+interface.  Given a derivable predicate that has been specialized with
+a given set of supported terms and a set of atoms to avoid, a target
+term, and a source term, the \emph{protectors} function returns an
+error indicator if the target is carried by the source outside of an
+encryption, where the derivable predicate is used to determine if a
+decryption key can be used to expose the target.  Otherwise, it
+returns a set of encryptions in the source that carry the target and
+have underivable decryption keys.  If two encryptions protect the
+target, only the outside one is returned.  The inside encryption is
+the one that is carried by the outside encryption.  Pseudo code for
+the decryption key and the protectors functions is in the
+specification.
+
+\chapter{Protocols and Preskeletons}\label{cha:prots and preskels}
+
+Terms over an order-sorted signature extended from a message signature
+describe key data structures in the {\cpsa} program.  Given a message
+signature that defines the sort \dom{mesg} and the atoms, the
+additional sorts and operations are in the {\cpsa} Signature in
+Table~\ref{tab:strands}.  The signature uses the sort $s~\dom{list}$
+for sequences of terms of sort~$s$, and the sort $s~\dom{set}$ for
+injective sequences of terms of sort~$s$.
+
+\begin{table}
+\begin{center}
+Additional sort symbols: \dom{atom}, \dom{evt}, \dom{role}, \dom{maplet},\\
+\dom{instance}, \dom{node}, \dom{ordering}, and \dom{preskel} \\[1ex]
+Subsorts: for each base sort $s, s < \dom{atom} < \dom{mesg}$\\[1ex]
+$\begin{array}{rl}
+\outbnd\colon\dom{mesg}\rightarrow\dom{evt}\hspace{2\arraycolsep}
+\inbnd\colon\dom{mesg}\rightarrow\dom{evt}&
+\cn{r}\colon\dom{evt}\dom{list}\times\dom{atom}\dom{set}\times
+\dom{atom}\dom{set}\rightarrow\dom{role}\\
+\cn{m}\colon\dom{mesg}\times\dom{mesg}\rightarrow\dom{maplet}&
+\cn{i}\colon\dom{role}\times\dom{nat}\times\dom{maplet}\dom{set}
+\rightarrow\dom{instance}\\
+\cn{n}\colon\dom{nat}\times\dom{nat}\rightarrow\dom{node}
+&\cn{o}\colon\dom{node}\times\dom{node}\rightarrow\dom{ordering}
+\end{array}$\\
+$\cn{k}\colon\dom{role}\dom{set}\times
+\dom{instance}\dom{list}\times
+\dom{ordering}\dom{set}\times\dom{atom}\dom{set}\times
+\dom{atom}\dom{set}\rightarrow\dom{preskel}$\\[1ex]
+\begin{tabular}{rl}
+\dom{mesg}& the sort of all messages (implementation of $\top$)\\
+\dom{atom}& the sort of all base sorted messages\\
+\dom{evt}& a transmission or reception event\\
+\dom{trace}& a sequence of events used in a role\\
+\dom{role}& a trace, a non-originating set, and a uniquely-originating
+set\\
+\dom{protocol}& a set of roles\\
+\dom{nat}& a natural number\\
+\dom{maplet}& a map from a role variable to a preskeleton term\\
+\dom{instance}& a strand's trace and inheritance as instantiated from a role\\
+\dom{node}& a pair of numbers, a strand identifier and a strand position\\
+\dom{ordering}&a causal ordering between a pair of nodes\\
+\dom{preskel}& a preskeleton
+\end{tabular}
+\end{center}
+\caption{{\cpsa} Signature}\label{tab:strands}
+\end{table}
+
+\begin{defn}[{\cpsa} Algebra]\label{def:cpsa algebra}
+\index{CPSA@{\cpsa} algebra} Algebra~$\alg{A}(X)$ is a \emph{{\cpsa}
+  algebra} if it is the order-sorted quotient term algebra generated
+by variable set~$X$, and~$X$ has the following property.  For each
+sort~$s$, $X_s$ is empty when~$s$ is \dom{atom}, \dom{evt},
+\dom{role}, \dom{maplet}, \dom{instance}, \dom{node}, \dom{ordering},
+and \dom{preskel}.
+\end{defn}
+
+Some of the terms over a {\cpsa} signature are not
+\index{well-formed}well-formed, and omitted from interpretation.  The
+text describing a term of a sort includes the conditions for it being
+well-formed.
+
+In what follows, the external syntax for protocols is presented, and
+later, its translation into terms over a {\cpsa} signature.  For
+preskeletons, the internal representation is presented first, followed
+by its external syntax.
+
+\section{Protocols}
+
+A protocol defines the patterns of allowed behavior for
+non-adversarial participants, called the \index{regular
+  participant}\emph{regular} participants.  The behavior of each
+regular participant is an instance of a protocol template, called a
+role.  Figure~\ref{fig:ns roles} displays the roles that make up the
+Needham-Schroeder protocol.
+
+\begin{figure}
+\begin{center}
+\includegraphics{cpsadiagrams-0.mps}\hfil
+\includegraphics{cpsadiagrams-1.mps}
+\caption{Needham-Schroeder Initiator and Responder Roles}
+\label{fig:ns roles}
+\end{center}
+\end{figure}
+
+In S-expression syntax, a protocol is a named set of roles and is
+defined by the \texttt{defprotocol} form.  See \textsc{protocol} in
+Table~\ref{tab:syntax}, Appendix~\ref{cha:bca syntax reference}.
+\begin{center}
+\begin{tabular}{l}
+\verb|(defprotocol ns basic|\\
+\verb|  (defrole init| \ldots\texttt{)}\\
+\verb|  (defrole resp| \ldots\texttt{))}
+\end{tabular}
+\end{center}
+
+The name of this protocol (\textsc{id}) is \texttt{ns}, and the second
+identifier (\textsc{alg}) names the message algebra in use.  The
+identifier for the Basic Crypto Algebra is \texttt{basic}.
+
+During the reading process, the appropriate algebra is implicitly
+bound to the internal representation of a protocol and many data
+structures derived from it.  The protocol name is used at read time to
+bind it with its usages, and for output and error messages, but is
+otherwise unused and thus omitted from the design specification. The
+internal representation of a \index{protocol}protocol is simply a set
+of roles---as a term of sort \dom{role~set} in Table~\ref{tab:strands}.
+
+The S-expression syntax for a role has a name, a declared set of
+variables, and a trace that provides a template for the behavior of
+its instances.  A trace is a non-empty sequence of
+events\index{event}, either a message transmission or a reception.  An
+outbound\index{outbound} term is \texttt{(send $t$)} and an
+inbound\index{inbound} message with term~$t$ is \texttt{(recv $t$)}.
+The translations of events are $\outbnd\sembrack{t}$ and
+$\inbnd\sembrack{t}$ respectively, where~$\sembrack{t}$ is the
+translation of the S-expression~$t$ into an term of sort~\dom{mesg} in
+Table~\ref{tab:strands}.  Needham-Schroeder responder's role in
+S-expression syntax is in Figure~\ref{fig:ns responder}.
+
+\begin{figure}
+\begin{quote}
+\begin{verbatim}
+(defrole resp (vars (b a name) (n2 n1 text))
+  (trace (recv (enc n1 a (pubk b)))
+         (send (enc n1 n2 (pubk a)))
+         (recv (enc n2 (pubk b)))))
+\end{verbatim}
+\end{quote}
+\caption{Needham-Schroeder Responder Role}
+\label{fig:ns responder}
+\end{figure}
+
+Some atoms in a role have special properties.  The atoms
+listed in the \texttt{non-orig} form are assumed to be
+non-originating, and those in the \texttt{uniq-orig} form are assumed
+to be uniquely originating.  The implications of these assumption is
+as in the specification.
+
+Internally, \index{role}role~$\cn{r}(C,N,U)$ has a trace~$C$, and two
+sets of atoms,~$N$ and~$U$.  The atoms in~$N$ are assumed to be
+non-originating, and the atoms in~$U$ are assumed to be uniquely
+originating.  As with protocols, the name is used during input and
+output, but omitted from this specification.
+
+A role is \index{well-formed role}well-formed if it satisfies the
+conditions listed for a role in the specification.  A protocol is
+well-formed if no variable occurs in more than one role.  The external
+syntax used by {\cpsa} uses variable renaming to create the illusion
+that the same variable may occur in two roles.  In the external
+syntax, two roles may share the same identifier.
+
+Associated with each protocol is an implicit role.  For some
+variable~$x$ of sort \dom{mesg}, that does not occur in any role in
+the protocol, there is a \label{def:listener
+  role}\index{listener role}\index{role!listener}\emph{listener role}
+of the form~$\fn{lsn} = \cn{r}(\seq{\inbnd x,\outbnd x}, \seq{},
+\seq{})$.  A listener role is used to assert that a term is not a
+secret.  In the implementation, the only difference between a listener
+role and non-listener roles is its name is the empty string, a fact
+used when printing.
+
+\section{Preskeletons}
+
+The other key {\cpsa} data structure is a preskeleton---see the~\cn{k}
+operation in Table~\ref{tab:strands}.  A preskeleton is used to encode
+classes of protocol executions, including its shapes, the answers
+produced by {\cpsa}.  One component of a preskeleton is its protocol,
+and one component is a set of strands.  There are more components, but
+the set's representation is presented next.
+
+As in the specification, a sequence of instances represents a set of
+strands.  The instance\index{instance} $\cn{i}(r,h,E)$ contains a
+role~$r$, a positive number~$h$ called its height, the length of the
+trace associated with the instance, and an
+environment\index{environment}~$E$, a term of sort \dom{maplet}
+\dom{set}.
+
+The environment~$E$ is well-formed if it represents the order-sorted
+substitution~$\sigma_E$ such that for every maplet $\cn{m}(x,y)$,
+$\sigma_E x=y$.  Note that~$x$ is always a variable, unlike its analog
+in the external syntax.  An instance is well-formed if its role is
+well-formed, its environment is well-formed, and its height is not
+greater that the length of its role's trace.
+
+The set of strands in a preskeleton is represented by a sequence of
+instances.  The identity of a strand\index{strand} is its position in
+the sequence, which is where the description of its trace is located.
+The \index{node}node $\cn{n}(s,p)$ is associated with the event
+at position~$p$ in strand~$s$'s trace.  In other words, if~$I$ is
+a sequence of instances, the event at $\cn{n}(s,p)$,
+\label{def:evt}written~$\fn{evt}(I,\cn{n}(s,p))$, is $\sigma_E(C(p))$, where
+$I(s)=\cn{i}(\cn{r}(C,N,U),h,E)$ and~$p<h\leq|C|$.  A node
+associated with an inbound term is a \index{reception
+  node}\emph{reception node}, and a node associated with an outbound
+term is a \index{transmission node}\emph{transmission node}.  The term
+stripped of its direction is written~$\fn{msg}(I,\cn{n}(s,p))$.  The
+set of nodes in sequence~$I$ is $\{\cn{n}(s,p) \mid s<|I|,
+I(s)=\cn{i}(r,h,E), p < h\}$.
+
+The preskeleton\index{preskeleton}~$\cn{k}(P,I,O,N,U)$ contains a
+protocol~$P$, a non-empty sequence of instances~$I$, a set of
+communication orderings~$O$, a set of non-originating
+terms\index{non-originating term}~$N$, and a set of uniquely
+originating terms~$U$.  The node
+ordering\index{ordering}\index{communication ordering} $o(n_0, n_1)$
+asserts that~$n_0$ precedes~$n_1$, that the event at~$n_0$ is
+outbound, the event at~$n_1$ is inbound, and~$n_0$ and~$n_1$
+are on different strands.  The atoms in~$N$ are assumed to be
+non-originating, and the atoms in~$U$ are assumed to be uniquely
+originating.
+
+Members of the set of communication orderings~$O$ relate nodes in
+differing strands.  There is an implied ordering of nodes within the
+same strand.  Strand succession orderings of the form
+$\cn{o}(\cn{n}(s, p-1), \cn{n}(s, p))$, where $0 < p < h$ and~$h$ is
+the height of strand~$s$ are implicit, and must not be in~$O$.
+\index{strand succession orderings}
+
+\index{graph!preskeleton}\index{preskeleton graph}
+Associated with each preskeleton~$k$ is a graph.  The vertices of the
+graph are the nodes of the instance sequence~$I$, and the edges are
+the reverse of the both communication ordering~$O$ and the implied
+strand succession orderings.  The edges are reversed because events in
+a node's past are of interest when analyzing a node.  When the graph
+is acyclic, the transitive irreflexive relation~$\kprec{k}$ of~$k$ is the
+transitive closure of the graph, and $n_0\kprec{k} n_1$ asserts that the
+message event at~$n_0$ precedes the one at~$n_1$.  (A preskeleton with
+a graph that contains cycles is not well-formed.)
+
+To be well-formed\index{well-formed preskeleton}, in addition to the
+requirements on communication orderings listed above, a preskeleton
+must satisfy the same conditions listed for a preskeleton in the
+specification.
+
+\begin{figure}
+\begin{center}
+\includegraphics{cpsadiagrams-4.mps}
+\caption{Needham-Schroeder Shape ($K^{-1}_A$ uncompromised, $N_2$ fresh)}
+\label{fig:ns shape}
+\end{center}
+\end{figure}
+
+\begin{figure}
+\begin{center}
+With $A,A',A'',B,B',B'',C\colon
+\dom{name},N_1,N_1',N_1'',N_2,N_2',N_2''\colon\dom{text}$:
+\end{center}
+$$
+\begin{array}{r@{}c@{}l}
+\fn{resp}&{}={}&\cn{r}(\fn{resp}_t, \seq{},\seq{})
+\mbox{ where}\\
+\fn{resp}_t&{}={}&\seq{
+\inbnd\enc{N_1,A}{K_B},
+\outbnd\enc{N_1,N_2}{K_A},
+\inbnd\enc{N_2}{K_B}}
+\end{array}
+$$
+
+$$
+\begin{array}{r@{}c@{}l}
+\fn{init}&{}={}&\cn{r}(\fn{init}_t, \seq{},\seq{})
+\mbox{ where}\\
+\fn{init}_t&{}={}&\seq{
+\outbnd\enc{N_1',A'}{K_{B'}},
+\inbnd\enc{N_1',N_2'}{K_{A'}},
+\outbnd\enc{N_2'}{K_{B'}}}
+\end{array}
+$$
+
+$$\begin{array}{r@{}c@{}l}
+\multicolumn{3}{l}{\cn{k}(\seq{\fn{resp},\fn{init}},
+I, O,\seq{K_{A''}^{-1}},\seq{N_2''})\mbox{ where}}\\
+I&{}={}&\langle\cn{i}(\fn{resp}, 3, E),
+\cn{i}(\fn{init}, 3, E')\rangle\\
+E&{}={}&\seq{\cn{m}(A,A''),\cn{m}(B,B''),
+\cn{m}(N_1,N_1''), \cn{m}(N_2,N_2'')}\\
+E'&{}={}&\seq{\cn{m}(A',A''),\cn{m}(B',C),
+\cn{m}(N_1',N_1''), \cn{m}(N_2',N_2'')}\\
+O&{}={}&\seq{\cn{o}(\cn{n}(0,1),\cn{n}(1,1)),
+\cn{o}(\cn{n}(1,2),\cn{n}(0,2))}
+\end{array}$$
+\caption{Needham-Schroeder Preskeleton}\label{fig:ns}
+\end{figure}
+
+A Needham-Schroeder shape in traditional Strand Space notation is in
+Figure~\ref{fig:ns shape}, and its representation using order-sorted
+terms is given in Figure~\ref{fig:ns}.
+
+\subsection{Preskeleton S-Expression Syntax}
+
+The \texttt{defskeleton} form in Table~\ref{tab:syntax},
+Appendix~\ref{cha:bca syntax reference} is used to specify a
+preskeleton in S-expression syntax.  (With the exception of the
+initial problem statement, a preskeleton is always a skeleton.)
+On output, a preskeleton Referring to
+Table~\ref{tab:syntax}, the \textsc{id} in the preskeleton form names
+a protocol.  It refers to the most recent protocol definition of that
+name which precedes the preskeleton form in the input.  The
+\textsc{id} in the \texttt{defstrand} form names a role.  The integer
+in the strand form gives the height of the strand.  The sequence of
+pairs of terms in the strand form specify an environment used to
+construct the events in a strand from its role's trace.  The
+first term is interpreted using the role's variables and the second
+term uses the preskeleton's variables.  The environment used to
+produce the strand's trace is derived by matching the second term
+using the first term as a pattern.  The \texttt{deflistener} form
+creates an instance of a listener role for the given term.
+
+The \texttt{precedes} form specifies members of the node relation.
+The first integer in a node identifies the strand using the order in
+which strands are defined in the \texttt{defskeleton} form.
+
+\begin{figure}
+\begin{quote}
+\begin{verbatim}
+(defskeleton ns (vars (n2 n1 text) (a b b-0 name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig n2))
+\end{verbatim}
+\end{quote}
+\caption{Needham-Schroeder \texttt{defskeleton}}\label{fig:defns}
+\end{figure}
+
+A variable may occur in more then one role within a protocol.  The
+reader performs a renaming so as to ensure these occurrences do not
+overlap.  Furthermore, the maplets used to specify a strand need not
+specify how to map every role variable.  The reader inserts missing
+mappings, and renames every preskeleton variable that also occurs in a
+role of its protocol.  The sort of every preskeleton variable that
+occurs in the \texttt{non-orig} or \texttt{uniq-orig} list or in a
+maplet must be declared, using the \texttt{vars} form.
+
+Needham-Schroeder shape in S-expression syntax is displayed in
+Figure~\ref{fig:defns}.  The effect of reader renaming is shown in
+Figure~\ref{fig:ns} by adding primes to variables.
+
+The \textsc{prot-alist}, \textsc{role-alist}, and \textsc{skel-alist}
+productions in Table~\ref{tab:syntax} are Lisp style association lists,
+that is, lists of key-value pairs, where every key is a symbol.
+Key-value pairs with unrecognized keys are ignored, and are available
+for use by other tools.  On output, unrecognized key-value pairs are
+preserved when printing protocols, but elided when printing
+preskeletons.
+
+See the {\cpsa} Primer for more examples of {\cpsa} external syntax.
+
+\section{Source Code}\label{sec:source code}
+
+Protocols, roles, and preskeletons have additional fields not
+documented here.  For example, each role and preskeleton keeps track
+of the variable set used to generate its message algebra, and the
+variable generator used to create fresh variables.  There is a name
+associated with each protocol and role.  Preskeletons have addition
+fields associated with generalization, as discussed in
+Section~\ref{sec:generalization}.
+
+\section{Specification}\label{sec:specification}
+
+There is a direct relationship between the protocols and roles in this
+specification, and protocols and roles as members of a {\cpsa} algebra
+(Definition~\ref{def:cpsa algebra}).  The relationship between
+preskeletons in the two documents requires explanation.  There are two
+significant differences.
+
+In this document and in the code, a strand is represented by the
+instance $\cn{i}(r,h,E)$, but in the specification, a strand is
+represented by a trace and a role.  These two representations are
+mathematically equivalent, as the trace of a strand can be computed
+from $r$,~$h$, and~$E$.  The code adds the trace to the fields of an
+instance.
+
+The second significant difference is that the precedes relation is
+represented by a list of ordered pairs in this document, but in the
+specification, the precedes relation is always irreflexive and
+transitive.  In the code, the transitive reduction is performed on the
+precedes relation, and the output always contains the fewest number of
+ordered pairs possible without changing the transitive closure of the
+precedes relation.
+
+\chapter{Reductions}\label{cha:reductions}
+
+This chapter describes the implementation-oriented refinements made to
+support reduction that are considered too detailed to be included in
+the specification.
+
+In the {\cpsa} implementation and the design formalism, every
+preskeleton includes a link to its protocol.  Two preskeletons are not
+related by a homomorphism unless they specify the same protocol.
+
+For each preskeleton~$k$, the implementation maintains an
+\index{origination map} \emph{origination map}, $\orig(k,t)$.  It maps
+each of the preskeleton's uniquely originating terms to the set of
+nodes at which it originates.  For hulled preskeletons, the range of
+this map must contain singleton sets or the empty set.  The
+origination map returns an error indicator when given a term not assumed
+to be uniquely originating, a feature used to check the
+implementation's consistency.
+
+Each preskeleton contains the state of a variable generator.  It's
+used to ensure a source of fresh variables for any preskeleton derived
+from it.
+
+\section{Preskeleton Reductions}\label{sec:preskeleton reductions}
+
+Given a well-formed preskeleton, an attempt is made to convert it into
+a set of skeletons.  This section describes a few implementation
+details omitted from the specification.
+
+The implementation uses sequences to represent some sets.  The
+function \index{nub}\fn{nub} removes duplicates from a sequence.
+
+\subsection{Substitution}
+
+The function~$\ops{S}_\sigma$ applies the order-sorted substitution~$\sigma$
+to a preskeleton.
+$$
+\begin{array}{r@{}c@{}l}
+\ops{S}_\sigma(\cn{k}(P, I, O, N, U))&{}={}&
+\cn{k}(P, \ops{S}_\sigma\circ I, O, \fn{nub}(\sigma\circ N),
+\fn{nub}(\sigma\circ U))\\
+\ops{S}_\sigma(\cn{i}(r,h,E))&{}={}&\cn{i}(r, h, \ops{S}_\sigma\circ E)\\
+\ops{S}_\sigma(\cn{m}(x,y))&{}={}&\cn{m}(x,\sigma(y))
+\end{array}
+$$
+
+The substitution specifies a homomorphism as long as it preserves the
+nodes at which each uniquely originating term originates.  In other
+words, its a homomorphism only if for each uniquely originating
+term~$t$ in~$k$, $\orig(k,t)\subseteq\orig(k', \sigma(t))$, where
+$k'=\ops{S}_\sigma(k)$.  The implicit homomorphism is
+$(\idphi,\sigma)$, where~$\idphi$ is the identity strand map for~$k$.
+
+\subsection{Compression}
+
+The function~$\ops{C}_{s,s'}$ compresses~$s$ into~$s'$ in a preskeleton.
+$$
+\begin{array}{r@{}c@{}l}
+\ops{C}_{s,s'}(\cn{k}(P, I, O, N, U))&{}={}&
+\cn{k}(P, I\circ\phi'_s, \ops{C}_{\phi}\circ O, N, U)\\
+\ops{C}_\phi(\cn{o}(n_0, n_1))&{}={}
+&\cn{o}(\ops{C}_\phi(n_0), \ops{C}_\phi(n_1))\\
+\ops{C}_\phi(\cn{n}(s, p))&{}={}&\cn{n}(\phi(s), p)\\
+\phi(j)=\phi_{s,s'}(j)&{}={}&\left\{
+\begin{array}{ll}
+\phi_s(s')&\mbox{if $j=s$}\\
+\phi_s(j)&\mbox{otherwise}
+\end{array}\right.\\
+\phi_s(j)&{}={}&\left\{
+\begin{array}{ll}
+j-1&\mbox{if $j>s$}\\
+j&\mbox{otherwise}
+\end{array}\right.\\
+\phi'_s(j)&{}={}&\left\{
+\begin{array}{ll}
+j+1&\mbox{if $j\geq s$}\\
+j&\mbox{otherwise}
+\end{array}\right.
+\end{array}
+$$ where the trace of~$I(s)$ is a prefix of the trace of~$I(s')$.
+Although not shown, orderings of the form
+$\cn{o}(\cn{n}(s,p),\cn{n}(s,p'))$ are removed from the ordering when
+$p<p'$, so they do not cause the output preskeleton to fail to be
+well-formed.  The implicit homomorphism is
+$(\phi_{s,s'},\idsigma)$, where~$\idsigma$ is the identity
+substitution.  Note that $\phi_{s,s'}\circ\phi'_s=\idsigma$.
+
+\subsection{Order Enrichment}
+
+The function~$\ops{O}$ performs order enrichment by adding a node
+orderings between the node at which a uniquely originating atom
+originates and the nodes at which it is gained.  A message is
+\emph{gained}\index{gained} by a trace if it is carried by some event
+and the first event in which it is carried is inbound.  Let $\gain(k,
+t)$ be the set of nodes in~$k$ at which~$t$ is gained.
+$$ \ops{O}(\cn{k}(P, I, O, N, U))=
+\cn{k}(P, I, \fn{nub}(O\append O'), N, U)$$
+where $O'=\{\cn{o}(n_0,n_1)\mid t\in U, n_0\in\orig(k,t),
+n_1\in\gain(k,t)\}$.  Order Enrichment specifies a homomorphism that
+is an embedding.
+
+\subsection{Transitive Reduction}
+
+The function~$\ops{R}$ performs a transitive reduction on a preskeleton's
+node relation.  The transitive reduction\index{transitive reduction}
+of an ordering is the minimal ordering such that both orderings have
+the same transitive closure.  Here, communication orderings implied by
+transitive closure are removed.
+
+The transitive reduction of a skeleton is isomorphic to the skeleton.
+The reduction is performed to speed up the code that checks for
+isomorphisms.  When two skeletons are transitively reduced, and
+isomorphic, they have the same number of communication orderings.
+
+In the implementation, transitive reduction is the last operation
+applied to a preskeleton during the process of converting a
+preskeleton into a pruned skeleton.  Isomorphism testing is only
+performed on pruned skeletons.
+
+\section{Augmentation}
+
+The function~$\ops{A}_{i,n}$ augments a preskeleton with a new strand.
+It appends the instance~$i$ to the sequence of instances, adds a node
+ordering, and adds atoms as specified by the role.  The function
+orders the last node in the strand before some node in the
+preskeleton.
+
+$$
+\begin{array}{r@{}c@{}l}
+\ops{A}_{i,n}(\cn{k}(P, I, O, N, U))&{}={}&
+\cn{k}(P, I\append\langle i\rangle,
+\langle \cn{o}(\cn{n}(|I|,h-1),n)
+\rangle \append O,N_1, U_1)\\
+i&{}={}&\cn{i}(\cn{r}(C,N_0,U_0),h,E)\\
+N_1&{}={}&\fn{nub}(N\append\sigma_e\circ N_0)\\
+U_1&{}={}&\fn{nub}(U\append\sigma_e\circ U_0)
+\end{array}
+$$ Although not shown, elements in~$N_1$ that contain a variable that
+does not occur in some event in the constructed preskeleton
+are dropped, as are elements in~$U_1$ that are not carried in some
+event in the constructed preskeleton.  As with the preskeleton
+reductions in Section~\ref{sec:preskeleton reductions}, it is
+straightforward to derive the homomorphism associated with a
+successful augmentation.
+
+\section{Generalization}\label{sec:generalization}
+
+The generalization process is the only part of the algorithm that
+requires non-isomorphic homomorphisms to be explicitly represented.
+To make this possible, every preskeleton contains two additional
+fields not yet described, a link to the point-of-view skeleton, and a
+{\pov} strand map.  The {\pov} strand map is the second component of
+the homomorphism from the point-of-view skeleton to the preskeleton.
+The first component can be generated via matching using the
+point-of-view skeleton.
+
+The {\pov} strand map is maintained by every reduction applied to a
+preskeleton.  The compression reduction is the only one that
+requires careful thought.
+
+\chapter{Search Strategy}\label{cha:search}
+
+The top-level loop maintains two sequences of skeletons, a to do list,
+and a set of skeletons that have already been seen.  When the to do
+list is empty, the loop exits.
+
+For each problem statement, {\cpsa} attempts the convert the
+preskeleton into a skeleton.  If the conversion fails, an error is
+signaled.  Otherwise, a search is started with the skeleton as the
+{\pov} skeleton of Section~\ref{sec:generalization}.  The top-level loop
+starts with the {\pov} skeleton as the single member of the to do
+list and the seen set.
+
+The following steps constitute one iteration of the top-level loop.
+The first skeleton on the to do list is removed and is the subject of
+the iteration.  If the skeleton is unrealized, contraction and
+augmentation are used to compute its cohort.  Otherwise, generalization
+reductions are tried in an effort to make one generalization step.
+The generated skeletons are the subject's children.  Each child that
+is isomorphic to a member of the seen set is dropped.  The other
+children are added to the seen set and to the end of the to do list.
+The final step in the iteration is to print the subject skeleton.
+
+When the subject in unrealized, the test node is selected as follows.
+The strands are considered in reverse order, and the first unrealized
+node in one of the strands is used as the test node.  By default, the
+program tries encryptions for critical messages before it tries atoms.
+The encryptions considered as critical messages are obtained using the
+\emph{encryptions} function in the algebra interface.
+
+\enlargethispage{\baselineskip}
+The search order can be modified by using command-line arguments or
+the \texttt{herald} form.  The option \texttt{--check-nonces} cause
+{\cpsa} to try atoms before encryptions.  Option
+\texttt{--try-old-strands} tries the strands in order.  Option
+\texttt{--reverse-nodes} tries nodes later in the strand first.
+
+\chapter{Haskell Modules}\label{cha:haskell modules}
+
+An overview of the modules that make up a \texttt{cpsa} program
+follows.
+
+\begin{description}
+\item[CPSA.Lib.Utilities:]
+Contains generic list functions and a function that determines if a
+graph has a cycle.
+\item[CPSA.Lib.SExpr:]
+A data structure for S-expressions, the ones that are called
+proper lists.
+\item[CPSA.Lib.Pretty:]
+A simple pretty printer.
+\item[CPSA.Lib.Printer:]
+A CPSA specific pretty printer using S-expressions.
+\item[CPSA.Lib.Expand:]
+Expands macros using definitions in the input.
+\item[CPSA.Lib.Entry:]
+Provides a common entry point for programs based on the CPSA library.
+\item[CPSA.Algebra:]
+Basic Crypto Algebra implementation.
+\item[CPSA.Protocol:]
+Protocol and security goal data structures.
+\item[CPSA.Strand:]
+Instance and preskeleton data structures and support functions.
+\item[CPSA.Characteristic:]
+Produces the characteristic skeleton of the antecedent of a goal.
+\item[CPSA.Cohort:]
+Computes the cohort associated with a skeleton or its generalization.
+\item[CPSA.Reduction:]
+Term reduction for the CPSA solver.
+\item[CPSA.Loader:]
+Loads protocols, preskeletons, and goals from S-expressions.
+\item[CPSA.Displayer:]
+Displays protocols and preskeletons as S-expressions.
+\end{description}
+
+\chapter{Visualization}\label{cha:viz}
+
+This section describes the Causally Intuitive Preskeleton Layout
+algorithm used to generate visualizations of preskeletons.  The
+algorithm is simple to implement and explain, and because it is
+designed for preskeletons, it produces better results than is
+available from generic graph layout algorithms, such as the ones used
+by Graphviz~\cite{GansnerNorth00}.
+
+The preskeleton is prepared by performing a transitive reduction on
+its ordering relation.  Communication edges implied by transitive
+closure are removed.  The result is called a Hasse diagram.
+
+The Hasse diagram is created by considering each communication edge.
+If there is a path from its source to its destination that does not
+traverse the edge, the edge is deleted.
+
+To simplify the task, each strand is laid out vertically with early
+nodes above later ones.  The strands are horizontally placed in the
+same order as they appear in the preskeleton.  The spacing between
+successive nodes on a strand is the same, as is the horizontal spacing
+between strands.  The vertical position of a node is called its rank.
+
+Within this framework, the simplest layout algorithm is to use the
+position of the node in its strand as its rank.  When using this
+layout strategy, the only difficultly occurs when a node ordering
+arrow crosses over a node in an unrelated strand.  To avoid ambiguity,
+arrows that cross strands are curved.
+
+When using position based ranking, the result often contains upward
+sloping arrows.  Within a strand, no node that is after a node is
+above the node, but with upward sloping arrows, this property no
+longer holds.  The motivation for the Causally Intuitive Preskeleton
+Layout algorithm is that eliminating upward sloping arrows makes
+causal relations easier to grasp.
+
+The layout algorithm has two phases.  The first phase stretches
+strands so as to eliminate upwardly sloping arrows, and the second
+phase compresses them so as to eliminate some unnecessary stretching.
+Without phase two, some nodes early in a strand appear to be oddly
+separated from others in the strand.
+
+Each phase starts with a to do list containing every node in the
+preskeleton.  For each node in the to do list, if conditions are met,
+it updates the current node ranking and adds nodes to the to do list.
+The phase is finished when the to do list is empty.
+
+Phase I starts with the position based ranking~$r(s,p)=p$.  Let~$P(n)$
+be the set the predecessors of node~$n$, excluding the nodes on the
+strand of~$n$.  Let~$P_r(n)=\{r(n')\mid n'\in P(n)\}$ be the ranks
+of~$P(n)$.  The stretch rule is considered for each element in the
+to do list.
+
+The stretch rule applies to node~$n_1$ if $r(n_1)<h$, where
+$h=\max(\{r(n_1)\}\cup P_r(n_1))$.  In that case, the ranking is updated
+so that $r(n_1)=h$, and the linearize rule is applied to the next strand
+node if it exists.
+
+The linearize rule applies to node~$n_1$ if $r(n_1)\leq r(n_0)$,
+where~$n_0$ is the previous strand node.  In that case, the ranking is
+updated so that $r(n_1)=r(n_0)+1$, the to do list is augmented with
+elements in~$S(n_1)$, and the linearize rule is applied to the next
+strand node if it exists, where~$S(n)$ is the set the successors of
+node~$n$, excluding the nodes on the strand of~$n$.
+
+In phase II, the compress rule is considered for each element in the
+to do list.  It applies to node~$n_1$ with a next strand node of~$n_2$
+if $r(n_1)<h$, where $h=\min(\{r(n_2)-1)\}\cup S_r(n_1))$ and~$S_r(n)$
+is the ranks of~$S(n)$.  In that case, the ranking is updated so that
+$r(n_1)=h$, and the to do list is augmented with elements in~$P(n_1)$
+and the previous strand node of~$n_1$ if it exists.
+
+\chapter*{Acknowledgement}
+
+Carolyn Talcott provided valuable feedback on drafts of this document.
+
+\appendix
+
+\chapter{Basic Crypto Algebra Syntax Reference}\label{cha:bca syntax reference}
+
+\input{bcasyntax}
+
+\chapter{The Basic Crypto Many-Sorted Algebra}\label{cha:bca}
+
+The implementation uses a many-sorted algebra.  The many-sorted
+message algebra described here is a reduction of the order-sorted
+message algebra in Table~\ref{tab:bca} using the method described
+in~\cite[Section~4]{GoguenMeseguer92}.  The order-sorted message
+signature is reproduced in Table~\ref{tab:order-sorted} in a form that
+uses prefix notation for every term formed using an operation.  In the
+related many-sorted signature in Table~\ref{tab:many-sorted}, the
+inclusion function\index{inclusion function} symbols are \cn{text},
+\cn{data}, \cn{name}, \cn{skey}, and \cn{akey}.  Section~4 of the
+paper describes the sense in which algebras that model the many-sorted
+signature are essentially the same as the ones that model the
+order-sorted message signature.
+
+\begin{table}
+\begin{center}
+Base sort symbols: \dom{name}, \dom{text}, \dom{data}, \dom{skey},
+\dom{akey}\\
+Non-base sort symbol: \dom{mesg} \\[1ex]
+Subsorts: \dom{name}, \dom{text}, \dom{data}, \dom{akey},
+$\dom{skey}<\dom{mesg}$\\[1ex]
+$\cn{pubk}\colon\dom{name}\rightarrow\dom{akey}\quad
+\cn{invk}\colon\dom{akey}\rightarrow\dom{akey}\quad
+\cn{ltk}\colon\dom{name}\times\dom{name}\rightarrow\dom{skey}$\\
+$\cn{enc}\colon\dom{mesg}
+\times\dom{mesg}\rightarrow\dom{mesg}\quad
+\cn{hash}\colon\dom{mesg}\rightarrow\dom{mesg}$\\
+$\cn{cat}\colon\dom{mesg}
+\times\dom{mesg}\rightarrow\dom{mesg}\quad C_i\colon\dom{mesg}$\\[1ex]
+Axiom: $\cn{invk}(\cn{invk}(x))\approx x$ for $x\colon\dom{akey}$\\
+\caption{Basic Crypto Order-Sorted Signature}\label{tab:order-sorted}
+\end{center}
+\end{table}
+
+Terms are constructed from a set $I$ of identifiers\index{identifiers}
+and a set of functions symbols.  The symbols of arity one are
+\cn{text}, \cn{data}, \cn{name}, \cn{skey}, \cn{akey}, \cn{pubk},
+\cn{invk}, and \cn{hash}.  The symbols of arity two are \cn{ltk},
+\cn{cat}, and \cn{enc}.  The signature is given in
+Table~\ref{tab:many-sorted}.  Grammar rules define the terms used by
+this algebra.
+
+\begin{table}
+\begin{center}
+Sort symbols: \dom{name}, \dom{text}, \dom{data},
+\dom{skey}, \dom{akey}, and \dom{mesg}\\[1ex]
+$\cn{pubk}\colon\dom{name}\rightarrow\dom{akey}\quad
+\cn{invk}\colon\dom{akey}\rightarrow\dom{akey}\quad
+\cn{ltk}\colon\dom{name}\times\dom{name}\rightarrow\dom{skey}$\\
+$\cn{enc}\colon\dom{mesg}
+\times\dom{mesg}\rightarrow\dom{mesg}\quad
+\cn{hash}\colon\dom{mesg}
+\rightarrow\dom{mesg}$\\
+$\cn{cat}\colon\dom{mesg}
+\times\dom{mesg}\rightarrow\dom{mesg}\quad C_i\colon\dom{mesg}$\\
+$\cn{name}\colon\dom{name}\rightarrow\dom{mesg}\quad
+\cn{text}\colon\dom{text}\rightarrow\dom{mesg}\quad
+\cn{data}\colon\dom{data}\rightarrow\dom{mesg}$\\
+$\cn{skey}\colon\dom{skey}\rightarrow\dom{mesg}\quad
+\cn{akey}\colon\dom{skey}\rightarrow\dom{mesg}$\\[1ex]
+Axiom: $\cn{invk}(\cn{invk}(x))\approx x$ for $x\colon\dom{akey}$\\
+\caption{Basic Crypto Many-Sorted Signature}\label{tab:many-sorted}
+\end{center}
+\end{table}
+
+The set of asymmetric keys $K$ is defined as follows.
+$$ K \leftarrow I \mid \cn{pubk}(I) \mid \cn{invk}(I) \mid
+\cn{invk}(\cn{pubk}(I)) $$ The key $\cn{invk}(x)$ is the inverse of
+the asymmetric key~$x$, and $\cn{pubk}(x)$ is principal $x$'s public
+key.
+
+Each occurrence of an identifier in a term is associated with a sort
+symbol.  The context in which an identifier occurs determines the
+sort.  The sort symbols are \dom{text}, \dom{data}, \dom{name},
+\dom{akey}, \dom{skey}, and \dom{mesg}, where a name refers to a
+principal.  An identifier occurrence in an asymmetric key of the form
+$\cn{pubk}(x)$ has sort \dom{name}, otherwise it has sort \dom{akey}.
+
+The set of atoms $B$ is defined as follows.
+$$ B \leftarrow \cn{text}(I) \mid \cn{data}(I) \mid \cn{name}(I) \mid
+\cn{skey}(I)\mid \cn{skey}(\cn{ltk}(I, I)) \mid \cn{akey}(K) $$ The
+atom $\cn{skey}(\cn{ltk}(x, y))$ is a symmetric, long term key
+shared between two principals~$x$, and~$y$.  The occurrence of $x$ in
+$\cn{text}(x)$ has sort \dom{text}, sort \dom{data} for
+$\cn{data}(x)$, sort \dom{name} for $\cn{name}(x)$, and sort
+\dom{skey} for $\cn{skey}(x)$.  The occurrences of $x$ and $y$ in
+$\cn{skey}(\cn{ltk}(x,y))$ both have sort \dom{name}.
+
+The set of terms $T$ is defined as follows.
+$$ T \leftarrow I \mid B \mid Q \mid \cn{cat}(T, T) \mid \cn{enc}(T,
+T) \mid \cn{hash}(T)$$ where $Q$ is the set of tags, represented by
+quoted string literals.  The second argument in \cn{enc} is a term for
+a key.  A term of the form $x$ is called an indeterminate, and the
+identifier occurrence has sort~\dom{mesg}.
+
+The terms of interest are \index{well-formed term}well-formed.  A term
+is \emph{well-formed} if every occurrence of each identifier has the
+same sort.  An example of a non-well-formed term is
+$\cn{cat}(x,\cn{akey}(x))$ because the identifier $x$ occurs with two
+sorts, \dom{mesg} and \dom{akey}.  A pair of well-formed terms are
+\emph{compatible}\index{compatible terms} if every identifier that
+occurs in both terms occurs with the same sort.
+
+A term is a variable if it specifies an identifier and its sort.
+$$ V \leftarrow I \mid \cn{text}(I)  \mid \cn{data}(I) \mid \cn{name}(I) \mid
+\cn{skey}(I)\mid \cn{akey}(I) $$ When a term is well-formed, the same
+variable is associated every occurrence of an identifier in a term.
+
+\begin{figure}
+$$
+\begin{array}{l}
+\cn{unify}(\ell, t, t') = \cn{unify\_aux}(\ell,\cn{chase}(\ell, t),
+\cn{chase}(\ell, t'))
+\\
+\\\cn{chase}(\ell, x)=
+\\ \qquad\mbox{let }t=\cn{lookup}(x,\ell)\mbox{ in}
+\\ \qquad \mbox{if }x = t\mbox{ then }x
+\mbox{ else }\cn{chase}(\ell, t)
+\\\cn{chase}(\ell, \cn{invk}(t))=\cn{chase\_invk}(\ell, t)\hfill(!)
+\\\cn{chase}(\ell, t)=t
+\\
+\\\cn{chase\_invk}(\ell, x)=\hfill(!)
+\\ \qquad\mbox{let }t=\cn{lookup}(x,\ell)\mbox{ in}\hfill(!)
+\\ \qquad \mbox{if }x = t\mbox{ then }\cn{invk}(x)
+\mbox{ else }\cn{chase\_invk}(\ell, t)\hfill(!)
+\\\cn{chase\_invk}(\ell, \cn{invk}(t))=\cn{chase}(\ell, t)\hfill(!)
+\\\cn{chase\_invk}(\ell, t)=\cn{invk}(t)\hfill(!)
+\\
+\\\cn{lookup}(x,\seq{})=x
+\\\cn{lookup}(x,(y,t)\cons\ell)=
+\mbox{if }x=y\mbox{ then }t\mbox{ else }
+\cn{lookup}(x, \ell)
+\\
+\\\cn{unify\_aux}(\ell,x,x) =\ell
+\\\cn{unify\_aux}(\ell,x,t) =\mbox{if }\cn{occurs}(x, t)\mbox{ then raise failure else }
+(x,t)\cons\ell
+\\\cn{unify\_aux}(\ell,t,x) =\cn{unify\_aux}(\ell,x,t)
+\\\cn{unify\_aux}(\ell,\cn{invk}(x),\cn{pubk}(y)) =
+\cn{unify\_aux}(\ell, x, \cn{invk}(\cn{pubk}(y)))\hfill(!)
+\\\cn{unify\_aux}(\ell,\cn{pubk}(x),\cn{invk}(y)) =
+\cn{unify\_aux}(\ell, y, \cn{invk}(\cn{pubk}(x)))\hfill(!)
+\\\cn{unify\_aux}(\ell,f(t,\ldots),f(t',\ldots)) =
+\cn{unify\_list}(\ell,\seq{t,\ldots},\seq{t',\ldots})
+\\\cn{unify\_aux}(\ell,t,t') =\mbox{raise failure}
+\\
+\\\cn{unify\_list}(\ell,\seq{},\seq{}) =\ell
+\\\cn{unify\_list}(\ell,t\cons u,t'\cons u') =
+\cn{unify\_list}(\cn{unify}(\ell,t,t'), u, u')
+\\\cn{unify\_list}(\ell,u,u') =\mbox{raise failure}
+\end{array}
+$$
+\caption{Unifier}\label{fig:unifier}
+\end{figure}
+
+There are efficient ways of implementing unification for this algebra
+because there are efficient ways for implementing for unification in
+equational theories representable by a convergent term rewrite
+system~\cite{Fay79}. As long as terms are compatible, substitutions
+produced by unifiers map an identifier that occurs with a given sort to a
+term of the same sort.  Depending on the sort symbol, a substitution is
+limited to the following forms:
+$$
+\begin{array}{cllll}
+\dom{mesg}&I\mapsto I&I\mapsto B
+&I\mapsto\cn{cat}(T,T)&I\mapsto\cn{enc}(T,T)\ldots\\
+\dom{akey}&I\mapsto I&I\mapsto\cn{pubk}(I)
+&I\mapsto\cn{invk}(I)&I\mapsto\cn{invk}(\cn{pubk}(I))\\
+\dom{skey}&I\mapsto I&I\mapsto\cn{ltk}(I, I)\\
+\dom{text}&I\mapsto I\\
+\dom{data}&I\mapsto I\\
+\dom{name}&I\mapsto I
+\end{array}
+$$
+
+The current implementation uses an algorithm for unification without
+equations described by Laurence Paulson~\cite[Page~381]{Paulson91}
+with modifications to the unification functions as shown in
+Figure~\ref{fig:unifier}, where $e\cons\ell$ means
+$\seq{e}\append\ell$.  The function \cn{unify} calls \cn{unify\_aux}
+in the unmodified version.
+
+\begin{figure}
+$$
+\begin{array}{l}
+\cn{match}(\ell,x,t) =
+\\\qquad\mbox{if }\lnot\cn{bound}(x, \ell)\mbox{ then }(x,t)\cons\ell
+\\\qquad\mbox{else if } \cn{lookup}(x,\ell)= t\mbox{ then }\ell
+\\\qquad\mbox{else raise failure}
+\\\cn{match}(\ell,f(t,\ldots),f(t',\ldots)) =
+\cn{match\_list}(\ell,\seq{t,\ldots},\seq{t',\ldots})
+\\\cn{match}(\ell,\cn{invk}(t),t') = \cn{match}(\ell,t,\cn{invk}(t'))\hfill(!)
+\\\cn{match}(\ell,t,t') =\mbox{raise failure}
+\\
+\\\cn{bound}(x,\seq{})=\cn{false}
+\\\cn{bound}(x,(y,t)\cons\ell)=
+x=y\mbox{ or }\cn{bound}(x, \ell)
+\\
+\\\cn{match\_list}(\ell,\seq{},\seq{}) =\ell
+\\\cn{match\_list}(\ell,t\cons u,t'\cons u') =
+\cn{match\_list}(\cn{match}(\ell,t,t'), u, u')
+\\\cn{match\_list}(\ell,u,u') =\mbox{raise failure}
+\end{array}
+$$
+\caption{Matcher}\label{fig:matcher}
+\end{figure}
+
+\bibliography{cpsa}
+\bibliographystyle{plain}
+
+\printindex
+
+\end{document}
diff --git a/doc/src/cpsadiagrams.mp b/doc/src/cpsadiagrams.mp
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsadiagrams.mp
@@ -0,0 +1,307 @@
+filenametemplate "%j-%c.mps";
+
+verbatimtex
+\documentclass[12pt]{article}
+\newcommand{\enc}[2]{\{\!|#1|\!\}_{#2}}
+\begin{document}
+etex
+
+input boxes;
+
+pair w; w = (4in, 0);		% Width of diagram
+
+alpha = .45;			% Row offset ratio for messages
+beta = .85;		        % Row offset ratio for shortened arrows
+
+input strands;
+
+input cmstrands;		% Use CM arrows
+
+picture node; node = btex $\bullet$ etex;
+
+% The height of a downarrow is the unit of length for a strand
+% succession edge.
+
+numeric delta;
+begingroup;
+  path p; p = bbox(btex $\downarrow$ etex);
+  delta = ypart(ulcorner p - llcorner p);
+endgroup;
+
+% The width of a leftarrow is the unit of length for a directed term
+% symbol.
+
+numeric dir_width;
+begingroup;
+  path p; p = bbox(btex $\leftarrow$ etex);
+  dir_width = xpart (lrcorner p - llcorner p);
+endgroup;
+
+% Needham-Schroeder Protocol
+
+% Initiator role
+
+beginfig(0);
+  % Backbone
+  strand.a(3, origin, delta, btex $\mathstrut\mathit{init}$ etex, node);
+
+  % Messages
+  outbnd.a(1, dir_width, btex $\enc{N_1, A}{K_B}$ etex);
+  inbnd.a(2, dir_width, btex $\enc{N_1, N_2}{K_A}$ etex);
+  outbnd.a(3, dir_width, btex $\enc{N_2}{K_B}$ etex);
+endfig;
+
+% Responder role
+
+beginfig(1);
+  % Backbone
+  strand.a(3, origin, delta, btex $\mathstrut\mathit{resp}$ etex, node);
+
+  % Messages
+  rinbnd.a(1, dir_width, btex $\enc{N_1, A}{K_B}$ etex);
+  routbnd.a(2, dir_width, btex $\enc{N_1, N_2}{K_A}$ etex);
+  rinbnd.a(3, dir_width, btex $\enc{N_2}{K_B}$ etex);
+endfig;
+
+% Intended run
+
+beginfig(2);
+  % Strand for principal A
+  strand.a(3, origin, delta, btex $\mathstrut\mathit{init}$ etex, node);
+
+  % Strand for principal B
+  strand.b(3, .5w, delta, btex $\mathstrut\mathit{resp}$ etex, node);
+
+  % Messages and arrows
+  label.top(btex $\enc{N_1, A}{K_B}$ etex, .5[a1.c, b1.c]);
+  drawmsg(a1.e -- b1.w);
+  label.top(btex $\enc{N_1, N_2}{K_A}$ etex, .5[a2.c, b2.c]);
+  drawmsg(b2.w -- a2.e);
+  label.top(btex $\enc{N_2}{K_B}$ etex, .5[a3.c, b3.c]);
+  drawmsg(a3.e -- b3.w);
+endfig;
+
+% Penetrated run
+
+beginfig(3);
+  % Strand for principal B
+  boxstrand.b(3, w, btex $\mathstrut B$ etex, node);
+  draw pic b3;
+
+  % Strand for principal P
+  boxstrand.p(4, .5w, btex $\mathstrut P$ etex, node);
+  draw pic p4;
+
+  spacestrand.p(3, delta);
+  draw pic p3;
+
+  % Strand for principal A
+  boxstrand.a(3, p3.c - p4.c, btex $\mathstrut A$ etex, node);
+  draw pic a3;
+
+  spacestrand.a(2, delta);
+  draw pic a2;
+
+  ypart b2.c = ypart a2.c;
+  draw pic b2;
+
+  spacestrand.b(1, delta);
+  draw pic b1;
+
+  ypart p2.c = ypart b1.c;
+  draw pic p2;
+
+  spacestrand.p(1, delta);
+  draw pic p1;
+
+  ypart a1.c = ypart p1.c;
+  draw pic a1;
+
+  drawsucc(a1.s -- a2.n);
+  drawsucc(a2.s -- a3.n);
+  drawsucc(p1.s -- p2.n);
+  drawsucc(p2.s -- p3.n);
+  drawsucc(p3.s -- p4.n);
+  drawsucc(b1.s -- b2.n);
+  drawsucc(b2.s -- b3.n);
+
+  label.top(btex $\enc{N_1, A}{K_P}$ etex, .5[a1.c, p1.c]);
+  drawmsg(a1.e -- p1.w);
+  label.top(btex $\enc{N_1, A}{K_B}$ etex, .5[p2.c, b1.c]);
+  drawmsg(p2.e -- b1.w);
+  label.top(btex $\enc{N_1, N_2}{K_A}$ etex, .75[b2.c, a2.c]);
+  drawmsg(b2.w -- a2.e);
+  label.top(btex $\enc{N_2}{K_P}$ etex, .5[a3.c, p3.c]);
+  drawmsg(a3.e -- p3.w);
+  label.top(btex $\enc{N_2}{K_B}$ etex, .5[p4.c, b3.c]);
+  drawmsg(p4.e -- b3.w);
+endfig;
+
+% Shape with $K^{-1}_A$ uncompromised, $N_2$ fresh
+
+beginfig(4);
+  % Strand for principal A
+  strand.a(3, origin, delta, btex $\mathstrut\mathit{init}$ etex, node);
+
+  % Strand for principal B
+  strand.b(3, w, delta, btex $\mathstrut\mathit{resp}$ etex, node);
+
+  % Centered ordering symbols
+  boxit.o1(btex \phantom{$\prec$} etex); o1.c = .5[a1.c, b1.c];
+  boxit.o2(btex $\succ$ etex); o2.c = .5[a2.c, b2.c];
+  boxit.o3(btex $\prec$ etex); o3.c = .5[a3.c, b3.c];
+
+  for i = 1 upto 3:
+    draw pic o[i];
+  endfor;
+
+  % Messages and arrows
+  label.top(btex $\enc{N_1, A}{K_C}$ etex, alpha[a1.c, o1.c]);
+  drawmsg(a1.e -- beta[a1.e,o1.w]); % Shortened arrow
+  label.top(btex $\enc{N_1, A}{K_B}$ etex, alpha[b1.c, o1.c]);
+  drawmsg(beta[b1.w,o1.e] -- b1.w); % Shortened arrow
+  label.top(btex $\enc{N_1, N_2}{K_A}$ etex, alpha[a2.c, o2.c]);
+  drawmsg(o2.w -- a2.e);
+  label.top(btex $\enc{N_1, N_2}{K_A}$ etex, alpha[b2.c, o2.c]);
+  drawmsg(b2.w -- o2.e);
+  label.top(btex $\enc{N_2}{K_C}$ etex, alpha[a3.c, o3.c]);
+  drawmsg(a3.e -- o3.w);
+  label.top(btex $\enc{N_2}{K_B}$ etex, alpha[b3.c, o3.c]);
+  drawmsg(o3.e -- b3.w);
+endfig;
+
+beginfig(5);
+  % Strand for principal A
+  strand.a(3, origin, delta, btex $\mathstrut\mathit{init}$ etex, node);
+
+  % Strand for principal B
+  strand.b(2, w + a2.c, delta, btex $\mathstrut\mathit{resp}$ etex, node);
+
+  % Centered ordering symbols
+  boxit.o1(btex $\prec$ etex); o1.c = .5[a1.c, b1.c];
+  boxit.o2(btex $\succ$ etex); o2.c = .5[a2.c, b2.c];
+
+  for i = 1 upto 2:
+    draw pic o[i];
+  endfor;
+
+  % Messages and arrows
+  label.top(btex $\enc{N_1, A}{K_B}$ etex, alpha[a1.c, o1.c]);
+  drawmsg(a1.e -- o1.w);
+  label.top(btex $\enc{N_1, A}{K_B}$ etex, alpha[b1.c, o1.c]);
+  drawmsg(o1.e -- b1.w);
+  label.top(btex $\enc{N_1, N_2}{K_A}$ etex, alpha[a2.c, o2.c]);
+  drawmsg(o2.w -- a2.e);
+  label.top(btex $\enc{N_1, N_2}{K_A}$ etex, alpha[b2.c, o2.c]);
+  drawmsg(b2.w -- o2.e);
+  label.top(btex $\enc{N_2}{K_B}$ etex,
+    alpha[a3.c, (xpart o2.c, ypart a3.c)]);
+  drawmsg(a3.c -- (beta * xpart o2.c, ypart a3.c));
+endfig;
+
+% Incompleteness example
+
+% Initiator role
+
+beginfig(6);
+  % Backbone
+  strand.a(2, origin, delta, btex $\mathstrut\mathit{init}$ etex, node);
+
+  % Messages
+  outbnd.a(1, dir_width, btex $\enc{N}{K}$ etex);
+  inbnd.a(2, dir_width, btex $N$ etex);
+endfig;
+
+% Responder role
+
+beginfig(7);
+  % Backbone
+  strand.a(2, origin, delta, btex $\mathstrut\mathit{resp}$ etex, node);
+
+  % Messages
+  rinbnd.a(1, dir_width, btex $\enc{N_1}{K}$ etex);
+  routbnd.a(2, dir_width, btex $N_2$ etex);
+endfig;
+
+% Omitted run
+
+beginfig(8);
+  % Strand for principal A
+  strand.a(2, origin, delta, btex $\mathstrut\mathit{init}$ etex, node);
+
+  % Strand for principal B
+  strand.b(2, .5w, delta, btex $\mathstrut\mathit{resp}$ etex, node);
+
+  % Messages and arrows
+  label.top(btex $\enc{N}{K}$ etex, .5[a1.c, b1.c]);
+  drawmsg(a1.e -- b1.w);
+  label.top(btex $N$ etex, .5[a2.c, b2.c]);
+  drawmsg(b2.w -- a2.e);
+endfig;
+
+beginfig(9);
+  % Strand for principal A
+  strand.a(3, origin, delta, btex $\mathstrut\mathit{init}$ etex, node);
+
+  % Strand for principal B
+  strand.b(2, w + a2.c, delta, btex $\mathstrut\mathit{resp}$ etex, node);
+
+  % Centered ordering symbols
+  boxit.o1(btex $\prec$ etex); o1.c = .5[a1.c, b1.c];
+  boxit.o2(btex $\succ$ etex); o2.c = .5[a2.c, b2.c];
+
+  for i = 1 upto 2:
+    draw pic o[i];
+  endfor;
+
+  % Messages and arrows
+  label.top(btex $\enc{N_1, A}{K_B}$ etex, alpha[a1.c, o1.c]);
+  drawmsg(a1.e -- o1.w);
+  label.top(btex $\enc{N_1, A}{K_B}$ etex, alpha[b1.c, o1.c]);
+  drawmsg(o1.e -- b1.w);
+  label.top(btex $\enc{N_1, N_2}{K_A}$ etex, alpha[a2.c, o2.c]);
+  drawmsg(o2.w -- a2.e);
+  label.top(btex $\enc{N_1, N_2'}{K_A}$ etex, alpha[b2.c, o2.c]);
+  drawmsg(b2.w -- o2.e);
+  label.top(btex $\enc{N_2}{K_B}$ etex,
+    alpha[a3.c, (xpart o2.c, ypart a3.c)]);
+  drawmsg(a3.e -- (beta * xpart o2.w, ypart a3.c));
+endfig;
+
+beginfig(10);
+  % Strand for principal A
+  strand.a(3, origin, delta, btex $\mathstrut\mathit{resp}$ etex, node);
+
+  % Strand for principal B
+  strand.b(3, w, delta, btex $\mathstrut\mathit{init}$ etex, node);
+
+  % Centered ordering symbols
+  boxit.o2(btex $\prec$ etex); o2.c = .5[a2.c, b2.c];
+  boxit.o3(btex $\succ$ etex); o3.c = .5[a3.c, b3.c];
+
+  for i = 2 upto 3:
+    draw pic o[i];
+  endfor;
+
+  % Messages and arrows
+  label.top(btex $\enc{N_1, A}{K_B}$ etex,
+      alpha[a1.c, (xpart o2.c, ypart a1.c)]);
+  drawmsg(a1.e -- (beta * xpart o2.w, ypart a1.c));
+  label.top(btex $\enc{N_1, A}{K_{B'}}$ etex,
+      alpha[b1.c, (xpart o2.c, ypart b1.c)]);
+  drawmsg((1-beta)[(xpart o2.e, ypart b1.c), b1.w] -- b1.w);
+  label.top(btex $\enc{N_1, N_2}{K_A}$ etex, alpha[a2.c, o2.c]);
+  drawmsg(a2.e -- o2.w);
+  label.top(btex $\enc{N_1, N_2}{K_A}$ etex, alpha[b2.c, o2.c]);
+  drawmsg(o2.e -- b2.w);
+  label.top(btex $\enc{N_2}{K_B}$ etex, alpha[a3.c, o3.c]);
+  drawmsg(o3.w -- a3.e);
+  label.top(btex $\enc{N_2}{K_{B'}}$ etex, alpha[b3.c, o3.c]);
+  drawmsg(b3.w -- o3.e);
+
+endfig;
+
+verbatimtex
+\end{document}
+etex
+bye;
diff --git a/doc/src/cpsafoundation.tex b/doc/src/cpsafoundation.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsafoundation.tex
@@ -0,0 +1,767 @@
+\documentclass[12pt]{article}
+
+% Much of this is taken from Deducing Security Goals From Shape
+% Analysis Sentences II
+
+\usepackage{url}
+\usepackage[matrix,arrow,curve]{xy}
+% \usepackage{hyperref}
+\usepackage{url}
+
+\usepackage{amssymb}
+\usepackage{amsmath}
+\usepackage{amsthm}
+\usepackage{color}
+
+\input{macros}
+
+\newtheorem{thm}{Theorem}
+\newcommand{\sdom}{\fn{dom}}
+\newcommand{\sran}{\fn{ran}}
+\newcommand{\vars}{\fn{Vars}}
+\newcommand{\lvars}{\fn{lvars}}
+\newcommand{\flvars}{\fn{flvars}}
+\newcommand{\invk}[1]{{#1}^{-1}}
+\newcommand{\alga}{\ast\ast\ast}
+\newcommand{\typ}{\mathbin:}
+\newcommand{\defd}{\mathord\downarrow}
+\newcommand{\inst}{\star}
+\newcommand{\init}{\fn{init}}
+\newcommand{\resp}{\fn{resp}}
+\newcommand{\form}{\mathcal{K}}
+\newcommand{\sent}{\mathcal{S}}
+\newcommand{\lang}{\mathcal{L}}
+\newcommand{\tr}{\ensuremath{{(\pm\msgc)}^+}}
+\newcommand{\rl}{\fn{rl}}
+\newcommand{\skel}{\mathbb{A}}
+\newcommand{\skl}{\mathsf{k}}
+\newcommand{\nodes}{\ensuremath{\mathcal{N}}}
+\newcommand{\ztrands}{\ensuremath{\mathcal{Z}}}
+\newcommand{\evt}{\fn{evt}}
+%  This appears not to be used.
+%  (JDG)
+% \newcommand{\orig}{\mathcal{O}}
+\newcommand{\length}[1]{\ensuremath{|#1|}}
+\newcommand{\bun}{\ensuremath{\mathcal{B}}}
+\newcommand{\insta}{\mathsf{i}}
+\newcommand{\insts}{\mathcal{I}}
+\newcommand{\role}{\mathsf{r}}
+
+\newcommand{\morph}{\ensuremath{\mathbin{\cdot\joinrel\!\!\rightarrow}}}
+
+%  First:  Some alterations to the macros:
+
+%
+
+\renewcommand{\alg}[1]{\ensuremath{\mathsf{#1}}}
+\newcommand{\msg}{\alg{Alg}}
+\newcommand{\msgc}{\overline\msg}
+\newcommand{\atm}{\alg{BV}}
+
+\newcommand{\atom}{basic value}
+\newcommand{\atomic}{basic}
+\newcommand{\Indefart}{A}
+\newcommand{\indefart}{a}
+
+\newcommand{\trace}{\fn{tr}}
+\newcommand{\ssp}{\Sigma}
+
+\newcommand{\strands}{\sdom}
+\newcommand{\str}{\fn{str}}
+\newcommand{\fac}{\fn{fac}}
+
+\newcommand{\roleuo}{\fn{rl\_uniq}}
+\newcommand{\roleno}{\fn{rl\_non}}
+
+\newcommand{\run}{\fn{Bnd}}
+\newcommand{\tracec}{\fn{trc}}
+\newcommand{\tracei}{\fn{tri}}
+\newcommand{\nonatomic}{{message}}
+\newcommand{\mess}{\fn{msg}}
+
+\newcommand{\skelB}{\mathbb{B}}
+\newcommand{\skelC}{\mathbb{C}}
+\newcommand{\skeleton}{\fn{sk}}
+\newcommand{\skeletons}{\fn{skels}}
+\newcommand{\Uni}{\mathcal{D}}
+
+\newcommand{\sat}[3]{#1\models_{#2} #3}
+\newcommand{\unsat}[3]{#1\not\models_{#2} #3}
+\newcommand{\actuals}{\ensuremath{\fn{actl}}}
+\newcommand{\cf}{\ensuremath{\fn{cf}}}
+\newcommand{\hc}{\ensuremath{\fn{hc}}}
+\newcommand{\hcf}{\ensuremath{\fn{hcform}}}
+
+\newcounter{running}[section]
+\newenvironment{renumerate}{\begin{enumerate}%
+\setcounter{enumi}{\value{running}}}%
+{\setcounter{running}{\value{enumi}}\end{enumerate}}
+
+\newtheorem{definition}{Definition}
+\newtheorem{lemma}{Lemma}
+
+\newcommand{\instsJ}{\mathcal{J}}
+
+\newcommand{\Adv}{\ensuremath{\mathsf{Adv}}}
+
+%\institute{The MITRE Corporation}
+
+\title{Strand Spaces with Channels and Rules}
+\author{Joshua D.\ Guttman\quad John D.\ Ramsdell\\
+  The MITRE Corporation\\ CPSA Version \version}
+
+\begin{document}
+\maketitle
+
+\section{Introduction}
+This paper describes the formalism on which {\cpsa4} is built.
+Section~\ref{sec:strand spaces} describes an implementation-oriented
+specification of strand spaces.  It is based on the presentation for
+{\cpsa2} in~\cite{cpsaspec09}, but modified so as to reflect changes
+implemented in {\cpsa4}.  In particular, channels and facts have been
+added to bundles and skeletons, and rules have been added to
+protocols.
+
+In previous versions of {\cpsa}, a communication event is either the
+transmission or reception of a message.  In this version of {\cpsa}, a
+communication event may optionally occur on a channel.  If during a
+run of a protocol, the adversary never transmits a message on the
+channel, the channel is considered \emph{authenticated}.  Dually, if
+during a run of a protocol, the adversary never receives a message on
+the channel, the channel is considered to be \emph{confidential}.  A
+channel that is both authenticated and confidential is \emph{secure}.
+
+The messages without an associated channel---which are thus certainly
+not assumed to be authenticated or confidential---will be
+called \emph{plain messages}.
+
+Section~\ref{sec:rule language} presents the strand spaces rule
+language that is used for rewriting.  Protocols have been redefined
+so that they include both roles and rules.
+
+\paragraph{Notation.}
+
+A finite sequence~$f$ is a function from an initial segment of the
+natural numbers.  The length of~$f$ is~$\length{f}$, and $f=\seq{f(0),\ldots,
+  f(n-1)}$ for $n=\length{f}$.  When $f$ is a sequence, we will write
+$g\colon\length{f}\rightarrow S$ to mean that $\sdom(g)=\{i\colon0\le
+i<\length{f}\}$ and $\sran(g)=S$.  Thus, in effect we are regarding
+each natural number $i$ as being the set of natural numbers smaller
+than it, like the ordinals of ZF set theory.
+
+If~$S$ is a set, then~$S^\ast$ is the set of finite sequences
+over~$S$, and~$S^+$ is the non-empty finite sequences over~$S$.
+\iffalse
+The concatenation of sequences~$f_0$ and~$f_1$ is~$f_0\append f_1$.
+\fi
+The prefix of sequence~$f$ of length~$n$ is~$\prefix{f}{n}$.
+For partial function~$g$, $g(x)\defd$ asserts $g$ is defined at~$x$.
+
+\section{Implementation-Oriented Strand Spaces}\label{sec:strand spaces}
+
+This section describes the formalism on which {\cpsa} is based.  The
+parameters to this strand space theory are:
+\begin{enumerate}
+  \item a set of messages \msg.  The set of messages~{\msg} is the
+  carrier set (or domain) of a term algebra.
+  \item a set of {\atom}s $\atm\subset\msg$.  Keys and nonces are
+  examples of {\atom}s.
+  \item a \emph{carried by} relation
+    ${\sqsubseteq}\subseteq\msg\times\msg$.  Intuitively, a
+    message~$t_0$ is carried by~$t_1$, written $t_0\sqsubseteq t_1$,
+    if it is possible to extract~$t_0$ from~$t_1$ for someone who
+    knows the relevant decryption keys.
+  \item a set of application specific predicate symbols $P$.
+\end{enumerate}
+
+\paragraph{Example Message Algebra.}
+The signature of one possible order-sorted~\cite{GoguenMeseguer92}
+message algebra is in Figure~\ref{fig:signature}.  The algebra is the
+simplification of the {\cpsa} message algebra used by the examples in
+this paper.  In an order-sorted algebra, each variable~$x$ has a
+unique sort~$S$.  The \emph{declaration} of~$x$ is $x\typ S$.
+
+The algebra of interest is the order-sorted quotient term algebra
+generated by a set of declarations~$X$.  The message algebra~$\msg_X$
+is the carrier set for sort~\srt{M}.  The set of {\atom}s~$\atm_X$ is
+the union of the carrier sets for sorts \srt{A}, \srt{S}, and \srt{D}.
+We write $t\typ S$ to say that term~$t$ is in the carrier set of
+sort~$S$.
+
+\begin{figure}
+$$\begin{array}{ll@{{}\colon{}}ll}
+\mbox{Sorts:}&
+\multicolumn{3}{l}{\mbox{\srt{M}, \srt{A}, \srt{S}, \srt{D}}}\\
+\mbox{Subsorts:}&
+\multicolumn{3}{l}{\mbox{$\srt{A}<\srt{M}$, $\srt{S}<\srt{M}$,
+    $\srt{D}<\srt{M}$}}\\
+\mbox{Operations:}&(\cdot,\cdot)&\srt{M}\times\srt{M}\to\srt{M}
+&\mbox{Pairing}\\
+&\enc{\cdot}{(\cdot)}&\srt{M}\times\srt{A}\to\srt{M}
+&\mbox{Asymmetric encryption}\\
+&\enc{\cdot}{(\cdot)}&\srt{M}\times\srt{S}\to\srt{M}
+&\mbox{Symmetric encryption}\\
+&(\cdot)^{-1}&\srt{A}\to\srt{A}
+&\mbox{Asymmetric key inverse}\\
+&\tau_0,\tau_1,\ldots&\srt{M}
+&\mbox{Tag constants}\\
+\mbox{Equations:}&\multicolumn{3}{l}{(x^{-1})^{-1}=x\mbox{ for $x\typ\srt{A}$}}
+\end{array}$$
+\caption{Simple Crypto Algebra Signature}\label{fig:signature}
+\end{figure}
+
+A variable has no intrinsic sort associated with it.  Variables occur
+in the context of a set of declarations, and a declaration for the
+variable specifies its sort.  The set of variables that occur in
+term~$t$ is $\vars(t)$.  A variable declared to be of sort~\srt{M} is
+called a \emph{{\nonatomic} variable}.
+
+A message~$t_0$ is \emph{carried by}~$t_1$, written $t_0\sqsubseteq
+t_1$, if~$t_0$ can be derived from~$t_1$ given the right set of keys.
+That is:  $\sqsubseteq$ is the smallest reflexive, transitive relation
+such that
+%
+$$t_0\sqsubseteq (t_0, t_1),\quad
+t_1\sqsubseteq (t_0, t_1),\quad\mbox{ and }\quad
+t_0\sqsubseteq\enc{t_0}{t_1}.$$
+
+\paragraph{Channel Messages}
+
+Some messages are transmitted over channels.  A channel is a variable
+of sort \srt{C}.  For $c\typ\srt{C}$ and $t\typ\srt{M} $, $[c,t]$
+associates message $t$ with channel $c$, and is called a
+\emph{channeled message}.  A message $t$ transmitted without a channel
+is written $[t]$, and is called a \emph{plain message}.
+Fig.~\ref{fig:channel:signature} shows the additions to a message
+signature required to support channels.  The sort associated with a
+channeled or plain message is \srt{CM}.  The carrier set for that sort
+is $\msgc$.  Variables of sort \srt{CM} are forbidden by the
+implementation.
+
+The carried by relation is extended to channel messages as follows:
+\[t\sqsubseteq[c,t]\mbox{ and }t\sqsubseteq[t].\]
+
+\begin{figure}
+  \[
+    \begin{array}{ll@{{}\colon{}}ll}
+      \mbox{Extra Sorts:} & \multicolumn{3}{l}{\mbox{\srt{C}, \srt{CM}}}\\
+      \mbox{Operations:} & [\cdot]&\srt{M}\to\srt{CM}\quad
+      &\mbox{Plain messages}\\
+      &[\cdot,\cdot]&\srt{C}\times\srt{M}\to\srt{CM}\quad
+         &\mbox{Channeled messages}
+    \end{array}
+  \]
+  \caption{Channel Signature additions to a Message Signature}
+  \label{fig:channel:signature}
+\end{figure}
+
+\paragraph{Strand Spaces.}
+A run of a protocol is viewed as an exchange of channel messages by a
+finite set of local sessions of the protocol.  Each local session is
+called a \emph{strand}.  The behavior of a strand, its \emph{trace},
+is a finite non-empty sequence of \emph{events}.  An \emph{event} is
+either a \emph{channel message transmission} or a \emph{channel
+  message reception}.  An event transmitting $m\in\msgc$ is written
+as~$\outbnd m$; and an event receiving channel message~$m$ is written
+as~$\inbnd m$.  If $e=\pm m$ is an event, then $\mess(e)=m$.  The set
+of traces over $\msgc$ is $\tr$.  When the context is clear,
+the plain message $[t]$ may be abbreviated by~$t$.
+
+\begin{renumerate}
+  \item A message $t$ \emph{originates} in trace~$a$ at index~$i$ iff
+  $a(i)=+t_1$, $t\sqsubseteq t_1$, and for all $j<i$,
+  $t\not\sqsubseteq\mess(a(j))$.
+  \item A message $t$ is \emph{acquired} in trace~$a$ at index~$i$ iff
+  $a(i)=-t_1$, $t\sqsubseteq t_1$, and for all
+  $j<i$, $t$ does not occur in $\mess(a(j))$.
+  \item A variable $x$ \emph{appears} in trace~$a$ at index~$i$ iff
+    $x$ occurs in $\mess(a(i))$, and for all $j<i$, $x$ does not occur
+    in $\mess(a(j))$.
+  \item For algebra homomorphism~$\sigma$,
+%
+  \[\sigma\circ\seq{\pm m_0,\ldots,\pm m_{n-1}}=
+  \seq{\pm \sigma(m_0),\ldots,\pm \sigma(m_{n-1})},\]
+%
+  so that $\prefix{(\sigma\circ
+    c)}{h}=\sigma\circ(\prefix{c}{h})=\sigma\circ\prefix{c}{h}$.
+  \item For traces~$a_1$, $a_2$, $a_1\inst a_2=\sigma$ if
+    $\sigma(\prefix{a_2}{\length{a_1}})=a_1$, and the domain
+    of~$\sigma$ is the variables that occur in
+    $\prefix{a_2}{\length{a_1}}$.  When $a_1\inst a_2$ is defined,
+    $a_1$ is said to be an \emph{instance} of $a_2$.
+  \item A \emph{strand space} is a set $\Sigma$ of values, which we
+  will call \emph{the strands of $\Sigma$}, equipped with a
+  \emph{trace-of} operator
+  $\trace\colon\Sigma\rightarrow\tr$.
+\end{renumerate}
+%
+To avoid excess notation, we generally suppress $\trace$ and regard
+$\ssp$ as the strand space.  We write $\sdom(\ssp)$ for the underlying
+set of strands, and $\ssp(s)$ for $\trace(s)$ when $s\in\sdom(\ssp)$.
+
+The set of strands $\sdom(\ssp)$ that {\cpsa} uses are of a specific
+kind.  They are finite initial segments of the natural numbers, so
+that $\ssp$ is in fact a sequence of traces.
+
+%
+Message events occur at \emph{nodes} in a strand space.  For each
+strand~$s$, there is a node for every event in~$\ssp(s)$.
+\begin{renumerate}
+  \item The \emph{nodes} of strand space $\ssp$ are
+%
+  $$ \nodes(\ssp)=\{(s,i)\mid
+  s\in\strands(\ssp), i < \length{\ssp(s)}\}
+  $$
+  %
+  and the event at a node is $\evt_{\ssp}(s,i)=\ssp(s)(i)$.
+  \item The \emph{message at} a node $n$, written $\mess_{\ssp}(n)$,
+    is $\mess(\evt_{\ssp}(n))$.
+  \item The \emph{strand succession relation}~$\Rightarrow$ is defined
+  by
+%
+  $$(s,i)\Rightarrow(s,i+1)\mbox{ iff } s\in\strands(\ssp)\mbox{ and }
+  i<\length{\ssp(s)}-1.$$
+%
+  \item {\Indefart} {\atom}~$t$ is \emph{non-originating} \emph{in a
+    strand space}~$\ssp$, written $\fn{non}(\ssp,t)$, iff it
+    originates on no strand in~$\ssp$ and each variable in $t$ occurs
+    in $\ssp$.
+  \item {\Indefart} {\atom}~$t$ \emph{uniquely originates at node} $n$
+    \emph{in strand space}~$\ssp$, written $\fn{uniq}(\ssp,t,n)$,
+    iff $t$ originates at index $i$ in $s\in\sdom(\ssp)$, $n=(s,i)$,
+    and $t$ originates on no other strand in $\sdom(\ssp)$.
+  \item An atomic formula $p(t_1,\ldots,t_m)$ is a
+    \emph{fact of} $\ssp$ iff
+    \begin{enumerate}
+    \item $p\in P$ is a predicate symbol,
+    \item $t_i\in\msgc\cup\sdom(\ssp)$, and
+    \item each variable that occurs in $t_i$ occurs in $\ssp$.
+    \end{enumerate}
+\end{renumerate}
+
+\begin{definition}[Bundle]\label{def:bundle} Let $\bun=(\ssp,\to,\omega)$, where
+  $\to\subseteq\nodes(\ssp)\times\nodes(\ssp)$ and $\omega$ is a set
+  of atomic formulas.  Relation $\to$ is called the
+  \emph{communication relation}.  $\bun$ is a \emph{bundle} iff:
+  \begin{enumerate}
+    \item $n_0\to n_1$ implies $\evt_{\ssp}(n_0)=\outbnd t$
+    and~$\evt_{\ssp}(n_1)=\inbnd t$ for some message~$t$;
+    \item $\evt_{\ssp}(n_1)=\inbnd t$ implies there exists a unique
+      $n_0$ such that $n_0\to n_1$;
+    \item $\nodes(\ssp),\to\cup\Rightarrow$ forms a well-founded
+      directed graph; and
+    \item for all $f\in\omega$, $f$ is a fact of $\ssp$.
+  \end{enumerate}
+  Let $\prec_{\bun}=(\to\cup\Rightarrow)^+$, the transitive closure of
+  the edges.
+%
+\end{definition}
+
+%
+The transitive closure $\prec_{\bun}$ is an irreflexive relation on
+$\nodes(\ssp)$.  This transitive, irreflexive relation specifies the
+causal ordering of nodes in a bundle.  A transitive irreflexive binary
+relation is also called a strict (partial) order.
+
+Since {\cpsa} manipulates only finite strand spaces, and acyclicity is
+equivalent to well-foundedness for finite graphs, {\cpsa} just checks
+acyclicity.  Thus, in $\bun=(\ssp,\to,\omega)$, the nodes form the vertices
+of a directed acyclic graph, whose edges represent communications
+$\rightarrow$ and strand succession $\Rightarrow$ in~$\ssp$.
+%
+\begin{lemma}
+  Let $\bun=(\ssp,\to,\omega)$ be a bundle.  Then $\prec_{\bun}$ is a
+  well-founded strict partial order.
+
+  If $S\subseteq\nodes(\ssp)$ is non-empty, then $S$ has
+  $\prec_{\bun}$-minimal members.
+\end{lemma}
+
+\begin{renumerate}
+  \item The strand space of bundle~{\bun} is written~$\str(\bun)$, its
+    communication relation is~$\to_\bun$, and the facts are
+    $\fac(\bun)$, so $\bun=(\str(\bun),\to_\bun,\fac(\bun))$.
+\end{renumerate}
+%
+
+\paragraph{Runs of Bare Protocols.}
+%
+In a run of a bare protocol, each strand is an instance of a role of
+that protocol.  We view adversarial strands as constrained by roles,
+just like compliant, non-adversarial strands.  Recall that when $f$ is
+a sequence, $g\colon\length{f}\rightarrow S$ means that
+$\sdom(g)=\{i\colon0\le i<\length{f}\}$.
+%
+\begin{definition}[Role, Bare Protocol]\label{def:role bare protocol}
+  ~
+  \begin{enumerate}
+    \item A \emph{role} is of the form $\role_X(a)$, where
+    \begin{description}
+      \item[$X$] is the \emph{parameters} of the role, the
+        declarations used to generate its algebra.
+      \item[$a\in\tr_X$] is the trace of the role;
+    \end{description}
+%
+    satisfying the following property:
+%
+%  A proto-role $\role(c,\nu,\upsilon)$ is a \emph{role} iff
+%
+    \begin{enumerate}
+      \item every {\nonatomic} variable is acquired on $a$, i.e.~its
+      first occurrence is in a reception event of $a$;
+    \end{enumerate}
+    \item The \emph{listener role} is
+      $\fn{lsn}=r_{\{x:\srt{M}\}}(\seq{\inbnd x, \outbnd x})$.
+    \item A \emph{bare protocol} is a set of roles that includes the
+      listener role.
+  \end{enumerate}
+\end{definition}
+%
+Notice that in one role, variable~$k$ may be declared to be of
+sort~\srt{A}, and in another, of sort~\srt{S}.
+%
+\begin{definition}\label{def:instance}
+  A strand $s\in\ssp$ is an \emph{instance} of a role $\role_Y(a)$ in
+  strand space $\ssp$ over $\msgc_X$ iff the function
+  $\fn{inst}(\ssp,s,\role_Y(a))$ is defined, and
+  $\fn{inst}(\ssp,s,\role_Y(a)) = \sigma$ when
+  \begin{enumerate}
+    \item $\length{\ssp(s)}\leq\length{a}$;
+    \item $\sigma\in\msgc_Y\to\msgc_X$; and
+    \item $\sigma = \ssp(s)\inst a$.
+  \end{enumerate}
+\end{definition}
+%
+We use the variables $\rho,\rho',\rho_i$, etc., to range over roles.
+
+\begin{figure}
+  $$\begin{array}{r@{{}={}}ll}
+    \fn{create}&\seq{\outbnd x}&
+    \mbox{$x\typ\srt{A}$ or $x\typ\srt{S}$ or $x\typ\srt{D}$}\\
+    \fn{pair}&
+    \seq{\inbnd x,\inbnd y,\outbnd (x,y)}&
+    x,y\typ\srt{M}\\
+    \fn{sep}&
+    \seq{\inbnd (x,y),\outbnd x,\outbnd y}&
+    x,y\typ\srt{M}\\
+    \fn{aenc}&
+    \seq{\inbnd x,\inbnd k,\outbnd \enc{x}{k}}&
+    \mbox{$x\typ\srt{M}$ and $k\typ\srt{A}$}\\
+    \fn{adec}&
+    \seq{\inbnd \enc{x}{k},\inbnd\invk{k},\outbnd x}&
+    \mbox{$x\typ\srt{M}$ and $k\typ\srt{A}$}\\
+    \fn{senc}&
+    \seq{\inbnd x,\inbnd k,\outbnd \enc{x}{k}}&
+    \mbox{$x\typ\srt{M}$ and $k\typ\srt{S}$}\\
+    \fn{sdec}&
+    \seq{\inbnd \enc{x}{k},\inbnd k,\outbnd x}&
+    \mbox{$x\typ\srt{M}$ and $k\typ\srt{S}$}\\
+    \fn{unchan}&
+    \seq{\inbnd[c,t],\outbnd[t]}&
+    \mbox{$c\typ\srt{C}$ and $t\typ\srt{M}$}\\
+    \fn{chan}&
+    \seq{\inbnd[t],\outbnd[c,t]}&
+    \mbox{$c\typ\srt{C}$ and $t\typ\srt{M}$}
+  \end{array}$$
+  \caption{Adversary Roles}\label{fig:adversary}
+\end{figure}
+
+\paragraph{Adversary Model.}
+The roles of adversarial behavior are in Figure~\ref{fig:adversary}.
+There are three \fn{create} roles, one for each basic sort.  In fact,
+the defining characteristic of {\indefart} {\atom} is that it denotes
+the set of messages the adversary can create out of thin air,
+consistent with origination assumptions.
+
+The adversary roles form the bare protocol $\Adv$.  We are always
+interested in bare protocols that contain these roles.  Thus, given a set
+$\Pi$ of roles that represent the legitimate, compliant behaviors of
+principals in some (real-world) bare protocol, we will refer to the roles
+of $\Pi$ as the \emph{regular} behaviors, and to strands that
+instantiate them as \emph{regular strands}.  We will be interested in
+the bundles that are executions of the ``penetrated'' bare protocol
+$\Pi^+=\Pi\cup\Adv$.
+%
+\begin{renumerate}
+%
+  \item A bundle~$\bun=(\ssp,\to,\omega)$ is a \emph{run of bare
+    protocol} $\Pi$ iff, for every $s\in\strands(\ssp)$, there is a
+    role $\rho\in\Pi^+=\Pi\cup\Adv$ such that
+    $\fn{inst}(\ssp,s,\rho)\defd$.
+%
+  \item $\run(\Pi)$ is the set of bundles that are runs of bare
+    protocol~$\Pi$.
+
+  \item For $\bun\in\run(\Pi)$, $\varrho\in\sdom(\str(\bun))\to\Pi^+$ is a
+    \emph{role assignment} if for every $s\in\sdom(\str(\bun))$,
+    $\fn{inst}(\str(\bun),s,\varrho(s))\defd$.
+
+\end{renumerate}
+%
+\begin{lemma}
+  If $\bun\in\run(\Pi)$ and $x$ is a {\nonatomic} variable, then
+  $x\not\in\vars(\bun)$.
+\end{lemma}
+%
+Ensuring this is the purpose of requiring that in each role, every
+{\nonatomic} variable in the trace is acquired.
+
+\begin{definition}
+  For bundle~$\bun=(\ssp,\to,\omega)$, channel $c$ is
+  \emph{authenticated} in~{\bun}, written $\fn{auth}(\bun,c)$, iff no
+  strand in $\ssp$ is a full length instance of the \fn{chan}
+  adversary role instantiated with~$c$.  Dually, channel $c$ is
+  \emph{confidential} in~{\bun}, written $\fn{conf}(\bun,c)$, iff no
+  strand in $\ssp$ is a full length instance of the \fn{unchan}
+  adversary role instantiated with~$c$.
+\end{definition}
+
+\paragraph{Skeletons.}
+
+A \emph{skeleton} represents part of the regular behavior in a set of
+bundles.  It consists of a strand space, a partial ordering on the
+nodes, assumptions about uncompromised keys and about freshly
+generated {\atom}s, and a set of facts.
+
+\begin{definition}\label{def:skeleton}
+  $\skel=\skl_X(\Pi,\ssp,\prec,\nu,\upsilon,\zeta,\chi,\omega)$ is a
+  \emph{skeleton of} bare protocol $\Pi$ over declarations $X$ iff:
+%
+  \begin{enumerate}
+    \item A variable is declared in~$X$ iff it occurs in $\ssp$.
+    \item For all $s<\length{\ssp}$, there is some $\rho\in\Pi$ such
+      that $\fn{inst}(\ssp,s,\rho)\defd$;
+    \item $\prec$ is a strict (partial) order on $\nodes(\ssp)$;
+    \item for all $t\in\nu$, (i) $t\in\atm_X$; and (ii) for all
+    $n\in\nodes(\ssp)$, $t\not\sqsubseteq\mess(n)$;
+    \item for all $(t,n)\in\upsilon$, (i) $t\in\atm_X$; (ii) for some
+      $n=(s,i)$, $t$ originates in $\ssp(s)$ at~$i$; and (iii) $t$
+      originates at no other node in $\nodes(\ssp)$.
+    \item for all $c\in\zeta$, $c$ is channel that occurs in strand
+      space~$\Sigma$.
+    \item for all $c\in\chi$, $c$ is channel that occurs in strand
+      space~$\Sigma$.
+    \item for all $f\in\omega$, $f$ is a fact of $\ssp$.
+  \end{enumerate}
+%
+\end{definition}
+
+We regard skeletons as giving us \emph{partial information} about a
+set of bundles; these are the executions that it is compatible with.
+This notion of compatibility is determined by the the notion of a
+homomorphism, or information-preserving map between skeletons.
+
+\begin{definition}[Homomorphism]\label{def:homomorphism}
+  Let
+  $\skel_0=\skl_X(\Pi,\ssp_0,\prec_0,\nu_0,\upsilon_0,\zeta_0,\chi_0,\omega_0)$
+  and $\skel_1=$
+  $\skl_Y(\Pi,\ssp_1,\prec_1,\nu_1,\upsilon_1,\zeta_1,\chi_1,\omega_1)$
+  be skeletons of bare protocol $\Pi$.
+
+  $H=(\phi,\sigma)$ is a \emph{skeleton homomorphism}, written
+  $H\colon \skel_0\morph \skel_1$, if~$\phi$ and~$\sigma$ are maps
+  with the following properties:
+  \begin{enumerate}
+    \item $\phi\colon\strands(\ssp_0)\to\strands(\ssp_1)$ maps strands
+    of~$\skel_0$ into those of~$\skel_1$.  We require
+    $\length{\ssp_0(s)}\le\length{\ssp_1(\phi(s))}$, and we regard
+    $\phi$ also as mapping nodes by the rule
+    $\phi((s,i))=(\phi(s),i)$;
+    \item $\sigma\colon\msgc_X\to\msgc_Y$ is a message algebra homomorphism;
+    \item for all $n\in\nodes(\ssp_0)$,
+    $\sigma(\evt_{\ssp_0}(n))=\evt_{\ssp_1}(\phi(n))$;
+    \item $n_0\prec_0 n_1$ implies $\phi(n_0)\prec_1\phi(n_1)$;
+    \item $\sigma(\nu_0)\subseteq \nu_1$;
+    \item\label{item:orig:jdg} $(t,n)\in \upsilon_0$ implies
+      $(\sigma(t), \phi(n))\in \upsilon_1$; and
+    \item $\sigma(\zeta_0)\subseteq \zeta_1$;
+    \item $\sigma(\chi_0)\subseteq \chi_1$;
+   \item $p(t_1,\ldots,t_m)\in\omega_0$ implies
+      $p(\delta(t_1),\ldots,\delta(t_m))\in\omega_1$, where
+      \[\delta(t)=\left\{
+      \begin{array}{ll}
+        \sigma(t)&\mbox{if $t\in\msg$}\\
+        \phi(t)&\mbox{if $t\in\sdom{\ssp}$.}
+      \end{array}\right.
+      \]
+
+  \end{enumerate}
+%
+\end{definition}
+%
+Property~\ref{item:orig:jdg} says the node at which {\indefart}
+{\atom} is declared to be uniquely originating is preserved by
+homomorphisms.
+%
+\begin{definition}[Skeleton of Bundle]\label{def:homomorphism to bundle}
+  ~
+  \begin{enumerate}
+    \item Suppose that $\bun$ is a bundle of bare protocol
+      $\Pi^+=\Pi\cup\Adv$, and
+      $\skel=\skl_X(\Pi,\ssp,\prec,\nu,\upsilon,\zeta,\chi,\omega)$ is
+      a $\Pi$-skeleton.  $\skel$ is a skeleton of $\bun$, written
+      $\skel\in\skeletons(\bun)$, iff the strands of $\bun$ can be
+      permuted to form bundle $\overline{\bun}$ such that $\ssp$ is a
+      prefix of $\str(\overline{\bun})$, and:
+      \begin{enumerate}
+      \item the strands not in $\ssp$ are adversary strands;
+      \item ${\prec}={\prec_{\overline\bun}\cap(\nodes(\ssp)\times\nodes(\ssp))}$;
+      \item $\nu=\{t\mid\fn{non}(\overline\bun,t)$ and each variable in~$t$
+        occurs in $\ssp\}$;
+      \item $\upsilon=\{(t,n)\mid\fn{uniq}(\overline\bun,t,n)
+        \land n\in\nodes(\ssp)\}$; and
+      \item $\zeta=\{c\mid\fn{auth}(\overline\bun,c)$ and variable $c$
+        occurs in $\ssp\}$;
+      \item $\chi=\{c\mid\fn{conf}(\overline\bun,c)$ and variable $c$
+        occurs in $\ssp\}$;
+      \item $\omega=\{f\in\fac(\overline\bun)\mid
+        \mbox{$f$ is a fact of $\ssp$}\}$.
+    \end{enumerate}
+    \item $\sembrack{\skel}=\{\bun\colon\some{\skelB}\some{H}
+    \skelB\in\skeletons(\bun)\land H\colon \skel\morph\skelB\}$.
+
+  \end{enumerate}
+
+\end{definition}
+
+\section{Strand Spaces Rule Language}\label{sec:rule language}
+
+This section describes an order-sorted first-order language intimately
+tied to strand spaces with protocols.  Given a bare protocol $\Pi$,
+the strand spaces rule language is written $\lang(\Pi)$.  The
+signature of $\lang(\Pi)$ includes the sorts, sort orderings, and the
+function symbols of the protocol's message algebra signature, such as
+the one in Figure~\ref{fig:signature}.  It also includes the strand
+sort $\srt{Z}$, and no other additions.
+
+The predicates in the signature of $\lang(\Pi)$ will now be described.
+For each role $\role_X(a)\in\Pi$, there are height and parameter
+predicates.  There are $\length{a}$ unary height predicates
+$\Pi[\role_X(a),h]\typ\srt{Z}$ with $1\leq h \leq\length{a}$.
+Relative to skeleton~$\skel$, $\Pi[\rho,h](z)$ asserts that strand~$z$
+in~$\skel$ is an instance of~$\rho$ and has a height of at least~$h$.
+For each parameter $x\typ S\in X$, there is a binary parameter
+predicate $\Pi[\role_X(a),x]\typ\srt{Z}\times S$.  Relative to
+skeleton~$\skel$, $\Pi[\rho,x](z,t)$ asserts that strand~$z$
+in~$\skel$ is an instance of~$\rho$ in which~$x$ is instantiated
+as~$t$.  If $x$ appears in $a$ and index $i$, the height of strand $z$
+must be greater than~$i$.
+
+For each base sort~$B$, there are unary predicates $\cn{non}\colon B$
+and $\cn{uniq}\colon B$.  $\cn{non}(t)$ asserts~$t$ is non-originating
+in~$\skel$ and $\cn{uniq}(t)$ asserts~$t$ uniquely originates
+in~$\skel$.
+
+There exists two predicates about channels, $\cn{auth}\colon C$ and
+$\cn{conf}\colon C$.  $\cn{auth}(c)$ asserts~$c$ is authenticated
+in~$\skel$ and $\cn{conf}(c)$ asserts~$c$ is confidential in~$\skel$.
+
+Let $m$ be the length of the longest role in~$\Pi$.  There are $m^2$
+precedence predicates $\cn{prec}[i,j]:\srt{Z}\times\srt{Z}$ for $0\leq
+i,j< m$.  $\cn{prec}[i,j](x,y)$ asserts that node $(x,i)$ is before
+node $(y,j)$ in~$\skel$.  There are $3m$ origin predicates
+$\cn{uniq-at}[i]:B\times\srt{Z}$, with $0\leq i< m$ and $B$ as before.
+$\cn{uniq-at}[i](t,z)$ asserts that~$t$ uniquely originates in~$\skel$
+at node $(z,i)$.  For each fact predicate symbol $p$,
+$\cn{fact}[p](t_1,\ldots,t_m)$ asserts that $p(t_1,\ldots,t_m)$ is a
+fact of $\skel$.  Finally, equality is binary.
+
+To improve the readability of formulas to follow, we write
+$\cn{prec}(x,i,y,j)$ for $\cn{prec}[i,j](x,y)$, $\cn{uniq-at}(t,z,i)$
+for $\cn{uniq-at}[i](t,z)$, and $\cn{fact}(p,t_1,\ldots,t_m)$ for
+$\cn{fact}[p](t_1,\ldots,t_m)$.
+
+\paragraph{Semantics of Strand Space Rule Formulas.}
+
+When formula~$\Phi$ is satisfied in skeleton~$\skel$ with order-sorted
+variable assignment $\alpha$, we write $\skel,\alpha\models\Phi$.  For
+$x:S\in X$, $\alpha(x)$ is in the carrier set of $\msg_X$ for
+sort~$S$.  For $x:\srt{Z}$, $\alpha(x)\in\sdom(\ssp)$.  We
+write~$\bar\alpha$ when~$\alpha$ is extended to terms in the obvious
+way.  When sentence~$\Phi$ is satisfied in skeleton~$\skel$, we write
+$\skel\models\Phi$.  The semantics of atomic formulas is given in
+Figure~\ref{fig:semantics}.
+
+\begin{figure}
+  Let $\skel=\skl_X(\Pi,\ssp,\prec,\nu,\upsilon,\zeta,\chi,\omega)$.
+  \begin{itemize}
+  \item $\skel,\alpha\models\Pi[\role_X(a),h](z)$ iff
+    $\length{\ssp(s)}\geq h$ and
+    $\prefix{\ssp(s)}{h}\inst a\defd$, where $s=\alpha(z)$.
+  \item $\skel,\alpha\models P[\role_X(a),x](z,t)$ iff
+    $\length{\ssp(s)}\geq h$,
+    $\prefix{\ssp(s)}{h}\inst a=\sigma$, and
+    $\sigma(x)=\bar\alpha(t)$,
+    where $s=\alpha(z)$, $x$ appears in $a$ at index $i$, and $h=i+1$.
+  \item $\skel,\alpha\models\cn{prec}(x,i,y,j)$ iff
+    $(\alpha(x),i)\prec(\alpha(y),j)$.
+  \item $\skel,\alpha\models\cn{non}(t)$ iff $\bar\alpha(t)\in\nu$.
+  \item $\skel,\alpha\models\cn{uniq}(t)$ iff
+    ($\bar\alpha(t),n)\in\upsilon$ for some node $n$.
+  \item $\skel,\alpha\models\cn{uniq-at}(t,z,i)$ iff
+    $(\bar\alpha(t),(\alpha(z),i))\in\upsilon$.
+  \item $\skel,\alpha\models\cn{auth}(c)$ iff $\alpha(c)\in\zeta$.
+  \item $\skel,\alpha\models\cn{conf}(c)$ iff $\alpha(c)\in\chi$.
+  \item $\skel,\alpha\models\cn{fact}(p,t_1,\ldots,t_m)$ iff
+    $p(\bar\alpha(t_1),\ldots,\bar\alpha(t_m))\in\omega$.
+  \item $\skel,\alpha\models y=z$ iff $\bar\alpha(y)=\bar\alpha(z)$.
+  \end{itemize}
+  \caption{Strand Space Rule Formula Semantics}\label{fig:semantics}
+\end{figure}
+
+\paragraph{Rule Syntax.}
+
+Given a bare protocol $\Pi$, a rule is an order-sorted first-order
+sentence in $\lang(\Pi)$ with a restricted syntax.  A rule is an
+implication in which the antecedent is a conjunction of atomic
+formulas, and the conclusion is a disjunction of possibly
+existentially quantified conjunctions of atomic formulas.
+
+\begin{definition}[Rule]\label{def:rule}
+  A \emph{rule} is a sentence of the form
+  \[\all{\vec{x}}\Phi\supset\bigvee_i\some{\vec{y}_i}\Psi_i,\mbox{
+    where}\]
+  \begin{enumerate}
+  \item $\Phi$ and $\Psi_i$ are conjunctions of atomic formulas,
+  \item each variable that occurs free in $\vee_i\some{\vec{y}_i}\Psi_i$,
+    occurs in $\Phi$,
+  \item each strand variable in $\vec{y}_i$ occurs in a height formula
+    in $\Psi_i$, and
+  \item each non-strand variable in $\vec{y}_i$ occurs in a parameter
+    formula in $\Psi_i$.
+  \end{enumerate}
+\end{definition}
+
+\begin{definition}[Protocol]\label{def:protocol}
+  $\Upsilon=(\Pi,A)$ is a \emph{protocol} iff $\Pi$ is a bare protocol
+  and $A$ is a set of rules in $\lang(\Pi)$.
+\end{definition}
+
+\begin{definition}[Run of Protocol]\label{def:run of protocol}
+  Bundle $\bun$ is a \emph{run of protocol} $\Upsilon=(\Pi,A)$ iff
+  $\bun$ is a run of bare protocol $\Pi$ and for all
+  $\skel\in\skeletons(\bun)$ and rules $\Phi\in A$,
+  $\skel\models\Phi$.
+\end{definition}
+
+The strand spaces rule language is a descendent of the security goal
+language~\cite{Guttman14}.  They are very similar, but differ in several
+ways.
+
+\begin{enumerate}
+\item Pairing and encryption is purposely omitted from the security
+  goal language.
+\item The security goal language has variables that range over nodes
+  rather than strands as is the case for the strand spaces rule
+  language.
+\item Node variables that occur in the antecedent of a security goal
+  sentence occur in a height predicate in the antecedent.
+\item Non-node variables that occur in the antecedent of a sentence occur
+  in a parameter predicate in the antecedent.
+\item Facts are not part of the security goal language.
+\end{enumerate}
+
+\bibliography{cpsa}
+\bibliographystyle{plain}
+
+\end{document}
diff --git a/doc/src/cpsagoals.tex b/doc/src/cpsagoals.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsagoals.tex
@@ -0,0 +1,842 @@
+\documentclass[12pt]{article}
+\usepackage{amssymb}
+\usepackage{amsmath}
+\usepackage{url}
+\usepackage{graphicx}
+\usepackage{alltt}
+\usepackage[matrix,arrow,curve]{xy}
+\input{macros}
+
+\newcommand{\sym}[1]{\textup{\texttt{#1}}}
+\newcommand{\iv}[1]{\ensuremath{{#1}^{-1}}}
+
+\newtheorem{axiom}{Trust Assumption}
+
+\title{CPSA Security Goals and Rules}
+\author{Joshua D. Guttman and John D.~Ramsdell\\
+  The MITRE Corporation\\ CPSA Version \version}
+
+\begin{document}
+\maketitle
+\cpsacopying
+
+\tableofcontents
+
+\newpage
+
+\listoffigures
+
+\listoftables
+
+\newpage
+
+\section{Introduction}
+
+\begin{sloppypar}
+Analyzing a cryptographic protocol means finding out what security
+properties---essentially, authentication and secrecy properties---are
+true in all its possible executions.
+\end{sloppypar}
+
+Given a protocol definition and some assumptions about executions,
+{\cpsa} attempts to produce descriptions of all possible executions of
+the protocol compatible with the assumptions.  Naturally, there are
+infinitely many possible executions of a useful protocol, since
+different participants can run it with varying parameters, and the
+participants can run it repeatedly.
+
+However, for many naturally occurring protocols, there are only
+finitely many of these runs that are essentially different.  Indeed,
+there are frequently very few, often just one or two, even in cases
+where the protocol is flawed.  We call these essentially different
+executions the \emph{shapes} of the protocol.  Authentication and
+secrecy properties are easy to ``read off'' from the shapes, as are
+attacks and anomalies, according to the introduction in the {\cpsa}
+Primer~\cite{cpsaprimer09}.
+
+But how easy is it to read off authentication and secrecy properties?
+What precisely is it that an expert sees?  This paper describes
+{\cpsa}'s support for reasoning about security goals using first-order
+logic.  With security goals expressed in first-order logic, intuition
+is replaced by determining if a formula is true in all executions of
+the protocol.
+
+% \emph{Something about the benefits of first-order logic goes here.}
+
+This treatment of security goals relies heavily on a branch of
+first-order logic called model theory.  It deals with the relationship
+between descriptions in first-order languages and the structures that
+satisfy these descriptions.  In our case, the structures are skeletons
+that denote a collection of executions of a protocol.  This paper
+attempts to describe the language of security goals and its
+structures without requiring the reader to have studied model theory.
+
+The model theoretical foundation of this approach to security goals
+appears in~\cite{Guttman14}.  A practical use of security goals in
+protocol standardization is described in~\cite{GuttmanLiskovRowe14}.
+The precise semantics of the goal language is
+in~\cite[Appendix~C]{cpsaspec09}.  The syntax of security goals
+appears in~\cite[Table~2]{cpsaprimer09}.
+
+The distribution in which this paper is included contains the sample
+input {\cpsa} file \texttt{goals.scm}.  It contains the examples in
+this paper.  You are encouraged to run the examples and examine the
+output while reading this paper.
+
+%% Use a margin width of 62 for S-expressions
+
+\begin{figure}
+\begin{center}
+\includegraphics{cpsadiagrams-0.mps}\hfil
+\includegraphics{cpsadiagrams-1.mps}\\
+\end{center}
+\begin{center}
+\begin{minipage}{3in}
+\begin{verbatim}
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace
+     (send (enc n1 a (pubk b)))
+     (recv (enc n1 n2 (pubk a)))
+     (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace
+     (recv (enc n1 a (pubk b)))
+     (send (enc n1 n2 (pubk a)))
+     (recv (enc n2 (pubk b))))))
+\end{verbatim}
+\end{minipage}
+\end{center}
+\caption{Needham-Schroeder Initiator and Responder Roles}
+\label{fig:ns roles}
+\end{figure}
+
+\begin{figure}
+\begin{verbatim}
+(defgoal ns                ; Goal
+  (forall ((b name) (n1 text) (z0 strd))
+    (implies
+      (and (p "init" z0 3) (p "init" "n1" z0 n1)
+        (p "init" "b" z0 b) (non (privk b)) (uniq n1))
+      (exists ((z1 strd))
+        (and (p "resp" z1 2) (p "resp" "b" z1 b))))))
+
+(defskeleton ns            ; Point of view skeleton
+  (vars (a b name) (n1 n2 text))
+  (defstrand init 3 (a a) (b b) (n1 n1) (n2 n2))
+  (non-orig (privk b))
+  (uniq-orig n1))
+\end{verbatim}
+\begin{center}
+\includegraphics{cpsadiagrams-9.mps}
+\end{center}
+\begin{verbatim}
+(defskeleton ns            ; Shape
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-orig n1)
+  (satisfies yes))
+\end{verbatim}
+\caption{Needham-Schroeder Initiator Point of View}
+\label{fig:ns init}
+\end{figure}
+
+The {\cpsa} Primer~\cite{cpsaprimer09} is a prerequisite for reading
+this paper.  In particular, the Needham-Schroeder Protocol in
+Section~10 is reanalyzed using security goals here.  The roles are
+displayed in Figure~\ref{fig:ns roles}.
+
+The protocol is analyzed from the point of view of a complete run of
+one instance of the initiator role.  The input security goal, followed
+by the point of view skeleton it generates and the shape produced by
+{\cpsa}, are shown in Figure~\ref{fig:ns init}.  The syntax and
+semantics of the goal will be explained later.  Roughly speaking, it
+asserts that if a realized skeleton contains a full length initiator
+strand, its private key is uncompromised, and it uniquely generates
+\texttt{n1}, then the skeleton will contain a responder strand that
+agrees with the initiator on the name \texttt{b}.  The shape produced
+by {\cpsa} contains the annotation \texttt{(satisfies yes)}.  This
+indicates that its structure satisfies the description given by the
+security goal.  It will be explained later why the properties of
+{\cpsa} allows us to conclude that this goal is true in all executions
+of the protocol, and therefore conclude that the Needham-Schroeder
+protocol achieves this authentication goal.
+
+\section{Syntax}\label{sec:syntax}
+
+To be precise, a security goal is an order-sorted first-order logic
+sentence in a restricted form.  The sentence in Figure~\ref{fig:ns
+  init} has the form shared by all security goals.  It is a
+universally quantified implication.  The antecedent is a conjunction
+of atomic formulas.  For this sentence, the conclusion is an
+existentially quantified conjunction of atomic formulas, but in
+general, the conclusion is a disjunction of existentially quantified
+conjunctions of atomic formulas.  In what follows, \sym{(false)} is a
+synonym for the empty disjunction, \sym{(or)}.
+
+\begin{center}\scshape
+  \begin{tabular}{rcl}
+  goal&$\leftarrow$&(\sym{defgoal} prot sent$+$ comments)
+  \\ sent&$\leftarrow$&(\sym{forall} (decl$\ast$) (\sym{implies} antec concl))
+  \\ concl&$\leftarrow$&(\sym{false})
+  $\mid$ existl $\mid$ (\sym{or} existl$\ast)$
+  \\ existl&$\leftarrow$&(\sym{exists}
+  (decl$\ast$) antec) $\mid$ antec
+  \\ antec&$\leftarrow$&atomic $\mid$ (\sym{and} atomic+)
+  \end{tabular}
+\end{center}
+
+Variables are declared as they are for roles and skeletons with one
+exception, there is a new sort symbol \sym{strd} for strands.  Notice
+that in the sentence in Figure~\ref{fig:ns init}, variables \sym{z0}
+and \sym{z1} have sort \sym{strd}.  Every universally quantified
+variable must occur in the antecedent of the implication.
+
+The signature as been expanded to include the natural numbers.  A
+natural number has sort \sym{nat}.
+
+The predicates used to construct an atomic formula (\textsc{atomic})
+are listed in Table~\ref{tab:predicates}.  There are two classes of
+predicates, protocol specific and protocol independent predicates, and
+two kinds of protocol specific predicates, role strand length and role
+parameter predicates.  Protocol specific predicates are distinguished
+from protocol independent predicates by beginning with the symbol
+\texttt{p}.
+
+The first line of the table gives the syntax of a role strand length
+predicate.  It contains two tokens, \texttt{p} and a string that names
+a role.  That is, for role~$r$, there is a role strand length
+predicate, \mbox{\texttt{p} $r$}.  Thus \verb|(p "init" z0 3)| is an
+atomic formula using the role strand length predicate for length 3 in the
+\texttt{init} role of the protocol in Figure~\ref{fig:ns roles}.
+
+The second line gives the syntax of a role parameter predicate.  It
+contains three tokens, \texttt{p}, a string that names a role, and a
+string that names a role variable.  For role~$r$, there is role
+parameter predicate for each variable declared by~$r$.  Thus
+\verb|(p "init" "n1" z0 n1)| is an atomic formula using the role
+parameter predicate for parameter \text{n1} in the \texttt{init} role
+of the protocol.
+
+The empty string names the listener role of a protocol.  The role
+has the variable \texttt{x} of sort \texttt{mesg} as its only role
+variable.  There are two positions in the listener role.  Its trace is
+\texttt{(trace (recv x) (send x))}.
+
+When a variable of sort \sym{strd} occurs in a formula, its length
+must be specified using a role strand length formula.  When an algebra
+variable occurs in a formula, its association with the parameter of
+some role must be specified using a role parameter formula.
+
+\begin{table}
+\begin{center}
+  \begin{tabular}{lcl}
+    Symbol & Sort & Description\\
+    \hline
+    \scshape\sym{p} role & $\dom{strd}\times\dom{nat}$ & \mbox{Role
+      strand length} \\
+    \scshape\sym{p} role param & $\dom{strd}\times\dom{mesg}$
+    & \mbox{Role parameter} \\
+    \sym{prec}& $\dom{strd}\times\dom{nat}\times\dom{strd}\times\dom{nat}$
+    & \mbox{Precedes} \\
+    \sym{non}& \dom{atom}
+    & \mbox{Non-origination} \\
+    \sym{pnon}& \dom{atom}
+    & \mbox{Penetrator non-origination} \\
+    \sym{uniq}& \dom{atom}
+    & \mbox{Unique origination} \\
+    \sym{uniq-at}& $\dom{atom}\times\dom{strd}\times\dom{nat}$
+    & \mbox{Unique origination on strand} \\
+    \sym{auth}& \dom{chan}
+    & \mbox{Authenticated channel} \\
+    \sym{conf}& \dom{chan}
+    & \mbox{Confidential channel} \\
+    $=$ & $\dom{all}\times\dom{all}$ & Equality
+  \end{tabular}
+\end{center}
+\caption{Predicates}\label{tab:predicates}
+\end{table}
+
+\section{Semantics}\label{sec:semantics}
+
+In a \texttt{defgoal} sentence, the antecedent specifies the point of
+view skeleton.  We focus on the antecedent.  In the example,
+
+\begin{quote}
+\begin{verbatim}
+(defstrand init 3 (a a) (b b) (n1 n1) (n2 n2))
+\end{verbatim}
+\end{quote}
+is extracted from
+\begin{quote}
+\begin{verbatim}
+(and (p "init" z0 3)
+  (p "init" "n1" z0 n1) (p "init" "b" z0 b)).
+\end{verbatim}
+\end{quote}
+Notice that {\cpsa} adds a binding for \texttt{a} and \texttt{n2} just
+as it does had
+\begin{quote}
+\begin{verbatim}
+(defstrand init 3 (b b) (n1 n1))
+\end{verbatim}
+\end{quote}
+been given as input.
+
+Our aim now is to specify how to decide if a security goal is true in
+all possible executions of a protocol.  A skeleton defines a set of
+executions that contain the skeleton's structure.  We say a skeleton
+\emph{satisfies} a formula if the skeleton contains all of the
+structure specified by the formula.  To decide if a skeleton
+satisfies a formula, we decide if it satisfies each of its atomic
+formulas, and combine the results using the rules of first-order
+logic.
+
+Atomic formula \texttt{(p "init" z0 3)} is called a role strand length
+formula.  A skeleton~$k$ satisfies the formula if \texttt{z0} maps to
+a strand~$s$ in~$k$ such that
+\begin{enumerate}
+\item the trace of strand~$s$ in~$k$ has a length greater than 2, and
+\item the trace when truncated to length 3 is an instance of the init
+  role.
+\end{enumerate}
+Consider the shape in Figure~\ref{fig:ns init}.  It satisfies
+\texttt{(p "init" z0 3)} when \texttt{z0} maps to~0.
+
+Atomic formula \texttt{(p "init" "n1" z0 n1)} is called a role
+parameter formula.  A skeleton~$k$ satisfies the formula if
+\texttt{z0} maps to strand~$s$ in~$k$, \texttt{n1} first occurs in at
+position~$i$ in the trace of the init role, and \texttt{n1} maps to a
+message algebra term~$t$ in~$k$ such that
+\begin{enumerate}
+\item the trace of strand~$s$ in~$k$ has a length greater than~$i$,
+\item the trace truncated to length $i+1$ is an instance of the
+  init role, and
+\item the truncated trace is compatible with mapping the init role's
+  \texttt{"n1"} role variable to~$t$.
+\end{enumerate}
+The shape in Figure~\ref{fig:ns init} satisfies \texttt{(p "init" "n1"
+  z0 n1)} when \texttt{z0} maps to~0 and \texttt{n1} maps to the
+message algebra term \texttt{n1}.
+
+Collectively, a skeleton satisfies the formula
+\begin{quote}
+\begin{verbatim}
+(and (p "init" z0 3)
+     (p "init" "a" z0 a) (p "init" "b" z0 b)
+     (p "init" "n1" z0 n1) (p "init" "n2" z0 n2))
+\end{verbatim}
+\end{quote}
+if the skeleton contains the structure specified by
+\begin{quote}
+\begin{verbatim}
+(defstrand init 3 (a a) (b b) (n1 n1) (n2 n2)).
+\end{verbatim}
+\end{quote}
+
+The antecedent in Figure~\ref{fig:ns init} contains two origination
+assertions.  The formula \texttt{(non (privk b))} is extracted as
+\texttt{(privk b)}.  A skeleton~$k$ satisfies the formula if
+\texttt{b} maps to a message algebra term~$t$ in~$k$ such that~$k$
+assumes that~$t$ is non-originating.  The unique origination formula for
+\texttt{n1} is similarly extracted.
+
+Putting it all together, the mapping
+\[\{\mathtt{n1}\mapsto\mathtt{n1},
+\mathtt{n2}\mapsto\mathtt{n2}, \mathtt{a}\mapsto\mathtt{a},
+\mathtt{b}\mapsto\mathtt{b},\mbox{\tt z0}\mapsto0\}\] shows that
+the shape in Figure~\ref{fig:ns init} satisfies the antecedent of the
+security goal.
+
+The \texttt{prec} predicate is used to assert a node precedes another
+node.  The conclusion in Figure~\ref{fig:ns init} with \texttt{(prec
+  z1 1 z0 2)} added is satisfied by the shape using the mapping
+$\mbox{\tt z0}\mapsto0$ and $\mbox{\tt z1}\mapsto1$.
+
+The \texttt{uniq-at} predicate is used to assert not only that an atom
+uniquely originates, but also the node at which it originates.  In the
+Figure~\ref{fig:ns init} goal, the \texttt{(uniq n1)} formula could
+have been replaced by \texttt{(uniq-at n1 z0 0)}.  The extracted point
+of view skeleton is the same.
+
+Recall that our aim in analyzing a protocol is to find out what
+security goals are true in all of its possible executions.  We are
+interested in runs of {\cpsa} that show that when every shape
+satisfies a goal, it is true in every execution.
+
+When {\cpsa} performs a shape analysis, every shape it generates
+refines the input skeleton.  Skeleton refinement is defined
+in~\cite[Section~6]{cpsaprimer09}.  The definition makes precise the
+notion of structure containment, as skeleton~$A$ refines skeleton~$B$
+if and only if~$A$ contains the structure of skeleton~$B$.
+
+The skeleton~$k_0$ extracted from the antecedent of a security goal
+has the property that a skeleton refines~$k_0$ if and only if it
+satisfies the antecedent.  A skeleton with this property is called the
+\emph{characteristic skeleton} of the antecedent.
+
+Given a goal~\(\Phi\), consider a shape analysis starting from the
+characteristic skeleton~$k_0$ of its antecedent.  Assume {\cpsa} finds
+shapes $k_1,\ldots,k_n$ and that {\cpsa} determines that each~$k_i$
+satisfies~$\Phi$.  Consider the executions that contain the structure
+in~$k_0$.  {\cpsa} tells us that each execution is in the executions
+that contain the structure of some~$k_i$.  Furthermore, because~$k_0$
+is a characteristic skeleton, each~$k_i$ satisfies the antecedent
+of~$\Phi$.  Executions that do not contain the structure in~$k_0$ do
+not satisfy the antecedent.  Therefore,~$\Phi$ is true in all
+executions of the protocol and maximally informative.
+
+\section{Examples}\label{sec:examples}
+
+This section contains examples of both authentication and secrecy
+goals.  The first example shows the feedback the user receives when a
+shape does not satisfy a security goal.  The second example shows how
+to use a listener to state a secrecy goal.
+
+\subsection{Needham-Schroeder Responder}\label{sec:ns resp}
+
+\begin{figure}
+\begin{verbatim}
+(defgoal ns                ; Goal
+  (forall ((a b name) (n2 text) (z0 strd))
+    (implies
+      (and (p "resp" z0 3) (p "resp" "n2" z0 n2)
+        (p "resp" "a" z0 a) (p "resp" "b" z0 b)
+        (non (privk a)) (uniq n2))
+      (exists ((z1 strd))
+        (and (p "init" z1 2) (p "init" "b" z1 b))))))
+
+(defskeleton ns            ; Point of view skeleton
+  (vars (a b name) (n1 n2 text))
+  (defstrand resp 3 (a a) (b b) (n1 n1) (n2 n2))
+  (non-orig (privk a))
+  (uniq-orig n2))
+\end{verbatim}
+\begin{center}
+\includegraphics{cpsadiagrams-10.mps}
+\end{center}
+\begin{verbatim}
+(defskeleton ns            ; Shape
+  (vars (n1 n2 text) (a b b-0 name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig n2)
+  (satisfies (no (a a) (b b) (n2 n2) (z0 0))))
+\end{verbatim}
+\caption{Needham-Schroeder Responder Point of View}
+\label{fig:ns resp}
+\end{figure}
+
+Figure~\ref{fig:ns resp} contains an analysis of Needham-Schroeder
+from the point of view of a complete run of the responder under the
+assumption that the responder's private key is uncompromised and the
+nonce it generates uniquely originates.
+
+The conclusion of the goal asserts that in an execution compatible
+with the point of view, there must be an initiator strand that agrees
+with the responder strand on the name \texttt{b}.  The shape produced
+by {\cpsa} is a counterexample to this assertion.  Because of this,
+{\cpsa} annotates the shape with
+\begin{quote}
+\begin{verbatim}
+(satisfies (no (a a) (b b) (n2 n2) (z0 0))).
+\end{verbatim}
+\end{quote}
+The annotation includes a variable mapping for the shape that
+satisfies the antecedent of the goal but does not satisfy its
+conclusion.  The reason the shape does not satisfy the goal is because
+the mapping \texttt{(b b)} maps the initiator's \texttt{b} parameter
+to \texttt{b}, not \texttt{b-0} as is required to model the shape.
+
+Galvin Lowe identified this authentication failure in
+Needham-Schroeder and provided a fix.  In the Needham-Schroeder-Lowe
+Protocol, the name \texttt{b} is included within the encryption in second
+message of both roles.  With this modification, the shape found by
+{\cpsa} satisfies the security goal in Figure~\ref{fig:ns resp}, so
+Needham-Schroeder-Lowe achieves this authentication goal.
+
+\subsection{A Needham-Schroeder Secrecy Goal}\label{sec:secrecy goal}
+
+\begin{figure}
+\begin{quote}
+\begin{verbatim}
+(defgoal ns
+  (forall ((a b name) (n1 text) (z0 z1 strd))
+    (implies
+      (and (p "init" z0 3) (p "init" "n1" z0 n1)
+        (p "init" "a" z0 a) (p "init" "b" z0 b)
+        (p "" z1 1) (p "" "x" z1 n1)  ; Listener
+        (non (privk a)) (non (privk b))
+        (uniq n1))
+      (false))))
+\end{verbatim}
+\end{quote}
+\caption{Needham-Schroeder Secrecy Goal}\label{fig:ns secrecy}
+\end{figure}
+
+Figure~\ref{fig:ns secrecy} contains an analysis of Needham-Schroeder
+from the point of view of a complete run of the initiator under the
+assumption that the responder's and its peer's private keys are
+uncompromised and the nonce~\texttt{n1} it generates uniquely
+originates.  Futhermore, the point of view asserts that the nonce is
+leaked using a listener.
+\begin{quote}
+\begin{verbatim}
+(p "" z1 1) (p "" "x" z1 n1)    ; Listener
+\end{verbatim}
+\end{quote}
+
+{\cpsa} finds no shapes, so Needham-Schroeder achieves this secrecy
+goal and does not leak~\texttt{n1}.
+
+\section{The Rest of the Story}\label{sec:whole story}
+
+The examples in the previous section demonstrate the typical way
+security goals are analyzed with {\cpsa}.  However, there are more
+features that may be useful.
+
+A \texttt{defgoal} form may contain more than one sentence.  See
+Figure~\ref{fig:ns init goals} for an example.  When presented with
+more than one sentence, {\cpsa} extracts the point of view skeleton
+from the first sentence.
+
+It is wise to ensure that the antecedent in every sentence is
+identical.  When {\cpsa} performs satisfaction-checking on
+sentence~$\Phi$, it only determines if each shape it finds is
+satisfied.  If the point of view skeleton is not the characteristic
+skeleton of the antecedent of~$\Phi$, the fact that all skeletons
+satisfy~$\Phi$ cannot be used to conclude that~$\Phi$ is true in all
+executions of the protocol.
+
+\begin{figure}
+\begin{quote}
+\begin{verbatim}
+(defgoal ns
+  (forall ((a b name) (n text) (z0 strd))
+    (implies
+      (and (p "init" z0 2) (p "init" "n1" z0 n)
+        (p "init" "a" z0 a) (p "init" "b" z0 b)
+        (non (privk a)) (non (privk b)) (uniq n))
+      (exists ((z1 strd))
+        (and (p "resp" z1 2) (p "resp" "b" z1 b)))))
+  (forall ((a b name) (n text) (z0 strd))
+    (implies
+      (and (p "init" z0 2) (p "init" "n1" z0 n)
+        (p "init" "a" z0 a) (p "init" "b" z0 b)
+        (non (privk a)) (non (privk b)) (uniq n))
+      (exists ((z1 strd))
+        (and (p "resp" z1 2) (p "resp" "a" z1 a))))))
+\end{verbatim}
+\end{quote}
+\caption{Two Initiator Authentication Goals}\label{fig:ns init goals}
+\end{figure}
+
+{\cpsa} performs satisfaction-checking when an input skeleton in annotated
+with one or more security goals.  The annotation uses the
+\texttt{goals} key.
+
+\begin{quote}
+  \begin{alltt}
+(defskeleton
+   \ldots
+   (goals \textsc{sent\ensuremath{+}}))
+  \end{alltt}
+\end{quote}
+
+The program \texttt{cpsasas}, discussed in the next section, can be
+used to generate a formula with an antecedent such that the input
+skeleton is the characteristic skeleton of the antecedent.
+
+\subsection{Shape Analysis Sentences}\label{sec:sas}
+
+A shape analysis sentence expresses all that can be learned from a run
+of {\cpsa} as a security goal.  If a security goal can be derived from
+a shape analysis sentence, then the protocol achieves the security
+goal, that is, the goal is true in all executions of the protocol.
+
+The program \texttt{cpsasas} extracts shape analysis sentences from
+the output of {\cpsa}.  Consider the first example in this paper
+(Figure~\ref{fig:ns init}), which is in the sample file
+\texttt{goals.scm}.  To generate a maximally informative security goal
+from the initiator point of view with \texttt{ghci} and
+\texttt{Make.hs}, type
+\begin{quote}
+\begin{verbatim}
+$ ghci Make.hs
+*Make> sas "goals"
+\end{verbatim}
+\end{quote}
+When using GNU make, type ``\texttt{make goals\_sas.text}''.  The
+resulting shape analysis sentence is displayed in Figure~\ref{fig:ns
+  sas}.
+
+\begin{figure}
+\begin{verbatim}
+(defgoal ns
+  (forall ((n1 n2 text) (b a name) (z strd))
+    (implies
+      (and (p "init" z 3) (p "init" "n1" z n1)
+        (p "init" "n2" z n2) (p "init" "a" z a)
+        (p "init" "b" z b) (non (privk b)) (uniq-at n1 z 0))
+      (exists ((n2-0 text) (z-0 strd))
+        (and (p "resp" z-0 2) (p "resp" "n2" z-0 n2-0)
+          (p "resp" "n1" z-0 n1) (p "resp" "b" z-0 b)
+          (p "resp" "a" z-0 a) (prec z 0 z-0 0)
+          (prec z-0 1 z 1))))))
+\end{verbatim}
+\caption{Initiator Shape Analysis Sentence}\label{fig:ns sas}
+\end{figure}
+
+A shape analysis sentences asserts that either a realized skeleton
+does not satisfy its antecedent or it satisfies one or more of the
+disjuncts in its conclusion.  {\cpsa} has been designed so that this
+assertion is true.  Therefore, every shape analysis sentence is true
+in all executions.
+
+A security goal is true in all executions if it can be derived from a
+shape analysis sentence~\cite{Ramsdell12}.  In practice,
+theorem-proving using shape analysis sentences is rarely employed.
+It's clumsy and it requires too much expertise.  The main use of
+\texttt{cpsasas} is for generating a formula that is edited to become
+a desired security goal.
+
+\section{Rules}\label{sec: rules}
+
+Support for rules was introduced in version 4.1 of {\cpsa}.
+
+Each protocol includes a small collection of rules.  A rule is a
+sentence in the goal language presented in Section~\ref{sec:syntax}.
+Rules are defined after the roles of a protocol are defined.  The
+syntax of a rule follows.
+
+\begin{center}\scshape
+  \begin{tabular}{rcl}
+    rule&$\leftarrow$&(\sym{defrule} name sent comments)
+  \end{tabular}
+\end{center}
+
+A rule is an axiom added to a protocol.  {\cpsa} uses the axiom as a
+rewrite rule to derive zero or more new skeletons from a skeleton
+produced during a step.  An example of a protocol with a rule is in
+Figure~\ref{fig:doorsep} on Page~\pageref{fig:doorsep}.
+
+The trust rule states that when CPSA finds a person strand of length
+at least one, and the inverse of it's \texttt{p} parameter is
+non-originating, CPSA should assume the inverse of it's \texttt{d}
+parameter is non-originating.
+
+\subsection{Facts}\label{sec:facts}
+Each skeleton includes a small database of facts.  A fact is a named
+relation among fact terms.  A fact term\index{fact term} is either a
+strand of the skeleton or an algebra term.  A set of facts is
+defined anywhere after strands are defined using the \sym{facts} form.
+The syntax of facts follows.
+
+\begin{center}\scshape
+  \begin{tabular}{rcl}
+    facts&$\leftarrow$&(\sym{facts} fact$\ast$) \\
+    fact&$\leftarrow$&(symbol fterm$\ast$) \\
+    fterm&$\leftarrow$&mesg $\mid$ nat
+  \end{tabular}
+\end{center}
+
+For example, in a skeleton, a user may want to note that strand 0 owns
+the private key for~\texttt{a} by assuming.
+
+\begin{center}
+  \verb|(facts (owns 0 (privk a)))|
+\end{center}
+
+Facts are most useful when combined with rules.  Here is an example of
+their combination.  Suppose a point of view skeleton has two names,
+\texttt{a} and~\texttt{b}, and the problem is modeling a situation in
+which the two names are known to differ.  To enforce this constraint, add
+\begin{center}
+  \verb|(facts (neq a b))|
+\end{center}
+to the point of view skeleton and the \texttt{neq} rule below to the
+protocol.
+
+%below, eliminates skeletons that
+%violate the constraint.
+\begin{quote}
+\begin{verbatim}
+(defrule neq
+  (forall ((a mesg))
+    (implies
+      (fact neq a a)
+      (false))))
+\end{verbatim}
+\end{quote}
+
+\subsection{DoorSEP}
+
+\begin{sloppypar}
+As a motivating scenario consider the Door Simple Example Protocol
+(DoorSEP), derived from an expository protocol that was designed to
+have a weakness.  Despite this, the protocol achieves the needs of an
+application, given a trust assumption.
+\end{sloppypar}
+
+Imagine a door~$D$ which is equipped with a badge reader, and a
+person~$P$ equipped with a badge.  When the person swipes the badge,
+the protocol executes.  Principals such as doors or persons are
+identified by the public parts of their key pairs, with \iv{D} and
+\iv{P} being the corresponding private keys.  We write \enc{M}{K} for
+the encryption of message~$M$ with key~$K$.  We represent digital
+signatures $\enc{M}{\iv{P}}$ as if they were the result of encrypting
+with $P$'s private key.
+
+$P$ initiates the exchange by creating a fresh symmetric key~$K$,
+signing it, and sending it to the door $D$ encrypted with the door's
+public key.  $D$ extracts the symmetric key after checking the
+signature, freshly generates a token~$T$, and sends it---encrypted
+with the symmetric key---back to $P$.  $P$ demonstrates they are
+authorized to enter by decrypting the token and sending it as
+plaintext to the door.  The two roles of DoorSEP are shown in
+Fig.~\ref{fig:doorsep protocol}, where each vertical column displays
+the behavior of one of the roles.  The \cpsa4 encoding of the roles is
+in Figure~\ref{fig:doorsep}.
+
+\begin{figure}[tb]
+  \[\begin{array}[c]{rc@{\qquad\qquad}cl}
+      & \mbox{person}
+      &\mbox{door}
+      &\\
+      \begin{array}[c]{r} ~ \\ ~ \\
+        \mbox{Fresh: $K$}
+      \end{array}
+      & \xymatrix@R=2mm@C=7em{
+      \bullet\ar@{=>}[d]\ar[r]^{\enc{\enc{K}{\iv{P}}}{D}}
+      &\\
+      \bullet\ar@{=>}[d]& \ar[l]_{\enc{T}{K}}\\
+      \bullet \ar[r]^T & }
+      &
+        \xymatrix@R=2mm@C=7em{
+        \ar[r]^{\enc{\enc{K}{\iv{P}}}{D}}    &\bullet\ar@{=>}[d]\\
+      &\bullet\ar@{=>}[d] \ar[l]_{\enc{T}{K}}\\
+      \ar[r]^T      &\bullet}
+      &
+        \begin{array}[c]{r} ~ \\ ~ \\
+          \mbox{Fresh: $T$}
+        \end{array}
+  \end{array}\]
+  \caption{DoorSEP Protocol}\label{fig:doorsep protocol}
+\end{figure}
+
+%   \[
+%   \begin{array}{l@{{}:{}}l}
+%     P\to D & \enc{\enc{K}{\iv{P}}}{D}\\
+%     D\to P & \enc{T}{K}\\
+%     P\to D & T.
+%   \end{array}
+%   \]
+
+{\cpsa} finds an undesirable execution of DoorSEP.  Assume the
+person's private key \iv{P} is uncompromised and the door has received
+the token it sent out.  Then {\cpsa} finds that~$P$ freshly created
+the symmetric key~$K$.  However, nothing ensures that the person meant
+to open door $D$.  If $P$ ever initiates a run with a compromised
+door~$C$, the adversary can perform a man-in-the-middle attack,
+decrypting using the compromised key $C^{-1}$ and re-encrypting with
+$D$'s public key, as elided in the $\cdots$ in Fig.~\ref{fig:doorsep
+  first shape}.  To verify this result with \cpsa4, remove the trust
+axiom in the doorsep protocol in \texttt{doc/rules.scm} and run \cpsa4.
+%
+\begin{figure}[tb]
+  \[\xymatrix@R=2mm@C=7em{
+    \txt{\strut person}&&\txt{\strut door}\\
+    \bullet \ar[r]^{\enc{\enc{K}{\iv{P}}}{C}} & \cdots\ar[r]^{\enc{\enc{K}{\iv{P}}}{D}} &
+    \bullet\ar@{=>}[d] \\
+    & \null &   \bullet\ar@{=>}[d]\ar[l]_{\enc{T}{K}}\\
+    &\null\ar[r]^T & \bullet}\]
+  \begin{center}
+    Uncompromised: $P\quad$ Fresh: $K, T$
+  \end{center}
+  \caption{DoorSEP Weakness}\label{fig:doorsep first shape}
+\end{figure}
+%
+%   \[
+%   \begin{array}{l@{{}:{}}l}
+%     P\to A & \enc{\enc{K}{\iv{P}}}{C}\\
+%     A\to D & \enc{\enc{K}{\iv{P}}}{D}\\
+%     D\to A & \enc{T}{K}\\
+%     A\to D & T.
+%   \end{array}
+%   \]
+%
+Thus, without additional assumptions, the door cannot authenticate the
+person requesting entry.
+
+\begin{figure}
+\begin{verbatim}
+(defprotocol doorsep basic
+  (defrole person
+    (vars (d p akey) (k skey) (t text))
+    (trace
+     (send (enc (enc k (invk p)) d))
+     (recv (enc t k))
+     (send t)))
+  (defrole door
+    (vars (d p akey) (k skey) (t text))
+    (trace
+     (recv (enc (enc k (invk p)) d))
+     (send (enc t k))
+     (recv t)))
+  (defrule trust
+    (forall ((z strd) (p d akey))
+            (implies
+             (and (p "person" z 1)
+                  (p "person" "p" z p)
+                  (p "person" "d" z d)
+                  (non (invk p)))
+             (non (invk d))))
+    (comment "The trust rule"))
+  (comment "Doorsep protocol using unnamed asymmetric keys"))
+
+(defskeleton doorsep
+  (vars (p akey))
+  (defstrand door 3 (p p))
+  (non-orig (invk p))
+  (comment "Analyze from the doors's perspective"))
+\end{verbatim}
+\caption{Door Simple Example Protocol}\label{fig:doorsep}
+\end{figure}
+
+But possibly we can trust the person to swipe her badge only in front
+of doors our organization controls.  And we can we ensure that our
+doors have uncompromised private keys.  If so, then the adversary
+cannot exercise the flaw.
+
+We regard this as a \emph{trust assumption}, and we can express it as
+an axiom:
+%
+\begin{axiom}\label{axiom:trust assumption}
+  If an uncompromised signing key ${\iv{P}}$ is used to prepare an
+  instance of the first DoorSEP message, then its owning principal has
+  ensured that the selected door $D$ has an uncompromised private key.
+\end{axiom}
+%
+The responsibility for ensuring the truth of this axiom may be split
+between $P$ and the organization controlling $D$.  $P$ makes sure to
+swipe her badge only at legitimate doors of the organization's
+buildings.  The organization maintains a security posture that
+protects the corresponding private keys.
+
+\medskip\noindent\textbf{Is DoorSEP good enough}, assuming the trust
+axiom?  Add the trust axiom back to the doorsep protocol in
+\texttt{doc/rules.scm} and see.  You should find that the protocol
+does its job; namely, ensuring that the door opens only when an
+authorized person requests it to open.
+
+\bibliography{cpsa}
+\bibliographystyle{plain}
+
+\end{document}
diff --git a/doc/src/cpsaintroslides.tex b/doc/src/cpsaintroslides.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsaintroslides.tex
@@ -0,0 +1,394 @@
+\documentclass[landscape]{slides}
+\usepackage{mitreslides}
+\usepackage{amssymb}
+\usepackage{amsmath}
+\usepackage{color}
+\usepackage{graphicx}
+\usepackage{alltt}
+\usepackage{url}
+%\usepackage{hyperref}
+
+\newcommand{\cpsa}{CPSA}
+\DeclareMathOperator{\domm}{\mathit{dom}}
+\newcommand{\cn}[1]{\ensuremath{\mathop{\relax
+                    \smash{\sf#1}}\!\mathop{\vphantom{#1}}\nolimits}}
+\newcommand{\dom}[1]{\ensuremath{\mathop{\relax
+                    \smash{\rm#1}}\!\mathop{\vphantom{#1}}\nolimits}}
+\newcommand{\fn}[1]{\ensuremath{\mathop{\relax
+                    \smash{\it#1}}\!\mathop{\vphantom{#1}}\nolimits}}
+\newcommand{\termalg}{\ensuremath{\mathfrak T}}
+\newcommand{\mesgalg}{\ensuremath{\mathfrak A}}
+\newcommand{\tr}{\ensuremath{\mathfrak C}}
+\newcommand{\ints}{\ensuremath{\mathbb Z}}
+\newcommand{\bundle}{\ensuremath{\mathcal{B}}}
+\newcommand{\nterm}[1]{\ensuremath{\langle\mathit{#1}\rangle}}
+\newcommand{\nterms}[1]{\ensuremath{\nterm{#1}^\ast}}
+\newcommand{\ntermp}[1]{\ensuremath{\nterm{#1}^+}}
+\newcommand{\ntermo}[1]{#1$^?$}
+\newcommand{\enc}[2]{\{\!|#1|\!\}_{#2}}
+\newcommand{\invk}[1]{{#1}^{-1}}
+\newcommand{\pubk}[1]{K_{#1}}
+\newcommand{\privk}[1]{K^{-1}_{#1}}
+\newcommand{\eqq}{\stackrel{?}{=}}
+\newcommand{\hash}[1]{\#(#1)}
+\newcommand{\inbnd}{\mathord -}
+\newcommand{\outbnd}{\mathord +}
+\newcommand{\cert}{\mathsf{cert}}
+\newcommand{\valid}{\mathsf{valid}}
+\newcommand{\data}{\mathsf{data}}
+\newcommand{\says}{\mathbin{\mathrm{says}}}
+\DeclareMathOperator{\ok}{\mathit{ok}}
+\DeclareMathOperator{\id}{\mathit{id}}
+\DeclareMathOperator{\resource}{\mathit{resource}}
+\DeclareMathOperator{\approved}{\mathit{approved}}
+\DeclareMathOperator{\ask}{\mathit{ask}}
+\DeclareMathOperator{\meas}{\mathit{meas}}
+\DeclareMathOperator{\verifier}{\mathit{verifier}}
+\DeclareMathOperator{\auth}{\mathit{auth}}
+\DeclareMathOperator{\epca}{\mathit{epca}}
+\DeclareMathOperator{\ltk}{\mathsf{ltk}}
+\newcommand{\ctosa}{\enc{R,A,K}{K_S}}
+\newcommand{\stova}{\enc{S,A,R,N_S}{K_V}}
+\newcommand{\ptova}{\enc{\cert,A,I,E}{\invk{K}_E}}
+\newcommand{\vtosa}{\enc{N_V,J,V,N_S,M}{K_S}}
+\newcommand{\stoca}{\enc{N_V,J,V,M}{K}}
+\newcommand{\ctoaa}{\enc{S, N_V,J,V,M,R}{\ltk(A,A)}}
+\newcommand{\atoca}{\enc{K',N_V,B}{\ltk(A,A)}}
+\newcommand{\blob}{\enc{K',S,J_O,M,P,
+\enc{\hash{\hash{A,V,N_V,J_O},M,P}}{\invk{}}}{K_V}}
+\newcommand{\vtosb}{\enc{\valid,N_S,K'}{K_S}}
+\newcommand{\stocb}{\enc{\data,D}{K'}}
+\newcommand{\seq}[1]{\langle#1\rangle}
+\newcommand{\append}{\mathbin{{}^\frown}}
+\newcommand{\flow}[3]{\ensuremath{#1,#2\rhd#3}}
+\newcommand{\infer}[2]{\begin{array}{c}#1\\\hline#2\end{array}}
+\newcommand{\inferb}[2]{\begin{array}[b]{c}#1\\\hline#2\end{array}}
+\newcommand{\infertwo}[3]{\inferb{#1\quad#2}{#3}}
+\newcommand{\termat}{\mathbin{@}}
+\newcommand{\all}[1]{\forall#1\mathpunct{.}}
+\newcommand{\some}[1]{\exists#1\mathpunct{.}}
+\newcommand{\idsigma}{\sigma_{\mathrm{id}}}
+
+\newenvironment{zitemize}
+{\begin{itemize}
+\setlength{\itemsep}{0em}
+\setlength{\topsep}{0em}
+\setlength{\partopsep}{0em}
+\setlength{\parsep}{0em}
+\setlength{\parskip}{0em}}%
+{\end{itemize}}
+
+\begin{document}
+
+\begin{titleslide}{Symbolic Cryptographic Protocol \\ Analysis using CPSA}
+%
+John D.~Ramsdell\\
+~\\
+The MITRE Corporation\\
+~\\
+October 2012
+\end{titleslide}
+
+\begin{mitreslide}{Cyptographic Protocol Shapes Analyzer}
+\begin{description}
+\item [Goal:] Protocol analysis using Dolev-Yao model
+\item [Foundation:] Strand Spaces
+\item [Distribution:] \url{https://github.com/mitre/cpsaexp}
+\item [Contributors:]
+  Joshua D. Guttman, John D. Ramsdell, Jon C. Herzog, Shaddin
+  F. Doghmi, F. Javier Thayer, Paul D. Rowe, and Moses D. Liskov
+\end{description}
+\end{mitreslide}
+
+\begin{note}
+  Pages of this form attempt to fill in the spoken part of a
+  class using these slides.
+
+  The Cryptographic Protocol Shapes Analyzer ({\cpsa}) attempts to
+  enumerate all essentially different executions possible for a
+  cryptographic protocol. We call them the \emph{shapes} of the
+  protocol. Naturally occurring protocols have only finitely many,
+  indeed very few shapes. Authentication and secrecy properties are
+  easy to determine from them, as are attacks and anomalies.
+
+  This presentation gives a very brief tour of the tool and how it is
+  used in practice.
+\end{note}
+
+\begin{mitreslide}{Anatomy of a CPSA Installation}
+\begin{zitemize}
+\item Programs
+\begin{zitemize}
+\item \texttt{cpsa}: main analysis tool
+\item \texttt{cpsashapes}: extracts shapes from \texttt{cpsa} output
+\item \texttt{cpsagraph}: visualize output using XHTML and SVG
+\item \texttt{cpsadiff}: compare two \texttt{cpsa} output files
+\item \texttt{cpsasas}: produce shape analysis sentences
+\item \texttt{cpsapp}: pretty print input and output
+\item Build tools: GNU makefile template and a Haskell script
+\end{zitemize}
+\item Documentation
+\begin{zitemize}
+\item User documentation: user guide, primer, and goal description
+\item Sample input: Needham-Schroeder, Blanchet, Woo-Lam, Otway-Rees,
+  Yahalom, ffgg, goals, rules
+\end{zitemize}
+\end{zitemize}
+\end{mitreslide}
+
+\begin{note}
+  Although there are many programs in the {\cpsa} package, typical
+  usage is very simple.
+\end{note}
+
+\begin{mitreslide}{Using CPSA}
+\begin{itemize}
+\item With a text editor, user enters a description of a
+\begin{zitemize}
+\item protocol as a set of roles
+\item problem point-of-view\\ (what is assumed to have happened)
+\end{zitemize}
+\item User runs the tool (\texttt{\$ echo build | ghci Make.hs} \\
+  or on Windows, click on \texttt{Make.hs} and type \texttt{build})
+\item In a web browser, user views the output that shows
+\begin{zitemize}
+\item what else CPSA inferred must have happened, or
+\item all CPSA steps used to produce the answers
+\end{zitemize}
+\end{itemize}
+\end{mitreslide}
+
+\begin{note}
+  At this point, if you have not already done so, follow the
+  instructions in \url{index.html} and analyze the examples.  The rest
+  of these slides will focus on Blanchet's ``Simple Example
+  Protocol'', so open \url{blanchet.xhtml}.  Click on
+  Derivation Tree 9.
+\end{note}
+
+\begin{mitreslide}{Blanchet's ``Simple Example Protocol''}
+$$\begin{array}{r@{{}\colon{}}l}
+A\to B&\enc{\enc{S}{\privk{A}}}{\pubk{B}}\\
+B\to A&\enc{D}{S}
+\end{array}$$
+\begin{center}
+CPSA Style Roles \\[2ex]
+\begin{tabular}{c}
+Initiator ($\fn{init}$ role)\\[3ex]
+\includegraphics{blanchet-0.mps}
+\end{tabular}\hfil
+\begin{tabular}{c}
+Responder ($\fn{resp}$ role)\\[3ex]
+\includegraphics{blanchet-1.mps}
+\end{tabular}\\[3ex]
+\end{center}
+\end{mitreslide}
+
+\begin{note}
+  Blanchet's protocol has two steps.
+  Alice sends to Bob a freshly generated symmetric key~$S$ signed with Alice's
+  private key~$\privk{A}$ and then encrypted with Bob's public
+  key~$\pubk{B}$.  Bob sends data~$D$ encrypted with the symmetric key.
+
+  Locate the description of the protocol in \url{blanchet.xhtml} in
+  the third derivation tree.
+\end{note}
+
+\begin{mitreslide}{Blanchet Protocol in CPSA}
+\begin{quote}
+\begin{verbatim}
+(defprotocol blanchet basic
+  (defrole init
+    (vars (a b name) (s skey) (d data))
+    (trace
+     (send (enc (enc s (privk a)) (pubk b)))
+     (recv (enc d s))))
+  (defrole resp
+    (vars (a b name) (s skey) (d data))
+    (trace
+     (recv (enc (enc s (privk a)) (pubk b)))
+     (send (enc d s)))))
+\end{verbatim}
+\end{quote}
+\end{mitreslide}
+
+\begin{note}
+  Locate the description of scenario in \url{blanchet.xhtml} in
+  Derivation Tree 9.
+\end{note}
+
+\begin{mitreslide}{Blanchet Problem Statement}
+\begin{itemize}
+\item Analyze from the point-of-view of a full length responder
+\item Assume $\privk{A}$ and $\privk{B}$ are uncompromised
+\item Assume symmetric key~$S$ is freshly generated
+\hfill\raisebox{0ex}[0ex]{\includegraphics{blanchet-5.mps}}
+\end{itemize}
+\begin{quote}
+\begin{verbatim}
+(defskeleton blanchet
+  (vars (a b name) (s skey) (d data))
+  (defstrand resp 2 (a a) (b b) (s s) (d d))
+  (non-orig (privk a) (privk b))
+  (uniq-orig s))
+\end{verbatim}
+\end{quote}
+\end{mitreslide}
+
+\begin{note}
+  {\cpsa} takes one step to find the shape associated with the scenario.
+  Locate the shape for the scenario in this derivation tree.
+\end{note}
+
+\begin{mitreslide}{Blanchet Shape}
+\begin{quote}
+\begin{alltt}
+(defskeleton blanchet
+  (vars (d data) (a b \textcolor{blue}{b-0} name) (s skey))
+  (defstrand resp 2 (d d) (a a) (b b) (s s))
+  (defstrand init 1 (a a) (b \textcolor{blue}{b-0}) (s s))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig s)
+  ...)
+\end{alltt}
+\end{quote}
+\end{mitreslide}
+
+\begin{note}
+  Observe that the responder role variable \texttt{b} maps to skeleton
+  variable \texttt{b}, but the initiator role variable \texttt{b} maps
+  to skeleton variable \texttt{b\_0}.  The two strands disagree on
+  Bob's identity when agreement is expected.  The dotted line in
+  Skeleton 10 indicates the message transmitted differs from the one sent.
+
+  In the next slide, the traces show the implication of the
+  disagreement on the instantiations of variable \texttt{b}.
+\end{note}
+
+\begin{mitreslide}{Blanchet Shape with Traces}
+\begin{quote}
+\begin{alltt}
+(defskeleton blanchet
+  (vars (d data) (a b \textcolor{blue}{b-0} name) (s skey))
+  (defstrand resp 2 (d d) (a a) (b b) (s s))
+  (defstrand init 1 (a a) (b \textcolor{blue}{b-0}) (s s))
+  ...
+  (traces
+    ((recv (enc (enc s (privk a)) (pubk b)))
+     (send (enc d s)))
+    ((send (enc (enc s (privk a)) (pubk \textcolor{blue}{b-0})))))
+  ...)
+\end{alltt}
+\end{quote}
+\end{mitreslide}
+
+\begin{mitreslide}{Blanchet Shape}
+\begin{center}
+\includegraphics{blanchet-4.mps}
+\end{center}
+\begin{quote}
+\begin{alltt}
+(defskeleton blanchet
+  (vars (d data) (a b \textcolor{blue}{b-0} name) (s skey))
+  (defstrand resp 2 (d d) (a a) (b b) (s s))
+  (defstrand init 1 (a a) (b \textcolor{blue}{b-0}) (s s))
+  (precedes ((1 0) (0 0)))
+  ...)
+\end{alltt}
+\end{quote}
+\end{mitreslide}
+
+\begin{note}
+  The operation field describes the authentication test that was
+  solved to produce the shape.  Authentication tests are introduced in
+  \url{cpsaprimer.pdf}.
+\end{note}
+
+\begin{mitreslide}{Blanchet Shape with Operation}
+\begin{quote}
+\begin{alltt}
+(defskeleton blanchet
+  (vars (d data) (a b \textcolor{blue}{b-0} name) (s skey))
+  (defstrand resp 2 (d d) (a a) (b b) (s s))
+  (defstrand init 1 (a a) (b \textcolor{blue}{b-0}) (s s))
+  ...
+  (operation
+    encryption-test       ; Authentication test type
+    (added-strand init 1) ; Regular augmentation
+    (enc s (privk a))     ; Critical message
+    (0 0))                ; Test node
+  ...)
+\end{alltt}
+\end{quote}
+\end{mitreslide}
+
+\begin{note}
+  The operation field explains why {\cpsa} produced strands that do
+  not agree on the identity of \texttt{b}.  The critical message does
+  not refer to it, so there is nothing that forces agreement.
+
+  Navigate to Derivation Tree 23 in \url{blanchet.xhtml}.
+\end{note}
+
+\begin{mitreslide}{Corrected Blanchet Example Protocol}
+$$\begin{array}{r@{{}\colon{}}l}
+A\to B&\enc{\enc{S,B}{\privk{A}}}{\pubk{B}}\\
+B\to A&\enc{D}{S}
+\end{array}$$
+\begin{center}
+CPSA Style Roles \\[2ex]
+\begin{tabular}{c}
+Initiator ($\fn{init}$ role)\\[2ex]
+\includegraphics{blanchet-2.mps}
+\end{tabular}\hfil
+\begin{tabular}{c}
+Responder ($\fn{resp}$ role)\\[2ex]
+\includegraphics{blanchet-3.mps}
+\end{tabular}\\[3ex]
+\end{center}
+\end{mitreslide}
+
+\begin{mitreslide}{Corrected Blanchet Protocol in CPSA}
+\begin{quote}
+\begin{alltt}
+(defprotocol blanchet-fixed basic
+  (defrole init
+    (vars (a b name) (s skey) (d data))
+    (trace
+     (send (enc (enc s \textcolor{blue}{b} (privk a)) (pubk b)))
+     (recv (enc d s))))
+  (defrole resp
+    (vars (a b name) (s skey) (d data))
+    (trace
+     (recv (enc (enc s \textcolor{blue}{b} (privk a)) (pubk b)))
+     (send (enc d s)))))
+\end{alltt}
+\end{quote}
+\end{mitreslide}
+
+\begin{note}
+  The corrected protocol ensures the critical message refers to
+  \texttt{b}.  As a result, {\cpsa} infers the desired agreement.
+\end{note}
+
+\begin{mitreslide}{Corrected Blanchet Shape}
+\begin{quote}
+\begin{alltt}
+(defskeleton blanchet-fixed
+  (vars (d data) (a b name) (s skey))
+  (defstrand resp 2 (d d) (a a) (b b) (s s))
+  (defstrand init 1 (a a) (b b) (s s))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig s)
+  (operation encryption-test
+    (added-strand init 1)
+    (enc s \textcolor{blue}{b} (privk a))   ; Critical message
+    (0 0))
+  ...)
+\end{alltt}
+\end{quote}
+\end{mitreslide}
+
+\end{document}
diff --git a/doc/src/cpsaprimer.tex b/doc/src/cpsaprimer.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsaprimer.tex
@@ -0,0 +1,1416 @@
+\documentclass[12pt]{article}
+\usepackage{amssymb}
+\usepackage{amsmath}
+\usepackage{url}
+\usepackage{graphicx}
+\usepackage{makeidx}
+\usepackage{alltt}
+\input{macros}
+
+\makeindex
+
+\title{CPSA Primer}
+\author{John D.~Ramsdell\qquad Joshua D.~Guttman\\
+  The MITRE Corporation\\ CPSA Version \version}
+
+\begin{document}
+\maketitle
+\cpsacopying
+
+\tableofcontents
+
+\listoffigures
+
+\listoftables
+
+\newpage
+
+\section{Introduction}
+
+\begin{sloppypar}
+Analyzing a cryptographic protocol means finding out what security
+properties---essentially, authentication and secrecy properties---are
+true in all its possible executions.  Protocol analysis is hard
+because an adversary can often manipulate the regular, law-abiding
+participants.  The adversary may be able to manipulate the regular
+participants into an unexpected execution, breaking a secrecy or
+authentication property that the protocol was intended to ensure.
+\end{sloppypar}
+
+{\cpsa}, The Cryptographic Protocol Shapes Analyzer, is a software
+tool.  Given a protocol definition and some assumptions about
+executions, it attempts to produce descriptions of all possible
+executions of the protocol compatible with the assumptions.
+Naturally, there are infinitely many possible executions of a useful
+protocol, since different participants can run it with varying
+parameters, and the participants can run it repeatedly.
+
+However, for many naturally occurring protocols, there are only
+finitely many of these runs that are essentially different.  Indeed,
+there are frequently very few, often just one or two, even in cases
+where the protocol is flawed.  We call these essentially different
+executions the \emph{shapes} of the protocol.  Authentication and
+secrecy properties are easy to ``read off'' from the shapes, as are
+attacks and anomalies.
+
+The purpose of this document is to provide the background required to
+make effective use of a {\cpsa} software distribution.  In particular,
+the advice in Section~\ref{sec:advice} is essential reading.
+
+The {\cpsa} program reads a sequence of problem descriptions, and
+prints the steps it used to solve each problem.  Each input problem
+contains some initial behavior, together with assumptions about some
+uncompromised keys and freshly chosen values.  {\cpsa} discovers what
+shapes are compatible with this problem description.  Normally, the
+initial behavior is a local run of one participant, so that the
+problem is to see what possible executions exist from that
+participant's ``point of view.''  The analysis reveals what the other
+participants must have done, given the first participant's view.
+
+The shapes analysis is performed within a pure Dolev-Yao
+model~\cite{DolevYao83}.  {\cpsa}'s search is based on a high-level
+algorithm that was claimed to be complete, i.e.\@ every shape can in
+fact be found in a finite number of
+steps~\cite{DoghmiGuttmanThayer07,Guttman11}.  Further theoretical
+work showed classes of executions that are not found by the algorithm,
+however it also showed that every omitted execution requires an
+unnatural interpretation of a protocol's roles.  Hence the algorithm
+is complete relative to natural role semantics.
+Appendix~\ref{sec:omitted executions} discusses omitted executions.
+
+\section{Overview}
+
+A {\cpsa} release includes several programs, an analyzer, and various
+tools used to interpret the results.  The analyzer, \texttt{cpsa},
+provides support for several algebras, one of which is the Basic
+Crypto Algebra.  Programs that assist in the interpretation of results
+are \texttt{cpsashapes} and \texttt{cpsagraph}.  The analyzer prints
+the steps it used to solve each problem.  The \texttt{cpsashapes}
+program extracts the shapes discovered by an analyzer run.  The
+\texttt{cpsagraph} program graphs both forms of output using Scalable
+Vector Graphics~(\textsc{svg}).  A standards-compliant browser such as
+FireFox or Safari displays the generated diagrams.
+
+The expected work flow follows.  An analysis problem is entered using
+an ordinary text editor, preferably one with support for Lisp syntax.
+Problem statement errors in the input are detected by running the
+analyzer.  Many error reports are of the form that allow editors such
+as Emacs to move its cursor to location of the problem.
+
+There are two classes of problem statement errors: syntax and semantic
+errors.  Correcting syntax errors is straightforward, but correcting
+semantic errors requires an understanding of the core data structures.
+Section~\ref{sec:semantic errors} describes their correction.
+
+Once the problem statement errors have been eliminated, the analyzer
+should produce useful output as a text document.  The text document
+contains each step used to derive a shape from a problem statement.
+It is common to filter the output using the \texttt{cpsashapes}
+program, and look only at the computed shapes associated with each
+problem statement.
+
+The \texttt{cpsagraph} program is applied to the output to produce a
+more readable, hyperlinked \textsc{xhtml} document that can be displayed
+in a standards-compliant web browser.  The {\cpsa} User Guide contains
+the up-to-date description of \texttt{cpsagraph} generated documents.
+The guide is also the place to find command-line usage information for
+all programs in a release.  The user guide is an \textsc{xhtml}
+document delivered with the software.
+
+The \texttt{cpsa} program uses S-expressions for both input and
+output.  S-expression is an abbreviation for a Symbolic Expression of
+Lisp fame, and is described in Appendix~\ref{sec:syntax reference}.
+
+The input may optionally start with a \index{herald
+  form}\texttt{herald} form.  The form contains a title for the run
+and an association list.  The association list allows options normally
+specified on the command line to be specified within an input file.
+In the following example, the herald form specifies a strand bound of
+12 in a way that is equivalent to the command line option
+\texttt{--bound=12}.
+
+\begin{quote}
+\begin{verbatim}
+(herald Needham-Schroeder (bound 12))
+\end{verbatim}
+\end{quote}
+
+The body of the input consists of two forms: protocol definitions and
+initial behavior descriptions.  The exact details of both forms depend
+on the message algebra specified by the protocol.  Protocols that
+specify \texttt{basic} as their algebra get an implementation of the
+Basic Crypto Algebra~(\textsc{bca}) described in the next section.  A
+complete grammar for \texttt{cpsa} input with \textsc{bca} protocols
+is displayed in Table~\ref{tab:syntax} on Page~\pageref{tab:syntax}.
+
+\section{BCA Messages}
+
+Each message exchanged in a protocol is represented by a term.  Terms
+represent atomic values such as text objects, principal names, and
+asymmetric and symmetric keys.  They also represent values composed
+from other values via encryption and concatenation.
+
+A sort system is used to classify terms. A {\cpsa} message algebra is
+an order-sorted algebra~\cite{GoguenMeseguer92} with restrictions,
+hence the use of the word sort instead of type.  Other aspects of
+{\cpsa}'s use of order-sorted algebras is beyond the scope of this
+paper.
+
+The sorts that correspond to the atomic values are the base
+sorts---for \textsc{bca} they are \fn{text}, \fn{data}, \fn{name},
+\fn{akey}, and \fn{skey}.  The non-base sort is
+\fn{mesg}.  Every term is of sort~\fn{mesg}, and every one of the
+other sorts is a subsort of~\fn{mesg}.\index{sort}
+
+The simplest term is a variable, which syntactically is a
+\textsc{symbol} as described in Appendix~\ref{sec:syntax reference}.
+Internally, each variable has a sort, so the sort of each variable in
+the input must be declared in a \texttt{vars} form, such as:
+$$\texttt{(vars (t text) (n name) (k akey))}.$$
+
+Asymmetric keys come in pairs related by the \texttt{invk}
+\index{operator}operator.  If~$t$ is a term of sort~\fn{akey}, so is
+$\texttt{(invk~}t\texttt{)}$.  Furthermore,
+$\texttt{(invk~(invk~}t\texttt{))}$ is equated with~$t$.  A name can
+be used to identify an asymmetric key pair using the \texttt{pubk} and
+\texttt{privk} operators, as in \texttt{(pubk~n)} and
+\texttt{(privk~n)}---the latter is interpreted as
+\texttt{(invk~(pubk~n))}.  A name may be associated with more than one
+key using the binary form of \texttt{pubk}, where the first argument
+is a quoted constant, as in
+\texttt{(pubk~"sig"~n)} and
+\texttt{(pubk~"enc"~n)}.
+Two names can be used to identify a long
+term symmetric key with the \texttt{ltk} operator.
+
+Terms formed from base sorted variables, and the operators
+\texttt{invk}, \texttt{pubk}, \texttt{privk}, and \texttt{ltk} are
+called atoms, because each one represents an atomic value.  A key
+property of an atom is that the receiver of an atom carried in a
+message term cannot decompose the atom into parts.  For example, the
+reception of a message that consists of the atom \texttt{(invk~k)}
+does not allow its receiver to deduce~\texttt{k}.  Within this
+document, S-expression syntax will often, for the sake of readability,
+be replaced by the traditional notation for terms.  Thus
+\texttt{(invk~k)} will be written as $K^{-1}$, and \texttt{(pubk~n)}
+as $K_{N}$.
+
+The terms in this algebra are freely generated from the atoms, tags,
+concatenation, encryption, and hashing.  A tag is a quoted constant.
+The concatenation of terms~$t$ and~$t'$ is~$t,t'$ in traditional infix
+notation and \texttt{(cat $t$ $t'$)} in S-expression syntax.  The
+comma operator is right associative and \texttt{(cat $a$ $b$ $c$ $d$)}
+is equivalent to \texttt{(cat $a$ (cat $b$ (cat $c$ $d$)))}.
+Given~$t$, the term to be protected, and key term~$k$, the encryption
+of~$t$ using~$k$ is~$\enc{t}{k}$ in traditional notation and
+\texttt{(enc $t$ $k$)} in S-expression syntax.  The term represents
+asymmetric encryption when the key is of sort \dom{akey}, otherwise it
+represents symmetric encryption.  Additionally, \texttt{(enc $a$ $b$
+  $c$ $d$ $k$)} is equivalent to \texttt{(enc (cat $a$ $b$ $c$ $d$)
+  $k$)}.  Given~$t$, the term to be hashed, its hash is $\hash{t}$ in
+traditional notation and \texttt{(hash $t$)} in S-expression syntax.
+{\cpsa} treats a hashed term as if it were an encryption in which the
+term that is hashed is the encryption key.  As with encryption,
+\texttt{(hash $a$ $b$ $c$ $d$)} is equivalent to \texttt{hash (cat $a$
+  $b$ $c$ $d$))}.  Figure~\ref{fig:ns responder} on
+Page~\pageref{fig:ns responder} contains examples of \textsc{bca}
+message terms.  Also see \textsc{term} in Table~\ref{tab:syntax},
+Appendix~\ref{sec:syntax reference}.
+
+A message term \emph{carries}\index{carries} a subterm of the message
+if the possession of the right set of keys allows the extraction of
+the subterm.  The carries relation is the least relation such that
+(1)~$t$ carries~$t$, (2)~$\enc{t_0}{t_1}$ carries~$t$ if~$t_0$
+carries~$t$, and (3)~$t_0,t_1$ carries~$t$ if~$t_0$ or~$t_1$
+carries~$t$.  As noted above, the message~$k^{-1}$ does not carry~$k$.
+Also,~$\enc{t}{k}$ does not carry~$k$ unless (anomalously)~$t$
+carries~$k$.
+
+\begin{figure}
+\begin{center}
+\includegraphics{cpsadiagrams-0.mps}\hfil
+\includegraphics{cpsadiagrams-1.mps}
+\caption{Needham-Schroeder Initiator and Responder Roles}
+\label{fig:ns roles}
+\end{center}
+\end{figure}
+
+\section{Protocols}
+
+A \index{protocol}\emph{protocol} defines the patterns of allowed
+behavior for non-adversarial participants.  In other words, the
+behavior of each participant must be an instance of some protocol
+template, called a \index{role}\emph{role.}  Figure~\ref{fig:ns roles}
+displays the roles that make up the Needham-Schroeder protocol.
+
+In S-expression syntax, a protocol is a named set of roles and is
+defined by the \texttt{defprotocol} form.  See \textsc{protocol} in
+Table~\ref{tab:syntax}, Appendix~\ref{sec:syntax reference}.
+\begin{center}
+\begin{tabular}{l}
+\verb|(defprotocol ns basic|\\
+\verb|  (defrole init| \ldots\texttt{)}\\
+\verb|  (defrole resp| \ldots\texttt{))}
+\end{tabular}
+\end{center}
+
+The name of this protocol (\textsc{id}) is \texttt{ns}, and the second
+identifier (\textsc{alg}) names the message algebra in use.  The
+identifier for the Basic Crypto Algebra is \texttt{basic}.
+
+A role has a name, a declared set of variables, and a trace that
+provides a template for the behavior of its instances.  A trace is a
+non-empty sequence of message events, either a message reception or a
+transmission.  An inbound\index{inbound} message with term~$t$
+is~$\inbnd t$ in text and \texttt{(recv $t$)} in S-expression syntax.
+An outbound\index{outbound} term is~$\outbnd t$ in text and
+\texttt{(send $t$)} in S-expression syntax.  The Needham-Schroeder
+responder's role in S-expression syntax is in Figure~\ref{fig:ns
+  responder}.
+
+% A linear representation of the Needham-Schroeder responder's trace
+% follows.
+% $$\fn{resp}_t=\inbnd\enc{N_1, A}{K_B}\Rightarrow \outbnd\enc{N_1,
+%  N_2}{K_A}\Rightarrow\inbnd \enc{N_2}{K_B}$$
+
+\begin{figure}
+\begin{quote}
+\begin{verbatim}
+(defrole resp (vars (b a name) (n2 n1 text))
+  (trace (recv (enc n1 a (pubk b)))
+         (send (enc n1 n2 (pubk a)))
+         (recv (enc n2 (pubk b)))))
+\end{verbatim}
+\end{quote}
+\caption{Needham-Schroeder Responder Role}
+\label{fig:ns responder}
+\end{figure}
+
+A message may optionally be transferred on a channel using the syntax
+\texttt{(send $c$ $t$)} and \texttt{(recv $c$ $t$)}, where $c$ is a
+variable of sort \dom{chan}.  A channel may be \index{authenticated
+  channel}authenticated or \index{confidential channel}confidential or
+both.  The semantics of using channels for messaging will be explained
+in the next section.
+
+Zero-based indexing\index{zero-based indexing}\index{indexing,
+  zero-based} is used though out this document and in the source code
+it describes.  Within the document, a finite sequence is a function
+from an initial segment of the natural numbers.  Angle brackets are
+used for sequence construction.  Thus $\seq{3,2,99} = \{0\mapsto 3,
+1\mapsto 2, 2\mapsto 99\}$, and the responder's trace is
+$\seq{\inbnd\enc{N_1, A}{K_B}, \outbnd\enc{N_1,
+    N_2}{K_A},\inbnd\enc{N_2}{K_B}}.$ The length of a sequence~$x$ is
+$|x|$.  \nocite{Dijkstra82}
+
+A term \emph{originates}\index{origination} in a trace if it is
+carried in some event and the first term in which it is
+carried is an outbound term.  A term is
+\emph{acquired}\index{acquired} by a trace if it first occurs in an
+inbound term and is also carried by that term.
+
+Some atoms in a role have special properties.  An atom may be declared
+to be non-originating with the \texttt{non-orig} form or the
+\texttt{pen-non-orig} form and uniquely originating with the
+\texttt{uniq-orig} form.  A channel variable may be declared to be
+authenticated with the \texttt{auth} form, and confidential with the
+\texttt{conf} form.  The declarations make assertions about instances
+of a role, assertions that will be defined after role instantiation is
+explained.
+
+Every variable that occurs in each term declared to be non-originating
+must occur in some term in the trace, and the term must not be carried
+by any term in the trace.  Every variable that occurs in each term
+declared to be penetrator non-originating must occur in some term in
+the trace, but the term may be carried by some term in a trace.  Each
+term declared to be uniquely originating must originate in the trace.
+Each variable of sort \fn{mesg} must be acquired in the trace.
+
+\section{Executions}
+
+A protocol analysis problem is specified by a skeleton.  Some
+background information is presented before details of a problem
+specification is given.
+
+A skeleton describes a set of executions of a protocol.  They
+specify the local behavior of participants and their interactions via
+message-passing.  A definition of an execution is presented for the
+case in which protocols declare no terms to be non-originating or
+uniquely originating, and then is later amended.  The executions are a
+representation of the strand space notion of bundle.
+
+A strand\index{strand} represents a principal executing a single local
+session of a protocol role.  The sequence of events that
+describes the session is patterned after a prefix of its role's trace.
+In the context of a protocol, a strand's trace is represented by an
+\emph{instance}\index{instance}, a triple consisting of a role name, a
+height, and a map from role variables to terms.  The length of the
+described sequence is the instance's \emph{height}\index{height}, and
+must be positive and no greater than the length of the associated
+role's trace.  The map is the instance's
+\index{environment}\emph{environment.}  The domain of the map is the
+set of variables that occur in the events in the prefix of the
+role's trace of the same length as the instance's height.  \iffalse An
+instance is in $I=R\times\nat\times(X\rightarrow T)$.  \fi
+
+An example of an instance of the Needham-Schroeder responder role
+is:
+\begin{center}
+\texttt{(defstrand resp 2 (b a) (a b) (n1 n1) (n2 n2))}
+\end{center}
+The trace associated with this instance is:
+$$\seq{\inbnd\enc{N_1, B}{K_A}, \outbnd\enc{N_1,
+N_2}{K_B}}.$$
+
+The \emph{position}\index{position} of a event in the
+instance's trace is its index in the sequence, and in this example,
+the position of $\inbnd\enc{N_1, B}{K_A}$ is zero.
+
+In addition to a protocol, a component of an execution is a collection
+of local sessions.  An instance cannot be used to identify one
+session, because two principals may engage in the same pattern of
+message passing.  Instead, a sequence of instances is used as a
+component of an execution, and a \emph{strand} is represented by an
+index that selects an instance from the sequence.  In other words,
+each principal executing a local session is represented by a natural
+number less than the length of the sequence of instances, and its
+behavior is described by the instance found using its representation.
+
+A \emph{node}\index{node} is a pair of natural numbers that identifies
+an event within a sequence of instances.  The first integer is
+the strand, and the second is the position of the event within
+the strand's trace.  A node with an inbound term is a reception
+node\index{reception node}, and one with an outbound term is a
+\index{transmission node}transmission node.  Given a sequence~$i$, its
+nodes are: $$\{(s,p)\mid s<|i|, p<\cn{height}(i(s))\}.$$
+
+The remaining component of an execution is a binary relation between
+transmission nodes and reception nodes, where each pair of nodes in
+the relation agree on their message term.  The relation specifies
+message transmissions between strands.  The nodes of the graph
+associated with an execution are the nodes in the sequence of
+instances, and the edges include the ones in the relation.
+Additionally, the following strand succession edges\index{strand
+  succession edges} are included: $$\{((s,p), (s, p+1))\mid s<|i|,
+p+1<\cn{height}(i(s))\}.$$ Executions with cyclic graphs are omitted
+from consideration, because they violate causality.  The transitive
+irreflexive~$\prec$ is the transitive closure of the graph's edges,
+and $n_0\prec n_1$ asserts that the message event at~$n_0$ precedes
+the one at~$n_1$.
+
+The node relation of an execution satisfies one additional property.
+For each reception node in its sequence, there exists a unique
+transmission node, related to it by the communication ordering.  In
+other words, the relation must be a function.  Informally, this
+property ensures that every message reception is accounted for by the
+activity of a principal that is part of the execution.
+Figure~\ref{fig:ns intended} shows the intended execution of the
+Needham-Schroeder Protocol.  The node graph of an execution is a
+bundle.
+
+A set of runs of the protocol is associated with each execution.  A
+variable is associated with an execution if the variable occurs in the
+range of an environment in some instance.  To derive a run from an
+execution, a substitution that maps each variable associated with the
+execution to a ground term is applied to the execution.  {\cpsa}
+message algebras do not contain the constants required to name all the
+ground terms.  For most sorts, the identity of a particular ground
+term is irrelevant to the analysis.  Message tags are the only
+exception to this rule.  For this reason, {\cpsa} message algebras are
+free algebras, but not initial algebras.
+
+Strands in executions represent both adversarial and non-adversarial
+behaviors.  A strand that is an instance of a protocol role is
+non-adversarial, and is called \index{regular}\emph{regular.}  A
+strand that represents adversarial behavior is called a
+\emph{penetrator}\index{penetrator} strand.
+
+\begin{figure}
+\begin{center}
+\includegraphics{cpsadiagrams-2.mps}
+\end{center}
+\begin{quote}
+\begin{verbatim}
+(vars (n1 n2 text) (a b name))
+(defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+(defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+(precedes ((0 0) (1 0)) ((1 1) (0 1)) ((0 2) (1 2)))
+\end{verbatim}
+\end{quote}
+\caption{Needham-Schroeder Intended Run}
+\label{fig:ns intended}
+\end{figure}
+
+The roles that define adversary behavior codify the basic abilities
+that make up the Dolev-Yao model.  They include transmitting an atom
+such as a name or a key; transmitting a tag; transmitting an encrypted
+message after receiving its plain text and the key; and transmitting a
+plain text after receiving ciphertext and its decryption key.  The
+adversary can also concatenate two messages, or separate the pieces of
+a concatenated message.  Since a penetrator strand that encrypts or
+decrypts must receive the key as one of its inputs, keys used by the
+adversary---compromised keys---have always been transmitted by some
+participant.  The adversary may transmit a message on a channel when
+the channel is not authenticated, and the adversary may receive a
+message on a channel when the channel is not confidential.
+
+Figure~\ref{fig:ns penetrated} shows a penetrated execution of the
+Needham-Schroeder Protocol.  Strand space theory would decompose the
+penetrator behavior into multiple strands; instead the description of
+the penetrator has been simplified by the use of an artificially
+constructed role~\fn{pen}.
+
+A \index{non-origination}\emph{non-originating term} is an atom
+that is carried by no message, and it or its inverse is the key of an
+encryption in some message.  Each non-originating term is a key that
+is not compromised, as the penetrator has no access to the key.
+
+A \index{penetrator non-origination}\emph{penetrator non-originating
+  term} is an atom that is forbidden from being originated on a
+penetrator strand in an execution.
+
+A \index{unique origination}\emph{uniquely originating term} is an
+atom that originates on exactly one strand in the execution.  The
+correct behavior of some protocols depends on the fact that its
+executions include only ones in which some terms are uniquely
+originating---each term's provenance is one node.  Implementations of
+these protocols can ensure unique origination of a term by freshly
+generating a nonce for the component of the message it represents.
+
+A channel is \index{authenticated channel}\emph{authenticated} if
+only regular strands transmit messages on it.
+A channel is \index{confidential channel}\emph{confidential} if
+only regular strands receive messages on it.
+
+Occasionally, protocol roles designate some terms to be
+non-originating or uniquely originating.  Consider the prefix of the
+trace of a role associated with some instance.  When a uniquely
+originating role term is carried in the prefix, the instance's
+environment maps it to a term that must originate in the instance's
+strand.  Furthermore, when the variables in a non-originating role
+term occur in the prefix, the instance's environment maps that term to
+one that must not be carried by any message term in the execution.
+The mapping of a non-originating role term can be conditioned on the
+height of the instance.  A role non-origination assumption of the form
+\texttt{(3 a)} asserts that \texttt{a} will not be mapped into an
+instance unless its height is at least three.  Penetrator
+non-originating atoms are similar.  Section~\ref{sec:advice} provides
+advice on when to add non-origination or unique origination
+assumptions to roles.
+
+\begin{figure}
+\begin{center}
+\includegraphics{cpsadiagrams-3.mps}
+\caption{Needham-Schroeder Penetrated}
+\label{fig:ns penetrated}
+\end{center}
+\end{figure}
+
+\section{Skeletons}\index{skeleton}
+
+A \emph{skeleton} represents regular behavior that might make up part
+of an execution.  The components of a skeleton are similar to an
+execution.  The components of a skeleton include a protocol, a
+sequence of instances, and a binary relation between transmission
+nodes and reception nodes within the sequence.  Unlike an execution,
+the strands in a skeleton specify only regular behavior.  Furthermore,
+the pair of nodes in the relation need not agree on their message
+term.  Two nodes are related if the transmitting node precedes the
+reception node, as an execution it represents may include nodes
+between the related transmission and reception nodes.
+
+The final five additional components of a skeleton are a set of
+non-originating terms, a set of penetrator non-originating terms,
+a set of uniquely originating terms, a set of authenticated channels,
+and a set of confidential channels.  To be a skeleton, each uniquely
+originating term must originate in at most one strand in the skeleton,
+and each non-originating term must never be carried by some event in
+the skeleton and every variable that occurs in the term must occur in
+some event.  For a penetrator non-originating term, is suffices that
+every variable that occurs in the term must occur in some event.
+Furthermore, for each uniquely originating term that originates in the
+skeleton, the node relation must ensure that reception nodes that
+carry the term follow the node of its origination.
+Figure~\ref{fig:skeleton} shows the components in the S-expression
+representation of a skeleton.
+
+\begin{figure}
+\begin{quote}
+\begin{alltt}
+(defskeleton \textsc{protocol} \textsc{variables}
+   \ldots                ; Instance sequence
+   (precedes \ldots)     ; Node orderings
+   (non-orig \ldots)     ; Non-originating terms
+   (pen-non-orig \ldots) ; Penetrator non-originating terms
+   (uniq-orig \ldots))   ; Uniquely originating terms
+   (auth \ldots))        ; Authenticated channels
+   (conf \ldots))        ; Confidential channels
+\end{alltt}
+\end{quote}
+\caption{Components of Skeletons}\label{fig:skeleton}
+\end{figure}
+
+Two skeletons are equivalent if there is a permutation of the strands
+in one skeleton that when applied to its sequence and its node
+relation, produces the other skeleton.  Two skeletons are also
+equivalent if they differ only by a systematic, sort-preserving
+renaming of their variables, excluding variables that occur in the
+domains of environments---the role variables.  The trace of a strand
+is used for the comparison, so role names need not match.
+
+A skeleton is normalized by performing a transitive reduction on its
+node relation.  The transitive reduction\index{transitive reduction}
+of an ordering is the minimal ordering such that both orderings have
+the same transitive closure.  Here, communication orderings implied by
+transitive closure are removed.  Two skeletons are equivalent if their
+normalized forms are equivalent.
+
+One special skeleton is associated with each execution.  It summarizes
+the regular behavior of the execution.  It is derived from the
+execution by enriching its node relation to contain all node orderings
+implied by transitive closure, deleting all strands and nodes that
+refer to penetrator behavior, and then performing the transitive
+reduction on the resulting node relation.  The set of uniquely
+originating terms is the set of terms that originate on exactly one
+strand in the execution, and are carried in a term of a regular
+strand.  The set of non-originating terms is the union of two sets.
+One set contains each term that is used as an encryption or decryption
+key in some term in the execution, but is not carried by any term.
+The other set contains the terms specified by non-origination
+assumptions in roles.  If a realized skeleton instance maps all of the
+variables that occur in one of its non-originating role terms, the
+mapped term is a member of the skeleton's set of non-originating
+terms.  A skeleton is \emph{realized}\index{realized skeleton} if it
+summarizes the behavior of some execution.
+
+Skeletons are a central concept in the {\cpsa} algorithm because they
+capture the notion that the details of penetrator behavior are
+irrelevant to the analysis.  From the perspective of regular behavior,
+all that is needed is a description of the messages that can be
+derived by the penetrator at a given reception node of a regular
+strand.  In a realized skeleton, some combination of penetrator
+behavior and regular behavior derives the message at every reception
+node.  The skeleton's node relation specifies the transmission nodes
+that provide messages available to the penetrator for message
+derivations.  The rules for message derivation are algebra specific.
+If the message derivation rules imply a message at a reception node in a
+skeleton is derivable, the node is~\emph{realized.}
+
+A skeleton with an unrealized node might be related to another
+skeleton with additional regular behavior that makes the original node
+realized.  A skeleton with additional regular behavior is called a
+refinement.
+
+A skeleton~$A$ structurally refines~$B$ if the transitive closure of the
+graph associated with~$B$ is a subgraph of the one associated
+with~$A$, the event at corresponding nodes agree, the set of
+uniquely originating terms of~$B$ is a subset of the ones in~$A$, the
+set of non-originating terms of~$B$ is a subset of the ones in~$A$,
+and a uniquely originating term that originates in~$B$ originates at
+the corresponding node in~$A$.  Penetrator non-originating assumptions
+are similar to non-originating assumptions.
+
+A skeleton~$A$ message refines~$B$ if~$A$ and~$B$ agree on all but the
+terms in the range of each strand's environment and its
+non-originating and uniquely originating terms, and there is a
+substitution that maps each term in~$B$ to its related term in~$A$.
+Similar to structural refinement, a uniquely originating term that
+originates in~$B$ originates at the same node in the image of~$B$.
+
+A skeleton~$A$ refines\index{refinement}~$B$ if~$A$ is equivalent to a
+skeleton that structurally or message refines~$B$.\footnote{A
+  skeleton~$A$ refines~$B$ if there is a homomorphism from~$B$ to~$A$
+  as defined in~\cite{DoghmiGuttmanThayer07}.  The implementation
+  avoids the complexities of directly representing homomorphisms by
+  composing structural and message refinement with equivalence checks,
+  as is done in this chapter.}  Each skeleton describes the realized
+skeletons that refine it.  A skeleton is \emph{dead} if no realized
+skeleton refines it.  A diagram of a skeleton is in Figure~\ref{fig:ns
+  shape}.
+
+\begin{figure}
+\begin{center}
+\includegraphics{cpsadiagrams-4.mps}
+\caption{Needham-Schroeder Shape ($K^{-1}_A$ uncompromised, $N_2$ fresh)}
+\label{fig:ns shape}
+\end{center}
+\end{figure}
+
+The {\cpsa} algorithm computes realized skeletons from unrealized
+skeletons by identifying an unrealized node, and computing the
+skeletons that refine the unrealized skeleton by making the target
+node realized.
+
+\section{Listeners}\index{listeners}
+
+In addition to the roles specified in a protocol, for each term~$t$, a
+regular strand may be an instance of the listener role with the trace
+$\fn{lsn}(t) = \seq{\inbnd t, \outbnd t}$.  There are no non-originating or
+uniquely originating terms associated with a listener role.
+
+A listener strand is used in a skeleton to assert that an atom~$t$ is
+available on its own to the adversary, unprotected by encryption.  For
+example, to test if the protocol keeps a term~$t$ from the adversary,
+one adds a strand that listens for~$t$.  The term is protected if the
+resulting skeleton is dead.  Otherwise, the {\cpsa} analyzer program
+will find a refined realized skeleton that shows how the adversary
+accesses~$t$.
+
+A listener instance in S-expression syntax follows.  See
+\textsc{strand} in Table~\ref{tab:syntax}, Appendix~\ref{sec:syntax
+  reference}.
+\begin{center}
+\texttt{(deflistener }\textsc{term}\texttt{)}
+\end{center}
+The {\cpsa} programs generate the associated listener role and hide
+it on output.  Listener role names are absent in all forms of output,
+one indication that a strand is an instance of a listener role.
+
+\section{Authentication Tests}\label{sec:authentication tests}
+\index{nonce test}\index{encryption test}
+
+Authentication tests~\cite{GuttmanThayer02} guide the search for
+skeletons that refine one with an unrealized node into ones in which
+it is realized.  There are three types of authentication tests, nonce,
+encryption, and channel tests.  In all cases, an unrealized node is
+selected, called the \index{test node}\emph{test node.}  A term
+carried by the inbound message at the test node is identified as the
+\index{critical term}\emph{critical term.}  A critical term is one
+that occurs in a message context, the construction of which cannot be
+explained by the regular behavior in the current skeleton or by
+penetrator behavior.  An authentication test determines the additional
+regular behavior required to refine a skeleton into ones in which the
+test node is realized.
+
+The critical term in a nonce test is a uniquely originating term, the
+nonce.  It is freshly generated by one regular participant in each run
+of the protocol.  A nonce is unguessable by both regular and
+adversarial participants except when it is received in an unprotected
+context.
+
+A reception node's \index{outbound predecessors}\emph{outbound
+  predecessors} is the set of messages sent by transmission nodes that
+precede the reception node, as given by the transitive closure of its
+skeleton's node ordering relation.  Suppose every occurrence of the
+nonce in the outbound predecessors of the test node is within a
+context protected by encryption, but the critical term in the test
+node occurs outside of all of those encryptions.  Clearly, another
+participant was able to decrypt one of the test node's outbound
+predecessors.  The set of encryptions that protects a critical term
+in a test node's outbound predecessors is called its \index{escape
+  set}\emph{escape set.}
+
+There are three ways to refine a skeleton to account for the
+decryption: regular augmentation, listener augmentation, and
+contraction.  For regular augmentation, an instance of a protocol role
+is added to the skeleton.  The final transmission node of the strand
+is called a \emph{transforming node.}  The strand is selected for
+augmentation because relative to the test node's outbound
+predecessors, the transforming node's message shows the strand
+performed the decryption.
+
+Sometimes, a regular augmentation is immediately followed by merging
+the new strand into another.  This is called a displacement.  It
+occurs when simply adding the strand creates a redundancy.
+
+The penetrator can expose the critical term if it has access to any
+of the decryption keys used to protect it in the escape set.  For
+listener augmentation, an instance of a listener role listening to one
+decryption key used to protect the critical term is added, and the
+skeleton's communication ordering relation is updated to record the
+fact that the listener's transmission node precedes the test node.  If
+the resulting skeleton is not dead, the decryption can be explained by
+penetrator behavior.
+
+For a contraction, a message refining substitution is found that
+equates two or more atoms.  Sometimes, the key used to protect the
+critical term can be equated with one used in previous messages,
+thus vacuously explaining the decryption of the critical term.
+
+The critical term in an encryption test is an encryption.  When the
+encryption key is unavailable, the encryption is unguessable.
+Whenever the unavailability of the encryption key can be established,
+the methods used to refine skeletons with nonce tests apply.
+Additionally, an instance of a listener role listening for the
+critical term's encryption key is added.  If the resulting skeleton
+is not dead, the encryption can be explained by penetrator behavior.
+
+The critical term in a channel test is an authenticated channel and a
+term.  {\cpsa} uses regular augmentation to create a matching
+term transmitted on the channel.
+
+\section{Generalization}
+
+Repeated use of authentication tests either produce realized skeletons
+or show that a skeleton is dead.  The next step in the algorithm is to
+make each realized skeleton into a shape, using the process of
+generalization.
+
+Realized skeleton~$A$ \emph{generalizes}\index{generalization}
+realized skeleton~$B$ if~$A$ refines the origin problem specification,
+and $B$ refines~$A$.  Furthermore,~$A$ may not combine strands in~$B$.
+The \emph{shape}\index{shape} associated with a realized skeleton is
+its maximally generalized realized skeleton.  The shapes of a protocol
+capture all the essentially different executions possible for the
+protocol consistent with the initial behavior specification.
+Figure~\ref{fig:ns shape} shows the shape associated with the
+Needham-Schroeder Protocol from the point of view of a responder
+strand.
+
+A different fixed set of operations is used to transform a realized
+skeleton into a shape: deletion, weakening, separation, and
+forgetting.  If an operation succeeds, it produces a more general
+realized skeleton, one that is not equivalent to the starting
+skeleton.  If no operations succeeds, the skeleton is a shape.
+
+For deletion, a node and all nodes that follow it in a strand are
+deleted, and the resulting skeleton is checked to see if it
+generalized the starting skeleton.  The operation is tried for each
+node in the starting skeleton until there is a success.
+
+If deletion fails, a skeleton is weakened by deleting one element of
+the communication ordering, then checking the result to see if it
+generalized the starting skeleton.  The operation is tried for each
+communication ordering in the starting skeleton until there is a success.
+
+If weakening fails, origination assumption forgetting is tried by
+deleting each term in the non-originating set that is not
+specified by a role.  This is followed by deleting each term in the
+uniquely originating set that is not specified by a role.
+
+If origination assumption forgetting fails, variable separation is
+tried.  Sometimes a more general skeleton can be found by replacing
+some occurrences of one variable by a fresh variable.  To separate a
+variable, the collection of places at which the variable occurs in the
+range of all environments is generated, and a fresh variable is
+substituted for the variable at a subset of these places.  All
+possibilities are tried until a more general skeleton is found.
+
+Sometimes a shape is derived from another shape by collapsing two
+strands in a shape.  Collapsing might produce an unrealized skeleton,
+so authentication tests apply.
+
+\section{Skeletons}\index{skeleton}\label{sec:skeletons}
+
+With this background, the \texttt{defskeleton} form in
+Table~\ref{tab:syntax}, Appendix~\ref{sec:syntax reference} is
+explained.  The key object in {\cpsa} input and output is a skeleton,
+but an object with weaker properties is allowed for the initial
+problem statement.  A \index{preskeleton}\emph{preskeleton} is a
+skeleton except that terms in the uniquely originating set may
+originate in more than one strand.  Furthermore, the node relation of
+a preskeleton need not imply that a node that carries a uniquely
+originating term is after the node of its origination.  A preskeleton
+that cannot be immediately converted into a skeleton is erroneous, and
+an error message is issued.
+
+Referring to \textsc{skeleton} in Table~\ref{tab:syntax}, the
+\textsc{id} in the skeleton form names a protocol.  It refers to
+the most recent protocol definition of that name which precedes the
+skeleton form.  The \textsc{id} in the strand form names a role.
+The integer in the strand form gives the height of the strand.  The
+sequence of pairs of terms in the strand form specify an environment
+used to construct the messages in a strand from its role's trace.  The
+first term is interpreted using the role's variables and the second
+term uses the skeleton's variables.  The environment used to
+produce the strand's trace is derived by matching the second term
+using the first term as a pattern.
+
+The \texttt{precedes} form specifies members of the node relation.
+The first integer in a node identifies the strand using the order in
+which strands are defined in the \texttt{defskeleton} form.
+
+A variable may occur in more then one role within a protocol.  The
+reader performs a renaming so as to ensure these occurrences do not
+overlap.  Furthermore, the maplets used to specify a strand need not
+specify how to map every role variable.  The reader inserts missing
+mappings, and renames every skeleton variable that also occurs in a
+role of its protocol.  The sort of every skeleton variable that occurs
+in the \texttt{non-orig}, \texttt{pen-non-orig}, \texttt{uniq-orig},
+\texttt{auth}, or \texttt{conf} lists or in a maplet must be declared,
+using the \texttt{vars} form.
+
+The \textsc{prot-alist}, \textsc{role-alist}, and \textsc{skel-alist}
+productions are Lisp style association lists, that is, lists of
+key-value pairs, where every key is a symbol.  Key-value pairs with
+unrecognized keys are ignored, and are available for use by other
+tools.  On output, unrecognized key-value pairs are preserved when
+printing protocols, but elided when printing skeletons, with the
+exception of the \texttt{comment} key.
+
+\subsection{Semantic Errors in the Input}\label{sec:semantic errors}
+
+The error messages generated for syntax errors are informative,
+however the ones generated for semantic errors are less so.  A role
+might be rejected because it is not \index{well-formed
+  role}well-formed.  A role is not well-formed if (1) there is a term
+declared to be uniquely originating that does not originate in the
+trace, (2) there is a term declared to be non-originating that is
+carried by some term in the trace, a variable occurs in the term that
+does not occur in the trace, or the declaration of the term included a
+height, and a variable occurs in the term that does not occur in the
+prefix of the trace of the given height, or (3) a variable of sort
+\dom{mesg} is not acquired in the trace.  The error message might not
+indicate which condition caused the rejection.
+
+Similarly, a skeleton might be rejected because it is not
+\index{well-formed skeleton}well-formed.  A skeleton is not
+well-formed if (1) the first node in a node pair refers to an inbound
+term, or the second node refers to an outbound term, (2) the node
+ordering contains cycles, (3) a term declared to be uniquely
+originating, is not carried by any term, (4) an instance maps a
+uniquely originating role term to a term that does not originate in
+the instance's strand, or (5) a term declared to be non-originating is
+carried by a term in some strand, or a variable occurs in the term
+that does not occur in any strand.  Once again, the error message might
+not indicate which condition caused the rejection.
+
+\subsection{Needham-Schroeder Input}
+
+\begin{sloppypar}
+This section contains the verbatim input of the running example used
+throughout this paper.  The use of an editor that pretty-prints
+S-expressions is recommended.
+\end{sloppypar}
+
+\begin{verbatim}
+;;; Hey Emacs, use -*- mode:scheme -*-
+(herald "Needham-Schroeder Public-Key Protocol"
+        (comment "This protocol contains a man-in-the-middle"
+                 "attack discovered by Galvin Lowe."))
+\end{verbatim}
+
+An S-expression version of Figure~\ref{fig:ns roles} follows.
+
+\begin{verbatim}
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace
+     (send (enc n1 a (pubk b)))
+     (recv (enc n1 n2 (pubk a)))
+     (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace
+     (recv (enc n1 a (pubk b)))
+     (send (enc n1 n2 (pubk a)))
+     (recv (enc n2 (pubk b))))))
+\end{verbatim}
+
+The protocol is analyzed from the point of view of a complete run of
+one instance of an initiator role.
+
+\begin{verbatim}
+(defskeleton ns
+  (vars (a b name) (n1 text))
+  (defstrand init 3 (a a) (b b) (n1 n1))
+  (non-orig (privk b) (privk a))
+  (uniq-orig n1))
+\end{verbatim}
+
+\section{Output}\label{sec:output}
+
+The {\cpsa} output format has been designed so that it can be reused
+as input.  All skeletons in the output are normalized skeletons,
+with the possible exception of an initial preskeleton, the one used to
+state a problem.  If an initial preskeleton cannot be converted into a
+skeleton, an error is immediately signaled.
+
+For each skeleton, a {\cpsa} analyzer computes a set of skeletons that
+refine it using a fixed set of operations based on authentication
+tests.  The immediate descendants of a skeleton are called its
+\index{cohort}\emph{cohort.}  A member of the cohort that is
+equivalent to a previously seen skeleton is replaced by that skeleton.
+Thus the skeletons in an analysis form a directed acyclic graph.  All
+but one skeleton has a single parent, and one skeleton can be a member
+of several cohorts.
+
+The operations above either produce realized skeletons or show that a
+skeleton is dead.  The next step in the algorithm is to make each
+realized skeleton into a shape, using the process of generalization.
+Although the set of shapes is in some sense the answer to the problem,
+an understanding of the operations used to generate the shapes can be
+very informative.  The remainder of this section describes the
+annotations in the output that allow for an understanding of each step
+of the analysis.
+
+On output, key-value pairs are added to each skeleton's association
+list, \textsc{skel-alist}.  Every skeleton in the output is labeled
+with a unique identifier with
+\index{label}\texttt{(label~}\textsc{integer}\texttt{)}.  A skeleton
+has \texttt{(parent~}\textsc{integer}\texttt{)} if it is a member of
+the cohort of the identified parent.  A skeleton has
+\texttt{(seen~}\textsc{integer+}\texttt{)} when members of its cohort
+are equivalent to previously seen skeletons.  A skeleton lists its
+unrealized nodes with
+\texttt{(unrealized~}\textsc{node$\ast$}\texttt{)}.  The traces
+associated with each strand is given by the
+\texttt{(traces~}\ldots\texttt{)} form.
+
+\begin{figure}
+\begin{verbatim}
+(defskeleton ns
+  (vars (n1 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (operation nonce-test (added-strand resp 2) n1 (0 1)
+    (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b)))
+      (send (enc n1 n2-0 (pubk a)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+\end{verbatim}
+\caption{Annotated {\cpsa} Output}\label{fig:output}
+\end{figure}
+
+Figure~\ref{fig:output} shows a skeleton generated during an analysis
+of the Needham-Schroeder Protocol from the point of view of an
+initiator strand.  It is labeled as~1.  It's parent is labeled~0.  It
+has one child, and that child has not been seen before.  It is
+unrealized.
+
+\label{sec:operation}
+\begin{sloppypar}
+The operation used to derive a skeleton is recorded with
+\index{operation}\texttt{(operation~}\textsc{test kind term node
+  term$\ast$}\texttt{)}, where \textsc{test} is the authentication
+test \texttt{encryption-test}, \texttt{nonce-test}, or
+\texttt{channel-test},
+\textsc{kind} is
+\texttt{(added-strand} \textsc{id} \textsc{integer}\texttt{)},
+\texttt{(displaced} \textsc{integer} \textsc{integer} \textsc{id} \textsc{integer}\texttt{)},
+\texttt{(contracted} \textsc{maplet$\ast$}\texttt{)}, or
+\texttt{(added-listener} \textsc{term}\texttt{)}, \textsc{term} is the
+critical term, \textsc{node} in the test node, and the remaining terms
+specify the escape set. When the operation kind is added strand, the
+instance's role name and height are provided.
+For kind displaced, the first number is the strand being merged, the
+second number is the strand it was merged into, and the remaining give
+the new instance's role name and height.
+For kind added-listener,
+a term is provided. For kind contracted, the substitution is
+provided. When a substitution refers to a variable not in the
+skeleton, its name is unpredictable. For generalization, the operation
+is recorded as
+\texttt{(operation~generalization~}\textsc{method}\texttt{)}, where
+\textsc{method} is one of \texttt{deleted} \textsc{node},
+\texttt{weakened} \textsc{node-pair}, \texttt{separated}
+\textsc{term}, or \texttt{forgot} \textsc{term}.  Shapes can be
+collapsed leading to new shapes.  For shape collapsing, the operation
+is recorded as \texttt{(operation~collapsed} \textsc{integer}
+\textsc{integer}\texttt{)}, where the two \textsc{integer}s identify
+the strands merged.
+\end{sloppypar}
+
+The skeleton in Figure~\ref{fig:output} was generated as a result of a
+nonce test, by augmenting the starting skeleton with a responder
+strand of length two.  The critical term is \texttt{n1}, the test
+node is \texttt{(0~1)}, and the escape set has one element.
+
+When the operation kind is added strand, it is possible that the
+number of strands in the skeleton and its parent are the same.  In
+this case, {\cpsa} has found a way to produce a more concise
+representation of the skeleton by merging two strands.
+
+\subsection{Needham-Schroeder Output}
+
+% Use --margin=60 to generate output
+
+This section contains the verbatim output of the running example used
+throughout this paper.  A run starts by displaying the program's
+version number.
+
+\begin{verbatim}
+(herald "Needham-Schroeder Public-Key Protocol"
+  (comment "This protocol contains a man-in-the-middle"
+    "attack discovered by Galvin Lowe."))
+\end{verbatim}
+
+\begin{flushleft}
+\texttt{(comment "CPSA {\version}")}\\
+\texttt{(comment "All input read")}
+\end{flushleft}
+
+An S-expression version of Figure~\ref{fig:ns roles} follows.
+
+\begin{verbatim}
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc n1 a (pubk b)))
+      (recv (enc n1 n2 (pubk a))) (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc n1 a (pubk b)))
+      (send (enc n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b))))))
+\end{verbatim}
+
+The protocol is analyzed from the point of view of a complete run of
+one instance of an initiator role.
+
+\begin{verbatim}
+(defskeleton ns
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 0)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+\end{verbatim}
+
+A nonce test justifies adding an instance of part of a reponder role.
+
+\begin{verbatim}
+(defskeleton ns
+  (vars (n1 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (operation nonce-test (added-strand resp 2) n1 (0 1)
+    (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b)))
+      (send (enc n1 n2-0 (pubk a)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+\end{verbatim}
+
+A nonce test justifies a contraction that produces the one and only
+shape.  The shape is also displayed in Figure~\ref{fig:ns init pov}.
+
+\begin{figure}
+\begin{center}
+\includegraphics{cpsadiagrams-5.mps}
+\caption{Needham-Schroeder Shape (Initiator Point of View)}
+\label{fig:ns init pov}
+\end{center}
+\end{figure}
+
+\begin{verbatim}
+(defskeleton ns
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (operation nonce-test (contracted (n2-0 n2)) n1 (0 1)
+    (enc n1 n2 (pubk a)) (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b)))
+      (send (enc n1 n2 (pubk a)))))
+  (label 2)
+  (parent 1)
+  (unrealized)
+  (shape))
+\end{verbatim}
+
+The following phrase means {\cpsa} is finished with this problem---its
+exhausted its to do list.
+
+\begin{verbatim}
+(comment "Nothing left to do")
+\end{verbatim}
+
+\section{Security Goals and Rules}\label{sec:security goals}
+
+Another way to specify a problem statement is with a
+\index{goal, security}\index{security goal}security goal. A
+security goal a sentence in first-order logic.  It asserts that if
+some properties hold for a skeleton, then some other properties must
+hold for all shapes computed by CPSA starting with the skeleton.
+Security goals can be used to formally state authentication and
+secrecy goals of a protocol.
+
+The \texttt{defgoal} form is used to pose an analysis problem with a
+sentence instead of a skeleton.  CPSA extracts a point of view
+skeleton from the antecedent of the formula and then analyzes it.
+When it prints a shape, it checks to see if the shape satisfies the
+conclusion of the security goal.  See~\cite{cpsagoals09} for details.
+
+Each protocol may include a small collection of \index{rule}rules.  A
+rule is a sentence in the goal language.  A rule is an axiom added to
+a protocol.  {\cpsa} uses the axiom as a rewrite rule to derive zero
+or more new skeletons from a skeleton produced during a cohort step.
+Rules are described in~\cite{cpsagoals09}.  The grammar of security
+goals and rules is in Table~\ref{tab:goal}.
+
+\section{Macros}\label{sec:macros}
+
+After reading the input, {\cpsa} expands macros before in analyzing
+the results. A macro definition is a top-level form.\index{macros}
+
+\begin{quote}\scshape
+(\texttt{\textup{defmacro}} (name arg${}^\ast$) body)
+\end{quote}
+
+The {\cpsa} program expands all calls to macros in non-macro defining
+S-expressions using the macros that have been defined previously. A
+macro definition can be used to expand a call if the first element of
+a list matches the name of the macro, and the length of the remaining
+elements in the list matches the length of the macro's argument
+list. When two macros definitions are applicable, the last definition
+takes precedence. The {\cpsa} program omits macro definitions from its
+output.
+
+After expanding a list, elements of the list of the form
+\verb|(^ |$\cdots$\verb| )| are spliced into the output.  Thus
+\verb|(a ^(b c) d)| becomes \verb|(a b c d)| after macro expansion.
+
+\section{Includes}\label{sec:include}
+
+While performing macro expansion, {\cpsa} includes other source files
+with the top-level include form,\index{includes}
+\begin{quote}\scshape
+(\texttt{\textup{include}} file)
+\end{quote}
+where \texttt{\scshape file} is a string.
+
+\section{Algebra Signature Extensions}\label{sec:signature}
+
+The signature of the message algebra used by {\cpsa} is extensible.
+There are two forms of extensibility provided by {\cpsa}.  Users can
+add operations for encryption, \index{tuple}tupling, and hashing; and
+add sorts for atomic data.
+
+A common extension is to add tupling operations to message algebras.
+Previously, complex protocols often made use of tagged concatenation
+to encode a tagged sequence of messages.  In {\cpsa}, concatenation is
+implemented as sequences of pairing operations.  Thus, the expression
+for a certificate body of the form
+\begin{quote}
+\begin{verbatim}
+(cat "cert-body" dn serial-no pub-key)
+\end{verbatim}
+\end{quote}
+is syntax for
+\begin{quote}
+\begin{verbatim}
+(cat "cert-body" (cat dn (cat serial-no pub-key)))
+\end{verbatim}
+\end{quote}
+
+Algebra extensions are declared using the \texttt{lang} key in the
+protocol's association list, at the end of a protocol.  For the
+certificate body example,
+\begin{quote}
+\begin{verbatim}
+(defprotocol cert basic
+  ...
+  (lang (cert-body (tupl 3))))
+\end{verbatim}
+\end{quote}
+adds one tupling operation so that the example above can be written as
+\begin{quote}
+\begin{verbatim}
+(cert-body dn serial-no pub-key)
+\end{verbatim}
+\end{quote}
+{\cpsa} represents this form internally as a sequence of messages with a
+distinguished mark.  This representation is more efficient as compared
+with the tagged concatenation representation.
+
+\begin{table}
+\newcommand{\sym}[1]{\textup{\texttt{#1}}}
+\begin{center}\scshape
+\begin{tabular}{rcl}
+  lang&$\leftarrow$&(\sym{lang} ldecl$\ast$)
+  \\ ldecl&$\leftarrow$&(symbol+ kind)
+  \\ kind&$\leftarrow$&
+  $\sym{atom}\mid\sym{akey}\mid\sym{hash}\mid\mbox{(\sym{tupl}
+    integer)}$
+  \\ &$\mid$&$\sym{enc}\mid\sym{senc}\mid\sym{aenc}\mid\sym{sign}$
+\end{tabular}
+\end{center}
+\caption{Lang Field Syntax}\label{tab:lang field syntax}
+\end{table}
+
+The syntax of a \index{lang field}\texttt{lang} declaration is given
+in Table~\ref{tab:lang field syntax}.  There are eight kinds of ways
+that {\cpsa} algebras can be extended.
+
+\begin{itemize}
+
+\item An atomic sort is added to the algebra when a symbol is declared
+  to be of kind \texttt{atom}.  If \texttt{dollar} is declared to be
+  an atomic sort, then \verb|(price dollar)| in a \texttt{var} form
+  declares \texttt{price} to be of sort \texttt{dollar}.
+
+\item An atomic sort is also added to the algebra when a symbol is declared
+  to be of kind \texttt{akey}.  However, in addition to adding the
+  sort, {\cpsa} adds the equation $(x^{-1})^{-1}=x$ for variables of
+  the new sort.
+
+\item A unary operation is added to the algebra when a symbol is
+  declared to be of kind \texttt{hash}.  As with the default hash
+  operation, the adversary cannot extract the contents of the hash.
+
+\item An $n$-ary operation is added to the algebra when a symbol is
+  declared to be of kind (\texttt{tupl} $n$).  As with concatenation,
+ the adversary can construct and extract contents of tuples.
+ Constraint: $n>0$.
+
+\item A binary operation is added to the algebra when a symbol is
+  declared to be of kind \texttt{enc}.  As with the default encryption
+  operation, the adversary cannot extract contents of the encryption
+  without access to the inverse of the key.
+
+\item A symbol of kind \texttt{senc} is just like one of kind
+  \texttt{enc} except that the key supplied when it is applied must be
+  symmetric, that is, the sort of the key must not be asymmetric.
+
+\item A symbol of kind \texttt{aenc} is just like one of kind
+  \texttt{enc} except that the key supplied when it is applied must be
+  asymmetric, but not the inverse applied to an asymmetric key.
+  
+\item A symbol of kind \texttt{sign} is just like one of kind
+  \texttt{enc} except that the key supplied when it is applied must be
+  the inverse applied to an asymmetric key.
+
+\end{itemize}
+
+\section{Advice}\label{sec:advice}
+
+This section contains advice derived from using {\cpsa}.  When
+specifying {\cpsa} input, one must decide when to specify terms as
+uniquely originating or non-originating in a role, and when to
+specifying them in the initial skeleton.  If a fresh value is
+generated by all programs that implement a role in a protocol, the
+term that represents the fresh value should be assumed to be uniquely
+originating in the role.  Otherwise, unique origination assumptions
+should be specified in the initial skeleton.
+
+Adding non-origination assumptions to a role can lead to an
+excessively weak protocol analysis, i.e.\ an analysis relative to an
+unrealistically narrow assumption.  Placing non-origination
+assumptions in the initial skeleton is preferred whenever possible.
+
+The Basic Crypto Algebra has two text-like sorts, \dom{text} and
+\dom{data}.  For some protocols, message fields that carry uniquely
+originating data cannot be carried by other text-like fields.  To
+ensure {\cpsa} does not explore skeletons in which uniquely
+originating data is carried in fields with predictable values, the
+convention is to use the sort \dom{data} for uniquely originating
+data, and sort \dom{text} for the other fields.
+
+When looking at the output, try extracting the shapes first.  If the
+shapes only version of the output does not answer your questions, try
+studying the output that contains intermediate skeletons.
+
+When {\cpsa} generates an unexpected intermediate skeleton, study its
+operation field (see Page~\ref{sec:operation}).  Usually, the
+unexpected intermediate skeletons of interest have been generated as a
+result of an authentication test.  Section~\ref{sec:authentication
+  tests} explains how to interpret an operation field for an
+authentication test.
+
+When using {\cpsa} for protocol design, focus on authentication tests.
+For each iteration of the design, search for the most informative
+unexpected intermediate skeleton.  That skeleton is likely to suggest
+a  missing origination assumption, or the redesign of some message
+term included in the operation field.
+
+There are situations in which origination assumptions are not
+justified for initial segments of runs of a protocol, but are required
+to show that complete runs of the protocol have certain expected
+shapes.  In this case, the progressive refinement analysis technique
+is used.  The initial segments of runs are analyzed with only the
+origination assumptions justified initially.  A shape associated with
+a partial run may justify additional origination assumptions.  For
+example, a strand in a partial run may send its next message only
+after a trust decision is made, and the implication of the decision is
+that the strand infers that some key is uncompromised.  In this
+case, the shape with the new origination assumption and additional
+regular behavior is supplied as input to {\cpsa}, thereby refining the
+original problem.
+
+As there is no guarantee that {\cpsa} is bug free, you may come upon
+input that causes non-termination.  As a result, whenever you run the
+program unattended, you should limit its memory usage.  To get output
+that can be visualized, specify a step count and/or a strand bound so
+that {\cpsa} has the chance to abort the run in a fashion that
+generates graphable output.  Of course, sending us input that causes
+erroneous behavior will help us improve {\cpsa}.
+
+\section{Formula Extraction}\label{sec:formulas}
+
+The \texttt{cpsasas} program extracts a formula in the language of
+order-sorted first-order logic for each problem and its shapes from a
+{\cpsa} run. The formula is called a shape analysis
+sentence~\cite{Ramsdell12}. The formula is satisfied in all realized
+skeletons when {\cpsa} finds all the shapes for the problem.  The
+details of formula extraction are presented in Appendix~B of The
+{\cpsa} Specification~\cite{cpsaspec09}.
+
+\section*{Acknowledgement}
+
+Jonathan K.\@ Millen provided valuable feedback as our first {\cpsa}
+user and on a draft of this document.
+
+\appendix
+
+\section{BCA Syntax Reference}\label{sec:syntax reference}
+
+\input{bcasyntax}
+
+\section{Omitted Executions}\label{sec:omitted executions}
+
+When given some initial behavior, the {\cpsa} program discovers what
+shapes are compatible with it.  Early work claimed that the {\cpsa}
+algorithm would generate every shape in a finite number of
+steps~\cite{DoghmiGuttmanThayer07,Guttman11}.  Further theoretical
+work showed classes of executions that are not found by the algorithm,
+however it also showed that every omitted execution requires an
+unnatural interpretation of a protocol's roles.  Hence the algorithm
+is complete relative to natural role semantics.  We present an example
+of a protocol that has a shape missed by {\cpsa}.
+
+The protocol has an initiator role and a responder role.
+\begin{center}
+\includegraphics{cpsadiagrams-6.mps}\hfil
+\includegraphics{cpsadiagrams-7.mps}
+\end{center}
+
+Observe that a natural interpretation of~$N_2$ in the responder role
+is that a binding for it is known when an instance of the role begins
+execution.
+
+Consider a scenario in which there is an instance of the initiator
+role where~$N$ is freshly generated and~$K^{-1}$ is uncompromised.
+{\cpsa} will find no shapes compatible with the scenario, however what
+follows is.
+\begin{center}
+\includegraphics{cpsadiagrams-8.mps}
+\end{center}
+Yet this shape requires that the message for~$N_2$ in an instance the
+responder role be obtained from its first message reception---an
+unnatural interpretation of the responder role.
+
+\bibliography{cpsa}
+\bibliographystyle{plain}
+
+\printindex
+
+\end{document}
diff --git a/doc/src/cpsaspec.tex b/doc/src/cpsaspec.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/cpsaspec.tex
@@ -0,0 +1,2558 @@
+ \documentclass[12pt]{report}
+\usepackage{amssymb}
+\usepackage{amsmath}
+\usepackage{amsthm}
+\usepackage{url}
+\usepackage[matrix,arrow,curve]{xy}
+\usepackage{makeidx}
+% Include this for a hyperlinked version of the document
+\usepackage{hyperref}
+\theoremstyle{definition}
+\newtheorem{defn}{Definition}[chapter]
+\newtheorem{thm}{Theorem}[chapter]
+\newtheorem{lem}[thm]{Lemma}
+\newtheorem{cor}[thm]{Corollary}
+\newtheorem{conj}[thm]{Conjecture}
+\newtheorem{prop}[thm]{Proposition}
+\input{macros}
+
+\hyphenation{pro-to-skel-e-ton}
+\hyphenation{pro-to-role}
+
+% This environment is used for comments about this draft.
+\newenvironment{note}{\itshape\par}{}
+
+\newcommand{\inv}[1]{\ensuremath{\cn{inv}(#1)}}
+\newcommand{\gen}{\ensuremath{\cn{g}}}
+\newcommand{\expr}[2]{\ensuremath{{#1}^{#2}}}
+\newcommand{\bca}{\textsc{bca}}
+\newcommand{\alga}{\alg{A}}
+\newcommand{\algbara}{\bar{\alg{A}}}
+\newcommand{\tr}{\ensuremath{\mathfrak C}}
+\newcommand{\base}{\ensuremath{\mathfrak B}}
+\newcommand{\ints}{\ensuremath{\mathbb Z}}
+\newcommand{\solve}[1]{\stackrel{#1}{\longtwoheadrightarrow}}
+\newcommand{\sntchmsg}{\fn{sntchmsg}}
+\newcommand{\pubmsg}{\fn{pubmsg}}
+\newcommand{\auth}{\fn{auth}}
+\newcommand{\conf}{\fn{conf}}
+\newcommand{\avoid}{\fn{avoid}}
+\newcommand{\dcmp}{\fn{dcmp}}
+\newcommand{\carpos}{\fn{carpos}}
+\newcommand{\esc}{\fn{esc}}
+\newcommand{\aug}{\fn{aug}}
+\newcommand{\crit}{\fn{crit}}
+\newcommand{\critpos}{\fn{critp}}
+\newcommand{\anc}{\fn{anc}}
+\newcommand{\mcow}{\fn{cow}}
+\newcommand{\mncow}{\fn{ncow}}
+\newcommand{\sdom}{\fn{Dom}}
+\newcommand{\sran}{\fn{Ran}}
+\newcommand{\svars}{\fn{Vars}}
+\newcommand{\evt}{\fn{evt}}
+\newcommand{\msg}{\fn{msg}}
+\newcommand{\role}{\mathsf{r}}
+\newcommand{\skel}{\mathsf{k}}
+\newcommand{\rl}{\fn{rl}}
+\newcommand{\inst}{\mathsf{i}}
+\newcommand{\nodes}{\fn{nodes}}
+\newcommand{\lsn}{\fn{lsn}}
+\newcommand{\init}{\fn{init}}
+\newcommand{\resp}{\fn{resp}}
+\newcommand{\form}{\mathcal{F}}
+\newcommand{\sent}{\mathcal{S}}
+
+\makeindex
+
+\title{The CPSA Specification:\\
+A Reduction System for Searching for Shapes in Cryptographic Protocols}
+\author{John D.~Ramsdell\qquad Joshua D.~Guttman\\
+  \quad Moses D.~Liskov\qquad Paul D.~Rowe\\
+  The MITRE Corporation\\ CPSA Version \version}
+
+\begin{document}
+\maketitle
+\cpsacopying
+
+\tableofcontents
+
+\begin{abstract}
+We describe a term reduction system that enumerates all essentially
+different executions possible for a cryptographic protocol.  We call
+them the \emph{shapes} of the protocol.  Naturally occurring protocols
+have only finitely many, indeed very few shapes.  Authentication and
+secrecy properties are easy to determine from them, as are attacks and
+anomalies.  Our Cryptographic Protocols Shapes Analyzer ({\cpsa})
+program is a direct implementation of the reduction system described
+within, and the form of the reduction system is partially determined
+by the implementation.
+\end{abstract}
+
+\chapter{Introduction}
+
+The Cryptographic Protocol Shapes Analyzer ({\cpsa}) attempts to
+enumerate all essentially different executions possible for a
+cryptographic protocol.  We call them the \emph{shapes} of the
+protocol.  Naturally occurring protocols have only finitely many,
+indeed very few shapes.  Authentication and secrecy properties are
+easy to determine from them, as are attacks and anomalies.
+
+The shapes analysis is performed within a pure Dolev-Yao model.  The
+{\cpsa} program reads a sequence of problem descriptions, and prints
+the steps it used to solve each problem.  For each input problem,
+{\cpsa} is given some initial behavior, and it descovers what shapes
+are compatible with it.  Normally, the initial behavior is from the
+point of view of one participant.  The analysis reveals what the other
+participants must have done, given the participant's view.
+
+This document specifies the {\cpsa} program using a term reduction
+system.  Chapter~\ref{chp:order-sorted mesg algs} describes message
+algebras as order-sorted quotient term algebras.
+Chapter~\ref{chp:strand spaces and bundles} presents an
+implementation-oriented view of strand spaces.
+Chapter~\ref{chp:adversary model} details the model of the adversary.
+The formal definition of a partial run of a protocol is called a
+skeleton, and is introduced in Chapter~\ref{chp:skeletons}.
+
+The term reduction systems used to specify the algorithm is presented
+in Chapter~\ref{chp:algorithms}, and the primitive reduction rules are
+in Chapter~\ref{chp:prim preskel ops}.  The rules used to transform
+terms called preskeletons into skeletons are in
+Chapter~\ref{chp:preskeleton reduction}.
+
+The algorithm used to model adversarial behavior is in
+Chapter~\ref{chp:penetrator derivable}.  The algorithms used to infer
+what else must have happened given a partial description of a run of
+a protocol as skeleton is in Chapters~\ref{chp:cow} and~\ref{chp:auth
+  tests}.  Chapters~\ref{chp:generalization} and~\ref{chp:collapsing}
+find most general descriptions of {\cpsa} answers---the shapes.
+Finally, Chapter~\ref{chp:skeleton reduction} assembles reduction
+rules into one system that specifies the {\cpsa} program.
+
+Appendix~\ref{chp:penetrator non-origination} describes an extension
+to Strand Space theory that models passwords and related concepts.
+Appendix~\ref{chp:traces} details the sense in which a protocol role
+can be viewed as an abstraction of a program.
+Appendix~\ref{chp:logic} describes a formula in the language of
+order-sorted first-order logic for each problem and its shapes found
+by {\cpsa}.  The formula is called a shape analysis sentence.  The
+formula is modeled by all skeletons that describe full runs of a
+protocol when {\cpsa} finds all the shapes for the problem.
+
+{\cpsa}'s search is based on a high-level algorithm that was claimed
+to be complete, i.e.\@ every shape can in fact be found in a finite
+number of steps~\cite{DoghmiGuttmanThayer07,Guttman11}.  Further
+theoretical work~\cite{cpsatheory11} showed classes of executions that
+are not found by the algorithm, however it also showed that every
+omitted execution requires an unnatural interpretation of a protocol's
+roles.  Hence the algorithm is complete relative to natural role
+semantics.  See~\cite[Appendix~B]{cpsaprimer09} for more on omitted
+executions.
+
+A {\cpsa} release includes two other documents, the {\cpsa}
+Design~\cite{cpsadesign09} and the {\cpsa} Primer~\cite{cpsaprimer09}.
+The design document describes details of the {\cpsa}
+implementation that would clutter this one.  It should be read by
+anyone interesting in reading and modifying the source code.  The
+{\cpsa} Primer provides an overview of {\cpsa}, and is worth
+reading before this document is approached.
+
+\section{Notation}\label{sec:notation}
+
+A finite sequence\index{sequence} is a function from an initial
+segment of the natural numbers.  The length of a sequence~$X$ is~$|X|$,
+and sequence~$X=\seq{X(0),\ldots,X(n-1)}$ for $n=|X|$.  Alternatively,
+$\seq{x_0,x_1,\ldots,x_{n-1}} =x_0\cons x_1\cons\ldots\cons
+x_{n-1}\cons\seq{}$.  If~$S$ is a set, then~$S^\ast$ is the set of finite
+sequences of~$S$, and~$S^+$ is the non-empty finite sequences of~$S$.
+The concatenation of sequences~$X_0$ and~$X_1$ is~$X_0\append X_1$.
+The prefix of sequence~$X$ of length~$n$ is~$\prefix{X}{n}$.
+
+Generally, when discussing terms, a lowercase Latin letter is used to
+denote a term, and an uppercase Latin letter is used to denote a set
+of terms or a sequence of terms.
+
+\chapter{Order-Sorted Message Algebras}\label{chp:order-sorted mesg algs}
+
+{\cpsa} models a message by an equivalence class of terms over a
+signature. A sort system is used to classify messages.  {\cpsa}
+depends on the sort system to allow it to treat a variable that
+represents an asymmetric key differently from a variable that
+represents an arbitrary message.  In particular, {\cpsa} uses
+order-sorted quotient term algebras~\cite{GoguenMeseguer92} for
+message algebras.  This formalism enables the use of well-known
+algorithms for unification and matching in the presences of equations
+and sorts~\cite{BaaderSnyder01}.
+
+This paper makes no attempt to provide a general introduction to
+order-sorted quotient term algebras.  We use a message algebra called
+the Basic Crypto Algebra (\bca), which is the main algebra used by
+{\cpsa}.
+
+\begin{figure}
+\begin{center}
+Sorts: \dom{name}, \dom{text}, \dom{data}, \dom{skey}, \dom{akey} $<$ \dom{mesg}\\[1ex]
+Base sorts: \dom{name}, \dom{text}, \dom{data}, \dom{skey}, \dom{akey}\\
+Carried positions: $\bullet$ denotes a carried position.\\[1ex]
+\begin{tabular}{@{}ll}
+$\enc{\bullet}{(\cdot)}\colon\dom{mesg}\times\dom{mesg}\rightarrow\dom{mesg}
+$&Encryption\\
+$\hash{(\cdot)}\colon\dom{mesg}\rightarrow\dom{mesg}
+$&Hashing\\
+$(\bullet,\bullet)\colon\dom{mesg}\times\dom{mesg}\rightarrow\dom{mesg}$
+&Pairing\\
+``\ldots''$\colon{}\dom{mesg}$& Tag constants\\
+$K_{(\cdot)}\colon\dom{name}\rightarrow\dom{akey}$
+&Public key of name\\
+$(\cdot)^{-1}\colon\dom{akey}\rightarrow\dom{akey}$
+&Inverse of key\\
+$\cn{ltk}(\cdot,\cdot)\colon\dom{name}\times\dom{name}\rightarrow\dom{skey}$
+& Long term key
+\end{tabular}\\[1ex]
+Equation: $(x^{-1})^{-1} \approx x$ for $x\colon\dom{akey}$
+\end{center}
+\caption{Basic Crypto Signature and Equation}\label{fig:bcs}
+\end{figure}
+
+There are six {\bca} sorts: $\dom{mesg}$, \index{sorts}the sort of
+all messages, $\dom{skey}$, the sort of symmetric keys,
+$\dom{akey}$, the sort of asymmetric keys, $\dom{name}$, the sort of
+participant names, and $\dom{text}$ and $\dom{data}$ for ordinary
+values.  Sort $\dom{mesg}$ is sometimes written as~$\top$ and the
+other sorts are called \index{base sorts}\emph{base sorts}.
+All base sorts are subsorts of $\dom{mesg}$.  The function
+symbols, or \index{operations}\emph{operations}, used to form terms
+are given by the signature in Figure~\ref{fig:bcs}.
+
+Each variable~$x$ used to form a term has a unique sort~$s$, written
+$x\colon s$.  Variable set~$X$\index{variable set} is an indexed set
+of sets of variables, $X_s=\{x\mid x\colon s\}$.  For {\bca},
+$X_{\dom{mesg}}$, $X_{\dom{skey}}$, $X_{\dom{akey}}$,
+$X_{\dom{name}}$, $X_{\dom{text}}$, and $X_{\dom{data}}$ partition
+the set of variables in~$X$.  By abuse of notation, at times, we
+write~$X$ for the set of variables in~$X$.
+
+\begin{figure}
+$$\begin{array}{r@{{}={}}l}
+\alga_{\dom{skey}}&\{\{x\}\mid x \in X_{\dom{skey}}\} \cup \{\{\cn{ltk}(a,b)\}\mid a \in X_{\dom{name}}, b \in X_{\dom{name}}\}\\
+\alga_{\dom{akey}}&\begin{array}[t]{@{}l}
+\{\{x^{-2n}\mid n\in\nat\}\mid x\in X_{\dom{akey}}\}\\
+\quad{}\cup\{\{x^{-2n-1}\mid n\in\nat\}\mid x\in X_{\dom{akey}}\}\\
+\quad{}\cup\{\{K_x^{-2n}\mid n\in\nat\}\mid x\in X_{\dom{name}}\}\\
+\quad{}\cup\{\{K_x^{-2n-1}\mid n\in\nat\}\mid x\in X_{\dom{name}}\}\\
+\end{array}\\
+\alga_{\dom{name}}&\{\{x\}\mid x \in X_{\dom{name}}\}\\
+\alga_{\dom{text}}&\{\{x\}\mid x \in X_{\dom{text}}\}\\
+\alga_{\dom{data}}&\{\{x\}\mid x \in X_{\dom{data}}\}\\
+\base&\alga_{\dom{skey}} \cup \alga_{\dom{akey}} \cup \alga_{\dom{name}} \cup \alga_{\dom{text}} \cup \alga_{\dom{data}}\\
+\alga^0&\base\cup \{\{x\}\mid x\in X_{\dom{mesg}}\} \cup
+\{\{x\}\mid x \hbox{ is a tag constant }\}\\
+\alga^{n+1}&\alga^n
+\begin{array}[t]{@{}l}
+{}\cup\{\{(t_0,t_1)\mid t_0\in T_0, t_1\in T_1\}\mid
+ T_0\in\alga^n,T_1\in\alga^n\}\\
+{}\cup\{\{\enc{t_0}{t_1}\mid t_0\in T_0, t_1\in T_1\}\mid
+ T_0\in\alga^n,T_1\in\alga^n\}\\
+{}\cup\{\{\hash{t}\mid t\in T\}\mid T\in\alga^n\}
+\end{array}\\
+\alga = \alga_{\dom{mesg}}&\bigcup_{n\in\nat}\alga^n
+\end{array}$$
+\caption{{\bca} Messages~$\alga$ and Atoms~$\base$}\label{fig:algebra}
+\end{figure}
+
+The Basic Crypto Quotient Term Algebra~$\alga$ generated by variable
+set~$X$ is displayed in Figure~\ref{fig:algebra}.  The union of the
+messages in~$\alga$ is set of terms generated by~$X$, and~$\alga$
+partitions the set of terms into a set of equivalence classes induced
+by the equations.  Terms~$t_0$ and~$t_1$ are equivalent, written
+$t_0\equiv t_1$, iff $t_0\in T\land t_1\in T$ for some $T\in\alga$.
+The canonical representative of a message is the $t$ in $\{t'\mid
+t'\equiv t\}$ with the fewest occurrences of the $(\cdot)^{-1}$
+operation.
+
+Keys, names, data, and texts in the algebra are called
+\index{atoms}\emph{atoms} and are members of~$\base$.  We write
+$t\colon B$ iff $\{t'\mid t'\equiv t\}\in\base$.  Note that encryption
+is defined with an encryption key of sort $\dom{mesg}$.  When the
+encryption key is of sort $\dom{akey}$ this is meant to model
+asymmetric encryption: otherwise, this models symmetric encryption.
+Note that even complex messages such as encryptions can be used as
+encryption keys in the symmetric sense.
+
+To find the decryption key associated with an encryption, one must
+exclude the case in which the key is a variable of sort \dom{mesg},
+as there is no way to determine if the encryption operation denotes
+symmetric or asymmetric encryption.  Therefore, the decryption
+key\index{inverse key} associated with encryption key~$t$
+is~$\fn{inv}(t)$.
+
+$$\fn{inv}(t) =\left\{
+\begin{array}{ll}
+\cn{invk}(t)&\mbox{if $t\colon\dom{akey}$;}\\
+\mbox{undefined}&\mbox{if $t$ is a variable of sort $\dom{mesg}$;}\\
+t&\mbox{otherwise.}
+\end{array}\right. %}
+$$
+
+An important property possessed by the algebra is that for all
+$T\in\alga$, if there are any encryptions in $T$ then all members of
+$T$ are encryptions.  As a result, a message can be identified as
+representing an encryption and if it is, decomposed into its plaintext
+and its decryption key.  This property is a consequence of the fact
+that equations relate atoms, not arbitrary messages.  A similar
+property holds for pairs and hashes.  A hash\index{hash} is treated as
+a kind of encryption in which the term that is hashed is the
+encryption key.
+
+We write $\alga_X$ when it is important to identify the variable
+set~$X$ that generates the algebra.  Given two variable sets~$X$
+and~$Y$, a \index{substitution}\emph{substitution} is an order-sorted
+map~$\sigma\colon X\rightarrow\alga_Y$ such that $\sigma(x)\neq x$ for
+only finitely many elements of~$X$.  For a substitution~$\sigma$, the
+\index{domain}\index{domain}\emph{domain} is the set of variables
+$\sdom(\sigma)=\{x\mid \sigma(x)\neq x\}$ and the
+\index{range}\emph{range} is the set $\sran(\sigma)=\{\sigma(x)\mid
+x\in\sdom(\sigma)\}$.  Substitution~$\sigma_0$ is \index{more general
+  substitution}\emph{more general than}~$\sigma_1$,
+written~$\sigma_0\unlhd\sigma_1$, if there exists a
+substitution~$\sigma_2$ such that
+$\all{x}\sigma_1(x)\equiv\sigma_2(\sigma_0(x))$.  Given a
+substitution~$\sigma\colon X\rightarrow\alga_Y$, the unique
+homomorphism\index{homomorphism!algebra} $\sigma^\ast\colon
+\alga_X\rightarrow\alga_Y$ induced by~$\sigma$ is also
+denoted~$\sigma$.
+
+A \index{position}\emph{position}~$p$ is a finite sequence of natural
+numbers.  The term in~$t$ that \emph{occurs at}~$p$, written~$t\termat
+p$, is:
+$$\begin{array}{l}
+t\termat\seq{}=t;\\
+(t_0,t_1)\termat i\cons p=t_i\termat p\mbox{ for $i\in\{0,1\}$};\\
+\enc{t_0}{t_1}\termat i\cons p=t_i\termat p\mbox{ for
+  $i\in\{0,1\}$};\\
+t^{-1}\termat 0\cons p=t\termat p.
+\end{array}$$
+A term~$t$ \index{occurs in}\emph{occurs in} term~$t'$ if $t=t'\termat
+p$ for some~$p$.  A message~$T$ \emph{occurs in} message~$T'$ if the
+canonical representative of~$T$ occurs in the canonical representative
+of~$T'$.
+
+A carried term is one that can be extracted from a message reception
+assuming plaintext is extractable from encryptions.  The positions at
+which term $t$ is carried in $t'$ is $\carpos(t,t')$\index{carried
+  positions}\index{carpos@\carpos}\label{def:carried positions},
+where
+$$\carpos(t,t')=\left\{
+\begin{array}{ll}
+\{\seq{}\}&\mbox{if $t'\equiv t$, else}\\
+\multicolumn{2}{l}{\{0\cons p \mid
+p\in\carpos(t,t_1)\}}\\
+& \mbox{if $t'=\enc{t_0}{t_1}$, else}\\
+\multicolumn{2}{l}{\{i\cons p \mid
+i\in\{0,1\}, p\in\carpos(t,t_i)\}} \\
+& \mbox{if $t'=(t_0,t_1)$ else}\\
+\emptyset&\mbox{otherwise.}
+\end{array}\right.  %}
+$$
+
+Term~$t$ \index{carries}\emph{carries}~$t'$ if $\carpos(t',t)$ is not
+empty, and $t'\sqsubseteq t$ when~$t'$ is carried by~$t$.  Note that
+for all terms $t_0,t_1,t'_0,t'_1$, if $t_0\equiv t_1$ and $t'_0\equiv
+t'_1$, then $\carpos(t_0,t'_0)= \carpos(t_1,t'_1)$.  We write $t'
+\sqsubseteq_p t$ when $p \in \carpos(t',t)$ and $t \termat p \equiv
+t'$.
+
+In what follows, we will often conflate a term with the message of
+which it is a member, and use lowercase letters to denote both.
+
+\section{Channel Messages}\index{channel message}
+
+As of {\cpsa} version 4.2, messages can optionally be transported on a
+channel.  For $t\in\alga_X$, a plain message is written $[t]$, and
+when the message is bound to channel~$c$, it is written $[c,t]$.
+
+The channel message algebra adds two sorts to the underlying message
+algebra, \dom{chan} and \dom{chmsg}, and two operations to the
+signature:
+\[\begin{array}{r@{{}:{}}ll}
+   [\cdot]&\dom{mesg}\rightarrow\dom{chmsg}&\mbox{Plain message}\\ \relax
+   [\cdot,\cdot]&\dom{chan}\times\dom{mesg}\rightarrow\dom{chmsg}
+   &\mbox{Channel message}
+\end{array}\]
+Let $X$ be a {\bca} variable set, and $\bar X$ be a variable set that
+adds channel variables to $X$.  If $\alga_X$ is the algebra associated
+with sort \dom{mesg}, then $\algbara_{\bar X}$ is the algebra
+associated with sort \dom{chmsg}, the Basic Crypto Channel Algebra
+generated from $\bar X$.
+
+Positions are extended to channel messages as follows:
+\[\begin{array}{l}
+m\termat\seq{}=m;\\ \relax
+[t]\termat 0\cons p=t\termat p;\\ \relax
+[c,t]\termat 1\cons p=t\termat p.
+\end{array}\]
+The set of carried positions is extended to channel messages in the
+obvious way.  The plain message $[t]$ will often be written as $t$
+when the context disambiguates the reference.
+
+\section{Locations and state messages}\index{locations}\index{points}
+\label{sec:locns:and:state}
+
+The {\cpsa} 4 treatment of state makes two additions to the message
+algebra.  First, we introduce a new sort of channel, called
+\emph{locations} and written \dom{locn}.  These are handled exactly
+like \dom{chan}s in building channel messages:
+%
+\[\begin{array}{r@{{}:{}}ll}
+    [\cdot]&\dom{mesg}\rightarrow\dom{chmsg}&\mbox{Plain message}\\ \relax
+    [\cdot,\cdot]&(\dom{chan}\cup\dom{locn})\times\dom{mesg}\rightarrow\dom{chmsg}
+                                            &\mbox{Channel message}
+\end{array}\]
+%
+We also add a new sort to the underlying message sorts, the sort of
+\emph{points} \dom{pval}, which are a base sort.
+\begin{center}
+  Sorts: \dom{pval}, \dom{name}, \dom{text}, \dom{data}, \dom{skey},
+  \dom{akey} $<$ \dom{mesg}\\[1ex]
+  Base sorts: \dom{pval}, \dom{name}, \dom{text}, \dom{data},
+  \dom{skey}, \dom{akey}
+\end{center}
+%
+We leave the operators and equations unchanged.  {\cpsa} protocol
+specifications never mention point values explicitly, but the {\cpsa}
+loader incorporates them whenever it reads roles that load state
+values from locations or store them into locations.
+
+The state value is a pair $(pt,t)$ consisting of a point
+$pt : \dom{pval}$ and the user-specified message term $t$; the point
+occurring when a state value is stored into a location is always
+assumed to be uniquely originating.  This ensures that loads that
+receive the same value (including the point component) are in fact
+observing the same state transition event.  This allows {\cpsa} to
+reconstruct the state histories of different state registers.
+
+Thus, when $m$ is a message, it may be a plain message $[t]$ or a
+channel message $[c,t]$, where either $c : \dom{chan}$ or
+$c : \dom{locn}$.  In case $c : \dom{locn}$, {\cpsa} always arranges
+that $t$ is a pair of the form $t=(pt,t_0)$ where $pt : \dom{pval}$
+and $t_0$ is a point-free term.
+
+
+\chapter{Strand Spaces and Bundles}\label{chp:strand spaces and bundles}
+
+When using strand space theory, one normally hypothesizes the
+existence of a single global strand space.  This is a very reasonable
+assumption for theoretical analysis, but from the point view of an
+implementer, it turns out that it is better to assume there are many
+local strand spaces and the design specification task is to describe
+the relations between these local spaces.  Our reformulation of strand
+space notation provides an implementation oriented way of describing
+the concept of a local strand space, and a direct link between from
+algorithm specification to the data structures used in the
+implementation.
+
+A run of a protocol is viewed as an exchange of messages by a finite
+set of local sessions of the protocol.  Each local session is called a
+\index{strand}\emph{strand}.  The behavior of a strand, its
+\index{trace}\emph{trace}, is a sequence of messaging events.  An
+\index{event}\emph{event} is either a message transmission or a
+reception.
+
+An outbound message $m\in\algbara_X$ is written as~$\outbnd m$, and a
+message~$m$ is written as~$\inbnd m$.
+
+\paragraph{State events:  Stores and loads.}  When $m=[c,(pt,t_0)]$
+for $c : \dom{locn}$ and $pt : \dom{pval}$, $\outbnd m$ is a store
+event, in which the value $t_0$ is written into the location $c$, and
+$\inbnd m$ is a load event, in which the value $t_0$ is read out of
+the location $c$.  In the latter case, $pt$ may be the point
+associated with an earlier store event $e$ that wrote $t_0$ into $c$.
+In this case, our theory will ensure that $e$ is the most recent store
+event involving $c$.
+
+\paragraph{Traces and strand spaces.}  The set of traces over
+$\algbara_X$ is $\tr_X=(\pm\algbara_X)^+$.  A message
+\index{originates}\emph{originates} in a trace if it is carried by
+some event and the first event in which it is carried is outbound.  A
+message is \index{gained}\emph{gained} by a trace if it is carried by
+some event and the first event in which it is carried is inbound.  A
+message is \index{acquired}\emph{acquired} by a trace if it first
+occurs in a reception event and is also carried by that event.
+
+Abstractly, a strand space is a multiset of traces, but since we wish
+to name each element, a \index{strand space}\emph{strand
+  space}~$\Theta_X$ over algebra~$\algbara_X$ is defined to be a sequence
+of traces in $\tr_X$.  A strand~$s$ is a member of the domain of
+$\Theta_X$, and its trace is $\Theta_X(s)$.
+
+Message events occur at nodes in a strand space.  For each strand~$s$,
+there is a node for every event in~$\Theta(s)$.  The
+\index{nodes}\emph{nodes} of strand space $\Theta$ are $\{(s,i)\mid
+s\in\sdom(\Theta), 0\leq i< |\Theta(s)|\}$, the event at a node is
+\index{evt@\evt}$\evt_\Theta(s,i)=\Theta(s)(i)$, and the message at a
+node is \index{msg@\msg}$\msg_\Theta(s,i) = m$ such that
+$\evt_\Theta(s,i) = \pm m$.  Just as a position names a subterm within
+another term, a strand names a trace within a strand space, and a node
+names an event in a strand space.  The relation~$\Rightarrow$ defined
+by $\{(s,i-1)\Rightarrow(s,i)\mid s\in\sdom(\Theta), 1\leq
+i<|\Theta(s)|\}$ is called the \index{strand succession}\emph{strand
+  succession relation}.
+
+A \index{bundle}\emph{bundle} in strand space $\Theta$ is a finite
+directed acyclic graph $\Upsilon(\Theta,\to)$, where the vertices are
+the nodes of $\Theta$, and an edge represents
+communication~($\rightarrow$) or strand succession~($\Rightarrow$).
+For \index{communication}communication, if $n_0\rightarrow n_1$, then
+there is a channel message~$m$ such that~$\evt_\Theta(n_0)=\outbnd m$
+and~$\evt_\Theta(n_1)=\inbnd m$.  For each reception node~$n_1$, there
+is a unique transmission node~$n_0$ with $n_0\rightarrow n_1$.
+
+Each acyclic graph has a transitive irreflexive relation~$\prec$ on
+its vertices.  The relation specifies the causal ordering of nodes in
+a bundle.  An transitive irreflexive binary relation is also called a
+\index{strict partial order}\index{partial order!strict}strict partial
+order.
+
+\paragraph{Authentic and confidential channels.}  An atom
+\index{uniquely originates}\emph{uniquely originates} in a bundle if
+it originates in the trace of exactly one strand.  An atom is
+\index{non-originating}\emph{non-originating} in a bundle if it
+originates on no strand, but each of its variables occurs in some
+strand's trace.  A channel is \index{authenticated
+  channel}\emph{authenticated} if only regular strands in a bundle use
+it to transmit messages.  A channel is \index{confidential
+  channel}\emph{confidential} if only regular strands in a bundle use
+it to receive messages.
+
+\paragraph{Channel properties of locations.}  Every location is
+regarded as a confidential channel.  Thus, we are modeling long term
+state registers that are associated with devices under the control of
+regular (i.e.~compliant) participants.  The adversary never observes a
+location directly; the adversary observes only messages from regular
+participants that may reflect the contents of locations.  The
+adversary may store certain values directly, namely the possible
+initial values for a location.  Thus, we rely on the adversary to
+initialize locations values.  Other values that can be produced only
+by a state transition cannot be inserted by the adversary; only a
+regular participant's store event can cause them.  The protocol
+specification determines the sufficient conditions for these
+non-initial values, or, as we will call them, \emph{generated state}
+values.  Naturally, messages the adversary delivers to regular
+participants may affect what generated state values they subsequently
+store.
+
+\paragraph{Roles.}  In a run of a protocol, the behavior of each
+strand is constrained by a role in a protocol.  Adversarial strands
+are constrained by roles as are non-adversarial strands.  What follows
+is the definition of a role before channels and channel messages were
+introduced into {\cpsa}, followed by a discussion of the additions
+caused by channels.
+
+%A %proto  JDG:  Protorole?  What's that?
+%
+Given an $\algbara_Y$, and $C\in\tr_Y$, $N\subseteq\base_Y$, and
+$U\subseteq\base_Y$, if:
+%
+\begin{enumerate}
+  \item $t\in N$ implies $t$ is not carried in $C$, and all variables
+  in $N$ occur in $C$;
+  \item $t\in U$ implies $t$ originates in $C$; 
+  \item if variable~$x$ occurs in $C$ then $x$ is an atom or it is
+  acquired in $C$; and
+  \item the trace of a role may not match the pattern\label{item:no:lsn}
+  $\seq{\inbnd m, \outbnd m,\ldots}$, 
+\end{enumerate}
+%
+then $\role_Y(C,N,U)$ is a \emph{role}\index{role} over $\algbara_Y$.
+The trace of $\role_Y(C,N,U)$ is~$C$, its non-origination assumptions
+are~$N$, and its unique origination assumptions are~$U$.  Item
+(\ref{item:no:lsn}) is meant to ensure that listeners, which are
+introduced on Page~\pageref{def:listeners}, cannot be confused with
+protocol constrained strands.
+
+A \index{protocol}\emph{protocol} $P$ is a set of roles.  Let
+\index{Vars@\svars}$\svars(P)$ be the set of variables that occur in
+the traces of the roles in protocol~$P$.
+
+A bundle~$\Upsilon(\Theta_X,\to)$ is a \index{run of
+  protocol}\emph{run of protocol} $P$ if there is a role mapping
+$\rl\colon\Theta_X\to P$ that satisfies properties for each
+$s\in\sdom(\Theta_X)$.  Assuming $\rl(s)=\role_Y(C,N,U)$ and $X$ and
+$Y$ share no variables, and let $h=|\Theta_X(s)|$, the properties are
+(1) $h\leq|C|$, (2) there is a
+homomorphism~$\sigma\colon\algbara_Y\to\algbara_X$ such that
+$\comp{\sigma}{\prefix{C}{h}}=\Theta_X(s)$, (3) $\sdom(\sigma)$ is the
+set of variables that occur in~$\prefix{C}{h}$, (4) if the variables
+in $t\in N$ occur in $\sdom(\sigma)$, then $\sigma(t)$ is
+non-originating in $\Upsilon(\Theta_X,\to)$, and (5) if $t\in U$
+originates at index~$i$ in~$C$, and $i<h$, then $\sigma(t)$
+uniquely originates in $\Upsilon(\Theta_X,\to)$ at node $(s,i)$.
+Origination assumptions in bundles specified by roles are called
+\index{inherited origination assumptions}\emph{inherited origination
+  assumptions}.
+
+\paragraph{Roles and channels.}  The introduction of channels adds two
+new fields to a role, a set of channels assumed to be authenticated,
+and a set of channels assumed to be confidential.  For a bundle to be
+a run of a protocol, the inherited channel assumptions must be honored
+by the bundle.  State adds no other fields to the role data structure,
+although when $c :  \dom{locn}$, $c$ will always be among the
+confidential channels.
+
+\chapter{Adversary Model}\label{chp:adversary model}
+
+A fixed set of penetrator roles encodes the adversary model associated
+with a message algebra.  For the Basic Crypto Algebra, there are nine
+roles.  Each role makes no origination assumptions, and the trace of
+each role is given in Figure~\ref{fig:pen}.  The first line of the
+figure specifies many traces, one for each base sort, and a trace for
+each tag.
+
+\begin{figure}
+$$\begin{array}{lll}
+\mbox{Create}(z\colon B)&
+\seq{\outbnd z}&\seq{\outbnd\mbox{``\ldots''}}\\
+\mbox{Pair}(x,y\colon\top)&
+\seq{\inbnd x,\inbnd y,\outbnd(x, y)}&
+\seq{\inbnd(x, y),\outbnd x,\outbnd y}\\
+\mbox{Encrypt}(x,y\colon\top)&
+\seq{\inbnd x,\inbnd y,\outbnd\enc{x}{y}}&
+\seq{\inbnd\enc{x}{y},\inbnd \fn{inv}(y),\outbnd x}\\
+\mbox{Hash}(x\colon\top)&
+\seq{\inbnd x,\outbnd\hash{x}}\\
+\mbox{Chan}(c\colon\mathit{Ch},x\colon\top)
+&\seq{\inbnd x, \outbnd[c,x]}&\seq{\inbnd[c,x],\outbnd x}
+\end{array}$$
+\caption{Basic Crypto Algebra Penetrator Role Traces}\label{fig:pen}
+\end{figure}
+
+A strand exhibits non-adversarial behavior when its role is not a
+penetrator role.  A non-adversarial strand is called a \index{regular
+  strand}\emph{regular} strand as is its role.
+
+The penetrator cannot use a non-originating atom to encrypt or decrypt
+a message, because every key it uses must be carried in a message.
+Consider a uniquely originating atom that originates on a regular
+strand.  The penetrator cannot make the atom using a create role,
+because the atom would originate in more than one trace.  Therefore,
+the penetrator can use a uniquely originating atom to encrypt or
+decrypt a message only if it is transmitted by a regular strand
+unprotected by encryption.
+
+When a channel is authenticated, the penetrator cannot send a message
+on it.  When a channel is confidential, the penetrator cannot receive
+a message on it.
+
+\chapter{Skeletons}\label{chp:skeletons}
+
+The details of penetrator behavior are abstracted away when performing
+protocol analysis.  The abstracted description of a bundle is called a
+realized skeleton, which is defined using a protoskeleton.  A
+\emph{protoskeleton} over $\algbara_X$ is
+$\skel_X(\rl,P,\Theta_X,\prec,N,U)$, where $\rl\colon\sdom(\Theta_X)\to P$ is
+a role map, the sets~$X$ and $\svars(P)$ are disjoint,
+$\Theta_X$ is a sequence of traces in $\tr_X$, $\prec$ is a relation
+on the nodes in $\Theta_X$, $N\subseteq\base_X$ are its
+non-origination assumptions, and $U\subseteq\base_X$ are its unique
+origination assumptions.  Unlike a strand space, the sort of a
+variable in~$X$ need not be a base sort.
+
+The introduction of channels adds two new fields to a skeleton, a set
+of channels assumed to be authenticated, and a set of channels assumed
+to be confidential.  The implications of the additions is
+straightforward, and we simply retain the original description of
+skeletons.
+
+Assume the strands in bundle $\Upsilon(\Theta_X,\to)$ have been
+permuted so that regular strands precede penetrator strands in
+sequence~$\Theta_X$, and $\rl$ demonstrates the bundle is a run of
+protocol~$P$.  Let~$P'$ be~$P$ without penetrator roles.  Skeleton
+$\skel_X(\rl',P',\Theta'_X,\prec,N,U)$ \index{realized
+  skeleton}\index{skeleton!realized}\emph{realizes} the bundle if
+$\rl'$ and $\Theta'_X$ are the truncations of $\rl$ and $\Theta_X$
+respectively that omit penetrator strands from their domains, $\prec$
+is the transitive irreflexive relation associated with the bundle
+without penetrator nodes, $N$ is the set of non-originating atoms with
+variables that occur in $\Theta'_X$, and $U$ is the set of atoms that
+uniquely originate and are carried by some regular event.
+
+A protoskeleton $\skel_X(\rl,P,\Theta_X,\prec,N,U)$ is a
+\index{preskeleton}\emph{preskeleton} if the following properties hold.
+\begin{enumerate}
+\item Sequence $\rl$ demonstrates that the strands in $\sdom(\Theta_X)$
+  satisfy the conditions for being a part of a run of protocol~$P$.
+\item Relation $\prec$ is transitive, irreflexive, and includes the
+  strand succession relation $(\Rightarrow)$.
+\item If $n\prec n'$, then either $n\Rightarrow n'$,
+  $\evt_{\Theta_X}(n)=\outbnd t$ and   $\evt_{\Theta_X}(n')=\inbnd
+  t'$, or $n\prec n''\prec n'$ for some~$n''$.
+\item Each atom in $N$ is carried by no event, and each variable
+  in the atom occurs in some event.
+\item Each atom in $U$ is carried by some event.
+\item $N$ includes the non-originating atoms inherited from roles via
+  the role map.
+\item $U$ includes the uniquely originating atoms inherited from roles via
+  the role map.
+\end{enumerate}
+
+\begin{sloppypar}
+Let $\orig_k(t)$ be the set of nodes at which~$t$ originates in
+preskeleton~$k$, and~$\gain_k(t)$ be the set of nodes at which~$t$ is
+gained in~$k$.  Preskeleton $\skel_X(\rl,P,\Theta_X,\prec,N,U)$ is a
+\index{skeleton}\emph{skeleton} if each atom in $U$ originates on at
+most one strand, and the node of origination precedes each node that
+gains the atom, i.e.\@ for every~$t\in U$, $n_0\in\orig_k(t)$ and
+$n_1\in\gain_k(t)$ implies~$n_0\prec n_1$.
+\end{sloppypar}
+
+Let $k_0=\skel_X(rl_0,P,\Theta_0,\prec_0,N_0,U_0)$ and
+$k_1=\skel_Y(rl_1,P,\Theta_1,\prec_1,N_1,U_1)$ be preskeletons.  There
+is a \index{preskeleton
+  homomorphism}\index{homomorphism!preskeleton}\emph{preskeleton
+  homomorphism}\label{def:preskeleton homomorphism} from~$k_0$
+to~$k_1$ if~$\phi$ and~$\sigma$ are maps with the following
+properties:
+\begin{enumerate}
+\item $\phi$ maps strands of~$k_0$ into those of~$k_1$, and nodes as
+  $\phi((s,i))=(\phi(s),i)$, that is $\phi$ is in
+  $\sdom(\Theta_0)\to\sdom(\Theta_1)$;
+\item $\sigma\colon\algbara_X\to\algbara_Y$ is a message algebra homomorphism;
+\item $n\in\nodes(\Theta_0)$ implies
+  $\sigma(\evt_{\Theta_0}(n))=\evt_{\Theta_1}(\phi(n))$;
+\item $n_0\prec_0
+n_1$ implies $\phi(n_0)\prec_1\phi(n_1)$;
+\item $\sigma(N_0)\subseteq N_1$;
+\item $\sigma(U_0)\subseteq U_1$;
+\item $t\in U_0$ implies
+  $\phi(\orig_{k_0}(t))\subseteq\orig_{k_1}(\sigma(t))$.
+\end{enumerate}
+
+A homomorphism is \index{strandwise injective
+  homomorphism}\index{homomorphism!strandwise
+  injective}\emph{strandwise injective} if its strand map is
+injective.  Two preskeletons are isomorphic if they are related by
+\index{isomorphic preskeletons}\index{preskeletons!isomorphic}
+\label{def:isomorphic preskeletons}
+strandwise injective homomorphism in both directions.  A homomorphism
+is \index{nodewise isomorphic
+  homomorphism}\index{homomorphism!nodewise isomorphic}\emph{nodewise
+  isomorphic} if the strand map~$\phi$ implies a bijection on nodes,
+and $n_0\prec_1 n_1$ implies $\phi^{-1}(n_0)\prec_0\phi^{-1}(n_1)$.  A
+skeleton is \index{realized
+  skeleton}\index{skeleton!realized}\emph{realized} if there is a
+nodewise isomorphic homomorphism from it to a skeleton that realizes a
+bundle, and message component of the homomorphism is injective.
+
+Our formalism requires that every protocol include a
+listener\label{def:listeners} role\index{listener role} of the form:
+$\lsn(x\colon\top)=\role(\seq{\inbnd x,\outbnd
+  x},\emptyset,\emptyset)$.  Instances of this role are sometimes used
+to make penetrator derived messages visible in skeletons.  We say
+skeleton~$k$ \emph{realizes modulo listeners} bundle
+$\Upsilon(\Theta,\to) $ if~$k$ realizes $\Upsilon(\Theta',\to')$ and
+\hbox{$\Upsilon(\Theta,\to)$} is the result of removing listener
+strands, and adjusting the communication ordering $\to$ appropriately.
+
+The set of bundles denoted by preskeleton~$k$, $\sembrack{k}$, is:
+$$\sembrack{k} = \{\Upsilon\mid
+\mbox{$k\homomorphism{\phi,\sigma}k'$ and $k'$ realizes modulo
+  listeners $\Upsilon$}\}$$ A {\cpsa} algorithm is \emph{complete} if
+when given a preskeleton~$k$, either the algorithm diverges, or else it
+terminates and produces a finite set of realized skeletons~$K$, such
+that $\sembrack{k}=\bigcup_{k'\in K}\sembrack{k'}$.
+\label{def:preskeleton denotation}
+
+\section{Blanchet's Simple Example Protocol}\label{sec:blanchet's
+  simple example protocol}
+
+The following protocol is a simplified version of the Denning-Sacco
+key distribution protocol~\cite{DenningSacco81} due to Bruno Blanchet.
+$$\begin{array}{r@{{}:{}}l}
+A\to B&\enc{\enc{s}{a^{-1}}}{b}\\
+B\to A&\enc{d}{s}
+\end{array}$$
+Symmetric key~$s$ is freshly generated, asymmetric keys $a^{-1}$ and
+$b^{-1}$ are uncompromised, and the goal of the protocol is to keep
+data~$d$ secret.  The protocol was constructed with a known flaw for
+expository purposes.
+
+This {\cpsa} description of the protocol has an initiator and a
+responder role.
+$$\begin{array}{r@{{}={}}l}
+\init(a,b\colon\srt{A},s\colon\srt{S}, d\colon\srt{D})&
+\role(\seq{\outbnd\enc{\enc{s}{a^{-1}}}{b},\inbnd\enc{d}{s}},
+\emptyset,\emptyset)\\
+\resp(a,b\colon\srt{A},s\colon\srt{S}, d\colon\srt{D})&
+\role(\seq{\inbnd\enc{\enc{s}{a^{-1}}}{b},\outbnd\enc{d}{s}},
+\emptyset,\emptyset)
+\end{array}$$
+where we use~\srt{A} for sort \dom{akey}, \srt{S} for sort \dom{skey}, and
+\srt{D} for sort \dom{data} to save space.  The algebra for the initiator
+role is generated from $X$, where $X_{\srt{A}}=\{a,b\}$, $X_{\srt{S}}=\{s\}$,
+$X_{\srt{D}}=\{d\}$, $X_{\dom{text}}=\emptyset$, $X_{\dom{name}}=\emptyset$,
+and $X_\top=\emptyset$.
+
+An interesting point of view for analysis is to see if the
+authentication goals of the initiator are met.  To do so, we assume
+there was full length run of an initiator strand, and let {\cpsa}
+determine what else must have happened.  Let variable set $Y=a,b\colon
+\srt{A},s\colon\srt{S}, d\colon\srt{D}$.  The point-of-view skeleton is:
+$$\begin{array}{r@{}ll}
+\skel_Y(
+&\seq{\init(a_0,b_0,s_0,d_0)},
+&\mbox{Role map}\\
+&\{\init(a_0,b_0,s_0,d_0),\resp(a_1,b_1,s_1,d_1)\},
+&\mbox{Protocol}\\
+&\seq{\seq{\outbnd\enc{\enc{s}{a^{-1}}}{b},\inbnd\enc{d}{s}}},
+&\mbox{Traces}\\
+&\emptyset,
+&\mbox{Node orderings}\\
+&\{a^{-1},b^{-1}\},
+&\mbox{Non-origination}\\
+&\{s\})
+&\mbox{Unique origination}
+\end{array}$$
+where the variable set that generates the algebra for the initiator
+and responder roles have been renamed so as to avoid conflicts with
+the variable set~$Y$ used by the skeleton.
+
+The skeleton produced by {\cpsa} for this problem follows.  Notice
+that the two strands agree on the key~$b$ used in the outermost
+encryption of their first message, and indication that the
+authentication goals of the initiator are met.  See
+Figure~\ref{fig:blanchet's protocol} to see the structure of the shape.
+$$\begin{array}{r@{}ll}
+\skel_Y(
+&\seq{\init(a_0,b_0,s_0,d_0),\resp(a_1,b_1,s_1,d_1)},
+&\mbox{Role map}\\
+&\{\init(a_0,b_0,s_0,d_0),\resp(a_1,b_1,s_1,d_1)\},
+&\mbox{Protocol}\\
+&\langle\begin{array}[t]{@{}l}
+\seq{\outbnd\enc{\enc{s}{a^{-1}}}{b},\inbnd\enc{d}{s}},\\
+\seq{\inbnd\enc{\enc{s}{a^{-1}}}{b},\outbnd\enc{d}{s}}\rangle,
+\end{array}
+&\mbox{Traces}\\
+&\{(0,0)\prec(1,0),(1,1)\prec(0,1)\},
+&\mbox{Node orderings}\\
+&\{a^{-1},b^{-1}\},
+&\mbox{Non-origination}\\
+&\{s\})
+&\mbox{Unique origination}
+\end{array}$$
+The homomorphism from the point-of-view skeleton to the shape is
+$$(\seq{1},\{a\mapsto a, b\mapsto b, s\mapsto s, d\mapsto d\}).$$
+
+\begin{figure}
+\begin{center}
+\begin{tabular}{c@{\qquad}c}
+$\xymatrix{
+\txt{\strut init}&\txt{\strut resp}\\
+\bullet\ar@{=>}[d]\ar[r]&\bullet\ar@{=>}[d]\\
+\bullet&\bullet\ar[l]}$
+&
+$\xymatrix{
+\txt{\strut resp}&\txt{\strut init}\\
+\bullet\ar@{=>}[d]&\bullet\ar@{-->}[l]\\
+\bullet&}$
+\end{tabular}
+\end{center}
+\caption{Shapes for Blanchet's Protocol}\label{fig:blanchet's protocol}
+\end{figure}
+
+An analysis of the authentication goals for the responder shows the
+flaw built into the protocol.  To do the analysis, assume there was a
+full length run of a responder strand, and let {\cpsa} determine what
+else must have happened.  In this case, the point-of-view skeleton is:
+$$\begin{array}{r@{}ll}
+\skel_Y(
+&\seq{\resp(a_0,b_0,s_0,d_0)},
+&\mbox{Role map}\\
+&\{\init(a_0,b_0,s_0,d_0),\resp(a_1,b_1,s_1,d_1)\},
+&\mbox{Protocol}\\
+&\seq{\seq{\inbnd\enc{\enc{s}{a^{-1}}}{b},\outbnd\enc{d}{s}}},
+&\mbox{Traces}\\
+&\emptyset,
+&\mbox{Node orderings}\\
+&\{a^{-1},b^{-1}\},
+&\mbox{Non-origination}\\
+&\{s\})
+&\mbox{Unique origination}
+\end{array}$$
+
+The shape generated by {\cpsa} follows.  An early indication of a
+problem is the variable set for the shape has three asymmetric keys.
+Let variable set $Z=a,b,b'\colon\srt{A},s\colon\srt{S}, d\colon\srt{D}$.  The shape
+is:
+$$\begin{array}{r@{}ll}
+\skel_Z(
+&\seq{\resp(a_0,b_0,s_0,d_0),\init(a_1,b_1,s_1,d_1)},
+&\mbox{Role map}\\
+&\{\init(a_0,b_0,s_0,d_0),\resp(a_1,b_1,s_1,d_1)\},
+&\mbox{Protocol}\\
+&\langle\begin{array}[t]{@{}l}
+\seq{\inbnd\enc{\enc{s}{a^{-1}}}{b},\outbnd\enc{d}{s}},\\
+\seq{\outbnd\enc{\enc{s}{a^{-1}}}{b'}}\rangle,
+\end{array}
+&\begin{array}[t]{@{}l}
+\mbox{Traces}\\
+\mbox{\emph{Note key is $b'$ not $b$!}}
+\end{array}\\
+&\{(1,0)\prec(0,0)\},
+&\mbox{Node orderings}\\
+&\{a^{-1},b^{-1}\},
+&\mbox{Non-origination}\\
+&\{s\})
+&\mbox{Unique origination}
+\end{array}$$
+
+Notice that the two strands do not agree on the key used in the outermost
+encryption of their first message---an authentication failure.  To see
+that the authentication failure leads to the failure to protect the
+secrecy of data~$d$, the protocol is analyzed using the following
+point-of-view:
+$$\begin{array}{r@{}ll}
+\skel_Y(
+&\seq{\resp(a_0,b_0,s_0,d_0),\lsn(x)},
+&\mbox{Role map}\\
+&\{\init(a_0,b_0,s_0,d_0),\resp(a_1,b_1,s_1,d_1),\lsn(x)\},
+&\mbox{Protocol}\\
+&\seq{
+\seq{\inbnd\enc{\enc{s}{a^{-1}}}{b},\outbnd\enc{d}{s}},
+\seq{\inbnd d,\outbnd d}},
+&\mbox{Traces}\\
+&\{(0,1)\prec(1,0)\},
+&\mbox{Node orderings}\\
+&\{a^{-1},b^{-1}\},
+&\mbox{Non-origination}\\
+&\{s,d\})
+&\mbox{Unique origination}
+\end{array}$$
+
+{\cpsa} finds a shape that shows how data~$d$ is revealed to the adversary.
+
+\section{Dolev-Yao Example 1.3}
+
+The intended run of the protocol in the Dolev-Yao Example 1.3 is:
+$$\begin{array}{r@{{}:{}}l}
+A\to B&\enc{\enc{m}{b},a}{b}\\
+B\to A&\enc{\enc{m}{a},b}{a}
+\end{array}$$
+assuming text~$m$ is freshly generated, and asymmetric keys $a^{-1}$
+and $b^{-1}$ are uncompromised.
+
+The {\cpsa} description of the protocol also has an initiator and a
+responder role.
+$$\begin{array}{r@{{}={}}l}
+\init(a,b\colon\srt{A}, m\colon\srt{D})&
+\role(\seq{\outbnd\enc{\enc{m}{b},a}{b},\inbnd\enc{\enc{m}{a},b}{a}},
+\emptyset,\emptyset)\\
+\resp(a,b\colon\srt{A}, m\colon\top)&
+\role(\seq{\inbnd\enc{\enc{m}{b},a}{b},\outbnd\enc{\enc{m}{a},b}{a}},
+\emptyset,\emptyset)\\
+\end{array}$$
+
+An interesting point of view for analysis is to see if~$m$ is kept
+secret after the initiator sends its message.  Let variable set
+$Z=a,b\colon\srt{A}, m\colon\srt{D}$.  The initial scenario preskeleton is:
+$$\begin{array}{r@{}ll}
+\skel_Z(
+&\seq{\init(a_0,b_0,m_0),\lsn(x)},
+&\mbox{Role map}\\
+&\{\init(a_0,b_0,m_0),\resp(a_1,b_1,m_1),\lsn(x)\},
+&\mbox{Protocol}\\
+&\seq{\seq{\outbnd\enc{\enc{m}{b},a}{b}},\seq{\inbnd m}},
+&\mbox{Traces}\\
+&\emptyset,
+&\mbox{Node orderings}\\
+&\{a^{-1},b^{-1}\},
+&\mbox{Non-origination}\\
+&\{m\})
+&\mbox{Unique origination}
+\end{array}$$
+where the variable set that generates the algebra for the initiator
+role has been renamed so as to avoid conflicts with the variable set~$Z$
+used by the preskeleton.
+
+\begin{figure}
+$$\xymatrix{
+\txt{\strut init}&\txt{\strut }&\txt{\strut resp}&\txt{\strut resp}\\
+\bullet\ar[rrr]&&&\bullet\ar@{=>}[d]\\
+&&\bullet\ar@{=>}[d]&\bullet\ar@{-->}[l]\\
+&\bullet\ar@{=>}[d]&\bullet\ar@{-->}[l]&\\
+&\bullet&&}$$
+\caption{Dolev-Yao Example 1.3 Shape}\label{fig:dy shape}
+\end{figure}
+
+{\cpsa} determines $m$ is not kept secret by producing the shape in
+Figure~\ref{fig:dy shape}.  The added strands in the shape are
+instances of responder roles.  The strands in the shape are:
+$$\begin{array}{l}
+\seq{\outbnd\enc{\enc{m}{b},a}{b}}\\
+\seq{\inbnd m}\\
+\seq{\inbnd\enc{\enc{m}{b},a'}{b},\outbnd\enc{\enc{m}{a'},b}{a'}}\\
+\seq{\inbnd\enc{\enc{\enc{m}{b}, a}{b},a''}{b},
+\outbnd\enc{\enc{\enc{m}{b},a}{a''},b}{a''}}
+\end{array}$$
+The non-origination and unique origination assumptions are as they are
+in the initial scenario preskeleton.  An interesting exercise left for
+the reader is to produce a bundle that is realized by the shape.
+
+\section{Exercise}
+
+Consider the following roles.
+$$\begin{array}{r@{{}={}}l}
+\init(a,b\colon\srt{A})&\role(\seq{\outbnd(a,b),\inbnd(b,a)},
+\emptyset,\emptyset)\\
+\resp(a,b\colon\srt{A})&\role(\seq{\inbnd(a,b),\outbnd(b,a)},
+\emptyset,\emptyset)
+\end{array}$$
+Let $X=x,y\colon\srt{A}$ and
+$\begin{array}[t]{@{}r@{}l}
+k=\skel_X(
+&\seq{\init(a,b),\resp(a,b),\resp(a,b)},\\
+&\{\init(a,b),\resp(a,b)\},\\
+&\seq{\begin{array}[t]{@{}l}
+\seq{\outbnd(x,y),\inbnd(y,x)},\\
+\seq{\inbnd(x,y),\outbnd(y,x)},\\
+\seq{\inbnd(x,y),\outbnd(y,x)}},
+\end{array}\\
+&\mbox{Node ordering in Figure~\ref{fig:exercise}},\\
+&\emptyset,\\
+&\emptyset)
+\end{array}$
+
+\begin{figure}
+$$\xymatrix{
+\txt{\strut init}&\txt{\strut resp}&\txt{\strut resp}\\
+\bullet\ar@{=>}[d]\ar@/^/[rr]\ar[r]&\bullet\ar@{=>}[d]&\bullet\ar@{=>}[d]\\
+\bullet&\bullet\ar[l]&\bullet\ar@/^/[ll]}$$
+\caption{Exercise Skeleton}\label{fig:exercise}
+\end{figure}
+
+What is $\sembrack{k}$?
+
+One member is shown in Figure~\ref{fig:bundle}.
+
+\begin{figure}
+$$\begin{array}{ll}
+\mbox{init}&\seq{\outbnd(x,y),\inbnd(y,x)}\\
+\mbox{resp}&\seq{\inbnd(x,y),\outbnd(y,x)}\\
+\mbox{resp}&\seq{\inbnd(x,y),\outbnd(y,x)}\\
+\mbox{pair}&\seq{\inbnd(y,x),\inbnd(y,x),\outbnd((y,x),(y,x))}\\
+\mbox{sep}&\seq{\inbnd((y,x),(y,x)),\outbnd(y,x)}
+\end{array}$$
+
+$$\xymatrix{
+\txt{\strut init}&\txt{\strut resp}&\txt{\strut resp}&\txt{\strut pair}&\txt{\strut sep}\\
+\bullet\ar@{=>}[dddd]\ar@/^/[rr]\ar[r]&\bullet\ar@{=>}[d]&\bullet\ar@{=>}[d]&&\\
+&\bullet\ar@/_/[rrd]&\bullet\ar[r]&\bullet\ar@{=>}[d]&\\
+&&&\bullet\ar@{=>}[d]&\\
+&&&\bullet\ar[r]&\bullet\ar@{=>}[d]\\
+\bullet&&&&\bullet\ar[llll]}$$
+\caption{A Bundle Realized by the Example Skeleton}\label{fig:bundle}
+\end{figure}
+
+\section{External Syntax and Instances}\label{sec:instances}
+
+The external syntax used by {\cpsa} is a little different than what
+has been described here.  In the external syntax, the trace and the
+role associated with a strand is specified by an
+\index{instance}\emph{instance}.  An instance is of the form
+$\inst(r,h,\sigma)$, where~$r$ is a role, $h$ specifies the length of
+a trace instantiated from the role, and~$\sigma$ specifies how to
+instantiate the variables in the role to obtain the trace.  Thus when
+$r=\role_Y(C,N,U)$, the trace associated with $\inst(r,h,\sigma)$ is
+$\sigma\circ\prefix{C}{h}$.  An instance is well-formed if $1\leq
+h\leq|C|$, and $\sdom(\sigma)$ is the set of variables that occur
+in~$\prefix{C}{h}$.
+
+In the external syntax, the role map and sequence of traces are
+replaced by a sequence of instances.  So for preskeleton
+$\skel_X(\rl,P,\Theta_X,\prec,N,U)$, the external syntax is
+$\skel_X(P,I,\prec,N,U)$, where for each $s\in\sdom(\Theta_x)$,
+$I(s)=\inst(r,h,\sigma)$, $r=\rl(s)$, and the trace of
+$\inst(r,h,\sigma)$ is $\Theta_X(s)$.
+
+\chapter{Algorithms as Reduction Systems}\label{chp:algorithms}
+
+Algorithms in this paper are specified as abstract reduction
+systems~\cite[Chapter~2]{BaaderNipkow98}.  A reduction system is a
+pair $(A,\to)$, where reduction~$\to$ is a binary relation
+$\mathord{\to}\subseteq A\times A$.  Element $x\in A$ is a
+\index{normal form}\emph{normal form} if there is no~$y$ such that
+$x\to y$.  The transitive closure of~$\to$ is~$\to^+$.  The reflexive
+transitive closure of~$\to$ is~$\to^\ast$.  A reduction is confluent
+if $x\to^\ast y_0$ and $x\to^\ast y_1$ implies there is a~$z$ such
+that $y_0\to^\ast z$ and $y_1\to^\ast z$.  A reduction is terminating
+if there are no infinite descending chains.  A reduction is convergent
+if it is confluent and terminating.
+
+Let $\alg{K}$ be the set of preskeletons.  Algorithms are specified as
+reduction systems of the form $(\alg{K},\to)$, which are then used to
+specify a related setwise reduction system of the form
+$(\pow{\alg{K}},\mathord\twoheadrightarrow)$.  Setwise reduction
+systems are the ones with the interesting normal forms and confluence
+properties.  In a setwise reduction system, reduction rewrites one
+element of a set to a set of elements.
+
+\begin{defn}[Setwise Reduction System]
+The \emph{setwise reduction system}\index{setwise reduction system} of
+binary relation $\rightsquigarrow\subseteq\alg{K}\times\pow{\alg{K}}$
+is a reduction system $(\pow{\alg{K}},\twoheadrightarrow)$, where for
+each $K_0\in\pow{\alg{K}}$, $K_0\twoheadrightarrow K_1$ if for some
+$k_0\in K_0$, $k_0\rightsquigarrow K_2$, $K_1=K_2\cup
+(K_0\setminus\{k_0\})$, and $K_1\neq K_0$.
+\end{defn}
+
+The {\cpsa} algorithm will be specified as a setwise term reduction
+system, where the initial problem is given a singleton
+in~$\pow{\alg{K}}$, and the answers computed by an implementation of
+the algorithm are a normal form of the setwise reduction
+relation~$\twoheadrightarrow_k$ defined in Chapter~\ref{chp:skeleton
+  reduction}.
+
+In what follows the relation $k\rightsquigarrow K$ is defined in terms
+of $\to\subseteq\alg{K}\times\alg{K}$ by specifying
+$\{k\}\twoheadrightarrow K$ using~$\to$, so the $\rightsquigarrow$
+relation is not explicitly defined.
+
+We regard sets of preskeletons as factored by isomorphism, where each
+set has at most one representative of the equivalence class of
+isomorphic preskeletons.  The definition of isomorphic preskeletons
+is given on Page~\pageref{def:isomorphic preskeletons}.
+
+The {\cpsa} Design~\cite{cpsadesign09} describes an extension of a
+message algebra signature that models the data structures used in the
+{\cpsa} program.  The terms over the extended signature include ones
+that model preskeletons.  Sets of terms of sort preskeleton are the
+domain of our setwise reduction systems.
+
+\chapter{Primitive Preskeleton Operators}\label{chp:prim preskel ops}
+
+The are four primitive operators\index{operators} on preskeletons used
+by {\cpsa} to solve authentication tests.  Each operator is a partial
+map from preskeletons to preskeletons.
+
+\begin{defn}[Substitution Operator]\label{def:substitution operator}
+For order-sorted substitution~$\sigma\colon X\to\alg{A}_Y$,
+the operator~$\ops{S}_\sigma$ is:
+$$\begin{array}{l}
+\ops{S}_\sigma(\skel_X(\rl,P,\Theta_X,\prec,N,U)) = {}\\
+\quad\skel_Y(\rl,P,
+s\mapsto \comp\sigma{\Theta_X(s)},\prec,\sigma(N), \sigma(U))
+\end{array}$$
+\end{defn}
+
+For $k'=\ops{S}_\sigma(k)$, there is a homomorphism from~$k$ to~$k'$
+only if for all $t\in U_k$,
+$\orig_k(t)\subseteq\orig_{k'}(\sigma(t))$.  The structure preserving
+maps associated with the homomorphism are~$\idphi$ and~$\sigma$.
+
+\begin{defn}[Compression Operator]\label{def:compression operator}
+For distinct strands~$s$ and~$s'$, operator~$\ops{C}_{s,s'}$
+compresses strand~$s$ into~$s'$.
+$$\begin{array}{l}
+\ops{C}_{s,s'}(\skel_X(\rl,P,\Theta_X,\prec,N,U)) = {}\\
+\quad \skel_X(\comp\rl{\phi'_s},P,
+\comp{\Theta_X}{\phi'_s},\prec',N,U)
+\end{array}$$
+where
+$$\begin{array}{r@{}c@{}l}
+\phi'_s(j)&{}={}&\left\{
+\begin{array}{ll}
+j+1&\mbox{if $j\geq s$}\\
+j&\mbox{otherwise,}
+\end{array}\right. %}
+\end{array}$$
+relation $\prec'$ is the transitive closure of $\phi_{s,s'}(\prec)$, and
+$$\begin{array}{r@{}c@{}l}
+\phi_{s,s'}(j)&{}={}&\left\{
+\begin{array}{ll}
+\phi_s(s')&\mbox{if $j=s$}\\
+\phi_s(j)&\mbox{otherwise}
+\end{array}\right.\\
+\phi_s(j)&{}={}&\left\{
+\begin{array}{ll}
+j-1&\mbox{if $j>s$}\\
+j&\mbox{otherwise.}
+\end{array}\right. %}
+\end{array}$$
+\end{defn}
+
+The compression operator is only used when $\Theta_X(s)$ is a prefix
+of $\Theta_X(s')$, and when there is a homomorphism from~$k$ to
+$\ops{C}_{s,s'}(k)$.  The structure preserving maps associated with
+the homomorphism are~$\phi_{s,s'}$ and~$\idsigma$.  Note that the
+compression operator is defined only when relation~$\prec'$ is
+asymmetric, and that $\comp{\phi_{s,s'}}{\phi'_s}=\idphi$.
+
+\begin{defn}[Ordering Enrichment Operator]\label{def:order enrichment operator}
+Operator~$\ops{O}$ applied to~$k$ enriches~$\kprec{k}$ by adding all
+elements implied by unique origination.  That is $\ops{O}(k)=
+\skel_X(\rl,P,\Theta_X,\prec',N,U))$, where
+$k=\skel_X(\rl,P,\Theta_X,\prec,N,U)$ and $\prec'=
+(\prec\cup\{(n_0,n_1)\mid n_0\in\orig(k,t)\land
+n_1\in\gain(k,t)\})^\ast$.
+\end{defn}
+
+The ordering enrichment operator is total and idempotent.  The
+structure preserving maps associated with the operator's homomorphism
+are~$\idphi$ and~$\idsigma$, i.e.\ the homomorphism is an embedding.
+
+\begin{defn}[Augmentation Operator]\label{def:augmentation operator}
+For node~$n$, role~$r$, and trace~$C$, operator~$\ops{A}_{n,r,C}$ is:
+$$\begin{array}{l}
+\ops{A}_{n,r,C}(\skel_X(\rl,P,\Theta_X,\prec,N,U)) = {}\\
+\quad\skel_{X'}(\rl\append r,P,
+\Theta_X(s)\append C,\prec',N',U')
+\end{array}$$
+where $X'$ is $X$ extended to include the variables in~$C$,
+$\prec'$ is the minimal extension of $\prec$ such that
+$(|\Theta_X|+1,|C|)\prec' n$, $N'$ is $N$ extended with
+non-origination assumptions inherited from~$r$ by~$C$, and likewise
+for~$U'$.
+\end{defn}
+
+The structure preserving maps associated with the augmentation
+operator's homomorphism are~$\idphi$ and~$\idsigma$, i.e.\ the
+homomorphism is an embedding.
+
+\chapter{Reductions on Preskeletons}\label{chp:preskeleton reduction}
+
+This chapter describes the algorithm used to transform a preskeleton
+into a skeleton as a setwise term reduction system
+$(\alg{K},\twoheadrightarrow)$.  Recall that the relation
+$k\rightsquigarrow K$ in Chapter~\ref{chp:algorithms} is defined in
+terms of $\to\subseteq\alg{K}\times\alg{K}$ by specifying
+$\{k\}\twoheadrightarrow K$ using~$\to$.  Additionally, when
+$k=\skel(\rl,P,\Theta,\prec,N,U)$, $U_k$ is used to name~$U$, and so
+forth for other components of~$\skel$.
+
+If a preskeleton $k$ is not a skeleton, then it is either because some
+$t\in U_k$ actually originates at more than one node, or because for
+some $t\in U_k$, there is a node $n_1\in\gain_k(t)$, and a node
+$n_0\in\orig_k(t)$ such that $n_0\nprec_k n_1$.  A preskeleton in
+which an atom assumed to be uniquely originating originates more than
+once is simply expunged.  The second obstruction is resolved by
+enriching node orderings.  A \index{hulled
+  preskeleton}\index{preskeleton!hulled}\emph{hulled preskeleton} is a
+preskeleton in which every uniquely originating atom originates at
+most once, but it may lack some node orderings needed to be a
+skeleton.
+
+Skeletons may contain ``effectively equivalent'' strands.  After
+converting preskeletons to skeletons, a preskeleton reduction system
+may remove effectively equivalent strands using a process called
+\index{thinning}thinning.  A skeleton without any effectively
+equivalent strands is called a \index{thinned
+  skeleton}\index{skeleton!thinned}\emph{thinned skeleton}.
+
+\begin{defn}[Hulling Reduction]\label{def:hulling}
+A non-hulled preskeleton~$k$ is expunged.  The setwise hulling
+reduction rule is $\{k\}\setreduction{\ops{H}}\{\}$ when~$k$ is not
+hulled.
+\end{defn}
+
+\begin{defn}[Order Enrichment]
+Suppose hulled preskeleton~$k_0$ is not a skeleton.  Hulled
+preskeleton~$k_0$ reduces to skeleton~$k_1$ by order enrichment, written
+$k_0\reduction{\ops{O}}k_1$, iff~$k_1$ is the result of adding node
+orderings implied by origination.  That is,
+$\kprec{k_1}= (\kprec{k_0}\cup\{(n_0,n_1)\mid n_0\in\orig(k_0,t)\land
+n_1\in\gain(k_0,t)\})^\ast$.
+There is a homomorphism from~$k_0$ to~$k_1$ that is an embedding.  For
+the setwise order enrichment reduction,
+$\{k_0\}\setreduction{\ops{O}}\{k_1\mid k_0\reduction{\ops{O}}k_1\}$
+when $k_0$ is a hulled preskeleton that is not a skeleton.
+\end{defn}
+
+The thinning operator~$\ops{T}_s$ removes an \index{effectively
+  equivalent strands}effectively equivalent strand.
+
+\begin{defn}[Thinning]\label{def:thinning}
+Two strands $s$ and $s'$ in a skeleton $k$ are \emph{effectively
+  equivalent} if $k$ with $s$ removed and $k$ with $s'$ removed are
+isomorphic.  (Page~\pageref{def:isomorphic preskeletons} defines
+isomorphic skeletons.)  Skeleton $k_0$ reduces to skeleton $k_1$ by
+thinning, written $k_0\reduction{\ops{T}_s}k_1$, if and only if there
+exists a strand $s'$ that is effectively equivalent to $s$ in $k_0$
+and $k_1$ is isomorphic to both $k_0$ with $s$ removed and $k_0$ with
+$s'$ removed.  In detail, $k_0\reduction{\ops{T}_s}k_1$ if and only if
+there exists a strand $s'$ such that
+\begin{enumerate}
+\item strands $s$ and $s'$ are not in the image of~$k_0$'s
+  strand map from the point-of-view skeleton;
+\item $\Theta_{k_0}(s)$ is isomorphic to $\Theta_{k_0}(s')$;
+\item let $k_1$ be $k_0$ with strand~$s$ removed, along with
+  extraneous origination assumptions;
+\item let $k_2$ be $k_0$ with strand~$s'$ removed, along with
+  extraneous origination assumptions;
+\item $k_1$ is isomorphic to $k_2$.
+\end{enumerate}
+
+For the setwise thinning reduction,
+$\{k_0\}\setreduction{\ops{T}_s}\{k_1\mid
+k_0\reduction{\ops{T}_s}k_1\}$, when there is a $k_1$ such that
+$k_0\reduction{\ops{T}_s}k_1$.
+\end{defn}
+
+Thinning in {\cpsa} is also implemented for the case of sets of
+multiple strands rather than pairs of individual strands.  The
+correctness of thinning has yet to be demonstrated.
+
+\section{Reduction Systems}
+
+Notice that a setwise hulling reduction may produce the empty set, but
+a setwise order enrichment and thinning reduction never does.
+
+There are two preskeleton reduction systems, one with thinning, and one
+without.  For the one without, let reduction $\twoheadrightarrow=
+\bigcup_{s,s'}\setreduction{\ops{H}}\cup\setreduction{\ops{O}}$.
+
+\begin{defn}[Preskeleton Reduction System]
+Preskeleton~$k_0$ reduces to skeleton~$k_1$,
+written~$k_0\reduction{\fn{skel}}k_1$\index{skel@\fn{skel}}, if
+$\{k_0\}\twoheadrightarrow^\ast K$, $k_1\in K$, and~$K$ is a normal
+form of~$\twoheadrightarrow$.
+\end{defn}
+
+For each skeleton~$k$, $k\reduction{\fn{skel}}k$.
+
+When using thinning, let reduction $\twoheadrightarrow=
+\bigcup_{s,s'}\setreduction{\ops{H}}\cup\setreduction{\ops{O}}\cup
+\bigcup_s\setreduction{\ops{T}_s}$.
+
+\begin{defn}[Preskeleton Reduction System with Thinning]
+Preskeleton~$k_0$ reduces to thinned skeleton~$k_1$,
+written~$k_0\reduction{\fn{tskel}}k_1$\index{tskel@\fn{tskel}}, if
+$\{k_0\}\twoheadrightarrow^\ast K$, $k_1\in K$, and~$K$ is a normal
+form of~$\twoheadrightarrow$.
+\end{defn}
+
+For each thinned skeleton~$k$, $k\reduction{\fn{tskel}}k$.
+
+\chapter{Penetrator Derivable}\label{chp:penetrator derivable}
+
+For each algebra, the powers of the adversary are defined by a set of
+roles.  For the Basic Crypto Signature in Figure~\ref{fig:bcs}, the
+traces of the penetrator roles are in Figure~\ref{fig:pen traces}.
+Penetrator roles make no origination assumptions.
+
+\begin{figure}
+\[\begin{array}{r@{{}={}}l}
+\fn{base}(t)&\seq{\outbnd t},\mbox{ where $t$ is an atom}\\
+\fn{tag}(t)&\seq{\outbnd t},\mbox{ where $t$ is a tag}\\
+\fn{pair}(t_0,t_1)&\seq{\inbnd t_0,\inbnd t_1, \outbnd(t_0,
+  t_1)}\\
+\fn{sep}(t_0,t_1)&\seq{\inbnd(t_0, t_1),\outbnd
+    t_0,\outbnd t_1}\\
+\fn{enc}(t_0,t_1)&\seq{\inbnd t_0,\inbnd t_1,
+\outbnd\enc{t_0}{t_1}}\\
+\fn{dec}(t_0,t_1)&\seq{\inbnd\enc{t_0}{t_1},
+\inbnd t_2,\outbnd t_0},\mbox{ where $t_2=\fn{inv}(t_1)$}\\
+\fn{hash}(t)&\seq{\inbnd t,\outbnd\hash t}\\
+\fn{put}(c,t)&\seq{\inbnd t, \outbnd[c,t]}\\
+\fn{take}(c,t)&\seq{\inbnd[c,t], \outbnd t}
+\end{array}\]
+\caption{Penetrator Traces}\label{fig:pen traces}
+\end{figure}
+
+The context in which penetrator strands appear determine the messages
+the adversary can derive.  The context includes previously sent
+messages and atoms it is forbidden to originate.  An atom that is
+assumed to be non-originating must be avoided as is a uniquely
+originating atom that is assumed to originate on a regular strand.
+
+The ternary relation \der{t}{T_p}{T_a} states that message~$t$ is
+penetrator derivable from previously sent messages~$T_p$ while
+avoiding atoms~$T_a$.  The relation is defined by a set of inference
+rules.  Most of the rules are justified by a penetrator role that when
+instantiated, derives a message in the conclusion of the rule.  Note
+there are no rules that pertain to channel messages.  Channel messages
+are handled elsewhere.
+
+The first rule states that no additional penetrator behavior is required
+to derive~$t$ if it has been previously sent.
+\begin{equation}
+  \infer{t\in{T_p}}{\der{t}{T_p}{T_a}}
+\end{equation}
+%
+By $\fn{base}(t)$:
+\begin{equation}\label{eqn:base}
+  \infer{\mbox{$t$ an atom}\qquad t\notin T_a}{\der{t}{T_p}{T_a}}
+\end{equation}
+%
+By $\fn{tag}(\mbox{``\ldots''})$:
+\begin{equation}\label{eqn:tag}
+  \der{\mbox{``\ldots''}}{T_p}{t_a}
+\end{equation}
+%
+By $\fn{pair}(t_0,t_1)$:
+\begin{equation}\label{eqn:pair}
+  \infer{\der{t_0}{T_p}{T_a}\qquad\der{t_1}{T_p}{T_a}}
+        {\der{(t_0,t_1)}{T_p}{T_a}}
+\end{equation}
+%
+By $\fn{sep}(t_0,t_1)$:
+\begin{equation}\label{eqn:sep0}
+  \infer{\der{(t_0,t_1)}{T_p}{T_a}}{\der{t_0}{T_p}{T_a}}
+\end{equation}
+%
+By $\fn{sep}(t_0,t_1)$:
+\begin{equation}\label{eqn:sep1}
+  \infer{\der{(t_0,t_1)}{T_p}{T_a}}{\der{t_1}{T_p}{T_a}}
+\end{equation}
+%
+By $\fn{enc}(t,k)$:
+\begin{equation}\label{eqn:enc}
+  \infer{\der{t}{T_p}{T_a}\qquad\der{k}{T_p}{T_a}}{\der{\enc{t}{k}}{T_p}{T_a}}
+\end{equation}
+%
+By $\fn{dec}(t,k)$:
+\begin{equation}\label{eqn:dec}
+  \infer{\der{\enc{t}{k}}{T_p}{T_a}\qquad\der{\fn{inv}{k}}{T_p}{T_a}}{\der{t}{T_p}{T_a}}
+\end{equation}
+%
+By $\fn{hash}(t)$:
+\begin{equation}\label{eqn:hash}
+  \infer{\der{t}{T_p}{T_a}\qquad\der{k}{T_p}{T_a}}{\der{\hash{t}}{T_p}{T_a}}
+\end{equation}
+%
+%% By $\fn{put}(c,t)$:
+%% \begin{equation}\label{eqn:put}
+%%   \infer{\der{t}{T_p}{T_a}\qquad\mbox{$c$ not authenticated}}%
+%%         {\der{[c,t]}{T_p}{T_a}}
+%% \end{equation}
+%% %
+%% By $\fn{take}(c,t)$:
+%% \begin{equation}\label{eqn:take}
+%%   \infer{\der{[c,t]}{T_p}{T_a}\qquad\mbox{$c$ not confidential}}%
+%%         {\der{t}{T_p}{T_a}}
+%% \end{equation}
+%% %
+A non-base sorted variable is derivable in a bundle that instantiates
+it with any message other than an element of $X_\top$.
+\begin{equation}\label{eqn:top}
+  \infer{t\in X_\top}{\der{t}{T_p}{T_a}}
+\end{equation}
+
+\begin{defn}[Sent Channel Messages]
+The \index{sent channel messages}\emph{sent channel messages} of
+skeleton~$k$ at~$n$ is $\sntchmsg(k,n)=\{\msg_k(n_0)\mid n_0 \kprec{k}
+n, n_0\mbox{~is transmitting}\}$.
+\end{defn}
+
+\begin{defn}[Public Messages]
+The \index{public messages}\emph{public messages} of
+skeleton~$k$ at~$n$ is \[\pubmsg(k,n)=\{t\mid [t]\in M\}\cup
+\{t\mid[c,t]\in M\land c\notin \conf(k)\},\] where $M=\sntchmsg(k, n)$,
+and $\conf(k)$ is the set of channels assumed to be confidential in~$k$.
+
+\end{defn}
+
+\begin{defn}[Avoidance Set]\label{def:avoid}
+The \index{avoidance set}\emph{avoidance set} of skeleton~$k$ is
+$\avoid(k)=N_k\cup\{t\mid t\in U_k\land|\orig_k(t)|=1\}$.
+\end{defn}
+
+An atom in $\avoid(k)$ is not available to the penetrator, except
+if it is exposed by a messages transmission.  Clearly, only uniquely
+originating atoms can be exposed.
+
+\begin{defn}[Derivable Before]\label{def:der}
+A channel message~$m$ is \index{derivable before}\emph{derivable
+  before} reception node~$n$ in skeleton~$k$, written
+$\fn{der}(k,n,t)$, if
+\begin{enumerate}
+\item $m\in\sntchmsg(k,n)$,
+\item $m=[t]$ and $\der{t}{T_p}{T_a}$, or
+\item $m=[c,t]$, $c\notin\auth{k}$, and $\der{t}{T_p}{T_a}$,
+\end{enumerate}
+where $T_p=\pubmsg(k,n)$, $T_a=\avoid(k)$, and $\auth(k)$ is the set
+of channels assumed to be authenticated in~$k$.
+\end{defn}
+
+\begin{defn}[Realized Node]
+A reception node~$n$ is \emph{realized} in skeleton~$k$ if
+$\msg_k(n)$ is derivable before~$n$ in~$k$.
+\end{defn}
+
+Notice that one can read off penetrator behavior from the proof tree
+used to demonstrate that $\msg_k(n)$ is derivable before~$n$
+in~$k$.  For example, if a decryption step is required by the proof,
+an instance of the penetrator's decryption role is indicated.  In a
+bundle, for a non-base sorted variable, there is a substitution that
+maps the variable to a message that is not a non-base sorted variable.
+The substitution determines the penetrator behavior associated with
+the variable.
+
+\begin{conj}[Realized Skeleton]
+A skeleton is realized if and only if all of its reception nodes are
+realized.
+\end{conj}
+
+\begin{proof}[Partial Proof]
+Given a skeleton~$k$ in which all of its reception nodes are realized,
+the combination of the regular behavior in the skeleton, the
+penetrator behavior specified by the proof trees used to demonstrate
+each node is realized, and a substitution for non-base sorted
+variables determines a bundle.  The skeleton of the bundle may have
+more non-originating atoms than is in $N_k$, however since the
+extra non-originating atoms are derivable by the bundle that
+realizes~$k$, the proof trees for those atoms specify any additional
+penetrator behavior required.
+
+The ``only if'' part of this proof has yet to be completed.
+\end{proof}
+
+\section{Implementation}\label{sec:derivable implementation}
+
+The derivable before a node predicate is implemented using auxiliary
+functions.
+
+\begin{defn}[Buildable]
+Message~$t$ is \index{buildable}\emph{buildable} from previously sent
+messages~$T_p$ while avoiding~$T_a$, written $\fn{bld}(t,T_p,T_a)$, if
+\der{t}{T_p}{T_a} without the use of Inference Rules \ref{eqn:sep0},
+\ref{eqn:sep1}, and~\ref{eqn:dec}.
+\end{defn}
+
+Consider the following reduction system based on Inference Rules
+\ref{eqn:sep0}, \ref{eqn:top}, \ref{eqn:sep1}, and~\ref{eqn:dec}.
+$$\begin{array}{r@{}c@{}ll}
+\dctx{T_p}{T_a}&{}\to{}&\dctx{T_p}{T_a\setminus\{t\}}
+&\mbox{if $t\in T_p$ and $t\in T_a$}\\
+\dctx{T_p}{T_a}&{}\to{}&\dctx{T_p\setminus\{x\}}{T_a}
+&\mbox{if $x\in T_p$ and $x\in X_{\top}$}\\
+\dctx{\{(t_0,t_1)\}\cup T_p}{T_a}&{}\to{}
+&\dctx{\{t_0,t_1,(t_0,t_1)\}\cup T_p}{T_a}
+&\mbox{if $t_0$ or $t_1\notin T_p$}\\
+\dctx{\{\enc{t_0}{t_1}\}\cup
+T_p}{T_a}&{}\to{}&\dctx{\{t_0,\enc{t_0}{t_1}\}\cup T_p}{T_a}
+&\mbox{if $t_0\notin T_p$ and}\\
+&&&\fn{bld}(\fn{inv}(t_1),T_p,T_a)
+\end{array}$$
+
+\begin{defn}[Decompose]\label{def:decompose}
+Previously sent messages~$T_p$ and avoidance set~$T_a$
+\emph{decompose} to $T'_p,T'_a$, written
+$\fn{decompose}(T_p,T_a)=(T'_p,T'_a)$, if
+$\dctx{T_p}{T_a}\to^\ast\dctx{T'_p}{T'_a}$
+and $(T'_p,T'_a)$ is a normal form of reduction~$\to$.
+\end{defn}
+
+The penetrator derivable predicate $\der{t}{T_p}{T_a}$ is implemented as
+\begin{center}
+\begin{tabular}{l}
+$\der{t}{T_p}{T_a}={}$\\
+\quad\textbf{let} $T'_p, T'_a=\fn{decompose}(T_p,T_a)$ \textbf{in}\\
+\quad$\fn{bld}(t,T'_p,T'_a)$
+\end{tabular}
+\end{center}
+
+The decomposition at a node function is
+\begin{center}
+\begin{tabular}{l}
+$\fn{dcmp}(k,n)={}$\\
+\quad$\fn{decompose}(\pubmsg(k,n),\avoid(k))$
+\end{tabular}
+\end{center}
+
+The derivable before a node predicate is implemented as
+\begin{center}
+\begin{tabular}{l}
+$\fn{der}(k,n,t)={}$\\
+\quad\textbf{let} $T_p, T_a=\fn{dcmp}(k,n)$ \textbf{in}\\
+\quad$\fn{bld}(t,T_p,T_a)$
+\end{tabular}
+\end{center}
+
+\chapter{Carried Only Within}\label{chp:cow}
+
+A set of encryptions~$T_e$ protects critical message~$t$ in
+message~$t'$ if~$t$ is carried by~$t'$ only within a member of~$T_e$.
+The definition of the carried only within ({\cow}) relation to follow makes
+this concept precise.  The concept is used when solving authentication
+tests (Chapter~\ref{chp:auth tests}).
+
+\begin{defn}[Ancestors]
+Let $t'=t\termat p$.  The \index{ancestors}\emph{ancestors} of~$t'$
+in~$t$ at~$p$ is the set $\fn{anc}(t,p)=\{t\termat p'\mid \mbox{$p'$ a
+  proper prefix of~$p$}\}$.
+\end{defn}
+
+\begin{defn}[Carried Only Within]\label{def:cow}
+Message~$t$ is \index{carried only within}\emph{carried only within}
+set~$T_e$ in~$t'$ if for all \index{carried positions}carried
+positions~$p$ of~$t$ in~$t'$, there exists an
+ancestor~$t_a\in\fn{anc}(t',p)$ and $t_e\in T_e$ such that~$t_a\equiv
+t_e$.
+\end{defn}
+
+The function defines $\fn{carpos}(t,t')$ is defined on
+Page~\pageref{def:carried positions}, the set of positions at
+which~$t'$ carries~$t$.  The interface to each algebra exports
+\index{unify}$\fn{unify}_0$, where
+$$\fn{unify}_0(t,t',\sigma)=\{\sigma'\circ\sigma\mid
+\sigma'\in\fn{unify}(\sigma(t),\sigma(t'))\}.$$
+Unification is extended to channel messages as:
+\[\begin{array}{l}
+\fn{unify_0}([t],[t'],\sigma)=\fn{unify_0}(t,t',\sigma)\\
+\fn{unify_0}([c,t],[c',t'],\sigma)=\\
+\qquad\{\sigma''\mid\sigma'\in\fn{unify_0}(c,c',\sigma)\land
+\sigma''\in\fn{unify_0}(t,t',\sigma')\}
+\end{array}\]
+
+The details of a reduction on skeletons called a augmentation will be
+described in Section~\ref{sec:augmentation}.  In simplified form, for
+an augmentation, given~$t$,~$T_e$, and~$t'$, one must find all most
+general unifiers~$\sigma$ such that~$\sigma(t)$ is carried only within
+set~$\sigma(T_e)$ in~$\sigma(t')$.
+
+\begin{figure}
+\begin{center}
+\begin{tabular}{l}
+$\fn{cows}(t,T,t') ={}$\\
+\quad $\fn{cows}_0(t,T,t',\idsigma)$
+\quad --- $\idsigma$ is the identity
+subst \\
+\\
+$\fn{cows}_0(t,T,t',\sigma) ={}$\\
+\quad \textbf{if} $\sigma(t)$ is {\cow} $\sigma(T)$ at
+$\sigma(t')$ \textbf{then}\\
+\qquad $\{\sigma\}$\\
+\quad \textbf{else}\\
+\qquad\textbf{let}
+$S=\fn{fold}(t,T,t',\sigma)$
+\textbf{in}\\
+\qquad$\bigcup_{\sigma'\in S}
+\fn{cows}_0(t, T, t',\sigma')$\\
+\\
+$\fn{fold}(t,T,t',\sigma)={}$\\
+$\quad\{\sigma'\circ\sigma\mid\sigma'\in
+\fn{fold}_0(\sigma(T),\sigma(t'),\{\idsigma\},
+\fn{carpos}(\sigma(t),\sigma(t')))\}$\\
+\\
+$\fn{fold}_0(T,t',S,\{\})=S$\\
+$\fn{fold}_0(T,t',S,\seq{p}\append P)={}$\\
+\quad $\fn{fold}_0(T,t',\fn{solve}(\fn{anc}(t',p),T,S),P)$\\
+\\
+$\fn{solve}(T,T',S)={}$\\
+\quad$\{\sigma'\mid t\in T, t'\in T',
+\sigma\in S, \sigma'\in\fn{unify}_0(t,t',\sigma)\}$
+\end{tabular}
+\end{center}
+\caption{The \fn{cows} Function}\label{fig:cows}\index{cows@\fn{cows}}
+\end{figure}
+
+A carried only within solution cannot be directly computed using
+Definition~\ref{def:cow}.  Given terms~$t_a$ and~$t_e$, the
+$\fn{unify}_0$ function finds substitutions~$\sigma$ such
+$\sigma(t_a)\equiv \sigma(t_e)$, however, the carried positions
+$\fn{carpos}(\sigma(t),\sigma(t'))$, are used before the
+$\fn{unify}_0$ function computes the substitution~$\sigma$.
+Figure~\ref{fig:cows} displays the iterative procedure that breaks the
+cyclic dependencies.  Each step of the iteration improves an
+approximation of a solution to the problem.  The correctness of this
+function is shown in~\cite{algimpl11}, although for a version of the
+algorithm with the alternate definition for the function~$\fn{fold}$ in
+Figure~\ref{fig:fold}.
+
+\begin{figure}
+\begin{center}
+\begin{tabular}{l}
+$\fn{fold}(t,T,t',\sigma)={}$\\
+$\quad\fn{fold}_0(t,T,t',\sigma,\{\idsigma\},\fn{carpos}(\sigma(t), \sigma(t')))$\\
+\\
+$\fn{fold}_0(t,T,t',\sigma,S,\{\})=\{\sigma' \circ \sigma | \sigma' \in S\}$\\
+$\fn{fold}_0(t,T,t',\sigma,S,\seq{p} \append P)={}$\\
+\quad
+$\fn{fold}_0(t,T,t',\sigma,\fn{solve}(\fn{anc}(\sigma(t'),p),\sigma(T),S),P)$\\
+\end{tabular}
+\end{center}
+\caption{The Alternate \fn{fold} Function}\label{fig:fold}
+\end{figure}
+
+\chapter{Solving Authentication Tests}\label{chp:auth tests}
+
+\begin{defn}[Protectors]
+The \index{protectors}protectors of~$t$ are encryptions that carry~$t$
+and cannot be decrypted.  Function $\fn{prot}(T_p,T_a,t)$ is undefined
+if $\fn{bld}(t,T_p,T_a)$, otherwise
+\[\fn{prot}(T_p,T_a,t)=\{\enc{t_0}{t_1}\in T_p\mid
+\mbox{$t_0$ carries $t$ and }\lnot\fn{bld}(\fn{inv}(t_1),T_p,T_a)\}\]
+\end{defn}
+
+\begin{defn}[Escape Set]
+The \index{escape set}\emph{escape set} for message~$t_c$ at~$n$ in
+skeleton~$k$, $\fn{esc}(k,n,t_c)$, contains encryptions and channel
+messages.  Function $\fn{esc}(k,n,t_c)=\fn{prot}(t_c,T_p,T_a)\cup M$,
+where $(T_p,T_a)=\fn{dcmp}(k,n)$ (See Definition~\ref{def:decompose}),
+and $M$ is the set of sent channel messages with confidential channels
+that carry~$t_c$.  It is undefined when~$t_c$ is derivable in~$k$
+at~$n$.
+\end{defn}
+
+\begin{defn}[Critical Position, Critical Message]\label{def:critical position}
+  Position~$p$ is a \index{critical position}\emph{critical position}
+  at $n$ in $k$ if for $m=\msg_k(n)$
+\begin{enumerate}
+\item $p$ is a carried position in~$m$,
+\item $m\termat p$ is not derivable before $n$ in $\skel$,
+\item either
+  \begin{enumerate}
+  \item $m\termat p\in U_k$,
+  \item $m\termat p=\hash t_1$,
+  \item $m\termat p=\enc{t_0}{t_1}$ and~$t_1$ is not derivable
+    before~$n$ in~$k$, or
+  \item $m=[c,t]$, $p=\seq{}$, and $c\in\auth(k)$.
+  \end{enumerate}
+  \label{item:nonce, encryption, or channel}
+\item $\fn{anc}(t,p)\cap \fn{esc}(k,n,t\termat p)=\emptyset$.
+\end{enumerate}
+The message at a critical position is called a \emph{critical message.}
+\end{defn}
+
+\begin{defn}[Authentication Test]\label{def:authentication test}
+  The triple $(k,n,p)$ is an \index{authentication
+    test}\emph{authentication test} iff $p$ is a critical position at
+  reception node $n$ in $k$.
+\end{defn}
+
+An authentication test is a \index{nonce test}\emph{nonce test} if the
+critical message is an atom, it is a \index{channel test}\emph{channel
+  test} if the critical message is a channel message, otherwise it is
+an \index{encryption test}\emph{encryption test}.  (A hash\index{hash}
+is treated as a kind of encryption in which the term that is hashed is
+the encryption key.)  Observe that every critical message at a node in
+a skeleton is not derivable at the node.
+
+\begin{conj}
+A reception node is unrealized iff it has a critical position.
+\end{conj}
+
+\begin{defn}[Target Messages]
+Let $T_e$ be a set of messages, and~$t_c$ be a message.  The set of
+\index{target messages}\emph{target messages} is
+$$\fn{targ}(t_c,T_e)=\{t_c\}\cup\{t_t\mid t_e\in T_e,p\in\fn{carpos}(t_c, t_e),
+t_t\in\fn{anc}(t_e,p)\}\setminus T_e.$$
+\end{defn}
+
+\begin{defn}[Critical Position Solved]\label{def:critical position solved}
+Suppose~$p$ is a critical position at~$n$ in~$k_0$ and
+$k_0\homomorphism{\phi,\sigma}k_1$.  Let~$t=\msg_{k_0}(n)\termat p$,
+ and $T=\fn{esc}(k_0,n,t)$.  Critical position~$p$ is
+\index{solved critical position}\emph{solved} in~$k_1$ after~$k_0$
+at~$n$ if:
+\begin{enumerate}
+\item\label{item:anc}
+  $\fn{anc}(\msg_{k_1}(\phi(n)),p)\cap\sigma(T)\neq\emptyset$, or
+\item\label{item:aug} for some~$t_p\in\sntchmsg(k_1,\phi(n))$,
+  $\sigma(t)$ is not carried only within~$\sigma(T)$ in~$t_p$, or
+\item\label{item:targs}
+  $\fn{targ}(\sigma(t),\sigma(T))\setminus\sigma(\fn{targ}(t,T))\neq\emptyset$
+  and there are variables in $k$'s protocol that are not atoms, or
+\item\label{item:dec} the decryption key of a member of~$\sigma(T)$ is
+  derivable before~$\phi(n)$ in~$k_1$, or
+\item\label{item:enc} $\sigma(t)$ is an encryption and its encryption
+  key is derivable before~$\phi(n)$ in~$k_1$.
+\end{enumerate}
+\end{defn}
+
+\section{Test Solving Steps}
+
+A step used to solve a test is a contraction
+(Definition~\ref{def:contraction}), a regular augmentation
+(Definition~\ref{def:regular augmentation}), a displacement
+(Definition~\ref{def:displacement}), or a listener augmentation
+(Definition~\ref{def:listener augmentation}).
+
+\begin{defn}[Contraction]\label{def:contraction}
+Let~$p$ be a critical position
+at~$n$ in~$k$, $t=\msg_k(n)$, and $T_e= \fn{esc}(k,n,t\termat p)$.
+Suppose there is a substitution~$\sigma$ such that for
+some~$t_a\in\fn{anc}(t,p)$, $t_e\in T_e$, $\sigma(t_a)=\sigma(t_e)$.
+Skeleton~$k_1$ is a \index{contraction}\emph{contraction} if
+$k\reduction{\ops{S}_\sigma}k_0\reduction{\fn{tskel}}k_1$.
+\end{defn}
+
+{\cpsa} computes a set of substitutions for each critical position, and
+then removes some substitutions to form a complete set of most
+general unifiers.  Only most general unifiers are used for
+contractions.
+
+\begin{defn}[Regular Augmentation]\label{def:regular augmentation}
+Suppose substitution~$\sigma$, non-listener role~$r$, and trace~$C$
+are selected as described in Section~\ref{sec:augmentation}.
+Skeleton~$k_2$ is a \index{regular augmentation}\emph{regular
+  augmentation} if
+$k\reduction{\ops{S}_\sigma}k_0\reduction{\ops{A}_{n,r,C}}k_1
+\reduction{\fn{tskel}}k_2$.
+\end{defn}
+
+\begin{defn}[Displacement]\label{def:displacement}
+Let substitution~$\sigma$, non-listener role~$r$, and trace~$C$ be
+selected as described in Section~\ref{sec:augmentation}, and there be
+a preskeleton~$k_1$ such that
+$k\reduction{\ops{S}_\sigma}k_0\reduction{\ops{A}_{n,r,C}}k_1$.
+Suppose there are strands~$s$ and~$s'$, where one of them is the newly
+created strand, and a most general unifier~$\sigma'$ such that
+$\sigma'(\Theta_{k_1}(s)(j))\equiv \sigma'(\Theta_{k_1}(s')(j))$ for
+$0\leq j<|\Theta_{k_1}(s)|$.  Skeleton~$k_4$ is a
+\index{displacement}\emph{displacement} if
+$k_1\reduction{\ops{S}_{\sigma'}}k_2\reduction{\ops{C}_{s,s'}}k_3
+\reduction{\fn{tskel}}k_4$.
+\end{defn}
+
+\begin{defn}[Listener Augmentation]\label{def:listener augmentation}
+Let~$p$ be a critical position at~$n$ in~$k$, $t_c=\msg_k(n)\termat
+p$, and $T_e= \fn{esc}(k,n,t_c)$.  For each $\enc{t_0}{t_1}\in T_e$,
+skeleton~$k_1$ is a \index{listener augmentation}\emph{listener
+  augmentation} if
+$k\reduction{\ops{A}_{n,\lsn,C}}k_0\reduction{\fn{tskel}}k_1$ and~$C$
+listens for $\fn{inv}(t_1)$,
+i.e.\ $C=\seq{\inbnd\fn{inv}(t_1),\outbnd\fn{inv}(t_1)}$.  If
+$t_c=\enc{t_0}{t_1}$, then skeleton~$k_1$ is a \emph{listener
+  augmentation} if
+$k\reduction{\ops{A}_{n,\lsn,C}}k_0\reduction{\fn{tskel}}k_1$ and
+$C=\seq{\inbnd t_1,\outbnd t_1}$.
+\end{defn}
+
+For regular augmentation and displacement, {\cpsa} removes solutions
+that lead to skeletons that are less general than other solutions,
+that is, when there is a homomorphism from a solution to the omitted
+solution.
+
+\begin{defn}[Cohort Member]\label{def:cohort member}
+For unrealized node~$n$ in a skeleton~$k_0$, and a position~$p$
+at~$n$, $k_0\reduction{n,p}k_1$ asserts that $k_1$ is a member of the
+\index{cohort}cohort of~$k_0$, where~$k_1$ is derived using
+contraction, regular augmentation, displacement, or listener
+augmentation, and~$p$ is solved in~$k_1$ after~$k_0$ at~$n$.  For the
+setwise cohort member reduction, $\{k_0\}\setreduction{n,p}\{k_1\mid
+k_0\reduction{n,p}k_1\}$, when~$n$ is unrealized in~$k_0$, and~$p$ is
+a critical position at~$n$.
+\end{defn}
+
+\begin{conj}[Critical Message Solved]
+If $k_0\reduction{n_0,p_0}k_1 \reduction{n_1,p_1}\ldots
+\reduction{n_{\ell-1},p_{\ell-1}}k_\ell$ is a sequence of cohort member
+reductions, then for positive~$\ell$,~$p_0$ is solved in~$k_\ell$
+after~$k_0$ at~$n_0$.
+\end{conj}
+
+\section{Augmentation}\label{sec:augmentation}
+
+Let~$t_c$ be the critical message that demonstrates~$n$ is a test node
+in skeleton~$k$.  For each triple~$(\sigma,r,C)$ that satisfies some
+properties, there is a potential regular augmentation
+with~$\comp{\reduction{\fn{tskel}}}%
+{\comp{\reduction{\ops{A}_{n,r,C}}}{\reduction{\ops{S}_\sigma}}}$.
+When successful, the message~$t$ in the last event of the added strand
+is outbound, carries~$\sigma(t_c)$, but~$\sigma(t_c)$ is not carried
+only within escape set~$\sigma(T_e)$ in~$t$, where
+$T_e=\fn{esc}(k,n,t_c)$, the escape set.  Moreover, for every other
+message~$t$ in the strand,~$\sigma(t_c)$ is carried only within escape
+set~$\sigma(T_e)$ in~$t$.  The last event in the strand is called a
+\index{transforming event}\emph{transforming event}, as this event no
+longer protects the critical message, but events that precede it do.
+
+{\cpsa} computes the parameters for a set of augmentation steps as
+follows.  Suppose skeleton~$k=\skel_X(\_,P,\_,\_,\_,\_)$.  First,
+compute the target messages, $T_t=\fn{targ}(t_c, T_e)$.  Next, for
+each non-listener role $\role(C_r,N_r,U_r)\in P$ and each index~$h$ where
+$C_r(h)=\outbnd t$, a transmission, do the following.
+
+\begin{description}
+\item[Create fresh variables:] Let~$\sigma_r$ be a sort preserving
+  variable renaming, where the domain is the variables that occur in
+  $\prefix{C_r}h$, and every variable in the range does not occur
+  in~$X$ or in~$P$.
+
+\item[Insert critical message:] For each message~$t'$ carried by~$t$,
+  and each~$t_t\in \fn{targ}(t_c, T_e)$, consider most general
+  unifiers~$\sigma'$ where, $\sigma'(t')=\sigma'(t_t)$ and
+  $\sigma_r\unlhd\sigma'$.  (In other words,
+  $\sigma'=\sigma_0\circ\sigma_r$ for some $\sigma_0$.)
+
+\item[Ensure previous events do not transform:] For each $\sigma'$,
+  find most general unifiers~$\sigma$ such that for $0\leq i<h$,
+  $\sigma(t_c)$ is carried only within $\sigma(T_e)$ at $\sigma(C(i))$
+  and $\sigma'\unlhd\sigma$.  The function \fn{cowt}, presented in
+  Figure~\ref{fig:cowt}, performs the explorations, producing the
+  substitutions $S'=\fn{cowt}(t_c,T_e,\prefix{C_r}{h},S)$.  Function
+  $\fn{fold}$ is defined in Figure~\ref{fig:cows}.  Let $S_{r,h}$ be
+  the set~$S'$ with non-most general unifiers removed.
+\item[Ensure last event transforms:] For each $\sigma\in S_{r,h}$, if
+  $\sigma(t_c)$ is not carried only with $\sigma(T_e)$ at
+  $\sigma(C(h))$, try augmenting with parameters $n$, $r$,
+  $\sigma\circ\prefix{C}{h}$, and~$\sigma$.
+\end{description}
+
+\begin{figure}
+\begin{center}
+\begin{tabular}{l}
+$\fn{cowt}(t,T,C,S) ={}$\\
+$\quad\bigcup_{\sigma\in S}\fn{cowt}_0(t,T,C,\sigma)$\\
+\\
+$\fn{cowt}_0(t,T,C,\sigma) ={}$\\
+\quad \textbf{if} $\all{t}\pm t\in C\to\sigma(t)$ is {\cow} $\sigma(T)$ at
+$\sigma(t')$ \textbf{then}\\
+\qquad $\{\sigma\}$\\
+\quad \textbf{else}\\
+\qquad$\fn{cowt}(t,T,C,\fn{foldn}(t, T, C, \{\sigma\}))$\\
+\\
+$\fn{foldn}(t,T,\seq{},S)=S$\\
+$\fn{foldn}(t,T,\seq{\pm t'}\append C,S)={}$\\
+$\quad\fn{foldn}(t,T,C,\bigcup_{\sigma\in S}\fn{fold}(t,T,t',\sigma))$
+\end{tabular}
+\end{center}
+\caption{The $\fn{cowt}$ Function}\label{fig:cowt}
+\end{figure}
+
+\begin{note}
+For target terms to be the reasonable set for insertion of the
+critical message, one must require that variables of sort message are
+acquired.  This fact needs to be explained and noted as another reason
+for the acquired variable constraint.
+\end{note}
+
+The following example shows the need for Item~\ref{item:targs} in the
+definition of a solved critical position.  The protocol has two roles.
+
+\[\begin{array}{r@{{}={}}l}
+\init(a\colon\srt{N},n_1,n_2\colon\srt{D},k\colon\srt{A})&
+\role(\seq{\outbnd\enc{n_1,\enc{a,n_2}{k}}{k},\inbnd\enc{a,n_1}{k}},
+\emptyset,\emptyset)\\
+\resp(n_1\colon\srt{D},m\colon\top,k\colon\srt{A})&
+\role(\seq{\inbnd\enc{n_1,m}{k},\outbnd m},
+\emptyset,\emptyset)
+\end{array}\]
+where we use~\srt{N} for sort \dom{name}, \srt{D} for sort \dom{data}
+\srt{A} for sort \dom{akey}, and $\top$ for sort \dom{mesg} to save
+space.  Notice the responder declares $m$ to be of sort \dom{mesg}.
+
+The point-of-view skeleton $k_0$ is:
+\[\begin{array}{r@{}ll}
+\skel_Y(
+&\seq{\init(a',n'_1, n'_2,k')}
+&\mbox{Role map}\\
+&\{\init(a',n'_1, n'_2,k'),\resp(n''_1,m'',k'')\},
+&\mbox{Protocol}\\
+&\seq{\seq{\outbnd\enc{n_1,\enc{a,n_2}{k}}{k},\inbnd\enc{a,n_1}{k}}},
+&\mbox{Traces}\\
+&\emptyset,
+&\mbox{Node orderings}\\
+&\{k^{-1}\},
+&\mbox{Non-origination}\\
+&\{n_1\})
+&\mbox{Unique origination}
+\end{array}\]
+where $Y=a\colon\srt{N},n_1,n_2\colon\srt{D},k\colon\srt{A}$.
+
+{\cpsa} finds the nonce test $(k_0,(0,1),\seq{0,1})$ with critical
+message $n_1$.  The escape set $E=\fn{esc}(k_0, (0,1), n_1) =
+\{\enc{n_1,\enc{a,n_2}{k}}{k}\}$.
+
+{\cpsa} solves this test to produce skeleton $k_1$ with a displacement
+that simply equates $n_1$ and $n_2$.  Thus,
+$k_0\homomorphism{\phi,\sigma}k_1$ where $\phi=\seq{0}$ and
+$\sigma=\{n_1\mapsto n_2\}$.
+
+Consider Definition~\ref{def:critical position solved}, the definition
+of critical position solved.  Item~\ref{item:anc} does not apply
+because an ancestor of the image of the critical position does not
+match~$E$.  Item~\ref{item:aug} does not apply because
+$(k_1,(0,1),\seq{0,1})$ is a nonce test.  Item~\ref{item:dec} does not
+apply because the key that protects the member of the escape set is
+non-originating.  Finally, Item~\ref{item:enc} does not apply because
+the critical message is not an encryption.
+
+Item~\ref{item:targs} applies in this example because
+\[\begin{array}{r@{{}={}}l}
+\fn{targs}(n_1,E) & \{n_1,(n_1,\enc{a,n_2}{k})\}\\
+\fn{targs}(\sigma(n_1),\sigma(E))&\{n_2,(n_2,\enc{a,n_2}{k}),(a,n_2)\}.
+\end{array}\]
+so
+$\fn{targs}(\sigma(n_1),\sigma(E))\setminus\sigma(\fn{targs}(n_1,E))=\{(a,
+n_2)\}$.
+
+Once $n_1$ and $n_2$ have been equated, {\cpsa} easily finds the one
+shape by adding a responder instance.  The shape corresponds to a
+rather odd use of the initiator role.  The instance of that role picks
+a fresh value for $n_1$ and then makes use of that value for its $n_2$
+parameter.  See Appendix~\ref{chp:traces} for more on the relation
+between roles and the programs they specify.
+
+\chapter{Collapsing and Preconditioning}\label{chp:collapsing}
+
+The input preskeleton is preconditioned before it is subjected to
+authentication test solving.  The preskeleton is converted to a
+skeleton and then collapsing is applied so as to ensure all shapes are
+found.  Collapsing handles the case in which strands merged in the
+input lead to shapes.
+
+\begin{defn}[Collapsing]
+Let $k_0$ and $k_1$ be two skeletons such that there are two
+strands,~$s$ and~$s'$, and a most general unifier~$\sigma$ such that
+$\sigma(\Theta_{k_0}(s)(j))\equiv \sigma(\Theta_{k_0}(s')(j))$ for all
+$0\leq j<|\Theta_{k_0}(s)|$.  Then~$k_0$ \emph{collapses} to~$k_1$,
+written $k_0\reduction{\fn{clp}}k_1$, if
+$k_0\reduction{\ops{S}_\sigma}k\reduction{\ops{C}_{s,s'}}k'
+\reduction{\fn{skel}}k_1$.
+\end{defn}
+
+\begin{defn}[Preconditioning]
+For point-of-view preskeleton~$k_0$,~$k_0$ is preconditioned to~$k_1$,
+written $k_0\reduction{\fn{pre}}k_1$, if
+$k_0\reduction{\fn{skel}}k\mathbin{(\reduction{\fn{clp}})^\ast}k_1$.
+\end{defn}
+
+\chapter{Generalization}\label{chp:generalization}
+
+The cohort reduction system produces a set of realized skeletons.
+Generalization attempts to convert that set into a set of skeletons.
+Not all possible cases are implemented due to performance issues, so
+it is not uncommon to find a realized skeleton in the output of a run
+of {\cpsa} that is not a shape.
+
+\begin{conj}[Shape Completeness]
+Without generalization, {\cpsa} produces a complete set of shapes
+among the realized skeletons in its output.
+\end{conj}
+
+\begin{defn}[Generalize]
+A skeleton~$k_0$ \emph{generalizes}
+skeleton~$k_1$, written $k_1\reduction{<}_k k_0$, if
+both~$k_0$ and~$k_1$ are realized,~$k_0$ and~$k_1$ are not isomorphic,
+there is a homomorphism from a point-of-view skeleton~$k$ to~$k_0$, and
+a strandwise injective homomorphism $k_0\mapsto k_1$.
+\end{defn}
+
+If skeletons are allowed to be isomorphic, we
+write~$k_1\reduction{\leq}_k k_0$, and note that $\reduction{\leq}_k$
+defines a partial ordering.  Therefore, there are maximal elements in
+the partial ordering.  A shape associated with a preskeleton
+is a maximally generalized realized skeleton derived from the
+preskeleton.
+
+\begin{defn}[Shape]
+Let~$k_0$ be a preskeleton such that $k_0\reduction{\fn{pre}}k$ for
+some skeleton~$k$, and let~$k_1$ be a realized skeleton such that
+$k\mapsto k_1$.  Skeleton~$k_2$ is a \index{shape}\emph{shape}
+of~$k_0$ if $k_1\reduction{\leq}_k k_2$, and~$k_2$ is maximal among
+skeletons that generalize~$k_1$.
+\end{defn}
+
+There are four generalization reductions used to transform a realized
+skeleton into its shapes: deletion, weakening, forgetting, and
+separation.
+
+\begin{defn}[Deletion]
+Skeleton~$k_0$ \index{deletion}\emph{generalizes by deletion}
+skeleton~$k_1$, written $k_1\reduction{\ops{D}_n}_k k_0$, if
+$k_1\reduction{<}_k k_0$, $k_2\reduction{\fn{skel}}k_0$, and~$k_2$ is
+the result of deleting node~$n$ in~$k_1$ and all of the nodes that
+follow it in its strand.
+\end{defn}
+
+\begin{defn}[Weakening]
+Skeleton~$k_0$ \index{weakening}\emph{generalizes by weakening}
+skeleton~$k_1$, written $k_1\reduction{\ops{W}_{n,n'}}_k k_0$, if
+$k_1\reduction{<}_k k_0$, $k_2\reduction{\fn{skel}}k_0$, and~$k_2$
+is~$k_1$ except $\kprec{k_2}=(\kprec{k_1}\setminus\{(n,n')\})^\ast$.
+\end{defn}
+
+\begin{defn}[Forgetting]
+Skeleton~$k_0$ \index{forgetting}\emph{generalizes by origination
+  assumption forgetting} skeleton~$k_1$, written
+$k_1\reduction{\ops{F}_t}_k k_0$, if $k_1\reduction{<}_k k_0$,
+$k_2\reduction{\fn{skel}}k_0$, and~$k_2$ is~$k_1$ except
+$U_{k_2}=U_{k_1}\setminus\{t\}$ and $N_{k_2}=N_{k_1}\setminus\{t\}$.
+\end{defn}
+
+Sometimes a more general skeleton can be found by replacing some
+occurrences of one variable by a fresh variable.  For variable
+separation, the location of an occurrence of a variable is defined
+using a skeleton's instance.  Recall that in the external syntax,
+strand~$s$ in skeleton~$k$ is described by an instance of the form
+$\inst(r,h,\sigma)$.  (Instances are introduced in
+Section~\ref{sec:instances}.)
+
+\begin{defn}[Location]
+Variable~$x$ is at \emph{location} $(s,y,p)$ in~$k$ if
+the instance at $\Theta_k(s)$ is $\inst(r,h,\sigma)$ and
+$x=\sigma(y)\termat p$.
+\end{defn}
+
+\begin{defn}[Variable Separation]
+Skeleton~$k_0$ \index{variable separation}\emph{generalizes by
+  variable separation} skeleton~$k_1$, written
+$k_1\reduction{\ops{V}_t}_k k_0$, if $k_1\reduction{<}_k k_0$,
+$k_2\reduction{\fn{skel}}k_0$, and~$k_2$ is~$k_1$ except~$t$ is a
+variable that occurs in multiple locations in~$k_1$, and~$k_2$ is the
+result of replacing~$t$ with a variable~$t_0$ of the same sort at a
+proper subset of~$t$'s locations, where~$t_0$ occurs nowhere in~$k_1$.
+\end{defn}
+
+When separating a non-originating term, both the term and its clone
+are non-originating.  When separating a uniquely originating term,
+either the term or its clone is uniquely originating.
+
+\begin{note}
+What happens when separating~$t$ in~$k$ into~$t$ and~$t_0$, and
+$\cn{ltk}(t,t)\in N_k$?  Should a skeleton~$k_0$ with
+$\cn{ltk}(t,t_0)\in N_{k_0}$ be a candidate separation?
+Currently, only skeletons~$k_1$ with $\cn{ltk}(t,t)\in N_{k_1}$
+and $\cn{ltk}(t_0,t_0)\in N_{k_1}$ are considered.
+\end{note}
+
+\begin{defn}[Generalization]
+The reduction~$\reduction{\fn{gen}}_k
+=\bigcup_n\reduction{\ops{D}_n}_k\cup
+\bigcup_{n,n'}\reduction{\ops{W}_{n,n'}}_k\cup
+\bigcup_t\reduction{\ops{F}_t}_k\cup \bigcup_t\reduction{\ops{V}_t}_k$
+is the \emph{generalization} relation.  For the setwise generalization
+reduction, $\{k_0\}\setreduction{\fn{gen}}_k\{k_1\}$ when
+$k_0\reduction{\fn{gen}}_k k_1$.
+\end{defn}
+
+The fact that each generalization reduction replaces a singleton with
+just a singleton requires explanation.  It's simply a matter of
+performance.  If all possibilities are considered, {\cpsa} run time
+would become dominated by generalization.  Since generalization
+failures do not interfere with producing a complete description of the
+input, an approximation of the set of shapes is okay.
+
+\begin{conj}[Generalization]
+The relation~$\setreduction{\fn{gen}}_k$ is terminating.
+\end{conj}
+
+\section*{Discussion}
+In~\cite{DoghmiGuttmanThayer07}, the shapes of a point-of-view
+skeleton are said to be minimal, in the partial ordering induced by
+injective homomorphism, among all realized homomorphic images of the
+point-of-view skeleton.  Minimal corresponds to maximally generalized.
+The need for origination assumption forgetting was not known
+when~\cite{DoghmiGuttmanThayer07} was written.  Generalization by
+variable separation uses non-carried positions, and in particular,
+positions that traverse an atom edge.  Algebras in previous strand
+space papers have no concept of a position that traverses an atom
+edge, and therefore cannot be used to specify generalization by
+variable separation.
+
+Variable separation can be expensive when there are many possible ways
+to separate variables.  The implementation simply truncates the search
+when it grows too large.  The current implementation never attempts to
+separate channel variables.
+
+\chapter{Skeleton Reduction System}\label{chp:skeleton reduction}
+
+Let reduction
+$\twoheadrightarrow_k=(\setreduction{\fn{co}}\cup
+\setreduction{\fn{gen}}_k)^+$.  This reduction system specifies the
+{\cpsa} program.
+
+\begin{conj}
+The reduction~$\twoheadrightarrow_k$ is confluent.
+\end{conj}
+
+\begin{conj}[Soundness]\label{cnj:soundness}
+Let~$k_0$ be a preskeleton and~$k$ be an unrealized skeleton such that
+$k_0\reduction{\fn{pre}}k$.  Skeleton~$k_1$ is a shape of~$k_0$ if
+$\{k\}\twoheadrightarrow_k K$, $k_1\in K$, and~$K$ is a normal form.
+\end{conj}
+
+The set of bundles denoted by preskeleton~$k$, $\sembrack{k}$ is
+defined on Page~\pageref{def:preskeleton denotation}.
+
+\begin{conj}[Completeness]\label{cnj:completeness}
+Let~$k_0$ be a preskeleton and~$k$ be an unrealized skeleton such that
+$k_0\reduction{\fn{pre}}k$.  For all~$K$ such that $\{k\}\twoheadrightarrow_k
+K$, $\sembrack{k_0}=\bigcup_{k_1\in K}\sembrack{k_1}$.
+\end{conj}
+
+\chapter*{Acknowledgement}
+
+Carolyn Talcott and Leonard Monk provided valuable feedback on drafts
+of this document.
+
+\appendix
+
+\chapter{Penetrator Non-Origination Assumptions}\relax
+\label{chp:penetrator non-origination}
+
+Penetrator non-origination assumptions have been added as an extension
+to the basic strand space theory.  An atom is \index{penetrator
+  non-originating}\index{non-originating!penetrator}\emph{penetrator
+  non-originating} in a bundle if it originates on no penetrator
+strand, but each of its variables occurs in some strand's trace.
+
+Penetrator non-origination assumptions can be used to model
+passwords.  Several regular participants might know a password and
+originate it in a run of a protocol, but an idealized password is one
+the penetrator cannot guess.
+
+A penetrator non-originating atom is similar to a non-originating
+atom, except in that it can be carried.  There are two definitions
+that require change.  Penetrator non-originating atoms must be added
+to the avoidance set of Definition~\ref{def:avoid}.  When the message
+at a critical position is an atom (see Definition~\ref{def:critical
+  position}, Item~\ref{item:nonce, encryption, or channel}), instead of being
+uniquely originating, and can also be penetrator non-originating.
+
+\chapter{Programs Specified by a Role}\label{chp:traces}
+
+Given the definitions in Chapter~\ref{chp:strand spaces and bundles},
+a role can be viewed as an abstraction of a program, and a strand as
+an abstraction of a run of a program.  But what program is specified
+by a role?
+
+Consider a role that contains the event $\inbnd\enc{t_0}{t_1}$.  If
+the program has the decryption key~$\fn{inv}(t_1)$ before the message
+is received, the program could decrypt the message and extract~$t_0$.
+Alternatively, if the program has $\enc{t_0}{t_1}$, or has~$t_0$ and
+the encryption key~$t_1$, it might check to see if the received
+message is the same as the expected message, and abort the run if not.
+
+Here is an example of when the second behavior is desired.  In
+{\cpsa}, before hashing was part of the algebra, an encryption was
+used to represent hashing.  The hash of~$t$, $\#t$, expanded to
+$\enc{\mbox{``hash''},t}{h}$, where~$h$ was an asymmetric key known to
+all, but no one knew~$h^{-1}$.  The tag ``hash'' was added to the
+encryption so as to ensure a hash was never confused with other uses of
+encryption.
+
+A role does not specify a valid program if the only possible way of
+interpreting the event~$\inbnd\#t$ is by using~$h^{-1}$ to decrypt
+$\enc{\mbox{``hash''},t}{h}$.  The remainder of this section describes
+how this class of specification errors is detected for the Basic Crypto
+Algebra.
+
+The behaviors associated with a trace depend on the set of messages
+available initially.  The behaviors are specified by a data flow
+relation, $\flow{T_0}{C}{T_1}$.  For trace~$C$, the relation
+$\flow{T_0}{C}{T_1}$ asserts that when messages~$T_0$ are available
+initially, there is a behavior of~$C$ that produces messages~$T_1$.
+
+A derivation tree used to demonstrate $\flow{T_0}{C}{T_1}$ shows the steps
+that enable the flow of data.  The tree can be linearized, and thus
+specifies a sequential program that implements the role.
+
+The data flow relation is defined with the aid of a data flow relation
+for a sequence of events, $\flow{T_0}{C}{T_1}$.
+
+$$\flow{T}{\seq{}}{T}\qquad
+\infer{\flow{T_0}{\seq{\pm t}}{T}\quad\flow{T}{C}{T_1}}%
+{\flow{T_0}{\seq{\pm t}\append C}{T_1}}$$
+
+The $\flow{T_0}{\seq{\pm t}}{T_1}$ relation is defined using the
+$\flow{T_0}{C}{T_1}$ relation.  An outbound message can be formed if
+it is available initially
+$$\infer{t\in T}{\flow{T}{\seq{+t}}{T}}$$
+or if it can be formed by construction.
+$$\infer{\flow{T}{\seq{+t_1,\ldots,+t_{n}}}{T}}%
+{\flow{T}{\seq{+f(t_1,\ldots,t_{n})}}{T}}\quad
+\left[\begin{array}{l}
+f(t_1,\ldots,t_{n})\\
+\mbox{not an atom}
+\end{array}\right]$$
+
+An inbound message makes atoms and acquired variables available.
+$$\flow{T}{\seq{-t}}{T\cup\{t\}}\quad [\mbox{$t$ an atom or a variable}]$$
+When the decryption key is available, the contents of the encryption
+are also available.  Furthermore, the encryption can be sent in future
+messages without access to its encryption key.
+$$\infer{\flow{T_0}{\seq{+\fn{inv}(t_1)}}{T_0}\quad
+  \flow{T_0}{\seq{-t_0}}{T_1}}{\relax
+  \flow{T_0}{\seq{-\enc{t_0}{t_1}}}{T_1\cup\{\enc{t_0}{t_1}\}}}$$ A received
+encryption that can be sent ensures the encryption agrees with
+currently available terms and makes nothing new available.
+$$\infer{\flow{T}{\seq{+\enc{t_0}{t_1}}}{T}}{\relax
+  \flow{T}{\seq{-\enc{t_0}{t_1}}}{T}}$$
+
+Consider an operation $f$ other than the encryption operation.  The
+order in which messages that occur in a message constructed using~$f$
+are made available may determine if the decryption key of an
+encryption is available.  All possible orderings must be explored.
+Let~$\pi_n$ be a permutation on the domain of a sequence of
+length~$n$.
+$$\infer{\flow{T_0}{\seq{-t_1,\ldots,-t_{n}}\circ\pi_n}{T_1}}%
+{\flow{T_0}{\seq{-f(t_1,\ldots,t_{n})}}{T_1}}
+\left[\begin{array}{l}
+f(t_1,\ldots,t_{n})\\
+\mbox{not an atom}
+\end{array}\right]$$
+
+The data flow relation is used to find initial sets of atoms that are
+compatible with some behavior of a trace that produces messages.
+
+\begin{defn}[Trace Parameters]
+The set of atoms~$T_0$ are \index{parameters}\emph{parameters} of
+trace~$C$ if $\flow{T_0}{C}{T_1}$ for some~$T_1$, and~$T_0$ is
+minimal, that is for all~$T'_0$ such that $\flow{T'_0}{C}{T_1}$,
+$T'_0\not\subset T_0$.
+\end{defn}
+
+The role $\seq{\outbnd\enc{a,n}{K_b},\inbnd\enc{n}{K_a}}$ has two sets
+of parameters, $\{a,n,K_b,K^{-1}_a\}$ and $\{a,n,K_b,K_a\}$.  See
+Figure~\ref{fig:ambigrole} for two examples of programs that implement
+the role, using distinct parameter sets.
+
+\begin{figure}
+\begin{center}
+\begin{tabular}{l@{\hspace{8mm}}l}
+$\cn{proc}(a,n,K_b,K^{-1}_a)$ & $\cn{proc}(a,n,K_b,K_a)$\\
+$\quad \cn{send}(\enc{a,n}{K_b});$ & $\quad \cn{send}(\enc{a,n}{K_b});$\\
+$\quad x_0\gets \cn{recv}();$ & $\quad x_0\gets \cn{recv}();$\\
+$\quad x_1\gets \cn{decrypt}(x_0,K^{-1}_a);$ & $\quad x_1\gets \enc{n}{K_a};$\\
+$\quad x_1 \neq n \to \cn{fail};$ & $\quad x_0 \neq x_1 \to \cn{fail};$ \hspace{8mm}\\
+$\cn{end}$ & $\cn{end}$
+\end{tabular}
+\end{center}
+\label{fig:ambigrole}
+\caption{Two programs that implement the role $\seq{\outbnd\enc{a,n}{K_b},\inbnd\enc{n}{K_a}}$.}
+\end{figure}
+
+The {\cpsa} distribution contains a program that computes the set of
+parameters of a role.  It was used to find an error in a role's use of
+hashing as described at the beginning of this section.  The role in
+question is the verifier role that is part of an attestation
+protocol~\cite{CokerEtAl11}.  In an earlier version of the role,
+every set of parameters included the decryption key of the encryption
+used as a hash.  The role was so complicated that inspection did not
+reveal the error.
+
+Note that this section is specific to the basic crypto algebra in the
+sense that all non-atomic operations are assumed to be constructable,
+and encryption has the specific de-construction recipe shown.  Although
+carried positions were not mentioned in this section, the inference system
+specifies the same concept.  In fact, in future work we hope to show that
+the inference system is all one needs to define, and that which positions
+are carried, which are protected, and which sorts are atoms can be defined
+in terms of the inferences available.
+
+\chapter{Shape Analysis Sentences}\label{chp:logic}
+
+For each point-of-view skeleton and its shapes found by {\cpsa}, there
+is a formula in a language of order-sorted first-order logic called
+a \index{shape analysis sentence}\emph{shape analysis sentence}.  The
+sentence has a special form,
+$\all{X}(\Psi\supset\bigvee_i\some{Y_i}(\Delta_i\wedge\Phi_i))$,
+where~$\Psi$, $\Delta_i$, and~$\Phi_i$ are conjunctions of atomic
+formulas and~$X$ and~$Y_i$ are variable sets.  This fragment of
+first-order logic is called coherent logic.  Formula~$\Psi$ describes
+the point-of-view skeleton~$k_0$.  For each homomorphism to a shape,
+$k_0\homomorphism{\delta_i}k_i$, formula~$\Delta_i$ describes the
+structure preserving maps~$\delta_i$, and the shape~$k_i$ is described
+by~$\Phi_i$.
+
+An interpretation of a shape analysis sentence is a skeleton.  If
+{\cpsa} finds all of the shapes and the homomorphisms associated with
+a point-of-view skeleton, the analysis' sentence is satisfied in all
+realized skeletons.  Let~$\Sigma$ be a shape analysis sentence
+and~$\Psi$ be a security goal.  If $\Sigma\supset\Psi$ is a theorem in
+order-sorted first-order logic, then~$\Psi$ is satisfied in all
+realized skeletons and its protocol achieves this goal.
+
+Shape analysis sentences are closely related to security goals
+in~\cite{guttman09}, and were motivated by that work.  This material
+was extracted from~\cite{ramsdell12}, the paper that introduced shape
+analysis sentences.
+
+\section{Security Goals}\label{sec:security goals}
+
+The signature for security goal terms extends the one used for the
+underlying message algebra with sort \srt{Z}.  Variables of this sort
+denote strands.
+
+Security goals make use of protocol specific and protocol independent
+predicates.  For each role $\role_Y(C,N,U)\in P$, there are strand length
+predicates and strand parameter predicates.  There are $|C|$ unary
+length predicates $P[r,h]:\srt{Z}$, with $1\leq h\leq|r|$.  Relative
+to skeleton~$k$, $P[r,h](z)$ asserts that strand~$z$ in~$k$ is an
+instance of~$r$ and has a length of at least~$h$.  For each
+variable~$x:S$ that occurs in~$C$, there is a binary parameter
+predicate $P[r,x]:\srt{Z}\times{}S$.  Relative to skeleton~$k$,
+$P[r,x](z,t)$ asserts that strand~$z$ in~$k$ is an instance of~$r$ in
+which~$x$ is instantiated as~$t$.
+
+For each base sort~$B$, there are unary predicates $\cn{non}\colon B$
+and $\cn{uniq}\colon B$.  $\cn{non}(t)$ asserts~$t$ is non-originating
+in~$k$ and $\cn{uniq}(t)$ asserts~$t$ uniquely originates in~$k$.
+
+Let $m$ be the length of the longest role in~$P$.  There are $m^2$
+precedence predicates $\cn{prec}[i,j]:\srt{Z}\times\srt{Z}$ for $0\leq
+i,j< m$.  $\cn{prec}[i,j](x,y)$ asserts that node $(x,i)$ is before
+node $(y,j)$ in~$k$.  There are $3m$ origin predicates
+$\cn{uniq-at}[i]:B\times\srt{Z}$, with $0\leq i< m$ and $B$ as before.
+$\cn{uniq-at}[i](t,z)$ asserts that~$t$ uniquely originates in~$k$ at
+node $(z,i)$.  The predicate \cn{false} has arity zero and, of course,
+equality is binary.
+
+To improve the readability of formulas to follow, we write
+$\cn{prec}(x,i,y,j)$ for $\cn{prec}[i,j](x,y)$ and $\cn{uniq-at}(t,z,i)$
+for $\cn{uniq-at}[i](t,z)$.
+
+Let $k=\skel_X(P,I,\prec,N,U)$ and let~$\prec^-$ be the transitive
+reduction of~$\prec$.  Recall that~$\Theta_X$ is the strand space
+defined by~$I$, see Section~\ref{sec:instances}.  We
+define~$\form(k)=(Y,\Phi)$, where~$\Phi$ is $k$'s skeleton formula,
+and~$Y$ is the formula's variable set.  For~$\form(k)=(Y,\Phi)$, the
+variable set~$Y$ is~$X$ augmented with a fresh variable of
+sort~\srt{Z} for each strand in~$k$.  Let $Z(s)$ be the strand
+variable associated with strand $s\in\sdom(I)$.
+
+The formula~$\Phi$ is a conjunction of atomic formulas composed as
+follows.
+\begin{itemize}
+\item For each $s\in\sdom(I)$, let $I(s)=\cn{i}(r,h,\sigma)$ and
+  $z=Z(s)$.  Assert $P[r,h](z)$.  Let $r=\role(C,N,U)$.  For each
+  variable $x\in\svars(\prefix{C}{h})$ and term $t=\sigma(x)$, assert
+  $P[r,x](z,t)$.
+\item For each $(s,i)\prec^-(s',i')$ such that $s\neq s'$, assert
+  $\cn{prec}(Z(s),i,Z(s'),i')$.
+\item For each $t\in N$, assert $\cn{non}(t)$.
+\item For each $t\in U$ and $(s,i)\in\orig_k(t)$, assert
+  $\cn{\uniqat}(t,Z(s),i)$.
+\item For each $t\in U$ without a point of origination in~$k$, assert
+  $\cn{uniq}(t)$.
+\end{itemize}
+
+Given a set of homomorphisms $\delta_i\colon k_0\mapsto k_i$, its shape
+analysis sentence is
+\begin{equation}\label{eqn:node-oriented shape sentence}
+\sent(\delta_i\colon k_0\mapsto k_i)=\all{X_0}(\Phi_0\supset
+\bigvee_i\some{X_i}(\Delta_i\wedge\Phi_i)),
+\end{equation}
+where $\form(k_0)=(X_0,\Phi_0)$.  The same procedure produces~$X_i$
+and~$\Phi_i$ for shape~$k_i$ with one proviso---the variables in
+$X_i$ that also occur in~$X_0$ must be renamed to avoid trouble while
+encoding the structure preserving maps~$\delta_i$.
+
+The structure preserving maps~$\delta_i=(\phi_i,\sigma_i)$ are encoded
+in~$\Delta_i$ by a conjunction of equalities.  Map~$\sigma_i$ is coded
+as equalities between a message algebra variable in the domain
+of~$\sigma_i$ and the term it maps to.  Map~$\phi_i$ is coded as
+equalities between strand variables in~$\Phi_0$ and strand variables
+in~$\Phi_i$.  Let~$Z_0$ be the strand variables freshly generated
+for~$k_0$, and~$Z_i$ be the ones generated for~$k_i$.  The
+strand mapping part of~$\Delta_i$ is
+\[\bigwedge_{s\in\sdom(Z_0)}Z_0(s)=Z_i(\phi_i(s)).\]
+
+\begin{figure}
+$$\begin{array}{l}
+\all{a_0,b_0\colon\srt{A}, s_0\colon\srt{S}, d_0\colon\srt{D},
+z_0\colon\srt{Z}}(\\
+\quad\resp_2(z_0)\wedge\resp_{a}(z_0,a_0)\wedge
+\resp_{b}(z_0,b_0)\\
+\qquad{}\wedge
+\resp_{s}(z_0,s_0)\wedge
+\resp_{d}(z_0,d_0)\\
+\qquad{}\wedge\cn{non}(a_0^{-1})\wedge
+\cn{non}(b_0^{-1})\\
+\quad\supset\\
+\quad\some{a_1,b_1,b_2\colon\srt{A}, s_1\colon\srt{S},
+  d_1\colon\srt{D}, z_1,z_2\colon
+ \srt{Z}}(\\
+\qquad z_0=z_1\wedge a_0=a_1\wedge b_0=b_1\wedge s_0=s_1\wedge
+d_0=d_1\\
+\qquad\quad\wedge\resp_2(z_1)\wedge
+\resp_{a}(z_1,a_1)\wedge
+\resp_{b}(z_1,b_1)\\
+\qquad\quad\wedge
+\resp_{s}(z_1,s_1)\wedge
+\resp_{d}(z_1,d_1)\\
+\qquad\quad\wedge\init_1(z_2)\wedge\init_a(z_2,a_1)\wedge
+\init_b(z_2,b_2)\wedge
+\init_s(z_2,s_1)\\
+\qquad\quad\wedge\cn{\uniqat}(s_1,z_2,0)\wedge
+\cn{prec}(z_2,0,z_1,0)\\
+\qquad\quad\wedge\cn{non}(a_1^{-1})\wedge
+\cn{non}(b_1^{-1})))
+\end{array}$$
+\caption{Shape Analysis Sentence for Blanchet's
+  Protocol}\label{fig:blanchet's shape analysis sentence}
+\end{figure}
+
+The shape analysis sentence for the second analysis of Blanchet's
+Simple Example Protocol in Section~\ref{sec:blanchet's simple example
+  protocol} is displayed in Figure~\ref{fig:blanchet's shape analysis
+  sentence}.  The strand length predicate $P[r,h](z)$ is written
+$r_h(z)$, and the strand parameter predicate $P[r,x](z,t)$ is written
+$r_x(z,t)$ with the protocol left implicit.
+
+\paragraph{Semantics of Skeleton Formulas.}
+
+Let $k=\skel_X(P,I,\prec,N,U)$ and $\Theta_X$ be its strand space.
+When formula~$\Phi$ is satisfied in skeleton~$k$ with order-sorted
+variable assignment $\alpha$, we write $k,\alpha\models\Phi$.  For
+$x:S\in X$, $\alpha(x)$ is in the carrier set of $\algbara_X$ for
+sort~$S$.  For $x:\srt{Z}$, $\alpha(x)\in\sdom(\Theta_X)$.  We
+write~$\bar\alpha$ when~$\alpha$ is extended to terms in the obvious
+way.  When sentence~$\Sigma$ is satisfied in skeleton~$k$, we write
+$k\models\Sigma$.
+
+\begin{itemize}
+\item $k,\alpha\models P[r,h](z)$ iff $h\leq|\Theta_X(s)|$, and for
+  some~$\sigma$,
+  \[\prefix{\Theta_X(s)}{h}=\sigma\circ\prefix{C}{h}\]
+  where $s=\alpha(z)$ and $r=\role(C,N,U)$.
+
+\item $k,\alpha\models P[r,x](y,t)$ iff
+  for some~$\sigma$ with $\sigma(x)=\bar\alpha(t)$,
+  \[\prefix{\Theta_X(s)}{h}=\sigma\circ\prefix{C}{h}\]
+  where $s=\alpha(z)$, $r=\role(C,N,U)$, and $h$ is the smallest
+  $\ell$ such that $x$ occurs in $\prefix{C}{\ell}$.
+
+\item $k,\alpha\models\cn{prec}(x,i,y,j)$ iff
+  $(\alpha(x),i)\prec(\alpha(y),j)$.
+\item $k,\alpha\models\cn{non}(t)$ iff $\bar\alpha(t)\in N$.
+\item $k,\alpha\models\cn{uniq}(t)$ iff $\bar\alpha(t)\in U$.
+\item $k,\alpha\models\cn{\uniqat}(t,z,i)$ iff $\bar\alpha(t)\in U$ and
+  $(\alpha(z),i)\in\orig_k(\bar\alpha(t))$.
+\item $k,\alpha\models y=z$ iff $\bar\alpha(y)=\bar\alpha(z)$.
+\end{itemize}
+
+Let~$\Sigma$ be a shape analysis sentence and~$\Psi$ be a security
+goal.  If $\Sigma\supset\Psi$ is a theorem in order-sorted first-order
+logic, then~$\Psi$ is satisfied in all realized skeletons and its
+protocol achieves this goal.
+
+\paragraph{Channel Formulas.}
+
+This appendix has not been updated to reflect the inclusion of
+channels into {\cpsa}, but the changes made are straightforward.
+There are two new unary predicate symbols, \cn{auth} and \cn{conf}, that
+are similar to \cn{non} except their argument must be a variable of sort
+\dom{chan}.  For skeleton $k$ and variable assignment $\alpha$,
+$\cn{auth}(c)$ is satisfied iff $\alpha(c)\in\auth(k)$, and
+$\cn{conf}(c)$ is satisfied iff $\alpha(c)\in\conf(k)$.
+
+\chapter{Facts and Rules}\label{chp:facts and rules}
+
+Support for facts and rules was introduced in version 4.1 of {\cpsa}.
+
+Each skeleton includes a small database of facts.  A fact is a named
+relation among fact terms.  A fact term\index{fact term} is either a
+strand of the skeleton or an algebra term.  For example, in
+skeleton~$k$, a user may want to note that strand 0 owns the private
+key for~$a$ by asserting fact $(\cn{owns},\seq{0, a^{-1}})$.
+
+Each protocol includes a small collection of rules.  A rule is a
+sentence in the goal language presented in Section~\ref{sec:security
+  goals}.  A rule is an axiom added to a protocol.  {\cpsa} uses the
+axiom as a rewrite rule to derive zero or more new skeletons from a
+skeleton produced during a cohort step.
+
+\bibliography{cpsa}
+\bibliographystyle{plain}
+
+\printindex
+
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
diff --git a/doc/src/macros.tex b/doc/src/macros.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/macros.tex
@@ -0,0 +1,62 @@
+\newcommand{\cpsa}{\textsc{cpsa}}
+\newcommand{\version}{4.4.1}
+\newcommand{\cpsacopying}{\begingroup
+  \renewcommand{\thefootnote}{}\footnotetext{{\copyright} 2010 The
+    MITRE Corporation.  Permission to copy without fee all or part of
+    this material is granted provided that the copies are not made or
+    distributed for direct commercial advantage, this copyright notice
+    and the title of the publication and its date appear, and notice
+    in given that copying is by permission of The MITRE
+    Corporation.}\endgroup}
+\newcommand{\pov}{\textsc{pov}}
+\newcommand{\cow}{\textsc{cow}}
+\newcommand{\cn}[1]{\ensuremath{\operatorname{\mathsf{#1}}}}
+\newcommand{\dom}[1]{\ensuremath{\operatorname{\mathbf{#1}}}}
+\newcommand{\fn}[1]{\ensuremath{\operatorname{\mathit{#1}}}}
+\newcommand{\seq}[1]{\ensuremath{\langle#1\rangle}}
+\newcommand{\enc}[2]{\ensuremath{\{\!|#1|\!\}_{#2}}}
+\newcommand{\hash}[1]{\ensuremath{\##1}}
+\newcommand{\comp}[2]{{\mathord{#1}}\circ{\mathord{#2}}}
+\newcommand{\sembrack}[1]{[\![#1]\!]}
+\newcommand{\semfn}[1]{\mathcal{#1}}
+\newcommand{\sem}[2]{\semfn{#1}\sembrack{#2}}
+\newcommand{\mcsu}{\ensuremath{\mathcal{C}}}
+\newcommand{\probs}{\ensuremath{\mathcal{E}}}
+\newcommand{\srt}[1]{\ensuremath{\mathsf{#1}}}
+\newcommand{\eqq}{\stackrel{?}{=}}
+\newcommand{\inbnd}{\mathord -}
+\newcommand{\outbnd}{\mathord +}
+\newcommand{\nat}{\mathbb{N}}
+\newcommand{\all}[1]{\mathop{\forall#1}}
+\newcommand{\some}[1]{\mathop{\exists#1}}
+\newcommand{\baseterms}{\mathbb{B}}
+\newcommand{\cons}{\mathbin{::}}
+\newcommand{\ith}{\imath^\mathrm{th}}
+\newcommand{\jth}{\jmath^\mathrm{th}}
+\newcommand{\append}{\mathbin{{}^\smallfrown}}
+\newcommand{\prefix}[2]{#1\dagger#2}
+\newcommand{\orig}{\mathcal{O}}
+\newcommand{\gain}{\mathcal{G}}
+%\newcommand{\pow}[1]{\mathcal{P}(#1)}
+%\newcommand{\pow}[1]{\wp(#1)}
+\newcommand{\pow}[1]{2^{#1}}
+\newcommand{\termat}{\mathbin{@}}
+\newcommand{\idsigma}{\sigma_{\mathrm{id}}}
+\newcommand{\idphi}{\phi_{\mathrm{id}}}
+\newcommand{\kprec}[1]{\mathbin{\prec_{#1}}}
+\newcommand{\terms}{\ensuremath{\mathcal{T}}}
+\newcommand{\alg}[1]{\ensuremath{\mathfrak#1}}
+\newcommand{\ops}[1]{\ensuremath{\mathbb#1}}
+\newcommand{\bundle}{\ensuremath{\mathcal{B}}}
+\newcommand{\der}[3]{\ensuremath{\dctx{#2}{#3}\vdash#1}}
+\newcommand{\dctx}[2]{\ensuremath{#1:#2}}
+\newcommand{\flow}[3]{\ensuremath{#1,#2\rhd#3}}
+\newcommand{\infer}[2]{\begin{array}{c}#1\\\hline#2\end{array}}
+\hyphenation{pre-skel-e-ton}
+\newcommand{\homomorphism}[1]{\stackrel{#1}{\longmapsto}}
+\newcommand{\reduction}[1]{\stackrel{#1}{\longrightarrow}}
+\newcommand{\longtwoheadrightarrow}{\relax
+\smash{\relbar\joinrel\twoheadrightarrow}\vphantom\rightarrow}
+\newcommand{\setreduction}[1]{\stackrel{#1}{\longtwoheadrightarrow}}
+\newcommand{\uniqat}{\mbox{\sf uniq-at}}
+\newcommand{\strprec}{\mbox{\sf str-prec}}
diff --git a/doc/src/mitrelogo.mp b/doc/src/mitrelogo.mp
new file mode 100644
--- /dev/null
+++ b/doc/src/mitrelogo.mp
@@ -0,0 +1,182 @@
+filenametemplate "%j-%c.mps";
+
+% Original comment in the METAFONT version of the MITRE logo.
+
+%% The MITRE logo version 1.1 released 11/16/89.
+
+%% Created by Richard Shaeff --- 1981
+%% Shaeff Design Inc, Needham, MA
+%%
+%% Programmed in METAFONT by John D. Ramsdell --- November 1989
+%% The MITRE Corporation, Bedford, MA
+%% Copyright 1989 by The MITRE Corporation.
+
+%% Richard Shaeff's original design was done by creating an
+%% outline.  Therefore, this METAFONT version generates letters
+%% by filling an outlined region.
+
+%% The program expects ht# and only ht# to be defined in a
+%% parameter file.  All other parameters are derived from this
+%% one.  This is in conformance with the MITRE policy which states
+%% that the logo may be changed only by linearly scaling all of
+%% the logo's dimensions.
+
+% The single parameter in METAPOST is h.
+h=15pt;
+
+%% Note:
+%% Measurements from the original design and are in inches.
+%% The height of the logo is 4.25 inches and that height is
+%% used to scale all dimensions.
+%%
+
+%% MITRE blue is Pantone Matching System (PMS) 293 Blue, with an RGB
+%% value of (0, 81, 186).
+
+prologue:=1;
+
+I_w            = 0.87500/4.25h;      % I width. (7/8in)
+T_bar_h        = 0.78125/4.25h;      % T bar height. (25/32in)
+T_lft_w        = 1.03125/4.25h;      % Left T bar. (1 1/32in)
+T_rt_w         = 1.00000/4.25h;      % Right T bar. (1in)
+E_gap_h        = 0.93750/4.25h;      % Upper E gap. (15/16in)
+E_bar_shrink_h = 0.06250/4.25h;      % Mid bar shrink. (1/16in)
+E_bar_w        = 1.56250/4.25h;      % E bar width. (1 9/16in)
+R_tail_a       = 125;                % R tail angle.
+M_vee_h        = 1.62500/4.25h;      % M vee height. (1 5/8in)
+M_vee_a        = 70;                 % M vee angle.
+M_edge_a       = 100;                % M edge angle.
+M_w            = 5.25000/4.25h;      % M width. (5 1/4in)
+skip_w         = 0.12500/4.25h;      % Distance between T and R.
+                                     % (1/8in)
+s = max(1, round(skip_w));           % Rounded interletter space.
+color mitreblue;
+mitreblue      = (0,70/255,174/255); % MITRE blue PMS 293 Blue
+
+def draw_M(expr o) =
+  begingroup
+    save x, y;
+    w = M_w + skip_w;
+    x1 = o;
+    y2 = y3 = y5 = y6 = h;
+    y4 = h - y12 = h - y9 = M_vee_h;       % The vee heights are the same.
+    y1 = y13 = y11 = y10 = y8 = y7 = 0;
+
+    x13 = x1 + I_w;
+    x7 = w - max(1, round(.5skip_w));
+    x8 = x7 - I_w;
+    x3 - x2 = x6 - x5;                     % Top edges widths are the same.
+    x5 - x2 = x10 - x1;                    % A strange fact---measure it!
+
+    z6 = z7 + whatever * dir M_edge_a;     % The right side has all nice
+    z9 = z8 + whatever * dir M_edge_a;     % and neat angles defining it.
+    z10 = z9 + whatever * dir M_vee_a;
+    z4 = (-I_w, 0) + whatever[z10,z9];     % Width of right diagonal is I_w.
+    z5 = z4 + whatever * dir M_vee_a;
+    z12 = z13 + whatever * (z2 - z1);
+    z11 = z12 + whatever * (z3 - z4);
+    % The width of the left diagonal is only approximately I_w.
+    % The following is only "almost" true.
+    % z4 = (I_w, 0) + whatever[z11,z12];
+
+    fill z1--z2--z3--z4--z5--z6--z7
+    & z7--z8--z9--z10--z11--z12--z13--cycle withcolor mitreblue;
+    w
+  endgroup;
+enddef;
+
+def draw_I(expr o) =
+  begingroup
+    save x, y;
+    y2 = y3 = h;
+    y1 = y4 = 0;
+
+    x1 = x2 = o;
+    x3 = x4 = o + round(I_w);
+
+    fill z1--z2--z3--z4--cycle withcolor mitreblue;
+    x3 + s
+  endgroup;
+enddef;
+
+def draw_T(expr o) =
+  begingroup;
+    save x, y;
+    y4 = y5 = h;
+    y3 = y2 = y7 = y6 = h - T_bar_h;
+    y1 = y8 = 0;
+
+    x3 = x4 = o;
+    x2 = x1 = o + round(T_lft_w);
+    x7 = x8 = o + round(T_lft_w + I_w);
+    x6 = x5 = o + round(T_lft_w + I_w + T_rt_w);
+
+    fill z1--z2--z3--z4--z5--z6--z7--z8--cycle withcolor mitreblue;
+    x6 + s
+  endgroup;
+enddef;
+
+def draw_R(expr o) =
+  begingroup;
+    save x, y;
+    y2 = y3 = h;
+    y10 = y11 = h - T_bar_h;       % y10, y8, y5, y3 must be integers.
+    y9 = y4 = y10 - .5E_gap_h;     % They help determine the position
+    y7 = y15 = y8 = y10 - E_gap_h; % of horizontal tangents to curves.
+    y6 = y5 = y7 - (T_bar_h - E_bar_shrink_h);
+    y1 = y12 = y13 = y16 = 0;
+
+    x1 = x2 = o;
+    x11 = x12 = o + round(I_w);	   % The space in the "R" must be the
+    x7 = x6 = x14 = x11 + s;       % same as the interletter space.
+    x3 = x10 = x8 = x5 = o + I_w + y7 - y 14;  % The location of the tail
+    x13 = x3 + .5E_gap_h;          % (x13) must not be rounded or
+                                % METAFONT cannot solve the equations.
+    z14 = z13 + whatever * dir R_tail_a;
+    z16 = (x13+I_w+skip_w, skip_w) + whatever * dir R_tail_a;
+    z15 = z16 + whatever * dir R_tail_a;
+
+    x9 = round(x13);               % x4 and x9 determine vertical tangents
+    x4 = round(x13 + I_w);         % so they must be integers.
+
+    fill z1--z2--z3
+    & z3{z3-z2}..z4{z5-z3}..{z6-z5}z5
+    & z5--z6--z7--z8
+    & z8{z8-z7}..z9{z10-z8}..{z11-z10}z10
+    & z10--z11--z12--cycle withcolor mitreblue;
+
+    % "R" Tail
+    fill z13--z14--z7--z15--z16--cycle withcolor mitreblue;
+    x4 + s
+  endgroup;
+enddef;
+
+def draw_E(expr o) =
+  begingroup;
+    save x, y;
+    y2 = y3 = h;
+    y5 = y4 = h - T_bar_h;
+    y6 = y7 = y5 - E_gap_h;
+    y9 = y8 = y6 - (T_bar_h - E_bar_shrink_h);
+    % Notice that the lower bar is bigger than the upper one.
+    y10 = y11 = T_bar_h + E_bar_shrink_h;
+    y1 = y12 = 0;
+
+    x1 = x2 = o;
+    x5 = x6 = x9 = x10 = o + round(I_w);
+    x3 = x4 = x7 = x8 = x11 = x12 = o + round(I_w + E_bar_w);
+
+    fill z1--z2--z3--z4--z5--z6--z7--z8
+    & z8--z9--z10--z11--z12--cycle withcolor mitreblue;
+    x3 + max(1, round(.5skip_w))
+  endgroup;
+enddef;
+
+beginfig(0);
+  x1 = draw_M(0);
+  x2 = draw_I(x1);
+  x3 = draw_T(x2);
+  x4 = draw_R(x3);
+  x5 = draw_E(x4);
+endfig;
+bye;
diff --git a/doc/src/mitreslides.sty b/doc/src/mitreslides.sty
new file mode 100644
--- /dev/null
+++ b/doc/src/mitreslides.sty
@@ -0,0 +1,97 @@
+% mitreslides package for use with the slides class in LaTeX.
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{mitreslides}[2005/02/21]
+%
+% John D. Ramsdell
+%
+% Example file:
+%
+%	\documentclass[landscape]{slides}
+%	\usepackage{mitreslides}
+%       \renewcommand{\footercomment}{A Title}
+%	\begin{document}
+%	...
+%	\end{document}
+%
+% Defines environments: titleslide, mitreslide, and mitreoverlay
+%
+% The "slide" pagestyle is also defined.  It prints the slide
+% number, and the MITRE logo in the lower right corner.
+%
+% titleslide example:
+%
+%	\begin{titleslide}{A Briefing\\of Major Importance}
+%	R. J. Drofnats
+%
+%	30 Feb 93
+%	\end{titleslide}
+%
+%		The first argument is optional and is passed to
+%               the slide environment and is used for color slides.
+%		The second argument is the briefing title.
+%
+% mitreslide example:
+%
+%	\begin{mitreslide}{A Slide\\Title}
+%	...slide contents...
+%	\end{mitreslide}
+%
+%		The first argument is optional and is passed to
+%               the slide environment and is used for color slides.
+%               The second argument is the slide title.
+%
+% Set the footer comment with footercomment.
+% The options are, date, nopagenumbers, and marks.
+%
+% Initial code
+\RequirePackage{ifthen}
+\newboolean{date}                           % Show current date
+\newboolean{nopagenums}                     % Omit page numbers
+\newboolean{marks}                          % Show top marks
+% Declaration of options
+\DeclareOption{date}{\setboolean{date}{true}}
+\DeclareOption{nopagenums}{\setboolean{nopagenums}{true}}
+\DeclareOption{marks}{\setboolean{marks}{true}}
+%
+\ProcessOptions
+\RequirePackage{graphicx}
+% ----------- main code ----------------
+% Footer comment is empty by default.
+\newcommand{\footercomment}{}
+
+\ifthenelse{\boolean{date}}{%
+\newcommand{\show@date}{\the\year{/}\the\month{/}\the\day}%
+}{%
+\newcommand{\show@date}{}%
+}
+
+\ifthenelse{\boolean{nopagenums}}{%
+\newcommand{\show@slidenum}{\phantom{\theslide}}%
+}{%
+\newcommand{\show@slidenum}{\theslide}%
+}
+
+\ifthenelse{\boolean{marks}}{%
+\newcommand{\show@mark}{+}%
+}{%
+\newcommand{\show@mark}{\phantom{+}}%
+}
+%
+%        slide page style -- MITRE logo goes flush right
+\def\ps@slide{%
+\def\@oddfoot{{\tiny\show@slidenum\qquad\show@date\quad\footercomment}%
+\hfil\includegraphics{mitrelogo-0.mps}}
+\def\@oddhead{\show@mark\hfil\show@mark}
+\def\@evenfoot{\@oddfoot}
+\def\@evenhead{\@oddhead}}
+%
+%	\begin{mitreslide}[COLORS]{TITLE} ... \end{mitreslide}
+\newenvironment{mitreslide}[2][]%  Built on the slide environment.
+{\begin{slide}{#1}{\noindent\raggedright\Large#2\par}}%
+{\vfill\end{slide}}
+%
+%	\begin{titleslide}[COLORS]{TITLE} ... \end{titleslide}
+\newenvironment{titleslide}[2][]%
+{\begin{slide}{#1}\begin{center}{{\Large#2\par}}}%
+{\end{center}\end{slide}}
diff --git a/doc/src/mkdoc b/doc/src/mkdoc
new file mode 100644
--- /dev/null
+++ b/doc/src/mkdoc
@@ -0,0 +1,4 @@
+#! /bin/sh
+
+# Adds cmarrows when it is missing
+MPINPUTS=.:../cmarrows: make "$@"
diff --git a/doc/src/rulestheory.tex b/doc/src/rulestheory.tex
new file mode 100644
--- /dev/null
+++ b/doc/src/rulestheory.tex
@@ -0,0 +1,702 @@
+\documentclass[12pt]{article}
+
+% Much of this is taken from Deducing Security Goals From Shape
+% Analysis Sentences II
+
+\usepackage{url}
+\usepackage[matrix,arrow,curve]{xy}
+% \usepackage{hyperref}
+\usepackage{url}
+
+\usepackage{amssymb}
+\usepackage{amsmath}
+\usepackage{amsthm}
+\usepackage{color}
+
+\newtheorem{thm}{Theorem}
+\newcommand{\cpsa}{\textsc{cpsa}}
+\newcommand{\pvs}{\textsc{pvs}}
+\newcommand{\cn}[1]{\ensuremath{\operatorname{\mathsf{#1}}}}
+\newcommand{\dom}[1]{\ensuremath{\operatorname{\mathbf{#1}}}}
+\newcommand{\fn}[1]{\ensuremath{\operatorname{\mathit{#1}}}}
+\newcommand{\sdom}{\fn{dom}}
+\newcommand{\sran}{\fn{ran}}
+\newcommand{\vars}{\fn{Vars}}
+\newcommand{\lvars}{\fn{lvars}}
+\newcommand{\flvars}{\fn{flvars}}
+\newcommand{\seq}[1]{\ensuremath{\langle#1\rangle}}
+\newcommand{\enc}[2]{\ensuremath{\{\!|#1|\!\}_{#2}}}
+\newcommand{\invk}[1]{{#1}^{-1}}
+\newcommand{\inbnd}{\mathord -}
+\newcommand{\outbnd}{\mathord +}
+\newcommand{\neutral}{\ast\ast\ast}
+\newcommand{\alga}{\ast\ast\ast}
+\newcommand{\typ}{\mathbin:}
+\newcommand{\srt}[1]{\ensuremath{\mathsf{#1}}}
+\newcommand{\nat}{\ensuremath{\mathbb{N}}}
+\newcommand{\all}[1]{\mathop{\forall#1\mathpunct.}}
+\newcommand{\some}[1]{\mathop{\exists#1\mathpunct.}}
+\newcommand{\prefix}[2]{#1\dagger#2}
+\newcommand{\defd}{\mathord\downarrow}
+\newcommand{\inst}{\star}
+\newcommand{\init}{\fn{init}}
+\newcommand{\resp}{\fn{resp}}
+\newcommand{\form}{\mathcal{K}}
+\newcommand{\sent}{\mathcal{S}}
+\newcommand{\lang}{\mathcal{L}}
+\newcommand{\tr}{\ensuremath{{\pm\msg\,}^+}}
+\newcommand{\rl}{\fn{rl}}
+\newcommand{\skel}{\mathbb{A}}
+\newcommand{\skl}{\mathsf{k}}
+\newcommand{\nodes}{\ensuremath{\mathcal{N}}}
+\newcommand{\ztrands}{\ensuremath{\mathcal{Z}}}
+\newcommand{\evt}{\fn{evt}}
+%  This appears not to be used.
+%  (JDG)
+% \newcommand{\orig}{\mathcal{O}}
+\newcommand{\length}[1]{\ensuremath{|#1|}}
+\newcommand{\bun}{\ensuremath{\mathcal{B}}}
+\newcommand{\insta}{\mathsf{i}}
+\newcommand{\insts}{\mathcal{I}}
+\newcommand{\role}{\mathsf{r}}
+\newcommand{\pow}[1]{\wp(#1)}
+\newcommand{\sembrack}[1]{[\![#1]\!]}
+
+\newcommand{\morph}{\ensuremath{\mathbin{\cdot\joinrel\!\!\rightarrow}}}
+\newcommand{\orig}{\ensuremath{\cn{uniq-at}}}
+
+%  First:  Some alterations to the macros:
+
+%
+
+\newcommand{\alg}[1]{\ensuremath{\mathsf{#1}}}
+\newcommand{\msg}{\alg{Alg}}
+\newcommand{\atm}{\alg{BV}}
+
+\newcommand{\atom}{basic value}
+\newcommand{\atomic}{basic}
+\newcommand{\Indefart}{A}
+\newcommand{\indefart}{a}
+
+\newcommand{\trace}{\fn{tr}}
+\newcommand{\ssp}{\Sigma}
+
+\newcommand{\strands}{\sdom}
+\newcommand{\str}{\fn{str}}
+\newcommand{\fac}{\fn{fac}}
+
+\newcommand{\roleuo}{\fn{rl\_uniq}}
+\newcommand{\roleno}{\fn{rl\_non}}
+
+\newcommand{\run}{\fn{Bnd}}
+\newcommand{\tracec}{\fn{trc}}
+\newcommand{\tracei}{\fn{tri}}
+\newcommand{\nonatomic}{{message}}
+\newcommand{\mess}{\fn{msg}}
+
+\newcommand{\skelB}{\mathbb{B}}
+\newcommand{\skelC}{\mathbb{C}}
+\newcommand{\skeleton}{\fn{sk}}
+\newcommand{\skeletons}{\fn{skels}}
+\newcommand{\Uni}{\mathcal{D}}
+
+\newcommand{\sat}[3]{#1\models_{#2} #3}
+\newcommand{\unsat}[3]{#1\not\models_{#2} #3}
+\newcommand{\actuals}{\ensuremath{\fn{actl}}}
+\newcommand{\cf}{\ensuremath{\fn{cf}}}
+\newcommand{\hc}{\ensuremath{\fn{hc}}}
+\newcommand{\hcf}{\ensuremath{\fn{hcform}}}
+
+\newcounter{running}[section]
+\newenvironment{renumerate}{\begin{enumerate}%
+\setcounter{enumi}{\value{running}}}%
+{\setcounter{running}{\value{enumi}}\end{enumerate}}
+
+\newtheorem{definition}{Definition}
+\newtheorem{lemma}{Lemma}
+
+\newcommand{\instsJ}{\mathcal{J}}
+
+\newcommand{\Adv}{\ensuremath{\mathsf{Adv}}}
+
+%\institute{The MITRE Corporation}
+
+\title{Strand Spaces with Rules}
+\author{Joshua D.\ Guttman\and John D.\ Ramsdell}
+
+\begin{document}
+\maketitle
+
+\section{Introduction}
+This paper describes the formalism on which {\cpsa4} is built.
+Section~\ref{sec:strand spaces} describes an implementation-oriented
+specification of strand spaces.  It is based on the presentation for
+{\cpsa2} in~\cite{cpsaspec09}, but modified so as to reflect
+changes required by {\cpsa4}.  In particular, bundles and skeletons
+have been modified so as to include facts.
+
+Section~\ref{sec:rule language} presents the strand spaces rule
+language that is used for rewriting.  Protocols have been redefined
+so that they include both roles and rules.
+
+\paragraph{Notation.}
+
+A finite sequence~$f$ is a function from an initial segment of the
+natural numbers.  The length of~$f$ is~$\length{f}$, and $f=\seq{f(0),\ldots,
+  f(n-1)}$ for $n=\length{f}$.  When $f$ is a sequence, we will write
+$g\colon\length{f}\rightarrow S$ to mean that $\sdom(g)=\{i\colon0\le
+i<\length{f}\}$ and $\sran(g)=S$.  Thus, in effect we are regarding
+each natural number $i$ as being the set of natural numbers smaller
+than it, like the ordinals of ZF set theory.
+
+If~$S$ is a set, then~$S^\ast$ is the set of finite sequences
+over~$S$, and~$S^+$ is the non-empty finite sequences over~$S$.
+\iffalse
+The concatenation of sequences~$f_0$ and~$f_1$ is~$f_0\append f_1$.
+\fi
+The prefix of sequence~$f$ of length~$n$ is~$\prefix{f}{n}$.
+For partial function~$g$, $g(x)\defd$ asserts $g$ is defined at~$x$.
+
+\section{Implementation-Oriented Strand Spaces}\label{sec:strand spaces}
+
+This section describes the formalism on which {\cpsa} is based.  The
+parameters to this strand space theory are:
+\begin{enumerate}
+  \item a set of messages \msg.  The set of messages~{\msg} is the
+  carrier set (or domain) of a term algebra.
+  \item a set of {\atom}s $\atm\subset\msg$.  Keys and nonces are
+  examples of {\atom}s.
+  \item a \emph{carried by} relation
+  ${\sqsubseteq}\subseteq\msg\times\msg$, also known sometimes as the
+  \emph{ingredient} relation.  Intuitively, a message~$t_0$ is carried
+  by~$t_1$, written $t_0\sqsubseteq t_1$, if it is possible to
+  extract~$t_0$ from~$t_1$ for someone who knows the relevant
+  decryption keys.
+  \item a set of application specific predicate symbols $P$.
+\end{enumerate}
+
+\paragraph{Example Message Algebra.}
+The signature of one possible order-sorted~\cite{GoguenMeseguer92}
+message algebra is in Figure~\ref{fig:signature}.  The algebra is the
+simplification of the {\cpsa} message algebra used by the examples in
+this paper.  In an order-sorted algebra, each variable~$x$ has a
+unique sort~$S$.  The \emph{declaration} of~$x$ is $x\typ S$.
+
+The algebra of interest is the order-sorted quotient term algebra
+generated by a set of declarations~$X$.  The message algebra~$\msg_X$
+is the carrier set for sort~\srt{M}.  The set of {\atom}s~$\atm_X$ is
+the union of the carrier sets for sorts \srt{A}, \srt{S}, and \srt{D}.
+We write $t\typ S$ to say that term~$t$ is in the carrier set of
+sort~$S$.
+
+\begin{figure}
+$$\begin{array}{ll@{{}\colon{}}ll}
+\mbox{Sorts:}&
+\multicolumn{3}{l}{\mbox{\srt{M}, \srt{A}, \srt{S}, \srt{D}}}\\
+\mbox{Subsorts:}&
+\multicolumn{3}{l}{\mbox{$\srt{A}<\srt{M}$, $\srt{S}<\srt{M}$,
+    $\srt{D}<\srt{M}$}}\\
+\mbox{Operations:}&(\cdot,\cdot)&\srt{M}\times\srt{M}\to\srt{M}
+&\mbox{Pairing}\\
+&\enc{\cdot}{(\cdot)}&\srt{M}\times\srt{A}\to\srt{M}
+&\mbox{Asymmetric encryption}\\
+&\enc{\cdot}{(\cdot)}&\srt{M}\times\srt{S}\to\srt{M}
+&\mbox{Symmetric encryption}\\
+&(\cdot)^{-1}&\srt{A}\to\srt{A}
+&\mbox{Asymmetric key inverse}\\
+&\tau_0,\tau_1,\ldots&\srt{M}
+&\mbox{Tag constants}\\
+\mbox{Equations:}&\multicolumn{3}{l}{(x^{-1})^{-1}=x\mbox{ for $x\typ\srt{A}$}}
+\end{array}$$
+\caption{Simple Crypto Algebra Signature}\label{fig:signature}
+\end{figure}
+
+A variable has no intrinsic sort associated with it.  Variables occur
+in the context of a set of declarations, and a declaration for the
+variable specifies its sort.  The set of variables that occur in
+term~$t$ is $\vars(t)$.  A variable declared to be of sort~\srt{M} is
+called a \emph{{\nonatomic} variable}.
+
+A message~$t_0$ is \emph{carried by}~$t_1$, written $t_0\sqsubseteq
+t_1$, if~$t_0$ can be derived from~$t_1$ given the right set of keys.
+That is:  $\sqsubseteq$ is the smallest reflexive, transitive relation
+such that
+%
+$$t_0\sqsubseteq (t_0, t_1),\quad
+t_1\sqsubseteq (t_0, t_1),\quad\mbox{ and }\quad
+t_0\sqsubseteq\enc{t_0}{t_1}.$$
+
+\paragraph{Strand Spaces.}
+A run of a protocol is viewed as an exchange of messages by a finite
+set of local sessions of the protocol.  Each local session is called a
+\emph{strand}.  The behavior of a strand, its \emph{trace}, is a
+finite non-empty sequence of \emph{events}.  An \emph{event} is either
+a \emph{message transmission} or a \emph{message reception}.  An event
+transmitting $t\in\msg$ is written as~$\outbnd t$; and an event
+receiving message~$t$ is written as~$\inbnd t$.  If $e=\pm t$ is an
+event, then $\mess(e)=t$.  The set of traces over $\msg$ is
+$(\pm\msg)^+$.
+
+\begin{renumerate}
+  \item A message $t$ \emph{originates} in trace~$c$ at index~$i$ iff
+  $c(i)=+t_1$, $t\sqsubseteq t_1$, and for all $j<i$,
+  $t\not\sqsubseteq\mess(c(j))$.
+  \item A message $t$ is \emph{acquired} in trace~$c$ at index~$i$ iff
+  $c(i)=-t_1$, $t\sqsubseteq t_1$, and for all
+  $j<i$, $t$ does not occur in $\mess(c(j))$.
+  \item A variable $x$ \emph{appears} in trace~$c$ at index~$i$ iff
+    $x$ occurs in $\mess(c(i))$, and for all $j<i$, $x$ does not occur
+    in $\mess(c(j))$.
+  \item For algebra homomorphism~$\sigma$,
+%
+  \[\sigma\circ\seq{\pm t_0,\ldots,\pm t_{n-1}}=
+  \seq{\pm \sigma(t_0),\ldots,\pm \sigma(t_{n-1})},\]
+%
+  so that $\prefix{(\sigma\circ
+    c)}{h}=\sigma\circ(\prefix{c}{h})=\sigma\circ\prefix{c}{h}$.
+  \item For traces~$c_1$, $c_2$, $c_1\inst c_2=\sigma$ if
+    $\sigma(\prefix{c_2}{\length{c_1}})=c_1$, and the domain
+    of~$\sigma$ is the variables that occur in
+    $\prefix{c_2}{\length{c_1}}$.  When $c_1\inst c_2$ is defined,
+    $c_1$ is said to be an \emph{instance} of $c_2$.
+  \item A \emph{strand space} is a set $\Sigma$ of values, which we
+  will call \emph{the strands of $\Sigma$}, equipped with a
+  \emph{trace-of} operator
+  $\trace\colon\Sigma\rightarrow\tr$.
+\end{renumerate}
+%
+To avoid excess notation, we generally suppress $\trace$ and regard
+$\ssp$ as the strand space.  We write $\sdom(\ssp)$ for the underlying
+set of strands, and $\ssp(s)$ for $\trace(s)$ when $s\in\sdom(\ssp)$.
+
+The set of strands $\sdom(\ssp)$ that {\cpsa} uses are of a specific
+kind.  They are finite initial segments of the natural numbers, so
+that $\ssp$ is in fact a sequence of traces.
+
+%
+Message events occur at \emph{nodes} in a strand space.  For each
+strand~$s$, there is a node for every event in~$\ssp(s)$.
+\begin{renumerate}
+  \item The \emph{nodes} of strand space $\ssp$ are
+%
+  $$ \nodes(\ssp)=\{(s,i)\mid
+  s\in\strands(\ssp), i < \length{\ssp(s)}\}
+  $$
+  %
+  and the event at a node is $\evt_{\ssp}(s,i)=\ssp(s)(i)$.
+  \item The \emph{message at} a node $n$, written $\mess_{\ssp}(n)$,
+    is $\mess(\evt_{\ssp}(n))$.
+  \item The \emph{strand succession relation}~$\Rightarrow$ is defined
+  by
+%
+  $$(s,i)\Rightarrow(s,i+1)\mbox{ iff } s\in\strands(\ssp)\mbox{ and }
+  i<\length{\ssp(s)}-1.$$
+%
+  \item {\Indefart} {\atom}~$t$ is \emph{non-originating} \emph{in a
+    strand space}~$\ssp$, written $\fn{non}(\ssp,t)$, iff it
+    originates on no strand in~$\ssp$ and each variable in $t$ occurs
+    in $\ssp$.
+  \item {\Indefart} {\atom}~$t$ \emph{uniquely originates at node} $n$
+    \emph{in strand space}~$\ssp$, written $\fn{uniq}(\ssp,t,n)$,
+    iff $t$ originates at index $i$ in $s\in\sdom(\ssp)$, $n=(s,i)$,
+    and $t$ originates on no other strand in $\sdom(\ssp)$.
+  \item An atomic formula $p(t_1,\ldots,t_m)$ is a
+    \emph{fact of} $\ssp$ iff
+    \begin{enumerate}
+    \item $p\in P$ is a predicate symbol,
+    \item $t_i\in\msg\cup\sdom(\ssp)$, and
+    \item each variable that occurs in $t_i$ occurs in $\ssp$.
+    \end{enumerate}
+\end{renumerate}
+
+\begin{definition}[Bundle]\label{def:bundle} Let $\bun=(\ssp,\to,\omega)$, where
+  $\to\subseteq\nodes(\ssp)\times\nodes(\ssp)$ and $\omega$ is a set
+  of atomic formulas.  Relation $\to$ is called the
+  \emph{communication relation}.  $\bun$ is a \emph{bundle} iff:
+  \begin{enumerate}
+    \item $n_0\to n_1$ implies $\evt_{\ssp}(n_0)=\outbnd t$
+    and~$\evt_{\ssp}(n_1)=\inbnd t$ for some message~$t$;
+    \item $\evt_{\ssp}(n_1)=\inbnd t$ implies there exists a unique
+      $n_0$ such that $n_0\to n_1$;
+    \item $\nodes(\ssp),\to\cup\Rightarrow$ forms a well-founded
+      directed graph; and
+    \item for all $f\in\omega$, $f$ is a fact of $\ssp$.
+  \end{enumerate}
+  Let $\prec_{\bun}=(\to\cup\Rightarrow)^+$, the transitive closure of
+  the edges.
+%
+\end{definition}
+
+%
+The transitive closure $\prec_{\bun}$ is an irreflexive relation on
+$\nodes(\ssp)$.  This transitive, irreflexive relation specifies the
+causal ordering of nodes in a bundle.  A transitive irreflexive binary
+relation is also called a strict (partial) order.
+
+Since {\cpsa} manipulates only finite strand spaces, and acyclicity is
+equivalent to well-foundedness for finite graphs, {\cpsa} just checks
+acyclicity.  Thus, in $\bun=(\ssp,\to,\omega)$, the nodes form the vertices
+of a directed acyclic graph, whose edges represent communications
+$\rightarrow$ and strand succession $\Rightarrow$ in~$\ssp$.
+%
+\begin{lemma}
+  Let $\bun=(\ssp,\to,\omega)$ be a bundle.  Then $\prec_{\bun}$ is a
+  well-founded strict partial order.
+
+  If $S\subseteq\nodes(\ssp)$ is non-empty, then $S$ has
+  $\prec_{\bun}$-minimal members.
+\end{lemma}
+
+\begin{renumerate}
+  \item The strand space of bundle~{\bun} is written~$\str(\bun)$, its
+    communication relation is~$\to_\bun$, and the facts are
+    $\fac(\bun)$, so $\bun=(\str(\bun),\to_\bun,\fac(\bun))$.
+\end{renumerate}
+%
+
+\paragraph{Runs of Bare Protocols.}
+%
+In a run of a bare protocol, each strand is an instance of a role of
+that protocol.  We view adversarial strands as constrained by roles,
+just like compliant, non-adversarial strands.  Recall that when $f$ is
+a sequence, $g\colon\length{f}\rightarrow S$ means that
+$\sdom(g)=\{i\colon0\le i<\length{f}\}$.
+%
+\begin{definition}[Role, Bare Protocol]\label{def:role bare protocol}
+  ~
+  \begin{enumerate}
+    \item A \emph{role} is of the form $\role_X(c)$, where
+    \begin{description}
+      \item[$X$] is the \emph{parameters} of the role, the
+        declarations used to generate its algebra.
+      \item[$c\in\tr_X$] is the trace of the role;
+    \end{description}
+%
+    satisfying the following property:
+%
+%  A proto-role $\role(c,\nu,\upsilon)$ is a \emph{role} iff
+%
+    \begin{enumerate}
+      \item every {\nonatomic} variable is acquired on $c$, i.e.~its
+      first occurrence is in a reception event of $c$;
+    \end{enumerate}
+    \item The \emph{listener role} is
+      $\fn{lsn}=r_{\{x:\srt{M}\}}(\seq{\inbnd x, \outbnd x})$.
+    \item A \emph{bare protocol} is a set of roles that includes the
+      listener role.
+  \end{enumerate}
+\end{definition}
+%
+Notice that in one role, variable~$k$ may be declared to be of
+sort~\srt{A}, and in another, of sort~\srt{S}.
+%
+\begin{definition}\label{def:instance}
+  A strand $s\in\ssp$ is an \emph{instance} of a role $\role_Y(c)$ in
+  strand space $\ssp$ over $\msg_X$ iff the function
+  $\fn{inst}(\ssp,s,\role_Y(c))$ is defined, and
+  $\fn{inst}(\ssp,s,\role_Y(c)) = \sigma$ when
+  \begin{enumerate}
+    \item $\length{\ssp(s)}\leq\length{c}$;
+    \item $\sigma\in\msg_Y\to\msg_X$; and
+    \item $\sigma = \ssp(s)\inst c$.
+  \end{enumerate}
+\end{definition}
+%
+We use the variables $\rho,\rho',\rho_i$, etc., to range over roles.
+
+\begin{figure}
+  $$\begin{array}{r@{{}={}}ll}
+    \fn{create}&\seq{\outbnd x}&
+    \mbox{$x\typ\srt{A}$ or $x\typ\srt{S}$ or $x\typ\srt{D}$}\\
+    \fn{pair}&
+    \seq{\inbnd x,\inbnd y,\outbnd (x,y)}&
+    x,y\typ\srt{M}\\
+    \fn{sep}&
+    \seq{\inbnd (x,y),\outbnd x,\outbnd y}&
+    x,y\typ\srt{M}\\
+    \fn{aenc}&
+    \seq{\inbnd x,\inbnd k,\outbnd \enc{x}{k}}&
+    \mbox{$x\typ\srt{M}$ and $k\typ\srt{A}$}\\
+    \fn{adec}&
+    \seq{\inbnd \enc{x}{k},\inbnd\invk{k},\outbnd x}&
+    \mbox{$x\typ\srt{M}$ and $k\typ\srt{A}$}\\
+    \fn{senc}&
+    \seq{\inbnd x,\inbnd k,\outbnd \enc{x}{k}}&
+    \mbox{$x\typ\srt{M}$ and $k\typ\srt{S}$}\\
+    \fn{sdec}&
+    \seq{\inbnd \enc{x}{k},\inbnd k,\outbnd x}&
+    \mbox{$x\typ\srt{M}$ and $k\typ\srt{S}$}
+  \end{array}$$
+  \caption{Adversary Roles}\label{fig:adversary}
+\end{figure}
+
+\paragraph{Adversary Model.}
+The roles of adversarial behavior are in Figure~\ref{fig:adversary}.
+There are three \fn{create} roles, one for each basic sort.  In fact,
+the defining characteristic of {\indefart} {\atom} is that it denotes
+the set of messages the adversary can create out of thin air,
+consistent with origination assumptions.
+
+The adversary roles form the bare protocol $\Adv$.  We are always
+interested in bare protocols that contain these roles.  Thus, given a set
+$\Pi$ of roles that represent the legitimate, compliant behaviors of
+principals in some (real-world) bare protocol, we will refer to the roles
+of $\Pi$ as the \emph{regular} behaviors, and to strands that
+instantiate them as \emph{regular strands}.  We will be interested in
+the bundles that are executions of the ``penetrated'' bare protocol
+$\Pi^+=\Pi\cup\Adv$.
+%
+\begin{renumerate}
+%
+  \item A bundle~$\bun=(\ssp,\to,\omega)$ is a \emph{run of bare
+    protocol} $\Pi$ iff, for every $s\in\strands(\ssp)$, there is a
+    role $\rho\in\Pi^+=\Pi\cup\Adv$ such that
+    $\fn{inst}(\ssp,s,\rho)\defd$.
+%
+  \item $\run(\Pi)$ is the set of bundles that are runs of bare
+    protocol~$\Pi$.
+
+  \item For $\bun\in\run(\Pi)$, $\varrho\in\sdom(\str(\bun))\to\Pi^+$ is a
+    \emph{role assignment} if for every $s\in\sdom(\str(\bun))$,
+    $\fn{inst}(\str(\bun),s,\varrho(s))\defd$.
+
+\end{renumerate}
+%
+\begin{lemma}
+  If $\bun\in\run(\Pi)$ and $x$ is a {\nonatomic} variable, then
+  $x\not\in\vars(\bun)$.
+\end{lemma}
+%
+Ensuring this is the purpose of requiring that in each role, every
+{\nonatomic} variable in the trace is acquired.
+
+\paragraph{Skeletons.}
+
+A \emph{skeleton} represents part of the regular behavior in a set of
+bundles.  It consists of a strand space, a partial ordering on the
+nodes, assumptions about uncompromised keys and about freshly
+generated {\atom}s, and a set of facts.
+
+\begin{definition}\label{def:skeleton}
+  $\skel=\skl_X(\Pi,\ssp,\prec,\nu,\upsilon,\omega)$ is a
+  \emph{skeleton of} bare protocol $\Pi$ over declarations $X$ iff:
+%
+  \begin{enumerate}
+    \item A variable is declared in~$X$ iff it occurs in $\ssp$.
+    \item For all $s<\length{\ssp}$, there is some $\rho\in\Pi$ such
+      that $\fn{inst}(\ssp,s,\rho)\defd$;
+    \item $\prec$ is a strict (partial) order on $\nodes(\ssp)$;
+    \item for all $t\in\nu$, (i) $t\in\atm_X$; and (ii) for all
+    $n\in\nodes(\ssp)$, $t\not\sqsubseteq\mess(n)$;
+    \item for all $(t,n)\in\upsilon$, (i) $t\in\atm_X$; (ii) for some
+      $n=(s,i)$, $t$ originates in $\ssp(s)$ at~$i$; and (iii) $t$
+      originates at no other node in $\nodes(\ssp)$.
+    \item for all $f\in\omega$, $f$ is a fact of $\ssp$.
+  \end{enumerate}
+%
+\end{definition}
+
+We regard skeletons as giving us \emph{partial information} about a
+set of bundles; these are the executions that it is compatible with.
+This notion of compatibility is determined by the the notion of a
+homomorphism, or information-preserving map between skeletons.
+
+\begin{definition}[Homomorphism]\label{def:homomorphism}
+  Let $\skel_0=\skl_X(\Pi,\ssp_0,\prec_0,\nu_0,\upsilon_0,\omega_0)$ and
+  $\skel_1=$ $\skl_Y(\Pi,\ssp_1,\prec_1,\nu_1,\upsilon_1,\omega_1)$ be
+  skeletons of bare protocol $\Pi$.
+
+  $H=(\phi,\sigma)$ is a \emph{skeleton homomorphism}, written
+  $H\colon \skel_0\morph \skel_1$, if~$\phi$ and~$\sigma$ are maps
+  with the following properties:
+  \begin{enumerate}
+    \item $\phi\colon\strands(\ssp_0)\to\strands(\ssp_1)$ maps strands
+    of~$\skel_0$ into those of~$\skel_1$.  We require
+    $\length{\ssp_0(s)}\le\length{\ssp_1(\phi(s))}$, and we regard
+    $\phi$ also as mapping nodes by the rule
+    $\phi((s,i))=(\phi(s),i)$;
+    \item $\sigma\colon\msg_X\to\msg_Y$ is a message algebra homomorphism;
+    \item for all $n\in\nodes(\ssp_0)$,
+    $\sigma(\evt_{\ssp_0}(n))=\evt_{\ssp_1}(\phi(n))$;
+    \item $n_0\prec_0 n_1$ implies $\phi(n_0)\prec_1\phi(n_1)$;
+    \item $\sigma(\nu_0)\subseteq \nu_1$;
+    \item\label{item:orig:jdg} $(t,n)\in \upsilon_0$ implies
+      $(\sigma(t), \phi(n))\in \upsilon_1$; and
+    \item $p(t_1,\ldots,t_m)\in\omega_0$ implies
+      $p(\delta(t_1),\ldots,\delta(t_m))\in\omega_1$, where
+      \[\delta(t)=\left\{
+      \begin{array}{ll}
+        \sigma(t)&\mbox{if $t\in\msg$}\\
+        \phi(t)&\mbox{if $t\in\sdom{\ssp}$.}
+      \end{array}\right.
+      \]
+
+  \end{enumerate}
+%
+\end{definition}
+%
+Property~\ref{item:orig:jdg} says the node at which {\indefart}
+{\atom} is declared to be uniquely originating is preserved by
+homomorphisms.
+%
+\begin{definition}[Skeleton of Bundle]\label{def:homomorphism to bundle}
+  ~
+  \begin{enumerate}
+    \item Suppose that $\bun$ is a bundle of bare protocol
+      $\Pi^+=\Pi\cup\Adv$, and
+      $\skel=\skl_X(\Pi,\ssp,\prec,\nu,\upsilon,\omega)$ is a $\Pi$-skeleton.
+      $\skel$ is a skeleton of $\bun$, written
+      $\skel\in\skeletons(\bun)$, iff the strands of $\bun$ can be
+      permuted to form bundle $\overline{\bun}$ such that
+      $\ssp$ is a prefix of $\str(\overline{\bun})$, and:
+      \begin{enumerate}
+      \item the strands not in $\ssp$ are adversary strands;
+      \item ${\prec}={\prec_{\overline\bun}\cap(\nodes(\ssp)\times\nodes(\ssp))}$;
+      \item $\nu=\{t\mid\fn{non}(\overline\bun,t)$ and each variable in~$t$
+        occurs in $\ssp\}$;
+      \item $\upsilon=\{(t,n)\mid\fn{uniq}(\overline\bun,t,n)
+        \land n\in\nodes(\ssp)\}$; and
+      \item $\omega=\{f\in\fac(\overline\bun)\mid
+        \mbox{$f$ is a fact of $\ssp$}\}$.
+    \end{enumerate}
+    \item $\sembrack{\skel}=\{\bun\colon\some{\skelB}\some{H}
+    \skelB\in\skeletons(\bun)\land H\colon \skel\morph\skelB\}$.
+
+  \end{enumerate}
+
+\end{definition}
+
+\section{Strand Spaces Rule Language}\label{sec:rule language}
+
+This section describes an order-sorted first-order language intimately
+tied to strand spaces with protocols.  Given a bare protocol $\Pi$,
+the strand spaces rule language is written $\lang(\Pi)$.  The
+signature of $\lang(\Pi)$ includes the sorts, sort orderings, and the
+function symbols of the protocol's message algebra signature, such as
+the one in Figure~\ref{fig:signature}.  It also includes the strand
+sort $\srt{Z}$, and no other additions.
+
+The predicates in the signature of $\lang(\Pi)$ will now be described.
+For each role $\role_X(c)\in\Pi$, there are height and parameter
+predicates.  There are $\length{c}$ unary height predicates
+$\Pi[\role_X(c),h]\typ\srt{Z}$ with $1\leq h \leq\length{c}$.
+Relative to skeleton~$\skel$, $\Pi[\rho,h](z)$ asserts that strand~$z$
+in~$\skel$ is an instance of~$\rho$ and has a height of at least~$h$.
+For each parameter $x\typ S\in X$, there is a binary parameter
+predicate $\Pi[\role_X(c),x]\typ\srt{Z}\times S$.  Relative to
+skeleton~$\skel$, $\Pi[\rho,x](z,t)$ asserts that strand~$z$
+in~$\skel$ is an instance of~$\rho$ in which~$x$ is instantiated
+as~$t$.  If $x$ appears in $c$ and index $i$, the height of strand $z$
+must be greater than~$i$.
+
+For each base sort~$B$, there are unary predicates $\cn{non}\colon B$
+and $\cn{uniq}\colon B$.  $\cn{non}(t)$ asserts~$t$ is non-originating
+in~$\skel$ and $\cn{uniq}(t)$ asserts~$t$ uniquely originates in~$\skel$.
+
+Let $m$ be the length of the longest role in~$\Pi$.  There are $m^2$
+precedence predicates $\cn{prec}[i,j]:\srt{Z}\times\srt{Z}$ for $0\leq
+i,j< m$.  $\cn{prec}[i,j](x,y)$ asserts that node $(x,i)$ is before
+node $(y,j)$ in~$\skel$.  There are $3m$ origin predicates
+$\cn{uniq-at}[i]:B\times\srt{Z}$, with $0\leq i< m$ and $B$ as before.
+$\cn{uniq-at}[i](t,z)$ asserts that~$t$ uniquely originates in~$\skel$
+at node $(z,i)$.  For each fact predicate symbol $p$,
+$\cn{fact}[p](t_1,\ldots,t_m)$ asserts that $p(t_1,\ldots,t_m)$ is a
+fact of $\skel$.  Finally, equality is binary.
+
+To improve the readability of formulas to follow, we write
+$\cn{prec}(x,i,y,j)$ for $\cn{prec}[i,j](x,y)$, $\cn{uniq-at}(t,z,i)$
+for $\cn{uniq-at}[i](t,z)$, and $\cn{fact}(p,t_1,\ldots,t_m)$ for
+$\cn{fact}[p](t_1,\ldots,t_m)$.
+
+\paragraph{Semantics of Strand Space Rule Formulas.}
+
+When formula~$\Phi$ is satisfied in skeleton~$\skel$ with order-sorted
+variable assignment $\alpha$, we write $\skel,\alpha\models\Phi$.  For
+$x:S\in X$, $\alpha(x)$ is in the carrier set of $\msg_X$ for
+sort~$S$.  For $x:\srt{Z}$, $\alpha(x)\in\sdom(\ssp)$.  We
+write~$\bar\alpha$ when~$\alpha$ is extended to terms in the obvious
+way.  When sentence~$\Phi$ is satisfied in skeleton~$\skel$, we write
+$\skel\models\Phi$.  The semantics of atomic formulas is given in
+Figure~\ref{fig:semantics}.
+
+\begin{figure}
+  Let $\skel=\skl_X(\Pi,\ssp,\prec,\nu,\upsilon,\omega)$.
+  \begin{itemize}
+  \item $\skel,\alpha\models\Pi[\role_X(c),h](z)$ iff
+    $\length{\ssp(s)}\geq h$ and
+    $\prefix{\ssp(s)}{h}\inst c\defd$, where $s=\alpha(z)$.
+  \item $\skel,\alpha\models P[\role_X(c),x](z,t)$ iff
+    $\length{\ssp(s)}\geq h$,
+    $\prefix{\ssp(s)}{h}\inst c=\sigma$, and
+    $\sigma(x)=\bar\alpha(t)$,
+    where $s=\alpha(z)$, $x$ appears in $c$ at index $i$, and $h=i+1$.
+  \item $\skel,\alpha\models\cn{prec}(x,i,y,j)$ iff
+    $(\alpha(x),i)\prec(\alpha(y),j)$.
+  \item $\skel,\alpha\models\cn{non}(t)$ iff $\bar\alpha(t)\in\nu$.
+  \item $\skel,\alpha\models\cn{uniq}(t)$ iff
+    ($\bar\alpha(t),n)\in\upsilon$ for some node $n$.
+  \item $\skel,\alpha\models\cn{uniq-at}(t,z,i)$ iff
+    $(\bar\alpha(t),(\alpha(z),i))\in\upsilon$.
+  \item $\skel,\alpha\models\cn{fact}(p,t_1,\ldots,t_m)$ iff
+    $p(\bar\alpha(t_1),\ldots,\bar\alpha(t_m))\in\omega$.
+  \item $\skel,\alpha\models y=z$ iff $\bar\alpha(y)=\bar\alpha(z)$.
+  \end{itemize}
+  \caption{Strand Space Rule Formula Semantics}\label{fig:semantics}
+\end{figure}
+
+\paragraph{Rule Syntax.}
+
+Given a bare protocol $\Pi$, a rule is an order-sorted first-order
+sentence in $\lang(\Pi)$ with a restricted syntax.  A rule is an
+implication in which the antecedent is a conjunction of atomic
+formulas, and the conclusion is a disjunction of possibly
+existentially quantified conjunctions of atomic formulas.
+
+\begin{definition}[Rule]\label{def:rule}
+  A \emph{rule} is a sentence of the form
+  \[\all{\vec{x}}\Phi\supset\bigvee_i\some{\vec{y}_i}\Psi_i,\mbox{
+    where}\]
+  \begin{enumerate}
+  \item $\Phi$ and $\Psi_i$ are conjunctions of atomic formulas,
+  \item each variable that occurs free in $\vee_i\some{\vec{y}_i}\Psi_i$,
+    occurs in $\Phi$,
+  \item each strand variable in $\vec{y}_i$ occurs in a height formula
+    in $\Psi_i$, and
+  \item each non-strand variable in $\vec{y}_i$ occurs in a parameter
+    formula in $\Psi_i$.
+  \end{enumerate}
+\end{definition}
+
+\begin{definition}[Protocol]\label{def:protocol}
+  $\Upsilon=(\Pi,A)$ is a \emph{protocol} iff $\Pi$ is a bare protocol
+  and $A$ is a set of rules in $\lang(\Pi)$.
+\end{definition}
+
+\begin{definition}[Run of Protocol]\label{def:run of protocol}
+  Bundle $\bun$ is a \emph{run of protocol} $\Upsilon=(\Pi,A)$ iff
+  $\bun$ is a run of bare protocol $\Pi$ and for all
+  $\skel\in\skeletons(\bun)$ and rules $\Phi\in A$,
+  $\skel\models\Phi$.
+\end{definition}
+
+The strand spaces rule language is a descendent of the security goal
+language~\cite{Guttman14}.  They are very similar, but differ in several
+ways.
+
+\begin{enumerate}
+\item Pairing and encryption is purposely omitted from the security
+  goal language.
+\item The security goal language has variables that range over nodes
+  rather than strands as is the case for the strand spaces rule
+  language.
+\item Node variables that occur in the antecedent of a security goal
+  sentence occur in a height predicate in the antecedent.
+\item Non-node variables that occur in the antecedent of a sentence occur
+  in a parameter predicate in the antecedent.
+\item Facts are not part of the security goal language.
+\end{enumerate}
+
+\bibliography{cpsa}
+\bibliographystyle{plain}
+
+\end{document}
diff --git a/doc/src/strands.mp b/doc/src/strands.mp
new file mode 100644
--- /dev/null
+++ b/doc/src/strands.mp
@@ -0,0 +1,129 @@
+% Strand macros
+
+%% John D. Ramsdell--May 2008,
+%% The MITRE Corporation, Bedford, MA.
+
+% For simple drawings, use the strand macro.
+
+% Use these macros when drawing strand edges.  The cmstrands package
+% redefines these two macros.
+
+% Draw a message edge
+def drawmsg(expr p) =
+  drawarrow p;
+enddef;
+
+% Draw a strand succession edge.  The arrow head is drawn, not filled.
+% Based on "Hints and Tricks" in TUGboat, Volume 19 (1998), No. 2, by
+% Jeremy Gibbons.
+def drawsucc(expr p) =
+  draw arrowhead p;
+  path q;
+  q := fullcircle scaled (2*ahlength)
+    shifted (point (length p) of p);
+  numeric tp, tq;
+  (tp,tq) = p intersectiontimes q;
+  draw subpath (0, tp) of p;
+enddef;
+
+% Draw a message edge with a dashed line.  Used sometimes for when the
+% source and the distination message differ.
+def drawdashedmsg(expr p) =
+  drawarrow p dashed evenly scaled 3;
+enddef;
+
+% Strand drawing macros
+
+% Box the nodes of a strand.  The origin of the strand is the center
+% of the last strand node.  The name is a picture for the first node,
+% and node is a picture for the successive nodes.
+vardef boxstrand@#(expr height, origin, name, node) =
+  boxit.@#1(name);
+  for i = 2 upto height:
+    boxit.@#[i](node);
+    xpart @#[i-1].s = xpart @#[i].n;
+  endfor;
+  @#[height].c = origin;
+enddef;
+
+% Space a pair of strand nodes using the given height and separation
+% delta.
+vardef spacestrand@#(expr pos, delta) =
+  ypart @#[pos].s = delta + ypart @#[pos+1].n;
+enddef;
+
+% Layout strand by making the distance been successive nodes the given
+% separation delta.
+vardef layoutstrand@#(expr height, delta) =
+  for i = 1 upto height - 1:
+    spacestrand@#(i, delta);
+  endfor;
+enddef;
+
+% Link the nodes of a strand.
+vardef linkstrand@#(expr height) =
+  for i = 2 upto height:
+    drawsucc(@#[i-1].s -- @#[i].n);
+  endfor;
+enddef;
+
+% Draw a strand with equally spaced nodes.  The origin of the strand
+% is the center of the last strand node.  The the distance between
+% successive nodes is delta.  The name is a picture for the first
+% node, and node is a picture for the successive nodes.
+
+% A strand is drawn bottom up because the size of the label in the
+% first box may vary.
+
+vardef strand@#(expr height, origin, delta, name, node) =
+  boxstrand@#(height, origin, name, node);
+  layoutstrand@#(height, delta);
+  for i = height downto 1:
+    draw pic @#[i];
+  endfor;
+  linkstrand@#(height);
+enddef;
+
+% layout a strand but don't draw it.
+vardef phantomstrand@#(expr height, origin, delta, name, node) =
+  boxstrand@#(height, origin, name, node);
+  layoutstrand@#(height, delta);
+  for i = height downto 1:
+    fixsize(@#[i]);
+  endfor;
+enddef;
+
+% Event macros used while displaying roles.
+
+% Draw an inbound term at a given strand position.
+% The width is the length of the first arrow.
+vardef inbnd@#(expr pos, width, term) =
+  pair d;
+  d = (xpart @#[1].e + width, ypart @#[pos].e);
+  drawmsg(d .. @#[pos].e);
+  label.rt(term, d);
+enddef;
+
+% Draw an outbound term at a given strand position.
+% The width is the length of the first arrow.
+vardef outbnd@#(expr pos, width, term) =
+  pair d;
+  d = (xpart @#[1].e + width, ypart @#[pos].e);
+  drawmsg(@#[pos].e .. d);
+  label.rt(term, d);
+enddef;
+
+% Reverse versions:
+vardef rinbnd@#(expr pos, width, term) =
+  pair d;
+  d = (xpart @#[1].w - width, ypart @#[pos].w);
+  drawmsg(d .. @#[pos].w);
+  label.lft(term, d);
+enddef;
+
+vardef routbnd@#(expr pos, width, term) =
+  pair d;
+  d = (xpart @#[1].w - width, ypart @#[pos].w);
+  drawmsg(@#[pos].w .. d);
+  label.lft(term, d);
+enddef;
diff --git a/doc/src/termtree.mp b/doc/src/termtree.mp
new file mode 100644
--- /dev/null
+++ b/doc/src/termtree.mp
@@ -0,0 +1,60 @@
+filenametemplate "%j-%c.mps";
+
+verbatimtex
+\documentclass[12pt]{article}
+\newcommand{\enc}{\ensuremath{\mathsf{enc}}}
+\newcommand{\pair}{\ensuremath{\mathsf{pair}}}
+\newcommand{\pubk}{\ensuremath{\mathsf{pubk}}}
+%\newcommand{\enc}{\ensuremath{\{\!|\cdot|\!\}_{(\cdot)}}}
+%\newcommand{\pair}{\ensuremath{(\cdot,\cdot)}}
+%\newcommand{\pubk}{\ensuremath{K_{(\cdot)}}}
+\begin{document}
+etex
+
+beginfig(0);
+  h = -1cm;
+  w = 1cm;
+  z0 = origin;
+  z1 = z0 + (-1.5w, h);
+  z2 = z1 + (-.5w, h);
+  z3 = z1 + (.5w, h);
+  z4 = z3 + (0, h);
+  z5 = z0 + (1.5w, h);
+  z6 = z5 + (-w, h);
+  z7 = z6 + (-.5w, h);
+  z8 = z6 + (.5w, h);
+  z9 = z8 + (0, h);
+  z10 = z5 + (w, h);
+  z11 = z10 + (0, h);
+
+  draw z0--z1;
+  draw z1--z2;
+  draw z1--z3;
+  draw z3--z4;
+  draw z0--z5;
+  draw z5--z6;
+  draw z6--z7;
+  draw z6--z8;
+  draw z8--z9;
+  draw z5--z10;
+  draw z10--z11;
+
+  pickup pencircle scaled 4pt;
+  dotlabel.rt(btex ~~\pair etex, z0);
+  dotlabel.rt(btex ~~\enc etex, z1);
+  dotlabel.rt(btex ~$x$ etex, z2);
+  dotlabel.rt(btex ~\pubk etex, z3);
+  dotlabel.rt(btex ~$a$ etex, z4);
+  dotlabel.rt(btex ~\enc etex, z5);
+  dotlabel.rt(btex ~\enc etex, z6);
+  dotlabel.rt(btex ~$x$ etex, z7);
+  dotlabel.rt(btex ~\pubk etex, z8);
+  dotlabel.rt(btex ~$a$ etex, z9);
+  dotlabel.rt(btex ~\pubk etex, z10);
+  dotlabel.rt(btex ~$b$ etex, z11);
+endfig;
+
+verbatimtex
+\end{document}
+etex
+bye;
diff --git a/doc/woolam.scm b/doc/woolam.scm
new file mode 100644
--- /dev/null
+++ b/doc/woolam.scm
@@ -0,0 +1,26 @@
+(herald "Woo-Lam Protocol")
+
+(defprotocol woolam basic
+  (defrole init (vars (a s name) (n text))
+    (trace
+     (send a)
+     (recv n)
+     (send (enc n (ltk a s))))
+    (non-orig (ltk a s)))
+  (defrole resp (vars (a s b name) (n text))
+    (trace
+     (recv a)
+     (send n)
+     (recv (enc n (ltk a s)))
+     (send (enc a (enc n (ltk a s)) (ltk b s)))
+     (recv (enc a n (ltk b s))))
+    (non-orig (ltk b s))
+    (uniq-orig n))
+  (defrole serv (vars (a s b name) (n text))
+    (trace
+     (recv (enc a (enc n (ltk a s)) (ltk b s)))
+     (send (enc a n (ltk b s))))))
+
+(defskeleton woolam (vars (n text) (a s name))
+  (defstrand resp 5 (a a) (s s))
+  (non-orig (ltk a s)))
diff --git a/doc/yahalom.scm b/doc/yahalom.scm
new file mode 100644
--- /dev/null
+++ b/doc/yahalom.scm
@@ -0,0 +1,34 @@
+(herald "Yahalom Protocol with Forwarding Removed" (bound 10))
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b c name) (n-a n-b text) (k skey))
+    (trace (send (cat a n-a))
+	   (recv (enc b k n-a n-b (ltk a c)))
+	   (send (enc n-b k))))
+  (defrole resp
+    (vars (b a c name) (n-a n-b text) (k skey))
+    (trace (recv (cat a n-a))
+	   (send (cat b (enc a n-a n-b (ltk b c))))
+	   (recv (enc a k (ltk b c)))
+	   (recv (enc n-b k))))
+  (defrole serv
+    (vars (c a b name) (n-a n-b text) (k skey))
+    (trace (recv (cat b (enc a n-a n-b (ltk b c))))
+	   (send (enc b k n-a n-b (ltk a c)))
+	   (send (enc a k (ltk b c))))
+    (uniq-orig k)))
+
+(defskeleton yahalom
+  (vars (a b c name) (n-b text))
+  (defstrand resp 4 (a a) (b b) (c c) (n-b n-b))
+  (non-orig (ltk b c) (ltk a c))
+  (uniq-orig n-b))
+
+;;; Ensure encryption key remains secret.
+(defskeleton yahalom
+  (vars (a b c name) (n-b text) (k skey))
+  (defstrand resp 4 (a a) (b b) (c c) (n-b n-b) (k k))
+  (deflistener k)
+  (non-orig (ltk b c) (ltk a c))
+  (uniq-orig n-b))
diff --git a/fixperms b/fixperms
--- a/fixperms
+++ b/fixperms
@@ -8,4 +8,4 @@
 #
 
 chmod +x cpsatst tst/checktst tst/updatetst tst/cpsagraphtst
-chmod +x mkghci src/ghcmemlimit src/split.py
+chmod +x mkghci src/ghcmemlimit src/split.py src/lastlabel.py
diff --git a/license.txt b/license.txt
--- a/license.txt
+++ b/license.txt
@@ -1,12 +1,12 @@
 
-			 CPSA3 LICENSE NOTICE
+			 CPSA LICENSE NOTICE
 
-This software was produced for the U. S. Government under Contract
-No. W15P7T-04-C-D199, and is subject to the Rights in Noncommercial
-Computer Software and Noncommercial Computer Software Documentation
-Clause 252.227-7014 (JUN 1995).
+This software was produced for the U. S. Government under Basic
+Contract No. W15P7T-13-C-A802, and is subject to the Rights in
+Noncommercial Computer Software and Noncommercial Computer Software
+Documentation Clause 252.227-7014 (FEB 2012)
 
-Copyright (c) 2013 The MITRE Corporation.
+Copyright (c) 2009 The MITRE Corporation.
 All Rights Reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/mkghci b/mkghci
--- a/mkghci
+++ b/mkghci
@@ -1,9 +1,9 @@
 #! /bin/sh
-autogen=`find . -name autogen -type d | grep '/cpsa/'`
+autogen=`find . -name autogen -type d | grep '/cpsa4/'`
 
 echo ':set' "-isrc:$autogen"
 echo ':set -fbreak-on-error'
 echo ':set' args ${1:-bug.scm}
-echo '-- ghci src/CPSA/Main.hs'
+echo '-- ghci -fghci-hist-size=200 src/CPSA/Main.hs'
 echo '-- :trace main'
 
diff --git a/setup.bat b/setup.bat
--- a/setup.bat
+++ b/setup.bat
@@ -1,3 +1,3 @@
-cabal configure
-cabal build
-cabal install
+cabal configure 
+cabal build
+cabal install
diff --git a/src/CPSA/Algebra.hs b/src/CPSA/Algebra.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Algebra.hs
@@ -0,0 +1,3015 @@
+-- Diffie-Hellman Algebra implementation
+
+-- This module implements a version of Diffie-Hellman in which
+-- exponents form a free Abelian group.  It uses the basis elements as
+-- atoms principle.
+
+-- To support security goals, the message algebra has been augmented
+-- with support for variables of sort node and pairs of integers.  The
+-- constructor D is used as N is taken for numbers in S-Expressions.
+
+-- Copyright (c) 2021 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+--------------------------------------------------------------------
+
+-- The module implements a many-sorted algebra, but is used as an
+-- order-sorted algebra.  It exports a name, and the origin used to
+-- generate variables.
+
+-- The Diffie-Hellman Order-Sorted Signature is
+
+-- Sorts: mesg, text, data, name, skey, akey, tag,
+--        string, base, expt, and rndx
+--
+-- Subsorts: text, data, name, skey, akey,
+--           base, expt < mesg and rndx < expt
+--
+-- Operations:
+--   cat : mesg X mesg -> mesg               Pairing
+--   enc : mesg X mesg -> mesg               Encryption
+--   hash : mesg -> mesg                     Hashing
+--   string : mesg                           Tag constants
+--   ltk : name X name -> skey               Long term shared key
+--   bltk : name X name -> skey              Bidirectional long-term key
+--   pubk : name -> akey                     Public key of principal
+--   pubk : string X name -> akey            Tagged public key of principal
+--   invk : akey -> akey                     Inverse of asymmetric key
+--   gen : base                              DH generator
+--   exp : base X expt -> base               Exponentiation
+--   mul : expt X expt -> expt               Group operation
+--   rec : expt -> expt                      Group inverse
+--   one : expt                              Group identity
+--
+-- Atoms: messages of sort text, data, name, skey, akey, and rndx, and
+--        messages of the form (exp (gen) x) where x is of sort rndx.
+
+-- A free Abelian group has a set of basis elements, and the sort rndx
+-- is the sort for basis elements.  Limiting the atoms associated with
+-- an exponent to basis elements is the basis elements as atoms
+-- principle.  This principle enables CPSA to correctly handle
+-- origination assumptions.
+
+-- The implementation exploits the isomorphism between order-sorted
+-- algebras and many-sorted algebras by adding inclusion operations to
+-- produce an equivalent Diffie-Hellman Many-Sorted Signature.  There
+-- is an inclusion operation for each subsort of mesg.  Diffie-Hellman
+-- exponents are handled specially using a canonical representation as
+-- monomials.
+
+-- Sorts: mesg, text, data, name, skey, akey,
+--        string, base, expt, and rndx
+--
+-- Operations:
+--   cat : mesg X mesg -> mesg               Pairing
+--   enc : mesg X mesg -> mesg               Encryption
+--   hash : mesg -> mesg                     Hashing
+--   string : mesg                           Tag constants
+--   ltk : name X name -> skey               Long term shared key
+--   bltk : name X name -> skey              Bidirectional long-term key
+--   pubk : name -> akey                     Public key of principal
+--   pubk : string X name -> akey            Tagged public key of principal
+--   invk : akey -> akey                     Inverse of asymmetric key
+--   text : text -> mesg                     Sort text inclusion
+--   data : data -> mesg                     Sort date inclusion
+--   name : name -> mesg                     Sort name inclusion
+--   skey : skey -> mesg                     Sort skey inclusion
+--   akey : akey -> mesg                     Sort akey inclusion
+--   base : base -> mesg                     Sort base inclusion
+--
+--  A message of sort expt, a monomial, is represented by a map from
+--  identifiers to descriptions.  A description is a pair consisting
+--  of a flag saying if the variable is of sort rndx or expt, and a
+--  non-zero integer.  For t of sort expt, the monomial associated
+--  with t is
+--
+--      x1 ^ c1 * x2 ^ c2 * ... * xn ^ cn
+--
+-- for all xi in the domain of t and t(xi) = (_, ci).
+
+-- In both algebras, invk(invk(t)) = t for all t of sort akey,
+-- (exp h (one)) = h, (exp (exp h x) y) = (exp h (mul x y)), and
+-- the Abelian group axioms hold.
+
+{-# LANGUAGE CPP #-}
+
+#define CHECK_CANONICAL
+
+module CPSA.Algebra (name, alias,
+
+    Gen,
+    origin,
+    gmerge,
+    clone,
+    loadVars,
+    basePrecursor,
+    baseRndx,
+    newVar,
+    newVarDefault,
+    varName,
+
+    Term,
+    isVar,
+    isAcquiredVar,
+    isObtainedVar,
+    isAtom,
+    isStrdVar,
+    isChan,
+    isLocn,
+    isIndxVar,
+    isIndxConst,
+    intOfIndex,
+    termsWellFormed,
+    occursIn,
+    foldVars,
+    foldCarriedTerms,
+    carriedBy,
+    constituent,
+    decryptionKey,
+    invertKey,
+    decompose,
+    buildable,
+    components,
+    encryptions,
+    escapeSet,
+    loadTerm,
+    loadLocnTerm,
+    indxOfInt, strdOfInt,
+    isNum,
+    subNums,
+    consts,
+    isBase,
+    isExpr,
+    isVarExpr,
+    isRndx,
+    exprVars,
+    VarListSpec,
+
+    Place (..),
+    places,
+    carriedPlaces,
+    carriedRelPlaces,
+    replace,
+    ancestors,
+    placeIsPrefixOf,
+    placeStripPrefix,
+
+    Subst,
+    emptySubst,
+    destroyer,
+    disjointDom,
+    substitute,
+    unify,
+    compose,
+    absentSubst,
+    substDomainWithin, 
+
+    Env,
+    emptyEnv,
+    instantiate,
+    matched,
+    match,
+    unmatchedVarsWithin,
+    envsAgreeOutside,
+    substitution,
+    strandBoundEnv,
+    reify,
+    substUpdate,
+    strdMatch,
+    strdLookup,
+    strdUpdate,
+    indxLookup,
+    indxUpdate,
+
+    isLocnMsg,
+    locnMsgPayload,
+    locnMsgPoint,
+
+    Context,
+    emptyContext,
+    addToContext,
+    displayVars,
+    displayTerm,
+    displayTermNoPt,
+    notPt,
+    displayEnv, displayEnvSansPts,
+    displaySubst,
+    varListSpecOfVars) where
+
+import Control.Monad -- (foldM)
+import qualified Data.List as L
+import qualified Data.Set as S
+import Data.Set (Set)
+import qualified Data.Map as M
+import Data.Map (Map)
+import Data.Char (isDigit)
+import CPSA.Lib.Utilities (replaceNth, adjoin, subset, assertError)
+import CPSA.Lib.SExpr (SExpr(..), Pos, annotation)
+import CPSA.Signature (Sig)
+import qualified CPSA.Signature as Sig
+
+{--
+import System.IO.Unsafe
+z :: Show a => a -> b -> b
+z x y = unsafePerformIO (print x >> return y)
+
+zz :: Show a => a -> a
+zz x = z x x
+--}
+
+-- The default name for the algebra handled by this module
+-- One gets Diffie Hellman features too.
+name :: String
+name = "basic"
+
+-- The name used when Diffie Hellman features are explictly requested
+alias :: String
+alias = "diffie-hellman"
+
+-- An identifier is a variable without any information about its sort
+
+newtype Id = Id (Integer, String) deriving Show
+
+-- The integer distinguishes an identifier, the string is for printing.
+
+instance Eq Id where
+    (Id (x, _)) == (Id (x', _)) = x == x'
+
+instance Ord Id where
+    compare (Id (x, _)) (Id (x', _)) = compare x x'
+
+idName :: Id -> String
+idName (Id (_, name)) = name
+
+-- Counter used for generating fresh identifiers.
+
+newtype Gen = Gen (Integer) deriving (Show, Eq)
+
+origin :: Gen
+origin = Gen (0)
+
+gmerge :: Gen -> Gen -> Gen
+gmerge (Gen i) (Gen j) = Gen $ max i j
+
+freshId :: Gen -> String -> (Gen, Id)
+freshId (Gen i) name = (Gen (i + 1), Id (i, name))
+
+cloneId :: Gen -> Id -> (Gen, Id)
+cloneId gen x = freshId gen (idName x)
+
+-- A term in an Abelian group is a map from identifiers to pairs of
+-- sorts and non-zero integers.
+
+data Sort
+  = Rndx                        -- Sort of a basis element
+  | Expt
+  deriving (Show, Eq, Ord)
+
+type Coef = Int
+
+type Desc = (Sort, Coef)
+
+type Group = Map Id Desc
+
+isGroupVar :: Group -> Bool
+isGroupVar t =
+  M.size t == 1 && snd (head (M.elems t)) == 1
+
+isBasisVar :: Group -> Bool
+isBasisVar t =
+  M.size t == 1 && head (M.elems t) == (Rndx, 1)
+
+isExprVar :: Group -> Bool
+isExprVar t =
+  M.size t == 1 && head (M.elems t) == (Expt, 1)
+
+-- Assumes isGroupVar t, isBasisVar t, or isExprVar is True!
+getGroupVar :: Group -> Id
+getGroupVar x = head $ M.keys x
+
+groupVarsOfGroup :: Group -> [Group]
+groupVarsOfGroup =
+    M.foldrWithKey
+         (\id (s,_) soFar -> (M.singleton id (s,1)) : soFar)
+         []
+
+-- Create group var as a basis element if be is Rndx
+groupVarG :: Sort -> Id -> Group
+groupVarG be x = M.singleton x (be, 1)
+
+groupVar :: Sort -> Id -> Term
+groupVar be x = G $ groupVarG be x
+
+groupVarGroup :: Id -> Group
+groupVarGroup x = groupVarG Expt x
+
+dMapCoef :: (Coef -> Coef) -> Desc -> Desc
+dMapCoef f (be, c) = (be, f c)
+
+invert :: Group -> Group
+invert t = M.map (dMapCoef negate) t
+
+expg :: Group -> Int -> Group
+expg _ 0 = M.empty
+expg t 1 = t
+expg t n = M.map (dMapCoef (n *)) t
+
+mul :: Group -> Group -> Group
+mul t t' =
+  M.foldrWithKey f t' t         -- Fold over the mappings in t
+  where
+    f x c t =                   -- Alter the mapping of
+      M.alter (g c) x t         -- variable x in t
+    g c Nothing =               -- Variable x not currently mapped
+      Just c                    -- so add a mapping
+    g (b, c) (Just (b', c'))    -- Variable x maps to c'
+      | b /= b' = assertError
+        ("Algebra.mul: sort mismatch " ++ show t ++ " - " ++ show t')
+      | c + c' == 0 = Nothing          -- Delete the mapping
+      | otherwise = Just $ (b, c + c') -- Adjust the mapping
+
+-- Why not replace M.assocs with M.toList elsewhere?
+
+type Maplet = (Id, Desc)
+
+mMapCoef :: (Coef -> Coef) -> Maplet -> Maplet
+mMapCoef f (x, (be, c)) = (x, (be, f c))
+
+mInverse :: [Maplet] -> [Maplet]
+mInverse maplets = map (mMapCoef negate) maplets
+
+isMapletNonzero :: Maplet -> Bool
+isMapletNonzero (_, (_, c)) = c /= 0
+
+group :: [Maplet] -> Group
+group maplets =
+  M.fromList $ filter isMapletNonzero maplets
+
+exprVars :: Term -> [Term]
+exprVars (G g) =
+  M.foldlWithKey f [] g
+  where
+    f vars id (sort, _) = groupVar sort id : vars
+exprVars t = error ("Algebra.exprVars: Expecting exponent but got " ++ show t)
+
+-- For Absence
+
+-- Seperate a group term based on one variable.
+-- When the variable is not in the group, return Nothing
+-- Otherwise return a group with just the variable negated,
+-- and a group that contains the rest of the group.
+separateVar :: Id -> Group -> Maybe (Group, Group)
+separateVar var t =
+  case M.lookup var t of
+    Nothing -> Nothing
+    Just (basis, coef) ->
+      Just (M.singleton var (basis, negate coef),
+            M.delete var t)
+
+-- Operations other than the tag constant constructor
+data Symbol
+    = Data String               -- Atoms
+    | Akey String               -- Asymmetric keys
+    | Name                      -- Principal
+    | Pval                      -- Point at which a store occurs
+    | Base                      -- Base of an exponentiated atom
+    | Ltk                       -- Long term shared symmetric key
+    | Bltk                      -- Bidirectional ltk
+    | Invk String               -- Inverse of asymmetric key
+    | Pubk                      -- Public asymmetric key of a principal
+    | Chan                      -- Channel
+    | Locn                      -- Location
+    | Genr                      -- The generator constant for the group
+    | Exp                       -- Exponentiation function symbol
+    | Tupl String               -- Term tupling
+    | Enc String                -- Encryption
+    | Hash String               -- Hashing
+      deriving (Show, Eq, Ord)
+
+-- A Basic Crypto Algebra Term
+
+data Term
+    = I !Id
+    | C !String                 -- Tag constants
+    | F !Symbol ![Term]
+    | G !Group                  -- An exponent, an Abelian group
+    | D !Id                     -- Strd variable
+    | Z Int                     -- Strd constant
+    | X !Id                     -- Indx variable
+    | Y Int                     -- Indx constant
+#if !defined CHECK_CANONICAL
+      deriving (Show, Eq, Ord)
+#else
+      deriving Show
+
+equalTerm :: Term -> Term -> Bool
+equalTerm (I x) (I y) = x == y
+equalTerm (C c) (C c') = c == c'
+equalTerm (G t) (G t') = t == t'
+#if defined CHECK_CANONICAL
+equalTerm l@(F (Invk _) [F (Invk _) [_]]) _ = error ("EQ: " ++ show l)
+equalTerm _ l@(F (Invk _) [F (Invk _) [_]]) = error ("EQ: " ++ show l)
+equalTerm l@(F Exp [_, G t1]) _ | M.null t1 = error ("EQ: " ++ show l)
+equalTerm _ l@(F Exp [_, G t1]) | M.null t1 = error ("EQ: " ++ show l)
+equalTerm l@(F Exp [F Exp [_, G _], G _]) _ = error ("EQ: " ++ show l)
+equalTerm _ l@(F Exp [F Exp [_, G _], G _])  = error ("EQ: " ++ show l)
+#else
+-- equalTerm (F (Invk op) [F (Invk op') [t]]) t' | op == op' = equalTerm t t'
+-- equalTerm t (F (Invk op) [F (Invk op') [t']]) | op == op' = equalTerm t t'
+equalTerm (F (Invk _) [F (Invk _) [t]]) t' = equalTerm t t'
+equalTerm t (F (Invk _) [F (Invk _) [t']]) = equalTerm t t'
+equalTerm (F Exp [t0, G t1]) t' | M.null t1 = equalTerm t0 t'
+equalTerm t (F Exp [t0, G t1]) | M.null t1 = equalTerm t t0
+equalTerm (F Exp [F Exp [t, G t0], G t1]) t' =
+    equalTerm (F Exp [t, G (mul t0 t1)]) t'
+equalTerm t (F Exp [F Exp [t', G t0], G t1])  =
+    equalTerm t (F Exp [t', G (mul t0 t1)])
+#endif
+equalTerm (F Bltk [t0, t1]) (F Bltk [t0', t1']) =
+    (equalTerm t0 t0' && equalTerm t1 t1') ||
+    (equalTerm t0 t1' && equalTerm t1 t0')
+equalTerm (F s u) (F s' u') =
+    s == s' && equalTermLists u u'
+equalTerm (D x) (D y) = x == y
+equalTerm (Z p) (Z p') = p == p'
+equalTerm (X x) (X y) = x == y
+equalTerm (Y x) (Y y) = x == y
+equalTerm _ _ = False
+
+equalTermLists :: [Term] -> [Term] -> Bool
+equalTermLists [] [] = True
+equalTermLists (t : u) (t' : u') =
+    equalTerm t t' && equalTermLists u u'
+equalTermLists _ _ = False
+
+instance Eq Term where
+    (==) = equalTerm
+
+-- Term comparison respecting the axiom X
+
+compareTerm :: Term -> Term -> Ordering
+compareTerm (I x) (I y) = compare x y
+compareTerm (C c) (C c') = compare c c'
+compareTerm (G t) (G t') = compare t t'
+#if defined CHECK_CANONICAL
+compareTerm l@(F (Invk _) [F (Invk _) [_]]) _ = error ("COM: " ++ show l)
+compareTerm _ l@(F (Invk _) [F (Invk _) [_]]) = error ("COM: " ++ show l)
+compareTerm l@(F Exp [_, G t1]) _ | M.null t1 = error ("COM: " ++ show l)
+compareTerm _ l@(F Exp [_, G t1]) | M.null t1 = error ("COM: " ++ show l)
+compareTerm l@(F Exp [F Exp [_, G _], G _]) _ = error ("COM: " ++ show l)
+compareTerm _ l@(F Exp [F Exp [_, G _], G _]) = error ("COM: " ++ show l)
+#else
+compareTerm (F (Invk _) [F (Invk _) [t]]) t' = compareTerm t t'
+compareTerm t (F (Invk _) [F (Invk _) [t']]) = compareTerm t t'
+compareTerm (F Exp [t0, G t1]) t' | M.null t1 = compareTerm t0 t'
+compareTerm t (F Exp [t0, G t1]) | M.null t1 = compareTerm t t0
+compareTerm (F Exp [F Exp [t, G t0], G t1]) t' =
+    compareTerm (F Exp [t, G (mul t0 t1)]) t'
+compareTerm t (F Exp [F Exp [t', G t0], G t1])  =
+    compareTerm t (F Exp [t', G (mul t0 t1)])
+#endif
+compareTerm (F Bltk [t0, t1]) (F Bltk [t0', t1']) =
+    if compareTerm t0 t1 == GT then
+      compareTerm (F Bltk [t1, t0]) (F Bltk [t0', t1'])
+    else if compareTerm t0' t1' == GT then
+           compareTerm (F Bltk [t0,t1]) (F Bltk [t1', t0'])
+         else compareTermLists [t0, t1] [t0', t1']
+compareTerm (F s u) (F s' u') =
+    case compare s s' of
+      EQ -> compareTermLists u u'
+      o -> o
+compareTerm (D x) (D y) = compare x y
+compareTerm (Z p) (Z p') = compare p p'
+compareTerm (X x) (X y) = compare x y
+compareTerm (Y x) (Y y) = compare x y
+compareTerm (I _) (C _) = LT
+compareTerm (C _) (I _) = GT
+compareTerm (I _) (F _ _) = LT
+compareTerm (F _ _) (I _) = GT
+compareTerm (I _) (G _) = LT
+compareTerm (G _) (I _) = GT
+compareTerm (I _) (D _) = LT
+compareTerm (D _) (I _) = GT
+compareTerm (I _) (Z _) = LT
+compareTerm (Z _) (I _) = GT
+compareTerm (C _) (F _ _) = LT
+compareTerm (F _ _) (C _) = GT
+compareTerm (C _) (G _) = LT
+compareTerm (G _) (C _) = GT
+compareTerm (C _) (D _) = LT
+compareTerm (D _) (C _) = GT
+compareTerm (C _) (Z _) = LT
+compareTerm (Z _) (C _) = GT
+compareTerm (F _ _) (G _) = LT
+compareTerm (G _) (F _ _) = GT
+compareTerm (F _ _) (D _) = LT
+compareTerm (D _) (F _ _) = GT
+compareTerm (F _ _) (Z _) = LT
+compareTerm (Z _) (F _ _) = GT
+compareTerm (G _) (D _) = LT
+compareTerm (D _) (G _) = GT
+compareTerm (G _) (Z _) = LT
+compareTerm (Z _) (G _) = GT
+compareTerm (D _) (Z _) = LT
+compareTerm (Z _) (D _) = GT
+compareTerm (X _) (Y _) = LT
+compareTerm (Y _) (X _) = GT
+compareTerm (X _) _ = GT
+compareTerm _ (X _) = LT
+compareTerm (Y _) _ = GT
+compareTerm _ (Y _) = LT
+
+compareTermLists :: [Term] -> [Term] -> Ordering
+compareTermLists [] [] = EQ
+compareTermLists (t : u) (t' : u') =
+    case compareTerm t t' of
+      EQ -> compareTermLists u u'
+      o -> o
+compareTermLists [] _ = LT
+compareTermLists _ [] = GT
+
+instance Ord Term where
+    compare = compareTerm
+#endif
+
+-- Basic terms are introduced by defining a function used to decide if
+-- a term is well-formed.  The context of an occurrence of an identifier
+-- determines its sort.  A term that contains just an identifier and its
+-- sort information is called a variable.  The sort of a variable is
+-- one of mesg, text, data, name, skey, and akey.
+
+-- Terms that represent algebra variables.
+isVar :: Term -> Bool
+isVar (I _) = True           -- Sort: mesg
+isVar (F s [I _]) = varSym s
+isVar (G t) = isGroupVar t
+isVar _ = False
+
+varSym :: Symbol -> Bool
+varSym (Data _) = True
+varSym (Akey _) = True
+varSym Name = True
+varSym Pval = True
+varSym Base = True
+varSym Chan = True
+varSym Locn = True
+varSym _ = False
+
+-- Is term a channel variable
+isChan :: Term -> Bool
+isChan (F Chan [I _]) = True
+isChan _ = False
+
+-- Is term a location variable
+isLocn :: Term -> Bool
+isLocn (F Locn [I _]) = True
+isLocn _ = False
+
+-- Note that isVar of (D _) is false.
+isStrdVar :: Term -> Bool
+isStrdVar (D _) = True
+isStrdVar _ = False
+
+-- Note that isVar of (X _) is false.
+isIndxVar :: Term -> Bool
+isIndxVar (X _) = True
+isIndxVar _ = False
+
+isIndxConst :: Term -> Bool
+isIndxConst (Y _) = True
+isIndxConst _ = False
+
+intOfIndex :: Term -> Maybe Int
+intOfIndex (Y q) = Just q
+intOfIndex _ = Nothing
+
+-- Extract the identifier from a variable
+varId :: Term -> Id
+varId (I x) = x
+varId (F (Data _) [I x]) = x
+varId (F (Akey _) [I x]) = x
+varId (F Name [I x]) = x
+varId (F Base [I x]) = x
+varId (F Pval [I x]) = x
+varId (F Chan [I x]) = x
+varId (F Locn [I x]) = x
+varId (G g) = getGroupVar g
+varId (D x) = x
+varId (X x) = x
+varId _ = error "Algebra.varId: term not a variable with its sort"
+
+isAcquiredVar :: Term -> Bool
+isAcquiredVar (I _) = True
+isAcquiredVar _ = False
+
+isObtainedVar :: Term -> Bool
+isObtainedVar (G x) = isExprVar x
+isObtainedVar (F Base [I _]) = True
+isObtainedVar _ = False
+
+-- A list of terms are well-formed if each one has the correct
+-- structure and every occurrence of an identifier in a term has the
+-- same sort.  Variable environments are used to check the sort
+-- condition.  It maps an identifier to a variable that contains the
+-- identifier.
+
+-- termsWellFormed u ensures all terms in u use each identifier at the
+-- same sort, and makes sure every term has the correct structure.
+termsWellFormed :: [Term] -> Bool
+termsWellFormed u =
+    loop emptyVarEnv u
+    where
+      loop _ [] = True
+      loop env (t : u) =
+          case termWellFormed env t of
+            Nothing -> False
+            Just env' -> loop env' u
+
+newtype VarEnv = VarEnv (Map Id Term) deriving Show
+
+emptyVarEnv :: VarEnv
+emptyVarEnv = VarEnv M.empty
+
+-- termWellFormed checks the structure and sort condition.
+
+termWellFormed :: VarEnv -> Term -> Maybe VarEnv
+termWellFormed xts t@(I x) =
+    extendVarEnv xts x t        -- Mesg variable
+termWellFormed xts t@(F (Data _) [I x]) =
+    extendVarEnv xts x t        -- Data variable
+termWellFormed xts (F (Data "skey") [F Ltk [I x, I y]]) =
+                                -- Long term shared symmetric key
+    foldM termWellFormed xts [F Name [I x], F Name [I y]]
+termWellFormed xts (F (Data "skey") [F Bltk [I x, I y]]) =
+                                -- Long term shared symmetric key
+    foldM termWellFormed xts [F Name [I x], F Name [I y]]
+termWellFormed xts (F (Akey op) [t]) = -- Asymmetric key terms
+    case t of
+      I x -> extendVarEnv xts x (F (Akey op) [I x])
+      F (Invk op') [I x]
+        | op' == op -> extendVarEnv xts x (F (Akey op) [I x])
+      F Pubk [I x]
+        | op == "akey" -> extendVarEnv xts x (F Name [I x])
+      F Pubk [C _, I x]
+        | op == "akey" -> extendVarEnv xts x (F Name [I x])
+      F (Invk "akey") [F Pubk [I x]]
+        | op == "akey" -> extendVarEnv xts x (F Name [I x])
+      F (Invk "akey") [F Pubk [C _, I x]]
+        | op == "akey" -> extendVarEnv xts x (F Name [I x])
+      _ -> Nothing
+termWellFormed xts t@(F Name [I x]) =
+    extendVarEnv xts x t        -- Name variable
+termWellFormed xts t@(F Pval [I x]) =
+    extendVarEnv xts x t        -- pval variable
+termWellFormed xts (F Base [t]) =
+    baseVarEnv xts t
+    where
+      baseVarEnv xts t@(I x) =
+          extendVarEnv xts x (F Base [t])
+      baseVarEnv xts (F Genr []) =
+          Just xts
+      -- Check for non-canonical form
+      baseVarEnv _ (F Exp [F Exp _, _]) = Nothing
+      baseVarEnv xts (F Exp [t0, G t1]) =
+          do
+            xts <- baseVarEnv xts t0
+            termWellFormed xts (G t1)
+      baseVarEnv _ _ = Nothing
+termWellFormed xts (G t) =
+    foldM rndxVarEnv xts (M.assocs t)
+    where
+      rndxVarEnv xts (x, (be, _)) =
+          extendVarEnv xts x (groupVar be x)
+termWellFormed xts (C _) =
+    Just xts                    -- Tags
+termWellFormed xts (F (Tupl _) ts) =
+    foldM termWellFormed xts ts -- Tupling
+termWellFormed xts (F (Enc _) ts@[_, _]) =
+    foldM termWellFormed xts ts  -- Encryption
+termWellFormed xts (F (Hash _) [t])     =
+    termWellFormed xts t            -- Hashing
+termWellFormed _ _ = Nothing
+
+-- Extend when sorts agree
+extendVarEnv :: VarEnv -> Id -> Term -> Maybe VarEnv
+extendVarEnv (VarEnv env) x t =
+    case M.lookup x env of
+      Nothing -> Just $ VarEnv $ M.insert x t env
+      Just t' -> if t == t' then Just (VarEnv env) else Nothing
+
+-- Return just the inverse of an asymmetric key, or nothing if a term
+-- isn't an asymmetric key.  Assumes arg is well-formed.
+
+invertKey :: Term -> Maybe Term
+invertKey (F (Akey op) [F (Invk _) [t]]) = Just (F (Akey op) [t])
+invertKey (F (Akey op) [t]) = Just (F (Akey op) [F (Invk op) [t]])
+invertKey _ = Nothing
+
+-- Is the sort of the term a base sort?
+isAtom :: Term -> Bool
+isAtom (F Base _) = False
+isAtom (F s _) = varSym s
+isAtom (G x) = isBasisVar x
+isAtom _ = False
+
+-- Is the term numeric?
+isNum :: Term -> Bool
+isNum (F Base _) = True
+isNum (G _) = True
+isNum _ = False
+
+subNums :: Term -> Set Term
+subNums t@(G _) = S.singleton t
+subNums (F _ ts) = S.unions (map subNums ts)
+subNums _ = S.empty
+
+-- Does a variable occur in a term?
+occursIn :: Term -> Term -> Bool
+occursIn t t' | isVar t =
+  subterm (I $ varId t) t'
+occursIn t _ =
+  error $ "Algebra.occursIn: Bad variable " ++ show t
+
+subterm :: Term -> Term -> Bool
+subterm t t' | t == t' =
+  True
+subterm t (F _ u) =
+  any (subterm t) u
+subterm (I x) (G t') =
+  M.member x t'
+subterm (G t) (G t') | isBasisVar t = -- For constituent
+  M.member (getGroupVar t) t'
+subterm _ _ = False
+
+-- Fold f through a term applying it to each variable in the term.
+foldVars :: (a -> Term -> a) -> a -> Term -> a
+foldVars f acc t@(I _) = f acc t          -- Mesg variable
+foldVars f acc t@(F (Data _) [I _]) = f acc t -- Data variable
+foldVars f acc (F (Data _) [F Ltk [I x, I y]]) =
+    f (f acc (F Name [I x])) (F Name [I y])
+foldVars f acc (F (Data _) [F Bltk [I x, I y]]) =
+    f (f acc (F Name [I x])) (F Name [I y])
+foldVars f acc t@(F (Akey _) [I _]) = f acc t -- Asymmetric keys
+foldVars f acc (F op@(Akey _) [F (Invk _) [I x]]) = f acc (F op [I x])
+foldVars f acc (F (Akey _) [F Pubk [I x]]) = f acc (F Name [I x])
+foldVars f acc (F (Akey _) [F Pubk [C _, I x]]) = f acc (F Name [I x])
+foldVars f acc (F (Akey _) [F (Invk _) [F Pubk [I x]]]) =
+  f acc (F Name [I x])
+foldVars f acc (F (Akey _) [F (Invk _) [F Pubk [C _, I x]]]) =
+  f acc (F Name [I x])
+foldVars f acc t@(F Name [I _]) = f acc t -- Name variable
+foldVars f acc t@(F Pval [I _]) = f acc t -- Pval variable
+foldVars f acc t@(F Chan [I _]) = f acc t -- Channels
+foldVars f acc t@(F Locn [I _]) = f acc t -- Locn
+foldVars f acc (F Base [t]) =
+    baseAddVars acc t
+    where
+      baseAddVars acc t@(I _) =
+          f acc (F Base [t])
+      baseAddVars acc (F Genr []) =
+          acc
+      baseAddVars acc (F Exp [t0, G t1]) =
+          foldVars f (baseAddVars acc t0) (G t1)
+      baseAddVars _ t1 = assertError
+                         ("Algebra.foldVars: Bad term (F Base ["
+                          ++ (show t1) ++ "]) in " ++ (show t))
+foldVars f acc (G t) =
+    M.foldlWithKey rndxAddVars acc t
+    where
+      rndxAddVars acc x (be, _) =
+          f acc (groupVar be x)
+foldVars _ acc (C _) = acc                    -- Tags
+foldVars f acc (F (Tupl _) ts) =              -- Concatenation
+    foldl (foldVars f) acc ts
+foldVars f acc (F (Enc _) [t0, t1]) =         -- Encryption
+    foldVars f (foldVars f acc t0) t1
+foldVars f acc (F (Hash _) [t]) =             -- Hashing
+    foldVars f acc t
+foldVars f acc t@(D _) = f acc t          -- Strd variable
+foldVars _ acc (Z _) = acc                -- Strd constant
+foldVars f acc t@(X _) = f acc t          -- Indx variable
+foldVars _ acc (Y _) = acc                -- Indx constant
+foldVars _ _ t = error $ "Algebra.foldVars: Bad term " ++ show t
+
+-- Fold f through a term applying it to each term that is carried by the term.
+foldCarriedTerms :: (a -> Term -> a) -> a -> Term -> a
+foldCarriedTerms f acc t@(F (Tupl _) ts) = -- Concatenation
+    foldl (foldCarriedTerms f) (f acc t) ts
+foldCarriedTerms f acc t@(F (Enc _) [t0, _]) = -- Encryption
+    foldCarriedTerms f (f acc t) t0
+--foldCarriedTerms f acc t@(F Base [F Exp [_, t1]]) = -- Exponents
+--    f (f acc t) t1
+foldCarriedTerms f acc t = f acc t     -- atoms and tags
+
+-- Is a term carried by another term?
+carriedBy :: Term -> Term -> Bool
+carriedBy t t' =
+    t == t' ||
+      case t' of
+        F (Tupl _) ts -> any (carriedBy t) ts
+        F (Enc _) [t0, _] -> carriedBy t t0
+        _ -> False
+
+-- Is atom a constituent of a term?  In other words, is atom among
+-- the set of atoms required to construct the term?
+constituent :: Term -> Term -> Bool
+constituent t t' | isAtom t =
+  subterm t t'
+constituent t _ =
+  error $ "Algebra.constituent: Bad atom " ++ show t
+
+-- The key used to decrypt an encrypted term, otherwise Nothing.
+decryptionKey :: Term -> Maybe Term
+decryptionKey (F (Enc _) [_, t]) = Just (inv t)
+decryptionKey _ = Nothing
+
+buildable :: Set Term -> Set Term -> Term -> Bool
+buildable knowns unguessable term =
+    ba term
+    where
+      ba (I _) = True           -- A mesg sorted variable is always buildable
+      ba (C _) = True           -- So is a tag
+      ba (F (Tupl _) ts) =
+          all ba ts
+      ba t@(F (Enc _) [t0, t1]) =
+          S.member t knowns || ba t0 && ba t1
+      ba t@(F (Hash _) [t1]) =
+          S.member t knowns || ba t1
+      ba t@(F Base _) = bb t
+      ba (G t1) = be t1
+      ba t = isAtom t && not (S.member t unguessable)
+      -- Buildable base term
+      bb (F Base [I _]) = True           -- A variable of sort base is always buildable
+      bb (F Base [F Genr _]) = True     -- and so is the generator
+      bb t@(F Base [F Exp [t0, G t1]]) =
+        any (\t2 -> (getBase t2 == t0) && relevant unguessable t2 t)
+           (S.toList knowns) || bb (F Base [t0]) && be t1
+      bb (_) = False
+      -- Buildable exponent
+      be exp =
+        all (flip notElem ids) $ M.keys exp
+      -- Exponent variables with origination assumptions
+      ids = getRndxOrigAssumptions unguessable
+      -- Known exponent without non-known variables
+      -- kns = map (stripRndx ids) (getRndxs knowns)
+
+getRndxOrigAssumptions :: Set Term -> [Id]
+getRndxOrigAssumptions terms =
+    concatMap f $ S.elems terms
+    where
+      f (G t) = M.keys t        -- This is an approximation
+      f _ = []
+
+-- Compute the decomposition given some known terms and some unguessable
+-- atoms.  The code is quite tricky.  It iterates until the known
+-- terms don't change.  The known terms ends up with all the
+-- encryptions that are known.
+decompose :: Set Term -> Set Term -> (Set Term, Set Term)
+decompose knowns unguessable =
+    loop unguessable knowns S.empty []
+    where
+      loop unguessable knowns old []
+          | old == knowns = (knowns, unguessable) -- Done
+          | otherwise = loop unguessable knowns knowns (S.elems knowns)
+      loop unguessable knowns old (t@(F (Tupl _) _) : todo) =
+          loop unguessable (decat t (S.delete t knowns)) old todo
+      loop unguessable knowns old ((F (Enc _) [t0, t1]) : todo)
+          | buildable knowns unguessable (inv t1) = -- Add plaintext
+              loop unguessable (decat t0 knowns) old todo
+          | otherwise = loop unguessable knowns old todo
+      loop unguessable knowns old ((F (Hash _) [_]) : todo) =
+          loop unguessable knowns old todo -- Hash can't be decomposed
+      -- New case here: don't delete exponentiated values
+      loop unguessable knowns old (F Base [F Exp [_, _]] : todo) =
+          loop unguessable knowns old todo
+      --  New case here: don't delete exponents that
+      -- aren't in unguessable
+      loop unguessable knowns old (t@(G _) : todo)
+          | S.notMember t unguessable =
+              loop unguessable knowns old todo
+      loop unguessable knowns old (t : todo) =
+          loop (S.delete t unguessable) (S.delete t knowns) old todo
+      -- Decat
+      decat :: Term -> Set Term -> Set Term
+      decat (F (Tupl _) ts) s = foldl (\a b -> decat b a) s ts
+      decat t s = S.insert t s
+
+-- Inverts an asymmetric key
+inv :: Term -> Term
+inv (F (Akey op) [F (Invk _) [t]]) = F (Akey op) [t]
+inv (F (Akey op) [t]) = F (Akey op) [F (Invk op) [t]]
+inv t@(F _ _) = t
+inv t@(G _) = t
+inv (I _) = error "Algebra.inv: Cannot invert a variable of sort mesg"
+inv (C _) = error "Algebra.inv: Cannot invert a tag constant"
+inv (D _) = error "Algebra.inv: Cannot invert a variable of sort strd"
+inv (Z _) = error "Algebra.inv: Cannot invert a strd constant"
+inv (X _) = error "Algebra.inv: Cannot invert a variable of sort indx"
+inv (Y _) = error "Algebra.inv: Cannot invert an indx constant"
+
+components :: Term -> [Term]
+components (F (Tupl _) ts) =
+    L.nub (L.concat $ map components ts)
+components t = [t]
+
+-- Extracts every encryption that is carried by a term along with its
+-- encryption key.  Note that a hash is treated as a kind of
+-- encryption in which the term that is hashed is the encryption key.
+encryptions :: Term -> [(Term, [Term])]
+encryptions t =
+    reverse $ f t []
+    where
+      f (F (Tupl _) ts) acc =
+        foldl (\a b -> f b a) acc ts
+      f t@(F (Enc _) [t', t'']) acc =
+        f t' (adjoin (t, [t'']) acc)
+      f t@(F (Hash _) [t']) acc =
+        adjoin (t, [t']) acc
+      f _ acc = acc
+
+-- Put a base expression in the form g, g^e, or b or b^e where b is a variable.
+expCollapse :: Term -> Term
+expCollapse (F Base [F Genr ts]) = F Base [F Genr ts]
+-- expCollapse (F Genr _) = F Base [F Genr []]
+expCollapse (F Base [F Exp [F Exp [b, G e0], G e1]]) =
+  case expCollapse (F Base [F Exp [b, G e0]]) of
+    F Base [F Exp [b', G e0']] -> F Base [F Exp [b', G (mul e0' e1)]]
+    _ -> error ("Algebra.hs: expCollapse returned non-base element")
+expCollapse (F Base [F Exp [b, G e]]) = F Base [F Exp [b, G e]]
+expCollapse (F Base [I t]) = F Base [I t]
+expCollapse _ = error ("Algebra.hs: expCollapse called on non-base element")
+
+getBase :: Term -> Term
+getBase (F Base [(F Genr _)]) = F Base [F Genr []]
+getBase t@(F Base _) =
+  case expCollapse t of
+    F Base [F Exp [b, _]] -> b
+    _ -> t  -- If not exponentiated, the term is the base.
+getBase t = t
+
+relevant :: Set Term -> Term -> Term -> Bool
+relevant avoid t1@(F Base _) t2@(F Base _) =
+    i1 == i2
+    where
+      i1 = indicator avoid t1
+      i2 = indicator avoid t2 -- compare indicators.
+relevant _ t1 t2 = t1 == t2
+
+-- Extract the exponent of the term restricted to its map on exponent
+-- variables in avoid.
+indicator :: Set Term -> Term -> Group
+indicator avoid t@(F Base _) =
+  case expCollapse t of
+    F Base [F Genr _] -> M.empty
+    F Base [I _] -> M.empty
+    F Base [F Exp [_, G m]] -> M.intersection m indicatorBasis
+    _ -> error ("Algebra.hs: expCollapse returned non-base element")
+  where
+    numAvoid = S.map extrRndx $ S.filter isRndx avoid
+    isRndx (G g) = isBasisVar g
+    isRndx _ = False
+    extrRndx (G t) = t
+    extrRndx _ = error ("Algebra.hs: extrRndx called on a non-exponent")
+    indicatorBasis = S.fold mul M.empty numAvoid
+indicator _ t = error ("Algebra.hs: indicator called on a non-base " ++ show t)
+
+escapeSet :: Set Term -> Set Term -> Term -> Maybe (Set Term)
+escapeSet ts a ct =
+    if buildable ts a ct then
+        Nothing
+    else
+        Just $ S.filter f ts
+        where
+          f (F (Enc _) [t, key]) =
+              carriedBy ct t &&
+              not (buildable ts a (inv key))
+          f _ = False
+
+isBase :: Term -> Bool
+isBase (F Base _) = True
+isBase _ = False
+
+isExpr :: Term -> Bool
+isExpr (G _) = True
+isExpr _ = False
+
+isVarExpr :: Term -> Bool
+isVarExpr (G g) = isGroupVar g
+isVarExpr _ = False
+
+isRndx :: Term -> Bool
+isRndx (G t) = isBasisVar t
+isRndx _ = False
+
+consts :: Term -> [Term]
+consts (F Base _) = [F Base [F Genr []]]
+consts (G _) = [G M.empty]
+consts _ = []
+
+-- Places
+
+-- A place names a one subterm within a term.  It is a list of
+-- integers giving a path through a term to that named subterm.  Each
+-- integer in the list identifies the subterm in a function
+-- application on the path to the named subterm.  The integer is the
+-- index of the subterm in the application's list of terms.
+
+newtype Place = Place [Int] deriving Show
+
+-- Returns the places a variable occurs within a term.
+places :: Term -> Term -> [Place]
+places var source =
+    f [] [] source
+    where
+      f paths path source
+          | var == source = Place (reverse path) : paths
+      f paths path (F _ u) =
+          g paths path 0 u
+      f paths path (G t)
+          | M.member (varId var) t =
+            Place (reverse path) : paths
+          | otherwise = paths
+      f paths _ _ = paths
+      g paths _ _ [] = paths
+      g paths path i (t : u) =
+          g (f paths (i: path) t) path (i + 1) u
+
+-- Returns the places a term is carried by another term.
+carriedPlaces :: Term -> Term -> [Place]
+carriedPlaces target source =
+    f [] [] source
+    where
+      f paths path source
+          | target == source = Place (reverse path) : paths
+      f paths path (F (Tupl _) ts) =
+          foldl g paths (zip [0..] ts)
+          where
+            g paths (i, t) = f paths (i : path) t
+      f paths path (F (Enc _) [t, _]) =
+          f paths (0 : path) t
+      f paths _ _ = paths
+
+-- Returns the places a term is carried by another term.
+carriedRelPlaces :: Term -> Term -> Set Term -> [Place]
+carriedRelPlaces target source avoid =
+    f [] [] source
+    where
+      f paths path source
+          | relevant avoid source target = Place (reverse path) : paths
+      f paths path (F (Tupl _) ts) =
+          foldl g paths (zip [0..] ts)
+          where
+            g paths (i, t) = f paths (i : path) t
+      f paths path (F (Enc _) [t, _]) =
+          f paths (0 : path) t
+      f paths _ _ = paths
+
+-- Replace a variable within a term at a given place.
+replace :: Term -> Place -> Term -> Term
+replace var (Place ints) source =
+    loop ints source
+    where
+      loop [] _ = var
+      loop (i : path) (F s u) =
+          F s (replaceNth (loop path (u !! i)) i u)
+      loop _ _ = assertError "Algebra.replace: Bad path to term"
+
+factors :: Group -> [Maplet]
+factors t =
+    do
+      (x, (be, n)) <- M.assocs t
+      case n >= 0 of
+        True -> replicate n (x, (be, 1))
+        False -> replicate (negate n) (x, (be, -1))
+
+-- Return the ancestors of the term at the given place.
+ancestors :: Term -> Place -> [Term]
+ancestors source (Place ints) =
+    loop [] ints source
+    where
+      loop ts [] _ = ts
+      loop ts (i: path) t@(F _ u) =
+          loop (t : ts) path (u !! i)
+      loop ts [_] t@(G _) = t : ts
+      loop _ _ _ = error "Algebra.ancestors: Bad path to term"
+
+placeIsPrefixOf :: Place -> Place -> Bool
+placeIsPrefixOf (Place l) (Place l') = L.isPrefixOf l l'
+
+placeStripPrefix :: Place -> Place -> Maybe Place
+placeStripPrefix (Place l) (Place l') =
+  loop l l'
+  where
+    loop [] l' = Just $ Place l'
+    loop (i : l) (i' : l') | i == i' = loop l l'
+    loop _ _ = Nothing
+
+-- Rename the identifiers in a term.  Gen keeps the state of the
+-- renamer.  (Question: should alist be replaced by a Map?)
+clone :: Gen -> Term -> (Gen, Term)
+clone gen t =
+    (gen', t')
+    where
+      (_, gen', t') = cloneTerm ([], gen) t
+      cloneTerm (alist, gen) t =
+          case t of             -- The association list maps
+            I x ->              -- identifiers to identifier.
+                case lookup x alist of
+                  Just y -> (alist, gen, I y)
+                  Nothing ->
+                      let (gen', y) = cloneId gen x in
+                      ((x, y) : alist, gen', I y)
+            C c -> (alist, gen, C c)
+            F sym u ->
+                let (alist', gen', u') =
+                        foldl cloneTermList (alist, gen, []) u in
+                (alist', gen', F sym $ reverse u')
+            G t ->
+                let (alist', gen', ts) =
+                        M.foldlWithKey cloneGroupList (alist, gen, []) t in
+                (alist', gen', G $ group ts)
+            D x ->              -- identifiers to identifier.
+                case lookup x alist of
+                  Just y -> (alist, gen, D y)
+                  Nothing ->
+                      let (gen', y) = cloneId gen x in
+                      ((x, y) : alist, gen', D y)
+            Z p -> (alist, gen, Z p)
+            X x ->              -- identifiers to identifier.
+                case lookup x alist of
+                  Just y -> (alist, gen, X y)
+                  Nothing ->
+                      let (gen', y) = cloneId gen x in
+                      ((x, y) : alist, gen', X y)
+            Y p -> (alist, gen, Y p)
+      cloneTermList (alist, gen, u) t =
+          let (alist', gen', t') = cloneTerm (alist, gen) t in
+          (alist', gen', t' : u)
+      cloneGroupList (alist, gen, ts) x (be, n) =
+          case lookup x alist of
+            Just y -> (alist, gen, (y, (be, n)) : ts)
+            Nothing ->
+                let (gen', y) = cloneId gen x in
+                ((x, y) : alist, gen', (y, (be, n)) : ts)
+
+basePrecursor :: Gen -> Term -> (Gen, Term)
+basePrecursor g (F Base [t]) =
+  (g', F (Tupl "cat")
+    [F Base [simplifyBase $ F Exp [t, G $ invert x']],
+     G x'])
+  where
+    (g', x) = freshId g "w"
+    x' = groupVarG Expt x
+basePrecursor _ t =
+  error ("Algebra.basePrecursor: Bad term " ++ show t)
+
+simplifyBase :: Term -> Term
+simplifyBase (F Exp [t, G g])
+  | M.null g = simplifyBase t
+simplifyBase (F Exp [F Exp [t, G g0], G g1]) =
+  simplifyBase (F Exp [t, G (mul g0 g1)])
+simplifyBase t = t
+
+baseRndx :: Term -> Maybe [Term]
+baseRndx (F Base [F Exp [F Genr [], G g]])
+  | M.size g > 1 =
+    loop [] (M.assocs g)
+    where
+      loop acc [] = Just acc
+      loop _ ((_, (Expt, _)) : _) = Nothing
+      loop acc ((id, (Rndx, _)) : maplets) =
+        loop (baseBuild g id : acc) maplets
+baseRndx _ = Nothing
+
+baseBuild :: Group -> Id -> Term
+baseBuild g var =
+  F (Tupl "cat")
+  [F Base [F Exp [F Genr [], G $ M.delete var g]],
+    groupVar Rndx var]
+
+-- Functions used in both unification and matching
+
+type IdMap = Map Id Term
+
+emptyIdMap :: IdMap
+emptyIdMap = M.empty
+
+-- Apply a substitution to a term
+idSubst :: IdMap -> Term -> Term
+idSubst _ (F Exp []) = assertError "DiffieHellman.Algebra: Bad exponentiation"
+idSubst subst (I x) =
+    M.findWithDefault (I x) x subst
+idSubst _ t@(C _) = t
+idSubst subst (F (Invk op) [t]) =
+    case idSubst subst t of
+      F (Invk _) [t] -> t      -- Apply axiom
+      t -> F (Invk op) [t]
+idSubst subst (F Exp [t0, G t1]) =
+    case idSubst subst t0 of    -- (exp (exp g x) y) = (exp g (mul x y))
+      F Exp [t0', G t1'] ->
+          case mul t1' $ groupSubst subst t1 of
+            t2 | M.null t2 -> t0'
+               | otherwise -> F Exp [t0', G t2]
+      t -> expSubst subst t t1
+idSubst subst (F s u) =
+    F s (map (idSubst subst) u)
+idSubst subst (G t) =
+    G $ groupSubst subst t
+idSubst subst (D x) =
+    M.findWithDefault (D x) x subst
+idSubst _ t@(Z _) = t
+idSubst subst (X x) =
+    M.findWithDefault (X x) x subst
+idSubst _ t@(Y _) = t
+
+-- Is every variable in a term a key in the map?
+idMapped :: IdMap -> Term -> Bool
+idMapped subst (I x) = M.member x subst
+idMapped _ (C _) = True
+idMapped subst (F _ u) =
+    all (idMapped subst) u
+idMapped subst (G t) =
+    all (\ x -> M.member x subst) (M.keys t)
+idMapped subst (D x) = M.member x subst
+idMapped _ (Z _) = True
+idMapped subst (X x) = M.member x subst
+idMapped _ (Y _) = True
+
+
+-- Set (specifically, list) of variables that occur in a term, but
+-- their identifier is *not* a key in the map.  
+idUnmapped :: IdMap -> Term -> [Term]
+idUnmapped map (I x)
+           | M.member x map = []
+           | otherwise = [(I x)]
+idUnmapped map (D x)
+           | M.member x map = []
+           | otherwise = [(D x)]
+idUnmapped map (X x)
+           | M.member x map = []
+           | otherwise = [(X x)]
+
+idUnmapped _ (C _) = []
+idUnmapped _ (Z _) = []
+idUnmapped _ (Y _) = []
+ 
+idUnmapped map (G t) =
+    L.map G
+         $ filter (\g -> not $ M.member (getGroupVar g) map)
+               $ groupVarsOfGroup t
+
+idUnmapped map t@(F s [I x])
+    | varSym s && M.member x map = []
+    | varSym s && not(M.member x map) = [t]
+    | otherwise = idUnmapped map (I x)
+
+idUnmapped map (F (Akey str) [F (Invk _) [I x]])
+    | M.member x map = []
+    | not(M.member x map) = [F (Akey str) [I x]]
+
+idUnmapped map (F _ u) = concatMap (idUnmapped map) u
+
+-- Set (specifically, list) of identifiers that are keys in a map, ie
+-- the domain of the mapping.
+
+idMapDomain :: IdMap -> [Id]
+idMapDomain map = 
+    M.foldrWithKey (\k _ ks -> k:ks) [] map
+
+{--
+
+-- We're not using these two functions currently, but let's not wipe
+-- them out.  
+
+-- Is map1 a subfunction of map2?  
+
+idMapExtendsTo :: IdMap -> IdMap -> Bool
+idMapExtendsTo map1 map2 =
+    M.foldrWithKey f True map1
+    where
+      f _ _ False = False
+      f key val True = (M.member key map2) &&
+                       (val == (map2 M.! key))
+
+-- Yield the set of Ids that are in the domain of map1 but not map2
+
+idMapDomainMinus :: IdMap -> IdMap -> [Id]
+idMapDomainMinus map1 map2 = 
+    M.foldrWithKey f [] map1
+    where
+      f key _ soFar =
+          if M.member key map2
+          then soFar
+          else key : soFar
+
+--}
+
+-- Is map1 a subfunction of map2, ignoring arguments in ids?  
+
+idMapExtendsOutside :: IdMap -> IdMap -> [Id] -> Bool
+idMapExtendsOutside map1 map2 ids =
+    M.foldrWithKey f True map1
+    where
+      f _ _ False = False
+      f key val True =
+          (key `elem` ids) ||
+            ((M.member key map2) &&
+             (val == (map2 M.! key)))
+    
+
+-- Do maps 1 and 2 differ at most for arguments in ids?
+idMapsAgreeOutside :: IdMap -> IdMap -> [Id] -> Bool
+idMapsAgreeOutside map1 map2 ids =
+    idMapExtendsOutside map1 map2 ids &&
+    idMapExtendsOutside map2 map1 ids
+
+    
+
+-- Unification and substitution
+
+expSubst :: IdMap -> Term -> Group -> Term
+expSubst subst t0 t1 =
+    case groupSubst subst t1 of
+      t1' | M.null t1' -> t0    -- (exp g (one)) = g
+          | otherwise -> F Exp [t0, G t1']
+
+groupSubst :: IdMap -> Group -> Group
+groupSubst subst t =
+    M.foldrWithKey f M.empty t
+    where
+      f x (be, c) t =
+          mul (expg (groupLookup subst be x) c) t
+
+groupLookup :: IdMap -> Sort -> Id -> Group
+groupLookup subst be x =
+    case M.findWithDefault (groupVar be x) x subst of
+      G t -> t
+      w -> error ("Algebra.groupLookup: Bad substitution: " ++
+                  show x ++ " -> " ++ show w)
+
+showMap :: (Show a, Show b) => Map a b -> ShowS
+showMap m =
+    showAssocs (M.assocs m)
+    where
+      showAssocs [] = id
+      showAssocs ((x,y):m) =
+          showString "\n " . shows x . showString " -> " .
+          shows y . showAssocs m
+
+-- Unification and substitution
+
+-- The rewrite rules used are:
+--
+-- (vars (h base) (x y rndx))
+--
+-- 1.  ((exp h x) y) ==> (exp h (mul x y))
+-- 2.  (exp h (one)) ==> h
+-- 3.  unify((exp(h, x)), (exp(h, y)), s) ==>
+--         unify(x, y, s)
+-- 4   unify((exp(h, x)), (exp((gen), y)), s) ==>
+--         unify(h, (exp gen (mul y (rec x))), s)
+-- 5.  unify((exp((gen), x)), (exp(h, y)), s) ==>
+--         unify((exp(h, x)), (exp((gen), y)), s)
+
+newtype Subst = Subst IdMap deriving (Eq, Ord)
+
+instance Show Subst where
+    showsPrec _ (Subst s) = showString "Subst (" . showMap s . showChar ')'
+
+emptySubst :: Subst
+emptySubst = Subst emptyIdMap
+
+-- Is the domain of the substitution disjoint from
+-- the variables in a list of terms?
+disjointDom :: Subst -> [Term] -> Bool
+disjointDom (Subst s) ts =
+  all (allId $ flip S.notMember $ M.keysSet s) ts
+
+allId :: (Id -> Bool) -> Term -> Bool
+allId f (I x) = f x
+allId _ (C _) = True
+allId f (F _ u) = all (allId f) u
+allId f (G g) = all f (M.keys g)
+allId f (D x) = f x
+allId _ (Z _) = True
+allId f (X x) = f x
+allId _ (Y _) = True
+
+-- Apply a substitution created by unification
+substitute :: Subst -> Term -> Term
+substitute (Subst s) t =
+    idSubst s t
+
+-- Domain of a substitution
+substDomain :: Subst -> [Id]
+substDomain (Subst s) = idMapDomain s 
+
+-- Determine whether every Id in the domain of a subst is the varId of
+-- one of the given terms.  Assume that each given term is a variable!
+
+substDomainWithin :: Subst -> [Term] -> Bool
+substDomainWithin subst vars =
+    subset dom (map varId vars)
+    where
+      dom = substDomain subst
+                     
+
+-- Composition of substitutions
+
+-- substitute (compose s0 s1) t = substitute s0 (substitute s1 t)
+
+-- 1. apply s0 to range of s1 to obtain s2;
+-- 2. remove bindings is s0 where domains of s0 and s1 overlap to form s3;
+-- 3. remove trivial bindings from s2 to form s4; and
+-- 4. take the union of s4 and s3.
+
+compose :: Subst -> Subst -> Subst
+compose (Subst s0) (Subst s1) =
+    let s2 = M.map (substitute (Subst s0)) s1        -- Step 1
+        s4 = M.filterWithKey nonTrivialBinding s2 in -- Step 3
+    Subst (M.union s4 s0)       -- Steps 2 and 4, union is left-biased
+
+nonTrivialBinding :: Id -> Term -> Bool
+nonTrivialBinding x (I y) = x /= y
+nonTrivialBinding x t@(G _) = not (t == groupVar Rndx x || t == groupVar Expt x)
+nonTrivialBinding _ _ = True
+
+-- During unification, variables determined to be equal are collected
+-- into an equivalence class.  Multiple lookups of each variable in
+-- the internal representation of a substitution finds the canonical
+-- representive of the class.  The chase function finds the current
+-- canonical representitive.
+
+-- Get the canonical representative of equivalent identifiers making use
+-- of this algebra's axiom.
+chase :: Subst -> Term -> Term
+chase (Subst s) (I x) =
+    case M.lookup x s of
+      Nothing -> I x
+      Just t -> chase (Subst s) t
+chase (Subst s) (D x) =
+    case M.lookup x s of
+      Nothing -> D x
+      Just t -> chase (Subst s) t
+chase s (F (Invk op) [t]) = chaseInvk s op t
+chase s (F Exp [t0, G t1]) = chaseExp s t0 t1
+chase (Subst s) (G t) = G $ chaseGroup s t
+chase _ t = t
+
+chaseInvk :: Subst -> String -> Term -> Term
+chaseInvk (Subst s) op (I x) =
+    case M.lookup x s of
+      Nothing -> F (Invk op) [I x]
+      Just t -> chaseInvk (Subst s) op t
+chaseInvk s _ (F (Invk _) [t]) = chase s t
+chaseInvk _ op t = F (Invk op) [t]
+
+chaseExp :: Subst -> Term -> Group -> Term
+chaseExp s t0 t1
+    | M.null t1 = chase s t0
+chaseExp s@(Subst ss) (I x) t1 =
+    case chase s (I x) of
+      F Exp [t0', G t1'] ->
+        chaseExpFinalize t0' t1t1'
+        where t1t1' = mul t1' (chaseGroup ss t1)
+      t0 -> chaseExpFinalize t0 t1'
+        where t1' = chaseGroup ss t1
+chaseExp s (F Exp [t0', G t1']) t1 =
+    chaseExp s t0' (mul t1 t1')
+chaseExp (Subst s) t0 t1 =
+    chaseExpFinalize t0 t1'
+    where t1' = chaseGroup s t1
+
+chaseExpFinalize :: Term -> Group -> Term
+chaseExpFinalize t0 t1 =
+    if M.null t1
+       then t0
+       else F Exp [t0, G t1]
+
+chaseGroup :: IdMap -> Group -> Group
+chaseGroup s t =
+    M.foldrWithKey f M.empty t
+     where
+       f x (be, c) t =
+           mul (expg (chaseGroupLookup s be x) c) t
+
+chaseGroupLookup :: IdMap -> Sort -> Id -> Group
+chaseGroupLookup s be x =
+    case M.lookup x s of
+      Nothing -> groupVarG be x
+      Just (G t) -> chaseGroup s t
+      Just w -> error ("Algebra.chaseGroupLookup: Bad substitution: " ++
+                     show x ++ " -> " ++ show w)
+
+-- Does x occur in t?
+occurs :: Id -> Term -> Bool
+occurs x (I y) = x == y
+occurs _ (C _) = False
+occurs x (F _ u) = any (occurs x) u
+occurs x (G t) = elem x (M.keys t)
+occurs x (D y) = x == y
+occurs _ (Z _) = False
+occurs x (X y) = x == y
+occurs _ (Y _) = False
+
+type GenSubst = (Gen, Subst)
+
+unifyChase :: Term -> Term -> GenSubst -> [GenSubst]
+unifyChase t t' (g, s) = unifyTerms (chase s t) (chase s t') (g, s)
+
+unifyTerms :: Term -> Term -> GenSubst -> [GenSubst]
+unifyTerms (I x) (I y) (g, Subst s)
+    | x == y = [(g, Subst s)]
+    | otherwise = [(g, Subst $ M.insert x (I y) s)]
+unifyTerms (I x) t (g, Subst s)
+    | occurs x t = []
+    | otherwise = [(g, Subst $ M.insert x t s)]
+unifyTerms t (I x) s = unifyTerms (I x) t s
+unifyTerms (C c) (C c') s
+    | c == c' = [s]
+    | otherwise = []
+unifyTerms (F (Invk "akey") [I x]) (F Pubk [I y]) s =
+    unifyTerms (I x) (F (Invk "akey") [F Pubk [I y]]) s
+unifyTerms (F (Invk "akey") [I x]) (F Pubk [C c, I y]) s =
+    unifyTerms (I x) (F (Invk "akey") [F Pubk [C c, I y]]) s
+unifyTerms (F Pubk [I x]) (F (Invk "akey") [I y]) s =
+    unifyTerms (I y) (F (Invk "akey") [F Pubk [I x]]) s
+unifyTerms (F Pubk [C c, I x]) (F (Invk "akey") [I y]) s =
+    unifyTerms (I y) (F (Invk "akey") [F Pubk [C c, I x]]) s
+unifyTerms (F Bltk u) (F Bltk u') s =
+    L.nub $ unifyTermLists u u' s ++ unifyTermLists u (reverse u') s
+unifyTerms (F Base [t0]) (F Base [t1]) s =
+    unifyBase (chase (snd s) t0) (chase (snd s) t1) s
+unifyTerms (F sym u) (F sym' u') s
+    | sym == sym' = unifyTermLists u u' s
+    | otherwise = []
+unifyTerms (G t) (G t') s =
+    unifyGroup t t' s
+unifyTerms (D x) (D y) (g, Subst s)
+    | x == y = [(g, Subst s)]
+    | otherwise = [(g, Subst $ M.insert x (D y) s)]
+unifyTerms (D x) (Z p) (g, Subst s) =
+    [(g, Subst $ M.insert x (Z p) s)]
+unifyTerms t (D x) s = unifyTerms (D x) t s
+unifyTerms (Z p) (Z p') s
+    | p == p' = [s]
+    | otherwise = []
+unifyTerms _ _ _ = []
+
+-- unifyBase: the two terms were both encapsulated in F Base [].
+-- feed the appropriate inputs to unifyExp.
+-- Take h to mean h^1 for either base variable h or h = (gen).
+-- Fall back to unify algorithm when left side is F Genr [].
+unifyBase :: Term -> Term -> GenSubst -> [GenSubst]
+unifyBase (F Exp [t0, G t1]) (F Exp [t0', G t1']) gs
+  = unifyExp t0 t1 t0' t1' gs
+unifyBase (F Exp [t0, G t1]) (I x) gs
+  = unifyExp t0 t1 (I x) (M.empty) gs
+unifyBase (F Exp [t0, G t1]) (F Genr []) gs
+  = unifyExp t0 t1 (F Genr []) (M.empty) gs
+unifyBase (I x) (F Exp [t0', G t1']) gs
+  = unifyExp (I x) (M.empty) t0' t1' gs
+unifyBase (I x) (I y) gs
+  = unifyExp (I x) (M.empty) (I y) (M.empty) gs
+unifyBase (I x) (F Genr []) gs
+  = unifyExp (I x) (M.empty) (F Genr []) (M.empty) gs
+unifyBase t0 t1 gs
+  = unifyTerms t0 t1 gs
+
+-- unifyExp: not guaranteed that inputs are not F Exp expressions.
+-- guaranteed that t0 and t0' are (I x), (F Genr _), or (F Exp _).
+-- Both t0 and t0' should not be F Exp, though, as this would indicate a non-canonical form.
+unifyExp :: Term -> Group -> Term -> Group -> GenSubst -> [GenSubst]
+unifyExp (F Exp t0) t1 _ _ _ =
+  error ("Algebra.unifyExp: Got input not in canonical form " ++ show (F Exp t0) ++ show t1)
+unifyExp _ _ (F Exp t0) t1 _ =
+  error ("Algebra.unifyExp: Got input not in canonical form " ++ show (F Exp t0) ++ show t1)
+-- Force into canonical form.
+--unifyExp (F Exp [t0, G e]) t1 t0' t1' gs =
+--  unifyExp t0 (mul e t1) t0' t1' gs
+--unifyExp t0 t1 (F Exp [t0', G e]) t1' gs =
+--  unifyExp t0 t1 t0' (mul e t1') gs
+unifyExp t0 t1 t0' t1' s
+    | t0 == t0' = unifyGroup t1 t1' s
+unifyExp (I x1) t0 (I x2) t1' (g, Subst s) =
+      unifyGroup (mul t0 z) t1' (g', Subst $ M.insert x1 (F Exp [(I x2), G z]) s)
+      where
+        (g', zid) = freshId g "z"
+        z = groupVarGroup zid
+unifyExp (I x) t1 (F Genr []) t1' (g, Subst s)
+    | t1 == t1' =
+        [(g, Subst $ M.insert x (F Genr []) s)]
+    | otherwise =
+        [(g, Subst (M.insert x (F Exp [F Genr [], G $ mul t1' (invert t1)]) s))]
+unifyExp (F Genr []) t1 (I x) t1' s =
+    unifyExp (I x) t1' (F Genr []) t1 s
+unifyExp _ _ _ _ _ = []
+
+unifyTermLists :: [Term] -> [Term] -> GenSubst -> [GenSubst]
+unifyTermLists [] [] s = [s]
+unifyTermLists (t : u) (t' : u') s =
+    do
+      s' <- unifyChase t t' s
+      unifyTermLists u u' s'
+unifyTermLists _ _ _ = []
+
+unifyGroup :: Group -> Group -> GenSubst -> [GenSubst]
+unifyGroup t0 t1 (g, Subst s) =
+    do
+      let t = groupSubst s (mul t0 (invert t1))
+      (_, g', s') <- matchGroup t M.empty S.empty g s
+      return (g', Subst s')
+
+-- The exported unifier converts the internal representation of a
+-- substitution into the external form using chaseMap.
+
+unify :: Term -> Term -> GenSubst -> [GenSubst]
+unify t t' (g, s) =
+    do
+      (g, s) <- unifyChase t t' (g, s)
+      return (g, chaseMap s)
+
+-- unify :: Term -> Term -> (Gen, Subst) -> [(Gen, Subst)]
+-- unify t t' (g, s)
+--   | badGen g t =
+--       error ("unify: " ++ show g ++ ": " ++ show t)
+--   | badGen g t' =
+--       error ("unify: " ++ show g ++ ": " ++ show t')
+--   | otherwise =
+--       maybe [] (\s -> [(g, s)]) $ unifyI t t' s
+
+-- Apply the chasing version of substitution to the range of s.
+
+chaseMap :: Subst -> Subst
+chaseMap (Subst s) =
+    Subst $ M.map (substChase (Subst s)) s
+
+-- A chasing version of substitution.
+
+substChase :: Subst -> Term -> Term
+substChase subst@(Subst ss) t =
+    case chase subst t of
+      t@(I _) -> t
+      t@(C _) -> t
+      F (Invk op) [t] ->
+          case substChase subst t of
+            F (Invk op') [t] | op == op' -> t -- Apply axiom
+            t -> F (Invk op) [t]
+      F Exp [t0, G t1] ->
+          case substChase subst t0 of
+            F Exp [t0', G t1'] ->
+              case mul t1' $ chaseGroup ss t1 of
+                t2 | M.null t2 -> t0'
+                   | otherwise -> F Exp [t0', G t2]
+            t -> chaseExp subst t t1
+      F s u ->
+          F s (map (substChase subst) u)
+      G t -> G $ chaseGroup ss t
+      t@(D _) -> t
+      t@(Z _) -> t
+      t@(X _) -> t
+      t@(Y _) -> t
+
+destroyer :: Term -> Maybe Subst
+destroyer t@(G m) | isVar t =
+  Just $ Subst (M.fromList [(head $ M.keys m, G M.empty)])
+destroyer _ = Nothing
+
+-- Extend a substitution so that it satisfies an absence assertion
+absentSubst :: (Gen, Subst) -> (Term, Term) -> [(Gen, Subst)]
+absentSubst gs (G v, G t) | isGroupVar v =
+  case separateVar (getGroupVar v) t of
+    Nothing -> [gs]
+    Just (v', t') -> unifyGroup v' t' gs
+absentSubst _ ts =
+  error ("Algebra.absentSubst: Bad absent pair " ++ show ts)
+
+-- Matching and instantiation
+
+newtype Env = Env (Set Id, IdMap) deriving (Eq, Ord)
+
+instance Show Env where
+    showsPrec _ (Env (v, r)) =
+        showString "Env (\n " . shows v .
+        showChar ',' . showMap r . showChar ')'
+
+-- An environment may contain an explicit identity mapping, whereas a
+-- substitution is erroneous if it has one.  The set of variables
+-- associated with a map is the variables in the range that were
+-- generated by matching and should be treated as variables when using
+-- unification to perform matching.  The other variables in the range
+-- are treated as constants.
+
+-- An environment contains an IdMap and the set of variables
+-- generated while matching.
+
+emptyEnv :: Env
+emptyEnv = Env (S.empty, emptyIdMap)
+
+-- Apply a substitution created my matching
+instantiate :: Env -> Term -> Term
+instantiate (Env (_, r)) t = idSubst r t
+
+-- Is every variable in t in the domain of r?
+matched :: Env -> Term -> Bool
+matched (Env (_, r)) t = idMapped r t
+
+-- We assume that each term in the list is actually a variable!
+--
+-- Maybe we should check by isVar.
+
+unmatchedVarsWithin :: Env -> Term -> [Term] -> Bool 
+unmatchedVarsWithin (Env (_, r)) t vars =
+    all (flip elem vars) unmatchedIds 
+    where
+      -- problems = filter (not . (flip elem vars)) unmatchedIds 
+      unmatchedIds = idUnmapped r t
+
+envsAgreeOutside :: Env -> Env -> [Term] -> Bool
+envsAgreeOutside (Env (_, r1)) (Env (_, r2)) vars =  
+    idMapsAgreeOutside r1 r2 ids
+    where
+      ids = map varId vars
+
+-- Apply a substitution to the range of an environment
+substUpdate :: Env -> Subst -> Env
+substUpdate (Env (x, r)) s =
+  Env (x, M.map (substitute s) r)
+
+-- envDomain :: Env -> [Id]
+-- envDomain (Env (_, r)) = idMapDomain r 
+
+-- The matcher has the property that when pattern P and term T match
+-- then instantiate (match P T emptyEnv) P = T.
+
+-- Important discipline to maintain during match:
+-- Terms are either "source" or "destination / flex" terms, and these two
+-- categories should be kept strictly separate.
+--   the first parameter is a source term.
+--   the second parameter is a destination/flex term.
+--   v is a set of destination/flex IDs.
+--   g is a generator for the destination/flex algebra
+--   variables in the domain of r are source variables
+--   terms in the range of r are destination/flex terms.
+
+type GenEnv = (Gen, Env)
+
+match ::  Term -> Term -> GenEnv -> [GenEnv]
+match (I x) t (g, Env (v, r)) =
+  case M.lookup x r of
+    Nothing -> [(g, Env (v, M.insert x t r))]
+    Just t' -> if t == t' then [(g, Env (v, r))] else []
+match (C c) (C c') ge = if c == c' then [ge] else []
+match (F Base [t0]) (F Base [t1]) ge =
+  matchBase t0 t1 ge
+match (F Bltk u) (F Bltk u') ge =
+  L.nub $ matchLists u u' ge ++ matchLists u (reverse u') ge
+match (F s u) (F s' u') ge
+  | s == s' = matchLists u u' ge
+match (F (Invk op) [t]) t' ge =
+  match t (F (Invk op) [t']) ge
+match (G t) (G t') (g, Env (v, r)) =
+  do
+    (v', g', r') <- matchGroup t t' v g r
+    return (g', Env(v', r'))
+match (D x) t (g, Env (v, r)) =
+  case M.lookup x r of
+    Nothing -> [(g, Env (v, M.insert x t r))]
+    Just t' -> if t == t' then [(g, Env (v, r))] else []
+match (Z p) (Z p') r = if p == p' then [r] else []
+match (X x) t (g, Env (v, r)) =
+  case M.lookup x r of
+    Nothing -> [(g, Env (v, M.insert x t r))]
+    Just t' -> if t == t' then [(g, Env (v, r))] else []
+match (Y p) (Y p') r = if p == p' then [r] else []
+match _ _ _ = []
+
+-- On input t, outputs (b, e) such that if t is of sort base then
+-- t = b^e and b is a variable or (gen).
+-- If t is not of sort base, outputs (t, 1).
+calcBase :: Term -> (Term, Group)
+calcBase (I x) = ((I x), M.empty)
+calcBase (F Genr _) = (F Genr [], M.empty)
+calcBase (F Exp [(I x), G e]) = ((I x), e)
+calcBase (F Exp [F Genr _, G e]) = (F Genr [], e)
+calcBase (F Exp [F Exp [b, G e1], G e2]) = calcBase (F Exp [b, G $ mul e1 e2])
+-- Well-formed versions.  Is this necessary?
+calcBase (F Base [I x]) = (F Base [I x], M.empty)
+calcBase (F Base [F Genr _]) = (F Base [F Genr []], M.empty)
+calcBase (F Base [F Exp [(I x), G e]]) = (F Base [I x], e)
+calcBase (F Base [F Exp [F Genr _, G e]]) = (F Base [F Genr []], e)
+calcBase (F Base [F Exp [F Exp [b, G e1], G e2]]) = calcBase (F Base [F Exp [b, G $ mul e1 e2]])
+calcBase t = (t, M.empty)
+
+-- matchBase: the two terms were both encapsulated in F Base [].
+-- feed the appropriate inputs to matchExp.
+-- Take h to mean h^1 for either base variable h or h = (gen).
+-- Fall back to match algorithm when left side is F Genr [].
+
+matchBase :: Term -> Term -> GenEnv -> [GenEnv]
+-- matchBase x y (g, _)
+--   | badGen g (F Base [x]) =
+--     error ("matchBase: " ++ show g ++ ": " ++ show x)
+--   | badGen g (F Base [y]) =
+--     error ("matchBase: " ++ show g ++ ": " ++ show y)
+matchBase (F Exp [t0, G t1]) (F Exp [t0', G t1']) ge
+  = matchExp t0 t1 t0' t1' ge
+matchBase (F Exp [t0, G t1]) (I x) ge
+  = matchExp t0 t1 (I x) (M.empty) ge
+matchBase (F Exp [t0, G t1]) (F Genr []) ge
+  = matchExp t0 t1 (F Genr []) (M.empty) ge
+matchBase (I x) (F Exp [t0', G t1']) ge
+  = matchExp (I x) (M.empty) t0' t1' ge
+matchBase (I x) (I y) ge
+  = match (I x) (I y) ge
+    -- matchExp (I x) (M.empty) (I y) (M.empty) ge
+
+matchBase (I x) (F Genr []) ge
+  = matchExp (I x) (M.empty) (F Genr []) (M.empty) ge
+matchBase t0 t1 ge
+  = match t0 t1 ge
+
+{-
+  case M.lookup x r of
+    Nothing -> match (I x) (F Exp [b,e]) (g, Env (v,r))
+    Just (F Exp [b',e']) -> if (bb == bb') then
+                match (G M.empty) (G (mul ee (invert ee'))) (g, Env (v, r)) else []
+                where
+                  (bb', ee') = calcBase (F Exp [b',e'])
+    Just (I y) -> if ((I y) == bb) then
+                    match (G M.empty) (G ee) (g, Env (v, r)) else []
+    Just _ -> []
+  where
+    (bb, ee) = calcBase t1
+match (F Base [I x]) (F Base [I y]) (g, Env (v, r)) =
+  case M.lookup x r of
+    Nothing -> match (I x) (I y) (g, Env (v,r))
+    Just (F Exp [b',e']) -> if (bb' == (I y)) then
+                match (G M.empty) (G ee') (g, Env (v,r)) else []
+                where
+                  (bb', ee') = calcBase (F Exp [b',e'])
+    Just _ -> match (I x) (I y) (g, Env (v, r))
+-}
+
+-- matchExp: not guaranteed that inputs are not F Exp expressions.
+-- guaranteed that t0 is either an I x or an F Exp [] term.
+-- guaranteed that t0' is I x, F Genr, or F Exp.
+-- in match t0 t1 t0' t1' ge: t0 and t1 are source material, t0', t1' are destination/flex material.
+-- Both t0 and t0' should not be F Exp, though, as this would indicate a non-canonical form.
+matchExp ::  Term -> Group -> Term -> Group -> GenEnv -> [GenEnv]
+matchExp (F Exp [t0, G e]) t1 _ _ _ =
+    error ("Algebra.matchExp: Input not in canonical form " ++ show (F Exp [F Exp [t0, G e], G t1]))
+matchExp _ _ (F Exp [t0, G e]) t1 _ =
+    error ("Algebra.matchExp: Input not in canonical form " ++ show (F Exp [F Exp [t0, G e], G t1]))
+-- Force both inputs into canonical form
+--matchExp (F Exp [t0, G e]) t1 t0' t1' ge =
+--    matchExp t0 (mul e t1) t0' t1' ge
+--matchExp t0 t1 (F Exp [t0', G e]) t1' ge =
+--    matchExp t0 t1 t0' (mul e t1') ge
+matchExp (I x) t1 t0' t1' ge@(g, Env (v, r)) =
+    case M.lookup x r of
+      -- if x is already mapped, it needs to be mapped to a power of the base of t0'
+      Just t  -- t is destination/flex material
+          | fst (calcBase t0') == fst (calcBase t) ->
+            match (G t1) (G (mul t1' (mul (snd $ calcBase t0') (invert (snd $ calcBase t))))) ge
+          | otherwise -> []
+      _ -> matchLists [I x, G t1] [F Exp [t0', G w], G (mul t1' (invert w))]
+           (g', Env (S.insert wid v, r))
+      where
+        (g', wid) = freshId g "w"
+        w = groupVarGroup wid
+matchExp (F Genr []) t1 t0' t1' ge =
+    matchLists [F Genr [], G t1] [t0', G t1'] ge
+matchExp t e t' e' _ = error ("Algebra.matchExp: Bad match term" ++ show t ++ show e ++ show t' ++ show e')
+
+-- in matchLists u u' ge: u is a list of source terms and u' is a list of destination/flex terms.
+matchLists :: [Term] -> [Term] -> GenEnv -> [GenEnv]
+matchLists [] [] ge = [ge]
+matchLists (t : u) (t' : u') ge =
+  do
+    ge' <- match t t' ge
+    matchLists u u' ge'
+matchLists _ _ _ = []
+
+-- Matching in a group
+
+-- t0 is the pattern
+-- t1 is the target term
+-- v is the set of previously freshly generated variables
+-- g is the generator
+
+-- Returns complete set of unifiers.  Each unifier includes the set of
+-- variables freshly generated and a generator.
+
+matchGroup ::  Group -> Group -> Set Id -> Gen ->
+               IdMap -> [(Set Id, Gen, IdMap)]
+matchGroup t0 t1 v g r =
+  let (t0', t1') = merge t0 t1 r       -- Apply subst to LHS
+      (v', g', r') = genVars v g t0' r -- Gen vars for non-fresh vars
+      d = mkInitMatchDecis v' t1' in -- Ensure rndxs on RHS stay distinct
+  case partition (groupSubst r' t0') t1' v' of
+    ([], []) -> return (v', g', r')
+    ([], t) -> constSolve t v' g' r' d -- No variables of sort expr here
+    (t0, t1) -> solve t0 t1 v' g' r' d
+
+-- Apply subst to LHS and add results to RHS
+merge ::  Group -> Group -> IdMap -> (Group, Group)
+merge t t' r =
+    (group t0, t0')
+    where
+      (t0, t0') = loop (M.assocs t) ([], t')
+      loop [] acc = acc
+      loop (p@(x, (_, c)) : t0) (t1, t1') =
+          case M.lookup x r of
+            Nothing -> loop t0 (p : t1, t1')
+            Just (G t) ->
+                loop t0 (t1, mul (expg t (negate c)) t1')
+            Just t ->
+                error $ "Algebra.merge: expecting an rndx but got " ++ show t
+
+-- Generate vars for each non-fleshly generated vars
+genVars :: Set Id -> Gen -> Group -> IdMap -> (Set Id, Gen, IdMap)
+genVars v g t r =
+  M.foldlWithKey genVar (v, g, r) t
+  where
+    genVar (v, g, r) x (be, _)
+      | S.member x v = (v, g, r)
+      | otherwise =
+        (S.insert x' v, g', M.insert x (groupVar be x') r)
+        where
+          (g', x') = cloneId g x
+
+-- This was the long used version, but it generates fresh vars fo all
+-- vars in t.
+{-
+genVars :: Set Id -> Gen -> Group -> IdMap -> (Set Id, Gen, IdMap)
+genVars v g t r =
+  M.foldlWithKey genVar (v, g, r) t
+  where
+    genVar (v, g, r) x (be, _) =
+      (S.insert x' v, g', M.insert x (groupVar be x') r)
+      where
+        (g', x') = cloneId g x
+--}
+
+-- A set of decisions records rndx variables that have been identified
+-- and those that are distinct.
+data Decision t = Decision
+  { same :: [(t, t)],
+    dist :: [(t, t)] }
+  deriving Show
+
+-- Create an initial set of decisions
+mkDecis :: Decision Id
+mkDecis =
+  Decision {
+    same = [],
+    dist = [] }
+
+-- Ensure non-freshly generated bases elements in t are never identified
+mkInitMatchDecis :: Set Id -> Group -> Decision Id
+mkInitMatchDecis vs t =
+  mkDecis { dist = [(x, y) | x <- v, y <- v, x /= y] }
+  where
+    v = [x | (x, (be, _)) <- M.assocs t, be == Rndx, not $ S.member x vs]
+
+-- Move fresh variables on the RHS of the equation to the LHS
+-- Move variables of sort rndx on the LHS to the RHS
+partition ::  Group -> Group -> Set Id -> ([Maplet], [Maplet])
+partition t0 t1 v =
+  (M.assocs lhs, M.assocs rhs)
+  where
+    (v1, c1) = M.partitionWithKey g t1 -- Fresh variables go in v1
+    g x y = S.member x v && f y        -- only when they are exprs
+    (v0, c0) = M.partition f t0        -- Basis elements go in c0
+    f (be, _) = be /= Rndx
+    lhs = mul v0 (invert v1)
+    rhs = mul c1 (invert c0)
+
+-- Solve equation when there are no variables of sort expr on LHS.
+-- Treat all variables as constants.
+constSolve :: [Maplet] -> Set Id -> Gen -> IdMap ->
+              Decision Id -> [(Set Id, Gen, IdMap)]
+constSolve t v g r d
+  | any (\(_, (be, _)) -> be /= Rndx) t = [] -- Fail expr var is on RHS
+  | otherwise = constSolve1 t v g r d    -- All vars are rndx
+
+constSolve1 :: [Maplet] -> Set Id -> Gen ->
+               IdMap -> Decision Id -> [(Set Id, Gen, IdMap)]
+constSolve1 [] v g r _ = return (v, g, r)
+constSolve1 t v g r d =
+  case orientDecis v $ nextDecis d t of
+    [] -> []                    -- All decisions already made
+    ((x, y):_) ->               -- Pick first undecided pair
+      distinct ++ identified
+      where
+        distinct = constSolve1 t v g r neq
+        neq = d {dist = (x, y):(y, x):dist d} -- Add new constraints
+        -- eliminate x
+        identified = constSolve1 t' v' g r' d'
+        t' = identify x y t     -- Equate x y in t
+        v' = S.delete x v       -- Eliminate x in v
+        r' = eliminate x y' r   -- And in r
+        y' = groupVar Rndx y
+        d' = d {same = (x, y):same d} -- And note decision
+
+-- Find a pair of variables for which no decision has been made.
+nextDecis :: Decision Id -> [Maplet] -> [(Id, Id)]
+nextDecis d t =
+  [(x, y) | x <- vars, y <- vars, x < y,
+    not $ decided d x y]
+  where
+    vars = foldr f [] t
+    f (x, (Rndx, _)) v = x:v
+    f (_, (Expt, _)) v = v
+    decided d x y =             -- Is x and y decided?
+      u == v ||
+      any f (dist d)
+      where
+        u = chase x       -- Find canonical representitive for x and y
+        v = chase y
+        f (w, z) = chase w == u && chase z == v
+        chase = listChase (same d)
+
+-- Find canonical representive of the set of identified variables.
+listChase :: Eq t => [(t, t)] -> t -> t
+listChase d x =
+  case lookup x d of
+    Nothing -> x
+    Just y -> listChase d y
+
+-- Ensure first var in pair is in v.
+orientDecis :: Set Id -> [(Id, Id)] -> [(Id, Id)]
+orientDecis v undecided =
+  map f undecided
+  where
+    f (x, y)
+      | S.notMember x v = (y, x)
+      | otherwise = (x, y)
+
+-- Modify t by replacing x by y.
+identify :: Id -> Id -> [Maplet] -> [Maplet]
+identify x y t =
+  case lookup x t of
+    Nothing -> error ("Algebra.identify: bad lookup of " ++ show x
+                      ++ " in " ++ show t)
+    Just (_, c) ->
+      filter f (map g t)
+      where
+        f (z, (_, c)) = z /= x && c /= 0
+        g m@(z, (be, d))
+          | z == y = (z, (be, c + d))
+          | otherwise = m
+
+-- Solve when variables of sort expr are on LHS.  This involves
+-- solving using the group axioms.  The algorithm for matching in the
+-- group without added constant symbols is the same as the one for
+-- unification with constant symbols.
+--
+-- For this description, additive notation is used for the group.  To
+-- show sums, we write
+--
+--     sum[i] c[i]*x[i] for c[0]*x[0] + c[1]*x[1] + ... + c[n-1]*x[n-1].
+--
+-- The unification problem is to solve
+--
+--     sum[i] c[i]*x[i] = sum[j] d[j]*y[j]
+--
+-- where x[i] is a variable and y[j] is a constant symbol.
+--
+-- The algorithm used to find solutions is described in Vol. 2 of The
+-- Art of Computer Programming / Seminumerical Alorithms, 2nd Ed.,
+-- 1981, by Donald E. Knuth, pg. 327.
+--
+-- The algorithm's initial values are the linear equation (c,d) and an
+-- empty substitution s.
+--
+-- 1.  Let c[i] be the smallest non-zero coefficient in absolute value.
+--
+-- 2.  If c[i] < 0, multiply c and d by -1 and goto step 1.
+--
+-- 3.  If c[i] = 1, a general solution of the following form has been
+-- found:
+--
+--       x[i] = sum[j] -c'[j]*x[j] + d[k] for all k
+--
+--  where c' is c with c'[i] = 0.  Use the equation to eliminate x[i]
+--  from the range of the current substitution s.  If variable x[i] is
+--  in the original equation, add the mapping to substitution s.
+--
+-- 4.  If c[i] divides every coefficient in c,
+--
+--     * if c[i] divides every constant in d, divide c and d by c[i]
+--       and goto step 3,
+--
+--     * otherwise fail because there is no solution.  In this case
+--       rndx vars must be identified.
+--
+-- 5.  Otherwise, eliminate x[i] as above in favor of freshly created
+-- variable x[n], where n is the length of c.
+--
+--      x[n] = sum[j] (c[j] div c[i] * x[j])
+--
+-- Goto step 1 and solve the equation:
+--
+--      c[i]*x[n] + sum[j] (c[j] mod c[i])*x[j] = d[k] for all k
+
+solve ::  [Maplet] -> [Maplet] -> Set Id -> Gen ->
+          IdMap -> Decision Id -> [(Set Id, Gen, IdMap)]
+solve t0 t1 v g r d =
+  let (x, ci, i) = smallest t0 in -- ci is the smallest coefficient,
+  case compare ci 0 of            -- x is its variable, i its position
+    GT -> agSolve x ci i t0 t1 v g r d
+    LT -> agSolve x (-ci) i (mInverse t0) (mInverse t1) v g r d -- Step 2
+    EQ -> assertError "Algebra.solve: zero coefficient found"
+
+-- Find the factor with smallest coefficient in absolute value.
+-- Returns the variable, the coefficient, and the position within the
+-- list.
+smallest :: [Maplet] -> (Id, Int, Int)
+smallest [] = assertError "Algebra.smallest given an empty list"
+smallest t =
+  loop (Id (0, "x")) 0 0 0 0 t
+  where
+    loop v ci i _ _ [] = (v, ci, i)
+    loop v ci i a j ((x, (_, c)):t) =
+      if a < abs c then
+        loop x c j (abs c) (j + 1) t
+      else
+        loop v ci i a (j + 1) t
+
+-- The group axioms are abbreviated by AG.
+agSolve :: Id -> Int -> Int -> [Maplet] -> [Maplet] -> Set Id -> Gen ->
+          IdMap -> Decision Id -> [(Set Id, Gen, IdMap)]
+agSolve x 1 i t0 t1 v g r _ =    -- Solve for x and return answer
+  return (S.delete x v, g, eliminate x t r) -- Step 3
+  where
+    t = G $ group (t1 ++ (mInverse (omit i t0)))
+agSolve x ci i t0 t1 v g r d
+  | divisible ci t0 =           -- Step 4
+    if divisible ci t1 then     -- Solution found
+      agSolve x 1 i (divide ci t0) (divide ci t1) v g r d
+    else         -- No possible solution without identifying variables
+      identSolve x ci i t0 t1 v g r d
+  | otherwise =                 -- Step 5, eliminate x in favor of x'
+      solve t0' t1 (S.insert x' $ S.delete x v) g' r' d
+      where
+        (g', x') = cloneId g x
+        t = G $ group ((x', (Expt, 1)) :
+                       mInverse (divide ci (omit i t0)))
+        r' = eliminate x t r
+        t0' = (x', (Expt, ci)) : modulo ci (omit i t0)
+
+eliminate :: Id -> Term -> IdMap -> IdMap
+eliminate x t r =
+  M.map (idSubst (M.singleton x t)) r
+
+omit :: Int -> [a] -> [a]
+omit 0 (_:l) = l
+omit n _ | n < 0 = assertError "Algebra.omit: negative number given to omit"
+omit n (_:l) = omit (n - 1) l
+omit _ [] = assertError "Algebra.omit: number given to omit too large"
+
+divisible :: Int -> [Maplet] -> Bool
+divisible ci t =
+  all (\(_, (_, c)) -> mod c ci == 0) t
+
+divide :: Int -> [Maplet] -> [Maplet]
+divide ci t = map (mMapCoef $ flip div ci) t
+
+modulo :: Int -> [Maplet] -> [Maplet]
+modulo ci t =
+  [(x, (be, c')) |
+   (x, (be, c)) <- t,
+   let c' = mod c ci,
+   c' /= 0]
+
+-- Explore two choices as to whether to identify a pair of variables.
+identSolve :: Id -> Int -> Int -> [Maplet] -> [Maplet] -> Set Id -> Gen ->
+              IdMap -> Decision Id -> [(Set Id, Gen, IdMap)]
+identSolve z ci i t0 t1 v g r d =
+  case orientDecis v $ nextDecis d t1 of
+    [] -> []
+    ((x, y):_) ->
+      distinct ++ identified
+      where
+        distinct = identSolve z ci i t0 t1 v g r neq
+        neq = d {dist = (x, y):(y, x):dist d}
+        -- eliminate x
+        identified = agSolve z ci i t0 t1' v' g r' d'
+        t1' = identify x y t1   -- Equate x y in t1
+        v' = S.delete x v       -- Eliminate x in v
+        r' = eliminate x y' r   -- And in r
+        y' = groupVar Rndx y
+        d' = d {same = (x, y):same d}
+
+-- Cast an environment into a substitution by filtering out trivial
+-- bindings.
+
+substitution :: Env -> Subst
+substitution (Env (_, r)) =
+    Subst $ M.filterWithKey nonTrivialBinding r
+
+-- Find bound above all the strand indices i in strand values Z i in
+-- values in the environment
+strandBoundEnv :: Env -> Int
+strandBoundEnv (Env (_, map)) =
+    M.foldl f 0 map
+     where
+       f bnd (Z i) = max bnd (i+1)
+       f bnd _ = bnd
+
+-- Add type information to an environment, and return it as a list of
+-- associations.
+
+reify :: [Term] -> Env -> [(Term, Term)]
+reify domain (Env (_, env)) =
+    map (loop domain) $ M.assocs env
+    where
+      loop [] (x, _) =
+          error $ "Algebra.reify: variable missing from domain " ++ idName x
+      loop (I x : _) (y, t)
+          | x == y = (I x, t)
+      loop (F op@(Data _) [I x] : _) (y, t)
+          | x == y = (F op [I x], F op [t])
+      loop (F op@(Akey _) [I x] : _) (y, t)
+          | x == y = (F op [I x], F op [t])
+      loop (F Name [I x] : _) (y, t)
+          | x == y = (F Name [I x], F Name [t])
+      loop (F Pval [I x] : _) (y, t)
+          | x == y = (F Pval [I x], F Pval [t])
+      loop (F Chan [I x] : _) (y, t)
+          | x == y = (F Chan [I x], F Chan [t])
+      loop (F Locn [I x] : _) (y, t)
+          | x == y = (F Locn [I x], F Locn [t])
+      loop (F Base [I x] : _) (y, t)
+          | x == y = (F Base [I x], F Base [t])
+      loop (G x : _) (y, G t)
+          | isGroupVar x && varId (G x) == y = (G x, G t)
+      loop (D x : _) (y, t)
+          | x == y = (D x, t)
+      loop (X x : _) (y, t)
+          | x == y = (X x, t)
+      loop (_ : domain) pair = loop domain pair
+
+strdMatch ::  Term -> Int -> GenEnv -> [GenEnv]
+strdMatch t p env = match t (Z p) env
+
+strdLookup :: Env -> Term -> Maybe Int
+strdLookup env t =
+  case instantiate env t of
+    Z p -> Just p
+    _ -> Nothing
+
+strdUpdate :: Env -> (Int -> Int) -> Env
+strdUpdate (Env (g, e)) f =
+  Env (g, M.map h e)
+  where
+    h (Z z) = Z $ f z
+    h t = t
+
+--   indxMatch ::  Term -> Int -> (Gen, Env) -> [(Gen, Env)]
+--   indxMatch t t' (g, e) =
+--          maybe [] (\e -> [(g, e)]) $ indxMatchI t t' e
+--
+--   indxMatchI ::  Term -> Int -> Env -> Maybe Env
+--   indxMatchI t p env = matchI t (Y p) env
+
+indxLookup :: Env -> Term -> Maybe Int
+indxLookup env t =
+  case instantiate env t of
+    Y p -> Just p
+    _ -> Nothing
+
+indxUpdate :: Env -> (Int -> Int) -> Env
+indxUpdate (Env (g, e)) f =
+  Env (g, M.map h e)
+  where
+    h (Y z) = Y $ f z
+    h t = t
+
+indxOfInt :: Int -> Term
+indxOfInt i = Y i
+
+strdOfInt :: Int -> Term
+strdOfInt i = Z i
+
+-- Term specific loading functions
+
+loadVars :: MonadFail m => Sig -> Gen -> [SExpr Pos] -> m (Gen, [Term])
+loadVars sig gen sexprs =
+    do
+      pairs <- mapM loadVarPair sexprs
+      (g, vars) <- foldM (loadVar sig) (gen, []) (concat pairs)
+      return (g, reverse vars)
+
+loadVarPair :: MonadFail m => SExpr Pos -> m [(SExpr Pos, SExpr Pos)]
+loadVarPair (L _ (x:y:xs)) =
+    case reverse (x:y:xs) of
+      t : vs ->
+        return [(v,t) | v <- reverse vs]
+      [] -> error "Algebra.loadVarPair [] cannot happen"
+loadVarPair x = fail (shows (annotation x) "Malformed vars declaration")
+
+loadVar :: MonadFail m => Sig -> (Gen, [Term]) -> (SExpr Pos, SExpr Pos) ->
+           m (Gen, [Term])
+loadVar sig (gen, vars) (S pos name, S pos' sort) =
+    case loadLookup pos vars name of
+      Right _ ->
+          fail (shows pos "Duplicate variable declaration for " ++ name)
+      Left _ ->
+          do
+            let (gen', x) = freshId gen name
+            p <- mkVar sig pos' sort x
+            return (gen', p : vars)
+loadVar _ _ (x,_) = fail (shows (annotation x) "Bad variable syntax")
+
+mkVar :: MonadFail m => Sig -> Pos -> String -> Id -> m Term
+mkVar sig pos sort x
+  | sort == "name" = return $ F Name [I x]
+  | sort == "pval" = return $ F Pval [I x]
+  | sort == "chan" = return $ F Chan [I x]
+  | sort == "locn" = return $ F Locn [I x]
+  | sort == "base" = return $ F Base [I x]
+  | sort == "expt" = return $ groupVar Expt x
+  | sort == "rndx" = return $ groupVar Rndx x
+  | sort == "mesg" = return $ I x
+  | sort == "strd" = return $ D x
+  | sort == "indx" = return $ X x
+  | elem sort (Sig.akeys sig) = return $ F (Akey sort) [I x]
+  | elem sort (Sig.atoms sig) = return $ F (Data sort) [I x]
+  | otherwise = fail (shows pos "Sort " ++ sort ++ " not recognized")
+
+newVar :: Sig -> Gen -> String -> String -> (Gen, Term)
+newVar sig g varName varSort =
+    let (g', x) = freshId g varName in
+    (g', mkVarUnfailingly sig varSort x)
+
+newVarDefault :: Gen -> String -> String -> (Gen, Term)
+newVarDefault = newVar Sig.defaultSig
+
+mkVarUnfailingly :: Sig -> String -> Id -> Term
+mkVarUnfailingly sig sort x
+  | sort == "name" = F Name [I x]
+  | sort == "pval" = F Pval [I x]
+  | sort == "chan" = F Chan [I x]
+  | sort == "locn" = F Locn [I x]
+  | sort == "base" = F Base [I x]
+  | sort == "expt" = groupVar Expt x
+  | sort == "rndx" = groupVar Rndx x
+  | sort == "mesg" = I x
+  | sort == "strd" = D x
+  | sort == "indx" = X x
+  | elem sort (Sig.akeys sig) = F (Akey sort) [I x]
+  | elem sort (Sig.atoms sig) = F (Data sort) [I x]
+  | otherwise =  I x    -- Default:  Var of sort mesg
+
+varName :: Term -> String
+varName t = idName (varId t)
+
+loadLookup :: Pos -> [Term] -> String -> Either String Term
+loadLookup pos [] name = Left (shows pos $ "Identifier " ++ name ++ " unknown")
+loadLookup pos (t : u) name =
+    let name' = idName (varId t) in
+    if name' == name then Right t else loadLookup pos u name
+
+loadLookupStrict :: Pos -> [Term] -> String -> Either String Term
+loadLookupStrict pos vars name =
+  case loadLookup pos vars name of
+    Left msg -> Left msg
+    Right t | not (isExpr t) || isRndx t -> Right t
+    _ -> Left (shows pos $ "Identifier " ++ name ++
+               " is an expt--must be a rndx")
+
+loadLookupName :: MonadFail m => Pos -> [Term] -> String -> m Term
+loadLookupName pos vars name =
+    either fail f (loadLookup pos vars name)
+    where
+      f t@(F Name [I _]) = return t
+      f _ = fail (shows pos $ "Expecting " ++ name ++ " to be a name")
+
+loadLookupAkey :: MonadFail m => Pos -> [Term] -> String ->
+                  m (String, Term)
+loadLookupAkey pos vars name =
+    either fail f (loadLookup pos vars name)
+    where
+      f t@(F (Akey op) [I _]) = return (op, t)
+      f _ = fail (shows pos $ "Expecting " ++ name ++ " to be an akey")
+
+-- Load term and check that it is well-formed.
+-- Load in strict mode when the third argument is true.
+-- In this case, make sure that when an exponent is a carried term,
+-- the exponent is a rndx variable reference.
+loadTerm :: MonadFail m => Sig -> [Term] -> Bool -> SExpr Pos -> m Term
+loadTerm _ vars True (S pos s) =
+    either fail return (loadLookupStrict pos vars s)
+loadTerm _ vars False (S pos s) =
+    either fail return (loadLookup pos vars s)
+loadTerm _ _ _ (Q _ t) =
+    return (C t)
+
+-- special case to read index values:
+loadTerm _ _ _ (L _ [S _ "idx", N _ i]) = return $ Y i
+
+loadTerm sig vars strict (L pos (S _ s : l)) =
+    case lookup s loadDispatch of
+      Nothing ->
+        case Sig.findOper s (Sig.opers sig) of
+          Nothing -> fail (shows pos "Keyword " ++ s ++ " unknown")
+          Just op -> loadOper sig pos vars strict op l
+      Just f -> f sig pos vars strict l
+loadTerm _ _ _ x = fail (shows (annotation x) "Malformed term")
+
+type LoadFunction m = Sig -> Pos -> [Term] -> Bool -> [SExpr Pos] -> m Term
+
+loadDispatch :: MonadFail m => [(String, LoadFunction m)]
+loadDispatch =
+    [("pubk", loadPubk)
+    ,("privk", loadPrivk)
+    ,("invk", loadInvk)
+    ,("ltk", loadLtk)
+    ,("bltk", loadBltk)
+    ,("gen", loadGen)
+    ,("exp", loadExp)
+    ,("one", loadOne)
+    ,("rec", loadRec)
+    ,("mul", loadMul)
+    ,("cat", loadCat)
+    ]
+
+locnMesg :: Term -> Term -> Term
+locnMesg pt t =
+    F (Tupl "cat") [pt, t]
+
+isLocnMsg :: Term -> Bool
+isLocnMsg (F (Tupl "cat") [pt, _]) =
+    case pt of
+      F Pval [I _] -> True
+      _ ->  False
+isLocnMsg _ = False
+
+locnMsgPayload :: Term -> Term
+locnMsgPayload m@(F (Tupl "cat") [pt, t]) =
+    case pt of
+      F Pval [I _] -> t
+      _            -> m
+locnMsgPayload x = x
+
+locnMsgPoint :: MonadFail m => Term -> m Term
+locnMsgPoint (F (Tupl "cat") [pt, _]) =
+    case pt of
+      F Pval [I _] -> return pt
+      _ -> fail ("locnMsgPoint:  Bad point " ++ show pt)
+locnMsgPoint x =
+    fail ("locnMsgPoint:  Bad state message " ++ show x)
+
+loadLocnTerm :: MonadFail m => Sig -> Gen -> SExpr Pos ->
+                SExpr Pos -> Term -> m (Gen, Term, Term)
+loadLocnTerm sig gen (S pos ptStr) (S pos' pvalStr) t =
+    do
+      (gen', vars) <- loadVar sig (gen, []) (S pos ptStr, S pos' pvalStr)
+      case vars of
+        []     -> fail (shows pos "No variable generated by loadVar in loadLocnTerm")
+        pt : _ -> return (gen', pt, locnMesg pt t)
+loadLocnTerm _ _ _ _ _ =
+    fail "loadLocnTerm:  Call only with SExprs that are really Strings"
+
+-- Atom constructors: pubk privk invk ltk
+
+loadPubk :: MonadFail m => LoadFunction m
+loadPubk _ _ vars _ [S pos s] =
+    do
+      t <- loadLookupName pos vars s
+      return $ F (Akey "akey") [F Pubk [I $ varId t]]
+loadPubk _ _ vars _ [Q _ c, S pos s] =
+    do
+      t <- loadLookupName pos vars s
+      return $ F (Akey "akey") [F Pubk [C c, I $ varId t]]
+loadPubk _ pos _ _ _ = fail (shows pos "Malformed pubk")
+
+loadPrivk :: MonadFail m => LoadFunction m
+loadPrivk _ _ vars _ [S pos s] =
+    do
+      t <- loadLookupName pos vars s
+      return $ F (Akey "akey") [F (Invk "akey") [F Pubk [I $ varId t]]]
+loadPrivk _ _ vars _ [Q _ c, S pos s] =
+    do
+      t <- loadLookupName pos vars s
+      return $ F (Akey "akey") [F (Invk "akey") [F Pubk [C c, I $ varId t]]]
+loadPrivk _ pos _ _ _ = fail (shows pos "Malformed privk")
+
+loadInvk :: MonadFail m => LoadFunction m
+loadInvk _ _ vars _ [S pos s] =
+    do
+      (op, t) <- loadLookupAkey pos vars s
+      return $ F (Akey op) [F (Invk op) [I $ varId t]]
+loadInvk _ _ vars _ [L _ [S _ pubk, S pos s]]
+  | pubk == "pubk" =
+    do
+      t <- loadLookupName pos vars s
+      return $ F (Akey "akey") [F (Invk "akey") [F Pubk [I $ varId t]]]
+loadInvk _ _ vars _ [L _ [S _ pubk, Q _ c, S pos s]]
+  | pubk == "pubk" =
+    do
+      t <- loadLookupName pos vars s
+      return $ F (Akey "akey") [F (Invk "akey") [F Pubk [C c, I $ varId t]]]
+loadInvk _ _ vars _ [L _ [S _ privk, S pos s]]
+  | privk == "privk" =
+    do
+      t <- loadLookupName pos vars s
+      return $ F (Akey "akey") [F Pubk [I $ varId t]]
+loadInvk _ _ vars _ [L _ [S _ privk, Q _ c, S pos s]]
+  | privk == "privk" =
+    do
+      t <- loadLookupName pos vars s
+      return $ F (Akey "akey") [F Pubk [C c, I $ varId t]]
+loadInvk sig _ vars strict [L _ [S _ invk, t]]
+  | invk == "invk" =
+    do
+      a <- loadTerm sig vars strict t
+      case a of
+        F (Akey _) _ -> return a
+        _ -> fail (shows (annotation t) "Expecting an akey")
+loadInvk _ pos _ _ _ = fail (shows pos "Malformed invk")
+
+loadLtk :: MonadFail m => LoadFunction m
+loadLtk _ _ vars _ [S pos s, S pos' s'] =
+    do
+      t <- loadLookupName pos vars s
+      t' <- loadLookupName pos' vars s'
+      return $ F (Data "skey") [F Ltk [I $ varId t, I $ varId t']]
+loadLtk _ pos _ _ _ = fail (shows pos "Malformed ltk")
+
+loadBltk :: MonadFail m => LoadFunction m
+loadBltk _ _ vars _ [S pos s, S pos' s'] =
+    do
+      t <- loadLookupName pos vars s
+      t' <- loadLookupName pos' vars s'
+      return $ F (Data "skey") [F Bltk [I $ varId t, I $ varId t']]
+loadBltk pos _ _ _ _ = fail (shows pos "Malformed bltk")
+
+-- Base and exponents
+
+loadGen :: MonadFail m => LoadFunction m
+loadGen _ _ _ _ [] =
+    return $ F Base [F Genr []]
+loadGen _ pos _ _ _ = fail (shows pos "Malformed gen")
+
+loadExp :: MonadFail m => LoadFunction m
+loadExp sig _ vars _ [x, x'] =
+    do
+      t <- loadBase sig vars x
+      t' <- loadExpr sig vars False x'
+      return $ F Base [idSubst emptyIdMap $ F Exp [t, G t']]
+loadExp _ pos _ _ _ = fail (shows pos "Malformed exponentiation")
+
+loadBase :: MonadFail m => Sig -> [Term] -> SExpr Pos -> m Term
+loadBase sig vars x =
+    do
+      t <- loadTerm sig vars False x
+      case t of
+        F Base [t] -> return t
+        _ -> fail (shows (annotation x) "Malformed base")
+
+loadExpr :: MonadFail m => Sig -> [Term] -> Bool -> SExpr Pos -> m Group
+loadExpr sig vars False x =
+    do
+      t <- loadTerm sig vars False x
+      case t of
+        G t -> return t
+        _ -> fail (shows (annotation x) "Malformed exponent")
+loadExpr sig vars True x = loadExpr sig vars False x
+--loadExpr _ True x =
+--    do
+--      fail (shows (annotation x) "Disallowed bare exponent")
+
+loadOne :: MonadFail m => LoadFunction m
+loadOne _ _ _ False [] =
+    return $ G M.empty
+loadOne _ pos _ True _ = fail (shows pos "Disallowed bare exponent")
+loadOne _ pos _ _ _ = fail (shows pos "Malformed one")
+
+loadRec :: MonadFail m => LoadFunction m
+loadRec sig _ vars False [x] =
+    do
+      t <- loadExpr sig vars False x
+      return $ G $ invert t
+loadRec _ pos _ True _ = fail (shows pos "Disallowed bare exponent")
+loadRec _ pos _ _ _ = fail (shows pos "Malformed rec")
+
+loadMul :: MonadFail m => LoadFunction m
+loadMul sig _ vars False xs =
+    do
+      t <- foldM f M.empty xs
+      return $ G t
+    where
+      f acc x =
+          do
+            t <- loadExpr sig vars False x
+            return $ mul t acc
+loadMul _ pos _ True _ = fail (shows pos "Disallowed bare exponent")
+
+loadCat :: MonadFail m => LoadFunction m
+loadCat sig _ vars strict (l : ls) =
+    do
+      ts <- mapM (loadTerm sig vars strict) (l : ls)
+      return $ foldr1 (\a b -> F (Tupl "cat") [a, b]) ts
+loadCat _ pos _ _ _ = fail (shows pos "Malformed cat")
+
+loadOper :: MonadFail m => Sig -> Pos -> [Term] -> Bool ->
+            Sig.Operator -> [SExpr Pos] -> m Term
+loadOper sig pos vars strict (Sig.Enc op) (l : l' : ls) =
+    do
+      let (butLast, last) = splitLast l (l' : ls)
+      t <- loadCat sig pos vars strict butLast
+      t' <- loadTerm sig vars False last
+      return $ F (Enc op) [t, t']
+loadOper _ pos _ _ (Sig.Enc _) _ = fail (shows pos "Malformed enc")
+loadOper sig pos vars strict (Sig.Senc op) (l : l' : ls) =
+    do
+      let (butLast, last) = splitLast l (l' : ls)
+      t <- loadCat sig pos vars strict butLast
+      t' <- loadTerm sig vars False last
+      case t' of
+        F (Akey _) _ -> fail (shows pos "Expecting a symmetric key")
+        _ -> return $ F (Enc op) [t, t']
+loadOper _ pos _ _ (Sig.Senc _) _ = fail (shows pos "Malformed senc")
+loadOper sig pos vars strict (Sig.Aenc op) (l : l' : ls) =
+    do
+      let (butLast, last) = splitLast l (l' : ls)
+      t <- loadCat sig pos vars strict butLast
+      t' <- loadTerm sig vars False last
+      case isAkeyNotInvk t' of
+        True -> return $ F (Enc op) [t, t']
+        False -> fail (shows pos "Expecting an asymmetric key")
+loadOper _ pos _ _ (Sig.Aenc _) _ = fail (shows pos "Malformed aenc")
+loadOper sig pos vars strict (Sig.Sign op) (l : l' : ls) =
+    do
+      let (butLast, last) = splitLast l (l' : ls)
+      t <- loadCat sig pos vars strict butLast
+      t' <- loadTerm sig vars False last
+      case t' of
+        F (Akey _) [F (Invk _) _] -> return $ F (Enc op) [t, t']
+        _ -> fail (shows pos "Expecting an asymmetric inverse key")
+loadOper _ pos _ _ (Sig.Sign _) _ = fail (shows pos "Malformed sign")
+loadOper sig _ vars _ (Sig.Hash op) (l : ls) =
+    do
+      ts <- mapM (loadTerm sig vars False) (l : ls)
+      return $ F (Hash op) [foldr1 (\a b -> F (Tupl "cat") [a, b]) ts]
+loadOper _ pos _ _ (Sig.Hash _) _ = fail (shows pos "Malformed hash")
+loadOper sig _ vars strict (Sig.Tupl op len) (l : ls) | length (l : ls) == len =
+    do
+      ts <- mapM (loadTerm sig vars strict) (l : ls)
+      return $ F (Tupl op) ts
+loadOper _ pos _ _ (Sig.Tupl s n) _ = fail (shows pos "Bad tuple length " ++ s ++ " should be " ++ (show n))
+
+-- Could have used init and last, but whatever...
+splitLast :: a -> [a] -> ([a], a)
+splitLast x xs =
+    loop [] x xs
+    where
+      loop z x [] = (reverse z, x)
+      loop z x (y : ys) = loop (x : z) y ys
+
+isAkeyNotInvk :: Term -> Bool
+isAkeyNotInvk (F (Akey _) [F (Invk _) _]) = False
+isAkeyNotInvk (F (Akey _) _) = True
+isAkeyNotInvk _ = False
+
+--   combineVarListSpecs :: [(String,[String])] -> [(String,[String])] -> [(String,[String])]
+--   combineVarListSpecs [] vls = vls
+--   combineVarListSpecs vls [] = vls
+--   combineVarListSpecs ((s, vnames) : vls) ((s', vnames') : vls')
+--       | s == s' = (s, (L.nub $ vnames ++ vnames'))
+--                   : (combineVarListSpecs vls vls')
+--       | otherwise =
+--           combineVarListSpecs vls $ (s', vnames') : (combineVarListSpecs [(s, vnames)] vls')
+
+sortNameAndVarName :: Term -> (String,String)
+sortNameAndVarName (I (Id(_, name))) = ("mesg", name)
+sortNameAndVarName (F (Data sort) [I (Id(_, name))]) = (sort, name)
+sortNameAndVarName (F (Akey sort) [I (Id(_, name))]) = (sort, name)
+sortNameAndVarName (F Name [I (Id(_, name))]) = ("name", name)
+sortNameAndVarName (F Pval [I (Id(_, name))]) = ("pt", name)
+sortNameAndVarName (F Chan [I (Id(_, name))]) = ("chan", name)
+sortNameAndVarName (F Locn [I (Id(_, name))]) = ("locn", name)
+sortNameAndVarName (F Base [I (Id (_,name))]) = ("base", name)
+sortNameAndVarName (D (Id(_, name))) = ("strd", name)
+sortNameAndVarName (X (Id(_, name))) = ("indx", name)
+
+sortNameAndVarName (G m)
+    | isBasisVar m = ("rndx", (case getGroupVar m of
+                                 Id (_,name) -> name))
+    | isExprVar m = ("expt", (case getGroupVar m of
+                                 Id (_,name) -> name))
+    | otherwise = error ("sortNameAndVarName:  Non-var group member " ++ (show (G m)))
+
+sortNameAndVarName t = error ("sortNameAndVarName:  Non-var " ++ (show t))
+
+type VarListSpec = [(String,[String])]
+
+addSortNameToVarListSpec :: (String,String) -> VarListSpec -> Maybe VarListSpec
+addSortNameToVarListSpec (_,_) [] = Nothing
+addSortNameToVarListSpec (sn,vn) ((sn',vns) : rest)
+    | sn == sn' = Just $ (sn, adjoin vn vns) : rest
+    | otherwise =
+        do
+          added <- addSortNameToVarListSpec (sn,vn) rest
+          return $ ((sn',vns) : added)
+
+varListSpecOfVars :: [Term] -> VarListSpec
+varListSpecOfVars [] = []
+varListSpecOfVars (t : rest) =
+    let (sn,vn) = sortNameAndVarName t in
+    let specRest = varListSpecOfVars rest in
+    case addSortNameToVarListSpec (sn,vn) specRest of
+      Nothing -> (sn,[vn]) : specRest
+      Just added -> added
+
+-- Term specific displaying functions
+
+newtype Context = Context [(Id, String)] deriving Show
+
+displayVars :: Context -> [Term] -> [SExpr ()]
+displayVars _ [] = []
+displayVars ctx vars =
+    case map (displayVar ctx) vars of
+      (v, t) : pairs ->
+        loop t [v] pairs
+        where
+          loop t vs [] = [L () (reverse (t:vs))]
+          loop t vs ((v',t'):xs)
+            | t == t' = loop t (v':vs) xs
+            | otherwise = L () (reverse (t:vs)):loop t' [v'] xs
+      [] -> error "Algebra.displayVars: [] vars cannot happen"
+
+displayVar :: Context -> Term -> (SExpr (), SExpr ())
+displayVar ctx (I x) = displaySortId "mesg" ctx x
+displayVar ctx (F (Data sort) [I x]) = displaySortId sort ctx x
+displayVar ctx (F (Akey sort) [I x]) = displaySortId sort ctx x
+displayVar ctx (F Name [I x]) = displaySortId "name" ctx x
+displayVar ctx (F Pval [I x]) = displaySortId "pval" ctx x
+displayVar ctx (F Chan [I x]) = displaySortId "chan" ctx x
+displayVar ctx (F Locn [I x]) = displaySortId "locn" ctx x
+displayVar ctx (F Base [I x]) = displaySortId "base" ctx x
+displayVar ctx t@(G x)
+    | isBasisVar x = displaySortId "rndx" ctx (varId t)
+    | isGroupVar x = displaySortId "expt" ctx (varId t)
+displayVar ctx (D x) = displaySortId "strd" ctx x
+displayVar ctx (X x) = displaySortId "indx" ctx x
+displayVar _ _ =
+    error "Algebra.displayVar: term not a variable with its sort"
+
+displaySortId :: String -> Context -> Id -> (SExpr (), SExpr ())
+displaySortId sort ctx x = (displayId ctx x, S () sort)
+
+displayId :: Context -> Id -> SExpr ()
+displayId (Context ctx) x =
+    case lookup x ctx of
+      Nothing ->
+          let msg = idName x ++ " in a display context" ++ (show ctx) in
+          error $ "Algebra.displayId: Cannot find variable " ++ msg
+      Just name -> S () name
+
+-- JDG:  Use this if debugging
+--   displayId :: Context -> Id -> SExpr ()
+--   displayId (Context ctx) x =
+--       case lookup x ctx of
+--         Nothing ->
+--             let _ = idName x ++ " in a display context" ++ (show ctx) in
+--             -- msg ... error $ "Algebra.displayId: Cannot find variable
+--             -- " ++ msg
+--            S () ("*" ++ idName x ++ "*")
+--         Just name -> S () name
+
+notPt :: Term -> Bool
+notPt (F Pval [I _]) = False
+notPt _ = True
+
+displayTerm :: Context -> Term -> SExpr ()
+displayTerm ctx (I x) = displayId ctx x
+displayTerm ctx (F (Data _) [I x]) = displayId ctx x
+displayTerm ctx (F (Data _) [F Ltk [I x, I y]]) =
+    L () [S () "ltk", displayId ctx x, displayId ctx y]
+displayTerm ctx (F op@(Data _) [F Bltk [I x, I y]])
+  |  x > y = displayTerm ctx (F op [F Bltk [I y, I x]])
+  | otherwise = L () [S () "bltk", displayId ctx x, displayId ctx y]
+displayTerm ctx (F (Akey _) [t]) =
+    case t of
+      I x -> displayId ctx x
+      F (Invk _) [I x] -> L () [S () "invk", displayId ctx x]
+      F Pubk [I x] -> L () [S () "pubk", displayId ctx x]
+      F Pubk [C c, I x] -> L () [S () "pubk", Q () c, displayId ctx x]
+      F (Invk _) [F Pubk [I x]] -> L () [S () "privk", displayId ctx x]
+      F (Invk _) [F Pubk [C c, I x]] ->
+          L () [S () "privk", Q () c, displayId ctx x]
+      _ -> error ("Algebra.displayAkey: Bad term " ++ show t)
+displayTerm ctx (F Name [I x]) = displayId ctx x
+displayTerm ctx (F Pval [I x]) = displayId ctx x
+displayTerm ctx (F Chan [I x]) = displayId ctx x
+displayTerm ctx (F Locn [I x]) = displayId ctx x
+displayTerm ctx (F Base [t]) =
+    displayBase t
+    where
+      displayBase (I x) = displayId ctx x
+      displayBase (F Genr []) =
+          L () [S () "gen"]
+      displayBase (F Exp [t0, G t1]) =
+          L () [S () "exp", displayBase t0, displayTerm ctx (G t1)]
+      displayBase (G m) =
+          L () [S () "exp", displayTerm ctx (G m)]
+      displayBase t = error ("Algebra.displayBase: Bad term " ++ show t)
+displayTerm ctx (G t) =
+    displayExpr t
+    where
+      displayExpr t
+          | M.null t = L () [S () "one"]
+          | otherwise =
+              case factors t of
+                [f] -> displayFactor f
+                fs -> L () (S () "mul" : map displayFactor fs)
+      displayFactor (x, (_, n))
+          | n >= 0 = displayId ctx x
+          | otherwise = L () [S () "rec", displayId ctx x]
+displayTerm _ (C t) = Q () t
+displayTerm ctx (F (Tupl "cat") [t0, t1]) =
+    L () (S () "cat" : displayTerm ctx t0 : displayList ctx t1)
+displayTerm ctx (F (Tupl op) ts) =
+    L () (S () op : map (displayTerm ctx) ts)
+displayTerm ctx (F (Enc op) [t0, t1]) =
+    L () (S () op : displayEnc ctx t0 t1)
+displayTerm ctx (F (Hash op) [t]) =
+    L () (S () op : displayList ctx t)
+displayTerm ctx (D x) = displayId ctx x
+displayTerm _ (Z z) = N () z
+displayTerm ctx (X x) = displayId ctx x
+displayTerm _ (Y z) = L () [S () "idx", N () z]
+displayTerm _ t = error ("Algebra.displayTerm: Bad term " ++ show t)
+
+displayTermNoPt :: Context -> Term -> SExpr ()
+displayTermNoPt ctx (I x) = displayId ctx x
+displayTermNoPt ctx (F (Data _) [I x]) = displayId ctx x
+displayTermNoPt ctx (F (Data _) [F Ltk [I x, I y]]) =
+    L () [S () "ltk", displayId ctx x, displayId ctx y]
+displayTermNoPt ctx (F op@(Data _) [F Bltk [I x, I y]])
+  |  x > y = displayTermNoPt ctx (F op [F Bltk [I y, I x]])
+  | otherwise = L () [S () "bltk", displayId ctx x, displayId ctx y]
+displayTermNoPt ctx (F (Akey _) [t]) =
+    case t of
+      I x -> displayId ctx x
+      F (Invk _) [I x] -> L () [S () "invk", displayId ctx x]
+      F Pubk [I x] -> L () [S () "pubk", displayId ctx x]
+      F Pubk [C c, I x] -> L () [S () "pubk", Q () c, displayId ctx x]
+      F (Invk _) [F Pubk [I x]] -> L () [S () "privk", displayId ctx x]
+      F (Invk _) [F Pubk [C c, I x]] ->
+          L () [S () "privk", Q () c, displayId ctx x]
+      _ -> error ("Algebra.displayAkey: Bad term " ++ show t)
+displayTermNoPt ctx (F Name [I x]) = displayId ctx x
+displayTermNoPt _ (F Pval [I _]) = S () "" -- displayId ctx x
+displayTermNoPt ctx (F Chan [I x]) = displayId ctx x
+displayTermNoPt ctx (F Locn [I x]) = displayId ctx x
+displayTermNoPt ctx (F Base [t]) =
+    displayBase t
+    where
+      displayBase (I x) = displayId ctx x
+      displayBase (F Genr []) =
+          L () [S () "gen"]
+      displayBase (F Exp [t0, G t1]) =
+          L () [S () "exp", displayBase t0, displayTerm ctx (G t1)]
+      displayBase t = error ("Algebra.displayBase: Bad term " ++ show t)
+displayTermNoPt ctx (G t) =
+    displayExpr t
+    where
+      displayExpr t
+          | M.null t = L () [S () "one"]
+          | otherwise =
+              case factors t of
+                [f] -> displayFactor f
+                fs -> L () (S () "mul" : map displayFactor fs)
+      displayFactor (x, (_, n))
+          | n >= 0 = displayId ctx x
+          | otherwise = L () [S () "rec", displayId ctx x]
+displayTermNoPt _ (C t) = Q () t
+displayTermNoPt ctx (F (Tupl "cat") [t0, t1]) =
+    case t0 of
+      (F Pval [I _]) -> displayTermNoPt ctx t1
+      _ -> L () (S () "cat" : displayTermNoPt ctx t0 : displayList ctx t1)
+displayTermNoPt ctx (F (Tupl op) ts) =
+    L () (S () op : map (displayTerm ctx) ts)
+displayTermNoPt ctx (F (Enc op) [t0, t1]) =
+    L () (S () op : displayEnc ctx t0 t1)
+displayTermNoPt ctx (F (Hash op) [t]) =
+    L () (S () op : displayList ctx t)
+displayTermNoPt ctx (D x) = displayId ctx x
+displayTermNoPt _ (Z z) = N () z
+displayTermNoPt ctx (X x) = displayId ctx x
+displayTermNoPt _ (Y z) = N () z
+displayTermNoPt _ t = error ("Algebra.displayTermNoPt: Bad term " ++ show t)
+
+displayList :: Context -> Term -> [SExpr ()]
+displayList ctx (F (Tupl "cat") [t0, t1]) =
+  displayTerm ctx t0 : displayList ctx t1
+displayList ctx t = [displayTerm ctx t]
+
+displayEnc :: Context -> Term -> Term -> [SExpr ()]
+displayEnc ctx (F (Tupl "cat") [t0, t1]) t =
+  displayTerm ctx t0 : displayEnc ctx t1 t
+displayEnc ctx t0 t1 = [displayTerm ctx t0, displayTerm ctx t1]
+
+displayEnv :: Context -> Context -> Env -> [SExpr ()]
+displayEnv ctx ctx' (Env (_, r)) =
+    map (\(x, t) -> L () [displayTerm ctx x, displayTerm ctx'' t]) r'
+    where
+      r' = map (\(x, t) -> (I x, inferSort t)) $ M.assocs r
+      ctx'' = addToContext ctx' (map snd r')
+
+displayEnvSansPts :: [Term] -> Context -> Context -> Env -> [SExpr ()]
+displayEnvSansPts vars ctx ctx' (Env (_, r)) =
+    map (\(x, t) -> L () [displayTerm ctx x, displayTerm ctx'' t]) r'
+    where
+      nonPt x = not (F Pval [x] `elem` vars)
+      r' = map (\(x, t) -> (I x, inferSort t)) $ M.assocs $ M.filter nonPt r
+      ctx'' = addToContext ctx' (map snd r')
+
+-- displaySubst c s displays a substitution s in context c, where some
+-- variables that occur in s might not be in c.  Enough sort
+-- inference is performed so as to allow the extension of the context.
+displaySubst :: Context -> Subst -> [SExpr ()]
+displaySubst ctx (Subst r) =
+    map (\(x, t) -> L () [displayTerm ctx' x, displayTerm ctx' t]) r'
+    where
+      r' = map (\(x, t) -> (I x, inferSort t)) $ M.assocs r
+      ctx' = foldl (\ctx (x, t) -> addToContext ctx [x, t]) ctx r'
+
+inferSort :: Term -> Term
+inferSort t@(F (Invk op) _) = F (Akey op) [t]
+inferSort t@(F Pubk _) = F (Akey "akey") [t]
+inferSort t@(F Ltk _) = F (Data "skey") [t]
+inferSort t@(F Bltk _) = F (Data "skey") [t]
+inferSort t@(F Genr _) = F Base [t]
+inferSort t@(F Exp _) = F Base [t]
+inferSort t = t
+
+emptyContext :: Context
+emptyContext = Context []
+
+-- Generate names for output renaming as necessary.
+-- Assumes the input is a list of term that are well-formed
+addToContext :: Context -> [Term] -> Context
+addToContext ctx u =
+    foldl (foldVars varContext) ctx u
+
+varContext :: Context -> Term -> Context
+varContext ctx t =
+    let x = varId t
+        name = rootName $ idName x in
+    if hasId ctx x then
+        ctx
+    else
+        if hasName ctx name then
+            extendContext ctx x (genName ctx name)
+        else
+            extendContext ctx x name
+
+hasId :: Context -> Id -> Bool
+hasId (Context ctx) id =
+    maybe False (const True) (lookup id ctx)
+
+hasName :: Context -> String -> Bool
+hasName (Context ctx) name =
+    maybe False (const True) (L.find ((name ==) . snd) ctx)
+
+extendContext :: Context -> Id -> String -> Context
+extendContext (Context ctx) x name =
+    Context $ (x, name) : ctx
+
+genName :: Context -> String -> String
+genName ctx name =
+    loop 0
+    where
+      root = '-' : reverse name
+      loop :: Int -> String
+      loop n =
+          let name' = revapp root (show n) in
+          if hasName ctx name' then
+              loop (n + 1)
+          else
+              name'
+      revapp [] s = s
+      revapp (c : cs) s = revapp cs (c : s)
+
+rootName :: String -> String
+rootName name =
+    noHyphen 0 name
+    where
+      noHyphen _ [] = name
+      noHyphen i (c : s)
+          | c == '-' = hyphen i (i + 1) s
+          | otherwise = noHyphen (i + 1) s
+      hyphen i _ [] = rootName $ take i name
+      hyphen i j (c : s)
+          | isDigit c  = hyphen i (j + 1) s
+          | otherwise = noHyphen j (c : s)
diff --git a/src/CPSA/Annotations/Annotations.hs b/src/CPSA/Annotations/Annotations.hs
deleted file mode 100644
--- a/src/CPSA/Annotations/Annotations.hs
+++ /dev/null
@@ -1,523 +0,0 @@
--- Adds annotations to preskeletons
-
--- Copyright (c) 2009 The MITRE Corporation
---
--- This program is free software: you can redistribute it and/or
--- modify it under the terms of the BSD License as published by the
--- University of California.
-
-module CPSA.Annotations.Annotations (Prot, annotations) where
-
-import Control.Monad
-import qualified Data.List as L
-import qualified Data.Set as S
-import qualified Data.Maybe as M
-import CPSA.Lib.Utilities
-import CPSA.Lib.SExpr
-import CPSA.Lib.Algebra
-import CPSA.Annotations.Formulas
-
-{--
-import System.IO.Unsafe
-z :: Show a => a -> b -> b
-z x y = unsafePerformIO (print x >> return y)
---}
-
--- Constructs the output or reports an error from the input given a
--- protocol name, and its algebra specific starting variable
--- generator.  The third argument is the protocol information required
--- for processing preskeletons.
-
-annotations :: (Algebra t p g s e c, MonadFail m) => String -> g ->
-         [Prot t g] -> SExpr Pos -> m ([Prot t g], SExpr Pos)
-annotations name origin ps x@(L pos (S _ "defprotocol" : xs)) =
-    do
-      p <- loadProt name origin pos xs
-      return (p : ps, x)
-annotations _ _ ps (L pos (S _ "defskeleton" : xs)) =
-    do
-      y <- findPreskel pos ps xs
-      return (ps, y)
-annotations _ _ ps x = return (ps, x)
-
--- Load a protocol
-
--- The Prot record contains information extraced from protocols for
--- use when processing preskeletons.
-data Prot t g = Prot
-    { pname :: String,          -- Protocol name
-      gen :: g,                 -- Generator for preskeletons
-      roles :: [Role t] }
-    deriving Show
-
--- The Role record contains information extraced from roles for use
--- when processing preskeletons.
-data Role t = Role
-    { rname :: String,          -- Role name
-      vars :: [t],              -- Declared variables
-      prin :: t,                -- Principal
-      forms :: [Formula t] }    -- Annotations
-    deriving Show
-
--- Load a protocol.  On success, returns a Prot record.
-
-loadProt :: (Algebra t p g s e c, MonadFail m) => String -> g ->
-            Pos -> [SExpr Pos] -> m (Prot t g)
-loadProt nom origin pos (S _ name : S _ alg : x : xs)
-    | alg /= nom =
-        fail (shows pos $ "Expecting terms in algebra " ++ nom)
-    | otherwise =
-        do
-          (gen, rs) <- loadRoles origin (x : xs)
-          return (Prot { pname = name, gen = gen, roles = rs })
-loadProt _ _ pos _ =
-    fail (shows pos "Malformed protocol")
-
--- A generator is threaded thoughout the protocol loading process so
--- as to ensure no variable occurs in two roles.  It also ensures that
--- every variable that occurs in a preskeleton never occurs in one of
--- its roles.
-
-loadRoles :: (Algebra t p g s e c, MonadFail m) => g ->
-             [SExpr Pos] -> m (g, [Role t])
-loadRoles origin xs =
-    mapAccumLM loadRole origin xs
-
-loadRole :: (Algebra t p g s e c, MonadFail m) => g ->
-            SExpr Pos -> m (g, Role t)
-loadRole gen (L pos (S _ "defrole" :
-                     S _ name :
-                     L _ (S _ "vars" : vars) :
-                     L _ (S _ "trace" : _ : c) :
-                     rest)) =
-    do
-      (gen, vars) <- loadDecls gen vars
-      let len = 1 + length c    -- Length of the trace
-      let annos = assoc annotationsKey rest
-      (gen, prin, forms) <- loadFormulas pos vars len gen annos
-      let r = Role { rname = name, vars = vars, prin = prin, forms = forms }
-      return (gen, r)
-loadRole _ x =
-    fail (shows (annotation x) "Malformed role")
-
-loadFormulas :: (Algebra t p g s e c, MonadFail m) => Pos -> [t] -> Int ->
-                g -> [SExpr Pos] -> m (g, t, [Formula t])
-loadFormulas pos vars len gen (x : xs) =
-    do
-      prin <- loadTerm vars False x
-      case isAtom prin of
-        True -> return ()
-        False -> fail (shows pos "principal not an atom")
-      (g, alist) <- mapAccumLM (loadIndexedFormula vars len) gen xs
-      checkIndices pos alist
-      return (g, prin, map (getNth alist) (nats len))
-    where
-      getNth alist i = maybe true id (lookup i alist)
-loadFormulas pos _ _ _ [] =
-    fail (shows pos "Role missing annotations")
-
-loadIndexedFormula :: (Algebra t p g s e c, MonadFail m) => [t] -> Int ->
-                      g -> SExpr Pos -> m (g, (Int, Formula t))
-loadIndexedFormula _ len _ (L _ [N pos i, _])
-    | i < 0 || i >= len = fail (shows pos "Bad index for formula")
-loadIndexedFormula vars _ gen (L _ [N _ i, form]) =
-    do
-      (g, f) <-  loadFormula vars gen form
-      return (g, (i, f))
-loadIndexedFormula _ _ _ x =
-    fail (shows (annotation x) "Malformed indexed formula")
-
--- Ensure there are no formulas with the same index
-checkIndices :: (Algebra t p g s e c, MonadFail m) => Pos ->
-                [(Int, Formula t)] -> m ()
-checkIndices _ [] = return ()
-checkIndices pos ((i, _) : alist)
-    | any ((== i) . fst) alist =
-        fail (shows pos $ showString "Duplicate index " $ show i)
-    | otherwise = checkIndices pos alist
-
--- Load a preskeleton
-
-data Instance t e = Instance
-    -- Role from which this was instantiated (Nothing for listeners)
-    { pos :: Pos,               -- Instance position
-      role :: Maybe (Role t),
-      env :: e,                 -- The environment
-      height :: Int }           -- Height of the instance
-    deriving Show
-
-type Strands = [Int]            -- [Strand height]
-
-data Dir = InDir
-         | OutDir
-         | SyncDir
-         deriving Eq
-
-type Trace = [Dir]              -- Directions of terms in trace
-
-type Node = (Int, Int)          -- (Strand, Position)
-
-type Pair = (Node, Node)        -- Precedes relation
-
-data Preskel t g e = Preskel
-    { protocol :: Prot t g,
-      insts :: [Instance t e],
-      traces :: [Trace],
-      orderings :: [Pair] }
-
--- Find protocol and then load preskeleton.
--- Remove any old annotations, and add new ones.
-findPreskel :: (Algebra t p g s e c, MonadFail m) => Pos ->
-               [Prot t g] -> [SExpr Pos] -> m (SExpr Pos)
-findPreskel pos ps (S _ name : xs) =
-    case L.find (\p -> name == pname p) ps of
-      Nothing -> fail (shows pos $ "Protocol " ++ name ++ " unknown")
-      Just p ->
-          do
-            xs <- updatePreskel pos p xs
-            return (L pos (S pos "defskeleton" : S pos name : xs))
-findPreskel pos _ _ = fail (shows pos "Malformed skeleton")
-
-updatePreskel :: (Algebra t p g s e c, MonadFail m) => Pos ->
-                 Prot t g -> [SExpr Pos] -> m [SExpr Pos]
-updatePreskel pos prot (vs@(L _ (S _ "vars" : vars)) : xs)
-    | not (realized xs) || not (hasKey tracesKey xs) =
-        return (vs : xs)        -- Don't annotate
-    | otherwise =
-        do
-          (gen', kvars) <- loadDecls (gen prot) vars
-          k <- loadPreskel prot gen' kvars xs
-          let xs' = strip annotationsKey (strip obligationsKey xs)
-          annos <- mapM instAnnos (insts k)
-          obls <- obligations pos k annos
-          let xs'' = xs' ++ [addPos pos $ displayAnnos kvars annos,
-                             addPos pos $ displayObls kvars obls]
-          return (vs : xs'')
-updatePreskel pos _ _ = fail (shows pos "Malformed skeleton")
-
-realized :: [SExpr a] -> Bool
-realized xs =
-    null (assoc "unrealized" xs) && hasKey "unrealized" xs
-
-loadPreskel :: (Algebra t p g s e c, MonadFail m) => Prot t g ->
-               g -> [t] -> [SExpr Pos] -> m (Preskel t g e)
-loadPreskel prot gen kvars xs =
-    do
-      traces <- mapM loadTrace (assoc tracesKey xs)
-      insts <- loadInsts prot gen kvars [] xs
-      let heights = map height insts
-      orderings <- loadOrderings heights (assoc precedesKey xs)
-      return (Preskel { protocol = prot,
-                        insts = insts,
-                        traces = traces,
-                        orderings = orderings })
-
-loadInsts :: (Algebra t p g s e c, MonadFail m) => Prot t g ->
-             g -> [t] -> [Instance t e] -> [SExpr Pos] ->
-             m [Instance t e]
-loadInsts prot gen kvars insts (L pos (S _ "defstrand" : x) : xs) =
-    case x of
-      S _ role : N _ height : env ->
-          do
-            (gen', i) <- loadInst pos prot gen kvars role height env
-            loadInsts prot gen' kvars (i : insts) xs
-      _ ->
-          fail (shows pos "Malformed defstrand")
-loadInsts prot kvars gen insts (L pos (S _ "deflistener" : x) : xs) =
-    case x of
-      [_] ->
-          do
-            let i = Instance { pos = pos, role = Nothing,
-                               env = emptyEnv, height = 2 }
-            loadInsts prot kvars gen (i : insts) xs
-      _ ->
-          fail (shows pos "Malformed deflistener")
-loadInsts _ _ _ insts _ =
-    return (reverse insts)
-
-loadInst :: (Algebra t p g s e c, MonadFail m) => Pos -> Prot t g ->
-            g -> [t] -> String -> Int -> [SExpr Pos] ->
-            m (g, Instance t e)
-loadInst pos prot gen kvars role height env =
-    do
-      r <- lookupRole pos prot role
-      case height < 1 || height > length (forms r) of
-        True -> fail (shows pos "Bad height")
-        False -> return ()
-      (gen', env) <- foldM (loadMaplet kvars (vars r)) (gen, emptyEnv) env
-      return (gen', Instance { pos = pos, role = Just r,
-                               env = env, height = height })
-
-lookupRole :: MonadFail m => Pos -> Prot t g -> String -> m (Role t)
-lookupRole pos prot role =
-    case L.find (\r -> role == rname r) (roles prot) of
-      Nothing ->
-          fail (shows pos $ "Role " ++ role ++ " not found in " ++ pname prot)
-      Just r -> return r
-
-loadMaplet :: (Algebra t p g s e c, MonadFail m) =>
-              [t] -> [t] -> (g, e) -> SExpr Pos -> m (g, e)
-loadMaplet kvars vars env (L pos [domain, range]) =
-    do
-      t <- loadTerm vars False domain
-      t' <- loadTerm kvars False range
-      case match t t' env of
-        env' : _ -> return env'
-        [] -> fail (shows pos "Domain does not match range")
-loadMaplet _ _ _ x = fail (shows (annotation x) "Malformed maplet")
-
--- Load a trace
-
-loadTrace :: MonadFail m => SExpr Pos -> m Trace
-loadTrace (L _ xs) = mapM loadDt xs
-loadTrace x = fail (shows (annotation x) "Malformed trace")
-
-loadDt :: MonadFail m => SExpr Pos -> m Dir
-loadDt (L _ [S _ "recv", _]) = return InDir
-loadDt (L _ [S _ "send", _]) = return OutDir
-loadDt (L _ [S _ "sync", _]) = return SyncDir
-loadDt  (L pos [S _ dir, _]) =
-    fail (shows pos $ "Unrecognized direction " ++ dir)
-loadDt x = fail (shows (annotation x) "Malformed direction")
-
--- Load the node orderings
-
-loadOrderings :: MonadFail m => Strands -> [SExpr Pos] -> m [Pair]
-loadOrderings _ [] = return []
-loadOrderings strands (x : xs) =
-    do
-      np <- loadPair strands x
-      nps <- loadOrderings strands xs
-      return (adjoin np nps)
-
-loadPair :: MonadFail m => [Int] -> SExpr Pos -> m Pair
-loadPair heights (L pos [x0, x1]) =
-    do
-      n0 <- loadNode heights x0
-      n1 <- loadNode heights x1
-      case sameStrands n0 n1 of  -- Same strand
-        True -> fail (shows pos "Malformed pair -- nodes in same strand")
-        False -> return (n0, n1)
-    where
-      sameStrands (s0, _) (s1, _) = s0 == s1
-loadPair _ x = fail (shows (annotation x) "Malformed pair")
-
-loadNode :: MonadFail m => [Int] -> SExpr Pos -> m Node
-loadNode heights (L pos [N _ s, N _ p])
-    | s < 0 = fail (shows pos "Negative strand in node")
-    | p < 0 = fail (shows pos "Negative position in node")
-    | otherwise =
-        case height heights s of
-          Nothing -> fail (shows pos "Bad strand in node")
-          Just h | p < h -> return (s, p)
-          _ -> fail (shows pos "Bad position in node")
-    where
-      height [] _ = Nothing
-      height (x: xs) s          -- Assume s non-negative
-          | s == 0 = Just x
-          | otherwise = height xs (s - 1)
-loadNode _ x = fail (shows (annotation x) "Malformed node")
-
--- Formula instantiation
-
-type Annotations t = Maybe (t, [Formula t])
-
--- Construct the annotations for an instance
-instAnnos :: (Algebra t p g s e c, MonadFail m) =>
-             Instance t e -> m (Annotations t)
--- A listener has no annotations
-instAnnos (Instance { role = Nothing }) = return Nothing
-instAnnos i@(Instance { pos = pos, role = Just r }) =
-    do
-      t <- transTerm pos (vars r) (env i) (prin r)
-      fs <- mapM instAnno (take (height i) (forms r))
-      return (Just (t, fs))
-    where
-      instAnno f =
-          transForm pos (vars r) (env i) f
-
-showsTerm :: Algebra t p g s e c => [t] -> t -> ShowS
-showsTerm vars t = shows (displayTerm (varsContext vars) t)
-
-varsContext :: Algebra t p g s e c => [t] -> c
-varsContext vars =
-    addToContext emptyContext vars
-
--- Instantiate term and ensure all the free variables have been mapped.
-transTerm :: (Algebra t p g s e c, MonadFail m) => Pos -> [t] -> e -> t -> m t
-transTerm pos vars env t =
-    let t' = instantiate env t in
-    case L.find (flip S.member (fv t')) vars of
-      Nothing -> return t'
-      Just var ->
-          fail $ shows pos $ showString "The variable " $
-               showsTerm vars var " is not mapped in a term"
-    where
-      fv t = foldVars (flip S.insert) S.empty t
-
--- Instantiate formula and ensure all the free variables have been mapped.
-transForm :: (Algebra t p g s e c, MonadFail m) => Pos -> [t] -> e ->
-             Formula t -> m (Formula t)
-transForm pos vars env f =
-    let f' = finstantiate env f in
-    case L.find (flip S.member (freeVars f')) vars of
-      Nothing -> return f'
-      Just var ->
-          fail $ shows pos $ showString "The variable " $
-               showsTerm vars var " is not mapped in a formula"
-
-displayAnnos :: Algebra t p g s e c => [t] ->
-                [Annotations t] -> SExpr ()
-displayAnnos vars annos =
-    L () (S () annotationsKey : table)
-    where
-      table = [ displayObl vars ((s, p), t, f) |
-                (s, Just (t, fs)) <- zip [0..] annos,
-                (p, f) <- zip [0..] fs,
-                not (truth f) ]
-
--- Graphs as adjacency lists
-
-adj :: Strands -> [Pair] -> Node -> [Node]
-adj strands precedes (s, p) =
-    [ strand s h | (s, h) <- zip [0..] strands ] !! s !! p
-    where
-      strand :: Int -> Int -> [[Node]]
-      strand s h = [ entry (s, p) | p <- nats h ]
-      entry :: Node -> [Node]
-      entry n = enrich n [ n0 | (n0, n1) <- precedes, n1 == n ]
-      -- add strand succession edges
-      enrich (s, p) ns
-          | p > 0 = (s, p - 1) : ns
-          | otherwise = ns
-
--- Transitive closure
-
-close :: Strands -> [Pair] -> [Pair]
-close strands precedes =
-    loop prec False prec
-    where
-      prec = successors strands ++ precedes
-      loop prec False [] = prec
-      loop prec True [] =
-          loop prec False prec -- restart loop
-      loop prec repeat ((n0, n1) : pairs) =
-          inner prec repeat pairs [(n, n1) | n <- adj strands precedes n0]
-      inner prec repeat pairs [] =
-          loop prec repeat pairs
-      inner prec repeat pairs (p : rest)
-          | elem p prec = inner prec repeat pairs rest
-          | otherwise = inner (p : prec) True pairs rest
-
--- Filter pairs that don't effect annotations.
-
-orient :: [Trace] -> [Pair] -> [Pair]
-orient traces precedes =
-    L.nub $ L.filter pred precedes
-    where
-      pred (n0, n1) = outb traces n0 && inb traces n1
-
-outb :: [Trace] -> Node -> Bool
-outb traces (s, p) = OutDir == traces !! s !! p
-
-inb :: [Trace] -> Node -> Bool
-inb traces (s, p) = InDir == traces !! s !! p
-
-successors :: Strands -> [Pair]
-successors strands =
-    [((s, p), (s, p + 1)) | (s, n) <- zip [0..] strands, p <- nats (n - 1)]
-
-before :: MonadFail m => Pos -> Preskel t g e -> m [(Node, [Node])]
-before pos k =
-    case isAcyclic graph nodes of
-      False -> fail (shows pos "Cycle found")
-      True -> return $ alist (traces k) $ orient (traces k) closure
-    where
-      nodes = [(s, p) | s <- nats $ length strands, p <- nats $ strands !! s]
-      closure = close strands (orderings k)
-      strands = map height (insts k)
-      graph = adj strands (orderings k)
-
--- Computes all transmission nodes before a reception node
-
-alist :: [Trace] -> [Pair] -> [(Node, [Node])]
-alist traces precedes =
-    [ node (s, p) | (s, t) <- zip [0..] traces, (p, d) <- zip [0..] t,
-                    InDir == d ]
-    where
-      node n = (n, L.sort (depends n))
-      depends n = [ n0 | (n0, n1) <- precedes, n == n1 ]
-
-type Obligation t = (Node, t, Formula t)
-
-obligations :: (Algebra t p g s e c, MonadFail m) => Pos ->
-               Preskel t g e -> [Annotations t] -> m [Obligation t]
-obligations pos k annos =
-    do
-      depends <- before pos k
-      let obls = map (obligation annos) depends
-      -- filter out trivial obligations
-      return [ obl | Just obl@(_, _, f) <- obls, not (truth f) ]
-
-obligation :: Algebra t p g s e c => [Annotations t] ->
-              (Node, [Node]) -> Maybe (Obligation t)
-obligation annos (n@(s, p), ns) =
-    do
-      (t, fs) <- annos !! s                      -- t relies on (fs !! p)
-      let guar = [ if t == t' then f else says t' f | -- Believe t
-                   (s, p) <- ns,                 -- For each predecessor
-                   (t', fs) <- M.maybeToList (annos !! s), -- t' is the speaker
-                   let f = fs !! p ]               -- f is the guarantee
-      return (n, t, implies guar (fs !! p))
-
-displayObls :: Algebra t p g s e c => [t] -> [Obligation t] -> SExpr ()
-displayObls vars obls =
-    L () (S () obligationsKey : map (displayObl vars) obls)
-
-displayObl :: Algebra t p g s e c => [t] -> Obligation t -> SExpr ()
-displayObl vars (n, t, f) =
-    L () [displayNode n, displayTerm ctx t, displayFormula vars f]
-    where
-      ctx = varsContext vars
-
-displayNode :: Node -> SExpr ()
-displayNode (s, p) = L () [N () s, N () p]
-
-addPos :: Pos -> SExpr a -> SExpr Pos
-addPos pos (S _ s) = S pos s
-addPos pos (Q _ s) = Q pos s
-addPos pos (N _ n) = N pos n
-addPos pos (L _ l) = L pos (map (addPos pos) l)
-
--- Association lists
-
--- Lookup value in alist, appending values with the same key
-assoc :: String -> [SExpr a] -> [SExpr a]
-assoc key alist =
-    concat [ rest | L _ (S _ head : rest) <- alist, key == head ]
-
-keyPred :: String -> SExpr a -> Bool
-keyPred key (L _ (S _ head : _)) = key == head
-keyPred _ _ = False
-
-hasKey :: String -> [SExpr a] -> Bool
-hasKey key alist = any (keyPred key) alist
-
-strip :: String -> [SExpr a] -> [SExpr a]
-strip key alist = filter (not . keyPred key) alist
-
--- the key used in protocols and preskeletons for annotations
-annotationsKey :: String
-annotationsKey = "annotations"
-
--- The key used in preskeletons for obligations
-obligationsKey :: String
-obligationsKey = "obligations"
-
--- The key used in preskeletons for communication orderings
-precedesKey :: String
-precedesKey = "precedes"
-
--- The key used in preskeletons for traces
-tracesKey :: String
-tracesKey = "traces"
diff --git a/src/CPSA/Annotations/Formulas.hs b/src/CPSA/Annotations/Formulas.hs
deleted file mode 100644
--- a/src/CPSA/Annotations/Formulas.hs
+++ /dev/null
@@ -1,286 +0,0 @@
--- Formulas used as annotations
-
--- Copyright (c) 2009 The MITRE Corporation
---
--- This program is free software: you can redistribute it and/or
--- modify it under the terms of the BSD License as published by the
--- University of California.
-
-module CPSA.Annotations.Formulas (Formula, truth, true, says, implies,
-    freeVars, finstantiate, mapAccumLM, loadDecls, loadFormula,
-    displayFormula) where
-
-import Control.Monad
-import qualified Data.Set as S
-import CPSA.Lib.Utilities
-import CPSA.Lib.SExpr
-import CPSA.Lib.Algebra
-
--- A CPSA formula is first-order logic augmented with the says modal
--- operator.  True is And [], and false is Or [].
-
--- The formulas are constructed with the property that that every
--- bound variable is quantified once, and no free variable is also
--- quantified within a subformula.  During the construction, each
--- variable bound by a forall or exists quantifier is freshly
--- generated.
-
-data Formula t
-    = Predicate String [FTerm t]
-    | Not (Formula t)
-    | And [Formula t]
-    | Or [Formula t]
-    | Implies [Formula t] -- Null list not allowed
-    | Says t (Formula t)
-    | Forall [t] (Formula t)
-    | Exists [t] (Formula t)
-      deriving (Eq, Show)
-
--- A formula term is an algebra term or an application of a function
--- symbol to list of formula terms.
-
-data FTerm t
-    = AlgTerm t
-    | Application String [FTerm t]
-      deriving (Eq, Show)
-
-true :: Formula t
-true = And []
-
-truth :: Eq t => Formula t -> Bool
-truth f = f == true
-
-says :: Eq t => t -> Formula t -> Formula t
-says t f
-    | truth f = true
-    | otherwise = Says t f
-
-implies :: Eq t => [Formula t] -> Formula t -> Formula t
-implies antecedents consequence
-    | truth consequence = true
-    | null simp = consequence
-    | otherwise = Implies (simp ++ [consequence])
-    where
-      simp = filter (not . truth) antecedents
-
--- Free variables in a formula
-
-freeVars :: Algebra t p g s e c => Formula t -> S.Set t
-freeVars f = freeVarsForm S.empty f
-
-freeVarsForm :: Algebra t p g s e c => S.Set t -> Formula t -> S.Set t
-freeVarsForm s (Predicate _ ts) = foldl freeVarsFTerm s ts
-freeVarsForm s (Not f) = freeVarsForm s f
-freeVarsForm s (And fs) = foldl freeVarsForm s fs
-freeVarsForm s (Or fs) = foldl freeVarsForm s fs
-freeVarsForm s (Implies fs) = foldl freeVarsForm s fs
-freeVarsForm s (Says t f) = freeVarsForm (freeVarsTerm s t) f
-freeVarsForm s (Forall ts f) = foldl (flip S.delete) (freeVarsForm s f) ts
-freeVarsForm s (Exists ts f) = foldl (flip S.delete) (freeVarsForm s f) ts
-
-freeVarsFTerm :: Algebra t p g s e c => S.Set t -> FTerm t -> S.Set t
-freeVarsFTerm s (AlgTerm t) = freeVarsTerm s t
-freeVarsFTerm s (Application _ ts) = foldl freeVarsFTerm s ts
-
-freeVarsTerm :: Algebra t p g s e c => S.Set t -> t -> S.Set t
-freeVarsTerm s t = foldVars (flip S.insert) s t
-
--- Formula instantiation
-
--- The implementations assumes the environment maps no bound
--- variables.
-
-finstantiate :: Algebra t p g s e c => e -> Formula t -> Formula t
-finstantiate env (Predicate sym ts) =
-    Predicate sym (map (tinstantiate env) ts)
-finstantiate env (Not f) =
-    Not (finstantiate env f)
-finstantiate env (And fs) =
-    And (map (finstantiate env) fs)
-finstantiate env (Or fs) =
-    Or (map (finstantiate env) fs)
-finstantiate env (Implies fs) =
-    Implies (map (finstantiate env) fs)
-finstantiate env (Says t f) =
-    Says (instantiate env t) (finstantiate env f)
-finstantiate env (Forall ts f) =
-    Forall ts (finstantiate env f)
-finstantiate env (Exists ts f) =
-    Exists ts (finstantiate env f)
-
-tinstantiate :: Algebra t p g s e c => e -> FTerm t -> FTerm t
-tinstantiate env (AlgTerm t) =
-    AlgTerm (instantiate env t)
-tinstantiate env (Application sym ts) =
-    Application sym (map (tinstantiate env) ts)
-
--- The follow translations are used on input and output so as to
--- reduce the number of cases used internally.
-
--- f == (or)
--- t == (and)
-
--- The follow translation is used on input to get rid of the form
-
--- (iff a b) == (and (implies a b) (implies b a))
-
--- Keywords used in the S-Expression representation of formulas
-
--- The following keywords may not be used as variables, function
--- symbols, or predicate symbols.
-keywords :: [String]
-keywords = ["forall", "exists", "says", "not",
-            "or", "and", "implies", "iff"]
-
--- Load a formula.  The vars list is the list of variables that are in
--- scope.  The variable generator for the algebra is threaded through
--- the loading process so that every bound variable is quantified
--- once, and no free variable is bound within a formula.  Use
--- loadDecls to ensure vars are not keywords.
-loadFormula :: (Algebra t p g s e c, MonadFail m) => [t] -> g ->
-               SExpr Pos -> m (g, Formula t)
-loadFormula vars gen (L _ (S _ pred : xs)) -- Atomic formula
-    | notElem pred keywords =
-        do
-          fs <- loadFTerms vars xs
-          return (gen, Predicate pred fs)
-loadFormula vars gen (L _ (S _ "or" : xs)) = -- Disjunction
-    do
-      (gen', ts) <- mapAccumLM (loadFormula vars) gen xs
-      return (gen', Or ts)
-loadFormula vars gen (L _ (S _ "and" : xs)) = -- Conjunction
-    do
-      (gen', ts) <- mapAccumLM (loadFormula vars) gen xs
-      return (gen', And ts)
-loadFormula vars gen (L _ [S _ "not", x]) = -- Negation
-    do
-      (gen', t) <- loadFormula vars gen x
-      return (gen', Not t)
-loadFormula vars gen (L _ (S _ "implies" : x : xs)) = -- Implication
-    do
-      (gen', ts) <- mapAccumLM (loadFormula vars) gen (x : xs)
-      return (gen', Implies ts)
-loadFormula vars gen (L pos [S pos' "iff", x, y]) = -- If and only if
-    loadFormula vars gen (L pos [S pos' "and",
-                                 L pos [S pos' "implies", x, y],
-                                 L pos [S pos' "implies", y, x]])
-loadFormula vars gen (L _ [S _ "says", x, y]) = -- Says modal operator
-    do
-      t <- loadTerm vars False x
-      (gen', f) <- loadFormula vars gen y
-      return (gen', Says t f)
-loadFormula vars gen (L _ [S _ "forall", L _ xs, x]) = -- Universal
-    loadQuantified Forall vars gen xs x                -- quantification
-loadFormula vars gen (L _ [S _ "exists", L _ xs, x]) = -- Existential
-    loadQuantified Exists vars gen xs x                -- quantification
-loadFormula _ _ x =
-    fail (shows (annotation x) "Malformed formula")
-
-loadFTerms :: (Algebra t p g s e c, MonadFail m) => [t] ->
-              [SExpr Pos] -> m [FTerm t]
-loadFTerms vars xs =
-    foldM f [] (reverse xs)
-    where
-      f acc x =
-          case loadFTerm vars x of
-            Return t -> return (t : acc)
-            Fail msg -> fail msg
-
--- Load a formula term
-loadFTerm :: Algebra t p g s e c => [t] -> SExpr Pos ->
-             ReturnFail (FTerm t)
-loadFTerm vars x =
-    case loadTerm vars False x of
-      Return t -> return (AlgTerm t)
-      Fail msg ->               -- If x is not an algebra term
-          case x of             -- see if it's an application
-            L _ (S pos fun : xs)
-                | elem fun keywords ->
-                    Fail (shows pos $
-                           "Keyword " ++ fun ++ " used as a function")
-                | otherwise ->
-                 case mapM (loadFTerm vars) xs of
-                   Return ts -> Return (Application fun ts)
-                   Fail _ -> Fail msg
-            _ -> Fail msg
-
--- A monad version of map accumulation from the left
-mapAccumLM :: Monad m => (a -> b -> m (a, c)) -> a -> [b] -> m (a, [c])
-mapAccumLM _ z [] =
-    return (z, [])
-mapAccumLM f z (x : xs) =
-    do
-      (z', y) <- f z x
-      (z'', ys) <- mapAccumLM f z' xs
-      return (z'', y : ys)
-
--- Load a quantified formula.  Note that loadVars returns variables in
--- reverse order, so list append is the correct way to extend the list
--- of variables that are in scope.
-loadQuantified :: (Algebra t p g s e c, MonadFail m) =>
-                  ([t] -> Formula t -> Formula t) ->
-                  [t] -> g -> [SExpr Pos] -> SExpr Pos ->
-                  m (g, Formula t)
-loadQuantified build vars gen decls body =
-    do
-      (gen', vars') <- loadDecls gen decls
-      (gen'', f) <- loadFormula (vars' ++ vars) gen' body
-      return (gen'', build (reverse vars') f)
-
-loadDecls :: (Algebra t p g s e c, MonadFail m) => g ->
-             [SExpr Pos] -> m (g, [t])
-loadDecls gen decls =
-    do
-      mapM_ checkDecl decls     -- Check for keywords
-      loadVars gen decls
-
--- Fail if a variable is used as a keyword
-checkDecl :: MonadFail m => SExpr Pos -> m ()
-checkDecl (L _ (S pos sym : _))
-    | elem sym keywords =
-        fail (shows pos "Keyword " ++ sym ++ " used as a variable")
-checkDecl _ = return ()
-
--- Display a formula
-displayFormula :: Algebra t p g s e c => [t] ->
-                  Formula t -> SExpr ()
-displayFormula vars form =
-    displayForm ctx' form
-    where                       -- Add quantified vars last so they are
-      ctx = addToContext emptyContext vars -- most like to be renamed.
-      ctx' = addToContext ctx (quantified form)
-
--- Collect the quantified variables
-quantified :: Algebra t p g s e c => Formula t -> [t]
-quantified (Predicate _ _) = []
-quantified (Not f) = quantified f
-quantified (And fs) = concatMap quantified fs
-quantified (Or fs) = concatMap quantified fs
-quantified (Implies fs) = concatMap quantified fs
-quantified (Says _ f) = quantified f
-quantified (Forall ts f) = ts ++ quantified f
-quantified (Exists ts f) = ts ++ quantified f
-
-displayForm :: Algebra t p g s e c => c -> Formula t -> SExpr ()
-displayForm ctx (Predicate sym ts) =
-    L () (S () sym : map (displayFTerm ctx) ts)
-displayForm ctx (Not f) =
-    L () [S () "not", displayForm ctx f]
-displayForm ctx (And fs) =
-    L () (S () "and" : map (displayForm ctx) fs)
-displayForm ctx (Or fs) =
-    L () (S () "or" : map (displayForm ctx) fs)
-displayForm ctx (Implies fs) =
-    L () (S () "implies" : map (displayForm ctx) fs)
-displayForm ctx (Says t f) =
-    L () [S () "says", displayTerm ctx t, displayForm ctx f]
-displayForm ctx (Forall ts f) =
-    L () [S () "forall", L () (displayVars ctx ts), displayForm ctx f]
-displayForm ctx (Exists ts f) =
-    L () [S () "exists", L () (displayVars ctx ts), displayForm ctx f]
-
-displayFTerm :: Algebra t p g s e c => c -> FTerm t -> SExpr ()
-displayFTerm ctx (AlgTerm t) =
-    displayTerm ctx t
-displayFTerm ctx (Application sym ts) =
-    L () (S () sym : map (displayFTerm ctx) ts)
diff --git a/src/CPSA/Annotations/Main.hs b/src/CPSA/Annotations/Main.hs
deleted file mode 100644
--- a/src/CPSA/Annotations/Main.hs
+++ /dev/null
@@ -1,71 +0,0 @@
--- Add annotations to skeletons
-
--- This module simply maps the function annotations to S-expressions in the
--- file.
-
--- Copyright (c) 2009 The MITRE Corporation
---
--- This program is free software: you can redistribute it and/or
--- modify it under the terms of the BSD License as published by the
--- University of California.
-
-module Main (main) where
-
-import System.IO
-import CPSA.Lib.SExpr
-import CPSA.Lib.Algebra
-import CPSA.Lib.Entry
-import CPSA.Annotations.Annotations
-import qualified CPSA.Basic.Algebra
-import qualified CPSA.DiffieHellman.Algebra
-
--- Algebra names
-algs :: [String]
-algs = [CPSA.Basic.Algebra.name, CPSA.DiffieHellman.Algebra.name]
-
-main :: IO ()
-main =
-    do
-      let options = algOptions CPSA.Basic.Algebra.name
-      let interp = algInterp CPSA.Basic.Algebra.name algs
-      (p, (output, alg, margin)) <- start options interp
-      h <- outputHandle output
-      writeComment h margin cpsaVersion
-      writeComment h margin "Annotated skeletons"
-      case () of
-        _ | alg == CPSA.Basic.Algebra.name ->
-              go (step h alg CPSA.Basic.Algebra.origin margin) p []
-          | alg == CPSA.DiffieHellman.Algebra.name ->
-              go (step h alg CPSA.DiffieHellman.Algebra.origin margin) p []
-          | otherwise ->
-               abort ("Bad algebra: " ++ alg)
-      hClose h
-
-go :: (a -> SExpr Pos -> IO a) -> PosHandle -> a -> IO ()
-go f p a =
-    loop a
-    where
-      loop a =
-          do
-            x <- readSExpr p
-            case x of
-              Nothing ->
-                  return ()
-              Just sexpr ->
-                  do
-                    a <- f a sexpr
-                    loop a
-
-step :: Algebra t p g s e c => Handle ->
-        String -> g -> Int -> [Prot t g] ->
-        SExpr Pos -> IO [Prot t g]
-step output name origin margin ps sexpr =
-    do
-      x <- tryIO (annotations name origin ps sexpr)
-      case x of
-        Right (ps, sexpr) ->
-            do
-              writeLnSExpr output margin sexpr
-              return ps
-        Left err ->
-            abort err
diff --git a/src/CPSA/Basic/Algebra.hs b/src/CPSA/Basic/Algebra.hs
deleted file mode 100644
--- a/src/CPSA/Basic/Algebra.hs
+++ /dev/null
@@ -1,1305 +0,0 @@
--- Basic Crypto Algebra implementation
-
--- The module implements a many-sorted algebra, but is used as an
--- order-sorted algebra.  It exports a name, and the origin used to
--- generate variables.
-
--- To support security goals, the message algebra has been augmented
--- with support for variables of sort node and pairs of integers.  The
--- constructor D is used as N is taken for numbers in S-Expressions.
-
--- Copyright (c) 2009 The MITRE Corporation
---
--- This program is free software: you can redistribute it and/or
--- modify it under the terms of the BSD License as published by the
--- University of California.
-
-{-# LANGUAGE MultiParamTypeClasses #-}
-
-module CPSA.Basic.Algebra (name, origin) where
-
-import Control.Monad (foldM)
-import qualified Data.List as L
-import qualified Data.Set as S
-import Data.Set (Set)
-import qualified Data.Map as M
-import Data.Map (Map)
-import Data.Char (isDigit)
-import qualified CPSA.Lib.Algebra as C
-import qualified CPSA.Lib.Utilities as C
-import CPSA.Lib.SExpr (SExpr(..), Pos, annotation)
-
-name :: String
-name = "basic"
-
--- An identifier is a variable without any information about its sort
-
-newtype Id = Id (Integer, String) deriving Show
-
--- The integer distinguishes an identifier, the string is for printing.
-
-instance Eq Id where
-    (Id (x, _)) == (Id (x', _)) = x == x'
-
-instance Ord Id where
-    compare (Id (x, _)) (Id (x', _)) = compare x x'
-
-idName :: Id -> String
-idName (Id (_, name)) = name
-
--- Counter used for generating fresh identifiers.
-
-newtype Gen = Gen (Integer) deriving Show
-
-origin :: Gen
-origin = Gen (0)
-
-gmerge :: Gen -> Gen -> Gen
-gmerge (Gen i) (Gen j) = Gen $ max i j
-
-freshId :: Gen -> String -> (Gen, Id)
-freshId (Gen i) name = (Gen (i + 1), Id (i, name))
-
-cloneId :: Gen -> Id -> (Gen, Id)
-cloneId gen x = freshId gen (idName x)
-
--- The Basic Crypto Order-Sorted Signature is
-
--- Sorts: mesg, text, data, name, skey, akey, and string
---
--- Subsorts: text, data, name, skey, akey < mesg
---
--- Operations:
---   cat : mesg X mesg -> mesg               Pairing
---   enc : mesg X mesg -> mesg               Encryption
---   hash : mesg -> mesg                     Hashing
---   string : mesg                           Tag constants
---   ltk : name X name -> skey               Long term shared key
---   pubk : name -> akey                     Public key of principal
---   pubk : string X name -> akey            Tagged public key of principal
---   invk : akey -> akey                     Inverse of asymmetric key
-
--- Variables of sort string are forbidden.
-
--- The implementation exploits the isomorphism between order-sorted
--- algebras and many-sorted algebras by adding inclusion operations to
--- produce an equivalent Basic Crypto Many-Sorted Signature.  There is
--- an inclusion operation for each subsort of mesg.
-
--- Sorts: mesg, text, data, name, skey, akey, and string
---
--- Operations:
---   cat : mesg X mesg -> mesg               Pairing
---   enc : mesg X mesg -> mesg               Encryption
---   hash : mesg -> mesg                     Hashing
---   string : mesg                           Tag constants
---   ltk : name X name -> skey               Long term shared key
---   pubk : name -> akey                     Public key of principal
---   pubk : string X name -> akey            Tagged public key of principal
---   invk : akey -> akey                     Inverse of asymmetric key
---   text : text -> mesg                     Sort text inclusion
---   data : data -> mesg                     Sort date inclusion
---   name : name -> mesg                     Sort name inclusion
---   skey : skey -> mesg                     Sort skey inclusion
---   akey : akey -> mesg                     Sort akey inclusion
-
--- In both algebras, invk(invk(t)) = t for all t of sort akey
-
--- Operations other than the tag constant constructor
-data Symbol
-    = Text                      -- Text
-    | Data                      -- Another text-like item
-    | Name                      -- Principal
-    | Skey                      -- Symmetric key
-    | Tag                       -- Tag atom
-    | Ltk                       -- Long term shared symmetric key
-    | Akey                      -- Asymmetric key
-    | Invk                      -- Inverse of asymmetric key
-    | Pubk                      -- Public asymmetric key of a principal
-    | Cat                       -- Term concatenation (Pairing really)
-    | Enc                       -- Encryption
-    | Hash                      -- Hashing
-      deriving (Show, Eq, Ord)
-
--- A Basic Crypto Algebra Term
-
-data Term
-    = I !Id
-    | C !String                 -- Tag constants
-    | F !Symbol ![Term]
-    | D !Id                     -- Strand variable
-    | Z Int                     -- Strand constant
-      deriving (Show, Eq, Ord)
-
--- In this algebra (F Invk [F Invk [t]]) == t is an axiom
-
--- Basic terms are introduced by defining a function used to decide if
--- a term is well-formed.  The context of an occurrence of an identifier
--- determines its sort.  A term that contains just an identifier and its
--- sort information is called a variable.  The sort of a variable is
--- one of mesg, text, data, name, skey, and akey.
-
--- Terms that represent algebra variables.
-isVar :: Term -> Bool
-isVar (I _) = True           -- Sort: mesg
-isVar (F s [I _]) =
-    -- Sorts: text, data, name, skey, and akey
-    s == Text || s == Data || s == Name || s == Skey || s == Akey || s == Tag
-isVar _ = False
-
-varSym :: Symbol -> Bool
-varSym Text = True
-varSym Data = True
-varSym Name = True
-varSym Skey = True
-varSym Akey = True
-varSym Tag = True
-varSym _ = False
-
--- Note that isVar of (D _) is false.
-isStrdVar :: Term -> Bool
-isStrdVar (D _) = True
-isStrdVar _ = False
-
-subNums :: Term -> Set Term
-subNums _ = S.empty
-
-indicator :: Term -> Term -> Maybe Int
-indicator _ _ = Nothing
-
-{-
-forceVar :: Term -> Term
-forceVar (I x) = (I x)
-forceVar (C x) = (C x) -- no variable!
-forceVar (F Text y) = (F Text y)
-forceVar (F Data y) = (F Data y)
-forceVar (F Name y) = (F Name y)
-forceVar (F Tag [(I x)]) = (F Tag [(I x)])
-forceVar (F Skey [(I x)]) = (F Skey [(I x)])
-forceVar (F Skey [(F Ltk ns)]) = forceVar (head ns)
-forceVar (F Akey [(I x)]) = (F Akey [(I x)])
-forceVar (F Akey [F Invk ns]) = forceVar (head ns)
-forceVar (F Akey [F Pubk ns]) = forceVar (head ns)
-forceVar (F _ ns) = forceVar (head ns) -- for Cat, Enc.
-forceVar (D x) = (D x)
-forceVar (P x) = (P x) -- no variable!
--}
-
--- Extract the identifier from a variable
-varId :: Term -> Id
-varId (I x) = x
-varId (F Text [I x]) = x
-varId (F Data [I x]) = x
-varId (F Name [I x]) = x
-varId (F Skey [I x]) = x
-varId (F Akey [I x]) = x
-varId (F Tag [I x]) = x
-varId (D x) = x
-varId _ = C.assertError "Algebra.varId: term not a variable with its sort"
-
-isAcquiredVar :: Term -> Bool
-isAcquiredVar (I _) = True
-isAcquiredVar _ = False
-
-isObtainedVar :: Term -> Bool
-isObtainedVar _ = False
-
--- A list of terms are well-formed if each one has the correct
--- structure and every occurrence of an identifier in a term has the
--- same sort.  Variable environments are used to check the sort
--- condition.  It maps an identifier to a variable that contains the
--- identifier.
-
--- termsWellFormed u ensures all terms in u use each identifier at the
--- same sort, and makes sure every term has the correct structure.
-termsWellFormed :: [Term] -> Bool
-termsWellFormed u =
-    loop emptyVarEnv u
-    where
-      loop _ [] = True
-      loop env (t : u) =
-          case termWellFormed env t of
-            Nothing -> False
-            Just env' -> loop env' u
-
-newtype VarEnv = VarEnv (Map Id Term) deriving Show
-
-emptyVarEnv :: VarEnv
-emptyVarEnv = VarEnv M.empty
-
--- A term is well-formed if it is in the language defined by the
--- following grammar, and variables occur at positions within the term
--- in a way that allows each variable to be assigned one sort.
---
--- The start symbol is T, for all well-formed terms.  Terminal symbol
--- I is for variables and terminal symbol C is for quoted strings.
--- The non-terminal symbols are B, K, and T.  Symbol B is for base
--- sorted terms, and K is for asymmetric keys.
---
---     T ::= I | C | B | cat(T, T) | enc(T, T) | hash(T)
---
---     B ::= text(I) | data(I) | name(I) | skey(I)
---        |  skey(I) | skey(ltk(I, I)) | akey(K)
---
---     K ::= I | pubk(I) | invk(I) | invk(pubk(I))
-
--- termWellFormed checks the structure and sort condition.
-termWellFormed :: VarEnv -> Term -> Maybe VarEnv
-termWellFormed xts t@(I x) =
-    extendVarEnv xts x t        -- Mesg variable
-termWellFormed xts t@(F Text [I x]) =
-    extendVarEnv xts x t        -- Text variable
-termWellFormed xts t@(F Data [I x]) =
-    extendVarEnv xts x t        -- Data variable
-termWellFormed xts t@(F Name [I x]) =
-    extendVarEnv xts x t        -- Name variable
-termWellFormed xts t@(F Skey [I x]) =
-    extendVarEnv xts x t        -- Symmetric key variable
-termWellFormed xts t@(F Tag [I x]) =
-    extendVarEnv xts x t        -- Tag variable
-termWellFormed xts (F Skey [F Ltk [I x, I y]]) =
-    -- Long term shared symmetric key
-    doubleTermWellFormed xts (F Name [I x]) (F Name [I y])
-termWellFormed xts (F Akey [t]) = -- Asymmetric key terms
-    case t of
-      I x -> extendVarEnv xts x (F Akey [I x])
-      F Invk [I x] -> extendVarEnv xts x (F Akey [I x])
-      F Pubk [I x] -> extendVarEnv xts x (F Name [I x])
-      F Pubk [C _, I x] -> extendVarEnv xts x (F Name [I x])
-      F Invk [F Pubk [I x]] -> extendVarEnv xts x (F Name [I x])
-      F Invk [F Pubk [C _, I x]] -> extendVarEnv xts x (F Name [I x])
-      _ -> Nothing
-termWellFormed xts (F Tag [(C _)]) =
-    Just xts                    -- Tags
-termWellFormed xts (F Cat [t0, t1]) =
-    doubleTermWellFormed xts t0 t1  -- Concatenation
-termWellFormed xts (F Enc [t0, t1]) =
-    doubleTermWellFormed xts t0 t1  -- Encryption
-termWellFormed xts (F Hash [t])     =
-    termWellFormed xts t            -- Hashing
-termWellFormed _ _ = Nothing
-
--- Extend when sorts agree
-extendVarEnv :: VarEnv -> Id -> Term -> Maybe VarEnv
-extendVarEnv (VarEnv env) x t =
-    case M.lookup x env of
-      Nothing -> Just $ VarEnv $ M.insert x t env
-      Just t' -> if t == t' then Just (VarEnv env) else Nothing
-
-doubleTermWellFormed :: VarEnv -> Term -> Term -> Maybe VarEnv
-doubleTermWellFormed xts t0 t1 =
-    do
-      xts <- termWellFormed xts t0
-      termWellFormed xts t1
-
--- Is the sort of the term a base sort?
-isAtom :: Term -> Bool
-isAtom (F s _) = varSym s
-isAtom _ = False
-
--- Is the term numeric?
-isNum :: Term -> Bool
-isNum _ = False
-
--- Does a variable occur in a term?
-occursIn :: Term -> Term -> Bool
-occursIn t t' | isVar t =       -- Does a variable occur in a term?
-  subterm (I $ varId t) t'
-occursIn t _ =
-  C.assertError $ "Algebra.occursIn: Bad variable " ++ show t
-
-subterm :: Term -> Term -> Bool
-subterm t t' | t == t' =
-  True
-subterm t (F _ u) =
-  any (subterm t) u
-subterm _ _ =
-  False
-
--- Fold f through a term applying it to each variable in the term.
-foldVars :: (a -> Term -> a) -> a -> Term -> a
-foldVars f acc t@(I _) = f acc t          -- Mesg variable
-foldVars f acc t@(F Text [I _]) = f acc t -- Text variable
-foldVars f acc t@(F Tag [I _]) = f acc t -- Tag variable
-foldVars f acc t@(F Data [I _]) = f acc t -- Data variable
-foldVars f acc t@(F Name [I _]) = f acc t -- Name variable
-foldVars f acc t@(F Skey [I _]) = f acc t -- Symmetric keys
-foldVars f acc (F Skey [F Ltk [I x, I y]]) =
-    f (f acc (F Name [I x])) (F Name [I y])
-foldVars f acc t@(F Akey [I _]) = f acc t -- Asymmetric keys
-foldVars f acc (F Akey [F Invk [I x]]) = f acc (F Akey [I x])
-foldVars f acc (F Akey [F Pubk [I x]]) = f acc (F Name [I x])
-foldVars f acc (F Akey [F Pubk [C _, I x]]) = f acc (F Name [I x])
-foldVars f acc (F Akey [F Invk [F Pubk [I x]]]) = f acc (F Name [I x])
-foldVars f acc (F Akey [F Invk [F Pubk [C _, I x]]]) = f acc (F Name [I x])
-foldVars _ acc (F Tag [(C _)]) = acc      -- Tags
-foldVars f acc (F Cat [t0, t1]) =         -- Concatenation
-    foldVars f (foldVars f acc t0) t1
-foldVars f acc (F Enc [t0, t1]) =         -- Encryption
-    foldVars f (foldVars f acc t0) t1
-foldVars f acc (F Hash [t]) =             -- Hashing
-    foldVars f acc t
-foldVars f acc t@(D _) = f acc t          -- Strand variable
-foldVars _ acc (Z _) = acc                -- Strand constant
-foldVars _ _ t = C.assertError $ "Algebra.foldVars: Bad term " ++ show t
-
--- Fold f through a term applying it to each term that is carried by the term.
-foldCarriedTerms :: (a -> Term -> a) -> a -> Term -> a
-foldCarriedTerms f acc t@(F Cat [t0, t1]) = -- Concatenation
-    foldCarriedTerms f (foldCarriedTerms f (f acc t) t0) t1
-foldCarriedTerms f acc t@(F Enc [t0, _]) = -- Encryption
-    foldCarriedTerms f (f acc t) t0
-foldCarriedTerms f acc t = f acc t     -- atoms and tags
-
--- Is a term carried by another term?
-carriedBy :: Term -> Term -> Bool
-carriedBy t t' =
-    t == t' ||
-      case t' of
-        F Cat [t0, t1] -> carriedBy t t0 || carriedBy t t1
-        F Enc [t0, _] -> carriedBy t t0
-        _ -> False
-
--- Is atom a constituent of a term?  In other words, is atom among
--- the set of atoms required to construct the term?
-constituent :: Term -> Term -> Bool
-constituent t t' | isAtom t =
-  subterm t t'
-constituent t _ =
-  C.assertError $ "Algebra.constituent: Bad atom " ++ show t
-
--- The key used to decrypt an encrypted term, otherwise Nothing.
-decryptionKey :: Term -> Maybe Term
-decryptionKey (F Enc [_, t]) = Just (inv t)
-decryptionKey _ = Nothing
-
-buildable :: Set Term -> Set Term -> Term -> Bool
-buildable knowns unguessable term =
-    ba term
-    where
-      ba (I _) = True           -- A mesg sorted variable is always buildable
-      ba (F Cat [t0, t1]) =
-          ba t0 && ba t1
-      ba t@(F Enc [t0, t1]) =
-          S.member t knowns || ba t0 && ba t1
-      ba t@(F Hash [t1]) =
-          S.member t knowns || ba t1
-      ba t = isAtom t && not (S.member t unguessable)
-
--- Penetrator derivable predicate and checking for unrealized skeletons.
-
-derivable :: Set Term -> Set Term -> Term -> Bool
-derivable avoid sent term =
-    let (knowns, unknowns) = decompose sent avoid in
-    buildable knowns unknowns term
-
--- Compute the decomposition given some known terms and some unguessable
--- atoms.  The code is quite tricky.  It iterates until the known
--- terms don't change.  The known terms ends up with all the
--- encryptions that are known.
-decompose :: Set Term -> Set Term -> (Set Term, Set Term)
-decompose knowns unguessable =
-    loop unguessable knowns S.empty []
-    where
-      loop unguessable knowns old []
-          | old == knowns = (knowns, unguessable) -- Done
-          | otherwise = loop unguessable knowns knowns (S.elems knowns)
-      loop unguessable knowns old (t@(F Cat _) : todo) =
-          loop unguessable (decat t (S.delete t knowns)) old todo
-      loop unguessable knowns old ((F Enc [t0, t1]) : todo)
-          | buildable knowns unguessable (inv t1) = -- Add plaintext
-              loop unguessable (decat t0 knowns) old todo
-          | otherwise = loop unguessable knowns old todo
-      loop unguessable knowns old ((F Hash [_]) : todo) =
-          loop unguessable knowns old todo -- Hash can't be decomposed
-      loop unguessable knowns old (t : todo) =
-          loop (S.delete t unguessable) (S.delete t knowns) old todo
-      -- Decat
-      decat (F Cat [t0, t1]) s = decat t1 (decat t0 s)
-      decat t s = S.insert t s
-
--- Inverts an asymmetric key
-inv :: Term -> Term
-inv (F Akey [F Invk [t]]) = F Akey [t]
-inv (F Akey [t]) = F Akey [F Invk [t]]
-inv t@(F _ _) = t
-inv (I _) = error "Algebra.inv: Cannot invert a variable of sort mesg"
-inv (C _) = error "Algebra.inv: Cannot invert a tag constant"
-inv (D _) = error "Algebra.inv: Cannot invert a variable of sort strd"
-inv (Z _) = error "Algebra.inv: Cannot invert a strand constant"
-
--- Extracts every encryption that is carried by a term along with its
--- encryption key.  Note that a hash is treated as a kind of
--- encryption in which the term that is hashed is the encryption key.
-encryptions :: Term -> [(Term, [Term])]
-encryptions t =
-    reverse $ loop t []
-    where
-      loop (F Cat [t, t']) acc =
-          loop t' (loop t acc)
-      loop t@(F Enc [t', t'']) acc =
-          loop t' (adjoin (t, [t'']) acc)
-      loop t@(F Hash [t']) acc =
-          adjoin (t, [t']) acc
-      loop _ acc = acc
-      adjoin x xs
-          | x `elem` xs = xs
-          | otherwise = x : xs
-
-escapeSet :: Set Term -> Set Term -> Term -> Maybe (Set Term)
-escapeSet ts a ct =
-    if buildable ts a ct then
-        Nothing
-    else
-        Just $ S.filter f ts
-        where
-          f (F Enc [t, key]) =
-              carriedBy ct t &&
-              not (buildable ts a (inv key))
-          f _ = False
-
-isBase :: Term -> Bool
-isBase _ = False
-
-isExpr :: Term -> Bool
-isExpr _ = False
-
-{-
-isExpn :: Term -> Bool
-isExpn _ = False
--}
-
-expnInExpr :: Term -> Term -> Bool
-expnInExpr _ _ = False
-
-consts :: Term -> [Term] -> [Term]
-consts (F Tag _) ts =
-    loop [] ts
-    where
-      loop acc [] = acc
-      loop acc ((C str): ts) = loop ((C str): acc) ts
-      loop acc ((F _ subts): ts) = loop acc (subts ++ ts)
-      loop acc (_ : ts) = loop acc ts
-consts _ _ = []
-
-instance C.Term Term where
-    derivable = derivable
-    isNum = isNum
-    subNums = subNums
-    indicator = indicator
-    isVar = isVar
-    isAcquiredVar = isAcquiredVar
-    isObtainedVar = isObtainedVar
-    isAtom = isAtom
-    isStrdVar = isStrdVar
-    termsWellFormed = termsWellFormed
-    occursIn = occursIn
-    foldVars = foldVars
-    foldCarriedTerms = foldCarriedTerms
-    carriedBy = carriedBy
-    constituent = constituent
-    decryptionKey = decryptionKey
-    decompose = decompose
-    buildable = buildable
-    encryptions = encryptions
-    escapeSet = escapeSet
-    loadTerm = loadTerm2
-    isBase = isBase
-    isExpr = isExpr
-    expnInExpr = expnInExpr
-    consts = consts
-
--- Places
-
--- A place names a one subterm within a term.  It is a list of
--- integers giving a path through a term to that named subterm.  Each
--- integer in the list identifies the subterm in a function
--- application on the path to the named subterm.  The integer is the
--- index of the subterm in the application's list of terms.
-
-newtype Place = Place [Int] deriving (Eq, Show)
-
--- Returns the places a variable occurs within another term.
-places :: Term -> Term -> [Place]
-places target source =
-    f [] [] source
-    where
-      f paths path source
-          | target == source = Place (reverse path) : paths
-      f paths path (F _ u) =
-          g paths path 0 u
-      f paths _ _ = paths
-      g paths _ _ [] = paths
-      g paths path i (t : u) =
-          g (f paths (i: path) t) path (i + 1) u
-
--- Replace a variable within a term at a given place.
-replace :: Term -> Place -> Term -> Term
-replace target (Place ints) source =
-    loop ints source
-    where
-      loop [] _ = target
-      loop (i : path) (F s u) =
-          if length u <= i then
-            C.assertError ("Bogus i " ++ show i)
-          else
-            F s (C.replaceNth (loop path (u !! i)) i u)
-      loop _ _ = C.assertError "Algebra.replace: Bad path to variable"
-
--- Returns the places a term is carried by another term.
-carriedPlaces :: Term -> Term -> [Place]
-carriedPlaces target source =
-    f [] [] source
-    where
-      f paths path source
-          | target == source = Place (reverse path) : paths
-      f paths path (F Cat [t, t']) =
-          f (f paths  (0 : path) t) (1 : path) t'
-      f paths path (F Enc [t, _]) =
-          f paths (0 : path) t
-      f paths _ _ = paths
-
--- Return the ancestors of the term at the given place.
-ancestors :: Term -> Place -> [Term]
-ancestors source (Place ints) =
-    loop [] ints source
-    where
-      loop ts [] _ = ts
-      loop ts (i: path) t@(F _ u) =
-          loop (t : ts) path (u !! i)
-      loop _ _ _ = C.assertError "Algebra.ancestors: Bad path to term"
-
-prefix :: Place -> Place -> Bool
-prefix (Place l) (Place l') = L.isPrefixOf l l'
-
-strip :: Place -> Place -> Maybe Place
-strip (Place l) (Place l') =
-  loop l l'
-  where
-    loop [] l' = Just $ Place l'
-    loop (i : l) (i' : l') | i == i' = loop l l'
-    loop _ _ = Nothing
-
-instance C.Place Term Place where
-    places = places
-    carriedPlaces = carriedPlaces
-    carriedRelPlaces x y _ = carriedPlaces x y
-    replace = replace
-    ancestors = ancestors
-    placeIsPrefixOf = prefix
-    placeStripPrefix = strip
-
--- Rename the identifiers in a term.  Gen keeps the state of the
--- renamer.  (Question: should alist be replaced by a Map?)
-clone :: Gen -> Term -> (Gen, Term)
-clone gen t =
-    (gen', t')
-    where
-      (_, gen', t') = cloneTerm ([], gen) t
-      cloneTerm (alist, gen) t =
-          case t of             -- The association list maps
-            I x ->              -- identifiers to identifier.
-                case lookup x alist of
-                  Just y -> (alist, gen, I y)
-                  Nothing ->
-                      let (gen', y) = cloneId gen x in
-                      ((x, y) : alist, gen', I y)
-            C c -> (alist, gen, C c)
-            F sym u ->
-                let (alist', gen', u') =
-                        foldl cloneTermList (alist, gen, []) u in
-                (alist', gen', F sym $ reverse u')
-            D x ->              -- identifiers to identifier.
-                case lookup x alist of
-                  Just y -> (alist, gen, D y)
-                  Nothing ->
-                      let (gen', y) = cloneId gen x in
-                      ((x, y) : alist, gen', D y)
-            Z p -> (alist, gen, Z p)
-      cloneTermList (alist, gen, u) t =
-          let (alist', gen', t') = cloneTerm (alist, gen) t in
-          (alist', gen', t' : u)
-
-basePrecursor :: Gen -> Term -> (Gen, Term)
-basePrecursor _ _ =
-  error "Algebra.basePrecursor: Not implemented for the basic algebra"
-
-baseRndx :: Term -> Maybe [Term]
-baseRndx _ =
-  error "Algebra.baseRndx: Not implemented for the basic algebra"
-
-{-
-mostGenPrecursors :: Gen -> Term -> [(Gen, Term)]
-mostGenPrecursors _ _ = []
--}
-
-instance C.Gen Term Gen where
-    origin = origin
-    gmerge = gmerge
---    genericize = genericize
---    genericVersion = genericize
-    clone = clone
-    loadVars = loadVars
-    basePrecursor = basePrecursor
-    baseRndx = baseRndx
-
--- Functions used in both unification and matching
-
-type IdMap = Map Id Term
-
-emptyIdMap :: IdMap
-emptyIdMap = M.empty
-
--- Apply a substitution to a term
-idSubst :: IdMap -> Term -> Term
-idSubst subst (I x) =
-    M.findWithDefault (I x) x subst
-idSubst _ t@(C _) = t
-idSubst subst (F Invk [t]) =
-    case idSubst subst t of
-      F Invk [t] -> t           -- Apply axiom
-      t -> F Invk [t]
-idSubst subst (F s u) =
-    F s (map (idSubst subst) u)
-idSubst subst (D x) =
-    M.findWithDefault (D x) x subst
-idSubst _ t@(Z _) = t
-
--- Is every variable in a term a key in the map?
-idMapped :: IdMap -> Term -> Bool
-idMapped subst (I x) = M.member x subst
-idMapped _ (C _) = True
-idMapped subst (F _ u) =
-    all (idMapped subst) u
-idMapped subst (D x) = M.member x subst
-idMapped _ (Z _) = True
-
--- Unification and substitution
-
-newtype Subst = Subst IdMap deriving (Eq, Ord, Show)
-
-emptySubst :: Subst
-emptySubst = Subst emptyIdMap
-
--- Apply a substitution created by unification
-substitute :: Subst -> Term -> Term
-substitute (Subst s) t =
-    idSubst s t
-
--- Composition of substitutions
-
--- substitute (compose s0 s1) t = substitute s0 (substitute s1 t)
-
--- 1. apply s0 to range of s1 to obtain s2;
--- 2. remove bindings is s0 where domains of s0 and s1 overlap to form s3;
--- 3. remove trivial bindings from s2 to form s4; and
--- 4. take the union of s4 and s3.
-
-compose :: Subst -> Subst -> Subst
-compose (Subst s0) (Subst s1) =
-    let s2 = M.map (substitute (Subst s0)) s1        -- Step 1
-        s4 = M.filterWithKey nonTrivialBinding s2 in -- Step 3
-    Subst (M.union s4 s0)       -- Steps 2 and 4, union is left-biased
-
-nonTrivialBinding :: Id -> Term -> Bool
-nonTrivialBinding x (I y) = x /= y
-nonTrivialBinding _ _ = True
-
--- During unification, variables determined to be equal are collected
--- into an equivalence class.  Multiple lookups of each variable in
--- the internal representation of a substitution finds the canonical
--- representive of the class.  The chase function finds the current
--- canonical representitive.
-
--- Get the canonical representative of equivalent identifiers making use
--- of this algebra's axiom.
-chase :: Subst -> Term -> Term
-chase (Subst s) (I x) =
-    case M.lookup x s of
-      Nothing -> I x
-      Just t -> chase (Subst s) t
-chase (Subst s) (D x) =
-    case M.lookup x s of
-      Nothing -> D x
-      Just t -> chase (Subst s) t
-chase s (F Invk [t]) = chaseInvk s t
-chase _ t = t
-
-chaseInvk :: Subst -> Term -> Term
-chaseInvk (Subst s) (I x) =
-    case M.lookup x s of
-      Nothing -> F Invk [I x]
-      Just t -> chaseInvk (Subst s) t
-chaseInvk s (F Invk [t]) = chase s t
-chaseInvk _ t = F Invk [t]
-
--- Does x occur in t?
-occurs :: Id -> Term -> Bool
-occurs x (I y) = x == y
-occurs _ (C _) = False
-occurs x (F _ u) = any (occurs x) u
-occurs x (D y) = x == y
-occurs _ (Z _) = False
-
-unifyChase :: Term -> Term -> Subst -> Maybe Subst
-unifyChase t t' s = unifyTerms (chase s t) (chase s t') s
-
-unifyTerms :: Term -> Term -> Subst -> Maybe Subst
-unifyTerms (I x) (I y) (Subst s)
-    | x == y = Just (Subst s)
-    | otherwise = Just (Subst $ M.insert x (I y) s)
-unifyTerms (I x) t (Subst s)
-    | occurs x t = Nothing
-    | otherwise = Just (Subst $ M.insert x t s)
-unifyTerms t (I x) s = unifyTerms (I x) t s
-unifyTerms (C c) (C c') s
-    | c == c' = Just s
-    | otherwise = Nothing
-unifyTerms (F Invk [I x]) (F Pubk [I y]) s =
-    unifyTerms (I x) (F Invk [F Pubk [I y]]) s
-unifyTerms (F Invk [I x]) (F Pubk [C c, I y]) s =
-    unifyTerms (I x) (F Invk [F Pubk [C c, I y]]) s
-unifyTerms (F Pubk [I x]) (F Invk [I y]) s =
-    unifyTerms (I y) (F Invk [F Pubk [I x]]) s
-unifyTerms (F Pubk [C c, I x]) (F Invk [I y]) s =
-    unifyTerms (I y) (F Invk [F Pubk [C c, I x]]) s
-unifyTerms (F sym u) (F sym' u') s
-    | sym == sym' = unifyTermLists u u' s
-    | otherwise = Nothing
-unifyTerms (D x) (D y) (Subst s)
-    | x == y = Just (Subst s)
-    | otherwise = Just (Subst $ M.insert x (D y) s)
-unifyTerms (D x) (Z p) (Subst s) =
-    Just (Subst $ M.insert x (Z p) s)
-unifyTerms t (D x) s = unifyTerms (D x) t s
-unifyTerms (Z p) (Z p') s
-    | p == p' = Just s
-    | otherwise = Nothing
-unifyTerms _ _ _ = Nothing
-
-unifyTermLists :: [Term] -> [Term] -> Subst -> Maybe Subst
-unifyTermLists [] [] s = Just s
-unifyTermLists (t : u) (t' : u') s =
-    maybe Nothing (unifyTermLists u u') (unifyChase t t' s)
-unifyTermLists _ _ _ = Nothing
-
--- The exported unifier converts the internal representation of a
--- substitution into the external form using chaseMap.
-
-unify :: Term -> Term -> Subst -> Maybe Subst
-unify t t' s =
-    do
-      s <- unifyChase t t' s
-      return $ chaseMap s
-
--- Apply the chasing version of substitution to the range of s.
-
-chaseMap :: Subst -> Subst
-chaseMap (Subst s) =
-    Subst $ M.map (substChase (Subst s)) s
-
--- A chasing version of substitution.
-
-substChase :: Subst -> Term -> Term
-substChase subst t =
-    case chase subst t of
-      t@(I _) -> t
-      t@(C _) -> t
-      F Invk [t] ->
-          case substChase subst t of
-            F Invk [t] -> t           -- Apply axiom
-            t -> F Invk [t]
-      F s u ->
-          F s (map (substChase subst) u)
-      t@(D _) -> t
-      t@(Z _) -> t
-
-destroyer :: Term -> Maybe Subst
-destroyer _ = Nothing
-
--- Stub absence substitution generator.
-absenceSubst :: Gen -> [(Term, Term)] -> [(Gen, Subst)]
-absenceSubst g [] = [(g, emptySubst)]
-absenceSubst _ _ = error "Algebra.absenceSubst: not supported"
-
-instance C.Subst Term Gen Subst where
-   emptySubst = emptySubst
-   destroyer = destroyer
-   substitute = substitute
-   unify t t' (g, s) =
-       maybe [] (\s -> [(g, s)]) $ unify t t' s
-   compose = compose
-   absenceSubst = absenceSubst
-
--- Matching and instantiation
-
-newtype Env = Env IdMap deriving (Eq, Ord, Show)
-
--- An environment may contain an explicit identity mapping, whereas a
--- substitution is erroneous if it has one.
-
-emptyEnv :: Env
-emptyEnv = Env emptyIdMap
-
--- Apply a substitution created my matching
-instantiate :: Env -> Term -> Term
-instantiate (Env r) t = idSubst r t
-
--- Is every variable in t in the domain of r?
-matched :: Env -> Term -> Bool
-matched (Env r) t = idMapped r t
-
--- Apply a substitution to the range of an environment
-substUpdate :: Env -> Subst -> Env
-substUpdate (Env r) s =
-  Env $ M.map (substitute s) r
-
--- Matching
-
--- The matcher has the property that when pattern P and term T match
--- then instantiate (match P T emptyEnv) P = T.
-match ::  Term -> Term -> Env -> Maybe Env
-match (I x) t (Env r) =
-    case M.lookup x r of
-      Nothing -> Just $ Env $ M.insert x t r
-      Just t' -> if t == t' then Just $ Env r else Nothing
-match (C c) (C c') r = if c == c' then Just r else Nothing
-match (F s u) (F s' u') r
-    | s == s' = matchLists u u' r
-match (F Invk [t]) t' r =
-    match t (F Invk [t']) r
-match (D x) t (Env r) =
-    case M.lookup x r of
-      Nothing -> Just $ Env $ M.insert x t r
-      Just t' -> if t == t' then Just $ Env r else Nothing
-match (Z p) (Z p') r = if p == p' then Just r else Nothing
-match _ _ _ = Nothing
-
-matchLists :: [Term] -> [Term] -> Env -> Maybe Env
-matchLists [] [] r = Just r
-matchLists (t : u) (t' : u') r =
-    maybe Nothing (matchLists u u') (match t t' r)
-matchLists _ _ _ = Nothing
-
--- Cast an environment into a substitution by filtering out trivial
--- bindings.
-
-substitution :: Env -> Subst
-substitution (Env r) =
-    Subst $ M.filterWithKey nonTrivialBinding r
-
--- Add type information to an environment, and return it as a list of
--- associations.
-
-reify :: [Term] -> Env -> [(Term, Term)]
-reify domain (Env env) =
-    map (loop domain) $ M.assocs env
-    where
-      loop [] (x, _) =
-          C.assertError $ "Algebra.reify: variable missing from domain " ++ idName x
-      loop (I x : _) (y, t)
-          | x == y = (I x, t)
-      loop (F Text [I x] : _) (y, t)
-          | x == y = (F Text [I x], F Text [t])
-      loop (F Data [I x] : _) (y, t)
-          | x == y = (F Data [I x], F Data [t])
-      loop (F Name [I x] : _) (y, t)
-          | x == y = (F Name [I x], F Name [t])
-      loop (F Skey [I x] : _) (y, t)
-          | x == y = (F Skey [I x], F Skey [t])
-      loop (F Akey [I x] : _) (y, t)
-          | x == y = (F Akey [I x], F Akey [t])
-      loop (F Tag [I x] : _) (y, t)
-          | x == y = (F Tag [I x], F Tag [t])
-      loop (D x : _) (y, t)
-          | x == y = (D x, t)
-      loop (_ : domain) pair = loop domain pair
-
-strdMatch ::  Term -> Int -> Env -> Maybe Env
-strdMatch t p env = match t (Z p) env
-
-strdLookup :: Env -> Term -> Maybe Int
-strdLookup env t =
-  case instantiate env t of
-    Z p -> Just p
-    _ -> Nothing
-
-strdUpdate :: Env -> (Int -> Int) -> Env
-strdUpdate (Env e) f =
-  Env $ M.map h e
-  where
-    h (Z z) = Z $ f z
-    h t = t
-
-instance C.Env Term Gen Subst Env where
-   emptyEnv = emptyEnv
-   instantiate = instantiate
-   match t t' (g, e) =
-       maybe [] (\e -> [(g, e)]) $ match t t' e
-   substitution = substitution
-   reify = reify
-   substUpdate = substUpdate
-   matched = matched
-   strdMatch t t' (g, e) =
-       maybe [] (\e -> [(g, e)]) $ strdMatch t t' e
-   strdLookup = strdLookup
-   strdUpdate = strdUpdate
-
--- Term specific loading functions
-
-loadVars :: MonadFail m => Gen -> [SExpr Pos] -> m (Gen, [Term])
-loadVars gen sexprs =
-    do
-      pairs <- mapM loadVarPair sexprs
-      (g, vars) <- foldM loadVar (gen, []) (concat pairs)
-      return (g, reverse vars)
-
-loadVarPair :: MonadFail m => SExpr Pos -> m [(SExpr Pos, SExpr Pos)]
-loadVarPair (L _ (x:y:xs)) =
-    case reverse (x:y:xs) of
-      t : vs -> return [(v,t) | v <- reverse vs]
-      [] -> error "Algebra.loadVarPair: [] cannot happen"
-loadVarPair x = fail (shows (annotation x) "Bad variable declaration")
-
-loadVar :: MonadFail m => (Gen, [Term]) -> (SExpr Pos, SExpr Pos) ->
-           m (Gen, [Term])
-loadVar (gen, vars) (S pos name, S pos' sort) =
-    case loadLookup pos vars name of
-      Right _ ->
-          fail (shows pos "Duplicate variable declaration for " ++ name)
-      Left _ ->
-          do
-            let (gen', x) = freshId gen name
-            p <- mkVar x
-            return (gen', p : vars)
-    where
-      mkVar x =
-          case sort of
-            "mesg" -> return (I x)
-            "text" -> return $ F Text [I x]
-            "data" -> return $ F Data [I x]
-            "name" -> return $ F Name [I x]
-            "skey" -> return $ F Skey [I x]
-            "akey" -> return $ F Akey [I x]
-            "tag" -> return $ F Tag [I x]
-            "strd" -> return (D x)
-            _ -> fail (shows pos' "Sort " ++ sort ++ " not recognized")
-loadVar _ (x,_) = fail (shows (annotation x) "Malformed vars declaration")
-
-loadLookup :: Pos -> [Term] -> String -> Either String Term
-loadLookup pos [] name = Left (shows pos $ "Identifier " ++ name ++ " unknown")
-loadLookup pos (t : u) name =
-    let name' = idName (varId t) in
-    if name' == name then Right t else loadLookup pos u name
-
-loadLookupName :: MonadFail m => Pos -> [Term] -> String -> m Term
-loadLookupName pos vars name =
-    either fail f (loadLookup pos vars name)
-    where
-      f t@(F Name [I _]) = return t
-      f _ = fail (shows pos $ "Expecting " ++ name ++ " to be a name")
-
-loadLookupAkey :: MonadFail m => Pos -> [Term] -> String -> m Term
-loadLookupAkey pos vars name =
-    either fail f (loadLookup pos vars name)
-    where
-      f t@(F Akey [I _]) = return t
-      f _ = fail (shows pos $ "Expecting " ++ name ++ " to be an akey")
-
-loadTerm2 :: MonadFail m => [Term] -> Bool -> SExpr Pos -> m Term
-loadTerm2 vars _ pos = loadTerm vars pos
-
--- Load term and check that it is well-formed.
-loadTerm :: MonadFail m => [Term] -> SExpr Pos -> m Term
-loadTerm vars (S pos s) =
-    either fail return (loadLookup pos vars s)
-loadTerm _ (Q _ t) =
-    return (F Tag [(C t)])
-loadTerm vars (L pos (S _ s : l)) =
-    case lookup s loadDispatch of
-      Nothing -> fail (shows pos "Keyword " ++ s ++ " unknown")
-      Just f -> f pos vars l
-loadTerm _ x = fail (shows (annotation x) "Malformed term")
-
-type LoadFunction m = Pos -> [Term] -> [SExpr Pos] -> m Term
-
-loadDispatch :: MonadFail m => [(String, LoadFunction m)]
-loadDispatch =
-    [("pubk", loadPubk)
-    ,("privk", loadPrivk)
-    ,("invk", loadInvk)
-    ,("ltk", loadLtk)
-    ,("cat", loadCat)
-    ,("enc", loadEnc)
-    ,("hash", loadHash)
-    ]
-
--- Atom constructors: pubk privk invk ltk
-
-loadPubk :: MonadFail m => LoadFunction m
-loadPubk _ vars [S pos s] =
-    do
-      t <- loadLookupName pos vars s
-      return $ F Akey [F Pubk [I $ varId t]]
-loadPubk _ vars [Q _ c, S pos s] =
-    do
-      t <- loadLookupName pos vars s
-      return $ F Akey [F Pubk [C c, I $ varId t]]
-loadPubk pos _ _ = fail (shows pos "Malformed pubk")
-
-loadPrivk :: MonadFail m => LoadFunction m
-loadPrivk _ vars [S pos s] =
-    do
-      t <- loadLookupName pos vars s
-      return $ F Akey [F Invk [F Pubk [I $ varId t]]]
-loadPrivk _ vars [Q _ c, S pos s] =
-    do
-      t <- loadLookupName pos vars s
-      return $ F Akey [F Invk [F Pubk [C c, I $ varId t]]]
-loadPrivk pos _ _ = fail (shows pos "Malformed privk")
-
-loadInvk :: MonadFail m => LoadFunction m
-loadInvk _ vars [S pos s] =
-    do
-      t <- loadLookupAkey pos vars s
-      return $ F Akey [F Invk [I $ varId t]]
-loadInvk _ vars [L _ [S _ pubk, S pos s]]
-  | pubk == "pubk" =
-    do
-      t <- loadLookupName pos vars s
-      return $ F Akey [F Invk [F Pubk [I $ varId t]]]
-loadInvk _ vars [L _ [S _ pubk, Q _ c, S pos s]]
-  | pubk == "pubk" =
-    do
-      t <- loadLookupName pos vars s
-      return $ F Akey [F Invk [F Pubk [C c, I $ varId t]]]
-loadInvk _ vars [L _ [S _ privk, S pos s]]
-  | privk == "privk" =
-    do
-      t <- loadLookupName pos vars s
-      return $ F Akey [F Pubk [I $ varId t]]
-loadInvk _ vars [L _ [S _ privk, Q _ c, S pos s]]
-  | privk == "privk" =
-    do
-      t <- loadLookupName pos vars s
-      return $ F Akey [F Pubk [C c, I $ varId t]]
-loadInvk _ vars [L _ [S _ invk, t]]
-  | invk == "invk" =
-    do
-      a <- loadTerm vars t
-      case a of
-        F Akey _ -> return a
-        _ -> fail (shows (annotation t) "Expecting an akey")
-loadInvk pos _ _ = fail (shows pos "Malformed invk")
-
-loadLtk :: MonadFail m => LoadFunction m
-loadLtk _ vars [S pos s, S pos' s'] =
-    do
-      t <- loadLookupName pos vars s
-      t' <- loadLookupName pos' vars s'
-      return $ F Skey [F Ltk [I $ varId t, I $ varId t']]
-loadLtk pos _ _ = fail (shows pos "Malformed ltk")
-
--- Term constructors: cat enc
-
-loadCat :: MonadFail m => LoadFunction m
-loadCat _ vars (l : ls) =
-    do
-      ts <- mapM (loadTerm vars) (l : ls)
-      return $ foldr1 (\a b -> F Cat [a, b]) ts
-loadCat pos _ _ = fail (shows pos "Malformed cat")
-
-loadEnc :: MonadFail m => LoadFunction m
-loadEnc pos vars (l : l' : ls) =
-    do
-      let (butLast, last) = splitLast l (l' : ls)
-      t <- loadCat pos vars butLast
-      t' <- loadTerm vars last
-      return $ F Enc [t, t']
-loadEnc pos _ _ = fail (shows pos "Malformed enc")
-
-splitLast :: a -> [a] -> ([a], a)
-splitLast x xs =
-    loop [] x xs
-    where
-      loop z x [] = (reverse z, x)
-      loop z x (y : ys) = loop (x : z) y ys
-
-loadHash :: MonadFail m => LoadFunction m
-loadHash _ vars (l : ls) =
-   do
-     ts <- mapM (loadTerm vars) (l : ls)
-     return $ F Hash [foldr1 (\a b -> F Cat [a, b]) ts]
-loadHash pos _ _ = fail (shows pos "Malformed hash")
-
--- Term specific displaying functions
-
-newtype Context = Context [(Id, String)] deriving Show
-
-displayVars :: Context -> [Term] -> [SExpr ()]
-displayVars _ [] = []
-displayVars ctx vars =
-    case map (displayVar ctx) vars of
-      (v,t):pairs ->
-        loop t [v] pairs
-        where
-          loop t vs [] = [L () (reverse (t:vs))]
-          loop t vs ((v',t'):xs)
-            | t == t' = loop t (v':vs) xs
-            | otherwise = L () (reverse (t:vs)):loop t' [v'] xs
-      [] -> error "Algebra.displayVars: [] cannot happen"
-
-displayVar :: Context -> Term -> (SExpr (), SExpr ())
-displayVar ctx (I x) = displaySortId "mesg" ctx x
-displayVar ctx (F Text [I x]) = displaySortId "text" ctx x
-displayVar ctx (F Data [I x]) = displaySortId "data" ctx x
-displayVar ctx (F Name [I x]) = displaySortId "name" ctx x
-displayVar ctx (F Skey [I x]) = displaySortId "skey" ctx x
-displayVar ctx (F Akey [I x]) = displaySortId "akey" ctx x
-displayVar ctx (F Tag [I x]) = displaySortId "tag" ctx x
-displayVar ctx (D x) = displaySortId "strd" ctx x
-displayVar _ _ =
-    C.assertError "Algebra.displayVar: term not a variable with its sort"
-
-displaySortId :: String -> Context -> Id -> (SExpr (), SExpr ())
-displaySortId sort ctx x = (displayId ctx x, S () sort)
-
-displayId :: Context -> Id -> SExpr ()
-displayId (Context ctx) x =
-    case lookup x ctx of
-      Nothing ->
-          let msg = idName x ++ " in a display context" in
-          C.assertError $ "Algebra.displayId: Cannot find variable " ++ msg
-      Just name -> S () name
-
-displayTerm :: Context -> Term -> SExpr ()
-displayTerm ctx (I x) = displayId ctx x
-displayTerm ctx (F Text [I x]) = displayId ctx x
-displayTerm ctx (F Data [I x]) = displayId ctx x
-displayTerm ctx (F Name [I x]) = displayId ctx x
-displayTerm ctx (F Tag [I x]) = displayId ctx x
-displayTerm ctx (F Skey [I x]) = displayId ctx x
-displayTerm ctx (F Skey [F Ltk [I x, I y]]) =
-    L () [S () "ltk", displayId ctx x, displayId ctx y]
-displayTerm ctx (F Akey [t]) =
-    case t of
-      I x -> displayId ctx x
-      F Invk [I x] -> L () [S () "invk", displayId ctx x]
-      F Pubk [I x] -> L () [S () "pubk", displayId ctx x]
-      F Pubk [C c, I x] -> L () [S () "pubk", Q () c, displayId ctx x]
-      F Invk [F Pubk [I x]] -> L () [S () "privk", displayId ctx x]
-      F Invk [F Pubk [C c, I x]] ->
-          L () [S () "privk", Q () c, displayId ctx x]
-      _ -> C.assertError ("Algebra.displayAkey: Bad term " ++ show t)
-displayTerm _ (F Tag [(C t)]) = Q () t
-displayTerm _ (C t) = Q () t
-displayTerm ctx (F Cat [t0, t1]) =
-    L () (S () "cat" : displayTerm ctx t0 : displayList ctx t1)
-displayTerm ctx (F Enc [t0, t1]) =
-    L () (S () "enc" : displayEnc ctx t0 t1)
-displayTerm ctx (F Hash [t]) =
-    L () (S () "hash" : displayList ctx t)
-displayTerm ctx (D x) = displayId ctx x
-displayTerm _ (Z z) = N () z
-displayTerm _ t = C.assertError ("Algebra.displayTerm: Bad term " ++ show t)
-
-displayList :: Context -> Term -> [SExpr ()]
-displayList ctx (F Cat [t0, t1]) = displayTerm ctx t0 : displayList ctx t1
-displayList ctx t = [displayTerm ctx t]
-
-displayEnc :: Context -> Term -> Term -> [SExpr ()]
-displayEnc ctx (F Cat [t0, t1]) t = displayTerm ctx t0 : displayEnc ctx t1 t
-displayEnc ctx t0 t1 = [displayTerm ctx t0, displayTerm ctx t1]
-
-displayEnv :: Context -> Context -> Env -> [SExpr ()]
-displayEnv ctx ctx' (Env r) =
-    map (\(x, t) -> L () [displayTerm ctx x, displayTerm ctx' t]) r'
-    where
-      r' = map (\(x, t) -> (I x, inferSort t)) $ M.assocs r
-
--- displaySubst c s displays a substitution s in context c, where some
--- variables that occur in s might not be in c.  Enough sort
--- inference is performed so as to allow the extension of the context.
-displaySubst :: Context -> Subst -> [SExpr ()]
-displaySubst ctx (Subst r) =
-    map (\(x, t) -> L () [displayTerm ctx' x, displayTerm ctx' t]) r'
-    where
-      r' = map (\(x, t) -> (I x, inferSort t)) $ M.assocs r
-      ctx' = foldl (\ctx (x, t) -> addToContext ctx [x, t]) ctx r'
-
-inferSort :: Term -> Term
-inferSort t@(F Invk _) = F Akey [t]
-inferSort t@(F Pubk _) = F Akey [t]
-inferSort t@(F Ltk _) = F Skey [t]
-inferSort t = t
-
-emptyContext :: Context
-emptyContext = Context []
-
--- Generate names for output renaming as necessary.
--- Assumes the input is a list of term that are well-formed
-addToContext :: Context -> [Term] -> Context
-addToContext ctx u =
-    foldl (foldVars varContext) ctx u
-
-varContext :: Context -> Term -> Context
-varContext ctx t =
-    let x = varId t
-        name = rootName $ idName x in
-    if hasId ctx x then
-        ctx
-    else
-        if hasName ctx name then
-            extendContext ctx x (genName ctx name)
-        else
-            extendContext ctx x name
-
-hasId :: Context -> Id -> Bool
-hasId (Context ctx) id =
-    maybe False (const True) (lookup id ctx)
-
-hasName :: Context -> String -> Bool
-hasName (Context ctx) name =
-    maybe False (const True) (L.find ((name ==) . snd) ctx)
-
-extendContext :: Context -> Id -> String -> Context
-extendContext (Context ctx) x name =
-    Context $ (x, name) : ctx
-
-genName :: Context -> String -> String
-genName ctx name =
-    loop 0
-    where
-      root = '-' : reverse name
-      loop :: Int -> String
-      loop n =
-          let name' = revapp root (show n) in
-          if hasName ctx name' then
-              loop (n + 1)
-          else
-              name'
-      revapp [] s = s
-      revapp (c : cs) s = revapp cs (c : s)
-
-rootName :: String -> String
-rootName name =
-    noHyphen 0 name
-    where
-      noHyphen _ [] = name
-      noHyphen i (c : s)
-          | c == '-' = hyphen i (i + 1) s
-          | otherwise = noHyphen (i + 1) s
-      hyphen i _ [] = rootName $ take i name
-      hyphen i j (c : s)
-          | isDigit c  = hyphen i (j + 1) s
-          | otherwise = noHyphen j (c : s)
-
-instance C.Context Term Gen Subst Env Context where
-    emptyContext = emptyContext
-    addToContext = addToContext
-    displayVars = displayVars
-    displayTerm = displayTerm
-    displayEnv = displayEnv
-    displaySubst = displaySubst
-
-instance C.Algebra Term Place Gen Subst Env Context
diff --git a/src/CPSA/Channel.hs b/src/CPSA/Channel.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Channel.hs
@@ -0,0 +1,146 @@
+-- Channels and Channel Messages
+
+-- Copyright (c) 2009 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module CPSA.Channel (ChMsg (..), cmTerm, cmTerms, cmMap, cmChan,
+                     cmMatch, cmUnify, cmtSubstitute,
+                     cmFoldCarriedTerms,
+                     CMT (..),
+                     cmtMap, cmtTerms, cmtUnify, cmtTerm,
+                     cmtAncestors, cmSubstitute,
+                     cmtCarriedPlaces,
+                    ) where
+
+import CPSA.Algebra
+
+-- A channel is just a variable of sort message.
+
+-- Channel Messages
+
+-- A channel message is either a plain message or a channel and a
+-- message.
+
+data ChMsg
+  = Plain !Term                 -- Plain message
+  | ChMsg !Term !Term           -- Channel and a message
+  deriving (Show, Eq, Ord)
+
+-- Get channel message term
+cmTerm :: ChMsg -> Term
+cmTerm (Plain t) = t
+cmTerm (ChMsg _ t) = t
+
+-- Get terms in channel message as a list
+cmTerms :: ChMsg -> [Term]
+cmTerms (Plain t) = [t]
+cmTerms (ChMsg ch t) = [ch, t]
+
+-- Get channel message channel
+cmChan :: ChMsg -> Maybe Term
+cmChan (Plain _) = Nothing
+cmChan (ChMsg ch _) = Just ch
+
+-- Map term and the channel if its there in channel message
+cmMap :: (Term -> Term) -> ChMsg -> ChMsg
+cmMap f (Plain  t) = Plain $ f t
+cmMap f (ChMsg ch t) = ChMsg (f ch) (f t)
+
+-- Matching
+
+cmMatch :: ChMsg -> ChMsg -> (Gen, Env) -> [(Gen, Env)]
+cmMatch (Plain t) (Plain t') ge =
+  match t t' ge
+cmMatch (ChMsg ch t) (ChMsg ch' t') ge =
+  do
+    ge <- match ch ch' ge
+    match t t' ge
+cmMatch _ _ _ = []
+
+-- Unification
+
+cmUnify :: ChMsg -> ChMsg -> (Gen, Subst) -> [(Gen, Subst)]
+cmUnify (Plain t) (Plain t') gs =
+  unify t t' gs
+cmUnify (ChMsg ch t) (ChMsg ch' t') gs =
+  do
+    gs <- unify ch ch' gs
+    unify t t' gs
+cmUnify _ _ _ = []
+
+cmSubstitute :: Subst -> ChMsg -> ChMsg
+cmSubstitute subst t = cmMap (substitute subst) t
+
+cmFoldCarriedTerms :: (a -> CMT -> a) -> a -> ChMsg -> a
+cmFoldCarriedTerms f acc cm@(ChMsg _ t) =
+  foldCarriedTerms g (f acc (CM cm)) t
+  where
+    g acc t = f acc (TM t)
+cmFoldCarriedTerms f acc (Plain t) =
+  foldCarriedTerms g acc t
+  where
+    g acc t = f acc (TM t)
+
+-- Channel messages or internal terms
+
+data CMT
+  = TM Term
+  | CM ChMsg
+  deriving (Show, Eq, Ord)
+
+-- Map term and the channel if its there in channel message
+cmtMap :: (Term -> Term) -> CMT -> CMT
+cmtMap f (CM t) = CM $ cmMap f t
+cmtMap f (TM t) = TM $ f t
+
+cmtTerms :: CMT -> [Term]
+cmtTerms (CM cm) = cmTerms cm
+cmtTerms (TM t) = [t]
+
+cmtUnify :: CMT -> CMT -> (Gen, Subst) -> [(Gen, Subst)]
+cmtUnify (CM t) (CM t') gs = cmUnify t t' gs
+cmtUnify (TM t) (TM t') gs = unify t t' gs
+cmtUnify _ _ _ = []
+
+cmtTerm :: CMT -> Term
+cmtTerm (CM cm) = cmTerm cm
+cmtTerm (TM t) = t
+
+-- Carried places
+
+cmtCarriedPlaces :: CMT -> ChMsg -> [Place]
+cmtCarriedPlaces (TM ct) (Plain t) =
+  map (prefix 0) (carriedPlaces ct t)
+cmtCarriedPlaces (TM ct) (ChMsg _ t) =
+  map (prefix 1) (carriedPlaces ct t)
+cmtCarriedPlaces (CM ct) cm
+  | ct == cm = [Place []]
+cmtCarriedPlaces _ _ = []
+
+prefix :: Int -> Place -> Place
+prefix n (Place p) = Place (n : p)
+
+cmtAncestors :: ChMsg -> Place -> [CMT]
+cmtAncestors _ (Place []) = []
+cmtAncestors cm@(Plain t) (Place (0 : path)) =
+  CM cm : map TM (ancestors t (Place path))
+cmtAncestors cm@(ChMsg _ t) (Place (1 : path)) =
+  CM cm : map TM (ancestors t (Place path))
+cmtAncestors _ _ = error "Channel.cmtAncestors: Bad path to term"
+
+{-
+cmAncestors :: ChMsg -> Place -> [CMT]
+cmAncestors ::
+cmAncestors _ (Place []) = []
+cmAncestors cm@(Plain t) (Place (0 : path)) =
+  cm : map Plain (ancestors t (Place path))
+cmAncestors cm@(ChMsg _ t) (Place (1 : path)) =
+  cm : map Plain (ancestors t (Place path))
+cmAncestors _ _ = error "Channel.cmAncestors: Bad path to term"
+-}
+
+cmtSubstitute :: Subst -> CMT -> CMT
+cmtSubstitute subst t = cmtMap (substitute subst) t
diff --git a/src/CPSA/Characteristic.hs b/src/CPSA/Characteristic.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Characteristic.hs
@@ -0,0 +1,241 @@
+-- Makes the characteristic skeleton of a security goal
+
+-- Copyright (c) 2015 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module CPSA.Characteristic (Conj, characteristic) where
+
+import Control.Monad
+import qualified Data.List as L
+import CPSA.Lib.Utilities
+import CPSA.Lib.ReturnFail
+import CPSA.Lib.SExpr
+import CPSA.Algebra
+import CPSA.Protocol
+import CPSA.Strand
+
+{--
+import System.IO.Unsafe
+z :: Show a => a -> b -> b
+z x y = unsafePerformIO (print x >> return y)
+--}
+
+-- Relocating this to Protocol.hs:
+-- type Conj = [(Pos, AForm)]
+
+-- Entry point.  Takes a position, a protocol, a variable generator, a
+-- goal, and a skeleton comment and makes a skeleton or fails.  This
+-- function extracts the anecedent and univesally quantified variable.
+characteristic :: MonadFail m => Pos -> Prot -> [Goal] -> Gen ->
+                  Conj -> [SExpr ()] -> m Preskel
+characteristic pos prot goals g antec comment =
+  equalsForm pos prot goals g antec comment
+
+-- Checks for equals in an antecedent and fails if it finds one.  One
+-- could use unification to solve the equality, and then apply the
+-- result to the remaining parts of the formula.
+equalsForm :: MonadFail m => Pos -> Prot -> [Goal] -> Gen ->
+              Conj -> [SExpr ()] -> m Preskel
+equalsForm pos _ _ _ as _ | any isEquals as =
+  fail (shows pos "Equals not allowed in antecedent")
+equalsForm pos prot goals g as comment =
+  splitForm pos prot goals g as comment
+
+isEquals :: (Pos, AForm) -> Bool
+isEquals (_, Equals _ _) = True
+isEquals _ = False
+
+-- Split the formula into instance formulas and skeleton formulas.
+-- The instance formulas are used to generate the skeleton's
+-- instances, and the skeleton formulas generate the rest.  Make the
+-- instances, and then make the rest.
+splitForm :: MonadFail m => Pos -> Prot -> [Goal] -> Gen ->
+             Conj -> [SExpr ()] -> m Preskel
+splitForm pos prot goals g as comment =
+  do
+    (nmap, g, insts) <- mkInsts g is
+    mkSkel pos prot goals nmap g insts ks comment
+  where                         -- is is the instance formulas and
+    (is, ks) = L.partition instForm as -- ks is the skeleton formulas
+
+-- Instance formulas are role length and parameter predicates.
+instForm :: (Pos, AForm) -> Bool
+instForm (_, Length _ _ _) = True
+instForm (_, Param _ _ _ _ _) = True
+instForm _ = False
+
+-- Make the instances from the instance predicates
+
+mkInsts :: MonadFail m => Gen -> Conj -> m ([(Term, Sid)], Gen, [Instance])
+mkInsts g as =
+  do
+    srl <- strdRoleLength as    -- Compute role-length of each strand
+    (g, insts) <- foldInsts g as srl -- Construct instances
+    let strdMap = zip (map fst srl) [0..] -- Construct strand map
+    return (strdMap, g, insts) -- Construct node map for later use
+
+-- Computes a map from strands to roles and lengths
+strdRoleLength :: MonadFail m => Conj -> m [(Term, (Role, Int))]
+strdRoleLength as =
+  foldM f [] as
+  where
+    f srl (pos, Length r z ht) =
+      case indxLookup emptyEnv ht of
+        Nothing -> fail (shows pos "Index is variable, not integer")
+        Just h ->
+          (case lookup z srl of
+            Nothing -> return ((z, (r, h)) : srl)
+            Just (r', h')
+              | rname r' /= rname r ->
+                fail (shows pos
+                      "Strand occurs in more than one role length atom")
+              | h <= h' -> return srl -- Use original binding
+              | otherwise -> return ((z, (r, h)) : srl))
+    f srl _ = return srl
+
+-- Construct instances
+foldInsts :: MonadFail m => Gen -> Conj -> [(Term, (Role, Int))] ->
+             m (Gen, [Instance])
+foldInsts g _ [] = return (g, [])
+foldInsts g as ((z, (r, h)) : srs) =
+  do
+    (g, inst) <- mkInst g as z r h
+    (g, insts) <- foldInsts g as srs
+    return (g, inst : insts)
+
+-- Construct an instance by extracting maplets from the parameter
+-- predicates associated with the strand.
+mkInst :: MonadFail m => Gen -> Conj -> Term -> Role -> Int -> m (Gen, Instance)
+mkInst g as z r h =
+  do
+    (g, env) <- foldM (mkMaplet r z) (g, emptyEnv) as
+    return (mkInstance g r env h)
+
+-- Add match from a maplet
+mkMaplet :: MonadFail m => Role -> Term -> (Gen, Env) ->
+            (Pos, AForm) -> m (Gen, Env)
+mkMaplet role z env (pos, Param r v _ z' t)
+  | z == z' =
+    if rname role == rname r then -- Ensure role matches the one
+      case match v t env of       -- used to create instance
+        env : _ -> return env
+        [] -> fail (shows pos "Domain does not match range")
+    else
+      fail (shows pos
+            "Role in parameter pred differs from role position pred")
+mkMaplet _ _ env _ = return env
+
+-- Use this lookup when lookup must succeed, that is when loader makes
+-- the check.
+nMapLookup :: NodeTerm -> [(Term, Sid)] -> Node
+nMapLookup (z, ht) nmap =
+  case (lookup z nmap, indxLookup emptyEnv ht) of
+    (Just s, Just i) -> (s, i)
+    (Nothing, _) -> error "Characteristic.nMapLookup: Bad lookup"
+    (_, Nothing) -> error "Characteristic.nMapLookup: Bad height term"
+
+-- Create a skeleton given a list of instances
+
+mkSkel :: MonadFail m => Pos -> Prot -> [Goal] -> [(Term, Sid)] ->
+          Gen -> [Instance] -> Conj -> [SExpr ()] -> m Preskel
+mkSkel pos p goals nmap g insts as comment =
+  do
+    let o = foldr (mkPrec nmap) [] as
+    let nr = foldr mkNon [] as
+    let ar = foldr mkPnon [] as
+    let ur = foldr mkUniq [] as
+    let ug = foldr mkUgen [] as
+    let gs = foldr mkGenSt [] as
+    let cf = foldr mkConf [] as
+    let au = foldr mkAuth [] as
+    let (nr', ar', ur', ug', cf', au') =
+          foldl addInstOrigs (nr, ar, ur, ug, cf, au) insts
+    let fs = foldr (mkFact nmap) [] as
+    let prios = []
+    let k = mkPreskel g p goals insts o nr' ar' ur' ug' [] []
+            gs cf' au' fs prios comment
+    mapM_ (checkUniqAt nmap k) as
+    mapM_ (checkUgenAt nmap k) as
+    case termsWellFormed $ nr' ++ ar' ++ ur' ++ ug' ++ kterms k of
+      False -> fail (shows pos "Terms in skeleton not well formed")
+      True -> return ()
+    case verbosePreskelWellFormed k of
+      Return () -> return k
+      Fail msg -> fail $ shows pos
+                  $ showString "Skeleton not well formed: " msg
+
+addInstOrigs :: ([Term], [Term], [Term], [Term], [Term], [Term]) ->
+                Instance -> ([Term], [Term], [Term], [Term], [Term], [Term])
+addInstOrigs (nr, ar, ur, ug, cf, au) i =
+    (foldl (flip adjoin) nr $ inheritRnon i,
+     foldl (flip adjoin) ar $ inheritRpnon i,
+     foldl (flip adjoin) ur $ inheritRunique i,
+     foldl (flip adjoin) ug $ inheritRuniqgen i,
+     foldl (flip adjoin) au $ inheritRconf i,
+     foldl (flip adjoin) cf $ inheritRauth i)
+
+mkPrec :: [(Term, Sid)] -> (Pos, AForm) -> [Pair] -> [Pair]
+mkPrec nmap (_, Prec n n') o =
+  (nMapLookup n nmap, nMapLookup n' nmap) : o
+mkPrec _ _ o = o
+
+mkNon :: (Pos, AForm) -> [Term] -> [Term]
+mkNon (_, Non t) ts = t : ts
+mkNon _ ts = ts
+
+mkPnon :: (Pos, AForm) -> [Term] -> [Term]
+mkPnon (_, Pnon t) ts = t : ts
+mkPnon _ ts = ts
+
+mkUniq :: (Pos, AForm) -> [Term] -> [Term]
+mkUniq (_, Uniq t) ts = t : ts
+mkUniq (_, UniqAt t _) ts = t : ts
+mkUniq _ ts = ts
+
+mkUgen :: (Pos, AForm) -> [Term] -> [Term]
+mkUgen (_, Ugen t) ts = t : ts
+mkUgen (_, UgenAt t _) ts = t : ts
+mkUgen _ ts = ts
+
+mkGenSt :: (Pos, AForm) -> [Term] -> [Term]
+mkGenSt (_, GenStV t) ts = t : ts
+mkGenSt _ ts = ts
+
+mkConf :: (Pos, AForm) -> [Term] -> [Term]
+mkConf (_, Conf t) ts = t : ts
+mkConf _ ts = ts
+
+mkAuth :: (Pos, AForm) -> [Term] -> [Term]
+mkAuth (_, Auth t) ts = t : ts
+mkAuth _ ts = ts
+
+mkFact :: [(Term, Sid)] -> (Pos, AForm) -> [Fact] -> [Fact]
+mkFact nmap (_, AFact name fs) ts =
+  Fact name (map f fs) : ts
+  where
+    f t =
+      case lookup t nmap of
+        Just s -> FSid s
+        Nothing -> FTerm t
+mkFact _ _ ts = ts
+
+checkUniqAt :: MonadFail m => [(Term, Sid)] -> Preskel -> (Pos, AForm) -> m ()
+checkUniqAt nmap k (pos, UniqAt t n) =
+  case lookup t $ korig k of
+    Nothing -> fail (shows pos "Atom not unique at node")
+    Just ns
+      | elem (nMapLookup n nmap) ns -> return ()
+      | otherwise -> fail (shows pos "Atom not unique at node")
+checkUniqAt _ _ _ = return ()
+
+checkUgenAt :: MonadFail m => [(Term, Sid)] -> Preskel -> (Pos, AForm) -> m ()
+checkUgenAt nmap k (pos, UgenAt t n) =
+  case lookup t $ kugen k of
+    Nothing -> fail (shows pos "Atom not uniq gen at node")
+    Just ns
+      | elem (nMapLookup n nmap) ns -> return ()
+      | otherwise -> fail (shows pos "Atom not uniq gen at node")
+checkUgenAt _ _ _ = return ()
diff --git a/src/CPSA/Cohort.hs b/src/CPSA/Cohort.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Cohort.hs
@@ -0,0 +1,806 @@
+-- Computes the cohort associated with a skeleton or its generalization
+
+-- Copyright (c) 2009 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module CPSA.Cohort (Mode(..), ReduceRes(..), reduce, unrealized) where
+
+import qualified Data.Set as S
+import Data.Set (Set)
+import qualified Data.List as L
+import Control.Parallel
+import CPSA.Algebra
+import CPSA.Channel
+import CPSA.Protocol
+import CPSA.Strand
+
+{-- Debugging support
+import System.IO.Unsafe
+
+z :: Show a => a -> b -> b
+z x y = unsafePerformIO (print x >> return y)
+
+  zShow :: Show a => a -> a
+zShow x = z (show x) x
+
+zz :: Show a => a -> a
+zz x = z x x
+
+zn :: Show a => a -> Maybe b -> Maybe b
+zn x Nothing = z x Nothing
+zn _ y = y
+
+zf :: Show a => a -> Bool -> Bool
+zf x False = z x False
+zf _ y = y
+
+zt :: Term -> String
+zt t =
+    show (displayTerm (addToContext emptyContext [t]) t)
+
+zs :: Set Term -> String
+zs s =
+    show $ map (displayTerm (addToContext emptyContext ts)) ts
+    where
+      ts = S.toList s
+
+zl :: Show a => [a] -> [a]
+zl a = z (length a) a
+
+zi :: Instance -> String
+zi inst =
+    show (map f e)
+    where
+      domain = rvars (role inst)
+      e = reify domain (env inst)
+      range = map snd e
+      f (x, t) = (displayTerm (context domain) x,
+                  displayTerm (context range) t)
+      context ts = addToContext emptyContext ts
+--}
+
+-- Compile time switches for expermentation.
+
+-- Include the escape set in the set of target terms
+useEscapeSetInTargetTerms :: Bool
+useEscapeSetInTargetTerms = False -- True
+
+-- Filter a cohort for skeletons that solve the test.  Turn off only
+-- to debug the other parts of the test solving algorithm.
+useSolvedFilter :: Bool
+useSolvedFilter = True -- False
+
+-- Use thinning during generalization.
+useThinningDuringGeneralization :: Bool
+useThinningDuringGeneralization = False -- True
+
+omitGeneralization :: Bool
+omitGeneralization = False -- True
+
+-- Minimum priority to solve
+minPriority :: Int
+minPriority = 1
+
+-- Penetrator derivable predicate and checking for unrealized skeletons.
+
+derivable :: Set Term -> Set Term -> Term -> Bool
+derivable avoid sent term =
+    let (knowns, unknowns) = decompose sent avoid in
+    buildable knowns unknowns term
+
+-- Returns the nodes in a preskeleton that are not realized.
+unrealized :: Preskel -> [Node]
+unrealized k =
+    foldl unrealizedInStrand [] (strands k)
+    where
+      (a, _) = avoid k
+      unrealizedInStrand acc s =
+          fst $ foldl unrealizedInNode (acc, S.empty) (nodes s)
+      unrealizedInNode (acc, ns) n =
+          case inbnd $ event n of
+            Nothing -> (acc, ns)
+            Just t ->
+              case () of
+                _ | S.member t (cmsInNodes ns') ->
+                      -- If channel message is sent, the node is realized
+                      (acc, ns')
+                  | authCm k t ->
+                      -- If channel message is authenticated
+                      -- the channel message is a critical value
+                      (graphNode n : acc, ns')
+                  | derivable a ts (cmTerm t) ->
+                      -- If derivable, node is realized
+                      (acc, ns')
+                  | otherwise ->
+                      -- A term is a critical value
+                      (graphNode n : acc, ns')
+              where
+                ns' = addSendingBefore ns n
+                ts = termsInNodes k ns'
+
+addSendingBefore :: Set Vertex -> Vertex -> Set Vertex
+addSendingBefore s n =
+    foldl addSending s (preds n)
+    where
+      addSending s n
+        | S.member n s = s
+        | otherwise = addSendingBefore (addIfSending s n) n
+      addIfSending s n =
+          case outbnd $ event n of
+            Nothing -> s
+            Just _ -> S.insert n s
+
+cmsInNodes :: Set Vertex -> Set ChMsg
+cmsInNodes ns =
+  S.map (evtCm . event) ns
+
+-- Find public messages excluding terms sent on confidential channels
+termsInNodes :: Preskel -> Set Vertex -> Set Term
+termsInNodes k ns =
+  S.map cmTerm (S.filter (not . confCm k) $ cmsInNodes ns)
+
+-- Find confidential channel messages
+confsInNodes :: Preskel -> Set Vertex -> Set ChMsg
+confsInNodes k ns =
+  S.filter (confCm k) $ cmsInNodes ns
+
+-- Returns that atoms that cannot be guess when determining if a
+-- term is derivable from some other terms, and the atoms that
+-- uniquely originate or generate in this skeleton.
+avoid :: Preskel -> (Set Term, [Term])
+avoid k =
+    (S.fromList (knon k ++ p ++ u ++ g),
+      L.nub (p ++ u ++ g))
+    where
+      p = kpnon k
+      u = uniqOrig k
+      g = uniqGen k
+
+-- Suppose k --v,p-> k', where k |-phi,sigma-> k'.  Let t=msg(k, v)@p,
+-- t'=sigma(t), T=sigma(esc(k, v, t)), and t''=msg(k', phi(v)).
+-- Position p is solved in k' from k at v if:
+--
+-- 1. some member of anc(t'', p) is in T', or
+--
+-- 2. for some t in outpred(k', phi(v)), t' is not carried only within
+--    T in t, or
+--
+-- 3. targetterms(t', T) \ sigma(targetterms(t, esc(k, v, t))) /= empty
+--    and there are variables in k's protocol that are not atoms, or
+--
+-- 4. the decryption key for an element of T is derivable, or
+--
+-- 5. t' is an encryption and the encryption key for t' is derivable.
+--
+-- 6. t' is derivable in k' at phi(v).
+--
+-- 7. k' has a distinct absent constraint
+--
+-- Haskell variables:
+-- ct     = t
+-- pos    = p
+-- ek     = encription key if ct is an encyption else nothing
+-- escape = esc(k, v, t)
+-- k      = k'
+-- n      = v
+-- subst  = sigma
+solved :: CMT -> Place -> [Term] -> Set CMT ->
+          Preskel -> Node -> Subst -> [(Term, Term)] -> Bool
+solved ct pos eks escape k n subst absent =
+    -- Condition 1
+    isAncestorInSet escape' t pos ||
+    -- Condition 1a, needed for DH according to Moses
+    derivable a (excludeConf k escape') (cmtTerm ct') ||
+    -- Condition 2
+    any (not . carriedOnlyWithin ct' escape') (S.toList $ cmsInNodes vs) ||
+    -- Condition 3
+    not (varsAllAtoms (protocol k)) && not (S.null targetTermsDiff) ||
+    -- Condition 4
+    any (maybe False (derivable a ts) . decryptionKey) (S.toList encs) ||
+    -- Condition 5
+    -- Bug fix: apply subst to eks
+    any (derivable a ts) (map (substitute subst) eks) ||
+    -- Condition 6
+    derivable a ts (cmtTerm ct') ||
+    -- Condition 7: hack?
+    length (kabsent k) > length absent
+    where
+      v = vertex k n            -- Look up vertex in k
+      t = evtCm (event v)       -- Term at v
+      ct' = cmtSubstitute subst ct -- Mapped critical term
+      escape' = S.map (cmtSubstitute subst) escape
+      mappedTargetTerms = S.map (cmtSubstitute subst) (targetTerms ct escape)
+      targetTermsDiff = S.difference (targetTerms ct' escape') mappedTargetTerms
+      vs = addSendingBefore S.empty v
+      ts = termsInNodes k vs     -- Outbound non-conf predecessors
+      (a, _) = avoid k
+      encs = S.fold f S.empty escape'
+      f (CM _) ts = ts
+      f (TM t) ts = S.insert t ts
+
+maybeSolved :: CMT -> Place -> [Term] -> Set CMT ->
+               Preskel -> Node -> Subst -> [(Term, Term)] -> Bool
+maybeSolved ct pos eks escape k n subst absent =
+    not useSolvedFilter || solved ct pos eks escape k n subst absent
+
+data Mode = Mode
+    { noGeneralization :: Bool,
+      nonceFirstOrder :: Bool,
+      visitOldStrandsFirst :: Bool,
+      reverseNodeOrder :: Bool }
+    deriving Show
+
+excludeConf :: Preskel -> Set CMT -> Set Term
+excludeConf k cm =
+  S.map cmtTerm (S.filter f cm)
+  where
+    f (CM cm) = not $ confCm k cm
+    f (TM _) = True
+
+parFoldr :: (a -> b -> b) -> b -> [a] -> b
+parFoldr _ b [] = b
+parFoldr f b (a : as) =
+    par b' (f a b')
+    where
+      b' = parFoldr f b as
+
+-- Desired functionality, given a skeleton k.
+
+-- If some node in k is unrealized, then find a test for it; compute
+-- the cohort; close each cohort member under the rules using
+-- simplify.  Return the list of results simpKs factored by
+-- isomorphism, labeled as Crt simpKs.
+--
+-- If this is Crt [], then k is dead.
+
+-- If no node in k is unrealized, then close under the rules,
+-- obtaining 0 or more results factored by isomorphism.
+
+-- If just one k' is present in these results, and k' is isomorphic to
+-- k, then k is realized.  Check whether k can be generalized,
+-- returning Gnl ks, where ks are the results (factored by
+-- isomorphism) of simplifying the generalized versions.  When k
+-- cannot be generalized, Return Stable, since it is a successful
+-- terminal value for the branch.
+
+-- If multiple nonisomorphic results ks are obtained from simplifying
+-- k, return Crt ks.
+
+-- Previous comment, which was less explicit:
+
+--   -- Abort if there is an unrealized node without a test, otherwise
+--   -- return a list of skeletons that solve one test.  If the skeleton is
+--   -- realized, try to generalize it, but only when noIsoChk is false.
+--   -- After all of that, apply rewrite rule and filter output that makes
+--   -- no progress.
+
+data ReduceRes = Stable | Crt [Preskel] | Gnl [Preskel] -- now needed
+
+simplifyNonIsomorphic :: Preskel -> [Preskel]
+simplifyNonIsomorphic = factorIsomorphicPreskels . simplify
+
+reduceNoTest :: Mode -> Preskel -> ReduceRes
+reduceNoTest mode k =
+    case simplifyNonIsomorphic k of
+      [k']
+          | isomorphic (gist k) (gist k') ->
+              if omitGeneralization || noGeneralization mode then Stable
+              else
+                  (case filterSame k (maximize k) of
+                     [] -> Stable
+                     ks -> Gnl ks)
+          | True -> Crt [k']
+      ks -> Crt (filterSame k ks)
+
+reduce :: Mode -> Preskel -> ReduceRes
+reduce mode k =
+    case findTest mode k u a of
+      Nothing -> reduceNoTest mode k
+      Just ks ->                -- normal cohort for selected unrealized node
+        Crt (parFoldr
+             (\k soFar -> (simplify k) ++ soFar)
+             []
+             $ factorIsomorphicPreskels ks)
+    where
+      (a, u) = avoid k
+
+-- Filter out skeletons in ks that are isomorphic to k.
+filterSame :: Preskel -> [Preskel] -> [Preskel]
+filterSame k ks =
+  filter f ks
+  where
+    f k' = not $ isomorphic (gist k) (gist k')
+
+prioritizeVertices :: Preskel -> [Vertex] -> [Vertex]
+prioritizeVertices k vs =
+     map fst $ filter keep $ L.sortBy prios $ map addPrio vs
+     where
+       addPrio v = (v, priority k (sid $ strand v, pos v))
+       prios (_, p) (_, p') = compare p' p
+       keep (_, p) = p >= minPriority
+
+priority :: Preskel -> Node -> Int
+priority k (s, i) =
+  case lookup (s, i) (kpriority k) of
+    Just p -> p
+    Nothing -> rpriority (role $ insts k !! s) !! i
+
+nodeOrder :: Mode -> Preskel -> [Vertex]
+nodeOrder mode k =
+    concatMap (nodeVisitOrder mode) (strandVisitOrder mode (strands  k))
+
+strandVisitOrder :: Mode -> [a] -> [a]
+strandVisitOrder mode ss =
+    if visitOldStrandsFirst mode then
+        ss                      -- Visit old strands first
+    else
+        reverse ss     -- Visit recently added strands first (default)
+
+nodeVisitOrder :: Mode -> Strand -> [Vertex]
+nodeVisitOrder mode s =
+    if reverseNodeOrder mode == rsearch (role $ inst s) then
+        nodes s                -- Visit earliest nodes first (default)
+    else
+        reverse $ nodes s       -- Visit latest nodes first
+
+-- Look for a test node in a strand
+findTest :: Mode -> Preskel -> [Term] -> Set Term -> Maybe [Preskel]
+findTest mode k u a =
+    loop (prioritizeVertices k $ nodeOrder mode k)
+    where
+      loop [] = Nothing
+      loop (n : nodes) =
+          case inbnd $ event n of
+            Nothing -> loop nodes
+            Just t ->
+              case () of
+                _ | S.member t (cmsInNodes ns) ->
+                      -- If previous node sent channel message, node
+                      -- is realized
+                      loop nodes
+                  | authCm k t ->
+                      -- If channel message is authenticated
+                      -- the channel message is a critical value
+                      Just $ chanSolveNode k (graphNode n) t
+                  | buildable ts' a' (cmTerm t) ->
+                      -- If derivable, node is realized
+                      loop nodes
+                  | otherwise ->
+                      -- A term is a critical value
+                      Just $ testNode mode k u cms ts' a' (graphNode n) t
+              where
+                ns = addSendingBefore S.empty n
+                ts = termsInNodes k ns    -- Public messages
+                (ts', a') = decompose ts a
+                cms = confsInNodes k ns
+
+-- Look for a critical term that makes this node a test node.
+testNode :: Mode -> Preskel -> [Term] -> Set ChMsg -> Set Term ->
+            Set Term -> Node -> ChMsg -> [Preskel]
+testNode mode k u cms ts a n cm =
+  loop $ potentialCriticalMessages mode u ts a $ cmTerm cm
+  where
+    loop [] = error (
+      "Cohort.testNode missing test at " ++ show n ++ "\n" ++ show cm)
+    loop ((ct, eks) : cts) =
+      case escapeSet ts a ct of
+        Nothing -> loop cts
+        Just esc ->
+          places (cmtCarriedPlaces (TM ct) cm)
+          where
+            places [] = loop cts  -- Find position at which
+            places (p : ps)       -- ct has escaped
+              | isAncestorInSet escape cm p = places ps
+              | otherwise = solveNode k a (TM ct) p eks n cm escape
+            escape = S.union    -- The escape set has type CMT
+                     (S.map TM esc)
+                     (S.map CM (S.filter (carriedBy ct . cmTerm) cms))
+
+potentialCriticalMessages :: Mode -> [Term] -> Set Term ->
+                             Set Term -> Term -> [(Term, [Term])]
+potentialCriticalMessages mode u ts a t =
+  if nonceFirstOrder mode then
+    nonces ++ encs
+  else
+    encs ++ nonces
+  where
+    nonces = map f (filter (flip carriedBy t) u) ++
+             (foldCarriedTerms fnum [] t)
+    encs = filter g (map h (encryptions t))
+    fnum nums t | isNum t && (not $ buildable ts a t) = nums ++ [(t, [])]
+                | otherwise = nums
+    f ct = (ct, [])             -- A nonce tests has no eks
+    g (_, []) = False           -- An encryption test must have
+    g _ = True                  -- at least one non-derivable key
+    -- Dump derivable encryption keys
+    h (ct, eks) = (ct, filter (not . buildable ts a) eks)
+
+carriedOnlyWithin :: CMT -> Set CMT -> ChMsg -> Bool
+carriedOnlyWithin target escape source =
+    all (isAncestorInSet escape source) (cmtCarriedPlaces target source)
+
+-- isAncestorInSet set source position is true if there is one ancestor of
+-- source at position that is in the set.
+isAncestorInSet :: Set CMT -> ChMsg -> Place -> Bool
+isAncestorInSet set source position =
+    any (flip S.member set) (cmtAncestors source position)
+
+-- Solve critical message at position pos at node n.
+-- ct = t @ pos
+-- t  = msg(k, n)
+solveNode :: Preskel -> Set Term -> CMT -> Place -> [Term] -> Node ->
+             ChMsg -> Set CMT -> [Preskel]
+-- solveNode _ _ _ _ _ _ _ = []
+solveNode k a ct pos eks n t escape =
+    mgs $ cons ++ augs ++ lsns ++ dhs
+    where
+      cons = contractions k ct pos eks n t escape cause
+      augs = augmentations k ct pos eks n escape cause
+      lsns = addListeners k ct pos eks n t escape cause
+      dhs = theDHSubcohort k a ct pos eks n escape cause
+      cause = Cause (dir eks) n ct escape
+
+-- Authenticated channel message is the critical value
+chanSolveNode :: Preskel -> Node -> ChMsg -> [Preskel]
+chanSolveNode k n ct =
+  mgs $ augmentations k t pos eks n escape cause
+  where
+    t = CM ct
+    pos = Place []
+    eks = []
+    escape = S.empty
+    cause = Cause Channel n t escape
+
+-- Filter out all but the skeletons with the most general homomorphisms.
+
+mgs :: [(Preskel, [Sid])] -> [Preskel]
+mgs cohort =
+  reverse $ map fst $ loop cohort []
+  where
+    loop [] acc = acc
+    loop (kphi : cohort) acc
+      | any (f kphi) cohort || any (f kphi) acc =
+        loop cohort acc
+      | otherwise = loop cohort (kphi : acc)
+    f (k, phi) (k', phi') =
+        let ans = any (not. null . homomorphism k' k)
+                  (composeFactors (strandids k) (strandids k') phi phi') in
+        ans
+
+-- Given two permutations p and p', with ranges r and r', this
+-- function returns the list of permutations p'' such that
+--
+--    p'' o p' = p.
+--
+-- This function assumes p' is injective and the returns permutations
+-- that also must be.
+
+composeFactors :: [Int] -> [Int] -> [Int] -> [Int] -> [[Int]]
+composeFactors r r' p p' =
+  perms (zip p' p) (filter (flip notElem p) r) r'
+
+-- The correctness of this function depends on the fact that the
+-- length of range is at most one so that the result is always
+-- injective.
+
+perms :: [(Int, Int)] -> [Int] -> [Int] -> [[Int]]
+perms _ _ [] = [[]]
+perms alist range (s:domain) =
+  case lookup s alist of
+    Just s' -> [ s':ss | ss <- perms alist range domain ]
+    Nothing -> [ s':ss | s' <- range, ss <- perms alist range domain ]
+
+-- Contractions
+
+-- Contract the critical message at the given position.
+contractions :: Preskel -> CMT -> Place -> [Term] -> Node -> ChMsg ->
+                Set CMT -> Cause -> [(Preskel, [Sid])]
+contractions k ct pos eks n t escape cause =
+    [ (k', phi) |
+           let anc = cmtAncestors t pos,
+           subst <- solve escape anc (gen k, emptySubst) ++
+                    constSolve (gen k, emptySubst) ct,
+           (k', n, phi, subst') <- contract k n cause subst,
+           maybeSolved ct pos eks escape k' n subst' (kabsent k) ]
+
+constSolve :: (Gen, Subst) -> CMT -> [(Gen, Subst)]
+constSolve subst ct =
+    [ s | c <- consts (cmtTerm ct),
+          s <- unify (cmtTerm ct) c subst]
+
+solve :: Set CMT -> [CMT] -> (Gen, Subst) -> [(Gen, Subst)]
+solve escape ancestors subst =
+    [ s | e <- S.toList escape,
+          a <- ancestors,
+          s <- cmtUnify a e subst ]
+
+carriedOnlyWithinAtSubst :: CMT -> Set CMT -> ChMsg -> (Gen, Subst) -> Bool
+carriedOnlyWithinAtSubst  ct escape t (_, subst) =
+    carriedOnlyWithin ct' escape' t'
+    where
+      ct' = cmtSubstitute subst ct
+      escape' = S.map (cmtSubstitute subst) escape
+      t' = cmSubstitute subst t
+
+fold :: CMT -> Set CMT -> ChMsg -> (Gen, Subst) -> [(Gen, Subst)]
+fold ct escape t (gen, subst) =
+    [ (gen', compose subst' subst) |
+      (gen', subst') <- foldl f [(gen, emptySubst)] (cmtCarriedPlaces ct' t') ]
+    where
+      ct' = cmtSubstitute subst ct
+      escape' = S.map (cmtSubstitute subst) escape
+      t' = cmSubstitute subst t
+      f substs p =
+          [ s | subst <- substs, s <- solve escape' (cmtAncestors t' p) subst ]
+
+dir :: [a] -> Direction
+dir [] = Nonce
+dir _ = Encryption
+
+-- Augmentations
+
+augmentations :: Preskel -> CMT -> Place -> [Term] -> Node ->
+                 Set CMT -> Cause -> [(Preskel, [Sid])]
+augmentations k ct pos eks n escape cause =
+    [ k' | r <- roles (protocol k),
+           k' <- roleAugs k ct pos eks n escape cause targets r ]
+    where
+      targets = S.toList (targetTerms ct escape)
+
+roleAugs :: Preskel -> CMT -> Place -> [Term] -> Node -> Set CMT ->
+            Cause -> [CMT] -> Role -> [(Preskel, [Sid])]
+roleAugs k ct pos eks n escape cause targets role =
+    [ (k', phi) |
+           (subst', inst) <-
+               transformingNode ct escape targets role subst,
+           (k', n', phi, subst'') <-
+               augment k n cause role subst' inst,
+           maybeSolved ct pos eks escape k' n' subst'' (kabsent k)]
+    where
+      subst = cloneRoleVars (gen k) role
+
+-- Generate a fresh set of role variables
+cloneRoleVars :: Gen -> Role -> (Gen, Subst)
+cloneRoleVars gen role =
+    grow (rvars role) gen emptyEnv
+    where
+      grow [] gen env = (gen, substitution env)
+      grow (t : ts) gen env =
+          let (gen', t') = clone gen t in
+          case match t t' (gen', env) of
+            (gen'', env') : _ -> grow ts gen'' env'
+            [] -> error "Cohort.grow: Internal error"
+
+transformingNode :: CMT -> Set CMT -> [CMT] -> Role ->
+                    (Gen, Subst) -> [((Gen, Subst), Instance)]
+transformingNode ct escape targets role subst =
+    loop 1 [] [] (rtrace role)
+    where
+      -- loop height past acc trace
+      loop _ _ acc [] = acc
+      loop ht past acc (In t : c) =
+          loop (ht + 1) (In t : past) acc c
+      loop ht past acc (Out t : c) =
+          loop (ht + 1) (Out t : past) acc' c
+          where
+            substs = carriedBindings targets t subst
+            substs' = cowt ct escape past substs
+            acc' = maybeAug ct escape role ht substs' acc t
+
+-- Terms considered for binding with the carried terms in an outbound
+-- term.
+targetTerms :: CMT -> Set CMT -> Set CMT
+targetTerms ct escape =
+    if useEscapeSetInTargetTerms then
+       targetTermsWithEscapeSet
+    else
+       S.difference targetTermsWithEscapeSet escape
+    where
+      targetTermsWithEscapeSet = S.fold f (S.singleton ct) escape
+      f (CM t) ts =
+          foldl (flip S.insert) ts
+                (concatMap (cmtAncestors t) (cmtCarriedPlaces ct t))
+      f (TM t) ts =
+        case ct of
+          CM _ -> ts
+          TM ct ->
+            foldl (flip S.insert) ts
+                  (map TM $ concatMap (ancestors t) (carriedPlaces ct t))
+
+-- Find bindings for terms in the test.
+carriedBindings :: [CMT] -> ChMsg -> (Gen, Subst) -> [(Gen, Subst)]
+carriedBindings targets outbound subst =
+    [ s |
+      subterm <- S.toList (cmFoldCarriedTerms (flip S.insert) S.empty outbound),
+      target <- targets,
+      s <- cmtUnify subterm target subst ]
+
+-- Ensure the critical term is carried only within the escape set of
+-- every term in the past using fold from cows.
+cowt :: CMT -> Set CMT -> Trace -> [(Gen, Subst)] -> [(Gen, Subst)]
+cowt ct escape c substs =
+    nubSnd $ concatMap (cowt0 ct escape c) substs
+
+-- Remove pairs with the same second element.
+nubSnd :: Eq b => [(a, b)] -> [(a, b)]
+nubSnd substs =
+    L.nubBy (\(_, s) (_, s') -> s == s') substs
+
+-- Handle one substitution at a time.
+cowt0 :: CMT -> Set CMT -> Trace -> (Gen, Subst) -> [(Gen, Subst)]
+cowt0 ct escape c subst =
+    if all (f subst) c then     -- Substitution works
+        [subst]
+    else                        -- Substitution needs refinement
+        cowt ct escape c (foldn ct escape c [subst])
+    where
+      f subst evt =
+          carriedOnlyWithinAtSubst ct escape (evtCm evt) subst
+
+-- Apply fold to each message in the trace.
+foldn :: CMT -> Set CMT -> Trace -> [(Gen, Subst)] -> [(Gen, Subst)]
+foldn _ _ [] substs = substs
+foldn ct escape (evt : c) substs =
+    foldn ct escape c (concatMap (fold ct escape (evtCm evt)) substs)
+
+-- If the outbound term is carried only within, no transforming node
+-- was found, otherwise, add a candidate augmentation to the
+-- accumulator.
+maybeAug :: CMT -> Set CMT -> Role -> Int -> [(Gen, Subst)] ->
+            [((Gen, Subst), Instance)] -> ChMsg ->
+            [((Gen, Subst), Instance)]
+maybeAug ct escape role ht substs acc t =
+    foldl f acc $ L.filter testNotSolved substs
+    where
+      testNotSolved (_, subst) =
+          not $ carriedOnlyWithin
+                  (cmtSubstitute subst ct)
+                  (S.map (cmtSubstitute subst) escape)
+                  (cmSubstitute subst t)
+      f acc (gen, subst) =
+          case bldInstance role itrace gen of
+            (gen, inst) : _ -> ((gen, subst), inst) : acc
+            [] -> acc
+          where
+            itrace = map (evtMap $ substitute subst) (take ht (rtrace role))
+
+-- Listener augmentations
+
+addListeners :: Preskel -> CMT -> Place -> [Term] -> Node -> ChMsg ->
+                Set CMT -> Cause -> [(Preskel, [Sid])]
+addListeners k ct pos eks n t escape cause =
+    [ (k', phi) |
+           t' <- filter (f t) (S.toList (escapeKeys eks escape)),
+           (k', n', phi, subst) <- addListener k n cause t',
+           maybeSolved ct pos eks escape k' n' subst (kabsent k) ]
+    where
+      f (ChMsg _ _) _ = True
+      f (Plain t) t' = t /= t'
+
+escapeKeys :: [Term] -> Set CMT -> Set Term
+escapeKeys eks escape =
+    S.fold f es escape
+    where
+      f (TM e) s = maybe s (flip S.insert s) (decryptionKey e)
+      f (CM _) s = s
+      es = S.fromList eks
+
+-- DH Subcohort
+
+theDHSubcohort :: Preskel -> Set Term ->
+                  CMT -> Place -> [Term] -> Node ->
+                  Set CMT -> Cause -> [(Preskel, [Sid])]
+theDHSubcohort k a ct pos eks n escape cause
+  | isBase (cmtTerm ct) = baseDHSubcohort k ct pos eks n escape cause
+  | isExpr (cmtTerm ct) = exprDHSubcohort k a ct pos eks n escape cause
+  | otherwise = []
+
+baseDHSubcohort :: Preskel -> CMT -> Place -> [Term] ->
+                   Node -> Set CMT -> Cause -> [(Preskel, [Sid])]
+baseDHSubcohort k ct pos eks n escape cause
+  | elem n (kprecur k) = []
+  | otherwise =
+    [ (k', phi) |
+      (k', n', phi, subst) <- addBaseListener k n cause (cmtTerm ct),
+      maybeSolved ct pos eks escape k' n' subst (kabsent k)]
+
+exprDHSubcohort :: Preskel -> Set Term ->
+                  CMT -> Place -> [Term] -> Node ->
+                  Set CMT -> Cause -> [(Preskel, [Sid])]
+exprDHSubcohort _ _ ct _ _ _ _ _ | isRndx (cmtTerm ct) = []
+exprDHSubcohort k a ct pos eks n escape cause =
+  do
+    x <- exprVars (cmtTerm ct)
+    case S.member x a of
+      False -> []
+      True ->
+        [ (k', phi) |
+          (k', n', phi, subst) <- addAbsence k n cause x (cmtTerm ct),
+          maybeSolved ct pos eks escape k' n' subst (kabsent k) ] ++
+        [ (k', phi) |
+          (k', n', phi, subst) <- addListener k n cause x,
+          maybeSolved ct pos eks escape k' n' subst (kabsent k) ]
+
+-- Maximize a realized skeleton if possible.  Do not consider
+-- generalizations that fail to satisfy the rules of the skeleton's
+-- protocol.
+
+{--
+
+The previous version:
+
+maximize :: Preskel -> [Preskel]
+maximize k =
+    take 1 (filter f gens)      -- Return at most the first answer
+    where
+      gens = do
+        (k', mapping) <- generalize k -- Generalize generates candidates
+        specialization k k' mapping   -- Test a candidate
+      f k =
+        case rewrite k of
+          Nothing -> True
+          _ -> False
+
+--}
+
+maximize :: Preskel -> [Preskel]
+maximize k =
+    iter $ generalize k
+    where
+      iter [] = []
+      iter ((k',mapping) : rest) =
+          case specialization k k' mapping of
+            [] -> iter rest
+            -- Since specialization now simplifies, the ks are
+            -- automatically closed under the rules.
+            ks -> ks
+
+-- Test to see if realized skeleton k is a specialization of
+-- preskeleton k' using the given strand mapping.  Returns the
+-- skeleton associated with k' if it refines k.
+
+specialization :: Preskel -> Preskel -> [Sid] -> [Preskel]
+specialization k k' mapping
+    | not (preskelWellFormed k') = []     --  (showSome k' [] )
+    | otherwise =
+        do
+          k'' <- toSkeleton useThinningDuringGeneralization k'
+          -- (showSome k'' k'') inside *realized* to debug
+          case (realized k'') &&  (not (isomorphic (gist k) (gist k''))) &&
+               (refines k'' (pov k'') (prob k'')) &&
+               (refines k (Just k'') mapping) of
+            True -> simplify k'' -- maybeOK $
+            False -> []
+        where
+          realized = null . unrealized
+          refines _ Nothing _ =
+              error "Cohort.specialization: cannot find point of view"
+          refines k (Just k') mapping =
+              not $ null $ homomorphism k' k mapping
+
+{--  Debugging apparatus:
+          showSome k'' v =
+              if (5 == L.length (insts k)) && (1+L.length (insts k'') == L.length (insts k))
+              then
+                  (z
+                   ("length: " ++ (show (L.length (insts k''))) ++
+                    ", unrealized: " ++ (show (unrealized k'')) ++
+                    ", prev nodes: " ++ (show (addSendingBefore S.empty (vertex k'' (0,0)))) ++
+--                       ", after: " ++ (show
+--                                       (cmsInNodes
+--                                        (addSendingBefore S.empty (vertex k'' (0,0))))) ++
+                    ", prob: " ++ (show (prob k'')) ++
+                    ", POV OK: " ++ (show (refines k'' (pov k'') (prob k''))) ++
+                    ", refines: " ++ (show (refines k (Just k'') mapping)) ++
+                    ", survives: " ++
+                    (show ((realized k'') &&  (not (isomorphic (gist k) (gist k''))) &&
+                           (refines k'' (pov k'') (prob k'')) &&
+                           (refines k (Just k'') mapping))))
+                   v)
+              else v
+
+--          maybeOK x = if (12 < L.length (insts k)) then z "OK" x else x
+--}
diff --git a/src/CPSA/Coq/Main.hs b/src/CPSA/Coq/Main.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Coq/Main.hs
@@ -0,0 +1,155 @@
+-- Main routine for cpsa4coq
+
+-- Copyright (c) 2020 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module Main (main) where
+
+import System.IO
+import Data.Char (toUpper)
+import Data.List (intersperse)
+import CPSA.Lib.Entry
+import CPSA.Lib.Expand
+import CPSA.Proc.Proc
+
+main :: IO ()
+main =
+    do
+      (p, (output, margin)) <- start filterOptions filterInterp
+      sexprs <- readSExprs p
+      items <- tryRun (parse sexprs)
+      h <- outputHandle output
+      tryRun (emit h margin items)
+      hClose h
+
+tryRun :: IO a -> IO a
+tryRun x =
+  do
+    y <- tryIO x
+    case y of
+      Right z -> return z
+      Left err -> abort err
+
+-- Emitter
+
+emit :: Handle -> Int -> [Item] -> IO ()
+emit _ _ [] = fail "empty input"
+emit h margin (Cmt _ comment : xs) =
+  do
+    hPutStrLn h ("(** " ++  comment ++ " *)")
+    hPutStrLn h ""
+    hPutStrLn h "Require Import Proc."
+    hPutStrLn h "Import List.ListNotations."
+    hPutStrLn h "Open Scope list_scope."
+    hPutStrLn h "Open Scope string."
+    emitProcs h margin xs
+emit _ _ (Defproc pos _ : _) = fail (shows pos "Expecting a comment")
+
+emitProcs :: Handle -> Int -> [Item] -> IO ()
+emitProcs _ _ [] = return ()
+emitProcs h margin (Cmt _ comment : x : xs) =
+  do
+    hPutStrLn h ""
+    hPutStrLn h ("(** " ++  comment ++ " *)")
+    hPutStrLn h ""
+    emitProc h margin x
+    emitProcs h margin xs
+emitProcs _ _ [Cmt pos _] =
+  fail (shows pos "Expecting a comment followed by a defproc")
+emitProcs _ _ (Defproc pos _ : _) = fail (shows pos "Expecting a comment")
+
+emitProc :: Handle -> Int -> Item -> IO ()
+emitProc h margin (Defproc _ proc) =
+  do
+    emitHeader h margin (name proc) (inputs proc)
+    mapM_ (emitStmt h margin) (stmts proc)
+    hPutStrLn h "  ]."
+emitProc _ _ (Cmt pos _) =
+  fail (shows pos "Expecting a defproc")
+
+emitHeader :: Handle -> Int -> String -> [Decl] -> IO ()
+emitHeader h margin name inputs =
+  do
+    hPutStrLn h ("Definition " ++ name ++ ": proc :=")
+    hPutStrLn h "  mkProc"
+    emitInputs h margin (map emitInput inputs)
+    hPutStrLn h "  ["
+
+emitInput :: Decl -> String
+emitInput (var, kind) =
+  "(" ++ ref var ++ ", " ++ toKind kind ++ ")"
+
+ref :: String -> String
+ref [] = []
+ref (_ : xs) = xs
+
+toKind :: String -> String
+toKind [] = []
+toKind (h : t) = toUpper h : t
+
+emitInputs :: Handle -> Int -> [String] -> IO ()
+emitInputs h _ [] =
+  hPutStrLn h "  []"
+emitInputs h _ xs =
+  do
+    hPutStr h "  ["
+    mapM_ (hPutStr h) (intersperse "; " xs)
+    hPutStrLn h "]"
+
+emitStmt :: Handle -> Int -> Stmt -> IO ()
+emitStmt h _ (Bind (var, kind) expr) =
+  do
+    hPutStr h ("   Bind (" ++ ref var ++ ", " ++ toKind kind ++ ") ")
+    emitExpr h expr
+    hPutStrLn h  ";"
+emitStmt h _ (Send _ chan msg) =
+  hPutStrLn h ("   Send " ++ ref chan ++ " " ++ ref msg ++ ";")
+emitStmt h _ (Same _ x y) =
+  hPutStrLn h ("   Same " ++ ref x ++ " " ++ ref y ++ ";")
+emitStmt h _ (Ltkp _ x y z) =
+  hPutStrLn h ("   Ltkp " ++ ref x ++ " " ++ ref y ++
+               " " ++ ref z ++ ";")
+emitStmt h _ (Invp _ x y) =
+  hPutStrLn h ("   Invp " ++ ref x ++ " " ++ ref y ++ ";")
+emitStmt h _ (Namp _ x y) =
+  hPutStrLn h ("   Namp " ++ ref x ++ " " ++ ref y ++ ";")
+emitStmt h _ (Nm2p _ x y z) =
+  hPutStrLn h ("   Nm2p " ++ ref x ++ " " ++
+                          ref y ++ " " ++ ref z ++ ";")
+emitStmt h margin (Return returns) =
+  do
+    hPutStr h "   Return "
+    emitReturns h margin (map ref returns)
+emitStmt h _ (Comment comment) =
+  hPutStrLn h ("   (* " ++  comment ++ " *)")
+
+emitExpr :: Handle -> Expr -> IO ()
+emitExpr h (Call op args) =
+  do
+    hPutStr h "("
+    hPutStr h $ trim $ toKind op
+    mapM_ (emitArg h) args
+    hPutStr h ")"
+emitExpr h (Tag x) =
+  hPutStr h ("(Quot_ \"" ++ x ++ "\")")
+
+trim :: String -> String
+trim [] = []
+trim ('_' : _) = "_"
+trim (x : xs) = x : trim xs
+
+emitArg :: Handle -> String -> IO ()
+emitArg h x =
+  hPutStr h (" " ++ ref x)
+
+emitReturns :: Handle -> Int -> [String] -> IO ()
+emitReturns h _ [] =
+  hPutStrLn h "[]"
+emitReturns h _ xs =
+  do
+    hPutStr h "["
+    mapM_ (hPutStr h) (intersperse "; " xs)
+    hPutStrLn h "]"
diff --git a/src/CPSA/Debase/Main.hs b/src/CPSA/Debase/Main.hs
deleted file mode 100644
--- a/src/CPSA/Debase/Main.hs
+++ /dev/null
@@ -1,120 +0,0 @@
--- Pretty print the input
-
--- Copyright (c) 2009 The MITRE Corporation
---
--- This program is free software: you can redistribute it and/or
--- modify it under the terms of the BSD License as published by the
--- University of California.
-
-module Main (main) where
-
-import System.IO
-import CPSA.Lib.SExpr
-import CPSA.Lib.Printer (pp)
-import CPSA.Lib.Entry
-
--- Runtime parameters
-
-defaultIndent :: Int
-defaultIndent = optIndent defaultOptions
-
-main :: IO ()
-main =
-    do
-      (p, (output, margin)) <- start filterOptions filterInterp
-      h <- outputHandle output
-      go (writeCpsaLn (pp margin defaultIndent) h) p
-      hClose h
-
-writeCpsaLn :: (SExpr () -> String) -> Handle -> SExpr a -> IO ()
-writeCpsaLn printer h sexpr =
-    do
-      hPutStrLn h $ printer $ transform $ strip sexpr
-      hPutStrLn h ""
-
-go :: (SExpr Pos -> IO ()) -> PosHandle -> IO ()
-go f p =
-    loop
-    where
-      loop =
-          do
-            x <- gentlyReadSExpr p
-            case x of
-              Nothing ->
-                  return ()
-              Just sexpr ->
-                  do
-                    f sexpr
-                    loop
-
-strip :: SExpr a -> SExpr ()
-strip (S _ s) = S () s
-strip (Q _ s) = Q () s
-strip (N _ n) = N () n
-strip (L _ l) = L () (map strip l)
-
--- | Make a symbol.
-sym :: String -> SExpr ()
-sym s = S () s
-
-{-
-
--- | Make a quoted string.
-str :: String -> SExpr ()
-str s = Q () s
-
--- | Make a number.
-num :: Int -> SExpr ()
-num n = N () n
--}
-
--- | Make a list of S-expressions.
-lst :: [SExpr ()] -> SExpr ()
-lst xs = L () xs
-
-transform :: SExpr () -> SExpr ()
-transform (L () (S () "defprotocol" : name : alg : rest)) =
-  lst (sym "defprotocol" : name : alg : map role rest)
-transform (L () (S () "defskeleton" : xs)) =
-  skel xs
-transform x = x
-
-role :: SExpr () -> SExpr ()
-role (L () (S () "defrole" : name : L () (S () "vars" : v) : rest)) =
-  let (decl, bases) = vars v in
-    lst (sym "defrole" : name : lst (sym "vars" : decl) :
-         map (subst bases) rest)
-role x = x
-
-skel :: [SExpr ()] -> SExpr ()
-skel (p@(S _ _) : L () (S () "vars" : v) : rest) =
-  let (decl, _) = vars v in
-    lst (sym "defskeleton" : p : lst (sym "vars" : decl) : rest)
-skel xs = lst (sym "defskeleton" : xs)
-
-vars :: [SExpr ()] -> ([SExpr ()], [String])
-vars [] = ([], [])
-vars (L () x : xs)
-  | symStr (last x) == "base" =
-      let (xs', ss) = vars xs in
-        (lst (butLast x ++ [sym "expt"]) : xs',
-         map symStr (butLast x) ++ ss)
-  | otherwise =
-      let (xs', ss) = vars xs in
-        (lst x : xs', ss)
-vars _ = error "vars: bad input"
-
-symStr :: SExpr a -> String
-symStr (S _ s) = s
-symStr _ = error "symStr: not a symbol"
-
-butLast :: [a] -> [a]
-butLast [] = []
-butLast [_] = []
-butLast (x : xs) = x : butLast xs
-
-subst :: [String] -> SExpr () -> SExpr ()
-subst bases (S () s)
-  | elem s bases = lst [sym "exp", lst [sym "gen"], sym s]
-subst bases (L () (x : xs)) = L () (x : map (subst bases) xs)
-subst _ x = x
diff --git a/src/CPSA/Diff/Main.hs b/src/CPSA/Diff/Main.hs
--- a/src/CPSA/Diff/Main.hs
+++ b/src/CPSA/Diff/Main.hs
@@ -16,7 +16,7 @@
 import System.Exit
 import Paths_cpsa
 import CPSA.Lib.SExpr
-import CPSA.Lib.Printer
+import CPSA.Lib.Printer (pp)
 import CPSA.Lib.Entry
 
 main :: IO ()
@@ -98,7 +98,7 @@
     deriving Show
 
 indent :: Int
-indent = optIndent defaultOptions
+indent = defaultIndent
 
 -- Command line option flags
 data Flag
@@ -107,9 +107,6 @@
     | Margin String             -- Output line length
     | Output String             -- Output file name
       deriving Show
-
-defaultMargin :: Int
-defaultMargin = optMargin defaultOptions
 
 options :: [OptDescr Flag]
 options =
diff --git a/src/CPSA/DiffieHellman/Algebra.hs b/src/CPSA/DiffieHellman/Algebra.hs
deleted file mode 100644
--- a/src/CPSA/DiffieHellman/Algebra.hs
+++ /dev/null
@@ -1,2902 +0,0 @@
--- Diffie-Hellman Algebra implementation
-
--- This module implements a version of Diffie-Hellman in which
--- exponents form a free Abelian group.  It uses the basis elements as
--- atoms principle.
-
--- To support security goals, the message algebra has been augmented
--- with support for variables of sort node and pairs of integers.  The
--- constructor D is used as N is taken for numbers in S-Expressions.
-
--- Copyright (c) 2009, 2014 The MITRE Corporation
---
--- This program is free software: you can redistribute it and/or
--- modify it under the terms of the BSD License as published by the
--- University of California.
-
---------------------------------------------------------------------
-
--- The module implements a many-sorted algebra, but is used as an
--- order-sorted algebra.  It exports a name, and the origin used to
--- generate variables.
-
--- The Diffie-Hellman Order-Sorted Signature is
-
--- Sorts: mesg, text, data, name, skey, akey, tag,
---        string, base, expr, and expn
---
--- Subsorts: text, data, name, skey, akey,
---           base, expr < mesg and expn < expr
---
--- Operations:
---   cat : mesg X mesg -> mesg               Pairing
---   enc : mesg X mesg -> mesg               Encryption
---   hash : mesg -> mesg                     Hashing
---   string : mesg                           Tag constants
---   ltk : name X name -> skey               Long term shared key
---   bltk : name X name -> skey              Bidirectional long-term key
---   pubk : name -> akey                     Public key of principal
---   pubk : string X name -> akey            Tagged public key of principal
---   invk : akey -> akey                     Inverse of asymmetric key
---   gen : base                              DH generator
---   exp : base X expr -> base               Exponentiation
---   mul : expr X expr -> expr               Group operation
---   rec : expr -> expr                      Group inverse
---   one : expr                              Group identity
---
--- Atoms: messages of sort text, data, name, skey, akey, and expn, and
---        messages of the form (exp (gen) x) where x is of sort expn.
-
--- A free Abelian group has a set of basis elements, and the sort expn
--- is the sort for basis elements.  Limiting the atoms associated with
--- an exponent to basis elements is the basis elements as atoms
--- principle.  This principle enables CPSA to correctly handle
--- origination assumptions.
-
--- Variables of sort string are forbidden.
-
--- The implementation exploits the isomorphism between order-sorted
--- algebras and many-sorted algebras by adding inclusion operations to
--- produce an equivalent Diffie-Hellman Many-Sorted Signature.  There
--- is an inclusion operation for each subsort of mesg.  Diffie-Hellman
--- exponents are handled specially using a canonical representation as
--- monomials.
-
--- Sorts: mesg, text, data, name, skey, akey,
---        string, base, expr, and expn
---
--- Operations:
---   cat : mesg X mesg -> mesg               Pairing
---   enc : mesg X mesg -> mesg               Encryption
---   hash : mesg -> mesg                     Hashing
---   string : mesg                           Tag constants
---   ltk : name X name -> skey               Long term shared key
---   bltk : name X name -> skey              Bidirectional long-term key
---   pubk : name -> akey                     Public key of principal
---   pubk : string X name -> akey            Tagged public key of principal
---   invk : akey -> akey                     Inverse of asymmetric key
---   text : text -> mesg                     Sort text inclusion
---   data : data -> mesg                     Sort date inclusion
---   name : name -> mesg                     Sort name inclusion
---   skey : skey -> mesg                     Sort skey inclusion
---   akey : akey -> mesg                     Sort akey inclusion
---   base : base -> mesg                     Sort base inclusion
---
---  A message of sort expr, a monomial, is represented by a map from
---  identifiers to descriptions.  A description is a pair consisting
---  of a flag saying if the variable is of sort expn or expr, and a
---  non-zero integer.  For t of sort expr, the monomial associated
---  with t is
---
---      x1 ^ c1 * x2 ^ c2 * ... * xn ^ cn
---
--- for all xi in the domain of t and t(xi) = (_, ci).
-
--- In both algebras, invk(invk(t)) = t for all t of sort akey,
--- (exp h (one)) = h, (exp (exp h x) y) = (exp h (mul x y)), and
--- the Abelian group axioms hold.
-
-{-# LANGUAGE MultiParamTypeClasses, CPP #-}
-
--- Fail on non-canonical terms with this is defined
--- #define CANONICAL
-
-module CPSA.DiffieHellman.Algebra (name,
---                                   iUnify, iMatch,
-                                  origin)
-where
-
-import Control.Monad (foldM)
-import qualified Data.List as L
-import qualified Data.Set as S
-import Data.Set (Set)
-import qualified Data.Map as M
-import Data.Map (Map)
-import Data.Char (isDigit)
-import qualified CPSA.Lib.Algebra as C
-import qualified CPSA.Lib.Utilities as C
-import CPSA.Lib.SExpr (SExpr(..), Pos, annotation)
-
-{--
--- Debugging support (Comment line above)
-import System.IO.Unsafe
-
-z :: Show a => a -> b -> b
-z x y = unsafePerformIO (print x >> return y)
-
-zz :: Show a => a -> a
-zz x = z x x
-
-zzz :: (Show a, Show b) => a -> b -> b
-zzz x y = z (x,y) y
-
-zcond :: (Show a, Show b) => Bool -> a -> b -> b
-zcond True x y = zzz x y
-zcond False _ y = y
-
-zn :: Show a => a -> Maybe b -> Maybe b
-zn x Nothing = z x Nothing
-zn _ y = y
-
-zf :: Show a => a -> Bool -> Bool
-zf x False = z x False
-zf _ y = y
-
-zt :: Show a => a -> Bool -> Bool
-zt x True = z x True
-zt _ y = y
---}
-
-{-
-
-Export iUnify and iMatch for GHCi for debugging (Comment marked line below)
-
-For this to work, you must install the package bytestring-handle from
-Hackage and tell GHCi that it is not hidden on the command line or
-within GHCi with:
-
-:set -package bytestring-handle
-
-The best way is in add this line to the beginning of your .ghci, and
-start ghci with:
-
-$ ghci src/CPSA/DiffieHellman/Algebra.hs
-
-Example
-
-*CPSA.DiffieHellman.Algebra> iMatch "(a b text)" "a" "b"
-[Env (
- fromList [],
- Id (0,"a") -> I (Id (1,"b")))]
-
--}
-
-{- Comment this line to enable advanced debugging
-import System.IO (Handle)
-import System.IO.Unsafe
-import Data.ByteString.Lazy.Char8 (pack)
-import Data.ByteString.Handle
-import Control.Exception (try)
-
-stringHandle :: String -> IO Handle
-stringHandle s = readHandle False (pack s)
-
-stringPosHandle :: String -> IO C.PosHandle
-stringPosHandle s =
-    do
-      h <- stringHandle s
-      C.posHandle "" h
-
-stringLoad :: String -> IO [SExpr Pos]
-stringLoad s =
-    do
-      h <- stringPosHandle s
-      loop h []
-    where
-      loop h xs =
-          do
-            x <- C.load h
-            case x of
-              Nothing ->
-                return $ reverse xs
-              Just x ->
-                loop h (x : xs)
-
-sLoad :: String -> [[SExpr Pos]]
-sLoad s =
-    [unsafePerformIO $ stringLoad s]
-
--- Test unification
-
-iUnify :: String -> String -> String -> [Subst]
-iUnify vars t t' =
-    iRun unify emptySubst vars t t'
-
--- Test matching
-
-iMatch :: String -> String -> String -> [Env]
-iMatch vars t t' =
-    iRun match emptyEnv vars t t'
-
-iRun :: (Term -> Term -> (Gen, a) -> [(Gen, a)]) -> a ->
-        String -> String -> String -> [a]
-iRun f mt vars t t' =
-    do
-      vars <- sLoad vars
-      [t] <- sLoad t
-      [t'] <- sLoad t'
-      (gen, vars) <- loadVars origin vars
-      t <- loadTerm vars False t
-      t' <- loadTerm vars False t'
-      (_, a) <- f t t' (gen, mt)
-      return a
-
-gRun :: Gen -> Term -> a -> a
-gRun (Gen n) t a =
-    foldVars f a t
-    where
-      f a t =
-          case varId t of
-            Id (m, _) | m >= n -> error ("Bad gen " ++ show n)
-            _ -> a
-
-gMatch :: Term -> Term -> GenEnv -> [GenEnv]
-gMatch t t' r@(g, _) = gRun g t' (match t t' r)
-
-gUnify :: Term -> Term -> GenSubst -> [GenSubst]
-gUnify t t' r@(g, _) = gRun g (F Cat [t, t']) (unify t t' r)
---}
-
-name :: String
-name = "diffie-hellman"
-
--- An identifier
-
-newtype Id = Id (Integer, String) deriving Show
-
--- The integer distinguishes an identifier, the string is for printing.
-
-instance Eq Id where
-    (Id (x, _)) == (Id (x', _)) = x == x'
-
-instance Ord Id where
-    compare (Id (x, _)) (Id (x', _)) = compare x x'
-
-idName :: Id -> String
-idName (Id (_, name)) = name
-
--- Counter used for generating fresh identifiers.
-
-newtype Gen = Gen (Integer) deriving (Show, Eq)
-
-origin :: Gen
-origin = Gen (0)
-
-gmerge :: Gen -> Gen -> Gen
-gmerge (Gen i) (Gen j) = Gen $ max i j
-
-freshId :: Gen -> String -> (Gen, Id)
-freshId (Gen i) name = (Gen (i + 1), Id (i, name))
-
-cloneId :: Gen -> Id -> (Gen, Id)
-cloneId gen x = freshId gen (idName x)
-
--- A term in an Abelian group is a map from identifiers to pairs of
--- sorts and non-zero integers.
-
-data Sort
-  = Rndx                        -- Sort of a basis element
-  | Expt
-  deriving (Show, Eq, Ord)
-
-type Coef = Int
-
-type Desc = (Sort, Coef)
-
-type Group = Map Id Desc
-
-isGroupVar :: Group -> Bool
-isGroupVar t =
-  M.size t == 1 && snd (head (M.elems t)) == 1
-
-isBasisVar :: Group -> Bool
-isBasisVar t =
-  M.size t == 1 && head (M.elems t) == (Rndx, 1)
-
-isExprVar :: Group -> Bool
-isExprVar t =
-  M.size t == 1 && head (M.elems t) == (Expt, 1)
-
--- Assumes isGroupVar t, isBasisVar t, or isExprVar is true
-getGroupVar :: Group -> Id
-getGroupVar x = head $ M.keys x
-
--- Create group var as a basis element if be is true
-groupVarG :: Sort -> Id -> Group
-groupVarG be x = M.singleton x (be, 1)
-
-groupVar :: Sort -> Id -> Term
-groupVar be x = G $ groupVarG be x
-
-groupVarGroup :: Id -> Group
-groupVarGroup x = groupVarG Expt x
-
-dMapCoef :: (Coef -> Coef) -> Desc -> Desc
-dMapCoef f (be, c) = (be, f c)
-
-invert :: Group -> Group
-invert t = M.map (dMapCoef negate) t
-
-expg :: Group -> Int -> Group
-expg _ 0 = M.empty
-expg t 1 = t
-expg t n = M.map (dMapCoef (n *)) t
-
-mul :: Group -> Group -> Group
-mul t t' =
-  M.foldrWithKey f t' t         -- Fold over the mappings in t
-  where
-    f x c t =                   -- Alter the mapping of
-      M.alter (g c) x t         -- variable x in t
-    g c Nothing =               -- Variable x not currently mapped
-      Just c                    -- so add a mapping
-    g (b, c) (Just (b', c'))    -- Variable x maps to c'
-      | b /= b' = C.assertError
-        ("Algebra.mul: sort mismatch " ++ show t ++ " - " ++ show t')
-      | c + c' == 0 = Nothing          -- Delete the mapping
-      | otherwise = Just $ (b, c + c') -- Adjust the mapping
-
--- Why not replace M.assocs with M.toList elsewhere?
-
-type Maplet = (Id, Desc)
-
-mMapCoef :: (Coef -> Coef) -> Maplet -> Maplet
-mMapCoef f (x, (be, c)) = (x, (be, f c))
-
-mInverse :: [Maplet] -> [Maplet]
-mInverse maplets = map (mMapCoef negate) maplets
-
-isMapletNonzero :: Maplet -> Bool
-isMapletNonzero (_, (_, c)) = c /= 0
-
-group :: [Maplet] -> Group
-group maplets =
-  M.fromList $ filter isMapletNonzero maplets
-
--- Function symbols--see foldVar to see the arity of each symbol.
-data Symbol
-    = Text                      -- Text atom
-    | Data                      -- Another text-like atom
-    | Name                      -- Principal atom
-    | Skey                      -- Symmetric key atom
-    | Base                      -- Base of an exponentiated atom
-    | Tag                       -- Tag atom
-    | Ltk                       -- Long term shared symmetric key
-    | Bltk                      -- Bidirectional ltk
-    | Akey                      -- Asymmetric key atom
-    | Invk                      -- Inverse of asymmetric key
-    | Pubk                      -- Public asymmetric key of a principal
-    | Genr                      -- The generator constant for the group
-    | Exp                       -- Exponentiation function symbol
-    | Cat                       -- Term concatenation
-    | Enc                       -- Encryption
-    | Hash                      -- Hashing
-      deriving (Show, Eq, Ord)
-
--- A Diffie-Hellman Algebra Term
-
-data Term
-    = I !Id
-    | C !String
-    | F !Symbol ![Term]
-    | G !Group                  -- An exponent, an Abelian group
-    | D !Id                     -- Strand variable
-    | Z Int                     -- Strand constant
-      deriving Show
-
-subNums :: Term -> Set Term
-subNums t | isNum t = S.singleton t
-subNums t@(F Exp _) = S.singleton (F Base [t])
-subNums (F _ ts) = (S.unions (map subNums ts))
-subNums _ = S.empty
-
-calcIndicator :: Term -> Term -> Maybe Int
-calcIndicator t v
-  | (not (isNum t) || not (isExpn v)) = Nothing
-  | (not (isVar v)) = Nothing
-  | otherwise = Just (ind t v)
-  where
-    ind t@(F Base _) v = case expCollapse t of
-      F Base [F Genr _] -> 0
-      F Base [I _] -> 0
-      F Base [F Exp [_, G m]] -> ind (G m) v
-      _ -> error ("Algebra.hs: expCollapse returned non-base element")
-    ind (G m) v = case M.lookup (extrVar v) m of
-        Nothing -> 0
-        Just (_, i) -> i
-    ind _ _ = 0
-    isExpn (G _) = True
-    isExpn _ = False
-    extrVar (G t) = head $ M.keys t
-    extrVar _ = error ("Algebra.hs: extrExpn called on a non-exponent")
-
-equalTerm :: Term -> Term -> Bool
-equalTerm (I x) (I y) = x == y
-equalTerm (C c) (C c') = c == c'
-equalTerm (G t) (G t') = t == t'
-#if defined CANONICAL
-equalTerm l@(F Invk [F Invk [t]]) t' = error ("EQ: " ++ show l)
-equalTerm t l@(F Invk [F Invk [t']]) = error ("EQ: " ++ show l)
-equalTerm l@(F Exp [t0, G t1]) t' | M.null t1 = error ("EQ: " ++ show l)
-equalTerm t l@(F Exp [t0, G t1]) | M.null t1 = error ("EQ: " ++ show l)
-equalTerm l@(F Exp [F Exp [t, G t0], G t1]) t' = error ("EQ: " ++ show l)
-equalTerm t l@(F Exp [F Exp [t', G t0], G t1])  = error ("EQ: " ++ show l)
-#else
-equalTerm (F Invk [F Invk [t]]) t' = equalTerm t t'
-equalTerm t (F Invk [F Invk [t']]) = equalTerm t t'
-equalTerm (F Exp [t0, G t1]) t' | M.null t1 = equalTerm t0 t'
-equalTerm t (F Exp [t0, G t1]) | M.null t1 = equalTerm t t0
-equalTerm (F Exp [F Exp [t, G t0], G t1]) t' =
-    equalTerm (F Exp [t, G (mul t0 t1)]) t'
-equalTerm t (F Exp [F Exp [t', G t0], G t1])  =
-    equalTerm t (F Exp [t', G (mul t0 t1)])
-#endif
-equalTerm (F Bltk [t0, t1]) (F Bltk [t0', t1']) =
-    (equalTerm t0 t0' && equalTerm t1 t1') ||
-    (equalTerm t0 t1' && equalTerm t1 t0')
-equalTerm (F s u) (F s' u') =
-    s == s' && equalTermLists u u'
-equalTerm (D x) (D y) = x == y
-equalTerm (Z p) (Z p') = p == p'
-equalTerm _ _ = False
-
-{-
-forceVar :: Term -> Term
-forceVar x | not $ termsWellFormed [x] =
-  error ("Algebra.hs:forceVar: terms not well formed" ++ show x)
-forceVar (I x) = (I x)
-forceVar (C x) = (C x) -- no variable!
-forceVar (F Text y) = (F Text y)
-forceVar (F Data y) = (F Data y)
-forceVar (F Name y) = (F Name y)
-forceVar (F Tag [(I x)]) = (F Tag [(I x)])
-forceVar (F Skey [(I x)]) = (F Skey [(I x)])
-forceVar (F Skey [(F Ltk ns@(_:_))]) = forceVar (head ns)
-forceVar (F Skey [(F Bltk ns@(_:_))]) = forceVar (head ns)
-forceVar (F Base [(I x)]) = (F Base [(I x)])
-forceVar (F Base [(F Exp ns@(_:(_:_)))]) = forceVar (ns !! 1) -- go to the exponent part
-forceVar (F Base [F Genr []]) = (F Base [F Genr []]) -- no variable
-forceVar (F Akey [(I x)]) = (F Akey [(I x)])
-forceVar (F Akey [F Invk ns@(_:_)]) = forceVar (head ns)
-forceVar (F Akey [F Pubk ns@(_:_)]) = forceVar (head ns)
-forceVar (F _ ns@(_:_)) = forceVar (head ns) -- for Cat, Enc.
-forceVar (G m) | not $ null (M.keys m) =
-  let (x, (be, _)) = head $ M.assocs m in
-  G $ M.fromList [(x, (be, 1))]
-forceVar (D x) = (D x)
-forceVar (P x) = (P x) -- no variable!
-forceVar _ = error ("Algebra.hs:forceVar: something unexpected happened.")
--}
-
-equalTermLists :: [Term] -> [Term] -> Bool
-equalTermLists [] [] = True
-equalTermLists (t : u) (t' : u') =
-    equalTerm t t' && equalTermLists u u'
-equalTermLists _ _ = False
-
-instance Eq Term where
-    (==) = equalTerm
-
--- Term comparison respecting the axiom
-
-compareTerm :: Term -> Term -> Ordering
-compareTerm (I x) (I y) = compare x y
-compareTerm (C c) (C c') = compare c c'
-compareTerm (G t) (G t') = compare t t'
-#if defined CANONICAL
-compareTerm l@(F Invk [F Invk [t]]) t' = error ("COM: " ++ show l)
-compareTerm t l@(F Invk [F Invk [t']]) = error ("COM: " ++ show l)
-compareTerm l@(F Exp [t0, G t1]) t' | M.null t1 = error ("COM: " ++ show l)
-compareTerm t l@(F Exp [t0, G t1]) | M.null t1 = error ("COM: " ++ show l)
-compareTerm l@(F Exp [F Exp [t, G t0], G t1]) t' = error ("COM: " ++ show l)
-compareTerm t l@(F Exp [F Exp [t', G t0], G t1]) = error ("COM: " ++ show l)
-#else
-compareTerm (F Invk [F Invk [t]]) t' = compareTerm t t'
-compareTerm t (F Invk [F Invk [t']]) = compareTerm t t'
-compareTerm (F Exp [t0, G t1]) t' | M.null t1 = compareTerm t0 t'
-compareTerm t (F Exp [t0, G t1]) | M.null t1 = compareTerm t t0
-compareTerm (F Exp [F Exp [t, G t0], G t1]) t' =
-    compareTerm (F Exp [t, G (mul t0 t1)]) t'
-compareTerm t (F Exp [F Exp [t', G t0], G t1])  =
-    compareTerm t (F Exp [t', G (mul t0 t1)])
-#endif
-compareTerm (F Bltk [t0, t1]) (F Bltk [t0', t1']) =
-    if (compareTerm t0 t1 == GT) then (compareTerm (F Bltk [t1, t0]) (F Bltk [t0', t1']))
-    else (if (compareTerm t0' t1' == GT) then (compareTerm (F Bltk [t0,t1]) (F Bltk [t1', t0']))
-                                              else compareTermLists [t0, t1] [t0', t1'])
-compareTerm (F s u) (F s' u') =
-    case compare s s' of
-      EQ -> compareTermLists u u'
-      o -> o
-compareTerm (D x) (D y) = compare x y
-compareTerm (Z p) (Z p') = compare p p'
-compareTerm (I _) (C _) = LT
-compareTerm (C _) (I _) = GT
-compareTerm (I _) (F _ _) = LT
-compareTerm (F _ _) (I _) = GT
-compareTerm (I _) (G _) = LT
-compareTerm (G _) (I _) = GT
-compareTerm (I _) (D _) = LT
-compareTerm (D _) (I _) = GT
-compareTerm (I _) (Z _) = LT
-compareTerm (Z _) (I _) = GT
-compareTerm (C _) (F _ _) = LT
-compareTerm (F _ _) (C _) = GT
-compareTerm (C _) (G _) = LT
-compareTerm (G _) (C _) = GT
-compareTerm (C _) (D _) = LT
-compareTerm (D _) (C _) = GT
-compareTerm (C _) (Z _) = LT
-compareTerm (Z _) (C _) = GT
-compareTerm (F _ _) (G _) = LT
-compareTerm (G _) (F _ _) = GT
-compareTerm (F _ _) (D _) = LT
-compareTerm (D _) (F _ _) = GT
-compareTerm (F _ _) (Z _) = LT
-compareTerm (Z _) (F _ _) = GT
-compareTerm (G _) (D _) = LT
-compareTerm (D _) (G _) = GT
-compareTerm (G _) (Z _) = LT
-compareTerm (Z _) (G _) = GT
-compareTerm (D _) (Z _) = LT
-compareTerm (Z _) (D _) = GT
-
-compareTermLists :: [Term] -> [Term] -> Ordering
-compareTermLists [] [] = EQ
-compareTermLists (t : u) (t' : u') =
-    case compareTerm t t' of
-      EQ -> compareTermLists u u'
-      o -> o
-compareTermLists [] _ = LT
-compareTermLists _ [] = GT
-
-instance Ord Term where
-    compare = compareTerm
-
--- Basic terms are introduced by defining a function used to decide if
--- a term is well-formed.  The context of an occurrence of an identifier
--- determines its sort.  A term that contains just an identifier and its
--- sort information is called a variable.  The sort of a variable is
--- one of mesg, text, data, name, skey, and akey.
-
--- Terms that represent algebra variables.
-isVar :: Term -> Bool
-isVar (I _) = True           -- Sort: mesg
-isVar (F s [I _]) =
-    -- Sorts: text, data, name, skey, and akey
-    s == Text || s == Data || s == Name || s == Skey ||
-      s == Akey || s == Base || s == Tag
-isVar (G t) = isGroupVar t
-isVar _ = False
-
--- Note that isVar of (D _) is false.
-isStrdVar :: Term -> Bool
-isStrdVar (D _) = True
-isStrdVar _ = False
-
--- Extract the identifier from a variable
-varId :: Term -> Id
-varId (I x) = x
-varId (F Text [I x]) = x
-varId (F Data [I x]) = x
-varId (F Name [I x]) = x
-varId (F Skey [I x]) = x
-varId (F Akey [I x]) = x
-varId (F Base [I x]) = x
-varId (F Tag [I x]) = x
-varId (G t) | isGroupVar t = getGroupVar t
-varId (D x) = x
-varId _ = C.assertError "Algebra.varId: term not a variable with its sort"
-
-isAcquiredVar :: Term -> Bool
-isAcquiredVar (I _) = True
-isAcquiredVar _ = False
-
-isObtainedVar :: Term -> Bool
-isObtainedVar (G x) = isExprVar x
-isObtainedVar (F Base [I _]) = True
-isObtainedVar _ = False
-
--- A list of terms are well-formed if each one has the correct
--- structure and every occurrence of an identifier in a term has the
--- same sort.  Variable environments are used to check the sort
--- condition.  It maps an identifier to a variable that contains the
--- identifier.
-
--- termsWellFormed u ensures all terms in u use each identifier at the
--- same sort, and makes sure every term has the correct structure.
-termsWellFormed :: [Term] -> Bool
-termsWellFormed u =
-    loop emptyVarEnv u
-    where
-      loop _ [] = True
-      loop env (t : u) =
-          case termWellFormed env t of
-            Nothing -> False
-            Just env' -> loop env' u
-
-newtype VarEnv = VarEnv (Map Id Term) deriving Show
-
-emptyVarEnv :: VarEnv
-emptyVarEnv = VarEnv M.empty
-
--- Check the structure and sort condition.
-
-termWellFormed :: VarEnv -> Term -> Maybe VarEnv
-termWellFormed xts t@(I x) =
-    extendVarEnv xts x t        -- Mesg variable
-termWellFormed xts t@(F Text [I x]) =
-    extendVarEnv xts x t        -- Text variable
-termWellFormed xts t@(F Data [I x]) =
-    extendVarEnv xts x t        -- Data variable
-termWellFormed xts t@(F Name [I x]) =
-    extendVarEnv xts x t        -- Name variable
-termWellFormed xts t@(F Skey [I x]) =
-    extendVarEnv xts x t        -- Symmetric key variable
-termWellFormed xts t@(F Tag [I x]) =
-    extendVarEnv xts x t        -- Tag variable
-termWellFormed xts (F Skey [F Ltk [I x, I y]]) =
-    -- Long term shared symmetric key
-    doubleTermWellFormed xts (F Name [I x]) (F Name [I y])
-termWellFormed xts (F Skey [F Bltk [I x, I y]]) =
-    -- Bidirectional Long term key
-    doubleTermWellFormed xts (F Name [I x]) (F Name [I y])
-termWellFormed xts (F Akey [t]) = -- Asymmetric key terms
-    case t of
-      I x -> extendVarEnv xts x (F Akey [I x])
-      F Invk [I x] -> extendVarEnv xts x (F Akey [I x])
-      F Pubk [I x] -> extendVarEnv xts x (F Name [I x])
-      F Pubk [C _, I x] -> extendVarEnv xts x (F Name [I x])
-      F Invk [F Pubk [I x]] -> extendVarEnv xts x (F Name [I x])
-      F Invk [F Pubk [C _, I x]] -> extendVarEnv xts x (F Name [I x])
-      _ -> Nothing
-termWellFormed xts (F Base [t]) =
-    baseVarEnv xts t
-    where
-      baseVarEnv xts t@(I x) =
-          extendVarEnv xts x (F Base [t])
-      baseVarEnv xts (F Genr []) =
-          Just xts
-      baseVarEnv xts (F Exp [t0, G t1]) =
-          do
-            xts <- baseVarEnv xts t0
-            termWellFormed xts (G t1)
-      baseVarEnv _ _ = Nothing
-termWellFormed xts (G t) =
-    foldM expnVarEnv xts (M.assocs t)
-    where
-      expnVarEnv xts (x, (be, _)) =
-          extendVarEnv xts x (groupVar be x)
-termWellFormed xts (F Tag [(C _)]) =
-    Just xts                    -- Tags
-termWellFormed xts (F Cat [t0, t1]) =
-    doubleTermWellFormed xts t0 t1  -- Concatenation
-termWellFormed xts (F Enc [t0, t1]) =
-    doubleTermWellFormed xts t0 t1  -- Encryption
-termWellFormed xts (F Hash [t]) =
-    termWellFormed xts t
-termWellFormed _ _ = Nothing
-
--- Extend when sorts agree
-extendVarEnv :: VarEnv -> Id -> Term -> Maybe VarEnv
-extendVarEnv (VarEnv env) x t =
-    case M.lookup x env of
-      Nothing -> Just $ VarEnv $ M.insert x t env
-      Just t' -> if t == t' then Just (VarEnv env) else Nothing
-
-doubleTermWellFormed :: VarEnv -> Term -> Term -> Maybe VarEnv
-doubleTermWellFormed xts t0 t1 =
-    do
-      xts <- termWellFormed xts t0
-      termWellFormed xts t1
-
-{-
--- Is there an identifier incompatible with gen?
-badGen :: Gen -> Term -> Bool
-badGen (Gen g) t =
-  foldVars f False t
-  where
-    f b t = b || i >= g
-      where Id (i, _) = varId t
---}
-
--- Is the sort of the term a base sort?
-isAtom :: Term -> Bool
-isAtom (I _) = False
-isAtom (C _) = True
-isAtom (F s _) =
-    s == Text || s == Data || s == Name || s == Skey || s == Akey || s == Tag
-isAtom (G x) = isBasisVar x
-isAtom (D _) = False
-isAtom (Z _) = False
-
--- Is the term numeric?
-isNum :: Term -> Bool
-isNum (F Base _) = True
-isNum (G _) = True
-isNum _ = False
-
--- Does a variable occur in a term?
-occursIn :: Term -> Term -> Bool
-occursIn t t' | isVar t =
-  subterm (I $ varId t) t'
-occursIn t _ =
-  error $ "Algebra.occursIn: Bad variable " ++ show t
-
-subterm :: Term -> Term -> Bool
-subterm t t' | t == t' =
-  True
-subterm t (F _ u) =
-  any (subterm t) u
-subterm (I x) (G t') =
-  M.member x t'
-subterm (G t) (G t') | isBasisVar t = -- For constituent
-  M.member (getGroupVar t) t'
-subterm _ _ = False
-
--- Fold f through a term applying it to each variable in the term.
-foldVars :: (a -> Term -> a) -> a -> Term -> a
-foldVars f acc t@(I _) = f acc t          -- Mesg variable
-foldVars f acc t@(F Text [I _]) = f acc t -- Text variable
-foldVars f acc t@(F Tag [I _]) = f acc t -- Tag variable
-foldVars f acc t@(F Data [I _]) = f acc t -- Data variable
-foldVars f acc t@(F Name [I _]) = f acc t -- Name variable
-foldVars f acc t@(F Skey [I _]) =
-    f acc t                     -- Symmetric key variable
-foldVars f acc (F Skey [F Ltk [I x, I y]]) =
-    -- Long term shared symmetric key
-    f (f acc (F Name [I x])) (F Name [I y])
-foldVars f acc (F Skey [F Bltk [I x, I y]]) =
-    -- Bidirectional Long term shared symmetric key
-    f (f acc (F Name [I x])) (F Name [I y])
-foldVars f acc t@(F Akey [I _]) = f acc t -- Asymmetric keys
-foldVars f acc (F Akey [F Invk [I x]]) = f acc (F Akey [I x])
-foldVars f acc (F Akey [F Pubk [I x]]) = f acc (F Name [I x])
-foldVars f acc (F Akey [F Pubk [C _, I x]]) = f acc (F Name [I x])
-foldVars f acc (F Akey [F Invk [F Pubk [I x]]]) = f acc (F Name [I x])
-foldVars f acc (F Akey [F Invk [F Pubk [C _, I x]]]) = f acc (F Name [I x])
-foldVars f acc (F Base [t]) =
-    baseAddVars acc t
-    where
-      baseAddVars acc t@(I _) =
-          f acc (F Base [t])
-      baseAddVars acc (F Genr []) =
-          acc
-      baseAddVars acc (F Exp [t0, G t1]) =
-          foldVars f (baseAddVars acc t0) (G t1)
-      baseAddVars _ _ = C.assertError "Algebra.foldVars: Bad term"
-foldVars f acc (G t) =
-    M.foldlWithKey expnAddVars acc t
-    where
-      expnAddVars acc x (be, _) =
-          f acc (groupVar be x)
-foldVars _ acc (F Tag [(C _)]) = acc        -- Tags
-foldVars f acc (F Cat [t0, t1]) = -- Concatenation
-    foldVars f (foldVars f acc t0) t1
-foldVars f acc (F Enc [t0, t1]) = -- Encryption
-    foldVars f (foldVars f acc t0) t1
-foldVars f acc (F Hash [t])     = -- Hashing
-    foldVars f acc t
-foldVars f acc t@(D _) = f acc t          -- Strand variable
-foldVars _ acc (Z _) = acc                -- Strand constant
-foldVars _ acc (C _) = acc
-foldVars _ _ t = error $ "Algebra.foldVars: Bad term " ++ show t
-
--- Fold f through a term applying it to each term that is carried by the term.
-foldCarriedTerms :: (a -> Term -> a) -> a -> Term -> a
-foldCarriedTerms f acc t@(F Cat [t0, t1]) = -- Concatenation
-    foldCarriedTerms f (foldCarriedTerms f (f acc t) t0) t1
-foldCarriedTerms f acc t@(F Enc [t0, _]) = -- Encryption
-    foldCarriedTerms f (f acc t) t0
---foldCarriedTerms f acc t@(F Base [F Exp [_, t1]]) = -- Exponents
---    f (f acc t) t1
-foldCarriedTerms f acc t = f acc t     -- atoms and tags
-
--- Is a term carried by another term?
-carriedBy :: Term -> Term -> Bool
-carriedBy t t' =
-    t == t' ||
-      case t' of
-        F Cat [t0, t1] -> carriedBy t t0 || carriedBy t t1
-        F Enc [t0, _] -> carriedBy t t0
-        _ -> False
-
--- Is a term relevant to t held by another term t'?
--- relevantCarriedBy :: Set Term -> Term -> Term -> Bool
--- relevantCarriedBy avoid t t' =
---     relevant avoid t t' ||
---       case t' of
---         F Cat [t0, t1] -> relevantCarriedBy avoid t t0 || relevantCarriedBy avoid t t1
---         F Enc [t0, _] -> relevantCarriedBy avoid t t0
---         _ -> False
-
--- Is atom a constituent of a term?  In other words, is atom among
--- the set of atoms required to construct the term?
-constituent :: Term -> Term -> Bool
-constituent t t' | isAtom t =
-  subterm t t'
-constituent t _ =
-  error $ "Algebra.constituent: Bad atom " ++ show t
-
--- The key used to decrypt an encrypted term, otherwise Nothing.
-decryptionKey :: Term -> Maybe Term
-decryptionKey (F Enc [_, t]) = Just (inv t)
-decryptionKey _ = Nothing
-
-buildable :: Set Term -> Set Term -> Term -> Bool
-buildable knowns unguessable term =
-    ba term
-    where
-      ba (I _) = True           -- A mesg sorted variable is always buildable
---      ba (C _) = True           -- Tags are now atoms.
-      ba (F Cat [t0, t1]) =
-          ba t0 && ba t1
-      ba t@(F Enc [t0, t1]) =
-          S.member t knowns || ba t0 && ba t1
-      ba t@(F Hash [t1]) =
-          S.member t knowns || ba t1
-      ba t@(F Base _) = bb t
-      ba (G t1) = be t1
-      ba t = isAtom t && not (S.member t unguessable)
-      -- Buildable base term
-      bb (F Base [I _]) = True           -- A variable of sort base is always buildable
-      bb (F Base [F Genr _]) = True     -- and so is the generator
-      bb t@(F Base [F Exp [t0, G t1]]) =
-        any (\t2 -> (getBase t2 == t0) && relevant unguessable t2 t)
-           (S.toList knowns) || bb (F Base [t0]) && be t1
-      bb (_) = False
-      -- Buildable exponent
-      be exp =
-        all (flip notElem ids) $ M.keys exp
-      -- Exponent variables with origination assumptions
-      ids = getExpnOrigAssumptions unguessable
-      -- Known exponent without non-known variables
-      -- kns = map (stripExpn ids) (getExpns knowns)
-
-getExpnOrigAssumptions :: Set Term -> [Id]
-getExpnOrigAssumptions terms =
-    concatMap f $ S.elems terms
-    where
-      f (G t) = M.keys t        -- This is an approximation
-      f _ = []
-
-{--
-stripExpn :: [Id] -> Group -> Group
-stripExpn ids grp =
-    foldl f grp $ M.keys grp
-    where
-      f grp key
-          | notElem key ids = M.delete key grp
-          | otherwise = grp
-
-getExpns :: Set Term -> [Group]
-getExpns terms =
-    foldl f [M.empty] $ S.elems terms
-    where
-      f a (G t) = t:a
-      f a _ = a
-
-termGen :: Group -> Gen
-termGen t =
-    Gen (1 + maxl (map idInt (M.keys t)))
-    where
-      idInt (Id (i, _)) = i
-      maxl [] = 0
-      maxl xs = maximum xs
-
-instOf :: Group -> Group -> Bool
-instOf grp pat =
-    maybe False (const True) (match (G pat) (G grp) (gen, emptyEnv))
-    where
-      gen = mash (termGen grp) (termGen pat)
---}
-
--- Penetrator derivable predicate and checking for unrealized skeletons.
-
-derivable :: Set Term -> Set Term -> Term -> Bool
-derivable avoid sent term =
-    let (knowns, unknowns) = decompose sent avoid in
-    buildable knowns unknowns term
-
--- Compute the decomposition given some known terms and some unguessable
--- atoms.  The code is quite tricky.  It iterates until the known
--- terms don't change.  The known terms ends up with all the
--- encryptions that are known.
-decompose :: Set Term -> Set Term -> (Set Term, Set Term)
-decompose knowns unguessable =
-    loop unguessable knowns S.empty []
-    where
-      loop unguessable knowns old []
-          | old == knowns = (knowns, unguessable) -- Done
-          | otherwise = loop unguessable knowns knowns (S.elems knowns)
-      loop unguessable knowns old (t@(F Cat _) : todo) =
-          loop unguessable (decat t (S.delete t knowns)) old todo
-      loop unguessable knowns old ((F Enc [t0, t1]) : todo)
-          | buildable knowns unguessable (inv t1) = -- Add plaintext
-              loop unguessable (decat t0 knowns) old todo
-          | otherwise = loop unguessable knowns old todo
-      loop unguessable knowns old ((F Hash [_]) : todo) =
-          loop unguessable knowns old todo -- Hash can't be decomposed
-      -- New case here: don't delete exponentiated values
-      loop unguessable knowns old (F Base [F Exp [_, _]] : todo) =
-          loop unguessable knowns old todo
-      --  New case here: don't delete exponents that
-      -- aren't in unguessable
-      loop unguessable knowns old (t@(G _) : todo)
-          | S.notMember t unguessable =
-              loop unguessable knowns old todo
-      loop unguessable knowns old (t : todo) =
-          loop (S.delete t unguessable) (S.delete t knowns) old todo
-      -- Decat
-      decat (F Cat [t0, t1]) s = decat t1 (decat t0 s)
-      decat t s = S.insert t s
-
--- Inverts an asymmetric key
-inv :: Term -> Term
-inv (F Akey [F Invk [t]]) = F Akey [t]
-inv (F Akey [t]) = F Akey [F Invk [t]]
-inv (I _) = error "Algebra.inv: Cannot invert a variable of sort mesg"
-inv t = t
-
--- Extracts every encryption that is carried by a term along with its
--- encryption key.
-encryptions :: Term -> [(Term, [Term])]
-encryptions t =
-    reverse $ loop t []
-    where
-      loop (F Cat [t, t']) acc =
-          loop t' (loop t acc)
-      loop t@(F Enc [t', t'']) acc =
-          loop t' (adjoin (t, [t'']) acc)
-      loop t@(F Hash [t']) acc =
-          adjoin (t, [t']) acc
---      loop t@(F Base [F Exp [_, t'']]) acc =
---          adjoin (t, [t'']) acc
-      loop _ acc = acc
-      adjoin x xs
-          | x `elem` xs = xs
-          | otherwise = x : xs
-
--- Put a base expression in the form g, g^e, or b or b^e where b is a variable.
-expCollapse :: Term -> Term
-expCollapse (F Base [F Genr ts]) = F Base [F Genr ts]
--- expCollapse (F Genr _) = F Base [F Genr []]
-expCollapse (F Base [F Exp [F Exp [b, G e0], G e1]]) =
-  case expCollapse (F Base [F Exp [b, G e0]]) of
-    F Base [F Exp [b', G e0']] -> F Base [F Exp [b', G (mul e0' e1)]]
-    _ -> error ("Algebra.hs: expCollapse returned non-base element")
-expCollapse (F Base [F Exp [b, G e]]) = F Base [F Exp [b, G e]]
-expCollapse (F Base [I t]) = F Base [I t]
-expCollapse _ = error ("Algebra.hs: expCollapse called on non-base element")
-
-getBase :: Term -> Term
-getBase (F Base [(F Genr _)]) = F Base [F Genr []]
-getBase t@(F Base _) =
-  case expCollapse t of
-    F Base [F Exp [b, _]] -> b
-    _ -> t  -- If not exponentiated, the term is the base.
-getBase t = t
-
-relevant :: Set Term -> Term -> Term -> Bool
-relevant avoid t1@(F Base _) t2@(F Base _) =
-    i1 == i2
-    where
-      i1 = indicator avoid t1
-      i2 = indicator avoid t2 -- compare indicators.
-relevant _ t1 t2 = t1 == t2
-
--- Extract the exponent of the term restricted to its map on exponent
--- variables in avoid.
-indicator :: Set Term -> Term -> Group
-indicator avoid t@(F Base _) =
-  case expCollapse t of
-    F Base [F Genr _] -> M.empty
-    F Base [I _] -> M.empty
-    F Base [F Exp [_, G m]] -> M.intersection m indicatorBasis
-    _ -> error ("Algebra.hs: expCollapse returned non-base element")
-  where
-    numAvoid = S.map extrExpn $ S.filter isExpn avoid
-    isExpn (G g) = isBasisVar g
-    isExpn _ = False
-    extrExpn (G t) = t
-    extrExpn _ = error ("Algebra.hs: extrExpn called on a non-exponent")
-    indicatorBasis = S.fold mul M.empty numAvoid
-indicator _ t = error ("Algebra.hs: indicator called on a non-base " ++ show t)
-
--- Return Just (set) when ct is not derivable.
--- Return Nothing when ct is derivable.
-escapeSet :: Set Term -> Set Term -> Term -> Maybe (Set Term)
-escapeSet ts a ct =
-    if buildable ts a ct then
-        Nothing
-    else
-        Just $ S.filter f ts
-        where
-          f (F Enc [t, key]) =
-              carriedBy ct t &&
-              not (buildable ts a (inv key))
-          f _ = False
-
-isBase :: Term -> Bool
-isBase (F Base _) = True
-isBase _ = False
-
-isExpr :: Term -> Bool
-isExpr (G _) = True
-isExpr _ = False
-
-isRndx :: Term -> Bool
-isRndx (G t) = isBasisVar t
-isRndx _ = False
-
-expnInExpr :: Term -> Term -> Bool
-expnInExpr (G n) (G r) =
-  isBasisVar n &&
-  not (isBasisVar r) &&
-  M.member (getGroupVar n) r
-expnInExpr _ _ = False
-
-consts :: Term -> [Term] -> [Term]
-consts (F Base _) _ = [F Base [F Genr []]]
-consts (G _) _ = [G M.empty]
-consts (F Tag _) ts =
-    loop [] ts
-    where
-      loop acc [] = acc
-      loop acc ((C str): ts) = loop ((C str): acc) ts
-      loop acc ((F _ subts): ts) = loop acc (subts ++ ts)
-      loop acc (_ : ts) = loop acc ts
-consts _ _ = []
-
-instance C.Term Term where
-    derivable = derivable
-    isNum = isNum
-    isVar = isVar
-    isAcquiredVar = isAcquiredVar
-    isObtainedVar = isObtainedVar
-    subNums = subNums
-    indicator = calcIndicator
-    isAtom = isAtom
-    isStrdVar = isStrdVar
-    termsWellFormed = termsWellFormed
-    occursIn = occursIn
-    foldVars = foldVars
-    foldCarriedTerms = foldCarriedTerms
-    carriedBy = carriedBy
-    constituent = constituent
-    decryptionKey = decryptionKey
-    decompose = decompose
-    buildable = buildable
-    encryptions = encryptions
-    escapeSet = escapeSet
-    loadTerm = loadTerm
-    isBase = isBase
-    isExpr = isExpr
-    expnInExpr = expnInExpr
-    consts = consts
-
--- Places
-
--- A place names a one subterm within a term.  It is a list of
--- integers giving a path through a term to that named subterm.  Each
--- integer in the list identifies the subterm in a function
--- application on the path to the named subterm.  The integer is the
--- index of the subterm in the application's list of terms.
-
--- The places and replace code fail to find the variable
--- (F Akey [I x]) in (F Akey [Invk [I x]]).
-
-newtype Place = Place [Int] deriving (Show, Eq)
-
--- Returns the places a variable occurs within a term.
-places :: Term -> Term -> [Place]
-places var source =
-    f [] [] source
-    where
-      f paths path source
-          | var == source = Place (reverse path) : paths
-      f paths path (F _ u) =
-          g paths path 0 u
-      f paths path (G t)
-          | M.member (varId var) t =
-            Place (reverse path) : paths
-          | otherwise = paths
-      f paths _ _ = paths
-      g paths _ _ [] = paths
-      g paths path i (t : u) =
-          g (f paths (i: path) t) path (i + 1) u
-
--- Returns the places a term is carried by another term.
-carriedPlaces :: Term -> Term -> [Place]
-carriedPlaces target source =
-    f [] [] source
-    where
-      f paths path source
-          | target == source = Place (reverse path) : paths
-      f paths path (F Cat [t, t']) =
-          f (f paths  (0 : path) t) (1 : path) t'
-      f paths path (F Enc [t, _]) =
-          f paths (0 : path) t
---      f paths path (F Base [F Exp [_, t]]) =
---        f paths (1 : 0 : path) t
-      f paths _ _ = paths
-
--- Returns the places a term is carried by another term.
-carriedRelPlaces :: Term -> Term -> Set Term -> [Place]
-carriedRelPlaces target source avoid =
-    f [] [] source
-    where
-      f paths path source
-          | relevant avoid source target = Place (reverse path) : paths
-      f paths path (F Cat [t, t']) =
-          f (f paths  (0 : path) t) (1 : path) t'
-      f paths path (F Enc [t, _]) =
-          f paths (0 : path) t
---      f paths path (F Base [F Exp [_, t]]) =
---        f paths (1 : 0 : path) t
-      f paths _ _ = paths
-
--- Replace a variable within a term at a given place.
-replace :: Term -> Place -> Term -> Term
-replace var (Place ints) source =
-    loop ints source
-    where
-      loop [] _ = var
-      loop (i : path) (F s u) =
-          F s (C.replaceNth (loop path (u !! i)) i u)
-      loop _ _ = C.assertError "Algebra.replace: Bad path to term"
-
-factors :: Group -> [Maplet]
-factors t =
-    do
-      (x, (be, n)) <- M.assocs t
-      case n >= 0 of
-        True -> replicate n (x, (be, 1))
-        False -> replicate (negate n) (x, (be, -1))
-
--- Return the ancestors of the term at the given place.
-ancestors :: Term -> Place -> [Term]
-ancestors source (Place ints) =
-    loop [] ints source
-    where
-      loop ts [] _ = ts
-      loop ts (i: path) t@(F _ u) =
-          loop (t : ts) path (u !! i)
-      loop ts [_] t@(G _) = t : ts
-      loop _ _ _ = C.assertError "Algebra.ancestors: Bad path to term"
-
-prefix :: Place -> Place -> Bool
-prefix (Place l) (Place l') = L.isPrefixOf l l'
-
-strip :: Place -> Place -> Maybe Place
-strip (Place l) (Place l') =
-  loop l l'
-  where
-    loop [] l' = Just $ Place l'
-    loop (i : l) (i' : l') | i == i' = loop l l'
-    loop _ _ = Nothing
-
-instance C.Place Term Place where
-    places = places
-    carriedPlaces = carriedPlaces
-    carriedRelPlaces = carriedRelPlaces
-    replace = replace
-    ancestors = ancestors
-    placeIsPrefixOf = prefix
-    placeStripPrefix = strip
-
-{-
--- Genericize: transform h^e -> (h^e)^e' where e' is a cloned
--- variable, cloned off the first variable in e.
-genericize :: Gen -> Term -> Maybe (Gen, [Term])
-genericize gen (F Base [F Exp [base, G grp]]) =
-  Just (gen', [F Base [F Exp [base, G (mul grp' exp')]], gexp'])
-  where
-    (gen', gexp') = clone gen (G exp)
-    exp = if (null (M.toList grp)) then
-             C.assertError "Algebra.genericize: Something odd happened"
-          else
-            M.fromList [let (x, (_,n)) = head (M.toList grp) in
-                         (x, (False,n))]
-    -- Get rid of non-basis element variables from grp.
-    factors' = filter (\(_, (b, _)) -> b) (factors grp)
-    grp' = M.fromList factors'
-    exp' = case gexp' of
-      G x -> x
-      _ -> C.assertError "Algebra.genericize: Something odd happened"
-genericize g (G grp) =
-  if (isAtom (G grp)) then Nothing else
-      -- list of variables occurring in grp
-      Just (g, map (\(v, (b, _)) -> G (M.fromList [(v, (b, 1))]))
-             (factors grp))
-genericize _ _ = Nothing
--}
-
-{-
-genericVersion :: Gen -> Term -> (Gen, Term)
-genericVersion gen (F Base [F Exp [F Genr _, G grp]]) =
-  (gen', (F Base [F Exp [I id', G grp]]))
-  where
-    (gen', id') = freshId gen "g"
-genericVersion gen (F Base [F Exp [I id, G grp]]) =
-  (gen', (F Base [F Exp [t', G grp]]))
-  where
-    (gen', t') = clone gen (I id)
-genericVersion gen (F Base [F Exp [F Exp [base, G grp], G grp']]) =
-  genericVersion gen (F Base [F Exp [base, G (mul grp grp')]])
-genericVersion gen t = (gen, t)
--}
-
--- Rename the identifiers in a term.  Gen keeps the state of the
--- renamer.  (Question: should alist be replaced by a Map?)
-clone :: Gen -> Term -> (Gen, Term)
-clone gen t =
-    (gen', t')
-    where
-      (_, gen', t') = cloneTerm ([], gen) t
-      cloneTerm (alist, gen) t =
-          case t of             -- The association list maps
-            I x ->              -- identifiers to identifier.
-                case lookup x alist of
-                  Just y -> (alist, gen, I y)
-                  Nothing ->
-                      let (gen', y) = cloneId gen x in
-                      ((x, y) : alist, gen', I y)
-            C c -> (alist, gen, C c)
-            F sym u ->
-                let (alist', gen', u') =
-                        foldl cloneTermList (alist, gen, []) u in
-                (alist', gen', F sym $ reverse u')
-            G t ->
-                let (alist', gen', ts) =
-                        M.foldlWithKey cloneGroupList (alist, gen, []) t in
-                (alist', gen', G $ group ts)
-            D x ->              -- identifiers to identifier.
-                case lookup x alist of
-                  Just y -> (alist, gen, D y)
-                  Nothing ->
-                      let (gen', y) = cloneId gen x in
-                      ((x, y) : alist, gen', D y)
-            Z p -> (alist, gen, Z p)
-      cloneTermList (alist, gen, u) t =
-          let (alist', gen', t') = cloneTerm (alist, gen) t in
-          (alist', gen', t' : u)
-      cloneGroupList (alist, gen, ts) x (be, n) =
-          case lookup x alist of
-            Just y -> (alist, gen, (y, (be, n)) : ts)
-            Nothing ->
-                let (gen', y) = cloneId gen x in
-                ((x, y) : alist, gen', (y, (be, n)) : ts)
-
-{-
-mostGenPrecursors :: Gen -> Term -> [(Gen, Term)]
-mostGenPrecursors g t =
-  case (genericize g t) of
-    Nothing -> []
-    Just (_, []) -> []
-    Just (gen, [v]) -> [(gen, v)]
-    Just (gen, ts) -> [(gen, foldr1 (\a b -> F Cat [a, b]) ts)]
--}
-
-basePrecursor :: Gen -> Term -> (Gen, Term)
-basePrecursor g (F Base [t]) =
-  (g', F Cat [F Base [simplifyBase $ F Exp [t, G $ invert x']],
-              G x'])
-  where
-    (g', x) = freshId g "w"
-    x' = groupVarG Expt x
-basePrecursor _ t =
-  error ("Algebra.basePrecursor: Bad term " ++ show t)
-
-simplifyBase :: Term -> Term
-simplifyBase (F Exp [t, G g])
-  | M.null g = simplifyBase t
-simplifyBase (F Exp [F Exp [t, G g0], G g1]) =
-  simplifyBase (F Exp [t, G (mul g0 g1)])
-simplifyBase t = t
-
--- When all of the factors in a group use rndx variables, return a
--- list of concatenations of each variable with the base term
--- exponentiated with the group without the variable.
-
-baseRndx :: Term -> Maybe [Term]
-baseRndx (F Base [F Exp [F Genr [], G g]])
-  | M.size g > 1 =
-    loop [] (M.assocs g)
-    where
-      loop acc [] = Just acc
-      loop _ ((_, (Expt, _)) : _) = Nothing
-      loop acc ((id, (Rndx, _)) : maplets) =
-        loop (baseBuild g id : acc) maplets
-baseRndx _ = Nothing
-
-baseBuild :: Group -> Id -> Term
-baseBuild g var =
-  F Cat
-  [F Base [F Exp [F Genr [], G $ M.delete var g]],
-    groupVar Rndx var]
-
-instance C.Gen Term Gen where
-    origin = origin
-    gmerge = gmerge
---    genericize = genericize
---    genericVersion = genericVersion
-    clone = clone
-    loadVars = loadVars
-    basePrecursor = basePrecursor
-    baseRndx = baseRndx
-
--- Functions used in both unification and matching
-
-type IdMap = Map Id Term
-
-emptyIdMap :: IdMap
-emptyIdMap = M.empty
-
--- Apply a substitution to a term
-idSubst :: IdMap -> Term -> Term
-idSubst _ (F Exp []) = C.assertError "DiffieHellman.Algebra: Bad exponentiation"
-idSubst subst (I x) =
-    M.findWithDefault (I x) x subst
-idSubst _ t@(C _) = t
-idSubst subst (F Invk [t]) =
-    case idSubst subst t of
-      F Invk [t] -> t           -- (invk (invk x)) = x
-      t -> F Invk [t]
-idSubst subst (F Exp [t0, G t1]) =
-    case idSubst subst t0 of    -- (exp (exp g x) y) = (exp g (mul x y))
-      F Exp [t0', G t1'] ->
-          case mul t1' $ groupSubst subst t1 of
-            t2 | M.null t2 -> t0'
-               | otherwise -> F Exp [t0', G t2]
-      t -> expSubst subst t t1
-idSubst subst (F s u) =
-    F s (map (idSubst subst) u)
-idSubst subst (G t) =
-    G $ groupSubst subst t
-idSubst subst (D x) =
-    M.findWithDefault (D x) x subst
-idSubst _ t@(Z _) = t
-
--- Is every variable in a term a key in the map?
-idMapped :: IdMap -> Term -> Bool
-idMapped subst (I x) = M.member x subst
-idMapped _ (C _) = True
-idMapped subst (F _ u) =
-    all (idMapped subst) u
-idMapped subst (G t) =
-    all (\ x -> M.member x subst) (M.keys t)
-idMapped subst (D x) = M.member x subst
-idMapped _ (Z _) = True
-
-expSubst :: IdMap -> Term -> Group -> Term
-expSubst subst t0 t1 =
-    case groupSubst subst t1 of
-      t1' | M.null t1' -> t0    -- (exp g (one)) = g
-          | otherwise -> F Exp [t0, G t1']
-
-groupSubst :: IdMap -> Group -> Group
-groupSubst subst t =
-    M.foldrWithKey f M.empty t
-    where
-      f x (be, c) t =
-          mul (expg (groupLookup subst be x) c) t
-
-groupLookup :: IdMap -> Sort -> Id -> Group
-groupLookup subst be x =
-    case M.findWithDefault (groupVar be x) x subst of
-      G t -> t
-      w -> error ("Algebra.groupLookup: Bad substitution: " ++
-                  show x ++ " -> " ++ show w)
-
-showMap :: (Show a, Show b) => Map a b -> ShowS
-showMap m =
-    showAssocs (M.assocs m)
-    where
-      showAssocs [] = id
-      showAssocs ((x,y):m) =
-          showString "\n " . shows x . showString " -> " .
-          shows y . showAssocs m
-
--- Unification and substitution
-
--- The rewrite rules used are:
---
--- (vars (h base) (x y expn))
---
--- 1.  ((exp h x) y) ==> (exp h (mul x y))
--- 2.  (exp h (one)) ==> h
--- 3.  unify((exp(h, x)), (exp(h, y)), s) ==>
---         unify(x, y, s)
--- 4   unify((exp(h, x)), (exp((gen), y)), s) ==>
---         unify(h, (exp gen (mul y (rec x))), s)
--- 5.  unify((exp((gen), x)), (exp(h, y)), s) ==>
---         unify((exp(h, x)), (exp((gen), y)), s)
-
-newtype Subst = Subst IdMap deriving (Eq, Ord)
-
-instance Show Subst where
-    showsPrec _ (Subst s) = showString "Subst (" . showMap s . showChar ')'
-
-emptySubst :: Subst
-emptySubst = Subst emptyIdMap
-
--- Apply a substitution created by unification
-substitute :: Subst -> Term -> Term
-substitute (Subst s) t =
-    idSubst s t
-
--- Composition of substitutions
-
--- substitute (compose s0 s1) t = substitute s0 (substitute s1 t)
-
--- 1. apply s0 to range of s1 to obtain s2;
--- 2. remove bindings is s0 where domains of s0 and s1 overlap to form s3;
--- 3. remove trivial bindings from s2 to form s4; and
--- 4. take the union of s4 and s3.
-
-compose :: Subst -> Subst -> Subst
-compose (Subst s0) (Subst s1) =
-    let s2 = M.map (substitute (Subst s0)) s1        -- Step 1
-        s4 = M.filterWithKey nonTrivialBinding s2 in -- Step 3
-    Subst (M.union s4 s0)       -- Steps 2 and 4, union is left-biased
-
-nonTrivialBinding :: Id -> Term -> Bool
-nonTrivialBinding x (I y) = x /= y
-nonTrivialBinding x t@(G _) =
-  not (t == groupVar Rndx x || t == groupVar Expt x)
-nonTrivialBinding _ _ = True
-
--- During unification, variables determined to be equal are collected
--- into an equivalence class.  Multiple lookups of each variable in
--- the internal representation of a substitution finds the canonical
--- representive of the class.  The chase function finds the current
--- canonical representitive.
-
--- Get the canonical representative of equivalent identifiers making use
--- of this algebra's axiom.
-chase :: Subst -> Term -> Term
-chase (Subst s) (I x) =
-    case M.lookup x s of
-      Nothing -> I x
-      Just t -> chase (Subst s) t
-chase (Subst s) (D x) =
-    case M.lookup x s of
-      Nothing -> D x
-      Just t -> chase (Subst s) t
-chase s (F Invk [t]) = chaseInvk s t
-chase s (F Exp [t0, G t1]) = chaseExp s t0 t1
-chase (Subst s) (G t) = G $ chaseGroup s t
-chase _ t = t
-
-chaseInvk :: Subst -> Term -> Term
-chaseInvk (Subst s) (I x) =
-    case M.lookup x s of
-      Nothing -> F Invk [I x]
-      Just t -> chaseInvk (Subst s) t
-chaseInvk s (F Invk [t]) = chase s t
-chaseInvk _ t = F Invk [t]
-
-chaseExp :: Subst -> Term -> Group -> Term
-chaseExp s t0 t1
-    | M.null t1 = chase s t0
-chaseExp s@(Subst ss) (I x) t1 =
-    case chase s (I x) of
-      F Exp [t0', G t1'] ->
-        chaseExpFinalize t0' t1t1'
-        where t1t1' = mul t1' (chaseGroup ss t1)
-      t0 -> chaseExpFinalize t0 t1'
-        where t1' = chaseGroup ss t1
-chaseExp s (F Exp [t0', G t1']) t1 =
-    chaseExp s t0' (mul t1 t1')
-chaseExp (Subst s) t0 t1 =
-    chaseExpFinalize t0 t1'
-    where t1' = chaseGroup s t1
-
-chaseExpFinalize :: Term -> Group -> Term
-chaseExpFinalize t0 t1 =
-    if M.null t1
-       then t0
-       else F Exp [t0, G t1]
-
-chaseGroup :: IdMap -> Group -> Group
-chaseGroup s t =
-    M.foldrWithKey f M.empty t
-     where
-       f x (be, c) t =
-           mul (expg (chaseGroupLookup s be x) c) t
-
-chaseGroupLookup :: IdMap -> Sort -> Id -> Group
-chaseGroupLookup s be x =
-    case M.lookup x s of
-      Nothing -> groupVarG be x
-      Just (G t) -> chaseGroup s t
-      Just w -> error ("Algebra.chaseGroupLookup: Bad substitution: " ++
-                     show x ++ " -> " ++ show w)
-
--- Does x occur in t?
-occurs :: Id -> Term -> Bool
-occurs x (I y) = x == y
-occurs _ (C _) = False
-occurs x (F _ u) = any (occurs x) u
-occurs x (G t) = elem x (M.keys t)
-occurs x (D y) = x == y
-occurs _ (Z _) = False
-
-type GenSubst = (Gen, Subst)
-
-unifyChase :: Term -> Term -> GenSubst -> [GenSubst]
-unifyChase t t' (g, s) = unifyTerms (chase s t) (chase s t') (g, s)
-
-unifyTerms :: Term -> Term -> GenSubst -> [GenSubst]
-unifyTerms (I x) (I y) (g, Subst s)
-    | x == y = [(g, Subst s)]
-    | otherwise = [(g, Subst $ M.insert x (I y) s)]
-unifyTerms (I x) t (g, Subst s)
-    | occurs x t = []
-    | otherwise = [(g, Subst $ M.insert x t s)]
-unifyTerms t (I x) s = unifyTerms (I x) t s
-unifyTerms (C c) (C c') s
-    | c == c' = [s]
-    | otherwise = []
-unifyTerms (F Invk [I x]) (F Pubk [I y]) s =
-    unifyTerms (I x) (F Invk [F Pubk [I y]]) s
-unifyTerms (F Invk [I x]) (F Pubk [C c, I y]) s =
-    unifyTerms (I x) (F Invk [F Pubk [C c, I y]]) s
-unifyTerms (F Pubk [I x]) (F Invk [I y]) s =
-    unifyTerms (I y) (F Invk [F Pubk [I x]]) s
-unifyTerms (F Pubk [C c, I x]) (F Invk [I y]) s =
-    unifyTerms (I y) (F Invk [F Pubk [C c, I x]]) s
-unifyTerms (F Bltk u) (F Bltk u') s =
-    L.nub $ unifyTermLists u u' s ++ unifyTermLists u (reverse u') s
-unifyTerms (F Base [t0]) (F Base [t1]) s =
-    unifyBase (chase (snd s) t0) (chase (snd s) t1) s
-unifyTerms (F sym u) (F sym' u') s
-    | sym == sym' = unifyTermLists u u' s
-    | otherwise = []
-unifyTerms (G t) (G t') s =
-    unifyGroup t t' s
-unifyTerms (D x) (D y) (g, Subst s)
-    | x == y = [(g, Subst s)]
-    | otherwise = [(g, Subst $ M.insert x (D y) s)]
-unifyTerms (D x) (Z p) (g, Subst s) =
-    [(g, Subst $ M.insert x (Z p) s)]
-unifyTerms t (D x) s = unifyTerms (D x) t s
-unifyTerms (Z p) (Z p') s
-    | p == p' = [s]
-    | otherwise = []
-unifyTerms _ _ _ = []
-
--- unifyBase: the two terms were both encapsulated in F Base [].
--- feed the appropriate inputs to unifyExp.
--- Take h to mean h^1 for either base variable h or h = (gen).
--- Fall back to unify algorithm when left side is F Genr [].
-unifyBase :: Term -> Term -> GenSubst -> [GenSubst]
-unifyBase (F Exp [t0, G t1]) (F Exp [t0', G t1']) gs
-  = unifyExp t0 t1 t0' t1' gs
-unifyBase (F Exp [t0, G t1]) (I x) gs
-  = unifyExp t0 t1 (I x) (M.empty) gs
-unifyBase (F Exp [t0, G t1]) (F Genr []) gs
-  = unifyExp t0 t1 (F Genr []) (M.empty) gs
-unifyBase (I x) (F Exp [t0', G t1']) gs
-  = unifyExp (I x) (M.empty) t0' t1' gs
-unifyBase (I x) (I y) gs
-  = unifyExp (I x) (M.empty) (I y) (M.empty) gs
-unifyBase (I x) (F Genr []) gs
-  = unifyExp (I x) (M.empty) (F Genr []) (M.empty) gs
-unifyBase t0 t1 gs
-  = unifyTerms t0 t1 gs
-
--- unifyExp: not guaranteed that inputs are not F Exp expressions.
--- guaranteed that t0 and t0' are (I x), (F Genr _), or (F Exp _).
--- Both t0 and t0' should not be F Exp, though, as this would indicate a non-canonical form.
-unifyExp :: Term -> Group -> Term -> Group -> GenSubst -> [GenSubst]
-unifyExp (F Exp t0) t1 _ _ _ =
-  error ("Algebra.unifyExp: Got input not in canonical form " ++ show (F Exp t0) ++ show t1)
-unifyExp _ _ (F Exp t0) t1 _ =
-  error ("Algebra.unifyExp: Got input not in canonical form " ++ show (F Exp t0) ++ show t1)
--- Force into canonical form.
---unifyExp (F Exp [t0, G e]) t1 t0' t1' gs =
---  unifyExp t0 (mul e t1) t0' t1' gs
---unifyExp t0 t1 (F Exp [t0', G e]) t1' gs =
---  unifyExp t0 t1 t0' (mul e t1') gs
-unifyExp t0 t1 t0' t1' s
-    | t0 == t0' = unifyGroup t1 t1' s
-unifyExp (I x1) t0 (I x2) t1' (g, Subst s) =
-      unifyGroup (mul t0 z) t1' (g', Subst $ M.insert x1 (F Exp [(I x2), G z]) s)
-      where
-        (g', zid) = freshId g "z"
-        z = groupVarGroup zid
-unifyExp (I x) t1 (F Genr []) t1' (g, Subst s)
-    | t1 == t1' =
-        [(g, Subst $ M.insert x (F Genr []) s)]
-    | otherwise =
-        [(g, Subst (M.insert x (F Exp [F Genr [], G $ mul t1' (invert t1)]) s))]
-unifyExp (F Genr []) t1 (I x) t1' s =
-    unifyExp (I x) t1' (F Genr []) t1 s
-unifyExp _ _ _ _ _ = []
-
-unifyTermLists :: [Term] -> [Term] -> GenSubst -> [GenSubst]
-unifyTermLists [] [] s = [s]
-unifyTermLists (t : u) (t' : u') s =
-    do
-      s' <- unifyChase t t' s
-      unifyTermLists u u' s'
-unifyTermLists _ _ _ = []
-
-unifyGroup :: Group -> Group -> GenSubst -> [GenSubst]
-unifyGroup t0 t1 (g, Subst s) =
-    do
-      let t = groupSubst s (mul t0 (invert t1))
-      (_, g', s') <- matchGroup t M.empty S.empty g s
-      return (g', Subst s')
-
--- The exported unifier converts the internal representation of a
--- substitution into the external form using chaseMap.
-
-unify :: Term -> Term -> GenSubst -> [GenSubst]
-unify t t' s =
-    do
-      (g, s) <- unifyChase t t' s
-      return (g, chaseMap s)
-
--- Apply the chasing version of substitution to the range of s.
-
-chaseMap :: Subst -> Subst
-chaseMap (Subst s) =
-    Subst $ M.map (substChase (Subst s)) s
-
--- A chasing version of substitution.
-
-substChase :: Subst -> Term -> Term
-substChase subst@(Subst ss) t =
-    case chase subst t of
-      t@(I _) -> t
-      t@(C _) -> t
-      F Invk [t] ->
-          case substChase subst t of
-            F Invk [t] -> t           -- Apply axiom
-            t -> F Invk [t]
-      F Exp [t0, G t1] ->
-          case substChase subst t0 of
-            F Exp [t0', G t1'] ->
-              case mul t1' $ chaseGroup ss t1 of
-                t2 | M.null t2 -> t0'
-                   | otherwise -> F Exp [t0', G t2]
-            t -> chaseExp subst t t1
-      F s u ->
-          F s (map (substChase subst) u)
-      G t -> G $ chaseGroup ss t
-      t@(D _) -> t
-      t@(Z _) -> t
-
-destroyer :: Term -> Maybe Subst
-destroyer t@(G m) | isVar t =
-  Just $ Subst (M.fromList [(head $ M.keys m, G M.empty)])
-destroyer _ = Nothing
-
--- Stub absence substitution generator.  The current implementation
--- never identifies basis variables.
-
-absenceSubst :: Gen -> [(Term, Term)] -> [(Gen, Subst)]
-absenceSubst g as =
-  latticeCrawl g $ simplifyAbs [] as
-  where
-    simplifyAbs as [] = as
-    simplifyAbs acc (a : as) =
-      case a of
-        (G v, t) | isBasisVar v -> simplifyAbs ((getGroupVar v, t) : acc) as
-        _ -> error ("Algebra.absenceSubst: bad absence assertion " ++ show a)
-
-partitionSet :: [a] -> [[[a]]]
-partitionSet  []    = [[]]
-partitionSet (x:xs) = [ys | yss <- partitionSet xs, ys <- bloat x yss]
-
-bloat :: a -> [[a]] -> [[[a]]]
-bloat x  []      = [[[x]]]
-bloat x (xs:xss) = ((x:xs):xss) : map (xs:) (bloat x xss)
-
-{--
-partitionMoreGeneral :: (Eq a, Foldable t, Foldable t1, Foldable t2, Foldable t3) =>
-                        t (t2 a) -> t1 (t3 a) -> Bool
-partitionMoreGeneral p1 p2 =
-    all (\c1 -> any (\c2 -> all (\e -> elem e c2) c1) p2) p1
---}
-
-nontrivClasses :: [[a]] -> [[a]]
-nontrivClasses xss = [xs | xs <- xss, length xs > 1]
-
-fullCrawl :: Bool
-fullCrawl = True -- False
-
--- This function should produce a comprehensive answer, involving expn unification
--- if necessary, and returning an empty list *only* if no solution is possible.
---
--- Full version not yet implemented.
-latticeCrawl :: Gen -> [(Id, Term)] -> [(Gen, Subst)]
-latticeCrawl g as =
-      case nullifyAll g as of
-        (gs : gss) -> (gs : gss)
-        [] -> if fullCrawl then bruteForceResults else []
-      where
-      gatherAllExpns as = doGatherAll [] as
-      doGatherAll acc [] = L.nub acc
-      doGatherAll acc ((v,t):as) =
-          doGatherAll (acc ++ [v] ++ (gatherInTerm t)) as
-      gatherInTerm (G m) =
-          map fst (filter (\(_,(b,_))->b == Rndx) $ M.assocs m)
-      gatherInTerm (F Base [F Genr []]) = []
-      gatherInTerm (F Base [I _]) = []
-      gatherInTerm (F Base [F Exp [_, G m]]) = gatherInTerm (G m)
-      gatherInTerm _ = error ("Algebra.latticeCrawl: unexpected pattern")
-      allExpns = map (\id -> G (M.singleton id (Rndx,1))) $ gatherAllExpns as
-      allExpnIds = map foo allExpns
-      foo (G grp) = getGroupVar grp
-      foo _ = C.assertError ("Algebra.latticeCrawl: critical failure!")
-      allPartitions = map nontrivClasses (partitionSet allExpnIds)
-      bruteForceResults = [gs | part <- allPartitions, gs <- nullifyAllPartition g as part]
-
-nullifyAll :: Gen -> [(Id, Term)] -> [(Gen, Subst)]
-nullifyAll g [] = [(g, emptySubst)]
-nullifyAll g as@((v,_):_) =
-  [(g1, s1) | (g2, s2) <- nullifyAll g (filter neqv as),
-              (g1, s1) <- nullifyOne g2 (filter eqv as) s2]
-  where
-    eqv (v',_) = (v == v')
-    neqv vm = not (eqv vm)
-
-nullifyAllPartition :: Gen -> [(Id, Term)] -> [[Id]] -> [(Gen, Subst)]
-nullifyAllPartition g [] _ = [(g, emptySubst)]
-nullifyAllPartition g as part =
-    [(g, compose s partUnifier) | (g', partUnifier) <- partUnifiers,
-                                  (g,s) <- nullifyAll g' (apply partUnifier as)]
-  where
-    partUnifiers = partUnifierLoop part [(g, emptySubst)]
-    partUnifierLoop [] acc = acc
-    partUnifierLoop ([]:rest) acc = partUnifierLoop rest acc
-    partUnifierLoop ([_]:rest) acc = partUnifierLoop rest acc
-    partUnifierLoop ((a:(b:more)):rest) acc = partUnifierLoop ((b:more):rest)
-           [gs' | gs <- acc, gs' <- unify (groupVar Rndx a) (groupVar Rndx b) gs]
-    apply s as =
-        map (substituteIdTerm s) as
-
--- Guaranteed that as has all first elements the same
-nullifyOne :: Gen -> [(Id,Term)] -> Subst -> [(Gen, Subst)]
-nullifyOne g as s =
-  map (\(g,e) -> (g, compose (substitution e) s)) ges
-  where
-    isolateExprs (v, (G m)) =
-        (v, G $ M.filterWithKey (\k (b,_) -> (b == Expt || k == v)) m)
-    isolateExprs (v, (F Base [F Exp [base, G m]])) =
-        (v, F Base [F Exp [base, snd $ isolateExprs (v,(G m))]])
-    isolateExprs (v, t@(F Base _)) = (v, t)
-    isolateExprs _ = C.assertError "Algebra.nullifyOne: unexpected pattern"
-    expnNullified v (G m) = G $ M.delete v m
-    expnNullified v (F Base [F Exp [base, G m]]) =
-        F Base [F Exp [base, expnNullified v (G m)]]
-    expnNullified _ t@(F Base _) = t
-    expnNullified _ _ = C.assertError "Algebra.nullifyOne: unexpected pattern"
-    lefts = map snd isas
-    rights = map (\(v, t) -> expnNullified v t) isas
-    sas = map (substituteIdTerm s) as
-    isas = map isolateExprs sas
-    ges = matchLists lefts rights (g, emptyEnv)
-
-substituteIdTerm :: Subst -> (Id, Term) -> (Id, Term)
-substituteIdTerm s (v,t) =
-    (substituteForceBasisVar s v, substitute s t)
-
-substituteForceBasisVar :: Subst -> Id -> Id
-substituteForceBasisVar (Subst s) v =
-    case M.lookup v s of
-      Nothing -> v
-      Just t -> case t of
-                   (G v') | isBasisVar v' -> getGroupVar v'
-                   _ -> C.assertError ("Algebra.hs: Unable to force" ++
-                                " substitution to produce basis variable")
-
-instance C.Subst Term Gen Subst where
-   emptySubst = emptySubst
-   destroyer = destroyer
-   substitute = substitute
-   unify = unify
-   compose = compose
-   absenceSubst = absenceSubst
-
--- Matching and instantiation
-
-newtype Env = Env (Set Id, IdMap) deriving (Eq, Ord)
-
-instance Show Env where
-    showsPrec _ (Env (v, r)) =
-        showString "Env (\n " . shows v .
-        showChar ',' . showMap r . showChar ')'
-
--- An environment may contain an explicit identity mapping, whereas a
--- substitution is erroneous if it has one.  The set of variables
--- associated with a map is the variables in the range that were
--- generated by matching and should be treated as variables when using
--- unification to perform matching.  The other variables in the range
--- are treated as constants.
-
--- An environment contains an IdMap and the set of variables
--- generated while matching.
-
-emptyEnv :: Env
-emptyEnv = Env (S.empty, emptyIdMap)
-
--- Apply a substitution created my matching
-instantiate :: Env -> Term -> Term
-instantiate (Env (_, r)) t = idSubst r t
-
--- Is every variable in t in the domain of r?
-matched :: Env -> Term -> Bool
-matched (Env (_, r)) t = idMapped r t
-
--- Apply a substitution to the range of an environment
-substUpdate :: Env -> Subst -> Env
-substUpdate (Env (x, r)) s =
-  Env (x, M.map (substitute s) r)
-
--- Matching
-
-type GenEnv = (Gen, Env)
-
--- The matcher has the property that when pattern P and term T match
--- then instantiate (match P T emptyEnv) P = T.
-
--- Important discipline to maintain during match:
--- Terms are either "source" or "destination / flex" terms, and these two
--- categories should be kept strictly separate.
---   the first parameter is a source term.
---   the second parameter is a destination/flex term.
---   v is a set of destination/flex IDs.
---   g is a generator for the destination/flex algebra
---   variables in the domain of r are source variables
---   terms in the range of r are destination/flex terms.
-
-{-
-xmatch ::  Term -> Term -> GenEnv -> [GenEnv]
-xmatch x y e@(g, _)
-  | badGen g x =
-      error ("match: " ++ show g ++ ": " ++ show x)
-  | badGen g y =
-      error ("match: " ++ show g ++ ": " ++ show y)
-  | otherwise =
-      match x y e
---}
-
-match ::  Term -> Term -> GenEnv -> [GenEnv]
-match (I x) t (g, Env (v, r)) =
-  case M.lookup x r of
-    Nothing -> [(g, Env (v, M.insert x t r))]
-    Just t' -> if t == t' then [(g, Env (v, r))] else []
-match (C c) (C c') ge = if c == c' then [ge] else []
-match (F Base [t0]) (F Base [t1]) ge =
-  matchBase t0 t1 ge
-match (F Bltk u) (F Bltk u') ge =
-  L.nub $ matchLists u u' ge ++ matchLists u (reverse u') ge
-match (F s u) (F s' u') ge
-  | s == s' = matchLists u u' ge
-match (F Invk [t]) t' ge =
-  match t (F Invk [t']) ge
-match (G t) (G t') (g, Env (v, r)) =
-  do
-    (v', g', r') <- matchGroup t t' v g r
-    return (g', Env(v', r'))
-match (D x) t (g, Env (v, r)) =
-  case M.lookup x r of
-    Nothing -> [(g, Env (v, M.insert x t r))]
-    Just t' -> if t == t' then [(g, Env (v, r))] else []
-match (Z p) (Z p') r = if p == p' then [r] else []
-match _ _ _ = []
-
--- On input t, outputs (b, e) such that if t is of sort base then
--- t = b^e and b is a variable or (gen).
--- If t is not of sort base, outputs (t, 1).
-calcBase :: Term -> (Term, Group)
-calcBase (I x) = ((I x), M.empty)
-calcBase (F Genr _) = (F Genr [], M.empty)
-calcBase (F Exp [(I x), G e]) = ((I x), e)
-calcBase (F Exp [F Genr _, G e]) = (F Genr [], e)
-calcBase (F Exp [F Exp [b, G e1], G e2]) = calcBase (F Exp [b, G $ mul e1 e2])
--- Well-formed versions.  Is this necessary?
-calcBase (F Base [I x]) = (F Base [I x], M.empty)
-calcBase (F Base [F Genr _]) = (F Base [F Genr []], M.empty)
-calcBase (F Base [F Exp [(I x), G e]]) = (F Base [I x], e)
-calcBase (F Base [F Exp [F Genr _, G e]]) = (F Base [F Genr []], e)
-calcBase (F Base [F Exp [F Exp [b, G e1], G e2]]) = calcBase (F Base [F Exp [b, G $ mul e1 e2]])
-calcBase t = (t, M.empty)
-
--- matchBase: the two terms were both encapsulated in F Base [].
--- feed the appropriate inputs to matchExp.
--- Take h to mean h^1 for either base variable h or h = (gen).
--- Fall back to match algorithm when left side is F Genr [].
-
-matchBase :: Term -> Term -> GenEnv -> [GenEnv]
--- matchBase x y (g, _)
---   | badGen g (F Base [x]) =
---     error ("matchBase: " ++ show g ++ ": " ++ show x)
---   | badGen g (F Base [y]) =
---     error ("matchBase: " ++ show g ++ ": " ++ show y)
-matchBase (F Exp [t0, G t1]) (F Exp [t0', G t1']) ge
-  = matchExp t0 t1 t0' t1' ge
-matchBase (F Exp [t0, G t1]) (I x) ge
-  = matchExp t0 t1 (I x) (M.empty) ge
-matchBase (F Exp [t0, G t1]) (F Genr []) ge
-  = matchExp t0 t1 (F Genr []) (M.empty) ge
-matchBase (I x) (F Exp [t0', G t1']) ge
-  = matchExp (I x) (M.empty) t0' t1' ge
-matchBase (I x) (I y) ge
-  = matchExp (I x) (M.empty) (I y) (M.empty) ge
-matchBase (I x) (F Genr []) ge
-  = matchExp (I x) (M.empty) (F Genr []) (M.empty) ge
-matchBase t0 t1 ge
-  = match t0 t1 ge
-
-{-
-  case M.lookup x r of
-    Nothing -> match (I x) (F Exp [b,e]) (g, Env (v,r))
-    Just (F Exp [b',e']) -> if (bb == bb') then
-                match (G M.empty) (G (mul ee (invert ee'))) (g, Env (v, r)) else []
-                where
-                  (bb', ee') = calcBase (F Exp [b',e'])
-    Just (I y) -> if ((I y) == bb) then
-                    match (G M.empty) (G ee) (g, Env (v, r)) else []
-    Just _ -> []
-  where
-    (bb, ee) = calcBase t1
-match (F Base [I x]) (F Base [I y]) (g, Env (v, r)) =
-  case M.lookup x r of
-    Nothing -> match (I x) (I y) (g, Env (v,r))
-    Just (F Exp [b',e']) -> if (bb' == (I y)) then
-                match (G M.empty) (G ee') (g, Env (v,r)) else []
-                where
-                  (bb', ee') = calcBase (F Exp [b',e'])
-    Just _ -> match (I x) (I y) (g, Env (v, r))
--}
-
--- matchExp: not guaranteed that inputs are not F Exp expressions.
--- guaranteed that t0 is either an I x or an F Exp [] term.
--- guaranteed that t0' is I x, F Genr, or F Exp.
--- in match t0 t1 t0' t1' ge: t0 and t1 are source material, t0', t1' are destination/flex material.
--- Both t0 and t0' should not be F Exp, though, as this would indicate a non-canonical form.
-matchExp ::  Term -> Group -> Term -> Group -> GenEnv -> [GenEnv]
-matchExp (F Exp [t0, G e]) t1 _ _ _ =
-    error ("Algebra.matchExp: Input not in canonical form" ++ show (F Exp [F Exp [t0, G e], G t1]))
-matchExp _ _ (F Exp [t0, G e]) t1 _ =
-    error ("Algebra.matchExp: Input not in canonical form" ++ show (F Exp [F Exp [t0, G e], G t1]))
--- Force both inputs into canonical form
---matchExp (F Exp [t0, G e]) t1 t0' t1' ge =
---    matchExp t0 (mul e t1) t0' t1' ge
---matchExp t0 t1 (F Exp [t0', G e]) t1' ge =
---    matchExp t0 t1 t0' (mul e t1') ge
-matchExp (I x) t1 t0' t1' ge@(g, Env (v, r)) =
-    case M.lookup x r of
-      -- if x is already mapped, it needs to be mapped to a power of the base of t0'
-      Just t  -- t is destination/flex material
-          | fst (calcBase t0') == fst (calcBase t) ->
-            match (G t1) (G (mul t1' (mul (snd $ calcBase t0') (invert (snd $ calcBase t))))) ge
-          | otherwise -> []
-      _ -> matchLists [I x, G t1] [F Exp [t0', G w], G (mul t1' (invert w))]
-           (g', Env (S.insert wid v, r))
-      where
-        (g', wid) = freshId g "w"
-        w = groupVarGroup wid
-matchExp (F Genr []) t1 t0' t1' ge =
-    matchLists [F Genr [], G t1] [t0', G t1'] ge
-matchExp t e t' e' _ = error ("Algebra.matchExp: Bad match term" ++ show t ++ show e ++ show t' ++ show e')
-
--- in matchLists u u' ge: u is a list of source terms and u' is a list of destination/flex terms.
-matchLists :: [Term] -> [Term] -> GenEnv -> [GenEnv]
-matchLists [] [] ge = [ge]
-matchLists (t : u) (t' : u') ge =
-  do
-    ge' <- match t t' ge
-    matchLists u u' ge'
-matchLists _ _ _ = []
-
--- Matching in a group
-
--- t0 is the pattern
--- t1 is the target term
--- v is the set of previously freshly generated variables
--- g is the generator
-
--- Returns complete set of unifiers.  Each unifier includes the set of
--- variables freshly generated and a generator.
-
-matchGroup ::  Group -> Group -> Set Id -> Gen ->
-               IdMap -> [(Set Id, Gen, IdMap)]
-matchGroup t0 t1 v g r =
-  let (t0', t1') = merge t0 t1 r       -- Apply subst to LHS
-      (v', g', r') = genVars v g t0' r -- Gen vars for non-fresh vars
-      d = mkInitMatchDecis v' t1' in -- Ensure expns on RHS stay distinct
-  case partition (groupSubst r' t0') t1' v' of
-    ([], []) -> return (v', g', r')
-    ([], t) -> constSolve t v' g' r' d -- No variables of sort expr here
-    (t0, t1) -> solve t0 t1 v' g' r' d
-
--- Apply subst to LHS and add results to RHS
-merge ::  Group -> Group -> IdMap -> (Group, Group)
-merge t t' r =
-    (group t0, t0')
-    where
-      (t0, t0') = loop (M.assocs t) ([], t')
-      loop [] acc = acc
-      loop (p@(x, (_, c)) : t0) (t1, t1') =
-          case M.lookup x r of
-            Nothing -> loop t0 (p : t1, t1')
-            Just (G t) ->
-                loop t0 (t1, mul (expg t (negate c)) t1')
-            Just t ->
-                error $ "Algebra.merge: expecting an expn but got " ++ show t
-
--- Generate vars for each non-fleshly generated vars
-genVars :: Set Id -> Gen -> Group -> IdMap -> (Set Id, Gen, IdMap)
-genVars v g t r =
-  M.foldlWithKey genVar (v, g, r) t
-  where
-    genVar (v, g, r) x (be, _)
-      | S.member x v = (v, g, r)
-      | otherwise =
-        (S.insert x' v, g', M.insert x (groupVar be x') r)
-        where
-          (g', x') = cloneId g x
-
--- This was the long used version, but it generates fresh vars fo all
--- vars in t.
-{-
-genVars :: Set Id -> Gen -> Group -> IdMap -> (Set Id, Gen, IdMap)
-genVars v g t r =
-  M.foldlWithKey genVar (v, g, r) t
-  where
-    genVar (v, g, r) x (be, _) =
-      (S.insert x' v, g', M.insert x (groupVar be x') r)
-      where
-        (g', x') = cloneId g x
---}
-
--- A set of decisions records expn variables that have been identified
--- and those that are distinct.
-data Decision t = Decision
-  { same :: [(t, t)],
-    dist :: [(t, t)] }
-  deriving Show
-
--- Create an initial set of decisions
-mkDecis :: Decision Id
-mkDecis =
-  Decision {
-    same = [],
-    dist = [] }
-
--- Ensure non-freshly generated bases elements in t are never identified
-mkInitMatchDecis :: Set Id -> Group -> Decision Id
-mkInitMatchDecis vs t =
-  mkDecis { dist = [(x, y) | x <- v, y <- v, x /= y] }
-  where
-    v = [x | (x, (be, _)) <- M.assocs t, be == Rndx, not $ S.member x vs]
-
--- Move fresh variables on the RHS of the equation to the LHS
--- Move variables of sort expn on the LHS to the RHS
-partition ::  Group -> Group -> Set Id -> ([Maplet], [Maplet])
-partition t0 t1 v =
-  (M.assocs lhs, M.assocs rhs)
-  where
-    (v1, c1) = M.partitionWithKey g t1 -- Fresh variables go in v1
-    g x y = S.member x v && f y        -- only when they are exprs
-    (v0, c0) = M.partition f t0        -- Basis elements go in c0
-    f (be, _) = be == Expt
-    lhs = mul v0 (invert v1)
-    rhs = mul c1 (invert c0)
-
--- Solve equation when there are no variables of sort expr on LHS.
--- Treat all variables as constants.
-constSolve :: [Maplet] -> Set Id -> Gen -> IdMap ->
-              Decision Id -> [(Set Id, Gen, IdMap)]
-constSolve t v g r d
-  | any (\(_, (be, _)) -> be == Expt) t = [] -- Fail expr var is on RHS
-  | otherwise = constSolve1 t v g r d    -- All vars are expn
-
-constSolve1 :: [Maplet] -> Set Id -> Gen ->
-               IdMap -> Decision Id -> [(Set Id, Gen, IdMap)]
-constSolve1 [] v g r _ = return (v, g, r)
-constSolve1 t v g r d =
-  case orientDecis v $ nextDecis d t of
-    [] -> []                    -- All decisions already made
-    ((x, y):_) ->               -- Pick first undecided pair
-      distinct ++ identified
-      where
-        distinct = constSolve1 t v g r neq
-        neq = d {dist = (x, y):(y, x):dist d} -- Add new constraints
-        -- eliminate x
-        identified = constSolve1 t' v' g r' d'
-        t' = identify x y t     -- Equate x y in t
-        v' = S.delete x v       -- Eliminate x in v
-        r' = eliminate x y' r   -- And in r
-        y' = groupVar Rndx y
-        d' = d {same = (x, y):same d} -- And note decision
-
--- Find a pair of variables for which no decision has been made.
-nextDecis :: Decision Id -> [Maplet] -> [(Id, Id)]
-nextDecis d t =
-  [(x, y) | x <- vars, y <- vars, x < y,
-    not $ decided d x y]
-  where
-    vars = foldr f [] t
-    f (x, (Rndx, _)) v = x:v
-    f (_, (Expt, _)) v = v
-    decided d x y =             -- Is x and y decided?
-      u == v ||
-      any f (dist d)
-      where
-        u = chase x       -- Find canonical representitive for x and y
-        v = chase y
-        f (w, z) = chase w == u && chase z == v
-        chase = listChase (same d)
-
--- Find canonical representive of the set of identified variables.
-listChase :: Eq t => [(t, t)] -> t -> t
-listChase d x =
-  case lookup x d of
-    Nothing -> x
-    Just y -> listChase d y
-
--- Ensure first var in pair is in v.
-orientDecis :: Set Id -> [(Id, Id)] -> [(Id, Id)]
-orientDecis v undecided =
-  map f undecided
-  where
-    f (x, y)
-      | S.notMember x v = (y, x)
-      | otherwise = (x, y)
-
--- Modify t by replacing x by y.
-identify :: Id -> Id -> [Maplet] -> [Maplet]
-identify x y t =
-  case lookup x t of
-    Nothing -> error ("Algebra.identify: bad lookup of " ++ show x
-                      ++ " in " ++ show t)
-    Just (_, c) ->
-      filter f (map g t)
-      where
-        f (z, (_, c)) = z /= x && c /= 0
-        g m@(z, (be, d))
-          | z == y = (z, (be, c + d))
-          | otherwise = m
-
--- Solve when variables of sort expr are on LHS.  This involves
--- solving using the group axioms.  The algorithm for matching in the
--- group without added constant symbols is the same as the one for
--- unification with constant symbols.
---
--- For this description, additive notation is used for the group.  To
--- show sums, we write
---
---     sum[i] c[i]*x[i] for c[0]*x[0] + c[1]*x[1] + ... + c[n-1]*x[n-1].
---
--- The unification problem is to solve
---
---     sum[i] c[i]*x[i] = sum[j] d[j]*y[j]
---
--- where x[i] is a variable and y[j] is a constant symbol.
---
--- The algorithm used to find solutions is described in Vol. 2 of The
--- Art of Computer Programming / Seminumerical Alorithms, 2nd Ed.,
--- 1981, by Donald E. Knuth, pg. 327.
---
--- The algorithm's initial values are the linear equation (c,d) and an
--- empty substitution s.
---
--- 1.  Let c[i] be the smallest non-zero coefficient in absolute value.
---
--- 2.  If c[i] < 0, multiply c and d by -1 and goto step 1.
---
--- 3.  If c[i] = 1, a general solution of the following form has been
--- found:
---
---       x[i] = sum[j] -c'[j]*x[j] + d[k] for all k
---
---  where c' is c with c'[i] = 0.  Use the equation to eliminate x[i]
---  from the range of the current substitution s.  If variable x[i] is
---  in the original equation, add the mapping to substitution s.
---
--- 4.  If c[i] divides every coefficient in c,
---
---     * if c[i] divides every constant in d, divide c and d by c[i]
---       and goto step 3,
---
---     * otherwise fail because there is no solution.  In this case
---       expn vars must be identified.
---
--- 5.  Otherwise, eliminate x[i] as above in favor of freshly created
--- variable x[n], where n is the length of c.
---
---      x[n] = sum[j] (c[j] div c[i] * x[j])
---
--- Goto step 1 and solve the equation:
---
---      c[i]*x[n] + sum[j] (c[j] mod c[i])*x[j] = d[k] for all k
-
-solve ::  [Maplet] -> [Maplet] -> Set Id -> Gen ->
-          IdMap -> Decision Id -> [(Set Id, Gen, IdMap)]
-solve t0 t1 v g r d =
-  let (x, ci, i) = smallest t0 in -- ci is the smallest coefficient,
-  case compare ci 0 of            -- x is its variable, i its position
-    GT -> agSolve x ci i t0 t1 v g r d
-    LT -> agSolve x (-ci) i (mInverse t0) (mInverse t1) v g r d -- Step 2
-    EQ -> C.assertError "Algebra.solve: zero coefficient found"
-
--- Find the factor with smallest coefficient in absolute value.
--- Returns the variable, the coefficient, and the position within the
--- list.
-smallest :: [Maplet] -> (Id, Int, Int)
-smallest [] = C.assertError "Algebra.smallest given an empty list"
-smallest t =
-  loop (Id (0, "x")) 0 0 0 0 t
-  where
-    loop v ci i _ _ [] = (v, ci, i)
-    loop v ci i a j ((x, (_, c)):t) =
-      if a < abs c then
-        loop x c j (abs c) (j + 1) t
-      else
-        loop v ci i a (j + 1) t
-
--- The group axioms are abbreviated by AG.
-agSolve :: Id -> Int -> Int -> [Maplet] -> [Maplet] -> Set Id -> Gen ->
-          IdMap -> Decision Id -> [(Set Id, Gen, IdMap)]
-agSolve x 1 i t0 t1 v g r _ =    -- Solve for x and return answer
-  return (S.delete x v, g, eliminate x t r) -- Step 3
-  where
-    t = G $ group (t1 ++ (mInverse (omit i t0)))
-agSolve x ci i t0 t1 v g r d
-  | divisible ci t0 =           -- Step 4
-    if divisible ci t1 then     -- Solution found
-      agSolve x 1 i (divide ci t0) (divide ci t1) v g r d
-    else         -- No possible solution without identifying variables
-      identSolve x ci i t0 t1 v g r d
-  | otherwise =                 -- Step 5, eliminate x in favor of x'
-      solve t0' t1 (S.insert x' $ S.delete x v) g' r' d
-      where
-        (g', x') = cloneId g x
-        t = G $ group ((x', (Expt, 1)) :
-                       mInverse (divide ci (omit i t0)))
-        r' = eliminate x t r
-        t0' = (x', (Expt, ci)) : modulo ci (omit i t0)
-
-eliminate :: Id -> Term -> IdMap -> IdMap
-eliminate x t r =
-  M.map (idSubst (M.singleton x t)) r
-
-omit :: Int -> [a] -> [a]
-omit 0 (_:l) = l
-omit n _ | n < 0 = C.assertError "Algebra.omit: negative number given to omit"
-omit n (_:l) = omit (n - 1) l
-omit _ [] = C.assertError "Algebra.omit: number given to omit too large"
-
-divisible :: Int -> [Maplet] -> Bool
-divisible ci t =
-  all (\(_, (_, c)) -> mod c ci == 0) t
-
-divide :: Int -> [Maplet] -> [Maplet]
-divide ci t = map (mMapCoef $ flip div ci) t
-
-modulo :: Int -> [Maplet] -> [Maplet]
-modulo ci t =
-  [(x, (be, c')) |
-   (x, (be, c)) <- t,
-   let c' = mod c ci,
-   c' /= 0]
-
--- Explore two choices as to whether to identify a pair of variables.
-identSolve :: Id -> Int -> Int -> [Maplet] -> [Maplet] -> Set Id -> Gen ->
-              IdMap -> Decision Id -> [(Set Id, Gen, IdMap)]
-identSolve z ci i t0 t1 v g r d =
-  case orientDecis v $ nextDecis d t1 of
-    [] -> []
-    ((x, y):_) ->
-      distinct ++ identified
-      where
-        distinct = identSolve z ci i t0 t1 v g r neq
-        neq = d {dist = (x, y):(y, x):dist d}
-        -- eliminate x
-        identified = agSolve z ci i t0 t1' v' g r' d'
-        t1' = identify x y t1   -- Equate x y in t1
-        v' = S.delete x v       -- Eliminate x in v
-        r' = eliminate x y' r   -- And in r
-        y' = groupVar Rndx y
-        d' = d {same = (x, y):same d}
-
-{-
-nonTrivialEnv :: GenEnv -> GenEnv
-nonTrivialEnv (g, Env (v, r)) =
-    nonGroupEnv (M.assocs r) M.empty []
-    where
-      nonGroupEnv [] env grp =
-          groupEnv g v env grp grp
-      nonGroupEnv ((x, I y):r) env grp
-          | x == y = nonGroupEnv r env grp
-      nonGroupEnv ((x, G y):r) env grp
-          | isGroupVar y && varId (G y) == x =
-              nonGroupEnv r env grp
-          | otherwise = nonGroupEnv r env ((x, y):grp)
-      nonGroupEnv ((x, y):r) env grp = nonGroupEnv r (M.insert x y env) grp
-
-groupEnv :: Gen -> Set Id -> IdMap -> [(Id, Group)] -> [(Id, Group)] -> GenEnv
-groupEnv g v env grp [] =
-    (g, Env (v, foldl (\env (x, y) -> M.insert x (G y) env) env grp))
-groupEnv g v env grp ((x, t):map)
-    | M.lookup x t /= Just 1 = groupEnv g v env grp map
-    | otherwise =
-        let (t0, t1) = partition M.empty (mul t (M.singleton x (-1))) v in
-        case matchGroup (group t0) (group t1) S.empty g of
-          Nothing -> groupEnv g v env grp map
-          Just (v', g', subst, _) ->
-              let grp' = L.delete (x, t) grp
-                  grp'' = L.map (\(x, t) -> (x, groupSubst subst t)) grp' in
-              groupEnv g' (S.union v' v) env grp'' grp''
--}
-
--- Cast an environment into a substitution by filtering out trivial
--- bindings.
-
-substitution :: Env -> Subst
-substitution (Env (_, r)) =
-    Subst $ M.filterWithKey nonTrivialBinding r
-
--- Add type information to an environment, and return it as a list of
--- associations.
-
-reify :: [Term] -> Env -> [(Term, Term)]
-reify domain (Env (_, env)) =
-    map (loop domain) $ M.assocs env
-    where
-      loop [] (x, _) =
-          error $ "Algebra.reify: variable missing from domain " ++ idName x
-      loop (I x : _) (y, t)
-          | x == y = (I x, t)
-      loop (F Text [I x] : _) (y, t)
-          | x == y = (F Text [I x], F Text [t])
-      loop (F Data [I x] : _) (y, t)
-          | x == y = (F Data [I x], F Data [t])
-      loop (F Name [I x] : _) (y, t)
-          | x == y = (F Name [I x], F Name [t])
-      loop (F Skey [I x] : _) (y, t)
-          | x == y = (F Skey [I x], F Skey [t])
-      loop (F Akey [I x] : _) (y, t)
-          | x == y = (F Akey [I x], F Akey [t])
-      loop (F Base [I x] : _) (y, t)
-          | x == y = (F Base [I x], F Base [t])
-      loop (F Tag [I x] : _) (y, t)
-          | x == y = (F Tag [I x], F Tag [t])
-      loop (G x : _) (y, G t)
-          | isGroupVar x && varId (G x) == y = (G x, G t)
-      loop (D x : _) (y, t)
-          | x == y = (D x, t)
-      loop (_ : domain) pair = loop domain pair
-
--- Ensure the range of an environment contains only variables and that
--- the environment is injective.
-
-  {-
-matchRenaming (gen, Env (v, e)) = True
-    nonGrp S.empty (M.elems e) &&
-    groupMatchRenaming v gen (M.foldrWithKey grp M.empty e)
-    where
-      nonGrp _ [] = True
-      nonGrp s (I x:e) =
-          not (S.member x s) && nonGrp (S.insert x s) e
-      nonGrp s (F Invk [I x]:e) =
-          not (S.member x s) && nonGrp (S.insert x s) e
-      nonGrp s (G _:e) = nonGrp s e -- Check group bindings elsewhere
-      nonGrp _ _ = False
-      grp x (G t) map = M.insert x t map
-      grp _ _ map = map
--}
-
-strdMatch ::  Term -> Int -> GenEnv -> [GenEnv]
-strdMatch t p env = match t (Z p) env
-
-strdLookup :: Env -> Term -> Maybe Int
-strdLookup env t =
-    case instantiate env t of
-     Z p -> Just p
-     _ -> Nothing
-
-strdUpdate :: Env -> (Int -> Int) -> Env
-strdUpdate (Env (x, r)) f =
-  Env (x, M.map h r)
-  where
-    h (Z z) = Z $ f z
-    h t = t
-
-instance C.Env Term Gen Subst Env where
-   emptyEnv = emptyEnv
-   instantiate = instantiate
---   match = xmatch
-   match = match
-   substitution = substitution
-   reify = reify
-   substUpdate = substUpdate
-   matched = matched
-   strdMatch = strdMatch
-   strdLookup = strdLookup
-   strdUpdate = strdUpdate
-
--- Term specific loading functions
-
-loadVars :: MonadFail m => Gen -> [SExpr Pos] -> m (Gen, [Term])
-loadVars gen sexprs =
-    do
-      pairs <- mapM loadVarPair sexprs
-      (g, vars) <- foldM loadVar (gen, []) (concat pairs)
-      return (g, reverse vars)
-
-loadVarPair :: MonadFail m => SExpr Pos -> m [(SExpr Pos, SExpr Pos)]
-loadVarPair (L _ (x:y:xs)) =
-    case reverse (x:y:xs) of
-      t : vs -> return [(v,t) | v <- reverse vs]
-      [] -> error "Algebra.loadVarPair: [] cannot happen"
-      
-loadVarPair x = fail (shows (annotation x) "Malformed vars declaration")
-
-loadVar :: MonadFail m => (Gen, [Term]) -> (SExpr Pos, SExpr Pos) ->
-           m (Gen, [Term])
-loadVar (gen, vars) (S pos name, S pos' sort) =
-    case loadLookup pos vars name of
-      Right _ ->
-          fail (shows pos "Duplicate variable declaration for " ++ name)
-      Left _ ->
-          do
-            let (gen', x) = freshId gen name
-            p <- mkVar pos' sort x
-            return (gen', p : vars)
-loadVar _ (x,_) = fail (shows (annotation x) "Bad variable syntax")
-
-mkVar :: MonadFail m => Pos -> String -> Id -> m Term
-mkVar pos sort x
-  | sort == "mesg" = return $ I x
-  | sort == "text" = return $ F Text [I x]
-  | sort == "data" = return $ F Data [I x]
-  | sort == "name" = return $ F Name [I x]
-  | sort == "skey" = return $ F Skey [I x]
-  | sort == "akey" = return $ F Akey [I x]
-  | sort == "base" = return $ F Base [I x]
-  | sort == "tag" = return $ F Tag [I x]
-  | sort == "expt" = return $ groupVar Expt x
-  | sort == "rndx" = return $ groupVar Rndx x
-  -- Legecy names
-  | sort == "expr" = return $ groupVar Expt x
-  | sort == "expn" = return $ groupVar Rndx x
-  | sort == "strd" = return $ D x
-  | otherwise = fail (shows pos "Sort " ++ sort ++ " not recognized")
-
-loadLookup :: Pos -> [Term] -> String -> Either String Term
-loadLookup pos [] name =
-  Left (shows pos $ "Identifier " ++ name ++ " unknown")
-loadLookup pos (t : u) name =
-    let name' = idName (varId t) in
-    if name' == name then Right t else loadLookup pos u name
-
-loadLookupStrict :: Pos -> [Term] -> String -> Either String Term
-loadLookupStrict pos vars name =
-  case loadLookup pos vars name of
-    Left msg -> Left msg
-    Right t | not (isExpr t) || isRndx t -> Right t
-    _ -> Left (shows pos $ "Identifier " ++ name ++
-               " is an expt--must be a rndx")
-
-loadLookupName :: MonadFail m => Pos -> [Term] -> String -> m Term
-loadLookupName pos vars name =
-    either fail f (loadLookup pos vars name)
-    where
-      f t@(F Name [I _]) = return t
-      f _ = fail (shows pos $ "Expecting " ++ name ++ " to be a name")
-
-loadLookupAkey :: MonadFail m => Pos -> [Term] -> String -> m Term
-loadLookupAkey pos vars name =
-    either fail f (loadLookup pos vars name)
-    where
-      f t@(F Akey [I _]) = return t
-      f _ = fail (shows pos $ "Expecting " ++ name ++ " to be an akey")
-
--- Load term and check that it is well-formed.
--- Load in strict mode when the second argument is true.
--- In this case, make sure that when an exponent is a carried term,
--- the exponent is a rndx variable reference.
-loadTerm :: MonadFail m => [Term] -> Bool -> SExpr Pos -> m Term
-loadTerm vars True (S pos s) =
-    either fail return (loadLookupStrict pos vars s)
-loadTerm vars False (S pos s) =
-    either fail return (loadLookup pos vars s)
-loadTerm _ _ (Q _ t) =
-    return (F Tag [(C t)])
-loadTerm vars strict (L pos (S _ s : l)) =
-    case lookup s loadDispatch of
-      Nothing -> fail (shows pos "Keyword " ++ s ++ " unknown")
-      Just f -> f pos strict vars l
-loadTerm _ _ x = fail (shows (annotation x) "Malformed term")
-
-type LoadFunction m = Pos -> Bool -> [Term] -> [SExpr Pos] -> m Term
-
-loadDispatch :: MonadFail m => [(String, LoadFunction m)]
-loadDispatch =
-    [("pubk", loadPubk)
-    ,("privk", loadPrivk)
-    ,("invk", loadInvk)
-    ,("ltk", loadLtk)
-    ,("bltk", loadBltk)
-    ,("gen", loadGen)
-    ,("exp", loadExp)
-    ,("one", loadOne)
-    ,("rec", loadRec)
-    ,("mul", loadMul)
-    ,("cat", loadCat)
-    ,("enc", loadEnc)
-    ,("hash", loadHash)
-    ]
-
--- Atom constructors: pubk privk invk ltk
-
-loadPubk :: MonadFail m => LoadFunction m
-loadPubk _ _ vars [S pos s] =
-    do
-      t <- loadLookupName pos vars s
-      return $ F Akey [F Pubk [I $ varId t]]
-loadPubk _ _ vars [Q _ c, S pos s] =
-    do
-      t <- loadLookupName pos vars s
-      return $ F Akey [F Pubk [C c, I $ varId t]]
-loadPubk pos _ _ _ = fail (shows pos "Malformed pubk")
-
-loadPrivk :: MonadFail m => LoadFunction m
-loadPrivk _ _ vars [S pos s] =
-    do
-      t <- loadLookupName pos vars s
-      return $ F Akey [F Invk [F Pubk [I $ varId t]]]
-loadPrivk _ _ vars [Q _ c, S pos s] =
-    do
-      t <- loadLookupName pos vars s
-      return $ F Akey [F Invk [F Pubk [C c, I $ varId t]]]
-loadPrivk pos _ _ _ = fail (shows pos "Malformed privk")
-
-loadInvk :: MonadFail m => LoadFunction m
-loadInvk _ _ vars [S pos s] =
-    do
-      t <- loadLookupAkey pos vars s
-      return $ F Akey [F Invk [I $ varId t]]
-loadInvk _ _ vars [L _ [S _ pubk, S pos s]]
-  | pubk == "pubk" =
-    do
-      t <- loadLookupName pos vars s
-      return $ F Akey [F Invk [F Pubk [I $ varId t]]]
-loadInvk _ _ vars [L _ [S _ pubk, Q _ c, S pos s]]
-  | pubk == "pubk" =
-    do
-      t <- loadLookupName pos vars s
-      return $ F Akey [F Invk [F Pubk [C c, I $ varId t]]]
-loadInvk pos _ _ _ = fail (shows pos "Malformed invk")
-
-loadLtk :: MonadFail m => LoadFunction m
-loadLtk _ _ vars [S pos s, S pos' s'] =
-    do
-      t <- loadLookupName pos vars s
-      t' <- loadLookupName pos' vars s'
-      return $ F Skey [F Ltk [I $ varId t, I $ varId t']]
-loadLtk pos _ _ _ = fail (shows pos "Malformed ltk")
-
-loadBltk :: MonadFail m => LoadFunction m
-loadBltk _ _ vars [S pos s, S pos' s'] =
-    do
-      t <- loadLookupName pos vars s
-      t' <- loadLookupName pos' vars s'
-      return $ F Skey [F Bltk [I $ varId t, I $ varId t']]
-loadBltk pos _ _ _ = fail (shows pos "Malformed bltk")
-
--- Base and exponents
-
-loadGen :: MonadFail m => LoadFunction m
-loadGen _ _ _ [] =
-    return $ F Base [F Genr []]
-loadGen pos _ _ _ = fail (shows pos "Malformed gen")
-
-loadExp :: MonadFail m => LoadFunction m
-loadExp _ _ vars [x, x'] =
-    do
-      t <- loadBase vars x
-      t' <- loadExpr vars False x'
-      return $ F Base [idSubst emptyIdMap $ F Exp [t, G t']]
-loadExp pos _ _ _ = fail (shows pos "Malformed exp")
-
-loadBase :: MonadFail m => [Term] -> SExpr Pos -> m Term
-loadBase vars x =
-    do
-      t <- loadTerm vars False x
-      case t of
-        F Base [t] -> return t
-        _ -> fail (shows (annotation x) "Malformed base")
-
-loadExpr :: MonadFail m => [Term] -> Bool -> SExpr Pos -> m Group
-loadExpr vars False x =
-    do
-      t <- loadTerm vars False x
-      case t of
-        G t -> return t
-        _ -> fail (shows (annotation x) "Malformed expr")
-loadExpr vars True x = loadExpr vars False x
---loadExpr _ True x =
---    do
---      fail (shows (annotation x) "Disallowed bare exponent")
-
-loadOne :: MonadFail m => LoadFunction m
-loadOne _ False _ [] =
-    return $ G M.empty
-loadOne pos True _ _ = fail (shows pos "Disallowed bare exponent")
-loadOne pos _ _ _ = fail (shows pos "Malformed one")
-
-loadRec :: MonadFail m => LoadFunction m
-loadRec _ False vars [x] =
-    do
-      t <- loadExpr vars False x
-      return $ G $ invert t
-loadRec pos True _ _ = fail (shows pos "Disallowed bare exponent")
-loadRec pos _ _ _ = fail (shows pos "Malformed rec")
-
-loadMul :: MonadFail m => LoadFunction m
-loadMul _ False vars xs =
-    do
-      t <- foldM f M.empty xs
-      return $ G t
-    where
-      f acc x =
-          do
-            t <- loadExpr vars False x
-            return $ mul t acc
-loadMul pos True _ _ = fail (shows pos "Disallowed bare exponent")
-
--- Term constructors: cat enc
-
-loadCat :: MonadFail m => LoadFunction m
-loadCat _ strict vars (l : ls) =
-    do
-      ts <- mapM (loadTerm vars strict) (l : ls)
-      return $ foldr1 (\a b -> F Cat [a, b]) ts
-loadCat pos _ _ _ = fail (shows pos "Malformed cat")
-
-loadEnc :: MonadFail m => LoadFunction m
-loadEnc pos strict vars (l : l' : ls) =
-    do
-      let (butLast, last) = splitLast l (l' : ls)
-      t <- loadCat pos strict vars butLast
-      t' <- loadTerm vars False last
-      return $ F Enc [t, t']
-loadEnc pos _ _ _ = fail (shows pos "Malformed enc")
-
-splitLast :: a -> [a] -> ([a], a)
-splitLast x xs =
-    loop [] x xs
-    where
-      loop z x [] = (reverse z, x)
-      loop z x (y : ys) = loop (x : z) y ys
-
-loadHash :: MonadFail m => LoadFunction m
-loadHash _ _ vars (l : ls) =
-   do
-     ts <- mapM (loadTerm vars False) (l : ls)
-     return $ F Hash [foldr1 (\a b -> F Cat [a, b]) ts]
-loadHash pos _ _ _ = fail (shows pos "Malformed hash")
-
--- Term specific displaying functions
-
-newtype Context = Context [(Id, String)] deriving Show
-
-displayVars :: Context -> [Term] -> [SExpr ()]
-displayVars _ [] = []
-displayVars ctx vars =
-    case map (displayVar ctx) vars of
-      (v,t):pairs ->
-        loop t [v] pairs
-        where
-          loop t vs [] = [L () (reverse (t:vs))]
-          loop t vs ((v',t'):xs)
-            | t == t' = loop t (v':vs) xs
-            | otherwise = L () (reverse (t:vs)):loop t' [v'] xs
-      [] -> error "Algebra.displayVars: [] cannot happen"
-
-displayVar :: Context -> Term -> (SExpr (), SExpr ())
-displayVar ctx (I x) = displaySortId "mesg" ctx x
-displayVar ctx (F Text [I x]) = displaySortId "text" ctx x
-displayVar ctx (F Data [I x]) = displaySortId "data" ctx x
-displayVar ctx (F Name [I x]) = displaySortId "name" ctx x
-displayVar ctx (F Skey [I x]) = displaySortId "skey" ctx x
-displayVar ctx (F Akey [I x]) = displaySortId "akey" ctx x
-displayVar ctx (F Base [I x]) = displaySortId "base" ctx x
-displayVar ctx (F Tag [I x]) = displaySortId "tag" ctx x
-displayVar ctx t@(G x)
-    | isBasisVar x = displaySortId "rndx" ctx (varId t)
-    | isGroupVar x = displaySortId "expt" ctx (varId t)
-displayVar ctx (D x) = displaySortId "strd" ctx x
-displayVar _ _ =
-    C.assertError "Algebra.displayVar: term not a variable with its sort"
-
-displaySortId :: String -> Context -> Id -> (SExpr (), SExpr ())
-displaySortId sort ctx x = (displayId ctx x, S () sort)
-
-displayId :: Context -> Id -> SExpr ()
-displayId (Context ctx) x =
-    case lookup x ctx of
-      Nothing ->
-          let msg = idName x ++ " in a display context" in
-          error $ "Algebra.displayId: Cannot find variable " ++ msg
-      Just name -> S () name
-
-displayTerm :: Context -> Term -> SExpr ()
-displayTerm ctx (I x) = displayId ctx x
-displayTerm ctx (F Text [I x]) = displayId ctx x
-displayTerm ctx (F Data [I x]) = displayId ctx x
-displayTerm ctx (F Name [I x]) = displayId ctx x
-displayTerm ctx (F Skey [I x]) = displayId ctx x
-displayTerm ctx (F Skey [F Ltk [I x, I y]]) =
-    L () [S () "ltk", displayId ctx x, displayId ctx y]
-displayTerm ctx (F Skey [F Bltk [I x, I y]])
-  |  x > y = displayTerm ctx (F Skey [F Bltk [I y, I x]])
-  | otherwise = L () [S () "bltk", displayId ctx x, displayId ctx y]
-displayTerm ctx (F Akey [t]) =
-    case t of
-      I x -> displayId ctx x
-      F Invk [I x] -> L () [S () "invk", displayId ctx x]
-      F Pubk [I x] -> L () [S () "pubk", displayId ctx x]
-      F Pubk [C c, I x] -> L () [S () "pubk", Q () c, displayId ctx x]
-      F Invk [F Pubk [I x]] -> L () [S () "privk", displayId ctx x]
-      F Invk [F Pubk [C c, I x]] ->
-          L () [S () "privk", Q () c, displayId ctx x]
-      _ -> error ("Algebra.displayAkey: Bad term " ++ show t)
-displayTerm ctx (F Tag [I x]) = displayId ctx x
-displayTerm ctx (F Base [t]) =
-    displayBase t
-    where
-      displayBase (I x) = displayId ctx x
-      displayBase (F Genr []) =
-          L () [S () "gen"]
-      displayBase (F Exp [t0, G t1]) =
-          L () [S () "exp", displayBase t0, displayTerm ctx (G t1)]
-      displayBase t = error ("Algebra.displayBase: Bad term " ++ show t)
-displayTerm ctx (G t) =
-    displayExpn t
-    where
-      displayExpn t
-          | M.null t = L () [S () "one"]
-          | otherwise =
-              case factors t of
-                [f] -> displayFactor f
-                fs -> L () (S () "mul" : map displayFactor fs)
-      displayFactor (x, (_, n))
-          | n >= 0 = displayId ctx x
-          | otherwise = L () [S () "rec", displayId ctx x]
-displayTerm _ (F Tag [(C t)]) = Q () t
-displayTerm _ (C t) = Q () t
-displayTerm ctx (F Cat [t0, t1]) =
-    L () (S () "cat" : displayTerm ctx t0 : displayList ctx t1)
-displayTerm ctx (F Enc [t0, t1]) =
-    L () (S () "enc" : displayEnc ctx t0 t1)
-displayTerm ctx (F Hash [t]) =
-    L () (S () "hash" : displayList ctx t)
-displayTerm ctx (D x) = displayId ctx x
-displayTerm _ (Z z) = N () z
-displayTerm _ t = error ("Algebra.displayTerm: Bad term " ++ show t)
-
-displayList :: Context -> Term -> [SExpr ()]
-displayList ctx (F Cat [t0, t1]) = displayTerm ctx t0 : displayList ctx t1
-displayList ctx t = [displayTerm ctx t]
-
-displayEnc :: Context -> Term -> Term -> [SExpr ()]
-displayEnc ctx (F Cat [t0, t1]) t = displayTerm ctx t0 : displayEnc ctx t1 t
-displayEnc ctx t0 t1 = [displayTerm ctx t0, displayTerm ctx t1]
-
-displayEnv :: Context -> Context -> Env -> [SExpr ()]
-displayEnv ctx ctx' (Env (_, r)) =
-    map (\(x, t) -> L () [displayTerm ctx x, displayTerm ctx'' t]) r'
-    where
-      r' = map (\(x, t) -> (I x, inferSort t)) $ M.assocs r
-      ctx'' = addToContext ctx' (map snd r')
-
--- displaySubst c s displays a substitution s in context c, where some
--- variables that occur in s might not be in c.  Enough sort
--- inference is performed so as to allow the extension of the context.
-displaySubst :: Context -> Subst -> [SExpr ()]
-displaySubst ctx (Subst r) =
-    map (\(x, t) -> L () [displayTerm ctx' x, displayTerm ctx' t]) r'
-    where
-      r' = map (\(x, t) -> (I x, inferSort t)) $ M.assocs r
-      ctx' = foldl (\ctx (x, t) -> addToContext ctx [x, t]) ctx r'
-
-inferSort :: Term -> Term
-inferSort t@(F Invk _) = F Akey [t]
-inferSort t@(F Pubk _) = F Akey [t]
-inferSort t@(F Ltk _) = F Skey [t]
-inferSort t@(F Bltk _) = F Skey [t]
-inferSort t@(F Genr _) = F Base [t]
-inferSort t@(F Exp _) = F Base [t]
-inferSort t = t
-
-emptyContext :: Context
-emptyContext = Context []
-
--- Generate names for output renaming as necessary.
--- Assumes the input is a list of term that are well-formed
-addToContext :: Context -> [Term] -> Context
-addToContext ctx u =
-    foldl (foldVars varContext) ctx u
-
-varContext :: Context -> Term -> Context
-varContext ctx t =
-    let x = varId t
-        name = rootName $ idName x in
-    if hasId ctx x then
-        ctx
-    else
-        if hasName ctx name then
-            extendContext ctx x (genName ctx name)
-        else
-            extendContext ctx x name
-
-hasId :: Context -> Id -> Bool
-hasId (Context ctx) id =
-    maybe False (const True) (lookup id ctx)
-
-hasName :: Context -> String -> Bool
-hasName (Context ctx) name =
-    maybe False (const True) (L.find ((name ==) . snd) ctx)
-
-extendContext :: Context -> Id -> String -> Context
-extendContext (Context ctx) x name =
-    Context $ (x, name) : ctx
-
-genName :: Context -> String -> String
-genName ctx name =
-    loop 0
-    where
-      root = '-' : reverse name
-      loop :: Int -> String
-      loop n =
-          let name' = revapp root (show n) in
-          if hasName ctx name' then
-              loop (n + 1)
-          else
-              name'
-      revapp [] s = s
-      revapp (c : cs) s = revapp cs (c : s)
-
-rootName :: String -> String
-rootName name =
-    noHyphen 0 name
-    where
-      noHyphen _ [] = name
-      noHyphen i (c : s)
-          | c == '-' = hyphen i (i + 1) s
-          | otherwise = noHyphen (i + 1) s
-      hyphen i _ [] = rootName $ take i name
-      hyphen i j (c : s)
-          | isDigit c  = hyphen i (j + 1) s
-          | otherwise = noHyphen j (c : s)
-
-instance C.Context Term Gen Subst Env Context where
-    emptyContext = emptyContext
-    addToContext = addToContext
-    displayVars = displayVars
-    displayTerm = displayTerm
-    displayEnv = displayEnv
-    displaySubst = displaySubst
-
-instance C.Algebra Term Place Gen Subst Env Context
diff --git a/src/CPSA/Displayer.hs b/src/CPSA/Displayer.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Displayer.hs
@@ -0,0 +1,395 @@
+-- Displays protocols and preskeletons as S-expressions.
+
+-- Copyright (c) 2009 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module CPSA.Displayer (displayProt, displayPreskel, displayNode, displayFact, displayForm) where
+
+import qualified Data.List as L
+import qualified Data.Set as S
+import CPSA.Lib.SExpr
+import CPSA.Algebra
+import CPSA.Channel
+import CPSA.Protocol
+import CPSA.Strand
+
+{--
+import System.IO.Unsafe
+z :: Show a => a -> b -> b
+z x y = unsafePerformIO (print x >> return y)
+
+zz :: Show a => a -> a
+zz x = z x x
+--}
+
+-- Display of protocols
+
+displayProt :: Prot -> SExpr ()
+displayProt p =
+    L () (S () "defprotocol" : S () (pname p) : S () (alg p) : rs)
+    where
+      rs = foldl f ((map displayUserRule (userrules p)) ++
+                    (map displayGenRule (generatedrules p)) ++
+                    pcomment p)
+                   (reverse (roles p))
+      f rs r = displayRole r : rs
+
+displayRule :: String -> Rule -> SExpr ()
+displayRule s r =
+  L () (S () s :
+        S () (rlname r) :
+        displayGoal (rlgoal r) :
+        rlcomment r)
+
+displayUserRule :: Rule -> SExpr ()
+displayUserRule = displayRule "defrule"
+
+displayGenRule :: Rule -> SExpr ()
+displayGenRule = displayRule "defgenrule"
+
+displayGoal :: Goal -> SExpr ()
+displayGoal g =
+  L () [S () "forall",
+        L () (displayVars ctx vars),
+        displayImpl ctx g]
+  where
+    ctx = varsContext vars
+    vars = uvars g
+
+displayImpl :: Context -> Goal -> SExpr ()
+displayImpl ctx g =
+  L () [S () "implies",
+        displayConj ctx (antec g),
+        displayDisj ctx (consq g) ]
+
+displayDisj :: Context -> [([Term], [AForm])] -> SExpr ()
+displayDisj _ [] = L () [S () "false"]
+displayDisj ctx [conj] = displayExistential ctx conj
+displayDisj ctx disj =
+  L () (S () "or" : map (displayExistential ctx) disj)
+
+displayExistential :: Context -> ([Term], [AForm]) -> SExpr ()
+displayExistential ctx ([], conj) =
+  displayConj ctx conj
+displayExistential ctx (evars, conj) =
+  L () [S () "exists",
+        L () (displayVars ctx' evars),
+        displayConj ctx' conj]
+  where
+    ctx' = addToContext ctx evars
+
+displayConj :: Context -> [AForm] -> SExpr ()
+-- displayConj _ [] = error "DisplayConj: empty conjunction"
+displayConj ctx [form] = displayForm ctx form
+displayConj ctx forms = L () (S () "and" : map (displayForm ctx) forms)
+
+displayForm :: Context -> AForm -> SExpr ()
+displayForm ctx (Length r s l) =
+  L () [S () "p", Q () (rname r), displayTerm ctx  s, displayTerm ctx l]
+displayForm ctx (Param r p _ s t) =
+  L () [S () "p", Q () (rname r), displayParam r p,
+        displayTerm ctx s, displayTerm ctx t]
+displayForm ctx (Prec (x, i) (y, j)) =
+  L () [S () "prec", displayTerm ctx x, displayTerm ctx i,
+        displayTerm ctx y, displayTerm ctx j]
+displayForm ctx (Non t) =
+  L () [S () "non", displayTerm ctx t]
+displayForm ctx (Pnon t) =
+  L () [S () "pnon", displayTerm ctx t]
+displayForm ctx (Uniq t) =
+  L () [S () "uniq", displayTerm ctx t]
+displayForm ctx (UniqAt t (s, i)) =
+  L () [S () "uniq-at", displayTerm ctx t,
+        displayTerm ctx s, displayTerm ctx i]
+displayForm ctx (Ugen t) =
+  L () [S () "ugen", displayTerm ctx t]
+displayForm ctx (UgenAt t (s, i)) =
+  L () [S () "ugen-at", displayTerm ctx t,
+        displayTerm ctx s, displayTerm ctx i]
+displayForm ctx (GenStV t) =
+  L () [S () "gen-st", displayTerm ctx t]
+displayForm ctx (Conf t) =
+  L () [S () "conf", displayTerm ctx t]
+displayForm ctx (Auth t) =
+  L () [S () "auth", displayTerm ctx t]
+displayForm ctx (AFact name fs) =
+  L () (S () "fact" : S () name : map (displayTerm ctx) fs)
+displayForm ctx (Equals t1 t2) =
+  L () [S () "=", displayTerm ctx t1, displayTerm ctx t2]
+displayForm ctx (Component t1 t2) =
+  L () [S () "component", displayTerm ctx t1, displayTerm ctx t2]
+displayForm ctx (Commpair (i,j) (i',j')) =
+    L () [S () "comm-pr",
+            displayTerm ctx i, displayTerm ctx j,
+            displayTerm ctx i', displayTerm ctx j']
+displayForm ctx (SameLocn (i,j) (i',j')) =
+    L () [S () "same-locn",
+            displayTerm ctx i, displayTerm ctx j,
+            displayTerm ctx i', displayTerm ctx j']
+displayForm ctx (StateNode (i,j)) =
+    L () [S () "state-node",
+            displayTerm ctx i, displayTerm ctx j]
+displayForm ctx (Trans (i,j)) =
+    L () [S () "trans",
+            displayTerm ctx i, displayTerm ctx j]
+displayForm ctx (LeadsTo (i,j) (i',j')) =
+    L () [S () "leads-to",
+            displayTerm ctx i, displayTerm ctx j,
+            displayTerm ctx i', displayTerm ctx j']
+
+displayParam :: Role -> Term -> SExpr ()
+displayParam r t =
+  case displayTerm (varsContext (rvars r)) t of
+    S () var -> Q () var
+    _ -> error "displayParam: bad parameter"
+
+-- Display of roles
+
+sansPts :: [Term] -> [Term]
+sansPts = filter notPt
+
+sansNestedPts :: [(Maybe Int, Term)] -> [(Maybe Int, Term)]
+sansNestedPts = filter (\(_,t) -> notPt t)
+
+sansPtMaplets :: [(Term, Term)] -> [(Term, Term)]
+sansPtMaplets = filter (\(v,_) -> notPt v)
+
+displayRole :: Role -> SExpr ()
+displayRole r =
+    L () (S () "defrole" :
+          S () (rname r) :
+          L () (S () "vars" : displayVars ctx (sansPts vars)) :
+          L () (S () "trace" : displayTraceNoPt ctx (rtrace r)) :
+          displayOptional "non-orig" (displayLenTerms ctx
+                                      (sansNestedPts (rnon r)))
+          (displayOptional "pen-non-orig" (displayLenTerms ctx
+                                           (sansNestedPts (rpnon r)))
+           (displayOptional "uniq-orig" (displayTerms ctx
+                                         (sansPts (runique r)))
+             (displayOptional "uniq-gen" (displayTerms ctx (runiqgen r))
+              (displayOptional "absent" (displayTermPairs ctx (rabsent r))
+               (displayOptional "conf" (displayTerms ctx (rconf r))
+                (displayOptional "auth" (displayTerms ctx (rauth r))
+                 (rcomment r))))))))
+    where
+      ctx = varsContext $ rvars r
+      vars = sansPts $ rvars r
+
+varsContext :: [Term] -> Context
+varsContext vars =
+    addToContext emptyContext vars
+
+displayTerms :: Context -> [Term] -> [SExpr ()]
+displayTerms ctx ts = map (displayTerm ctx) (L.sort ts)
+
+displayLenTerms :: Context -> [(Maybe Int, Term)] -> [SExpr ()]
+displayLenTerms ctx ts = map (displayLenTerm ctx) (L.sort ts)
+
+displayLenTerm :: Context -> (Maybe Int, Term) -> SExpr ()
+displayLenTerm ctx (Nothing, t) = displayTerm ctx t
+displayLenTerm ctx (Just len, t) = L () [N () len, displayTerm ctx t]
+
+displayTermPair :: Context -> (Term, Term) -> SExpr ()
+displayTermPair ctx (x, y) =
+  L () [displayTerm ctx x, displayTerm ctx y]
+
+displayTermPairs :: Context -> [(Term, Term)] -> [SExpr ()]
+displayTermPairs ctx ts = map (displayTermPair ctx) (L.sort ts)
+
+displayOptional :: String -> [SExpr ()] -> [SExpr ()] -> [SExpr ()]
+displayOptional _ [] rest = rest
+displayOptional key value rest =
+    L () (S () key : value) : rest
+
+displayTrace :: Context -> Trace -> [SExpr ()]
+displayTrace ctx trace =
+    map displayDt trace
+    where
+      displayDt (In (Plain t)) =
+        L () [S () "recv", displayTerm ctx t]
+      displayDt (In (ChMsg ch t)) =
+          case isLocn ch of
+            True ->  L () [S () "load", displayTerm ctx ch, displayTerm ctx t]
+            False -> L () [S () "recv", displayTerm ctx ch, displayTerm ctx t]
+      displayDt (Out (Plain t)) =
+        L () [S () "send", displayTerm ctx t]
+      displayDt (Out (ChMsg ch t)) =
+          case isLocn ch of
+            True ->  L () [S () "stor", displayTerm ctx ch, displayTerm ctx t]
+            False -> L () [S () "send", displayTerm ctx ch, displayTerm ctx t]
+
+displayTraceNoPt :: Context -> Trace -> [SExpr ()]
+displayTraceNoPt ctx trace =
+    map displayDt trace
+    where
+      displayDt (In (Plain t)) =
+        L () [S () "recv", displayTerm ctx t]
+      displayDt (In (ChMsg ch t)) =
+          case isLocn ch of
+            True ->  L () [S () "load", displayTerm ctx ch, displayTermNoPt ctx t]
+            False -> L () [S () "recv", displayTerm ctx ch, displayTerm ctx t]
+      displayDt (Out (Plain t)) =
+        L () [S () "send", displayTerm ctx t]
+      displayDt (Out (ChMsg ch t)) =
+          case isLocn ch of
+            True ->  L () [S () "stor", displayTerm ctx ch, displayTermNoPt ctx t]
+            False -> L () [S () "send", displayTerm ctx ch, displayTerm ctx t]
+
+-- Display of preskeletons
+
+displayPreskel :: Preskel -> [SExpr ()] -> SExpr ()
+displayPreskel k rest =
+    L () (S () "defskeleton" :
+          S () (pname (protocol k)) :
+          L () (S () "vars" : displayVars ctx vars ) :
+               -- (sansPts vars) lets
+               -- try printing points
+                foldr f (displayRest k ctx rest) (insts k))
+    where
+      ctx = varsContext vars
+      vars = kfvars k ++ kvars k
+      f i rest = displayInst ctx i : rest
+
+-- Display the remainder of a preskeleton
+displayRest :: Preskel -> Context -> [SExpr ()] -> [SExpr ()]
+displayRest k ctx rest =
+    displayOptional "precedes" (displayOrdering (orderings k))
+     (displayOptional "non-orig" (displayTerms ctx (sansPts (knon k)))
+      (displayOptional "pen-non-orig" (displayTerms ctx (sansPts (kpnon k)))
+       (displayOptional "uniq-orig" (displayTerms ctx (sansPts (kunique k)))
+        (displayOptional "uniq-gen" (displayTerms ctx (kuniqgen k))
+         (displayOptional "absent" (displayTermPairs ctx (kabsent k))
+          (displayOptional "precur" (displayNodes (kprecur k))
+           (displayOptional "gen-st" (displayTerms ctx (kgenSt k))
+            (displayOptional "conf" (displayTerms ctx (kconf k))
+             (displayOptional "auth" (displayTerms ctx (kauth k))
+              (displayOptional "facts" (displayFacts ctx (kfacts k))
+               (displayOptional "leads-to" (displayOrdering (nodePairsOfSkel k))
+                (displayOptional "priority" priorities
+                 (kcomment k ++
+                  (displayOptional "rule" (L.sort (map (S ()) (krules k)))
+                   (displayOperation k ctx
+                    (displayOptional "traces" traces rest))))))))))))))))
+    where
+      priorities = map displayPriority (kpriority k)
+      traces = map (L () . displayTrace ctx . trace) (insts k)
+
+displayFacts :: Context -> [Fact] -> [SExpr ()]
+displayFacts ctx =
+    foldr
+    (\(Fact name fs) soFar ->
+         case name of
+           "trans" -> soFar
+           _ -> (L () (S () name : map (displayFterm ctx) fs)) : soFar)
+    []
+
+displayFact :: Context -> Fact -> SExpr ()
+displayFact ctx (Fact name fs) =
+  L () (S () name : map (displayFterm ctx) fs)
+
+displayFterm :: Context -> FTerm -> SExpr ()
+displayFterm _ (FSid s) = N () s
+displayFterm ctx (FTerm t) = displayTerm ctx t
+
+displayPriority :: (Node, Int) -> SExpr ()
+displayPriority (n, p) =
+    L () [displayNode n, N () p]
+
+displayInst :: Context -> Instance -> SExpr ()
+displayInst ctx s =
+    case listenerTerm s of
+      Just t -> L () [S () "deflistener", displayTerm ctx t]
+      Nothing ->
+          L () (S () "defstrand" :
+                S () (rname r) :
+                N () (height s) :
+                map (displayMaplet rctx ctx) maplets)
+          where
+            r = role s
+            domain = rvars r
+            maplets = L.sort (sansPtMaplets (reify domain (env s)))
+            rctx = varsContext domain
+
+displayMaplet :: Context -> Context -> (Term, Term) -> SExpr ()
+displayMaplet domain range (x, t)=
+    L () [displayTerm domain x, displayTerm range t]
+
+displayOrdering :: [Pair] -> [SExpr ()]
+displayOrdering orderings =
+    map displayPair (L.sort orderings)
+
+displayPair :: Pair -> SExpr ()
+displayPair (n0, n1) =
+    L () [displayNode n0, displayNode n1]
+
+displayNode :: Node -> SExpr ()
+displayNode (s, p) = L () [N () s, N () p]
+
+displayNodes :: [Node] -> [SExpr ()]
+displayNodes ns = map displayNode (L.sort ns)
+
+-- Display the reason the preskeleton was created
+displayOperation :: Preskel -> Context -> [SExpr ()] -> [SExpr ()]
+displayOperation k ctx rest =
+    case operation k of
+      New -> rest
+      Contracted subst cause ->
+          let substitution = displaySubst ctx subst in
+          displayCause (L () (S () "contracted" : substitution)) cause
+      Displaced s s' role height cause ->
+          displayCause
+          (L () [S () "displaced", N () s, N () s', S () role, N () height])
+          cause
+      AddedStrand role height cause ->
+          displayCause
+          (L () [S () "added-strand", S () role, N () height]) cause
+      AddedListener t cause ->
+          displayCause
+          (L () [S () "added-listener", displayOpCmt ctx $ CM $ Plain t]) cause
+      AddedAbsence t1 t2 cause ->
+          displayCause (L () [S () "added-absence", displayOpCmt ctx $ TM t1,
+                                displayOpCmt ctx $ TM t2]) cause
+      Generalized method ->
+          let desc = displayMethod ctx method in
+          L () (S () "operation" : S () "generalization" : desc) : rest
+      Collapsed s s' ->
+          let desc = [N () s, N () s'] in
+          L () (S () "operation" : S () "collapsed" : desc) : rest
+    where
+      displayCause op (Cause dir node critical escape) =
+          L () (S () "operation" :
+                displayDirection dir :
+                op :
+                displayOpCmt ctx critical :
+                displayNode node :
+                displayOpCmts ctx (S.toList escape)) : rest
+      displayDirection Encryption = S () "encryption-test"
+      displayDirection Nonce = S () "nonce-test"
+      displayDirection Channel = S () "channel-test"
+      displayMethod _ (Deleted node) =
+          [S () "deleted", displayNode node]
+      displayMethod _ (Weakened (n0, n1)) =
+          [S () "weakened", L () [displayNode n0, displayNode n1] ]
+      displayMethod ctx (Separated t) =
+          [S () "separated", displayOpCmt ctx $ TM t]
+      displayMethod ctx (Forgot t) =
+          [S () "forgot", displayOpCmt ctx $ TM t]
+
+-- Terms in the operation field may contain variables not in the skeleton
+displayOpCmt :: Context -> CMT -> SExpr ()
+displayOpCmt ctx cm = displayCmt (addToContext ctx $ cmtTerms cm) cm
+
+displayOpCmts :: Context -> [CMT] -> [SExpr ()]
+displayOpCmts ctx ts =
+  map (displayCmt $ addToContext ctx ts') (L.sort ts)
+  where
+    ts' = concatMap cmtTerms ts
+
+displayCmt :: Context -> CMT -> SExpr ()
+displayCmt ctx (CM (Plain t)) = displayTerm ctx t
+displayCmt ctx (CM (ChMsg ch t)) =
+  L () [S () "ch-msg", displayTerm ctx ch, displayTerm ctx t]
+displayCmt ctx (TM t) = displayTerm ctx t
diff --git a/src/CPSA/GenRules.hs b/src/CPSA/GenRules.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/GenRules.hs
@@ -0,0 +1,645 @@
+
+-- Generates rules when loading protocols from S-Expressions.
+
+-- Copyright (c) 2009 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module CPSA.GenRules where
+
+import qualified Data.List as L
+-- import CPSA.Lib.SExpr
+import CPSA.Signature (Sig)
+import CPSA.Algebra
+import CPSA.Channel
+import CPSA.Protocol
+import CPSA.LoadFormulas
+
+{--
+import System.IO.Unsafe
+
+z :: Show a => a -> b -> b
+z x y = unsafePerformIO (print x >> return y)
+
+zz :: Show a => a -> a
+zz x = z x x
+
+zb :: Show a => a -> Bool -> Bool
+zb a False = z a False
+zb _ b = b
+
+zn :: Show a => a -> Maybe b -> Maybe b
+zn x Nothing = z x Nothing
+zn _ y = y
+
+zf :: Show a => a -> Bool -> Bool
+zf x False = z x False
+zf _ y = y
+
+zt :: Show a => a -> Bool -> Bool
+zt x True = z x True
+zt _ y = y
+
+zl :: Show a => [a] -> [a]
+zl a = z (length a) a
+
+--}
+
+-- Protocol Rules
+
+type Conjunction = [AForm]
+
+conjunctionOfConj :: Conj -> Conjunction
+conjunctionOfConj = map snd
+
+type Conjunctor = [Term] -> Conjunction -- Function which, given new
+                                        -- free variables, plugs them
+                                        -- in to yield a conjunction
+-- [Term] ->
+type Existor = Conjunctor
+
+-- Used to say:   -- Function which, given new
+                                        -- variables to bind
+                                        -- existentially, plugs them
+                                        -- in to yield a conjunctor
+
+ruleOfClauses :: Sig -> Gen -> String ->
+                 VarListSpec -> Conjunctor ->
+                 [([Term],Existor)] -> (Gen,Rule)
+ruleOfClauses sig g rn sortedVarLists antecedent evarDisjuncts =
+    let (g',uvars) = sortedVarsOfStrings sig g sortedVarLists in
+    let disjuncts =
+            map
+            (\(evars,existor) ->
+                 (evars,(existor -- evars
+                          -- use only the members
+                          -- of uvars that avoid names in evars
+                         (avoidByName evars uvars))))
+            evarDisjuncts in
+    (g',
+      (Rule { rlname = rn,
+              rlgoal =
+                  (Goal
+                   { uvars = uvars,
+                     antec = antecedent uvars,
+                     consq = disjuncts,
+                     concl = map snd disjuncts}),
+              rlcomment = [] }))
+    where
+      varOfName _ [] = Nothing
+      varOfName name (v : rest) =
+          if (name == varName v)
+          then Just v
+          else varOfName name rest
+
+      avoidByName evars uvars =
+          map (\uv ->
+                   case varOfName (varName uv) evars of
+                     Nothing -> uv
+                     Just ev -> ev)
+          uvars
+
+applyToSoleEntry :: (a -> b) ->  String -> [a] -> b
+applyToSoleEntry f _ [a] = f a
+applyToSoleEntry _ s _ = error s
+
+applyToThreeEntries :: (a -> a -> a -> b) -> String -> [a] -> b
+applyToThreeEntries f _ [a1,a2,a3] = f a1 a2 a3
+applyToThreeEntries _ s _ = error s
+
+applyToStrandVarAndParams :: (a -> [a] -> b) -> [a] -> String -> b
+applyToStrandVarAndParams _ [] s = error s
+applyToStrandVarAndParams f (a : rest) _ = f a rest
+
+-- foldM :: (Foldable t, Monad m) => (b -> a -> m b) -> b -> t a -> m b
+
+neqRules :: Sig -> Gen -> (Gen, [Rule])
+neqRules sig g =
+    foldr
+     (\sortName (g,rs) ->
+          let (g', r) =
+                  (ruleOfClauses sig g ("neqRl_" ++ sortName)
+                   [(sortName,["x"])]
+                   (applyToSoleEntry
+                    (\x -> [(AFact "neq" [x,x])])
+                    "neqrules:  Impossible var list.")
+                   [])       -- false conclusion
+          in
+          (g', r : rs))
+     (g,[])
+     ["indx", "strd", "mesg"]
+
+transRls :: Sig -> Gen -> Role -> [(Int,Int)] -> (Gen, [Rule])
+transRls sig g rl =
+    L.foldl
+     (\(g, rs) pair ->
+          let (g', r) = f g pair in
+          (g', r : rs))
+     (g, [])
+     where
+       f g (i,j) =
+           ruleOfClauses sig g ("trRl_" ++ (rname rl) ++ "-at-" ++ (show i))
+             [("strd",["z"])]
+             (applyToSoleEntry
+              (\z -> [(Length rl z (indxOfInt (j+1)))])
+              "transRules:  Impossible var list.")
+             [([],                   -- no existentially bound vars
+               (applyToSoleEntry
+                        (\z -> [(Trans (z, (indxOfInt i)))])
+                        "transRules:  Impossible var list."))]
+
+lastRecvInCS :: Role -> Int -> Int -> Int
+lastRecvInCS rl start end =
+    loop start $ drop (start+1) $ rtrace rl
+    -- i is always the index before the index of the first entry still
+    -- in c.
+    where
+      loop i ((In (ChMsg ch _)) : c)
+           | i < end && isLocn ch       = loop (i+1) c
+           | otherwise                  = i
+      loop i _                          = i
+
+csRules :: Sig -> Gen -> Role -> [(Int,Int)] -> (Gen, [Rule])
+csRules sig g rl =
+    L.foldl
+     (\(g, rs) (start,end) ->
+          (let (g', csRules) = f g start end in
+           (g', csRules ++ rs)))
+     (g,[])
+     where
+       f g start end =
+           let lastRecv = lastRecvInCS rl start end in
+           let (g',rs) = foldr (\ind (g,soFar) ->
+                                    let (g',r) = causeRule g rl start ind in
+                                    (g', (r : soFar)))
+                         (g,[])
+                         [start+1..lastRecv] in
+           foldr (\ind (g,soFar) ->
+                      let (g',r) = effectRule g rl end ind in
+                      (g', (r : soFar)))
+             (g',rs)
+             [lastRecv+1..end-1]
+
+       causeRule g rl start ind =
+           ruleOfClauses sig g
+             ("cau-" ++ (rname rl) ++ "-" ++ (show ind))
+             [("strd",["z", "z1"]), ("indx", ["i"])]
+             (applyToThreeEntries
+              (\z z1 i -> [(Length rl z (indxOfInt (ind+1))),
+                           (Prec -- LeadsTo
+                            (z1,i) (z,(indxOfInt ind)))])
+                      "csRules:  Impossible var list.")
+             [([],
+               (applyToThreeEntries
+                (\z z1 _ -> [Equals z z1])
+                "csRules:  Impossible var list.")),
+              ([],
+               (applyToThreeEntries
+                (\z z1 i -> [(Prec (z1,i) (z,(indxOfInt start)))])
+                "csRules:  Impossible var list."))]
+
+       effectRule g rl end ind =
+           ruleOfClauses sig g
+             ("eff-" ++ (rname rl) ++ "-" ++ (show ind))
+             [("strd",["z", "z1"]), ("indx", ["i"])]
+             (applyToThreeEntries
+              (\z z1 i -> [(Length rl z (indxOfInt (ind+1))),
+                           (Prec --LeadsTo
+                            (z, (indxOfInt ind)) (z1,i))])
+              "csRules:  Impossible var list.")
+             [([],
+               (applyToThreeEntries
+                (\z z1 _ -> [Equals z z1])
+                "csRules:  Impossible var list.")),
+              ([],
+               (applyToThreeEntries
+                (\z z1 i -> [(Length rl z (indxOfInt (end+1))),
+                             (Prec (z, (indxOfInt end)) (z1,i))])
+                "csRules:  Impossible var list."))]
+
+data FoundAt = FoundAt Int
+             | Missing Term
+
+-- Return the smallest height in the trace of rl at which all of the
+-- vars are found to have occurred, if found, or a missing var if no
+-- such height.
+varsUsedHeight :: Role -> [Term] -> FoundAt
+varsUsedHeight rl vars =
+    loop 0 vars
+    where
+      occ = flip firstOccurs rl -- return *index*
+      loop i [] = FoundAt (1+i) -- convert to height
+      loop i (v : rest) =
+          case occ v of
+            Nothing -> Missing v
+            Just j -> loop (max i j) rest
+
+boundVarNamesOfVarListSpec :: VarListSpec -> [String]
+boundVarNamesOfVarListSpec [] = []
+boundVarNamesOfVarListSpec ((_,names) : rest) =
+    L.nub $ names ++ boundVarNamesOfVarListSpec rest
+
+freeVarsInExistential :: ([Term],Existor) -> [Term]
+freeVarsInExistential (vars,c) =
+    let bvns = map varName vars in
+    concatMap
+    (\a -> filter (not . (flip elem bvns) . varName)
+           (aFreeVars [] a))
+    (c [])
+
+freeVarsInDisjunction :: [([Term],Existor)] -> [Term]
+freeVarsInDisjunction vcs =
+    L.nub
+     (foldr (\vc acc -> (freeVarsInExistential vc) ++ acc)
+      []
+      vcs)
+
+freeVarsInConjLists :: [([Term], Conj)] -> [Term]
+freeVarsInConjLists [] = []
+freeVarsInConjLists ((vars,conj) : rest) =
+    ((foldr (\(_,aForm) soFar -> aFreeVars soFar aForm)
+                []
+                conj)
+     L.\\ vars)
+    ++ (freeVarsInConjLists rest)
+
+-- Take the subset of fvars that have a name shared with some member
+-- of pvars
+freeVarsSubsetByName :: [Term] -> [Term] -> [Term]
+freeVarsSubsetByName fvars pvars =
+    loop fvars []
+    where
+      pvarNames = map varName pvars
+      loop [] soFar = reverse soFar
+      loop (fv : rest) soFar
+          | (varName fv) `elem` pvarNames =
+              loop rest (fv : soFar)
+          | otherwise =
+              loop rest soFar
+
+--   freeVarsNamedIn [] pvars = []
+--   freeVarsNamedIn (fv : rest) pvars =
+--       if (varName fv) `elem` (map varName pvars)
+--       then fv : freeVarsNamedIn rest pvars
+--       else freeVarsNamedIn rest pvars
+
+conclHeight :: Role -> [([Term], Conj)] -> FoundAt
+conclHeight _ [] = FoundAt 1
+conclHeight rl (disj : rest) =
+    case conclHeight rl rest of
+      Missing v -> Missing v
+      FoundAt j ->
+          case varsUsedHeight rl $ freeVarsInConjLists [disj] of
+            Missing v -> Missing v
+            FoundAt i -> FoundAt (max i j)
+
+renameApart :: String -> [Term] -> String
+renameApart prefix vars =
+    if not (prefix `elem` vns) then prefix
+    else
+        loop 0
+    where
+      vns = map varName vars
+      loop :: Int -> String
+      loop i =
+          let candidate = prefix ++ "-" ++ (show i) in
+          if not (candidate `elem` vns) then candidate
+          else
+              loop (i+1)
+
+ruleOfDisjAtHeight :: Sig -> Gen -> Role -> String -> [([Term],Existor)] -> Int -> (Gen, Rule)
+ruleOfDisjAtHeight sig g rl rulename disj ht =
+    let fvs = freeVarsInDisjunction disj in
+    ruleOfClauses
+    sig g rulename
+            (("strd", [renameApart "z" (concatMap fst disj)])
+             : varListSpecOfVars (freeVarsSubsetByName fvs (rvars rl)))
+            (\vars ->
+                 applyToStrandVarAndParams
+                 (\z pvars ->
+                      (Length rl z (indxOfInt ht))
+                      : (map
+                         (\v ->
+                              case paramOfName (varName v) rl of
+                                Nothing -> errorWithMsg v " not found."
+                                Just p ->
+                                    case firstOccurs p rl of
+                                      Nothing -> errorWithMsg v " not found."
+                                      Just i ->
+                                          if i < ht then (Param rl p (i+1) z v)
+                                          else errorWithMsg v
+                                                   (" introduced for " ++ (varName p) ++ " too high in role " ++ (rname rl) ++": " ++ (show i) ++
+                                                    " not below " ++ (show ht) ++ "in " ++ rulename ++ "."))
+                         pvars))
+                 vars
+                 "ruleOfDisjAtHeight:  vars not strand+prams?")
+            disj
+
+    where
+      errorWithMsg v tail =
+          error ("ruleOfDisjAtHeight:  Parameter " ++
+                 (varName v) ++ tail)
+
+genOneAssumeRl :: Sig -> Gen -> Role -> Int -> [([Term], Conj)] -> (Gen, Rule)
+genOneAssumeRl sig g rl n disjuncts =
+    case conclHeight rl disjuncts of
+      Missing v -> error ("genOneAssumeRl:  Variable not in role " ++ (rname rl)
+                         ++ ": " ++ (show (varName v)))
+      FoundAt ht ->
+          ruleOfDisjAtHeight
+          sig g rl ("assume-" ++ (rname rl) ++ "-" ++ (show n))
+                  (map (\(evars,conj) ->
+                            (evars,
+                             (\pvars ->
+                              case envsRoleParams rl g pvars of
+                                (_,e) : _ -> (map snd $ instantiateConj e conj)
+                                _ -> error ("genOneAssumeRl:  Parameter matching failed "
+                                            ++  (show pvars) ++ (rname rl)))))
+                   disjuncts)
+                  ht
+
+--
+--       where
+--         freeVars bndList conjunct = (aFreeVars [] conjunct) L.\\ bndList
+--
+--         vars = L.nub (concatMap (\(vars,conj) ->
+--                                      concatMap (freeVars vars) (map snd conj))
+--                       disjuncts)
+
+genAssumeRls :: Sig -> Gen -> Role -> [[([Term], Conj)]] -> (Gen, [Rule])
+genAssumeRls sig g rl disjunctLists =
+    (g',rls)
+    where
+      (g',rls,_) =
+          foldr (\ds (g, rs, n) ->
+                       (let (g', new_rule) = genOneAssumeRl sig g rl n ds in
+                        (g', new_rule : rs, n+1)))
+               (g, [], (0 :: Int))
+               disjunctLists
+
+genOneRelyGuarRl :: Sig -> Gen -> Role -> Int -> String -> [([Term], Conj)] -> (Gen, Rule)
+genOneRelyGuarRl sig g rl ht kind disjuncts =
+    case conclHeight rl disjuncts of
+      Missing v -> error ("genOneRelyGuarRl:  Variable not in role " ++ (rname rl)
+                         ++ ": " ++ (show (varName v)))
+      FoundAt fndHt | fndHt <= ht ->
+          ruleOfDisjAtHeight
+          sig g rl (kind ++ "-" ++ (rname rl) ++ "-" ++ (show ht))
+                  (map (\(evars,conj) ->
+                            (evars,
+                             (\pvars ->
+                              case envsRoleParams rl g pvars of
+                                (_,e) : _ -> (map snd $ instantiateConj e conj)
+                                _ -> error ("genOneAssumeRl:  Parameter matching failed "
+                                            ++  (show pvars) ++ (rname rl)))))
+                   disjuncts)
+                  ht
+        | otherwise -> error ("genOneRelyGuarRl:  Variable found above ht " ++ (show ht) ++
+                              " in " ++ (rname rl))
+
+genStateRls :: Sig -> Gen -> Role -> [Term] -> (Gen, [Rule])
+genStateRls sig g rl ts =
+    (g',rls)
+    where
+      (g',rls,_) =
+          foldr (\t (g, rs, n) ->
+                       (let (g', new_rule) = f g t n in
+                        (g', new_rule : rs, n+1)))
+               (g, [], (0 :: Int))
+               ts
+
+      -- vSpec t = ("strd", ["z"]) : varListSpecOfVars (varsInTerm t)
+
+      f g t n =
+          case varsUsedHeight rl (varsInTerm t) of
+            Missing v ->
+                error ("genStateRls:  In gen-st of "
+                       ++ (rname rl) ++ ": no occurrence of "
+                              ++ (show (displayTerm (addToContext emptyContext [t]) v)))
+            FoundAt ht ->
+                (ruleOfDisjAtHeight
+                 sig g rl ("gen-st-" ++ (rname rl) ++ "-" ++ (show n))
+                 [ -- One disjunct, no existentially bound variables
+                   ([],
+                   -- One conjunctor:
+                    (\pvars ->
+                         case envsRoleParams rl g pvars of
+                           (_,e) : _ -> [GenStV (instantiate e t)]
+                           [] -> error ("genStateRls:  Parameter matching failed "
+                                       ++  (show pvars) ++ (show t))))]
+                 ht)
+
+genFactRls :: Sig -> Gen -> Role -> [(String,[Term])] -> (Gen, [Rule])
+genFactRls sig g rl predarglists =
+        (g',rls)
+    where
+      (g',rls,_) =
+          foldr (\(pred,args) (g, rs, n) ->
+                     (let (g', new_rule) = f g pred args n in
+                      (g', new_rule : rs, n+1)))
+                    (g, [], (0 :: Int))
+                    predarglists
+
+      -- vSpec t = ("strd", ["z"]) : varListSpecOfVars (varsInTerm t)
+
+      f g pred args n =
+          case varsUsedHeight rl (concatMap varsInTerm args) of
+            Missing v ->
+                error ("genFactRls:  In fact of "
+                       ++ (rname rl) ++ ": no occurrence of "
+                              ++ (show $ varName v))
+            FoundAt ht ->
+                (ruleOfDisjAtHeight
+                 sig g rl ("fact-" ++ (rname rl) ++ "-" ++ pred ++ (show n))
+                 [ -- One disjunct, no existentially bound variables
+                   ([],
+                   -- One conjunctor:
+                    (\pvars ->
+                         case envsRoleParams rl g pvars of
+                           (_,e) : _ ->  [AFact pred (map (instantiate e) args)]
+                           _ -> error ("genFactRls:  Parameter matching failed "
+                                       ++  (show pvars) ++ (concatMap show args))))]
+                 ht)
+
+      {--
+    (g',rls)
+    where
+      (g',rls,_) =
+          foldr (\(pred,args) (g, rs, n) ->
+                       (let (g', new_rule) = f g pred args n in
+                        (g', new_rule : rs, n+1)))
+               (g, [], (0 :: Integer))
+               predarglists
+
+      vSpec args = ("strd", ["z"]) : varListSpecOfVars (varsInArgs args)
+
+      varsInArgs = concatMap varsInTerm
+
+      f g pred args n =
+          case varsUsedHeight rl (varsInArgs args) of
+            Missing v -> error ("genFactRls:  Unbound variable " ++ (show v)
+                               ++ " in fact of " ++ (rname rl) ++ ": "
+                               ++ pred ++ (show args))
+            FoundAt ht ->
+                ruleOfClauses sig g
+                  ("fact-" ++ (rname rl) ++ "-" ++ pred ++ (show n))
+                  (vSpec args)
+                  (\vars ->
+                       applyToStrandVarAndParams
+                       (\z pvars ->
+                            (Length rl z (indxOfInt ht))
+                            : (map
+                               (\v ->
+                                    case paramOfName (varName v) rl of
+                                      Nothing -> error ("genFactRls:  Parameter " ++
+                                                        (varName v) ++ " not found.")
+                                      Just p ->
+                                          case firstOccurs p rl of
+                                            Nothing -> error ("genFactRls:  Parameter " ++
+                                                              (varName v) ++ " not found.")
+                                            Just i -> (Param rl p (i+1) z v))
+                              pvars))
+                       vars
+                       "genFactRls:  vars not strand+params?")
+                  [([],
+                    (\_ vars ->
+                         applyToStrandVarAndParams
+                         (\_ pvars ->
+                              case envsRoleParams rl g [] pvars of
+                                [(_,e)] -> [AFact pred (map (instantiate e) args)]
+                                _ -> error "genFactRls:  Non-unary matching not implemented")
+                         vars
+                         "genFactRls:  vars not strand+params?"))]
+--}
+
+theVacuousRule :: Rule
+theVacuousRule =
+    (Rule { rlname = "vacuity",
+            rlgoal = Goal {uvars =  [],
+                           antec = [],
+                           consq = [([], [])], -- no bvs, no conjuncts
+                           concl = [[]]},
+            rlcomment = [] })
+
+scissorsRule :: Sig -> Gen -> (Gen, Rule)
+scissorsRule sig g =
+    case sortedVarsOfNames sig g "strd" ["z0","z1","z2"] of
+      (g, [z0,z1,z2]) ->
+          case sortedVarsOfNames sig g "indx" ["i0","i1","i2"] of
+            (g, [i0,i1,i2]) ->
+                (g, (Rule { rlname = "scissorsRule",
+                        rlgoal =
+                            Goal
+                            {uvars = [z0,z1,z2,i0,i1,i2],
+                             antec = [ -- useful for debugging:
+                                       -- (AFact "no-state-split" []),
+                                       (Trans (z0,i0)), (Trans (z1,i1)), (Trans (z2,i2)),
+                                       (LeadsTo (z0,i0) (z1,i1)), (LeadsTo (z0,i0) (z2,i2)) ],
+                             consq = [([],                -- no bvs
+                                       [(Equals z1 z2),   -- two eqns
+                                        (Equals i1 i2)])],
+                             concl = [[(Equals z1 z2),   -- two eqns
+                                       (Equals i1 i2)]]},
+                        rlcomment = [] }))
+            (g, _) -> (g, theVacuousRule)
+      (g, _) -> (g, theVacuousRule)
+
+shearsRule :: Sig -> Gen -> (Gen, Rule)
+shearsRule sig g =
+    case sortedVarsOfNames sig g "strd" ["z0","z1","z2"] of
+      (g, [z0,z1,z2]) ->
+          case sortedVarsOfNames sig g "indx" ["i0","i1","i2"] of
+            (g, [i0,i1,i2]) ->
+                (g, (Rule { rlname = "shearsRule",
+                        rlgoal =
+                            Goal
+                            {uvars = [z0,z1,z2,i0,i1,i2],
+                             antec = [ -- useful for debugging:
+                                       -- (AFact "no-state-split" []),
+                                       (Trans (z0,i0)), (Trans (z1,i1)), (Trans (z2,i2)),
+                                       (LeadsTo (z0,i0) (z1,i1)), (SameLocn (z0,i0) (z2,i2)),
+                                       (Prec (z0,i0) (z2,i2)) ],
+                             consq = [([],                -- no bvs
+                                       [(Equals z1 z2),   -- two eqns
+                                        (Equals i1 i2)]),
+                                     ([],                -- no bvs
+                                      -- (z1,i1) precedes (z2,i2)
+                                       [(Prec (z1, i1) (z2, i2))])],
+                             concl = [[(Equals z1 z2),   -- two eqns
+                                        (Equals i1 i2)],
+                                      -- (z1,i1) precedes (z2,i2)
+                                       [(Prec (z1, i1) (z2, i2))]]},
+                        rlcomment = [] }))
+            (g, _) -> (g, theVacuousRule)
+      (g, _) -> (g, theVacuousRule)
+
+invShearsRule :: Sig -> Gen -> (Gen, Rule)
+invShearsRule sig g =
+    case sortedVarsOfNames sig g "strd" ["z0","z1","z2"] of
+      (g, [z0,z1,z2]) ->
+          case sortedVarsOfNames sig g "indx" ["i0","i1","i2"] of
+            (g, [i0,i1,i2]) ->
+                (g, (Rule { rlname = "invShearsRule",
+                        rlgoal =
+                            Goal
+                            {uvars = [z0,z1,z2,i0,i1,i2],
+                             antec = [ -- useful for debugging:
+                                       -- (AFact "no-state-split" []),
+                                       (Trans (z0,i0)), (Trans (z1,i1)),
+                                       (SameLocn (z0,i0) (z1,i1)),
+                                       (LeadsTo (z1,i1) (z2,i2)), (Prec (z0,i0) (z2,i2)) ],
+                             consq = [([],                -- no bvs
+                                       [(Equals z0 z1),   -- two eqns
+                                        (Equals i0 i1)]),
+                                     ([],                -- no bvs
+                                      -- (z0, i0) precedes (z1,i1)
+                                       [(Prec (z0, i0) (z1, i1))])],
+                             concl = [[(Equals z0 z1),   -- two eqns
+                                        (Equals i0 i1)],
+                                      -- (z0, i0) precedes (z1,i1)
+                                       [(Prec (z0, i0) (z1, i1))]]},
+                        rlcomment = [] }))
+            (g, _) -> (g, theVacuousRule)
+      (g, _) -> (g, theVacuousRule)
+
+uninterruptibleRule :: Sig -> Gen -> (Gen, Rule)
+uninterruptibleRule sig g =
+    case sortedVarsOfNames sig g "strd" ["z0","z1","z2"] of
+      (g, [z0,z1,z2]) ->
+          case sortedVarsOfNames sig g "indx" ["i0","i1","i2"] of
+            (g, [i0,i1,i2]) ->
+                (g,
+                 (Rule { rlname = "no-interruption",
+                         rlgoal =
+                             Goal
+                             {uvars = [z0,z1,z2,i0,i1,i2],
+                              antec = [ (LeadsTo (z0,i0) (z2,i2)), (Trans (z1,i1)),
+                                        (SameLocn (z0,i0) (z1,i1)), (Prec (z0,i0) (z1,i1)),
+                                        (Prec (z1,i1) (z2,i2)) ],
+                              consq = [], -- implies False
+                              concl = []},
+                         rlcomment = [] }))
+            (g, _) -> (g, theVacuousRule)
+      (g, _) -> (g, theVacuousRule)
+
+cakeRule :: Sig -> Gen -> (Gen, Rule)
+cakeRule sig g =
+    case sortedVarsOfNames sig g "strd" ["z0","z1","z2"] of
+      (g, [z0,z1,z2]) ->
+          case sortedVarsOfNames sig g "indx" ["i0","i1","i2"] of
+            (g, [i0,i1,i2]) ->
+                (g,
+                 (Rule { rlname = "cakeRule",
+                         rlgoal =
+                             Goal
+                             {uvars = [z0,z1,z2,i0,i1,i2],
+                              antec = [ (Trans (z0,i0)), (Trans (z1,i1)),
+                                        (LeadsTo (z0,i0) (z1,i1)), (LeadsTo (z0,i0) (z2,i2)),
+                                        (Prec (z1,i1) (z2,i2)) ],
+                              consq = [], -- implies False
+                              concl = []},
+                         rlcomment = [] }))
+            (g, _) -> (g, theVacuousRule)
+      (g, _) -> (g, theVacuousRule)
diff --git a/src/CPSA/GoalSat/Main.hs b/src/CPSA/GoalSat/Main.hs
--- a/src/CPSA/GoalSat/Main.hs
+++ b/src/CPSA/GoalSat/Main.hs
@@ -22,12 +22,6 @@
       margin :: Int }           -- Output line length
     deriving Show
 
-defaultIndent :: Int
-defaultIndent = optIndent defaultOptions
-
-defaultMargin :: Int
-defaultMargin = optMargin defaultOptions
-
 main :: IO ()
 main =
     do
diff --git a/src/CPSA/Graph/Config.hs b/src/CPSA/Graph/Config.hs
--- a/src/CPSA/Graph/Config.hs
+++ b/src/CPSA/Graph/Config.hs
@@ -6,11 +6,7 @@
 -- modify it under the terms of the BSD License as published by the
 -- University of California.
 
-module CPSA.Graph.Config (Config(..), Notation(..), printer) where
-
-import CPSA.Lib.SExpr (SExpr)
-import CPSA.Lib.Printer (pp)
-import CPSA.Lib.Notation (printItem)
+module CPSA.Graph.Config (Config(..)) where
 
 data Config = Config
     { units :: String,          -- Unit of length
@@ -20,26 +16,14 @@
       gap :: Float,             -- Gap width in dashed lines
       mx :: Float,              -- Width of margin
       my :: Float,              -- Height of margin
-      tx :: Float,              -- Distance between tree levels
-      ty :: Float,              -- Distance between tree leaves
+      tx :: Float,              -- Distance between tree leaves
+      ty :: Float,              -- Distance between tree levels
       ta :: Float,              -- Font ascent
       td :: Float,              -- Font descent
       dx :: Float,              -- Distance between strands
       dy :: Float,              -- Distance between nodes
       br :: Float,              -- Bullet radius
       compact :: Bool,          -- Generate compact format
-      notation :: Notation,     -- Select notation
       purge :: Bool,            -- Enable purging of traces
       scripts :: Bool }         -- Enable scripting
     deriving (Show, Read)
-
-data Notation
-    = Prefix                    -- Use S-expression syntax
-    | Infix                     -- Use condensed syntax
-    deriving (Show, Read, Eq)
-
-printer :: Config -> Int -> Int -> SExpr a -> String
-printer conf margin indent sexpr =
-    case notation conf of
-      Prefix -> pp margin indent sexpr
-      Infix -> printItem margin indent sexpr
diff --git a/src/CPSA/Graph/ExpandedView.hs b/src/CPSA/Graph/ExpandedView.hs
--- a/src/CPSA/Graph/ExpandedView.hs
+++ b/src/CPSA/Graph/ExpandedView.hs
@@ -12,6 +12,7 @@
 import Data.List (intersperse)
 import System.IO
 import CPSA.Lib.SExpr
+import CPSA.Lib.Printer (pp)
 import CPSA.Graph.XMLOutput
 import CPSA.Graph.Config
 import CPSA.Graph.SVG
@@ -25,7 +26,6 @@
 expandedView h conf margin cmts ks =
     do
       hPutList h (header (scripts conf) cmts ks)
-      let pp = printer conf
       comments h margin pp cmts
       case forest ks of
         [t] ->
@@ -235,7 +235,6 @@
 treelessView h conf margin cmts k s =
     do
       hPutList h (header (scripts conf) cmts [k])
-      let pp = printer conf
       comments h margin pp cmts
       body h conf margin pp k s
 
diff --git a/src/CPSA/Graph/Loader.hs b/src/CPSA/Graph/Loader.hs
--- a/src/CPSA/Graph/Loader.hs
+++ b/src/CPSA/Graph/Loader.hs
@@ -11,11 +11,11 @@
 -- modify it under the terms of the BSD License as published by the
 -- University of California.
 
-module CPSA.Graph.Loader (Preskel, Dir (..), Vertex, protocol, role, env, inst,
-                          part, lastVertex, vertices, Node, vnode, aborted,
+module CPSA.Graph.Loader (Preskel, Dir (..), Vertex, protocol, role, env,
+                          inst, part, lastVertex, vertices, Node, vnode,
                           strands, label, parent, seen, unrealized, shape,
-                          protSrc, preskelSrc, initial, strand, pos, leadstosuccs,
-                          prev, next, msg, dir, succs, preds, empty,
+                          empty, protSrc, preskelSrc, initial, strand, pos,
+                          leadstosuccs, prev, next, msg, dir, succs, preds,
                           State, loadFirst, loadNext)
                           where
 
@@ -36,9 +36,8 @@
       strands :: Int,           -- Number of strands
       initial :: [Vertex],      -- The initial node in each strand
       unrealized :: Maybe [Vertex], -- Nodes not realized if available
-      empty :: Bool,            -- Is preskel marked as an empty cohort?
       shape :: Bool,            -- Is preskel a shape?
-      aborted :: Bool,          -- Was preskel aborted?
+      empty :: Bool,            -- Does preskel have an empty cohort?
       protSrc :: SExpr Pos,     -- Source for the protocol
       preskelSrc :: SExpr Pos } -- Source for this preskeleton
     deriving Show
@@ -57,7 +56,8 @@
 
 data Dir = InDir
          | OutDir
-         | SyncDir
+         | StorDir
+         | LoadDir
 
 -- A vertex v contains the information associated with the node
 -- (strand v, pos v).
@@ -69,7 +69,7 @@
       next :: Maybe Vertex,     -- Strand next
       preds :: [Vertex],        -- Cross strand predecessors
       succs :: [Vertex],        -- Cross strand successors
-      leadstosuccs :: [Vertex],      -- Cross strand "leadsto" successors
+      leadstosuccs :: [Vertex], -- Cross strand "leadsto" successors
       strand :: Int,            -- Strand ID
       pos :: Int }              -- Position in strand
 
@@ -260,10 +260,9 @@
       let heights = map (length . trace) insts
       unrealized <- loadNodes heights (assoc "unrealized" xs)
       let shape = maybe False (const True) (assoc "shape" xs)
-      let empty = (comment "empty cohort" xs)
-      let aborted = (comment "aborted" xs)
+      let empty = elem "empty cohort" (qassoc "comment" xs)
       let orderings = maybe [] id (assoc "precedes" xs)
-      let lt = maybe [] id (assoc "leadsto" xs)
+      let lt = maybe [] id (assoc "leads-to" xs)
       pairs <- loadOrderings heights orderings True
       leadsto <- loadOrderings heights lt False
       let leadsto' = filter (\((s0,_),(s1,_)) -> s0 /= s1) leadsto
@@ -282,9 +281,8 @@
                              strands = strands,
                              initial = initial,
                              unrealized = unrealized',
-                             empty = empty,
                              shape = shape,
-                             aborted = aborted,
+                             empty = empty,
                              protSrc = src p,
                              preskelSrc = s }
             where
@@ -304,14 +302,13 @@
                         (s, inst) <- zip [0..] insts,
                         let ht = length (trace inst) ]
               evtMsg (L _ [S _ _, t]) = t
+              evtMsg (L p1 [S p2 _, ch, t]) =
+                L p1 [S p2 "ch-msg", ch, t]
               evtMsg x = x      -- Handle bad syntax
               evtDir (L _ [S _ "send", _]) = OutDir
-              evtDir (L _ [S _ "init", _, _]) = SyncDir
-              evtDir (L _ [S _ "init", _]) = SyncDir
-              evtDir (L _ [S _ "obsv", _, _]) = SyncDir
-              evtDir (L _ [S _ "obsv", _]) = SyncDir
-              evtDir (L _ [S _ "tran", _, _, _]) = SyncDir
-              evtDir (L _ [S _ "tran", _, _]) = SyncDir
+              evtDir (L _ [S _ "send", _, _]) = OutDir
+              evtDir (L _ [S _ "load", _, _]) = LoadDir
+              evtDir (L _ [S _ "stor", _, _]) = StorDir
               evtDir _ = InDir  -- Handle bad syntax
               getNode (s, p) = nodes !! s !! p
               getPrev (s, p)
@@ -406,17 +403,6 @@
 alist ((L _ (S _ _ : _)) : xs) = alist xs
 alist xs = fail (shows (annotation $ head xs) "Malformed association list")
 
-comment :: String -> [SExpr Pos] -> Bool
-comment key alist =
-  case assoc "comment" alist of
-    Nothing -> False
-    Just cs -> loop cs
-  where
-    loop [] = False
-    loop ((Q _ val):rest) = (val == key || loop rest)
-                            --    loop ((Q _ val):rest) = (val == "\""++key++"\"" || loop rest)
-    loop (_:rest) = loop rest
-
 -- Lookup value in alist, appending values with the same key
 assoc :: String -> [SExpr Pos] -> Maybe [SExpr Pos]
 assoc key alist =
@@ -431,6 +417,16 @@
 
 -- assoc key alist =
 --    concat [ rest | L _ (S _ head : rest) <- alist, key == head ]
+
+qassoc :: String -> [SExpr Pos] -> [String]
+qassoc key xs =
+  case assoc key xs of
+    Nothing -> []
+    Just vals ->
+      concatMap f vals
+      where
+        f (Q _ s) = [s]
+        f _ = []
 
 nassoc :: MonadFail m => String -> [SExpr Pos] -> m (Maybe Int)
 nassoc key xs =
diff --git a/src/CPSA/Graph/Main.hs b/src/CPSA/Graph/Main.hs
--- a/src/CPSA/Graph/Main.hs
+++ b/src/CPSA/Graph/Main.hs
@@ -13,6 +13,7 @@
 import System.Console.GetOpt
 import CPSA.Lib.SExpr (PosHandle, SExpr, Pos)
 import CPSA.Lib.Entry
+import CPSA.Lib.Printer (pp)
 import CPSA.Graph.Config
 import CPSA.Graph.Loader
 import CPSA.Graph.CompactView
@@ -24,10 +25,8 @@
 data Params = Params
     { file :: Maybe FilePath,   -- Nothing specifies standard output
       format :: Format,         -- Output format
-      prefix :: Bool,           -- Use prefix notation?
       purgeTraces :: Bool,      -- Purge traces?
       scripted :: Bool,         -- Use scripting?
-      comp :: Bool,          -- Use compact images?
       margin :: Int }           -- Output line length
     deriving Show
 
@@ -55,12 +54,11 @@
               h <- outputHandle (file params)
               hPutStrLn h "<?xml version=\"1.0\"?>"
               hPutStrLn h ("<!-- " ++ cpsaVersion ++ " -->")
-              let conf = config (prefix params) (purgeTraces params)
-                         (scripted params) (comp params)
+              let conf = config (purgeTraces params) (scripted params)
               case format params of
-                XHTML -> expandedView h conf
+                XHTML -> expandedView h (conf False)
                          (margin params) cmts preskels
-                SVG -> compactView h conf preskels
+                SVG -> compactView h (conf True) preskels
                 _ -> error "Bad case in main"
 
 -- Load comments and preskeletons
@@ -95,8 +93,7 @@
               h <- outputHandle (file params)
               hPutStrLn h "<?xml version=\"1.0\"?>"
               hPutStrLn h ("<!-- " ++ cpsaVersion ++ " -->")
-              let conf = config (prefix params) (purgeTraces params)
-                         (scripted params) False
+              let conf = config (purgeTraces params) (scripted params) False
               ans <- tryIO (treelessView h conf (margin params)
                                          cmts preskel state)
               case ans of
@@ -115,9 +112,6 @@
               h <- outputHandle (file params)
               hPutStrLn h "\\documentclass[12pt]{article}"
               hPutStrLn h ("% " ++ cpsaVersion)
-              let conf = config (prefix params) (purgeTraces params)
-                         (scripted params) False
-              let pp = printer conf
               ans <- tryIO (latexView h (margin params) pp cmts preskel state)
               case ans of
                 Left err -> abort err
@@ -133,14 +127,10 @@
     | Compact                   -- Select compact format in SVG
     | Text                      -- Select text format in LaTeX
     | Margin String             -- Output line length
-    | InfixFlag                 -- Select output notation
     | PurgeFlag                 -- Enable purging of traces
     | Output String             -- Output file name
       deriving Show
 
-defaultMargin :: Int
-defaultMargin = optMargin defaultOptions
-
 options :: [OptDescr Flag]
 options =
     [ Option ['o'] ["output"]   (ReqArg Output "FILE") "output FILE",
@@ -154,8 +144,7 @@
       Option ['l'] ["latex"]    (NoArg Text)           "use LaTeX format",
       Option ['m'] ["margin"]   (ReqArg Margin "INT")
       ("set output margin (default " ++ show defaultMargin ++ ")"),
-      Option ['i'] ["infix"]    (NoArg InfixFlag) "output uses infix notation",
-      Option ['s'] ["show-traces"] (NoArg PurgeFlag)   "show traces",
+      Option ['p'] ["purge-traces"] (NoArg PurgeFlag)  "purge traces",
       Option ['h'] ["help"]     (NoArg Help)           "show help message",
       Option ['v'] ["version"]  (NoArg Info)           "show version number" ]
 
@@ -164,10 +153,8 @@
 interp flags =
     loop flags (Params { file = Nothing, -- By default, no output file
                          format = XHTML, -- and use expanded format
-                         prefix = True,
-                         purgeTraces = True,
+                         purgeTraces = False,
                          scripted = False,
-                         comp = False,
                          margin = defaultMargin })
     where
       loop [] params = return params
@@ -181,13 +168,11 @@
       loop (Scripted : flags) params =
           loop flags $ params { scripted = True }
       loop (Compact : flags) params =
-          loop flags $ params { comp = True }
+          loop flags $ params { format = SVG }
       loop (Text : flags) params =
           loop flags $ params { format = LaTeX }
-      loop (InfixFlag : flags) params =
-          loop flags $ params { prefix = False }
       loop (PurgeFlag : flags) params =
-          loop flags $ params { purgeTraces = False }
+          loop flags $ params { purgeTraces = True }
       loop (Margin value : flags) params =
           case readDec value of
             [(margin, "")] ->
@@ -210,26 +195,24 @@
 -- Default configuration.  The lengths are in points, however the more
 -- natural choice is a font relative unit of length such as ems,
 -- however FireFox doesn't support these units yet.
-config :: Bool -> Bool -> Bool -> Bool -> Config
-config prefix purge scripts compact =
+config :: Bool -> Bool -> Bool -> Config
+config purge scripts compact =
     Config { units = "pt",
              font = font,
              stroke = 0.08 * font,
              dash = 0.50 * font,
              gap = 0.20 * font,
-             tx = 4.16 * font * factor,
-             ty = 6.25 * font * (if compact then 0.4 else 1.0),
-             ta = 1.75 * font * factor,
-             td = 1.16 * font * (if compact then 0.4 else 1.0),
-             dx = 8.33 * font * factor,
-             dy = 6.25 * font * factor,
+             tx = 4.16 * font,
+             ty = 6.25 * font,
+             ta = 1.75 * font,
+             td = 1.16 * font,
+             dx = 8.33 * font,
+             dy = 6.25 * font,
              mx = 3.33 * font,
              my = 3.33 * font,
              br = 0.50 * font,
-             compact = False,
-             notation = if prefix then Prefix else Infix,
+             compact = compact,
              purge = purge,
              scripts = scripts }
     where
       font = 12
-      factor = if compact then 0.7 else 1.0
diff --git a/src/CPSA/Graph/Preskeleton.hs b/src/CPSA/Graph/Preskeleton.hs
--- a/src/CPSA/Graph/Preskeleton.hs
+++ b/src/CPSA/Graph/Preskeleton.hs
@@ -8,8 +8,7 @@
 
 module CPSA.Graph.Preskeleton (skel) where
 
-import CPSA.Lib.SExpr (SExpr)
-import CPSA.Lib.Notation (printMsg, printEnv)
+import CPSA.Lib.SExpr
 import CPSA.Graph.XMLOutput
 import CPSA.Graph.Config
 import CPSA.Graph.SVG
@@ -17,24 +16,6 @@
 import CPSA.Graph.Layout
 import qualified Data.List as L
 
-showMsg :: Config -> SExpr a -> String
-showMsg conf x =
-    case notation conf of
-      Prefix -> show x
-      Infix -> printMsg margin indent x
-
-showEnv :: Config -> SExpr a -> String
-showEnv conf x =
-    case notation conf of
-      Prefix -> show x
-      Infix -> printEnv margin indent x
-
-margin :: Int
-margin = 1024
-
-indent :: Int
-indent = 0
-
 -- Compute a node's position.
 npos :: Config -> Rank -> Node -> (Float, Float)
 npos conf rank (s, p) =
@@ -63,16 +44,22 @@
 sameMsg :: Vertex -> Vertex -> Bool
 sameMsg src dest =
   case (dir src, dir dest) of
-    (OutDir, InDir) -> msg src == msg dest
-    (SyncDir, SyncDir) -> True
+    (OutDir, InDir) -> msgEquiv (msg src) (msg dest)
+    (StorDir, LoadDir) -> msg src == msg dest
     _ -> False
 
+-- Ignore channels for message equality test
+msgEquiv :: SExpr Pos -> SExpr Pos -> Bool
+msgEquiv src dest | src == dest = True
+msgEquiv (L _ [_, _, src]) (L _ [_, _, dest]) = src == dest
+msgEquiv _ _ = False
+
 -- Add a strand node
 addNode :: Config -> Preskel -> Rank -> [Element] -> Vertex -> [Element]
 addNode conf k rank elements node =
     let (x, y) = npos conf rank (vnode node)
         bullet = circ conf (nodeColor k node) x y
-        es = tooltip (showMsg conf $ msg node) [bullet] : elements
+        es = tooltip (show $ msg node) [bullet] : elements
         es' = foldl (addEdge conf rank node x y "black") es (succs node L.\\ leadstosuccs node)
         es'' = foldl (addEdge conf rank node x y "blue") es' (leadstosuccs node) in
     maybe es'' (addNode conf k rank es'') (next node)
@@ -81,9 +68,12 @@
 nodeColor k node =
   case dir node of
     OutDir -> Nothing           -- Transmission nodes are black
-    SyncDir
+    LoadDir
       | elem node (maybe [] id (unrealized k)) -> Just "orange"
       | otherwise -> Just "gray" -- Realized nodes are gray
+    StorDir
+      | elem node (maybe [] id (unrealized k)) -> Just "orange"
+      | otherwise -> Just "gray" -- Realized nodes are gray
     InDir
       | elem node (maybe [] id (unrealized k)) -> Just "red"
       | otherwise -> Just "blue" -- Realized nodes are blue
@@ -94,7 +84,7 @@
     if null r then
         es
     else
-        tooltip (showEnv conf e) [text conf x y r] : es
+        tooltip (show e) [text conf x y r] : es
     where
       r = role node
       e = env node
diff --git a/src/CPSA/Graph/Tree.hs b/src/CPSA/Graph/Tree.hs
--- a/src/CPSA/Graph/Tree.hs
+++ b/src/CPSA/Graph/Tree.hs
@@ -53,7 +53,7 @@
     where
       live kids dups =
           maybe True null (unrealized k) ||
-          (null kids && null dups && (not $ empty k)) ||
+          null kids && null dups && not (empty k) ||
           any alive kids || any alive dups
       x [] [] = 1
       -- The width of a duplicate is one
@@ -206,19 +206,13 @@
 folddup f z t =
     foldl (f False) (foldl (f True) z (duplicates t)) (children t)
 
-realized :: Preskel -> Bool
-realized k =
-    maybe False null (unrealized k)
-
 button :: Config -> Float -> Float -> Bool -> Tree -> Element
 button conf x y dup t =
     kbutton conf x y kind (label (vertex t))
     where
       kind =
-          case (alive t, dup, shape (vertex t), realized (vertex t)) of
-            (True, False, True, _) -> Shape
-            (True, False, False, True) -> Realized
-            (True, False, _, _) -> AliveTree
-            (True, True, _, _) -> AliveDup
-            (False, False, _, _) -> DeadTree
-            (False, True, _, _) -> DeadDup
+          case (alive t, dup) of
+            (True, False) -> if shape (vertex t) then Shape else AliveTree
+            (True, True) -> AliveDup
+            (False, False) -> DeadTree
+            (False, True) -> DeadDup
diff --git a/src/CPSA/Init/Main.hs b/src/CPSA/Init/Main.hs
--- a/src/CPSA/Init/Main.hs
+++ b/src/CPSA/Init/Main.hs
@@ -24,7 +24,7 @@
     argv <- getArgs
     (flags, _) <- opts options argv
     interp flags
-    copy ["init/Makefile", "cpsa.mk", "Make.hs", "init/template.lisp"]
+    copy ["init/Makefile", "cpsa4.mk", "Make4.hs"]
 
 -- Copy the file only if it does not already exist
 
diff --git a/src/CPSA/JSON/Main.hs b/src/CPSA/JSON/Main.hs
--- a/src/CPSA/JSON/Main.hs
+++ b/src/CPSA/JSON/Main.hs
@@ -24,12 +24,6 @@
       margin :: Int }           -- Output line length
     deriving Show
 
-defaultIndent :: Int
-defaultIndent = optIndent defaultOptions
-
-defaultMargin :: Int
-defaultMargin = optMargin defaultOptions
-
 main :: IO ()
 main =
     do
@@ -71,7 +65,7 @@
 options =
     [ Option ['o'] ["output"]   (ReqArg Output "FILE") "output FILE",
       Option ['m'] ["margin"]   (ReqArg Margin "INT")
-      ("set output margin (default " ++ show defaultIndent ++ ")"),
+      ("set output margin (default " ++ show defaultMargin ++ ")"),
       Option ['h'] ["help"]     (NoArg Help)           "show help message",
       Option ['v'] ["version"]  (NoArg Info)           "show version number" ]
 
diff --git a/src/CPSA/Latex/Main.hs b/src/CPSA/Latex/Main.hs
--- a/src/CPSA/Latex/Main.hs
+++ b/src/CPSA/Latex/Main.hs
@@ -15,7 +15,7 @@
 import Control.Monad
 import CPSA.Lib.SExpr
 import CPSA.Lib.Expand
-import CPSA.Lib.Entry hiding (defaultOptions, Options, optFile)
+import CPSA.Lib.Entry
 
 main :: IO ()
 main =
diff --git a/src/CPSA/Lib/Algebra.hs b/src/CPSA/Lib/Algebra.hs
deleted file mode 100644
--- a/src/CPSA/Lib/Algebra.hs
+++ /dev/null
@@ -1,232 +0,0 @@
--- Defines the interface to CPSA algebras.
-
--- Copyright (c) 2009 The MITRE Corporation
---
--- This program is free software: you can redistribute it and/or
--- modify it under the terms of the BSD License as published by the
--- University of California.
-
-{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies #-}
-
-module CPSA.Lib.Algebra where
-
-import Data.Set (Set)
-import CPSA.Lib.SExpr
-
--- Algebras
-
--- This class collects all the types that make up an algebra.
--- Non-algebra specific types should use this type class in their
--- context, and not any of the others in this module.
-
-class (Term t, Place t p, Gen t g, Subst t g s,
-       Env t g s e, Context t g s e c) =>
-    Algebra t p g s e c
-
--- Terms
-
-class (Ord t, Show t) => Term t where
-
-  -- These predicates succeed only on terms in the message algebra.
-    isVar :: t -> Bool          -- Is term a variable in the message algebra?
-    isAcquiredVar :: t -> Bool  -- Is term an acquired variable?
-    isObtainedVar :: t -> Bool  -- Is term an obtained variable?
-    isAtom :: t -> Bool       -- Is the sort of this term a base sort?
-
-    -- Extension for security goals, a predicate that succeeds only
-    -- when applied to strand variables.
-    isStrdVar :: t -> Bool
-
-    -- Does a variable occur in a term?
-    occursIn :: t -> t -> Bool
-
-    -- Check to see if a list of terms is well-formed.
-    termsWellFormed :: [t] -> Bool
-
-    -- Fold a function through a term applying it to each variable in
-    -- the term.
-    foldVars :: (a -> t -> a) -> a -> t -> a
-
-    -- Fold a function through a term applying it to each term carried
-    -- by the term.
-    foldCarriedTerms :: (a -> t -> a) -> a -> t -> a
-
-    -- Is a term carried by another term?  In other words, does the
-    -- possession of the appropriate keys allow the term to be
-    -- extracted from the other term?
-    carriedBy :: t -> t -> Bool
-
-    -- Is atom a constituent of a term?  In other words, is atom among
-    -- the set of atoms required to construct the term?
-    constituent :: t -> t -> Bool
-
-    -- Returns the key used to decrypt an encryption term, otherwise
-    -- Nothing.
-    decryptionKey :: t -> Maybe t
-
-    -- decompose outpred avoid returns minimum sets required to
-    -- determine if a term is penetrator derivable, where outpred is a
-    -- set of previously sent messages and avoid is an avoidance set.
-    -- An atom in the avoidance set cannot be guess by the penetrator,
-    -- except when it is exposed in the sent terms.
-    decompose :: Set t -> Set t -> (Set t, Set t)
-
-    -- buildable outpred avoid term is true when the penetrator can
-    -- derive the term given a minimum previously sent message set and
-    -- an avoidance set, as computed using the decompose function.
-    buildable :: Set t -> Set t -> t -> Bool
-
-    -- encryptions term returns a list of encryptions carried by the
-    -- term, each with the keys used to prepare it, with duplicates
-    -- eliminated.  Encryptions that occur in other encryption are
-    -- later in the list.
-    encryptions :: t -> [(t,[t])]
-
-    -- Assume (ts, a) is the output of decomposable, that is ts is a
-    -- set of encriptions and a is the reduced avoidance set.
-    -- escapeSet ts a ct = Nothing if buildable ts a ct = True.
-    -- Otherwise, escapeSet ts a ct = Just es, where es is the escape
-    -- set.
-    escapeSet :: Set t -> Set t -> t -> Maybe (Set t)
-
-    -- Given a list of variables, load a term from an S-expression.
-    loadTerm :: MonadFail m => [t] -> Bool -> SExpr Pos -> m t
-
-    -- Determines if an element is "numeric", meaning that it is
-    -- part of a numeric sort.
-    isNum :: t -> Bool
-
-    -- Finds all (outermost) numeric subterms occurring in a given term
-    subNums :: t -> Set t
-
-    -- Determines whether a given target is derivable, given a set
-    -- of known messages and an avoidance set.
-    derivable :: Set t -> Set t -> t -> Bool
-
-    -- Returns all constants of the same type as its first input.
-    -- Second input used to narrow down the answer when infinite
-    consts :: t -> [t] -> [t]
-
-    -- For DH
-    -- Returns the indicator in a given variable of a term.
-    indicator :: t -> t -> Maybe Int
-
-    -- Recognise kinds of DH values by sort.
-    isBase :: t -> Bool
-    isExpr :: t -> Bool
-    expnInExpr :: t -> t -> Bool
-
--- The place at which a term occurs in another term
-
-class (Term t, Eq p, Show p) => Place t p | t -> p, p -> t where
-    -- places variable source returns a list of places at which the
-    -- variable occurs in the term.
-    places :: t -> t -> [p]
-    -- carriedPlaces target source returns a list of places at which
-    -- the target is carried in the term.
-    carriedPlaces :: t -> t -> [p]
-    carriedRelPlaces :: t -> t -> Set t -> [p]
-    -- replace variable place source returns the term that results
-    -- from replacing the variable at the give place in the source
-    -- term.  The sort of the variable must match the one used to
-    -- create the place.
-    replace :: t -> p -> t -> t
-    -- ancestors source place extracts the terms in the source that
-    -- contain the term at the given place.
-    ancestors :: t -> p -> [t]
-    -- placeIsPrefixOf place place' returns true if place is a prefix
-    -- of place'.
-    placeIsPrefixOf :: p -> p -> Bool
-    -- placeStripPrefix prefix place drops a prefix from a place or
-    -- return Nothing when prefix is not a prefix of place.
-    placeStripPrefix :: p -> p -> Maybe p
-
--- Generation of terms with fresh variables.
-
-class (Term t, Show g) => Gen t g | t -> g, g -> t where
-    -- The starting generator.
-    origin :: g
-
-    -- Merge two generators by picking the maximum.
-    gmerge :: g -> g -> g
-
-    -- Given a generator, generate a clone of a term in which each
-    -- variable has been replaced by a variable that has never been
-    -- generated by the generator.
-    clone :: g -> t -> (g, t)
-
-    -- Given a generator and a single term, create a generic
-    -- representative of values relevant to that term
-    -- genericVersion :: g -> t -> (g, t)
-
-    -- Given a generator, load a list of variables or return an error
-    -- message.  Each element of the list is an identifier and a sort.
-    -- The varibles are returned in the reverse order.
-    loadVars :: MonadFail m => g -> [SExpr Pos] -> m (g, [t])
-
-    -- For DH
-
-    -- Given a base value, create its precursor.
-    basePrecursor :: g -> t -> (g, t)
-
-    -- Given a base value of the form (exp (gen) (mul ...))
-    -- all variables as rndx's, return listener values.
-    baseRndx :: t -> Maybe [t]
-
--- Substitutions
-
--- A substitution is a map from variables to terms.  Two terms unify
--- if there is a substitution, that when applied to both terms,
--- produces the same term.
-class (Term t, Gen t g, Ord s, Show s) => Subst t g s | t -> s, s -> t where
-    emptySubst :: s
-    destroyer :: t -> Maybe s
-    substitute :: s -> t -> t
-    unify :: t -> t -> (g, s) -> [(g, s)]
-    compose :: s -> s -> s
-    absenceSubst :: g -> [(t, t)] -> [(g, s)]
-
--- Environments
-
--- An environment is a partial map from variables to terms.  It is
--- used to relate the variables in a role to ones in an instance of
--- the role, and for other tasks involving matching.
-class (Term t, Gen t g, Subst t g s, Ord e, Show e) => Env t g s e
-    | t -> e, e -> t where
-    emptyEnv :: e
-    instantiate :: e -> t -> t
-    match :: t -> t -> (g, e) -> [(g, e)]
-    -- Cast an environment into a substitution
-    substitution :: e -> s
-    -- Provide a concrete representation of an environment as an
-    -- association list.  The first argument is a list of variables
-    -- that make up the domain of the environment.
-    reify :: [t] -> e -> [(t, t)]
-    -- Is every variable in t in the domain of r?
-    matched :: e -> t -> Bool
-    -- Extensions for security goals: strand match.  To succeed, the
-    -- term must be a variable of sort strd.
-    strdMatch :: t -> Int -> (g, e) -> [(g, e)]
-    -- Strand lookup.  If t is a strand variable and is bound to an integer in
-    -- e, then return the integer, otherwise return nothing.
-    strdLookup :: e -> t -> Maybe Int
-    -- Strand update.  Update strands in an environment.
-    strdUpdate :: e -> (Int -> Int) -> e
-    -- Apply a substitution to the range of an environment
-    substUpdate :: e -> s -> e
-
--- Display contexts--maps from variables to their printed representation.
-
-class (Term t, Gen t g, Subst t g s, Env t g s e, Show c) => Context t g s e c
-    | t -> c, c -> t where
-    emptyContext :: c             -- The initial context
-    addToContext :: c -> [t] -> c -- Add to context from some terms
-    displayVars :: c -> [t] -> [SExpr ()]
-    displayTerm :: c -> t -> SExpr ()
-    displayEnv :: c -> c -> e -> [SExpr ()]
-    -- A substitution display routine is required due to the fact that
-    -- the sort of some variables in the substitition might not be
-    -- known.  For the purposes of displaying the substitition, enough
-    -- sort information can be inferred.  For displaySubst, there may
-    -- be variables in the substitution that are not in the context.
-    displaySubst :: c -> s -> [SExpr ()]
diff --git a/src/CPSA/Lib/AlgebraLibrary.hs b/src/CPSA/Lib/AlgebraLibrary.hs
deleted file mode 100644
--- a/src/CPSA/Lib/AlgebraLibrary.hs
+++ /dev/null
@@ -1,62 +0,0 @@
-module CPSA.Lib.AlgebraLibrary where
-
-import CPSA.Lib.Utilities
-import CPSA.Lib.Algebra
-
-{--
-import CPSA.Lib.Debug
---}
-
--- Useful operations on variables
-
--- Are the vars in ts a subset of the ones in ts'?
-varSubset :: Algebra t p g s e c => [t] -> [t] -> Bool
-varSubset ts ts' =
-    all (flip elem (varsInTerms ts')) (varsInTerms ts)
-
-varsInTerms :: Algebra t p g s e c => [t] -> [t]
-varsInTerms ts =
-    foldl addVars [] ts
-
-addVars :: Algebra t p g s e c => [t] -> t -> [t]
-addVars ts t = foldVars (flip adjoin) ts t
-
-matchMany :: Algebra t p g s e c => [t] -> [t] -> (g,e) -> [(g,e)]
-matchMany [] [] ge = [ge]
-matchMany [] _ _ = []
-matchMany _ [] _ = []
-matchMany (t:ts) (t':ts') ge = concatMap (matchMany ts ts') (match t t' ge)
-
-matchMany_v :: Algebra t p g s e c => [t] -> [t] -> (g,e) -> [(g,e)]
-matchMany_v [] [] ge = [ge]
-matchMany_v [] _ _ = []
-matchMany_v _ [] _ = []
-matchMany_v (t:ts) (t':ts') ge = concatMap (matchMany_v ts ts') (match t t' ge)
-
-{-
--- stripExp x t: apply the map (x -> 1) to t and return the result.
-stripExp :: Algebra t p g s e c => t -> t -> t
-stripExp x t
-  | (not $ isNum x) = t
-  | otherwise = case destroyer x of
-    Nothing -> t
-    Just s -> substitute s t
--}
-
--- zeroIndicator: zero out the indicator of all restricted variables in t.
-zeroIndicator :: Algebra t p g s e c => t -> (g,e) -> [t] -> [(g,e)]
-zeroIndicator _ ge [] = [ge]
-zeroIndicator t ge (v:vs) =
-  concatMap (\ge -> zeroIndicator t ge vs) (zeroIndicatorIn t v ge)
-
--- zeroIndicatorIn: zero out the indicator of v in t.
-zeroIndicatorIn :: Algebra t p g s e c => t -> t -> (g,e) -> [(g,e)]
-zeroIndicatorIn t v ge
-  | indicator t v == Just 0 = [ge]
-  | indicator t v == Nothing = [ge] -- shouldn't happen
-  | otherwise =
-    match t target ge
-  where
-    target = case destroyer v of
-      Just s -> substitute s t
-      Nothing -> assertError ("Couldn't destroy restricted variable in zeroIndicatorIn " ++ show v ++ " " ++ show t)
diff --git a/src/CPSA/Lib/Characteristic.hs b/src/CPSA/Lib/Characteristic.hs
deleted file mode 100644
--- a/src/CPSA/Lib/Characteristic.hs
+++ /dev/null
@@ -1,223 +0,0 @@
--- Makes the characteristic skeleton of a security goal
-
--- Copyright (c) 2015 The MITRE Corporation
---
--- This program is free software: you can redistribute it and/or
--- modify it under the terms of the BSD License as published by the
--- University of California.
-
-module CPSA.Lib.Characteristic (Conj, characteristic) where
-
-import Control.Monad
-import qualified Data.List as L
-import CPSA.Lib.Utilities
-import CPSA.Lib.SExpr
-import CPSA.Lib.Algebra
-import CPSA.Lib.Declaration
-import CPSA.Lib.Protocol
-import CPSA.Lib.Strand
-
-{--
-import System.IO.Unsafe
-z :: Show a => a -> b -> b
-z x y = unsafePerformIO (print x >> return y)
---}
-
-type Conj t = [(Pos, AForm t)]
-
--- Entry point.  Takes a position, a protocol, a variable generator, a
--- goal, and a skeleton comment and makes a skeleton or fails.  This
--- function extracts the anecedent and univesally quantified variable.
-characteristic :: (Algebra t p g s e c, MonadFail m) => Pos -> Prot t g ->
-                  [Goal t] -> g -> Conj t -> [SExpr ()] -> m (Preskel t g s e)
-characteristic pos prot goals g antec comment =
-  equalsForm pos prot goals g antec comment
-
--- Checks for equals in an antecedent and fails if it finds one.  One
--- could use unification to solve the equality, and then apply the
--- result to the remaining parts of the formula.
-equalsForm :: (Algebra t p g s e c, MonadFail m) => Pos -> Prot t g ->
-              [Goal t] -> g -> Conj t -> [SExpr ()] -> m (Preskel t g s e)
-equalsForm pos _ _ _ as _ | any isEquals as =
-  fail (shows pos "Equals not allowed in antecedent")
-equalsForm pos prot goals g as comment =
-  splitForm pos prot goals g as comment
-
-isEquals :: (Pos, AForm t) -> Bool
-isEquals (_, Equals _ _) = True
-isEquals _ = False
-
--- Split the formula into instance formulas and skeleton formulas.
--- The instance formulas are used to generate the skeleton's
--- instances, and the skeleton formulas generate the rest.  Make the
--- instances, and then make the rest.
-splitForm :: (Algebra t p g s e c, MonadFail m) => Pos -> Prot t g ->
-             [Goal t] -> g -> Conj t -> [SExpr ()] -> m (Preskel t g s e)
-splitForm pos prot goals g as comment =
-  do
-    (nmap, g, insts) <- mkInsts g is
-    mkSkel pos prot goals nmap g insts ks comment
-  where                         -- is is the instance formulas and
-    (is, ks) = L.partition instForm as -- ks is the skeleton formulas
-
--- Instance formulas are length predicates and parameter predicates.
-instForm :: (Pos, AForm t) -> Bool
-instForm (_, Length _ _ _) = True
-instForm (_, Param _ _ _ _ _) = True
-instForm _ = False
-
--- Make the instances from the instance predicates
-
-mkInsts :: (Algebra t p g s e c, MonadFail m) => g -> Conj t ->
-           m ([(t, Sid)], g, [Instance t e])
-mkInsts g as =
-  do
-    srl <- strdRoleLength as    -- Compute role-length of each strand
-    (g, insts) <- foldInsts g as srl -- Construct instances
-    let strdMap = zip (map fst srl) [0..] -- Construct strand map
-    return (strdMap, g, insts) -- Construct node map for later use
-
--- Computes a map from strands to roles and lengths
-strdRoleLength :: (Algebra t p g s e c, MonadFail m) =>
-                  Conj t -> m [(t, (Role t, Int))]
-strdRoleLength as =
-  foldM f [] as
-  where
-    f srl (pos, Length r z h) =
-      case lookup z srl of
-        Nothing -> return ((z, (r, h)) : srl)
-        Just (r', h')
-          | rname r' /= rname r ->
-            fail (shows pos
-                  "Strand occurs in more than one role length atom")
-          | h <= h' -> return srl -- Use original binding
-          | otherwise -> return ((z, (r, h)) : srl)
-    f srl _ = return srl
-
--- Construct instances
-foldInsts :: (Algebra t p g s e c, MonadFail m) =>
-             g -> Conj t -> [(t, (Role t, Int))] ->
-             m (g, [Instance t e])
-foldInsts g _ [] = return (g, [])
-foldInsts g as ((z, (r, h)) : srs) =
-  do
-    (g, inst) <- mkInst g as z r h
-    (g, insts) <- foldInsts g as srs
-    return (g, inst : insts)
-
--- Construct an instance by extracting maplets from the parameter
--- predicates associated with the strand.
-mkInst :: (Algebra t p g s e c, MonadFail m) =>
-          g -> Conj t -> t -> Role t -> Int -> m (g, Instance t e)
-mkInst g as z r h =
-  do
-    (g, env) <- foldM (mkMaplet r z) (g, emptyEnv) as
-    return (mkInstance g r env h)
-
--- Add match from a maplet
-mkMaplet :: (Algebra t p g s e c, MonadFail m) =>
-            Role t -> t -> (g, e) ->
-            (Pos, AForm t) -> m (g, e)
-mkMaplet role z env (pos, Param r v _ z' t)
-  | z == z' =
-    if rname role == rname r then -- Ensure role matches the one
-      case match v t env of       -- used to create instance
-        env : _ -> return env
-        [] -> fail (shows pos "Domain does not match range")
-    else
-      fail (shows pos
-            "Role in parameter pred differs from role position pred")
-mkMaplet _ _ env _ = return env
-
--- Use this lookup when lookup must succeed, that is when loader makes
--- the check.
-nMapLookup :: Eq t => (t, Int) -> [(t, Sid)] -> Node
-nMapLookup (z, i) nmap =
-  case lookup z nmap of
-    Just s -> (s, i)
-    Nothing -> error "Characteristic.nMapLookup: Bad lookup"
-
--- Create a skeleton given a list of instances
-
-mkSkel :: (Algebra t p g s e c, MonadFail m) => Pos -> Prot t g ->
-          [Goal t] -> [(t, Sid)] -> g -> [Instance t e] ->
-          Conj t -> [SExpr ()] -> m (Preskel t g s e)
-mkSkel pos p goals nmap g insts as comment =
-  do
-    let o = foldr (mkPrec nmap) [] as
-    let lto = foldr (mkLeadsTo nmap) [] as
-    let nr = foldr mkNon [] as
-    let ar = foldr mkPnon [] as
-    let ur = foldr mkUniq [] as
-    let gr = foldr mkUgen [] as
-    let decls = mkDcls nr ar ur gr
-    let fs = foldr (mkFact nmap) [] as
-    let prios = []
-    let k = mkPreskel g p goals insts o lto decls fs comment prios Nothing []
-    mapM_ (checkUniqAt nmap k) as
-    case termsWellFormed $ (termsInDlist decls) ++ kterms k of
-      False -> fail (shows pos "Terms in skeleton not well formed")
-      True -> return ()
-    case verbosePreskelWellFormed k of
-      Return () -> return k
-      Fail msg -> fail $ shows pos
-                  $ showString "Skeleton not well formed: " msg
-  where
-    termsInDlist olist = concat $ map dterms (concatMap snd olist)
-
-mkPrec :: Eq t => [(t, Sid)] ->
-          (Pos, AForm t) -> [Pair] -> [Pair]
-mkPrec nmap (_, Prec n n') o =
-  (nMapLookup n nmap, nMapLookup n' nmap) : o
-mkPrec _ _ o = o
-
-mkLeadsTo :: Eq t => [(t, Sid)] ->
-          (Pos, AForm t) -> [Pair] -> [Pair]
-mkLeadsTo nmap (_, LeadsTo n n') o =
-  (nMapLookup n nmap, nMapLookup n' nmap) : o
-mkLeadsTo _ _ o = o
-
-mkDcls :: [t] -> [t] -> [t] -> [t] -> SkelDeclList t
-mkDcls nr ar ur gr =
-  [("non-orig", map simpleDInst nr), ("pen-non-orig", map simpleDInst ar),
-   ("uniq-orig", map simpleDInst ur), ("uniq-gen", map simpleDInst gr)]
-  where
-    simpleDInst t = declInst [t] []
-
-mkNon :: (Pos, AForm t) -> [t] -> [t]
-mkNon (_, Non t) ts = t : ts
-mkNon _ ts = ts
-
-mkPnon :: (Pos, AForm t) -> [t] -> [t]
-mkPnon (_, Pnon t) ts = t : ts
-mkPnon _ ts = ts
-
-mkUniq :: (Pos, AForm t) -> [t] -> [t]
-mkUniq (_, Uniq t) ts = t : ts
-mkUniq (_, UniqAt t _) ts = t : ts
-mkUniq _ ts = ts
-
-mkUgen :: (Pos, AForm t) -> [t] -> [t]
-mkUgen (_, Ugen t) ts = t : ts
-mkUgen (_, UgenAt t _) ts = t : ts
-mkUgen _ ts = ts
-
-mkFact :: Eq t => [(t, Sid)] -> (Pos, AForm t) -> [Fact t] -> [Fact t]
-mkFact nmap (_, AFact name fs) ts =
-  Fact name (map f fs) : ts
-  where
-    f t =
-      case lookup t nmap of
-        Just s -> FSid s
-        Nothing -> FTerm t
-mkFact _ _ ts = ts
-
-checkUniqAt :: (Algebra t p g s e c, MonadFail m) => [(t, Sid)] ->
-               Preskel t g s e -> (Pos, AForm t) -> m ()
-checkUniqAt nmap k (pos, UniqAt t n) =
-  case lookup t $ korig k of
-    Nothing -> fail (shows pos "Atom not unique at node")
-    Just ns
-      | elem (nMapLookup n nmap) ns -> return ()
-      | otherwise -> fail (shows pos "Atom not unique at node")
-checkUniqAt _ _ _ = return ()
diff --git a/src/CPSA/Lib/Cohort.hs b/src/CPSA/Lib/Cohort.hs
deleted file mode 100644
--- a/src/CPSA/Lib/Cohort.hs
+++ /dev/null
@@ -1,755 +0,0 @@
--- Computes the cohort associated with a skeleton or its generalization
-
--- Copyright (c) 2009 The MITRE Corporation
---
--- This program is free software: you can redistribute it and/or
--- modify it under the terms of the BSD License as published by the
--- University of California.
-
-module CPSA.Lib.Cohort (Mode(..), reduce, unrealized, minPriority) where
-
-import qualified Data.Set as S
-import Data.Set (Set)
-import qualified Data.List as L
-import qualified Data.Tuple as T
-import CPSA.Lib.Algebra
-import CPSA.Lib.State
-import CPSA.Lib.Protocol
-import CPSA.Lib.Strand
-import CPSA.Lib.Utilities
-
--- Debugging support
---import CPSA.Lib.Debug
---import CPSA.Lib.DebugLibrary
-
---}
-
--- Compile time switches for expermentation.
-
--- Include the escape set in the set of target terms
-useEscapeSetInTargetTerms :: Bool
-useEscapeSetInTargetTerms = False -- True
-
--- Filter a cohort for skeletons that solve the test.  Turn off only
--- to debug the other parts of the test solving algorithm.
-useSolvedFilter :: Bool
-useSolvedFilter = True -- False
-
--- Use pruning during generalization.
-usePruningDuringGeneralization :: Bool
-usePruningDuringGeneralization = False -- True
-
--- Minimum priority to solve
-minPriority :: Int
-minPriority = 1
-
--- Returns the nodes in a preskeleton that are not realized.
-unrealized :: Algebra t p g s e c => Preskel t g s e -> [Node]
-unrealized k =
-    foldl unrealizedInStrand [] (strands k)
-    where
-      unrealizedInStrand acc s =
-          fst $ foldl (unrealizedInNode k) (acc, S.empty) (nodes s)
-
--- Lifted here because of ambiguity complains in GHC 8.4.2
-unrealizedInNode :: Algebra t p g s e c => Preskel t g s e ->
-                    ([Node], Set (Vertex t e)) -> Vertex t e ->
-                    ([Node], Set (Vertex t e))
-unrealizedInNode k (acc, ns) n =
-  case event n of
-    In t ->
-      let ns' = addSendingBefore ns n
-          ts = transmissionsBefore ns n in
-        case derivable (avoid k) ts t of
-          True -> (acc, ns')
-          False -> (graphNode n : acc, ns')
-    Sync (Tran (Just _, _))
-      | not (explainable k n (leadsto k)) ->
-          (graphNode n : acc, ns)
-    _ -> (acc, ns)
-
-transmissionsBefore :: Algebra t p g s e c => Set (Vertex t e) ->
-                       Vertex t e -> Set t
-transmissionsBefore vs v =
-    termsInNodes (addSendingBefore vs v)
-
-addSendingBefore :: Algebra t p g s e c => Set (Vertex t e) ->
-                    Vertex t e  -> Set (Vertex t e)
-addSendingBefore s n =
-    foldl addSending s (preds n)
-    where
-      addSending s n
-        | S.member n s = s
-        | otherwise = addSendingBefore (addIfSending s n) n
-      addIfSending s n =
-          case event n of
-            Out _ -> S.insert n s
-            _ -> s
-
-termsInNodes :: Algebra t p g s e c => Set (Vertex t e) -> Set t
-termsInNodes ns =
-  S.foldl' f S.empty ns
-  where
-    f ts n =
-      L.foldl' (flip S.insert) ts (evtMesgTerms (event n))
-
--- Is node n a tranition or observation node that is explainable,
--- either because its current state is a variable of sort message or
--- because an immediate transition produces the current state.
-explainable :: Algebra t p g s e c => Preskel t g s e -> Vertex t e -> [Pair] -> Bool
-explainable k n leadsto =
-  case (event n) of
-    Sync t -> case (now t) of
-      Nothing ->  True
-      Just st -> case lookup (s,i) (map T.swap leadsto) of
-        Nothing -> isAcquiredVar st || isObtainedVar st
-        Just (s2,i2) -> case (trace (insts k !! s2) !! i2) of
-          Sync t2 -> Just st == (next t2)
-          _ -> False
-    _ -> True
-  where
-    (s,i) = graphNode n
-
--- Suppose k --v,p-> k', where k |-phi,sigma-> k'.  Let t=msg(k, v)@p,
--- t'=sigma(t), T=sigma(esc(k, v, t)), and t"=msg(k', phi(v)).
--- Position p is solved in k' from k at v if:
---
--- 1. some member of anc(t", p) is in T', or
---
--- 2. for some t in outpred(k', phi(v)), t' is not carried only within
---    T in t, OR
--- ("2a") targetterms(t', T) \ sigma(targetterms(t, esc(k, v, t))) /= empty
---    and there are variables in k's protocol that are not atoms, or
---
--- 3. the decryption key for an element of T is derivable, or
---
--- 4. t' is an encryption and the encryption key for t' is derivable, or
---
--- 5. t' is derivable in k' at phi(v).
---
--- 6. k' has a distinct absent constraint
---
--- Haskell variables:
--- ct     = t
--- pos    = p
--- ek     = encription key if ct is an encyption else nothing
--- escape = esc(k, v, t)
--- k      = k'
--- n      = v
--- subst  = sigma
-solved :: Algebra t p g s e c => t -> p -> [t] -> Set t ->
-          Preskel t g s e -> Node -> s -> [(t,t)] -> Bool
-solved ct pos eks escape k n subst absent =
-    -- Condition 1
-    isAncestorInSet escape' t pos || derivable a escape' ct' ||
-    -- Condition 2
-    any (\t -> (not $ carriedOnlyWithin ct' escape' t)) (S.toList ts) ||
-    not (varsAllAtoms (protocol k)) && not (S.null targetTermsDiff) ||
-    -- Condition 3
-    any (maybe False (derivable a ts) . decryptionKey) (S.toList escape') ||
-    -- Condition 4
-    -- Bug fix: apply subst to eks
-    any (derivable a ts) (map (substitute subst) eks) ||
-    -- Condition 5
-    derivable a ts ct' ||
-    -- Condition 6: hack!
-    length (kabsent k) > length absent
-    where
-      v = vertex k n                 -- Look up vertex in k
-      t = evt id erro errs (event v)  -- Term at v
-      erro = const $ assertError "Cohort.solved: got an outbound term"
-      errs = const $ assertError "Cohort.solved: got a state synchronization term"
-      ct' = substitute subst ct -- Mapped critical term
-      escape' = S.map (substitute subst) escape
-      mappedTargetTerms = S.map (substitute subst) (targetTerms ct escape)
-      targetTermsDiff = S.difference (targetTerms ct' escape') mappedTargetTerms
-      ts = transmissionsBefore S.empty v -- Outbound predecessors
-      a = avoid k
-
-maybeSolved :: Algebra t p g s e c => t -> p -> [t] -> Set t ->
-               Preskel t g s e -> Node -> s -> [(t,t)] -> Bool
-maybeSolved ct pos eks escape k n subst absent =
-    not useSolvedFilter || solved ct pos eks escape k n subst absent
-
-data Mode = Mode
-    { noGeneralization :: Bool,
-      nonceFirstOrder :: Bool,
-      visitOldStrandsFirst :: Bool,
-      reverseNodeOrder :: Bool }
-    deriving Show
-
--- Abort if there is an unrealized node without a test, otherwise
--- return a list of skeletons that solve one test.  If the skeleton is
--- realized, try to generalize it, but only when noIsoChk is false.
-reduce :: Algebra t p g s e c => Mode -> Preskel t g s e ->
-          [Preskel t g s e]
-reduce mode k =
-    filterSame k $ concatMap simplify ks -- Apply rewrites
-    where
-      ks = firstJust (map (testNode mode k a) ns)
-           (whenRealized k) -- Skeleton is realized
-      triples = L.sortBy priorityOrder
-                [(s,i,p) | s <- [0..((length $ strands k)-1)],
-                           i <- [0..((height $ instidx s)-1)],
-                           let p = priority k (s,i)]
-      short = filter (\(_, _, p)-> p >= minPriority) triples
-      ns = map (\(s,i,_) -> (nodes (strandidx s) !! i)) short
-      a = avoid k
-      instidx s = (insts k) !! s
-      strandidx s = (strands k) !! s
-      whenRealized k =
-          if noGeneralization mode then [] else maximize k
-      priorityOrder (s0,i0,p0) (s1,i1,p1)
-        | p0 /= p1 = compare p1 p0  -- reverse, so that higher number = higher priority
-        | s0 /= s1 = compareStrandOrder mode s0 s1
-        | otherwise = compareNodeOrder mode (strandidx s0) i0 i1
-
--- Filter out skeletons in ks that are isomorphic to k.
-filterSame :: Algebra t p g s e c => Preskel t g s e ->
-              [Preskel t g s e] -> [Preskel t g s e]
-filterSame k ks =
-  filter f ks
-  where
-    f k' = not $ isomorphic (gist k) (gist k')
-
-compareStrandOrder :: Mode -> Int -> Int -> Ordering
-compareStrandOrder mode s0 s1 =
-  if visitOldStrandsFirst mode then (compare s0 s1)
-  else (compare s1 s0)
-
-compareNodeOrder :: Mode -> Strand t e -> Int -> Int -> Ordering
-compareNodeOrder mode s i0 i1 =
-  if (reverseNodeOrder mode == rsearch (role $ inst s)) then (compare i0 i1)
-  else (compare i1 i0)
-
--- Returns the first Just value in a list or the default when there is
--- none.
-firstJust :: [Maybe a] -> a -> a
-firstJust [] x = x
-firstJust (Just x : _) _ = x
-firstJust (Nothing : xs) x = firstJust xs x
-
--- Look for a critical term that makes this node a test node.
-testNode :: Algebra t p g s e c => Mode -> Preskel t g s e ->
-                   Set t -> Vertex t e -> Maybe [Preskel t g s e]
-testNode mode k a n =
-   case event n of
-     In t ->
-       let ts = transmissionsBefore S.empty n -- Public messages
-           (ts', a') = decompose ts a in
-       if buildable ts' a' t then Nothing
-       else Just $ solveNode mode k a' ts' (graphNode n) t
-     Sync t | not (explainable k n (leadsto k)) ->
-       Just $ solveSyncNode mode k (graphNode n) (now t)
-     _ -> Nothing
-
-carriedOnlyWithin :: Algebra t p g s e c => t -> Set t -> t -> Bool
-carriedOnlyWithin target escape source =
-    all (isAncestorInSet escape source) (carriedPlaces target source)
-
--- isAncestorInSet set source position is true if there is one ancestor of
--- source at position that is in the set.
-isAncestorInSet :: Algebra t p g s e c => Set t -> t -> p -> Bool
-isAncestorInSet set source position =
-    any (flip S.member set) (ancestors source position)
-
--- Look for a critical term that makes this node a test node.
-solveNode :: Algebra t p g s e c => Mode -> Preskel t g s e ->
-            Set t -> Set t -> Node -> t ->
-            [Preskel t g s e]
-solveNode mode k a ts n t =
-    loop cts
-    where
-      loop [] = assertError ("Cohort.solveNode missing test at " ++ show n)
-      loop ((ct, eks) : rest) =
-          case escapeSet ts a ct of
-            Nothing -> loop rest
-            Just escape ->
-                places (carriedPlaces ct t)
-                    where
-                  places [] = loop rest -- Find position at which
-                  places (p : ps)       -- ct has escaped
-                      | isAncestorInSet escape t p = places ps
-                      | otherwise = solvePath k a ct p eks n t escape
-      cts =                     -- Potential critical messages
-          if nonceFirstOrder mode then
-            nonces ++ encs
-          else
-            encs ++ nonces
-      -- include all carried terms that are in a or
-      -- are numeric.
-      nonces = map f (filter (flip carriedBy t) (S.toList a)) ++
-               (foldCarriedTerms fnum [] t)
-      encs = filter g (map h (encryptions t))
-      fnum nums t | isNum t && (not $ buildable ts a t) = nums ++ [(t, [])]
-                  | otherwise = nums
-      f ct = (ct, [])           -- A nonce tests has no eks
-      g (_, []) = False         -- An encryption test must have
-      g _ = True                -- at least one non-derivable key
-      -- Dump derivable encryption keys
-      h (ct, eks) = (ct, filter (not . (buildable ts a)) eks)
-
--- Solve critical message at position pos at node n.
--- ct = t @ pos
--- t  = msg(k, n)
-
-solvePath :: Algebra t p g s e c => Preskel t g s e -> Set t ->
-             t -> p -> [t] -> Node -> t -> Set t -> [Preskel t g s e]
-solvePath k a ct pos eks n t escape =
-    mgs $ cons ++ augs ++ lsns ++ dhs
-    where
-      dhs = theDHSubcohort k a ct pos eks n escape cause
-      cons = contractions k ct pos eks n t escape cause
-      augs = augmentations k ct pos eks n escape cause
-      lsns = addListeners k ct pos eks n t escape cause
-      cause = Cause (dir eks) n ct escape
-
--- Filter out all but the skeletons with the most general homomorphisms.
-mgs :: Algebra t p g s e c => [(Preskel t g s e, [Sid])] ->
-       [Preskel t g s e]
-mgs cohort =
-  reverse $ map fst $ loop cohort []
-  where
-    loop [] acc = acc
-    loop (kphi : cohort) acc
-      | any (f kphi) cohort || any (f kphi) acc =
-        loop cohort acc
-      | otherwise = loop cohort (kphi : acc)
-    f (k, phi) (k', phi') =
-      any (not. null . homomorphism k' k)
-          (composeFactors (strandids k) (strandids k') phi phi')
-
--- Given two permutations p and p', with ranges r and r', this
--- function returns the list of permutations p'' such that
---
---    p'' o p' = p.
---
--- This function assumes p' is injective and the returns permutations
--- that also must be.
-
-composeFactors :: [Int] -> [Int] -> [Int] -> [Int] -> [[Int]]
-composeFactors r r' p p' =
-  perms (zip p' p) (filter (flip notElem p) r) r'
-
--- The correctness of this function depends on the fact that the
--- length of range is at most one so that the result is always
--- injective.
-
-perms :: [(Int, Int)] -> [Int] -> [Int] -> [[Int]]
-perms _ _ [] = [[]]
-perms alist range (s:domain) =
-  case lookup s alist of
-    Just s' -> [ s':ss | ss <- perms alist range domain ]
-    Nothing -> [ s':ss | s' <- range, ss <- perms alist range domain ]
-
--- DH Subcohort
-
-theDHSubcohort :: Algebra t p g s e c => Preskel t g s e -> Set t ->
-                  t -> p -> [t] -> Node -> Set t -> Cause t ->
-                  [(Preskel t g s e, [Sid])]
-theDHSubcohort k a ct pos eks n escape cause
-  | isBase ct = baseDHSubcohort k ct pos eks n escape cause
-  | isExpr ct = exprDHSubcohort k a ct pos eks n escape cause
-  | otherwise = []
-
-baseDHSubcohort :: Algebra t p g s e c => Preskel t g s e ->
-                  t -> p -> [t] -> Node -> Set t -> Cause t ->
-                  [(Preskel t g s e, [Sid])]
-baseDHSubcohort k ct pos eks n escape cause
-  | isNodePrecur k n = []
-  | otherwise =
-    [ (k', phi) |
-      (k', n', phi, subst) <- addBaseListener k n cause ct,
-      maybeSolved ct pos eks escape k' n' subst (kabsent k)]
-
-exprDHSubcohort :: Algebra t p g s e c => Preskel t g s e -> Set t ->
-                  t -> p -> [t] -> Node -> Set t -> Cause t ->
-                  [(Preskel t g s e, [Sid])]
-exprDHSubcohort k a ct pos eks n escape cause =
---  | isNodePrecur k n = []
---  | otherwise =
-  do
-    x <- S.toList a
-    case expnInExpr x ct of
-      False -> []
-      True ->
-        [ (k', phi) |
-           (k', n', phi, subst) <- addAbsence k n cause x ct,
-             maybeSolved ct pos eks escape k' n' subst (kabsent k) ] ++
-        [ (k', phi) |
-          (k', n', phi, subst) <- addListener k n cause x,
-          maybeSolved ct pos eks escape k' n' subst (kabsent k) ]
-
--- Contractions
-
--- Contract the critical message at the given position.
-contractions :: Algebra t p g s e c => Preskel t g s e ->
-                t -> p -> [t] -> Node -> t -> Set t ->
-                Cause t -> [(Preskel t g s e, [Sid])]
-contractions k ct pos eks n t escape cause =
-    [ (k, phi) | subst <- (solve escape anc (gen k, emptySubst) ++
-                           constSolve (gen k, emptySubst) ct (kterms k)),
-          (k, n, phi, subst') <- contract k n cause subst,
-          maybeSolved ct pos eks escape k n subst' (kabsent k) ]
-    where
-      -- stick to only proper ancestors if ct is numeric;
-      -- algebraSolve is strictly more general otherwise
-      anc = if (isNum ct) then ancs else (ct : ancs)
-      ancs = (ancestors t pos)
-
-constSolve :: Algebra t p g s e c => (g, s) -> t -> [t] -> [(g, s)]
-constSolve subst ct kts =
-    [ s | c <- consts ct kts,
-          s <- unify ct c subst]
-
-solve :: Algebra t p g s e c => Set t -> [t] -> (g, s) -> [(g, s)]
-solve escape ancestors subst =
-    [ s | e <- S.toList escape,
-          a <- ancestors,
-          s <- unify a e subst ]
-
-carriedOnlyWithinAtSubst :: Algebra t p g s e c =>
-                            t -> Set t -> t -> (g, s) ->  Bool
-carriedOnlyWithinAtSubst  ct escape t (_, subst) =
-    carriedOnlyWithin ct' escape' t'
-    where
-      ct' = substitute subst ct
-      escape' = S.map (substitute subst) escape
-      t' = substitute subst t
-
-fold :: Algebra t p g s e c => t -> Set t -> t -> Set t -> (g, s) -> [(g, s)]
-fold ct escape t avoid (gen, subst) =
-    [ (gen', compose subst' subst) |
-      (gen', subst') <- foldl f [(gen, emptySubst)] (carriedRelPlaces ct' t' avoid') ]
-    where
-      ct' = substitute subst ct
-      escape' = S.map (substitute subst) escape
-      avoid' = S.map (substitute subst) avoid
-      t' = substitute subst t
-      f substs p =
-          [ s | subst <- substs, s <- solve escape' (ancestors t' p) subst ]
-
-dir :: [a] -> Direction
-dir [] = Nonce
-dir _ = Encryption
-
--- Augmentations
-
-augmentations :: Algebra t p g s e c => Preskel t g s e ->
-                t -> p -> [t] -> Node -> Set t ->
-                Cause t -> [(Preskel t g s e, [Sid])]
-augmentations k ct pos eks n escape cause
---  | ((not (isNodePrecur k n)) && ((isBase ct) || (isExpr ct))) = []
-  | otherwise =
-    [ k' | r <- roles (protocol k),
-           k' <- roleAugs (gen k) k ct pos eks n escape cause targets r ]
-    where
-      targets = S.toList tterms
-      tterms = targetTerms ct escape
-
-roleAugs :: Algebra t p g s e c => g -> Preskel t g s e ->
-            t -> p -> [t] -> Node -> Set t -> Cause t ->
-            [t] -> Role t -> [(Preskel t g s e, [Sid])]
-roleAugs g k ct pos eks n escape cause targets role =
-    [ (k', phi) | (subst', inst) <- transformingNode ct escape targets role subst
-                                    (avoid k),
-           (k', n', phi, subst'') <- augment k n cause role subst' inst False,
-           maybeSolved ct pos eks escape k' n' subst'' (kabsent k) ]
-    where
-      subst = cloneRoleVars g role
-
--- Generate a fresh set of role variables
-cloneRoleVars :: Algebra t p g s e c => g -> Role t -> (g, s)
-cloneRoleVars gen role =
-    grow (rvars role) gen emptyEnv
-    where
-      grow [] gen env = (gen, substitution env)
-      grow (t : ts) gen env =
-          let (gen', t') = clone gen t in
-          case match t t' (gen', env) of
-            (gen'', env') : _ -> grow ts gen'' env'
-            [] -> assertError "Cohort.cloneRoleVars: Internal error"
-
--- Identify all distinct potential transforming nodes
-transformingNode :: Algebra t p g s e c => t -> Set t ->
-                    [t] -> Role t -> (g, s) -> Set t ->
-                    [((g, s), Instance t e)]
-transformingNode ct escape targets role subst avoid =
-  tNLoop ct escape targets role subst avoid 1 [] [] (rtrace role)
-{-  Fails the ambiguity check
-  loop 1 [] [] (rtrace role)
-  where
-      -- loop height past acc trace
-      loop _ _ acc [] = acc
-      -- receptions cannot be transforming
-      loop ht past acc (In t : c) =
-          loop (ht + 1) (In t : past) acc c
-      loop ht past acc (Sync t : c) =
-          loop (ht + 1) (Sync t : past) acc c
-      loop ht past acc (Out t : c) =
-          loop (ht + 1) (Out t : past) acc' c
-          where
-            substs = carriedBindings targets t subst
-            substs' = cowt ct escape (stripSync past) substs avoid
---            substs' = cowt ct escape past substs avoid
-            acc' = maybeAug ct escape role ht substs' acc t
--}
-
-tNLoop :: Algebra t p g s e c => t -> Set t ->
-                    [t] -> Role t -> (g, s) -> Set t -> Int -> Trace t ->
-                    [((g, s), Instance t e)] -> Trace t ->
-                    [((g, s), Instance t e)]
-tNLoop _ _ _ _ _ _ _ _ acc [] = acc
--- receptions cannot be transforming
-tNLoop ct escape targets role subst avoid ht past acc (In t : c) =
-  tNLoop ct escape targets role subst avoid (ht + 1) (In t : past) acc c
-tNLoop ct escape targets role subst avoid ht past acc (Sync t : c) =
-  tNLoop ct escape targets role subst avoid (ht + 1) (Sync t : past) acc c
-tNLoop ct escape targets role subst avoid ht past acc (Out t : c) =
-  tNLoop ct escape targets role subst avoid (ht + 1) (Out t : past) acc' c
-  where
-    substs = carriedBindings targets t subst
-    substs' = cowt ct escape (stripSync past) substs avoid
---            substs' = cowt ct escape past substs avoid
-    acc' = maybeAug ct escape role ht substs' acc t
-
--- Terms considered for binding with the carried terms in an outbound
--- term.
-targetTerms :: Algebra t p g s e c => t -> Set t -> Set t
-targetTerms ct escape =
-    if useEscapeSetInTargetTerms then
-       targetTermsWithEscapeSet
-    else
-       S.difference targetTermsWithEscapeSet escape
-    where
-      -- hack: including both ct and ct' for cases where ct' leads to something
-      -- that doesn't pass the solved filter.
-      targetTermsWithEscapeSet = S.fold f (S.singleton ct) escape
-      f t ts =
-          foldl (flip S.insert) ts
-                (concatMap (ancestors t) (carriedPlaces ct t))
-
--- Find bindings for terms in the test.
-carriedBindings :: Algebra t p g s e c => [t] -> t -> (g, s) -> [(g, s)]
-carriedBindings targets outbound subst =
-  concatMap (\(subterm, target) -> unify subterm target subst) stPairs
-  where
-    stPairs = [(subterm,target)|
-               subterm <- S.toList (foldCarriedTerms (flip S.insert) S.empty outbound),
-               target <- targets]
-
--- Ensure the critical term is carried only within the escape set of
--- every term in the past using fold from cows.
-cowt :: Algebra t p g s e c => t -> Set t ->
-        Trace t -> [(g, s)] -> Set t -> [(g, s)]
--- cowt 0 _ _ _ _ _ = error ("cowt recursion limit reached")
-cowt ct escape c substs avoid =
-    nubSnd $ concatMap (cowt0 ct escape c avoid) substs
-
--- Remove pairs with the same second element.
-nubSnd :: Eq b => [(a, b)] -> [(a, b)]
-nubSnd substs =
-    L.nubBy (\(_, s) (_, s') -> s == s') substs
-
--- Handle one substitution at a time.
-cowt0 :: Algebra t p g s e c => t -> Set t ->
-         Trace t -> Set t -> (g, s) -> [(g, s)]
-cowt0 ct escape c avoid subst =
-    if all (f subst) c then     -- Substitution works
-        [subst]
-    else                        -- Substitution needs refinement
-        cowt ct escape c (foldn ct escape c [subst] avoid) avoid
-    where
-      f subst evt =
-          carriedOnlyWithinAtSubst ct escape (evtTerm evt) subst
-
--- Apply fold to each message in the trace.
-foldn :: Algebra t p g s e c => t -> Set t ->
-         Trace t -> [(g, s)] -> Set t -> [(g, s)]
-foldn _ _ [] substs _ = substs
-foldn ct escape (evt : c) substs avoid =
-    foldn ct escape c (concatMap (fold ct escape (evtTerm evt) avoid) substs) avoid
-
-evtTerm :: Event t -> t
-evtTerm (In t) = t
-evtTerm (Out t) = t
-evtTerm _ = assertError "Cohort: Extracting a term from a sync event"
-
--- If the outbound term is carried only within, no transforming node
--- was found, otherwise, add a candidate augmentation to the
--- accumulator.
-maybeAug :: Algebra t p g s e c => t -> Set t ->
-            Role t -> Int -> [(g, s)] ->
-            [((g, s), Instance t e)] -> t ->
-            [((g, s), Instance t e)]
-maybeAug ct escape role ht substs acc t =
-  answer
-  where
-      answer = foldl f acc $ L.filter testSolved substs
-      testSolved (_, subst) =
-        (not $ carriedOnlyWithin
-                  (substitute subst ct)
-                  (S.map (substitute subst) escape)
-                  (substitute subst t))
-  {- Fails the ambiguity check
-      f acc (gen, subst) =
-        case bldInstance role itrace gen of
-            (gen, inst) : _ -> ((gen, subst), inst) : acc
-            [] -> acc
-          where
-            itrace = map (evtMap $ substitute subst) (take ht (rtrace role))
--}
-      f = maybeAugF role ht
-
-maybeAugF :: Algebra t p g s e c => Role t -> Int ->
-            [((g, s), Instance t e)] -> (g, s) ->
-            [((g, s), Instance t e)]
-maybeAugF role ht acc (gen, subst) =
-  case bldInstance role itrace gen of
-    (gen, inst) : _ -> ((gen, subst), inst) : acc
-    [] -> acc
-  where
-    itrace = map (evtMap $ substitute subst) (take ht (rtrace role))
-
--- Listener augmentations
-
-addListeners :: Algebra t p g s e c => Preskel t g s e ->
-                t -> p -> [t] -> Node -> t -> Set t ->
-                Cause t -> [(Preskel t g s e, [Sid])]
-addListeners k ct pos eks n t escape cause =
-    [ (k', phi) | t' <- filter (/= t) (S.toList (escapeKeys eks escape)),
-           (k', n', phi, subst) <- addListener k n cause t',
-           maybeSolved ct pos eks escape k' n' subst (kabsent k) ]
-
-escapeKeys :: Algebra t p g s e c => [t] -> Set t -> Set t
-escapeKeys eks escape =
-    S.fold f es escape
-    where
-      f e s = maybe s (flip S.insert s) (decryptionKey e)
-      es = S.fromList eks
-
--- solveSyncNode
-solveSyncNode :: Algebra t p g s e c => Mode -> Preskel t g s e ->
-                 Node -> Maybe t -> [Preskel t g s e]
-solveSyncNode _ _ _ Nothing =
-  assertError ("Cohort:solveSyncNode: unexpectedly asked to solve Sync node with no current state.")
-solveSyncNode mode k n (Just t) =
-  [ k' | r <- roles (protocol k),
-         k' <- roleSPAugs cause mode k n t r ]
-  where
-    cause = Cause StatePassing n t (S.empty)
-
-roleSPAugs :: Algebra t p g s e c => Cause t -> Mode ->
-              Preskel t g s e -> Node -> t -> Role t -> [Preskel t g s e]
-roleSPAugs cause _ k n t r =
-  [ k' | (subst, inst) <- nextNode t (gen k) r,
-         (k', _, _, _) <- augment k n cause r subst inst True ]
-
-{- New failure of ambiguity check: this breaks!
--- Identify all distinct potential next nodes
-nextNode :: Algebra t p g s e c => t -> g -> Role t ->
-            [((g, s), Instance t e)]
-nextNode now g role =
-  loop 1 [] (rtrace role)
-  where
-    -- loop height past acc trace
-    loop _ acc [] = acc
-    loop ht acc (In _ : c) =
-      loop (ht + 1) acc c
-    loop ht acc (Out _ : c) =
-      loop (ht + 1) acc c
-    loop ht acc (Sync (Tran (_, Nothing, _)) : c) =
-      loop (ht + 1) acc c
-    loop ht acc (Sync (Tran (_, Just next, _)) : c) =
-      loop (ht + 1) acc' c
-      where
-        substs = unify now next (cloneRoleVars g role)
-        acc' = foldl f acc substs
-        f = nextNodeF role ht
-{- Fails the ambiguity check
-        f acc (gen, subst) =
-          case bldInstance role itrace gen of
-            (gen, inst) : _ -> ((gen, subst), inst) : acc
-            [] -> acc
-          where
-            itrace = map (evtMap $ substitute subst) (take ht (rtrace role))
--}
--}
-
--- Identify all distinct potential next nodes
-nextNode :: Algebra t p g s e c => t -> g -> Role t ->
-            [((g, s), Instance t e)]
-nextNode now g role =
-  loop 1 [] (rtrace role)
-  where
-    -- loop height past acc trace
-    loop _ acc [] = acc
-    loop ht acc (In _ : c) =
-      loop (ht + 1) acc c
-    loop ht acc (Out _ : c) =
-      loop (ht + 1) acc c
-    loop ht acc (Sync (Tran (_, Nothing)) : c) =
-      loop (ht + 1) acc c
-    loop ht acc (Sync (Tran (_, Just next)) : c) =
-      loop (ht + 1) acc' c
-      where
-        acc' = nextNodeA now g role ht next acc
-
--- Lifted here because of ambiguity complains in GHC 8.4.2
-nextNodeA :: Algebra t p g s e c => t -> g -> Role t -> Int -> t ->
-            [((g, s), Instance t e)] -> [((g, s), Instance t e)]
-nextNodeA now g role ht next acc =
-  foldl f acc substs
-  where
-    f = nextNodeF role ht
-    substs = unify now next (cloneRoleVars g role)
-
-nextNodeF :: Algebra t p g s e c => Role t -> Int ->
-             [((g, s), Instance t e)] -> (g, s) -> [((g, s), Instance t e)]
-nextNodeF role ht acc (gen, subst) =
-  case bldInstance role itrace gen of
-    (gen, inst) : _ -> ((gen, subst), inst) : acc
-    [] -> acc
-  where
-    itrace = map (evtMap $ substitute subst) (take ht (rtrace role))
-
--- Maximize a realized skeleton if possible.  Do not consider
--- generalizations that fail to satisfy the rules of the skeleton's
--- protocol.
-
-maximize :: Algebra t p g s e c => Preskel t g s e ->
-            [Preskel t g s e]
-maximize k =
-    take 1 (filter f gens)      -- Return at most the first answer
-    where
-      gens = do
-        (k', mapping) <- generalize k -- Generalize generates candidates
-        specialization k k' mapping   -- Test a candidate
-      f k =
-        case rewrite k of
-          Nothing -> True
-          _ -> False
-
--- Test to see if realized skeleton k is a specialization of
--- preskeleton k' using the given strand mapping.  Returns the
--- skeleton associated with k' if it refines k.
-
-specialization :: Algebra t p g s e c => Preskel t g s e ->
-                  Preskel t g s e -> [Sid] ->
-                  [Preskel t g s e]
-specialization k k' mapping
-    | not (preskelWellFormed k') = []
-    | otherwise =
-        do
-          k'' <- toSkeleton usePruningDuringGeneralization k'
-          case realized k'' && not (isomorphic (gist k) (gist k'')) &&
-               refines k'' (pov k'') (prob k'') &&
-               refines k (Just k') mapping of
-            True -> [k'']
-            False -> []
-        where
-          realized = null . unrealized
-          refines _ Nothing _ =
-              assertError "Cohort.specialization: cannot find point of view"
-          refines k (Just k') mapping =
-              not $ null $ homomorphism k' k mapping
diff --git a/src/CPSA/Lib/Declaration.hs b/src/CPSA/Lib/Declaration.hs
deleted file mode 100644
--- a/src/CPSA/Lib/Declaration.hs
+++ /dev/null
@@ -1,462 +0,0 @@
--- Declaration for contraints
-
--- Copyright (c) 2012 The MITRE Corporation
---
--- This program is free software: you can redistribute it and/or
--- modify it under the terms of the BSD License as published by the
--- University of California.
-
-module CPSA.Lib.Declaration
-       (Declarations,
-        dknon, dkpnon, dkunique, dkuniqFull, mkDecls, declsUnion, dkuniqgen,
-        tagDeclsTermsOnly, tagDeclsLocsOnly, declFormats, declInputFormats,
-        dterms, dlocs, daux, declInst, declInstAux, DeclInst, dkugenFull,
-        dkabsent, declsTerms, addDeclInst, declMember, nsdecls,
-        DeclInstList, Declaration, DeclInFormat(..), DeclOutFormat(..),
-        DeclList, declarationRoleTags,
---        BasicOutFmt, MultiTermOutFmt, NullOutFmt, BasicRoleOutFmt, GeneralOutFmt,
---        BasicInFmt, MultiTermInFmt, NullInFmt, TwoTermInFmt,
-        declCheck, Loc, avoidTerms,
-        forgetSomeDecls, declsNub, declarationTags, tagDecls, declCheckOrigs,
-        declsMapTerms, declsMapLocations, declsFilterValid, validateDeclMap)
-       where
-
-import Data.List(delete, nub, sortBy)
-import qualified Data.Set as S
-import Data.Set (Set)
-import CPSA.Lib.Utilities
-import CPSA.Lib.Algebra
-import CPSA.Lib.AlgebraLibrary
-
-{-- Debugging support
-import CPSA.Lib.Debug
--- Also see showst
---}
-
-class (Eq l, Show l) => Loc l
-
-instance Loc Int
-instance (Loc a, Loc b) => Loc (a, b)
-
--- exported
-
--- List of formats for input of declarations
--- Fields: (fmt, areq, aux)
---   fmt specifies a descriptive choice for the format, describing
---   contraints on numbers of terms and nodes in each declared item.
---   aux is a boolean, specifying whether a sub-name is used.
---   areq = True means that all the terms must be atoms; this is in
---   input requirements only.
-data DeclInFormat
-  = BasicInFmt | MultiTermInFmt | NullInFmt | TwoTermInFmt
-  | TermLocInFmt | LocInFmt
-   deriving Eq
-
-declInputFormats :: [(DeclInFormat, Bool, Bool)]
-declInputFormats =
-   [(BasicInFmt, True, False),      -- non, pen-non, uniq
-    (TwoTermInFmt, False, False),   -- neq, lt
-    (TwoTermInFmt, False, True),    -- fn-of
-    (NullInFmt, False, True),       -- inst-limit
-    (MultiTermInFmt, False, False),  -- neq-list
-    (BasicInFmt, True, True),       -- subsort
-    (TermLocInFmt, False, False),   -- uniq-gen
-    (LocInFmt, False, False)        -- precur
-   ]
-
--- List of formats for output of declarations
--- Fields: (fmt, aux)
---   fmt specifies a descriptive choice for the format, describing
---   contraints on numbers of terms and nodes in each declared item.
---   aux is a boolean, specifying whether a sub-name is used.
-data DeclOutFormat
-  = BasicOutFmt | MultiTermOutFmt | NullOutFmt | LocOutFmt
-  | BasicRoleOutFmt | GeneralOutFmt | TermLocOutFmt
-   deriving Eq
-
-declOutputFormats :: [(DeclOutFormat, Bool)]
-declOutputFormats =
-  [(BasicOutFmt, False),
-   (MultiTermOutFmt, False),
-   (MultiTermOutFmt, True),
-   (NullOutFmt, True),
-   (BasicOutFmt, True),
-   (BasicRoleOutFmt, False),
-   (TermLocOutFmt, False),
-   (GeneralOutFmt, False),
-   (LocOutFmt, False)]
-
-defaultOutFormat :: Int
-defaultOutFormat = 7
-
--- Entries are of the form (tag, (infmt, outfmt))
--- tag is associated with indices into declInputFormats
--- and declOutputFormats respectively.
-declFormats :: [(String, (Int, Int))]
-declFormats =
-   [("non-orig", (0, 0)),
-    ("pen-non-orig", (0, 0)),
-    ("uniq-orig", (0, 0)),
-    ("uniq-gen", (0, 0)),
-    ("fn-of", (2, 2)),
---  ("inst-limit", (3, 3)),
-    ("lt", (1, 1)),
-    ("neq", (1, 1)),
-    ("absent", (1, 1)),
-    ("precur", (7, 8)),
-    ("neqlist", (4, defaultOutFormat)),
-    ("subsort", (5, 4)),
-    ("ind-zero", (0, 0)),
---    ("ind-zero-at", (0, 0)),
-    ("ind-zero-in", (1, 1))
-   ]
-
--- Formats for use in roles.
-declRFormats :: [(String, (Int, Int))]
-declRFormats =
-   [("non-orig", (0, 5)),
-    ("pen-non-orig", (0, 5))] ++ (drop 2 declFormats)
-
-data DeclInst t l = DeclInst
-     {
-        dterms :: [t],
-        dlocs :: [l],
-        daux :: String }
-     deriving (Show, Eq)
-
--- Exported
-declInstAux :: [t] -> [l] -> String ->
-               DeclInst t l
-declInstAux ts ls aux =
-   DeclInst { dterms = ts, dlocs = ls, daux = aux }
-
-declInst :: [t] -> [l] -> DeclInst t l
-declInst ts ls = declInstAux ts ls ""
-
-addDeclInst :: String -> [t] -> [l] -> Declarations t l -> Declarations t l
-addDeclInst tag ts ls (Declarations {dlist = dl}) =
-  Declarations {dlist = f dl}
-  where
-    f [] = [(tag, [declInst ts ls])]
-    f ((t, l) : ds) | t == tag = (t, declInst ts ls : l) : ds
-    f (d : ds) = d : f ds
-
-declMember :: (Eq t, Eq l) => String -> [t] -> [l] ->
-              Declarations t l -> Bool
-declMember tag ts ls (Declarations {dlist = dl}) =
-  any f dl
-  where
-    f (t, l)                    -- Find right tag
-      | t == tag = any g l
-      | otherwise = False
-    g (DeclInst { dterms = ts', dlocs = ls' }) =
-      ts == ts' && ls == ls'
-
-type DeclInstList t l = [DeclInst t l]
-type Declaration t l = (String, DeclInstList t l)
-type DeclList t l = [Declaration t l]
-data Declarations t l = Declarations
-     {
-       dlist :: DeclList t l }
-     deriving Show
-
-mkDecls :: (Algebra t p g s e c, Loc l) => DeclList t l ->
-           Declarations t l
-mkDecls dl = declsNub Declarations { dlist = dl }
-
-dnon :: Declarations t l -> DeclInstList t l
-dnon decls = tagDecls "non-orig" decls
-
-dpnon :: Declarations t l -> DeclInstList t l
-dpnon decls = tagDecls "pen-non-orig" decls
-
-dunique :: Declarations t l -> DeclInstList t l
-dunique decls = tagDecls "uniq-orig" decls
-
-duniqgen :: Declarations t l -> DeclInstList t l
-duniqgen decls = tagDecls "uniq-gen" decls
-
-dabsent :: Declarations t l -> DeclInstList t l
-dabsent decls = tagDecls "absent" decls
-
--- Exported
-dknon :: Declarations t l -> [t]
-dknon d = map head $ map dterms (dnon d)
-
--- Exported
-dkpnon :: Declarations t l -> [t]
-dkpnon d = map head $ map dterms (dpnon d)
-
--- Exported
-dkunique :: Declarations t l -> [t]
-dkunique d = map head $ map dterms (dunique d)
-
-dkuniqgen :: Declarations t l -> [t]
-dkuniqgen d = map head $ map dterms (duniqgen d)
-
--- Exported
-dkuniqFull :: Declarations t l -> [(t,l)]
-dkuniqFull d = map (\x -> (head $ dterms x, head $ dlocs x)) (dunique d)
-
--- Exported
-dkugenFull :: Declarations t l -> [(t, Maybe l)]
-dkugenFull d = map (\x -> foo x) (duniqgen d)
-               where
-                 foo x
-                   | (length (dlocs x) == 0) = assertError
-                       ("Declaration:dkugenFull something odd happened") -- (head $ dterms x, Nothing)
-                   | otherwise = (head $ dterms x, Just (head $ dlocs x))
-
-dkabsent :: Declarations t l -> [(t, t)]
-dkabsent d =
-  map f $ dabsent d
-  where
-    f (DeclInst {dterms = [x, y]}) = (x, y)
-    f _ = error "Bad absence decl"
-
-modname :: (Algebra t p g s e c, Loc l) => String -> DeclInstList t l ->
-           Declarations t l -> Declarations t l
-modname name [] decls =
-    mkDecls (filter (\(n, _) -> not (n == name) ) (dlist decls))
-modname name ds decls =
-  case lookup name (dlist decls) of
-    Nothing -> mkDecls ((dlist decls) ++ [(name, ds)])
-    Just _ -> mkDecls (map replaceWithds (dlist decls))
-  where
-    replaceWithds (n, ds') = if (n == name) then (n, ds)
-                                          else (n, ds')
-
--- Exported
--- Unions together a list of Declarations
-declsUnion :: (Algebra t p g s e c, Loc l) => [Declarations t l] ->
-              Declarations t l
-declsUnion [] = mkDecls []
-declsUnion [d] = d
-declsUnion (d:ds) = mkDecls $ declsMerge (dlistSort $ dlist (declsUnion ds))
-                                         (dlistSort $ dlist d)
-
--- Unions together a pair of Declarations
-declsMerge :: (Algebra t p g s e c, Loc l) => DeclList t l ->
-              DeclList t l -> DeclList t l
-declsMerge dl dl'
-  | length dl < length dl' = declsMerge dl' dl  -- Can now assume |dl| >= |dl'|
-  | null dl = dl'
-  | null dl' = dl
-  | firstName dl == firstName dl' =
-       [(firstName dl, firstDs dl' ++ firstDs dl)] ++ declsMerge (tail dl) (tail dl')
-  | declCompare (head dl) (head dl') == LT =
-       head dl : declsMerge (tail dl) dl'
-  | otherwise = head dl' : declsMerge dl (tail dl')
-  where
-    firstName dlst = fst (head dlst)
-    firstDs dlst = snd (head dlst)
-
-dlistSort :: DeclList t l -> DeclList t l
-dlistSort dl = sortBy declCompare dl
-
-declCompare :: Declaration t l -> Declaration t l -> Ordering
-declCompare dec1 dec2 = compare (fst dec1) (fst dec2)
-
--- Exported
-forgetSomeDecls :: (Algebra t p g s e c, Loc l) => Declarations t l ->
-                   [(Declarations t l, Declarations t l)]
-forgetSomeDecls decls =
-  concatMap delNamedDecl (map fst (dlist decls))
-  where
-    delNamedDecl name =
-      [ (Declarations {dlist = [(name, [d])]}, modname name (delete d (tagDecls name decls)) decls)
-      | d <- tagDecls name decls ]
-
-declsNub :: (Algebra t p g s e c, Loc l) => Declarations t l ->
-            Declarations t l
-declsNub d =
-  -- Do not use the wrap constructor here, since it calls declsNub!
-  Declarations {dlist = (filter declNonEmpty (map nubDecl (dlist d)))}
-  where
-    nubDecl (name, ds) = (name, nub ds)
-    declNonEmpty (_, ds) = not (null ds)
-
--- Exported
--- Classifies the declaration tags used in the given Declarations according to format.
-declarationTags :: Declarations t l -> [(String, (DeclOutFormat, Bool))]
-declarationTags d = nub $ declarationTagsCore d declFormats
-
--- Exported
-declarationRoleTags :: Declarations t l -> [(String, (DeclOutFormat, Bool))]
-declarationRoleTags d = nub $ declarationTagsCore d declRFormats
-
--- Common code for declarationRoleTags and declarationTags.
--- Looks up the format associated each declaration and pairs the tag with its format.
--- Since subtags are subsequent words in the tag string, we look up by the first word.
-declarationTagsCore :: Declarations t l ->
-                   [(String, (Int, Int))] -> [(String, (DeclOutFormat, Bool))]
-declarationTagsCore d fmts =
-   map (\ tag -> (tag, declOutputFormats !! (getOutFormat tag))) dtags
-   where
-     dtags = map fst (dlist d)
-     getOutFormat tag = case lookup (tag) fmts of
-                          Nothing -> defaultOutFormat
-                          Just (_,out) -> out
-
--- Exported
-tagDeclsTermsOnly :: String -> Declarations t l -> [t]
-tagDeclsTermsOnly tag decls = map head $ map dterms $ tagDecls tag decls
-
--- Exported
-tagDeclsLocsOnly :: String -> Declarations t l -> [l]
-tagDeclsLocsOnly tag decls = map head $ map dlocs $ tagDecls tag decls
-
--- Exported
-tagDecls :: String -> Declarations t l -> DeclInstList t l
-tagDecls tag decls =
-    case lookup tag (dlist decls) of
-      Nothing -> []
-      Just x -> x
-
--- Exported
-declCheckOrigs :: (Algebra t p g s e c, Loc l) => Declarations t l ->
-                  Declarations t l -> (g, e) -> Bool
-declCheckOrigs d d' env =
-  (S.fromList (map fst $ dlist d) == S.fromList (map fst $ dlist d')) &&
-  (not $ null (checkAllDecls [env] d d' (map fst $ dlist d)))
-
-checkAllDecls :: (Algebra t p g s e c, Loc l) => [(g,e)] -> Declarations t l ->
-                  Declarations t l -> [String] -> [(g,e)]
-checkAllDecls envs _ _ [] = envs
-checkAllDecls envs d d' (tag:tags) = checkAllDecls envs' d d' tags
-  where
-    envs' =
-      [env' | env <- envs,
-       env' <- checkDecl env (tagDecls tag d) (tagDecls tag d')]
-
-checkDecl :: (Algebra t p g s e c, Loc l) => (g,e) -> [DeclInst t l] ->
-             [DeclInst t l] -> [(g,e)]
-checkDecl env [] [] = [env]
-checkDecl env (i:is) is' =
-  do
-    i' <- filter (\inst -> (length (dterms i) == length (dterms inst)) &&
-                           (dlocs i == dlocs inst) &&
-                           (daux i == daux inst)) is'
-    env' <- matchMany (dterms i) (dterms i') env
-    checkDecl env' is (delete i' is')
-checkDecl _ _ _ = []
-
--- Exported
-declsTerms :: (Algebra t p g s e c, Loc l) => Declarations t l -> [t]
-declsTerms decls =
-  concatMap fdecls (dlist decls)
-  where
-    fdecls (_, ds) = concatMap gdecls ds
-    gdecls (DeclInst {dterms = ts}) = ts
-
--- declsAbsentTerms :: (Algebra t p g s e c, Loc l) => Declarations t l -> [t]
--- declsAbsentTerms decls =
---   concatMap fdecls (dlist decls)
---   where
---     fdecls (name, ds) | name == "absent" = concatMap gdecls ds
---     fdecls _ = []
---     gdecls (DeclInst {dterms = ts}) = ts
-
--- Exported
-declsMapTerms :: (Algebra t p g s e c, Loc l) => (t -> t) ->
-                 Declarations t l -> Declarations t l
-declsMapTerms f decls =
-  mkDecls (map fdecls (dlist decls))
-  where
-    fdecls (name, ds) = (name, map g ds)
-    g dinst = declInstAux (map f $ dterms dinst) (dlocs dinst) (daux dinst)
-
--- Exported
-declsMapLocations :: (Algebra t p g s e c, Loc l') => (l -> l') ->
-                     Declarations t l -> Declarations t l'
-declsMapLocations f decls =
-  mkDecls (map fdecls (dlist decls))
-  where
-    fdecls (name, ds) = (name, map g ds)
-    g dinst = declInstAux (dterms dinst) (map f $ dlocs dinst) (daux dinst)
-
--- Exported
-declsFilterValid :: (Algebra t p g s e c, Loc l) => [t] -> (l -> Bool) ->
-                    Declarations t l -> Declarations t l
-declsFilterValid terms locValid d =
-  mkDecls (map filterAllDecls (dlist d))
-  where
-    filterAllDecls (n, ds) = (n, filter mentionedIn ds)
-    mentionedIn dinst = varSubset (dterms dinst) terms && all locValid (dlocs dinst)
-
--- Exported
-validateDeclMap :: (Algebra t p g s e c, Loc l, Loc l') =>
-                   Declarations t l -> Declarations t l' ->
-                   (l -> l') -> e -> Bool
-validateDeclMap d d' locmap env =
-    all okTag (map fst $ dlist d)
-  where
-    okTag tag = all (flip elem (tagDecls tag d')) (map f (tagDecls tag d))
-    f dinst = declInstAux (map (instantiate env) $ dterms dinst)
-                       (map locmap $ dlocs dinst) (daux dinst)
-
--- Exported
-nsdecls :: Declarations t l -> Set (String, Int)
-nsdecls decls =
-  nsdeclsloop S.empty (dlist decls)
-  where
-    nsdeclsloop s [] = s
-    nsdeclsloop s ((tag, ds) : rest) = nsdeclsloop (S.insert (tag, length ds) s) rest
-
-avoidTerms :: Algebra t p g s e c => Declarations t l -> Set t
-avoidTerms decls =
-  S.unions [ns, as, uos, ugs]
-    where
-      ns = S.fromList (dknon decls)
-      as = S.fromList (dkpnon decls)
-      uos = S.fromList (dkunique decls)
-      ugs = S.fromList (dkuniqgen decls)
-
--------------------------- Constraint checking, where possible --------------
-declCheck :: Algebra t p g s e c => Declarations t l -> (Bool, String)
-declCheck d =
-   case doDeclCheck d of
-     Return _ -> (True, "")
-     Fail str -> (False, str)
-   where
-     doDeclCheck d =
-       do
-         failwith "inequality condition violated" $ neqCheck d
-         failwith "lt declarations form a cycle" $ ltCheck d
-         failwith "subsort requirements violated" $ subsortCheck d
-         failwith "[ASSERT FAILED] inst limit requirements violated" $ instlimitCheck d
-
-instlimitCheck :: Declarations t l -> Bool
-instlimitCheck _ = True
-
-neqCheck :: Algebra t p g s e c => Declarations t l -> Bool
-neqCheck decls =
-   null failures
-   where
-      failures = [s | s <- dts,
-                  length s >= 2,
-                  i <- nats (length s),
-                  j <- nats (length s),
-                  i /= j,
-                  s !! i == s !! j]
-      dts = map dterms ((tagDecls "neq" decls) ++
-                        (tagDecls "neqlist" decls))
-
-ltCheck :: Algebra t p g s e c => Declarations t l -> Bool
-ltCheck decls =
-   checkAll pairs pairs ((length pairs)-1)
-   where
-     checkAll ltpairs allpairs n
-        | any (\ ts -> length ts < 2) (ltpairs ++ allpairs) = assertError ("Bug in ltcheck!")
-        | any (\ ts -> ts !! 0 == ts !! 1) allpairs = False
-        | n > 0 = checkAll ltpairs (evlv ltpairs allpairs) (n-1)
-        | otherwise = True
-     evlv x y = [[(ts1 !! 0),(ts2 !! 1)]| ts1 <- y, ts2 <- x, ts1 !! 1 == ts2 !! 0]
-     pairs = map dterms (tagDecls "lt" decls)
-
-subsortCheck :: Algebra t p g s e c => Declarations t l -> Bool
-subsortCheck decls =
-   null failures
-   where
-     failures = [t1 | (tag1,t1) <- pairs, (tag2,t2) <- pairs, t1 == t2, tag1 /= tag2]
-     pairs = map (\ di -> (daux di, head $ dterms di)) $ tagDecls "subsort" decls
diff --git a/src/CPSA/Lib/Displayer.hs b/src/CPSA/Lib/Displayer.hs
deleted file mode 100644
--- a/src/CPSA/Lib/Displayer.hs
+++ /dev/null
@@ -1,492 +0,0 @@
--- Displays protocols and preskeletons as S-expressions.
-
--- Copyright (c) 2009 The MITRE Corporation
---
--- This program is free software: you can redistribute it and/or
--- modify it under the terms of the BSD License as published by the
--- University of California.
-
-module CPSA.Lib.Displayer (displayProt, displayPreskel, displayNode) where
-
-import qualified Data.List as L
-import qualified Data.Set as S
-import CPSA.Lib.SExpr
-import CPSA.Lib.Algebra
-import CPSA.Lib.Declaration
-import CPSA.Lib.State
-import CPSA.Lib.Protocol
-import CPSA.Lib.Strand
-import CPSA.Lib.Utilities
-
-{-- Debugging support
-import CPSA.Lib.Debug
---}
-
--- Display of protocols
-
-displayProt :: Algebra t p g s e c => Prot t g -> SExpr ()
-displayProt p =
-    L () (S () "defprotocol" : S () (pname p) : S () (alg p) : rs)
-    where
-      rs = foldl f (map displayRule (rules p) ++ pcomment p)
-                   (reverse (roles p))
-      f rs r = displayRole r : rs
-
-displayRule :: Algebra t p g s e c => Rule t -> SExpr ()
-displayRule r =
-  L () (S () "defrule" :
-        S () (rlname r) :
-        displayGoal (rlgoal r) :
-        rlcomment r)
-
-displayGoal :: Algebra t p g s e c => Goal t -> SExpr ()
-displayGoal g =
-  L () [S () "forall",
-        L () (displayVars ctx vars),
-        displayImpl ctx g]
-  where
-    ctx = varsContext vars
-    vars = uvars g
-
-displayImpl :: Algebra t p g s e c => c -> Goal t -> SExpr ()
-displayImpl ctx g =
-  L () [S () "implies",
-        displayConj ctx (antec g),
-        displayDisj ctx (consq g) ]
-
-displayDisj :: Algebra t p g s e c => c -> [([t], [AForm t])] -> SExpr ()
-displayDisj _ [] = L () [S () "false"]
-displayDisj ctx [conj] = displayExistential ctx conj
-displayDisj ctx disj =
-  L () (S () "or" : map (displayExistential ctx) disj)
-
-displayExistential :: Algebra t p g s e c => c -> ([t], [AForm t]) -> SExpr ()
-displayExistential ctx ([], conj) =
-  displayConj ctx conj
-displayExistential ctx (evars, conj) =
-  L () [S () "exists",
-        L () (displayVars ctx' evars),
-        displayConj ctx' conj]
-  where
-    ctx' = addToContext ctx evars
-
-displayConj :: Algebra t p g s e c => c -> [AForm t] -> SExpr ()
-displayConj _ [] = error "DisplayConj: empty conjunct"
-displayConj ctx [form] = displayForm ctx form
-displayConj ctx forms = L () (S () "and" : map (displayForm ctx) forms)
-
-displayForm :: Algebra t p g s e c => c -> AForm t -> SExpr ()
-displayForm ctx (Length r s l) =
-  L () [S () "p", Q () (rname r), displayTerm ctx  s, N () l]
-displayForm ctx (Param r p _ s t) =
-  L () [S () "p", Q () (rname r), displayParam r p,
-        displayTerm ctx s, displayTerm ctx t]
-displayForm ctx (Prec (x, i) (y, j)) =
-  L () [S () "prec", displayTerm ctx x, N () i,
-        displayTerm ctx y, N () j]
-displayForm ctx (LeadsTo (x, i) (y, j)) =
-  L () [S () "leads-to", displayTerm ctx x, N () i,
-        displayTerm ctx y, N () j]
-displayForm ctx (Non t) =
-  L () [S () "non", displayTerm ctx t]
-displayForm ctx (Pnon t) =
-  L () [S () "pnon", displayTerm ctx t]
-displayForm ctx (Uniq t) =
-  L () [S () "uniq", displayTerm ctx t]
-displayForm ctx (UniqAt t (s, i)) =
-  L () [S () "uniq-at", displayTerm ctx t,
-        displayTerm ctx s, N () i]
-displayForm ctx (UgenAt t (s, i)) =
-  L () [S () "ugen-at", displayTerm ctx t,
-        displayTerm ctx s, N () i]
-displayForm ctx (Ugen t) =
-  L () [S () "ugen", displayTerm ctx t]
-displayForm ctx (AFact name fs) =
-  L () (S () "fact" : S () name : map (displayTerm ctx) fs)
-displayForm ctx (Equals t1 t2) =
-  L () [S () "=", displayTerm ctx t1, displayTerm ctx t2]
-
-displayParam :: Algebra t p g s e c => Role t -> t -> SExpr ()
-displayParam r t =
-  case displayTerm (varsContext (rvars r)) t of
-    S () var -> Q () var
-    _ -> error "displayParam: bad parameter"
-
--- Display of Roles
-
-displayRole :: Algebra t p g s e c => Role t -> SExpr ()
-displayRole r =
-    L () (S () "defrole" :
-          S () (rname r) :
-          L () (S () "vars" : displayVars ctx vars) :
-          L () (S () "trace" : displayTrace ctx (rtrace r)) :
-          displayRoleDeclarations ctx (rdecls r)
-           (rcomment r))
-    where
-      ctx = varsContext vars
-      vars = rvars r
-
-varsContext :: Algebra t p g s e c => [t] -> c
-varsContext vars =
-    addToContext emptyContext vars
-
-displayTerms :: Algebra t p g s e c => c -> [t] -> [SExpr ()]
-displayTerms ctx ts = map (displayTerm ctx) (L.sort ts)
-
-displayTermsUnsorted ::Algebra t p g s e c => c -> [t] -> [SExpr ()]
-displayTermsUnsorted ctx ts = map (displayTerm ctx) ts
-
-displayTermPlusMaybeOneInts :: Algebra t p g s e c => c ->
-                               RoleDeclInstList t -> [SExpr ()]
-displayTermPlusMaybeOneInts ctx ts = map (displayTermPlusMaybeOneInt ctx) ts
-
-displayTermPlusMaybeOneInt :: Algebra t p g s e c => c ->
-                              RoleDeclInst t -> SExpr ()
-displayTermPlusMaybeOneInt ctx dinst
-    | (length (dlocs dinst) > 1) || (length (dterms dinst) /= 1) =
-      assertError("Displayer.displayTermPlusMaybeOneInt: patterns unexpectedly exhausted in displayer")
-    | (length (dlocs dinst) == 1) = L () [displayTerm ctx
-                                          (head (dterms dinst)),
-                                          N () ((dlocs dinst)!!0)]
-    | otherwise = displayTerm ctx (head (dterms dinst))
-
-displayTermPlusMaybeOneNodes :: Algebra t p g s e c => c ->
-                               SkelDeclInstList t -> [SExpr ()]
-displayTermPlusMaybeOneNodes ctx ts = map (displayTermPlusMaybeOneNode ctx) ts
-
-displayTermPlusMaybeOneNode :: Algebra t p g s e c => c ->
-                              SkelDeclInst t -> SExpr ()
-displayTermPlusMaybeOneNode ctx dinst
-    | (length (dlocs dinst) > 1) || (length (dterms dinst) /= 1) =
-      assertError("Displayer.displayTermPlusMaybeOneNode patterns unexpectedly exhausted in displayer")
-    | (length (dlocs dinst) == 1) = L () [displayTerm ctx
-                                          (head (dterms dinst)),
-                                          L () [N () $ fst $ (dlocs dinst)!!0,
-                                                N () $ snd $ (dlocs dinst)!!0]]
-    | otherwise = displayTerm ctx (head (dterms dinst))
-
-displayOptional :: String -> [SExpr ()] -> [SExpr ()] -> [SExpr ()]
-displayOptional _ [] rest = rest
-displayOptional key value rest =
-    L () (S () key : value) : rest
-
-displayTrace :: Algebra t p g s e c => c ->
-                Trace t -> [SExpr ()]
-displayTrace ctx trace =
-    map displayDt trace
-    where
-      displayDt (In t) = L () [S () "recv", displayTerm ctx t]
-      displayDt (Out t) = L () [S () "send", displayTerm ctx t]
-      displayDt (Sync t) = L () (displayTran ctx t)
-
-displayTran :: Algebra t p g s e c => c -> Tran t -> [SExpr ()]
-displayTran ctx (Tran(Just now, Just next)) =
-  [S () "tran", displayTerm ctx now,  displayTerm ctx next]
-displayTran ctx (Tran(Just now, Nothing)) =
-  [S () "obsv", displayTerm ctx now]
-displayTran ctx (Tran(Nothing, Just next)) =
-  [S () "init", displayTerm ctx next]
-displayTran _ (Tran(Nothing, Nothing)) =
-  assertError("Displayer.displayTran: encountered sync node with current or next state")
-
--- Display of preskeletons
-
-displayPreskel :: Algebra t p g s e c => Preskel t g s e ->
-                  [SExpr ()] -> SExpr ()
-displayPreskel k rest =
-    L () (S () "defskeleton" :
-          S () (pname (protocol k)) :
-          L () (S () "vars" : displayVars ctx vars) :
-          foldr f (displayRest k ctx rest) (insts k))
-    where
-      ctx = varsContext vars
-      vars = kvars k
-      f i rest = displayInst ctx i : rest
-
--- Display the remainder of a preskeleton
-displayRest :: Algebra t p g s e c => Preskel t g s e ->
-               c -> [SExpr ()] -> [SExpr ()]
-displayRest k ctx rest =
-    displayOptional "precedes" (displayOrdering (orderings k))
-     (displayOptional "leadsto" (displayOrdering (leadsto k))
-      (displayOptional "priority" (displayPriorities (kpriorities k))
-       (displaySkelDeclarations ctx (decls k)
-        (displayOptional "facts" (map (displayFact ctx) (kfacts k))
-         (kcomment k ++
-          (displayOperation k ctx
-           (displayOptional "traces" traces rest)))))))
-  where
-    traces = map (L () . displayTrace ctx . trace) (insts k)
-
--- Display declarations
-displaySkelDeclarations :: Algebra t p g s e c =>
-                       c -> SkelDeclarations t ->
-                       [SExpr ()] -> [SExpr ()]
-displaySkelDeclarations ctx decls rest =
-    displaySkelDeclarationList ctx (declarationTags decls) decls rest
-
-displayRoleDeclarations :: Algebra t p g s e c =>
-                       c -> RoleDeclarations t ->
-                       [SExpr ()] -> [SExpr ()]
-displayRoleDeclarations ctx decls rest =
-    displayRoleDeclarationList ctx (declarationRoleTags decls) decls rest
-
--- Display an individually tagged declaration
-displaySkelDeclarationList :: Algebra t p g s e c => c ->
-                              [(String, (DeclOutFormat, Bool))] ->
-                              SkelDeclarations t -> [SExpr ()] -> [SExpr ()]
-displaySkelDeclarationList _ [] _ rest = rest
-displaySkelDeclarationList ctx (a:b) decls rest =
-    displaySkelDeclaration ctx a decls
-      (displaySkelDeclarationList ctx b decls rest)
-
-displayRoleDeclarationList :: Algebra t p g s e c => c ->
-                              [(String, (DeclOutFormat, Bool))] ->
-                              RoleDeclarations t -> [SExpr ()] -> [SExpr ()]
-displayRoleDeclarationList _ [] _ rest = rest
-displayRoleDeclarationList ctx (a:b) decls rest =
-    displayRoleDeclaration ctx a decls
-      (displayRoleDeclarationList ctx b decls rest)
-
-displaySkelDeclaration :: Algebra t p g s e c => c ->
-                          (String, (DeclOutFormat, Bool)) ->
-                          SkelDeclarations t -> [SExpr ()] -> [SExpr ()]
-displaySkelDeclaration ctx (tag, (BasicOutFmt, True)) decls rest =
-    displaySkelAuxDeclaration ctx tag (tagDecls tag decls) rest
-displaySkelDeclaration ctx (tag, (MultiTermOutFmt, True)) decls rest =
-    displaySkelAuxDeclaration2 ctx tag (tagDecls tag decls) rest
-displaySkelDeclaration ctx (tag, (BasicOutFmt, False)) decls rest =
-    displayOptional tag (displayTerms ctx (tagDeclsTermsOnly tag decls)) rest
-displaySkelDeclaration ctx (tag, (GeneralOutFmt, False)) decls rest =
-    displayOptional tag (displaySkelDeclGen ctx (tagDecls tag decls)) rest
-displaySkelDeclaration _ (tag, (LocOutFmt, False)) decls rest =
-    displayOptional tag (displaySkelDeclLoc (tagDecls tag decls)) rest
-displaySkelDeclaration ctx (tag, (BasicRoleOutFmt, False)) decls rest =
-    displayOptional tag (displayTermPlusMaybeOneNodes ctx (tagDecls tag decls)) rest
-displaySkelDeclaration ctx (tag, (MultiTermOutFmt, False)) decls rest =
-    displayOptional tag (map (\ item -> (L () (displayTermsUnsorted ctx (dterms item))))
-                         (tagDecls tag decls)) rest
-displaySkelDeclaration _ (tag,_) _ _ =
-    assertError("Displayer.displaySkelDeclaration: skel output format not supported yet: " ++ tag)
-
-displaySkelAuxDeclaration :: Algebra t p g s e c => c -> String ->
-        SkelDeclInstList t -> [SExpr ()] -> [SExpr ()]
-displaySkelAuxDeclaration ctx tag dis rest =
-    (L () (S () tag:(dAuxDecl (L.sort (L.nub $ map daux dis)) )):rest)
-    where
-      dAuxDecl [] = []
-      dAuxDecl (stag:r) = ((L () (S () stag:
-                                  (displayTerms ctx
-                                   (concatMap dterms
-                                    (filter (\di -> daux di == stag) dis)))))
-                           :dAuxDecl r)
-
-displaySkelAuxDeclaration2 :: Algebra t p g s e c => c -> String ->
-        SkelDeclInstList t -> [SExpr ()] -> [SExpr ()]
-displaySkelAuxDeclaration2 ctx tag dis rest =
-    (L () (S () tag:(dAuxDecl (L.sort (L.nub $ map daux dis)))):rest)
-    where
-      dAuxDecl [] = []
-      dAuxDecl (stag:r) = ((L () (S () stag:
-                                  (dAuxDecl2 (filter (\di -> daux di == stag) dis)))):
-                           (dAuxDecl r))
-      dAuxDecl2 [] = []
-      dAuxDecl2 (di:r) = ((L () (displayTermsUnsorted ctx (dterms di))):
-                          (dAuxDecl2 r))
-
-displayRoleAuxDeclaration :: Algebra t p g s e c => c -> String ->
-        RoleDeclInstList t -> [SExpr ()] -> [SExpr ()]
-displayRoleAuxDeclaration ctx tag dis rest =
-    (L () (S () tag:(dAuxDecl (L.sort (L.nub $ map daux dis)) )):rest)
-    where
-      dAuxDecl [] = []
-      dAuxDecl (stag:r) = ((L () (S () stag:
-                                  (displayTerms ctx
-                                   (concatMap dterms
-                                    (filter (\di -> daux di == stag) dis)))))
-                           :dAuxDecl r)
-
-displayRoleAuxDeclaration2 :: Algebra t p g s e c => c -> String ->
-        RoleDeclInstList t -> [SExpr ()] -> [SExpr ()]
-displayRoleAuxDeclaration2 ctx tag dis rest =
-    (L () (S () tag:(dAuxDecl (L.sort (L.nub $ map daux dis)))):rest)
-    where
-      dAuxDecl [] = []
-      dAuxDecl (stag:r) = ((L () (S () stag:
-                                  (dAuxDecl2 (filter (\di -> daux di == stag) dis)))):
-                           (dAuxDecl r))
-      dAuxDecl2 [] = []
-      dAuxDecl2 (di:r) = ((L () (displayTermsUnsorted ctx (dterms di))):
-                          (dAuxDecl2 r))
-
-displayRoleDeclaration :: Algebra t p g s e c => c ->
-                          (String, (DeclOutFormat, Bool)) ->
-                          RoleDeclarations t -> [SExpr ()] -> [SExpr ()]
-displayRoleDeclaration ctx (tag, (BasicOutFmt, True)) decls rest =
-    displayRoleAuxDeclaration ctx tag (tagDecls tag decls) rest
-displayRoleDeclaration ctx (tag, (BasicOutFmt, False)) decls rest =
-    displayOptional tag (displayTerms ctx (tagDeclsTermsOnly tag decls)) rest
-displayRoleDeclaration ctx (tag, (MultiTermOutFmt, True)) decls rest =
-    displayRoleAuxDeclaration2 ctx tag (tagDecls tag decls) rest
-displayRoleDeclaration ctx (tag, (MultiTermOutFmt, False)) decls rest =
-    displayOptional tag (map (\ item -> (L () (displayTermsUnsorted ctx (dterms item))))
-                         (tagDecls tag decls)) rest
-displayRoleDeclaration ctx (tag, (BasicRoleOutFmt, False)) decls rest =
-    displayOptional tag (displayTermPlusMaybeOneInts ctx (tagDecls tag decls)) rest
-displayRoleDeclaration ctx (tag, (GeneralOutFmt, False)) decls rest =
-    displayOptional tag (displayRoleDeclGen ctx (tagDecls tag decls)) rest
-displayRoleDeclaration _ (tag,_) _ _ =
-    assertError("Displayer.displayRoleDeclaration: role output format not supported yet: " ++ tag)
-
-displaySkelDeclGen :: (Algebra t p g s e c) => c -> SkelDeclInstList t ->
-                      [SExpr ()]
-displaySkelDeclGen _ [] = []
-displaySkelDeclGen ctx (d:ds) =
-    displaySkelDeclGenItem ctx d (displaySkelDeclGen ctx ds)
-
-displayRoleDeclGen :: (Algebra t p g s e c) => c -> RoleDeclInstList t ->
-                      [SExpr ()]
-displayRoleDeclGen _ [] = []
-displayRoleDeclGen ctx (d:ds) =
-    displayRoleDeclGenItem ctx d (displayRoleDeclGen ctx ds)
-
-displaySkelDeclGenItem :: (Algebra t p g s e c) => c -> SkelDeclInst t ->
-                          [SExpr ()] -> [SExpr ()]
-displaySkelDeclGenItem ctx dinst rest =
-    (L () ((L () (displayTermsUnsorted ctx ts)):(displayNodes ns)): rest)
-    where
-        ts = dterms dinst
-        ns = dlocs dinst
-
-displayRoleDeclGenItem :: (Algebra t p g s e c) => c -> RoleDeclInst t ->
-                          [SExpr ()] -> [SExpr ()]
-displayRoleDeclGenItem ctx dinst rest =
-    (L () ((L () (displayTermsUnsorted ctx ts)):(displayInts ns)): rest)
-    where
-        ts = dterms dinst
-        ns = dlocs dinst
-
-displaySkelDeclLoc :: (Algebra t p g s e c) => SkelDeclInstList t ->
-                      [SExpr ()]
-displaySkelDeclLoc [] = []
-displaySkelDeclLoc (d:ds) =
-    displaySkelDeclLocItem d (displaySkelDeclLoc ds)
-
-displaySkelDeclLocItem :: (Algebra t p g s e c) => SkelDeclInst t ->
-                          [SExpr ()] -> [SExpr ()]
-displaySkelDeclLocItem dinst rest =
-    displayNodes ns ++ rest
-    where
-      ns = dlocs dinst
-
-displayFact :: Algebra t p g s e c => c -> Fact t -> SExpr ()
-displayFact ctx (Fact name fs) =
-  L () (S () name : map (displayFterm ctx) fs)
-
-displayFterm :: Algebra t p g s e c => c -> FTerm t -> SExpr ()
-displayFterm _ (FSid s) = N () s
-displayFterm ctx (FTerm t) = displayTerm ctx t
-
-displayInst :: Algebra t p g s e c => c ->
-               Instance t e -> SExpr ()
-displayInst ctx s =
-    case listenerTerm s of
-      Just t -> L () [S () "deflistener", displayTerm ctx t]
-      Nothing ->
-          L () (S () "defstrand" :
-                S () (rname r) :
-                N () (height s) :
-                map (displayMaplet rctx ctx) maplets)
-          where
-            r = role s
-            domain = rvars r
-            maplets = L.sort (reify domain (env s))
-            rctx = varsContext domain
-
-displayMaplet :: Algebra t p g s e c => c -> c -> (t, t) -> SExpr ()
-displayMaplet domain range (x, t)=
-    L () [displayTerm domain x, displayTerm range t]
-
-displayPriorities :: [(Node,Int)] -> [SExpr ()]
-displayPriorities priorities =
-    map displayPriority priorities
-
-displayPriority :: (Node,Int) -> SExpr ()
-displayPriority ((s,i),p) =
-    L () [L () [N () s, N () i], N () p]
-
-displayOrdering :: [Pair] -> [SExpr ()]
-displayOrdering orderings =
-    map displayPair (L.sort orderings)
-
-displayPair :: Pair -> SExpr ()
-displayPair (n0, n1) =
-    L () [displayNode n0, displayNode n1]
-
-displayInts :: [Int] -> [SExpr ()]
-displayInts [] = []
-displayInts (i:is) = (N () i):(displayInts is)
-
-displayNodes :: [Node] -> [SExpr ()]
-displayNodes [] = []
-displayNodes (n:ns) = [displayNode n] ++ displayNodes ns
-
-displayNode :: Node -> SExpr ()
-displayNode (s, p) = L () [N () s, N () p]
-
--- Display the reason the preskeleton was created
-displayOperation :: Algebra t p g s e c => Preskel t g s e ->
-                    c -> [SExpr ()] -> [SExpr ()]
-displayOperation k ctx rest =
-    case operation k of
-      New -> rest
-      Contracted subst cause ->
-          let substitution = displaySubst ctx subst in
-          displayCause (L () (S () "contracted" : substitution)) cause
-      Displaced s s' role height cause ->
-          displayCause
-          (L () [S () "displaced", N () s, N () s', S () role, N () height])
-          cause
-      AddedStrand role height cause ->
-          displayCause
-          (L () [S () "added-strand", S () role, N () height]) cause
-      AddedListener t cause ->
-          displayCause (L () [S () "added-listener", displayOpTerm ctx t]) cause
-      AddedAbsence t1 t2 cause ->
-          displayCause (L () [S () "added-absence", displayOpTerm ctx t1,
-                                displayOpTerm ctx t2]) cause
-      AlgebraSolved subst cause ->
-          let substitution = displaySubst ctx subst in
-          displayCause (L () (S () "algebra-contracted" : substitution)) cause
-      Generalized method ->
-          let desc = displayMethod ctx method in
-          L () (S () "operation" : S () "generalization" : desc) : rest
-      Collapsed s s' ->
-          let desc = [N () s, N () s'] in
-          L () (S () "operation" : S () "collapsed" : desc) : rest
-    where
-      displayCause op (Cause dir node critical escape) =
-          L () (S () "operation" :
-                displayDirection dir :
-                op :
-                displayOpTerm ctx critical :
-                displayNode node :
-                displayOpTerms ctx (S.toList escape)) : rest
-      displayDirection Encryption = S () "encryption-test"
-      displayDirection Nonce = S () "nonce-test"
-      displayDirection StatePassing = S () "state-passing-test"
-      displayMethod _ (Deleted node) =
-          [S () "deleted", displayNode node]
-      displayMethod _ (Weakened (n0, n1)) =
-          [S () "weakened", L () [displayNode n0, displayNode n1] ]
-      displayMethod ctx (Separated t) =
-          [S () "separated", displayOpTerm ctx t]
-      displayMethod ctx (Forgot decls) =
-          [S () "forgot", L () (displaySkelDeclarations ctx decls [])]
-
--- Terms in the operation field may contain variables not in the skeleton
-displayOpTerm :: Algebra t p g s e c => c -> t -> SExpr ()
-displayOpTerm ctx t = displayTerm (addToContext ctx [t]) t
-
-displayOpTerms :: Algebra t p g s e c => c -> [t] -> [SExpr ()]
-displayOpTerms ctx ts = map (displayTerm (addToContext ctx ts)) (L.sort ts)
diff --git a/src/CPSA/Lib/Entry.hs b/src/CPSA/Lib/Entry.hs
--- a/src/CPSA/Lib/Entry.hs
+++ b/src/CPSA/Lib/Entry.hs
@@ -6,11 +6,10 @@
 -- modify it under the terms of the BSD License as published by the
 -- University of California.
 
-module CPSA.Lib.Entry (start, usage, abort, success, Options(..),
-                       defaultOptions, algOptions, algInterp,
-                       filterOptions, filterInterp, readSExpr,
-                       gentlyReadSExpr, outputHandle, writeSExpr,
-                       writeLnSExpr, cpsaVersion, comment,
+module CPSA.Lib.Entry (start, usage, abort, success, defaultMargin,
+                       defaultIndent, filterOptions, filterInterp,
+                       readSExpr, gentlyReadSExpr, outputHandle,
+                       writeSExpr, writeLnSExpr, cpsaVersion, comment,
                        writeComment, tryIO) where
 
 import Numeric
@@ -22,7 +21,6 @@
 import System.Exit
 import Data.Version
 import Paths_cpsa
-import qualified CPSA.Basic.Algebra
 import CPSA.Lib.SExpr
 import CPSA.Lib.Printer
 
@@ -67,117 +65,29 @@
       let footer = "\nDocumentation directory: " ++ datadir
       return (concat errs ++ usageInfo header options ++ footer)
 
--- CPSA options and default values
-
-data Options = Options {
-      optFile :: Maybe FilePath, -- Nothing specifies standard output
-      optAlg :: String,          -- Name of the algebra
-      optAnalyze :: Bool,        -- False when only expanding macros
-      optDoAnalyze :: Bool,      -- False when only printing inputs
-      optNoIsoChk :: Bool, -- True when not performing isomorphism checks
-      optCheckNoncesFirst :: Bool, -- True when checking nonces first
-      optTryOldStrandsFirst :: Bool, -- True when visiting old strands first
-      optTryYoungNodesFirst :: Bool, -- True when visiting young nodes first
-      optGoalsSat :: Bool , -- True when goals satisfied stops tree expansion
-      optLimit :: Int,          -- Step count limit
-      optBound :: Int,          -- Strand cound bound
-      optDepth :: Int,          -- Tree depth bound
-      optMargin :: Int,         -- Output line length
-      optIndent :: Int }        -- Pretty printing indent
-    deriving Show
-
-defaultOptions :: Options
-defaultOptions = Options {
-  optFile = Nothing,
-  optAlg = CPSA.Basic.Algebra.name,
-  optAnalyze = True,
-  optDoAnalyze = True,
-  optNoIsoChk = False,
-  optCheckNoncesFirst = False,
-  optTryOldStrandsFirst = False,
-  optTryYoungNodesFirst = False,
-  optGoalsSat = False,
-  optLimit = 2000,
-  optBound = 12,
-  optDepth = 0,
-  optMargin = 72,
-  optIndent = 2 }
-
 -- Command line option flags
 data Flag
     = Help                      -- Help
     | Info                      -- Version information
-    | Algebra String            -- Algebra
-    | Algebras                  -- Show algebras
     | Margin String             -- Output line length
     | Output String             -- Output file name
       deriving Show
 
-algOptions :: String -> [OptDescr Flag]
-algOptions defaultAlgebra =
-    [ Option ['o'] ["output"]  (ReqArg Output "FILE")  "output FILE",
-      Option ['m'] ["margin"]  (ReqArg Margin "INT")
-      ("set output margin (default " ++ show (optMargin defaultOptions) ++ ")"),
-      Option ['a'] ["algebra"]  (ReqArg Algebra "STRING")
-      ("algebra (default " ++ defaultAlgebra ++ ")"),
-      Option ['s'] ["show-algebras"] (NoArg Algebras)  "show algebras",
-      Option ['h'] ["help"]    (NoArg Help)          "show help message",
-      Option ['v'] ["version"] (NoArg Info)          "show version number" ]
-
-data Params = Params
-    { file :: Maybe FilePath,   -- Nothing specifies standard output
-      alg :: String,            -- Name of the algebra
-      margin :: Int }           -- Output line length
-    deriving Show
-
--- Interpret option flags
-algInterp :: String -> [String] -> [Flag] -> IO (Maybe FilePath, String, Int)
-algInterp alg algs flags =
-    loop flags (Params { file = Nothing, alg = alg,
-                         margin = optMargin defaultOptions })
-    where
-      loop [] (Params { file = file, alg = alg, margin = margin}) =
-          return (file, alg, margin)
-      loop (Output name : flags)  params
-          | file params == Nothing =
-              loop flags $ params { file = Just name }
-      loop (Margin value : flags) params =
-          case readDec value of
-            [(margin, "")] ->
-                loop flags $ params { margin = margin }
-            _ ->
-                do
-                  msg <- usage (algOptions alg) ["Bad value for margin\n"]
-                  abort msg
-      loop (Algebra name : flags) params
-          | elem name algs = loop flags $ params { alg = name }
-          | otherwise =
-              abort ("Algebra " ++ name ++ " not one of\n" ++ unlines algs)
-      loop (Algebras : _) _ =
-          success $ unlines algs
-      loop (Info : _) _ =
-          success cpsaVersion
-      loop (Help : _) _ =
-          do                    -- Show help then exit with success
-            msg <- usage (algOptions alg) []
-            success msg
-      loop _ _ =
-           do                   -- Show help then exit with failure
-             msg <- usage (algOptions alg) ["Bad option combination\n"]
-             abort msg
+defaultMargin :: Int
+defaultMargin = 72
 
 filterOptions :: [OptDescr Flag]
 filterOptions =
     [ Option ['o'] ["output"]  (ReqArg Output "FILE")  "output FILE",
       Option ['m'] ["margin"]  (ReqArg Margin "INT")
-      ("set output margin (default " ++ show (optMargin defaultOptions) ++ ")"),
+      ("set output margin (default " ++ show defaultMargin ++ ")"),
       Option ['h'] ["help"]    (NoArg Help)          "show help message",
       Option ['v'] ["version"] (NoArg Info)          "show version number" ]
 
 -- Interpret option flags
 filterInterp :: [Flag] -> IO (Maybe FilePath, Int)
 filterInterp flags =
-    loop flags Nothing (optMargin defaultOptions)
+    loop flags Nothing defaultMargin
     where
       loop [] file margin =
           return (file, margin)
@@ -222,12 +132,12 @@
       exitWith ExitSuccess
 
 -- S-expression pretty print parameters
-indent :: Int
-indent = optIndent defaultOptions
+defaultIndent :: Int
+defaultIndent = 2
 
 writeSExpr :: Handle -> Int -> SExpr a -> IO ()
 writeSExpr h margin sexpr =
-    hPutStrLn h (pp margin indent sexpr)
+    hPutStrLn h (pp margin defaultIndent sexpr)
 
 writeLnSExpr :: Handle -> Int -> SExpr a -> IO ()
 writeLnSExpr h margin sexpr =
diff --git a/src/CPSA/Lib/Expand.hs b/src/CPSA/Lib/Expand.hs
--- a/src/CPSA/Lib/Expand.hs
+++ b/src/CPSA/Lib/Expand.hs
@@ -1,19 +1,43 @@
--- Expands macros using definitions in the input.
+{-|
+Module:      CPSA.Lib.Expand
+Description: Macros
+Copyright:   (c) 2009 The MITRE Corporation
+License:     BSD
 
+Expand macros using definitions in the input.
+
+A macro definition has the form:
+
+@
+   (defmacro (NAME ARG*) BODY)
+@
+
+where @NAME@ and each @ARG@ is a symbol.
+
+The contents of a file can be included with:
+
+@
+   (include FILE)
+@
+
+where @FILE@ is a quoted string containing a file path.
+
+-}
+
 -- Copyright (c) 2009 The MITRE Corporation
 --
 -- This program is free software: you can redistribute it and/or
 -- modify it under the terms of the BSD License as published by the
 -- University of California.
 
-module CPSA.Lib.Expand (expand, readSExprs, Macro,
-                        expandSExpr, bound, getMacroName,
-                        getMacroArgs, getMacroBody) where
+module CPSA.Lib.Expand (expand, readSExprs, expandSExpr,
+                        Macro, getMacroName, getMacroArgs,
+                        getMacroBody, bound) where
 
 import Control.Monad
 import System.IO (openFile, IOMode (ReadMode))
-import CPSA.Lib.Entry (readSExpr, tryIO)
 import CPSA.Lib.SExpr
+import CPSA.Lib.Entry (readSExpr, tryIO)
 
 -- The macroexpand loop limit
 limit :: Int
@@ -23,6 +47,7 @@
 bound :: Int
 bound = 16
 
+-- | Expand the macros in the input.
 expand :: [SExpr Pos] -> IO [SExpr Pos]
 expand sexprs =
     do
@@ -60,6 +85,7 @@
             incsexprs <- readSExprs p
             foldM (expandSExpr bound) (macs, sexprs) incsexprs
 
+-- | Read all the S-expressions available from a handle.
 readSExprs :: PosHandle -> IO [SExpr Pos]
 readSExprs p =
     loop []
@@ -105,7 +131,7 @@
 
 symbol :: MonadFail m => SExpr Pos -> m String
 symbol (S _ string) = return string
-symbol x = fail (shows (annotation x) "Malformed macro: Expecting a symbol")
+symbol x = fail (shows (annotation x) "Expecting a symbol")
 
 -- Expand an S-expression using a given set of macros
 
diff --git a/src/CPSA/Lib/Loader.hs b/src/CPSA/Lib/Loader.hs
deleted file mode 100644
--- a/src/CPSA/Lib/Loader.hs
+++ /dev/null
@@ -1,1221 +0,0 @@
--- Loads protocols and preskeletons from S-expressions.
-
--- Copyright (c) 2009 The MITRE Corporation
---
--- This program is free software: you can redistribute it and/or
--- modify it under the terms of the BSD License as published by the
--- University of California.
-
-module CPSA.Lib.Loader (loadSExprs) where
-
-import Control.Monad
-import qualified Data.List as L
-import CPSA.Lib.Utilities
-import CPSA.Lib.SExpr
-import CPSA.Lib.Algebra
-import CPSA.Lib.AlgebraLibrary
-import CPSA.Lib.Declaration
-import CPSA.Lib.State
-import CPSA.Lib.Protocol
-import CPSA.Lib.Strand
-import CPSA.Lib.Characteristic
-
-{-- Debugging support
-import CPSA.Lib.Debug
---}
-
--- Load protocols and preskeletons from a list of S-expressions, and
--- then return a list of preskeletons.  The name of the algebra is
--- nom, and its variable generator is provided.
-
-loadSExprs :: (Algebra t p g s e c, MonadFail m) => String -> g ->
-              [SExpr Pos] -> m [Preskel t g s e]
-loadSExprs nom origin xs =
-    do
-      (_, ks) <- foldM (loadSExpr nom origin) ([], []) xs
-      return (reverse ks)
-
-loadSExpr :: (Algebra t p g s e c, MonadFail m) => String -> g ->
-             ([Prot t g], [Preskel t g s e]) -> SExpr Pos ->
-             m ([Prot t g], [Preskel t g s e])
-loadSExpr nom origin (ps, ks) (L pos (S _ "defprotocol" : xs)) =
-    do
-      p <- loadProt nom origin pos xs
-      return (p : ps, ks)
-loadSExpr _ _ (ps, ks) (L pos (S _ "defskeleton" : xs)) =
-    do
-      k <- findPreskel pos ps xs
-      return (ps, k : ks)
-loadSExpr _ _ (ps, ks) (L pos (S _ "defgoal" : xs)) =
-    do
-      k <- findGoal pos ps xs
-      return (ps, k : ks)
-loadSExpr nom origin (ps, ks) (L pos (S pos' "defpreskeleton" : xs)) =
-    loadSExpr nom origin (ps, ks) (L pos (S pos' "defskeleton" : xs))
-loadSExpr _ _ (ps, ks) (L _ (S _ "comment" : _)) = return (ps, ks)
-loadSExpr _ _ (ps, ks) (L _ (S _ "herald" : _)) = return (ps, ks)
-loadSExpr _ _ _ x = fail (shows (annotation x) "Malformed input")
-
--- load a protocol
-
-loadProt :: (Algebra t p g s e c, MonadFail m) => String -> g ->
-            Pos -> [SExpr Pos] -> m (Prot t g)
-loadProt nom origin pos (S _ name : S _ alg : x : xs)
-    | alg /= nom =
-        fail (shows pos $ "Expecting terms in algebra " ++ nom)
-    | otherwise =
-        do
-          (gen, rs, rest) <- loadRoles origin (x : xs)
-          (gen, r) <- mkListenerRole pos gen
-          -- Fake protocol is used only for loading rules
-          let fakeProt = mkProt name alg gen rs r [] []
-          (gen, rules, comment) <- loadRules fakeProt gen rest
-          -- Check for duplicate role names
-          validate (mkProt name alg gen rs r rules comment) rs
-    where
-      validate prot [] = return prot
-      validate prot (r : rs) =
-          case L.find (\r' -> rname r == rname r') rs of
-            Nothing -> validate prot rs
-            Just _ ->
-                let msg = "Duplicate role " ++ rname r ++
-                          " in protocol " ++ name in
-                fail (shows pos msg)
-loadProt _ _ pos _ = fail (shows pos "Malformed protocol")
-
-loadRoles :: (Algebra t p g s e c, MonadFail m) => g -> [SExpr Pos] ->
-             m (g, [Role t], [SExpr Pos])
-loadRoles gen (L pos (S _ "defrole" : x) : xs) =
-    do
-      (gen, r) <- loadRole gen pos x
-      (gen, rs, comment) <- loadRoles gen xs
-      return (gen, r : rs, comment)
-loadRoles gen xs =
-  return (gen, [], xs)
-
-loadRole :: (Algebra t p g s e c, MonadFail m) => g -> Pos ->
-            [SExpr Pos] -> m (g, Role t)
-loadRole gen pos (S _ name :
-                  L _ (S _ "vars" : vars) :
-                  L _ (S _ "trace" : evt : c) :
-                  rest) =
-    do
-      (gen, vars) <- loadVars gen vars
-      c <- loadTrace vars (evt : c)
-
-      let ts = tterms c
-      -- Drop unused variable declarations
-      let vs = L.filter (\v->elem v (varsInTerms ts)) vars
-
-      others <- loadGenRoleDecls (length c) vars (assocDecls rest)
-      predefs <- loadAllPredefRoleDecls (length c) vars rest
-
-      let dlist = filterVarsSeen (varsSeen vs) $ predefs ++ others
-      comment <- alist (map fst declFormats) rest
-      let reverseSearch = hasKey "reverse-search" rest
-      case termsWellFormed ((termsInDlist predefs) ++ ts ++ (termsInDlist others)) of
-        False -> fail (shows pos "Terms in role not well formed")
-        True -> return ()
-      prios <- mapM (loadRolePriority (length c)) (assoc "priority" rest)
-      let r = mkRole name vs c dlist prios comment reverseSearch
-      case roleWellFormed r of
-        Return () -> return (gen, r)
-        Fail msg -> fail (shows pos $ showString "Role not well formed: " msg)
-    where
-      termsInDlist olist = concat $ map dterms (concatMap snd olist)
-      filterVarsSeen tst olist =
-        map (\ (name,dlist) -> (name, filter (\ dinst -> all tst (dterms dinst))
-                                      dlist)) olist
-
-loadRole _ pos _ = fail (shows pos "Malformed role")
-
-loadAllPredefRoleDecls :: (Algebra t p g s e c, MonadFail m) => Int -> [t] ->
-                          [SExpr Pos] -> m [RoleDeclaration t]
-loadAllPredefRoleDecls height vars exprs =
-    do
-      let formats = map (\ (tag, (i,_)) -> (tag, declInputFormats !! i)) declFormats
-      result <- concatMapM (\ i -> loadPredefRoleDeclsAux height vars
-                                   (fst $ formats !! i) (snd $ formats !! i)
-                                   (assoc (fst $ formats !! i) exprs))
-                (nats (length formats))
-      return result
-
-loadAllPredefSkelDecls :: (Algebra t p g s e c, MonadFail m) => [Int] -> [t] ->
-                          [SExpr Pos] -> m ([SkelDeclaration t])
-loadAllPredefSkelDecls heights vars exprs =
-    do
-      let formats = map (\ (tag, (i,_)) -> (tag, declInputFormats !! i)) declFormats
-      result <- concatMapM (\ i -> loadPredefSkelDeclsAux heights vars
-                                   (fst $ formats !! i)
-                                   (snd $ formats !! i)
-                                   (assoc (fst $ formats !! i) exprs))
-                (nats (length formats))
-      return result
-
-loadPredefRoleDeclsAux :: (Algebra t p g s e c, MonadFail m) => Int ->
-                          [t] -> String ->
-                          (DeclInFormat, Bool, Bool) ->
-                          [SExpr Pos] -> m [(RoleDeclaration t)]
-loadPredefRoleDeclsAux _ _ _ _ [] = do return []
-loadPredefRoleDeclsAux height vars tag (fmt,areq,False) exprs =
-    do (tg,insts) <- loadPredefRoleDecls height vars tag "" fmt areq exprs
-       case (null insts) of
-         True -> return []
-         False -> return [(tg,insts)]
-loadPredefRoleDeclsAux height vars tag (fmt,areq,True)
-    ((L _ (S _ subtag:rest)):others) =
-    do
-        f <- loadPredefRoleDecls height vars tag subtag fmt areq rest
-        r <- loadPredefRoleDeclsAux height vars tag (fmt,areq,True) others
-        return [(fst f, ((snd f)++(concat $ map snd r)))]
-loadPredefRoleDeclsAux height vars tag (fmt,areq,True)
-    ((L pos1 ((Q pos subtag):rest)):others) =
-    do
-       r <- loadPredefRoleDeclsAux height vars tag (fmt,areq,True)
-             ((L pos1 ((S pos ("\"" ++ subtag ++ "\"")):rest)):others)
-       return r
-loadPredefRoleDeclsAux _ _ _ _ (x@(L _ ((N _ _):_)):_) =
-    fail (shows (annotation x) ("Malformed declaration: symbol or string subtag expected"))
-loadPredefRoleDeclsAux _ _ tag _ (x:_) =
-    fail (shows (annotation x) ("Malformed declaration: subtag required " ++ tag))
-
-loadPredefSkelDeclsAux :: (Algebra t p g s e c, MonadFail m) => [Int] ->
-                          [t] -> String ->
-                          (DeclInFormat, Bool, Bool) ->
-                          [SExpr Pos] -> m [(SkelDeclaration t)]
-loadPredefSkelDeclsAux _ _ _ _ [] = do return []
-loadPredefSkelDeclsAux height vars tag (fmt,areq,False) exprs =
-    do (tg,insts) <- loadPredefSkelDecls height vars tag "" fmt areq exprs
-       case (null insts) of
-         True -> return []
-         False -> return [(tg,insts)]
-loadPredefSkelDeclsAux height vars tag (fmt,areq,True)
-    ((L _ (S _ subtag:rest)):others) =
-    do
-        f <- loadPredefSkelDecls height vars tag subtag fmt areq rest
-        r <- loadPredefSkelDeclsAux height vars tag (fmt,areq,True) others
-        return [(fst f, ((snd f)++(concat $ map snd r)))]
-loadPredefSkelDeclsAux height vars tag (fmt,areq,True)
-    ((L pos1 ((Q pos subtag):rest)):others) =
-    do r <- loadPredefSkelDeclsAux height vars tag (fmt,areq,True)
-             ((L pos1 ((S pos ("\"" ++ subtag ++ "\"")):rest)):others)
-       return r
-loadPredefSkelDeclsAux _ _ _ _ (x@(L _ ((N _ _):_)):_) =
-    fail (shows (annotation x) ("Malformed declaration: symbol or string subtag expected"))
-loadPredefSkelDeclsAux _ _ tag _ (x:_) =
-     fail (shows (annotation x) ("Malformed declaration: subtag required " ++ tag))
--- loadPredefSkelDeclsAux _ _ _ (_,_,True) _ = do return []
-
-loadPredefRoleDecls :: (Algebra t p g s e c, MonadFail m) => Int -> [t] -> String ->
-                       String -> DeclInFormat -> Bool ->
-                       [SExpr Pos] -> m (RoleDeclaration t)
--- Anything with no expressions: not present, return an empty list of instances.
-loadPredefRoleDecls _ _ tag _ _ _ [] = do return (tag,[])
--- NullInFmt: return an empty instance.
-loadPredefRoleDecls _ _ tag stag NullInFmt _ _ =
-   return (tag, [declInstAux [] [] stag])
--- BasicInFmt, True format: get (Maybe Int, t) pairs, then reform.
-loadPredefRoleDecls height vars tag stag BasicInFmt True exprs =
-    do
-       -- Note: since areq = True, appropriate to use loadPosBaseTerms.
-       result <- loadPosBaseTerms vars exprs
-       return (tag, filter (\ di -> (all (< height) (dlocs di)) &&
-                                    (all (>= 0) (dlocs di))) $ map f result)
-    where
-       f (Nothing, t) = declInstAux [t] [] stag
-       f (Just p, t) = declInstAux [t] [p] stag
--- TwoTermInFmt, False format
-loadPredefRoleDecls height vars tag stag TwoTermInFmt False (x1:rest) =
-    do
-       inst1 <- loadRoleTermPairPlusMaybeOneLoc height vars stag x1
-       (tg, insts) <- loadPredefRoleDecls height vars tag stag
-                      TwoTermInFmt False rest
-       return (tg, (inst1:insts))
--- MultiTermInFmt, False format: load as generic, but
--- check max locations = 1
-loadPredefRoleDecls height vars tag stag MultiTermInFmt False (x1:rest) =
-    do
-       dinst <- loadGenRoleDecl height vars stag x1
-       (tg, insts) <- loadPredefRoleDecls height vars tag
-                      stag MultiTermInFmt False rest
-       case (length (dlocs dinst) > 1) of
-         True -> fail (shows (annotation x1) "Too many locations in declaration")
-         False -> return (tg, (dinst:insts))
--- LocInFmt, False format: get Int values
-loadPredefRoleDecls height _ tag stag LocInFmt False exprs =
-    do
-       results <- loadPositions height exprs
-       return (tag, map f results)
-    where
-       f pos = declInstAux [] [pos] stag
--- Default: not supported.
-loadPredefRoleDecls _ _ _ _ _ _ xs =
-    if (null xs)
-       then fail ("[ASSERT FAILED] Input format not supported")
-       else fail (shows (annotation (head xs)) "[ASSERT FAILED] Input format not supported")
-
-loadPredefSkelDecls :: (Algebra t p g s e c, MonadFail m) => [Int] -> [t] -> String ->
-                       String -> DeclInFormat -> Bool ->
-                       [SExpr Pos] -> m (SkelDeclaration t)
--- Anything with no expressions: not present, return an empty list of instances.
-loadPredefSkelDecls _ _ tag _ _ _ [] = return (tag,[])
--- NullInFmt format: return an empty instance.
-loadPredefSkelDecls _ _ tag stag NullInFmt _ _ =
-   return (tag, [declInstAux [] [] stag])
--- BasicInFmt, True format: get (Maybe Int, t) pairs, then reform.
-loadPredefSkelDecls _ vars tag stag BasicInFmt True exprs =
-    do
-       -- Note: since areq = True, appropriate to use loadBaseTerms.
-       result <- loadBaseTerms vars exprs
-       return (tag, map f result)
-    where
-       f t = declInstAux [t] [] stag
--- TwoTermInFmt, False format
-loadPredefSkelDecls heights vars tag stag TwoTermInFmt False (x1:rest) =
-    do
-       inst1 <- loadSkelTermPair vars stag x1
-       (tg, insts) <- loadPredefSkelDecls heights vars tag stag
-                      TwoTermInFmt False rest
-       return (tg, (inst1:insts))
--- (Just 2, Nothing), Nothing, False format: load as generic, but
--- check max locations = 1
-loadPredefSkelDecls heights vars tag stag MultiTermInFmt False (x1:rest) =
-    do
-       dinst <- loadGenSkelDecl heights vars stag x1
-       (tg, insts) <- loadPredefSkelDecls heights vars tag stag MultiTermInFmt
-                      False rest
-       case (length (dlocs dinst) > 1) of
-         True -> fail (shows (annotation x1) "Too many locations in declaration")
-         False -> return (tg, (dinst:insts))
-loadPredefSkelDecls heights _ tag stag LocInFmt False exprs =
-    do
-       result <- loadNodes heights exprs
-       return (tag, map f result)
-    where
-       f pos = declInstAux [] [pos] stag
--- Default: not supported.
-loadPredefSkelDecls _ _ _ _ _ _ xs =
-    if (null xs)
-       then fail ("[ASSERT FAILED] Input format not supported")
-       else fail (shows (annotation (head xs)) "[ASSERT FAILED] Input format not supported")
-
-loadRoleTermPairPlusMaybeOneLoc :: (Algebra t p g s e c, MonadFail m) => Int ->
-                                   [t] -> String ->
-                                   SExpr Pos -> m (RoleDeclInst t)
-loadRoleTermPairPlusMaybeOneLoc _ vars stag (L _ [x1, x2]) =
-    do
-       t1 <- loadTerm vars False x1
-       t2 <- loadTerm vars False x2
-       return (declInstAux [t1,t2] [] stag)
-loadRoleTermPairPlusMaybeOneLoc height vars stag (L _ [x1, x2, x3]) =
-    do
-       t1 <- loadTerm vars False x1
-       t2 <- loadTerm vars False x2
-       p <- loadIntMax height x3
-       return (declInstAux [t1,t2] [p] stag)
-loadRoleTermPairPlusMaybeOneLoc _ _ _ x = fail
-                        (shows (annotation x) "Malformed pair of terms")
-
-loadSkelTermPair :: (Algebra t p g s e c, MonadFail m) => [t] -> String ->
-                                   SExpr Pos -> m (SkelDeclInst t)
-loadSkelTermPair vars stag (L _ [x1, x2]) =
-    do
-       t1 <- loadTerm vars False x1
-       t2 <- loadTerm vars False x2
-       return (declInstAux [t1,t2] [] stag)
-loadSkelTermPair _ _ x = fail
-                        (shows (annotation x) "Malformed pair of terms")
-
-loadRolePriority :: MonadFail m => Int -> SExpr Pos -> m (Int, Int)
-loadRolePriority n (L _ [N _ i, N _ p])
-    | 0 <= i && i < n = return (i, p)
-loadRolePriority _ x = fail (shows (annotation x) "Malformed priority")
-
--- Are the vars in t a subset of ones in t.
-varsSeen :: Algebra t p g s e c => [t] -> t -> Bool
-varsSeen vs t =
-    all (flip elem vs) (addVars [] t)
-
-showst :: Algebra t p g s e c => t -> ShowS
-showst t =
-    shows $ displayTerm (addToContext emptyContext [t]) t
-
--- This is the only place a role is generated with an empty name.
--- This is what marks a strand as a listener.
-mkListenerRole :: (Algebra t p g s e c, MonadFail m) => Pos -> g ->
-                  m (g, Role t)
-mkListenerRole pos g =
-  do
-    (g, xs) <- loadVars g [L pos [S pos "x", S pos "mesg"]]
-    case xs of
-      [x] -> return (g, mkRole "" [x] [In x, Out x] [] [] [] False)
-      _ -> fail (shows pos "Loader.mkListenerRole: Expecting one term")
-
--- Protocol Rules
-
-loadRules :: (Algebra t p g s e c, MonadFail m) => Prot t g -> g ->
-             [SExpr Pos] -> m (g, [Rule t], [SExpr ()])
-loadRules prot g (L pos (S _ "defrule" : x) : xs) =
-    do
-      (g, r) <- loadRule prot g pos x
-      (g, rs, comment) <- loadRules prot g xs
-      return (g, r : rs, comment)
-loadRules _ _ (L pos (S _ "defrole" : S _ name : _) : _) =
-    fail (shows pos ("defrole " ++ name ++ " misplaced"))
-loadRules _ g xs =
-    do
-      badKey ["defrole", "defrule"] xs
-      comment <- alist [] xs    -- Ensure remaining is an alist
-      return (g, [], comment)
-
-loadRule :: (Algebra t p g s e c, MonadFail m) => Prot t g -> g ->
-            Pos -> [SExpr Pos] -> m (g, Rule t)
-loadRule prot g pos (S _ name : x : xs) =
-  do
-    (g, goal, _) <- loadSentence UnusedVars pos prot g x
-    comment <- alist [] xs      -- Ensure remaining is an alist
-    return (g, Rule { rlname = name,
-                      rlgoal = goal,
-                      rlcomment = comment })
-loadRule _ _ pos _ = fail (shows pos "Malformed rule")
-
--- Association lists
-
--- Make an association list into a comment.  The first argument is the
--- set of keys of key-value pairs to be dropped from the comment.
-
-alist :: MonadFail m => [String] -> [SExpr Pos] -> m [SExpr ()]
-alist _ [] = return []
-alist keys (a@(L _ (S _ key : _)) : xs)
-    | elem key keys = alist keys xs
-    | otherwise =
-        do
-          xs <- alist keys xs
-          return $ strip a : xs
-alist _ xs = fail (shows (annotation $ head xs) "Malformed association list")
-
--- Strip positions from an S-expression
-
-strip :: SExpr a -> SExpr ()
-strip (S _ s) = S () s
-strip (Q _ s) = Q () s
-strip (N _ n) = N () n
-strip (L _ l) = L () (map strip l)
-
--- Lookup value in alist, appending values with the same key
-assoc :: String -> [SExpr a] -> [SExpr a]
-assoc key alist =
-    concat $ assocAux key alist
-
--- Lookup value in alist
-assocAux :: String -> [SExpr a] -> [[SExpr a]]
-assocAux key alist =
-    [ rest | L _ (S _ head : rest) <- alist, key == head ]
-
--- See if alist has a key
-hasKey :: String -> [SExpr a] -> Bool
-hasKey key alist =
-    any f alist
-    where
-      f (L _ (S _ head : _)) = head == key
-      f _ = False
-
--- Complain if alist has a bad key
-badKey :: MonadFail m => [String] -> [SExpr Pos] -> m ()
-badKey keys (L _ (S pos key : _) : xs)
-    | elem key keys =
-      fail (shows pos (key ++ " declaration too late in enclosing form"))
-    | otherwise = badKey keys xs
-badKey _ _ = return ()
-
-loadTrace :: (Algebra t p g s e c, MonadFail m) => [t] ->
-             [SExpr Pos] -> m [Event t]
-loadTrace vars xs = mapM (loadEvt vars) xs
-
-loadEvt :: (Algebra t p g s e c, MonadFail m) => [t] ->
-          SExpr Pos -> m (Event t)
-loadEvt vars (L _ [S _ "recv", t]) =
-    do
-      t <- loadTerm vars True t
-      return (In t)
-loadEvt vars (L _ [S _ "send", t]) =
-    do
-      t <- loadTerm vars True t
-      return (Out t)
-loadEvt vars (L _ [S _ "tran", t0, t1]) =
-    do
-      t0 <- loadTerm vars True t0
-      t1 <- loadTerm vars True t1
-      return $ Sync $ Tran (Just t0, Just t1)
-loadEvt vars (L _ [S _ "obsv", t0]) =
-    do
-      t0 <- loadTerm vars True t0
-      return $ Sync $ Tran (Just t0, Nothing)
-loadEvt vars (L _ [S _ "init", t0]) =
-    do
-      t0 <- loadTerm vars True t0
-      return $ Sync $ Tran (Nothing, Just t0)
-loadEvt _ (L pos [S _ dir, _]) =
-    fail (shows pos $ "Malformed direction: " ++ dir)
-loadEvt _ x = fail (shows (annotation x) "Malformed event")
-
-loadBaseTerms :: (Algebra t p g s e c, MonadFail m) => [t] -> [SExpr Pos] -> m [t]
-loadBaseTerms _ [] = return []
-loadBaseTerms vars (x : xs) =
-    do
-      t <- loadBaseTerm vars x
-      ts <- loadBaseTerms vars xs
-      return (adjoin t ts)
-
-maybeLoadBaseTerm :: (Algebra t p g s e c, MonadFail m) => [t] ->
-                     SExpr Pos -> m (Maybe t)
-maybeLoadBaseTerm vars x =
-    do
-      t <- loadTerm vars False x
-      case isAtom t of
-         True -> return (Just t)
-         False -> return Nothing
-
-loadBaseTerm :: (Algebra t p g s e c, MonadFail m) => [t] -> SExpr Pos -> m t
-loadBaseTerm vars x =
-    do
-      mt <- maybeLoadBaseTerm vars x
-      case mt of
-        Just t -> return t
-        Nothing -> fail (shows (annotation x) "Expecting an atom")
-
-loadPosBaseTerms :: (Algebra t p g s e c, MonadFail m) => [t] ->
-                    [SExpr Pos] -> m [(Maybe Int, t)]
-loadPosBaseTerms _ [] = return []
-loadPosBaseTerms vars (x : xs) =
-    do
-      t <- loadPosBaseTerm vars x
-      ts <- loadPosBaseTerms vars xs
-      return (t:ts)
-
-loadPosBaseTerm :: (Algebra t p g s e c, MonadFail m) => [t] ->
-                   SExpr Pos -> m (Maybe Int, t)
-loadPosBaseTerm vars x'@(L _ [x, N _ opos])
-    | opos < 0 =
-        fail (shows (annotation x')
-              "Expecting a non-negative trace length")
-    | otherwise =
-        do
-          t <- loadBaseTerm vars x
-          return (Just opos, t)
-loadPosBaseTerm vars x =
-    do
-      t <- loadTerm vars False x
-      case isAtom t of
-        True -> return (Nothing, t)
-        False -> fail (shows (annotation x) "Expecting an atom")
-
-loadPositions :: MonadFail m => Int -> [SExpr Pos] -> m [Int]
-loadPositions _ [] = return []
-loadPositions height (x : xs) =
-    do
-      p <- loadPosition height x
-      ps <- loadPositions height xs
-      return (p:ps)
-
-loadPosition :: MonadFail m => Int -> SExpr Pos -> m Int
-loadPosition height x@(N _ pos)
-    | pos < 0 = fail (shows (annotation x) "Expecting a non-negative height")
-    | pos >= height = fail (shows (annotation x) "Height out of range")
-    | otherwise = do return pos
-loadPosition _ x = fail (shows (annotation x) "Expecting an integer height")
-
--- Find protocol and then load a preskeleton.
-
-findPreskel :: (Algebra t p g s e c, MonadFail m) => Pos ->
-               [Prot t g] -> [SExpr Pos] ->
-               m (Preskel t g s e)
-findPreskel pos ps (S _ name : xs) =
-    case L.find (\p -> name == pname p) ps of
-      Nothing -> fail (shows pos $ "Protocol " ++ name ++ " unknown")
-      Just p -> loadPreskel pos p xs
-findPreskel pos _ _ = fail (shows pos "Malformed skeleton")
-
-loadPreskel :: (Algebra t p g s e c, MonadFail m) => Pos ->
-               Prot t g -> [SExpr Pos] ->
-               m (Preskel t g s e)
-loadPreskel pos p (L _ (S _ "vars" : vars) : xs) =
-    do
-      (gen, kvars) <- loadVars (pgen p) vars
-      loadInsts pos p kvars gen [] xs
-loadPreskel pos _ _ = fail (shows pos "Malformed skeleton")
-
-loadInsts :: (Algebra t p g s e c, MonadFail m) => Pos ->
-             Prot t g -> [t] -> g -> [Instance t e] ->
-             [SExpr Pos] -> m (Preskel t g s e)
-loadInsts top p kvars gen insts (L pos (S _ "defstrand" : x) : xs) =
-    case x of
-      S _ role : N _ height : env ->
-          do
-            (gen, i) <- loadInst pos p kvars gen role height env False
-            loadInsts top p kvars gen (i : insts) xs
-      _ ->
-          fail (shows pos "Malformed defstrand")
-loadInsts top p kvars gen insts (L pos (S _ "defstrandmax" : x) : xs) =
-    case x of
-      S _ role : N _ height : env ->
-          do
-            (gen, i) <- loadInst pos p kvars gen role height env True
-            loadInsts top p kvars gen (i : insts) xs
-      S _ role : env ->
-          do
-            (gen, i) <- loadInst pos p kvars gen role 0 env True
-            loadInsts top p kvars gen (i : insts) xs
-      _ ->
-          fail (shows pos "Malformed defstrandmax")
-loadInsts top p kvars gen insts (L pos (S _ "deflistener" : x) : xs) =
-    case x of
-      [term] ->
-          do
-            (gen, i) <- loadListener p kvars gen term
-            loadInsts top p kvars gen (i : insts) xs
-      _ ->
-          fail (shows pos "Malformed deflistener")
-loadInsts top p kvars gen insts xs =
-    do
-      badKey ["defstrand", "deflistener", "defstrandmax"] xs
-      _ <- alist [] xs          -- Check syntax of xs
-      others <- loadGenSkelDecls heights kvars (assocDecls xs)
-      predefs <- loadAllPredefSkelDecls heights kvars xs
-      priorities <- loadPriorities (assoc "priority" xs) insts'
-      (gen, gs) <- loadGoals top p gen goals
-      loadRest top kvars p gs gen insts' order leadsto
-        (predefs ++ others) fs kcomment priorities pov
-    where
-      insts' = reverse insts
-      heights = map (\ inst -> length $ trace inst) insts'
-      order = assoc "precedes" xs
-      leadsto = assoc "leadsto" xs
-      fs = assoc "facts" xs
-      goals = assoc "goals" xs
-      pov = assoc "pov" xs
-      kcomment =
-        loadComment "goals" goals ++
-        loadComment "comment" (assoc "comment" xs)
-
-loadComment :: String -> [SExpr Pos] -> [SExpr ()]
-loadComment _ [] = []
-loadComment key comment =
-  [L () (S () key : map strip comment)]
-
-loadPriorities :: (Algebra t p g s e c, MonadFail m) => [SExpr Pos] ->
-                  [Instance t e] -> m [((Int,Int),Int)]
-loadPriorities [] _ = return []
-loadPriorities ((L pos [L _ [N _ s, N _ i], N _ p]) : rest) insts
-    | (s < 0 || s >= (length insts) || (i < 0) || (i > height (insts !! s))) =
-      fail (shows pos "Malformed node in priority declaration")
-    | otherwise =
-        case trace (insts !! s) !! i of
-          Out _ -> fail (shows pos "Priority declaration disallowed on sending")
-          Sync (Tran (Nothing, _))
-            -> fail (shows pos
-                     "Priority declaration disallowed on initializers")
-          _ -> do
-            others <- loadPriorities rest insts
-            return (((s,i),p) : others)
-loadPriorities (x : _) _ = fail (shows (annotation x) "Malformed priority")
-
--- Lookup value in alist, appending values with the same key
-assocDecls :: [SExpr a] -> [(String,[SExpr a])]
-assocDecls alist =
-    [("decl " ++ key, concat [ rest | L _ (S _ head : (S _ head' : rest)) <- alist,
-                    "decl" == head, key == head' ]) | key <- keys]
-    where
-      keys = [ key | L _ (S _ head : (S _ key : _)) <- alist, head=="decl" ]
-
-loadInst :: (Algebra t p g s e c, MonadFail m) => Pos ->
-            Prot t g -> [t] -> g -> String -> Int ->
-            [SExpr Pos] -> Bool -> m (g, Instance t e)
-loadInst pos p kvars gen role height env count_from_max =
-    do
-      r <- lookupRole pos p role
-      let height' = if count_from_max then ((length (rtrace r)) - height)
-                                      else height
-      case height' < 1 || height' > length (rtrace r) of
-        True -> fail (shows pos "Bad height")
-        False ->
-            do
-              let vars = rvars r
-              (gen', env') <- foldM (loadMaplet kvars vars) (gen, emptyEnv) env
-              return (mkInstance gen' r env' height')
-
-lookupRole :: MonadFail m => Pos -> Prot t g -> String -> m (Role t)
-lookupRole _ p role  | role == "" =
-    return $ listenerRole p
-lookupRole pos p role =
-    case L.find (\r -> role == rname r) (roles p) of
-      Nothing ->
-          fail (shows pos $ "Role " ++ role ++ " not found in " ++ pname p)
-      Just r -> return r
-
-loadMaplet :: (Algebra t p g s e c, MonadFail m) => [t] -> [t] ->
-              (g, e) -> SExpr Pos -> m (g, e)
-loadMaplet kvars vars env (L pos [domain, range]) =
-    do
-      t <- loadTerm vars False domain
-      t' <- loadTerm kvars False range
-      case match t t' env of
-        env' : _ -> return env'
-        [] -> fail (shows pos "Domain does not match range")
-loadMaplet _ _ _ x = fail (shows (annotation x) "Malformed maplet")
-
-loadListener :: (Algebra t p g s e c, MonadFail m) => Prot t g ->
-                [t] -> g -> SExpr Pos -> m (g, Instance t e)
-loadListener p kvars gen x =
-    do
-      t <- loadTerm kvars False x
-      return $ mkListener p gen t
-
-loadRest :: (Algebra t p g s e c, MonadFail m) => Pos -> [t] ->
-            Prot t g -> [Goal t] -> g -> [Instance t e] ->
-            [SExpr Pos] -> [SExpr Pos] -> SkelDeclList t ->
-            [SExpr Pos] -> [SExpr ()] -> [((Int,Int),Int)] ->
-            [SExpr Pos] -> m (Preskel t g s e)
-loadRest pos vars p gs gen insts orderings leadsto decls
-         fs comment priorities pov =
-    do
-      case null insts of
-        True -> fail (shows pos "No strands")
-        False -> return ()
-      let heights = map height insts
-      o <- loadOrderings heights orderings True
-      l <- loadOrderings heights leadsto False
-      fs <- mapM (loadFact heights vars) fs
-      (pov, prob) <- loadPov pos p pov
-      checkProb pos (length insts) prob
-      let k = mkPreskel gen p gs insts o l decls fs comment priorities pov prob
-      case termsWellFormed $ (termsInDlist decls) ++ kterms k of
-        True -> return ()
-        False -> fail (shows pos "Terms in skeleton not well formed:" ++ show (termsInDlist decls ++ kterms k))
-      case verbosePreskelWellFormed k of
-        Return () -> return k
-        Fail msg -> fail $ shows pos
-                    $ showString "Skeleton not well formed: " msg
-
-      where
-        termsInDlist olist = concat $ map dterms (concatMap snd olist)
-
-loadGenSkelDecls :: (Algebra t p g s e c, MonadFail m) => [Int] -> [t] ->
-                    [(String,[SExpr Pos])] -> m [SkelDeclaration t]
-loadGenSkelDecls _ _ [] = return []
-loadGenSkelDecls heights vars ((name,rawds):b) =
-    do
-      a' <- loadGenSkelDeclList heights vars rawds
-      b' <- loadGenSkelDecls heights vars b
-      return ((name,a'):b')
-
-loadGenSkelDeclList :: (Algebra t p g s e c, MonadFail m) => [Int] ->
-                       [t] -> [SExpr Pos] ->
-                       m (SkelDeclInstList t)
-loadGenSkelDeclList _ _ [] = return []
-loadGenSkelDeclList heights vars (a:b) =
-    do
-      a' <- loadGenSkelDecl heights vars "" a
-      b' <- loadGenSkelDeclList heights vars b
-      return (a':b')
-
-loadGenSkelDecl :: (Algebra t p g s e c, MonadFail m) => [Int] ->
-                   [t] -> String ->
-                   SExpr Pos -> m (SkelDeclInst t)
-loadGenSkelDecl heights vars stag (L _ (tlist:llist)) =
-    do
-      ts <- loadTerms vars tlist
-      ls <- loadNodes heights llist
-      return (declInstAux ts ls stag)
-loadGenSkelDecl _ _ _ x'@(L _ []) =
-    fail (shows (annotation x') "Malformed declaration: Expecting a list of terms in generic declaration")
-loadGenSkelDecl _ _ _ x =
-    fail (shows (annotation x) "Malformed declaration: expecting a list")
-
-loadGenRoleDecls :: (Algebra t p g s e c, MonadFail m) => Int -> [t] ->
-                    [(String,[SExpr Pos])] -> m [RoleDeclaration t]
-loadGenRoleDecls _ _ [] = return []
-loadGenRoleDecls height vars ((name,rawds):b) =
-    do
-      a' <- loadGenRoleDeclList height vars rawds
-      b' <- loadGenRoleDecls height vars b
-      return ((name,a'):b')
-
-loadGenRoleDeclList :: (Algebra t p g s e c, MonadFail m) => Int ->
-                       [t] -> [SExpr Pos] ->
-                       m (RoleDeclInstList t)
-loadGenRoleDeclList _ _ [] = return []
-loadGenRoleDeclList height vars (a:b) =
-    do
-      a' <- loadGenRoleDecl height vars "" a
-      b' <- loadGenRoleDeclList height vars b
-      return (a':b')
-
-loadGenRoleDecl :: (Algebra t p g s e c, MonadFail m) => Int -> [t] -> String ->
-                   SExpr Pos -> m (RoleDeclInst t)
-loadGenRoleDecl height vars stag (L _ (tlist:llist)) =
-    do
-      ts <- loadTerms vars tlist
-      ls <- loadIntsMax height llist
-      return (declInstAux ts ls stag)
-loadGenRoleDecl _ _ _ x'@(L _ []) =
-    fail (shows (annotation x') "Malformed declaration: Expecting a list of terms in generic declaration")
-loadGenRoleDecl _ _ _ x =
-    fail (shows (annotation x) "Malformed declaration: expecting a list")
-
-loadOrderings :: MonadFail m => [Int] -> [SExpr Pos] -> Bool -> m [Pair]
-loadOrderings heights x strict =
-    foldM f [] x
-    where
-      f ns x =
-          do
-            np <- loadPair heights x strict
-            return (adjoin np ns)
-
-loadPair :: MonadFail m => [Int] -> SExpr Pos -> Bool -> m Pair
-loadPair heights (L pos [x0, x1]) strict =
-    do
-      n0 <- loadNode heights x0
-      n1 <- loadNode heights x1
-      case strict && fst n0 == fst n1 of  -- Same strand
-        True -> fail (shows pos "Malformed pair -- nodes in same strand")
-        False -> return (n0, n1)
-loadPair _ x _ = fail (shows (annotation x) "Malformed pair")
-
-loadTerms :: (Algebra t p g s e c, MonadFail m) => [t] -> SExpr Pos -> m [t]
-loadTerms _ (L _ []) = return []
-loadTerms vars (L pos (head:rest)) =
-    do
-      a <- loadTerm vars False head
-      b <- loadTerms vars (L pos rest)
-      return (a:b)
-loadTerms _ x = fail (shows (annotation x) "Malformed list of terms")
-
-loadNodes :: MonadFail m => [Int] -> [SExpr Pos] -> m [Node]
-loadNodes _ [] = return []
-loadNodes heights (head:rest) =
-    do
-      b <- loadNodes heights rest
-      a <- loadNode heights head
-      return (a:b)
-
-loadIntsMax :: MonadFail m => Int -> [SExpr Pos] -> m [Int]
-loadIntsMax _ [] = return []
-loadIntsMax max (a:b) =
-    do
-      a <- loadIntMax max a
-      b <- loadIntsMax max b
-      return (a:b)
-
-loadIntMax :: MonadFail m => Int -> SExpr Pos -> m Int
-loadIntMax max (N pos x)
-    | x < 0 = fail (shows pos "Malformed declaration: Negative position in role")
-    | x >= max = fail (shows pos "Malformed declaration: Bad position in role")
-    | otherwise = return x
-loadIntMax _ x = fail (shows (annotation x) "Malformed declaration: position")
-
-loadNode :: MonadFail m => [Int] -> SExpr Pos -> m Node
-loadNode heights (L pos [N _ s, N _ p])
-    | s < 0 = fail (shows pos "Malformed node: Negative strand in node")
-    | p < 0 = fail (shows pos "Malformed node: Negative position in node")
-    | otherwise =
-        case height heights s of
-          Nothing -> fail (shows pos "Malformed node: Bad strand in node")
-          Just h | p < h -> return (s, p)
-          _ -> fail (shows pos "Malformed node: Bad position in node")
-    where
-      height [] _ = Nothing
-      height (x: xs) s          -- Assume s non-negative
-          | s == 0 = Just x
-          | otherwise = height xs (s - 1)
-loadNode _ x = fail (shows (annotation x) "Malformed node")
-
-loadFact :: (Algebra t p g s e c, MonadFail m) =>
-            [Int] -> [t] -> SExpr Pos -> m (Fact t)
-loadFact heights vars (L _ (S _ name : fs)) =
-  do
-    fs <- mapM (loadFterm heights vars) fs
-    return $ Fact name fs
-loadFact _ _ x =
-  fail (shows (annotation x) "Malformed fact")
-
-loadFterm :: (Algebra t p g s e c, MonadFail m) =>
-             [Int] -> [t] -> SExpr Pos -> m (FTerm t)
-loadFterm heights _ (N pos s)
-  | 0 <= s && s < length heights = return $ FSid s
-  | otherwise = fail (shows pos ("Bad strand in fact: " ++ show s))
-loadFterm _ vars x =
-  do
-    t <- loadTerm vars False x
-    return $ FTerm t
-
-loadPov :: (Algebra t p g s e c, MonadFail m) => Pos -> Prot t g ->
-           [SExpr Pos] -> m (Maybe (Preskel t g s e), [Sid])
-loadPov _ _ [] = return (Nothing, [])
-loadPov pos p [L _ xs, x] =
-  do
-    prob <- mapM loadInt xs
-    k <- loadPovPreskel pos p x
-    return (Just k, prob)
-loadPov pos _ _ = fail (shows pos "Bad POV within a skeleton")
-
-loadInt :: MonadFail m => SExpr Pos -> m Int
-loadInt (N _ n) = return n
-loadInt x = fail (shows (annotation x) "Expecting an integer")
-
-loadPovPreskel :: (Algebra t p g s e c, MonadFail m) => Pos -> Prot t g ->
-                  SExpr Pos -> m (Preskel t g s e)
-loadPovPreskel _ p (L pos (S _ "defskeleton" : S _ name : xs))
-  | pname p == name = loadPreskel pos p xs
-  | otherwise = fail (shows pos $ "Protocol " ++ name ++ " mismatch")
-loadPovPreskel pos _ _ = fail (shows pos "Malformed defskeleton")
-
-checkProb :: MonadFail m => Pos -> Int -> [Sid] -> m ()
-checkProb pos nstrands prob =
-  mapM_ f prob
-  where
-    f s | s >= 0 && s < nstrands = return ()
-        | otherwise = fail (shows pos "Bad problem in POV")
-
--- Security Goals
-
--- Load a defgoal form
-findGoal :: (Algebra t p g s e c, MonadFail m) => Pos ->
-            [Prot t g] -> [SExpr Pos] -> m (Preskel t g s e)
-findGoal pos ps (S _ name : x : xs) =
-    case L.find (\p -> name == pname p) ps of
-      Nothing -> fail (shows pos $ "Protocol " ++ name ++ " unknown")
-      Just p ->
-        do
-          (g, goal, antec) <- loadSentence RoleSpec pos p (pgen p) x
-          let (gs, xs') = findAlist xs
-          (g, goals) <- loadGoals pos p g gs
-          _ <- alist [] xs'          -- Check syntax of xs
-          let kcomment =
-                loadComment "goals" (x : gs) ++
-                loadComment "comment" (assoc "comment" xs')
-          -- Make and return the characteristic skeleton of a security goal
-          characteristic pos p (goal : goals) g antec kcomment
-findGoal pos _ _ = fail (shows pos "Malformed defgoal")
-
--- Separate argument into goals and any remaining elements of an
--- association list.
-findAlist :: [SExpr Pos] -> ([SExpr Pos], [SExpr Pos])
-findAlist [] = ([], [])
-findAlist (x@(L _ (S _ "forall" : _)) : xs) =
-  (x : gs, xs')
-  where
-    (gs, xs') = findAlist xs
-findAlist xs = ([], xs)
-
---- Load a sequence of security goals
-
-loadGoals :: (Algebra t p g s e c, MonadFail m) => Pos -> Prot t g ->
-             g -> [SExpr Pos] -> m (g, [Goal t])
-loadGoals _ _ g [] = return (g, [])
-loadGoals pos prot g (x : xs) =
-  do
-    (g, goal, _) <- loadSentence RoleSpec pos prot g x
-    (g, goals) <- loadGoals pos prot g xs
-    return (g, goal : goals)
-
-data Mode
-  = RoleSpec
-  | UnusedVars
-
--- Load a single security goal, a universally quantified formula
--- Returns the goal and the antecedent with position information.
-
-loadSentence :: (Algebra t p g s e c, MonadFail m) => Mode -> Pos ->
-                Prot t g -> g -> SExpr Pos -> m (g, Goal t, Conj t)
-loadSentence md _ prot g (L pos [S _ "forall", L _ vs, x]) =
-  do
-    (g, vars) <- loadVars g vs
-    loadImplication md pos prot g (L.nub vars) x
-loadSentence _ pos _ _ _ = fail (shows pos "Malformed goal sentence")
-
--- Load the top-level implication of a security goal
-
-loadImplication :: (Algebra t p g s e c, MonadFail m) => Mode ->
-                   Pos -> Prot t g ->
-                   g -> [t] -> SExpr Pos -> m (g, Goal t, Conj t)
-loadImplication md _ prot g vars (L pos [S _ "implies", a, c]) =
-  do
-    antec <- loadCheckedConj md pos prot vars vars a
-    (g, vc) <- loadConclusion pos prot g vars c
-    let f (evars, form) = (evars, map snd form)
-    let consq = map f vc        -- Expunge position info
-    let goal =
-          Goal { uvars = vars,
-                 antec = map snd antec,
-                 consq = consq,
-                 concl = map snd consq }
-    return (g, goal, antec)
-loadImplication _ pos _ _ _ _ = fail (shows pos "Malformed goal implication")
-
--- The conclusion must be a disjunction.  Each disjunct may introduce
--- existentially quantified variables.
-
-loadConclusion :: (Algebra t p g s e c, MonadFail m) => Pos -> Prot t g ->
-                  g -> [t] -> SExpr Pos -> m (g, [([t], Conj t)])
-loadConclusion _ _ g _ (L _ [S _ "false"]) = return (g, [])
-loadConclusion _ prot g vars (L pos (S _ "or" : xs)) =
-  loadDisjuncts pos prot g vars xs []
-loadConclusion pos prot g vars x =
-  do
-    (g, a) <- loadExistential pos prot g vars x
-    return (g, [a])
-
-loadDisjuncts :: (Algebra t p g s e c, MonadFail m) => Pos ->
-                 Prot t g -> g -> [t] -> [SExpr Pos] ->
-                 [([t], Conj t)] -> m (g, [([t], Conj t)])
-loadDisjuncts _ _ g _ [] rest = return (g, reverse rest)
-loadDisjuncts pos prot g vars (x : xs) rest =
-  do
-    (g, a) <- loadExistential pos prot g vars x
-    loadDisjuncts pos prot g vars xs (a : rest)
-
-loadExistential :: (Algebra t p g s e c, MonadFail m) => Pos -> Prot t g ->
-                   g -> [t] -> SExpr Pos -> m (g, ([t], Conj t))
-loadExistential _ prot g vars (L pos [S _ "exists", L _ vs, x]) =
-  do
-    (g, evars) <- loadVars g vs
-    as <- loadCheckedConj RoleSpec pos prot (evars ++ vars) evars x
-    return (g, (evars, as))
-loadExistential pos prot g vars x =
-  do
-    as <- loadCheckedConj RoleSpec pos prot vars [] x
-    return (g, ([], as))
-
--- Load a conjunction and check the result as determined by the mode
--- md.
-
-loadCheckedConj :: (Algebra t p g s e c, MonadFail m) => Mode -> Pos ->
-                   Prot t g -> [t] -> [t] -> SExpr Pos -> m (Conj t)
-loadCheckedConj RoleSpec pos prot vars unbound x =
-  loadRoleSpecific pos prot vars unbound x
-loadCheckedConj UnusedVars pos prot vars unbound x =
-  loadUsedVars pos prot vars unbound x
-
---- Load a conjunction of atomic formulas and ensure the formula is
---- role specific.
-
-loadRoleSpecific :: (Algebra t p g s e c, MonadFail m) => Pos -> Prot t g ->
-                    [t] -> [t] -> SExpr Pos -> m (Conj t)
-loadRoleSpecific pos prot vars unbound x =
-  do
-    as <- loadConjunction pos prot vars x
-    let as' = L.sortBy (\(_, x) (_, y) -> aFormOrder x y) as
-    let unbound' =
-          if useFactVars
-          then foldl factSpecific unbound as'
-          else unbound
-    unbound <- foldM roleSpecific unbound' as'
-    case unbound of
-      [] -> return as'
-      (v : _) -> fail (shows (annotation x) ("Malformed defgoal: " ++ showst v " not used"))
-
--- Load a conjuction of atomic formulas and ensure that all declared
--- variables are used.
-
-loadUsedVars :: (Algebra t p g s e c, MonadFail m) => Pos -> Prot t g ->
-                [t] -> [t] -> SExpr Pos -> m (Conj t)
-loadUsedVars pos prot vars unbound x =
-  do
-    as <- loadConjunction pos prot vars x
-    -- Compute the free variables in the conjunction
-    let f vars (_, form) = aFreeVars vars form
-    case unbound L.\\ foldl f [] as of
-      [] -> return as
-      (v : _) -> fail (shows (annotation x) (showst v " not used"))
-
--- Load a conjunction of atomic formulas
-
-loadConjunction :: (Algebra t p g s e c, MonadFail m) => Pos -> Prot t g ->
-                   [t] -> SExpr Pos -> m (Conj t)
-loadConjunction _ p kvars (L pos (S _ "and" : xs)) =
-  loadConjuncts pos p kvars xs []
-loadConjunction top p kvars x =
-  do
-    (pos, a) <- loadPrimary top p kvars x
-    return [(pos, a)]
-
-loadConjuncts :: (Algebra t p g s e c, MonadFail m) => Pos -> Prot t g ->
-                 [t] -> [SExpr Pos] -> Conj t -> m (Conj t)
-loadConjuncts _ _ _ [] rest = return (reverse rest)
-loadConjuncts top p kvars (x : xs) rest =
-  do
-    (pos, a) <- loadPrimary top p kvars x
-    loadConjuncts top p kvars xs ((pos, a) : rest)
-
--- Load the atomic formulas
-
-loadPrimary :: (Algebra t p g s e c, MonadFail m) => Pos -> Prot t g ->
-               [t] -> SExpr Pos -> m (Pos, AForm t)
-loadPrimary _ _ kvars (L pos [S _ "=", x, y]) =
-  do
-    t <- loadTerm kvars False x
-    t' <- loadTerm kvars False y
-    case isStrdVar t == isStrdVar t' of
-      True -> return (pos, Equals t t')
-      False -> fail (shows pos "Sort mismatch in equality")
-loadPrimary _ _ kvars (L pos [S _ "non", x]) =
-  do
-    t <- loadAlgTerm kvars x
-    return (pos, Non t)
-loadPrimary _ _ kvars (L pos [S _ "pnon", x]) =
-  do
-    t <- loadAlgTerm kvars x
-    return (pos, Pnon t)
-loadPrimary _ _ kvars (L pos [S _ "uniq", x]) =
-  do
-    t <- loadAlgTerm kvars x
-    return (pos, Uniq t)
-loadPrimary _ _ kvars (L pos [S _ "uniq-at", x, y, z]) =
-  do
-    t <- loadAlgTerm kvars x
-    t' <- loadNodeTerm kvars y z
-    return (pos, UniqAt t t')
-loadPrimary _ _ kvars (L pos [S _ "ugen-at", x, y, z]) =
-  do
-    t <- loadAlgTerm kvars x
-    t' <- loadNodeTerm kvars y z
-    return (pos, UgenAt t t')
-loadPrimary _ _ kvars (L pos [S _ "ugen", x]) =
-  do
-    t <- loadAlgTerm kvars x
-    return (pos, Ugen t)
-loadPrimary _ _ kvars (L pos (S _ "fact" : S _ name : fs)) =
-  do
-    fs <- mapM (loadTerm kvars False) fs
-    return (pos, AFact name fs)
-loadPrimary _ _ kvars (L pos [S _ "prec", w, x, y, z]) =
-  do
-    t <- loadNodeTerm kvars w x
-    t' <- loadNodeTerm kvars y z
-    return (pos, Prec t t')
-loadPrimary _ _ kvars (L pos [S _ "leads-to", w, x, y, z]) =
-  do
-    t <- loadNodeTerm kvars w x
-    t' <- loadNodeTerm kvars y z
-    return (pos, LeadsTo t t')
-loadPrimary _ p kvars (L pos [S _ "p", Q _ name, x, N _ h]) =
-  do
-    r <- lookupRole pos p name
-    t <- loadStrdTerm kvars x
-    case h <= 0 || h > length (rtrace r) of
-      True -> fail (shows pos "Bad index")
-      False -> return (pos, Length r t h)
-loadPrimary _ p kvars (L pos [S _ "p", Q _ name, Q var x, y, z]) =
-  do
-    r <- lookupRole pos p name
-    v <- loadAlgTerm (rvars r) (S var x)
-    n <- loadStrdTerm kvars y
-    t <- loadAlgTerm kvars z
-    case isVar v of
-      False -> fail (shows pos "Bad parameter -- not a variable")
-      True ->
-        case firstOccurs v r of
-          Just i -> return (pos, Param r v (i + 1) n t)
-          Nothing ->
-            fail (shows pos ("parameter " ++ x ++ " not in role " ++ name))
-loadPrimary _ _ _ (L pos (S _ "p" : Q _ name : _)) =
-  fail (shows pos ("Malformed protocol specific formula for role " ++ name))
-loadPrimary _ _ _ (L pos (S _ pred : _)) =
-  fail (shows pos ("Malformed formula for predicate " ++ pred))
-loadPrimary pos _ _ _ = fail (shows pos "Bad formula")
-
--- Load a term and make sure it has sort strd
-
-loadStrdTerm :: (Algebra t p g s e c, MonadFail  m) =>
-                [t] -> SExpr Pos -> m t
-loadStrdTerm ts x =
-  do
-    t <- loadTerm ts False x
-    case isStrdVar t of
-      True -> return t
-      False -> fail (shows (annotation x) "Expecting a strand variable")
-
--- Load a term and make sure it describes a node
-
-loadNodeTerm :: (Algebra t p g s e c, MonadFail m) =>
-                [t] -> SExpr Pos -> SExpr Pos -> m (NodeTerm t)
-loadNodeTerm ts x (N _ i) | i >= 0 =
-  do
-    t <- loadStrdTerm ts x
-    return (t, i)
-loadNodeTerm _ _ y =
-  fail (shows (annotation y) "Expecting an integer")
-
--- Load a term and make sure it does not have sort node
-
-loadAlgTerm :: (Algebra t p g s e c, MonadFail m) => [t] -> SExpr Pos -> m t
-loadAlgTerm _ x@(L _ [N _ _, N _ _]) =
-  fail (shows (annotation x) "Expecting an algebra term")
-loadAlgTerm ts x =
-  do
-    t <- loadTerm ts False x
-    case isStrdVar t of
-      True -> fail (shows (annotation x) "Expecting an algebra term")
-      False -> return t
-
--- Role specific check
-
-termVars :: Algebra t p g s e c => t -> [t]
-termVars t = addVars [] t
-
-allBound :: Algebra t p g s e c => [t] -> t -> Bool
-allBound unbound t =
-  L.all (flip L.notElem unbound) (termVars t)
-
--- Returns variables in unbound that are not role specific
-
-roleSpecific :: (Algebra t p g s e c, MonadFail m) =>
-                [t] -> (Pos, AForm t) -> m [t]
-roleSpecific unbound (_, Length _ z _) =
-  return $ L.delete z unbound
-roleSpecific unbound (pos, Param _ _ _ z t)
-  | L.notElem z unbound = return $ unbound L.\\ termVars t
-  | otherwise = fail (shows pos "Unbound variable in parameter predicate")
-roleSpecific unbound (pos, Prec (z, _) (z', _))
-  | L.notElem z unbound && L.notElem z' unbound = return unbound
-  | otherwise = fail (shows pos "Unbound variable in prec")
-roleSpecific unbound (pos, LeadsTo (z, _) (z', _))
-  | L.notElem z unbound && L.notElem z' unbound = return unbound
-  | otherwise = fail (shows pos "Unbound variable in leadsto")
-roleSpecific unbound (pos, Non t)
-  | allBound unbound t = return unbound
-  | otherwise = fail (shows pos "Unbound variable in non")
-roleSpecific unbound (pos, Pnon t)
-  | allBound unbound t = return unbound
-  | otherwise = fail (shows pos "Unbound variable in pnon")
-roleSpecific unbound (pos, Uniq t)
-  | allBound unbound t = return unbound
-  | otherwise = fail (shows pos "Unbound variable in uniq")
-roleSpecific unbound (pos, UniqAt t (z, _))
-  | allBound unbound t && L.notElem z unbound = return unbound
-  | otherwise = fail (shows pos "Unbound variable in uniq-at")
-roleSpecific unbound (pos, UgenAt t (z, _))
-  | allBound unbound t && L.notElem z unbound = return unbound
-  | otherwise = fail (shows pos "Unbound variable in ugen-at")
-roleSpecific unbound (pos, Ugen t)
-  | allBound unbound t = return unbound
-  | otherwise = fail (shows pos "Unbound variable in ugen")
-roleSpecific unbound (pos, AFact _ fs)
-  | all (allBound unbound) fs = return unbound
-  | otherwise = fail (shows pos "Unbound variable in fact")
-roleSpecific unbound (pos, Equals t t')
-  | isStrdVar t && isStrdVar t' =
-    case L.notElem t unbound && L.notElem t' unbound of
-      True -> return unbound
-      False -> fail (shows pos "Unbound variable in equals")
-  | isStrdVar t = fail (shows pos "Type mismatch in equals")
-  | isStrdVar t' = fail (shows pos "Type mismatch in equals")
-  | allBound unbound t && allBound unbound t' = return unbound
-  | otherwise = fail (shows pos "Unbound variable in equals")
-
--- Remove unbound message variables that occur in a fact
-factSpecific :: Algebra t p g s e c => [t] -> (Pos, AForm t) -> [t]
-factSpecific unbound (_, AFact _ fs) =
-  unbound L.\\ foldl addVars [] (L.filter (not . isStrdVar) fs)
-factSpecific unbound _ = unbound
diff --git a/src/CPSA/Lib/Main.hs b/src/CPSA/Lib/Main.hs
deleted file mode 100644
--- a/src/CPSA/Lib/Main.hs
+++ /dev/null
@@ -1,397 +0,0 @@
--- Main routine for the CPSA solver.  Provides command line processing
-
--- Copyright (c) 2009 The MITRE Corporation
---
--- This program is free software: you can redistribute it and/or
--- modify it under the terms of the BSD License as published by the
--- University of California.
-
-module Main (main) where
-
-import Numeric
-import Control.Monad (forM_)
-import System.IO
-import System.Environment
-import System.Console.GetOpt
-import CPSA.Lib.SExpr
-import CPSA.Lib.Entry
-import CPSA.Lib.Algebra
-import CPSA.Lib.Loader
-import CPSA.Lib.Expand
-import CPSA.Lib.Reduction
-import qualified CPSA.Basic.Algebra
-import qualified CPSA.DiffieHellman.Algebra
-
--- Default limit on the number of steps used to solve one problem.
-defaultStepLimit :: Int
-defaultStepLimit = optLimit defaultOptions
-
--- Default limit on the number of strands is a skeleton.
-defaultStrandBound :: Int
-defaultStrandBound = optBound defaultOptions
-
--- Default limit on the number of depths is a skeleton.
-defaultDepthBound :: Int
-defaultDepthBound = optDepth defaultOptions
-
--- Default algebra
-defaultAlgebra :: String
-defaultAlgebra = optAlg defaultOptions
-
--- Entry point
-main :: IO ()
-main =
-    do
-      argv <- getArgs
-      (flags, files) <- opts options argv
-      -- Handle help and version options before input is read
-      _ <- interp algs defaultOptions flags
-      p <- openInput files
-      sexprs <- readSExprs p
-      let herald = getHerald sexprs
-      alist <- case herald of
-                 Nothing -> return []
-                 Just sexpr -> getAlist sexpr
-      heraldFlags <- getAlistOpts alist
-      forM_ heraldFlags checkHeraldFlag
-      opts <- interp algs defaultOptions heraldFlags
-      opts <- interp algs opts flags
-      sexprs <- tryIO (expand sexprs) -- Expand macros
-      case sexprs of
-        Left err -> abort err
-        Right sexprs ->
-            if optAnalyze opts then
-                select files herald opts sexprs
-            else
-                prettyPrint opts sexprs
-
-opts :: [OptDescr a] -> [String] -> IO ([a], [String])
-opts options argv =
-    case getOpt RequireOrder options argv of
-      (o, n, []) -> return (o, n)
-      (_, _, errs) ->
-          do
-            msg <- usage options errs
-            abort msg
-
-openInput :: [String] -> IO PosHandle
-openInput [file] =
-    do                          -- Input from named file
-      input <- openFile file ReadMode
-      posHandle file input
-openInput [] =
-    posHandle "" stdin          -- Input from the standard input
-openInput _ =
-    do
-      msg <- usage options ["too many input files\n"]
-      abort msg
-
--- Algebra specific section
-
--- Algebra names
-algs :: [String]
-algs = [CPSA.Basic.Algebra.name, CPSA.DiffieHellman.Algebra.name]
-
--- Select the algebra and go.
-select :: [String] -> Maybe (SExpr Pos) -> Options -> [SExpr Pos] -> IO ()
-select files herald opts sexprs =
-    case optAlg opts of
-      name | name == CPSA.Basic.Algebra.name ->
-               go name CPSA.Basic.Algebra.origin
-                  files herald opts sexprs
-           | name == CPSA.DiffieHellman.Algebra.name ->
-               go name CPSA.DiffieHellman.Algebra.origin
-                  files herald opts sexprs
-           | otherwise ->
-               abort ("Bad algebra: " ++ name)
-
-{--
--- name the algebra and go.
-select :: [String] -> Maybe (SExpr Pos) -> Options -> [SExpr Pos] -> IO ()
-select files herald opts sexprs =
-    case optAlg opts of
-      name | name == CPSA.Algebra.Basic.name ->
-               go name (CPSA.Algebra.Algebra.origin CPSA.Algebra.Basic.origin)
-                  files herald opts sexprs
-           | name == CPSA.Algebra.DiffieHellman.name ->
-               go name (CPSA.Algebra.Algebra.origin CPSA.Algebra.DiffieHellman.origin)
-                  files herald opts sexprs
-           | otherwise ->
-               abort ("Bad algebra: " ++ name)
---}
-
--- Load protocols and preskeletons and print run time information
-go :: Algebra t p g s e c => String -> g -> [String] ->
-      Maybe (SExpr Pos) -> Options -> [SExpr Pos] -> IO ()
-go name origin files herald opts sexprs =
-    do
-      preskels <- tryIO (loadSExprs name origin sexprs)
-      case preskels of          -- Load protocols and preskeletons
-        Left err -> abort err
-        Right preskels ->
-            do
-              h <- outputHandle (optFile opts)
-              let m = optMargin opts
-              -- Print herald
-              case herald of
-                Nothing -> return ()
-                Just sexpr ->
-                    do
-                      writeSExpr h m sexpr
-                      hPutStrLn h ""
-              -- Print run time information
-              writeComment h m cpsaVersion
-              case files of
-                [file] -> writeComment h m $ "All input read from " ++ file
-                _ -> writeComment h m "All input read"
-              case optNoIsoChk opts of
-                True -> writeComment h m "Isomorphism checking disabled"
-                False -> return ()
-              case optLimit opts /= defaultStepLimit of
-                True -> writeComment h m $
-                        "Step count limited to " ++ show (optLimit opts)
-                False -> return ()
-              case optBound opts /= defaultStrandBound of
-                True -> writeComment h m $
-                        "Strand count bounded at " ++ show (optBound opts)
-                False -> return ()
-              case optDepth opts /= defaultDepthBound of
-                True -> writeComment h m $
-                        "Tree depth bounded at " ++ show (optDepth opts)
-                False -> return ()
-              case optCheckNoncesFirst opts of
-                True -> writeComment h m "Nonces checked first"
-                False -> return ()
-              case optTryOldStrandsFirst opts of
-                True -> writeComment h m "Old strands tried first"
-                False -> return ()
-              case optTryYoungNodesFirst opts of
-                True -> writeComment h m "Younger nodes tried first"
-                False -> return ()
-              case optGoalsSat opts of
-                True -> writeComment h m "Stop when goals satisfied"
-                False -> return ()
-              -- Analyze
-              solve opts h preskels 0
-
--- Just pretty the expanded macros
-prettyPrint :: Options -> [SExpr a] -> IO ()
-prettyPrint opts sexprs =
-    do
-      let m = optMargin opts
-      h <- outputHandle (optFile opts)
-      writeComment h m cpsaVersion
-      writeComment h m "Expanded macros"
-      mapM_ (writeLnSExpr h m) sexprs
-      hClose h
-      return ()
-
--- Command line option flags
-data Flag
-    = Output String             -- Output file name
-    | Limit String              -- Step count limit
-    | Bound String              -- Strand count bound
-    | Depth String              -- Tree depth bound
-    | Margin String             -- Output line length
-    | Expand                    -- Expand macros only
-    | NoAnalyze                 -- Don't analyze, just echo outputs
-    | NoIsoChk                  -- Disable isomorphism checks
-    | CheckNoncesFirst          -- Check nonces first
-    | TryOldStrandsFirst        -- Try old strands first
-    | TryYoungNodesFirst        -- Try young nodes first
-    | GoalsSat                  -- Stop when goals are satisfied
-    | Algebra String            -- Algebra
-    | Algebras                  -- Show algebras
-    | Help                      -- Help
-    | Info                      -- Version information
-      deriving Show
-
-options :: [OptDescr Flag]
-options =
-    [ Option ['o'] ["output"]   (ReqArg Output "FILE")  "output FILE",
-      Option ['l'] ["limit"]    (ReqArg Limit "INT")
-      ("step count limit (default " ++ show defaultStepLimit ++ ")"),
-      Option ['b'] ["bound"]    (ReqArg Bound "INT")
-      ("strand count bound (default " ++ show defaultStrandBound ++ ")"),
-      Option ['d'] ["depth"]    (ReqArg Depth "INT")
-      ("tree depth bound (default unbounded)"),
-      Option ['m'] ["margin"]   (ReqArg Margin "INT")
-      ("set output margin (default " ++ show (optMargin defaultOptions) ++ ")"),
-      Option ['e'] ["expand"]   (NoArg Expand)
-      "expand macros only; don't load or analyze",
-      Option ['z'] ["noanalyze"] (NoArg NoAnalyze) "load but don't analyze",
-      Option ['n'] ["noisochk"] (NoArg NoIsoChk)
-      "disable isomorphism checks",
-      Option ['c'] ["check-nonces"] (NoArg CheckNoncesFirst)
-      "check nonces first",
-      Option ['t'] ["try-old-strands"] (NoArg TryOldStrandsFirst)
-      "try old strands first",
-      Option ['r'] ["reverse-nodes"] (NoArg TryYoungNodesFirst)
-      "try younger nodes first",
-      Option ['g'] ["goals-sat"] (NoArg GoalsSat)
-      "Stop when goals are satisfied",
-      Option ['a'] ["algebra"]  (ReqArg Algebra "STRING")
-      ("algebra (default " ++ defaultAlgebra ++ ")"),
-      Option ['s'] ["show-algebras"] (NoArg Algebras)  "show algebras",
-      Option ['h'] ["help"]     (NoArg Help)      "show help message",
-      Option ['v'] ["version"]  (NoArg Info)      "show version number" ]
-
--- Interpret option flags
-interp :: [String] -> Options -> [Flag] -> IO Options
-interp algs opts flags =
-    loop flags opts
-    where
-      loop [] opts = return opts
-      loop (Output name : flags) opts
-          | optFile opts == Nothing =
-              loop flags $ opts { optFile = Just name }
-      loop (Limit value : flags) opts =
-          case readDec value of
-            [(limit, "")] ->
-                loop flags $ opts { optLimit = limit }
-            _ ->
-                do
-                  msg <- usage options ["Bad value for step limit\n"]
-                  abort msg
-      loop (Bound value : flags) opts =
-          case readDec value of
-            [(bound, "")] ->
-                loop flags $ opts { optBound = bound }
-            _ ->
-                do
-                  msg <- usage options ["Bad value for strand bound\n"]
-                  abort msg
-      loop (Depth value : flags) opts =
-          case readDec value of
-            [(depth, "")] ->
-                loop flags $ opts { optDepth = depth }
-            _ ->
-                do
-                  msg <- usage options ["Bad value for depth bound\n"]
-                  abort msg
-      loop (Margin value : flags) opts =
-          case readDec value of
-            [(margin, "")] ->
-                loop flags $ opts { optMargin = margin }
-            _ ->
-                do
-                  msg <- usage options ["Bad value for margin\n"]
-                  abort msg
-      loop (Expand : flags) opts =
-          loop flags $ opts { optAnalyze = False }
-      loop (NoAnalyze : flags) opts =
-          loop flags $ opts { optDoAnalyze = False }
-      loop (NoIsoChk : flags) opts =
-          loop flags $ opts { optNoIsoChk = True }
-      loop (CheckNoncesFirst : flags) opts =
-          loop flags $ opts { optCheckNoncesFirst = True }
-      loop (TryOldStrandsFirst : flags) opts =
-          loop flags $ opts { optTryOldStrandsFirst = True }
-      loop (TryYoungNodesFirst : flags) opts =
-          loop flags $ opts { optTryYoungNodesFirst = True }
-      loop (GoalsSat : flags) opts =
-          loop flags $ opts { optGoalsSat = True }
-      loop (Algebra name : flags) opts
-          | elem name algs = loop flags $ opts { optAlg = name }
-          | otherwise =
-              abort ("Algebra " ++ name ++ " not one of\n" ++ unlines algs)
-      loop (Algebras : _) _ =
-          success $ unlines algs
-      loop (Help : _) _ =
-          do                    -- Show help then exit with success
-            msg <- usage options []
-            success msg
-      loop (Info : _) _ =
-          success cpsaVersion
-      loop _ _ =
-           do                   -- Show help then exit with failure
-             msg <- usage options ["Bad option combination\n"]
-             abort msg
-
--- Herald form
-
--- Get a herald form.  It must be the first form while skipping comments.
-getHerald :: [SExpr Pos] -> Maybe (SExpr Pos)
-getHerald (x@(L _ (S _ "herald" : _)) : _) = Just x
-getHerald ((L _ (S _ "comment" : _)) : sexprs) = getHerald sexprs
-getHerald _ = Nothing
-
--- Get the association list of a herald form
-getAlist :: SExpr Pos -> IO [SExpr Pos]
-getAlist (L _ (S _ "herald" : S _ _ : alist)) = return alist
-getAlist (L _ (S _ "herald" : Q _ _ : alist)) = return alist
-getAlist _ =
-    do
-      msg <- usage options ["Bad herald form\n"]
-      abort msg
-
-getAlistOpts :: [SExpr Pos] -> IO [Flag]
-getAlistOpts alist =
-    loop alist []
-    where
-      loop [] flags =
-          return $ reverse flags
-      loop ((L _ (S _ key : vals)) : alist) flags =
-          do
-            flag <- flagOf key vals
-            case flag of
-              Nothing -> loop alist flags -- Ignore unrecognized keys
-              Just flag -> loop alist (flag : flags)
-      loop _ _ =
-          do
-             msg <- usage options ["Bad herald form\n"]
-             abort msg
-
-flagOf :: String -> [SExpr Pos] -> IO (Maybe Flag)
-flagOf key vals =
-    do
-      let opt = findOpt key
-      case opt of
-        Nothing -> return Nothing
-        Just opt ->
-            do
-              flag <- interpAssoc key opt vals
-              return $ Just flag
-
-findOpt :: String -> Maybe (OptDescr Flag)
-findOpt key =
-    loop options
-    where
-      loop [] = Nothing
-      loop (opt@(Option _ keys _ _) : options)
-           | elem key keys = Just opt
-           | otherwise = loop options
-
-interpAssoc :: String -> OptDescr Flag -> [SExpr Pos] -> IO Flag
-interpAssoc _ (Option _ _ (NoArg flag) _) [] =
-    return flag
-interpAssoc _ (Option _ _ (ReqArg flag _) _) [S _ val] =
-    return $ flag val
-interpAssoc _ (Option _ _ (ReqArg flag _) _) [Q _ val] =
-    return $ flag val
-interpAssoc _ (Option _ _ (ReqArg flag _) _) [N _ val] =
-    return $ flag $ show val
-interpAssoc _ (Option _ _ (OptArg flag _) _) [] =
-    return $ flag Nothing
-interpAssoc _ (Option _ _ (OptArg flag _) _) [S _ val] =
-    return $ flag $ Just val
-interpAssoc _ (Option _ _ (OptArg flag _) _) [Q _ val] =
-    return $ flag $ Just val
-interpAssoc _ (Option _ _ (OptArg flag _) _) [N _ val] =
-    return $ flag $ Just $ show val
-interpAssoc key _ _ =
-    do
-      msg <- usage options ["Bad herald form at " ++ key ++ "\n"]
-      abort msg
-
-checkHeraldFlag :: Flag -> IO ()
-checkHeraldFlag (Output _) =
-    abort "output option not allowed in herald"
-checkHeraldFlag Help =
-    abort "help option not allowed in herald"
-checkHeraldFlag Info =
-    abort "version option not allowed in herald"
-checkHeraldFlag Algebras =
-    abort "show algebras help option not allowed in herald"
-checkHeraldFlag _ =
-    return ()
diff --git a/src/CPSA/Lib/Notation.hs b/src/CPSA/Lib/Notation.hs
deleted file mode 100644
--- a/src/CPSA/Lib/Notation.hs
+++ /dev/null
@@ -1,307 +0,0 @@
--- A CPSA specific pretty printer using infix notation.
-
--- Copyright (c) 2009 The MITRE Corporation
---
--- This program is free software: you can redistribute it and/or
--- modify it under the terms of the BSD License as published by the
--- University of California.
-
-module CPSA.Lib.Notation (printItem, printMsg, printEnv) where
-
-import CPSA.Lib.Pretty
-import CPSA.Lib.SExpr
-
--- Top-level pretty printer within specified margin.
-printItem :: Int -> Int -> SExpr a -> String
-printItem margin indent sexpr =
-    pr margin (item indent sexpr) ""
-
--- Message pretty printer within specified margin.
-printMsg :: Int -> Int -> SExpr a -> String
-printMsg margin indent sexpr =
-    pr margin (mesg indent sexpr) ""
-
--- Environment pretty printer within specified margin.
-printEnv :: Int -> Int -> SExpr a -> String
-printEnv margin indent sexpr =
-    pr margin (env indent sexpr) ""
-    where
-      env indent (L _ xs) = blo indent $ str "(" : aft "," ")"
-                           ( map (maplet indent) xs)
-      env indent x = generic indent x
-
-type Printer a = Int -> SExpr a -> Pretty
-
--- Print a top-level form
-item :: Printer a
-item indent (L _ (S _ "comment" : xs)) =
-    blo indent $ str "comment " : aft "" ";" (map (generic indent) xs)
-item indent (L _ (S _ "defprotocol" : S _ name : S _ alg : body)) =
-    protocol indent name alg body
-item indent (L _ (S _ "defskeleton" : S _ name :
-                  L _ (S _ "vars" : decls) : body)) =
-    skeleton indent name decls body
-item indent x = generic indent x
-
--- Print a generic list.  Used when there is a syntax error.
-generic :: Printer a
-generic _ (S _ s) = str s
-generic _ (Q _ s) = str (showQuoted s "")
-generic _ (N _ n) = str (show n)
-generic indent (L _ xs) =
-    blo indent $ str "[" : aft "," "]" (map (generic indent) xs)
-
--- Add a separator and a final symbol to a list of Pretty's.
--- A break point is inserted after each separator.
-aft :: String -> String -> [Pretty] -> [Pretty]
-aft _ end [] = [str end]
-aft _ end [p] = [p, str end]
-aft sep end (p:ps) =
-    p : str sep : brk 1 : aft sep end ps
-
--- Print a protocol
-protocol :: Int -> String -> String -> [SExpr a] -> Pretty
-protocol indent name alg body =
-    grp indent $ header : brk 1 : aft "" "}" (map (alist indent) body)
-    where
-      header = str ("prot " ++ name ++ " " ++ alg ++ " {")
-
--- Print a skeleton
-skeleton :: Int -> String -> [SExpr a] -> [SExpr a] -> Pretty
-skeleton indent name decls body =
-    grp indent $ header : brk 1 : aft "" "}" (map (alist indent) body)
-    where
-      start = str ("skel " ++ name ++ "(")
-      header = blo (2 * indent) $ start : aft ";" ") {"
-               (map (decl indent) decls)
-
--- A vars list is written with the sort first, followed by the variables.
--- Thus ((a b text) (k skey)) => (text a, b; skey k)
-decl :: Int -> SExpr a -> Pretty
-decl indent (L _ xs@(_:_:_)) =
-    blo indent (aft "," ":" vars ++ [brk 1, sort])
-    where
-      (sort, vars) = split [] xs
-      split vars [S _ sort] = (str sort, reverse vars)
-      split vars (S _ var: xs) = split (str var : vars) xs
-      split _ _ = error "[ASSERT FAILED] split: bad arg"
-decl indent x = generic indent x
-
--- Association lists
-
--- The body of a protocol, role, and skeleton is an association list.
--- Each element of the list is a symbol followed by a list.
-
--- One function is used to process association lists even though a
--- role declaration may not occur in a skeleton or a role, and a
--- precedes declaration may not appear in a role or a protocol.
-
-alist :: Printer a
-alist _ (L _ [S _ key]) =
-    str (key ++ ";")
-alist indent (L _ (S _ "defrole" : S _ name :
-                   L _ (S _ "vars" : decls) :
-                   L a (S _ "trace" : trace) : body)) =
-    role indent name decls (L a trace) body
-alist indent (L _ (S _ "defstrand" : S _ name : N _ height : env)) =
-    strand indent name height (map (maplet indent) env)
-alist indent x@(L _ (S _ "operation" : _)) =
-    operation indent x
-alist indent x@(L _ (S _ key : _))
-      | key == "annotations" || key == "obligations" =
-          annotations indent x
-alist indent (L _ (S _ key : xs))
-      | key == "non-orig" || key == "uniq-orig" ||
-        key == "deflistener" || key == "parameters" =
-          values indent mesg key xs
-      | key == "precedes" =
-          values indent order key xs
-      | key == "unrealized" =
-          values indent node key xs
-      | key == "traces" =
-          grp indent $ str key : brk 1 : aft "," ";" (map (trace indent) xs)
-      | otherwise =
-          values indent generic key xs
-alist indent x = generic indent x
-
--- Show the values associated with a key using the given printer.
-values :: Int -> Printer a -> String -> [SExpr a] -> Pretty
-values indent printer key values =
-    blo indent $ str key : str " " : aft "," ";" (map (printer indent) values)
-
--- Print a role
-role :: Int -> String -> [SExpr a] -> SExpr a -> [SExpr a] -> Pretty
-role indent name decls tr body =
-    grp indent $ header : brk 1 : aft "" "}" rest
-    where
-      start = str ("role " ++ name ++ "(")
-      header = blo (2 * indent) $ start : aft ";" ") {"
-               (map (decl indent) decls)
-      rest = trace indent tr : map (alist indent) body
-
--- Print a trace
-trace :: Printer a
-trace indent (L _ xs) =
-    blo 1 $ str "[" : aft "," "]" (map (event indent) xs)
-trace indent x = generic indent x
-
--- Print an event
-event :: Printer a
-event indent (L _ [S _ "send", x]) = blo 0 [str "+", mesg indent x]
-event indent (L _ [S _ "recv", x]) = blo 0 [str "-", mesg indent x]
-event indent (L _ [S _ "sync", x]) = blo 0 [str "!", mesg indent x]
-event indent x = generic indent x
-
--- Print a term in the Basic Crypto Algebra in compact form.
-
--- (enc a b ... z) => [a, b, ...]z
--- (cat a b ... z) => (a, b, ..., z)
--- (hash a b .. z) => #(a, b, ..., z)
--- (pubk a) => K(a)
--- (invk a) => I(a)
--- (privk a) => I(K(a))
--- (ltk a b) => S(a, b)
-mesg :: Printer a
-mesg indent (L _ (S _ "enc" : xs@(_:_:_))) =
-    blo 0 [body, mesg indent key]
-    where
-      (key, plaintext) = rotate xs
-      body = blo indent $ str "[" : aft "," "]" (map (mesg indent) plaintext)
-mesg indent (L a (S b "privk" : xs)) =
-    mesg indent (L a [S b "invk", L a (S b "pubk" : xs)])
-mesg indent (L _ (S _ name : xs))
-     | name == "cat" =
-         fun indent "" args
-     | name == "hash" =
-         fun indent "#" args
-     | name == "pubk" =
-         fun indent "K" args
-     | name == "invk" =
-         fun indent "I" args
-     | name == "ltk" =
-         fun indent "S" args
-     | otherwise =
-         fun indent name args
-     where
-       args = map (mesg indent) xs
-mesg indent (L _ xs@[N _ _, _]) =
-    fun indent "" $ map (mesg indent) xs
-mesg indent x = generic indent x
-
--- Print generic function application
-fun :: Int -> String -> [Pretty] -> Pretty
-fun indent name args =
-    blo indent $ str name : str "(" : aft "," ")" args
-
--- Get last element of list and list without last element
-rotate :: [a] -> (a, [a])
-rotate (x:xs) =
-    loop [] x xs
-    where
-      loop xs x [] = (x, reverse xs)
-      loop ys y (x:xs) = loop (y:ys) x xs
-rotate [] = error "[ASSERT FAILED] rotate: bad arg"
-
--- Print a node ordering
-order :: Printer a
-order indent (L _ [x, y]) =
-    blo indent [node indent x, str " < ", node indent y]
-order indent x = generic indent x
-
--- Print a node
-node :: Printer a
-node _ (L _ [N _ s, N _ i]) =
-    str ("(" ++ show s ++ ", " ++ show i ++ ")")
-node indent x = generic indent x
-
--- Print a maplet
-maplet :: Printer a
-maplet indent (L _ [x, y]) =
-    blo indent [mesg indent x, str " -> ", mesg indent y]
-maplet indent x = generic indent x
-
--- Print a strand
-strand :: Int -> String -> Int -> [Pretty] -> Pretty
-strand indent role height env =
-    blo indent $ aft "," ");" (header:env)
-    where
-      header = str ("strand " ++ role ++ "(" ++ show height)
-
--- Print an operation
-operation :: Printer a
-operation indent (L _ (S _ "operation" : S _ direction : op :
-                       critical : test : escape))
-    | direction == "encryption-test" || direction == "nonce-test" =
-      blo indent $ aft "" ";" body
-      where
-        body =  [str "operation", str direction, solve indent op,
-                 mesg indent critical, node indent test, set]
-        set = blo 1 $ str "{" : aft "," "}" (map (mesg indent) escape)
-operation indent (L _ (S _ "operation" : S _ "generalization" : desc)) =
-    blo indent $ aft "" ";" [str "operation", str "generalization",
-                             generalization indent desc]
-operation indent (L _ (S _ "operation" : xs)) =
-    blo indent $ aft "" ";" $ str "operation" : (map (generic indent) xs)
-operation indent x = generic indent x
-
--- Print authentication test solving operation
-solve :: Printer a
-solve indent (L _ (S _ "contracted" : xs)) =
-    blo indent $ str "contracted(" : aft "," ")" (map (maplet indent) xs)
-solve indent (L _ (S _ "displaced" : xs)) =
-    blo indent $ str "displaced(" : aft "," ")" (map (generic indent) xs)
-solve indent (L _ (S _ "added-strand" : xs)) =
-    blo indent $ str "added-strand(" : aft "," ")" (map (generic indent) xs)
-solve indent (L _ [S _ "added-listener", t]) =
-    blo indent $ [str "added-listener(", mesg indent t, str ")"]
-solve indent x = generic indent x
-
--- Print generalization method
-generalization :: Int -> [SExpr a] -> Pretty
-generalization indent [S _ "deleted", n] =
-    blo indent [str "deleted ", node indent n]
-generalization indent [S _ "weakened", o] =
-    blo indent [str "weakened ", order indent o]
-generalization indent [S _ "separated", t] =
-    blo indent [str "separated ", mesg indent t]
-generalization indent [S _ "forgot", t] =
-    blo indent [str "forgot ", mesg indent t]
-generalization indent xs =
-    blo indent $ aft "" "" (map (generic indent) xs)
-
--- Annotations
-
--- Print an annotation
-annotations :: Printer a
-annotations indent (L _ (S _ key :
-                         (xs@(L _ (L _ [N _ _, N _ _] : _) : _)))) =
-    grp indent $ str key : brk 1 : aft "," ";" (map (obligation indent) xs)
-annotations indent (L _ (S _ key : term : formulas)) =
-    blo indent $ str key : brk 1 : mesg indent term :
-        str "," : brk 1 : aft "," ";" (map (numform indent) formulas)
-annotations indent x = generic indent x
-
-numform :: Printer a
-numform indent (L _ [n@(N _ _), f]) =
-    blo indent [str "(", mesg indent n, str ",", brk 1,
-                form indent f, str ")"]
-numform indent x = generic indent x
-
-obligation :: Printer a
-obligation indent (L _ [n, term, formula]) =
-    blo indent [str "[", node indent n, str ",", brk 1, mesg indent term,
-                str ",", brk 1, form indent formula, str "]"]
-obligation indent x = generic indent x
-
--- Print a formula
-form :: Printer a
-form indent (L _ [S _ "implies", h, c]) =
-    blo indent [mesg indent h, brk 1, str "implies", brk 1, mesg indent c]
-form indent (L _ (S _ "implies" : xs@(_:_:_:_))) =
-    grp 0 [lhs, brk 1, str "implies", brk 1, mesg indent concl]
-    where
-      lhs = grp indent $ str "and(" : brk 0 :
-            aft "," ")" (map (mesg indent) hypoth)
-      (concl, hypoth) = rotate xs
-form indent x =
-    mesg indent x
diff --git a/src/CPSA/Lib/Pretty.hs b/src/CPSA/Lib/Pretty.hs
--- a/src/CPSA/Lib/Pretty.hs
+++ b/src/CPSA/Lib/Pretty.hs
@@ -1,11 +1,22 @@
--- A simple pretty printer.
+{-|
+Module:      CPSA.Lib.Pretty
+Description: A simple pretty printer
+Copyright:   (c) 2009 The MITRE Corporation
+License:     BSD
 
--- The alogithm is by Lawrence C. Paulson, who simplified an algorithm
--- by Derek C. Oppen.
+This module contains a simple pretty printer.
+The alogithm is by Lawrence C. Paulson, who simplified an algorithm
+by Derek C. Oppen.
 
--- Derek C. Oppen, Prettyprinting, ACM Transactions on Programming
--- Languages and Systems, Vol 2, No. 4, October 1980, Pages 465-483.
+Derek C. Oppen, Prettyprinting, ACM Transactions on Programming
+Languages and Systems, Vol 2, No. 4, October 1980, Pages 465-483.
 
+The code is based on the ML Programs from Chapter 8 of
+ML for the Working Programmer, 2nd edition
+by Lawrence C. Paulson, Computer Laboratory, University of Cambridge.
+(Cambridge University Press, 1996)
+-}
+
 -- Copyright (c) 2009 The MITRE Corporation
 --
 -- This program is free software: you can redistribute it and/or
@@ -38,8 +49,9 @@
 
 --}
 
-module CPSA.Lib.Pretty (Pretty, pr, str, brk, blo, grp) where
+module CPSA.Lib.Pretty (Pretty, str, brk, blo, grp, pr) where
 
+-- | Pretty printing expressions
 data Pretty
     = Str !String
     | Brk !Int                  -- Int is the number of breakable spaces
@@ -49,22 +61,25 @@
 
 -- Constructors
 
--- Strings
+-- | 'str' @s@ creates an expression containing string @s@.
 str :: String -> Pretty
 str = Str
 
--- Break points
+-- | 'brk' @l@ creates a break of length @l@.  If no break is required
+-- then @l@ spaces are printed.
 brk :: Int -> Pretty
 brk = Brk
 
--- Indentation blocks
--- If the line is too long, not all breaks must be used
+-- | 'blo' @i@ @es@ creates a block contaning expressions @es@, and
+-- specifies the current indentation will be increased by @i@.  If the
+-- line is too long, the minimum number of breaks will be used.
 blo :: Int -> [Pretty] -> Pretty
 blo indent es =
     Blo es indent (len es 0)
 
--- Indentation groups
--- If the line is too long, all breaks are used
+-- | 'grp' @i@ @es@ creates a block contaning expressions @es@, and
+-- specifies the current indentation will be increased by @i@.  If the
+-- line is too long, all breaks will be used.
 grp :: Int -> [Pretty] -> Pretty
 grp indent es =
     Grp es indent (len es 0)
@@ -81,6 +96,7 @@
 
 -- Pretty prints the constructed object
 
+-- | 'pr' @m@ @e@ pretty prints expression @e@ with right margin @m@.
 pr :: Int -> Pretty -> ShowS
 pr margin e s =
     s1
diff --git a/src/CPSA/Lib/Printer.hs b/src/CPSA/Lib/Printer.hs
--- a/src/CPSA/Lib/Printer.hs
+++ b/src/CPSA/Lib/Printer.hs
@@ -1,5 +1,17 @@
--- A CPSA specific pretty printer using S-expressions.
+{-|
+Module:      CPSA.Lib.Printer
+Description: A CPSA specific pretty printer using S-expressions
+Copyright:   (c) 2009 The MITRE Corporation
+License:     BSD
 
+A CPSA specific pretty printer using S-expressions.
+The pretty printer indents a constant amount for each list.  The
+top-level lists are laid out specially.  Whenever some breaks
+occur, all breaks are forced.  Also, breaks are only placed before
+strings and lists.  CPSA protocols are handled specially.  Each
+defrole is handled as are top-level lists.
+-}
+
 -- Copyright (c) 2009 The MITRE Corporation
 --
 -- This program is free software: you can redistribute it and/or
@@ -11,7 +23,8 @@
 import CPSA.Lib.Pretty
 import CPSA.Lib.SExpr
 
--- Pretty printer within specified margin.
+-- | Pretty printer that when given a margin, an indent, and an
+-- S-expression produces a pretty printed result as a string.
 pp :: Int -> Int -> SExpr a -> String
 pp margin indent sexpr =
     pr margin (pretty indent sexpr) ""
diff --git a/src/CPSA/Lib/Protocol.hs b/src/CPSA/Lib/Protocol.hs
deleted file mode 100644
--- a/src/CPSA/Lib/Protocol.hs
+++ /dev/null
@@ -1,613 +0,0 @@
--- Protocol data structures.
-
--- Copyright (c) 2009 The MITRE Corporation
---
--- This program is free software: you can redistribute it and/or
--- modify it under the terms of the BSD License as published by the
--- University of California.
-
-module CPSA.Lib.Protocol (Event (..), evtTerms, evtMesgTerms, evtMap, evt,
-    recvTerm, Trace, stripSync, tterms, originates,
-    originationPos, gainedPos, genGainedPos, firstOccurs,
-    Role, rname, rvars, rtrace, rdecls, rcomment, rsearch, generationPos,
-    ridecls, mkRole, roleWellFormed,
-    RoleDeclInst, RoleDeclInstList, RoleDeclaration, RoleDeclList,
-    RoleDeclarations, rpriority, defaultPriority,
-    AForm (..), NodeTerm, Goal (..),
-    aFormOrder, aFreeVars, Rule (..),
-    Prot, mkProt, pname, alg, pgen, roles, rules, listenerRole,
-    varsAllAtoms, pcomment) where
-
-import qualified Data.List as L
-import qualified Data.Set as S
-import qualified Data.Maybe as M
-import CPSA.Lib.Utilities
-import CPSA.Lib.SExpr
-import CPSA.Lib.Algebra
-import CPSA.Lib.AlgebraLibrary
-import CPSA.Lib.Declaration
-import CPSA.Lib.State
-
-{--
-import CPSA.Lib.Debug
---}
-
--- Message events and traces
-
-data Event t
-    = In !t                      -- Inbound message
-    | Out !t                     -- Outbound message
-    | Sync (Tran t)              -- State synchronization
-    deriving (Show, Eq, Ord)
-
--- Dispatch to function based on direction.
-evt :: (t -> a) -> (t -> a) -> (Tran t -> a) -> Event t -> a
-evt inDir outDir syncDir evt =
-    case evt of
-      In t -> inDir t
-      Out t -> outDir t
-      Sync t -> syncDir t
-
--- Extract the terms in an event.
-evtTerms :: Event t -> [t]
-evtTerms (In t) = [t]
-evtTerms (Out t) = [t]
-evtTerms (Sync t) = tranTerms t
-
--- Extract the message-passed terms in an event.
-evtMesgTerms :: Event t -> [t]
-evtMesgTerms (Sync _) = []
-evtMesgTerms e = evtTerms e
-
--- Map the term in an event.
-evtMap :: (t -> t) -> Event t -> Event t
-evtMap f (In t) = In (f t)
-evtMap f (Out t) = Out (f t)
-evtMap f (Sync t) = Sync (mapTran f t)
-
--- Extract the reception term
-recvTerm :: Event t -> Maybe t
-recvTerm (In t) = Just t
-recvTerm _ = Nothing
-
-{-
--- Extract the transmission term
-sendTerm :: Event t -> Maybe t
-sendTerm (Out t) = Just t
-sendTerm _ = Nothing
--}
-
--- Extract the term in an inbound event.
-inbnd :: Event t -> Maybe t
-inbnd (In t) = Just t
-inbnd (Sync (Tran (Just t, _))) = Just t
-inbnd _ = Nothing
-
--- Extract the term in an outbound event.
-outbnd :: Event t -> Maybe t
-outbnd (Out t) = Just t
-outbnd (Sync (Tran (_, Just t))) = Just t
-outbnd _ = Nothing
-
-{-
--- Extract the term in an outbound event.
-sync :: Event t -> Maybe (Tran t)
-sync (Sync t) = Just t
-sync _ = Nothing
--}
-
--- A trace is a list of events.  The terms in the trace are
--- stored in causal order.
-type Trace t = [Event t]
-
-stripSync :: Trace t -> Trace t
-stripSync [] = []
-stripSync (Sync _:c) = stripSync c
-stripSync (e:c) = e:stripSync c
-
--- The set of terms in a trace.
-tterms :: Eq t => Trace t -> [t]
-tterms c =
-  L.nub [t | evt <- c, t <- evtTerms evt]
-
-tmesgterms :: Eq t => Trace t -> [t]
-tmesgterms c =
-  L.nub [t | evt <- c, t <- evtMesgTerms evt]
-
--- Is the term carried by an event, and is the first one outgoing?
-originates :: Algebra t p g s e c => t -> Trace t -> Bool
-originates t c = M.isJust (originationPos t c)
-
--- Loop through the events in a trace, looking for an inbound
--- message satisfying (intest1) or (intest2), in which case,
--- return Nothing or Just (height) respectively, or for an
--- outbound message satisfying (outtest1) or (outtest2), in
--- which case return Nothing or Just (height) respecitvely,
--- with Nothing as a default.
---
--- If both intest1 and intest2 are true, return Just (height).
--- If both outtest1 and outtest2 are true, return Just (height).
-lookupPos :: Algebra t p g s e c => t -> (t -> t -> Bool) ->
-             (t -> t -> Bool) -> (t -> t -> Bool) -> (t -> t -> Bool) ->
-             Trace t -> Maybe Int
-lookupPos t intest1 intest2 outtest1 outtest2 c =
-    loop 0 c
-    where
-    loop _ [] = Nothing         -- Default to Nothing
-    loop pos (evt : c) =
-         if bail then inresult else result
-         where
-           bail = case (inbnd evt) of
-             Nothing -> False
-             Just t' -> (intest1 t t') || (intest2 t t')
-           inresult = case (inbnd evt) of
-             Nothing -> error ("protocol:lookupPos -- no result defined.")
-             Just t' -> if (intest2 t t') then Just pos else Nothing
-           result = case (outbnd evt) of
-             Nothing -> loop (pos + 1) c
-             Just t' -> if (outtest2 t t') then Just pos else
-                       (if (outtest1 t t') then Nothing else loop (pos + 1) c)
-
--- At what position does a term originate in a trace?
-originationPos :: Algebra t p g s e c => t ->
-                  Trace t -> Maybe Int
-originationPos t c =
-    -- Looking for where t is first carried, if it is in an outbound message.
-    lookupPos t carriedBy ftest ftest carriedBy c
-
--- At what position does a term generate in a trace?
-generationPos :: Algebra t p g s e c => t ->
-                  Trace t -> Maybe Int
-generationPos t c =
-    -- Looking for where t first occurs, if it is in an outbound message.
-    lookupPos t constituent ftest ftest constituent c
-
--- At what position is a term acquired in a trace?
-acquiredPos :: Algebra t p g s e c => t -> Trace t -> Maybe Int
-acquiredPos t c =
-    -- Looking for where t first occurs, if it is carried there and that is an
-    -- inbound message
-    lookupPos t occursIn carriedBy occursIn ftest c
-
--- At what position is a term obtained in a trace?
-obtainedPos :: Algebra t p g s e c => t -> Trace t -> Maybe Int
-obtainedPos t c =
-    -- Looking for where t first occurs, if it occurs there and that is an
-    -- inbound message
-    lookupPos t occursIn occursIn occursIn ftest c
-
--- At what position is a term gained in a trace?
-gainedPos :: Algebra t p g s e c => t ->
-             Trace t -> Maybe Int
-gainedPos t c =
-    -- Looking for where t is first carried, if it is in an inbound message.
-    lookupPos t ftest carriedBy carriedBy ftest c
-
--- At what position is a term gained in a trace with regards to constituent?
-genGainedPos :: Algebra t p g s e c => t ->
-             Trace t -> Maybe Int
-genGainedPos t c =
-    -- Looking for where t first occurs, if it is in an inbound message.
-    lookupPos t ftest constituent constituent ftest c
-
-ftest :: a -> b -> Bool
-ftest = const (const False)
-
--- At what position do all of the variables in a term occur in a trace?
-usedPos :: Algebra t p g s e c => t -> Trace t -> Maybe Int
-usedPos t c =
-    loop 0 (varsInTerms [t]) c
-    where
-      loop _ _ [] = Nothing
-      loop pos vars (e : c) =
-          let vars' = [ x | x <- vars, notElem x (varsInTerms (evtTerms e)) ] in
-          case vars' of
-            [] -> Just pos
-            _ -> loop (pos + 1) vars' c
-
--- Roles store internal declarations only in ridecls.
--- Roles store a raw external declarations format.
-data Role t = Role
-    { rname :: !String,
-      rvars :: ![t],            -- Set of role variables
-                                -- Events in causal order
-      rtrace :: ![Event t],
-      -- Set of non-originating atoms, possibly with a trace length
-      rdecls :: RoleDeclarations t,
-      rpriority :: ![Int],      -- Priorities for each event
-      rcomment :: [SExpr ()],   -- Comments from the input
-      rsearch :: Bool, -- True when suggesting reverse test node search
-      ridecls :: [(RoleDeclarations t, Int)]}
-    deriving Show
-
-defaultPriority :: Int
-defaultPriority = 5
-
-firstOccurs :: Algebra t p g s e c => t -> Role t -> Maybe Int
-firstOccurs v r = firstOccursAt v (rtrace r)
-
--- | Compute the index of the first event at which the given variable
--- occurs in a trace.
-firstOccursAt :: Algebra t p g s e c => t -> Trace t -> Maybe Int
-firstOccursAt t c =
-    loop 0 c
-    where
-      loop _ [] = Nothing
-      loop i (e : c)
-          | any (occursIn t) (evtTerms e) = Just i
-          | otherwise = loop (i + 1) c
-
--- The empty role name is used with listener strands.  All roles in a
--- protocol must have a name with more than one character.
-
--- The lists vars, non, pnon, and unique are sets and should never
--- contain duplicate terms.
-
--- Create a role
-mkRole :: Algebra t p g s e c => String -> [t] -> Trace t ->
-          RoleDeclList t -> [(Int, Int)] -> [SExpr ()] -> Bool -> Role t
-mkRole name vars trace dlist priority comment rev =
-    Role { rname = name,
-           rvars = L.nub vars,  -- Every variable here must
-           rtrace = trace,      --  occur in the trace.
-           rdecls = mkDecls dlist',
-           rcomment = comment,
-           rpriority = addDefaultPrio priority,
-           ridecls = concatMap mkRidecls $ nats(length(trace)),
-           rsearch = rev
-         }
-    where
-      dlist' = expandDecls vars trace dlist
-      rothersintro = map addOtherOrig $ dlist'
-      restrict i dlist = filter (\x -> not (null (snd x))) (select i dlist)
-      select i dlist = map (\ (n, dis) -> (n, map fst
-                                              (filter (\ (_,j)->i==j) dis))) dlist
-      mkRidecls i =
-        let os = restrict i rothersintro in
-        [(mkDecls os, i)]
-      addOtherOrig (n,ds) = (n, map addDeclOrig ds)
-      addDeclOrig dinst
-            | null ls && null ts = (dinst,0)
-            | any (==Nothing) tps =
-              error "Protocol.mkRole: Declaration variables not in trace"
-            | any (\i -> (i < 0 || i >= length trace)) ls =
-              error "Protocol.mkRole: Declaration height not valid"
-            | null ts = (dinst,maximum ls)
-            | null ls = (dinst,maximum (map M.fromJust tps))
-            | otherwise = (dinst,max (maximum ls) (maximum (map M.fromJust tps)))
-            where
-               ts = dterms dinst
-               ls = dlocs dinst
-               tps = map (\t -> usedPos t trace) ts
-      addDefaultPrio priority =
-          map f (nats $ length trace)
-          where
-            f n =
-              case lookup n priority of
-                Nothing -> defaultPriority
-                Just p -> p
-
--- expandDecls: transform declarations from file format to internal format.
--- This means to (1) add nodes to uniq-orig and uniq-gen declarations (throwing
--- an error if there is no appropriate node), (2) adding ind-zero declarations for
--- generating exponents not declared uniq-gen, and (3) adding ind-zero-in
--- declarations for exponents before a generation point of a uniq-gen exponent.
-expandDecls :: Algebra t p g s e c => [t] -> Trace t ->
-               RoleDeclList t -> RoleDeclList t
-expandDecls _ trace dlist =
-  (map addUniqs dlist) ++ indzeros
-  where
-    -- add locations to uniq-orig and uniq-gen declarations
-    addUniqs ("uniq-orig", ds) = ("uniq-orig", map addUniqOrig ds)
-    addUniqs ("uniq-gen", ds) = ("uniq-gen", map addUniqGen ds)
-    -- leave other declarations alone
-    addUniqs (n, ds) = (n, ds)
-    indzeros = indz_ins
-    -- ind-zero-in declarations: for numeric subterms occurring earlier than
-    -- the generation point of uniq-gen numeric variables.
-    indz_ins = case concatMap indz_ininsts (filter isNum (dkuniqgen decls)) of
-      [] -> []
-      insts -> [("absent", insts)]
-    indz_ininsts v =
-      case generationPos (v) trace of
-        Nothing -> error "Protocol.mkRole: Atom does not generate"
-        Just p -> indz_ininsts_var v p
-    -- ind-zero instances for a specific variable v that generates at height p
-    indz_ininsts_var v p =
-      map (\t -> (declInst [v,t] [])) (numsUpTo p)
-    -- returns a list of numeric subterms of all messages prior to height p.
-    numsUpTo p =
-      concatMap S.toList $ map subNums $ concatMap evtTerms $ take p trace
-    -- avoid = avoidTerms decls
-    decls = mkDecls dlist
-    addUniqOrig dinst
-      | null $ dterms dinst =
-        error "Protocol.mkRole: malformed uniq-orig declaration"
-      | otherwise =
-        case originationPos (t) trace of
-          Just p -> (declInst [t] [p])
-          Nothing -> error "Protocol.mkRole: Atom does not originate"
-      where
-        t = head $ dterms dinst
-    addUniqGen dinst
-      | null $ dterms dinst =
-        error "Protocol.mkRole: malformed uniq-gen declaration"
-      | otherwise =
-        case generationPos (t) trace of
-          Just p -> (declInst [t] [p])
-          Nothing -> error "Protocol.mkRole: Atom does not generate"
-      where
-        t = head $ dterms dinst
-
--- A role is well formed if all non-base variables are receive bound,
--- each atom declared to be uniquely-originating originates in
--- the trace, and every variable that occurs in each atom
--- declared to be non-originating occurs in some term in the trace,
--- and the atom must never be carried by any term in the trace.
-roleWellFormed :: (MonadFail m, Algebra t p g s e c) => Role t -> m ()
-roleWellFormed role =
-    do
-      failwith "[ASSERT FAILED] invalid declaration"
-                   $ all declarationValid (map fst $ declarationTags $ rdecls role)
-      mapM_ nonCheck $ dknon $ rdecls role
-      mapM_ uniqueCheck $ dkunique $ rdecls role
-      let chk = declCheck $ rdecls role
-      failwith (snd chk) (fst chk)
-      mapM_ acqVarCheck $ rvars role
-      mapM_ obtVarCheck $ rvars role
-      failwith "role trace is a prefix of a listener"
-                   $ notListenerPrefix $ rtrace role
-    where
-      declarationValid tag = all declInstValid $ tagDecls tag $ rdecls role
-      declInstValid dinst =
-          (all lenCheck $ dlocs dinst) && (varSubset (dterms dinst) terms)
-      terms = tterms (rtrace role)
-      nonCheck t =
-          failwith (showString "non-orig " $ showst t " carried")
-                       $ all (not . carriedBy t) (tmesgterms (rtrace role))
-      lenCheck n = (n >= 0 && n < (length $ rtrace role))
-
-      uniqueCheck t =
-          failwith (showString "[ASSERT FAILED] uniq-orig " $ showst  t " doesn't originate")
-                       $ originates t (rtrace role)
-      acqVarCheck v =
-          failwith (showString "variable " $ showst v " not acquired")
-                       $ not (isAcquiredVar v) ||
-                         M.isJust (acquiredPos v (rtrace role))
-      obtVarCheck v =
-          failwith (showString "variable " $ showst v " not obtained")
-                       $ not (isObtainedVar v) ||
-                         M.isJust (obtainedPos v (rtrace role))
-
-showst :: Algebra t p g s e c => t -> ShowS
-showst t =
-    shows $ displayTerm (addToContext emptyContext [t]) t
-
--- Ensure a trace is not a prefix of a listener
-notListenerPrefix :: Algebra t p g s e c => Trace t -> Bool
-notListenerPrefix (In t : Out t' : _) | t == t' = False
-notListenerPrefix _ = True
-
--- Security Goals
-
--- Syntax for the atomic formulas
-data AForm t
-  = Length (Role t) t Int
-  | Param (Role t) t Int t t   -- role param first-height strand value
-  | Prec (NodeTerm t) (NodeTerm t)
-  | LeadsTo (NodeTerm t) (NodeTerm t)
-  | Non t
-  | Pnon t
-  | Uniq t
-  | UniqAt t (NodeTerm t)
-  | UgenAt t (NodeTerm t)
-  | Ugen t
-  | AFact String [t]
-  | Equals t t
-  deriving Show
-
-type NodeTerm t = (t, Int)
-
-data Goal t
-  = Goal { uvars :: [t],          -- Universally quantified variables
-           antec :: [AForm t],    -- Antecedent
-           -- Consequent with existentially quantified variables
-           consq :: [([t], [AForm t])],
-           concl :: [[AForm t]] } -- Conclusion
-  deriving Show
-
--- Ordering used to sort by constructor order.
-aFormOrder :: AForm t -> AForm t -> Ordering
-aFormOrder (Length _ _ _) (Length _ _ _) = EQ
-aFormOrder (Length _ _ _) (Param _ _ _ _ _) = LT
-aFormOrder (Length _ _ _) (Prec _ _) = LT
-aFormOrder (Length _ _ _) (LeadsTo _ _) = LT
-aFormOrder (Length _ _ _) (Non _) = LT
-aFormOrder (Length _ _ _) (Pnon _) = LT
-aFormOrder (Length _ _ _) (Uniq _) = LT
-aFormOrder (Length _ _ _) (UniqAt _ _) = LT
-aFormOrder (Length _ _ _) (UgenAt _ _) = LT
-aFormOrder (Length _ _ _) (Ugen _) = LT
-aFormOrder (Length _ _ _) (AFact _ _) = LT
-aFormOrder (Length _ _ _) (Equals _ _) = LT
-aFormOrder (Param _ _ _ _ _) (Length _ _ _) = GT
-aFormOrder (Param _ _ _ _ _) (Param _ _ _ _ _) = EQ
-aFormOrder (Param _ _ _ _ _) (Prec _ _) = LT
-aFormOrder (Param _ _ _ _ _) (LeadsTo _ _) = LT
-aFormOrder (Param _ _ _ _ _) (Non _) = LT
-aFormOrder (Param _ _ _ _ _) (Pnon _) = LT
-aFormOrder (Param _ _ _ _ _) (Uniq _) = LT
-aFormOrder (Param _ _ _ _ _) (UniqAt _ _) = LT
-aFormOrder (Param _ _ _ _ _) (UgenAt _ _) = LT
-aFormOrder (Param _ _ _ _ _) (Ugen _) = LT
-aFormOrder (Param _ _ _ _ _) (AFact _ _) = LT
-aFormOrder (Param _ _ _ _ _) (Equals _ _) = LT
-aFormOrder (Prec _ _) (Length _ _ _) = GT
-aFormOrder (Prec _ _) (Param _ _ _ _ _) = GT
-aFormOrder (Prec _ _) (Prec _ _) = EQ
-aFormOrder (Prec _ _) (LeadsTo _ _) = LT
-aFormOrder (Prec _ _) (Non _) = LT
-aFormOrder (Prec _ _) (Pnon _) = LT
-aFormOrder (Prec _ _) (Uniq _) = LT
-aFormOrder (Prec _ _) (UniqAt _ _) = LT
-aFormOrder (Prec _ _) (UgenAt _ _) = LT
-aFormOrder (Prec _ _) (Ugen _) = LT
-aFormOrder (Prec _ _) (AFact _ _) = LT
-aFormOrder (Prec _ _) (Equals _ _) = LT
-aFormOrder (LeadsTo _ _) (Length _ _ _) = GT
-aFormOrder (LeadsTo _ _) (Param _ _ _ _ _) = GT
-aFormOrder (LeadsTo _ _) (Prec _ _) = GT
-aFormOrder (LeadsTo _ _) (LeadsTo _ _) = EQ
-aFormOrder (LeadsTo _ _) (Non _) = LT
-aFormOrder (LeadsTo _ _) (Pnon _) = LT
-aFormOrder (LeadsTo _ _) (Uniq _) = LT
-aFormOrder (LeadsTo _ _) (UniqAt _ _) = LT
-aFormOrder (LeadsTo _ _) (UgenAt _ _) = LT
-aFormOrder (LeadsTo _ _) (Ugen _) = LT
-aFormOrder (LeadsTo _ _) (AFact _ _) = LT
-aFormOrder (LeadsTo _ _) (Equals _ _) = LT
-aFormOrder (Non _) (Length _ _ _) = GT
-aFormOrder (Non _) (Param _ _ _ _ _) = GT
-aFormOrder (Non _) (Prec _ _) = GT
-aFormOrder (Non _) (LeadsTo _ _) = GT
-aFormOrder (Non _) (Non _) = EQ
-aFormOrder (Non _) (Pnon _) = LT
-aFormOrder (Non _) (Uniq _) = LT
-aFormOrder (Non _) (UniqAt _ _) = LT
-aFormOrder (Non _) (UgenAt _ _) = LT
-aFormOrder (Non _) (Ugen _) = LT
-aFormOrder (Non _) (AFact _ _) = LT
-aFormOrder (Non _) (Equals _ _) = LT
-aFormOrder (Pnon _) (Length _ _ _) = GT
-aFormOrder (Pnon _) (Param _ _ _ _ _) = GT
-aFormOrder (Pnon _) (Prec _ _) = GT
-aFormOrder (Pnon _) (LeadsTo _ _) = GT
-aFormOrder (Pnon _) (Non _) = GT
-aFormOrder (Pnon _) (Pnon _) = EQ
-aFormOrder (Pnon _) (Uniq _) = LT
-aFormOrder (Pnon _) (UniqAt _ _) = LT
-aFormOrder (Pnon _) (UgenAt _ _) = LT
-aFormOrder (Pnon _) (Ugen _) = LT
-aFormOrder (Pnon _) (AFact _ _) = LT
-aFormOrder (Pnon _) (Equals _ _) = LT
-aFormOrder (Uniq _) (Length _ _ _) = GT
-aFormOrder (Uniq _) (Param _ _ _ _ _) = GT
-aFormOrder (Uniq _) (Prec _ _) = GT
-aFormOrder (Uniq _) (LeadsTo _ _) = GT
-aFormOrder (Uniq _) (Non _) = GT
-aFormOrder (Uniq _) (Pnon _) = GT
-aFormOrder (Uniq _) (Uniq _) = EQ
-aFormOrder (Uniq _) (UniqAt _ _) = LT
-aFormOrder (Uniq _) (UgenAt _ _) = LT
-aFormOrder (Uniq _) (Ugen _) = LT
-aFormOrder (Uniq _) (AFact _ _) = LT
-aFormOrder (Uniq _) (Equals _ _) = LT
-aFormOrder (UniqAt _ _) (Length _ _ _) = GT
-aFormOrder (UniqAt _ _) (Param _ _ _ _ _) = GT
-aFormOrder (UniqAt _ _) (Prec _ _) = GT
-aFormOrder (UniqAt _ _) (LeadsTo _ _) = GT
-aFormOrder (UniqAt _ _) (Non _) = GT
-aFormOrder (UniqAt _ _) (Pnon _) = GT
-aFormOrder (UniqAt _ _) (Uniq _) = GT
-aFormOrder (UniqAt _ _) (UniqAt _ _) = EQ
-aFormOrder (UniqAt _ _) (UgenAt _ _) = LT
-aFormOrder (UniqAt _ _) (Ugen _) = LT
-aFormOrder (UniqAt _ _) (AFact _ _) = LT
-aFormOrder (UniqAt _ _) (Equals _ _) = LT
-aFormOrder (UgenAt _ _) (Length _ _ _) = GT
-aFormOrder (UgenAt _ _) (Param _ _ _ _ _) = GT
-aFormOrder (UgenAt _ _) (Prec _ _) = GT
-aFormOrder (UgenAt _ _) (LeadsTo _ _) = GT
-aFormOrder (UgenAt _ _) (Non _) = GT
-aFormOrder (UgenAt _ _) (Pnon _) = GT
-aFormOrder (UgenAt _ _) (Uniq _) = GT
-aFormOrder (UgenAt _ _) (UniqAt _ _) = GT
-aFormOrder (UgenAt _ _) (UgenAt _ _) = EQ
-aFormOrder (UgenAt _ _) (Ugen _) = LT
-aFormOrder (UgenAt _ _) (AFact _ _) = LT
-aFormOrder (UgenAt _ _) (Equals _ _) = LT
-aFormOrder (Ugen _) (Length _ _ _) = GT
-aFormOrder (Ugen _) (Param _ _ _ _ _) = GT
-aFormOrder (Ugen _) (Prec _ _) = GT
-aFormOrder (Ugen _) (LeadsTo _ _) = GT
-aFormOrder (Ugen _) (Non _) = GT
-aFormOrder (Ugen _) (Pnon _) = GT
-aFormOrder (Ugen _) (Uniq _) = GT
-aFormOrder (Ugen _) (UniqAt _ _) = GT
-aFormOrder (Ugen _) (UgenAt _ _) = GT
-aFormOrder (Ugen _) (Ugen _) = EQ
-aFormOrder (Ugen _) (AFact _ _) = LT
-aFormOrder (Ugen _) (Equals _ _) = LT
-aFormOrder (AFact _ _) (Length _ _ _) = GT
-aFormOrder (AFact _ _) (Param _ _ _ _ _) = GT
-aFormOrder (AFact _ _) (Prec _ _) = GT
-aFormOrder (AFact _ _) (LeadsTo _ _) = GT
-aFormOrder (AFact _ _) (Non _) = GT
-aFormOrder (AFact _ _) (Pnon _) = GT
-aFormOrder (AFact _ _) (Uniq _) = GT
-aFormOrder (AFact _ _) (UniqAt _ _) = GT
-aFormOrder (AFact _ _) (UgenAt _ _) = GT
-aFormOrder (AFact _ _) (Ugen _) = GT
-aFormOrder (AFact _ _) (AFact _ _) = EQ
-aFormOrder (AFact _ _) (Equals _ _) = LT
-aFormOrder (Equals _ _) (Length _ _ _) = GT
-aFormOrder (Equals _ _) (Param _ _ _ _ _) = GT
-aFormOrder (Equals _ _) (Prec _ _) = GT
-aFormOrder (Equals _ _) (LeadsTo _ _) = GT
-aFormOrder (Equals _ _) (Non _) = GT
-aFormOrder (Equals _ _) (Pnon _) = GT
-aFormOrder (Equals _ _) (Uniq _) = GT
-aFormOrder (Equals _ _) (UniqAt _ _) = GT
-aFormOrder (Equals _ _) (UgenAt _ _) = GT
-aFormOrder (Equals _ _) (Ugen _) = GT
-aFormOrder (Equals _ _) (AFact _ _) = GT
-aFormOrder (Equals _ _) (Equals _ _) = EQ
-
-aFreeVars :: Algebra t p g s e c => [t] -> AForm t -> [t]
-aFreeVars vars (Length _ z _) = addVars vars z
-aFreeVars vars (Param _ _ _ z t) = addVars (addVars vars z) t
-aFreeVars vars (Prec (x, _) (y, _)) = addVars (addVars vars x) y
-aFreeVars vars (LeadsTo (x, _) (y, _)) = addVars (addVars vars x) y
-aFreeVars vars (Non t) = addVars vars t
-aFreeVars vars (Pnon t) = addVars vars t
-aFreeVars vars (Uniq t) = addVars vars t
-aFreeVars vars (UniqAt t (z, _)) = addVars (addVars vars t) z
-aFreeVars vars (UgenAt t (z, _)) = addVars (addVars vars t) z
-aFreeVars vars (Ugen t) = addVars vars t
-aFreeVars vars (AFact _ ft) = foldl addVars vars ft
-aFreeVars vars (Equals x y) = addVars (addVars vars x) y
-
-data Rule t
-  = Rule { rlname :: String,    -- Name of rule
-           rlgoal :: Goal t,    -- Sentence
-           rlcomment :: [SExpr ()] }
-    deriving Show
-
--- Protocols
-
-data Prot t g
-    = Prot { pname :: !String,  -- Name of the protocol
-             alg :: !String,    -- Name of the algebra
-             pgen :: !g,      -- Initial variable generator
-             roles :: ![Role t], -- Non-listener roles of a protocol
-             listenerRole :: Role t,
-             rules :: ![Rule t],  -- Protocol rules
-             varsAllAtoms :: !Bool,   -- Are all role variables atoms?
-             pcomment :: [SExpr ()] }  -- Comments from the input
-    deriving Show
-
--- Callers should ensure every role has a distinct name.
-mkProt :: Algebra t p g s e c => String -> String ->
-          g -> [Role t] -> Role t -> [Rule t] -> [SExpr ()] -> Prot t g
-mkProt name alg gen roles lrole rules comment =
-    Prot { pname = name, alg = alg, pgen = gen, roles = roles,
-           listenerRole = lrole, rules = rules, pcomment = comment,
-           varsAllAtoms = all roleVarsAllAtoms roles }
-    where
-      roleVarsAllAtoms role = all isAtom (rvars role)
-
-type RoleDeclInst t = DeclInst t Int
-type RoleDeclInstList t = DeclInstList t Int
-type RoleDeclaration t = Declaration t Int
-type RoleDeclList t = DeclList t Int
-type RoleDeclarations t = Declarations t Int
diff --git a/src/CPSA/Lib/Reduction.hs b/src/CPSA/Lib/Reduction.hs
deleted file mode 100644
--- a/src/CPSA/Lib/Reduction.hs
+++ /dev/null
@@ -1,511 +0,0 @@
--- Term reduction for the CPSA solver.
-
--- Copyright (c) 2010 The MITRE Corporation
---
--- This program is free software: you can redistribute it and/or
--- modify it under the terms of the BSD License as published by the
--- University of California.
-
--- Provides the top-level search loop, which implements term reduction
--- on skeletons.
-
-module CPSA.Lib.Reduction (solve) where
-
-import System.IO
-import Control.Parallel
-import qualified Data.List as L
-import CPSA.Lib.Utilities
-import CPSA.Lib.SExpr
-import CPSA.Lib.Entry
-import CPSA.Lib.Algebra
-import CPSA.Lib.Protocol
-import CPSA.Lib.Strand
-import CPSA.Lib.Cohort
-import CPSA.Lib.Displayer
-
---
-{-- Debugging support (Comment line above)
-import CPSA.Lib.Debug
-{--
-import System.IO.Unsafe
-
-z :: Show a => a -> b -> b
-z x y = unsafePerformIO (print x >> return y)
-
-zz :: Show a => a -> a
-zz x = z x x
---}
---}
-
--- Set when debugging an exception so that buffered results get out.
-useFlush :: Bool
-useFlush = False                -- True
-
--- Parameter driven S-expression printer
-wrt :: Options -> Handle -> SExpr a -> IO ()
-wrt p h sexpr =
-    do
-      writeLnSExpr h (optMargin p) sexpr
-      if useFlush then hFlush h else return ()
-
--- A labeled and linked preskeleton
-data LPreskel t g s e
-    = LPreskel { content :: Preskel t g s e,
-                 label :: Int,
-                 depth :: Int,
-                 parent :: Maybe (LPreskel t g s e) }
-      deriving Show
-
-withParent :: Preskel t g s e -> Int ->  LPreskel t g s e -> LPreskel t g s e
-withParent k label parent =
-    LPreskel k label (1 + depth parent) (Just parent)
-
--- A skeleton that has been seen before need not be reanalyzed.
--- Instead, one looks up the label of the skeleton seen before, and
--- returns it.  What follows is the data structure used to store
--- information in the seen history used for the isomorphism check.
--- The integer is the label of the seen skeleton.
-type IPreskel t g s e = (Gist t g, Int)
-
--- Is the skeleton summarized by gist g isomorphic to one with the
--- given label?
-wasSeen :: Algebra t p g s e c => Gist t g ->
-           IPreskel t g s e -> Bool
-wasSeen g (g', _) = isomorphic g g'
-
--- A seen history as a list.
-
-newtype Seen t g s e = Seen [IPreskel t g s e]
-
--- Create a singleton seen history
-hist :: IPreskel t g s e -> Seen t g s e
-hist ik = Seen [ik]
-
--- Add an element to the seen history.
-remember :: IPreskel t g s e -> Seen t g s e -> Seen t g s e
-remember ik (Seen seen) = Seen (ik : seen)
-
--- Find an element of the seen history that satisfies a predicate.
-recall :: (IPreskel t g s e -> Bool) ->
-          Seen t g s e -> Maybe (IPreskel t g s e)
-recall f (Seen seen) = L.find f seen
-
--- Create an empty seen history
-void :: Seen t g s e
-void = Seen []
-
--- Merge two seen histories.
-merge :: Seen t g s e -> Seen t g s e -> Seen t g s e
-merge (Seen xs) (Seen ys) = Seen (xs ++ ys)
-
--- Contains the result of applying the cohort reduction rule.  The
--- last position is used to hold the reverse of the labels of the
--- seen children
-data Reduct t g s e  =
-    Reduct !(LPreskel t g s e) !Int ![Preskel t g s e] ![Int]
-
-parMap :: (a -> b) -> [a] -> [b]
-parMap _ [] = []
-parMap f (x:xs) =
-    par y (pseq ys (y:ys))
-    where
-      y = f x
-      ys = parMap f xs
-
-{--  Turn off parallism with this:
-
-parMap :: (a -> b) -> [a] -> [b]
-parMap = map
-
--}
-
--- Entry point for analysis
--- n is the step count
-solve :: Algebra t p g s e c => Options -> Handle ->
-         [Preskel t g s e] -> Int -> IO ()
-solve _ h [] _ =                -- Done
-    hClose h
-solve p h (k : ks) n | (not $ optDoAnalyze p) =
-    do
-      wrt p h (displayProt (protocol k))
-      -- Just display the preskel
-      wrt p h (displayPreskel k [])
-      solve p h ks n
-solve p h (k : ks) n =
-    do
-      wrt p h (displayProt (protocol k)) -- show protocol
-      case firstSkeleton k of
-        [] ->                  -- Input cannot be made into a skeleton
-            do
-              let lk = LPreskel k n 0 Nothing
-              wrt p h (commentPreskel lk [] (unrealized k) Ordinary Nada
-                       "Input cannot be made into a skeleton--nothing to do")
-              solve p h ks (n + 1)
-        ks' ->
-            -- If input was a skeleton, just proceed
-            case [k'' | k'' <- ks', isomorphic (gist k) (gist k'')] of
-              (k' : _) -> begin p h ks (n + optLimit p) (n+1)
-                            (hist (gist k', n)) [LPreskel k' n 0 Nothing]
-              [] ->
-                do
-                  let lk = LPreskel k n (-1) Nothing
-                  let ks'' = L.nubBy (\k1 k2 -> isomorphic (gist k1) (gist k2)) ks'
-                  wrt p h (commentPreskel lk [] (unrealized k) Ordinary
-                            Preskeleton "Not a skeleton")
-                  let lk_nums = zip [(n+1) .. (n+length(ks'))] ks''
-                  let lks' = map (\(n', k')-> withParent k' n' lk) lk_nums
-                  begin p h ks (n + optLimit p) (n+length(ks'')+1)
-                           (hist (gist (head ks'), n+1)) lks'
-
--- Begin by applying rules as much as possible.
-begin :: Algebra t p g s e c => Options -> Handle ->
-         [Preskel t g s e] -> Int -> Int -> Seen t g s e ->
-         [LPreskel t g s e] -> IO ()
-begin p h ks m n seen todo =
-  loop n seen todo []
-  where
-    loop n seen [] todo =
-      search p h ks m n seen (reverse todo) []
-    loop n seen (lk : lks) todo =
-      let k = content lk in
-        case rewrite k of
-          Nothing -> loop n seen lks (lk : todo)
-          Just kids ->
-            do
-              wrt p h (commentPreskel lk [] (unrealized k) Ordinary
-                       Nada "Not closed under rules")
-              let (n', seen', todo', _) =
-                    foldl (next lk) (n, seen, todo, []) kids
-              loop n' seen' (reverse todo') lks
-
--- Apply collapse until all possibilities are exhausted.
-search :: Algebra t p g s e c => Options -> Handle ->
-            [Preskel t g s e] -> Int -> Int -> Seen t g s e ->
-            [LPreskel t g s e] -> [LPreskel t g s e] -> IO ()
-search p h ks m n seen [] done =
-    mode p h ks m n seen (reverse done)
-search p h ks m n seen (lk:todo) done =
-    do
-      let kids = concatMap simplify (collapse $ content lk)
-      let (n', seen', todo', _) =
-              foldl (next lk) (n, seen, todo, []) kids
-      search p h ks m n' seen' todo' (lk:done)
-
--- Select reduction mode, noIsoChk or normal
-mode :: Algebra t p g s e c => Options -> Handle ->
-        [Preskel t g s e] -> Int -> Int -> Seen t g s e ->
-        [LPreskel t g s e] -> IO ()
-mode p h ks m n seen todo =
-    if optNoIsoChk p then
-        fast p h ks m n todo     -- Peform no isomorphism checks
-    else
-        breadth p h ks m n seen todo []
-
--- The main loop is implemented using breadth and step.  Tail calls
--- are used to ensure they do not add to the control stack.
-
--- Function breadth handles one level of the derivation tree.
--- This ensures a breadth first derivation order.
---
--- p is the runtime options
--- h is the output handle
--- ks is the list of problems
--- m is the step limit
--- n is the current step count
--- seen holds the gists of seen skeletons
--- todo holds unreduced skeletons
--- toobig holds skeletons that have exceed the strand bound.
-breadth :: Algebra t p g s e c => Options -> Handle ->
-           [Preskel t g s e] -> Int -> Int -> Seen t g s e ->
-           [LPreskel t g s e] -> [LPreskel t g s e] -> IO ()
-breadth p h ks _ n _ [] [] =       -- Empty todo list and toobig list
-    do
-      wrt p h (comment "Nothing left to do")
-      solve p h ks n            -- Solve next problem
-breadth p h _ _ _ _ [] toobig = -- Empty todo list and non-null toobig list
-    do
-      wrt p h (comment "Strand bound exceeded--aborting run")
-      dump p h (reverse toobig)  "Strand bound exceeded"
-breadth p h ks m n seen todo toobig =
-    step p h ks m seen n void [] toobig (parMap (branch p seen) todo)
-
--- Returns the nodes in a preskeleton that are not realized and are at or
--- above the minimum priority.
-thresholdUnrealized :: Algebra t p g s e c => Preskel t g s e -> [Node]
-thresholdUnrealized k = filter activePriority $ unrealized k
-  where
-    activePriority n = (priority k n >= minPriority)
-
--- Function step handles one skeleton in one level of the tree.
-step :: Algebra t p g s e c => Options -> Handle ->
-        [Preskel t g s e] -> Int -> Seen t g s e -> Int ->
-        Seen t g s e -> [LPreskel t g s e] ->
-        [LPreskel t g s e] -> [Reduct t g s e] -> IO ()
-step p h ks m oseen n seen todo toobig [] = -- Empty reducts
-    breadth p h ks m n (merge seen oseen) (reverse todo) toobig
-step p h _ m _ n _ todo toobig reducts
-    | n > m =                   -- Check step count
-        do
-          wrt p h (comment "Step limit exceeded--aborting run")
-          dump p h (mktodo reducts todo toobig) "Step limit exceeded"
-step p h ks m oseen n seen todo toobig (Reduct lk _ _  _  : reducts)
-    | nstrands (content lk) >= optBound p = -- Check strand count
-        step p h ks m oseen n seen todo (lk : toobig) reducts
-step p h ks m oseen n seen todo toobig (Reduct lk size kids dups : reducts)
-    | optGoalsSat p && satCheck lk = -- Stop if goals satisfied mode?
-        do
-          let ns = unrealized (content lk)
-          let shape = if null ns then Shape else Fringe
-          wrt p h (commentPreskel lk [] ns shape SatisfiesAll "satisfies all")
-          step p h ks m oseen n seen todo toobig reducts
-    | size <= 0 =               -- Interpret empty reducts
-        do
-          let ns = unrealized (content lk)
-          let shape = if null ns then Shape else Ordinary
-          let live = null $ thresholdUnrealized (content lk)
-          wrt p h (commentPreskel lk [] ns shape
-                   (if live then Nada else Dead)
-                   (if live then "" else "empty cohort"))
-          step p h ks m oseen n seen todo toobig reducts
-    | optDepth p > 0 && depth lk >= optDepth p =
-        do
-          let ns = unrealized (content lk)
-          wrt p h (commentPreskel lk [] ns Fringe Nada "")
-          step p h ks m oseen n seen todo toobig reducts
-    | otherwise =
-        do
-          let (n', seen', todo', dups') =
-                  foldl (next lk) (n, seen, todo, dups) kids
-          let ns = unrealized (content lk)
-          let u = size - length dups'
-          let msg = shows size $ showString " in cohort - " $
-                         shows u " not yet seen"
-          wrt p h (commentPreskel lk (reverse dups') ns Ordinary Nada msg)
-          step p h ks m oseen n' seen' todo' toobig reducts
-
--- Expands one branch in the derivation tree.
-branch :: Algebra t p g s e c => Options -> Seen t g s e ->
-          LPreskel t g s e -> Reduct t g s e
-branch p seen lk =
-    Reduct lk (length kids)
-               (seqList $ reverse unseen) (seqList dups)
-    where
-      kids = reduce (mkMode p) (content lk)
-      (unseen, dups) =
-          foldl (duplicates seen) ([], []) kids
-
-mkMode :: Options -> Mode
-mkMode p =
-    Mode { noGeneralization = optNoIsoChk p,
-           nonceFirstOrder = optCheckNoncesFirst p,
-           visitOldStrandsFirst = optTryOldStrandsFirst p,
-           reverseNodeOrder = optTryYoungNodesFirst p}
-
-duplicates :: Algebra t p g s e c => Seen t g s e ->
-              ([Preskel t g s e], [Int]) ->
-                  Preskel t g s e -> ([Preskel t g s e], [Int])
-duplicates seen (unseen, dups) kid =
-    case recall (wasSeen $ gist kid) seen of
-      Just (_, label) -> (unseen, label : dups)
-      Nothing -> (kid : unseen, dups)
-
--- Make a todo list for dump
-mktodo :: [Reduct t g s e] ->
-          [LPreskel t g s e] -> [LPreskel t g s e] ->
-          [LPreskel t g s e]
-mktodo reducts todo toobig =
-    map (\(Reduct lk _ _ _) -> lk) reducts ++ reverse todo ++ reverse toobig
-
-type Next t p g s e c =
-    (Int, Seen t g s e, [LPreskel t g s e], [Int])
-
--- Update state variables used by step.
-next :: Algebra t p g s e c => LPreskel t g s e ->
-        Next t p g s e c -> Preskel t g s e ->
-        Next t p g s e c
-next p (n, seen, todo, dups) k =
-    let g = gist k in
-    case recall (wasSeen g) seen of
-      Just (_, label) ->
-          (n, seen, todo, label : dups)
-      Nothing ->
-          (n + 1, remember (g, n) seen, lk : todo, dups)
-          where
-            lk = withParent k n p -- Label a preskeleton here
-
--- This function reduces without checking for isomorphisms
-fast :: Algebra t p g s e c => Options -> Handle ->
-        [Preskel t g s e] -> Int -> Int ->
-        [LPreskel t g s e] -> IO ()
-fast p h ks _ n [] =            -- Empty todo list
-    do
-      wrt p h (comment "Nothing left to do")
-      solve p h ks n
-fast p h _ m n todo
-    | n > m =                   -- Check step count
-        do
-          wrt p h (comment "Step limit exceeded--aborting run")
-          dump p h todo "Step limit exceeded"
-fast p h _ _ _ todo@(lk : _)
-    | nstrands (content lk) >= optBound p = -- Check strand count
-        do
-          wrt p h (comment "Strand bound exceeded--aborting run")
-          dump p h todo "Strand bound exceeded"
-fast p h ks m n (lk : todo) =
-    do
-      let ns = unrealized (content lk)
-      let ks' = reduce (mkMode p) (content lk)
-      let msg = show (length ks') ++ " in cohort"
-      let shape = if null ns then Shape else Ordinary
-      wrt p h (commentPreskel lk [] ns shape Nada msg)
-      let (n', todo') = foldl (children lk) (n, []) ks'
-      fast p h ks m n' (todo ++ reverse todo')
-
-children :: LPreskel t g s e -> (Int, [LPreskel t g s e]) ->
-            Preskel t g s e -> (Int, [LPreskel t g s e])
-children p (n, todo) k =        -- Label a preskeleton here
-    (n + 1, withParent k n p : todo)
-
--- Print partial results in a form that works with analysis tools
-dump :: Algebra t p g s e c => Options -> Handle ->
-        [LPreskel t g s e] -> String -> IO ()
-dump _ h [] msg =
-    do
-      hClose h
-      abort msg
-dump p h (lk : lks) msg =
-    do
-      let ns = unrealized $ content lk
-      wrt p h (commentPreskel lk [] ns Aborted Nada "aborted")
-      dump p h lks msg
-
--- Add a label, maybe a parent, a list of seen preskeletons isomorphic
--- to some members of this skeleton's cohort, and a list of unrealized
--- nodes.  If it's a shape, note this fact.  Add a comment if present.
-commentPreskel :: Algebra t p g s e c => LPreskel t g s e ->
-                  [Int] -> [Node] -> Kind -> Anno -> String -> SExpr ()
-commentPreskel lk seen unrealized kind anno msg =
-    displayPreskel k $
-    addKeyValues "label" [N () (label lk)] $
-    maybeAddVKeyValues "parent" (\p -> [N () (label p)]) (parent lk) $
-    condAddKeyValues "seen" (not $ null seen)
-                     (map (N ()) (L.sort (L.nub seen))) $
-    addKeyValues "unrealized" (map displayNode $ L.sort unrealized) $
-    addKindKey kind $ addAnnoKey anno $
-    condAddKeyValues "satisfies" (kind == Shape && (not $ null $ kgoals k))
-    (satisfies k) $
-    -- Structure preserving maps
-    -- Added for cpsasas program
-    condAddKeyValues "maps" fringe (maps k) $
-    -- Nodes of origination
-    -- Added for cpsasas program
-    condAddKeyValues "origs" (starter k || fringe) (origs k) $
-    -- Messages
-    case msg of
-      "" -> []
-      _ -> [comment msg]
-    where
-      fringe = isFringe kind
-      k = content lk
-      starter k =               -- True for the POV skeleton and
-          case pov k of         -- just a few others
-            Nothing -> True
-            Just k' -> nstrands k == nstrands k'
-
-addKeyValues :: String -> [SExpr ()] -> [SExpr ()] -> [SExpr ()]
-addKeyValues key values rest =
-    L () (S () key : values) : rest
-
-condAddKeyValues :: String -> Bool -> [SExpr ()] -> [SExpr ()] -> [SExpr ()]
-condAddKeyValues _ False _ rest =
-    rest
-condAddKeyValues key True values rest =
-    addKeyValues key values rest
-
-maybeAddVKeyValues :: String -> (a -> [SExpr ()]) -> Maybe a ->
-                      [SExpr ()] -> [SExpr ()]
-maybeAddVKeyValues _ _ Nothing rest =
-    rest
-maybeAddVKeyValues key f (Just x) rest =
-    addKeyValues key (f x) rest
-
-data Kind
-    = Ordinary
-    | Shape
-    | Fringe
-    | Aborted
-      deriving (Eq, Show)
-
-addKindKey :: Kind -> [SExpr ()] -> [SExpr ()]
-addKindKey Ordinary xs = xs
-addKindKey Shape xs = addKeyValues "shape" [] xs
-addKindKey Fringe xs = addKeyValues "fringe" [] xs
-addKindKey Aborted xs = addKeyValues "aborted" [] xs
-
-isFringe :: Kind -> Bool
-isFringe Ordinary = False
-isFringe Shape = True
-isFringe Fringe = True
-isFringe Aborted = False
-
--- Skeleton annotations
-data Anno
-  = Nada
-  | Preskeleton
-  | SatisfiesAll
-  | Dead
-
-addAnnoKey :: Anno -> [SExpr ()] -> [SExpr ()]
-addAnnoKey Nada xs = xs
-addAnnoKey Preskeleton xs = addKeyValues "preskeleton" [] xs
-addAnnoKey SatisfiesAll xs = addKeyValues "satisfies-all" [] xs
-addAnnoKey Dead xs = addKeyValues "dead" [] xs
-
--- Variable assignments and security goals
-
-satisfies :: Algebra t p g s e c => Preskel t g s e -> [SExpr ()]
-satisfies k =
-  map f (sat k) where
-    f (_, []) = S () "yes"
-    f (g, e : _) =
-      L () (S () "no" : displayEnv (ctx $ uvars g) (ctx $ kvars k) e)
-    ctx ts = addToContext emptyContext ts
-
--- Prints structure preserving maps (homomorphisms)
-maps :: Algebra t p g s e c => Preskel t g s e -> [SExpr ()]
-maps k =
-    map (amap $ strandMap k) (envMaps k)
-    where
-      amap strands env = L () [L () strands, L () env]
-      strandMap k = map (N ()) (prob k)
-      envMaps k =
-          case pov k of
-            Nothing -> []
-            Just k' ->
-                map (displayEnv (ctx k') (ctx k))
-                    (homomorphism k' k (prob k))
-      ctx k = addToContext emptyContext (kvars k)
-
--- Prints the nodes of origination for each uniquely originating atom
-origs :: Algebra t p g s e c => Preskel t g s e -> [SExpr ()]
-origs k =
-    [ L () [displayTerm ctx t, displayNode n]
-      | (t, ns) <- korig k, n <- ns ]
-    where
-      ctx = addToContext emptyContext (kvars k)
-
--- Prints the nodes of origination for each uniquely originating atom
---ugens :: Algebra t p g s e c => Preskell t g s e -> [SExpr ()]
---ugens k =
---    [ L () [displayTerm ctx t, displayNode n]
---      | (t, ns) <- kugen k, n <- ns ]
---    where
---      ctx = addToContext emptyContext (kvars k)
-
-satCheck :: Algebra t p g s e c => LPreskel t g s e -> Bool
-satCheck lk =
-  not (null tests) && all f tests
-  where
-    tests = sat $ content lk
-    f (_, []) = True
-    f _ = False
diff --git a/src/CPSA/Lib/ReturnFail.hs b/src/CPSA/Lib/ReturnFail.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Lib/ReturnFail.hs
@@ -0,0 +1,30 @@
+-- Contains MonadFail friendly version of Either String.
+
+-- Copyright (c) 2009 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module CPSA.Lib.ReturnFail where
+
+-- Like Either String but with fail method defined
+data ReturnFail a
+    = Return a
+    | Fail String
+
+instance Functor ReturnFail where
+    fmap _ (Fail x)   = Fail x
+    fmap f (Return y) = Return (f y)
+
+instance Applicative ReturnFail where
+    pure           = Return
+    Fail e <*> _   = Fail e
+    Return f <*> r = fmap f r
+
+instance Monad ReturnFail where
+    Fail l >>= _   = Fail l
+    Return r >>= k = k r
+
+instance MonadFail ReturnFail where
+    fail s         = Fail s
diff --git a/src/CPSA/Lib/State.hs b/src/CPSA/Lib/State.hs
deleted file mode 100644
--- a/src/CPSA/Lib/State.hs
+++ /dev/null
@@ -1,57 +0,0 @@
-module CPSA.Lib.State where
-
-import Data.Maybe (catMaybes)
-import CPSA.Lib.Algebra
-import CPSA.Lib.Utilities
-
--- A transition (pre-state, post-state)
-newtype Tran t = Tran (Maybe t, Maybe t) deriving (Show, Eq, Ord)
-
-now :: Tran t -> Maybe t
-now (Tran (t, _)) = t
-
-next :: Tran t -> Maybe t
-next (Tran (_, t)) = t
-
-observer :: Tran t -> Bool
-observer (Tran (_, Nothing)) = True
-observer _ = False
-
-path :: Tran t -> Bool
-path x = not (observer x)
-
-transition :: Tran t -> Bool
-transition (Tran (Just _, Just _)) = True
-transition _ = False
-
-tranTerms :: Tran t -> [t]
-tranTerms (Tran (Nothing, Nothing)) =
-  assertError ("Encountered sync with no pre- or post-state in State.hs:tranTerms")
-tranTerms (Tran (now, next)) =
-  catMaybes [now, next]
-
-mapTran :: (t -> t) -> Tran t -> Tran t
-mapTran f (Tran (now, next)) =
-  Tran (maybe Nothing (Just . f) now, maybe Nothing (Just . f) next)
-
-matchTran :: Algebra t p g s e c => Tran t -> Tran t -> (g, e) -> [(g, e)]
-matchTran (Tran (c, n)) (Tran (c', n')) ge =
-  do
-    ge <- matchNext c c' ge
-    matchNext n n' ge
-
-matchNext :: Algebra t p g s e c => Maybe t -> Maybe t -> (g, e) -> [(g, e)]
-matchNext Nothing Nothing ge = [ge]
-matchNext (Just t) (Just t') ge = match t t' ge
-matchNext _ _ _ = []
-
-unifyTran :: Algebra t p g s e c => Tran t -> Tran t -> (g, s) -> [(g, s)]
-unifyTran (Tran (c, n)) (Tran (c', n')) gs =
-  do
-    gs <- unifyNext c c' gs
-    unifyNext n n' gs
-
-unifyNext :: Algebra t p g s e c => Maybe t -> Maybe t -> (g, s) -> [(g, s)]
-unifyNext Nothing Nothing ge = [ge]
-unifyNext (Just t) (Just t') ge = unify t t' ge
-unifyNext _ _ _ = []
diff --git a/src/CPSA/Lib/Strand.hs b/src/CPSA/Lib/Strand.hs
deleted file mode 100644
--- a/src/CPSA/Lib/Strand.hs
+++ /dev/null
@@ -1,3411 +0,0 @@
--- Instance and preskeleton data structures and support functions.
-
--- Copyright (c) 2009 The MITRE Corporation
---
--- This program is free software: you can redistribute it and/or
--- modify it under the terms of the BSD License as published by the
--- University of California.
-
-module CPSA.Lib.Strand (Instance, mkInstance, bldInstance, mkListener,
-    role, env, trace, height, listenerTerm, Sid, Node, mkPreskel,
-    firstSkeleton, Pair, Preskel, gen, protocol, kgoals, insts,
-    orderings, leadsto, kfacts, useFactVars,
-    pov, korig, kcomment, nstrands, kvars, kpriority, kpriorities,
-    strandids, kterms, avoid, preskelWellFormed, verbosePreskelWellFormed,
-    Strand, inst, nodes, Vertex, preds, event, kabsent,
-    graphNode, strands, vertex, Gist, gist, isomorphic, contract, augment,
-    addListener, addBaseListener, addAbsence, isNodePrecur,
-    Cause (..), Direction (..), Method (..), Operation (..),
-    operation, SkelDeclInst, SkelDeclInstList, SkelDeclaration,
-    SkelDeclList, SkelDeclarations, priority,
-    prob, homomorphism, toSkeleton, generalize, collapse, decls, sat,
-    FTerm (..), Fact (..), simplify, rewrite) where
-
-import Control.Monad
--- import System.IO.Error (ioeGetErrorString)
-import qualified Data.List as L
-import qualified Data.Set as S
-import Data.Set (Set)
-import qualified Data.Maybe as M
-import CPSA.Lib.Utilities
-import CPSA.Lib.SExpr
-import CPSA.Lib.Algebra
-import CPSA.Lib.AlgebraLibrary
-import CPSA.Lib.Declaration
-import CPSA.Lib.State
-import CPSA.Lib.Protocol
-
--- Debugging support (Uncomment below)
---import CPSA.Lib.Debug
-
-{-- Additional debugging support
-zi :: Algebra t p g s e c => Instance t e -> String
-zi inst =
-    show (map f e)
-    where
-      domain = rvars (role inst)
-      e = reify domain (env inst)
-      range = map snd e
-      f (x, t) = (displayTerm (context domain) x,
-                  displayTerm (context range) t)
-      context ts = addToContext emptyContext ts
-
-zs :: Algebra t p g s e c => Set t -> String
-zs s =
-    show $ map (displayTerm (addToContext emptyContext ts)) ts
-    where
-      ts = S.toList s
--- Also see showst
---}
-
--- Compile time switches for expermentation.
-
--- Enable thinning, else use pruning.
-useThinning :: Bool
-useThinning = True -- False
-
--- Do not do multistrand thinning.
-useSingleStrandThinning :: Bool
-useSingleStrandThinning = False -- True
-
--- Enable de-origination.
--- Don't use de-origination without thinning although you may want to
--- use thinning without de-origination.
-useDeOrigination :: Bool
-useDeOrigination = False -- useThinning
-
--- Enable variables in facts that do not occur elsewhere in skeletons
-useFactVars :: Bool
-useFactVars = False -- True
-
--- Sanity check: ensure no role variable occurs in a skeleton.
-useCheckVars :: Bool
-useCheckVars = False
-
--- Instances and Strand Identifiers
-
--- An Instance is an instance of a role, in the sense that each
--- variable in the role's trace has been replaced by a term.  The
--- trace of the instance might be shorter that the role's trace, but
--- only truncating nodes from the end of the trace.
-
--- A preskeleton stores its strands as a ordered sequence of
--- instances.  A strand is the position of an instance in the
--- sequence.  Duplicates are allowed in the sequence, as two strands
--- can be instantiated from the same role in the same way.
-
-type Sid = Int                  -- Strand Identifier
-
-data Instance t e = Instance
-    { role :: Role t,           -- Role from which this was
-                                -- instantiated
-
-      env :: !e,                -- The environment used to build this
-                                -- instance's trace from its role's
-                                -- trace
-
-      trace :: ![Event t], -- Instance's trace
-      height :: !Int }          -- Height of the instance
-    deriving Show
-
--- Create a fresh instance of the given height.  The environment
--- specifies how to map some variables in the role's trace.  Unmapped
--- variables are instantiated with fresh variables to avoid naming
--- conflicts.
-mkInstance :: Algebra t p g s e c => g -> Role t ->
-              e -> Int -> (g, Instance t e)
-mkInstance gen role env height =
-    let trace = rtrace role
-        rheight = length trace in
-    if height < 1 || height > rheight then
-        error "Strand.mkInstance: Bad strand height"
-    else
-        let (gen', env') = grow (rvars role) gen env
-            trace' = map (evtMap $ instantiate env') (take height trace) in
-        -- Ensure every variable in the range of the environment
-        -- occurs in the trace.
-        case bldInstance role trace' gen' of
-          (gen'', inst) : _ -> (gen'', inst)
-          [] -> error "Strand.mkInstance: Not an instance"
-
--- For each term that matches itself in the environment, extend the
--- mapping so that the term maps to one with a fresh set of variables.
--- It is an error if a variable in one of the terms is explicitly
--- mapped to itself in the initial environment.
-grow :: Algebra t p g s e c => [t] -> g -> e -> (g, e)
-grow [] gen env = (gen, env)
-grow (t : ts) gen env =
-    case match t t (gen, env) of
-      [] -> grow ts gen env     -- Term already mapped
-      _ ->                      -- Otherwise make a fresh mapping
-          let (gen', t') = clone gen t in
-          case match t t' (gen', env) of
-            (gen'', env') : _ -> grow ts gen'' env'
-            [] -> error "Strand.grow: Internal error"
-
--- Build an instance from a role and a trace.  Returns the empty list
--- if the trace is not an instance of the given role.
-bldInstance :: Algebra t p g s e c => Role t ->
-               Trace t -> g -> [(g, Instance t e)]
-bldInstance _ [] _ = error "Strand.bldInstance: Bad trace"
-bldInstance role trace gen =
-    loop (rtrace role) trace (gen, emptyEnv) -- Loop builds env
-    where
-      loop _ [] (gen, env) =        -- Trace can be shorter than role's trace
-          [(gen, makeInstance role env trace)]
-      loop (In t : c) (In t' : c') ge =
-          do
-            env <- match t t' ge
-            loop c c' env
-      loop (Out t : c) (Out t' : c') ge =
-          do
-            env <- match t t' ge
-            loop c c' env
-      loop (Sync t : c) (Sync t' : c') ge =
-          do
-            env <- matchTran t t' ge
-            loop c c' env
-      loop _ _ _ = []
-
-makeInstance :: Role t -> e ->
-                Trace t -> Instance t e
-makeInstance role env trace =
-    Instance { role = role,
-               env = env,
-               trace = trace,
-               height = h }
-    where
-      h = length trace
-
--- This is the only place a role is generated with an empty name.
--- This is what marks a strand as a listener.
-mkListener :: Algebra t p g s e c => Prot t g -> g -> t ->
-              (g, Instance t e)
-mkListener p gen term =
-    case bldInstance (listenerRole p) [In term, Out term] gen of
-      [x] -> x
-      _ -> error "Strand.mkListener: Cannot build an instance of a listener"
-
--- Add to set s the variables that are in the range of instance i
-addIvars :: Algebra t p g s e c => Set t -> Instance t e -> Set t
-addIvars s i =
-    foldl g s (reify (rvars (role i)) (env i))
-    where
-      g s (_, t) = foldVars (flip S.insert) s t
-
-listenerTerm :: Instance t e -> Maybe t
-listenerTerm inst =
-    case rname (role inst) of
-      "" -> recvTerm (trace inst !! 0) -- Get first term in trace
-      _ -> Nothing              -- Not a listener strand
-
--- Nodes, Pairs, and Graphs
-
--- A node is composed of two integers, a strand identifier and a
--- position.  The position identifies an event in the strand's trace.
--- The second integer must be non-negative and less than the strand's
--- height
-
-type Node = (Sid, Int)
-
--- A pair gives an ordering of two nodes, meaning the first node is
--- before the second one.
-
-type Pair = (Node, Node)
-
--- Graphs of preskeletons
-
--- A strand is what is referred to by a strand ID.
-
-data GraphStrand e i                 -- e for event, i for instance
-    = GraphStrand { inst :: i,
-                    nodes :: [GraphNode e i],
-                    sid :: Sid }
-
--- The Strand ID determines equality and orderings
-instance Eq (GraphStrand e i) where
-    s0 == s1 = sid s0 == sid s1
-
-instance Ord (GraphStrand e i) where
-    compare s0 s1 = compare (sid s0) (sid s1)
-
-instance Show (GraphStrand e i) where
-    showsPrec _ s = shows (sid s)
-
--- A vertex is what is referred to by a node.
-
-data GraphNode e i                 -- e for event, i for instance
-    = GraphNode { event :: e,
-                  preds :: [GraphNode e i], -- Immediate preds including
-                  strand :: GraphStrand e i,  -- strand succession edges
-                  pos :: Int }  -- The position of the node in the strand
-
--- The node determines equality and orderings
-instance Eq (GraphNode e i) where
-    n0 == n1 = (strand n0, pos n0) == (strand n1, pos n1)
-
-instance Ord (GraphNode e i) where
-    compare n0 n1 = compare (strand n0, pos n0) (strand n1, pos n1)
-
-instance Show (GraphNode e i) where
-    showsPrec _ n = let (s, i') = graphNode n in
-                    showChar '(' . shows s . showString ", " .
-                    shows i' . showChar ')'
-
--- The node of a vertex
-graphNode :: GraphNode e i -> Node
-graphNode n = (sid (strand n), pos n)
-
-type GraphEdge e i = (GraphNode e i, GraphNode e i)
-
--- The pair of an edge
-graphPair :: GraphEdge e i -> Pair
-graphPair (n0, n1) = (graphNode n0, graphNode n1)
-
-graphEdges :: [GraphStrand e i] -> [GraphEdge e i]
-graphEdges strands =
-    [ (dst, src) | s <- strands, src <- nodes s, dst <- preds src ]
-
-data Graph e i
-    = Graph { gstrands :: [GraphStrand e i],
-              gedges :: [GraphEdge e i] }
-
--- The graph associated with a preskeleton
-graph :: (i -> [d]) -> (i -> Int) -> [i] -> [Pair] -> Graph d i
-graph trace height insts pairs =
-    Graph { gstrands = strands,
-            gedges = map getEdge pairs }
-    where
-      strands = [ GraphStrand { inst = inst,
-                                nodes = nodes !! sid,
-                                sid = sid } |
-                  (sid, inst) <- zip [0..] insts ]
-      nodes = [ [ GraphNode { event = trace (inst strand) !! pos,
-                              preds = preds (sid, pos),
-                              strand = strand,
-                              pos = pos } |
-                  pos <- nats (height (inst strand)) ] |
-                (sid, strand) <- zip [0..] strands ]
-      preds n = map getNode (entry n)
-      getNode (s, i) = nodes !! s !! i
-      getEdge (n0, n1) = (getNode n0, getNode n1)
-      entry n = enrich n [ n0 | (n0, n1) <- pairs, n1 == n ]
-      -- add strand succession edges
-      enrich (s, i) ns
-          | i > 0 = (s, i - 1) : ns
-          | otherwise = ns
-
--- Compute the transitive reduction
-graphReduce :: [GraphEdge e i] -> [GraphEdge e i]
-graphReduce orderings =
-    filter essential orderings
-    where
-      essential (dst, src) =
-          loop dst (L.delete dst (preds src)) [src]
-      loop _ [] _ = True        -- No other path found
-      loop dst (n : ns) seen
-          | n == dst = False    -- There is another path
-          | elem n seen = loop dst ns seen
-          | otherwise = loop dst (preds n ++ ns) (n : seen)
-
--- Compute the transitive closure,
--- omitting pairs on the same strand.
--- This routine returns pairs that are not well ordered.
--- Deal with it!
-graphClose :: [GraphEdge e i] -> [GraphEdge e i]
-graphClose orderings =
-    filter (not . sameStrands) (graphCloseAll orderings)
-    where
-      sameStrands (n0, n1) = strand n0 == strand n1
-
--- Compute the transitive closure
--- including pairs on the same strand.
-
--- This routine returns pairs that are not well ordered.
--- Deal with it!
-graphCloseAll :: [GraphEdge e i] -> [GraphEdge e i]
-graphCloseAll orderings =
-    loop orderings False orderings
-    where
-      loop orderings False [] = orderings
-      loop orderings True [] =
-          loop orderings False orderings -- restart loop
-      loop orderings repeat ((n0, n1) : pairs) =
-          inner orderings repeat pairs [(n, n1) | n <- preds n0]
-      inner orderings repeat pairs [] =
-          loop orderings repeat pairs
-      inner orderings repeat pairs (p : rest)
-          | elem p orderings = inner orderings repeat pairs rest
-          | otherwise = inner (p : orderings) True pairs rest
-
-{-
--- The nodes that preceed node n via strand succession
-spreds :: GraphNode e i -> [GraphNode e i]
-spreds n =
-  filter f (nodes $ strand n)
-  where
-    f n' = pos n' < pos n
--}
-
--- Shared part of preskeletons
-
-data Shared t g = Shared
-    { prot  :: Prot t g,
-      goals :: [Goal t] }
-
-instance (Show t, Show g) => Show (Shared t g) where
-    showsPrec _ s = shows (prot s)
-
-protocol :: Preskel t g s e -> Prot t g
-protocol k = prot $ shared k
-
-kgoals :: Preskel t g s e -> [Goal t]
-kgoals k = goals $ shared k
-
--- Preskeletons
-
-data Preskel t g s e = Preskel
-    { gen :: !g,
-      shared :: Shared t g,
-      insts :: ![Instance t e],
-      strands :: ![Strand t e],
-      orderings :: ![Pair],
-      leadsto :: ![Pair],
-      edges :: ![Edge t e],
-      cInfo :: ConstInfo t,
-      decls :: SkelDeclarations t,
-      extraDecls :: SkelDeclarations t,
-      kfacts :: ![Fact t],
-      kcomment :: [SExpr ()],   -- Comments from the input
-      pov :: Maybe (Preskel t g s e), -- Point of view, the
-                                          -- original problem statement.
-      strandids :: ![Sid],
-      tc :: [Pair],             -- Transitive closure of orderings
-                                -- Used only during generalization
-      operation :: Operation t s,
-      kpriority :: [(Node,Int)],
-      prob :: [Sid] }        -- A map from the strands in the original
-    deriving Show               -- problem statement, the pov, into
-                                -- these strands.
-
--- The pov skeleton is the only skeleton that should have Nothing in
--- its pov field.
-
-type Strand t e
-    = GraphStrand (Event t) (Instance t e)
-
-type Vertex t e
-    = GraphNode (Event t) (Instance t e)
-
-type Edge t e
-    = GraphEdge (Event t) (Instance t e)
-
--- Data structure for tracking the causes for the creation of
--- preskeletons.
-
-data Cause t
-    = Cause Direction Node t (Set t)
-    deriving Show
-
-data Direction
-    = Encryption
-    | Nonce
-    | StatePassing
-    deriving Show
-
-data Method t
-    = Deleted Node
-    | Weakened Pair
-    | Separated t
-    | Forgot (SkelDeclarations t)
-    deriving Show
-
--- The operation used to generate the preskeleteton is either new via
--- the loader, a contraction, a regular augmentation, a listener
--- augmentation, or a mininization.  The augmentation includes a role
--- name and instance height.
-data Operation t s
-    = New
-    | Contracted s (Cause t)
-    | Displaced Int Int String Int (Cause t)
-    | AddedStrand String Int (Cause t)
-    | AddedListener t (Cause t)
-    | AddedAbsence t t (Cause t)
-    | AlgebraSolved s (Cause t)
-    | Generalized (Method t)
-    | Collapsed Int Int
-      deriving Show
-
--- Create a preskeleton.  The point of view field might not be filled in.
--- This version is exported for use by the loader.  This preskeleton
--- must be consumed by firstSkeleton.
-mkPreskel :: Algebra t p g s e c => g -> Prot t g -> [Goal t] ->
-             [Instance t e] -> [Pair] -> [Pair] -> SkelDeclList t ->
-             [Fact t] -> [SExpr ()] -> [(Node,Int)] ->
-             Maybe (Preskel t g s e) -> [Sid] -> Preskel t g s e
-mkPreskel gen protocol gs insts orderings leadsto dlist facts comment priorities
-   maybePov maybeProb =
-    k { kcomment = comment }
-    where
-      k = newPreskel gen shared insts orderings leadsto' decls'
-          facts New prob kpriority maybePov
-      shared = Shared { prot = protocol, goals = gs }
-      decls' = foldl addInstOrigs decls (zip (nats (length insts)) insts)
-      decls = mkDecls dlist'
-      leadsto' = checkLeadsto leadsto []
-      dlist' = map g dlist
-      -- Fixed point on k is okay.
-      prob = if M.isNothing maybePov then strandids k else maybeProb
-      kpriority = priorities
-      g ("uniq-orig", ds) = ("uniq-orig", map fuo ds)
-      g ("uniq-gen", ds) = ("uniq-gen", map fug ds)
-      g (tag, ds) = (tag, ds)
-      fuo dinst
-        | length (ts) == 1 = oneOrig (originationNodes (strands k) (head ts))
-        | otherwise = error ("Strand.mkPreskel: uniq-orig expects single terms")
-        where ts = dterms dinst
-      oneOrig (t, []) =
-        error ("Strand.mkPreskel: no origination point for " ++ show t)
-      oneOrig (t, [l]) = declInst [t] [l]
-      oneOrig (t, (_:_:_)) =
-        error ("Strand.mkPreskel: too many origination points for " ++ show t)
-      fug dinst
-        | length (ts) /= 1 = error ("Strand.mkPreskel: uniq-gen expects single terms")
-        | not (isVar $ head ts) && (isNum $ head ts) =
-          error ("Strand.mkPreskel: uniq-gen numeric values must be variables")
-        | otherwise = oneGen (generationNodes (strands k) (head ts))
-        where ts = dterms dinst
-      oneGen (t, []) =
-        error ("Strand.mkPreskel: no generation point for " ++ show t)
-      oneGen (t, [l]) = declInst [t] [l]
-      oneGen (t, (_:_:_)) =
-        error ("Strand.mkPreskel: too many generation points for " ++ show t)
-      checkLeadsto [] _ = []
-      checkLeadsto (((s1,i1),(s2,i2)) : rest) consumed =
-        case ((trace (insts !! s1)) !! i1) of
-          Sync (Tran (_, Just t)) -> case ((trace (insts !! s2)) !! i2) of
-            Sync (Tran (Just t', nxt)) ->
-               if (t /= t') then error ("Strand.mkPreskel: invalid state edge at " ++ show (s1,i1))
-               else case nxt of
-                 Nothing -> (((s1,i1),(s2,i2)) : checkLeadsto rest consumed)
-                 Just _ -> if (elem (s1,i1) consumed) then
-                   error ("Strand.mkPreskel: state of " ++ show (s1,i1) ++
-                          " already consumed") else
-                   (((s1,i1),(s2,i2)) : checkLeadsto rest ((s1,i1) : consumed))
-            _ -> error ("Strand.mkPreskel: malformed state edge at " ++ show (s1,i1))
-          _ -> error ("Strand.mkPreskel: malformed state edge at " ++ show (s1,i1))
-
-addInstOrigs :: Algebra t p g s e c => SkelDeclarations t ->
-                (Sid, Instance t e) -> SkelDeclarations t
-addInstOrigs d (s, i) = inheritRdecls s i d
-
--- Strand functions
-
-strandInst :: Preskel t g s e -> Sid -> Instance t e
-strandInst k strand = insts k !! strand
-
-nstrands :: Preskel t g s e -> Int
-nstrands k = length (strandids k)
-
--- Convert the preskeleton made by the loader into the first skeleton
--- used in the search.
-firstSkeleton :: Algebra t p g s e c => Preskel t g s e ->
-                 [Preskel t g s e]
-firstSkeleton k =
-    do
-      k <- wellFormedPreskel k
-      k' <- toSkeleton False k
-      -- only k' or its parent should have pov = Nothing
-      case pov k' of
-        Nothing ->
-          return $ k' { prob = strandids k', pov = Just k', kcomment = kcomment k }
-        Just _ -> return k'
-
--- Create a preskeleton.  The node ordering relation is put into the
--- preds field of each instance in this function.  The maybe uniquely
--- originating term data is also filled in.  This version is used
--- within this module.
-newPreskel :: Algebra t p g s e c => g -> Shared t g ->
-             [Instance t e] -> [Pair] -> [Pair] -> SkelDeclarations t ->
-             [Fact t] -> Operation t s -> [Sid] -> [(Node,Int)] ->
-             Maybe (Preskel t g s e) -> Preskel t g s e
-newPreskel gen shared insts orderings leadsto decls
-           facts oper prob kpriority pov =
-    let orderings' = L.nub orderings
-        leadsto' = L.nub leadsto
-        g = graph trace height insts orderings'
-        strands = gstrands g
-        decls' = declsNub decls
-        facts' = L.nub facts
-        edges = gedges g
-        tc = filter pairWellOrdered (graphClose $ graphEdges strands)
-        k = Preskel { gen = gen,
-                      shared = shared,
-                      insts = insts,
-                      strands = strands,
-                      orderings = orderings',
-                      leadsto = leadsto',
-                      edges = edges,
-                      decls = decls',
-                      extraDecls = mkDecls [],
-                      kfacts = facts',
-                      cInfo = declsOrig strands decls',
-                      kcomment = [],
-                      tc = map graphPair tc,
-                      strandids = nats (length insts),
-                      operation = oper,
-                      prob = prob,
-                      kpriority = kpriority,
-                      pov = pov } in
-        if useCheckVars then
-            checkVars k
-        else k
-
-checkVars :: Algebra t p g s e c => Preskel t g s e ->
-             Preskel t g s e
-checkVars k =
-    foldl f k rolevars
-    where
-      skelvars = S.fromList $ kvars k
-      rolevars = concatMap (rvars . role) (insts k)
-      f k v
-        | S.member v skelvars =
-            error ("Strand.checkVars: role var in skel " ++ show k)
-        | otherwise = k
-
-vertex  :: Preskel t g s e -> Node -> Vertex t e
-vertex k (s, i) =
-    nodes (strands k !! s) !! i
-
-originationNodes :: Algebra t p g s e c => [Strand t e] ->
-                    t -> (t, [Node])
-originationNodes strands u =
-    (u, [ (sid strand, p) |
-          strand <- reverse strands,
-          p <- M.maybeToList $ originationPos u (trace (inst strand)) ])
-
-generationNodes :: Algebra t p g s e c => [Strand t e] ->
-                    t -> (t, [Node])
-generationNodes strands u =
-    (u, [ (sid strand, p) |
-          strand <- reverse strands,
-          p <- M.maybeToList $ generationPos u (trace (inst strand)) ])
-
--- Do the nodes in the orderings have the right direction?
-wellOrdered :: Preskel t g s e -> Bool
-wellOrdered k =
-    all pairWellOrdered (edges k)
-
-pairWellOrdered :: Edge t e -> Bool
-pairWellOrdered (n0, n1) =
-    case (event n0, event n1) of
-      (Out _, In _) -> True
-      (Sync _, Sync _) -> True
-      (Out _, Sync _) -> True
-      (Sync _, In _) -> True
-      _ -> False
-
--- Do transitively reduced orderings have the right direction?
-reducedWellOrdered :: Preskel t g s e -> Bool
-reducedWellOrdered k =
-    all reducedPairWellOrdered (edges k)
-
-reducedPairWellOrdered :: Edge t e -> Bool
-reducedPairWellOrdered (n0, n1) =
-    case (event n0, event n1) of
-      (Out _, In _) -> True
-      (Sync (Tran (_, Just _)), Sync (Tran (Just _, _))) ->
-        True
-      (Sync (Tran (_, Nothing)), Sync (Tran (Just _, Just _))) ->
-        True
-      (Sync _, In _) -> True
-      (Out _, Sync _) -> True
-      _ -> False
-
--- The terms used in the strands in this preskeleton.
--- Should this return a set, or a multiset?
-kterms :: Eq t => Preskel t g s e -> [t]
-kterms k = iterms (insts k)
-
--- The terms used in only the message events in this preskeleton.
-kmesgterms :: Eq t => Preskel t g s e -> [t]
-kmesgterms k = imesgterms (insts k)
-
--- The terms used in a list of instances.
-iterms :: Eq t => [Instance t e] -> [t]
-iterms insts =
-  L.nub [t | i <- insts,
-             evt <- trace i,
-             t <- evtTerms evt]
-
--- The terms used in only the message events in a list of instances.
-imesgterms :: Eq t => [Instance t e] -> [t]
-imesgterms insts =
-  L.nub [t | i <- insts,
-             evt <- trace i,
-             t <- evtMesgTerms evt]
-
--- The node orderings form an acyclic order if there are no cycles.
--- Use depth first search to detect cycles.  A graph with no node with
--- an indegree of zero is cyclic and must not be checked with depth
--- first search.
-acyclicOrder :: Preskel t g s e -> Bool
-acyclicOrder k =
-    all (not . backEdge numbering) edges
-    where
-      edges = graphEdges (strands k)
-      -- The starting set contains the last node in every strand
-      start = map (last . nodes) (strands k)
-      -- Remove nodes that have non-zero indegree
-      start' = foldl (flip L.delete) start (map fst edges)
-      numbering = dfs preds start'
-
--- Variables in this preskeleton, excluding ones in roles, and ones
--- that only occur in a cause.  The variables in facts are explicitly
--- included.
-kvars :: Algebra t p g s e c => Preskel t g s e -> [t]
-kvars k =
-    S.elems $ foldl addIvars dvars (insts k)
-    where
-      factVars = if useFactVars then kfactVars k else S.empty
-      dvars = foldl f factVars $ declsTerms (decls k)
-      f s t = foldVars (flip S.insert) s t
-
-traceBase :: Int
-traceBase = 3
-
--- Convert a trace to a number based on its pattern of events
-tracePattern :: Trace t -> Int
-tracePattern [] = 1
-tracePattern (In _:r) = traceBase*(tracePattern r)
-tracePattern (Out _:r) = traceBase*(tracePattern r) + 1
-tracePattern (Sync _:r) = traceBase*(tracePattern r) + 2
-
--- Isomorphism Check
-
--- Are two skeletons equivalent?  Two skeletons are equivalent if they
--- are isomorphic.  A key efficiency requirement in the implementation
--- of the cryptograhic protocol shapes analysis algorithm is to ensure
--- only one member of each equivalence class of skeletons is analyzed,
--- and the results of that analysis is immediately used for all other
--- members of the equivalence class.
-
--- To meet this requirement, a list of skeletons that have been seen
--- is maintained.  Before a skeleton is put on a to do list for
--- analysis, it is checked to see if it is ismorphic to one already
--- seen.  If so, the results of the analysis for the ismorphic
--- skeleton is used instead of putting the skeleton on the to do list.
-
--- Once a skeleton has been printed, the only reason for saving it is
--- for isomorphism checking.  The isomorphism check is performed
--- frequently, so an specialized data structure is used.  The gist of
--- a skeleton is all that is needed for the test for equivalence.
-
-data Gist t g = Gist
-    { ggen :: g,
-      gtraces :: [(Int, Trace t)],
-      gorderings :: [Pair],
-      gleadsto :: [Pair],
-      gpatterns :: [Int],
-      gdecls :: SkelDeclarations t,
-      gfacts :: [Fact t],
-      nvars :: !Int,           -- Number of variables
-      ntraces :: !Int,         -- Number of traces
-      briefs :: [(Int, Int)],  -- Multiset of trace briefs
-      norderings :: !Int,      -- Number of orderings
-      nleadsto :: !Int,        -- Number of leadsto pairs
-      nsndecls :: [Int],       -- Counts of decls
-      nfacts :: !Int }         -- Number of facts
-    deriving Show
-
-gist :: Algebra t p g s e c => Preskel t g s e -> Gist t g
-gist k =
-    Gist { ggen = gen k,
-           gtraces = gtraces,
-           gorderings = gorderings,
-           gleadsto = gleadsto,
-           gdecls = gdecls,
-           gfacts = gfacts,
-           gpatterns = patterns,
-           nvars = length (kvars k),
-           ntraces = length gtraces,
-           briefs = multiset (map fst gtraces),
-           norderings = length gorderings,
-           nleadsto = length gleadsto,
-           nsndecls = nsds gdecls,
-           nfacts = length gfacts }
-    where
-      gtraces = map f (insts k)
-      -- Old: f i = (height i, trace i)
-      f i =
-        (brief c, c)
-        where c = trace i
-      gorderings = orderings k
-      gleadsto = leadsto k
-      gdecls = decls k
-      gfacts = kfacts k
-      patterns = L.sort (map (tracePattern . trace) (insts k))
-      nsds decls = [length (dknon decls), length (dkpnon decls), length (dkunique decls)]
-
--- Summarize a trace so that two traces don't match unless they have
--- the same number.  The summary used to be the height of the trace.
-brief :: Algebra t p g s e c => Trace t -> Int
-brief [] = 0
-brief (In _ : c) = 1 + 4 * brief c
-brief (Out _ : c) = 2 + 4 * brief c
-brief (Sync _ : c) = 3 + 4 * brief c
-
--- Convert a list of integers into a sorted multiset representation.
--- The output is a list of pairs, (i, n). Integer n gives the
--- multiplity of integer i in the input list.  List is sorted based on
--- the first element in each pair.
-multiset :: [Int] -> [(Int, Int)]
-multiset brf =
-  L.foldl insert [] brf
-  where
-    insert [] b = [(b, 1)]
-    insert ((k, n) : brf) b
-      | k == b = (k, n + 1) : brf
-      | k > b = (b, 1) : (k, n) : brf
-      | otherwise = (k, n) : insert brf b
-
--- Test to see if two preskeletons are isomorphic
-
--- First, ensure the two preskeletons have:
--- 1. The same number of variables
--- 2. The same number of strands
--- 3. The same number of node orderings
--- 4. The same number of terms in knon and kunique
--- 5. The same number of facts
-
--- Next compute the plausible permutations and substitutions.
-
--- Next, for each permutation of the strands, eliminate the ones that
--- map a strand to another of a different length, and don't cause the
--- node orderings to be equal.
-
--- For permutations that meet the previous conditions, see if there is
--- a renaming that maps every strand trace in one preskeleton into the
--- appropriate one in the other preskeleton.  Finally, check to see if
--- the renaming works in the nr and ur terms.
-
-isomorphic :: Algebra t p g s e c => Gist t g -> Gist t g -> Bool
-isomorphic g g' =
---    nvars g == nvars g' &&  -- Wrong in DH
-    ntraces g == ntraces g' &&
-    briefs g == briefs g' &&
-    norderings g == norderings g' &&
-    gpatterns g == gpatterns g' &&
-    nleadsto g == nleadsto g' &&
-    nsndecls g == nsndecls g' &&
-    nfacts g == nfacts g' &&
-    any (tryPerm g g') (permutations g g')
-
-probIsomorphic :: Algebra t p g s e c => Preskel t g s e -> Preskel t g s e -> Bool
-probIsomorphic k k' =
---    nvars g == nvars g' &&  -- Wrong in DH
-    ntraces g == ntraces g' &&
-    briefs g == briefs g' &&
-    norderings g == norderings g' &&
-    gpatterns g == gpatterns g' &&
-    nleadsto g == nleadsto g' &&
-    nsndecls g == nsndecls g' &&
-    nfacts g == nfacts g' &&
-    any (tryPermProb g g' pr pr') (permutations g g')
-    where
-      g = gist k
-      g' = gist k'
-      pr = prob k
-      pr' = prob k'
-
--- Extend a permutation while extending a substitution
--- Extend by matching later strands first
-permutations :: Algebra t p g s e c => Gist t g ->
-                Gist t g -> [((g, e), (g, e), [Sid])]
-permutations g g' =
-    map rev $ perms (gg, emptyEnv)
-                    (gg, emptyEnv)
-                    (reverse $ gtraces g)
-                    (reverse $ nats $ ntraces g)
-    where
-      gg = gmerge (ggen g) (ggen g')
-      perms fenv renv [] [] = [(fenv, renv, [])]
-      perms fenv  renv ((h, c):hcs) xs =
-          [ (fenv'', renv'', x:ys) |
-            x <- xs,
-            let (h', c') = gtraces g' !! x,
-            h == h',
-            fenv' <- jibeTraces c c' fenv,
-            renv' <- jibeTraces c' c renv,
-            (fenv'', renv'', ys) <- perms fenv' renv' hcs (L.delete x xs) ]
-      perms _ _ _ _ = error "Strand.permutations: lists not same length"
-      rev (fenv, renv, xs) = (fenv, renv, reverse xs)
-
--- Length of matched traces must agree.
-jibeTraces :: Algebra t p g s e c => Trace t ->
-              Trace t -> (g, e) -> [(g, e)]
-jibeTraces [] [] ge = [ge]
-jibeTraces (In t : c) (In t' : c') ge =
-    do
-      env <- match t t' ge
-      jibeTraces c c' env
-jibeTraces (Out t : c) (Out t' : c') ge =
-    do
-      env <- match t t' ge
-      jibeTraces c c' env
-jibeTraces (Sync t : c) (Sync t' : c') ge =
-    do
-      env <- matchTran t t' ge
-      jibeTraces c c' env
-jibeTraces _ _ _ = []
-
-{-
--- Here is the permutation algorithm used
-
-permutations :: Int -> [[Int]]
-permutations n =
-    perms (nats n)
-    where
-      perms []  = [[]]
-      perms xs = [ x:ys | x <- xs, ys <- perms (L.delete x xs) ]
-
--- Here is the usual algorithm
-
--- Returns a list of all the permutations of the natural numbers less
--- that the argument.  The identity permutation is the first one in
--- the returned list.  The code is based on a function in Haskell 1.3.
-permutations :: Int -> [[Int]]
-permutations n =
-    perms (nats n)
-    where
-      perms [] = [[]]
-      perms (x:xs) = [zs | ys <- perms xs, zs <- interleave x ys]
-      interleave x [] = [[x]]
-      interleave x (y:ys) = (x:y:ys) : map (y:) (interleave x ys)
--}
-
-tryPerm :: Algebra t p g s e c => Gist t g ->
-           Gist t g -> ((g, e), (g, e), [Sid]) -> Bool
-tryPerm g g' (fenv, renv, perm) =
-    checkOrigs g g' fenv perm &&
-    checkOrigs g' g renv (invperm perm) &&
-    checkFacts g g' fenv perm &&
-    checkFacts g' g renv (invperm perm) &&
-    containsMapped (permutePair perm) (gorderings g') (gorderings g) &&
-    containsMapped (permutePair perm) (gleadsto g') (gleadsto g)
-
-tryPermProb :: Algebra t p g s e c => Gist t g ->
-           Gist t g -> [Sid] -> [Sid] -> ((g, e), (g, e), [Sid]) -> Bool
-tryPermProb g g' prob prob' (fenv, renv, perm) =
-    all (\n -> perm !! (prob !! n) == prob' !! n) [0..((length prob)-1)] &&
-    tryPerm g g' (fenv, renv, perm)
-
-invperm :: [Int] -> [Int]
-invperm p = map snd (L.sortOn fst (zip p [0..]))
-
--- containsMapped f xs ys is true when list xs contains each element
--- in ys after being mapped with function f.
-containsMapped :: Eq a => (a -> a) -> [a] -> [a] -> Bool
-containsMapped f xs ys =
-    all (flip elem xs) (map f ys)
-
-permutePair :: [Sid] -> Pair -> Pair
-permutePair perm (n, n') = (permuteNode perm n, permuteNode perm n')
-
-permuteNode :: [Sid] -> Node -> Node
-permuteNode perm (strand, pos) = (perm !! strand, pos)
-
-checkFacts :: Algebra t p g s e c => Gist t g ->
-              Gist t g -> (g, e) -> [Sid] -> Bool
-checkFacts g g' (_, e) perm =
-  all f (gfacts g)
-  where
-    f fact = elem (instUpdateFact e (perm !!) fact) (gfacts g')
-
--- Preskeleton Reduction System (PRS)
-
--- The PRS reduces a preskeleton to a list of skeletons.  Along the way,
--- it applies the associtated homomorphism to a node and computes a
--- substitution.  Thus if skel (k, n, empty) = [(k', n', sigma)], then
--- phi,sigma is a homomorphism from k to k', n' = phi(n).
-
-type PRS t p g s e c = (Preskel t g s e, -- Parent
-                        Preskel t g s e, -- Potential cohort member
-                        Node,   -- Image of test node in member
-                        [Sid],  -- Strand map part of homomorphism
-                        s)      -- Substition part of homomorphism
-
--- Extract the protential cohort member from a PRS.
-skel :: PRS t p g s e c -> Preskel t g s e
-skel (_, k, _, _, _) = k
-
--- Returns the preskeletons that result from applying a substitution.
-ksubst :: Algebra t p g s e c => PRS t p g s e c ->
-          (g, s) -> [PRS t p g s e c]
-ksubst (k0, k, n, phi, hsubst) (gen, subst) =
-  do
-      (gen', insts') <- foldMapM (substInst subst) gen (insts k)
-      let decls' = declsMapTerms (substitute subst) (decls k)
-      let facts' = map (substFact subst) (kfacts k)
-      let operation' = substOper subst (operation k)
-      let k' = newPreskel gen' (shared k) insts'
-               (orderings k) (leadsto k) decls' facts' operation'
-               (prob k) (kpriority k) (pov k)
-      k' <- wellFormedPreskel k'
-      return (k0, k', n, phi, compose subst hsubst)
-
--- Monad version of mapAccumR
-foldMapM :: Monad m => (a -> b -> m (a, c)) -> a -> [b] -> m (a, [c])
-foldMapM _ acc [] = return (acc, [])
-foldMapM f acc (x:xs) =
-  do
-      (acc', xs') <- foldMapM f acc xs
-      (acc'', x') <- f acc' x
-      return (acc'', x':xs')
-
-substInst :: Algebra t p g s e c => s -> g -> Instance t e ->
-             [(g, Instance t e)]
-substInst subst gen i =
-    bldInstance (role i) (map (evtMap $ substitute subst) (trace i)) gen
-
-substOper :: Algebra t p g s e c => s ->
-             Operation t s ->
-             Operation t s
-substOper _ New = New
-substOper subst (Contracted s cause) =
-    Contracted (compose subst s) (substCause subst cause)
-substOper _ m@(Displaced _ _ _ _ _) = m
-substOper subst (AddedStrand role height cause) =
-    AddedStrand role height (substCause subst cause)
-substOper subst (AddedListener t cause) =
-    AddedListener (substitute subst t) (substCause subst cause)
-substOper subst (AddedAbsence t1 t2 cause) =
-    AddedAbsence (substitute subst t1) (substitute subst t2) (substCause subst cause)
-substOper subst (AlgebraSolved s cause) =
-    AlgebraSolved (compose subst s) (substCause subst cause)
-substOper _ m@(Generalized _) = m
-substOper _ m@(Collapsed _ _) = m
-
-substCause :: Algebra t p g s e c => s ->
-              Cause t ->
-              Cause t
-substCause subst (Cause dir n t escape) =
-    Cause dir n (substitute subst t) (S.map (substitute subst) escape)
-
--- A compression (s is to be eliminated)
-compress :: Algebra t p g s e c => Bool -> PRS t p g s e c ->
-            Sid -> Sid -> [PRS t p g s e c]
-compress validate (k0, k, n, phi, hsubst) s s' =
-    do
-      let perm = updatePerm s s' (strandids k)
-      orderings' <- normalizeOrderings validate
-                    (permuteOrderings perm (orderings k))
---      leadsto' <- normalizeOrderings validate
---                    (permuteOrderings perm (leadsto k))
-      let k' =
-              newPreskel
-              (gen k)
-              (shared k)
-              (deleteNth s (insts k))
-              orderings'
-              (permuteOrderings perm (leadsto k))
-              (declsMapStrands perm (decls k))
-              (map (updateFact $ updateStrand s s') (kfacts k))
-              (operation k)
-              (updateProb perm (prob k))
-              (updatePriority perm (kpriority k))
-              (pov k)
-      k'' <- wellFormedPreskel k'
-      return (k0, k'', permuteNode perm n, map (perm !!) phi, hsubst)
-
-permuteOrderings :: [Sid] -> [Pair] -> [Pair]
-permuteOrderings perm orderings = map (permutePair perm) orderings
-
-updatePerm :: Int -> Int -> [Sid] -> [Sid]
-updatePerm old new perm =
-    map (updateStrand old new) perm
-
--- Old is to be eliminated and merged into new
-updateStrand :: Int -> Int -> Sid -> Sid
-updateStrand old new i =
-    let j = if old == i then new else i in
-    if j > old then j - 1 else j
-
--- Eliminates implied intrastrand orderings and fails if it finds a
--- reverse intrastrand ordering when flag is true.
-normalizeOrderings :: Bool -> [Pair] -> [[Pair]]
-normalizeOrderings True orderings =
-    loop [] orderings
-    where
-      loop acc [] = [acc]
-      loop acc (p@((s0, i0), (s1, i1)) : ps)
-          | s0 /= s1 = loop (p : acc) ps
-          | i0 < i1 = loop acc ps
-          | otherwise = []
-normalizeOrderings False orderings =
-    [filter (\ ((s0, _), (s1, _)) -> s0 /= s1) orderings]
-
-updateProb :: [Sid] -> [Sid] -> [Sid]
-updateProb mapping prob =
-    map (mapping !!) prob
-
-updatePriority :: [Sid] -> [(Node,Int)] -> [(Node,Int)]
-updatePriority mapping kpriority =
-    map (\ (n,i) -> (nodeMap mapping n, i)) kpriority
-
--- Provide a list of nodes with non-default priorities
-kpriorities :: Preskel t g s e -> [(Node,Int)]
-kpriorities k =
-  [((s,i),priority k (s,i)) | s <- [0..(length (insts k) - 1)],
-               i <- [0..(height ((insts k) !! s) -1)],
-               priority k (s,i) /= defaultPriority,
-               outNode s i]
-  where
-    outNode s i =
-      case event (nodes (strands k !! s) !! i) of
-        Out _ -> False
-        In _ -> True
-        Sync _ -> False
-
-priority :: Preskel t g s e -> Node -> Int
-priority k (s,i) =
-  case lookup (s,i) (kpriority k) of
-    Just p -> p
-    Nothing -> rpriority (role $ (insts k !! s)) !! i
-
--- Purge a strand.  Used by thinning.
-purge :: Algebra t p g s e c => PRS t p g s e c ->
-            Sid -> Sid -> [PRS t p g s e c]
-purge (k0, k, n, phi, hsubst) s s' =
-    do
-      let perm = updatePerm s s' (strandids k)
-      orderings' <- normalizeOrderings False
-                    (permuteOrderings perm
-                     (forward s (orderings k))) -- Pruning difference
-      leadsto' <- normalizeOrderings False
-                    (permuteOrderings perm
-                     (forward s (leadsto k))) -- Pruning difference
-      let insts' = (deleteNth s (insts k))
-      let k' =
-              newPreskel
-              (gen k)
-              (shared k)
-              insts'
-              orderings'
-              leadsto'
-              (declsMapStrands perm
-                      (declsFilterValid (iterms insts') (strandNotInSkel s)  (decls k)))
-              (map (updateFact $ updateStrand s s') (kfacts k))
-              (operation k)
-              (updateProb perm (prob k))
-              (updatePriority perm (kpriority k))
-              (pov k)
-      k'' <- wellFormedPreskel $ cleansPreskel k'
-      return (k0, k'', permuteNode perm n, map (perm !!) phi, hsubst)
-
--- Forward orderings from strand s
-forward :: Sid -> [Pair] -> [Pair]
-forward s orderings =
-    concatMap f orderings
-    where
-      f p@((s0, i0), (s1, i1))
-          | s0 == s = [((s2, i2), (s1, i1)) | -- Forward here
-                       ((s2, i2), (s3, i3)) <- orderings,
-                       s3 == s0 && i0 >= i3]
-          | s1 == s = []        -- Dump edges to strand s
-          | otherwise = [p]     -- Pass thru other edges
-
--- Cleans facts in a skeleton
-cleansPreskel :: Algebra t p g s e c => Preskel t g s e ->  Preskel t g s e
-cleansPreskel k =
-  newPreskel
-  (gen k)
-  (shared k)
-  (insts k)
-  (orderings k)
-  (leadsto k)
-  (decls k)
-  (cleansFacts (kvars k) (kfacts k))
-  (operation k)
-  (prob k)
-  (kpriority k)
-  (pov k)
-
-matchTraces :: Algebra t p g s e c => Trace t ->
-               Trace t -> (g, e) -> [(g, e)]
-matchTraces [] _ env = [env]    -- Pattern can be shorter
-matchTraces (In t : c) (In t' : c') env =
-    do
-      e <- match t t' env
-      matchTraces c c' e
-matchTraces (Out t : c) (Out t' : c') env =
-    do
-      e <- match t t' env
-      matchTraces c c' e
-matchTraces (Sync t : c) (Sync t' : c') env =
-    do
-      e <- matchTran t t' env
-      matchTraces c c' e
-matchTraces _ _ _ = []
-
--- Thinning
-
-maybeThin :: Algebra t p g s e c => Bool -> PRS t p g s e c -> [PRS t p g s e c]
-maybeThin True prs = thin prs
-maybeThin False prs = twist prs
-
-thin :: Algebra t p g s e c => PRS t p g s e c -> [PRS t p g s e c]
-thin prs = ans
-  where
-    ans = do
-      prs <- twist prs
-      thinStrands prs [] $ reverse ss
-    --where                       -- Remove strands in image of POV
-    ss = filter (\s -> notElem s (prob $ skel prs)) (strandids $ skel prs)
-
--- Takes a skeleton, a list of pairs of strands that matched, and a
--- list of strands yet to be analyzed, and produces the result of
--- skeletonization.  It first tries single pair thinning, and during
--- that process collects potential multistrand thinning pairs.  Once
--- there are no more unanalyzed strands, it tries multistrand
--- thinning.
-thinStrands :: Algebra t p g s e c => PRS t p g s e c ->
-               [(Sid, Sid)] -> [Sid] -> [PRS t p g s e c]
-thinStrands prs ps [] =         -- All strands analyzied
-    case multiPairs ps of       -- Generate multipairs
-      [] -> [prs]
-      mps -> thinMany prs mps   -- Try multistrand thinning
-thinStrands prs ps (s:ss) =
-  thinStrandPairs prs ps s ss ss
-
--- This loop tries pairs of strands.  Takes a skeleton, a list of
--- pairs of strands that matched but did not thin, a strand to be
--- eliminated, a list of strands to be used in the outer loop
--- (thinStrands), and a list of strands to be considered for matching,
--- and produces the result of skeletonization.
-thinStrandPairs :: Algebra t p g s e c => PRS t p g s e c -> [(Sid, Sid)] ->
-                   Sid -> [Sid] -> [Sid] -> [PRS t p g s e c]
-thinStrandPairs prs ps _ ss [] =
-  thinStrands prs ps ss
-thinStrandPairs prs ps s ss (s':ss') =
-  case thinStrand prs s s' of
-    -- Try next pair, there was no match
-    Nothing -> thinStrandPairs prs ps s ss ss'
-    -- Try next pair, there was a match so save this pair
-    Just [] -> thinStrandPairs prs ((s, s'):ps) s ss ss'
-    Just prss ->                -- Success at single strand thinning
-      do
-        prs <- prss
-        thin prs                -- Restart from the beginning
-
--- Try thinning s with s'.  If there was no match, return Nothing,
--- else return Just the list of results.
-thinStrand :: Algebra t p g s e c => PRS t p g s e c ->
-              Sid -> Sid -> Maybe [PRS t p g s e c]
-thinStrand prs s s' =
-    let k = skel prs in
-    case thinStrandMatch k s s' (gen k, emptyEnv) of
-      False -> Nothing
-      True ->
-        Just [ prs' | prs' <- purge prs s s',
-                      prs'' <- purge prs s' s,
-                      probIsomorphic (skel prs') (skel prs'')]
-
--- See if two strands match.
-thinStrandMatch :: Algebra t p g s e c => Preskel t g s e ->
-                   Sid -> Sid -> (g, e) -> Bool
-thinStrandMatch k s s' env =
-  height i == height i'
-  && not (null $ matchTraces (trace i) (trace i') env)
-  && not (null $ matchTraces (trace i') (trace i) env)
-  where
-    i = strandInst k s
-    i' = strandInst k s'
-
--- Multistrand thinning
-
--- Generate all candidate pairings
-multiPairs :: [(Sid, Sid)] ->  [[(Sid, Sid)]]
-multiPairs _ | useSingleStrandThinning = []
-multiPairs ps = filter atLeastTwo $ thinOne ps
-
--- List is of length at least two.
-atLeastTwo :: [a] -> Bool
-atLeastTwo (_:_:_) = True
-atLeastTwo _ = False
-
-thinOne :: [(Sid, Sid)] -> [[(Sid, Sid)]]
-thinOne [] = []
-thinOne (p:ps) =
-    thinTwo p ps ++ thinOne ps
-
--- Construct possible pairs that include (s, s').
-thinTwo :: (Sid, Sid) -> [(Sid, Sid)] -> [[(Sid, Sid)]]
-thinTwo (s, s') ps =
-    [(s, s')] : [(s, s') : ps' | ps' <- thinOne (filter (diff (s, s')) ps)]
-    where                       -- filter out pairs with seen strands
-      diff (s0, s1) (s2, s3) =
-          s0 /= s2 && s0 /= s3 && s1 /= s2 && s1 /= s3
-
--- Try all multistrand pairings until one succeeds.
-thinMany :: Algebra t p g s e c => PRS t p g s e c ->
-            [[(Sid, Sid)]] -> [PRS t p g s e c]
-thinMany prs [] = twist prs
-thinMany prs (ps:mps) =
-    case thinManyStrands prs ps of
-      [] -> thinMany prs mps
-      prss ->                           -- Success
-        do
-          prs <- prss
-          thin prs
-
-thinManyStrands :: Algebra t p g s e c => PRS t p g s e c ->
-                   [(Sid, Sid)] -> [PRS t p g s e c]
-thinManyStrands prs ps =
-  [ prs' | prs' <- compressMany prs ps,
-           prs'' <- compressMany prs (swap ps),
-           probIsomorphic (skel prs') (skel prs'')]
-
-compressMany :: Algebra t p g s e c => PRS t p g s e c ->
-                [(Sid, Sid)] -> [PRS t p g s e c]
-compressMany prs [] = [prs]
-compressMany prs ((s, s'):ps) =
-    do
-      prs' <- purge prs s s'
-      compressMany prs' (map (updatePairs s s') ps)
-
-swap :: [(a, a)] -> [(a, a)]
-swap ps =
-    map (\(x, y) -> (y, x)) ps
-
-updatePairs :: Sid -> Sid -> (Sid, Sid) -> (Sid, Sid)
-updatePairs old new (s, s') =
-    (updateStrand old new s, updateStrand old new s')
-
--- Enfore absence constraints.
-
-useTwist :: Bool
-useTwist = True -- False
-
-twist :: Algebra t p g s e c => PRS t p g s e c -> [PRS t p g s e c]
-twist prs | not useTwist = reduce prs
-twist prs =
-  do
-    prs <- enforceAbsence prs
-    reduce prs
-
-{-
-badabs :: Algebra t p g s e c => Preskel t g s e -> Bool
-badabs k =
-  any f (kabsent k)
-  where
-    f (x, y) = expnInExpr x y
-
-chk :: Algebra t p g s e c => Preskel t g s e -> Preskel t g s e
-chk k | badabs k = error ("No twist " ++ show (gen k))
-      | otherwise = k
-
-chkprs :: Algebra t p g s e c => PRS t p g s e c ->  PRS t p g s e c
-chkprs prs@(_, k, _, _, _)
-  | badabs k = error ("No twist " ++ show (gen k))
-  | otherwise = prs
-
--}
-
--- Transitive Reduction
-
--- An edge is essential if its removal eliminates all paths from its
--- source to its destination.  This function removes all non-essential
--- edges from the ordering relation.
-
-reduce :: Algebra t p g s e c => PRS t p g s e c -> [PRS t p g s e c]
-reduce (k0, k, n, phi, hsubst) =
-    let o = L.nub (map graphPair (graphReduce (edges k)) ++ (filter nonIntraStrand (leadsto k))) in
-    if length o == length (orderings k) then
-        do
-          reducedWellFormed k
-          noStateSplit k
-          return (k0, k, n, phi, hsubst) -- Nothing to take away
-    else
-        do
-          let k' =
-                  newPreskel
-                  (gen k)
-                  (shared k)
-                  (insts k)
-                  o
-                  (leadsto k)
-                  (decls k)
-                  (kfacts k)
-                  (operation k)
-                  (prob k)
-                  (kpriority k)
-                  (pov k)
-          k'' <- wellFormedPreskel k'
-          reducedWellFormed k''
-          noStateSplit k''
-          return (k0, k'', n, phi, hsubst)
-      where
-        nonIntraStrand ((s1,_),(s2,_)) = (s1 /= s2)
---    where
---      leadstoPairs = filter isLeadsTo pairs
---      pairs = map graphPair (edges k)
---      isLeadsTo ((s1,i1),(s2,i2)) =
---        case (trace (insts k !! s1) !! i1) of
---        (Sync (Tran (_, Just next, _))) -> case (trace (insts k !! s2) !! i2) of
---                      (Sync (Tran (Just now, _, _))) -> (now == next)
---                      _ -> False
---        _ -> False
-
--- Answers for cohorts
-type Ans t p g s e c = (Preskel t g s e, Node, [Sid], s)
-
-ans :: PRS t p g s e c -> [Ans t p g s e c]
-ans (_, k, n, phi, subst) = [(k, n, phi, subst)]
-
--- Returns the skeleton associated with a preskeleton or nothing when
--- there isn't one.  Manufacture a node and a term, and then drop them
--- afterwards.
-toSkeleton :: Algebra t p g s e c => Bool -> Preskel t g s e ->
-              [Preskel t g s e]
-toSkeleton prune k =
-    do
-      prs <- skeletonize prune (k, k, (0, 0), strandids k, emptySubst)
-      (k', _, _, _) <- ans prs
-      return k'
-
--- Contraction
-
-contract :: Algebra t p g s e c => Preskel t g s e -> Node ->
-            Cause t -> (g, s) -> [Ans t p g s e c]
-contract k n cause subst =
-    do
-      prs <- ksubst (k, k { operation = Contracted emptySubst cause },
-                           n, strandids k, emptySubst) subst
-      prs' <- skeletonize useThinning prs
-      ans prs'
-
--- Regular Augmentation
-
--- First argument determines if displacement is used.
-augment :: Algebra t p g s e c => Preskel t g s e ->
-           Node -> Cause t -> Role t ->
-           (g, s) -> Instance t e -> Bool -> [Ans t p g s e c]
-augment k0 n cause role subst inst isState =
-  do
-    prs <- augmentAndDisplace k0 n cause role subst inst isState
-    ans prs
-
--- Apply a substitution, and then augment and displace.  Augmentations
--- add an instance and one ordered pair.  Displacements add an ordered
--- pair and may add nodes.
-augmentAndDisplace :: Algebra t p g s e c => Preskel t g s e ->
-                      Node -> Cause t -> Role t ->
-                      (g, s) -> Instance t e -> Bool -> [PRS t p g s e c]
-augmentAndDisplace k0 n cause role subst inst isState =
-    do
-      prs <- substAndAugment k0 n cause role subst inst isState
-      augDisplace prs ++ skeletonize useThinning prs
-
--- Apply the substitution and apply augmentation operator.
-substAndAugment :: Algebra t p g s e c => Preskel t g s e ->
-                   Node -> Cause t -> Role t ->
-                   (g, s) -> Instance t e -> Bool -> [PRS t p g s e c]
-substAndAugment k n cause role subst inst isState =
-  do
-      let operation' = AddedStrand (rname role) (height inst) cause
-      prs <- (ksubst (k, k { operation = operation' }, n,
-                           strandids k, emptySubst) subst)
-      aug prs inst isState
-
--- Apply the augmentation operator by adding an instance and one
--- ordered pair.
-aug :: Algebra t p g s e c => PRS t p g s e c ->
-       Instance t e -> Bool -> [PRS t p g s e c]
-aug (k0, k, n, phi, hsubst) inst isState =
-  do
-      let insts' = (insts k) ++ [inst]
-      let s = length (insts k)  -- The newly created strand
-      let pair = ((s, height inst - 1), n)
-      let orderings' = pair : orderings k
-      let leadsto' = if isState then pair : leadsto k else leadsto k
-      let decls' = inheritRdecls s inst (decls k)
-      let k' = newPreskel (gen k) (shared k) insts'
-               orderings' leadsto' decls' (kfacts k) (operation k)
-               (prob k) (kpriority k) (pov k)
-      k' <- wellFormedPreskel k'
-      return (k0, k', n, phi, hsubst)
-
--- Add all displacements
-augDisplace :: Algebra t p g s e c => PRS t p g s e c -> [PRS t p g s e c]
-augDisplace prs =
-  do
-      let s = nstrands (skel prs) - 1
-      s' <- nats s
-      augDisplaceStrands prs s s'
-
--- Try to displace with strand s'
-augDisplaceStrands :: Algebra t p g s e c => PRS t p g s e c ->
-                      Sid -> Sid -> [PRS t p g s e c]
-augDisplaceStrands (k0, k, n, phi, hsubst) s s' =
-    do
-      (s, s', subst) <- us
-      let op = addedToDisplaced (operation k) s s'
-      prs <- ksubst (k0, k { operation = op}, n, phi, hsubst) subst
-      prs <- compress True prs s s'
-      skeletonize useThinning prs
-  where
-    us = unifyStrands k s s'
-
--- See if two strands unify.  They can be of differing heights.  The
--- second strand returned may be longer.
-unifyStrands :: Algebra t p g s e c => Preskel t g s e ->
-                Sid -> Sid -> [(Sid, Sid, (g, s))]
-unifyStrands k s s' =
-    let i = strandInst k s
-        i' = strandInst k s' in
-    if height i > height i' then
-        unifyStrands k s' s
-    else
-        do
-          (gen', subst) <- unifyTraces (trace i) (trace i') (gen k, emptySubst)
-          return (s, s', (gen', subst))
-
--- Unify traces where the first trace is allowed to be shorter than
--- the second trace.
-unifyTraces :: Algebra t p g s e c => Trace t ->
-               Trace t -> (g, s) -> [(g, s)]
-unifyTraces [] _ subst = [subst]
-unifyTraces (In t : c) (In t' : c') subst =
-    do
-      s <- unify t t' subst
-      unifyTraces c c' s
-unifyTraces (Out t : c) (Out t' : c') subst =
-    do
-      s <- unify t t' subst
-      unifyTraces c c' s
-unifyTraces (Sync t : c) (Sync t' : c') subst =
-    do
-      s <- unifyTran t t' subst
-      unifyTraces c c' s
-unifyTraces _ _ _ = []
-
-addedToDisplaced :: Algebra t p g s e c => Operation t s ->
-                    Int -> Int -> Operation t s
-addedToDisplaced (AddedStrand role height cause) s s' =
-    Displaced s s' role height cause
-addedToDisplaced _ _ _ = error "Strand.addedToDisplaced: Bad operation"
-
--- Listener Augmentation
-
-addListener :: Algebra t p g s e c => Preskel t g s e -> Node ->
-               Cause t -> t -> [Ans t p g s e c]
-addListener k n cause t =
-    do
-      k' <- wellFormedPreskel k'
-      prs <- skeletonize useThinning
-             (k, k', n, strandids k, emptySubst)
-      ans prs
-    where
-      k' = newPreskel gen' (shared k) insts' orderings' (leadsto k) (decls k)
-           (kfacts k) (AddedListener t cause) (prob k) (kpriority k) (pov k)
-      (gen', inst) = mkListener (protocol k) (gen k) t
-      insts' = insts k ++ [inst]
-      pair = ((length (insts k), 1), n)
-      orderings' = pair : orderings k
-
--- This function adds a stronger method for solving some
--- Diffie-Hellman authentication tests.  The method handles the
--- special case in which the critical term has the form (exp (gen)
--- (mul ...)) and all of variables in the exponent are random
--- exponents (rndx).
-
--- When all of the factors in the exponent use rndx variables,
--- baseRndx returns a list of concatenations of each variable with the
--- base term exponentiated with the group without the variable.
-
-addBaseListener :: Algebra t p g s e c => Preskel t g s e -> Node ->
-                   Cause t -> t -> [Ans t p g s e c]
-addBaseListener k n cause t =
-    case baseRndx t of
-      Just ts ->                -- All variables are rndx's.
-        do                      -- Add a listener for each one.
-          x <- ts
-          addListener k n cause x
-      _ -> formerAddBaseListener k n cause t
-
-formerAddBaseListener :: Algebra t p g s e c => Preskel t g s e -> Node ->
-                         Cause t -> t -> [Ans t p g s e c]
-formerAddBaseListener k n cause t =
-    do
-      k' <- wellFormedPreskel k'
-      prs <- skeletonize useThinning
-             (k, k', n, strandids k, emptySubst)
-      ans prs
-    where
-      k' = newPreskel gen'' (shared k) insts' orderings' (leadsto k) decls'
-           (kfacts k) (AddedListener t' cause) (prob k) (kpriority k) (pov k)
-      (gen', t') = basePrecursor (gen k) t
-      (gen'', inst) = mkListener (protocol k) gen' t'
-      insts' = insts k ++ [inst]
-      pair = ((length (insts k), 1), n)
-      orderings' = pair : orderings k
-      decls' = addDeclInst "precur" [] [(length (insts k), 0)] (decls k)
-
-isNodePrecur :: Algebra t p g s e c => Preskel t g s e -> Node -> Bool
-isNodePrecur k n =
-  declMember "precur" [] [n] (decls k)
-
--- addAbsence
-addAbsence :: Algebra t p g s e c => Preskel t g s e -> Node ->
-              Cause t -> t -> t -> [Ans t p g s e c]
-addAbsence k n cause x t =
-    do
-      k'' <- wellFormedPreskel k'
-      prs <- skeletonize useThinning
-             (k, k'', n, strandids k, emptySubst)
-      ans prs
-    where                       -- New cause should be added!
-      k' = newPreskel (gen k) (shared k) (insts k) (orderings k)
-           (leadsto k) decls' (kfacts k) (AddedAbsence x t cause)
-           (prob k) (kpriority k) (pov k)
-      decls' = addDeclInst "absent" [x, t] [] (decls k)
-
--- Numeric contraction
--- MDL: Diffie-Hellman specific
--- algebraSolve :: Algebra t p g s e c => Preskel t g s e -> Node ->
---                Cause t -> t -> t -> [Ans t p g s e c]
--- algebraSolve k n cause ct t =
---  do
---    subst <- solutions
---    prs <- ksubst (k, k { operation = AlgebraSolved emptySubst cause },
---                         n, strandids k, emptySubst) subst
---    prs' <- skeletonize usePruningWhileSolving prs
---    ans prs'
---  where
---    solutions = unify ct t' (gen', emptySubst)
---    (gen', t') = genericize (gen k) t
-
--- Homomorphisms
-
--- Find a substitution that demonstrates the existence of a
--- homomorphism between the two skeletons using the given
--- strand mapping function.
-
-homomorphism :: Algebra t p g s e c => Preskel t g s e ->
-                Preskel t g s e -> [Sid] -> [e]
-homomorphism k k' mapping =
-    do
-      (_, env) <- findReplacement k k' mapping
-      case validateEnv k k' mapping env of
-        True -> [env]
-        False -> []
-
-findReplacement :: Algebra t p g s e c => Preskel t g s e ->
-                   Preskel t g s e -> [Sid] -> [(g, e)]
-findReplacement k k' mapping =
-    foldM (matchStrand k k' mapping) (gg, emptyEnv) (strandids k)
-    where
-      gg = gmerge (gen k) (gen k')
-
-matchStrand :: Algebra t p g s e c => Preskel t g s e ->
-               Preskel t g s e -> [Sid] -> (g, e) -> Sid -> [(g, e)]
-matchStrand k k' mapping env s =
-    matchTraces (trace (strandInst k s)) (trace (strandInst k' s')) env
-    where
-      s' = mapping !! s
-
-validateEnv :: Algebra t p g s e c => Preskel t g s e ->
-               Preskel t g s e -> [Sid] -> e -> Bool
-validateEnv k k' mapping env =
-  validateDeclEnv k k' mapping env &&
-  all (flip elem (kfacts k'))
-  (map (instUpdateFact env (mapping !!)) (kfacts k)) &&
-  all (flip elem (tc k')) (permuteOrderings mapping (orderings k))
-
--- Given a realized skeleton k, generate candidates for minimization.
--- A candidate is a preskeleton and a strand mapping from the
--- candidate to k.  The preskeleton need not be well formed, as that
--- test is applied elsewhere.
-
-type Candidate t p g s e c = (Preskel t g s e, [Sid])
-
-addIdentity :: Preskel t g s e -> Candidate t p g s e c
-addIdentity k = (k, strandids k)
-
-separateVariablesLimit :: Int
-separateVariablesLimit = 1024
-
-generalize :: Algebra t p g s e c => Preskel t g s e ->
-              [Candidate t p g s e c]
-generalize k = deleteNodes k ++
-               weakenOrderings k ++
-               forgetAssumption k ++
-               take separateVariablesLimit (separateVariables k)
-
--- Node deletion
-
-{-
-
-delete node n in k
-
-1. if (s, 0) part of prob return Nothing
-2. if not initial node, truncate instance of node else delete instance
-3. weaken ordering when filtering it (see shortenOrdering)
-4. drop nons that aren't mentioned anywhere
-5. drop uniques that aren't carried anywhere
-6. update prob upon instance deletion
--}
-
-deleteNodes :: Algebra t p g s e c => Preskel t g s e ->
-               [Candidate t p g s e c]
-deleteNodes k =
-    do
-      strand <- strands k
-      node <- nodes strand
-      deleteNode k node
-
-deleteNode :: Algebra t p g s e c => Preskel t g s e ->
-              Vertex t e -> [(Preskel t g s e, [Sid])]
-deleteNode k n
-    | p == 0 && elem s (prob k) = []
-    | p == 0 =
-        do
-          let mapping = deleteNth s (strandids k)
-          let k' = deleteStrand k (gen k) s (s, p)
-          return (k', mapping)
-    | otherwise =
-        do
-          let mapping = strandids k
-          let i = inst (strand n)
-          (gen', i') <- bldInstance (role i) (take p (trace i)) (gen k)
-          let k' = deleteNodeRest k gen' (s, p) (replaceNth i' s (insts k))
-                   (shortenOrderings (s, p) (tc k))
-                   (shortenOrderings (s, p) (leadsto k))
-                   (prob k) (kfacts k)
-          return (k', mapping)
-    where
-      p = pos n
-      s = sid (strand n)
-
--- Update orderings when a strand is eliminated (p == 0)
-deleteOrderings :: Sid -> [Pair] -> [Pair]
-deleteOrderings s ps =
-    do
-      p <- ps
-      deleteOrdering p
-    where
-      deleteOrdering (n0@(s0, _), n1@(s1, _))
-          | s == s0 || s == s1 = []
-          | otherwise = [(adjust n0, adjust n1)]
-      adjust n@(s', i')
-          | s' > s = (s' - 1, i')
-          | otherwise = n
-
--- Update orderings when a strand is shortened (p > 0)
-shortenOrderings :: Node -> [Pair] -> [Pair]
-shortenOrderings (s, i) ps =
-    do
-      pair <- ps
-      shortenOrdering pair
-    where
-      shortenOrdering p@((s0, i0), (s1, i1))
-          | s == s0 && i <= i0 = []
-          | s == s1 && i <= i1 = []
-          | otherwise = [p]
-
-strandNotInSkel :: Sid -> Node -> Bool
-strandNotInSkel s (s', _) = s /= s'
-
-deleteStrand :: Algebra t p g s e c => Preskel t g s e ->
-                  g -> Sid -> Node -> Preskel t g s e
-deleteStrand k gen s n =
-    newPreskel gen (shared k) insts'
-    (deleteOrderings s (tc k))
-    (deleteOrderings s (leadsto k)) -- is this the right thing?
-    decls'
-    facts'
-    (Generalized (Deleted n))
-    (updatePerm s s (prob k)) -- s shouldn't appear in prob, but we need to update
-                              -- in case any strands in prob are > s.
-    (kpriority k)
-    (pov k)
-  where
-    insts' = deleteNth s (insts k)
-    -- Drop nons that aren't mentioned anywhere
-    mapping = updatePerm s (-1) (strandids k)
-    decls0 = declsFilterValid (iterms (insts k)) (strandNotInSkel s) (decls k)
-    decls' = declsFilterValid terms (const True)
-             (declsMapStrands mapping decls0)
-    facts' = cleansFacts terms (map
-                                (updateFact (updateStrand s s))
-                                (deleteFacts s $ kfacts k))
-    terms = iterms insts'
-
-nodeInSkel :: Preskel t g s e -> Node -> Bool
-nodeInSkel k (s, i) =
-  s >= 0 && s < nstrands k && i >= 0 &&
-  i < height (strandInst k s)
-
-deleteNodeRest :: Algebra t p g s e c => Preskel t g s e ->
-                  g -> Node -> [Instance t e] -> [Pair] -> [Pair] ->
-                  [Sid] -> [Fact t] -> Preskel t g s e
-deleteNodeRest k gen n insts' orderings leadsto prob facts =
-    newPreskel gen (shared k) insts' orderings leadsto decls' facts'
-                   (Generalized (Deleted n)) prob (kpriority k) (pov k)
-    where
-      -- Drop nons that aren't mentioned anywhere
-      decls' = declsFilterValid terms (nodeInSkel k) (decls k)
-      facts' = cleansFacts terms facts
-      terms = iterms insts'
-
-deleteFacts :: Sid -> [Fact t] -> [Fact t]
-deleteFacts s facts =
-  filter f facts
-  where
-    f (Fact _ ft) =
-      all g ft
-    g (FSid s') = s /= s'
-    g (FTerm _) = True
-
--- Node ordering weakening
-
--- To weaken, create a candidate for each element in the current
--- ordering, which is already the result of a transitive reduction.
--- Weaken by computing the transitive closure of the ordering, and
--- then remove the selected element from the current ordering.  After
--- computing the transitive closure, filter out the edges that are not
--- well ordered, i.e. originate at a reception node or terminate at a
--- transmission node.  Also, filter out edges that link nodes in the
--- same strand.  The preskeleton constructor function performs a
--- transitive reduction on the generated ordering.
-
-weakenOrderings :: Algebra t p g s e c => Preskel t g s e ->
-                   [Candidate t p g s e c]
-weakenOrderings k =
-    map (weakenOrdering k) ((orderings k) L.\\ (leadsto k))
-
-weakenOrdering :: Algebra t p g s e c => Preskel t g s e ->
-                  Pair -> Candidate t p g s e c
-weakenOrdering k p =
-    weaken k p (L.delete p (tc k))
-
-weaken :: Algebra t p g s e c => Preskel t g s e ->
-          Pair -> [Pair] -> Candidate t p g s e c
-weaken k p orderings =
-    addIdentity k'
-    where
-      k' = newPreskel (gen k) (shared k) (insts k)
-           orderings (leadsto k) (decls k) (kfacts k)
-           (Generalized (Weakened p)) (prob k) (kpriority k) (pov k)
-
--- Origination assumption forgetting
-
--- Delete each non-originating term that is not specified by a
--- role.  Do the same for each uniquely-originating term.
-
-forgetAssumption :: Algebra t p g s e c => Preskel t g s e ->
-                    [Candidate t p g s e c]
-forgetAssumption k =
-    forgetSomeTerm k
-
--- Variable separation
-
--- A location is a strand, a role variable, and a position in the term
--- associated with the role variable.
-
--- step one: extract places
---
--- for each maplet in each environment in each strand
---   for each variable V in the range of the maplet
---     let P be the places at which V occurs
---     associate V with the location described by each element in P
---
--- step two: generate preskeletons
---
--- for each variable V in the skeleton K
---  let V' be a clone of V
---  let L be the set of locations associated with V from above
---  for each subset L' of L
---    for each instance I in K
---      update the environment of I by replacing V' at the locations
---      given by L' that refer to I, and use the modified environment
---      to update the instance
---    let K' be the result of updating instances in K as above
---    if V occurs in non, add terms with V replaced by V' to
---      the non's of K'
---    if V occurs in unique, add terms with V replaced by V'
---      to the unique's of K'
---    add K' to the list of generated preskeletons
-
-separateVariables :: Algebra t p g s e c => Preskel t g s e ->
-                     [Candidate t p g s e c]
-separateVariables k | M.isJust (pov k) =
-    do
-      let pk = M.fromJust (pov k)
-      v <- kvars k
-      case isNum v of
-        True -> fail "separation of numeric values not supported"
-        False -> separateVariable k pk
-          (extractPlaces pk)
-          (extractPlaces k) v
-separateVariables _ | otherwise = []
-
--- A location is a strand, a role variable, and a position in the term
--- associated with the role variable.
-
-type Location t p g s e c = (Sid, t, p)
-
--- A POV location is a location with the map from the POV.  It
--- consists of a POV variable, list of locations, and a position in
--- the term assoctiated with the POV variable.
-
-type PovLocation t p g s e c = (t, [Location t p g s e c], p)
-
--- Returns a list of pairs.  For each occurrence of a preskeleton
--- variable in every instance, there is a pair where the first element
--- is the variable, and the second as the location at which it occurs.
-extractPlaces :: Algebra t p g s e c => Preskel t g s e ->
-                 [(t, Location t p g s e c)]
-extractPlaces k =
-    [ (var, (sid s, v, p)) |
-      s <- strands k,
-      (v, t) <- instAssocs (inst s),
-      var <- foldVars (flip adjoin) [] t,
-      p <- places var t ]
-
-instAssocs :: Algebra t p g s e c => Instance t e -> [(t, t)]
-instAssocs i =
-    reify (rvars (role i)) (env i)
-
--- For each variable, generate candidates by generating a fresh
--- variable for subsets of the locations associated with the variable.
-separateVariable :: Algebra t p g s e c => Preskel t g s e ->
-                    Preskel t g s e ->
-                    [(t, Location t p g s e c)] ->
-                    [(t, Location t p g s e c)] -> t ->
-                    [Candidate t p g s e c]
-separateVariable k pk _ _ _
-    | null (homomorphism pk k (prob k)) = [] -- HACK
-separateVariable k pk povps ps v =
-    sepVar rolelocs' povlocs
-    where
-      povhom = head (homomorphism pk k (prob k))  -- For completeness, should
-      rolelocs = locsFor ps v                      -- use all homs.
-      povlocs = povLocsFor k povps rolelocs
-      povrolelocs = concatMap (\(_,x,_)->x) povlocs
-      rolelocs' = rolelocs L.\\ povrolelocs
-      sepVar [] [] = []
-      sepVar locs plocs =
-          do
-            comblocs <- combparts locs plocs
-            changeLocations k pk gen' v' comblocs povhom
-      parts x = map (map (x !!)) (subsets (length x))
-      combparts x y = [(xs, ys) | xs <- parts x,
-                                  ys <- parts y,
-                                  let n = length xs + length ys,
-                                  n /= 0 && n /= length x + length y]
-      (gen', v') = clone (gen k) v
-
--- Extract the locations for a given variable
-locsFor :: Algebra t p g s e c => [(t, Location t p g s e c)] ->
-           t -> [Location t p g s e c]
-locsFor ps t =
-    map snd (filter (\(t', _) -> t == t') (reverse ps)) -- Why reverse?
-
--- On input k e povps locs v, produces a list of pairs
--- (t, tps) where t is a pov variable and tps is a non-empty list of
--- locations in locs such that if (sid, t', p) is in tps, then sid is
--- in (prob k), and (t, (sid, t', p')) is in povps where p' is a prefix
--- of p.
-povLocsFor :: Algebra t p g s e c => Preskel t g s e ->
-              [(t, Location t p g s e c)] -> [Location t p g s e c] ->
-              [PovLocation t p g s e c]
-povLocsFor k povps locs =
-   [ (t, tps, p) |
-     povp <- map (probMapPOVps k) povps,
-     Just p <- map (f povp) locs,
-     let (t, _) = povp,
-     let tps = [ loc |
-                 loc <- locs,
-                 M.isJust $ f povp loc ] ]
-   where
-     f (_, (sid', t', p')) (sid, t, p)  =
-       if sid == sid' && t == t' then
-         placeStripPrefix p' p
-       else
-         Nothing
-
-matchAlways :: Algebra t p g s e c => String -> t -> t -> (g, e) -> (g, e)
-matchAlways note t t' env =
-    case match t t' env of
-      e : _ -> e
-      [] -> error ("Strand.matchAlways: bad match " ++ note)
-
-probMapPOVps :: Algebra t p g s e c => Preskel t g s e ->
-                (t, Location t p g s e c) -> (t, Location t p g s e c)
-probMapPOVps k (t, loc) =
-  (t, f loc)
-  where
-    f (s, t, p) | length (prob k) <= s =
-      error ("Strand.probMapPOVps: bad s " ++ show s)
-                | otherwise = (prob k !! s, t, p)
-
--- Change the given locations and create the resulting preskeleton
--- JDR: Something about facts is needed here.
-changeLocations :: Algebra t p g s e c => Preskel t g s e ->
-                   Preskel t g s e -> g -> t ->
-                   ([Location t p g s e c], [PovLocation t p g s e c]) ->
-                   e -> [Candidate t p g s e c]
-changeLocations k pk gen t (rlocs, povlocs) pove =
-    [addIdentity ks]
-    where
-      ks = f (splitDecls k pk gen' insts' t povlocs pove)
-      locs = rlocs ++ concatMap (\(_,x,_)->x) povlocs
-      f (gen'', newdecl) =
-        newPreskel gen'' (shared k) insts' (orderings k) (leadsto k) newdecl
-        (kfacts k)              -- This is wrong.  Facts need to be cleansed!
-        (Generalized (Separated t)) (prob k) (kpriority k) (pov k)
-      (gen', insts') = changeStrands locs t gen (strands k)
-
--- For variable separation
--- Exported
-splitDecls :: Algebra t p g s e c => Preskel t g s e ->
-              Preskel t g s e -> g ->
-              [Instance t e] -> t -> [PovLocation t p g s e c] ->
-              e -> (g, SkelDeclarations t)
-splitDecls k pk gen insts copy povlocs pove =
-    (gen', foldl addInstOrigs d (zip (nats (length insts)) insts))
-    where
-      -- povdecls: calculate from pov
-      d = declsMap (instantiate pove') (nodeMap (prob k)) (decls pk)
-      (gen', pove') = foldl f (gen, emptyEnv)
-             (map (changePovMaplet povlocs copy) pova)
-      f env (v, t) = matchAll v t env
-      pova = reify (kvars pk) pove
-      matchAll v' t' env' =
-        case match v' t' env' of
-          e : _ -> e
-          [] -> error ("Strand.matchAlways: bad match " ++ show v' ++ "\n"
-                       ++ show t' ++ "\n" ++ show (length pova) ++ "\n\n" ++
-                       show pova ++ "\n\n" ++
-                       show (map (changePovMaplet povlocs copy) pova))
-
-changeStrands :: Algebra t p g s e c => [Location t p g s e c] -> t ->
-                 g -> [Strand t e] -> (g, [Instance t e])
-changeStrands locs copy gen strands =
-    case foldMapM (changeStrand locs copy) gen strands of
-      i : _ -> i
-      [] -> error "Strand.changeStrands: bad strand build"
-
--- Create an new environment incorporating changes, and from that,
--- create the new strand.
-changeStrand :: Algebra t p g s e c => [Location t p g s e c] ->
-                t -> g -> Strand t e -> [(g, Instance t e)]
-changeStrand locs copy gen s =
-    bldInstance (role i) trace'  gen'
-    where
-      i = inst s
-      (gen', env') = foldl f (gen, emptyEnv)
-             (map (changeMaplet locs copy (sid s)) (instAssocs i))
-      f env (v, t) = matchAlways "in changeStrand" v t env
-      trace' = map (evtMap $ instantiate env') trace
-      trace = take (height i) (rtrace (role i))
-
--- Change a maplet
-changeMaplet :: Algebra t p g s e c => [Location t p g s e c] ->
-                t -> Sid -> (t, t) -> (t, t)
-changeMaplet [] _ _ maplet = maplet
-changeMaplet ((s', v', p) : locs) copy s (v, t) =
-    changeMaplet locs copy s (v, t')
-    where
-      t' = if s' == s && v' == v then replace copy p t else t
-
--- Change a maplet
-changePovMaplet :: Algebra t p g s e c => [PovLocation t p g s e c] ->
-                t -> (t, t) -> (t, t)
-changePovMaplet [] _ maplet = maplet
-changePovMaplet ((v', _, p) : locs) copy (v, t) =
-    changePovMaplet locs copy (v, t')
-    where
-      t' = if v' == v then replace copy p t else t
-
--- Return the set of subsets of natural numbers less than n
-subsets :: Int -> [[Int]]
-subsets n
-    | n < 0 = error $ "Utilities.subsets: Bad argument " ++ show n
-    | n == 0 = []
-    | otherwise =
-        [n - 1] : subset ++ map (n - 1 :) subset
-        where
-          subset = subsets (n - 1)
-
--- Collapse a shape by unifying strands.
-
-collapse :: Algebra t p g s e c => Preskel t g s e ->
-            [Preskel t g s e]
-collapse k =
-    [k' | s <- strandids k, s' <- nats s,
-          k' <- collapseStrands k s s']
-
-collapseStrands :: Algebra t p g s e c => Preskel t g s e ->
-                   Sid -> Sid -> [Preskel t g s e]
-collapseStrands k s s' =
-    do
-      (s, s', subst) <- unifyStrands k s s'
-      prs <- ksubst (k, k { operation = Collapsed s s' },
-                           (0, 0), strandids k, emptySubst) subst
-      prs <- compress True prs s s'
-      prs <- skeletonize False prs
-      return $ skel prs
-
-------------------------------------------------------------------
-
--------------- Declarations and Constraints Section --------------
-
-------------------------------------------------------------------
-
-data ConstInfo t = ConstInfo
-     {
-       dkorig :: ![(t, [Node])],  -- This is an association list with a
-                                  -- pair for each element of kunique.
-                                  -- The value associated with a term
-                                  -- is a list of the nodes at which it
-                                  -- originates--the term's provenance.
-       dkugen :: ![(t, [Node])] }  -- As korig but for uniq-gen terms.
-     deriving Show
-
--- Exported
-knon :: Preskel t g s e -> [t]
-knon = dknon . decls
-
--- Exported
-kpnon :: Preskel t g s e -> [t]
-kpnon = dkpnon . decls
-
--- Exported
-kunique :: Preskel t g s e -> [t]
-kunique = dkunique . decls
-
-kabsent :: Preskel t g s e -> [(t, t)]
-kabsent = dkabsent . decls
-
--- Exported
-korig :: Preskel t g s e -> [(t, [Node])]
-korig = dkorig . cInfo
-
--- Exported
-kugen :: Preskel t g s e -> [(t, [Node])]
-kugen = dkugen . cInfo
-
--- Exported
-kuniqgen :: Preskel t g s e -> [t]
-kuniqgen k = map head $ filter (\ts -> not $ null ts) $ map dterms $ tagDecls "uniq-gen" $ decls k
-
-{-- Exported
-kuniqexp :: Algebra t p g s e c => Preskel t g s e -> [t]
-kuniqexp k = map head $ filter (\ts -> not $ null ts) $ map dterms $ tagDecls "uniq-exp" $ decls k
---}
-
--- Exported
-{-
-nsdecls :: Declarations t l -> [Int]
-nsdecls decls =
-  [length (dknon decls), length (dkpnon decls), length (dkunique decls)]
--}
-
--- Exported
--- JDR: something about facts is needed here I think
-forgetSomeTerm :: Algebra t p g s e c => Preskel t g s e ->
-                  [Candidate t p g s e c]
-forgetSomeTerm k =
-  [ addIdentity (k { decls = d, operation = Generalized (Forgot dd) }) |
-      (dd, d) <- forgetSomeDecls (decls k),
-      let insts' = insts k,
-      let rd = foldl addInstOrigs (declsUnion [])
-               (zip (nats (length insts')) insts'),
-      validateDeclMap rd d id emptyEnv ]
-
--- Returns that atoms that cannot be guess when determining if a
--- term is derivable from some other terms, and the atoms that
--- uniquely originate in this skeleton.
-avoid :: Algebra t p g s e c => Preskel t g s e -> Set t
-avoid k =
-    avoidTerms (decls k)
-
-{-- uniqOrig :: Algebra t p g s e c => Preskel t g s e -> [t]
-uniqOrig k =
-    do
-      (t, [_]) <- reverse (korig k)
-      return t --}
-
--- A preskeleton is well formed if the ordering relation is acyclic,
--- each atom declared to be uniquely-originating is carried in some
--- preskeleton term, and every variable that occurs in any declaration
--- occurs in some preskeleton term, and none of the declaration-based
--- constraints are violated, and furthermore, every uniquely
--- originating role term mapped by an instance is mapped to a term
--- that originates on that instance's strand.
-
--- Exported
-preskelWellFormed :: Algebra t p g s e c => Preskel t g s e -> Bool
-preskelWellFormed k =
-    varSubset (declsTerms (decls k)) terms &&
-    all nonCheck (knon k) &&
-    all uniqueCheck (kunique k) &&
-    all factCheck (kfacts k) &&
-    origNonNullCheck k && ugenNonNullCheck k &&
-    wellOrdered k && acyclicOrder k &&
-    roleOrigCheck k && fst (declCheck (decls k))
-    where
-      terms = kterms k
-      mesgterms = kmesgterms k
-      nonCheck t = all (not . carriedBy t) mesgterms
-      uniqueCheck t = any (carriedBy t) mesgterms
-      factCheck f = factVarsElem (kvars k) f
-      origNonNullCheck k = (all (\(_, ns) -> not (null ns)) (korig k))
-      ugenNonNullCheck k = (all (\(_, ns) -> not (null ns))
-                            (filter (\(t, _) -> not (isNum t)) (kugen k)))
-
--- Do notation friendly preskeleton well formed check.
-wellFormedPreskel :: (MonadFail m, Algebra t p g s e c) =>
-                     Preskel t g s e -> m (Preskel t g s e)
-wellFormedPreskel k
-    | preskelWellFormed k = return k
-    | otherwise = fail "preskeleton not well formed"
-
--- Exported
--- A version of preskelWellFormed that explains why a preskeleton is
--- not well formed.
-verbosePreskelWellFormed :: (MonadFail m, Algebra t p g s e c) =>
-                            Preskel t g s e -> m ()
-verbosePreskelWellFormed k =
-    do
-      failwith "a variable in non-orig is not in some trace"
-                   $ varSubset (knon k) terms
-      failwith "a variable in pen-non-orig is not in some trace"
-                   $ varSubset (kpnon k) terms
-      failwith "a variable in uniq-gen is not in some trace"
-                   $ varSubset (dkuniqgen (decls k)) terms
-      failwith "a variable in a declaration is not in some trace"
-                   $ varSubset (declsTerms (decls k)) terms
-      mapM_ nonCheck $ knon k
-      mapM_ uniqueCheck $ kunique k
-      mapM_ factCheck $ kfacts k
-      origNonNullCheck k
-      uniqgenNonNullCheck k
-      failwith "ordered pairs not well formed" $ wellOrdered k
-      failwith "cycle found in ordered pairs" $ acyclicOrder k
-      failwith "an inherited unique doesn't originate in its strand"
-                   $ roleOrigCheck k
-      let chk = declCheck $ decls k
-      failwith (snd chk) (fst chk)
-    where
-      terms = kterms k
-      mesgterms = kmesgterms k
-      nonCheck t =
-          failwith (showString "non-orig " $ showst t " carried")
-                       $ all (not . carriedBy t) mesgterms
-      uniqueCheck t =
-          failwith (showString "uniq-orig " $ showst t " not carried")
-                       $ any (carriedBy t) mesgterms
-      factCheck f =
-          failwith ("a fact var in " ++  factPred f ++ " not in some strand")
-                       $ factVarsElem (kvars k) f
-      origNonNullCheck k =
-          let ts = filter (\(_, ns) -> null ns) (korig k) in
-          failwith (showString "uniq-orig " $
-                    showst (fst $ head ts) " does not originate")
-          (null ts)
-      uniqgenNonNullCheck k =
-          let ts = filter (\(_, ns) -> null ns)
-                   (filter (\(t, _) -> not (isNum t)) (kugen k)) in
-          failwith (showString "uniq-gen " $
-                    showst (fst $ head ts) " does not generate")
-          (null ts)
-
--- Do notation friendly preskeleton well formed check.
-reducedWellFormed :: MonadFail m => Preskel t g s e -> m ()
-reducedWellFormed k
-  | reducedWellOrdered k = return ()
-  | otherwise = fail "reduced preskeleton not well formed"
-
--- A transition or an observer node should have at most one transition
--- node immediately after it.
-noStateSplit :: MonadFail m => Preskel t g s e -> m ()
-noStateSplit k
-  | loop (leadsto k) S.empty = return ()
-  | otherwise = fail "reduced preskeleton has a state split"
-  where
-    loop [] _ = True
-    loop ((n0, (s, i)) : es) ns =
-      case (trace (insts k !! s) !! i) of
-        Sync (Tran (Just _, Just _)) ->
-          S.notMember n0 ns && loop es (S.insert n0 ns)
-        _ -> loop es ns
-
----------------------------------------
--- Constraints
----------------------------------------
-
--- Ensure each role unique origination assumption mapped by an
--- instance originates in the instance's strand.
-roleOrigCheck :: Algebra t p g s e c => Preskel t g s e -> Bool
-roleOrigCheck k =
-    all declOrigCheck (dkuniqFull $ decls k)
-    && all declUGenCheck (filter nonNum $ (dkugenFull $ decls k))
-    where
-      declOrigCheck (u, n) =
-         case lookup u (korig k) of
-           Nothing -> error "Strand.roleOrigCheck: u not found in korig"
-           Just ns -> any (==n) ns
-      declUGenCheck (u, Just n) =
-         case lookup u (kugen k) of
-           Nothing -> error "Strand.roleUGenCheck: u not found in kugen"
-           Just ns -> any (==n) ns
-      declUGenCheck (_, Nothing) = True
-                 --error "Strand.roleUGenCheck: u generation point not found in kugen"
-      nonNum (u, _) = not (isNum u)
-
-showst :: Algebra t p g s e c => t -> ShowS
-showst t =
-    shows $ displayTerm (addToContext emptyContext [t]) t
-
--- This is the starting point of the Preskeleton Reduction System
--- This code is structured a bit strangely, in order to not rewrite
--- the existing PRS code.  "coreAlg" is the rectification algorithm
--- that might or might not use deorigination, pruning, thinning, etc.
--- "rectifiableConstraintCheck" returns True on a PRS that already
--- meets all rectifiable constraints and false otherwise.  "rectify"
--- takes a PRS and outputs a [PRS] that rectifies failed rectifiable
--- constraints.
---
--- The idea is to run the coreAlg first.  Any PRS'es in the result
--- are left alone if the rectifiable constraint check passes, and
--- replaced with the result of rectify-and-then-skeletonize otherwise.
-skeletonize :: Algebra t p g s e c => Bool -> PRS t p g s e c ->
-               [PRS t p g s e c]
-skeletonize prune prs =
-    skeletonize2 prune 5 prs
-
-enforceAbsence :: Algebra t p g s e c => PRS t p g s e c -> [PRS t p g s e c]
-enforceAbsence prs@(_, k, _, _, _) =
-  [prs' | s <- absenceSubst (gen k) (kabsent k), prs' <- ksubst prs s]
-
-skeletonize2 :: Algebra t p g s e c => Bool -> Int -> PRS t p g s e c ->
-               [PRS t p g s e c]
-skeletonize2 _ 0 prs = [prs]
-skeletonize2 prune iter prs =
-  concatMap maybeRectify coreResult
-  where
-      coreResult = concatMap coreAlg (enforceAbsence prs)
-      coreAlg
-        | useDeOrigination = hull prune
-        | otherwise = normalAlg
-      normalAlg prs | hasMultipleOrig prs = []
-                    | otherwise = (enrich prune prs)
-      maybeRectify prs
-                | rectifiableConstraintCheck (skel prs) = [prs]
-                | otherwise = concatMap (skeletonize2 prune (iter-1)) (rectify prs)
-
--- rectifiableConstraintCheck: outputs True if all rectifiable
--- constraints are true of the input skeleton.
-rectifiableConstraintCheck :: Algebra t p g s e c => Preskel t g s e
-                              -> Bool
-rectifiableConstraintCheck k
-  | not (null (rectUnifications k)) = False
-  | not (indicatorConstraintsCheck k) = False
-  | otherwise = True
-
--- indicatorConstraintsCheck: outputs True iff all indicator constraints are
--- currently met.
-indicatorConstraintsCheck :: Algebra t p g s e c => Preskel t g s e -> Bool
-indicatorConstraintsCheck k =
-  (indZeroCheck && indZeroInCheck)
-  where
-    indZeroCheck = all (\(t,v) -> t == v || indicator t v == Just 0) (pairs indZeroTerms avoidExpVars)
-    indZeroTerms = map head (map dterms $ tagDecls "ind-zero" (decls k))
-    avoidExpVars = filter isNum (S.toList $ avoid k)
-    indZeroInCheck = all (\(t,v) -> indicator t v == Just 0) indZeroInPairs
-    indZeroInPairs = map (\ts -> (ts !! 0, ts !! 1)) (map dterms $ tagDecls "ind-zero-in" (decls k))
-    pairs x y = [(a,b)|a <- x, b <- y]
-
--- rectify: rectify rectifiable constraints.
-rectify :: Algebra t p g s e c => PRS t p g s e c -> [PRS t p g s e c]
-rectify prs =
-   concatMap rectifyIndicatorConstraints $
-   doUnifs prs
-   where
-     doUnifs prs
-       | null $ unifs prs = [prs]
-       | otherwise = concatMap (ksubst prs) (rectUnifs (unifs prs) (gen (skel prs), emptySubst))
-     unifs prs = rectUnifications (skel prs)
-     rectUnifs [] sigma = [sigma]
-     rectUnifs ((t1,t2):rest) sigma =
-       do
-         s <- unify t1 t2 sigma
-         rectUnifs rest s
-
--- sklyynch: cancel a numeric variable from points earlier than its
--- generation point.
-rectifyIndicatorConstraints :: Algebra t p g s e c => PRS t p g s e c -> [PRS t p g s e c]
-rectifyIndicatorConstraints prs
-  | indicatorConstraintsCheck (skel prs) = [prs]
-  | otherwise = [prs' | ge <- gefix,
-                        prs' <- recurse1 (ind0Problems (skel prs)) prs ge]
-  where
-    -- Rectify ind-zero constraints until none are left, then rectify
-    -- ind-zero-in constraints.
-    recurse1 [] prs ge = recurse2 (ind0_inProblems (skel prs)) prs ge
-    recurse1 (t:ts) prs ge =
-      [prs' | (g,e) <- zeroIndicator t ge (filter (/= t) $ resExps (skel prs)),
-              sprs <- ksubst prs (g, substitution e),
-              prs' <- recurse1 (map (substitute (substitution e)) ts) sprs (g,e)]
-
-    -- Rectify ind-zero-in constraints until none are left
-    recurse2 [] prs _ = [prs]
-    recurse2 (tv:tvs) prs ge =
-      [prs' | (g,e) <- zeroIndicatorIn (tv !! 1) (tv !! 0) ge,
-              sprs <- ksubst prs (g,substitution e),
-              prs' <- recurse2 (map (\tv -> map (substitute (substitution e)) tv) tvs) sprs (g,e)]
-
-    -- Include restricted variables
-    gefix = matchMany (resExps (skel prs)) (resExps (skel prs)) (gen (skel prs), emptyEnv)
-    resExps k = (filter isNum $ S.toList (avoid k))
-
-    ind0Problems k = filter (\t -> ind0ProblemCheck t (resExps k))
-                  (map head $ map dterms $ tagDecls "ind-zero" (decls k))
-    ind0_inProblems k = filter (\ts -> indicator (ts !! 1) (ts !! 0) /= Just 0)
-                  (map dterms $ tagDecls "ind-zero-in" (decls k))
-    ind0ProblemCheck t av = any (\v -> indicator t v /= Just 0) (filter (/= t) av)
-
--- rectUnifications: list required, non-trivial unification for
--- rectifying k
-rectUnifications :: Algebra t p g s e c => Preskel t g s e -> [(t,t)]
-rectUnifications k = fnofUnifications k
-
--- fnofUnifications: list unifications required by fnof constraint
-fnofUnifications :: Algebra t p g s e c => Preskel t g s e -> [(t,t)]
-fnofUnifications k =
-   reducePairs [(head $ dterms ti1, head $ dterms ti2) |
-          ti1 <- fnofDecls, ti2 <- fnofDecls, daux ti1 == daux ti2,
-          (head $ dterms ti1) /= (head $ dterms ti2),
-          ((dterms ti1) !! 1) == ((dterms ti2) !! 1)]
-   where
-     -- Relies every fn-of declaration including at least 2 entries in dterms.
-     fnofDecls = filter (\d -> (length $ dterms d) >= 2) $ tagDecls "fn-of" (decls k)
-     -- removes duplicates and flips
-     reducePairs [] = []
-     reducePairs ((a,b):rest) = ((a,b):(reducePairs (filter (\ (c,d) ->
-                              ((c,d) /= (a,b)) && ((c,d) /= (b,a))) rest)))
-
--- Determine if a given PRS has a multiple origination of a
--- non-numeric fresh value.  Also when a value is both uniq
--- orig and uniq gen, check to see if they start on different strands.
-hasMultipleOrig :: Algebra t p g s e c => PRS t p g s e c -> Bool
-hasMultipleOrig prs =
-  any (\(_, l) -> length l > 1) (korig (skel prs)) ||
-  any (\(_, l) -> length l > 1) (kugen (skel prs)) ||
-  origUgenDiffStrand (korig (skel prs)) (kugen (skel prs))
-
--- When a value is both uniq orig and uniq gen, check to see if they
--- start on different strands.
-origUgenDiffStrand :: Algebra t p g s e c => [(t, [Node])] ->
-                      [(t, [Node])] -> Bool
-origUgenDiffStrand _ [] = False
-origUgenDiffStrand orig ((t, ns) : ugen) =
-  case lookup t orig of
-    Nothing -> origUgenDiffStrand orig ugen
-    Just ns' -> any f ns || origUgenDiffStrand orig ugen
-      where f (s, _) = any (\(s', _) -> s /= s') ns'
-
-checkOrigs :: Algebra t p g s e c => Gist t g ->
-              Gist t g -> (g, e) -> [Sid] -> Bool
-checkOrigs g g' env perm =
-  declCheckOrigs (declsMapLocations (permuteNode perm) $ gdecls g) (gdecls g') env
-
--- Exported
-declsOrig :: Algebra t p g s e c => [Strand t e] ->
-             Declarations t l -> ConstInfo t
-declsOrig strands d =
-  ConstInfo { dkorig = map (originationNodes strands) (dkunique d),
-              dkugen = map (generationNodes strands) (dkuniqgen d)}
-
--- Exported
-declsMapStrands :: Algebra t p g s e c => [Sid] ->
-                   SkelDeclarations t ->
-                   SkelDeclarations t
-declsMapStrands mapping d = declsMapLocations (nodeMap mapping) d
-
--- Exported
-inheritRdecls :: Algebra t p g s e c => Sid -> Instance t e ->
-                 SkelDeclarations t -> SkelDeclarations t
-inheritRdecls s inst d =
-  declsUnion [inherit s inst (ridecls (role inst)), d]
-
-inherit :: Algebra t p g s e c => Sid -> Instance t e ->
-           [(RoleDeclarations t, Int)] ->
-           SkelDeclarations t
-inherit s i ridecls =
-    declsUnion (map g $ filter f ridecls)
-    where
-      f (_, pos) = pos < height i
-      g = declsMap (instantiate (env i)) h . fst
-      h j = (s, j)
-
-declsMap :: (Algebra t p g s e c, Loc l, Loc l') => (t->t) -> (l->l') ->
-            Declarations t l -> Declarations t l'
-declsMap tf lf = declsMapLocations lf . declsMapTerms tf
-
--- Order Enrichment
-
--- Adds orderings so that a skeleton respects origination.
-
-enrich :: Algebra t p g s e c => Bool -> PRS t p g s e c ->
-          [PRS t p g s e c]
-enrich prune (k0, k, n, phi, hsubst) =
-    if length o == length (orderings k) then
-        maybeThin prune (k0, k, n, phi, hsubst) -- Nothing to add
-    else
-        do
-          k'' <- wellFormedPreskel k'
-          maybeThin prune (k0, k'', n, phi, hsubst)
-    where
-      o = addOrderings k
-      k' = newPreskel
-                  (gen k)
-                  (shared k)
-                  (insts k)
-                  o
-                  (leadsto k)
-                  (decls k)
-                  (kfacts k)
-                  (operation k)
-                  (prob k)
-                  (kpriority k)
-                  (pov k)
-
-origNode :: Algebra t p g s e c => t -> [(t,[Node])] -> Maybe Node
-origNode t origlist =
-    case lookup t origlist of
-      Nothing -> Nothing
-      Just [] -> Nothing
-      Just [n] -> Just n
-      Just _ -> error "Strand.origNode: not a hulled skeleton"
-
-addOrderings :: Algebra t p g s e c => Preskel t g s e ->
-                [Pair]
-addOrderings k =
-  addSyncOrderings (map foo (leadsto k)) orderings''
-  where
-    orderings' = foldl (addUniqOrigOrderings k) (orderings k) (kunique k)
-    orderings'' = foldl (addUniqGenOrderings k) orderings' (kuniqgen k)
-    foo (p1, p2) = ((p1,p2), (f p1, f p2))
-    f (s,n) = (trace (insts k !! s) !! n)
-
-addUniqOrigOrderings :: Algebra t p g s e c => Preskel t g s e ->
-                [Pair] -> t -> [Pair]
-addUniqOrigOrderings k orderings t =
-  case origNode t (korig k) of
-      Nothing -> orderings
-      Just n@(s, _) ->
-          foldl f orderings (L.delete s (strandids k))
-          where
-            f orderings s =
-                case gainedPos t (trace (strandInst k s)) of
-                  Nothing -> orderings
-                  Just pos -> adjoin (n, (s, pos)) orderings
-
-addUniqGenOrderings :: Algebra t p g s e c => Preskel t g s e ->
-                [Pair] -> t -> [Pair]
-addUniqGenOrderings k orderings t =
-  case origNode t (kugen k) of
-      Nothing -> orderings
-      Just n@(s, _) ->
-          foldl f orderings (L.delete s (strandids k))
-          where
-            f orderings s =
-                case genGainedPos t (trace (strandInst k s)) of
-                  Nothing -> orderings
-                  Just pos -> adjoin (n, (s, pos)) orderings
-
--- Add implied edges from an observer
-addSyncOrderings :: Algebra t p g s e c => [(Pair, (Event t,Event t))] -> [Pair] -> [Pair]
-addSyncOrderings es orderings =
-  foldl f orderings es
-  where
-    f acc (p, (Sync t0, Sync t1)) = -- t0 transforms, t1 observes
-      if (path t0 && observer t1) then
-        -- Need to look for a pair (p', (e1, e2)) in xform s.t. e1 = Sync t0
-            if (null (h t0 xform)) then acc else ((snd p, snd (fst ((h t0 xform) !! 0))) : acc)
-                                                 else acc
-    f acc _ = acc
-    xform = filter g es         -- Edges that transform
-    g (_, (Sync t@(Tran (_, Just _)), Sync t'@(Tran (Just _, Just _)))) =
-      next t == now t'
-    g _ = False
-    h t0 pes =
-      filter (\(_,(t1,_))->t1==Sync t0) pes
-
-nodeMap :: [Sid] -> Node -> Node
-nodeMap mapping (s, i) =
-  if s < length mapping && s >= 0 then
-    (mapping !! s, i)
-  else
-    error ("Strand.nodeMap: bad " ++ show s ++ " " ++ show mapping)
-
--- Exported
-validateDeclEnv :: Algebra t p g s e c => Preskel t g s e ->
-                   Preskel t g s e -> [Sid] -> e -> Bool
-validateDeclEnv k k' mapping env =
-    validateDeclMap (decls k) (decls k') (nodeMap mapping) env
-
--- Hulling or Ensuring Unique Origination
-hull :: Algebra t p g s e c => Bool -> PRS t p g s e c ->
-        [PRS t p g s e c]
-hull prune prs =
-    loop (korig (skel prs) ++ kugen (skel prs))
-    where
-      -- No uniques originate on more than one strand
-      loop [] = enrich prune prs
-      -- Found a pair that needs hulling
-      loop ((u, (s, i) : (s', i') : _) : _) =
-              hullByDeOrigination prune prs u (s, i) (s', i')
-      loop(_ : orig) = loop orig
-
--- De-Origination
-
-hullByDeOrigination :: Algebra t p g s e c => Bool -> PRS t p g s e c ->
-                       t -> Node -> Node -> [PRS t p g s e c]
-hullByDeOrigination  prune prs u (s, i) (s', i') =
-    do
-      subst <- deOrig (skel prs) u (s, i) ++ deOrig (skel prs) u (s', i')
-      prs <- ksubst prs subst
-      hull prune prs
-
-deOrig :: Algebra t p g s e c => Preskel t g s e -> t -> Node -> [(g, s)]
-deOrig k u (s, i) =
-    [ (g, s) |
-      let tr = trace $ strandInst k s,
-      e <- take i tr,
-      t <- M.maybeToList $ recvTerm e,
-      subterm <- S.toList $ foldCarriedTerms (flip S.insert) S.empty t,
-      (g, s) <- unify u subterm (gen k, emptySubst),
-      not $ originates (substitute s u) (map (evtMap $ substitute s) tr) ]
-
-type SkelDeclInst t = DeclInst t (Int, Int)
-type SkelDeclInstList t = DeclInstList t (Int, Int)
-type SkelDeclaration t = Declaration t (Int, Int)
-type SkelDeclList t = DeclList t (Int, Int)
-type SkelDeclarations t = Declarations t (Int, Int)
-
--- Facts
-
-data FTerm t
-  = FSid Sid
-  | FTerm t
-  deriving (Eq, Show)
-
-data Fact t
-  = Fact String [FTerm t]
-  deriving (Eq, Show)
-
-factPred :: Fact t -> String
-factPred (Fact pred _) = pred
-
-substFTerm :: Algebra t p g s e c => s -> FTerm t -> FTerm t
-substFTerm s (FTerm t) = FTerm $ substitute s t
-substFTerm _ t = t
-
-substFact :: Algebra t p g s e c => s -> Fact t -> Fact t
-substFact s (Fact name fs) = Fact name $ map (substFTerm s) fs
-
-{-
-instFTerm :: Algebra t p g s e c => e -> FTerm t -> FTerm t
-instFTerm s (FTerm t) = FTerm $ instantiate s t
-instFTerm _ t = t
-
-instFact :: Algebra t p g s e c => e -> Fact t -> Fact t
-instFact s (Fact name fs) = Fact name $ map (instFTerm s) fs
--}
-
-updateFTerm :: (Sid -> Sid) -> FTerm t -> FTerm t
-updateFTerm f (FSid s) = FSid $ f s
-updateFTerm _ t = t
-
-updateFact :: (Sid -> Sid) -> Fact t -> Fact t
-updateFact f (Fact name fs) = Fact name $ map (updateFTerm f) fs
-
-instUpdateFTerm :: Algebra t p g s e c => e ->
-                   (Sid -> Sid) -> FTerm t -> FTerm t
-instUpdateFTerm _ f (FSid s) = FSid $ f s
-instUpdateFTerm e _ (FTerm t) = FTerm $ instantiate e t
-
-instUpdateFact :: Algebra t p g s e c => e ->
-                  (Sid -> Sid) -> Fact t -> Fact t
-instUpdateFact e f (Fact name fs) = Fact name $ map (instUpdateFTerm e f) fs
-
--- Is all of the fact's variables in a list of variables?
-
-factVarsElem :: Algebra t p g s e c => [t] -> Fact t -> Bool
-factVarsElem vs (Fact _ ts) =
-  all f ts
-  where
-    f (FSid _) = True
-    f (FTerm t) = all (\v -> elem v vs) (varsInTerms [t])
-
-cleansFacts :: Algebra t p g s e c => [t] -> [Fact t] -> [Fact t]
-cleansFacts vs facts =
-  L.filter (factVarsElem vs) facts
-
-kfactVars :: Algebra t p g s e c => Preskel t g s e -> Set t
-kfactVars k =
-  foldl (foldFactTerms $ foldVars $ flip S.insert) S.empty (kfacts k)
-
-foldFactTerms :: Algebra t p g s e c => (a -> t -> a) -> a -> Fact t -> a
-foldFactTerms f z (Fact _ ts) =
-  foldl g z ts
-  where
-    g a (FSid _) = a
-    g a (FTerm t) = f a t
-
-{-
-instvars :: Algebra t p g s e c => [Instance t e] -> [t]
-instvars insts =
-    S.elems $ foldl addIvars S.empty insts
--}
-
-{-- For debugging
-factVars :: Algebra t p g s e c => Fact t -> [t] -> [t]
-factVars (Fact _ ts) vs =
-  foldr f vs ts
-  where
-    f (FSid _) vs = vs
-    f (FTerm t) vs = addVars vs t
-
-chkFVars :: Algebra t p g s e c => Preskel t g s e -> Preskel t g s e
-chkFVars k =
-  foldl f k (foldr factVars [] (kfacts k))
-  where
-    f k v
-      | elem v (kvars k) = k
-      | otherwise = error ("Bad var in fact " ++ show v)
-        -- ++ "\n\n" ++ show k)
-
-chkFVarsS :: Algebra t p g s e c => String -> Preskel t g s e -> Preskel t g s e
-chkFVarsS s k =
-  foldl f k (foldr factVars [] (kfacts k))
-  where
-    f k v
-      | elem v (kvars k) = k
-      | otherwise = error (s ++ ": Bad var in fact " ++ show v)
-        -- ++ "\n\n" ++ show k
---}
-
-{-
-chkFacts :: Preskel -> Bool
-chkFacts k =
-  all checkFact (kfacts k)
-  where
-    checkFact (Fact _ ft) =
-      all checkFTerm ft
-    checkFTerm (FSid s) =
-      s < nstrands k
-    checkFTerm (FNode (s, _)) =
-      s < nstrands k
-    checkFTerm (FTerm _) = True
-
--- Use this to find bad fact updates.
-chkFacts :: Preskel -> Bool
-chkFacts k =
-  all checkFact (kfacts k)
-  where
-    checkFact (Fact _ ft) =
-      all checkFTerm ft
-    checkFTerm (FSid s) | s >= nstrands k = error "Bad strand in fact"
-    checkFTerm (FNode (s, _)) | s >= nstrands k = error "Bad node in fact"
-    checkFTerm _ = True
-
--}
--- Security goals: satisfaction of atomic formulas
-
-type Sem t g s e = Preskel t g s e -> (g, e) -> [(g, e)]
-
-satisfy :: Algebra t p g s e c => AForm t -> Sem t g s e
-satisfy (Equals t t') = geq t t'
-satisfy (AFact name fs) = gafact name fs
-satisfy (Non t) = gnon t
-satisfy (Pnon t) = gpnon t
-satisfy (Uniq t) = guniq t
-satisfy (UniqAt t n) = guniqAt t n
-satisfy (UgenAt t n) = gugenAt t n
-satisfy (Ugen t) = gugen t
-satisfy (Prec n n') = gprec n n'
-satisfy (LeadsTo n n') = gleadsTo n n'
-satisfy (Length r n i) = glength r n i
-satisfy (Param r v f n t) = gparam r v f n t
-
--- Equality assumes there has been a static role specific check to
--- eliminate error cases.
-geq :: Algebra t p g s e c => t -> t -> Sem t g s e
-geq t t' _ (g, e)
-  -- Ensure all variables in t and t' are in the domain of e.
-  -- This always happens for goals because they must be role specific
-  -- but it is not always true for rules.
-  | not (matched e t) || not (matched e t') =
-      error ("In a rule equality check, " ++
-             "cannot find a binding for some variable")
-  | ti == ti' = [(g, e)]
-  | otherwise = []
-  where
-    ti = instantiate e t
-    ti' = instantiate e t'
-
--- Facts
-gafact :: Algebra t p g s e c => String -> [t] -> Sem t g s e
-gafact name fs k e =
-  do
-    Fact name' ts <- kfacts k
-    case name == name' of
-      True -> fmatchList fs ts e
-      False -> []
-
-fmatchList :: Algebra t p g s e c => [t] -> [FTerm t] -> (g, e) -> [(g, e)]
-fmatchList [] [] e = [e]
-fmatchList (f : fs) (t : ts) e =
-  do
-    e <- fmatch f t e
-    fmatchList fs ts e
-fmatchList _ _ _ = []
-
-fmatch :: Algebra t p g s e c => t -> FTerm t -> (g, e) -> [(g, e)]
-fmatch z (FSid s) e =
-  strdMatch z s e
-fmatch t (FTerm t') e =
-  match t t' e
-
--- Non-origination
-gnon :: Algebra t p g s e c => t -> Sem t g s e
-gnon t k e =
-  do
-    t' <- dknon $ decls k
-    match t t' e
-
--- Penetrator non-origination
-gpnon :: Algebra t p g s e c => t -> Sem t g s e
-gpnon t k e =
-  do
-    t' <- dkpnon $ decls k
-    match t t' e
-
--- Unique origination
-guniq :: Algebra t p g s e c => t -> Sem t g s e
-guniq t k e =
-  do
-    t' <- kunique k
-    match t t' e
-
--- Unique origination at a node
-guniqAt :: Algebra t p g s e c => t -> NodeTerm t -> Sem t g s e
-guniqAt t (z, i) k e =
-  do
-    (t', (s, j)) <- dkuniqFull $ decls k
-    case i == j of
-      True ->
-        do
-          e <- match t t' e
-          strdMatch z s e
-      _ -> []
-
--- Unique generation at a node
-gugenAt :: Algebra t p g s e c => t -> NodeTerm t -> Sem t g s e
-gugenAt t (z, i) k e =
-  do
-    (t', l) <- dkugenFull $ decls k
-    case l of
-      Just (s, j) | i == j ->
-        do
-          e <- match t t' e
-          strdMatch z s e
-      _ -> []
-
--- Unique generation
-gugen :: Algebra t p g s e c => t -> Sem t g s e
-gugen t k e =
-  do
-    t' <- dkuniqgen $ decls k
-    match t t' e
-
-inSkel :: Preskel t g s e -> (Int, Int) -> Bool
-inSkel k (s, i) =
-  s >= 0 && s < nstrands k && i >= 0 && i < height (insts k !! s)
-
-strandPrec :: Node -> Node -> Bool
-strandPrec (s, i) (s', i')
-  | s == s' && i < i' = True
-  | otherwise = False
-
-nodeLookup :: Algebra t p g s e c => e -> NodeTerm t -> Maybe Node
-nodeLookup e (z, i) =
-  do
-    s <- strdLookup e z
-    return (s, i)
-
-nodeMatch :: Algebra t p g s e c => NodeTerm t -> Node -> (g, e) -> [(g, e)]
-nodeMatch (z, i) (s, j) e
-  | i == j = strdMatch z s e
-  | otherwise = []
-
--- Node precedes
--- This should look at the transitive closure of the ordering graph.
-gprec :: Algebra t p g s e c => NodeTerm t -> NodeTerm t -> Sem t g s e
-gprec n n' k (g, e) =
-  case (nodeLookup e n, nodeLookup e n') of
-    (Just p, Just p')
-      | inSkel k p && inSkel k p' &&
-        (strandPrec p p' || elem (p, p') tc) -> [(g, e)]
-    _ ->
-      do
-        (p, p') <- tc
-        (g, e) <- nodeMatch n p (g, e)
-        nodeMatch n' p' (g, e)
-  where
-    tc = map graphPair $ graphCloseAll $ graphEdges $ strands k
-
--- Node leads to
-gleadsTo :: Algebra t p g s e c => NodeTerm t -> NodeTerm t -> Sem t g s e
-gleadsTo n n' k (g, e) =
-  case (nodeLookup e n, nodeLookup e n') of
-    (Just p, Just p')
-      | inSkel k p && inSkel k p' && elem (p, p') (leadsto k) -> [(g, e)]
-    _ ->
-      do
-        (p, p') <- leadsto k
-        (g, e) <- nodeMatch n p (g, e)
-        nodeMatch n' p' (g, e)
-
--- Length predicate
--- r and h determine the predicate, which has arity one.
-glength :: Algebra t p g s e c => Role t -> t -> Int -> Sem t g s e
-glength r z h k (g, e) =
-  case strdLookup e z of
-    Nothing ->
-      do
-        (s, inst) <- zip [0..] $ insts k
-        case () of
-          _ | h > height inst -> []
-            | rname (role inst) == rname r -> strdMatch z s (g, e)
-            | otherwise ->      -- See if z could have been an instance of r
-              case bldInstance r (take h $ trace inst) g of
-                [] -> []
-                _ -> strdMatch z s (g, e)
-    Just s | s < nstrands k ->
-      let inst = insts k !! s in
-      case () of
-        _ | h > height inst -> []
-          | rname (role inst) == rname r -> [(g, e)]
-          | otherwise ->
-            case bldInstance r (take h $ trace inst) g of
-              [] -> []
-              _ -> [(g, e)]
-    _ -> []
-
--- Parameter predicate
-
--- r and t determine the predicate, which has arity two.  t must be
--- a variable declared in role r.
-gparam :: Algebra t p g s e c => Role t -> t -> Int -> t -> t -> Sem t g s e
-gparam r t h z t' k (g, e) =
-  case strdLookup e z of
-    Nothing ->
-      do
-        (s, inst) <- zip [0..] $ insts k
-        case () of
-          _ | h > height inst -> []
-            | rname (role inst) == rname r ->
-              do
-                ge <- strdMatch z s (g, e)
-                match t' (instantiate (env inst) t) ge
-            | otherwise ->      -- See if z could have been an instance of r
-                do
-                  (g, inst) <- bldInstance r (take h $ trace inst) g
-                  ge <- strdMatch z s (g, e)
-                  match t' (instantiate (env inst) t) ge
-    Just s | s < nstrands k  ->
-      let inst = insts k !! s in
-      case () of
-        _ | h > height inst -> []
-          | rname (role inst) == rname r ->
-            match t' (instantiate (env inst) t) (g, e)
-          | otherwise ->
-              do
-                (g, inst) <- bldInstance r (take h $ trace inst) g
-                match t' (instantiate (env inst) t) (g, e)
-    _ -> []
-
--- Conjunction
-
-conjoin :: Algebra t p g s e c => [AForm t] -> Sem t g s e
-conjoin [] _ e = [e]
-conjoin (a: as)  k e =
-  do
-    e <- satisfy a k e
-    conjoin as k e
-
--- Satisfaction
-
--- Returns the environments that show satifaction of the antecedent
--- but fail to be extendable to show satifaction of one of the
--- conclusions.
-goalSat :: Algebra t p g s e c => Preskel t g s e -> Goal t -> (Goal t, [e])
-goalSat k g =
-  (g, [ e |
-        (gen, e) <- conjoin (antec g) k (gen k, emptyEnv),
-        conclusion (gen, e) ])
-  where
-    conclusion e = all (disjunct e) $ concl g
-    disjunct e a = null $ conjoin a k e
-
-sat :: Algebra t p g s e c => Preskel t g s e -> [(Goal t, [e])]
-sat k =
-  map (goalSat k) (kgoals k)
-
--- Rules
-
--- Try simplifying k if possible
-simplify :: Algebra t p g s e c => Preskel t g s e -> [Preskel t g s e]
-simplify k =
-  case rewrite k of
-    Nothing -> [k]
-    Just ks -> ks
-
-{-
--- Try all rules associated with the protocol of k.  Return nothing if
--- no rule applies, otherwise return the replacements.
-rewrite :: Algebra t p g s e c => Preskel t g s e -> Maybe [Preskel t g s e]
-rewrite _ = Nothing
--}
-
--- Try all rules associated with the protocol of k.  Return nothing if
--- no rule applies, otherwise return the replacements.
-rewrite :: Algebra t p g s e c => Preskel t g s e -> Maybe [Preskel t g s e]
-rewrite k =
-  loop prules
-  where
-    prules = rules $ protocol k
-    loop [] = Nothing           -- No rules apply
-    loop (r : rs) =
-      let vas = tryRule k r in
-        if null vas then
-          loop rs               -- Rule does not apply
-        else
-          Just $ doRewrites prules k r vas
-
--- Returns the environments that show satifaction of the antecedent
--- but fail to be extendable to show satifaction of one of the
--- conclusions.
-tryRule :: Algebra t p g s e c => Preskel t g s e -> Rule t -> [(g, e)]
-tryRule k r =
-  [(g, e) | (g, e) <- conjoin (antec $ rlgoal r) k (gen k, emptyEnv),
-            conclusion (g, e) ]
-  where
-    conclusion e = all (disjunct e) $ concl $ rlgoal r
-    disjunct e a = null $ conjoin a k e
-
-ruleLimit :: Int
-ruleLimit = 500
-
--- Repeatedly applies rules until no rule applies.
-doRewrites :: Algebra t p g s e c => [Rule t] -> Preskel t g s e ->
-              Rule t -> [(g, e)] -> [Preskel t g s e]
-doRewrites rules k r vas =
-  doRewritesLoop rules k (length vas) (doRewrite k r vas) []
-
-doRewritesLoop :: Algebra t p g s e c => [Rule t] -> Preskel t g s e ->
-                  Int -> [Preskel t g s e] -> [Preskel t g s e] ->
-                  [Preskel t g s e]
-doRewritesLoop _ _ lim _ _
-  | lim >= ruleLimit =
-    error ("Aborting after applying " ++ show ruleLimit ++
-           " rules and more are applicable")
-doRewritesLoop _ _ _ [] ks = reverse ks
-doRewritesLoop rules k lim (k' : todo) ks =
-  loop rules
-  where
-    loop [] =                   -- No rules apply
-      doRewritesLoop rules k lim todo (k' : ks)
-    loop (r : rs) =
-      let vas = tryRule k' r in
-        if null vas then
-          loop rs               -- Rule does not apply
-        else
-          let new = doRewrite k' r vas in
-            doRewritesLoop rules k (lim + length vas) (todo ++ new) ks
-
--- Apply rewrite rule at all assignments
-doRewrite :: Algebra t p g s e c => Preskel t g s e ->
-             Rule t -> [(g, e)] -> [Preskel t g s e]
-doRewrite k r vas =
-  concatMap (doRewriteOne k r) vas
-
--- Apply rewrite rule at one assignment
-doRewriteOne :: Algebra t p g s e c => Preskel t g s e ->
-                Rule t -> (g, e) -> [Preskel t g s e]
-doRewriteOne k r e =
-  do
-    (evars, cl) <- consq $ rlgoal r
-    let e' = foldl fresh e evars
-    (k, _) <- doConj (rlname r) cl k e'
-    k <- wellFormedPreskel k
-    k <- toSkeleton True k
-    return $ f k                -- Add comment about rule application
-  where f k = k { kcomment =
-                  L () [S () "rule", S () (rlname r)] :
-                  kcomment k }
-
-fresh :: Algebra t p g s e c => (g, e) -> t -> (g, e)
-fresh (g, e) t
-  | isStrdVar t = (g, e)
-  | otherwise =
-      case match t t' (g', e) of
-        e' : _ -> e'
-        [] -> error "Strand.fresh: Cannot match logical variable to clone"
-    where
-      (g', t') = clone g t
-
-type Rewrite t g s e =
-  Preskel t g s e -> (g, e) -> [(Preskel t g s e, (g, e))]
-
-doConj :: Algebra t p g s e c => String -> [AForm t] -> Rewrite t g s e
-doConj _ [] k e = [(k, e)]
-doConj rule (f : fs) k e =
-  do
-    (k, e) <- rwt rule f k e
-    doConj rule fs k e
-
-rwt :: Algebra t p g s e c => String -> AForm t -> Rewrite t g s e
-rwt _ (Length r z h) = rlength r z h
-rwt rule (Param r v i z t) = rparam rule r v i z t
-rwt rule (Prec n n') = rprec rule n n'
-rwt rule (LeadsTo n n') = rleadsTo rule n n'
-rwt rule (Non t) = rlnon rule t
-rwt rule (Pnon t) = rlpnon rule t
-rwt rule (Uniq t) = rluniq rule t
-rwt rule (UniqAt t n) = runiqAt rule t n
-rwt rule (UgenAt t n) = rugenAt rule t n
-rwt rule (Ugen t) = rlugen rule t
-rwt rule (AFact name fs) = rafact rule name fs
-rwt rule (Equals t t') = req rule t t'
-
-rlength :: Algebra t p g s e c => Role t -> t -> Int -> Rewrite t g s e
-rlength r z h k (g, e)
-  | length (rtrace r) < h = []
-  | otherwise =
-    case strdLookup e z of
-      Just s ->                 -- Try to displace
-        rDisplace e k' ns s
-        where
-          k' = addStrand g k r h
-          ns = nstrands k
-      Nothing ->                -- Try to augment
-        do                      -- and displace everywhere
-          let ns = nstrands k
-          (g, e) <- strdMatch z ns (g, e)
-          let k' = addStrand g k r h
-          let f s' = rDisplace e k' ns s'
-          (k', (gen k', e)) : concatMap f (nats ns)
-
--- Just add a strand cloned from a role.
--- The length must be greater than one.
-addStrand :: Algebra t p g s e c => g -> Preskel t g s e ->
-             Role t -> Int -> Preskel t g s e
-addStrand g k r h =
-  newPreskel g' (shared k) insts'
-  (orderings k) (leadsto k) decls' (kfacts k) (operation k)
-  (prob k) (kpriority k) (pov k)
-  where
-    (g', inst) = mkInstance g r emptyEnv h -- Create instance
-    insts' = (insts k) ++ [inst]
-    decls' = inheritRdecls s inst (decls k)
-    s = length (insts k)
-
-rDisplace :: Algebra t p g s e c => e -> Preskel t g s e ->
-             Sid -> Sid -> [(Preskel t g s e, (g, e))]
-rDisplace e k s s' | s == s' = [(k, (gen k, e))]
-rDisplace e k s s' =
-  do
-    (s, s', subst) <- unifyStrands k s s'
-    k <- rSubst k subst
-    k <- rCompress k s s'
-    return (k, (gen k, strdUpdate
-                       (substUpdate e (snd subst))
-                       (updateStrand s s')))
-
-rSubst :: Algebra t p g s e c => Preskel t g s e ->
-          (g, s) -> [Preskel t g s e]
-rSubst k (gen, subst) =
-    do
-      (gen', insts') <- foldMapM (substInst subst) gen (insts k)
-      let decls' = declsMapTerms (substitute subst) (decls k)
-      let facts' = map (substFact subst) (kfacts k)
-      let operation' = substOper subst (operation k)
-      return $
-        newPreskel gen' (shared k) insts'
-        (orderings k) (leadsto k) decls' facts' operation'
-        (prob k) (kpriority k) (pov k)
-
-rCompress :: Algebra t p g s e c => Preskel t g s e ->
-             Sid -> Sid -> [Preskel t g s e]
-rCompress k s s' =
-    do
-      let perm = updatePerm s s' (strandids k)
-      orderings' <- normalizeOrderings True
-                    (permuteOrderings perm (orderings k))
-      return $
-        newPreskel
-        (gen k)
-        (shared k)
-        (deleteNth s (insts k))
-        orderings'
-        (permuteOrderings perm (leadsto k))
-        (declsMapStrands perm (decls k))
-        (map (updateFact $ updateStrand s s') (kfacts k))
-        (operation k)
-        (updateProb perm (prob k))
-        (updatePriority perm (kpriority k))
-        (pov k)
-
-rparam :: Algebra t p g s e c => String -> Role t ->
-          t -> Int -> t -> t -> Rewrite t g s e
-rparam name r v h z t k (g, e) =
-  case strdLookup e z of
-    Just s
-      | height inst < h -> []
-      | rname (role inst) == rname r ->
-        rParam name k (g, e) t t'
-      | otherwise ->
-        do
-          (k, (g, e)) <- rDisplace e k' ns s
-          rParam name k (g, e) t t'
-      where
-        inst = strandInst k s
-        t' = instantiate (env inst) v
-        k' = addStrand g k r h
-        ns = nstrands k
-    Nothing ->
-      error ("In rule " ++ name ++
-             ", parameter predicate did not get a strand")
-
-rParam :: Algebra t p g s e c => String -> Preskel t g s e ->
-          (g, e) -> t -> t -> [(Preskel t g s e, (g, e))]
-rParam name k (g, e) t t' =
-  case matched e t of
-    True ->
-      rUnify k (g, e) (instantiate e t) t'
-    False ->
-      error ("In rule " ++ name ++
-             ", parameter predicate did not get a value")
-
-rUnify :: Algebra t p g s e c => Preskel t g s e ->
-          (g, e) -> t -> t -> [(Preskel t g s e, (g , e))]
-rUnify k (g, e) t t' =
-  do
-    subst <- unify t t' (g, emptySubst)
-    k <- rSubst k subst
-    return (k, (gen k, substUpdate e (snd subst)))
-
-rprec :: Algebra t p g s e c => String -> NodeTerm t ->
-         NodeTerm t -> Rewrite t g s e
-rprec name (z, i) (z', i') k (g, e) =
-  case (strdLookup e z, strdLookup e z') of
-    (Just s, Just s')
-      | elem ((s, i), (s', i')) tc -> [(k, (g, e))]
-      | badIndex k s i || badIndex k s' i' -> []
-      | otherwise ->
-        do                      -- Add one ordering
-          orderings' <- normalizeOrderings True
-                        (((s, i), (s', i')) : orderings k)
-          let k' = newPreskel g (shared k) (insts k) orderings'
-                   (leadsto k) (decls k) (kfacts k) (operation k)
-                   (prob k) (kpriority k) (pov k)
-          return (k', (gen k, e))
-    _ ->
-      error ("In rule " ++ name ++ ", precedence did not get a strand")
-  where
-    tc = map graphPair $ graphClose $ graphEdges $ strands k
-
-badIndex :: Algebra t p g s e c => Preskel t g s e -> Sid -> Int -> Bool
-badIndex k s i =
-  i >= height (strandInst k s)
-
-rleadsTo :: Algebra t p g s e c => String -> NodeTerm t ->
-            NodeTerm t -> Rewrite t g s e
-rleadsTo name (z, i) (z', i') k (g, e) =
-  case (strdLookup e z, strdLookup e z') of
-    (Just s, Just s')
-      | elem ((s, i), (s', i')) (leadsto k) -> [(k, (g, e))]
-      | badIndex k s i || badIndex k s' i' -> []
-      | otherwise ->
-        do                      -- Add one ordering
-          let leadsto' = ((s, i), (s', i')) : leadsto k
-          let k' = newPreskel g (shared k) (insts k) (orderings k)
-                   leadsto' (decls k) (kfacts k) (operation k)
-                   (prob k) (kpriority k) (pov k)
-          return (k', (gen k, e))
-    _ ->
-      error ("In rule " ++ name ++ ", leads to did not get a strand")
-
-withNewDecl :: Algebra t p g s e c => Preskel t g s e ->
-               SkelDeclarations t -> Preskel t g s e
-withNewDecl k d =
-  newPreskel (gen k) (shared k) (insts k) (orderings k)
-  (leadsto k) d (kfacts k) (operation k)
-  (prob k) (kpriority k) (pov k)
-
-rlnon :: Algebra t p g s e c => String -> t -> Rewrite t g s e
-rlnon name t k (g, e) =
-  case matched e t of
-    True
-      | elem t' (knon k) -> [(k, (g, e))]
-      | not $ isAtom t' -> []
-      | otherwise ->
-        [(k', (g, e))]
-        where
-          k' = withNewDecl k (addDeclInst "non-orig" [t'] [] (decls k))
-    False ->
-      error ("In rule " ++ name ++ ", non did not get a term")
-  where
-    t' = instantiate e t
-
-rlpnon :: Algebra t p g s e c => String -> t -> Rewrite t g s e
-rlpnon name t k (g, e) =
-  case matched e t of
-    True
-      | elem t' (kpnon k) -> [(k, (g, e))]
-      | not $ isAtom t' -> []
-      | otherwise ->
-        [(k', (g, e))]
-        where
-          k' = withNewDecl k (addDeclInst "pen-non-orig" [t'] [] (decls k))
-    False ->
-      error ("In rule " ++ name ++ ", pnon did not get a term")
-  where
-    t' = instantiate e t
-
-rluniq :: Algebra t p g s e c => String -> t -> Rewrite t g s e
-rluniq name t k (g, e) =
-  case matched e t of
-    True
-      | elem t' (dkunique $ decls k) -> [(k, (g, e))]
-      | not $ isAtom t' -> []
-      | otherwise ->
-        case originationNodes (strands k) t' of
-          (_, []) -> []
-          (_, n : _) ->
-            [(k', (g, e))]
-            where
-              k' = withNewDecl k (addDeclInst "uniq-orig" [t'] [n] (decls k))
-    False ->
-      error ("In rule " ++ name ++ ", uniq did not get a term")
-  where
-    t' = instantiate e t
-
-runiqAt :: Algebra t p g s e c => String -> t ->
-           NodeTerm t -> Rewrite t g s e
-runiqAt name t (z, i) k (g, e) =
-  case (matched e t, strdLookup e z) of
-    (True, Just s)
-      | elem (t', (s, i)) (dkuniqFull $ decls k) -> [(k, (g, e))]
-      | not $ isAtom t' -> []
-      | i >= height (strandInst k s) -> []
-      | otherwise ->
-        [(k', (g, e))]
-        where
-          k' = withNewDecl k (addDeclInst "uniq-orig" [t'] [(s, i)] (decls k))
-    (False, _) ->
-      error ("In rule " ++ name ++ ", uniq-at did not get a term")
-    (_, Nothing) ->
-      error ("In rule " ++ name ++ ", uniq-at did not get a strand")
-  where
-    t' = instantiate e t
-
-rugenAt :: Algebra t p g s e c => String -> t ->
-           NodeTerm t -> Rewrite t g s e
-rugenAt name t (z, i) k (g, e) =
-  case (matched e t, strdLookup e z) of
-    (True, Just s)
-      | elem (t', (s, i)) (dkuniqFull $ decls k) -> [(k, (g, e))]
-      | not $ isAtom t' -> []
-      | otherwise ->
-        [(k', (g, e))]
-        where
-          k' = withNewDecl k (addDeclInst "uniq-gen" [t'] [(s, i)] (decls k))
-    (False, _) ->
-      error ("In rule " ++ name ++ ", ugen-at did not get a term")
-    (_, Nothing) ->
-      error ("In rule " ++ name ++ ", ugen-at did not get a strand")
-  where
-    t' = instantiate e t
-
-rlugen :: Algebra t p g s e c => String -> t -> Rewrite t g s e
-rlugen name t k (g, e) =
-  case matched e t of
-    True
-      | elem t' (dkuniqgen $ decls k) -> [(k, (g, e))]
-      | not $ isAtom t' -> []
-      | otherwise ->
-        case generationNodes (strands k) t' of
-          (_, []) -> []
-          (_, n : _) ->
-            [(k', (g, e))]
-            where
-              k' = withNewDecl k (addDeclInst "uniq-gen" [t'] [n] (decls k))
-    False ->
-      error ("In rule " ++ name ++ ", ugen did not get a term")
-  where
-    t' = instantiate e t
-
-rafact :: Algebra t p g s e c => String -> String -> [t] -> Rewrite t g s e
-rafact rule name fts k (g, e)
-  | elem fact (kfacts k) = [(k, (g, e))]
-  | otherwise = [(k', (gen k', e))]
-  where
-    fts' = map (rFactLookup rule e) fts
-    fact = Fact name fts'
-    k' = newPreskel
-         g (shared k) (insts k) (orderings k) (leadsto k)
-         (decls k) (fact : kfacts k)
-         (operation k) (prob k) (kpriority k) (pov k)
-
-rFactLookup :: Algebra t p g s e c => String -> e -> t -> FTerm t
-rFactLookup name e t
-  | isStrdVar t =
-    case strdLookup e t of
-      Just s -> FSid s
-      Nothing ->
-        error ("In rule " ++ name ++ ": fact did not get a strand")
-  | matched e t = FTerm $ instantiate e t
-  | otherwise =
-      error ("In rule " ++ name ++ ": fact did not get a term")
-
-req :: Algebra t p g s e c => String -> t -> t -> Rewrite t g s e
-req name x y k (g, e)
-  | isStrdVar x =
-    case (strdLookup e x, strdLookup e y) of
-      (Just s, Just t)
-        | s == t -> [(k, (g, e))]
-        | otherwise ->
-          rDisplace e (k {gen = g})  s t
-      _ ->
-        error ("In rule " ++ name ++ ", = did not get a strand")
-  | otherwise =
-    case (matched e x, matched e y) of
-      (True, True)
-        | u == v -> [(k, (g, e))]
-        | otherwise ->
-          rUnify k (g, e) u v
-      _ ->
-        error ("In rule " ++ name ++ ", = did not get a term")
-    where
-      u = instantiate e x
-      v = instantiate e y
diff --git a/src/CPSA/Lib/Utilities.hs b/src/CPSA/Lib/Utilities.hs
--- a/src/CPSA/Lib/Utilities.hs
+++ b/src/CPSA/Lib/Utilities.hs
@@ -13,32 +13,15 @@
 import qualified Data.List as L
 import Data.List (foldl')
 
--- Like Either String but with fail method defined
-data ReturnFail a
-    = Return a
-    | Fail String
-
-instance Functor ReturnFail where
-    fmap _ (Fail x)   = Fail x
-    fmap f (Return y) = Return (f y)
-
-instance Applicative ReturnFail where
-    pure           = Return
-    Fail e <*> _   = Fail e
-    Return f <*> r = fmap f r
-
-instance Monad ReturnFail where
-    Fail l >>= _   = Fail l
-    Return r >>= k = k r
-
-instance MonadFail ReturnFail where
-    fail s         = Fail s
-
 adjoin :: Eq a => a -> [a] -> [a]
 adjoin x xs
     | x `elem` xs = xs
     | otherwise = x : xs
 
+subset :: Eq a => [a] -> [a] -> Bool
+subset as bs =
+    all (flip elem bs) as 
+
 -- Delete the nth item in a list
 deleteNth :: Int -> [a] -> [a]
 deleteNth n (x : xs)
@@ -50,14 +33,40 @@
 
 -- Replace the nth item in a list
 replaceNth :: a -> Int -> [a] -> [a]
-replaceNth _ n xs
-    | n < 0 = error "Utilities.replaceNth: negative index"
-    | n >= length xs = error "Utilities.replaceNth: n out of bounds"
 replaceNth z n (x : xs)
     | n == 0 = z : xs
     | n > 0 = x : replaceNth z (n - 1) xs
-replaceNth _ _ _ = error "Utilities.replaceNth: something odd happened"
+replaceNth _ n _
+    | n < 0 = error "Utilities.replaceNth: negative index"
+    | otherwise = error "Utilities.replaceNth: negative index"
 
+maybeNth :: [a] -> Int -> Maybe a
+maybeNth as i =
+    case i < L.length as of
+      True -> Just (as !! i)
+      False -> Nothing
+
+listMax :: Ord a => [a] -> Maybe a
+listMax [] = Nothing
+listMax [a] = Just a
+listMax (a : rest) =
+    do
+      maxRest <- listMax rest
+      Just $ max a maxRest
+
+-- given a function of two args and two lists, return the list of
+-- results of applying the function to the successive members.
+--
+-- If one list is longer, discard its excess members.
+
+mapTwo :: (a -> b -> c) -> [a] -> [b] -> [c]
+mapTwo f as bs =
+    map (\(a,b) -> f a b) (zip as bs)
+
+foldrTwo :: (a -> b -> c -> c) -> c -> [a] -> [b] -> c
+foldrTwo f seed as bs =
+    foldr (\(a,b) c -> f a b c) seed (zip as bs)
+
 -- Returns a list of the natural numbers less that the argument.
 {-# INLINE nats #-}
 nats :: Int -> [Int]
@@ -69,6 +78,9 @@
     | pred x = return x
     | otherwise = fail "assertion failed"
 
+assertError :: [Char] -> a
+assertError s = error ("[ASSERT FAILED] " ++ s)
+
 seqList :: [a] -> [a]
 seqList xs =
     loop xs
@@ -115,18 +127,3 @@
     case (lookup node alist, lookup node' alist) of
       (Just n, Just n') -> n >= n'
       _ -> True
-
-failwith :: MonadFail m => String -> Bool -> m ()
-failwith msg test =
-    case test of
-      True -> return ()
-      False -> fail msg
-
-concatMapM :: (Monad m) => (a -> m [b]) -> [a] -> m [b]
-concatMapM fn ins =
-    do
-       res <- mapM fn ins
-       return (concat res)
-
-assertError :: [Char] -> a
-assertError s = error ("[ASSERT FAILED] " ++ s)
diff --git a/src/CPSA/LoadFormulas.hs b/src/CPSA/LoadFormulas.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/LoadFormulas.hs
@@ -0,0 +1,557 @@
+-- Loads formulas from S-expressions as part of the CPSA loader process.
+
+-- Copyright (c) 2009 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module CPSA.LoadFormulas
+    (loadSentence,
+     sortedVarsOfStrings,
+     sortedVarsOfNames,
+     varsInTerm,
+     loadTerms,
+     loadFactList, loadDisjuncts, loadConclusions, loadConclusion,
+     VarListSpec, Mode(..),
+     lookupRole) where
+
+import Control.Monad
+
+import qualified Data.List as L
+import CPSA.Lib.SExpr
+import CPSA.Signature
+import CPSA.Algebra
+import CPSA.Protocol
+-- import CPSA.Characteristic
+
+{--
+import System.IO.Unsafe
+z :: Show a => a -> b -> b
+z x y = unsafePerformIO (print x >> return y)
+
+zz :: Show a => a -> a
+zz x = z x x
+--}
+
+-- Moved this to Algebra.hs:
+-- type VarListSpec = [(String,[String])]
+
+showst :: Term -> ShowS
+showst t =
+    shows $ displayTerm (addToContext emptyContext [t]) t
+
+sortedVarsOfNames :: Sig -> Gen -> String -> [String] -> (Gen, [Term])
+sortedVarsOfNames sig g sortName =
+    L.foldr
+    (\name (g,vs) ->
+         let (g', v) = newVar sig g name sortName in
+         (g', (v : vs)))
+    (g, [])
+
+sortedVarsOfStrings :: Sig -> Gen -> VarListSpec -> (Gen,[Term])
+sortedVarsOfStrings sig g =
+    foldr (\(s,varnames) (g,soFar) ->
+               let (g', vars) = sortedVarsOfNames sig g s varnames in
+               (g', vars ++ soFar))
+              (g,[])
+
+varsInTerm :: Term -> [Term]
+varsInTerm t =
+    foldVars (\vars v -> v : vars) [] t
+
+{--
+
+-- These two next procedures were unused.
+
+varOfName :: MonadFail m => [AForm] -> String -> m Term
+varOfName aforms s =
+    case (foldr (\aform vars -> filter (((==) s) . varName)
+                                $ aFreeVars vars aform)
+          []                          -- no vars to begin with
+          aforms) of
+      [v] -> return v
+      [] -> fail ("varOfName:  Variable of name "
+                  ++ s ++ "not found in formulas "
+                         ++ (show aforms))
+      _ -> fail ("varOfName:  Multiple variables of name "
+                 ++ s ++ "found in formulas "
+                        ++ (show aforms))
+
+-- Given a conjunction (list of AForms) and a variable specification,
+-- we would like to retrieve, for each of the variable names in the
+-- variable specification, a unique variable occurring in the
+-- conjunction with that name.  We return them in the same order as in
+-- the variable specification.
+
+-- This procedure fails if there is no variable of a given name, or if
+-- there are more than one.
+
+varsOfVarSpecList :: MonadFail m => [AForm] -> VarListSpec -> m [Term]
+varsOfVarSpecList aforms [] = return []
+varsOfVarSpecList aforms ((_, names) : rest) =
+    do
+      varsRest <- varsOfVarSpecList aforms rest
+      newVars <- (mapM (varOfName aforms) names)
+      return (newVars ++ varsRest)
+
+--}
+
+loadTerms :: MonadFail m => Sig -> [Term] -> [SExpr Pos] -> m [Term]
+loadTerms sig vars =
+    mapM (loadTerm sig vars False)
+
+loadFactList :: MonadFail m => Sig -> [Term] ->
+                [SExpr Pos] -> m [(String, [Term])]
+loadFactList sig vars =
+    mapM (loadAFact sig vars)
+
+loadAFact :: MonadFail m => Sig -> [Term] -> SExpr Pos -> m (String, [Term])
+loadAFact sig vars (L _ (S _ name : fs)) =
+    do
+      fs <- mapM (loadTerm sig vars False) fs
+      return $ (name, fs)
+loadAFact _ _ x = fail (shows (annotation x) "Malformed fact")
+
+lookupRole :: MonadFail m => Pos -> Prot -> String -> m Role
+lookupRole _ p role  | role == "" =
+    return $ listenerRole p
+lookupRole pos p role =
+    case L.find (\r -> role == rname r) (roles p) of
+      Nothing ->
+          fail (shows pos $ "Role " ++ role ++ " not found in " ++ pname p)
+      Just r -> return r
+
+data Mode
+  = RoleSpec
+  | UnusedVars
+  | Liberal
+
+-- Load a single security goal, a universally quantified formula
+-- Returns the goal and the antecedent with position information.
+
+loadSentence :: MonadFail m => Sig -> Mode -> Pos -> Prot -> Gen ->
+                SExpr Pos -> m (Gen, Goal, Conj)
+loadSentence sig md _ prot g (L pos [S _ "forall", L _ vs, x]) =
+  do
+    (g, vars) <- loadVars sig g vs
+    loadImplication sig md pos prot g vars x
+loadSentence _ _ pos _ _ _ = fail (shows pos "Bad goal sentence:  No forall")
+
+-- Load the top-level implication of a security goal
+
+loadImplication :: MonadFail m => Sig -> Mode -> Pos -> Prot -> Gen ->
+                   [Term] -> SExpr Pos -> m (Gen, Goal, Conj)
+loadImplication sig md _ prot g vars (L pos [S _ "implies", a, c]) =
+  do
+    antec <- loadCheckedConj sig md pos prot vars vars a
+    (g, vc) <- loadConclusion sig pos prot g vars c
+    let f (evars, form) = (evars, map snd form)
+    let consq = map f vc        -- Expunge position info
+    let goal =
+          Goal { uvars = vars,
+                 antec = map snd antec,
+                 consq = consq,
+                 concl = map snd consq }
+    return (g, goal, antec)
+loadImplication _ _ pos _ _ _ _ = fail (shows pos "Bad goal implication")
+
+-- To load a number of conclusions from an SExpr
+
+loadConclusions :: MonadFail m => Sig -> Prot -> Gen -> [Term] ->
+                  [SExpr Pos] -> m (Gen, [[([Term], Conj)]])
+loadConclusions _ _ g _ [] = return (g,[])
+loadConclusions sig prot g vars (x : rest) =
+    do
+      (g,newConcl) <- loadConclusion sig (annotation x) prot g vars x
+      (g',concls) <- loadConclusions sig prot g vars rest
+      return (g', newConcl : concls)
+
+-- The conclusion must be a disjunction.  Each disjunct may introduce
+-- existentially quantified variables.
+
+loadConclusion :: MonadFail m => Sig -> Pos -> Prot -> Gen -> [Term] ->
+                  SExpr Pos -> m (Gen, [([Term], Conj)])
+loadConclusion _ _ _ g _ (L _ [S _ "false"]) = return (g, [])
+loadConclusion sig _ prot g vars (L pos (S _ "or" : xs)) =
+  loadDisjuncts sig pos prot g vars xs []
+loadConclusion sig pos prot g vars x =
+  do
+    (g, a) <- loadExistential sig pos prot g vars x
+    return (g, [a])
+
+loadDisjuncts :: MonadFail m => Sig -> Pos -> Prot -> Gen -> [Term] ->
+                 [SExpr Pos] -> [([Term], Conj)] -> m (Gen, [([Term], Conj)])
+loadDisjuncts _ _ _ g _ [] rest = return (g, reverse rest)
+loadDisjuncts sig pos prot g vars (x : xs) rest =
+  do
+    (g, a) <- loadExistential sig pos prot g vars x
+    loadDisjuncts sig pos prot g vars xs (a : rest)
+
+loadExistential :: MonadFail m => Sig -> Pos -> Prot -> Gen -> [Term] ->
+                   SExpr Pos -> m (Gen, ([Term], Conj))
+loadExistential sig _ prot g vars (L pos [S _ "exists", L _ vs, x]) =
+  do
+    (g, evars) <- loadVars sig g vs
+    as <- loadCheckedConj sig -- RoleSpec
+          --UnusedVars
+          Liberal pos prot (evars ++ vars) evars x
+    return (g, (evars, as))
+loadExistential sig pos prot g vars x =
+  do
+    as <- loadCheckedConj sig RoleSpec pos prot vars [] x
+    return (g, ([], as))
+
+-- Load a conjunction and check the result as determined by the mode
+-- md.
+
+loadCheckedConj :: MonadFail m => Sig -> Mode -> Pos -> Prot -> [Term] ->
+                   [Term] -> SExpr Pos -> m Conj
+loadCheckedConj sig RoleSpec pos prot vars unbound x =
+  loadRoleSpecific sig pos prot vars unbound x
+loadCheckedConj sig UnusedVars pos prot vars unbound x =
+  loadUsedVars sig pos prot vars unbound x
+loadCheckedConj sig Liberal pos prot vars unbound x =
+  loadLiberalVars sig pos prot vars unbound x
+
+--- Load a conjunction of atomic formulas and ensure the formula is
+--- role specific.
+
+loadRoleSpecific :: MonadFail m => Sig -> Pos -> Prot -> [Term] ->
+                    [Term] -> SExpr Pos -> m Conj
+loadRoleSpecific sig pos prot vars unbound x =
+  do
+    as <- loadConjunction sig pos prot vars x
+    let as' = L.sortBy (\(_, x) (_, y) -> aFormOrder x y) as
+    -- Remove vars that are in facts
+    let unbound' = foldl factSpecific unbound as'
+    unbound <- foldM roleSpecific unbound' as'
+    case unbound of
+      [] -> return as'
+      (v : _) -> fail (shows (annotation x) (showst v " not used"))
+
+-- Load a conjunction of atomic formulas and ensure that all declared
+-- variables are used.
+
+loadUsedVars :: MonadFail m => Sig -> Pos -> Prot -> [Term] ->
+                [Term] -> SExpr Pos -> m Conj
+loadUsedVars sig pos prot vars unbound x =
+  do
+    as <- loadConjunction sig pos prot vars x
+    -- Compute the free variables in the conjunction
+    let f vars (_, form) = aFreeVars vars form
+    case unbound L.\\ foldl f [] as of
+      [] -> return as
+      (v : _) -> fail (shows (annotation x) (showst v " not used"))
+
+-- Load a conjunction of atomic formulas, but don't ensure that all
+-- declared variables are used.
+
+loadLiberalVars :: MonadFail m => Sig -> Pos -> Prot -> [Term] ->
+                [Term] -> SExpr Pos -> m Conj
+loadLiberalVars sig pos prot vars _ x =
+  do
+    as <- loadConjunction sig pos prot vars x
+    return as
+
+-- Load a conjunction of atomic formulas
+
+loadConjunction :: MonadFail m => Sig -> Pos -> Prot -> [Term] ->
+                   SExpr Pos -> m Conj
+loadConjunction sig _ p kvars (L pos (S _ "and" : xs)) =
+  loadConjuncts sig pos p kvars xs []
+loadConjunction sig top p kvars x =
+  do
+    (pos, a) <- loadPrimary sig top p kvars x
+    return [(pos, a)]
+
+loadConjuncts :: MonadFail m => Sig -> Pos -> Prot -> [Term] ->
+                 [SExpr Pos] -> Conj -> m Conj
+loadConjuncts _ _ _ _ [] rest = return (reverse rest)
+loadConjuncts sig top p kvars (x : xs) rest =
+  do
+    (pos, a) <- loadPrimary sig top p kvars x
+    loadConjuncts sig top p kvars xs ((pos, a) : rest)
+
+-- Load the atomic formulas
+
+loadPrimary :: MonadFail m => Sig -> Pos -> Prot -> [Term] ->
+               SExpr Pos -> m (Pos, AForm)
+loadPrimary sig _ _ kvars (L pos [S _ "=", x, y]) =
+  do
+    t <- loadTerm sig kvars False x
+    t' <- loadTerm sig kvars False y
+    case isStrdVar t == isStrdVar t' of
+      True -> return (pos, Equals t t')
+      False -> fail (shows pos "Sort mismatch in equality")
+loadPrimary sig _ _ kvars (L pos [S _ "component", x, y]) =
+  do
+    t <- loadTerm sig kvars False x
+    t' <- loadTerm sig kvars False y
+    case isStrdVar t || isStrdVar t' of
+      True -> fail (shows pos "Strand variable in component formula")
+      False -> return (pos, Component t t')
+loadPrimary sig _ _ kvars (L pos [S _ "non", x]) =
+  do
+    t <- loadAlgTerm sig kvars x
+    return (pos, Non t)
+loadPrimary sig _ _ kvars (L pos [S _ "pnon", x]) =
+  do
+    t <- loadAlgTerm sig kvars x
+    return (pos, Pnon t)
+loadPrimary sig _ _ kvars (L pos [S _ "uniq", x]) =
+  do
+    t <- loadAlgTerm sig kvars x
+    return (pos, Uniq t)
+loadPrimary sig _ _ kvars (L pos [S _ "uniq-at", x, y, z]) =
+  do
+    t <- loadAlgTerm sig kvars x
+    t' <- loadNodeTerm sig kvars y z
+    return (pos, UniqAt t t')
+loadPrimary sig _ _ kvars (L pos [S _ "ugen", x]) =
+  do
+    t <- loadAlgTerm sig kvars x
+    return (pos, Ugen t)
+loadPrimary sig _ _ kvars (L pos [S _ "ugen-at", x, y, z]) =
+  do
+    t <- loadAlgTerm sig kvars x
+    t' <- loadNodeTerm sig kvars y z
+    return (pos, UgenAt t t')
+loadPrimary sig _ _ kvars (L pos [S _ "gen-st", x]) =
+  do
+    t <- loadAlgTerm sig kvars x
+    return (pos, GenStV t)
+loadPrimary sig _ _ kvars (L pos [S _ "conf", x]) =
+  do
+    t <- loadChanTerm sig kvars x
+    return (pos, Conf t)
+loadPrimary sig _ _ kvars (L pos [S _ "auth", x]) =
+  do
+    t <- loadChanTerm sig kvars x
+    return (pos, Auth t)
+loadPrimary sig _ _ kvars (L pos (S _ "fact" : S _ name : fs)) =
+  do
+    fs <- loadTerms sig kvars fs
+    return (pos, AFact name fs)
+loadPrimary sig _ _ kvars (L pos [S _ "comm-pr", w, x, y, z]) =
+  do
+    t <- loadNodeTerm sig kvars w x
+    t' <- loadNodeTerm sig kvars y z
+    return (pos, Commpair t t')
+loadPrimary sig _ _ kvars (L pos [S _ "same-locn", w, x, y, z]) =
+  do
+    t <- loadNodeTerm sig kvars w x
+    t' <- loadNodeTerm sig kvars y z
+    return (pos, SameLocn t t')
+loadPrimary sig _ _ kvars (L pos [S _ "state-node", w, x]) =
+  do
+    t <- loadNodeTerm sig kvars w x
+    return (pos, StateNode t)
+loadPrimary sig _ _ kvars (L pos [S _ "trans", w, x]) =
+  do
+    t <- loadNodeTerm sig kvars w x
+    return (pos, Trans t)
+loadPrimary sig _ _ kvars (L pos [S _ "leads-to", w, x, y, z]) =
+  do
+    t <- loadNodeTerm sig kvars w x
+    t' <- loadNodeTerm sig kvars y z
+    return (pos, LeadsTo t t')
+
+loadPrimary sig _ _ kvars (L pos [S _ "prec", w, x, y, z]) =
+  do
+    t <- loadNodeTerm sig kvars w x
+    t' <- loadNodeTerm sig kvars y z
+    case fst t == fst t' of
+      True -> fail (shows pos "Malformed pair -- nodes in same strand")
+      False -> return (pos, Prec t t')
+loadPrimary sig _ p kvars (L pos [S _ "p", Q _ name, x, N _ h]) =
+  do
+    r <- lookupRole pos p name
+    t <- loadStrdTerm sig kvars x
+    case h <= 0 || h > length (rtrace r) of
+      True -> fail (shows pos "Bad length")
+      False -> return (pos, Length r t (indxOfInt h))
+loadPrimary sig _ p kvars (L pos [S _ "p", Q _ name, x, ht]) =
+  do
+    r <- lookupRole pos p name
+    t <- loadStrdTerm sig kvars x
+    h <- loadTerm sig kvars False ht
+    return (pos, Length r t h)
+loadPrimary sig _ p kvars (L pos [S _ "p", Q _ name, Q var x, y, z]) =
+  do
+    r <- lookupRole pos p name
+    v <- loadAlgChanTerm sig (rvars r) (S var x)
+    s <- loadStrdTerm sig kvars y
+    t <- loadAlgChanTerm sig kvars z
+    case isVar v of
+      False -> fail (shows pos ("Bad parameter -- not a variable" ++ (show v)))
+      True ->
+        case firstOccurs v r of
+          Just i -> return (pos, Param r v (i + 1) s t)
+          Nothing ->
+            fail (shows pos ("parameter " ++ x ++ " not in role " ++ name))
+loadPrimary _ _ _ _ (L pos (S _ "p" : Q _ name : _)) =
+  fail (shows pos ("Bad protocol specific formula for role " ++ name))
+loadPrimary _ _ _ _ (L pos (S _ pred : _)) =
+  fail (shows pos ("Bad formula for predicate " ++ pred))
+loadPrimary _ pos _ _ _ = fail (shows pos "Bad formula")
+
+-- Load a term and make sure it does not have sort strd, indx, locn, or chan
+
+loadAlgTerm :: MonadFail m => Sig -> [Term] -> SExpr Pos -> m Term
+loadAlgTerm sig ts x =
+  do
+    t <- loadTerm sig ts False x
+    case isStrdVar t || isIndxVar t || isIndxConst t || isChan t || isLocn t of
+      True -> fail (shows (annotation x) "Expecting an algebra term")
+      False -> return t
+-- Load a term and make sure it does not have sort strd, or indx
+
+loadAlgChanTerm :: MonadFail m => Sig -> [Term] -> SExpr Pos -> m Term
+loadAlgChanTerm sig ts x =
+  do
+    t <- loadTerm sig ts False x
+    case isStrdVar t || isIndxVar t || isIndxConst t of
+      True -> fail (shows (annotation x)
+                    "Expecting an algebra term or a channel")
+      False -> return t
+
+-- Load a term and make sure it has sort chan
+
+loadChanTerm :: MonadFail m => Sig -> [Term] -> SExpr Pos -> m Term
+loadChanTerm sig ts x =
+  do
+    t <- loadTerm sig ts False x
+    case isChan t of
+      True -> return t
+      False -> fail (shows (annotation x) "Expecting a channel variable")
+
+-- Load a term and make sure it has sort strd
+
+loadStrdTerm :: MonadFail m => Sig -> [Term] -> SExpr Pos -> m Term
+loadStrdTerm sig ts x =
+  do
+    t <- loadTerm sig ts False x
+    case isStrdVar t of
+      True -> return t
+      False -> fail (shows (annotation x) "Expecting a strand variable")
+
+-- Load a term and make sure it has sort indx
+
+loadIndxTerm :: MonadFail m => Sig -> [Term] -> SExpr Pos -> m Term
+loadIndxTerm sig ts x =
+  do
+    t <- loadTerm sig ts False x
+    case isIndxVar t of
+      True -> return t
+      False ->
+        case isIndxConst t of
+          True -> return t
+          False -> fail (shows (annotation x) "Expecting an indx variable")
+
+-- Load a term and make sure it describes a node
+
+loadNodeTerm :: MonadFail m => Sig -> [Term] -> SExpr Pos ->
+                SExpr Pos -> m NodeTerm
+loadNodeTerm sig ts x (N _ i) | i >= 0 =
+  do
+    t <- loadStrdTerm sig ts x
+    return (t, indxOfInt i)
+loadNodeTerm sig ts x v =
+  do
+    t <- loadStrdTerm sig ts x
+    t' <- loadIndxTerm sig ts v
+    return (t, t')
+
+-- Role specific check
+
+termVars :: Term -> [Term]
+termVars t = addVars [] t
+
+allBound :: [Term] -> Term -> Bool
+allBound unbound t =
+  L.all (flip L.notElem unbound) (termVars t)
+
+-- Returns variables in unbound that are not role specific
+
+roleSpecific :: MonadFail m => [Term] -> (Pos, AForm) -> m [Term]
+roleSpecific unbound (_, Length _ z _) =
+  return $ L.delete z unbound
+roleSpecific unbound (pos, Param _ _ _ z t)
+  | L.notElem z unbound = return $ unbound L.\\ termVars t
+  | otherwise = fail (shows pos "Unbound variable in parameter predicate")
+roleSpecific unbound (pos, Prec (z, _) (z', _))
+  | L.notElem z unbound && L.notElem z' unbound = return unbound
+  | otherwise = fail (shows pos "Unbound variable in prec")
+roleSpecific unbound (pos, Non t)
+  | allBound unbound t = return unbound
+  | otherwise = fail (shows pos "Unbound variable in non")
+roleSpecific unbound (pos, Pnon t)
+  | allBound unbound t = return unbound
+  | otherwise = fail (shows pos "Unbound variable in pnon")
+roleSpecific unbound (pos, Uniq t)
+  | allBound unbound t = return unbound
+  | otherwise = fail (shows pos "Unbound variable in uniq")
+roleSpecific unbound (pos, UniqAt t (z, _))
+  | allBound unbound t && L.notElem z unbound = return unbound
+  | otherwise = fail (shows pos "Unbound variable in uniq-at")
+roleSpecific unbound (pos, Ugen t)
+  | allBound unbound t = return unbound
+  | otherwise = fail (shows pos "Unbound variable in ugen")
+roleSpecific unbound (pos, UgenAt t (z, _))
+  | allBound unbound t && L.notElem z unbound = return unbound
+  | otherwise = fail (shows pos "Unbound variable in ugen-at")
+roleSpecific unbound (pos, GenStV t)
+  | allBound unbound t = return unbound
+  | otherwise = fail (shows pos "Unbound variable in gen-st")
+roleSpecific unbound (pos, Conf t)
+  | allBound unbound t = return unbound
+  | otherwise = fail (shows pos "Unbound variable in conf")
+roleSpecific unbound (pos, Auth t)
+  | allBound unbound t = return unbound
+  | otherwise = fail (shows pos "Unbound variable in auth")
+roleSpecific unbound (pos, AFact _ fs)
+  | all (allBound unbound) fs = return unbound
+  | otherwise = fail (shows pos "Unbound variable in fact")
+roleSpecific unbound (pos, Commpair (z, _) (z', _))
+  | L.notElem z unbound && L.notElem z' unbound = return unbound
+  | otherwise = fail (shows pos "Unbound variable in comm-pr")
+roleSpecific unbound (pos, LeadsTo (z, _) (z', _))
+  | L.notElem z unbound && L.notElem z' unbound = return unbound
+  | otherwise = fail (shows pos "Unbound variable in leads-to")
+roleSpecific unbound (pos, StateNode (z, _))
+  | L.notElem z unbound = return unbound
+  | otherwise = fail (shows pos "Unbound variable in state-node")
+roleSpecific unbound (pos, Trans (z, _))
+  | L.notElem z unbound = return unbound
+  | otherwise = fail (shows pos "Unbound variable in trans")
+roleSpecific unbound (pos, SameLocn (z, i) (z', i'))
+  | L.notElem z unbound && L.notElem z' unbound &&
+    L.notElem i unbound && L.notElem i' unbound = return unbound
+  | otherwise = fail (shows pos "Unbound variable in same-locn")
+
+roleSpecific unbound (pos, Equals t t')
+  | isStrdVar t && isStrdVar t' =
+    case L.notElem t unbound && L.notElem t' unbound of
+      True -> return unbound
+      False -> fail (shows pos "Unbound variable in equals")
+  | isStrdVar t = fail (shows pos "Type mismatch in equals")
+  | isStrdVar t' = fail (shows pos "Type mismatch in equals")
+  | allBound unbound t && allBound unbound t' = return unbound
+  | otherwise = fail (shows pos "Unbound variable in equals")
+
+roleSpecific unbound (pos, Component t t')
+  | isStrdVar t && isStrdVar t' =
+    case L.notElem t unbound && L.notElem t' unbound of
+      True -> return unbound
+      False -> fail (shows pos "Unbound variable in component")
+  | isStrdVar t = fail (shows pos "Type mismatch in component")
+  | isStrdVar t' = fail (shows pos "Type mismatch in component")
+  | allBound unbound t && allBound unbound t' = return unbound
+  | otherwise = fail (shows pos "Unbound variable in component")
+
+-- Remove unbound message variables that occur in a fact
+factSpecific :: [Term] -> (Pos, AForm) -> [Term]
+factSpecific unbound (_, AFact _ fs) =
+  unbound L.\\ foldl addVars [] (L.filter (not . isStrdVar) fs)
+factSpecific unbound _ = unbound
diff --git a/src/CPSA/Loader.hs b/src/CPSA/Loader.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Loader.hs
@@ -0,0 +1,1057 @@
+-- Loads protocols and preskeletons from S-expressions.
+
+-- Copyright (c) 2009 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module CPSA.Loader (loadSExprs) where
+
+import Control.Monad
+
+import qualified Data.List as L
+import qualified Data.Foldable as F
+import Data.Maybe (isJust)
+import CPSA.Lib.Utilities
+import CPSA.Lib.ReturnFail
+import CPSA.Lib.SExpr
+import CPSA.Signature (Sig, loadSig)
+import CPSA.Algebra
+import CPSA.Channel
+import CPSA.Protocol
+import CPSA.Strand
+import CPSA.Characteristic
+import CPSA.LoadFormulas
+import CPSA.GenRules
+
+{--
+import System.IO.Unsafe
+z :: Show a => a -> b -> b
+z x y = unsafePerformIO (print x >> return y)
+
+zz :: Show a => a -> a
+zz x = z x x
+--}
+
+-- Load protocols and preskeletons from a list of S-expressions, and
+-- then return a list of preskeletons.  The name of the algebra is
+-- nom, and its variable generator is provided.
+
+loadSExprs :: MonadFail m => Sig -> String -> Gen -> [SExpr Pos] -> m [Preskel]
+loadSExprs sig nom origin xs =
+    do
+      (_, ks) <- foldM (loadSExpr sig nom origin) ([], []) xs
+      return (reverse ks)
+
+loadSExpr :: MonadFail m => Sig -> String -> Gen -> ([Prot], [Preskel]) ->
+             SExpr Pos -> m ([Prot], [Preskel])
+loadSExpr sig nom origin (ps, ks) (L pos (S _ "defprotocol" : xs)) =
+    do
+      p <- loadProt sig nom origin pos xs
+      return (p : ps, ks)
+loadSExpr _ _ _ (ps, ks) (L pos (S _ "defskeleton" : xs)) =
+    do
+      k <- findPreskel pos ps xs
+      return (ps, k : ks)
+loadSExpr _ _ _ (ps, ks) (L pos (S _ "defgoal" : xs)) =
+    do
+      k <- findGoal pos ps xs
+      return (ps, k : ks)
+loadSExpr _ _ _ (ps, ks) (L _ (S _ "comment" : _)) = return (ps, ks)
+loadSExpr _ _ _ (ps, ks) (L _ (S _ "herald" : _)) = return (ps, ks)
+loadSExpr _ _ _ _ x = fail (shows (annotation x) "Malformed input")
+
+-- load a protocol
+
+loadProt :: MonadFail m => Sig -> String -> Gen -> Pos ->
+            [SExpr Pos] -> m Prot
+loadProt sig nom origin pos (S _ name : S _ alg : x : xs)
+    | alg /= nom =
+        fail (shows pos $ "Expecting terms in algebra " ++ nom)
+    | otherwise =
+        do
+          sig <- loadLang pos sig xs
+          (gen, rolesAndPreRules, rest) <- loadRoles sig origin (x : xs)
+          (gen', r) <- mkListenerRole sig pos gen
+          let rs = map fst rolesAndPreRules
+
+          -- let _ = zz (showRoleGenStates rolesAndPreRules)
+
+          -- let (gen, rls) = initRules sig (any hasLocn rs) gen' stateRules nonStateRules
+
+          -- Fake protocol is used only for loading user defined rules
+          let fakeProt = mkProt name alg gen sig rs r
+                         []     -- was rls
+                         []     -- user-written rules
+                         []   -- loader-generated rules was rls
+                         []
+
+          (gen, forgettableRls, memorableRls) <- initRules sig gen' fakeProt rolesAndPreRules
+
+          (gen, newRls, comment) <- loadRules sig fakeProt gen rest
+          -- Check for duplicate role names
+          (validate
+           (mkProt name alg gen sig rs r
+                       (newRls ++ forgettableRls ++ memorableRls)
+                       (newRls ++ memorableRls)  -- user-written rules
+                       forgettableRls -- loader-regenerated rules
+                       comment)
+           rs)
+    where
+      validate prot [] = return prot
+      validate prot (r : rs) =
+          case L.find (\r' -> rname r == rname r') rs of
+            Nothing -> validate prot rs
+            Just _ ->
+                let msg = "Duplicate role " ++ rname r ++
+                          " in protocol " ++ name in
+                fail (shows pos msg)
+loadProt _ _ _ pos _ = fail (shows pos "Malformed protocol")
+
+-- Optionally load a lang field in a protocol.
+loadLang :: MonadFail m => Pos -> Sig -> [SExpr Pos] -> m Sig
+loadLang pos _ xs | hasKey "lang" xs = loadSig pos (assoc "lang" xs)
+loadLang _ sig _ | otherwise = return sig
+
+loadRoles :: MonadFail m => Sig -> Gen -> [SExpr Pos] ->
+             m (Gen, [(Role,PreRules)], [SExpr Pos])
+loadRoles sig gen (L pos (S _ "defrole" : x) : xs) =
+    do
+      (gen, r, pr) <- loadRole sig gen pos x
+      (gen, rolesAndPreRules, comment) <- loadRoles sig gen xs
+      return (gen, (r,pr) : rolesAndPreRules, comment)
+loadRoles _ gen comment =
+    return (gen, [], comment)
+
+loadRole :: MonadFail m => Sig -> Gen -> Pos ->
+            [SExpr Pos] -> m (Gen, Role, PreRules)
+loadRole sig gen pos (S _ name :
+                      L _ (S _ "vars" : vars) :
+                      L _ (S _ "trace" : evt : c) :
+                      rest) =
+    do
+      (gen, vars) <- loadVars sig gen vars
+      (gen, vars, pt_u, pr_t, c) <-
+          -- critical section indices computed below
+          loadTrace sig gen vars (evt : c)
+      n <- loadPosBaseTerms sig vars (assoc "non-orig" rest)
+      a <- loadPosBaseTerms sig vars (assoc "pen-non-orig" rest)
+      u <- loadBaseTerms sig vars (assoc "uniq-orig" rest)
+      g <- loadBaseTerms sig vars (assoc "uniq-gen" rest)
+      b <- mapM (loadAbsent sig vars) (assoc "absent" rest)
+      d <- loadBaseTerms sig vars (assoc "conf" rest)
+      h <- loadBaseTerms sig vars (assoc "auth" rest)
+      cs <- loadCritSecs (assoc "critical-sections" rest)
+      let genstates = (assoc "gen-st" rest)
+      let facts = (assoc "facts" rest)
+      let assumes = (assoc "assume" rest)
+
+      let keys = ["non-orig", "pen-non-orig", "uniq-orig",
+                  "uniq-gen", "absent", "conf", "auth"]
+
+      comment <- alist keys rest
+      let reverseSearch = hasKey "reverse-search" rest
+      let ts = tterms c
+      let bs = concatMap (\(x, y) -> [x, y]) b
+      case termsWellFormed (map snd n ++ map snd a ++ u ++ g ++ bs ++ ts) of
+        False -> fail (shows pos "Terms in role not well formed")
+        True -> return ()
+      case L.all isChan (d ++ h) of
+        False -> fail (shows pos "Bad channel in role")
+        True -> return ()
+      -- Drop unused variable declarations
+      let f v = elem v (varsInTerms ts) || elem v (tchans c)
+      let vs = L.filter f vars
+      -- Drop rnons that refer to unused variable declarations
+      let ns = L.filter (varsSeen vs . snd) n
+      -- Drop rpnons that refer to unused variable declarations
+      let as = L.filter (varsSeen vs . snd) a
+      -- Drop runiques that refer to unused variable declarations
+      let us = L.filter (varsSeen vs) (u ++ pt_u)
+      let gs = L.filter (varsSeen vs) g
+      prios <- mapM (loadRolePriority (length c)) (assoc "priority" rest)
+
+      let stateSegs = stateSegments c
+      case all (flip checkCs stateSegs) cs of
+        False -> fail (shows pos "Critical sections in role not within state segments")
+        True -> return ()
+
+      let r = mkRole name vs c ns as us gs b d h comment prios reverseSearch
+
+      let pr = pr_t { preruleCs = stateSegs,
+                      preruleTrans = transitionIndices c,
+                      preruleFacts = facts,
+                      preruleGensts = genstates,
+                      preruleAssumes = assumes }
+
+--         let (gen', transRls) = transRules sig gen r (transitionIndices c)
+--         -- :: Gen -> Role -> [Int] -> (Gen, [Rule])
+--         let (gen'', csRls) = csRules sig gen' r cs
+--         let (gen''', gsRls) = genStateRls sig gen'' r genstates
+--         let (genFour, factRls) = genFactRls sig gen''' r facts
+
+      case roleWellFormed r of
+        Return () -> return (gen, r, pr
+                           --  (gsRls ++ csRls ++ transRls),
+                           --  factRls
+                            )
+        Fail msg -> fail (shows pos $ showString "Role not well formed: " msg)
+loadRole _ _ pos _ = fail (shows pos "Malformed role")
+
+loadRolePriority :: MonadFail m => Int -> SExpr Pos -> m (Int, Int)
+loadRolePriority n (L _ [N _ i, N _ p])
+    | 0 <= i && i < n = return (i, p)
+loadRolePriority _ x = fail (shows (annotation x) "Malformed priority")
+
+-- Are the vars in t a subset of ones in t.
+varsSeen :: [Term] -> Term -> Bool
+varsSeen vs t =
+    all (flip elem vs) (addVars [] t)
+
+data PreRules = PreRules { preruleCs      :: [(Int,Int)],
+                           preruleTrans   :: [(Int,Int)],
+                           preruleFacts   :: [SExpr Pos],
+                           preruleGensts  :: [SExpr Pos],
+                           preruleAssumes :: [SExpr Pos],
+                           preruleRelies  :: [(Int, SExpr Pos)],
+                           preruleGuars   :: [(Int, SExpr Pos)],
+                           preruleCheqs   :: [(Int, Pos, Term, Term)]
+                         }
+
+emptyPreRules :: PreRules
+emptyPreRules = PreRules { preruleCs = [],
+                           preruleTrans = [],
+                           preruleFacts = [],
+                           preruleGensts = [],
+                           preruleAssumes = [],
+                           preruleRelies  = [],
+                           preruleGuars  = [],
+                           preruleCheqs = []}
+
+preRulesAddRely :: PreRules -> (Int, SExpr Pos) -> PreRules
+preRulesAddRely pr new = pr { preruleRelies = new : preruleRelies pr }
+
+preRulesAddGuar :: PreRules -> (Int, SExpr Pos) -> PreRules
+preRulesAddGuar pr new = pr { preruleGuars = new : preruleGuars pr }
+
+preRulesAddCheq :: PreRules -> (Int, Pos, Term, Term) -> PreRules
+preRulesAddCheq pr new = pr { preruleCheqs = new : preruleCheqs pr }
+
+-- A role is well formed if all non-base variables are receive bound,
+-- each atom declared to be uniquely-originating originates in
+-- the trace, and every variable that occurs in each atom
+-- declared to be non-originating occurs in some term in the trace,
+-- and the atom must never be carried by any term in the trace.
+roleWellFormed :: MonadFail m => Role -> m ()
+roleWellFormed role =
+    do
+      failwith "a variable in non-orig is not in trace"
+                   $ varSubset (map snd $ rnon role) terms
+      failwith "a variable in pen-non-orig is not in trace"
+                   $ varSubset (map snd $ rpnon role) terms
+      mapM_ nonCheck $ rnon role
+      mapM_ lenCheck $ rnon role
+      mapM_ lenCheck $ rpnon role
+      mapM_ uniqueCheck $ runique role
+      mapM_ uniqgenCheck $ runiqgen role
+      mapM_ origVarCheck $ rvars role
+      failwith "role trace is a prefix of a listener"
+                   $ notListenerPrefix $ rtrace role
+      failwith "role trace has stor with no previous load"
+                   $ balancedStores $ rtrace role
+    where
+      terms = tterms (rtrace role)
+      nonCheck (_, t) =
+          failwith (showString "non-orig " $ showst t " carried")
+                       $ all (not . carriedBy t) terms
+      lenCheck (Nothing, _) = return ()
+      lenCheck (Just len, _) | len >= length (rtrace role) =
+          fail $ showString "invalid position " $ show len
+      lenCheck (Just len, t) | otherwise =
+          case usedPos t (rtrace role) of
+            Just p | p <= len -> return ()
+            Just _ -> fail $ showst t
+                      $ showString " appears after position " $ show len
+            Nothing -> fail msg
+          where
+            msg = "no used position for non-originating atom " ++ showst t ""
+      uniqueCheck t =
+          failwith (showString "uniq-orig " $ showst  t " doesn't originate")
+                       $ originates t (rtrace role)
+      uniqgenCheck t =
+          failwith (showString "uniq-gen " $ showst  t " doesn't generate")
+                       $ generates t (rtrace role)
+      origVarCheck v =
+          failwith (showString "variable " $ showst v " not acquired")
+                       $ not (isAcquiredVar v) ||
+                         isJust (acquiredPos v (rtrace role))
+
+--   noBareStore :: Trace -> Bool
+--   noBareStore c =
+--       check c Nothing
+--       where
+--         check [] _ = True
+--         check ((In (ChMsg ch _)) : c') _
+--             | isLocn ch              = check c' (Just ch)
+--             | otherwise              = check c' Nothing
+--         check ((Out (ChMsg ch _)) : c') (Just ch')
+--             | ch == ch'              = check c' Nothing
+--             | isLocn ch              = False
+--             | otherwise              = check c' Nothing
+--         check ((Out (ChMsg ch _)) : c') Nothing
+--             | isLocn ch              = False
+--             | otherwise              = check c' Nothing
+--         check (_ : c') _             = check c' Nothing
+
+balancedStores :: Trace -> Bool
+balancedStores c =
+    check c []
+    where
+      check [] _ = True
+      check ((In (ChMsg ch _)) : c') loads
+          | isLocn ch              = check c' (ch : loads)
+          | otherwise              = check c' []
+      check ((Out (ChMsg ch _)) : c') loads
+          | ch `elem` loads         = check c' loads
+          | isLocn ch              = False
+          | otherwise              = check c' []
+      check (_ : c') _             = check c' []
+
+-- Given a trace, return a list of pairs of indices.  The first member
+-- of each pair is the index of a state event.  If the state event is
+-- a stor, then the second member is equal to the first.  If the state
+-- event is a load, then there is a matching stor in the state
+-- segment, and the second member is its index.
+
+transitionIndices :: Trace -> [(Int, Int)]
+transitionIndices c =
+    reverse $ loop [] 0 c
+    where
+      loop so_far _ [] = so_far
+      loop so_far i ((Out (ChMsg ch _)) : c')
+           | isLocn ch              = loop ((i,i) : so_far) (i+1) c'
+           | otherwise              = loop so_far (i+1) c'
+      loop so_far i ((In (ChMsg ch _)) : c')
+           | isLocn ch              =
+               case subseqSend (i+1) ch c' of
+                 Just j             -> loop ((i,j) : so_far) (i+1) c'
+                 Nothing            -> loop so_far (i+1) c'
+           | otherwise              = loop so_far (i+1) c'
+      loop so_far i (_ : c')        = loop so_far (i+1) c'
+
+      subseqSend _ _ []             = Nothing
+      subseqSend j ch ((In (ChMsg _ _)) : c')
+                                    = subseqSend (j+1) ch c'
+      subseqSend j ch ((Out (ChMsg ch' _)) : c')
+          | ch == ch'               = Just j
+          | isLocn ch'              = subseqSend (j+1) ch c'
+          | otherwise               = Nothing
+      subseqSend _ _ (_ : _)        = Nothing
+
+loadCritSecs :: MonadFail m => [SExpr Pos] -> m [(Int, Int)]
+loadCritSecs [] = return []
+loadCritSecs (L pos [(N _ i), (N _ j)] : rest)
+    | j<i = fail (shows pos "loadCritSecs:  Bad int pair out of order")
+    | otherwise =
+        do
+          pairs <- loadCritSecs rest
+          return ((i,j) : pairs)
+loadCritSecs s = fail ("loadCritSecs:  Malformed int pairs: " ++ (show s))
+
+stateSegments :: Trace -> [(Int,Int)]
+stateSegments c =
+    findSegments [] 0 c
+    where
+      findSegments soFar _ [] = soFar
+      findSegments soFar i ((Out _) : c) =
+          findSegments soFar (i+1) c
+      findSegments soFar i ((In (Plain _)) : c) =
+          findSegments soFar (i+1) c
+      findSegments soFar i ((In (ChMsg ch _)) : c)
+          | isLocn ch           = findEnd soFar i (i+1) c False
+          -- the flag False means that no Outs have yet been observed
+          | otherwise            = findSegments soFar (i+1) c
+
+      -- findEnd scans for the end of the segment starting at start.
+      -- i is always the index of the start of c in the full trace.
+      -- The boolean flag is False until Outs have been observed.
+
+      findEnd soFar start i [] _                         = (start,(i-1)) : soFar
+
+      findEnd soFar start i ((In (Plain _)) : c) _       =
+          findSegments ((start,(i-1)) : soFar) (i+1) c
+      findEnd soFar start i ((Out (Plain _)) : c) _      =
+          findSegments ((start,(i-1)) : soFar) (i+1) c
+      findEnd soFar start i c@((In (ChMsg _ _)) : _) True =
+          findSegments ((start,(i-1)) : soFar)  i c
+      -- in th eprevious case we save the start of c for findSegments
+      -- to decide what to do.
+
+      findEnd soFar start i ((In (ChMsg ch _)) : c) False
+          | isLocn ch           = findEnd soFar start(i+1) c False
+          | otherwise           = findSegments ((start,(i-1)) : soFar) (i+1) c
+      findEnd soFar start i ((Out (ChMsg ch _)) : c) _
+          | isLocn ch           = findEnd soFar start (i+1) c True
+          | otherwise           = findSegments ((start,(i-1)) : soFar) (i+1) c
+
+checkCs :: (Int,Int) -> [(Int,Int)] -> Bool
+checkCs (i,j) =
+    any
+    (\(start,end) -> start <= i && j <= end)
+
+failwith :: MonadFail m => String -> Bool -> m ()
+failwith msg test =
+    case test of
+      True -> return ()
+      False -> fail msg
+
+showst :: Term -> ShowS
+showst t =
+    shows $ displayTerm (addToContext emptyContext [t]) t
+
+-- This is the only place a role is generated with an empty name.
+-- This is what marks a strand as a listener.
+mkListenerRole :: MonadFail m => Sig -> Pos -> Gen -> m (Gen, Role)
+mkListenerRole sig pos g =
+  do
+    (g, xs) <- loadVars sig g [L pos [S pos "x", S pos "mesg"]]
+    case xs of
+      [x] -> return (g, mkRole "" [x] [In $ Plain x, Out $ Plain x]
+                        [] [] [] [] [] [] [] [] [] False)
+      _ -> fail (shows pos "mkListenerRole: expecting one variable")
+
+-- Ensure a trace is not a prefix of a listener
+notListenerPrefix :: Trace -> Bool
+notListenerPrefix (In t : Out t' : _) | t == t' = False
+notListenerPrefix _ = True
+
+-- Are there any locations used in the role?
+hasLocn :: Role -> Bool
+hasLocn rl =
+  any isLocn (tchans (rtrace rl))
+
+initPreRuleCS :: MonadFail m => Sig -> Gen -> Prot -> Role -> PreRules -> m (Gen, [Rule])
+initPreRuleCS sig gen _ rl pr =
+    return (csRules sig gen rl (preruleCs pr))
+
+initPreRulesTrans :: MonadFail m => Sig -> Gen -> Prot -> Role -> PreRules -> m (Gen, [Rule])
+initPreRulesTrans sig gen _ rl pr =
+    return (transRls sig gen rl (preruleTrans pr))
+
+initPreRulesFacts :: MonadFail m => Sig -> Gen -> Prot -> Role -> PreRules -> m (Gen, [Rule])
+initPreRulesFacts sig gen _ rl pr =
+    do
+      facts <- loadFactList sig (rvars rl) (preruleFacts pr)
+      return (genFactRls sig gen rl facts)
+
+initPreRulesGensts :: MonadFail m => Sig -> Gen -> Prot -> Role -> PreRules -> m (Gen, [Rule])
+initPreRulesGensts sig gen _ rl pr =
+    do
+      ts <- loadTerms sig (rvars rl) (preruleGensts pr)
+      return (genStateRls sig gen rl ts)
+
+initPreRulesAssumes :: MonadFail m => Sig -> Gen -> Prot -> Role -> PreRules -> m (Gen, [Rule])
+initPreRulesAssumes sig gen prot rl pr =
+    do
+      (g,rules,_) <-
+          F.foldrM
+               (\sexpr (g,rules,n) ->
+                    do
+                      (g',varConjs) <- loadConclusion sig (annotation sexpr) prot g (rvars rl) sexpr
+                      let (g'',newRule) = genOneAssumeRl sig g' rl n varConjs
+                      return (g'', newRule : rules, (n+1)))
+               (gen,[],0)
+               (preruleAssumes pr)
+      return (g,rules)
+
+initPreRulesRelies :: MonadFail m => Sig -> Gen -> Prot -> Role -> PreRules -> m (Gen, [Rule])
+initPreRulesRelies sig gen prot rl pr =
+    initRelyGuars sig gen prot rl "rely" (preruleRelies pr)
+
+initPreRulesGuars :: MonadFail m => Sig -> Gen -> Prot -> Role -> PreRules -> m (Gen, [Rule])
+initPreRulesGuars sig gen prot rl pr =
+    initRelyGuars sig gen prot rl "guar" (preruleGuars pr)
+
+initRelyGuars ::  MonadFail m => Sig -> Gen -> Prot -> Role -> String -> [(Int, SExpr Pos)] -> m (Gen, [Rule])
+initRelyGuars sig gen prot rl kind =
+    F.foldrM
+    (\(ht,sexpr) (g,rules) ->
+         do
+           (g',varConjs) <- loadConclusion sig (annotation sexpr) prot g (rvars rl) sexpr
+           () <- varsUsedBy rl (freeVarsInConjLists varConjs) ht (annotation sexpr)
+           let (g'',newRule) = genOneRelyGuarRl sig g' rl ht kind varConjs
+           return (g'', newRule : rules))
+    (gen,[])
+
+initPreRulesCheqs :: MonadFail m => Sig -> Gen -> Prot -> Role -> PreRules -> m (Gen, [Rule])
+initPreRulesCheqs sig gen _ rl pr =
+    F.foldrM
+    (\(ht, pos, v, t) (g,rules) ->
+         do
+           () <- varsUsedBy rl (varsInTerms [t])  ht pos
+           let (g',newRule) = genOneRelyGuarRl sig g rl ht "cheq"
+                              [([],[(pos, Equals v t)])] -- stipulate v=t
+           return (g', newRule : rules))
+    (gen,[])
+    (preruleCheqs pr)
+
+varsUsedBy :: MonadFail m => Role -> [Term] -> Int -> Pos -> m ()
+varsUsedBy rl vars bound pos =
+    case varsUsedHeight rl vars of
+      Missing v -> fail ((show pos) ++ " var " ++ (show (varName v))
+                         ++ " not bound by height " ++ (show bound))
+      FoundAt ht -> if ht <= bound then return ()
+                    else fail ((show pos) ++ " variables not bound until height "
+                                              ++ (show ht))
+
+iterPreRules :: MonadFail m => (Sig -> Gen -> Prot -> Role -> PreRules -> m (Gen, [Rule])) ->
+                Sig -> Gen -> Prot -> [(Role,PreRules)] -> m (Gen, [Rule])
+iterPreRules f sig gen prot rlPreRules =
+    F.foldrM
+         (\(rl,prs) (g,rules) ->
+              do
+                (g',newRules) <- f sig g prot rl prs
+                return (g', newRules ++ rules))
+         (gen,[])
+         rlPreRules
+
+initRules :: MonadFail m => Sig -> Gen -> Prot -> [(Role,PreRules)] -> m (Gen, [Rule], [Rule])
+initRules sig g prot prs =
+    -- Must generate neqRules, factRules, assumeRules, relyRules,
+    -- guarRules, cheqRules, and,
+    -- if b is true, the state rules:
+    -- transRules, genStateRules, csRules, and the omnipresent state
+    -- rules for
+    -- scissors, cake, (inv) shears, and interruptions
+
+    -- let (g',neqs) = neqRules sig g in
+    -- let (g'', trans) = transRules g' in
+    let anyState = any (\(rl,_) -> hasLocn rl) prs in
+    do
+      let (g',neqs) = neqRules sig g
+      let (g,fixedStateRls) =
+              if anyState
+              then foldr (\f (g,rules) -> let (g',r) = f g in
+                                          (g',r : rules))
+                       (g',[])
+                       [scissorsRule sig, cakeRule sig, uninterruptibleRule sig,
+                                     shearsRule sig, invShearsRule sig]
+              else (g',[])
+
+      (g,fcRls) <- iterPreRules initPreRulesFacts sig g prot prs
+      (g,asRls) <- iterPreRules initPreRulesAssumes sig g prot prs
+      (g,rlRls) <- iterPreRules initPreRulesRelies sig g prot prs
+      (g,grRls) <- iterPreRules initPreRulesGuars sig g prot prs
+      (g,cqRls) <- iterPreRules initPreRulesCheqs sig g prot prs
+
+      -- Now here are the ones for states
+
+      (g,trRls) <- iterPreRules initPreRulesTrans sig g prot prs
+      (g,csRls) <- iterPreRules initPreRuleCS sig g prot prs
+      (g,gsRls) <- iterPreRules initPreRulesGensts sig g prot prs
+
+      return (g,
+               neqs ++ fixedStateRls ++ fcRls ++
+                    asRls ++ trRls ++ csRls ++ gsRls, 
+               rlRls ++ grRls ++ cqRls)
+
+{--
+  showRoleGenStates :: [(Role,PreRules)] -> [(String,String)]
+showRoleGenStates [] = []
+showRoleGenStates ((role, pr) : rest) =
+    (rname role, concatMap show $ map snd $ preruleGuars pr)
+    : showRoleGenStates rest
+--}
+
+loadRules :: MonadFail m => Sig -> Prot -> Gen -> [SExpr Pos] ->
+             m (Gen, [Rule], [SExpr ()])
+loadRules sig prot g (L pos (S _ "defrule" : x) : xs) =
+    do
+      (g, r) <- loadRule sig prot g pos x
+      (g, rs, comment) <- loadRules sig prot g xs
+      return (g, r : rs, comment)
+loadRules _ _ _ (L pos (S _ "defrole" : S _ name : _) : _) =
+    fail (shows pos ("defrole " ++ name ++ " misplaced"))
+loadRules _ _ g xs =
+    do
+      badKey ["defrole", "defrule"] xs
+      comment <- alist [] xs    -- Ensure remaining is an alist
+      return (g, [], comment)
+
+loadRule :: MonadFail m => Sig -> Prot -> Gen -> Pos ->
+            [SExpr Pos] -> m (Gen, Rule)
+loadRule sig prot g pos (S _ name : x : xs) =
+  do
+    (g, goal, _) <- loadSentence sig UnusedVars pos prot g x
+    comment <- alist [] xs      -- Ensure remaining is an alist
+    return (g, Rule { rlname = name,
+                      rlgoal = goal,
+                      rlcomment = comment })
+loadRule _ _ _ pos _ = fail (shows pos "Malformed rule")
+
+-- Association lists
+
+-- Make an association list into a comment.  The first argument is the
+-- set of keys of key-value pairs to be dropped from the comment.
+
+alist :: MonadFail m => [String] -> [SExpr Pos] -> m [SExpr ()]
+alist _ [] = return []
+alist keys (a@(L _ (S _ key : _)) : xs)
+    | elem key keys = alist keys xs
+    | otherwise =
+        do
+          xs <- alist keys xs
+          return $ strip a : xs
+alist _ xs = fail (shows (annotation $ head xs) "Malformed association list")
+
+-- Strip positions from an S-expression
+
+strip :: SExpr a -> SExpr ()
+strip (S _ s) = S () s
+strip (Q _ s) = Q () s
+strip (N _ n) = N () n
+strip (L _ l) = L () (map strip l)
+
+-- Lookup value in alist, appending values with the same key
+assoc :: String -> [SExpr a] -> [SExpr a]
+assoc key alist =
+    concat [ rest | L _ (S _ head : rest) <- alist, key == head ]
+
+-- See if alist has a key
+hasKey :: String -> [SExpr a] -> Bool
+hasKey key alist =
+    any f alist
+    where
+      f (L _ (S _ head : _)) = head == key
+      f _ = False
+
+-- Complain if alist has a bad key
+badKey :: MonadFail m => [String] -> [SExpr Pos] -> m ()
+badKey keys (L _ (S pos key : _) : xs)
+    | elem key keys =
+      fail (shows pos (key ++ " declaration too late in enclosing form"))
+    | otherwise = badKey keys xs
+badKey _ _ = return ()
+
+loadTrace :: MonadFail m => Sig -> Gen -> [Term] ->
+             [SExpr Pos] -> m (Gen, [Term], [Term], PreRules, Trace)
+loadTrace sig gen vars xs =
+    loadTraceLoop gen [] [] emptyPreRules [] xs
+    where
+      loadTraceLoop :: MonadFail m => Gen -> [Term] -> [Term] -> PreRules
+                    -> Trace -> [SExpr Pos]
+                    -> m (Gen, [Term], [Term], PreRules, Trace)
+      loadTraceLoop gen newVars uniqs pr events [] =
+          return (gen, (vars ++ (reverse newVars)), (reverse uniqs), pr,
+                  (reverse events))
+      loadTraceLoop gen newVars uniqs pr events ((L _ [S _ "recv", t]) : rest) =
+          do
+            t <- loadTerm sig vars True t
+            loadTraceLoop gen newVars uniqs pr ((In $ Plain t) : events) rest
+      loadTraceLoop gen newVars uniqs pr events ((L _ [S _ "send", t]) : rest) =
+          do
+            t <- loadTerm sig vars True t
+            loadTraceLoop gen newVars uniqs pr ((Out $ Plain t) : events) rest
+      loadTraceLoop gen newVars uniqs pr events ((L _ [S _ "recv", ch, t]) : rest) =
+          do
+            ch <- loadChan sig vars ch
+            t <- loadTerm sig vars True t
+            loadTraceLoop gen newVars uniqs pr ((In $ ChMsg ch t) : events) rest
+      loadTraceLoop gen newVars uniqs pr events ((L _ [S _ "send", ch, t]) : rest) =
+          do
+            ch <- loadChan sig vars ch
+            t <- loadTerm sig vars True t
+            loadTraceLoop gen newVars uniqs pr ((Out $ ChMsg ch t) : events) rest
+      loadTraceLoop gen newVars uniqs pr events ((L _ [S pos "load", ch, t]) : rest) =
+          do
+            ch <- loadLocn sig vars ch
+            t <- loadTerm sig vars True t
+            (gen, pt, pt_t) <- loadLocnTerm sig gen (S pos "pt") (S pos "pval") t
+            loadTraceLoop gen (pt : newVars) uniqs pr
+                              ((In $ ChMsg ch pt_t) : events) rest
+
+      loadTraceLoop gen newVars uniqs pr events ((L _ [S pos "stor", ch, t]) : rest) =
+          do
+            ch <- loadLocn sig vars ch
+            t <- loadTerm sig vars True t
+            (gen, pt, pt_t) <- loadLocnTerm sig gen (S pos "pt") (S pos "pval") t
+            loadTraceLoop gen (pt : newVars) (pt : uniqs) pr
+                              ((Out $ ChMsg ch pt_t) : events) rest
+
+      loadTraceLoop gen newVars uniqs pr events ((L _ [S pos "rely", form]) : rest) =
+          case events of
+            [] -> fail (shows pos $ "Rely precedes first event:  " ++ (show form))
+            (In _) : _ ->
+                loadTraceLoop gen newVars uniqs
+                              (preRulesAddRely pr ((L.length events), form))
+                              events rest
+            _ -> fail (shows pos $ "Rely must follow recv or load:  " ++ (show form))
+
+      loadTraceLoop gen newVars uniqs pr events ((L _ [S pos "guar", form]) : rest) =
+          case rest of
+            [] -> fail (shows pos $ "Guarantee follows last event:  " ++ (show form))
+            (L _ (S _ "stor" : _) : _) ->
+                loadTraceLoop gen newVars uniqs
+                                  (preRulesAddGuar pr (1+(L.length events), form))
+                                  events rest
+            (L _ (S _ "send" : _) : _) ->
+                loadTraceLoop gen newVars uniqs
+                                  (preRulesAddGuar pr (1+(L.length events), form))
+                                  events rest
+            _ -> fail (shows pos $ "Guarantee must precede send or stor:  " ++ (show form))
+
+      loadTraceLoop gen newVars uniqs pr events ((L _ [S pos "cheq", src, tgt]) : rest) =
+          case rest of
+            [] -> fail (shows pos $ "cheq must precede some event:  " ++ (show src) ++ ", " ++ (show tgt))
+            _ ->
+                do
+                  src <- loadTerm sig vars False src
+                  tgt <- loadTerm sig vars False tgt
+                  loadTraceLoop gen newVars uniqs
+                                (preRulesAddCheq pr
+                                 (1+(L.length events), pos, src, tgt))
+                                events rest
+
+      loadTraceLoop _ _ _ _ _ ((L pos [S _ dir, _, _]) : _) =
+          fail (shows pos $ "Unrecognized direction " ++ dir)
+
+      loadTraceLoop _ _ _ _ _ (x : _) =
+          fail (shows (annotation x) "Malformed event")
+
+loadChan :: MonadFail m => Sig -> [Term] -> SExpr Pos -> m Term
+loadChan sig vars x =
+  do
+    ch <- loadTerm sig vars False x
+    case isChan ch || isLocn ch of
+      True -> return ch
+      False -> fail (shows (annotation x) "Expecting a channel or location")
+
+loadLocn :: MonadFail m => Sig -> [Term] -> SExpr Pos -> m Term
+loadLocn sig vars x =
+  do
+    ch <- loadTerm sig vars False x
+    case isLocn ch of
+      True -> return ch
+      False -> fail (shows (annotation x) "Expecting a location")
+
+loadBaseTerms :: MonadFail m => Sig -> [Term] -> [SExpr Pos] -> m [Term]
+loadBaseTerms _ _ [] = return []
+loadBaseTerms sig vars (x : xs) =
+    do
+      t <- loadBaseTerm sig vars x
+      ts <- loadBaseTerms sig vars xs
+      return (adjoin t ts)
+
+loadBaseTerm :: MonadFail m => Sig -> [Term] -> SExpr Pos -> m Term
+loadBaseTerm sig vars x =
+    do
+      t <- loadTerm sig vars True x
+      case isAtom t of
+        True -> return t
+        False -> fail (shows (annotation x) "Expecting an atom")
+
+loadPosBaseTerms :: MonadFail m => Sig -> [Term] -> [SExpr Pos] ->
+                    m [(Maybe Int, Term)]
+loadPosBaseTerms _ _ [] = return []
+loadPosBaseTerms sig vars (x : xs) =
+    do
+      t <- loadPosBaseTerm sig vars x
+      ts <- loadPosBaseTerms sig vars xs
+      return (t:ts)
+
+loadPosBaseTerm :: MonadFail m => Sig -> [Term] -> SExpr Pos ->
+                   m (Maybe Int, Term)
+loadPosBaseTerm sig vars x'@(L _ [N _ opos, x])
+    | opos < 0 =
+        fail (shows (annotation x')
+              "Expecting a non-negative non-origination position")
+    | otherwise =
+        do
+          t <- loadBaseTerm sig vars x
+          return (Just opos, t)
+loadPosBaseTerm sig vars x =
+    do
+      t <- loadTerm sig vars True x
+      case isAtom t of
+        True -> return (Nothing, t)
+        False -> fail (shows (annotation x) "Expecting an atom")
+
+loadAbsent :: MonadFail m => Sig -> [Term] -> SExpr Pos -> m (Term, Term)
+loadAbsent sig vars (L _ [x, y]) =
+    do
+      x <- loadVarExprTerm sig vars x
+      y <- loadExprTerm sig vars y
+      return (x, y)
+loadAbsent _ _ x =
+    fail (shows (annotation x) "Expecting a pair of terms")
+
+loadExprTerm :: MonadFail m => Sig -> [Term] -> SExpr Pos -> m Term
+loadExprTerm sig vars x =
+    do
+      t <- loadTerm sig vars False x
+      case isExpr t of
+        True -> return t
+        False -> fail (shows (annotation x) "Expecting an exponent")
+
+loadVarExprTerm :: MonadFail m => Sig -> [Term] -> SExpr Pos -> m Term
+loadVarExprTerm sig vars x =
+    do
+      t <- loadTerm sig vars True x
+      case isVarExpr t of
+        True -> return t
+        False -> fail (shows (annotation x) "Expecting an exponent variable")
+
+-- Find protocol and then load a preskeleton.
+
+findPreskel :: MonadFail m => Pos -> [Prot] ->
+               [SExpr Pos] -> m Preskel
+findPreskel pos ps (S _ name : xs) =
+    case L.find (\p -> name == pname p) ps of
+      Nothing -> fail (shows pos $ "Protocol " ++ name ++ " unknown")
+      Just p -> loadPreskel (psig p) pos p xs
+findPreskel pos _ _ = fail (shows pos "Malformed skeleton")
+
+loadPreskel :: MonadFail m => Sig -> Pos -> Prot -> [SExpr Pos] -> m Preskel
+loadPreskel sig pos p (L _ (S _ "vars" : vars) : xs) =
+    do
+      (gen, kvars) <- loadVars sig (pgen p) vars
+      loadInsts sig pos p kvars gen [] xs
+loadPreskel _ pos _ _ = fail (shows pos "Malformed skeleton")
+
+loadInsts :: MonadFail m => Sig -> Pos -> Prot -> [Term] -> Gen ->
+             [Instance] -> [SExpr Pos] -> m Preskel
+loadInsts sig top p kvars gen insts (L pos (S _ "defstrand" : x) : xs) =
+    case x of
+      S _ role : N _ height : env ->
+          do
+            (gen, i) <- loadInst sig pos p kvars gen role height env
+            loadInsts sig top p kvars gen (i : insts) xs
+      _ ->
+          fail (shows pos "Malformed defstrand")
+loadInsts sig top p kvars gen insts (L pos (S _ "deflistener" : x) : xs) =
+    case x of
+      [term] ->
+          do
+            (gen, i) <- loadListener sig p kvars gen term
+            loadInsts sig top p kvars gen (i : insts) xs
+      _ ->
+          fail (shows pos "Malformed deflistener")
+loadInsts sig top p kvars gen insts xs =
+    do
+      badKey ["defstrand", "deflistener"] xs
+      _ <- alist [] xs          -- Check syntax of xs
+      (gen, gs) <- loadGoals sig top p gen goals
+      loadRest sig top kvars p gen gs (reverse insts)
+        order nr ar ur ug ab pr cn au fs pl leads genSts kcomment
+    where
+      order = assoc "precedes" xs
+      nr = assoc "non-orig" xs
+      ar = assoc "pen-non-orig" xs
+      ur = assoc "uniq-orig" xs
+      ug = assoc "uniq-gen" xs
+      ab = assoc "absent" xs
+      pr = assoc "precur" xs
+      cn = assoc "conf" xs
+      au = assoc "auth" xs
+      fs = assoc "facts" xs
+      pl = assoc "priority" xs
+      leads = assoc "leads-to" xs
+      goals = assoc "goals" xs
+      genSts = assoc "gen-st" xs
+      kcomment =
+        loadComment "goals" goals ++
+        loadComment "comment" (assoc "comment" xs)
+
+loadComment :: String -> [SExpr Pos] -> [SExpr ()]
+loadComment _ [] = []
+loadComment key comment =
+  [L () (S () key : map strip comment)]
+
+loadInst :: MonadFail m => Sig -> Pos -> Prot -> [Term] -> Gen -> String ->
+            Int -> [SExpr Pos] -> m (Gen, Instance)
+loadInst sig pos p kvars gen role height env =
+    do
+      r <- lookupRole pos p role
+      case height < 1 || height > length (rtrace r) of
+        True -> fail (shows pos "Bad height")
+        False ->
+            do
+              let vars = rvars r
+              (gen', env') <- foldM (loadMaplet sig kvars vars)
+                              (gen, emptyEnv) env
+              return (mkInstance gen' r env' height)
+
+loadMaplet :: MonadFail m => Sig -> [Term] -> [Term] ->
+              (Gen, Env) -> SExpr Pos -> m (Gen, Env)
+loadMaplet sig kvars vars env (L pos [domain, range]) =
+    do
+      t <- loadTerm sig vars False domain
+      t' <- loadTerm sig kvars False range
+      case match t t' env of
+        env' : _ -> return env'
+        [] -> fail (shows pos "Domain does not match range")
+loadMaplet _ _ _ _ x = fail (shows (annotation x) "Malformed maplet")
+
+loadListener :: MonadFail m => Sig -> Prot -> [Term] -> Gen -> SExpr Pos ->
+                m (Gen, Instance)
+loadListener sig p kvars gen x =
+    do
+     t <- loadTerm sig kvars True x
+     return $ mkListener p gen t
+
+loadRest :: MonadFail m => Sig -> Pos -> [Term] -> Prot -> Gen -> [Goal] ->
+            [Instance] -> [SExpr Pos] -> [SExpr Pos] -> [SExpr Pos] ->
+            [SExpr Pos] -> [SExpr Pos] -> [SExpr Pos] ->
+            [SExpr Pos] -> [SExpr Pos] -> [SExpr Pos] ->
+            [SExpr Pos] -> [SExpr Pos] -> [SExpr Pos] -> [SExpr Pos] -> [SExpr ()] -> m Preskel
+loadRest sig pos vars p gen gs insts orderings
+         nr ar ur ug ab pr cn au fs pl leads genSts comment =
+    do
+      case null insts of
+        True -> fail (shows pos "No strands")
+        False -> return ()
+      let heights = map height insts
+      o <- loadOrderings heights orderings
+      nr <- loadBaseTerms sig vars nr
+      ar <- loadBaseTerms sig vars ar
+      ur <- loadBaseTerms sig vars ur
+      ug <- loadBaseTerms sig vars ug
+      ab <- mapM (loadAbsent sig vars) ab
+      pr <- mapM (loadNode heights) pr
+      cn <- loadBaseTerms sig vars cn
+      au <- loadBaseTerms sig vars au
+      fs <- mapM (loadFact sig heights vars) fs
+      lds <- loadOrderings heights leads
+      genSts <- loadTerms sig vars genSts
+      let (nr', ar', ur', ug', ab', cn', au') =
+            foldl addInstOrigs (nr, ar, ur, ug, ab, cn, au) insts
+      prios <- mapM (loadPriorities heights) pl
+      let k = mkPreskel gen p gs insts o nr' ar' ur'
+              ug' ab' pr genSts cn' au' fs prios comment
+          ab'' = L.concatMap (\(x, y) -> [x, y]) ab'
+      case termsWellFormed $ nr' ++ ar' ++ ur' ++ ug' ++ ab'' ++ kterms k of
+        False -> fail (shows pos "Terms in skeleton not well formed")
+        True -> return ()
+      case L.all isChan (cn' ++ au') of
+        False -> fail (shows pos "Bad channel in role")
+        True -> return ()
+      case verbosePreskelWellFormed k of
+        Return () -> return
+                     $ applyLeadsTo k lds
+        Fail msg -> fail $ shows pos
+                    $ showString "Skeleton not well formed: " msg
+
+loadOrderings :: MonadFail m => [Int] -> [SExpr Pos] -> m [Pair]
+loadOrderings heights x =
+    foldM f [] x
+    where
+      f ns x =
+          do
+            np <- loadPair heights x
+            return (adjoin np ns)
+
+loadPair :: MonadFail m => [Int] -> SExpr Pos -> m Pair
+loadPair heights (L pos [x0, x1]) =
+    do
+      n0 <- loadNode heights x0
+      n1 <- loadNode heights x1
+      case fst n0 == fst n1 of  -- Same strand
+        True -> fail (shows pos "Malformed pair -- nodes in same strand")
+        False -> return (n0, n1)
+loadPair _ x = fail (shows (annotation x) "Malformed pair")
+
+loadNode :: MonadFail m => [Int] -> SExpr Pos -> m Node
+loadNode heights (L pos [N _ s, N _ p])
+    | s < 0 = fail (shows pos "Negative strand in node")
+    | p < 0 = fail (shows pos "Negative position in node")
+    | otherwise =
+        case height heights s of
+          Nothing -> fail (shows pos "Bad strand in node")
+          Just h | p < h -> return (s, p)
+          _ -> fail (shows pos "Bad position in node")
+    where
+      height [] _ = Nothing
+      height (x: xs) s          -- Assume s non-negative
+          | s == 0 = Just x
+          | otherwise = height xs (s - 1)
+loadNode _ x = fail (shows (annotation x) "Malformed node")
+
+loadFact :: MonadFail m => Sig -> [Int] -> [Term] -> SExpr Pos -> m Fact
+loadFact sig heights vars (L _ (S _ name : fs)) =
+  do
+    fs <- mapM (loadFterm sig heights vars) fs
+    return $ Fact name fs
+loadFact _ _ _ x =
+  fail (shows (annotation x) "Malformed fact")
+
+loadFterm :: MonadFail m => Sig -> [Int] -> [Term] -> SExpr Pos -> m FTerm
+loadFterm _ heights _ (N pos s)
+  | 0 <= s && s < length heights = return $ FSid s
+  | otherwise = fail (shows pos ("Bad strand in fact: " ++ show s))
+loadFterm sig _ vars x =
+  do
+    t <- loadTerm sig vars False x
+    return $ FTerm t
+
+loadPriorities :: MonadFail m => [Int] -> SExpr Pos -> m (Node, Int)
+loadPriorities heights (L _ [x, N _ p]) =
+    do
+      n <- loadNode heights x
+      return (n, p)
+loadPriorities _ x =
+    fail (shows (annotation x) "Malformed priority")
+
+addInstOrigs :: ([Term], [Term], [Term], [Term], [(Term, Term)], [Term], [Term])
+                -> Instance ->
+                ([Term], [Term], [Term], [Term], [(Term, Term)], [Term], [Term])
+addInstOrigs (nr, ar, ur, ug, ab, cn, au) i =
+    (foldl (flip adjoin) nr $ inheritRnon i,
+     foldl (flip adjoin) ar $ inheritRpnon i,
+     foldl (flip adjoin) ur $ inheritRunique i,
+     foldl (flip adjoin) ug $ inheritRuniqgen i,
+     foldl (flip adjoin) ab $ inheritRabsent i,
+     foldl (flip adjoin) cn $ inheritRconf i,
+     foldl (flip adjoin) au $ inheritRauth i)
+
+-- Security goals
+
+-- Load a defgoal form
+findGoal :: MonadFail m => Pos -> [Prot] -> [SExpr Pos] -> m Preskel
+findGoal pos ps (S _ name : x : xs) =
+    case L.find (\p -> name == pname p) ps of
+      Nothing -> fail (shows pos $ "Protocol " ++ name ++ " unknown")
+      Just p ->
+        do
+          let sig = psig p
+          (g, goal, antec) <- loadSentence sig RoleSpec pos p (pgen p) x
+          let (gs, xs') = findAlist xs
+          (g, goals) <- loadGoals sig pos p g gs
+          _ <- alist [] xs'          -- Check syntax of xs
+          let kcomment =
+                loadComment "goals" (x : gs) ++
+                loadComment "comment" (assoc "comment" xs')
+          -- Make and return the characteristic skeleton of a security goal
+          characteristic pos p (goal : goals) g antec kcomment
+findGoal pos _ _ = fail (shows pos "Malformed goal")
+
+-- Separate argument into goals and any remaining elements of an
+-- association list.
+findAlist :: [SExpr Pos] -> ([SExpr Pos], [SExpr Pos])
+findAlist [] = ([], [])
+findAlist (x@(L _ (S _ "forall" : _)) : xs) =
+  (x : gs, xs')
+  where
+    (gs, xs') = findAlist xs
+findAlist xs = ([], xs)
+
+--- Load a sequence of security goals
+
+loadGoals :: MonadFail m => Sig -> Pos -> Prot -> Gen ->
+             [SExpr Pos] -> m (Gen, [Goal])
+loadGoals _ _ _ g [] = return (g, [])
+loadGoals sig pos prot g (x : xs) =
+  do
+    (g, goal, _) <- loadSentence sig RoleSpec pos prot g x
+    (g, goals) <- loadGoals sig pos prot g xs
+    return (g, goal : goals)
diff --git a/src/CPSA/Main.hs b/src/CPSA/Main.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Main.hs
@@ -0,0 +1,392 @@
+-- Main routine for the CPSA solver.  Provides command line processing
+
+-- Copyright (c) 2009 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module Main (main) where
+
+import Numeric
+import Control.Monad (forM_)
+import System.IO
+import System.Environment
+import System.Console.GetOpt
+import CPSA.Lib.SExpr
+import CPSA.Lib.Entry
+import CPSA.Options
+import CPSA.Algebra
+import CPSA.Signature (Sig, defaultSig, loadSig)
+import CPSA.Loader
+import CPSA.Lib.Expand
+import CPSA.Reduction
+
+-- Compile time switches for expermentation.
+
+-- Load default options
+
+-- Default limit on the number of steps used to solve one problem.
+defaultStepLimit :: Int
+defaultStepLimit = optLimit defaultOptions
+
+-- Default limit on the number of strands is a skeleton.
+defaultStrandBound :: Int
+defaultStrandBound = optBound defaultOptions
+
+-- Default limit on the number of depths is a skeleton.
+defaultDepthBound :: Int
+defaultDepthBound = optDepth defaultOptions
+
+-- Default algebra
+defaultAlgebra :: String
+defaultAlgebra = optAlg defaultOptions
+
+-- Entry point
+main :: IO ()
+main =
+    do
+      argv <- getArgs
+      (flags, files) <- opts options argv
+      -- Handle help and version options before input is read
+      _ <- interp algs defaultOptions flags
+      p <- openInput files
+      sexprs <- readSExprs p
+      let herald = getHerald sexprs
+      alist <- case herald of
+                 Nothing -> return []
+                 Just sexpr -> getAlist sexpr
+      heraldFlags <- getAlistOpts alist
+      forM_ heraldFlags checkHeraldFlag
+      opts <- interp algs defaultOptions heraldFlags
+      opts <- interp algs opts flags
+      sexprs <- tryIO (expand sexprs) -- Expand macros
+      case sexprs of
+        Left err -> abort err
+        Right sexprs ->
+            if optAnalyze opts then
+                select files herald opts sexprs
+            else
+                prettyPrint opts sexprs
+
+opts :: [OptDescr a] -> [String] -> IO ([a], [String])
+opts options argv =
+    case getOpt RequireOrder options argv of
+      (o, n, []) -> return (o, n)
+      (_, _, errs) ->
+          do
+            msg <- usage options errs
+            abort msg
+
+openInput :: [String] -> IO PosHandle
+openInput [file] =
+    do                          -- Input from named file
+      input <- openFile file ReadMode
+      posHandle file input
+openInput [] =
+    posHandle "" stdin          -- Input from the standard input
+openInput _ =
+    do
+      msg <- usage options ["too many input files\n"]
+      abort msg
+
+-- Algebra specific section
+
+-- Algebra names -- omit Diffie-Hellman for releases until it works
+algs :: [String]
+algs = [name, alias]
+
+-- Select the algebra and go.
+select :: [String] -> Maybe (SExpr Pos) -> Options -> [SExpr Pos] -> IO ()
+select files herald opts sexprs =
+    case optAlg opts of
+      nom | nom == name || nom == alias ->
+              go nom origin files herald opts sexprs
+          | otherwise ->
+              abort ("Bad algebra: " ++ nom)
+
+-- Load protocols and preskeletons and print run time information
+go :: String -> Gen -> [String] -> Maybe (SExpr Pos) ->
+      Options -> [SExpr Pos] -> IO ()
+go name origin files herald opts sexprs =
+    do
+      sig <- getSig herald
+      -- print sig
+      preskels <- tryIO (loadSExprs sig name origin sexprs)
+      case preskels of          -- Load protocols and preskeletons
+        Left err -> abort err
+        Right preskels ->
+            do
+              h <- outputHandle (optFile opts)
+              let m = optMargin opts
+              -- Print herald
+              case herald of
+                Nothing -> return ()
+                Just sexpr ->
+                    do
+                      writeSExpr h m sexpr
+                      hPutStrLn h ""
+              -- Print run time information
+              writeComment h m cpsaVersion
+              case files of
+                [file] -> writeComment h m $ "All input read from " ++ file
+                _ -> writeComment h m "All input read"
+              case optNoIsoChk opts of
+                True -> writeComment h m "Isomorphism checking disabled"
+                False -> return ()
+              case optLimit opts /= defaultStepLimit of
+                True -> writeComment h m $
+                        "Step count limited to " ++ show (optLimit opts)
+                False -> return ()
+              case optBound opts /= defaultStrandBound of
+                True -> writeComment h m $
+                        "Strand count bounded at " ++ show (optBound opts)
+                False -> return ()
+              case optDepth opts /= defaultDepthBound of
+                True -> writeComment h m $
+                        "Tree depth bounded at " ++ show (optDepth opts)
+                False -> return ()
+              case optCheckNoncesFirst opts of
+                True -> writeComment h m "Nonces checked first"
+                False -> return ()
+              case optTryOldStrandsFirst opts of
+                True -> writeComment h m "Old strands tried first"
+                False -> return ()
+              case optTryYoungNodesFirst opts of
+                True -> writeComment h m "Younger nodes tried first"
+                False -> return ()
+              -- Analyze
+              solve opts h preskels 0
+
+-- Just pretty the expanded macros
+prettyPrint :: Options -> [SExpr a] -> IO ()
+prettyPrint opts sexprs =
+    do
+      let m = optMargin opts
+      h <- outputHandle (optFile opts)
+      writeComment h m cpsaVersion
+      writeComment h m "Expanded macros"
+      mapM_ (writeLnSExpr h m) sexprs
+      hClose h
+      return ()
+
+-- Command line option flags
+data Flag
+    = Output String             -- Output file name
+    | Limit String              -- Step count limit
+    | Bound String              -- Strand count bound
+    | Depth String              -- Tree depth bound
+    | Margin String             -- Output line length
+    | Expand                    -- Expand macros only
+    | NoIsoChk                  -- Disable isomorphism checks
+    | CheckNoncesFirst          -- Check nonces first
+    | TryOldStrandsFirst        -- Try old strands first
+    | TryYoungNodesFirst        -- Try young nodes first
+    | GoalsSat                  -- Stop when goals are satisfied
+    | Algebra String            -- Algebra
+    | Algebras                  -- Show algebras
+    | Help                      -- Help
+    | Info                      -- Version information
+      deriving Show
+
+options :: [OptDescr Flag]
+options =
+    [ Option ['o'] ["output"]   (ReqArg Output "FILE")  "output FILE",
+      Option ['l'] ["limit"]    (ReqArg Limit "INT")
+      ("step count limit (default " ++ show defaultStepLimit ++ ")"),
+      Option ['b'] ["bound"]    (ReqArg Bound "INT")
+      ("strand count bound (default " ++ show defaultStrandBound ++ ")"),
+      Option ['d'] ["depth"]    (ReqArg Depth "INT")
+      ("tree depth bound (default unbounded)"),
+      Option ['m'] ["margin"]   (ReqArg Margin "INT")
+      ("set output margin (default " ++ show (optMargin defaultOptions) ++ ")"),
+      Option ['e'] ["expand"]   (NoArg Expand)
+      "expand macros only; don't analyze",
+      Option ['n'] ["noisochk"] (NoArg NoIsoChk)
+      "disable isomorphism checks",
+      Option ['c'] ["check-nonces"] (NoArg CheckNoncesFirst)
+      "check nonces first",
+      Option ['t'] ["try-old-strands"] (NoArg TryOldStrandsFirst)
+      "try old strands first",
+      Option ['r'] ["reverse-nodes"] (NoArg TryYoungNodesFirst)
+      "try younger nodes first",
+      Option ['g'] ["goals-sat"] (NoArg GoalsSat)
+      "Stop when goals are satisfied",
+      Option ['a'] ["algebra"]  (ReqArg Algebra "STRING")
+      ("algebra (default " ++ defaultAlgebra ++ ")"),
+      Option ['s'] ["show-algebras"] (NoArg Algebras)  "show algebras",
+      Option ['h'] ["help"]     (NoArg Help)      "show help message",
+      Option ['v'] ["version"]  (NoArg Info)      "show version number" ]
+
+-- Interpret option flags
+interp :: [String] -> Options -> [Flag] -> IO Options
+interp algs opts flags =
+    loop flags opts
+    where
+      loop [] opts = return opts
+      loop (Output name : flags) opts
+          | optFile opts == Nothing =
+              loop flags $ opts { optFile = Just name }
+      loop (Limit value : flags) opts =
+          case readDec value of
+            [(limit, "")] ->
+                loop flags $ opts { optLimit = limit }
+            _ ->
+                do
+                  msg <- usage options ["Bad value for step limit\n"]
+                  abort msg
+      loop (Bound value : flags) opts =
+          case readDec value of
+            [(bound, "")] ->
+                loop flags $ opts { optBound = bound }
+            _ ->
+                do
+                  msg <- usage options ["Bad value for strand bound\n"]
+                  abort msg
+      loop (Depth value : flags) opts =
+          case readDec value of
+            [(depth, "")] ->
+                loop flags $ opts { optDepth = depth }
+            _ ->
+                do
+                  msg <- usage options ["Bad value for depth bound\n"]
+                  abort msg
+      loop (Margin value : flags) opts =
+          case readDec value of
+            [(margin, "")] ->
+                loop flags $ opts { optMargin = margin }
+            _ ->
+                do
+                  msg <- usage options ["Bad value for margin\n"]
+                  abort msg
+      loop (Expand : flags) opts =
+          loop flags $ opts { optAnalyze = False }
+      loop (NoIsoChk : flags) opts =
+          loop flags $ opts { optNoIsoChk = True }
+      loop (CheckNoncesFirst : flags) opts =
+          loop flags $ opts { optCheckNoncesFirst = True }
+      loop (TryOldStrandsFirst : flags) opts =
+          loop flags $ opts { optTryOldStrandsFirst = True }
+      loop (TryYoungNodesFirst : flags) opts =
+          loop flags $ opts { optTryYoungNodesFirst = True }
+      loop (GoalsSat : flags) opts =
+          loop flags $ opts { optGoalsSat = True }
+      loop (Algebra name : flags) opts
+          | elem name algs = loop flags $ opts { optAlg = name }
+          | otherwise =
+              abort ("Algebra " ++ name ++ " not one of\n" ++ unlines algs)
+      loop (Algebras : _) _ =
+          success $ unlines algs
+      loop (Help : _) _ =
+          do                    -- Show help then exit with success
+            msg <- usage options []
+            success msg
+      loop (Info : _) _ =
+          success cpsaVersion
+      loop _ _ =
+           do                   -- Show help then exit with failure
+             msg <- usage options ["Bad option combination\n"]
+             abort msg
+
+-- Herald form
+
+-- Get a herald form.  It must be the first form while skipping comments.
+getHerald :: [SExpr Pos] -> Maybe (SExpr Pos)
+getHerald (x@(L _ (S _ "herald" : _)) : _) = Just x
+getHerald ((L _ (S _ "comment" : _)) : sexprs) = getHerald sexprs
+getHerald _ = Nothing
+
+-- Get the association list of a herald form
+getAlist :: SExpr Pos -> IO [SExpr Pos]
+getAlist (L _ (S _ "herald" : S _ _ : alist)) = return alist
+getAlist (L _ (S _ "herald" : Q _ _ : alist)) = return alist
+getAlist _ =
+    do
+      msg <- usage options ["Bad herald form\n"]
+      abort msg
+
+getAlistOpts :: [SExpr Pos] -> IO [Flag]
+getAlistOpts alist =
+    loop alist []
+    where
+      loop [] flags =
+          return $ reverse flags
+      loop ((L _ (S _ key : vals)) : alist) flags =
+          do
+            flag <- flagOf key vals
+            case flag of
+              Nothing -> loop alist flags -- Ignore unrecognized keys
+              Just flag -> loop alist (flag : flags)
+      loop _ _ =
+          do
+             msg <- usage options ["Bad herald form\n"]
+             abort msg
+
+flagOf :: String -> [SExpr Pos] -> IO (Maybe Flag)
+flagOf key vals =
+    do
+      let opt = findOpt key
+      case opt of
+        Nothing -> return Nothing
+        Just opt ->
+            do
+              flag <- interpAssoc key opt vals
+              return $ Just flag
+
+findOpt :: String -> Maybe (OptDescr Flag)
+findOpt key =
+    loop options
+    where
+      loop [] = Nothing
+      loop (opt@(Option _ keys _ _) : options)
+           | elem key keys = Just opt
+           | otherwise = loop options
+
+interpAssoc :: String -> OptDescr Flag -> [SExpr Pos] -> IO Flag
+interpAssoc _ (Option _ _ (NoArg flag) _) [] =
+    return flag
+interpAssoc _ (Option _ _ (ReqArg flag _) _) [S _ val] =
+    return $ flag val
+interpAssoc _ (Option _ _ (ReqArg flag _) _) [Q _ val] =
+    return $ flag val
+interpAssoc _ (Option _ _ (ReqArg flag _) _) [N _ val] =
+    return $ flag $ show val
+interpAssoc _ (Option _ _ (OptArg flag _) _) [] =
+    return $ flag Nothing
+interpAssoc _ (Option _ _ (OptArg flag _) _) [S _ val] =
+    return $ flag $ Just val
+interpAssoc _ (Option _ _ (OptArg flag _) _) [Q _ val] =
+    return $ flag $ Just val
+interpAssoc _ (Option _ _ (OptArg flag _) _) [N _ val] =
+    return $ flag $ Just $ show val
+interpAssoc key _ _ =
+    do
+      msg <- usage options ["Bad herald form at " ++ key ++ "\n"]
+      abort msg
+
+checkHeraldFlag :: Flag -> IO ()
+checkHeraldFlag (Output _) =
+    abort "output option not allowed in herald"
+checkHeraldFlag Help =
+    abort "help option not allowed in herald"
+checkHeraldFlag Info =
+    abort "version option not allowed in herald"
+checkHeraldFlag Algebras =
+    abort "show algebras help option not allowed in herald"
+checkHeraldFlag _ =
+    return ()
+
+-- Get a signature from a herald form
+
+getSig :: Maybe (SExpr Pos) -> IO Sig
+getSig Nothing = return defaultSig
+getSig (Just x) =
+  do
+    xs <- getAlist x
+    let decls = assoc "lang" xs
+    loadSig (annotation x) decls
+
+-- Lookup value in alist, appending values with the same key
+assoc :: String -> [SExpr a] -> [SExpr a]
+assoc key alist =
+    concat [ rest | L _ (S _ head : rest) <- alist, key == head ]
diff --git a/src/CPSA/Match/Main.hs b/src/CPSA/Match/Main.hs
deleted file mode 100644
--- a/src/CPSA/Match/Main.hs
+++ /dev/null
@@ -1,66 +0,0 @@
--- Runs match, unify, or absent code
-
--- This is a test routine for the DH algebra.  It runs test of the
--- matcher, the unifier, and the absence substitution code.  The input
--- syntax is:
---
--- (MODE (VARS) TESTS)
---
--- where mode is one of match, unify, or absent, VARS are some
--- variable declarations, and TESTS is a list of tests.  A test is a
--- list of pairs of terms.  For mode match, the output is a list of
--- substitutions that cause the left hand sides of a test to match a
--- right hand side.  Unify is like match except unification is
--- performed.  Absent invokes the absenceSubst primitive in the
--- algebra interface.
-
--- Copyright (c) 2017 The MITRE Corporation
---
--- This program is free software: you can redistribute it and/or
--- modify it under the terms of the BSD License as published by the
--- University of California.
-
-module Main (main) where
-
-import System.IO
-import CPSA.Lib.SExpr (PosHandle, SExpr, Pos)
-import CPSA.Lib.Entry
-import CPSA.Match.Match
-
-main :: IO ()
-main =
-    do
-      (p, (output, margin)) <- start filterOptions filterInterp
-      h <- outputHandle output
-      writeComment h margin cpsaVersion
-      writeComment h margin "Match"
-      go (step h margin) p
-      hClose h
-
-go :: (SExpr Pos -> IO ()) -> PosHandle -> IO ()
-go f p =
-    loop
-    where
-      loop =
-          do
-            x <- gentlyReadSExpr p
-            case x of
-              Nothing ->
-                  return ()
-              Just sexpr ->
-                  do
-                    f sexpr
-                    loop
-
-step :: Handle -> Int -> SExpr Pos -> IO ()
-step output margin sexpr =
-    do
-      writeLnSExpr output margin sexpr
-      x <- tryIO (testMatcher sexpr)
-      case x of
-        Right sexpr ->
-          do
-            writeLnSExpr output margin sexpr
-            return ()
-        Left err ->
-            abort err
diff --git a/src/CPSA/Match/Match.hs b/src/CPSA/Match/Match.hs
deleted file mode 100644
--- a/src/CPSA/Match/Match.hs
+++ /dev/null
@@ -1,67 +0,0 @@
--- Copyright (c) 2017 The MITRE Corporation
---
--- This program is free software: you can redistribute it and/or
--- modify it under the terms of the BSD License as published by the
--- University of California.
-
-module CPSA.Match.Match (testMatcher) where
-
-import CPSA.Lib.SExpr
-import CPSA.Lib.Algebra
-import qualified CPSA.DiffieHellman.Algebra
-
-testMatcher :: SExpr Pos -> IO (SExpr ())
-testMatcher x = go CPSA.DiffieHellman.Algebra.origin x
-
-go :: Algebra t p g s e c => g -> SExpr Pos -> IO (SExpr ())
-go g (L _ (S _ "match" : L _ vs : xs)) =
-  do
-    (g, vs) <- loadVars g vs
-    a <- mapM (loadMatch vs) xs
-    return $ L () $ map (showEnv vs) (matchTerms a (g, emptyEnv))
-go g (L _ (S _ "unify" : L _ vs : xs)) =
-  do
-    (g, vs) <- loadVars g vs
-    a <- mapM (loadMatch vs) xs
-    return $ L () $ map (showSubst vs) (unifyTerms a (g, emptySubst))
-go g (L _ (S _ "absent" : L _ vs : xs)) =
-  do
-    (g, vs) <- loadVars g vs
-    a <- mapM (loadMatch vs) xs
-    return $ L () $ map (showSubst vs) (absenceSubst g a)
-go _ x = fail (shows (annotation x) "Malformed input!")
-
-loadMatch :: (Algebra t p g s e c, MonadFail m) =>
-              [t] -> SExpr Pos -> m (t, t)
-loadMatch vs (L _ [r, n]) =
-  do
-    r <- loadTerm vs False r
-    n <- loadTerm vs False n
-    return (r, n)
-loadMatch _ x = fail (shows (annotation x) "Malformed match")
-
-matchTerms :: Algebra t p g s e c => [(t, t)] -> (g, e) -> [(g, e)]
-matchTerms [] e = [e]
-matchTerms ((t0, t1) : ts) e =
-  do
-    e <- match t0 t1 e
-    matchTerms ts e
-
-showEnv :: Algebra t p g s e c => [t] -> (g, e) -> SExpr ()
-showEnv vs (_, e) =
-  L () $ displaySubst c (substitution e)
-  where
-    c = addToContext emptyContext vs
-
-unifyTerms :: Algebra t p g s e c => [(t, t)] -> (g, s) -> [(g, s)]
-unifyTerms [] e = [e]
-unifyTerms ((t0, t1) : ts) e =
-  do
-    e <- unify t0 t1 e
-    unifyTerms ts e
-
-showSubst :: Algebra t p g s e c => [t] -> (g, s) -> SExpr ()
-showSubst vs (_, s) =
-  L () $ displaySubst c s
-  where
-    c = addToContext emptyContext vs
diff --git a/src/CPSA/Options.hs b/src/CPSA/Options.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Options.hs
@@ -0,0 +1,104 @@
+module CPSA.Options (Options(..), defaultOptions,
+                     algOptions, algInterp) where
+
+import Numeric
+import System.Console.GetOpt
+import CPSA.Lib.Entry
+import CPSA.Algebra (name)
+
+-- CPSA options and default values
+
+data Options = Options {
+      optFile :: Maybe FilePath, -- Nothing specifies standard output
+      optAlg :: String,          -- Name of the algebra
+      optAnalyze :: Bool,        -- False when only expanding macros
+      optNoIsoChk :: Bool, -- True when not performing isomorphism checks
+      optCheckNoncesFirst :: Bool, -- True when checking nonces first
+      optTryOldStrandsFirst :: Bool, -- True when visiting old strands first
+      optTryYoungNodesFirst :: Bool, -- True when visiting young nodes first
+      optGoalsSat :: Bool , -- True when goals satisfied stops tree expansion
+      optLimit :: Int,          -- Step count limit
+      optBound :: Int,          -- Strand cound bound
+      optDepth :: Int,          -- Tree depth bound
+      optMargin :: Int,         -- Output line length
+      optIndent :: Int }        -- Pretty printing indent
+    deriving Show
+
+defaultOptions :: Options
+defaultOptions = Options {
+  optFile = Nothing,
+  optAlg = name,
+  optAnalyze = True,
+  optNoIsoChk = False,
+  optCheckNoncesFirst = False,
+  optTryOldStrandsFirst = False,
+  optTryYoungNodesFirst = False,
+  optGoalsSat = False,
+  optLimit = 2000,
+  optBound = 8,
+  optDepth = 0,                 -- Infinite
+  optMargin = 72,
+  optIndent = 2 }
+
+-- Command line option flags
+data Flag
+    = Help                      -- Help
+    | Info                      -- Version information
+    | Algebra String            -- Algebra
+    | Algebras                  -- Show algebras
+    | Margin String             -- Output line length
+    | Output String             -- Output file name
+      deriving Show
+
+algOptions :: String -> [OptDescr Flag]
+algOptions defaultAlgebra =
+    [ Option ['o'] ["output"]  (ReqArg Output "FILE")  "output FILE",
+      Option ['m'] ["margin"]  (ReqArg Margin "INT")
+      ("set output margin (default " ++ show (optMargin defaultOptions) ++ ")"),
+      Option ['a'] ["algebra"]  (ReqArg Algebra "STRING")
+      ("algebra (default " ++ defaultAlgebra ++ ")"),
+      Option ['s'] ["show-algebras"] (NoArg Algebras)  "show algebras",
+      Option ['h'] ["help"]    (NoArg Help)          "show help message",
+      Option ['v'] ["version"] (NoArg Info)          "show version number" ]
+
+data Params = Params
+    { file :: Maybe FilePath,   -- Nothing specifies standard output
+      alg :: String,            -- Name of the algebra
+      margin :: Int }           -- Output line length
+    deriving Show
+
+-- Interpret option flags
+algInterp :: String -> [String] -> [Flag] -> IO (Maybe FilePath, String, Int)
+algInterp alg algs flags =
+    loop flags (Params { file = Nothing, alg = alg,
+                         margin = optMargin defaultOptions })
+    where
+      loop [] (Params { file = file, alg = alg, margin = margin}) =
+          return (file, alg, margin)
+      loop (Output name : flags)  params
+          | file params == Nothing =
+              loop flags $ params { file = Just name }
+      loop (Margin value : flags) params =
+          case readDec value of
+            [(margin, "")] ->
+                loop flags $ params { margin = margin }
+            _ ->
+                do
+                  msg <- usage (algOptions alg) ["Bad value for margin\n"]
+                  abort msg
+      loop (Algebra name : flags) params
+          | elem name algs = loop flags $ params { alg = name }
+          | otherwise =
+              abort ("Algebra " ++ name ++ " not one of\n" ++ unlines algs)
+      loop (Algebras : _) _ =
+          success $ unlines algs
+      loop (Info : _) _ =
+          success cpsaVersion
+      loop (Help : _) _ =
+          do                    -- Show help then exit with success
+            msg <- usage (algOptions alg) []
+            success msg
+      loop _ _ =
+           do                   -- Show help then exit with failure
+             msg <- usage (algOptions alg) ["Bad option combination\n"]
+             abort msg
diff --git a/src/CPSA/Pretty/Main.hs b/src/CPSA/Pretty/Main.hs
--- a/src/CPSA/Pretty/Main.hs
+++ b/src/CPSA/Pretty/Main.hs
@@ -24,12 +24,6 @@
       margin :: Int }           -- Output line length
     deriving Show
 
-defaultIndent :: Int
-defaultIndent = optIndent defaultOptions
-
-defaultMargin :: Int
-defaultMargin = optMargin defaultOptions
-
 main :: IO ()
 main =
     do
@@ -65,6 +59,7 @@
     = Help                      -- Help
     | Info                      -- Version information
     | Margin String             -- Output line length
+    | Infix                     -- Select output notation
     | Json                      -- Select output format
     | Output String             -- Output file name
       deriving Show
diff --git a/src/CPSA/Proc/Proc.hs b/src/CPSA/Proc/Proc.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Proc/Proc.hs
@@ -0,0 +1,133 @@
+-- Reader for defproc
+
+-- Copyright (c) 2020 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module CPSA.Proc.Proc (
+  parse, Var, Kind, Decl, Stmt(..), Expr(..),
+  Proc, mkProc, name, inputs, outputs, stmts, Item(..)) where
+
+import CPSA.Lib.SExpr
+
+-- Abstract syntax for the input language
+
+-- Variable
+type Var = String
+
+type Kind = String
+
+-- A declaration, is a variable and a kind
+type Decl = (Var, Kind)
+
+-- A procedure
+data Proc
+  = Proc { name :: String,
+           inputs :: [Decl],
+           outputs :: [Kind],
+           stmts :: [Stmt] }
+
+mkProc :: String  -> [Decl] -> [Kind] -> [Stmt] -> Proc
+mkProc name inputs outputs stmts =
+  Proc { name = name,
+         inputs = inputs,
+         outputs = outputs,
+         stmts = stmts }
+
+-- A statement
+data Stmt
+  = Send String Var Var         -- Send a message
+  | Bind Decl Expr              -- Bind a variable to an expression
+  | Same String Var Var         -- Are two values the same?
+  | Ltkp String Var Var Var     -- Vars related by the ltk function?
+  | Invp String Var Var         -- Vars related by the invk function?
+  | Namp String Var Var         -- Vars related by the pubk function?
+  | Nm2p String Var Var Var     -- Vars related by the pubk2 function?
+  | Return [Var]                -- Return values from the procedure
+  | Comment String              -- Insert a comment
+
+-- Expressions
+data Expr
+  = Call Var [Var]
+  | Tag String
+
+data Item
+  = Cmt Pos String
+  | Defproc Pos Proc
+
+parse :: [SExpr Pos] -> IO [Item]
+parse xs = mapM parseItem xs
+
+parseItem :: SExpr Pos -> IO Item
+parseItem (L pos [S _ "comment", Q _ comment]) =
+  return $ Cmt pos comment
+parseItem (L pos (S _ "defproc" : S _ name : L _ inputs :
+               L _ outputs : xs)) =
+  do
+    inputs <- mapM parseDecl inputs
+    outputs <- mapM parseString outputs
+    stmts <- mapM parseStmt xs
+    return $ Defproc pos $ mkProc name inputs outputs stmts
+parseItem x =
+  fail (shows (annotation x) "Unrecogized S-Expression")
+
+parseDecl :: SExpr Pos -> IO Decl
+parseDecl (L _ [S _ name, S _ kind]) =
+  return (name, kind)
+parseDecl x =
+  fail (shows (annotation x) "Expecting a declaration")
+
+parseString :: SExpr Pos -> IO String
+parseString (S _ kind) =
+  return kind
+parseString x =
+  fail (shows (annotation x) "Expecting a string")
+
+parseStmt :: SExpr Pos -> IO Stmt
+parseStmt (L _ [S _ "let", L _ [S _ var, S _ kind], expr]) =
+  do
+    expr <- parseExpr expr
+    return $ Bind (var, kind) expr
+parseStmt (L _ [S _ op, S _ chan, S _ msg])
+  | prefix "send_" op =
+    return $ Send op chan msg
+parseStmt (L _ [S _ op, S _ x, S _ y])
+  | prefix "same_" op =
+    return $ Same op x y
+parseStmt (L _ [S _ "ltkp", S _ x, S _ y, S _ z]) =
+    return $ Ltkp "ltkp" x y z
+parseStmt (L _ [S _ op, S _ x, S _ y])
+  | prefix "invp_" op =
+    return $ Invp op x y
+parseStmt (L _ [S _ op, S _ x, S _ y])
+  | prefix "namp_" op =
+    return $ Namp op x y
+parseStmt (L _ [S _ op, S _ x, S _ y, S _ z])
+  | prefix "nm2p_" op =
+    return $ Nm2p op x y z
+parseStmt (L _ (S _ "return" : xs)) =
+  do
+    returns <- mapM parseString xs
+    return $ Return returns
+parseStmt (L _ [S _ "comment", Q _ comment]) =
+  return $ Comment comment
+parseStmt x =
+  fail (shows (annotation x) "Malformed statement")
+
+prefix :: String -> String -> Bool
+prefix [] _ = True
+prefix _ [] = False
+prefix (x : xs) (y : ys) = x == y && prefix xs ys
+
+parseExpr :: SExpr Pos -> IO Expr
+parseExpr (Q _ tag) =
+  return $ Tag tag
+parseExpr (L _ (x : xs)) =
+  do
+    string <- parseString x
+    strings <- mapM parseString xs
+    return $ Call string strings
+parseExpr x =
+  fail (shows (annotation x) "Malformed expression")
diff --git a/src/CPSA/Prot/Main.hs b/src/CPSA/Prot/Main.hs
--- a/src/CPSA/Prot/Main.hs
+++ b/src/CPSA/Prot/Main.hs
@@ -45,32 +45,21 @@
 
 data Params = Params
     { file :: Maybe FilePath,   -- Nothing specifies standard output
-      margin :: Int,            -- Output line length
-      doExpand :: Bool}         -- Expand macros first?
+      xpand :: Bool,            -- Expand macros first
+      margin :: Int}            -- Output line length
     deriving Show
 
-defaultIndent :: Int
-defaultIndent = optIndent defaultOptions
-
-defaultMargin :: Int
-defaultMargin = optMargin defaultOptions
-
 main :: IO ()
 main =
     do
       (p, params) <- start options interp
       sexprs <- readSExprs p
-      -- Could expand macros here
-      sexprs <- tryAbort (maybeExpand (doExpand params) sexprs)
+      sexprs <- tryAbort (maybeExpand (xpand params) sexprs)
       sexprs <- tryAbort (mapM translate sexprs)
       h <- outputHandle $ file params
       mapM_ (display (margin params) h) sexprs
       hClose h
 
-maybeExpand :: Bool -> [SExpr Pos] -> IO [SExpr Pos]
-maybeExpand False sexprs = return sexprs
-maybeExpand True sexprs = expand sexprs
-
 tryAbort :: IO a -> IO a
 tryAbort x =
   do
@@ -79,6 +68,10 @@
       Left err -> abort err
       Right a -> return a
 
+maybeExpand :: Bool -> [SExpr Pos] -> IO [SExpr Pos]
+maybeExpand False sexprs = return sexprs
+maybeExpand True sexprs = expand sexprs
+
 display :: Int -> Handle -> SExpr a -> IO ()
 display margin h x =
   do
@@ -89,32 +82,33 @@
 data Flag
     = Help                      -- Help
     | Info                      -- Version information
+    | Expand                    -- Expand macros first
     | Margin String             -- Output line length
     | Output String             -- Output file name
-    | Expand                    -- Expand macros
       deriving Show
 
 options :: [OptDescr Flag]
 options =
     [ Option ['o'] ["output"]   (ReqArg Output "FILE") "output FILE",
+      Option ['e'] ["expand"]   (NoArg Expand)         "expand macros first",
       Option ['m'] ["margin"]   (ReqArg Margin "INT")
       ("set output margin (default " ++ show defaultMargin ++ ")"),
-      Option ['e'] ["expand"]   (NoArg Expand)         "expand macros first",
       Option ['h'] ["help"]     (NoArg Help)           "show help message",
-      Option ['v'] ["version"]  (NoArg Info)           "show version number"]
+      Option ['v'] ["version"]  (NoArg Info)           "show version number" ]
 
 -- Interpret option flags
 interp :: [Flag] -> IO Params
 interp flags =
     loop flags (Params { file = Nothing, -- By default, no output file
-                         margin = defaultMargin, doExpand = False})
+                         xpand = False,  -- and don't expand macros
+                         margin = defaultMargin })
     where
       loop [] params = return params
-      loop (Expand : flags) params =
-              loop flags $ params { doExpand = True }
       loop (Output name : flags) params
           | file params == Nothing =
               loop flags $ params { file = Just name }
+      loop (Expand : flags) params =
+              loop flags $ params { xpand = True }
       loop (Margin value : flags) params =
           case readDec value of
             [(margin, "")] ->
@@ -186,18 +180,6 @@
   return (update from (L () (S () "send" : chmsg term)) env)
 msg _ (L p (S _ "from" : _)) =
   fail (shows p "Malformed from")
-msg env (L _ [S _ "init", S _ from, term]) =
-  return (update from (L () (S () "init" : chmsg term)) env)
-msg _ (L p (S _ "init" : _)) =
-  fail (shows p "Malformed init")
-msg env (L _ [S _ "obsv", S _ from, term]) =
-  return (update from (L () (S () "obsv" : chmsg term)) env)
-msg _ (L p (S _ "obsv" : _)) =
-  fail (shows p "Malformed obsv")
-msg env (L _ [S _ "tran", S _ from, term1, term2]) =
-  return (update from (L () (S () "tran" : [strip term1, strip term2])) env)
-msg _ (L p (S _ "tran" : _)) =
-  fail (shows p "Malformed tran")
 msg env (L _ [S _ "to", S _ to, term]) =
   return (update to (L () (S () "recv" : chmsg term)) env)
 msg _ (L p (S _ "to" : _)) =
@@ -244,7 +226,4 @@
 scrub (L () (S () "to" : _)) = False
 scrub (L () (S () "clone" : _)) = False
 scrub (L () (S () "assume" : _)) = False
-scrub (L () (S () "init" : _)) = False
-scrub (L () (S () "obsv" : _)) = False
-scrub (L () (S () "tran" : _)) = False
 scrub _ = True
diff --git a/src/CPSA/Protocol.hs b/src/CPSA/Protocol.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Protocol.hs
@@ -0,0 +1,891 @@
+-- Protocol data structures.
+
+-- Copyright (c) 2009 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module CPSA.Protocol (Event (..), evtCm, evtTerm, evtChan, evtMap, evt,
+    inbnd, outbnd, Trace, tterms, originates, originationPos,
+    generates, generationPos,
+    acquiredPos, gainedPos, genGainedPos, usedPos, insPrecedeOuts,
+    Role, rname, rvars, rtrace, rnon, rpnon, runique, runiqgen, rabsent,
+    rconf, rauth, rcomment, rsearch, rnorig, rpnorig, ruorig, rugen, rabs,
+    rpconf, rpauth, rpriority, mkRole, tchans, varSubset, varsInTerms,
+    addVars, firstOccurs, paramOfName, envsRoleParams,
+    AForm (..), NodeTerm, Goal (..), Conj,
+    aFormOrder, aFreeVars, instantiateAForm, instantiateConj, Rule (..),
+    Prot, mkProt, pname, alg, pgen, psig, roles,
+    nullaryrules, unaryrules, generalrules, rules, userrules, generatedrules,
+    listenerRole, varsAllAtoms, pcomment) where
+
+import qualified Data.List as L
+import qualified Data.Maybe as M
+import qualified Data.Set as S
+import CPSA.Lib.Utilities
+import CPSA.Lib.SExpr
+import CPSA.Algebra
+import CPSA.Channel
+import CPSA.Signature (Sig)
+
+{--
+import System.IO.Unsafe
+import Control.Exception (try)
+import System.IO.Error (ioeGetErrorString)
+
+z :: Show a => a -> b -> b
+z x y = unsafePerformIO (print x >> return y)
+
+zz :: Show a => a -> a
+zz x = z x x
+
+zb :: Show a => a -> Bool -> Bool
+zb a False = z a False
+zb _ b = b
+
+zn :: Show a => a -> Maybe b -> Maybe b
+zn x Nothing = z x Nothing
+zn _ y = y
+
+zf :: Show a => a -> Bool -> Bool
+zf x False = z x False
+zf _ y = y
+
+zt :: Show a => a -> Bool -> Bool
+zt x True = z x True
+zt _ y = y
+
+zl :: Show a => [a] -> [a]
+zl a = z (length a) a
+
+-- Also see showst
+--}
+
+-- Useful operations on variables
+
+-- Are the vars in ts a subset of the ones in ts'?
+varSubset :: [Term] -> [Term] -> Bool
+varSubset ts ts' =
+    all (flip elem (varsInTerms ts')) (varsInTerms ts)
+
+varsInTerms :: [Term] -> [Term]
+varsInTerms ts =
+    foldl addVars [] ts
+
+addVars :: [Term] -> Term -> [Term]
+addVars ts t = foldVars (flip adjoin) ts t
+
+-- Message events and traces
+
+data Event
+    = In !ChMsg                 -- Inbound message
+    | Out !ChMsg                -- Outbound message
+      deriving (Show, Eq, Ord)
+
+-- Extract the channel message
+evtCm :: Event -> ChMsg
+evtCm (In t) =  t
+evtCm (Out t) = t
+
+-- Dispatch to function based on direction.
+evt :: (Term -> a) -> (Term -> a) -> Event -> a
+evt inDir outDir evt =
+    case evt of
+      In t -> inDir $ cmTerm t
+      Out t -> outDir $ cmTerm t
+
+-- Extract the term in an event (evt id id).
+evtTerm :: Event -> Term
+evtTerm (In t) = cmTerm t
+evtTerm (Out t) = cmTerm t
+
+-- Extract the channel in an event.
+evtChan :: Event -> Maybe Term
+evtChan (In t) = cmChan t
+evtChan (Out t) = cmChan t
+
+-- Map the term in an event.
+evtMap :: (Term -> Term) -> Event -> Event
+evtMap f (In t) = In (cmMap f t)
+evtMap f (Out t) = Out (cmMap f t)
+
+-- Extract the channel message in an inbound event.
+inbnd :: Event -> Maybe ChMsg
+inbnd (In t) = Just t
+inbnd _ = Nothing
+
+-- Extract the channel message in an outbound event.
+outbnd :: Event -> Maybe ChMsg
+outbnd (Out t) = Just t
+outbnd _ = Nothing
+
+-- A trace is a list of events.  The terms in the trace are
+-- stored in causal order.
+type Trace = [Event]
+
+-- The set of terms in a trace.
+tterms :: Trace -> [Term]
+tterms c =
+    foldl (\ts evt -> adjoin (evtTerm evt) ts) [] c
+
+-- The set of channels in a term
+tchans :: Trace -> [Term]
+tchans c =
+  L.nub $ M.catMaybes (map evtChan c)
+
+-- Is the term carried by an event, and is the first one outgoing?
+originates :: Term -> Trace -> Bool
+originates _ [] = False         -- Term is not carried
+originates t (Out t' : c) = t `carriedBy` cmTerm t' || originates t c
+originates t (In t' : c) = not (t `carriedBy` cmTerm t') && originates t c
+
+-- At what position does a term originate in a trace?
+originationPos :: Term -> Trace -> Maybe Int
+originationPos t c =
+    loop 0 c
+    where
+      loop _ [] = Nothing       -- Term is not carried
+      loop pos (Out t' : c)
+          | t `carriedBy` cmTerm t' = Just pos -- Found it
+          | otherwise = loop (pos + 1) c
+      loop pos (In t' : c)
+          | t `carriedBy` cmTerm t' = Nothing -- Term does not originate
+          | otherwise = loop (pos + 1) c
+
+-- Does the term occur in an event, and is the first one outgoing?
+generates :: Term -> Trace -> Bool
+generates _ [] = False         -- Term does not occur
+generates t (Out t' : c) = t `constituent` cmTerm t' || generates t c
+generates t (In t' : c) = not (t `constituent` cmTerm t') && generates t c
+
+-- At what position does a term generate in a trace?
+generationPos :: Term -> Trace -> Maybe Int
+generationPos t c =
+    loop 0 c
+    where
+      maybeInv = invertKey t
+
+      testMaybe Nothing _ = False
+      testMaybe (Just tInv) ct = tInv `constituent` ct
+      test t ct = t `constituent` ct
+
+      loop _ [] = Nothing       -- Term does not occur
+      loop pos (Out t' : c)
+          | test t (cmTerm t') ||
+            testMaybe maybeInv (cmTerm t') = Just pos -- Found it
+          | otherwise = loop (pos + 1) c
+      loop pos (In t' : c)
+          | test t (cmTerm t') ||
+            testMaybe maybeInv (cmTerm t') = Nothing -- Term does not generate
+          | otherwise = loop (pos + 1) c
+
+-- At what position is a term acquired in a trace?
+acquiredPos :: Term -> Trace -> Maybe Int
+acquiredPos t c =
+    loop 0 c
+    where
+      loop _ [] = Nothing       -- Term does not occur
+      loop pos (In t' : c)
+          | t `carriedBy` cmTerm t' = Just pos -- Found it
+          | t `occursIn` cmTerm t' = Nothing   -- Occurs but is not carried
+          | otherwise = loop (pos + 1) c
+      loop pos (Out t' : c)
+          | t `occursIn` cmTerm t' = Nothing   -- Term occurs in outbound term
+          | otherwise = loop (pos + 1) c
+
+-- At what position is a term gained in a trace?
+gainedPos :: Term -> Trace -> Maybe Int
+gainedPos t c =
+    loop 0 c
+    where
+      loop _ [] = Nothing       -- Term is not carried
+      loop pos (Out t' : c)
+          | t `carriedBy` cmTerm t' = Nothing -- Term is not gained
+          | otherwise = loop (pos + 1) c
+      loop pos (In t' : c)
+          | t `carriedBy` cmTerm t' = Just pos -- Found it
+          | otherwise = loop (pos + 1) c
+
+-- At what position is a term gained in a trace?
+genGainedPos :: Term -> Trace -> Maybe Int
+genGainedPos t c =
+    loop 0 c
+    where
+      loop _ [] = Nothing       -- Term does not occur
+      loop pos (Out t' : c)
+          | t `constituent` cmTerm t' = Nothing -- Term is not gained
+          | otherwise = loop (pos + 1) c
+      loop pos (In t' : c)
+          | t `constituent` cmTerm t' = Just pos -- Found it
+          | otherwise = loop (pos + 1) c
+
+-- At what position do all of the variables in a term occur in a trace?
+usedPos :: Term -> Trace -> Maybe Int
+usedPos t c =
+    loop 0 (varsInTerms [t]) c
+    where
+      loop _ _ [] = Nothing
+      loop pos vars (e : c) =
+          let vars' = [ x | x <- vars, notElem x (varsInTerms [evtTerm e]) ] in
+          case vars' of
+            [] -> Just pos
+            _ -> loop (pos + 1) vars' c
+
+-- At what position is a channel in a trace?
+chanPos :: Term -> Trace -> Maybe Int
+chanPos t c =
+    loop 0 c
+    where
+      loop _ [] = Nothing       -- Channel is not in trace
+      loop pos (Out t' : c)
+          | Just t == cmChan t' = Just pos
+          | otherwise = loop (pos + 1) c
+      loop pos (In t' : c)
+          | Just t == cmChan t' = Just pos
+          | otherwise = loop (pos + 1) c
+
+insPrecedeOuts :: Int -> Int -> Trace -> Bool
+insPrecedeOuts lower upper c =
+    loopIns (upper-lower) (drop lower c)
+    where
+      loopIns _ [] = False    -- Ran out too soon
+      loopIns u (In _ : c)
+          | u==0 = True        -- Safely completed
+          | otherwise =
+              loopIns (u-1) c
+      loopIns u (Out _ : c)
+          | u==0 = True          -- Safely completed
+          | otherwise =
+              loopOuts (u-1) c
+
+      loopOuts _ [] = False   -- Ran out too soon
+      loopOuts _ (In _ : _) =
+          False -- Whoa:  Went back to Ins
+      loopOuts u (Out _ : c)
+          | u==0 = True        -- Safely completed
+          | otherwise =
+              loopOuts (u-1) c
+
+data Role = Role
+    { rname :: !String,
+      rvars :: ![Term],         -- Set of role variables
+                                -- Events in causal order
+      rtrace :: ![Event],
+      -- Set of non-originating atoms, possibly with a trace length
+      rnon :: ![(Maybe Int, Term)], -- that says when to inherit the atom
+      rpnon :: ![(Maybe Int, Term)], -- that says when to inherit the atom
+      runique :: ![Term],       -- Set of uniquely originating atoms
+      runiqgen :: ![Term],      -- Set of uniquely generated atoms
+      rabsent :: ![(Term, Term)], -- Role absence
+      rconf :: ![Term],         -- Confidential channels
+      rauth :: ![Term],         -- Authenticated channels
+      rcomment :: [SExpr ()],   -- Comments from the input
+      rsearch :: Bool, -- True when suggesting reverse test node search
+      rnorig :: [(Term, Int)],  -- Nons plus origination position
+      rpnorig :: [(Term, Int)], -- Penetrator nons plus origination position
+      ruorig :: [(Term, Int)],  -- Uniques plus origination position
+      rugen :: [(Term, Int)],   -- Uniq gens plus generation position
+      rabs :: [(Term, Term, Int)], -- Absent plus position
+      rpconf :: [(Term, Int)],  -- Confidentials plus origination position
+      rpauth :: [(Term, Int)],  -- Authenticated plus origination position
+      rpriority :: [Int] }      -- List of all priorities
+    deriving Show
+
+defaultPriority :: Int
+defaultPriority = 5
+
+-- | Compute the index of the first event at which the given variable
+-- occurs in a trace.
+firstOccursAt :: Term -> Trace -> Maybe Int
+firstOccursAt t c =
+    loop 0 c
+    where
+      loop _ [] = Nothing
+      loop i (e : c)
+          | any (occursIn t) (cmTerms $ evtCm e) = Just i
+          | otherwise = loop (i + 1) c
+
+-- The empty role name is used with listener strands.  All roles in a
+-- protocol must have a name with more than one character.
+
+-- The lists vars, non, pnon, and unique are sets and should never
+-- contain duplicate terms.
+
+-- Create a role
+mkRole :: String -> [Term] -> Trace ->
+          [(Maybe Int, Term)] -> [(Maybe Int, Term)] -> [Term] -> [Term] ->
+          [(Term, Term)] -> [Term] -> [Term] ->
+          [SExpr ()] -> [(Int, Int)] -> Bool -> Role
+mkRole name vars trace non pnon unique uniqgen absent
+    conf auth comment priority rev =
+    Role { rname = name,
+           rvars = L.nub vars,  -- Every variable here must
+           rtrace = trace,      -- occur in the trace.
+           rnon = non,
+           rpnon = pnon,
+           runique = L.nub unique,
+           runiqgen = uniqgen',
+           rabsent = absent',
+           rconf = L.nub conf,
+           rauth = L.nub auth,
+           rcomment = comment,
+           rnorig = map addNonOrig $ nonNub non,
+           rpnorig = map addNonOrig $ nonNub pnon,
+           ruorig = map addUniqueOrig $ L.nub unique,
+           rugen = map addUniqueGen uniqgen',
+           rabs = map addAbsentPos absent',
+           rpconf = map addChanPos $ L.nub conf,
+           rpauth = map addChanPos $ L.nub auth,
+           rpriority = addDefaultPrio priority,
+           rsearch = rev
+         }
+    where
+      uniqgen' = L.nub uniqgen
+      absent' = L.nub (traceAbsent trace uniqgen' ++ absent)
+      addUniqueOrig t =
+          case originationPos t trace of
+            Just p -> (t, p)
+            Nothing -> error "Protocol.mkRole: Atom does not uniquely originate"
+      addUniqueGen t =
+          case generationPos t trace of
+            Just p -> (t, p)
+            Nothing -> error "Protocol.mkRole: Atom does not uniquely generate"
+      addNonOrig (len, t) =
+          case usedPos t trace of
+            Nothing -> error "Protocol.mkRole: Atom variables not in trace"
+            Just p ->
+                case len of
+                  Nothing -> (t, p)
+                  Just len | len >= p -> (t, len)
+                           | otherwise -> error msg
+          where
+            msg = "Protocol.mkRole: Position for atom too early in trace"
+      addAbsentPos (x, y) =
+          case (usedPos x trace, usedPos y trace) of
+            (Just xp, Just yp) -> (x, y, max xp yp)
+            _ -> error msg
+          where
+            msg = "Protocol.mkRole: Absence variable not in trace"
+      addChanPos t =
+        case chanPos t trace of
+          Just p -> (t, p)
+          Nothing -> error "Protocol.mkRole: Channel not in trace"
+      -- Drop non-origination assumptions for the same atom.
+      nonNub nons =
+          reverse $ foldl f [] nons
+          where
+            f acc non@(_, t)
+                | any (\(_, t') -> t == t') acc = acc
+                | otherwise = non : acc
+      addDefaultPrio priority =
+          map f (nats $ length trace)
+          where
+            f n =
+              case lookup n priority of
+                Nothing -> defaultPriority
+                Just p -> p
+
+traceAbsent :: Trace -> [Term] -> [(Term, Term)]
+traceAbsent trace ugens =
+  concatMap indz_ininsts $ filter isNum ugens
+  where
+    indz_ininsts v =
+      case generationPos v trace of
+        Nothing -> error "Protocol.mkRole: Atom does not generate"
+        Just p -> indz_ininsts_var v p
+    -- ind-zero instances for a specific variable v that generates at height p
+    indz_ininsts_var v p =
+      map (\t -> (v, t)) (numsUpTo p)
+    -- returns a list of numeric subterms of all messages prior to height p.
+    numsUpTo p =
+      S.toList $ foldl f S.empty $ take p trace
+      where
+        f ts evt = S.union ts $ subNums $ evtTerm evt
+
+-- Return just the index of the first occurrence of v in the trace, or
+-- nothing.
+firstOccurs :: Term -> Role -> Maybe Int
+firstOccurs v r = firstOccursAt v (rtrace r)
+
+paramOfName :: String -> Role -> Maybe Term
+paramOfName name rl =
+    seek (rvars rl)
+    where
+      seek [] = Nothing
+      seek (v : rest)
+          | name == varName v = Just v -- $ z v v
+          | otherwise = seek rest
+
+envsRoleParams :: Role -> Gen -> [Term] -> [(Gen, Env)]
+envsRoleParams rl g =
+    foldl
+    (\ges v -> concatMap
+               (\ge -> case paramOfName (varName v) rl of
+                         Just p ->
+                             case match p v ge -- (z ("ingoing env: "
+                                               -- ++ (show ge)) ge)
+                             of
+                               [] ->  -- debug with z ("?" ++ (varName v))
+                                    [ge]
+                               xs -> --  z ("! " ++ (show v) ++ " for " ++ (show p)
+                                     -- ++ " in " ++ (show xs))
+                                     xs
+                         Nothing -> -- vars not locally bound may
+                                    -- occur elsewhere in formula
+                                   [ge])
+               ges)
+    [(g,emptyEnv)]
+
+-- Security Goals
+
+-- Syntax for the atomic formulas
+data AForm
+  = Length Role Term Term
+  | Param Role Term Int Term Term -- role param first-height strand value
+  | Prec NodeTerm NodeTerm
+  | Non Term
+  | Pnon Term
+  | Uniq Term
+  | UniqAt Term NodeTerm
+  | Ugen Term
+  | UgenAt Term NodeTerm
+  | GenStV Term
+  | Conf Term
+  | Auth Term
+  | Commpair NodeTerm NodeTerm
+  | SameLocn NodeTerm NodeTerm
+  | StateNode NodeTerm
+  | Trans NodeTerm
+  | LeadsTo NodeTerm NodeTerm
+  | AFact String [Term]
+  | Equals Term Term
+  | Component Term Term
+  deriving Show
+
+type NodeTerm = (Term, Term)
+
+data Goal =
+    Goal { uvars :: [Term],          -- Universally quantified variables
+           antec :: [AForm],         -- Antecedent
+           -- Consequent with existentially quantified variables
+           consq :: [([Term], [AForm])],
+           concl :: [[AForm]] }      -- Conclusion
+    deriving Show
+
+type Conj = [(Pos, AForm)]
+
+--   -- A HornRule has at most one disjunct, no existential
+--   data HornRule =
+--       HornRule { hruvars :: [Term],          -- Universally quantified variables
+--                  hrantec :: [AForm],         -- Antecedent
+--                  -- Consequent has no existentially quantified variables
+--                  hrconsq :: [AForm],         -- Conjunction of atomic
+--                                              -- formulas
+--                  hrname :: !String,
+--                  hrcomment :: [SExpr ()] }
+--       deriving Show
+--
+--   -- A general rule has more than one disjunct in conclusion,
+--   -- or else existentially bound vars
+--
+--   data GenRule =
+--       GenRule { gruvars :: [Term],          -- Universally quantified variables
+--                 grantec :: [AForm],         -- Antecedent
+--                 -- Consequent  with existentially quantified variables
+--                 -- Outer list is disjuncts, each w existential bindings
+--                 grconsq :: [([Term], [AForm])],
+--                 grname :: !String,
+--                 grcomment :: [SExpr ()] }
+--       deriving Show
+--
+--
+--   --   data Rule
+--   --     = Rule { rlname :: String,    -- Name of rule
+--   --              rlgoal :: Goal,      -- Sentence
+--   --              rlcomment :: [SExpr ()] }
+--   --       deriving Show
+
+indexOfAForm :: AForm -> Int
+indexOfAForm (Length _ _ _) = 0
+indexOfAForm (Param _ _ _ _ _) = 1
+indexOfAForm (Prec _ _) = 2
+indexOfAForm (Non _) = 3
+indexOfAForm (Pnon _) = 4
+indexOfAForm (Uniq _) = 5
+indexOfAForm (UniqAt _ _) = 6
+indexOfAForm (GenStV _) = 7
+indexOfAForm (Conf _) = 8
+indexOfAForm (Auth _) = 9
+indexOfAForm (Commpair _ _) = 10
+indexOfAForm (SameLocn _ _) = 11
+indexOfAForm (StateNode _) = 12
+indexOfAForm (Trans _) = 13
+indexOfAForm (LeadsTo _ _) = 14
+indexOfAForm (AFact _ _) = 15
+indexOfAForm (Equals _ _) = 16
+indexOfAForm (Component _ _) = 17
+indexOfAForm (Ugen _) = 18
+indexOfAForm (UgenAt _ _) = 19
+
+aFormOrder :: AForm -> AForm -> Ordering
+aFormOrder f f' = compare (indexOfAForm f) (indexOfAForm f')
+--
+--       let i' =   in
+--       case i == i' of
+--         True -> EQ
+--         False ->
+--             (case i < i' of
+--                True -> LT
+--                False -> GT)
+
+{--  -- Unmaintainable version that we had before!
+
+-- Ordering used to sort by constructor order.
+aFormOrder :: AForm -> AForm -> Ordering
+aFormOrder (Length _ _ _) (Length _ _ _) = EQ
+aFormOrder (Length _ _ _) (Param _ _ _ _ _) = LT
+aFormOrder (Length _ _ _) (Prec _ _) = LT
+aFormOrder (Length _ _ _) (Non _) = LT
+aFormOrder (Length _ _ _) (Pnon _) = LT
+aFormOrder (Length _ _ _) (Uniq _) = LT
+aFormOrder (Length _ _ _) (UniqAt _ _) = LT
+aFormOrder (Length _ _ _) (GenStV _) = LT
+aFormOrder (Length _ _ _) (Conf _ ) = LT
+aFormOrder (Length _ _ _) (Auth _) = LT
+aFormOrder (Length _ _ _) (AFact _ _) = LT
+aFormOrder (Length _ _ _) (Equals _ _) = LT
+aFormOrder (Param _ _ _ _ _) (Length _ _ _) = GT
+aFormOrder (Param _ _ _ _ _) (Param _ _ _ _ _) = EQ
+aFormOrder (Param _ _ _ _ _) (Prec _ _) = LT
+aFormOrder (Param _ _ _ _ _) (Non _) = LT
+aFormOrder (Param _ _ _ _ _) (Pnon _) = LT
+aFormOrder (Param _ _ _ _ _) (Uniq _) = LT
+aFormOrder (Param _ _ _ _ _) (UniqAt _ _) = LT
+aFormOrder (Param _ _ _ _ _) (GenStV _) = LT
+aFormOrder (Param _ _ _ _ _) (Conf _ ) = LT
+aFormOrder (Param _ _ _ _ _) (Auth _) = LT
+aFormOrder (Param _ _ _ _ _) (AFact _ _) = LT
+aFormOrder (Param _ _ _ _ _) (Equals _ _) = LT
+aFormOrder (Prec _ _) (Length _ _ _) = GT
+aFormOrder (Prec _ _) (Param _ _ _ _ _) = GT
+aFormOrder (Prec _ _) (Prec _ _) = EQ
+aFormOrder (Prec _ _) (Non _) = LT
+aFormOrder (Prec _ _) (Pnon _) = LT
+aFormOrder (Prec _ _) (Uniq _) = LT
+aFormOrder (Prec _ _) (UniqAt _ _) = LT
+aFormOrder (Prec _ _) (GenStV _) = LT
+aFormOrder (Prec _ _) (Conf _ ) = LT
+aFormOrder (Prec _ _) (Auth _) = LT
+aFormOrder (Prec _ _) (AFact _ _) = LT
+aFormOrder (Prec _ _) (Equals _ _) = LT
+aFormOrder (Non _) (Length _ _ _) = GT
+aFormOrder (Non _) (Param _ _ _ _ _) = GT
+aFormOrder (Non _) (Prec _ _) = GT
+aFormOrder (Non _) (Non _) = EQ
+aFormOrder (Non _) (Pnon _) = LT
+aFormOrder (Non _) (Uniq _) = LT
+aFormOrder (Non _) (UniqAt _ _) = LT
+aFormOrder (Non _) (GenStV _) = LT
+aFormOrder (Non _) (Conf _ ) = LT
+aFormOrder (Non _) (Auth _) = LT
+aFormOrder (Non _) (AFact _ _) = LT
+aFormOrder (Non _) (Equals _ _) = LT
+aFormOrder (Pnon _) (Length _ _ _) = GT
+aFormOrder (Pnon _) (Param _ _ _ _ _) = GT
+aFormOrder (Pnon _) (Prec _ _) = GT
+aFormOrder (Pnon _) (Non _) = GT
+aFormOrder (Pnon _) (Pnon _) = EQ
+aFormOrder (Pnon _) (Uniq _) = LT
+aFormOrder (Pnon _) (UniqAt _ _) = LT
+aFormOrder (Pnon _) (GenStV _) = LT
+aFormOrder (Pnon _) (Conf _ ) = LT
+aFormOrder (Pnon _) (Auth _) = LT
+aFormOrder (Pnon _) (AFact _ _) = LT
+aFormOrder (Pnon _) (Equals _ _) = LT
+aFormOrder (Uniq _) (Length _ _ _) = GT
+aFormOrder (Uniq _) (Param _ _ _ _ _) = GT
+aFormOrder (Uniq _) (Prec _ _) = GT
+aFormOrder (Uniq _) (Non _) = GT
+aFormOrder (Uniq _) (Pnon _) = GT
+aFormOrder (Uniq _) (Uniq _) = EQ
+aFormOrder (Uniq _) (UniqAt _ _) = LT
+aFormOrder (Uniq _) (GenStV _) = LT
+aFormOrder (Uniq _) (Conf _ ) = LT
+aFormOrder (Uniq _) (Auth _) = LT
+aFormOrder (Uniq _) (AFact _ _) = LT
+aFormOrder (Uniq _) (Equals _ _) = LT
+aFormOrder (UniqAt _ _) (Length _ _ _) = GT
+aFormOrder (UniqAt _ _) (Param _ _ _ _ _) = GT
+aFormOrder (UniqAt _ _) (Prec _ _) = GT
+aFormOrder (UniqAt _ _) (Non _) = GT
+aFormOrder (UniqAt _ _) (Pnon _) = GT
+aFormOrder (UniqAt _ _) (Uniq _) = GT
+aFormOrder (UniqAt _ _) (UniqAt _ _) = EQ
+aFormOrder (UniqAt _ _) (GenStV _ ) = LT
+aFormOrder (UniqAt _ _) (Conf _ ) = LT
+aFormOrder (UniqAt _ _) (Auth _) = LT
+aFormOrder (UniqAt _ _) (AFact _ _) = LT
+aFormOrder (UniqAt _ _) (Equals _ _) = LT
+aFormOrder (GenStV _) (Length _ _ _) = GT
+aFormOrder (GenStV _) (Param _ _ _ _ _) = GT
+aFormOrder (GenStV _) (Prec _ _) = GT
+aFormOrder (GenStV _) (Non _) = GT
+aFormOrder (GenStV _) (Pnon _) = GT
+aFormOrder (GenStV _) (Uniq _) = GT
+aFormOrder (GenStV _) (UniqAt _ _) = GT
+aFormOrder (GenStV _) (GenStV _ ) = EQ
+aFormOrder (GenStV _) (Conf _ ) = LT
+aFormOrder (GenStV _) (Auth _) = LT
+aFormOrder (GenStV _) (AFact _ _) = LT
+aFormOrder (GenStV _) (Equals _ _) = LT
+aFormOrder (Conf _ ) (Length _ _ _) = GT
+aFormOrder (Conf _ ) (Param _ _ _ _ _) = GT
+aFormOrder (Conf _ ) (Prec _ _) = GT
+aFormOrder (Conf _ ) (Non _) = GT
+aFormOrder (Conf _ ) (Pnon _) = GT
+aFormOrder (Conf _ ) (Uniq _) = GT
+aFormOrder (Conf _ ) (UniqAt _ _) = GT
+aFormOrder (Conf _ ) (GenStV _) = GT
+aFormOrder (Conf _ ) (Conf _ ) = EQ
+aFormOrder (Conf _ ) (Auth _) = LT
+aFormOrder (Conf _ ) (AFact _ _) = LT
+aFormOrder (Conf _ ) (Equals _ _) = LT
+aFormOrder (Auth _) (Length _ _ _) = GT
+aFormOrder (Auth _) (Param _ _ _ _ _) = GT
+aFormOrder (Auth _) (Prec _ _) = GT
+aFormOrder (Auth _) (Non _) = GT
+aFormOrder (Auth _) (Pnon _) = GT
+aFormOrder (Auth _) (Uniq _) = GT
+aFormOrder (Auth _) (UniqAt _ _) = GT
+aFormOrder (Auth _) (GenStV _) = GT
+aFormOrder (Auth _) (Conf _ ) = GT
+aFormOrder (Auth _) (Auth _) = EQ
+aFormOrder (Auth _) (AFact _ _) = LT
+aFormOrder (Auth _) (Equals _ _) = LT
+aFormOrder (AFact _ _) (Length _ _ _) = GT
+aFormOrder (AFact _ _) (Param _ _ _ _ _) = GT
+aFormOrder (AFact _ _) (Prec _ _) = GT
+aFormOrder (AFact _ _) (Non _) = GT
+aFormOrder (AFact _ _) (Pnon _) = GT
+aFormOrder (AFact _ _) (Uniq _) = GT
+aFormOrder (AFact _ _) (UniqAt _ _) = GT
+aFormOrder (AFact _ _) (GenStV _) = GT
+aFormOrder (AFact _ _) (Conf _ ) = GT
+aFormOrder (AFact _ _) (Auth _) = GT
+aFormOrder (AFact _ _) (AFact _ _) = EQ
+aFormOrder (AFact _ _) (Equals _ _) = LT
+aFormOrder (Equals _ _) (Length _ _ _) = GT
+aFormOrder (Equals _ _) (Param _ _ _ _ _) = GT
+aFormOrder (Equals _ _) (Prec _ _) = GT
+aFormOrder (Equals _ _) (Non _) = GT
+aFormOrder (Equals _ _) (Pnon _) = GT
+aFormOrder (Equals _ _) (Uniq _) = GT
+aFormOrder (Equals _ _) (UniqAt _ _) = GT
+aFormOrder (Equals _ _) (GenStV _) = GT
+aFormOrder (Equals _ _) (Conf _ ) = GT
+aFormOrder (Equals _ _) (Auth _) = GT
+aFormOrder (Equals _ _) (AFact _ _) = GT
+aFormOrder (Equals _ _) (Equals _ _) = EQ
+--}
+
+aFreeVars :: [Term] -> AForm -> [Term]
+aFreeVars vars (Length _ z _) = addVars vars z
+aFreeVars vars (Param _ _ _ z t) = addVars (addVars vars z) t
+aFreeVars vars (Prec (x, i) (y, j)) = addVars (addVars (addVars (addVars vars x) y) i) j
+aFreeVars vars (Non t) = addVars vars t
+aFreeVars vars (Pnon t) = addVars vars t
+aFreeVars vars (Uniq t) = addVars vars t
+aFreeVars vars (UniqAt t (z, i)) = addVars (addVars (addVars vars t) z) i
+aFreeVars vars (Ugen t) = addVars vars t
+aFreeVars vars (UgenAt t (z, i)) = addVars (addVars (addVars vars t) z) i
+aFreeVars vars (GenStV t) = addVars vars t
+aFreeVars vars (Conf t) = addVars vars t
+aFreeVars vars (Auth t) = addVars vars t
+aFreeVars vars (AFact _ ft) = foldl addVars vars ft
+aFreeVars vars (Equals x y) = addVars (addVars vars x) y
+aFreeVars vars (Component x y) = addVars (addVars vars x) y
+aFreeVars vars (Commpair (s,t) (s',t')) = addVars (addVars (addVars (addVars vars s) t) s') t'
+aFreeVars vars (SameLocn (s,t) (s',t')) = addVars (addVars (addVars (addVars vars s) t) s') t'
+aFreeVars vars (StateNode (s,t)) = addVars (addVars vars s) t
+aFreeVars vars (Trans (s,t)) = addVars (addVars vars s) t
+aFreeVars vars (LeadsTo (s,t) (s',t')) = addVars (addVars (addVars (addVars vars s) t) s') t'
+
+instantiateAForm :: Env -> AForm -> AForm
+instantiateAForm e (Length rl z v) =
+    (Length rl (instantiate e z) (instantiate e v))
+instantiateAForm e (Param rl p i z t) =
+    (Param rl p i (instantiate e z) (instantiate e t))
+instantiateAForm e (Prec (x, i) (y, j)) =
+    (Prec
+     ((instantiate e x), (instantiate e i))
+     ((instantiate e y), (instantiate e j)))
+instantiateAForm e (Non t) =
+    (Non (instantiate e t))
+instantiateAForm e (Pnon t) =
+    (Pnon (instantiate e t))
+instantiateAForm e (Uniq t) =
+    (Uniq (instantiate e t))
+instantiateAForm e (UniqAt t (z, i)) =
+    (UniqAt
+     (instantiate e t)
+     ((instantiate e z), (instantiate e i)))
+instantiateAForm e (Ugen t) =
+    (Ugen (instantiate e t))
+instantiateAForm e (UgenAt t (z, i)) =
+    (UgenAt
+     (instantiate e t)
+     ((instantiate e z), (instantiate e i)))
+instantiateAForm e (GenStV t) =
+    (GenStV (instantiate e t))
+instantiateAForm e (Conf t) =
+    (Conf (instantiate e t))
+instantiateAForm e (Auth t) =
+    (Auth (instantiate e t))
+instantiateAForm e (AFact pred ft) =
+    (AFact pred (map (instantiate e) ft))
+instantiateAForm e (Equals x y) =
+    (Equals
+     (instantiate e x)
+     (instantiate e y))
+instantiateAForm e (Component x y) =
+    (Component
+     (instantiate e x)
+     (instantiate e y))
+instantiateAForm e (Commpair (s,t) (s',t')) =
+    (Commpair
+     ((instantiate e s), (instantiate e t))
+     ((instantiate e s'), (instantiate e t')))
+instantiateAForm e (SameLocn (s,t) (s',t')) =
+    (SameLocn
+     ((instantiate e s), (instantiate e t))
+     ((instantiate e s'), (instantiate e t')))
+instantiateAForm e (StateNode (s,t)) =
+    (StateNode
+     ((instantiate e s), (instantiate e t)))
+instantiateAForm e (Trans (s,t)) =
+    (Trans
+     ((instantiate e s), (instantiate e t)))
+instantiateAForm e (LeadsTo (s,t) (s',t')) =
+    (LeadsTo
+     ((instantiate e s), (instantiate e t))
+     ((instantiate e s'), (instantiate e t')))
+
+instantiateConj :: Env -> Conj -> Conj
+instantiateConj e =
+    map (\(p,a) -> (p, instantiateAForm e a))
+
+data Rule
+  = Rule { rlname :: String,    -- Name of rule
+           rlgoal :: Goal,      -- Sentence
+           rlcomment :: [SExpr ()] }
+    deriving Show
+
+--   data HGRule = H HornRule
+--               | G GenRule
+
+data RuleKind = NullaryRule | UnaryRule | GeneralRule
+
+classifyRule :: Rule -> RuleKind
+classifyRule r =
+    let gl = rlgoal r in
+    case consq gl of
+      []           -> NullaryRule    -- null disjunction = false
+      [([],_)]     -> UnaryRule      -- single disjunct, no existentials
+      _            -> GeneralRule    -- multiple branches or any existentials
+
+-- partition the rules given into three lists,
+-- containing resp.
+-- (i) those with empty (false) conclusion;
+-- (ii) those with unary, existential-free conclusion;
+-- (iii) those with multiple disjuncts or existential quantifiers
+
+classifyRules :: [Rule] -> ([Rule],[Rule],[Rule])
+classifyRules =
+    foldl
+    (\(nullSoFar,unarySoFar,genSoFar) rl ->
+         case classifyRule rl of
+           NullaryRule -> (rl : nullSoFar, unarySoFar, genSoFar)
+           UnaryRule   -> (nullSoFar, rl : unarySoFar, genSoFar)
+           GeneralRule -> (nullSoFar, unarySoFar, rl : genSoFar))
+    ([],[],[])
+
+-- Protocols
+
+data Prot
+    = Prot { pname :: !String,  -- Name of the protocol
+             alg :: !String,    -- Name of the algebra
+             pgen :: !Gen,      -- Initial variable generator
+             psig :: !Sig,      -- The signature
+             roles :: ![Role], -- Non-listener roles of a protocol
+             listenerRole :: Role,
+             nullaryrules :: ![Rule], -- Protocol rules: False conclusion
+             unaryrules :: ![Rule],   -- Protocol rules: no branching
+                                      -- or existential
+             generalrules :: ![Rule], -- Protocol rules: may branch
+                                      -- and introduce ex. bound vars
+             userrules :: ![Rule],    -- those rules explicitly
+                                      -- written by the user
+             generatedrules :: ![Rule],  -- those rules created by
+                                       -- the loader
+             varsAllAtoms :: !Bool,   -- Are all role variables atoms?
+             pcomment :: [SExpr ()] }  -- Comments from the input
+    deriving Show
+
+-- Callers should ensure every role has a distinct name.
+mkProt :: String -> String -> Gen -> Sig ->
+          [Role] -> Role -> [Rule] -> [Rule] -> [Rule] -> [SExpr ()] -> Prot
+mkProt name alg gen sig roles lrole rules written generated comment =
+    let (nrs,urs,grs) = classifyRules rules in
+    Prot { pname = name, alg = alg, pgen = gen, psig = sig, roles = roles,
+           listenerRole = lrole,
+           nullaryrules = nrs, unaryrules = urs,  generalrules = grs,
+           userrules = written, generatedrules = generated,
+           pcomment = comment,
+           varsAllAtoms = all roleVarsAllAtoms roles }
+    where
+      roleVarsAllAtoms role = all isAtom (rvars role)
+
+rules :: Prot -> [Rule]
+rules p = nullaryrules p ++ unaryrules p ++ generalrules p
+
+{- aFormOrder generator
+
+-- Generate the aFormOrder relation from a list of constructors
+
+module Main (main) where
+
+main :: IO ()
+main =
+  mapM_ putStrLn $ map output comps
+
+-- Format output
+output :: (String, String, String) -> String
+output (x, y, c) =
+  "aFormOrder (" ++ x ++ ") (" ++ y ++ ") = " ++ c
+
+-- Compute comparisons
+comps :: [(String, String, String)]
+comps = [ (x, y, show $ compare i j) |
+          (x, i) <- pairs,
+          (y, j) <- pairs ]
+
+-- Add in list position
+pairs :: [(String, Int)]
+pairs = zip constrs [0..]
+
+-- Constructors
+constrs :: [String]
+constrs = [
+  "Length _ _ _",
+  "Param _ _ _ _ _",
+  "Prec _ _",
+  "Non _",
+  "Pnon _",
+  "Uniq _",
+  "UniqAt _ _",
+  "Conf _ ",
+  "Auth _",
+  "AFact _ _",
+  "Equals _ _" ]
+-}
diff --git a/src/CPSA/Reduction.hs b/src/CPSA/Reduction.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Reduction.hs
@@ -0,0 +1,571 @@
+-- Term reduction for the CPSA solver.
+
+-- Copyright (c) 2010 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+-- Provides the top-level search loop, which implements term reduction
+-- on skeletons.
+
+module CPSA.Reduction (solve) where
+
+import System.IO
+import Control.Parallel
+import qualified Data.List as L
+import CPSA.Lib.Utilities
+import CPSA.Lib.SExpr
+import CPSA.Lib.Entry
+import CPSA.Options
+import CPSA.Algebra
+import CPSA.Protocol
+import CPSA.Strand
+import CPSA.Cohort
+import CPSA.Displayer
+
+{--
+import System.IO.Unsafe
+import Control.Exception (try)
+import System.IO.Error (ioeGetErrorString)
+
+zP :: Show a => a -> b -> b
+zP x y = unsafePerformIO (print x >> return y)
+
+zz :: Show a => a -> a
+zz x = zP x x
+
+zb :: Show a => a -> Bool -> Bool
+zb a False = zP a False
+zb _ b = b
+
+zn :: Show a => a -> Maybe b -> Maybe b
+zn x Nothing = zP x Nothing
+zn _ y = y
+
+zf :: Show a => a -> Bool -> Bool
+zf x False = zP x False
+zf _ y = y
+
+zt :: Show a => a -> Bool -> Bool
+zt x True = zP x True
+zt _ y = y
+
+zl :: Show a => [a] -> [a]
+zl a = zP (length a) a
+
+zi :: Instance -> String
+zi inst =
+    show (map f e)
+    where
+      domain = rvars (role inst)
+      e = reify domain (env inst)
+      range = map snd e
+      f (x, t) = (displayTerm (context domain) x,
+                  displayTerm (context range) t)
+      context ts = addToContext emptyContext ts
+
+zv :: Preskel -> String
+zv k =
+  unsafePerformIO $ do
+    y <- try $ verbosePreskelWellFormed k
+    case y of
+      Right _ ->
+        return "preskel well formed"
+      Left err ->
+        return $ ioeGetErrorString err
+
+-- Also see showst
+--}
+
+-- Set when debugging an exception so that buffered results get out.
+useFlush :: Bool
+useFlush = True                -- False
+
+-- Possibly generalization is no longer needed, to find all of the
+-- shapes?  To find out if this is true, and reap the benefits if it
+-- is, we add the dieOnGeneralization flag.  It causes a
+-- generalization step to terminate the search branch.
+
+-- Conclusion:  generalization is definitely needed, since it can
+-- remove listeners as unnecessary.  You wouldn't want every branch
+-- with listeners to silently disappear when CPSA notes that they can
+-- be generalized away.  ( :- )
+
+dieOnGeneralization :: Bool
+dieOnGeneralization = False -- True
+
+-- Parameter driven S-expression printer
+wrt :: Options -> Handle -> SExpr a -> IO ()
+wrt p h sexpr =
+    do
+      writeLnSExpr h (optMargin p) sexpr
+      if useFlush then hFlush h else return ()
+
+-- A labeled and linked preskeleton
+data LPreskel
+    = LPreskel { content :: Preskel,
+                 label :: Int,
+                 depth :: Int,
+                 parent :: Maybe LPreskel }
+      deriving Show
+
+withParent :: Preskel -> Int ->  LPreskel -> LPreskel
+withParent k label parent =
+    LPreskel k label (1 + depth parent) (Just parent)
+
+-- A skeleton that has been seen before need not be reanalyzed.
+-- Instead, one looks up the label of the skeleton seen before, and
+-- returns it.  What follows is the data structure used to store
+-- information in the seen history used for the isomorphism check.
+-- The integer is the label of the seen skeleton.
+type IPreskel = (Gist, Int)
+
+-- Is the skeleton summarized by gist g isomorphic to one with the
+-- given label?
+wasSeen :: Gist -> IPreskel -> Bool
+wasSeen g (g', _) = isomorphic g g'
+
+-- A seen history as a list.
+
+newtype Seen = Seen [IPreskel]
+
+-- Create a singleton seen history
+hist :: IPreskel -> Seen
+hist ik = Seen [ik]
+
+-- Add an element to the seen history.
+remember :: IPreskel -> Seen -> Seen
+remember ik (Seen seen) = Seen (ik : seen)
+
+-- Find an element of the seen history that satisfies a predicate.
+recall :: (IPreskel -> Bool) -> Seen -> Maybe (IPreskel)
+recall f (Seen seen) = L.find f seen
+
+-- Create an empty seen history
+void :: Seen
+void = Seen []
+
+-- Merge two seen histories.
+merge :: Seen -> Seen -> Seen
+merge (Seen xs) (Seen ys) = Seen (xs ++ ys)
+
+-- Contains the result of applying the cohort reduction rule.  The
+-- ReductStable case reports a shape
+
+-- The last position in the Reduct case is used to hold the reverse of
+-- the labels of the seen children.
+
+-- The Genlz case contains the result of a generalization step,
+-- structured like a Reduct case.
+
+data Reduct t g s e
+    = ReductStable !(LPreskel)
+    | Reduct !(LPreskel) !Int ![Preskel] ![Int]
+    | Genlz !(LPreskel) !Int ![Preskel] ![Int]
+
+parMap :: (a -> b) -> [a] -> [b]
+parMap _ [] = []
+parMap f (x:xs) =
+    par y (pseq ys (y:ys))
+    where
+      y = f x
+      ys = parMap f xs
+
+{--  Turn off parallism with this:
+
+parMap :: (a -> b) -> [a] -> [b]
+parMap = map
+
+-}
+
+-- Entry point for analysis
+-- n is the step count
+solve :: Options -> Handle -> [Preskel] -> Int -> IO ()
+solve _ h [] _ =                -- Done
+    hClose h
+solve p h (k : ks) n =
+    do
+      wrt p h (displayProt (protocol k)) -- show protocol
+      case firstSkeleton k of
+        [] ->                  -- Input cannot be made into a skeleton
+            do
+              let lk = LPreskel k n 0 Nothing
+              wrt p h (commentPreskel lk [] (unrealized k) Ordinary Dead -- Mark this case dead
+                       "Input cannot be made into a skeleton--nothing to do")
+              solve p h ks (n + 1)
+        [k'] ->
+            if isomorphic (gist k) (gist k') then -- Input was a skeleton
+                let lk' = LPreskel k' n 0 Nothing in
+                begin p h ks (n + optLimit p) (n + 1)
+                         (hist (gist k', n)) lk'
+            else                -- Input was not a skeleton
+                do
+                  let lk = LPreskel k n (-1) Nothing
+                  wrt p h (commentPreskel lk [] (unrealized k) Ordinary
+                           Preskeleton "Not a skeleton")
+                  let lk' = withParent k' (n + 1) lk
+                  begin p h ks (n + optLimit p) (n + 2)
+                           (hist (gist k', n + 1)) lk'
+        _ -> error "Main.solve: can't handle more than one skeleton"
+
+-- Begin by applying rules as much as possible.
+begin :: Options -> Handle -> [Preskel] -> Int -> Int -> Seen ->
+         LPreskel -> IO ()
+begin p h ks m n seen lk =
+  let k = content lk in
+  case rewrite k of
+    Nothing -> search p h ks m n seen [lk] []
+    Just kids ->
+      do
+        wrt p h (commentPreskel lk [] (unrealized k) Ordinary
+                  Nada "Not closed under rules")
+        let (n', seen', todo', _) =
+              foldl (next lk) (n, seen, [], []) kids
+        search p h ks m n' seen' (reverse todo') []
+
+-- Apply collapse until all possibilities are exhausted.
+search :: Options -> Handle -> [Preskel] -> Int -> Int -> Seen ->
+            [LPreskel] -> [LPreskel] -> IO ()
+search p h ks m n seen [] done =
+    mode p h ks m n seen (reverse done)
+search p h ks m n seen (lk:todo) done =
+    do
+      let kids = concatMap simplify (collapse $ content lk)
+      let (n', seen', todo', _) =
+              foldl (next lk) (n, seen, todo, []) kids
+      search p h ks m n' seen' todo' (lk:done)
+
+-- Select reduction mode, noIsoChk or normal
+mode :: Options -> Handle -> [Preskel] -> Int -> Int -> Seen ->
+        [LPreskel] -> IO ()
+mode p h ks m n seen todo =
+    if optNoIsoChk p then
+        fast p h ks m n todo     -- Peform no isomorphism checks
+    else
+        breadth p h ks m n seen todo []
+
+-- The main loop is implemented using breadth and step.  Tail calls
+-- are used to ensure they do not add to the control stack.
+
+-- Function breadth handles one level of the derivation tree.
+-- This ensures a breadth first derivation order.
+--
+-- p is the runtime options
+-- h is the output handle
+-- ks is the list of problems
+-- m is the step limit
+-- n is the current step count
+-- seen holds the gists of seen skeletons
+-- todo holds unreduced skeletons
+-- toobig holds skeletons that have exceed the strand bound.
+breadth :: Options -> Handle -> [Preskel] -> Int -> Int -> Seen ->
+           [LPreskel] -> [LPreskel] -> IO ()
+breadth p h ks _ n _ [] [] =       -- Empty todo list and toobig list
+    do
+      wrt p h (comment "Nothing left to do")
+      solve p h ks n            -- Solve next problem
+breadth p h _ _ _ _ [] toobig = -- Empty todo list and non-null toobig list
+    do
+      wrt p h (comment "Strand bound exceeded--aborting run")
+      dump p h (reverse toobig)  "Strand bound exceeded"
+breadth p h ks m n seen todo toobig =
+    step p h ks m seen n void [] toobig (parMap (branch p seen) todo)
+
+-- Function step handles one skeleton in one level of the tree.
+step :: Options -> Handle -> [Preskel] -> Int -> Seen -> Int ->
+        Seen -> [LPreskel] -> [LPreskel] -> [Reduct t g s e] -> IO ()
+step p h ks m oseen n seen todo toobig [] = -- Empty reducts
+    breadth p h ks m n (merge seen oseen) (reverse todo) toobig
+step p h _ m _ n _ todo toobig reducts
+    | n > m =                   -- Check step count
+        do
+          wrt p h (comment "Step limit exceeded--aborting run")
+          dump p h (mktodo reducts todo toobig) "Step limit exceeded"
+step p h ks m oseen n seen todo toobig (Reduct lk _ _  _  : reducts)
+    | nstrands (content lk) >= optBound p = -- Check strand count
+        step p h ks m oseen n seen todo (lk : toobig) reducts
+step p h ks m oseen n seen todo toobig (ReductStable lk : reducts) =
+    case recall (wasSeen (gist (content lk))) seen of
+      Just (_, _) ->
+      --           zP ("seen", label lk) $
+          step p h ks m oseen n seen todo toobig reducts
+      Nothing ->
+          do
+            wrt p h (commentPreskel lk [] [] Shape Nada "")
+      -- zP ("unseen", label lk) $
+            step p h ks m oseen n seen todo toobig reducts
+
+step p h ks m oseen n seen todo toobig (Genlz lk size kids dups : reducts)
+    | dieOnGeneralization =
+        do
+          let ns = unrealized (content lk)
+          wrt p h (commentPreskel lk [] ns Ordinary Dead "died of generalization")
+          step p h ks m oseen n seen todo toobig reducts
+    | otherwise =
+      step p h ks m oseen n seen todo toobig (Reduct lk size kids dups : reducts)
+
+step p h ks m oseen n seen todo toobig (Reduct lk size kids dups : reducts)
+    | optGoalsSat p && satCheck lk = -- Stop if goals satisfied mode?
+        do
+          let ns = unrealized (content lk)
+          let shape = if null ns then Shape else Fringe
+          wrt p h (commentPreskel lk [] ns shape SatisfiesAll "satisfies all")
+          step p h ks m oseen n seen todo toobig reducts
+    | size <= 0 =               -- Interpret empty reducts
+        do
+          let ns = unrealized (content lk)
+              -- let shape = null ns
+              --             case shape of
+              --               True -> wrt p h (commentPreskel lk [] ns Shape Nada "")
+              --               False  ->
+          wrt p h (commentPreskel lk [] ns Ordinary Dead "empty cohort")
+          step p h ks m oseen n seen todo toobig reducts
+    | optDepth p > 0 && depth lk >= optDepth p =
+        do
+          let ns = unrealized (content lk)
+          wrt p h (commentPreskel lk [] ns Fringe Nada "")
+          step p h ks m oseen n seen todo toobig reducts
+    | otherwise =
+        do
+          let (n', seen', todo', dups') =
+                  foldl (next lk) (n, seen, todo, dups) kids
+          let ns = unrealized (content lk)
+          let u = size - length dups'
+          let msg = shows size $ showString " in cohort - " $
+                         shows u " not yet seen"
+          wrt p h (commentPreskel lk (reverse dups') ns Ordinary Nada msg)
+          step p h ks m oseen n' seen' todo' toobig reducts
+
+-- Expands one branch in the derivation tree.
+branch :: Options -> Seen -> LPreskel -> Reduct t g s e
+branch p seen lk =
+    case reduce (mkMode p) (content lk) of
+      Stable -> ReductStable lk
+      Crt kids ->
+          Reduct lk (length kids) (seqList $ reverse unseen) (seqList dups)
+        where
+          (unseen, dups) =
+              foldl (duplicates seen) ([], []) kids
+      Gnl kids ->
+          Genlz lk (length kids) (seqList $ reverse unseen) (seqList dups)
+        where
+          (unseen, dups) =
+              foldl (duplicates seen) ([], []) kids
+
+mkMode :: Options -> Mode
+mkMode p =
+    Mode { noGeneralization = optNoIsoChk p,
+           nonceFirstOrder = optCheckNoncesFirst p,
+           visitOldStrandsFirst = optTryOldStrandsFirst p,
+           reverseNodeOrder = optTryYoungNodesFirst p}
+
+duplicates :: Seen -> ([Preskel], [Int]) -> Preskel -> ([Preskel], [Int])
+duplicates seen (unseen, dups) kid =
+    case recall (wasSeen $ gist kid) seen of
+      Just (_, label) -> (unseen, label : dups)
+      Nothing -> (kid : unseen, dups)
+
+-- Make a todo list for dump
+mktodo :: [Reduct t g s e] -> [LPreskel] -> [LPreskel] -> [LPreskel]
+mktodo reducts todo toobig =
+    foldl f [] reducts ++ reverse todo ++ reverse toobig
+    where
+      f sofar (Reduct lk _ _ _) = lk : sofar
+      f sofar (Genlz lk _ _ _) = lk : sofar
+      f sofar (ReductStable _) = sofar
+
+type Next = (Int, Seen, [LPreskel], [Int])
+
+-- Update state variables used by step.
+next :: LPreskel -> Next -> Preskel -> Next
+next p (n, seen, todo, dups) k =
+    let g = gist k in
+    case recall (wasSeen g) seen of
+      Just (_, label) ->
+          (n, seen, todo, label : dups)
+      Nothing ->
+          (n + 1, remember (g, n) seen, lk : todo, dups)
+          where
+            lk = withParent k n p -- Label a preskeleton here
+
+-- This function reduces without checking for isomorphisms
+fast :: Options -> Handle -> [Preskel] -> Int -> Int -> [LPreskel] -> IO ()
+fast p h ks _ n [] =            -- Empty todo list
+    do
+      wrt p h (comment "Nothing left to do")
+      solve p h ks n
+fast p h _ m n todo
+    | n > m =                   -- Check step count
+        do
+          wrt p h (comment "Step limit exceeded--aborting run")
+          dump p h todo "Step limit exceeded"
+fast p h _ _ _ todo@(lk : _)
+    | nstrands (content lk) >= optBound p = -- Check strand count
+        do
+          wrt p h (comment "Strand bound exceeded--aborting run")
+          dump p h todo "Strand bound exceeded"
+fast p h ks m n (lk : todo) =
+    do
+      let ns = unrealized (content lk)
+      let red = reduce (mkMode p) (content lk)
+      let (len,ks') = (case red of
+                   Stable -> (0,[])
+                   Crt kids -> (length kids, kids)
+                   Gnl kids -> (length kids, kids))
+      let msg = show len ++ " in cohort"
+      let shape = (case red of
+                     Stable -> Shape
+                     Crt _ -> Ordinary
+                     Gnl _ -> Ordinary)
+      wrt p h (commentPreskel lk [] ns shape Nada msg)
+      let (n', todo') = foldl (children lk) (n, []) ks'
+      fast p h ks m n' (todo ++ reverse todo')
+
+children :: LPreskel -> (Int, [LPreskel]) -> Preskel -> (Int, [LPreskel])
+children p (n, todo) k =        -- Label a preskeleton here
+    (n + 1, withParent k n p : todo)
+
+-- Print partial results in a form that works with analysis tools
+dump :: Options -> Handle -> [LPreskel] -> String -> IO ()
+dump _ h [] msg =
+    do
+      hClose h
+      abort msg
+dump p h (lk : lks) msg =
+    do
+      let ns = unrealized $ content lk
+      wrt p h (commentPreskel lk [] ns Aborted Nada "aborted")
+      dump p h lks msg
+
+-- Add a label, maybe a parent, a list of seen preskeletons isomorphic
+-- to some members of this skeleton's cohort, and a list of unrealized
+-- nodes.  If it's a shape, note this fact.  Add a comment if present.
+commentPreskel :: LPreskel -> [Int] -> [Node] -> Kind ->
+                  Anno -> String -> SExpr ()
+commentPreskel lk seen unrealized kind anno msg =
+    let realizedToken = case (null unrealized) of
+                          True -> "realized"
+                          False -> "unrealized" in
+    displayPreskel k $
+    addKeyValues "label" [N () (label lk)] $
+    maybeAddVKeyValues "parent" (\p -> [N () (label p)]) (parent lk) $
+    condAddKeyValues "seen" (not $ null seen)
+                     (map (N ()) (L.sort (L.nub seen))) $
+    addKeyValues realizedToken (map displayNode $ L.sort unrealized) $
+    addKindKey kind $ addAnnoKey anno $
+    condAddKeyValues "satisfies" (kind == Shape && (not $ null $ kgoals k))
+    (satisfies k) $
+    -- Structure preserving maps
+    -- Added for cpsasas program
+    condAddKeyValues "maps" fringe (maps k) $
+    -- Nodes of origination
+    -- Added for cpsasas program
+    condAddKeyValues "origs" (starter k || fringe) (origs k) $
+    -- Messages
+    case msg of
+      "" -> []
+      _ -> [comment msg]
+    where
+      fringe = isFringe kind
+      k = content lk
+      starter k =               -- True for the POV skeleton and
+          case pov k of         -- just a few others
+            Nothing -> True
+            Just k' -> nstrands k == nstrands k'
+
+addKeyValues :: String -> [SExpr ()] -> [SExpr ()] -> [SExpr ()]
+addKeyValues key values rest =
+    L () (S () key : values) : rest
+
+condAddKeyValues :: String -> Bool -> [SExpr ()] -> [SExpr ()] -> [SExpr ()]
+condAddKeyValues _ False _ rest =
+    rest
+condAddKeyValues key True values rest =
+    addKeyValues key values rest
+
+maybeAddVKeyValues :: String -> (a -> [SExpr ()]) -> Maybe a ->
+                      [SExpr ()] -> [SExpr ()]
+maybeAddVKeyValues _ _ Nothing rest =
+    rest
+maybeAddVKeyValues key f (Just x) rest =
+    addKeyValues key (f x) rest
+
+data Kind
+    = Ordinary
+    | Shape
+    | Fringe
+    | Aborted
+      deriving (Eq, Show)
+
+addKindKey :: Kind -> [SExpr ()] -> [SExpr ()]
+addKindKey Ordinary xs = xs
+addKindKey Shape xs = addKeyValues "shape" [] xs
+addKindKey Fringe xs = addKeyValues "fringe" [] xs
+addKindKey Aborted xs = addKeyValues "aborted" [] xs
+
+isFringe :: Kind -> Bool
+isFringe Ordinary = False
+isFringe Shape = True
+isFringe Fringe = True
+isFringe Aborted = False
+
+-- Skeleton annotations
+data Anno
+  = Nada
+  | Preskeleton
+  | SatisfiesAll
+  | Dead
+
+addAnnoKey :: Anno -> [SExpr ()] -> [SExpr ()]
+addAnnoKey Nada xs = xs
+addAnnoKey Preskeleton xs = addKeyValues "preskeleton" [] xs
+addAnnoKey SatisfiesAll xs = addKeyValues "satisfies-all" [] xs
+addAnnoKey Dead xs = addKeyValues "dead" [] xs
+
+-- Variable assignments and security goals
+
+satisfies :: Preskel -> [SExpr ()]
+satisfies k =
+  map f (sat k) where
+    f (_, []) = S () "yes"
+    f (g, ge : _) =
+      L () (S () "no" :
+            (displayForm
+             (ctx $ (uvars g) ++ (evars g) ++ (kvars k))
+             (unSatReport k g ge)) : 
+            (displayEnv (ctx $ uvars g) (ctx $ kvars k) (snd ge)))
+    ctx ts = addToContext emptyContext ts
+    evars g = concatMap fst $ consq g
+
+-- Prints structure preserving maps (homomorphisms)
+maps :: Preskel -> [SExpr ()]
+maps k =
+    map (amap $ strandMap k) (envMaps k)
+    where
+      amap strands env = L () [L () strands, L () env]
+      strandMap k = map (N ()) (map f (pprob k))
+      f s = prob k !! s
+      envMaps k =
+          case pov k of
+            Nothing -> []
+            Just k' ->
+                map (displayEnvSansPts vars (ctx k') (ctx k)) (homomorphism k' k (prob k))
+      ctx k = addToContext emptyContext (kvars k)
+      vars = kvars k
+
+-- Prints the nodes of origination for each uniquely originating atom
+origs :: Preskel -> [SExpr ()]
+origs k =
+    [ L () [displayTerm ctx t, displayNode n]
+      | (t, ns) <- korig k, n <- ns ]
+    where
+      ctx = addToContext emptyContext (kvars k)
+
+satCheck :: LPreskel -> Bool
+satCheck lk =
+  not (null tests) && all f tests
+  where
+    tests = sat $ content lk
+    f (_, []) = True
+    f _ = False
diff --git a/src/CPSA/RoleCoq/Main.hs b/src/CPSA/RoleCoq/Main.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/RoleCoq/Main.hs
@@ -0,0 +1,144 @@
+-- Main routine for cpsa4rolecoq
+
+-- Copyright (c) 2020 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module Main (main) where
+
+import System.IO
+import Data.Map (toAscList)
+import CPSA.Lib.Entry
+import CPSA.Lib.Expand
+import CPSA.Roletran.Algebra
+import CPSA.Roletran.Protocol
+import CPSA.Roletran.Loader
+import CPSA.Roletran.Emitter (displayPos)
+import CPSA.Lib.Pretty
+
+main :: IO ()
+main =
+    do
+      (p, (output, margin)) <- start filterOptions filterInterp
+      sexprs <- readSExprs p
+      prot <- tryRun (loadSExprs sexprs)
+      h <- outputHandle output
+      tryRun (emit h margin prot)
+      hClose h
+
+tryRun :: IO a -> IO a
+tryRun x =
+  do
+    y <- tryIO x
+    case y of
+      Right z -> return z
+      Left err -> abort err
+
+-- Emitter
+
+-- Emit a protocol
+emit :: Handle -> Int -> Prot -> IO ()
+emit h margin prot =
+  do
+    hPutStrLn h ("(** Protocol: " ++ pname prot ++
+                  " (" ++ displayPos (ppos prot) ++ ") *)")
+    hPutStrLn h ""
+    hPutStrLn h "Require Import String List Alg Role."
+    hPutStrLn h "Import List.ListNotations."
+    hPutStrLn h "Open Scope list_scope."
+    hPutStrLn h "Open Scope string."
+    mapM_ (emitRole h margin) (roles prot)
+
+-- Emit a role
+emitRole :: Handle -> Int -> Role -> IO ()
+emitRole h margin role =
+  do
+    hPutStrLn h ""
+    hPutStrLn h ("(** Role: " ++  rname role ++
+                 " (" ++ displayPos (rpos role) ++ ") *)")
+    hPutStrLn h ""
+    hPutStrLn h ("Definition " ++ (dehyphen $ rname role) ++ "_role: role :=")
+    hPutStrLn h "  mkRole"
+    let env = makeEnv $ rvars role
+    hPutStrLn h (pretty margin $ map (event env) (rtrace role))
+    hPutStrLn h (pretty margin $ map (term env) (map fst $ runiques role))
+    hPutStrLn h (pretty margin $ map (term env) (rinputs role))
+    hPutStr h (pretty margin $ map (term env) (routputs role))
+    hPutStrLn h "."
+
+dehyphen :: String -> String
+dehyphen [] = []
+dehyphen ('-' : cs) = '_' : dehyphen cs
+dehyphen (c : cs) = c : dehyphen cs
+
+type Env = [(String, Int)]
+
+makeEnv :: VarEnv -> Env
+makeEnv env =
+  zip (map fst $ toAscList env) [0 ..]
+
+event :: Env -> Event -> Pretty
+event env (In _ ch x) =
+  blo 0 [str "Rv ", chan env ch, str " (", term env x, str ")"]
+event env (Out _ ch x) =
+  blo 0 [str "Sd ", chan env ch, str " (", term env x, str ")"]
+
+chan :: Env -> Term -> Pretty
+chan env (Chn v) = str (var env v)
+chan _ _ = str "-1"             -- This should never happen
+
+term :: Env -> Term -> Pretty
+term env (Txt v) = str ("Tx " ++ var env v)
+term env (Dta v) = str ("Dt " ++ var env v)
+term env (Nam v) = str ("Nm " ++ var env v)
+term env (Sky k) = skey env k
+term env (Aky k) = akey env k
+term env (Iky k) = ikey env k
+term env (Msg v) = str ("Mg " ++ var env v)
+term _ (Tag s) = str ("Tg \"" ++ s ++ "\"")
+term env (Pr x y) =
+  blo 3 [str "Pr (", term env x, str ")",
+         brk 1, str "(", term env y, str ")"]
+term env (En x y) =
+  blo 3 [str "En (", term env x, str ")",
+         brk 1, str "(", term env y, str ")"]
+term env (Hsh x) = blo 0 [str "Hs (", term env x, str ")"]
+term env (Chn v) = str ("Ch " ++ var env v)
+
+skey :: Env -> Skey -> Pretty
+skey env (SVar v) = str ("Sk (Sv " ++ var env v ++ ")")
+skey env (Ltk v w) =
+  str ("Sk (Lt " ++ var env v ++ " " ++ var env w ++ ")")
+
+akey :: Env -> Akey -> Pretty
+akey env (AVar v) = str ("Ak (Av " ++ var env v ++ ")")
+akey env (Pubk v) = str ("Ak (Pb " ++ var env v ++ ")")
+akey env (Pubk2 s v) =
+  str ("Ak (Pb2 \"" ++ s ++ "\" " ++ var env v ++ ")")
+
+ikey :: Env -> Akey -> Pretty
+ikey env (AVar v) = str ("Ik (Av " ++ var env v ++ ")")
+ikey env (Pubk v) = str ("Ik (Pb " ++ var env v ++ ")")
+ikey env (Pubk2 s v) =
+  str ("Ik (Pb2 \"" ++ s ++ "\" " ++ var env v ++ ")")
+
+var :: Env -> Var -> String
+var env v =
+  case lookup v env of
+    Just i -> show i
+    Nothing -> "-1"             -- This should never happen
+
+-- Print a list in which a break cause all breaks to be taken.
+list :: [Pretty] -> Pretty
+list [] = str "  []"
+list (x: xs) =
+  grp 3 (str "  [" : x : loop xs)
+  where
+    loop [] = [str "]"]
+    loop (x : xs) = str ";" : brk 1 : x : loop xs
+
+pretty :: Int -> [Pretty] -> String
+pretty margin xs =
+  pr margin (list xs) ""
diff --git a/src/CPSA/Roletran/Algebra.hs b/src/CPSA/Roletran/Algebra.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Roletran/Algebra.hs
@@ -0,0 +1,209 @@
+-- CPSA4 message terms and their sorts for cpsa4roletran
+--
+-- This module implements CPSA message algebra terms.  In CPSA4, the
+-- message algebra is order-sorted.  The sorts are text, data, name,
+-- skey, akey, mesg, and chan.  The sorts text, data, name, skey, and
+-- akey are a subsort of mesg.  The compiler makes no use of the
+-- subsort relation, so it implements the algebra as if it were
+-- many-sorted.  (The runtime system makes use of the subsort
+-- relation.)
+--
+-- For output, there is a type for each sort, except that there
+-- are two types for sort akey, Akey and Ikey.  Following the
+-- convention on asymmetric key pairs, an asymmetric key is assumed to
+-- be public, and therefore has type Akey, if it has the form t or
+-- (pubk n), and private, and therefore has type Ikey, if it has the
+-- form (invk k) or (privk n).
+
+-- Copyright (c) 2020 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module CPSA.Roletran.Algebra (
+  Sort(..), Var, Term(..), Skey(..), Akey(..),
+  sort, inv, isBasic, isMesgVar, isChanVar, VarEnv,
+  emptyVarEnv, doubleTermWellFormed, carriedBy, receivable) where
+
+import qualified Data.Map.Strict as M
+import Data.Map.Strict (Map)
+
+-- The Rust type associated with a variable or a term.  We call it the
+-- sort because type is a Haskell keyword.  A variable is never of
+-- sort Ikey.
+data Sort
+  = Text                        -- Plaintext
+  | Data                        -- Data
+  | Name                        -- Name
+  | Skey                        -- Symmetric key
+  | Akey                        -- Public asymmetric key
+  | Ikey                        -- Private asymmetric key
+  | Mesg                        -- Message -- top sort for terms
+  | Chan                        -- Channels -- not allowed
+  deriving (Show, Eq)           -- in terms in events
+
+type Var = String
+
+-- A term.  Note that not all terms are well formed.  See below for a
+-- function that checks for well formedness.
+data Term
+  = Txt Var              -- Text variable
+  | Dta Var              -- Data variable
+  | Nam Var              -- Name variable
+  | Sky Skey             -- Symmetric key
+  | Aky Akey             -- Asymmetric key
+  | Iky Akey             -- Inverse asymmetric key
+  | Msg Var              -- Message variable
+  | Tag String           -- A message tag
+  | Pr Term Term         -- A pair of terms,
+  | En Term Term         -- Encryption of a plain text term with a key
+  | Hsh Term             -- Hash of some term
+  | Chn Var              -- Channel variable
+  deriving (Show, Eq, Ord)
+
+-- Symmetric keys
+data Skey
+  = SVar Var       -- Symmetric key variable
+  | Ltk Var Var    -- A long term key associated with two name variables
+  deriving (Show, Eq, Ord)
+
+-- Asymmetric keys
+data Akey
+  = AVar Var                  -- Asymmetric key variable
+  | Pubk Var                  -- Public key of a name variable
+  | Pubk2 String Var          -- Tagged public key of a name variable
+  deriving (Show, Eq, Ord)
+
+-- Return the sort of a term.
+sort :: Term -> Sort
+sort (Txt _) = Text
+sort (Dta _) = Data
+sort (Nam _) = Name
+sort (Sky _) = Skey
+sort (Aky _) = Akey
+sort (Iky _) = Ikey
+sort (Msg _) = Mesg
+sort (Tag _) = Mesg
+sort (Pr _ _) = Mesg
+sort (En _ _) = Mesg
+sort (Hsh _) = Mesg
+sort (Chn _) = Chan
+
+-- Inverse key
+inv :: Term -> Term
+inv (Aky k) = Iky k
+inv (Iky k) = Aky k
+inv t = t
+
+-- Is term a CPSA basic value?
+isBasic :: Term -> Bool
+isBasic (Txt _) = True
+isBasic (Dta _) = True
+isBasic (Nam _) = True
+isBasic (Sky _) = True
+isBasic (Aky _) = True
+isBasic (Iky _) = True
+isBasic _ = False
+
+-- Is term a CPSA message variable?
+isMesgVar :: Term -> Bool
+isMesgVar (Msg _) = True
+isMesgVar _ = False
+
+-- Is term a CPSA channel variable?
+isChanVar :: Term -> Bool
+isChanVar (Chn _) = True
+isChanVar _ = False
+
+type VarEnv = Map Var Sort
+
+emptyVarEnv :: VarEnv
+emptyVarEnv = M.empty
+
+termWellFormed :: VarEnv -> Term -> Maybe VarEnv
+termWellFormed env t@(Txt x) =
+    extendVarEnv env x (sort t) -- Text variable
+termWellFormed env t@(Dta x) =
+    extendVarEnv env x (sort t) -- Data variable
+termWellFormed env t@(Nam x) =
+    extendVarEnv env x (sort t) -- Name variable
+termWellFormed env t@(Sky (SVar x)) =
+    extendVarEnv env x (sort t) -- Symmetric key variable
+termWellFormed env (Sky (Ltk x y)) =
+    -- Long term shared symmetric key
+    doubleTermWellFormed env (Nam x) (Nam y)
+termWellFormed env (Aky k) =    -- Asymmetric key terms
+  akeyWellFormed env k
+termWellFormed env (Iky k) =    -- Inverse asymmetric key terms
+  akeyWellFormed env k
+termWellFormed env t@(Msg x) =
+    extendVarEnv env x (sort t) -- Mesg variable
+termWellFormed env (Tag _) =
+    Just env                    -- Tags
+termWellFormed env (Pr x y) =
+    doubleTermWellFormed env x y -- Pairing
+termWellFormed env (En x y) =
+    doubleTermWellFormed env x y -- Encryption
+termWellFormed env (Hsh t) =
+    termWellFormed env t        -- Hashing
+termWellFormed env t@(Chn x) =
+    extendVarEnv env x (sort t) -- Channel variable
+
+-- Extend when sorts agree
+extendVarEnv :: VarEnv -> Var -> Sort -> Maybe VarEnv
+extendVarEnv env x s =
+    case M.lookup x env of
+      Nothing -> Just $ M.insert x s env
+      Just s' -> if s == s' then Just env else Nothing
+
+akeyWellFormed :: VarEnv -> Akey -> Maybe VarEnv
+akeyWellFormed env (AVar x) = extendVarEnv env x Akey
+akeyWellFormed env (Pubk x) = extendVarEnv env x Name
+akeyWellFormed env (Pubk2 _ x) = extendVarEnv env x Name
+
+doubleTermWellFormed :: VarEnv -> Term -> Term -> Maybe VarEnv
+doubleTermWellFormed env x y =
+    do
+      env <- termWellFormed env x
+      termWellFormed env y
+
+-- Is a term carried by another term?
+carriedBy :: Term -> Term -> Bool
+carriedBy t t' =
+    t == t' ||
+      case t' of
+        Pr x y -> carriedBy t x || carriedBy t y
+        En x _ -> carriedBy t x
+        _ -> False
+
+-- Check to make sure a message is receivable.  If not, return
+-- the offending term.
+--
+-- A message t is receivable iff
+--
+-- 1. t contains no occurrence of an encryption in the key of an
+--    encryption, and
+--
+-- 2. t contains no occurrence of an encryption within a hash.
+
+receivable :: Term -> Maybe Term
+receivable (Pr x y) =
+  case receivable x of
+    Just t -> Just t
+    Nothing -> receivable y
+receivable (En x y) =
+  case receivable x of
+    Just t -> Just t
+    Nothing -> findEnc y
+receivable (Hsh x) = findEnc x
+receivable _ = Nothing
+
+findEnc :: Term -> Maybe Term
+findEnc (Pr x y) =
+  case findEnc x of
+    Just t -> Just t
+    Nothing -> findEnc y
+findEnc t@(En _ _) = Just t
+findEnc (Hsh x) = findEnc x
+findEnc _ = Nothing
diff --git a/src/CPSA/Roletran/Derivation.hs b/src/CPSA/Roletran/Derivation.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Roletran/Derivation.hs
@@ -0,0 +1,406 @@
+-- Constructs a procedure from a role using derivations
+
+-- Copyright (c) 2020 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module CPSA.Roletran.Derivation (derive) where
+
+import Control.Monad (foldM)
+import qualified Data.Map.Strict as M
+import Data.Map.Strict (Map)
+import CPSA.Lib.SExpr (Pos)
+import CPSA.Roletran.Algebra
+import CPSA.Roletran.Protocol
+import CPSA.Roletran.Emitter
+import CPSA.Roletran.Displayer (displayTerm)
+
+-- At this stage, program variables are represented as integers.  We
+-- call this representation of a program variable a variable index.
+
+-- The compile time store is a map from terms to variable indices.  At
+-- runtime, the variable will be bound to a data object that is
+-- represented by the term.
+type CompStore = Map Term Vari
+
+-- Entry point for compilation by derivation
+derive :: MonadFail m => Role -> m Proc
+derive r =
+  do
+    -- Construct the parameter bindings.
+    let (fresh, bindings, ins) = bindInputs (rinputs r)
+    -- Construct the initial state.
+    let st = (fresh, M.fromList bindings, [])
+    -- Construct a list of the return types.
+    let outs = map kind (routputs r)
+    -- Construct the statements that form the body of the procedure.
+    stmts <- deriveStmts r st
+    return $ mkProc
+      (rname r)
+      (rpos r)
+      (reverse ins)
+      outs
+      (reverse stmts)
+
+-- Allocate variable indices to inputs and create procedure
+-- declarations.
+bindInputs :: [Term] -> (Vari, [(Term, Vari)], [Decl])
+bindInputs ts =
+  foldl f (0, [], []) ts
+  where
+    f (fresh, binding, ins) t =
+      (fresh + 1, (t, fresh) : binding, (fresh, kind t) : ins)
+
+-- The state association with compilation
+type State = (Vari, CompStore, [Stmt])
+
+-- Accessors for the state
+
+-- The first component is the next available variable index.
+freshVar :: State -> Vari
+freshVar (fresh, _, _) = fresh
+
+-- The second component is the compile time store.
+compStore :: State -> CompStore
+compStore (_, cs, _) = cs
+
+-- The third component is the current list of statements.
+statements :: State -> [Stmt]
+statements (_, _, stmts) = stmts
+
+-- Compile the trace and the outputs.
+deriveStmts :: MonadFail m => Role -> State -> m [Stmt]
+deriveStmts r st =
+  do
+    st <- foldM (deriveEvent (runiques r))
+                st
+                (zip (rtrace r) [0..])
+    deriveOutputs st r
+
+-- Compile an event.
+deriveEvent :: MonadFail m => [(Term, Int)] ->
+               State -> (Event, Int) -> m State
+-- Compile a send event.  Variable i holds the position of the event
+-- in the trace.  It used to determine when to bind uniques to nonces.
+deriveEvent uniques st ((Out pos ch t), i) =
+  case receivable t of
+    Nothing ->                  -- t is receivable.
+      do
+        -- Create uniques and synthesize the channel
+        (st, chan) <- build pos (deriveUniques uniques i (sendCmt pos st)) ch
+        -- Synthesize the message
+        (st, v) <- build pos st t
+        return (
+          freshVar st,
+          compStore st,
+          Send chan (v, kind t) : statements st)
+    Just t ->                   -- t is the offending term
+      fail (shows pos ("Message not receivable " ++ show (displayTerm t)))
+
+-- Compile a recv event.
+deriveEvent _ st ((In pos ch t), _) =
+  case receivable t of
+    Nothing ->                  -- t is receivable.
+      do
+        -- Synthesize the channel.
+        (st, chan) <- build pos (recvCmt pos st) ch
+        let (fresh, cs, stmts) = st
+        let recv = Recv (fresh, kind t) chan
+        let st' = (fresh + 1, cs, recv : stmts)
+        -- Associate fresh with the received message.
+        reduce pos st' [(t, fresh)]
+    Just t ->                   -- t is the offending term
+      fail (shows pos ("Message not receivable " ++ show (displayTerm t)))
+
+-- Comments for events
+
+sendCmt :: Pos -> State -> State
+sendCmt pos (fresh, cs, stmts) =
+  (fresh, cs, Comment ("Send (" ++ displayPos pos ++ ")") : stmts)
+
+recvCmt :: Pos -> State -> State
+recvCmt pos (fresh, cs, stmts) =
+  (fresh, cs, Comment ("Recv (" ++ displayPos pos ++ ")") : stmts)
+
+-- Add uniques as appropriate.
+deriveUniques :: [(Term, Int)] -> Int -> State -> State
+deriveUniques uniques i st =
+  foldl f st uniques
+  where
+    f st@(fresh, cs, stmts) (t, j)
+      | i == j = (fresh + 1,
+                  M.insert t fresh cs, -- Bind fresh to a nonce.
+                  Bind (fresh, kind t) (Frsh (kind t)) : stmts)
+      | otherwise = st
+
+-- Synthesize a term and fail when it can't be built.
+build :: MonadFail m => Pos -> State -> Term -> m (State, Vari)
+build pos st t =
+  case synth st t of
+    Nothing -> fail (shows pos ("Cannot build " ++ show (displayTerm t)))
+    Just result -> return result
+
+-- Synthesize a term and return Nothing when it can't be synthesized.
+synth :: State -> Term -> Maybe (State, Vari)
+synth st t =
+  case M.lookup t (compStore st) of
+    Just v -> Just (st, v)      -- Apply the Mem rule
+    Nothing ->
+      case t of
+        Pr x y -> synthPair st t x y -- Apply the Pair rule
+        En x y -> synthEncr st t x y -- Apply the Encr rule
+        Hsh x -> synthHash st t x    -- Apply the Hash rule
+        Tag s -> synthTag st t s     -- Apply the Tag rule
+        _ -> Nothing
+
+synthPair :: State -> Term -> Term -> Term -> Maybe (State, Vari)
+synthPair st t x y =
+  do
+    (st, v) <- synth st x
+    ((fresh, cs, stmts), u) <- synth st y
+    return (
+      (fresh + 1,
+       M.insert t fresh cs,     -- Bind fresh to the pair t.
+       Bind (fresh, kind t) (Pair (v, kind x) (u, kind y)) : stmts),
+      fresh)
+
+synthEncr :: State -> Term -> Term -> Term -> Maybe (State, Vari)
+synthEncr st t x y =
+  do
+    (st, v) <- synth st x
+    ((fresh, cs, stmts), u) <- synth st y
+    return (
+      (fresh + 1,
+       M.insert t fresh cs,     -- Bind fresh to the encryption t.
+       Bind (fresh, kind t) (Encr (v, kind x) (u, kind y)) : stmts),
+      fresh)
+
+synthHash :: State -> Term -> Term -> Maybe (State, Vari)
+synthHash st t x  =
+  do
+    ((fresh, cs, stmts), v) <- synth st x
+    return (
+      (fresh + 1,
+       M.insert t fresh cs,     -- Bind fresh to the hash t.
+       Bind (fresh, kind t) (Hash (v, kind x)) : stmts),
+      fresh)
+
+synthTag :: State -> Term -> String -> Maybe (State, Vari)
+synthTag (fresh, cs, stmts) t s  =
+  return (
+    (fresh + 1,
+     M.insert t fresh cs,       -- Bind fresh to the tag.
+     Bind (fresh, kind t) (Quot s) : stmts),
+    fresh)
+
+-- Reduce a received term.  This is by far the trickiest code.  The
+-- reason is there is a loop that repeats as long as progress is being
+-- made.
+reduce :: MonadFail m => Pos -> State -> [(Term, Vari)] -> m State
+reduce pos st cs =
+  loop pos st False cs []
+
+-- The loop parameters are
+-- pos:   the position of the received term in the source file
+-- st:    the current state
+-- more:  a boolean that is true when there is more to be done
+-- recvd: unprocessed received terms and their variable indices
+-- todo:  received terms and their variables put off for later processing
+loop :: MonadFail m => Pos -> State -> Bool ->
+        [(Term, Vari)] -> [(Term, Vari)] -> m State
+loop _ st _ [] [] = return st
+loop pos st True [] todo =      -- More todo
+  loop pos st False todo []
+loop pos _ False [] (_ : _) =   -- No progress can be made
+  fail (shows pos "Received term cannot be fully destructured")
+loop pos st more ((t, v) : recvd) todo =
+  case t of                     -- Dispatch on the form of the term
+    Pr x y -> loopPair pos st recvd todo t v x y
+    En x y -> loopEncr pos st more recvd todo t v x y
+    Hsh _ -> loopHash pos st more recvd todo t v
+    Sky (Ltk x y) -> loopLtk pos st more recvd todo t v x y
+    Aky k -> loopAsym pos st more recvd todo t v k
+    Iky k -> loopAsym pos st more recvd todo t v k
+    _ -> loopOther pos st more recvd todo t v
+
+-- Reduce a pair.  Adds two instructions and allocates two variables.
+-- Applies the Frst and Scnd rules
+loopPair :: MonadFail m => Pos -> State ->
+            [(Term, Vari)] -> [(Term, Vari)] ->
+            Term -> Vari -> Term -> Term -> m State
+loopPair pos (fresh, cs, stmts) recvd todo t v x y =
+  do
+    let stmtX = Bind (fresh, kind x) (Frst (kind x) v)
+    let stmtY = Bind (fresh + 1, kind y) (Scnd (kind y) v)
+    let st = (
+          fresh + 2,
+          M.insert t v cs,      -- Add pair to the compile time store
+          stmtY : stmtX : stmts)
+    loop pos st True recvd ((x, fresh) : (y, fresh + 1) : todo)
+
+-- Reduce an encryption.  If the inverse key can be synthesized, it
+-- adds two instructions and allocates two variables.
+-- Applies the Decr rule
+loopEncr :: MonadFail m => Pos -> State -> Bool ->
+            [(Term, Vari)] -> [(Term, Vari)] ->
+            Term -> Vari -> Term -> Term -> m State
+loopEncr pos st more recvd todo t v x y =
+  case synth st (inv y) of
+    Nothing ->                  -- Can't synthesize key -- no progress
+      loop pos st more recvd ((t, v) : todo)
+    Just ((fresh, cs, stmts), k) ->
+      do
+        let stmt = Bind (fresh, kind x) (Decr (kind x) v (k, kind y))
+        let st = (
+              fresh + 1,
+              M.insert t v cs, -- Add encryption to the compile time store
+              stmt : stmts)
+        loop pos st True recvd ((x, fresh) : todo)
+
+loopHash :: MonadFail m => Pos -> State -> Bool ->
+            [(Term, Vari)] -> [(Term, Vari)] ->
+            Term -> Vari -> m State
+loopHash pos st more recvd todo t v =
+  case synth st t of
+    Nothing ->                 -- Can't synthesize hash -- no progress
+      loop pos st more recvd ((t, v) : todo)
+    Just ((fresh, cs, stmts), h) ->
+      do
+        let stmt = Same (kind t) v h
+        let st = (fresh, cs, stmt : stmts)
+        loop pos st True recvd todo
+
+-- Reduce a long term key.
+loopLtk :: MonadFail m => Pos -> State -> Bool ->
+           [(Term, Vari)] -> [(Term, Vari)] ->
+           Term -> Vari -> Var -> Var -> m State
+loopLtk pos st@(fresh, cs, stmts) more recvd todo t v x y =
+  case synth st t of
+    Nothing ->
+      case M.lookup (Nam x) (compStore st) of
+        Nothing ->              -- Create variable reference to x
+          let st = (
+                fresh + 1,
+                cs,
+                stmts) in
+            loop pos st True recvd ((Nam x, fresh) : (t, v) : todo)
+        Just u ->
+          case M.lookup (Nam y) (compStore st) of
+            Nothing ->              -- Create variable reference to y
+              let st = (
+                    fresh + 1,
+                    cs,
+                    stmts) in
+                loop pos st True recvd ((Nam y, fresh) : (t, v) : todo)
+            Just w ->
+              let st = (
+                    fresh,
+                    M.insert t v cs,
+                    Ltkp v u w : stmts) in
+                loop pos st True recvd todo
+    Just ((fresh, cs, stmts), h) ->
+      do                        -- Otherwise, check sameness
+        let stmt = Same (kind t) v h
+        let st = (fresh, cs, stmt : stmts)
+        loop pos st more recvd todo
+
+-- Reduce an asymmtric key.
+loopAsym :: MonadFail m => Pos -> State -> Bool ->
+            [(Term, Vari)] -> [(Term, Vari)] ->
+            Term -> Vari -> Akey -> m State
+loopAsym pos st@(fresh, cs, stmts) more recvd todo t v (AVar _) =
+  case synth st t of
+    Nothing ->
+      case synth st (inv t) of
+        Nothing ->            -- Add new term
+          loop pos (fresh, M.insert t v cs, stmts) True recvd todo
+        Just ((fresh, cs, stmts), h) ->
+          do
+            let stmt = Invp (kind t) v h
+            let st = (fresh, M.insert t v cs, stmt : stmts)
+            loop pos st True recvd todo
+    Just ((fresh, cs, stmts), h) ->
+      do                        -- Otherwise, check sameness
+        let stmt = Same (kind t) v h
+        let st = (fresh, cs, stmt : stmts)
+        loop pos st more recvd todo
+loopAsym pos st@(fresh, cs, stmts) more recvd todo t v (Pubk x) =
+  case synth st t of
+    Nothing ->
+      case M.lookup (Nam x) (compStore st) of
+        Nothing ->              -- Create variable reference to x
+          let st = (
+                fresh + 1,
+                cs,
+                stmts) in
+            loop pos st True recvd ((Nam x, fresh) : (t, v) : todo)
+        Just u ->
+          do
+            let stmt = Namp (kind t) v u
+            let st = (fresh, M.insert t v cs, stmt : stmts)
+            loop pos st True recvd todo
+    Just ((fresh, cs, stmts), h) ->
+      do                        -- Otherwise, check sameness
+        let stmt = Same (kind t) v h
+        let st = (fresh, cs, stmt : stmts)
+        loop pos st more recvd todo
+loopAsym pos st@(fresh, cs, stmts) more recvd todo t v (Pubk2 q x) =
+  case synth st t of
+    Nothing ->
+      case M.lookup (Nam x) (compStore st) of
+        Nothing ->              -- Create variable reference to x
+          let st = (
+                fresh + 1,
+                cs,
+                stmts) in
+            loop pos st True recvd ((Nam x, fresh) : (t, v) : todo)
+        Just u ->
+          case synth st (Tag q) of
+            Just ((fresh, cs, stmts), h) ->
+              do
+                let stmt = Nm2p (kind t) v h u
+                let st = (fresh, M.insert t v cs, stmt : stmts)
+                loop pos st True recvd todo
+            Nothing ->
+              fail (shows pos ("Tag not synthesized " ++ show (displayTerm t)))
+    Just ((fresh, cs, stmts), h) ->
+      do                        -- Otherwise, check sameness
+        let stmt = Same (kind t) v h
+        let st = (fresh, cs, stmt : stmts)
+        loop pos st more recvd todo
+
+-- Reduce terms other than pairs, encryptions, hashes, long term keys,
+-- and asymmetric keys.
+loopOther :: MonadFail m => Pos -> State -> Bool ->
+            [(Term, Vari)] -> [(Term, Vari)] ->
+            Term -> Vari -> m State
+loopOther pos st@(fresh, cs, stmts) more recvd todo t v =
+  case synth st t of
+    Nothing ->                  -- Add new term
+      loop pos (fresh, M.insert t v cs, stmts) True recvd todo
+    Just ((fresh, cs, stmts), h) ->
+      do                        -- Otherwise, check sameness
+        let stmt = Same (kind t) v h
+        let st = (fresh, cs, stmt : stmts)
+        loop pos st more recvd todo
+
+deriveOutputs :: MonadFail m => State -> Role -> m [Stmt]
+deriveOutputs st r =
+  do
+    (st, vs) <-
+      foldM (deriveOutput $ rpos r) (st, []) (routputs r)
+    return $ Return (reverse vs) : statements st
+
+-- Synthesize each output and add it to the list
+deriveOutput :: MonadFail m => Pos -> (State, [Vari]) ->
+                Term -> m (State, [Vari])
+deriveOutput pos (st, vs) t =
+  case receivable t of
+    Nothing ->                  -- t is receivable.
+      do
+        (st, v) <- build pos st t
+        return (st, v : vs)
+    Just t ->                   -- t is the offending term
+      fail (shows pos ("Message not receivable " ++ show (displayTerm t)))
diff --git a/src/CPSA/Roletran/Displayer.hs b/src/CPSA/Roletran/Displayer.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Roletran/Displayer.hs
@@ -0,0 +1,119 @@
+-- Displays protocols and terms as S-expressions
+
+-- Copyright (c) 2020 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module CPSA.Roletran.Displayer (
+  displayProt, displayTerm, displaySort) where
+
+import qualified Data.List as L
+import qualified Data.Map.Strict as M
+import CPSA.Lib.SExpr
+import CPSA.Roletran.Algebra
+import CPSA.Roletran.Protocol
+
+-- Display of protocols
+
+displayProt :: Prot -> SExpr ()
+displayProt p =
+  L () (S () "defprotocol" : S () (pname p) : S () "basic" : rs)
+  where
+    rs = map displayRole (roles p)
+
+-- Display of roles
+
+displayRole :: Role -> SExpr ()
+displayRole r =
+  L () (S () "defrole" :
+        S () (rname r) :
+        L () (S () "vars" : displayVars (rvars r)) :
+        L () (S () "trace" : displayTrace (rtrace r)) :
+        displayOptional "uniq-orig" (map displayTerm uniques)
+         (displayOptional "inputs" (map displayTerm (rinputs r))
+           (displayOptional "outputs" (map displayTerm (routputs r)) [])))
+  where
+    uniques = L.sort (map fst (runiques r))
+
+displayOptional :: String -> [SExpr ()] -> [SExpr ()] -> [SExpr ()]
+displayOptional _ [] rest = rest
+displayOptional key value rest =
+  L () (S () key : value) : rest
+
+displayVars :: VarEnv -> [SExpr ()]
+displayVars env =
+  case map displayVar (M.toList env) of
+    [] -> []
+    (v,t):pairs -> loop t [v] pairs
+  where
+    loop t vs [] = [L () (reverse (t:vs))]
+    loop t vs ((v',t'):xs)
+      | t == t' = loop t (v':vs) xs
+      | otherwise = L () (reverse (t:vs)):loop t' [v'] xs
+    displayVar (v, s) = (S () v, S () $ displaySort s)
+
+displaySort :: Sort -> String
+displaySort Text = "text"
+displaySort Data = "data"
+displaySort Name = "name"
+displaySort Skey = "skey"
+displaySort Akey = "akey"
+displaySort Ikey = "ikey"
+displaySort Mesg = "mesg"
+displaySort Chan = "chan"
+
+displayTrace :: Trace -> [SExpr ()]
+displayTrace trace =
+    map displayDt trace
+    where
+      displayDt (In _ ch t) =
+        L () [S () "recv", displayTerm ch, displayTerm t]
+      displayDt (Out _  ch t) =
+        L () [S () "send", displayTerm ch, displayTerm t]
+
+displayTerm :: Term -> SExpr ()
+displayTerm (Txt v) = S () v
+displayTerm (Dta v) = S () v
+displayTerm (Nam v) = S () v
+displayTerm (Sky k) = displaySkey k
+displayTerm (Aky k) = displayAkey k
+displayTerm (Iky k) = displayIkey k
+displayTerm (Msg v) = S () v
+displayTerm (Tag v) = Q () v
+displayTerm (Pr x y) =
+  L () (S () "cat" : displayTerm x : displayList y)
+displayTerm (En x y) =
+  L () (S () "enc" : displayEnc x y)
+displayTerm (Hsh x) =
+  L () (S () "cat" : displayList x)
+displayTerm (Chn v) = S () v
+
+displaySkey :: Skey -> SExpr ()
+displaySkey (SVar v) = S () v
+displaySkey (Ltk x y) =
+  L () [S () "ltk", S () x, S () y]
+
+displayAkey :: Akey -> SExpr ()
+displayAkey (AVar v) = S () v
+displayAkey (Pubk v) =
+  L () [S () "pubk", S () v]
+displayAkey (Pubk2 c v) =
+  L () [S () "pubk", Q () c, S () v]
+
+displayIkey :: Akey -> SExpr ()
+displayIkey (AVar v) =
+  L () [S () "invk", S () v]
+displayIkey (Pubk v) =
+  L () [S () "privk", S () v]
+displayIkey (Pubk2 c v) =
+  L () [S () "privk", Q () c, S () v]
+
+displayList :: Term -> [SExpr ()]
+displayList (Pr x y) = displayTerm x : displayList y
+displayList t = [displayTerm t]
+
+displayEnc :: Term -> Term -> [SExpr ()]
+displayEnc (Pr x y) t = displayTerm x : displayEnc y t
+displayEnc x y = [displayTerm x, displayTerm y]
diff --git a/src/CPSA/Roletran/Emitter.hs b/src/CPSA/Roletran/Emitter.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Roletran/Emitter.hs
@@ -0,0 +1,271 @@
+-- Emits generated code
+
+-- Copyright (c) 2020 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module CPSA.Roletran.Emitter (
+  Kind(..), kind, Proc, mkProc, name, pos,
+  Vari, Decl, Stmt(..), Expr(..),
+  emit, displayPos) where
+
+import CPSA.Lib.SExpr
+import CPSA.Lib.Pretty
+import CPSA.Roletran.Algebra (Term(..))
+
+useFineTyping :: Bool
+useFineTyping = False
+
+data Kind
+  = KText                       -- Plaintext
+  | KData                       -- Data
+  | KName                       -- Name
+  | KSkey                       -- Symmetric key
+  | KAkey                       -- Public asymmetric key
+  | KIkey                       -- Private asymmetric key
+  | KMesg                       -- Message -- top kind for terms
+  | KQuot                       -- Tag
+  | KPair                       -- Pair
+  | KSenc                       -- Symmetric encryption
+  | KAenc                       -- Asymmetric encryption
+  | KIenc                       -- Sign
+  | KHash                       -- Hash
+  | KChan                       -- Channels -- not allowed
+  deriving (Show, Eq)           -- in terms in events
+
+-- Return the kind of a term.
+kind :: Term -> Kind
+kind (Txt _) = KText
+kind (Dta _) = KData
+kind (Nam _) = KName
+kind (Sky _) = KSkey
+kind (Aky _) = KAkey
+kind (Iky _) = KIkey
+kind (Msg _) = KMesg
+kind (Tag _) = KQuot
+kind (Pr _ _) = KPair
+kind (En _ (Aky _)) = KAenc
+kind (En _ (Iky _)) = KIenc
+kind (En _ _) = KSenc
+kind (Hsh _) = KHash
+kind (Chn _) = KChan
+
+-- When true, add the kind of a let bound variable
+showBindKind :: Bool
+showBindKind = True
+
+-- Variable index
+type Vari = Int
+
+-- A declaration, comprising an index for a variable and the kind of
+-- that variable
+type Decl = (Vari, Kind)
+
+-- A procedure
+data Proc
+  = Proc { name :: String,
+           pos :: Pos,
+           inputs :: [Decl],
+           firstVar :: Vari,
+           outputs :: [Kind],
+           stmts :: [Stmt] }
+
+mkProc :: String -> Pos -> [Decl] -> [Kind] -> [Stmt] -> Proc
+mkProc name pos inputs outputs stmts =
+  Proc { name = name,
+         pos = pos,
+         inputs = inputs,
+         firstVar = length inputs,
+         outputs = outputs,
+         stmts = stmts }
+
+-- A statement
+data Stmt
+  = Recv Decl Vari              -- Receive a message
+  | Send Vari Decl              -- Send a message
+  | Bind Decl Expr              -- Bind a variable to an expression
+  | Same Kind Vari Vari         -- Are two values the same?
+  | Ltkp Vari Vari Vari         -- Values related by the ltk function?
+  | Invp Kind Vari Vari         -- Values related by the invk function?
+  | Namp Kind Vari Vari         -- Values related by the pubk function?
+  | Nm2p Kind Vari Vari Vari    -- Values related by the pubk2 function?
+  | Return [Vari]               -- Return values from the procedure
+  | Comment String              -- Insert a comment
+
+-- For Invp, Namp, and Nm2p, the kind is associated with the first
+-- variable.  A name is associated with the second two variables in
+-- Ltkp, the second variable in Namp, and the third variable in Nm2p.
+-- A tag is associated with the second variable in Nm2p.
+
+-- Expressions -- The kind is associated with the returned value
+data Expr
+  = Pair Decl Decl              -- Construct a pair
+  | Frst Kind Vari              -- project first component of pair
+  | Scnd Kind Vari              -- project second component of pair
+  | Encr Decl Decl              -- Encrypt plain text
+  | Decr Kind Vari Decl         -- Decrypt cipher text
+  | Quot String                 -- Construct a tag
+  | Hash Decl                   -- Construct a hash
+  | Frsh Kind                   -- Generate a fresh nonce
+
+-- Emit code as a pretty printed S-expression
+
+emit :: Int -> Proc -> Pretty
+emit indent proc =
+  grp indent (displayHeader indent proc :
+               displayStmts (firstVar proc) (stmts proc))
+
+displayHeader :: Int -> Proc -> Pretty
+displayHeader indent proc =
+  blo (2 * indent)
+  [str "(defproc ", str (dehyphen $ name proc),
+    brk 1, str "(", grp 0 (displayInputs (firstVar proc) (inputs proc)),
+    brk 1, str "(", grp 0 (displayOutputs (outputs proc))]
+
+dehyphen :: String -> String
+dehyphen [] = []
+dehyphen ('-' : cs) = '_' : dehyphen cs
+dehyphen (c : cs) = c : dehyphen cs
+
+displayInputs :: Vari -> [Decl] -> [Pretty]
+displayInputs _ [] = [str ")"]
+displayInputs first (d : ds) =
+  displayInput first d : foldr f [str ")"] ds
+  where
+    f d ps = brk 1 : displayInput first d : ps
+
+displayInput :: Vari -> Decl -> Pretty
+displayInput first (x, s) =
+  str ("(" ++ var first x ++ " " ++ displayKind s ++ ")")
+
+displayOutputs :: [Kind] -> [Pretty]
+displayOutputs [] = [str ")"]
+displayOutputs (s : ss) =
+  str (displayKind s) : foldr f [str ")"] ss
+  where
+    f s ps = brk 1 : str (displayKind s) : ps
+
+displayStmts :: Vari -> [Stmt] -> [Pretty]
+displayStmts _ [] = [str ")"]
+displayStmts first (s : ss) =
+  brk 1 : str (displayStmt first s) : displayStmts first ss
+
+displayStmt :: Vari -> Stmt -> String
+displayStmt first (Recv d c) =
+  "(let " ++ bvar first d ++ mark " (recv" [snd d] ++
+  " " ++ var first c ++ "))"
+displayStmt first (Send c (x, s)) =
+  mark "(send" [s] ++ " " ++ var first c ++
+  " " ++ var first x ++ ")"
+displayStmt first (Bind d e) =
+  "(let " ++ bvar first d ++ " " ++
+  displayExpr first e ++ ")"
+displayStmt first (Same s x y) =
+  mark "(same" [s] ++ " " ++ var first x ++
+  " " ++ var first y ++ ")"
+displayStmt first (Ltkp x y z) =
+  "(ltkp " ++ var first x ++ " " ++ var first y ++
+  " " ++ var first z ++ ")"
+displayStmt first (Invp s x y) =
+  mark "(invp" [s] ++ " " ++ var first x ++
+  " " ++ var first y ++ ")"
+displayStmt first (Namp s x y) =
+  mark "(namp" [s] ++ " " ++ var first x ++
+  " " ++ var first y ++ ")"
+displayStmt first (Nm2p s x y z) =
+  mark "(nm2p" [s] ++ " " ++ var first x ++
+  " " ++ var first y ++ " " ++ var first z ++ ")"
+displayStmt first (Return vs) =
+  "(return" ++ foldr f ")" vs
+  where
+    f v str = " " ++ var first v ++ str
+displayStmt _ (Comment cmt) =
+  "(comment \"" ++ cmt ++ "\")"
+
+displayExpr :: Vari -> Expr -> String
+displayExpr first (Pair (x, s) (y, t)) =
+  mark "(pair" [s, t] ++ " " ++
+  var first x ++ " " ++ var first y ++ ")"
+displayExpr first (Frst s x) =
+  mark "(frst" [s] ++ " " ++ var first x ++ ")"
+displayExpr first (Scnd s x) =
+  mark "(scnd" [s] ++ " " ++ var first x ++ ")"
+displayExpr first (Encr (x, s) (y, t)) =
+  mark "(encr" [s, t] ++ " " ++
+  var first x ++ " " ++ var first y ++ ")"
+displayExpr first (Decr s x (y, t)) =
+  mark "(decr" [s, inv t] ++ " " ++
+  var first x ++ " " ++ var first y ++ ")"
+displayExpr _ (Quot s) = "\"" ++ s ++ "\""
+displayExpr first (Hash (x, s)) =
+  mark "(hash" [s] ++ " " ++ var first x ++ ")"
+displayExpr _ (Frsh s) =
+  mark "(frsh" [s] ++ ")"
+
+-- Display parameters with variables that start with 'p'.
+-- Display let bound variables starting with 'v'.
+var :: Vari -> Vari -> String
+var first v
+  | v < first = 'p' : show v
+  | otherwise = 'v' : show v
+
+-- Maybe show kind for a let bound variable.
+bvar :: Vari -> Decl -> String
+bvar first (v, s)
+  | showBindKind =
+    "(" ++ var first v ++ " " ++ displayKind s ++ ")"
+  | otherwise = var first v
+
+-- Mark a symbol with some kind abbeviations.
+mark :: String -> [Kind] -> String
+mark sym kinds =
+  sym ++ "_" ++ map abbrev kinds
+
+displayKind :: Kind -> String
+displayKind KText = "text"
+displayKind KData = "data"
+displayKind KName = "name"
+displayKind KSkey = "skey"
+displayKind KAkey = "akey"
+displayKind KIkey = "ikey"
+displayKind KChan = "chan"
+displayKind KQuot | useFineTyping = "quot"
+displayKind KPair | useFineTyping = "pair"
+displayKind KSenc | useFineTyping = "senc"
+displayKind KAenc | useFineTyping = "aenc"
+displayKind KIenc | useFineTyping = "ienc"
+displayKind KHash | useFineTyping = "hash"
+displayKind _ = "mesg"
+
+abbrev :: Kind -> Char
+abbrev KText = 't'
+abbrev KData = 'd'
+abbrev KName = 'n'
+abbrev KSkey = 's'
+abbrev KAkey = 'a'
+abbrev KIkey = 'i'
+abbrev KChan = 'c'
+abbrev KQuot | useFineTyping = 'q'
+abbrev KPair | useFineTyping = 'p'
+abbrev KSenc | useFineTyping = 'e'
+abbrev KAenc | useFineTyping = 'y'
+abbrev KIenc | useFineTyping = 'z'
+abbrev KHash | useFineTyping = 'h'
+abbrev _ = 'm'
+
+-- The inverse kind of a kind
+inv :: Kind -> Kind
+inv KAkey = KIkey
+inv KIkey = KAkey
+inv k = k
+
+-- Trim last two characters when showing a Pos.
+displayPos :: Pos -> String
+displayPos pos =
+  f $ show pos
+  where
+    f "" = ""
+    f ": " = ""
+    f (c : cs) = c : f cs
diff --git a/src/CPSA/Roletran/Loader.hs b/src/CPSA/Roletran/Loader.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Roletran/Loader.hs
@@ -0,0 +1,292 @@
+-- Loads the first protocol
+
+-- Copyright (c) 2020 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module CPSA.Roletran.Loader (loadSExprs) where
+
+import Control.Monad (foldM)
+import qualified Data.List as L
+import qualified Data.Map.Strict as M
+import CPSA.Lib.ReturnFail
+import CPSA.Lib.SExpr
+import CPSA.Roletran.Algebra
+import CPSA.Roletran.Protocol
+
+{--
+import System.IO.Unsafe
+z :: Show a => a -> b -> b
+z x y = unsafePerformIO (print x >> return y)
+
+zz :: Show a => a -> a
+zz x = z x x
+--}
+
+-- Load protocols and preskeletons from a list of S-expressions, and
+-- then return a list of preskeletons.  The name of the algebra is
+-- nom, and its variable generator is provided.
+
+loadSExprs :: MonadFail m => [SExpr Pos] -> m Prot
+loadSExprs ((L pos (S _ "defprotocol" : xs)) : _) =
+  loadProt pos xs
+loadSExprs (_ : sexprs) =
+  loadSExprs sexprs
+loadSExprs [] =
+  fail "No protocol found"
+
+loadProt :: MonadFail m => Pos -> [SExpr Pos] -> m Prot
+loadProt pos (S _ name : S _ alg : x : xs)
+    | alg /= "basic"=
+        fail (shows pos "Expecting terms in basic algebra ")
+    | otherwise =
+        do
+          rs <- loadRoles (x : xs)
+          -- Check for duplicate role names
+          validate (mkProt name pos rs) rs
+    where
+      validate prot [] = return prot
+      validate prot (r : rs) =
+          case L.find (\r' -> rname r == rname r') rs of
+            Nothing -> validate prot rs
+            Just _ ->
+                let msg = "Duplicate role " ++ rname r ++
+                          " in protocol " ++ name in
+                fail (shows pos msg)
+loadProt pos _ = fail (shows pos "Malformed protocol")
+
+loadRoles :: MonadFail m => [SExpr Pos] -> m [Role]
+loadRoles (L pos (S _ "defrole" : x) : xs) =
+    do
+      r <- loadRole pos x
+      rs <- loadRoles xs
+      return (r : rs)
+loadRoles _ =
+    return []
+
+loadRole :: MonadFail m => Pos -> [SExpr Pos] -> m Role
+loadRole pos (S _ name :
+              L _ (S _ "vars" : vars) :
+              L _ (S _ "trace" : evt : c) :
+              rest) =
+    do
+      declEnv <- loadVars vars
+      c <- loadTrace declEnv (evt : c)
+      case traceWellFormed c of
+        Nothing -> fail (shows pos "Malformed terms")
+        Just env ->
+          do
+            u <- mapM (loadBasic env) (assoc "uniq-orig" rest)
+            i <- mapM (loadChanTerm env) (assoc "inputs" rest)
+            o <- mapM (loadTerm env) (assoc "outputs" rest)
+            mkRole name pos env c u i o
+loadRole pos _ = fail (shows pos "Malformed role")
+
+-- Lookup value in alist, appending values with the same key
+assoc :: String -> [SExpr a] -> [SExpr a]
+assoc key alist =
+    concat [ rest | L _ (S _ head : rest) <- alist, key == head ]
+
+loadTrace :: MonadFail m => VarEnv -> [SExpr Pos] -> m Trace
+loadTrace env xs = mapM (loadEvt env) xs
+
+loadEvt :: MonadFail m => VarEnv -> SExpr Pos -> m Event
+loadEvt env (L pos [S _ "recv", ch, t]) =
+    do
+      ch <- loadChan env ch
+      t <- loadTerm env t
+      return (In pos ch t)
+loadEvt env (L pos [S _ "send", ch, t]) =
+    do
+      ch <- loadChan env ch
+      t <- loadTerm env t
+      return (Out pos ch t)
+loadEvt _ (L pos [S _ _, _]) =
+    fail (shows pos $ "Missing channel")
+loadEvt _ (L pos (S _ dir : _)) =
+    fail (shows pos $ "Unrecognized direction " ++ dir)
+loadEvt _ x = fail (shows (annotation x) "Malformed event")
+
+-- Variable declarations
+
+loadVars :: MonadFail m => [SExpr Pos] -> m VarEnv
+loadVars sexprs =
+    do
+      pairs <- mapM loadVarPair sexprs
+      foldM loadVar emptyVarEnv (concat pairs)
+
+loadVarPair :: MonadFail m => SExpr Pos -> m [(SExpr Pos, SExpr Pos)]
+loadVarPair (L _ (x:y:xs)) =
+  case reverse (x:y:xs) of
+    t : vs ->
+      return [(v,t) | v <- reverse vs]
+    [] -> error "Loader.loadVarPair: [] cannot happen"
+loadVarPair x = fail (shows (annotation x) "Bad variable declaration")
+
+loadVar :: MonadFail m => VarEnv -> (SExpr Pos, SExpr Pos) -> m VarEnv
+loadVar env (S pos name, S pos' sort) =
+  case M.lookup name env of
+    Just _ ->
+      fail (shows pos "Duplicate variable declaration for " ++ name)
+    Nothing ->
+      do
+        s <- loadSort pos' sort
+        return $ M.insert name s env
+loadVar _ (x, _) = fail (shows (annotation x) "Bad variable syntax")
+
+loadSort :: MonadFail m => Pos -> String -> m Sort
+loadSort pos sort
+  | sort == "text" = return Text
+  | sort == "data" = return Data
+  | sort == "name" = return Name
+  | sort == "skey" = return Skey
+  | sort == "akey" = return Akey
+  | sort == "mesg" = return Mesg
+  | sort == "chan" = return Chan
+  | otherwise = fail (shows pos "Sort " ++ sort ++ " not recognized")
+
+-- Term loading
+
+loadChan :: MonadFail m => VarEnv -> SExpr Pos -> m Term
+loadChan env (S pos v) =
+  case M.lookup v env of
+    Nothing -> fail (shows pos ("Undeclared variable " ++ v))
+    Just Chan -> return (Chn v)
+    Just _ -> fail (shows pos "Expecting a channel")
+loadChan _ x =
+  fail (shows (annotation x) "Expecting a channel")
+
+loadBasic :: MonadFail m => VarEnv -> SExpr Pos -> m Term
+loadBasic env x =
+    do
+      t <- loadTerm env x
+      case isBasic t of
+        True -> return t
+        False -> fail (shows (annotation x) "Expecting a basic value")
+
+loadLookup :: MonadFail m => VarEnv -> Pos -> Var -> m Term
+loadLookup env pos v =
+  case M.lookup v env of
+    Nothing -> fail (shows pos ("Undeclared variable " ++ v))
+    Just Text -> return (Txt v)
+    Just Data -> return (Dta v)
+    Just Name -> return (Nam v)
+    Just Skey -> return (Sky (SVar v))
+    Just Akey -> return (Aky (AVar v))
+    Just Ikey -> fail (shows pos "Not expecting an ikey")
+    Just Mesg -> return (Msg v)
+    Just Chan -> fail (shows pos "Not expecting a channel")
+
+loadChanTerm :: MonadFail m => VarEnv -> SExpr Pos -> m Term
+loadChanTerm env x =
+  case loadChan env x of
+    Return t -> return t
+    Fail _ -> loadTerm env x
+
+loadName :: MonadFail m => VarEnv -> Pos -> Var -> m ()
+loadName env pos v =
+  do
+    t <- loadLookup env pos v
+    case sort t of
+      Name -> return ()
+      _ -> fail (shows pos "Expecting a name")
+
+loadTerm :: MonadFail m => VarEnv -> SExpr Pos -> m Term
+loadTerm env (S pos s) =
+  loadLookup env pos s
+loadTerm _ (Q _ t) =
+  return (Tag t)
+loadTerm env (L pos (S _ s : l)) =
+  case lookup s loadDispatch of
+    Nothing -> fail (shows pos "Keyword " ++ s ++ " unknown")
+    Just f -> f pos env l
+loadTerm _ x = fail (shows (annotation x) "Malformed term")
+
+type LoadFunction m = Pos -> VarEnv -> [SExpr Pos] -> m Term
+
+loadDispatch :: MonadFail m => [(String, LoadFunction m)]
+loadDispatch =
+    [("pubk", loadPubk)
+    ,("privk", loadPrivk)
+    ,("invk", loadInvk)
+    ,("ltk", loadLtk)
+    ,("cat", loadCat)
+    ,("enc", loadEnc)
+    ,("hash", loadHash)
+    ]
+
+-- Atom constructors: pubk privk invk ltk
+
+loadPubk :: MonadFail m => LoadFunction m
+loadPubk _ env [S pos s] =
+    do
+      loadName env pos s
+      return $ Aky (Pubk s)
+loadPubk _ env [Q _ c, S pos s] =
+    do
+      loadName env pos s
+      return $ Aky (Pubk2 c s)
+loadPubk pos _ _ = fail (shows pos "Malformed pubk")
+
+loadPrivk :: MonadFail m => LoadFunction m
+loadPrivk _ env [S pos s] =
+    do
+      loadName env pos s
+      return $ Iky (Pubk s)
+loadPrivk _ env [Q _ c, S pos s] =
+    do
+      loadName env pos s
+      return $ Iky (Pubk2 c s)
+loadPrivk pos _ _ = fail (shows pos "Malformed privk")
+
+loadInvk :: MonadFail m => LoadFunction m
+loadInvk _ env [t] =
+    do
+      t <- loadTerm env t
+      return $ inv t
+loadInvk pos _ _ = fail (shows pos "Malformed invk")
+
+loadLtk :: MonadFail m => LoadFunction m
+loadLtk _ env [S pos s, S pos' s'] =
+    do
+      loadName env pos s
+      loadName env pos' s'
+      return $ Sky (Ltk s s')
+loadLtk pos _ _ = fail (shows pos "Malformed ltk")
+
+-- Term constructors: cat enc
+
+loadCat :: MonadFail m => LoadFunction m
+loadCat _ env (l : ls) =
+    do
+      ts <- mapM (loadTerm env) (l : ls)
+      return $ foldr1 Pr ts
+loadCat pos _ _ = fail (shows pos "Malformed cat")
+
+loadEnc :: MonadFail m => LoadFunction m
+loadEnc pos env (l : l' : ls) =
+    do
+      let (butLast, last) = splitLast l (l' : ls)
+      t <- loadCat pos env butLast
+      t' <- loadTerm env last
+      case isMesgVar t' of
+        False -> return $ En t t'
+        True -> fail (shows (annotation last)
+                      "Message variable cannot used as key")
+loadEnc pos _ _ = fail (shows pos "Malformed enc")
+
+splitLast :: a -> [a] -> ([a], a)
+splitLast x xs =
+    loop [] x xs
+    where
+      loop z x [] = (reverse z, x)
+      loop z x (y : ys) = loop (x : z) y ys
+
+loadHash :: MonadFail m => LoadFunction m
+loadHash pos env (l : ls) =
+   do
+     t <- loadCat pos env (l : ls)
+     return $ Hsh t
+loadHash pos _ _ = fail (shows pos "Malformed hash")
diff --git a/src/CPSA/Roletran/Main.hs b/src/CPSA/Roletran/Main.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Roletran/Main.hs
@@ -0,0 +1,42 @@
+-- Main routine for cpsa4roletran
+
+module Main (main) where
+
+import System.IO
+import CPSA.Lib.Entry
+import CPSA.Lib.Expand
+import CPSA.Roletran.Protocol
+import CPSA.Roletran.Loader
+import CPSA.Roletran.Derivation
+import CPSA.Roletran.Emitter
+import CPSA.Lib.Pretty (pr)
+
+main :: IO ()
+main =
+    do
+      (p, (output, margin)) <- start filterOptions filterInterp
+      sexprs <- readSExprs p
+      prot <- tryRun (loadSExprs sexprs)
+      procs <- tryRun (mapM derive (roles prot))
+      h <- outputHandle output
+      hPutStrLn h ("(comment \"Protocol: " ++ pname prot ++
+                   " (" ++ displayPos (ppos prot) ++ ")\")")
+      mapM_ (emitProc h margin) procs
+      hClose h
+
+tryRun :: IO a -> IO a
+tryRun x =
+  do
+    y <- tryIO x
+    case y of
+      Right z -> return z
+      Left err -> abort err
+
+emitProc :: Handle -> Int -> Proc -> IO ()
+emitProc h margin proc =
+  do
+    hPutStrLn h ""
+    hPutStrLn h ("(comment \"Role: " ++ name proc ++
+                   " (" ++ displayPos (pos proc) ++ ")\")")
+    hPutStrLn h ""
+    hPutStrLn h $ pr margin (emit defaultIndent proc) ""
diff --git a/src/CPSA/Roletran/Protocol.hs b/src/CPSA/Roletran/Protocol.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Roletran/Protocol.hs
@@ -0,0 +1,128 @@
+-- Protocol data structures
+
+-- Copyright (c) 2020 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module CPSA.Roletran.Protocol (
+  Event (..), Trace, traceWellFormed,
+  Role, mkRole, rname, rpos, rvars, rtrace, runiques, rinputs, routputs,
+  Prot, mkProt, pname, ppos, roles) where
+
+import Control.Monad (foldM)
+import qualified Data.List as L
+import CPSA.Lib.SExpr
+import CPSA.Roletran.Algebra
+
+-- Message events and traces
+
+data Event
+    = In Pos !Term !Term        -- Inbound message (channel first)
+    | Out Pos !Term !Term       -- Outbound message (channel first)
+      deriving Show
+
+-- A trace is a list of events.  The terms in the trace are
+-- stored in causal order.
+type Trace = [Event]
+
+-- At what position does a term originate in a trace?
+originationPos :: Term -> Trace -> Maybe Int
+originationPos t c =
+    loop 0 c
+    where
+      loop _ [] = Nothing       -- Term is not carried
+      loop pos (Out _ _ t' : c)
+          | t `carriedBy` t' = Just pos -- Found it
+          | otherwise = loop (pos + 1) c
+      loop pos (In _ _ t' : c)
+          | t `carriedBy` t' = Nothing -- Term does not originate
+          | otherwise = loop (pos + 1) c
+
+eventWellFormed :: VarEnv -> Event -> Maybe VarEnv
+eventWellFormed env (In _ ch t) =
+  doubleTermWellFormed env ch t
+eventWellFormed env (Out _ ch t) =
+  doubleTermWellFormed env ch t
+
+traceWellFormed :: Trace -> Maybe VarEnv
+traceWellFormed c =
+  foldM eventWellFormed emptyVarEnv c
+
+data Role = Role
+    { rname :: !String,
+      rpos :: !Pos,
+      rvars :: !VarEnv,           -- Variables in the trace
+      rtrace :: ![Event],         -- Events in causal order
+      runiques :: ![(Term, Int)], -- Uniquely originating atoms and positions
+      rinputs :: ![Term],         -- Sequence of inputs atoms
+      routputs :: ![Term] }       -- Sequence of outputs terms
+    deriving Show
+
+{-
+The translator performs various checks to ensure that each role read
+is well formed.  It ensures the each term in the inputs is a basic
+value.  It ensures that any basic value assumed to be uniquely
+originating originates in the role's trace, and that no uniquely
+originating value is in the inputs.  It ensures that no input variable
+is specified as an output.  It also ensures that every variable in
+terms that occur in the inputs, outputs, or are assumed to be uniquely
+originating also occur in the role's trace.
+-}
+
+-- Create a role
+mkRole :: MonadFail m => String -> Pos -> VarEnv -> Trace ->
+          [Term] -> [Term] -> [Term] -> m Role
+mkRole name pos vars trace uniques inputs outputs =
+  do
+    mapM_ (checkInput pos) inputs
+    mapM_ (checkUniq pos inputs) uniques
+    uniquesPos <- mapM (addPos pos trace) (L.nub uniques)
+    mapM_ (checkOutput pos inputs) outputs
+    return $ Role
+      { rname = name,
+        rpos = pos,
+        rvars = vars,
+        rtrace = trace,
+        runiques = uniquesPos,
+        rinputs = L.nub inputs,
+        routputs = outputs
+      }
+
+checkInput :: MonadFail m => Pos -> Term -> m ()
+checkInput _ input | isBasic input || isChanVar input = return ()
+checkInput pos input =
+    fail (shows pos $ "Input is not a basic value or a channel " ++ show input)
+
+checkUniq :: MonadFail m => Pos -> [Term] -> Term -> m ()
+checkUniq pos inputs unique
+  | elem unique inputs =
+      fail (shows pos $ "Uniquely originating value in input " ++ show unique)
+  | otherwise = return ()
+
+addPos :: MonadFail m => Pos -> Trace -> Term -> m (Term, Int)
+addPos pos trace unique =
+  case originationPos unique trace of
+    Just i -> return (unique, i)
+    Nothing -> fail (shows pos $ "Uniquely originating value " ++
+                     show unique ++ " does not originate in trace")
+
+checkOutput :: MonadFail m => Pos -> [Term] -> Term -> m ()
+checkOutput pos inputs output
+  | elem output inputs =
+      fail (shows pos $ "Output contains an input value " ++ show output)
+  | otherwise = return ()
+
+-- Protocols
+
+data Prot
+    = Prot { pname :: !String,  -- Name of the protocol
+             ppos :: !Pos,      -- Source position of the protocol
+             roles :: ![Role] } -- Non-listener roles of a protocol
+    deriving Show
+
+-- Callers should ensure every role has a distinct name.
+mkProt :: String -> Pos -> [Role] -> Prot
+mkProt name pos roles =
+    Prot { pname = name, ppos = pos, roles = roles }
diff --git a/src/CPSA/SAS/Main.hs b/src/CPSA/SAS/Main.hs
--- a/src/CPSA/SAS/Main.hs
+++ b/src/CPSA/SAS/Main.hs
@@ -10,60 +10,62 @@
 
 import System.IO
 import CPSA.Lib.SExpr
-import CPSA.Lib.Algebra
+import CPSA.Signature (Sig, defaultSig, loadSig)
+import CPSA.Algebra
 import CPSA.Lib.Entry
+import CPSA.Options
 import CPSA.SAS.SAS
-import qualified CPSA.Basic.Algebra
-import qualified CPSA.DiffieHellman.Algebra
 
 -- Algebra names
 algs :: [String]
-algs = [CPSA.Basic.Algebra.name, CPSA.DiffieHellman.Algebra.name]
+algs = [name, alias]
 
 main :: IO ()
 main =
     do
-      let options = algOptions CPSA.Basic.Algebra.name
-      let interp = algInterp CPSA.Basic.Algebra.name algs
+      let options = algOptions name
+      let interp = algInterp name algs
       (p, (output, alg, margin)) <- start options interp
       h <- outputHandle output
-      -- Handle the herald
+      herald p margin h alg
+
+-- Handle the herald
+herald :: PosHandle -> Int -> Handle -> String -> IO ()
+herald p margin h alg =
+    do
       x <- readSExpr p
       case x of
         Nothing -> abort "Empty input"
-        Just (L _ (S _ "herald" : _ : xs)) ->
-             selAlg p h (getName xs alg) margin Nothing
-        Just x -> selAlg p h alg margin (Just x)
-
--- Select algebra and then continue with next
-selAlg :: PosHandle -> Handle -> String -> Int -> Maybe (SExpr Pos) -> IO ()
-selAlg p h alg margin sexpr =
-    case () of
-      _ | alg == CPSA.Basic.Algebra.name ->
-           next p h margin sexpr
-                    (step h alg CPSA.Basic.Algebra.origin margin)
-        | alg == CPSA.DiffieHellman.Algebra.name ->
-           next p h margin sexpr
-                    (step h alg CPSA.DiffieHellman.Algebra.origin margin)
-          | otherwise ->
-               abort ("Bad algebra: " ++ alg)
+        Just x@(L pos (S _ "herald" : _ : xs)) ->
+          do
+            writeSExpr h margin x
+            hPutStrLn h ""
+            sig <- loadSig pos (assoc "lang" xs)
+            let nom = getAlgName xs alg
+            select p margin h sig nom Nothing
+        Just (L _ (S _ "comment" : _)) ->
+          herald p margin h alg
+        x ->
+          select p margin h defaultSig alg x
 
--- Continue and ignore header if one was found
-next :: PosHandle -> Handle -> Int ->
-        Maybe (SExpr Pos) -> (State t g c -> Maybe (SExpr Pos)
-                              -> IO (State t g c)) -> IO ()
-next p h margin Nothing f = -- Found header
-    do
-      writeComment h margin cpsaVersion
-      writeComment h margin "Coherent logic"
-      go f p ([], [])
-      hClose h
-next p h margin sexpr f =   -- No header found
+select :: PosHandle -> Int -> Handle -> Sig ->
+          String -> Maybe (SExpr Pos) -> IO ()
+select p margin h sig alg x =
     do
       writeComment h margin cpsaVersion
       writeComment h margin "Coherent logic"
-      st <- f ([], []) sexpr -- Process first S-expression.
-      go f p st
+      let stepper = step h alg origin margin
+      let state = (sig, [], [])
+      case () of
+        _ | alg == name || alg == alias ->
+            case x of
+              Nothing -> go stepper p state
+              _ ->
+                do
+                  next <- stepper state x
+                  go stepper p next
+          | otherwise ->
+               abort ("Bad algebra: " ++ alg)
       hClose h
 
 go :: (a -> Maybe (SExpr Pos) -> IO a) -> PosHandle -> a -> IO ()
@@ -83,14 +85,13 @@
                     a <- f a x
                     loop a
 
-step :: Algebra t p g s e c => Handle -> String ->
-        g -> Int -> State t g c ->
-        Maybe (SExpr Pos) -> IO (State t g c)
-step output _ _ margin state
-         (Just sexpr@(L _ (S _ "comment" : _))) =
-         do
-           writeLnSExpr output margin sexpr
-           return state
+step :: Handle -> String -> Gen -> Int -> State ->
+        Maybe (SExpr Pos) -> IO State
+step output _ _ margin state@(_, [], [])
+     (Just sexpr@(L _ (S _ "comment" : _))) =
+    do
+      writeLnSExpr output margin sexpr
+      return state
 step output name origin margin state sexpr =
     do
       x <- tryIO (sas name origin state sexpr)
@@ -104,8 +105,7 @@
               writeLnSExpr output margin x
               after output margin acc sexpr
 
-after :: Handle -> Int -> State t g c ->
-         Maybe (SExpr Pos) -> IO (State t g c)
+after :: Handle -> Int -> State -> Maybe (SExpr Pos) -> IO State
 after output margin state (Just sexpr@(L _ (S _ "defprotocol" : _))) =
     do
       writeLnSExpr output margin sexpr
@@ -113,11 +113,12 @@
 after _ _ state _ =
     return state
 
-getName :: [SExpr a] -> String -> String
-getName xs name =
+getAlgName :: [SExpr a] -> String -> String
+getAlgName xs name =
     case assoc "algebra" xs of
+      [] -> name
       [S _ nom] -> nom
-      _ -> name
+      _ -> error "Bad algbra field an herald"
 
 -- Lookup value in alist, appending values with the same key
 assoc :: String -> [SExpr a] -> [SExpr a]
diff --git a/src/CPSA/SAS/SAS.hs b/src/CPSA/SAS/SAS.hs
--- a/src/CPSA/SAS/SAS.hs
+++ b/src/CPSA/SAS/SAS.hs
@@ -13,8 +13,8 @@
 import qualified Data.Map as M
 import CPSA.Lib.Utilities
 import CPSA.Lib.SExpr
-import CPSA.Lib.Printer
-import CPSA.Lib.Algebra
+import CPSA.Signature (Sig, loadSig)
+import CPSA.Algebra
 
 {--
 import System.IO.Unsafe
@@ -29,113 +29,97 @@
 root :: String
 root = "z"
 
-type State t g c = ([Prot t g c], [Preskel t g c])
+type State = (Sig, [Prot], [Preskel])
 
-sas :: (Algebra t p g s e c, MonadFail m) => String -> g ->
-         State t g c -> Maybe (SExpr Pos) ->
-         m (State t g c, Maybe (SExpr ()))
-sas _ _ (ps, ks) Nothing =    -- Nothing signifies end-of-file
-    displayFormula ps (reverse ks)
-sas name gen (ps, []) (Just sexpr) = -- Looking for POV skeleton
-    loadPOV name gen ps sexpr
-sas name gen (ps, ks) (Just sexpr) = -- Looking for shapes
-    loadOtherPreskel name gen ps ks sexpr
+sas :: MonadFail m => String -> Gen -> State -> Maybe (SExpr Pos) ->
+       m (State, Maybe (SExpr ()))
+sas _ _ (sig, ps, ks) Nothing =    -- Nothing signifies end-of-file
+    displayFormula sig ps (reverse ks)
+sas name gen (sig, ps, []) (Just sexpr) = -- Looking for POV skeleton
+    loadPOV sig name gen ps sexpr
+sas name gen (sig, ps, ks) (Just sexpr) = -- Looking for shapes
+    loadOtherPreskel sig name gen ps ks sexpr
 
-loadPOV :: (Algebra t p g s e c, MonadFail m) => String -> g ->
-           [Prot t g c] -> SExpr Pos ->
-           m (State t g c, Maybe (SExpr ()))
-loadPOV name origin ps (L pos (S _ "defprotocol" : xs)) =
+loadPOV :: MonadFail m => Sig -> String -> Gen -> [Prot] -> SExpr Pos ->
+           m (State, Maybe (SExpr ()))
+loadPOV sig name origin ps (L pos (S _ "defprotocol" : xs)) =
     do
-      p <- loadProt name origin pos xs
-      return ((p : ps, []), Nothing)
-loadPOV _ _ ps (L pos (S _ "defskeleton" : xs)) =
+      p <- loadProt sig name origin pos xs
+      return ((sig, p : ps, []), Nothing)
+loadPOV _ _ _ ps (L pos (S _ "defskeleton" : xs)) =
     do
       p <- findProt pos ps xs
-      k <- loadPreskel pos p (pgen p) xs
-      case (isFringe k) of
-        False ->
-          do                    -- Found POV
-            origCheck pos k     -- Ensure uniqs originate
-            return ((ps, [k]), Nothing)
-        _ -> return ((ps, []), Nothing) -- Not POV
-loadPOV _ _ ps _ = return ((ps, []), Nothing)
+      k <- loadPreskel (psig p) pos p (pgen p) xs
+      case isFringe k of
+        False -> return ((psig p, ps, [k]), Nothing) -- Found POV
+        _ -> return ((psig p, ps, []), Nothing) -- Not POV
+loadPOV sig _ _ ps _ = return ((sig, ps, []), Nothing)
 
-loadOtherPreskel :: (Algebra t p g s e c, MonadFail m) => String -> g ->
-                    [Prot t g c] -> [Preskel t g c] ->
-                    SExpr Pos -> m (State t g c, Maybe (SExpr ()))
-loadOtherPreskel name origin ps ks (L pos (S _ "defprotocol" : xs)) =
+loadOtherPreskel :: MonadFail m => Sig -> String -> Gen -> [Prot] ->
+                    [Preskel] -> SExpr Pos -> m (State, Maybe (SExpr ()))
+loadOtherPreskel sig name origin ps ks (L pos (S _ "defprotocol" : xs)) =
     do                     -- Found next protocol.  Print this formula
-      p <- loadProt name origin pos xs
-      displayFormula (p : ps) (reverse ks)
-loadOtherPreskel _ _ ps ks (L pos (S _ "defskeleton" : xs)) =
+      p <- loadProt sig name origin pos xs
+      displayFormula (psig p) (p : ps) (reverse ks)
+loadOtherPreskel _ _ _ ps ks (L pos (S _ "defskeleton" : xs)) =
     do
       p <- findProt pos ps xs
       let g = kgen (last ks)      -- Make sure vars in skeleton are
-      k <- loadPreskel pos p g xs -- distinct from the ones in the POV
+      k <- loadPreskel (psig p) pos p g xs -- distinct from the ones in the POV
       case isFringe k of
-        True ->
-          do                    -- Found shape
-            origCheck pos k     -- Ensure uniqs originate
-            return ((ps, k : ks), Nothing)
-        False -> return ((ps, ks), Nothing) -- Found intermediate skeleton
-loadOtherPreskel _ _ ps ks _ = return ((ps, ks), Nothing)
-
--- Ensure every uniq originates
-origCheck :: (Algebra t p g s e c, MonadFail m) =>
-             Pos -> Preskel t g c -> m ()
-origCheck pos k =
-  mapM_ f (uniqs k)
-  where
-    f t | any (\(t', _) -> t == t') (origs k) = return ()
-        | otherwise =
-      fail (shows pos "Uniq " ++ u ++ " has no origination point")
-      where
-        u = pp 0 0 (displayTerm ctx t)
-        ctx = addToContext emptyContext (kvars k)
+        True -> return ((psig p, ps, k : ks), Nothing) -- Found shape
+        False -> return ((psig p, ps, ks), Nothing) -- Found intermediate skeleton
+loadOtherPreskel sig _ _ ps ks _ = return ((sig, ps, ks), Nothing)
 
 -- Load a protocol
 
 -- The Prot record contains information extraced from protocols for
 -- use when processing preskeletons.  A protocol includes a role for
 -- all listeners.
-data Prot t g c = Prot
+data Prot = Prot
     { pname :: String,          -- Protocol name
-      pgen :: g,                -- Generator for preskeletons
-      roles :: [Role t c] }
+      pgen :: Gen,                -- Generator for preskeletons
+      roles :: [Role],
+      psig :: Sig }             -- the protocol's signature
     deriving Show
 
 -- The Role record contains information extraced from roles for use
 -- when processing preskeletons.
-data Role t c = Role
+data Role = Role
     { rname :: String,          -- Role name
-      vars :: [t],
-      ctx :: c }
+      vars :: [Term],
+      ctx :: Context }
     deriving Show
 
 -- Load a protocol.  On success, returns a Prot record.
 
-loadProt :: (Algebra t p g s e c, MonadFail m) => String -> g ->
-            Pos -> [SExpr Pos] -> m (Prot t g c)
-loadProt nom origin pos (S _ name : S _ alg : x : xs)
+loadProt :: MonadFail m => Sig -> String -> Gen -> Pos ->
+            [SExpr Pos] -> m (Prot)
+loadProt sig nom origin pos (S _ name : S _ alg : x : xs)
     | alg /= nom =
         fail (shows pos $ "Expecting terms in algebra " ++ nom)
     | otherwise =
         do
-          (gen, rs) <- loadRoles origin (x : xs)
-          (gen', r) <- makeListenerRole pos gen
-          return (Prot { pname = name, pgen = gen', roles = r : rs })
-loadProt _ _ pos _ =
+          sig <- loadLang pos sig xs
+          (gen, rs) <- loadRoles sig origin (x : xs)
+          (gen', r) <- makeListenerRole sig pos gen
+          return (Prot { pname = name, pgen = gen', roles = r : rs, psig = sig })
+loadProt _ _ _ pos _ =
     fail (shows pos "Malformed protocol")
 
+-- Optionally load a lang field in a protocol.
+loadLang :: MonadFail m => Pos -> Sig -> [SExpr Pos] -> m Sig
+loadLang pos _ xs | hasKey "lang" xs = loadSig pos (assoc "lang" xs)
+loadLang _ sig _ | otherwise = return sig
+
 -- A generator is threaded thoughout the protocol loading process so
 -- as to ensure no variable occurs in two roles.  It also ensures that
 -- every variable that occurs in a preskeleton never occurs in one of
 -- its roles.
 
-loadRoles :: (Algebra t p g s e c, MonadFail m) => g ->
-             [SExpr Pos] -> m (g, [Role t c])
-loadRoles origin xs =
-    mapAccumLM loadRole origin $ stripComments xs
+loadRoles :: MonadFail m => Sig -> Gen -> [SExpr Pos] -> m (Gen, [Role])
+loadRoles sig origin xs =
+    mapAccumLM (loadRole sig) origin $ stripComments xs
 
 stripComments :: [SExpr Pos] -> [SExpr Pos]
 stripComments xs =
@@ -154,19 +138,18 @@
       (z'', ys) <- mapAccumLM f z' xs
       return (z'', y : ys)
 
-loadRole :: (Algebra t p g s e c, MonadFail m) => g ->
-            SExpr Pos -> m (g, Role t c)
-loadRole gen (L _ (S _ "defrole" :
-                     S _ name :
-                     L _ (S _ "vars" : vars) :
-                     L _ (S _ "trace" : _ : _) :
-                     _)) =
+loadRole :: MonadFail m => Sig -> Gen -> SExpr Pos -> m (Gen, Role)
+loadRole sig gen (L _ (S _ "defrole" :
+                       S _ name :
+                       L _ (S _ "vars" : vars) :
+                       L _ (S _ "trace" : _ : _) :
+                       _)) =
     do
-      (gen, vars) <- loadVars gen vars
+      (gen, vars) <- loadVars sig gen vars
       let ctx = addToContext emptyContext vars
       let r = Role { rname = name, vars = vars, ctx = ctx }
       return (gen, r)
-loadRole _ x =
+loadRole _ _ x =
     fail (shows (annotation x) "Malformed role")
 
 -- A protocol's listener role
@@ -174,20 +157,19 @@
 listenerName :: String
 listenerName = ""
 
-makeListenerRole :: (Algebra t p g s e c, MonadFail m) => Pos -> g ->
-                    m (g, Role t c)
-makeListenerRole pos gen =
+makeListenerRole :: MonadFail m => Sig -> Pos -> Gen -> m (Gen, Role)
+makeListenerRole sig pos gen =
     do
-      (gen', t) <- makeVar pos gen "x"
+      (gen', t) <- makeVar sig pos gen "x"
       let vars = [t]
       let ctx = addToContext emptyContext vars
       let r = Role { rname = listenerName, vars = vars, ctx = ctx }
       return (gen', r)
 
-makeVar :: (Algebra t p g s e c, MonadFail m) => Pos -> g -> String -> m (g, t)
-makeVar pos gen name =
+makeVar :: MonadFail m => Sig -> Pos -> Gen -> String -> m (Gen, Term)
+makeVar sig pos gen name =
     do
-      (gen', ts) <- loadVars gen [L pos [S pos name, S pos "mesg"]]
+      (gen', ts) <- loadVars sig gen [L pos [S pos name, S pos "mesg"]]
       case ts of
         [t] -> return (gen', t)
         _ -> fail (shows pos "Bad variable generation")
@@ -196,35 +178,34 @@
 
 -- A variable map maps strands to variables
 
-type VM t = M.Map Strand t
+type VM = M.Map Strand Term
 
 -- A generator and a variable map
-type GVM g t = (g, VM t)
+type GVM = (Gen, VM)
 
--- Add a variable for a node if the mapping does not already exist.
-addVar :: (Algebra t p g s e c, MonadFail m) =>
-          Pos -> GVM g t -> Strand -> m (GVM g t)
-addVar pos (gen, vm) z =
+-- Add a variable for a strand if the mapping does not already exist.
+addVar :: MonadFail m => Sig -> Pos -> GVM -> Strand -> m GVM
+addVar sig pos (gen, vm) z =
   case M.lookup z vm of
     Just _ -> return (gen, vm)
     Nothing ->
       do
-        (gen, t) <- makeVar pos gen root -- Make the variable
+        (gen, t) <- makeVar sig pos gen root -- Make the variable
         return (gen, M.insert z t vm)
 
 -- Strand lookup assumes a strand will always be found.
-slookup :: Strand -> VM t -> t
+slookup :: Strand -> VM -> Term
 slookup z vm =
   case M.lookup z vm of
     Just t -> t
     Nothing -> error ("SAS.slookup: cannot find " ++ show z)
 
-nlookup :: Node -> VM t -> (t, Int)
+nlookup :: Node -> VM -> (Term, Int)
 nlookup (z, i) vm = (slookup z vm, i)
 
 -- Find a protocol
 
-findProt :: MonadFail m => Pos -> [Prot t g c] -> [SExpr Pos] -> m (Prot t g c)
+findProt :: MonadFail m => Pos -> [Prot] -> [SExpr Pos] -> m Prot
 findProt pos ps (S _ name : _) =
     case L.find (\p -> name == pname p) ps of
       Nothing -> fail (shows pos $ "Protocol " ++ name ++ " unknown")
@@ -233,10 +214,10 @@
 
 -- Load a preskeleton
 
-data Instance t c = Instance
+data Instance = Instance
     { pos :: Pos,               -- Instance position
-      role :: Role t c,         -- Role from which this was instantiated
-      env :: [(t, t)],          -- The environment
+      role :: Role,           -- Role from which this was instantiated
+      env :: [(Term, Term)],    -- The environment
       height :: Int }           -- Height of the instance
     deriving Show
 
@@ -248,44 +229,56 @@
 
 type Pair = (Node, Node)        -- Precedes relation
 
-type Fact t = (String, [t])
+type Fact = (String, [Term])
 
-data Preskel t g c = Preskel
-    { protocol :: Prot t g c,
-      kgen :: g,                -- Final generator
-      kvars :: [t],             -- Algebra variables
-      kstrands :: [t],          -- Strand variables
-      insts :: [Instance t c],
-      strands :: [t],           -- A variable for each instance
-      orderings :: [((t, Int), (t, Int))],
-      leadsto :: [((t, Int), (t, Int))],
-      nons :: [t],
-      pnons :: [t],
-      ugens :: [t],
-      uniqs :: [t],
-      origs :: [(t, (t, Int))],
-      -- ugen, ugenAt missing!
-      facts :: [Fact t],
+data Preskel = Preskel
+    { protocol :: Prot,
+      kgen :: Gen,                -- Final generator
+      kvars :: [Term],            -- Algebra variables
+      kstrands :: [Term],         -- Strand variables
+      insts :: [Instance],
+      strands :: [Term],        -- A variable for each instance
+      orderings :: [((Term, Int), (Term, Int))],
+      nons :: [Term],
+      pnons :: [Term],
+      uniqs :: [Term],
+      uniqgens :: [Term],       -- adding nov 2022
+      -- absents :: [(Term, Term)], -- adding nov 2022
+      origs :: [(Term, (Term, Int))],
+      -- adding nov 2022; it's like origs but for uniqgen:
+      genNodes :: [(Term, (Term, Int))],
+      genSts :: [Term],         -- adding nov 2022
+      -- adding nov 2022; like orderings but for the state transition
+      -- relation:
+      leadsTos :: [((Term, Int), (Term, Int))],       -- Pair
+      auths :: [Term],
+      confs :: [Term],
+      facts :: [Fact],
       isFringe :: !Bool,         -- Always looked at, so make it strict
       homomorphisms :: [SExpr Pos], -- Loaded later
-      varmap :: VM t }
+      varmap :: VM }
 
-loadPreskel :: (Algebra t p g s e c, MonadFail m) => Pos -> Prot t g c ->
-               g -> [SExpr Pos] -> m (Preskel t g c)
-loadPreskel pos prot gen (S _ _ : L _ (S _ "vars" : vars) : xs) =
+loadPreskel :: MonadFail m => Sig -> Pos -> Prot -> Gen ->
+               [SExpr Pos] -> m (Preskel)
+loadPreskel sig pos prot gen (S _ _ : L _ (S _ "vars" : vars) : xs) =
     do
-      (gen, kvars) <- loadVars gen vars
-      insts <- loadInsts prot kvars [] xs
+      (gen, kvars) <- loadVars sig gen vars
+      insts <- loadInsts sig prot kvars [] xs
       let heights = map height insts
       orderings <- loadOrderings heights (assoc precedesKey xs)
-      leadsto <- loadOrderings heights (assoc leadstoKey xs)
-      nons <- loadBaseTerms kvars (assoc nonOrigKey xs)
-      pnons <- loadBaseTerms kvars (assoc pnonOrigKey xs)
-      ugens <- loadBaseTerms kvars (assoc ugenOrigKey xs)
-      uniqs <- loadBaseTerms kvars (assoc uniqOrigKey xs)
-      origs <- loadOrigs kvars heights (assoc origsKey xs)
-      (gen, varmap) <- makeVarmap pos gen [0..(length insts)-1]
-      facts <- mapM (loadFact kvars varmap) (assoc factsKey xs)
+      nons <- loadBaseTerms sig kvars (assoc nonOrigKey xs)
+      pnons <- loadBaseTerms sig kvars (assoc pnonOrigKey xs)
+      uniqs <- loadBaseTerms sig kvars (assoc uniqOrigKey xs)
+      origs <- loadOrigs sig kvars heights (assoc origsKey xs)
+      uniqgens <- loadBaseTerms sig kvars (assoc uGenKey xs)
+      -- absents <-  mapM (loadAbsentPair sig kvars) (assoc absKey xs)
+      genNodes <- loadOrigs sig kvars heights (assoc gensKey xs)
+      leadsTos <- loadOrderings heights (assoc leadsToKey xs)
+      genSts <- mapM (loadTerm sig kvars False) (assoc genStKey xs)
+      auths <- loadBaseTerms sig kvars (assoc authKey xs)
+      confs <- loadBaseTerms sig kvars (assoc confKey xs)
+      (gen, varmap) <- makeVarmap sig pos gen [0..(length insts)-1]
+      facts <- mapM (loadFact sig kvars varmap) (assoc factsKey xs)
       let f (n0, n1) = (nlookup n0 varmap, nlookup n1 varmap)
       let g (t, n) = (t, nlookup n varmap)
       return (Preskel { protocol = prot,
@@ -295,70 +288,75 @@
                         insts = insts,
                         strands = M.elems varmap,
                         orderings = map f orderings,
-                        leadsto = map f leadsto,
                         nons = nons,
                         pnons = pnons,
-                        ugens = ugens,
                         uniqs = uniqs,
+                        uniqgens = uniqgens,
+                        -- absents = absents,
                         origs = map g origs,
+                        genNodes = map g genNodes,
+                        genSts = genSts,
+                        leadsTos = map f leadsTos,
+                        auths = auths,
+                        confs = confs,
                         facts = facts,
                         isFringe = hasKey shapeKey xs || hasKey fringeKey xs,
                         homomorphisms = assoc mapsKey xs,
                         varmap = varmap})
-loadPreskel pos _ _ _ = fail (shows pos "Malformed skeleton")
+loadPreskel _ pos _ _ _ = fail (shows pos "Malformed skeleton")
 
-loadInsts :: (Algebra t p g s e c, MonadFail m) => Prot t g c ->
-             [t] -> [Instance t c] -> [SExpr Pos] -> m [Instance t c]
-loadInsts prot kvars insts (L pos (S _ "defstrand" : x) : xs) =
+loadInsts :: MonadFail m => Sig -> Prot -> [Term] -> [Instance] ->
+             [SExpr Pos] -> m [Instance]
+loadInsts sig prot kvars insts (L pos (S _ "defstrand" : x) : xs) =
     case x of
       S _ role : N _ height : env ->
           do
-            i <- loadInst pos prot kvars role height env
-            loadInsts prot kvars (i : insts) xs
+            i <- loadInst sig pos prot kvars role height env
+            loadInsts sig prot kvars (i : insts) xs
       _ ->
           fail (shows pos "Malformed defstrand")
-loadInsts prot kvars insts (L pos (S _ "deflistener" : x) : xs) =
+loadInsts sig prot kvars insts (L pos (S _ "deflistener" : x) : xs) =
     case x of
       [term] ->
           do
-            i <- loadListener pos prot kvars term
-            loadInsts prot kvars (i : insts) xs
+            i <- loadListener sig pos prot kvars term
+            loadInsts sig prot kvars (i : insts) xs
       _ ->
           fail (shows pos "Malformed deflistener")
-loadInsts _ _ insts _ =
+loadInsts _ _ _ insts _ =
     return (reverse insts)
 
-loadInst :: (Algebra t p g s e c, MonadFail m) => Pos -> Prot t g c ->
-            [t] -> String -> Int -> [SExpr Pos] -> m (Instance t c)
-loadInst pos prot kvars role height env =
+loadInst :: MonadFail m => Sig -> Pos -> Prot -> [Term] ->
+            String -> Int -> [SExpr Pos] -> m Instance
+loadInst sig pos prot kvars role height env =
     do
       r <- lookupRole pos prot role
-      env <- mapM (loadMaplet kvars (vars r)) env
+      env <- mapM (loadMaplet sig kvars (vars r)) env
       return (Instance { pos = pos, role = r,
                          env = env, height = height })
 
-lookupRole :: MonadFail m => Pos -> Prot t g c -> String -> m (Role t c)
+lookupRole :: MonadFail m => Pos -> Prot -> String -> m Role
 lookupRole pos prot role =
     case L.find (\r -> role == rname r) (roles prot) of
       Nothing ->
           fail (shows pos $ "Role " ++ role ++ " not found in " ++ pname prot)
       Just r -> return r
 
-loadMaplet :: (Algebra t p g s e c, MonadFail m) =>
-              [t] -> [t] -> SExpr Pos -> m (t, t)
-loadMaplet kvars vars (L _ [domain, range]) =
+loadMaplet :: MonadFail m => Sig -> [Term] -> [Term] ->
+              SExpr Pos -> m (Term, Term)
+loadMaplet sig kvars vars (L _ [domain, range]) =
     do
-      t <- loadTerm vars False domain
-      t' <- loadTerm kvars False range
+      t <- loadTerm sig vars False domain
+      t' <- loadTerm sig kvars False range
       return (t, t')
-loadMaplet _ _ x = fail (shows (annotation x) "Malformed maplet")
+loadMaplet _ _ _ x = fail (shows (annotation x) "Malformed maplet")
 
-loadListener :: (Algebra t p g s e c, MonadFail m) => Pos ->
-                Prot t g c -> [t] -> SExpr Pos -> m (Instance t c)
-loadListener pos prot kvars x =
+loadListener :: MonadFail m => Sig -> Pos -> Prot -> [Term] ->
+                SExpr Pos -> m Instance
+loadListener sig pos prot kvars x =
     do
       r <- lookupRole pos prot listenerName
-      t <- loadTerm kvars False x
+      t <- loadTerm sig kvars False x
       return (Instance { pos = pos, role = r,
                          env = [(head $ vars r, t)], height = 2 })
 
@@ -400,65 +398,75 @@
           | otherwise = height xs (s - 1)
 loadNode _ x = fail (shows (annotation x) "Malformed node")
 
-loadBaseTerms :: (Algebra t p g s e c, MonadFail m) => [t] ->
-                 [SExpr Pos] -> m [t]
-loadBaseTerms _ [] = return []
-loadBaseTerms vars (x : xs) =
+loadBaseTerms :: MonadFail m => Sig -> [Term] -> [SExpr Pos] -> m [Term]
+loadBaseTerms _ _ [] = return []
+loadBaseTerms sig vars (x : xs) =
     do
-      t <- loadBaseTerm vars x
-      ts <- loadBaseTerms vars xs
+      t <- loadBaseTerm sig vars x
+      ts <- loadBaseTerms sig vars xs
       return (adjoin t ts)
 
-loadBaseTerm :: (Algebra t p g s e c, MonadFail m) => [t] -> SExpr Pos -> m t
-loadBaseTerm vars x =
+loadBaseTerm :: MonadFail m => Sig -> [Term] -> SExpr Pos -> m Term
+loadBaseTerm sig vars x =
     do
-      t <- loadTerm vars False x
+      t <- loadTerm sig vars True x
       case isAtom t of
         True -> return t
         False -> fail (shows (annotation x) "Expecting an atom")
 
-loadOrigs :: (Algebra t p g s e c, MonadFail m) => [t] -> Strands ->
-             [SExpr Pos] -> m [(t, Node)]
-loadOrigs _ _ [] = return []
-loadOrigs vars heights (x : xs) =
+{--
+  loadAbsentPair :: MonadFail m => Sig -> [Term] -> SExpr Pos -> m (Term, Term)
+  loadAbsentPair sig vars (L _ [x, y]) =
     do
-      o <- loadOrig vars heights x
-      os <- loadOrigs vars heights xs
+      v <- loadTerm sig vars True x
+      case isAtom v of
+        True ->
+            do
+              t <- loadTerm sig vars False y
+              return (v,t)
+        False -> fail (shows (annotation x) "Expecting an atom")
+  loadAbsentPair _ _ x =
+    fail (shows (annotation x) "Expecting a pair, atom and term")
+--}
+loadOrigs :: MonadFail m => Sig -> [Term] -> Strands ->
+             [SExpr Pos] -> m [(Term, Node)]
+loadOrigs _ _ _ [] = return []
+loadOrigs sig vars heights (x : xs) =
+    do
+      o <- loadOrig sig vars heights x
+      os <- loadOrigs sig vars heights xs
       return (adjoin o os)
 
-loadOrig :: (Algebra t p g s e c, MonadFail m) => [t] -> Strands ->
-            SExpr Pos -> m (t, Node)
-loadOrig vars heights (L _ [x, y]) =
+loadOrig :: MonadFail m => Sig -> [Term] -> Strands ->
+            SExpr Pos -> m (Term, Node)
+loadOrig sig vars heights (L _ [x, y]) =
     do
-      t <- loadTerm vars False x
+      t <- loadTerm sig vars True x
       n <- loadNode heights y
       return (t, n)
-loadOrig _ _ x =
+loadOrig _ _ _ x =
     fail (shows (annotation x) "Malformed origination")
 
 -- Make a variable for each strand
-makeVarmap :: (Algebra t p g s e c, MonadFail m) =>
-              Pos -> g -> [Strand] -> m (GVM g t)
-makeVarmap pos g strands =
-  foldM (addVar pos) (g, M.empty) strands
+makeVarmap :: MonadFail m => Sig -> Pos -> Gen -> [Strand] -> m GVM
+makeVarmap sig pos g strands =
+  foldM (addVar sig pos) (g, M.empty) strands
 
-loadFact :: (Algebra t p g s e c, MonadFail m) => [t] ->
-            VM t -> SExpr Pos -> m (Fact t)
-loadFact vars varmap (L _ (S _ name : ft)) =
+loadFact :: MonadFail m => Sig -> [Term] -> VM -> SExpr Pos -> m Fact
+loadFact sig vars varmap (L _ (S _ name : ft)) =
   do
-    ft <- mapM (loadFactTerm vars varmap) ft
+    ft <- mapM (loadFactTerm sig vars varmap) ft
     return (name, ft)
-loadFact _ _ x =
+loadFact _ _ _ x =
   fail (shows (annotation x) "Malformed fact")
 
-loadFactTerm :: (Algebra t p g s e c, MonadFail m) =>
-                [t] -> VM t -> SExpr Pos -> m t
-loadFactTerm _ varmap (N pos z) =
+loadFactTerm :: MonadFail m => Sig -> [Term] -> VM -> SExpr Pos -> m Term
+loadFactTerm _ _  varmap (N pos z) =
   case M.lookup z varmap of
     Just t -> return t
-    Nothing -> fail $ shows pos ("Bad strand in fact: " ++ show z)
-loadFactTerm vars _ x =
-  loadTerm vars False x
+    Nothing -> fail $ shows pos ("cpsa4sas:  Bad strand in fact: " ++ show z)
+loadFactTerm sig vars _ x =
+  loadTerm sig vars False x
 
 -- Homomorphisms
 
@@ -466,31 +474,29 @@
 -- A homomorphism is a list of length two, a strand map as a list of
 -- natural numbers, and a substition.
 
-type Homo t = ([(t, t)], [(t, t)])
+type Hom = ([(Term, Term)], [(Term, Term)])
 
-loadMaps :: (Algebra t p g s e c, MonadFail m) => Preskel t g c ->
-            Preskel t g c -> [SExpr Pos] -> m [Homo t]
-loadMaps pov k maps =
-    mapM (loadMap pov k) maps
+loadMaps :: MonadFail m => Sig -> Preskel -> Preskel -> [SExpr Pos] -> m [Hom]
+loadMaps sig pov k maps =
+    mapM (loadMap sig pov k) maps
 
-loadMap :: (Algebra t p g s e c, MonadFail m) => Preskel t g c ->
-            Preskel t g c -> SExpr Pos -> m (Homo t)
-loadMap pov k (L _ [L _ strandMap, L _ algebraMap]) =
+loadMap :: MonadFail m => Sig -> Preskel -> Preskel -> SExpr Pos -> m Hom
+loadMap sig pov k (L _ [L _ strandMap, L _ algebraMap]) =
     do
       perm <- mapM loadPerm strandMap -- Load the strand map
       nh <- mapM (loadStrandEq k perm) (M.assocs $ varmap pov)
       -- Load the algebra part of the homomorphism
-      ah <- mapM (loadMaplet (kvars k) (kvars pov)) algebraMap
+      ah <- mapM (loadMaplet sig (kvars k) (kvars pov)) algebraMap
       return (nh, ah)
-loadMap _ _ x = fail (shows (annotation x) "Malformed map")
+loadMap _ _ _ x = fail (shows (annotation x) "Malformed map")
 
 loadPerm :: MonadFail m => SExpr Pos -> m Int
 loadPerm (N _ n) | n >= 0 = return n
 loadPerm x = fail (shows (annotation x) "Expecting a natural number")
 
 -- Applies a strand permutation to a strand.
-loadStrandEq :: MonadFail m => Preskel t g c -> [Int] ->
-                (Strand, t) -> m (t, t)
+loadStrandEq :: MonadFail m => Preskel -> [Int] -> (Strand, Term) ->
+                m (Term, Term)
 loadStrandEq k perm (z, v) =
   do
     z <- index perm z
@@ -531,10 +537,6 @@
 precedesKey :: String
 precedesKey = "precedes"
 
--- The key used in preskeletons for leadsto orderings
-leadstoKey :: String
-leadstoKey = "leadsto"
-
 -- The key used in preskeletons for non-originating atoms
 nonOrigKey :: String
 nonOrigKey = "non-orig"
@@ -543,27 +545,50 @@
 pnonOrigKey :: String
 pnonOrigKey = "pen-non-orig"
 
--- The key used in preskeletons for penetrator non-originating atoms
-ugenOrigKey :: String
-ugenOrigKey = "uniq-gen"
-
 -- The key used in preskeletons for uniquely originating atoms
 uniqOrigKey :: String
 uniqOrigKey = "uniq-orig"
 
+-- The key used in preskeletons for uniquely generated atoms
+uGenKey :: String
+uGenKey = "uniq-gen"
+
+--   -- The key used to extract absent declarations
+--   absKey :: String
+--   absKey = "absent"
+
+-- The key used in preskeletons for authenticated channels
+authKey :: String
+authKey = "auth"
+
+-- The key used in preskeletons for confidential channels
+confKey :: String
+confKey = "conf"
+
 -- The key used to extract the nodes of origination
 origsKey :: String
 origsKey = "origs"
 
+-- The key used to extract the nodes of generation
+gensKey :: String
+gensKey = "gens"
+
+-- The key used to extract the leads-to node pairs
+leadsToKey :: String
+leadsToKey = "leads-to"
+
+-- The key used to extract the gen-state node pairs
+genStKey :: String
+genStKey = "gen-st"
+
 -- The key used to extract facts
 factsKey :: String
 factsKey = "facts"
 
-type Analysis t g c = (Preskel t g c, [(Homo t, Preskel t g c)])
+type Analysis = (Preskel, [(Hom, Preskel)])
 
-loadAnalysis :: (Algebra t p g s e c, MonadFail m) => Preskel t g c ->
-                [Preskel t g c] -> m (Analysis t g c)
-loadAnalysis pov ks =
+loadAnalysis :: MonadFail m => Sig -> Preskel -> [Preskel] -> m (Analysis)
+loadAnalysis sig pov ks =
   do
     shapes <- mapM f ks
     return (pov, concat shapes)
@@ -573,36 +598,35 @@
         True -> fail "No homomorphism for shape"
         False ->
             do
-              hs <- loadMaps pov k (homomorphisms k)
+              hs <- loadMaps sig pov k (homomorphisms k)
               return [(h, k) | h <- hs]
 
 -- Eliminate trivial homomorphisms by substituting for the equality
 -- throughout the analysis.
 
-reduce :: Algebra t p g s e c => Analysis t g c -> Analysis t g c
+reduce :: Analysis -> Analysis
 reduce (pov, shapes) =
   (pov, map (reduceShape pov) shapes)
 
-reduceShape :: Algebra t p g s e c => Preskel t g c ->
-               (Homo t, Preskel t g c) -> (Homo t, Preskel t g c)
+reduceShape :: Preskel -> (Hom, Preskel) -> (Hom, Preskel)
 reduceShape pov (homo, k) =
-  (mapHomo env homo, mapSkel env pov k)
+  (mapHom env homo, mapSkel env pov k)
   where
     env = snd $ head $ homoEnv (kgen k) homo
 
 -- Compute a substition for equalities that equate two variables
 -- of the same sort.
-homoEnv :: Algebra t p g s e c => g -> Homo t -> [(g, e)]
+homoEnv :: Gen -> Hom -> [(Gen, Env)]
 homoEnv g (a, n) = matchEqs (a ++ n) (g, emptyEnv)
 
-matchEqs :: Algebra t p g s e c => [(t, t)] -> (g, e) -> [(g, e)]
+matchEqs :: [(Term, Term)] -> (Gen, Env) -> [(Gen, Env)]
 matchEqs [] env = [env]
 matchEqs (eq:eqs) env =
   do
     e <- matchEq eq env
     matchEqs eqs e
 
-matchEq :: Algebra t p g s e c => (t, t) -> (g, e) -> [(g, e)]
+matchEq :: (Term, Term) -> (Gen, Env) -> [(Gen, Env)]
 matchEq (t, p) env
   | isVar p =                   -- Match fails if there
     case match p t env of       -- a sort mismatch
@@ -611,8 +635,8 @@
   | otherwise = [env]           -- Fail if p is not a variable
 
 -- Apply substitution and remove trival equations.
-mapHomo :: Algebra t p g s e c => e -> Homo t -> Homo t
-mapHomo env (a, n) =
+mapHom :: Env -> Hom -> Hom
+mapHom env (a, n) =
   (f a, f n)
   where
     f eqs = [(p, t1) |
@@ -620,26 +644,31 @@
              let t1 = instantiate env t0,
              p /= t1]
 
-mapInst :: Algebra t p g s e c => e -> Instance t c -> Instance t c
+mapInst :: Env -> Instance -> Instance
 mapInst e inst =
   inst { env = map f (env inst) }
   where
     f (p, x) = (p, instantiate e x)
 
-mapSkel :: Algebra t p g s e c => e -> Preskel t g c ->
-           Preskel t g c -> Preskel t g c
+-- JDG:  I extended this:
+
+mapSkel :: Env -> Preskel -> Preskel -> Preskel
 mapSkel env pov k =
   k { kvars = vs L.\\ kvars pov, -- Delete redundant POV variables
       kstrands = zs L.\\ kstrands pov,
       insts = map (mapInst env) (insts k),
       strands = zs,
       orderings = mapPair (instantiate env) (orderings k),
-      leadsto = mapPair (instantiate env) (leadsto k),
       nons = map (instantiate env) (nons k),
       pnons = map (instantiate env) (pnons k),
-      ugens = map (instantiate env) (ugens k),
       uniqs = map (instantiate env) (uniqs k),
-      origs = mapOrig (instantiate env) (origs k),
+      uniqgens = map (instantiate env) (uniqgens k),
+      origs = mapOrig (instantiate env) (sansPtOrigs (origs k)),
+      genNodes = mapOrig (instantiate env) (genNodes k),
+      genSts = map (instantiate env) (genSts k),
+      leadsTos = mapPair (instantiate env) (leadsTos k),
+      auths = map (instantiate env) (auths k),
+      confs = map (instantiate env) (confs k),
       facts = mapFact (instantiate env) (facts k),
       varmap = M.map (instantiate env) (varmap k) }
   where
@@ -652,44 +681,54 @@
 
 -- Formula printing
 
-displayFormula :: (Algebra t p g s e c, MonadFail m) =>
-                  [Prot t g c] -> [Preskel t g c] ->
-                  m (State t g c, Maybe (SExpr ()))
-displayFormula ps [] =
-    return ((ps, []), Nothing)
-displayFormula ps (k : ks) =
+displayFormula :: MonadFail m => Sig -> [Prot] -> [Preskel] ->
+                  m (State, Maybe (SExpr ()))
+displayFormula sig ps [] =
+    return ((sig, ps, []), Nothing)
+displayFormula sig ps (k : ks) =
     do
-      analysis <- loadAnalysis k ks
-      return ((ps, []), Just $ form $ reduce analysis)
+      analysis <- loadAnalysis sig k ks
+      return ((sig, ps, []), Just $ form $ reduce analysis)
 
-form :: Algebra t p g s e c => Analysis t g c -> SExpr ()
+form :: Analysis -> SExpr ()
 form (pov, shapes) =
   let (c, vars, conj) = skel emptyContext pov in
   let disj = map (shape c conj) shapes in
   L () [S () "defgoal", S () (pname $ protocol pov), -- Name of protocol
         quantify "forall" vars (imply (conjoin conj) (disjoin disj))]
 
+sansPts :: [Term] -> [Term]
+sansPts = filter notPt
+
+sansPtOrigs :: [(Term, (Term, Int))] -> [(Term, (Term, Int))]
+sansPtOrigs = filter (\(pt, _) -> notPt pt)
+
 -- Convert one skeleton into a declaration and a conjunction.  The
 -- declaration is used as the bound variables in a quantifier.  The
 -- context is extended so it can be used as input for another
 -- skeleton.
-skel :: Algebra t p g s e c => c -> Preskel t g c ->
-        (c, [SExpr ()], [SExpr ()])
+
+-- JDG:  Must extend.
+skel :: Context -> Preskel -> (Context, [SExpr ()], [SExpr ()])
 skel ctx k =
-  let vars = kvars k ++ kstrands k in
+  let vars = (sansPts $ kvars k ++ kstrands k) in
   let kctx = addToContext ctx vars in
   let strds = displayVars kctx (kstrands k) in
   (kctx,
-   displayVars kctx (kvars k) ++ listMap strd strds,
+   displayVars kctx (sansPts (kvars k)) ++ listMap strd strds,
    map (lengthForm kctx k) (M.assocs (varmap k)) ++
    concatMap (paramForm kctx) (zip (strands k) $ insts k) ++
    map (precForm kctx) (orderings k) ++
-   map (leadsToForm kctx) (leadsto k) ++
    map (unary "non" kctx) (nons k) ++
    map (unary "pnon" kctx) (pnons k) ++
-   map (unary "ugen" kctx) (ugens k) ++
-   -- Not possible map (unary "uniq" kctx) (noOrigUniqs k) ++
-   map (uniqAtForm kctx) (origs k) ++
+   map (unary "uniq" kctx) (sansPts (noOrigUniqs k)) ++
+   map (unary "ugen" kctx) (noGenUniqs k) ++
+   map (uniqAtForm kctx) (sansPtOrigs (origs k)) ++
+   map (ternary "ugen-at" kctx) (genNodes k) ++
+   map (unary "gen-st" kctx) (genSts k) ++
+   map (leadsToForm kctx) (leadsTos k) ++
+   map (unary "auth" kctx) (auths k) ++
+   map (unary "conf" kctx) (confs k) ++
    map (factForm kctx) (facts k))
 
 -- map through lists in an S-Expression.
@@ -705,8 +744,7 @@
 strd (v : vs) = v : strd vs
 
 -- Creates the atomic formulas used to describe an instance of a role
-lengthForm :: Algebra t p g s e c => c -> Preskel t g c ->
-              (Strand, t) -> SExpr ()
+lengthForm :: Context -> Preskel -> (Strand, Term) -> SExpr ()
 lengthForm c k (z, n) =
     L () [S () "p",
           Q () $ rname $ role inst,  -- Name of the role
@@ -720,7 +758,7 @@
 quote x = x
 
 -- Creates the atomic formulas used to describe an instance of a role
-paramForm :: Algebra t p g s e c => c -> (t, Instance t c) -> [SExpr ()]
+paramForm :: Context -> (Term, Instance) -> [SExpr ()]
 paramForm c (z, inst) =
     map f (env inst)
     where
@@ -732,51 +770,61 @@
                 displayTerm c t]
 
 -- Creates the atomic formula used to describe a node ordering relation
-precForm :: Algebra t p g s e c => c -> ((t, Int), (t, Int)) -> SExpr ()
+precForm :: Context -> ((Term, Int), (Term, Int)) -> SExpr ()
 precForm = quaternary "prec"
 
--- Creates the atomic formula used to describe a leads to ordering relation
-leadsToForm :: Algebra t p g s e c => c -> ((t, Int), (t, Int)) -> SExpr ()
+leadsToForm :: Context -> ((Term, Int), (Term, Int)) -> SExpr ()
 leadsToForm = quaternary "leads-to"
 
-uniqAtForm :: Algebra t p g s e c => c -> (t, (t, Int)) -> SExpr ()
+uniqAtForm :: Context -> (Term, (Term, Int)) -> SExpr ()
 uniqAtForm = ternary "uniq-at"
 
-factForm :: Algebra t p g s e c => c -> (String, [t]) -> SExpr ()
+factForm :: Context -> (String, [Term]) -> SExpr ()
 factForm c (name, ft) =
   L () (S () "fact" : S () name : map (displayTerm c) ft)
 
+-- Returns the uniqs that do not originate in k.
+noOrigUniqs :: Preskel -> [Term]
+noOrigUniqs k =
+  [ t | t <- uniqs k, all (f t) (origs k) ]
+  where
+    f t (t', _) = t /= t'
+
+-- Returns the uniqgens that do not get generated in k.
+noGenUniqs :: Preskel -> [Term]
+noGenUniqs k =
+  [ t | t <- uniqgens k, all (f t) (genNodes k) ]
+  where
+    f t (t', _) = t /= t'
+
 -- Creates a formula associated with a shape.  It is a disjunction of
 -- existentially quantified formulas that describe the homomorphism
 -- and the shape as a skeleton.
-shape :: Algebra t p g s e c => c -> [SExpr ()] ->
-         (Homo t, Preskel t g c) -> SExpr ()
+shape :: Context -> [SExpr ()] -> (Hom, Preskel) -> SExpr ()
 shape c pov ((nh, ah), shape) =
   let (ctx, vars, conj) = skel c shape in
   let n = map (displayEq ctx) nh in
   let a = map (displayEq ctx) ah in -- List diff on S-Exprs
   quantify "exists" vars (conjoin (n ++ a ++ (conj L.\\ pov)))
 
-displayEq :: Algebra t p g s e c => c -> (t, t) -> SExpr ()
+displayEq :: Context -> (Term, Term) -> SExpr ()
 displayEq = binary "="
 
 -- Formula primitives
 
-unary :: Algebra t p g s e c => String -> c -> t -> SExpr ()
+unary :: String -> Context -> Term -> SExpr ()
 unary pred ctx t =
     L () [S () pred, displayTerm ctx t]
 
-binary :: Algebra t p g s e c => String -> c -> (t, t) -> SExpr ()
+binary :: String -> Context -> (Term, Term) -> SExpr ()
 binary pred ctx (t0, t1) =
     L () [S () pred, displayTerm ctx t0, displayTerm ctx t1]
 
-ternary :: Algebra t p g s e c => String -> c ->
-           (t, (t, Int)) -> SExpr ()
+ternary :: String -> Context -> (Term, (Term, Int)) -> SExpr ()
 ternary pred ctx (t0, (t1, i1)) =
     L () [S () pred, displayTerm ctx t0, displayTerm ctx t1, N () i1]
 
-quaternary :: Algebra t p g s e c => String -> c ->
-              ((t, Int), (t, Int)) -> SExpr ()
+quaternary :: String -> Context -> ((Term, Int), (Term, Int)) -> SExpr ()
 quaternary pred ctx ((t0, i0), (t1, i1)) =
     L () [S () pred, displayTerm ctx t0, N () i0, displayTerm ctx t1, N () i1]
 
diff --git a/src/CPSA/Signature.hs b/src/CPSA/Signature.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Signature.hs
@@ -0,0 +1,186 @@
+-- Signatures for algebras
+
+-- Copyright (c) 2009 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module CPSA.Signature (Sig (..), Operator (..),
+                       defaultSig, loadSig, findOper) where
+
+import Control.Monad (foldM)
+import CPSA.Lib.SExpr (SExpr(..), Pos, annotation)
+import Data.List (nub)
+
+-- The data structure used to represent a signature for an algebra
+
+data Sig = Sig
+  { atoms :: [String],          -- Sorts that are not "chan" or "locn"
+    akeys :: [String],          -- Asymmetric key sorts
+    opers :: [Operator] }       -- Operators
+  deriving Show
+
+data Operator
+  = Enc String                  -- An "enc" like operator
+    -- An "enc" like operator for use with symmetric keys
+  | Senc String
+    -- An "enc" like operator for use with asymmetric keys`
+  | Aenc String
+    -- An "enc" like operator for use with inverse asymmetric keys
+  | Sign String
+  | Hash String                 -- A "hash" like operator
+  | Tupl String Int             -- A "cat" like operator
+  deriving Show
+
+findOper :: String -> [Operator] -> Maybe Operator
+findOper _ [] = Nothing
+findOper sym (op@(Enc name) : _) | sym == name = Just op
+findOper sym (op@(Senc name) : _) | sym == name = Just op
+findOper sym (op@(Aenc name) : _) | sym == name = Just op
+findOper sym (op@(Sign name) : _) | sym == name = Just op
+findOper sym (op@(Hash name) : _) | sym == name = Just op
+findOper sym (op@(Tupl name _) : _) | sym == name = Just op
+findOper sym (op@(Enc name) : _) | sym == name = Just op
+findOper sym (op@(Enc name) : _) | sym == name = Just op
+findOper sym (_ : opers) = findOper sym opers
+
+-- The default signature does not mention "cat" because it is handled
+-- specially.  The same is true for "mesg".
+defaultSig :: Sig
+defaultSig = Sig {
+  atoms = ["text", "data", "skey", "akey"],
+  akeys = ["akey"],
+  opers = [Enc("enc"), Hash("hash")]
+  }
+
+-- Ensure every akey is in atoms.
+isValidAkeys :: Sig -> Bool
+isValidAkeys sig =
+  all (\s -> elem s (atoms sig)) (akeys sig)
+
+badAtoms :: [String]
+badAtoms = ["mesg", "name", "chan", "locn", "indx", "pval", "strd"]
+
+badAtom :: MonadFail m => Pos -> String -> m ()
+badAtom pos sym
+  | elem sym badAtoms =
+      fail (shows pos ("Bad atom " ++ sym ++ " in language"))
+badAtom _ _ = return ()
+
+operSym :: Operator -> String
+operSym (Enc sym) = sym
+operSym (Senc sym) = sym
+operSym (Aenc sym) = sym
+operSym (Sign sym) = sym
+operSym (Hash sym) = sym
+operSym (Tupl sym _) = sym
+
+badOpers :: [String]
+badOpers = ["pubk", "privk", "invk", "ltk", "cat"]
+
+badOper :: MonadFail m => Pos -> Operator -> m ()
+badOper pos (Enc sym)
+  | elem sym badOpers =
+      fail (shows pos ("Bad enc operator " ++ sym ++ " in language"))
+badOper pos (Senc sym)
+  | elem sym badOpers =
+      fail (shows pos ("Bad senc operator " ++ sym ++ " in language"))
+badOper pos (Aenc sym)
+  | elem sym badOpers =
+      fail (shows pos ("Bad aenc operator " ++ sym ++ " in language"))
+badOper pos (Sign sym)
+  | elem sym badOpers =
+      fail (shows pos ("Bad sign operator " ++ sym ++ " in language"))
+badOper pos (Hash sym)
+  | elem sym badOpers =
+      fail (shows pos ("Bad hash operator " ++ sym ++ " in language"))
+badOper pos (Tupl sym _)
+  | elem sym badOpers =
+      fail (shows pos ("Bad tuple operator " ++ sym ++ " in language"))
+badOper pos (Tupl _ n)
+  | 1 > n =
+      fail (shows pos ("Bad tuple length " ++ show n ++ " in language"))
+badOper _ _ = return ()
+
+-- Load a signature
+
+-- LANG ::= (lang DECL*)
+--
+-- DECL ::= (SYMBOL+ TYPE)
+--
+-- TYPE ::= atom | akey | hash | (tuple N)
+--       | enc | senc | aenc | sign.
+
+loadSig :: MonadFail m => Pos -> [SExpr Pos] -> m Sig
+loadSig pos decls =
+  do
+    let init = (atoms defaultSig, akeys defaultSig, opers defaultSig)
+    (ats, aks, ops) <- foldM loadDecl init decls
+    let sig = Sig {
+          atoms = nub (aks ++ ats),
+          akeys = nub aks,
+          opers = ops }
+    mapM_ (badAtom pos) (atoms sig)
+    mapM_ (badOper pos) (opers sig)
+    case isValidAkeys sig of
+      True -> return ()
+      False ->
+        fail (shows pos "Invalid language because an akey is not in atoms")
+    let syms = map operSym (opers sig)
+    case length syms == length (nub syms) of
+      True -> return sig
+      False -> fail (shows pos "Duplicate operator symbol in language")
+
+loadDecl :: MonadFail m => ([String], [String], [Operator]) ->
+            SExpr Pos -> m ([String], [String], [Operator])
+loadDecl (ats, aks, ops) (L pos xs)
+  | length xs < 2 = fail (shows pos "Malformed declaration in language")
+  | otherwise =
+    do
+      typ <- loadType (last xs)
+      syms <- mapM loadSym (init xs)
+      case typ of
+        TAtom -> return (syms ++ ats, aks, ops)
+        TAkey -> return (ats, syms ++ aks, ops)
+        TEnc -> return (ats, aks, map Enc syms ++ ops)
+        TSenc -> return (ats, aks, map Senc syms ++ ops)
+        TAenc -> return (ats, aks, map Aenc syms ++ ops)
+        TSign -> return (ats, aks, map Sign syms ++ ops)
+        THash -> return (ats, aks, map Hash syms ++ ops)
+        TTupl n -> return (ats, aks, map (\s -> Tupl s n) syms ++ ops)
+loadDecl _ x =
+  fail (shows (annotation x) "Malformed declaration in language")
+
+data Type
+  = TAtom
+  | TAkey
+  | TEnc
+  | TSenc
+  | TAenc
+  | TSign
+  | THash
+  | TTupl Int
+
+loadType :: MonadFail m => SExpr Pos -> m Type
+loadType (S pos sym) =
+  case sym of
+    "atom" -> return TAtom
+    "akey" -> return TAkey
+    "enc" -> return TEnc
+    "senc" -> return TSenc
+    "aenc" -> return TAenc
+    "sign" -> return TSign
+    "hash" -> return THash
+    _ -> fail (shows pos "Bad type in language")
+loadType (L _ [S _ "tuple", N _ n]) =
+  return $  TTupl n
+loadType (L _ [S _ "tupl", N _ n]) = -- Legacy support
+  return $  TTupl n
+loadType x =
+  fail (shows (annotation x) "Bad type in language")
+
+loadSym :: MonadFail m => SExpr Pos -> m String
+loadSym (S _ sym) = return sym
+loadSym x =
+  fail (shows (annotation x) "Bad symbol in language")
diff --git a/src/CPSA/Strand.hs b/src/CPSA/Strand.hs
new file mode 100644
--- /dev/null
+++ b/src/CPSA/Strand.hs
@@ -0,0 +1,4675 @@
+-- Instance and preskeleton data structures and support functions.
+
+-- Copyright (c) 2009 The MITRE Corporation
+--
+-- This program is free software: you can redistribute it and/or
+-- modify it under the terms of the BSD License as published by the
+-- University of California.
+
+module CPSA.Strand (Instance, mkInstance, bldInstance, mkListener,
+    role, env, trace, height, listenerTerm, Sid, Node, mkPreskel,
+    firstSkeleton, Pair, Preskel, gen, protocol, kgoals, insts, orderings,
+    pov, knon, kpnon, kunique, kuniqgen, kabsent, kprecur, kgenSt,
+    kconf, kauth, kfacts, korig, kugen, kpriority, kcomment, nstrands,
+    kvars, kfvars, strandids, kterms, kchans, uniqOrig, uniqGen,
+    preskelWellFormed, confCm, authCm,
+    verbosePreskelWellFormed, Strand, inst, sid, nodes,
+    Vertex, strand, pos, preds, event, graphNode, strands, vertex,
+    Gist, gist, isomorphic, factorIsomorphicPreskels, contract, augment,
+    inheritRnon, inheritRpnon, inheritRunique, inheritRuniqgen, inheritRabsent,
+    inheritRconf, inheritRauth, addListener, addBaseListener, addAbsence,
+    Cause (..), Direction (..), Method (..), Operation (..),
+    operation, krules, pprob, prob, homomorphism, toSkeleton, generalize,
+    collapse, sat, unSatReport, FTerm (..), Fact (..), simplify, rewrite,
+    localSignal, rewriteUnaryOneOnce, nodePairsOfSkel, applyLeadsTo) where
+
+import Control.Monad
+import Control.Parallel
+import qualified Data.List as L
+import qualified Data.Set as S
+import Data.Set (Set)
+import qualified Data.Maybe as M
+import CPSA.Lib.Utilities
+import CPSA.Lib.SExpr
+import CPSA.Algebra
+import CPSA.Channel
+import CPSA.Protocol
+
+{--
+
+import System.IO.Unsafe
+import Control.Exception (try)
+import System.IO.Error (ioeGetErrorString)
+
+zP :: Show a => a -> b -> b
+zP x y = unsafePerformIO (print x >> return y)
+
+zz :: Show a => a -> a
+zz x = zP x x
+
+zShow :: Show a => a -> a
+zShow x = zP (show x) x
+
+zb :: Show a => a -> Bool -> Bool
+zb a False = zP a False
+zb _ b = b
+
+zn :: Show a => a -> Maybe b -> Maybe b
+zn x Nothing = zP x Nothing
+zn _ y = y
+
+zf :: Show a => a -> Bool -> Bool
+zf x False = zP x False
+zf _ y = y
+
+zt :: Show a => a -> Bool -> Bool
+zt x True = zP x True
+zt _ y = y
+
+zl :: Show a => [a] -> [a]
+zl a = zP (length a) a
+
+zi :: Instance -> String
+zi inst =
+    show (map f e)
+    where
+      domain = rvars (role inst)
+      e = reify domain (env inst)
+      range = map snd e
+      f (x, t) = (displayTerm (context domain) x,
+                  displayTerm (context range) t)
+      context ts = addToContext emptyContext ts
+
+zv :: Preskel -> String
+zv k =
+  unsafePerformIO $ do
+    y <- try $ verbosePreskelWellFormed k
+    case y of
+      Right _ ->
+        return "preskel well formed"
+      Left err ->
+        return $ ioeGetErrorString err
+
+-- Also see showst
+--}
+
+-- Compile time switches for expermentation.
+
+-- Do not do multistrand thinning.
+useSingleStrandThinning :: Bool
+useSingleStrandThinning = False -- True
+
+-- Sanity check: ensure no role variable occurs in a skeleton.
+useCheckVars :: Bool
+useCheckVars = False -- True
+
+useThinningDuringCollapsing :: Bool
+useThinningDuringCollapsing = False -- True
+
+useThinningWhileSolving :: Bool
+useThinningWhileSolving = True -- False
+
+useNoOrigPreservation :: Bool
+useNoOrigPreservation = False -- True
+
+-- Use Pruning instead of thinning
+usePruning :: Bool
+usePruning = False -- True
+
+-- When using pruning use strong version
+useStrongPruning :: Bool
+useStrongPruning = True -- False
+
+-- Check terms in preskeletons, should be off by default
+useWellFormedTerms :: Bool
+useWellFormedTerms = False -- True
+
+-- Don't do variable separation if False
+useVariableSeparation :: Bool
+useVariableSeparation = True -- False
+
+-- Instances and Strand Identifiers
+
+-- An Instance is an instance of a role, in the sense that each
+-- variable in the role's trace has been replaced by a term.  The
+-- trace of the instance might be shorter that the role's trace, but
+-- only truncating nodes from the end of the trace.
+
+-- A preskeleton stores its strands as a ordered sequence of
+-- instances.  A strand is the position of an instance in the
+-- sequence.  Duplicates are allowed in the sequence, as two strands
+-- can be instantiated from the same role in the same way.
+
+type Sid = Int                  -- Strand Identifier
+
+data Instance = Instance
+    { role :: Role,             -- Role from which this was
+                                -- instantiated
+
+      env :: !Env,              -- The environment used to build this
+                                -- instance's trace from its role's
+                                -- trace
+
+      trace :: !Trace,          -- Instance's trace
+
+      height :: !Int }          -- Height of the instance
+    deriving Show
+
+-- Create a fresh instance of the given height.  The environment
+-- specifies how to map some variables in the role's trace.  Unmapped
+-- variables are instantiated with fresh variables to avoid naming
+-- conflicts.
+mkInstance :: Gen -> Role -> Env -> Int -> (Gen, Instance)
+mkInstance gen role env height =
+    let trace = rtrace role
+        rheight = length trace in
+    if height < 1 || height > rheight then
+        error "Strand.mkInstance: Bad strand height"
+    else
+        let (gen', env') = grow (rvars role) gen env
+            trace' = map (evtMap $ instantiate env') (take height trace) in
+        -- Ensure every variable in the range of the environment
+        -- occurs in the trace.
+        case bldInstance role trace' gen' of
+          (gen'', inst) : _ -> (gen'', inst)
+          [] -> error "Strand.mkInstance: Not an instance"
+
+-- For each term that matches itself in the environment, extend the
+-- mapping so that the term maps to one with a fresh set of variables.
+-- It is an error if a variable in one of the terms is explicitly
+-- mapped to itself in the initial environment.
+grow :: [Term] -> Gen -> Env -> (Gen, Env)
+grow [] gen env = (gen, env)
+grow (t : ts) gen env =
+    case match t t (gen, env) of
+      [] -> grow ts gen env     -- Term already mapped
+      _ ->                      -- Otherwise make a fresh mapping
+          let (gen', t') = clone gen t in
+          case match t t' (gen', env) of
+            (gen'', env') : _ -> grow ts gen'' env'
+            [] -> error "Strand.grow: Internal error"
+
+-- Build an instance from a role and a trace.  Returns the empty list
+-- if the trace is not an instance of the given role.
+bldInstance :: Role -> Trace -> Gen -> [(Gen, Instance)]
+bldInstance _ [] _ = error "Strand.bldInstance: Bad trace"
+bldInstance role trace gen =
+    loop (rtrace role) trace (gen, emptyEnv) -- Loop builds env
+    where
+      loop _ [] (gen, env) =        -- Trace can be shorter than role's trace
+          [(gen, makeInstance role env trace)]
+      loop (In t : c) (In t' : c') ge =
+          do
+            env <- cmMatch t t' ge
+            loop c c' env
+      loop (Out t : c) (Out t' : c') ge =
+          do
+            env <- cmMatch t t' ge
+            loop c c' env
+      loop _ _ _ = []
+
+makeInstance :: Role -> Env -> Trace -> Instance
+makeInstance role env trace =
+    Instance { role = role,
+               env = env,
+               trace = trace,
+               height = length trace }
+
+mkListener :: Prot -> Gen -> Term -> (Gen, Instance)
+mkListener p gen term =
+    case bldInstance (listenerRole p) [In $ Plain term, Out $ Plain term] gen of
+      [x] -> x
+      _ -> error "Strand.mkListener: Cannot build an instance of a listener"
+
+-- Add to set s the variables that are in the range of instance i
+addIvars :: Set Term -> Instance -> Set Term
+addIvars s i =
+    foldl g s (reify (rvars (role i)) (env i))
+    where
+      g s (_, t) = foldVars (flip S.insert) s t
+
+listenerTerm :: Instance -> Maybe Term
+listenerTerm inst =
+    case rname (role inst) of
+      "" ->
+        do
+          cm <- inbnd (trace inst !! 0) -- Get first term in trace
+          case cm of
+            Plain t -> Just t
+            ChMsg _ _ -> Nothing
+      _ -> Nothing              -- Not a listener strand
+
+-- Nodes, Pairs, and Graphs
+
+-- A node is composed of two integers, a strand identifier and a
+-- position.  The position identifies an event in the strand's trace.
+-- The second integer must be non-negative and less than the strand's
+-- height
+
+type Node = (Sid, Int)
+
+-- A pair gives an ordering of two nodes, meaning the first node is
+-- before the second one.
+
+type Pair = (Node, Node)
+
+-- Graphs of preskeletons
+
+-- A strand is what is referred to by a strand ID.
+
+data GraphStrand e i                 -- e for event, i for instance
+    = GraphStrand { inst :: i,
+                    nodes :: [GraphNode e i],
+                    sid :: Sid }
+
+-- The Strand ID determines equality and orderings
+instance Eq (GraphStrand e i) where
+    s0 == s1 = sid s0 == sid s1
+
+instance Ord (GraphStrand e i) where
+    compare s0 s1 = compare (sid s0) (sid s1)
+
+instance Show (GraphStrand e i) where
+    showsPrec _ s = shows (sid s)
+
+-- A vertex is what is referred to by a node.
+
+data GraphNode e i                 -- e for event, i for instance
+    = GraphNode { event :: e,
+                  preds :: [GraphNode e i], -- Immediate preds including
+                  strand :: GraphStrand e i,  -- strand succession edges
+                  pos :: Int }  -- The position of the node in the strand
+
+-- The node determines equality and orderings
+instance Eq (GraphNode e i) where
+    n0 == n1 = (strand n0, pos n0) == (strand n1, pos n1)
+
+instance Ord (GraphNode e i) where
+    compare n0 n1 = compare (strand n0, pos n0) (strand n1, pos n1)
+
+instance Show (GraphNode e i) where
+    showsPrec _ n = let (s, i') = graphNode n in
+                    showChar '(' . shows s . showString ", " .
+                    shows i' . showChar ')'
+
+-- The node of a vertex
+graphNode :: GraphNode e i -> Node
+graphNode n = (sid (strand n), pos n)
+
+type GraphEdge e i = (GraphNode e i, GraphNode e i)
+
+-- The pair of an edge
+graphPair :: GraphEdge e i -> Pair
+graphPair (n0, n1) = (graphNode n0, graphNode n1)
+
+graphEdges :: [GraphStrand e i] -> [GraphEdge e i]
+graphEdges strands =
+    [ (dst, src) | s <- strands, src <- nodes s, dst <- preds src ]
+
+data Graph e i
+    = Graph { gstrands :: [GraphStrand e i],
+              gedges :: [GraphEdge e i] }
+
+-- The graph associated with a preskeleton
+graph :: (i -> [d]) -> (i -> Int) -> [i] -> [Pair] -> Graph d i
+graph trace height insts pairs =
+    Graph { gstrands = strands,
+            gedges = map getEdge pairs }
+    where
+      strands = [ GraphStrand { inst = inst,
+                                nodes = nodes !! sid,
+                                sid = sid } |
+                  (sid, inst) <- zip [0..] insts ]
+      nodes = [ [ GraphNode { event = trace (inst strand) !! pos,
+                              preds = preds (sid, pos),
+                              strand = strand,
+                              pos = pos } |
+                  pos <- nats (height (inst strand)) ] |
+                (sid, strand) <- zip [0..] strands ]
+      preds n = map getNode (entry n)
+      getNode (s, i) = nodes !! s !! i
+      getEdge (n0, n1) = (getNode n0, getNode n1)
+      entry n = enrich n [ n0 | (n0, n1) <- pairs, n1 == n ]
+      -- add strand succession edges
+      enrich (s, i) ns
+          | i > 0 = (s, i - 1) : ns
+          | otherwise = ns
+
+-- Does start node precede end node?
+graphPrecedes :: GraphNode e i -> GraphNode e i -> Bool
+graphPrecedes start end =
+    let predecessors = preds end in
+    any (== start) predecessors || any (graphPrecedes start) predecessors
+
+-- Compute the transitive reduction
+graphReduce :: [GraphEdge e i] -> [GraphEdge e i]
+graphReduce orderings =
+    filter essential orderings
+    where
+      essential (dst, src) =
+          loop dst (L.delete dst (preds src)) [src]
+      loop _ [] _ = True        -- No other path found
+      loop dst (n : ns) seen
+          | n == dst = False    -- There is another path
+          | elem n seen = loop dst ns seen
+          | otherwise = loop dst (preds n ++ ns) (n : seen)
+
+-- Compute the transitive closure, but omit same strand pairs.
+-- This routine returns pairs that are not well ordered.
+-- Deal with it!
+graphClose :: [GraphEdge e i] -> [GraphEdge e i]
+graphClose orderings =
+    filter (not . sameStrands) (loop orderings False orderings)
+    where
+      loop orderings False [] = orderings
+      loop orderings True [] =
+          loop orderings False orderings -- restart loop
+      loop orderings repeat ((n0, n1) : pairs) =
+          inner orderings repeat pairs [(n, n1) | n <- preds n0]
+      inner orderings repeat pairs [] =
+          loop orderings repeat pairs
+      inner orderings repeat pairs (p : rest)
+          | elem p orderings = inner orderings repeat pairs rest
+          | otherwise = inner (p : orderings) True pairs rest
+      sameStrands (n0, n1) = strand n0 == strand n1
+
+-- Compute the transitive closure including same strand
+-- pairs.
+-- This routine returns pairs that are not well ordered.
+-- Deal with it!
+graphCloseAll :: [GraphEdge e i] -> [GraphEdge e i]
+graphCloseAll orderings =
+    graphAllCloseLoop orderings False orderings
+
+graphAllCloseLoop :: [GraphEdge e i] -> Bool -> [GraphEdge e i] -> [GraphEdge e i]
+graphAllCloseLoop orderings False [] = orderings
+graphAllCloseLoop orderings True [] = graphAllCloseLoop orderings False orderings -- restart loop
+graphAllCloseLoop orderings repeat ((n0, n1) : pairs) =
+    inner orderings repeat pairs [(n, n1) | n <- preds n0]
+    where
+      inner orderings repeat pairs [] =
+          graphAllCloseLoop orderings repeat pairs
+      inner orderings repeat pairs (p : rest)
+          | elem p orderings = inner orderings repeat pairs rest
+          | otherwise = inner (p : orderings) True pairs rest
+
+-- Shared part of preskeletons
+
+data Shared = Shared
+    { prot  :: Prot,
+      goals :: [Goal] }
+
+instance Show Shared where
+    showsPrec _ s = shows (prot s)
+
+protocol :: Preskel -> Prot
+protocol k = prot $ shared k
+
+kgoals :: Preskel -> [Goal]
+kgoals k = goals $ shared k
+
+-- Preskeletons
+
+data Preskel = Preskel
+    { gen :: !Gen,
+      shared :: Shared,
+      insts :: ![Instance],
+      strands :: ![Strand],
+      orderings :: ![Pair],
+      kgpOrds :: [Pair],
+      kgpOrdsAll :: [Pair],
+      edges :: ![Edge],
+      knon :: ![Term],            -- A list of atoms
+      kpnon :: ![Term],           -- A list of atoms
+      kunique :: ![Term],         -- A list of atoms
+      kuniqgen :: ![Term],        -- A list of atoms
+      kabsent :: ![(Term, Term)], -- A list of pairs of terms
+      kprecur :: ![Node],         -- A list of nodes
+      kgenSt :: ![Term],          -- A list of terms, known to be non-initial
+      kconf :: ![Term],           -- A list of channels
+      kauth :: ![Term],           -- A list of channels
+      kfacts :: ![Fact],          -- A list of facts
+      kfvars :: [Term],           -- Fact vars not in instances
+      kpriority :: [(Node, Int)], -- Override node priority
+      kcomment :: [SExpr ()],   -- Comments from the input
+      korig :: ![(Term, [Node])], -- This is an association list with a
+                                -- pair for each element of kunique.
+                                -- The value associated with a term
+                                -- is a list of the nodes at which it
+                                -- originates--the term's provenance.
+      kugen :: ![(Term, [Node])], -- Like korig but for kuniqgen.
+      pov :: Maybe Preskel,     -- Point of view, the
+                                -- original problem statement.
+      strandids :: ![Sid],
+      tc :: [Pair],             -- Transitive closure of orderings
+                                -- Used only during generalization
+      kgist :: Gist,            -- Gist for iso checking
+      operation :: Operation,
+      krules :: [String],    -- Names of rules applied
+      pprob :: [Sid],        -- strand map from preskel to first skeleton
+      prob :: [Sid] }        -- A map from the strands in the original
+    deriving Show               -- problem statement, the pov, into
+                                -- these strands.
+
+-- The pov skeleton is the only skeleton that should have Nothing in
+-- its pov field.
+
+type Strand = GraphStrand Event Instance
+
+type Vertex = GraphNode Event Instance
+
+type Edge = GraphEdge Event Instance
+
+-- Data structure for tracking the causes for the creation of
+-- preskeletons.
+
+data Cause
+    = Cause Direction Node CMT (Set CMT)
+    deriving Show
+
+data Direction = Encryption | Nonce | Channel deriving Show
+
+data Method
+    = Deleted Node
+    | Weakened Pair
+    | Separated Term
+    | Forgot Term
+    deriving Show
+
+-- The operation used to generate the preskeleteton is either new via
+-- the loader, a contraction, a regular augmentation, a listener
+-- augmentation, or a mininization.  The augmentation includes a role
+-- name and instance height.
+data Operation
+    = New
+    | Contracted Subst Cause
+    | Displaced Int Int String Int Cause
+    | AddedStrand String Int Cause
+    | AddedListener Term Cause
+    | AddedAbsence Term Term Cause
+    | Generalized Method
+    | Collapsed Int Int
+      deriving Show
+
+-- Create a preskeleton.  The point of view field is not filled in.
+-- This version is exported for use by the loader.  This preskeleton
+-- must be consumed by firstSkeleton.
+mkPreskel :: Gen -> Prot -> [Goal] -> [Instance] -> [Pair] ->
+             [Term] -> [Term] -> [Term] -> [Term] ->
+             [(Term, Term)] -> [Node] -> [Term] -> [Term] ->
+             [Term] -> [Fact] -> [(Node, Int)] -> [SExpr ()] -> Preskel
+mkPreskel gen protocol gs insts orderings non pnon
+          unique uniqgen absent precur genStVs
+          conf auth facts prio comment =
+    k { kcomment = comment }
+    where
+      k = newPreskel gen shared insts orderings non pnon
+          unique uniqgen absent precur genStVs
+          conf auth facts prio New [] prob prob Nothing
+      shared = Shared { prot = protocol, goals = gs }
+      prob = strandids k        -- Fixed point on k is okay.
+
+-- Strand functions
+
+strandInst :: Preskel -> Sid -> Instance
+strandInst k strand =
+    let strands = insts k in
+    if strand < L.length strands then (strands !! strand)
+    else error ("strandInst:  index " ++ (show strand) ++ " is too big for " ++ (show (insts k)))
+
+nstrands :: Preskel -> Int
+nstrands k = length (strandids k)
+
+-- Convert the preskeleton made by the loader into the first skeleton
+-- used in the search.
+firstSkeleton :: Preskel -> [Preskel]
+firstSkeleton k =
+    do
+      k <- wellFormedPreskel k
+      k' <- toSkeleton False k   -- only k' should have pov = Nothing
+      return $ k' { pprob = prob k', prob = strandids k', pov = Just k' }
+
+-- Create a preskeleton.  The node ordering relation is put into the
+-- preds field of each instance in this function.  The maybe uniquely
+-- originating term data is also filled in.  This version is used
+-- within this module.
+newPreskel :: Gen -> Shared ->
+             [Instance] -> [Pair] -> [Term] -> [Term] -> [Term] ->
+             [Term] -> [(Term, Term)] -> [Node] -> [Term] -> [Term] ->
+             [Term] -> [Fact] -> [(Node, Int)] -> Operation ->
+             [String] -> [Sid] -> [Sid] -> Maybe Preskel -> Preskel
+newPreskel gen shared insts orderings non pnon unique
+           uniqgen absent precur genSt conf auth facts
+           prio oper rules pprob prob pov =
+    let orderings' = L.nub orderings
+        unique' = L.nub unique
+        uniqgen' = L.nub uniqgen
+        facts' = L.nub facts
+        g = graph trace height insts orderings'
+        strands = gstrands g
+        edges = gedges g
+        gpOrds = map graphPair $ graphClose $ graphEdges $ strands
+        gpOrdsAll = map graphPair $ graphCloseAll $ graphEdges $ strands
+        orig = map (originationNodes strands) unique'
+        ugen = map (generationNodes strands) uniqgen'
+        tc = filter pairWellOrdered (graphClose $ graphEdges strands)
+        gg = mkGist k
+        k = Preskel { gen = gen,
+                      shared = shared,
+                      insts = insts,
+                      strands = strands,
+                      orderings = orderings',
+                      kgpOrds = gpOrds,
+                      kgpOrdsAll = gpOrdsAll,
+                      edges = edges,
+                      knon = L.nub non,
+                      kpnon = L.nub pnon,
+                      kunique = unique',
+                      kuniqgen = uniqgen',
+                      kabsent = L.nub absent,
+                      kprecur = L.nub precur,
+                      kgenSt = L.nub genSt,
+                      kconf = L.nub conf,
+                      kauth = L.nub auth,
+                      kfacts = facts',
+                      kfvars = factVars insts facts',
+                      kpriority = prio,
+                      kcomment = [],
+                      korig = orig,
+                      kugen = ugen,
+                      tc = map graphPair tc,
+                      kgist = gg,
+                      strandids = nats (length insts),
+                      operation = oper,
+                      krules = rules,
+                      pprob = pprob,
+                      prob = prob,
+                      pov = pov } in
+        if useCheckVars then
+            checkVars k
+        else k
+{-
+          if chkFacts k then k
+          else k
+-}
+
+{--
+  checkPOV :: Preskel -> Preskel
+checkPOV k =
+    case pov k of
+      Nothing -> k
+      Just k0 ->
+          if L.length (insts k0) == L.length (prob k)
+          then k
+          else (zP ("skel's POV has " ++ (show (L.length (insts k0)))
+                   ++ " insts, but its prob has length "
+                   ++ (show (L.length (prob k))))
+                k)
+--}
+
+-- Suppose that a Preskel k has been created by rebinding some fields
+-- in an earlier skeleton.  The fields that newPreskel would compute
+-- so that they have an invariant relation to the given fields may no
+-- longer satisfy that relation.
+
+-- In this case, we call renewPreskel which will call newPreskel on
+-- the freely varying fields to recompute the dependent fields.
+
+renewPreskel :: Preskel -> Preskel
+renewPreskel k =
+    let k' = newPreskel
+             (gen k)
+             (shared k)
+             (insts k)
+             (orderings k)
+             (knon k)
+             (kpnon k)
+             (kunique k)
+             (kuniqgen k)
+             (kabsent k)
+             (kprecur k)
+             (kgenSt k)
+             (kconf k)
+             (kauth k)
+             (kfacts k)
+             (kpriority k)
+             (operation k)
+             (krules k)
+             (pprob k)
+             (prob k)
+             (pov k) in
+    k' { kcomment = kcomment k}
+
+checkVars :: Preskel -> Preskel
+checkVars k =
+    foldl f k rolevars
+    where
+      skelvars = S.fromList $ kvars k
+      rolevars = concatMap (rvars . role) (insts k)
+      f k v
+        | S.member v skelvars =
+            error ("Strand.checkVars: role var in skel " ++ show k)
+        | otherwise = k
+
+vertex  :: Preskel -> Node -> Vertex
+vertex k (s, i) =
+    nodes (strands k !! s) !! i
+
+originationNodes :: [Strand] -> Term -> (Term, [Node])
+originationNodes strands u =
+    (u, [ (sid strand, p) |
+          strand <- reverse strands,
+          p <- M.maybeToList $ originationPos u (trace (inst strand)) ])
+
+generationNodes :: [Strand] -> Term -> (Term, [Node])
+generationNodes strands u =
+    (u, [ (sid strand, p) |
+          strand <- reverse strands,
+          p <- M.maybeToList $ generationPos u (trace (inst strand)) ])
+
+uniqOrig :: Preskel -> [Term]
+uniqOrig k =
+    do
+      (t, [_]) <- reverse (korig k)
+      return t
+
+uniqGen :: Preskel -> [Term]
+uniqGen k =
+    do
+      (t, [_]) <- reverse (kugen k)
+      return t
+
+-- A preskeleton is well formed if the ordering relation is acyclic,
+-- each atom declared to be uniquely-originating is carried in some
+-- preskeleton term, and every variable that occurs in each base term
+-- declared to be non-originating or pen-non-originating occurs in
+-- some preskeleton term, and the atom must never be carried by any
+-- term, and every uniquely originating role term mapped by an
+-- instance is mapped to a term that originates on the instance's
+-- strand.
+
+preskelWellFormed :: Preskel -> Bool
+preskelWellFormed k =
+    varSubset (knon k) terms &&
+    varSubset (kpnon k) terms &&
+    all nonCheck (knon k) &&
+    all uniqueCheck (kunique k) &&
+    all uniqgenCheck (kuniqgen k) &&
+    all absentCheck (kabsent k) &&
+    all genStCheck (kgenSt k) &&
+    all chanCheck (kconf k) &&
+    all chanCheck (kauth k) &&
+    wellOrdered k && acyclicOrder k &&
+    roleOrigCheck k &&
+    roleGenCheck k &&
+    (povCheck k || --   (zP (show (povCheck k) ++ " pov length " ++
+                   --     (show (case pov k of
+                   --             Nothing -> 0
+                   --             Just k0 -> L.length (insts k0))))
+                    (povCheck k)) -- )
+    where
+      terms = kterms k
+      vs = kvars k
+      f b t = b && t `elem` vs
+--      f False _ = False
+--      f True t = t `elem` vs
+      nonCheck t = all (not . carriedBy t) terms
+      uniqueCheck t = any (carriedBy t) terms
+      uniqgenCheck t = any (constituent t) terms
+      absentCheck (x, y) = varSubset [x, y] vs
+      genStCheck t = foldVars f True t
+      chanCheck c = elem c vs
+      povCheck k = case pov k of
+                     Nothing -> True
+                     Just k0 -> not (null (homomorphism k0 k (prob k)))
+
+-- Do notation friendly preskeleton well formed check.
+wellFormedPreskel :: MonadFail m => Preskel -> m Preskel
+wellFormedPreskel k
+    | preskelWellFormed k && traceWellFormed k = return k
+    | otherwise = fail "preskeleton not well formed"
+
+traceWellFormed :: Preskel -> Bool
+traceWellFormed k =
+  not useWellFormedTerms || termsWellFormed (kterms k)
+
+-- A version of preskelWellFormed that explains why a preskeleton is
+-- not well formed.
+verbosePreskelWellFormed :: MonadFail m => Preskel -> m ()
+verbosePreskelWellFormed k =
+    do
+      failwith "a variable in non-orig is not in some trace"
+                   $ varSubset (knon k) terms
+      failwith "a variable in pen-non-orig is not in some trace"
+                   $ varSubset (kpnon k) terms
+      mapM_ nonCheck $ knon k
+      mapM_ uniqueCheck $ kunique k
+      mapM_ uniqgenCheck $ kuniqgen k
+      mapM_ absentCheck $ kabsent k
+      mapM_ genStCheck $ kgenSt k
+      mapM_ confCheck $ kconf k
+      mapM_ authCheck $ kauth k
+      failwith "ordered pairs not well formed" $ wellOrdered k
+      failwith "cycle found in ordered pairs" $ acyclicOrder k
+      failwith "an inherited unique doesn't originate in its strand"
+                   $ roleOrigCheck k
+      failwith "an inherited unique gen doesn't generate in its strand"
+                   $ roleGenCheck k
+    where
+      terms = kterms k
+      nonCheck t =
+          failwith (showString "non-orig " $ showst t " carried")
+                       $ all (not . carriedBy t) terms
+      uniqueCheck t =
+          failwith (showString "uniq-orig " $ showst t " not carried")
+                       $ any (carriedBy t) terms
+      uniqgenCheck t =
+          failwith (showString "uniq-gen " $ showst t " does not occur")
+                       $ any (constituent t) terms
+      absentCheck (x, y) =
+          do
+            failwith (showString "absent " $ showst x " does not occur")
+                       $ elem x $ kvars k
+            failwith (showString "absent " $ showst y " does not occur")
+                       $ varSubset [y] (kvars k)
+      genStCheck t =
+          failwith (showString "gen-st " $ showst t " not carried")
+                       $ any (carriedBy t) terms
+      confCheck c =
+        failwith (showString "confidential channel "
+                  $ showst c " not in some strand")
+                 $ elem c (kvars k)
+      authCheck c =
+        failwith (showString "authenticated channel "
+                  $ showst c " not in some strand")
+                 $ elem c (kvars k)
+
+failwith :: MonadFail m => String -> Bool -> m ()
+failwith msg test =
+    case test of
+      True -> return ()
+      False -> fail msg
+
+showst :: Term -> ShowS
+showst t =
+    shows $ displayTerm (addToContext emptyContext [t]) t
+
+-- Do the nodes in the orderings have the right direction?
+wellOrdered :: Preskel -> Bool
+wellOrdered k =
+    all pairWellOrdered (edges k)
+
+pairWellOrdered :: Edge -> Bool
+pairWellOrdered (n0, n1) =
+    case (event n0, event n1) of
+      (Out _, In _) -> True
+      _ -> False
+
+data Dir = Recv | Send
+
+dirChMsgOfNode :: Node -> Preskel -> Maybe (Dir, ChMsg )
+dirChMsgOfNode (i, j) k =
+    do
+      s <- maybeNth (strands k) i
+      gn <- maybeNth (nodes s) j
+      return (case event gn of
+                In chMsg -> (Recv, chMsg)
+                Out chMsg -> (Send, chMsg))
+
+genNodes :: Preskel -> [Node]
+genNodes k =
+    let strs = strands k in
+    let strCnt = L.length strs in
+    [(i,j) | i <- [0..strCnt-1],
+                  j <- [0 .. (L.length (nodes (strs !! i)))-1] ]
+
+--   genSids :: Preskel -> [Sid]
+--   genSids k = [0 .. (L.length (strands k))-1]
+
+--   nodesOfSid :: Preskel -> Sid -> [Node]
+--   nodesOfSid k i =
+--       let strs = strands k in
+--       let strCnt = L.length strs in
+--       case i < strCnt of
+--         True -> [(i,j) | j <- [0 .. (L.length (nodes (strs !! i)))-1] ]
+--         False -> []
+
+-- The terms used in the strands in this preskeleton.
+-- Should this return a set, or a multiset?
+kterms :: Preskel -> [Term]
+kterms k = iterms (insts k)
+
+-- The terms used in a list of instances.
+iterms :: [Instance] -> [Term]
+iterms insts =
+  L.nub [evtTerm evt | i <- insts, evt <- trace i]
+
+-- The channels used in the strands in this preskeleton.
+kchans :: Preskel -> [Term]
+kchans k = ichans (insts k)
+
+-- The terms used in a list of instances.
+ichans :: [Instance] -> [Term]
+ichans insts =
+  L.nub $ M.catMaybes [evtChan evt | i <- insts, evt <- trace i]
+
+-- The node orderings form an acyclic order if there are no cycles.
+-- Use depth first search to detect cycles.  A graph with no node with
+-- an indegree of zero is cyclic and must not be checked with depth
+-- first search.
+acyclicOrder :: Preskel -> Bool
+acyclicOrder k =
+    all (not . backEdge numbering) edges
+    where
+      edges = graphEdges (strands k)
+      -- The starting set contains the last node in every strand
+      start = map (last . nodes) (strands k)
+      -- Remove nodes that have non-zero indegree
+      start' = foldl (flip L.delete) start (map fst edges)
+      numbering = dfs preds start'
+
+-- Variables in this preskeleton, excluding ones in roles, and ones
+-- that only occur in a cause.
+kvars :: Preskel -> [Term]
+kvars k =
+    instVars (insts k)
+
+-- Ensure each role unique origination assumption mapped by an
+-- instance originates in the instance's strand.
+roleOrigCheck :: Preskel -> Bool
+roleOrigCheck k =
+    all strandRoleOrig (strands k) -- Check each strand
+    where
+      strandRoleOrig strand =   -- Check each role unique used in strand
+          all (uniqRoleOrig strand) $ ruorig $ role $ inst strand
+      uniqRoleOrig strand (ru, pos)
+          | pos < height (inst strand) =
+              case lookup (instantiate (env $ inst strand) ru) (korig k) of
+                Nothing -> True     -- role term not mapped
+                Just ns -> any (\(s, i)-> sid strand == s && i == pos) ns
+          | otherwise = True
+
+-- Ensure each role unique generation assumption mapped by an
+-- instance generates in the instance's strand.
+roleGenCheck :: Preskel -> Bool
+roleGenCheck k =
+    all strandRoleGen (strands k) -- Check each strand
+    where
+      strandRoleGen strand =   -- Check each role ugen used in strand
+          all (uniqRoleGen strand) (filter nonNum (rugen $ role $ inst strand))
+      uniqRoleGen strand (ru, pos)
+          | pos < height (inst strand) =
+              case lookup (instantiate (env $ inst strand) ru) (kugen k) of
+                Nothing -> True     -- role term not mapped
+                Just ns -> any (\(s, i)-> sid strand == s && i == pos) ns
+          | otherwise = True
+      nonNum (u, _) = not (isNum u)
+
+-- Channel functions
+confCm :: Preskel -> ChMsg -> Bool
+confCm k e =
+  case cmChan e of
+    Just ch -> elem ch (kconf k) || isLocn ch
+    Nothing -> False
+
+authCm :: Preskel -> ChMsg -> Bool
+authCm k e =
+  case cmChan e of
+    Just ch -> elem ch (kauth k) ||
+               (isLocn ch &&
+                (let t = (cmTerm e) in
+                 elem t (kgenSt k) ||
+                 (isLocnMsg t &&
+                  elem (locnMsgPayload t) (kgenSt k))))
+    Nothing -> False
+
+-- Isomorphism Check
+
+-- Are two skeletons equivalent?  Two skeletons are equivalent if they
+-- are isomorphic.  A key efficiency requirement in the implementation
+-- of the cryptograhic protocol shapes analysis algorithm is to ensure
+-- only one member of each equivalence class of skeletons is analyzed,
+-- and the results of that analysis is immediately used for all other
+-- members of the equivalence class.
+
+-- To meet this requirement, a list of skeletons that have been seen
+-- is maintained.  Before a skeleton is put on a to do list for
+-- analysis, it is checked to see if it is isomorphic to one already
+-- seen.  If so, the results of the analysis for the isomorphic
+-- skeleton is used instead of putting the skeleton on the to do list.
+
+-- Once a skeleton has been printed, the only reason for saving it is
+-- for isomorphism checking.  The isomorphism check is performed
+-- frequently, so an specialized data structure is used.  The gist of
+-- a skeleton is all that is needed for the test for equivalence.
+
+data Gist = Gist
+    { ggen :: Gen,
+      gtraces :: [(Int, Trace)],
+      gorderings :: [Pair],
+      gnon :: [Term],    -- A list of non-originating terms
+      gpnon :: [Term],   -- A list of penetrator non-originating terms
+      gunique :: [Term], -- A list of uniquely-originating terms
+      guniqgen :: [Term], -- A list of uniquely-generated terms
+      gabsent :: [(Term, Term)], -- A list of absent terms
+      ggenSt :: [Term],  -- A list of terms for generated states
+      gfacts :: [Fact],  -- A list of facts
+      gfvars :: [Term],  -- Fact vars not in instances
+      nvars :: !Int,     -- Number of variables
+      ntraces :: !Int,   -- Number of traces
+      briefs :: [(Int, Int)],   -- Multiset of trace briefs
+      norderings :: !Int,       -- Number of orderings
+      nnon :: !Int,      -- Number of non-originating terms
+      npnon :: !Int,     -- Number of penetrator non-originating terms
+      nunique :: !Int,   -- Number of uniquely-originating terms
+      nuniqgen :: !Int,  -- Number of uniquely-generating terms
+      nabsent :: !Int,   -- Number of absent terms
+      ngenSt :: !Int,    -- Number of generated states
+      nfacts :: !Int,    -- Number of facts
+      nfvars :: !Int }   -- Number of fact vars not in instances
+    deriving Show
+
+mkGist :: Preskel -> Gist
+mkGist k =
+    Gist { ggen = gen k,
+           gtraces = gtraces,
+           gorderings = gorderings,
+           gnon = gnon,
+           gpnon = gpnon,
+           gunique = gunique,
+           guniqgen = guniqgen,
+           gabsent = gabsent,
+           ggenSt = ggenSt,
+           gfacts = gfacts,
+           gfvars = gfvars,
+           nvars = length (kvars k),
+           ntraces = length gtraces,
+           briefs = multiset (map fst gtraces),
+           norderings = length gorderings,
+           nnon = length gnon,
+           npnon = length gpnon,
+           nunique = length gunique,
+           nuniqgen = length guniqgen,
+           nabsent = length gabsent,
+           ngenSt  = length ggenSt,
+           nfacts = length gfacts,
+           nfvars = length gfvars }
+    where
+      gtraces = map f (insts k)
+      -- Old: f i = (height i, trace i)
+      f i =
+        (brief c, c)
+        where c = trace i
+      gorderings = orderings k
+      gnon = knon k
+      gpnon = kpnon k
+      gunique = kunique k
+      guniqgen = kuniqgen k
+      gabsent = kabsent k
+      ggenSt = kgenSt k
+      gfacts = kfacts k
+      gfvars = kfvars k
+
+-- Summarize a trace so that two traces don't match unless they have
+-- the same number.  The summary used to be the height of the trace.
+brief :: Trace -> Int
+brief [] = 0
+brief (In _ : c) = 1 + 3 * brief c
+brief (Out _ : c) = 2 + 3 * brief c
+
+-- Convert a list of integers into a sorted multiset representation.
+-- The output is a list of pairs, (i, n). Integer n gives the
+-- multiplity of integer i in the input list.  List is sorted based on
+-- the first element in each pair.
+multiset :: [Int] -> [(Int, Int)]
+multiset brf =
+  L.foldl insert [] brf
+  where
+    insert [] b = [(b, 1)]
+    insert ((k, n) : brf) b
+      | k == b = (k, n + 1) : brf
+      | k > b = (b, 1) : (k, n) : brf
+      | otherwise = (k, n) : insert brf b
+
+-- Test to see if two preskeletons are isomorphic
+
+-- First, ensure the two preskeletons have:
+-- 1. The same number of variables
+-- 2. The same number of strands with the same brief
+-- 3. The same number of node orderings
+-- 4. The same number of terms in knon and kunique
+-- 5. The same number of facts
+-- 6. The same number of variables in facts but not in instances
+
+-- Next compute the plausible permutations and substitutions.
+
+-- Next, for each permutation of the strands, eliminate the ones that
+-- map a strand to another of a different length, and don't cause the
+-- node orderings to be equal.
+
+-- For permutations that meet the previous conditions, see if there is
+-- a renaming that maps every strand trace in one preskeleton into the
+-- appropriate one in the other preskeleton.  Finally, check to see if
+-- the renaming works in the nr and ur terms.
+
+isomorphic :: Gist -> Gist -> Bool
+isomorphic g g' =
+    sameSkyline g g' &&
+    any (tryPerm g g') (permutations g g')
+
+sameSkyline :: Gist -> Gist -> Bool
+sameSkyline g g' =
+    -- nvars g == nvars g' &&      -- Doesn't work for Diffie-Hellman
+    ntraces g == ntraces g' &&
+    briefs g == briefs g' &&
+    norderings g == norderings g' &&
+    nnon g == nnon g' &&
+    npnon g == npnon g' &&
+    nunique g == nunique g' &&
+    nuniqgen g == nuniqgen g' &&
+    nabsent g == nabsent g' &&
+    ngenSt g == ngenSt g' &&
+    nfacts g == nfacts g' &&
+    nfvars g == nfvars g'
+
+-- For thinning.  Ensure point-of-view is preserved.
+probIsomorphic :: Preskel -> Preskel -> Bool
+probIsomorphic k k' =
+    sameSkyline g g' &&
+    any (tryPermProb g g' pr pr') (permutations g g')
+    where
+      g = gist k
+      g' = gist k'
+      pr = prob k
+      pr' = prob k'
+
+-- Extend a permutation while extending a substitution
+-- Extend by matching later strands first
+permutations :: Gist -> Gist -> [((Gen, Env), (Gen, Env), [Sid])]
+permutations g g' =
+    map rev $ perms (gg, emptyEnv)
+                    (gg, emptyEnv)
+                    (reverse $ gtraces g)
+                    (reverse $ nats $ ntraces g)
+    where
+      gg = gmerge (ggen g) (ggen g')
+      perms env renv [] [] = [(env, renv, [])]
+      perms env renv ((h, c):hcs) xs =
+          [ (env'', renv'', x:ys) |
+            x <- xs,
+            let (h', c') = gtraces g' !! x,
+            h == h',
+            env' <- jibeTraces c c' env,
+            renv' <- jibeTraces c' c renv,
+            (env'', renv'', ys) <- perms env' renv' hcs (L.delete x xs) ]
+      perms _ _ _ _ = error "Strand.permutations: lists not same length"
+      rev (env, renv, xs) = (env, renv, reverse xs)
+
+-- Length of matched traces must agree.
+jibeTraces :: Trace -> Trace -> (Gen, Env) -> [(Gen, Env)]
+jibeTraces [] [] ge = [ge]
+jibeTraces (In t : c) (In t' : c') ge =
+    do
+      env <- cmMatch t t' ge
+      jibeTraces c c' env
+jibeTraces (Out t : c) (Out t' : c') ge =
+    do
+      env <- cmMatch t t' ge
+      jibeTraces c c' env
+jibeTraces _ _ _ = []
+
+-- Extend a fact permutation while extending a substitution
+fperms :: Gist -> Gist -> (Gen, Env) -> (Gen, Env) ->
+          [((Gen, Env), (Gen, Env), [Int])]
+fperms g g' env renv =
+  perms env renv (gfvars g) (nats $ nfvars g)
+  where
+    perms env renv [] [] = [(env, renv, [])]
+    perms env renv (t:ts) xs =
+          [ (env'', renv'', x:ys) |
+            x <- xs,
+            let t' = gfvars g' !! x,
+            env' <- match t t' env,
+            renv' <- match t' t renv,
+            (env'', renv'', ys) <- perms env' renv' ts (L.delete x xs) ]
+    perms _ _ _ _ = error "Strand.fperms: lists not same length"
+
+{-
+-- Here is the permutation algorithm used
+
+permutations :: Int -> [[Int]]
+permutations n =
+    perms (nats n)
+    where
+      perms []  = [[]]
+      perms xs = [ x:ys | x <- xs, ys <- perms (L.delete x xs) ]
+
+-- Here is the usual algorithm
+
+-- Returns a list of all the permutations of the natural numbers less
+-- that the argument.  The identity permutation is the first one in
+-- the returned list.  The code is based on a function in Haskell 1.3.
+permutations :: Int -> [[Int]]
+permutations n =
+    perms (nats n)
+    where
+      perms [] = [[]]
+      perms (x:xs) = [zs | ys <- perms xs, zs <- interleave x ys]
+      interleave x [] = [[x]]
+      interleave x (y:ys) = (x:y:ys) : map (y:) (interleave x ys)
+-}
+
+tryPerm :: Gist -> Gist -> ((Gen, Env), (Gen, Env), [Sid]) -> Bool
+tryPerm g g' (env, renv, perm) =
+    checkOrigs g g' env &&
+    checkOrigs g' g renv &&
+    checkGenSt g g' env &&
+    checkGenSt g' g renv &&
+    any (tryFacts g g' perm (invperm perm)) (fperms g g' env renv) &&
+    containsMapped (permutePair perm) (gorderings g') (gorderings g)
+
+tryPermProb :: Gist -> Gist -> [Sid] -> [Sid] ->
+               ((Gen, Env), (Gen, Env), [Sid]) -> Bool
+tryPermProb g g' prob prob' (env, renv, perm) =
+    all (\n -> perm !! (prob !! n) == prob' !! n) [0..((length prob)-1)] &&
+    tryPerm g g' (env, renv, perm)
+
+invperm :: [Int] -> [Int]
+invperm p = map snd (L.sortOn fst (zip p [0..]))
+
+-- containsMapped f xs ys is true when list xs contains each element
+-- in ys after being mapped with function f.
+containsMapped :: Eq a => (a -> a) -> [a] -> [a] -> Bool
+containsMapped f xs ys =
+    all (flip elem xs) (map f ys)
+
+permutePair :: [Sid] -> Pair -> Pair
+permutePair perm (n, n') = (permuteNode perm n, permuteNode perm n')
+
+permuteNode :: [Sid] -> Node -> Node
+permuteNode perm (strand, pos) = (perm !! strand, pos)
+
+tryFacts :: Gist -> Gist -> [Sid] -> [Sid] ->
+            ((Gen, Env), (Gen, Env), a) -> Bool
+tryFacts g g' perm invperm (env, renv, _) =
+  checkFacts g g' env perm &&
+  checkFacts g' g renv invperm
+
+checkFacts :: Gist -> Gist -> (Gen, Env) -> [Sid] -> Bool
+checkFacts g g' (_, e) perm =
+  all f (gfacts g)
+  where
+    f fact = elem (instUpdateFact e (perm !!) fact) (gfacts g')
+
+checkOrigs :: Gist -> Gist -> (Gen, Env) -> Bool
+checkOrigs g g' env =
+    not (null
+         [ env''''' |
+           env' <- checkOrig env (gnon g) (gnon g'),
+           env'' <- checkOrig env' (gpnon g) (gpnon g'),
+           env''' <- checkOrig env'' (gunique g) (gunique g'),
+           env'''' <- checkOrig env''' (guniqgen g) (guniqgen g'),
+           env''''' <- checkAbs env'''' (gabsent g) (gabsent g')])
+
+-- Try all permutations as done above
+checkOrig :: (Gen, Env) -> [Term] -> [Term] -> [(Gen, Env)]
+checkOrig env [] [] = [env]
+checkOrig env (t:ts) ts' =
+    do
+      t' <- ts'
+      env' <- match t t' env
+      checkOrig env' ts (L.delete t' ts')
+checkOrig _ _ _ = error "Strand.checkOrig: lists not same length"
+
+-- Try all permutations as done above
+checkAbs :: (Gen, Env) -> [(Term, Term)] -> [(Term, Term)] -> [(Gen, Env)]
+checkAbs env [] [] = [env]
+checkAbs env ((t1,t2):ts) ts' =
+    do
+      (t1', t2') <- ts'
+      env <- match t1 t1' env
+      env <- match t2 t2' env
+      checkAbs env ts (L.delete (t1', t2') ts')
+checkAbs _ _ _ = error "Strand.checkAbs: lists not same length"
+
+checkGenSt :: Gist -> Gist -> (Gen, Env) -> Bool
+checkGenSt g g' env =
+    let genStVs = (ggenSt g) in
+    let genStVs' = (ggenSt g') in
+    let (_, e) = env in
+    all (\gs -> (instantiate e gs) `elem` genStVs') genStVs
+
+gist :: Preskel -> Gist
+-- gist = mkGist
+gist = kgist
+
+-- Preskeleton Reduction System (PRS)
+
+-- The PRS reduces a preskeleton to a list of skeletons.  Along the way,
+-- it applies the associated homomorphism to a node and computes a
+-- substitution.  Thus if skel (k, n, empty) = [(k', n', sigma)], then
+-- phi,sigma is a homomorphism from k to k', n' = phi(n).
+
+type PRS = (Preskel,            -- Parent
+            Preskel,            -- Potential cohort member
+            Node,               -- Image of test node in member
+            [Sid],              -- Strand map part of homomorphism
+            Subst)              -- Substition part of homomorphism
+
+-- Extract the protential cohort member from a PRS.
+skel :: PRS -> Preskel
+skel (_, k, _, _, _) = k
+
+-- Returns the preskeletons that result from applying a substitution.
+-- If validate is True, preskeletons that fail to preserve the nodes
+-- at which each maybe uniquely originating term originates are
+-- filtered out.
+
+ksubst :: PRS -> (Gen, Subst) -> [PRS]
+ksubst (k0, k, n, phi, hsubst) (gen, subst) =
+    do
+      (gen', insts') <- foldMapM (substInst subst) gen (insts k)
+      let non' = map (substitute subst) (knon k)
+      let pnon' = map (substitute subst) (kpnon k)
+      let unique' = map (substitute subst) (kunique k)
+      let uniqgen' = map (substitute subst) (kuniqgen k)
+      let absent' = map (pairApp $ substitute subst) (kabsent k)
+      let genStV' = map (substitute subst) (kgenSt k)
+      let conf' = map (substitute subst) (kconf k)
+      let auth' = map (substitute subst) (kauth k)
+      let facts' = map (substFact subst) (kfacts k)
+      let operation' = substOper subst (operation k)
+      let k' = newPreskel gen' (shared k) insts'
+               (orderings k) non' pnon' unique' uniqgen'
+               absent' (kprecur k) genStV' conf' auth' facts'
+               (kpriority k) operation' (krules k) (pprob k) (prob k) (pov k)
+      k'' <- wellFormedPreskel $ soothePreskel k'
+      return (k0, k'', n, phi, compose subst hsubst)
+
+pairApp :: (a -> b) -> (a, a) -> (b, b)
+pairApp f (x, y) = (f x, f y)
+
+-- Monad version of mapAccumR
+foldMapM :: Monad m => (a -> b -> m (a, c)) -> a -> [b] -> m (a, [c])
+foldMapM _ acc [] = return (acc, [])
+foldMapM f acc (x:xs) =
+    do
+      (acc', xs') <- foldMapM f acc xs
+      (acc'', x') <- f acc' x
+      return (acc'', x':xs')
+
+substInst :: Subst -> Gen -> Instance -> [(Gen, Instance)]
+substInst subst gen i =
+    bldInstance (role i) (map (evtMap $ substitute subst) (trace i)) gen
+
+substOper :: Subst -> Operation -> Operation
+substOper _ New = New
+substOper subst (Contracted s cause) =
+    Contracted (compose subst s) (substCause subst cause)
+substOper _ m@(Displaced _ _ _ _ _) = m
+substOper subst (AddedStrand role height cause) =
+    AddedStrand role height (substCause subst cause)
+substOper subst (AddedListener t cause) =
+    AddedListener (substitute subst t) (substCause subst cause)
+substOper subst (AddedAbsence t1 t2 cause) =
+    AddedAbsence (substitute subst t1) (substitute subst t2) (substCause subst cause)
+substOper _ m@(Generalized _) = m
+substOper _ m@(Collapsed _ _) = m
+
+substCause :: Subst -> Cause -> Cause
+substCause subst (Cause dir n t escape) =
+    Cause dir n (cmtSubstitute subst t) (S.map (cmtSubstitute subst) escape)
+
+-- A compression (s is to be eliminated)
+compress :: Bool -> PRS -> Sid -> Sid -> [PRS]
+compress validate (k0, k, n, phi, hsubst) s s' =
+    do
+      let perm = updatePerm s s' (strandids k)
+      orderings' <- normalizeOrderings validate
+                    (permuteOrderings perm (orderings k))
+      let k' =
+              newPreskel
+              (gen k)
+              (shared k)
+              (deleteNth s (insts k))
+              orderings'
+              (knon k)
+              (kpnon k)
+              (kunique k)
+              (kuniqgen k)
+              (kabsent k)
+              (map (permuteNode perm) (kprecur k))
+              (kgenSt k)
+              (kconf k)
+              (kauth k)
+              (map (updateFact $ updateStrand s s') (kfacts k))
+              (updatePriority perm (kpriority k))
+              (operation k)
+              (krules k)
+              (pprob k)
+              (updateProb perm (prob k))
+              (pov k)
+      k'' <- wellFormedPreskel k'
+      return (k0, k'', permuteNode perm n, map (perm !!) phi, hsubst)
+
+permuteOrderings :: [Sid] -> [Pair] -> [Pair]
+permuteOrderings perm orderings = map (permutePair perm) orderings
+
+updatePerm :: Int -> Int -> [Sid] -> [Sid]
+updatePerm old new perm =
+    map (updateStrand old new) perm
+
+-- Old is to be eliminated and merged into new
+updateStrand :: Int -> Int -> Sid -> Sid
+updateStrand old new i =
+    let j = if old == i then new else i in
+    if j > old then j - 1 else j
+
+updateNode :: Int -> Int -> Node -> Node
+updateNode old new (s, i) =
+    (updateStrand old new s, i)
+
+-- Eliminates implied intrastrand orderings and fails if it finds a
+-- reverse intrastrand ordering when flag is true.
+normalizeOrderings :: Bool -> [Pair] -> [[Pair]]
+normalizeOrderings True orderings =
+    loop [] orderings
+    where
+      loop acc [] = [acc]
+      loop acc (p@((s0, i0), (s1, i1)) : ps)
+          | s0 /= s1 = loop (p : acc) ps
+          | i0 < i1 = loop acc ps
+          | otherwise = []
+normalizeOrderings False orderings =
+    [filter (\ ((s0, _), (s1, _)) -> s0 /= s1) orderings]
+
+updateProb :: [Sid] -> [Sid] -> [Sid]
+updateProb mapping prob =
+    map (mapping !!) prob
+
+updatePriority :: [Sid] -> [(Node, Int)] -> [(Node, Int)]
+updatePriority mapping kpriority =
+    map (\(n, i) -> (permuteNode mapping n, i)) kpriority
+
+-- Purge strand s.  Used by thinning.  Expects s and s' to be isomorphic.
+purge :: PRS -> Sid -> Sid -> [PRS]
+purge (k0, k, n, phi, hsubst) s s' =
+    do
+      let perm = updatePerm s s' (strandids k)
+      orderings' <- normalizeOrderings False
+                    (permuteOrderings perm
+                     (forward s (orderings k)))
+      let k' =
+              newPreskel
+              (gen k)
+              (shared k)
+              (deleteNth s (insts k))
+              orderings'
+              (knon k)
+              (kpnon k)
+              (kunique k)
+              (kuniqgen k)
+              (kabsent k)
+              (map (permuteNode perm) (kprecur k))
+              (kgenSt k)
+              (kconf k)
+              (kauth k)
+              (map (updateFact $ updateStrand s s')
+                       (deleteStrandFacts s (kfacts k)))
+              (updatePriority perm (kpriority k))
+              (operation k)
+              (krules k)
+              (pprob k)
+              (updateProb perm (prob k))
+              (pov k)
+      k'' <- wellFormedPreskel $ soothePreskel k'
+      return (k0, k'', permuteNode perm n, map (perm !!) phi, hsubst)
+
+-- Forward orderings from strand s
+forward :: Sid -> [Pair] -> [Pair]
+forward s orderings =
+    concatMap f orderings
+    where
+      f p@((s0, i0), (s1, i1))
+          | s0 == s = [((s2, i2), (s1, i1)) | -- Forward here
+                       ((s2, i2), (s3, i3)) <- orderings,
+                       s3 == s0 && i0 >= i3]
+          | s1 == s = []        -- Dump edges to strand s
+          | otherwise = [p]     -- Pass thru other edges
+
+-- Remove bad origination assumptions, gen-states, and facts
+soothePreskel :: Preskel -> Preskel
+soothePreskel k =
+  newPreskel
+  (gen k)
+  (shared k)
+  (insts k)
+  (orderings k)
+  (filter varCheck $ knon k)
+  (filter varCheck $ kpnon k)
+  (filter carriedCheck $ kunique k)
+  (filter varCheck $ kuniqgen k)
+  (filter absentCheck $ kabsent k)
+  (kprecur k)
+  (filter genStCheck $ kgenSt k)
+  (filter chanCheck $ kconf k)
+  (filter chanCheck $ kauth k)
+  (kfacts k)
+  (kpriority k)
+  (operation k)
+  (krules k)
+  (pprob k)
+  (prob k)
+  (pov k)
+  where
+    vs = kvars k
+    terms = kterms k
+    f b t = b && t `elem` vs
+    varCheck t = varSubset [t] terms
+    carriedCheck t = any (carriedBy t) terms
+    genStCheck t = foldVars f True t
+    chanCheck t = varSubset [t] $ kchans k
+    absentCheck (x, y) = varSubset [x, y] $ kvars k
+
+-- This is the starting point of the Preskeleton Reduction System
+
+skeletonize :: Bool -> PRS -> [PRS]
+skeletonize thin prs =
+  do
+    prs' <- enforceAbsence prs
+    case hasMultipleOrig prs' of
+      True -> []
+      False -> enrich thin prs'
+
+-- Compute the substitutions that satisfy the absence assumptions and
+-- apply them to the skeleton.
+enforceAbsence :: PRS -> [PRS]
+enforceAbsence prs@(_, k, _, _, _)
+  | null (kabsent k) = [prs]
+enforceAbsence prs@(_, k, _, _, _) =
+  do
+    s <- foldl f [(gen k, emptySubst)] (kabsent k)
+    ksubst prs s
+  where
+    f ss ts =
+      do
+        s <- ss
+        absentSubst s ts
+
+-- Determine if a given PRS has a multiple origination of a
+-- non-numeric fresh value.  Also when a value is both uniq
+-- orig and uniq gen, check to see if they start on different strands.
+hasMultipleOrig :: PRS -> Bool
+hasMultipleOrig prs =
+  any (\(_, l) -> length l > 1) (korig (skel prs)) ||
+  any (\(_, l) -> length l > 1) (kugen (skel prs)) ||
+  origUgenDiffStrand (korig (skel prs)) (kugen (skel prs))
+
+-- When a value is both uniq orig and uniq gen, check to see if they
+-- start on different strands.
+origUgenDiffStrand :: [(Term, [Node])] -> [(Term, [Node])] -> Bool
+origUgenDiffStrand _ [] = False
+origUgenDiffStrand orig ((t, ns) : ugen) =
+  case lookup t orig of
+    Nothing -> origUgenDiffStrand orig ugen
+    Just ns' -> any f ns || origUgenDiffStrand orig ugen
+      where f (s, _) = any (\(s', _) -> s /= s') ns'
+
+-- Hulling or Ensuring Unique Origination
+hull :: Bool -> PRS -> [PRS]
+hull thin prs =
+    loop (korig (skel prs) ++ kugen (skel prs))
+    where
+      -- No uniques originate on more than one strand
+      loop [] = enrich thin prs
+      -- Found a pair that needs hulling
+      loop ((_, (s, _) : (s', _) : _) : _) =
+        do
+          (s'', s''', subst) <- unifyStrands (skel prs) s s'
+          prs <- ksubst prs subst
+          prs' <- compress False prs s'' s'''
+          hull thin prs'
+      loop(_ : orig) = loop orig
+
+-- Order Enrichment
+
+-- Adds orderings so that a skeleton respects origination.
+
+enrich :: Bool -> PRS -> [PRS]
+enrich _ prs | hasMultipleOrig prs = []
+enrich thin (k0, k, n, phi, hsubst) =
+    let o = foldl (addUniqOrigOrderings k) (orderings k) (kunique k) in
+    let o' = foldl (addUniqGenOrderings k) o (kuniqgen k) in
+    if length o' == length (orderings k) then
+        maybeThin thin (k0, k, n, phi, hsubst) -- Nothing to add
+    else
+        do
+          let k' =
+                  newPreskel
+                  (gen k)
+                  (shared k)
+                  (insts k)
+                  o'
+                  (knon k)
+                  (kpnon k)
+                  (kunique k)
+                  (kuniqgen k)
+                  (kabsent k)
+                  (kprecur k)
+                  (kgenSt k)
+                  (kconf k)
+                  (kauth k)
+                  (kfacts k)
+                  (kpriority k)
+                  (operation k)
+                  (krules k)
+                  (pprob k)
+                  (prob k)
+                  (pov k)
+          k'' <- wellFormedPreskel k'
+          maybeThin thin (k0, k'', n, phi, hsubst)
+
+maybeThin :: Bool -> PRS -> [PRS]
+maybeThin _ prs | usePruning = prune prs
+maybeThin True prs = thin prs
+maybeThin False prs = reduce prs
+
+origNode :: Preskel -> Term -> Maybe Node
+origNode k t =
+    case lookup t (korig k) of
+      Nothing -> error "Strand.origNode: term not in kunique"
+      Just [] -> Nothing
+      Just [n] -> Just n
+      Just _ -> error "Strand.origNode: not a hulled skeleton"
+
+addUniqOrigOrderings :: Preskel -> [Pair] -> Term -> [Pair]
+addUniqOrigOrderings k orderings t =
+    case origNode k t of
+      Nothing -> orderings
+      Just n@(s, _) ->
+          foldl f orderings (L.delete s (strandids k))
+          where
+            f orderings s =
+                -- JDG:  Was gainedPos:  usedPos seemed more correct
+                -- before further checking...
+                case gainedPos t (trace (strandInst k s)) of
+                  Nothing -> orderings
+                  Just pos -> adjoin (n, (s, pos)) orderings
+
+genNode :: Preskel -> Term -> Maybe Node
+genNode k t =
+    case lookup t (kugen k) of
+      Nothing -> error "Strand.genNode: term not in kuniqgen"
+      Just [] -> Nothing
+      Just [n] -> Just n
+      Just _ -> error "Strand.genNode: not a hulled skeleton"
+
+addUniqGenOrderings :: Preskel -> [Pair] -> Term -> [Pair]
+addUniqGenOrderings k orderings t =
+    case genNode k t of
+      Nothing -> orderings
+      Just n@(s, _) ->
+          foldl f orderings (L.delete s (strandids k))
+          where
+            f orderings s =
+                -- JDG:  Was genGainedPos:  usedPos seems more correct
+                case usedPos t (trace (strandInst k s)) of
+                  Nothing -> orderings
+                  Just pos -> adjoin (n, (s, pos)) orderings
+
+matchTraces :: Trace -> Trace -> (Gen, Env) -> [(Gen, Env)]
+matchTraces [] _ env = [env]    -- Pattern can be shorter
+matchTraces (In t : c) (In t' : c') env =
+    do
+      e <- cmMatch t t' env
+      matchTraces c c' e
+matchTraces (Out t : c) (Out t' : c') env =
+    do
+      e <- cmMatch t t' env
+      matchTraces c c' e
+matchTraces _ _ _ = []
+
+-- Thinning
+
+thin :: PRS -> [PRS]
+thin prs =
+  do
+    prs <- reduce prs
+    thinStrands prs [] $ reverse ss
+    where                       -- Remove strands in image of POV
+      ss = filter (\s -> notElem s (prob $ skel prs)) (strandids $ skel prs)
+
+-- Takes a skeleton, a list of pairs of strands that matched, and a
+-- list of strands yet to be analyzed, and produces the result of
+-- skeletonization.  It first tries single pair thinning, and during
+-- that process collects potential multistrand thinning pairs.  Once
+-- there are no more unanalyzed strands, it tries multistrand
+-- thinning.
+thinStrands :: PRS -> [(Sid, Sid)] -> [Sid] -> [PRS]
+thinStrands prs ps [] =         -- All strands analyzied
+    case multiPairs ps of       -- Generate multipairs
+      [] -> [prs]
+      mps -> thinMany prs mps   -- Try multistrand thinning
+thinStrands prs ps (s:ss) =
+  thinStrandPairs prs ps s ss ss
+
+-- This loop tries pairs of strands.  Takes a skeleton, a list of
+-- pairs of strands that matched but did not thin, a strand to be
+-- eliminated, a list of strands to be used in the outer loop
+-- (thinStrands), and a list of strands to be considered for matching,
+-- and produces the result of skeletonization.
+thinStrandPairs :: PRS -> [(Sid, Sid)] -> Sid -> [Sid] -> [Sid] -> [PRS]
+thinStrandPairs prs ps _ ss [] =
+  thinStrands prs ps ss
+thinStrandPairs prs ps s ss (s':ss') =
+  case thinStrand prs s s' of
+    -- Try next pair, there was no match
+    Nothing -> thinStrandPairs prs ps s ss ss'
+    -- Try next pair, there was a match so save this pair
+    Just [] -> thinStrandPairs prs ((s, s'):ps) s ss ss'
+    Just prss ->                -- Success at single strand thinning
+      do
+        prs <- prss
+        thin prs                -- Restart from the beginning
+
+-- Try thinning s with s'.  If there was no match, return Nothing,
+-- else return Just the list of results.
+thinStrand :: PRS -> Sid -> Sid -> Maybe [PRS]
+thinStrand prs s s' =
+    let k = skel prs in
+    case thinStrandMatch k s s' of
+      False -> Nothing
+      True ->
+        Just [ prs' | prs' <- purge prs s s',
+                      prs'' <- purge prs s' s,
+                      probIsomorphic (skel prs') (skel prs'')]
+
+-- See if two strands match.
+thinStrandMatch :: Preskel -> Sid -> Sid -> Bool
+thinStrandMatch k s s' =
+  height i == height i'
+  && not (null $ matchTraces (trace i) (trace i') env)
+  && not (null $ matchTraces (trace i') (trace i) env)
+  where
+    i = strandInst k s
+    i' = strandInst k s'
+    env = (gen k, emptyEnv)
+
+-- Multistrand thinning
+
+-- Generate all candidate pairings
+multiPairs :: [(Sid, Sid)] ->  [[(Sid, Sid)]]
+multiPairs _ | useSingleStrandThinning = []
+multiPairs ps = filter atLeastTwo $ thinOne ps
+
+-- List is of length at least two.
+atLeastTwo :: [a] -> Bool
+atLeastTwo (_:_:_) = True
+atLeastTwo _ = False
+
+thinOne :: [(Sid, Sid)] -> [[(Sid, Sid)]]
+thinOne [] = []
+thinOne (p:ps) =
+    thinTwo p ps ++ thinOne ps
+
+-- Construct possible pairs that include (s, s').
+thinTwo :: (Sid, Sid) -> [(Sid, Sid)] -> [[(Sid, Sid)]]
+thinTwo (s, s') ps =
+    [(s, s')] : [(s, s') : ps' | ps' <- thinOne (filter (diff (s, s')) ps)]
+    where                       -- filter out pairs with seen strands
+      diff (s0, s1) (s2, s3) =
+          s0 /= s2 && s0 /= s3 && s1 /= s2 && s1 /= s3
+
+-- Try all multistrand pairings until one succeeds.
+thinMany :: PRS -> [[(Sid, Sid)]] -> [PRS]
+thinMany prs [] = reduce prs
+thinMany prs (ps:mps) =
+    case thinManyStrands prs ps of
+      [] -> thinMany prs mps
+      prss ->                           -- Success
+        do
+          prs <- prss
+          thin prs
+
+thinManyStrands :: PRS -> [(Sid, Sid)] -> [PRS]
+thinManyStrands prs ps =
+  [ prs' | prs' <- compressMany prs ps,
+           prs'' <- compressMany prs (swap ps),
+           probIsomorphic (skel prs') (skel prs'')]
+
+compressMany :: PRS -> [(Sid, Sid)] -> [PRS]
+compressMany prs [] = [prs]
+compressMany prs ((s, s'):ps) =
+    do
+      prs' <- purge prs s s'
+      compressMany prs' (map (updatePairs s s') ps)
+
+swap :: [(a, a)] -> [(a, a)]
+swap ps =
+    map (\(x, y) -> (y, x)) ps
+
+updatePairs :: Sid -> Sid -> (Sid, Sid) -> (Sid, Sid)
+updatePairs old new (s, s') =
+    (updateStrand old new s, updateStrand old new s')
+
+-- Redundant Strand Elimination (also known as pruning)
+
+prune :: PRS -> [PRS]
+prune prs =
+    pruneStrands prs (reverse $ strandids $ skel prs) (strandids $ skel prs)
+
+pruneStrands :: PRS -> [Sid] -> [Sid] -> [PRS]
+pruneStrands prs [] _ =
+    reduce prs                  -- No redundant strands found
+pruneStrands prs (_:ss) [] =
+    pruneStrands prs ss (strandids $ skel prs)
+pruneStrands prs (s:ss) (s':ss')
+    | s == s' = pruneStrands prs (s:ss) ss'
+    | otherwise =
+        case pruneStrand prs s s' of
+          [] -> pruneStrands prs (s:ss) ss'  -- Try next pair
+          prss ->                            -- Success
+              do
+                prs <- prss
+                prune prs
+
+-- Strand s is redundant if there is an environment that maps
+-- the trace of s into a prefix of the trace of s', but changes
+-- no other traces in the preskeleton.
+pruneStrand :: PRS -> Sid -> Sid -> [PRS]
+pruneStrand prs s s' =
+    do
+      let k = skel prs
+      case elem s (prob k) of
+        True -> fail ""   -- Strands s in image of POV skeleton
+        False -> return ()
+      (g, env) <- matchTraces
+                  (trace (strandInst k s))
+                  (trace (strandInst k s'))
+                  (gen k, emptyEnv)
+      let ts = concatMap (tterms . trace) $ deleteNth s $ insts k
+      let subst = substitution env
+      case disjointDom subst ts of
+        True -> return ()
+        False -> fail ""
+      case origCheck k env of
+        True -> return ()
+        False -> fail ""
+      -- If performing strong pruning, drop inbound edges to strand s.
+      let k' = if useStrongPruning then dropInbnd k s else k
+      let prs' = if useStrongPruning then setSkel prs k' else prs
+      case all (precedesCheck k' s s') (edges k') of
+        True -> return ()
+        False -> fail ""
+      prs' <- ksubst prs' (g, subst)
+      compress True prs' s s'
+
+-- Make sure a substitution does not take a unique out of the set of
+-- uniques, and the same for uniq gens, nons, and pnons.
+origCheck :: Preskel -> Env -> Bool
+origCheck k env =
+    check (kunique k) && check (kuniqgen k) &&
+    check (knon k) && check (kpnon k)
+    where
+      check orig =
+          all (pred orig) orig
+      pred set item =
+          elem (instantiate env item) set
+
+-- Ensure that if (s, p) precedes (s", p"), then (s', p) precedes (s", p")
+-- and if (s", p") precedes (s, p), then (s", p") precedes (s', p)
+precedesCheck :: Preskel -> Sid -> Sid -> Edge -> Bool
+precedesCheck k s s' (gn0, gn1)
+    | s == sid (strand gn0) = graphPrecedes (vertex k (s', pos gn0)) gn1
+    | s == sid (strand gn1) = graphPrecedes gn0 (vertex k (s', pos gn1))
+    | otherwise = True
+
+dropInbnd :: Preskel -> Sid -> Preskel
+dropInbnd k s =
+  newPreskel (gen k) (shared k) (insts k) orderings'
+  (knon k) (kpnon k) (kunique k) (kuniqgen k) (kabsent k) (kprecur k)
+  (kgenSt k) (kconf k) (kauth k) (kfacts k)
+  (kpriority k) (operation k) (krules k) (pprob k) (prob k) (pov k)
+  where
+    orderings' = forward s $ orderings k
+
+setSkel :: PRS -> Preskel -> PRS
+setSkel (k0, _, n, phi, hsubst) k = (k0, k, n, phi, hsubst)
+
+-- Transitive Reduction
+
+-- An edge is essential if its removal eliminates all paths from its
+-- source to its destination.  This function removes all non-essential
+-- edges from the ordering relation.
+
+reduce :: PRS -> [PRS]
+reduce (k0, k, n, phi, hsubst) =
+    let o = map graphPair (graphReduce (edges k)) in
+    if length o == length (orderings k) then
+        return (k0, k, n, phi, hsubst) -- Nothing to take away
+    else
+        do
+          let k' =
+                  newPreskel
+                  (gen k)
+                  (shared k)
+                  (insts k)
+                  o
+                  (knon k)
+                  (kpnon k)
+                  (kunique k)
+                  (kuniqgen k)
+                  (kabsent k)
+                  (kprecur k)
+                  (kgenSt k)
+                  (kconf k)
+                  (kauth k)
+                  (kfacts k)
+                  (kpriority k)
+                  (operation k)
+                  (krules k)
+                  (pprob k)
+                  (prob k)
+                  (pov k)
+          k'' <- wellFormedPreskel k'
+          return (k0, k'', n, phi, hsubst)
+
+-- Answers for cohorts
+type Ans = (Preskel, Node, [Sid], Subst)
+
+ans :: PRS -> Ans
+ans (_, k, n, phi, subst) = (k, n, phi, subst)
+
+-- Homomorphism Filter
+
+homomorphismFilter :: PRS -> [Ans]
+homomorphismFilter prs@(k0, k, _, phi, subst)
+    | validateMappingSubst k0 phi subst k = [ans prs]
+    | otherwise = []
+
+-- Ensure origination and generation nodes are preserved as required
+-- to be a homomorphism
+validateMappingSubst :: Preskel -> [Sid] -> Subst -> Preskel -> Bool
+validateMappingSubst k phi subst k' =
+    useNoOrigPreservation ||
+    all checkOrig (korig k) &&  all checkGen (kugen k)
+    where
+      checkOrig (u, ns) =
+          case lookup (substitute subst u) (korig k') of
+            Nothing -> False
+            Just ns' -> all (flip elem ns') (map (permuteNode phi) ns)
+      checkGen (u, ns) =
+          case lookup (substitute subst u) (kugen k') of
+            Nothing -> False
+            Just ns' -> all (flip elem ns') (map (permuteNode phi) ns)
+
+-- Returns the skeleton associated with a preskeleton or nothing when
+-- there isn't one.  Manufacture a node and a term, and then drop them
+-- afterwards.
+toSkeleton :: Bool -> Preskel -> [Preskel]
+toSkeleton thin k =
+    do
+      prs <- hull thin (k, k, (0, 0), strandids k, emptySubst)
+      (k', _, _, _) <- homomorphismFilter prs
+      return k'
+
+-- Contraction
+
+contract :: Preskel -> Node -> Cause -> (Gen, Subst) -> [Ans]
+contract k n cause subst =
+    do
+      prs <- ksubst (k, k { operation = Contracted emptySubst cause,
+                            krules = [] },
+                     n, strandids k, emptySubst) subst
+      prs' <- skeletonize useThinningWhileSolving prs
+      homomorphismFilter prs'
+
+-- Regular Augmentation
+
+-- First argument determines if displacement is used.
+augment :: Preskel -> Node -> Cause -> Role ->
+           (Gen, Subst) -> Instance -> [Ans]
+augment k0 n cause role subst inst =
+    do
+      prs <- augmentAndDisplace k0 n cause role subst inst
+      homomorphismFilter prs
+
+-- Apply a substitution, and then augment and displace.  Augmentations
+-- add an instance and one ordered pair.  Displacements add an ordered
+-- pair and may add nodes.
+
+augmentAndDisplace :: Preskel -> Node -> Cause -> Role ->
+                      (Gen, Subst) -> Instance -> [PRS]
+augmentAndDisplace k0 n cause role subst inst =
+    do
+      prs <- substAndAugment k0 n cause role subst inst
+      augDisplace prs ++ skeletonize useThinningWhileSolving prs
+
+-- Apply the substitution and apply augmentation operator.
+substAndAugment :: Preskel -> Node -> Cause -> Role ->
+                   (Gen, Subst) -> Instance -> [PRS]
+substAndAugment k n cause role subst inst =
+    do
+      let operation' = AddedStrand (rname role) (height inst) cause
+      prs <- ksubst (k, k { operation = operation',
+                            krules = [] }, n,
+                     strandids k, emptySubst) subst
+      aug prs inst
+
+-- Apply the augmentation operator by adding an instance and one
+-- ordered pair.
+aug :: PRS -> Instance -> [PRS]
+aug (k0, k, n, phi, hsubst) inst =
+    do
+      let insts' = (insts k) ++ [inst]
+      let pair = ((length (insts k), height inst - 1), n)
+      let orderings' = pair : orderings k
+      let non' = inheritRnon inst ++ knon k
+      let pnon' = inheritRpnon inst ++ kpnon k
+      let unique' = inheritRunique inst ++ kunique k
+      let uniqgen' = inheritRuniqgen inst ++ kuniqgen k
+      let absent' = inheritRabsent inst ++ kabsent k
+      let conf' = inheritRconf inst ++ kconf k
+      let auth' = inheritRauth inst ++ kauth k
+      let k' = newPreskel (gen k) (shared k) insts'
+           orderings' non' pnon' unique' uniqgen' absent' (kprecur k)
+           (kgenSt k) conf' auth' (kfacts k) (kpriority k)
+           (operation k) (krules k) (pprob k) (prob k) (pov k)
+      k'' <- wellFormedPreskel k'
+      return (k0, k'', n, phi, hsubst)
+
+-- Inherit non-originating atoms if the trace is long enough
+inheritRnon :: Instance -> [Term]
+inheritRnon i =
+    inherit i (rnorig (role i))
+
+-- Inherit penenetrator non-originating atoms if the trace is long enough
+inheritRpnon :: Instance -> [Term]
+inheritRpnon i =
+    inherit i (rpnorig (role i))
+
+-- Inherit uniquely originating atoms if the trace is long enough
+inheritRunique :: Instance -> [Term]
+inheritRunique i =
+    inherit i (ruorig (role i))
+
+-- Inherit uniquely generating atoms if the trace is long enough
+inheritRuniqgen :: Instance -> [Term]
+inheritRuniqgen i =
+    inherit i (rugen (role i))
+
+-- Inherit confidential channels if the trace is long enough
+inheritRconf :: Instance -> [Term]
+inheritRconf i =
+    inherit i (rpconf (role i))
+
+-- Inherit authenticated channels if the trace is long enough
+inheritRauth :: Instance -> [Term]
+inheritRauth i =
+    inherit i (rpauth (role i))
+
+inherit :: Instance -> [(Term, Int)] -> [Term]
+inherit i rorigs =
+    map (instantiate (env i) . fst) $ filter f rorigs
+    where
+      f (_, pos) = pos < height i
+
+inheritRabsent :: Instance -> [(Term, Term)]
+inheritRabsent i =
+    map g abs
+    where
+      g (x, y, _) = (instantiate (env i) x, instantiate (env i) y)
+      abs = filter f (rabs (role i))
+      f (_, _, pos) = pos < height i
+
+-- Add all displacements
+augDisplace :: PRS -> [PRS]
+augDisplace prs =
+    do
+      let s = nstrands (skel prs) - 1
+      s' <- nats s
+      augDisplaceStrands prs s s'
+
+-- Try to displace with strand s'
+augDisplaceStrands :: PRS -> Sid -> Sid -> [PRS]
+augDisplaceStrands (k0, k, n, phi, hsubst) s s' =
+    do
+      (s, s', subst) <- unifyStrands k s s'
+      let op = addedToDisplaced (operation k) s s'
+      prs <- ksubst (k0, k { operation = op, krules = [] },
+                     n, phi, hsubst) subst
+      prs <- compress True prs s s'
+      skeletonize useThinningWhileSolving prs
+
+-- See if two strands unify.  They can be of differing heights.  The
+-- second strand returned may be longer.
+unifyStrands :: Preskel -> Sid -> Sid -> [(Sid, Sid, (Gen, Subst))]
+unifyStrands k s s' =
+    let i = strandInst k s
+        i' = strandInst k s' in
+    if height i > height i' then
+        unifyStrands k s' s
+    else
+        do
+          (gen', subst) <- unifyTraces (trace i) (trace i') (gen k, emptySubst)
+          return (s, s', (gen', subst))
+
+-- Unify traces where the first trace is allowed to be shorter than
+-- the second trace.
+unifyTraces :: Trace -> Trace -> (Gen, Subst) -> [(Gen, Subst)]
+unifyTraces [] _ subst = [subst]
+unifyTraces (In t : c) (In t' : c') subst =
+    do
+      s <- cmUnify t t' subst
+      unifyTraces c c' s
+unifyTraces (Out t : c) (Out t' : c') subst =
+    do
+      s <- cmUnify t t' subst
+      unifyTraces c c' s
+unifyTraces _ _ _ = []
+
+addedToDisplaced :: Operation -> Int -> Int -> Operation
+addedToDisplaced (AddedStrand role height cause) s s' =
+    Displaced s s' role height cause
+addedToDisplaced _ _ _ = error "Strand.addedToDisplaced: Bad operation"
+
+-- Listener Augmentation
+
+addListener :: Preskel -> Node -> Cause -> Term -> [Ans]
+addListener k n cause t =
+    do
+      k'' <- wellFormedPreskel k'
+      prs <- skeletonize useThinningWhileSolving
+             (k, k'', n, strandids k, emptySubst)
+      homomorphismFilter prs
+    where
+      k' = newPreskel gen' (shared k) insts' orderings' (knon k)
+           (kpnon k) (kunique k) (kuniqgen k) (kabsent k) (kprecur k)
+           (kgenSt k) (kconf k) (kauth k) (kfacts k) (kpriority k)
+           (AddedListener t cause) [] (pprob k) (prob k) (pov k)
+      (gen', inst) = mkListener (protocol k) (gen k) t
+      insts' = insts k ++ [inst]
+      pair = ((length (insts k), 1), n)
+      orderings' = pair : orderings k
+
+-- Base Listener Augmentation.  Like listener augmentation but adds a
+-- base precursor and a precur assertion.
+
+addBaseListener :: Preskel -> Node -> Cause -> Term -> [Ans]
+addBaseListener k n cause t =
+    case baseRndx t of
+      Just ts ->
+        do
+          x <- ts
+          addListener k n cause x
+      _ -> formerAddBaseListener k n cause t
+
+formerAddBaseListener :: Preskel -> Node -> Cause -> Term -> [Ans]
+formerAddBaseListener k n cause t =
+    do
+      k'' <- wellFormedPreskel k'
+      prs <- skeletonize useThinningWhileSolving
+             (k, k'', n, strandids k, emptySubst)
+      homomorphismFilter prs
+    where
+      k' = newPreskel gen'' (shared k) insts' orderings' (knon k)
+           (kpnon k) (kunique k) (kuniqgen k) (kabsent k) precur'
+           (kgenSt k) (kconf k) (kauth k) (kfacts k) (kpriority k)
+           (AddedListener t' cause) [] (pprob k) (prob k) (pov k)
+      (gen', t') = basePrecursor (gen k) t
+      (gen'', inst) = mkListener (protocol k) gen' t'
+      insts' = insts k ++ [inst]
+      pair = ((length (insts k), 1), n)
+      orderings' = pair : orderings k
+      precur' = (length (insts k), 0) : kprecur k
+
+-- addAbsence
+addAbsence :: Preskel -> Node -> Cause -> Term -> Term -> [Ans]
+addAbsence k n cause x t =
+    do
+      k'' <- wellFormedPreskel k'
+      prs <- skeletonize useThinningWhileSolving
+             (k, k'', n, strandids k, emptySubst)
+      homomorphismFilter prs
+    where                       -- New cause should be added!
+      k' = newPreskel (gen k) (shared k) (insts k) (orderings k)
+           (knon k) (kpnon k) (kunique k) (kuniqgen k) absent' (kprecur k)
+           (kgenSt k) (kconf k) (kauth k) (kfacts k) (kpriority k)
+           (AddedAbsence x t cause) (krules k) (pprob k) (prob k) (pov k)
+      absent' = (x, t) : kabsent k
+
+-- Homomorphisms
+
+-- Find a substitution that demonstrates the existence of a
+-- homomorphism from k to k' using the given strand mapping function.
+
+homomorphism :: Preskel -> Preskel -> [Sid] -> [Env]
+homomorphism k k' mapping =
+    do
+      (_, env) <- findReplacement k k' mapping
+      case validateEnv k k' mapping env of
+        True -> [env]
+        False -> []
+
+{--     filter (validateEnv k k mapping)
+               $ map snd
+                     $ findReplacement k k' mapping
+                     --}
+
+{--  where
+         maybeShow x = if (5 == L.length (insts k') &&
+                           4 == L.length (insts k))
+                       then (zP "validateEnv failed"
+                             x)
+                       else x
+                       --}
+
+                            {--
+                                ((show (trace ((insts k') !! 0))) ++
+                                 " should match pattern " ++
+                                 (show (trace ((insts k) !! 0))) ++
+                                " mapping " ++ (show mapping))
+                            --}
+
+findReplacement :: Preskel -> Preskel -> [Sid] -> [(Gen, Env)]
+findReplacement k k' mapping =
+    if (L.length mapping) == (L.length (insts k))
+    then let v = (let gg = gmerge (gen k) (gen k') in
+                  foldM (matchStrand k k' mapping) (gg, emptyEnv) (strandids k))  in
+         v
+--            if (5 == L.length (insts k') &&
+--                4 == L.length (insts k))
+--            then
+--                zP (show (L.length v)) v
+--            else v
+    else []
+        -- error ("Yarg! JDR " ++ (show (L.length mapping)) ++ " vs " ++
+        --       (show (L.length (insts k))))
+
+matchStrand :: Preskel -> Preskel -> [Sid] -> (Gen, Env) -> Sid -> [(Gen, Env)]
+matchStrand k k' mapping env s =
+    matchTraces (trace (strandInst k s)) (trace (strandInst k' s')) env
+    where
+      s' = mapping !! s
+
+validateEnv :: Preskel -> Preskel -> [Sid] -> Env -> Bool
+validateEnv k k' mapping env =
+    all (flip elem (knon k')) (map (instantiate env) (knon k)) &&
+    all (flip elem (kpnon k')) (map (instantiate env) (kpnon k)) &&
+    all (flip elem (kunique k')) (map (instantiate env) (kunique k)) &&
+    all (flip elem (kuniqgen k')) (map (instantiate env) (kuniqgen k)) &&
+    all (flip elem (kabsent k')) (map (instantiatePair env) (kabsent k)) &&
+     --    all (flip elem (kprecur k')) (map (permuteNode mapping) (kprecur k)) &&
+    all (flip elem (kfacts k'))
+            (map (instUpdateFact env (mapping !!)) (kfacts k)) &&
+    all (flip elem (kgenSt k')) (map (instantiate env) (kgenSt k)) &&
+    validateEnvOrig k k' mapping env &&
+    all (flip elem (tc k')) (permuteOrderings mapping (orderings k))
+    where
+      instantiatePair env (t1, t2) =
+        (instantiate env t1, instantiate env t2)
+
+{-- Degugging apparatus:
+      allShowingFailingIndex _ [] = True
+      allShowingFailingIndex i (True : rest) = allShowingFailingIndex (i+1) rest
+      allShowingFailingIndex i (False : _) =
+          if (5 == L.length (insts k') &&
+              4 == L.length (insts k))
+          then
+              zP (show i ++ " failed this time")
+              False
+          else
+              False
+              --}
+
+validateEnvOrig :: Preskel -> Preskel -> [Sid] -> Env -> Bool
+validateEnvOrig k k' mapping env =
+    useNoOrigPreservation ||
+    all checkOrig (korig k) &&  all checkGen (kugen k)
+    where
+      checkOrig (u, ns) =
+          case lookup (instantiate env u) (korig k') of
+            Nothing -> error "Strand.validateEnv: term not in kunique"
+            Just ns' -> all (flip elem ns') (map (permuteNode mapping) ns)
+      checkGen (u, ns) =
+          case lookup (instantiate env u) (kugen k') of
+            Nothing -> error "Strand.validateEnv: term not in kuniqgen"
+            Just ns' -> all (flip elem ns') (map (permuteNode mapping) ns)
+
+-- Given a realized skeleton k, generate candidates for minimization.
+-- A candidate is a preskeleton and a strand mapping from the
+-- candidate to k.  The preskeleton need not be well formed, as that
+-- test is applied elsewhere.
+
+type Candidate = (Preskel, [Sid])
+
+addIdentity :: Preskel -> Candidate
+addIdentity k = (k, strandids k)
+
+separateVariablesLimit :: Int
+separateVariablesLimit = 1024
+
+generalize :: Preskel -> [Candidate]
+generalize k = deleteTerminal k ++
+               deleteNodes k ++
+               forgetAssumption k ++
+               weakenOrderings k ++
+               (if useVariableSeparation
+                then take separateVariablesLimit (separateVariables k)
+                else [])
+
+-- terminal strand deletion
+
+strandTerminal :: Preskel -> Sid -> Bool
+strandTerminal k s =
+    not(any (\((s1,_),_) -> s == s1) (orderings k))
+
+strandNonPov :: Preskel -> Sid -> Bool
+strandNonPov k s =
+    not (elem s (prob k))       -- the members of the mapping *are*
+                                -- its range
+
+deleteTerminal :: Preskel -> [Candidate]
+deleteTerminal k =
+    report v
+    where
+      v = [(withCoreFacts
+            (deleteNodeRest k (gen k) (s, 0)
+             (deleteNth s (insts k))
+             (deleteOrderings s (tc k))
+             (updatePerm s s (prob k))
+             (map (updateFact (updateStrand s s))
+                      (deleteStrandFacts s $ kfacts k))),
+            deleteNth s (strandids k),
+            s)
+          | s <- [0 .. (L.length (insts k))-1],
+                 strandNonPov k s,
+                 strandTerminal k s]
+      report [] = []
+      report ((k', mapping, _) : rest) = (k',mapping) : report rest
+
+ {-- debugging apparatus:
+   (zP
+           ("dT: strand " ++ (show s) ++ " insts: " ++ (show (L.length (insts k'))) ++
+            " prob: " ++ (show (prob k')))
+           (k',mapping)) : report rest
+           --}
+
+-- Node deletion
+
+{-
+
+delete node n in k
+
+1. if (s, 0) part of prob return Nothing
+2. if not initial node, truncate instance of node else delete instance
+3. weaken ordering when filtering it (see shortenOrdering)
+4. drop nons that aren't mentioned anywhere
+5. drop uniques that aren't carried anywhere
+6. update prob upon instance deletion
+-}
+
+deleteNodes :: Preskel -> [Candidate]
+deleteNodes k =
+    do
+      strand <- strands k
+      node <- nodes strand
+      cand <- deleteNode k node
+      return $ candWithCoreFacts cand
+
+candWithCoreFacts :: Candidate -> Candidate
+candWithCoreFacts (k,sids) =
+    (withCoreFacts k, sids)
+
+deleteNode :: Preskel -> Vertex -> [(Preskel, [Sid])]
+deleteNode k n
+    | p == 0 && elem s (prob k) = []
+    | p == 0 =
+        do
+          let mapping = deleteNth s (strandids k)
+          let k' = deleteNodeRest k (gen k) (s, p)
+                   (deleteNth s (insts k))
+                   (deleteOrderings s (tc k))
+                   (updatePerm s s (prob k))
+                   (map
+                     (updateFact (updateStrand s s))
+                     (deleteStrandFacts s $ kfacts k))
+          return (k', mapping)
+    | otherwise =
+        do
+          let mapping = strandids k
+          let i = inst (strand n)
+          (gen', i') <- bldInstance (role i) (take p (trace i)) (gen k)
+          let k' = deleteNodeRest k gen' (s, p)
+                   (replaceNth i' s (insts k))
+                   (shortenOrderings (s, p) (tc k))
+                   (prob k)
+                   (deleteNodeFacts s p (kfacts k))
+          return (k', mapping)
+    where
+      p = pos n
+      s = sid (strand n)
+
+{--
+candWithNeededFacts :: Candidate -> [Candidate]
+candWithNeededFacts (k,sids) =
+    map (\k' -> (k',sids)) $ simplify k
+--}
+
+-- Update orderings when a strand is eliminated (p == 0)
+deleteOrderings :: Sid -> [Pair] -> [Pair]
+deleteOrderings s ps =
+    do
+      p <- ps
+      deleteOrdering p
+    where
+      deleteOrdering (n0@(s0, _), n1@(s1, _))
+          | s == s0 || s == s1 = []
+          | otherwise = [(adjust n0, adjust n1)]
+      adjust n@(s', i')
+          | s' > s = (s' - 1, i')
+          | otherwise = n
+
+-- Update orderings when a strand is shortened (p > 0)
+shortenOrderings :: Node -> [Pair] -> [Pair]
+shortenOrderings (s, i) ps =
+    do
+      pair <- ps
+      shortenOrdering pair
+    where
+      shortenOrdering p@((s0, i0), (s1, i1))
+          | s == s0 && i <= i0 = []
+          | s == s1 && i <= i1 = []
+          | otherwise = [p]
+
+deleteNodeRest :: Preskel -> Gen -> Node -> [Instance] -> [Pair] ->
+                  [Sid] -> [Fact] -> Preskel
+deleteNodeRest k gen n insts' orderings prob facts =
+    newPreskel gen (shared k) insts' orderings non' pnon' unique'
+    uniqgen' absent' precur' genSt' conf'
+    auth' facts prio' (Generalized (Deleted n)) [] (pprob k) prob (pov k)
+    where
+      -- Drop nons that aren't mentioned anywhere
+      non' = filter mentionedIn (knon k)
+      pnon' = filter mentionedIn (kpnon k)
+      mentionedIn t = varSubset [t] terms
+
+      terms = iterms insts'
+      vs = instVars insts'
+      f False _ = False
+      f True t = t `elem` vs
+
+      lostgen (s,i) t = case generationPos t (trace ((insts k) !! s)) of
+                          Nothing -> False
+                          Just pos -> i <= pos
+
+      -- Drop uniques that aren't carried anywhere
+      unique' = filter carriedIn (kunique k)
+      carriedIn t = any (carriedBy t) terms
+      uniqgen' = filter (not . (lostgen n)) (kuniqgen k)
+      absent' = filter (\(x, y) -> not (lostgen n x) && mentionedIn x && mentionedIn y) (kabsent k)
+      precur' = map (updateNode (fst n) (fst n)) $ L.delete n (kprecur k)
+      -- Drop channel assumptions for non-existent channels
+      chans = ichans insts'
+      conf' = filter (flip elem chans) (kconf k)
+      auth' = filter (flip elem chans) (kauth k)
+      genSt' = filter (\t -> foldVars f True t) (kgenSt k)
+      -- Drop unused priorities
+      prio' = filter within (kpriority k)
+      within ((s, i), _) =
+        s < fst n || s == fst n && i < snd n
+
+deleteStrandFacts :: Sid -> [Fact] -> [Fact]
+deleteStrandFacts s facts =
+  filter f facts
+  where
+    f (Fact _ ft) =
+      all g ft
+    g (FSid s') = s /= s'
+    g (FTerm _) = True
+
+-- Correct this!  When we know how to filter based on strand and
+-- index.  !!!!
+deleteNodeFacts :: Sid -> Int -> [Fact] -> [Fact]
+deleteNodeFacts s p facts =
+  filter f facts
+  where
+    f (Fact _ fts) = checkRest fts
+    checkRest [] = True
+    checkRest ((FSid s') : (FTerm t) : rest)
+        | s == s' =
+            case intOfIndex t of
+              Just q -> q<p && checkRest rest
+              Nothing -> checkRest rest
+        | otherwise = checkRest rest
+    checkRest (_ : rest) = checkRest rest
+
+permOfSidList :: [Sid] -> Sid -> Sid
+permOfSidList = (!!)
+
+withCoreFacts :: Preskel -> Preskel
+withCoreFacts k =
+    case pov k of
+      Nothing -> k              -- Can't recover pov
+      Just k0 ->
+          case L.length (prob k) == L.length (insts k0) of
+            False -> error ("Strands.withCoreFacts:  Mapping from POV to skeleton wrong length, "
+                            ++ show (prob k) ++ " should map "
+                                   ++ (show (L.length (insts k0))) ++ " strands into "
+                                          ++ (show (L.length (insts k))))
+            True ->
+                case (homomorphism k0 k (prob k)) of
+                  [] -> k
+                  (env : _) ->  -- If there are multiple envs, this
+                                -- could mean that some don't extend
+                                -- under *simplify* to a result k1
+                                -- such that k0 -> k1 -> k.  The
+                                -- latter may have made a different
+                                -- choice of env in its facts.
+                                -- (Delete this if it turns out
+                                -- wrong.)
+                      k { kfacts =
+                              map (instUpdateFact env (permOfSidList (prob k)))
+                                      (kfacts k0) }
+
+-- Node ordering weakening
+
+-- To weaken, create a candidate for each element in the current
+-- ordering, which is already the result of a transitive reduction.
+-- Weaken by computing the transitive closure of the ordering, and
+-- then remove the selected element from the current ordering.  After
+-- computing the transitive closure, filter out the edges that are not
+-- well ordered, i.e. originate at a reception node or terminate at a
+-- transmission node.  Also, filter out edges that link nodes in the
+-- same strand.  The preskeleton constructor function performs a
+-- transitive reduction on the generated ordering.
+
+weakenOrderings :: Preskel -> [Candidate]
+weakenOrderings k =
+    map (weakenOrdering k) (orderings k)
+
+weakenOrdering :: Preskel -> Pair -> Candidate
+weakenOrdering k p =
+    weaken k p (L.delete p (tc k))
+
+weaken :: Preskel -> Pair -> [Pair] -> Candidate
+weaken k p orderings =
+    addIdentity k'
+    where
+      k' = newPreskel (gen k) (shared k) (insts k) orderings (knon k)
+           (kpnon k) (kunique k) (kuniqgen k) (kabsent k) (kprecur k)
+           (kgenSt k) (kconf k) (kauth k) (kfacts k) (kpriority k)
+           (Generalized (Weakened p)) [] (pprob k) (prob k) (pov k)
+
+-- Origination assumption forgetting
+
+-- Delete each non-originating term that is not specified by a
+-- role.  Do the same for each uniquely-originating term.
+
+forgetAssumption :: Preskel -> [Candidate]
+forgetAssumption k =
+    forgetUniqueTerm k ++ forgetNonTerm k ++ forgetPnonTerm k ++
+    forgetUniqgenTerm k
+
+-- Non-originating terms
+
+forgetNonTerm :: Preskel -> [Candidate]
+forgetNonTerm k =
+    map (addIdentity . delNon) (skelNons k)
+    where
+      delNon t =
+          renewPreskel
+          $ k { knon = L.delete t (knon k),
+                operation = Generalized (Forgot t), krules = [] }
+
+skelNons :: Preskel -> [Term]
+skelNons k =
+    filter (flip notElem ru) (knon k)
+    where
+      ru = [u | i <- insts k, u <- inheritRnon i]
+
+-- Penetrator non-originating terms
+
+forgetPnonTerm :: Preskel -> [Candidate]
+forgetPnonTerm k =
+    map (addIdentity . delPnon) (skelPnons k)
+    where
+      delPnon t =
+          renewPreskel
+          $ k { kpnon = L.delete t (kpnon k),
+                operation = Generalized (Forgot t), krules = [] }
+
+skelPnons :: Preskel -> [Term]
+skelPnons k =
+    filter (flip notElem ru) (kpnon k)
+    where
+      ru = [u | i <- insts k, u <- inheritRpnon i]
+
+-- Uniquely-originating terms
+
+forgetUniqueTerm :: Preskel -> [Candidate]
+forgetUniqueTerm k =
+    map (addIdentity . delUniq) (skelUniques k)
+    where
+      delUniq t =
+          renewPreskel
+          $ k { kunique = L.delete t (kunique k),
+                operation = Generalized (Forgot t),
+                krules = [] }
+
+skelUniques :: Preskel -> [Term]
+skelUniques k =
+    filter (flip notElem ru) (kunique k)
+    where
+      ru = [u | i <- insts k, u <- inheritRunique i]
+
+-- Uniquely-generating terms
+
+forgetUniqgenTerm :: Preskel -> [Candidate]
+forgetUniqgenTerm k =
+    map (addIdentity . delUgen) (skelUniqgens k)
+    where
+      delUgen t =
+          k { kuniqgen = L.delete t (kuniqgen k),
+              operation = Generalized (Forgot t), krules = [] }
+
+skelUniqgens :: Preskel -> [Term]
+skelUniqgens k =
+    filter (flip notElem ru) (kuniqgen k)
+    where
+      ru = [u | i <- insts k, u <- inheritRuniqgen i]
+
+-- Variable separation
+
+-- A location is a strand, a role variable, and a position in the term
+-- associated with the role variable.
+
+-- step one: extract places
+--
+-- for each maplet in each environment in each strand
+--   for each variable V in the range of the maplet
+--     let P be the places at which V occurs
+--     associate V with the location described by each element in P
+--
+-- step two: generate preskeletons
+--
+-- for each variable V in the skeleton K
+--  let V' be a clone of V
+--  let L be the set of locations associated with V from above
+--  for each subset L' of L
+--    for each instance I in K
+--      update the environment of I by replacing V' at the locations
+--      given by L' that refer to I, and use the modified environment
+--      to update the instance
+--    let K' be the result of updating instances in K as above
+--    if V occurs in non, add terms with V replaced by V' to
+--      the non's of K'
+--    if V occurs in unique, add terms with V replaced by V'
+--      to the unique's of K'
+--    add K' to the list of generated preskeletons
+
+separateVariables :: Preskel -> [Candidate]
+separateVariables k =
+    do
+      v <- kvars k
+      separateVariable k (extractPlaces k) v
+
+-- A location is a strand, a role variable, and a position in the term
+-- associated with the role variable.
+
+type Location = (Sid, Term, Place)
+
+-- Returns a list of pairs.  For each occurrence of a preskeleton
+-- variable in every instance, there is a pair where the first element
+-- is the variable, and the second as the location at which it occurs.
+extractPlaces :: Preskel ->
+                 [(Term, Location)]
+extractPlaces k =
+    [ (var, (sid s, v, p)) |
+      s <- strands k,
+      (v, t) <- instAssocs (inst s),
+      var <- foldVars (flip adjoin) [] t,
+      not (isExpr var), -- Filter out due to bugs in the algebra module
+      p <- places var t ]
+
+instAssocs :: Instance -> [(Term, Term)]
+instAssocs i =
+    reify (rvars (role i)) (env i)
+
+-- For each variable, generate candidates by generating a fresh
+-- variable for subsets of the locations associated with the variable.
+separateVariable :: Preskel -> [(Term, Location)] -> Term -> [Candidate]
+separateVariable _ _ t | isChan t = [] -- Ignore channels
+separateVariable _ _ t | isLocn t = [] -- Ignore locations
+-- Ignore group elements because of bugs in the algebra module
+separateVariable _ _ t | isExpr t = []
+separateVariable k ps t =
+    sepVar (locsFor ps t)
+    where
+      sepVar [] = []
+      sepVar [_] = []
+      sepVar locs =
+          do
+            locs' <- parts locs
+            changeLocations k env gen'' t' locs'
+      (gen'', env) = matchAlways t t' (gen', emptyEnv)
+      parts locs = map (map (locs !!)) (subsets (length locs))
+      (gen', t') = clone (gen k) t
+
+-- Extract the locations for a given variable
+locsFor :: [(Term, Location)] -> Term -> [Location]
+locsFor ps t =
+    map snd (filter (\(t', _) -> t == t') (reverse ps)) -- Why reverse?
+
+matchAlways :: Term -> Term -> (Gen, Env) -> (Gen, Env)
+matchAlways t t' env =
+    case match t t' env of
+      e : _ -> e
+      [] -> error "Strand.matchAlways: bad match"
+
+-- Change the given locations and create the resulting preskeleton
+changeLocations :: Preskel -> Env -> Gen -> Term -> [Location] -> [Candidate]
+changeLocations k env gen t locs =
+    [addIdentity k0, addIdentity k1]
+    where
+      k0 = newPreskel gen' (shared k) insts' (orderings k) non pnon
+           unique0 uniqgen0 (kabsent k) (kprecur k)
+           (kgenSt k) (kconf k) (kauth k) (kfacts k) (kpriority k)
+           (Generalized (Separated t))
+           [] (pprob k) (prob k) (pov k)
+      k1 = newPreskel gen' (shared k) insts' (orderings k) non pnon
+           unique1 uniqgen1 (kabsent k) (kprecur k) (kgenSt k)
+           (kconf k) (kauth k) facts (kpriority k) (Generalized (Separated t))
+           [] (pprob k) (prob k) (pov k)
+      (gen', insts') = changeStrands locs t gen (strands k)
+      non = knon k ++ map (instantiate env) (knon k)
+      pnon = kpnon k ++ map (instantiate env) (kpnon k)
+      unique0 = kunique k ++ unique'
+      unique1 = map (instantiate env) (kunique k) ++ unique'
+      -- Ensure all role unique assumptions are in.
+      unique' = concatMap inheritRunique insts'
+      uniqgen0 = kuniqgen k ++ uniqgen'
+      uniqgen1 = map (instantiate env) (kuniqgen k) ++ uniqgen'
+      -- Ensure all role uniq gen assumptions are in.
+      uniqgen' = concatMap inheritRuniqgen insts'
+      facts = map (instFact env) (kfacts k)
+
+changeStrands :: [Location] -> Term -> Gen -> [Strand] -> (Gen, [Instance])
+changeStrands locs copy gen strands =
+    case foldMapM (changeStrand locs copy) gen strands of
+      i : _ -> i
+      [] -> error "Strand.changeStrands: bad strand build"
+
+-- Create an new environment incorporating changes, and from that,
+-- create the new strand.
+changeStrand :: [Location] -> Term -> Gen -> Strand -> [(Gen, Instance)]
+changeStrand locs copy gen s =
+    bldInstance (role i) trace'  gen'
+    where
+      i = inst s
+      (gen', env') = foldl f (gen, emptyEnv)
+             (map (changeMaplet locs copy (sid s)) (instAssocs i))
+      f env (v, t) = matchAlways v t env
+      trace' = map (evtMap $ instantiate env') trace
+      trace = take (height i) (rtrace (role i))
+
+-- Change a maplet
+changeMaplet :: [Location] -> Term -> Sid -> (Term, Term) -> (Term, Term)
+changeMaplet [] _ _ maplet = maplet
+changeMaplet ((s', v', p) : locs) copy s (v, t) =
+    changeMaplet locs copy s (v, t')
+    where
+      t' = if s' == s && v' == v then replace copy p t else t
+
+-- Return the set of subsets of natural numbers less than n
+subsets :: Int -> [[Int]]
+subsets n
+    | n < 0 = error $ "Utilities.subsets: Bad argument " ++ show n
+    | n == 0 = []
+    | otherwise =
+        [n - 1] : subset ++ map (n - 1 :) subset
+        where
+          subset = subsets (n - 1)
+
+-- Collapse a shape by unifying strands.
+
+collapse :: Preskel -> [Preskel]
+collapse k =
+    [k' | s <- strandids k, s' <- nats s,
+          k' <- collapseStrands k s s']
+
+collapseStrands :: Preskel -> Sid -> Sid -> [Preskel]
+collapseStrands k s s' =
+    do
+      (s, s', subst) <- unifyStrands k s s'
+      prs <- ksubst (k, k { operation = Collapsed s s', krules = [] },
+                     (0, 0), strandids k, emptySubst) subst
+      prs <- compress True prs s s'
+      prs <- skeletonize useThinningDuringCollapsing prs
+      return $ skel prs
+
+-- Facts
+
+data FTerm
+  = FSid Sid
+  | FTerm Term
+  deriving (Eq, Show)
+
+data Fact
+  = Fact String [FTerm]
+  deriving (Eq, Show)
+
+substFTerm :: Subst -> FTerm -> FTerm
+substFTerm s (FTerm t) = FTerm $ substitute s t
+substFTerm _ t = t
+
+substFact :: Subst -> Fact -> Fact
+substFact s (Fact name fs) = Fact name $ map (substFTerm s) fs
+
+instFTerm :: Env -> FTerm -> FTerm
+instFTerm s (FTerm t) = FTerm $ instantiate s t
+instFTerm _ t = t
+
+instFact :: Env -> Fact -> Fact
+instFact s (Fact name fs) = Fact name $ map (instFTerm s) fs
+
+updateFTerm :: (Sid -> Sid) -> FTerm -> FTerm
+updateFTerm f (FSid s) = FSid $ f s
+updateFTerm _ t = t
+
+updateFact :: (Sid -> Sid) -> Fact -> Fact
+updateFact f (Fact name fs) = Fact name $ map (updateFTerm f) fs
+
+instUpdateFTerm :: Env -> (Sid -> Sid) -> FTerm -> FTerm
+instUpdateFTerm _ f (FSid s) = FSid $ f s
+instUpdateFTerm e _ (FTerm t) = FTerm $ instantiate e t
+
+instUpdateFact :: Env -> (Sid -> Sid) -> Fact -> Fact
+instUpdateFact e f (Fact name fs) = Fact name $ map (instUpdateFTerm e f) fs
+
+instVars :: [Instance] -> [Term]
+instVars insts =
+    S.elems $ foldl addIvars S.empty insts
+
+factVars :: [Instance] -> [Fact] -> [Term]
+factVars insts facts =
+  S.elems $ S.difference fvars ivars
+  where
+    ivars = foldl addIvars S.empty insts
+    fvars = foldl addFvars S.empty facts
+
+addFvars :: Set Term -> Fact -> Set Term
+addFvars vs (Fact _ ts) =
+  foldl f vs ts
+  where
+    f vs (FSid _) = vs
+    f vs (FTerm t) = foldVars (flip S.insert) vs t
+
+{-- For debugging
+factVars :: Fact -> [Term] -> [Term]
+factVars (Fact _ ts) vs =
+  foldr f vs ts
+  where
+    f (FSid _) vs = vs
+    f (FTerm t) vs = addVars vs t
+
+chkFVars :: Preskel -> Preskel
+chkFVars k =
+  foldl f k (foldr factVars [] (kfacts k))
+  where
+    f k v
+      | elem v (kvars k) = k
+      | otherwise = error ("Bad var in fact " ++ show v)
+--}
+
+{-
+chkFacts :: Preskel -> Bool
+chkFacts k =
+  all checkFact (kfacts k)
+  where
+    checkFact (Fact _ ft) =
+      all checkFTerm ft
+    checkFTerm (FSid s) =
+      s < nstrands k
+    checkFTerm (FNode (s, _)) =
+      s < nstrands k
+    checkFTerm (FTerm _) = True
+
+-- Use this to find bad fact updates.
+chkFacts :: Preskel -> Bool
+chkFacts k =
+  all checkFact (kfacts k)
+  where
+    checkFact (Fact _ ft) =
+      all checkFTerm ft
+    checkFTerm (FSid s) | s >= nstrands k = error "Bad strand in fact"
+    checkFTerm (FNode (s, _)) | s >= nstrands k = error "Bad node in fact"
+    checkFTerm _ = True
+
+-}
+
+-- Security goals: satisfaction of atomic formulas
+
+-- Returns the environments that satisfy the antecedent
+-- but do not extend to satisfy any of the conclusions.
+--
+goalSat :: Preskel -> Goal -> (Goal, [(Gen, Env)])
+goalSat k g =
+  (g, [ (gen, e) |
+        (gen, e) <- conjoin (antec g) k (gen k, emptyEnv),
+        conclusion (gen, e) ])
+  where
+    conclusion ge = all (disjunct ge) $ consq g
+    disjunct ge (ebvs,a) = null $ conjoinEbvs a ebvs k ge
+
+sat :: Preskel -> [(Goal, [(Gen, Env)])]
+sat k =
+  map (goalSat k) (kgoals k)
+
+-- Conjunction
+
+type Sem = Preskel -> (Gen, Env) -> [(Gen, Env)]
+
+conjoin :: [AForm] -> Sem
+conjoin [] _ ge = [ge]
+conjoin (a: as) k ge =
+  do
+    ge <- checkSem (satisfy a []) k ge
+    conjoin as k ge
+
+conjoinEbvs :: [AForm] -> [Term] -> Sem
+conjoinEbvs [] _ _ ge = [ge]
+conjoinEbvs (a: as) ebvs k ge =
+    do
+    ge <- checkSem (satisfy a ebvs) k ge
+    conjoinEbvs as ebvs k ge
+
+-- Suppose a gen-env pair ge that satisfies the antecedent of a goal,
+-- but does not extend to satisfy any of the disjuncts on the
+-- conclusion.  We would like to know, for at least one disjunct of
+-- the conclusion, say the first, an atomic formula in that disjunct
+-- that cannot be satisfied.  unSatReport reports that.
+
+unSatReport :: Preskel -> Goal -> (Gen, Env) -> AForm
+unSatReport k g ge =
+    case varAtomLists of
+      [] -> AFact "false" []
+      (ebvs,as) : _ -> iter ebvs as ge
+          
+    where
+      varAtomLists = consq g
+                     
+      -- doesn't happen if e is a counterexample 
+      iter _ [] _ = AFact "true" [] 
+      iter ebvs (a : as) ge =
+          case satisfy a ebvs k ge of
+            [] -> a
+            ge' : _ -> iter ebvs as ge'
+
+-- Extends an environment (a variable assignment) according to the
+-- given atomic formula.  The second argument is the set of
+-- existentially bound variables, which we will use only in geq to
+-- handle adding identities involving the existentially bound
+-- variables.  
+satisfy :: AForm -> [Term] -> Sem
+satisfy (Length r z h) _ = glength r z h
+satisfy (Param r v i z t) _ = gparam r v i z t
+satisfy (Prec n n') _ = gprec n n'
+satisfy (Non t) _ = ggnon t
+satisfy (Pnon t) _ = ggpnon t
+satisfy (Uniq t) _ = gguniq t
+satisfy (UniqAt t n) _ = guniqAt t n
+satisfy (Ugen t) _ = gggen t
+satisfy (UgenAt t n) _ = gugenAt t n
+satisfy (GenStV t) _ = ggenstv t
+satisfy (Conf t) _ = ggconf t
+satisfy (Auth t) _ = ggauth t
+satisfy (AFact name fs) _ = gafact name fs
+satisfy (Equals t t') ebvs = geq ebvs t t'
+satisfy (Component t t') _ = gcomponent t t'
+satisfy (Commpair n n') _ = gcommpair n n'
+satisfy (SameLocn n n') _ = gsamelocn n n'
+satisfy (StateNode n) _ = gstateNode n
+satisfy (Trans (t, t')) _ = gafact "trans" [t, t']
+satisfy (LeadsTo n n') _ =
+    \k ge ->
+        do
+          ge <- satisfy (Commpair n n') [] k ge
+          ge <- satisfy (Prec n n') [] k ge
+          ge <- satisfy (StateNode n) [] k ge
+          -- Commpair entails StateNode n' too
+          return ge
+
+nodePairsOfSkel :: Preskel -> [Pair] -- Maybe ((Sid,Int),(Sid,Int))
+nodePairsOfSkel k =
+    let (g1,z1) = newVarDefault (gen k) "z1" "strd" in
+    let (g2,z2) = newVarDefault g1 "z2" "strd" in
+    let (g3,i1) = newVarDefault g2 "i1" "indx" in
+    let (g4,i2) = newVarDefault g3 "i2" "indx" in
+
+    (case mapM
+              (\(_,e) ->
+               tupleOfMaybeList
+               (maybeList
+                [strdLookup e z1, indxLookup e i1,
+                 strdLookup e z2, indxLookup e i2]))
+              (satisfy (LeadsTo (z1,i1) (z2,i2)) [] k (g4,emptyEnv)) of
+       Nothing -> []
+       Just l -> l)
+
+    where
+      maybeList [] = Just []
+      maybeList (Nothing : _) = Nothing
+      maybeList ((Just v) : l) =
+          case maybeList l of
+            Nothing -> Nothing
+            Just l' -> Just (v : l')
+
+      tupleOfMaybeList (Just [v1, v2, v3, v4]) = Just ((v1, v2), (v3, v4))
+      tupleOfMaybeList (Just _) = Nothing
+      tupleOfMaybeList Nothing = Nothing
+
+glengthExtendEnv :: Role -> Term -> Sid -> Int -> Instance -> (Gen,Env) -> [(Gen,Env)]
+glengthExtendEnv r z s h inst (g, e)
+    | h > height inst = []
+    | rname (role inst) == rname r = strdMatch z s (g, e)
+    | otherwise =
+        case bldInstance r (take h $ trace inst) g of -- See if z could have been an instance of r
+          [] -> []
+          _ -> strdMatch z s (g, e)
+
+checkEnv :: Preskel -> Env -> Bool
+checkEnv k e = strandBoundEnv e <= nstrands k
+
+checkKFacts :: Preskel -> Bool
+checkKFacts k =
+    let bnd = nstrands k in
+    let fterms = concatMap (\(Fact _ fts) -> fts) (kfacts k) in
+    let strInds = L.map isStr fterms in
+    L.all (\i -> i < bnd) strInds
+    where
+      isStr (FSid i) = i
+      isStr _ = 0
+
+checkBoth :: Preskel -> (Gen, Env) -> Bool
+checkBoth k (_, e) =
+    checkEnv k e && checkKFacts k
+
+checkQuietly :: Preskel -> (Gen, Env) -> (Gen, Env)
+checkQuietly k (g, e)
+    | checkBoth k (g, e) = (g, e)
+    | otherwise = localSignal k (g, e)
+
+checkSem :: Sem -> Sem
+checkSem f k (g, e)
+    | checkBoth k (g, e) =
+        L.map (checkQuietly k) $ f k (g, e)
+    | otherwise = [localSignal k (g, e)]
+
+localSignal :: Preskel -> (Gen, Env) -> (Gen, Env)
+localSignal _ (g, e) =
+--    zP "yiao " (error ("localSignal: Env "  ++ (show e)))
+  (g, e)
+
+-- Role length predicate
+-- r and h determine the predicate, which has arity one.
+glength :: Role -> Term -> Term -> Sem
+glength r z ht k (g, e) =
+  case indxLookup e ht of
+    Nothing -> []
+    Just h  ->
+      case strdLookup e z of
+        Nothing ->
+          do
+            (s, inst) <- zip [0..] $ insts k
+            glengthExtendEnv r z s h inst (g, e)
+        Just s | s < nstrands k ->
+          let inst = insts k !! s in
+          glengthExtendEnv r z s h inst (g, e)
+        _ -> []
+
+-- Parameter predicate
+
+-- r and t determine the predicate, which has arity two.  t must be a
+-- variable declared in role r. h is the length of the smallest prefix
+-- of the role's trace that contains t.
+gparam :: Role -> Term -> Int -> Term -> Term -> Sem
+gparam r t h z t' k (g, e) =
+    case strdLookup e z of
+      Nothing ->
+          do
+            (s, inst) <- zip [0..] $ insts k
+            paramMatch r t h z s t' inst (g, e)
+      Just s | s < nstrands k  ->
+                 let inst = insts k !! s in
+                 paramMatch r t h z s t' inst (g, e)
+      _ -> []
+
+paramMatch :: Role -> Term -> Int -> Term -> Int -> Term -> Instance -> (Gen,Env) ->  [(Gen,Env)]
+paramMatch r pname h z s t' inst (g, e)
+    | h > height inst = []
+    | rname (role inst) == rname r =
+        do
+          ge <- strdMatch z s (g, e)
+          match t' (instantiate (env inst) pname) ge
+    | otherwise =
+        do
+          (g, inst) <- bldInstance r (take h $ trace inst) g
+          ge <- strdMatch z s (g, e)
+          match t' (instantiate (env inst) pname) ge
+
+-- Node precedes
+-- This looks at the transitive closure of the ordering graph.
+gprec :: NodeTerm -> NodeTerm -> Sem
+gprec n n' k (g, e) =
+  case (nodeLookup e n, nodeLookup e n') of
+    (Just p, Just p')
+      | inSkel k p && inSkel k p' &&
+        (strandPrec p p' || elem (p, p') tc) -> [(g, e)]
+    _ ->
+      do
+        (p, p') <- tc
+        (g, e) <- nodeMatch n p (g, e)
+        nodeMatch n' p' (g, e)
+  where
+    tc = kgpOrdsAll k
+         -- map graphPair $ graphCloseAll $ graphEdges $ strands k
+
+inSkel :: Preskel -> (Int, Int) -> Bool
+inSkel k (s, i) =
+  s >= 0 && s < nstrands k && i >= 0 && i < height (insts k !! s)
+
+strandPrec :: Node -> Node -> Bool
+strandPrec (s, i) (s', i')
+  | s == s' && i < i' = True
+  | otherwise = False
+
+nodeLookup :: Env -> NodeTerm -> Maybe Node
+nodeLookup e (z, t) =
+  do
+    s <- strdLookup e z
+    i <- indxLookup e t
+    return (s, i)
+
+nodeMatch :: NodeTerm -> Node -> (Gen, Env) -> [(Gen, Env)]
+nodeMatch (z, t) (s, j) (g, e) =
+  do
+    (g,e) <- match t (indxOfInt j) (g, e)
+    case indxLookup e t of
+        Just i -> (case i == j of
+                     True -> strdMatch z s (g, e)
+                     False -> [])
+        Nothing -> []
+
+-- Non-origination
+ggnon :: Term -> Sem
+ggnon t k e =
+  do
+    t' <- knon k
+    match t t' e
+
+-- Penetrator non-origination
+ggpnon :: Term -> Sem
+ggpnon t k e =
+  do
+    t' <- kpnon k
+    match t t' e
+
+-- Unique origination
+gguniq :: Term -> Sem
+gguniq t k e =
+  do
+    t' <- kunique k
+    match t t' e
+
+-- Unique origination at a node
+guniqAt :: Term -> NodeTerm -> Sem
+guniqAt t (z, ht) k (g,e) =
+  do
+    (t', ls) <- korig k
+    case indxLookup e ht of
+      Just i -> (case ls of
+                   [(s, j)] | i == j ->
+                                do
+                                  e <- match t t' (g,e)
+                                  strdMatch z s e
+                   _ -> [])
+      Nothing -> []
+
+-- Unique generation
+gggen :: Term -> Sem
+gggen t k e =
+  do
+    t' <- kuniqgen k
+    match t t' e
+
+-- Unique origination at a node
+gugenAt :: Term -> NodeTerm -> Sem
+gugenAt t (z, ht) k (g,e) =
+  do
+    (t', ls) <- kugen k
+    case indxLookup e ht of
+      Just i -> (case ls of
+                   [(s, j)] | i == j ->
+                                do
+                                  e <- match t t' (g,e)
+                                  strdMatch z s e
+                   _ -> [])
+      Nothing -> []
+
+ggenstv :: Term -> Sem
+ggenstv t k e =
+  do
+    t' <- kgenSt k
+    match t t' e
+
+-- Confidential channel
+ggconf :: Term -> Sem
+ggconf t k e =
+  do
+    t' <- kconf k
+    match t t' e
+
+-- Autheticated channel
+ggauth :: Term -> Sem
+ggauth t k e =
+  do
+    t' <- kauth k
+    match t t' e
+
+-- Facts
+gafact :: String -> [Term] -> Sem
+gafact name fs k e =
+  do
+    Fact name' ts <- kfacts k
+    case name == name' of
+      True -> fmatchList fs ts e
+      False -> []
+
+fmatchList :: [Term] -> [FTerm] -> (Gen, Env) -> [(Gen, Env)]
+fmatchList [] [] e = [e]
+fmatchList (f : fs) (t : ts) e =
+  do
+    e <- fmatch f t e
+    fmatchList fs ts e
+fmatchList _ _ _ = []
+
+fmatch :: Term -> FTerm -> (Gen, Env) -> [(Gen, Env)]
+fmatch z (FSid s) e =
+  strdMatch z s e
+fmatch t (FTerm t') e =
+  match t t' e
+
+-- Equality
+geq :: [Term] -> Term -> Term -> Sem
+geq ebvs t t' _ (g, e)
+  -- Ensure all variables in t and t' are either in the domain of e,
+  -- or else are among the existentially bound variables ebvs.
+  -- This always happens for goals because they must be role specific
+  -- but it is not always true for rules.
+  | not (unmatchedVarsWithin e t ebvs) = 
+      error ("In a rule equality check, " ++
+             "cannot find a binding for some variable in " ++ (show t) ++
+             " with ebvs " ++ (show ebvs))
+  | not (unmatchedVarsWithin e t' ebvs) =
+      error ("In a rule equality check, " ++
+             "cannot find a binding for some variable in " ++ (show t') ++
+             "with ebvs " ++ (show ebvs))
+
+  | ti == ti' = [(g, e)]
+  | not (null ebvs) =
+      filter (\(_,e') ->      -- where all modified vars are ebvs
+                  envsAgreeOutside e e' ebvs)
+      (L.map (\(g,s) ->
+                 (g, substUpdate e s)) -- update the env with the
+                                       -- subst
+      $ unify t t' (g, emptySubst))
+
+  | otherwise = []
+  where
+    ti = instantiate e t
+    ti' = instantiate e t'
+
+{--
+  do
+    subst <- unify t t' (g, emptySubst)
+    return (fst subst, substUpdate e (snd subst))
+--} 
+
+gcomponent :: Term -> Term -> Sem
+gcomponent t t' k (g, e) =
+    let result = foldl (\ges cmpt -> (geq [] t cmpt k (g, e)) ++ ges)
+                 []
+                 (components t') in
+    --    zP ("> " ++ (show (length result))) result
+    result
+
+--   satisfy (StateNode n) [] = gstateNode n
+
+isStateChMsg :: ChMsg -> Bool
+isStateChMsg (Plain _) = False
+isStateChMsg (ChMsg c _) = isLocn c
+
+nodeIsStateNode :: Preskel -> Node -> Bool
+nodeIsStateNode k p =
+    case dirChMsgOfNode p k of
+      Nothing -> False
+      Just (_,chm) -> isStateChMsg chm
+
+gstateNode :: NodeTerm -> Sem
+gstateNode n k (g, e) =
+    case nodeLookup e n of
+      Just p ->
+          case nodeIsStateNode k p of
+            True -> [(g,e)]
+            False -> []
+      Nothing ->
+          do
+            p <- filter (nodeIsStateNode k) $ genNodes k
+            (g,e) <- nodeMatch n p (g,e)
+            return (g, e)
+
+nullSem :: Sem
+nullSem _ _ = []
+
+chMsgMatch :: ChMsg -> ChMsg -> Sem
+chMsgMatch chmsg chmsg' k e =
+    case chmsg of
+      Plain m ->
+          (case chmsg' of
+             Plain m' ->
+                 case m == m' of
+                   True -> [e]
+                   False -> nullSem k e
+             ChMsg _ _ -> nullSem k e)
+      ChMsg c m ->
+          (case chmsg' of
+             Plain _ -> nullSem k e
+             ChMsg c' m' ->
+                 case c == c' && m == m' of
+                   True -> [e]
+                   False -> nullSem k e)
+
+dirMsgMatch :: Node -> Node -> Sem
+dirMsgMatch p p' k e =
+    case dirChMsgOfNode p k of
+      Nothing -> []
+      Just (Recv, _) -> []
+      Just (Send, chmsg) ->
+          case dirChMsgOfNode p' k of
+            Nothing -> []
+            Just (Send, _) -> []
+            Just (Recv, chmsg') ->
+                chMsgMatch chmsg chmsg' k e
+
+gcommpair :: NodeTerm -> NodeTerm -> Sem
+gcommpair n n' k (g, e) =
+    case (nodeLookup e n, nodeLookup e n') of
+      (Just p, Just p') -> dirMsgMatch p p' k (g, e)
+      (Just p, Nothing) ->
+          do
+            p' <- genNodes k
+            (g, e) <- nodeMatch n' p' (g, e)
+            dirMsgMatch p p' k (g, e)
+      (Nothing, Just p') ->
+          do
+            p <- genNodes k
+            (g, e) <- nodeMatch n p (g, e)
+            dirMsgMatch p p' k (g, e)
+      (Nothing, Nothing) ->
+          do
+            p <- genNodes k
+            (g, e) <- nodeMatch n p (g, e)
+            p' <- genNodes k
+            (g, e) <- nodeMatch n' p' (g, e)
+            dirMsgMatch p p' k (g, e)
+
+--   nodeSameLocn :: Node -> Node -> Preskel -> Bool
+--   nodeSameLocn p p' k =
+--       case dirChMsgOfNode p k of
+--         Nothing -> False
+--         Just (_, chmsg) ->
+--             case dirChMsgOfNode p' k of
+--               Nothing -> False
+--               Just(_, chmsg') ->
+--                   case (chmsg,chmsg') of
+--                     (Plain _,_) -> False
+--                     (_,Plain _) -> False
+--                     (ChMsg c _, ChMsg c' _)
+--                         | c == c' && isLocn c -> True
+--                         | otherwise -> False
+
+nodeLocn :: Node -> Preskel -> [Term]
+nodeLocn (s,i) k =
+    case dirChMsgOfNode (s,i) k of
+      Nothing -> []
+      Just (_, Plain _) -> []
+      Just (_, ChMsg c _)
+        | isLocn c -> [c]
+        | otherwise -> []
+
+glocnSem :: NodeTerm -> Preskel -> (Gen,Env) -> [(Term,(Gen,Env))]
+glocnSem n k (g, e) =
+    case nodeLookup e n of
+      Just p ->
+          do
+            loc <- nodeLocn p k
+            return (loc, (g, e))
+      Nothing ->
+          do
+            p <- genNodes k
+            loc <- nodeLocn p k
+            (g, e) <- nodeMatch n p (g, e)
+            return (loc, (g,e))
+
+gsamelocn :: NodeTerm -> NodeTerm -> Sem
+gsamelocn n n' k (g, e) =
+    foldl
+    (\so_far (l, (g, e)) ->
+         (foldl
+          (\so_far' (l',(g',e')) ->
+               case l' == l of
+                 True -> (g',e') : so_far'
+                 False -> so_far')
+          []
+          (glocnSem n' k (g, e)))
+         ++ so_far)
+    []
+    (glocnSem n k (g, e))
+
+-- Rules
+
+--   skelsIsomorphic :: Preskel -> Preskel -> Bool
+--   skelsIsomorphic k k' =
+--       (isomorphic (gist k) (gist k'))   -- previously k == k' || (isomorphic (gist k) (gist k'))
+
+--   gistKnown :: Gist -> [(Preskel,Gist)] -> Bool
+--   gistKnown g  =
+--       any (\(_,g') -> isomorphic g g')
+--
+--   setModuloIso :: [Preskel] -> [Preskel]
+--   setModuloIso ks =
+--       ks'
+--       where
+--         (ks',_) =
+--             unzip (foldl
+--                    (\soFar (k,g) ->
+--                         case gistKnown g soFar of
+--                           True -> soFar
+--                           False -> (k,g) : soFar)
+--                    []
+--                    $ L.zip ks (map gist ks))
+
+{--
+parFoldr :: (a -> b -> b) -> b -> [a] -> b
+parFoldr _ b [] = b
+parFoldr f b (a : as) =
+    par b' (f a b')
+    where
+      b' = parFoldr f b as
+--}
+
+-- Suppose that eqRel is an equivalence relation, and one would like
+-- to obtain sets modulo eqRel.  I.e. given a list l, one would like a
+-- list l' such that everything in l bears the relation eqRel to
+-- something in l', and no two items in l' bear eqRel to each other.
+
+-- This procedure achieves that by a factoring the list by eqRel in
+-- parallel, ie reducing the left and right halves and then merging.
+
+mergeEqRel :: (a -> a -> Bool) -> [a] -> [a] -> [a]
+mergeEqRel eqRel as bs =
+    loop as []
+    where
+      loop [] keep = keep ++ bs
+      loop (a:rest) keep =
+          case any (eqRel a) bs of
+            True -> loop rest keep
+            False -> loop rest (a:keep)
+
+parFactor :: (a -> a -> Bool) -> [a] -> [a]
+parFactor _ [] = []
+parFactor _ [a] = [a]
+parFactor eqRel [a,b] =
+    case eqRel a b of
+      True -> [b]
+      False -> [a,b]
+
+parFactor eqRel as =
+    mergeEqRel eqRel leftM rightM
+    where
+      (left,right) = L.splitAt ((L.length as) `div` 2) as
+      leftM = par rightM (parFactor eqRel left)
+      rightM = (parFactor eqRel right)
+
+-- Given a list of preskeletons, return a maximal sublist containing
+-- no isomorphic members.
+
+-- Computed in parallel via the pars in parFactor.
+
+factorIsomorphic :: [Preskel] -> [Preskel]
+factorIsomorphic =
+    parFactor
+    (\k1 k2 -> isomorphic (gist k1) (gist k2))
+
+mergeIsomorphic :: [Preskel] -> [Preskel] -> [Preskel]
+mergeIsomorphic =
+    mergeEqRel
+    (\k1 k2 -> isomorphic (gist k1) (gist k2))
+
+factorIsomorphicPreskels :: [Preskel] -> [Preskel]
+factorIsomorphicPreskels = factorIsomorphic
+
+-- Try simplifying k if possible
+simplify :: Preskel -> [Preskel]
+simplify k =
+    if checkNullary k
+    then
+        case rewrite $ withCoreFacts k of
+          Nothing -> [k]
+          Just ks -> ks
+    else
+        []
+
+{--
+  case rewriteNullary k of
+    Nothing -> []               -- Big win:  false consequence
+    Just k ->
+        case rewrite $ withCoreFacts k of
+          Nothing -> [k]
+          Just ks -> ks
+--}
+checkNullary :: Preskel -> Bool
+checkNullary k =
+    L.and $ map inapplicable nrs
+    where
+      nrs = nullaryrules $ protocol k
+      inapplicable nr = null $ conjoin (antec $ rlgoal nr) k (gen k, emptyEnv)
+
+{--
+rewriteNullary :: Preskel -> Maybe Preskel
+rewriteNullary k =
+    loop nrs
+    where
+      nrs = nullaryrules $ protocol k
+      loop [] = Just k
+      loop (nr : rest) =
+          case conjoin (antec $ rlgoal nr) k (gen k, emptyEnv) of
+            [] -> loop rest     -- antecedent: no satisfying instances
+            _  -> Nothing       -- satisfying instances, hence false!
+--}
+
+data Ternary k = Unsat | Unch | Found k
+
+rewriteUnary :: Preskel -> Ternary Preskel
+rewriteUnary k =
+    loop k urs False False
+    where
+      urs = unaryrules $ protocol k
+      loop _ [] False False = Unch  -- (zP "u" Unch)
+      loop k [] False True =
+          case preskelWellFormed k of
+            True -> Found k     --  (zP "_" )
+            False -> Unsat
+      loop k [] True b = loop k urs False b
+      loop k (ur : rest) b b' =
+          case tryRule k ur of
+            [] -> loop k rest b b'
+            vas -> -- zP ("unary " ++ (rlname ur))
+                   (case rewriteUnaryOne k ur vas of
+                      Nothing -> Unsat -- (zP "?" Unsat)
+                      Just k' -> loop k' -- (zP "/" k')
+                                 rest True True)
+
+-- only interested in case ur is unary:
+
+rewriteUnaryOne :: Preskel -> Rule -> [(Gen, Env)] -> Maybe Preskel
+rewriteUnaryOne k ur vas =
+    case consq $ rlgoal ur of
+      -- First the case where it's really unary
+      [([],conjuncts)] ->
+          foldM (rewriteUnaryOneOnce (rlname ur) conjuncts) k vas
+      _ ->
+          fail ("rewriteUnaryOne:  Hey, not really unary, rule " ++ (rlname ur))
+    -- Screwed up set of unary rules in the last case.  Should never
+    -- occur.
+
+rewriteUnaryOneOnce :: String -> [AForm] -> Preskel -> (Gen, Env) -> Maybe Preskel
+rewriteUnaryOneOnce _ [] k _ = Just k
+rewriteUnaryOneOnce rn (a : as) k ge =
+    case checkURewrite (urwt rn a) k ge of
+      None -> Nothing
+      Failing msg -> fail msg
+      Some (k,ge) ->
+          case preskelWellFormed k of
+            False -> Nothing
+            True ->
+                case toSkeleton False (f k) of
+                  []   -> Nothing
+                  [k'] -> rewriteUnaryOneOnce rn as k' ge
+                  l    -> fail ("rewriteUnaryOneOnce:  too many results from toSkeleton ("
+                                ++ (show (L.length l)) ++ ")")
+    where
+      f k = k { krules = L.nub $ rn : krules k }
+
+data URewriteVal = None | Some (Preskel, (Gen, Env)) | Failing String
+
+type URewrite = Preskel -> (Gen, Env) -> URewriteVal
+
+checkURewrite :: URewrite -> URewrite
+checkURewrite f k (g, e)
+    | checkBoth k (g, e) =
+        case f k (g, e) of
+          None -> None
+          Failing st -> Failing st
+          Some (k', (g', e'))
+              | checkBoth k' (g', e') -> Some (k', (g', e'))
+              | otherwise -> Some (k', (localSignal k' (g', e')))
+    | otherwise = Some (k, (localSignal k (g, e)))
+
+uconjoin :: String -> [AForm] -> URewrite
+uconjoin _ [] k (g, e) = Some (k, (g, e))
+uconjoin rule (af : rest) k (g, e) =
+    case checkURewrite (urwt rule af) k (g, e) of
+      Some (k', (g', e')) -> uconjoin rule rest k' (g', e')
+      result -> result
+
+urwt :: String -> AForm -> URewrite
+urwt rule (Length r z ht) = urlength rule r z ht
+urwt rule (Param r v i z t) = urparam rule r v i z t
+urwt rule (Prec n n') = urprec rule n n'
+urwt rule (Non t) = urnon rule t
+urwt rule (Pnon t) = urpnon rule t
+urwt rule (Uniq t) = uruniq rule t
+urwt rule (UniqAt t n) = uruniqAt rule t n
+urwt rule (Ugen t) = urugen rule t
+urwt rule (UgenAt t n) = urugenAt rule t n
+urwt rule (GenStV t) = urgenst rule t
+urwt rule (Conf t) = urconf rule t
+urwt rule (Auth t) = urauth rule t
+urwt rule (AFact name fs) = urafact rule name fs
+urwt rule (Equals t t') = ureq rule t t'
+urwt rule (Component t t') =
+    \_ _ -> error ("In rule " ++ rule ++ ", component in conclusion with" ++
+                                  (show t) ++ ",  " ++ (show t'))
+urwt rule (Commpair n n') = urcommpair rule n n'
+urwt rule (SameLocn n n') = ursamelocn rule n n'
+urwt rule (StateNode n) = urstateNode rule n
+urwt rule (Trans (t,t')) = urafact rule "trans" [t, t']
+urwt rule (LeadsTo n n') =
+    uconjoin rule [(Commpair n n'), (Prec n n'), (StateNode n)]
+    -- Commpair and StateNode n entails StateNode n' too
+
+urlength :: String -> Role -> Term -> Term -> URewrite
+urlength name r z ht k (g, e) =
+  case indxLookup e ht of
+    Nothing -> Failing ("In rule " ++ name ++ ", role length did not get a height")
+    Just h ->
+      case length (rtrace r) < h of
+         True -> None
+         False ->
+           (case strdLookup e z of
+            Just s ->                 -- Try to displace
+              case rDisplace e k' ns s of
+                []              -> None
+                [kge] -> Some kge
+                l     ->
+                    error ("urlength:  Hey, rDisplace multiple results (" ++
+                           (show (length l)) ++ ")")
+              where
+                k' = addStrand g k r h
+                ns = nstrands k
+            Nothing ->
+                Failing ("urlength:  Hey, strand variable unbound " ++ (show z)))
+
+urparam :: String -> Role -> Term -> Int -> Term -> Term -> URewrite
+urparam rule r v h z t k (g, e) =
+  case strdLookup e z of
+    Just s ->
+        do
+          case rDisplace e k' ns s of
+            []               -> None
+            [(k, ge)]        ->
+                (case rParam name k ge t t' of
+                   []        -> None
+                   [kge]  -> Some kge
+                   l         -> error ("urparam:  Hey, rParam multiple results (" ++
+                                       (show (length l)) ++ ")"))
+            l                ->
+                error ("urparam:  Hey, rDisplace multiple results (" ++
+                       (show (length l)) ++ ")")
+        where
+          inst = strandInst k s
+          t' = instantiate (env inst) v
+          k' = addStrand g k r h
+          ns = nstrands k
+    Nothing ->
+        Failing ("In rule " ++ rule ++
+                 ", parameter predicate did not get a strand")
+
+prevIn :: Instance -> Int -> Maybe Int
+prevIn inst i =
+    case inbnd ((trace inst) !! i) of
+      Just _ -> Just i
+      Nothing -> if 0 < i then prevIn inst (i-1)
+                 else Nothing
+
+succOut :: Instance -> Int -> Maybe Int
+succOut inst i =
+    case outbnd ((trace inst) !! i) of
+      Just _ -> Just i
+      Nothing -> if (i+1) < height inst then succOut inst (i+1)
+                 else Nothing
+
+urprec :: String -> NodeTerm -> NodeTerm -> URewrite
+urprec rule (z, t) (z', t') k (g, e) =
+    case (strdLookup e z, strdLookup e z', indxLookup e t, indxLookup e t') of
+      (Just s, Just s', Just i, Just i')
+        | badIndex k s i || badIndex k s' i' -> None
+        | elem ((s, i), (s', i')) tc -> Some (k, (g, e))
+        | otherwise ->
+            case (succOut ((insts k) !! s) i,
+                  prevIn ((insts k) !! s') i') of
+              (Just i, Just i') ->
+                  case normalizeOrderings True (((s, i), (s', i')) : orderings k) of
+                    [] -> None
+                    [orderings'] ->
+                        let k' = newPreskel g (shared k) (insts k)
+                                 orderings' (knon k) (kpnon k)
+                                 (kunique k) (kuniqgen k) (kabsent k)
+                                 (kprecur k) (kgenSt k) (kconf k) (kauth k)
+                                 (kfacts k) (kpriority k) (operation k)
+                                 (krules k) (pprob k) (prob k) (pov k) in
+                        Some (k', (gen k, e))
+                    l -> error ("urprec:  normalizeOrderings returned several orderings (" ++
+                                (show (length l)) ++ ")")
+              (_,_) -> None
+      _ -> Failing ("In rule " ++ rule ++ ", precedence did not get a strand or a height")
+    where
+      tc = kgpOrds k
+          -- map graphPair $ graphClose $ graphEdges $ strands k
+    -- Observe here that we do not need graphCloseAll, since absent
+    -- orderings that lie on the same strand are irreparable.
+
+urnon :: String -> Term -> URewrite
+urnon rule t k (g, e) =
+    case matched e t of
+      True
+        | elem t' (knon k) -> Some (k, (g, e))
+        | not $ isAtom t' -> None
+        | otherwise ->
+            Some (k', (g, e))
+          where
+            k' = newPreskel
+                     g (shared k) (insts k) (orderings k) (t' : knon k)
+                     (kpnon k) (kunique k) (kuniqgen k) (kabsent k)
+                     (kprecur k) (kgenSt k) (kconf k) (kauth k) (kfacts k)
+                     (kpriority k) (operation k) (krules k) (pprob k)
+                     (prob k) (pov k)
+      False ->
+          Failing ("In rule " ++ rule ++ ", non did not get a term")
+    where
+      t' = instantiate e t
+
+urpnon :: String -> Term -> URewrite
+urpnon rule t k (g, e) =
+    case matched e t of
+      True
+        | elem t' (kpnon k) -> Some (k, (g, e))
+        | not $ isAtom t' -> None
+        | otherwise ->
+            Some (k', (g, e))
+          where
+            k' = newPreskel
+                     g (shared k) (insts k) (orderings k) (knon k)
+                     (t' : kpnon k) (kunique k) (kuniqgen k) (kabsent k)
+                     (kprecur k) (kgenSt k) (kconf k) (kauth k) (kfacts k)
+                     (kpriority k) (operation k) (krules k) (pprob k)
+                     (prob k) (pov k)
+      False ->
+          Failing ("In rule " ++ rule ++ ", pnon did not get a term")
+    where
+      t' = instantiate e t
+
+uruniq :: String -> Term -> URewrite
+uruniq rule t k (g, e) =
+    case matched e t of
+      True
+        | elem t' (kunique k) -> Some (k, (g, e))
+        | not $ isAtom t' -> None
+        | otherwise ->
+            Some (k', (g, e))
+          where
+            k' = newPreskel
+                     g (shared k) (insts k) (orderings k) (knon k)
+                     (kpnon k) (t' : kunique k) (kuniqgen k) (kabsent k)
+                     (kprecur k) (kgenSt k) (kconf k) (kauth k) (kfacts k)
+                     (kpriority k) (operation k) (krules k) (pprob k)
+                     (prob k) (pov k)
+      False ->
+          Failing ("In rule " ++ rule ++ ", uniq did not get a term")
+    where
+      t' = instantiate e t
+
+uruniqAt :: String -> Term -> NodeTerm -> URewrite
+uruniqAt rule t (z, ht) k (g, e) =
+  case (matched e t, strdLookup e z, indxLookup e ht) of
+    (False, _, _) ->
+      Failing ("In rule " ++ rule ++ ", uniq-at did not get a term")
+    (_, Nothing, _) ->
+      Failing ("In rule " ++ rule ++ ", uniq-at did not get a strand")
+    (_, _, Nothing) ->
+        Failing ("In rule " ++ rule ++ ", uniq-at did not get an index")
+    (True, Just s, Just i)
+      | elem (t', [(s, i)]) (korig k) -> Some (k, (g, e))
+      | not $ isAtom t'               -> None
+      | i >= height (strandInst k s)  ->
+          None                  -- Definitely None, since any
+                                -- affirmative answer has to be
+                                -- preserved by homomorphisms
+      | checkOrigination t'
+        (trace $ (insts k) !! s) i    ->
+          let k' = newPreskel
+                  g (shared k) (insts k) (orderings k) (knon k) (kpnon k)
+                  (t' : kunique k) (kuniqgen k) (kabsent k) (kprecur k)
+                  (kgenSt k) (kconf k) (kauth k) (kfacts k)
+                  (kpriority k) (operation k) (krules k) (pprob k)
+                  (prob k) (pov k) in
+          Some (k', (g, e))
+      | otherwise ->
+          Failing ("In rule " ++ rule ++ ", uniq-at not at an origination")
+      where
+        t' = instantiate e t
+
+urugen :: String -> Term -> URewrite
+urugen rule t k (g, e) =
+    case matched e t of
+      True
+        | elem t' (kuniqgen k) -> Some (k, (g, e))
+        | not $ isAtom t' -> None
+        | otherwise ->
+            Some (k', (g, e))
+          where
+            k' = newPreskel
+                     g (shared k) (insts k) (orderings k) (knon k)
+                     (kpnon k) (kunique k) (t' : kuniqgen k) (kabsent k)
+                     (kprecur k) (kgenSt k) (kconf k) (kauth k) (kfacts k)
+                     (kpriority k) (operation k) (krules k) (pprob k)
+                     (prob k) (pov k)
+      False ->
+          Failing ("In rule " ++ rule ++ ", ugen did not get a term")
+    where
+      t' = instantiate e t
+
+urugenAt :: String -> Term -> NodeTerm -> URewrite
+urugenAt rule t (z, ht) k (g, e) =
+  case (matched e t, strdLookup e z, indxLookup e ht) of
+    (False, _, _) ->
+      Failing ("In rule " ++ rule ++ ", ugen-at did not get a term")
+    (_, Nothing, _) ->
+      Failing ("In rule " ++ rule ++ ", ugen-at did not get a strand")
+    (_, _, Nothing) ->
+        Failing ("In rule " ++ rule ++ ", ugen-at did not get an index")
+    (True, Just s, Just i)
+      | elem (t', [(s, i)]) (korig k) -> Some (k, (g, e))
+      | not $ isAtom t'               -> None
+      | i >= height (strandInst k s)  ->
+          None                  -- Definitely None, since any
+                                -- affirmative answer has to be
+                                -- preserved by homomorphisms
+      | checkGeneration t'
+        (trace $ (insts k) !! s) i    ->
+          let k' = newPreskel
+                  g (shared k) (insts k) (orderings k) (knon k) (kpnon k)
+                  (kunique k) (t' : kuniqgen k) (kabsent k) (kprecur k)
+                  (kgenSt k) (kconf k) (kauth k) (kfacts k)
+                  (kpriority k) (operation k) (krules k) (pprob k)
+                  (prob k) (pov k) in
+          Some (k', (g, e))
+      | otherwise ->
+          Failing ("In rule " ++ rule ++ ", ugen-at not at a generation")
+      where
+        t' = instantiate e t
+
+urgenst :: String -> Term -> URewrite
+urgenst rule t k (g, e) =
+  case matched e t of
+    True
+      | elem t' (kgenSt k) -> Some (k, (g, e))
+      | otherwise -> Some (k', (g, e))
+        where
+          k' = newPreskel
+                  g (shared k) (insts k) (orderings k) (knon k) (kpnon k)
+                  (kunique k) (kuniqgen k) (kabsent k) (kprecur k)
+                  (adjoin t' $ kgenSt k) (kconf k) (kauth k) (kfacts k)
+                  (kpriority k) (operation k) (krules k) (pprob k)
+                  (prob k) (pov k)
+    False ->
+      Failing ("In rule " ++ rule ++ ", genSt did not get a term")
+  where
+    t' = instantiate e t
+
+urconf :: String -> Term -> URewrite
+urconf rule t k (g, e) =
+  case matched e t of
+    True
+      | elem t' (kconf k) -> Some (k, (g, e))
+      | not $ isAtom t' -> None
+      | otherwise -> Some (k', (g, e))
+        where
+          k' = newPreskel
+                  g (shared k) (insts k) (orderings k) (knon k)
+                  (kpnon k) (kunique k) (kuniqgen k) (kabsent k) (kprecur k)
+                  (kgenSt k) (t': kconf k) (kauth k) (kfacts k)
+                  (kpriority k) (operation k) (krules k) (pprob k)
+                  (prob k) (pov k)
+    False ->
+      Failing ("In rule " ++ rule ++ ", conf did not get a term")
+  where
+    t' = instantiate e t
+
+urauth :: String -> Term -> URewrite
+urauth rule t k (g, e) =
+  case matched e t of
+    True
+      | elem t' (kauth k) -> Some (k, (g, e))
+      | not $ isAtom t' -> None
+      | otherwise -> Some (k', (g, e))
+        where
+          k' = newPreskel
+                  g (shared k) (insts k) (orderings k) (knon k)
+                  (kpnon k) (kunique k) (kuniqgen k) (kabsent k)
+                  (kprecur k)(kgenSt k) (kconf k) (t' : kauth k) (kfacts k)
+                  (kpriority k) (operation k) (krules k) (pprob k)
+                  (prob k) (pov k)
+    False ->
+      Failing ("In rule " ++ rule ++ ", auth did not get a term")
+  where
+    t' = instantiate e t
+
+urafact :: String -> String -> [Term] -> URewrite
+urafact rule predname fts k (g, e)
+  | elem fact (kfacts k) = Some (k, (g, e))
+  | otherwise = Some (k', (gen k', e))
+  where
+    fts' = map (rFactLookup rule e) fts
+    fact = Fact predname fts'
+    k' = newPreskel
+         g (shared k) (insts k) (orderings k) (knon k) (kpnon k)
+         (kunique k) (kuniqgen k) (kabsent k) (kprecur k) (kgenSt k)
+         (kconf k) (kauth k) (L.nub $ fact : kfacts k)
+         (kpriority k) (operation k) (krules k) (pprob k) (prob k) (pov k)
+
+ureq :: String -> Term -> Term -> URewrite
+ureq rule x y k (g, e)
+    | isStrdVar x && isStrdVar y =
+        case (strdLookup e x, strdLookup e y) of
+          (Just s, Just t)
+            | s == t -> Some (k, (g, e))
+            | s < (L.length (insts k)) && t < (L.length (insts k))  ->
+                (case rDisplace e (k {gen = g}) s t of
+                  []              -> None
+                  [(k', (g',e'))] -> Some (k', (g',e'))
+                  l               ->
+                      error ("ureq:  Hey, rDisplace multiple results (" ++
+                             (show (length l)) ++ ")"))
+            | not (checkKFacts k) -> error ("ureq:  Bad kfacts")
+            | not (checkEnv k e) -> error ("ureq:  Bad env")
+            | otherwise ->
+                error ("ureq:  indices too large, (" ++ (show s) ++ ", " ++ (show t) ++
+                       " in env " ++ (show (L.map (\i -> (rname (role i), env i))
+                                                 (insts k))))
+          _ -> Failing ("In rule " ++ rule ++ ", = did not get a strand")
+    | isStrdVar x || isStrdVar y  = None
+    | u == v = Some (k, (g, e))
+    | otherwise =
+        case rUnify k (g, e) u v of
+          []          -> None
+          [(k,(g,e))] -> Some (k,(g,e))
+          l           -> error ("ureq:  Hey, rUnify multiple results (" ++
+                                (show (length l)) ++ ")")
+--             _ ->
+--                 error ("In rule " ++ rule ++ ", = did not get a term, " ++
+--                        (show x) ++ ", " ++ (show y) ++ ", " ++ (show e))
+    where
+      u = if matched e x
+          then instantiate e x
+          else x
+      v = if matched e x
+          then instantiate e y
+          else y
+
+urcommpair :: String -> NodeTerm -> NodeTerm -> URewrite
+urcommpair rule n n' k (g, e) =
+  case nodeLookup e n of
+    Nothing -> Failing ("In rule " ++ rule ++ ", comm-pair did not get two node terms")
+    (Just p) ->
+        (case dirChMsgOfNode p k of
+           Nothing -> None
+           Just (Recv, _) -> None
+           Just (Send, chmsg) ->
+               (case nodeLookup e n' of
+                  Nothing -> Failing ("In rule " ++ rule ++ ", comm-pair did not get two node terms")
+                  Just p' ->
+                      (case dirChMsgOfNode p' k of
+                         Nothing -> None
+                         Just (Send, _) -> None
+                         Just (Recv, chmsg') ->
+                             (case (chmsg, chmsg') of
+                                (Plain _, ChMsg _ _) -> None
+                                (ChMsg _ _, Plain _) -> None
+                                (Plain m, Plain m')  -> ureq rule m m' k (g, e)
+                                (ChMsg c m, ChMsg c' m') ->
+                                    case ureq rule c c' k (g, e) of
+                                      None -> None
+                                      Failing st -> Failing st
+                                      Some (k',(g',e')) ->
+                                          ureq rule m m' k' (g',e')))))
+
+ursamelocn :: String -> NodeTerm -> NodeTerm -> URewrite
+ursamelocn rule n n' k (g, e) =
+    case (nodeLookup e n, nodeLookup e n') of
+      (Just (s,i), Just (s',i')) ->
+          case (nodeLocn (s,i) k, nodeLocn (s',i') k) of
+            ([c],[c']) -> ureq rule c c' k (g, e)
+            (_,_) -> None
+      (_,_) -> Failing ("In rule " ++ rule ++ ", same-locn did not get two node terms")
+
+urstateNode :: String -> NodeTerm -> URewrite
+urstateNode rule n k (g, e) =
+    case nodeLookup e n of
+      Just (s,i) ->
+          (case nodeIsStateNode k (s,i) of
+             True -> Some (k, (g, e))
+             False -> None)
+      _ -> Failing ("In rule " ++ rule ++ ", state-node did not get a node term")
+
+rewriteDepthCount :: Int
+rewriteDepthCount = 2000  -- was 14 and 24, 36
+
+-- Try all rules associated with the protocol of k.
+
+-- Return Nothing if no rule applies, otherwise return Just the list
+-- of (zero or more) replacements.
+rewrite :: Preskel -> Maybe [Preskel]
+rewrite k =
+    case nullUnary k of         --  (zP "<" k)
+      Just [] -> Just []        -- zP ">>" (Just [])
+      Just [k'] -> iterate rewriteDepthCount [k'] [] True
+      Nothing -> iterate rewriteDepthCount [k] [] False
+      Just ks -> error ("rewrite:  nullUnary returned too many results ("
+                        ++ (show (L.length ks)) ++ ")")
+    where
+      grules = generalrules $ protocol k
+
+      nullUnary k =
+          if checkNullary k
+          then
+              case rewriteUnary k of
+                  Unsat    -> Just []
+                  Unch     -> Nothing
+                  Found k' -> Just [k']
+          else
+              Just []
+
+      nullUnaryThrough =
+          concatMap (\k -> maybe [k] id (nullUnary k))
+
+      -- iterate todos done action, which yields Maybe [Preskel]
+      iterate _ [] [_] False = Nothing          -- zP ">>" Nothing
+      iterate _ [] done False = error ("rewrite: non-singleton results with no change???  (" ++
+                                        (show (L.length done)) ++ ")")
+      iterate _ [] done True = Just done        -- zP ">" (Just done)
+      iterate 0 todos done True = Just (todos ++ done)  -- zP ">!" (Just (todos ++ done))
+      iterate 0 _ done False = error ("rewrite: exhausted depth bound with no action???  (" ++
+                                        (show (L.length done)) ++ ")")
+      iterate dc (k : rest) done b =
+          case subiter k grules of
+            Nothing  -> iterate (dc-1) rest (k : done) b
+            Just new ->
+                let new' = factorIsomorphic (nullUnaryThrough new) in
+                -- nullUnaryThrough new in
+                -- Could alternatively factor the new ones for
+                -- isomorphic copies, but that sounds anomalous
+                -- *Don't* Skip it for now.
+
+                iterate dc -- (dc-1)
+                            (mergeIsomorphic new' rest) done True
+
+      -- subiter
+      subiter _ [] = Nothing     -- No action, no rules left
+
+      subiter k (r : rs) =
+          case tryRule k r of
+            [] -> subiter k rs
+            vas ->
+                (Just (concatMap (\k' -> maybe [k'] id
+                                        $ subiter k' rs)
+                     $ nullUnaryThrough
+                           $ doRewrite k r vas))
+
+-- Returns all environments that satisfy the antecedent
+-- but do not extend to satisfy any of the conclusions.
+--
+
+tryRule :: Preskel -> Rule -> [(Gen, Env)]
+tryRule k r =
+  [(g, e) | (g, e) <- conjoin (antec $ rlgoal r) k (gen k, emptyEnv),
+            conclusion (g, e) ]
+  where
+    conclusion e = all (disjunct e) $ consq $ rlgoal r
+    disjunct e (ebvs,a) = null $ conjoinEbvs a ebvs k e
+
+{--
+
+ruleLimit :: Int
+ruleLimit = 500
+
+-- Repeatedly applies rules until no rule applies.
+doRewrites :: [Rule] -> Preskel -> Rule -> [(Gen, Env)] -> [Preskel]
+doRewrites rules k r vas =
+  doRewritesLoop rules k (length vas) (doRewrite k r vas) []
+
+doRewritesLoop :: [Rule] -> Preskel -> Int ->
+                  [Preskel] -> [Preskel] -> [Preskel]
+doRewritesLoop _ _ lim [] _
+  | lim >= ruleLimit =
+    error ("Aborting after applying " ++ show ruleLimit ++
+           " rules and more are applicable (1)" -- ++ (show ks)
+          )
+doRewritesLoop _ _ lim _ _  -- todos ks
+  | lim >= ruleLimit =
+    error ("Aborting after applying " ++ show ruleLimit ++
+           " rules and more are applicable "
+           -- ++ (concatMap (\k' -> show (kfacts k')) (todos ++ ks))
+          )
+doRewritesLoop _ _ _ [] ks = reverse ks
+doRewritesLoop rules k lim (k' : todo) ks =
+  loop rules
+  where
+    loop [] =                   -- No rules apply
+      doRewritesLoop rules k lim todo (k' : ks)
+    loop (r : rs) =
+      let vas = tryRule k' r in
+        if null vas then
+          loop rs               -- Rule does not apply
+        else
+          let new = doRewrite k' r vas in
+            doRewritesLoop rules k (lim + length vas) (setModuloIso $ todo ++ new) (setModuloIso ks)
+
+--}
+
+-- Apply rewrite rule at all assignments
+doRewrite :: Preskel -> Rule -> [(Gen, Env)] -> [Preskel]
+doRewrite k r vas =
+   --   concatMap (toSkeleton False) $
+    concatMap (doRewriteOne k r) vas
+
+-- Apply rewrite rule at one assignment
+doRewriteOne :: Preskel -> Rule -> (Gen, Env) -> [Preskel]
+doRewriteOne k r e =
+  do
+    (evars, cl) <- consq $ rlgoal r
+    let e' = foldl fresh e evars
+    (k, _) <- doConj (rlname r) cl k e'
+    k <- wellFormedPreskel k
+    k <- toSkeleton True k
+    return $ f k                -- Add rule name
+  where f k = k { krules = L.nub $ rlname r : krules k }
+
+fresh :: (Gen, Env) -> Term -> (Gen, Env)
+fresh (g, e) t
+  | isStrdVar t = (g, e)
+  | otherwise =
+      case match t t' (g', e) of
+        e' : _ -> e'
+        [] -> error "Strand.fresh: Cannot match logical variable to clone"
+    where
+      (g', t') = clone g t
+
+type Rewrite = Preskel -> (Gen, Env) -> [(Preskel, (Gen, Env))]
+
+checkRewrite :: Rewrite -> Rewrite
+checkRewrite f k (g, e)
+    | checkBoth k (g, e) =
+        L.map (\(k',(g',e')) -> (k', checkQuietly k' (g',e'))) $ f k (g, e)
+    | otherwise = [(k, localSignal k (g, e))]
+
+doConj :: String -> [AForm] -> Rewrite
+doConj _ [] k e = [(k, e)]
+doConj rule (f : fs) k e =
+  do
+    (k, e) <- checkRewrite (rwt rule f) k e
+    doConj rule fs k e
+
+rwt :: String -> AForm -> Rewrite
+rwt rule (Length r z ht) = rlength rule r z ht
+rwt rule (Param r v i z t) = rparam rule r v i z t
+rwt rule (Prec n n') = rprec rule n n'
+rwt rule (Non t) = rlnon rule t
+rwt rule (Pnon t) = rlpnon rule t
+rwt rule (Uniq t) = rluniq rule t
+rwt rule (UniqAt t n) = runiqAt rule t n
+rwt rule (Ugen t) = rlugen rule t
+rwt rule (UgenAt t n) = rugenAt rule t n
+rwt rule (GenStV t) = rlgenst rule t
+rwt rule (Conf t) = rlconf rule t
+rwt rule (Auth t) = rlauth rule t
+rwt rule (AFact name fs) = rafact rule name fs
+rwt rule (Equals t t') = req rule t t'
+rwt rule (Component t t') =
+    \_ _ -> error ("In rule " ++ rule ++ ", component in conclusion with" ++
+                                  (show t) ++ ",  " ++ (show t'))
+rwt rule (Commpair n n') = rcommpair rule n n'
+rwt rule (SameLocn n n') = rsamelocn rule n n'
+rwt rule (StateNode n) = rstateNode rule n
+rwt rule (Trans (t,t')) = rafact rule "trans" [t, t']
+rwt rule (LeadsTo n n') =
+    \k ge ->
+        do
+          (k,ge) <- rwt rule (Commpair n n') k ge
+          (k,ge) <- rwt rule (Prec n n') k ge
+          (k,ge) <- rwt rule (StateNode n) k ge
+          -- Commpair entails StateNode n' too
+          return (k,ge)
+
+rlength :: String -> Role -> Term -> Term -> Rewrite
+rlength name r z ht k (g, e) =
+  case indxLookup e ht of
+    Nothing ->
+        error ("In rule " ++ name ++ ", role length did not get a height")
+    Just h ->
+      case length (rtrace r) < h of
+         True -> []
+         False ->
+           (case strdLookup e z of
+            Just s ->                 -- Try to displace
+              rDisplace e k' ns s
+              where
+                k' = addStrand g k r h
+                ns = nstrands k
+            Nothing ->                -- Try to augment
+              do                      -- and displace everywhere
+                let ns = nstrands k
+                (g, e) <- strdMatch z ns (g, e)
+                let k' = addStrand g k r h
+                let f s' = rDisplace e k' ns s'
+                (k', (gen k', e)) : concatMap f (nats ns))
+
+-- Just add a strand cloned from a role.
+-- The length must be greater than one.
+addStrand :: Gen -> Preskel -> Role -> Int -> Preskel
+addStrand g k r h =
+  newPreskel g' (shared k) insts'
+  (orderings k) non' pnon' unique' uniqgen' absent' (kprecur k)
+  (kgenSt k) conf' auth' (kfacts k)
+  (kpriority k) (operation k) (krules k) (pprob k) (prob k) (pov k)
+  where
+    (g', inst) = mkInstance g r emptyEnv h -- Create instance
+    insts' = (insts k) ++ [inst]
+    non' = inheritRnon inst ++ knon k
+    pnon' = inheritRpnon inst ++ kpnon k
+    unique' = inheritRunique inst ++ kunique k
+    uniqgen' = inheritRuniqgen inst ++ kuniqgen k
+    absent' = inheritRabsent inst ++ kabsent k
+    conf' = inheritRconf inst ++ kconf k
+    auth' = inheritRauth inst ++ kauth k
+
+rDisplace :: Env -> Preskel -> Sid -> Sid -> [(Preskel, (Gen, Env))]
+rDisplace e k s s' | s == s' = [(k, (gen k, e))]
+rDisplace e k s s' =
+  do
+    (s, s', subst) <- unifyStrands k s s'
+    k <- rSubst k subst
+    k <- rCompress k s s'
+    let e' = strdUpdate (substUpdate e (snd subst)) (updateStrand s s')
+    let _ = checkSem (\_ ge -> [ge]) k ((gen k), e')
+    return (k, (gen k, e'))
+
+rSubst :: Preskel -> (Gen, Subst) -> [Preskel]
+rSubst k (gen, subst) =
+    do
+      (gen', insts') <- foldMapM (substInst subst) gen (insts k)
+      let non' = map (substitute subst) (knon k)
+      let pnon' = map (substitute subst) (kpnon k)
+      let unique' = map (substitute subst) (kunique k)
+      let uniqgen' = map (substitute subst) (kuniqgen k)
+      let absent' = map (pairApp $ substitute subst) (kabsent k)
+      let genStV' = map (substitute subst) (kgenSt k)
+      let conf' = map (substitute subst) (kconf k)
+      let auth' = map (substitute subst) (kauth k)
+      let facts' = map (substFact subst) (kfacts k)
+      let operation' = substOper subst (operation k)
+      return $
+        newPreskel gen' (shared k) insts' (orderings k)
+        non' pnon' unique' uniqgen' absent' (kprecur k)
+        genStV' conf' auth' facts' (kpriority k)
+        operation' (krules k) (pprob k) (prob k) (pov k)
+
+-- Does rCompress assume that s \not= s'?  s is old, s' is new
+rCompress :: Preskel -> Sid -> Sid -> [Preskel]
+rCompress k s s' =
+    do
+      let perm = updatePerm s s' (strandids k)
+      orderings' <- normalizeOrderings True
+                    (permuteOrderings perm (orderings k))
+      return $
+        newPreskel
+        (gen k)
+        (shared k)
+        (deleteNth s (insts k))
+        orderings'
+        (knon k)
+        (kpnon k)
+        (kunique k)
+        (kuniqgen k)
+        (kabsent k)
+        (map (permuteNode perm) (kprecur k))
+        (kgenSt k)
+        (kconf k)
+        (kauth k)
+        (map (updateFact $ updateStrand s s') (kfacts k))
+        (updatePriority perm (kpriority k))
+        (operation k)
+        (krules k)
+        (pprob k)
+        (updateProb perm (prob k))
+        (pov k)
+
+rparam :: String -> Role -> Term -> Int -> Term -> Term -> Rewrite
+rparam name r v h z t k (g, e) =
+  case strdLookup e z of
+    Just s
+      | height inst < h -> []   -- JDG:  This looks suspicious.  Why
+                                -- not extend the inst to a greater
+                                -- height?
+      | rname (role inst) == rname r ->
+        rParam name k (g, e) t t'
+      | otherwise ->
+        do
+          (k, (g, e)) <- rDisplace e k' ns s
+          rParam name k (g, e) t t'
+      where
+        inst = strandInst k s
+        t' = instantiate (env inst) v
+        k' = addStrand g k r h
+        ns = nstrands k
+    Nothing ->
+      error ("In rule " ++ name ++
+             ", parameter predicate did not get a strand")
+
+rParam :: String -> Preskel -> (Gen, Env) ->
+          Term -> Term -> [(Preskel, (Gen, Env))]
+rParam name k (g, e) t t' =
+  case matched e t of
+    True ->
+      rUnify k (g, e) (instantiate e t) t'
+    False ->
+      error ("In rule " ++ name ++
+             ", parameter predicate did not get a value")
+
+rUnify :: Preskel -> (Gen, Env) -> Term -> Term -> [(Preskel, (Gen, Env))]
+rUnify k (g, e) t t' =
+  do
+    subst <- unify t t' (g, emptySubst)
+    k <- rSubst k subst
+    return (k, (gen k, substUpdate e (snd subst)))
+
+rprec :: String -> NodeTerm -> NodeTerm -> Rewrite
+rprec name (z, t) (z', t') k (g, e) =
+  case (strdLookup e z, strdLookup e z', indxLookup e t, indxLookup e t') of
+    (Just s, Just s', Just i, Just i')
+      | elem ((s, i), (s', i')) tc -> [(k, (g, e))]
+      | badIndex k s i || badIndex k s' i' -> []
+      | otherwise ->
+          case (succOut ((insts k) !! s) i,
+                prevIn ((insts k) !! s') i') of
+            (Just i, Just i') ->
+                do                      -- Add one ordering
+                  orderings' <- normalizeOrderings True
+                                (((s, i), (s', i')) : orderings k)
+                  let k' = newPreskel g (shared k) (insts k) orderings'
+                           (knon k) (kpnon k) (kunique k) (kuniqgen k)
+                           (kabsent k) (kprecur k) (kgenSt k)
+                           (kconf k) (kauth k) (kfacts k) (kpriority k)
+                           (operation k) (krules k) (pprob k) (prob k) (pov k)
+                  return (k', (gen k, e))
+            (_,_) -> []
+    _ ->
+      error ("In rule " ++ name ++ ", precedence did not get a strand or a height")
+  where
+    tc = kgpOrds k
+         -- map graphPair $ graphClose $ graphEdges $ strands k
+
+         --   rprec :: String -> NodeTerm -> NodeTerm -> Rewrite
+--   rprec name (z, i) (z', i') k (g, e) =
+--     case (strdLookup e z, strdLookup e z') of
+--       (Just s, Just s')
+--         | elem ((s, i), (s', i')) tc -> [(k, (g, e))]
+--         | badIndex k s i || badIndex k s' i' -> []
+--         | otherwise ->
+--           do                      -- Add one ordering
+--             orderings' <- normalizeOrderings True
+--                           (((s, i), (s', i')) : orderings k)
+--             let k' = newPreskel
+--                     g (shared k) (insts k) orderings' (knon k) (kpnon k)
+--                     (kunique k) (kconf k) (kauth k) (kfacts k) (kpriority k)
+--                     (operation k) (krules k) (pprob k) (prob k) (pov k)
+--             return (k', (gen k, e))
+--       _ ->
+--         error ("In rule " ++ name ++ ", precedence did not get a strand")
+--     where
+--       tc = map graphPair $ graphClose $ graphEdges $ strands k
+
+badIndex :: Preskel -> Sid -> Int -> Bool
+badIndex k s i =
+  i >= height (strandInst k s)
+
+rlnon :: String -> Term -> Rewrite
+rlnon name t k (g, e) =
+  case matched e t of
+    True
+      | elem t' (knon k) -> [(k, (g, e))]
+      | not $ isAtom t' -> []
+      | otherwise ->
+        [(k', (g, e))]
+        where
+          k' = newPreskel
+                  g (shared k) (insts k) (orderings k) (t' : knon k)
+                  (kpnon k) (kunique k) (kuniqgen k) (kabsent k) (kprecur k)
+                  (kgenSt k) (kconf k) (kauth k) (kfacts k)
+                  (kpriority k) (operation k) (krules k) (pprob k)
+                  (prob k) (pov k)
+    False ->
+      error ("In rule " ++ name ++ ", non did not get a term")
+  where
+    t' = instantiate e t
+
+rlpnon :: String -> Term -> Rewrite
+rlpnon name t k (g, e) =
+  case matched e t of
+    True
+      | elem t' (kpnon k) -> [(k, (g, e))]
+      | not $ isAtom t' -> []
+      | otherwise ->
+        [(k', (g, e))]
+        where
+          k' = newPreskel
+                  g (shared k) (insts k) (orderings k) (knon k)
+                  (t' : kpnon k) (kunique k) (kuniqgen k) (kabsent k)
+                  (kprecur k) (kgenSt k) (kconf k) (kauth k) (kfacts k)
+                  (kpriority k) (operation k) (krules k) (pprob k)
+                  (prob k) (pov k)
+    False ->
+      error ("In rule " ++ name ++ ", pnon did not get a term")
+  where
+    t' = instantiate e t
+
+rluniq :: String -> Term -> Rewrite
+rluniq name t k (g, e) =
+  case matched e t of
+    True
+      | elem t' (kunique k) -> [(k, (g, e))]
+      | not $ isAtom t' -> []
+      | otherwise ->
+        [(k', (g, e))]
+        where
+          k' = newPreskel
+                  g (shared k) (insts k) (orderings k) (knon k) (kpnon k)
+                  (t' : kunique k) (kuniqgen k) (kabsent k) (kprecur k)
+                  (kgenSt k) (kconf k) (kauth k) (kfacts k)
+                  (kpriority k) (operation k) (krules k) (pprob k)
+                  (prob k) (pov k)
+    False ->
+      error ("In rule " ++ name ++ ", uniq did not get a term")
+  where
+    t' = instantiate e t
+
+checkOrigination :: Term -> Trace -> Int -> Bool
+checkOrigination t c i =
+    case originationPos t c of
+      Nothing -> False
+      Just j -> i == j
+
+runiqAt :: String -> Term -> NodeTerm -> Rewrite
+runiqAt name t (z, ht) k (g, e) =
+  case (matched e t, strdLookup e z, indxLookup e ht) of
+    (True, Just s, Just i)
+      | elem (t', [(s, i)]) (korig k) -> [(k, (g, e))]
+      | not $ isAtom t' -> []
+      | i >= height (strandInst k s) -> []
+      | checkOrigination t' (trace (strandInst k s)) i ->
+          let k' = newPreskel
+                  g (shared k) (insts k) (orderings k) (knon k) (kpnon k)
+                  (t' : kunique k) (kuniqgen k) (kabsent k) (kprecur k)
+                  (kgenSt k) (kconf k) (kauth k) (kfacts k)
+                  (kpriority k) (operation k) (krules k) (pprob k)
+                  (prob k) (pov k) in
+          [(k', (g, e))]
+      | otherwise ->
+          error ("In rule " ++ name ++ ", uniq-at not at an origination")
+    (False, _, _) ->
+      error ("In rule " ++ name ++ ", uniq-at did not get a term")
+    (_, Nothing, _) ->
+      error ("In rule " ++ name ++ ", uniq-at did not get a strand")
+    (_, _, Nothing) ->
+        error ("In rule " ++ name ++ ", uniq-at did not get an index")
+  where
+    t' = instantiate e t
+
+rlugen :: String -> Term -> Rewrite
+rlugen name t k (g, e) =
+  case matched e t of
+    True
+      | elem t' (kuniqgen k) -> [(k, (g, e))]
+      | not $ isAtom t' -> []
+      | otherwise ->
+        [(k', (g, e))]
+        where
+          k' = newPreskel
+                  g (shared k) (insts k) (orderings k) (knon k) (kpnon k)
+                  (kunique k) (t' : kuniqgen k) (kabsent k) (kprecur k)
+                  (kgenSt k) (kconf k) (kauth k) (kfacts k)
+                  (kpriority k) (operation k) (krules k) (pprob k)
+                  (prob k) (pov k)
+    False ->
+      error ("In rule " ++ name ++ ", ugen did not get a term")
+  where
+    t' = instantiate e t
+
+checkGeneration :: Term -> Trace -> Int -> Bool
+checkGeneration t c i =
+    case generationPos t c of
+      Nothing -> False
+      Just j -> i == j
+
+rugenAt :: String -> Term -> NodeTerm -> Rewrite
+rugenAt name t (z, ht) k (g, e) =
+  case (matched e t, strdLookup e z, indxLookup e ht) of
+    (True, Just s, Just i)
+      | elem (t', [(s, i)]) (kugen k) -> [(k, (g, e))]
+      | not $ isAtom t' -> []
+      | i >= height (strandInst k s) -> []
+      | checkGeneration t' (trace (strandInst k s)) i ->
+          let k' = newPreskel
+                  g (shared k) (insts k) (orderings k) (knon k) (kpnon k)
+                  (kunique k) (t' : kuniqgen k) (kabsent k) (kprecur k)
+                  (kgenSt k) (kconf k) (kauth k) (kfacts k)
+                  (kpriority k) (operation k) (krules k) (pprob k)
+                  (prob k) (pov k) in
+          [(k', (g, e))]
+      | otherwise ->
+          error ("In rule " ++ name ++ ", ugen-at not at an origination")
+    (False, _, _) ->
+      error ("In rule " ++ name ++ ", ugen-at did not get a term")
+    (_, Nothing, _) ->
+      error ("In rule " ++ name ++ ", ugen-at did not get a strand")
+    (_, _, Nothing) ->
+        error ("In rule " ++ name ++ ", ugen-at did not get an index")
+  where
+    t' = instantiate e t
+
+rlgenst :: String -> Term -> Rewrite
+rlgenst name t k (g, e) =
+  case matched e t of
+    True
+      | elem t' (kgenSt k) -> [(k, (g, e))]
+      | otherwise ->
+        [(k', (g, e))]
+        where
+          k' = newPreskel
+                  g (shared k) (insts k) (orderings k) (knon k) (kpnon k)
+                  (kunique k) (kuniqgen k) (kabsent k) (kprecur k)
+                  (adjoin t' $ kgenSt k) (kconf k) (kauth k) (kfacts k)
+                  (kpriority k) (operation k) (krules k) (pprob k)
+                  (prob k) (pov k)
+    False ->
+      error ("In rule " ++ name ++ ", genSt did not get a term")
+  where
+    t' = instantiate e t
+
+rlconf :: String -> Term -> Rewrite
+rlconf name t k (g, e) =
+  case matched e t of
+    True
+      | elem t' (kconf k) -> [(k, (g, e))]
+      | not $ isAtom t' -> []
+      | otherwise ->
+        [(k', (g, e))]
+        where
+          k' = newPreskel
+                  g (shared k) (insts k) (orderings k) (knon k)
+                  (kpnon k) (kunique k) (kuniqgen k) (kabsent k) (kprecur k)
+                  (kgenSt k) (t': kconf k) (kauth k) (kfacts k)
+                  (kpriority k) (operation k) (krules k) (pprob k)
+                  (prob k) (pov k)
+    False ->
+      error ("In rule " ++ name ++ ", conf did not get a term")
+  where
+    t' = instantiate e t
+
+rlauth :: String -> Term -> Rewrite
+rlauth name t k (g, e) =
+  case matched e t of
+    True
+      | elem t' (kauth k) -> [(k, (g, e))]
+      | not $ isAtom t' -> []
+      | otherwise ->
+        [(k', (g, e))]
+        where
+          k' = newPreskel
+                  g (shared k) (insts k) (orderings k) (knon k)
+                  (kpnon k) (kunique k) (kuniqgen k) (kabsent k) (kprecur k)
+                  (kgenSt k) (kconf k) (t' : kauth k) (kfacts k)
+                  (kpriority k) (operation k) (krules k) (pprob k)
+                  (prob k) (pov k)
+    False ->
+      error ("In rule " ++ name ++ ", auth did not get a term")
+  where
+    t' = instantiate e t
+
+rafact :: String -> String -> [Term] -> Rewrite
+rafact rule name fts k (g, e)
+  | elem fact (kfacts k) = [(k, (g, e))]
+  | otherwise = [(k', (gen k', e))]
+  where
+    fts' = map (rFactLookup rule e) fts
+    fact = Fact name fts'
+    k' = newPreskel
+         g (shared k) (insts k) (orderings k) (knon k) (kpnon k)
+         (kunique k) (kuniqgen k) (kabsent k) (kprecur k)
+         (kgenSt k) (kconf k) (kauth k) (L.nub $ fact : kfacts k)
+         (kpriority k) (operation k) (krules k) (pprob k) (prob k) (pov k)
+
+rFactLookup :: String -> Env -> Term -> FTerm
+rFactLookup name e t
+  | isStrdVar t =
+    case strdLookup e t of
+      Just s -> FSid s
+      Nothing ->
+        error ("In rule " ++ name ++ ": fact did not get a strand")
+  | matched e t = FTerm $ instantiate e t
+  | otherwise =
+      error ("In rule " ++ name ++ ": fact did not get a term")
+
+req :: String -> Term -> Term -> Rewrite
+req name x y k (g, e)
+  | isStrdVar x =
+    case (strdLookup e x, strdLookup e y) of
+      (Just s, Just t)
+        | s == t -> [(k, (g, e))]
+        | s < (L.length (insts k)) && t < (L.length (insts k)) ->
+          rDisplace e (k {gen = g})  s t
+        | otherwise ->
+            error ("req:  indices too large, (" ++ (show s) ++ ", " ++ (show t) ++ " in env " ++ (show e))
+      _ ->
+        error ("In rule " ++ name ++ ", = did not get a strand")
+  | otherwise =
+    case (matched e x, matched e y) of
+      (True, True)
+        | u == v -> [(k, (g, e))]
+        | otherwise ->
+          rUnify k (g, e) u v
+      _ ->
+        error ("In rule " ++ name ++ ", = did not get a term")
+    where
+      u = instantiate e x
+      v = instantiate e y
+
+rcommpair :: String -> NodeTerm -> NodeTerm -> Rewrite
+rcommpair name n n' k (g, e) =
+  case nodeLookup e n of
+    Nothing -> error ("In rule " ++ name ++ ", comm-pair did not get two node terms")
+    (Just p) ->
+        (case dirChMsgOfNode p k of
+           Nothing -> []
+           Just (Recv, _) -> []
+           Just (Send, chmsg) ->
+               (case nodeLookup e n' of
+                  Nothing -> error ("In rule " ++ name ++ ", comm-pair did not get two node terms")
+                  Just p' ->
+                      (case dirChMsgOfNode p' k of
+                         Nothing -> []
+                         Just (Send, _) -> []
+                         Just (Recv, chmsg') ->
+                             (case (chmsg, chmsg') of
+                                (Plain _, ChMsg _ _) -> []
+                                (ChMsg _ _, Plain _) -> []
+                                (Plain m, Plain m')  -> req name m m' k (g, e)
+                                (ChMsg c m, ChMsg c' m') ->
+                                    do
+                                      (k, (g,e)) <- req name c c' k (g, e)
+                                      (k, (g,e)) <- req name m m' k (g, e)
+                                      return (k, (g,e))))))
+
+rsamelocn :: String -> NodeTerm -> NodeTerm -> Rewrite
+rsamelocn name n n' k (g, e) =
+    case (nodeLookup e n, nodeLookup e n') of
+      (Just p, Just p') ->
+          case (nodeLocn p k, nodeLocn p' k) of
+            ([c],[c']) -> req name c c' k (g, e)
+            (_,_) -> []
+      (_,_) -> error ("In rule " ++ name ++ ", same-locn did not get two node terms")
+
+rstateNode :: String -> NodeTerm -> Rewrite
+rstateNode name n k (g, e) =
+    case nodeLookup e n of
+      Just p ->
+          (case nodeIsStateNode k p of
+             True -> [(k, (g, e))]
+             False -> [])
+      _ -> error ("In rule " ++ name ++ ", state-node did not get a node term")
+
+applyLeadsTo :: Preskel -> [Pair] -> Preskel
+applyLeadsTo k pairs =
+    case rewriteUnaryOneOnce rn atomicFormulae k ge of
+      Nothing -> k
+      Just k' -> k'
+    where
+      rn = "(reading leads-to field)"
+      ge = (gen k, emptyEnv)
+      atomicFormulae =
+          map commpairOfPair pairs
+      commpairOfPair ((s1,i1), (s2,i2)) =
+          Commpair (strdOfInt s1, indxOfInt i1)
+                   (strdOfInt s2, indxOfInt i2)
diff --git a/src/cpsa.pl b/src/cpsa.pl
--- a/src/cpsa.pl
+++ b/src/cpsa.pl
@@ -112,9 +112,9 @@
 %% Top ::= c(Comment)             -- Comment
 %%      |  h(Name, Alist)         -- Herald
 %%      |  p(Name, Alg, Roles)    -- Defprotocol
-%%      |  k(Prot, Decls, Strands, Precedes, Nons, Uniqs).
+%%      |  k(Prot, Decls, Strands, Precedes, Nons, Pens, Uniqs).
 %%                                -- Defskeleton
-%% Role ::= r(Name, Decls, Trace, Nons, Uniqs).
+%% Role ::= r(Name, Decls, Trace, Nons, Pens, Uniqs).
 %%                                -- Defrole
 %% Decl ::= d(Sort, Vars).
 %%
@@ -124,9 +124,11 @@
 %%
 %% Nons ::= [Term].
 %%
+%% Pens ::= [Term].
+%%
 %% Uniqs ::= [Term].
 %%
-%% Strand ::= s(RoleName, Height, Map).
+%% Strand ::= s(RoleName, Height, Map) | l(Term).
 %%
 %% Height ::= Int.
 %%
@@ -142,7 +144,7 @@
 %%
 %% Var ::= Atom.
 %%
-%% Tag ::= String.
+%% Tag ::= String
 
 sexpr_to_cpsa([comment|X], c(X)).
 sexpr_to_cpsa([herald, Name|Alist], h(Name, Alist)).
@@ -151,7 +153,7 @@
 	atom(Name), atom(Alg),
 	sexpr_to_roles(Rest, Roles).
 sexpr_to_cpsa([defskeleton, Prot, [vars|Vars]|Rest],
-	k(Prot, Decls, Strands, Precedes, Nons, Uniqs)) :-
+	k(Prot, Decls, Strands, Precedes, Nons, Pens, Uniqs)) :-
 	atom(Prot),
 	decls(Vars, Decls),
 	sexpr_to_strands(Rest, Strands, Alist),
@@ -159,6 +161,8 @@
 	edges(Values, Precedes),
 	lookup('non-orig', Alist, Snons),
 	sexprs_to_terms(Snons, Nons),
+	lookup('pen-non-orig', Alist, Spens),
+	sexprs_to_terms(Spens, Pens),
 	lookup('uniq-orig', Alist, Suniqs),
 	sexprs_to_terms(Suniqs, Uniqs).
 
@@ -169,11 +173,13 @@
 sexpr_to_roles(_, []).
 
 sexpr_to_role([Name, [vars|Vars], [trace|Strace]|Alist],
-	r(Name, Decls, Trace, Nons, Uniqs)) :-
+	r(Name, Decls, Trace, Nons, Pens, Uniqs)) :-
 	decls(Vars, Decls),
 	sexprs_to_trace(Strace, Trace),
 	lookup('non-orig', Alist, Snons),
 	sexprs_to_terms(Snons, Nons),
+	lookup('pen-non-orig', Alist, Spens),
+	sexprs_to_terms(Spens, Pens),
 	lookup('uniq-orig', Alist, Suniqs),
 	sexprs_to_terms(Suniqs, Uniqs).
 
@@ -289,18 +295,18 @@
 cpsa_to_sexpr(h(Name, Alist), [herald, Name|Alist]).
 cpsa_to_sexpr(p(Name, Alg, Roles), [defprotocol, Name, Alg|Rest]) :-
 	roles_to_sexprs(Roles, Rest).
-cpsa_to_sexpr(k(Prot, Decls, Strands, Precedes, Nons, Uniqs),
+cpsa_to_sexpr(k(Prot, Decls, Strands, Precedes, Nons, Pens, Uniqs),
 	[defskeleton, Prot, [vars|Vars]|Rest]) :-
 	decls(Vars, Decls),
-	preds(Precedes, Nons, Uniqs, Alist),
+	preds(Precedes, Nons, Pens, Uniqs, Alist),
 	strands_to_sexprs(Strands, Alist, Rest).
 
-preds([], Nons, Uniqs, Alist) :-
+preds([], Nons, Pens, Uniqs, Alist) :-
 	!,
-	origs(Nons, Uniqs, Alist).
-preds(Precedes, Nons, Uniqs, [[precedes|Sexprs]|Alist]) :-
+	origs(Nons, Pens, Uniqs, Alist).
+preds(Precedes, Nons, Pens, Uniqs, [[precedes|Sexprs]|Alist]) :-
 	edges(Sexprs, Precedes),
-	origs(Nons, Uniqs, Alist).
+	origs(Nons, Pens, Uniqs, Alist).
 
 strands_to_sexprs([], Alist, Alist).
 strands_to_sexprs([Strand|Strands], Alist, [Sexpr|Sexprs]) :-
@@ -322,11 +328,11 @@
 	role_to_sexpr(Role, Sexpr),
 	roles_to_sexprs(Roles, Sexprs).
 
-role_to_sexpr(r(Name, Decls, Trace, Nons, Uniqs),
+role_to_sexpr(r(Name, Decls, Trace, Nons, Pens, Uniqs),
 	[defrole, Name, [vars|Vars], [trace|Strace]|Alist]) :-
 	decls(Vars, Decls),
 	traces_to_sexprs(Trace, Strace),
-	origs(Nons, Uniqs, Alist).
+	origs(Nons, Pens, Uniqs, Alist).
 
 traces_to_sexprs([], []).
 traces_to_sexprs([send(Term)|Trace], [[send, Sterm]|Straces]) :-
@@ -336,11 +342,18 @@
 	term_to_sexpr(Term, Sterm),
 	traces_to_sexprs(Trace, Straces).
 
-origs([], Uniqs, Alist) :-
+origs([], Pens, Uniqs, Alist) :-
 	!,
-	uniq_origs(Uniqs, Alist).
-origs(Nons, Uniqs, [['non-orig'|Snons]|Alist]) :-
+	pen_uniq_origs(Pens, Uniqs, Alist).
+origs(Nons, Pens, Uniqs, [['non-orig'|Snons]|Alist]) :-
 	terms_to_sexprs(Nons, Snons),
+	pen_uniq_origs(Pens, Uniqs, Alist).
+
+pen_uniq_origs([], Uniqs, Alist) :-
+	!,
+	uniq_origs(Uniqs, Alist).
+pen_uniq_origs(Pens, Uniqs, [['pen-non-orig'|Spens]|Alist]) :-
+	terms_to_sexprs(Pens, Spens),
 	uniq_origs(Uniqs, Alist).
 
 uniq_origs([], []) :- !.
diff --git a/src/cpsa2svg b/src/cpsa2svg
new file mode 100644
--- /dev/null
+++ b/src/cpsa2svg
@@ -0,0 +1,296 @@
+#! /bin/sh
+
+# Generates an SVG diagram from CPSA skeletons
+
+# This program converts the skeletons in the input into an SVG
+# diagram using Scheme and the GraphVis program dot.  Terms are
+# displayed as tooltips in the diagram.
+
+PROG=`basename "$0"`
+
+usage()
+{
+  echo "Usage: $PROG [OPTIONS] [FILE]"
+  echo
+  echo "Options:"
+  echo "  -o FILE, --output=FILE"
+  echo "         write output to FILE (default is standard output)"
+  echo "  -h, --help"
+  echo "         display this help and exit"
+  echo "  -v, --version"
+  echo "         output version information and exit"
+}
+
+OPTS=`getopt -o hvo: --long help,version,output: -n "$PROG" -- "$@"`
+
+if [ $? -ne 0 ]
+then
+  echo
+  usage
+  exit 1
+fi
+
+eval set -- "$OPTS"
+
+for o
+do
+  case "$o" in
+    -h|--help)
+      usage
+      exit 0;;
+    -v|--version)
+      echo $PROG 1.0
+      exit 0;;
+    -o|--output)
+      output="$2"
+      shift 2;;
+    --)
+      shift
+      break;;
+  esac
+done
+
+SCRIPT='
+;;; Converts the skeletons in the input into GraphViz dot format.
+;;; Terms are displayed as tooltips, so this output is usually
+;;; converted to SVG.
+
+;;; This program expects its input to be generated by another program,
+;;; and therefore does not adequately check its input.
+
+;;; The program reads from the standard input and writes to the
+;;; standard output.
+
+;;; The main routine
+(define (main)
+  (let ((input (get)))			 ; Read input
+    (show-all (car input) (cdr input)))) ; Process in
+
+;;; Get the list of skeletons and the protocols as an alist
+(define (get)
+  (let loop ((prots '\''()) (skels '\''()))
+    (let ((x (read)))
+      (cond ((eof-object? x)
+	     (cons (reverse prots) (reverse skels)))
+	    ((or (not (pair? x))
+		 (not (symbol? (car x)))
+		 (not (pair? (cdr x)))
+		 (not (symbol? (cadr x))))
+	     (loop prots skels))
+	    ((equal? '\''defprotocol (car x))
+	     (loop (cons (cons (cadr x) x) prots) skels))
+	    ((equal? '\''defskeleton (car x))
+	     (loop prots (cons x skels)))
+	    (else (loop prots skels))))))
+
+(define (show-all prots skels)
+  (display "digraph cpsa {")
+  (newline)				; t is a tag number
+  (let loop ((t 0) (skels skels))	; used for labeling
+    (cond ((pair? skels)
+	   (let ((prot (assoc (cadar skels) prots)))
+	     (if prot (show-skel t (cdr prot) (car skels)))
+	     (loop (+ t 1) (cdr skels))))
+	  (else
+	   (display "}")
+	   (newline)))))
+
+;;; Print graph header
+(define (show-skel tag prot skel)
+  (let* ((x (assoc '\''label (cddr skel)))	; Use value of the
+	 (label (if x (cadr x) tag))	; label attribute
+	 (y (assoc '\''parent (cddr skel))) ; when it appears
+	 (parent (and y (cadr y)))
+	 (name (cadr prot)))
+    (newline)
+    (display-outline label parent)
+    (display "subgraph cluster")
+    (display label)
+    (display " {")
+    (newline)
+    (display "  label = \"")
+    (display name)
+    (display " ")
+    (display label)
+    (display "\";")
+    (newline)
+    (show-strands label 0 (map extract-trace (cdddr prot)) (cdddr skel))))
+
+(define (display-outline label parent)
+  (display "c")
+  (display label)
+  (display " [label = \"")
+  (display label)
+  (display "\"]; ")
+  (newline)
+  (cond (parent
+	 (display "c")
+	 (display parent)
+	 (display " -> c")
+	 (display label)
+	 (display ";")
+	 (newline))))
+
+;;; Used to make an alist of role name and their trace
+(define (extract-trace role)
+  (cons (cadr role) (cdar (cdddr role))))
+
+;;; Print the strands
+(define (show-strands label s traces strands )
+  (cond ((equal? '\''defstrand (caar strands))
+	 (show-strand label s (cdar strands) traces (cdr strands)))
+	((equal? '\''deflistener (caar strands))
+	 (show-listener label s (cadar strands) traces (cdr strands)))
+        (else
+	 (let ((result (assoc '\''precedes strands)))
+	   (show-order label (if (pair? result) (cdr result) '\''()))))))
+
+;;; Show a non-listener strand
+(define (show-strand label s strand traces strands)
+  (let ((role (car strand))
+	(height (cadr strand))
+	(env (cddr strand)))
+    (show-cluster label s)
+    (display "    label = \"")		; Use role as
+    (display role)			; cluster label
+    (display "\";")
+    (newline)
+    (show-strand-nodes label s (assoc role traces) height env)
+    (show-strand-edges label s height)
+    (display "  }")
+    (newline))
+  (show-strands label (+ s 1) traces strands))
+
+(define (show-cluster label s)
+  (newline)
+  (display "  subgraph cluster")
+  (display label)
+  (display "_")
+  (display s)
+  (display " {")
+  (newline)				; Use strand for all
+  (display "    node [label = \"")	; node labels in this
+  (display s)				; cluster
+  (display "\"];")
+  (newline))
+
+(define (show-strand-nodes label s trace height env)
+  (if (not trace)
+      (error "Bad role name")
+      (let loop ((n 0) (trace (cdr trace)))
+	(cond ((< n height)
+	       (show-node label s n (subst (car trace) env))
+	       (loop (+ n 1) (cdr trace)))))))
+
+;;; Show a node with the term as a tooltip
+(define (show-node label s n term)
+  (display "    ")
+  (display-node label s n)
+  (display " [tooltip = \"")
+  (show-term term)
+  (display "\"];")
+  (newline))
+
+;;; Writes a term while quoting strings properly
+(define (show-term term)
+  (define (show-term-list terms)
+    (cond ((pair? terms)
+	   (display " ")
+	   (show-term (car terms))
+	   (show-term-list (cdr terms)))
+	  (else
+	   (display ")"))))
+  (cond ((string? term)
+	 (display "\"")
+	 (display term)
+	 (display "\""))
+	((pair? term)
+	 (display "(")
+	 (show-term (car term))
+	 (show-term-list (cdr term)))
+	(else
+	 (display term))))
+
+(define (display-node label s n)
+  (display "l")
+  (display label)
+  (display "s")
+  (display s)
+  (display "n")
+  (display n))
+
+;;; Substitute symbols for values in the given environment
+(define (subst exp env)
+  (define (substitute exp)
+    (cond ((symbol? exp)
+	   (let ((alist (assoc exp env)))
+	     (if alist
+		 (cadr alist)
+		 exp)))
+	  ((pair? exp)
+	   (cons (car exp) (map substitute (cdr exp))))
+	  (else exp)))
+  (substitute exp))
+
+(define (show-strand-edges label s height)
+  (display "    ")
+  (display-node label s 0)
+  (let loop ((n 1))
+    (cond ((>= n height)
+	   (display ";")
+	   (newline))
+	  (else
+	   (display " -> ")
+	   (display-node label s n)
+	   (loop (+ n 1))))))
+
+(define (show-listener label s term traces strands)
+  (show-cluster label s)
+  (display "    label = \"\";")
+  (newline)
+  (show-node label s 0 (list '\''recv term))
+  (display "  }")
+  (newline)
+  (show-strands label (+ s 1) traces strands))
+
+(define (show-order label orderings)
+  (cond ((pair? orderings)
+	 (let ((hd (caar orderings))
+	       (tl (cadar orderings)))
+	   (display "  ")
+	   (display-node label (car hd) (cadr hd))
+	   (display " -> ")
+	   (display-node label (car tl) (cadr tl))
+	   (display ";")
+	   (newline)
+	   (show-order label (cdr orderings))))
+	(else
+	 (display "}")
+	 (newline))))
+
+(main)
+'
+
+case $# in
+  0)
+    if [ -z "$output" ]
+    then
+      guile -c "$SCRIPT" | dot -Tsvg
+    else
+      guile -c "$SCRIPT" | dot -Tsvg -o "$output"
+    fi
+    break;;
+  1)
+    if [ -z "$output" ]
+    then
+      guile -c "$SCRIPT" < "$1" | dot -Tsvg
+    else
+      guile -c "$SCRIPT" < "$1" | dot -Tsvg -o "$output"
+    fi
+    break;;
+  *)
+    echo Too many input files
+    echo
+    usage
+    exit 1;;
+esac
diff --git a/src/cpsaops.scm b/src/cpsaops.scm
--- a/src/cpsaops.scm
+++ b/src/cpsaops.scm
@@ -1,9 +1,6 @@
-#!/usr/bin/guile \
--e main -s
-!#
-;;; For an R6RS script, add an import statement.
+#! /usr/bin/env scheme-r7rs
 
-;; This program simply extracts the operation form in a preskeleton
+;; This program simply extracts the operation form in a skeleton
 ;; and prints it.
 (define (consume form)
   (let ((op (skel-assq 'operation form)))
@@ -45,7 +42,7 @@
 
 (define (filter)
   (do ((form (read) (read)))
-      ((eof-object? form))
+      ((eof-object? form) 0)
     (consume form)))
 
 ;;; A file description is #f for the standard port, or a file name
@@ -92,11 +89,10 @@
 	   (display-error "bad args")))))
 
 (define (display-help)
-  (display-error "cpsaops [-h] [-o FILE] [FILE]"))
+  (display-error "cpsaops [-h] [-o FILE] [FILE]")
+  0)
 
 (define (display-error obj)
-  (display obj (current-error-port))
-  (newline (current-error-port)))
-
-;;; For an R6RS script, add the following:
-;;; (main (command-line))
+ (display obj (current-error-port))
+  (newline (current-error-port))
+  1)
diff --git a/src/cpsaperm.scm b/src/cpsaperm.scm
new file mode 100644
--- /dev/null
+++ b/src/cpsaperm.scm
@@ -0,0 +1,193 @@
+#!/usr/bin/guile \
+-e main -s
+!#
+(use-modules (ice-9 pretty-print))
+;;; For an R6RS script, add an import statement.
+
+;;; Synopsis: renumber strands in skeletons
+
+;;; A permutation of length n is represented as a list of natural
+;;; numbers that contains all the numbers less than n.
+
+;;; This program renumbers all the skeletons in a file that have the
+;;; same number of strands as is the length of the permutation.
+;;; Everything else is passed through unchanged.
+
+;;; Usage: cpsaperm [-h] [-o FILE] FILE INT...
+;;; where INT... specifies a permutation.
+;;; Use - in place of FILE for the standard port
+
+;;; Example: cpsaperm -o out.txt in.txt 1 0
+;;; Swaps the strands in skeletons with two strands.
+
+;;; This program does not check that the given permutation is in fact
+;;; a valid permutation, so be sure to check your output carefully.
+;;; Make sure your permutation has no repeats.
+
+;;; John D. Ramsdell -- October 2012
+
+;;; Create a function that applies a permutation to a form
+(define (apply-perm perm)
+  (let ((n (length perm)))
+    (lambda (form)
+      (let ((skel (parse-skel form)))
+	(cond ((not skel) form)		; Ignore non-skeletons
+	      ;; Ignore skeletons with the wrong number of strands
+	      ((not (= n (length (skel-strands skel)))) form)
+	      (else
+	       (let ((skel (apply-perm-to-skel perm skel)))
+		  `(defskeleton
+		    ,(skel-protocol skel)
+		    ,(skel-vars skel)
+		    ,@(append (skel-strands skel) (skel-alist skel))))))))))
+
+;;; A skeleton is represented as list with the following fields.
+
+(define (skel-protocol skel) (car skel))
+(define (skel-vars skel) (cadr skel))
+(define (skel-strands skel) (caddr skel))
+(define (skel-alist skel) (cdddr skel))
+(define (make-skel protocol vars strands alist)
+  (cons protocol (cons vars (cons strands alist))))
+
+;;; Creates a skeleton structure or returns #f on error.
+(define (parse-skel form)
+  (and (skel? form)
+       (let loop ((body (cdddr form)) (strands '()))
+	 (cond ((null? body)
+		(make-skel (cadr form) (caddr form)
+			   (reverse strands) body))
+	       ((or (eq? 'defstrand (caar body))
+		    (eq? 'deflistener (caar body)))
+		(loop (cdr body) (cons (car body) strands)))
+	       (else
+		(make-skel (cadr form) (caddr form)
+			   (reverse strands) body))))))
+
+;;; Is form a defskeleton
+
+(define (skel? form)
+  (and (list? form)
+       (<= 4 (length form))
+       (eq? 'defskeleton (car form))
+       (alist? (cddr form))))
+
+(define (alist? form)			; Is form a list of pairs?
+  (or (null? form)
+      (and (pair? form)
+	   (pair? (car form))
+	   (alist? (cdr form)))))
+
+;;; To apply a permutation to a skeleton, permute the strands and the
+;;; node orderings.
+(define (apply-perm-to-skel perm skel)
+  (let ((strands (skel-strands skel)))
+    (make-skel
+     (skel-protocol skel)
+     (skel-vars skel)
+     (map (lambda (index)
+	    (list-ref strands index))
+	  perm)
+     (map (apply-perm-to-alist perm) (skel-alist skel)))))
+
+;;; Apply a permutation to the node orderings
+(define (apply-perm-to-alist perm)
+  (lambda (entry)
+    (if (eq? (car entry) 'precedes)
+	(cons (car entry)
+	      (map (apply-perm-to-pair perm) (cdr entry)))
+	entry)))
+
+(define (apply-perm-to-pair perm)
+  (lambda (ordered-pair)
+    (if (and (list? ordered-pair) (= 2 (length ordered-pair)))
+	(list (apply-perm-to-node perm (car ordered-pair))
+	      (apply-perm-to-node perm (cadr ordered-pair)))
+	ordered-pair)))
+
+(define (apply-perm-to-node perm node)
+    (if (and (list? node) (= 2 (length node)))
+	(list (list-ref perm (car node)) (cadr node))
+	node))
+
+;;; The main driver loop and command-line processing
+
+;;; The main loop calls the transformer on each S-expression read from
+;;; the current input.
+
+(define (filter perm)
+  (let ((transformer (apply-perm perm)))
+    (lambda ()
+      (do ((form (read) (read)))
+	  ((eof-object? form))
+	(pretty-print (transformer form))))))
+
+;;; A file description is #f for the standard port, or a file name
+;;; that is a non-empty string that does not start with hyphen.
+
+(define (file-description? file)
+   (or (not file)
+       (and (> (string-length file) 0)
+	    (not (char=? #\- (string-ref file 0))))))
+
+;;; After command-line processing, this routine opens files as needed.
+
+(define (go input output perm)
+  (let ((thunk (filter perm)))
+    (cond ((not (file-description? input))
+	   (display-error "bad input file name"))
+	  ((not (file-description? output))
+	   (display-error "bad output file name"))
+	  (input
+	   (with-input-from-file input
+	     (lambda ()
+	       (if output
+		   (with-output-to-file output thunk)
+		   (thunk)))))
+	  (output
+	   (with-output-to-file output thunk))
+	  (else
+	   (thunk)))))
+
+;;; Parse command-line arguments and pass the result to the go function.
+
+(define (main args)
+  (let loop ((args (cdr args)) (output #f))
+    (cond ((null? args) 		; No input file specified
+	   (display-error "bad args"))
+	  ((string=? (car args) "-h")
+	   (display-help))		; Print help message
+	  ((string=? (car args) "-o")
+	   (if (null? (cdr args))
+	       (display-error "bad args")
+	       (loop (cddr args) (cadr args)))) ; Found an output file
+	  ((string=? (car args) "-")
+	   (check-perm #f output (cdr args)))
+	  (else					; Found input file
+	   (check-perm (car args) output (cdr args))))))
+
+;;; Make sure a permutation is a list of non-negative integers less
+;;; that the length of the permutation.
+(define (check-perm input output args)
+  (let ((n (length args)))
+    (let loop ((args args) (perm '()))
+      (if (null? args)
+	  (go input output (reverse perm))
+	  (let ((index (string->number (car args))))
+	    (if (and (integer? index)
+		     (not (negative? index))
+		     (< index n))
+		(loop (cdr args) (cons index perm))
+		(display-error "bad permutation")))))))
+
+(define (display-help)
+  (display-error "cpsaperm [-h] [-o FILE] FILE INT...")
+  (display-error "where INT... specifies a permutation.")
+  (display-error "Use - as FILE for the standard input."))
+
+(define (display-error obj)
+  (display obj (current-error-port))
+  (newline (current-error-port)))
+
+;;; For an R6RS script, add the following:
+;;; (main (command-line))
diff --git a/src/index.html b/src/index.html
new file mode 100644
--- /dev/null
+++ b/src/index.html
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+      "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+  <title>CPSA</title>
+  <meta name="generator" content="Amaya 9.54, see http://www.w3.org/Amaya/" />
+</head>
+
+<body>
+<h1>CPSA</h1>
+<ul>
+  <li><a href="cpsauser.html">CPSA User Guide</a></li>
+  <li><a href="cpsaprimer.pdf">CPSA Primer</a></li>
+  <li><a href="examples/">Examples</a></li>
+</ul>
+
+<h2>CPSA Shapes as XML</h2>
+
+<form action="/cgi-bin/cpsacgi" method="post" enctype="multipart/form-data">
+  <input type="file" name="cpsa shapes xml" />
+  <input type="submit" value="Send" /> </form>
+
+<h2>CPSA as XML</h2>
+
+<form action="/cgi-bin/cpsacgi" method="post" enctype="multipart/form-data">
+  <input type="file" name="cpsa xml" />
+  <input type="submit" value="Send" /> </form>
+
+<h2>Annotated CPSA Shapes as XML</h2>
+
+<form action="/cgi-bin/cpsacgi" method="post" enctype="multipart/form-data">
+  <input type="file" name="cpsa shapes annotations xml" />
+  <input type="submit" value="Send" /> </form>
+
+<h2>CPSA Shapes and Graph</h2>
+
+<form action="/cgi-bin/cpsacgi" method="post" enctype="multipart/form-data">
+  <input type="file" name="cpsa shapes graph" />
+  <input type="submit" value="Send" /> </form>
+
+<h2>CPSA and Graph</h2>
+
+<form action="/cgi-bin/cpsacgi" method="post" enctype="multipart/form-data">
+  <input type="file" name="cpsa graph" />
+  <input type="submit" value="Send" /> </form>
+
+<h2>CPSA Shapes as Text</h2>
+
+<form action="/cgi-bin/cpsacgi" method="post" enctype="multipart/form-data">
+  <input type="file" name="cpsa shapes" />
+  <input type="submit" value="Send" /> </form>
+
+<h2>CPSA as Text</h2>
+
+<form action="/cgi-bin/cpsacgi" method="post" enctype="multipart/form-data">
+  <input type="file" name="cpsa" />
+  <input type="submit" value="Send" /> </form>
+
+<h2>Annotated CPSA Shapes as Text</h2>
+
+<form action="/cgi-bin/cpsacgi" method="post" enctype="multipart/form-data">
+  <input type="file" name="cpsa shapes annotations" />
+  <input type="submit" value="Send" /> </form>
+</body>
+</html>
diff --git a/src/js2hs b/src/js2hs
new file mode 100644
--- /dev/null
+++ b/src/js2hs
@@ -0,0 +1,5 @@
+#! /bin/sh
+expand "$@" | sed 's/"/\\"/g' | awk '
+  BEGIN { print "    [\"<![CDATA[\"," }
+  { printf("     \"%s\",\n", $0) }
+  END { print "     \"]]>\"]" }'
diff --git a/src/lastlabel.py b/src/lastlabel.py
new file mode 100644
--- /dev/null
+++ b/src/lastlabel.py
@@ -0,0 +1,34 @@
+#!/usr/bin/env python3
+
+# Print the last skeleton label
+# John D. Ramsdell -- October 2021
+
+# The input is expected on standard input
+# Use cpsapp -j to translate the source file into JSON.
+#
+# cpsa4pp -j file | ./lastlabel.py
+
+import sys
+import json
+import cpsajson
+
+def main():
+    if len(sys.argv) != 1:      # Ensure no argument is supplied
+        print("Print the last skeleton label")
+        print("Expects JSON translation of CPSA output on standard input")
+        print("cpsa4pp -j file | ./lastlabel.py")
+        print()
+        print("Usage: " + sys.argv[0])
+        sys.exit(1)
+    xs = cpsajson.load(sys.stdin)
+
+    label = 0                   # Skeleton number
+    for x in xs:
+        if x[0] == "defskeleton":
+            for item in x:
+                if type(item) is list and item[0] == "label":
+                    label = item[1]
+    print(label)
+
+if __name__ == "__main__":
+    main()
diff --git a/src/perm.pl b/src/perm.pl
new file mode 100644
--- /dev/null
+++ b/src/perm.pl
@@ -0,0 +1,80 @@
+% -*- mode: prolog -*-
+
+%% Renumber strands in skeletons
+
+%% Known to work in SWI-Prolog, but not with GNU Prolog.
+
+%% Copyright (c) 2012 The MITRE Corporation
+%%
+%% This program is free software: you can redistribute it and/or
+%% modify it under the terms of the BSD License as published by the
+%% University of California.
+
+:- module(perm, [cpsa_permute/3]).
+
+:- use_module(cpsa).
+
+%% PERMUTE STRANDS
+
+%% A permutation of length n is represented as a list of natural
+%% numbers that contains all the numbers less than n.
+
+%% This program renumbers all the skeletons in a file that have the
+%% same number of strands as is the length of the permutation.
+%% Everything else is passed through unchanged.
+
+%% For example, to swap the strands in skeletons with two strands in
+%% in.txt and put the output into out.txt, type:
+%%
+%% perm: cpsa_permute([1,0], 'in.txt', 'out.txt').
+
+%% This program does not check that the given permutation is in fact a
+%% valid permutation, so be sure to check your output carefully.
+
+cpsa_permute(Perm, InFile, OutFile) :-
+    cpsa:cpsa(InFile, Cpsas),
+    cpsa_permute_all(Perm, Cpsas, OutCpsas),
+    cpsa:cpsas_to_sexprs(OutCpsas, Sexpr),
+    open(OutFile, write, Stream),
+    cpsa:cpsa_sexprs_pp(Stream, Sexpr),
+    close(Stream).
+
+cpsa_permute_all(_, [], []).
+cpsa_permute_all(Perm, [Cpsa|Cpsas], [OutCpsa|OutCpsas]) :-
+    cpsa_permute_skel(Perm, Cpsa, OutCpsa),
+    cpsa_permute_all(Perm, Cpsas, OutCpsas).
+
+cpsa_permute_skel(Perm, k(Prot, Decls, Strands, Precedes, Nons, Pens, Uniqs),
+		  k(Prot, Decls, OutStrands, OutPrecedes, Nons, Pens, Uniqs)) :-
+    perm_list(Perm, Strands, OutStrands),
+    perm_precedes(Perm, Precedes, OutPrecedes),
+    !.
+% If above fails, simply copy the input to the output and don't fail.
+cpsa_permute_skel(_, Cpsa, Cpsa).
+
+%% Apply a permutation to a list.
+perm_list([], _, []).
+perm_list([Index|Indices], List, [Value|Rest]) :-
+    nth0(Index, List, Value),
+    perm_list(Indices, List, Rest).
+
+%% Apply a permutation to a list of pairs of nodes.
+perm_precedes(_, [], []).
+perm_precedes(Perm, [(N0, N1)|Precedes], [(OutN0, OutN1)|OutPrecedes]) :-
+    perm_node(Perm, N0, OutN0),
+    perm_node(Perm, N1, OutN1),
+    perm_precedes(Perm, Precedes, OutPrecedes).
+
+perm_node(Perm, (S, I), (OutS, I)) :-
+    index_of(Perm, S, OutS).
+
+% Returns the index of the first occurence of Element in List
+index_of(List, Element, Index) :-
+    index_of(List, Element, 0, Index).
+index_of([],_,_,_) :-
+    print_message(error,'Element not found in list'),
+    fail.
+index_of([Element|_], Element, Curr, Curr) :- !.
+index_of([_|List], Element, Curr, Index) :-
+    Next is Curr + 1,
+    index_of(List, Element, Next, Index).
diff --git a/src/preskel b/src/preskel
new file mode 100644
--- /dev/null
+++ b/src/preskel
@@ -0,0 +1,11 @@
+#! /bin/sh
+# replaces defpreskeleton with defskeleton
+
+for i
+do
+  if test -f "$i" -a -w "$i"
+  then
+    mv "$i" "$i".bak
+    sed 's/defpreskeleton/defskeleton/g' "$i".bak > "$i"
+  fi
+done
diff --git a/src/prover9.pl b/src/prover9.pl
new file mode 100644
--- /dev/null
+++ b/src/prover9.pl
@@ -0,0 +1,326 @@
+% -*- mode: prolog -*-
+
+%% CPSA tools in Prolog
+
+%% Translates the output of the cpsasas program into the syntax of
+%% Prover9.
+
+%% Known to work in SWI-Prolog, but not with GNU Prolog.
+
+%% To handle the subsort relations of the message algebra, add the
+%% following axioms.
+
+%%    all T (akey(T) -> mesg(T)).
+%%    all T (skey(T) -> mesg(T)).
+%%    all T (name(T) -> mesg(T)).
+%%    all T (text(T) -> mesg(T)).
+%%    all T (name(T) -> mesg(T)).
+
+%% Copyright (c) 2011 The MITRE Corporation
+%%
+%% This program is free software: you can redistribute it and/or
+%% modify it under the terms of the BSD License as published by the
+%% University of California.
+
+:- module(prover9, [prover9/2]).
+
+:- use_module(pp).
+:- use_module(sexpr).
+
+%% prover9(+In, +Out) Translates cpsasas program output in file In,
+%% into the syntax of Prover9 and places it in file Out.
+prover9(In, Out) :-
+	sexpr:read_sexpr_list(In, Forms),
+	open(Out, write, Stream),
+	top_forms_pp(Stream, Forms),
+	close(Stream).
+
+%% Ignore all forms except the ones that start with forall.
+top_forms_pp(_, []).
+top_forms_pp(Out, [[defgoal, _, [forall|Rest]]|Forms]) :-
+	!,
+	form_to_pretty([forall|Rest], Pretty),
+	pp:pr(Out, 72, Pretty),
+	put_char(Out, '.'),
+	nl(Out),
+	nl(Out),
+	top_forms_pp(Out, Forms).
+top_forms_pp(Out, [_|Forms]) :-
+	top_forms_pp(Out, Forms).
+
+%% Formula classification
+
+form_to_pretty([equal|Terms], Pretty) :-
+	!,
+	equal(Terms, Pretty).
+form_to_pretty([implies|Forms], Pretty) :-
+	!,
+	implication(Forms, Pretty).
+form_to_pretty([and|Forms], Pretty) :-
+	!,
+	junction(and, Forms, Pretty).
+form_to_pretty([or| Forms], Pretty) :-
+	!,
+	junction(or, Forms, Pretty).
+form_to_pretty([forall|Rest], Pretty) :-
+	!,
+	quantifier(forall, Rest, Pretty).
+form_to_pretty([exists|Rest], Pretty) :-
+	!,
+	quantifier(exists, Rest, Pretty).
+form_to_pretty(Forms, Pretty) :-
+	atomic_form(Forms, Pretty).
+
+%% In general, breaks are before binary operators.
+
+%% Equality
+
+equal([L, R], Pretty) :-
+	term_to_pretty(L, Left),
+	pp:brk(1, Brk),
+	pp:atm('= ', Op),
+	term_to_pretty(R, Right),
+	pp:blo(0, [Left, Brk, Op, Right], Pretty).
+
+%% Implication
+
+implication([H, C], Pretty) :-
+	form_to_pretty(H, Hypoth),
+	pp:brk(1, Brk),
+	pp:atm('-> ', Op),
+	form_to_pretty(C, Concl),
+	pp:blo(0, [Hypoth, Brk, Op, Concl], Pretty).
+
+%% Conjunction and disjunction
+
+junction(and, [], Pretty) :-
+	pp:atm('$T', Pretty).
+junction(or, [], Pretty) :-
+	pp:atm('$F', Pretty).
+junction(_, [Form], Pretty) :-
+	!,
+	form_to_pretty(Form, Pretty).
+junction(Kind, [Form|Forms], Pretty) :-
+	form_to_pretty(Form, First),
+	junction_op(Kind, Op),
+	junction_rest(Op, Forms, Pretties),
+	pp:blo(0, [First|Pretties], Pretty).
+
+junction_op(and, Pretty) :-
+	pp:atm('&', Pretty).
+junction_op(or, Pretty) :-
+	pp:atm('|', Pretty).
+
+junction_rest(_, [], []).
+junction_rest(Op, [Form|Forms], [Brk, Op, Sp, Next|Pretties]) :-
+	pp:brk(1, Brk),
+	pp:atm(' ', Sp),
+	form_to_pretty(Form, Next),
+	junction_rest(Op, Forms, Pretties).
+
+%% Quantifiers forall and exists
+
+quantifier(_, [[], Body], Pretty) :-
+	!,
+	form_to_pretty(Body, Pretty).
+quantifier(Kind, [Decls, Body], Pretty) :-
+	quantifier_op(Kind, Op),
+	decls(Decls, SVars),
+	quantifier_preds(SVars, Vars, Preds),
+	quantifier_body(Kind, Preds, Body, SBody),
+	quantifier_rest(Op, Vars, SBody, Pretties),
+	pp:blo(2, Pretties, Pretty).
+
+quantifier_op(forall, Pretty) :-
+	pp:atm(all, Pretty).
+quantifier_op(exists, Pretty) :-
+	pp:atm(exists, Pretty).
+
+%% Collect vars in declarations.
+
+decls(Decls, SortedVars) :-
+	decls(Decls, SortedVars, []).
+
+decls([], SVars, SVars).
+decls([Decl|Decls], SVars, End) :-
+	decl(Decl, _, SVars, Middle),
+	decls(Decls, Middle, End).
+
+decl([Sort], Sort, SVars, SVars) :-
+	atom(Sort).
+decl([Var|Decl], Sort, [(Var,Sort)|SVars], End) :-
+	atom(Var),
+	decl(Decl, Sort, SVars, End).
+
+quantifier_preds([], [], []).
+quantifier_preds([(Var,Sort)|SVars], [Var|Vars], [[Sort, Var]|Preds]) :-
+        quantifier_preds(SVars, Vars, Preds).
+
+quantifier_body(_, [], Body, Body) :-
+        !.
+quantifier_body(exists, Preds, [and|Forms], [and|Conj]) :-
+        !,
+        append(Preds, Forms, Conj).
+quantifier_body(exists, Preds, Body, [and|Conj]) :-
+        append(Preds, [Body], Conj).
+quantifier_body(forall, Preds, [implies, [and|Forms], Body],
+		[implies, [and|Conj], Body]) :-
+        !,
+        append(Preds, Forms, Conj).
+quantifier_body(forall, Preds, [implies, Form, Body],
+		[implies, [and|Conj], Body]) :-
+        !,
+        append(Preds, [Form], Conj).
+quantifier_body(forall, Preds, Body, [implies, [and|Preds], Body]).
+
+quantifier_rest(_, [], Body, [Left, Brk, Pretty, Right]) :-
+	pp:atm('(', Left),
+	pp:brk(0, Brk),
+	form_to_pretty(Body, Pretty),
+	pp:atm(')', Right).
+quantifier_rest(Op, [Var|Vars], Body, [Op, Sp, V, Brk|Pretties]) :-
+	pp:atm(' ', Sp),
+	term_to_pretty(Var, V),
+	pp:brk(1, Brk),
+	quantifier_rest(Op, Vars, Body, Pretties).
+
+% Atomic formulas
+
+atomic_form([Pred], Pretty) :-
+	atom(Pred),
+	pp:atm(Pred, Pretty).
+atomic_form([Pred, Term|Terms], Pretty) :-
+	atom(Pred),
+	pp:atm(Pred, P),
+	pp:atm('(', Left),
+	term_to_pretty(Term, T),
+	terms_to_pretty(Terms, Ts),
+	pp:blo(2, [P, Left, T|Ts], Pretty).
+
+terms_to_pretty([], [Right]) :-
+	pp:atm(')', Right).
+terms_to_pretty([Term|Terms], [Comma, Brk, T|Pretties]) :-
+	pp:atm(',', Comma),
+	pp:brk(1, Brk),
+	term_to_pretty(Term, T),
+	terms_to_pretty(Terms, Pretties).
+
+term_to_pretty(Term, Pretty) :-
+	load_term(Term, Internal),
+	term_pp(Internal, Pretty).
+
+%% Load a term using CPSA's parsing rules for terms.  Also, convert
+%% variables into uppercase atoms, and constants into lowercase atoms.
+
+load_term(Term, Internal) :-
+	atom(Term),
+	upcase_symbol(Term, Internal).
+load_term(Term, Internal) :-
+	string(Term),
+	string_to_atom(Term, Atom),
+	downcase_symbol(Atom, Internal).
+load_term(Term, Term) :-
+	integer(Term),
+	Term >= 0.
+load_term([privk|Terms], Internals) :-
+	!,
+	load_term([invk, [pubk|Terms]], Internals).
+load_term([cat,Term], Internals) :-
+	!,
+	load_term(Term, Internals).
+load_term([cat,Term|Terms], [cat, X, Y]) :-
+	!,
+	load_term(Term, X),
+	load_term([cat|Terms], Y).
+load_term([enc|Terms], Internal) :-
+	!,
+	load_enc(Terms, Internal).
+load_term([Term|Terms], [Term|Internals]) :-
+	atom(Term),
+	load_terms(Terms, Internals).
+
+upcase_symbol(Atom, Symbol) :-
+	atom_chars(Atom, Chars),
+	upcase_parts(Chars, Parts),
+	atom_chars(Symbol, Parts).
+
+upcase_parts([First|Rest], [Lead|Tail]) :-
+	upcase_atom(First, Lead),
+	symbol_parts(Rest, Tail).
+
+downcase_symbol(Atom, Symbol) :-
+	atom_chars(Atom, Chars),
+	downcase_parts(Chars, Parts),
+	atom_chars(Symbol, Parts).
+
+%% The null constant is used for the name of the listener role.
+
+downcase_parts([], ['[', ']']).
+downcase_parts([First|Rest], [Lead|Tail]) :-
+	downcase_atom(First, Lead),
+	symbol_parts(Rest, Tail).
+
+symbol_parts([], []).
+symbol_parts(['-'|Rest], ['_'|Tail]) :-
+	!,
+	symbol_parts(Rest, Tail).
+symbol_parts([First|Rest], [First|Tail]) :-
+	symbol_parts(Rest, Tail).
+
+load_enc(Terms, [enc, X, Y]) :-
+	split(Terms, As, B),
+	load_term([cat|As], X),
+	load_term(B, Y).
+
+split([X], [], X).
+split([X, Y|Z], [X|A], B) :-
+	split([Y|Z], A, B).
+
+load_terms([], []).
+load_terms([T|Ts], [I|Is]) :-
+	load_term(T, I),
+	load_terms(Ts, Is).
+
+%% Pretty print a term.
+
+term_pp(Term, Pretty) :-
+	atom(Term),
+	pp:atm(Term, Pretty).
+term_pp([Term], Pretty) :-
+	atom(Term),
+	pp:atm(Term, Pretty).
+term_pp([Pred, Term|Terms], Pretty) :-
+	atom(Pred),
+	pp:atm(Pred, P),
+	pp:atm('(', Left),
+	term_pp(Term, Arg),
+	args_pp(Terms, Pretties),
+	blo(2, [P, Left, Arg|Pretties], Pretty).
+%% Natural numbers are turned into lists of nulls.
+%% The number is the length of the list.
+term_pp(0, Pretty) :-
+	pp:atm('[]', Pretty).
+term_pp(Term, Pretty) :-
+	integer(Term),
+	succ(Num, Term),
+	pp:atm('[[]', First),
+	nat_pp(Num, Pretties),
+	blo(1, [First|Pretties], Pretty).
+
+args_pp([], [Pretty]) :-
+	pp:atm(')', Pretty).
+args_pp([Term|Terms], [Comma, Brk, Pretty|Pretties]) :-
+	pp:atm(',', Comma),
+	pp:brk(1, Brk),
+	term_pp(Term, Pretty),
+	args_pp(Terms, Pretties).
+
+nat_pp(0, [Right]) :-
+	!,
+	pp:atm(']', Right).
+nat_pp(Num, [Comma, Brk, Nil|Pretties]) :-
+	succ(Num1, Num),
+	pp:atm(',', Comma),
+	pp:brk(1, Brk),
+	pp:atm('[]', Nil),
+	nat_pp(Num1, Pretties).
diff --git a/src/scala/Main.scala b/src/scala/Main.scala
new file mode 100644
--- /dev/null
+++ b/src/scala/Main.scala
@@ -0,0 +1,47 @@
+package cpsaextras
+
+import java.io._
+import java.util.ResourceBundle;
+
+object Main {
+
+  /**
+   * @param args the command line arguments
+   */
+  def main(args: Array[String]): Unit = {
+    if (args.length != 1) {
+      println("Usage: cpsaextras INPUT")
+      println(getVersion())
+    }
+    else {
+      val in = new BufferedReader(new FileReader(args(0)))
+      val sr = new SExprReader(args(0), in)
+      val out = new PrintWriter(System.out)
+      while (true) {
+	val x = sr.read()
+	if (x == null) {
+	  out.close()
+	  return
+	}
+	Printer.pp(out, 80, 2, x)
+	out.println()
+	out.println()
+      }
+    }
+  }
+
+  private var resources: ResourceBundle = null
+
+  private val VERSION_RESOURCES = "cpsaextras/version"
+
+  /**
+   * Get program name and a version number from a resource.
+   */
+  def getVersion() = {
+    if (resources == null)
+      resources = ResourceBundle.getBundle(VERSION_RESOURCES)
+    val program = resources.getString("program")
+    val version = resources.getString("version")
+    program + " " + version
+  }
+}
diff --git a/src/scala/Pretty.scala b/src/scala/Pretty.scala
new file mode 100644
--- /dev/null
+++ b/src/scala/Pretty.scala
@@ -0,0 +1,159 @@
+/*
+ * A simple pretty printer
+ *
+ * The alogithm is by Lawrence C. Paulson, who simplified an algorithm
+ * by Derek C. Oppen.
+ *
+ * Derek C. Oppen, Prettyprinting, ACM Transactions on Programming
+ * Languages and Systems, Vol 2, No. 4, October 1980, Pages 465-483.
+ *
+ * Copyright (c) 2010 The MITRE Corporation
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the BSD License as published by the University
+ * of California.
+ */
+
+/* A pretty printer based on ML programs with the following copyright
+
+(**** ML Programs from Chapter 8 of
+
+  ML for the Working Programmer, 2nd edition
+  by Lawrence C. Paulson, Computer Laboratory, University of Cambridge.
+  (Cambridge University Press, 1996)
+
+Copyright (C) 1996 by Cambridge University Press.
+Permission to copy without fee is granted provided that this copyright
+notice and the DISCLAIMER OF WARRANTY are included in any copy.
+
+DISCLAIMER OF WARRANTY.  These programs are provided `as is' without
+warranty of any kind.  We make no warranties, express or implied, that the
+programs are free of error, or are consistent with any particular standard
+of merchantability, or that they will meet your requirements for any
+particular application.  They should not be relied upon for solving a
+problem whose incorrect solution could result in injury to a person or loss
+of property.  If you do use the programs or functions in such a manner, it
+is at your own risk.  The author and publisher disclaim all liability for
+direct, incidental or consequential damages resulting from your use of
+these programs or functions.
+****)
+
+*/
+
+package cpsaextras
+
+import java.io.PrintWriter
+
+/** Abstract data type for pretty printing. */
+sealed abstract class Pretty
+private case class Str(s: String) extends Pretty
+private case class Brk(n: Int) extends Pretty
+private case class Blo(l: List[Pretty], indent: Int, n: Int) extends Pretty
+private case class Grp(l: List[Pretty], indent: Int, n: Int) extends Pretty
+
+object Pretty {
+  // Exported constructors
+
+  /** Create a string.
+   * @param s string to be printed
+   */
+  def str(s: String): Pretty = {
+    Str(s)
+  }
+
+  /** Create a break point.
+   * @param n number of spaces
+   */
+  def brk(n: Int): Pretty = {
+    Brk(n)
+  }
+
+  /** Create an indentation block.  When pretty printing, any of the
+   * break points in the list can be used.
+   * @param indent number of spaces to indent
+   * @param es a list that includes break points
+   */
+  def blo(indent: Int, es: List[Pretty]): Pretty = {
+    Blo(es, indent, len(es, 0))
+  }
+
+  /** Create an indentation group.  When pretty printing,
+   * either all or none of the break points are used.
+   * @param indent number of spaces to indent
+   * @param es a list that includes break points
+   */
+  def grp(indent: Int, es: List[Pretty]): Pretty = {
+    Grp(es, indent, len(es, 0))
+  }
+
+  private def len(es: List[Pretty], n: Int): Int = {
+    es match {
+      case Nil => n
+      case e :: es => len(es, size(e) + n)
+    }
+  }
+
+  private def size(e: Pretty): Int = {
+    e match {
+      case Str(s) => s.length
+      case Brk(n) => n
+      case Blo(_, _, n) => n
+      case Grp(_, _, n) => n
+    }
+  }
+
+  /** Print an object of type Pretty. */
+  def pr(w: PrintWriter, margin: Int, e: Pretty): Unit = {
+    printing(w, margin, List(e), margin, 0, false, margin)
+  }
+
+  private def printing(w: PrintWriter, margin: Int, es: List[Pretty],
+		       blockspace:Int, after: Int, force: Boolean,
+		       space: Int): Int = {
+    es match {
+      case Nil => space
+      case e :: es =>
+	val space1 = e match {
+	  case Str(s) =>		// Place a string
+	    w.print(s)
+	    space - s.length
+	  case Brk(n) =>		// Place breakable space
+	    if (!force && n + breakdist(es, after) <= space)
+	      blanks(w, n, space)	// Don't break
+	    else {
+	      w.println()		// Break
+	      blanks(w, margin - blockspace, margin)
+	    }
+	  case Blo(bes, indent, _) =>	// Place a block
+	    printing(w, margin, bes, space - indent,
+		     breakdist(es, after), false, space)
+	  case Grp(bes, indent, n) =>	// Place a group
+	    val dist = breakdist(es, after)
+	    printing(w, margin, bes, space - indent,
+		     dist, n + dist > space, space)
+	}
+	printing(w, margin, es, blockspace, after, force, space1)
+    }
+  }
+
+  // Find the distance to the nearest breakable space
+  private def breakdist(es: List[Pretty], after: Int): Int = {
+    es match {
+      case Nil => after
+      case Str(s) :: es => s.length + breakdist(es, after)
+      case Brk(_) :: es => 0
+      case Blo(_, _, n) :: es => n + breakdist(es, after)
+      case Grp(_, _, n) :: es => n + breakdist(es, after)
+    }
+  }
+
+  // Place spaces
+  private def blanks(w: PrintWriter, n: Int, space: Int): Int = {
+    if (n <= 0)
+      space
+    else {
+      w.print(' ')
+      blanks(w, n - 1, space - 1)
+    }
+  }
+}
diff --git a/src/scala/Printer.scala b/src/scala/Printer.scala
new file mode 100644
--- /dev/null
+++ b/src/scala/Printer.scala
@@ -0,0 +1,122 @@
+/*
+ * A CPSA specific pretty printer
+ *
+ * Copyright (c) 2009 The MITRE Corporation
+ *
+ * This program is free software: you can redistribute it and/or
+ * modify it under the terms of the BSD License as published by the
+ * University of California.
+ */
+
+package cpsaextras
+
+import java.io.PrintWriter
+
+object Printer {
+
+  /** CPSA specific pretty printer.
+   * The pretty printer that indents a constant amount for each list.  The
+   * top-level lists are laid out specially.  Whenever some breaks
+   * occur, all breaks are forced.  Also, breaks are only placed before
+   * strings and lists.  CPSA protocols are handled specially.  Each
+   * defrole is handled as are top-level lists.
+   *
+   * @param w the output writer
+   * @param margin the width to be filled
+   * @param indent the number of spaces in an indent
+   * @param x the S-expression to be pretty printed
+   */
+  def pp[A](w: PrintWriter, margin: Int, indent: Int, x: SExpr[A]): Unit = {
+    Pretty.pr(w, margin, pretty(indent, x))
+  }
+
+  private def pretty[A](indent: Int, x: SExpr[A]): Pretty = {
+    x match {
+      case L(_, (x@S(_, "defprotocol")) :: xs) =>
+	roles(indent, xs, List(block(indent, x), Pretty.str("(")))
+      case x@L(_, S(_, "defmacro") :: _) =>
+	block(indent, x)
+      case x@L(_, S(_, "herald") :: _) =>
+	block(indent, x)
+      case _ =>
+	group(indent, x)
+    }
+  }
+
+  // Role specific pretty printer
+  private def roles[A](indent: Int, xs: List[SExpr[A]],
+		       acc: List[Pretty]): Pretty = {
+    xs match {
+      case Nil =>
+	Pretty.grp(indent, (Pretty.str(")") :: acc).reverse)
+      case (x@S(_, _)) :: xs =>
+	roles(indent, xs, block(indent, x) :: Pretty.str(" ") :: acc)
+      case (x@Q(_, _)) :: xs =>
+	roles(indent, xs, block(indent, x) :: Pretty.brk(1) :: acc)
+      case (x@N(_, _)) :: xs =>
+	roles(indent, xs, block(indent, x) :: Pretty.str(" ") :: acc)
+      case (x@L(_, S(_, "defrole") :: _)) :: xs =>
+	roles(indent, xs, group(indent, x) :: Pretty.brk(1) :: acc)
+      case (x@L(_, _)) :: xs =>
+	roles(indent, xs, block(indent, x) :: Pretty.brk(1) :: acc)
+    }
+  }
+
+  // A pretty printer for top-level S-expressions
+  private def group[A](indent: Int, x: SExpr[A]): Pretty = {
+    x match {
+      case L(a, l) => grouplist(indent, l)
+      case _ => block(indent, x)
+    }
+  }
+
+  private def grouplist[A](indent: Int, xs: List[SExpr[A]]): Pretty = {
+    xs match {
+      case Nil => Pretty.str("()")
+      case x :: xs =>
+	grouprest(indent, xs, List(block(indent, x), Pretty.str("(")))
+    }
+  }
+
+  private def grouprest[A](indent: Int, xs: List[SExpr[A]],
+			acc: List[Pretty]): Pretty = {
+    xs match {
+      case Nil =>
+	Pretty.grp(indent, (Pretty.str(")") :: acc).reverse)
+      case (x@S(_, _)) :: xs =>
+	grouprest(indent, xs, block(indent, x) :: Pretty.str(" ") :: acc)
+      case (x@Q(_, _)) :: xs =>
+	grouprest(indent, xs, block(indent, x) :: Pretty.brk(1) :: acc)
+      case (x@N(_, _)) :: xs =>
+	grouprest(indent, xs, block(indent, x) :: Pretty.str(" ") :: acc)
+      case (x@L(_, _)) :: xs =>
+	grouprest(indent, xs, block(indent, x) :: Pretty.brk(1) :: acc)
+    }
+  }
+
+  // A pretty printer for interior lists using block style breaking.
+  private def block[A](indent: Int, x: SExpr[A]): Pretty = {
+    x match {
+      case L(a, l) => blocklist(indent, l)
+      case _ => Pretty.str(x.toString())
+    }
+  }
+
+  private def blocklist[A](indent: Int, xs: List[SExpr[A]]): Pretty = {
+    xs match {
+      case Nil => Pretty.str("()")
+      case x :: xs =>
+	blockrest(indent, xs, List(block(indent, x), Pretty.str("(")))
+    }
+  }
+
+  private def blockrest[A](indent: Int, xs: List[SExpr[A]],
+			acc: List[Pretty]): Pretty = {
+    xs match {
+      case Nil =>
+	Pretty.blo(indent, (Pretty.str(")") :: acc).reverse)
+      case x :: xs =>
+	blockrest(indent, xs, block(indent, x) :: Pretty.brk(1) :: acc)
+    }
+  }
+}
diff --git a/src/scala/SExpr.scala b/src/scala/SExpr.scala
new file mode 100644
--- /dev/null
+++ b/src/scala/SExpr.scala
@@ -0,0 +1,282 @@
+/*
+ * S-expressions
+ *
+'* Copyright (c) 2010 The MITRE Corporation
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the BSD License as published by the University
+ * of California.
+ */
+
+package cpsaextras
+
+import java.io._
+
+/**
+ * Annotated S-expressions.  Each S-expression can be annotated with
+ * something of type A.
+ */
+sealed abstract class SExpr[A] {
+  /** The annotation. */
+  val a: A
+}
+/** Case of a symbol. */
+case class S[A](a: A, s: String) extends SExpr[A] {
+  override def toString(): String = {
+    s.toString()
+  }
+}
+/** Case of a string. */
+case class Q[A](a: A, q: String) extends SExpr[A] {
+  override def toString(): String = {
+    "\"" + q.toString() + "\""
+  }
+}
+/** Case of a number. */
+case class N[A](a: A, n: Int) extends SExpr[A] {
+  override def toString(): String = {
+    n.toString()
+  }
+}
+/** Case of a list of S-expressions. */
+case class L[A](a: A, l: List[SExpr[A]]) extends SExpr[A] {
+  override def toString(): String = {
+    l.toString()
+  }
+}
+
+/** The file position annotation. */
+final case class Pos(file: String, line: Int, column: Int) {
+  override def toString (): String = {
+    file + ":" + line + ":" + column + ": "
+  }
+}
+
+/** An S-expression reader.
+ *
+ * @param file name of the input file
+ * @param in stream associated with the input file
+ */
+class SExprReader(file: String, in: Reader) {
+  private var line = 1			// Stream line number
+  private var column = 1		// Stream column
+
+  // A scanner token
+  private sealed abstract class Token
+  // A token for a non-list S-expression
+  private case class Atom(a: SExpr[Pos]) extends Token
+  // A token for the left parenthesis
+  private case class LParen(p: Pos) extends Token
+  // A token for the right parenthesis
+  private case class RParen(p: Pos) extends Token
+  // A token for end-of-file
+  private case object Eof extends Token
+
+  /**
+   * Reads an S-expression annotated with file positions.
+   * @return an S-expression or null on end-of-file
+   */
+  def read(): SExpr[Pos] = {
+    scan() match {
+      case Atom(a) => a
+      case LParen(p) => list(p, Nil)
+      case RParen(p) =>
+	in.close()
+	throw new IOException(p + "Close of unopened list")
+      case Eof =>
+	in.close()
+	null
+    }
+  }
+
+  // Parse a non top-level list
+  private def list(pos: Pos, acc: List[SExpr[Pos]]): SExpr[Pos] = {
+    scan() match {
+      case Atom(a) => list(pos, a :: acc)
+      case LParen(p) => list(pos, list(p, Nil) :: acc)
+      case RParen(_) => L(pos, acc.reverse)
+      case Eof =>
+	in.close()
+	throw new IOException(pos + "Unexpected end of input in list")
+    }
+  }
+
+  // Scanner
+
+  // Consume white space and then dispatch on the first character
+  private def scan(): Token = {
+    val ch = get()
+    if (Character.isWhitespace(ch))
+      scan()
+    else ch match {
+      case -1 => Eof
+      case '(' => LParen(Pos(file, line, column))
+      case ')' => RParen(Pos(file, line, column))
+      case ';' => comment()
+      case _ => atom(ch)
+    }
+  }
+
+  // Consume a comment and then resume scanning
+  private def comment(): Token = {
+    get() match {
+      case -1 => Eof
+      case '\n' => scan()
+      case _ => comment()
+    }
+  }
+
+  // Scan an atom
+  private def atom(ch: Int): Token = {
+    val p = Pos(file, line, column)	// Position of atom
+    ch match {
+      case '"' => string(p, new StringBuilder())
+      case '+' => numOrSym(p, singleton(ch))
+      case '-' => numOrSym(p, singleton(ch))
+      case _ =>
+	if (Character.isDigit(ch))
+	  number(p, singleton(ch))
+	else if (isSym(ch))
+	  symbol(p, singleton(ch))
+	else {
+	  in.close()
+	  throw new IOException(p + "Bad char in atom")
+	}
+    }
+  }
+
+  // Create a string buffer with one character
+  private def singleton(ch: Int): StringBuilder = {
+    val sb = new StringBuilder()
+    sb.append(ch.toChar)
+    sb
+  }
+
+  // Scan a string atom
+  private def string(p: Pos, sb: StringBuilder): Token = {
+    val ch = get()
+    if (ch == -1) {
+      in.close()
+      throw new IOException(p + "End of input in string")
+    }
+    else if (ch == '"')
+      Atom(Q(p, sb.toString().intern()))
+    else if (isStr(ch)) {
+      sb.append(ch.toChar)
+      string(p, sb)
+    }
+    else {
+      in.close()
+      throw new IOException(p + "Bad char for string")
+    }
+  }
+
+  // Scan a number atom
+  private def number(p: Pos, sb: StringBuilder): Token = {
+    val ch = peek()
+    if (ch == -1)
+      Atom(N(p, Integer.parseInt(sb.toString())))
+    else if (Character.isDigit(ch)) {
+      get()
+      sb.append(ch.toChar)
+      number(p, sb)
+    }
+    else if (isSym(ch)) {
+      in.close()
+      throw new IOException(p + "Bad char after number")
+    }
+    else
+      Atom(N(p, Integer.parseInt(sb.toString())))
+  }
+
+  // See if an atom is an number or a symbol
+  private def numOrSym(p: Pos, sb: StringBuilder): Token = {
+    val ch = peek()
+    if (ch == -1)
+      symbol(p, sb)
+    else if (Character.isDigit(ch))
+      number(p, sb)
+    else
+      symbol(p, sb)
+  }
+
+  // Scan a symbol
+  private def symbol(p: Pos, sb: StringBuilder): Token = {
+    val ch = peek()
+    if (ch == -1)
+      Atom(S(p, sb.toString().intern()))
+    else if (isSym(ch)) {
+      get()
+      sb.append(ch.toChar)
+      symbol(p, sb)
+    }
+    else
+      Atom(S(p, sb.toString().intern()))
+  }
+
+  // Is character a constituent of a symbol?
+  private def isSym(ch: Int) = {
+    ch match {
+      case '+' => true
+      case '-' => true
+      case '*' => true
+      case '/' => true
+      case '<' => true
+      case '=' => true
+      case '>' => true
+      case '!' => true
+      case '?' => true
+      case ':' => true
+      case '$' => true
+      case '%' => true
+      case '_' => true
+      case '&' => true
+      case '~' => true
+      case '^' => true
+      case _ => Character.isLetterOrDigit(ch)
+    }
+  }
+
+  // Is character a constituent of a string?
+  private def isStr(ch: Int) = {
+    ch match {
+      case '"' => false
+      case '\\' => false
+      case _ => !Character.isISOControl(ch)
+    }
+  }
+
+  // Character reader with look ahead
+
+  private var peeked = false		// Is look ahead active?
+  private var seen = 0			// peeked character
+
+  // Get next character and set the current file position.
+  private def get(): Int = {
+    val next =
+      if (peeked) {
+	peeked = false
+	seen
+      }
+      else
+	in.read()
+    if (next == '\n') {
+      line += 1
+      column = 1
+    }
+    else
+      column += 1
+    next
+  }
+
+  // Read ahead if need be
+  private def peek(): Int = {
+    if (peeked)
+      seen
+    else {
+      peeked = true
+      seen = in.read()
+      seen
+    }
+  }
+}
diff --git a/src/split.py b/src/split.py
--- a/src/split.py
+++ b/src/split.py
@@ -19,6 +19,7 @@
 def main():
     if len(sys.argv) != 2:      # Ensure one file name supplied
         print("Usage: " + sys.argv[0] + " file")
+        sys.exit(1)
     fname = sys.argv[1]
     (root, ext) = os.path.splitext(fname)
     f = open(fname, 'r')
diff --git a/src/unsorted.pl b/src/unsorted.pl
new file mode 100644
--- /dev/null
+++ b/src/unsorted.pl
@@ -0,0 +1,293 @@
+% -*- mode: prolog -*-
+
+%% Unsorted CPSA terms
+
+%% Copyright (c) 2013 The MITRE Corporation
+%%
+%% This program is free software: you can redistribute it and/or
+%% modify it under the terms of the BSD License as published by the
+%% University of California.
+
+:- module(unsorted, [to_unsorted/3, from_unsorted/3,
+                     unify/3, unify/4, subst/3]).
+
+:- use_module(cpsa).
+
+%% An unsorted term has inclusion operations inserted to preserve sort
+%% constraints within an unsorted algebra.  It also replaces the privk
+%% operation in favor of invk o pubk.
+
+%% Term ::= Tag | Var | name(Var) | text(Var) | data(Var) | akey(Akey)
+%%       |  skey(Skey) | cat(Term, Term) | enc(Term, Term) | hash(Term).
+%% Akey ::= Var | invk(Akey) | pubk(Var) | pubk(Tag, Var).
+%% Skey ::= Var | ltk(Var, Var).
+
+%% to_unsorted(+Decls, +Term, -Uterm)
+to_unsorted(Decls, Term, Uterm) :-
+    % Add inclusion operation to each variable that needs one
+    decls_as_pairs(Decls, VarMap),
+    to_unsorted_term(VarMap, Term, Uterm).
+
+% Note that the operation privk is eliminated in favor of invk o pubk.
+to_unsorted_term(_, Term, Term) :-
+    string(Term),		% Case of tags
+    !.
+to_unsorted_term(VarMap, Term, Uterm) :-
+    atom(Term),			% Case of variables
+    lookup(Term, VarMap, Uterm).
+to_unsorted_term(VarMap, invk(Term), akey(invk(Uterm))) :-
+    to_unsorted_term(VarMap, Term, akey(Uterm)).
+to_unsorted_term(VarMap, pubk(Term), akey(pubk(Uterm))) :-
+    to_unsorted_term(VarMap, Term, name(Uterm)).
+to_unsorted_term(VarMap, pubk(Term0, Term1), akey(pubk(Uterm0, Uterm1))) :-
+    string(Uterm0),		% Case of pubk(tag, name var)
+    to_unsorted_term(VarMap, Term0, Uterm0),
+    to_unsorted_term(VarMap, Term1, name(Uterm1)).
+to_unsorted_term(VarMap, privk(Term), Uterm) :-
+    to_unsorted_term(VarMap, invk(pubk(Term)), Uterm).
+to_unsorted_term(VarMap, privk(Term0, Term1), Uterm) :-
+    to_unsorted_term(VarMap, invk(pubk(Term0, Term1)), Uterm).
+to_unsorted_term(VarMap, ltk(Term0, Term1), skey(ltk(Uterm0, Uterm1))) :-
+    to_unsorted_term(VarMap, Term0, name(Uterm0)),
+    to_unsorted_term(VarMap, Term1, name(Uterm1)).
+to_unsorted_term(VarMap, cat(Term0, Term1), cat(Uterm0, Uterm1)) :-
+    to_unsorted_term(VarMap, Term0, Uterm0),
+    to_unsorted_term(VarMap, Term1, Uterm1).
+to_unsorted_term(VarMap, enc(Term0, Term1), enc(Uterm0, Uterm1)) :-
+    to_unsorted_term(VarMap, Term0, Uterm0),
+    to_unsorted_term(VarMap, Term1, Uterm1).
+to_unsorted_term(VarMap, hash(Term), hash(Uterm)) :-
+    to_unsorted_term(VarMap, Term, Uterm).
+
+% Adds inclusion operations to variables other than those of sort mesg.
+decls_as_pairs([], []).
+decls_as_pairs([d(Sort, Vars)|Decls], VarMap) :-
+    decl_as_pairs(Vars, Sort, Decls, VarMap).
+
+decl_as_pairs([], _, Decls, VarMap) :-
+    decls_as_pairs(Decls, VarMap).
+decl_as_pairs([Var|Vars], mesg, Decls, [(Var, Var)|VarMap]) :-
+    !,
+    decl_as_pairs(Vars, mesg, Decls, VarMap).
+decl_as_pairs([Var|Vars], Sort, Decls, [(Var, Term)|VarMap]) :-
+    Term =.. [Sort, Var],
+    decl_as_pairs(Vars, Sort, Decls, VarMap).
+
+% Lookup value in an association list
+lookup(Key, [(Key, Value)|_], Value) :-
+    !.
+lookup(Key, [_|Map], Value) :-
+    lookup(Key, Map, Value).
+
+% From unsorted translates back to the order-sorted algebra
+% representation and also produces the appropriate variable
+% declaration.
+
+%% from_unsorted(+Uterm, -Term, -Decls).
+from_unsorted(InTerm, OutTerm, Decls) :-
+    from_unsorted_term(InTerm, [], OutTerm, Map),
+    pairs_as_decls(Map, [], Decls).
+
+% Convert an association list representation to a list of declarations.
+pairs_as_decls([], Decls, Decls).
+% Case when sort decls has already been constructed
+pairs_as_decls([(_, Value)|Map], Decls, Decls) :-
+    member(d(Value, _), Decls),
+    !,
+    pairs_as_decls(Map, Decls, Decls).
+% Construct one sort decl
+pairs_as_decls([(Var, Value)|Map], Decls, [d(Value, [Var|Vars])|Decls]) :-
+    select(Value, Map, Vars).
+
+% Collect vars of a given sort.
+select(_, [], []).
+select(Value, [(Var, Value)|Map], [Var|Vars]) :-
+    !,
+    select(Value, Map, Vars).
+select(Value, [_|Map], Vars) :-
+    select(Value, Map, Vars).
+
+%% The core of the translation is here.
+
+%% from_unsorted_term(+InTerm, +InMap, -OutTerm, -OutMap).
+from_unsorted_term(Term, Map, Term, Map) :-
+    string(Term),		% Tags
+    !.
+from_unsorted_term(Term, InMap, Term, OutMap) :-
+    atom(Term),			% Variables of sort mesg
+    extend_map(Term, mesg, InMap, OutMap).
+from_unsorted_term(name(Term), InMap, Term, OutMap) :-
+    atom(Term),			% Variables of sort name
+    extend_map(Term, name, InMap, OutMap).
+from_unsorted_term(text(Term), InMap, Term, OutMap) :-
+    atom(Term),			% Variables of sort text
+    extend_map(Term, text, InMap, OutMap).
+from_unsorted_term(data(Term), InMap, Term, OutMap) :-
+    atom(Term),			% Variables of sort data
+    extend_map(Term, data, InMap, OutMap).
+from_unsorted_term(skey(InTerm), InMap, OutTerm, OutMap) :-
+    from_unsorted_skey_term(InTerm, InMap, OutTerm, OutMap).
+from_unsorted_term(akey(InTerm), InMap, OutTerm, OutMap) :-
+    from_unsorted_akey_term(InTerm, InMap, OutTerm, OutMap).
+from_unsorted_term(cat(InTerm0, InTerm1), InMap, % Pairs
+		   cat(OutTerm0, OutTerm1), OutMap) :-
+    from_unsorted_term(InTerm0, InMap, OutTerm0, Map),
+    from_unsorted_term(InTerm1, Map, OutTerm1, OutMap).
+from_unsorted_term(enc(InTerm0, InTerm1), InMap, % Encryption
+		   enc(OutTerm0, OutTerm1), OutMap) :-
+    from_unsorted_term(InTerm0, InMap, OutTerm0, Map),
+    from_unsorted_term(InTerm1, Map, OutTerm1, OutMap).
+
+% Terms of sort skey
+from_unsorted_skey_term(Term, InMap, Term, OutMap) :-
+    atom(Term), 		% Variables of sort skey
+    extend_map(Term, skey, InMap, OutMap).
+% ltk: long term keys
+from_unsorted_skey_term(ltk(InTerm0, InTerm1), InMap,
+			ltk(OutTerm0, OutTerm1), OutMap) :-
+    from_unsorted_term(name(InTerm0), InMap, OutTerm0, Map),
+    from_unsorted_term(name(InTerm1), Map, OutTerm1, OutMap).
+
+% Terms of sort akey
+from_unsorted_akey_term(Term, InMap, Term, OutMap) :-
+    atom(Term), 		% Variables of sort akey
+    extend_map(Term, akey, InMap, OutMap).
+from_unsorted_akey_term(invk(pubk(InTerm)), InMap, privk(OutTerm), OutMap) :-
+    !,				% privk
+    from_unsorted_term(name(InTerm), InMap, OutTerm, OutMap).
+from_unsorted_akey_term(pubk(InTerm), InMap, pubk(OutTerm), OutMap) :-
+    from_unsorted_term(name(InTerm), InMap, OutTerm, OutMap). % pubk
+from_unsorted_akey_term(invk(InTerm), InMap, invk(OutTerm), OutMap) :-
+    from_unsorted_akey_term(InTerm, InMap, OutTerm, OutMap). % invk
+
+% Extend a mapping or fail with an inconsistent mapping.
+%% extend_map(+Key, +Value, +Map, -NewMap).
+extend_map(Key, Value, Map, Map) :-
+    lookup(Key, Map, Result),
+    !,
+    Result = Value.	   % Fails when key is mapped to another value
+% Extend Map when Key is not mapped as long as var does occur in term
+extend_map(Key, Value, Map, [(Key, Value)|Map]) :-
+    \+occurs(Key, Value).
+
+occurs(Var, Var).
+occurs(Var, Term) :-
+    Term =.. [_|Terms],
+    occurs_list(Var, Terms).
+
+occurs_list(Var, [Term|_]) :-
+    occurs(Var, Term),
+    !.
+occurs_list(Var, [_|Terms]) :-
+    occurs_list(Var, Terms).
+
+%% Unification of unsorted terms given the equation invk(invk(k)) = k.
+
+%% unify(+Term0, +Term1, -Subst).
+unify(Term0, Term1, Subst) :-
+    unify(Term0, Term1, [], Subst).
+
+%% This version extends a substition.
+%% unify(+Term0, +Term1, +InSubst, -OutSubst).
+unify(Term0, Term1, InSubst, OutSubst) :-
+    chase(Term0, InSubst, Term2),
+    chase(Term1, InSubst, Term3),
+    unify_aux(Term2, Term3, InSubst, OutSubst).
+
+%% Find the canonical variable within an equivalence class.
+%% This version of the chase handles the equation invk(invk(k)) = k.
+chase(Term, _, Term) :-
+    string(Term),		% Tag
+    !.
+chase(InTerm, Subst, OutTerm) :-
+    atom(InTerm),		% Variable
+    !,
+    chase_var(InTerm, Subst, OutTerm).
+chase(invk(InTerm), Subst, OutTerm) :-
+    !,
+    chase_invk(InTerm, Subst, OutTerm).
+chase(Term, _, Term).
+
+chase_var(InTerm, Subst, OutTerm) :-
+    lookup(InTerm, Subst, Term),
+    !,
+    chase(Term, Subst, OutTerm).
+chase_var(Term, _, Term).
+
+chase_invk(Term, _, Term) :-
+    string(Term),		% This should never happen
+    !.
+chase_invk(InTerm, Subst, OutTerm) :-
+    atom(InTerm),
+    !,
+    chase_invk_var(InTerm, Subst, OutTerm).
+chase_invk(invk(InTerm), Subst, OutTerm) :-
+    !,
+    chase(InTerm, Subst, OutTerm).
+chase_invk(Term, _, invk(Term)).
+
+chase_invk_var(InTerm, Subst, OutTerm) :-
+    lookup(InTerm, Subst, Term),
+    !,
+    chase_invk(Term, Subst, OutTerm).
+chase_invk_var(Term, _, invk(Term)).
+
+%% The remainder of unification assumes that the chase has been
+%% applied to the two terms.
+
+unify_aux(Term, Term, Subst, Subst).
+unify_aux(Term0, _, Subst, Subst) :-
+    string(Term0),
+    !,
+    fail.
+unify_aux(Term0, Term1, InSubst, OutSubst) :-
+    atom(Term0),
+    !,
+    extend_map(Term0, Term1, InSubst, OutSubst).
+unify_aux(Term0, Term1, InSubst, OutSubst) :-
+    atom(Term1),
+    !,
+    unify_aux(Term1, Term0, InSubst, OutSubst).
+%% Clauses that handle the equation
+unify_aux(invk(Term0), pubk(Term1), InSubst, OutSubst) :-
+    unify_aux(Term0, invk(pubk(Term1)), InSubst, OutSubst).
+unify_aux(pubk(Term0), invk(Term1), InSubst, OutSubst) :-
+    unify_aux(Term1, invk(pubk(Term0)), InSubst, OutSubst).
+%% Clause that handles other function symbols
+unify_aux(Term0, Term1, InSubst, OutSubst) :-
+    Term0 =.. [Fun|Terms0],
+    Term1 =.. [Fun|Terms1],
+    unify_list(Terms0, Terms1, InSubst, OutSubst).
+
+unify_list([], [], Subst, Subst).
+unify_list([Term0|Terms0], [Term1|Terms1], InSubst, OutSubst) :-
+    unify(Term0, Term1, InSubst, Subst),
+    unify_list(Terms0, Terms1, Subst, OutSubst).
+
+%% Substition
+
+%% subst(+InTerm, +Subst, -OutTerm).
+
+subst(InTerm, Subst, OutTerm) :-
+    chase(InTerm, Subst, Term),
+    subst_aux(Term, Subst, OutTerm).
+
+subst_aux(Term, _, Term) :-
+    atom(Term),
+    !.
+subst_aux(Term, _, Term) :-
+    string(Term),
+    !.
+% Apply equation
+subst_aux(invk(InTerm), Subst, OutTerm) :-
+    subst(InTerm, Subst, invk(OutTerm)),
+    !.
+subst_aux(InTerm, Subst, OutTerm) :-
+    InTerm =.. [Fun|InTerms],
+    subst_list(InTerms, Subst, OutTerms),
+    OutTerm =.. [Fun|OutTerms].
+
+subst_list([], _, []).
+subst_list([InTerm|InTerms], Subst, [OutTerm|OutTerms]) :-
+    subst(InTerm, Subst, OutTerm),
+    subst_list(InTerms, Subst, OutTerms).
diff --git a/src/zoom.js b/src/zoom.js
new file mode 100644
--- /dev/null
+++ b/src/zoom.js
@@ -0,0 +1,7 @@
+// Zoom support for use with cpsagraph and option --zoom
+
+// Find the g element within a near by svg element and apply a transform
+function zoom(evt) {
+    var g = evt.target.parentNode.lastElementChild.firstElementChild;
+    g.setAttribute("transform", "scale("+evt.target.value+")");
+}
diff --git a/tst/DH_hack.scm b/tst/DH_hack.scm
new file mode 100644
--- /dev/null
+++ b/tst/DH_hack.scm
@@ -0,0 +1,72 @@
+;; This file demonstrates a way to model DH keys in a limited way
+;; within the Basic Crypto Algebra.  The idea is the following:
+;; the pair (x, g^x) is represented as ((invk x), x), and similarly
+;; for (y, g^y).  The owner of (invk x) computes (hash (invk x) y) and
+;; the owner of (invk y) computes (hash x (invk y)).  We add an auxiliary
+;; role (other protocols may need more auxiliary roles) that serves
+;; to transform encryptions using (hash (invk x) y) into encryptions
+;; using (hash x (invk y)).
+
+;; This has the advantage that the adversary cannot decrypt these
+;; messages if he does not have either (invk x) or (invk y).  However,
+;; the presence of the auxiliary role makes it possible for the
+;; adversary to decrypt the message by knowing either (invk x) or
+;; (invk y).
+
+;; It is currently unclear how well this solution will scale to larger
+;; protocols which may need more auxiliary roles.  This also completely
+;; ignores algebraic properties of DH and hence it excludes algebraic
+;; attacks from consideration.
+
+(herald "DH Hack" (bound 15))
+
+(defprotocol DH_hack basic
+  (defrole init1
+    (vars (gcs name) (cek skey) (x y akey) (d data))
+    (trace
+     (send (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs))))
+    (uniq-orig cek d x))
+  (defrole resp
+    (vars (gcs name) (cek skey) (x y akey) (d data))
+    (trace
+     (recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    (non-orig (privk gcs)))
+  (defrole commute
+    (vars (gcs name) (cek skey) (x y akey) (d data) )
+    (trace
+     (recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+     (send (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    (non-orig (privk gcs))))
+
+ (defskeleton DH_hack
+  (vars (x y akey))
+  (defstrand resp 1 (x x) (y y))
+  (non-orig (invk x) (invk y)))
+
+ (defskeleton DH_hack
+  (vars (cek skey) (x y akey))
+  (defstrand resp 1 (cek cek) (x x))
+  (non-orig (invk x)))
+
+(defskeleton DH_hack
+  (vars (cek skey) (x y akey))
+  (defstrand resp 1 (cek cek) (y y))
+  (non-orig (invk y)))
+
+(defskeleton DH_hack
+  (vars (cek skey) (x y akey))
+  (defstrand resp 1 (cek cek) (x x) (y y))
+  (deflistener cek)
+  (non-orig (invk x) (invk y)))
+
+ (defskeleton DH_hack
+  (vars (cek skey) (x y akey))
+  (defstrand resp 1 (cek cek) (x x))
+  (deflistener cek)
+  (non-orig (invk x)))
+
+(defskeleton DH_hack
+  (vars (cek skey) (x y akey))
+  (defstrand resp 1 (cek cek) (y y))
+  (deflistener cek)
+  (non-orig (invk y)))
diff --git a/tst/DH_hack.tst b/tst/DH_hack.tst
new file mode 100644
--- /dev/null
+++ b/tst/DH_hack.tst
@@ -0,0 +1,846 @@
+(herald "DH Hack" (bound 15))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/DH_hack.scm")
+(comment "Strand count bounded at 15")
+
+(defprotocol DH_hack basic
+  (defrole init1
+    (vars (gcs name) (cek skey) (x y akey) (d data))
+    (trace
+      (send
+        (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs))))
+    (uniq-orig d cek x))
+  (defrole resp
+    (vars (gcs name) (cek skey) (x y akey) (d data))
+    (trace
+      (recv
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    (non-orig (privk gcs)))
+  (defrole commute
+    (vars (gcs name) (cek skey) (x y akey) (d data))
+    (trace
+      (recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    (non-orig (privk gcs)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (non-orig (invk x) (invk y) (privk gcs))
+  (traces
+    ((recv
+       (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs)))))
+  (label 0)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (precedes ((1 1) (0 0)))
+  (non-orig (invk x) (invk y) (privk gcs))
+  (operation encryption-test (added-strand commute 2)
+    (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs)) (0 0))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs)))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand init1 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)))
+  (non-orig (invk x) (invk y) (privk gcs))
+  (uniq-orig d cek x)
+  (operation encryption-test (added-strand init1 1)
+    (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)) (1 0))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((send
+       (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))))
+  (label 2)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((x x) (y y) (gcs gcs) (cek cek) (d d))))
+  (origs (cek (2 0)) (d (2 0)) (x (2 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol DH_hack basic
+  (defrole init1
+    (vars (gcs name) (cek skey) (x y akey) (d data))
+    (trace
+      (send
+        (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs))))
+    (uniq-orig d cek x))
+  (defrole resp
+    (vars (gcs name) (cek skey) (x y akey) (d data))
+    (trace
+      (recv
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    (non-orig (privk gcs)))
+  (defrole commute
+    (vars (gcs name) (cek skey) (x y akey) (d data))
+    (trace
+      (recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    (non-orig (privk gcs)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (non-orig (invk x) (privk gcs))
+  (traces
+    ((recv
+       (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs)))))
+  (label 3)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (precedes ((1 1) (0 0)))
+  (non-orig (invk x) (privk gcs))
+  (operation encryption-test (added-strand commute 2)
+    (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs)) (0 0))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs)))))
+  (label 4)
+  (parent 3)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand init1 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)))
+  (non-orig (invk x) (privk gcs))
+  (uniq-orig d cek x)
+  (operation encryption-test (added-strand init1 1)
+    (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)) (1 0))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((send
+       (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))))
+  (label 5)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((cek cek) (x x) (gcs gcs) (y y) (d d))))
+  (origs (cek (2 0)) (d (2 0)) (x (2 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol DH_hack basic
+  (defrole init1
+    (vars (gcs name) (cek skey) (x y akey) (d data))
+    (trace
+      (send
+        (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs))))
+    (uniq-orig d cek x))
+  (defrole resp
+    (vars (gcs name) (cek skey) (x y akey) (d data))
+    (trace
+      (recv
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    (non-orig (privk gcs)))
+  (defrole commute
+    (vars (gcs name) (cek skey) (x y akey) (d data))
+    (trace
+      (recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    (non-orig (privk gcs)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (y x akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (non-orig (invk y) (privk gcs))
+  (traces
+    ((recv
+       (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs)))))
+  (label 6)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (y x akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (precedes ((1 1) (0 0)))
+  (non-orig (invk y) (privk gcs))
+  (operation encryption-test (added-strand commute 2)
+    (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs)) (0 0))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs)))))
+  (label 7)
+  (parent 6)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (y x akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand init1 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)))
+  (non-orig (invk y) (privk gcs))
+  (uniq-orig d cek x)
+  (operation encryption-test (added-strand init1 1)
+    (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)) (1 0))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((send
+       (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))))
+  (label 8)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0) ((cek cek) (y y) (gcs gcs) (x x) (d d))))
+  (origs (cek (2 0)) (d (2 0)) (x (2 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol DH_hack basic
+  (defrole init1
+    (vars (gcs name) (cek skey) (x y akey) (d data))
+    (trace
+      (send
+        (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs))))
+    (uniq-orig d cek x))
+  (defrole resp
+    (vars (gcs name) (cek skey) (x y akey) (d data))
+    (trace
+      (recv
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    (non-orig (privk gcs)))
+  (defrole commute
+    (vars (gcs name) (cek skey) (x y akey) (d data))
+    (trace
+      (recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    (non-orig (privk gcs)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (non-orig (invk x) (invk y) (privk gcs))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek)))
+  (label 9)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (precedes ((2 1) (0 0)))
+  (non-orig (invk x) (invk y) (privk gcs))
+  (operation encryption-test (added-strand commute 2)
+    (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs)) (0 0))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs)))))
+  (label 10)
+  (parent 9)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand init1 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (precedes ((2 1) (0 0)) ((3 0) (1 0)) ((3 0) (2 0)))
+  (non-orig (invk x) (invk y) (privk gcs))
+  (uniq-orig d cek x)
+  (operation encryption-test (added-strand init1 1)
+    (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)) (2 0))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((send
+       (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))))
+  (label 11)
+  (parent 10)
+  (unrealized (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand init1 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (precedes ((2 1) (0 0)) ((2 1) (1 0)) ((3 0) (2 0)))
+  (non-orig (invk x) (invk y) (privk gcs))
+  (uniq-orig d cek x)
+  (operation nonce-test (displaced 4 2 commute 2) cek (1 0)
+    (enc cek (hash (invk x) y)))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((send
+       (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))))
+  (label 12)
+  (parent 11)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton DH_hack
+  (vars (d d-0 data) (cek skey) (x y akey) (gcs gcs-0 name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand init1 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand commute 2 (d d-0) (cek cek) (x x) (y y) (gcs gcs-0))
+  (precedes ((2 1) (0 0)) ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (1 0)))
+  (non-orig (invk x) (invk y) (privk gcs) (privk gcs-0))
+  (uniq-orig d cek x)
+  (operation nonce-test (added-strand commute 2) cek (1 0)
+    (enc cek (hash (invk x) y)))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((send (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs))))
+    ((recv
+       (enc x (enc cek (hash (invk x) y)) (enc d-0 cek) (privk gcs-0)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d-0 cek)
+          (privk gcs-0)))))
+  (label 13)
+  (parent 11)
+  (unrealized (1 0) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand init1 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener (hash (invk x) y))
+  (precedes ((2 1) (0 0)) ((3 0) (1 0)) ((3 0) (2 0)) ((4 1) (1 0)))
+  (non-orig (invk x) (invk y) (privk gcs))
+  (uniq-orig d cek x)
+  (operation nonce-test (added-listener (hash (invk x) y)) cek (1 0)
+    (enc cek (hash (invk x) y)))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((send (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs))))
+    ((recv (hash (invk x) y)) (send (hash (invk x) y))))
+  (label 14)
+  (parent 11)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand init1 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener (hash x (invk y)))
+  (precedes ((2 1) (0 0)) ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (1 0)))
+  (non-orig (invk x) (invk y) (privk gcs))
+  (uniq-orig d cek x)
+  (operation nonce-test (added-listener (hash x (invk y))) cek (1 0)
+    (enc cek (hash x (invk y))) (enc cek (hash (invk x) y)))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((send (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs))))
+    ((recv (hash x (invk y))) (send (hash x (invk y)))))
+  (label 15)
+  (parent 12)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand init1 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener (hash (invk x) y))
+  (precedes ((2 1) (0 0)) ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (1 0)))
+  (non-orig (invk x) (invk y) (privk gcs))
+  (uniq-orig d cek x)
+  (operation nonce-test (added-listener (hash (invk x) y)) cek (1 0)
+    (enc cek (hash x (invk y))) (enc cek (hash (invk x) y)))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((send (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs))))
+    ((recv (hash (invk x) y)) (send (hash (invk x) y))))
+  (label 16)
+  (parent 12)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand init1 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (precedes ((2 1) (0 0)) ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (1 0)))
+  (non-orig (invk x) (invk y) (privk gcs))
+  (uniq-orig d cek x)
+  (operation encryption-test (displaced 5 3 init1 1)
+    (enc x (enc cek (hash (invk x) y)) (enc d-0 cek) (privk gcs-0))
+    (4 0))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((send (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs))))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs)))))
+  (label 17)
+  (parent 13)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand init1 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener (hash x (invk y)))
+  (precedes ((2 1) (0 0)) ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (invk x) (invk y) (privk gcs))
+  (uniq-orig d cek x)
+  (operation nonce-test (added-listener (hash x (invk y))) cek (1 0)
+    (enc cek (hash x (invk y))) (enc cek (hash (invk x) y)))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((send (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs))))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv (hash x (invk y))) (send (hash x (invk y)))))
+  (label 18)
+  (parent 17)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand init1 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener (hash (invk x) y))
+  (precedes ((2 1) (0 0)) ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (invk x) (invk y) (privk gcs))
+  (uniq-orig d cek x)
+  (operation nonce-test (added-listener (hash (invk x) y)) cek (1 0)
+    (enc cek (hash x (invk y))) (enc cek (hash (invk x) y)))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((send (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs))))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv (hash (invk x) y)) (send (hash (invk x) y))))
+  (label 19)
+  (parent 17)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol DH_hack basic
+  (defrole init1
+    (vars (gcs name) (cek skey) (x y akey) (d data))
+    (trace
+      (send
+        (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs))))
+    (uniq-orig d cek x))
+  (defrole resp
+    (vars (gcs name) (cek skey) (x y akey) (d data))
+    (trace
+      (recv
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    (non-orig (privk gcs)))
+  (defrole commute
+    (vars (gcs name) (cek skey) (x y akey) (d data))
+    (trace
+      (recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    (non-orig (privk gcs)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (non-orig (invk x) (privk gcs))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek)))
+  (label 20)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (precedes ((2 1) (0 0)))
+  (non-orig (invk x) (privk gcs))
+  (operation encryption-test (added-strand commute 2)
+    (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs)) (0 0))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs)))))
+  (label 21)
+  (parent 20)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand init1 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (precedes ((2 1) (0 0)) ((3 0) (1 0)) ((3 0) (2 0)))
+  (non-orig (invk x) (privk gcs))
+  (uniq-orig d cek x)
+  (operation encryption-test (added-strand init1 1)
+    (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)) (2 0))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((send
+       (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))))
+  (label 22)
+  (parent 21)
+  (unrealized (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand init1 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (precedes ((2 1) (0 0)) ((2 1) (1 0)) ((3 0) (2 0)))
+  (non-orig (invk x) (privk gcs))
+  (uniq-orig d cek x)
+  (operation nonce-test (displaced 4 2 commute 2) cek (1 0)
+    (enc cek (hash (invk x) y)))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((send
+       (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))))
+  (label 23)
+  (parent 22)
+  (realized)
+  (shape)
+  (maps ((0 1) ((cek cek) (x x) (gcs gcs) (y y) (d d))))
+  (origs (cek (3 0)) (d (3 0)) (x (3 0))))
+
+(defskeleton DH_hack
+  (vars (d d-0 data) (cek skey) (x y akey) (gcs gcs-0 name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand init1 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand commute 2 (d d-0) (cek cek) (x x) (y y) (gcs gcs-0))
+  (precedes ((2 1) (0 0)) ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (1 0)))
+  (non-orig (invk x) (privk gcs) (privk gcs-0))
+  (uniq-orig d cek x)
+  (operation nonce-test (added-strand commute 2) cek (1 0)
+    (enc cek (hash (invk x) y)))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((send (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs))))
+    ((recv
+       (enc x (enc cek (hash (invk x) y)) (enc d-0 cek) (privk gcs-0)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d-0 cek)
+          (privk gcs-0)))))
+  (label 24)
+  (parent 22)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand init1 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener (hash (invk x) y))
+  (precedes ((2 1) (0 0)) ((3 0) (1 0)) ((3 0) (2 0)) ((4 1) (1 0)))
+  (non-orig (invk x) (privk gcs))
+  (uniq-orig d cek x)
+  (operation nonce-test (added-listener (hash (invk x) y)) cek (1 0)
+    (enc cek (hash (invk x) y)))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((send (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs))))
+    ((recv (hash (invk x) y)) (send (hash (invk x) y))))
+  (label 25)
+  (parent 22)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (x y akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand init1 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (precedes ((2 1) (0 0)) ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (1 0)))
+  (non-orig (invk x) (privk gcs))
+  (uniq-orig d cek x)
+  (operation encryption-test (displaced 5 3 init1 1)
+    (enc x (enc cek (hash (invk x) y)) (enc d-0 cek) (privk gcs-0))
+    (4 0))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((send (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs))))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs)))))
+  (label 26)
+  (parent 24)
+  (realized)
+  (shape)
+  (maps ((0 1) ((cek cek) (x x) (gcs gcs) (y y) (d d))))
+  (origs (cek (3 0)) (d (3 0)) (x (3 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol DH_hack basic
+  (defrole init1
+    (vars (gcs name) (cek skey) (x y akey) (d data))
+    (trace
+      (send
+        (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs))))
+    (uniq-orig d cek x))
+  (defrole resp
+    (vars (gcs name) (cek skey) (x y akey) (d data))
+    (trace
+      (recv
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    (non-orig (privk gcs)))
+  (defrole commute
+    (vars (gcs name) (cek skey) (x y akey) (d data))
+    (trace
+      (recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    (non-orig (privk gcs)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (y x akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (non-orig (invk y) (privk gcs))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek)))
+  (label 27)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (y x akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (precedes ((2 1) (0 0)))
+  (non-orig (invk y) (privk gcs))
+  (operation encryption-test (added-strand commute 2)
+    (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs)) (0 0))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs)))))
+  (label 28)
+  (parent 27)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton DH_hack
+  (vars (d data) (cek skey) (y x akey) (gcs name))
+  (defstrand resp 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (deflistener cek)
+  (defstrand commute 2 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (defstrand init1 1 (d d) (cek cek) (x x) (y y) (gcs gcs))
+  (precedes ((2 1) (0 0)) ((3 0) (1 0)) ((3 0) (2 0)))
+  (non-orig (invk y) (privk gcs))
+  (uniq-orig d cek x)
+  (operation encryption-test (added-strand init1 1)
+    (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)) (2 0))
+  (traces
+    ((recv (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((recv cek) (send cek))
+    ((recv (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))
+      (send
+        (enc x (enc cek (hash x (invk y))) (enc d cek) (privk gcs))))
+    ((send
+       (enc x (enc cek (hash (invk x) y)) (enc d cek) (privk gcs)))))
+  (label 29)
+  (parent 28)
+  (realized)
+  (shape)
+  (maps ((0 1) ((cek cek) (y y) (gcs gcs) (x x) (d d))))
+  (origs (cek (3 0)) (d (3 0)) (x (3 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/Make.hs b/tst/Make.hs
deleted file mode 100644
--- a/tst/Make.hs
+++ /dev/null
@@ -1,319 +0,0 @@
--- A simple, CPSA specific make system
-
-module Make (cpsa, shapes, sas, annos, params, cleanse, get, set,
-              build, clean, roots) where
-
-{- Place a copy of this source file in the directory used to store
-CPSA problem statements, edit it to suit your needs, and load it into
-a Haskell interpreter.
-
-Normally, just the build and the clean command are used.  It's the
-build command that you usually modify.
-
-To analyze a problem in prob.scm, type:
-
-*Make> cpsa "prob"
-
-If successful, the analysis is in the file prob.xhtml, which can be
-viewed with a standards-compliant browser.
-
-For a shapes only version of the analysis, type:
-
-*Make> shapes "prob"
-
-If successful, the shapes are in the file prob_shapes.xhtml.
-
-*Make> sas "prob"
-
-If successful, the shape analysis sentences are in the file
-prob_sas.text.
-
-When the protocol is annotated with rely-guarantee formulas, type:
-
-*Make> annos "prob"
-
-If successful, the annotated shapes are in the file prob_annotations.xhtml.
-
-*Make> params "prob"
-
-If successful, roles with parameter descriptions are in prob_parameters.txt.
-
-To remove the files generated from source files, type:
-
-*Make> cleanse "prob"
-
-To see the command-line options used by CPSA, type:
-
-*Make> get
-
-To change the command-line options used by CPSA to "-b 15", type:
-
-*Make> set "-b 15"
-
-To analyze all source files in the directory, type:
-
-*Make> build
-
-To remove the files generated from source files in the directory, type:
-
-*Make> clean
-
--}
-
-import Control.Monad (mapM_)
-import Data.List (sort)
-import Data.IORef (IORef, newIORef, readIORef, writeIORef)
-import System.Exit (ExitCode (..))
-import System.Process (system)
-import System.IO (putStrLn)
-import System.IO.Unsafe (unsafePerformIO)
-import System.FilePath (FilePath, splitExtension)
-import System.Directory (removeFile, doesFileExist, getModificationTime,
-                         getCurrentDirectory, getDirectoryContents)
-
--- Flags for CPSA
-
-initialCpsaFlags :: String
-initialCpsaFlags = "+RTS -M512m -RTS"
-
-graphFlags :: String
-graphFlags = ""
--- To enable zooming, use:
--- graphFlags = " -z"
-
--- A mutable location for CPSA flags
-cpsaFlags :: IORef String
-cpsaFlags = unsafePerformIO $ newIORef initialCpsaFlags
-
--- Get the CPSA flags
-get :: IO String
-get =
-    readIORef cpsaFlags
-
--- Set the CPSA flags
-set :: String -> IO ()
-set flags =
-    writeIORef cpsaFlags flags
-
--- Transformation rules
-
-data Rule = Rule
-    { prog :: String,           -- program to run
-      inputExt :: String,       -- input file name extension
-      outputExt :: String }     -- output file name extension
-
--- Graph Rule
-
-graph :: FilePath -> IO ()
-graph root =
-    make graphRule root         -- make graph using given rule
-
-graphRule :: Rule
-graphRule =
-    Rule { prog = "cpsagraph" ++ graphFlags,
-           inputExt = cpsaExt,
-           outputExt = graphExt }
-
--- CPSA Rule
-
-cpsa :: FilePath -> IO ()
-cpsa root =
-    do
-      cpsaBasic root
-      shapes root
-      graph root
-
--- CPSA using Basic rule
-
-cpsaBasic :: FilePath -> IO ()
-cpsaBasic root =
-    do
-      flags <- get               -- get CPSA flags
-      make (cpsaBasicRule flags) root -- make CPSA output using given rule
-
-cpsaBasicRule :: String -> Rule
-cpsaBasicRule flags =
-    Rule { prog = "cpsa " ++ flags,
-           inputExt = sourceBasicExt,
-           outputExt = cpsaExt }
-
--- Shapes Rule
-
-shapes :: FilePath -> IO ()
-shapes root =
-    do
-      cpsaBasic root            -- Run CPSA if need be
-      make shapesRule root
-      graph $ root ++ shapesRoot
-
-shapesRule :: Rule
-shapesRule =
-    Rule { prog = "cpsashapes",
-           inputExt = cpsaExt,
-           outputExt = shapesRoot ++ cpsaExt }
-
--- Sas Rule
-
-sas :: FilePath -> IO ()
-sas root =
-    do
-      cpsaBasic root            -- Run CPSA if need be
-      make sasRule root
-
-sasRule :: Rule
-sasRule =
-    Rule { prog = "cpsasas",
-           inputExt = cpsaExt,
-           outputExt = sasExt }
-
--- Annotations Rule
-
-annos :: FilePath -> IO ()
-annos root =
-    do
-      cpsa root                 -- Run CPSA and make shapes
-      make annosRule root
-      graph $ root ++ annosRoot
-
-annosRule :: Rule
-annosRule =
-    Rule { prog = "cpsaannotations",
-           inputExt = shapesRoot ++ cpsaExt,
-           outputExt = annosRoot ++ cpsaExt }
-
--- Parameters Rule
-
-params :: FilePath -> IO ()
-params root =
-     do
-       make cpsaparametersRule root
-
-cpsaparametersRule :: Rule
-cpsaparametersRule =
-    Rule { prog = "cpsaparameters",
-    	   inputExt = sourceBasicExt,
-	   outputExt = paramsRoot ++ cpsaExt }
-
--- Clean generated files
-
-cleanse :: FilePath -> IO ()
-cleanse root =
-    do
-      rm $ root ++ cpsaExt
-      rm $ root ++ graphExt
-      rm $ root ++ shapesRoot ++ cpsaExt
-      rm $ root ++ shapesRoot ++ graphExt
-      rm $ root ++ sasExt
-      rm $ root ++ annosRoot ++ cpsaExt
-      rm $ root ++ annosRoot ++ graphExt
-      rm $ root ++ paramsRoot ++ cpsaExt
-
--- File Extensions
-
-sourceBasicExt :: String
-sourceBasicExt = ".scm"
-
-cpsaExt :: String
-cpsaExt = ".txt"
-
-shapesRoot :: String
-shapesRoot = "_shapes"
-
-sasExt :: String
-sasExt = "_sas.text"
-
-annosRoot :: String
-annosRoot = "_annotations"
-
-paramsRoot :: String
-paramsRoot = "_parameters"
-
-graphExt :: String
-graphExt = ".xhtml"
-
--- Rule Interpreters
-
--- Make output for root using rule
-make :: Rule -> FilePath -> IO ()
-make rule root =
-    do
-      let input = root ++ inputExt rule
-      let output = root ++ outputExt rule
-      done <- made input output
-      case done of
-        True -> return ()       -- Nothing to do
-        False -> run (prog rule) input output
-
--- See if an output file is up-to-date
-made :: FilePath -> FilePath -> IO Bool
-made input output =
-    do
-      src <- doesFileExist input
-      dst <- doesFileExist output
-      case src && dst of
-        False -> return False
-        True ->
-            do
-              src <- getModificationTime input
-              dst <- getModificationTime output
-              return $ src < dst
-
--- Run a program with input and output from files
-
--- Print the command before running it.  Delete the output when the
--- command fails.
-run :: String -> FilePath -> FilePath -> IO ()
-run prog input output =
-    do
-      let cmd = prog ++ " -o " ++ output ++ " " ++ input
-      putStrLn cmd
-      code <- system cmd
-      case code of
-        ExitSuccess -> return ()
-        ExitFailure _ ->
-            do
-              --rm output
-              fail "Command failed"
-
--- Remove a file
-
--- Prints the command when there is a file to be deleted.
-rm :: FilePath -> IO ()
-rm output =
-    do
-      exists <- doesFileExist output
-      case exists of
-        False -> return ()      -- File doesn't exist
-        True ->
-            do                  -- Print command before removal
-              putStrLn $ "rm " ++ output
-              removeFile output
-
--- Return the roots of the CPSA source files in the current directory.
-
-roots :: [String] -> IO [FilePath]
-roots exts =
-    do
-      dir <- getCurrentDirectory
-      files <- getDirectoryContents dir
-      let roots = [ root |
-                    file <- files,
-                    let (root, ext) = splitExtension file,
-                    elem ext exts ] -- Filter for source files
-      return $ sort roots
-
--- Build the shapes for all the source files in the current directory.
-
-build :: IO ()
-build =
-    do
-      probs <- roots [sourceBasicExt]
-      mapM_ cpsa probs
-
--- Clean files generated for all the source files in the current directory.
-
-clean :: IO ()
-clean =
-    do
-      probs <- roots [sourceBasicExt]
-      mapM_ cleanse probs
diff --git a/tst/Make4.hs b/tst/Make4.hs
new file mode 100644
--- /dev/null
+++ b/tst/Make4.hs
@@ -0,0 +1,272 @@
+-- A simple, CPSA specific make system
+
+module Make (cpsa, shapes, sas, cleanse, get, set,
+             build, clean, roots) where
+
+{- Place a copy of this source file in the directory used to store
+CPSA problem statements, edit it to suit your needs, and load it into
+a Haskell interpreter.
+
+Normally, just the build and the clean command are used.  It's the
+build command that you usually modify.
+
+To analyze a problem in prob.scm, type:
+
+*Make> cpsa "prob"
+
+If successful, the analysis is in the file prob.xhtml, which can be
+viewed with a standards-compliant browser.
+
+For a shapes only version of the analysis, type:
+
+*Make> shapes "prob"
+
+If successful, the shapes are in the file prob_shapes.xhtml.
+
+*Make> sas "prob"
+
+If successful, the shape analysis sentences are in the file
+prob_sas.text.
+
+To remove the files generated from source files, type:
+
+*Make> cleanse "prob"
+
+To see the command-line options used by CPSA, type:
+
+*Make> get
+
+To change the command-line options used by CPSA to "-b 15", type:
+
+*Make> set "-b 15"
+
+To analyze all source files in the directory, type:
+
+*Make> build
+
+To remove the files generated from source files in the directory, type:
+
+*Make> clean
+
+-}
+
+import Control.Monad (mapM_)
+import Data.List (sort)
+import Data.IORef (IORef, newIORef, readIORef, writeIORef)
+import System.Exit (ExitCode (..))
+import System.Process (system)
+import System.IO (putStrLn)
+import System.IO.Unsafe (unsafePerformIO)
+import System.FilePath (FilePath, splitExtension)
+import System.Directory (removeFile, doesFileExist, getModificationTime,
+                         getCurrentDirectory, getDirectoryContents)
+
+-- Flags for CPSA
+
+initialCpsaFlags :: String
+initialCpsaFlags = "+RTS -M512m -RTS"
+
+graphFlags :: String
+graphFlags = ""
+-- To enable zooming, use:
+-- graphFlags = " -z"
+
+-- A mutable location for CPSA flags
+cpsaFlags :: IORef String
+cpsaFlags = unsafePerformIO $ newIORef initialCpsaFlags
+
+-- Get the CPSA flags
+get :: IO String
+get =
+    readIORef cpsaFlags
+
+-- Set the CPSA flags
+set :: String -> IO ()
+set flags =
+    writeIORef cpsaFlags flags
+
+-- Transformation rules
+
+data Rule = Rule
+    { prog :: String,           -- program to run
+      inputExt :: String,       -- input file name extension
+      outputExt :: String }     -- output file name extension
+
+-- Graph Rule
+
+graph :: FilePath -> IO ()
+graph root =
+    make graphRule root         -- make graph using given rule
+
+graphRule :: Rule
+graphRule =
+    Rule { prog = "cpsa4graph" ++ graphFlags,
+           inputExt = cpsaExt,
+           outputExt = graphExt }
+
+-- CPSA Rule
+
+cpsa :: FilePath -> IO ()
+cpsa root =
+    do
+      cpsaBasic root
+      shapes root
+      graph root
+
+-- CPSA using Basic rule
+
+cpsaBasic :: FilePath -> IO ()
+cpsaBasic root =
+    do
+      flags <- get               -- get CPSA flags
+      make (cpsaBasicRule flags) root -- make CPSA output using given rule
+
+cpsaBasicRule :: String -> Rule
+cpsaBasicRule flags =
+    Rule { prog = "cpsa4 " ++ flags,
+           inputExt = sourceBasicExt,
+           outputExt = cpsaExt }
+
+-- Shapes Rule
+
+shapes :: FilePath -> IO ()
+shapes root =
+    do
+      cpsaBasic root            -- Run CPSA if need be
+      make shapesRule root
+      graph $ root ++ shapesRoot
+
+shapesRule :: Rule
+shapesRule =
+    Rule { prog = "cpsa4shapes",
+           inputExt = cpsaExt,
+           outputExt = shapesRoot ++ cpsaExt }
+
+-- SAS Rule
+
+sas :: FilePath -> IO ()
+sas root =
+    do
+      cpsaBasic root            -- Run CPSA if need be
+      make sasRule root
+
+sasRule :: Rule
+sasRule =
+    Rule { prog = "cpsa4sas",
+           inputExt = cpsaExt,
+           outputExt = sasExt }
+
+-- Clean generated files
+
+cleanse :: FilePath -> IO ()
+cleanse root =
+    do
+      rm $ root ++ cpsaExt
+      rm $ root ++ graphExt
+      rm $ root ++ shapesRoot ++ cpsaExt
+      rm $ root ++ shapesRoot ++ graphExt
+      rm $ root ++ sasExt
+
+-- File Extensions
+
+sourceBasicExt :: String
+sourceBasicExt = ".scm"
+
+cpsaExt :: String
+cpsaExt = ".txt"
+
+shapesRoot :: String
+shapesRoot = "_shapes"
+
+sasExt :: String
+sasExt = "_sas.text"
+
+graphExt :: String
+graphExt = ".xhtml"
+
+-- Rule Interpreters
+
+-- Make output for root using rule
+make :: Rule -> FilePath -> IO ()
+make rule root =
+    do
+      let input = root ++ inputExt rule
+      let output = root ++ outputExt rule
+      done <- made input output
+      case done of
+        True -> return ()       -- Nothing to do
+        False -> run (prog rule) input output
+
+-- See if an output file is up-to-date
+made :: FilePath -> FilePath -> IO Bool
+made input output =
+    do
+      src <- doesFileExist input
+      dst <- doesFileExist output
+      case src && dst of
+        False -> return False
+        True ->
+            do
+              src <- getModificationTime input
+              dst <- getModificationTime output
+              return $ src < dst
+
+-- Run a program with input and output from files
+
+-- Print the command before running it.  Delete the output when the
+-- command fails.
+run :: String -> FilePath -> FilePath -> IO ()
+run prog input output =
+    do
+      let cmd = prog ++ " -o " ++ output ++ " " ++ input
+      putStrLn cmd
+      code <- system cmd
+      case code of
+        ExitSuccess -> return ()
+        ExitFailure _ ->
+            do
+              --rm output
+              fail "Command failed"
+
+-- Remove a file
+
+-- Prints the command when there is a file to be deleted.
+rm :: FilePath -> IO ()
+rm output =
+    do
+      exists <- doesFileExist output
+      case exists of
+        False -> return ()      -- File doesn't exist
+        True ->
+            do                  -- Print command before removal
+              putStrLn $ "rm " ++ output
+              removeFile output
+
+-- Return the roots of the CPSA source files in the current directory.
+
+roots :: [String] -> IO [FilePath]
+roots exts =
+    do
+      dir <- getCurrentDirectory
+      files <- getDirectoryContents dir
+      let roots = [ root |
+                    file <- files,
+                    let (root, ext) = splitExtension file,
+                    elem ext exts ] -- Filter for source files
+      return $ sort roots
+
+-- Build the shapes for all the source files in the current directory.
+
+build :: IO ()
+build =
+    do
+      probs <- roots [sourceBasicExt]
+      mapM_ cpsa probs
+
+-- Clean files generated for all the source files in the current directory.
+
+clean :: IO ()
+clean =
+    do
+      probs <- roots [sourceBasicExt]
+      mapM_ cleanse probs
diff --git a/tst/Makefile b/tst/Makefile
--- a/tst/Makefile
+++ b/tst/Makefile
@@ -1,9 +1,9 @@
-CPSAFLAGS = +RTS -M512m -N -RTS
-CPSATIME = time
+CPSAFLAGS = +RTS -M512m -N12 -RTS
+CPSATIME = time 
 
 SRCS := $(wildcard *.scm) $(wildcard *.prot) $(wildcard *.lsp)
 
-include ../doc/cpsa.mk
+include ../doc/cpsa4.mk
 
 all:	$(SRCS:%.scm=%_shapes.xhtml) $(SRCS:%.scm=%.xhtml) \
 	$(SRCS:%.prot=%_shapes.xhtml) $(SRCS:%.prot=%.xhtml) \
diff --git a/tst/README b/tst/README
--- a/tst/README
+++ b/tst/README
@@ -7,7 +7,7 @@
 
 After running the test suite, you will note files with the extension
 .xhtml.  These are XHTML/SVG compound documents that can be viewed by
-standards compliant browsers.
+standards compliant browsers such as Firefox and Safari.
 
 New users should study CPSA's analysis of the following protocols in
 order, Needham-Schroeder (ns.xhtml), Woo-Lam (woolan.xhtml), Yahalom
diff --git a/tst/ab.scm b/tst/ab.scm
new file mode 100644
--- /dev/null
+++ b/tst/ab.scm
@@ -0,0 +1,26 @@
+;;  Simple example of A-B cascading.
+;;  Input should be a dead skeleton.
+;;  Cascading occurs because roles A and B both seem to
+;;  create progress, but nothing can ever produce their input in the
+;;  correct form.
+
+(defprotocol ab basic
+  (defrole init (vars (x text) (k skey))
+    (trace
+     (send (enc x k))
+     (recv (enc x x k)))
+    (uniq-orig x)
+    (non-orig k))
+  (defrole A (vars (x text) (k skey))
+    (trace
+     (recv (enc "A" x k))
+     (send (enc x x k))))
+  (defrole B (vars (x text) (k skey))
+    (trace
+     (recv (enc "B" x k))
+     (send (enc x x k))))
+)
+
+(defskeleton ab
+  (vars (x text) (k skey))
+  (defstrand init 2 (x x) (k k)))
diff --git a/tst/ab.tst b/tst/ab.tst
new file mode 100644
--- /dev/null
+++ b/tst/ab.tst
@@ -0,0 +1,66 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/ab.scm")
+
+(defprotocol ab basic
+  (defrole init
+    (vars (x text) (k skey))
+    (trace (send (enc x k)) (recv (enc x x k)))
+    (non-orig k)
+    (uniq-orig x))
+  (defrole A
+    (vars (x text) (k skey))
+    (trace (recv (enc "A" x k)) (send (enc x x k))))
+  (defrole B
+    (vars (x text) (k skey))
+    (trace (recv (enc "B" x k)) (send (enc x x k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton ab
+  (vars (k skey) (x text))
+  (defstrand init 2 (k k) (x x))
+  (non-orig k)
+  (uniq-orig x)
+  (traces ((send (enc x k)) (recv (enc x x k))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (x (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton ab
+  (vars (k skey) (x text))
+  (defstrand init 2 (k k) (x x))
+  (defstrand A 2 (k k) (x x))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig k)
+  (uniq-orig x)
+  (operation encryption-test (added-strand A 2) (enc x x k) (0 1))
+  (traces ((send (enc x k)) (recv (enc x x k)))
+    ((recv (enc "A" x k)) (send (enc x x k))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton ab
+  (vars (k skey) (x text))
+  (defstrand init 2 (k k) (x x))
+  (defstrand B 2 (k k) (x x))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig k)
+  (uniq-orig x)
+  (operation encryption-test (added-strand B 2) (enc x x k) (0 1))
+  (traces ((send (enc x k)) (recv (enc x x k)))
+    ((recv (enc "B" x k)) (send (enc x x k))))
+  (label 2)
+  (parent 0)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/tst/abc.scm b/tst/abc.scm
new file mode 100644
--- /dev/null
+++ b/tst/abc.scm
@@ -0,0 +1,30 @@
+;;  Simple example of A-B-C cascading.
+;;  Input should be a dead skeleton.
+;;  Cascading occurs because roles A, B, and C seem to
+;;  create progress, but nothing can ever produce their input in the
+;;  correct form.
+
+(defprotocol abc basic
+  (defrole init (vars (x text) (k skey))
+    (trace
+     (send (enc x k))
+     (recv (enc x x k)))
+    (uniq-orig x)
+    (non-orig k))
+  (defrole A (vars (x text) (k skey))
+    (trace
+     (recv (enc "A" x k))
+     (send (enc x x k))))
+  (defrole B (vars (x text) (k skey))
+    (trace
+     (recv (enc "B" x k))
+     (send (enc x x k))))
+  (defrole C (vars (x text) (k skey))
+    (trace
+     (recv (enc "C" x k))
+     (send (enc x x k))))
+)
+
+(defskeleton abc
+  (vars (x text) (k skey))
+  (defstrand init 2 (x x) (k k)))
diff --git a/tst/abc.tst b/tst/abc.tst
new file mode 100644
--- /dev/null
+++ b/tst/abc.tst
@@ -0,0 +1,85 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/abc.scm")
+
+(defprotocol abc basic
+  (defrole init
+    (vars (x text) (k skey))
+    (trace (send (enc x k)) (recv (enc x x k)))
+    (non-orig k)
+    (uniq-orig x))
+  (defrole A
+    (vars (x text) (k skey))
+    (trace (recv (enc "A" x k)) (send (enc x x k))))
+  (defrole B
+    (vars (x text) (k skey))
+    (trace (recv (enc "B" x k)) (send (enc x x k))))
+  (defrole C
+    (vars (x text) (k skey))
+    (trace (recv (enc "C" x k)) (send (enc x x k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton abc
+  (vars (k skey) (x text))
+  (defstrand init 2 (k k) (x x))
+  (non-orig k)
+  (uniq-orig x)
+  (traces ((send (enc x k)) (recv (enc x x k))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (x (0 0)))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton abc
+  (vars (k skey) (x text))
+  (defstrand init 2 (k k) (x x))
+  (defstrand A 2 (k k) (x x))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig k)
+  (uniq-orig x)
+  (operation encryption-test (added-strand A 2) (enc x x k) (0 1))
+  (traces ((send (enc x k)) (recv (enc x x k)))
+    ((recv (enc "A" x k)) (send (enc x x k))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton abc
+  (vars (k skey) (x text))
+  (defstrand init 2 (k k) (x x))
+  (defstrand B 2 (k k) (x x))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig k)
+  (uniq-orig x)
+  (operation encryption-test (added-strand B 2) (enc x x k) (0 1))
+  (traces ((send (enc x k)) (recv (enc x x k)))
+    ((recv (enc "B" x k)) (send (enc x x k))))
+  (label 2)
+  (parent 0)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton abc
+  (vars (k skey) (x text))
+  (defstrand init 2 (k k) (x x))
+  (defstrand C 2 (k k) (x x))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig k)
+  (uniq-orig x)
+  (operation encryption-test (added-strand C 2) (enc x x k) (0 1))
+  (traces ((send (enc x k)) (recv (enc x x k)))
+    ((recv (enc "C" x k)) (send (enc x x k))))
+  (label 3)
+  (parent 0)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/tst/aik.tst b/tst/aik.tst
--- a/tst/aik.tst
+++ b/tst/aik.tst
@@ -1,6 +1,6 @@
 (herald "Anonymous identity protocol from TCG")
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/aik.scm")
 
 (defprotocol aikprot basic
@@ -20,11 +20,17 @@
     (vars (i x mf pc name) (ek k akey))
     (trace (recv (cat i k x (enc "ekc" mf ek (privk mf))))
       (send (enc (enc "aic" i k x (privk pc)) ek)))
-    (non-orig (privk mf))))
+    (non-orig (privk mf)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton aikprot
-  (vars (mf pc i x name) (srk skey) (ek k akey))
-  (defstrand tpm 4 (i i) (x x) (mf mf) (pc pc) (srk srk) (ek ek) (k k))
+  (vars (srk skey) (ek k akey) (mf pc i x name))
+  (defstrand tpm 4 (srk srk) (ek ek) (k k) (i i) (x x) (mf mf) (pc pc))
   (non-orig srk (invk ek) (privk pc))
   (uniq-orig k (invk k))
   (traces
@@ -34,13 +40,13 @@
       (send (cat (enc "aic" i k x (privk pc)) (enc k (invk k) srk)))))
   (label 0)
   (unrealized (0 2))
-  (origs (k (0 1)) ((invk k) (0 3)))
+  (origs ((invk k) (0 3)) (k (0 1)))
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton aikprot
-  (vars (mf pc i x mf-0 name) (srk skey) (ek k ek-0 akey))
-  (defstrand tpm 4 (i i) (x x) (mf mf) (pc pc) (srk srk) (ek ek) (k k))
-  (defstrand pca 2 (i i) (x x) (mf mf-0) (pc pc) (ek ek-0) (k k))
+  (vars (srk skey) (ek k ek-0 akey) (mf pc i x mf-0 name))
+  (defstrand tpm 4 (srk srk) (ek ek) (k k) (i i) (x x) (mf mf) (pc pc))
+  (defstrand pca 2 (ek ek-0) (k k) (i i) (x x) (mf mf-0) (pc pc))
   (precedes ((0 1) (1 0)) ((1 1) (0 2)))
   (non-orig srk (invk ek) (privk pc) (privk mf-0))
   (uniq-orig k (invk k))
@@ -59,10 +65,10 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton aikprot
-  (vars (mf pc i x mf-0 name) (srk skey) (ek k ek-0 akey))
-  (defstrand tpm 4 (i i) (x x) (mf mf) (pc pc) (srk srk) (ek ek) (k k))
-  (defstrand pca 2 (i i) (x x) (mf mf-0) (pc pc) (ek ek-0) (k k))
-  (defstrand ca 1 (mf mf-0) (ek ek-0))
+  (vars (srk skey) (ek k ek-0 akey) (mf pc i x mf-0 name))
+  (defstrand tpm 4 (srk srk) (ek ek) (k k) (i i) (x x) (mf mf) (pc pc))
+  (defstrand pca 2 (ek ek-0) (k k) (i i) (x x) (mf mf-0) (pc pc))
+  (defstrand ca 1 (ek ek-0) (mf mf-0))
   (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))
   (non-orig srk (invk ek) (invk ek-0) (privk pc) (privk mf-0))
   (uniq-orig k (invk k))
@@ -82,10 +88,10 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton aikprot
-  (vars (mf pc i x mf-0 name) (srk skey) (k ek akey))
-  (defstrand tpm 4 (i i) (x x) (mf mf) (pc pc) (srk srk) (ek ek) (k k))
-  (defstrand pca 2 (i i) (x x) (mf mf-0) (pc pc) (ek ek) (k k))
-  (defstrand ca 1 (mf mf-0) (ek ek))
+  (vars (srk skey) (k ek akey) (mf pc i x mf-0 name))
+  (defstrand tpm 4 (srk srk) (ek ek) (k k) (i i) (x x) (mf mf) (pc pc))
+  (defstrand pca 2 (ek ek) (k k) (i i) (x x) (mf mf-0) (pc pc))
+  (defstrand ca 1 (ek ek) (mf mf-0))
   (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))
   (non-orig srk (invk ek) (privk pc) (privk mf-0))
   (uniq-orig k (invk k))
@@ -102,17 +108,17 @@
     ((send (enc "ekc" mf-0 ek (privk mf-0)))))
   (label 3)
   (parent 2)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((mf mf) (pc pc) (i i) (x x) (ek ek) (k k) (srk srk))))
-  (origs (k (0 1)) ((invk k) (0 3))))
+  (origs ((invk k) (0 3)) (k (0 1))))
 
 (defskeleton aikprot
-  (vars (mf pc i x mf-0 mf-1 name) (srk skey) (ek k ek-0 ek-1 akey))
-  (defstrand tpm 4 (i i) (x x) (mf mf) (pc pc) (srk srk) (ek ek) (k k))
-  (defstrand pca 2 (i i) (x x) (mf mf-0) (pc pc) (ek ek-0) (k k))
-  (defstrand ca 1 (mf mf-0) (ek ek-0))
-  (defstrand pca 2 (i i) (x x) (mf mf-1) (pc pc) (ek ek-1) (k k))
+  (vars (srk skey) (ek k ek-0 ek-1 akey) (mf pc i x mf-0 mf-1 name))
+  (defstrand tpm 4 (srk srk) (ek ek) (k k) (i i) (x x) (mf mf) (pc pc))
+  (defstrand pca 2 (ek ek-0) (k k) (i i) (x x) (mf mf-0) (pc pc))
+  (defstrand ca 1 (ek ek-0) (mf mf-0))
+  (defstrand pca 2 (ek ek-1) (k k) (i i) (x x) (mf mf-1) (pc pc))
   (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (0 2)) ((2 0) (1 0))
     ((3 1) (0 2)))
   (non-orig srk (invk ek) (invk ek-0) (privk pc) (privk mf-0)
@@ -156,10 +162,16 @@
     (vars (i x mf pc name) (ek k akey))
     (trace (recv (cat i k x (enc "ekc" mf ek (privk mf))))
       (send (enc (enc "aic" i k x (privk pc)) ek)))
-    (non-orig (privk mf))))
+    (non-orig (privk mf)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton aikprot
-  (vars (i x pc name) (k akey))
+  (vars (k akey) (i x pc name))
   (deflistener (enc "aic" i k x (privk pc)))
   (non-orig (privk pc))
   (traces
@@ -171,9 +183,9 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton aikprot
-  (vars (i x pc mf name) (k ek akey))
+  (vars (k ek akey) (i x pc mf name))
   (deflistener (enc "aic" i k x (privk pc)))
-  (defstrand pca 2 (i i) (x x) (mf mf) (pc pc) (ek ek) (k k))
+  (defstrand pca 2 (ek ek) (k k) (i i) (x x) (mf mf) (pc pc))
   (precedes ((1 1) (0 0)))
   (non-orig (privk pc) (privk mf))
   (operation encryption-test (added-strand pca 2)
@@ -189,10 +201,10 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton aikprot
-  (vars (i x pc mf name) (k ek akey))
+  (vars (k ek akey) (i x pc mf name))
   (deflistener (enc "aic" i k x (privk pc)))
-  (defstrand pca 2 (i i) (x x) (mf mf) (pc pc) (ek ek) (k k))
-  (defstrand ca 1 (mf mf) (ek ek))
+  (defstrand pca 2 (ek ek) (k k) (i i) (x x) (mf mf) (pc pc))
+  (defstrand ca 1 (ek ek) (mf mf))
   (precedes ((1 1) (0 0)) ((2 0) (1 0)))
   (non-orig (invk ek) (privk pc) (privk mf))
   (operation encryption-test (added-strand ca 1)
@@ -209,12 +221,12 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton aikprot
-  (vars (i x pc mf mf-0 name) (srk skey) (k ek akey))
+  (vars (srk skey) (k ek akey) (i x pc mf mf-0 name))
   (deflistener (enc "aic" i k x (privk pc)))
-  (defstrand pca 2 (i i) (x x) (mf mf) (pc pc) (ek ek) (k k))
-  (defstrand ca 1 (mf mf) (ek ek))
-  (defstrand tpm 4 (i i) (x x) (mf mf-0) (pc pc) (srk srk) (ek ek)
-    (k k))
+  (defstrand pca 2 (ek ek) (k k) (i i) (x x) (mf mf) (pc pc))
+  (defstrand ca 1 (ek ek) (mf mf))
+  (defstrand tpm 4 (srk srk) (ek ek) (k k) (i i) (x x) (mf mf-0)
+    (pc pc))
   (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((3 1) (1 0)) ((3 3) (0 0)))
   (non-orig srk (invk ek) (privk pc) (privk mf))
   (uniq-orig k (invk k))
@@ -237,11 +249,11 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton aikprot
-  (vars (i x pc mf mf-0 name) (k ek ek-0 akey))
+  (vars (k ek ek-0 akey) (i x pc mf mf-0 name))
   (deflistener (enc "aic" i k x (privk pc)))
-  (defstrand pca 2 (i i) (x x) (mf mf) (pc pc) (ek ek) (k k))
-  (defstrand ca 1 (mf mf) (ek ek))
-  (defstrand pca 2 (i i) (x x) (mf mf-0) (pc pc) (ek ek-0) (k k))
+  (defstrand pca 2 (ek ek) (k k) (i i) (x x) (mf mf) (pc pc))
+  (defstrand ca 1 (ek ek) (mf mf))
+  (defstrand pca 2 (ek ek-0) (k k) (i i) (x x) (mf mf-0) (pc pc))
   (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((3 1) (0 0)))
   (non-orig (invk ek) (privk pc) (privk mf) (privk mf-0))
   (operation encryption-test (added-strand pca 2)
@@ -262,12 +274,12 @@
   (comment "1 in cohort - 0 not yet seen"))
 
 (defskeleton aikprot
-  (vars (i x pc mf mf-0 name) (srk skey) (k ek akey))
+  (vars (srk skey) (k ek akey) (i x pc mf mf-0 name))
   (deflistener (enc "aic" i k x (privk pc)))
-  (defstrand pca 2 (i i) (x x) (mf mf) (pc pc) (ek ek) (k k))
-  (defstrand ca 1 (mf mf) (ek ek))
-  (defstrand tpm 4 (i i) (x x) (mf mf-0) (pc pc) (srk srk) (ek ek)
-    (k k))
+  (defstrand pca 2 (ek ek) (k k) (i i) (x x) (mf mf) (pc pc))
+  (defstrand ca 1 (ek ek) (mf mf))
+  (defstrand tpm 4 (srk srk) (ek ek) (k k) (i i) (x x) (mf mf-0)
+    (pc pc))
   (precedes ((1 1) (3 2)) ((2 0) (1 0)) ((3 1) (1 0)) ((3 3) (0 0)))
   (non-orig srk (invk ek) (privk pc) (privk mf))
   (uniq-orig k (invk k))
@@ -285,19 +297,19 @@
       (send (cat (enc "aic" i k x (privk pc)) (enc k (invk k) srk)))))
   (label 10)
   (parent 8)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((i i) (x x) (pc pc) (k k))))
   (origs (k (3 1)) ((invk k) (3 3))))
 
 (defskeleton aikprot
-  (vars (i x pc mf mf-0 mf-1 name) (srk skey) (k ek ek-0 akey))
+  (vars (srk skey) (k ek ek-0 akey) (i x pc mf mf-0 mf-1 name))
   (deflistener (enc "aic" i k x (privk pc)))
-  (defstrand pca 2 (i i) (x x) (mf mf) (pc pc) (ek ek) (k k))
-  (defstrand ca 1 (mf mf) (ek ek))
-  (defstrand tpm 4 (i i) (x x) (mf mf-0) (pc pc) (srk srk) (ek ek)
-    (k k))
-  (defstrand pca 2 (i i) (x x) (mf mf-1) (pc pc) (ek ek-0) (k k))
+  (defstrand pca 2 (ek ek) (k k) (i i) (x x) (mf mf) (pc pc))
+  (defstrand ca 1 (ek ek) (mf mf))
+  (defstrand tpm 4 (srk srk) (ek ek) (k k) (i i) (x x) (mf mf-0)
+    (pc pc))
+  (defstrand pca 2 (ek ek-0) (k k) (i i) (x x) (mf mf-1) (pc pc))
   (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((3 1) (1 0)) ((3 1) (4 0))
     ((3 3) (0 0)) ((4 1) (3 2)))
   (non-orig srk (invk ek) (privk pc) (privk mf) (privk mf-1))
@@ -322,13 +334,13 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton aikprot
-  (vars (i x pc mf mf-0 name) (srk skey) (k ek akey))
+  (vars (srk skey) (k ek akey) (i x pc mf mf-0 name))
   (deflistener (enc "aic" i k x (privk pc)))
-  (defstrand pca 2 (i i) (x x) (mf mf) (pc pc) (ek ek) (k k))
-  (defstrand ca 1 (mf mf) (ek ek))
-  (defstrand tpm 4 (i i) (x x) (mf mf-0) (pc pc) (srk srk) (ek ek)
-    (k k))
-  (defstrand pca 2 (i i) (x x) (mf mf) (pc pc) (ek ek) (k k))
+  (defstrand pca 2 (ek ek) (k k) (i i) (x x) (mf mf) (pc pc))
+  (defstrand ca 1 (ek ek) (mf mf))
+  (defstrand tpm 4 (srk srk) (ek ek) (k k) (i i) (x x) (mf mf-0)
+    (pc pc))
+  (defstrand pca 2 (ek ek) (k k) (i i) (x x) (mf mf) (pc pc))
   (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((2 0) (4 0)) ((3 1) (1 0))
     ((3 1) (4 0)) ((3 3) (0 0)) ((4 1) (3 2)))
   (non-orig srk (invk ek) (privk pc) (privk mf))
@@ -350,18 +362,18 @@
   (label 12)
   (parent 11)
   (seen 10)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 0 not yet seen"))
 
 (defskeleton aikprot
-  (vars (i x pc mf mf-0 mf-1 name) (srk skey) (k ek ek-0 akey))
+  (vars (srk skey) (k ek ek-0 akey) (i x pc mf mf-0 mf-1 name))
   (deflistener (enc "aic" i k x (privk pc)))
-  (defstrand pca 2 (i i) (x x) (mf mf) (pc pc) (ek ek) (k k))
-  (defstrand ca 1 (mf mf) (ek ek))
-  (defstrand tpm 4 (i i) (x x) (mf mf-0) (pc pc) (srk srk) (ek ek)
-    (k k))
-  (defstrand pca 2 (i i) (x x) (mf mf-1) (pc pc) (ek ek-0) (k k))
-  (defstrand ca 1 (mf mf-1) (ek ek-0))
+  (defstrand pca 2 (ek ek) (k k) (i i) (x x) (mf mf) (pc pc))
+  (defstrand ca 1 (ek ek) (mf mf))
+  (defstrand tpm 4 (srk srk) (ek ek) (k k) (i i) (x x) (mf mf-0)
+    (pc pc))
+  (defstrand pca 2 (ek ek-0) (k k) (i i) (x x) (mf mf-1) (pc pc))
+  (defstrand ca 1 (ek ek-0) (mf mf-1))
   (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((3 1) (1 0)) ((3 1) (4 0))
     ((3 3) (0 0)) ((4 1) (3 2)) ((5 0) (4 0)))
   (non-orig srk (invk ek) (invk ek-0) (privk pc) (privk mf)
@@ -388,14 +400,14 @@
   (comment "3 in cohort - 3 not yet seen"))
 
 (defskeleton aikprot
-  (vars (i x pc mf mf-0 mf-1 name) (srk skey) (k ek akey))
+  (vars (srk skey) (k ek akey) (i x pc mf mf-0 mf-1 name))
   (deflistener (enc "aic" i k x (privk pc)))
-  (defstrand pca 2 (i i) (x x) (mf mf) (pc pc) (ek ek) (k k))
-  (defstrand ca 1 (mf mf) (ek ek))
-  (defstrand tpm 4 (i i) (x x) (mf mf-0) (pc pc) (srk srk) (ek ek)
-    (k k))
-  (defstrand pca 2 (i i) (x x) (mf mf-1) (pc pc) (ek ek) (k k))
-  (defstrand ca 1 (mf mf-1) (ek ek))
+  (defstrand pca 2 (ek ek) (k k) (i i) (x x) (mf mf) (pc pc))
+  (defstrand ca 1 (ek ek) (mf mf))
+  (defstrand tpm 4 (srk srk) (ek ek) (k k) (i i) (x x) (mf mf-0)
+    (pc pc))
+  (defstrand pca 2 (ek ek) (k k) (i i) (x x) (mf mf-1) (pc pc))
+  (defstrand ca 1 (ek ek) (mf mf-1))
   (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((3 1) (1 0)) ((3 1) (4 0))
     ((3 3) (0 0)) ((4 1) (3 2)) ((5 0) (4 0)))
   (non-orig srk (invk ek) (privk pc) (privk mf) (privk mf-1))
@@ -418,18 +430,18 @@
     ((send (enc "ekc" mf-1 ek (privk mf-1)))))
   (label 14)
   (parent 13)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton aikprot
-  (vars (i x pc mf mf-0 mf-1 name) (srk skey) (k ek ek-0 akey))
+  (vars (srk skey) (k ek ek-0 akey) (i x pc mf mf-0 mf-1 name))
   (deflistener (enc "aic" i k x (privk pc)))
-  (defstrand pca 2 (i i) (x x) (mf mf) (pc pc) (ek ek) (k k))
-  (defstrand ca 1 (mf mf) (ek ek))
-  (defstrand tpm 4 (i i) (x x) (mf mf-0) (pc pc) (srk srk) (ek ek)
-    (k k))
-  (defstrand pca 2 (i i) (x x) (mf mf-1) (pc pc) (ek ek-0) (k k))
-  (defstrand ca 1 (mf mf-1) (ek ek-0))
+  (defstrand pca 2 (ek ek) (k k) (i i) (x x) (mf mf) (pc pc))
+  (defstrand ca 1 (ek ek) (mf mf))
+  (defstrand tpm 4 (srk srk) (ek ek) (k k) (i i) (x x) (mf mf-0)
+    (pc pc))
+  (defstrand pca 2 (ek ek-0) (k k) (i i) (x x) (mf mf-1) (pc pc))
+  (defstrand ca 1 (ek ek-0) (mf mf-1))
   (precedes ((1 1) (3 2)) ((2 0) (1 0)) ((3 1) (1 0)) ((3 1) (4 0))
     ((3 3) (0 0)) ((4 1) (3 2)) ((5 0) (4 0)))
   (non-orig srk (invk ek) (invk ek-0) (privk pc) (privk mf)
@@ -453,20 +465,20 @@
     ((send (enc "ekc" mf-1 ek-0 (privk mf-1)))))
   (label 15)
   (parent 13)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton aikprot
-  (vars (i x pc mf mf-0 mf-1 mf-2 name) (srk skey)
-    (k ek ek-0 ek-1 akey))
+  (vars (srk skey) (k ek ek-0 ek-1 akey)
+    (i x pc mf mf-0 mf-1 mf-2 name))
   (deflistener (enc "aic" i k x (privk pc)))
-  (defstrand pca 2 (i i) (x x) (mf mf) (pc pc) (ek ek) (k k))
-  (defstrand ca 1 (mf mf) (ek ek))
-  (defstrand tpm 4 (i i) (x x) (mf mf-0) (pc pc) (srk srk) (ek ek)
-    (k k))
-  (defstrand pca 2 (i i) (x x) (mf mf-1) (pc pc) (ek ek-0) (k k))
-  (defstrand ca 1 (mf mf-1) (ek ek-0))
-  (defstrand pca 2 (i i) (x x) (mf mf-2) (pc pc) (ek ek-1) (k k))
+  (defstrand pca 2 (ek ek) (k k) (i i) (x x) (mf mf) (pc pc))
+  (defstrand ca 1 (ek ek) (mf mf))
+  (defstrand tpm 4 (srk srk) (ek ek) (k k) (i i) (x x) (mf mf-0)
+    (pc pc))
+  (defstrand pca 2 (ek ek-0) (k k) (i i) (x x) (mf mf-1) (pc pc))
+  (defstrand ca 1 (ek ek-0) (mf mf-1))
+  (defstrand pca 2 (ek ek-1) (k k) (i i) (x x) (mf mf-2) (pc pc))
   (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((3 1) (1 0)) ((3 1) (4 0))
     ((3 1) (6 0)) ((3 3) (0 0)) ((4 1) (3 2)) ((5 0) (4 0))
     ((6 1) (3 2)))
@@ -498,13 +510,13 @@
   (comment "1 in cohort - 0 not yet seen"))
 
 (defskeleton aikprot
-  (vars (i x pc mf mf-0 mf-1 name) (srk skey) (k ek akey))
+  (vars (srk skey) (k ek akey) (i x pc mf mf-0 mf-1 name))
   (deflistener (enc "aic" i k x (privk pc)))
-  (defstrand ca 1 (mf mf) (ek ek))
-  (defstrand tpm 4 (i i) (x x) (mf mf-0) (pc pc) (srk srk) (ek ek)
-    (k k))
-  (defstrand pca 2 (i i) (x x) (mf mf-1) (pc pc) (ek ek) (k k))
-  (defstrand ca 1 (mf mf-1) (ek ek))
+  (defstrand ca 1 (ek ek) (mf mf))
+  (defstrand tpm 4 (srk srk) (ek ek) (k k) (i i) (x x) (mf mf-0)
+    (pc pc))
+  (defstrand pca 2 (ek ek) (k k) (i i) (x x) (mf mf-1) (pc pc))
+  (defstrand ca 1 (ek ek) (mf mf-1))
   (precedes ((1 0) (0 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((3 1) (2 2))
     ((4 0) (3 0)))
   (non-orig srk (invk ek) (privk pc) (privk mf) (privk mf-1))
@@ -524,17 +536,17 @@
   (label 17)
   (parent 14)
   (seen 10)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 0 not yet seen"))
 
 (defskeleton aikprot
-  (vars (i x pc mf mf-0 mf-1 name) (srk skey) (k ek ek-0 akey))
+  (vars (srk skey) (k ek ek-0 akey) (i x pc mf mf-0 mf-1 name))
   (deflistener (enc "aic" i k x (privk pc)))
-  (defstrand pca 2 (i i) (x x) (mf mf) (pc pc) (ek ek) (k k))
-  (defstrand ca 1 (mf mf) (ek ek))
-  (defstrand tpm 4 (i i) (x x) (mf mf-0) (pc pc) (srk srk) (ek ek)
-    (k k))
-  (defstrand ca 1 (mf mf-1) (ek ek-0))
+  (defstrand pca 2 (ek ek) (k k) (i i) (x x) (mf mf) (pc pc))
+  (defstrand ca 1 (ek ek) (mf mf))
+  (defstrand tpm 4 (srk srk) (ek ek) (k k) (i i) (x x) (mf mf-0)
+    (pc pc))
+  (defstrand ca 1 (ek ek-0) (mf mf-1))
   (precedes ((1 1) (3 2)) ((2 0) (1 0)) ((3 1) (1 0)) ((3 3) (0 0))
     ((4 0) (3 2)))
   (non-orig srk (invk ek) (invk ek-0) (privk pc) (privk mf)
@@ -555,7 +567,7 @@
   (label 18)
   (parent 15)
   (seen 10)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 0 not yet seen"))
 
 (comment "Nothing left to do")
diff --git a/tst/atomic-open-closed.scm b/tst/atomic-open-closed.scm
new file mode 100644
--- /dev/null
+++ b/tst/atomic-open-closed.scm
@@ -0,0 +1,416 @@
+(herald atomic-open-closed
+	;; (try-old-strands)
+	;; 	(check-nonces)
+	;; 	(reverse-nodes)
+	(bound 44))
+
+(defmacro (dev-key-state d o k)
+  (cat "st-k" d o k))
+
+(defmacro (opened o)
+  (cat o o))
+
+(defmacro (closed o) o)
+
+(defmacro (dev-state-opened d o)
+  (cat "st" d (opened o)))
+
+(defmacro (dev-state-closed d o)
+  (cat "st" d (closed o)))
+
+(defmacro (dev-state-any d o any)
+  (cat "st" d any))
+
+(defprotocol atomic-open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan) (lk ls locn))
+    (trace
+     (recv start-ch (cat "power-up" d o k))
+     (load lk old)
+     (stor lk (dev-key-state d o k))
+     (load ls old1)
+     (stor ls (dev-state-closed d o))
+     (send (enc "up" k)))
+    (auth start-ch))
+
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace
+     (send start-ch (cat "power-up" d o k))
+     (recv (enc "up" k)))
+    (conf start-ch))
+
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace
+     (send (enc "open" d o n k))
+     (recv n)))
+
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace
+     (send (enc "close" d o n k))
+     (recv n)))
+
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace
+     (recv (enc "open" d o n k))
+     (load lk (dev-key-state d o k))
+     (load ls (dev-state-any d o any))
+     (stor ls (dev-state-opened d o))
+     (send n)))
+
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace
+     (recv (enc "close" d o n k))
+     (load lk (dev-key-state d o k))
+     (load ls (dev-state-any d o any))
+     (stor ls (dev-state-closed d o))
+     (send n)))
+
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace
+     (recv (enc "may I pass" k))
+     (load lk (dev-key-state d o k))
+     (load ls (dev-state-opened d o))
+     (send (enc "you may pass" n k)))
+    (uniq-orig n))
+
+  (defrole user-pass
+    (vars (k skey) (n text) (d o name) (l locn))
+    (trace
+     (send (enc "may I pass" k))
+     (recv (enc "you may pass" k))))
+
+  (defrule gen-state-close
+    (forall ((z strd) (d o name) (k skey))
+	    (implies
+	     (and (p "dev-close" z 1)
+		  (p "dev-close" "d" z d)
+		  (p "dev-close" "o" z o)
+		  (p "dev-close" "k" z k)
+		  (p "dev-close" "any" z (opened o)))
+	     (gen-st (dev-state-opened d o)))))
+
+  (defrule gen-state-pass
+    (forall ((z strd) (d o name) (k skey))
+	    (implies
+	     (and (p "dev-pass" z 1)
+		  (p "dev-pass" "d" z d)
+		  (p "dev-pass" "o" z o)
+		  (p "dev-pass" "k" z k))
+	     (gen-st (dev-state-opened d o)))))
+
+  (defrule gen-state-open
+    (forall ((z strd) (d o k mesg))
+	    (implies
+	     (and (p "dev-open" "d" z d)
+		  (p "dev-open" "o" z o)
+		  (p "dev-open" "k" z k))
+	     (gen-st (dev-key-state d o k)))))
+
+  (defrule gen-state-close
+    (forall ((z strd) (d o k mesg))
+	    (implies
+	     (and (p "dev-close" "d" z d)
+		  (p "dev-close" "o" z o)
+		  (p "dev-close" "k" z k))
+	     (gen-st (dev-key-state d o k)))))
+
+  (defrule gen-state-pass
+    (forall ((z strd) (d o k mesg))
+	    (implies
+	     (and (p "dev-pass" "d" z d)
+		  (p "dev-pass" "o" z o)
+		  (p "dev-pass" "k" z k))
+	     (and (gen-st (dev-key-state d o k))))))
+
+   (defrule power-deliver-once
+     (forall
+      ((z1 z2 strd) (k skey))
+      (implies
+       (and (p "dev-up" z1 2)
+ 	   (p "dev-up" z2 2)
+ 	   (p "dev-up" "k" z1 k)
+ 	   (p "dev-up" "k" z2 k))
+       (= z1 z2))))
+
+   (defrule intro-same-dev-up
+     (forall ((z strd) (lk ls locn))
+	     (implies
+	      (and (p "dev-up" "lk" z lk)
+		   (p "dev-up" "ls" z ls))
+	      (fact same-dev ls lk))))
+
+   (defrule intro-same-dev-open
+     (forall ((z strd) (lk ls locn))
+	     (implies
+	      (and (p "dev-open" "lk" z lk)
+		   (p "dev-open" "ls" z ls))
+	      (fact same-dev ls lk))))
+
+   (defrule intro-same-dev-close
+     (forall ((z strd) (lk ls locn))
+	     (implies
+	      (and (p "dev-close" "lk" z lk)
+		   (p "dev-close" "ls" z ls))
+	      (fact same-dev ls lk))))
+
+   (defrule intro-same-dev-pass
+     (forall ((z strd) (lk ls locn))
+	     (implies
+	      (and (p "dev-pass" "lk" z lk)
+		   (p "dev-pass" "ls" z ls))
+	      (fact same-dev ls lk))))
+
+   (defrule same-dev-ls-lk
+     (forall ((ls lk lk-0 locn))
+	     (implies
+	      (and (fact same-dev ls lk)
+		   (fact same-dev ls lk-0))
+	      (= lk lk-0))))
+
+   (defrule same-dev-lk-ls
+     (forall ((lk ls ls-0 locn))
+	     (implies
+	      (and (fact same-dev ls lk)
+		   (fact same-dev ls-0 lk))
+	      (= ls ls-0))))
+
+   ;; Single-threaded registers
+   (defrule single-thread-up-up
+     (forall ((x y strd) (lk locn))
+   	     (implies
+   	      (and (p "dev-up" x 5)
+   		   (p "dev-up" y 5)
+   		   (p "dev-up" "lk" x lk)
+   		   (p "dev-up" "lk" y lk))
+   	      (or (= x y)
+		  (prec x 4 y 1)
+   		  (prec y 4 x 1)))))
+
+   (defrule single-thread-up-open
+     (forall ((x y strd) (ls locn))
+   	     (implies
+   	      (and (p "dev-up" x 5)
+   		   (p "dev-open" y 4)
+   		   (p "dev-up" "ls" x ls)
+   		   (p "dev-open" "ls" y ls))
+   	      (or (prec x 4 y 1)
+   		  (prec y 3 x 1)))))
+
+   (defrule single-thread-up-close
+     (forall ((x y strd) (ls locn))
+   	     (implies
+   	      (and (p "dev-up" x 5)
+   		   (p "dev-close" y 4)
+   		   (p "dev-up" "ls" x ls)
+   		   (p "dev-close" "ls" y ls))
+   	      (or (prec x 4 y 1)
+   		  (prec y 3 x 1)))))
+
+   (defrule single-thread-open-open
+     (forall ((x y strd) (ls locn))
+   	     (implies
+   	      (and (p "dev-open" x 4)
+   		   (p "dev-open" y 4)
+   		   (p "dev-open" "ls" x ls)
+   		   (p "dev-open" "ls" y ls))
+   	      (or (= x y)
+   		  (prec x 3 y 1)
+   		  (prec y 3 x 1)))))
+
+   (defrule single-thread-ls-open-close
+     (forall ((x y strd) (ls locn))
+   	     (implies
+   	      (and (p "dev-open" x 4)
+   		   (p "dev-close" y 4)
+   		   (p "dev-open" "ls" x ls)
+   		   (p "dev-close" "ls" y ls))
+   	      (or (prec x 3 y 1)
+   		  (prec y 3 x 1)))))
+
+   (defrule single-thread-close-close
+     (forall ((x y strd) (ls locn))
+   	     (implies
+   	      (and (p "dev-close" x 4)
+   		   (p "dev-close" y 4)
+   		   (p "dev-close" "ls" x ls)
+   		   (p "dev-close" "ls" y ls))
+   	      (or (= x y)
+   		  (prec x 3 y 1)
+   		  (prec y 3 x 1)))))
+
+   (defrule atomic-up-pass
+     (forall ((x y strd) (lk locn))
+   	     (implies
+   	      (and (p "dev-up" x 5)
+   		   (p "dev-pass" y 3)
+   		   (p "dev-up" "lk" x lk)
+   		   (p "dev-pass" "lk" y lk)
+   		   (prec x 2 y 1))
+   	      (prec x 4 y 1))))
+
+   (defrule dev-up-completes
+     (forall ((x strd))
+	     (implies
+	      (p "dev-up" x 2)
+	      (p "dev-up" x 5))))
+
+   (defrule dev-open-completes
+     (forall ((x strd))
+	     (implies
+	      (p "dev-open" x 2)
+	      (p "dev-open" x 4))))
+
+   (defrule dev-close-completes
+     (forall ((x strd))
+	     (implies
+	      (p "dev-close" x 2)
+	      (p "dev-close" x 4))))
+
+   (defrule dev-pass-completes
+     (forall ((x strd))
+	     (implies
+	      (p "dev-pass" x 2)
+	      (p "dev-pass" x 3))))
+
+   (defrule dev-up-atomic1
+     (forall ((x z strd) (i1 indx))
+	     (implies
+	      (and (p "dev-up" z 5)
+		   (prec x i1 z 4))
+	      (or (= x z)
+		  (prec x i1 z 1)))))
+
+   (defrule dev-up-atomic2
+     (forall ((x z strd) (i1 indx))
+	     (implies
+	      (and (p "dev-up" z 5)
+		   (prec z 1 x i1))
+	      (or (= x z)
+		  (prec z 4 x i1)))))
+
+   (defrule dev-open-atomic1
+     (forall ((x z strd) (i1 indx))
+	     (implies
+	      (and (p "dev-open" z 4)
+		   (prec x i1 z 3))
+	      (or (= x z)
+		  (prec x i1 z 1)))))
+
+   (defrule dev-open-atomic2
+     (forall ((x z strd) (i1 indx))
+	     (implies
+	      (and (p "dev-open" z 4)
+		   (prec z 1 x i1))
+	      (or (= x z)
+		  (prec z 3 x i1)))))
+
+   (defrule dev-close-atomic1
+     (forall ((x z strd) (i1 indx))
+	     (implies
+	      (and (p "dev-close" z 4)
+		   (prec x i1 z 3))
+	      (or (= x z)
+		  (prec x i1 z 1)))))
+
+   (defrule dev-close-atomic2
+     (forall ((x z strd) (i1 indx))
+	     (implies
+	      (and (p "dev-close" z 4)
+		   (prec z 1 x i1))
+	      (or (= x z)
+		  (prec z 3 x i1)))))
+
+   (defrule dev-pass-atomic1
+     (forall ((x z strd) (i1 indx))
+	     (implies
+	      (and (p "dev-pass" z 3)
+		   (prec x i1 z 2))
+	      (or (= x z)
+		  (prec x i1 z 1)))))
+
+   (defrule dev-pass-atomic2
+     (forall ((x z strd) (i1 indx))
+	     (implies
+	      (and (p "dev-pass" z 3)
+		   (prec z 1 x i1))
+	      (or (= x z)
+		  (prec z 2 x i1)))))
+
+;;      (defrule leadsto-la
+;;        (forall ((z1 z2 strd) (i1 i2 indx))
+;;     	     (implies
+;;     	      (leads-to z1 i1 z2 i2)
+;;     	      (fact la z1 i1 z2 i2)))
+;;        (comment this is a rule comment))
+;;
+;;      (defrule commpair-cp
+;;        (forall ((z1 z2 strd) (i1 i2 indx))
+;;     	     (implies
+;;     	      (comm-pr z1 i1 z2 i2)
+;;     	      (fact cp z1 i1 z2 i2)))
+;;        (comment this is a rule comment))
+;;
+;;      (defrule prec-pr
+;;        (forall ((z1 z2 strd) (i1 i2 indx))
+;;     	     (implies
+;;     	      (prec z1 i1 z2 i2)
+;;     	      (fact pr z1 i1 z2 i2)))
+;;        (comment this is a rule comment))
+
+   ;; (defrule atomic-simpl
+   ;;   (forall ((x z strd) (i1 i2 i3 indx))
+   ;; 	     (implies
+   ;; 	      (and (fact atomic z i1 i2)
+   ;; 		   (prec x i3 z i1))
+   ;; 	      (or (= x z)
+   ;; 		  (prec x i3 z i1)))))
+
+   ;; (defrule atomic-simpl2
+   ;;   (forall ((x z strd) (i1 i2 i3 indx))
+   ;; 	     (implies
+   ;; 	      (and (fact atomic z i1 i2)
+   ;; 		   (prec z i1 x i3))
+   ;; 	      (or
+   ;; 	       (= x z)
+   ;; 	       (prec z i1 x i3)))))
+
+  )
+
+(defskeleton atomic-open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k))
+  (deflistener k)
+  (uniq-orig k))
+
+(defskeleton atomic-open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  ;; (defstrand owner-power-dev 2 (k k))
+  (defstrand dev-pass 4 (k k))
+  ;; (uniq-orig k)
+  )
+
+(defskeleton atomic-open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k))
+  (defstrand dev-pass 4 (k k))
+  (uniq-orig k))
+
+;; (defskeleton atomic-open-closed
+;;   (vars (old old1 any mesg) (n n-0 text) (d o name) (k k-0 skey)
+;;     (start-ch chan) (ls lk ls-0 lk-0 locn))
+;;   (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+;;   (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+;;   (defstrand dev-up 6 (old old) (old1 old1) (d d) (o o) (k k)
+;;     (start-ch start-ch) (lk lk) (ls ls-0))
+;;   (defstrand user-pass 1 (k k))
+;;   (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk-0)
+;;     (ls ls))
+;;   (precedes ((0 0) (2 0)) ((2 2) (1 0)) ((2 5) (0 1)) ((3 0) (1 1))
+;;     ((4 3) (1 2)))
+;;   (uniq-orig n k))
diff --git a/tst/atomic-open-closed.tst b/tst/atomic-open-closed.tst
new file mode 100644
--- /dev/null
+++ b/tst/atomic-open-closed.tst
@@ -0,0 +1,1578 @@
+(herald atomic-open-closed (bound 44))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/atomic-open-closed.scm")
+(comment "Strand count bounded at 44")
+
+(defprotocol atomic-open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (stor lk (cat "st-k" d o k)) (load ls old1)
+      (stor ls (cat "st" d o)) (send (enc "up" k)))
+    (auth start-ch))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "open" d o n k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o o)) (send n)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "close" d o n k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o)) (send n)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (recv (enc "may I pass" k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d o o)) (send (enc "you may pass" n k)))
+    (uniq-orig n))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule gen-state-close
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-close" z (idx 1)) (p "dev-close" "d" z d)
+          (p "dev-close" "o" z o) (p "dev-close" "k" z k)
+          (p "dev-close" "any" z (cat o o)))
+        (gen-st (cat "st" d o o)))))
+  (defrule gen-state-pass
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "d" z d)
+          (p "dev-pass" "o" z o) (p "dev-pass" "k" z k))
+        (gen-st (cat "st" d o o)))))
+  (defrule gen-state-open
+    (forall ((z strd) (d o k mesg))
+      (implies
+        (and (p "dev-open" "d" z d) (p "dev-open" "o" z o)
+          (p "dev-open" "k" z k))
+        (gen-st (cat "st-k" d o k)))))
+  (defrule gen-state-close
+    (forall ((z strd) (d o k mesg))
+      (implies
+        (and (p "dev-close" "d" z d) (p "dev-close" "o" z o)
+          (p "dev-close" "k" z k))
+        (gen-st (cat "st-k" d o k)))))
+  (defrule gen-state-pass
+    (forall ((z strd) (d o k mesg))
+      (implies
+        (and (p "dev-pass" "d" z d) (p "dev-pass" "o" z o)
+          (p "dev-pass" "k" z k))
+        (gen-st (cat "st-k" d o k)))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defrule intro-same-dev-up
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-up" "lk" z lk) (p "dev-up" "ls" z ls))
+        (fact same-dev ls lk))))
+  (defrule intro-same-dev-open
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-open" "lk" z lk) (p "dev-open" "ls" z ls))
+        (fact same-dev ls lk))))
+  (defrule intro-same-dev-close
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-close" "lk" z lk) (p "dev-close" "ls" z ls))
+        (fact same-dev ls lk))))
+  (defrule intro-same-dev-pass
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-pass" "lk" z lk) (p "dev-pass" "ls" z ls))
+        (fact same-dev ls lk))))
+  (defrule same-dev-ls-lk
+    (forall ((ls lk lk-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls lk-0))
+        (= lk lk-0))))
+  (defrule same-dev-lk-ls
+    (forall ((lk ls ls-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls-0 lk))
+        (= ls ls-0))))
+  (defrule single-thread-up-up
+    (forall ((x y strd) (lk locn))
+      (implies
+        (and (p "dev-up" x (idx 5)) (p "dev-up" y (idx 5))
+          (p "dev-up" "lk" x lk) (p "dev-up" "lk" y lk))
+        (or
+          (= x y)
+          (prec x (idx 4) y (idx 1))
+          (prec y (idx 4) x (idx 1))))))
+  (defrule single-thread-up-open
+    (forall ((x y strd) (ls locn))
+      (implies
+        (and (p "dev-up" x (idx 5)) (p "dev-open" y (idx 4))
+          (p "dev-up" "ls" x ls) (p "dev-open" "ls" y ls))
+        (or (prec x (idx 4) y (idx 1)) (prec y (idx 3) x (idx 1))))))
+  (defrule single-thread-up-close
+    (forall ((x y strd) (ls locn))
+      (implies
+        (and (p "dev-up" x (idx 5)) (p "dev-close" y (idx 4))
+          (p "dev-up" "ls" x ls) (p "dev-close" "ls" y ls))
+        (or (prec x (idx 4) y (idx 1)) (prec y (idx 3) x (idx 1))))))
+  (defrule single-thread-open-open
+    (forall ((x y strd) (ls locn))
+      (implies
+        (and (p "dev-open" x (idx 4)) (p "dev-open" y (idx 4))
+          (p "dev-open" "ls" x ls) (p "dev-open" "ls" y ls))
+        (or
+          (= x y)
+          (prec x (idx 3) y (idx 1))
+          (prec y (idx 3) x (idx 1))))))
+  (defrule single-thread-ls-open-close
+    (forall ((x y strd) (ls locn))
+      (implies
+        (and (p "dev-open" x (idx 4)) (p "dev-close" y (idx 4))
+          (p "dev-open" "ls" x ls) (p "dev-close" "ls" y ls))
+        (or (prec x (idx 3) y (idx 1)) (prec y (idx 3) x (idx 1))))))
+  (defrule single-thread-close-close
+    (forall ((x y strd) (ls locn))
+      (implies
+        (and (p "dev-close" x (idx 4)) (p "dev-close" y (idx 4))
+          (p "dev-close" "ls" x ls) (p "dev-close" "ls" y ls))
+        (or
+          (= x y)
+          (prec x (idx 3) y (idx 1))
+          (prec y (idx 3) x (idx 1))))))
+  (defrule atomic-up-pass
+    (forall ((x y strd) (lk locn))
+      (implies
+        (and (p "dev-up" x (idx 5)) (p "dev-pass" y (idx 3))
+          (p "dev-up" "lk" x lk) (p "dev-pass" "lk" y lk)
+          (prec x (idx 2) y (idx 1)))
+        (prec x (idx 4) y (idx 1)))))
+  (defrule dev-up-completes
+    (forall ((x strd))
+      (implies (p "dev-up" x (idx 2)) (p "dev-up" x (idx 5)))))
+  (defrule dev-open-completes
+    (forall ((x strd))
+      (implies (p "dev-open" x (idx 2)) (p "dev-open" x (idx 4)))))
+  (defrule dev-close-completes
+    (forall ((x strd))
+      (implies (p "dev-close" x (idx 2)) (p "dev-close" x (idx 4)))))
+  (defrule dev-pass-completes
+    (forall ((x strd))
+      (implies (p "dev-pass" x (idx 2)) (p "dev-pass" x (idx 3)))))
+  (defrule dev-up-atomic1
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-up" z (idx 5)) (prec x i1 z (idx 4)))
+        (or (= x z) (prec x i1 z (idx 1))))))
+  (defrule dev-up-atomic2
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-up" z (idx 5)) (prec z (idx 1) x i1))
+        (or (= x z) (prec z (idx 4) x i1)))))
+  (defrule dev-open-atomic1
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-open" z (idx 4)) (prec x i1 z (idx 3)))
+        (or (= x z) (prec x i1 z (idx 1))))))
+  (defrule dev-open-atomic2
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-open" z (idx 4)) (prec z (idx 1) x i1))
+        (or (= x z) (prec z (idx 3) x i1)))))
+  (defrule dev-close-atomic1
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-close" z (idx 4)) (prec x i1 z (idx 3)))
+        (or (= x z) (prec x i1 z (idx 1))))))
+  (defrule dev-close-atomic2
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-close" z (idx 4)) (prec z (idx 1) x i1))
+        (or (= x z) (prec z (idx 3) x i1)))))
+  (defrule dev-pass-atomic1
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-pass" z (idx 3)) (prec x i1 z (idx 2)))
+        (or (= x z) (prec x i1 z (idx 1))))))
+  (defrule dev-pass-atomic2
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-pass" z (idx 3)) (prec z (idx 1) x i1))
+        (or (= x z) (prec z (idx 2) x i1)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-2
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule cau-dev-open-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-open" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-close-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-close" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-pass-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-pass" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1)))))))
+
+(defskeleton atomic-open-closed
+  (vars (k skey) (d o name) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (uniq-orig k)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k)))
+  (label 0)
+  (unrealized (0 1) (1 0))
+  (preskeleton)
+  (origs (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton atomic-open-closed
+  (vars (k skey) (d o name) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k)))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1) (1 0))
+  (origs (k (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton atomic-open-closed
+  (vars (old old1 mesg) (k skey) (d o name) (pt pt-0 pt-1 pt-2 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (rule dev-up-atomic2 dev-up-completes intro-same-dev-up
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (added-strand dev-up 3) k (1 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt old))
+      (stor lk (cat pt-0 "st-k" d o k)) (load ls (cat pt-1 old1))
+      (stor ls (cat pt-2 "st" d o))))
+  (label 2)
+  (parent 1)
+  (seen 2)
+  (unrealized (0 1) (1 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol atomic-open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (stor lk (cat "st-k" d o k)) (load ls old1)
+      (stor ls (cat "st" d o)) (send (enc "up" k)))
+    (auth start-ch))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "open" d o n k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o o)) (send n)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "close" d o n k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o)) (send n)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (recv (enc "may I pass" k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d o o)) (send (enc "you may pass" n k)))
+    (uniq-orig n))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule gen-state-close
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-close" z (idx 1)) (p "dev-close" "d" z d)
+          (p "dev-close" "o" z o) (p "dev-close" "k" z k)
+          (p "dev-close" "any" z (cat o o)))
+        (gen-st (cat "st" d o o)))))
+  (defrule gen-state-pass
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "d" z d)
+          (p "dev-pass" "o" z o) (p "dev-pass" "k" z k))
+        (gen-st (cat "st" d o o)))))
+  (defrule gen-state-open
+    (forall ((z strd) (d o k mesg))
+      (implies
+        (and (p "dev-open" "d" z d) (p "dev-open" "o" z o)
+          (p "dev-open" "k" z k))
+        (gen-st (cat "st-k" d o k)))))
+  (defrule gen-state-close
+    (forall ((z strd) (d o k mesg))
+      (implies
+        (and (p "dev-close" "d" z d) (p "dev-close" "o" z o)
+          (p "dev-close" "k" z k))
+        (gen-st (cat "st-k" d o k)))))
+  (defrule gen-state-pass
+    (forall ((z strd) (d o k mesg))
+      (implies
+        (and (p "dev-pass" "d" z d) (p "dev-pass" "o" z o)
+          (p "dev-pass" "k" z k))
+        (gen-st (cat "st-k" d o k)))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defrule intro-same-dev-up
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-up" "lk" z lk) (p "dev-up" "ls" z ls))
+        (fact same-dev ls lk))))
+  (defrule intro-same-dev-open
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-open" "lk" z lk) (p "dev-open" "ls" z ls))
+        (fact same-dev ls lk))))
+  (defrule intro-same-dev-close
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-close" "lk" z lk) (p "dev-close" "ls" z ls))
+        (fact same-dev ls lk))))
+  (defrule intro-same-dev-pass
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-pass" "lk" z lk) (p "dev-pass" "ls" z ls))
+        (fact same-dev ls lk))))
+  (defrule same-dev-ls-lk
+    (forall ((ls lk lk-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls lk-0))
+        (= lk lk-0))))
+  (defrule same-dev-lk-ls
+    (forall ((lk ls ls-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls-0 lk))
+        (= ls ls-0))))
+  (defrule single-thread-up-up
+    (forall ((x y strd) (lk locn))
+      (implies
+        (and (p "dev-up" x (idx 5)) (p "dev-up" y (idx 5))
+          (p "dev-up" "lk" x lk) (p "dev-up" "lk" y lk))
+        (or
+          (= x y)
+          (prec x (idx 4) y (idx 1))
+          (prec y (idx 4) x (idx 1))))))
+  (defrule single-thread-up-open
+    (forall ((x y strd) (ls locn))
+      (implies
+        (and (p "dev-up" x (idx 5)) (p "dev-open" y (idx 4))
+          (p "dev-up" "ls" x ls) (p "dev-open" "ls" y ls))
+        (or (prec x (idx 4) y (idx 1)) (prec y (idx 3) x (idx 1))))))
+  (defrule single-thread-up-close
+    (forall ((x y strd) (ls locn))
+      (implies
+        (and (p "dev-up" x (idx 5)) (p "dev-close" y (idx 4))
+          (p "dev-up" "ls" x ls) (p "dev-close" "ls" y ls))
+        (or (prec x (idx 4) y (idx 1)) (prec y (idx 3) x (idx 1))))))
+  (defrule single-thread-open-open
+    (forall ((x y strd) (ls locn))
+      (implies
+        (and (p "dev-open" x (idx 4)) (p "dev-open" y (idx 4))
+          (p "dev-open" "ls" x ls) (p "dev-open" "ls" y ls))
+        (or
+          (= x y)
+          (prec x (idx 3) y (idx 1))
+          (prec y (idx 3) x (idx 1))))))
+  (defrule single-thread-ls-open-close
+    (forall ((x y strd) (ls locn))
+      (implies
+        (and (p "dev-open" x (idx 4)) (p "dev-close" y (idx 4))
+          (p "dev-open" "ls" x ls) (p "dev-close" "ls" y ls))
+        (or (prec x (idx 3) y (idx 1)) (prec y (idx 3) x (idx 1))))))
+  (defrule single-thread-close-close
+    (forall ((x y strd) (ls locn))
+      (implies
+        (and (p "dev-close" x (idx 4)) (p "dev-close" y (idx 4))
+          (p "dev-close" "ls" x ls) (p "dev-close" "ls" y ls))
+        (or
+          (= x y)
+          (prec x (idx 3) y (idx 1))
+          (prec y (idx 3) x (idx 1))))))
+  (defrule atomic-up-pass
+    (forall ((x y strd) (lk locn))
+      (implies
+        (and (p "dev-up" x (idx 5)) (p "dev-pass" y (idx 3))
+          (p "dev-up" "lk" x lk) (p "dev-pass" "lk" y lk)
+          (prec x (idx 2) y (idx 1)))
+        (prec x (idx 4) y (idx 1)))))
+  (defrule dev-up-completes
+    (forall ((x strd))
+      (implies (p "dev-up" x (idx 2)) (p "dev-up" x (idx 5)))))
+  (defrule dev-open-completes
+    (forall ((x strd))
+      (implies (p "dev-open" x (idx 2)) (p "dev-open" x (idx 4)))))
+  (defrule dev-close-completes
+    (forall ((x strd))
+      (implies (p "dev-close" x (idx 2)) (p "dev-close" x (idx 4)))))
+  (defrule dev-pass-completes
+    (forall ((x strd))
+      (implies (p "dev-pass" x (idx 2)) (p "dev-pass" x (idx 3)))))
+  (defrule dev-up-atomic1
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-up" z (idx 5)) (prec x i1 z (idx 4)))
+        (or (= x z) (prec x i1 z (idx 1))))))
+  (defrule dev-up-atomic2
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-up" z (idx 5)) (prec z (idx 1) x i1))
+        (or (= x z) (prec z (idx 4) x i1)))))
+  (defrule dev-open-atomic1
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-open" z (idx 4)) (prec x i1 z (idx 3)))
+        (or (= x z) (prec x i1 z (idx 1))))))
+  (defrule dev-open-atomic2
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-open" z (idx 4)) (prec z (idx 1) x i1))
+        (or (= x z) (prec z (idx 3) x i1)))))
+  (defrule dev-close-atomic1
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-close" z (idx 4)) (prec x i1 z (idx 3)))
+        (or (= x z) (prec x i1 z (idx 1))))))
+  (defrule dev-close-atomic2
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-close" z (idx 4)) (prec z (idx 1) x i1))
+        (or (= x z) (prec z (idx 3) x i1)))))
+  (defrule dev-pass-atomic1
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-pass" z (idx 3)) (prec x i1 z (idx 2)))
+        (or (= x z) (prec x i1 z (idx 1))))))
+  (defrule dev-pass-atomic2
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-pass" z (idx 3)) (prec z (idx 1) x i1))
+        (or (= x z) (prec z (idx 2) x i1)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-2
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule cau-dev-open-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-open" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-close-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-close" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-pass-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-pass" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1)))))))
+
+(defskeleton atomic-open-closed
+  (vars (k skey) (n text) (d o name) (pt pt-0 pval) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (uniq-orig n)
+  (traces
+    ((recv (enc "may I pass" k)) (load lk (cat pt "st-k" d o k))
+      (load ls (cat pt-0 "st" d o o)) (send (enc "you may pass" n k))))
+  (label 3)
+  (realized)
+  (origs (n (0 3)))
+  (comment "Not closed under rules"))
+
+(defskeleton atomic-open-closed
+  (vars (k skey) (n text) (d o name) (pt pt-0 pval) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (uniq-orig n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (facts (same-dev ls lk))
+  (rule gen-state-pass intro-same-dev-pass)
+  (traces
+    ((recv (enc "may I pass" k)) (load lk (cat pt "st-k" d o k))
+      (load ls (cat pt-0 "st" d o o)) (send (enc "you may pass" n k))))
+  (label 4)
+  (parent 3)
+  (unrealized (0 1) (0 2))
+  (origs (n (0 3)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton atomic-open-closed
+  (vars (old old1 mesg) (k skey) (n text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((1 4) (0 1)))
+  (uniq-orig n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((1 2) (0 1)))
+  (rule atomic-up-pass dev-up-completes intro-same-dev-pass
+    intro-same-dev-up same-dev-lk-ls trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-up 3)
+    (ch-msg lk (cat pt-1 "st-k" d o k)) (0 1))
+  (traces
+    ((recv (enc "may I pass" k)) (load lk (cat pt-1 "st-k" d o k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k)) (load ls (cat pt-2 old1))
+      (stor ls (cat pt-3 "st" d o))))
+  (label 5)
+  (parent 4)
+  (unrealized (0 2) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton atomic-open-closed
+  (vars (old old1 mesg) (k skey) (n text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (precedes ((1 4) (0 1)) ((2 0) (1 0)))
+  (uniq-orig n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((1 2) (0 1)))
+  (rule intro-same-dev-pass trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand owner-power-dev 1)
+    (ch-msg start-ch (cat "power-up" d o k)) (1 0))
+  (traces
+    ((recv (enc "may I pass" k)) (load lk (cat pt-1 "st-k" d o k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k)) (load ls (cat pt-2 old1))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k))))
+  (label 6)
+  (parent 5)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton atomic-open-closed
+  (vars (old old1 any mesg) (k k-0 skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (precedes ((1 4) (3 1)) ((2 0) (1 0)) ((3 3) (0 1)))
+  (uniq-orig n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((1 2) (0 1)) ((3 3) (0 2)))
+  (rule cau-dev-pass-2 dev-open-atomic1 gen-state-open
+    intro-same-dev-open intro-same-dev-pass invShearsRule same-dev-ls-lk
+    trRl_dev-open-at-2 trRl_dev-open-at-3 trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-open 4)
+    (ch-msg ls (cat pt "st" d o o)) (0 2))
+  (traces
+    ((recv (enc "may I pass" k)) (load lk (cat pt-1 "st-k" d o k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k)) (load ls (cat pt-2 old1))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-4 "st-k" d o k-0))
+      (load ls (cat pt-5 "st" d any)) (stor ls (cat pt "st" d o o))))
+  (label 7)
+  (parent 6)
+  (seen 8)
+  (unrealized (3 1))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton atomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (precedes ((1 4) (3 1)) ((2 0) (1 0)) ((3 3) (0 1)))
+  (uniq-orig n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((1 2) (0 1)) ((1 2) (3 1)) ((3 3) (0 2)))
+  (rule intro-same-dev-pass trRl_dev-open-at-2 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (displaced 4 1 dev-up 3)
+    (ch-msg lk (cat pt-5 "st-k" d o k-0)) (3 1))
+  (traces
+    ((recv (enc "may I pass" k)) (load lk (cat pt-1 "st-k" d o k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k)) (load ls (cat pt-2 old1))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (enc "open" d o n-0 k)) (load lk (cat pt-1 "st-k" d o k))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o))))
+  (label 8)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0) ((k k) (n n) (d d) (o o) (lk lk) (ls ls))))
+  (origs (pt-1 (1 2)) (pt (3 3)) (pt-3 (1 4)) (n (0 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol atomic-open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (stor lk (cat "st-k" d o k)) (load ls old1)
+      (stor ls (cat "st" d o)) (send (enc "up" k)))
+    (auth start-ch))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "open" d o n k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o o)) (send n)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "close" d o n k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o)) (send n)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (recv (enc "may I pass" k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d o o)) (send (enc "you may pass" n k)))
+    (uniq-orig n))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule gen-state-close
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-close" z (idx 1)) (p "dev-close" "d" z d)
+          (p "dev-close" "o" z o) (p "dev-close" "k" z k)
+          (p "dev-close" "any" z (cat o o)))
+        (gen-st (cat "st" d o o)))))
+  (defrule gen-state-pass
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "d" z d)
+          (p "dev-pass" "o" z o) (p "dev-pass" "k" z k))
+        (gen-st (cat "st" d o o)))))
+  (defrule gen-state-open
+    (forall ((z strd) (d o k mesg))
+      (implies
+        (and (p "dev-open" "d" z d) (p "dev-open" "o" z o)
+          (p "dev-open" "k" z k))
+        (gen-st (cat "st-k" d o k)))))
+  (defrule gen-state-close
+    (forall ((z strd) (d o k mesg))
+      (implies
+        (and (p "dev-close" "d" z d) (p "dev-close" "o" z o)
+          (p "dev-close" "k" z k))
+        (gen-st (cat "st-k" d o k)))))
+  (defrule gen-state-pass
+    (forall ((z strd) (d o k mesg))
+      (implies
+        (and (p "dev-pass" "d" z d) (p "dev-pass" "o" z o)
+          (p "dev-pass" "k" z k))
+        (gen-st (cat "st-k" d o k)))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defrule intro-same-dev-up
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-up" "lk" z lk) (p "dev-up" "ls" z ls))
+        (fact same-dev ls lk))))
+  (defrule intro-same-dev-open
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-open" "lk" z lk) (p "dev-open" "ls" z ls))
+        (fact same-dev ls lk))))
+  (defrule intro-same-dev-close
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-close" "lk" z lk) (p "dev-close" "ls" z ls))
+        (fact same-dev ls lk))))
+  (defrule intro-same-dev-pass
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-pass" "lk" z lk) (p "dev-pass" "ls" z ls))
+        (fact same-dev ls lk))))
+  (defrule same-dev-ls-lk
+    (forall ((ls lk lk-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls lk-0))
+        (= lk lk-0))))
+  (defrule same-dev-lk-ls
+    (forall ((lk ls ls-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls-0 lk))
+        (= ls ls-0))))
+  (defrule single-thread-up-up
+    (forall ((x y strd) (lk locn))
+      (implies
+        (and (p "dev-up" x (idx 5)) (p "dev-up" y (idx 5))
+          (p "dev-up" "lk" x lk) (p "dev-up" "lk" y lk))
+        (or
+          (= x y)
+          (prec x (idx 4) y (idx 1))
+          (prec y (idx 4) x (idx 1))))))
+  (defrule single-thread-up-open
+    (forall ((x y strd) (ls locn))
+      (implies
+        (and (p "dev-up" x (idx 5)) (p "dev-open" y (idx 4))
+          (p "dev-up" "ls" x ls) (p "dev-open" "ls" y ls))
+        (or (prec x (idx 4) y (idx 1)) (prec y (idx 3) x (idx 1))))))
+  (defrule single-thread-up-close
+    (forall ((x y strd) (ls locn))
+      (implies
+        (and (p "dev-up" x (idx 5)) (p "dev-close" y (idx 4))
+          (p "dev-up" "ls" x ls) (p "dev-close" "ls" y ls))
+        (or (prec x (idx 4) y (idx 1)) (prec y (idx 3) x (idx 1))))))
+  (defrule single-thread-open-open
+    (forall ((x y strd) (ls locn))
+      (implies
+        (and (p "dev-open" x (idx 4)) (p "dev-open" y (idx 4))
+          (p "dev-open" "ls" x ls) (p "dev-open" "ls" y ls))
+        (or
+          (= x y)
+          (prec x (idx 3) y (idx 1))
+          (prec y (idx 3) x (idx 1))))))
+  (defrule single-thread-ls-open-close
+    (forall ((x y strd) (ls locn))
+      (implies
+        (and (p "dev-open" x (idx 4)) (p "dev-close" y (idx 4))
+          (p "dev-open" "ls" x ls) (p "dev-close" "ls" y ls))
+        (or (prec x (idx 3) y (idx 1)) (prec y (idx 3) x (idx 1))))))
+  (defrule single-thread-close-close
+    (forall ((x y strd) (ls locn))
+      (implies
+        (and (p "dev-close" x (idx 4)) (p "dev-close" y (idx 4))
+          (p "dev-close" "ls" x ls) (p "dev-close" "ls" y ls))
+        (or
+          (= x y)
+          (prec x (idx 3) y (idx 1))
+          (prec y (idx 3) x (idx 1))))))
+  (defrule atomic-up-pass
+    (forall ((x y strd) (lk locn))
+      (implies
+        (and (p "dev-up" x (idx 5)) (p "dev-pass" y (idx 3))
+          (p "dev-up" "lk" x lk) (p "dev-pass" "lk" y lk)
+          (prec x (idx 2) y (idx 1)))
+        (prec x (idx 4) y (idx 1)))))
+  (defrule dev-up-completes
+    (forall ((x strd))
+      (implies (p "dev-up" x (idx 2)) (p "dev-up" x (idx 5)))))
+  (defrule dev-open-completes
+    (forall ((x strd))
+      (implies (p "dev-open" x (idx 2)) (p "dev-open" x (idx 4)))))
+  (defrule dev-close-completes
+    (forall ((x strd))
+      (implies (p "dev-close" x (idx 2)) (p "dev-close" x (idx 4)))))
+  (defrule dev-pass-completes
+    (forall ((x strd))
+      (implies (p "dev-pass" x (idx 2)) (p "dev-pass" x (idx 3)))))
+  (defrule dev-up-atomic1
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-up" z (idx 5)) (prec x i1 z (idx 4)))
+        (or (= x z) (prec x i1 z (idx 1))))))
+  (defrule dev-up-atomic2
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-up" z (idx 5)) (prec z (idx 1) x i1))
+        (or (= x z) (prec z (idx 4) x i1)))))
+  (defrule dev-open-atomic1
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-open" z (idx 4)) (prec x i1 z (idx 3)))
+        (or (= x z) (prec x i1 z (idx 1))))))
+  (defrule dev-open-atomic2
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-open" z (idx 4)) (prec z (idx 1) x i1))
+        (or (= x z) (prec z (idx 3) x i1)))))
+  (defrule dev-close-atomic1
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-close" z (idx 4)) (prec x i1 z (idx 3)))
+        (or (= x z) (prec x i1 z (idx 1))))))
+  (defrule dev-close-atomic2
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-close" z (idx 4)) (prec z (idx 1) x i1))
+        (or (= x z) (prec z (idx 3) x i1)))))
+  (defrule dev-pass-atomic1
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-pass" z (idx 3)) (prec x i1 z (idx 2)))
+        (or (= x z) (prec x i1 z (idx 1))))))
+  (defrule dev-pass-atomic2
+    (forall ((x z strd) (i1 indx))
+      (implies
+        (and (p "dev-pass" z (idx 3)) (prec z (idx 1) x i1))
+        (or (= x z) (prec z (idx 2) x i1)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-2
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule cau-dev-open-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-open" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-close-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-close" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-pass-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-pass" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1)))))))
+
+(defskeleton atomic-open-closed
+  (vars (k skey) (n text) (d o d-0 o-0 name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (uniq-orig k n)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv (enc "may I pass" k)) (load lk (cat pt "st-k" d-0 o-0 k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0))
+      (send (enc "you may pass" n k))))
+  (label 9)
+  (unrealized (0 1) (1 0) (1 1))
+  (preskeleton)
+  (origs (n (1 3)) (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton atomic-open-closed
+  (vars (k skey) (n text) (d o d-0 o-0 name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (precedes ((0 0) (1 1)))
+  (uniq-orig k n)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv (enc "may I pass" k)) (load lk (cat pt "st-k" d-0 o-0 k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0))
+      (send (enc "you may pass" n k))))
+  (label 10)
+  (parent 9)
+  (unrealized (0 1) (1 0) (1 1))
+  (origs (n (1 3)) (k (0 0)))
+  (comment "Not closed under rules"))
+
+(defskeleton atomic-open-closed
+  (vars (k skey) (n text) (d o d-0 o-0 name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (precedes ((0 0) (1 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d-0 o-0 o-0) (cat "st-k" d-0 o-0 k))
+  (conf start-ch)
+  (facts (same-dev ls lk))
+  (rule gen-state-pass intro-same-dev-pass)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv (enc "may I pass" k)) (load lk (cat pt "st-k" d-0 o-0 k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0))
+      (send (enc "you may pass" n k))))
+  (label 11)
+  (parent 10)
+  (unrealized (0 1) (1 0) (1 1) (1 2))
+  (origs (n (1 3)) (k (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton atomic-open-closed
+  (vars (k skey) (n text) (d o d-0 o-0 name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (defstrand user-pass 1 (k k))
+  (precedes ((0 0) (1 1)) ((2 0) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d-0 o-0 o-0) (cat "st-k" d-0 o-0 k))
+  (conf start-ch)
+  (facts (same-dev ls lk))
+  (rule intro-same-dev-pass)
+  (operation encryption-test (added-strand user-pass 1)
+    (enc "may I pass" k) (1 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv (enc "may I pass" k)) (load lk (cat pt "st-k" d-0 o-0 k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0))
+      (send (enc "you may pass" n k))) ((send (enc "may I pass" k))))
+  (label 12)
+  (parent 11)
+  (unrealized (0 1) (1 1) (1 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton atomic-open-closed
+  (vars (k skey) (n text) (d o d-0 o-0 name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 1) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d-0 o-0 o-0) (cat "st-k" d-0 o-0 k))
+  (conf start-ch)
+  (facts (same-dev ls lk))
+  (rule intro-same-dev-pass)
+  (operation encryption-test (added-listener k) (enc "may I pass" k)
+    (1 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv (enc "may I pass" k)) (load lk (cat pt "st-k" d-0 o-0 k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0))
+      (send (enc "you may pass" n k))) ((recv k) (send k)))
+  (label 13)
+  (parent 11)
+  (seen 15)
+  (unrealized (0 1) (1 1) (1 2) (2 0))
+  (comment "6 in cohort - 1 not yet seen"))
+
+(defskeleton atomic-open-closed
+  (vars (old old1 mesg) (k skey) (n text) (d o d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch start-ch-0 chan)
+    (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d-0) (o o-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((0 0) (3 0)) ((2 0) (1 0)) ((3 4) (1 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d-0 o-0 o-0) (cat "st-k" d-0 o-0 k))
+  (conf start-ch)
+  (auth start-ch-0)
+  (facts (same-dev ls lk))
+  (leads-to ((3 2) (1 1)))
+  (rule atomic-up-pass dev-up-completes intro-same-dev-pass
+    intro-same-dev-up same-dev-lk-ls trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-up 3)
+    (ch-msg lk (cat pt-1 "st-k" d-0 o-0 k)) (1 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv (enc "may I pass" k)) (load lk (cat pt-1 "st-k" d-0 o-0 k))
+      (load ls (cat pt "st" d-0 o-0 o-0))
+      (send (enc "you may pass" n k))) ((send (enc "may I pass" k)))
+    ((recv start-ch-0 (cat "power-up" d-0 o-0 k))
+      (load lk (cat pt-0 old)) (stor lk (cat pt-1 "st-k" d-0 o-0 k))
+      (load ls (cat pt-2 old1)) (stor ls (cat pt-3 "st" d-0 o-0))))
+  (label 14)
+  (parent 12)
+  (unrealized (0 1) (1 2) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton atomic-open-closed
+  (vars (old old1 mesg) (k skey) (n text) (d o d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan)
+    (lk ls lk-0 ls-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d-0) (o o-0)
+    (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (deflistener k)
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d-0) (o o-0)
+    (start-ch start-ch) (lk lk-0) (ls ls-0))
+  (precedes ((0 0) (3 0)) ((2 1) (1 0)) ((3 4) (2 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls-0 lk-0) (same-dev ls lk))
+  (rule dev-up-atomic2 dev-up-completes intro-same-dev-pass
+    intro-same-dev-up trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    trRl_dev-up-at-4)
+  (operation nonce-test (added-strand dev-up 3) k (2 0)
+    (ch-msg start-ch (cat "power-up" d-0 o-0 k)))
+  (traces
+    ((send start-ch (cat "power-up" d-0 o-0 k)) (recv (enc "up" k)))
+    ((recv (enc "may I pass" k)) (load lk (cat pt "st-k" d o k))
+      (load ls (cat pt-0 "st" d o o)) (send (enc "you may pass" n k)))
+    ((recv k) (send k))
+    ((recv start-ch (cat "power-up" d-0 o-0 k))
+      (load lk-0 (cat pt-1 old)) (stor lk-0 (cat pt-2 "st-k" d-0 o-0 k))
+      (load ls-0 (cat pt-3 old1)) (stor ls-0 (cat pt-4 "st" d-0 o-0))))
+  (label 15)
+  (parent 13)
+  (seen 15)
+  (unrealized (0 1) (1 1) (1 2) (2 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton atomic-open-closed
+  (vars (old old1 mesg) (k skey) (n text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (3 0)) ((2 0) (1 0)) ((3 4) (1 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((3 2) (1 1)))
+  (rule intro-same-dev-pass trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (displaced 4 0 owner-power-dev 1)
+    (ch-msg start-ch-0 (cat "power-up" d-0 o-0 k)) (3 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv (enc "may I pass" k)) (load lk (cat pt-1 "st-k" d o k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((send (enc "may I pass" k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k)) (load ls (cat pt-2 old1))
+      (stor ls (cat pt-3 "st" d o))))
+  (label 16)
+  (parent 14)
+  (unrealized (0 1) (1 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton atomic-open-closed
+  (vars (old old1 any mesg) (k k-0 skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (precedes ((0 0) (3 0)) ((2 0) (1 0)) ((3 4) (4 1)) ((4 3) (1 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((3 2) (1 1)) ((4 3) (1 2)))
+  (rule cau-dev-pass-2 dev-open-atomic1 gen-state-open
+    intro-same-dev-open intro-same-dev-pass invShearsRule same-dev-ls-lk
+    trRl_dev-open-at-2 trRl_dev-open-at-3 trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-open 4)
+    (ch-msg ls (cat pt "st" d o o)) (1 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv (enc "may I pass" k)) (load lk (cat pt-1 "st-k" d o k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((send (enc "may I pass" k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k)) (load ls (cat pt-2 old1))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-4 "st-k" d o k-0))
+      (load ls (cat pt-5 "st" d any)) (stor ls (cat pt "st" d o o))))
+  (label 17)
+  (parent 16)
+  (seen 18)
+  (unrealized (0 1) (4 1))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton atomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (precedes ((0 0) (3 0)) ((2 0) (1 0)) ((3 4) (4 1)) ((4 3) (1 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((3 2) (1 1)) ((3 2) (4 1)) ((4 3) (1 2)))
+  (rule intro-same-dev-pass trRl_dev-open-at-2 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (displaced 5 3 dev-up 3)
+    (ch-msg lk (cat pt-5 "st-k" d o k-0)) (4 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv (enc "may I pass" k)) (load lk (cat pt-1 "st-k" d o k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((send (enc "may I pass" k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k)) (load ls (cat pt-2 old1))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load lk (cat pt-1 "st-k" d o k))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o))))
+  (label 18)
+  (parent 17)
+  (unrealized (0 1) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton atomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (k k) (n n-0) (d d) (o o))
+  (precedes ((0 0) (3 0)) ((2 0) (1 0)) ((3 4) (4 1)) ((4 3) (1 1))
+    ((5 0) (4 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((3 2) (1 1)) ((3 2) (4 1)) ((4 3) (1 2)))
+  (rule intro-same-dev-pass trRl_dev-open-at-2 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-strand owner-open 1)
+    (enc "open" d o n-0 k) (4 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv (enc "may I pass" k)) (load lk (cat pt-1 "st-k" d o k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((send (enc "may I pass" k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k)) (load ls (cat pt-2 old1))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load lk (cat pt-1 "st-k" d o k))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))))
+  (label 19)
+  (parent 18)
+  (seen 21)
+  (unrealized (0 1))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton atomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (deflistener k)
+  (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((2 0) (1 0)) ((3 4) (4 1))
+    ((4 3) (1 1)) ((5 1) (4 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((3 2) (1 1)) ((3 2) (4 1)) ((4 3) (1 2)))
+  (rule intro-same-dev-pass trRl_dev-open-at-2 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-listener k) (enc "open" d o n-0 k)
+    (4 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv (enc "may I pass" k)) (load lk (cat pt-1 "st-k" d o k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((send (enc "may I pass" k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k)) (load ls (cat pt-2 old1))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load lk (cat pt-1 "st-k" d o k))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv k) (send k)))
+  (label 20)
+  (parent 18)
+  (seen 23)
+  (unrealized (0 1) (5 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton atomic-open-closed
+  (vars (any old old1 mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (k k) (n n-0) (d d) (o o))
+  (defstrand dev-up 6 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (5 0)) ((2 0) (1 0)) ((3 3) (1 1)) ((4 0) (3 0))
+    ((5 4) (3 1)) ((5 5) (0 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((3 3) (1 2)) ((5 2) (1 1)) ((5 2) (3 1)))
+  (rule intro-same-dev-pass trRl_dev-open-at-2 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (displaced 3 6 dev-up 6) (enc "up" k)
+    (0 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv (enc "may I pass" k)) (load lk (cat pt-2 "st-k" d o k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((send (enc "may I pass" k)))
+    ((recv (enc "open" d o n-0 k)) (load lk (cat pt-2 "st-k" d o k))
+      (load ls (cat pt-0 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-1 old))
+      (stor lk (cat pt-2 "st-k" d o k)) (load ls (cat pt-3 old1))
+      (stor ls (cat pt-4 "st" d o)) (send (enc "up" k))))
+  (label 21)
+  (parent 19)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((k k) (d d) (o o) (start-ch start-ch) (n n) (d-0 d) (o-0 o)
+        (lk lk) (ls ls))))
+  (origs (pt-2 (5 2)) (pt-4 (5 4)) (pt (3 3)) (n (1 3)) (k (0 0))))
+
+(defskeleton atomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (k k) (n n-0) (d d) (o o))
+  (deflistener k)
+  (precedes ((0 0) (3 0)) ((0 0) (6 0)) ((2 0) (1 0)) ((3 4) (4 1))
+    ((4 3) (1 1)) ((5 0) (4 0)) ((6 1) (0 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((3 2) (1 1)) ((3 2) (4 1)) ((4 3) (1 2)))
+  (rule intro-same-dev-pass trRl_dev-open-at-2 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-listener k) (enc "up" k) (0 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv (enc "may I pass" k)) (load lk (cat pt-1 "st-k" d o k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((send (enc "may I pass" k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k)) (load ls (cat pt-2 old1))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load lk (cat pt-1 "st-k" d o k))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))) ((recv k) (send k)))
+  (label 22)
+  (parent 19)
+  (seen 24)
+  (unrealized (6 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton atomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (deflistener k)
+  (precedes ((0 0) (3 0)) ((2 0) (1 0)) ((3 4) (5 0)) ((4 3) (1 1))
+    ((5 1) (4 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((3 2) (1 1)) ((3 2) (4 1)) ((4 3) (1 2)))
+  (rule dev-up-atomic2 intro-same-dev-pass trRl_dev-open-at-2
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (displaced 6 3 dev-up 3) k (5 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv (enc "may I pass" k)) (load lk (cat pt-1 "st-k" d o k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((send (enc "may I pass" k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k)) (load ls (cat pt-2 old1))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load lk (cat pt-1 "st-k" d o k))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv k) (send k)))
+  (label 23)
+  (parent 20)
+  (seen 23)
+  (unrealized (0 1) (5 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton atomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (k k) (n n-0) (d d) (o o))
+  (deflistener k)
+  (precedes ((0 0) (3 0)) ((2 0) (1 0)) ((3 4) (4 1)) ((3 4) (6 0))
+    ((4 3) (1 1)) ((5 0) (4 0)) ((6 1) (0 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk))
+  (leads-to ((3 2) (1 1)) ((3 2) (4 1)) ((4 3) (1 2)))
+  (rule dev-up-atomic2 intro-same-dev-pass trRl_dev-open-at-2
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (displaced 7 3 dev-up 3) k (6 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv (enc "may I pass" k)) (load lk (cat pt-1 "st-k" d o k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((send (enc "may I pass" k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k)) (load ls (cat pt-2 old1))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load lk (cat pt-1 "st-k" d o k))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))) ((recv k) (send k)))
+  (label 24)
+  (parent 22)
+  (seen 24)
+  (unrealized (6 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/tst/attest.scm b/tst/attest.scm
--- a/tst/attest.scm
+++ b/tst/attest.scm
@@ -48,6 +48,12 @@
   (non-orig (invk p) (invk a))
   (comment "Analyze from the person's perspective"))
 
+(defskeleton attest-door
+  (vars (p d a akey))
+  (defstrand door 3 (p p) (d d))
+  (non-orig (invk d) (invk p))
+  (comment "Analyze from the door's perspective"))
+
 (defprotocol attest-door-trust basic
   (defrole appraise
     (vars (d p a akey) (n text))
@@ -96,7 +102,7 @@
 		  (p "squealer" w 2)
 		  (p "squealer" "d" w d))
 	     (false)))
-    (comment "Squealer prohibited due to attestation"))
+    (comment "Passing attestation means not a squealer"))
   (comment "Door attestations protocol with attestation"))
 
 (defskeleton attest-door-trust
@@ -104,3 +110,81 @@
   (defstrand person 5 (p p) (a a))
   (non-orig (invk p) (invk a))
   (comment "Analyze from the person's perspective"))
+
+(defskeleton attest-door-trust
+  (vars (p d akey))
+  (defstrand door 3 (p p) (d d))
+  (non-orig (invk d) (invk p))
+  (comment "Analyze from the door's perspective"))
+
+(defprotocol attest-door-trust-attest basic
+  (defrole appraise
+    (vars (d p a akey) (n text))
+    (trace
+     (recv (enc (enc d n (invk p)) a))
+     (send (enc n a p)))
+    (comment "The appraiser for the door"))
+  (defrole person
+    (vars (d p a akey) (k skey) (n t text))
+    (trace
+     (send (enc (enc d n (invk p)) a))
+     (recv (enc n a p))
+     (send (enc (enc k (invk p)) d))
+     (recv (enc t k))
+     (send t))
+    (uniq-orig n k)
+    (comment "Person requesting door entry"))
+  (defrole door
+    (vars (d p akey) (k skey) (t text))
+    (trace
+     (recv (enc (enc k (invk p)) d))
+     (send (enc t k))
+     (recv t))
+    (uniq-orig t))
+  (defrole squealer
+    (vars (d p akey) (k skey) (t text))
+    (trace
+     (recv (enc (enc k (invk p)) d))
+     (send k))
+    (comment "Fake door"))
+  (defrule yes
+    (forall ((z strd) (a akey))
+	    (implies
+	     (and (p "appraise" z 2)
+		  (p "appraise" "a" z a)
+		  (non (invk a)))
+	     (exists ((d akey))
+		     (and (p "appraise" "d" z d)
+			  (non (invk d))))))
+    (comment "Appraisal succeeded"))
+  (defrule trust
+    (forall ((z w strd) (d akey))
+	    (implies
+	     (and (p "appraise" z 2)
+		  (p "appraise" "d" z d)
+		  (p "squealer" w 2)
+		  (p "squealer" "d" w d))
+	     (false)))
+    (comment "Passing attestation means not a squealer"))
+  (defrule uncompromised-people-choose-uncompromised-appraisers
+    (forall ((z strd) (a p akey))
+	    (implies
+	     (and (p "person" z 3)
+		  (p "person" "p" z p)
+		  (p "person" "a" z a)
+		  (non (invk p)))
+	     (non (invk a)))))
+
+  (comment "Door attestations protocol with attestation and reliable persons"))
+
+(defskeleton attest-door-trust-attest
+  (vars (p a akey))
+  (defstrand person 5 (p p) (a a))
+  (non-orig (invk p) (invk a))
+  (comment "Analyze from the person's perspective"))
+
+(defskeleton attest-door-trust-attest
+  (vars (p d akey))
+  (defstrand door 3 (p p) (d d))
+  (non-orig (invk d) (invk p))
+  (comment "Analyze from the door's perspective"))
diff --git a/tst/attest.tst b/tst/attest.tst
--- a/tst/attest.tst
+++ b/tst/attest.tst
@@ -1,6 +1,6 @@
 (herald attest-door)
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/attest.scm")
 
 (defprotocol attest-door basic
@@ -12,7 +12,7 @@
     (vars (d p a akey) (k skey) (n t text))
     (trace (send (enc (enc d n (invk p)) a)) (recv (enc n a p))
       (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))
-    (uniq-orig n k)
+    (uniq-orig k n)
     (comment "Person requesting door entry"))
   (defrole door
     (vars (d p akey) (k skey) (t text))
@@ -25,33 +25,40 @@
   (defrule yes
     (forall ((z strd) (a akey))
       (implies
-        (and (p "appraise" z 2) (p "appraise" "a" z a) (non (invk a)))
+        (and (p "appraise" z (idx 2)) (p "appraise" "a" z a)
+          (non (invk a)))
         (exists ((d akey))
           (and (p "appraise" "d" z d) (non (invk d))))))
     (comment "Appraisal succeeded"))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Door attestations protocol"))
 
 (defskeleton attest-door
-  (vars (n t text) (k skey) (p a d akey))
-  (defstrand person 5 (n n) (t t) (k k) (d d) (p p) (a a))
+  (vars (k skey) (n t text) (p a d akey))
+  (defstrand person 5 (k k) (n n) (t t) (d d) (p p) (a a))
   (non-orig (invk p) (invk a))
-  (uniq-orig n k)
+  (uniq-orig k n)
   (comment "Analyze from the person's perspective")
   (traces
     ((send (enc (enc d n (invk p)) a)) (recv (enc n a p))
       (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t)))
   (label 0)
   (unrealized (0 1))
-  (origs (n (0 0)) (k (0 2)))
+  (origs (k (0 2)) (n (0 0)))
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton attest-door
-  (vars (n t text) (k skey) (p a d akey))
-  (defstrand person 5 (n n) (t t) (k k) (d d) (p p) (a a))
+  (vars (k skey) (n t text) (p a d akey))
+  (defstrand person 5 (k k) (n n) (t t) (d d) (p p) (a a))
   (defstrand appraise 2 (n n) (d d) (p p) (a a))
   (precedes ((0 0) (1 0)) ((1 1) (0 1)))
   (non-orig (invk p) (invk a) (invk d))
-  (uniq-orig n k)
+  (uniq-orig k n)
   (rule yes)
   (operation nonce-test (added-strand appraise 2) n (0 1)
     (enc (enc d n (invk p)) a))
@@ -65,13 +72,13 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton attest-door
-  (vars (n t text) (k skey) (p a d d-0 p-0 akey))
-  (defstrand person 5 (n n) (t t) (k k) (d d) (p p) (a a))
+  (vars (k skey) (n t text) (p a d d-0 p-0 akey))
+  (defstrand person 5 (k k) (n n) (t t) (d d) (p p) (a a))
   (defstrand appraise 2 (n n) (d d) (p p) (a a))
-  (defstrand door 2 (t t) (k k) (d d-0) (p p-0))
+  (defstrand door 2 (k k) (t t) (d d-0) (p p-0))
   (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
   (non-orig (invk p) (invk a) (invk d))
-  (uniq-orig n t k)
+  (uniq-orig k n t)
   (operation encryption-test (added-strand door 2) (enc t k) (0 3))
   (traces
     ((send (enc (enc d n (invk p)) a)) (recv (enc n a p))
@@ -84,13 +91,13 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton attest-door
-  (vars (n t text) (k skey) (p a d akey))
-  (defstrand person 5 (n n) (t t) (k k) (d d) (p p) (a a))
+  (vars (k skey) (n t text) (p a d akey))
+  (defstrand person 5 (k k) (n n) (t t) (d d) (p p) (a a))
   (defstrand appraise 2 (n n) (d d) (p p) (a a))
   (deflistener k)
   (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
   (non-orig (invk p) (invk a) (invk d))
-  (uniq-orig n k)
+  (uniq-orig k n)
   (operation encryption-test (added-listener k) (enc t k) (0 3))
   (traces
     ((send (enc (enc d n (invk p)) a)) (recv (enc n a p))
@@ -103,13 +110,13 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton attest-door
-  (vars (n t text) (k skey) (p a d akey))
-  (defstrand person 5 (n n) (t t) (k k) (d d) (p p) (a a))
+  (vars (k skey) (n t text) (p a d akey))
+  (defstrand person 5 (k k) (n n) (t t) (d d) (p p) (a a))
   (defstrand appraise 2 (n n) (d d) (p p) (a a))
-  (defstrand door 2 (t t) (k k) (d d) (p p))
+  (defstrand door 2 (k k) (t t) (d d) (p p))
   (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
   (non-orig (invk p) (invk a) (invk d))
-  (uniq-orig n t k)
+  (uniq-orig k n t)
   (operation nonce-test (contracted (d-0 d) (p-0 p)) k (2 0)
     (enc (enc k (invk p)) d))
   (traces
@@ -119,21 +126,21 @@
     ((recv (enc (enc k (invk p)) d)) (send (enc t k))))
   (label 4)
   (parent 2)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((p p) (a a) (d d) (k k) (n n) (t t))))
-  (origs (t (2 1)) (n (0 0)) (k (0 2))))
+  (origs (t (2 1)) (k (0 2)) (n (0 0))))
 
 (defskeleton attest-door
-  (vars (n t text) (k skey) (p a d d-0 p-0 akey))
-  (defstrand person 5 (n n) (t t) (k k) (d d) (p p) (a a))
+  (vars (k skey) (n t text) (p a d d-0 p-0 akey))
+  (defstrand person 5 (k k) (n n) (t t) (d d) (p p) (a a))
   (defstrand appraise 2 (n n) (d d) (p p) (a a))
-  (defstrand door 2 (t t) (k k) (d d-0) (p p-0))
+  (defstrand door 2 (k k) (t t) (d d-0) (p p-0))
   (defstrand squealer 2 (k k) (d d) (p p))
   (precedes ((0 0) (1 0)) ((0 2) (3 0)) ((1 1) (0 1)) ((2 1) (0 3))
     ((3 1) (2 0)))
   (non-orig (invk p) (invk a) (invk d))
-  (uniq-orig n t k)
+  (uniq-orig k n t)
   (operation nonce-test (added-strand squealer 2) k (2 0)
     (enc (enc k (invk p)) d))
   (traces
@@ -144,19 +151,19 @@
     ((recv (enc (enc k (invk p)) d)) (send k)))
   (label 5)
   (parent 2)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton attest-door
-  (vars (n t text) (k skey) (p a d akey))
-  (defstrand person 5 (n n) (t t) (k k) (d d) (p p) (a a))
+  (vars (k skey) (n t text) (p a d akey))
+  (defstrand person 5 (k k) (n n) (t t) (d d) (p p) (a a))
   (defstrand appraise 2 (n n) (d d) (p p) (a a))
   (deflistener k)
   (defstrand squealer 2 (k k) (d d) (p p))
   (precedes ((0 0) (1 0)) ((0 2) (3 0)) ((1 1) (0 1)) ((2 1) (0 3))
     ((3 1) (2 0)))
   (non-orig (invk p) (invk a) (invk d))
-  (uniq-orig n k)
+  (uniq-orig k n)
   (operation nonce-test (added-strand squealer 2) k (2 0)
     (enc (enc k (invk p)) d))
   (traces
@@ -166,18 +173,17 @@
     ((recv k) (send k)) ((recv (enc (enc k (invk p)) d)) (send k)))
   (label 6)
   (parent 3)
-  (seen 7)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton attest-door
-  (vars (n t text) (k skey) (p a d akey))
-  (defstrand person 5 (n n) (t t) (k k) (d d) (p p) (a a))
+  (vars (k skey) (n t text) (p a d akey))
+  (defstrand person 5 (k k) (n n) (t t) (d d) (p p) (a a))
   (defstrand appraise 2 (n n) (d d) (p p) (a a))
   (defstrand squealer 2 (k k) (d d) (p p))
   (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
   (non-orig (invk p) (invk a) (invk d))
-  (uniq-orig n k)
+  (uniq-orig k n t)
   (operation generalization deleted (2 0))
   (traces
     ((send (enc (enc d n (invk p)) a)) (recv (enc n a p))
@@ -186,13 +192,101 @@
     ((recv (enc (enc k (invk p)) d)) (send k)))
   (label 7)
   (parent 5)
-  (unrealized)
+  (seen 8)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton attest-door
+  (vars (k skey) (n t text) (p a d akey))
+  (defstrand person 5 (k k) (n n) (t t) (d d) (p p) (a a))
+  (defstrand appraise 2 (n n) (d d) (p p) (a a))
+  (defstrand squealer 2 (k k) (d d) (p p))
+  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
+  (non-orig (invk p) (invk a) (invk d))
+  (uniq-orig k n)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (enc (enc d n (invk p)) a)) (recv (enc n a p))
+      (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))
+    ((recv (enc (enc d n (invk p)) a)) (send (enc n a p)))
+    ((recv (enc (enc k (invk p)) d)) (send k)))
+  (label 8)
+  (parent 6)
+  (realized)
   (shape)
   (maps ((0) ((p p) (a a) (d d) (k k) (n n) (t t))))
-  (origs (n (0 0)) (k (0 2))))
+  (origs (k (0 2)) (n (0 0))))
 
 (comment "Nothing left to do")
 
+(defprotocol attest-door basic
+  (defrole appraise
+    (vars (d p a akey) (n text))
+    (trace (recv (enc (enc d n (invk p)) a)) (send (enc n a p)))
+    (comment "The appraiser for the door"))
+  (defrole person
+    (vars (d p a akey) (k skey) (n t text))
+    (trace (send (enc (enc d n (invk p)) a)) (recv (enc n a p))
+      (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))
+    (uniq-orig k n)
+    (comment "Person requesting door entry"))
+  (defrole door
+    (vars (d p akey) (k skey) (t text))
+    (trace (recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))
+    (uniq-orig t))
+  (defrole squealer
+    (vars (d p akey) (k skey))
+    (trace (recv (enc (enc k (invk p)) d)) (send k))
+    (comment "Fake door"))
+  (defrule yes
+    (forall ((z strd) (a akey))
+      (implies
+        (and (p "appraise" z (idx 2)) (p "appraise" "a" z a)
+          (non (invk a)))
+        (exists ((d akey))
+          (and (p "appraise" "d" z d) (non (invk d))))))
+    (comment "Appraisal succeeded"))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Door attestations protocol"))
+
+(defskeleton attest-door
+  (vars (k skey) (t text) (p d akey))
+  (defstrand door 3 (k k) (t t) (d d) (p p))
+  (non-orig (invk p) (invk d))
+  (uniq-orig t)
+  (comment "Analyze from the door's perspective")
+  (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t)))
+  (label 9)
+  (unrealized (0 0))
+  (origs (t (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton attest-door
+  (vars (k skey) (t n text) (p d d-0 a akey))
+  (defstrand door 3 (k k) (t t) (d d) (p p))
+  (defstrand person 3 (k k) (n n) (d d-0) (p p) (a a))
+  (precedes ((1 2) (0 0)))
+  (non-orig (invk p) (invk d))
+  (uniq-orig k t n)
+  (operation encryption-test (added-strand person 3) (enc k (invk p))
+    (0 0))
+  (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))
+    ((send (enc (enc d-0 n (invk p)) a)) (recv (enc n a p))
+      (send (enc (enc k (invk p)) d-0))))
+  (label 10)
+  (parent 9)
+  (realized)
+  (shape)
+  (maps ((0) ((p p) (d d) (k k) (t t))))
+  (origs (n (1 0)) (k (1 2)) (t (0 1))))
+
+(comment "Nothing left to do")
+
 (defprotocol attest-door-trust basic
   (defrole appraise
     (vars (d p a akey) (n text))
@@ -202,7 +296,7 @@
     (vars (d p a akey) (k skey) (n t text))
     (trace (send (enc (enc d n (invk p)) a)) (recv (enc n a p))
       (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))
-    (uniq-orig n k)
+    (uniq-orig k n)
     (comment "Person requesting door entry"))
   (defrole door
     (vars (d p akey) (k skey) (t text))
@@ -215,40 +309,47 @@
   (defrule yes
     (forall ((z strd) (a akey))
       (implies
-        (and (p "appraise" z 2) (p "appraise" "a" z a) (non (invk a)))
+        (and (p "appraise" z (idx 2)) (p "appraise" "a" z a)
+          (non (invk a)))
         (exists ((d akey))
           (and (p "appraise" "d" z d) (non (invk d))))))
     (comment "Appraisal succeeded"))
   (defrule trust
     (forall ((z w strd) (d akey))
       (implies
-        (and (p "appraise" z 2) (p "appraise" "d" z d)
-          (p "squealer" w 2) (p "squealer" "d" w d))
+        (and (p "appraise" z (idx 2)) (p "appraise" "d" z d)
+          (p "squealer" w (idx 2)) (p "squealer" "d" w d))
         (false)))
-    (comment "Squealer prohibited due to attestation"))
+    (comment "Passing attestation means not a squealer"))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Door attestations protocol with attestation"))
 
 (defskeleton attest-door-trust
-  (vars (n t text) (k skey) (p a d akey))
-  (defstrand person 5 (n n) (t t) (k k) (d d) (p p) (a a))
+  (vars (k skey) (n t text) (p a d akey))
+  (defstrand person 5 (k k) (n n) (t t) (d d) (p p) (a a))
   (non-orig (invk p) (invk a))
-  (uniq-orig n k)
+  (uniq-orig k n)
   (comment "Analyze from the person's perspective")
   (traces
     ((send (enc (enc d n (invk p)) a)) (recv (enc n a p))
       (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t)))
-  (label 8)
+  (label 11)
   (unrealized (0 1))
-  (origs (n (0 0)) (k (0 2)))
+  (origs (k (0 2)) (n (0 0)))
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton attest-door-trust
-  (vars (n t text) (k skey) (p a d akey))
-  (defstrand person 5 (n n) (t t) (k k) (d d) (p p) (a a))
+  (vars (k skey) (n t text) (p a d akey))
+  (defstrand person 5 (k k) (n n) (t t) (d d) (p p) (a a))
   (defstrand appraise 2 (n n) (d d) (p p) (a a))
   (precedes ((0 0) (1 0)) ((1 1) (0 1)))
   (non-orig (invk p) (invk a) (invk d))
-  (uniq-orig n k)
+  (uniq-orig k n)
   (rule yes)
   (operation nonce-test (added-strand appraise 2) n (0 1)
     (enc (enc d n (invk p)) a))
@@ -256,58 +357,58 @@
     ((send (enc (enc d n (invk p)) a)) (recv (enc n a p))
       (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))
     ((recv (enc (enc d n (invk p)) a)) (send (enc n a p))))
-  (label 9)
-  (parent 8)
+  (label 12)
+  (parent 11)
   (unrealized (0 3))
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton attest-door-trust
-  (vars (n t text) (k skey) (p a d d-0 p-0 akey))
-  (defstrand person 5 (n n) (t t) (k k) (d d) (p p) (a a))
+  (vars (k skey) (n t text) (p a d d-0 p-0 akey))
+  (defstrand person 5 (k k) (n n) (t t) (d d) (p p) (a a))
   (defstrand appraise 2 (n n) (d d) (p p) (a a))
-  (defstrand door 2 (t t) (k k) (d d-0) (p p-0))
+  (defstrand door 2 (k k) (t t) (d d-0) (p p-0))
   (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
   (non-orig (invk p) (invk a) (invk d))
-  (uniq-orig n t k)
+  (uniq-orig k n t)
   (operation encryption-test (added-strand door 2) (enc t k) (0 3))
   (traces
     ((send (enc (enc d n (invk p)) a)) (recv (enc n a p))
       (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))
     ((recv (enc (enc d n (invk p)) a)) (send (enc n a p)))
     ((recv (enc (enc k (invk p-0)) d-0)) (send (enc t k))))
-  (label 10)
-  (parent 9)
+  (label 13)
+  (parent 12)
   (unrealized (2 0))
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton attest-door-trust
-  (vars (n t text) (k skey) (p a d akey))
-  (defstrand person 5 (n n) (t t) (k k) (d d) (p p) (a a))
+  (vars (k skey) (n t text) (p a d akey))
+  (defstrand person 5 (k k) (n n) (t t) (d d) (p p) (a a))
   (defstrand appraise 2 (n n) (d d) (p p) (a a))
   (deflistener k)
   (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
   (non-orig (invk p) (invk a) (invk d))
-  (uniq-orig n k)
+  (uniq-orig k n)
   (operation encryption-test (added-listener k) (enc t k) (0 3))
   (traces
     ((send (enc (enc d n (invk p)) a)) (recv (enc n a p))
       (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))
     ((recv (enc (enc d n (invk p)) a)) (send (enc n a p)))
     ((recv k) (send k)))
-  (label 11)
-  (parent 9)
+  (label 14)
+  (parent 12)
   (unrealized (2 0))
   (dead)
   (comment "empty cohort"))
 
 (defskeleton attest-door-trust
-  (vars (n t text) (k skey) (p a d akey))
-  (defstrand person 5 (n n) (t t) (k k) (d d) (p p) (a a))
+  (vars (k skey) (n t text) (p a d akey))
+  (defstrand person 5 (k k) (n n) (t t) (d d) (p p) (a a))
   (defstrand appraise 2 (n n) (d d) (p p) (a a))
-  (defstrand door 2 (t t) (k k) (d d) (p p))
+  (defstrand door 2 (k k) (t t) (d d) (p p))
   (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
   (non-orig (invk p) (invk a) (invk d))
-  (uniq-orig n t k)
+  (uniq-orig k n t)
   (operation nonce-test (contracted (d-0 d) (p-0 p)) k (2 0)
     (enc (enc k (invk p)) d))
   (traces
@@ -315,11 +416,394 @@
       (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))
     ((recv (enc (enc d n (invk p)) a)) (send (enc n a p)))
     ((recv (enc (enc k (invk p)) d)) (send (enc t k))))
-  (label 12)
-  (parent 10)
-  (unrealized)
+  (label 15)
+  (parent 13)
+  (realized)
   (shape)
   (maps ((0) ((p p) (a a) (d d) (k k) (n n) (t t))))
-  (origs (t (2 1)) (n (0 0)) (k (0 2))))
+  (origs (t (2 1)) (k (0 2)) (n (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol attest-door-trust basic
+  (defrole appraise
+    (vars (d p a akey) (n text))
+    (trace (recv (enc (enc d n (invk p)) a)) (send (enc n a p)))
+    (comment "The appraiser for the door"))
+  (defrole person
+    (vars (d p a akey) (k skey) (n t text))
+    (trace (send (enc (enc d n (invk p)) a)) (recv (enc n a p))
+      (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))
+    (uniq-orig k n)
+    (comment "Person requesting door entry"))
+  (defrole door
+    (vars (d p akey) (k skey) (t text))
+    (trace (recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))
+    (uniq-orig t))
+  (defrole squealer
+    (vars (d p akey) (k skey))
+    (trace (recv (enc (enc k (invk p)) d)) (send k))
+    (comment "Fake door"))
+  (defrule yes
+    (forall ((z strd) (a akey))
+      (implies
+        (and (p "appraise" z (idx 2)) (p "appraise" "a" z a)
+          (non (invk a)))
+        (exists ((d akey))
+          (and (p "appraise" "d" z d) (non (invk d))))))
+    (comment "Appraisal succeeded"))
+  (defrule trust
+    (forall ((z w strd) (d akey))
+      (implies
+        (and (p "appraise" z (idx 2)) (p "appraise" "d" z d)
+          (p "squealer" w (idx 2)) (p "squealer" "d" w d))
+        (false)))
+    (comment "Passing attestation means not a squealer"))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Door attestations protocol with attestation"))
+
+(defskeleton attest-door-trust
+  (vars (k skey) (t text) (p d akey))
+  (defstrand door 3 (k k) (t t) (d d) (p p))
+  (non-orig (invk p) (invk d))
+  (uniq-orig t)
+  (comment "Analyze from the door's perspective")
+  (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t)))
+  (label 16)
+  (unrealized (0 0))
+  (origs (t (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton attest-door-trust
+  (vars (k skey) (t n text) (p d d-0 a akey))
+  (defstrand door 3 (k k) (t t) (d d) (p p))
+  (defstrand person 3 (k k) (n n) (d d-0) (p p) (a a))
+  (precedes ((1 2) (0 0)))
+  (non-orig (invk p) (invk d))
+  (uniq-orig k t n)
+  (operation encryption-test (added-strand person 3) (enc k (invk p))
+    (0 0))
+  (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))
+    ((send (enc (enc d-0 n (invk p)) a)) (recv (enc n a p))
+      (send (enc (enc k (invk p)) d-0))))
+  (label 17)
+  (parent 16)
+  (realized)
+  (shape)
+  (maps ((0) ((p p) (d d) (k k) (t t))))
+  (origs (n (1 0)) (k (1 2)) (t (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol attest-door-trust-attest basic
+  (defrole appraise
+    (vars (d p a akey) (n text))
+    (trace (recv (enc (enc d n (invk p)) a)) (send (enc n a p)))
+    (comment "The appraiser for the door"))
+  (defrole person
+    (vars (d p a akey) (k skey) (n t text))
+    (trace (send (enc (enc d n (invk p)) a)) (recv (enc n a p))
+      (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))
+    (uniq-orig k n)
+    (comment "Person requesting door entry"))
+  (defrole door
+    (vars (d p akey) (k skey) (t text))
+    (trace (recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))
+    (uniq-orig t))
+  (defrole squealer
+    (vars (d p akey) (k skey))
+    (trace (recv (enc (enc k (invk p)) d)) (send k))
+    (comment "Fake door"))
+  (defrule yes
+    (forall ((z strd) (a akey))
+      (implies
+        (and (p "appraise" z (idx 2)) (p "appraise" "a" z a)
+          (non (invk a)))
+        (exists ((d akey))
+          (and (p "appraise" "d" z d) (non (invk d))))))
+    (comment "Appraisal succeeded"))
+  (defrule trust
+    (forall ((z w strd) (d akey))
+      (implies
+        (and (p "appraise" z (idx 2)) (p "appraise" "d" z d)
+          (p "squealer" w (idx 2)) (p "squealer" "d" w d))
+        (false)))
+    (comment "Passing attestation means not a squealer"))
+  (defrule uncompromised-people-choose-uncompromised-appraisers
+    (forall ((z strd) (a p akey))
+      (implies
+        (and (p "person" z (idx 3)) (p "person" "p" z p)
+          (p "person" "a" z a) (non (invk p)))
+        (non (invk a)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment
+    "Door attestations protocol with attestation and reliable persons"))
+
+(defskeleton attest-door-trust-attest
+  (vars (k skey) (n t text) (p a d akey))
+  (defstrand person 5 (k k) (n n) (t t) (d d) (p p) (a a))
+  (non-orig (invk p) (invk a))
+  (uniq-orig k n)
+  (comment "Analyze from the person's perspective")
+  (traces
+    ((send (enc (enc d n (invk p)) a)) (recv (enc n a p))
+      (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t)))
+  (label 18)
+  (unrealized (0 1))
+  (origs (k (0 2)) (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton attest-door-trust-attest
+  (vars (k skey) (n t text) (p a d akey))
+  (defstrand person 5 (k k) (n n) (t t) (d d) (p p) (a a))
+  (defstrand appraise 2 (n n) (d d) (p p) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk p) (invk a) (invk d))
+  (uniq-orig k n)
+  (rule yes)
+  (operation nonce-test (added-strand appraise 2) n (0 1)
+    (enc (enc d n (invk p)) a))
+  (traces
+    ((send (enc (enc d n (invk p)) a)) (recv (enc n a p))
+      (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))
+    ((recv (enc (enc d n (invk p)) a)) (send (enc n a p))))
+  (label 19)
+  (parent 18)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton attest-door-trust-attest
+  (vars (k skey) (n t text) (p a d d-0 p-0 akey))
+  (defstrand person 5 (k k) (n n) (t t) (d d) (p p) (a a))
+  (defstrand appraise 2 (n n) (d d) (p p) (a a))
+  (defstrand door 2 (k k) (t t) (d d-0) (p p-0))
+  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
+  (non-orig (invk p) (invk a) (invk d))
+  (uniq-orig k n t)
+  (operation encryption-test (added-strand door 2) (enc t k) (0 3))
+  (traces
+    ((send (enc (enc d n (invk p)) a)) (recv (enc n a p))
+      (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))
+    ((recv (enc (enc d n (invk p)) a)) (send (enc n a p)))
+    ((recv (enc (enc k (invk p-0)) d-0)) (send (enc t k))))
+  (label 20)
+  (parent 19)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton attest-door-trust-attest
+  (vars (k skey) (n t text) (p a d akey))
+  (defstrand person 5 (k k) (n n) (t t) (d d) (p p) (a a))
+  (defstrand appraise 2 (n n) (d d) (p p) (a a))
+  (deflistener k)
+  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
+  (non-orig (invk p) (invk a) (invk d))
+  (uniq-orig k n)
+  (operation encryption-test (added-listener k) (enc t k) (0 3))
+  (traces
+    ((send (enc (enc d n (invk p)) a)) (recv (enc n a p))
+      (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))
+    ((recv (enc (enc d n (invk p)) a)) (send (enc n a p)))
+    ((recv k) (send k)))
+  (label 21)
+  (parent 19)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton attest-door-trust-attest
+  (vars (k skey) (n t text) (p a d akey))
+  (defstrand person 5 (k k) (n n) (t t) (d d) (p p) (a a))
+  (defstrand appraise 2 (n n) (d d) (p p) (a a))
+  (defstrand door 2 (k k) (t t) (d d) (p p))
+  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
+  (non-orig (invk p) (invk a) (invk d))
+  (uniq-orig k n t)
+  (operation nonce-test (contracted (d-0 d) (p-0 p)) k (2 0)
+    (enc (enc k (invk p)) d))
+  (traces
+    ((send (enc (enc d n (invk p)) a)) (recv (enc n a p))
+      (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))
+    ((recv (enc (enc d n (invk p)) a)) (send (enc n a p)))
+    ((recv (enc (enc k (invk p)) d)) (send (enc t k))))
+  (label 22)
+  (parent 20)
+  (realized)
+  (shape)
+  (maps ((0) ((p p) (a a) (d d) (k k) (n n) (t t))))
+  (origs (t (2 1)) (k (0 2)) (n (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol attest-door-trust-attest basic
+  (defrole appraise
+    (vars (d p a akey) (n text))
+    (trace (recv (enc (enc d n (invk p)) a)) (send (enc n a p)))
+    (comment "The appraiser for the door"))
+  (defrole person
+    (vars (d p a akey) (k skey) (n t text))
+    (trace (send (enc (enc d n (invk p)) a)) (recv (enc n a p))
+      (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))
+    (uniq-orig k n)
+    (comment "Person requesting door entry"))
+  (defrole door
+    (vars (d p akey) (k skey) (t text))
+    (trace (recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))
+    (uniq-orig t))
+  (defrole squealer
+    (vars (d p akey) (k skey))
+    (trace (recv (enc (enc k (invk p)) d)) (send k))
+    (comment "Fake door"))
+  (defrule yes
+    (forall ((z strd) (a akey))
+      (implies
+        (and (p "appraise" z (idx 2)) (p "appraise" "a" z a)
+          (non (invk a)))
+        (exists ((d akey))
+          (and (p "appraise" "d" z d) (non (invk d))))))
+    (comment "Appraisal succeeded"))
+  (defrule trust
+    (forall ((z w strd) (d akey))
+      (implies
+        (and (p "appraise" z (idx 2)) (p "appraise" "d" z d)
+          (p "squealer" w (idx 2)) (p "squealer" "d" w d))
+        (false)))
+    (comment "Passing attestation means not a squealer"))
+  (defrule uncompromised-people-choose-uncompromised-appraisers
+    (forall ((z strd) (a p akey))
+      (implies
+        (and (p "person" z (idx 3)) (p "person" "p" z p)
+          (p "person" "a" z a) (non (invk p)))
+        (non (invk a)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment
+    "Door attestations protocol with attestation and reliable persons"))
+
+(defskeleton attest-door-trust-attest
+  (vars (k skey) (t text) (p d akey))
+  (defstrand door 3 (k k) (t t) (d d) (p p))
+  (non-orig (invk p) (invk d))
+  (uniq-orig t)
+  (comment "Analyze from the door's perspective")
+  (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t)))
+  (label 23)
+  (unrealized (0 0))
+  (origs (t (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton attest-door-trust-attest
+  (vars (k skey) (t n text) (p d d-0 a akey))
+  (defstrand door 3 (k k) (t t) (d d) (p p))
+  (defstrand person 3 (k k) (n n) (d d-0) (p p) (a a))
+  (precedes ((1 2) (0 0)))
+  (non-orig (invk p) (invk d) (invk a))
+  (uniq-orig k t n)
+  (rule uncompromised-people-choose-uncompromised-appraisers)
+  (operation encryption-test (added-strand person 3) (enc k (invk p))
+    (0 0))
+  (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))
+    ((send (enc (enc d-0 n (invk p)) a)) (recv (enc n a p))
+      (send (enc (enc k (invk p)) d-0))))
+  (label 24)
+  (parent 23)
+  (unrealized (1 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton attest-door-trust-attest
+  (vars (k skey) (t n text) (p d d-0 a akey))
+  (defstrand door 3 (k k) (t t) (d d) (p p))
+  (defstrand person 3 (k k) (n n) (d d-0) (p p) (a a))
+  (defstrand appraise 2 (n n) (d d-0) (p p) (a a))
+  (precedes ((1 0) (2 0)) ((1 2) (0 0)) ((2 1) (1 1)))
+  (non-orig (invk p) (invk d) (invk d-0) (invk a))
+  (uniq-orig k t n)
+  (rule yes)
+  (operation nonce-test (added-strand appraise 2) n (1 1)
+    (enc (enc d-0 n (invk p)) a))
+  (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))
+    ((send (enc (enc d-0 n (invk p)) a)) (recv (enc n a p))
+      (send (enc (enc k (invk p)) d-0)))
+    ((recv (enc (enc d-0 n (invk p)) a)) (send (enc n a p))))
+  (label 25)
+  (parent 24)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton attest-door-trust-attest
+  (vars (k skey) (t n text) (p d a akey))
+  (defstrand door 3 (k k) (t t) (d d) (p p))
+  (defstrand person 3 (k k) (n n) (d d) (p p) (a a))
+  (defstrand appraise 2 (n n) (d d) (p p) (a a))
+  (precedes ((1 0) (2 0)) ((1 2) (0 0)) ((2 1) (1 1)))
+  (non-orig (invk p) (invk d) (invk a))
+  (uniq-orig k t n)
+  (operation encryption-test (contracted (d-0 d)) (enc k (invk p)) (0 0)
+    (enc (enc k (invk p)) d))
+  (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))
+    ((send (enc (enc d n (invk p)) a)) (recv (enc n a p))
+      (send (enc (enc k (invk p)) d)))
+    ((recv (enc (enc d n (invk p)) a)) (send (enc n a p))))
+  (label 26)
+  (parent 25)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton attest-door-trust-attest
+  (vars (k skey) (t n text) (d p a akey))
+  (defstrand door 3 (k k) (t t) (d d) (p p))
+  (defstrand appraise 2 (n n) (d d) (p p) (a a))
+  (defstrand person 5 (k k) (n n) (t t) (d d) (p p) (a a))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((2 0) (1 0)) ((2 2) (0 0))
+    ((2 4) (0 2)))
+  (non-orig (invk d) (invk p) (invk a))
+  (uniq-orig k t n)
+  (operation nonce-test (displaced 1 3 person 5) t (0 2) (enc t k))
+  (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))
+    ((recv (enc (enc d n (invk p)) a)) (send (enc n a p)))
+    ((send (enc (enc d n (invk p)) a)) (recv (enc n a p))
+      (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t)))
+  (label 27)
+  (parent 26)
+  (realized)
+  (shape)
+  (maps ((0) ((p p) (d d) (k k) (t t))))
+  (origs (n (2 0)) (k (2 2)) (t (0 1))))
+
+(defskeleton attest-door-trust-attest
+  (vars (k skey) (t n text) (p d a akey))
+  (defstrand door 3 (k k) (t t) (d d) (p p))
+  (defstrand person 3 (k k) (n n) (d d) (p p) (a a))
+  (defstrand appraise 2 (n n) (d d) (p p) (a a))
+  (deflistener k)
+  (precedes ((1 0) (2 0)) ((1 2) (0 0)) ((1 2) (3 0)) ((2 1) (1 1))
+    ((3 1) (0 2)))
+  (non-orig (invk p) (invk d) (invk a))
+  (uniq-orig k t n)
+  (operation nonce-test (added-listener k) t (0 2) (enc t k))
+  (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))
+    ((send (enc (enc d n (invk p)) a)) (recv (enc n a p))
+      (send (enc (enc k (invk p)) d)))
+    ((recv (enc (enc d n (invk p)) a)) (send (enc n a p)))
+    ((recv k) (send k)))
+  (label 28)
+  (parent 26)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
 
 (comment "Nothing left to do")
diff --git a/tst/auth-enc.scm b/tst/auth-enc.scm
new file mode 100644
--- /dev/null
+++ b/tst/auth-enc.scm
@@ -0,0 +1,18 @@
+(herald auth-enc)
+
+(defprotocol auth-enc basic
+  (defrole init
+    (vars (n text) (k skey) (ch chan))
+    (trace (send ch (enc n k)) (send ch (cat n k)))
+    (uniq-orig n k)
+    (inputs ch))
+  (defrole resp
+    (vars (n text) (k skey) (ch chan))
+    (trace (recv ch (enc n k)) (recv ch (cat n k)))
+    (inputs ch)
+    (outputs n)))
+
+(defskeleton auth-enc
+  (vars (ch chan))
+  (defstrand resp 2 (ch ch))
+  (auth ch))
diff --git a/tst/auth-enc.tst b/tst/auth-enc.tst
new file mode 100644
--- /dev/null
+++ b/tst/auth-enc.tst
@@ -0,0 +1,68 @@
+(herald auth-enc)
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/auth-enc.scm")
+
+(defprotocol auth-enc basic
+  (defrole init
+    (vars (n text) (k skey) (ch chan))
+    (trace (send ch (enc n k)) (send ch (cat n k)))
+    (uniq-orig k n)
+    (inputs ch))
+  (defrole resp
+    (vars (n text) (k skey) (ch chan))
+    (trace (recv ch (enc n k)) (recv ch (cat n k)))
+    (inputs ch)
+    (outputs n))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton auth-enc
+  (vars (k skey) (n text) (ch chan))
+  (defstrand resp 2 (k k) (n n) (ch ch))
+  (auth ch)
+  (traces ((recv ch (enc n k)) (recv ch (cat n k))))
+  (label 0)
+  (unrealized (0 0) (0 1))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton auth-enc
+  (vars (k skey) (n text) (ch chan))
+  (defstrand resp 2 (k k) (n n) (ch ch))
+  (defstrand init 1 (k k) (n n) (ch ch))
+  (precedes ((1 0) (0 0)))
+  (uniq-orig n)
+  (auth ch)
+  (operation channel-test (added-strand init 1) (ch-msg ch (enc n k))
+    (0 0))
+  (traces ((recv ch (enc n k)) (recv ch (cat n k)))
+    ((send ch (enc n k))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton auth-enc
+  (vars (k skey) (n text) (ch chan))
+  (defstrand resp 2 (k k) (n n) (ch ch))
+  (defstrand init 2 (k k) (n n) (ch ch))
+  (precedes ((1 0) (0 0)) ((1 1) (0 1)))
+  (uniq-orig k n)
+  (auth ch)
+  (operation channel-test (displaced 1 2 init 2) (ch-msg ch (cat n k))
+    (0 1))
+  (traces ((recv ch (enc n k)) (recv ch (cat n k)))
+    ((send ch (enc n k)) (send ch (cat n k))))
+  (label 2)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((ch ch) (n n) (k k))))
+  (origs (n (1 0)) (k (1 1))))
+
+(comment "Nothing left to do")
diff --git a/tst/auth-hash.scm b/tst/auth-hash.scm
new file mode 100644
--- /dev/null
+++ b/tst/auth-hash.scm
@@ -0,0 +1,18 @@
+(herald auth-hash)
+
+(defprotocol auth-hash basic
+  (defrole init
+    (vars (n text) (ch chan))
+    (trace (send ch (hash n)) (send ch n))
+    (uniq-orig n)
+    (inputs ch))
+  (defrole resp
+    (vars (n text) (ch chan))
+    (trace (recv ch (hash n)) (recv ch n))
+    (inputs ch)
+    (outputs n)))
+
+(defskeleton auth-hash
+  (vars (ch chan))
+  (defstrand resp 2 (ch ch))
+  (auth ch))
diff --git a/tst/auth-hash.tst b/tst/auth-hash.tst
new file mode 100644
--- /dev/null
+++ b/tst/auth-hash.tst
@@ -0,0 +1,83 @@
+(herald auth-hash)
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/auth-hash.scm")
+
+(defprotocol auth-hash basic
+  (defrole init
+    (vars (n text) (ch chan))
+    (trace (send ch (hash n)) (send ch n))
+    (uniq-orig n)
+    (inputs ch))
+  (defrole resp
+    (vars (n text) (ch chan))
+    (trace (recv ch (hash n)) (recv ch n))
+    (inputs ch)
+    (outputs n))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton auth-hash
+  (vars (n text) (ch chan))
+  (defstrand resp 2 (n n) (ch ch))
+  (auth ch)
+  (traces ((recv ch (hash n)) (recv ch n)))
+  (label 0)
+  (unrealized (0 0) (0 1))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton auth-hash
+  (vars (n text) (ch chan))
+  (defstrand resp 2 (n n) (ch ch))
+  (defstrand init 1 (n n) (ch ch))
+  (precedes ((1 0) (0 0)))
+  (auth ch)
+  (operation channel-test (added-strand init 1) (ch-msg ch (hash n))
+    (0 0))
+  (traces ((recv ch (hash n)) (recv ch n)) ((send ch (hash n))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton auth-hash
+  (vars (n text) (ch chan))
+  (defstrand resp 2 (n n) (ch ch))
+  (defstrand init 2 (n n) (ch ch))
+  (precedes ((1 0) (0 0)) ((1 1) (0 1)))
+  (uniq-orig n)
+  (auth ch)
+  (operation channel-test (displaced 1 2 init 2) (ch-msg ch n) (0 1))
+  (traces ((recv ch (hash n)) (recv ch n))
+    ((send ch (hash n)) (send ch n)))
+  (label 2)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((ch ch) (n n))))
+  (origs (n (1 1))))
+
+(defskeleton auth-hash
+  (vars (n text) (ch chan))
+  (defstrand resp 2 (n n) (ch ch))
+  (defstrand init 1 (n n) (ch ch))
+  (defstrand init 2 (n n) (ch ch))
+  (precedes ((1 0) (0 0)) ((2 1) (0 1)))
+  (uniq-orig n)
+  (auth ch)
+  (operation channel-test (added-strand init 2) (ch-msg ch n) (0 1))
+  (traces ((recv ch (hash n)) (recv ch n)) ((send ch (hash n)))
+    ((send ch (hash n)) (send ch n)))
+  (label 3)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((ch ch) (n n))))
+  (origs (n (2 1))))
+
+(comment "Nothing left to do")
diff --git a/tst/axiom2.scm b/tst/axiom2.scm
deleted file mode 100644
--- a/tst/axiom2.scm
+++ /dev/null
@@ -1,72 +0,0 @@
-;;; Test file to determine if we have implemented
-;;; "axiom 2" of the Stateful Protocols paper correctly.
-
-;;; This axiom states that when E1, E2, and E3 are all
-;;; state events, and E1 produces a state that E3 consumes,
-;;; and E2 observes the state E1 produces, then E2 occurs before E3.
-
-(herald "Axiom 2 Protocol" (bound 20))
-
-;;; This version places E1 and E3 in distinct strands
-(defprotocol ax2 basic
-  (defrole state-maker
-    (vars (n text))
-    (trace
-     (init n)
-    )
-  (uniq-gen n)
-  )
-  (defrole state-changer
-    (vars (n text))
-    (trace
-     (tran n (cat n n)))
-  )
-  (defrole state-observer
-    (vars (m1 m2 mesg))
-    (trace
-       (obsv m1)
-       (obsv m2))
-  )
-)
-
-;;; Can we observe the events in the proper order?
-(defskeleton ax2
-  (vars (n text))
-  (defstrand state-observer 2 (m1 n) (m2 (cat n n)))
-)
-
-;;; Can we observe the events in the improper order?
-(defskeleton ax2
-  (vars (n text))
-  (defstrand state-observer 2 (m2 n) (m1 (cat n n)))
-)
-
-;;; This version places E1 and E3 in the same strand
-(defprotocol ax2a basic
-  (defrole state-maker-changer
-    (vars (n text))
-    (trace
-     (init n)
-     (tran n (cat n n))
-    )
-  (uniq-gen n)
-  )
-  (defrole state-observer
-    (vars (m1 m2 mesg))
-    (trace
-       (obsv m1)
-       (obsv m2))
-  )
-)
-
-;;; Can we observe the events in the proper order?
-(defskeleton ax2a
-  (vars (n text))
-  (defstrand state-observer 2 (m1 n) (m2 (cat n n)))
-)
-
-;;; Can we observe the events in the improper order?
-(defskeleton ax2a
-  (vars (n text))
-  (defstrand state-observer 2 (m2 n) (m1 (cat n n)))
-)
diff --git a/tst/axiom2.tst b/tst/axiom2.tst
deleted file mode 100644
--- a/tst/axiom2.tst
+++ /dev/null
@@ -1,236 +0,0 @@
-(herald "Axiom 2 Protocol" (bound 20))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/axiom2.scm")
-(comment "Strand count bounded at 20")
-
-(defprotocol ax2 basic
-  (defrole state-maker (vars (n text)) (trace (init n)) (uniq-gen n))
-  (defrole state-changer (vars (n text)) (trace (tran n (cat n n))))
-  (defrole state-observer
-    (vars (m1 m2 mesg))
-    (trace (obsv m1) (obsv m2))))
-
-(defskeleton ax2
-  (vars (n text))
-  (defstrand state-observer 2 (m1 n) (m2 (cat n n)))
-  (traces ((obsv n) (obsv (cat n n))))
-  (label 0)
-  (unrealized (0 0) (0 1))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton ax2
-  (vars (n text))
-  (defstrand state-observer 2 (m1 n) (m2 (cat n n)))
-  (defstrand state-maker 1 (n n))
-  (precedes ((1 0) (0 0)))
-  (leadsto ((1 0) (0 0)))
-  (uniq-gen n)
-  (operation state-passing-test (added-strand state-maker 1) n (0 0))
-  (traces ((obsv n) (obsv (cat n n))) ((init n)))
-  (label 1)
-  (parent 0)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton ax2
-  (vars (n text))
-  (defstrand state-observer 2 (m1 n) (m2 (cat n n)))
-  (defstrand state-maker 1 (n n))
-  (defstrand state-changer 1 (n n))
-  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 0) (0 1)))
-  (leadsto ((1 0) (0 0)) ((2 0) (0 1)))
-  (uniq-gen n)
-  (operation state-passing-test (added-strand state-changer 1) (cat n n)
-    (0 1))
-  (traces ((obsv n) (obsv (cat n n))) ((init n)) ((tran n (cat n n))))
-  (label 2)
-  (parent 1)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton ax2
-  (vars (n text))
-  (defstrand state-observer 2 (m1 n) (m2 (cat n n)))
-  (defstrand state-maker 1 (n n))
-  (defstrand state-changer 1 (n n))
-  (precedes ((0 0) (2 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 0) (0 1)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((2 0) (0 1)))
-  (uniq-gen n)
-  (operation state-passing-test (displaced 3 1 state-maker 1) n (2 0))
-  (traces ((obsv n) (obsv (cat n n))) ((init n)) ((tran n (cat n n))))
-  (label 3)
-  (parent 2)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n n))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol ax2 basic
-  (defrole state-maker (vars (n text)) (trace (init n)) (uniq-gen n))
-  (defrole state-changer (vars (n text)) (trace (tran n (cat n n))))
-  (defrole state-observer
-    (vars (m1 m2 mesg))
-    (trace (obsv m1) (obsv m2))))
-
-(defskeleton ax2
-  (vars (n text))
-  (defstrand state-observer 2 (m1 (cat n n)) (m2 n))
-  (traces ((obsv (cat n n)) (obsv n)))
-  (label 4)
-  (unrealized (0 0) (0 1))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton ax2
-  (vars (n text))
-  (defstrand state-observer 2 (m1 (cat n n)) (m2 n))
-  (defstrand state-changer 1 (n n))
-  (precedes ((1 0) (0 0)))
-  (leadsto ((1 0) (0 0)))
-  (operation state-passing-test (added-strand state-changer 1) (cat n n)
-    (0 0))
-  (traces ((obsv (cat n n)) (obsv n)) ((tran n (cat n n))))
-  (label 5)
-  (parent 4)
-  (unrealized (0 1) (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton ax2
-  (vars (n text))
-  (defstrand state-observer 2 (m1 (cat n n)) (m2 n))
-  (defstrand state-changer 1 (n n))
-  (defstrand state-maker 1 (n n))
-  (precedes ((1 0) (0 0)) ((2 0) (1 0)))
-  (leadsto ((1 0) (0 0)) ((2 0) (1 0)))
-  (uniq-gen n)
-  (operation state-passing-test (added-strand state-maker 1) n (1 0))
-  (traces ((obsv (cat n n)) (obsv n)) ((tran n (cat n n))) ((init n)))
-  (label 6)
-  (parent 5)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol ax2a basic
-  (defrole state-maker-changer
-    (vars (n text))
-    (trace (init n) (tran n (cat n n)))
-    (uniq-gen n))
-  (defrole state-observer
-    (vars (m1 m2 mesg))
-    (trace (obsv m1) (obsv m2))))
-
-(defskeleton ax2a
-  (vars (n text))
-  (defstrand state-observer 2 (m1 n) (m2 (cat n n)))
-  (traces ((obsv n) (obsv (cat n n))))
-  (label 7)
-  (unrealized (0 0) (0 1))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton ax2a
-  (vars (n text))
-  (defstrand state-observer 2 (m1 n) (m2 (cat n n)))
-  (defstrand state-maker-changer 1 (n n))
-  (precedes ((1 0) (0 0)))
-  (leadsto ((1 0) (0 0)))
-  (uniq-gen n)
-  (operation state-passing-test (added-strand state-maker-changer 1) n
-    (0 0))
-  (traces ((obsv n) (obsv (cat n n))) ((init n)))
-  (label 8)
-  (parent 7)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton ax2a
-  (vars (n text))
-  (defstrand state-observer 2 (m1 n) (m2 (cat n n)))
-  (defstrand state-maker-changer 2 (n n))
-  (precedes ((1 0) (0 0)) ((1 1) (0 1)))
-  (leadsto ((1 0) (0 0)) ((1 1) (0 1)))
-  (uniq-gen n)
-  (operation state-passing-test (displaced 1 2 state-maker-changer 2)
-    (cat n n) (0 1))
-  (traces ((obsv n) (obsv (cat n n))) ((init n) (tran n (cat n n))))
-  (label 9)
-  (parent 8)
-  (unrealized (1 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton ax2a
-  (vars (n text))
-  (defstrand state-observer 2 (m1 n) (m2 (cat n n)))
-  (defstrand state-maker-changer 2 (n n))
-  (precedes ((0 0) (1 1)) ((1 0) (0 0)) ((1 1) (0 1)))
-  (leadsto ((1 0) (0 0)) ((1 0) (1 1)) ((1 1) (0 1)))
-  (uniq-gen n)
-  (operation state-passing-test (displaced 2 1 state-maker-changer 1) n
-    (1 1))
-  (traces ((obsv n) (obsv (cat n n))) ((init n) (tran n (cat n n))))
-  (label 10)
-  (parent 9)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n n))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol ax2a basic
-  (defrole state-maker-changer
-    (vars (n text))
-    (trace (init n) (tran n (cat n n)))
-    (uniq-gen n))
-  (defrole state-observer
-    (vars (m1 m2 mesg))
-    (trace (obsv m1) (obsv m2))))
-
-(defskeleton ax2a
-  (vars (n text))
-  (defstrand state-observer 2 (m1 (cat n n)) (m2 n))
-  (traces ((obsv (cat n n)) (obsv n)))
-  (label 11)
-  (unrealized (0 0) (0 1))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton ax2a
-  (vars (n text))
-  (defstrand state-observer 2 (m1 (cat n n)) (m2 n))
-  (defstrand state-maker-changer 2 (n n))
-  (precedes ((1 1) (0 0)))
-  (leadsto ((1 1) (0 0)))
-  (uniq-gen n)
-  (operation state-passing-test (added-strand state-maker-changer 2)
-    (cat n n) (0 0))
-  (traces ((obsv (cat n n)) (obsv n)) ((init n) (tran n (cat n n))))
-  (label 12)
-  (parent 11)
-  (unrealized (0 1) (1 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton ax2a
-  (vars (n text))
-  (defstrand state-observer 2 (m1 (cat n n)) (m2 n))
-  (defstrand state-maker-changer 2 (n n))
-  (precedes ((1 1) (0 0)))
-  (leadsto ((1 0) (1 1)) ((1 1) (0 0)))
-  (uniq-gen n)
-  (operation state-passing-test (displaced 2 1 state-maker-changer 1) n
-    (1 1))
-  (traces ((obsv (cat n n)) (obsv n)) ((init n) (tran n (cat n n))))
-  (label 13)
-  (parent 12)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
diff --git a/tst/blanchet.scm b/tst/blanchet.scm
--- a/tst/blanchet.scm
+++ b/tst/blanchet.scm
@@ -3,82 +3,129 @@
 
 (defprotocol blanchet basic
   (defrole init
-    (vars (a b akey) (s skey) (d data))
+    (vars (a b name) (s skey) (d data))
     (trace
-     (send (enc (enc s (invk a)) b))
-     (recv (enc d s)))
-    (uniq-orig s))
+     (send (enc (enc s (privk a)) (pubk b)))
+     (recv (enc d s))))
   (defrole resp
-    (vars (a b akey) (s skey) (d data))
+    (vars (a b name) (s skey) (d data))
     (trace
-     (recv (enc (enc s (invk a)) b))
-     (send (enc d s)))
-    (uniq-orig d))
-  (comment "Blanchet's protocol"))
+     (recv (enc (enc s (privk a)) (pubk b)))
+     (send (enc d s))))
+  (comment "Blanchet's protocol using named asymmetric keys"))
 
 (defskeleton blanchet
-  (vars (a b akey) (s skey) (d data))
+  (vars (a b name) (s skey) (d data))
   (defstrand init 2 (a a) (b b) (s s) (d d))
-  (non-orig (invk b))
+  (non-orig (privk b))
+  (uniq-orig s)
   (comment "Analyze from the initiator's perspective"))
 
 (defskeleton blanchet
-  (vars (a b akey) (s skey) (d data))
-  (defstrand resp 2 (a a) (b b) (s s) (d d))
-  (non-orig (invk a) (invk b))
-  (comment "Analyze from the responder's perspective"))
-
-(defskeleton blanchet
-  (vars (a b akey) (s skey) (d data))
+  (vars (a b name) (s skey) (d data))
   (defstrand init 2 (a a) (b b) (s s) (d d))
   (deflistener d)
-  (non-orig (invk b))
+  (non-orig (privk b))
+  (uniq-orig s d)
   (comment "From the initiator's perspective, is the secret leaked?"))
 
 (defskeleton blanchet
-  (vars (a b akey) (s skey) (d data))
+  (vars (a b name) (s skey) (d data))
   (defstrand resp 2 (a a) (b b) (s s) (d d))
+  (non-orig (privk a) (privk b))
+  (uniq-orig s)
+  (comment "Analyze from the responder's perspective"))
+
+(defskeleton blanchet
+  (vars (a b name) (s skey) (d data))
+  (defstrand resp 2 (a a) (b b) (s s) (d d))
   (deflistener d)
-  (non-orig (invk a) (invk b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig s d)
   (comment "From the responders's perspective, is the secret leaked?"))
 
-(defprotocol blanchet-corrected basic
+(defprotocol blanchet-akey basic
   (defrole init
     (vars (a b akey) (s skey) (d data))
     (trace
-     (send (enc (enc s b (invk a)) b))
-     (recv (enc d s)))
-    (uniq-orig s))
+     (send (enc (enc s (invk a)) b))
+     (recv (enc d s))))
   (defrole resp
     (vars (a b akey) (s skey) (d data))
     (trace
-     (recv (enc (enc s b (invk a)) b))
-     (send (enc d s)))
-    (uniq-orig d))
-  (comment "Corrected Blanchet's protocol"))
+     (recv (enc (enc s (invk a)) b))
+     (send (enc d s))))
+  (comment "Blanchet's protocol using unnamed asymmetric keys"))
 
-(defskeleton blanchet-corrected
+(defskeleton blanchet-akey
   (vars (a b akey) (s skey) (d data))
   (defstrand init 2 (a a) (b b) (s s) (d d))
   (non-orig (invk b))
+  (uniq-orig s)
   (comment "Analyze from the initiator's perspective"))
 
-(defskeleton blanchet-corrected
+(defskeleton blanchet-akey
   (vars (a b akey) (s skey) (d data))
   (defstrand init 2 (a a) (b b) (s s) (d d))
   (deflistener d)
   (non-orig (invk b))
+  (uniq-orig s d)
   (comment "From the initiator's perspective, is the secret leaked?"))
 
-(defskeleton blanchet-corrected
+(defskeleton blanchet-akey
   (vars (a b akey) (s skey) (d data))
   (defstrand resp 2 (a a) (b b) (s s) (d d))
   (non-orig (invk a) (invk b))
+  (uniq-orig s)
   (comment "Analyze from the responder's perspective"))
 
-(defskeleton blanchet-corrected
+(defskeleton blanchet-akey
   (vars (a b akey) (s skey) (d data))
   (defstrand resp 2 (a a) (b b) (s s) (d d))
   (deflistener d)
   (non-orig (invk a) (invk b))
+  (uniq-orig s d)
+  (comment "From the responders's perspective, is the secret leaked?"))
+
+(defprotocol blanchet-fixed basic
+  (defrole init
+    (vars (a b name) (s skey) (d data))
+    (trace
+     (send (enc (enc s b (privk a)) (pubk b)))
+     (recv (enc d s))))
+  (defrole resp
+    (vars (a b name) (s skey) (d data))
+    (trace
+     (recv (enc (enc s b (privk a)) (pubk b)))
+     (send (enc d s))))
+  (comment "Fixed Blanchet's protocol using named asymmetric keys"))
+
+(defskeleton blanchet-fixed
+  (vars (a b name) (s skey) (d data))
+  (defstrand init 2 (a a) (b b) (s s) (d d))
+  (non-orig (privk b))
+  (uniq-orig s)
+  (comment "Analyze from the initiator's perspective"))
+
+(defskeleton blanchet-fixed
+  (vars (a b name) (s skey) (d data))
+  (defstrand init 2 (a a) (b b) (s s) (d d))
+  (deflistener d)
+  (non-orig (privk b))
+  (uniq-orig s d)
+  (comment "From the initiator's perspective, is the secret leaked?"))
+
+(defskeleton blanchet-fixed
+  (vars (a b name) (s skey) (d data))
+  (defstrand resp 2 (a a) (b b) (s s) (d d))
+  (non-orig (privk a) (privk b))
+  (uniq-orig s)
+  (comment "Analyze from the responder's perspective"))
+
+(defskeleton blanchet-fixed
+  (vars (a b name) (s skey) (d data))
+  (defstrand resp 2 (a a) (b b) (s s) (d d))
+  (deflistener d)
+  (non-orig (privk a) (privk b))
+  (uniq-orig s d)
   (comment "From the responders's perspective, is the secret leaked?"))
diff --git a/tst/blanchet.tst b/tst/blanchet.tst
--- a/tst/blanchet.tst
+++ b/tst/blanchet.tst
@@ -1,56 +1,60 @@
 (herald "Blanchet's Simple Example Protocol"
   (comment "There is a flaw in this protocol by design"))
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/blanchet.scm")
 
 (defprotocol blanchet basic
   (defrole init
-    (vars (a b akey) (s skey) (d data))
-    (trace (send (enc (enc s (invk a)) b)) (recv (enc d s)))
-    (uniq-orig s))
+    (vars (a b name) (s skey) (d data))
+    (trace (send (enc (enc s (privk a)) (pubk b))) (recv (enc d s))))
   (defrole resp
-    (vars (a b akey) (s skey) (d data))
-    (trace (recv (enc (enc s (invk a)) b)) (send (enc d s)))
-    (uniq-orig d))
-  (comment "Blanchet's protocol"))
+    (vars (a b name) (s skey) (d data))
+    (trace (recv (enc (enc s (privk a)) (pubk b))) (send (enc d s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Blanchet's protocol using named asymmetric keys"))
 
 (defskeleton blanchet
-  (vars (d data) (s skey) (a b akey))
+  (vars (d data) (s skey) (a b name))
   (defstrand init 2 (d d) (s s) (a a) (b b))
-  (non-orig (invk b))
+  (non-orig (privk b))
   (uniq-orig s)
   (comment "Analyze from the initiator's perspective")
-  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s))))
+  (traces ((send (enc (enc s (privk a)) (pubk b))) (recv (enc d s))))
   (label 0)
   (unrealized (0 1))
   (origs (s (0 0)))
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton blanchet
-  (vars (d data) (s skey) (a b a-0 b-0 akey))
+  (vars (d data) (s skey) (a b a-0 b-0 name))
   (defstrand init 2 (d d) (s s) (a a) (b b))
   (defstrand resp 2 (d d) (s s) (a a-0) (b b-0))
   (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (invk b))
-  (uniq-orig d s)
+  (non-orig (privk b))
+  (uniq-orig s)
   (operation encryption-test (added-strand resp 2) (enc d s) (0 1))
-  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
-    ((recv (enc (enc s (invk a-0)) b-0)) (send (enc d s))))
+  (traces ((send (enc (enc s (privk a)) (pubk b))) (recv (enc d s)))
+    ((recv (enc (enc s (privk a-0)) (pubk b-0))) (send (enc d s))))
   (label 1)
   (parent 0)
   (unrealized (1 0))
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton blanchet
-  (vars (d data) (s skey) (a b akey))
+  (vars (d data) (s skey) (a b name))
   (defstrand init 2 (d d) (s s) (a a) (b b))
   (deflistener s)
   (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (invk b))
+  (non-orig (privk b))
   (uniq-orig s)
   (operation encryption-test (added-listener s) (enc d s) (0 1))
-  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
+  (traces ((send (enc (enc s (privk a)) (pubk b))) (recv (enc d s)))
     ((recv s) (send s)))
   (label 2)
   (parent 0)
@@ -59,162 +63,123 @@
   (comment "empty cohort"))
 
 (defskeleton blanchet
-  (vars (d data) (s skey) (a b akey))
+  (vars (d data) (s skey) (a b name))
   (defstrand init 2 (d d) (s s) (a a) (b b))
   (defstrand resp 2 (d d) (s s) (a a) (b b))
   (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (invk b))
-  (uniq-orig d s)
+  (non-orig (privk b))
+  (uniq-orig s)
   (operation nonce-test (contracted (a-0 a) (b-0 b)) s (1 0)
-    (enc (enc s (invk a)) b))
-  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
-    ((recv (enc (enc s (invk a)) b)) (send (enc d s))))
+    (enc (enc s (privk a)) (pubk b)))
+  (traces ((send (enc (enc s (privk a)) (pubk b))) (recv (enc d s)))
+    ((recv (enc (enc s (privk a)) (pubk b))) (send (enc d s))))
   (label 3)
   (parent 1)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (s s) (d d))))
-  (origs (d (1 1)) (s (0 0))))
-
-(comment "Nothing left to do")
-
-(defprotocol blanchet basic
-  (defrole init
-    (vars (a b akey) (s skey) (d data))
-    (trace (send (enc (enc s (invk a)) b)) (recv (enc d s)))
-    (uniq-orig s))
-  (defrole resp
-    (vars (a b akey) (s skey) (d data))
-    (trace (recv (enc (enc s (invk a)) b)) (send (enc d s)))
-    (uniq-orig d))
-  (comment "Blanchet's protocol"))
-
-(defskeleton blanchet
-  (vars (d data) (s skey) (a b akey))
-  (defstrand resp 2 (d d) (s s) (a a) (b b))
-  (non-orig (invk a) (invk b))
-  (uniq-orig d)
-  (comment "Analyze from the responder's perspective")
-  (traces ((recv (enc (enc s (invk a)) b)) (send (enc d s))))
-  (label 4)
-  (unrealized (0 0))
-  (origs (d (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton blanchet
-  (vars (d data) (s skey) (a b b-0 akey))
-  (defstrand resp 2 (d d) (s s) (a a) (b b))
-  (defstrand init 1 (s s) (a a) (b b-0))
-  (precedes ((1 0) (0 0)))
-  (non-orig (invk a) (invk b))
-  (uniq-orig d s)
-  (operation encryption-test (added-strand init 1) (enc s (invk a))
-    (0 0))
-  (traces ((recv (enc (enc s (invk a)) b)) (send (enc d s)))
-    ((send (enc (enc s (invk a)) b-0))))
-  (label 5)
-  (parent 4)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (s s) (d d))))
-  (origs (s (1 0)) (d (0 1))))
+  (origs (s (0 0))))
 
 (comment "Nothing left to do")
 
 (defprotocol blanchet basic
   (defrole init
-    (vars (a b akey) (s skey) (d data))
-    (trace (send (enc (enc s (invk a)) b)) (recv (enc d s)))
-    (uniq-orig s))
+    (vars (a b name) (s skey) (d data))
+    (trace (send (enc (enc s (privk a)) (pubk b))) (recv (enc d s))))
   (defrole resp
-    (vars (a b akey) (s skey) (d data))
-    (trace (recv (enc (enc s (invk a)) b)) (send (enc d s)))
-    (uniq-orig d))
-  (comment "Blanchet's protocol"))
+    (vars (a b name) (s skey) (d data))
+    (trace (recv (enc (enc s (privk a)) (pubk b))) (send (enc d s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Blanchet's protocol using named asymmetric keys"))
 
 (defskeleton blanchet
-  (vars (d data) (s skey) (a b akey))
+  (vars (d data) (s skey) (a b name))
   (defstrand init 2 (d d) (s s) (a a) (b b))
   (deflistener d)
-  (non-orig (invk b))
-  (uniq-orig s)
+  (non-orig (privk b))
+  (uniq-orig d s)
   (comment "From the initiator's perspective, is the secret leaked?")
-  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
+  (traces ((send (enc (enc s (privk a)) (pubk b))) (recv (enc d s)))
     ((recv d) (send d)))
-  (label 6)
+  (label 4)
   (unrealized (0 1))
   (origs (s (0 0)))
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton blanchet
-  (vars (d data) (s skey) (a b a-0 b-0 akey))
+  (vars (d data) (s skey) (a b a-0 b-0 name))
   (defstrand init 2 (d d) (s s) (a a) (b b))
   (deflistener d)
   (defstrand resp 2 (d d) (s s) (a a-0) (b b-0))
   (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 1) (1 0)))
-  (non-orig (invk b))
+  (non-orig (privk b))
   (uniq-orig d s)
   (operation encryption-test (added-strand resp 2) (enc d s) (0 1))
-  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
+  (traces ((send (enc (enc s (privk a)) (pubk b))) (recv (enc d s)))
     ((recv d) (send d))
-    ((recv (enc (enc s (invk a-0)) b-0)) (send (enc d s))))
-  (label 7)
-  (parent 6)
+    ((recv (enc (enc s (privk a-0)) (pubk b-0))) (send (enc d s))))
+  (label 5)
+  (parent 4)
   (unrealized (1 0) (2 0))
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton blanchet
-  (vars (d data) (s skey) (a b akey))
+  (vars (d data) (s skey) (a b name))
   (defstrand init 2 (d d) (s s) (a a) (b b))
   (deflistener d)
   (deflistener s)
   (precedes ((0 0) (2 0)) ((2 1) (0 1)))
-  (non-orig (invk b))
-  (uniq-orig s)
+  (non-orig (privk b))
+  (uniq-orig d s)
   (operation encryption-test (added-listener s) (enc d s) (0 1))
-  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
+  (traces ((send (enc (enc s (privk a)) (pubk b))) (recv (enc d s)))
     ((recv d) (send d)) ((recv s) (send s)))
-  (label 8)
-  (parent 6)
+  (label 6)
+  (parent 4)
   (unrealized (2 0))
   (dead)
   (comment "empty cohort"))
 
 (defskeleton blanchet
-  (vars (d data) (s skey) (a b akey))
+  (vars (d data) (s skey) (a b name))
   (defstrand init 2 (d d) (s s) (a a) (b b))
   (deflistener d)
   (defstrand resp 2 (d d) (s s) (a a) (b b))
   (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 1) (1 0)))
-  (non-orig (invk b))
+  (non-orig (privk b))
   (uniq-orig d s)
   (operation nonce-test (contracted (a-0 a) (b-0 b)) s (2 0)
-    (enc (enc s (invk a)) b))
-  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
+    (enc (enc s (privk a)) (pubk b)))
+  (traces ((send (enc (enc s (privk a)) (pubk b))) (recv (enc d s)))
     ((recv d) (send d))
-    ((recv (enc (enc s (invk a)) b)) (send (enc d s))))
-  (label 9)
-  (parent 7)
+    ((recv (enc (enc s (privk a)) (pubk b))) (send (enc d s))))
+  (label 7)
+  (parent 5)
   (unrealized (1 0))
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton blanchet
-  (vars (d data) (s skey) (a b akey))
+  (vars (d data) (s skey) (a b name))
   (defstrand init 2 (d d) (s s) (a a) (b b))
   (deflistener d)
   (defstrand resp 2 (d d) (s s) (a a) (b b))
   (deflistener s)
   (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((2 1) (0 1)) ((2 1) (1 0))
     ((3 1) (1 0)))
-  (non-orig (invk b))
+  (non-orig (privk b))
   (uniq-orig d s)
   (operation nonce-test (added-listener s) d (1 0) (enc d s))
-  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
+  (traces ((send (enc (enc s (privk a)) (pubk b))) (recv (enc d s)))
     ((recv d) (send d))
-    ((recv (enc (enc s (invk a)) b)) (send (enc d s)))
+    ((recv (enc (enc s (privk a)) (pubk b))) (send (enc d s)))
     ((recv s) (send s)))
-  (label 10)
-  (parent 9)
+  (label 8)
+  (parent 7)
   (unrealized (3 0))
   (dead)
   (comment "empty cohort"))
@@ -223,23 +188,74 @@
 
 (defprotocol blanchet basic
   (defrole init
-    (vars (a b akey) (s skey) (d data))
-    (trace (send (enc (enc s (invk a)) b)) (recv (enc d s)))
-    (uniq-orig s))
+    (vars (a b name) (s skey) (d data))
+    (trace (send (enc (enc s (privk a)) (pubk b))) (recv (enc d s))))
   (defrole resp
-    (vars (a b akey) (s skey) (d data))
-    (trace (recv (enc (enc s (invk a)) b)) (send (enc d s)))
-    (uniq-orig d))
-  (comment "Blanchet's protocol"))
+    (vars (a b name) (s skey) (d data))
+    (trace (recv (enc (enc s (privk a)) (pubk b))) (send (enc d s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Blanchet's protocol using named asymmetric keys"))
 
 (defskeleton blanchet
-  (vars (d data) (s skey) (a b akey))
+  (vars (d data) (s skey) (a b name))
   (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig s)
+  (comment "Analyze from the responder's perspective")
+  (traces ((recv (enc (enc s (privk a)) (pubk b))) (send (enc d s))))
+  (label 9)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton blanchet
+  (vars (d data) (s skey) (a b b-0 name))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (defstrand init 1 (s s) (a a) (b b-0))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig s)
+  (operation encryption-test (added-strand init 1) (enc s (privk a))
+    (0 0))
+  (traces ((recv (enc (enc s (privk a)) (pubk b))) (send (enc d s)))
+    ((send (enc (enc s (privk a)) (pubk b-0)))))
+  (label 10)
+  (parent 9)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (s s) (d d))))
+  (origs (s (1 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol blanchet basic
+  (defrole init
+    (vars (a b name) (s skey) (d data))
+    (trace (send (enc (enc s (privk a)) (pubk b))) (recv (enc d s))))
+  (defrole resp
+    (vars (a b name) (s skey) (d data))
+    (trace (recv (enc (enc s (privk a)) (pubk b))) (send (enc d s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Blanchet's protocol using named asymmetric keys"))
+
+(defskeleton blanchet
+  (vars (d data) (s skey) (a b name))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
   (deflistener d)
-  (non-orig (invk a) (invk b))
-  (uniq-orig d)
+  (non-orig (privk a) (privk b))
+  (uniq-orig d s)
   (comment "From the responders's perspective, is the secret leaked?")
-  (traces ((recv (enc (enc s (invk a)) b)) (send (enc d s)))
+  (traces ((recv (enc (enc s (privk a)) (pubk b))) (send (enc d s)))
     ((recv d) (send d)))
   (label 11)
   (unrealized (0 0) (1 0))
@@ -248,14 +264,13 @@
   (comment "Not a skeleton"))
 
 (defskeleton blanchet
-  (vars (d data) (s skey) (a b akey))
+  (vars (d data) (s skey) (a b name))
   (defstrand resp 2 (d d) (s s) (a a) (b b))
   (deflistener d)
   (precedes ((0 1) (1 0)))
-  (non-orig (invk a) (invk b))
-  (uniq-orig d)
-  (comment "From the responders's perspective, is the secret leaked?")
-  (traces ((recv (enc (enc s (invk a)) b)) (send (enc d s)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig d s)
+  (traces ((recv (enc (enc s (privk a)) (pubk b))) (send (enc d s)))
     ((recv d) (send d)))
   (label 12)
   (parent 11)
@@ -264,65 +279,69 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton blanchet
-  (vars (d data) (s skey) (a b b-0 akey))
+  (vars (d data) (s skey) (a b b-0 name))
   (defstrand resp 2 (d d) (s s) (a a) (b b))
   (deflistener d)
   (defstrand init 1 (s s) (a a) (b b-0))
   (precedes ((0 1) (1 0)) ((2 0) (0 0)))
-  (non-orig (invk a) (invk b))
+  (non-orig (privk a) (privk b))
   (uniq-orig d s)
-  (operation encryption-test (added-strand init 1) (enc s (invk a))
+  (operation encryption-test (added-strand init 1) (enc s (privk a))
     (0 0))
-  (traces ((recv (enc (enc s (invk a)) b)) (send (enc d s)))
-    ((recv d) (send d)) ((send (enc (enc s (invk a)) b-0))))
+  (traces ((recv (enc (enc s (privk a)) (pubk b))) (send (enc d s)))
+    ((recv d) (send d)) ((send (enc (enc s (privk a)) (pubk b-0)))))
   (label 13)
   (parent 12)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0 1) ((a a) (b b) (s s) (d d))))
   (origs (s (2 0)) (d (0 1))))
 
 (comment "Nothing left to do")
 
-(defprotocol blanchet-corrected basic
+(defprotocol blanchet-akey basic
   (defrole init
     (vars (a b akey) (s skey) (d data))
-    (trace (send (enc (enc s b (invk a)) b)) (recv (enc d s)))
-    (uniq-orig s))
+    (trace (send (enc (enc s (invk a)) b)) (recv (enc d s))))
   (defrole resp
     (vars (a b akey) (s skey) (d data))
-    (trace (recv (enc (enc s b (invk a)) b)) (send (enc d s)))
-    (uniq-orig d))
-  (comment "Corrected Blanchet's protocol"))
+    (trace (recv (enc (enc s (invk a)) b)) (send (enc d s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Blanchet's protocol using unnamed asymmetric keys"))
 
-(defskeleton blanchet-corrected
+(defskeleton blanchet-akey
   (vars (d data) (s skey) (a b akey))
   (defstrand init 2 (d d) (s s) (a a) (b b))
   (non-orig (invk b))
   (uniq-orig s)
   (comment "Analyze from the initiator's perspective")
-  (traces ((send (enc (enc s b (invk a)) b)) (recv (enc d s))))
+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s))))
   (label 14)
   (unrealized (0 1))
   (origs (s (0 0)))
   (comment "2 in cohort - 2 not yet seen"))
 
-(defskeleton blanchet-corrected
+(defskeleton blanchet-akey
   (vars (d data) (s skey) (a b a-0 b-0 akey))
   (defstrand init 2 (d d) (s s) (a a) (b b))
   (defstrand resp 2 (d d) (s s) (a a-0) (b b-0))
   (precedes ((0 0) (1 0)) ((1 1) (0 1)))
   (non-orig (invk b))
-  (uniq-orig d s)
+  (uniq-orig s)
   (operation encryption-test (added-strand resp 2) (enc d s) (0 1))
-  (traces ((send (enc (enc s b (invk a)) b)) (recv (enc d s)))
-    ((recv (enc (enc s b-0 (invk a-0)) b-0)) (send (enc d s))))
+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
+    ((recv (enc (enc s (invk a-0)) b-0)) (send (enc d s))))
   (label 15)
   (parent 14)
   (unrealized (1 0))
   (comment "1 in cohort - 1 not yet seen"))
 
-(defskeleton blanchet-corrected
+(defskeleton blanchet-akey
   (vars (d data) (s skey) (a b akey))
   (defstrand init 2 (d d) (s s) (a a) (b b))
   (deflistener s)
@@ -330,7 +349,7 @@
   (non-orig (invk b))
   (uniq-orig s)
   (operation encryption-test (added-listener s) (enc d s) (0 1))
-  (traces ((send (enc (enc s b (invk a)) b)) (recv (enc d s)))
+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
     ((recv s) (send s)))
   (label 16)
   (parent 14)
@@ -338,52 +357,56 @@
   (dead)
   (comment "empty cohort"))
 
-(defskeleton blanchet-corrected
+(defskeleton blanchet-akey
   (vars (d data) (s skey) (a b akey))
   (defstrand init 2 (d d) (s s) (a a) (b b))
   (defstrand resp 2 (d d) (s s) (a a) (b b))
   (precedes ((0 0) (1 0)) ((1 1) (0 1)))
   (non-orig (invk b))
-  (uniq-orig d s)
+  (uniq-orig s)
   (operation nonce-test (contracted (a-0 a) (b-0 b)) s (1 0)
-    (enc (enc s b (invk a)) b))
-  (traces ((send (enc (enc s b (invk a)) b)) (recv (enc d s)))
-    ((recv (enc (enc s b (invk a)) b)) (send (enc d s))))
+    (enc (enc s (invk a)) b))
+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
+    ((recv (enc (enc s (invk a)) b)) (send (enc d s))))
   (label 17)
   (parent 15)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (s s) (d d))))
-  (origs (d (1 1)) (s (0 0))))
+  (origs (s (0 0))))
 
 (comment "Nothing left to do")
 
-(defprotocol blanchet-corrected basic
+(defprotocol blanchet-akey basic
   (defrole init
     (vars (a b akey) (s skey) (d data))
-    (trace (send (enc (enc s b (invk a)) b)) (recv (enc d s)))
-    (uniq-orig s))
+    (trace (send (enc (enc s (invk a)) b)) (recv (enc d s))))
   (defrole resp
     (vars (a b akey) (s skey) (d data))
-    (trace (recv (enc (enc s b (invk a)) b)) (send (enc d s)))
-    (uniq-orig d))
-  (comment "Corrected Blanchet's protocol"))
+    (trace (recv (enc (enc s (invk a)) b)) (send (enc d s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Blanchet's protocol using unnamed asymmetric keys"))
 
-(defskeleton blanchet-corrected
+(defskeleton blanchet-akey
   (vars (d data) (s skey) (a b akey))
   (defstrand init 2 (d d) (s s) (a a) (b b))
   (deflistener d)
   (non-orig (invk b))
-  (uniq-orig s)
+  (uniq-orig d s)
   (comment "From the initiator's perspective, is the secret leaked?")
-  (traces ((send (enc (enc s b (invk a)) b)) (recv (enc d s)))
+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
     ((recv d) (send d)))
   (label 18)
   (unrealized (0 1))
   (origs (s (0 0)))
   (comment "2 in cohort - 2 not yet seen"))
 
-(defskeleton blanchet-corrected
+(defskeleton blanchet-akey
   (vars (d data) (s skey) (a b a-0 b-0 akey))
   (defstrand init 2 (d d) (s s) (a a) (b b))
   (deflistener d)
@@ -392,24 +415,24 @@
   (non-orig (invk b))
   (uniq-orig d s)
   (operation encryption-test (added-strand resp 2) (enc d s) (0 1))
-  (traces ((send (enc (enc s b (invk a)) b)) (recv (enc d s)))
+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
     ((recv d) (send d))
-    ((recv (enc (enc s b-0 (invk a-0)) b-0)) (send (enc d s))))
+    ((recv (enc (enc s (invk a-0)) b-0)) (send (enc d s))))
   (label 19)
   (parent 18)
   (unrealized (1 0) (2 0))
   (comment "1 in cohort - 1 not yet seen"))
 
-(defskeleton blanchet-corrected
+(defskeleton blanchet-akey
   (vars (d data) (s skey) (a b akey))
   (defstrand init 2 (d d) (s s) (a a) (b b))
   (deflistener d)
   (deflistener s)
   (precedes ((0 0) (2 0)) ((2 1) (0 1)))
   (non-orig (invk b))
-  (uniq-orig s)
+  (uniq-orig d s)
   (operation encryption-test (added-listener s) (enc d s) (0 1))
-  (traces ((send (enc (enc s b (invk a)) b)) (recv (enc d s)))
+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
     ((recv d) (send d)) ((recv s) (send s)))
   (label 20)
   (parent 18)
@@ -417,7 +440,7 @@
   (dead)
   (comment "empty cohort"))
 
-(defskeleton blanchet-corrected
+(defskeleton blanchet-akey
   (vars (d data) (s skey) (a b akey))
   (defstrand init 2 (d d) (s s) (a a) (b b))
   (deflistener d)
@@ -426,16 +449,16 @@
   (non-orig (invk b))
   (uniq-orig d s)
   (operation nonce-test (contracted (a-0 a) (b-0 b)) s (2 0)
-    (enc (enc s b (invk a)) b))
-  (traces ((send (enc (enc s b (invk a)) b)) (recv (enc d s)))
+    (enc (enc s (invk a)) b))
+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
     ((recv d) (send d))
-    ((recv (enc (enc s b (invk a)) b)) (send (enc d s))))
+    ((recv (enc (enc s (invk a)) b)) (send (enc d s))))
   (label 21)
   (parent 19)
   (unrealized (1 0))
   (comment "1 in cohort - 1 not yet seen"))
 
-(defskeleton blanchet-corrected
+(defskeleton blanchet-akey
   (vars (d data) (s skey) (a b akey))
   (defstrand init 2 (d d) (s s) (a a) (b b))
   (deflistener d)
@@ -446,9 +469,9 @@
   (non-orig (invk b))
   (uniq-orig d s)
   (operation nonce-test (added-listener s) d (1 0) (enc d s))
-  (traces ((send (enc (enc s b (invk a)) b)) (recv (enc d s)))
+  (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s)))
     ((recv d) (send d))
-    ((recv (enc (enc s b (invk a)) b)) (send (enc d s)))
+    ((recv (enc (enc s (invk a)) b)) (send (enc d s)))
     ((recv s) (send s)))
   (label 22)
   (parent 21)
@@ -458,68 +481,76 @@
 
 (comment "Nothing left to do")
 
-(defprotocol blanchet-corrected basic
+(defprotocol blanchet-akey basic
   (defrole init
     (vars (a b akey) (s skey) (d data))
-    (trace (send (enc (enc s b (invk a)) b)) (recv (enc d s)))
-    (uniq-orig s))
+    (trace (send (enc (enc s (invk a)) b)) (recv (enc d s))))
   (defrole resp
     (vars (a b akey) (s skey) (d data))
-    (trace (recv (enc (enc s b (invk a)) b)) (send (enc d s)))
-    (uniq-orig d))
-  (comment "Corrected Blanchet's protocol"))
+    (trace (recv (enc (enc s (invk a)) b)) (send (enc d s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Blanchet's protocol using unnamed asymmetric keys"))
 
-(defskeleton blanchet-corrected
+(defskeleton blanchet-akey
   (vars (d data) (s skey) (a b akey))
   (defstrand resp 2 (d d) (s s) (a a) (b b))
   (non-orig (invk a) (invk b))
-  (uniq-orig d)
+  (uniq-orig s)
   (comment "Analyze from the responder's perspective")
-  (traces ((recv (enc (enc s b (invk a)) b)) (send (enc d s))))
+  (traces ((recv (enc (enc s (invk a)) b)) (send (enc d s))))
   (label 23)
   (unrealized (0 0))
-  (origs (d (0 1)))
+  (origs)
   (comment "1 in cohort - 1 not yet seen"))
 
-(defskeleton blanchet-corrected
-  (vars (d data) (s skey) (a b akey))
+(defskeleton blanchet-akey
+  (vars (d data) (s skey) (a b b-0 akey))
   (defstrand resp 2 (d d) (s s) (a a) (b b))
-  (defstrand init 1 (s s) (a a) (b b))
+  (defstrand init 1 (s s) (a a) (b b-0))
   (precedes ((1 0) (0 0)))
   (non-orig (invk a) (invk b))
-  (uniq-orig d s)
-  (operation encryption-test (added-strand init 1) (enc s b (invk a))
+  (uniq-orig s)
+  (operation encryption-test (added-strand init 1) (enc s (invk a))
     (0 0))
-  (traces ((recv (enc (enc s b (invk a)) b)) (send (enc d s)))
-    ((send (enc (enc s b (invk a)) b))))
+  (traces ((recv (enc (enc s (invk a)) b)) (send (enc d s)))
+    ((send (enc (enc s (invk a)) b-0))))
   (label 24)
   (parent 23)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (s s) (d d))))
-  (origs (s (1 0)) (d (0 1))))
+  (origs (s (1 0))))
 
 (comment "Nothing left to do")
 
-(defprotocol blanchet-corrected basic
+(defprotocol blanchet-akey basic
   (defrole init
     (vars (a b akey) (s skey) (d data))
-    (trace (send (enc (enc s b (invk a)) b)) (recv (enc d s)))
-    (uniq-orig s))
+    (trace (send (enc (enc s (invk a)) b)) (recv (enc d s))))
   (defrole resp
     (vars (a b akey) (s skey) (d data))
-    (trace (recv (enc (enc s b (invk a)) b)) (send (enc d s)))
-    (uniq-orig d))
-  (comment "Corrected Blanchet's protocol"))
+    (trace (recv (enc (enc s (invk a)) b)) (send (enc d s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Blanchet's protocol using unnamed asymmetric keys"))
 
-(defskeleton blanchet-corrected
+(defskeleton blanchet-akey
   (vars (d data) (s skey) (a b akey))
   (defstrand resp 2 (d d) (s s) (a a) (b b))
   (deflistener d)
   (non-orig (invk a) (invk b))
-  (uniq-orig d)
+  (uniq-orig d s)
   (comment "From the responders's perspective, is the secret leaked?")
-  (traces ((recv (enc (enc s b (invk a)) b)) (send (enc d s)))
+  (traces ((recv (enc (enc s (invk a)) b)) (send (enc d s)))
     ((recv d) (send d)))
   (label 25)
   (unrealized (0 0) (1 0))
@@ -527,15 +558,14 @@
   (origs (d (0 1)))
   (comment "Not a skeleton"))
 
-(defskeleton blanchet-corrected
+(defskeleton blanchet-akey
   (vars (d data) (s skey) (a b akey))
   (defstrand resp 2 (d d) (s s) (a a) (b b))
   (deflistener d)
   (precedes ((0 1) (1 0)))
   (non-orig (invk a) (invk b))
-  (uniq-orig d)
-  (comment "From the responders's perspective, is the secret leaked?")
-  (traces ((recv (enc (enc s b (invk a)) b)) (send (enc d s)))
+  (uniq-orig d s)
+  (traces ((recv (enc (enc s (invk a)) b)) (send (enc d s)))
     ((recv d) (send d)))
   (label 26)
   (parent 25)
@@ -543,38 +573,333 @@
   (origs (d (0 1)))
   (comment "1 in cohort - 1 not yet seen"))
 
-(defskeleton blanchet-corrected
-  (vars (d data) (s skey) (a b akey))
+(defskeleton blanchet-akey
+  (vars (d data) (s skey) (a b b-0 akey))
   (defstrand resp 2 (d d) (s s) (a a) (b b))
   (deflistener d)
-  (defstrand init 1 (s s) (a a) (b b))
+  (defstrand init 1 (s s) (a a) (b b-0))
   (precedes ((0 1) (1 0)) ((2 0) (0 0)))
   (non-orig (invk a) (invk b))
   (uniq-orig d s)
-  (operation encryption-test (added-strand init 1) (enc s b (invk a))
+  (operation encryption-test (added-strand init 1) (enc s (invk a))
     (0 0))
-  (traces ((recv (enc (enc s b (invk a)) b)) (send (enc d s)))
-    ((recv d) (send d)) ((send (enc (enc s b (invk a)) b))))
+  (traces ((recv (enc (enc s (invk a)) b)) (send (enc d s)))
+    ((recv d) (send d)) ((send (enc (enc s (invk a)) b-0))))
   (label 27)
   (parent 26)
+  (realized)
+  (shape)
+  (maps ((0 1) ((a a) (b b) (s s) (d d))))
+  (origs (s (2 0)) (d (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol blanchet-fixed basic
+  (defrole init
+    (vars (a b name) (s skey) (d data))
+    (trace (send (enc (enc s b (privk a)) (pubk b))) (recv (enc d s))))
+  (defrole resp
+    (vars (a b name) (s skey) (d data))
+    (trace (recv (enc (enc s b (privk a)) (pubk b))) (send (enc d s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Fixed Blanchet's protocol using named asymmetric keys"))
+
+(defskeleton blanchet-fixed
+  (vars (d data) (s skey) (a b name))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (non-orig (privk b))
+  (uniq-orig s)
+  (comment "Analyze from the initiator's perspective")
+  (traces ((send (enc (enc s b (privk a)) (pubk b))) (recv (enc d s))))
+  (label 28)
+  (unrealized (0 1))
+  (origs (s (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton blanchet-fixed
+  (vars (d data) (s skey) (a b a-0 b-0 name))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (defstrand resp 2 (d d) (s s) (a a-0) (b b-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-orig s)
+  (operation encryption-test (added-strand resp 2) (enc d s) (0 1))
+  (traces ((send (enc (enc s b (privk a)) (pubk b))) (recv (enc d s)))
+    ((recv (enc (enc s b-0 (privk a-0)) (pubk b-0))) (send (enc d s))))
+  (label 29)
+  (parent 28)
   (unrealized (1 0))
   (comment "1 in cohort - 1 not yet seen"))
 
-(defskeleton blanchet-corrected
-  (vars (d data) (s skey) (a b akey))
+(defskeleton blanchet-fixed
+  (vars (d data) (s skey) (a b name))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (deflistener s)
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-orig s)
+  (operation encryption-test (added-listener s) (enc d s) (0 1))
+  (traces ((send (enc (enc s b (privk a)) (pubk b))) (recv (enc d s)))
+    ((recv s) (send s)))
+  (label 30)
+  (parent 28)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton blanchet-fixed
+  (vars (d data) (s skey) (a b name))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
   (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-orig s)
+  (operation nonce-test (contracted (a-0 a) (b-0 b)) s (1 0)
+    (enc (enc s b (privk a)) (pubk b)))
+  (traces ((send (enc (enc s b (privk a)) (pubk b))) (recv (enc d s)))
+    ((recv (enc (enc s b (privk a)) (pubk b))) (send (enc d s))))
+  (label 31)
+  (parent 29)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (s s) (d d))))
+  (origs (s (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol blanchet-fixed basic
+  (defrole init
+    (vars (a b name) (s skey) (d data))
+    (trace (send (enc (enc s b (privk a)) (pubk b))) (recv (enc d s))))
+  (defrole resp
+    (vars (a b name) (s skey) (d data))
+    (trace (recv (enc (enc s b (privk a)) (pubk b))) (send (enc d s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Fixed Blanchet's protocol using named asymmetric keys"))
+
+(defskeleton blanchet-fixed
+  (vars (d data) (s skey) (a b name))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
   (deflistener d)
+  (non-orig (privk b))
+  (uniq-orig d s)
+  (comment "From the initiator's perspective, is the secret leaked?")
+  (traces ((send (enc (enc s b (privk a)) (pubk b))) (recv (enc d s)))
+    ((recv d) (send d)))
+  (label 32)
+  (unrealized (0 1))
+  (origs (s (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton blanchet-fixed
+  (vars (d data) (s skey) (a b a-0 b-0 name))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (defstrand resp 2 (d d) (s s) (a a-0) (b b-0))
+  (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk b))
+  (uniq-orig d s)
+  (operation encryption-test (added-strand resp 2) (enc d s) (0 1))
+  (traces ((send (enc (enc s b (privk a)) (pubk b))) (recv (enc d s)))
+    ((recv d) (send d))
+    ((recv (enc (enc s b-0 (privk a-0)) (pubk b-0))) (send (enc d s))))
+  (label 33)
+  (parent 32)
+  (unrealized (1 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton blanchet-fixed
+  (vars (d data) (s skey) (a b name))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (deflistener s)
+  (precedes ((0 0) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-orig d s)
+  (operation encryption-test (added-listener s) (enc d s) (0 1))
+  (traces ((send (enc (enc s b (privk a)) (pubk b))) (recv (enc d s)))
+    ((recv d) (send d)) ((recv s) (send s)))
+  (label 34)
+  (parent 32)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton blanchet-fixed
+  (vars (d data) (s skey) (a b name))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk b))
+  (uniq-orig d s)
+  (operation nonce-test (contracted (a-0 a) (b-0 b)) s (2 0)
+    (enc (enc s b (privk a)) (pubk b)))
+  (traces ((send (enc (enc s b (privk a)) (pubk b))) (recv (enc d s)))
+    ((recv d) (send d))
+    ((recv (enc (enc s b (privk a)) (pubk b))) (send (enc d s))))
+  (label 35)
+  (parent 33)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton blanchet-fixed
+  (vars (d data) (s skey) (a b name))
+  (defstrand init 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (deflistener s)
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((2 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk b))
+  (uniq-orig d s)
+  (operation nonce-test (added-listener s) d (1 0) (enc d s))
+  (traces ((send (enc (enc s b (privk a)) (pubk b))) (recv (enc d s)))
+    ((recv d) (send d))
+    ((recv (enc (enc s b (privk a)) (pubk b))) (send (enc d s)))
+    ((recv s) (send s)))
+  (label 36)
+  (parent 35)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol blanchet-fixed basic
+  (defrole init
+    (vars (a b name) (s skey) (d data))
+    (trace (send (enc (enc s b (privk a)) (pubk b))) (recv (enc d s))))
+  (defrole resp
+    (vars (a b name) (s skey) (d data))
+    (trace (recv (enc (enc s b (privk a)) (pubk b))) (send (enc d s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Fixed Blanchet's protocol using named asymmetric keys"))
+
+(defskeleton blanchet-fixed
+  (vars (d data) (s skey) (a b name))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig s)
+  (comment "Analyze from the responder's perspective")
+  (traces ((recv (enc (enc s b (privk a)) (pubk b))) (send (enc d s))))
+  (label 37)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton blanchet-fixed
+  (vars (d data) (s skey) (a b name))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
   (defstrand init 1 (s s) (a a) (b b))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig s)
+  (operation encryption-test (added-strand init 1) (enc s b (privk a))
+    (0 0))
+  (traces ((recv (enc (enc s b (privk a)) (pubk b))) (send (enc d s)))
+    ((send (enc (enc s b (privk a)) (pubk b)))))
+  (label 38)
+  (parent 37)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (s s) (d d))))
+  (origs (s (1 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol blanchet-fixed basic
+  (defrole init
+    (vars (a b name) (s skey) (d data))
+    (trace (send (enc (enc s b (privk a)) (pubk b))) (recv (enc d s))))
+  (defrole resp
+    (vars (a b name) (s skey) (d data))
+    (trace (recv (enc (enc s b (privk a)) (pubk b))) (send (enc d s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Fixed Blanchet's protocol using named asymmetric keys"))
+
+(defskeleton blanchet-fixed
+  (vars (d data) (s skey) (a b name))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (non-orig (privk a) (privk b))
+  (uniq-orig d s)
+  (comment "From the responders's perspective, is the secret leaked?")
+  (traces ((recv (enc (enc s b (privk a)) (pubk b))) (send (enc d s)))
+    ((recv d) (send d)))
+  (label 39)
+  (unrealized (0 0) (1 0))
+  (preskeleton)
+  (origs (d (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton blanchet-fixed
+  (vars (d data) (s skey) (a b name))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (precedes ((0 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig d s)
+  (traces ((recv (enc (enc s b (privk a)) (pubk b))) (send (enc d s)))
+    ((recv d) (send d)))
+  (label 40)
+  (parent 39)
+  (unrealized (0 0))
+  (origs (d (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton blanchet-fixed
+  (vars (d data) (s skey) (a b name))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (defstrand init 1 (s s) (a a) (b b))
+  (precedes ((0 1) (1 0)) ((2 0) (0 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig d s)
+  (operation encryption-test (added-strand init 1) (enc s b (privk a))
+    (0 0))
+  (traces ((recv (enc (enc s b (privk a)) (pubk b))) (send (enc d s)))
+    ((recv d) (send d)) ((send (enc (enc s b (privk a)) (pubk b)))))
+  (label 41)
+  (parent 40)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton blanchet-fixed
+  (vars (d data) (s skey) (a b name))
+  (defstrand resp 2 (d d) (s s) (a a) (b b))
+  (deflistener d)
+  (defstrand init 1 (s s) (a a) (b b))
   (deflistener s)
   (precedes ((0 1) (1 0)) ((2 0) (0 0)) ((2 0) (3 0)) ((3 1) (1 0)))
-  (non-orig (invk a) (invk b))
+  (non-orig (privk a) (privk b))
   (uniq-orig d s)
   (operation nonce-test (added-listener s) d (1 0) (enc d s))
-  (traces ((recv (enc (enc s b (invk a)) b)) (send (enc d s)))
-    ((recv d) (send d)) ((send (enc (enc s b (invk a)) b)))
+  (traces ((recv (enc (enc s b (privk a)) (pubk b))) (send (enc d s)))
+    ((recv d) (send d)) ((send (enc (enc s b (privk a)) (pubk b))))
     ((recv s) (send s)))
-  (label 28)
-  (parent 27)
+  (label 42)
+  (parent 41)
   (unrealized (3 0))
   (dead)
   (comment "empty cohort"))
diff --git a/tst/blanchet_doorsep.tst b/tst/blanchet_doorsep.tst
--- a/tst/blanchet_doorsep.tst
+++ b/tst/blanchet_doorsep.tst
@@ -1,5 +1,5 @@
-(comment "CPSA 3.6.5")
-(comment "All input read from blanchet_doorsep.scm")
+(comment "CPSA 4.3.0")
+(comment "All input read")
 
 (defprotocol blanchet basic
   (defrole init
@@ -10,6 +10,42 @@
     (vars (a b akey) (s skey) (d data))
     (trace (recv (enc (enc s (invk a)) b)) (send (enc d s)))
     (uniq_orig d))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
   (comment "Blanchet's protocol"))
 
 (defskeleton blanchet
@@ -68,7 +104,7 @@
     ((recv (enc (enc s (invk a)) b)) (send (enc d s))))
   (label 3)
   (parent 1)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (s s) (d d))))
   (origs (s (0 0))))
@@ -88,11 +124,47 @@
       (implies
         (and (p "person" z 1) (p "person" "p" z p) (p "person" "d" z d)
           (p "person" "k" z k) (fact trust p))
-        (and (non (invk d)) (uniq k))))))
+        (and (non (invk d)) (uniq k)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2))))))
 
 (defskeleton doorsep
-  (vars (t text) (k skey) (p d akey))
-  (defstrand door 3 (t t) (k k) (p p) (d d))
+  (vars (k skey) (t text) (p d akey))
+  (defstrand door 3 (k k) (t t) (p p) (d d))
   (non-orig (invk p))
   (uniq-orig t)
   (facts (trust p))
@@ -104,12 +176,12 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton doorsep
-  (vars (t text) (k skey) (p d d-0 akey))
-  (defstrand door 3 (t t) (k k) (p p) (d d))
+  (vars (k skey) (t text) (p d d-0 akey))
+  (defstrand door 3 (k k) (t t) (p p) (d d))
   (defstrand person 1 (k k) (p p) (d d-0))
   (precedes ((1 0) (0 0)))
   (non-orig (invk p) (invk d-0))
-  (uniq-orig t k)
+  (uniq-orig k t)
   (facts (trust p))
   (rule trust)
   (operation encryption-test (added-strand person 1) (enc k (invk p))
@@ -122,12 +194,12 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton doorsep
-  (vars (t text) (k skey) (p d akey))
-  (defstrand door 3 (t t) (k k) (p p) (d d))
+  (vars (k skey) (t text) (p d akey))
+  (defstrand door 3 (k k) (t t) (p p) (d d))
   (defstrand person 1 (k k) (p p) (d d))
   (precedes ((1 0) (0 0)))
   (non-orig (invk p) (invk d))
-  (uniq-orig t k)
+  (uniq-orig k t)
   (facts (trust p))
   (operation encryption-test (contracted (d-0 d)) (enc k (invk p)) (0 0)
     (enc (enc k (invk p)) d))
@@ -139,31 +211,31 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton doorsep
-  (vars (t text) (k skey) (p d akey))
-  (defstrand door 3 (t t) (k k) (p p) (d d))
-  (defstrand person 3 (t t) (k k) (p p) (d d))
+  (vars (k skey) (t text) (p d akey))
+  (defstrand door 3 (k k) (t t) (p p) (d d))
+  (defstrand person 3 (k k) (t t) (p p) (d d))
   (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
   (non-orig (invk p) (invk d))
-  (uniq-orig t k)
+  (uniq-orig k t)
   (facts (trust p))
   (operation nonce-test (displaced 1 2 person 3) t (0 2) (enc t k))
   (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))
     ((send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t)))
   (label 7)
   (parent 6)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((p p) (t t) (d d) (k k))))
   (origs (k (1 0)) (t (0 1))))
 
 (defskeleton doorsep
-  (vars (t text) (k skey) (p d akey))
-  (defstrand door 3 (t t) (k k) (p p) (d d))
+  (vars (k skey) (t text) (p d akey))
+  (defstrand door 3 (k k) (t t) (p p) (d d))
   (defstrand person 1 (k k) (p p) (d d))
   (deflistener k)
   (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 2)))
   (non-orig (invk p) (invk d))
-  (uniq-orig t k)
+  (uniq-orig k t)
   (facts (trust p))
   (operation nonce-test (added-listener k) t (0 2) (enc t k))
   (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))
@@ -189,11 +261,47 @@
       (implies
         (and (p "person" z 1) (p "person" "p" z p) (p "person" "d" z d)
           (p "person" "k" z k) (fact trust p))
-        (and (non (invk d)) (uniq k))))))
+        (and (non (invk d)) (uniq k)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2))))))
 
 (defskeleton doorsep
-  (vars (t text) (k skey) (p d akey))
-  (defstrand door 3 (t t) (k k) (p p) (d d))
+  (vars (k skey) (t text) (p d akey))
+  (defstrand door 3 (k k) (t t) (p p) (d d))
   (non-orig (invk p))
   (uniq-orig t)
   (comment "Analyze from the door's perspective when we don't trust p")
@@ -204,19 +312,19 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton doorsep
-  (vars (t text) (k skey) (p d d-0 akey))
-  (defstrand door 3 (t t) (k k) (p p) (d d))
+  (vars (k skey) (t text) (p d d-0 akey))
+  (defstrand door 3 (k k) (t t) (p p) (d d))
   (defstrand person 1 (k k) (p p) (d d-0))
   (precedes ((1 0) (0 0)))
   (non-orig (invk p))
-  (uniq-orig t k)
+  (uniq-orig k t)
   (operation encryption-test (added-strand person 1) (enc k (invk p))
     (0 0))
   (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))
     ((send (enc (enc k (invk p)) d-0))))
   (label 10)
   (parent 9)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((p p) (t t) (d d) (k k))))
   (origs (k (1 0)) (t (0 1))))
diff --git a/tst/bltk_or.scm b/tst/bltk_or.scm
deleted file mode 100644
--- a/tst/bltk_or.scm
+++ /dev/null
@@ -1,28 +0,0 @@
-(herald "Otway-Rees Protocol"
-	(comment "Standard version using variables of sort mesg")
-	(algebra diffie-hellman))
-
-(defprotocol or diffie-hellman
-  (defrole init (vars (a b s name) (na text) (k skey) (m text))
-    (trace
-     (send (cat m a b (enc na m a b (bltk a s))))
-     (recv (cat m (enc na k (bltk a s))))))
-  (defrole resp
-    (vars (a b s name) (nb text) (k skey) (m text) (x y mesg))
-    (trace
-     (recv (cat m a b x))
-     (send (cat m a b x (enc nb m a b (bltk b s))))
-     (recv (cat m y (enc nb k (bltk b s))))
-     (send y)))
-  (defrole serv (vars (a b s name) (na nb text) (k skey) (m text))
-    (trace
-     (recv (cat m a b (enc na m a b (bltk a s))
-		(enc nb m a b (bltk b s))))
-     (send (cat m (enc na k (bltk a s)) (enc nb k (bltk b s)))))
-    (uniq-orig k)))
-
-(defskeleton or
-  (vars (nb text) (s a b name))
-  (defstrand resp 4 (a a) (b b) (s s) (nb nb))
-  (non-orig (bltk a s) (bltk b s))
-  (uniq-orig nb))
diff --git a/tst/bltk_or.tst b/tst/bltk_or.tst
deleted file mode 100644
--- a/tst/bltk_or.tst
+++ /dev/null
@@ -1,400 +0,0 @@
-(herald "Otway-Rees Protocol"
-  (comment "Standard version using variables of sort mesg")
-  (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/bltk_or.scm")
-
-(defprotocol or diffie-hellman
-  (defrole init
-    (vars (a b s name) (na text) (k skey) (m text))
-    (trace (send (cat m a b (enc na m a b (bltk a s))))
-      (recv (cat m (enc na k (bltk a s))))))
-  (defrole resp
-    (vars (a b s name) (nb text) (k skey) (m text) (x y mesg))
-    (trace (recv (cat m a b x))
-      (send (cat m a b x (enc nb m a b (bltk b s))))
-      (recv (cat m y (enc nb k (bltk b s)))) (send y)))
-  (defrole serv
-    (vars (a b s name) (na nb text) (k skey) (m text))
-    (trace
-      (recv
-        (cat m a b (enc na m a b (bltk a s)) (enc nb m a b (bltk b s))))
-      (send (cat m (enc na k (bltk a s)) (enc nb k (bltk b s)))))
-    (uniq-orig k)))
-
-(defskeleton or
-  (vars (x y mesg) (nb m text) (s a b name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (non-orig (bltk s a) (bltk s b))
-  (uniq-orig nb)
-  (traces
-    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk s b))))
-      (recv (cat m y (enc nb k (bltk s b)))) (send y)))
-  (label 0)
-  (unrealized (0 2))
-  (origs (nb (0 1)))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton or
-  (vars (x y mesg) (nb m na m-0 text) (s a b a-0 name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m-0) (a a-0) (b s) (s b) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (bltk s a) (bltk s b))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand serv 2) (enc nb k (bltk s b))
-    (0 2))
-  (traces
-    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk s b))))
-      (recv (cat m y (enc nb k (bltk s b)))) (send y))
-    ((recv
-       (cat m-0 a-0 s (enc na m-0 a-0 s (bltk b a-0))
-         (enc nb m-0 a-0 s (bltk s b))))
-      (send (cat m-0 (enc na k (bltk b a-0)) (enc nb k (bltk s b))))))
-  (label 1)
-  (parent 0)
-  (unrealized (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton or
-  (vars (x y mesg) (nb m na m-0 text) (s a b a-0 name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m-0) (a a-0) (b b) (s s) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (bltk s a) (bltk s b))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand serv 2) (enc nb k (bltk s b))
-    (0 2))
-  (traces
-    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk s b))))
-      (recv (cat m y (enc nb k (bltk s b)))) (send y))
-    ((recv
-       (cat m-0 a-0 b (enc na m-0 a-0 b (bltk s a-0))
-         (enc nb m-0 a-0 b (bltk s b))))
-      (send (cat m-0 (enc na k (bltk s a-0)) (enc nb k (bltk s b))))))
-  (label 2)
-  (parent 0)
-  (unrealized (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton or
-  (vars (x y mesg) (nb m nb-0 m-0 text) (s a b b-0 name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb-0) (m m-0) (a s) (b b-0) (s b) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (bltk s a) (bltk s b))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand serv 2) (enc nb k (bltk s b))
-    (0 2))
-  (traces
-    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk s b))))
-      (recv (cat m y (enc nb k (bltk s b)))) (send y))
-    ((recv
-       (cat m-0 s b-0 (enc nb m-0 s b-0 (bltk s b))
-         (enc nb-0 m-0 s b-0 (bltk b b-0))))
-      (send (cat m-0 (enc nb k (bltk s b)) (enc nb-0 k (bltk b b-0))))))
-  (label 3)
-  (parent 0)
-  (unrealized (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton or
-  (vars (x y mesg) (nb m nb-0 m-0 text) (s a b b-0 name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb-0) (m m-0) (a b) (b b-0) (s s) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (bltk s a) (bltk s b))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand serv 2) (enc nb k (bltk s b))
-    (0 2))
-  (traces
-    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk s b))))
-      (recv (cat m y (enc nb k (bltk s b)))) (send y))
-    ((recv
-       (cat m-0 b b-0 (enc nb m-0 b b-0 (bltk s b))
-         (enc nb-0 m-0 b b-0 (bltk s b-0))))
-      (send (cat m-0 (enc nb k (bltk s b)) (enc nb-0 k (bltk s b-0))))))
-  (label 4)
-  (parent 0)
-  (unrealized (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton or
-  (vars (x y mesg) (nb m na text) (a b name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s b) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s b) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (bltk a b) (bltk b b))
-  (uniq-orig nb k)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc nb m-0 a-0 s (bltk s b)) (1 0))
-  (traces
-    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk b b))))
-      (recv (cat m y (enc nb k (bltk b b)))) (send y))
-    ((recv
-       (cat m a b (enc na m a b (bltk a b)) (enc nb m a b (bltk b b))))
-      (send (cat m (enc na k (bltk a b)) (enc nb k (bltk b b))))))
-  (label 5)
-  (parent 1)
-  (unrealized (1 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton or
-  (vars (x y mesg) (nb m na text) (s a b name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (bltk s a) (bltk s b))
-  (uniq-orig nb k)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc nb m-0 a-0 b (bltk s b)) (1 0))
-  (traces
-    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk s b))))
-      (recv (cat m y (enc nb k (bltk s b)))) (send y))
-    ((recv
-       (cat m a b (enc na m a b (bltk s a)) (enc nb m a b (bltk s b))))
-      (send (cat m (enc na k (bltk s a)) (enc nb k (bltk s b))))))
-  (label 6)
-  (parent 2)
-  (seen 10)
-  (unrealized (1 0))
-  (comment "4 in cohort - 3 not yet seen"))
-
-(defskeleton or
-  (vars (x y mesg) (nb m nb-0 text) (a b name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s a) (k k))
-  (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b b) (s b) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (bltk a a) (bltk a b))
-  (uniq-orig nb k)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc nb m-0 s b (bltk s b)) (1 0))
-  (traces
-    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk a b))))
-      (recv (cat m y (enc nb k (bltk a b)))) (send y))
-    ((recv
-       (cat m a b (enc nb m a b (bltk a b))
-         (enc nb-0 m a b (bltk b b))))
-      (send (cat m (enc nb k (bltk a b)) (enc nb-0 k (bltk b b))))))
-  (label 7)
-  (parent 3)
-  (unrealized)
-  (shape)
-  (maps ((0) ((nb nb) (s a) (a a) (b b) (k k) (m m) (x x) (y y))))
-  (origs (k (1 1)) (nb (0 1))))
-
-(defskeleton or
-  (vars (x y mesg) (nb m nb-0 text) (s a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (bltk s a))
-  (uniq-orig nb k)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc nb m-0 b b (bltk s b)) (1 0))
-  (traces
-    ((recv (cat m a a x)) (send (cat m a a x (enc nb m a a (bltk s a))))
-      (recv (cat m y (enc nb k (bltk s a)))) (send y))
-    ((recv
-       (cat m a a (enc nb m a a (bltk s a))
-         (enc nb-0 m a a (bltk s a))))
-      (send (cat m (enc nb k (bltk s a)) (enc nb-0 k (bltk s a))))))
-  (label 8)
-  (parent 4)
-  (seen 13)
-  (unrealized (1 0))
-  (comment "3 in cohort - 2 not yet seen"))
-
-(defskeleton or
-  (vars (x y mesg) (nb m na text) (a b name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s b) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s b) (k k))
-  (defstrand init 1 (na na) (m m) (a a) (b b) (s b))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))
-  (non-orig (bltk a b) (bltk b b))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand init 1)
-    (enc na m a b (bltk a b)) (1 0))
-  (traces
-    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk b b))))
-      (recv (cat m y (enc nb k (bltk b b)))) (send y))
-    ((recv
-       (cat m a b (enc na m a b (bltk a b)) (enc nb m a b (bltk b b))))
-      (send (cat m (enc na k (bltk a b)) (enc nb k (bltk b b)))))
-    ((send (cat m a b (enc na m a b (bltk a b))))))
-  (label 9)
-  (parent 5)
-  (seen 12)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton or
-  (vars (x y x-0 mesg) (nb m na text) (a b name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s b) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s b) (k k))
-  (defstrand resp 2 (x x-0) (nb na) (m m) (a a) (b b) (s a))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))
-  (non-orig (bltk a b) (bltk b b))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand resp 2)
-    (enc na m a b (bltk a b)) (1 0))
-  (traces
-    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk b b))))
-      (recv (cat m y (enc nb k (bltk b b)))) (send y))
-    ((recv
-       (cat m a b (enc na m a b (bltk a b)) (enc nb m a b (bltk b b))))
-      (send (cat m (enc na k (bltk a b)) (enc nb k (bltk b b)))))
-    ((recv (cat m a b x-0))
-      (send (cat m a b x-0 (enc na m a b (bltk a b))))))
-  (label 10)
-  (parent 5)
-  (unrealized)
-  (shape)
-  (maps ((0) ((nb nb) (s b) (a a) (b b) (k k) (m m) (x x) (y y))))
-  (origs (k (1 1)) (nb (0 1))))
-
-(defskeleton or
-  (vars (x y mesg) (nb m text) (a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s a) (k k))
-  (defstrand serv 2 (na nb) (nb nb) (m m) (a a) (b a) (s a) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (bltk a a))
-  (uniq-orig nb k)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc na m a a (bltk a a)) (1 0))
-  (traces
-    ((recv (cat m a a x)) (send (cat m a a x (enc nb m a a (bltk a a))))
-      (recv (cat m y (enc nb k (bltk a a)))) (send y))
-    ((recv
-       (cat m a a (enc nb m a a (bltk a a)) (enc nb m a a (bltk a a))))
-      (send (cat m (enc nb k (bltk a a)) (enc nb k (bltk a a))))))
-  (label 11)
-  (parent 5)
-  (seen 13)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton or
-  (vars (x y mesg) (nb m na text) (s a b name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand init 1 (na na) (m m) (a a) (b b) (s s))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))
-  (non-orig (bltk s a) (bltk s b))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand init 1)
-    (enc na m a b (bltk s a)) (1 0))
-  (traces
-    ((recv (cat m a b x)) (send (cat m a b x (enc nb m a b (bltk s b))))
-      (recv (cat m y (enc nb k (bltk s b)))) (send y))
-    ((recv
-       (cat m a b (enc na m a b (bltk s a)) (enc nb m a b (bltk s b))))
-      (send (cat m (enc na k (bltk s a)) (enc nb k (bltk s b)))))
-    ((send (cat m a b (enc na m a b (bltk s a))))))
-  (label 12)
-  (parent 6)
-  (unrealized)
-  (shape)
-  (maps ((0) ((nb nb) (s s) (a a) (b b) (k k) (m m) (x x) (y y))))
-  (origs (k (1 1)) (nb (0 1))))
-
-(defskeleton or
-  (vars (x y mesg) (nb m text) (s a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (bltk s a))
-  (uniq-orig nb k)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc na m a a (bltk s a)) (1 0))
-  (traces
-    ((recv (cat m a a x)) (send (cat m a a x (enc nb m a a (bltk s a))))
-      (recv (cat m y (enc nb k (bltk s a)))) (send y))
-    ((recv
-       (cat m a a (enc nb m a a (bltk s a)) (enc nb m a a (bltk s a))))
-      (send (cat m (enc nb k (bltk s a)) (enc nb k (bltk s a))))))
-  (label 13)
-  (parent 6)
-  (unrealized)
-  (shape)
-  (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))
-  (origs (k (1 1)) (nb (0 1))))
-
-(defskeleton or
-  (vars (x y x-0 mesg) (nb m na text) (s a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand resp 2 (x x-0) (nb na) (m m) (a a) (b a) (s s))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))
-  (non-orig (bltk s a))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand resp 2)
-    (enc na m a a (bltk s a)) (1 0))
-  (traces
-    ((recv (cat m a a x)) (send (cat m a a x (enc nb m a a (bltk s a))))
-      (recv (cat m y (enc nb k (bltk s a)))) (send y))
-    ((recv
-       (cat m a a (enc na m a a (bltk s a)) (enc nb m a a (bltk s a))))
-      (send (cat m (enc na k (bltk s a)) (enc nb k (bltk s a)))))
-    ((recv (cat m a a x-0))
-      (send (cat m a a x-0 (enc na m a a (bltk s a))))))
-  (label 14)
-  (parent 6)
-  (unrealized)
-  (shape)
-  (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))
-  (origs (k (1 1)) (nb (0 1))))
-
-(defskeleton or
-  (vars (x y mesg) (nb m nb-0 text) (s a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))
-  (defstrand init 1 (na nb-0) (m m) (a a) (b a) (s s))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))
-  (non-orig (bltk s a))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand init 1)
-    (enc nb-0 m a a (bltk s a)) (1 0))
-  (traces
-    ((recv (cat m a a x)) (send (cat m a a x (enc nb m a a (bltk s a))))
-      (recv (cat m y (enc nb k (bltk s a)))) (send y))
-    ((recv
-       (cat m a a (enc nb m a a (bltk s a))
-         (enc nb-0 m a a (bltk s a))))
-      (send (cat m (enc nb k (bltk s a)) (enc nb-0 k (bltk s a)))))
-    ((send (cat m a a (enc nb-0 m a a (bltk s a))))))
-  (label 15)
-  (parent 8)
-  (unrealized)
-  (shape)
-  (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))
-  (origs (k (1 1)) (nb (0 1))))
-
-(defskeleton or
-  (vars (x y x-0 mesg) (nb m nb-0 text) (s a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))
-  (defstrand resp 2 (x x-0) (nb nb-0) (m m) (a a) (b a) (s s))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))
-  (non-orig (bltk s a))
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand resp 2)
-    (enc nb-0 m a a (bltk s a)) (1 0))
-  (traces
-    ((recv (cat m a a x)) (send (cat m a a x (enc nb m a a (bltk s a))))
-      (recv (cat m y (enc nb k (bltk s a)))) (send y))
-    ((recv
-       (cat m a a (enc nb m a a (bltk s a))
-         (enc nb-0 m a a (bltk s a))))
-      (send (cat m (enc nb k (bltk s a)) (enc nb-0 k (bltk s a)))))
-    ((recv (cat m a a x-0))
-      (send (cat m a a x-0 (enc nb-0 m a a (bltk s a))))))
-  (label 16)
-  (parent 8)
-  (unrealized)
-  (shape)
-  (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))
-  (origs (k (1 1)) (nb (0 1))))
-
-(comment "Nothing left to do")
diff --git a/tst/bltk_test.scm b/tst/bltk_test.scm
deleted file mode 100644
--- a/tst/bltk_test.scm
+++ /dev/null
@@ -1,73 +0,0 @@
-(herald "bltk Test File"
-	(algebra diffie-hellman)
-;;	(limit 1)
-   (bound 12))
-
-(defprotocol test diffie-hellman
-  (defrole r
-    (vars (a b name) (n text))
-    (trace
-     (send (enc n (bltk a b)))
-     (recv (enc n (bltk b a))))
-    (uniq-orig n)))
-
-;; This POV is realized. That demonstrates that (bltk a b) = (bltk b a)
-(defskeleton test
-   (vars (a b name))
-   (defstrand r 2 (a a) (b b))
-   (non-orig (bltk a b) (bltk b a)))
-
-;; These next two skeletons show that it is sufficient to declare
-;; either (bltk a b) or (bltk b a) to be non.
-(defskeleton test
-   (vars (a b name) (n text))
-   (defstrand r 2 (a a) (b b) (n n))
-   (deflistener n)
-   (non-orig (bltk a b)))
-
-(defskeleton test
-   (vars (a b name) (n text))
-   (defstrand r 2 (a a) (b b) (n n))
-   (deflistener n)
-   (non-orig (bltk b a)))
-
-;; This is the same protocol as above with bltk replaced with ltk
-(defprotocol test2 diffie-hellman
-  (defrole r
-    (vars (a b name) (n text))
-    (trace
-     (send (enc n (ltk a b)))
-     (recv (enc n (ltk b a))))
-    (uniq-orig n)))
-
-;; The only way to realize this skeleton is to learn that a = b. This
-;; is in contrast to the first skeleton above.
-(defskeleton test2
-   (vars (a b name))
-   (defstrand r 2 (a a) (b b))
-   (non-orig (ltk a b)))
-
-;; This protocol demonstrates that the position of the names a and b
-;; in (bltk a b) are not enough to determine which principal is
-;; inhabiting the role. The first send of each role commits to the
-;; identity of itself and its peer.
-(defprotocol test3 diffie-hellman
-  (defrole recvr
-    (vars (a b name) (n text))
-    (trace
-     (send (cat "i am" a "you are" b))
-     (recv (enc n (bltk a b)))))
-  (defrole sender
-    (vars (a b name) (n text))
-    (trace
-     (send (cat "i am" b "you are" a))
-     (send (enc n (bltk a b))))
-    (uniq-orig n)))
-
-;; Since (bltk a b) = (bltk b a) the recvr role may receive the
-;; encryption from its inteded peer or from itself. That is, both a
-;; and b use the same key when inhabiting the sender role.
-(defskeleton test3
-  (vars (a b name))
-  (defstrand recvr 2 (a a) (b b))
-  (non-orig (bltk a b)))
diff --git a/tst/bltk_test.tst b/tst/bltk_test.tst
deleted file mode 100644
--- a/tst/bltk_test.tst
+++ /dev/null
@@ -1,190 +0,0 @@
-(herald "bltk Test File" (algebra diffie-hellman) (bound 12))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/bltk_test.scm")
-
-(defprotocol test diffie-hellman
-  (defrole r
-    (vars (a b name) (n text))
-    (trace (send (enc n (bltk a b))) (recv (enc n (bltk a b))))
-    (uniq-orig n)))
-
-(defskeleton test
-  (vars (n text) (a b name))
-  (defstrand r 2 (n n) (a a) (b b))
-  (non-orig (bltk a b))
-  (uniq-orig n)
-  (traces ((send (enc n (bltk a b))) (recv (enc n (bltk a b)))))
-  (label 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (n n))) ((0) ((a b) (b a) (n n))))
-  (origs (n (0 0))))
-
-(comment "Nothing left to do")
-
-(defprotocol test diffie-hellman
-  (defrole r
-    (vars (a b name) (n text))
-    (trace (send (enc n (bltk a b))) (recv (enc n (bltk a b))))
-    (uniq-orig n)))
-
-(defskeleton test
-  (vars (n text) (a b name))
-  (defstrand r 2 (n n) (a a) (b b))
-  (deflistener n)
-  (non-orig (bltk a b))
-  (uniq-orig n)
-  (traces ((send (enc n (bltk a b))) (recv (enc n (bltk a b))))
-    ((recv n) (send n)))
-  (label 1)
-  (unrealized (1 0))
-  (preskeleton)
-  (origs (n (0 0)))
-  (comment "Not a skeleton"))
-
-(defskeleton test
-  (vars (n text) (a b name))
-  (defstrand r 2 (n n) (a a) (b b))
-  (deflistener n)
-  (precedes ((0 0) (1 0)))
-  (non-orig (bltk a b))
-  (uniq-orig n)
-  (traces ((send (enc n (bltk a b))) (recv (enc n (bltk a b))))
-    ((recv n) (send n)))
-  (label 2)
-  (parent 1)
-  (unrealized (1 0))
-  (dead)
-  (origs (n (0 0)))
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol test diffie-hellman
-  (defrole r
-    (vars (a b name) (n text))
-    (trace (send (enc n (bltk a b))) (recv (enc n (bltk a b))))
-    (uniq-orig n)))
-
-(defskeleton test
-  (vars (n text) (a b name))
-  (defstrand r 2 (n n) (a a) (b b))
-  (deflistener n)
-  (non-orig (bltk a b))
-  (uniq-orig n)
-  (traces ((send (enc n (bltk a b))) (recv (enc n (bltk a b))))
-    ((recv n) (send n)))
-  (label 3)
-  (unrealized (1 0))
-  (preskeleton)
-  (origs (n (0 0)))
-  (comment "Not a skeleton"))
-
-(defskeleton test
-  (vars (n text) (a b name))
-  (defstrand r 2 (n n) (a a) (b b))
-  (deflistener n)
-  (precedes ((0 0) (1 0)))
-  (non-orig (bltk a b))
-  (uniq-orig n)
-  (traces ((send (enc n (bltk a b))) (recv (enc n (bltk a b))))
-    ((recv n) (send n)))
-  (label 4)
-  (parent 3)
-  (unrealized (1 0))
-  (dead)
-  (origs (n (0 0)))
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol test2 diffie-hellman
-  (defrole r
-    (vars (a b name) (n text))
-    (trace (send (enc n (ltk a b))) (recv (enc n (ltk b a))))
-    (uniq-orig n)))
-
-(defskeleton test2
-  (vars (n text) (a b name))
-  (defstrand r 2 (n n) (a a) (b b))
-  (non-orig (ltk a b))
-  (uniq-orig n)
-  (traces ((send (enc n (ltk a b))) (recv (enc n (ltk b a)))))
-  (label 5)
-  (unrealized (0 1))
-  (origs (n (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton test2
-  (vars (n text) (a name))
-  (defstrand r 2 (n n) (a a) (b a))
-  (non-orig (ltk a a))
-  (uniq-orig n)
-  (operation nonce-test (contracted (b a)) n (0 1) (enc n (ltk a a)))
-  (traces ((send (enc n (ltk a a))) (recv (enc n (ltk a a)))))
-  (label 6)
-  (parent 5)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b a) (n n))))
-  (origs (n (0 0))))
-
-(comment "Nothing left to do")
-
-(defprotocol test3 diffie-hellman
-  (defrole recvr
-    (vars (a b name) (n text))
-    (trace (send (cat "i am" a "you are" b)) (recv (enc n (bltk a b)))))
-  (defrole sender
-    (vars (a b name) (n text))
-    (trace (send (cat "i am" b "you are" a)) (send (enc n (bltk a b))))
-    (uniq-orig n)))
-
-(defskeleton test3
-  (vars (n text) (a b name))
-  (defstrand recvr 2 (n n) (a a) (b b))
-  (non-orig (bltk a b))
-  (traces ((send (cat "i am" a "you are" b)) (recv (enc n (bltk a b)))))
-  (label 7)
-  (unrealized (0 1))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton test3
-  (vars (n text) (a b name))
-  (defstrand recvr 2 (n n) (a a) (b b))
-  (defstrand sender 2 (n n) (a b) (b a))
-  (precedes ((1 1) (0 1)))
-  (non-orig (bltk a b))
-  (uniq-orig n)
-  (operation encryption-test (added-strand sender 2) (enc n (bltk a b))
-    (0 1))
-  (traces ((send (cat "i am" a "you are" b)) (recv (enc n (bltk a b))))
-    ((send (cat "i am" a "you are" b)) (send (enc n (bltk a b)))))
-  (label 8)
-  (parent 7)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (n n))))
-  (origs (n (1 1))))
-
-(defskeleton test3
-  (vars (n text) (a b name))
-  (defstrand recvr 2 (n n) (a a) (b b))
-  (defstrand sender 2 (n n) (a a) (b b))
-  (precedes ((1 1) (0 1)))
-  (non-orig (bltk a b))
-  (uniq-orig n)
-  (operation encryption-test (added-strand sender 2) (enc n (bltk a b))
-    (0 1))
-  (traces ((send (cat "i am" a "you are" b)) (recv (enc n (bltk a b))))
-    ((send (cat "i am" b "you are" a)) (send (enc n (bltk a b)))))
-  (label 9)
-  (parent 7)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (n n))))
-  (origs (n (1 1))))
-
-(comment "Nothing left to do")
diff --git a/tst/bug_example.scm b/tst/bug_example.scm
new file mode 100644
--- /dev/null
+++ b/tst/bug_example.scm
@@ -0,0 +1,43 @@
+(herald bug_example (bound 20))
+
+(defprotocol bug_example basic
+  (defrole init (vars (x y akey))
+    (trace
+     (send (enc y (hash x (invk y)))))
+    (non-orig (invk y) (invk x)))
+  (defrole resp (vars (x y akey))
+    (trace
+     (recv (enc y (hash (invk x) y))))
+    (non-orig (invk x) (invk y)))
+  (defrole flip (vars (k k1 k2 akey))
+    (trace
+     (recv (enc k (hash k1 k2)))
+     (send (enc k (hash (invk k1) (invk k2)))))))
+
+(defskeleton bug_example
+  (vars (x y akey))
+  (defstrand resp 1 (x x) (y y)))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defprotocol bug_example basic
+  (defrole init (vars (x y akey))
+    (trace
+     (send (enc y (hash x (invk y)))))
+    (non-orig (invk y) (invk x)))
+  (defrole resp (vars (x y akey))
+    (trace
+     (recv (enc y (hash (invk x) y))))
+    (non-orig (invk x) (invk y)))
+  (defrole flip1 (vars (k k1 k2 akey))
+    (trace
+     (recv (enc k (hash (invk k1) k2)))
+     (send (enc k (hash k1 (invk k2))))))
+  (defrole flip2 (vars (k k1 k2 akey))
+    (trace
+     (recv (enc k (hash k1 (invk k2))))
+     (send (enc k (hash (invk k1) k2))))))
+
+(defskeleton bug_example
+  (vars (x y akey))
+  (defstrand resp 1 (x x) (y y)))
diff --git a/tst/bug_example.tst b/tst/bug_example.tst
new file mode 100644
--- /dev/null
+++ b/tst/bug_example.tst
@@ -0,0 +1,340 @@
+(herald bug_example (bound 20))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/bug_example.scm")
+(comment "Strand count bounded at 20")
+
+(defprotocol bug_example basic
+  (defrole init
+    (vars (x y akey))
+    (trace (send (enc y (hash x (invk y)))))
+    (non-orig (invk x) (invk y)))
+  (defrole resp
+    (vars (x y akey))
+    (trace (recv (enc y (hash (invk x) y))))
+    (non-orig (invk x) (invk y)))
+  (defrole flip
+    (vars (k k1 k2 akey))
+    (trace (recv (enc k (hash k1 k2)))
+      (send (enc k (hash (invk k1) (invk k2))))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton bug_example
+  (vars (x y akey))
+  (defstrand resp 1 (x x) (y y))
+  (non-orig (invk x) (invk y))
+  (traces ((recv (enc y (hash (invk x) y)))))
+  (label 0)
+  (unrealized (0 0))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton bug_example
+  (vars (x k2 akey))
+  (defstrand resp 1 (x x) (y (invk k2)))
+  (defstrand flip 2 (k (invk k2)) (k1 x) (k2 k2))
+  (precedes ((1 1) (0 0)))
+  (non-orig k2 (invk x))
+  (operation encryption-test (added-strand flip 2)
+    (enc (invk k2) (hash (invk x) (invk k2))) (0 0))
+  (traces ((recv (enc (invk k2) (hash (invk x) (invk k2)))))
+    ((recv (enc (invk k2) (hash x k2)))
+      (send (enc (invk k2) (hash (invk x) (invk k2))))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton bug_example
+  (vars (x y akey))
+  (defstrand resp 1 (x x) (y y))
+  (deflistener (hash (invk x) y))
+  (precedes ((1 1) (0 0)))
+  (non-orig (invk x) (invk y))
+  (operation encryption-test (added-listener (hash (invk x) y))
+    (enc y (hash (invk x) y)) (0 0))
+  (traces ((recv (enc y (hash (invk x) y))))
+    ((recv (hash (invk x) y)) (send (hash (invk x) y))))
+  (label 2)
+  (parent 0)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton bug_example
+  (vars (x k2 akey))
+  (defstrand resp 1 (x x) (y (invk k2)))
+  (defstrand flip 2 (k (invk k2)) (k1 x) (k2 k2))
+  (defstrand init 1 (x x) (y (invk k2)))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)))
+  (non-orig k2 (invk x))
+  (operation encryption-test (added-strand init 1)
+    (enc (invk k2) (hash x k2)) (1 0))
+  (traces ((recv (enc (invk k2) (hash (invk x) (invk k2)))))
+    ((recv (enc (invk k2) (hash x k2)))
+      (send (enc (invk k2) (hash (invk x) (invk k2)))))
+    ((send (enc (invk k2) (hash x k2)))))
+  (label 3)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((x x) (y (invk k2)))))
+  (origs))
+
+(defskeleton bug_example
+  (vars (k1 k2 akey))
+  (defstrand resp 1 (x (invk k1)) (y k2))
+  (defstrand flip 2 (k k2) (k1 (invk k1)) (k2 (invk k2)))
+  (defstrand flip 2 (k k2) (k1 k1) (k2 k2))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)))
+  (non-orig k1 (invk k2))
+  (operation encryption-test (added-strand flip 2)
+    (enc k2 (hash (invk k1) (invk k2))) (1 0))
+  (traces ((recv (enc k2 (hash k1 k2))))
+    ((recv (enc k2 (hash (invk k1) (invk k2))))
+      (send (enc k2 (hash k1 k2))))
+    ((recv (enc k2 (hash k1 k2)))
+      (send (enc k2 (hash (invk k1) (invk k2))))))
+  (label 4)
+  (parent 1)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton bug_example
+  (vars (x k2 akey))
+  (defstrand resp 1 (x x) (y (invk k2)))
+  (defstrand flip 2 (k (invk k2)) (k1 x) (k2 k2))
+  (deflistener (hash x k2))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)))
+  (non-orig k2 (invk x))
+  (operation encryption-test (added-listener (hash x k2))
+    (enc (invk k2) (hash x k2)) (1 0))
+  (traces ((recv (enc (invk k2) (hash (invk x) (invk k2)))))
+    ((recv (enc (invk k2) (hash x k2)))
+      (send (enc (invk k2) (hash (invk x) (invk k2)))))
+    ((recv (hash x k2)) (send (hash x k2))))
+  (label 5)
+  (parent 1)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton bug_example
+  (vars (k1 k2 akey))
+  (defstrand resp 1 (x k1) (y (invk k2)))
+  (defstrand flip 2 (k (invk k2)) (k1 k1) (k2 k2))
+  (defstrand flip 2 (k (invk k2)) (k1 (invk k1)) (k2 (invk k2)))
+  (defstrand flip 2 (k (invk k2)) (k1 k1) (k2 k2))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)))
+  (non-orig k2 (invk k1))
+  (operation encryption-test (added-strand flip 2)
+    (enc (invk k2) (hash (invk k1) (invk k2))) (2 0))
+  (traces ((recv (enc (invk k2) (hash (invk k1) (invk k2)))))
+    ((recv (enc (invk k2) (hash k1 k2)))
+      (send (enc (invk k2) (hash (invk k1) (invk k2)))))
+    ((recv (enc (invk k2) (hash (invk k1) (invk k2))))
+      (send (enc (invk k2) (hash k1 k2))))
+    ((recv (enc (invk k2) (hash k1 k2)))
+      (send (enc (invk k2) (hash (invk k1) (invk k2))))))
+  (label 6)
+  (parent 4)
+  (seen 4)
+  (unrealized (3 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton bug_example
+  (vars (k1 k2 akey))
+  (defstrand resp 1 (x (invk k1)) (y k2))
+  (defstrand flip 2 (k k2) (k1 (invk k1)) (k2 (invk k2)))
+  (defstrand flip 2 (k k2) (k1 k1) (k2 k2))
+  (deflistener (hash k1 k2))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)))
+  (non-orig k1 (invk k2))
+  (operation encryption-test (added-listener (hash k1 k2))
+    (enc k2 (hash k1 k2)) (2 0))
+  (traces ((recv (enc k2 (hash k1 k2))))
+    ((recv (enc k2 (hash (invk k1) (invk k2))))
+      (send (enc k2 (hash k1 k2))))
+    ((recv (enc k2 (hash k1 k2)))
+      (send (enc k2 (hash (invk k1) (invk k2)))))
+    ((recv (hash k1 k2)) (send (hash k1 k2))))
+  (label 7)
+  (parent 4)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol bug_example basic
+  (defrole init
+    (vars (x y akey))
+    (trace (send (enc y (hash x (invk y)))))
+    (non-orig (invk x) (invk y)))
+  (defrole resp
+    (vars (x y akey))
+    (trace (recv (enc y (hash (invk x) y))))
+    (non-orig (invk x) (invk y)))
+  (defrole flip1
+    (vars (k k1 k2 akey))
+    (trace (recv (enc k (hash (invk k1) k2)))
+      (send (enc k (hash k1 (invk k2))))))
+  (defrole flip2
+    (vars (k k1 k2 akey))
+    (trace (recv (enc k (hash k1 (invk k2))))
+      (send (enc k (hash (invk k1) k2)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton bug_example
+  (vars (x y akey))
+  (defstrand resp 1 (x x) (y y))
+  (non-orig (invk x) (invk y))
+  (traces ((recv (enc y (hash (invk x) y)))))
+  (label 8)
+  (unrealized (0 0))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton bug_example
+  (vars (x y akey))
+  (defstrand resp 1 (x x) (y y))
+  (defstrand flip2 2 (k y) (k1 x) (k2 y))
+  (precedes ((1 1) (0 0)))
+  (non-orig (invk x) (invk y))
+  (operation encryption-test (added-strand flip2 2)
+    (enc y (hash (invk x) y)) (0 0))
+  (traces ((recv (enc y (hash (invk x) y))))
+    ((recv (enc y (hash x (invk y)))) (send (enc y (hash (invk x) y)))))
+  (label 9)
+  (parent 8)
+  (unrealized (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton bug_example
+  (vars (x y akey))
+  (defstrand resp 1 (x x) (y y))
+  (deflistener (hash (invk x) y))
+  (precedes ((1 1) (0 0)))
+  (non-orig (invk x) (invk y))
+  (operation encryption-test (added-listener (hash (invk x) y))
+    (enc y (hash (invk x) y)) (0 0))
+  (traces ((recv (enc y (hash (invk x) y))))
+    ((recv (hash (invk x) y)) (send (hash (invk x) y))))
+  (label 10)
+  (parent 8)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton bug_example
+  (vars (x y akey))
+  (defstrand resp 1 (x x) (y y))
+  (defstrand flip2 2 (k y) (k1 x) (k2 y))
+  (defstrand init 1 (x x) (y y))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)))
+  (non-orig (invk x) (invk y))
+  (operation encryption-test (added-strand init 1)
+    (enc y (hash x (invk y))) (1 0))
+  (traces ((recv (enc y (hash (invk x) y))))
+    ((recv (enc y (hash x (invk y)))) (send (enc y (hash (invk x) y))))
+    ((send (enc y (hash x (invk y))))))
+  (label 11)
+  (parent 9)
+  (realized)
+  (shape)
+  (maps ((0) ((x x) (y y))))
+  (origs))
+
+(defskeleton bug_example
+  (vars (y k1 akey))
+  (defstrand resp 1 (x (invk k1)) (y y))
+  (defstrand flip2 2 (k y) (k1 (invk k1)) (k2 y))
+  (defstrand flip2 2 (k y) (k1 k1) (k2 (invk y)))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)))
+  (non-orig k1 (invk y))
+  (operation encryption-test (added-strand flip2 2)
+    (enc y (hash (invk k1) (invk y))) (1 0))
+  (traces ((recv (enc y (hash k1 y))))
+    ((recv (enc y (hash (invk k1) (invk y))))
+      (send (enc y (hash k1 y))))
+    ((recv (enc y (hash k1 y)))
+      (send (enc y (hash (invk k1) (invk y))))))
+  (label 12)
+  (parent 9)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton bug_example
+  (vars (x y akey))
+  (defstrand resp 1 (x x) (y y))
+  (defstrand flip2 2 (k y) (k1 x) (k2 y))
+  (deflistener (hash x (invk y)))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)))
+  (non-orig (invk x) (invk y))
+  (operation encryption-test (added-listener (hash x (invk y)))
+    (enc y (hash x (invk y))) (1 0))
+  (traces ((recv (enc y (hash (invk x) y))))
+    ((recv (enc y (hash x (invk y)))) (send (enc y (hash (invk x) y))))
+    ((recv (hash x (invk y))) (send (hash x (invk y)))))
+  (label 13)
+  (parent 9)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton bug_example
+  (vars (y k1 akey))
+  (defstrand resp 1 (x k1) (y y))
+  (defstrand flip2 2 (k y) (k1 k1) (k2 y))
+  (defstrand flip2 2 (k y) (k1 (invk k1)) (k2 (invk y)))
+  (defstrand flip2 2 (k y) (k1 k1) (k2 y))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)))
+  (non-orig (invk y) (invk k1))
+  (operation encryption-test (added-strand flip2 2)
+    (enc y (hash (invk k1) y)) (2 0))
+  (traces ((recv (enc y (hash (invk k1) y))))
+    ((recv (enc y (hash k1 (invk y))))
+      (send (enc y (hash (invk k1) y))))
+    ((recv (enc y (hash (invk k1) y)))
+      (send (enc y (hash k1 (invk y)))))
+    ((recv (enc y (hash k1 (invk y))))
+      (send (enc y (hash (invk k1) y)))))
+  (label 14)
+  (parent 12)
+  (seen 12)
+  (unrealized (3 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton bug_example
+  (vars (y k1 akey))
+  (defstrand resp 1 (x (invk k1)) (y y))
+  (defstrand flip2 2 (k y) (k1 (invk k1)) (k2 y))
+  (defstrand flip2 2 (k y) (k1 k1) (k2 (invk y)))
+  (deflistener (hash k1 y))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)))
+  (non-orig k1 (invk y))
+  (operation encryption-test (added-listener (hash k1 y))
+    (enc y (hash k1 y)) (2 0))
+  (traces ((recv (enc y (hash k1 y))))
+    ((recv (enc y (hash (invk k1) (invk y))))
+      (send (enc y (hash k1 y))))
+    ((recv (enc y (hash k1 y)))
+      (send (enc y (hash (invk k1) (invk y)))))
+    ((recv (hash k1 y)) (send (hash k1 y))))
+  (label 15)
+  (parent 12)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/tst/cert_lang.scm b/tst/cert_lang.scm
new file mode 100644
--- /dev/null
+++ b/tst/cert_lang.scm
@@ -0,0 +1,44 @@
+(herald cert-lang)
+
+(defprotocol cert-uni basic
+  (defrole certify
+    (vars (ch chan) (subj ca name) (pk akey) (serial data))
+    (trace
+      (send ch
+        (cert (cert-body subj serial pk) (privk "cert" ca))))
+    (inputs ch subj pk serial (privk "cert" ca)))
+  (defrole init
+    (vars (ch-ca ch-r chan) (subj ca name) (pk akey)
+      (serial data) (chal text))
+    (trace
+      (recv ch-ca
+        (cert (cert-body subj serial pk) (privk "cert" ca)))
+      (send ch-r (enc "challenge" chal pk))
+      (recv ch-r chal))
+    (uniq-orig chal)
+    (inputs ch-ca ch-r subj (pubk "cert" ca))
+    (outputs chal))
+  (defrole resp
+    (vars (ch-ca ch-i chan) (subj ca name) (pk akey)
+      (serial data) (chal text))
+    (trace
+      (recv ch-ca
+        (cert (cert-body subj serial pk) (privk "cert" ca)))
+      (recv ch-i (enc "challenge" chal pk))
+      (send ch-i chal))
+    (inputs ch-ca ch-i subj (pubk "cert" ca) (invk pk))
+    (outputs chal))
+  (defrule certified-keys-uncompromised
+    (forall ((zca strd) (subj ca name) (pk akey))
+      (implies
+        (and (p "certify" zca 1)
+          (p "certify" "subj" zca subj)
+          (p "certify" "ca" zca ca)
+          (p "certify" "pk" zca pk) (non (privk "cert" ca)))
+        (non (invk pk)))))
+   (lang (cert sign) (cert-body (tupl 3))))
+
+(defskeleton cert-uni
+  (vars (subj ca name) (pk akey) (serial data) (chal text))
+  (defstrand init 3 (ca ca) (chal chal))
+  (non-orig (privk "cert" ca)))
diff --git a/tst/cert_lang.tst b/tst/cert_lang.tst
new file mode 100644
--- /dev/null
+++ b/tst/cert_lang.tst
@@ -0,0 +1,112 @@
+(herald cert-lang)
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/cert_lang.scm")
+
+(defprotocol cert-uni basic
+  (defrole certify
+    (vars (ch chan) (subj ca name) (pk akey) (serial data))
+    (trace
+      (send ch (cert (cert-body subj serial pk) (privk "cert" ca))))
+    (inputs ch subj pk serial (privk "cert" ca)))
+  (defrole init
+    (vars (ch-ca ch-r chan) (subj ca name) (pk akey) (serial data)
+      (chal text))
+    (trace
+      (recv ch-ca (cert (cert-body subj serial pk) (privk "cert" ca)))
+      (send ch-r (enc "challenge" chal pk)) (recv ch-r chal))
+    (uniq-orig chal)
+    (inputs ch-ca ch-r subj (pubk "cert" ca))
+    (outputs chal))
+  (defrole resp
+    (vars (ch-ca ch-i chan) (subj ca name) (pk akey) (serial data)
+      (chal text))
+    (trace
+      (recv ch-ca (cert (cert-body subj serial pk) (privk "cert" ca)))
+      (recv ch-i (enc "challenge" chal pk)) (send ch-i chal))
+    (inputs ch-ca ch-i subj (pubk "cert" ca) (invk pk))
+    (outputs chal))
+  (defrule certified-keys-uncompromised
+    (forall ((zca strd) (subj ca name) (pk akey))
+      (implies
+        (and (p "certify" zca (idx 1)) (p "certify" "subj" zca subj)
+          (p "certify" "ca" zca ca) (p "certify" "pk" zca pk)
+          (non (privk "cert" ca)))
+        (non (invk pk)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (lang (cert sign) (cert-body (tupl 3))))
+
+(defskeleton cert-uni
+  (vars (serial data) (chal text) (pk akey) (ca subj name)
+    (ch-ca ch-r chan))
+  (defstrand init 3 (serial serial) (chal chal) (pk pk) (subj subj)
+    (ca ca) (ch-ca ch-ca) (ch-r ch-r))
+  (non-orig (privk "cert" ca))
+  (uniq-orig chal)
+  (traces
+    ((recv ch-ca (cert (cert-body subj serial pk) (privk "cert" ca)))
+      (send ch-r (enc "challenge" chal pk)) (recv ch-r chal)))
+  (label 0)
+  (unrealized (0 0))
+  (origs (chal (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton cert-uni
+  (vars (serial data) (chal text) (pk akey) (ca subj name)
+    (ch-ca ch-r ch chan))
+  (defstrand init 3 (serial serial) (chal chal) (pk pk) (subj subj)
+    (ca ca) (ch-ca ch-ca) (ch-r ch-r))
+  (defstrand certify 1 (serial serial) (pk pk) (subj subj) (ca ca)
+    (ch ch))
+  (precedes ((1 0) (0 0)))
+  (non-orig (invk pk) (privk "cert" ca))
+  (uniq-orig chal)
+  (rule certified-keys-uncompromised)
+  (operation encryption-test (added-strand certify 1)
+    (cert (cert-body subj serial pk) (privk "cert" ca)) (0 0))
+  (traces
+    ((recv ch-ca (cert (cert-body subj serial pk) (privk "cert" ca)))
+      (send ch-r (enc "challenge" chal pk)) (recv ch-r chal))
+    ((send ch (cert (cert-body subj serial pk) (privk "cert" ca)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton cert-uni
+  (vars (serial serial-0 data) (chal text) (pk akey)
+    (ca subj subj-0 ca-0 name) (ch-ca ch-r ch ch-ca-0 ch-i chan))
+  (defstrand init 3 (serial serial) (chal chal) (pk pk) (subj subj)
+    (ca ca) (ch-ca ch-ca) (ch-r ch-r))
+  (defstrand certify 1 (serial serial) (pk pk) (subj subj) (ca ca)
+    (ch ch))
+  (defstrand resp 3 (serial serial-0) (chal chal) (pk pk) (subj subj-0)
+    (ca ca-0) (ch-ca ch-ca-0) (ch-i ch-i))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (invk pk) (privk "cert" ca))
+  (uniq-orig chal)
+  (operation nonce-test (added-strand resp 3) chal (0 2)
+    (enc "challenge" chal pk))
+  (traces
+    ((recv ch-ca (cert (cert-body subj serial pk) (privk "cert" ca)))
+      (send ch-r (enc "challenge" chal pk)) (recv ch-r chal))
+    ((send ch (cert (cert-body subj serial pk) (privk "cert" ca))))
+    ((recv ch-ca-0
+       (cert (cert-body subj-0 serial-0 pk) (privk "cert" ca-0)))
+      (recv ch-i (enc "challenge" chal pk)) (send ch-i chal)))
+  (label 2)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((ca ca) (chal chal) (ch-ca ch-ca) (ch-r ch-r) (subj subj) (pk pk)
+        (serial serial))))
+  (origs (chal (0 1))))
+
+(comment "Nothing left to do")
diff --git a/tst/chan-envelope.scm b/tst/chan-envelope.scm
new file mode 100644
--- /dev/null
+++ b/tst/chan-envelope.scm
@@ -0,0 +1,212 @@
+(herald "Envelope Protocol With Channels" (bound 15))
+
+;;; This file analyzes the Envelope Protocol using three rules sets.
+;;; For each rule set, it checks three scenarios.  In every scenario,
+;;; an Alice strand runs to completion.  In the first scenario, the
+;;; obtain token is listened for.  In the second, a listener for the
+;;; refusal token is included.  In the third scenario, both listeners
+;;; are included.  The third scenario should be impossible, but rules
+;;; are required to accurately model state.
+;;;
+;;; The first rule set is empty and the answer to the third scenario
+;;; shows a case is which the TPM's PCR state splits.  The second rule
+;;; set forces TPM extends to be linearly ordered.  However, in this
+;;; case, there are two TPMs when there should be one as Alice uses
+;;; one TPM storage key to communicate with both TPMs.  The final rule
+;;; set includes a rule about storage keys and thus accurately models
+;;; state.
+;;;
+;;; Macros are used to avoid copying roles and scenarios.
+
+;; This is the refusal token
+(defmacro (refuse n v k aik)
+  (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+
+;;; This protocol tracks the TPM's PCR state
+;;; by sending a message with the current PCR
+;;; value encrypted by a hashed secret key.
+;;; The hash is used to prevent a confusion with
+;;; the key for an encrypted session.
+
+(defmacro (roles)
+  (^
+   ;; Power on sets the pcr to 0
+   (defrole tpm-power-on
+     (vars (c chan))
+     (trace
+      (recv "power on")
+      (send c "0"))
+     (conf c)
+     (auth c))
+
+   ;; The extend command takes the value to
+   ;; extend and the current PCR value (in the
+   ;; form of a message encrypted with the special
+   ;; PCR state key) and produces the hash of the
+   ;; two values (by sending it encrypted in the
+   ;; special PCR state key).
+   (defrole tpm-extend
+     (vars (value current-value mesg) (c chan))
+     (trace
+      (recv (cat "extend" value))
+      (recv c current-value)		  ;; MSR lhs (deleted)
+      (send c (hash current-value value)) ;; MSR rhs
+      (send "ext ok"))
+     (conf c)
+     (auth c))
+
+   ;; The extend command can also occur within an
+   ;; encrypted session.  We assume some session key already exists
+   (defrole tpm-extend-enc
+     (vars (value current-value mesg) (esk skey) (c chan))
+     (trace
+      (recv (enc "extend" value esk))
+      (recv c current-value)		  ;; MSR lhs (deleted)
+      (send c (hash current-value value)) ;; MSR rhs
+      (send "ext ok"))
+     (non-orig esk)
+     (conf c)
+     (auth c))
+
+   ;; The TPM must retrieve the current pcr value.  Notice that
+   ;; the nonce is of sort mesg, which allows non-atomic values.
+   (defrole tpm-quote
+     (vars (nonce current-value mesg) (c chan) (aik akey))
+     (trace
+      (recv (cat "quote" nonce))
+      (recv c current-value) ;; MSR lhs (not deleted)
+      (send (enc "quote" current-value nonce aik)))
+     (non-orig aik)
+     (conf c)
+     (auth c))
+
+   ;; This role creates a key whose use is restricted to a
+   ;; requested pcr value (since we only model one pcr).
+   ;; It doesn't create or change any TPM state.
+   (defrole tpm-create-key
+     (vars (k aik akey) (pcrval mesg) (esk skey))
+     (trace
+      (recv (enc "create key" pcrval esk)) ;; encryption prevents weird shapes
+      (send (enc "created" k pcrval aik)));; no tpm state is set
+     (uniq-orig k)
+     (non-orig (invk k) aik esk))
+
+   ;; This role receives an encryption and a previously
+   ;; made key structure that restricts the decryption key
+   ;; to be used with a certain pcr value.  It retrieves the
+   ;; current value and checks that it matches before decrypting.
+   (defrole tpm-decrypt
+     (vars (m pcrvals mesg) (k aik akey) (c chan))
+     (trace
+      (recv (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcrvals aik))
+      (recv c pcrvals) ;; MSR lhs (not deleted)
+      (send m))
+     (non-orig aik)
+     (conf c)
+     (auth c))
+
+   ;; Alice extends a pcr with a fresh nonce in an encrypted
+   ;; session.  She has the TPM create a new key whose use is
+   ;; bound to the hash of pcr value she just created with the
+   ;; string "obtain".  She then encrypts her fresh secret with
+   ;; this newly created key.
+   (defrole alice
+     (vars (n v data) (esk skey) (k aik akey))
+     (trace
+      (send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+     (uniq-orig n v)
+     (non-orig aik esk))))
+
+(defprotocol envelope basic
+  (roles))
+
+(defskeleton envelope
+  (vars (v data))
+  (deflistener v)
+  (defstrand alice 4 (v v)))
+
+(defskeleton envelope
+  (vars (n v data) (k aik akey))
+  (deflistener (refuse n v k aik))
+  (defstrand alice 4 (n n) (v v) (k k) (aik aik)))
+
+(defskeleton envelope
+  (vars (n v data) (k aik akey))
+  (deflistener (refuse n v k aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (k k) (aik aik)))
+
+(defprotocol envelope basic
+  (roles)
+
+  (defrule ordered-extends
+    (forall ((y z strd) (c chan))
+	    (implies
+	     (and (p "tpm-extend" y 3)
+		  (p "tpm-extend" z 3)
+		  (p "tpm-extend" "c" y c)
+		  (p "tpm-extend" "c" z c))
+	     (or (= y z)
+		 (prec y 2 z 3)
+		 (prec z 2 y 3))))))
+
+(defskeleton envelope
+  (vars (v data))
+  (deflistener v)
+  (defstrand alice 4 (v v)))
+
+(defskeleton envelope
+  (vars (n v data) (k aik akey))
+  (deflistener (refuse n v k aik))
+  (defstrand alice 4 (n n) (v v) (k k) (aik aik)))
+
+(defskeleton envelope
+  (vars (n v data) (k aik akey))
+  (deflistener (refuse n v k aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (k k) (aik aik)))
+
+(defprotocol envelope basic
+  (roles)
+
+  (defrule ordered-extends
+    (forall ((y z strd) (c chan))
+	    (implies
+	     (and (p "tpm-extend" y 3)
+		  (p "tpm-extend" z 3)
+		  (p "tpm-extend" "c" y c)
+		  (p "tpm-extend" "c" z c))
+	     (or (= y z)
+		 (prec y 2 z 3)
+		 (prec z 2 y 3)))))
+
+  (defrule esk-same-as-chan
+    (forall ((y z strd) (esk skey) (c c-0 chan))
+	    (implies
+	     (and (p "tpm-extend-enc" y 3)
+		  (p "tpm-extend-enc" z 3)
+		  (p "tpm-extend-enc" "esk" y esk)
+		  (p "tpm-extend-enc" "esk" z esk)
+		  (p "tpm-extend-enc" "c" y c)
+		  (p "tpm-extend-enc" "c" z c-0))
+	     (= c c-0)))))
+
+(defskeleton envelope
+  (vars (v data))
+  (deflistener v)
+  (defstrand alice 4 (v v)))
+
+(defskeleton envelope
+  (vars (n v data) (k aik akey))
+  (deflistener (refuse n v k aik))
+  (defstrand alice 4 (n n) (v v) (k k) (aik aik)))
+
+(defskeleton envelope
+  (vars (n v data) (k aik akey))
+  (deflistener (refuse n v k aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (k k) (aik aik)))
diff --git a/tst/chan-envelope.tst b/tst/chan-envelope.tst
new file mode 100644
--- /dev/null
+++ b/tst/chan-envelope.tst
@@ -0,0 +1,4850 @@
+(herald "Envelope Protocol With Channels" (bound 15))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/chan-envelope.scm")
+(comment "Strand count bounded at 15")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (c chan))
+    (trace (recv "power on") (send c "0"))
+    (conf c)
+    (auth c))
+  (defrole tpm-extend
+    (vars (value current-value mesg) (c chan))
+    (trace (recv (cat "extend" value)) (recv c current-value)
+      (send c (hash current-value value)) (send "ext ok"))
+    (conf c)
+    (auth c))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (esk skey) (c chan))
+    (trace (recv (enc "extend" value esk)) (recv c current-value)
+      (send c (hash current-value value)) (send "ext ok"))
+    (non-orig esk)
+    (conf c)
+    (auth c))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (c chan) (aik akey))
+    (trace (recv (cat "quote" nonce)) (recv c current-value)
+      (send (enc "quote" current-value nonce aik)))
+    (non-orig aik)
+    (conf c)
+    (auth c))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcrval mesg) (esk skey))
+    (trace (recv (enc "create key" pcrval esk))
+      (send (enc "created" k pcrval aik)))
+    (non-orig esk aik (invk k))
+    (uniq-orig k))
+  (defrole tpm-decrypt
+    (vars (m pcrvals mesg) (k aik akey) (c chan))
+    (trace (recv (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcrvals aik)) (recv c pcrvals) (send m))
+    (non-orig aik)
+    (conf c)
+    (auth c))
+  (defrole alice
+    (vars (n v data) (esk skey) (k aik akey))
+    (trace (send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig esk aik)
+    (uniq-orig n v))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (non-orig esk aik)
+  (uniq-orig v n)
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 0)
+  (unrealized (0 0) (1 2))
+  (preskeleton)
+  (origs (v (1 3)) (n (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (precedes ((1 3) (0 0)))
+  (non-orig esk aik)
+  (uniq-orig v n)
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 2))
+  (origs (v (1 3)) (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk esk-0 skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk-0) (k k) (aik aik))
+  (precedes ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k (hash (hash "0" n) "obtain") aik) (1 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk-0))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (precedes ((1 1) (2 0)) ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (displaced 3 1 alice 2)
+    (enc "create key" (hash (hash "0" n) "obtain") esk-0) (2 0))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (pcrvals mesg) (v n data) (esk skey) (k aik aik-0 akey)
+    (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals pcrvals) (k k) (aik aik-0)
+    (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0)))
+  (non-orig esk aik aik-0 (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcrvals aik-0)) (recv c pcrvals) (send v)))
+  (label 4)
+  (parent 3)
+  (unrealized (3 1) (3 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey) (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0)))
+  (non-orig esk aik (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation encryption-test (displaced 4 2 tpm-create-key 2)
+    (enc "created" k pcrvals aik-0) (3 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v)))
+  (label 5)
+  (parent 4)
+  (unrealized (3 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey) (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 2) (3 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend 3)
+    (ch-msg c (hash (hash "0" n) "obtain")) (3 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain"))))
+  (label 6)
+  (parent 5)
+  (unrealized (4 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk esk-0 skey) (k aik akey) (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (esk esk-0) (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 2) (3 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c (hash (hash "0" n) "obtain")) (3 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (enc "extend" "obtain" esk-0)) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain"))))
+  (label 7)
+  (parent 5)
+  (unrealized (4 0) (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey) (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend 3 (value n) (current-value "0") (c c))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend 3)
+    (ch-msg c (hash "0" n)) (4 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (cat "extend" n)) (recv c "0") (send c (hash "0" n))))
+  (label 8)
+  (parent 6)
+  (unrealized (5 0) (5 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (v n data) (esk esk-0 skey) (k aik akey) (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk-0)
+    (c c))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c (hash "0" n)) (4 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk-0)) (recv c "0") (send c (hash "0" n))))
+  (label 9)
+  (parent 6)
+  (unrealized (5 0) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey) (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation encryption-test (displaced 6 1 alice 1)
+    (enc "extend" n esk-0) (5 0))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n))))
+  (label 10)
+  (parent 9)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey) (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)) ((6 1) (5 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-power-on 2) (ch-msg c "0")
+    (5 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0")))
+  (label 11)
+  (parent 10)
+  (realized)
+  (shape)
+  (maps ((0 1) ((v v) (n n) (esk esk) (k k) (aik aik))))
+  (origs (n (1 0)) (k (2 1)) (v (1 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (c chan))
+    (trace (recv "power on") (send c "0"))
+    (conf c)
+    (auth c))
+  (defrole tpm-extend
+    (vars (value current-value mesg) (c chan))
+    (trace (recv (cat "extend" value)) (recv c current-value)
+      (send c (hash current-value value)) (send "ext ok"))
+    (conf c)
+    (auth c))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (esk skey) (c chan))
+    (trace (recv (enc "extend" value esk)) (recv c current-value)
+      (send c (hash current-value value)) (send "ext ok"))
+    (non-orig esk)
+    (conf c)
+    (auth c))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (c chan) (aik akey))
+    (trace (recv (cat "quote" nonce)) (recv c current-value)
+      (send (enc "quote" current-value nonce aik)))
+    (non-orig aik)
+    (conf c)
+    (auth c))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcrval mesg) (esk skey))
+    (trace (recv (enc "create key" pcrval esk))
+      (send (enc "created" k pcrval aik)))
+    (non-orig esk aik (invk k))
+    (uniq-orig k))
+  (defrole tpm-decrypt
+    (vars (m pcrvals mesg) (k aik akey) (c chan))
+    (trace (recv (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcrvals aik)) (recv c pcrvals) (send m))
+    (non-orig aik)
+    (conf c)
+    (auth c))
+  (defrole alice
+    (vars (n v data) (esk skey) (k aik akey))
+    (trace (send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig esk aik)
+    (uniq-orig n v))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 12)
+  (unrealized (0 0) (1 2))
+  (preskeleton)
+  (origs (v (1 3)) (n (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (precedes ((1 3) (0 0)))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 13)
+  (parent 12)
+  (unrealized (0 0) (1 2))
+  (origs (v (1 3)) (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk-0) (k k) (aik aik))
+  (precedes ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k (hash (hash "0" n) "obtain") aik) (1 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk-0))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 14)
+  (parent 13)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (precedes ((1 1) (2 0)) ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 3 1 alice 2)
+    (enc "create key" (hash (hash "0" n) "obtain") esk-0) (2 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 15)
+  (parent 14)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik) (0 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))))
+  (label 16)
+  (parent 15)
+  (unrealized (3 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 2) (3 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend 3)
+    (ch-msg c (hash (hash "0" n) "refuse")) (3 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "refuse"))))
+  (label 17)
+  (parent 16)
+  (unrealized (4 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (esk esk-0) (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 2) (3 1)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c (hash (hash "0" n) "refuse")) (3 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (enc "extend" "refuse" esk-0)) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "refuse"))))
+  (label 18)
+  (parent 16)
+  (unrealized (4 0) (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend 3 (value n) (current-value "0") (c c))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend 3)
+    (ch-msg c (hash "0" n)) (4 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "refuse")))
+    ((recv (cat "extend" n)) (recv c "0") (send c (hash "0" n))))
+  (label 19)
+  (parent 17)
+  (unrealized (5 0) (5 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk-0)
+    (c c))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c (hash "0" n)) (4 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "refuse")))
+    ((recv (enc "extend" n esk-0)) (recv c "0") (send c (hash "0" n))))
+  (label 20)
+  (parent 17)
+  (unrealized (5 0) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation encryption-test (displaced 6 1 alice 1)
+    (enc "extend" n esk-0) (5 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "refuse")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n))))
+  (label 21)
+  (parent 20)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)) ((6 1) (5 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-power-on 2) (ch-msg c "0")
+    (5 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "refuse")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0")))
+  (label 22)
+  (parent 21)
+  (realized)
+  (shape)
+  (maps ((0 1) ((n n) (v v) (k k) (aik aik) (esk esk))))
+  (origs (n (1 0)) (k (2 1)) (v (1 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (c chan))
+    (trace (recv "power on") (send c "0"))
+    (conf c)
+    (auth c))
+  (defrole tpm-extend
+    (vars (value current-value mesg) (c chan))
+    (trace (recv (cat "extend" value)) (recv c current-value)
+      (send c (hash current-value value)) (send "ext ok"))
+    (conf c)
+    (auth c))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (esk skey) (c chan))
+    (trace (recv (enc "extend" value esk)) (recv c current-value)
+      (send c (hash current-value value)) (send "ext ok"))
+    (non-orig esk)
+    (conf c)
+    (auth c))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (c chan) (aik akey))
+    (trace (recv (cat "quote" nonce)) (recv c current-value)
+      (send (enc "quote" current-value nonce aik)))
+    (non-orig aik)
+    (conf c)
+    (auth c))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcrval mesg) (esk skey))
+    (trace (recv (enc "create key" pcrval esk))
+      (send (enc "created" k pcrval aik)))
+    (non-orig esk aik (invk k))
+    (uniq-orig k))
+  (defrole tpm-decrypt
+    (vars (m pcrvals mesg) (k aik akey) (c chan))
+    (trace (recv (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcrvals aik)) (recv c pcrvals) (send m))
+    (non-orig aik)
+    (conf c)
+    (auth c))
+  (defrole alice
+    (vars (n v data) (esk skey) (k aik akey))
+    (trace (send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig esk aik)
+    (uniq-orig n v))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 23)
+  (unrealized (0 0) (1 0) (2 2))
+  (preskeleton)
+  (origs (v (2 3)) (n (2 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (precedes ((2 3) (0 0)) ((2 3) (1 0)))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 24)
+  (parent 23)
+  (unrealized (0 0) (2 2))
+  (origs (v (2 3)) (n (2 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk-0) (k k) (aik aik))
+  (precedes ((2 3) (0 0)) ((2 3) (1 0)) ((3 1) (2 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k (hash (hash "0" n) "obtain") aik) (2 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk-0))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 25)
+  (parent 24)
+  (unrealized (0 0) (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (1 0)) ((3 1) (2 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 4 2 alice 2)
+    (enc "create key" (hash (hash "0" n) "obtain") esk-0) (3 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 26)
+  (parent 25)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (pcrvals mesg) (n v data) (esk skey) (k aik aik-0 akey)
+    (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals pcrvals) (k k) (aik aik-0)
+    (c c))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)))
+  (non-orig esk aik aik-0 (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcrvals aik-0)) (recv c pcrvals) (send v)))
+  (label 27)
+  (parent 26)
+  (unrealized (0 0) (4 1) (4 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation encryption-test (displaced 5 3 tpm-create-key 2)
+    (enc "created" k pcrvals aik-0) (4 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v)))
+  (label 28)
+  (parent 27)
+  (unrealized (0 0) (4 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 2) (4 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend 3)
+    (ch-msg c (hash (hash "0" n) "obtain")) (4 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain"))))
+  (label 29)
+  (parent 28)
+  (unrealized (0 0) (5 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (esk esk-0) (c c))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 2) (4 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c (hash (hash "0" n) "obtain")) (4 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (enc "extend" "obtain" esk-0)) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain"))))
+  (label 30)
+  (parent 28)
+  (unrealized (0 0) (5 0) (5 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend 3 (value n) (current-value "0") (c c))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend 3)
+    (ch-msg c (hash "0" n)) (5 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (cat "extend" n)) (recv c "0") (send c (hash "0" n))))
+  (label 31)
+  (parent 29)
+  (unrealized (0 0) (6 0) (6 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk-0)
+    (c c))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c (hash "0" n)) (5 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk-0)) (recv c "0") (send c (hash "0" n))))
+  (label 32)
+  (parent 29)
+  (unrealized (0 0) (6 0) (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation encryption-test (displaced 7 2 alice 1)
+    (enc "extend" n esk-0) (6 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n))))
+  (label 33)
+  (parent 32)
+  (unrealized (0 0) (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-power-on 2) (ch-msg c "0")
+    (6 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0")))
+  (label 34)
+  (parent 33)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c c-0 chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c c-0)
+  (auth c c-0)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik) (0 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0"))
+    ((recv (cat "quote" (enc v k)))
+      (recv c-0 (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))))
+  (label 35)
+  (parent 34)
+  (unrealized (8 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c c-0 chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c-0))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c c-0)
+  (auth c c-0)
+  (operation channel-test (added-strand tpm-extend 3)
+    (ch-msg c-0 (hash (hash "0" n) "refuse")) (8 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0"))
+    ((recv (cat "quote" (enc v k)))
+      (recv c-0 (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c-0 (hash "0" n))
+      (send c-0 (hash (hash "0" n) "refuse"))))
+  (label 36)
+  (parent 35)
+  (unrealized (9 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey) (c c-0 chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c-0))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (esk esk-0) (c c-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (conf c c-0)
+  (auth c c-0)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c-0 (hash (hash "0" n) "refuse")) (8 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0"))
+    ((recv (cat "quote" (enc v k)))
+      (recv c-0 (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (enc "extend" "refuse" esk-0)) (recv c-0 (hash "0" n))
+      (send c-0 (hash (hash "0" n) "refuse"))))
+  (label 37)
+  (parent 35)
+  (unrealized (9 0) (9 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c c-0 chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c-0))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c-0))
+  (defstrand tpm-extend 3 (value n) (current-value "0") (c c-0))
+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (8 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1))
+    ((10 2) (9 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c c-0)
+  (auth c c-0)
+  (operation channel-test (added-strand tpm-extend 3)
+    (ch-msg c-0 (hash "0" n)) (9 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0"))
+    ((recv (cat "quote" (enc v k)))
+      (recv c-0 (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c-0 (hash "0" n))
+      (send c-0 (hash (hash "0" n) "refuse")))
+    ((recv (cat "extend" n)) (recv c-0 "0") (send c-0 (hash "0" n))))
+  (label 38)
+  (parent 36)
+  (unrealized (10 0) (10 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((6 2) (9 1)) ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (displaced 10 6 tpm-extend-enc 3)
+    (ch-msg c-0 (hash "0" n)) (9 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0"))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "refuse"))))
+  (label 39)
+  (parent 36)
+  (realized)
+  (shape)
+  (maps ((0 1 2) ((n n) (v v) (k k) (aik aik) (esk esk))))
+  (origs (n (2 0)) (k (3 1)) (v (2 3))))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey) (c c-0 chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c-0))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk-0)
+    (c c-0))
+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (8 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1))
+    ((10 2) (9 1)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (conf c c-0)
+  (auth c c-0)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c-0 (hash "0" n)) (9 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0"))
+    ((recv (cat "quote" (enc v k)))
+      (recv c-0 (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c-0 (hash "0" n))
+      (send c-0 (hash (hash "0" n) "refuse")))
+    ((recv (enc "extend" n esk-0)) (recv c-0 "0")
+      (send c-0 (hash "0" n))))
+  (label 40)
+  (parent 36)
+  (unrealized (10 0) (10 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c c-0 chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c-0))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c-0))
+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (8 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1))
+    ((10 2) (9 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c c-0)
+  (auth c c-0)
+  (operation encryption-test (displaced 11 2 alice 1)
+    (enc "extend" n esk-0) (10 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0"))
+    ((recv (cat "quote" (enc v k)))
+      (recv c-0 (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c-0 (hash "0" n))
+      (send c-0 (hash (hash "0" n) "refuse")))
+    ((recv (enc "extend" n esk)) (recv c-0 "0")
+      (send c-0 (hash "0" n))))
+  (label 41)
+  (parent 40)
+  (unrealized (10 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (8 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 1) (6 1)) ((7 1) (10 1)) ((8 2) (0 0))
+    ((9 2) (8 1)) ((10 2) (9 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (displaced 11 7 tpm-power-on 2)
+    (ch-msg c-0 "0") (10 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0"))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "refuse")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n))))
+  (label 42)
+  (parent 41)
+  (realized)
+  (shape)
+  (maps ((0 1 2) ((n n) (v v) (k k) (aik aik) (esk esk))))
+  (origs (n (2 0)) (k (3 1)) (v (2 3))))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c c-0 chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c-0))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c-0))
+  (defstrand tpm-power-on 2 (c c-0))
+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (8 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1))
+    ((10 2) (9 1)) ((11 1) (10 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c c-0)
+  (auth c c-0)
+  (operation channel-test (added-strand tpm-power-on 2) (ch-msg c-0 "0")
+    (10 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0"))
+    ((recv (cat "quote" (enc v k)))
+      (recv c-0 (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c-0 (hash "0" n))
+      (send c-0 (hash (hash "0" n) "refuse")))
+    ((recv (enc "extend" n esk)) (recv c-0 "0") (send c-0 (hash "0" n)))
+    ((recv "power on") (send c-0 "0")))
+  (label 43)
+  (parent 41)
+  (realized)
+  (shape)
+  (maps ((0 1 2) ((n n) (v v) (k k) (aik aik) (esk esk))))
+  (origs (n (2 0)) (k (3 1)) (v (2 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (c chan))
+    (trace (recv "power on") (send c "0"))
+    (conf c)
+    (auth c))
+  (defrole tpm-extend
+    (vars (value current-value mesg) (c chan))
+    (trace (recv (cat "extend" value)) (recv c current-value)
+      (send c (hash current-value value)) (send "ext ok"))
+    (conf c)
+    (auth c))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (esk skey) (c chan))
+    (trace (recv (enc "extend" value esk)) (recv c current-value)
+      (send c (hash current-value value)) (send "ext ok"))
+    (non-orig esk)
+    (conf c)
+    (auth c))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (c chan) (aik akey))
+    (trace (recv (cat "quote" nonce)) (recv c current-value)
+      (send (enc "quote" current-value nonce aik)))
+    (non-orig aik)
+    (conf c)
+    (auth c))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcrval mesg) (esk skey))
+    (trace (recv (enc "create key" pcrval esk))
+      (send (enc "created" k pcrval aik)))
+    (non-orig esk aik (invk k))
+    (uniq-orig k))
+  (defrole tpm-decrypt
+    (vars (m pcrvals mesg) (k aik akey) (c chan))
+    (trace (recv (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcrvals aik)) (recv c pcrvals) (send m))
+    (non-orig aik)
+    (conf c)
+    (auth c))
+  (defrole alice
+    (vars (n v data) (esk skey) (k aik akey))
+    (trace (send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig esk aik)
+    (uniq-orig n v))
+  (defrule ordered-extends
+    (forall ((y z strd) (c chan))
+      (implies
+        (and (p "tpm-extend" y (idx 3)) (p "tpm-extend" z (idx 3))
+          (p "tpm-extend" "c" y c) (p "tpm-extend" "c" z c))
+        (or
+          (= y z)
+          (prec y (idx 2) z (idx 3))
+          (prec z (idx 2) y (idx 3))))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (non-orig esk aik)
+  (uniq-orig v n)
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 44)
+  (unrealized (0 0) (1 2))
+  (preskeleton)
+  (origs (v (1 3)) (n (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (precedes ((1 3) (0 0)))
+  (non-orig esk aik)
+  (uniq-orig v n)
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 45)
+  (parent 44)
+  (unrealized (1 2))
+  (origs (v (1 3)) (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk esk-0 skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk-0) (k k) (aik aik))
+  (precedes ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k (hash (hash "0" n) "obtain") aik) (1 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk-0))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 46)
+  (parent 45)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (precedes ((1 1) (2 0)) ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (displaced 3 1 alice 2)
+    (enc "create key" (hash (hash "0" n) "obtain") esk-0) (2 0))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 47)
+  (parent 46)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (pcrvals mesg) (v n data) (esk skey) (k aik aik-0 akey)
+    (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals pcrvals) (k k) (aik aik-0)
+    (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0)))
+  (non-orig esk aik aik-0 (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcrvals aik-0)) (recv c pcrvals) (send v)))
+  (label 48)
+  (parent 47)
+  (unrealized (3 1) (3 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey) (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0)))
+  (non-orig esk aik (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation encryption-test (displaced 4 2 tpm-create-key 2)
+    (enc "created" k pcrvals aik-0) (3 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v)))
+  (label 49)
+  (parent 48)
+  (unrealized (3 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey) (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 2) (3 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend 3)
+    (ch-msg c (hash (hash "0" n) "obtain")) (3 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain"))))
+  (label 50)
+  (parent 49)
+  (unrealized (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk esk-0 skey) (k aik akey) (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (esk esk-0) (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 2) (3 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c (hash (hash "0" n) "obtain")) (3 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (enc "extend" "obtain" esk-0)) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain"))))
+  (label 51)
+  (parent 49)
+  (unrealized (4 0) (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (v n data) (esk esk-0 skey) (k aik akey) (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk-0)
+    (c c))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c (hash "0" n)) (4 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk-0)) (recv c "0") (send c (hash "0" n))))
+  (label 52)
+  (parent 50)
+  (unrealized (5 0) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey) (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation encryption-test (displaced 6 1 alice 1)
+    (enc "extend" n esk-0) (5 0))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n))))
+  (label 53)
+  (parent 52)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey) (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)) ((6 1) (5 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-power-on 2) (ch-msg c "0")
+    (5 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0")))
+  (label 54)
+  (parent 53)
+  (realized)
+  (shape)
+  (maps ((0 1) ((v v) (n n) (esk esk) (k k) (aik aik))))
+  (origs (n (1 0)) (k (2 1)) (v (1 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (c chan))
+    (trace (recv "power on") (send c "0"))
+    (conf c)
+    (auth c))
+  (defrole tpm-extend
+    (vars (value current-value mesg) (c chan))
+    (trace (recv (cat "extend" value)) (recv c current-value)
+      (send c (hash current-value value)) (send "ext ok"))
+    (conf c)
+    (auth c))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (esk skey) (c chan))
+    (trace (recv (enc "extend" value esk)) (recv c current-value)
+      (send c (hash current-value value)) (send "ext ok"))
+    (non-orig esk)
+    (conf c)
+    (auth c))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (c chan) (aik akey))
+    (trace (recv (cat "quote" nonce)) (recv c current-value)
+      (send (enc "quote" current-value nonce aik)))
+    (non-orig aik)
+    (conf c)
+    (auth c))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcrval mesg) (esk skey))
+    (trace (recv (enc "create key" pcrval esk))
+      (send (enc "created" k pcrval aik)))
+    (non-orig esk aik (invk k))
+    (uniq-orig k))
+  (defrole tpm-decrypt
+    (vars (m pcrvals mesg) (k aik akey) (c chan))
+    (trace (recv (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcrvals aik)) (recv c pcrvals) (send m))
+    (non-orig aik)
+    (conf c)
+    (auth c))
+  (defrole alice
+    (vars (n v data) (esk skey) (k aik akey))
+    (trace (send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig esk aik)
+    (uniq-orig n v))
+  (defrule ordered-extends
+    (forall ((y z strd) (c chan))
+      (implies
+        (and (p "tpm-extend" y (idx 3)) (p "tpm-extend" z (idx 3))
+          (p "tpm-extend" "c" y c) (p "tpm-extend" "c" z c))
+        (or
+          (= y z)
+          (prec y (idx 2) z (idx 3))
+          (prec z (idx 2) y (idx 3))))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 55)
+  (unrealized (0 0) (1 2))
+  (preskeleton)
+  (origs (v (1 3)) (n (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (precedes ((1 3) (0 0)))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 56)
+  (parent 55)
+  (unrealized (0 0) (1 2))
+  (origs (v (1 3)) (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk-0) (k k) (aik aik))
+  (precedes ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k (hash (hash "0" n) "obtain") aik) (1 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk-0))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 57)
+  (parent 56)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (precedes ((1 1) (2 0)) ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 3 1 alice 2)
+    (enc "create key" (hash (hash "0" n) "obtain") esk-0) (2 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 58)
+  (parent 57)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik) (0 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))))
+  (label 59)
+  (parent 58)
+  (unrealized (3 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 2) (3 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend 3)
+    (ch-msg c (hash (hash "0" n) "refuse")) (3 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "refuse"))))
+  (label 60)
+  (parent 59)
+  (unrealized (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (esk esk-0) (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 2) (3 1)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c (hash (hash "0" n) "refuse")) (3 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (enc "extend" "refuse" esk-0)) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "refuse"))))
+  (label 61)
+  (parent 59)
+  (unrealized (4 0) (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk-0)
+    (c c))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c (hash "0" n)) (4 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "refuse")))
+    ((recv (enc "extend" n esk-0)) (recv c "0") (send c (hash "0" n))))
+  (label 62)
+  (parent 60)
+  (unrealized (5 0) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation encryption-test (displaced 6 1 alice 1)
+    (enc "extend" n esk-0) (5 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "refuse")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n))))
+  (label 63)
+  (parent 62)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)) ((6 1) (5 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-power-on 2) (ch-msg c "0")
+    (5 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "refuse")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0")))
+  (label 64)
+  (parent 63)
+  (realized)
+  (shape)
+  (maps ((0 1) ((n n) (v v) (k k) (aik aik) (esk esk))))
+  (origs (n (1 0)) (k (2 1)) (v (1 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (c chan))
+    (trace (recv "power on") (send c "0"))
+    (conf c)
+    (auth c))
+  (defrole tpm-extend
+    (vars (value current-value mesg) (c chan))
+    (trace (recv (cat "extend" value)) (recv c current-value)
+      (send c (hash current-value value)) (send "ext ok"))
+    (conf c)
+    (auth c))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (esk skey) (c chan))
+    (trace (recv (enc "extend" value esk)) (recv c current-value)
+      (send c (hash current-value value)) (send "ext ok"))
+    (non-orig esk)
+    (conf c)
+    (auth c))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (c chan) (aik akey))
+    (trace (recv (cat "quote" nonce)) (recv c current-value)
+      (send (enc "quote" current-value nonce aik)))
+    (non-orig aik)
+    (conf c)
+    (auth c))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcrval mesg) (esk skey))
+    (trace (recv (enc "create key" pcrval esk))
+      (send (enc "created" k pcrval aik)))
+    (non-orig esk aik (invk k))
+    (uniq-orig k))
+  (defrole tpm-decrypt
+    (vars (m pcrvals mesg) (k aik akey) (c chan))
+    (trace (recv (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcrvals aik)) (recv c pcrvals) (send m))
+    (non-orig aik)
+    (conf c)
+    (auth c))
+  (defrole alice
+    (vars (n v data) (esk skey) (k aik akey))
+    (trace (send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig esk aik)
+    (uniq-orig n v))
+  (defrule ordered-extends
+    (forall ((y z strd) (c chan))
+      (implies
+        (and (p "tpm-extend" y (idx 3)) (p "tpm-extend" z (idx 3))
+          (p "tpm-extend" "c" y c) (p "tpm-extend" "c" z c))
+        (or
+          (= y z)
+          (prec y (idx 2) z (idx 3))
+          (prec z (idx 2) y (idx 3))))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 65)
+  (unrealized (0 0) (1 0) (2 2))
+  (preskeleton)
+  (origs (v (2 3)) (n (2 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (precedes ((2 3) (0 0)) ((2 3) (1 0)))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 66)
+  (parent 65)
+  (unrealized (0 0) (2 2))
+  (origs (v (2 3)) (n (2 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk-0) (k k) (aik aik))
+  (precedes ((2 3) (0 0)) ((2 3) (1 0)) ((3 1) (2 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k (hash (hash "0" n) "obtain") aik) (2 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk-0))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 67)
+  (parent 66)
+  (unrealized (0 0) (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (1 0)) ((3 1) (2 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 4 2 alice 2)
+    (enc "create key" (hash (hash "0" n) "obtain") esk-0) (3 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 68)
+  (parent 67)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (pcrvals mesg) (n v data) (esk skey) (k aik aik-0 akey)
+    (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals pcrvals) (k k) (aik aik-0)
+    (c c))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)))
+  (non-orig esk aik aik-0 (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcrvals aik-0)) (recv c pcrvals) (send v)))
+  (label 69)
+  (parent 68)
+  (unrealized (0 0) (4 1) (4 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation encryption-test (displaced 5 3 tpm-create-key 2)
+    (enc "created" k pcrvals aik-0) (4 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v)))
+  (label 70)
+  (parent 69)
+  (unrealized (0 0) (4 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 2) (4 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend 3)
+    (ch-msg c (hash (hash "0" n) "obtain")) (4 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain"))))
+  (label 71)
+  (parent 70)
+  (unrealized (0 0) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (esk esk-0) (c c))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 2) (4 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c (hash (hash "0" n) "obtain")) (4 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (enc "extend" "obtain" esk-0)) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain"))))
+  (label 72)
+  (parent 70)
+  (unrealized (0 0) (5 0) (5 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk-0)
+    (c c))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c (hash "0" n)) (5 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk-0)) (recv c "0") (send c (hash "0" n))))
+  (label 73)
+  (parent 71)
+  (unrealized (0 0) (6 0) (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation encryption-test (displaced 7 2 alice 1)
+    (enc "extend" n esk-0) (6 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n))))
+  (label 74)
+  (parent 73)
+  (unrealized (0 0) (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-power-on 2) (ch-msg c "0")
+    (6 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0")))
+  (label 75)
+  (parent 74)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c c-0 chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c c-0)
+  (auth c c-0)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik) (0 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0"))
+    ((recv (cat "quote" (enc v k)))
+      (recv c-0 (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))))
+  (label 76)
+  (parent 75)
+  (unrealized (8 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c c-0 chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c-0))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c c-0)
+  (auth c c-0)
+  (operation channel-test (added-strand tpm-extend 3)
+    (ch-msg c-0 (hash (hash "0" n) "refuse")) (8 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0"))
+    ((recv (cat "quote" (enc v k)))
+      (recv c-0 (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c-0 (hash "0" n))
+      (send c-0 (hash (hash "0" n) "refuse"))))
+  (label 77)
+  (parent 76)
+  (unrealized (9 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey) (c c-0 chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c-0))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (esk esk-0) (c c-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (conf c c-0)
+  (auth c c-0)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c-0 (hash (hash "0" n) "refuse")) (8 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0"))
+    ((recv (cat "quote" (enc v k)))
+      (recv c-0 (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (enc "extend" "refuse" esk-0)) (recv c-0 (hash "0" n))
+      (send c-0 (hash (hash "0" n) "refuse"))))
+  (label 78)
+  (parent 76)
+  (unrealized (9 0) (9 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey) (c c-0 chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c-0))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk-0)
+    (c c-0))
+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (8 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1))
+    ((10 2) (9 1)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (conf c c-0)
+  (auth c c-0)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c-0 (hash "0" n)) (9 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0"))
+    ((recv (cat "quote" (enc v k)))
+      (recv c-0 (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c-0 (hash "0" n))
+      (send c-0 (hash (hash "0" n) "refuse")))
+    ((recv (enc "extend" n esk-0)) (recv c-0 "0")
+      (send c-0 (hash "0" n))))
+  (label 79)
+  (parent 77)
+  (unrealized (10 0) (10 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c c-0 chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c-0))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c-0))
+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (8 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1))
+    ((10 2) (9 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c c-0)
+  (auth c c-0)
+  (operation encryption-test (displaced 11 2 alice 1)
+    (enc "extend" n esk-0) (10 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0"))
+    ((recv (cat "quote" (enc v k)))
+      (recv c-0 (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c-0 (hash "0" n))
+      (send c-0 (hash (hash "0" n) "refuse")))
+    ((recv (enc "extend" n esk)) (recv c-0 "0")
+      (send c-0 (hash "0" n))))
+  (label 80)
+  (parent 79)
+  (unrealized (10 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c c-0 chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c-0))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c-0))
+  (defstrand tpm-power-on 2 (c c-0))
+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (8 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1))
+    ((10 2) (9 1)) ((11 1) (10 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c c-0)
+  (auth c c-0)
+  (operation channel-test (added-strand tpm-power-on 2) (ch-msg c-0 "0")
+    (10 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0"))
+    ((recv (cat "quote" (enc v k)))
+      (recv c-0 (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c-0 (hash "0" n))
+      (send c-0 (hash (hash "0" n) "refuse")))
+    ((recv (enc "extend" n esk)) (recv c-0 "0") (send c-0 (hash "0" n)))
+    ((recv "power on") (send c-0 "0")))
+  (label 81)
+  (parent 80)
+  (realized)
+  (shape)
+  (maps ((0 1 2) ((n n) (v v) (k k) (aik aik) (esk esk))))
+  (origs (n (2 0)) (k (3 1)) (v (2 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (c chan))
+    (trace (recv "power on") (send c "0"))
+    (conf c)
+    (auth c))
+  (defrole tpm-extend
+    (vars (value current-value mesg) (c chan))
+    (trace (recv (cat "extend" value)) (recv c current-value)
+      (send c (hash current-value value)) (send "ext ok"))
+    (conf c)
+    (auth c))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (esk skey) (c chan))
+    (trace (recv (enc "extend" value esk)) (recv c current-value)
+      (send c (hash current-value value)) (send "ext ok"))
+    (non-orig esk)
+    (conf c)
+    (auth c))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (c chan) (aik akey))
+    (trace (recv (cat "quote" nonce)) (recv c current-value)
+      (send (enc "quote" current-value nonce aik)))
+    (non-orig aik)
+    (conf c)
+    (auth c))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcrval mesg) (esk skey))
+    (trace (recv (enc "create key" pcrval esk))
+      (send (enc "created" k pcrval aik)))
+    (non-orig esk aik (invk k))
+    (uniq-orig k))
+  (defrole tpm-decrypt
+    (vars (m pcrvals mesg) (k aik akey) (c chan))
+    (trace (recv (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcrvals aik)) (recv c pcrvals) (send m))
+    (non-orig aik)
+    (conf c)
+    (auth c))
+  (defrole alice
+    (vars (n v data) (esk skey) (k aik akey))
+    (trace (send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig esk aik)
+    (uniq-orig n v))
+  (defrule ordered-extends
+    (forall ((y z strd) (c chan))
+      (implies
+        (and (p "tpm-extend" y (idx 3)) (p "tpm-extend" z (idx 3))
+          (p "tpm-extend" "c" y c) (p "tpm-extend" "c" z c))
+        (or
+          (= y z)
+          (prec y (idx 2) z (idx 3))
+          (prec z (idx 2) y (idx 3))))))
+  (defrule esk-same-as-chan
+    (forall ((y z strd) (esk skey) (c c-0 chan))
+      (implies
+        (and (p "tpm-extend-enc" y (idx 3))
+          (p "tpm-extend-enc" z (idx 3))
+          (p "tpm-extend-enc" "esk" y esk)
+          (p "tpm-extend-enc" "esk" z esk) (p "tpm-extend-enc" "c" y c)
+          (p "tpm-extend-enc" "c" z c-0))
+        (= c c-0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (non-orig esk aik)
+  (uniq-orig v n)
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 82)
+  (unrealized (0 0) (1 2))
+  (preskeleton)
+  (origs (v (1 3)) (n (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (precedes ((1 3) (0 0)))
+  (non-orig esk aik)
+  (uniq-orig v n)
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 83)
+  (parent 82)
+  (unrealized (1 2))
+  (origs (v (1 3)) (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk esk-0 skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk-0) (k k) (aik aik))
+  (precedes ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k (hash (hash "0" n) "obtain") aik) (1 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk-0))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 84)
+  (parent 83)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (precedes ((1 1) (2 0)) ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (displaced 3 1 alice 2)
+    (enc "create key" (hash (hash "0" n) "obtain") esk-0) (2 0))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 85)
+  (parent 84)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (pcrvals mesg) (v n data) (esk skey) (k aik aik-0 akey)
+    (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals pcrvals) (k k) (aik aik-0)
+    (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0)))
+  (non-orig esk aik aik-0 (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcrvals aik-0)) (recv c pcrvals) (send v)))
+  (label 86)
+  (parent 85)
+  (unrealized (3 1) (3 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey) (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0)))
+  (non-orig esk aik (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation encryption-test (displaced 4 2 tpm-create-key 2)
+    (enc "created" k pcrvals aik-0) (3 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v)))
+  (label 87)
+  (parent 86)
+  (unrealized (3 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey) (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 2) (3 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend 3)
+    (ch-msg c (hash (hash "0" n) "obtain")) (3 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain"))))
+  (label 88)
+  (parent 87)
+  (unrealized (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk esk-0 skey) (k aik akey) (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (esk esk-0) (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 2) (3 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c (hash (hash "0" n) "obtain")) (3 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (enc "extend" "obtain" esk-0)) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain"))))
+  (label 89)
+  (parent 87)
+  (unrealized (4 0) (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (v n data) (esk esk-0 skey) (k aik akey) (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk-0)
+    (c c))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c (hash "0" n)) (4 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk-0)) (recv c "0") (send c (hash "0" n))))
+  (label 90)
+  (parent 88)
+  (unrealized (5 0) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey) (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation encryption-test (displaced 6 1 alice 1)
+    (enc "extend" n esk-0) (5 0))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n))))
+  (label 91)
+  (parent 90)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey) (c chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)) ((6 1) (5 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig v n k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-power-on 2) (ch-msg c "0")
+    (5 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0")))
+  (label 92)
+  (parent 91)
+  (realized)
+  (shape)
+  (maps ((0 1) ((v v) (n n) (esk esk) (k k) (aik aik))))
+  (origs (n (1 0)) (k (2 1)) (v (1 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (c chan))
+    (trace (recv "power on") (send c "0"))
+    (conf c)
+    (auth c))
+  (defrole tpm-extend
+    (vars (value current-value mesg) (c chan))
+    (trace (recv (cat "extend" value)) (recv c current-value)
+      (send c (hash current-value value)) (send "ext ok"))
+    (conf c)
+    (auth c))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (esk skey) (c chan))
+    (trace (recv (enc "extend" value esk)) (recv c current-value)
+      (send c (hash current-value value)) (send "ext ok"))
+    (non-orig esk)
+    (conf c)
+    (auth c))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (c chan) (aik akey))
+    (trace (recv (cat "quote" nonce)) (recv c current-value)
+      (send (enc "quote" current-value nonce aik)))
+    (non-orig aik)
+    (conf c)
+    (auth c))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcrval mesg) (esk skey))
+    (trace (recv (enc "create key" pcrval esk))
+      (send (enc "created" k pcrval aik)))
+    (non-orig esk aik (invk k))
+    (uniq-orig k))
+  (defrole tpm-decrypt
+    (vars (m pcrvals mesg) (k aik akey) (c chan))
+    (trace (recv (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcrvals aik)) (recv c pcrvals) (send m))
+    (non-orig aik)
+    (conf c)
+    (auth c))
+  (defrole alice
+    (vars (n v data) (esk skey) (k aik akey))
+    (trace (send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig esk aik)
+    (uniq-orig n v))
+  (defrule ordered-extends
+    (forall ((y z strd) (c chan))
+      (implies
+        (and (p "tpm-extend" y (idx 3)) (p "tpm-extend" z (idx 3))
+          (p "tpm-extend" "c" y c) (p "tpm-extend" "c" z c))
+        (or
+          (= y z)
+          (prec y (idx 2) z (idx 3))
+          (prec z (idx 2) y (idx 3))))))
+  (defrule esk-same-as-chan
+    (forall ((y z strd) (esk skey) (c c-0 chan))
+      (implies
+        (and (p "tpm-extend-enc" y (idx 3))
+          (p "tpm-extend-enc" z (idx 3))
+          (p "tpm-extend-enc" "esk" y esk)
+          (p "tpm-extend-enc" "esk" z esk) (p "tpm-extend-enc" "c" y c)
+          (p "tpm-extend-enc" "c" z c-0))
+        (= c c-0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 93)
+  (unrealized (0 0) (1 2))
+  (preskeleton)
+  (origs (v (1 3)) (n (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (precedes ((1 3) (0 0)))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 94)
+  (parent 93)
+  (unrealized (0 0) (1 2))
+  (origs (v (1 3)) (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk-0) (k k) (aik aik))
+  (precedes ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k (hash (hash "0" n) "obtain") aik) (1 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk-0))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 95)
+  (parent 94)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (precedes ((1 1) (2 0)) ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 3 1 alice 2)
+    (enc "create key" (hash (hash "0" n) "obtain") esk-0) (2 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 96)
+  (parent 95)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik) (0 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))))
+  (label 97)
+  (parent 96)
+  (unrealized (3 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 2) (3 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend 3)
+    (ch-msg c (hash (hash "0" n) "refuse")) (3 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "refuse"))))
+  (label 98)
+  (parent 97)
+  (unrealized (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (esk esk-0) (c c))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 2) (3 1)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c (hash (hash "0" n) "refuse")) (3 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (enc "extend" "refuse" esk-0)) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "refuse"))))
+  (label 99)
+  (parent 97)
+  (unrealized (4 0) (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk-0)
+    (c c))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c (hash "0" n)) (4 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "refuse")))
+    ((recv (enc "extend" n esk-0)) (recv c "0") (send c (hash "0" n))))
+  (label 100)
+  (parent 98)
+  (unrealized (5 0) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation encryption-test (displaced 6 1 alice 1)
+    (enc "extend" n esk-0) (5 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "refuse")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n))))
+  (label 101)
+  (parent 100)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)) ((6 1) (5 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-power-on 2) (ch-msg c "0")
+    (5 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv c (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "refuse")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0")))
+  (label 102)
+  (parent 101)
+  (realized)
+  (shape)
+  (maps ((0 1) ((n n) (v v) (k k) (aik aik) (esk esk))))
+  (origs (n (1 0)) (k (2 1)) (v (1 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (c chan))
+    (trace (recv "power on") (send c "0"))
+    (conf c)
+    (auth c))
+  (defrole tpm-extend
+    (vars (value current-value mesg) (c chan))
+    (trace (recv (cat "extend" value)) (recv c current-value)
+      (send c (hash current-value value)) (send "ext ok"))
+    (conf c)
+    (auth c))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (esk skey) (c chan))
+    (trace (recv (enc "extend" value esk)) (recv c current-value)
+      (send c (hash current-value value)) (send "ext ok"))
+    (non-orig esk)
+    (conf c)
+    (auth c))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (c chan) (aik akey))
+    (trace (recv (cat "quote" nonce)) (recv c current-value)
+      (send (enc "quote" current-value nonce aik)))
+    (non-orig aik)
+    (conf c)
+    (auth c))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcrval mesg) (esk skey))
+    (trace (recv (enc "create key" pcrval esk))
+      (send (enc "created" k pcrval aik)))
+    (non-orig esk aik (invk k))
+    (uniq-orig k))
+  (defrole tpm-decrypt
+    (vars (m pcrvals mesg) (k aik akey) (c chan))
+    (trace (recv (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcrvals aik)) (recv c pcrvals) (send m))
+    (non-orig aik)
+    (conf c)
+    (auth c))
+  (defrole alice
+    (vars (n v data) (esk skey) (k aik akey))
+    (trace (send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig esk aik)
+    (uniq-orig n v))
+  (defrule ordered-extends
+    (forall ((y z strd) (c chan))
+      (implies
+        (and (p "tpm-extend" y (idx 3)) (p "tpm-extend" z (idx 3))
+          (p "tpm-extend" "c" y c) (p "tpm-extend" "c" z c))
+        (or
+          (= y z)
+          (prec y (idx 2) z (idx 3))
+          (prec z (idx 2) y (idx 3))))))
+  (defrule esk-same-as-chan
+    (forall ((y z strd) (esk skey) (c c-0 chan))
+      (implies
+        (and (p "tpm-extend-enc" y (idx 3))
+          (p "tpm-extend-enc" z (idx 3))
+          (p "tpm-extend-enc" "esk" y esk)
+          (p "tpm-extend-enc" "esk" z esk) (p "tpm-extend-enc" "c" y c)
+          (p "tpm-extend-enc" "c" z c-0))
+        (= c c-0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 103)
+  (unrealized (0 0) (1 0) (2 2))
+  (preskeleton)
+  (origs (v (2 3)) (n (2 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (precedes ((2 3) (0 0)) ((2 3) (1 0)))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 104)
+  (parent 103)
+  (unrealized (0 0) (2 2))
+  (origs (v (2 3)) (n (2 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk-0) (k k) (aik aik))
+  (precedes ((2 3) (0 0)) ((2 3) (1 0)) ((3 1) (2 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k (hash (hash "0" n) "obtain") aik) (2 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk-0))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 105)
+  (parent 104)
+  (unrealized (0 0) (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (1 0)) ((3 1) (2 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 4 2 alice 2)
+    (enc "create key" (hash (hash "0" n) "obtain") esk-0) (3 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 106)
+  (parent 105)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (pcrvals mesg) (n v data) (esk skey) (k aik aik-0 akey)
+    (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals pcrvals) (k k) (aik aik-0)
+    (c c))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)))
+  (non-orig esk aik aik-0 (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcrvals aik-0)) (recv c pcrvals) (send v)))
+  (label 107)
+  (parent 106)
+  (unrealized (0 0) (4 1) (4 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation encryption-test (displaced 5 3 tpm-create-key 2)
+    (enc "created" k pcrvals aik-0) (4 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v)))
+  (label 108)
+  (parent 107)
+  (unrealized (0 0) (4 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 2) (4 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend 3)
+    (ch-msg c (hash (hash "0" n) "obtain")) (4 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain"))))
+  (label 109)
+  (parent 108)
+  (unrealized (0 0) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (esk esk-0) (c c))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 2) (4 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c (hash (hash "0" n) "obtain")) (4 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (enc "extend" "obtain" esk-0)) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain"))))
+  (label 110)
+  (parent 108)
+  (unrealized (0 0) (5 0) (5 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk-0)
+    (c c))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c (hash "0" n)) (5 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk-0)) (recv c "0") (send c (hash "0" n))))
+  (label 111)
+  (parent 109)
+  (unrealized (0 0) (6 0) (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation encryption-test (displaced 7 2 alice 1)
+    (enc "extend" n esk-0) (6 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n))))
+  (label 112)
+  (parent 111)
+  (unrealized (0 0) (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c)
+  (auth c)
+  (operation channel-test (added-strand tpm-power-on 2) (ch-msg c "0")
+    (6 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0")))
+  (label 113)
+  (parent 112)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c c-0 chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c c-0)
+  (auth c c-0)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik) (0 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0"))
+    ((recv (cat "quote" (enc v k)))
+      (recv c-0 (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))))
+  (label 114)
+  (parent 113)
+  (unrealized (8 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey) (c c-0 chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c-0))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (conf c c-0)
+  (auth c c-0)
+  (operation channel-test (added-strand tpm-extend 3)
+    (ch-msg c-0 (hash (hash "0" n) "refuse")) (8 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0"))
+    ((recv (cat "quote" (enc v k)))
+      (recv c-0 (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c-0 (hash "0" n))
+      (send c-0 (hash (hash "0" n) "refuse"))))
+  (label 115)
+  (parent 114)
+  (unrealized (9 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey) (c c-0 chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c-0))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (esk esk-0) (c c-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (conf c c-0)
+  (auth c c-0)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c-0 (hash (hash "0" n) "refuse")) (8 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0"))
+    ((recv (cat "quote" (enc v k)))
+      (recv c-0 (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (enc "extend" "refuse" esk-0)) (recv c-0 (hash "0" n))
+      (send c-0 (hash (hash "0" n) "refuse"))))
+  (label 116)
+  (parent 114)
+  (unrealized (9 0) (9 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey) (c c-0 chan))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (k k) (aik aik) (c c))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (c c))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk)
+    (c c))
+  (defstrand tpm-power-on 2 (c c))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (aik aik) (c c-0))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (c c-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0") (esk esk-0)
+    (c c-0))
+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (8 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1))
+    ((10 2) (9 1)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (conf c c-0)
+  (auth c c-0)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg c-0 (hash "0" n)) (9 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv c (hash (hash "0" n) "obtain")) (send v))
+    ((recv (cat "extend" "obtain")) (recv c (hash "0" n))
+      (send c (hash (hash "0" n) "obtain")))
+    ((recv (enc "extend" n esk)) (recv c "0") (send c (hash "0" n)))
+    ((recv "power on") (send c "0"))
+    ((recv (cat "quote" (enc v k)))
+      (recv c-0 (hash (hash "0" n) "refuse"))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse")) (recv c-0 (hash "0" n))
+      (send c-0 (hash (hash "0" n) "refuse")))
+    ((recv (enc "extend" n esk-0)) (recv c-0 "0")
+      (send c-0 (hash "0" n))))
+  (label 117)
+  (parent 115)
+  (unrealized (10 0) (10 1))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/tst/chan-perrig-song.scm b/tst/chan-perrig-song.scm
new file mode 100644
--- /dev/null
+++ b/tst/chan-perrig-song.scm
@@ -0,0 +1,48 @@
+(herald perrig-song)
+
+(defprotocol perrig-song basic
+  (defrole init
+    (vars (na nb text) (a b name) (c chan))
+    (trace
+     (send na)
+     (recv c (cat na nb a b))
+     (send nb)))
+
+  (defrole resp
+    (vars (na nb text) (a b name) (c chan))
+    (trace
+     (recv na)
+     (send c (cat na nb a b))
+     (recv nb))))
+
+;;; this query should bring in a matching
+;;; run of resp of height 2.
+
+(defskeleton perrig-song
+  (vars (na nb text) (a b name) (c chan))
+  (defstrand init 2 (na na) (c c))
+  (uniq-orig na)
+  (auth c))
+
+;;; this query should bring in a matching
+;;; run of init of height 3.
+
+(defskeleton perrig-song
+  (vars (na nb text) (a b name) (c chan))
+  (defstrand resp 3 (nb nb) (c c))
+  (uniq-orig nb)
+  (conf c))
+
+;;; these two should be realized as-is.
+
+(defskeleton perrig-song
+  (vars (na nb text) (a b name) (c chan))
+  (defstrand init 2 (na na) (c c))
+  (uniq-orig na)
+  (conf c))
+
+(defskeleton perrig-song
+  (vars (na nb text) (a b name) (c chan))
+  (defstrand resp 3 (nb nb) (c c))
+  (uniq-orig nb)
+  (auth c))
diff --git a/tst/chan-perrig-song.tst b/tst/chan-perrig-song.tst
new file mode 100644
--- /dev/null
+++ b/tst/chan-perrig-song.tst
@@ -0,0 +1,150 @@
+(herald perrig-song)
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/chan-perrig-song.scm")
+
+(defprotocol perrig-song basic
+  (defrole init
+    (vars (na nb text) (a b name) (c chan))
+    (trace (send na) (recv c (cat na nb a b)) (send nb)))
+  (defrole resp
+    (vars (na nb text) (a b name) (c chan))
+    (trace (recv na) (send c (cat na nb a b)) (recv nb)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton perrig-song
+  (vars (na nb text) (a b name) (c chan))
+  (defstrand init 2 (na na) (nb nb) (a a) (b b) (c c))
+  (uniq-orig na)
+  (auth c)
+  (traces ((send na) (recv c (cat na nb a b))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (na (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton perrig-song
+  (vars (na nb text) (a b name) (c chan))
+  (defstrand init 2 (na na) (nb nb) (a a) (b b) (c c))
+  (defstrand resp 2 (na na) (nb nb) (a a) (b b) (c c))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig na)
+  (auth c)
+  (operation channel-test (added-strand resp 2)
+    (ch-msg c (cat na nb a b)) (0 1))
+  (traces ((send na) (recv c (cat na nb a b)))
+    ((recv na) (send c (cat na nb a b))))
+  (label 1)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps ((0) ((na na) (c c) (nb nb) (a a) (b b))))
+  (origs (na (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol perrig-song basic
+  (defrole init
+    (vars (na nb text) (a b name) (c chan))
+    (trace (send na) (recv c (cat na nb a b)) (send nb)))
+  (defrole resp
+    (vars (na nb text) (a b name) (c chan))
+    (trace (recv na) (send c (cat na nb a b)) (recv nb)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton perrig-song
+  (vars (nb na text) (a b name) (c chan))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (c c))
+  (uniq-orig nb)
+  (conf c)
+  (traces ((recv na) (send c (cat na nb a b)) (recv nb)))
+  (label 2)
+  (unrealized (0 2))
+  (origs (nb (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton perrig-song
+  (vars (nb na text) (a b name) (c chan))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (c c))
+  (defstrand init 3 (na na) (nb nb) (a a) (b b) (c c))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (uniq-orig nb)
+  (conf c)
+  (operation nonce-test (added-strand init 3) nb (0 2)
+    (ch-msg c (cat na nb a b)))
+  (traces ((recv na) (send c (cat na nb a b)) (recv nb))
+    ((send na) (recv c (cat na nb a b)) (send nb)))
+  (label 3)
+  (parent 2)
+  (realized)
+  (shape)
+  (maps ((0) ((nb nb) (c c) (na na) (a a) (b b))))
+  (origs (nb (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol perrig-song basic
+  (defrole init
+    (vars (na nb text) (a b name) (c chan))
+    (trace (send na) (recv c (cat na nb a b)) (send nb)))
+  (defrole resp
+    (vars (na nb text) (a b name) (c chan))
+    (trace (recv na) (send c (cat na nb a b)) (recv nb)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton perrig-song
+  (vars (na nb text) (a b name) (c chan))
+  (defstrand init 2 (na na) (nb nb) (a a) (b b) (c c))
+  (uniq-orig na)
+  (conf c)
+  (traces ((send na) (recv c (cat na nb a b))))
+  (label 4)
+  (realized)
+  (shape)
+  (maps ((0) ((na na) (c c) (nb nb) (a a) (b b))))
+  (origs (na (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol perrig-song basic
+  (defrole init
+    (vars (na nb text) (a b name) (c chan))
+    (trace (send na) (recv c (cat na nb a b)) (send nb)))
+  (defrole resp
+    (vars (na nb text) (a b name) (c chan))
+    (trace (recv na) (send c (cat na nb a b)) (recv nb)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton perrig-song
+  (vars (nb na text) (a b name) (c chan))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (c c))
+  (uniq-orig nb)
+  (auth c)
+  (traces ((recv na) (send c (cat na nb a b)) (recv nb)))
+  (label 5)
+  (realized)
+  (shape)
+  (maps ((0) ((nb nb) (c c) (na na) (a a) (b b))))
+  (origs (nb (0 1))))
+
+(comment "Nothing left to do")
diff --git a/tst/chan-unilateral.scm b/tst/chan-unilateral.scm
new file mode 100644
--- /dev/null
+++ b/tst/chan-unilateral.scm
@@ -0,0 +1,61 @@
+(herald chan-unilateral)
+
+;; Unilateral authentication using channels with differing assumptions.
+
+(defprotocol unilateral basic
+  (defrole init
+     (vars (n text) (ch chan))
+     (trace
+      (send ch n)
+      (recv n))
+     (uniq-orig n))
+  (defrole resp
+     (vars (n text) (ch chan))
+     (trace
+      (recv ch n)			; bogus version was:  (cat ch n)
+      (send n)))
+  (comment "Unilateral protocol using channels with differing assumptions"))
+
+(defskeleton unilateral
+   (vars (ch chan))
+   (defstrand init 2 (ch ch)))
+
+(defskeleton unilateral
+   (vars (ch chan))
+   (defstrand init 2 (ch ch))
+   (auth ch))
+
+(defskeleton unilateral
+   (vars (ch chan))
+   (defstrand init 2 (ch ch))
+   (conf ch))
+
+(defskeleton unilateral
+   (vars (ch chan))
+   (defstrand init 2 (ch ch))
+   (auth ch)
+   (conf ch))
+
+(defskeleton unilateral
+  (vars (n text) (ch chan))
+  (defstrand resp 2 (n n) (ch ch))
+  (pen-non-orig n))
+
+(defskeleton unilateral
+  (vars (n text) (ch chan))
+  (defstrand resp 2 (n n) (ch ch))
+  (pen-non-orig n)
+  (auth ch))
+
+(defskeleton unilateral
+  (vars (n text) (ch chan))
+  (defstrand resp 2 (n n) (ch ch))
+  (pen-non-orig n)
+  (conf ch))
+
+(defskeleton unilateral
+  (vars (n text) (ch chan))
+  (defstrand resp 2 (n n) (ch ch))
+  (pen-non-orig n)
+  (auth ch)
+  (conf ch))
diff --git a/tst/chan-unilateral.tst b/tst/chan-unilateral.tst
new file mode 100644
--- /dev/null
+++ b/tst/chan-unilateral.tst
@@ -0,0 +1,331 @@
+(herald chan-unilateral)
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/chan-unilateral.scm")
+
+(defprotocol unilateral basic
+  (defrole init
+    (vars (n text) (ch chan))
+    (trace (send ch n) (recv n))
+    (uniq-orig n))
+  (defrole resp (vars (n text) (ch chan)) (trace (recv ch n) (send n)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment
+    "Unilateral protocol using channels with differing assumptions"))
+
+(defskeleton unilateral
+  (vars (n text) (ch chan))
+  (defstrand init 2 (n n) (ch ch))
+  (uniq-orig n)
+  (traces ((send ch n) (recv n)))
+  (label 0)
+  (realized)
+  (shape)
+  (maps ((0) ((ch ch) (n n))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol unilateral basic
+  (defrole init
+    (vars (n text) (ch chan))
+    (trace (send ch n) (recv n))
+    (uniq-orig n))
+  (defrole resp (vars (n text) (ch chan)) (trace (recv ch n) (send n)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment
+    "Unilateral protocol using channels with differing assumptions"))
+
+(defskeleton unilateral
+  (vars (n text) (ch chan))
+  (defstrand init 2 (n n) (ch ch))
+  (uniq-orig n)
+  (auth ch)
+  (traces ((send ch n) (recv n)))
+  (label 1)
+  (realized)
+  (shape)
+  (maps ((0) ((ch ch) (n n))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol unilateral basic
+  (defrole init
+    (vars (n text) (ch chan))
+    (trace (send ch n) (recv n))
+    (uniq-orig n))
+  (defrole resp (vars (n text) (ch chan)) (trace (recv ch n) (send n)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment
+    "Unilateral protocol using channels with differing assumptions"))
+
+(defskeleton unilateral
+  (vars (n text) (ch chan))
+  (defstrand init 2 (n n) (ch ch))
+  (uniq-orig n)
+  (conf ch)
+  (traces ((send ch n) (recv n)))
+  (label 2)
+  (unrealized (0 1))
+  (origs (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton unilateral
+  (vars (n text) (ch chan))
+  (defstrand init 2 (n n) (ch ch))
+  (defstrand resp 2 (n n) (ch ch))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig n)
+  (conf ch)
+  (operation nonce-test (added-strand resp 2) n (0 1) (ch-msg ch n))
+  (traces ((send ch n) (recv n)) ((recv ch n) (send n)))
+  (label 3)
+  (parent 2)
+  (realized)
+  (shape)
+  (maps ((0) ((ch ch) (n n))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol unilateral basic
+  (defrole init
+    (vars (n text) (ch chan))
+    (trace (send ch n) (recv n))
+    (uniq-orig n))
+  (defrole resp (vars (n text) (ch chan)) (trace (recv ch n) (send n)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment
+    "Unilateral protocol using channels with differing assumptions"))
+
+(defskeleton unilateral
+  (vars (n text) (ch chan))
+  (defstrand init 2 (n n) (ch ch))
+  (uniq-orig n)
+  (conf ch)
+  (auth ch)
+  (traces ((send ch n) (recv n)))
+  (label 4)
+  (unrealized (0 1))
+  (origs (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton unilateral
+  (vars (n text) (ch chan))
+  (defstrand init 2 (n n) (ch ch))
+  (defstrand resp 2 (n n) (ch ch))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig n)
+  (conf ch)
+  (auth ch)
+  (operation nonce-test (added-strand resp 2) n (0 1) (ch-msg ch n))
+  (traces ((send ch n) (recv n)) ((recv ch n) (send n)))
+  (label 5)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((ch ch) (n n))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol unilateral basic
+  (defrole init
+    (vars (n text) (ch chan))
+    (trace (send ch n) (recv n))
+    (uniq-orig n))
+  (defrole resp (vars (n text) (ch chan)) (trace (recv ch n) (send n)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment
+    "Unilateral protocol using channels with differing assumptions"))
+
+(defskeleton unilateral
+  (vars (n text) (ch chan))
+  (defstrand resp 2 (n n) (ch ch))
+  (pen-non-orig n)
+  (traces ((recv ch n) (send n)))
+  (label 6)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton unilateral
+  (vars (n text) (ch ch-0 chan))
+  (defstrand resp 2 (n n) (ch ch))
+  (defstrand init 1 (n n) (ch ch-0))
+  (precedes ((1 0) (0 0)))
+  (pen-non-orig n)
+  (uniq-orig n)
+  (operation nonce-test (added-strand init 1) n (0 0))
+  (traces ((recv ch n) (send n)) ((send ch-0 n)))
+  (label 7)
+  (parent 6)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (ch ch))))
+  (origs (n (1 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol unilateral basic
+  (defrole init
+    (vars (n text) (ch chan))
+    (trace (send ch n) (recv n))
+    (uniq-orig n))
+  (defrole resp (vars (n text) (ch chan)) (trace (recv ch n) (send n)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment
+    "Unilateral protocol using channels with differing assumptions"))
+
+(defskeleton unilateral
+  (vars (n text) (ch chan))
+  (defstrand resp 2 (n n) (ch ch))
+  (pen-non-orig n)
+  (auth ch)
+  (traces ((recv ch n) (send n)))
+  (label 8)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton unilateral
+  (vars (n text) (ch chan))
+  (defstrand resp 2 (n n) (ch ch))
+  (defstrand init 1 (n n) (ch ch))
+  (precedes ((1 0) (0 0)))
+  (pen-non-orig n)
+  (uniq-orig n)
+  (auth ch)
+  (operation channel-test (added-strand init 1) (ch-msg ch n) (0 0))
+  (traces ((recv ch n) (send n)) ((send ch n)))
+  (label 9)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (ch ch))))
+  (origs (n (1 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol unilateral basic
+  (defrole init
+    (vars (n text) (ch chan))
+    (trace (send ch n) (recv n))
+    (uniq-orig n))
+  (defrole resp (vars (n text) (ch chan)) (trace (recv ch n) (send n)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment
+    "Unilateral protocol using channels with differing assumptions"))
+
+(defskeleton unilateral
+  (vars (n text) (ch chan))
+  (defstrand resp 2 (n n) (ch ch))
+  (pen-non-orig n)
+  (conf ch)
+  (traces ((recv ch n) (send n)))
+  (label 10)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton unilateral
+  (vars (n text) (ch ch-0 chan))
+  (defstrand resp 2 (n n) (ch ch))
+  (defstrand init 1 (n n) (ch ch-0))
+  (precedes ((1 0) (0 0)))
+  (pen-non-orig n)
+  (uniq-orig n)
+  (conf ch)
+  (operation nonce-test (added-strand init 1) n (0 0))
+  (traces ((recv ch n) (send n)) ((send ch-0 n)))
+  (label 11)
+  (parent 10)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (ch ch))))
+  (origs (n (1 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol unilateral basic
+  (defrole init
+    (vars (n text) (ch chan))
+    (trace (send ch n) (recv n))
+    (uniq-orig n))
+  (defrole resp (vars (n text) (ch chan)) (trace (recv ch n) (send n)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment
+    "Unilateral protocol using channels with differing assumptions"))
+
+(defskeleton unilateral
+  (vars (n text) (ch chan))
+  (defstrand resp 2 (n n) (ch ch))
+  (pen-non-orig n)
+  (conf ch)
+  (auth ch)
+  (traces ((recv ch n) (send n)))
+  (label 12)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton unilateral
+  (vars (n text) (ch chan))
+  (defstrand resp 2 (n n) (ch ch))
+  (defstrand init 1 (n n) (ch ch))
+  (precedes ((1 0) (0 0)))
+  (pen-non-orig n)
+  (uniq-orig n)
+  (conf ch)
+  (auth ch)
+  (operation channel-test (added-strand init 1) (ch-msg ch n) (0 0))
+  (traces ((recv ch n) (send n)) ((send ch n)))
+  (label 13)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (ch ch))))
+  (origs (n (1 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/chan-yahalom-role-decl.scm b/tst/chan-yahalom-role-decl.scm
new file mode 100644
--- /dev/null
+++ b/tst/chan-yahalom-role-decl.scm
@@ -0,0 +1,78 @@
+(herald "Yahalom Protocol Without Forwarding" (bound 15))
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b c name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a))
+	   (recv ch3 (cat a b k n-a n-b))
+	   (send (enc n-b k)))
+    (auth ch3))
+  (defrole resp
+    (vars (b a c name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a))
+	   (send ch1 (cat a b n-a n-b))
+	   (recv ch2 (cat a b k))
+	   (recv (enc n-b k)))
+    (auth ch2))
+  (defrole serv
+    (vars (c a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b))
+	   (send ch3 (cat a b k n-a n-b))
+	   (send ch2 (cat a b k)))
+    (conf ch3 ch2)
+    (uniq-orig k)))
+
+;;; How much do we know assuming that the resp had a run, which
+;;; because of the role declaration is necessarily using an
+;;; authenticated channel ch2?  We also assume the responder's nonce
+;;; is freshly chosen.
+
+(defskeleton yahalom
+  (vars (a b c name) (n-b text) (ch1 ch2 chan))
+  (defstrand resp 4 (n-b n-b))
+  (uniq-orig n-b))
+
+(defskeleton yahalom
+  (vars (a b c name) (k skey) (n-b text) (ch1 ch2 chan))
+  (defstrand resp 4 (k k) (n-b n-b))
+  (deflistener k)
+  (uniq-orig n-b))
+
+;;; Let's turn now to the initiator's point of view:
+
+(defskeleton yahalom
+  (vars (a b c name) (n-a text) (k skey) (ch3 chan))
+  (defstrand init 3 (n-a n-a))
+  (uniq-orig n-a))
+
+(defskeleton yahalom
+  (vars (a b c name) (n-a text) (k skey) (ch3 chan))
+  (defstrand init 3 (k k))
+  (deflistener k))
+
+(defskeleton yahalom
+  (vars (a b c name) (n-a text) (k skey) (ch3 chan))
+  (defstrand init 3 (k k) (n-a n-a))
+  (defstrand resp 3 (k k))
+  (uniq-orig n-a))
+
+(defskeleton yahalom
+  (vars (a b c name) (n-a text) (k skey) (ch3 chan))
+  (defstrand init 3 (k k) (n-a n-a))
+  (defstrand resp 4 (k k))
+  (uniq-orig n-a))
+
+;;; Finally, the server knows only that the responder has requested a
+;;; session key.
+
+(defskeleton yahalom
+  (vars (c a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+  (defstrand serv 3))
+
+;;; However, the server can be sure that the session key will not be
+;;; disclosed.
+
+(defskeleton yahalom
+  (vars (c a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k))
+  (deflistener k))
diff --git a/tst/chan-yahalom-role-decl.tst b/tst/chan-yahalom-role-decl.tst
new file mode 100644
--- /dev/null
+++ b/tst/chan-yahalom-role-decl.tst
@@ -0,0 +1,878 @@
+(herald "Yahalom Protocol Without Forwarding" (bound 15))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/chan-yahalom-role-decl.scm")
+(comment "Strand count bounded at 15")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    (auth ch3))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    (auth ch2))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k)
+    (conf ch2 ch3))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a text) (b a name) (ch1 ch2 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (uniq-orig n-b)
+  (auth ch2)
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))))
+  (label 0)
+  (unrealized (0 2))
+  (origs (n-b (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (b a name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (precedes ((1 2) (0 2)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation channel-test (added-strand serv 3) (ch-msg ch2 (cat a b k))
+    (0 2))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 n-a-1 text) (b a a-0 b-0 name)
+    (ch1 ch2 ch1-0 ch3 ch3-0 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (defstrand init 3 (k k) (n-a n-a-1) (n-b n-b) (a a-0) (b b-0)
+    (ch3 ch3-0))
+  (precedes ((0 1) (2 1)) ((1 1) (2 1)) ((1 2) (0 2)) ((2 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch3-0)
+  (operation encryption-test (added-strand init 3) (enc n-b k) (0 3))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((send (cat a-0 n-a-1)) (recv ch3-0 (cat a-0 b-0 k n-a-1 n-b))
+      (send (enc n-b k))))
+  (label 2)
+  (parent 1)
+  (unrealized (2 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (b a name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((1 1) (2 0)) ((1 2) (0 2)) ((2 1) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation encryption-test (added-listener k) (enc n-b k) (0 3))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv k) (send k)))
+  (label 3)
+  (parent 1)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-a-0 n-b text) (b a name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b) (a a) (b b) (ch1 ch1-0)
+    (ch2 ch2) (ch3 ch3))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((1 2) (0 2)) ((2 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch3)
+  (operation channel-test (displaced 3 1 serv 2)
+    (ch-msg ch3-0 (cat a-0 b-0 k n-a-1 n-b-0)) (2 1))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b)) (send ch3 (cat a b k n-a-0 n-b))
+      (send ch2 (cat a b k)))
+    ((send (cat a n-a-0)) (recv ch3 (cat a b k n-a-0 n-b))
+      (send (enc n-b k))))
+  (label 4)
+  (parent 2)
+  (realized)
+  (shape)
+  (maps
+    ((0) ((n-b n-b) (b b) (a a) (n-a n-a) (k k) (ch1 ch1) (ch2 ch2))))
+  (origs (k (1 1)) (n-b (0 1))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (b a name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((1 2) (0 2)) ((1 2) (2 0)) ((2 1) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation nonce-test (displaced 3 1 serv 3) k (2 0)
+    (ch-msg ch3 (cat a b k n-a-0 n-b-0)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv k) (send k)))
+  (label 5)
+  (parent 3)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    (auth ch3))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    (auth ch2))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k)
+    (conf ch2 ch3))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a text) (b a name) (ch1 ch2 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (deflistener k)
+  (uniq-orig n-b)
+  (auth ch2)
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))) ((recv k) (send k)))
+  (label 6)
+  (unrealized (0 2))
+  (origs (n-b (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (b a name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (deflistener k)
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (precedes ((2 1) (1 0)) ((2 2) (0 2)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation channel-test (added-strand serv 3) (ch-msg ch2 (cat a b k))
+    (0 2))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))) ((recv k) (send k))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k))))
+  (label 7)
+  (parent 6)
+  (unrealized (0 3) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (b a name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (deflistener k)
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (precedes ((2 2) (0 2)) ((2 2) (1 0)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation nonce-test (displaced 3 2 serv 3) k (1 0)
+    (ch-msg ch3 (cat a b k n-a-0 n-b-0)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))) ((recv k) (send k))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k))))
+  (label 8)
+  (parent 7)
+  (unrealized (0 3) (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    (auth ch3))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    (auth ch2))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k)
+    (conf ch2 ch3))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (uniq-orig n-a)
+  (auth ch3)
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (label 9)
+  (unrealized (0 1))
+  (origs (n-a (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 ch1 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch3 ch3))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig k n-a)
+  (conf ch3)
+  (auth ch3)
+  (operation channel-test (added-strand serv 2)
+    (ch-msg ch3 (cat a b k n-a n-b)) (0 1))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))))
+  (label 10)
+  (parent 9)
+  (realized)
+  (shape)
+  (maps ((0) ((n-a n-a) (a a) (b b) (n-b n-b) (k k) (ch3 ch3))))
+  (origs (k (1 1)) (n-a (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    (auth ch3))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    (auth ch2))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k)
+    (conf ch2 ch3))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (deflistener k)
+  (auth ch3)
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))) ((recv k) (send k)))
+  (label 11)
+  (unrealized (0 1))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 ch1 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (deflistener k)
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch3 ch3))
+  (precedes ((2 1) (0 1)) ((2 1) (1 0)))
+  (uniq-orig k)
+  (conf ch3)
+  (auth ch3)
+  (operation channel-test (added-strand serv 2)
+    (ch-msg ch3 (cat a b k n-a n-b)) (0 1))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))) ((recv k) (send k))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))))
+  (label 12)
+  (parent 11)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 ch1 ch2 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (deflistener k)
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (precedes ((2 1) (0 1)) ((2 2) (1 0)))
+  (uniq-orig k)
+  (conf ch3 ch2)
+  (auth ch3)
+  (operation nonce-test (displaced 2 3 serv 3) k (1 0)
+    (ch-msg ch3 (cat a b k n-a n-b)))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))) ((recv k) (send k))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))))
+  (label 13)
+  (parent 12)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    (auth ch3))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    (auth ch2))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k)
+    (conf ch2 ch3))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 text) (a b b-0 a-0 name)
+    (ch3 ch1 ch2 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand resp 3 (k k) (n-a n-a-0) (n-b n-b-0) (b b-0) (a a-0)
+    (ch1 ch1) (ch2 ch2))
+  (uniq-orig n-a)
+  (auth ch3 ch2)
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv (cat a-0 n-a-0)) (send ch1 (cat a-0 b-0 n-a-0 n-b-0))
+      (recv ch2 (cat a-0 b-0 k))))
+  (label 14)
+  (unrealized (0 1) (1 2))
+  (origs (n-a (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 n-a-1 n-b-1 text)
+    (a b b-0 a-0 name) (ch3 ch1 ch2 ch1-0 ch3-0 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand resp 3 (k k) (n-a n-a-0) (n-b n-b-0) (b b-0) (a a-0)
+    (ch1 ch1) (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-1) (n-b n-b-1) (a a-0) (b b-0)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3-0))
+  (precedes ((2 1) (0 1)) ((2 2) (1 2)))
+  (uniq-orig k n-a)
+  (conf ch2 ch3-0)
+  (auth ch3 ch2)
+  (operation channel-test (added-strand serv 3)
+    (ch-msg ch2 (cat a-0 b-0 k)) (1 2))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv (cat a-0 n-a-0)) (send ch1 (cat a-0 b-0 n-a-0 n-b-0))
+      (recv ch2 (cat a-0 b-0 k)))
+    ((recv ch1-0 (cat a-0 b-0 n-a-1 n-b-1))
+      (send ch3-0 (cat a-0 b-0 k n-a-1 n-b-1))
+      (send ch2 (cat a-0 b-0 k))))
+  (label 15)
+  (parent 14)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 text) (b a name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b) (ch3 ch3))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (precedes ((0 0) (2 0)) ((2 1) (0 1)) ((2 2) (1 2)))
+  (uniq-orig k n-a-0)
+  (conf ch2 ch3)
+  (auth ch2 ch3)
+  (operation channel-test (displaced 3 2 serv 2)
+    (ch-msg ch3-0 (cat a-0 b-0 k n-a-1 n-b-1)) (0 1))
+  (traces
+    ((send (cat a n-a-0)) (recv ch3 (cat a b k n-a-0 n-b-0))
+      (send (enc n-b-0 k)))
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k))))
+  (label 16)
+  (parent 15)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((n-a n-a-0) (k k) (a a) (b b) (n-b n-b-0) (ch3 ch3) (b-0 b)
+        (a-0 a) (n-a-0 n-a) (n-b-0 n-b) (ch1 ch1) (ch2 ch2))))
+  (origs (k (2 1)) (n-a-0 (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    (auth ch3))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    (auth ch2))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k)
+    (conf ch2 ch3))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 text) (a b b-0 a-0 name)
+    (ch3 ch1 ch2 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand resp 4 (k k) (n-a n-a-0) (n-b n-b-0) (b b-0) (a a-0)
+    (ch1 ch1) (ch2 ch2))
+  (uniq-orig n-a)
+  (auth ch3 ch2)
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv (cat a-0 n-a-0)) (send ch1 (cat a-0 b-0 n-a-0 n-b-0))
+      (recv ch2 (cat a-0 b-0 k)) (recv (enc n-b-0 k))))
+  (label 17)
+  (unrealized (0 1) (1 2))
+  (origs (n-a (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 n-a-1 n-b-1 text)
+    (a b b-0 a-0 name) (ch3 ch1 ch2 ch1-0 ch3-0 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand resp 4 (k k) (n-a n-a-0) (n-b n-b-0) (b b-0) (a a-0)
+    (ch1 ch1) (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-1) (n-b n-b-1) (a a-0) (b b-0)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3-0))
+  (precedes ((2 1) (0 1)) ((2 2) (1 2)))
+  (uniq-orig k n-a)
+  (conf ch2 ch3-0)
+  (auth ch3 ch2)
+  (operation channel-test (added-strand serv 3)
+    (ch-msg ch2 (cat a-0 b-0 k)) (1 2))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv (cat a-0 n-a-0)) (send ch1 (cat a-0 b-0 n-a-0 n-b-0))
+      (recv ch2 (cat a-0 b-0 k)) (recv (enc n-b-0 k)))
+    ((recv ch1-0 (cat a-0 b-0 n-a-1 n-b-1))
+      (send ch3-0 (cat a-0 b-0 k n-a-1 n-b-1))
+      (send ch2 (cat a-0 b-0 k))))
+  (label 18)
+  (parent 17)
+  (unrealized (0 1) (1 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-a-1 n-b-0 text) (a b b-0 a-0 name)
+    (ch3 ch1 ch2 ch1-0 ch3-0 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand resp 4 (k k) (n-a n-a-0) (n-b n-b) (b b-0) (a a-0)
+    (ch1 ch1) (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-1) (n-b n-b-0) (a a-0) (b b-0)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3-0))
+  (precedes ((0 2) (1 3)) ((2 1) (0 1)) ((2 2) (1 2)))
+  (uniq-orig k n-a)
+  (conf ch2 ch3-0)
+  (auth ch3 ch2)
+  (operation encryption-test (displaced 3 0 init 3) (enc n-b-1 k) (1 3))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv (cat a-0 n-a-0)) (send ch1 (cat a-0 b-0 n-a-0 n-b))
+      (recv ch2 (cat a-0 b-0 k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a-0 b-0 n-a-1 n-b-0))
+      (send ch3-0 (cat a-0 b-0 k n-a-1 n-b-0))
+      (send ch2 (cat a-0 b-0 k))))
+  (label 19)
+  (parent 18)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 n-a-1 n-b-1 n-a-2 text)
+    (a b b-0 a-0 a-1 b-1 name) (ch3 ch1 ch2 ch1-0 ch3-0 ch3-1 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand resp 4 (k k) (n-a n-a-0) (n-b n-b-0) (b b-0) (a a-0)
+    (ch1 ch1) (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-1) (n-b n-b-1) (a a-0) (b b-0)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3-0))
+  (defstrand init 3 (k k) (n-a n-a-2) (n-b n-b-0) (a a-1) (b b-1)
+    (ch3 ch3-1))
+  (precedes ((2 1) (0 1)) ((2 1) (3 1)) ((2 2) (1 2)) ((3 2) (1 3)))
+  (uniq-orig k n-a)
+  (conf ch2 ch3-0)
+  (auth ch3 ch2 ch3-1)
+  (operation encryption-test (added-strand init 3) (enc n-b-0 k) (1 3))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv (cat a-0 n-a-0)) (send ch1 (cat a-0 b-0 n-a-0 n-b-0))
+      (recv ch2 (cat a-0 b-0 k)) (recv (enc n-b-0 k)))
+    ((recv ch1-0 (cat a-0 b-0 n-a-1 n-b-1))
+      (send ch3-0 (cat a-0 b-0 k n-a-1 n-b-1))
+      (send ch2 (cat a-0 b-0 k)))
+    ((send (cat a-1 n-a-2)) (recv ch3-1 (cat a-1 b-1 k n-a-2 n-b-0))
+      (send (enc n-b-0 k))))
+  (label 20)
+  (parent 18)
+  (unrealized (0 1) (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 n-a-1 n-b-1 text)
+    (a b b-0 a-0 name) (ch3 ch1 ch2 ch1-0 ch3-0 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand resp 4 (k k) (n-a n-a-0) (n-b n-b-0) (b b-0) (a a-0)
+    (ch1 ch1) (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-1) (n-b n-b-1) (a a-0) (b b-0)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3-0))
+  (deflistener k)
+  (precedes ((2 1) (0 1)) ((2 1) (3 0)) ((2 2) (1 2)) ((3 1) (1 3)))
+  (uniq-orig k n-a)
+  (conf ch2 ch3-0)
+  (auth ch3 ch2)
+  (operation encryption-test (added-listener k) (enc n-b-0 k) (1 3))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv (cat a-0 n-a-0)) (send ch1 (cat a-0 b-0 n-a-0 n-b-0))
+      (recv ch2 (cat a-0 b-0 k)) (recv (enc n-b-0 k)))
+    ((recv ch1-0 (cat a-0 b-0 n-a-1 n-b-1))
+      (send ch3-0 (cat a-0 b-0 k n-a-1 n-b-1))
+      (send ch2 (cat a-0 b-0 k))) ((recv k) (send k)))
+  (label 21)
+  (parent 18)
+  (unrealized (0 1) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-a-0 n-b text) (b a name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b) (a a) (b b) (ch1 ch1-0)
+    (ch2 ch2) (ch3 ch3))
+  (precedes ((0 0) (2 0)) ((0 2) (1 3)) ((2 1) (0 1)) ((2 2) (1 2)))
+  (uniq-orig k n-a-0)
+  (conf ch2 ch3)
+  (auth ch2 ch3)
+  (operation channel-test (displaced 3 2 serv 2)
+    (ch-msg ch3-0 (cat a-0 b-0 k n-a-1 n-b-0)) (0 1))
+  (traces
+    ((send (cat a n-a-0)) (recv ch3 (cat a b k n-a-0 n-b))
+      (send (enc n-b k)))
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b)) (send ch3 (cat a b k n-a-0 n-b))
+      (send ch2 (cat a b k))))
+  (label 22)
+  (parent 19)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((n-a n-a-0) (k k) (a a) (b b) (n-b n-b) (ch3 ch3) (b-0 b) (a-0 a)
+        (n-a-0 n-a) (n-b-0 n-b) (ch1 ch1) (ch2 ch2))))
+  (origs (k (2 1)) (n-a-0 (0 0))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-a-1 n-b-0 text) (a b b-0 a-0 name)
+    (ch3 ch1 ch2 ch1-0 ch3-0 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand resp 4 (k k) (n-a n-a-0) (n-b n-b-0) (b b-0) (a a-0)
+    (ch1 ch1) (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-1) (n-b n-b-0) (a a-0) (b b-0)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3-0))
+  (defstrand init 3 (k k) (n-a n-a-1) (n-b n-b-0) (a a-0) (b b-0)
+    (ch3 ch3-0))
+  (precedes ((2 1) (0 1)) ((2 1) (3 1)) ((2 2) (1 2)) ((3 2) (1 3)))
+  (uniq-orig k n-a)
+  (conf ch2 ch3-0)
+  (auth ch3 ch2 ch3-0)
+  (operation channel-test (displaced 4 2 serv 2)
+    (ch-msg ch3-1 (cat a-1 b-1 k n-a-2 n-b-1)) (3 1))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv (cat a-0 n-a-0)) (send ch1 (cat a-0 b-0 n-a-0 n-b-0))
+      (recv ch2 (cat a-0 b-0 k)) (recv (enc n-b-0 k)))
+    ((recv ch1-0 (cat a-0 b-0 n-a-1 n-b-0))
+      (send ch3-0 (cat a-0 b-0 k n-a-1 n-b-0))
+      (send ch2 (cat a-0 b-0 k)))
+    ((send (cat a-0 n-a-1)) (recv ch3-0 (cat a-0 b-0 k n-a-1 n-b-0))
+      (send (enc n-b-0 k))))
+  (label 23)
+  (parent 20)
+  (unrealized (0 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 n-a-1 n-b-1 text)
+    (a b b-0 a-0 name) (ch3 ch1 ch2 ch1-0 ch3-0 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand resp 4 (k k) (n-a n-a-0) (n-b n-b-0) (b b-0) (a a-0)
+    (ch1 ch1) (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-1) (n-b n-b-1) (a a-0) (b b-0)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3-0))
+  (deflistener k)
+  (precedes ((2 1) (0 1)) ((2 2) (1 2)) ((2 2) (3 0)) ((3 1) (1 3)))
+  (uniq-orig k n-a)
+  (conf ch2 ch3-0)
+  (auth ch3 ch2)
+  (operation nonce-test (displaced 4 2 serv 3) k (3 0)
+    (ch-msg ch3-0 (cat a-0 b-0 k n-a-1 n-b-1)))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv (cat a-0 n-a-0)) (send ch1 (cat a-0 b-0 n-a-0 n-b-0))
+      (recv ch2 (cat a-0 b-0 k)) (recv (enc n-b-0 k)))
+    ((recv ch1-0 (cat a-0 b-0 n-a-1 n-b-1))
+      (send ch3-0 (cat a-0 b-0 k n-a-1 n-b-1))
+      (send ch2 (cat a-0 b-0 k))) ((recv k) (send k)))
+  (label 24)
+  (parent 21)
+  (unrealized (0 1) (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    (auth ch3))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    (auth ch2))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k)
+    (conf ch2 ch3))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (uniq-orig k)
+  (conf ch2 ch3)
+  (traces
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))))
+  (label 25)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (n-a n-a) (n-b n-b) (k k) (ch1 ch1) (ch2 ch2)
+        (ch3 ch3))))
+  (origs (k (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    (auth ch3))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    (auth ch2))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k)
+    (conf ch2 ch3))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (uniq-orig k)
+  (conf ch2 ch3)
+  (traces
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))) ((recv k) (send k)))
+  (label 26)
+  (unrealized (1 0))
+  (preskeleton)
+  (origs (k (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((0 1) (1 0)))
+  (uniq-orig k)
+  (conf ch2 ch3)
+  (traces
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))) ((recv k) (send k)))
+  (label 27)
+  (parent 26)
+  (unrealized (1 0))
+  (origs (k (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((0 2) (1 0)))
+  (uniq-orig k)
+  (conf ch2 ch3)
+  (operation nonce-test (displaced 2 0 serv 3) k (1 0)
+    (ch-msg ch3 (cat a b k n-a n-b)))
+  (traces
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))) ((recv k) (send k)))
+  (label 28)
+  (parent 27)
+  (unrealized (1 0))
+  (dead)
+  (origs (k (0 1)))
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/tst/chan-yahalom.scm b/tst/chan-yahalom.scm
new file mode 100644
--- /dev/null
+++ b/tst/chan-yahalom.scm
@@ -0,0 +1,129 @@
+(herald "Yahalom Protocol Without Forwarding" (bound 15))
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b c name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a))
+	   (recv ch3 (cat a b k n-a n-b))
+	   (send (enc n-b k))))
+  (defrole resp
+    (vars (b a c name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a))
+	   (send ch1 (cat a b n-a n-b))
+	   (recv ch2 (cat a b k))
+	   (recv (enc n-b k))))
+  (defrole serv
+    (vars (c a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b))
+	   (send ch3 (cat a b k n-a n-b))
+	   (send ch2 (cat a b k)))
+    (uniq-orig k)))
+
+;;; How much do we know assuming that the resp had a run with an
+;;; authenticated channel ch2?  We also assume the responder's nonce
+;;; is freshly chosen.
+
+(defskeleton yahalom
+  (vars (a b c name) (n-b text) (ch1 ch2 chan))
+  (defstrand resp 4 (a a) (b b) (n-b n-b) (ch1 ch1) (ch2 ch2))
+  (auth ch2)
+  (uniq-orig n-b))
+
+;;; This is the answer to the previous question, to which we have
+;;; added the assumptions that ch2 and ch3, used by the key server to
+;;; distribute the key, are confidential channels.  In this case, we
+;;; find *almost* all we would expect.
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (precedes ((1 2) (0 2)))
+  (uniq-orig k n-b)
+  (auth ch2)
+  (conf ch2 ch3))
+
+;;; This is the answer to the previous question, together with the
+;;; assumption that the server's request channel is an authenticated
+;;; channel.  This yields all of the desired result, including the
+;;; fact that the channels used by the server and the responder agree:
+;;; ch1-0 = ch1.
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (uniq-orig k n-b)
+  (auth ch2 ch1-0)
+  (conf ch2 ch3))
+
+;;; In particular, we can now check that the session key cannot be
+;;; compromised, subject to the assumptions we have imposed, using
+;;; (deflistener k).
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (uniq-orig k n-b)
+  (auth ch2 ch1-0)
+  (conf ch2 ch3))
+
+;;; Let's turn now to the initiator's point of view:
+
+(defskeleton yahalom
+  (vars (a b c name) (n-a text) (k skey) (ch3 chan))
+  (defstrand init 3 (ch3 ch3) (n-a n-a))
+  (uniq-orig n-a)
+  (auth ch3))
+
+;;; The initiator infers the presence of the server.  We can now add
+;;; the assumptions that the server's channels -- ch1 and ch, here --
+;;; have the same trust properties as before, ie ch1 is auth and ch is
+;;; conf, in addition to the auth previously assumed:
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 ch3-0 ch1 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch3 ch3-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig k n-a)
+  (auth ch3 ch1)
+  (conf ch3-0))
+
+;;; This now authenticates the presence of the responder for the first
+;;; two nodes, and its agreement on all of the values present there.
+
+;;; Finally, let us consider the server's point of view, with an
+;;; authenticated channel for the request, and confidential channels
+;;; over which to transmit the session key.
+
+(defskeleton yahalom
+  (vars (c a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (ch1 ch1) (ch2 ch2) (ch3 ch3))
+  (auth ch1)
+  (conf ch2 ch3))
+
+;;; This query confirms that the server has authenticated the first
+;;; two nodes of the responder, but has not authenticated the
+;;; initiator at all.
+
+;;; However, the session key is safe:
+
+(defskeleton yahalom
+  (vars (c a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k) (ch1 ch1) (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (auth ch1)
+  (conf ch2 ch3))
diff --git a/tst/chan-yahalom.tst b/tst/chan-yahalom.tst
new file mode 100644
--- /dev/null
+++ b/tst/chan-yahalom.tst
@@ -0,0 +1,1093 @@
+(herald "Yahalom Protocol Without Forwarding" (bound 15))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/chan-yahalom.scm")
+(comment "Strand count bounded at 15")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a text) (a b name) (ch1 ch2 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (uniq-orig n-b)
+  (auth ch2)
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))))
+  (label 0)
+  (unrealized (0 2))
+  (origs (n-b (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (precedes ((1 2) (0 2)))
+  (uniq-orig k n-b)
+  (auth ch2)
+  (operation channel-test (added-strand serv 3) (ch-msg ch2 (cat a b k))
+    (0 2))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k))))
+  (label 1)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps
+    ((0) ((a a) (b b) (n-b n-b) (ch1 ch1) (ch2 ch2) (n-a n-a) (k k))))
+  (origs (k (1 1)) (n-b (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (precedes ((1 2) (0 2)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k))))
+  (label 2)
+  (unrealized (0 3))
+  (origs (k (1 1)) (n-b (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b a-0 b-0 name)
+    (ch1 ch2 ch1-0 ch3 ch3-0 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (defstrand init 3 (k k) (n-a n-a-1) (n-b n-b) (a a-0) (b b-0)
+    (ch3 ch3-0))
+  (precedes ((0 1) (2 1)) ((1 1) (2 1)) ((1 2) (0 2)) ((2 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation encryption-test (added-strand init 3) (enc n-b k) (0 3))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((send (cat a-0 n-a-1)) (recv ch3-0 (cat a-0 b-0 k n-a-1 n-b))
+      (send (enc n-b k))))
+  (label 3)
+  (parent 2)
+  (unrealized (2 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((1 1) (2 0)) ((1 2) (0 2)) ((2 1) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation encryption-test (added-listener k) (enc n-b k) (0 3))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv k) (send k)))
+  (label 4)
+  (parent 2)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-a-0 n-b text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b) (a a) (b b) (ch1 ch1-0)
+    (ch2 ch2) (ch3 ch3))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((1 2) (0 2)) ((2 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation nonce-test
+    (contracted (n-b-0 n-b) (a-0 a) (b-0 b) (n-a-1 n-a-0) (ch3-0 ch3)) k
+    (2 1) (ch-msg ch3 (cat a b k n-a-0 n-b)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b)) (send ch3 (cat a b k n-a-0 n-b))
+      (send ch2 (cat a b k)))
+    ((send (cat a n-a-0)) (recv ch3 (cat a b k n-a-0 n-b))
+      (send (enc n-b k))))
+  (label 5)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((k k) (n-b n-b) (n-a n-a) (n-a-0 n-a-0) (n-b-0 n-b) (a a) (b b)
+        (ch1 ch1) (ch2 ch2) (ch1-0 ch1-0) (ch3 ch3))))
+  (origs (k (1 1)) (n-b (0 1))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b a-0 b-0 name)
+    (ch1 ch2 ch1-0 ch3 ch3-0 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (defstrand init 3 (k k) (n-a n-a-1) (n-b n-b) (a a-0) (b b-0)
+    (ch3 ch3-0))
+  (precedes ((0 1) (2 1)) ((1 2) (0 2)) ((1 2) (2 1)) ((2 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation nonce-test (displaced 3 1 serv 3) k (2 1)
+    (ch-msg ch3 (cat a b k n-a-0 n-b-0)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((send (cat a-0 n-a-1)) (recv ch3-0 (cat a-0 b-0 k n-a-1 n-b))
+      (send (enc n-b k))))
+  (label 6)
+  (parent 3)
+  (unrealized (2 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((1 2) (0 2)) ((1 2) (2 0)) ((2 1) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation nonce-test (displaced 3 1 serv 3) k (2 0)
+    (ch-msg ch3 (cat a b k n-a-0 n-b-0)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv k) (send k)))
+  (label 7)
+  (parent 4)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-a-0 n-b text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b) (a a) (b b) (ch1 ch1-0)
+    (ch2 ch2) (ch3 ch3))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (precedes ((0 1) (1 0)) ((1 2) (0 2)) ((1 2) (2 1)) ((2 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2)
+  (operation nonce-test
+    (contracted (n-b-0 n-b) (a-0 a) (b-0 b) (n-a-1 n-a-0) (ch3-0 ch3)) k
+    (2 1) (ch-msg ch2 (cat a b k)) (ch-msg ch3 (cat a b k n-a-0 n-b)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b)) (send ch3 (cat a b k n-a-0 n-b))
+      (send ch2 (cat a b k)))
+    ((send (cat a n-a-0)) (recv ch3 (cat a b k n-a-0 n-b))
+      (send (enc n-b k))))
+  (label 8)
+  (parent 6)
+  (seen 5)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k))))
+  (label 9)
+  (unrealized (0 2) (0 3) (1 0))
+  (preskeleton)
+  (origs (k (1 1)) (n-b (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (precedes ((1 1) (0 2)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k))))
+  (label 10)
+  (parent 9)
+  (unrealized (0 2) (0 3) (1 0))
+  (origs (k (1 1)) (n-b (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch1 ch2)
+  (operation channel-test (displaced 2 0 resp 2)
+    (ch-msg ch1-0 (cat a b n-a-0 n-b-0)) (1 0))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))))
+  (label 11)
+  (parent 10)
+  (unrealized (0 2) (0 3))
+  (origs (k (1 1)) (n-b (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (ch1 ch1-0))
+  (precedes ((1 1) (0 2)) ((2 1) (1 0)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (operation channel-test (added-strand resp 2)
+    (ch-msg ch1-0 (cat a b n-a-0 n-b-0)) (1 0))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv (cat a n-a-0)) (send ch1-0 (cat a b n-a-0 n-b-0))))
+  (label 12)
+  (parent 10)
+  (unrealized (0 2) (0 3))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (precedes ((0 1) (1 0)) ((1 2) (0 2)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch1 ch2)
+  (operation channel-test (displaced 2 1 serv 3)
+    (ch-msg ch2 (cat a b k)) (0 2))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))))
+  (label 13)
+  (parent 11)
+  (unrealized (0 3))
+  (origs (k (1 1)) (n-b (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (ch1 ch1-0))
+  (precedes ((1 2) (0 2)) ((2 1) (1 0)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (operation channel-test (displaced 3 1 serv 3)
+    (ch-msg ch2 (cat a b k)) (0 2))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv (cat a n-a-0)) (send ch1-0 (cat a b n-a-0 n-b-0))))
+  (label 14)
+  (parent 12)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 text) (a b a-0 b-0 name)
+    (ch1 ch2 ch3 ch3-0 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0)
+    (ch3 ch3-0))
+  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((1 2) (0 2)) ((2 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch1 ch2)
+  (operation encryption-test (added-strand init 3) (enc n-b k) (0 3))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    ((send (cat a-0 n-a-0)) (recv ch3-0 (cat a-0 b-0 k n-a-0 n-b))
+      (send (enc n-b k))))
+  (label 15)
+  (parent 13)
+  (unrealized (2 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((0 1) (1 0)) ((1 1) (2 0)) ((1 2) (0 2)) ((2 1) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch1 ch2)
+  (operation encryption-test (added-listener k) (enc n-b k) (0 3))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))) ((recv k) (send k)))
+  (label 16)
+  (parent 13)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b a-0 b-0 name)
+    (ch1 ch2 ch1-0 ch3 ch3-0 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (ch1 ch1-0))
+  (defstrand init 3 (k k) (n-a n-a-1) (n-b n-b) (a a-0) (b b-0)
+    (ch3 ch3-0))
+  (precedes ((0 1) (3 1)) ((1 1) (3 1)) ((1 2) (0 2)) ((2 1) (1 0))
+    ((3 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (operation encryption-test (added-strand init 3) (enc n-b k) (0 3))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv (cat a n-a-0)) (send ch1-0 (cat a b n-a-0 n-b-0)))
+    ((send (cat a-0 n-a-1)) (recv ch3-0 (cat a-0 b-0 k n-a-1 n-b))
+      (send (enc n-b k))))
+  (label 17)
+  (parent 14)
+  (unrealized (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (ch1 ch1-0))
+  (deflistener k)
+  (precedes ((1 1) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (operation encryption-test (added-listener k) (enc n-b k) (0 3))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv (cat a n-a-0)) (send ch1-0 (cat a b n-a-0 n-b-0)))
+    ((recv k) (send k)))
+  (label 18)
+  (parent 14)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((1 2) (0 2)) ((2 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch1 ch2)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (n-a-0 n-a) (ch3-0 ch3)) k (2 1)
+    (ch-msg ch3 (cat a b k n-a n-b)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (label 19)
+  (parent 15)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((k k) (n-b n-b) (n-a n-a) (n-a-0 n-a) (n-b-0 n-b) (a a) (b b)
+        (ch1 ch1) (ch2 ch2) (ch1-0 ch1) (ch3 ch3))))
+  (origs (k (1 1)) (n-b (0 1))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 text) (a b a-0 b-0 name)
+    (ch1 ch2 ch3 ch3-0 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0)
+    (ch3 ch3-0))
+  (precedes ((0 1) (1 0)) ((1 2) (0 2)) ((1 2) (2 1)) ((2 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch1 ch2)
+  (operation nonce-test (displaced 3 1 serv 3) k (2 1)
+    (ch-msg ch3 (cat a b k n-a n-b)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    ((send (cat a-0 n-a-0)) (recv ch3-0 (cat a-0 b-0 k n-a-0 n-b))
+      (send (enc n-b k))))
+  (label 20)
+  (parent 15)
+  (unrealized (2 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((0 1) (1 0)) ((1 2) (0 2)) ((1 2) (2 0)) ((2 1) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch1 ch2)
+  (operation nonce-test (displaced 3 1 serv 3) k (2 0)
+    (ch-msg ch3 (cat a b k n-a n-b)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))) ((recv k) (send k)))
+  (label 21)
+  (parent 16)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b a-0 b-0 name)
+    (ch1 ch2 ch1-0 ch3 ch3-0 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (ch1 ch1-0))
+  (defstrand init 3 (k k) (n-a n-a-1) (n-b n-b) (a a-0) (b b-0)
+    (ch3 ch3-0))
+  (precedes ((0 1) (3 1)) ((1 2) (0 2)) ((1 2) (3 1)) ((2 1) (1 0))
+    ((3 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (operation nonce-test (displaced 4 1 serv 3) k (3 1)
+    (ch-msg ch3 (cat a b k n-a-0 n-b-0)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv (cat a n-a-0)) (send ch1-0 (cat a b n-a-0 n-b-0)))
+    ((send (cat a-0 n-a-1)) (recv ch3-0 (cat a-0 b-0 k n-a-1 n-b))
+      (send (enc n-b k))))
+  (label 22)
+  (parent 17)
+  (unrealized (3 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (ch1 ch1-0))
+  (deflistener k)
+  (precedes ((1 2) (0 2)) ((1 2) (3 0)) ((2 1) (1 0)) ((3 1) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (operation nonce-test (displaced 4 1 serv 3) k (3 0)
+    (ch-msg ch3 (cat a b k n-a-0 n-b-0)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv (cat a n-a-0)) (send ch1-0 (cat a b n-a-0 n-b-0)))
+    ((recv k) (send k)))
+  (label 23)
+  (parent 18)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (precedes ((0 1) (1 0)) ((1 2) (0 2)) ((1 2) (2 1)) ((2 2) (0 3)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch1 ch2)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (n-a-0 n-a) (ch3-0 ch3)) k (2 1)
+    (ch-msg ch2 (cat a b k)) (ch-msg ch3 (cat a b k n-a n-b)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (label 24)
+  (parent 20)
+  (seen 19)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv k) (send k)))
+  (label 25)
+  (unrealized (0 2) (0 3) (1 0) (2 0))
+  (preskeleton)
+  (origs (k (1 1)) (n-b (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((1 1) (0 2)) ((1 1) (2 0)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv k) (send k)))
+  (label 26)
+  (parent 25)
+  (unrealized (0 2) (0 3) (1 0) (2 0))
+  (origs (k (1 1)) (n-b (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b name)
+    (ch1 ch2 ch1-0 ch3 chan))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1)
+    (ch2 ch2))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b)
+    (ch1 ch1-0) (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((1 1) (0 2)) ((1 2) (2 0)))
+  (uniq-orig k n-b)
+  (conf ch2 ch3)
+  (auth ch2 ch1-0)
+  (operation nonce-test (displaced 3 1 serv 3) k (2 0)
+    (ch-msg ch3 (cat a b k n-a-0 n-b-0)))
+  (traces
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k)))
+    ((recv ch1-0 (cat a b n-a-0 n-b-0))
+      (send ch3 (cat a b k n-a-0 n-b-0)) (send ch2 (cat a b k)))
+    ((recv k) (send k)))
+  (label 27)
+  (parent 26)
+  (unrealized (0 2) (0 3) (1 0) (2 0))
+  (dead)
+  (origs (k (1 1)) (n-b (0 1)))
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (uniq-orig n-a)
+  (auth ch3)
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (label 28)
+  (unrealized (0 1))
+  (origs (n-a (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 ch1 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch3 ch3))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig k n-a)
+  (auth ch3)
+  (operation channel-test (added-strand serv 2)
+    (ch-msg ch3 (cat a b k n-a n-b)) (0 1))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))))
+  (label 29)
+  (parent 28)
+  (realized)
+  (shape)
+  (maps ((0) ((n-a n-a) (ch3 ch3) (a a) (b b) (n-b n-b) (k k))))
+  (origs (k (1 1)) (n-a (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 ch3-0 ch1 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch3 ch3-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig k n-a)
+  (conf ch3-0)
+  (auth ch3 ch1)
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3-0 (cat a b k n-a n-b))))
+  (label 30)
+  (unrealized (0 1) (1 0))
+  (origs (k (1 1)) (n-a (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 ch3-0 ch1 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch3 ch3-0))
+  (defstrand resp 2 (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (uniq-orig k n-a)
+  (conf ch3-0)
+  (auth ch3 ch1)
+  (operation channel-test (added-strand resp 2)
+    (ch-msg ch1 (cat a b n-a n-b)) (1 0))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3-0 (cat a b k n-a n-b)))
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))))
+  (label 31)
+  (parent 30)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch3 ch1 chan))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch3 ch3))
+  (defstrand resp 2 (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (uniq-orig k n-a)
+  (conf ch3)
+  (auth ch3 ch1)
+  (operation channel-test (displaced 3 1 serv 2)
+    (ch-msg ch3-0 (cat a b k n-a n-b)) (0 1))
+  (traces
+    ((send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k)))
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b)))
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))))
+  (label 32)
+  (parent 31)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch3 ch3) (ch3-0 ch3)
+        (ch1 ch1))))
+  (origs (k (1 1)) (n-a (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (uniq-orig k)
+  (conf ch2 ch3)
+  (auth ch1)
+  (traces
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))))
+  (label 33)
+  (unrealized (0 0))
+  (origs (k (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (defstrand resp 2 (n-a n-a) (n-b n-b) (b b) (a a) (ch1 ch1))
+  (precedes ((1 1) (0 0)))
+  (uniq-orig k)
+  (conf ch2 ch3)
+  (auth ch1)
+  (operation channel-test (added-strand resp 2)
+    (ch-msg ch1 (cat a b n-a n-b)) (0 0))
+  (traces
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    ((recv (cat a n-a)) (send ch1 (cat a b n-a n-b))))
+  (label 34)
+  (parent 33)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((ch1 ch1) (ch2 ch2) (ch3 ch3) (a a) (b b) (n-a n-a) (n-b n-b)
+        (k k))))
+  (origs (k (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b name) (n-a n-b text) (k skey) (ch3 chan))
+    (trace (send (cat a n-a)) (recv ch3 (cat a b k n-a n-b))
+      (send (enc n-b k))))
+  (defrole resp
+    (vars (b a name) (n-a n-b text) (k skey) (ch1 ch2 chan))
+    (trace (recv (cat a n-a)) (send ch1 (cat a b n-a n-b))
+      (recv ch2 (cat a b k)) (recv (enc n-b k))))
+  (defrole serv
+    (vars (a b name) (n-a n-b text) (k skey) (ch1 ch2 ch3 chan))
+    (trace (recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (uniq-orig k)
+  (conf ch2 ch3)
+  (auth ch1)
+  (traces
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))) ((recv k) (send k)))
+  (label 35)
+  (unrealized (0 0) (1 0))
+  (preskeleton)
+  (origs (k (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((0 1) (1 0)))
+  (uniq-orig k)
+  (conf ch2 ch3)
+  (auth ch1)
+  (traces
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))) ((recv k) (send k)))
+  (label 36)
+  (parent 35)
+  (unrealized (0 0) (1 0))
+  (origs (k (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b name) (ch1 ch2 ch3 chan))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (ch1 ch1)
+    (ch2 ch2) (ch3 ch3))
+  (deflistener k)
+  (precedes ((0 2) (1 0)))
+  (uniq-orig k)
+  (conf ch2 ch3)
+  (auth ch1)
+  (operation nonce-test (displaced 2 0 serv 3) k (1 0)
+    (ch-msg ch3 (cat a b k n-a n-b)))
+  (traces
+    ((recv ch1 (cat a b n-a n-b)) (send ch3 (cat a b k n-a n-b))
+      (send ch2 (cat a b k))) ((recv k) (send k)))
+  (label 37)
+  (parent 36)
+  (unrealized (0 0) (1 0))
+  (dead)
+  (origs (k (0 1)))
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/tst/checktst b/tst/checktst
--- a/tst/checktst
+++ b/tst/checktst
@@ -3,7 +3,7 @@
 for f in *.tst
 do
   b=`basename $f .tst`
-  if test ! -f $b.scm -a ! -f $b.lsp -a ! -f $b.prot -a ! -f $b.lisp
+  if test ! -f $b.scm -a ! -f $b.lsp
   then
     echo $f
   fi
diff --git a/tst/comment.scm b/tst/comment.scm
deleted file mode 100644
--- a/tst/comment.scm
+++ /dev/null
@@ -1,11 +0,0 @@
-(herald comment)
-
-(defprotocol comment basic
-  (defrole comment (vars (x text))
-    (trace (recv x))
-    (comment "role"))
-  (comment "protocol"))
-
-(defskeleton comment (vars)
-  (defstrand comment 1)
-  (comment "skeleton"))
diff --git a/tst/comment.tst b/tst/comment.tst
deleted file mode 100644
--- a/tst/comment.tst
+++ /dev/null
@@ -1,21 +0,0 @@
-(herald comment)
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/comment.scm")
-
-(defprotocol comment basic
-  (defrole comment (vars (x text)) (trace (recv x)) (comment "role"))
-  (comment "protocol"))
-
-(defskeleton comment
-  (vars (x text))
-  (defstrand comment 1 (x x))
-  (comment "skeleton")
-  (traces ((recv x)))
-  (label 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((x x))))
-  (origs))
-
-(comment "Nothing left to do")
diff --git a/tst/commitment.scm b/tst/commitment.scm
new file mode 100644
--- /dev/null
+++ b/tst/commitment.scm
@@ -0,0 +1,44 @@
+(herald commitment)
+
+(defprotocol commit basic
+  (defrole bidder
+    (vars (a b name) (n data) (quote outcome text))
+    (trace
+     (send (enc "bid" (hash a b n quote) (privk "sig" a)))
+     (recv (enc "receipt" (hash a b n quote) (privk "sig" b)))
+     (send (cat n quote))
+     (recv (enc "result" a b n quote outcome (privk "sig" b)))))
+
+  (defrole bid-trash
+    (vars (a b name) (n data) (outcome trash text))
+    (trace
+     (send (enc "bid" (hash n trash) (privk "sig" a)))
+     (recv (enc "receipt" (hash n trash) (privk "sig" b)))))
+
+  (defrole auctioneer
+    (vars (a b name) (n data) (quote outcome text) (sealed mesg))
+    (trace
+     (recv (enc "bid" sealed (privk "sig" a)))
+     (send (enc "receipt" sealed (privk "sig" b)))
+     (recv (cat n quote))
+     (cheq sealed (hash a b n quote))
+     (send (enc "result" a b n quote outcome (privk "sig" b))))))
+
+(defskeleton commit
+  (vars (a b name) (n data) (quote outcome text) (sealed mesg))
+  (defstrand auctioneer 4 (a a))	; full height:  cheq doesn't
+					; count separately
+  (non-orig (privk "sig" a)))
+
+(defskeleton commit
+  (vars (a b name) (n data) (quote outcome text) (sealed mesg))
+  (defstrand auctioneer 2 (a a))	; up to last recv
+  (non-orig (privk "sig" a)))
+
+(defskeleton commit
+  (vars (n data) (quote outcome text) (a b name))
+  (defstrand auctioneer 4 (sealed (hash a b n quote)) (n n)
+    (quote quote) (outcome outcome) (a a) (b b))
+  (defstrand bidder 1 (n n) (quote quote) (a a) (b b))
+  (uniq-gen n)
+  (non-orig (privk "sig" a)))
diff --git a/tst/commitment.tst b/tst/commitment.tst
new file mode 100644
--- /dev/null
+++ b/tst/commitment.tst
@@ -0,0 +1,269 @@
+(herald commitment)
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/commitment.scm")
+
+(defprotocol commit basic
+  (defrole bidder
+    (vars (a b name) (n data) (quote outcome text))
+    (trace (send (enc "bid" (hash a b n quote) (privk "sig" a)))
+      (recv (enc "receipt" (hash a b n quote) (privk "sig" b)))
+      (send (cat n quote))
+      (recv (enc "result" a b n quote outcome (privk "sig" b)))))
+  (defrole bid-trash
+    (vars (a b name) (n data) (trash text))
+    (trace (send (enc "bid" (hash n trash) (privk "sig" a)))
+      (recv (enc "receipt" (hash n trash) (privk "sig" b)))))
+  (defrole auctioneer
+    (vars (a b name) (n data) (quote outcome text) (sealed mesg))
+    (trace (recv (enc "bid" sealed (privk "sig" a)))
+      (send (enc "receipt" sealed (privk "sig" b))) (recv (cat n quote))
+      (send (enc "result" a b n quote outcome (privk "sig" b)))))
+  (defrule cheq-auctioneer-4
+    (forall ((z strd) (quote text) (n data) (b a name) (sealed mesg))
+      (implies
+        (and (p "auctioneer" z (idx 4)) (p "auctioneer" "quote" z quote)
+          (p "auctioneer" "n" z n) (p "auctioneer" "b" z b)
+          (p "auctioneer" "a" z a) (p "auctioneer" "sealed" z sealed))
+        (= sealed (hash a b n quote)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton commit
+  (vars (sealed mesg) (n data) (quote outcome text) (a b name))
+  (defstrand auctioneer 4 (sealed sealed) (n n) (quote quote)
+    (outcome outcome) (a a) (b b))
+  (non-orig (privk "sig" a))
+  (traces
+    ((recv (enc "bid" sealed (privk "sig" a)))
+      (send (enc "receipt" sealed (privk "sig" b))) (recv (cat n quote))
+      (send (enc "result" a b n quote outcome (privk "sig" b)))))
+  (label 0)
+  (unrealized (0 0))
+  (origs)
+  (comment "Not closed under rules"))
+
+(defskeleton commit
+  (vars (n data) (quote outcome text) (a b name))
+  (defstrand auctioneer 4 (sealed (hash a b n quote)) (n n)
+    (quote quote) (outcome outcome) (a a) (b b))
+  (non-orig (privk "sig" a))
+  (rule cheq-auctioneer-4)
+  (traces
+    ((recv (enc "bid" (hash a b n quote) (privk "sig" a)))
+      (send (enc "receipt" (hash a b n quote) (privk "sig" b)))
+      (recv (cat n quote))
+      (send (enc "result" a b n quote outcome (privk "sig" b)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton commit
+  (vars (n data) (quote outcome text) (a b name))
+  (defstrand auctioneer 4 (sealed (hash a b n quote)) (n n)
+    (quote quote) (outcome outcome) (a a) (b b))
+  (defstrand bidder 1 (n n) (quote quote) (a a) (b b))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "sig" a))
+  (operation encryption-test (added-strand bidder 1)
+    (enc "bid" (hash a b n quote) (privk "sig" a)) (0 0))
+  (traces
+    ((recv (enc "bid" (hash a b n quote) (privk "sig" a)))
+      (send (enc "receipt" (hash a b n quote) (privk "sig" b)))
+      (recv (cat n quote))
+      (send (enc "result" a b n quote outcome (privk "sig" b))))
+    ((send (enc "bid" (hash a b n quote) (privk "sig" a)))))
+  (label 2)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (n n) (quote quote) (outcome outcome)
+        (sealed (hash a b n quote)))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol commit basic
+  (defrole bidder
+    (vars (a b name) (n data) (quote outcome text))
+    (trace (send (enc "bid" (hash a b n quote) (privk "sig" a)))
+      (recv (enc "receipt" (hash a b n quote) (privk "sig" b)))
+      (send (cat n quote))
+      (recv (enc "result" a b n quote outcome (privk "sig" b)))))
+  (defrole bid-trash
+    (vars (a b name) (n data) (trash text))
+    (trace (send (enc "bid" (hash n trash) (privk "sig" a)))
+      (recv (enc "receipt" (hash n trash) (privk "sig" b)))))
+  (defrole auctioneer
+    (vars (a b name) (n data) (quote outcome text) (sealed mesg))
+    (trace (recv (enc "bid" sealed (privk "sig" a)))
+      (send (enc "receipt" sealed (privk "sig" b))) (recv (cat n quote))
+      (send (enc "result" a b n quote outcome (privk "sig" b)))))
+  (defrule cheq-auctioneer-4
+    (forall ((z strd) (quote text) (n data) (b a name) (sealed mesg))
+      (implies
+        (and (p "auctioneer" z (idx 4)) (p "auctioneer" "quote" z quote)
+          (p "auctioneer" "n" z n) (p "auctioneer" "b" z b)
+          (p "auctioneer" "a" z a) (p "auctioneer" "sealed" z sealed))
+        (= sealed (hash a b n quote)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton commit
+  (vars (sealed mesg) (a b name))
+  (defstrand auctioneer 2 (sealed sealed) (a a) (b b))
+  (non-orig (privk "sig" a))
+  (traces
+    ((recv (enc "bid" sealed (privk "sig" a)))
+      (send (enc "receipt" sealed (privk "sig" b)))))
+  (label 3)
+  (unrealized (0 0))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton commit
+  (vars (n data) (quote text) (a b b-0 name))
+  (defstrand auctioneer 2 (sealed (hash a b-0 n quote)) (a a) (b b))
+  (defstrand bidder 1 (n n) (quote quote) (a a) (b b-0))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "sig" a))
+  (operation encryption-test (added-strand bidder 1)
+    (enc "bid" (hash a b-0 n quote) (privk "sig" a)) (0 0))
+  (traces
+    ((recv (enc "bid" (hash a b-0 n quote) (privk "sig" a)))
+      (send (enc "receipt" (hash a b-0 n quote) (privk "sig" b))))
+    ((send (enc "bid" (hash a b-0 n quote) (privk "sig" a)))))
+  (label 4)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (sealed (hash a b-0 n quote)))))
+  (origs))
+
+(defskeleton commit
+  (vars (n data) (trash text) (a b name))
+  (defstrand auctioneer 2 (sealed (hash n trash)) (a a) (b b))
+  (defstrand bid-trash 1 (n n) (trash trash) (a a))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "sig" a))
+  (operation encryption-test (added-strand bid-trash 1)
+    (enc "bid" (hash n trash) (privk "sig" a)) (0 0))
+  (traces
+    ((recv (enc "bid" (hash n trash) (privk "sig" a)))
+      (send (enc "receipt" (hash n trash) (privk "sig" b))))
+    ((send (enc "bid" (hash n trash) (privk "sig" a)))))
+  (label 5)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (sealed (hash n trash)))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol commit basic
+  (defrole bidder
+    (vars (a b name) (n data) (quote outcome text))
+    (trace (send (enc "bid" (hash a b n quote) (privk "sig" a)))
+      (recv (enc "receipt" (hash a b n quote) (privk "sig" b)))
+      (send (cat n quote))
+      (recv (enc "result" a b n quote outcome (privk "sig" b)))))
+  (defrole bid-trash
+    (vars (a b name) (n data) (trash text))
+    (trace (send (enc "bid" (hash n trash) (privk "sig" a)))
+      (recv (enc "receipt" (hash n trash) (privk "sig" b)))))
+  (defrole auctioneer
+    (vars (a b name) (n data) (quote outcome text) (sealed mesg))
+    (trace (recv (enc "bid" sealed (privk "sig" a)))
+      (send (enc "receipt" sealed (privk "sig" b))) (recv (cat n quote))
+      (send (enc "result" a b n quote outcome (privk "sig" b)))))
+  (defrule cheq-auctioneer-4
+    (forall ((z strd) (quote text) (n data) (b a name) (sealed mesg))
+      (implies
+        (and (p "auctioneer" z (idx 4)) (p "auctioneer" "quote" z quote)
+          (p "auctioneer" "n" z n) (p "auctioneer" "b" z b)
+          (p "auctioneer" "a" z a) (p "auctioneer" "sealed" z sealed))
+        (= sealed (hash a b n quote)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton commit
+  (vars (n data) (quote outcome text) (a b name))
+  (defstrand auctioneer 4 (sealed (hash a b n quote)) (n n)
+    (quote quote) (outcome outcome) (a a) (b b))
+  (defstrand bidder 1 (n n) (quote quote) (a a) (b b))
+  (non-orig (privk "sig" a))
+  (uniq-gen n)
+  (traces
+    ((recv (enc "bid" (hash a b n quote) (privk "sig" a)))
+      (send (enc "receipt" (hash a b n quote) (privk "sig" b)))
+      (recv (cat n quote))
+      (send (enc "result" a b n quote outcome (privk "sig" b))))
+    ((send (enc "bid" (hash a b n quote) (privk "sig" a)))))
+  (label 6)
+  (unrealized (0 0) (0 2))
+  (preskeleton)
+  (origs)
+  (comment "Not a skeleton"))
+
+(defskeleton commit
+  (vars (n data) (quote outcome text) (a b name))
+  (defstrand auctioneer 4 (sealed (hash a b n quote)) (n n)
+    (quote quote) (outcome outcome) (a a) (b b))
+  (defstrand bidder 1 (n n) (quote quote) (a a) (b b))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "sig" a))
+  (uniq-gen n)
+  (traces
+    ((recv (enc "bid" (hash a b n quote) (privk "sig" a)))
+      (send (enc "receipt" (hash a b n quote) (privk "sig" b)))
+      (recv (cat n quote))
+      (send (enc "result" a b n quote outcome (privk "sig" b))))
+    ((send (enc "bid" (hash a b n quote) (privk "sig" a)))))
+  (label 7)
+  (parent 6)
+  (unrealized (0 2))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton commit
+  (vars (n data) (outcome quote text) (a b name))
+  (defstrand auctioneer 4 (sealed (hash a b n quote)) (n n)
+    (quote quote) (outcome outcome) (a a) (b b))
+  (defstrand bidder 3 (n n) (quote quote) (a a) (b b))
+  (precedes ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig (privk "sig" a))
+  (uniq-gen n)
+  (operation nonce-test (displaced 1 2 bidder 3) n (0 2))
+  (traces
+    ((recv (enc "bid" (hash a b n quote) (privk "sig" a)))
+      (send (enc "receipt" (hash a b n quote) (privk "sig" b)))
+      (recv (cat n quote))
+      (send (enc "result" a b n quote outcome (privk "sig" b))))
+    ((send (enc "bid" (hash a b n quote) (privk "sig" a)))
+      (recv (enc "receipt" (hash a b n quote) (privk "sig" b)))
+      (send (cat n quote))))
+  (label 8)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0 1) ((n n) (quote quote) (outcome outcome) (a a) (b b))))
+  (origs))
+
+(comment "Nothing left to do")
diff --git a/tst/comp_test.tst b/tst/comp_test.tst
--- a/tst/comp_test.tst
+++ b/tst/comp_test.tst
@@ -1,6 +1,6 @@
 (herald "Main Example")
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/comp_test.scm")
 
 (defprotocol main-ex-src basic
@@ -24,11 +24,17 @@
     (vars (a b c akey) (i d text) (k skey) (x mesg))
     (trace (recv (cat i a (enc (enc k b c i (invk a)) b) x))
       (send (enc "data" d k)))
-    (uniq-orig d)))
+    (uniq-orig d))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton main-ex-src
-  (vars (i ssn text) (k skey) (a b c akey))
-  (defstrand qn 2 (i i) (ssn ssn) (k k) (a a) (b b) (c c))
+  (vars (k skey) (i ssn text) (a b c akey))
+  (defstrand qn 2 (k k) (i i) (ssn ssn) (a a) (b b) (c c))
   (non-orig (invk a) (invk b) (invk c))
   (uniq-orig k)
   (comment
@@ -52,9 +58,9 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton main-ex-src
-  (vars (x mesg) (i ssn i-0 text) (k skey) (a b c c-0 akey))
-  (defstrand qn 2 (i i) (ssn ssn) (k k) (a a) (b b) (c c))
-  (defstrand an 2 (x x) (i i-0) (k k) (a a) (b b) (c c-0))
+  (vars (x mesg) (k skey) (i ssn i-0 text) (a b c c-0 akey))
+  (defstrand qn 2 (k k) (i i) (ssn ssn) (a a) (b b) (c c))
+  (defstrand an 2 (x x) (k k) (i i-0) (a a) (b b) (c c-0))
   (precedes ((0 0) (1 0)) ((1 1) (0 1)))
   (non-orig (invk a) (invk b) (invk c))
   (uniq-orig k)
@@ -71,8 +77,8 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton main-ex-src
-  (vars (i ssn text) (k skey) (a b c akey))
-  (defstrand qn 2 (i i) (ssn ssn) (k k) (a a) (b b) (c c))
+  (vars (k skey) (i ssn text) (a b c akey))
+  (defstrand qn 2 (k k) (i i) (ssn ssn) (a a) (b b) (c c))
   (deflistener k)
   (precedes ((0 0) (1 0)) ((1 1) (0 1)))
   (non-orig (invk a) (invk b) (invk c))
@@ -89,9 +95,9 @@
   (comment "empty cohort"))
 
 (defskeleton main-ex-src
-  (vars (x mesg) (i ssn text) (k skey) (a b c akey))
-  (defstrand qn 2 (i i) (ssn ssn) (k k) (a a) (b b) (c c))
-  (defstrand an 2 (x x) (i i) (k k) (a a) (b b) (c c))
+  (vars (x mesg) (k skey) (i ssn text) (a b c akey))
+  (defstrand qn 2 (k k) (i i) (ssn ssn) (a a) (b b) (c c))
+  (defstrand an 2 (x x) (k k) (i i) (a a) (b b) (c c))
   (precedes ((0 0) (1 0)) ((1 1) (0 1)))
   (non-orig (invk a) (invk b) (invk c))
   (uniq-orig k)
@@ -104,7 +110,7 @@
       (send (enc "sorry" a b k))))
   (label 3)
   (parent 1)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (c c) (i i) (ssn ssn) (k k))))
   (origs (k (0 0))))
@@ -132,11 +138,17 @@
     (vars (a b c akey) (i d text) (k skey) (x mesg))
     (trace (recv (cat i a (enc (enc k b c i (invk a)) b) x))
       (send (enc "data" d k)))
-    (uniq-orig d)))
+    (uniq-orig d))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton main-ex-src
-  (vars (i ssn d text) (k skey) (a b c akey))
-  (defstrand qy 2 (i i) (ssn ssn) (d d) (k k) (a a) (b b) (c c))
+  (vars (k skey) (i ssn d text) (a b c akey))
+  (defstrand qy 2 (k k) (i i) (ssn ssn) (d d) (a a) (b b) (c c))
   (non-orig (invk a) (invk b) (invk c))
   (uniq-orig k)
   (traces
@@ -148,12 +160,12 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton main-ex-src
-  (vars (x mesg) (i ssn d i-0 text) (k skey) (a b c a-0 b-0 c-0 akey))
-  (defstrand qy 2 (i i) (ssn ssn) (d d) (k k) (a a) (b b) (c c))
-  (defstrand ay 2 (x x) (i i-0) (d d) (k k) (a a-0) (b b-0) (c c-0))
+  (vars (x mesg) (k skey) (i ssn d i-0 text) (a b c a-0 b-0 c-0 akey))
+  (defstrand qy 2 (k k) (i i) (ssn ssn) (d d) (a a) (b b) (c c))
+  (defstrand ay 2 (x x) (k k) (i i-0) (d d) (a a-0) (b b-0) (c c-0))
   (precedes ((0 0) (1 0)) ((1 1) (0 1)))
   (non-orig (invk a) (invk b) (invk c))
-  (uniq-orig d k)
+  (uniq-orig k d)
   (operation encryption-test (added-strand ay 2) (enc "data" d k) (0 1))
   (traces
     ((send (cat i a (enc (enc k b c i (invk a)) b) (enc a b i ssn c)))
@@ -166,8 +178,8 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton main-ex-src
-  (vars (i ssn d text) (k skey) (a b c akey))
-  (defstrand qy 2 (i i) (ssn ssn) (d d) (k k) (a a) (b b) (c c))
+  (vars (k skey) (i ssn d text) (a b c akey))
+  (defstrand qy 2 (k k) (i i) (ssn ssn) (d d) (a a) (b b) (c c))
   (deflistener k)
   (precedes ((0 0) (1 0)) ((1 1) (0 1)))
   (non-orig (invk a) (invk b) (invk c))
@@ -183,12 +195,12 @@
   (comment "empty cohort"))
 
 (defskeleton main-ex-src
-  (vars (x mesg) (i ssn d text) (k skey) (a b c akey))
-  (defstrand qy 2 (i i) (ssn ssn) (d d) (k k) (a a) (b b) (c c))
-  (defstrand ay 2 (x x) (i i) (d d) (k k) (a a) (b b) (c c))
+  (vars (x mesg) (k skey) (i ssn d text) (a b c akey))
+  (defstrand qy 2 (k k) (i i) (ssn ssn) (d d) (a a) (b b) (c c))
+  (defstrand ay 2 (x x) (k k) (i i) (d d) (a a) (b b) (c c))
   (precedes ((0 0) (1 0)) ((1 1) (0 1)))
   (non-orig (invk a) (invk b) (invk c))
-  (uniq-orig d k)
+  (uniq-orig k d)
   (operation nonce-test (contracted (a-0 a) (b-0 b) (c-0 c) (i-0 i)) k
     (1 0) (enc (enc k b c i (invk a)) b))
   (traces
@@ -198,7 +210,7 @@
       (send (enc "data" d k))))
   (label 7)
   (parent 5)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (c c) (i i) (ssn ssn) (d d) (k k))))
   (origs (d (1 1)) (k (0 0))))
@@ -233,11 +245,17 @@
     (trace (recv (enc y n i a (enc a b i ssn c) c)) (send n)))
   (defrole sy
     (vars (a b c akey) (i ssn y n text))
-    (trace (recv (enc y n i a (enc a b i ssn c) c)) (send y))))
+    (trace (recv (enc y n i a (enc a b i ssn c) c)) (send y)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton main-ex-tgt
-  (vars (i ssn text) (k skey) (a b c akey))
-  (defstrand qn 2 (i i) (ssn ssn) (k k) (a a) (b b) (c c))
+  (vars (k skey) (i ssn text) (a b c akey))
+  (defstrand qn 2 (k k) (i i) (ssn ssn) (a a) (b b) (c c))
   (non-orig (invk a) (invk b) (invk c))
   (uniq-orig k)
   (traces
@@ -249,12 +267,12 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton main-ex-tgt
-  (vars (x mesg) (i ssn i-0 y n text) (k skey) (a b c c-0 akey))
-  (defstrand qn 2 (i i) (ssn ssn) (k k) (a a) (b b) (c c))
-  (defstrand an 4 (x x) (i i-0) (y y) (n n) (k k) (a a) (b b) (c c-0))
+  (vars (x mesg) (k skey) (i ssn i-0 y n text) (a b c c-0 akey))
+  (defstrand qn 2 (k k) (i i) (ssn ssn) (a a) (b b) (c c))
+  (defstrand an 4 (x x) (k k) (i i-0) (y y) (n n) (a a) (b b) (c c-0))
   (precedes ((0 0) (1 0)) ((1 3) (0 1)))
   (non-orig (invk a) (invk b) (invk c))
-  (uniq-orig y n k)
+  (uniq-orig k y n)
   (operation encryption-test (added-strand an 4) (enc "sorry" a b k)
     (0 1))
   (traces
@@ -268,8 +286,8 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton main-ex-tgt
-  (vars (i ssn text) (k skey) (a b c akey))
-  (defstrand qn 2 (i i) (ssn ssn) (k k) (a a) (b b) (c c))
+  (vars (k skey) (i ssn text) (a b c akey))
+  (defstrand qn 2 (k k) (i i) (ssn ssn) (a a) (b b) (c c))
   (deflistener k)
   (precedes ((0 0) (1 0)) ((1 1) (0 1)))
   (non-orig (invk a) (invk b) (invk c))
@@ -286,12 +304,12 @@
   (comment "empty cohort"))
 
 (defskeleton main-ex-tgt
-  (vars (x mesg) (i ssn y n text) (k skey) (a b c akey))
-  (defstrand qn 2 (i i) (ssn ssn) (k k) (a a) (b b) (c c))
-  (defstrand an 4 (x x) (i i) (y y) (n n) (k k) (a a) (b b) (c c))
+  (vars (x mesg) (k skey) (i ssn y n text) (a b c akey))
+  (defstrand qn 2 (k k) (i i) (ssn ssn) (a a) (b b) (c c))
+  (defstrand an 4 (x x) (k k) (i i) (y y) (n n) (a a) (b b) (c c))
   (precedes ((0 0) (1 0)) ((1 3) (0 1)))
   (non-orig (invk a) (invk b) (invk c))
-  (uniq-orig y n k)
+  (uniq-orig k y n)
   (operation encryption-test (displaced 2 0 qy 1)
     (enc k b c-0 i-0 (invk a)) (1 0))
   (traces
@@ -305,14 +323,14 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton main-ex-tgt
-  (vars (i ssn y n ssn-0 text) (k skey) (a b c b-0 akey))
-  (defstrand qn 2 (i i) (ssn ssn) (k k) (a a) (b b) (c c))
-  (defstrand an 4 (x (enc a b-0 i ssn-0 c)) (i i) (y y) (n n) (k k)
+  (vars (k skey) (i ssn y n ssn-0 text) (a b c b-0 akey))
+  (defstrand qn 2 (k k) (i i) (ssn ssn) (a a) (b b) (c c))
+  (defstrand an 4 (x (enc a b-0 i ssn-0 c)) (k k) (i i) (y y) (n n)
     (a a) (b b) (c c))
   (defstrand sn 2 (i i) (ssn ssn-0) (y y) (n n) (a a) (b b-0) (c c))
   (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((1 3) (0 1)) ((2 1) (1 2)))
   (non-orig (invk a) (invk b) (invk c))
-  (uniq-orig y n k)
+  (uniq-orig k y n)
   (operation nonce-test (added-strand sn 2) n (1 2)
     (enc y n i a (enc a b-0 i ssn-0 c) c))
   (traces
@@ -325,7 +343,7 @@
     ((recv (enc y n i a (enc a b-0 i ssn-0 c) c)) (send n)))
   (label 12)
   (parent 11)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (c c) (i i) (ssn ssn) (k k))))
   (origs (k (0 0)) (y (1 1)) (n (1 1))))
@@ -360,11 +378,17 @@
     (trace (recv (enc y n i a (enc a b i ssn c) c)) (send n)))
   (defrole sy
     (vars (a b c akey) (i ssn y n text))
-    (trace (recv (enc y n i a (enc a b i ssn c) c)) (send y))))
+    (trace (recv (enc y n i a (enc a b i ssn c) c)) (send y)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton main-ex-tgt
-  (vars (i ssn d text) (k skey) (a b c akey))
-  (defstrand qy 2 (i i) (ssn ssn) (d d) (k k) (a a) (b b) (c c))
+  (vars (k skey) (i ssn d text) (a b c akey))
+  (defstrand qy 2 (k k) (i i) (ssn ssn) (d d) (a a) (b b) (c c))
   (non-orig (invk a) (invk b) (invk c))
   (uniq-orig k)
   (traces
@@ -376,14 +400,14 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton main-ex-tgt
-  (vars (x mesg) (i ssn d i-0 y n text) (k skey)
+  (vars (x mesg) (k skey) (i ssn d i-0 y n text)
     (a b c a-0 b-0 c-0 akey))
-  (defstrand qy 2 (i i) (ssn ssn) (d d) (k k) (a a) (b b) (c c))
-  (defstrand ay 4 (x x) (i i-0) (y y) (n n) (d d) (k k) (a a-0) (b b-0)
+  (defstrand qy 2 (k k) (i i) (ssn ssn) (d d) (a a) (b b) (c c))
+  (defstrand ay 4 (x x) (k k) (i i-0) (y y) (n n) (d d) (a a-0) (b b-0)
     (c c-0))
   (precedes ((0 0) (1 0)) ((1 3) (0 1)))
   (non-orig (invk a) (invk b) (invk c))
-  (uniq-orig d y n k)
+  (uniq-orig k d y n)
   (operation encryption-test (added-strand ay 4) (enc "data" d k) (0 1))
   (traces
     ((send (cat i a (enc (enc k b c i (invk a)) b) (enc a b i ssn c)))
@@ -396,8 +420,8 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton main-ex-tgt
-  (vars (i ssn d text) (k skey) (a b c akey))
-  (defstrand qy 2 (i i) (ssn ssn) (d d) (k k) (a a) (b b) (c c))
+  (vars (k skey) (i ssn d text) (a b c akey))
+  (defstrand qy 2 (k k) (i i) (ssn ssn) (d d) (a a) (b b) (c c))
   (deflistener k)
   (precedes ((0 0) (1 0)) ((1 1) (0 1)))
   (non-orig (invk a) (invk b) (invk c))
@@ -413,12 +437,12 @@
   (comment "empty cohort"))
 
 (defskeleton main-ex-tgt
-  (vars (x mesg) (i ssn d y n text) (k skey) (a b c akey))
-  (defstrand qy 2 (i i) (ssn ssn) (d d) (k k) (a a) (b b) (c c))
-  (defstrand ay 4 (x x) (i i) (y y) (n n) (d d) (k k) (a a) (b b) (c c))
+  (vars (x mesg) (k skey) (i ssn d y n text) (a b c akey))
+  (defstrand qy 2 (k k) (i i) (ssn ssn) (d d) (a a) (b b) (c c))
+  (defstrand ay 4 (x x) (k k) (i i) (y y) (n n) (d d) (a a) (b b) (c c))
   (precedes ((0 0) (1 0)) ((1 3) (0 1)))
   (non-orig (invk a) (invk b) (invk c))
-  (uniq-orig d y n k)
+  (uniq-orig k d y n)
   (operation nonce-test (contracted (a-0 a) (b-0 b) (c-0 c) (i-0 i)) k
     (1 0) (enc (enc k b c i (invk a)) b))
   (traces
@@ -432,12 +456,12 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton main-ex-tgt
-  (vars (x mesg) (i ssn d n text) (k skey) (a b c akey))
-  (defstrand qy 2 (i i) (ssn ssn) (d d) (k k) (a a) (b b) (c c))
-  (defstrand ay 4 (x x) (i i) (y n) (n n) (d d) (k k) (a a) (b b) (c c))
+  (vars (x mesg) (k skey) (i ssn d n text) (a b c akey))
+  (defstrand qy 2 (k k) (i i) (ssn ssn) (d d) (a a) (b b) (c c))
+  (defstrand ay 4 (x x) (k k) (i i) (y n) (n n) (d d) (a a) (b b) (c c))
   (precedes ((0 0) (1 0)) ((1 3) (0 1)))
   (non-orig (invk a) (invk b) (invk c))
-  (uniq-orig d n k)
+  (uniq-orig k d n)
   (operation nonce-test (displaced 2 1 ay 2) y (1 2) (enc y n i a x c))
   (traces
     ((send (cat i a (enc (enc k b c i (invk a)) b) (enc a b i ssn c)))
@@ -450,14 +474,14 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton main-ex-tgt
-  (vars (i ssn d y n ssn-0 text) (k skey) (a b c b-0 akey))
-  (defstrand qy 2 (i i) (ssn ssn) (d d) (k k) (a a) (b b) (c c))
-  (defstrand ay 4 (x (enc a b-0 i ssn-0 c)) (i i) (y y) (n n) (d d)
-    (k k) (a a) (b b) (c c))
+  (vars (k skey) (i ssn d y n ssn-0 text) (a b c b-0 akey))
+  (defstrand qy 2 (k k) (i i) (ssn ssn) (d d) (a a) (b b) (c c))
+  (defstrand ay 4 (x (enc a b-0 i ssn-0 c)) (k k) (i i) (y y) (n n)
+    (d d) (a a) (b b) (c c))
   (defstrand sy 2 (i i) (ssn ssn-0) (y y) (n n) (a a) (b b-0) (c c))
   (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((1 3) (0 1)) ((2 1) (1 2)))
   (non-orig (invk a) (invk b) (invk c))
-  (uniq-orig d y n k)
+  (uniq-orig k d y n)
   (operation nonce-test (added-strand sy 2) y (1 2)
     (enc y n i a (enc a b-0 i ssn-0 c) c))
   (traces
@@ -470,20 +494,20 @@
     ((recv (enc y n i a (enc a b-0 i ssn-0 c) c)) (send y)))
   (label 18)
   (parent 16)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (c c) (i i) (ssn ssn) (d d) (k k))))
-  (origs (y (1 1)) (n (1 1)) (d (1 3)) (k (0 0))))
+  (origs (d (1 3)) (y (1 1)) (n (1 1)) (k (0 0))))
 
 (defskeleton main-ex-tgt
-  (vars (i ssn d n ssn-0 text) (k skey) (a b c b-0 akey))
-  (defstrand qy 2 (i i) (ssn ssn) (d d) (k k) (a a) (b b) (c c))
-  (defstrand ay 4 (x (enc a b-0 i ssn-0 c)) (i i) (y n) (n n) (d d)
-    (k k) (a a) (b b) (c c))
+  (vars (k skey) (i ssn d n ssn-0 text) (a b c b-0 akey))
+  (defstrand qy 2 (k k) (i i) (ssn ssn) (d d) (a a) (b b) (c c))
+  (defstrand ay 4 (x (enc a b-0 i ssn-0 c)) (k k) (i i) (y n) (n n)
+    (d d) (a a) (b b) (c c))
   (defstrand sy 2 (i i) (ssn ssn-0) (y n) (n n) (a a) (b b-0) (c c))
   (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((1 3) (0 1)) ((2 1) (1 2)))
   (non-orig (invk a) (invk b) (invk c))
-  (uniq-orig d n k)
+  (uniq-orig k d n)
   (operation nonce-test (added-strand sy 2) n (1 2)
     (enc n n i a (enc a b-0 i ssn-0 c) c))
   (traces
@@ -496,10 +520,9 @@
     ((recv (enc n n i a (enc a b-0 i ssn-0 c) c)) (send n)))
   (label 19)
   (parent 17)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (c c) (i i) (ssn ssn) (d d) (k k))))
-  (origs (n (1 1)) (d (1 3)) (k (0 0))))
+  (seen 18)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
 
 (comment "Nothing left to do")
 
@@ -535,18 +558,26 @@
   (defrule src
     (forall ((z strd) (i ssn text) (k skey) (a b c akey))
       (implies
-        (and (p "qn" z 2) (p "qn" "i" z i) (p "qn" "ssn" z ssn)
+        (and (p "qn" z (idx 2)) (p "qn" "i" z i) (p "qn" "ssn" z ssn)
           (p "qn" "k" z k) (p "qn" "a" z a) (p "qn" "b" z b)
           (p "qn" "c" z c) (non (invk a)) (non (invk b)) (non (invk c))
           (uniq k))
         (exists ((z-0 strd) (x mesg))
-          (and (p "an" z-0 4) (p "an" "x" z-0 x) (p "an" "i" z-0 i)
-            (p "an" "k" z-0 k) (p "an" "a" z-0 a) (p "an" "b" z-0 b)
-            (p "an" "c" z-0 c) (prec z 0 z-0 0) (prec z-0 3 z 1)))))))
+          (and (p "an" z-0 (idx 4)) (p "an" "x" z-0 x)
+            (p "an" "i" z-0 i) (p "an" "k" z-0 k) (p "an" "a" z-0 a)
+            (p "an" "b" z-0 b) (p "an" "c" z-0 c)
+            (prec z (idx 0) z-0 (idx 0))
+            (prec z-0 (idx 3) z (idx 1)))))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton main-ex-tgt-rule
-  (vars (i ssn text) (k skey) (a b c akey))
-  (defstrand qn 2 (i i) (ssn ssn) (k k) (a a) (b b) (c c))
+  (vars (k skey) (i ssn text) (a b c akey))
+  (defstrand qn 2 (k k) (i i) (ssn ssn) (a a) (b b) (c c))
   (non-orig (invk a) (invk b) (invk c))
   (uniq-orig k)
   (traces
@@ -558,12 +589,12 @@
   (comment "Not closed under rules"))
 
 (defskeleton main-ex-tgt-rule
-  (vars (x mesg) (ssn i y n text) (k skey) (a b c akey))
-  (defstrand qn 2 (i i) (ssn ssn) (k k) (a a) (b b) (c c))
-  (defstrand an 4 (x x) (i i) (y y) (n n) (k k) (a a) (b b) (c c))
+  (vars (x mesg) (k skey) (ssn i y n text) (a b c akey))
+  (defstrand qn 2 (k k) (i i) (ssn ssn) (a a) (b b) (c c))
+  (defstrand an 4 (x x) (k k) (i i) (y y) (n n) (a a) (b b) (c c))
   (precedes ((0 0) (1 0)) ((1 3) (0 1)))
   (non-orig (invk a) (invk b) (invk c))
-  (uniq-orig y n k)
+  (uniq-orig k y n)
   (rule src)
   (traces
     ((send (cat i a (enc (enc k b c i (invk a)) b) (enc a b i ssn c)))
@@ -576,14 +607,14 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton main-ex-tgt-rule
-  (vars (ssn i y n ssn-0 text) (k skey) (a b c b-0 akey))
-  (defstrand qn 2 (i i) (ssn ssn) (k k) (a a) (b b) (c c))
-  (defstrand an 4 (x (enc a b-0 i ssn-0 c)) (i i) (y y) (n n) (k k)
+  (vars (k skey) (ssn i y n ssn-0 text) (a b c b-0 akey))
+  (defstrand qn 2 (k k) (i i) (ssn ssn) (a a) (b b) (c c))
+  (defstrand an 4 (x (enc a b-0 i ssn-0 c)) (k k) (i i) (y y) (n n)
     (a a) (b b) (c c))
   (defstrand sn 2 (i i) (ssn ssn-0) (y y) (n n) (a a) (b b-0) (c c))
   (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((1 3) (0 1)) ((2 1) (1 2)))
   (non-orig (invk a) (invk b) (invk c))
-  (uniq-orig y n k)
+  (uniq-orig k y n)
   (operation nonce-test (added-strand sn 2) n (1 2)
     (enc y n i a (enc a b-0 i ssn-0 c) c))
   (traces
@@ -596,7 +627,7 @@
     ((recv (enc y n i a (enc a b-0 i ssn-0 c) c)) (send n)))
   (label 22)
   (parent 21)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (c c) (i i) (ssn ssn) (k k))))
   (origs (y (1 1)) (n (1 1)) (k (0 0))))
diff --git a/tst/completeness-test.scm b/tst/completeness-test.scm
new file mode 100644
--- /dev/null
+++ b/tst/completeness-test.scm
@@ -0,0 +1,56 @@
+;; In this protocol an initiator verifies the liveness
+;; of a responder via the first two messages of a
+;; Needham-Schroeder exchange.  The initiator then
+;; sends an ok message to a probe who is waiting
+;; to hear if the responder is live.
+
+(defprotocol completeness-test basic
+ (defrole init
+   (vars (a b name) (n text) (s skey))
+   (trace
+    (send (enc a n (pubk b)))
+    (recv (enc n (pubk a)))
+    (send (enc "ok" s))))
+ (defrole resp
+   (vars (a b name) (n text))
+   (trace
+    (recv (enc a n (pubk b)))
+    (send (enc n (pubk a)))))
+ (defrole probe
+   (vars (s skey))
+   (trace
+    (recv (enc "ok" s)))))
+
+;; These first two skeletons should be compared to
+;; each other.  They only differ in the order in which
+;; the strands are listed.  CPSA should find the same
+;; shapes for both of them.  However, CPSA 1.5.3
+;; only finds one shape for the first one.
+
+(defskeleton completeness-test
+  (vars (b name) (n text) (s skey))
+  (defstrand init 3 (b b) (n n))
+  (defstrand probe 1 (s s))
+  (non-orig s (privk b))
+  (uniq-orig n))
+
+(defskeleton completeness-test
+  (vars (b name) (n text) (s skey))
+  (defstrand probe 1 (s s))
+  (defstrand init 3 (b b) (n n))
+  (non-orig s (privk b))
+  (uniq-orig n))
+
+(defskeleton completeness-test
+  (vars (b name) (n text) (s skey))
+  (defstrand init 2 (b b) (n n))
+  (defstrand probe 1 (s s))
+  (non-orig s (privk b))
+  (uniq-orig n))
+
+(defskeleton completeness-test
+  (vars (b name) (n text) (s skey))
+  (defstrand probe 1 (s s))
+  (defstrand init 2 (b b) (n n))
+  (non-orig s (privk b))
+  (uniq-orig n))
diff --git a/tst/completeness-test.tst b/tst/completeness-test.tst
new file mode 100644
--- /dev/null
+++ b/tst/completeness-test.tst
@@ -0,0 +1,412 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/completeness-test.scm")
+
+(defprotocol completeness-test basic
+  (defrole init
+    (vars (a b name) (n text) (s skey))
+    (trace (send (enc a n (pubk b))) (recv (enc n (pubk a)))
+      (send (enc "ok" s))))
+  (defrole resp
+    (vars (a b name) (n text))
+    (trace (recv (enc a n (pubk b))) (send (enc n (pubk a)))))
+  (defrole probe (vars (s skey)) (trace (recv (enc "ok" s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton completeness-test
+  (vars (s s-0 skey) (n text) (b a name))
+  (defstrand init 3 (s s-0) (n n) (a a) (b b))
+  (defstrand probe 1 (s s))
+  (non-orig s (privk b))
+  (uniq-orig n)
+  (traces
+    ((send (enc a n (pubk b))) (recv (enc n (pubk a)))
+      (send (enc "ok" s-0))) ((recv (enc "ok" s))))
+  (label 0)
+  (unrealized (0 1) (1 0))
+  (origs (n (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton completeness-test
+  (vars (s skey) (n text) (b a name))
+  (defstrand init 3 (s s) (n n) (a a) (b b))
+  (defstrand probe 1 (s s))
+  (precedes ((0 2) (1 0)))
+  (non-orig s (privk b))
+  (uniq-orig n)
+  (operation encryption-test (displaced 2 0 init 3) (enc "ok" s-0)
+    (1 0))
+  (traces
+    ((send (enc a n (pubk b))) (recv (enc n (pubk a)))
+      (send (enc "ok" s))) ((recv (enc "ok" s))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1))
+  (origs (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton completeness-test
+  (vars (s s-0 skey) (n n-0 text) (b a a-0 b-0 name))
+  (defstrand init 3 (s s-0) (n n) (a a) (b b))
+  (defstrand probe 1 (s s))
+  (defstrand init 3 (s s) (n n-0) (a a-0) (b b-0))
+  (precedes ((2 2) (1 0)))
+  (non-orig s (privk b))
+  (uniq-orig n)
+  (operation encryption-test (added-strand init 3) (enc "ok" s) (1 0))
+  (traces
+    ((send (enc a n (pubk b))) (recv (enc n (pubk a)))
+      (send (enc "ok" s-0))) ((recv (enc "ok" s)))
+    ((send (enc a-0 n-0 (pubk b-0))) (recv (enc n-0 (pubk a-0)))
+      (send (enc "ok" s))))
+  (label 2)
+  (parent 0)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton completeness-test
+  (vars (s skey) (n text) (b a name))
+  (defstrand init 3 (s s) (n n) (a a) (b b))
+  (defstrand probe 1 (s s))
+  (defstrand resp 2 (n n) (a a) (b b))
+  (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1)))
+  (non-orig s (privk b))
+  (uniq-orig n)
+  (operation nonce-test (added-strand resp 2) n (0 1)
+    (enc a n (pubk b)))
+  (traces
+    ((send (enc a n (pubk b))) (recv (enc n (pubk a)))
+      (send (enc "ok" s))) ((recv (enc "ok" s)))
+    ((recv (enc a n (pubk b))) (send (enc n (pubk a)))))
+  (label 3)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0 1) ((b b) (n n) (s s) (a a) (s-0 s))))
+  (origs (n (0 0))))
+
+(defskeleton completeness-test
+  (vars (s s-0 skey) (n n-0 text) (b a a-0 b-0 name))
+  (defstrand init 3 (s s-0) (n n) (a a) (b b))
+  (defstrand probe 1 (s s))
+  (defstrand init 3 (s s) (n n-0) (a a-0) (b b-0))
+  (defstrand resp 2 (n n) (a a) (b b))
+  (precedes ((0 0) (3 0)) ((2 2) (1 0)) ((3 1) (0 1)))
+  (non-orig s (privk b))
+  (uniq-orig n)
+  (operation nonce-test (added-strand resp 2) n (0 1)
+    (enc a n (pubk b)))
+  (traces
+    ((send (enc a n (pubk b))) (recv (enc n (pubk a)))
+      (send (enc "ok" s-0))) ((recv (enc "ok" s)))
+    ((send (enc a-0 n-0 (pubk b-0))) (recv (enc n-0 (pubk a-0)))
+      (send (enc "ok" s)))
+    ((recv (enc a n (pubk b))) (send (enc n (pubk a)))))
+  (label 4)
+  (parent 2)
+  (realized)
+  (shape)
+  (maps ((0 1) ((b b) (n n) (s s) (a a) (s-0 s-0))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol completeness-test basic
+  (defrole init
+    (vars (a b name) (n text) (s skey))
+    (trace (send (enc a n (pubk b))) (recv (enc n (pubk a)))
+      (send (enc "ok" s))))
+  (defrole resp
+    (vars (a b name) (n text))
+    (trace (recv (enc a n (pubk b))) (send (enc n (pubk a)))))
+  (defrole probe (vars (s skey)) (trace (recv (enc "ok" s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton completeness-test
+  (vars (s s-0 skey) (n text) (b a name))
+  (defstrand probe 1 (s s))
+  (defstrand init 3 (s s-0) (n n) (a a) (b b))
+  (non-orig s (privk b))
+  (uniq-orig n)
+  (traces ((recv (enc "ok" s)))
+    ((send (enc a n (pubk b))) (recv (enc n (pubk a)))
+      (send (enc "ok" s-0))))
+  (label 5)
+  (unrealized (0 0) (1 1))
+  (origs (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton completeness-test
+  (vars (s s-0 skey) (n text) (b a name))
+  (defstrand probe 1 (s s))
+  (defstrand init 3 (s s-0) (n n) (a a) (b b))
+  (defstrand resp 2 (n n) (a a) (b b))
+  (precedes ((1 0) (2 0)) ((2 1) (1 1)))
+  (non-orig s (privk b))
+  (uniq-orig n)
+  (operation nonce-test (added-strand resp 2) n (1 1)
+    (enc a n (pubk b)))
+  (traces ((recv (enc "ok" s)))
+    ((send (enc a n (pubk b))) (recv (enc n (pubk a)))
+      (send (enc "ok" s-0)))
+    ((recv (enc a n (pubk b))) (send (enc n (pubk a)))))
+  (label 6)
+  (parent 5)
+  (unrealized (0 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton completeness-test
+  (vars (s skey) (n text) (b a name))
+  (defstrand probe 1 (s s))
+  (defstrand init 3 (s s) (n n) (a a) (b b))
+  (defstrand resp 2 (n n) (a a) (b b))
+  (precedes ((1 0) (2 0)) ((1 2) (0 0)) ((2 1) (1 1)))
+  (non-orig s (privk b))
+  (uniq-orig n)
+  (operation encryption-test (displaced 3 1 init 3) (enc "ok" s-0)
+    (0 0))
+  (traces ((recv (enc "ok" s)))
+    ((send (enc a n (pubk b))) (recv (enc n (pubk a)))
+      (send (enc "ok" s)))
+    ((recv (enc a n (pubk b))) (send (enc n (pubk a)))))
+  (label 7)
+  (parent 6)
+  (realized)
+  (shape)
+  (maps ((0 1) ((b b) (n n) (s s) (a a) (s-0 s))))
+  (origs (n (1 0))))
+
+(defskeleton completeness-test
+  (vars (s s-0 skey) (n n-0 text) (b a a-0 b-0 name))
+  (defstrand probe 1 (s s))
+  (defstrand init 3 (s s-0) (n n) (a a) (b b))
+  (defstrand resp 2 (n n) (a a) (b b))
+  (defstrand init 3 (s s) (n n-0) (a a-0) (b b-0))
+  (precedes ((1 0) (2 0)) ((2 1) (1 1)) ((3 2) (0 0)))
+  (non-orig s (privk b))
+  (uniq-orig n)
+  (operation encryption-test (added-strand init 3) (enc "ok" s) (0 0))
+  (traces ((recv (enc "ok" s)))
+    ((send (enc a n (pubk b))) (recv (enc n (pubk a)))
+      (send (enc "ok" s-0)))
+    ((recv (enc a n (pubk b))) (send (enc n (pubk a))))
+    ((send (enc a-0 n-0 (pubk b-0))) (recv (enc n-0 (pubk a-0)))
+      (send (enc "ok" s))))
+  (label 8)
+  (parent 6)
+  (realized)
+  (shape)
+  (maps ((0 1) ((b b) (n n) (s s) (a a) (s-0 s-0))))
+  (origs (n (1 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol completeness-test basic
+  (defrole init
+    (vars (a b name) (n text) (s skey))
+    (trace (send (enc a n (pubk b))) (recv (enc n (pubk a)))
+      (send (enc "ok" s))))
+  (defrole resp
+    (vars (a b name) (n text))
+    (trace (recv (enc a n (pubk b))) (send (enc n (pubk a)))))
+  (defrole probe (vars (s skey)) (trace (recv (enc "ok" s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton completeness-test
+  (vars (s skey) (n text) (b a name))
+  (defstrand init 2 (n n) (a a) (b b))
+  (defstrand probe 1 (s s))
+  (non-orig s (privk b))
+  (uniq-orig n)
+  (traces ((send (enc a n (pubk b))) (recv (enc n (pubk a))))
+    ((recv (enc "ok" s))))
+  (label 9)
+  (unrealized (0 1) (1 0))
+  (origs (n (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton completeness-test
+  (vars (s skey) (n text) (a b name))
+  (defstrand probe 1 (s s))
+  (defstrand init 3 (s s) (n n) (a a) (b b))
+  (precedes ((1 2) (0 0)))
+  (non-orig s (privk b))
+  (uniq-orig n)
+  (operation encryption-test (displaced 0 2 init 3) (enc "ok" s) (1 0))
+  (traces ((recv (enc "ok" s)))
+    ((send (enc a n (pubk b))) (recv (enc n (pubk a)))
+      (send (enc "ok" s))))
+  (label 10)
+  (parent 9)
+  (unrealized (1 1))
+  (origs (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton completeness-test
+  (vars (s skey) (n n-0 text) (b a a-0 b-0 name))
+  (defstrand init 2 (n n) (a a) (b b))
+  (defstrand probe 1 (s s))
+  (defstrand init 3 (s s) (n n-0) (a a-0) (b b-0))
+  (precedes ((2 2) (1 0)))
+  (non-orig s (privk b))
+  (uniq-orig n)
+  (operation encryption-test (added-strand init 3) (enc "ok" s) (1 0))
+  (traces ((send (enc a n (pubk b))) (recv (enc n (pubk a))))
+    ((recv (enc "ok" s)))
+    ((send (enc a-0 n-0 (pubk b-0))) (recv (enc n-0 (pubk a-0)))
+      (send (enc "ok" s))))
+  (label 11)
+  (parent 9)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton completeness-test
+  (vars (s skey) (n text) (a b name))
+  (defstrand probe 1 (s s))
+  (defstrand init 3 (s s) (n n) (a a) (b b))
+  (defstrand resp 2 (n n) (a a) (b b))
+  (precedes ((1 0) (2 0)) ((1 2) (0 0)) ((2 1) (1 1)))
+  (non-orig s (privk b))
+  (uniq-orig n)
+  (operation nonce-test (added-strand resp 2) n (1 1)
+    (enc a n (pubk b)))
+  (traces ((recv (enc "ok" s)))
+    ((send (enc a n (pubk b))) (recv (enc n (pubk a)))
+      (send (enc "ok" s)))
+    ((recv (enc a n (pubk b))) (send (enc n (pubk a)))))
+  (label 12)
+  (parent 10)
+  (realized)
+  (shape)
+  (maps ((1 0) ((b b) (n n) (s s) (a a))))
+  (origs (n (1 0))))
+
+(defskeleton completeness-test
+  (vars (s skey) (n n-0 text) (b a a-0 b-0 name))
+  (defstrand init 2 (n n) (a a) (b b))
+  (defstrand probe 1 (s s))
+  (defstrand init 3 (s s) (n n-0) (a a-0) (b b-0))
+  (defstrand resp 2 (n n) (a a) (b b))
+  (precedes ((0 0) (3 0)) ((2 2) (1 0)) ((3 1) (0 1)))
+  (non-orig s (privk b))
+  (uniq-orig n)
+  (operation nonce-test (added-strand resp 2) n (0 1)
+    (enc a n (pubk b)))
+  (traces ((send (enc a n (pubk b))) (recv (enc n (pubk a))))
+    ((recv (enc "ok" s)))
+    ((send (enc a-0 n-0 (pubk b-0))) (recv (enc n-0 (pubk a-0)))
+      (send (enc "ok" s)))
+    ((recv (enc a n (pubk b))) (send (enc n (pubk a)))))
+  (label 13)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0 1) ((b b) (n n) (s s) (a a))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol completeness-test basic
+  (defrole init
+    (vars (a b name) (n text) (s skey))
+    (trace (send (enc a n (pubk b))) (recv (enc n (pubk a)))
+      (send (enc "ok" s))))
+  (defrole resp
+    (vars (a b name) (n text))
+    (trace (recv (enc a n (pubk b))) (send (enc n (pubk a)))))
+  (defrole probe (vars (s skey)) (trace (recv (enc "ok" s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton completeness-test
+  (vars (s skey) (n text) (b a name))
+  (defstrand probe 1 (s s))
+  (defstrand init 2 (n n) (a a) (b b))
+  (non-orig s (privk b))
+  (uniq-orig n)
+  (traces ((recv (enc "ok" s)))
+    ((send (enc a n (pubk b))) (recv (enc n (pubk a)))))
+  (label 14)
+  (unrealized (0 0) (1 1))
+  (origs (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton completeness-test
+  (vars (s skey) (n text) (b a name))
+  (defstrand probe 1 (s s))
+  (defstrand init 2 (n n) (a a) (b b))
+  (defstrand resp 2 (n n) (a a) (b b))
+  (precedes ((1 0) (2 0)) ((2 1) (1 1)))
+  (non-orig s (privk b))
+  (uniq-orig n)
+  (operation nonce-test (added-strand resp 2) n (1 1)
+    (enc a n (pubk b)))
+  (traces ((recv (enc "ok" s)))
+    ((send (enc a n (pubk b))) (recv (enc n (pubk a))))
+    ((recv (enc a n (pubk b))) (send (enc n (pubk a)))))
+  (label 15)
+  (parent 14)
+  (unrealized (0 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton completeness-test
+  (vars (s skey) (n text) (a b name))
+  (defstrand probe 1 (s s))
+  (defstrand resp 2 (n n) (a a) (b b))
+  (defstrand init 3 (s s) (n n) (a a) (b b))
+  (precedes ((1 1) (2 1)) ((2 0) (1 0)) ((2 2) (0 0)))
+  (non-orig s (privk b))
+  (uniq-orig n)
+  (operation encryption-test (displaced 1 3 init 3) (enc "ok" s) (0 0))
+  (traces ((recv (enc "ok" s)))
+    ((recv (enc a n (pubk b))) (send (enc n (pubk a))))
+    ((send (enc a n (pubk b))) (recv (enc n (pubk a)))
+      (send (enc "ok" s))))
+  (label 16)
+  (parent 15)
+  (realized)
+  (shape)
+  (maps ((0 2) ((b b) (n n) (s s) (a a))))
+  (origs (n (2 0))))
+
+(defskeleton completeness-test
+  (vars (s skey) (n n-0 text) (b a a-0 b-0 name))
+  (defstrand probe 1 (s s))
+  (defstrand init 2 (n n) (a a) (b b))
+  (defstrand resp 2 (n n) (a a) (b b))
+  (defstrand init 3 (s s) (n n-0) (a a-0) (b b-0))
+  (precedes ((1 0) (2 0)) ((2 1) (1 1)) ((3 2) (0 0)))
+  (non-orig s (privk b))
+  (uniq-orig n)
+  (operation encryption-test (added-strand init 3) (enc "ok" s) (0 0))
+  (traces ((recv (enc "ok" s)))
+    ((send (enc a n (pubk b))) (recv (enc n (pubk a))))
+    ((recv (enc a n (pubk b))) (send (enc n (pubk a))))
+    ((send (enc a-0 n-0 (pubk b-0))) (recv (enc n-0 (pubk a-0)))
+      (send (enc "ok" s))))
+  (label 17)
+  (parent 15)
+  (realized)
+  (shape)
+  (maps ((0 1) ((b b) (n n) (s s) (a a))))
+  (origs (n (1 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/cpsagraphall b/tst/cpsagraphall
new file mode 100644
--- /dev/null
+++ b/tst/cpsagraphall
@@ -0,0 +1,12 @@
+#! /bin/sh
+
+# Graph all test output.
+
+PROG=cpsa4graph
+
+for i in *.txt
+do
+  o=`basename $i .txt`.svg
+  echo $PROG -o $o $i
+  $PROG -o $o $i
+done
diff --git a/tst/cpsagraphtst b/tst/cpsagraphtst
--- a/tst/cpsagraphtst
+++ b/tst/cpsagraphtst
@@ -2,7 +2,7 @@
 
 # Graph all expected test output.
 
-PROG=cpsagraph
+PROG=cpsa4graph
 
 for i in *.tst
 do
diff --git a/tst/cpsashapesall b/tst/cpsashapesall
new file mode 100644
--- /dev/null
+++ b/tst/cpsashapesall
@@ -0,0 +1,15 @@
+#! /bin/sh
+
+# Find the shapes associated with all test output.
+
+PROG=cpsa4shapes
+
+for i in *.txt
+do
+  if echo $i | grep -v shapes > /dev/null
+  then
+    o=`basename $i .txt`_shapes.txt
+    echo $PROG -o $o $i
+    $PROG -o $o $i
+  fi
+done
diff --git a/tst/crushing.scm b/tst/crushing.scm
new file mode 100644
--- /dev/null
+++ b/tst/crushing.scm
@@ -0,0 +1,35 @@
+;;; Attempt to make a protocol that reduces several strands by hulling at once
+
+(defprotocol crushing basic
+  (defrole init (vars (k akey) (n n1 n2 n3 text))
+    (trace
+	(send (enc n k))
+      (recv (enc n n1 (invk k)))
+      (recv (enc n n2 (invk k)))
+      (recv (enc n n3 (invk k)))
+      (send (enc n n1 n2 n3 (invk k)))
+      (recv (enc n n1 n2 n3 n (invk k)))
+    )
+    (uniq-orig n)
+    (non-orig (invk k))
+  )
+  (defrole adder (vars (k akey) (n new text))
+    (trace
+      (recv (enc n k))
+      (send (enc n new (invk k)))
+    )
+    (uniq-orig new)
+  )
+  (defrole twister (vars (k akey) (n n1 n2 n3 text))
+    (trace
+       (recv (enc n n1 n2 n3 (invk k)))
+       (send (enc n n2 n3 n1 n (invk k)))
+    )
+  )
+)
+
+(defskeleton crushing
+  (vars (k akey) (n n1 n2 n3  text))
+  (defstrand init 6 (k k) (n n) (n1 n1) (n2 n2) (n3 n3))
+  (uniq-orig n1 n2 n3)
+)
diff --git a/tst/crushing.tst b/tst/crushing.tst
new file mode 100644
--- /dev/null
+++ b/tst/crushing.tst
@@ -0,0 +1,375 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/crushing.scm")
+
+(defprotocol crushing basic
+  (defrole init
+    (vars (k akey) (n n1 n2 n3 text))
+    (trace (send (enc n k)) (recv (enc n n1 (invk k)))
+      (recv (enc n n2 (invk k))) (recv (enc n n3 (invk k)))
+      (send (enc n n1 n2 n3 (invk k)))
+      (recv (enc n n1 n2 n3 n (invk k))))
+    (non-orig (invk k))
+    (uniq-orig n))
+  (defrole adder
+    (vars (k akey) (n new text))
+    (trace (recv (enc n k)) (send (enc n new (invk k))))
+    (uniq-orig new))
+  (defrole twister
+    (vars (k akey) (n n1 n2 n3 text))
+    (trace (recv (enc n n1 n2 n3 (invk k)))
+      (send (enc n n2 n3 n1 n (invk k)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton crushing
+  (vars (n n1 n2 n3 text) (k akey))
+  (defstrand init 6 (n n) (n1 n1) (n2 n2) (n3 n3) (k k))
+  (non-orig (invk k))
+  (uniq-orig n n1 n2 n3)
+  (traces
+    ((send (enc n k)) (recv (enc n n1 (invk k)))
+      (recv (enc n n2 (invk k))) (recv (enc n n3 (invk k)))
+      (send (enc n n1 n2 n3 (invk k)))
+      (recv (enc n n1 n2 n3 n (invk k)))))
+  (label 0)
+  (unrealized (0 1) (0 2) (0 3) (0 5))
+  (origs (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton crushing
+  (vars (n n1 n2 n3 text) (k akey))
+  (defstrand init 6 (n n) (n1 n1) (n2 n2) (n3 n3) (k k))
+  (defstrand adder 2 (n n) (new n1) (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig n n1 n2 n3)
+  (operation encryption-test (added-strand adder 2) (enc n n1 (invk k))
+    (0 1))
+  (traces
+    ((send (enc n k)) (recv (enc n n1 (invk k)))
+      (recv (enc n n2 (invk k))) (recv (enc n n3 (invk k)))
+      (send (enc n n1 n2 n3 (invk k)))
+      (recv (enc n n1 n2 n3 n (invk k))))
+    ((recv (enc n k)) (send (enc n n1 (invk k)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 2) (0 3) (0 5))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton crushing
+  (vars (n n1 n3 text) (k akey))
+  (defstrand init 6 (n n) (n1 n1) (n2 n1) (n3 n3) (k k))
+  (defstrand adder 2 (n n) (new n1) (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig n n1 n3)
+  (operation encryption-test (displaced 2 1 adder 2) (enc n n2 (invk k))
+    (0 2))
+  (traces
+    ((send (enc n k)) (recv (enc n n1 (invk k)))
+      (recv (enc n n1 (invk k))) (recv (enc n n3 (invk k)))
+      (send (enc n n1 n1 n3 (invk k)))
+      (recv (enc n n1 n1 n3 n (invk k))))
+    ((recv (enc n k)) (send (enc n n1 (invk k)))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 3) (0 5))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton crushing
+  (vars (n n1 n2 n3 text) (k akey))
+  (defstrand init 6 (n n) (n1 n1) (n2 n2) (n3 n3) (k k))
+  (defstrand adder 2 (n n) (new n1) (k k))
+  (defstrand adder 2 (n n) (new n2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))
+  (non-orig (invk k))
+  (uniq-orig n n1 n2 n3)
+  (operation encryption-test (added-strand adder 2) (enc n n2 (invk k))
+    (0 2))
+  (traces
+    ((send (enc n k)) (recv (enc n n1 (invk k)))
+      (recv (enc n n2 (invk k))) (recv (enc n n3 (invk k)))
+      (send (enc n n1 n2 n3 (invk k)))
+      (recv (enc n n1 n2 n3 n (invk k))))
+    ((recv (enc n k)) (send (enc n n1 (invk k))))
+    ((recv (enc n k)) (send (enc n n2 (invk k)))))
+  (label 3)
+  (parent 1)
+  (unrealized (0 3) (0 5))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton crushing
+  (vars (n n1 text) (k akey))
+  (defstrand init 6 (n n) (n1 n1) (n2 n1) (n3 n1) (k k))
+  (defstrand adder 2 (n n) (new n1) (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig n n1)
+  (operation encryption-test (displaced 2 1 adder 2) (enc n n3 (invk k))
+    (0 3))
+  (traces
+    ((send (enc n k)) (recv (enc n n1 (invk k)))
+      (recv (enc n n1 (invk k))) (recv (enc n n1 (invk k)))
+      (send (enc n n1 n1 n1 (invk k)))
+      (recv (enc n n1 n1 n1 n (invk k))))
+    ((recv (enc n k)) (send (enc n n1 (invk k)))))
+  (label 4)
+  (parent 2)
+  (unrealized (0 5))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton crushing
+  (vars (n n1 n3 text) (k akey))
+  (defstrand init 6 (n n) (n1 n1) (n2 n1) (n3 n3) (k k))
+  (defstrand adder 2 (n n) (new n1) (k k))
+  (defstrand adder 2 (n n) (new n3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
+  (non-orig (invk k))
+  (uniq-orig n n1 n3)
+  (operation encryption-test (added-strand adder 2) (enc n n3 (invk k))
+    (0 3))
+  (traces
+    ((send (enc n k)) (recv (enc n n1 (invk k)))
+      (recv (enc n n1 (invk k))) (recv (enc n n3 (invk k)))
+      (send (enc n n1 n1 n3 (invk k)))
+      (recv (enc n n1 n1 n3 n (invk k))))
+    ((recv (enc n k)) (send (enc n n1 (invk k))))
+    ((recv (enc n k)) (send (enc n n3 (invk k)))))
+  (label 5)
+  (parent 2)
+  (unrealized (0 5))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton crushing
+  (vars (n n1 n2 text) (k akey))
+  (defstrand init 6 (n n) (n1 n1) (n2 n2) (n3 n1) (k k))
+  (defstrand adder 2 (n n) (new n1) (k k))
+  (defstrand adder 2 (n n) (new n2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))
+  (non-orig (invk k))
+  (uniq-orig n n1 n2)
+  (operation encryption-test (displaced 3 1 adder 2) (enc n n3 (invk k))
+    (0 3))
+  (traces
+    ((send (enc n k)) (recv (enc n n1 (invk k)))
+      (recv (enc n n2 (invk k))) (recv (enc n n1 (invk k)))
+      (send (enc n n1 n2 n1 (invk k)))
+      (recv (enc n n1 n2 n1 n (invk k))))
+    ((recv (enc n k)) (send (enc n n1 (invk k))))
+    ((recv (enc n k)) (send (enc n n2 (invk k)))))
+  (label 6)
+  (parent 3)
+  (unrealized (0 5))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton crushing
+  (vars (n n1 n2 text) (k akey))
+  (defstrand init 6 (n n) (n1 n1) (n2 n2) (n3 n2) (k k))
+  (defstrand adder 2 (n n) (new n1) (k k))
+  (defstrand adder 2 (n n) (new n2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))
+  (non-orig (invk k))
+  (uniq-orig n n1 n2)
+  (operation encryption-test (displaced 3 2 adder 2) (enc n n3 (invk k))
+    (0 3))
+  (traces
+    ((send (enc n k)) (recv (enc n n1 (invk k)))
+      (recv (enc n n2 (invk k))) (recv (enc n n2 (invk k)))
+      (send (enc n n1 n2 n2 (invk k)))
+      (recv (enc n n1 n2 n2 n (invk k))))
+    ((recv (enc n k)) (send (enc n n1 (invk k))))
+    ((recv (enc n k)) (send (enc n n2 (invk k)))))
+  (label 7)
+  (parent 3)
+  (unrealized (0 5))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton crushing
+  (vars (n n1 n2 n3 text) (k akey))
+  (defstrand init 6 (n n) (n1 n1) (n2 n2) (n3 n3) (k k))
+  (defstrand adder 2 (n n) (new n1) (k k))
+  (defstrand adder 2 (n n) (new n2) (k k))
+  (defstrand adder 2 (n n) (new n3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 2)) ((3 1) (0 3)))
+  (non-orig (invk k))
+  (uniq-orig n n1 n2 n3)
+  (operation encryption-test (added-strand adder 2) (enc n n3 (invk k))
+    (0 3))
+  (traces
+    ((send (enc n k)) (recv (enc n n1 (invk k)))
+      (recv (enc n n2 (invk k))) (recv (enc n n3 (invk k)))
+      (send (enc n n1 n2 n3 (invk k)))
+      (recv (enc n n1 n2 n3 n (invk k))))
+    ((recv (enc n k)) (send (enc n n1 (invk k))))
+    ((recv (enc n k)) (send (enc n n2 (invk k))))
+    ((recv (enc n k)) (send (enc n n3 (invk k)))))
+  (label 8)
+  (parent 3)
+  (unrealized (0 5))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton crushing
+  (vars (n n1 text) (k akey))
+  (defstrand init 6 (n n) (n1 n1) (n2 n1) (n3 n1) (k k))
+  (defstrand adder 2 (n n) (new n1) (k k))
+  (defstrand twister 2 (n n) (n1 n1) (n2 n1) (n3 n1) (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n n1)
+  (operation encryption-test (added-strand twister 2)
+    (enc n n1 n1 n1 n (invk k)) (0 5))
+  (traces
+    ((send (enc n k)) (recv (enc n n1 (invk k)))
+      (recv (enc n n1 (invk k))) (recv (enc n n1 (invk k)))
+      (send (enc n n1 n1 n1 (invk k)))
+      (recv (enc n n1 n1 n1 n (invk k))))
+    ((recv (enc n k)) (send (enc n n1 (invk k))))
+    ((recv (enc n n1 n1 n1 (invk k)))
+      (send (enc n n1 n1 n1 n (invk k)))))
+  (label 9)
+  (parent 4)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton crushing
+  (vars (n n1 n3 text) (k akey))
+  (defstrand init 6 (n n) (n1 n1) (n2 n1) (n3 n3) (k k))
+  (defstrand adder 2 (n n) (new n1) (k k))
+  (defstrand adder 2 (n n) (new n3) (k k))
+  (defstrand twister 2 (n n) (n1 n3) (n2 n1) (n3 n1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((1 1) (3 0))
+    ((2 1) (0 3)) ((2 1) (3 0)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n n1 n3)
+  (operation encryption-test (added-strand twister 2)
+    (enc n n1 n1 n3 n (invk k)) (0 5))
+  (traces
+    ((send (enc n k)) (recv (enc n n1 (invk k)))
+      (recv (enc n n1 (invk k))) (recv (enc n n3 (invk k)))
+      (send (enc n n1 n1 n3 (invk k)))
+      (recv (enc n n1 n1 n3 n (invk k))))
+    ((recv (enc n k)) (send (enc n n1 (invk k))))
+    ((recv (enc n k)) (send (enc n n3 (invk k))))
+    ((recv (enc n n3 n1 n1 (invk k)))
+      (send (enc n n1 n1 n3 n (invk k)))))
+  (label 10)
+  (parent 5)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton crushing
+  (vars (n n1 n2 text) (k akey))
+  (defstrand init 6 (n n) (n1 n1) (n2 n2) (n3 n1) (k k))
+  (defstrand adder 2 (n n) (new n1) (k k))
+  (defstrand adder 2 (n n) (new n2) (k k))
+  (defstrand twister 2 (n n) (n1 n1) (n2 n1) (n3 n2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((1 1) (3 0))
+    ((2 1) (0 2)) ((2 1) (3 0)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n n1 n2)
+  (operation encryption-test (added-strand twister 2)
+    (enc n n1 n2 n1 n (invk k)) (0 5))
+  (traces
+    ((send (enc n k)) (recv (enc n n1 (invk k)))
+      (recv (enc n n2 (invk k))) (recv (enc n n1 (invk k)))
+      (send (enc n n1 n2 n1 (invk k)))
+      (recv (enc n n1 n2 n1 n (invk k))))
+    ((recv (enc n k)) (send (enc n n1 (invk k))))
+    ((recv (enc n k)) (send (enc n n2 (invk k))))
+    ((recv (enc n n1 n1 n2 (invk k)))
+      (send (enc n n1 n2 n1 n (invk k)))))
+  (label 11)
+  (parent 6)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton crushing
+  (vars (n n1 n2 text) (k akey))
+  (defstrand init 6 (n n) (n1 n1) (n2 n2) (n3 n2) (k k))
+  (defstrand adder 2 (n n) (new n1) (k k))
+  (defstrand adder 2 (n n) (new n2) (k k))
+  (defstrand twister 2 (n n) (n1 n2) (n2 n1) (n3 n2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((1 1) (3 0))
+    ((2 1) (0 2)) ((2 1) (3 0)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n n1 n2)
+  (operation encryption-test (added-strand twister 2)
+    (enc n n1 n2 n2 n (invk k)) (0 5))
+  (traces
+    ((send (enc n k)) (recv (enc n n1 (invk k)))
+      (recv (enc n n2 (invk k))) (recv (enc n n2 (invk k)))
+      (send (enc n n1 n2 n2 (invk k)))
+      (recv (enc n n1 n2 n2 n (invk k))))
+    ((recv (enc n k)) (send (enc n n1 (invk k))))
+    ((recv (enc n k)) (send (enc n n2 (invk k))))
+    ((recv (enc n n2 n1 n2 (invk k)))
+      (send (enc n n1 n2 n2 n (invk k)))))
+  (label 12)
+  (parent 7)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton crushing
+  (vars (n n1 n2 n3 text) (k akey))
+  (defstrand init 6 (n n) (n1 n1) (n2 n2) (n3 n3) (k k))
+  (defstrand adder 2 (n n) (new n1) (k k))
+  (defstrand adder 2 (n n) (new n2) (k k))
+  (defstrand adder 2 (n n) (new n3) (k k))
+  (defstrand twister 2 (n n) (n1 n3) (n2 n1) (n3 n2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0)) ((3 1) (0 3))
+    ((3 1) (4 0)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n n1 n2 n3)
+  (operation encryption-test (added-strand twister 2)
+    (enc n n1 n2 n3 n (invk k)) (0 5))
+  (traces
+    ((send (enc n k)) (recv (enc n n1 (invk k)))
+      (recv (enc n n2 (invk k))) (recv (enc n n3 (invk k)))
+      (send (enc n n1 n2 n3 (invk k)))
+      (recv (enc n n1 n2 n3 n (invk k))))
+    ((recv (enc n k)) (send (enc n n1 (invk k))))
+    ((recv (enc n k)) (send (enc n n2 (invk k))))
+    ((recv (enc n k)) (send (enc n n3 (invk k))))
+    ((recv (enc n n3 n1 n2 (invk k)))
+      (send (enc n n1 n2 n3 n (invk k)))))
+  (label 13)
+  (parent 8)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton crushing
+  (vars (n n1 text) (k akey))
+  (defstrand init 6 (n n) (n1 n1) (n2 n1) (n3 n1) (k k))
+  (defstrand adder 2 (n n) (new n1) (k k))
+  (defstrand twister 2 (n n) (n1 n1) (n2 n1) (n3 n1) (k k))
+  (precedes ((0 0) (1 0)) ((0 4) (2 0)) ((1 1) (0 1)) ((2 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n n1)
+  (operation encryption-test (displaced 3 0 init 5)
+    (enc n n1 n1 n1 (invk k)) (2 0))
+  (traces
+    ((send (enc n k)) (recv (enc n n1 (invk k)))
+      (recv (enc n n1 (invk k))) (recv (enc n n1 (invk k)))
+      (send (enc n n1 n1 n1 (invk k)))
+      (recv (enc n n1 n1 n1 n (invk k))))
+    ((recv (enc n k)) (send (enc n n1 (invk k))))
+    ((recv (enc n n1 n1 n1 (invk k)))
+      (send (enc n n1 n1 n1 n (invk k)))))
+  (label 14)
+  (parent 9)
+  (realized)
+  (shape)
+  (maps ((0) ((k k) (n n) (n1 n1) (n2 n1) (n3 n1))))
+  (origs (n (0 0)) (n1 (1 1))))
+
+(comment "Nothing left to do")
diff --git a/tst/dass-mod.lisp b/tst/dass-mod.lisp
new file mode 100644
--- /dev/null
+++ b/tst/dass-mod.lisp
@@ -0,0 +1,31 @@
+(defprotocol dass basic
+  (defrole init
+    (vars (a name) (b name) (ks name) (k skey) (l text) (ta text) (tb text))
+    (trace (send b)
+	   (recv (enc (cat b (pubk b)) (privk ks)))
+	   (send (enc (cat (enc ta k) l a (enc k (pubk b))) (privk a)))
+	   (recv (enc tb k))))
+  (defrole resp
+    (vars (a name) (b name) (ks name) (k skey) (l text) (ta text) (tb text))
+    (trace (recv (enc (cat (enc ta k) l a (enc k (pubk b))) (privk a)))
+	   (send a)
+	   (recv (enc (cat a (pubk a)) (privk ks)))
+	   (send (enc tb k))))
+  (defrole keyserver
+    (vars (a name) (b name) (ks name))
+    (trace (recv b)
+	   (send (enc (cat b (pubk b)) (privk ks)))
+	   (recv a)
+	   (send (enc (cat a (pubk a)) (privk ks))))))
+
+(defskeleton dass
+  (vars (a name) (b name) (ks name) (k skey))
+  (defstrand init 4 (a a) (b b) (ks ks) (k k))
+  (non-orig (privk a) (privk b) (privk ks))
+  (uniq-orig k))
+
+(defskeleton dass
+  (vars (a name) (b name) (ks name) (k skey))
+  (defstrand resp 4 (a a) (b b) (ks ks) (k k))
+  (non-orig (privk a) (privk b) (privk ks))
+  (uniq-orig k))
diff --git a/tst/dass.lisp b/tst/dass.lisp
new file mode 100644
--- /dev/null
+++ b/tst/dass.lisp
@@ -0,0 +1,31 @@
+(defprotocol dass basic
+  (defrole init
+    (vars (a name) (b name) (ks name) (k skey) (l text) (ta text) (kp akey) (tb text))
+    (trace (send b)
+	   (recv (enc (cat b (pubk b)) (privk ks)))
+	   (send (cat (enc ta k) (enc (cat l a kp) (privk a)) (enc (enc k (pubk b)) kp)))
+	   (recv (enc tb k))))
+  (defrole resp
+    (vars (a name) (b name) (ks name) (k skey) (l text) (ta text) (kp akey) (tb text))
+    (trace (recv (cat (enc ta k) (enc (cat l a kp) (privk a)) (enc (enc k (pubk b)) kp)))
+	   (send a)
+	   (recv (enc (cat a (pubk a)) (privk ks)))
+	   (send (enc tb k))))
+  (defrole keyserver
+    (vars (a name) (b name) (ks name))
+    (trace (recv b)
+	   (send (enc (cat b (pubk b)) (privk ks)))
+	   (recv a)
+	   (send (enc (cat a (pubk a)) (privk ks))))))
+
+(defskeleton dass
+  (vars (a name) (b name) (ks name) (k skey) (kp akey))
+  (defstrand init 4 (a a) (b b) (ks ks) (k k) (kp kp))
+  (non-orig (privk a) (privk b) (privk ks))
+  (uniq-orig k kp))
+
+(defskeleton dass
+  (vars (a name) (b name) (ks name) (k skey) (kp akey))
+  (defstrand resp 4 (a a) (b b) (ks ks) (k k) (kp kp))
+  (non-orig (privk a) (privk b) (privk ks))
+  (uniq-orig k kp))
diff --git a/tst/dass_simple.scm b/tst/dass_simple.scm
new file mode 100644
--- /dev/null
+++ b/tst/dass_simple.scm
@@ -0,0 +1,57 @@
+(herald "Distributed Authentication Security Service Protocol Variants")
+
+(defprotocol dass-simple basic
+  (defrole init (vars (a b name) (k skey) (ta text) (kp akey) (tb text))
+    (trace (send (cat (enc "init" ta k)
+		      (enc a kp (privk a))
+		      (enc (enc k (pubk b)) (invk kp))))
+	   (recv (enc "resp" tb k))))
+  (defrole resp (vars (a b name) (k skey) (ta text) (kp akey) (tb text))
+    (trace (recv (cat (enc "init" ta k)
+		      (enc a kp (privk a))
+		      (enc (enc k (pubk b)) (invk kp))))
+	   (send (enc "resp" tb k))))
+  (comment "In this version of the protocol ")
+  (comment "b might interact with a compromised initiator.")
+  (comment "That is why a is not authenticated to b."))
+
+(defprotocol dass+ basic
+  (defrole init (vars (a b name) (k skey) (ta text) (kp akey) (tb text))
+    (trace (send (cat (enc "init" ta k)
+		      (enc a kp (privk a))
+		      (enc (enc k (pubk b)) (invk kp))))
+	   (recv (enc "resp" tb k))))
+  (defrole resp (vars (a b name) (k skey) (ta text) (kp akey) (tb text))
+    (trace (recv (cat (enc "init" ta k)
+		      (enc a kp (privk a))
+		      (enc (enc k (pubk b)) (invk kp))))
+	   (send (enc "resp" tb k)))
+    (non-orig (privk a)))
+  (comment "In this version of the protocol ")
+  (comment "b never interacts with a compromised initiator.")
+  (comment "That is why a is properly authenticated to b."))
+
+(defskeleton dass-simple
+  (vars (a name) (b name) (k skey) (kp akey) (ta text)(tb text))
+  (defstrand init 2 (a a) (b b) (k k) (kp kp) (ta ta) (tb tb))
+  (non-orig (privk a) (privk b) (invk kp))
+  (uniq-orig k kp))
+
+(defskeleton dass+
+  (vars (a name) (b name) (k skey) (kp akey) (ta text)(tb text))
+  (defstrand init 2 (a a) (b b) (k k) (kp kp) (ta ta) (tb tb))
+  (non-orig (privk a) (privk b) (invk kp))
+  (uniq-orig k kp))
+
+(comment
+ (defskeleton dass
+   (vars (a name) (b name) (ks name) (k skey) (kp akey))
+   (defstrand init 4 (a a) (b b) (ks ks) (k k) (kp kp))
+   (non-orig (privk a) (privk b) (privk ks))
+   (uniq-orig k kp))
+
+ (defskeleton dass
+   (vars (a name) (b name) (ks name) (k skey) (kp akey))
+   (defstrand resp 4 (a a) (b b) (ks ks) (k k) (kp kp))
+   (non-orig (privk a) (privk b) (privk ks))
+   (uniq-orig k kp)))
diff --git a/tst/dass_simple.tst b/tst/dass_simple.tst
new file mode 100644
--- /dev/null
+++ b/tst/dass_simple.tst
@@ -0,0 +1,377 @@
+(herald "Distributed Authentication Security Service Protocol Variants")
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/dass_simple.scm")
+
+(defprotocol dass-simple basic
+  (defrole init
+    (vars (a b name) (k skey) (ta text) (kp akey) (tb text))
+    (trace
+      (send
+        (cat (enc "init" ta k) (enc a kp (privk a))
+          (enc (enc k (pubk b)) (invk kp)))) (recv (enc "resp" tb k))))
+  (defrole resp
+    (vars (a b name) (k skey) (ta text) (kp akey) (tb text))
+    (trace
+      (recv
+        (cat (enc "init" ta k) (enc a kp (privk a))
+          (enc (enc k (pubk b)) (invk kp)))) (send (enc "resp" tb k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "In this version of the protocol ")
+  (comment "b might interact with a compromised initiator.")
+  (comment "That is why a is not authenticated to b."))
+
+(defskeleton dass-simple
+  (vars (k skey) (ta tb text) (kp akey) (a b name))
+  (defstrand init 2 (k k) (ta ta) (tb tb) (kp kp) (a a) (b b))
+  (non-orig (invk kp) (privk a) (privk b))
+  (uniq-orig k kp)
+  (traces
+    ((send
+       (cat (enc "init" ta k) (enc a kp (privk a))
+         (enc (enc k (pubk b)) (invk kp)))) (recv (enc "resp" tb k))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (k (0 0)) (kp (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dass-simple
+  (vars (k skey) (ta tb ta-0 text) (kp kp-0 akey) (a b a-0 b-0 name))
+  (defstrand init 2 (k k) (ta ta) (tb tb) (kp kp) (a a) (b b))
+  (defstrand resp 2 (k k) (ta ta-0) (tb tb) (kp kp-0) (a a-0) (b b-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk kp) (privk a) (privk b))
+  (uniq-orig k kp)
+  (operation encryption-test (added-strand resp 2) (enc "resp" tb k)
+    (0 1))
+  (traces
+    ((send
+       (cat (enc "init" ta k) (enc a kp (privk a))
+         (enc (enc k (pubk b)) (invk kp)))) (recv (enc "resp" tb k)))
+    ((recv
+       (cat (enc "init" ta-0 k) (enc a-0 kp-0 (privk a-0))
+         (enc (enc k (pubk b-0)) (invk kp-0))))
+      (send (enc "resp" tb k))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dass-simple
+  (vars (k skey) (ta tb text) (kp akey) (a b name))
+  (defstrand init 2 (k k) (ta ta) (tb tb) (kp kp) (a a) (b b))
+  (deflistener k)
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk kp) (privk a) (privk b))
+  (uniq-orig k kp)
+  (operation encryption-test (added-listener k) (enc "resp" tb k) (0 1))
+  (traces
+    ((send
+       (cat (enc "init" ta k) (enc a kp (privk a))
+         (enc (enc k (pubk b)) (invk kp)))) (recv (enc "resp" tb k)))
+    ((recv k) (send k)))
+  (label 2)
+  (parent 0)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dass-simple
+  (vars (k skey) (ta tb text) (kp kp-0 akey) (a b a-0 b-0 name))
+  (defstrand init 2 (k k) (ta ta) (tb tb) (kp kp) (a a) (b b))
+  (defstrand resp 2 (k k) (ta ta) (tb tb) (kp kp-0) (a a-0) (b b-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk kp) (privk a) (privk b))
+  (uniq-orig k kp)
+  (operation encryption-test (displaced 2 0 init 1) (enc "init" ta-0 k)
+    (1 0))
+  (traces
+    ((send
+       (cat (enc "init" ta k) (enc a kp (privk a))
+         (enc (enc k (pubk b)) (invk kp)))) (recv (enc "resp" tb k)))
+    ((recv
+       (cat (enc "init" ta k) (enc a-0 kp-0 (privk a-0))
+         (enc (enc k (pubk b-0)) (invk kp-0))))
+      (send (enc "resp" tb k))))
+  (label 3)
+  (parent 1)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dass-simple
+  (vars (k skey) (ta tb ta-0 text) (kp kp-0 akey) (a b a-0 b-0 name))
+  (defstrand init 2 (k k) (ta ta) (tb tb) (kp kp) (a a) (b b))
+  (defstrand resp 2 (k k) (ta ta-0) (tb tb) (kp kp-0) (a a-0) (b b-0))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (invk kp) (privk a) (privk b))
+  (uniq-orig k kp)
+  (operation encryption-test (added-listener k) (enc "init" ta-0 k)
+    (1 0))
+  (traces
+    ((send
+       (cat (enc "init" ta k) (enc a kp (privk a))
+         (enc (enc k (pubk b)) (invk kp)))) (recv (enc "resp" tb k)))
+    ((recv
+       (cat (enc "init" ta-0 k) (enc a-0 kp-0 (privk a-0))
+         (enc (enc k (pubk b-0)) (invk kp-0))))
+      (send (enc "resp" tb k))) ((recv k) (send k)))
+  (label 4)
+  (parent 1)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dass-simple
+  (vars (k skey) (ta tb text) (kp kp-0 akey) (a b a-0 name))
+  (defstrand init 2 (k k) (ta ta) (tb tb) (kp kp) (a a) (b b))
+  (defstrand resp 2 (k k) (ta ta) (tb tb) (kp kp-0) (a a-0) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk kp) (privk a) (privk b))
+  (uniq-orig k kp)
+  (operation nonce-test (contracted (b-0 b)) k (1 0) (enc k (pubk b)))
+  (traces
+    ((send
+       (cat (enc "init" ta k) (enc a kp (privk a))
+         (enc (enc k (pubk b)) (invk kp)))) (recv (enc "resp" tb k)))
+    ((recv
+       (cat (enc "init" ta k) (enc a-0 kp-0 (privk a-0))
+         (enc (enc k (pubk b)) (invk kp-0)))) (send (enc "resp" tb k))))
+  (label 5)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (k k) (kp kp) (ta ta) (tb tb))))
+  (origs (k (0 0)) (kp (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol dass+ basic
+  (defrole init
+    (vars (a b name) (k skey) (ta text) (kp akey) (tb text))
+    (trace
+      (send
+        (cat (enc "init" ta k) (enc a kp (privk a))
+          (enc (enc k (pubk b)) (invk kp)))) (recv (enc "resp" tb k))))
+  (defrole resp
+    (vars (a b name) (k skey) (ta text) (kp akey) (tb text))
+    (trace
+      (recv
+        (cat (enc "init" ta k) (enc a kp (privk a))
+          (enc (enc k (pubk b)) (invk kp)))) (send (enc "resp" tb k)))
+    (non-orig (privk a)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "In this version of the protocol ")
+  (comment "b never interacts with a compromised initiator.")
+  (comment "That is why a is properly authenticated to b."))
+
+(defskeleton dass+
+  (vars (k skey) (ta tb text) (kp akey) (a b name))
+  (defstrand init 2 (k k) (ta ta) (tb tb) (kp kp) (a a) (b b))
+  (non-orig (invk kp) (privk a) (privk b))
+  (uniq-orig k kp)
+  (traces
+    ((send
+       (cat (enc "init" ta k) (enc a kp (privk a))
+         (enc (enc k (pubk b)) (invk kp)))) (recv (enc "resp" tb k))))
+  (label 6)
+  (unrealized (0 1))
+  (origs (k (0 0)) (kp (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dass+
+  (vars (k skey) (ta tb ta-0 text) (kp kp-0 akey) (a b a-0 b-0 name))
+  (defstrand init 2 (k k) (ta ta) (tb tb) (kp kp) (a a) (b b))
+  (defstrand resp 2 (k k) (ta ta-0) (tb tb) (kp kp-0) (a a-0) (b b-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk kp) (privk a) (privk b) (privk a-0))
+  (uniq-orig k kp)
+  (operation encryption-test (added-strand resp 2) (enc "resp" tb k)
+    (0 1))
+  (traces
+    ((send
+       (cat (enc "init" ta k) (enc a kp (privk a))
+         (enc (enc k (pubk b)) (invk kp)))) (recv (enc "resp" tb k)))
+    ((recv
+       (cat (enc "init" ta-0 k) (enc a-0 kp-0 (privk a-0))
+         (enc (enc k (pubk b-0)) (invk kp-0))))
+      (send (enc "resp" tb k))))
+  (label 7)
+  (parent 6)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dass+
+  (vars (k skey) (ta tb text) (kp akey) (a b name))
+  (defstrand init 2 (k k) (ta ta) (tb tb) (kp kp) (a a) (b b))
+  (deflistener k)
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk kp) (privk a) (privk b))
+  (uniq-orig k kp)
+  (operation encryption-test (added-listener k) (enc "resp" tb k) (0 1))
+  (traces
+    ((send
+       (cat (enc "init" ta k) (enc a kp (privk a))
+         (enc (enc k (pubk b)) (invk kp)))) (recv (enc "resp" tb k)))
+    ((recv k) (send k)))
+  (label 8)
+  (parent 6)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dass+
+  (vars (k skey) (ta tb text) (kp kp-0 akey) (a b a-0 b-0 name))
+  (defstrand init 2 (k k) (ta ta) (tb tb) (kp kp) (a a) (b b))
+  (defstrand resp 2 (k k) (ta ta) (tb tb) (kp kp-0) (a a-0) (b b-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk kp) (privk a) (privk b) (privk a-0))
+  (uniq-orig k kp)
+  (operation encryption-test (displaced 2 0 init 1) (enc "init" ta-0 k)
+    (1 0))
+  (traces
+    ((send
+       (cat (enc "init" ta k) (enc a kp (privk a))
+         (enc (enc k (pubk b)) (invk kp)))) (recv (enc "resp" tb k)))
+    ((recv
+       (cat (enc "init" ta k) (enc a-0 kp-0 (privk a-0))
+         (enc (enc k (pubk b-0)) (invk kp-0))))
+      (send (enc "resp" tb k))))
+  (label 9)
+  (parent 7)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dass+
+  (vars (k skey) (ta tb ta-0 text) (kp kp-0 akey) (a b a-0 b-0 name))
+  (defstrand init 2 (k k) (ta ta) (tb tb) (kp kp) (a a) (b b))
+  (defstrand resp 2 (k k) (ta ta-0) (tb tb) (kp kp-0) (a a-0) (b b-0))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (invk kp) (privk a) (privk b) (privk a-0))
+  (uniq-orig k kp)
+  (operation encryption-test (added-listener k) (enc "init" ta-0 k)
+    (1 0))
+  (traces
+    ((send
+       (cat (enc "init" ta k) (enc a kp (privk a))
+         (enc (enc k (pubk b)) (invk kp)))) (recv (enc "resp" tb k)))
+    ((recv
+       (cat (enc "init" ta-0 k) (enc a-0 kp-0 (privk a-0))
+         (enc (enc k (pubk b-0)) (invk kp-0))))
+      (send (enc "resp" tb k))) ((recv k) (send k)))
+  (label 10)
+  (parent 7)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dass+
+  (vars (k skey) (ta tb text) (kp akey) (a b b-0 name))
+  (defstrand init 2 (k k) (ta ta) (tb tb) (kp kp) (a a) (b b))
+  (defstrand resp 2 (k k) (ta ta) (tb tb) (kp kp) (a a) (b b-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk kp) (privk a) (privk b))
+  (uniq-orig k kp)
+  (operation encryption-test (displaced 2 0 init 1)
+    (enc a-0 kp-0 (privk a-0)) (1 0))
+  (traces
+    ((send
+       (cat (enc "init" ta k) (enc a kp (privk a))
+         (enc (enc k (pubk b)) (invk kp)))) (recv (enc "resp" tb k)))
+    ((recv
+       (cat (enc "init" ta k) (enc a kp (privk a))
+         (enc (enc k (pubk b-0)) (invk kp)))) (send (enc "resp" tb k))))
+  (label 11)
+  (parent 9)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dass+
+  (vars (k k-0 skey) (ta tb ta-0 text) (kp kp-0 akey)
+    (a b a-0 b-0 b-1 name))
+  (defstrand init 2 (k k) (ta ta) (tb tb) (kp kp) (a a) (b b))
+  (defstrand resp 2 (k k) (ta ta) (tb tb) (kp kp-0) (a a-0) (b b-0))
+  (defstrand init 1 (k k-0) (ta ta-0) (kp kp-0) (a a-0) (b b-1))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 0) (1 0)))
+  (non-orig (invk kp) (privk a) (privk b) (privk a-0))
+  (uniq-orig k kp)
+  (operation encryption-test (added-strand init 1)
+    (enc a-0 kp-0 (privk a-0)) (1 0))
+  (traces
+    ((send
+       (cat (enc "init" ta k) (enc a kp (privk a))
+         (enc (enc k (pubk b)) (invk kp)))) (recv (enc "resp" tb k)))
+    ((recv
+       (cat (enc "init" ta k) (enc a-0 kp-0 (privk a-0))
+         (enc (enc k (pubk b-0)) (invk kp-0))))
+      (send (enc "resp" tb k)))
+    ((send
+       (cat (enc "init" ta-0 k-0) (enc a-0 kp-0 (privk a-0))
+         (enc (enc k-0 (pubk b-1)) (invk kp-0))))))
+  (label 12)
+  (parent 9)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dass+
+  (vars (k skey) (ta tb text) (kp akey) (a b name))
+  (defstrand init 2 (k k) (ta ta) (tb tb) (kp kp) (a a) (b b))
+  (defstrand resp 2 (k k) (ta ta) (tb tb) (kp kp) (a a) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk kp) (privk a) (privk b))
+  (uniq-orig k kp)
+  (operation encryption-test (displaced 2 0 init 1)
+    (enc (enc k (pubk b-0)) (invk kp)) (1 0))
+  (traces
+    ((send
+       (cat (enc "init" ta k) (enc a kp (privk a))
+         (enc (enc k (pubk b)) (invk kp)))) (recv (enc "resp" tb k)))
+    ((recv
+       (cat (enc "init" ta k) (enc a kp (privk a))
+         (enc (enc k (pubk b)) (invk kp)))) (send (enc "resp" tb k))))
+  (label 13)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (k k) (kp kp) (ta ta) (tb tb))))
+  (origs (k (0 0)) (kp (0 0))))
+
+(defskeleton dass+
+  (vars (k k-0 skey) (ta tb ta-0 text) (kp kp-0 akey)
+    (a b a-0 b-0 name))
+  (defstrand init 2 (k k) (ta ta) (tb tb) (kp kp) (a a) (b b))
+  (defstrand resp 2 (k k) (ta ta) (tb tb) (kp kp-0) (a a-0) (b b))
+  (defstrand init 1 (k k-0) (ta ta-0) (kp kp-0) (a a-0) (b b-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 0) (1 0)))
+  (non-orig (invk kp) (privk a) (privk b) (privk a-0))
+  (uniq-orig k kp)
+  (operation nonce-test (contracted (b-1 b)) k (1 0) (enc k (pubk b)))
+  (traces
+    ((send
+       (cat (enc "init" ta k) (enc a kp (privk a))
+         (enc (enc k (pubk b)) (invk kp)))) (recv (enc "resp" tb k)))
+    ((recv
+       (cat (enc "init" ta k) (enc a-0 kp-0 (privk a-0))
+         (enc (enc k (pubk b)) (invk kp-0)))) (send (enc "resp" tb k)))
+    ((send
+       (cat (enc "init" ta-0 k-0) (enc a-0 kp-0 (privk a-0))
+         (enc (enc k-0 (pubk b-0)) (invk kp-0))))))
+  (label 14)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (k k) (kp kp) (ta ta) (tb tb))))
+  (origs (k (0 0)) (kp (0 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/denning-sacco.scm b/tst/denning-sacco.scm
new file mode 100644
--- /dev/null
+++ b/tst/denning-sacco.scm
@@ -0,0 +1,27 @@
+(herald "Denning-Sacco Protocol")
+
+(defprotocol denning-sacco basic
+  (defrole init (vars (a b ks name) (k skey) (ta text))
+    (trace
+     (send (cat a b))
+     (recv (cat (enc b (pubk b) (privk ks))
+		(enc a (pubk a) (privk ks))))
+     (send (enc (enc a b k ta (privk a))
+		(enc b (pubk b) (privk ks))
+		(enc a (pubk a) (privk ks)) (pubk b)))))
+  (defrole resp (vars (a b ks name) (k skey) (ta text))
+    (trace
+     (recv (enc (enc a b k ta (privk a))
+		(enc b (pubk b) (privk ks))
+		(enc a (pubk a) (privk ks)) (pubk b)))))
+  (defrole keyserver (vars (a b ks name))
+    (trace
+     (recv (cat a b))
+     (send (cat (enc b (pubk b) (privk ks))
+		(enc a (pubk a) (privk ks)))))))
+
+(defskeleton denning-sacco
+  (vars (a b ks name) (k skey))
+  (defstrand resp 1 (a a) (b b) (ks ks) (k k))
+  (non-orig (privk b) (privk a) (privk ks))
+  (uniq-orig k))
diff --git a/tst/denning-sacco.tst b/tst/denning-sacco.tst
new file mode 100644
--- /dev/null
+++ b/tst/denning-sacco.tst
@@ -0,0 +1,423 @@
+(herald "Denning-Sacco Protocol")
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/denning-sacco.scm")
+
+(defprotocol denning-sacco basic
+  (defrole init
+    (vars (a b ks name) (k skey) (ta text))
+    (trace (send (cat a b))
+      (recv
+        (cat (enc b (pubk b) (privk ks)) (enc a (pubk a) (privk ks))))
+      (send
+        (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+          (enc a (pubk a) (privk ks)) (pubk b)))))
+  (defrole resp
+    (vars (a b ks name) (k skey) (ta text))
+    (trace
+      (recv
+        (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+          (enc a (pubk a) (privk ks)) (pubk b)))))
+  (defrole keyserver
+    (vars (a b ks name))
+    (trace (recv (cat a b))
+      (send
+        (cat (enc b (pubk b) (privk ks)) (enc a (pubk a) (privk ks))))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton denning-sacco
+  (vars (k skey) (ta text) (a b ks name))
+  (defstrand resp 1 (k k) (ta ta) (a a) (b b) (ks ks))
+  (non-orig (privk a) (privk b) (privk ks))
+  (uniq-orig k)
+  (traces
+    ((recv
+       (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+         (enc a (pubk a) (privk ks)) (pubk b)))))
+  (label 0)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton denning-sacco
+  (vars (k skey) (ta text) (a b ks ks-0 name))
+  (defstrand resp 1 (k k) (ta ta) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ta ta) (a a) (b b) (ks ks-0))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk a) (privk b) (privk ks))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 3)
+    (enc a b k ta (privk a)) (0 0))
+  (traces
+    ((recv
+       (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+         (enc a (pubk a) (privk ks)) (pubk b))))
+    ((send (cat a b))
+      (recv
+        (cat (enc b (pubk b) (privk ks-0))
+          (enc a (pubk a) (privk ks-0))))
+      (send
+        (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks-0))
+          (enc a (pubk a) (privk ks-0)) (pubk b)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton denning-sacco
+  (vars (k skey) (ta text) (a b ks name))
+  (defstrand resp 1 (k k) (ta ta) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ta ta) (a a) (b b) (ks ks))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk a) (privk b) (privk ks))
+  (uniq-orig k)
+  (operation encryption-test (contracted (ks-0 ks))
+    (enc a b k ta (privk a)) (0 0)
+    (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+      (enc a (pubk a) (privk ks)) (pubk b)))
+  (traces
+    ((recv
+       (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+         (enc a (pubk a) (privk ks)) (pubk b))))
+    ((send (cat a b))
+      (recv
+        (cat (enc b (pubk b) (privk ks)) (enc a (pubk a) (privk ks))))
+      (send
+        (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+          (enc a (pubk a) (privk ks)) (pubk b)))))
+  (label 2)
+  (parent 1)
+  (unrealized (1 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton denning-sacco
+  (vars (k skey) (ta text) (a b ks a-0 name))
+  (defstrand resp 1 (k k) (ta ta) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ta ta) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (a a-0) (b b) (ks ks))
+  (precedes ((1 2) (0 0)) ((2 1) (1 1)))
+  (non-orig (privk a) (privk b) (privk ks))
+  (uniq-orig k)
+  (operation encryption-test (added-strand keyserver 2)
+    (enc b (pubk b) (privk ks)) (1 1))
+  (traces
+    ((recv
+       (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+         (enc a (pubk a) (privk ks)) (pubk b))))
+    ((send (cat a b))
+      (recv
+        (cat (enc b (pubk b) (privk ks)) (enc a (pubk a) (privk ks))))
+      (send
+        (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+          (enc a (pubk a) (privk ks)) (pubk b))))
+    ((recv (cat a-0 b))
+      (send
+        (cat (enc b (pubk b) (privk ks))
+          (enc a-0 (pubk a-0) (privk ks))))))
+  (label 3)
+  (parent 2)
+  (unrealized (1 1))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton denning-sacco
+  (vars (k skey) (ta text) (a b ks b-0 name))
+  (defstrand resp 1 (k k) (ta ta) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ta ta) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (a b) (b b-0) (ks ks))
+  (precedes ((1 2) (0 0)) ((2 1) (1 1)))
+  (non-orig (privk a) (privk b) (privk ks))
+  (uniq-orig k)
+  (operation encryption-test (added-strand keyserver 2)
+    (enc b (pubk b) (privk ks)) (1 1))
+  (traces
+    ((recv
+       (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+         (enc a (pubk a) (privk ks)) (pubk b))))
+    ((send (cat a b))
+      (recv
+        (cat (enc b (pubk b) (privk ks)) (enc a (pubk a) (privk ks))))
+      (send
+        (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+          (enc a (pubk a) (privk ks)) (pubk b))))
+    ((recv (cat b b-0))
+      (send
+        (cat (enc b-0 (pubk b-0) (privk ks))
+          (enc b (pubk b) (privk ks))))))
+  (label 4)
+  (parent 2)
+  (unrealized (1 1))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton denning-sacco
+  (vars (k skey) (ta text) (a b ks a-0 a-1 name))
+  (defstrand resp 1 (k k) (ta ta) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ta ta) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (a a-0) (b b) (ks ks))
+  (defstrand keyserver 2 (a a-1) (b a) (ks ks))
+  (precedes ((1 2) (0 0)) ((2 1) (1 1)) ((3 1) (1 1)))
+  (non-orig (privk a) (privk b) (privk ks))
+  (uniq-orig k)
+  (operation encryption-test (added-strand keyserver 2)
+    (enc a (pubk a) (privk ks)) (1 1))
+  (traces
+    ((recv
+       (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+         (enc a (pubk a) (privk ks)) (pubk b))))
+    ((send (cat a b))
+      (recv
+        (cat (enc b (pubk b) (privk ks)) (enc a (pubk a) (privk ks))))
+      (send
+        (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+          (enc a (pubk a) (privk ks)) (pubk b))))
+    ((recv (cat a-0 b))
+      (send
+        (cat (enc b (pubk b) (privk ks))
+          (enc a-0 (pubk a-0) (privk ks)))))
+    ((recv (cat a-1 a))
+      (send
+        (cat (enc a (pubk a) (privk ks))
+          (enc a-1 (pubk a-1) (privk ks))))))
+  (label 5)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (ks ks) (k k) (ta ta))))
+  (origs (k (1 2))))
+
+(defskeleton denning-sacco
+  (vars (k skey) (ta text) (b ks a name))
+  (defstrand resp 1 (k k) (ta ta) (a b) (b b) (ks ks))
+  (defstrand init 3 (k k) (ta ta) (a b) (b b) (ks ks))
+  (defstrand keyserver 2 (a a) (b b) (ks ks))
+  (precedes ((1 2) (0 0)) ((2 1) (1 1)))
+  (non-orig (privk b) (privk ks))
+  (uniq-orig k)
+  (operation encryption-test (displaced 3 2 keyserver 2)
+    (enc a-0 (pubk a-0) (privk ks)) (1 1))
+  (traces
+    ((recv
+       (enc (enc b b k ta (privk b)) (enc b (pubk b) (privk ks))
+         (enc b (pubk b) (privk ks)) (pubk b))))
+    ((send (cat b b))
+      (recv
+        (cat (enc b (pubk b) (privk ks)) (enc b (pubk b) (privk ks))))
+      (send
+        (enc (enc b b k ta (privk b)) (enc b (pubk b) (privk ks))
+          (enc b (pubk b) (privk ks)) (pubk b))))
+    ((recv (cat a b))
+      (send
+        (cat (enc b (pubk b) (privk ks)) (enc a (pubk a) (privk ks))))))
+  (label 6)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((a b) (b b) (ks ks) (k k) (ta ta))))
+  (origs (k (1 2))))
+
+(defskeleton denning-sacco
+  (vars (k skey) (ta text) (b ks a name))
+  (defstrand resp 1 (k k) (ta ta) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ta ta) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (a a) (b b) (ks ks))
+  (precedes ((1 2) (0 0)) ((2 1) (1 1)))
+  (non-orig (privk b) (privk ks) (privk a))
+  (uniq-orig k)
+  (operation encryption-test (displaced 3 2 keyserver 2)
+    (enc a-0 (pubk a-0) (privk ks)) (1 1))
+  (traces
+    ((recv
+       (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+         (enc a (pubk a) (privk ks)) (pubk b))))
+    ((send (cat a b))
+      (recv
+        (cat (enc b (pubk b) (privk ks)) (enc a (pubk a) (privk ks))))
+      (send
+        (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+          (enc a (pubk a) (privk ks)) (pubk b))))
+    ((recv (cat a b))
+      (send
+        (cat (enc b (pubk b) (privk ks)) (enc a (pubk a) (privk ks))))))
+  (label 7)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (ks ks) (k k) (ta ta))))
+  (origs (k (1 2))))
+
+(defskeleton denning-sacco
+  (vars (k skey) (ta text) (a b ks a-0 b-0 name))
+  (defstrand resp 1 (k k) (ta ta) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ta ta) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (a a-0) (b b) (ks ks))
+  (defstrand keyserver 2 (a a) (b b-0) (ks ks))
+  (precedes ((1 2) (0 0)) ((2 1) (1 1)) ((3 1) (1 1)))
+  (non-orig (privk a) (privk b) (privk ks))
+  (uniq-orig k)
+  (operation encryption-test (added-strand keyserver 2)
+    (enc a (pubk a) (privk ks)) (1 1))
+  (traces
+    ((recv
+       (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+         (enc a (pubk a) (privk ks)) (pubk b))))
+    ((send (cat a b))
+      (recv
+        (cat (enc b (pubk b) (privk ks)) (enc a (pubk a) (privk ks))))
+      (send
+        (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+          (enc a (pubk a) (privk ks)) (pubk b))))
+    ((recv (cat a-0 b))
+      (send
+        (cat (enc b (pubk b) (privk ks))
+          (enc a-0 (pubk a-0) (privk ks)))))
+    ((recv (cat a b-0))
+      (send
+        (cat (enc b-0 (pubk b-0) (privk ks))
+          (enc a (pubk a) (privk ks))))))
+  (label 8)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (ks ks) (k k) (ta ta))))
+  (origs (k (1 2))))
+
+(defskeleton denning-sacco
+  (vars (k skey) (ta text) (a b ks b-0 a-0 name))
+  (defstrand resp 1 (k k) (ta ta) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ta ta) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (a b) (b b-0) (ks ks))
+  (defstrand keyserver 2 (a a-0) (b a) (ks ks))
+  (precedes ((1 2) (0 0)) ((2 1) (1 1)) ((3 1) (1 1)))
+  (non-orig (privk a) (privk b) (privk ks))
+  (uniq-orig k)
+  (operation encryption-test (added-strand keyserver 2)
+    (enc a (pubk a) (privk ks)) (1 1))
+  (traces
+    ((recv
+       (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+         (enc a (pubk a) (privk ks)) (pubk b))))
+    ((send (cat a b))
+      (recv
+        (cat (enc b (pubk b) (privk ks)) (enc a (pubk a) (privk ks))))
+      (send
+        (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+          (enc a (pubk a) (privk ks)) (pubk b))))
+    ((recv (cat b b-0))
+      (send
+        (cat (enc b-0 (pubk b-0) (privk ks))
+          (enc b (pubk b) (privk ks)))))
+    ((recv (cat a-0 a))
+      (send
+        (cat (enc a (pubk a) (privk ks))
+          (enc a-0 (pubk a-0) (privk ks))))))
+  (label 9)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (ks ks) (k k) (ta ta))))
+  (origs (k (1 2))))
+
+(defskeleton denning-sacco
+  (vars (k skey) (ta text) (b ks b-0 name))
+  (defstrand resp 1 (k k) (ta ta) (a b-0) (b b) (ks ks))
+  (defstrand init 3 (k k) (ta ta) (a b-0) (b b) (ks ks))
+  (defstrand keyserver 2 (a b) (b b-0) (ks ks))
+  (precedes ((1 2) (0 0)) ((2 1) (1 1)))
+  (non-orig (privk b) (privk ks) (privk b-0))
+  (uniq-orig k)
+  (operation encryption-test (displaced 3 2 keyserver 2)
+    (enc a (pubk a) (privk ks)) (1 1))
+  (traces
+    ((recv
+       (enc (enc b-0 b k ta (privk b-0)) (enc b (pubk b) (privk ks))
+         (enc b-0 (pubk b-0) (privk ks)) (pubk b))))
+    ((send (cat b-0 b))
+      (recv
+        (cat (enc b (pubk b) (privk ks))
+          (enc b-0 (pubk b-0) (privk ks))))
+      (send
+        (enc (enc b-0 b k ta (privk b-0)) (enc b (pubk b) (privk ks))
+          (enc b-0 (pubk b-0) (privk ks)) (pubk b))))
+    ((recv (cat b b-0))
+      (send
+        (cat (enc b-0 (pubk b-0) (privk ks))
+          (enc b (pubk b) (privk ks))))))
+  (label 10)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((a b-0) (b b) (ks ks) (k k) (ta ta))))
+  (origs (k (1 2))))
+
+(defskeleton denning-sacco
+  (vars (k skey) (ta text) (b ks b-0 name))
+  (defstrand resp 1 (k k) (ta ta) (a b) (b b) (ks ks))
+  (defstrand init 3 (k k) (ta ta) (a b) (b b) (ks ks))
+  (defstrand keyserver 2 (a b) (b b-0) (ks ks))
+  (precedes ((1 2) (0 0)) ((2 1) (1 1)))
+  (non-orig (privk b) (privk ks))
+  (uniq-orig k)
+  (operation encryption-test (displaced 3 2 keyserver 2)
+    (enc a (pubk a) (privk ks)) (1 1))
+  (traces
+    ((recv
+       (enc (enc b b k ta (privk b)) (enc b (pubk b) (privk ks))
+         (enc b (pubk b) (privk ks)) (pubk b))))
+    ((send (cat b b))
+      (recv
+        (cat (enc b (pubk b) (privk ks)) (enc b (pubk b) (privk ks))))
+      (send
+        (enc (enc b b k ta (privk b)) (enc b (pubk b) (privk ks))
+          (enc b (pubk b) (privk ks)) (pubk b))))
+    ((recv (cat b b-0))
+      (send
+        (cat (enc b-0 (pubk b-0) (privk ks))
+          (enc b (pubk b) (privk ks))))))
+  (label 11)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((a b) (b b) (ks ks) (k k) (ta ta))))
+  (origs (k (1 2))))
+
+(defskeleton denning-sacco
+  (vars (k skey) (ta text) (a b ks b-0 b-1 name))
+  (defstrand resp 1 (k k) (ta ta) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ta ta) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (a b) (b b-0) (ks ks))
+  (defstrand keyserver 2 (a a) (b b-1) (ks ks))
+  (precedes ((1 2) (0 0)) ((2 1) (1 1)) ((3 1) (1 1)))
+  (non-orig (privk a) (privk b) (privk ks))
+  (uniq-orig k)
+  (operation encryption-test (added-strand keyserver 2)
+    (enc a (pubk a) (privk ks)) (1 1))
+  (traces
+    ((recv
+       (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+         (enc a (pubk a) (privk ks)) (pubk b))))
+    ((send (cat a b))
+      (recv
+        (cat (enc b (pubk b) (privk ks)) (enc a (pubk a) (privk ks))))
+      (send
+        (enc (enc a b k ta (privk a)) (enc b (pubk b) (privk ks))
+          (enc a (pubk a) (privk ks)) (pubk b))))
+    ((recv (cat b b-0))
+      (send
+        (cat (enc b-0 (pubk b-0) (privk ks))
+          (enc b (pubk b) (privk ks)))))
+    ((recv (cat a b-1))
+      (send
+        (cat (enc b-1 (pubk b-1) (privk ks))
+          (enc a (pubk a) (privk ks))))))
+  (label 12)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (ks ks) (k k) (ta ta))))
+  (origs (k (1 2))))
+
+(comment "Nothing left to do")
diff --git a/tst/deorig_contract.scm b/tst/deorig_contract.scm
new file mode 100644
--- /dev/null
+++ b/tst/deorig_contract.scm
@@ -0,0 +1,40 @@
+;;;  Deorig_contract:  Demonstrates a subtle incompleteness.
+;;;
+;;;  Attempts to show that deorigination may be necessary
+;;; even during non-augmentation steps, such as in a contraction.
+;;;  The idea is to make for a situation in which a value will
+;;; be originated on a strand but later a contraction will force
+;;; that value to be one that is restricted, where deorigination
+;;; can solve the problem but CPSA will probably eliminate the
+;;; contraction from the cohort.
+
+(defprotocol deorig-contract basic
+  (defrole init (vars (k akey) (x1 x2 text))
+     (trace
+       (send (enc x1 k))
+       (send (enc x2 k))
+       (recv (enc x1 x2 k))
+     )
+     (uniq-orig x1 x2)
+     (non-orig (invk k))
+   )
+   (defrole resp (vars (k akey) (y1 y2 y3 text))
+     (trace
+       (recv (enc y1 k))
+       (recv (enc y2 k))
+       (send (enc y1 y3 k))
+     )
+   )
+)
+
+(defskeleton deorig-contract
+   (vars)
+   (defstrand init 3)
+)
+
+(defskeleton deorig-contract
+   (vars (k akey) (x1 x2 text))
+   (defstrand init 3 (k k) (x1 x1) (x2 x2))
+   (defstrand resp 3 (k k) (y1 x1) (y2 x2) (y3 x2))
+   (precedes ((0 0) (1 0)) ((0 1) (1 1)) ((1 2) (0 2)))
+)
diff --git a/tst/deorig_contract.tst b/tst/deorig_contract.tst
new file mode 100644
--- /dev/null
+++ b/tst/deorig_contract.tst
@@ -0,0 +1,80 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/deorig_contract.scm")
+
+(defprotocol deorig-contract basic
+  (defrole init
+    (vars (k akey) (x1 x2 text))
+    (trace (send (enc x1 k)) (send (enc x2 k)) (recv (enc x1 x2 k)))
+    (non-orig (invk k))
+    (uniq-orig x1 x2))
+  (defrole resp
+    (vars (k akey) (y1 y2 y3 text))
+    (trace (recv (enc y1 k)) (recv (enc y2 k)) (send (enc y1 y3 k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton deorig-contract
+  (vars (x1 x2 text) (k akey))
+  (defstrand init 3 (x1 x1) (x2 x2) (k k))
+  (non-orig (invk k))
+  (uniq-orig x1 x2)
+  (traces ((send (enc x1 k)) (send (enc x2 k)) (recv (enc x1 x2 k))))
+  (label 0)
+  (unrealized (0 2))
+  (origs (x2 (0 1)) (x1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton deorig-contract
+  (vars (x1 x2 y2 y3 text) (k akey))
+  (defstrand init 3 (x1 x1) (x2 x2) (k k))
+  (defstrand resp 3 (y1 x1) (y2 y2) (y3 y3) (k k))
+  (precedes ((0 0) (1 0)) ((1 2) (0 2)))
+  (non-orig (invk k))
+  (uniq-orig x1 x2)
+  (operation nonce-test (added-strand resp 3) x1 (0 2) (enc x1 k))
+  (traces ((send (enc x1 k)) (send (enc x2 k)) (recv (enc x1 x2 k)))
+    ((recv (enc x1 k)) (recv (enc y2 k)) (send (enc x1 y3 k))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol deorig-contract basic
+  (defrole init
+    (vars (k akey) (x1 x2 text))
+    (trace (send (enc x1 k)) (send (enc x2 k)) (recv (enc x1 x2 k)))
+    (non-orig (invk k))
+    (uniq-orig x1 x2))
+  (defrole resp
+    (vars (k akey) (y1 y2 y3 text))
+    (trace (recv (enc y1 k)) (recv (enc y2 k)) (send (enc y1 y3 k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton deorig-contract
+  (vars (x1 x2 text) (k akey))
+  (defstrand init 3 (x1 x1) (x2 x2) (k k))
+  (defstrand resp 3 (y1 x1) (y2 x2) (y3 x2) (k k))
+  (precedes ((0 0) (1 0)) ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (invk k))
+  (uniq-orig x1 x2)
+  (traces ((send (enc x1 k)) (send (enc x2 k)) (recv (enc x1 x2 k)))
+    ((recv (enc x1 k)) (recv (enc x2 k)) (send (enc x1 x2 k))))
+  (label 2)
+  (realized)
+  (shape)
+  (maps ((0 1) ((k k) (x1 x1) (x2 x2))))
+  (origs (x2 (0 1)) (x1 (0 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/deorig_mesg.scm b/tst/deorig_mesg.scm
new file mode 100644
--- /dev/null
+++ b/tst/deorig_mesg.scm
@@ -0,0 +1,19 @@
+(herald deorig-mesg)
+
+(defprotocol deorig-mesg basic
+  (defrole init
+    (vars (k akey) (x text))
+    (trace (send (enc x k)) (recv x))
+    (uniq-orig x)
+    (non-orig (invk k)))
+  (defrole resp
+    (vars (x mesg) (y text))
+    (trace (recv x) (send y))))
+
+(defskeleton deorig-mesg (vars) (defstrand init 2))
+
+(defskeleton deorig-mesg
+  (vars (k akey) (z text))
+  (defstrand init 2 (k k) (x z))
+  (defstrand resp 2 (x (enc z k)) (y z))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1))))
diff --git a/tst/deorig_mesg.tst b/tst/deorig_mesg.tst
new file mode 100644
--- /dev/null
+++ b/tst/deorig_mesg.tst
@@ -0,0 +1,62 @@
+(herald deorig-mesg)
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/deorig_mesg.scm")
+
+(defprotocol deorig-mesg basic
+  (defrole init
+    (vars (k akey) (x text))
+    (trace (send (enc x k)) (recv x))
+    (non-orig (invk k))
+    (uniq-orig x))
+  (defrole resp (vars (x mesg) (y text)) (trace (recv x) (send y)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton deorig-mesg
+  (vars (x text) (k akey))
+  (defstrand init 2 (x x) (k k))
+  (non-orig (invk k))
+  (uniq-orig x)
+  (traces ((send (enc x k)) (recv x)))
+  (label 0)
+  (unrealized (0 1))
+  (dead)
+  (origs (x (0 0)))
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol deorig-mesg basic
+  (defrole init
+    (vars (k akey) (x text))
+    (trace (send (enc x k)) (recv x))
+    (non-orig (invk k))
+    (uniq-orig x))
+  (defrole resp (vars (x mesg) (y text)) (trace (recv x) (send y)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton deorig-mesg
+  (vars (z text) (k akey))
+  (defstrand init 2 (x z) (k k))
+  (defstrand resp 2 (x (enc z k)) (y z))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig z)
+  (traces ((send (enc z k)) (recv z)) ((recv (enc z k)) (send z)))
+  (label 1)
+  (realized)
+  (shape)
+  (maps ((0 1) ((k k) (z z))))
+  (origs (z (0 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/deorig_simple.scm b/tst/deorig_simple.scm
new file mode 100644
--- /dev/null
+++ b/tst/deorig_simple.scm
@@ -0,0 +1,30 @@
+(herald deorig-simple)
+
+;;;  Deorig_simple:     Demonstrates the same incompleteness as
+;;;                     deorig_contract, but with fewer messages.
+;;;
+;;;  This simply sets up the archetypal nonce test for an init strand
+;;;  but the resp role is only a partial match for the test.  In particular,
+;;;  it sends a different value than it receives.  The obvious shape is one
+;;;  in which the resp strand sends the same value it receives, but this
+;;;  shape is not found.
+
+(defprotocol deorig-simple basic
+  (defrole init
+    (vars (k akey) (x text))
+    (trace (send (enc x k)) (recv x))
+    (uniq-orig x)
+    (non-orig (invk k)))
+  (defrole resp
+    (vars (k akey) (x y text))
+    (trace (recv (enc x k)) (send y))))
+
+(defskeleton deorig-simple
+  (vars)
+  (defstrand init 2))
+
+(defskeleton deorig-simple
+  (vars (k akey) (z text))
+  (defstrand init 2 (k k) (x z))
+  (defstrand resp 2 (k k) (x z) (y z))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1))))
diff --git a/tst/deorig_simple.tst b/tst/deorig_simple.tst
new file mode 100644
--- /dev/null
+++ b/tst/deorig_simple.tst
@@ -0,0 +1,66 @@
+(herald deorig-simple)
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/deorig_simple.scm")
+
+(defprotocol deorig-simple basic
+  (defrole init
+    (vars (k akey) (x text))
+    (trace (send (enc x k)) (recv x))
+    (non-orig (invk k))
+    (uniq-orig x))
+  (defrole resp
+    (vars (k akey) (x y text))
+    (trace (recv (enc x k)) (send y)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton deorig-simple
+  (vars (x text) (k akey))
+  (defstrand init 2 (x x) (k k))
+  (non-orig (invk k))
+  (uniq-orig x)
+  (traces ((send (enc x k)) (recv x)))
+  (label 0)
+  (unrealized (0 1))
+  (dead)
+  (origs (x (0 0)))
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol deorig-simple basic
+  (defrole init
+    (vars (k akey) (x text))
+    (trace (send (enc x k)) (recv x))
+    (non-orig (invk k))
+    (uniq-orig x))
+  (defrole resp
+    (vars (k akey) (x y text))
+    (trace (recv (enc x k)) (send y)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton deorig-simple
+  (vars (z text) (k akey))
+  (defstrand init 2 (x z) (k k))
+  (defstrand resp 2 (x z) (y z) (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig z)
+  (traces ((send (enc z k)) (recv z)) ((recv (enc z k)) (send z)))
+  (label 1)
+  (realized)
+  (shape)
+  (maps ((0 1) ((k k) (z z))))
+  (origs (z (0 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/dh-ca.scm b/tst/dh-ca.scm
deleted file mode 100644
--- a/tst/dh-ca.scm
+++ /dev/null
@@ -1,54 +0,0 @@
-(herald dhca (algebra diffie-hellman))
-
-(defprotocol dhca diffie-hellman
-  (defrole init
-    (vars (x rndx) (a b ca name) (y expt) (n text))
-    (trace
-     (send (enc "reg" (exp (gen) x) a (privk a)))
-     (recv (enc (exp (gen) x) a (privk ca)))
-     (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-     (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca)) (enc n (exp (gen) (mul y x)))))
-     (send (enc "check" n (exp (gen) (mul y x)))))
-    (uniq-gen x)
-    (non-orig (privk ca)))
-  (defrole resp
-    (vars (y rndx) (a b ca name) (x expt) (n text))
-    (trace
-     (send (enc "reg" (exp (gen) y) b (privk b)))
-     (recv (enc (exp (gen) y) b (privk ca)))
-     (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-     (send (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-		(enc n (exp (gen) (mul x y)))))
-     (recv (enc "check" n (exp (gen) (mul x y)))))
-    (uniq-gen y)
-    (non-orig (privk ca)))
-  (defrole ca (vars (subject ca name) (x expt))
-    (trace
-     (recv (enc "reg" (exp (gen) x) subject (privk subject)))
-     (send (enc (exp (gen) x) subject (privk ca))))
-    (non-orig (privk subject))
-    )
-  (comment A diffie-hellman exchange which uses a certificate
-    authority to certify long-term DH values)
-)
-
-(defskeleton dhca
-  (vars )
-  (defstrand init 5 )
-(comment Full initiator POV No need to make extra assumptions))
-
-(defskeleton dhca
-  (vars (n text))
-  (defstrand resp 5 (n n))
-  (uniq-orig n)
-  (comment Full responder point of view with freshly chosen n)
-)
-
-(defskeleton dhca
-  (vars (a b ca name) (x y rndx) (n text))
-  (defstrand init 5 (x x) (y y) (ca ca) (a a) (b b) (n n))
-  (defstrand resp 5 (y y) (x x) (ca ca) (a a) (b b) (n n))
-(uniq-orig n)
-(comment point of view in which init and resp each complete and
-    they agree on the relevant parameters)
-)
diff --git a/tst/dh-ca.tst b/tst/dh-ca.tst
deleted file mode 100644
--- a/tst/dh-ca.tst
+++ /dev/null
@@ -1,3395 +0,0 @@
-(herald dhca (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/dh-ca.scm")
-
-(defprotocol dhca diffie-hellman
-  (defrole init
-    (vars (x rndx) (a b ca name) (y expt) (n text))
-    (trace (send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    (non-orig (privk ca))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (a b ca name) (x expt) (n text))
-    (trace (send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (recv (enc "check" n (exp (gen) (mul y x)))))
-    (non-orig (privk ca))
-    (uniq-gen y))
-  (defrole ca
-    (vars (subject ca name) (x expt))
-    (trace (recv (enc "reg" (exp (gen) x) subject (privk subject)))
-      (send (enc (exp (gen) x) subject (privk ca))))
-    (non-orig (privk subject)))
-  (comment A diffie-hellman exchange which uses a certificate authority
-    to certify long-term DH values))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (x rndx) (y expt))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (non-orig (privk ca))
-  (uniq-gen x)
-  (comment Full initiator POV No need to make extra assumptions)
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y))))))
-  (label 0)
-  (unrealized (0 1) (0 3))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (y expt) (x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen x)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca)))))
-  (label 1)
-  (parent 0)
-  (unrealized (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a ca name) (x rndx))
-  (defstrand init 5 (n n) (a a) (b a) (ca ca) (x x) (y x))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen x)
-  (operation encryption-test (displaced 2 1 ca 2)
-    (enc (exp (gen) x-0) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))
-          (enc n (exp (gen) (mul x x)))))
-      (send (enc "check" n (exp (gen) (mul x x)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca)))))
-  (label 2)
-  (parent 1)
-  (unrealized (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (x rndx) (x-0 expt))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y x-0))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x x-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen x)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x-0) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) x-0) (enc (exp (gen) x-0) b (privk ca))
-          (enc n (exp (gen) (mul x x-0)))))
-      (send (enc "check" n (exp (gen) (mul x x-0)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) x-0) b (privk b)))
-      (send (enc (exp (gen) x-0) b (privk ca)))))
-  (label 3)
-  (parent 1)
-  (unrealized (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a ca a-0 b ca-0 name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b a) (ca ca) (x x) (y x))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (y y)
-    (x (mul x x (rec y))))
-  (precedes ((0 0) (1 0)) ((0 0) (2 2)) ((1 1) (0 1)) ((2 3) (0 3)))
-  (non-orig (privk a) (privk ca) (privk ca-0))
-  (uniq-gen x y)
-  (operation encryption-test (added-strand resp 4)
-    (enc n (exp (gen) (mul x x))) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))
-          (enc n (exp (gen) (mul x x)))))
-      (send (enc "check" n (exp (gen) (mul x x)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca-0)))
-      (recv
-        (cat (exp (gen) (mul x x (rec y)))
-          (enc (exp (gen) (mul x x (rec y))) a-0 (privk ca-0))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))
-          (enc n (exp (gen) (mul x x)))))))
-  (label 4)
-  (parent 2)
-  (unrealized (2 1) (2 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a ca name) (x rndx))
-  (defstrand init 5 (n n) (a a) (b a) (ca ca) (x x) (y x))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (deflistener (exp (gen) (mul x x)))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen x)
-  (operation encryption-test (added-listener (exp (gen) (mul x x)))
-    (enc n (exp (gen) (mul x x))) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))
-          (enc n (exp (gen) (mul x x)))))
-      (send (enc "check" n (exp (gen) (mul x x)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x)))))
-  (label 5)
-  (parent 2)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a ca name) (y rndx))
-  (defstrand init 5 (n n) (a a) (b a) (ca ca) (x y) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen y)
-  (operation encryption-test (displaced 3 0 resp 1)
-    (enc "reg" (exp (gen) y-0) b (privk b)) (2 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) a (privk a)))
-      (recv (enc (exp (gen) y) a (privk ca)))
-      (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (send (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca)))))
-  (label 6)
-  (parent 3)
-  (unrealized (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand resp 1 (b b) (y y))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)) ((3 0) (2 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen x y)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (exp (gen) y) b (privk b)) (2 0))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))))
-  (label 7)
-  (parent 3)
-  (unrealized (0 3))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a ca a-0 b ca-0 name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b a) (ca ca) (x x) (y x))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (y y)
-    (x (mul x x (rec y))))
-  (defstrand ca 2 (subject b) (ca ca-0) (x y))
-  (precedes ((0 0) (1 0)) ((0 0) (2 2)) ((1 1) (0 1)) ((2 0) (3 0))
-    ((2 3) (0 3)) ((3 1) (2 1)))
-  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))
-  (uniq-gen x y)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) y) b (privk ca-0)) (2 1))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))
-          (enc n (exp (gen) (mul x x)))))
-      (send (enc "check" n (exp (gen) (mul x x)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca-0)))
-      (recv
-        (cat (exp (gen) (mul x x (rec y)))
-          (enc (exp (gen) (mul x x (rec y))) a-0 (privk ca-0))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))
-          (enc n (exp (gen) (mul x x))))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca-0)))))
-  (label 8)
-  (parent 4)
-  (unrealized (2 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a ca name) (x rndx) (w expt))
-  (defstrand init 5 (n n) (a a) (b a) (ca ca) (x x) (y x))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (deflistener (exp (gen) (mul x x)))
-  (deflistener (cat (exp (gen) (mul x x (rec w))) w))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 1) (2 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen x)
-  (precur (3 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x x (rec w))) w))
-    (exp (gen) (mul x x)) (2 0))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))
-          (enc n (exp (gen) (mul x x)))))
-      (send (enc "check" n (exp (gen) (mul x x)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))
-    ((recv (cat (exp (gen) (mul x x (rec w))) w))
-      (send (cat (exp (gen) (mul x x (rec w))) w))))
-  (label 9)
-  (parent 5)
-  (unrealized (3 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a ca a-0 b ca-0 name) (y y-0 rndx))
-  (defstrand init 5 (n n) (a a) (b a) (ca ca) (x y) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (y y-0)
-    (x (mul y y (rec y-0))))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 2)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 3) (0 3)))
-  (non-orig (privk a) (privk ca) (privk ca-0))
-  (uniq-gen y y-0)
-  (operation encryption-test (added-strand resp 4)
-    (enc n (exp (gen) (mul y y))) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) y) a (privk a)))
-      (recv (enc (exp (gen) y) a (privk ca)))
-      (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (send (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca))))
-    ((send (enc "reg" (exp (gen) y-0) b (privk b)))
-      (recv (enc (exp (gen) y-0) b (privk ca-0)))
-      (recv
-        (cat (exp (gen) (mul y y (rec y-0)))
-          (enc (exp (gen) (mul y y (rec y-0))) a-0 (privk ca-0))))
-      (send
-        (cat (exp (gen) y-0) (enc (exp (gen) y-0) b (privk ca-0))
-          (enc n (exp (gen) (mul y y)))))))
-  (label 10)
-  (parent 6)
-  (unrealized (3 1) (3 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a ca name) (y rndx))
-  (defstrand init 5 (n n) (a a) (b a) (ca ca) (x y) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (deflistener (exp (gen) (mul y y)))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 1) (0 3)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen y)
-  (operation encryption-test (added-listener (exp (gen) (mul y y)))
-    (enc n (exp (gen) (mul y y))) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) y) a (privk a)))
-      (recv (enc (exp (gen) y) a (privk ca)))
-      (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (send (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca))))
-    ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y)))))
-  (label 11)
-  (parent 6)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a ca a-0 b ca-0 name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (y y) (x x))
-  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 3) (0 3)))
-  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))
-  (uniq-gen x y)
-  (operation encryption-test (displaced 3 4 resp 4)
-    (enc n (exp (gen) (mul x y-0))) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca-0)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca-0))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))
-          (enc n (exp (gen) (mul x y)))))))
-  (label 12)
-  (parent 7)
-  (unrealized (3 1) (3 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca a-0 b-0 ca-0 name) (x y y-0 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand resp 1 (b b) (y y))
-  (defstrand resp 4 (n n) (a a-0) (b b-0) (ca ca-0) (y y-0)
-    (x (mul x y (rec y-0))))
-  (precedes ((0 0) (1 0)) ((0 0) (4 2)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 2)) ((4 3) (0 3)))
-  (non-orig (privk a) (privk b) (privk ca) (privk ca-0))
-  (uniq-gen x y y-0)
-  (operation encryption-test (added-strand resp 4)
-    (enc n (exp (gen) (mul x y))) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) y) b (privk b))))
-    ((send (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))
-      (recv (enc (exp (gen) y-0) b-0 (privk ca-0)))
-      (recv
-        (cat (exp (gen) (mul x y (rec y-0)))
-          (enc (exp (gen) (mul x y (rec y-0))) a-0 (privk ca-0))))
-      (send
-        (cat (exp (gen) y-0) (enc (exp (gen) y-0) b-0 (privk ca-0))
-          (enc n (exp (gen) (mul x y)))))))
-  (label 13)
-  (parent 7)
-  (unrealized (4 1) (4 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand resp 1 (b b) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 3)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen x y)
-  (operation encryption-test (added-listener (exp (gen) (mul x y)))
-    (enc n (exp (gen) (mul x y))) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) y) b (privk b))))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))
-  (label 14)
-  (parent 7)
-  (unrealized (4 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a ca a-0 b ca-0 name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b a) (ca ca) (x x) (y x))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (y y)
-    (x (mul x x (rec y))))
-  (defstrand ca 2 (subject b) (ca ca-0) (x y))
-  (defstrand ca 2 (subject a-0) (ca ca-0) (x (mul x x (rec y))))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 0) (3 0))
-    ((2 0) (4 0)) ((2 3) (0 3)) ((3 1) (2 1)) ((4 1) (2 2)))
-  (non-orig (privk a) (privk ca) (privk a-0) (privk b) (privk ca-0))
-  (uniq-gen x y)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) (mul x x (rec y))) a-0 (privk ca-0)) (2 2))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))
-          (enc n (exp (gen) (mul x x)))))
-      (send (enc "check" n (exp (gen) (mul x x)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca-0)))
-      (recv
-        (cat (exp (gen) (mul x x (rec y)))
-          (enc (exp (gen) (mul x x (rec y))) a-0 (privk ca-0))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))
-          (enc n (exp (gen) (mul x x))))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) (mul x x (rec y))) a-0 (privk a-0)))
-      (send (enc (exp (gen) (mul x x (rec y))) a-0 (privk ca-0)))))
-  (label 15)
-  (parent 8)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (a ca name) (x rndx))
-  (defstrand init 5 (n n) (a a) (b a) (ca ca) (x x) (y x))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (deflistener (exp (gen) (mul x x)))
-  (deflistener (cat (gen) (mul x x)))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 1) (2 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen x)
-  (precur (3 0))
-  (operation nonce-test (contracted (x-0 x) (w (mul x x))) (gen) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))
-          (enc n (exp (gen) (mul x x)))))
-      (send (enc "check" n (exp (gen) (mul x x)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))
-    ((recv (cat (gen) (mul x x))) (send (cat (gen) (mul x x)))))
-  (label 16)
-  (parent 9)
-  (unrealized (2 0) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a ca name) (y rndx))
-  (defstrand init 5 (n n) (a a) (b a) (ca ca) (x y) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (deflistener (exp (gen) (mul y y)))
-  (deflistener (cat (exp (gen) y) y))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 1) (2 0)))
-  (non-orig (privk a) (privk ca))
-  (precur (3 0))
-  (uniq-gen y)
-  (operation nonce-test (displaced 4 0 resp 1) (exp (gen) y-0) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) a (privk a)))
-      (recv (enc (exp (gen) y) a (privk ca)))
-      (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (send (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca))))
-    ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))
-    ((recv (cat (exp (gen) y) y)) (send (cat (exp (gen) y) y))))
-  (label 17)
-  (parent 9)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (a ca b name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b a) (ca ca) (x x) (y x))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (deflistener (exp (gen) (mul x x)))
-  (deflistener (cat (exp (gen) y) (mul x x (rec y))))
-  (defstrand resp 1 (b b) (y y))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 1) (2 0)) ((4 0) (3 0)))
-  (non-orig (privk a) (privk ca))
-  (precur (3 0))
-  (uniq-gen x y)
-  (operation nonce-test (added-strand resp 1) (exp (gen) y) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))
-          (enc n (exp (gen) (mul x x)))))
-      (send (enc "check" n (exp (gen) (mul x x)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))
-    ((recv (cat (exp (gen) y) (mul x x (rec y))))
-      (send (cat (exp (gen) y) (mul x x (rec y)))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))))
-  (label 18)
-  (parent 9)
-  (unrealized (2 0) (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (a ca a-0 b ca-0 name) (y y-0 rndx))
-  (defstrand init 5 (n n) (a a) (b a) (ca ca) (x y) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (y y-0)
-    (x (mul y y (rec y-0))))
-  (defstrand ca 2 (subject b) (ca ca-0) (x y-0))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 2)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))
-  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))
-  (uniq-gen y y-0)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) y-0) b (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (exp (gen) y) a (privk a)))
-      (recv (enc (exp (gen) y) a (privk ca)))
-      (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (send (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca))))
-    ((send (enc "reg" (exp (gen) y-0) b (privk b)))
-      (recv (enc (exp (gen) y-0) b (privk ca-0)))
-      (recv
-        (cat (exp (gen) (mul y y (rec y-0)))
-          (enc (exp (gen) (mul y y (rec y-0))) a-0 (privk ca-0))))
-      (send
-        (cat (exp (gen) y-0) (enc (exp (gen) y-0) b (privk ca-0))
-          (enc n (exp (gen) (mul y y))))))
-    ((recv (enc "reg" (exp (gen) y-0) b (privk b)))
-      (send (enc (exp (gen) y-0) b (privk ca-0)))))
-  (label 19)
-  (parent 10)
-  (unrealized (3 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a ca name) (y rndx) (w expt))
-  (defstrand init 5 (n n) (a a) (b a) (ca ca) (x y) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (deflistener (exp (gen) (mul y y)))
-  (deflistener (cat (exp (gen) (mul y y (rec w))) w))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen y)
-  (precur (4 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y y (rec w))) w))
-    (exp (gen) (mul y y)) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) a (privk a)))
-      (recv (enc (exp (gen) y) a (privk ca)))
-      (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (send (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca))))
-    ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))
-    ((recv (cat (exp (gen) (mul y y (rec w))) w))
-      (send (cat (exp (gen) (mul y y (rec w))) w))))
-  (label 20)
-  (parent 11)
-  (unrealized (4 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a ca a-0 b name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (y y) (x x))
-  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (3 1))
-    ((3 0) (2 0)) ((3 3) (0 3)))
-  (non-orig (privk a) (privk ca) (privk b))
-  (uniq-gen x y)
-  (operation encryption-test (displaced 4 2 ca 2)
-    (enc (exp (gen) y) b (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))))
-  (label 21)
-  (parent 12)
-  (unrealized (3 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a ca a-0 b ca-0 name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca-0) (x y))
-  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))
-  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))
-  (uniq-gen x y)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) y) b (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca-0)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca-0))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))
-          (enc n (exp (gen) (mul x y))))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca-0)))))
-  (label 22)
-  (parent 12)
-  (unrealized (3 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca a-0 b-0 ca-0 name) (x y y-0 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand resp 1 (b b) (y y))
-  (defstrand resp 4 (n n) (a a-0) (b b-0) (ca ca-0) (y y-0)
-    (x (mul x y (rec y-0))))
-  (defstrand ca 2 (subject b-0) (ca ca-0) (x y-0))
-  (precedes ((0 0) (1 0)) ((0 0) (4 2)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 2)) ((4 0) (5 0)) ((4 3) (0 3))
-    ((5 1) (4 1)))
-  (non-orig (privk a) (privk b) (privk ca) (privk b-0) (privk ca-0))
-  (uniq-gen x y y-0)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) y-0) b-0 (privk ca-0)) (4 1))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) y) b (privk b))))
-    ((send (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))
-      (recv (enc (exp (gen) y-0) b-0 (privk ca-0)))
-      (recv
-        (cat (exp (gen) (mul x y (rec y-0)))
-          (enc (exp (gen) (mul x y (rec y-0))) a-0 (privk ca-0))))
-      (send
-        (cat (exp (gen) y-0) (enc (exp (gen) y-0) b-0 (privk ca-0))
-          (enc n (exp (gen) (mul x y))))))
-    ((recv (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))
-      (send (enc (exp (gen) y-0) b-0 (privk ca-0)))))
-  (label 23)
-  (parent 13)
-  (unrealized (4 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand resp 1 (b b) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (deflistener (cat (exp (gen) x) y))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen x y)
-  (operation nonce-test (added-listener (cat (exp (gen) x) y))
-    (exp (gen) (mul x y)) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) y) b (privk b))))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
-  (label 24)
-  (parent 14)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand resp 1 (b b) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (deflistener (cat (exp (gen) y) x))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen x y)
-  (operation nonce-test (added-listener (cat (exp (gen) y) x))
-    (exp (gen) (mul x y)) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) y) b (privk b))))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
-  (label 25)
-  (parent 14)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (a ca name) (x rndx))
-  (defstrand init 5 (n n) (a a) (b a) (ca ca) (x x) (y x))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (deflistener (exp (gen) (mul x x)))
-  (deflistener (cat (gen) (mul x x)))
-  (deflistener x)
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 1) (2 0)) ((4 1) (3 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen x)
-  (precur (3 0))
-  (operation nonce-test (added-listener x) (mul x x) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))
-          (enc n (exp (gen) (mul x x)))))
-      (send (enc "check" n (exp (gen) (mul x x)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (exp (gen) (mul x x))) (send (exp (gen) (mul x x))))
-    ((recv (cat (gen) (mul x x))) (send (cat (gen) (mul x x))))
-    ((recv x) (send x)))
-  (label 26)
-  (parent 16)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (a ca a-0 b ca-0 name) (y y-0 rndx))
-  (defstrand init 5 (n n) (a a) (b a) (ca ca) (x y) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (y y-0)
-    (x (mul y y (rec y-0))))
-  (defstrand ca 2 (subject b) (ca ca-0) (x y-0))
-  (defstrand ca 2 (subject a-0) (ca ca-0) (x (mul y y (rec y-0))))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 0) (4 0)) ((3 0) (5 0)) ((3 3) (0 3))
-    ((4 1) (3 1)) ((5 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk a-0) (privk b) (privk ca-0))
-  (uniq-gen y y-0)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) (mul y y (rec y-0))) a-0 (privk ca-0)) (3 2))
-  (traces
-    ((send (enc "reg" (exp (gen) y) a (privk a)))
-      (recv (enc (exp (gen) y) a (privk ca)))
-      (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (send (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca))))
-    ((send (enc "reg" (exp (gen) y-0) b (privk b)))
-      (recv (enc (exp (gen) y-0) b (privk ca-0)))
-      (recv
-        (cat (exp (gen) (mul y y (rec y-0)))
-          (enc (exp (gen) (mul y y (rec y-0))) a-0 (privk ca-0))))
-      (send
-        (cat (exp (gen) y-0) (enc (exp (gen) y-0) b (privk ca-0))
-          (enc n (exp (gen) (mul y y))))))
-    ((recv (enc "reg" (exp (gen) y-0) b (privk b)))
-      (send (enc (exp (gen) y-0) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) (mul y y (rec y-0))) a-0 (privk a-0)))
-      (send (enc (exp (gen) (mul y y (rec y-0))) a-0 (privk ca-0)))))
-  (label 27)
-  (parent 19)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (a ca name) (y rndx))
-  (defstrand init 5 (n n) (a a) (b a) (ca ca) (x y) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (deflistener (exp (gen) (mul y y)))
-  (deflistener (cat (gen) (mul y y)))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen y)
-  (precur (4 0))
-  (operation nonce-test (contracted (y-0 y) (w (mul y y))) (gen) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) a (privk a)))
-      (recv (enc (exp (gen) y) a (privk ca)))
-      (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (send (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca))))
-    ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))
-    ((recv (cat (gen) (mul y y))) (send (cat (gen) (mul y y)))))
-  (label 28)
-  (parent 20)
-  (unrealized (3 0) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a ca name) (y rndx))
-  (defstrand init 5 (n n) (a a) (b a) (ca ca) (x y) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (deflistener (exp (gen) (mul y y)))
-  (deflistener (cat (exp (gen) y) y))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)))
-  (non-orig (privk a) (privk ca))
-  (precur (4 0))
-  (uniq-gen y)
-  (operation nonce-test (displaced 5 0 resp 1) (exp (gen) y-0) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) a (privk a)))
-      (recv (enc (exp (gen) y) a (privk ca)))
-      (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (send (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca))))
-    ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))
-    ((recv (cat (exp (gen) y) y)) (send (cat (exp (gen) y) y))))
-  (label 29)
-  (parent 20)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (a ca b name) (y y-0 rndx))
-  (defstrand init 5 (n n) (a a) (b a) (ca ca) (x y) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (deflistener (exp (gen) (mul y y)))
-  (deflistener (cat (exp (gen) y-0) (mul y y (rec y-0))))
-  (defstrand resp 1 (b b) (y y-0))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)) ((5 0) (4 0)))
-  (non-orig (privk a) (privk ca))
-  (precur (4 0))
-  (uniq-gen y y-0)
-  (operation nonce-test (added-strand resp 1) (exp (gen) y-0) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) a (privk a)))
-      (recv (enc (exp (gen) y) a (privk ca)))
-      (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (send (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca))))
-    ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))
-    ((recv (cat (exp (gen) y-0) (mul y y (rec y-0))))
-      (send (cat (exp (gen) y-0) (mul y y (rec y-0)))))
-    ((send (enc "reg" (exp (gen) y-0) b (privk b)))))
-  (label 30)
-  (parent 20)
-  (unrealized (3 0) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (a ca b name) (y x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (3 1))
-    ((3 0) (2 0)) ((3 3) (0 3)))
-  (non-orig (privk a) (privk ca) (privk b))
-  (uniq-gen y x)
-  (operation encryption-test (displaced 4 1 ca 2)
-    (enc (exp (gen) x) a-0 (privk ca)) (3 2))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))))
-  (label 31)
-  (parent 21)
-  (unrealized)
-  (shape)
-  (maps ((0) ((x x) (a a) (b b) (ca ca) (y y) (n n))))
-  (origs))
-
-(defskeleton dhca
-  (vars (n text) (a ca a-0 b name) (y x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject a-0) (ca ca) (x x))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))
-    ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk a-0) (privk b))
-  (uniq-gen y x)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) a-0 (privk ca)) (3 2))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x))))))
-    ((recv (enc "reg" (exp (gen) x) a-0 (privk a-0)))
-      (send (enc (exp (gen) x) a-0 (privk ca)))))
-  (label 32)
-  (parent 21)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a ca b name) (y x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))
-  (non-orig (privk a) (privk ca) (privk b))
-  (uniq-gen y x)
-  (operation encryption-test (displaced 5 1 ca 2)
-    (enc (exp (gen) x) a-0 (privk ca-0)) (3 2))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x))))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca)))))
-  (label 33)
-  (parent 22)
-  (seen 31)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a ca a-0 b ca-0 name) (y x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca-0) (x y))
-  (defstrand ca 2 (subject a-0) (ca ca-0) (x x))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))
-    ((5 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk a-0) (privk b) (privk ca-0))
-  (uniq-gen y x)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) a-0 (privk ca-0)) (3 2))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca-0)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca-0))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))
-          (enc n (exp (gen) (mul y x))))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) x) a-0 (privk a-0)))
-      (send (enc (exp (gen) x) a-0 (privk ca-0)))))
-  (label 34)
-  (parent 22)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca a-0 b-0 ca-0 name) (x y y-0 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand resp 1 (b b) (y y))
-  (defstrand resp 4 (n n) (a a-0) (b b-0) (ca ca-0) (y y-0)
-    (x (mul x y (rec y-0))))
-  (defstrand ca 2 (subject b-0) (ca ca-0) (x y-0))
-  (defstrand ca 2 (subject a-0) (ca ca-0) (x (mul x y (rec y-0))))
-  (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (6 0)) ((4 0) (5 0)) ((4 0) (6 0))
-    ((4 3) (0 3)) ((5 1) (4 1)) ((6 1) (4 2)))
-  (non-orig (privk a) (privk b) (privk ca) (privk a-0) (privk b-0)
-    (privk ca-0))
-  (uniq-gen x y y-0)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) (mul x y (rec y-0))) a-0 (privk ca-0)) (4 2))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) y) b (privk b))))
-    ((send (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))
-      (recv (enc (exp (gen) y-0) b-0 (privk ca-0)))
-      (recv
-        (cat (exp (gen) (mul x y (rec y-0)))
-          (enc (exp (gen) (mul x y (rec y-0))) a-0 (privk ca-0))))
-      (send
-        (cat (exp (gen) y-0) (enc (exp (gen) y-0) b-0 (privk ca-0))
-          (enc n (exp (gen) (mul x y))))))
-    ((recv (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))
-      (send (enc (exp (gen) y-0) b-0 (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) (mul x y (rec y-0))) a-0 (privk a-0)))
-      (send (enc (exp (gen) (mul x y (rec y-0))) a-0 (privk ca-0)))))
-  (label 35)
-  (parent 23)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (a ca name) (y rndx))
-  (defstrand init 5 (n n) (a a) (b a) (ca ca) (x y) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x y))
-  (deflistener (exp (gen) (mul y y)))
-  (deflistener (cat (gen) (mul y y)))
-  (deflistener y)
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)) ((5 1) (4 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen y)
-  (precur (4 0))
-  (operation nonce-test (added-listener y) (mul y y) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) a (privk a)))
-      (recv (enc (exp (gen) y) a (privk ca)))
-      (send (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) a (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (send (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) a (privk a)))
-      (send (enc (exp (gen) y) a (privk ca))))
-    ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))
-    ((recv (cat (gen) (mul y y))) (send (cat (gen) (mul y y))))
-    ((recv y) (send y)))
-  (label 36)
-  (parent 28)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (a ca b name) (y y-0 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x y-0) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x y-0))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (y y) (x y-0))
-  (defstrand ca 2 (subject a) (ca ca) (x y-0))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))
-    ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk b))
-  (uniq-gen y y-0)
-  (operation encryption-test (displaced 5 0 resp 1)
-    (enc "reg" (exp (gen) y-0) a-0 (privk a-0)) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y-0) a (privk a)))
-      (recv (enc (exp (gen) y-0) a (privk ca)))
-      (send (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y-0)))))
-      (send (enc "check" n (exp (gen) (mul y y-0)))))
-    ((recv (enc "reg" (exp (gen) y-0) a (privk a)))
-      (send (enc (exp (gen) y-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y-0))))))
-    ((recv (enc "reg" (exp (gen) y-0) a (privk a)))
-      (send (enc (exp (gen) y-0) a (privk ca)))))
-  (label 37)
-  (parent 32)
-  (unrealized)
-  (shape)
-  (maps ((0) ((x y-0) (a a) (b b) (ca ca) (y y) (n n))))
-  (origs))
-
-(defskeleton dhca
-  (vars (n text) (a ca b ca-0 name) (y y-0 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x y-0) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x y-0))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca-0) (y y) (x y-0))
-  (defstrand ca 2 (subject b) (ca ca-0) (x y))
-  (defstrand ca 2 (subject a) (ca ca-0) (x y-0))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))
-    ((5 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))
-  (uniq-gen y y-0)
-  (operation encryption-test (displaced 6 0 resp 1)
-    (enc "reg" (exp (gen) y-0) a-0 (privk a-0)) (5 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y-0) a (privk a)))
-      (recv (enc (exp (gen) y-0) a (privk ca)))
-      (send (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y-0)))))
-      (send (enc "check" n (exp (gen) (mul y y-0)))))
-    ((recv (enc "reg" (exp (gen) y-0) a (privk a)))
-      (send (enc (exp (gen) y-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca-0)))
-      (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca-0))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))
-          (enc n (exp (gen) (mul y y-0))))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) y-0) a (privk a)))
-      (send (enc (exp (gen) y-0) a (privk ca-0)))))
-  (label 38)
-  (parent 34)
-  (unrealized)
-  (shape)
-  (maps ((0) ((x y-0) (a a) (b b) (ca ca) (y y) (n n))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol dhca diffie-hellman
-  (defrole init
-    (vars (x rndx) (a b ca name) (y expt) (n text))
-    (trace (send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    (non-orig (privk ca))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (a b ca name) (x expt) (n text))
-    (trace (send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (recv (enc "check" n (exp (gen) (mul y x)))))
-    (non-orig (privk ca))
-    (uniq-gen y))
-  (defrole ca
-    (vars (subject ca name) (x expt))
-    (trace (recv (enc "reg" (exp (gen) x) subject (privk subject)))
-      (send (enc (exp (gen) x) subject (privk ca))))
-    (non-orig (privk subject)))
-  (comment A diffie-hellman exchange which uses a certificate authority
-    to certify long-term DH values))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (y rndx) (x expt))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (non-orig (privk ca))
-  (uniq-gen y)
-  (uniq-orig n)
-  (comment Full responder point of view with freshly chosen n)
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (recv (enc "check" n (exp (gen) (mul y x))))))
-  (label 39)
-  (unrealized (0 1) (0 2))
-  (origs (n (0 3)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (x expt) (y rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen y)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) y) b (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (recv (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca)))))
-  (label 40)
-  (parent 39)
-  (unrealized (0 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (b ca name) (y rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen y)
-  (uniq-orig n)
-  (operation encryption-test (displaced 2 1 ca 2)
-    (enc (exp (gen) x) a (privk ca)) (0 2))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (recv (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca)))))
-  (label 41)
-  (parent 40)
-  (unrealized (0 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (y rndx) (x expt))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen y)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) a (privk ca)) (0 2))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (recv (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca)))))
-  (label 42)
-  (parent 40)
-  (unrealized (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (b ca a b-0 ca-0 name) (y x rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0) (x x)
-    (y (mul y y (rec x))))
-  (precedes ((0 0) (1 0)) ((0 3) (2 3)) ((1 1) (0 1)) ((2 4) (0 4)))
-  (non-orig (privk b) (privk ca) (privk ca-0))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation encryption-test (added-strand init 5)
-    (enc "check" n (exp (gen) (mul y y))) (0 4))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (recv (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca-0)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) (mul y y (rec x)))
-          (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0))
-          (enc n (exp (gen) (mul y y)))))
-      (send (enc "check" n (exp (gen) (mul y y))))))
-  (label 43)
-  (parent 41)
-  (unrealized (2 1) (2 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (b ca name) (y rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (deflistener (exp (gen) (mul y y)))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 4)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen y)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (exp (gen) (mul y y)))
-    (enc "check" n (exp (gen) (mul y y))) (0 4))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (recv (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y)))))
-  (label 44)
-  (parent 41)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (b ca name) (y rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen y)
-  (uniq-orig n)
-  (operation encryption-test (displaced 3 0 resp 1)
-    (enc "reg" (exp (gen) y-0) a (privk a)) (2 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (recv (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca)))))
-  (label 45)
-  (parent 42)
-  (unrealized (0 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (y y-0 rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x y-0))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x y-0))
-  (defstrand resp 1 (b a) (y y-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 0) (2 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen y y-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (exp (gen) y-0) a (privk a)) (2 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y-0)))))
-      (recv (enc "check" n (exp (gen) (mul y y-0)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) y-0) a (privk a)))
-      (send (enc (exp (gen) y-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) y-0) a (privk a)))))
-  (label 46)
-  (parent 42)
-  (unrealized (0 4))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (b ca a b-0 ca-0 name) (y x rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0) (x x)
-    (y (mul y y (rec x))))
-  (defstrand ca 2 (subject a) (ca ca-0) (x x))
-  (precedes ((0 0) (1 0)) ((0 3) (2 3)) ((1 1) (0 1)) ((2 0) (3 0))
-    ((2 4) (0 4)) ((3 1) (2 1)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) a (privk ca-0)) (2 1))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (recv (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca-0)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) (mul y y (rec x)))
-          (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0))
-          (enc n (exp (gen) (mul y y)))))
-      (send (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca-0)))))
-  (label 47)
-  (parent 43)
-  (unrealized (2 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (b ca name) (y rndx) (w expt))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (deflistener (exp (gen) (mul y y)))
-  (deflistener (cat (exp (gen) (mul y y (rec w))) w))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 4))
-    ((3 1) (2 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen y)
-  (uniq-orig n)
-  (precur (3 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y y (rec w))) w))
-    (exp (gen) (mul y y)) (2 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (recv (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))
-    ((recv (cat (exp (gen) (mul y y (rec w))) w))
-      (send (cat (exp (gen) (mul y y (rec w))) w))))
-  (label 48)
-  (parent 44)
-  (unrealized (3 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (b ca a b-0 ca-0 name) (y x rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0) (x x)
-    (y (mul y y (rec x))))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 4) (0 4)))
-  (non-orig (privk b) (privk ca) (privk ca-0))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation encryption-test (added-strand init 5)
-    (enc "check" n (exp (gen) (mul y y))) (0 4))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (recv (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca-0)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) (mul y y (rec x)))
-          (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0))
-          (enc n (exp (gen) (mul y y)))))
-      (send (enc "check" n (exp (gen) (mul y y))))))
-  (label 49)
-  (parent 45)
-  (unrealized (3 1) (3 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (b ca name) (y rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (deflistener (exp (gen) (mul y y)))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 1) (0 4)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen y)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (exp (gen) (mul y y)))
-    (enc "check" n (exp (gen) (mul y y))) (0 4))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (recv (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y)))))
-  (label 50)
-  (parent 45)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (b ca a b-0 ca-0 name) (y x rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0) (x x) (y y))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 4) (0 4)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation encryption-test (displaced 3 4 init 5)
-    (enc "check" n (exp (gen) (mul y y-0))) (0 4))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (recv (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca-0)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b-0 (privk ca-0))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x))))))
-  (label 51)
-  (parent 46)
-  (unrealized (3 1) (3 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca a-0 b-0 ca-0 name) (y y-0 x rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x y-0))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x y-0))
-  (defstrand resp 1 (b a) (y y-0))
-  (defstrand init 5 (n n) (a a-0) (b b-0) (ca ca-0) (x x)
-    (y (mul y y-0 (rec x))))
-  (precedes ((0 0) (1 0)) ((0 3) (4 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((4 4) (0 4)))
-  (non-orig (privk a) (privk b) (privk ca) (privk ca-0))
-  (uniq-gen y y-0 x)
-  (uniq-orig n)
-  (operation encryption-test (added-strand init 5)
-    (enc "check" n (exp (gen) (mul y y-0))) (0 4))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y-0)))))
-      (recv (enc "check" n (exp (gen) (mul y y-0)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) y-0) a (privk a)))
-      (send (enc (exp (gen) y-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) y-0) a (privk a))))
-    ((send (enc "reg" (exp (gen) x) a-0 (privk a-0)))
-      (recv (enc (exp (gen) x) a-0 (privk ca-0)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca-0))))
-      (recv
-        (cat (exp (gen) (mul y y-0 (rec x)))
-          (enc (exp (gen) (mul y y-0 (rec x))) b-0 (privk ca-0))
-          (enc n (exp (gen) (mul y y-0)))))
-      (send (enc "check" n (exp (gen) (mul y y-0))))))
-  (label 52)
-  (parent 46)
-  (unrealized (4 1) (4 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (y y-0 rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x y-0))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x y-0))
-  (defstrand resp 1 (b a) (y y-0))
-  (deflistener (exp (gen) (mul y y-0)))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 4)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen y y-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (exp (gen) (mul y y-0)))
-    (enc "check" n (exp (gen) (mul y y-0))) (0 4))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y-0)))))
-      (recv (enc "check" n (exp (gen) (mul y y-0)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) y-0) a (privk a)))
-      (send (enc (exp (gen) y-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) y-0) a (privk a))))
-    ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0)))))
-  (label 53)
-  (parent 46)
-  (unrealized (4 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (b ca a b-0 ca-0 name) (y x rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0) (x x)
-    (y (mul y y (rec x))))
-  (defstrand ca 2 (subject a) (ca ca-0) (x x))
-  (defstrand ca 2 (subject b-0) (ca ca-0) (x (mul y y (rec x))))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (2 3)) ((1 1) (0 1))
-    ((2 0) (3 0)) ((2 0) (4 0)) ((2 4) (0 4)) ((3 1) (2 1))
-    ((4 1) (2 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0)) (2 3))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (recv (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca-0)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) (mul y y (rec x)))
-          (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0))
-          (enc n (exp (gen) (mul y y)))))
-      (send (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) (mul y y (rec x))) b-0 (privk b-0)))
-      (send (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0)))))
-  (label 54)
-  (parent 47)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (b ca name) (y rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (deflistener (exp (gen) (mul y y)))
-  (deflistener (cat (gen) (mul y y)))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 4))
-    ((3 1) (2 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen y)
-  (uniq-orig n)
-  (precur (3 0))
-  (operation nonce-test (contracted (y-0 y) (w (mul y y))) (gen) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (recv (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))
-    ((recv (cat (gen) (mul y y))) (send (cat (gen) (mul y y)))))
-  (label 55)
-  (parent 48)
-  (unrealized (2 0) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (b ca name) (y rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (deflistener (exp (gen) (mul y y)))
-  (deflistener (cat (exp (gen) y) y))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 4))
-    ((3 1) (2 0)))
-  (non-orig (privk b) (privk ca))
-  (precur (3 0))
-  (uniq-gen y)
-  (uniq-orig n)
-  (operation nonce-test (displaced 4 0 resp 1) (exp (gen) y-0) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (recv (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))
-    ((recv (cat (exp (gen) y) y)) (send (cat (exp (gen) y) y))))
-  (label 56)
-  (parent 48)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (b ca b-0 name) (y y-0 rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (deflistener (exp (gen) (mul y y)))
-  (deflistener (cat (exp (gen) y-0) (mul y y (rec y-0))))
-  (defstrand resp 1 (b b-0) (y y-0))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 4))
-    ((3 1) (2 0)) ((4 0) (3 0)))
-  (non-orig (privk b) (privk ca))
-  (precur (3 0))
-  (uniq-gen y y-0)
-  (uniq-orig n)
-  (operation nonce-test (added-strand resp 1) (exp (gen) y-0) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (recv (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))
-    ((recv (cat (exp (gen) y-0) (mul y y (rec y-0))))
-      (send (cat (exp (gen) y-0) (mul y y (rec y-0)))))
-    ((send (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))))
-  (label 57)
-  (parent 48)
-  (unrealized (2 0) (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (b ca a b-0 ca-0 name) (y x rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0) (x x)
-    (y (mul y y (rec x))))
-  (defstrand ca 2 (subject a) (ca ca-0) (x x))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) a (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (recv (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca-0)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) (mul y y (rec x)))
-          (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0))
-          (enc n (exp (gen) (mul y y)))))
-      (send (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca-0)))))
-  (label 58)
-  (parent 49)
-  (unrealized (3 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (b ca name) (y rndx) (w expt))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (deflistener (exp (gen) (mul y y)))
-  (deflistener (cat (exp (gen) (mul y y (rec w))) w))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen y)
-  (uniq-orig n)
-  (precur (4 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y y (rec w))) w))
-    (exp (gen) (mul y y)) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (recv (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))
-    ((recv (cat (exp (gen) (mul y y (rec w))) w))
-      (send (cat (exp (gen) (mul y y (rec w))) w))))
-  (label 59)
-  (parent 50)
-  (unrealized (4 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (b ca a b-0 name) (y x rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand init 5 (n n) (a a) (b b-0) (ca ca) (x x) (y y))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 2 ca 2)
-    (enc (exp (gen) x) a (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (recv (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b-0 (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x))))))
-  (label 60)
-  (parent 51)
-  (unrealized (3 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (b ca a b-0 ca-0 name) (y x rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0) (x x) (y y))
-  (defstrand ca 2 (subject a) (ca ca-0) (x x))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) a (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (recv (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca-0)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b-0 (privk ca-0))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca-0)))))
-  (label 61)
-  (parent 51)
-  (unrealized (3 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca a-0 b-0 ca-0 name) (y y-0 x rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x y-0))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x y-0))
-  (defstrand resp 1 (b a) (y y-0))
-  (defstrand init 5 (n n) (a a-0) (b b-0) (ca ca-0) (x x)
-    (y (mul y y-0 (rec x))))
-  (defstrand ca 2 (subject a-0) (ca ca-0) (x x))
-  (precedes ((0 0) (1 0)) ((0 3) (4 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((4 0) (5 0)) ((4 4) (0 4)) ((5 1) (4 1)))
-  (non-orig (privk a) (privk b) (privk ca) (privk a-0) (privk ca-0))
-  (uniq-gen y y-0 x)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) a-0 (privk ca-0)) (4 1))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y-0)))))
-      (recv (enc "check" n (exp (gen) (mul y y-0)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) y-0) a (privk a)))
-      (send (enc (exp (gen) y-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) y-0) a (privk a))))
-    ((send (enc "reg" (exp (gen) x) a-0 (privk a-0)))
-      (recv (enc (exp (gen) x) a-0 (privk ca-0)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca-0))))
-      (recv
-        (cat (exp (gen) (mul y y-0 (rec x)))
-          (enc (exp (gen) (mul y y-0 (rec x))) b-0 (privk ca-0))
-          (enc n (exp (gen) (mul y y-0)))))
-      (send (enc "check" n (exp (gen) (mul y y-0)))))
-    ((recv (enc "reg" (exp (gen) x) a-0 (privk a-0)))
-      (send (enc (exp (gen) x) a-0 (privk ca-0)))))
-  (label 62)
-  (parent 52)
-  (unrealized (4 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (y y-0 rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x y-0))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x y-0))
-  (defstrand resp 1 (b a) (y y-0))
-  (deflistener (exp (gen) (mul y y-0)))
-  (deflistener (cat (exp (gen) y) y-0))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen y y-0)
-  (uniq-orig n)
-  (operation nonce-test (added-listener (cat (exp (gen) y) y-0))
-    (exp (gen) (mul y y-0)) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y-0)))))
-      (recv (enc "check" n (exp (gen) (mul y y-0)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) y-0) a (privk a)))
-      (send (enc (exp (gen) y-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) y-0) a (privk a))))
-    ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))
-    ((recv (cat (exp (gen) y) y-0)) (send (cat (exp (gen) y) y-0))))
-  (label 63)
-  (parent 53)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (y y-0 rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x y-0))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x y-0))
-  (defstrand resp 1 (b a) (y y-0))
-  (deflistener (exp (gen) (mul y y-0)))
-  (deflistener (cat (exp (gen) y-0) y))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen y y-0)
-  (uniq-orig n)
-  (operation nonce-test (added-listener (cat (exp (gen) y-0) y))
-    (exp (gen) (mul y y-0)) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y-0)))))
-      (recv (enc "check" n (exp (gen) (mul y y-0)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) y-0) a (privk a)))
-      (send (enc (exp (gen) y-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) y-0) a (privk a))))
-    ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))
-    ((recv (cat (exp (gen) y-0) y)) (send (cat (exp (gen) y-0) y))))
-  (label 64)
-  (parent 53)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (b ca name) (y rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (deflistener (exp (gen) (mul y y)))
-  (deflistener (cat (gen) (mul y y)))
-  (deflistener y)
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 4))
-    ((3 1) (2 0)) ((4 1) (3 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen y)
-  (uniq-orig n)
-  (precur (3 0))
-  (operation nonce-test (added-listener y) (mul y y) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (recv (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))
-    ((recv (cat (gen) (mul y y))) (send (cat (gen) (mul y y))))
-    ((recv y) (send y)))
-  (label 65)
-  (parent 55)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (b ca a b-0 ca-0 name) (y x rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0) (x x)
-    (y (mul y y (rec x))))
-  (defstrand ca 2 (subject a) (ca ca-0) (x x))
-  (defstrand ca 2 (subject b-0) (ca ca-0) (x (mul y y (rec x))))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((0 3) (3 3))
-    ((1 1) (0 1)) ((2 1) (0 2)) ((3 0) (4 0)) ((3 0) (5 0))
-    ((3 4) (0 4)) ((4 1) (3 1)) ((5 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0)) (3 3))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (recv (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca-0)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) (mul y y (rec x)))
-          (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0))
-          (enc n (exp (gen) (mul y y)))))
-      (send (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) (mul y y (rec x))) b-0 (privk b-0)))
-      (send (enc (exp (gen) (mul y y (rec x))) b-0 (privk ca-0)))))
-  (label 66)
-  (parent 58)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (b ca name) (y rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (deflistener (exp (gen) (mul y y)))
-  (deflistener (cat (gen) (mul y y)))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen y)
-  (uniq-orig n)
-  (precur (4 0))
-  (operation nonce-test (contracted (y-0 y) (w (mul y y))) (gen) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (recv (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))
-    ((recv (cat (gen) (mul y y))) (send (cat (gen) (mul y y)))))
-  (label 67)
-  (parent 59)
-  (unrealized (3 0) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (b ca name) (y rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (deflistener (exp (gen) (mul y y)))
-  (deflistener (cat (exp (gen) y) y))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)))
-  (non-orig (privk b) (privk ca))
-  (precur (4 0))
-  (uniq-gen y)
-  (uniq-orig n)
-  (operation nonce-test (displaced 5 0 resp 1) (exp (gen) y-0) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (recv (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))
-    ((recv (cat (exp (gen) y) y)) (send (cat (exp (gen) y) y))))
-  (label 68)
-  (parent 59)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (b ca b-0 name) (y y-0 rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (deflistener (exp (gen) (mul y y)))
-  (deflistener (cat (exp (gen) y-0) (mul y y (rec y-0))))
-  (defstrand resp 1 (b b-0) (y y-0))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)) ((5 0) (4 0)))
-  (non-orig (privk b) (privk ca))
-  (precur (4 0))
-  (uniq-gen y y-0)
-  (uniq-orig n)
-  (operation nonce-test (added-strand resp 1) (exp (gen) y-0) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (recv (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))
-    ((recv (cat (exp (gen) y-0) (mul y y (rec y-0))))
-      (send (cat (exp (gen) y-0) (mul y y (rec y-0)))))
-    ((send (enc "reg" (exp (gen) y-0) b-0 (privk b-0)))))
-  (label 69)
-  (parent 59)
-  (unrealized (3 0) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (b ca a name) (x y rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen x y)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 1 ca 2)
-    (enc (exp (gen) y) b-0 (privk ca)) (3 3))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (recv (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y))))))
-  (label 70)
-  (parent 60)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n n) (y y) (a a) (b b) (ca ca) (x x))))
-  (origs (n (0 3))))
-
-(defskeleton dhca
-  (vars (n text) (b ca a b-0 name) (x y rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand init 5 (n n) (a a) (b b-0) (ca ca) (x x) (y y))
-  (defstrand ca 2 (subject b-0) (ca ca) (x y))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))
-    ((4 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk b-0))
-  (uniq-gen x y)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) y) b-0 (privk ca)) (3 3))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (recv (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b-0 (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) y) b-0 (privk b-0)))
-      (send (enc (exp (gen) y) b-0 (privk ca)))))
-  (label 71)
-  (parent 60)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (b ca a name) (x y rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen x y)
-  (uniq-orig n)
-  (operation encryption-test (displaced 5 1 ca 2)
-    (enc (exp (gen) y) b-0 (privk ca-0)) (3 3))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (recv (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca)))))
-  (label 72)
-  (parent 61)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n n) (y y) (a a) (b b) (ca ca) (x x))))
-  (origs (n (0 3))))
-
-(defskeleton dhca
-  (vars (n text) (b ca a b-0 ca-0 name) (x y rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand init 5 (n n) (a a) (b b-0) (ca ca-0) (x x) (y y))
-  (defstrand ca 2 (subject a) (ca ca-0) (x x))
-  (defstrand ca 2 (subject b-0) (ca ca-0) (x y))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))
-    ((4 1) (3 1)) ((5 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))
-  (uniq-gen x y)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) y) b-0 (privk ca-0)) (3 3))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (recv (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca-0)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b-0 (privk ca-0))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) y) b-0 (privk b-0)))
-      (send (enc (exp (gen) y) b-0 (privk ca-0)))))
-  (label 73)
-  (parent 61)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca a-0 b-0 ca-0 name) (y y-0 x rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x y-0))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x y-0))
-  (defstrand resp 1 (b a) (y y-0))
-  (defstrand init 5 (n n) (a a-0) (b b-0) (ca ca-0) (x x)
-    (y (mul y y-0 (rec x))))
-  (defstrand ca 2 (subject a-0) (ca ca-0) (x x))
-  (defstrand ca 2 (subject b-0) (ca ca-0) (x (mul y y-0 (rec x))))
-  (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((0 3) (4 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (6 0)) ((4 0) (5 0))
-    ((4 0) (6 0)) ((4 4) (0 4)) ((5 1) (4 1)) ((6 1) (4 3)))
-  (non-orig (privk a) (privk b) (privk ca) (privk a-0) (privk b-0)
-    (privk ca-0))
-  (uniq-gen y y-0 x)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) (mul y y-0 (rec x))) b-0 (privk ca-0)) (4 3))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y-0) (enc (exp (gen) y-0) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y-0)))))
-      (recv (enc "check" n (exp (gen) (mul y y-0)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) y-0) a (privk a)))
-      (send (enc (exp (gen) y-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) y-0) a (privk a))))
-    ((send (enc "reg" (exp (gen) x) a-0 (privk a-0)))
-      (recv (enc (exp (gen) x) a-0 (privk ca-0)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a-0 (privk ca-0))))
-      (recv
-        (cat (exp (gen) (mul y y-0 (rec x)))
-          (enc (exp (gen) (mul y y-0 (rec x))) b-0 (privk ca-0))
-          (enc n (exp (gen) (mul y y-0)))))
-      (send (enc "check" n (exp (gen) (mul y y-0)))))
-    ((recv (enc "reg" (exp (gen) x) a-0 (privk a-0)))
-      (send (enc (exp (gen) x) a-0 (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) (mul y y-0 (rec x))) b-0 (privk b-0)))
-      (send (enc (exp (gen) (mul y y-0 (rec x))) b-0 (privk ca-0)))))
-  (label 74)
-  (parent 62)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (b ca name) (y rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (y y) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (deflistener (exp (gen) (mul y y)))
-  (deflistener (cat (gen) (mul y y)))
-  (deflistener y)
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)) ((5 1) (4 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen y)
-  (uniq-orig n)
-  (precur (4 0))
-  (operation nonce-test (added-listener y) (mul y y) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y y)))))
-      (recv (enc "check" n (exp (gen) (mul y y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y))))
-    ((recv (cat (gen) (mul y y))) (send (cat (gen) (mul y y))))
-    ((recv y) (send y)))
-  (label 75)
-  (parent 67)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (b ca a name) (x y rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))
-    ((4 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen x y)
-  (uniq-orig n)
-  (operation encryption-test (displaced 5 0 resp 1)
-    (enc "reg" (exp (gen) y) b-0 (privk b-0)) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (recv (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca)))))
-  (label 76)
-  (parent 71)
-  (seen 70)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (b ca a ca-0 name) (x y rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca-0) (x x) (y y))
-  (defstrand ca 2 (subject a) (ca ca-0) (x x))
-  (defstrand ca 2 (subject b) (ca ca-0) (x y))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))
-    ((4 1) (3 1)) ((5 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen x y)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 0 resp 1)
-    (enc "reg" (exp (gen) y) b-0 (privk b-0)) (5 0))
-  (traces
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (recv (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca-0)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca-0))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca-0)))))
-  (label 77)
-  (parent 73)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n n) (y y) (a a) (b b) (ca ca) (x x))))
-  (origs (n (0 3))))
-
-(comment "Nothing left to do")
-
-(defprotocol dhca diffie-hellman
-  (defrole init
-    (vars (x rndx) (a b ca name) (y expt) (n text))
-    (trace (send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    (non-orig (privk ca))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (a b ca name) (x expt) (n text))
-    (trace (send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (recv (enc "check" n (exp (gen) (mul y x)))))
-    (non-orig (privk ca))
-    (uniq-gen y))
-  (defrole ca
-    (vars (subject ca name) (x expt))
-    (trace (recv (enc "reg" (exp (gen) x) subject (privk subject)))
-      (send (enc (exp (gen) x) subject (privk ca))))
-    (non-orig (privk subject)))
-  (comment A diffie-hellman exchange which uses a certificate authority
-    to certify long-term DH values))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (non-orig (privk ca))
-  (uniq-gen x y)
-  (uniq-orig n)
-  (comment point of view in which init and resp each complete and they
-    agree on the relevant parameters)
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (recv (enc "check" n (exp (gen) (mul x y))))))
-  (label 78)
-  (unrealized (0 1) (0 3) (1 1) (1 2) (1 4))
-  (preskeleton)
-  (origs (n (1 3)))
-  (comment "Not a skeleton"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (precedes ((0 0) (1 2)) ((1 3) (0 3)))
-  (non-orig (privk ca))
-  (uniq-gen x y)
-  (uniq-orig n)
-  (comment point of view in which init and resp each complete and they
-    agree on the relevant parameters)
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (recv (enc "check" n (exp (gen) (mul x y))))))
-  (label 79)
-  (parent 78)
-  (unrealized (0 1) (1 1) (1 2) (1 4))
-  (origs (n (1 3)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (precedes ((0 0) (1 2)) ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen x y)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) y) b (privk ca)) (1 1))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (send (enc "check" n (exp (gen) (mul x y)))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul x y)))))
-      (recv (enc "check" n (exp (gen) (mul x y)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca)))))
-  (label 80)
-  (parent 79)
-  (unrealized (0 1) (1 2) (1 4))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (y x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) a (privk ca)) (1 2))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x)))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (recv (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca)))))
-  (label 81)
-  (parent 80)
-  (unrealized (0 1) (1 4))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (y x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (1 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 0 init 5)
-    (enc "check" n (exp (gen) (mul y x-0))) (1 4))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x)))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (recv (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca)))))
-  (label 82)
-  (parent 81)
-  (unrealized (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca a-0 b-0 ca-0 name) (y x x-0 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand init 5 (n n) (a a-0) (b b-0) (ca ca-0) (x x-0)
-    (y (mul y x (rec x-0))))
-  (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 4) (1 4)))
-  (non-orig (privk a) (privk b) (privk ca) (privk ca-0))
-  (uniq-gen y x x-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand init 5)
-    (enc "check" n (exp (gen) (mul y x))) (1 4))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x)))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (recv (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((send (enc "reg" (exp (gen) x-0) a-0 (privk a-0)))
-      (recv (enc (exp (gen) x-0) a-0 (privk ca-0)))
-      (send
-        (cat (exp (gen) x-0) (enc (exp (gen) x-0) a-0 (privk ca-0))))
-      (recv
-        (cat (exp (gen) (mul y x (rec x-0)))
-          (enc (exp (gen) (mul y x (rec x-0))) b-0 (privk ca-0))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x))))))
-  (label 83)
-  (parent 81)
-  (unrealized (0 1) (4 1) (4 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (y x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (deflistener (exp (gen) (mul y x)))
-  (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((1 0) (2 0)) ((1 0) (4 0))
-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (exp (gen) (mul y x)))
-    (enc "check" n (exp (gen) (mul y x))) (1 4))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x)))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (recv (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))
-  (label 84)
-  (parent 81)
-  (unrealized (0 1) (4 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (y x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (0 1)) ((3 1) (1 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 3 ca 2)
-    (enc (exp (gen) x) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x)))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (recv (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca)))))
-  (label 85)
-  (parent 82)
-  (unrealized)
-  (shape)
-  (maps ((0 1) ((a a) (b b) (ca ca) (x x) (y y) (n n))))
-  (origs (n (1 3))))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (y x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 4) (1 4)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (0 1)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x)))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (recv (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca)))))
-  (label 86)
-  (parent 82)
-  (unrealized)
-  (shape)
-  (maps ((0 1) ((a a) (b b) (ca ca) (x x) (y y) (n n))))
-  (origs (n (1 3))))
-
-(defskeleton dhca
-  (vars (n text) (a b ca a-0 b-0 ca-0 name) (y x x-0 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand init 5 (n n) (a a-0) (b b-0) (ca ca-0) (x x-0)
-    (y (mul y x (rec x-0))))
-  (defstrand ca 2 (subject a-0) (ca ca-0) (x x-0))
-  (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)))
-  (non-orig (privk a) (privk b) (privk ca) (privk a-0) (privk ca-0))
-  (uniq-gen y x x-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x-0) a-0 (privk ca-0)) (4 1))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x)))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (recv (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((send (enc "reg" (exp (gen) x-0) a-0 (privk a-0)))
-      (recv (enc (exp (gen) x-0) a-0 (privk ca-0)))
-      (send
-        (cat (exp (gen) x-0) (enc (exp (gen) x-0) a-0 (privk ca-0))))
-      (recv
-        (cat (exp (gen) (mul y x (rec x-0)))
-          (enc (exp (gen) (mul y x (rec x-0))) b-0 (privk ca-0))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) x-0) a-0 (privk a-0)))
-      (send (enc (exp (gen) x-0) a-0 (privk ca-0)))))
-  (label 87)
-  (parent 83)
-  (unrealized (0 1) (4 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (y x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (deflistener (exp (gen) (mul y x)))
-  (deflistener (cat (exp (gen) y) x))
-  (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))
-    ((5 1) (4 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (added-listener (cat (exp (gen) y) x))
-    (exp (gen) (mul y x)) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x)))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (recv (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
-  (label 88)
-  (parent 84)
-  (unrealized (0 1) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca name) (y x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (deflistener (exp (gen) (mul y x)))
-  (deflistener (cat (exp (gen) x) y))
-  (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))
-    ((5 1) (4 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (added-listener (cat (exp (gen) x) y))
-    (exp (gen) (mul y x)) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x)))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (recv (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
-    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
-  (label 89)
-  (parent 84)
-  (unrealized (0 1) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhca
-  (vars (n text) (a b ca a-0 b-0 ca-0 name) (y x x-0 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (ca ca) (x x) (y y))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (y y) (x x))
-  (defstrand ca 2 (subject b) (ca ca) (x y))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (defstrand init 5 (n n) (a a-0) (b b-0) (ca ca-0) (x x-0)
-    (y (mul y x (rec x-0))))
-  (defstrand ca 2 (subject a-0) (ca ca-0) (x x-0))
-  (defstrand ca 2 (subject b-0) (ca ca-0) (x (mul y x (rec x-0))))
-  (precedes ((0 0) (3 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (5 0)) ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)))
-  (non-orig (privk a) (privk b) (privk ca) (privk a-0) (privk b-0)
-    (privk ca-0))
-  (uniq-gen y x x-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) (mul y x (rec x-0))) b-0 (privk ca-0)) (4 3))
-  (traces
-    ((send (enc "reg" (exp (gen) x) a (privk a)))
-      (recv (enc (exp (gen) x) a (privk ca)))
-      (send (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (recv
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x)))))
-    ((send (enc "reg" (exp (gen) y) b (privk b)))
-      (recv (enc (exp (gen) y) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) y) (enc (exp (gen) y) b (privk ca))
-          (enc n (exp (gen) (mul y x)))))
-      (recv (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) y) b (privk b)))
-      (send (enc (exp (gen) y) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca))))
-    ((send (enc "reg" (exp (gen) x-0) a-0 (privk a-0)))
-      (recv (enc (exp (gen) x-0) a-0 (privk ca-0)))
-      (send
-        (cat (exp (gen) x-0) (enc (exp (gen) x-0) a-0 (privk ca-0))))
-      (recv
-        (cat (exp (gen) (mul y x (rec x-0)))
-          (enc (exp (gen) (mul y x (rec x-0))) b-0 (privk ca-0))
-          (enc n (exp (gen) (mul y x)))))
-      (send (enc "check" n (exp (gen) (mul y x)))))
-    ((recv (enc "reg" (exp (gen) x-0) a-0 (privk a-0)))
-      (send (enc (exp (gen) x-0) a-0 (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) (mul y x (rec x-0))) b-0 (privk b-0)))
-      (send (enc (exp (gen) (mul y x (rec x-0))) b-0 (privk ca-0)))))
-  (label 90)
-  (parent 87)
-  (unrealized (0 1) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
diff --git a/tst/dh-ca_hack.scm b/tst/dh-ca_hack.scm
new file mode 100644
--- /dev/null
+++ b/tst/dh-ca_hack.scm
@@ -0,0 +1,66 @@
+(herald dhca (algebra basic) (bound 12))
+
+(defmacro (CDH gx gy dhkey) (enc "dh" gx gy dhkey))
+
+(defprotocol dhca basic
+  (defrole init (vars (gx h akey) (dhkey skey) (a b ca name) (n text))
+    (trace
+     (recv (enc gx a (privk ca)))
+     (send (cat gx (enc gx a (privk ca))))
+     (recv (cat h (enc h b (privk ca)) (enc n (CDH gx h dhkey))))
+     (send (enc "check" n (CDH gx h dhkey))))
+    (non-orig (privk ca) dhkey))
+  (defrole resp (vars (gy h akey) (dhkey skey) (a b ca name) (n text))
+    (trace
+     (recv (enc gy b (privk ca)))
+     (recv (cat h (enc h a (privk ca))))
+     (send (cat gy (enc gy b (privk ca))
+		(enc n (CDH h gy dhkey))))
+     (recv (enc "check" n (CDH h gy dhkey))))
+    (non-orig (privk ca) dhkey))
+  (defrole ca (vars (subject ca name) (gz akey))
+    (trace
+     (send (enc gz subject (privk ca)) ))
+    (non-orig (invk gz)))
+  (defrole CDHcalc1 (vars (gx gy akey) (dhkey skey))
+   (trace
+    (recv (cat gx (invk gy)))
+    (send (CDH gx gy dhkey))
+  ))
+  (defrole CDHcalc2 (vars (gx gy akey) (dhkey skey))
+   (trace
+    (recv (cat gy (invk gx)))
+    (send (CDH gx gy dhkey))
+  ))
+;  (comment "A diffie-hellman exchange which uses a certificate
+;    authority to certify long-term DH values.")
+)
+
+(defskeleton dhca
+  (vars )
+  (defstrand init 4 )
+(comment "Full initiator point-of-view.  No need to make extra assumptions."))
+
+(defskeleton dhca
+  (vars (n text))
+  (defstrand resp 4 (n n))
+  (uniq-orig n)
+  (comment "Full responder point of view with freshly chosen n")
+)
+
+(defskeleton dhca
+  (vars (n text))
+  (defstrand resp 4 (n n))
+  (deflistener n)
+  (uniq-orig n)
+  (comment "Full responder point of view with freshly chosen n")
+)
+
+(defskeleton dhca
+  (vars (a b ca name) (gx gy akey) (n text) (dhkey skey))
+  (defstrand init 4 (gx gx) (h gy) (ca ca) (a a) (b b) (n n) (dhkey dhkey))
+  (defstrand resp 4 (h gx) (gy gy) (ca ca) (a a) (b b) (n n) (dhkey dhkey))
+(uniq-orig n)
+;(comment "point of view in which init and resp each complete and
+;    they agree on the relevant parameters.")
+)
diff --git a/tst/dh-ca_hack.tst b/tst/dh-ca_hack.tst
new file mode 100644
--- /dev/null
+++ b/tst/dh-ca_hack.tst
@@ -0,0 +1,5453 @@
+(herald dhca (algebra basic) (bound 12))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/dh-ca_hack.scm")
+(comment "Strand count bounded at 12")
+
+(defprotocol dhca basic
+  (defrole init
+    (vars (gx h akey) (dhkey skey) (a b ca name) (n text))
+    (trace (recv (enc gx a (privk ca)))
+      (send (cat gx (enc gx a (privk ca))))
+      (recv (cat h (enc h b (privk ca)) (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    (non-orig dhkey (privk ca)))
+  (defrole resp
+    (vars (gy h akey) (dhkey skey) (a b ca name) (n text))
+    (trace (recv (enc gy b (privk ca)))
+      (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    (non-orig dhkey (privk ca)))
+  (defrole ca
+    (vars (subject ca name) (gz akey))
+    (trace (send (enc gz subject (privk ca))))
+    (non-orig (invk gz)))
+  (defrole CDHcalc1
+    (vars (gx gy akey) (dhkey skey))
+    (trace (recv (cat gx (invk gy))) (send (enc "dh" gx gy dhkey))))
+  (defrole CDHcalc2
+    (vars (gx gy akey) (dhkey skey))
+    (trace (recv (cat gy (invk gx))) (send (enc "dh" gx gy dhkey))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx h akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h h) (a a) (b b)
+    (ca ca))
+  (non-orig dhkey (privk ca))
+  (comment
+    "Full initiator point-of-view.  No need to make extra assumptions.")
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv (cat h (enc h b (privk ca)) (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey)))))
+  (label 0)
+  (unrealized (0 0) (0 2))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx h akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (precedes ((1 0) (0 0)))
+  (non-orig dhkey (invk gx) (privk ca))
+  (operation encryption-test (added-strand ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv (cat h (enc h b (privk ca)) (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    ((send (enc gx a (privk ca)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (precedes ((1 0) (0 0)))
+  (non-orig dhkey (invk gx) (privk ca))
+  (operation encryption-test (displaced 2 1 ca 1) (enc h b (privk ca))
+    (0 2))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a (privk ca)))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx h akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand ca 1 (gz h) (subject b) (ca ca))
+  (precedes ((1 0) (0 0)) ((2 0) (0 2)))
+  (non-orig dhkey (invk gx) (invk h) (privk ca))
+  (operation encryption-test (added-strand ca 1) (enc h b (privk ca))
+    (0 2))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv (cat h (enc h b (privk ca)) (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    ((send (enc gx a (privk ca)))) ((send (enc h b (privk ca)))))
+  (label 3)
+  (parent 1)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a ca a-0 b ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy gx) (h gx) (a a-0) (b b)
+    (ca ca-0))
+  (precedes ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig dhkey (invk gx) (privk ca) (privk ca-0))
+  (operation encryption-test (added-strand resp 3)
+    (enc n (enc "dh" gx gx dhkey)) (0 2))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a (privk ca))))
+    ((recv (enc gx b (privk ca-0)))
+      (recv (cat gx (enc gx a-0 (privk ca-0))))
+      (send
+        (cat gx (enc gx b (privk ca-0))
+          (enc n (enc "dh" gx gx dhkey))))))
+  (label 4)
+  (parent 2)
+  (unrealized (2 0) (2 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (deflistener (enc "dh" gx gx dhkey))
+  (precedes ((1 0) (0 0)) ((2 1) (0 2)))
+  (non-orig dhkey (invk gx) (privk ca))
+  (operation encryption-test (added-listener (enc "dh" gx gx dhkey))
+    (enc n (enc "dh" gx gx dhkey)) (0 2))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a (privk ca))))
+    ((recv (enc "dh" gx gx dhkey)) (send (enc "dh" gx gx dhkey))))
+  (label 5)
+  (parent 2)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx h akey) (a b ca a-0 b-0 ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand ca 1 (gz h) (subject b) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy h) (h gx) (a a-0) (b b-0)
+    (ca ca-0))
+  (precedes ((1 0) (0 0)) ((2 0) (0 2)) ((3 2) (0 2)))
+  (non-orig dhkey (invk gx) (invk h) (privk ca) (privk ca-0))
+  (operation encryption-test (added-strand resp 3)
+    (enc n (enc "dh" gx h dhkey)) (0 2))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv (cat h (enc h b (privk ca)) (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    ((send (enc gx a (privk ca)))) ((send (enc h b (privk ca))))
+    ((recv (enc h b-0 (privk ca-0)))
+      (recv (cat gx (enc gx a-0 (privk ca-0))))
+      (send
+        (cat h (enc h b-0 (privk ca-0))
+          (enc n (enc "dh" gx h dhkey))))))
+  (label 6)
+  (parent 3)
+  (unrealized (3 0) (3 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx h akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand ca 1 (gz h) (subject b) (ca ca))
+  (deflistener (enc "dh" gx h dhkey))
+  (precedes ((1 0) (0 0)) ((2 0) (0 2)) ((3 1) (0 2)))
+  (non-orig dhkey (invk gx) (invk h) (privk ca))
+  (operation encryption-test (added-listener (enc "dh" gx h dhkey))
+    (enc n (enc "dh" gx h dhkey)) (0 2))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv (cat h (enc h b (privk ca)) (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    ((send (enc gx a (privk ca)))) ((send (enc h b (privk ca))))
+    ((recv (enc "dh" gx h dhkey)) (send (enc "dh" gx h dhkey))))
+  (label 7)
+  (parent 3)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a ca a-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy gx) (h gx) (a a-0) (b a)
+    (ca ca))
+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))
+  (non-orig dhkey (invk gx) (privk ca))
+  (operation encryption-test (displaced 3 1 ca 1)
+    (enc gx b (privk ca-0)) (2 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a (privk ca))))
+    ((recv (enc gx a (privk ca)))
+      (recv (cat gx (enc gx a-0 (privk ca))))
+      (send
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))))
+  (label 8)
+  (parent 4)
+  (unrealized (2 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a ca a-0 b ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy gx) (h gx) (a a-0) (b b)
+    (ca ca-0))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca-0))
+  (precedes ((1 0) (0 0)) ((2 2) (0 2)) ((3 0) (2 0)))
+  (non-orig dhkey (invk gx) (privk ca) (privk ca-0))
+  (operation encryption-test (added-strand ca 1) (enc gx b (privk ca-0))
+    (2 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a (privk ca))))
+    ((recv (enc gx b (privk ca-0)))
+      (recv (cat gx (enc gx a-0 (privk ca-0))))
+      (send
+        (cat gx (enc gx b (privk ca-0))
+          (enc n (enc "dh" gx gx dhkey)))))
+    ((send (enc gx b (privk ca-0)))))
+  (label 9)
+  (parent 4)
+  (unrealized (2 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a b ca a-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy gx) (h gx) (a a-0) (b a)
+    (ca ca))
+  (precedes ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 2)) ((3 2) (0 2)))
+  (non-orig dhkey (invk gx) (privk ca))
+  (operation encryption-test (displaced 4 1 ca 1)
+    (enc h b-0 (privk ca-0)) (3 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a (privk ca)))) ((send (enc gx b (privk ca))))
+    ((recv (enc gx a (privk ca)))
+      (recv (cat gx (enc gx a-0 (privk ca))))
+      (send
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))))
+  (label 10)
+  (parent 6)
+  (unrealized (3 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx h akey) (a b ca a-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand ca 1 (gz h) (subject b) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy h) (h gx) (a a-0) (b b)
+    (ca ca))
+  (precedes ((1 0) (0 0)) ((2 0) (3 0)) ((3 2) (0 2)))
+  (non-orig dhkey (invk gx) (invk h) (privk ca))
+  (operation encryption-test (displaced 4 2 ca 1)
+    (enc h b-0 (privk ca-0)) (3 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv (cat h (enc h b (privk ca)) (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    ((send (enc gx a (privk ca)))) ((send (enc h b (privk ca))))
+    ((recv (enc h b (privk ca))) (recv (cat gx (enc gx a-0 (privk ca))))
+      (send
+        (cat h (enc h b (privk ca)) (enc n (enc "dh" gx h dhkey))))))
+  (label 11)
+  (parent 6)
+  (unrealized (3 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx h akey) (a b ca a-0 b-0 ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand ca 1 (gz h) (subject b) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy h) (h gx) (a a-0) (b b-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz h) (subject b-0) (ca ca-0))
+  (precedes ((1 0) (0 0)) ((2 0) (0 2)) ((3 2) (0 2)) ((4 0) (3 0)))
+  (non-orig dhkey (invk gx) (invk h) (privk ca) (privk ca-0))
+  (operation encryption-test (added-strand ca 1)
+    (enc h b-0 (privk ca-0)) (3 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv (cat h (enc h b (privk ca)) (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    ((send (enc gx a (privk ca)))) ((send (enc h b (privk ca))))
+    ((recv (enc h b-0 (privk ca-0)))
+      (recv (cat gx (enc gx a-0 (privk ca-0))))
+      (send
+        (cat h (enc h b-0 (privk ca-0)) (enc n (enc "dh" gx h dhkey)))))
+    ((send (enc h b-0 (privk ca-0)))))
+  (label 12)
+  (parent 6)
+  (unrealized (3 1))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy gx) (h gx) (a a) (b a)
+    (ca ca))
+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))
+  (non-orig dhkey (invk gx) (privk ca))
+  (operation encryption-test (displaced 3 1 ca 1)
+    (enc gx a-0 (privk ca)) (2 1))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a (privk ca))))
+    ((recv (enc gx a (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))))
+  (label 13)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps ((0) ((gx gx) (h gx) (dhkey dhkey) (a a) (b a) (ca ca) (n n))))
+  (origs))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a ca a-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy gx) (h gx) (a a-0) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a-0) (ca ca))
+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)) ((3 0) (2 1)))
+  (non-orig dhkey (invk gx) (privk ca))
+  (operation encryption-test (added-strand ca 1) (enc gx a-0 (privk ca))
+    (2 1))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a (privk ca))))
+    ((recv (enc gx a (privk ca)))
+      (recv (cat gx (enc gx a-0 (privk ca))))
+      (send
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey)))))
+    ((send (enc gx a-0 (privk ca)))))
+  (label 14)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps ((0) ((gx gx) (h gx) (dhkey dhkey) (a a) (b a) (ca ca) (n n))))
+  (origs))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a ca b name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca))
+  (precedes ((1 0) (0 0)) ((1 0) (2 1)) ((2 2) (0 2)) ((3 0) (2 0)))
+  (non-orig dhkey (invk gx) (privk ca))
+  (operation encryption-test (displaced 4 1 ca 1)
+    (enc gx a-0 (privk ca-0)) (2 1))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a (privk ca))))
+    ((recv (enc gx b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey)))))
+    ((send (enc gx b (privk ca)))))
+  (label 15)
+  (parent 9)
+  (realized)
+  (shape)
+  (maps ((0) ((gx gx) (h gx) (dhkey dhkey) (a a) (b a) (ca ca) (n n))))
+  (origs))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a ca b ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy gx) (h gx) (a b) (b b)
+    (ca ca-0))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca-0))
+  (precedes ((1 0) (0 0)) ((2 2) (0 2)) ((3 0) (2 0)))
+  (non-orig dhkey (invk gx) (privk ca) (privk ca-0))
+  (operation encryption-test (displaced 4 3 ca 1)
+    (enc gx a-0 (privk ca-0)) (2 1))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a (privk ca))))
+    ((recv (enc gx b (privk ca-0)))
+      (recv (cat gx (enc gx b (privk ca-0))))
+      (send
+        (cat gx (enc gx b (privk ca-0))
+          (enc n (enc "dh" gx gx dhkey)))))
+    ((send (enc gx b (privk ca-0)))))
+  (label 16)
+  (parent 9)
+  (realized)
+  (shape)
+  (maps ((0) ((gx gx) (h gx) (dhkey dhkey) (a a) (b a) (ca ca) (n n))))
+  (origs))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a ca a-0 b ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy gx) (h gx) (a a-0) (b b)
+    (ca ca-0))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca-0))
+  (defstrand ca 1 (gz gx) (subject a-0) (ca ca-0))
+  (precedes ((1 0) (0 0)) ((2 2) (0 2)) ((3 0) (2 0)) ((4 0) (2 1)))
+  (non-orig dhkey (invk gx) (privk ca) (privk ca-0))
+  (operation encryption-test (added-strand ca 1)
+    (enc gx a-0 (privk ca-0)) (2 1))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a (privk ca))))
+    ((recv (enc gx b (privk ca-0)))
+      (recv (cat gx (enc gx a-0 (privk ca-0))))
+      (send
+        (cat gx (enc gx b (privk ca-0))
+          (enc n (enc "dh" gx gx dhkey)))))
+    ((send (enc gx b (privk ca-0)))) ((send (enc gx a-0 (privk ca-0)))))
+  (label 17)
+  (parent 9)
+  (realized)
+  (shape)
+  (maps ((0) ((gx gx) (h gx) (dhkey dhkey) (a a) (b a) (ca ca) (n n))))
+  (origs))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy gx) (h gx) (a a) (b a)
+    (ca ca))
+  (precedes ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 2)) ((3 2) (0 2)))
+  (non-orig dhkey (invk gx) (privk ca))
+  (operation encryption-test (displaced 4 1 ca 1)
+    (enc gx a-0 (privk ca)) (3 1))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a (privk ca)))) ((send (enc gx b (privk ca))))
+    ((recv (enc gx a (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))))
+  (label 18)
+  (parent 10)
+  (realized)
+  (shape)
+  (maps ((0) ((gx gx) (h gx) (dhkey dhkey) (a a) (b b) (ca ca) (n n))))
+  (origs))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy gx) (h gx) (a b) (b a)
+    (ca ca))
+  (precedes ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (3 1)) ((3 2) (0 2)))
+  (non-orig dhkey (invk gx) (privk ca))
+  (operation encryption-test (displaced 4 2 ca 1)
+    (enc gx a-0 (privk ca)) (3 1))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a (privk ca)))) ((send (enc gx b (privk ca))))
+    ((recv (enc gx a (privk ca))) (recv (cat gx (enc gx b (privk ca))))
+      (send
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))))
+  (label 19)
+  (parent 10)
+  (realized)
+  (shape)
+  (maps ((0) ((gx gx) (h gx) (dhkey dhkey) (a a) (b b) (ca ca) (n n))))
+  (origs))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a b ca a-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy gx) (h gx) (a a-0) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a-0) (ca ca))
+  (precedes ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 2)) ((3 2) (0 2))
+    ((4 0) (3 1)))
+  (non-orig dhkey (invk gx) (privk ca))
+  (operation encryption-test (added-strand ca 1) (enc gx a-0 (privk ca))
+    (3 1))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a (privk ca)))) ((send (enc gx b (privk ca))))
+    ((recv (enc gx a (privk ca)))
+      (recv (cat gx (enc gx a-0 (privk ca))))
+      (send
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey)))))
+    ((send (enc gx a-0 (privk ca)))))
+  (label 20)
+  (parent 10)
+  (realized)
+  (shape)
+  (maps ((0) ((gx gx) (h gx) (dhkey dhkey) (a a) (b b) (ca ca) (n n))))
+  (origs))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx h akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand ca 1 (gz h) (subject b) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy h) (h gx) (a a) (b b)
+    (ca ca))
+  (precedes ((1 0) (0 0)) ((1 0) (3 1)) ((2 0) (3 0)) ((3 2) (0 2)))
+  (non-orig dhkey (invk gx) (invk h) (privk ca))
+  (operation encryption-test (displaced 4 1 ca 1)
+    (enc gx a-0 (privk ca)) (3 1))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv (cat h (enc h b (privk ca)) (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    ((send (enc gx a (privk ca)))) ((send (enc h b (privk ca))))
+    ((recv (enc h b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat h (enc h b (privk ca)) (enc n (enc "dh" gx h dhkey))))))
+  (label 21)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0) ((gx gx) (h h) (dhkey dhkey) (a a) (b b) (ca ca) (n n))))
+  (origs))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (h akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx h) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz h) (subject a) (ca ca))
+  (defstrand ca 1 (gz h) (subject b) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy h) (h h) (a b) (b b)
+    (ca ca))
+  (precedes ((1 0) (0 0)) ((2 0) (3 0)) ((3 2) (0 2)))
+  (non-orig dhkey (invk h) (privk ca))
+  (operation encryption-test (displaced 4 2 ca 1)
+    (enc gx a-0 (privk ca)) (3 1))
+  (traces
+    ((recv (enc h a (privk ca))) (send (cat h (enc h a (privk ca))))
+      (recv (cat h (enc h b (privk ca)) (enc n (enc "dh" h h dhkey))))
+      (send (enc "check" n (enc "dh" h h dhkey))))
+    ((send (enc h a (privk ca)))) ((send (enc h b (privk ca))))
+    ((recv (enc h b (privk ca))) (recv (cat h (enc h b (privk ca))))
+      (send (cat h (enc h b (privk ca)) (enc n (enc "dh" h h dhkey))))))
+  (label 22)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0) ((gx h) (h h) (dhkey dhkey) (a a) (b b) (ca ca) (n n))))
+  (origs))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx h akey) (a b ca a-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand ca 1 (gz h) (subject b) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy h) (h gx) (a a-0) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a-0) (ca ca))
+  (precedes ((1 0) (0 0)) ((2 0) (3 0)) ((3 2) (0 2)) ((4 0) (3 1)))
+  (non-orig dhkey (invk gx) (invk h) (privk ca))
+  (operation encryption-test (added-strand ca 1) (enc gx a-0 (privk ca))
+    (3 1))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv (cat h (enc h b (privk ca)) (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    ((send (enc gx a (privk ca)))) ((send (enc h b (privk ca))))
+    ((recv (enc h b (privk ca))) (recv (cat gx (enc gx a-0 (privk ca))))
+      (send (cat h (enc h b (privk ca)) (enc n (enc "dh" gx h dhkey)))))
+    ((send (enc gx a-0 (privk ca)))))
+  (label 23)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0) ((gx gx) (h h) (dhkey dhkey) (a a) (b b) (ca ca) (n n))))
+  (origs))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (h akey) (a b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx h) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz h) (subject a) (ca ca))
+  (defstrand ca 1 (gz h) (subject b) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy h) (h h) (a b) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz h) (subject b-0) (ca ca))
+  (precedes ((1 0) (0 0)) ((2 0) (3 1)) ((3 2) (0 2)) ((4 0) (3 0)))
+  (non-orig dhkey (invk h) (privk ca))
+  (operation encryption-test (displaced 5 2 ca 1)
+    (enc gx a-0 (privk ca-0)) (3 1))
+  (traces
+    ((recv (enc h a (privk ca))) (send (cat h (enc h a (privk ca))))
+      (recv (cat h (enc h b (privk ca)) (enc n (enc "dh" h h dhkey))))
+      (send (enc "check" n (enc "dh" h h dhkey))))
+    ((send (enc h a (privk ca)))) ((send (enc h b (privk ca))))
+    ((recv (enc h b-0 (privk ca))) (recv (cat h (enc h b (privk ca))))
+      (send
+        (cat h (enc h b-0 (privk ca)) (enc n (enc "dh" h h dhkey)))))
+    ((send (enc h b-0 (privk ca)))))
+  (label 24)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps ((0) ((gx h) (h h) (dhkey dhkey) (a a) (b b) (ca ca) (n n))))
+  (origs))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx h akey) (a b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand ca 1 (gz h) (subject b) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy h) (h gx) (a a) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz h) (subject b-0) (ca ca))
+  (precedes ((1 0) (0 0)) ((1 0) (3 1)) ((2 0) (0 2)) ((3 2) (0 2))
+    ((4 0) (3 0)))
+  (non-orig dhkey (invk gx) (invk h) (privk ca))
+  (operation encryption-test (displaced 5 1 ca 1)
+    (enc gx a-0 (privk ca-0)) (3 1))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv (cat h (enc h b (privk ca)) (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    ((send (enc gx a (privk ca)))) ((send (enc h b (privk ca))))
+    ((recv (enc h b-0 (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat h (enc h b-0 (privk ca)) (enc n (enc "dh" gx h dhkey)))))
+    ((send (enc h b-0 (privk ca)))))
+  (label 25)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps ((0) ((gx gx) (h h) (dhkey dhkey) (a a) (b b) (ca ca) (n n))))
+  (origs))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (h akey) (a b ca b-0 ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx h) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz h) (subject a) (ca ca))
+  (defstrand ca 1 (gz h) (subject b) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy h) (h h) (a b-0) (b b-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz h) (subject b-0) (ca ca-0))
+  (precedes ((1 0) (0 0)) ((2 0) (0 2)) ((3 2) (0 2)) ((4 0) (3 0)))
+  (non-orig dhkey (invk h) (privk ca) (privk ca-0))
+  (operation encryption-test (displaced 5 4 ca 1)
+    (enc gx a-0 (privk ca-0)) (3 1))
+  (traces
+    ((recv (enc h a (privk ca))) (send (cat h (enc h a (privk ca))))
+      (recv (cat h (enc h b (privk ca)) (enc n (enc "dh" h h dhkey))))
+      (send (enc "check" n (enc "dh" h h dhkey))))
+    ((send (enc h a (privk ca)))) ((send (enc h b (privk ca))))
+    ((recv (enc h b-0 (privk ca-0)))
+      (recv (cat h (enc h b-0 (privk ca-0))))
+      (send
+        (cat h (enc h b-0 (privk ca-0)) (enc n (enc "dh" h h dhkey)))))
+    ((send (enc h b-0 (privk ca-0)))))
+  (label 26)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps ((0) ((gx h) (h h) (dhkey dhkey) (a a) (b b) (ca ca) (n n))))
+  (origs))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx h akey) (a b ca a-0 b-0 ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand ca 1 (gz h) (subject b) (ca ca))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gy h) (h gx) (a a-0) (b b-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz h) (subject b-0) (ca ca-0))
+  (defstrand ca 1 (gz gx) (subject a-0) (ca ca-0))
+  (precedes ((1 0) (0 0)) ((2 0) (0 2)) ((3 2) (0 2)) ((4 0) (3 0))
+    ((5 0) (3 1)))
+  (non-orig dhkey (invk gx) (invk h) (privk ca) (privk ca-0))
+  (operation encryption-test (added-strand ca 1)
+    (enc gx a-0 (privk ca-0)) (3 1))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv (cat h (enc h b (privk ca)) (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    ((send (enc gx a (privk ca)))) ((send (enc h b (privk ca))))
+    ((recv (enc h b-0 (privk ca-0)))
+      (recv (cat gx (enc gx a-0 (privk ca-0))))
+      (send
+        (cat h (enc h b-0 (privk ca-0)) (enc n (enc "dh" gx h dhkey)))))
+    ((send (enc h b-0 (privk ca-0))))
+    ((send (enc gx a-0 (privk ca-0)))))
+  (label 27)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps ((0) ((gx gx) (h h) (dhkey dhkey) (a a) (b b) (ca ca) (n n))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol dhca basic
+  (defrole init
+    (vars (gx h akey) (dhkey skey) (a b ca name) (n text))
+    (trace (recv (enc gx a (privk ca)))
+      (send (cat gx (enc gx a (privk ca))))
+      (recv (cat h (enc h b (privk ca)) (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    (non-orig dhkey (privk ca)))
+  (defrole resp
+    (vars (gy h akey) (dhkey skey) (a b ca name) (n text))
+    (trace (recv (enc gy b (privk ca)))
+      (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    (non-orig dhkey (privk ca)))
+  (defrole ca
+    (vars (subject ca name) (gz akey))
+    (trace (send (enc gz subject (privk ca))))
+    (non-orig (invk gz)))
+  (defrole CDHcalc1
+    (vars (gx gy akey) (dhkey skey))
+    (trace (recv (cat gx (invk gy))) (send (enc "dh" gx gy dhkey))))
+  (defrole CDHcalc2
+    (vars (gx gy akey) (dhkey skey))
+    (trace (recv (cat gy (invk gx))) (send (enc "dh" gx gy dhkey))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (non-orig dhkey (privk ca))
+  (uniq-orig n)
+  (comment "Full responder point of view with freshly chosen n")
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey)))))
+  (label 28)
+  (unrealized (0 0) (0 1) (0 3))
+  (origs (n (0 2)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (precedes ((1 0) (0 0)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gy b (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    ((send (enc gy b (privk ca)))))
+  (label 29)
+  (parent 28)
+  (unrealized (0 1) (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (precedes ((1 0) (0 0)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 2 1 ca 1) (enc h a (privk ca))
+    (0 1))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))))
+  (label 30)
+  (parent 29)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz h) (subject a) (ca ca))
+  (precedes ((1 0) (0 0)) ((2 0) (0 1)))
+  (non-orig dhkey (invk gy) (invk h) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc h a (privk ca))
+    (0 1))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc h a (privk ca)))))
+  (label 31)
+  (parent 29)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca a b-0 ca-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b-0)
+    (ca ca-0))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((2 3) (0 3)))
+  (non-orig dhkey (invk gy) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (added-strand init 4)
+    (enc "check" n (enc "dh" gy gy dhkey)) (0 3))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy a (privk ca-0)))
+      (send (cat gy (enc gy a (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey)))))
+  (label 32)
+  (parent 30)
+  (unrealized (2 0) (2 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (deflistener (enc "dh" gy gy dhkey))
+  (precedes ((1 0) (0 0)) ((2 1) (0 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-listener (enc "dh" gy gy dhkey))
+    (enc "check" n (enc "dh" gy gy dhkey)) (0 3))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc "dh" gy gy dhkey)) (send (enc "dh" gy gy dhkey))))
+  (label 33)
+  (parent 30)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca a-0 b-0 ca-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz h) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx h) (h gy) (a a-0) (b b-0)
+    (ca ca-0))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (0 1)) ((3 3) (0 3)))
+  (non-orig dhkey (invk gy) (invk h) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (added-strand init 4)
+    (enc "check" n (enc "dh" h gy dhkey)) (0 3))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc h a (privk ca))))
+    ((recv (enc h a-0 (privk ca-0)))
+      (send (cat h (enc h a-0 (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" h gy dhkey))))
+      (send (enc "check" n (enc "dh" h gy dhkey)))))
+  (label 34)
+  (parent 31)
+  (unrealized (3 0) (3 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz h) (subject a) (ca ca))
+  (deflistener (enc "dh" h gy dhkey))
+  (precedes ((1 0) (0 0)) ((2 0) (0 1)) ((3 1) (0 3)))
+  (non-orig dhkey (invk gy) (invk h) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-listener (enc "dh" h gy dhkey))
+    (enc "check" n (enc "dh" h gy dhkey)) (0 3))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc h a (privk ca))))
+    ((recv (enc "dh" h gy dhkey)) (send (enc "dh" h gy dhkey))))
+  (label 35)
+  (parent 31)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca b-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b-0)
+    (ca ca))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 3) (0 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 3 1 ca 1)
+    (enc gy a (privk ca-0)) (2 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey)))))
+  (label 36)
+  (parent 32)
+  (unrealized (2 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca a b-0 ca-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca-0))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((2 3) (0 3)) ((3 0) (2 0)))
+  (non-orig dhkey (invk gy) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gy a (privk ca-0))
+    (2 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy a (privk ca-0)))
+      (send (cat gy (enc gy a (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca-0)))))
+  (label 37)
+  (parent 32)
+  (unrealized (2 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (a b ca b-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b-0)
+    (ca ca))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 1))
+    ((3 3) (0 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 4 1 ca 1)
+    (enc h a-0 (privk ca-0)) (3 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy a (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey)))))
+  (label 38)
+  (parent 34)
+  (unrealized (3 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca b-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz h) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx h) (h gy) (a a) (b b-0)
+    (ca ca))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (0 1)) ((2 0) (3 0))
+    ((3 3) (0 3)))
+  (non-orig dhkey (invk gy) (invk h) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 4 2 ca 1)
+    (enc h a-0 (privk ca-0)) (3 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc h a (privk ca))))
+    ((recv (enc h a (privk ca))) (send (cat h (enc h a (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (send (enc "check" n (enc "dh" h gy dhkey)))))
+  (label 39)
+  (parent 34)
+  (unrealized (3 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca a-0 b-0 ca-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz h) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx h) (h gy) (a a-0) (b b-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz h) (subject a-0) (ca ca-0))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (0 1)) ((3 3) (0 3))
+    ((4 0) (3 0)))
+  (non-orig dhkey (invk gy) (invk h) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1)
+    (enc h a-0 (privk ca-0)) (3 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc h a (privk ca))))
+    ((recv (enc h a-0 (privk ca-0)))
+      (send (cat h (enc h a-0 (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" h gy dhkey))))
+      (send (enc "check" n (enc "dh" h gy dhkey))))
+    ((send (enc h a-0 (privk ca-0)))))
+  (label 40)
+  (parent 34)
+  (unrealized (3 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 3) (0 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 3 1 ca 1)
+    (enc gy b-0 (privk ca)) (2 2))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey)))))
+  (label 41)
+  (parent 36)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (gy gy) (h gy) (dhkey dhkey) (a b) (b b) (ca ca))))
+  (origs (n (0 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca b-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 3) (0 3))
+    ((3 0) (2 2)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gy b-0 (privk ca))
+    (2 2))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b-0 (privk ca)))))
+  (label 42)
+  (parent 36)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (gy gy) (h gy) (dhkey dhkey) (a b) (b b) (ca ca))))
+  (origs (n (0 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca a name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((2 3) (0 3)) ((3 0) (2 0)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 4 1 ca 1)
+    (enc gy b-0 (privk ca-0)) (2 2))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca)))))
+  (label 43)
+  (parent 37)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (gy gy) (h gy) (dhkey dhkey) (a b) (b b) (ca ca))))
+  (origs (n (0 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca a ca-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b a)
+    (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca-0))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((2 3) (0 3)) ((3 0) (2 0)))
+  (non-orig dhkey (invk gy) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (displaced 4 3 ca 1)
+    (enc gy b-0 (privk ca-0)) (2 2))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy a (privk ca-0)))
+      (send (cat gy (enc gy a (privk ca-0))))
+      (recv
+        (cat gy (enc gy a (privk ca-0)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca-0)))))
+  (label 44)
+  (parent 37)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (gy gy) (h gy) (dhkey dhkey) (a b) (b b) (ca ca))))
+  (origs (n (0 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca a b-0 ca-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca-0))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((2 3) (0 3)) ((3 0) (2 0))
+    ((4 0) (2 2)))
+  (non-orig dhkey (invk gy) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1)
+    (enc gy b-0 (privk ca-0)) (2 2))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy a (privk ca-0)))
+      (send (cat gy (enc gy a (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca-0)))) ((send (enc gy b-0 (privk ca-0)))))
+  (label 45)
+  (parent 37)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (gy gy) (h gy) (dhkey dhkey) (a b) (b b) (ca ca))))
+  (origs (n (0 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (a b ca name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 1))
+    ((3 3) (0 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 4 1 ca 1)
+    (enc gy b-0 (privk ca)) (3 2))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy a (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey)))))
+  (label 46)
+  (parent 38)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (gy gy) (h gy) (dhkey dhkey) (a a) (b b) (ca ca))))
+  (origs (n (0 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (a b ca name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b a)
+    (ca ca))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 1))
+    ((3 3) (0 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 4 2 ca 1)
+    (enc gy b-0 (privk ca)) (3 2))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy a (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy a (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey)))))
+  (label 47)
+  (parent 38)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (gy gy) (h gy) (dhkey dhkey) (a a) (b b) (ca ca))))
+  (origs (n (0 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (a b ca b-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 1))
+    ((3 3) (0 3)) ((4 0) (3 2)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gy b-0 (privk ca))
+    (3 2))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy a (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b-0 (privk ca)))))
+  (label 48)
+  (parent 38)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (gy gy) (h gy) (dhkey dhkey) (a a) (b b) (ca ca))))
+  (origs (n (0 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz h) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx h) (h gy) (a a) (b b)
+    (ca ca))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (0 1)) ((2 0) (3 0))
+    ((3 3) (0 3)))
+  (non-orig dhkey (invk gy) (invk h) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 4 1 ca 1)
+    (enc gy b-0 (privk ca)) (3 2))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc h a (privk ca))))
+    ((recv (enc h a (privk ca))) (send (cat h (enc h a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (send (enc "check" n (enc "dh" h gy dhkey)))))
+  (label 49)
+  (parent 39)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (gy gy) (h h) (dhkey dhkey) (a a) (b b) (ca ca))))
+  (origs (n (0 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (h akey) (a b ca name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy h) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz h) (subject b) (ca ca))
+  (defstrand ca 1 (gz h) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx h) (h h) (a a) (b a)
+    (ca ca))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (0 1)) ((2 0) (3 0))
+    ((3 3) (0 3)))
+  (non-orig dhkey (invk h) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 4 2 ca 1)
+    (enc gy b-0 (privk ca)) (3 2))
+  (traces
+    ((recv (enc h b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send (cat h (enc h b (privk ca)) (enc n (enc "dh" h h dhkey))))
+      (recv (enc "check" n (enc "dh" h h dhkey))))
+    ((send (enc h b (privk ca)))) ((send (enc h a (privk ca))))
+    ((recv (enc h a (privk ca))) (send (cat h (enc h a (privk ca))))
+      (recv (cat h (enc h a (privk ca)) (enc n (enc "dh" h h dhkey))))
+      (send (enc "check" n (enc "dh" h h dhkey)))))
+  (label 50)
+  (parent 39)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (gy h) (h h) (dhkey dhkey) (a a) (b b) (ca ca))))
+  (origs (n (0 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca b-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz h) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx h) (h gy) (a a) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (0 1)) ((2 0) (3 0))
+    ((3 3) (0 3)) ((4 0) (3 2)))
+  (non-orig dhkey (invk gy) (invk h) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gy b-0 (privk ca))
+    (3 2))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc h a (privk ca))))
+    ((recv (enc h a (privk ca))) (send (cat h (enc h a (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (send (enc "check" n (enc "dh" h gy dhkey))))
+    ((send (enc gy b-0 (privk ca)))))
+  (label 51)
+  (parent 39)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (gy gy) (h h) (dhkey dhkey) (a a) (b b) (ca ca))))
+  (origs (n (0 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (h akey) (a b ca a-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy h) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz h) (subject b) (ca ca))
+  (defstrand ca 1 (gz h) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx h) (h h) (a a-0) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz h) (subject a-0) (ca ca))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (0 1)) ((3 3) (0 3))
+    ((4 0) (3 0)))
+  (non-orig dhkey (invk h) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 2 ca 1)
+    (enc gy b-0 (privk ca-0)) (3 2))
+  (traces
+    ((recv (enc h b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send (cat h (enc h b (privk ca)) (enc n (enc "dh" h h dhkey))))
+      (recv (enc "check" n (enc "dh" h h dhkey))))
+    ((send (enc h b (privk ca)))) ((send (enc h a (privk ca))))
+    ((recv (enc h a-0 (privk ca))) (send (cat h (enc h a-0 (privk ca))))
+      (recv (cat h (enc h a (privk ca)) (enc n (enc "dh" h h dhkey))))
+      (send (enc "check" n (enc "dh" h h dhkey))))
+    ((send (enc h a-0 (privk ca)))))
+  (label 52)
+  (parent 40)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (gy h) (h h) (dhkey dhkey) (a a) (b b) (ca ca))))
+  (origs (n (0 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca a-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz h) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx h) (h gy) (a a-0) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz h) (subject a-0) (ca ca))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (0 1)) ((3 3) (0 3))
+    ((4 0) (3 0)))
+  (non-orig dhkey (invk gy) (invk h) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 1 ca 1)
+    (enc gy b-0 (privk ca-0)) (3 2))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc h a (privk ca))))
+    ((recv (enc h a-0 (privk ca))) (send (cat h (enc h a-0 (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (send (enc "check" n (enc "dh" h gy dhkey))))
+    ((send (enc h a-0 (privk ca)))))
+  (label 53)
+  (parent 40)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (gy gy) (h h) (dhkey dhkey) (a a) (b b) (ca ca))))
+  (origs (n (0 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (h akey) (a b ca a-0 ca-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy h) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz h) (subject b) (ca ca))
+  (defstrand ca 1 (gz h) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx h) (h h) (a a-0) (b a-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz h) (subject a-0) (ca ca-0))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (0 1)) ((3 3) (0 3))
+    ((4 0) (3 0)))
+  (non-orig dhkey (invk h) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 4 ca 1)
+    (enc gy b-0 (privk ca-0)) (3 2))
+  (traces
+    ((recv (enc h b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send (cat h (enc h b (privk ca)) (enc n (enc "dh" h h dhkey))))
+      (recv (enc "check" n (enc "dh" h h dhkey))))
+    ((send (enc h b (privk ca)))) ((send (enc h a (privk ca))))
+    ((recv (enc h a-0 (privk ca-0)))
+      (send (cat h (enc h a-0 (privk ca-0))))
+      (recv
+        (cat h (enc h a-0 (privk ca-0)) (enc n (enc "dh" h h dhkey))))
+      (send (enc "check" n (enc "dh" h h dhkey))))
+    ((send (enc h a-0 (privk ca-0)))))
+  (label 54)
+  (parent 40)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (gy h) (h h) (dhkey dhkey) (a a) (b b) (ca ca))))
+  (origs (n (0 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca a-0 b-0 ca-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz h) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx h) (h gy) (a a-0) (b b-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz h) (subject a-0) (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca-0))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (0 1)) ((3 3) (0 3))
+    ((4 0) (3 0)) ((5 0) (3 2)))
+  (non-orig dhkey (invk gy) (invk h) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1)
+    (enc gy b-0 (privk ca-0)) (3 2))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc h a (privk ca))))
+    ((recv (enc h a-0 (privk ca-0)))
+      (send (cat h (enc h a-0 (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" h gy dhkey))))
+      (send (enc "check" n (enc "dh" h gy dhkey))))
+    ((send (enc h a-0 (privk ca-0))))
+    ((send (enc gy b-0 (privk ca-0)))))
+  (label 55)
+  (parent 40)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (gy gy) (h h) (dhkey dhkey) (a a) (b b) (ca ca))))
+  (origs (n (0 2))))
+
+(comment "Nothing left to do")
+
+(defprotocol dhca basic
+  (defrole init
+    (vars (gx h akey) (dhkey skey) (a b ca name) (n text))
+    (trace (recv (enc gx a (privk ca)))
+      (send (cat gx (enc gx a (privk ca))))
+      (recv (cat h (enc h b (privk ca)) (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    (non-orig dhkey (privk ca)))
+  (defrole resp
+    (vars (gy h akey) (dhkey skey) (a b ca name) (n text))
+    (trace (recv (enc gy b (privk ca)))
+      (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    (non-orig dhkey (privk ca)))
+  (defrole ca
+    (vars (subject ca name) (gz akey))
+    (trace (send (enc gz subject (privk ca))))
+    (non-orig (invk gz)))
+  (defrole CDHcalc1
+    (vars (gx gy akey) (dhkey skey))
+    (trace (recv (cat gx (invk gy))) (send (enc "dh" gx gy dhkey))))
+  (defrole CDHcalc2
+    (vars (gx gy akey) (dhkey skey))
+    (trace (recv (cat gy (invk gx))) (send (enc "dh" gx gy dhkey))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (deflistener n)
+  (non-orig dhkey (privk ca))
+  (uniq-orig n)
+  (comment "Full responder point of view with freshly chosen n")
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey)))) ((recv n) (send n)))
+  (label 56)
+  (unrealized (0 0) (0 1) (0 3) (1 0))
+  (preskeleton)
+  (origs (n (0 2)))
+  (comment "Not a skeleton"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (deflistener n)
+  (precedes ((0 2) (1 0)))
+  (non-orig dhkey (privk ca))
+  (uniq-orig n)
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey)))) ((recv n) (send n)))
+  (label 57)
+  (parent 56)
+  (unrealized (0 0) (0 1) (0 3) (1 0))
+  (origs (n (0 2)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca a-0 b-0 ca-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (deflistener n)
+  (defstrand init 4 (dhkey dhkey) (n n) (gx h) (h gy) (a a-0) (b b-0)
+    (ca ca-0))
+  (precedes ((0 2) (2 2)) ((2 3) (1 0)))
+  (non-orig dhkey (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation nonce-test (added-strand init 4) n (1 0)
+    (enc n (enc "dh" h gy dhkey)))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey)))) ((recv n) (send n))
+    ((recv (enc h a-0 (privk ca-0)))
+      (send (cat h (enc h a-0 (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" h gy dhkey))))
+      (send (enc "check" n (enc "dh" h gy dhkey)))))
+  (label 58)
+  (parent 57)
+  (unrealized (0 0) (0 1) (0 3) (1 0) (2 0) (2 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (deflistener n)
+  (deflistener (enc "dh" h gy dhkey))
+  (precedes ((0 2) (1 0)) ((2 1) (1 0)))
+  (non-orig dhkey (privk ca))
+  (uniq-orig n)
+  (operation nonce-test (added-listener (enc "dh" h gy dhkey)) n (1 0)
+    (enc n (enc "dh" h gy dhkey)))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey)))) ((recv n) (send n))
+    ((recv (enc "dh" h gy dhkey)) (send (enc "dh" h gy dhkey))))
+  (label 59)
+  (parent 57)
+  (unrealized (0 0) (0 1) (0 3) (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca a-0 b-0 ca-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (deflistener n)
+  (defstrand init 4 (dhkey dhkey) (n n) (gx h) (h gy) (a a-0) (b b-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz h) (subject a-0) (ca ca-0))
+  (precedes ((0 2) (2 2)) ((2 3) (1 0)) ((3 0) (2 0)))
+  (non-orig dhkey (invk h) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1)
+    (enc h a-0 (privk ca-0)) (2 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey)))) ((recv n) (send n))
+    ((recv (enc h a-0 (privk ca-0)))
+      (send (cat h (enc h a-0 (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" h gy dhkey))))
+      (send (enc "check" n (enc "dh" h gy dhkey))))
+    ((send (enc h a-0 (privk ca-0)))))
+  (label 60)
+  (parent 58)
+  (unrealized (0 0) (0 1) (0 3) (1 0) (2 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (deflistener n)
+  (deflistener (enc "dh" h gy dhkey))
+  (defstrand CDHcalc1 2 (dhkey dhkey) (gx h) (gy gy))
+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 1) (2 0)))
+  (non-orig dhkey (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand CDHcalc1 2)
+    (enc "dh" h gy dhkey) (2 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey)))) ((recv n) (send n))
+    ((recv (enc "dh" h gy dhkey)) (send (enc "dh" h gy dhkey)))
+    ((recv (cat h (invk gy))) (send (enc "dh" h gy dhkey))))
+  (label 61)
+  (parent 59)
+  (unrealized (0 0) (0 1) (0 3))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (deflistener n)
+  (deflistener (enc "dh" h gy dhkey))
+  (defstrand CDHcalc2 2 (dhkey dhkey) (gx h) (gy gy))
+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 1) (2 0)))
+  (non-orig dhkey (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand CDHcalc2 2)
+    (enc "dh" h gy dhkey) (2 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey)))) ((recv n) (send n))
+    ((recv (enc "dh" h gy dhkey)) (send (enc "dh" h gy dhkey)))
+    ((recv (cat gy (invk h))) (send (enc "dh" h gy dhkey))))
+  (label 62)
+  (parent 59)
+  (unrealized (0 0) (0 1) (0 3))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (h akey) (a b ca a-0 ca-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy h) (h h) (a a) (b b)
+    (ca ca))
+  (deflistener n)
+  (defstrand init 4 (dhkey dhkey) (n n) (gx h) (h h) (a a-0) (b a-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz h) (subject a-0) (ca ca-0))
+  (precedes ((0 2) (2 2)) ((2 3) (1 0)) ((3 0) (2 0)))
+  (non-orig dhkey (invk h) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (displaced 4 3 ca 1)
+    (enc gy b-0 (privk ca-0)) (2 2))
+  (traces
+    ((recv (enc h b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send (cat h (enc h b (privk ca)) (enc n (enc "dh" h h dhkey))))
+      (recv (enc "check" n (enc "dh" h h dhkey)))) ((recv n) (send n))
+    ((recv (enc h a-0 (privk ca-0)))
+      (send (cat h (enc h a-0 (privk ca-0))))
+      (recv
+        (cat h (enc h a-0 (privk ca-0)) (enc n (enc "dh" h h dhkey))))
+      (send (enc "check" n (enc "dh" h h dhkey))))
+    ((send (enc h a-0 (privk ca-0)))))
+  (label 63)
+  (parent 60)
+  (unrealized (0 0) (0 1) (0 3) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca a-0 b-0 ca-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (deflistener n)
+  (defstrand init 4 (dhkey dhkey) (n n) (gx h) (h gy) (a a-0) (b b-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz h) (subject a-0) (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca-0))
+  (precedes ((0 2) (2 2)) ((2 3) (1 0)) ((3 0) (2 0)) ((4 0) (2 2)))
+  (non-orig dhkey (invk gy) (invk h) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1)
+    (enc gy b-0 (privk ca-0)) (2 2))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey)))) ((recv n) (send n))
+    ((recv (enc h a-0 (privk ca-0)))
+      (send (cat h (enc h a-0 (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" h gy dhkey))))
+      (send (enc "check" n (enc "dh" h gy dhkey))))
+    ((send (enc h a-0 (privk ca-0))))
+    ((send (enc gy b-0 (privk ca-0)))))
+  (label 64)
+  (parent 60)
+  (unrealized (0 0) (0 1) (0 3) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (deflistener n)
+  (deflistener (enc "dh" h gy dhkey))
+  (defstrand CDHcalc2 2 (dhkey dhkey) (gx h) (gy gy))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 0)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gy b (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey)))) ((recv n) (send n))
+    ((recv (enc "dh" h gy dhkey)) (send (enc "dh" h gy dhkey)))
+    ((recv (cat gy (invk h))) (send (enc "dh" h gy dhkey)))
+    ((send (enc gy b (privk ca)))))
+  (label 65)
+  (parent 62)
+  (unrealized (0 1) (0 3))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (h akey) (a b ca a-0 ca-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy h) (h h) (a a) (b b)
+    (ca ca))
+  (deflistener n)
+  (defstrand init 4 (dhkey dhkey) (n n) (gx h) (h h) (a a-0) (b a-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz h) (subject a-0) (ca ca-0))
+  (deflistener (enc "dh" h h dhkey))
+  (precedes ((0 2) (2 2)) ((2 3) (1 0)) ((3 0) (2 0)) ((4 1) (1 0)))
+  (non-orig dhkey (invk h) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation nonce-test (added-listener (enc "dh" h h dhkey)) n (1 0)
+    (enc n (enc "dh" h h dhkey)) (enc "check" n (enc "dh" h h dhkey)))
+  (traces
+    ((recv (enc h b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send (cat h (enc h b (privk ca)) (enc n (enc "dh" h h dhkey))))
+      (recv (enc "check" n (enc "dh" h h dhkey)))) ((recv n) (send n))
+    ((recv (enc h a-0 (privk ca-0)))
+      (send (cat h (enc h a-0 (privk ca-0))))
+      (recv
+        (cat h (enc h a-0 (privk ca-0)) (enc n (enc "dh" h h dhkey))))
+      (send (enc "check" n (enc "dh" h h dhkey))))
+    ((send (enc h a-0 (privk ca-0))))
+    ((recv (enc "dh" h h dhkey)) (send (enc "dh" h h dhkey))))
+  (label 66)
+  (parent 63)
+  (unrealized (0 0) (0 1) (0 3) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy h akey) (a b ca a-0 b-0 ca-0 name))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h h) (a a) (b b)
+    (ca ca))
+  (deflistener n)
+  (defstrand init 4 (dhkey dhkey) (n n) (gx h) (h gy) (a a-0) (b b-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz h) (subject a-0) (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca-0))
+  (deflistener (enc "dh" h gy dhkey))
+  (precedes ((0 2) (2 2)) ((2 3) (1 0)) ((3 0) (2 0)) ((4 0) (2 2))
+    ((5 1) (1 0)))
+  (non-orig dhkey (invk gy) (invk h) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation nonce-test (added-listener (enc "dh" h gy dhkey)) n (1 0)
+    (enc n (enc "dh" h gy dhkey)) (enc "check" n (enc "dh" h gy dhkey)))
+  (traces
+    ((recv (enc gy b (privk ca))) (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey)))) ((recv n) (send n))
+    ((recv (enc h a-0 (privk ca-0)))
+      (send (cat h (enc h a-0 (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" h gy dhkey))))
+      (send (enc "check" n (enc "dh" h gy dhkey))))
+    ((send (enc h a-0 (privk ca-0)))) ((send (enc gy b-0 (privk ca-0))))
+    ((recv (enc "dh" h gy dhkey)) (send (enc "dh" h gy dhkey))))
+  (label 67)
+  (parent 64)
+  (unrealized (0 0) (0 1) (0 3) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol dhca basic
+  (defrole init
+    (vars (gx h akey) (dhkey skey) (a b ca name) (n text))
+    (trace (recv (enc gx a (privk ca)))
+      (send (cat gx (enc gx a (privk ca))))
+      (recv (cat h (enc h b (privk ca)) (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    (non-orig dhkey (privk ca)))
+  (defrole resp
+    (vars (gy h akey) (dhkey skey) (a b ca name) (n text))
+    (trace (recv (enc gy b (privk ca)))
+      (recv (cat h (enc h a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    (non-orig dhkey (privk ca)))
+  (defrole ca
+    (vars (subject ca name) (gz akey))
+    (trace (send (enc gz subject (privk ca))))
+    (non-orig (invk gz)))
+  (defrole CDHcalc1
+    (vars (gx gy akey) (dhkey skey))
+    (trace (recv (cat gx (invk gy))) (send (enc "dh" gx gy dhkey))))
+  (defrole CDHcalc2
+    (vars (gx gy akey) (dhkey skey))
+    (trace (recv (cat gy (invk gx))) (send (enc "dh" gx gy dhkey))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (non-orig dhkey (privk ca))
+  (uniq-orig n)
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey)))))
+  (label 68)
+  (unrealized (0 0) (0 2) (1 0) (1 1) (1 3))
+  (preskeleton)
+  (origs (n (1 2)))
+  (comment "Not a skeleton"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (precedes ((1 2) (0 2)))
+  (non-orig dhkey (privk ca))
+  (uniq-orig n)
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey)))))
+  (label 69)
+  (parent 68)
+  (unrealized (0 0) (1 0) (1 1) (1 3))
+  (origs (n (1 2)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (precedes ((1 2) (0 2)) ((2 0) (1 0)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gy b (privk ca))
+    (1 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))))
+  (label 70)
+  (parent 69)
+  (unrealized (0 0) (1 1) (1 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (precedes ((1 2) (0 2)) ((2 0) (1 0)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 3 2 ca 1) (enc gx a (privk ca))
+    (1 1))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))))
+  (label 71)
+  (parent 70)
+  (unrealized (0 0) (1 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (precedes ((1 2) (0 2)) ((2 0) (1 0)) ((3 0) (1 1)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gx a (privk ca))
+    (1 1))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca)))))
+  (label 72)
+  (parent 70)
+  (unrealized (0 0) (1 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (precedes ((0 3) (1 3)) ((1 2) (0 2)) ((2 0) (1 0)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 3 0 init 4)
+    (enc "check" n (enc "dh" gy gy dhkey)) (1 3))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))))
+  (label 73)
+  (parent 71)
+  (unrealized (0 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca a b-0 ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b-0)
+    (ca ca-0))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (1 0)) ((3 3) (1 3)))
+  (non-orig dhkey (invk gy) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (added-strand init 4)
+    (enc "check" n (enc "dh" gy gy dhkey)) (1 3))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy a (privk ca-0)))
+      (send (cat gy (enc gy a (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey)))))
+  (label 74)
+  (parent 71)
+  (unrealized (0 0) (3 0) (3 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (deflistener (enc "dh" gy gy dhkey))
+  (precedes ((1 2) (0 2)) ((2 0) (1 0)) ((3 1) (1 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-listener (enc "dh" gy gy dhkey))
+    (enc "check" n (enc "dh" gy gy dhkey)) (1 3))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc "dh" gy gy dhkey)) (send (enc "dh" gy gy dhkey))))
+  (label 75)
+  (parent 71)
+  (unrealized (0 0) (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (precedes ((0 3) (1 3)) ((1 2) (0 2)) ((2 0) (1 0)) ((3 0) (1 1)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 4 0 init 4)
+    (enc "check" n (enc "dh" gx gy dhkey)) (1 3))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca)))))
+  (label 76)
+  (parent 72)
+  (unrealized (0 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca a-0 b-0 ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a-0) (b b-0)
+    (ca ca-0))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((4 3) (1 3)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (added-strand init 4)
+    (enc "check" n (enc "dh" gx gy dhkey)) (1 3))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a-0 (privk ca-0)))
+      (send (cat gx (enc gx a-0 (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey)))))
+  (label 77)
+  (parent 72)
+  (unrealized (0 0) (4 0) (4 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (deflistener (enc "dh" gx gy dhkey))
+  (precedes ((1 2) (0 2)) ((2 0) (1 0)) ((3 0) (1 1)) ((4 1) (1 3)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-listener (enc "dh" gx gy dhkey))
+    (enc "check" n (enc "dh" gx gy dhkey)) (1 3))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc "dh" gx gy dhkey)) (send (enc "dh" gx gy dhkey))))
+  (label 78)
+  (parent 72)
+  (unrealized (0 0) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (precedes ((0 3) (1 3)) ((1 2) (0 2)) ((2 0) (0 0)) ((2 0) (1 0)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 3 2 ca 1) (enc gy b (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))))
+  (label 79)
+  (parent 73)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a b) (b b) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (precedes ((0 3) (1 3)) ((1 2) (0 2)) ((2 0) (1 0)) ((3 0) (0 0)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gy b (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy b (privk ca)))))
+  (label 80)
+  (parent 73)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a b) (b b) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b-0)
+    (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (1 0)) ((2 0) (3 0))
+    ((3 3) (1 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 4 2 ca 1)
+    (enc gy a (privk ca-0)) (3 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey)))))
+  (label 81)
+  (parent 74)
+  (unrealized (0 0) (3 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca a b-0 ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca-0))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (1 0)) ((3 3) (1 3))
+    ((4 0) (3 0)))
+  (non-orig dhkey (invk gy) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gy a (privk ca-0))
+    (3 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy a (privk ca-0)))
+      (send (cat gy (enc gy a (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca-0)))))
+  (label 82)
+  (parent 74)
+  (unrealized (0 0) (3 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (precedes ((0 3) (1 3)) ((1 2) (0 2)) ((2 0) (0 0)) ((2 0) (1 0))
+    ((3 0) (1 1)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 4 2 ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy b (privk ca)))))
+  (label 83)
+  (parent 76)
+  (seen 79)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (precedes ((0 3) (1 3)) ((1 2) (0 2)) ((2 0) (1 0)) ((3 0) (0 0))
+    ((3 0) (1 1)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 4 3 ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca)))))
+  (label 84)
+  (parent 76)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gx) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (precedes ((0 3) (1 3)) ((1 2) (0 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((4 0) (0 0)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((send (enc gx a (privk ca)))))
+  (label 85)
+  (parent 76)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gx) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (a b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b-0)
+    (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((2 0) (4 0))
+    ((3 0) (1 1)) ((4 3) (1 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 2 ca 1)
+    (enc gx a-0 (privk ca-0)) (4 0))
+  (traces
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy a (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey)))))
+  (label 86)
+  (parent 77)
+  (unrealized (0 0) (4 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b-0)
+    (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((3 0) (4 0)) ((4 3) (1 3)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 3 ca 1)
+    (enc gx a-0 (privk ca-0)) (4 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey)))))
+  (label 87)
+  (parent 77)
+  (unrealized (0 0) (4 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca a-0 b-0 ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a-0) (b b-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz gx) (subject a-0) (ca ca-0))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((4 3) (1 3)) ((5 0) (4 0)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1)
+    (enc gx a-0 (privk ca-0)) (4 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a-0 (privk ca-0)))
+      (send (cat gx (enc gx a-0 (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gx a-0 (privk ca-0)))))
+  (label 88)
+  (parent 77)
+  (unrealized (0 0) (4 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (1 0)) ((2 0) (3 0))
+    ((3 3) (1 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 4 2 ca 1)
+    (enc gy b-0 (privk ca)) (3 2))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey)))))
+  (label 89)
+  (parent 81)
+  (unrealized (0 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (1 0)) ((2 0) (3 0))
+    ((3 3) (1 3)) ((4 0) (3 2)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gy b-0 (privk ca))
+    (3 2))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b-0 (privk ca)))))
+  (label 90)
+  (parent 81)
+  (unrealized (0 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca a name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (1 0)) ((3 3) (1 3))
+    ((4 0) (3 0)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 2 ca 1)
+    (enc gy b-0 (privk ca-0)) (3 2))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca)))))
+  (label 91)
+  (parent 82)
+  (unrealized (0 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca a ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b a)
+    (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca-0))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (1 0)) ((3 3) (1 3))
+    ((4 0) (3 0)))
+  (non-orig dhkey (invk gy) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 4 ca 1)
+    (enc gy b-0 (privk ca-0)) (3 2))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy a (privk ca-0)))
+      (send (cat gy (enc gy a (privk ca-0))))
+      (recv
+        (cat gy (enc gy a (privk ca-0)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca-0)))))
+  (label 92)
+  (parent 82)
+  (seen 110)
+  (unrealized (0 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca a b-0 ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca-0))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (1 0)) ((3 3) (1 3))
+    ((4 0) (3 0)) ((5 0) (3 2)))
+  (non-orig dhkey (invk gy) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1)
+    (enc gy b-0 (privk ca-0)) (3 2))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy a (privk ca-0)))
+      (send (cat gy (enc gy a (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca-0)))) ((send (enc gy b-0 (privk ca-0)))))
+  (label 93)
+  (parent 82)
+  (unrealized (0 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((2 0) (4 0))
+    ((3 0) (1 1)) ((4 3) (1 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 2 ca 1)
+    (enc gy b-0 (privk ca)) (4 2))
+  (traces
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy a (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey)))))
+  (label 94)
+  (parent 86)
+  (unrealized (0 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b a)
+    (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((2 0) (4 0))
+    ((3 0) (1 1)) ((4 3) (1 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 3 ca 1)
+    (enc gy b-0 (privk ca)) (4 2))
+  (traces
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy a (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy a (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey)))))
+  (label 95)
+  (parent 86)
+  (seen 118)
+  (unrealized (0 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (a b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((2 0) (4 0))
+    ((3 0) (1 1)) ((4 3) (1 3)) ((5 0) (4 2)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gy b-0 (privk ca))
+    (4 2))
+  (traces
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy a (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b-0 (privk ca)))))
+  (label 96)
+  (parent 86)
+  (unrealized (0 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((3 0) (4 0)) ((4 3) (1 3)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 2 ca 1)
+    (enc gy b-0 (privk ca)) (4 2))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey)))))
+  (label 97)
+  (parent 87)
+  (unrealized (0 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b a)
+    (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((3 0) (4 0)) ((4 3) (1 3)))
+  (non-orig dhkey (invk gx) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 3 ca 1)
+    (enc gy b-0 (privk ca)) (4 2))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((recv (enc gx b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (recv (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey)))))
+  (label 98)
+  (parent 87)
+  (seen 127)
+  (unrealized (0 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((3 0) (4 0)) ((4 3) (1 3)) ((5 0) (4 2)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gy b-0 (privk ca))
+    (4 2))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b-0 (privk ca)))))
+  (label 99)
+  (parent 87)
+  (unrealized (0 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a b ca a-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a-0) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((4 3) (1 3)) ((5 0) (4 0)))
+  (non-orig dhkey (invk gx) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 6 3 ca 1)
+    (enc gy b-0 (privk ca-0)) (4 2))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((recv (enc gx b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (recv (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a-0 (privk ca)))
+      (send (cat gx (enc gx a-0 (privk ca))))
+      (recv
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a-0 (privk ca)))))
+  (label 100)
+  (parent 88)
+  (unrealized (0 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca a-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a-0) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((4 3) (1 3)) ((5 0) (4 0)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 6 2 ca 1)
+    (enc gy b-0 (privk ca-0)) (4 2))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a-0 (privk ca)))
+      (send (cat gx (enc gx a-0 (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gx a-0 (privk ca)))))
+  (label 101)
+  (parent 88)
+  (seen 137)
+  (unrealized (0 0))
+  (comment "4 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a b ca a-0 ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a-0) (b a-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz gx) (subject a-0) (ca ca-0))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((4 3) (1 3)) ((5 0) (4 0)))
+  (non-orig dhkey (invk gx) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (displaced 6 5 ca 1)
+    (enc gy b-0 (privk ca-0)) (4 2))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((recv (enc gx b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (recv (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a-0 (privk ca-0)))
+      (send (cat gx (enc gx a-0 (privk ca-0))))
+      (recv
+        (cat gx (enc gx a-0 (privk ca-0))
+          (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a-0 (privk ca-0)))))
+  (label 102)
+  (parent 88)
+  (seen 138)
+  (unrealized (0 0))
+  (comment "4 in cohort - 3 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca a-0 b-0 ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a-0) (b b-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz gx) (subject a-0) (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca-0))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((4 3) (1 3)) ((5 0) (4 0)) ((6 0) (4 2)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1)
+    (enc gy b-0 (privk ca-0)) (4 2))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a-0 (privk ca-0)))
+      (send (cat gx (enc gx a-0 (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gx a-0 (privk ca-0))))
+    ((send (enc gy b-0 (privk ca-0)))))
+  (label 103)
+  (parent 88)
+  (unrealized (0 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (0 0)) ((2 0) (1 0))
+    ((2 0) (3 0)) ((3 3) (1 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 4 2 ca 1) (enc gy b (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey)))))
+  (label 104)
+  (parent 89)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a b) (b b) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (1 0)) ((2 0) (3 0))
+    ((3 3) (1 3)) ((4 0) (0 0)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gy b (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))))
+  (label 105)
+  (parent 89)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a b) (b b) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (0 0)) ((2 0) (1 0))
+    ((2 0) (3 0)) ((3 3) (1 3)) ((4 0) (3 2)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 2 ca 1) (enc gy b (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b-0 (privk ca)))))
+  (label 106)
+  (parent 90)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a b) (b b) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (ca b name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (1 0)) ((2 0) (3 0))
+    ((3 3) (1 3)) ((4 0) (0 0)) ((4 0) (3 2)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 4 ca 1)
+    (enc gy b-0 (privk ca)) (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))))
+  (label 107)
+  (parent 90)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (1 0)) ((2 0) (3 0))
+    ((3 3) (1 3)) ((4 0) (3 2)) ((5 0) (0 0)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gy b (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b-0 (privk ca)))) ((send (enc gy b (privk ca)))))
+  (label 108)
+  (parent 90)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a b) (b b) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca a name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (0 0)) ((2 0) (1 0))
+    ((3 3) (1 3)) ((4 0) (3 0)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 2 ca 1) (enc gy b (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca)))))
+  (label 109)
+  (parent 91)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a b) (b b) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (ca a name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b a)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a a) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (1 0)) ((3 3) (1 3))
+    ((4 0) (0 0)) ((4 0) (3 0)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 4 ca 1) (enc gy b (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy a (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy a (privk ca))) (recv (cat gy (enc gy a (privk ca))))
+      (send
+        (cat gy (enc gy a (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca))))
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy a (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca)))))
+  (label 110)
+  (parent 91)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b a) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca a name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (1 0)) ((3 3) (1 3))
+    ((4 0) (3 0)) ((5 0) (0 0)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gy b (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca)))) ((send (enc gy b (privk ca)))))
+  (label 111)
+  (parent 91)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a b) (b b) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca a ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b a)
+    (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca-0))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (0 0)) ((2 0) (1 0))
+    ((3 3) (1 3)) ((4 0) (3 0)))
+  (non-orig dhkey (invk gy) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 2 ca 1) (enc gy b (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy a (privk ca-0)))
+      (send (cat gy (enc gy a (privk ca-0))))
+      (recv
+        (cat gy (enc gy a (privk ca-0)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca-0)))))
+  (label 112)
+  (parent 92)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a b) (b b) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca a ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b a)
+    (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (1 0)) ((3 3) (1 3))
+    ((4 0) (3 0)) ((5 0) (0 0)))
+  (non-orig dhkey (invk gy) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gy b (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy a (privk ca-0)))
+      (send (cat gy (enc gy a (privk ca-0))))
+      (recv
+        (cat gy (enc gy a (privk ca-0)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca-0)))) ((send (enc gy b (privk ca)))))
+  (label 113)
+  (parent 92)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a b) (b b) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b a)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a a) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (1 0)) ((3 3) (1 3))
+    ((4 0) (0 0)) ((4 0) (3 0)) ((5 0) (3 2)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 6 4 ca 1)
+    (enc gy b-0 (privk ca-0)) (0 0))
+  (traces
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy a (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy a (privk ca))) (recv (cat gy (enc gy a (privk ca))))
+      (send
+        (cat gy (enc gy a (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca))))
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca)))) ((send (enc gy b (privk ca)))))
+  (label 114)
+  (parent 93)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b a) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca a b-0 ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca-0))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (0 0)) ((2 0) (1 0))
+    ((3 3) (1 3)) ((4 0) (3 0)) ((5 0) (3 2)))
+  (non-orig dhkey (invk gy) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (displaced 6 2 ca 1) (enc gy b (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy a (privk ca-0)))
+      (send (cat gy (enc gy a (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca-0)))) ((send (enc gy b-0 (privk ca-0)))))
+  (label 115)
+  (parent 93)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a b) (b b) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (1 0)) ((3 3) (1 3))
+    ((4 0) (3 0)) ((5 0) (0 0)) ((5 0) (3 2)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 6 5 ca 1)
+    (enc gy b-0 (privk ca-0)) (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca)))) ((send (enc gy b (privk ca)))))
+  (label 116)
+  (parent 93)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca a b-0 ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (1 0)) ((3 3) (1 3))
+    ((4 0) (3 0)) ((5 0) (3 2)) ((6 0) (0 0)))
+  (non-orig dhkey (invk gy) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gy b (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy a (privk ca-0)))
+      (send (cat gy (enc gy a (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca-0)))) ((send (enc gy b-0 (privk ca-0))))
+    ((send (enc gy b (privk ca)))))
+  (label 117)
+  (parent 93)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a b) (b b) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (0 0)) ((2 0) (1 0))
+    ((2 0) (4 0)) ((3 0) (1 1)) ((4 3) (1 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 2 ca 1) (enc gy a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy b (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey)))))
+  (label 118)
+  (parent 94)
+  (seen 104)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((2 0) (4 0))
+    ((3 0) (0 0)) ((3 0) (1 1)) ((4 3) (1 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 3 ca 1) (enc gy a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy a (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey)))))
+  (label 119)
+  (parent 94)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((2 0) (4 0))
+    ((3 0) (1 1)) ((4 3) (1 3)) ((5 0) (0 0)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gy a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy a (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca)))))
+  (label 120)
+  (parent 94)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b a)
+    (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((2 0) (4 0))
+    ((3 0) (0 0)) ((3 0) (1 1)) ((4 3) (1 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 3 ca 1) (enc gy a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy a (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy a (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey)))))
+  (label 121)
+  (parent 95)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((2 0) (4 0))
+    ((3 0) (1 1)) ((4 3) (1 3)) ((5 0) (0 0)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gy a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy a (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy a (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca)))))
+  (label 122)
+  (parent 95)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (a b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((2 0) (4 0))
+    ((3 0) (0 0)) ((3 0) (1 1)) ((4 3) (1 3)) ((5 0) (4 2)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 6 3 ca 1) (enc gy a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy a (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b-0 (privk ca)))))
+  (label 123)
+  (parent 96)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (0 0)) ((2 0) (1 0))
+    ((2 0) (4 0)) ((3 0) (1 1)) ((4 3) (1 3)) ((5 0) (4 2)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 6 2 ca 1) (enc gy a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy b (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b-0 (privk ca)))))
+  (label 124)
+  (parent 96)
+  (seen 106)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b-0) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b-0) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((2 0) (4 0))
+    ((3 0) (1 1)) ((4 3) (1 3)) ((5 0) (0 0)) ((5 0) (4 2)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 6 5 ca 1) (enc gy a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b-0 (privk ca)))
+      (send (cat gy (enc gy b-0 (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca)))
+      (recv (cat gy (enc gy b-0 (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy b-0 (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b-0 (privk ca)))))
+  (label 125)
+  (parent 96)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (a b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((2 0) (4 0))
+    ((3 0) (1 1)) ((4 3) (1 3)) ((5 0) (4 2)) ((6 0) (0 0)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gy a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy a (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b-0 (privk ca)))) ((send (enc gy a (privk ca)))))
+  (label 126)
+  (parent 96)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (0 0)) ((2 0) (1 0))
+    ((3 0) (1 1)) ((3 0) (4 0)) ((4 3) (1 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 2 ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy b (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey)))))
+  (label 127)
+  (parent 97)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (0 0))
+    ((3 0) (1 1)) ((3 0) (4 0)) ((4 3) (1 3)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 3 ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey)))))
+  (label 128)
+  (parent 97)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gx) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((3 0) (4 0)) ((4 3) (1 3)) ((5 0) (0 0)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gx a (privk ca)))))
+  (label 129)
+  (parent 97)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gx) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b a)
+    (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (0 0))
+    ((3 0) (1 1)) ((3 0) (4 0)) ((4 3) (1 3)))
+  (non-orig dhkey (invk gx) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 5 3 ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((recv (enc gx b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (recv (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey)))))
+  (label 130)
+  (parent 98)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gx) (gy gx) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((3 0) (4 0)) ((4 3) (1 3)) ((5 0) (0 0)))
+  (non-orig dhkey (invk gx) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((recv (enc gx b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (recv (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a (privk ca)))))
+  (label 131)
+  (parent 98)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gx) (gy gx) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (0 0))
+    ((3 0) (1 1)) ((3 0) (4 0)) ((4 3) (1 3)) ((5 0) (4 2)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 6 3 ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b-0 (privk ca)))))
+  (label 132)
+  (parent 99)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gx) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (0 0)) ((2 0) (1 0))
+    ((3 0) (1 1)) ((3 0) (4 0)) ((4 3) (1 3)) ((5 0) (4 2)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 6 2 ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy b (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b-0 (privk ca)))))
+  (label 133)
+  (parent 99)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b-0) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b-0) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b-0) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((3 0) (4 0)) ((4 3) (1 3)) ((5 0) (0 0)) ((5 0) (4 2)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 6 5 ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gy b-0 (privk ca)))
+      (send (cat gy (enc gy b-0 (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca)))
+      (recv (cat gy (enc gy b-0 (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy b-0 (privk ca))))
+    ((recv (enc gy b-0 (privk ca)))
+      (send (cat gy (enc gy b-0 (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b-0 (privk ca)))))
+  (label 134)
+  (parent 99)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((3 0) (4 0)) ((4 3) (1 3)) ((5 0) (4 2)) ((6 0) (0 0)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b-0 (privk ca)))) ((send (enc gx a (privk ca)))))
+  (label 135)
+  (parent 99)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gx) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a b ca a-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a-0) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (0 0))
+    ((3 0) (1 1)) ((4 3) (1 3)) ((5 0) (4 0)))
+  (non-orig dhkey (invk gx) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 6 3 ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((recv (enc gx b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (recv (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a-0 (privk ca)))
+      (send (cat gx (enc gx a-0 (privk ca))))
+      (recv
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a-0 (privk ca)))))
+  (label 136)
+  (parent 100)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gx) (gy gx) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (b ca a name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gx) (h gx) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (0 0)) ((2 0) (1 0))
+    ((3 0) (1 1)) ((4 3) (1 3)) ((5 0) (4 0)))
+  (non-orig dhkey (invk gx) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 6 2 ca 1)
+    (enc gx a-0 (privk ca)) (0 0))
+  (traces
+    ((recv (enc gx b (privk ca))) (send (cat gx (enc gx b (privk ca))))
+      (recv
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((recv (enc gx b (privk ca))) (recv (cat gx (enc gx b (privk ca))))
+      (send
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (recv (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx b (privk ca)))) ((send (enc gx b (privk ca))))
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a (privk ca)))))
+  (label 137)
+  (parent 100)
+  (seen 109)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (b ca a name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((4 3) (1 3)) ((5 0) (0 0)) ((5 0) (4 0)))
+  (non-orig dhkey (invk gx) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 6 5 ca 1)
+    (enc gx a-0 (privk ca)) (0 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((recv (enc gx b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (recv (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a (privk ca)))))
+  (label 138)
+  (parent 100)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gx) (gy gx) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a b ca a-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a-0) (b a)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a-0) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((4 3) (1 3)) ((5 0) (4 0)) ((6 0) (0 0)))
+  (non-orig dhkey (invk gx) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((recv (enc gx b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (recv (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a-0 (privk ca)))
+      (send (cat gx (enc gx a-0 (privk ca))))
+      (recv
+        (cat gx (enc gx a (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a-0 (privk ca)))) ((send (enc gx a (privk ca)))))
+  (label 139)
+  (parent 100)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gx) (gy gx) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca a-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a-0) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (0 0))
+    ((3 0) (1 1)) ((4 3) (1 3)) ((5 0) (4 0)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 6 3 ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a-0 (privk ca)))
+      (send (cat gx (enc gx a-0 (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gx a-0 (privk ca)))))
+  (label 140)
+  (parent 101)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gx) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (b ca a name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((4 3) (1 3)) ((5 0) (0 0)) ((5 0) (4 0)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 6 5 ca 1)
+    (enc gx a-0 (privk ca)) (0 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gx a (privk ca)))))
+  (label 141)
+  (parent 101)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gx) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca a-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a-0) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a-0) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((4 3) (1 3)) ((5 0) (4 0)) ((6 0) (0 0)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a-0 (privk ca)))
+      (send (cat gx (enc gx a-0 (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gx a-0 (privk ca)))) ((send (enc gx a (privk ca)))))
+  (label 142)
+  (parent 101)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gx) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a b ca a-0 ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a-0) (b a-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz gx) (subject a-0) (ca ca-0))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (0 0))
+    ((3 0) (1 1)) ((4 3) (1 3)) ((5 0) (4 0)))
+  (non-orig dhkey (invk gx) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (displaced 6 3 ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((recv (enc gx b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (recv (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a-0 (privk ca-0)))
+      (send (cat gx (enc gx a-0 (privk ca-0))))
+      (recv
+        (cat gx (enc gx a-0 (privk ca-0))
+          (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a-0 (privk ca-0)))))
+  (label 143)
+  (parent 102)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gx) (gy gx) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (b ca a ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gx) (h gx) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b a)
+    (ca ca-0))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca-0))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (0 0)) ((2 0) (1 0))
+    ((3 0) (1 1)) ((4 3) (1 3)) ((5 0) (4 0)))
+  (non-orig dhkey (invk gx) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (displaced 6 2 ca 1)
+    (enc gx a-0 (privk ca)) (0 0))
+  (traces
+    ((recv (enc gx b (privk ca))) (send (cat gx (enc gx b (privk ca))))
+      (recv
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((recv (enc gx b (privk ca))) (recv (cat gx (enc gx b (privk ca))))
+      (send
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (recv (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx b (privk ca)))) ((send (enc gx b (privk ca))))
+    ((recv (enc gx a (privk ca-0)))
+      (send (cat gx (enc gx a (privk ca-0))))
+      (recv
+        (cat gx (enc gx a (privk ca-0)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a (privk ca-0)))))
+  (label 144)
+  (parent 102)
+  (seen 112)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx akey) (a b ca a-0 ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gx) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gx) (a a-0) (b a-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz gx) (subject a-0) (ca ca-0))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((4 3) (1 3)) ((5 0) (4 0)) ((6 0) (0 0)))
+  (non-orig dhkey (invk gx) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((recv (enc gx b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gx (enc gx b (privk ca)) (enc n (enc "dh" gx gx dhkey))))
+      (recv (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a-0 (privk ca-0)))
+      (send (cat gx (enc gx a-0 (privk ca-0))))
+      (recv
+        (cat gx (enc gx a-0 (privk ca-0))
+          (enc n (enc "dh" gx gx dhkey))))
+      (send (enc "check" n (enc "dh" gx gx dhkey))))
+    ((send (enc gx a-0 (privk ca-0)))) ((send (enc gx a (privk ca)))))
+  (label 145)
+  (parent 102)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gx) (gy gx) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca a-0 b-0 ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a-0) (b b-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz gx) (subject a-0) (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca-0))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (0 0))
+    ((3 0) (1 1)) ((4 3) (1 3)) ((5 0) (4 0)) ((6 0) (4 2)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (displaced 7 3 ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a-0 (privk ca-0)))
+      (send (cat gx (enc gx a-0 (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gx a-0 (privk ca-0))))
+    ((send (enc gy b-0 (privk ca-0)))))
+  (label 146)
+  (parent 103)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gx) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca a b-0 ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca-0))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (0 0)) ((2 0) (1 0))
+    ((3 0) (1 1)) ((4 3) (1 3)) ((5 0) (4 0)) ((6 0) (4 2)))
+  (non-orig dhkey (invk gy) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (displaced 7 2 ca 1)
+    (enc gx a-0 (privk ca)) (0 0))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy b (privk ca))))
+    ((recv (enc gy a (privk ca-0)))
+      (send (cat gy (enc gy a (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca-0)))) ((send (enc gy b-0 (privk ca-0)))))
+  (label 147)
+  (parent 103)
+  (seen 115)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (b a b-0 ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((4 3) (1 3)) ((5 0) (0 0)) ((5 0) (4 0)) ((6 0) (4 2)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 7 5 ca 1)
+    (enc gx a-0 (privk ca-0)) (0 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gx a (privk ca)))) ((send (enc gy b-0 (privk ca)))))
+  (label 148)
+  (parent 103)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gx) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b a b-0 ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b-0) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b-0) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((4 3) (1 3)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 0) (4 2)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation encryption-test (displaced 7 6 ca 1)
+    (enc gx a-0 (privk ca-0)) (0 0))
+  (traces
+    ((recv (enc gy b-0 (privk ca)))
+      (send (cat gy (enc gy b-0 (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca)))
+      (recv (cat gy (enc gy b-0 (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy b-0 (privk ca))))
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca)))) ((send (enc gy b-0 (privk ca)))))
+  (label 149)
+  (parent 103)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gx gy akey) (a b ca a-0 b-0 ca-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gx) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gx) (h gy) (a a-0) (b b-0)
+    (ca ca-0))
+  (defstrand ca 1 (gz gx) (subject a-0) (ca ca-0))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca-0))
+  (defstrand ca 1 (gz gx) (subject a) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((4 3) (1 3)) ((5 0) (4 0)) ((6 0) (4 2)) ((7 0) (0 0)))
+  (non-orig dhkey (invk gx) (invk gy) (privk ca) (privk ca-0))
+  (uniq-orig n)
+  (operation encryption-test (added-strand ca 1) (enc gx a (privk ca))
+    (0 0))
+  (traces
+    ((recv (enc gx a (privk ca))) (send (cat gx (enc gx a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gx (enc gx a (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gx a (privk ca))))
+    ((recv (enc gx a-0 (privk ca-0)))
+      (send (cat gx (enc gx a-0 (privk ca-0))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca-0))
+          (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send (enc gx a-0 (privk ca-0))))
+    ((send (enc gy b-0 (privk ca-0)))) ((send (enc gx a (privk ca)))))
+  (label 150)
+  (parent 103)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a a) (b b) (ca ca) (gx gx) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (ca b name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (1 0)) ((2 0) (3 0))
+    ((3 3) (1 3)) ((4 0) (0 0)) ((4 0) (1 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation generalization weakened ((4 0) (3 2)))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))))
+  (label 151)
+  (parent 107)
+  (seen 105)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (a b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (3 2)) ((2 0) (1 0)) ((3 3) (1 3))
+    ((4 0) (3 0)) ((5 0) (0 0)) ((5 0) (1 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation generalization weakened ((5 0) (3 2)))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca))))
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca)))) ((send (enc gy b (privk ca)))))
+  (label 152)
+  (parent 116)
+  (seen 111)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b-0) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b-0) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((2 0) (4 0))
+    ((3 0) (1 1)) ((4 3) (1 3)) ((5 0) (0 0)) ((5 0) (1 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation generalization weakened ((5 0) (4 2)))
+  (traces
+    ((recv (enc gy b-0 (privk ca)))
+      (send (cat gy (enc gy b-0 (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca)))
+      (recv (cat gy (enc gy b-0 (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy b-0 (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b-0 (privk ca)))))
+  (label 153)
+  (parent 125)
+  (seen 122)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (0 0)) ((2 0) (1 0))
+    ((3 0) (0 2)) ((3 0) (4 0)) ((4 3) (1 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation generalization weakened ((3 0) (1 1)))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy b (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey)))))
+  (label 154)
+  (parent 127)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (0 0)) ((2 0) (1 0))
+    ((3 0) (0 2)) ((3 0) (4 0)) ((4 3) (1 3)) ((5 0) (4 2)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation generalization weakened ((3 0) (1 1)))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy b (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b-0 (privk ca)))))
+  (label 155)
+  (parent 133)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b-0) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b-0) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b-0) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((3 0) (4 0)) ((4 3) (1 3)) ((5 0) (0 0)) ((5 0) (1 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation generalization weakened ((5 0) (4 2)))
+  (traces
+    ((recv (enc gy b-0 (privk ca)))
+      (send (cat gy (enc gy b-0 (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca)))
+      (recv (cat gy (enc gy b-0 (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy b-0 (privk ca))))
+    ((recv (enc gy b-0 (privk ca)))
+      (send (cat gy (enc gy b-0 (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b-0 (privk ca)))))
+  (label 156)
+  (parent 134)
+  (seen 131)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b a b-0 ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b-0) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b-0) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a a) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject a) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (1 0)) ((3 0) (1 1))
+    ((4 3) (1 3)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 0) (1 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation generalization weakened ((6 0) (4 2)))
+  (traces
+    ((recv (enc gy b-0 (privk ca)))
+      (send (cat gy (enc gy b-0 (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca)))
+      (recv (cat gy (enc gy b-0 (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy b-0 (privk ca))))
+    ((recv (enc gy a (privk ca))) (send (cat gy (enc gy a (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy a (privk ca)))) ((send (enc gy b-0 (privk ca)))))
+  (label 157)
+  (parent 149)
+  (seen 139)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (0 0)) ((2 0) (1 0))
+    ((3 0) (4 0)) ((4 3) (1 3)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation generalization weakened ((3 0) (0 2)))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy b (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey)))))
+  (label 158)
+  (parent 154)
+  (seen 109)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton dhca
+  (vars (dhkey skey) (n text) (gy akey) (b ca b-0 name))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand resp 4 (dhkey dhkey) (n n) (gy gy) (h gy) (a b) (b b)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand ca 1 (gz gy) (subject b) (ca ca))
+  (defstrand init 4 (dhkey dhkey) (n n) (gx gy) (h gy) (a b) (b b-0)
+    (ca ca))
+  (defstrand ca 1 (gz gy) (subject b-0) (ca ca))
+  (precedes ((1 2) (0 2)) ((1 2) (4 2)) ((2 0) (0 0)) ((2 0) (1 0))
+    ((3 0) (4 0)) ((4 3) (1 3)) ((5 0) (4 2)))
+  (non-orig dhkey (invk gy) (privk ca))
+  (uniq-orig n)
+  (operation generalization weakened ((3 0) (0 2)))
+  (traces
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((recv (enc gy b (privk ca))) (recv (cat gy (enc gy b (privk ca))))
+      (send
+        (cat gy (enc gy b (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (recv (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b (privk ca)))) ((send (enc gy b (privk ca))))
+    ((recv (enc gy b (privk ca))) (send (cat gy (enc gy b (privk ca))))
+      (recv
+        (cat gy (enc gy b-0 (privk ca)) (enc n (enc "dh" gy gy dhkey))))
+      (send (enc "check" n (enc "dh" gy gy dhkey))))
+    ((send (enc gy b-0 (privk ca)))))
+  (label 159)
+  (parent 155)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((a b) (b b) (ca ca) (gx gy) (gy gy) (n n) (dhkey dhkey))))
+  (origs (n (1 2))))
+
+(comment "Nothing left to do")
diff --git a/tst/dh_encrypt_hack.scm b/tst/dh_encrypt_hack.scm
new file mode 100644
--- /dev/null
+++ b/tst/dh_encrypt_hack.scm
@@ -0,0 +1,53 @@
+(herald dhencrypt (algebra basic))
+
+(defmacro (CDH gx gy dhkey) (enc "dh" gx gy dhkey))
+
+(defprotocol dhencrypt basic
+  (defrole init (vars (gx h akey) (dhkey skey) (n text))
+    (trace
+     (send gx)
+     (recv (cat h (enc n (CDH gx h dhkey))))
+     (send (enc "check" n (CDH gx h dhkey)))
+    )
+    (non-orig (invk gx) dhkey)
+  )
+  (defrole resp (vars (h gy akey) (dhkey skey) (n text))
+    (trace
+     (recv h)
+     (send (cat gy (enc n (CDH h gy dhkey))))
+     (recv (enc "check" n (CDH h gy dhkey)))
+    )
+    (non-orig (invk gy) dhkey)
+    (uniq-orig gy n)
+  )
+  (defrole CDHcalc1 (vars (gx gy akey) (dhkey skey))
+   (trace
+    (recv (cat gx (invk gy)))
+    (send (CDH gx gy dhkey))
+  ))
+  (defrole CDHcalc2 (vars (gx gy akey) (dhkey skey))
+   (trace
+    (recv (cat gy (invk gx)))
+    (send (CDH gx gy dhkey))
+  ))
+  (comment "Diffie-hellman key exchange followed by an encrypted-nonce challenge/response")
+)
+
+(defskeleton dhencrypt
+   (vars (gx h akey) (dhkey skey) (n text))
+   (defstrand init 3 (gx gx) (h h) (dhkey dhkey) (n n))
+   (comment "Initiator full point of view")
+)
+
+(defskeleton dhencrypt
+   (vars (gy h akey) (dhkey skey) (n text))
+   (defstrand resp 3 (gy gy) (h h) (dhkey dhkey) (n n))
+   (comment "Responder full point of view")
+)
+
+(defskeleton dhencrypt
+   (vars (gx gy akey) (n text))
+   (defstrand init 2 (gx gx) (h gy) (n n))
+   (defstrand resp 3 (h gx) (gy gy) (n n))
+   (comment "Point of view where the natural result should be the only shape")
+)
diff --git a/tst/dh_encrypt_hack.tst b/tst/dh_encrypt_hack.tst
new file mode 100644
--- /dev/null
+++ b/tst/dh_encrypt_hack.tst
@@ -0,0 +1,409 @@
+(herald dhencrypt (algebra basic))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/dh_encrypt_hack.scm")
+
+(defprotocol dhencrypt basic
+  (defrole init
+    (vars (gx h akey) (dhkey skey) (n text))
+    (trace (send gx) (recv (cat h (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    (non-orig dhkey (invk gx)))
+  (defrole resp
+    (vars (h gy akey) (dhkey skey) (n text))
+    (trace (recv h) (send (cat gy (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    (non-orig dhkey (invk gy))
+    (uniq-orig n gy))
+  (defrole CDHcalc1
+    (vars (gx gy akey) (dhkey skey))
+    (trace (recv (cat gx (invk gy))) (send (enc "dh" gx gy dhkey))))
+  (defrole CDHcalc2
+    (vars (gx gy akey) (dhkey skey))
+    (trace (recv (cat gy (invk gx))) (send (enc "dh" gx gy dhkey))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment
+    "Diffie-hellman key exchange followed by an encrypted-nonce challenge/response"))
+
+(defskeleton dhencrypt
+  (vars (dhkey skey) (n text) (gx h akey))
+  (defstrand init 3 (dhkey dhkey) (n n) (gx gx) (h h))
+  (non-orig dhkey (invk gx))
+  (comment "Initiator full point of view")
+  (traces
+    ((send gx) (recv (cat h (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey)))))
+  (label 0)
+  (unrealized (0 1))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhencrypt
+  (vars (dhkey skey) (n text) (gx h akey))
+  (defstrand init 3 (dhkey dhkey) (n n) (gx gx) (h h))
+  (defstrand resp 2 (dhkey dhkey) (n n) (h gx) (gy h))
+  (precedes ((1 1) (0 1)))
+  (non-orig dhkey (invk gx) (invk h))
+  (uniq-orig n h)
+  (operation encryption-test (added-strand resp 2)
+    (enc n (enc "dh" gx h dhkey)) (0 1))
+  (traces
+    ((send gx) (recv (cat h (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    ((recv gx) (send (cat h (enc n (enc "dh" gx h dhkey))))))
+  (label 1)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps ((0) ((gx gx) (h h) (dhkey dhkey) (n n))))
+  (origs (h (1 1)) (n (1 1))))
+
+(defskeleton dhencrypt
+  (vars (dhkey skey) (n text) (gx h akey))
+  (defstrand init 3 (dhkey dhkey) (n n) (gx gx) (h h))
+  (deflistener (enc "dh" gx h dhkey))
+  (precedes ((1 1) (0 1)))
+  (non-orig dhkey (invk gx))
+  (operation encryption-test (added-listener (enc "dh" gx h dhkey))
+    (enc n (enc "dh" gx h dhkey)) (0 1))
+  (traces
+    ((send gx) (recv (cat h (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    ((recv (enc "dh" gx h dhkey)) (send (enc "dh" gx h dhkey))))
+  (label 2)
+  (parent 0)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhencrypt
+  (vars (dhkey skey) (n text) (gx h akey))
+  (defstrand init 3 (dhkey dhkey) (n n) (gx gx) (h h))
+  (deflistener (enc "dh" gx h dhkey))
+  (defstrand CDHcalc1 2 (dhkey dhkey) (gx gx) (gy h))
+  (precedes ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig dhkey (invk gx))
+  (operation encryption-test (added-strand CDHcalc1 2)
+    (enc "dh" gx h dhkey) (1 0))
+  (traces
+    ((send gx) (recv (cat h (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    ((recv (enc "dh" gx h dhkey)) (send (enc "dh" gx h dhkey)))
+    ((recv (cat gx (invk h))) (send (enc "dh" gx h dhkey))))
+  (label 3)
+  (parent 2)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhencrypt
+  (vars (dhkey skey) (n text) (gx h akey))
+  (defstrand init 3 (dhkey dhkey) (n n) (gx gx) (h h))
+  (defstrand CDHcalc1 2 (dhkey dhkey) (gx gx) (gy h))
+  (precedes ((1 1) (0 1)))
+  (non-orig dhkey (invk gx))
+  (operation generalization deleted (1 0))
+  (traces
+    ((send gx) (recv (cat h (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    ((recv (cat gx (invk h))) (send (enc "dh" gx h dhkey))))
+  (label 4)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((gx gx) (h h) (dhkey dhkey) (n n))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol dhencrypt basic
+  (defrole init
+    (vars (gx h akey) (dhkey skey) (n text))
+    (trace (send gx) (recv (cat h (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    (non-orig dhkey (invk gx)))
+  (defrole resp
+    (vars (h gy akey) (dhkey skey) (n text))
+    (trace (recv h) (send (cat gy (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    (non-orig dhkey (invk gy))
+    (uniq-orig n gy))
+  (defrole CDHcalc1
+    (vars (gx gy akey) (dhkey skey))
+    (trace (recv (cat gx (invk gy))) (send (enc "dh" gx gy dhkey))))
+  (defrole CDHcalc2
+    (vars (gx gy akey) (dhkey skey))
+    (trace (recv (cat gy (invk gx))) (send (enc "dh" gx gy dhkey))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment
+    "Diffie-hellman key exchange followed by an encrypted-nonce challenge/response"))
+
+(defskeleton dhencrypt
+  (vars (dhkey skey) (n text) (gy h akey))
+  (defstrand resp 3 (dhkey dhkey) (n n) (h h) (gy gy))
+  (non-orig dhkey (invk gy))
+  (uniq-orig n gy)
+  (comment "Responder full point of view")
+  (traces
+    ((recv h) (send (cat gy (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey)))))
+  (label 5)
+  (unrealized (0 2))
+  (origs (n (0 1)) (gy (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhencrypt
+  (vars (dhkey skey) (n text) (gy h akey))
+  (defstrand resp 3 (dhkey dhkey) (n n) (h h) (gy gy))
+  (defstrand init 3 (dhkey dhkey) (n n) (gx h) (h gy))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig dhkey (invk gy) (invk h))
+  (uniq-orig n gy)
+  (operation encryption-test (added-strand init 3)
+    (enc "check" n (enc "dh" h gy dhkey)) (0 2))
+  (traces
+    ((recv h) (send (cat gy (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    ((send h) (recv (cat gy (enc n (enc "dh" h gy dhkey))))
+      (send (enc "check" n (enc "dh" h gy dhkey)))))
+  (label 6)
+  (parent 5)
+  (realized)
+  (shape)
+  (maps ((0) ((gy gy) (h h) (dhkey dhkey) (n n))))
+  (origs (n (0 1)) (gy (0 1))))
+
+(defskeleton dhencrypt
+  (vars (dhkey skey) (n text) (gy h akey))
+  (defstrand resp 3 (dhkey dhkey) (n n) (h h) (gy gy))
+  (deflistener (enc "dh" h gy dhkey))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig dhkey (invk gy))
+  (uniq-orig n gy)
+  (operation encryption-test (added-listener (enc "dh" h gy dhkey))
+    (enc "check" n (enc "dh" h gy dhkey)) (0 2))
+  (traces
+    ((recv h) (send (cat gy (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    ((recv (enc "dh" h gy dhkey)) (send (enc "dh" h gy dhkey))))
+  (label 7)
+  (parent 5)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhencrypt
+  (vars (dhkey skey) (n text) (gy h akey))
+  (defstrand resp 3 (dhkey dhkey) (n n) (h h) (gy gy))
+  (deflistener (enc "dh" h gy dhkey))
+  (defstrand CDHcalc2 2 (dhkey dhkey) (gx h) (gy gy))
+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))
+  (non-orig dhkey (invk gy))
+  (uniq-orig n gy)
+  (operation encryption-test (added-strand CDHcalc2 2)
+    (enc "dh" h gy dhkey) (1 0))
+  (traces
+    ((recv h) (send (cat gy (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    ((recv (enc "dh" h gy dhkey)) (send (enc "dh" h gy dhkey)))
+    ((recv (cat gy (invk h))) (send (enc "dh" h gy dhkey))))
+  (label 8)
+  (parent 7)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhencrypt
+  (vars (dhkey skey) (n text) (gy h akey))
+  (defstrand resp 3 (dhkey dhkey) (n n) (h h) (gy gy))
+  (defstrand CDHcalc2 2 (dhkey dhkey) (gx h) (gy gy))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig dhkey (invk gy))
+  (uniq-orig n gy)
+  (operation generalization deleted (1 0))
+  (traces
+    ((recv h) (send (cat gy (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    ((recv (cat gy (invk h))) (send (enc "dh" h gy dhkey))))
+  (label 9)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps ((0) ((gy gy) (h h) (dhkey dhkey) (n n))))
+  (origs (n (0 1)) (gy (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol dhencrypt basic
+  (defrole init
+    (vars (gx h akey) (dhkey skey) (n text))
+    (trace (send gx) (recv (cat h (enc n (enc "dh" gx h dhkey))))
+      (send (enc "check" n (enc "dh" gx h dhkey))))
+    (non-orig dhkey (invk gx)))
+  (defrole resp
+    (vars (h gy akey) (dhkey skey) (n text))
+    (trace (recv h) (send (cat gy (enc n (enc "dh" h gy dhkey))))
+      (recv (enc "check" n (enc "dh" h gy dhkey))))
+    (non-orig dhkey (invk gy))
+    (uniq-orig n gy))
+  (defrole CDHcalc1
+    (vars (gx gy akey) (dhkey skey))
+    (trace (recv (cat gx (invk gy))) (send (enc "dh" gx gy dhkey))))
+  (defrole CDHcalc2
+    (vars (gx gy akey) (dhkey skey))
+    (trace (recv (cat gy (invk gx))) (send (enc "dh" gx gy dhkey))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment
+    "Diffie-hellman key exchange followed by an encrypted-nonce challenge/response"))
+
+(defskeleton dhencrypt
+  (vars (dhkey dhkey-0 skey) (n text) (gx gy akey))
+  (defstrand init 2 (dhkey dhkey) (n n) (gx gx) (h gy))
+  (defstrand resp 3 (dhkey dhkey-0) (n n) (h gx) (gy gy))
+  (non-orig dhkey dhkey-0 (invk gx) (invk gy))
+  (uniq-orig n gy)
+  (comment
+    "Point of view where the natural result should be the only shape")
+  (traces ((send gx) (recv (cat gy (enc n (enc "dh" gx gy dhkey)))))
+    ((recv gx) (send (cat gy (enc n (enc "dh" gx gy dhkey-0))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey-0)))))
+  (label 10)
+  (unrealized (0 1) (1 2))
+  (preskeleton)
+  (origs (n (1 1)) (gy (1 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton dhencrypt
+  (vars (dhkey dhkey-0 skey) (n text) (gx gy akey))
+  (defstrand init 2 (dhkey dhkey) (n n) (gx gx) (h gy))
+  (defstrand resp 3 (dhkey dhkey-0) (n n) (h gx) (gy gy))
+  (precedes ((1 1) (0 1)))
+  (non-orig dhkey dhkey-0 (invk gx) (invk gy))
+  (uniq-orig n gy)
+  (traces ((send gx) (recv (cat gy (enc n (enc "dh" gx gy dhkey)))))
+    ((recv gx) (send (cat gy (enc n (enc "dh" gx gy dhkey-0))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey-0)))))
+  (label 11)
+  (parent 10)
+  (unrealized (0 1) (1 2))
+  (origs (n (1 1)) (gy (1 1)))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhencrypt
+  (vars (dhkey skey) (n text) (gx gy akey))
+  (defstrand resp 3 (dhkey dhkey) (n n) (h gx) (gy gy))
+  (defstrand init 3 (dhkey dhkey) (n n) (gx gx) (h gy))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig dhkey (invk gx) (invk gy))
+  (uniq-orig n gy)
+  (operation encryption-test (displaced 0 2 init 3)
+    (enc "check" n (enc "dh" gx gy dhkey)) (1 2))
+  (traces
+    ((recv gx) (send (cat gy (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send gx) (recv (cat gy (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey)))))
+  (label 12)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((1 0) ((gx gx) (gy gy) (n n) (dhkey dhkey) (dhkey-0 dhkey))))
+  (origs (n (0 1)) (gy (0 1))))
+
+(defskeleton dhencrypt
+  (vars (dhkey dhkey-0 skey) (n text) (gx gy akey))
+  (defstrand init 2 (dhkey dhkey) (n n) (gx gx) (h gy))
+  (defstrand resp 3 (dhkey dhkey-0) (n n) (h gx) (gy gy))
+  (defstrand init 3 (dhkey dhkey-0) (n n) (gx gx) (h gy))
+  (precedes ((1 1) (0 1)) ((1 1) (2 1)) ((2 2) (1 2)))
+  (non-orig dhkey dhkey-0 (invk gx) (invk gy))
+  (uniq-orig n gy)
+  (operation encryption-test (added-strand init 3)
+    (enc "check" n (enc "dh" gx gy dhkey-0)) (1 2))
+  (traces ((send gx) (recv (cat gy (enc n (enc "dh" gx gy dhkey)))))
+    ((recv gx) (send (cat gy (enc n (enc "dh" gx gy dhkey-0))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey-0))))
+    ((send gx) (recv (cat gy (enc n (enc "dh" gx gy dhkey-0))))
+      (send (enc "check" n (enc "dh" gx gy dhkey-0)))))
+  (label 13)
+  (parent 11)
+  (unrealized (0 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhencrypt
+  (vars (dhkey dhkey-0 skey) (n text) (gx gy akey))
+  (defstrand init 2 (dhkey dhkey) (n n) (gx gx) (h gy))
+  (defstrand resp 3 (dhkey dhkey-0) (n n) (h gx) (gy gy))
+  (deflistener (enc "dh" gx gy dhkey-0))
+  (precedes ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (1 2)))
+  (non-orig dhkey dhkey-0 (invk gx) (invk gy))
+  (uniq-orig n gy)
+  (operation encryption-test (added-listener (enc "dh" gx gy dhkey-0))
+    (enc "check" n (enc "dh" gx gy dhkey-0)) (1 2))
+  (traces ((send gx) (recv (cat gy (enc n (enc "dh" gx gy dhkey)))))
+    ((recv gx) (send (cat gy (enc n (enc "dh" gx gy dhkey-0))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey-0))))
+    ((recv (enc "dh" gx gy dhkey-0)) (send (enc "dh" gx gy dhkey-0))))
+  (label 14)
+  (parent 11)
+  (unrealized (0 1) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhencrypt
+  (vars (dhkey skey) (n text) (gx gy akey))
+  (defstrand init 2 (dhkey dhkey) (n n) (gx gx) (h gy))
+  (defstrand resp 3 (dhkey dhkey) (n n) (h gx) (gy gy))
+  (defstrand init 3 (dhkey dhkey) (n n) (gx gx) (h gy))
+  (precedes ((1 1) (0 1)) ((1 1) (2 1)) ((2 2) (1 2)))
+  (non-orig dhkey (invk gx) (invk gy))
+  (uniq-orig n gy)
+  (operation encryption-test (displaced 3 1 resp 2)
+    (enc n (enc "dh" gx gy dhkey-0)) (0 1))
+  (traces ((send gx) (recv (cat gy (enc n (enc "dh" gx gy dhkey)))))
+    ((recv gx) (send (cat gy (enc n (enc "dh" gx gy dhkey))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey))))
+    ((send gx) (recv (cat gy (enc n (enc "dh" gx gy dhkey))))
+      (send (enc "check" n (enc "dh" gx gy dhkey)))))
+  (label 15)
+  (parent 13)
+  (realized)
+  (shape)
+  (maps ((0 1) ((gx gx) (gy gy) (n n) (dhkey dhkey) (dhkey-0 dhkey))))
+  (origs (gy (1 1)) (n (1 1))))
+
+(defskeleton dhencrypt
+  (vars (dhkey dhkey-0 skey) (n text) (gx gy akey))
+  (defstrand init 2 (dhkey dhkey) (n n) (gx gx) (h gy))
+  (defstrand resp 3 (dhkey dhkey-0) (n n) (h gx) (gy gy))
+  (defstrand init 3 (dhkey dhkey-0) (n n) (gx gx) (h gy))
+  (deflistener (enc "dh" gx gy dhkey))
+  (precedes ((1 1) (2 1)) ((1 1) (3 0)) ((2 2) (1 2)) ((3 1) (0 1)))
+  (non-orig dhkey dhkey-0 (invk gx) (invk gy))
+  (uniq-orig n gy)
+  (operation encryption-test (added-listener (enc "dh" gx gy dhkey))
+    (enc n (enc "dh" gx gy dhkey)) (0 1))
+  (traces ((send gx) (recv (cat gy (enc n (enc "dh" gx gy dhkey)))))
+    ((recv gx) (send (cat gy (enc n (enc "dh" gx gy dhkey-0))))
+      (recv (enc "check" n (enc "dh" gx gy dhkey-0))))
+    ((send gx) (recv (cat gy (enc n (enc "dh" gx gy dhkey-0))))
+      (send (enc "check" n (enc "dh" gx gy dhkey-0))))
+    ((recv (enc "dh" gx gy dhkey)) (send (enc "dh" gx gy dhkey))))
+  (label 16)
+  (parent 13)
+  (unrealized (0 1) (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/tst/dh_group_sig.scm b/tst/dh_group_sig.scm
--- a/tst/dh_group_sig.scm
+++ b/tst/dh_group_sig.scm
@@ -1,30 +1,35 @@
-(herald "Signed group DH exchange" (algebra diffie-hellman)
+(herald "Signed group DH exchange (improved version)" (algebra diffie-hellman)
 	(limit 100)
 	;(limit 20000) (bound 25)
-)
+	)
 
+;;; This is not a very convincing protocol in my mind.  -- JDG
+
 (defprotocol dh_sig diffie-hellman
   (defrole group-init
-    (vars (alpha rndx) (group text))
+    (vars (alpha rndx) (group text) (group-dist chan))
     (trace
-     (init (cat "Group id" group (exp (gen) alpha))))
-    (uniq-gen alpha))
+     (send group-dist (cat "Group id" group (exp (gen) alpha))))
+    (uniq-gen alpha)
+    (conf group-dist))
   (defrole init
-    (vars (x rndx) (y expt) (g base) (group text) (a b name))
+    (vars (x rndx) (y expt) (g base) (group text) (a b name) (group-dist chan))
     (trace
-     (obsv (cat "Group id" group g))
+     (recv group-dist (cat "Group id" group g))
      (send (enc (exp g x) (privk a)))
-     (recv (enc (exp g y) (exp g x) (privk b)))
-     (send (enc "final" (exp g y) (exp g x) (privk a))))
-    (uniq-gen x))
+     (recv (enc a  (exp g y) (exp g x) (privk b)))
+     (send (enc "final" b (exp g y) (exp g x) (privk a))))
+    (uniq-gen x)
+    (auth group-dist))
   (defrole resp
-    (vars (y rndx) (x expt) (g base) (group text) (a b name))
+    (vars (y rndx) (x expt) (g base) (group text) (a b name) (group-dist chan))
     (trace
-     (obsv (cat "Group id" group g))
+     (recv group-dist (cat "Group id" group g))
      (recv (enc (exp g x) (privk a)))
-     (send (enc (exp g y) (exp g x) (privk b)))
-     (recv (enc "final" (exp g y) (exp g x) (privk a))))
-    (uniq-gen y))
+     (send (enc a (exp g y) (exp g x) (privk b)))
+     (recv (enc "final" b (exp g y) (exp g x) (privk a))))
+    (uniq-gen y)
+    (auth group-dist))
 )
 
 (defskeleton dh_sig
@@ -41,28 +46,31 @@
 
 (defprotocol dh_sig2 diffie-hellman
   (defrole group-init
-    (vars (alpha rndx) (group text))
+    (vars (alpha rndx) (group text) (group-dist chan))
     (trace
-     (init (cat "Group id" group (exp (gen) alpha))))
-    (uniq-gen alpha))
+     (send group-dist (cat "Group id" group (exp (gen) alpha))))
+    (uniq-gen alpha)
+    (conf group-dist))
   (defrole init
-    (vars (x rndx) (y expt) (g base) (n group text) (a b name))
+    (vars (x rndx) (y expt) (g base) (n group text) (a b name) (group-dist chan))
     (trace
-     (obsv (cat "Group id" group g))
+     (recv group-dist (cat "Group id" group g))
      (send (enc (exp g x) (privk a)))
-     (recv (enc (exp g y) (exp g x) (privk b)))
-     (send (enc n (exp g (mul x y))))
+     (recv (enc a (exp g y) (exp g x) (privk b)))
+     (send (enc n b (exp g (mul x y))))
      (recv n))
-    (uniq-gen x n))
+    (uniq-gen x n)
+    (auth group-dist))
   (defrole resp
-    (vars (y rndx) (x expt) (g base) (n group text) (a b name))
+    (vars (y rndx) (x expt) (g base) (n group text) (a b name) (group-dist chan))
     (trace
-     (obsv (cat "Group id" group g))
+     (recv group-dist (cat "Group id" group g))
      (recv (enc (exp g x) (privk a)))
-     (send (enc (exp g y) (exp g x) (privk b)))
-     (recv (enc n (exp g (mul x y))))
+     (send (enc a (exp g y) (exp g x) (privk b)))
+     (recv (enc n b (exp g (mul x y))))
      (send n))
-    (uniq-gen y))
+    (uniq-gen y)
+    (auth group-dist))
 )
 
 (defskeleton dh_sig2
@@ -76,4 +84,3 @@
   (defstrand resp 5 (a a) (b b))
   (non-orig (privk a) (privk b))
 )
-
diff --git a/tst/dh_group_sig.tst b/tst/dh_group_sig.tst
--- a/tst/dh_group_sig.tst
+++ b/tst/dh_group_sig.tst
@@ -1,2820 +1,2803 @@
-(herald "Signed group DH exchange" (algebra diffie-hellman) (limit 100))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/dh_group_sig.scm")
-(comment "Step count limited to 100")
-
-(defprotocol dh_sig diffie-hellman
-  (defrole group-init
-    (vars (alpha rndx) (group text))
-    (trace (init (cat "Group id" group (exp (gen) alpha))))
-    (uniq-gen alpha))
-  (defrole init
-    (vars (x rndx) (y expt) (g base) (group text) (a b name))
-    (trace (obsv (cat "Group id" group g))
-      (send (enc (exp g x) (privk a)))
-      (recv (enc (exp g y) (exp g x) (privk b)))
-      (send (enc "final" (exp g y) (exp g x) (privk a))))
-    (uniq-gen x)
-    (absent (x g)))
-  (defrole resp
-    (vars (y rndx) (x expt) (g base) (group text) (a b name))
-    (trace (obsv (cat "Group id" group g))
-      (recv (enc (exp g x) (privk a)))
-      (send (enc (exp g y) (exp g x) (privk b)))
-      (recv (enc "final" (exp g y) (exp g x) (privk a))))
-    (uniq-gen y)
-    (absent (y g) (y (exp g x)))))
-
-(defskeleton dh_sig
-  (vars (group text) (a b name) (g base) (x rndx) (y expt))
-  (defstrand init 4 (group group) (a a) (b b) (g g) (x x) (y y))
-  (absent (x g))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (traces
-    ((obsv (cat "Group id" group g)) (send (enc (exp g x) (privk a)))
-      (recv (enc (exp g y) (exp g x) (privk b)))
-      (send (enc "final" (exp g y) (exp g x) (privk a)))))
-  (label 0)
-  (unrealized (0 0) (0 2))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dh_sig
-  (vars (group text) (a b name) (x rndx) (y expt) (alpha rndx))
-  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))
-    (x x) (y y))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (precedes ((1 0) (0 0)))
-  (leadsto ((1 0) (0 0)))
-  (absent (x (exp (gen) alpha)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x alpha)
-  (operation state-passing-test (added-strand group-init 1)
-    (cat "Group id" group (exp (gen) alpha)) (0 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x alpha)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b)))
-      (send
-        (enc "final" (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk a))))
-    ((init (cat "Group id" group (exp (gen) alpha)))))
-  (label 1)
-  (parent 0)
-  (unrealized (0 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dh_sig
-  (vars (group group-0 text) (a b a-0 name) (alpha x y rndx) (x-0 expt))
-  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))
-    (x x) (y (mul x y (rec x-0))))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand resp 3 (group group-0) (a a-0) (b b)
-    (g (exp (gen) (mul alpha x (rec x-0)))) (y y) (x x-0))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)))
-  (leadsto ((1 0) (0 0)))
-  (absent (y (exp (gen) (mul alpha x (rec x-0))))
-    (y (exp (gen) (mul alpha x))) (x (exp (gen) alpha)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen alpha x y)
-  (operation encryption-test (added-strand resp 3)
-    (enc (exp (gen) (mul alpha x y (rec x-0))) (exp (gen) (mul alpha x))
-      (privk b)) (0 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul alpha x)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul alpha x y (rec x-0)))
-          (exp (gen) (mul alpha x)) (privk b)))
-      (send
-        (enc "final" (exp (gen) (mul alpha x y (rec x-0)))
-          (exp (gen) (mul alpha x)) (privk a))))
-    ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) (mul alpha x (rec x-0)))))
-      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
-      (send
-        (enc (exp (gen) (mul alpha x y (rec x-0)))
-          (exp (gen) (mul alpha x)) (privk b)))))
-  (label 2)
-  (parent 1)
-  (unrealized (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dh_sig
-  (vars (group text) (a b a-0 name) (y x alpha rndx))
-  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))
-    (x x) (y y))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))
-    (y y) (x x))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))
-  (absent (y (exp (gen) alpha)) (y (exp (gen) (mul x alpha)))
-    (x (exp (gen) alpha)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x alpha)
-  (operation state-passing-test (displaced 3 1 group-init 1)
-    (cat "Group id" group-0 (exp (gen) alpha-0)) (2 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x alpha)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b)))
-      (send
-        (enc "final" (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk a)))) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b)))))
-  (label 3)
-  (parent 2)
-  (unrealized)
-  (shape)
-  (maps
-    ((0) ((a a) (b b) (x x) (y y) (g (exp (gen) alpha)) (group group))))
-  (origs))
-
-(defskeleton dh_sig
-  (vars (group group-0 text) (a b a-0 name) (y alpha x alpha-0 rndx))
-  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))
-    (x x) (y (mul y (rec alpha) alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand resp 3 (group group-0) (a a-0) (b b)
-    (g (exp (gen) alpha-0)) (y y) (x (mul alpha x (rec alpha-0))))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 0) (2 0)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))
-  (absent (y (exp (gen) alpha-0)) (y (exp (gen) (mul alpha x)))
-    (x (exp (gen) alpha)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y alpha x alpha-0)
-  (operation state-passing-test (added-strand group-init 1)
-    (cat "Group id" group-0 (exp (gen) alpha-0)) (2 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul alpha x)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
-          (privk b)))
-      (send
-        (enc "final" (exp (gen) (mul y alpha-0))
-          (exp (gen) (mul alpha x)) (privk a))))
-    ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
-      (send
-        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
-          (privk b))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0)))))
-  (label 4)
-  (parent 2)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((a a) (b b) (x x) (y (mul y (rec alpha) alpha-0))
-        (g (exp (gen) alpha)) (group group))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol dh_sig diffie-hellman
-  (defrole group-init
-    (vars (alpha rndx) (group text))
-    (trace (init (cat "Group id" group (exp (gen) alpha))))
-    (uniq-gen alpha))
-  (defrole init
-    (vars (x rndx) (y expt) (g base) (group text) (a b name))
-    (trace (obsv (cat "Group id" group g))
-      (send (enc (exp g x) (privk a)))
-      (recv (enc (exp g y) (exp g x) (privk b)))
-      (send (enc "final" (exp g y) (exp g x) (privk a))))
-    (uniq-gen x)
-    (absent (x g)))
-  (defrole resp
-    (vars (y rndx) (x expt) (g base) (group text) (a b name))
-    (trace (obsv (cat "Group id" group g))
-      (recv (enc (exp g x) (privk a)))
-      (send (enc (exp g y) (exp g x) (privk b)))
-      (recv (enc "final" (exp g y) (exp g x) (privk a))))
-    (uniq-gen y)
-    (absent (y g) (y (exp g x)))))
-
-(defskeleton dh_sig
-  (vars (group text) (a b name) (g base) (y rndx) (x expt))
-  (defstrand resp 4 (group group) (a a) (b b) (g g) (y y) (x x))
-  (absent (y g) (y (exp g x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y)
-  (traces
-    ((obsv (cat "Group id" group g)) (recv (enc (exp g x) (privk a)))
-      (send (enc (exp g y) (exp g x) (privk b)))
-      (recv (enc "final" (exp g y) (exp g x) (privk a)))))
-  (label 5)
-  (unrealized (0 0) (0 1) (0 3))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dh_sig
-  (vars (group text) (a b name) (y rndx) (x expt) (alpha rndx))
-  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
-    (y y) (x x))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (precedes ((1 0) (0 0)))
-  (leadsto ((1 0) (0 0)))
-  (absent (y (exp (gen) alpha)) (y (exp (gen) (mul x alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y alpha)
-  (operation state-passing-test (added-strand group-init 1)
-    (cat "Group id" group (exp (gen) alpha)) (0 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b)))
-      (recv
-        (enc "final" (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk a))))
-    ((init (cat "Group id" group (exp (gen) alpha)))))
-  (label 6)
-  (parent 5)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dh_sig
-  (vars (group group-0 text) (a b name) (y rndx) (x expt)
-    (alpha x-0 rndx))
-  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
-    (y y) (x (mul x x-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) (mul x alpha)))
-    (x x-0))
-  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)))
-  (leadsto ((1 0) (0 0)))
-  (absent (x-0 (exp (gen) (mul x alpha))) (y (exp (gen) alpha))
-    (y (exp (gen) (mul x alpha x-0))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y alpha x-0)
-  (operation encryption-test (added-strand init 2)
-    (enc (exp (gen) (mul x alpha x-0)) (privk a)) (0 1))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha x-0)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha x-0))
-          (privk b)))
-      (recv
-        (enc "final" (exp (gen) (mul y alpha))
-          (exp (gen) (mul x alpha x-0)) (privk a))))
-    ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) (mul x alpha))))
-      (send (enc (exp (gen) (mul x alpha x-0)) (privk a)))))
-  (label 7)
-  (parent 6)
-  (unrealized (0 3) (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dh_sig
-  (vars (group text) (a b name) (y x alpha rndx))
-  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
-    (y y) (x x))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x))
-  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))
-  (absent (x (exp (gen) alpha)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul x alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x alpha)
-  (operation state-passing-test (displaced 3 1 group-init 1)
-    (cat "Group id" group-0 (exp (gen) alpha-0)) (2 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b)))
-      (recv
-        (enc "final" (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk a)))) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x alpha)) (privk a)))))
-  (label 8)
-  (parent 7)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dh_sig
-  (vars (group group-0 text) (a b name) (y x alpha alpha-0 rndx))
-  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
-    (y y) (x (mul x (rec alpha) alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0)) (x x))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)) ((3 0) (2 0)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))
-  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul x alpha-0))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x alpha alpha-0)
-  (operation state-passing-test (added-strand group-init 1)
-    (cat "Group id" group-0 (exp (gen) alpha-0)) (2 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
-          (privk b)))
-      (recv
-        (enc "final" (exp (gen) (mul y alpha))
-          (exp (gen) (mul x alpha-0)) (privk a))))
-    ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0)))))
-  (label 9)
-  (parent 7)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dh_sig
-  (vars (group text) (a b b-0 name) (alpha y x rndx))
-  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
-    (y y) (x x))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 4 (group group) (a a) (b b-0) (g (exp (gen) alpha))
-    (x x) (y y))
-  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((2 3) (0 3)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))
-  (absent (x (exp (gen) alpha)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul alpha x))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen alpha y x)
-  (operation encryption-test (displaced 2 3 init 4)
-    (enc "final" (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x-0))
-      (privk a)) (0 3))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
-      (send
-        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
-          (privk b)))
-      (recv
-        (enc "final" (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
-          (privk a)))) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul alpha x)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
-          (privk b-0)))
-      (send
-        (enc "final" (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
-          (privk a)))))
-  (label 10)
-  (parent 8)
-  (unrealized)
-  (shape)
-  (maps
-    ((0) ((a a) (b b) (y y) (x x) (g (exp (gen) alpha)) (group group))))
-  (origs))
-
-(defskeleton dh_sig
-  (vars (group group-0 text) (a b b-0 name) (y alpha alpha-0 x rndx))
-  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
-    (y y) (x (mul (rec alpha) alpha-0 x)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (defstrand init 4 (group group-0) (a a) (b b-0)
-    (g (exp (gen) alpha-0)) (x x) (y (mul y alpha (rec alpha-0))))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (3 0))
-    ((3 1) (0 1)) ((3 3) (0 3)))
-  (leadsto ((1 0) (0 0)) ((2 0) (3 0)))
-  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul alpha-0 x))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y alpha alpha-0 x)
-  (operation encryption-test (displaced 2 4 init 4)
-    (enc "final" (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha-0))
-      (privk a)) (0 3))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul alpha-0 x)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul alpha-0 x))
-          (privk b)))
-      (recv
-        (enc "final" (exp (gen) (mul y alpha))
-          (exp (gen) (mul alpha-0 x)) (privk a))))
-    ((init (cat "Group id" group (exp (gen) alpha))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul alpha-0 x)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul alpha-0 x))
-          (privk b-0)))
-      (send
-        (enc "final" (exp (gen) (mul y alpha))
-          (exp (gen) (mul alpha-0 x)) (privk a)))))
-  (label 11)
-  (parent 9)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dh_sig
-  (vars (group group-0 text) (a b b-0 name) (y alpha alpha-0 x rndx))
-  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
-    (y y) (x (mul (rec alpha) alpha-0 x)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (defstrand init 4 (group group-0) (a a) (b b-0)
-    (g (exp (gen) alpha-0)) (x x) (y (mul y alpha (rec alpha-0))))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (3 0)) ((3 1) (0 1))
-    ((3 3) (0 3)))
-  (leadsto ((1 0) (0 0)) ((2 0) (3 0)))
-  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul alpha-0 x))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y alpha alpha-0 x)
-  (operation generalization weakened ((1 0) (3 0)))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul alpha-0 x)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul alpha-0 x))
-          (privk b)))
-      (recv
-        (enc "final" (exp (gen) (mul y alpha))
-          (exp (gen) (mul alpha-0 x)) (privk a))))
-    ((init (cat "Group id" group (exp (gen) alpha))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul alpha-0 x)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul alpha-0 x))
-          (privk b-0)))
-      (send
-        (enc "final" (exp (gen) (mul y alpha))
-          (exp (gen) (mul alpha-0 x)) (privk a)))))
-  (label 12)
-  (parent 11)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((a a) (b b) (y y) (x (mul (rec alpha) alpha-0 x))
-        (g (exp (gen) alpha)) (group group))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol dh_sig2 diffie-hellman
-  (defrole group-init
-    (vars (alpha rndx) (group text))
-    (trace (init (cat "Group id" group (exp (gen) alpha))))
-    (uniq-gen alpha))
-  (defrole init
-    (vars (x rndx) (y expt) (g base) (n group text) (a b name))
-    (trace (obsv (cat "Group id" group g))
-      (send (enc (exp g x) (privk a)))
-      (recv (enc (exp g y) (exp g x) (privk b)))
-      (send (enc n (exp g (mul x y)))) (recv n))
-    (uniq-gen n x)
-    (absent (x g)))
-  (defrole resp
-    (vars (y rndx) (x expt) (g base) (n group text) (a b name))
-    (trace (obsv (cat "Group id" group g))
-      (recv (enc (exp g x) (privk a)))
-      (send (enc (exp g y) (exp g x) (privk b)))
-      (recv (enc n (exp g (mul y x)))) (send n))
-    (uniq-gen y)
-    (absent (y g) (y (exp g x)))))
-
-(defskeleton dh_sig2
-  (vars (n group text) (a b name) (g base) (x rndx) (y expt))
-  (defstrand init 5 (n n) (group group) (a a) (b b) (g g) (x x) (y y))
-  (absent (x g))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n x)
-  (traces
-    ((obsv (cat "Group id" group g)) (send (enc (exp g x) (privk a)))
-      (recv (enc (exp g y) (exp g x) (privk b)))
-      (send (enc n (exp g (mul x y)))) (recv n)))
-  (label 13)
-  (unrealized (0 0) (0 2))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group text) (a b name) (x rndx) (y expt) (alpha rndx))
-  (defstrand init 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (x x) (y y))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (precedes ((1 0) (0 0)))
-  (leadsto ((1 0) (0 0)))
-  (absent (x (exp (gen) alpha)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n x alpha)
-  (operation state-passing-test (added-strand group-init 1)
-    (cat "Group id" group (exp (gen) alpha)) (0 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x alpha)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b))) (send (enc n (exp (gen) (mul x y alpha))))
-      (recv n)) ((init (cat "Group id" group (exp (gen) alpha)))))
-  (label 14)
-  (parent 13)
-  (unrealized (0 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 name) (alpha x y rndx)
-    (x-0 expt))
-  (defstrand init 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (x x) (y (mul x y (rec x-0))))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand resp 3 (group group-0) (a a-0) (b b)
-    (g (exp (gen) (mul alpha x (rec x-0)))) (y y) (x x-0))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)))
-  (leadsto ((1 0) (0 0)))
-  (absent (y (exp (gen) (mul alpha x (rec x-0))))
-    (y (exp (gen) (mul alpha x))) (x (exp (gen) alpha)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n alpha x y)
-  (operation encryption-test (added-strand resp 3)
-    (enc (exp (gen) (mul alpha x y (rec x-0))) (exp (gen) (mul alpha x))
-      (privk b)) (0 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul alpha x)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul alpha x y (rec x-0)))
-          (exp (gen) (mul alpha x)) (privk b)))
-      (send (enc n (exp (gen) (mul alpha x x y (rec x-0))))) (recv n))
-    ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) (mul alpha x (rec x-0)))))
-      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
-      (send
-        (enc (exp (gen) (mul alpha x y (rec x-0)))
-          (exp (gen) (mul alpha x)) (privk b)))))
-  (label 15)
-  (parent 14)
-  (unrealized (0 4) (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group text) (a b a-0 name) (y x alpha rndx))
-  (defstrand init 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (x x) (y y))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))
-    (y y) (x x))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))
-  (absent (y (exp (gen) alpha)) (y (exp (gen) (mul x alpha)))
-    (x (exp (gen) alpha)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n y x alpha)
-  (operation state-passing-test (displaced 3 1 group-init 1)
-    (cat "Group id" group-0 (exp (gen) alpha-0)) (2 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x alpha)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b))) (send (enc n (exp (gen) (mul y x alpha))))
-      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b)))))
-  (label 16)
-  (parent 15)
-  (unrealized (0 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 name) (y alpha x alpha-0 rndx))
-  (defstrand init 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (x x) (y (mul y (rec alpha) alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand resp 3 (group group-0) (a a-0) (b b)
-    (g (exp (gen) alpha-0)) (y y) (x (mul alpha x (rec alpha-0))))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 0) (2 0)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))
-  (absent (y (exp (gen) alpha-0)) (y (exp (gen) (mul alpha x)))
-    (x (exp (gen) alpha)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n y alpha x alpha-0)
-  (operation state-passing-test (added-strand group-init 1)
-    (cat "Group id" group-0 (exp (gen) alpha-0)) (2 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul alpha x)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
-          (privk b))) (send (enc n (exp (gen) (mul y x alpha-0))))
-      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
-      (send
-        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
-          (privk b))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0)))))
-  (label 17)
-  (parent 15)
-  (unrealized (0 4))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group text) (a a-0 b name) (alpha x y rndx))
-  (defstrand init 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (x x) (y y))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand resp 5 (n n) (group group) (a a-0) (b b)
-    (g (exp (gen) alpha)) (y y) (x x))
-  (precedes ((0 1) (2 0)) ((0 3) (2 3)) ((1 0) (0 0)) ((1 0) (2 0))
-    ((2 2) (0 2)) ((2 4) (0 4)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))
-  (absent (y (exp (gen) alpha)) (y (exp (gen) (mul alpha x)))
-    (x (exp (gen) alpha)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n alpha x y)
-  (operation nonce-test (displaced 2 3 resp 5) n (0 4)
-    (enc n (exp (gen) (mul y-0 x-0 alpha))))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul alpha x)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
-          (privk b))) (send (enc n (exp (gen) (mul alpha x y))))
-      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
-      (send
-        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
-          (privk b))) (recv (enc n (exp (gen) (mul alpha x y))))
-      (send n)))
-  (label 18)
-  (parent 16)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((a a) (b b) (x x) (y y) (g (exp (gen) alpha)) (n n)
-        (group group))))
-  (origs))
-
-(defskeleton dh_sig2
-  (vars (n group text) (a b a-0 name) (y x alpha rndx))
-  (defstrand init 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (x x) (y y))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))
-    (y y) (x x))
-  (deflistener (exp (gen) (mul y x alpha)))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2))
-    ((2 2) (3 0)) ((3 1) (0 4)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))
-  (absent (y (exp (gen) alpha)) (y (exp (gen) (mul x alpha)))
-    (x (exp (gen) alpha)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n y x alpha)
-  (operation nonce-test (added-listener (exp (gen) (mul y x alpha))) n
-    (0 4) (enc n (exp (gen) (mul y x alpha))))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x alpha)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b))) (send (enc n (exp (gen) (mul y x alpha))))
-      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b))))
-    ((recv (exp (gen) (mul y x alpha)))
-      (send (exp (gen) (mul y x alpha)))))
-  (label 19)
-  (parent 16)
-  (unrealized (3 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 name) (y alpha x alpha-0 rndx))
-  (defstrand init 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (x x) (y (mul y (rec alpha) alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand resp 3 (group group-0) (a a-0) (b b)
-    (g (exp (gen) alpha-0)) (y y) (x (mul alpha x (rec alpha-0))))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (deflistener (exp (gen) (mul y x alpha-0)))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (4 0))
-    ((3 0) (2 0)) ((4 1) (0 4)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))
-  (absent (y (exp (gen) alpha-0)) (y (exp (gen) (mul alpha x)))
-    (x (exp (gen) alpha)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n y alpha x alpha-0)
-  (operation nonce-test (added-listener (exp (gen) (mul y x alpha-0))) n
-    (0 4) (enc n (exp (gen) (mul y x alpha-0))))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul alpha x)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
-          (privk b))) (send (enc n (exp (gen) (mul y x alpha-0))))
-      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
-      (send
-        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
-          (privk b))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((recv (exp (gen) (mul y x alpha-0)))
-      (send (exp (gen) (mul y x alpha-0)))))
-  (label 20)
-  (parent 17)
-  (unrealized (4 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group text) (a b a-0 name) (y x alpha rndx))
-  (defstrand init 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (x x) (y y))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))
-    (y y) (x x))
-  (deflistener (exp (gen) (mul y x alpha)))
-  (deflistener (cat (exp (gen) (mul y x)) alpha))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2))
-    ((2 2) (4 0)) ((3 1) (0 4)) ((4 1) (3 0)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))
-  (absent (y (exp (gen) alpha)) (y (exp (gen) (mul x alpha)))
-    (x (exp (gen) alpha)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n y x alpha)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y x)) alpha))
-    (exp (gen) (mul y x alpha)) (3 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x alpha)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b))) (send (enc n (exp (gen) (mul y x alpha))))
-      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b))))
-    ((recv (exp (gen) (mul y x alpha)))
-      (send (exp (gen) (mul y x alpha))))
-    ((recv (cat (exp (gen) (mul y x)) alpha))
-      (send (cat (exp (gen) (mul y x)) alpha))))
-  (label 21)
-  (parent 19)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group text) (a b a-0 name) (y x alpha rndx))
-  (defstrand init 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (x x) (y y))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))
-    (y y) (x x))
-  (deflistener (exp (gen) (mul y x alpha)))
-  (deflistener (cat (exp (gen) (mul y alpha)) x))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2))
-    ((2 2) (4 0)) ((3 1) (0 4)) ((4 1) (3 0)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))
-  (absent (y (exp (gen) alpha)) (y (exp (gen) (mul x alpha)))
-    (x (exp (gen) alpha)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n y x alpha)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y alpha)) x))
-    (exp (gen) (mul y x alpha)) (3 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x alpha)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b))) (send (enc n (exp (gen) (mul y x alpha))))
-      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b))))
-    ((recv (exp (gen) (mul y x alpha)))
-      (send (exp (gen) (mul y x alpha))))
-    ((recv (cat (exp (gen) (mul y alpha)) x))
-      (send (cat (exp (gen) (mul y alpha)) x))))
-  (label 22)
-  (parent 19)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group text) (a b a-0 name) (y x alpha rndx))
-  (defstrand init 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (x x) (y y))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))
-    (y y) (x x))
-  (deflistener (exp (gen) (mul y x alpha)))
-  (deflistener (cat (exp (gen) (mul x alpha)) y))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2))
-    ((2 2) (4 0)) ((3 1) (0 4)) ((4 1) (3 0)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))
-  (absent (y (exp (gen) alpha)) (y (exp (gen) (mul x alpha)))
-    (x (exp (gen) alpha)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n y x alpha)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x alpha)) y))
-    (exp (gen) (mul y x alpha)) (3 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x alpha)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b))) (send (enc n (exp (gen) (mul y x alpha))))
-      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b))))
-    ((recv (exp (gen) (mul y x alpha)))
-      (send (exp (gen) (mul y x alpha))))
-    ((recv (cat (exp (gen) (mul x alpha)) y))
-      (send (cat (exp (gen) (mul x alpha)) y))))
-  (label 23)
-  (parent 19)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 name) (y alpha x alpha-0 rndx))
-  (defstrand init 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (x x) (y (mul y (rec alpha) alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand resp 3 (group group-0) (a a-0) (b b)
-    (g (exp (gen) alpha-0)) (y y) (x (mul alpha x (rec alpha-0))))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (deflistener (exp (gen) (mul y x alpha-0)))
-  (deflistener (cat (exp (gen) (mul y x)) alpha-0))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (5 0))
-    ((3 0) (2 0)) ((4 1) (0 4)) ((5 1) (4 0)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))
-  (absent (y (exp (gen) alpha-0)) (y (exp (gen) (mul alpha x)))
-    (x (exp (gen) alpha)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n y alpha x alpha-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y x)) alpha-0))
-    (exp (gen) (mul y x alpha-0)) (4 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul alpha x)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
-          (privk b))) (send (enc n (exp (gen) (mul y x alpha-0))))
-      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
-      (send
-        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
-          (privk b))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((recv (exp (gen) (mul y x alpha-0)))
-      (send (exp (gen) (mul y x alpha-0))))
-    ((recv (cat (exp (gen) (mul y x)) alpha-0))
-      (send (cat (exp (gen) (mul y x)) alpha-0))))
-  (label 24)
-  (parent 20)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 name) (y alpha x alpha-0 rndx))
-  (defstrand init 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (x x) (y (mul y (rec alpha) alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand resp 3 (group group-0) (a a-0) (b b)
-    (g (exp (gen) alpha-0)) (y y) (x (mul alpha x (rec alpha-0))))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (deflistener (exp (gen) (mul y x alpha-0)))
-  (deflistener (cat (exp (gen) (mul y alpha-0)) x))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (5 0))
-    ((3 0) (2 0)) ((4 1) (0 4)) ((5 1) (4 0)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))
-  (absent (y (exp (gen) alpha-0)) (y (exp (gen) (mul alpha x)))
-    (x (exp (gen) alpha)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n y alpha x alpha-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y alpha-0)) x))
-    (exp (gen) (mul y x alpha-0)) (4 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul alpha x)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
-          (privk b))) (send (enc n (exp (gen) (mul y x alpha-0))))
-      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
-      (send
-        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
-          (privk b))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((recv (exp (gen) (mul y x alpha-0)))
-      (send (exp (gen) (mul y x alpha-0))))
-    ((recv (cat (exp (gen) (mul y alpha-0)) x))
-      (send (cat (exp (gen) (mul y alpha-0)) x))))
-  (label 25)
-  (parent 20)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 name) (y alpha x alpha-0 rndx))
-  (defstrand init 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (x x) (y (mul y (rec alpha) alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand resp 3 (group group-0) (a a-0) (b b)
-    (g (exp (gen) alpha-0)) (y y) (x (mul alpha x (rec alpha-0))))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (deflistener (exp (gen) (mul y x alpha-0)))
-  (deflistener (cat (exp (gen) (mul x alpha-0)) y))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (5 0))
-    ((3 0) (2 0)) ((4 1) (0 4)) ((5 1) (4 0)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))
-  (absent (y (exp (gen) alpha-0)) (y (exp (gen) (mul alpha x)))
-    (x (exp (gen) alpha)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n y alpha x alpha-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x alpha-0)) y))
-    (exp (gen) (mul y x alpha-0)) (4 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul alpha x)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
-          (privk b))) (send (enc n (exp (gen) (mul y x alpha-0))))
-      (recv n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
-      (send
-        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
-          (privk b))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((recv (exp (gen) (mul y x alpha-0)))
-      (send (exp (gen) (mul y x alpha-0))))
-    ((recv (cat (exp (gen) (mul x alpha-0)) y))
-      (send (cat (exp (gen) (mul x alpha-0)) y))))
-  (label 26)
-  (parent 20)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol dh_sig2 diffie-hellman
-  (defrole group-init
-    (vars (alpha rndx) (group text))
-    (trace (init (cat "Group id" group (exp (gen) alpha))))
-    (uniq-gen alpha))
-  (defrole init
-    (vars (x rndx) (y expt) (g base) (n group text) (a b name))
-    (trace (obsv (cat "Group id" group g))
-      (send (enc (exp g x) (privk a)))
-      (recv (enc (exp g y) (exp g x) (privk b)))
-      (send (enc n (exp g (mul x y)))) (recv n))
-    (uniq-gen n x)
-    (absent (x g)))
-  (defrole resp
-    (vars (y rndx) (x expt) (g base) (n group text) (a b name))
-    (trace (obsv (cat "Group id" group g))
-      (recv (enc (exp g x) (privk a)))
-      (send (enc (exp g y) (exp g x) (privk b)))
-      (recv (enc n (exp g (mul y x)))) (send n))
-    (uniq-gen y)
-    (absent (y g) (y (exp g x)))))
-
-(defskeleton dh_sig2
-  (vars (n group text) (a b name) (g base) (y rndx) (x expt))
-  (defstrand resp 5 (n n) (group group) (a a) (b b) (g g) (y y) (x x))
-  (absent (y g) (y (exp g x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y)
-  (traces
-    ((obsv (cat "Group id" group g)) (recv (enc (exp g x) (privk a)))
-      (send (enc (exp g y) (exp g x) (privk b)))
-      (recv (enc n (exp g (mul y x)))) (send n)))
-  (label 27)
-  (unrealized (0 0) (0 1))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group text) (a b name) (y rndx) (x expt) (alpha rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x x))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (precedes ((1 0) (0 0)))
-  (leadsto ((1 0) (0 0)))
-  (absent (y (exp (gen) alpha)) (y (exp (gen) (mul x alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y alpha)
-  (operation state-passing-test (added-strand group-init 1)
-    (cat "Group id" group (exp (gen) alpha)) (0 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha)))))
-  (label 28)
-  (parent 27)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b name) (y rndx) (x expt)
-    (alpha x-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x (mul x x-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) (mul x alpha)))
-    (x x-0))
-  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)))
-  (leadsto ((1 0) (0 0)))
-  (absent (x-0 (exp (gen) (mul x alpha))) (y (exp (gen) alpha))
-    (y (exp (gen) (mul x alpha x-0))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y alpha x-0)
-  (operation encryption-test (added-strand init 2)
-    (enc (exp (gen) (mul x alpha x-0)) (privk a)) (0 1))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha x-0)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha x-0))
-          (privk b))) (recv (enc n (exp (gen) (mul y x alpha x-0))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) (mul x alpha))))
-      (send (enc (exp (gen) (mul x alpha x-0)) (privk a)))))
-  (label 29)
-  (parent 28)
-  (unrealized (0 3) (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group text) (a b name) (y x alpha rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x x))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x))
-  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))
-  (absent (x (exp (gen) alpha)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul x alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x alpha)
-  (operation state-passing-test (displaced 3 1 group-init 1)
-    (cat "Group id" group-0 (exp (gen) alpha-0)) (2 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x alpha)) (privk a)))))
-  (label 30)
-  (parent 29)
-  (unrealized (0 3))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b name) (y x alpha alpha-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x (mul x (rec alpha) alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0)) (x x))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)) ((3 0) (2 0)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))
-  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul x alpha-0))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x alpha alpha-0)
-  (operation state-passing-test (added-strand group-init 1)
-    (cat "Group id" group-0 (exp (gen) alpha-0)) (2 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
-          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0)))))
-  (label 31)
-  (parent 29)
-  (unrealized (0 3))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group text) (b a b-0 name) (alpha y x rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x x))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 4 (n n) (group group) (a a) (b b-0)
-    (g (exp (gen) alpha)) (x x) (y y))
-  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((2 3) (0 3)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))
-  (absent (x (exp (gen) alpha)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul alpha x))))
-  (non-orig (privk b) (privk a))
-  (uniq-gen n alpha y x)
-  (operation encryption-test (displaced 2 3 init 4)
-    (enc n (exp (gen) (mul y-0 x-0 alpha))) (0 3))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
-      (send
-        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
-          (privk b))) (recv (enc n (exp (gen) (mul alpha y x))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul alpha x)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
-          (privk b-0))) (send (enc n (exp (gen) (mul alpha y x))))))
-  (label 32)
-  (parent 30)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((a a) (b b) (y y) (x x) (g (exp (gen) alpha)) (n n)
-        (group group))))
-  (origs))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 b-0 name) (y x alpha rndx)
-    (y-0 expt) (x-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x x))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x))
-  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
-    (g (exp (gen) (mul y x alpha (rec y-0)))) (x x-0)
-    (y (mul y-0 (rec x-0))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 3) (0 3)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))
-  (absent (x-0 (exp (gen) (mul y x alpha (rec y-0))))
-    (x (exp (gen) alpha)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul x alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n y x alpha x-0)
-  (operation encryption-test (added-strand init 4)
-    (enc n (exp (gen) (mul y x alpha))) (0 3))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x alpha)) (privk a))))
-    ((obsv
-       (cat "Group id" group-0 (exp (gen) (mul y x alpha (rec y-0)))))
-      (send (enc (exp (gen) (mul y x alpha (rec y-0) x-0)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul y x alpha (rec x-0)))
-          (exp (gen) (mul y x alpha (rec y-0) x-0)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x alpha))))))
-  (label 33)
-  (parent 30)
-  (unrealized (3 0) (3 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group text) (a b name) (y x alpha rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x x))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x))
-  (deflistener (exp (gen) (mul y x alpha)))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 1) (0 3)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))
-  (absent (x (exp (gen) alpha)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul x alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x alpha)
-  (operation encryption-test
-    (added-listener (exp (gen) (mul y x alpha)))
-    (enc n (exp (gen) (mul y x alpha))) (0 3))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x alpha)) (privk a))))
-    ((recv (exp (gen) (mul y x alpha)))
-      (send (exp (gen) (mul y x alpha)))))
-  (label 34)
-  (parent 30)
-  (unrealized (3 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (b a b-0 name) (alpha alpha-0 y x rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) alpha-0 x)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (defstrand init 4 (n n) (group group-0) (a a) (b b-0)
-    (g (exp (gen) alpha-0)) (x x) (y y))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (3 0))
-    ((3 1) (0 1)) ((3 3) (0 3)))
-  (leadsto ((1 0) (0 0)) ((2 0) (3 0)))
-  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul alpha-0 x))))
-  (non-orig (privk b) (privk a))
-  (uniq-gen n alpha alpha-0 y x)
-  (operation encryption-test (displaced 2 4 init 4)
-    (enc n (exp (gen) (mul y-0 x-0 alpha-0))) (0 3))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul alpha-0 x)) (privk a)))
-      (send
-        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha-0 x))
-          (privk b))) (recv (enc n (exp (gen) (mul alpha-0 y x))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul alpha-0 x)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul alpha-0 y)) (exp (gen) (mul alpha-0 x))
-          (privk b-0))) (send (enc n (exp (gen) (mul alpha-0 y x))))))
-  (label 35)
-  (parent 31)
-  (unrealized (3 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)
-    (y x alpha alpha-0 rndx) (y-0 expt) (x-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x (mul x (rec alpha) alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0)) (x x))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (defstrand init 4 (n n) (group group-1) (a a-0) (b b-0)
-    (g (exp (gen) (mul y x alpha-0 (rec y-0)))) (x x-0)
-    (y (mul y-0 (rec x-0))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 0) (2 0)) ((4 3) (0 3)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))
-  (absent (x-0 (exp (gen) (mul y x alpha-0 (rec y-0))))
-    (x (exp (gen) alpha-0)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul x alpha-0))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n y x alpha alpha-0 x-0)
-  (operation encryption-test (added-strand init 4)
-    (enc n (exp (gen) (mul y x alpha-0))) (0 3))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
-          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((obsv
-       (cat "Group id" group-1 (exp (gen) (mul y x alpha-0 (rec y-0)))))
-      (send
-        (enc (exp (gen) (mul y x alpha-0 (rec y-0) x-0)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul y x alpha-0 (rec x-0)))
-          (exp (gen) (mul y x alpha-0 (rec y-0) x-0)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x alpha-0))))))
-  (label 36)
-  (parent 31)
-  (unrealized (4 0) (4 2))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b name) (y x alpha alpha-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x (mul x (rec alpha) alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0)) (x x))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (deflistener (exp (gen) (mul y x alpha-0)))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 0) (2 0)) ((4 1) (0 3)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))
-  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul x alpha-0))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x alpha alpha-0)
-  (operation encryption-test
-    (added-listener (exp (gen) (mul y x alpha-0)))
-    (enc n (exp (gen) (mul y x alpha-0))) (0 3))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
-          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((recv (exp (gen) (mul y x alpha-0)))
-      (send (exp (gen) (mul y x alpha-0)))))
-  (label 37)
-  (parent 31)
-  (unrealized (4 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group text) (a b a-0 b-0 name) (x y x-0 alpha rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x x-0))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x-0))
-  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
-    (g (exp (gen) alpha)) (x x) (y (mul (rec x) y x-0)))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0))
-    ((2 1) (0 1)) ((3 3) (0 3)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0)))
-  (absent (x (exp (gen) alpha)) (x-0 (exp (gen) alpha))
-    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n x y x-0 alpha)
-  (operation state-passing-test (displaced 4 1 group-init 1)
-    (cat "Group id" group-0 (exp (gen) alpha-0)) (3 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x alpha)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha))
-          (exp (gen) (mul x alpha)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha))))))
-  (label 38)
-  (parent 33)
-  (unrealized (3 2))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 b-0 name)
-    (x y x-0 alpha alpha-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x x-0))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x-0))
-  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
-    (g (exp (gen) alpha-0)) (x x)
-    (y (mul (rec x) y x-0 alpha (rec alpha-0))))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 3) (0 3)) ((4 0) (3 0)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((4 0) (3 0)))
-  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha))
-    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n x y x-0 alpha alpha-0)
-  (operation state-passing-test (added-strand group-init 1)
-    (cat "Group id" group-0 (exp (gen) alpha-0)) (3 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha))
-          (exp (gen) (mul x alpha-0)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha)))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0)))))
-  (label 39)
-  (parent 33)
-  (unrealized (3 2))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group text) (a b name) (y x alpha rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x x))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x))
-  (deflistener (exp (gen) (mul y x alpha)))
-  (deflistener (cat (exp (gen) (mul y x)) alpha))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 1) (0 3)) ((4 1) (3 0)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))
-  (absent (x (exp (gen) alpha)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul x alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x alpha)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y x)) alpha))
-    (exp (gen) (mul y x alpha)) (3 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x alpha)) (privk a))))
-    ((recv (exp (gen) (mul y x alpha)))
-      (send (exp (gen) (mul y x alpha))))
-    ((recv (cat (exp (gen) (mul y x)) alpha))
-      (send (cat (exp (gen) (mul y x)) alpha))))
-  (label 40)
-  (parent 34)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group text) (a b name) (y x alpha rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x x))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x))
-  (deflistener (exp (gen) (mul y x alpha)))
-  (deflistener (cat (exp (gen) (mul y alpha)) x))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 1) (0 3)) ((4 1) (3 0)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))
-  (absent (x (exp (gen) alpha)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul x alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x alpha)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y alpha)) x))
-    (exp (gen) (mul y x alpha)) (3 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x alpha)) (privk a))))
-    ((recv (exp (gen) (mul y x alpha)))
-      (send (exp (gen) (mul y x alpha))))
-    ((recv (cat (exp (gen) (mul y alpha)) x))
-      (send (cat (exp (gen) (mul y alpha)) x))))
-  (label 41)
-  (parent 34)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group text) (a b name) (y x alpha rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x x))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x))
-  (deflistener (exp (gen) (mul y x alpha)))
-  (deflistener (cat (exp (gen) (mul x alpha)) y))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 1) (0 3)) ((4 1) (3 0)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)))
-  (absent (x (exp (gen) alpha)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul x alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x alpha)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x alpha)) y))
-    (exp (gen) (mul y x alpha)) (3 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x alpha)) (privk a))))
-    ((recv (exp (gen) (mul y x alpha)))
-      (send (exp (gen) (mul y x alpha))))
-    ((recv (cat (exp (gen) (mul x alpha)) y))
-      (send (cat (exp (gen) (mul x alpha)) y))))
-  (label 42)
-  (parent 34)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (b a b-0 name) (alpha alpha-0 y x rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) alpha-0 x)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (defstrand init 4 (n n) (group group-0) (a a) (b b-0)
-    (g (exp (gen) alpha-0)) (x x) (y y))
-  (deflistener (cat (exp (gen) alpha-0) y))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (3 0))
-    ((3 1) (0 1)) ((3 3) (0 3)) ((4 1) (3 2)))
-  (leadsto ((1 0) (0 0)) ((2 0) (3 0)))
-  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul alpha-0 x))))
-  (non-orig (privk b) (privk a))
-  (uniq-gen n alpha alpha-0 y x)
-  (operation nonce-test (added-listener (cat (exp (gen) alpha-0) y))
-    (exp (gen) (mul alpha-0 y)) (3 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul alpha-0 x)) (privk a)))
-      (send
-        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha-0 x))
-          (privk b))) (recv (enc n (exp (gen) (mul alpha-0 y x))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul alpha-0 x)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul alpha-0 y)) (exp (gen) (mul alpha-0 x))
-          (privk b-0))) (send (enc n (exp (gen) (mul alpha-0 y x)))))
-    ((recv (cat (exp (gen) alpha-0) y))
-      (send (cat (exp (gen) alpha-0) y))))
-  (label 43)
-  (parent 35)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (b a b-0 name) (alpha alpha-0 y x rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) alpha-0 x)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (defstrand init 4 (n n) (group group-0) (a a) (b b-0)
-    (g (exp (gen) alpha-0)) (x x) (y y))
-  (deflistener (cat (exp (gen) y) alpha-0))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (3 0))
-    ((3 1) (0 1)) ((3 3) (0 3)) ((4 1) (3 2)))
-  (leadsto ((1 0) (0 0)) ((2 0) (3 0)))
-  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul alpha-0 x))))
-  (non-orig (privk b) (privk a))
-  (uniq-gen n alpha alpha-0 y x)
-  (operation nonce-test (added-listener (cat (exp (gen) y) alpha-0))
-    (exp (gen) (mul alpha-0 y)) (3 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul alpha-0 x)) (privk a)))
-      (send
-        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha-0 x))
-          (privk b))) (recv (enc n (exp (gen) (mul alpha-0 y x))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul alpha-0 x)) (privk a)))
-      (recv
-        (enc (exp (gen) (mul alpha-0 y)) (exp (gen) (mul alpha-0 x))
-          (privk b-0))) (send (enc n (exp (gen) (mul alpha-0 y x)))))
-    ((recv (cat (exp (gen) y) alpha-0))
-      (send (cat (exp (gen) y) alpha-0))))
-  (label 44)
-  (parent 35)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 b-0 name)
-    (x y x-0 alpha alpha-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha-0)) (y y) (x (mul x-0 alpha (rec alpha-0))))
-  (defstrand group-init 1 (group group) (alpha alpha-0))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha)) (x x-0))
-  (defstrand group-init 1 (group group-0) (alpha alpha))
-  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
-    (g (exp (gen) alpha-0)) (x x)
-    (y (mul (rec x) y x-0 alpha (rec alpha-0))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (4 0))
-    ((2 1) (0 1)) ((3 0) (2 0)) ((4 3) (0 3)))
-  (leadsto ((1 0) (0 0)) ((1 0) (4 0)) ((3 0) (2 0)))
-  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha))
-    (y (exp (gen) alpha-0)) (y (exp (gen) (mul x-0 alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n x y x-0 alpha alpha-0)
-  (operation state-passing-test (displaced 5 1 group-init 1)
-    (cat "Group id" group-1 (exp (gen) alpha-1)) (4 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha-0)))
-      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul x-0 alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha-0))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha))
-          (exp (gen) (mul x alpha-0)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha))))))
-  (label 45)
-  (parent 36)
-  (unrealized (4 2))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 b-0 name)
-    (alpha x y x-0 alpha-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) x-0 alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
-    (x x-0))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
-    (g (exp (gen) alpha-0)) (x x) (y (mul (rec x) y x-0)))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((4 3) (0 3)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)) ((3 0) (4 0)))
-  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha-0))
-    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha-0))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n alpha x y x-0 alpha-0)
-  (operation state-passing-test (displaced 5 3 group-init 1)
-    (cat "Group id" group-1 (exp (gen) alpha-1)) (4 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x-0 alpha-0)) (privk a)))
-      (send
-        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x-0 alpha-0))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha-0))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha-0))
-          (exp (gen) (mul x alpha-0)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha-0))))))
-  (label 46)
-  (parent 36)
-  (unrealized (4 2))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)
-    (alpha x y x-0 alpha-0 alpha-1 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) x-0 alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
-    (x x-0))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (defstrand init 4 (n n) (group group-1) (a a-0) (b b-0)
-    (g (exp (gen) alpha-1)) (x x)
-    (y (mul (rec x) y x-0 alpha-0 (rec alpha-1))))
-  (defstrand group-init 1 (group group-1) (alpha alpha-1))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 0) (2 0)) ((4 3) (0 3)) ((5 0) (4 0)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)) ((5 0) (4 0)))
-  (absent (x (exp (gen) alpha-1)) (x-0 (exp (gen) alpha-0))
-    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha-0))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n alpha x y x-0 alpha-0 alpha-1)
-  (operation state-passing-test (added-strand group-init 1)
-    (cat "Group id" group-1 (exp (gen) alpha-1)) (4 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x-0 alpha-0)) (privk a)))
-      (send
-        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x-0 alpha-0))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha-0))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((obsv (cat "Group id" group-1 (exp (gen) alpha-1)))
-      (send (enc (exp (gen) (mul x alpha-1)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha-0))
-          (exp (gen) (mul x alpha-1)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha-0)))))
-    ((init (cat "Group id" group-1 (exp (gen) alpha-1)))))
-  (label 47)
-  (parent 36)
-  (unrealized (4 2))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b name) (y x alpha alpha-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x (mul x (rec alpha) alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0)) (x x))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (deflistener (exp (gen) (mul y x alpha-0)))
-  (deflistener (cat (exp (gen) (mul y x)) alpha-0))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 0) (2 0)) ((4 1) (0 3)) ((5 1) (4 0)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))
-  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul x alpha-0))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x alpha alpha-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y x)) alpha-0))
-    (exp (gen) (mul y x alpha-0)) (4 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
-          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((recv (exp (gen) (mul y x alpha-0)))
-      (send (exp (gen) (mul y x alpha-0))))
-    ((recv (cat (exp (gen) (mul y x)) alpha-0))
-      (send (cat (exp (gen) (mul y x)) alpha-0))))
-  (label 48)
-  (parent 37)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b name) (y x alpha alpha-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x (mul x (rec alpha) alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0)) (x x))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (deflistener (exp (gen) (mul y x alpha-0)))
-  (deflistener (cat (exp (gen) (mul y alpha-0)) x))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 0) (2 0)) ((4 1) (0 3)) ((5 1) (4 0)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))
-  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul x alpha-0))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x alpha alpha-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y alpha-0)) x))
-    (exp (gen) (mul y x alpha-0)) (4 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
-          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((recv (exp (gen) (mul y x alpha-0)))
-      (send (exp (gen) (mul y x alpha-0))))
-    ((recv (cat (exp (gen) (mul y alpha-0)) x))
-      (send (cat (exp (gen) (mul y alpha-0)) x))))
-  (label 49)
-  (parent 37)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b name) (y x alpha alpha-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x (mul x (rec alpha) alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0)) (x x))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (deflistener (exp (gen) (mul y x alpha-0)))
-  (deflistener (cat (exp (gen) (mul x alpha-0)) y))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 0) (2 0)) ((4 1) (0 3)) ((5 1) (4 0)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)))
-  (absent (x (exp (gen) alpha-0)) (y (exp (gen) alpha))
-    (y (exp (gen) (mul x alpha-0))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x alpha alpha-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x alpha-0)) y))
-    (exp (gen) (mul y x alpha-0)) (4 0))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
-          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((recv (exp (gen) (mul y x alpha-0)))
-      (send (exp (gen) (mul y x alpha-0))))
-    ((recv (cat (exp (gen) (mul x alpha-0)) y))
-      (send (cat (exp (gen) (mul x alpha-0)) y))))
-  (label 50)
-  (parent 37)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group text) (a b a-0 b-0 name) (x y x-0 alpha rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x x-0))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x-0))
-  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
-    (g (exp (gen) alpha)) (x x) (y (mul (rec x) y x-0)))
-  (deflistener (cat (exp (gen) (mul (rec x) y x-0)) alpha))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0))
-    ((2 1) (0 1)) ((3 1) (4 0)) ((3 3) (0 3)) ((4 1) (3 2)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0)))
-  (absent (x (exp (gen) alpha)) (x-0 (exp (gen) alpha))
-    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n x y x-0 alpha)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec x) y x-0)) alpha))
-    (exp (gen) (mul (rec x) y x-0 alpha)) (3 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x alpha)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha))
-          (exp (gen) (mul x alpha)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha)))))
-    ((recv (cat (exp (gen) (mul (rec x) y x-0)) alpha))
-      (send (cat (exp (gen) (mul (rec x) y x-0)) alpha))))
-  (label 51)
-  (parent 38)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group text) (a b a-0 b-0 name) (x y x-0 alpha rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x x-0))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x-0))
-  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
-    (g (exp (gen) alpha)) (x x) (y (mul (rec x) y x-0)))
-  (deflistener (cat (exp (gen) (mul (rec x) y alpha)) x-0))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0))
-    ((2 1) (0 1)) ((3 1) (4 0)) ((3 3) (0 3)) ((4 1) (3 2)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0)))
-  (absent (x (exp (gen) alpha)) (x-0 (exp (gen) alpha))
-    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n x y x-0 alpha)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec x) y alpha)) x-0))
-    (exp (gen) (mul (rec x) y x-0 alpha)) (3 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x alpha)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha))
-          (exp (gen) (mul x alpha)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha)))))
-    ((recv (cat (exp (gen) (mul (rec x) y alpha)) x-0))
-      (send (cat (exp (gen) (mul (rec x) y alpha)) x-0))))
-  (label 52)
-  (parent 38)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group text) (a b a-0 b-0 name) (x y x-0 alpha rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x x-0))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x-0))
-  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
-    (g (exp (gen) alpha)) (x x) (y (mul (rec x) y x-0)))
-  (deflistener (cat (exp (gen) (mul (rec x) x-0 alpha)) y))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0))
-    ((2 1) (0 1)) ((3 1) (4 0)) ((3 3) (0 3)) ((4 1) (3 2)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0)))
-  (absent (x (exp (gen) alpha)) (x-0 (exp (gen) alpha))
-    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n x y x-0 alpha)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec x) x-0 alpha)) y))
-    (exp (gen) (mul (rec x) y x-0 alpha)) (3 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x alpha)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha))
-          (exp (gen) (mul x alpha)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha)))))
-    ((recv (cat (exp (gen) (mul (rec x) x-0 alpha)) y))
-      (send (cat (exp (gen) (mul (rec x) x-0 alpha)) y))))
-  (label 53)
-  (parent 38)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group text) (a b a-0 b-0 name) (x y x-0 alpha rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x x-0))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x-0))
-  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
-    (g (exp (gen) alpha)) (x x) (y (mul (rec x) y x-0)))
-  (deflistener (cat (exp (gen) (mul y x-0 alpha)) x))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0))
-    ((2 1) (0 1)) ((3 1) (4 0)) ((3 3) (0 3)) ((4 1) (3 2)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0)))
-  (absent (x (exp (gen) alpha)) (x-0 (exp (gen) alpha))
-    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n x y x-0 alpha)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y x-0 alpha)) x))
-    (exp (gen) (mul (rec x) y x-0 alpha)) (3 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x alpha)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha))
-          (exp (gen) (mul x alpha)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha)))))
-    ((recv (cat (exp (gen) (mul y x-0 alpha)) x))
-      (send (cat (exp (gen) (mul y x-0 alpha)) x))))
-  (label 54)
-  (parent 38)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 b-0 name)
-    (x y x-0 alpha alpha-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x x-0))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x-0))
-  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
-    (g (exp (gen) alpha-0)) (x x)
-    (y (mul (rec x) y x-0 alpha (rec alpha-0))))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (deflistener (cat (exp (gen) (mul (rec x) y x-0)) alpha))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 1) (5 0)) ((3 3) (0 3)) ((4 0) (3 0)) ((5 1) (3 2)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((4 0) (3 0)))
-  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha))
-    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n x y x-0 alpha alpha-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec x) y x-0)) alpha))
-    (exp (gen) (mul (rec x) y x-0 alpha)) (3 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha))
-          (exp (gen) (mul x alpha-0)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha)))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((recv (cat (exp (gen) (mul (rec x) y x-0)) alpha))
-      (send (cat (exp (gen) (mul (rec x) y x-0)) alpha))))
-  (label 55)
-  (parent 39)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 b-0 name)
-    (x y x-0 alpha alpha-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x x-0))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x-0))
-  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
-    (g (exp (gen) alpha-0)) (x x)
-    (y (mul (rec x) y x-0 alpha (rec alpha-0))))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (deflistener (cat (exp (gen) (mul (rec x) y alpha)) x-0))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 1) (5 0)) ((3 3) (0 3)) ((4 0) (3 0)) ((5 1) (3 2)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((4 0) (3 0)))
-  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha))
-    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n x y x-0 alpha alpha-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec x) y alpha)) x-0))
-    (exp (gen) (mul (rec x) y x-0 alpha)) (3 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha))
-          (exp (gen) (mul x alpha-0)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha)))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((recv (cat (exp (gen) (mul (rec x) y alpha)) x-0))
-      (send (cat (exp (gen) (mul (rec x) y alpha)) x-0))))
-  (label 56)
-  (parent 39)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 b-0 name)
-    (x y x-0 alpha alpha-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x x-0))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x-0))
-  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
-    (g (exp (gen) alpha-0)) (x x)
-    (y (mul (rec x) y x-0 alpha (rec alpha-0))))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (deflistener (cat (exp (gen) (mul (rec x) x-0 alpha)) y))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 1) (5 0)) ((3 3) (0 3)) ((4 0) (3 0)) ((5 1) (3 2)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((4 0) (3 0)))
-  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha))
-    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n x y x-0 alpha alpha-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec x) x-0 alpha)) y))
-    (exp (gen) (mul (rec x) y x-0 alpha)) (3 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha))
-          (exp (gen) (mul x alpha-0)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha)))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((recv (cat (exp (gen) (mul (rec x) x-0 alpha)) y))
-      (send (cat (exp (gen) (mul (rec x) x-0 alpha)) y))))
-  (label 57)
-  (parent 39)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 b-0 name)
-    (x y x-0 alpha alpha-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x x-0))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha)) (x x-0))
-  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
-    (g (exp (gen) alpha-0)) (x x)
-    (y (mul (rec x) y x-0 alpha (rec alpha-0))))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (deflistener (cat (exp (gen) (mul y x-0 alpha)) x))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 1) (5 0)) ((3 3) (0 3)) ((4 0) (3 0)) ((5 1) (3 2)))
-  (leadsto ((1 0) (0 0)) ((1 0) (2 0)) ((4 0) (3 0)))
-  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha))
-    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n x y x-0 alpha alpha-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y x-0 alpha)) x))
-    (exp (gen) (mul (rec x) y x-0 alpha)) (3 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha))
-          (exp (gen) (mul x alpha-0)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha)))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((recv (cat (exp (gen) (mul y x-0 alpha)) x))
-      (send (cat (exp (gen) (mul y x-0 alpha)) x))))
-  (label 58)
-  (parent 39)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 b-0 name)
-    (x y x-0 alpha alpha-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha-0)) (y y) (x (mul x-0 alpha (rec alpha-0))))
-  (defstrand group-init 1 (group group) (alpha alpha-0))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha)) (x x-0))
-  (defstrand group-init 1 (group group-0) (alpha alpha))
-  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
-    (g (exp (gen) alpha-0)) (x x)
-    (y (mul (rec x) y x-0 alpha (rec alpha-0))))
-  (deflistener (cat (exp (gen) (mul (rec x) y x-0)) alpha))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (4 0))
-    ((2 1) (0 1)) ((3 0) (2 0)) ((4 1) (5 0)) ((4 3) (0 3))
-    ((5 1) (4 2)))
-  (leadsto ((1 0) (0 0)) ((1 0) (4 0)) ((3 0) (2 0)))
-  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha))
-    (y (exp (gen) alpha-0)) (y (exp (gen) (mul x-0 alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n x y x-0 alpha alpha-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec x) y x-0)) alpha))
-    (exp (gen) (mul (rec x) y x-0 alpha)) (4 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha-0)))
-      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul x-0 alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha-0))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha))
-          (exp (gen) (mul x alpha-0)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha)))))
-    ((recv (cat (exp (gen) (mul (rec x) y x-0)) alpha))
-      (send (cat (exp (gen) (mul (rec x) y x-0)) alpha))))
-  (label 59)
-  (parent 45)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 b-0 name)
-    (x y x-0 alpha alpha-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha-0)) (y y) (x (mul x-0 alpha (rec alpha-0))))
-  (defstrand group-init 1 (group group) (alpha alpha-0))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha)) (x x-0))
-  (defstrand group-init 1 (group group-0) (alpha alpha))
-  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
-    (g (exp (gen) alpha-0)) (x x)
-    (y (mul (rec x) y x-0 alpha (rec alpha-0))))
-  (deflistener (cat (exp (gen) (mul (rec x) y alpha)) x-0))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (4 0))
-    ((2 1) (0 1)) ((3 0) (2 0)) ((4 1) (5 0)) ((4 3) (0 3))
-    ((5 1) (4 2)))
-  (leadsto ((1 0) (0 0)) ((1 0) (4 0)) ((3 0) (2 0)))
-  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha))
-    (y (exp (gen) alpha-0)) (y (exp (gen) (mul x-0 alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n x y x-0 alpha alpha-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec x) y alpha)) x-0))
-    (exp (gen) (mul (rec x) y x-0 alpha)) (4 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha-0)))
-      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul x-0 alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha-0))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha))
-          (exp (gen) (mul x alpha-0)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha)))))
-    ((recv (cat (exp (gen) (mul (rec x) y alpha)) x-0))
-      (send (cat (exp (gen) (mul (rec x) y alpha)) x-0))))
-  (label 60)
-  (parent 45)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 b-0 name)
-    (x y x-0 alpha alpha-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha-0)) (y y) (x (mul x-0 alpha (rec alpha-0))))
-  (defstrand group-init 1 (group group) (alpha alpha-0))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha)) (x x-0))
-  (defstrand group-init 1 (group group-0) (alpha alpha))
-  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
-    (g (exp (gen) alpha-0)) (x x)
-    (y (mul (rec x) y x-0 alpha (rec alpha-0))))
-  (deflistener (cat (exp (gen) (mul (rec x) x-0 alpha)) y))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (4 0))
-    ((2 1) (0 1)) ((3 0) (2 0)) ((4 1) (5 0)) ((4 3) (0 3))
-    ((5 1) (4 2)))
-  (leadsto ((1 0) (0 0)) ((1 0) (4 0)) ((3 0) (2 0)))
-  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha))
-    (y (exp (gen) alpha-0)) (y (exp (gen) (mul x-0 alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n x y x-0 alpha alpha-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec x) x-0 alpha)) y))
-    (exp (gen) (mul (rec x) y x-0 alpha)) (4 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha-0)))
-      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul x-0 alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha-0))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha))
-          (exp (gen) (mul x alpha-0)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha)))))
-    ((recv (cat (exp (gen) (mul (rec x) x-0 alpha)) y))
-      (send (cat (exp (gen) (mul (rec x) x-0 alpha)) y))))
-  (label 61)
-  (parent 45)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 b-0 name)
-    (x y x-0 alpha alpha-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha-0)) (y y) (x (mul x-0 alpha (rec alpha-0))))
-  (defstrand group-init 1 (group group) (alpha alpha-0))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha)) (x x-0))
-  (defstrand group-init 1 (group group-0) (alpha alpha))
-  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
-    (g (exp (gen) alpha-0)) (x x)
-    (y (mul (rec x) y x-0 alpha (rec alpha-0))))
-  (deflistener (cat (exp (gen) (mul y x-0 alpha)) x))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (4 0))
-    ((2 1) (0 1)) ((3 0) (2 0)) ((4 1) (5 0)) ((4 3) (0 3))
-    ((5 1) (4 2)))
-  (leadsto ((1 0) (0 0)) ((1 0) (4 0)) ((3 0) (2 0)))
-  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha))
-    (y (exp (gen) alpha-0)) (y (exp (gen) (mul x-0 alpha))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n x y x-0 alpha alpha-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y x-0 alpha)) x))
-    (exp (gen) (mul (rec x) y x-0 alpha)) (4 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha-0)))
-      (recv (enc (exp (gen) (mul x-0 alpha)) (privk a)))
-      (send
-        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul x-0 alpha))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha-0))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha)))
-      (send (enc (exp (gen) (mul x-0 alpha)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha))))
-    ((obsv (cat "Group id" group (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha))
-          (exp (gen) (mul x alpha-0)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha)))))
-    ((recv (cat (exp (gen) (mul y x-0 alpha)) x))
-      (send (cat (exp (gen) (mul y x-0 alpha)) x))))
-  (label 62)
-  (parent 45)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 b-0 name)
-    (alpha x y x-0 alpha-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) x-0 alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
-    (x x-0))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
-    (g (exp (gen) alpha-0)) (x x) (y (mul (rec x) y x-0)))
-  (deflistener (cat (exp (gen) (mul (rec x) y x-0)) alpha-0))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (5 0)) ((4 3) (0 3))
-    ((5 1) (4 2)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)) ((3 0) (4 0)))
-  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha-0))
-    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha-0))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n alpha x y x-0 alpha-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec x) y x-0)) alpha-0))
-    (exp (gen) (mul (rec x) y x-0 alpha-0)) (4 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x-0 alpha-0)) (privk a)))
-      (send
-        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x-0 alpha-0))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha-0))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha-0))
-          (exp (gen) (mul x alpha-0)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha-0)))))
-    ((recv (cat (exp (gen) (mul (rec x) y x-0)) alpha-0))
-      (send (cat (exp (gen) (mul (rec x) y x-0)) alpha-0))))
-  (label 63)
-  (parent 46)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 b-0 name)
-    (alpha x y x-0 alpha-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) x-0 alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
-    (x x-0))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
-    (g (exp (gen) alpha-0)) (x x) (y (mul (rec x) y x-0)))
-  (deflistener (cat (exp (gen) (mul (rec x) y alpha-0)) x-0))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (5 0)) ((4 3) (0 3))
-    ((5 1) (4 2)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)) ((3 0) (4 0)))
-  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha-0))
-    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha-0))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n alpha x y x-0 alpha-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec x) y alpha-0)) x-0))
-    (exp (gen) (mul (rec x) y x-0 alpha-0)) (4 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x-0 alpha-0)) (privk a)))
-      (send
-        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x-0 alpha-0))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha-0))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha-0))
-          (exp (gen) (mul x alpha-0)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha-0)))))
-    ((recv (cat (exp (gen) (mul (rec x) y alpha-0)) x-0))
-      (send (cat (exp (gen) (mul (rec x) y alpha-0)) x-0))))
-  (label 64)
-  (parent 46)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 b-0 name)
-    (alpha x y x-0 alpha-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) x-0 alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
-    (x x-0))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
-    (g (exp (gen) alpha-0)) (x x) (y (mul (rec x) y x-0)))
-  (deflistener (cat (exp (gen) (mul (rec x) x-0 alpha-0)) y))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (5 0)) ((4 3) (0 3))
-    ((5 1) (4 2)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)) ((3 0) (4 0)))
-  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha-0))
-    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha-0))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n alpha x y x-0 alpha-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec x) x-0 alpha-0)) y))
-    (exp (gen) (mul (rec x) y x-0 alpha-0)) (4 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x-0 alpha-0)) (privk a)))
-      (send
-        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x-0 alpha-0))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha-0))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha-0))
-          (exp (gen) (mul x alpha-0)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha-0)))))
-    ((recv (cat (exp (gen) (mul (rec x) x-0 alpha-0)) y))
-      (send (cat (exp (gen) (mul (rec x) x-0 alpha-0)) y))))
-  (label 65)
-  (parent 46)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 text) (a b a-0 b-0 name)
-    (alpha x y x-0 alpha-0 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) x-0 alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
-    (x x-0))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
-    (g (exp (gen) alpha-0)) (x x) (y (mul (rec x) y x-0)))
-  (deflistener (cat (exp (gen) (mul y x-0 alpha-0)) x))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (5 0)) ((4 3) (0 3))
-    ((5 1) (4 2)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)) ((3 0) (4 0)))
-  (absent (x (exp (gen) alpha-0)) (x-0 (exp (gen) alpha-0))
-    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha-0))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n alpha x y x-0 alpha-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y x-0 alpha-0)) x))
-    (exp (gen) (mul (rec x) y x-0 alpha-0)) (4 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x-0 alpha-0)) (privk a)))
-      (send
-        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x-0 alpha-0))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha-0))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x alpha-0)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha-0))
-          (exp (gen) (mul x alpha-0)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha-0)))))
-    ((recv (cat (exp (gen) (mul y x-0 alpha-0)) x))
-      (send (cat (exp (gen) (mul y x-0 alpha-0)) x))))
-  (label 66)
-  (parent 46)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)
-    (alpha x y x-0 alpha-0 alpha-1 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) x-0 alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
-    (x x-0))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (defstrand init 4 (n n) (group group-1) (a a-0) (b b-0)
-    (g (exp (gen) alpha-1)) (x x)
-    (y (mul (rec x) y x-0 alpha-0 (rec alpha-1))))
-  (defstrand group-init 1 (group group-1) (alpha alpha-1))
-  (deflistener (cat (exp (gen) (mul (rec x) y x-0)) alpha-0))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 0) (2 0)) ((4 1) (6 0)) ((4 3) (0 3)) ((5 0) (4 0))
-    ((6 1) (4 2)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)) ((5 0) (4 0)))
-  (absent (x (exp (gen) alpha-1)) (x-0 (exp (gen) alpha-0))
-    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha-0))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n alpha x y x-0 alpha-0 alpha-1)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec x) y x-0)) alpha-0))
-    (exp (gen) (mul (rec x) y x-0 alpha-0)) (4 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x-0 alpha-0)) (privk a)))
-      (send
-        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x-0 alpha-0))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha-0))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((obsv (cat "Group id" group-1 (exp (gen) alpha-1)))
-      (send (enc (exp (gen) (mul x alpha-1)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha-0))
-          (exp (gen) (mul x alpha-1)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha-0)))))
-    ((init (cat "Group id" group-1 (exp (gen) alpha-1))))
-    ((recv (cat (exp (gen) (mul (rec x) y x-0)) alpha-0))
-      (send (cat (exp (gen) (mul (rec x) y x-0)) alpha-0))))
-  (label 67)
-  (parent 47)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)
-    (alpha x y x-0 alpha-0 alpha-1 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) x-0 alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
-    (x x-0))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (defstrand init 4 (n n) (group group-1) (a a-0) (b b-0)
-    (g (exp (gen) alpha-1)) (x x)
-    (y (mul (rec x) y x-0 alpha-0 (rec alpha-1))))
-  (defstrand group-init 1 (group group-1) (alpha alpha-1))
-  (deflistener (cat (exp (gen) (mul (rec x) y alpha-0)) x-0))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 0) (2 0)) ((4 1) (6 0)) ((4 3) (0 3)) ((5 0) (4 0))
-    ((6 1) (4 2)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)) ((5 0) (4 0)))
-  (absent (x (exp (gen) alpha-1)) (x-0 (exp (gen) alpha-0))
-    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha-0))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n alpha x y x-0 alpha-0 alpha-1)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec x) y alpha-0)) x-0))
-    (exp (gen) (mul (rec x) y x-0 alpha-0)) (4 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x-0 alpha-0)) (privk a)))
-      (send
-        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x-0 alpha-0))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha-0))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((obsv (cat "Group id" group-1 (exp (gen) alpha-1)))
-      (send (enc (exp (gen) (mul x alpha-1)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha-0))
-          (exp (gen) (mul x alpha-1)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha-0)))))
-    ((init (cat "Group id" group-1 (exp (gen) alpha-1))))
-    ((recv (cat (exp (gen) (mul (rec x) y alpha-0)) x-0))
-      (send (cat (exp (gen) (mul (rec x) y alpha-0)) x-0))))
-  (label 68)
-  (parent 47)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)
-    (alpha x y x-0 alpha-0 alpha-1 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) x-0 alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
-    (x x-0))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (defstrand init 4 (n n) (group group-1) (a a-0) (b b-0)
-    (g (exp (gen) alpha-1)) (x x)
-    (y (mul (rec x) y x-0 alpha-0 (rec alpha-1))))
-  (defstrand group-init 1 (group group-1) (alpha alpha-1))
-  (deflistener (cat (exp (gen) (mul (rec x) x-0 alpha-0)) y))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 0) (2 0)) ((4 1) (6 0)) ((4 3) (0 3)) ((5 0) (4 0))
-    ((6 1) (4 2)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)) ((5 0) (4 0)))
-  (absent (x (exp (gen) alpha-1)) (x-0 (exp (gen) alpha-0))
-    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha-0))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n alpha x y x-0 alpha-0 alpha-1)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec x) x-0 alpha-0)) y))
-    (exp (gen) (mul (rec x) y x-0 alpha-0)) (4 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x-0 alpha-0)) (privk a)))
-      (send
-        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x-0 alpha-0))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha-0))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((obsv (cat "Group id" group-1 (exp (gen) alpha-1)))
-      (send (enc (exp (gen) (mul x alpha-1)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha-0))
-          (exp (gen) (mul x alpha-1)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha-0)))))
-    ((init (cat "Group id" group-1 (exp (gen) alpha-1))))
-    ((recv (cat (exp (gen) (mul (rec x) x-0 alpha-0)) y))
-      (send (cat (exp (gen) (mul (rec x) x-0 alpha-0)) y))))
-  (label 69)
-  (parent 47)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dh_sig2
-  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)
-    (alpha x y x-0 alpha-0 alpha-1 rndx))
-  (defstrand resp 5 (n n) (group group) (a a) (b b)
-    (g (exp (gen) alpha)) (y y) (x (mul (rec alpha) x-0 alpha-0)))
-  (defstrand group-init 1 (group group) (alpha alpha))
-  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
-    (x x-0))
-  (defstrand group-init 1 (group group-0) (alpha alpha-0))
-  (defstrand init 4 (n n) (group group-1) (a a-0) (b b-0)
-    (g (exp (gen) alpha-1)) (x x)
-    (y (mul (rec x) y x-0 alpha-0 (rec alpha-1))))
-  (defstrand group-init 1 (group group-1) (alpha alpha-1))
-  (deflistener (cat (exp (gen) (mul y x-0 alpha-0)) x))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((3 0) (2 0)) ((4 1) (6 0)) ((4 3) (0 3)) ((5 0) (4 0))
-    ((6 1) (4 2)))
-  (leadsto ((1 0) (0 0)) ((3 0) (2 0)) ((5 0) (4 0)))
-  (absent (x (exp (gen) alpha-1)) (x-0 (exp (gen) alpha-0))
-    (y (exp (gen) alpha)) (y (exp (gen) (mul x-0 alpha-0))))
-  (non-orig (privk a) (privk b))
-  (uniq-gen n alpha x y x-0 alpha-0 alpha-1)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y x-0 alpha-0)) x))
-    (exp (gen) (mul (rec x) y x-0 alpha-0)) (4 2))
-  (traces
-    ((obsv (cat "Group id" group (exp (gen) alpha)))
-      (recv (enc (exp (gen) (mul x-0 alpha-0)) (privk a)))
-      (send
-        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x-0 alpha-0))
-          (privk b))) (recv (enc n (exp (gen) (mul y x-0 alpha-0))))
-      (send n)) ((init (cat "Group id" group (exp (gen) alpha))))
-    ((obsv (cat "Group id" group-0 (exp (gen) alpha-0)))
-      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a))))
-    ((init (cat "Group id" group-0 (exp (gen) alpha-0))))
-    ((obsv (cat "Group id" group-1 (exp (gen) alpha-1)))
-      (send (enc (exp (gen) (mul x alpha-1)) (privk a-0)))
-      (recv
-        (enc (exp (gen) (mul (rec x) y x-0 alpha-0))
-          (exp (gen) (mul x alpha-1)) (privk b-0)))
-      (send (enc n (exp (gen) (mul y x-0 alpha-0)))))
-    ((init (cat "Group id" group-1 (exp (gen) alpha-1))))
-    ((recv (cat (exp (gen) (mul y x-0 alpha-0)) x))
-      (send (cat (exp (gen) (mul y x-0 alpha-0)) x))))
-  (label 70)
-  (parent 47)
-  (unrealized (6 0))
+(herald "Signed group DH exchange (improved version)"
+  (algebra diffie-hellman) (limit 100))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/dh_group_sig.scm")
+(comment "Step count limited to 100")
+
+(defprotocol dh_sig diffie-hellman
+  (defrole group-init
+    (vars (alpha rndx) (group text) (group-dist chan))
+    (trace (send group-dist (cat "Group id" group (exp (gen) alpha))))
+    (uniq-gen alpha)
+    (conf group-dist))
+  (defrole init
+    (vars (x rndx) (y expt) (g base) (group text) (a b name)
+      (group-dist chan))
+    (trace (recv group-dist (cat "Group id" group g))
+      (send (enc (exp g x) (privk a)))
+      (recv (enc a (exp g y) (exp g x) (privk b)))
+      (send (enc "final" b (exp g y) (exp g x) (privk a))))
+    (uniq-gen x)
+    (auth group-dist))
+  (defrole resp
+    (vars (y rndx) (x expt) (g base) (group text) (a b name)
+      (group-dist chan))
+    (trace (recv group-dist (cat "Group id" group g))
+      (recv (enc (exp g x) (privk a)))
+      (send (enc a (exp g y) (exp g x) (privk b)))
+      (recv (enc "final" b (exp g y) (exp g x) (privk a))))
+    (uniq-gen y)
+    (absent (y x))
+    (auth group-dist))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dh_sig
+  (vars (group text) (a b name) (g base) (group-dist chan) (x rndx)
+    (y expt))
+  (defstrand init 4 (group group) (a a) (b b) (g g)
+    (group-dist group-dist) (x x) (y y))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (auth group-dist)
+  (traces
+    ((recv group-dist (cat "Group id" group g))
+      (send (enc (exp g x) (privk a)))
+      (recv (enc a (exp g y) (exp g x) (privk b)))
+      (send (enc "final" b (exp g y) (exp g x) (privk a)))))
+  (label 0)
+  (unrealized (0 0) (0 2))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group text) (a b name) (group-dist chan) (x rndx) (y expt)
+    (alpha rndx))
+  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x alpha)
+  (conf group-dist)
+  (auth group-dist)
+  (operation channel-test (added-strand group-init 1)
+    (ch-msg group-dist (cat "Group id" group (exp (gen) alpha))) (0 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b)))
+      (send
+        (enc "final" b (exp (gen) (mul y alpha))
+          (exp (gen) (mul x alpha)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (alpha x y rndx) (x-0 expt))
+  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x) (y (mul x y (rec x-0))))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a) (b b)
+    (g (exp (gen) (mul alpha x (rec x-0)))) (group-dist group-dist-0)
+    (y y) (x x-0))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen alpha x y)
+  (absent (y x-0))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation encryption-test (added-strand resp 3)
+    (enc a (exp (gen) (mul alpha x y (rec x-0)))
+      (exp (gen) (mul alpha x)) (privk b)) (0 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul alpha x y (rec x-0)))
+          (exp (gen) (mul alpha x)) (privk b)))
+      (send
+        (enc "final" b (exp (gen) (mul alpha x y (rec x-0)))
+          (exp (gen) (mul alpha x)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0
+       (cat "Group id" group-0 (exp (gen) (mul alpha x (rec x-0)))))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul alpha x y (rec x-0)))
+          (exp (gen) (mul alpha x)) (privk b)))))
+  (label 2)
+  (parent 1)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group text) (a b name) (group-dist chan) (y x alpha rndx))
+  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation channel-test (displaced 3 1 group-init 1)
+    (ch-msg group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+    (2 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b)))
+      (send
+        (enc "final" b (exp (gen) (mul y alpha))
+          (exp (gen) (mul x alpha)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b)))))
+  (label 3)
+  (parent 2)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha x alpha-0 rndx))
+  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x) (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a) (b b) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (y y) (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 0) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0)
+  (absent (y (mul alpha x (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation channel-test (added-strand group-init 1)
+    (ch-msg group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+    (2 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b)))
+      (send
+        (enc "final" b (exp (gen) (mul y alpha-0))
+          (exp (gen) (mul alpha x)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))))
+  (label 4)
+  (parent 2)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group text) (a b name) (group-dist chan) (y x alpha rndx))
+  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation generalization weakened ((0 1) (2 0)))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b)))
+      (send
+        (enc "final" b (exp (gen) (mul y alpha))
+          (exp (gen) (mul x alpha)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b)))))
+  (label 5)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (x x) (y y) (g (exp (gen) alpha)) (group group)
+        (group-dist group-dist))))
+  (origs))
+
+(defskeleton dh_sig
+  (vars (group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha x alpha-0 rndx))
+  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x) (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a) (b b) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (y y) (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2))
+    ((3 0) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0)
+  (absent (y (mul alpha x (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation generalization weakened ((0 1) (2 0)))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b)))
+      (send
+        (enc "final" b (exp (gen) (mul y alpha-0))
+          (exp (gen) (mul alpha x)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))))
+  (label 6)
+  (parent 4)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha x alpha-0 rndx))
+  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x) (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a) (b b) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (y y) (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 0) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0)
+  (absent (y (mul alpha x (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation generalization weakened ((1 0) (2 0)))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b)))
+      (send
+        (enc "final" b (exp (gen) (mul y alpha-0))
+          (exp (gen) (mul alpha x)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))))
+  (label 7)
+  (parent 6)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (x x) (y (mul y (rec alpha) alpha-0))
+        (g (exp (gen) alpha)) (group group) (group-dist group-dist))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol dh_sig diffie-hellman
+  (defrole group-init
+    (vars (alpha rndx) (group text) (group-dist chan))
+    (trace (send group-dist (cat "Group id" group (exp (gen) alpha))))
+    (uniq-gen alpha)
+    (conf group-dist))
+  (defrole init
+    (vars (x rndx) (y expt) (g base) (group text) (a b name)
+      (group-dist chan))
+    (trace (recv group-dist (cat "Group id" group g))
+      (send (enc (exp g x) (privk a)))
+      (recv (enc a (exp g y) (exp g x) (privk b)))
+      (send (enc "final" b (exp g y) (exp g x) (privk a))))
+    (uniq-gen x)
+    (auth group-dist))
+  (defrole resp
+    (vars (y rndx) (x expt) (g base) (group text) (a b name)
+      (group-dist chan))
+    (trace (recv group-dist (cat "Group id" group g))
+      (recv (enc (exp g x) (privk a)))
+      (send (enc a (exp g y) (exp g x) (privk b)))
+      (recv (enc "final" b (exp g y) (exp g x) (privk a))))
+    (uniq-gen y)
+    (absent (y x))
+    (auth group-dist))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dh_sig
+  (vars (group text) (a b name) (g base) (group-dist chan) (y rndx)
+    (x expt))
+  (defstrand resp 4 (group group) (a a) (b b) (g g)
+    (group-dist group-dist) (y y) (x x))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y)
+  (absent (y x))
+  (auth group-dist)
+  (traces
+    ((recv group-dist (cat "Group id" group g))
+      (recv (enc (exp g x) (privk a)))
+      (send (enc a (exp g y) (exp g x) (privk b)))
+      (recv (enc "final" b (exp g y) (exp g x) (privk a)))))
+  (label 8)
+  (unrealized (0 0) (0 1) (0 3))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group text) (a b name) (group-dist chan) (y rndx) (x expt)
+    (alpha rndx))
+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation channel-test (added-strand group-init 1)
+    (ch-msg group-dist (cat "Group id" group (exp (gen) alpha))) (0 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b)))
+      (recv
+        (enc "final" b (exp (gen) (mul y alpha))
+          (exp (gen) (mul x alpha)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha)))))
+  (label 9)
+  (parent 8)
+  (unrealized (0 1) (0 3))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y rndx) (x expt) (alpha x-0 rndx))
+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a)
+    (g (exp (gen) (mul x alpha (rec x-0)))) (group-dist group-dist-0)
+    (x x-0))
+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x-0)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation encryption-test (added-strand init 2)
+    (enc (exp (gen) (mul x alpha)) (privk a)) (0 1))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b)))
+      (recv
+        (enc "final" b (exp (gen) (mul y alpha))
+          (exp (gen) (mul x alpha)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0
+       (cat "Group id" group-0 (exp (gen) (mul x alpha (rec x-0)))))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))))
+  (label 10)
+  (parent 9)
+  (unrealized (0 3) (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group text) (a b name) (group-dist chan) (y x alpha rndx))
+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation channel-test (displaced 3 1 group-init 1)
+    (ch-msg group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+    (2 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b)))
+      (recv
+        (enc "final" b (exp (gen) (mul y alpha))
+          (exp (gen) (mul x alpha)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))))
+  (label 11)
+  (parent 10)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha x alpha-0 rndx))
+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)) ((3 0) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation channel-test (added-strand group-init 1)
+    (ch-msg group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+    (2 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b)))
+      (recv
+        (enc "final" b (exp (gen) (mul y alpha))
+          (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))))
+  (label 12)
+  (parent 10)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group text) (a b name) (group-dist chan) (alpha y x rndx))
+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x) (y y))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((2 3) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen alpha y x)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation encryption-test (displaced 2 3 init 4)
+    (enc "final" b (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x-0))
+      (privk a)) (0 3))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk b)))
+      (recv
+        (enc "final" b (exp (gen) (mul alpha y))
+          (exp (gen) (mul alpha x)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk b)))
+      (send
+        (enc "final" b (exp (gen) (mul alpha y))
+          (exp (gen) (mul alpha x)) (privk a)))))
+  (label 13)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (y y) (x x) (g (exp (gen) alpha)) (group group)
+        (group-dist group-dist))))
+  (origs))
+
+(defskeleton dh_sig
+  (vars (group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (alpha y x x-0 rndx))
+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (defstrand init 4 (group group-0) (a a) (b b)
+    (g (exp (gen) (mul alpha x (rec x-0)))) (group-dist group-dist-0)
+    (x x-0) (y (mul y (rec x) x-0)))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((2 1) (3 0)) ((3 3) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen alpha y x x-0)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation encryption-test (added-strand init 4)
+    (enc "final" b (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+      (privk a)) (0 3))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk b)))
+      (recv
+        (enc "final" b (exp (gen) (mul alpha y))
+          (exp (gen) (mul alpha x)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a))))
+    ((recv group-dist-0
+       (cat "Group id" group-0 (exp (gen) (mul alpha x (rec x-0)))))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk b)))
+      (send
+        (enc "final" b (exp (gen) (mul alpha y))
+          (exp (gen) (mul alpha x)) (privk a)))))
+  (label 14)
+  (parent 11)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig
+  (vars (group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha alpha-0 x rndx))
+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x (mul (rec alpha) alpha-0 x)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (group group-0) (a a) (b b) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x) (y (mul y alpha (rec alpha-0))))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (3 0))
+    ((3 1) (0 1)) ((3 3) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha alpha-0 x)
+  (absent (y (mul (rec alpha) alpha-0 x)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation encryption-test (displaced 2 4 init 4)
+    (enc "final" b (exp (gen) (mul y alpha))
+      (exp (gen) (mul x-0 alpha-0)) (privk a)) (0 3))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul alpha-0 x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul alpha-0 x))
+          (privk b)))
+      (recv
+        (enc "final" b (exp (gen) (mul y alpha))
+          (exp (gen) (mul alpha-0 x)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul alpha-0 x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul alpha-0 x))
+          (privk b)))
+      (send
+        (enc "final" b (exp (gen) (mul y alpha))
+          (exp (gen) (mul alpha-0 x)) (privk a)))))
+  (label 15)
+  (parent 12)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group group-0 group-1 text) (a b name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (y alpha x alpha-0 x-0 rndx))
+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (group group-1) (a a) (b b)
+    (g (exp (gen) (mul x alpha-0 (rec x-0)))) (group-dist group-dist-1)
+    (x x-0) (y (mul y alpha (rec x) (rec alpha-0) x-0)))
+  (precedes ((0 2) (4 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((2 1) (4 0)) ((3 0) (2 0)) ((4 3) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0 x-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation encryption-test (added-strand init 4)
+    (enc "final" b (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+      (privk a)) (0 3))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b)))
+      (recv
+        (enc "final" b (exp (gen) (mul y alpha))
+          (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-1
+       (cat "Group id" group-1 (exp (gen) (mul x alpha-0 (rec x-0)))))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b)))
+      (send
+        (enc "final" b (exp (gen) (mul y alpha))
+          (exp (gen) (mul x alpha-0)) (privk a)))))
+  (label 16)
+  (parent 12)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig
+  (vars (group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha alpha-0 x rndx))
+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x (mul (rec alpha) alpha-0 x)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (group group-0) (a a) (b b) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x) (y (mul y alpha (rec alpha-0))))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (3 0)) ((3 1) (0 1))
+    ((3 3) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha alpha-0 x)
+  (absent (y (mul (rec alpha) alpha-0 x)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation generalization weakened ((1 0) (3 0)))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul alpha-0 x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul alpha-0 x))
+          (privk b)))
+      (recv
+        (enc "final" b (exp (gen) (mul y alpha))
+          (exp (gen) (mul alpha-0 x)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul alpha-0 x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul alpha-0 x))
+          (privk b)))
+      (send
+        (enc "final" b (exp (gen) (mul y alpha))
+          (exp (gen) (mul alpha-0 x)) (privk a)))))
+  (label 17)
+  (parent 15)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (y y) (x (mul (rec alpha) alpha-0 x))
+        (g (exp (gen) alpha)) (group group) (group-dist group-dist))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol dh_sig2 diffie-hellman
+  (defrole group-init
+    (vars (alpha rndx) (group text) (group-dist chan))
+    (trace (send group-dist (cat "Group id" group (exp (gen) alpha))))
+    (uniq-gen alpha)
+    (conf group-dist))
+  (defrole init
+    (vars (x rndx) (y expt) (g base) (n group text) (a b name)
+      (group-dist chan))
+    (trace (recv group-dist (cat "Group id" group g))
+      (send (enc (exp g x) (privk a)))
+      (recv (enc a (exp g y) (exp g x) (privk b)))
+      (send (enc n b (exp g (mul x y)))) (recv n))
+    (uniq-gen n x)
+    (auth group-dist))
+  (defrole resp
+    (vars (y rndx) (x expt) (g base) (n group text) (a b name)
+      (group-dist chan))
+    (trace (recv group-dist (cat "Group id" group g))
+      (recv (enc (exp g x) (privk a)))
+      (send (enc a (exp g y) (exp g x) (privk b)))
+      (recv (enc n b (exp g (mul y x)))) (send n))
+    (uniq-gen y)
+    (absent (y x))
+    (auth group-dist))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (g base) (group-dist chan) (x rndx)
+    (y expt))
+  (defstrand init 5 (n n) (group group) (a a) (b b) (g g)
+    (group-dist group-dist) (x x) (y y))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n x)
+  (auth group-dist)
+  (traces
+    ((recv group-dist (cat "Group id" group g))
+      (send (enc (exp g x) (privk a)))
+      (recv (enc a (exp g y) (exp g x) (privk b)))
+      (send (enc n b (exp g (mul x y)))) (recv n)))
+  (label 18)
+  (unrealized (0 0) (0 2))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (group-dist chan) (x rndx) (y expt)
+    (alpha rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n x alpha)
+  (conf group-dist)
+  (auth group-dist)
+  (operation channel-test (added-strand group-init 1)
+    (ch-msg group-dist (cat "Group id" group (exp (gen) alpha))) (0 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (send (enc n b (exp (gen) (mul x y alpha))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha)))))
+  (label 19)
+  (parent 18)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (alpha x y rndx) (x-0 expt))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x)
+    (y (mul x y (rec x-0))))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a) (b b)
+    (g (exp (gen) (mul alpha x (rec x-0)))) (group-dist group-dist-0)
+    (y y) (x x-0))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n alpha x y)
+  (absent (y x-0))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation encryption-test (added-strand resp 3)
+    (enc a (exp (gen) (mul alpha x y (rec x-0)))
+      (exp (gen) (mul alpha x)) (privk b)) (0 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul alpha x y (rec x-0)))
+          (exp (gen) (mul alpha x)) (privk b)))
+      (send (enc n b (exp (gen) (mul alpha x x y (rec x-0))))) (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0
+       (cat "Group id" group-0 (exp (gen) (mul alpha x (rec x-0)))))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul alpha x y (rec x-0)))
+          (exp (gen) (mul alpha x)) (privk b)))))
+  (label 20)
+  (parent 19)
+  (unrealized (0 4) (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (group-dist chan) (y x alpha rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation channel-test (displaced 3 1 group-init 1)
+    (ch-msg group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+    (2 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (send (enc n b (exp (gen) (mul y x alpha))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b)))))
+  (label 21)
+  (parent 20)
+  (unrealized (0 4))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha x alpha-0 rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x)
+    (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a) (b b) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (y y) (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 0) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y alpha x alpha-0)
+  (absent (y (mul alpha x (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation channel-test (added-strand group-init 1)
+    (ch-msg group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+    (2 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n b (exp (gen) (mul y x alpha-0))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))))
+  (label 22)
+  (parent 20)
+  (unrealized (0 4))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (b a name) (group-dist chan) (alpha x y rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (precedes ((0 1) (2 0)) ((0 3) (2 3)) ((1 0) (0 0)) ((2 2) (0 2))
+    ((2 4) (0 4)))
+  (non-orig (privk b) (privk a))
+  (uniq-gen n alpha x y)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation nonce-test (displaced 2 3 resp 5) n (0 4)
+    (enc n b (exp (gen) (mul y-0 x-0 alpha))))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n b (exp (gen) (mul alpha x y))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk b))) (recv (enc n b (exp (gen) (mul alpha x y))))
+      (send n)))
+  (label 23)
+  (parent 21)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 name)
+    (group-dist group-dist-0 chan) (y x alpha y-0 rndx) (x-0 expt))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (defstrand resp 5 (n n) (group group-0) (a a-0) (b b)
+    (g (exp (gen) (mul y x alpha (rec y-0) (rec x-0))))
+    (group-dist group-dist-0) (y y-0) (x x-0))
+  (precedes ((0 1) (2 0)) ((0 3) (3 3)) ((1 0) (0 0)) ((2 2) (0 2))
+    ((2 2) (3 0)) ((3 4) (0 4)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha y-0)
+  (absent (y x) (y-0 x-0))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation nonce-test (added-strand resp 5) n (0 4)
+    (enc n b (exp (gen) (mul y x alpha))))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (send (enc n b (exp (gen) (mul y x alpha))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))))
+    ((recv group-dist-0
+       (cat "Group id" group-0
+         (exp (gen) (mul y x alpha (rec y-0) (rec x-0)))))
+      (recv (enc (exp (gen) (mul y x alpha (rec y-0))) (privk a-0)))
+      (send
+        (enc a-0 (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul y x alpha (rec y-0))) (privk b)))
+      (recv (enc n b (exp (gen) (mul y x alpha)))) (send n)))
+  (label 24)
+  (parent 21)
+  (unrealized (3 0) (3 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (group-dist chan) (y x alpha rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (3 0))
+    ((3 1) (0 4)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation nonce-test (added-listener (exp (gen) (mul y x alpha))) n
+    (0 4) (enc n b (exp (gen) (mul y x alpha))))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (send (enc n b (exp (gen) (mul y x alpha))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha)))))
+  (label 25)
+  (parent 21)
+  (unrealized (3 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (y alpha x alpha-0 y-0 rndx) (x-0 expt))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x)
+    (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a) (b b) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (y y) (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand resp 5 (n n) (group group-1) (a a-0) (b b)
+    (g (exp (gen) (mul y x alpha-0 (rec y-0) (rec x-0))))
+    (group-dist group-dist-1) (y y-0) (x x-0))
+  (precedes ((0 1) (2 0)) ((0 3) (4 3)) ((1 0) (0 0)) ((2 2) (0 2))
+    ((2 2) (4 0)) ((3 0) (2 0)) ((4 4) (0 4)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y alpha x alpha-0 y-0)
+  (absent (y (mul alpha x (rec alpha-0))) (y-0 x-0))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test (added-strand resp 5) n (0 4)
+    (enc n b (exp (gen) (mul y x alpha-0))))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n b (exp (gen) (mul y x alpha-0))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-1
+       (cat "Group id" group-1
+         (exp (gen) (mul y x alpha-0 (rec y-0) (rec x-0)))))
+      (recv (enc (exp (gen) (mul y x alpha-0 (rec y-0))) (privk a-0)))
+      (send
+        (enc a-0 (exp (gen) (mul y x alpha-0 (rec x-0)))
+          (exp (gen) (mul y x alpha-0 (rec y-0))) (privk b)))
+      (recv (enc n b (exp (gen) (mul y x alpha-0)))) (send n)))
+  (label 26)
+  (parent 22)
+  (unrealized (4 0) (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha x alpha-0 rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x)
+    (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a) (b b) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (y y) (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (4 0))
+    ((3 0) (2 0)) ((4 1) (0 4)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y alpha x alpha-0)
+  (absent (y (mul alpha x (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test (added-listener (exp (gen) (mul y x alpha-0))) n
+    (0 4) (enc n b (exp (gen) (mul y x alpha-0))))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n b (exp (gen) (mul y x alpha-0))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0)))))
+  (label 27)
+  (parent 22)
+  (unrealized (4 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (b a name) (group-dist chan) (alpha x y rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (precedes ((0 1) (2 1)) ((0 3) (2 3)) ((1 0) (0 0)) ((1 0) (2 0))
+    ((2 2) (0 2)) ((2 4) (0 4)))
+  (non-orig (privk b) (privk a))
+  (uniq-gen n alpha x y)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation generalization weakened ((0 1) (2 0)))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n b (exp (gen) (mul alpha x y))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk b))) (recv (enc n b (exp (gen) (mul alpha x y))))
+      (send n)))
+  (label 28)
+  (parent 23)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (x x) (y y) (g (exp (gen) alpha)) (n n) (group group)
+        (group-dist group-dist))))
+  (origs))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 chan) (y x alpha y-0 rndx) (x-0 expt))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (defstrand resp 3 (group group-0) (a a-0) (b b-0)
+    (g (exp (gen) (mul y x alpha (rec y-0)))) (group-dist group-dist-0)
+    (y y-0) (x x-0))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (4 0))
+    ((3 1) (0 4)) ((4 2) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha y-0)
+  (absent (y x) (y-0 x-0))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation nonce-test (added-strand resp 3)
+    (exp (gen) (mul y x alpha)) (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (send (enc n b (exp (gen) (mul y x alpha))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha))))
+    ((recv group-dist-0
+       (cat "Group id" group-0 (exp (gen) (mul y x alpha (rec y-0)))))
+      (recv (enc (exp (gen) (mul y x alpha (rec y-0) x-0)) (privk a-0)))
+      (send
+        (enc a-0 (exp (gen) (mul y x alpha))
+          (exp (gen) (mul y x alpha (rec y-0) x-0)) (privk b-0)))))
+  (label 29)
+  (parent 25)
+  (unrealized (4 0) (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 name)
+    (group-dist group-dist-0 chan) (y x alpha x-0 rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (defstrand init 2 (group group-0) (a a-0)
+    (g (exp (gen) (mul y x alpha (rec x-0)))) (group-dist group-dist-0)
+    (x x-0))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (4 0))
+    ((3 1) (0 4)) ((4 1) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha x-0)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation nonce-test (added-strand init 2)
+    (exp (gen) (mul y x alpha)) (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (send (enc n b (exp (gen) (mul y x alpha))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha))))
+    ((recv group-dist-0
+       (cat "Group id" group-0 (exp (gen) (mul y x alpha (rec x-0)))))
+      (send (enc (exp (gen) (mul y x alpha)) (privk a-0)))))
+  (label 30)
+  (parent 25)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (group-dist chan) (y x alpha rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (deflistener (cat (exp (gen) (mul y x)) alpha))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (4 0))
+    ((3 1) (0 4)) ((4 1) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y x)) alpha))
+    (exp (gen) (mul y x alpha)) (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (send (enc n b (exp (gen) (mul y x alpha))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha))))
+    ((recv (cat (exp (gen) (mul y x)) alpha))
+      (send (cat (exp (gen) (mul y x)) alpha))))
+  (label 31)
+  (parent 25)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (group-dist chan) (y x alpha rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (deflistener (cat (exp (gen) (mul y alpha)) x))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (4 0))
+    ((3 1) (0 4)) ((4 1) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y alpha)) x))
+    (exp (gen) (mul y x alpha)) (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (send (enc n b (exp (gen) (mul y x alpha))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha))))
+    ((recv (cat (exp (gen) (mul y alpha)) x))
+      (send (cat (exp (gen) (mul y alpha)) x))))
+  (label 32)
+  (parent 25)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (group-dist chan) (y x alpha rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (deflistener (cat (exp (gen) (mul x alpha)) y))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (4 0))
+    ((3 1) (0 4)) ((4 1) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x alpha)) y))
+    (exp (gen) (mul y x alpha)) (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (send (enc n b (exp (gen) (mul y x alpha))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha))))
+    ((recv (cat (exp (gen) (mul x alpha)) y))
+      (send (cat (exp (gen) (mul x alpha)) y))))
+  (label 33)
+  (parent 25)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (y alpha x alpha-0 y-0 rndx) (x-0 expt))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x)
+    (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a) (b b) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (y y) (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (defstrand resp 3 (group group-1) (a a-0) (b b-0)
+    (g (exp (gen) (mul y x alpha-0 (rec y-0))))
+    (group-dist group-dist-1) (y y-0) (x x-0))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (5 0))
+    ((3 0) (2 0)) ((4 1) (0 4)) ((5 2) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y alpha x alpha-0 y-0)
+  (absent (y (mul alpha x (rec alpha-0))) (y-0 x-0))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test (added-strand resp 3)
+    (exp (gen) (mul y x alpha-0)) (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n b (exp (gen) (mul y x alpha-0))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0))))
+    ((recv group-dist-1
+       (cat "Group id" group-1 (exp (gen) (mul y x alpha-0 (rec y-0)))))
+      (recv
+        (enc (exp (gen) (mul y x alpha-0 (rec y-0) x-0)) (privk a-0)))
+      (send
+        (enc a-0 (exp (gen) (mul y x alpha-0))
+          (exp (gen) (mul y x alpha-0 (rec y-0) x-0)) (privk b-0)))))
+  (label 34)
+  (parent 27)
+  (unrealized (5 0) (5 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (y alpha x alpha-0 x-0 rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x)
+    (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a) (b b) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (y y) (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (defstrand init 2 (group group-1) (a a-0)
+    (g (exp (gen) (mul y x alpha-0 (rec x-0))))
+    (group-dist group-dist-1) (x x-0))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (5 0))
+    ((3 0) (2 0)) ((4 1) (0 4)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y alpha x alpha-0 x-0)
+  (absent (y (mul alpha x (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test (added-strand init 2)
+    (exp (gen) (mul y x alpha-0)) (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n b (exp (gen) (mul y x alpha-0))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0))))
+    ((recv group-dist-1
+       (cat "Group id" group-1 (exp (gen) (mul y x alpha-0 (rec x-0)))))
+      (send (enc (exp (gen) (mul y x alpha-0)) (privk a-0)))))
+  (label 35)
+  (parent 27)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha x alpha-0 rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x)
+    (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a) (b b) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (y y) (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (deflistener (cat (exp (gen) (mul y x)) alpha-0))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (5 0))
+    ((3 0) (2 0)) ((4 1) (0 4)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y alpha x alpha-0)
+  (absent (y (mul alpha x (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y x)) alpha-0))
+    (exp (gen) (mul y x alpha-0)) (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n b (exp (gen) (mul y x alpha-0))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0))))
+    ((recv (cat (exp (gen) (mul y x)) alpha-0))
+      (send (cat (exp (gen) (mul y x)) alpha-0))))
+  (label 36)
+  (parent 27)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha x alpha-0 rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x)
+    (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a) (b b) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (y y) (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (deflistener (cat (exp (gen) (mul y alpha-0)) x))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (5 0))
+    ((3 0) (2 0)) ((4 1) (0 4)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y alpha x alpha-0)
+  (absent (y (mul alpha x (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y alpha-0)) x))
+    (exp (gen) (mul y x alpha-0)) (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n b (exp (gen) (mul y x alpha-0))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0))))
+    ((recv (cat (exp (gen) (mul y alpha-0)) x))
+      (send (cat (exp (gen) (mul y alpha-0)) x))))
+  (label 37)
+  (parent 27)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha x alpha-0 rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x)
+    (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a) (b b) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (y y) (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (deflistener (cat (exp (gen) (mul x alpha-0)) y))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (5 0))
+    ((3 0) (2 0)) ((4 1) (0 4)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y alpha x alpha-0)
+  (absent (y (mul alpha x (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x alpha-0)) y))
+    (exp (gen) (mul y x alpha-0)) (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n b (exp (gen) (mul y x alpha-0))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0))))
+    ((recv (cat (exp (gen) (mul x alpha-0)) y))
+      (send (cat (exp (gen) (mul x alpha-0)) y))))
+  (label 38)
+  (parent 27)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol dh_sig2 diffie-hellman
+  (defrole group-init
+    (vars (alpha rndx) (group text) (group-dist chan))
+    (trace (send group-dist (cat "Group id" group (exp (gen) alpha))))
+    (uniq-gen alpha)
+    (conf group-dist))
+  (defrole init
+    (vars (x rndx) (y expt) (g base) (n group text) (a b name)
+      (group-dist chan))
+    (trace (recv group-dist (cat "Group id" group g))
+      (send (enc (exp g x) (privk a)))
+      (recv (enc a (exp g y) (exp g x) (privk b)))
+      (send (enc n b (exp g (mul x y)))) (recv n))
+    (uniq-gen n x)
+    (auth group-dist))
+  (defrole resp
+    (vars (y rndx) (x expt) (g base) (n group text) (a b name)
+      (group-dist chan))
+    (trace (recv group-dist (cat "Group id" group g))
+      (recv (enc (exp g x) (privk a)))
+      (send (enc a (exp g y) (exp g x) (privk b)))
+      (recv (enc n b (exp g (mul y x)))) (send n))
+    (uniq-gen y)
+    (absent (y x))
+    (auth group-dist))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (g base) (group-dist chan) (y rndx)
+    (x expt))
+  (defstrand resp 5 (n n) (group group) (a a) (b b) (g g)
+    (group-dist group-dist) (y y) (x x))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y)
+  (absent (y x))
+  (auth group-dist)
+  (traces
+    ((recv group-dist (cat "Group id" group g))
+      (recv (enc (exp g x) (privk a)))
+      (send (enc a (exp g y) (exp g x) (privk b)))
+      (recv (enc n b (exp g (mul y x)))) (send n)))
+  (label 39)
+  (unrealized (0 0) (0 1))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (group-dist chan) (y rndx) (x expt)
+    (alpha rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation channel-test (added-strand group-init 1)
+    (ch-msg group-dist (cat "Group id" group (exp (gen) alpha))) (0 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha)))))
+  (label 40)
+  (parent 39)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y rndx) (x expt) (alpha x-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a)
+    (g (exp (gen) (mul x alpha (rec x-0)))) (group-dist group-dist-0)
+    (x x-0))
+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x-0)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation encryption-test (added-strand init 2)
+    (enc (exp (gen) (mul x alpha)) (privk a)) (0 1))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0
+       (cat "Group id" group-0 (exp (gen) (mul x alpha (rec x-0)))))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))))
+  (label 41)
+  (parent 40)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (group-dist chan) (y x alpha rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation channel-test (displaced 3 1 group-init 1)
+    (ch-msg group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+    (2 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))))
+  (label 42)
+  (parent 41)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha x alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)) ((3 0) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation channel-test (added-strand group-init 1)
+    (ch-msg group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+    (2 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))))
+  (label 43)
+  (parent 41)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (b a name) (group-dist chan) (alpha y x rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 4 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((2 3) (0 3)))
+  (non-orig (privk b) (privk a))
+  (uniq-gen n alpha y x)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation encryption-test (displaced 2 3 init 4)
+    (enc n b (exp (gen) (mul y-0 x-0 alpha))) (0 3))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk b))) (recv (enc n b (exp (gen) (mul alpha y x))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n b (exp (gen) (mul alpha y x))))))
+  (label 44)
+  (parent 42)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (y y) (x x) (g (exp (gen) alpha)) (n n) (group group)
+        (group-dist group-dist))))
+  (origs))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 name)
+    (group-dist group-dist-0 chan) (y x alpha x-0 rndx) (y-0 expt))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b)
+    (g (exp (gen) (mul y x alpha (rec x-0) (rec y-0))))
+    (group-dist group-dist-0) (x x-0) (y y-0))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 3) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha x-0)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation encryption-test (added-strand init 4)
+    (enc n b (exp (gen) (mul y x alpha))) (0 3))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv group-dist-0
+       (cat "Group id" group-0
+         (exp (gen) (mul y x alpha (rec x-0) (rec y-0)))))
+      (send (enc (exp (gen) (mul y x alpha (rec y-0))) (privk a-0)))
+      (recv
+        (enc a-0 (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul y x alpha (rec y-0))) (privk b)))
+      (send (enc n b (exp (gen) (mul y x alpha))))))
+  (label 45)
+  (parent 42)
+  (unrealized (3 0) (3 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (group-dist chan) (y x alpha rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation encryption-test
+    (added-listener (exp (gen) (mul y x alpha)))
+    (enc n b (exp (gen) (mul y x alpha))) (0 3))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha)))))
+  (label 46)
+  (parent 42)
+  (unrealized (3 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (b a name) (group-dist group-dist-0 chan)
+    (alpha alpha-0 y x rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) alpha-0 x)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-0) (a a) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x) (y y))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (3 0))
+    ((3 1) (0 1)) ((3 3) (0 3)))
+  (non-orig (privk b) (privk a))
+  (uniq-gen n alpha alpha-0 y x)
+  (absent (y (mul (rec alpha) alpha-0 x)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation encryption-test (displaced 2 4 init 4)
+    (enc n b (exp (gen) (mul y-0 x-0 alpha-0))) (0 3))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul alpha-0 x)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul alpha y)) (exp (gen) (mul alpha-0 x))
+          (privk b))) (recv (enc n b (exp (gen) (mul alpha-0 y x))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul alpha-0 x)) (privk a)))
+      (recv
+        (enc a (exp (gen) (mul alpha-0 y)) (exp (gen) (mul alpha-0 x))
+          (privk b))) (send (enc n b (exp (gen) (mul alpha-0 y x))))))
+  (label 47)
+  (parent 43)
+  (unrealized (3 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (y alpha x alpha-0 x-0 rndx) (y-0 expt))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-1) (a a-0) (b b)
+    (g (exp (gen) (mul y x alpha-0 (rec x-0) (rec y-0))))
+    (group-dist group-dist-1) (x x-0) (y y-0))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 3) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y alpha x alpha-0 x-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation encryption-test (added-strand init 4)
+    (enc n b (exp (gen) (mul y x alpha-0))) (0 3))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-1
+       (cat "Group id" group-1
+         (exp (gen) (mul y x alpha-0 (rec x-0) (rec y-0)))))
+      (send (enc (exp (gen) (mul y x alpha-0 (rec y-0))) (privk a-0)))
+      (recv
+        (enc a-0 (exp (gen) (mul y x alpha-0 (rec x-0)))
+          (exp (gen) (mul y x alpha-0 (rec y-0))) (privk b)))
+      (send (enc n b (exp (gen) (mul y x alpha-0))))))
+  (label 48)
+  (parent 43)
+  (unrealized (4 0) (4 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha x alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation encryption-test
+    (added-listener (exp (gen) (mul y x alpha-0)))
+    (enc n b (exp (gen) (mul y x alpha-0))) (0 3))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0)))))
+  (label 49)
+  (parent 43)
+  (unrealized (4 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b a-0 name) (group-dist chan)
+    (y x x-0 alpha rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (defstrand init 4 (n n) (group group) (a a-0) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x-0)
+    (y (mul y x (rec x-0))))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 3) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x x-0 alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation channel-test (displaced 4 1 group-init 1)
+    (ch-msg group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+    (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a-0)))
+      (recv
+        (enc a-0 (exp (gen) (mul y x (rec x-0) alpha))
+          (exp (gen) (mul x-0 alpha)) (privk b)))
+      (send (enc n b (exp (gen) (mul y x alpha))))))
+  (label 50)
+  (parent 45)
+  (unrealized (3 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 name)
+    (group-dist group-dist-0 chan) (y x alpha x-0 alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x-0)
+    (y (mul y x alpha (rec x-0) (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 3) (0 3)) ((4 0) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha x-0 alpha-0)
+  (absent (y x))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation channel-test (added-strand group-init 1)
+    (ch-msg group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+    (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc a-0 (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul x-0 alpha-0)) (privk b)))
+      (send (enc n b (exp (gen) (mul y x alpha)))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))))
+  (label 51)
+  (parent 45)
+  (unrealized (3 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 chan) (y x alpha y-0 rndx) (x-0 expt))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (defstrand resp 3 (group group-0) (a a-0) (b b-0)
+    (g (exp (gen) (mul y x alpha (rec y-0)))) (group-dist group-dist-0)
+    (y y-0) (x x-0))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (0 3)) ((4 2) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x alpha y-0)
+  (absent (y x) (y-0 x-0))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation nonce-test (added-strand resp 3)
+    (exp (gen) (mul y x alpha)) (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha))))
+    ((recv group-dist-0
+       (cat "Group id" group-0 (exp (gen) (mul y x alpha (rec y-0)))))
+      (recv (enc (exp (gen) (mul y x alpha (rec y-0) x-0)) (privk a-0)))
+      (send
+        (enc a-0 (exp (gen) (mul y x alpha))
+          (exp (gen) (mul y x alpha (rec y-0) x-0)) (privk b-0)))))
+  (label 52)
+  (parent 46)
+  (unrealized (4 0) (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 name)
+    (group-dist group-dist-0 chan) (y x alpha x-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (defstrand init 2 (group group-0) (a a-0)
+    (g (exp (gen) (mul y x alpha (rec x-0)))) (group-dist group-dist-0)
+    (x x-0))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (0 3)) ((4 1) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x alpha x-0)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation nonce-test (added-strand init 2)
+    (exp (gen) (mul y x alpha)) (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha))))
+    ((recv group-dist-0
+       (cat "Group id" group-0 (exp (gen) (mul y x alpha (rec x-0)))))
+      (send (enc (exp (gen) (mul y x alpha)) (privk a-0)))))
+  (label 53)
+  (parent 46)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (group-dist chan) (y x alpha rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (deflistener (cat (exp (gen) (mul y x)) alpha))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (0 3)) ((4 1) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y x)) alpha))
+    (exp (gen) (mul y x alpha)) (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha))))
+    ((recv (cat (exp (gen) (mul y x)) alpha))
+      (send (cat (exp (gen) (mul y x)) alpha))))
+  (label 54)
+  (parent 46)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (group-dist chan) (y x alpha rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (deflistener (cat (exp (gen) (mul y alpha)) x))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (0 3)) ((4 1) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y alpha)) x))
+    (exp (gen) (mul y x alpha)) (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha))))
+    ((recv (cat (exp (gen) (mul y alpha)) x))
+      (send (cat (exp (gen) (mul y alpha)) x))))
+  (label 55)
+  (parent 46)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (group-dist chan) (y x alpha rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (deflistener (cat (exp (gen) (mul x alpha)) y))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (0 3)) ((4 1) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x alpha)) y))
+    (exp (gen) (mul y x alpha)) (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha))))
+    ((recv (cat (exp (gen) (mul x alpha)) y))
+      (send (cat (exp (gen) (mul x alpha)) y))))
+  (label 56)
+  (parent 46)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 name)
+    (group-dist group-dist-0 chan) (y x alpha x-0 alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist) (y y)
+    (x (mul x alpha (rec alpha-0))))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha-0))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha))
+  (defstrand init 4 (n n) (group group) (a a-0) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist) (x x-0)
+    (y (mul y x alpha (rec x-0) (rec alpha-0))))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 3) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha x-0 alpha-0)
+  (absent (y (mul x alpha (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation channel-test (displaced 5 1 group-init 1)
+    (ch-msg group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1)))
+    (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha-0)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc a-0 (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul x-0 alpha-0)) (privk b)))
+      (send (enc n b (exp (gen) (mul y x alpha))))))
+  (label 57)
+  (parent 48)
+  (unrealized (4 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 name)
+    (group-dist group-dist-0 chan) (alpha y x x-0 alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x-0)
+    (y (mul y x (rec x-0))))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 3) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n alpha y x x-0 alpha-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation channel-test (displaced 5 3 group-init 1)
+    (ch-msg group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1)))
+    (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul alpha y)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc a-0 (exp (gen) (mul y x (rec x-0) alpha-0))
+          (exp (gen) (mul x-0 alpha-0)) (privk b)))
+      (send (enc n b (exp (gen) (mul y x alpha-0))))))
+  (label 58)
+  (parent 48)
+  (unrealized (4 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (alpha y x alpha-0 x-0 alpha-1 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-1) (a a-0) (b b)
+    (g (exp (gen) alpha-1)) (group-dist group-dist-1) (x x-0)
+    (y (mul y x alpha-0 (rec x-0) (rec alpha-1))))
+  (defstrand group-init 1 (group group-1) (group-dist group-dist-1)
+    (alpha alpha-1))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 3) (0 3)) ((5 0) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n alpha y x alpha-0 x-0 alpha-1)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0 group-dist-1)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation channel-test (added-strand group-init 1)
+    (ch-msg group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1)))
+    (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul alpha y)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1)))
+      (send (enc (exp (gen) (mul x-0 alpha-1)) (privk a-0)))
+      (recv
+        (enc a-0 (exp (gen) (mul y x alpha-0 (rec x-0)))
+          (exp (gen) (mul x-0 alpha-1)) (privk b)))
+      (send (enc n b (exp (gen) (mul y x alpha-0)))))
+    ((send group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1)))))
+  (label 59)
+  (parent 48)
+  (unrealized (4 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (y alpha x alpha-0 y-0 rndx) (x-0 expt))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (defstrand resp 3 (group group-1) (a a-0) (b b-0)
+    (g (exp (gen) (mul y x alpha-0 (rec y-0))))
+    (group-dist group-dist-1) (y y-0) (x x-0))
+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (0 3)) ((5 2) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0 y-0)
+  (absent (y (mul (rec alpha) x alpha-0)) (y-0 x-0))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test (added-strand resp 3)
+    (exp (gen) (mul y x alpha-0)) (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0))))
+    ((recv group-dist-1
+       (cat "Group id" group-1 (exp (gen) (mul y x alpha-0 (rec y-0)))))
+      (recv
+        (enc (exp (gen) (mul y x alpha-0 (rec y-0) x-0)) (privk a-0)))
+      (send
+        (enc a-0 (exp (gen) (mul y x alpha-0))
+          (exp (gen) (mul y x alpha-0 (rec y-0) x-0)) (privk b-0)))))
+  (label 60)
+  (parent 49)
+  (unrealized (5 0) (5 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (y alpha x alpha-0 x-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (defstrand init 2 (group group-1) (a a-0)
+    (g (exp (gen) (mul y x alpha-0 (rec x-0))))
+    (group-dist group-dist-1) (x x-0))
+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (0 3)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0 x-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test (added-strand init 2)
+    (exp (gen) (mul y x alpha-0)) (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0))))
+    ((recv group-dist-1
+       (cat "Group id" group-1 (exp (gen) (mul y x alpha-0 (rec x-0)))))
+      (send (enc (exp (gen) (mul y x alpha-0)) (privk a-0)))))
+  (label 61)
+  (parent 49)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha x alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (deflistener (cat (exp (gen) (mul y x)) alpha-0))
+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (0 3)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y x)) alpha-0))
+    (exp (gen) (mul y x alpha-0)) (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0))))
+    ((recv (cat (exp (gen) (mul y x)) alpha-0))
+      (send (cat (exp (gen) (mul y x)) alpha-0))))
+  (label 62)
+  (parent 49)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha x alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (deflistener (cat (exp (gen) (mul y alpha-0)) x))
+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (0 3)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y alpha-0)) x))
+    (exp (gen) (mul y x alpha-0)) (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0))))
+    ((recv (cat (exp (gen) (mul y alpha-0)) x))
+      (send (cat (exp (gen) (mul y alpha-0)) x))))
+  (label 63)
+  (parent 49)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha x alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (deflistener (cat (exp (gen) (mul x alpha-0)) y))
+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (0 3)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x alpha-0)) y))
+    (exp (gen) (mul y x alpha-0)) (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc a (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n b (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0))))
+    ((recv (cat (exp (gen) (mul x alpha-0)) y))
+      (send (cat (exp (gen) (mul x alpha-0)) y))))
+  (label 64)
+  (parent 49)
+  (unrealized (5 0))
   (dead)
   (comment "empty cohort"))
 
diff --git a/tst/dh_group_sig_auth_failure.scm b/tst/dh_group_sig_auth_failure.scm
new file mode 100644
--- /dev/null
+++ b/tst/dh_group_sig_auth_failure.scm
@@ -0,0 +1,86 @@
+(herald "Signed group DH exchange (version with auth failure)" (algebra diffie-hellman)
+	(limit 100)
+	;(limit 20000) (bound 25)
+	)
+
+;;; This is not a very convincing protocol in my mind.  -- JDG
+
+(defprotocol dh_sig diffie-hellman
+  (defrole group-init
+    (vars (alpha rndx) (group text) (group-dist chan))
+    (trace
+     (send group-dist (cat "Group id" group (exp (gen) alpha))))
+    (uniq-gen alpha)
+    (conf group-dist))
+  (defrole init
+    (vars (x rndx) (y expt) (g base) (group text) (a b name) (group-dist chan))
+    (trace
+     (recv group-dist (cat "Group id" group g))
+     (send (enc (exp g x) (privk a)))
+     (recv (enc (exp g y) (exp g x) (privk b)))
+     (send (enc "final" (exp g y) (exp g x) (privk a))))
+    (uniq-gen x)
+    (auth group-dist))
+  (defrole resp
+    (vars (y rndx) (x expt) (g base) (group text) (a b name) (group-dist chan))
+    (trace
+     (recv group-dist (cat "Group id" group g))
+     (recv (enc (exp g x) (privk a)))
+     (send (enc (exp g y) (exp g x) (privk b)))
+     (recv (enc "final" (exp g y) (exp g x) (privk a))))
+    (uniq-gen y)
+    (auth group-dist))
+)
+
+(defskeleton dh_sig
+  (vars (a b name))
+  (defstrand init 4 (a a) (b b))
+  (non-orig (privk b) (privk a))
+)
+
+(defskeleton dh_sig
+  (vars (a b name))
+  (defstrand resp 4 (a a) (b b))
+  (non-orig (privk a) (privk b))
+)
+
+(defprotocol dh_sig2 diffie-hellman
+  (defrole group-init
+    (vars (alpha rndx) (group text) (group-dist chan))
+    (trace
+     (send group-dist (cat "Group id" group (exp (gen) alpha))))
+    (uniq-gen alpha)
+    (conf group-dist))
+  (defrole init
+    (vars (x rndx) (y expt) (g base) (n group text) (a b name) (group-dist chan))
+    (trace
+     (recv group-dist (cat "Group id" group g))
+     (send (enc (exp g x) (privk a)))
+     (recv (enc (exp g y) (exp g x) (privk b)))
+     (send (enc n (exp g (mul x y))))
+     (recv n))
+    (uniq-gen x n)
+    (auth group-dist))
+  (defrole resp
+    (vars (y rndx) (x expt) (g base) (n group text) (a b name) (group-dist chan))
+    (trace
+     (recv group-dist (cat "Group id" group g))
+     (recv (enc (exp g x) (privk a)))
+     (send (enc (exp g y) (exp g x) (privk b)))
+     (recv (enc n (exp g (mul x y))))
+     (send n))
+    (uniq-gen y)
+    (auth group-dist))
+)
+
+(defskeleton dh_sig2
+  (vars (a b name))
+  (defstrand init 5 (a a) (b b))
+  (non-orig (privk b) (privk a))
+)
+
+(defskeleton dh_sig2
+  (vars (a b name))
+  (defstrand resp 5 (a a) (b b))
+  (non-orig (privk a) (privk b))
+)
diff --git a/tst/dh_group_sig_auth_failure.tst b/tst/dh_group_sig_auth_failure.tst
new file mode 100644
--- /dev/null
+++ b/tst/dh_group_sig_auth_failure.tst
@@ -0,0 +1,4603 @@
+(herald "Signed group DH exchange (version with auth failure)"
+  (algebra diffie-hellman) (limit 100))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/dh_group_sig_auth_failure.scm")
+(comment "Step count limited to 100")
+
+(defprotocol dh_sig diffie-hellman
+  (defrole group-init
+    (vars (alpha rndx) (group text) (group-dist chan))
+    (trace (send group-dist (cat "Group id" group (exp (gen) alpha))))
+    (uniq-gen alpha)
+    (conf group-dist))
+  (defrole init
+    (vars (x rndx) (y expt) (g base) (group text) (a b name)
+      (group-dist chan))
+    (trace (recv group-dist (cat "Group id" group g))
+      (send (enc (exp g x) (privk a)))
+      (recv (enc (exp g y) (exp g x) (privk b)))
+      (send (enc "final" (exp g y) (exp g x) (privk a))))
+    (uniq-gen x)
+    (auth group-dist))
+  (defrole resp
+    (vars (y rndx) (x expt) (g base) (group text) (a b name)
+      (group-dist chan))
+    (trace (recv group-dist (cat "Group id" group g))
+      (recv (enc (exp g x) (privk a)))
+      (send (enc (exp g y) (exp g x) (privk b)))
+      (recv (enc "final" (exp g y) (exp g x) (privk a))))
+    (uniq-gen y)
+    (absent (y x))
+    (auth group-dist))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dh_sig
+  (vars (group text) (a b name) (g base) (group-dist chan) (x rndx)
+    (y expt))
+  (defstrand init 4 (group group) (a a) (b b) (g g)
+    (group-dist group-dist) (x x) (y y))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (auth group-dist)
+  (traces
+    ((recv group-dist (cat "Group id" group g))
+      (send (enc (exp g x) (privk a)))
+      (recv (enc (exp g y) (exp g x) (privk b)))
+      (send (enc "final" (exp g y) (exp g x) (privk a)))))
+  (label 0)
+  (unrealized (0 0) (0 2))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group text) (a b name) (group-dist chan) (x rndx) (y expt)
+    (alpha rndx))
+  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x alpha)
+  (conf group-dist)
+  (auth group-dist)
+  (operation channel-test (added-strand group-init 1)
+    (ch-msg group-dist (cat "Group id" group (exp (gen) alpha))) (0 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b)))
+      (send
+        (enc "final" (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group group-0 text) (a b a-0 name)
+    (group-dist group-dist-0 chan) (alpha x y rndx) (x-0 expt))
+  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x) (y (mul x y (rec x-0))))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a-0) (b b)
+    (g (exp (gen) (mul alpha x (rec x-0)))) (group-dist group-dist-0)
+    (y y) (x x-0))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen alpha x y)
+  (absent (y x-0))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation encryption-test (added-strand resp 3)
+    (enc (exp (gen) (mul alpha x y (rec x-0))) (exp (gen) (mul alpha x))
+      (privk b)) (0 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul alpha x y (rec x-0)))
+          (exp (gen) (mul alpha x)) (privk b)))
+      (send
+        (enc "final" (exp (gen) (mul alpha x y (rec x-0)))
+          (exp (gen) (mul alpha x)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0
+       (cat "Group id" group-0 (exp (gen) (mul alpha x (rec x-0)))))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul alpha x y (rec x-0)))
+          (exp (gen) (mul alpha x)) (privk b)))))
+  (label 2)
+  (parent 1)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group text) (a b a-0 name) (group-dist chan) (y x alpha rndx))
+  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation channel-test (displaced 3 1 group-init 1)
+    (ch-msg group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+    (2 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b)))
+      (send
+        (enc "final" (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b)))))
+  (label 3)
+  (parent 2)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group group-0 text) (a b a-0 name)
+    (group-dist group-dist-0 chan) (y alpha x alpha-0 rndx))
+  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x) (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a-0) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (y y)
+    (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 0) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0)
+  (absent (y (mul alpha x (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation channel-test (added-strand group-init 1)
+    (ch-msg group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+    (2 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b)))
+      (send
+        (enc "final" (exp (gen) (mul y alpha-0))
+          (exp (gen) (mul alpha x)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))))
+  (label 4)
+  (parent 2)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group text) (a b a-0 name) (group-dist chan) (y x alpha rndx))
+  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation generalization weakened ((0 1) (2 0)))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b)))
+      (send
+        (enc "final" (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b)))))
+  (label 5)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (x x) (y y) (g (exp (gen) alpha)) (group group)
+        (group-dist group-dist))))
+  (origs))
+
+(defskeleton dh_sig
+  (vars (group group-0 text) (a b a-0 name)
+    (group-dist group-dist-0 chan) (y alpha x alpha-0 rndx))
+  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x) (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a-0) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (y y)
+    (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2))
+    ((3 0) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0)
+  (absent (y (mul alpha x (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation generalization weakened ((0 1) (2 0)))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b)))
+      (send
+        (enc "final" (exp (gen) (mul y alpha-0))
+          (exp (gen) (mul alpha x)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))))
+  (label 6)
+  (parent 4)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group group-0 text) (a b a-0 name)
+    (group-dist group-dist-0 chan) (y alpha x alpha-0 rndx))
+  (defstrand init 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x) (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a-0) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (y y)
+    (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 0) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0)
+  (absent (y (mul alpha x (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation generalization weakened ((1 0) (2 0)))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b)))
+      (send
+        (enc "final" (exp (gen) (mul y alpha-0))
+          (exp (gen) (mul alpha x)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))))
+  (label 7)
+  (parent 6)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (x x) (y (mul y (rec alpha) alpha-0))
+        (g (exp (gen) alpha)) (group group) (group-dist group-dist))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol dh_sig diffie-hellman
+  (defrole group-init
+    (vars (alpha rndx) (group text) (group-dist chan))
+    (trace (send group-dist (cat "Group id" group (exp (gen) alpha))))
+    (uniq-gen alpha)
+    (conf group-dist))
+  (defrole init
+    (vars (x rndx) (y expt) (g base) (group text) (a b name)
+      (group-dist chan))
+    (trace (recv group-dist (cat "Group id" group g))
+      (send (enc (exp g x) (privk a)))
+      (recv (enc (exp g y) (exp g x) (privk b)))
+      (send (enc "final" (exp g y) (exp g x) (privk a))))
+    (uniq-gen x)
+    (auth group-dist))
+  (defrole resp
+    (vars (y rndx) (x expt) (g base) (group text) (a b name)
+      (group-dist chan))
+    (trace (recv group-dist (cat "Group id" group g))
+      (recv (enc (exp g x) (privk a)))
+      (send (enc (exp g y) (exp g x) (privk b)))
+      (recv (enc "final" (exp g y) (exp g x) (privk a))))
+    (uniq-gen y)
+    (absent (y x))
+    (auth group-dist))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dh_sig
+  (vars (group text) (a b name) (g base) (group-dist chan) (y rndx)
+    (x expt))
+  (defstrand resp 4 (group group) (a a) (b b) (g g)
+    (group-dist group-dist) (y y) (x x))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y)
+  (absent (y x))
+  (auth group-dist)
+  (traces
+    ((recv group-dist (cat "Group id" group g))
+      (recv (enc (exp g x) (privk a)))
+      (send (enc (exp g y) (exp g x) (privk b)))
+      (recv (enc "final" (exp g y) (exp g x) (privk a)))))
+  (label 8)
+  (unrealized (0 0) (0 1) (0 3))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group text) (a b name) (group-dist chan) (y rndx) (x expt)
+    (alpha rndx))
+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation channel-test (added-strand group-init 1)
+    (ch-msg group-dist (cat "Group id" group (exp (gen) alpha))) (0 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b)))
+      (recv
+        (enc "final" (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha)))))
+  (label 9)
+  (parent 8)
+  (unrealized (0 1) (0 3))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y rndx) (x expt) (alpha x-0 rndx))
+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a)
+    (g (exp (gen) (mul x alpha (rec x-0)))) (group-dist group-dist-0)
+    (x x-0))
+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x-0)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation encryption-test (added-strand init 2)
+    (enc (exp (gen) (mul x alpha)) (privk a)) (0 1))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b)))
+      (recv
+        (enc "final" (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0
+       (cat "Group id" group-0 (exp (gen) (mul x alpha (rec x-0)))))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))))
+  (label 10)
+  (parent 9)
+  (unrealized (0 3) (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group text) (a b name) (group-dist chan) (y x alpha rndx))
+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation channel-test (displaced 3 1 group-init 1)
+    (ch-msg group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+    (2 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b)))
+      (recv
+        (enc "final" (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))))
+  (label 11)
+  (parent 10)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha x alpha-0 rndx))
+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)) ((3 0) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation channel-test (added-strand group-init 1)
+    (ch-msg group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+    (2 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b)))
+      (recv
+        (enc "final" (exp (gen) (mul y alpha))
+          (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))))
+  (label 12)
+  (parent 10)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group text) (a b b-0 name) (group-dist chan) (alpha y x rndx))
+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 4 (group group) (a a) (b b-0) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x) (y y))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((2 3) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen alpha y x)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation encryption-test (displaced 2 3 init 4)
+    (enc "final" (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x-0))
+      (privk a)) (0 3))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk b)))
+      (recv
+        (enc "final" (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk b-0)))
+      (send
+        (enc "final" (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk a)))))
+  (label 13)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (y y) (x x) (g (exp (gen) alpha)) (group group)
+        (group-dist group-dist))))
+  (origs))
+
+(defskeleton dh_sig
+  (vars (group group-0 text) (a b b-0 name)
+    (group-dist group-dist-0 chan) (alpha y x x-0 rndx))
+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (defstrand init 4 (group group-0) (a a) (b b-0)
+    (g (exp (gen) (mul alpha x (rec x-0)))) (group-dist group-dist-0)
+    (x x-0) (y (mul y (rec x) x-0)))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((2 1) (3 0)) ((3 3) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen alpha y x x-0)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation encryption-test (added-strand init 4)
+    (enc "final" (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+      (privk a)) (0 3))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk b)))
+      (recv
+        (enc "final" (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a))))
+    ((recv group-dist-0
+       (cat "Group id" group-0 (exp (gen) (mul alpha x (rec x-0)))))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk b-0)))
+      (send
+        (enc "final" (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk a)))))
+  (label 14)
+  (parent 11)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig
+  (vars (group group-0 text) (a b b-0 name)
+    (group-dist group-dist-0 chan) (y alpha alpha-0 x rndx))
+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x (mul (rec alpha) alpha-0 x)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (group group-0) (a a) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x)
+    (y (mul y alpha (rec alpha-0))))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (3 0))
+    ((3 1) (0 1)) ((3 3) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha alpha-0 x)
+  (absent (y (mul (rec alpha) alpha-0 x)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation encryption-test (displaced 2 4 init 4)
+    (enc "final" (exp (gen) (mul y alpha)) (exp (gen) (mul x-0 alpha-0))
+      (privk a)) (0 3))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul alpha-0 x)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul alpha-0 x))
+          (privk b)))
+      (recv
+        (enc "final" (exp (gen) (mul y alpha))
+          (exp (gen) (mul alpha-0 x)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul alpha-0 x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul alpha-0 x))
+          (privk b-0)))
+      (send
+        (enc "final" (exp (gen) (mul y alpha))
+          (exp (gen) (mul alpha-0 x)) (privk a)))))
+  (label 15)
+  (parent 12)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig
+  (vars (group group-0 group-1 text) (a b b-0 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (y alpha x alpha-0 x-0 rndx))
+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (group group-1) (a a) (b b-0)
+    (g (exp (gen) (mul x alpha-0 (rec x-0)))) (group-dist group-dist-1)
+    (x x-0) (y (mul y alpha (rec x) (rec alpha-0) x-0)))
+  (precedes ((0 2) (4 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((2 1) (4 0)) ((3 0) (2 0)) ((4 3) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0 x-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation encryption-test (added-strand init 4)
+    (enc "final" (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+      (privk a)) (0 3))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b)))
+      (recv
+        (enc "final" (exp (gen) (mul y alpha))
+          (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-1
+       (cat "Group id" group-1 (exp (gen) (mul x alpha-0 (rec x-0)))))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b-0)))
+      (send
+        (enc "final" (exp (gen) (mul y alpha))
+          (exp (gen) (mul x alpha-0)) (privk a)))))
+  (label 16)
+  (parent 12)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig
+  (vars (group group-0 text) (a b b-0 name)
+    (group-dist group-dist-0 chan) (y alpha alpha-0 x rndx))
+  (defstrand resp 4 (group group) (a a) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x (mul (rec alpha) alpha-0 x)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (group group-0) (a a) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x)
+    (y (mul y alpha (rec alpha-0))))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (3 0)) ((3 1) (0 1))
+    ((3 3) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha alpha-0 x)
+  (absent (y (mul (rec alpha) alpha-0 x)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation generalization weakened ((1 0) (3 0)))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul alpha-0 x)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul alpha-0 x))
+          (privk b)))
+      (recv
+        (enc "final" (exp (gen) (mul y alpha))
+          (exp (gen) (mul alpha-0 x)) (privk a))))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul alpha-0 x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul alpha-0 x))
+          (privk b-0)))
+      (send
+        (enc "final" (exp (gen) (mul y alpha))
+          (exp (gen) (mul alpha-0 x)) (privk a)))))
+  (label 17)
+  (parent 15)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (y y) (x (mul (rec alpha) alpha-0 x))
+        (g (exp (gen) alpha)) (group group) (group-dist group-dist))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol dh_sig2 diffie-hellman
+  (defrole group-init
+    (vars (alpha rndx) (group text) (group-dist chan))
+    (trace (send group-dist (cat "Group id" group (exp (gen) alpha))))
+    (uniq-gen alpha)
+    (conf group-dist))
+  (defrole init
+    (vars (x rndx) (y expt) (g base) (n group text) (a b name)
+      (group-dist chan))
+    (trace (recv group-dist (cat "Group id" group g))
+      (send (enc (exp g x) (privk a)))
+      (recv (enc (exp g y) (exp g x) (privk b)))
+      (send (enc n (exp g (mul x y)))) (recv n))
+    (uniq-gen n x)
+    (auth group-dist))
+  (defrole resp
+    (vars (y rndx) (x expt) (g base) (n group text) (a b name)
+      (group-dist chan))
+    (trace (recv group-dist (cat "Group id" group g))
+      (recv (enc (exp g x) (privk a)))
+      (send (enc (exp g y) (exp g x) (privk b)))
+      (recv (enc n (exp g (mul y x)))) (send n))
+    (uniq-gen y)
+    (absent (y x))
+    (auth group-dist))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (g base) (group-dist chan) (x rndx)
+    (y expt))
+  (defstrand init 5 (n n) (group group) (a a) (b b) (g g)
+    (group-dist group-dist) (x x) (y y))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n x)
+  (auth group-dist)
+  (traces
+    ((recv group-dist (cat "Group id" group g))
+      (send (enc (exp g x) (privk a)))
+      (recv (enc (exp g y) (exp g x) (privk b)))
+      (send (enc n (exp g (mul x y)))) (recv n)))
+  (label 18)
+  (unrealized (0 0) (0 2))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (group-dist chan) (x rndx) (y expt)
+    (alpha rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n x alpha)
+  (conf group-dist)
+  (auth group-dist)
+  (operation channel-test (added-strand group-init 1)
+    (ch-msg group-dist (cat "Group id" group (exp (gen) alpha))) (0 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (send (enc n (exp (gen) (mul x y alpha))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha)))))
+  (label 19)
+  (parent 18)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 name)
+    (group-dist group-dist-0 chan) (alpha x y rndx) (x-0 expt))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x)
+    (y (mul x y (rec x-0))))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a-0) (b b)
+    (g (exp (gen) (mul alpha x (rec x-0)))) (group-dist group-dist-0)
+    (y y) (x x-0))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n alpha x y)
+  (absent (y x-0))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation encryption-test (added-strand resp 3)
+    (enc (exp (gen) (mul alpha x y (rec x-0))) (exp (gen) (mul alpha x))
+      (privk b)) (0 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul alpha x y (rec x-0)))
+          (exp (gen) (mul alpha x)) (privk b)))
+      (send (enc n (exp (gen) (mul alpha x x y (rec x-0))))) (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0
+       (cat "Group id" group-0 (exp (gen) (mul alpha x (rec x-0)))))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul alpha x y (rec x-0)))
+          (exp (gen) (mul alpha x)) (privk b)))))
+  (label 20)
+  (parent 19)
+  (unrealized (0 4) (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b a-0 name) (group-dist chan)
+    (y x alpha rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation channel-test (displaced 3 1 group-init 1)
+    (ch-msg group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+    (2 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (send (enc n (exp (gen) (mul y x alpha))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b)))))
+  (label 21)
+  (parent 20)
+  (unrealized (0 4))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 name)
+    (group-dist group-dist-0 chan) (y alpha x alpha-0 rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x)
+    (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a-0) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (y y)
+    (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 0) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y alpha x alpha-0)
+  (absent (y (mul alpha x (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation channel-test (added-strand group-init 1)
+    (ch-msg group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+    (2 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n (exp (gen) (mul y x alpha-0))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))))
+  (label 22)
+  (parent 20)
+  (unrealized (0 4))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a a-0 b name) (group-dist chan)
+    (alpha x y rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 5 (n n) (group group) (a a-0) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (precedes ((0 1) (2 0)) ((0 3) (2 3)) ((1 0) (0 0)) ((2 2) (0 2))
+    ((2 4) (0 4)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n alpha x y)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation nonce-test (displaced 2 3 resp 5) n (0 4)
+    (enc n (exp (gen) (mul y-0 x-0 alpha))))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n (exp (gen) (mul alpha x y))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk b))) (recv (enc n (exp (gen) (mul alpha x y))))
+      (send n)))
+  (label 23)
+  (parent 21)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 a-1 b-0 name)
+    (group-dist group-dist-0 chan) (y x alpha y-0 rndx) (x-0 expt))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (defstrand resp 5 (n n) (group group-0) (a a-1) (b b-0)
+    (g (exp (gen) (mul y x alpha (rec y-0) (rec x-0))))
+    (group-dist group-dist-0) (y y-0) (x x-0))
+  (precedes ((0 1) (2 0)) ((0 3) (3 3)) ((1 0) (0 0)) ((2 2) (0 2))
+    ((2 2) (3 0)) ((3 4) (0 4)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha y-0)
+  (absent (y x) (y-0 x-0))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation nonce-test (added-strand resp 5) n (0 4)
+    (enc n (exp (gen) (mul y x alpha))))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (send (enc n (exp (gen) (mul y x alpha))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))))
+    ((recv group-dist-0
+       (cat "Group id" group-0
+         (exp (gen) (mul y x alpha (rec y-0) (rec x-0)))))
+      (recv (enc (exp (gen) (mul y x alpha (rec y-0))) (privk a-1)))
+      (send
+        (enc (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul y x alpha (rec y-0))) (privk b-0)))
+      (recv (enc n (exp (gen) (mul y x alpha)))) (send n)))
+  (label 24)
+  (parent 21)
+  (unrealized (3 0) (3 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b a-0 name) (group-dist chan)
+    (y x alpha rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (3 0))
+    ((3 1) (0 4)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation nonce-test (added-listener (exp (gen) (mul y x alpha))) n
+    (0 4) (enc n (exp (gen) (mul y x alpha))))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (send (enc n (exp (gen) (mul y x alpha))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha)))))
+  (label 25)
+  (parent 21)
+  (unrealized (3 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 a-1 b-0 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (y alpha x alpha-0 y-0 rndx) (x-0 expt))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x)
+    (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a-0) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (y y)
+    (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand resp 5 (n n) (group group-1) (a a-1) (b b-0)
+    (g (exp (gen) (mul y x alpha-0 (rec y-0) (rec x-0))))
+    (group-dist group-dist-1) (y y-0) (x x-0))
+  (precedes ((0 1) (2 0)) ((0 3) (4 3)) ((1 0) (0 0)) ((2 2) (0 2))
+    ((2 2) (4 0)) ((3 0) (2 0)) ((4 4) (0 4)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y alpha x alpha-0 y-0)
+  (absent (y (mul alpha x (rec alpha-0))) (y-0 x-0))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test (added-strand resp 5) n (0 4)
+    (enc n (exp (gen) (mul y x alpha-0))))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n (exp (gen) (mul y x alpha-0))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-1
+       (cat "Group id" group-1
+         (exp (gen) (mul y x alpha-0 (rec y-0) (rec x-0)))))
+      (recv (enc (exp (gen) (mul y x alpha-0 (rec y-0))) (privk a-1)))
+      (send
+        (enc (exp (gen) (mul y x alpha-0 (rec x-0)))
+          (exp (gen) (mul y x alpha-0 (rec y-0))) (privk b-0)))
+      (recv (enc n (exp (gen) (mul y x alpha-0)))) (send n)))
+  (label 26)
+  (parent 22)
+  (unrealized (4 0) (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 name)
+    (group-dist group-dist-0 chan) (y alpha x alpha-0 rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x)
+    (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a-0) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (y y)
+    (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (4 0))
+    ((3 0) (2 0)) ((4 1) (0 4)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y alpha x alpha-0)
+  (absent (y (mul alpha x (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test (added-listener (exp (gen) (mul y x alpha-0))) n
+    (0 4) (enc n (exp (gen) (mul y x alpha-0))))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n (exp (gen) (mul y x alpha-0))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0)))))
+  (label 27)
+  (parent 22)
+  (unrealized (4 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a a-0 b name) (group-dist chan)
+    (alpha x y rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 5 (n n) (group group) (a a-0) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (precedes ((0 1) (2 1)) ((0 3) (2 3)) ((1 0) (0 0)) ((1 0) (2 0))
+    ((2 2) (0 2)) ((2 4) (0 4)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n alpha x y)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation generalization weakened ((0 1) (2 0)))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n (exp (gen) (mul alpha x y))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk b))) (recv (enc n (exp (gen) (mul alpha x y))))
+      (send n)))
+  (label 28)
+  (parent 23)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (x x) (y y) (g (exp (gen) alpha)) (n n) (group group)
+        (group-dist group-dist))))
+  (origs))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 a-1 b-0 name)
+    (group-dist group-dist-0 chan) (y x alpha y-0 rndx) (x-0 expt))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (defstrand resp 3 (group group-0) (a a-1) (b b-0)
+    (g (exp (gen) (mul y x alpha (rec y-0)))) (group-dist group-dist-0)
+    (y y-0) (x x-0))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (4 0))
+    ((3 1) (0 4)) ((4 2) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha y-0)
+  (absent (y x) (y-0 x-0))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation nonce-test (added-strand resp 3)
+    (exp (gen) (mul y x alpha)) (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (send (enc n (exp (gen) (mul y x alpha))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha))))
+    ((recv group-dist-0
+       (cat "Group id" group-0 (exp (gen) (mul y x alpha (rec y-0)))))
+      (recv (enc (exp (gen) (mul y x alpha (rec y-0) x-0)) (privk a-1)))
+      (send
+        (enc (exp (gen) (mul y x alpha))
+          (exp (gen) (mul y x alpha (rec y-0) x-0)) (privk b-0)))))
+  (label 29)
+  (parent 25)
+  (unrealized (4 0) (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 a-1 name)
+    (group-dist group-dist-0 chan) (y x alpha x-0 rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (defstrand init 2 (group group-0) (a a-1)
+    (g (exp (gen) (mul y x alpha (rec x-0)))) (group-dist group-dist-0)
+    (x x-0))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (4 0))
+    ((3 1) (0 4)) ((4 1) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha x-0)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation nonce-test (added-strand init 2)
+    (exp (gen) (mul y x alpha)) (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (send (enc n (exp (gen) (mul y x alpha))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha))))
+    ((recv group-dist-0
+       (cat "Group id" group-0 (exp (gen) (mul y x alpha (rec x-0)))))
+      (send (enc (exp (gen) (mul y x alpha)) (privk a-1)))))
+  (label 30)
+  (parent 25)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b a-0 name) (group-dist chan)
+    (y x alpha rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (deflistener (cat (exp (gen) (mul y x)) alpha))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (4 0))
+    ((3 1) (0 4)) ((4 1) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y x)) alpha))
+    (exp (gen) (mul y x alpha)) (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (send (enc n (exp (gen) (mul y x alpha))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha))))
+    ((recv (cat (exp (gen) (mul y x)) alpha))
+      (send (cat (exp (gen) (mul y x)) alpha))))
+  (label 31)
+  (parent 25)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b a-0 name) (group-dist chan)
+    (y x alpha rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (deflistener (cat (exp (gen) (mul y alpha)) x))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (4 0))
+    ((3 1) (0 4)) ((4 1) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y alpha)) x))
+    (exp (gen) (mul y x alpha)) (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (send (enc n (exp (gen) (mul y x alpha))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha))))
+    ((recv (cat (exp (gen) (mul y alpha)) x))
+      (send (cat (exp (gen) (mul y alpha)) x))))
+  (label 32)
+  (parent 25)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b a-0 name) (group-dist chan)
+    (y x alpha rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group) (a a-0) (b b) (g (exp (gen) alpha))
+    (group-dist group-dist) (y y) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (deflistener (cat (exp (gen) (mul x alpha)) y))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (4 0))
+    ((3 1) (0 4)) ((4 1) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x alpha)) y))
+    (exp (gen) (mul y x alpha)) (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (send (enc n (exp (gen) (mul y x alpha))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha))))
+    ((recv (cat (exp (gen) (mul x alpha)) y))
+      (send (cat (exp (gen) (mul x alpha)) y))))
+  (label 33)
+  (parent 25)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 a-1 b-0 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (y alpha x alpha-0 y-0 rndx) (x-0 expt))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x)
+    (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a-0) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (y y)
+    (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (defstrand resp 3 (group group-1) (a a-1) (b b-0)
+    (g (exp (gen) (mul y x alpha-0 (rec y-0))))
+    (group-dist group-dist-1) (y y-0) (x x-0))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (5 0))
+    ((3 0) (2 0)) ((4 1) (0 4)) ((5 2) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y alpha x alpha-0 y-0)
+  (absent (y (mul alpha x (rec alpha-0))) (y-0 x-0))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test (added-strand resp 3)
+    (exp (gen) (mul y x alpha-0)) (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n (exp (gen) (mul y x alpha-0))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0))))
+    ((recv group-dist-1
+       (cat "Group id" group-1 (exp (gen) (mul y x alpha-0 (rec y-0)))))
+      (recv
+        (enc (exp (gen) (mul y x alpha-0 (rec y-0) x-0)) (privk a-1)))
+      (send
+        (enc (exp (gen) (mul y x alpha-0))
+          (exp (gen) (mul y x alpha-0 (rec y-0) x-0)) (privk b-0)))))
+  (label 34)
+  (parent 27)
+  (unrealized (5 0) (5 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 a-1 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (y alpha x alpha-0 x-0 rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x)
+    (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a-0) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (y y)
+    (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (defstrand init 2 (group group-1) (a a-1)
+    (g (exp (gen) (mul y x alpha-0 (rec x-0))))
+    (group-dist group-dist-1) (x x-0))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (5 0))
+    ((3 0) (2 0)) ((4 1) (0 4)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y alpha x alpha-0 x-0)
+  (absent (y (mul alpha x (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test (added-strand init 2)
+    (exp (gen) (mul y x alpha-0)) (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n (exp (gen) (mul y x alpha-0))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0))))
+    ((recv group-dist-1
+       (cat "Group id" group-1 (exp (gen) (mul y x alpha-0 (rec x-0)))))
+      (send (enc (exp (gen) (mul y x alpha-0)) (privk a-1)))))
+  (label 35)
+  (parent 27)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 name)
+    (group-dist group-dist-0 chan) (y alpha x alpha-0 rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x)
+    (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a-0) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (y y)
+    (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (deflistener (cat (exp (gen) (mul y x)) alpha-0))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (5 0))
+    ((3 0) (2 0)) ((4 1) (0 4)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y alpha x alpha-0)
+  (absent (y (mul alpha x (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y x)) alpha-0))
+    (exp (gen) (mul y x alpha-0)) (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n (exp (gen) (mul y x alpha-0))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0))))
+    ((recv (cat (exp (gen) (mul y x)) alpha-0))
+      (send (cat (exp (gen) (mul y x)) alpha-0))))
+  (label 36)
+  (parent 27)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 name)
+    (group-dist group-dist-0 chan) (y alpha x alpha-0 rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x)
+    (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a-0) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (y y)
+    (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (deflistener (cat (exp (gen) (mul y alpha-0)) x))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (5 0))
+    ((3 0) (2 0)) ((4 1) (0 4)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y alpha x alpha-0)
+  (absent (y (mul alpha x (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y alpha-0)) x))
+    (exp (gen) (mul y x alpha-0)) (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n (exp (gen) (mul y x alpha-0))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0))))
+    ((recv (cat (exp (gen) (mul y alpha-0)) x))
+      (send (cat (exp (gen) (mul y alpha-0)) x))))
+  (label 37)
+  (parent 27)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 name)
+    (group-dist group-dist-0 chan) (y alpha x alpha-0 rndx))
+  (defstrand init 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x)
+    (y (mul y (rec alpha) alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand resp 3 (group group-0) (a a-0) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (y y)
+    (x (mul alpha x (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (deflistener (cat (exp (gen) (mul x alpha-0)) y))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((2 2) (5 0))
+    ((3 0) (2 0)) ((4 1) (0 4)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y alpha x alpha-0)
+  (absent (y (mul alpha x (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x alpha-0)) y))
+    (exp (gen) (mul y x alpha-0)) (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))) (send (enc n (exp (gen) (mul y x alpha-0))))
+      (recv n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul alpha x))
+          (privk b))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0))))
+    ((recv (cat (exp (gen) (mul x alpha-0)) y))
+      (send (cat (exp (gen) (mul x alpha-0)) y))))
+  (label 38)
+  (parent 27)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol dh_sig2 diffie-hellman
+  (defrole group-init
+    (vars (alpha rndx) (group text) (group-dist chan))
+    (trace (send group-dist (cat "Group id" group (exp (gen) alpha))))
+    (uniq-gen alpha)
+    (conf group-dist))
+  (defrole init
+    (vars (x rndx) (y expt) (g base) (n group text) (a b name)
+      (group-dist chan))
+    (trace (recv group-dist (cat "Group id" group g))
+      (send (enc (exp g x) (privk a)))
+      (recv (enc (exp g y) (exp g x) (privk b)))
+      (send (enc n (exp g (mul x y)))) (recv n))
+    (uniq-gen n x)
+    (auth group-dist))
+  (defrole resp
+    (vars (y rndx) (x expt) (g base) (n group text) (a b name)
+      (group-dist chan))
+    (trace (recv group-dist (cat "Group id" group g))
+      (recv (enc (exp g x) (privk a)))
+      (send (enc (exp g y) (exp g x) (privk b)))
+      (recv (enc n (exp g (mul y x)))) (send n))
+    (uniq-gen y)
+    (absent (y x))
+    (auth group-dist))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (g base) (group-dist chan) (y rndx)
+    (x expt))
+  (defstrand resp 5 (n n) (group group) (a a) (b b) (g g)
+    (group-dist group-dist) (y y) (x x))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y)
+  (absent (y x))
+  (auth group-dist)
+  (traces
+    ((recv group-dist (cat "Group id" group g))
+      (recv (enc (exp g x) (privk a)))
+      (send (enc (exp g y) (exp g x) (privk b)))
+      (recv (enc n (exp g (mul y x)))) (send n)))
+  (label 39)
+  (unrealized (0 0) (0 1))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (group-dist chan) (y rndx) (x expt)
+    (alpha rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation channel-test (added-strand group-init 1)
+    (ch-msg group-dist (cat "Group id" group (exp (gen) alpha))) (0 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha)))))
+  (label 40)
+  (parent 39)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y rndx) (x expt) (alpha x-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a)
+    (g (exp (gen) (mul x alpha (rec x-0)))) (group-dist group-dist-0)
+    (x x-0))
+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x-0)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation encryption-test (added-strand init 2)
+    (enc (exp (gen) (mul x alpha)) (privk a)) (0 1))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0
+       (cat "Group id" group-0 (exp (gen) (mul x alpha (rec x-0)))))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))))
+  (label 41)
+  (parent 40)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (group-dist chan) (y x alpha rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation channel-test (displaced 3 1 group-init 1)
+    (ch-msg group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+    (2 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a)))))
+  (label 42)
+  (parent 41)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha x alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1)) ((3 0) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation channel-test (added-strand group-init 1)
+    (ch-msg group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+    (2 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))))
+  (label 43)
+  (parent 41)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (b a b-0 name) (group-dist chan)
+    (alpha y x rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 4 (n n) (group group) (a a) (b b-0)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x) (y y))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((2 3) (0 3)))
+  (non-orig (privk b) (privk a))
+  (uniq-gen n alpha y x)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation encryption-test (displaced 2 3 init 4)
+    (enc n (exp (gen) (mul y-0 x-0 alpha))) (0 3))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul alpha x)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk b))) (recv (enc n (exp (gen) (mul alpha y x))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul alpha x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha x))
+          (privk b-0))) (send (enc n (exp (gen) (mul alpha y x))))))
+  (label 44)
+  (parent 42)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (y y) (x x) (g (exp (gen) alpha)) (n n) (group group)
+        (group-dist group-dist))))
+  (origs))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 chan) (y x alpha x-0 rndx) (y-0 expt))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
+    (g (exp (gen) (mul y x alpha (rec x-0) (rec y-0))))
+    (group-dist group-dist-0) (x x-0) (y y-0))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 3) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha x-0)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation encryption-test (added-strand init 4)
+    (enc n (exp (gen) (mul y x alpha))) (0 3))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv group-dist-0
+       (cat "Group id" group-0
+         (exp (gen) (mul y x alpha (rec x-0) (rec y-0)))))
+      (send (enc (exp (gen) (mul y x alpha (rec y-0))) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul y x alpha (rec y-0))) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha))))))
+  (label 45)
+  (parent 42)
+  (unrealized (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (group-dist chan) (y x alpha rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation encryption-test
+    (added-listener (exp (gen) (mul y x alpha)))
+    (enc n (exp (gen) (mul y x alpha))) (0 3))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha)))))
+  (label 46)
+  (parent 42)
+  (unrealized (3 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (b a b-0 name)
+    (group-dist group-dist-0 chan) (alpha alpha-0 y x rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) alpha-0 x)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-0) (a a) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x) (y y))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (3 0))
+    ((3 1) (0 1)) ((3 3) (0 3)))
+  (non-orig (privk b) (privk a))
+  (uniq-gen n alpha alpha-0 y x)
+  (absent (y (mul (rec alpha) alpha-0 x)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation encryption-test (displaced 2 4 init 4)
+    (enc n (exp (gen) (mul y-0 x-0 alpha-0))) (0 3))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul alpha-0 x)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha-0 x))
+          (privk b))) (recv (enc n (exp (gen) (mul alpha-0 y x))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul alpha-0 x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul alpha-0 y)) (exp (gen) (mul alpha-0 x))
+          (privk b-0))) (send (enc n (exp (gen) (mul alpha-0 y x))))))
+  (label 47)
+  (parent 43)
+  (unrealized (3 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (y alpha x alpha-0 x-0 rndx) (y-0 expt))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-1) (a a-0) (b b-0)
+    (g (exp (gen) (mul y x alpha-0 (rec x-0) (rec y-0))))
+    (group-dist group-dist-1) (x x-0) (y y-0))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 3) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y alpha x alpha-0 x-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation encryption-test (added-strand init 4)
+    (enc n (exp (gen) (mul y x alpha-0))) (0 3))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-1
+       (cat "Group id" group-1
+         (exp (gen) (mul y x alpha-0 (rec x-0) (rec y-0)))))
+      (send (enc (exp (gen) (mul y x alpha-0 (rec y-0))) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha-0 (rec x-0)))
+          (exp (gen) (mul y x alpha-0 (rec y-0))) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha-0))))))
+  (label 48)
+  (parent 43)
+  (unrealized (4 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha x alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation encryption-test
+    (added-listener (exp (gen) (mul y x alpha-0)))
+    (enc n (exp (gen) (mul y x alpha-0))) (0 3))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0)))))
+  (label 49)
+  (parent 43)
+  (unrealized (4 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b a-0 b-0 name) (group-dist chan)
+    (y x x-0 alpha rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x-0)
+    (y (mul y x (rec x-0))))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 3) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x x-0 alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation channel-test (displaced 4 1 group-init 1)
+    (ch-msg group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+    (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x (rec x-0) alpha))
+          (exp (gen) (mul x-0 alpha)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha))))))
+  (label 50)
+  (parent 45)
+  (unrealized (3 2))
+  (comment "6 in cohort - 6 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 chan) (y x alpha x-0 alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x-0)
+    (y (mul y x alpha (rec x-0) (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 3) (0 3)) ((4 0) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha x-0 alpha-0)
+  (absent (y x))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation channel-test (added-strand group-init 1)
+    (ch-msg group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+    (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha)))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))))
+  (label 51)
+  (parent 45)
+  (unrealized (3 2))
+  (comment "6 in cohort - 6 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 chan) (y x alpha y-0 rndx) (x-0 expt))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (defstrand resp 3 (group group-0) (a a-0) (b b-0)
+    (g (exp (gen) (mul y x alpha (rec y-0)))) (group-dist group-dist-0)
+    (y y-0) (x x-0))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (0 3)) ((4 2) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x alpha y-0)
+  (absent (y x) (y-0 x-0))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation nonce-test (added-strand resp 3)
+    (exp (gen) (mul y x alpha)) (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha))))
+    ((recv group-dist-0
+       (cat "Group id" group-0 (exp (gen) (mul y x alpha (rec y-0)))))
+      (recv (enc (exp (gen) (mul y x alpha (rec y-0) x-0)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y x alpha))
+          (exp (gen) (mul y x alpha (rec y-0) x-0)) (privk b-0)))))
+  (label 52)
+  (parent 46)
+  (unrealized (4 0) (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 name)
+    (group-dist group-dist-0 chan) (y x alpha x-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (defstrand init 2 (group group-0) (a a-0)
+    (g (exp (gen) (mul y x alpha (rec x-0)))) (group-dist group-dist-0)
+    (x x-0))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (0 3)) ((4 1) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x alpha x-0)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation nonce-test (added-strand init 2)
+    (exp (gen) (mul y x alpha)) (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha))))
+    ((recv group-dist-0
+       (cat "Group id" group-0 (exp (gen) (mul y x alpha (rec x-0)))))
+      (send (enc (exp (gen) (mul y x alpha)) (privk a-0)))))
+  (label 53)
+  (parent 46)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (group-dist chan) (y x alpha rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (deflistener (cat (exp (gen) (mul y x)) alpha))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (0 3)) ((4 1) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y x)) alpha))
+    (exp (gen) (mul y x alpha)) (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha))))
+    ((recv (cat (exp (gen) (mul y x)) alpha))
+      (send (cat (exp (gen) (mul y x)) alpha))))
+  (label 54)
+  (parent 46)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (group-dist chan) (y x alpha rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (deflistener (cat (exp (gen) (mul y alpha)) x))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (0 3)) ((4 1) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y alpha)) x))
+    (exp (gen) (mul y x alpha)) (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha))))
+    ((recv (cat (exp (gen) (mul y alpha)) x))
+      (send (cat (exp (gen) (mul y alpha)) x))))
+  (label 55)
+  (parent 46)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b name) (group-dist chan) (y x alpha rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (deflistener (exp (gen) (mul y x alpha)))
+  (deflistener (cat (exp (gen) (mul x alpha)) y))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (0 3)) ((4 1) (3 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x alpha)) y))
+    (exp (gen) (mul y x alpha)) (3 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv (exp (gen) (mul y x alpha)))
+      (send (exp (gen) (mul y x alpha))))
+    ((recv (cat (exp (gen) (mul x alpha)) y))
+      (send (cat (exp (gen) (mul x alpha)) y))))
+  (label 56)
+  (parent 46)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (b a b-0 a-0 b-1 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (alpha alpha-0 y x y-0 rndx) (x-0 expt))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) alpha-0 x)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-0) (a a) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x) (y y))
+  (defstrand resp 3 (group group-1) (a a-0) (b b-1)
+    (g (exp (gen) (mul alpha-0 y (rec y-0)))) (group-dist group-dist-1)
+    (y y-0) (x x-0))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (3 0))
+    ((3 1) (0 1)) ((3 3) (0 3)) ((4 2) (3 2)))
+  (non-orig (privk b) (privk a))
+  (uniq-gen n alpha alpha-0 y x y-0)
+  (absent (y (mul (rec alpha) alpha-0 x)) (y-0 x-0))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test (added-strand resp 3)
+    (exp (gen) (mul alpha-0 y)) (3 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul alpha-0 x)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha-0 x))
+          (privk b))) (recv (enc n (exp (gen) (mul alpha-0 y x))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul alpha-0 x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul alpha-0 y)) (exp (gen) (mul alpha-0 x))
+          (privk b-0))) (send (enc n (exp (gen) (mul alpha-0 y x)))))
+    ((recv group-dist-1
+       (cat "Group id" group-1 (exp (gen) (mul alpha-0 y (rec y-0)))))
+      (recv (enc (exp (gen) (mul alpha-0 y (rec y-0) x-0)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul alpha-0 y))
+          (exp (gen) (mul alpha-0 y (rec y-0) x-0)) (privk b-1)))))
+  (label 57)
+  (parent 47)
+  (unrealized (4 0) (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (b a b-0 a-0 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (alpha alpha-0 y x x-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) alpha-0 x)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-0) (a a) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x) (y y))
+  (defstrand init 2 (group group-1) (a a-0)
+    (g (exp (gen) (mul alpha-0 y (rec x-0)))) (group-dist group-dist-1)
+    (x x-0))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (3 0))
+    ((3 1) (0 1)) ((3 3) (0 3)) ((4 1) (3 2)))
+  (non-orig (privk b) (privk a))
+  (uniq-gen n alpha alpha-0 y x x-0)
+  (absent (y (mul (rec alpha) alpha-0 x)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test (added-strand init 2)
+    (exp (gen) (mul alpha-0 y)) (3 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul alpha-0 x)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha-0 x))
+          (privk b))) (recv (enc n (exp (gen) (mul alpha-0 y x))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul alpha-0 x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul alpha-0 y)) (exp (gen) (mul alpha-0 x))
+          (privk b-0))) (send (enc n (exp (gen) (mul alpha-0 y x)))))
+    ((recv group-dist-1
+       (cat "Group id" group-1 (exp (gen) (mul alpha-0 y (rec x-0)))))
+      (send (enc (exp (gen) (mul alpha-0 y)) (privk a-0)))))
+  (label 58)
+  (parent 47)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (b a b-0 name)
+    (group-dist group-dist-0 chan) (alpha alpha-0 y x rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) alpha-0 x)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-0) (a a) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x) (y y))
+  (deflistener (cat (exp (gen) alpha-0) y))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (3 0))
+    ((3 1) (0 1)) ((3 3) (0 3)) ((4 1) (3 2)))
+  (non-orig (privk b) (privk a))
+  (uniq-gen n alpha alpha-0 y x)
+  (absent (y (mul (rec alpha) alpha-0 x)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test (added-listener (cat (exp (gen) alpha-0) y))
+    (exp (gen) (mul alpha-0 y)) (3 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul alpha-0 x)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha-0 x))
+          (privk b))) (recv (enc n (exp (gen) (mul alpha-0 y x))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul alpha-0 x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul alpha-0 y)) (exp (gen) (mul alpha-0 x))
+          (privk b-0))) (send (enc n (exp (gen) (mul alpha-0 y x)))))
+    ((recv (cat (exp (gen) alpha-0) y))
+      (send (cat (exp (gen) alpha-0) y))))
+  (label 59)
+  (parent 47)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (b a b-0 name)
+    (group-dist group-dist-0 chan) (alpha alpha-0 y x rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) alpha-0 x)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-0) (a a) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x) (y y))
+  (deflistener (cat (exp (gen) y) alpha-0))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (3 0))
+    ((3 1) (0 1)) ((3 3) (0 3)) ((4 1) (3 2)))
+  (non-orig (privk b) (privk a))
+  (uniq-gen n alpha alpha-0 y x)
+  (absent (y (mul (rec alpha) alpha-0 x)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test (added-listener (cat (exp (gen) y) alpha-0))
+    (exp (gen) (mul alpha-0 y)) (3 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul alpha-0 x)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul alpha-0 x))
+          (privk b))) (recv (enc n (exp (gen) (mul alpha-0 y x))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul alpha-0 x)) (privk a)))
+      (recv
+        (enc (exp (gen) (mul alpha-0 y)) (exp (gen) (mul alpha-0 x))
+          (privk b-0))) (send (enc n (exp (gen) (mul alpha-0 y x)))))
+    ((recv (cat (exp (gen) y) alpha-0))
+      (send (cat (exp (gen) y) alpha-0))))
+  (label 60)
+  (parent 47)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 chan) (y x alpha x-0 alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist) (y y)
+    (x (mul x alpha (rec alpha-0))))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha-0))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha))
+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist) (x x-0)
+    (y (mul y x alpha (rec x-0) (rec alpha-0))))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 3) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha x-0 alpha-0)
+  (absent (y (mul x alpha (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation channel-test (displaced 5 1 group-init 1)
+    (ch-msg group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1)))
+    (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha))))))
+  (label 61)
+  (parent 48)
+  (unrealized (4 2))
+  (comment "6 in cohort - 6 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 chan) (alpha y x x-0 alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x-0)
+    (y (mul y x (rec x-0))))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 3) (0 3)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n alpha y x x-0 alpha-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation channel-test (displaced 5 3 group-init 1)
+    (ch-msg group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1)))
+    (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x (rec x-0) alpha-0))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha-0))))))
+  (label 62)
+  (parent 48)
+  (unrealized (4 2))
+  (comment "6 in cohort - 6 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (alpha y x alpha-0 x-0 alpha-1 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-1) (a a-0) (b b-0)
+    (g (exp (gen) alpha-1)) (group-dist group-dist-1) (x x-0)
+    (y (mul y x alpha-0 (rec x-0) (rec alpha-1))))
+  (defstrand group-init 1 (group group-1) (group-dist group-dist-1)
+    (alpha alpha-1))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 3) (0 3)) ((5 0) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n alpha y x alpha-0 x-0 alpha-1)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0 group-dist-1)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation channel-test (added-strand group-init 1)
+    (ch-msg group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1)))
+    (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1)))
+      (send (enc (exp (gen) (mul x-0 alpha-1)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha-0 (rec x-0)))
+          (exp (gen) (mul x-0 alpha-1)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha-0)))))
+    ((send group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1)))))
+  (label 63)
+  (parent 48)
+  (unrealized (4 2))
+  (comment "6 in cohort - 6 not yet seen"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (y alpha x alpha-0 y-0 rndx) (x-0 expt))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (defstrand resp 3 (group group-1) (a a-0) (b b-0)
+    (g (exp (gen) (mul y x alpha-0 (rec y-0))))
+    (group-dist group-dist-1) (y y-0) (x x-0))
+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (0 3)) ((5 2) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0 y-0)
+  (absent (y (mul (rec alpha) x alpha-0)) (y-0 x-0))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test (added-strand resp 3)
+    (exp (gen) (mul y x alpha-0)) (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0))))
+    ((recv group-dist-1
+       (cat "Group id" group-1 (exp (gen) (mul y x alpha-0 (rec y-0)))))
+      (recv
+        (enc (exp (gen) (mul y x alpha-0 (rec y-0) x-0)) (privk a-0)))
+      (send
+        (enc (exp (gen) (mul y x alpha-0))
+          (exp (gen) (mul y x alpha-0 (rec y-0) x-0)) (privk b-0)))))
+  (label 64)
+  (parent 49)
+  (unrealized (5 0) (5 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (y alpha x alpha-0 x-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (defstrand init 2 (group group-1) (a a-0)
+    (g (exp (gen) (mul y x alpha-0 (rec x-0))))
+    (group-dist group-dist-1) (x x-0))
+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (0 3)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0 x-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test (added-strand init 2)
+    (exp (gen) (mul y x alpha-0)) (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0))))
+    ((recv group-dist-1
+       (cat "Group id" group-1 (exp (gen) (mul y x alpha-0 (rec x-0)))))
+      (send (enc (exp (gen) (mul y x alpha-0)) (privk a-0)))))
+  (label 65)
+  (parent 49)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha x alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (deflistener (cat (exp (gen) (mul y x)) alpha-0))
+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (0 3)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y x)) alpha-0))
+    (exp (gen) (mul y x alpha-0)) (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0))))
+    ((recv (cat (exp (gen) (mul y x)) alpha-0))
+      (send (cat (exp (gen) (mul y x)) alpha-0))))
+  (label 66)
+  (parent 49)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha x alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (deflistener (cat (exp (gen) (mul y alpha-0)) x))
+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (0 3)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y alpha-0)) x))
+    (exp (gen) (mul y x alpha-0)) (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0))))
+    ((recv (cat (exp (gen) (mul y alpha-0)) x))
+      (send (cat (exp (gen) (mul y alpha-0)) x))))
+  (label 67)
+  (parent 49)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b name) (group-dist group-dist-0 chan)
+    (y alpha x alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (exp (gen) (mul y x alpha-0)))
+  (deflistener (cat (exp (gen) (mul x alpha-0)) y))
+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (0 3)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y alpha x alpha-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x alpha-0)) y))
+    (exp (gen) (mul y x alpha-0)) (4 0))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (exp (gen) (mul y x alpha-0)))
+      (send (exp (gen) (mul y x alpha-0))))
+    ((recv (cat (exp (gen) (mul x alpha-0)) y))
+      (send (cat (exp (gen) (mul x alpha-0)) y))))
+  (label 68)
+  (parent 49)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b a-0 b-0 name) (group-dist chan)
+    (y x x-0 alpha rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x-0)
+    (y (mul y x (rec x-0))))
+  (deflistener (cat (exp (gen) (mul y x (rec x-0))) alpha))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (4 0)) ((3 3) (0 3)) ((4 1) (3 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x x-0 alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y x (rec x-0))) alpha))
+    (exp (gen) (mul y x (rec x-0) alpha)) (3 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x (rec x-0) alpha))
+          (exp (gen) (mul x-0 alpha)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha)))))
+    ((recv (cat (exp (gen) (mul y x (rec x-0))) alpha))
+      (send (cat (exp (gen) (mul y x (rec x-0))) alpha))))
+  (label 69)
+  (parent 50)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 a-1 b-1 name)
+    (group-dist group-dist-0 chan) (y x x-0 alpha y-0 rndx) (x-1 expt))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x-0)
+    (y (mul y x (rec x-0))))
+  (defstrand resp 3 (group group-0) (a a-1) (b b-1)
+    (g (exp (gen) (mul y x (rec x-0) alpha (rec y-0))))
+    (group-dist group-dist-0) (y y-0) (x x-1))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (4 0)) ((3 3) (0 3)) ((4 2) (3 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x x-0 alpha y-0)
+  (absent (y x) (y-0 x-1))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation nonce-test (added-strand resp 3)
+    (exp (gen) (mul y x (rec x-0) alpha)) (3 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x (rec x-0) alpha))
+          (exp (gen) (mul x-0 alpha)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha)))))
+    ((recv group-dist-0
+       (cat "Group id" group-0
+         (exp (gen) (mul y x (rec x-0) alpha (rec y-0)))))
+      (recv
+        (enc (exp (gen) (mul y x (rec x-0) alpha (rec y-0) x-1))
+          (privk a-1)))
+      (send
+        (enc (exp (gen) (mul y x (rec x-0) alpha))
+          (exp (gen) (mul y x (rec x-0) alpha (rec y-0) x-1))
+          (privk b-1)))))
+  (label 70)
+  (parent 50)
+  (unrealized (4 0) (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 a-1 name)
+    (group-dist group-dist-0 chan) (y x x-0 alpha x-1 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x-0)
+    (y (mul y x (rec x-0))))
+  (defstrand init 2 (group group-0) (a a-1)
+    (g (exp (gen) (mul y x (rec x-0) alpha (rec x-1))))
+    (group-dist group-dist-0) (x x-1))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (4 0)) ((3 3) (0 3)) ((4 1) (3 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x x-0 alpha x-1)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist group-dist-0)
+  (operation nonce-test (added-strand init 2)
+    (exp (gen) (mul y x (rec x-0) alpha)) (3 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x (rec x-0) alpha))
+          (exp (gen) (mul x-0 alpha)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha)))))
+    ((recv group-dist-0
+       (cat "Group id" group-0
+         (exp (gen) (mul y x (rec x-0) alpha (rec x-1)))))
+      (send (enc (exp (gen) (mul y x (rec x-0) alpha)) (privk a-1)))))
+  (label 71)
+  (parent 50)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b a-0 b-0 name) (group-dist chan)
+    (y x x-0 alpha rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x-0)
+    (y (mul y x (rec x-0))))
+  (deflistener (cat (exp (gen) (mul y x alpha)) x-0))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (4 0)) ((3 3) (0 3)) ((4 1) (3 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x x-0 alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y x alpha)) x-0))
+    (exp (gen) (mul y x (rec x-0) alpha)) (3 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x (rec x-0) alpha))
+          (exp (gen) (mul x-0 alpha)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha)))))
+    ((recv (cat (exp (gen) (mul y x alpha)) x-0))
+      (send (cat (exp (gen) (mul y x alpha)) x-0))))
+  (label 72)
+  (parent 50)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b a-0 b-0 name) (group-dist chan)
+    (y x x-0 alpha rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x-0)
+    (y (mul y x (rec x-0))))
+  (deflistener (cat (exp (gen) (mul y (rec x-0) alpha)) x))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (4 0)) ((3 3) (0 3)) ((4 1) (3 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x x-0 alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y (rec x-0) alpha)) x))
+    (exp (gen) (mul y x (rec x-0) alpha)) (3 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x (rec x-0) alpha))
+          (exp (gen) (mul x-0 alpha)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha)))))
+    ((recv (cat (exp (gen) (mul y (rec x-0) alpha)) x))
+      (send (cat (exp (gen) (mul y (rec x-0) alpha)) x))))
+  (label 73)
+  (parent 50)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group text) (a b a-0 b-0 name) (group-dist chan)
+    (y x x-0 alpha rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
+    (g (exp (gen) alpha)) (group-dist group-dist) (x x-0)
+    (y (mul y x (rec x-0))))
+  (deflistener (cat (exp (gen) (mul x (rec x-0) alpha)) y))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (4 0)) ((3 3) (0 3)) ((4 1) (3 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x x-0 alpha)
+  (absent (y x))
+  (conf group-dist)
+  (auth group-dist)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x (rec x-0) alpha)) y))
+    (exp (gen) (mul y x (rec x-0) alpha)) (3 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x-0 alpha)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x (rec x-0) alpha))
+          (exp (gen) (mul x-0 alpha)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha)))))
+    ((recv (cat (exp (gen) (mul x (rec x-0) alpha)) y))
+      (send (cat (exp (gen) (mul x (rec x-0) alpha)) y))))
+  (label 74)
+  (parent 50)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 chan) (y x alpha x-0 alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x-0)
+    (y (mul y x alpha (rec x-0) (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (cat (exp (gen) (mul y x alpha)) x-0))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (5 0)) ((3 3) (0 3)) ((4 0) (3 0)) ((5 1) (3 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha x-0 alpha-0)
+  (absent (y x))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y x alpha)) x-0))
+    (exp (gen) (mul y x alpha (rec x-0))) (3 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha)))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (cat (exp (gen) (mul y x alpha)) x-0))
+      (send (cat (exp (gen) (mul y x alpha)) x-0))))
+  (label 75)
+  (parent 51)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 b-0 a-1 b-1 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (y x alpha x-0 alpha-0 y-0 rndx) (x-1 expt))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x-0)
+    (y (mul y x alpha (rec x-0) (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand resp 3 (group group-1) (a a-1) (b b-1)
+    (g (exp (gen) (mul y x alpha (rec x-0) (rec y-0))))
+    (group-dist group-dist-1) (y y-0) (x x-1))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (5 0)) ((3 3) (0 3)) ((4 0) (3 0)) ((5 2) (3 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha x-0 alpha-0 y-0)
+  (absent (y x) (y-0 x-1))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test (added-strand resp 3)
+    (exp (gen) (mul y x alpha (rec x-0))) (3 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha)))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-1
+       (cat "Group id" group-1
+         (exp (gen) (mul y x alpha (rec x-0) (rec y-0)))))
+      (recv
+        (enc (exp (gen) (mul y x alpha (rec x-0) (rec y-0) x-1))
+          (privk a-1)))
+      (send
+        (enc (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul y x alpha (rec x-0) (rec y-0) x-1))
+          (privk b-1)))))
+  (label 76)
+  (parent 51)
+  (unrealized (5 0) (5 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 b-0 a-1 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (y x alpha x-0 alpha-0 x-1 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x-0)
+    (y (mul y x alpha (rec x-0) (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 2 (group group-1) (a a-1)
+    (g (exp (gen) (mul y x alpha (rec x-0) (rec x-1))))
+    (group-dist group-dist-1) (x x-1))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (5 0)) ((3 3) (0 3)) ((4 0) (3 0)) ((5 1) (3 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha x-0 alpha-0 x-1)
+  (absent (y x))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test (added-strand init 2)
+    (exp (gen) (mul y x alpha (rec x-0))) (3 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha)))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-1
+       (cat "Group id" group-1
+         (exp (gen) (mul y x alpha (rec x-0) (rec x-1)))))
+      (send (enc (exp (gen) (mul y x alpha (rec x-0))) (privk a-1)))))
+  (label 77)
+  (parent 51)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 chan) (y x alpha x-0 alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x-0)
+    (y (mul y x alpha (rec x-0) (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (cat (exp (gen) (mul y x (rec x-0))) alpha))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (5 0)) ((3 3) (0 3)) ((4 0) (3 0)) ((5 1) (3 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha x-0 alpha-0)
+  (absent (y x))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y x (rec x-0))) alpha))
+    (exp (gen) (mul y x alpha (rec x-0))) (3 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha)))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (cat (exp (gen) (mul y x (rec x-0))) alpha))
+      (send (cat (exp (gen) (mul y x (rec x-0))) alpha))))
+  (label 78)
+  (parent 51)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 chan) (y x alpha x-0 alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x-0)
+    (y (mul y x alpha (rec x-0) (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (cat (exp (gen) (mul y alpha (rec x-0))) x))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (5 0)) ((3 3) (0 3)) ((4 0) (3 0)) ((5 1) (3 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha x-0 alpha-0)
+  (absent (y x))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y alpha (rec x-0))) x))
+    (exp (gen) (mul y x alpha (rec x-0))) (3 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha)))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (cat (exp (gen) (mul y alpha (rec x-0))) x))
+      (send (cat (exp (gen) (mul y alpha (rec x-0))) x))))
+  (label 79)
+  (parent 51)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 chan) (y x alpha x-0 alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y) (x x))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist) (x x))
+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x-0)
+    (y (mul y x alpha (rec x-0) (rec alpha-0))))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (deflistener (cat (exp (gen) (mul x alpha (rec x-0))) y))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 1) (5 0)) ((3 3) (0 3)) ((4 0) (3 0)) ((5 1) (3 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha x-0 alpha-0)
+  (absent (y x))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x alpha (rec x-0))) y))
+    (exp (gen) (mul y x alpha (rec x-0))) (3 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha)))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv (cat (exp (gen) (mul x alpha (rec x-0))) y))
+      (send (cat (exp (gen) (mul x alpha (rec x-0))) y))))
+  (label 80)
+  (parent 51)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 chan) (y x alpha x-0 alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist) (y y)
+    (x (mul x alpha (rec alpha-0))))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha-0))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha))
+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist) (x x-0)
+    (y (mul y x alpha (rec x-0) (rec alpha-0))))
+  (deflistener (cat (exp (gen) (mul y x alpha)) x-0))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (5 0)) ((4 3) (0 3)) ((5 1) (4 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha x-0 alpha-0)
+  (absent (y (mul x alpha (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y x alpha)) x-0))
+    (exp (gen) (mul y x alpha (rec x-0))) (4 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha)))))
+    ((recv (cat (exp (gen) (mul y x alpha)) x-0))
+      (send (cat (exp (gen) (mul y x alpha)) x-0))))
+  (label 81)
+  (parent 61)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 b-0 a-1 b-1 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (y x alpha x-0 alpha-0 y-0 rndx) (x-1 expt))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist) (y y)
+    (x (mul x alpha (rec alpha-0))))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha-0))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha))
+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist) (x x-0)
+    (y (mul y x alpha (rec x-0) (rec alpha-0))))
+  (defstrand resp 3 (group group-1) (a a-1) (b b-1)
+    (g (exp (gen) (mul y x alpha (rec x-0) (rec y-0))))
+    (group-dist group-dist-1) (y y-0) (x x-1))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (5 0)) ((4 3) (0 3)) ((5 2) (4 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha x-0 alpha-0 y-0)
+  (absent (y (mul x alpha (rec alpha-0))) (y-0 x-1))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test (added-strand resp 3)
+    (exp (gen) (mul y x alpha (rec x-0))) (4 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha)))))
+    ((recv group-dist-1
+       (cat "Group id" group-1
+         (exp (gen) (mul y x alpha (rec x-0) (rec y-0)))))
+      (recv
+        (enc (exp (gen) (mul y x alpha (rec x-0) (rec y-0) x-1))
+          (privk a-1)))
+      (send
+        (enc (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul y x alpha (rec x-0) (rec y-0) x-1))
+          (privk b-1)))))
+  (label 82)
+  (parent 61)
+  (unrealized (5 0) (5 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 b-0 a-1 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (y x alpha x-0 alpha-0 x-1 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist) (y y)
+    (x (mul x alpha (rec alpha-0))))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha-0))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha))
+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist) (x x-0)
+    (y (mul y x alpha (rec x-0) (rec alpha-0))))
+  (defstrand init 2 (group group-1) (a a-1)
+    (g (exp (gen) (mul y x alpha (rec x-0) (rec x-1))))
+    (group-dist group-dist-1) (x x-1))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (5 0)) ((4 3) (0 3)) ((5 1) (4 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha x-0 alpha-0 x-1)
+  (absent (y (mul x alpha (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test (added-strand init 2)
+    (exp (gen) (mul y x alpha (rec x-0))) (4 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha)))))
+    ((recv group-dist-1
+       (cat "Group id" group-1
+         (exp (gen) (mul y x alpha (rec x-0) (rec x-1)))))
+      (send (enc (exp (gen) (mul y x alpha (rec x-0))) (privk a-1)))))
+  (label 83)
+  (parent 61)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 chan) (y x alpha x-0 alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist) (y y)
+    (x (mul x alpha (rec alpha-0))))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha-0))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha))
+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist) (x x-0)
+    (y (mul y x alpha (rec x-0) (rec alpha-0))))
+  (deflistener (cat (exp (gen) (mul y x (rec x-0))) alpha))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (5 0)) ((4 3) (0 3)) ((5 1) (4 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha x-0 alpha-0)
+  (absent (y (mul x alpha (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y x (rec x-0))) alpha))
+    (exp (gen) (mul y x alpha (rec x-0))) (4 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha)))))
+    ((recv (cat (exp (gen) (mul y x (rec x-0))) alpha))
+      (send (cat (exp (gen) (mul y x (rec x-0))) alpha))))
+  (label 84)
+  (parent 61)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 chan) (y x alpha x-0 alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist) (y y)
+    (x (mul x alpha (rec alpha-0))))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha-0))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha))
+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist) (x x-0)
+    (y (mul y x alpha (rec x-0) (rec alpha-0))))
+  (deflistener (cat (exp (gen) (mul y alpha (rec x-0))) x))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (5 0)) ((4 3) (0 3)) ((5 1) (4 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha x-0 alpha-0)
+  (absent (y (mul x alpha (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y alpha (rec x-0))) x))
+    (exp (gen) (mul y x alpha (rec x-0))) (4 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha)))))
+    ((recv (cat (exp (gen) (mul y alpha (rec x-0))) x))
+      (send (cat (exp (gen) (mul y alpha (rec x-0))) x))))
+  (label 85)
+  (parent 61)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 chan) (y x alpha x-0 alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha-0)) (group-dist group-dist) (y y)
+    (x (mul x alpha (rec alpha-0))))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha-0))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha))
+  (defstrand init 4 (n n) (group group) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist) (x x-0)
+    (y (mul y x alpha (rec x-0) (rec alpha-0))))
+  (deflistener (cat (exp (gen) (mul x alpha (rec x-0))) y))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (5 0)) ((4 3) (0 3)) ((5 1) (4 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n y x alpha x-0 alpha-0)
+  (absent (y (mul x alpha (rec alpha-0))))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x alpha (rec x-0))) y))
+    (exp (gen) (mul y x alpha (rec x-0))) (4 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha-0)))
+      (recv (enc (exp (gen) (mul x alpha)) (privk a)))
+      (send
+        (enc (exp (gen) (mul y alpha-0)) (exp (gen) (mul x alpha))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha)))
+      (send (enc (exp (gen) (mul x alpha)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha))))
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha (rec x-0)))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha)))))
+    ((recv (cat (exp (gen) (mul x alpha (rec x-0))) y))
+      (send (cat (exp (gen) (mul x alpha (rec x-0))) y))))
+  (label 86)
+  (parent 61)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 chan) (alpha y x x-0 alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x-0)
+    (y (mul y x (rec x-0))))
+  (deflistener (cat (exp (gen) (mul y x (rec x-0))) alpha-0))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (5 0)) ((4 3) (0 3)) ((5 1) (4 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n alpha y x x-0 alpha-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y x (rec x-0))) alpha-0))
+    (exp (gen) (mul y x (rec x-0) alpha-0)) (4 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x (rec x-0) alpha-0))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha-0)))))
+    ((recv (cat (exp (gen) (mul y x (rec x-0))) alpha-0))
+      (send (cat (exp (gen) (mul y x (rec x-0))) alpha-0))))
+  (label 87)
+  (parent 62)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 b-0 a-1 b-1 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (alpha y x x-0 alpha-0 y-0 rndx) (x-1 expt))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x-0)
+    (y (mul y x (rec x-0))))
+  (defstrand resp 3 (group group-1) (a a-1) (b b-1)
+    (g (exp (gen) (mul y x (rec x-0) alpha-0 (rec y-0))))
+    (group-dist group-dist-1) (y y-0) (x x-1))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (5 0)) ((4 3) (0 3)) ((5 2) (4 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n alpha y x x-0 alpha-0 y-0)
+  (absent (y (mul (rec alpha) x alpha-0)) (y-0 x-1))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test (added-strand resp 3)
+    (exp (gen) (mul y x (rec x-0) alpha-0)) (4 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x (rec x-0) alpha-0))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha-0)))))
+    ((recv group-dist-1
+       (cat "Group id" group-1
+         (exp (gen) (mul y x (rec x-0) alpha-0 (rec y-0)))))
+      (recv
+        (enc (exp (gen) (mul y x (rec x-0) alpha-0 (rec y-0) x-1))
+          (privk a-1)))
+      (send
+        (enc (exp (gen) (mul y x (rec x-0) alpha-0))
+          (exp (gen) (mul y x (rec x-0) alpha-0 (rec y-0) x-1))
+          (privk b-1)))))
+  (label 88)
+  (parent 62)
+  (unrealized (5 0) (5 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 b-0 a-1 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (alpha y x x-0 alpha-0 x-1 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x-0)
+    (y (mul y x (rec x-0))))
+  (defstrand init 2 (group group-1) (a a-1)
+    (g (exp (gen) (mul y x (rec x-0) alpha-0 (rec x-1))))
+    (group-dist group-dist-1) (x x-1))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (5 0)) ((4 3) (0 3)) ((5 1) (4 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n alpha y x x-0 alpha-0 x-1)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test (added-strand init 2)
+    (exp (gen) (mul y x (rec x-0) alpha-0)) (4 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x (rec x-0) alpha-0))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha-0)))))
+    ((recv group-dist-1
+       (cat "Group id" group-1
+         (exp (gen) (mul y x (rec x-0) alpha-0 (rec x-1)))))
+      (send (enc (exp (gen) (mul y x (rec x-0) alpha-0)) (privk a-1)))))
+  (label 89)
+  (parent 62)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 chan) (alpha y x x-0 alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x-0)
+    (y (mul y x (rec x-0))))
+  (deflistener (cat (exp (gen) (mul y x alpha-0)) x-0))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (5 0)) ((4 3) (0 3)) ((5 1) (4 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n alpha y x x-0 alpha-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y x alpha-0)) x-0))
+    (exp (gen) (mul y x (rec x-0) alpha-0)) (4 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x (rec x-0) alpha-0))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha-0)))))
+    ((recv (cat (exp (gen) (mul y x alpha-0)) x-0))
+      (send (cat (exp (gen) (mul y x alpha-0)) x-0))))
+  (label 90)
+  (parent 62)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 chan) (alpha y x x-0 alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x-0)
+    (y (mul y x (rec x-0))))
+  (deflistener (cat (exp (gen) (mul y (rec x-0) alpha-0)) x))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (5 0)) ((4 3) (0 3)) ((5 1) (4 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n alpha y x x-0 alpha-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y (rec x-0) alpha-0)) x))
+    (exp (gen) (mul y x (rec x-0) alpha-0)) (4 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x (rec x-0) alpha-0))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha-0)))))
+    ((recv (cat (exp (gen) (mul y (rec x-0) alpha-0)) x))
+      (send (cat (exp (gen) (mul y (rec x-0) alpha-0)) x))))
+  (label 91)
+  (parent 62)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 chan) (alpha y x x-0 alpha-0 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-0) (a a-0) (b b-0)
+    (g (exp (gen) alpha-0)) (group-dist group-dist-0) (x x-0)
+    (y (mul y x (rec x-0))))
+  (deflistener (cat (exp (gen) (mul x (rec x-0) alpha-0)) y))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (5 0)) ((4 3) (0 3)) ((5 1) (4 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n alpha y x x-0 alpha-0)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0)
+  (auth group-dist group-dist-0)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x (rec x-0) alpha-0)) y))
+    (exp (gen) (mul y x (rec x-0) alpha-0)) (4 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x-0 alpha-0)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x (rec x-0) alpha-0))
+          (exp (gen) (mul x-0 alpha-0)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha-0)))))
+    ((recv (cat (exp (gen) (mul x (rec x-0) alpha-0)) y))
+      (send (cat (exp (gen) (mul x (rec x-0) alpha-0)) y))))
+  (label 92)
+  (parent 62)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (alpha y x alpha-0 x-0 alpha-1 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-1) (a a-0) (b b-0)
+    (g (exp (gen) alpha-1)) (group-dist group-dist-1) (x x-0)
+    (y (mul y x alpha-0 (rec x-0) (rec alpha-1))))
+  (defstrand group-init 1 (group group-1) (group-dist group-dist-1)
+    (alpha alpha-1))
+  (deflistener (cat (exp (gen) (mul y x alpha-0)) x-0))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (6 0)) ((4 3) (0 3)) ((5 0) (4 0))
+    ((6 1) (4 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n alpha y x alpha-0 x-0 alpha-1)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0 group-dist-1)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y x alpha-0)) x-0))
+    (exp (gen) (mul y x alpha-0 (rec x-0))) (4 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1)))
+      (send (enc (exp (gen) (mul x-0 alpha-1)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha-0 (rec x-0)))
+          (exp (gen) (mul x-0 alpha-1)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha-0)))))
+    ((send group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1))))
+    ((recv (cat (exp (gen) (mul y x alpha-0)) x-0))
+      (send (cat (exp (gen) (mul y x alpha-0)) x-0))))
+  (label 93)
+  (parent 63)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 group-2 text)
+    (a b a-0 b-0 a-1 b-1 name)
+    (group-dist group-dist-0 group-dist-1 group-dist-2 chan)
+    (alpha y x alpha-0 x-0 alpha-1 y-0 rndx) (x-1 expt))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-1) (a a-0) (b b-0)
+    (g (exp (gen) alpha-1)) (group-dist group-dist-1) (x x-0)
+    (y (mul y x alpha-0 (rec x-0) (rec alpha-1))))
+  (defstrand group-init 1 (group group-1) (group-dist group-dist-1)
+    (alpha alpha-1))
+  (defstrand resp 3 (group group-2) (a a-1) (b b-1)
+    (g (exp (gen) (mul y x alpha-0 (rec x-0) (rec y-0))))
+    (group-dist group-dist-2) (y y-0) (x x-1))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (6 0)) ((4 3) (0 3)) ((5 0) (4 0))
+    ((6 2) (4 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n alpha y x alpha-0 x-0 alpha-1 y-0)
+  (absent (y (mul (rec alpha) x alpha-0)) (y-0 x-1))
+  (conf group-dist group-dist-0 group-dist-1)
+  (auth group-dist group-dist-0 group-dist-1 group-dist-2)
+  (operation nonce-test (added-strand resp 3)
+    (exp (gen) (mul y x alpha-0 (rec x-0))) (4 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1)))
+      (send (enc (exp (gen) (mul x-0 alpha-1)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha-0 (rec x-0)))
+          (exp (gen) (mul x-0 alpha-1)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha-0)))))
+    ((send group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1))))
+    ((recv group-dist-2
+       (cat "Group id" group-2
+         (exp (gen) (mul y x alpha-0 (rec x-0) (rec y-0)))))
+      (recv
+        (enc (exp (gen) (mul y x alpha-0 (rec x-0) (rec y-0) x-1))
+          (privk a-1)))
+      (send
+        (enc (exp (gen) (mul y x alpha-0 (rec x-0)))
+          (exp (gen) (mul y x alpha-0 (rec x-0) (rec y-0) x-1))
+          (privk b-1)))))
+  (label 94)
+  (parent 63)
+  (unrealized (6 0) (6 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 group-2 text) (a b a-0 b-0 a-1 name)
+    (group-dist group-dist-0 group-dist-1 group-dist-2 chan)
+    (alpha y x alpha-0 x-0 alpha-1 x-1 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-1) (a a-0) (b b-0)
+    (g (exp (gen) alpha-1)) (group-dist group-dist-1) (x x-0)
+    (y (mul y x alpha-0 (rec x-0) (rec alpha-1))))
+  (defstrand group-init 1 (group group-1) (group-dist group-dist-1)
+    (alpha alpha-1))
+  (defstrand init 2 (group group-2) (a a-1)
+    (g (exp (gen) (mul y x alpha-0 (rec x-0) (rec x-1))))
+    (group-dist group-dist-2) (x x-1))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (6 0)) ((4 3) (0 3)) ((5 0) (4 0))
+    ((6 1) (4 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n alpha y x alpha-0 x-0 alpha-1 x-1)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0 group-dist-1)
+  (auth group-dist group-dist-0 group-dist-1 group-dist-2)
+  (operation nonce-test (added-strand init 2)
+    (exp (gen) (mul y x alpha-0 (rec x-0))) (4 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1)))
+      (send (enc (exp (gen) (mul x-0 alpha-1)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha-0 (rec x-0)))
+          (exp (gen) (mul x-0 alpha-1)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha-0)))))
+    ((send group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1))))
+    ((recv group-dist-2
+       (cat "Group id" group-2
+         (exp (gen) (mul y x alpha-0 (rec x-0) (rec x-1)))))
+      (send (enc (exp (gen) (mul y x alpha-0 (rec x-0))) (privk a-1)))))
+  (label 95)
+  (parent 63)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (alpha y x alpha-0 x-0 alpha-1 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-1) (a a-0) (b b-0)
+    (g (exp (gen) alpha-1)) (group-dist group-dist-1) (x x-0)
+    (y (mul y x alpha-0 (rec x-0) (rec alpha-1))))
+  (defstrand group-init 1 (group group-1) (group-dist group-dist-1)
+    (alpha alpha-1))
+  (deflistener (cat (exp (gen) (mul y x (rec x-0))) alpha-0))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (6 0)) ((4 3) (0 3)) ((5 0) (4 0))
+    ((6 1) (4 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n alpha y x alpha-0 x-0 alpha-1)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0 group-dist-1)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y x (rec x-0))) alpha-0))
+    (exp (gen) (mul y x alpha-0 (rec x-0))) (4 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1)))
+      (send (enc (exp (gen) (mul x-0 alpha-1)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha-0 (rec x-0)))
+          (exp (gen) (mul x-0 alpha-1)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha-0)))))
+    ((send group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1))))
+    ((recv (cat (exp (gen) (mul y x (rec x-0))) alpha-0))
+      (send (cat (exp (gen) (mul y x (rec x-0))) alpha-0))))
+  (label 96)
+  (parent 63)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (alpha y x alpha-0 x-0 alpha-1 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-1) (a a-0) (b b-0)
+    (g (exp (gen) alpha-1)) (group-dist group-dist-1) (x x-0)
+    (y (mul y x alpha-0 (rec x-0) (rec alpha-1))))
+  (defstrand group-init 1 (group group-1) (group-dist group-dist-1)
+    (alpha alpha-1))
+  (deflistener (cat (exp (gen) (mul y alpha-0 (rec x-0))) x))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (6 0)) ((4 3) (0 3)) ((5 0) (4 0))
+    ((6 1) (4 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n alpha y x alpha-0 x-0 alpha-1)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0 group-dist-1)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y alpha-0 (rec x-0))) x))
+    (exp (gen) (mul y x alpha-0 (rec x-0))) (4 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1)))
+      (send (enc (exp (gen) (mul x-0 alpha-1)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha-0 (rec x-0)))
+          (exp (gen) (mul x-0 alpha-1)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha-0)))))
+    ((send group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1))))
+    ((recv (cat (exp (gen) (mul y alpha-0 (rec x-0))) x))
+      (send (cat (exp (gen) (mul y alpha-0 (rec x-0))) x))))
+  (label 97)
+  (parent 63)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dh_sig2
+  (vars (n group group-0 group-1 text) (a b a-0 b-0 name)
+    (group-dist group-dist-0 group-dist-1 chan)
+    (alpha y x alpha-0 x-0 alpha-1 rndx))
+  (defstrand resp 5 (n n) (group group) (a a) (b b)
+    (g (exp (gen) alpha)) (group-dist group-dist) (y y)
+    (x (mul (rec alpha) x alpha-0)))
+  (defstrand group-init 1 (group group) (group-dist group-dist)
+    (alpha alpha))
+  (defstrand init 2 (group group-0) (a a) (g (exp (gen) alpha-0))
+    (group-dist group-dist-0) (x x))
+  (defstrand group-init 1 (group group-0) (group-dist group-dist-0)
+    (alpha alpha-0))
+  (defstrand init 4 (n n) (group group-1) (a a-0) (b b-0)
+    (g (exp (gen) alpha-1)) (group-dist group-dist-1) (x x-0)
+    (y (mul y x alpha-0 (rec x-0) (rec alpha-1))))
+  (defstrand group-init 1 (group group-1) (group-dist group-dist-1)
+    (alpha alpha-1))
+  (deflistener (cat (exp (gen) (mul x alpha-0 (rec x-0))) y))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((3 0) (2 0)) ((4 1) (6 0)) ((4 3) (0 3)) ((5 0) (4 0))
+    ((6 1) (4 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen n alpha y x alpha-0 x-0 alpha-1)
+  (absent (y (mul (rec alpha) x alpha-0)))
+  (conf group-dist group-dist-0 group-dist-1)
+  (auth group-dist group-dist-0 group-dist-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x alpha-0 (rec x-0))) y))
+    (exp (gen) (mul y x alpha-0 (rec x-0))) (4 2))
+  (traces
+    ((recv group-dist (cat "Group id" group (exp (gen) alpha)))
+      (recv (enc (exp (gen) (mul x alpha-0)) (privk a)))
+      (send
+        (enc (exp (gen) (mul alpha y)) (exp (gen) (mul x alpha-0))
+          (privk b))) (recv (enc n (exp (gen) (mul y x alpha-0))))
+      (send n))
+    ((send group-dist (cat "Group id" group (exp (gen) alpha))))
+    ((recv group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0)))
+      (send (enc (exp (gen) (mul x alpha-0)) (privk a))))
+    ((send group-dist-0 (cat "Group id" group-0 (exp (gen) alpha-0))))
+    ((recv group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1)))
+      (send (enc (exp (gen) (mul x-0 alpha-1)) (privk a-0)))
+      (recv
+        (enc (exp (gen) (mul y x alpha-0 (rec x-0)))
+          (exp (gen) (mul x-0 alpha-1)) (privk b-0)))
+      (send (enc n (exp (gen) (mul y x alpha-0)))))
+    ((send group-dist-1 (cat "Group id" group-1 (exp (gen) alpha-1))))
+    ((recv (cat (exp (gen) (mul x alpha-0 (rec x-0))) y))
+      (send (cat (exp (gen) (mul x alpha-0 (rec x-0))) y))))
+  (label 98)
+  (parent 63)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/tst/dh_mim.lisp b/tst/dh_mim.lisp
new file mode 100644
--- /dev/null
+++ b/tst/dh_mim.lisp
@@ -0,0 +1,65 @@
+(defprotocol dh_mim reduced-diffie-hellman
+  (defrole init
+    (vars (x expn) (hy base) (n text))
+    (trace (send (gen x)) (recv hy) (send (enc n (exp hy x))))
+    (uniq-orig n x))
+  (defrole resp
+    (vars (y expn) (hx base) (n text))
+    (trace (recv hx) (send (gen y)) (recv (enc n (exp hx y))))
+    (uniq-orig y))
+  (comment "Diffie-hellman key exchange followed by an encryption"))
+
+(defskeleton dh_mim
+  (vars (n text) (hx hy base) (x y expn))
+  (defstrand init 3 (n n) (hy hy) (x x))
+  (defstrand resp 3 (n n) (hx hx) (y y))
+  (precedes ((0 2) (1 2)))
+  (uniq-orig n x y)
+  (comment "Agreement on the encrypted text only"))
+
+(defprotocol dh_mim reduced-diffie-hellman-with-penetrator
+  (defrole init
+    (vars (x expn) (hy base) (n text))
+    (trace (send (gen x)) (recv hy) (send (enc n (exp hy x))))
+    (uniq-orig n x))
+  (defrole resp
+    (vars (y expn) (hx base) (n text))
+    (trace (recv hx) (send (gen y)) (recv (enc n (exp hx y))))
+    (uniq-orig y))
+  (defrole pen-exp
+    (vars (x expn) (h base))
+    (trace (recv x) (recv h) (send (exp h x))))
+  (defrole pen-make
+    (vars (x expn))
+    (trace (send x)))
+  (defrole pen-gen
+    (vars (x expn))
+    (trace (recv x) (send (gen x))))
+  (defrole pen-dec
+    (vars (x mesg) (h base))
+    (trace (recv (enc x h)) (recv h) (send x)))
+  (defrole pen-enc
+    (vars (x mesg) (h base))
+    (trace (recv x) (recv h) (send (enc x h)))))
+
+(defskeleton dh_mim
+  (vars (n text) (hx hy base) (x y expn))
+  (defstrand init 3 (n n) (hy (gen v)) (x x))
+  (defstrand resp 3 (n n) (hx (gen u)) (y y))
+  (defstrand pen-make 1 (x u))
+  (defstrand pen-make 1 (x v))
+  (defstrand pen-gen 2 (x u))
+  (defstrand pen-gen 2 (x v))
+  (defstrand pen-exp 3 (x v) (h (gen x)))
+  (defstrand pen-dec 3 (x n) (h (exp (gen x) v)))
+  (defstrand pen-exp 3 (x u) (h (gen y)))
+  (defstrand pen-enc 3 (x n) (h (exp (gen y) u)))
+  (precedes ((2 0) (4 0)) ((3 0) (5 0))
+	    ((4 1) (1 0)) ((5 1) (0 1))
+	    ((0 0) (6 1)) ((3 0) (6 0))
+	    ((0 2) (7 0)) ((6 2) (7 1))
+	    ((7 2) (9 0)) ((9 2) (1 2))
+	    ((1 1) (8 1)) ((9 1) (8 2))
+	    ((2 0) (8 0)))
+  (uniq-orig n x y)
+  (comment "Bundle"))
diff --git a/tst/dh_mim.scm b/tst/dh_mim.scm
deleted file mode 100644
--- a/tst/dh_mim.scm
+++ /dev/null
@@ -1,38 +0,0 @@
-; Unauthenticated Diffie-Hellman key exchange
-
-; In this example, the initiator and responder roles participate in a
-; Diffie-Hellman exchange, and then a nonce is transmitted by the
-; initiator and received by the responder.
-
-; A man-in-the-middle attack is possible, because there is no
-; attempt made to authenticate either of the parties.  Therefore, the
-; adversary may emulate the responder to the initator and vice versa.
-
-(herald "Diffie-Hellman protocol, man-in-the-middle attack" (algebra diffie-hellman)
-)
-
-(defprotocol dh_mim diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (n text))
-    (trace
-     (send (exp (gen) x))
-     (recv (exp (gen) y))
-     (send (enc n (exp (gen) (mul y x)))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (n text))
-    (trace
-     (recv (exp (gen) x))
-     (send (exp (gen) y))
-     (recv (enc n (exp (gen) (mul x y)))))
-    (uniq-gen y))
-  (comment "Diffie-hellman key exchange followed by an encryption"))
-
-(defskeleton dh_mim
-  (vars (n text) (x0 y0 expt) (x y rndx))
-  (defstrand init 3 (n n) (y y0) (x x))
-  (defstrand resp 3 (n n) (x x0) (y y))
-  (precedes ((0 2) (1 2)))
-  (uniq-orig n)
-  (pen-non-orig x y)
-  (comment "Agreement on the encrypted text only"))
diff --git a/tst/dh_mim.tst b/tst/dh_mim.tst
deleted file mode 100644
--- a/tst/dh_mim.tst
+++ /dev/null
@@ -1,42 +0,0 @@
-(herald "Diffie-Hellman protocol, man-in-the-middle attack"
-  (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/dh_mim.scm")
-
-(defprotocol dh_mim diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (n text))
-    (trace (send (exp (gen) x)) (recv (exp (gen) y))
-      (send (enc n (exp (gen) (mul x y)))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (n text))
-    (trace (recv (exp (gen) x)) (send (exp (gen) y))
-      (recv (enc n (exp (gen) (mul y x)))))
-    (uniq-gen y)
-    (absent (y (exp (gen) x))))
-  (comment "Diffie-hellman key exchange followed by an encryption"))
-
-(defskeleton dh_mim
-  (vars (n text) (x0 y0 expt) (x y rndx))
-  (defstrand init 3 (n n) (x x) (y y0))
-  (defstrand resp 3 (n n) (y y) (x x0))
-  (precedes ((0 2) (1 2)))
-  (absent (y (exp (gen) x0)))
-  (pen-non-orig x y)
-  (uniq-gen x y)
-  (uniq-orig n)
-  (comment "Agreement on the encrypted text only")
-  (traces
-    ((send (exp (gen) x)) (recv (exp (gen) y0))
-      (send (enc n (exp (gen) (mul y0 x)))))
-    ((recv (exp (gen) x0)) (send (exp (gen) y))
-      (recv (enc n (exp (gen) (mul x0 y))))))
-  (label 0)
-  (unrealized)
-  (shape)
-  (maps ((0 1) ((n n) (x0 x0) (y0 y0) (x x) (y y))))
-  (origs (n (0 2))))
-
-(comment "Nothing left to do")
diff --git a/tst/dh_mim2.scm b/tst/dh_mim2.scm
deleted file mode 100644
--- a/tst/dh_mim2.scm
+++ /dev/null
@@ -1,34 +0,0 @@
-(herald "Diffie-Hellman protocol, man-in-the-middle attack" (algebra diffie-hellman)
-; (limit 1)
-)
-
-(defprotocol dh_mim diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (n text))
-    (trace
-     (send (exp (gen) x))
-     (recv (exp (gen) y))
-     (send (enc n (exp (gen) (mul y x)))))
-    (neq (y (one)))
-    (uniq-orig n)
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (n text))
-    (trace
-     (recv (exp (gen) x))
-     (send (exp (gen) y))
-     (recv (enc n (exp (gen) (mul x y)))))
-    (neq (x (one)))
-    (uniq-gen y))
-  (comment "Diffie-hellman key exchange followed by an encryption"))
-
-;(comment
-(defskeleton dh_mim
-  (vars (n text) (x0 y0 expt) (x y rndx))
-  (defstrand init 3 (n n) (y y0) (x x))
-  (defstrand resp 3 (n n) (x x0) (y y))
-  (precedes ((0 2) (1 2)))
-  (uniq-orig n)
-  (pen-non-orig x y)
-  (comment "Agreement on the encrypted text only"))
-;)
diff --git a/tst/dh_mim2.tst b/tst/dh_mim2.tst
deleted file mode 100644
--- a/tst/dh_mim2.tst
+++ /dev/null
@@ -1,46 +0,0 @@
-(herald "Diffie-Hellman protocol, man-in-the-middle attack"
-  (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/dh_mim2.scm")
-
-(defprotocol dh_mim diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (n text))
-    (trace (send (exp (gen) x)) (recv (exp (gen) y))
-      (send (enc n (exp (gen) (mul x y)))))
-    (uniq-orig n)
-    (uniq-gen x)
-    (neq (y (one))))
-  (defrole resp
-    (vars (y rndx) (x expt) (n text))
-    (trace (recv (exp (gen) x)) (send (exp (gen) y))
-      (recv (enc n (exp (gen) (mul y x)))))
-    (uniq-gen y)
-    (neq (x (one)))
-    (absent (y (exp (gen) x))))
-  (comment "Diffie-hellman key exchange followed by an encryption"))
-
-(defskeleton dh_mim
-  (vars (n text) (x0 y0 expt) (x y rndx))
-  (defstrand init 3 (n n) (x x) (y y0))
-  (defstrand resp 3 (n n) (y y) (x x0))
-  (precedes ((0 2) (1 2)))
-  (absent (y (exp (gen) x0)))
-  (neq (x0 (one)) (y0 (one)))
-  (pen-non-orig x y)
-  (uniq-gen x y)
-  (uniq-orig n)
-  (comment "Agreement on the encrypted text only")
-  (traces
-    ((send (exp (gen) x)) (recv (exp (gen) y0))
-      (send (enc n (exp (gen) (mul y0 x)))))
-    ((recv (exp (gen) x0)) (send (exp (gen) y))
-      (recv (enc n (exp (gen) (mul x0 y))))))
-  (label 0)
-  (unrealized)
-  (shape)
-  (maps ((0 1) ((n n) (x0 x0) (y0 y0) (x x) (y y))))
-  (origs (n (0 2))))
-
-(comment "Nothing left to do")
diff --git a/tst/dh_mim_hack.scm b/tst/dh_mim_hack.scm
new file mode 100644
--- /dev/null
+++ b/tst/dh_mim_hack.scm
@@ -0,0 +1,31 @@
+(defmacro (CDH gx gy dhkey) (enc "dh" gx gy dhkey))
+
+(defprotocol dh_mim basic
+  (defrole init
+    (vars (gx gy akey) (n text) (dhkey skey))
+    (trace (send gx) (recv gy) (send (enc n (CDH gx gy dhkey))))
+    (uniq-orig n gx)
+    (non-orig (invk gx) dhkey))
+  (defrole resp
+    (vars (gx gy akey) (n text) (dhkey skey))
+    (trace (recv gx) (send gy) (recv (enc n (CDH gx gy dhkey))))
+    (uniq-orig gy)
+    (non-orig (invk gy) dhkey))
+  (defrole CDHcalc1 (vars (gx gy akey) (dhkey skey))
+   (trace
+    (recv (cat gx (invk gy)))
+    (send (CDH gx gy dhkey))
+  ))
+  (defrole CDHcalc2 (vars (gx gy akey) (dhkey skey))
+   (trace
+    (recv (cat gy (invk gx)))
+    (send (CDH gx gy dhkey))
+  ))
+  (comment "Diffie-hellman key exchange followed by an encryption"))
+
+(defskeleton dh_mim
+  (vars (n text) (gx gy akey) (dhkey skey))
+  (defstrand init 3 (n n) (gx gx) (dhkey dhkey))
+  (defstrand resp 3 (n n) (gy gy) (dhkey dhkey))
+  (precedes ((0 2) (1 2)))
+  (comment "Agreement on the encrypted text only"))
diff --git a/tst/dh_mim_hack.tst b/tst/dh_mim_hack.tst
new file mode 100644
--- /dev/null
+++ b/tst/dh_mim_hack.tst
@@ -0,0 +1,202 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/dh_mim_hack.scm")
+
+(defprotocol dh_mim basic
+  (defrole init
+    (vars (gx gy akey) (n text) (dhkey skey))
+    (trace (send gx) (recv gy) (send (enc n (enc "dh" gx gy dhkey))))
+    (non-orig dhkey (invk gx))
+    (uniq-orig n gx))
+  (defrole resp
+    (vars (gx gy akey) (n text) (dhkey skey))
+    (trace (recv gx) (send gy) (recv (enc n (enc "dh" gx gy dhkey))))
+    (non-orig dhkey (invk gy))
+    (uniq-orig gy))
+  (defrole CDHcalc1
+    (vars (gx gy akey) (dhkey skey))
+    (trace (recv (cat gx (invk gy))) (send (enc "dh" gx gy dhkey))))
+  (defrole CDHcalc2
+    (vars (gx gy akey) (dhkey skey))
+    (trace (recv (cat gy (invk gx))) (send (enc "dh" gx gy dhkey))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Diffie-hellman key exchange followed by an encryption"))
+
+(defskeleton dh_mim
+  (vars (dhkey skey) (n text) (gx gy gy-0 gx-0 akey))
+  (defstrand init 3 (dhkey dhkey) (n n) (gx gx) (gy gy-0))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gx gx-0) (gy gy))
+  (precedes ((0 2) (1 2)))
+  (non-orig dhkey (invk gx) (invk gy))
+  (uniq-orig n gx gy)
+  (comment "Agreement on the encrypted text only")
+  (traces
+    ((send gx) (recv gy-0) (send (enc n (enc "dh" gx gy-0 dhkey))))
+    ((recv gx-0) (send gy) (recv (enc n (enc "dh" gx-0 gy dhkey)))))
+  (label 0)
+  (unrealized (1 2))
+  (origs (gy (1 1)) (gx (0 0)) (n (0 2)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dh_mim
+  (vars (dhkey skey) (n text) (gx gy akey))
+  (defstrand init 3 (dhkey dhkey) (n n) (gx gx) (gy gy))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gx gx) (gy gy))
+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))
+  (non-orig dhkey (invk gx) (invk gy))
+  (uniq-orig n gx gy)
+  (operation encryption-test (displaced 2 0 init 3)
+    (enc n (enc "dh" gx-0 gy-0 dhkey)) (1 2))
+  (traces ((send gx) (recv gy) (send (enc n (enc "dh" gx gy dhkey))))
+    ((recv gx) (send gy) (recv (enc n (enc "dh" gx gy dhkey)))))
+  (label 1)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps
+    ((0 1) ((n n) (gx gx) (gy gy) (dhkey dhkey) (gy-0 gy) (gx-0 gx))))
+  (origs (n (0 2)) (gx (0 0)) (gy (1 1))))
+
+(defskeleton dh_mim
+  (vars (dhkey skey) (n text) (gx gy gy-0 gx-0 akey))
+  (defstrand init 3 (dhkey dhkey) (n n) (gx gx) (gy gy-0))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gx gx-0) (gy gy))
+  (deflistener (enc "dh" gx-0 gy dhkey))
+  (precedes ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2)))
+  (non-orig dhkey (invk gx) (invk gy))
+  (uniq-orig n gx gy)
+  (operation encryption-test (added-listener (enc "dh" gx-0 gy dhkey))
+    (enc n (enc "dh" gx-0 gy dhkey)) (1 2))
+  (traces
+    ((send gx) (recv gy-0) (send (enc n (enc "dh" gx gy-0 dhkey))))
+    ((recv gx-0) (send gy) (recv (enc n (enc "dh" gx-0 gy dhkey))))
+    ((recv (enc "dh" gx-0 gy dhkey)) (send (enc "dh" gx-0 gy dhkey))))
+  (label 2)
+  (parent 0)
+  (unrealized (1 2) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_mim
+  (vars (dhkey skey) (n text) (gx gy gy-0 gx-0 akey))
+  (defstrand init 3 (dhkey dhkey) (n n) (gx gx) (gy gy-0))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gx gx-0) (gy gy))
+  (deflistener (enc "dh" gx-0 gy dhkey))
+  (defstrand CDHcalc2 2 (dhkey dhkey) (gx gx-0) (gy gy))
+  (precedes ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2)) ((3 1) (2 0)))
+  (non-orig dhkey (invk gx) (invk gy))
+  (uniq-orig n gx gy)
+  (operation encryption-test (added-strand CDHcalc2 2)
+    (enc "dh" gx-0 gy dhkey) (2 0))
+  (traces
+    ((send gx) (recv gy-0) (send (enc n (enc "dh" gx gy-0 dhkey))))
+    ((recv gx-0) (send gy) (recv (enc n (enc "dh" gx-0 gy dhkey))))
+    ((recv (enc "dh" gx-0 gy dhkey)) (send (enc "dh" gx-0 gy dhkey)))
+    ((recv (cat gy (invk gx-0))) (send (enc "dh" gx-0 gy dhkey))))
+  (label 3)
+  (parent 2)
+  (unrealized (1 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_mim
+  (vars (dhkey skey) (n text) (gx gy gy-0 gx-0 akey))
+  (defstrand init 3 (dhkey dhkey) (n n) (gx gx) (gy gy-0))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gx gx-0) (gy gy))
+  (deflistener (enc "dh" gx-0 gy dhkey))
+  (defstrand CDHcalc2 2 (dhkey dhkey) (gx gx-0) (gy gy))
+  (deflistener (enc "dh" gx gy-0 dhkey))
+  (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))
+    ((3 1) (2 0)) ((4 1) (1 2)))
+  (non-orig dhkey (invk gx) (invk gy))
+  (uniq-orig n gx gy)
+  (operation nonce-test (added-listener (enc "dh" gx gy-0 dhkey)) n
+    (1 2) (enc n (enc "dh" gx gy-0 dhkey)))
+  (traces
+    ((send gx) (recv gy-0) (send (enc n (enc "dh" gx gy-0 dhkey))))
+    ((recv gx-0) (send gy) (recv (enc n (enc "dh" gx-0 gy dhkey))))
+    ((recv (enc "dh" gx-0 gy dhkey)) (send (enc "dh" gx-0 gy dhkey)))
+    ((recv (cat gy (invk gx-0))) (send (enc "dh" gx-0 gy dhkey)))
+    ((recv (enc "dh" gx gy-0 dhkey)) (send (enc "dh" gx gy-0 dhkey))))
+  (label 4)
+  (parent 3)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_mim
+  (vars (dhkey skey) (n text) (gx gy gy-0 gx-0 akey))
+  (defstrand init 3 (dhkey dhkey) (n n) (gx gx) (gy gy-0))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gx gx-0) (gy gy))
+  (deflistener (enc "dh" gx-0 gy dhkey))
+  (defstrand CDHcalc2 2 (dhkey dhkey) (gx gx-0) (gy gy))
+  (deflistener (enc "dh" gx gy-0 dhkey))
+  (defstrand CDHcalc1 2 (dhkey dhkey) (gx gx) (gy gy-0))
+  (precedes ((0 0) (5 0)) ((0 2) (1 2)) ((1 1) (3 0)) ((2 1) (1 2))
+    ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (4 0)))
+  (non-orig dhkey (invk gx) (invk gy))
+  (uniq-orig n gx gy)
+  (operation encryption-test (added-strand CDHcalc1 2)
+    (enc "dh" gx gy-0 dhkey) (4 0))
+  (traces
+    ((send gx) (recv gy-0) (send (enc n (enc "dh" gx gy-0 dhkey))))
+    ((recv gx-0) (send gy) (recv (enc n (enc "dh" gx-0 gy dhkey))))
+    ((recv (enc "dh" gx-0 gy dhkey)) (send (enc "dh" gx-0 gy dhkey)))
+    ((recv (cat gy (invk gx-0))) (send (enc "dh" gx-0 gy dhkey)))
+    ((recv (enc "dh" gx gy-0 dhkey)) (send (enc "dh" gx gy-0 dhkey)))
+    ((recv (cat gx (invk gy-0))) (send (enc "dh" gx gy-0 dhkey))))
+  (label 5)
+  (parent 4)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_mim
+  (vars (dhkey skey) (n text) (gx gy gy-0 gx-0 akey))
+  (defstrand init 3 (dhkey dhkey) (n n) (gx gx) (gy gy-0))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gx gx-0) (gy gy))
+  (defstrand CDHcalc2 2 (dhkey dhkey) (gx gx-0) (gy gy))
+  (deflistener (enc "dh" gx gy-0 dhkey))
+  (defstrand CDHcalc1 2 (dhkey dhkey) (gx gx) (gy gy-0))
+  (precedes ((0 0) (4 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))
+    ((3 1) (1 2)) ((4 1) (3 0)))
+  (non-orig dhkey (invk gx) (invk gy))
+  (uniq-orig n gx gy)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send gx) (recv gy-0) (send (enc n (enc "dh" gx gy-0 dhkey))))
+    ((recv gx-0) (send gy) (recv (enc n (enc "dh" gx-0 gy dhkey))))
+    ((recv (cat gy (invk gx-0))) (send (enc "dh" gx-0 gy dhkey)))
+    ((recv (enc "dh" gx gy-0 dhkey)) (send (enc "dh" gx gy-0 dhkey)))
+    ((recv (cat gx (invk gy-0))) (send (enc "dh" gx gy-0 dhkey))))
+  (label 6)
+  (parent 5)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dh_mim
+  (vars (dhkey skey) (n text) (gx gy gy-0 gx-0 akey))
+  (defstrand init 3 (dhkey dhkey) (n n) (gx gx) (gy gy-0))
+  (defstrand resp 3 (dhkey dhkey) (n n) (gx gx-0) (gy gy))
+  (defstrand CDHcalc2 2 (dhkey dhkey) (gx gx-0) (gy gy))
+  (defstrand CDHcalc1 2 (dhkey dhkey) (gx gx) (gy gy-0))
+  (precedes ((0 0) (3 0)) ((0 2) (1 2)) ((1 1) (2 0)) ((2 1) (1 2))
+    ((3 1) (1 2)))
+  (non-orig dhkey (invk gx) (invk gy))
+  (uniq-orig n gx gy)
+  (operation generalization deleted (3 0))
+  (traces
+    ((send gx) (recv gy-0) (send (enc n (enc "dh" gx gy-0 dhkey))))
+    ((recv gx-0) (send gy) (recv (enc n (enc "dh" gx-0 gy dhkey))))
+    ((recv (cat gy (invk gx-0))) (send (enc "dh" gx-0 gy dhkey)))
+    ((recv (cat gx (invk gy-0))) (send (enc "dh" gx gy-0 dhkey))))
+  (label 7)
+  (parent 6)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((n n) (gx gx) (gy gy) (dhkey dhkey) (gy-0 gy-0) (gx-0 gx-0))))
+  (origs (gy (1 1)) (gx (0 0)) (n (0 2))))
+
+(comment "Nothing left to do")
diff --git a/tst/dh_mim_nobase.scm b/tst/dh_mim_nobase.scm
deleted file mode 100644
--- a/tst/dh_mim_nobase.scm
+++ /dev/null
@@ -1,87 +0,0 @@
-(herald "Diffie-Hellman protocol, man-in-the-middle attack" (algebra diffie-hellman)
-; (limit 1)
-)
-
-(defprotocol dh_mim_nobase diffie-hellman
-  (defrole init
-    (vars (x rndx) (h expt) (n text))
-    (trace (send (exp (gen) x))
-	   (recv (exp (gen) h))
-	   (send (enc n (exp (exp (gen) h) x))))
-;    (uniq-orig n)
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (h expt) (n text))
-    (trace (recv (exp (gen) h))
-	   (send (exp (gen) y))
-	   (recv (enc n (exp (exp (gen) h) y))))
-    (uniq-gen y))
-  (comment "Diffie-hellman key exchange followed by an encryption"))
-
-(comment
-(defskeleton dh_mim
-  (vars (n text) (hx base) (y x rndx))
-  (defstrand init 3 (n n) (h (exp hx (mul (rec y) x))) (x y))
-  (defstrand resp 3 (n n) (h hx) (y x))
-  (precedes ((0 2) (1 2)) ((1 1) (0 1)))
-  (pen-non-orig y x)
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation encryption-test (displaced 2 0 init 3)
-    (enc n (exp hx (mul y-0 x-0))) (1 2))
-  (traces
-    ((send (exp (gen) y)) (recv (exp hx (mul (rec y) x)))
-      (send (enc n (exp hx x))))
-    ((recv hx) (send (exp (gen) x)) (recv (enc n (exp hx x)))))
-  (label 1)
-  (parent 0)
-  (unrealized (0 1))
-  (origs (n (0 2)))
-  (comment "empty cohort"))
-)
-
-;(comment
-(defskeleton dh_mim_nobase
-  (vars (n text) (hx hy expt) (x y rndx))
-  (defstrand init 3 (n n) (h hy) (x x))
-  (defstrand resp 3 (n n) (h hx) (y y))
-  (precedes ((0 2) (1 2)))
-  (uniq-orig n)
-  (pen-non-orig x y)
-  (comment "Agreement on the encrypted text only"))
-;)
-
-(comment
-(defskeleton dh_mim
-  (vars (n text) (x z y rndx))
-  (defstrand init 3 (n n) (h (exp (gen) (mul x z y))) (x y))
-  (defstrand resp 3 (n n) (h (exp (gen) (mul z y y))) (y x))
-  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))
-  (pen-non-orig x y)
-  (uniq-gen x y)
-  (uniq-orig n))
-)
-
-(comment
-(defskeleton dh_mim
-  (vars (n text) (x y y-0 rndx))
-  (defstrand init 3 (n n) (h (exp (gen) (mul y y-0))) (x y-0))
-  (defstrand resp 3 (n n) (h (exp (gen) (mul (rec x) y y-0 y-0))) (y x))
-  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))
-  (pen-non-orig x y-0)
-  (uniq-gen x y-0)
-  (uniq-orig n)
-  (operation nonce-test (displaced 2 0 init 1) (exp (gen) (mul y x-0))
-    (0 1))
-  (traces
-    ((send (exp (gen) y-0)) (recv (exp (gen) (mul y y-0)))
-      (send (enc n (exp (gen) (mul y y-0 y-0)))))
-    ((recv (exp (gen) (mul (rec x) y y-0 y-0))) (send (exp (gen) x))
-      (recv (enc n (exp (gen) (mul y y-0 y-0))))))
-  (label 3)
-  (parent 1)
-  (seen 3)
-  (unrealized (1 0))
-  (origs (n (0 2)))
-  (comment "3 in cohort - 2 not yet seen"))
-)
diff --git a/tst/dh_mim_nobase.tst b/tst/dh_mim_nobase.tst
deleted file mode 100644
--- a/tst/dh_mim_nobase.tst
+++ /dev/null
@@ -1,42 +0,0 @@
-(herald "Diffie-Hellman protocol, man-in-the-middle attack"
-  (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/dh_mim_nobase.scm")
-
-(defprotocol dh_mim_nobase diffie-hellman
-  (defrole init
-    (vars (x rndx) (h expt) (n text))
-    (trace (send (exp (gen) x)) (recv (exp (gen) h))
-      (send (enc n (exp (gen) (mul x h)))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (h expt) (n text))
-    (trace (recv (exp (gen) h)) (send (exp (gen) y))
-      (recv (enc n (exp (gen) (mul y h)))))
-    (uniq-gen y)
-    (absent (y (exp (gen) h))))
-  (comment "Diffie-hellman key exchange followed by an encryption"))
-
-(defskeleton dh_mim_nobase
-  (vars (n text) (hx hy expt) (x y rndx))
-  (defstrand init 3 (n n) (x x) (h hy))
-  (defstrand resp 3 (n n) (y y) (h hx))
-  (precedes ((0 2) (1 2)))
-  (absent (y (exp (gen) hx)))
-  (pen-non-orig x y)
-  (uniq-gen x y)
-  (uniq-orig n)
-  (comment "Agreement on the encrypted text only")
-  (traces
-    ((send (exp (gen) x)) (recv (exp (gen) hy))
-      (send (enc n (exp (gen) (mul hy x)))))
-    ((recv (exp (gen) hx)) (send (exp (gen) y))
-      (recv (enc n (exp (gen) (mul hx y))))))
-  (label 0)
-  (unrealized)
-  (shape)
-  (maps ((0 1) ((n n) (hx hx) (hy hy) (x x) (y y))))
-  (origs (n (0 2))))
-
-(comment "Nothing left to do")
diff --git a/tst/dh_sig.scm b/tst/dh_sig.scm
deleted file mode 100644
--- a/tst/dh_sig.scm
+++ /dev/null
@@ -1,60 +0,0 @@
-(herald "Signed DH exchange" (algebra diffie-hellman)
-)
-
-(defprotocol dh_sig diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (a b name))
-    (trace
-     (send (exp (gen) x))
-     (recv (enc (exp (gen) y) (exp (gen) x) (privk b)))
-     (send (enc (exp (gen) y) (exp (gen) x) (privk a))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace
-     (recv (exp (gen) x))
-     (send (enc (exp (gen) y) (exp (gen) x) (privk b)))
-     (recv (enc (exp (gen) y) (exp (gen) x) (privk a))))
-    (uniq-gen y))
-)
-
-(defskeleton dh_sig
-  (vars (a b name))
-  (defstrand init 3 (a a) (b b))
-  (non-orig (privk b) (privk a))
-)
-
-(defskeleton dh_sig
-  (vars (a b name))
-  (defstrand resp 3 (a a) (b b))
-  (non-orig (privk a) (privk b))
-)
-
-(defprotocol dh_sig2 diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (a b name))
-    (trace
-     (send (exp (gen) x))
-     (recv (enc (exp (gen) y) (exp (gen) x) (privk b)))
-     (send (enc (exp (gen) x) (exp (gen) y) b (privk a))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace
-     (recv (exp (gen) x))
-     (send (enc (exp (gen) y) (exp (gen) x) (privk b)))
-     (recv (enc (exp (gen) x) (exp (gen) y) b (privk a))))
-    (uniq-gen y))
-)
-
-(defskeleton dh_sig2
-  (vars (a b name))
-  (defstrand init 3 (a a) (b b))
-  (non-orig (privk b) (privk a))
-)
-
-(defskeleton dh_sig2
-  (vars (a b name))
-  (defstrand resp 3 (a a) (b b))
-  (non-orig (privk a) (privk b))
-)
diff --git a/tst/dh_sig.tst b/tst/dh_sig.tst
deleted file mode 100644
--- a/tst/dh_sig.tst
+++ /dev/null
@@ -1,243 +0,0 @@
-(herald "Signed DH exchange" (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/dh_sig.scm")
-
-(defprotocol dh_sig diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (a b name))
-    (trace (send (exp (gen) x))
-      (recv (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk a))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace (recv (exp (gen) x))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (recv (enc (exp (gen) y) (exp (gen) x) (privk a))))
-    (uniq-gen y)
-    (absent (y (exp (gen) x)))))
-
-(defskeleton dh_sig
-  (vars (a b name) (x rndx) (y expt))
-  (defstrand init 3 (a a) (b b) (x x) (y y))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (traces
-    ((send (exp (gen) x))
-      (recv (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk a)))))
-  (label 0)
-  (unrealized (0 1))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dh_sig
-  (vars (a b name) (y x rndx))
-  (defstrand init 3 (a a) (b b) (x x) (y y))
-  (defstrand resp 2 (b b) (y y) (x x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (operation encryption-test (added-strand resp 2)
-    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
-  (traces
-    ((send (exp (gen) x))
-      (recv (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk a))))
-    ((recv (exp (gen) x))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk b)))))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (x x) (y y))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol dh_sig diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (a b name))
-    (trace (send (exp (gen) x))
-      (recv (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk a))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace (recv (exp (gen) x))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (recv (enc (exp (gen) y) (exp (gen) x) (privk a))))
-    (uniq-gen y)
-    (absent (y (exp (gen) x)))))
-
-(defskeleton dh_sig
-  (vars (a b name) (y rndx) (x expt))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y)
-  (traces
-    ((recv (exp (gen) x))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (recv (enc (exp (gen) y) (exp (gen) x) (privk a)))))
-  (label 2)
-  (unrealized (0 2))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dh_sig
-  (vars (a b b-0 name) (y x rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b-0) (x x) (y y))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (operation encryption-test (added-strand init 3)
-    (enc (exp (gen) y) (exp (gen) x) (privk a)) (0 2))
-  (traces
-    ((recv (exp (gen) x))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (recv (enc (exp (gen) y) (exp (gen) x) (privk a))))
-    ((send (exp (gen) x))
-      (recv (enc (exp (gen) y) (exp (gen) x) (privk b-0)))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk a)))))
-  (label 3)
-  (parent 2)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (y y) (x x))))
-  (origs))
-
-(defskeleton dh_sig
-  (vars (b name) (y rndx) (x expt))
-  (defstrand resp 3 (a b) (b b) (y y) (x x))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk b))
-  (uniq-gen y)
-  (operation encryption-test (displaced 1 0 resp 2)
-    (enc (exp (gen) y) (exp (gen) x) (privk a)) (0 2))
-  (traces
-    ((recv (exp (gen) x))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (recv (enc (exp (gen) y) (exp (gen) x) (privk b)))))
-  (label 4)
-  (parent 2)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a b) (b b) (y y) (x x))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol dh_sig2 diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (a b name))
-    (trace (send (exp (gen) x))
-      (recv (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (privk a))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace (recv (exp (gen) x))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (privk a))))
-    (uniq-gen y)
-    (absent (y (exp (gen) x)))))
-
-(defskeleton dh_sig2
-  (vars (a b name) (x rndx) (y expt))
-  (defstrand init 3 (a a) (b b) (x x) (y y))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (traces
-    ((send (exp (gen) x))
-      (recv (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (privk a)))))
-  (label 5)
-  (unrealized (0 1))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (a b name) (y x rndx))
-  (defstrand init 3 (a a) (b b) (x x) (y y))
-  (defstrand resp 2 (b b) (y y) (x x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (operation encryption-test (added-strand resp 2)
-    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
-  (traces
-    ((send (exp (gen) x))
-      (recv (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (privk a))))
-    ((recv (exp (gen) x))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk b)))))
-  (label 6)
-  (parent 5)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (x x) (y y))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol dh_sig2 diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (a b name))
-    (trace (send (exp (gen) x))
-      (recv (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (privk a))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace (recv (exp (gen) x))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (privk a))))
-    (uniq-gen y)
-    (absent (y (exp (gen) x)))))
-
-(defskeleton dh_sig2
-  (vars (a b name) (y rndx) (x expt))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y)
-  (traces
-    ((recv (exp (gen) x))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (privk a)))))
-  (label 7)
-  (unrealized (0 2))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dh_sig2
-  (vars (a b name) (x y rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b) (x x) (y y))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation encryption-test (added-strand init 3)
-    (enc (exp (gen) x) (exp (gen) y) b (privk a)) (0 2))
-  (traces
-    ((recv (exp (gen) x))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (privk a))))
-    ((send (exp (gen) x))
-      (recv (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (privk a)))))
-  (label 8)
-  (parent 7)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (y y) (x x))))
-  (origs))
-
-(comment "Nothing left to do")
diff --git a/tst/dh_test.scm b/tst/dh_test.scm
deleted file mode 100644
--- a/tst/dh_test.scm
+++ /dev/null
@@ -1,113 +0,0 @@
-(herald "Diffie-Hellman protocol, man-in-the-middle attack" (algebra diffie-hellman) (bound 20))
-
-(comment
-(defprotocol foo diffie-hellman
-  (defrole init
-    (vars (h base) (k akey) (x rndx))
-    (trace
-       (send (enc (exp (gen) x) k))
-       (recv (enc (exp h x) k))
-    )
-    (non-orig (invk k))
-    (uniq-gen x)
-  )
-)
-
-(defskeleton foo
-   (vars (h base))
-   (defstrand init 2 (h h)))
-
-(defprotocol bar diffie-hellman
-  (defrole init
-    (vars (h base) (x z rndx))
-    (trace
-       (send (exp (gen) x))
-       (recv (exp (gen) (mul x z)))
-    )
-    (uniq-gen x)
-  )
-)
-
-(defskeleton bar
-  (vars (x rndx))
-  (defstrand init 2 (x x)))
-
-(defprotocol bar2 diffie-hellman
-  (defrole init
-    (vars (h base) (x z rndx))
-    (trace
-       (send (exp h x))
-       (recv (exp (gen) x))
-    )
-    (uniq-gen x)
-  )
-)
-
-(defskeleton bar2
-  (vars (x rndx))
-  (defstrand init 2 (x x)))
-
-(defprotocol baz diffie-hellman
-  (defrole init
-    (vars (h base) (x z rndx) (k akey))
-    (trace
-       (send (enc (exp (gen) x) k))
-       (recv (enc (exp (gen) (mul x z)) k))
-    )
-    (uniq-gen x)
-    (non-orig (invk k))
-  )
-)
-
-(defskeleton baz
-  (vars (x rndx))
-  (defstrand init 2 (x x)))
-
-(defprotocol bazar diffie-hellman
-  (defrole init
-    (vars (h base) (t text) (x z rndx) (k skey))
-    (trace
-       (send (enc (exp (gen) (mul x z)) k))
-       (recv (exp (gen) x))
-    )
-    (uniq-orig t)
-    (pen-non-orig k)
-    (uniq-gen x)
-  )
-  (defrole revealer
-    (vars (m mesg) (k skey))
-    (trace
-       (recv (enc m k))
-       (send k)))
-)
-
-(defskeleton bazar
-  (vars (k skey))
-  (defstrand init 2 (k k)))
-
-(defprotocol foo2 diffie-hellman
-  (defrole init
-    (vars (h base) (x rndx))
-    (trace
-       (send (cat (exp (gen) x)
-		  (enc "foo" (exp h x))))
-       (recv (exp h x)))
-    (uniq-gen x)))
-
-(defskeleton foo2
-   (vars )
-   (defstrand init 2))
-)
-
-(defprotocol foo3 diffie-hellman
-  (defrole resp
-    (vars (h base))
-    (trace (recv h)))
-  (defrole init
-    (vars (x rndx))
-    (trace (send (exp (gen) x)))))
-
-(defskeleton foo3
-   (vars (x rndx))
-   (defstrand resp 1 (h (exp (gen) x)))
-   (non-orig x))
diff --git a/tst/dh_test.tst b/tst/dh_test.tst
deleted file mode 100644
--- a/tst/dh_test.tst
+++ /dev/null
@@ -1,91 +0,0 @@
-(herald "Diffie-Hellman protocol, man-in-the-middle attack"
-  (algebra diffie-hellman) (bound 20))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/dh_test.scm")
-(comment "Strand count bounded at 20")
-
-(defprotocol foo3 diffie-hellman
-  (defrole resp (vars (h base)) (trace (recv h)))
-  (defrole init (vars (x rndx)) (trace (send (exp (gen) x)))))
-
-(defskeleton foo3
-  (vars (x rndx))
-  (defstrand resp 1 (h (exp (gen) x)))
-  (non-orig x)
-  (traces ((recv (exp (gen) x))))
-  (label 0)
-  (unrealized (0 0))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton foo3
-  (vars (x rndx))
-  (defstrand resp 1 (h (exp (gen) x)))
-  (defstrand init 1 (x x))
-  (precedes ((1 0) (0 0)))
-  (non-orig x)
-  (operation nonce-test (added-strand init 1) (exp (gen) x) (0 0))
-  (traces ((recv (exp (gen) x))) ((send (exp (gen) x))))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((x x))))
-  (origs))
-
-(defskeleton foo3
-  (vars (x rndx) (w expt))
-  (defstrand resp 1 (h (exp (gen) x)))
-  (deflistener (cat (exp (gen) (mul x (rec w))) w))
-  (precedes ((1 1) (0 0)))
-  (non-orig x)
-  (precur (1 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)
-    (0 0))
-  (traces ((recv (exp (gen) x)))
-    ((recv (cat (exp (gen) (mul x (rec w))) w))
-      (send (cat (exp (gen) (mul x (rec w))) w))))
-  (label 2)
-  (parent 0)
-  (unrealized (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton foo3
-  (vars (x x-0 rndx))
-  (defstrand resp 1 (h (exp (gen) x)))
-  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
-  (defstrand init 1 (x x-0))
-  (precedes ((1 1) (0 0)) ((2 0) (1 0)))
-  (non-orig x)
-  (precur (1 0))
-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))
-  (traces ((recv (exp (gen) x)))
-    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
-      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
-    ((send (exp (gen) x-0))))
-  (label 3)
-  (parent 2)
-  (unrealized (0 0) (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton foo3
-  (vars (x rndx))
-  (defstrand resp 1 (h (exp (gen) x)))
-  (deflistener (cat (exp (gen) x) (one)))
-  (defstrand init 1 (x x))
-  (precedes ((1 1) (0 0)) ((2 0) (1 0)))
-  (non-orig x)
-  (precur (1 0))
-  (operation nonce-test (contracted (x-0 x) (x-1 x)) (one) (1 0))
-  (traces ((recv (exp (gen) x)))
-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))
-    ((send (exp (gen) x))))
-  (label 4)
-  (parent 3)
-  (seen 1)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(comment "Nothing left to do")
diff --git a/tst/dhcr_um.lisp b/tst/dhcr_um.lisp
new file mode 100644
--- /dev/null
+++ b/tst/dhcr_um.lisp
@@ -0,0 +1,206 @@
+;;; Unified Model  This version used in the paper, tooldev/dh/conf_dh/dh_ebn.tex
+
+;;; This file models the "Unified Model" method of determining a fresh
+;;; key from long-term and ephemeral Diffie-Hellman exponents.  We use
+;;; function relation declarations to link names to long-term public
+;;; values.
+
+;;; This file contains the standard version, in which the two
+;;; ephemeral are mixed, as are the two static exponents.
+
+;;; A role is provided in which a party signs a fresh long-term
+;;; Diffie-Hellman value, and then leaks the exponent.  The latter step
+;;; is used to test the notion of forward security.
+
+;;; Two inputs are analyzed.  In the first, we model that two
+;;; participants exist that agree on the UM key.  The notion of
+;;; "implicit authentication" suggests that if one participant exists
+;;; and another party knows the same key, that party must be either the
+;;; participant or the participant's intended partner.
+
+;;; In this version, we assume that the long-term keys of the
+;;; participants do not leak.
+
+;;; The second input checks whether the key can be learned when the key
+;;; is generated honestly.  In this version, we do NOT assume that the
+;;; long-term keys of the participants do not leak.
+
+;;; CPSA4 revisions:
+;;;
+;;; 1.  Self certify my public value in ltx-gen,
+;;;     and assume signing keys non.
+;;; 2.  Deposit private value in state and retrieve
+;;;	it at the beginning of each init or resp run.
+;;; 3.  Discard the private value from state before
+;;;	disclosing it, when testing forward secrecy.  
+
+
+
+(herald "DHCR: unified model (UM) original"
+	(bound 20)
+	(limit 12000)
+	(algebra diffie-hellman))
+
+(defmacro (kcfa l gb x gy)
+  (hash (exp gb l) (exp gy x)))
+
+(defmacro (kcfb l ga y gx)
+  (hash (exp ga l) (exp gx y)))
+
+(defprotocol dhcr-um diffie-hellman
+  (defrole init
+    (vars (l x rndx) (gb gy base) (a b name) (na nb data) (priv-stor locn))
+    (trace
+     (load priv-stor (pv a l))
+     (recv (sig (body b gb (pubk "sig" b))
+		(privk "sig" b)))
+     (send (cat na a b (exp (gen) x)))
+     (recv (cat gy (enc na nb a b (kcfa l gb x gy))))
+     (send nb)
+     )
+    (uniq-gen x)
+    (uniq-orig na)
+    ;; (facts (neq gy (gen)))
+    (gen-st (pv a l))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+           ("ltx-of" (a ltxa) (b ltxb))))
+
+  (defrole resp
+    (vars (l y rndx) (ga gx base) (a b name) (na nb data) (priv-stor locn))
+    (trace
+     (load priv-stor (pv b l))
+     (recv (sig (body a ga (pubk "sig" a))
+		(privk "sig" a)))
+     (recv (cat na a b gx))
+     (send (cat (exp (gen) y) (enc na nb a b (kcfb l ga y gx))))
+     (recv nb)
+     )
+    (uniq-gen y)
+    (uniq-orig nb)
+    ;; (facts (neq gx (gen)))
+    (gen-st (pv b l))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+	   ("ltx-of" (a ltxa) (b ltxb))))
+
+  (defrole ltx-gen
+    (vars (self name) (l rndx)
+	  (priv-stor locn) (ignore mesg))
+    (trace
+     (load priv-stor ignore)
+     (stor priv-stor (pv self l))
+     (send (sig (body self (exp (gen) l) (pubk "sig" self))
+		(privk "sig" self))))
+    (uniq-orig l)    
+    (fn-of ("principal-of" (l self))
+	   ("ltx-of" (self l))))
+
+  (defrole ltx-disclose
+    (vars (self name) (l rndx)
+	  (priv-stor locn) (ignore mesg))
+    (trace
+     (load priv-stor (pv self l))
+     (stor priv-stor "nil")
+     (send l))
+    (gen-st (pv self l)) 
+    (fn-of ("principal-of" (l self))
+	   ("ltx-of" (self l))))
+
+  (defrule undisclosed-not-disclosed
+    (forall
+     ((z strd) (l rndx))
+     (implies
+      (and (fact undisclosed l)
+	  (p "ltx-disclose" z 2)
+	  (p "ltx-disclose" "l" z l))
+      (false))))
+
+  (lang (sig sign)
+	(body (tuple 3))
+	(pv (tuple 2))))
+
+; Initiator point of view: both LTX exponents secret
+(defskeleton dhcr-um
+  (vars (a b name) (l l-peer rndx))
+  (defstrand init 4 (a a) (b b) (l l) (gb (exp (gen) l-peer)))
+  (non-orig (privk "sig" b))
+  (facts (neq a b)
+	 (undisclosed l)
+	 (undisclosed l-peer)))
+
+
+; Initiator point of view:  peer exponent secret
+(defskeleton dhcr-um
+  (vars (a b name) (l l-peer rndx))
+  (defstrand init 4 (a a) (b b) (l l) (gb (exp (gen) l-peer)))
+  (non-orig (privk "sig" b))
+  (facts (neq a b)
+	 ;;	 (undisclosed l)
+	 (undisclosed l-peer)))
+
+
+; Initiator point of view:  my exponent secret
+(defskeleton dhcr-um
+  (vars (a b name) (l l-peer rndx))
+  (defstrand init 4 (a a) (b b) (l l) (gb (exp (gen) l-peer)))
+  (non-orig (privk "sig" b))
+  (facts (neq a b)
+	 ;;	 (undisclosed l-peer)
+	 (undisclosed l)))
+
+; Initiator point of view:  neither exponent secret
+
+(defskeleton dhcr-um
+  (vars (a b name) (l l-peer rndx))
+  (defstrand init 4 (a a) (b b) (l l) (gb (exp (gen) l-peer)))
+  (non-orig (privk "sig" b))
+  (facts (neq a b)
+	 ;;	 (undisclosed l-peer)
+	 ;;	 (undisclosed l)
+	 ))
+
+(comment 
+					; Initiator point of view: partner's exponent secret
+ (defskeleton dhcr-um
+   (vars (ltxa ltxb rndx) (a b name))
+   (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
+   (defstrand ltx-gen 1 (l ltxb))
+   (non-orig ltxb)
+   (neq (a b)))
+
+					; Responder point of view; both exponents secret
+ (defskeleton dhcr-um
+   (vars (ltxa ltxb rndx) (a b name))
+   (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
+   (defstrand ltx-gen 1 (l ltxa))
+   (defstrand ltx-gen 1 (l ltxb))
+   (non-orig ltxa ltxb)
+   (neq (a b)))
+
+					; Responder point of view; partner's exponent secre
+ (defskeleton dhcr-um
+   (vars (ltxa ltxb rndx) (a b name))
+   (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
+   (defstrand ltx-gen 1 (l ltxa))
+   (non-orig ltxa)
+   (neq (a b)))
+
+;;; Forward secrecy, neither long-term exponent secure
+ (defskeleton dhcr-um
+   (vars (ltxa ltxb x rndx) (y expt) (a b name))
+   (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
+   (deflistener (kcfa ltxa ltxb x (exp (gen) y)))
+   (defstrand ltx-gen 3 (l ltxa))
+   (defstrand ltx-gen 3 (l ltxb))
+   (precedes ((0 3) (3 1)) ((0 3) (2 1)))
+   (neq (a b)))
+
+;;; Forward secrecy, neither long-term exponent secure
+ (defskeleton dhcr-um
+   (vars (ltxa ltxb x rndx) (y expt) (a b name))
+   (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
+   (deflistener (exp (gen) (mul x y)))
+   (defstrand ltx-gen 3 (l ltxa))
+   (defstrand ltx-gen 3 (l ltxb))
+   (precedes ((0 3) (3 1)) ((0 3) (2 1)))
+   (neq (a b)))
+ )
diff --git a/tst/dhcr_um.scm b/tst/dhcr_um.scm
--- a/tst/dhcr_um.scm
+++ b/tst/dhcr_um.scm
@@ -1,126 +1,214 @@
-; Unified Model  This version used in the paper, tooldev/dh/conf_dh/dh_ebn.tex
+;;; Unified Model  This version used in the paper, tooldev/dh/conf_dh/dh_ebn.tex
 
-; This file models the "Unified Model" method of determining a fresh
-; key from long-term and ephemeral Diffie-Hellman exponents.  We use
-; function relation declarations to link names to long-term public
-; values.
+;;; This file models the "Unified Model" method of determining a fresh
+;;; key from long-term and ephemeral Diffie-Hellman exponents.  We use
+;;; function relation declarations to link names to long-term public
+;;; values.
 
 ;;; This file contains the standard version, in which the two
 ;;; ephemeral are mixed, as are the two static exponents.
 
-; A role is provided in which a party signs a fresh long-term
-; Diffie-Hellman value, and then leaks the exponent.  The latter step
-; is used to test the notion of forward security.
+;;; A role is provided in which a party signs a fresh long-term
+;;; Diffie-Hellman value, and then leaks the exponent.  The latter step
+;;; is used to test the notion of forward security.
 
-; Two inputs are analyzed.  In the first, we model that two
-; participants exist that agree on the UM key.  The notion of
-; "implicit authentication" suggests that if one participant exists
-; and another party knows the same key, that party must be either the
-; participant or the participant's intended partner.
+;;; Two inputs are analyzed.  In the first, we model that two
+;;; participants exist that agree on the UM key.  The notion of
+;;; "implicit authentication" suggests that if one participant exists
+;;; and another party knows the same key, that party must be either the
+;;; participant or the participant's intended partner.
 
-; In this version, we assume that the long-term keys of the
-; participants do not leak.
+;;; In this version, we assume that the long-term keys of the
+;;; participants do not leak.
 
-; The second input checks whether the key can be learned when the key
-; is generated honestly.  In this version, we do NOT assume that the
-; long-term keys of the participants do not leak.
+;;; The second input checks whether the key can be learned when the key
+;;; is generated honestly.  In this version, we do NOT assume that the
+;;; long-term keys of the participants do not leak.
 
-(herald "DHCR: unified model (UM) original" (bound 20) (limit 8000) (algebra diffie-hellman))
+;;; CPSA4 revisions:
+;;;
+;;; 1.  Self certify my public value in ltx-gen,
+;;;     and assume signing keys non.
+;;; 2.  Deposit private value in state and retrieve
+;;;	it at the beginning of each init or resp run.
+;;; 3.  Discard the private value from state before
+;;;	disclosing it, when testing forward secrecy.
 
-(defmacro (kcfa ltxa ltxb x hy)
-  (hash (exp (gen) (mul ltxa ltxb)) (exp hy x)))
+(herald "DHCR: unified model (UM) original"
+	(bound 20)
+	(limit 325)
+	(algebra diffie-hellman))
 
-(defmacro (kcfb ltxa ltxb y hx)
-  (hash (exp (gen) (mul ltxa ltxb)) (exp hx y)))
+(defmacro (kcfa l gb x gy)
+  (hash (exp gb l) (exp gy x)))
 
+(defmacro (kcfb l ga y gx)
+  (hash (exp ga l) (exp gx y)))
+
 (defprotocol dhcr-um diffie-hellman
   (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
+    (vars (l x rndx) (gb gy base) (a b name) (na nb data) (priv-stor locn))
     (trace
-     (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+     (load priv-stor (pv a l))
+     (recv (sig (body b gb (pubk "sig" b))
+		(privk "sig" b)))
      (send (cat na a b (exp (gen) x)))
-     (recv (cat (exp (gen) y) (enc na nb a b (kcfa ltxa ltxb x (exp (gen) y)))))
+     (recv (cat gy (enc na nb a b (kcfa l gb x gy))))
      (send nb)
      )
-    (fn-of ("principal-of" (ltxa a) (ltxb b))
-           ("ltx-of" (a ltxa) (b ltxb)))
     (uniq-gen x)
     (uniq-orig na)
-    (neq ((exp (gen) y) (gen))))
+    ;; (facts (neq gy (gen)))
+    (gen-st (pv a l))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+           ("ltx-of" (a ltxa) (b ltxb))))
 
   (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
+    (vars (l y rndx) (ga gx base) (a b name) (na nb data) (priv-stor locn))
     (trace
-     (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-     (recv (cat na a b (exp (gen) x)))
-     (send (cat (exp (gen) y) (enc na nb a b (kcfb ltxa ltxb y (exp (gen) x)))))
+     (load priv-stor (pv b l))
+     (recv (sig (body a ga (pubk "sig" a))
+		(privk "sig" a)))
+     (recv (cat na a b gx))
+     (send (cat (exp (gen) y) (enc na nb a b (kcfb l ga y gx))))
      (recv nb)
      )
-    (fn-of ("principal-of" (ltxa a) (ltxb b))
-	   ("ltx-of" (a ltxa) (b ltxb)))
     (uniq-gen y)
     (uniq-orig nb)
-    (neq ((exp (gen) x) (gen))))
+    ;;    (facts (neq gx (gen)))
+    (gen-st (pv b l))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+	   ("ltx-of" (a ltxa) (b ltxb))))
 
   (defrole ltx-gen
-    (vars (self name) (l rndx))
+    (vars (self name) (l rndx)
+	  (priv-stor locn) (ignore mesg))
     (trace
-     (send (cat self (exp (gen) l)))
-     (recv "end-of-protocol")
+     (load priv-stor ignore)
+     (stor priv-stor (pv self l))
+     (send (sig (body self (exp (gen) l) (pubk "sig" self))
+		(privk "sig" self))))
+    (uniq-orig l)
+    (fn-of ("principal-of" (l self))
+	   ("ltx-of" (self l))))
+
+  (defrole ltx-disclose
+    (vars (self name) (l rndx)
+	  (priv-stor locn) (ignore mesg))
+    (trace
+     (load priv-stor (pv self l))
+     (stor priv-stor "nil")
      (send l))
-    (uniq-gen l)
+    (gen-st (pv self l))
     (fn-of ("principal-of" (l self))
-	   ("ltx-of" (self l)))))
+	   ("ltx-of" (self l))))
 
+  (defrule fact-resp-neq0
+    (forall ((z strd) ;(gx base)
+	     )
+	    (implies (and (p "resp" z 3) (p "resp" "gx" z (gen))) (false))))
+
+  (defrule fact-init-neq0
+    (forall ((z strd) ;(gx base)
+	     )
+	    (implies (and (p "init" z 4) (p "init" "gy" z (gen))) (false))))
+
+  (defrule undisclosed-not-disclosed
+    (forall
+     ((z strd) (l rndx))
+     (implies
+      (and (fact undisclosed l)
+	  (p "ltx-disclose" z 2)
+	  (p "ltx-disclose" "l" z l))
+      (false))))
+
+  (lang (sig sign)
+	(body (tuple 3))
+	(pv (tuple 2))))
+
 ; Initiator point of view: both LTX exponents secret
 (defskeleton dhcr-um
-  (vars (ltxa ltxb rndx) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
-  (defstrand ltx-gen 1 (l ltxa))
-  (defstrand ltx-gen 1 (l ltxb))
-  (non-orig ltxa ltxb) (neq (a b)))
+  (vars (a b name) (l l-peer rndx))
+  (defstrand init 4 (a a) (b b) (l l) (gb (exp (gen) l-peer)))
+  (non-orig (privk "sig" b))
+  (facts (neq a b)
+	 (undisclosed l)
+	 (undisclosed l-peer)))
 
-; Initiator point of view: partner's exponent secret
+(comment
+
+; Initiator point of view:  peer exponent secret
 (defskeleton dhcr-um
-  (vars (ltxa ltxb rndx) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
-  (defstrand ltx-gen 1 (l ltxb))
-  (non-orig ltxb)
-  (neq (a b)))
+  (vars (a b name) (l l-peer rndx))
+  (defstrand init 4 (a a) (b b) (l l) (gb (exp (gen) l-peer)))
+  (non-orig (privk "sig" b))
+  (facts (neq a b)
+	 ;;	 (undisclosed l)
+	 (undisclosed l-peer)))
 
-; Responder point of view; both exponents secret
+; Initiator point of view:  my exponent secret
 (defskeleton dhcr-um
-  (vars (ltxa ltxb rndx) (a b name))
-  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
-  (defstrand ltx-gen 1 (l ltxa))
-  (defstrand ltx-gen 1 (l ltxb))
-  (non-orig ltxa ltxb)
-  (neq (a b)))
+  (vars (a b name) (l rndx) (l-peer expt))
+  (defstrand init 4 (a a) (b b) (l l) (gb (exp (gen) l-peer)))
+  (non-orig (privk "sig" b))
+  (facts (neq a b)
+	 ;;	 (undisclosed l-peer)
+	 (undisclosed l)))
 
-; Responder point of view; partner's exponent secre
+; Initiator point of view:  neither exponent secret
+
 (defskeleton dhcr-um
-  (vars (ltxa ltxb rndx) (a b name))
-  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
-  (defstrand ltx-gen 1 (l ltxa))
-  (non-orig ltxa)
-  (neq (a b)))
+  (vars (a b name) (l rndx) (l-peer expt))
+  (defstrand init 4 (a a) (b b) (l l) (gb (exp (gen) l-peer)))
+  (non-orig (privk "sig" b))
+  (facts (neq a b)
+	 ;;	 (undisclosed l-peer)
+	 ;;	 (undisclosed l)
+	 )))
 
+(comment
+					; Initiator point of view: partner's exponent secret
+ (defskeleton dhcr-um
+   (vars (ltxa ltxb rndx) (a b name))
+   (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
+   (defstrand ltx-gen 1 (l ltxb))
+   (non-orig ltxb)
+   (neq (a b)))
+
+					; Responder point of view; both exponents secret
+ (defskeleton dhcr-um
+   (vars (ltxa ltxb rndx) (a b name))
+   (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
+   (defstrand ltx-gen 1 (l ltxa))
+   (defstrand ltx-gen 1 (l ltxb))
+   (non-orig ltxa ltxb)
+   (neq (a b)))
+
+					; Responder point of view; partner's exponent secre
+ (defskeleton dhcr-um
+   (vars (ltxa ltxb rndx) (a b name))
+   (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
+   (defstrand ltx-gen 1 (l ltxa))
+   (non-orig ltxa)
+   (neq (a b)))
+
 ;;; Forward secrecy, neither long-term exponent secure
-(defskeleton dhcr-um
-  (vars (ltxa ltxb x rndx) (y expt) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
-  (deflistener (kcfa ltxa ltxb x (exp (gen) y)))
-  (defstrand ltx-gen 3 (l ltxa))
-  (defstrand ltx-gen 3 (l ltxb))
-  (precedes ((0 3) (3 1)) ((0 3) (2 1)))
-  (neq (a b)))
+ (defskeleton dhcr-um
+   (vars (ltxa ltxb x rndx) (y expt) (a b name))
+   (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
+   (deflistener (kcfa ltxa ltxb x (exp (gen) y)))
+   (defstrand ltx-gen 3 (l ltxa))
+   (defstrand ltx-gen 3 (l ltxb))
+   (precedes ((0 3) (3 1)) ((0 3) (2 1)))
+   (neq (a b)))
 
 ;;; Forward secrecy, neither long-term exponent secure
-(defskeleton dhcr-um
-  (vars (ltxa ltxb x rndx) (y expt) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
-  (deflistener (exp (gen) (mul x y)))
-  (defstrand ltx-gen 3 (l ltxa))
-  (defstrand ltx-gen 3 (l ltxb))
-  (precedes ((0 3) (3 1)) ((0 3) (2 1)))
-  (neq (a b)))
+ (defskeleton dhcr-um
+   (vars (ltxa ltxb x rndx) (y expt) (a b name))
+   (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
+   (deflistener (exp (exp (gen) x) y))
+   (defstrand ltx-gen 3 (l ltxa))
+   (defstrand ltx-gen 3 (l ltxb))
+   (precedes ((0 3) (3 1)) ((0 3) (2 1)))
+   (neq (a b)))
+ )
diff --git a/tst/dhcr_um.tst b/tst/dhcr_um.tst
--- a/tst/dhcr_um.tst
+++ b/tst/dhcr_um.tst
@@ -1,9879 +1,20644 @@
-(herald "DHCR: unified model (UM) original" (bound 20) (limit 8000)
-  (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/dhcr_um.scm")
-(comment "Step count limited to 8000")
-(comment "Strand count bounded at 20")
-
-(defprotocol dhcr-um diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-      (y (exp (gen) x))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self self) (l ltxa))
-  (defstrand ltx-gen 1 (self self-0) (l ltxb))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb)) ((send (cat self (exp (gen) ltxa))))
-    ((send (cat self-0 (exp (gen) ltxb)))))
-  (label 0)
-  (unrealized (0 0) (0 2))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)) ((2 0) (0 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb)) ((send (cat a (exp (gen) ltxa))))
-    ((send (cat b (exp (gen) ltxb)))))
-  (label 1)
-  (parent 0)
-  (unrealized (0 2))
-  (origs (na (0 1)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x y rndx) (x-0 expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) y x-0)))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x-0))
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x-0))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x-0) (gen)) (a b)
-    ((exp (gen) (mul (rec x) y x-0)) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) y x-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x-0)))))) (send nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x-0)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x-0))))))))
-  (label 2)
-  (parent 1)
-  (unrealized (0 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb)) ((send (cat a (exp (gen) ltxa))))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-  (label 3)
-  (parent 1)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 4 3 resp 3) (exp (gen) y-0) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb)) ((send (cat a (exp (gen) ltxa))))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x y))))))))
-  (label 4)
-  (parent 2)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1 2)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na)
-        (nb nb))))
-  (origs (nb (3 2)) (na (0 1))))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x y rndx) (x-0 w expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) y x-0)))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x-0))
-  (deflistener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (4 0)) ((4 1) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x-0))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x-0) (gen)) (a b)
-    ((exp (gen) (mul (rec x) y x-0)) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (precur (4 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))
-    (exp (gen) (mul (rec x) y x-0)) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) y x-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x-0)))))) (send nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x-0)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x-0)))))))
-    ((recv (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))
-      (send (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))))
-  (label 5)
-  (parent 2)
-  (unrealized (4 0))
-  (comment "8 in cohort - 8 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2))
-    ((4 1) (3 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))) (3 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb)) ((send (cat a (exp (gen) ltxa))))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-  (label 6)
-  (parent 3)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w)))
-  (deflistener (cat (gen) (mul w y)))
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (4 0)) ((4 1) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (precur (4 0))
-  (operation nonce-test
-    (contracted (x-0 x) (y-0 y) (x-1 (mul x w)) (w-0 (mul w y)) (y-1 y)
-      (w (mul w y))) (gen) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))) (send nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))))
-    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))
-  (label 7)
-  (parent 5)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w x y)))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x x)))
-  (deflistener (cat (exp (gen) x) (mul w y)))
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (4 0)) ((4 1) (0 2)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))
-    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x x))))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x x)) (gen)) (a b)
-    ((exp (gen) (mul w x y)) (gen)))
-  (non-orig ltxa ltxb)
-  (precur (4 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 5 0 init 2) (exp (gen) x-0) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w x y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x x y)))))) (send nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x x))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x x y)))))))
-    ((recv (cat (exp (gen) x) (mul w y)))
-      (send (cat (exp (gen) x) (mul w y)))))
-  (label 8)
-  (parent 5)
-  (unrealized (0 2) (3 1) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w x-0 y)))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w x-0)))
-  (deflistener (cat (exp (gen) x-0) (mul w y)))
-  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (x x-0))
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (4 0)) ((4 1) (0 2)) ((5 1) (3 1)))
-  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))
-    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w x-0))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w x-0)) (gen)) (a b)
-    ((exp (gen) (mul w x-0 y)) (gen)))
-  (non-orig ltxa ltxb)
-  (precur (4 0))
-  (uniq-gen ltxa ltxb x x-0 y)
-  (uniq-orig na nb na-0)
-  (operation nonce-test (added-strand init 2) (exp (gen) x-0) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w x-0 y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w x-0 y)))))) (send nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w x-0))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w x-0 y)))))))
-    ((recv (cat (exp (gen) x-0) (mul w y)))
-      (send (cat (exp (gen) x-0) (mul w y))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))))
-  (label 9)
-  (parent 5)
-  (unrealized (0 2) (3 1) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w)))
-  (deflistener (cat (exp (gen) y) w))
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (4 0)) ((4 1) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (non-orig ltxa ltxb)
-  (precur (4 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 5 3 resp 3) (exp (gen) y-0) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))) (send nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
-  (label 10)
-  (parent 5)
-  (seen 2)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)
-    (y y-0 rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x-0) (y (mul w y y-0)))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y-0) (x (mul x-0 w y)))
-  (deflistener (cat (exp (gen) y) (mul w y-0)))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (y y) (x x))
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (4 0)) ((4 1) (0 2)) ((5 2) (3 1)))
-  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))
-    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))
-    (y-0 (exp (gen) (mul x-0 w y))) (x-0 (exp (gen) ltxa))
-    (x-0 (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul x-0 w y)) (gen)) (a b)
-    ((exp (gen) (mul w y y-0)) (gen)))
-  (non-orig ltxa ltxb)
-  (precur (4 0))
-  (uniq-gen ltxa ltxb x-0 y y-0)
-  (uniq-orig na nb nb-0)
-  (operation nonce-test (added-strand resp 3) (exp (gen) y) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x-0)))
-      (recv
-        (cat (exp (gen) (mul w y y-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x-0 w y y-0)))))) (send nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x-0 w y))))
-      (send
-        (cat (exp (gen) y-0)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x-0 w y y-0)))))))
-    ((recv (cat (exp (gen) y) (mul w y-0)))
-      (send (cat (exp (gen) y) (mul w y-0))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (recv (cat na-0 a-0 b-0 (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na-0 nb-0 a-0 b-0
-            (hash (exp (gen) (mul ltxa-0 ltxb-0))
-              (exp (gen) (mul x y))))))))
-  (label 11)
-  (parent 5)
-  (unrealized (0 2) (3 1) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y (mul w l y)))
-  (defstrand ltx-gen 1 (self a) (l l))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (4 0)) ((4 1) (0 2)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (non-orig ltxb l)
-  (precur (4 0))
-  (uniq-gen ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 5 1 ltx-gen 1) (exp (gen) l-0) (4 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))))
-      (send nb)) ((send (cat a (exp (gen) l))))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))))
-  (label 12)
-  (parent 5)
-  (unrealized (0 2) (3 1) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y (mul w l y)))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l l))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (4 0)) ((4 1) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (non-orig ltxa l)
-  (precur (4 0))
-  (uniq-gen ltxa x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 5 2 ltx-gen 1) (exp (gen) l-0) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))))
-      (send nb)) ((send (cat a (exp (gen) ltxa))))
-    ((send (cat b (exp (gen) l))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))))
-  (label 13)
-  (parent 5)
-  (unrealized (0 2) (3 1) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)
-    (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w l y)))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (4 0)) ((4 1) (0 2)) ((5 0) (3 1)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))
-    ("principal-of" (l self) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (non-orig ltxa ltxb)
-  (precur (4 0))
-  (uniq-gen ltxa ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w l y)))))) (send nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y))))
-    ((send (cat self (exp (gen) l)))))
-  (label 14)
-  (parent 5)
-  (unrealized (0 2) (3 1) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w)))
-  (deflistener (cat (gen) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (5 0)) ((4 1) (0 2)) ((5 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (precur (4 0))
-  (operation nonce-test (added-listener y) (mul w y) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))) (send nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))))
-    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))
-    ((recv y) (send y)))
-  (label 15)
-  (parent 7)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w x y)))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x x)))
-  (deflistener (cat (exp (gen) x) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (5 0)) ((4 1) (0 2)) ((5 1) (4 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))
-    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x x))))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x x)) (gen)) (a b)
-    ((exp (gen) (mul w x y)) (gen)))
-  (non-orig ltxa ltxb)
-  (precur (4 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w x y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x x y)))))) (send nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x x))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x x y)))))))
-    ((recv (cat (exp (gen) x) (mul w y)))
-      (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))
-  (label 16)
-  (parent 8)
-  (unrealized (3 1) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w x-0 y)))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w x-0)))
-  (deflistener (cat (exp (gen) x-0) (mul w y)))
-  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (x x-0))
-  (deflistener y)
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (6 0)) ((4 1) (0 2)) ((5 1) (3 1))
-    ((6 1) (4 0)))
-  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))
-    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w x-0))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w x-0)) (gen)) (a b)
-    ((exp (gen) (mul w x-0 y)) (gen)))
-  (non-orig ltxa ltxb)
-  (precur (4 0))
-  (uniq-gen ltxa ltxb x x-0 y)
-  (uniq-orig na nb na-0)
-  (operation nonce-test (added-listener y) (mul w y) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w x-0 y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w x-0 y)))))) (send nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w x-0))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w x-0 y)))))))
-    ((recv (cat (exp (gen) x-0) (mul w y)))
-      (send (cat (exp (gen) x-0) (mul w y))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))) ((recv y) (send y)))
-  (label 17)
-  (parent 9)
-  (unrealized (3 1) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)
-    (y y-0 rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x-0) (y (mul w y y-0)))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y-0) (x (mul x-0 w y)))
-  (deflistener (cat (exp (gen) y) (mul w y-0)))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (y y) (x x))
-  (deflistener y-0)
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (6 0)) ((4 1) (0 2)) ((5 2) (3 1))
-    ((6 1) (4 0)))
-  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))
-    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))
-    (y-0 (exp (gen) (mul x-0 w y))) (x-0 (exp (gen) ltxa))
-    (x-0 (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul x-0 w y)) (gen)) (a b)
-    ((exp (gen) (mul w y y-0)) (gen)))
-  (non-orig ltxa ltxb)
-  (precur (4 0))
-  (uniq-gen ltxa ltxb x-0 y y-0)
-  (uniq-orig na nb nb-0)
-  (operation nonce-test (added-listener y-0) (mul w y-0) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x-0)))
-      (recv
-        (cat (exp (gen) (mul w y y-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x-0 w y y-0)))))) (send nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x-0 w y))))
-      (send
-        (cat (exp (gen) y-0)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x-0 w y y-0)))))))
-    ((recv (cat (exp (gen) y) (mul w y-0)))
-      (send (cat (exp (gen) y) (mul w y-0))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (recv (cat na-0 a-0 b-0 (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na-0 nb-0 a-0 b-0
-            (hash (exp (gen) (mul ltxa-0 ltxb-0))
-              (exp (gen) (mul x y))))))) ((recv y-0) (send y-0)))
-  (label 18)
-  (parent 11)
-  (unrealized (3 1) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y (mul w l y)))
-  (defstrand ltx-gen 1 (self a) (l l))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (5 0)) ((4 1) (0 2)) ((5 1) (4 0)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (non-orig ltxb l)
-  (precur (4 0))
-  (uniq-gen ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (4 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))))
-      (send nb)) ((send (cat a (exp (gen) l))))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))
-  (label 19)
-  (parent 12)
-  (unrealized (3 1) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y (mul w l y)))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l l))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (5 0)) ((4 1) (0 2)) ((5 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (non-orig ltxa l)
-  (precur (4 0))
-  (uniq-gen ltxa x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))))
-      (send nb)) ((send (cat a (exp (gen) ltxa))))
-    ((send (cat b (exp (gen) l))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))
-  (label 20)
-  (parent 13)
-  (unrealized (3 1) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)
-    (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w l y)))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener y)
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (6 0)) ((4 1) (0 2)) ((5 0) (3 1))
-    ((6 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))
-    ("principal-of" (l self) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (non-orig ltxa ltxb)
-  (precur (4 0))
-  (uniq-gen ltxa ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w l y)))))) (send nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y))))
-    ((send (cat self (exp (gen) l)))) ((recv y) (send y)))
-  (label 21)
-  (parent 14)
-  (unrealized (3 1) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol dhcr-um diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-      (y (exp (gen) x))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self self) (l ltxb))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self ltxb) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb)) ((send (cat self (exp (gen) ltxb)))))
-  (label 22)
-  (unrealized (0 0) (0 2))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb)) ((send (cat b (exp (gen) ltxb)))))
-  (label 23)
-  (parent 22)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na)
-        (nb nb))))
-  (origs (na (0 1))))
-
-(comment "Nothing left to do")
-
-(defprotocol dhcr-um diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-      (y (exp (gen) x))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self self) (l ltxa))
-  (defstrand ltx-gen 1 (self self-0) (l ltxb))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))
-      (recv nb)) ((send (cat self (exp (gen) ltxa))))
-    ((send (cat self-0 (exp (gen) ltxb)))))
-  (label 24)
-  (unrealized (0 0) (0 3))
-  (preskeleton)
-  (origs (nb (0 2)))
-  (comment "Not a skeleton"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)) ((2 0) (0 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))
-      (recv nb)) ((send (cat a (exp (gen) ltxa))))
-    ((send (cat b (exp (gen) ltxb)))))
-  (label 25)
-  (parent 24)
-  (unrealized (0 3))
-  (origs (nb (0 2)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt) (y-0 rndx))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y-0) (x (mul x y)))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul y y-0)))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 1) (0 1)) ((3 3) (0 3)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))
-    (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))
-    (y-0 (exp (gen) (mul x y))))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul y y-0)) (gen)) (a b)
-    ((exp (gen) (mul x y)) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x y-0)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand init 4) nb (0 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y y-0)))))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x y))))
-      (send
-        (cat (exp (gen) y-0)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x y y-0)))))) (recv nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul y y-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x y y-0)))))) (send nb)))
-  (label 26)
-  (parent 25)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1 2)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y-0) (x (mul x y)) (na na)
-        (nb nb))))
-  (origs (na (3 1)) (nb (0 2))))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x)))) nb (0 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x)))))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))
-      (recv nb)) ((send (cat a (exp (gen) ltxa))))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))
-  (label 27)
-  (parent 25)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))) (3 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))
-      (recv nb)) ((send (cat a (exp (gen) ltxa))))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x)))))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))
-  (label 28)
-  (parent 27)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol dhcr-um diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-      (y (exp (gen) x))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self self) (l ltxa))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))
-      (recv nb)) ((send (cat self (exp (gen) ltxa)))))
-  (label 29)
-  (unrealized (0 0) (0 3))
-  (preskeleton)
-  (origs (nb (0 2)))
-  (comment "Not a skeleton"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (precedes ((1 0) (0 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))
-      (recv nb)) ((send (cat a (exp (gen) ltxa)))))
-  (label 30)
-  (parent 29)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)
-        (nb nb))))
-  (origs (nb (0 2))))
-
-(comment "Nothing left to do")
-
-(defprotocol dhcr-um diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-      (y (exp (gen) x))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self self) (l ltxa))
-  (defstrand ltx-gen 3 (self self-0) (l ltxb))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 31)
-  (unrealized (0 0) (0 2) (1 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 32)
-  (parent 31)
-  (unrealized (0 2) (1 0))
-  (origs (na (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))) (1 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-  (label 33)
-  (parent 32)
-  (unrealized (0 2) (4 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (5 0)) ((3 0) (0 0)) ((3 0) (5 0)) ((4 1) (1 0))
-    ((5 1) (4 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) ltxa) ltxb))
-    (exp (gen) (mul ltxa ltxb)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb))))
-  (label 34)
-  (parent 33)
-  (unrealized (0 2) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (5 0)) ((3 0) (0 0)) ((3 0) (5 0)) ((4 1) (1 0))
-    ((5 1) (4 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) ltxb) ltxa))
-    (exp (gen) (mul ltxa ltxb)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa))))
-  (label 35)
-  (parent 33)
-  (unrealized (0 2) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxa) l))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((3 0) (0 0))
-    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation nonce-test (displaced 6 3 ltx-gen 3) l (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxa) l)) (send (cat (exp (gen) ltxa) l))))
-  (label 36)
-  (parent 34)
-  (unrealized (0 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxb x rndx) (y expt) (l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxb) l))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (5 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
-  (absent (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation nonce-test (displaced 6 2 ltx-gen 3) l (5 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l))))
-  (label 37)
-  (parent 35)
-  (unrealized (0 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x y rndx) (x-0 expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) y x-0)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x-0))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x-0))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x-0) (gen)) (a b)
-    ((exp (gen) (mul (rec x) y x-0)) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) y x-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x-0)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x-0)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x-0))))))))
-  (label 38)
-  (parent 36)
-  (unrealized (0 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxa) l))
-  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (0 2)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxa) l)) (send (cat (exp (gen) ltxa) l)))
-    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))))
-  (label 39)
-  (parent 36)
-  (unrealized (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x y rndx) (x-0 expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) y x-0)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x-0))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x-0))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x-0) (gen)) (a b)
-    ((exp (gen) (mul (rec x) y x-0)) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) y x-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x-0)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x-0)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x-0))))))))
-  (label 40)
-  (parent 37)
-  (unrealized (0 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxb x rndx) (y expt) (l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxb) l))
-  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (5 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (0 2)))
-  (absent (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
-    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))))
-  (label 41)
-  (parent 37)
-  (unrealized (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 7 6 resp 3) (exp (gen) y-0) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x y))))))))
-  (label 42)
-  (parent 38)
-  (unrealized (4 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x y rndx) (x-0 w expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) y x-0)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x-0))
-  (deflistener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x-0))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x-0) (gen)) (a b)
-    ((exp (gen) (mul (rec x) y x-0)) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (precur (7 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))
-    (exp (gen) (mul (rec x) y x-0)) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) y x-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x-0)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x-0)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x-0)))))))
-    ((recv (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))
-      (send (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))))
-  (label 43)
-  (parent 38)
-  (unrealized (7 0))
-  (comment "8 in cohort - 8 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxa) l))
-  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (0 2)) ((7 1) (6 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-    (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))) (6 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxa) l)) (send (cat (exp (gen) ltxa) l)))
-    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))))
-  (label 44)
-  (parent 39)
-  (unrealized (7 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 7 6 resp 3) (exp (gen) y-0) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x y))))))))
-  (label 45)
-  (parent 40)
-  (unrealized (4 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x y rndx) (x-0 w expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) y x-0)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x-0))
-  (deflistener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x-0))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x-0) (gen)) (a b)
-    ((exp (gen) (mul (rec x) y x-0)) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (precur (7 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))
-    (exp (gen) (mul (rec x) y x-0)) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) y x-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x-0)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x-0)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x-0)))))))
-    ((recv (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))
-      (send (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))))
-  (label 46)
-  (parent 40)
-  (unrealized (7 0))
-  (comment "8 in cohort - 8 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxb x rndx) (y expt) (l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxb) l))
-  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (5 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (0 2)) ((7 1) (6 0)))
-  (absent (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-    (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))) (6 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
-    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))))
-  (label 47)
-  (parent 41)
-  (unrealized (7 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat (exp (gen) x) y))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((6 2) (7 0))
-    ((7 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener (cat (exp (gen) x) y))
-    (exp (gen) (mul x y)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))))
-    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
-  (label 48)
-  (parent 42)
-  (unrealized (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat (exp (gen) y) x))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((6 2) (7 0))
-    ((7 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener (cat (exp (gen) y) x))
-    (exp (gen) (mul x y)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))))
-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
-  (label 49)
-  (parent 42)
-  (unrealized (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w)))
-  (deflistener (cat (gen) (mul w y)))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (precur (7 0))
-  (operation nonce-test
-    (contracted (x-0 x) (y-0 y) (x-1 (mul x w)) (w-0 (mul w y)) (y-1 y)
-      (w (mul w y))) (gen) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))))
-    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))
-  (label 50)
-  (parent 43)
-  (unrealized (4 0) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w x y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x x)))
-  (deflistener (cat (exp (gen) x) (mul w y)))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))
-    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x x))))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x x)) (gen)) (a b)
-    ((exp (gen) (mul w x y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 8 0 init 2) (exp (gen) x-0) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w x y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x x y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x x))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x x y)))))))
-    ((recv (cat (exp (gen) x) (mul w y)))
-      (send (cat (exp (gen) x) (mul w y)))))
-  (label 51)
-  (parent 43)
-  (unrealized (0 2) (4 0) (6 1) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w x-0 y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w x-0)))
-  (deflistener (cat (exp (gen) x-0) (mul w y)))
-  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (x x-0))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2))
-    ((8 1) (6 1)))
-  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))
-    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w x-0))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w x-0)) (gen)) (a b)
-    ((exp (gen) (mul w x-0 y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa ltxb x x-0 y)
-  (uniq-orig na nb na-0)
-  (operation nonce-test (added-strand init 2) (exp (gen) x-0) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w x-0 y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w x-0 y)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w x-0))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w x-0 y)))))))
-    ((recv (cat (exp (gen) x-0) (mul w y)))
-      (send (cat (exp (gen) x-0) (mul w y))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))))
-  (label 52)
-  (parent 43)
-  (unrealized (0 2) (4 0) (6 1) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w)))
-  (deflistener (cat (exp (gen) y) w))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 8 6 resp 3) (exp (gen) y-0) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
-  (label 53)
-  (parent 43)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)
-    (y y-0 rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x-0) (y (mul w y y-0)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y-0) (x (mul x-0 w y)))
-  (deflistener (cat (exp (gen) y) (mul w y-0)))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (y y) (x x))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2))
-    ((8 2) (6 1)))
-  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))
-    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))
-    (y-0 (exp (gen) (mul x-0 w y))) (x-0 (exp (gen) ltxa))
-    (x-0 (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul x-0 w y)) (gen)) (a b)
-    ((exp (gen) (mul w y y-0)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa ltxb x-0 y y-0)
-  (uniq-orig na nb nb-0)
-  (operation nonce-test (added-strand resp 3) (exp (gen) y) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x-0)))
-      (recv
-        (cat (exp (gen) (mul w y y-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x-0 w y y-0)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb))
-          (exp (gen) (mul x-0 w y y-0)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb))
-          (exp (gen) (mul x-0 w y y-0)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x-0 w y))))
-      (send
-        (cat (exp (gen) y-0)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x-0 w y y-0)))))))
-    ((recv (cat (exp (gen) y) (mul w y-0)))
-      (send (cat (exp (gen) y) (mul w y-0))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (recv (cat na-0 a-0 b-0 (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na-0 nb-0 a-0 b-0
-            (hash (exp (gen) (mul ltxa-0 ltxb-0))
-              (exp (gen) (mul x y))))))))
-  (label 54)
-  (parent 43)
-  (unrealized (0 2) (4 0) (6 1) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y (mul w l y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))
-  (deflistener (cat (exp (gen) l) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 8 2 ltx-gen 1) (exp (gen) l-0) (7 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))
-      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y)))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))
-      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y)))))
-    ((recv (cat (exp (gen) l) ltxb)) (send (cat (exp (gen) l) ltxb)))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))))
-  (label 55)
-  (parent 43)
-  (unrealized (0 2) (4 0) (6 1) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y (mul w l y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))
-  (deflistener (cat (exp (gen) ltxa) l))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 8 3 ltx-gen 1) (exp (gen) l-0) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))
-      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))
-      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y)))))
-    ((recv (cat (exp (gen) ltxa) l)) (send (cat (exp (gen) ltxa) l)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))))
-  (label 56)
-  (parent 43)
-  (unrealized (0 2) (4 0) (6 1) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)
-    (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w l y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2))
-    ((8 0) (6 1)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))
-    ("principal-of" (l self) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w l y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y))))
-    ((send (cat self (exp (gen) l)))))
-  (label 57)
-  (parent 43)
-  (unrealized (0 2) (4 0) (6 1) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxa) l))
-  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxa) l))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (8 0)) ((3 0) (0 0)) ((3 0) (8 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (0 2)) ((7 1) (6 0))
-    ((8 1) (7 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) ltxa) l))
-    (exp (gen) (mul ltxa l)) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxa) l)) (send (cat (exp (gen) ltxa) l)))
-    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxa) l)) (send (cat (exp (gen) ltxa) l))))
-  (label 58)
-  (parent 44)
-  (unrealized (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxa) l))
-  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) l) ltxa))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (8 0)) ((3 0) (0 0)) ((3 0) (8 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (0 2)) ((7 1) (6 0))
-    ((8 1) (7 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) l) ltxa))
-    (exp (gen) (mul ltxa l)) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxa) l)) (send (cat (exp (gen) ltxa) l)))
-    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) l) ltxa)) (send (cat (exp (gen) l) ltxa))))
-  (label 59)
-  (parent 44)
-  (unrealized (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat (exp (gen) x) y))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((6 2) (7 0))
-    ((7 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener (cat (exp (gen) x) y))
-    (exp (gen) (mul x y)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))))
-    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
-  (label 60)
-  (parent 45)
-  (unrealized (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat (exp (gen) y) x))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((6 2) (7 0))
-    ((7 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener (cat (exp (gen) y) x))
-    (exp (gen) (mul x y)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))))
-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
-  (label 61)
-  (parent 45)
-  (unrealized (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w)))
-  (deflistener (cat (gen) (mul w y)))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (precur (7 0))
-  (operation nonce-test
-    (contracted (x-0 x) (y-0 y) (x-1 (mul x w)) (w-0 (mul w y)) (y-1 y)
-      (w (mul w y))) (gen) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))))
-    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))
-  (label 62)
-  (parent 46)
-  (unrealized (4 0) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w x y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x x)))
-  (deflistener (cat (exp (gen) x) (mul w y)))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))
-    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x x))))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x x)) (gen)) (a b)
-    ((exp (gen) (mul w x y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 8 0 init 2) (exp (gen) x-0) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w x y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x x y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x x))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x x y)))))))
-    ((recv (cat (exp (gen) x) (mul w y)))
-      (send (cat (exp (gen) x) (mul w y)))))
-  (label 63)
-  (parent 46)
-  (unrealized (0 2) (4 0) (6 1) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w x-0 y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w x-0)))
-  (deflistener (cat (exp (gen) x-0) (mul w y)))
-  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (x x-0))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2))
-    ((8 1) (6 1)))
-  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))
-    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w x-0))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w x-0)) (gen)) (a b)
-    ((exp (gen) (mul w x-0 y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa ltxb x x-0 y)
-  (uniq-orig na nb na-0)
-  (operation nonce-test (added-strand init 2) (exp (gen) x-0) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w x-0 y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w x-0 y)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w x-0))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w x-0 y)))))))
-    ((recv (cat (exp (gen) x-0) (mul w y)))
-      (send (cat (exp (gen) x-0) (mul w y))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))))
-  (label 64)
-  (parent 46)
-  (unrealized (0 2) (4 0) (6 1) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w)))
-  (deflistener (cat (exp (gen) y) w))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 8 6 resp 3) (exp (gen) y-0) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
-  (label 65)
-  (parent 46)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)
-    (y y-0 rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x-0) (y (mul w y y-0)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y-0) (x (mul x-0 w y)))
-  (deflistener (cat (exp (gen) y) (mul w y-0)))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (y y) (x x))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2))
-    ((8 2) (6 1)))
-  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))
-    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))
-    (y-0 (exp (gen) (mul x-0 w y))) (x-0 (exp (gen) ltxa))
-    (x-0 (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul x-0 w y)) (gen)) (a b)
-    ((exp (gen) (mul w y y-0)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa ltxb x-0 y y-0)
-  (uniq-orig na nb nb-0)
-  (operation nonce-test (added-strand resp 3) (exp (gen) y) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x-0)))
-      (recv
-        (cat (exp (gen) (mul w y y-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x-0 w y y-0)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb))
-          (exp (gen) (mul x-0 w y y-0)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb))
-          (exp (gen) (mul x-0 w y y-0)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x-0 w y))))
-      (send
-        (cat (exp (gen) y-0)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x-0 w y y-0)))))))
-    ((recv (cat (exp (gen) y) (mul w y-0)))
-      (send (cat (exp (gen) y) (mul w y-0))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (recv (cat na-0 a-0 b-0 (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na-0 nb-0 a-0 b-0
-            (hash (exp (gen) (mul ltxa-0 ltxb-0))
-              (exp (gen) (mul x y))))))))
-  (label 66)
-  (parent 46)
-  (unrealized (0 2) (4 0) (6 1) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y (mul w l y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))
-  (deflistener (cat (exp (gen) ltxb) l))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 8 2 ltx-gen 1) (exp (gen) l-0) (7 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))
-      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y)))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))
-      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y)))))
-    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))))
-  (label 67)
-  (parent 46)
-  (unrealized (0 2) (4 0) (6 1) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y (mul w l y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))
-  (deflistener (cat (exp (gen) l) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 8 3 ltx-gen 1) (exp (gen) l-0) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))
-      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))
-      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y)))))
-    ((recv (cat (exp (gen) l) ltxa)) (send (cat (exp (gen) l) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))))
-  (label 68)
-  (parent 46)
-  (unrealized (0 2) (4 0) (6 1) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)
-    (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w l y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2))
-    ((8 0) (6 1)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))
-    ("principal-of" (l self) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w l y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y))))
-    ((send (cat self (exp (gen) l)))))
-  (label 69)
-  (parent 46)
-  (unrealized (0 2) (4 0) (6 1) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxb x rndx) (y expt) (l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxb) l))
-  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxb) l))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (8 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (8 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (0 2)) ((7 1) (6 0))
-    ((8 1) (7 0)))
-  (absent (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) ltxb) l))
-    (exp (gen) (mul ltxb l)) (7 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
-    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l))))
-  (label 70)
-  (parent 47)
-  (unrealized (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxb x rndx) (y expt) (l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxb) l))
-  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) l) ltxb))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (8 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (8 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (0 2)) ((7 1) (6 0))
-    ((8 1) (7 0)))
-  (absent (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) l) ltxb))
-    (exp (gen) (mul ltxb l)) (7 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
-    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) l) ltxb)) (send (cat (exp (gen) l) ltxb))))
-  (label 71)
-  (parent 47)
-  (unrealized (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w)))
-  (deflistener (cat (gen) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (8 0)) ((7 1) (0 2))
-    ((8 1) (7 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (precur (7 0))
-  (operation nonce-test (added-listener y) (mul w y) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))))
-    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))
-    ((recv y) (send y)))
-  (label 72)
-  (parent 50)
-  (unrealized (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w x y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x x)))
-  (deflistener (cat (exp (gen) x) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (8 0)) ((7 1) (0 2))
-    ((8 1) (7 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))
-    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x x))))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x x)) (gen)) (a b)
-    ((exp (gen) (mul w x y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w x y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x x y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x x))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x x y)))))))
-    ((recv (cat (exp (gen) x) (mul w y)))
-      (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))
-  (label 73)
-  (parent 51)
-  (unrealized (4 0) (6 1) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w x-0 y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w x-0)))
-  (deflistener (cat (exp (gen) x-0) (mul w y)))
-  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (x x-0))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (9 0)) ((7 1) (0 2))
-    ((8 1) (6 1)) ((9 1) (7 0)))
-  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))
-    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w x-0))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w x-0)) (gen)) (a b)
-    ((exp (gen) (mul w x-0 y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa ltxb x x-0 y)
-  (uniq-orig na nb na-0)
-  (operation nonce-test (added-listener y) (mul w y) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w x-0 y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w x-0 y)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w x-0))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w x-0 y)))))))
-    ((recv (cat (exp (gen) x-0) (mul w y)))
-      (send (cat (exp (gen) x-0) (mul w y))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))) ((recv y) (send y)))
-  (label 74)
-  (parent 52)
-  (unrealized (4 0) (6 1) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx)
-    (w-0 expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w)))
-  (deflistener (cat (exp (gen) y) w))
-  (deflistener (cat (exp (gen) (mul x w y (rec w-0))) w-0))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x w y (rec w-0))) w-0))
-    (exp (gen) (mul x w y)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
-    ((recv (cat (exp (gen) (mul x w y (rec w-0))) w-0))
-      (send (cat (exp (gen) (mul x w y (rec w-0))) w-0))))
-  (label 75)
-  (parent 53)
-  (unrealized (8 0))
-  (comment "8 in cohort - 8 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)
-    (y y-0 rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x-0) (y (mul w y y-0)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y-0) (x (mul x-0 w y)))
-  (deflistener (cat (exp (gen) y) (mul w y-0)))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (y y) (x x))
-  (deflistener y-0)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (9 0)) ((7 1) (0 2))
-    ((8 2) (6 1)) ((9 1) (7 0)))
-  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))
-    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))
-    (y-0 (exp (gen) (mul x-0 w y))) (x-0 (exp (gen) ltxa))
-    (x-0 (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul x-0 w y)) (gen)) (a b)
-    ((exp (gen) (mul w y y-0)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa ltxb x-0 y y-0)
-  (uniq-orig na nb nb-0)
-  (operation nonce-test (added-listener y-0) (mul w y-0) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x-0)))
-      (recv
-        (cat (exp (gen) (mul w y y-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x-0 w y y-0)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb))
-          (exp (gen) (mul x-0 w y y-0)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb))
-          (exp (gen) (mul x-0 w y y-0)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x-0 w y))))
-      (send
-        (cat (exp (gen) y-0)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x-0 w y y-0)))))))
-    ((recv (cat (exp (gen) y) (mul w y-0)))
-      (send (cat (exp (gen) y) (mul w y-0))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (recv (cat na-0 a-0 b-0 (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na-0 nb-0 a-0 b-0
-            (hash (exp (gen) (mul ltxa-0 ltxb-0))
-              (exp (gen) (mul x y))))))) ((recv y-0) (send y-0)))
-  (label 76)
-  (parent 54)
-  (unrealized (4 0) (6 1) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y (mul w l y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))
-  (deflistener (cat (exp (gen) l) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (8 0)) ((7 1) (0 2))
-    ((8 1) (7 0)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (7 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))
-      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y)))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))
-      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y)))))
-    ((recv (cat (exp (gen) l) ltxb)) (send (cat (exp (gen) l) ltxb)))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))
-  (label 77)
-  (parent 55)
-  (unrealized (4 0) (6 1) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y (mul w l y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))
-  (deflistener (cat (exp (gen) ltxa) l))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (8 0)) ((7 1) (0 2))
-    ((8 1) (7 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))
-      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))
-      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y)))))
-    ((recv (cat (exp (gen) ltxa) l)) (send (cat (exp (gen) ltxa) l)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))
-  (label 78)
-  (parent 56)
-  (unrealized (6 1) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)
-    (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w l y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (9 0)) ((7 1) (0 2))
-    ((8 0) (6 1)) ((9 1) (7 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))
-    ("principal-of" (l self) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w l y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y))))
-    ((send (cat self (exp (gen) l)))) ((recv y) (send y)))
-  (label 79)
-  (parent 57)
-  (unrealized (4 0) (6 1) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w)))
-  (deflistener (cat (gen) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (8 0)) ((7 1) (0 2))
-    ((8 1) (7 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (precur (7 0))
-  (operation nonce-test (added-listener y) (mul w y) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))))
-    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))
-    ((recv y) (send y)))
-  (label 80)
-  (parent 62)
-  (unrealized (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w x y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x x)))
-  (deflistener (cat (exp (gen) x) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (8 0)) ((7 1) (0 2))
-    ((8 1) (7 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))
-    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x x))))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x x)) (gen)) (a b)
-    ((exp (gen) (mul w x y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w x y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x x y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x x y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x x))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x x y)))))))
-    ((recv (cat (exp (gen) x) (mul w y)))
-      (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))
-  (label 81)
-  (parent 63)
-  (unrealized (4 0) (6 1) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w x-0 y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w x-0)))
-  (deflistener (cat (exp (gen) x-0) (mul w y)))
-  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (x x-0))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (9 0)) ((7 1) (0 2))
-    ((8 1) (6 1)) ((9 1) (7 0)))
-  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))
-    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w x-0))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w x-0)) (gen)) (a b)
-    ((exp (gen) (mul w x-0 y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa ltxb x x-0 y)
-  (uniq-orig na nb na-0)
-  (operation nonce-test (added-listener y) (mul w y) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w x-0 y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w x-0 y)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w x-0 y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w x-0))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w x-0 y)))))))
-    ((recv (cat (exp (gen) x-0) (mul w y)))
-      (send (cat (exp (gen) x-0) (mul w y))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))) ((recv y) (send y)))
-  (label 82)
-  (parent 64)
-  (unrealized (4 0) (6 1) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx)
-    (w-0 expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w)))
-  (deflistener (cat (exp (gen) y) w))
-  (deflistener (cat (exp (gen) (mul x w y (rec w-0))) w-0))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x w y (rec w-0))) w-0))
-    (exp (gen) (mul x w y)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
-    ((recv (cat (exp (gen) (mul x w y (rec w-0))) w-0))
-      (send (cat (exp (gen) (mul x w y (rec w-0))) w-0))))
-  (label 83)
-  (parent 65)
-  (unrealized (8 0))
-  (comment "8 in cohort - 8 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)
-    (y y-0 rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x-0) (y (mul w y y-0)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y-0) (x (mul x-0 w y)))
-  (deflistener (cat (exp (gen) y) (mul w y-0)))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (y y) (x x))
-  (deflistener y-0)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (9 0)) ((7 1) (0 2))
-    ((8 2) (6 1)) ((9 1) (7 0)))
-  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))
-    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))
-    (y-0 (exp (gen) (mul x-0 w y))) (x-0 (exp (gen) ltxa))
-    (x-0 (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul x-0 w y)) (gen)) (a b)
-    ((exp (gen) (mul w y y-0)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa ltxb x-0 y y-0)
-  (uniq-orig na nb nb-0)
-  (operation nonce-test (added-listener y-0) (mul w y-0) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x-0)))
-      (recv
-        (cat (exp (gen) (mul w y y-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x-0 w y y-0)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb))
-          (exp (gen) (mul x-0 w y y-0)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x-0 w y y-0))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb))
-          (exp (gen) (mul x-0 w y y-0)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x-0 w y))))
-      (send
-        (cat (exp (gen) y-0)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x-0 w y y-0)))))))
-    ((recv (cat (exp (gen) y) (mul w y-0)))
-      (send (cat (exp (gen) y) (mul w y-0))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (recv (cat na-0 a-0 b-0 (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na-0 nb-0 a-0 b-0
-            (hash (exp (gen) (mul ltxa-0 ltxb-0))
-              (exp (gen) (mul x y))))))) ((recv y-0) (send y-0)))
-  (label 84)
-  (parent 66)
-  (unrealized (4 0) (6 1) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y (mul w l y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))
-  (deflistener (cat (exp (gen) ltxb) l))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (8 0)) ((7 1) (0 2))
-    ((8 1) (7 0)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (7 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))
-      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y)))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))
-      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y)))))
-    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))
-  (label 85)
-  (parent 67)
-  (unrealized (6 1) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y (mul w l y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))
-  (deflistener (cat (exp (gen) l) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (8 0)) ((7 1) (0 2))
-    ((8 1) (7 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))
-      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))
-      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y)))))
-    ((recv (cat (exp (gen) l) ltxa)) (send (cat (exp (gen) l) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))
-  (label 86)
-  (parent 68)
-  (unrealized (4 0) (6 1) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)
-    (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w l y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (9 0)) ((7 1) (0 2))
-    ((8 0) (6 1)) ((9 1) (7 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))
-    ("principal-of" (l self) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (precur (7 0))
-  (uniq-gen ltxa ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w l y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x w l y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y))))
-    ((send (cat self (exp (gen) l)))) ((recv y) (send y)))
-  (label 87)
-  (parent 69)
-  (unrealized (4 0) (6 1) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w y)))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x w))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w)))
-  (deflistener (cat (gen) (mul w y)))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) w) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test
-    (contracted (x-0 x) (w-0 (mul (rec x) w)) (y-0 y) (w-1 (mul w y))
-      (y-1 y) (w (mul w y))) (gen) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) w)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w)))
-      (send (cat (exp (gen) y) (mul (rec x) w))))
-    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))
-  (label 88)
-  (parent 75)
-  (unrealized (0 2) (7 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x)))
-  (deflistener (cat (exp (gen) y) w))
-  (deflistener (cat (exp (gen) x) (mul w y)))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))
-    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x))))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 9 0 init 2) (exp (gen) x-0) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x y)))))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
-    ((recv (cat (exp (gen) x) (mul w y)))
-      (send (cat (exp (gen) x) (mul w y)))))
-  (label 89)
-  (parent 75)
-  (unrealized (4 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w x-0 y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x-0)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w x-0)))
-  (deflistener (cat (exp (gen) x-0) (mul w y)))
-  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (x x-0))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (6 1)))
-  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))
-    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w x-0))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x-0)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w x-0 y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x x-0 y)
-  (uniq-orig na nb na-0)
-  (operation nonce-test (added-strand init 2) (exp (gen) x-0) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w x-0 y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x-0 y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x-0))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x-0 y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w x-0)))
-      (send (cat (exp (gen) y) (mul (rec x) w x-0))))
-    ((recv (cat (exp (gen) x-0) (mul w y)))
-      (send (cat (exp (gen) x-0) (mul w y))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))))
-  (label 90)
-  (parent 75)
-  (unrealized (0 2) (4 0) (7 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (x ltxa ltxb rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w y)))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x w))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w)))
-  (deflistener (cat (exp (gen) y) w))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) w) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen x ltxa ltxb y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 9 6 resp 3) (exp (gen) y-0) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) w)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w)))
-      (send (cat (exp (gen) y) (mul (rec x) w))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
-  (label 91)
-  (parent 75)
-  (unrealized (0 2) (7 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)
-    (y y-0 rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x-0) (y (mul (rec x-0) w y y-0)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y-0) (x (mul w y)))
-  (deflistener (cat (exp (gen) y-0) (mul (rec x-0) w y)))
-  (deflistener (cat (exp (gen) y) (mul w y-0)))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (y y) (x x))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 2) (6 1)))
-  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))
-    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))
-    (y-0 (exp (gen) (mul w y))) (x-0 (exp (gen) ltxa))
-    (x-0 (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul w y)) (gen)) (a b)
-    ((exp (gen) (mul (rec x-0) w y y-0)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x-0 y y-0)
-  (uniq-orig na nb nb-0)
-  (operation nonce-test (added-strand resp 3) (exp (gen) y) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x-0)))
-      (recv
-        (cat (exp (gen) (mul (rec x-0) w y y-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y y-0)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w y))))
-      (send
-        (cat (exp (gen) y-0)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y y-0)))))))
-    ((recv (cat (exp (gen) y-0) (mul (rec x-0) w y)))
-      (send (cat (exp (gen) y-0) (mul (rec x-0) w y))))
-    ((recv (cat (exp (gen) y) (mul w y-0)))
-      (send (cat (exp (gen) y) (mul w y-0))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (recv (cat na-0 a-0 b-0 (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na-0 nb-0 a-0 b-0
-            (hash (exp (gen) (mul ltxa-0 ltxb-0))
-              (exp (gen) (mul x y))))))))
-  (label 92)
-  (parent 75)
-  (unrealized (0 2) (4 0) (7 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y (mul (rec x) w l y)))
-  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))
-  (deflistener (cat (exp (gen) l) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x (mul w l)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) (mul w l)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w l y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 9 2 ltx-gen 1) (exp (gen) l-0) (8 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))
-      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))
-      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))
-    ((recv (cat (exp (gen) l) ltxb)) (send (cat (exp (gen) l) ltxb)))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w l)))
-      (send (cat (exp (gen) y) (mul (rec x) w l))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))))
-  (label 93)
-  (parent 75)
-  (unrealized (0 2) (4 0) (7 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y (mul (rec x) w l y)))
-  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))
-  (deflistener (cat (exp (gen) ltxa) l))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (y y) (x (mul w l)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))
-    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq ((exp (gen) (mul w l)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w l y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 9 3 ltx-gen 1) (exp (gen) l-0) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))
-      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))
-      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))
-    ((recv (cat (exp (gen) ltxa) l)) (send (cat (exp (gen) ltxa) l)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (recv (cat na a b (exp (gen) (mul w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w l)))
-      (send (cat (exp (gen) y) (mul (rec x) w l))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))))
-  (label 94)
-  (parent 75)
-  (unrealized (0 2) (7 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)
-    (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w l y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w l)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 0) (6 1)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))
-    ("principal-of" (l self) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w l)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w l y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w l y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w l y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w l)))
-      (send (cat (exp (gen) y) (mul (rec x) w l))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y))))
-    ((send (cat self (exp (gen) l)))))
-  (label 95)
-  (parent 75)
-  (unrealized (0 2) (4 0) (7 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w y)))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x w))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w)))
-  (deflistener (cat (gen) (mul w y)))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) w) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test
-    (contracted (x-0 x) (w-0 (mul (rec x) w)) (y-0 y) (w-1 (mul w y))
-      (y-1 y) (w (mul w y))) (gen) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) w)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w)))
-      (send (cat (exp (gen) y) (mul (rec x) w))))
-    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))
-  (label 96)
-  (parent 83)
-  (unrealized (0 2) (7 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x)))
-  (deflistener (cat (exp (gen) y) w))
-  (deflistener (cat (exp (gen) x) (mul w y)))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))
-    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x))))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 9 0 init 2) (exp (gen) x-0) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x y)))))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
-    ((recv (cat (exp (gen) x) (mul w y)))
-      (send (cat (exp (gen) x) (mul w y)))))
-  (label 97)
-  (parent 83)
-  (unrealized (4 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w x-0 y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x-0)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w x-0)))
-  (deflistener (cat (exp (gen) x-0) (mul w y)))
-  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (x x-0))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (6 1)))
-  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))
-    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w x-0))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x-0)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w x-0 y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x x-0 y)
-  (uniq-orig na nb na-0)
-  (operation nonce-test (added-strand init 2) (exp (gen) x-0) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w x-0 y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x-0 y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x-0))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x-0 y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w x-0)))
-      (send (cat (exp (gen) y) (mul (rec x) w x-0))))
-    ((recv (cat (exp (gen) x-0) (mul w y)))
-      (send (cat (exp (gen) x-0) (mul w y))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))))
-  (label 98)
-  (parent 83)
-  (unrealized (0 2) (4 0) (7 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (x ltxa ltxb rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w y)))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x w))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w)))
-  (deflistener (cat (exp (gen) y) w))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) w) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen x ltxa ltxb y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 9 6 resp 3) (exp (gen) y-0) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) w)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w)))
-      (send (cat (exp (gen) y) (mul (rec x) w))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
-  (label 99)
-  (parent 83)
-  (unrealized (0 2) (7 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)
-    (y y-0 rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x-0) (y (mul (rec x-0) w y y-0)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y-0) (x (mul w y)))
-  (deflistener (cat (exp (gen) y-0) (mul (rec x-0) w y)))
-  (deflistener (cat (exp (gen) y) (mul w y-0)))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (y y) (x x))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 2) (6 1)))
-  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))
-    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))
-    (y-0 (exp (gen) (mul w y))) (x-0 (exp (gen) ltxa))
-    (x-0 (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul w y)) (gen)) (a b)
-    ((exp (gen) (mul (rec x-0) w y y-0)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x-0 y y-0)
-  (uniq-orig na nb nb-0)
-  (operation nonce-test (added-strand resp 3) (exp (gen) y) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x-0)))
-      (recv
-        (cat (exp (gen) (mul (rec x-0) w y y-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y y-0)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w y))))
-      (send
-        (cat (exp (gen) y-0)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y y-0)))))))
-    ((recv (cat (exp (gen) y-0) (mul (rec x-0) w y)))
-      (send (cat (exp (gen) y-0) (mul (rec x-0) w y))))
-    ((recv (cat (exp (gen) y) (mul w y-0)))
-      (send (cat (exp (gen) y) (mul w y-0))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (recv (cat na-0 a-0 b-0 (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na-0 nb-0 a-0 b-0
-            (hash (exp (gen) (mul ltxa-0 ltxb-0))
-              (exp (gen) (mul x y))))))))
-  (label 100)
-  (parent 83)
-  (unrealized (0 2) (4 0) (7 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y (mul (rec x) w l y)))
-  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))
-  (deflistener (cat (exp (gen) ltxb) l))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x (mul w l)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) (mul w l)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w l y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 9 2 ltx-gen 1) (exp (gen) l-0) (8 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))
-      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))
-      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))
-    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w l)))
-      (send (cat (exp (gen) y) (mul (rec x) w l))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))))
-  (label 101)
-  (parent 83)
-  (unrealized (0 2) (7 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y (mul (rec x) w l y)))
-  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))
-  (deflistener (cat (exp (gen) l) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (y y) (x (mul w l)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))
-    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq ((exp (gen) (mul w l)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w l y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 9 3 ltx-gen 1) (exp (gen) l-0) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))
-      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))
-      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))
-    ((recv (cat (exp (gen) l) ltxa)) (send (cat (exp (gen) l) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (recv (cat na a b (exp (gen) (mul w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w l)))
-      (send (cat (exp (gen) y) (mul (rec x) w l))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))))
-  (label 102)
-  (parent 83)
-  (unrealized (0 2) (4 0) (7 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)
-    (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w l y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w l)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 0) (6 1)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))
-    ("principal-of" (l self) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w l)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w l y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w l y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w l y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w l)))
-      (send (cat (exp (gen) y) (mul (rec x) w l))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y))))
-    ((send (cat self (exp (gen) l)))))
-  (label 103)
-  (parent 83)
-  (unrealized (0 2) (4 0) (7 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w y)))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x w))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w)))
-  (deflistener (cat (gen) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (9 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (8 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) w) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) w)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w)))
-      (send (cat (exp (gen) y) (mul (rec x) w))))
-    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))
-    ((recv y) (send y)))
-  (label 104)
-  (parent 88)
-  (unrealized (0 2) (7 0) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x)))
-  (deflistener (cat (exp (gen) y) w))
-  (deflistener (cat (exp (gen) x) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (9 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (8 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))
-    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x))))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x y)))))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
-    ((recv (cat (exp (gen) x) (mul w y)))
-      (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))
-  (label 105)
-  (parent 89)
-  (unrealized (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w x-0 y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x-0)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w x-0)))
-  (deflistener (cat (exp (gen) x-0) (mul w y)))
-  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (x x-0))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (10 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (6 1)) ((10 1) (8 0)))
-  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))
-    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w x-0))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x-0)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w x-0 y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x x-0 y)
-  (uniq-orig na nb na-0)
-  (operation nonce-test (added-listener y) (mul w y) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w x-0 y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x-0 y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x-0))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x-0 y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w x-0)))
-      (send (cat (exp (gen) y) (mul (rec x) w x-0))))
-    ((recv (cat (exp (gen) x-0) (mul w y)))
-      (send (cat (exp (gen) x-0) (mul w y))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))) ((recv y) (send y)))
-  (label 106)
-  (parent 90)
-  (unrealized (0 2) (7 0) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb y x rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat (exp (gen) y) (one)))
-  (deflistener (cat (exp (gen) y) x))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb y x)
-  (uniq-orig na nb)
-  (operation nonce-test (contracted (x-0 x) (w x)) (one) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x)))))))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
-  (label 107)
-  (parent 91)
-  (unrealized (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self name) (ltxa ltxb y x l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul y l)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x l)))
-  (deflistener (cat (exp (gen) y) l))
-  (deflistener (cat (exp (gen) y) (mul x l)))
-  (defstrand ltx-gen 3 (self self) (l l))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 0) (6 1)) ((9 2) (7 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x l))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))
-    ("principal-of" (l self) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x l)) (gen)) (a b)
-    ((exp (gen) (mul y l)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb y x l)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand ltx-gen 3) l (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul y l))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x l)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x l)))))))
-    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l)))
-    ((recv (cat (exp (gen) y) (mul x l)))
-      (send (cat (exp (gen) y) (mul x l))))
-    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l)))
-  (label 108)
-  (parent 91)
-  (unrealized (4 0) (6 1) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb rndx) (w expt) (y x rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x)))
-  (deflistener (cat (exp (gen) y) w))
-  (deflistener (cat (exp (gen) y) (mul w x)))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)))
-  (absent (x w) (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w x))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb y x)
-  (uniq-orig na nb)
-  (operation nonce-test (added-absence x w) w (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y x)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y x)))))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
-    ((recv (cat (exp (gen) y) (mul w x)))
-      (send (cat (exp (gen) y) (mul w x)))))
-  (label 109)
-  (parent 91)
-  (unrealized (4 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (x ltxa ltxb rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w y)))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x w))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w)))
-  (deflistener (cat (exp (gen) y) w))
-  (deflistener x)
-  (precedes ((0 1) (6 1)) ((0 1) (9 0)) ((0 3) (2 1)) ((0 3) (3 1))
-    ((2 0) (0 0)) ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0))
-    ((6 2) (8 0)) ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (7 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) w) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen x ltxa ltxb y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener x) (mul (rec x) w) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) w)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w)))
-      (send (cat (exp (gen) y) (mul (rec x) w))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
-    ((recv x) (send x)))
-  (label 110)
-  (parent 91)
-  (unrealized (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)
-    (y y-0 rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x-0) (y (mul (rec x-0) w y y-0)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y-0) (x (mul w y)))
-  (deflistener (cat (exp (gen) y-0) (mul (rec x-0) w y)))
-  (deflistener (cat (exp (gen) y) (mul w y-0)))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (y y) (x x))
-  (deflistener y-0)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (10 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 2) (6 1)) ((10 1) (8 0)))
-  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))
-    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))
-    (y-0 (exp (gen) (mul w y))) (x-0 (exp (gen) ltxa))
-    (x-0 (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul w y)) (gen)) (a b)
-    ((exp (gen) (mul (rec x-0) w y y-0)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x-0 y y-0)
-  (uniq-orig na nb nb-0)
-  (operation nonce-test (added-listener y-0) (mul w y-0) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x-0)))
-      (recv
-        (cat (exp (gen) (mul (rec x-0) w y y-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y y-0)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w y))))
-      (send
-        (cat (exp (gen) y-0)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y y-0)))))))
-    ((recv (cat (exp (gen) y-0) (mul (rec x-0) w y)))
-      (send (cat (exp (gen) y-0) (mul (rec x-0) w y))))
-    ((recv (cat (exp (gen) y) (mul w y-0)))
-      (send (cat (exp (gen) y) (mul w y-0))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (recv (cat na-0 a-0 b-0 (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na-0 nb-0 a-0 b-0
-            (hash (exp (gen) (mul ltxa-0 ltxb-0))
-              (exp (gen) (mul x y))))))) ((recv y-0) (send y-0)))
-  (label 111)
-  (parent 92)
-  (unrealized (0 2) (7 0) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y (mul (rec x) w l y)))
-  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))
-  (deflistener (cat (exp (gen) l) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x (mul w l)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (9 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (8 0)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) (mul w l)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w l y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (8 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))
-      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))
-      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))
-    ((recv (cat (exp (gen) l) ltxb)) (send (cat (exp (gen) l) ltxb)))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w l)))
-      (send (cat (exp (gen) y) (mul (rec x) w l))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))
-  (label 112)
-  (parent 93)
-  (unrealized (0 2) (7 0) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y (mul (rec x) w l y)))
-  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))
-  (deflistener (cat (exp (gen) ltxa) l))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (y y) (x (mul w l)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (9 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (8 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))
-    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq ((exp (gen) (mul w l)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w l y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))
-      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))
-      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))
-    ((recv (cat (exp (gen) ltxa) l)) (send (cat (exp (gen) ltxa) l)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (recv (cat na a b (exp (gen) (mul w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w l)))
-      (send (cat (exp (gen) y) (mul (rec x) w l))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))
-  (label 113)
-  (parent 94)
-  (unrealized (0 2) (7 0) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)
-    (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w l y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w l)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (10 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 0) (6 1)) ((10 1) (8 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))
-    ("principal-of" (l self) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w l)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w l y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w l y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w l y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w l)))
-      (send (cat (exp (gen) y) (mul (rec x) w l))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y))))
-    ((send (cat self (exp (gen) l)))) ((recv y) (send y)))
-  (label 114)
-  (parent 95)
-  (unrealized (0 2) (7 0) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w y)))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x w))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w)))
-  (deflistener (cat (gen) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (9 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (8 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) w) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) w)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w)))
-      (send (cat (exp (gen) y) (mul (rec x) w))))
-    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))
-    ((recv y) (send y)))
-  (label 115)
-  (parent 96)
-  (unrealized (0 2) (7 0) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x)))
-  (deflistener (cat (exp (gen) y) w))
-  (deflistener (cat (exp (gen) x) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (9 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (8 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))
-    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x))))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x y)))))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
-    ((recv (cat (exp (gen) x) (mul w y)))
-      (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))
-  (label 116)
-  (parent 97)
-  (unrealized (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w x-0 y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x-0)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w x-0)))
-  (deflistener (cat (exp (gen) x-0) (mul w y)))
-  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (x x-0))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (10 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (6 1)) ((10 1) (8 0)))
-  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))
-    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w x-0))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x-0)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w x-0 y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x x-0 y)
-  (uniq-orig na nb na-0)
-  (operation nonce-test (added-listener y) (mul w y) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w x-0 y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x-0 y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w x-0 y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x-0))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x-0 y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w x-0)))
-      (send (cat (exp (gen) y) (mul (rec x) w x-0))))
-    ((recv (cat (exp (gen) x-0) (mul w y)))
-      (send (cat (exp (gen) x-0) (mul w y))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))) ((recv y) (send y)))
-  (label 117)
-  (parent 98)
-  (unrealized (0 2) (7 0) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb y x rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat (exp (gen) y) (one)))
-  (deflistener (cat (exp (gen) y) x))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb y x)
-  (uniq-orig na nb)
-  (operation nonce-test (contracted (x-0 x) (w x)) (one) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x)))))))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
-  (label 118)
-  (parent 99)
-  (unrealized (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self name) (ltxa ltxb y x l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul y l)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x l)))
-  (deflistener (cat (exp (gen) y) l))
-  (deflistener (cat (exp (gen) y) (mul x l)))
-  (defstrand ltx-gen 3 (self self) (l l))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 0) (6 1)) ((9 2) (7 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x l))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))
-    ("principal-of" (l self) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x l)) (gen)) (a b)
-    ((exp (gen) (mul y l)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb y x l)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand ltx-gen 3) l (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul y l))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x l)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x l)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x l)))))))
-    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l)))
-    ((recv (cat (exp (gen) y) (mul x l)))
-      (send (cat (exp (gen) y) (mul x l))))
-    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l)))
-  (label 119)
-  (parent 99)
-  (unrealized (4 0) (6 1) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb rndx) (w expt) (y x rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x)))
-  (deflistener (cat (exp (gen) y) w))
-  (deflistener (cat (exp (gen) y) (mul w x)))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (8 0))
-    ((7 1) (0 2)) ((8 1) (4 0)))
-  (absent (x w) (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w x))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb y x)
-  (uniq-orig na nb)
-  (operation nonce-test (added-absence x w) w (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y x)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y x)))))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
-    ((recv (cat (exp (gen) y) (mul w x)))
-      (send (cat (exp (gen) y) (mul w x)))))
-  (label 120)
-  (parent 99)
-  (unrealized (4 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (x ltxa ltxb rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w y)))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x w))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w)))
-  (deflistener (cat (exp (gen) y) w))
-  (deflistener x)
-  (precedes ((0 1) (6 1)) ((0 1) (9 0)) ((0 3) (2 1)) ((0 3) (3 1))
-    ((2 0) (0 0)) ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0))
-    ((3 0) (6 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0))
-    ((6 2) (8 0)) ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (7 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) w) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen x ltxa ltxb y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener x) (mul (rec x) w) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) w)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w)))
-      (send (cat (exp (gen) y) (mul (rec x) w))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
-    ((recv x) (send x)))
-  (label 121)
-  (parent 99)
-  (unrealized (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)
-    (y y-0 rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x-0) (y (mul (rec x-0) w y y-0)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y-0) (x (mul w y)))
-  (deflistener (cat (exp (gen) y-0) (mul (rec x-0) w y)))
-  (deflistener (cat (exp (gen) y) (mul w y-0)))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (y y) (x x))
-  (deflistener y-0)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (10 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 2) (6 1)) ((10 1) (8 0)))
-  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))
-    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))
-    (y-0 (exp (gen) (mul w y))) (x-0 (exp (gen) ltxa))
-    (x-0 (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul w y)) (gen)) (a b)
-    ((exp (gen) (mul (rec x-0) w y y-0)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x-0 y y-0)
-  (uniq-orig na nb nb-0)
-  (operation nonce-test (added-listener y-0) (mul w y-0) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x-0)))
-      (recv
-        (cat (exp (gen) (mul (rec x-0) w y y-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y y-0)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))
-      (send
-        (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0))))
-      (send
-        (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y y-0)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w y))))
-      (send
-        (cat (exp (gen) y-0)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y y-0)))))))
-    ((recv (cat (exp (gen) y-0) (mul (rec x-0) w y)))
-      (send (cat (exp (gen) y-0) (mul (rec x-0) w y))))
-    ((recv (cat (exp (gen) y) (mul w y-0)))
-      (send (cat (exp (gen) y) (mul w y-0))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (recv (cat na-0 a-0 b-0 (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na-0 nb-0 a-0 b-0
-            (hash (exp (gen) (mul ltxa-0 ltxb-0))
-              (exp (gen) (mul x y))))))) ((recv y-0) (send y-0)))
-  (label 122)
-  (parent 100)
-  (unrealized (0 2) (7 0) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y (mul (rec x) w l y)))
-  (deflistener (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))
-  (deflistener (cat (exp (gen) ltxb) l))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x (mul w l)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (9 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (8 0)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) (mul w l)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w l y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (8 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))
-      (send (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))
-      (send (cat (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))
-    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w l)))
-      (send (cat (exp (gen) y) (mul (rec x) w l))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))
-  (label 123)
-  (parent 101)
-  (unrealized (0 2) (7 0) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y (mul (rec x) w l y)))
-  (deflistener (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))
-  (deflistener (cat (exp (gen) l) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (y y) (x (mul w l)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (9 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (8 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))
-    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq ((exp (gen) (mul w l)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w l y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))
-      (send (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))
-      (send (cat (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))
-    ((recv (cat (exp (gen) l) ltxa)) (send (cat (exp (gen) l) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (recv (cat na a b (exp (gen) (mul w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w l)))
-      (send (cat (exp (gen) y) (mul (rec x) w l))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))
-  (label 124)
-  (parent 102)
-  (unrealized (0 2) (7 0) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)
-    (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w l y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w l)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener y)
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0)) ((6 2) (10 0))
-    ((7 1) (0 2)) ((8 1) (4 0)) ((9 0) (6 1)) ((10 1) (8 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))
-    ("principal-of" (l self) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w l)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w l y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w l y)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w l y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w l y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w l)))
-      (send (cat (exp (gen) y) (mul (rec x) w l))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y))))
-    ((send (cat self (exp (gen) l)))) ((recv y) (send y)))
-  (label 125)
-  (parent 103)
-  (unrealized (0 2) (7 0) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb rndx) (w expt) (y x rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x)))
-  (deflistener (cat (exp (gen) y) w))
-  (deflistener (cat (exp (gen) y) (mul w x)))
-  (deflistener x)
-  (precedes ((0 1) (6 1)) ((0 1) (9 0)) ((0 3) (2 1)) ((0 3) (3 1))
-    ((2 0) (0 0)) ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0))
-    ((6 2) (8 0)) ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (8 0)))
-  (absent (x w) (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w x))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb y x)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener x) (mul w x) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y x)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y x)))))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
-    ((recv (cat (exp (gen) y) (mul w x)))
-      (send (cat (exp (gen) y) (mul w x)))) ((recv x) (send x)))
-  (label 126)
-  (parent 109)
-  (unrealized (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb rndx) (w expt) (y x rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x)))
-  (deflistener (cat (exp (gen) y) w))
-  (deflistener (cat (exp (gen) y) (mul w x)))
-  (deflistener x)
-  (precedes ((0 1) (6 1)) ((0 1) (9 0)) ((0 3) (2 1)) ((0 3) (3 1))
-    ((2 0) (0 0)) ((2 0) (6 0)) ((2 2) (5 0)) ((3 0) (0 0))
-    ((3 0) (6 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (7 0))
-    ((6 2) (8 0)) ((7 1) (0 2)) ((8 1) (4 0)) ((9 1) (8 0)))
-  (absent (x w) (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w x))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (precur (8 0) (7 0))
-  (uniq-gen ltxa ltxb y x)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener x) (mul w x) (8 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y x)))))) (send nb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y x)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y x)))))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
-    ((recv (cat (exp (gen) y) (mul w x)))
-      (send (cat (exp (gen) y) (mul w x)))) ((recv x) (send x)))
-  (label 127)
-  (parent 120)
-  (unrealized (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol dhcr-um diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-      (y (exp (gen) x))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (defstrand ltx-gen 3 (self self) (l ltxa))
-  (defstrand ltx-gen 3 (self self-0) (l ltxb))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 128)
-  (unrealized (0 0) (0 2) (1 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 129)
-  (parent 128)
-  (unrealized (0 2))
-  (origs (na (0 1)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x y rndx) (x-0 expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) y x-0)))
-  (deflistener (exp (gen) (mul y x-0)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x-0))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (0 2))
-    ((4 2) (1 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x-0))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x-0) (gen)) (a b)
-    ((exp (gen) (mul (rec x) y x-0)) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x-0)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) y x-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x-0)))))) (send nb))
-    ((recv (exp (gen) (mul y x-0))) (send (exp (gen) (mul y x-0))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x-0)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x-0))))))))
-  (label 130)
-  (parent 129)
-  (unrealized (0 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1))
-    ((2 0) (0 0)) ((3 0) (0 0)) ((4 1) (0 2)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-  (label 131)
-  (parent 129)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (0 2))
-    ((4 2) (1 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 5 4 resp 3) (exp (gen) y-0) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x y))))))))
-  (label 132)
-  (parent 130)
-  (unrealized (1 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x y rndx) (x-0 w expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) y x-0)))
-  (deflistener (exp (gen) (mul y x-0)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x-0))
-  (deflistener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))
-    ((4 2) (5 0)) ((5 1) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x-0))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x-0) (gen)) (a b)
-    ((exp (gen) (mul (rec x) y x-0)) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (precur (5 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))
-    (exp (gen) (mul (rec x) y x-0)) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) y x-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x-0)))))) (send nb))
-    ((recv (exp (gen) (mul y x-0))) (send (exp (gen) (mul y x-0))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x-0)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x-0)))))))
-    ((recv (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))
-      (send (cat (exp (gen) (mul (rec x) y x-0 (rec w))) w))))
-  (label 133)
-  (parent 130)
-  (unrealized (5 0))
-  (comment "8 in cohort - 8 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (precedes ((0 1) (1 0)) ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1))
-    ((2 0) (0 0)) ((3 0) (0 0)) ((4 1) (0 2)) ((5 1) (4 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-    (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-  (label 134)
-  (parent 131)
-  (unrealized (5 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat (exp (gen) x) y))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (0 2))
-    ((4 2) (5 0)) ((5 1) (1 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener (cat (exp (gen) x) y))
-    (exp (gen) (mul x y)) (1 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))))
-    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
-  (label 135)
-  (parent 132)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat (exp (gen) y) x))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (0 2))
-    ((4 2) (5 0)) ((5 1) (1 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener (cat (exp (gen) y) x))
-    (exp (gen) (mul x y)) (1 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))))
-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
-  (label 136)
-  (parent 132)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener (exp (gen) (mul x w y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w)))
-  (deflistener (cat (gen) (mul w y)))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))
-    ((4 2) (5 0)) ((5 1) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (precur (5 0))
-  (operation nonce-test
-    (contracted (x-0 x) (y-0 y) (x-1 (mul x w)) (w-0 (mul w y)) (y-1 y)
-      (w (mul w y))) (gen) (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))) (send nb))
-    ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))))
-    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))
-  (label 137)
-  (parent 133)
-  (unrealized (1 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w x y)))
-  (deflistener (exp (gen) (mul w x x y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x x)))
-  (deflistener (cat (exp (gen) x) (mul w y)))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))
-    ((4 2) (5 0)) ((5 1) (0 2)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))
-    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x x))))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x x)) (gen)) (a b)
-    ((exp (gen) (mul w x y)) (gen)))
-  (precur (5 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 6 0 init 2) (exp (gen) x-0) (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w x y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x x y)))))) (send nb))
-    ((recv (exp (gen) (mul w x x y))) (send (exp (gen) (mul w x x y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x x))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x x y)))))))
-    ((recv (cat (exp (gen) x) (mul w y)))
-      (send (cat (exp (gen) x) (mul w y)))))
-  (label 138)
-  (parent 133)
-  (unrealized (0 2) (1 0) (4 1) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w x-0 y)))
-  (deflistener (exp (gen) (mul x w x-0 y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w x-0)))
-  (deflistener (cat (exp (gen) x-0) (mul w y)))
-  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (x x-0))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))
-    ((4 2) (5 0)) ((5 1) (0 2)) ((6 1) (4 1)))
-  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))
-    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w x-0))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w x-0)) (gen)) (a b)
-    ((exp (gen) (mul w x-0 y)) (gen)))
-  (precur (5 0))
-  (uniq-gen ltxa ltxb x x-0 y)
-  (uniq-orig na nb na-0)
-  (operation nonce-test (added-strand init 2) (exp (gen) x-0) (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w x-0 y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w x-0 y)))))) (send nb))
-    ((recv (exp (gen) (mul x w x-0 y)))
-      (send (exp (gen) (mul x w x-0 y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w x-0))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w x-0 y)))))))
-    ((recv (cat (exp (gen) x-0) (mul w y)))
-      (send (cat (exp (gen) x-0) (mul w y))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))))
-  (label 139)
-  (parent 133)
-  (unrealized (0 2) (1 0) (4 1) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener (exp (gen) (mul x w y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w)))
-  (deflistener (cat (exp (gen) y) w))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))
-    ((4 2) (5 0)) ((5 1) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (precur (5 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 6 4 resp 3) (exp (gen) y-0) (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))) (send nb))
-    ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
-  (label 140)
-  (parent 133)
-  (unrealized (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)
-    (y y-0 rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x-0) (y (mul w y y-0)))
-  (deflistener (exp (gen) (mul x-0 w y y-0)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y-0) (x (mul x-0 w y)))
-  (deflistener (cat (exp (gen) y) (mul w y-0)))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (y y) (x x))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))
-    ((4 2) (5 0)) ((5 1) (0 2)) ((6 2) (4 1)))
-  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))
-    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))
-    (y-0 (exp (gen) (mul x-0 w y))) (x-0 (exp (gen) ltxa))
-    (x-0 (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul x-0 w y)) (gen)) (a b)
-    ((exp (gen) (mul w y y-0)) (gen)))
-  (precur (5 0))
-  (uniq-gen ltxa ltxb x-0 y y-0)
-  (uniq-orig na nb nb-0)
-  (operation nonce-test (added-strand resp 3) (exp (gen) y) (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x-0)))
-      (recv
-        (cat (exp (gen) (mul w y y-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x-0 w y y-0)))))) (send nb))
-    ((recv (exp (gen) (mul x-0 w y y-0)))
-      (send (exp (gen) (mul x-0 w y y-0))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x-0 w y))))
-      (send
-        (cat (exp (gen) y-0)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x-0 w y y-0)))))))
-    ((recv (cat (exp (gen) y) (mul w y-0)))
-      (send (cat (exp (gen) y) (mul w y-0))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (recv (cat na-0 a-0 b-0 (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na-0 nb-0 a-0 b-0
-            (hash (exp (gen) (mul ltxa-0 ltxb-0))
-              (exp (gen) (mul x y))))))))
-  (label 141)
-  (parent 133)
-  (unrealized (0 2) (1 0) (4 1) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y (mul w l y)))
-  (deflistener (exp (gen) (mul x w l y)))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))
-    ((4 2) (5 0)) ((5 1) (0 2)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (precur (5 0))
-  (uniq-gen ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 6 2 ltx-gen 1) (exp (gen) l-0) (5 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))))
-      (send nb))
-    ((recv (exp (gen) (mul x w l y))) (send (exp (gen) (mul x w l y))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))))
-  (label 142)
-  (parent 133)
-  (unrealized (0 2) (1 0) (4 1) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y (mul w l y)))
-  (deflistener (exp (gen) (mul x w l y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))
-    ((4 2) (5 0)) ((5 1) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (precur (5 0))
-  (uniq-gen ltxa x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 6 3 ltx-gen 1) (exp (gen) l-0) (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))))
-      (send nb))
-    ((recv (exp (gen) (mul x w l y))) (send (exp (gen) (mul x w l y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))))
-  (label 143)
-  (parent 133)
-  (unrealized (0 2) (1 0) (4 1) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)
-    (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w l y)))
-  (deflistener (exp (gen) (mul x w l y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))
-    ((4 2) (5 0)) ((5 1) (0 2)) ((6 0) (4 1)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))
-    ("principal-of" (l self) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (precur (5 0))
-  (uniq-gen ltxa ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l) (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w l y)))))) (send nb))
-    ((recv (exp (gen) (mul x w l y))) (send (exp (gen) (mul x w l y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y))))
-    ((send (cat self (exp (gen) l)))))
-  (label 144)
-  (parent 133)
-  (unrealized (0 2) (1 0) (4 1) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxa) ltxb))
-  (precedes ((0 1) (1 0)) ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1))
-    ((2 0) (0 0)) ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (0 2)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) ltxa) ltxb))
-    (exp (gen) (mul ltxa ltxb)) (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxa) ltxb))
-      (send (cat (exp (gen) ltxa) ltxb))))
-  (label 145)
-  (parent 134)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxb) ltxa))
-  (precedes ((0 1) (1 0)) ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1))
-    ((2 0) (0 0)) ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((4 1) (0 2)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) ltxb) ltxa))
-    (exp (gen) (mul ltxa ltxb)) (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))))
-      (send nb))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y))))
-      (send (cat (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxb) ltxa))
-      (send (cat (exp (gen) ltxb) ltxa))))
-  (label 146)
-  (parent 134)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener (exp (gen) (mul x w y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w)))
-  (deflistener (cat (gen) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))
-    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (5 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (precur (5 0))
-  (operation nonce-test (added-listener y) (mul w y) (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))) (send nb))
-    ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))))
-    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))
-    ((recv y) (send y)))
-  (label 147)
-  (parent 137)
-  (unrealized (1 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w x y)))
-  (deflistener (exp (gen) (mul w x x y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x x)))
-  (deflistener (cat (exp (gen) x) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))
-    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (5 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))
-    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x x))))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x x)) (gen)) (a b)
-    ((exp (gen) (mul w x y)) (gen)))
-  (precur (5 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w x y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x x y)))))) (send nb))
-    ((recv (exp (gen) (mul w x x y))) (send (exp (gen) (mul w x x y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x x))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x x y)))))))
-    ((recv (cat (exp (gen) x) (mul w y)))
-      (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))
-  (label 148)
-  (parent 138)
-  (unrealized (1 0) (4 1) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w x-0 y)))
-  (deflistener (exp (gen) (mul x w x-0 y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w x-0)))
-  (deflistener (cat (exp (gen) x-0) (mul w y)))
-  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (x x-0))
-  (deflistener y)
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))
-    ((4 2) (7 0)) ((5 1) (0 2)) ((6 1) (4 1)) ((7 1) (5 0)))
-  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))
-    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w x-0))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w x-0)) (gen)) (a b)
-    ((exp (gen) (mul w x-0 y)) (gen)))
-  (precur (5 0))
-  (uniq-gen ltxa ltxb x x-0 y)
-  (uniq-orig na nb na-0)
-  (operation nonce-test (added-listener y) (mul w y) (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w x-0 y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w x-0 y)))))) (send nb))
-    ((recv (exp (gen) (mul x w x-0 y)))
-      (send (exp (gen) (mul x w x-0 y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w x-0))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w x-0 y)))))))
-    ((recv (cat (exp (gen) x-0) (mul w y)))
-      (send (cat (exp (gen) x-0) (mul w y))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))) ((recv y) (send y)))
-  (label 149)
-  (parent 139)
-  (unrealized (1 0) (4 1) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx)
-    (w-0 expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener (exp (gen) (mul x w y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w)))
-  (deflistener (cat (exp (gen) y) w))
-  (deflistener (cat (exp (gen) (mul x w y (rec w-0))) w-0))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))
-    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x w y (rec w-0))) w-0))
-    (exp (gen) (mul x w y)) (1 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))) (send nb))
-    ((recv (exp (gen) (mul x w y))) (send (exp (gen) (mul x w y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w y)))))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
-    ((recv (cat (exp (gen) (mul x w y (rec w-0))) w-0))
-      (send (cat (exp (gen) (mul x w y (rec w-0))) w-0))))
-  (label 150)
-  (parent 140)
-  (unrealized (6 0))
-  (comment "8 in cohort - 8 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)
-    (y y-0 rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x-0) (y (mul w y y-0)))
-  (deflistener (exp (gen) (mul x-0 w y y-0)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y-0) (x (mul x-0 w y)))
-  (deflistener (cat (exp (gen) y) (mul w y-0)))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (y y) (x x))
-  (deflistener y-0)
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))
-    ((4 2) (7 0)) ((5 1) (0 2)) ((6 2) (4 1)) ((7 1) (5 0)))
-  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))
-    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))
-    (y-0 (exp (gen) (mul x-0 w y))) (x-0 (exp (gen) ltxa))
-    (x-0 (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul x-0 w y)) (gen)) (a b)
-    ((exp (gen) (mul w y y-0)) (gen)))
-  (precur (5 0))
-  (uniq-gen ltxa ltxb x-0 y y-0)
-  (uniq-orig na nb nb-0)
-  (operation nonce-test (added-listener y-0) (mul w y-0) (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x-0)))
-      (recv
-        (cat (exp (gen) (mul w y y-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x-0 w y y-0)))))) (send nb))
-    ((recv (exp (gen) (mul x-0 w y y-0)))
-      (send (exp (gen) (mul x-0 w y y-0))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x-0 w y))))
-      (send
-        (cat (exp (gen) y-0)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x-0 w y y-0)))))))
-    ((recv (cat (exp (gen) y) (mul w y-0)))
-      (send (cat (exp (gen) y) (mul w y-0))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (recv (cat na-0 a-0 b-0 (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na-0 nb-0 a-0 b-0
-            (hash (exp (gen) (mul ltxa-0 ltxb-0))
-              (exp (gen) (mul x y))))))) ((recv y-0) (send y-0)))
-  (label 151)
-  (parent 141)
-  (unrealized (1 0) (4 1) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y (mul w l y)))
-  (deflistener (exp (gen) (mul x w l y)))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))
-    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (5 0)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (precur (5 0))
-  (uniq-gen ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (5 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul x w l y))))))
-      (send nb))
-    ((recv (exp (gen) (mul x w l y))) (send (exp (gen) (mul x w l y))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))
-  (label 152)
-  (parent 142)
-  (unrealized (1 0) (4 1) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y (mul w l y)))
-  (deflistener (exp (gen) (mul x w l y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))
-    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (5 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (precur (5 0))
-  (uniq-gen ltxa x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul x w l y))))))
-      (send nb))
-    ((recv (exp (gen) (mul x w l y))) (send (exp (gen) (mul x w l y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))
-  (label 153)
-  (parent 143)
-  (unrealized (1 0) (4 1) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)
-    (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w l y)))
-  (deflistener (exp (gen) (mul x w l y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener y)
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (1 0))
-    ((4 2) (7 0)) ((5 1) (0 2)) ((6 0) (4 1)) ((7 1) (5 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x w l))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))
-    ("principal-of" (l self) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x w l)) (gen)) (a b)
-    ((exp (gen) (mul w l y)) (gen)))
-  (precur (5 0))
-  (uniq-gen ltxa ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w l y)))))) (send nb))
-    ((recv (exp (gen) (mul x w l y))) (send (exp (gen) (mul x w l y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul x w l y)))))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y))))
-    ((send (cat self (exp (gen) l)))) ((recv y) (send y)))
-  (label 154)
-  (parent 144)
-  (unrealized (1 0) (4 1) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w y)))
-  (deflistener (exp (gen) (mul w y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x w))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w)))
-  (deflistener (cat (gen) (mul w y)))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))
-    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) w) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w y)) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test
-    (contracted (x-0 x) (w-0 (mul (rec x) w)) (y-0 y) (w-1 (mul w y))
-      (y-1 y) (w (mul w y))) (gen) (6 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))
-      (send nb))
-    ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) w)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w)))
-      (send (cat (exp (gen) y) (mul (rec x) w))))
-    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y)))))
-  (label 155)
-  (parent 150)
-  (unrealized (0 2) (5 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener (exp (gen) (mul w x y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x)))
-  (deflistener (cat (exp (gen) y) w))
-  (deflistener (cat (exp (gen) x) (mul w y)))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))
-    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))
-    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x))))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 7 0 init 2) (exp (gen) x-0) (6 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x y)))))) (send nb))
-    ((recv (exp (gen) (mul w x y))) (send (exp (gen) (mul w x y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x y)))))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
-    ((recv (cat (exp (gen) x) (mul w y)))
-      (send (cat (exp (gen) x) (mul w y)))))
-  (label 156)
-  (parent 150)
-  (unrealized (1 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w x-0 y)))
-  (deflistener (exp (gen) (mul w x-0 y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x-0)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w x-0)))
-  (deflistener (cat (exp (gen) x-0) (mul w y)))
-  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (x x-0))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))
-    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 1) (4 1)))
-  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))
-    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w x-0))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x-0)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w x-0 y)) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen ltxa ltxb x x-0 y)
-  (uniq-orig na nb na-0)
-  (operation nonce-test (added-strand init 2) (exp (gen) x-0) (6 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w x-0 y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x-0 y)))))) (send nb))
-    ((recv (exp (gen) (mul w x-0 y))) (send (exp (gen) (mul w x-0 y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x-0))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x-0 y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w x-0)))
-      (send (cat (exp (gen) y) (mul (rec x) w x-0))))
-    ((recv (cat (exp (gen) x-0) (mul w y)))
-      (send (cat (exp (gen) x-0) (mul w y))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))))
-  (label 157)
-  (parent 150)
-  (unrealized (0 2) (1 0) (5 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (x ltxa ltxb rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w y)))
-  (deflistener (exp (gen) (mul w y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x w))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w)))
-  (deflistener (cat (exp (gen) y) w))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))
-    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) w) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w y)) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen x ltxa ltxb y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 7 4 resp 3) (exp (gen) y-0) (6 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))
-      (send nb))
-    ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) w)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w)))
-      (send (cat (exp (gen) y) (mul (rec x) w))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
-  (label 158)
-  (parent 150)
-  (unrealized (0 2) (5 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)
-    (y y-0 rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x-0) (y (mul (rec x-0) w y y-0)))
-  (deflistener (exp (gen) (mul w y y-0)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y-0) (x (mul w y)))
-  (deflistener (cat (exp (gen) y-0) (mul (rec x-0) w y)))
-  (deflistener (cat (exp (gen) y) (mul w y-0)))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (y y) (x x))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))
-    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 2) (4 1)))
-  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))
-    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))
-    (y-0 (exp (gen) (mul w y))) (x-0 (exp (gen) ltxa))
-    (x-0 (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul w y)) (gen)) (a b)
-    ((exp (gen) (mul (rec x-0) w y y-0)) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen ltxa ltxb x-0 y y-0)
-  (uniq-orig na nb nb-0)
-  (operation nonce-test (added-strand resp 3) (exp (gen) y) (6 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x-0)))
-      (recv
-        (cat (exp (gen) (mul (rec x-0) w y y-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y y-0)))))) (send nb))
-    ((recv (exp (gen) (mul w y y-0))) (send (exp (gen) (mul w y y-0))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w y))))
-      (send
-        (cat (exp (gen) y-0)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y y-0)))))))
-    ((recv (cat (exp (gen) y-0) (mul (rec x-0) w y)))
-      (send (cat (exp (gen) y-0) (mul (rec x-0) w y))))
-    ((recv (cat (exp (gen) y) (mul w y-0)))
-      (send (cat (exp (gen) y) (mul w y-0))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (recv (cat na-0 a-0 b-0 (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na-0 nb-0 a-0 b-0
-            (hash (exp (gen) (mul ltxa-0 ltxb-0))
-              (exp (gen) (mul x y))))))))
-  (label 159)
-  (parent 150)
-  (unrealized (0 2) (1 0) (5 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y (mul (rec x) w l y)))
-  (deflistener (exp (gen) (mul w l y)))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x (mul w l)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))
-    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) (mul w l)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w l y)) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 7 2 ltx-gen 1) (exp (gen) l-0) (6 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))))
-      (send nb))
-    ((recv (exp (gen) (mul w l y))) (send (exp (gen) (mul w l y))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w l)))
-      (send (cat (exp (gen) y) (mul (rec x) w l))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))))
-  (label 160)
-  (parent 150)
-  (unrealized (0 2) (1 0) (5 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y (mul (rec x) w l y)))
-  (deflistener (exp (gen) (mul w l y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (y y) (x (mul w l)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))
-    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))
-    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq ((exp (gen) (mul w l)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w l y)) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen ltxa x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 7 3 ltx-gen 1) (exp (gen) l-0) (6 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))))
-      (send nb))
-    ((recv (exp (gen) (mul w l y))) (send (exp (gen) (mul w l y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (recv (cat na a b (exp (gen) (mul w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w l)))
-      (send (cat (exp (gen) y) (mul (rec x) w l))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))))
-  (label 161)
-  (parent 150)
-  (unrealized (0 2) (1 0) (5 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)
-    (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w l y)))
-  (deflistener (exp (gen) (mul w l y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w l)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))
-    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 0) (4 1)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))
-    ("principal-of" (l self) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w l)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w l y)) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen ltxa ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l) (6 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w l y)))))) (send nb))
-    ((recv (exp (gen) (mul w l y))) (send (exp (gen) (mul w l y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w l y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w l)))
-      (send (cat (exp (gen) y) (mul (rec x) w l))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y))))
-    ((send (cat self (exp (gen) l)))))
-  (label 162)
-  (parent 150)
-  (unrealized (0 2) (1 0) (5 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w y)))
-  (deflistener (exp (gen) (mul w y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x w))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w)))
-  (deflistener (cat (gen) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))
-    ((4 2) (7 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 1) (6 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) w) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w y)) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (6 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))
-      (send nb))
-    ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) w)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w)))
-      (send (cat (exp (gen) y) (mul (rec x) w))))
-    ((recv (cat (gen) (mul w y))) (send (cat (gen) (mul w y))))
-    ((recv y) (send y)))
-  (label 163)
-  (parent 155)
-  (unrealized (0 2) (5 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (w expt) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener (exp (gen) (mul w x y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x)))
-  (deflistener (cat (exp (gen) y) w))
-  (deflistener (cat (exp (gen) x) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))
-    ((4 2) (7 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 1) (6 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))
-    (y (exp (gen) ltxb)) (y (exp (gen) (mul w x))))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen ltxa ltxb x y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (6 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x y)))))) (send nb))
-    ((recv (exp (gen) (mul w x y))) (send (exp (gen) (mul w x y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x y)))))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
-    ((recv (cat (exp (gen) x) (mul w y)))
-      (send (cat (exp (gen) x) (mul w y)))) ((recv y) (send y)))
-  (label 164)
-  (parent 156)
-  (unrealized (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 x rndx) (w expt) (x-0 y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w x-0 y)))
-  (deflistener (exp (gen) (mul w x-0 y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x-0)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w x-0)))
-  (deflistener (cat (exp (gen) x-0) (mul w y)))
-  (defstrand init 2 (na na-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (x x-0))
-  (deflistener y)
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))
-    ((4 2) (8 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 1) (4 1))
-    ((8 1) (6 0)))
-  (absent (x-0 (exp (gen) ltxa-0)) (x-0 (exp (gen) ltxb-0))
-    (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w x-0))) (x (exp (gen) ltxa))
-    (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x-0)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w x-0 y)) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen ltxa ltxb x x-0 y)
-  (uniq-orig na nb na-0)
-  (operation nonce-test (added-listener y) (mul w y) (6 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w x-0 y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x-0 y)))))) (send nb))
-    ((recv (exp (gen) (mul w x-0 y))) (send (exp (gen) (mul w x-0 y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x-0))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w x-0 y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w x-0)))
-      (send (cat (exp (gen) y) (mul (rec x) w x-0))))
-    ((recv (cat (exp (gen) x-0) (mul w y)))
-      (send (cat (exp (gen) x-0) (mul w y))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))) ((recv y) (send y)))
-  (label 165)
-  (parent 157)
-  (unrealized (0 2) (5 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb y x rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (exp (gen) (mul y x)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat (exp (gen) y) (one)))
-  (deflistener (cat (exp (gen) y) x))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))
-    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen ltxa ltxb y x)
-  (uniq-orig na nb)
-  (operation nonce-test (contracted (x-0 x) (w x)) (one) (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x))))))
-      (send nb))
-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul y x)))))))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
-  (label 166)
-  (parent 158)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self name) (ltxa ltxb y x l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul y l)))
-  (deflistener (exp (gen) (mul y x l)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul x l)))
-  (deflistener (cat (exp (gen) y) l))
-  (deflistener (cat (exp (gen) y) (mul x l)))
-  (defstrand ltx-gen 3 (self self) (l l))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))
-    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 0) (4 1))
-    ((7 2) (5 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul x l))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))
-    ("principal-of" (l self) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul x l)) (gen)) (a b)
-    ((exp (gen) (mul y l)) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen ltxa ltxb y x l)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand ltx-gen 3) l (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul y l))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x l)))))) (send nb))
-    ((recv (exp (gen) (mul y x l))) (send (exp (gen) (mul y x l))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul x l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul y x l)))))))
-    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l)))
-    ((recv (cat (exp (gen) y) (mul x l)))
-      (send (cat (exp (gen) y) (mul x l))))
-    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l)))
-  (label 167)
-  (parent 158)
-  (unrealized (1 0) (4 1) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb rndx) (w expt) (y x rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener (exp (gen) (mul w y x)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x)))
-  (deflistener (cat (exp (gen) y) w))
-  (deflistener (cat (exp (gen) y) (mul w x)))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))
-    ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0)))
-  (absent (x w) (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w x))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen ltxa ltxb y x)
-  (uniq-orig na nb)
-  (operation nonce-test (added-absence x w) w (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y x)))))) (send nb))
-    ((recv (exp (gen) (mul w y x))) (send (exp (gen) (mul w y x))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y x)))))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
-    ((recv (cat (exp (gen) y) (mul w x)))
-      (send (cat (exp (gen) y) (mul w x)))))
-  (label 168)
-  (parent 158)
-  (unrealized (1 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (x ltxa ltxb rndx) (w expt) (y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w y)))
-  (deflistener (exp (gen) (mul w y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x w))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w)))
-  (deflistener (cat (exp (gen) y) w))
-  (deflistener x)
-  (precedes ((0 1) (4 1)) ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1))
-    ((2 0) (0 0)) ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0))
-    ((4 2) (5 0)) ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0))
-    ((7 1) (5 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) w))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) w) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w y)) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen x ltxa ltxb y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener x) (mul (rec x) w) (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y))))))
-      (send nb))
-    ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) w)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb)) (exp (gen) (mul w y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w)))
-      (send (cat (exp (gen) y) (mul (rec x) w))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
-    ((recv x) (send x)))
-  (label 169)
-  (parent 158)
-  (unrealized (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb na-0 nb-0 data) (a b a-0 b-0 name)
-    (ltxa ltxb ltxa-0 ltxb-0 rndx) (x expt) (x-0 rndx) (w expt)
-    (y y-0 rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x-0) (y (mul (rec x-0) w y y-0)))
-  (deflistener (exp (gen) (mul w y y-0)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y-0) (x (mul w y)))
-  (deflistener (cat (exp (gen) y-0) (mul (rec x-0) w y)))
-  (deflistener (cat (exp (gen) y) (mul w y-0)))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b-0) (ltxa ltxa-0)
-    (ltxb ltxb-0) (y y) (x x))
-  (deflistener y-0)
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))
-    ((4 2) (8 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 2) (4 1))
-    ((8 1) (6 0)))
-  (absent (y (exp (gen) ltxa-0)) (y (exp (gen) ltxb-0))
-    (y (exp (gen) x)) (y-0 (exp (gen) ltxa)) (y-0 (exp (gen) ltxb))
-    (y-0 (exp (gen) (mul w y))) (x-0 (exp (gen) ltxa))
-    (x-0 (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a-0 ltxa-0) (b-0 ltxb-0) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa-0 a-0) (ltxb-0 b-0) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) ((exp (gen) (mul w y)) (gen)) (a b)
-    ((exp (gen) (mul (rec x-0) w y y-0)) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen ltxa ltxb x-0 y y-0)
-  (uniq-orig na nb nb-0)
-  (operation nonce-test (added-listener y-0) (mul w y-0) (6 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x-0)))
-      (recv
-        (cat (exp (gen) (mul (rec x-0) w y y-0))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y y-0)))))) (send nb))
-    ((recv (exp (gen) (mul w y y-0))) (send (exp (gen) (mul w y y-0))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w y))))
-      (send
-        (cat (exp (gen) y-0)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y y-0)))))))
-    ((recv (cat (exp (gen) y-0) (mul (rec x-0) w y)))
-      (send (cat (exp (gen) y-0) (mul (rec x-0) w y))))
-    ((recv (cat (exp (gen) y) (mul w y-0)))
-      (send (cat (exp (gen) y) (mul w y-0))))
-    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
-      (recv (cat na-0 a-0 b-0 (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na-0 nb-0 a-0 b-0
-            (hash (exp (gen) (mul ltxa-0 ltxb-0))
-              (exp (gen) (mul x y))))))) ((recv y-0) (send y-0)))
-  (label 170)
-  (parent 159)
-  (unrealized (0 2) (5 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxb x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y (mul (rec x) w l y)))
-  (deflistener (exp (gen) (mul w l y)))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x (mul w l)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))
-    ((4 2) (7 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 1) (6 0)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w l))) (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) (mul w l)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w l y)) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (6 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y))))))
-      (send nb))
-    ((recv (exp (gen) (mul w l y))) (send (exp (gen) (mul w l y))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxb l)) (exp (gen) (mul w l y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w l)))
-      (send (cat (exp (gen) y) (mul (rec x) w l))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))
-  (label 171)
-  (parent 160)
-  (unrealized (0 2) (5 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa x rndx) (w expt) (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y (mul (rec x) w l y)))
-  (deflistener (exp (gen) (mul w l y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (y y) (x (mul w l)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (deflistener y)
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))
-    ((4 2) (7 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 1) (6 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) l))
-    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq ((exp (gen) (mul w l)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w l y)) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen ltxa x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (6 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y))))))
-      (send nb))
-    ((recv (exp (gen) (mul w l y))) (send (exp (gen) (mul w l y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (recv (cat na a b (exp (gen) (mul w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa l)) (exp (gen) (mul w l y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w l)))
-      (send (cat (exp (gen) y) (mul (rec x) w l))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y)))) ((recv y) (send y)))
-  (label 172)
-  (parent 161)
-  (unrealized (0 2) (5 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (w expt)
-    (l y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul (rec x) w l y)))
-  (deflistener (exp (gen) (mul w l y)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w l)))
-  (deflistener (cat (exp (gen) y) (mul (rec x) w l)))
-  (deflistener (cat (exp (gen) l) (mul w y)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener y)
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0)) ((4 2) (5 0))
-    ((4 2) (8 0)) ((5 1) (0 2)) ((6 1) (1 0)) ((7 0) (4 1))
-    ((8 1) (6 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w l))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self l) (a ltxa) (b ltxb))
-    ("principal-of" (l self) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w l)) (gen)) (a b)
-    ((exp (gen) (mul (rec x) w l y)) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen ltxa ltxb x l y)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener y) (mul w y) (6 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul (rec x) w l y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w l y)))))) (send nb))
-    ((recv (exp (gen) (mul w l y))) (send (exp (gen) (mul w l y))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w l))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w l y)))))))
-    ((recv (cat (exp (gen) y) (mul (rec x) w l)))
-      (send (cat (exp (gen) y) (mul (rec x) w l))))
-    ((recv (cat (exp (gen) l) (mul w y)))
-      (send (cat (exp (gen) l) (mul w y))))
-    ((send (cat self (exp (gen) l)))) ((recv y) (send y)))
-  (label 173)
-  (parent 162)
-  (unrealized (0 2) (5 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um
-  (vars (na nb data) (a b name) (ltxa ltxb rndx) (w expt) (y x rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y (mul w y)))
-  (deflistener (exp (gen) (mul w y x)))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x (mul w x)))
-  (deflistener (cat (exp (gen) y) w))
-  (deflistener (cat (exp (gen) y) (mul w x)))
-  (deflistener x)
-  (precedes ((0 1) (4 1)) ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1))
-    ((2 0) (0 0)) ((2 0) (4 0)) ((3 0) (0 0)) ((3 0) (4 0))
-    ((4 2) (5 0)) ((4 2) (6 0)) ((5 1) (0 2)) ((6 1) (1 0))
-    ((7 1) (6 0)))
-  (absent (x w) (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-    (y (exp (gen) (mul w x))) (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) (mul w x)) (gen)) (a b)
-    ((exp (gen) (mul w y)) (gen)))
-  (precur (6 0) (5 0))
-  (uniq-gen ltxa ltxb y x)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener x) (mul w x) (6 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) (mul w y))
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y x)))))) (send nb))
-    ((recv (exp (gen) (mul w y x))) (send (exp (gen) (mul w y x))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) (mul w x))))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa ltxb))
-              (exp (gen) (mul w y x)))))))
-    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
-    ((recv (cat (exp (gen) y) (mul w x)))
-      (send (cat (exp (gen) y) (mul w x)))) ((recv x) (send x)))
-  (label 174)
-  (parent 168)
-  (unrealized (7 0))
+(herald "DHCR: unified model (UM) original" (bound 20) (limit 325)
+  (algebra diffie-hellman))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/dhcr_um.scm")
+(comment "Step count limited to 325")
+(comment "Strand count bounded at 20")
+
+(defprotocol dhcr-um diffie-hellman
+  (defrole init
+    (vars (l x rndx) (gb gy base) (a b name) (na nb data)
+      (priv-stor locn))
+    (trace (load priv-stor (pv a l))
+      (recv (sig (body b gb (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv (cat gy (enc na nb a b (hash (exp gb l) (exp gy x)))))
+      (send nb))
+    (uniq-orig na)
+    (uniq-gen x)
+    (absent (x l))
+    (gen-st (pv a l))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb))))
+  (defrole resp
+    (vars (l y rndx) (ga gx base) (a b name) (na nb data)
+      (priv-stor locn))
+    (trace (load priv-stor (pv b l))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp ga l) (exp gx y))))) (recv nb))
+    (uniq-orig nb)
+    (uniq-gen y)
+    (absent (y l))
+    (gen-st (pv b l))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb))))
+  (defrole ltx-gen
+    (vars (self name) (l rndx) (priv-stor locn) (ignore mesg))
+    (trace (load priv-stor ignore) (stor priv-stor (pv self l))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    (uniq-orig l)
+    (fn-of ("principal-of" (l self)) ("ltx-of" (self l))))
+  (defrole ltx-disclose
+    (vars (self name) (l rndx) (priv-stor locn))
+    (trace (load priv-stor (pv self l)) (stor priv-stor "nil") (send l))
+    (gen-st (pv self l))
+    (fn-of ("principal-of" (l self)) ("ltx-of" (self l))))
+  (defrule fact-resp-neq0
+    (forall ((z strd))
+      (implies
+        (and (p "resp" z (idx 3)) (p "resp" "gx" z (gen)))
+        (false))))
+  (defrule fact-init-neq0
+    (forall ((z strd))
+      (implies
+        (and (p "init" z (idx 4)) (p "init" "gy" z (gen)))
+        (false))))
+  (defrule undisclosed-not-disclosed
+    (forall ((z strd) (l rndx))
+      (implies
+        (and (fact undisclosed l) (p "ltx-disclose" z (idx 2))
+          (p "ltx-disclose" "l" z l))
+        (false))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_ltx-gen-at-1
+    (forall ((z strd))
+      (implies (p "ltx-gen" z (idx 2)) (trans z (idx 1)))))
+  (defgenrule trRl_ltx-gen-at-0
+    (forall ((z strd))
+      (implies (p "ltx-gen" z (idx 2)) (trans z (idx 0)))))
+  (defgenrule trRl_ltx-disclose-at-1
+    (forall ((z strd))
+      (implies (p "ltx-disclose" z (idx 2)) (trans z (idx 1)))))
+  (defgenrule trRl_ltx-disclose-at-0
+    (forall ((z strd))
+      (implies (p "ltx-disclose" z (idx 2)) (trans z (idx 0)))))
+  (defgenrule gen-st-init-0
+    (forall ((z strd) (l rndx) (a name))
+      (implies
+        (and (p "init" z (idx 1)) (p "init" "l" z l) (p "init" "a" z a))
+        (gen-st (pv a l)))))
+  (defgenrule gen-st-resp-0
+    (forall ((z strd) (l rndx) (b name))
+      (implies
+        (and (p "resp" z (idx 1)) (p "resp" "l" z l) (p "resp" "b" z b))
+        (gen-st (pv b l)))))
+  (defgenrule gen-st-ltx-disclose-0
+    (forall ((z strd) (l rndx) (self name))
+      (implies
+        (and (p "ltx-disclose" z (idx 1)) (p "ltx-disclose" "l" z l)
+          (p "ltx-disclose" "self" z self)) (gen-st (pv self l)))))
+  (lang (sig sign) (body (tuple 3)) (pv (tuple 2))))
+
+(defskeleton dhcr-um
+  (vars (na nb data) (a b name) (pt pval) (gy base) (priv-stor locn)
+    (l l-peer x rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-peer))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (non-orig (privk "sig" b))
+  (uniq-orig na)
+  (uniq-gen x)
+  (absent (x l))
+  (facts (neq a b) (undisclosed l) (undisclosed l-peer))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-peer) (pubk "sig" b))
+          (privk "sig" b))) (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b
+            (hash (exp (gen) (mul l l-peer)) (exp gy x)))))))
+  (label 0)
+  (unrealized (0 1) (0 3))
+  (origs (na (0 2)))
+  (comment "Not closed under rules"))
+
+(defskeleton dhcr-um
+  (vars (na nb data) (a b name) (pt pval) (gy base) (priv-stor locn)
+    (l l-peer x rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-peer))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (non-orig (privk "sig" b))
+  (uniq-orig na)
+  (uniq-gen x)
+  (absent (x l))
+  (gen-st (pv a l))
+  (facts (neq a b) (undisclosed l) (undisclosed l-peer))
+  (rule gen-st-ltx-disclose-0)
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-peer) (pubk "sig" b))
+          (privk "sig" b))) (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b
+            (hash (exp (gen) (mul l l-peer)) (exp gy x)))))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 0) (0 1) (0 3))
+  (origs (na (0 2)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore mesg) (na nb data) (a b name) (pt pt-0 pval) (gy base)
+    (priv-stor locn) (l-peer x l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-peer))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (precedes ((1 1) (0 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na l)
+  (uniq-gen x)
+  (absent (x l))
+  (gen-st (pv a l))
+  (facts (neq a b) (undisclosed l) (undisclosed l-peer))
+  (leads-to ((1 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor (cat pt (pv a l))) (0 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-peer) (pubk "sig" b))
+          (privk "sig" b))) (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b
+            (hash (exp (gen) (mul l-peer l)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l)))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 1) (0 3))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (precedes ((1 1) (0 0)) ((2 2) (0 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na l l-0)
+  (uniq-gen x)
+  (absent (x l))
+  (gen-st (pv a l))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation encryption-test (added-strand ltx-gen 3)
+    (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)) (0 1))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (gy base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 l-1 x y rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b)
+    (ga (exp (gen) (mul l l-0 (rec l-1)))) (gx (exp gy (mul x (rec y))))
+    (priv-stor priv-stor-1) (l l-1) (y y))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 3) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (gen-st (pv a l) (pv b l-1))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)))
+  (rule gen-st-ltx-disclose-0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation encryption-test (added-strand resp 4)
+    (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))) (0 3))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (recv
+        (sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
+          (privk "sig" a))) (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x)))))))
+  (label 4)
+  (parent 3)
+  (unrealized (3 0) (3 1) (3 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (hash (exp (gen) (mul l l-0)) (exp gy x)))
+  (precedes ((0 2) (3 0)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na l l-0)
+  (uniq-gen x)
+  (absent (x l))
+  (gen-st (pv a l))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation encryption-test
+    (added-listener (hash (exp (gen) (mul l l-0)) (exp gy x)))
+    (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))) (0 3))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((recv (hash (exp (gen) (mul l l-0)) (exp gy x)))
+      (send (hash (exp (gen) (mul l l-0)) (exp gy x)))))
+  (label 5)
+  (parent 3)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (l x y l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l-0) (y y))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 2) (0 1))
+    ((3 3) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (gen-st (pv a l) (pv b l-0))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 4 2 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b l-1))) (3 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l-0)))
+      (recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x)))))))
+  (label 6)
+  (parent 4)
+  (unrealized (3 1) (3 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gy base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b)
+    (ga (exp (gen) (mul l l-0 (rec l-1)))) (gx (exp gy (mul x (rec y))))
+    (priv-stor priv-stor-1) (l l-1) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 3) (0 3))
+    ((4 1) (3 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (gen-st (pv a l) (pv b l-1))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((4 1) (3 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b l-1))) (3 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (recv
+        (sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
+          (privk "sig" a))) (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b l-1)))))
+  (label 7)
+  (parent 4)
+  (unrealized (3 1) (3 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (hash (exp (gen) (mul l l-0)) (exp gy x)))
+  (deflistener (cat (exp (gen) (mul l l-0)) (exp gy x)))
+  (precedes ((0 2) (4 0)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 1) (0 3))
+    ((4 1) (3 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na l l-0)
+  (uniq-gen x)
+  (absent (x l))
+  (gen-st (pv a l))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation encryption-test
+    (added-listener (cat (exp (gen) (mul l l-0)) (exp gy x)))
+    (hash (exp (gen) (mul l l-0)) (exp gy x)) (3 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((recv (hash (exp (gen) (mul l l-0)) (exp gy x)))
+      (send (hash (exp (gen) (mul l l-0)) (exp gy x))))
+    ((recv (cat (exp (gen) (mul l l-0)) (exp gy x)))
+      (send (cat (exp (gen) (mul l l-0)) (exp gy x)))))
+  (label 8)
+  (parent 5)
+  (unrealized (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor-0) (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 1 4 ltx-gen 3) (exp (gen) l-0) (3 1))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 9)
+  (parent 6)
+  (unrealized (2 2))
+  (comment "7 in cohort - 7 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (l x y l-0 rndx) (w expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l-0) (y y))
+  (deflistener (cat (exp (gen) (mul l (rec w))) w))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0))
+  (gen-st (pv a l) (pv b l-0))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul l (rec w))) w)) (exp (gen) l)
+    (3 1))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l-0)))
+      (recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) (mul l (rec w))) w))
+      (send (cat (exp (gen) (mul l (rec w))) w))))
+  (label 10)
+  (parent 6)
+  (unrealized (3 2) (4 0))
+  (comment "7 in cohort - 7 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gy base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b)
+    (ga (exp (gen) (mul l l-0 (rec l-1)))) (gx (exp gy (mul x (rec y))))
+    (priv-stor priv-stor-1) (l l-1) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul l l-0)) l-1))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 3) (0 3))
+    ((4 1) (3 0)) ((4 1) (5 0)) ((5 1) (3 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (gen-st (pv a l) (pv b l-1))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((4 1) (3 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul l l-0)) l-1))
+    (exp (gen) (mul l l-0 (rec l-1))) (3 1))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (recv
+        (sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
+          (privk "sig" a))) (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b l-1))))
+    ((recv (cat (exp (gen) (mul l l-0)) l-1))
+      (send (cat (exp (gen) (mul l l-0)) l-1))))
+  (label 11)
+  (parent 7)
+  (unrealized (3 2) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gy base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b)
+    (ga (exp (gen) (mul l l-0 (rec l-1)))) (gx (exp gy (mul x (rec y))))
+    (priv-stor priv-stor-1) (l l-1) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul l (rec l-1))) l-0))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (5 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 0)) ((5 1) (3 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (gen-st (pv a l) (pv b l-1))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((4 1) (3 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul l (rec l-1))) l-0))
+    (exp (gen) (mul l l-0 (rec l-1))) (3 1))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (recv
+        (sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
+          (privk "sig" a))) (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b l-1))))
+    ((recv (cat (exp (gen) (mul l (rec l-1))) l-0))
+      (send (cat (exp (gen) (mul l (rec l-1))) l-0))))
+  (label 12)
+  (parent 7)
+  (unrealized (3 2) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gy base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b)
+    (ga (exp (gen) (mul l l-0 (rec l-1)))) (gx (exp gy (mul x (rec y))))
+    (priv-stor priv-stor-1) (l l-1) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul l-0 (rec l-1))) l))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((1 1) (5 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 0)) ((5 1) (3 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (gen-st (pv a l) (pv b l-1))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((4 1) (3 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul l-0 (rec l-1))) l))
+    (exp (gen) (mul l l-0 (rec l-1))) (3 1))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (recv
+        (sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
+          (privk "sig" a))) (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b l-1))))
+    ((recv (cat (exp (gen) (mul l-0 (rec l-1))) l))
+      (send (cat (exp (gen) (mul l-0 (rec l-1))) l))))
+  (label 13)
+  (parent 7)
+  (unrealized (3 2) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (hash (exp (gen) (mul l l-0)) (exp gy x)))
+  (deflistener (cat (exp (gen) (mul l l-0)) (exp gy x)))
+  (deflistener (cat (exp (gen) l) l-0))
+  (precedes ((0 2) (4 0)) ((1 1) (0 0)) ((2 1) (5 0)) ((2 2) (0 1))
+    ((3 1) (0 3)) ((4 1) (3 0)) ((5 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na l l-0)
+  (uniq-gen x)
+  (absent (x l))
+  (gen-st (pv a l))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) l) l-0))
+    (exp (gen) (mul l l-0)) (4 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((recv (hash (exp (gen) (mul l l-0)) (exp gy x)))
+      (send (hash (exp (gen) (mul l l-0)) (exp gy x))))
+    ((recv (cat (exp (gen) (mul l l-0)) (exp gy x)))
+      (send (cat (exp (gen) (mul l l-0)) (exp gy x))))
+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0))))
+  (label 14)
+  (parent 8)
+  (unrealized (4 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (hash (exp (gen) (mul l l-0)) (exp gy x)))
+  (deflistener (cat (exp (gen) (mul l l-0)) (exp gy x)))
+  (deflistener (cat (exp (gen) l-0) l))
+  (precedes ((0 2) (4 0)) ((1 1) (0 0)) ((1 1) (5 0)) ((2 2) (0 1))
+    ((3 1) (0 3)) ((4 1) (3 0)) ((5 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na l l-0)
+  (uniq-gen x)
+  (absent (x l))
+  (gen-st (pv a l))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) l-0) l))
+    (exp (gen) (mul l l-0)) (4 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((recv (hash (exp (gen) (mul l l-0)) (exp gy x)))
+      (send (hash (exp (gen) (mul l l-0)) (exp gy x))))
+    ((recv (cat (exp (gen) (mul l l-0)) (exp gy x)))
+      (send (cat (exp (gen) (mul l l-0)) (exp gy x))))
+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l))))
+  (label 15)
+  (parent 8)
+  (unrealized (4 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 3) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule gen-st-ltx-disclose-0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand resp 4) (exp (gen) y-0) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0)))))))
+  (label 16)
+  (parent 9)
+  (unrealized (0 3) (4 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self a b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule gen-st-ltx-disclose-0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand init 3) (exp (gen) x-0) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0)))))
+  (label 17)
+  (parent 9)
+  (unrealized (0 3) (4 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (y l l-0 x rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 4 0 init 3) (exp (gen) x-0) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 18)
+  (parent 9)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a self) (b b) (l l-0) (l-peer l) (x x) (gy (exp (gen) y))
+        (na na) (nb nb) (priv-stor priv-stor-0))))
+  (origs (na (0 2)) (l-0 (3 1)) (pt-2 (3 1)) (l (1 1)) (pt-0 (1 1))
+    (nb (2 3))))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 4 3 ltx-gen 3) (exp (gen) l-1) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 19)
+  (parent 9)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 4 1 ltx-gen 3) (exp (gen) l-1) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 20)
+  (parent 9)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 3) (exp (gen) l-1) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0)))))
+  (label 21)
+  (parent 9)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx) (w expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor-0) (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp gy (mul x (rec y) (rec w))) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp gy (mul x (rec y) (rec w))) w))
+    (exp gy (mul x (rec y))) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp gy (mul x (rec y) (rec w))) w))
+      (send (cat (exp gy (mul x (rec y) (rec w))) w))))
+  (label 22)
+  (parent 9)
+  (unrealized (4 0))
+  (comment "7 in cohort - 7 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (a b a-0 b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (gy gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor) (l l-1) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l-1))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (exp (gen) x-0) (mul l-1 (rec x-0))))
+  (defstrand init 3 (na na-0) (a a-0) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 1)) ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-1) (y l) (x-0 l-0))
+  (precur (4 0))
+  (gen-st (pv a l-1) (pv b l) (pv a-0 l-0))
+  (facts (neq a b) (undisclosed l-1) (undisclosed l))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)))
+  (rule gen-st-ltx-disclose-0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand init 3) (exp (gen) x-0) (4 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l-1)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-1)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l-1))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l)))
+      (recv
+        (sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-1)) (exp gy x))))))
+    ((recv (cat (exp (gen) x-0) (mul l-1 (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul l-1 (rec x-0)))))
+    ((load priv-stor-1 (cat pt-3 (pv a-0 l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))))
+  (label 23)
+  (parent 10)
+  (unrealized (3 1) (3 2) (4 0) (5 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (y l l-0 x rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor) (l l-0) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul (rec y) x))) (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (exp (gen) x) (mul l-0 (rec x))))
+  (precedes ((0 2) (4 0)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (4 0))
+  (gen-st (pv a l-0) (pv b l))
+  (facts (neq a b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 0 init 3) (exp (gen) x-0) (4 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l-0))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l)))
+      (recv
+        (sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul (rec y) x))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) x) (mul l-0 (rec x))))
+      (send (cat (exp (gen) x) (mul l-0 (rec x))))))
+  (label 24)
+  (parent 10)
+  (unrealized (3 1) (3 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor) (l l-0) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (gen) l-0))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((1 1) (4 0)) ((2 1) (3 0))
+    ((2 2) (0 1)) ((3 3) (0 3)) ((4 1) (3 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (4 0))
+  (gen-st (pv a l-0) (pv b l))
+  (facts (neq a b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (contracted (l-1 l-0) (w l-0)) (gen) (4 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l-0))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l)))
+      (recv
+        (sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (gen) l-0)) (send (cat (gen) l-0))))
+  (label 25)
+  (parent 10)
+  (unrealized (3 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor-0) (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 1 5 ltx-gen 3) (exp (gen) l-1) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 26)
+  (parent 10)
+  (unrealized (2 2))
+  (comment "7 in cohort - 7 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (gy ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor) (l l-1) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l-1))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (exp (gen) y-0) (mul l-1 (rec y-0))))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a-0) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y-0))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 1)) ((5 3) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-1) (y l) (y-0 l-0))
+  (precur (4 0))
+  (gen-st (pv a l-1) (pv b l) (pv b-0 l-0))
+  (facts (neq a b) (undisclosed l-1) (undisclosed l))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)))
+  (rule gen-st-ltx-disclose-0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand resp 4) (exp (gen) y-0) (4 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l-1)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-1)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l-1))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l)))
+      (recv
+        (sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-1)) (exp gy x))))))
+    ((recv (cat (exp (gen) y-0) (mul l-1 (rec y-0))))
+      (send (cat (exp (gen) y-0) (mul l-1 (rec y-0)))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a-0 ga (pubk "sig" a-0)) (privk "sig" a-0)))
+      (recv (cat na-0 a-0 b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a-0 b-0 (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 27)
+  (parent 10)
+  (unrealized (3 1) (3 2) (4 0) (5 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l-0) (mul l (rec l-0))))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 2) (0 1))
+    ((2 2) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0))
+  (gen-st (pv a l) (pv b l-0))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 2 ltx-gen 3) (exp (gen) l-1) (4 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l-0)))
+      (recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) l-0) (mul l (rec l-0))))
+      (send (cat (exp (gen) l-0) (mul l (rec l-0))))))
+  (label 28)
+  (parent 10)
+  (unrealized (3 1) (3 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b self name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gy base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor) (l l-0) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (exp (gen) l-1) (mul l-0 (rec l-1))))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 1)) ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (4 0))
+  (gen-st (pv a l-0) (pv b l))
+  (facts (neq a b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 3) (exp (gen) l-1) (4 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l-0))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l)))
+      (recv
+        (sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) l-1) (mul l-0 (rec l-1))))
+      (send (cat (exp (gen) l-1) (mul l-0 (rec l-1)))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self l-1)))
+      (send
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 29)
+  (parent 10)
+  (unrealized (3 1) (3 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (gy base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b)
+    (ga (exp (gen) (mul l l-0 (rec l-1)))) (gx (exp gy (mul x (rec y))))
+    (priv-stor priv-stor-1) (l l-1) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul l l-0)) l-1))
+  (defstrand ltx-disclose 3 (self b) (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 3) (0 3))
+    ((4 1) (3 0)) ((4 1) (6 0)) ((5 1) (3 1)) ((6 2) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (gen-st (pv a l) (pv b l-1))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((4 1) (3 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-disclose-at-0 trRl_ltx-disclose-at-1 trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-disclose 3) l-1 (5 0)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b l-1))))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (recv
+        (sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
+          (privk "sig" a))) (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b l-1))))
+    ((recv (cat (exp (gen) (mul l l-0)) l-1))
+      (send (cat (exp (gen) (mul l l-0)) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (stor priv-stor-1 (cat pt-5 "nil")) (send l-1)))
+  (label 30)
+  (parent 11)
+  (unrealized (3 2) (5 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 3) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (4 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 5 1 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 31)
+  (parent 16)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 1) (4 0)) ((3 2) (2 1)) ((4 3) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (4 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 5 3 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 32)
+  (parent 16)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 3) (2 2)) ((5 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((5 1) (4 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1)))))
+  (label 33)
+  (parent 16)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (4 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 5 1 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0)))))
+  (label 34)
+  (parent 17)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 1) (4 0)) ((3 2) (2 1)) ((4 2) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (4 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 5 3 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0)))))
+  (label 35)
+  (parent 17)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2)) ((5 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((5 1) (4 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1)))))
+  (label 36)
+  (parent 17)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (4 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) l-0))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-0))
+      (send (cat (exp (gen) (mul (rec x) y)) l-0))))
+  (label 37)
+  (parent 19)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) (mul (rec x) l-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (4 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) l-0)) y))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul (rec x) l-0)) y))
+      (send (cat (exp (gen) (mul (rec x) l-0)) y))))
+  (label 38)
+  (parent 19)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) (mul y l-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (4 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y l-0)) x))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul y l-0)) x))
+      (send (cat (exp (gen) (mul y l-0)) x))))
+  (label 39)
+  (parent 19)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (4 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) l-0))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-0))
+      (send (cat (exp (gen) (mul (rec x) y)) l-0))))
+  (label 40)
+  (parent 20)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) (mul (rec x) l-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (4 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) l-0)) y))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul (rec x) l-0)) y))
+      (send (cat (exp (gen) (mul (rec x) l-0)) y))))
+  (label 41)
+  (parent 20)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) (mul y l-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (4 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y l-0)) x))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul y l-0)) x))
+      (send (cat (exp (gen) (mul y l-0)) x))))
+  (label 42)
+  (parent 20)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-1))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) l-1))
+    (exp (gen) (mul (rec x) y l-1)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-1))
+      (send (cat (exp (gen) (mul (rec x) y)) l-1))))
+  (label 43)
+  (parent 21)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) l-1)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) l-1)) y))
+    (exp (gen) (mul (rec x) y l-1)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) l-1)) y))
+      (send (cat (exp (gen) (mul (rec x) l-1)) y))))
+  (label 44)
+  (parent 21)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul y l-1)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y l-1)) x))
+    (exp (gen) (mul (rec x) y l-1)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul y l-1)) x))
+      (send (cat (exp (gen) (mul y l-1)) x))))
+  (label 45)
+  (parent 21)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self a b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (l-1 x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule gen-st-ltx-disclose-0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand init 3) (exp (gen) x-0) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0)))))
+  (label 46)
+  (parent 22)
+  (unrealized (0 3) (5 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (y l rndx)
+    (w expt) (l-0 x rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y w))) (priv-stor priv-stor-0) (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 0 init 3) (exp (gen) x-0) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y w))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))
+  (label 47)
+  (parent 22)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx) (w expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) w)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (gen) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (contracted (gy (exp (gen) (mul (rec x) y w))))
+    (gen) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) w)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) w)) (send (cat (gen) w))))
+  (label 48)
+  (parent 22)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y l rndx)
+    (w expt) (l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 1 ltx-gen 3) (exp (gen) l-1) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))
+  (label 49)
+  (parent 22)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (l-1 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 3) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule gen-st-ltx-disclose-0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand resp 4) (exp (gen) y-0) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0)))))))
+  (label 50)
+  (parent 22)
+  (unrealized (0 3) (5 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y l rndx)
+    (w expt) (l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w l-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((3 2) (4 0)) ((4 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 3 ltx-gen 3) (exp (gen) l-1) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))
+  (label 51)
+  (parent 22)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w l-1))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w l-1))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-1) w))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 3) (exp (gen) l-1) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0)))))
+  (label 52)
+  (parent 22)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (a b b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gy gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor) (l l-0) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (exp (gen) x-0) (mul (rec x-0) l-0)))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((1 1) (5 0)) ((2 1) (3 0))
+    ((2 2) (0 1)) ((3 3) (0 3)) ((4 1) (3 1)) ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (precur (4 0))
+  (gen-st (pv a l-0) (pv b l))
+  (facts (neq a b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (0 0)) ((1 1) (5 0)) ((2 1) (3 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 1 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l-0))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l)))
+      (recv
+        (sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) x-0) (mul (rec x-0) l-0)))
+      (send (cat (exp (gen) x-0) (mul (rec x-0) l-0))))
+    ((load priv-stor (cat pt (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0)))))
+  (label 53)
+  (parent 23)
+  (unrealized (3 1) (3 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (a b b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gy gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l-0) (y y))
+  (deflistener (cat (exp (gen) x-0) (mul l (rec x-0))))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 1) (5 0))
+    ((2 2) (0 1)) ((3 3) (0 3)) ((4 1) (3 1)) ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (precur (4 0))
+  (gen-st (pv a l) (pv b l-0))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)) ((2 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 2 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l-0)))
+      (recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) x-0) (mul l (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul l (rec x-0)))))
+    ((load priv-stor-0 (cat pt-2 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0)))))
+  (label 54)
+  (parent 23)
+  (unrealized (3 1) (3 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (a b a-0 b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gy gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor) (l l-0) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (exp (gen) x-0) (mul l-0 (rec x-0))))
+  (defstrand init 3 (na na-0) (a a-0) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 1)) ((5 2) (4 0)) ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (4 0))
+  (gen-st (pv a l-0) (pv b l) (pv a-0 l-1))
+  (facts (neq a b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l-0))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l)))
+      (recv
+        (sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) x-0) (mul l-0 (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul l-0 (rec x-0)))))
+    ((load priv-stor-1 (cat pt-3 (pv a-0 l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a-0 b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a-0 l-1)))))
+  (label 55)
+  (parent 23)
+  (unrealized (3 1) (3 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 3) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule gen-st-ltx-disclose-0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand resp 4) (exp (gen) y-0) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0)))))))
+  (label 56)
+  (parent 26)
+  (unrealized (0 3) (5 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self a b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 2) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule gen-st-ltx-disclose-0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand init 3) (exp (gen) x-0) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0)))))
+  (label 57)
+  (parent 26)
+  (unrealized (0 3) (5 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (y l l-0 x rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 0 init 3) (exp (gen) x-0) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 58)
+  (parent 26)
+  (seen 18)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 4 ltx-gen 3) (exp (gen) l-1) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 59)
+  (parent 26)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 1 ltx-gen 3) (exp (gen) l-1) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 60)
+  (parent 26)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 2) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 3) (exp (gen) l-1) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0)))))
+  (label 61)
+  (parent 26)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx) (w expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor-0) (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp gy (mul x (rec y) (rec w))) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp gy (mul x (rec y) (rec w))) w))
+    (exp gy (mul x (rec y))) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp gy (mul x (rec y) (rec w))) w))
+      (send (cat (exp gy (mul x (rec y) (rec w))) w))))
+  (label 62)
+  (parent 26)
+  (unrealized (5 0))
+  (comment "7 in cohort - 7 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (a b a-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gy ga gx base)
+    (priv-stor priv-stor-0 locn) (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor) (l l-0) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (exp (gen) y-0) (mul (rec y-0) l-0)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a-0) (b a) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((1 1) (5 0)) ((2 1) (3 0))
+    ((2 2) (0 1)) ((3 3) (0 3)) ((4 1) (3 1)) ((5 3) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (precur (4 0))
+  (gen-st (pv a l-0) (pv b l))
+  (facts (neq a b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (0 0)) ((1 1) (5 0)) ((2 1) (3 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 1 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l-0))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l)))
+      (recv
+        (sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) y-0) (mul (rec y-0) l-0)))
+      (send (cat (exp (gen) y-0) (mul (rec y-0) l-0))))
+    ((load priv-stor (cat pt (pv a l-0)))
+      (recv (sig (body a-0 ga (pubk "sig" a-0)) (privk "sig" a-0)))
+      (recv (cat na-0 a-0 a gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a-0 a (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 63)
+  (parent 27)
+  (unrealized (3 1) (3 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (a b a-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gy ga gx base)
+    (priv-stor priv-stor-0 locn) (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l-0) (y y))
+  (deflistener (cat (exp (gen) y-0) (mul l (rec y-0))))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a-0) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 1) (5 0))
+    ((2 2) (0 1)) ((3 3) (0 3)) ((4 1) (3 1)) ((5 3) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (4 0))
+  (gen-st (pv a l) (pv b l-0))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)) ((2 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 2 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l-0)))
+      (recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) y-0) (mul l (rec y-0))))
+      (send (cat (exp (gen) y-0) (mul l (rec y-0)))))
+    ((load priv-stor-0 (cat pt-2 (pv b l-0)))
+      (recv (sig (body a-0 ga (pubk "sig" a-0)) (privk "sig" a-0)))
+      (recv (cat na-0 a-0 b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a-0 b (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 64)
+  (parent 27)
+  (unrealized (3 1) (3 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (a b a-0 b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (gy ga gx base) (priv-stor priv-stor-0 priv-stor-1 locn)
+    (x y l l-0 y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor) (l l-0) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (exp (gen) y-0) (mul l-0 (rec y-0))))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a-0) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 1)) ((5 3) (4 0)) ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (4 0))
+  (gen-st (pv a l-0) (pv b l) (pv b-0 l-1))
+  (facts (neq a b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l-0))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l)))
+      (recv
+        (sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) y-0) (mul l-0 (rec y-0))))
+      (send (cat (exp (gen) y-0) (mul l-0 (rec y-0)))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a-0 ga (pubk "sig" a-0)) (privk "sig" a-0)))
+      (recv (cat na-0 a-0 b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a-0 b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1)))))
+  (label 65)
+  (parent 27)
+  (unrealized (3 1) (3 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (gy base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b)
+    (ga (exp (gen) (mul l l-0 (rec l-1)))) (gx (exp gy (mul x (rec y))))
+    (priv-stor priv-stor-1) (l l-1) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul l l-0)) l-1))
+  (defstrand ltx-disclose 3 (self b) (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) l) l-0))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (7 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 0)) ((4 1) (6 0)) ((5 1) (3 1))
+    ((6 2) (5 0)) ((7 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (gen-st (pv a l) (pv b l-1))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((4 1) (3 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-disclose-at-0 trRl_ltx-disclose-at-1 trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) l) l-0))
+    (exp (gen) (mul l l-0)) (5 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (recv
+        (sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
+          (privk "sig" a))) (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b l-1))))
+    ((recv (cat (exp (gen) (mul l l-0)) l-1))
+      (send (cat (exp (gen) (mul l l-0)) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (stor priv-stor-1 (cat pt-5 "nil")) (send l-1))
+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0))))
+  (label 66)
+  (parent 30)
+  (unrealized (3 2) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (gy base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b)
+    (ga (exp (gen) (mul l l-0 (rec l-1)))) (gx (exp gy (mul x (rec y))))
+    (priv-stor priv-stor-1) (l l-1) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul l l-0)) l-1))
+  (defstrand ltx-disclose 3 (self b) (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) l-0) l))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((1 1) (7 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 0)) ((4 1) (6 0)) ((5 1) (3 1))
+    ((6 2) (5 0)) ((7 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (gen-st (pv a l) (pv b l-1))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((4 1) (3 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-disclose-at-0 trRl_ltx-disclose-at-1 trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) l-0) l))
+    (exp (gen) (mul l l-0)) (5 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (recv
+        (sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
+          (privk "sig" a))) (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b l-1))))
+    ((recv (cat (exp (gen) (mul l l-0)) l-1))
+      (send (cat (exp (gen) (mul l l-0)) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (stor priv-stor-1 (cat pt-5 "nil")) (send l-1))
+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l))))
+  (label 67)
+  (parent 30)
+  (unrealized (3 2) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 3) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (4 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) y-0))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) y-0))
+      (send (cat (exp (gen) (mul (rec x) y)) y-0))))
+  (label 68)
+  (parent 31)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 3) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (4 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y-0)) y))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y-0)) y))
+      (send (cat (exp (gen) (mul (rec x) y-0)) y))))
+  (label 69)
+  (parent 31)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul y y-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 3) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (4 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y y-0)) x))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul y y-0)) x))
+      (send (cat (exp (gen) (mul y y-0)) x))))
+  (label 70)
+  (parent 31)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 1) (4 0)) ((3 2) (2 1)) ((4 3) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (4 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) y-0))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) y-0))
+      (send (cat (exp (gen) (mul (rec x) y)) y-0))))
+  (label 71)
+  (parent 32)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 1) (4 0)) ((3 2) (2 1)) ((4 3) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (4 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y-0)) y))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y-0)) y))
+      (send (cat (exp (gen) (mul (rec x) y-0)) y))))
+  (label 72)
+  (parent 32)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul y y-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 1) (4 0)) ((3 2) (2 1)) ((4 3) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (4 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y y-0)) x))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul y y-0)) x))
+      (send (cat (exp (gen) (mul y y-0)) x))))
+  (label 73)
+  (parent 32)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 3) (2 2)) ((5 1) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((5 1) (4 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) y-0))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) y-0))
+      (send (cat (exp (gen) (mul (rec x) y)) y-0))))
+  (label 74)
+  (parent 33)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 3) (2 2)) ((5 1) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((5 1) (4 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y-0)) y))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) y-0)) y))
+      (send (cat (exp (gen) (mul (rec x) y-0)) y))))
+  (label 75)
+  (parent 33)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul y y-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 3) (2 2)) ((5 1) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((5 1) (4 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y y-0)) x))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1))))
+    ((recv (cat (exp (gen) (mul y y-0)) x))
+      (send (cat (exp (gen) (mul y y-0)) x))))
+  (label 76)
+  (parent 33)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (4 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) x-0))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) x-0))
+      (send (cat (exp (gen) (mul (rec x) y)) x-0))))
+  (label 77)
+  (parent 34)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) x-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (4 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) x-0)) y))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) x-0)) y))
+      (send (cat (exp (gen) (mul (rec x) x-0)) y))))
+  (label 78)
+  (parent 34)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul y x-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (4 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y x-0)) x))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul y x-0)) x))
+      (send (cat (exp (gen) (mul y x-0)) x))))
+  (label 79)
+  (parent 34)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 1) (4 0)) ((3 2) (2 1)) ((4 2) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (4 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) x-0))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) x-0))
+      (send (cat (exp (gen) (mul (rec x) y)) x-0))))
+  (label 80)
+  (parent 35)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) x-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 1) (4 0)) ((3 2) (2 1)) ((4 2) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (4 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) x-0)) y))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) x-0)) y))
+      (send (cat (exp (gen) (mul (rec x) x-0)) y))))
+  (label 81)
+  (parent 35)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul y x-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 1) (4 0)) ((3 2) (2 1)) ((4 2) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (4 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y x-0)) x))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul y x-0)) x))
+      (send (cat (exp (gen) (mul y x-0)) x))))
+  (label 82)
+  (parent 35)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2)) ((5 1) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((5 1) (4 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) x-0))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) x-0))
+      (send (cat (exp (gen) (mul (rec x) y)) x-0))))
+  (label 83)
+  (parent 36)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) x-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2)) ((5 1) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((5 1) (4 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) x-0)) y))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) x-0)) y))
+      (send (cat (exp (gen) (mul (rec x) x-0)) y))))
+  (label 84)
+  (parent 36)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul y x-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2)) ((5 1) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((5 1) (4 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y x-0)) x))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1))))
+    ((recv (cat (exp (gen) (mul y x-0)) x))
+      (send (cat (exp (gen) (mul y x-0)) x))))
+  (label 85)
+  (parent 36)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-1))
+  (defstrand ltx-disclose 3 (self self-0) (priv-stor priv-stor-1)
+    (l l-1))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (6 0)) ((4 2) (2 2))
+    ((5 1) (0 3)) ((6 2) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0) (pv self-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((4 1) (6 0)))
+  (rule gen-st-ltx-disclose-0 trRl_ltx-disclose-at-0
+    trRl_ltx-disclose-at-1 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-disclose 3) l-1 (5 0)
+    (ch-msg priv-stor-1 (cat pt-4 (pv self-0 l-1))))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-1))
+      (send (cat (exp (gen) (mul (rec x) y)) l-1)))
+    ((load priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (stor priv-stor-1 (cat pt-5 "nil")) (send l-1)))
+  (label 86)
+  (parent 43)
+  (unrealized (5 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (precur (4 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 1 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0)))))
+  (label 87)
+  (parent 46)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 3 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0)))))
+  (label 88)
+  (parent 46)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1)))))
+  (label 89)
+  (parent 46)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (y l rndx)
+    (w expt) (l-0 x rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y w))) (priv-stor priv-stor-0) (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation generalization deleted (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y w))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 90)
+  (parent 47)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a self) (b b) (l l-0) (l-peer l) (x x)
+        (gy (exp (gen) (mul y w))) (na na) (nb nb)
+        (priv-stor priv-stor-0))))
+  (origs (na (0 2)) (l-0 (3 1)) (pt-2 (3 1)) (l (1 1)) (pt-0 (1 1))
+    (nb (2 3))))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l x l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) x))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) x)) (send (cat (gen) x))))
+  (label 91)
+  (parent 48)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx) (w w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) w)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (gen) w))
+  (deflistener (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) w)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) w)) (send (cat (gen) w)))
+    ((recv (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))))
+  (label 92)
+  (parent 48)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l x l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) (mul x (rec l-0))))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (mul x (rec l-0))))
+      (send (cat (exp (gen) l-0) (mul x (rec l-0))))))
+  (label 93)
+  (parent 49)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y l rndx)
+    (w expt) (l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) w))
+  (deflistener (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
+    ((recv (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))))
+  (label 94)
+  (parent 49)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (4 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 1 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 95)
+  (parent 50)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 3 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 96)
+  (parent 50)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 3) (4 0))
+    ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1)))))
+  (label 97)
+  (parent 50)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x l l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l) (mul x (rec l))))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((3 2) (4 0)) ((4 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l) (mul x (rec l))))
+      (send (cat (exp (gen) l) (mul x (rec l))))))
+  (label 98)
+  (parent 51)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y l rndx)
+    (w expt) (l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w l-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) w))
+  (deflistener (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((3 2) (4 0)) ((4 1) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
+    ((recv (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))))
+  (label 99)
+  (parent 51)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l x l-0 l-1 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) (mul x (rec l-0))))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (precur (4 0))
+  (gen-st (pv b l-1) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (mul x (rec l-0))))
+      (send (cat (exp (gen) l-0) (mul x (rec l-0)))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-0)))
+      (send
+        (sig (body self-0 (exp (gen) l-0) (pubk "sig" self-0))
+          (privk "sig" self-0)))))
+  (label 100)
+  (parent 52)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (l-1 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w l-1))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w l-1))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-1) w))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y w l-1 (rec w-0))) w-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w l-1 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w l-1)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y w l-1 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w l-1 (rec w-0))) w-0))))
+  (label 101)
+  (parent 52)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 3) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 1 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 102)
+  (parent 56)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (5 0)) ((4 2) (3 0))
+    ((5 3) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 4 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 103)
+  (parent 56)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 3) (2 2))
+    ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1)))))
+  (label 104)
+  (parent 56)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 2) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 1 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0)))))
+  (label 105)
+  (parent 57)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (5 0)) ((4 2) (3 0))
+    ((5 2) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 4 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0)))))
+  (label 106)
+  (parent 57)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 2) (2 2))
+    ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1)))))
+  (label 107)
+  (parent 57)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) l-0))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-0))
+      (send (cat (exp (gen) (mul (rec x) y)) l-0))))
+  (label 108)
+  (parent 59)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) (mul (rec x) l-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) l-0)) y))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul (rec x) l-0)) y))
+      (send (cat (exp (gen) (mul (rec x) l-0)) y))))
+  (label 109)
+  (parent 59)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) (mul y l-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y l-0)) x))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul y l-0)) x))
+      (send (cat (exp (gen) (mul y l-0)) x))))
+  (label 110)
+  (parent 59)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) l-0))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-0))
+      (send (cat (exp (gen) (mul (rec x) y)) l-0))))
+  (label 111)
+  (parent 60)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) (mul (rec x) l-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) l-0)) y))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul (rec x) l-0)) y))
+      (send (cat (exp (gen) (mul (rec x) l-0)) y))))
+  (label 112)
+  (parent 60)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) (mul y l-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y l-0)) x))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul y l-0)) x))
+      (send (cat (exp (gen) (mul y l-0)) x))))
+  (label 113)
+  (parent 60)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-1))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 2) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) l-1))
+    (exp (gen) (mul (rec x) y l-1)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-1))
+      (send (cat (exp (gen) (mul (rec x) y)) l-1))))
+  (label 114)
+  (parent 61)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) l-1)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 2) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) l-1)) y))
+    (exp (gen) (mul (rec x) y l-1)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) l-1)) y))
+      (send (cat (exp (gen) (mul (rec x) l-1)) y))))
+  (label 115)
+  (parent 61)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul y l-1)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 2) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y l-1)) x))
+    (exp (gen) (mul (rec x) y l-1)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul y l-1)) x))
+      (send (cat (exp (gen) (mul y l-1)) x))))
+  (label 116)
+  (parent 61)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self a b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (l-1 x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule gen-st-ltx-disclose-0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand init 3) (exp (gen) x-0) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0)))))
+  (label 117)
+  (parent 62)
+  (unrealized (0 3) (6 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (y l rndx)
+    (w expt) (l-0 x rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y w))) (priv-stor priv-stor-0) (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 0 init 3) (exp (gen) x-0) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y w))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))
+  (label 118)
+  (parent 62)
+  (seen 47)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx) (w expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) w)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (gen) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (contracted (gy (exp (gen) (mul (rec x) y w))))
+    (gen) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) w)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) w)) (send (cat (gen) w))))
+  (label 119)
+  (parent 62)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y l rndx)
+    (w expt) (l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 1 ltx-gen 3) (exp (gen) l-1) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))
+  (label 120)
+  (parent 62)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (l-1 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 3) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule gen-st-ltx-disclose-0 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand resp 4) (exp (gen) y-0) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0)))))))
+  (label 121)
+  (parent 62)
+  (unrealized (0 3) (6 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y l rndx)
+    (w expt) (l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w l-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((4 2) (5 0))
+    ((5 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 4 ltx-gen 3) (exp (gen) l-1) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))
+  (label 122)
+  (parent 62)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w l-1))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w l-1))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-1) w))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 3) (exp (gen) l-1) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-1)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0)))))
+  (label 123)
+  (parent 62)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-1))
+  (defstrand ltx-disclose 3 (self self-0) (priv-stor priv-stor-1)
+    (l l-1))
+  (deflistener (cat (exp (gen) (rec x)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (6 0)) ((4 2) (2 2))
+    ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0) (pv self-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-disclose-at-0 trRl_ltx-disclose-at-1 trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (rec x)) y))
+    (exp (gen) (mul (rec x) y)) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-1))
+      (send (cat (exp (gen) (mul (rec x) y)) l-1)))
+    ((load priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (stor priv-stor-1 (cat pt-5 "nil")) (send l-1))
+    ((recv (cat (exp (gen) (rec x)) y))
+      (send (cat (exp (gen) (rec x)) y))))
+  (label 124)
+  (parent 86)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-1))
+  (defstrand ltx-disclose 3 (self self-0) (priv-stor priv-stor-1)
+    (l l-1))
+  (deflistener (cat (exp (gen) y) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (6 0)) ((4 2) (2 2))
+    ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0) (pv self-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-disclose-at-0 trRl_ltx-disclose-at-1 trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) y) x))
+    (exp (gen) (mul (rec x) y)) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-1))
+      (send (cat (exp (gen) (mul (rec x) y)) l-1)))
+    ((load priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (stor priv-stor-1 (cat pt-5 "nil")) (send l-1))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
+  (label 125)
+  (parent 86)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l x x-0 l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l-0) (y l-0))
+  (precur (4 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0)))))
+  (label 126)
+  (parent 87)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (x-0 l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))))
+  (label 127)
+  (parent 87)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l x x-0 l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l) (x x-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l) (y l-0))
+  (precur (4 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0)))))
+  (label 128)
+  (parent 88)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (x-0 l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))))
+  (label 129)
+  (parent 88)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x x-0 l-1 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l-0) (y l-1))
+  (precur (4 0))
+  (gen-st (pv b l-1) (pv self l) (pv a l-0))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-0)))))
+  (label 130)
+  (parent 89)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (x-0 l-1 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))))
+  (label 131)
+  (parent 89)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l x rndx)
+    (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) (mul x w)))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-0) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 132)
+  (parent 92)
+  (unrealized (4 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l x rndx)
+    (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) (mul x w (rec l-0))))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-0) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (mul x w (rec l-0))))
+      (send (cat (exp (gen) l-0) (mul x w (rec l-0)))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 133)
+  (parent 94)
+  (unrealized (4 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l x y l-0 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y-0)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y))))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (4 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-1) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y))))
+      (send (cat (exp (gen) y) (mul x (rec y)))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y)))))))
+  (label 134)
+  (parent 95)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (y-0 l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))))
+  (label 135)
+  (parent 95)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l x y l-0 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y-0)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y))))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l) (y y))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l) (y-0 l-0))
+  (precur (4 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-1) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y))))
+      (send (cat (exp (gen) y) (mul x (rec y)))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a self (hash (exp ga l) (exp gx y)))))))
+  (label 136)
+  (parent 96)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (y-0 l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))))
+  (label 137)
+  (parent 96)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y l-1 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) y-0)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-1) (y y-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y))))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 3) (4 0))
+    ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-1))
+  (precur (4 0))
+  (gen-st (pv b l-1) (pv self l) (pv b-0 l-0))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-1) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y))))
+      (send (cat (exp (gen) y) (mul x (rec y)))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-0) (exp gx y))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-0)))))
+  (label 138)
+  (parent 97)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (y-0 l-1 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 3) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))))
+  (label 139)
+  (parent 97)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x l rndx)
+    (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l) (mul x (rec l) w)))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((3 2) (4 0)) ((4 1) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-0) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l) (mul x (rec l) w)))
+      (send (cat (exp (gen) l) (mul x (rec l) w))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 140)
+  (parent 99)
+  (unrealized (4 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l x l-0 rndx) (w expt)
+    (l-1 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) (mul x (rec l-0) w)))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-1) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-0) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (mul x (rec l-0) w)))
+      (send (cat (exp (gen) l-0) (mul x (rec l-0) w))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-0)))
+      (send
+        (sig (body self-0 (exp (gen) l-0) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 141)
+  (parent 101)
+  (unrealized (4 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 3) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) y-0))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) y-0))
+      (send (cat (exp (gen) (mul (rec x) y)) y-0))))
+  (label 142)
+  (parent 102)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 3) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y-0)) y))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y-0)) y))
+      (send (cat (exp (gen) (mul (rec x) y-0)) y))))
+  (label 143)
+  (parent 102)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul y y-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 3) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y y-0)) x))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul y y-0)) x))
+      (send (cat (exp (gen) (mul y y-0)) x))))
+  (label 144)
+  (parent 102)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (5 0)) ((4 2) (3 0))
+    ((5 3) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) y-0))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) y-0))
+      (send (cat (exp (gen) (mul (rec x) y)) y-0))))
+  (label 145)
+  (parent 103)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (5 0)) ((4 2) (3 0))
+    ((5 3) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y-0)) y))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y-0)) y))
+      (send (cat (exp (gen) (mul (rec x) y-0)) y))))
+  (label 146)
+  (parent 103)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul y y-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (5 0)) ((4 2) (3 0))
+    ((5 3) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y y-0)) x))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul y y-0)) x))
+      (send (cat (exp (gen) (mul y y-0)) x))))
+  (label 147)
+  (parent 103)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 3) (2 2))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) y-0))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) y-0))
+      (send (cat (exp (gen) (mul (rec x) y)) y-0))))
+  (label 148)
+  (parent 104)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 3) (2 2))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y-0)) y))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) y-0)) y))
+      (send (cat (exp (gen) (mul (rec x) y-0)) y))))
+  (label 149)
+  (parent 104)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul y y-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 3) (2 2))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y y-0)) x))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1))))
+    ((recv (cat (exp (gen) (mul y y-0)) x))
+      (send (cat (exp (gen) (mul y y-0)) x))))
+  (label 150)
+  (parent 104)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 2) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) x-0))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) x-0))
+      (send (cat (exp (gen) (mul (rec x) y)) x-0))))
+  (label 151)
+  (parent 105)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) x-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 2) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) x-0)) y))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) x-0)) y))
+      (send (cat (exp (gen) (mul (rec x) x-0)) y))))
+  (label 152)
+  (parent 105)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul y x-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 2) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y x-0)) x))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul y x-0)) x))
+      (send (cat (exp (gen) (mul y x-0)) x))))
+  (label 153)
+  (parent 105)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (5 0)) ((4 2) (3 0))
+    ((5 2) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) x-0))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) x-0))
+      (send (cat (exp (gen) (mul (rec x) y)) x-0))))
+  (label 154)
+  (parent 106)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) x-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (5 0)) ((4 2) (3 0))
+    ((5 2) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) x-0)) y))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) x-0)) y))
+      (send (cat (exp (gen) (mul (rec x) x-0)) y))))
+  (label 155)
+  (parent 106)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul y x-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (5 0)) ((4 2) (3 0))
+    ((5 2) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y x-0)) x))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul y x-0)) x))
+      (send (cat (exp (gen) (mul y x-0)) x))))
+  (label 156)
+  (parent 106)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 2) (2 2))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) x-0))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) x-0))
+      (send (cat (exp (gen) (mul (rec x) y)) x-0))))
+  (label 157)
+  (parent 107)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) x-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 2) (2 2))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) x-0)) y))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) x-0)) y))
+      (send (cat (exp (gen) (mul (rec x) x-0)) y))))
+  (label 158)
+  (parent 107)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul y x-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 2) (2 2))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y x-0)) x))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1))))
+    ((recv (cat (exp (gen) (mul y x-0)) x))
+      (send (cat (exp (gen) (mul y x-0)) x))))
+  (label 159)
+  (parent 107)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-1))
+  (defstrand ltx-disclose 3 (self self-0) (priv-stor priv-stor-1)
+    (l l-1))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (7 0))
+    ((5 2) (2 2)) ((6 1) (0 3)) ((7 2) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv self-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((5 1) (7 0)))
+  (rule gen-st-ltx-disclose-0 trRl_ltx-disclose-at-0
+    trRl_ltx-disclose-at-1 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-disclose 3) l-1 (6 0)
+    (ch-msg priv-stor-1 (cat pt-4 (pv self-0 l-1))))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-1))
+      (send (cat (exp (gen) (mul (rec x) y)) l-1)))
+    ((load priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (stor priv-stor-1 (cat pt-5 "nil")) (send l-1)))
+  (label 160)
+  (parent 114)
+  (unrealized (6 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 7 1 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0)))))
+  (label 161)
+  (parent 117)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 7 4 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0)))))
+  (label 162)
+  (parent 117)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1)))))
+  (label 163)
+  (parent 117)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l x l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) x))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) x)) (send (cat (gen) x))))
+  (label 164)
+  (parent 119)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx) (w w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) w)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (gen) w))
+  (deflistener (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) w)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) w)) (send (cat (gen) w)))
+    ((recv (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))))
+  (label 165)
+  (parent 119)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l x l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) (mul x (rec l-0))))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (mul x (rec l-0))))
+      (send (cat (exp (gen) l-0) (mul x (rec l-0))))))
+  (label 166)
+  (parent 120)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y l rndx)
+    (w expt) (l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) w))
+  (deflistener (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
+    ((recv (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))))
+  (label 167)
+  (parent 120)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 7 1 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 168)
+  (parent 121)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 7 4 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 169)
+  (parent 121)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 3) (5 0)) ((7 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1)))))
+  (label 170)
+  (parent 121)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x l l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l) (mul x (rec l))))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((4 2) (5 0))
+    ((5 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l) (mul x (rec l))))
+      (send (cat (exp (gen) l) (mul x (rec l))))))
+  (label 171)
+  (parent 122)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y l rndx)
+    (w expt) (l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w l-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) w))
+  (deflistener (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((4 2) (5 0))
+    ((5 1) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
+    ((recv (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))))
+  (label 172)
+  (parent 122)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l x l-0 l-1 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) (mul x (rec l-0))))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-1) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (mul x (rec l-0))))
+      (send (cat (exp (gen) l-0) (mul x (rec l-0)))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-0)))
+      (send
+        (sig (body self-0 (exp (gen) l-0) (pubk "sig" self-0))
+          (privk "sig" self-0)))))
+  (label 173)
+  (parent 123)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (l-1 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w l-1))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w l-1))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-1) w))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y w l-1 (rec w-0))) w-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w l-1 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w l-1)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-1)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y w l-1 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w l-1 (rec w-0))) w-0))))
+  (label 174)
+  (parent 123)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l x x-0 rndx) (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l-0) (y l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-0) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 175)
+  (parent 127)
+  (unrealized (4 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l x x-0 rndx) (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l) (x x-0))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l) (y l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-0) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 176)
+  (parent 129)
+  (unrealized (4 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x x-0 rndx) (w expt)
+    (l-1 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l-0) (y l-1))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-1) (pv self l) (pv a l-0))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 2 resp 4) (exp (gen) y-0) (7 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-0))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 177)
+  (parent 131)
+  (unrealized (4 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 1 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-0)) (send (cat (gen) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))))
+  (label 178)
+  (parent 132)
+  (unrealized (0 3) (4 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (gen) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 3 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-0)) (send (cat (gen) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))))
+  (label 179)
+  (parent 132)
+  (unrealized (0 3) (4 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3))
+    ((6 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 180)
+  (parent 132)
+  (unrealized (0 3) (4 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l x rndx)
+    (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) (mul x w)))
+  (deflistener (cat (exp (gen) y) w))
+  (deflistener x)
+  (precedes ((0 2) (6 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3))
+    ((6 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul x w) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
+    ((recv x) (send x)))
+  (label 181)
+  (parent 132)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 1 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-0)) (send (cat (exp (gen) l-0) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-0)))))
+  (label 182)
+  (parent 133)
+  (unrealized (0 3) (4 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (w (mul (rec x) l-0)) (l-1 l-0)) (one) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))))
+  (label 183)
+  (parent 133)
+  (unrealized (0 3) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (y x l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul l l-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 3 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l l-0)))))
+  (label 184)
+  (parent 133)
+  (unrealized (0 3) (4 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l y x l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3))
+    ((6 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 185)
+  (parent 133)
+  (unrealized (0 3) (4 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l x y rndx) (w expt) (l-0 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y-0))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) w)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) y-0) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-1) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) w)))
+      (send (cat (exp (gen) y) (mul x (rec y) w))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y))))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w))))
+  (label 186)
+  (parent 135)
+  (unrealized (4 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l x y rndx) (w expt) (l-0 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y-0))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) w)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (exp (gen) y-0) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l) (y-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-1) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) w)))
+      (send (cat (exp (gen) y) (mul x (rec y) w))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a self (hash (exp ga l) (exp gx y))))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w))))
+  (label 187)
+  (parent 137)
+  (unrealized (4 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y rndx) (w expt)
+    (l-1 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul w y-0))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-1) (y y-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) w)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 3) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-1))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-1) (pv self l) (pv b-0 l-0))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 2 resp 4) (exp (gen) y-1) (7 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) w)))
+      (send (cat (exp (gen) y) (mul x (rec y) w))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-0) (exp gx y))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-0))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w))))
+  (label 188)
+  (parent 139)
+  (unrealized (4 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (y x l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((3 2) (4 0)) ((4 1) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 1 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l l-0)))))
+  (label 189)
+  (parent 140)
+  (unrealized (0 3) (4 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((3 2) (4 0)) ((4 1) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (l-1 l-0) (w (mul (rec x) l-0))) (one) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))))
+  (label 190)
+  (parent 140)
+  (unrealized (0 3) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul l-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((3 2) (4 0)) ((4 1) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 3 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-0)) (send (cat (exp (gen) l-0) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-0)))))
+  (label 191)
+  (parent 140)
+  (unrealized (0 3) (4 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l y x l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0 l-1))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul l-0 l-1))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((3 2) (4 0)) ((4 1) (2 2))
+    ((5 1) (0 3)) ((6 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 192)
+  (parent 140)
+  (unrealized (0 3) (4 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l y x l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) l-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-0 l-1))) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) l-1))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-1) (x l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-1) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 1 ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-0)))
+      (send
+        (sig (body self-0 (exp (gen) l-0) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-1)))))
+  (label 193)
+  (parent 141)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-1) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (l-2 l-1) (w (mul (rec x) l-1))) (one) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) (one)))
+      (send (cat (exp (gen) l-1) (one))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1)))))
+  (label 194)
+  (parent 141)
+  (unrealized (0 3) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l y x l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0 l-1))) (priv-stor priv-stor-0)
+    (l l-1) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-1))
+    (gx (exp (gen) (mul l-0 l-1))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-1))
+  (deflistener (cat (exp (gen) l-0) l-1))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l) (x l-1))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l) (pv self l-1))
+  (facts (neq self b) (undisclosed l-1) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 3 ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-1)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-1)))
+      (send
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-0)))
+      (send
+        (sig (body self-0 (exp (gen) l-0) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-1)))))
+  (label 195)
+  (parent 141)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-1 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-1) l-1))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1 l-1)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 5 ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-1 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) l-1)) (send (cat (exp (gen) l-1) l-1)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1 l-1)))))
+  (label 196)
+  (parent 141)
+  (unrealized (0 3) (4 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 ignore-2 mesg) (na nb data)
+    (b self self-0 self-1 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (priv-stor priv-stor-0 priv-stor-1 priv-stor-2 locn)
+    (l l-0 y x l-1 l-2 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1 l-2))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-1 l-2))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-1) l-2))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1 l-2)))
+  (defstrand ltx-gen 2 (ignore ignore-2) (self self-1)
+    (priv-stor priv-stor-2) (l l-2))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (0 3)) ((7 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1 l-2)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1 l-2))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-2)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-1 l-2))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-2)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1 l-2)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1 l-2))))
+    ((load priv-stor-2 (cat pt-5 ignore-2))
+      (stor priv-stor-2 (cat pt-6 (pv self-1 l-2)))))
+  (label 197)
+  (parent 141)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-1))
+  (defstrand ltx-disclose 3 (self self-0) (priv-stor priv-stor-1)
+    (l l-1))
+  (deflistener (cat (exp (gen) (rec x)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (7 0))
+    ((5 2) (2 2)) ((6 1) (0 3)) ((7 2) (6 0)) ((8 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv self-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((5 1) (7 0)))
+  (rule trRl_ltx-disclose-at-0 trRl_ltx-disclose-at-1 trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (rec x)) y))
+    (exp (gen) (mul (rec x) y)) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-1))
+      (send (cat (exp (gen) (mul (rec x) y)) l-1)))
+    ((load priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (stor priv-stor-1 (cat pt-5 "nil")) (send l-1))
+    ((recv (cat (exp (gen) (rec x)) y))
+      (send (cat (exp (gen) (rec x)) y))))
+  (label 198)
+  (parent 160)
+  (unrealized (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-1))
+  (defstrand ltx-disclose 3 (self self-0) (priv-stor priv-stor-1)
+    (l l-1))
+  (deflistener (cat (exp (gen) y) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (7 0))
+    ((5 2) (2 2)) ((6 1) (0 3)) ((7 2) (6 0)) ((8 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv self-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((5 1) (7 0)))
+  (rule trRl_ltx-disclose-at-0 trRl_ltx-disclose-at-1 trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) y) x))
+    (exp (gen) (mul (rec x) y)) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-1))
+      (send (cat (exp (gen) (mul (rec x) y)) l-1)))
+    ((load priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (stor priv-stor-1 (cat pt-5 "nil")) (send l-1))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
+  (label 199)
+  (parent 160)
+  (unrealized (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l x x-0 l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l-0) (y l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0)))))
+  (label 200)
+  (parent 161)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (x-0 l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))))
+  (label 201)
+  (parent 161)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l x x-0 l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l) (x x-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l) (y l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0)))))
+  (label 202)
+  (parent 162)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (x-0 l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))))
+  (label 203)
+  (parent 162)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x x-0 l-1 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l-0) (y l-1))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-1) (pv self l) (pv a l-0))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-0)))))
+  (label 204)
+  (parent 163)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (x-0 l-1 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))))
+  (label 205)
+  (parent 163)
+  (unrealized (8 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l x rndx)
+    (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) (mul x w)))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-0) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 206)
+  (parent 165)
+  (unrealized (5 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l x rndx)
+    (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) (mul x w (rec l-0))))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-0) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (mul x w (rec l-0))))
+      (send (cat (exp (gen) l-0) (mul x w (rec l-0)))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 207)
+  (parent 167)
+  (unrealized (5 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l x y l-0 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y-0)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y))))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-1) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y))))
+      (send (cat (exp (gen) y) (mul x (rec y)))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y)))))))
+  (label 208)
+  (parent 168)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (y-0 l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))))
+  (label 209)
+  (parent 168)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l x y l-0 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y-0)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y))))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l) (y y))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l) (y-0 l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-1) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y))))
+      (send (cat (exp (gen) y) (mul x (rec y)))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a self (hash (exp ga l) (exp gx y)))))))
+  (label 210)
+  (parent 169)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (y-0 l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))))
+  (label 211)
+  (parent 169)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y l-1 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) y-0)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-1) (y y-0))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y))))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 3) (5 0)) ((7 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-1))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-1) (pv self l) (pv b-0 l-0))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 2 resp 4) (exp (gen) y-1) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y))))
+      (send (cat (exp (gen) y) (mul x (rec y)))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-0) (exp gx y))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-0)))))
+  (label 212)
+  (parent 170)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (y-0 l-1 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 3) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))))
+  (label 213)
+  (parent 170)
+  (unrealized (8 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x l rndx)
+    (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l) (mul x (rec l) w)))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((4 2) (5 0))
+    ((5 1) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-0) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l) (mul x (rec l) w)))
+      (send (cat (exp (gen) l) (mul x (rec l) w))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 214)
+  (parent 172)
+  (unrealized (5 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l x l-0 rndx) (w expt)
+    (l-1 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) (mul x (rec l-0) w)))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-1) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 2 resp 4) (exp (gen) y-0) (7 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (mul x (rec l-0) w)))
+      (send (cat (exp (gen) l-0) (mul x (rec l-0) w))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-0)))
+      (send
+        (sig (body self-0 (exp (gen) l-0) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 215)
+  (parent 174)
+  (unrealized (5 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l y x x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-0))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 1 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-0)) (send (cat (exp (gen) x-0) l-0)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-0)))))
+  (label 216)
+  (parent 175)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l l-0 y x x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (one)))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (one)))
+      (send (cat (exp (gen) x-0) (one))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0)))))
+  (label 217)
+  (parent 175)
+  (unrealized (0 3) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l y x x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) x-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul x-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) l-0))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l) (x l-0) (x-0 l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 3 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-0)) (send (cat (exp (gen) x-0) l-0)))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-0)))))
+  (label 218)
+  (parent 175)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self b-0 self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (gb base) (priv-stor priv-stor-0 priv-stor-1 locn)
+    (l l-0 y x x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-1))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-1)) (send (cat (exp (gen) x-0) l-1)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 219)
+  (parent 175)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l y x x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 1 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-0)) (send (cat (exp (gen) x-0) l-0)))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-0)))))
+  (label 220)
+  (parent 176)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l l-0 y x x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (one)))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (one)))
+      (send (cat (exp (gen) x-0) (one))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0)))))
+  (label 221)
+  (parent 176)
+  (unrealized (0 3) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l y x x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) x-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul x-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l) (x l-0) (x-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 3 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-0)) (send (cat (exp (gen) x-0) l-0)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-0)))))
+  (label 222)
+  (parent 176)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self b-0 self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (gb base) (priv-stor priv-stor-0 priv-stor-1 locn)
+    (l l-0 y x x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-1))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-1)) (send (cat (exp (gen) x-0) l-1)))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 223)
+  (parent 176)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) x-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-1))) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-1))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-1) (x l) (x-0 l-0))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-1) (pv self l) (pv a l-0))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 1 ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-1)) (send (cat (exp (gen) x-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-1)))))
+  (label 224)
+  (parent 177)
+  (unrealized (0 3) (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 l-1 y x x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (one)))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-1) (x l) (x-0 l-0))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-1) (pv self l) (pv a l-0))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (one)))
+      (send (cat (exp (gen) x-0) (one))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0)))))
+  (label 225)
+  (parent 177)
+  (unrealized (0 3) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-1))) (priv-stor priv-stor-0)
+    (l l-1) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-1))
+    (gx (exp (gen) (mul x-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-1))
+  (deflistener (cat (exp (gen) x-0) l-1))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l-1) (x-0 l))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-0) (pv self l-1) (pv a l))
+  (facts (neq self b) (undisclosed l-1) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 3 ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-1)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l-0 l-1))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l-0 l-1))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-1)))
+      (send
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-1)) (send (cat (exp (gen) x-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv a l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-1)))))
+  (label 226)
+  (parent 177)
+  (unrealized (0 3) (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-1))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l-1))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-0) (pv self l) (pv a l-1))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 6 ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-1)) (send (cat (exp (gen) x-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-1)))))
+  (label 227)
+  (parent 177)
+  (unrealized (0 3) (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 ignore-2 mesg) (na nb na-0 data)
+    (b self a b-0 self-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 priv-stor-2 locn)
+    (l l-0 l-1 y x x-0 l-2 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) x-0 l-2))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-2))) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-2))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-2)))
+  (defstrand ltx-gen 2 (ignore ignore-2) (self self-0)
+    (priv-stor priv-stor-2) (l l-2))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)) ((8 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1 l-2)
+  (uniq-gen y x x-0)
+  (absent (y l-1) (x l) (x-0 l-0))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-1) (pv self l) (pv a l-0))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-2))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y x-0 l-2)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-2))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y x-0 l-2)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-2)) (send (cat (exp (gen) x-0) l-2)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-2)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-2))))
+    ((load priv-stor-2 (cat pt-5 ignore-2))
+      (stor priv-stor-2 (cat pt-6 (pv self-0 l-2)))))
+  (label 228)
+  (parent 177)
+  (unrealized (0 3) (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (deflistener x)
+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 1) (0 3)) ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-0) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-0)) (send (cat (gen) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))) ((recv x) (send x)))
+  (label 229)
+  (parent 178)
+  (unrealized (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (gen) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (deflistener x)
+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 1) (0 3)) ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-0) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-0)) (send (cat (gen) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))) ((recv x) (send x)))
+  (label 230)
+  (parent 179)
+  (unrealized (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener x)
+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 1) (0 3)) ((6 1) (4 0)) ((7 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-1) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1))))
+    ((recv x) (send x)))
+  (label 231)
+  (parent 180)
+  (unrealized (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+  (deflistener x)
+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 1) (0 3)) ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-0 l-0) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-0)) (send (cat (exp (gen) l-0) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-0))))
+    ((recv x) (send x)))
+  (label 232)
+  (parent 182)
+  (unrealized (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l y x y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 1 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-0)) (send (cat (exp (gen) y-0) l-0)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-0)))))
+  (label 233)
+  (parent 186)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l l-0 y x y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) (one)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (y-1 y-0) (w (mul (rec x) y-0))) (one) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) (one)))
+      (send (cat (exp (gen) y-0) (one))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0)))))
+  (label 234)
+  (parent 186)
+  (unrealized (0 3) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l y x y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) y-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul y-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l) (x l-0) (y-0 l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 3 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-0)) (send (cat (exp (gen) y-0) l-0)))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-0)))))
+  (label 235)
+  (parent 186)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (ga gx base) (priv-stor priv-stor-0 priv-stor-1 locn)
+    (l l-0 y x y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-1))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)) ((7 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-1)) (send (cat (exp (gen) y-0) l-1)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 236)
+  (parent 186)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l y x y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 1 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-0)) (send (cat (exp (gen) y-0) l-0)))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-0)))))
+  (label 237)
+  (parent 187)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l l-0 y x y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) (one)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (y-1 y-0) (w (mul (rec x) y-0))) (one) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) (one)))
+      (send (cat (exp (gen) y-0) (one))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0)))))
+  (label 238)
+  (parent 187)
+  (unrealized (0 3) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l y x y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) y-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul y-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l) (x l-0) (y-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 3 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-0)) (send (cat (exp (gen) y-0) l-0)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-0)))))
+  (label 239)
+  (parent 187)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (ga gx base) (priv-stor priv-stor-0 priv-stor-1 locn)
+    (l l-0 y x y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-1))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)) ((7 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-1)) (send (cat (exp (gen) y-0) l-1)))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 240)
+  (parent 187)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) y-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-1))) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-1))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 3) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-1) (x l) (y-0 l-0))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-1) (pv self l) (pv b-0 l-0))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 1 ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-1)) (send (cat (exp (gen) y-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-0) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-1)))))
+  (label 241)
+  (parent 188)
+  (unrealized (0 3) (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 l-1 y x y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) (one)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 3) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-1) (x l) (y-0 l-0))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-1) (pv self l) (pv b-0 l-0))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (y-1 y-0) (w (mul (rec x) y-0))) (one) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) (one)))
+      (send (cat (exp (gen) y-0) (one))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-0) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0)))))
+  (label 242)
+  (parent 188)
+  (unrealized (0 3) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-1))) (priv-stor priv-stor-0)
+    (l l-1) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-1))
+    (gx (exp (gen) (mul y-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-1))
+  (deflistener (cat (exp (gen) y-0) l-1))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 3) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l-1) (y-0 l))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-0) (pv self l-1) (pv b-0 l))
+  (facts (neq self b) (undisclosed l-1) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 3 ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-1)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l-0 l-1))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l-0 l-1))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-1)))
+      (send
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-1)) (send (cat (exp (gen) y-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-1)))))
+  (label 243)
+  (parent 188)
+  (unrealized (0 3) (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-1))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 3) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l-1))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-0) (pv self l) (pv b-0 l-1))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 6 ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-1)) (send (cat (exp (gen) y-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-1)))))
+  (label 244)
+  (parent 188)
+  (unrealized (0 3) (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 ignore-2 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 self-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 priv-stor-2 locn)
+    (l l-0 l-1 y x y-0 l-2 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) y-0 l-2))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-2))) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-2))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-2)))
+  (defstrand ltx-gen 2 (ignore ignore-2) (self self-0)
+    (priv-stor priv-stor-2) (l l-2))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 3) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)) ((8 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1 l-2)
+  (uniq-gen y x y-0)
+  (absent (y l-1) (x l) (y-0 l-0))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-1) (pv self l) (pv b-0 l-0))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-2))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y y-0 l-2)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-2))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y y-0 l-2)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-2)) (send (cat (exp (gen) y-0) l-2)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-0) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-2)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-2))))
+    ((load priv-stor-2 (cat pt-5 ignore-2))
+      (stor priv-stor-2 (cat pt-6 (pv self-0 l-2)))))
+  (label 245)
+  (parent 188)
+  (unrealized (0 3) (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul l-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+  (deflistener x)
+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((3 2) (4 0))
+    ((4 1) (2 2)) ((5 1) (0 3)) ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-0 l-0) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-0)) (send (cat (exp (gen) l-0) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-0))))
+    ((recv x) (send x)))
+  (label 246)
+  (parent 191)
+  (unrealized (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-1 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-1) l-1))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1 l-1)))
+  (deflistener x)
+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-1 l-1) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-1 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) l-1)) (send (cat (exp (gen) l-1) l-1)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1 l-1))))
+    ((recv x) (send x)))
+  (label 247)
+  (parent 196)
+  (unrealized (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l x x-0 rndx) (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l-0) (y l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 2 resp 4) (exp (gen) y-0) (7 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 248)
+  (parent 201)
+  (unrealized (5 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l x x-0 rndx) (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l) (x x-0))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l) (y l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 2 resp 4) (exp (gen) y-0) (7 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 249)
+  (parent 203)
+  (unrealized (5 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x x-0 rndx) (w expt)
+    (l-1 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l-0) (y l-1))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-1) (pv self l) (pv a l-0))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 9 2 resp 4) (exp (gen) y-0) (8 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-0))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 250)
+  (parent 205)
+  (unrealized (5 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 1 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-0)) (send (cat (gen) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))))
+  (label 251)
+  (parent 206)
+  (unrealized (0 3) (5 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (gen) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 4 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-0)) (send (cat (gen) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))))
+  (label 252)
+  (parent 206)
+  (unrealized (0 3) (5 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)) ((7 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 253)
+  (parent 206)
+  (unrealized (0 3) (5 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l x rndx)
+    (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) (mul x w)))
+  (deflistener (cat (exp (gen) y) w))
+  (deflistener x)
+  (precedes ((0 2) (7 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)) ((7 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul x w) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
+    ((recv x) (send x)))
+  (label 254)
+  (parent 206)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 1 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-0)) (send (cat (exp (gen) l-0) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-0)))))
+  (label 255)
+  (parent 207)
+  (unrealized (0 3) (5 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (w (mul (rec x) l-0)) (l-1 l-0)) (one) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))))
+  (label 256)
+  (parent 207)
+  (unrealized (0 3) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (y x l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul l l-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 4 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l l-0)))))
+  (label 257)
+  (parent 207)
+  (unrealized (0 3) (5 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l y x l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)) ((7 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 258)
+  (parent 207)
+  (unrealized (0 3) (5 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l x y rndx) (w expt) (l-0 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y-0))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) w)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) y-0) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 2 resp 4) (exp (gen) y-1) (7 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) w)))
+      (send (cat (exp (gen) y) (mul x (rec y) w))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y))))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w))))
+  (label 259)
+  (parent 209)
+  (unrealized (5 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l x y rndx) (w expt) (l-0 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y-0))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) w)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (exp (gen) y-0) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l) (y-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 2 resp 4) (exp (gen) y-1) (7 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) w)))
+      (send (cat (exp (gen) y) (mul x (rec y) w))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a self (hash (exp ga l) (exp gx y))))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w))))
+  (label 260)
+  (parent 211)
+  (unrealized (5 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y rndx) (w expt)
+    (l-1 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul w y-0))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-1) (y y-0))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) w)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 3) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-1))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-1) (pv self l) (pv b-0 l-0))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 9 2 resp 4) (exp (gen) y-1) (8 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) w)))
+      (send (cat (exp (gen) y) (mul x (rec y) w))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-0) (exp gx y))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-0))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w))))
+  (label 261)
+  (parent 213)
+  (unrealized (5 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (y x l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((4 2) (5 0))
+    ((5 1) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 1 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l l-0)))))
+  (label 262)
+  (parent 214)
+  (unrealized (0 3) (5 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((4 2) (5 0))
+    ((5 1) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (l-1 l-0) (w (mul (rec x) l-0))) (one) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))))
+  (label 263)
+  (parent 214)
+  (unrealized (0 3) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul l-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((4 2) (5 0))
+    ((5 1) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 4 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-0)) (send (cat (exp (gen) l-0) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-0)))))
+  (label 264)
+  (parent 214)
+  (unrealized (0 3) (5 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l y x l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0 l-1))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul l-0 l-1))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((4 2) (5 0))
+    ((5 1) (2 2)) ((6 1) (0 3)) ((7 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 265)
+  (parent 214)
+  (unrealized (0 3) (5 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l y x l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) l-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-0 l-1))) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) l-1))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-1) (x l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-1) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 1 ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-0)))
+      (send
+        (sig (body self-0 (exp (gen) l-0) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-1)))))
+  (label 266)
+  (parent 215)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-1) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (l-2 l-1) (w (mul (rec x) l-1))) (one) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) (one)))
+      (send (cat (exp (gen) l-1) (one))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1)))))
+  (label 267)
+  (parent 215)
+  (unrealized (0 3) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l y x l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0 l-1))) (priv-stor priv-stor-0)
+    (l l-1) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-1))
+    (gx (exp (gen) (mul l-0 l-1))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-1) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-1))
+  (deflistener (cat (exp (gen) l-0) l-1))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l) (x l-1))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l) (pv self l-1))
+  (facts (neq self b) (undisclosed l-1) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 4 ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-1)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((recv (cat (exp (gen) l-1) (one)))
+      (send (cat (exp (gen) l-1) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-1)))
+      (send
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-0)))
+      (send
+        (sig (body self-0 (exp (gen) l-0) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-1)))))
+  (label 268)
+  (parent 215)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-1 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-1) l-1))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1 l-1)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 6 ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-1 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) l-1)) (send (cat (exp (gen) l-1) l-1)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1 l-1)))))
+  (label 269)
+  (parent 215)
+  (unrealized (0 3) (5 0) (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 ignore-2 mesg) (na nb data)
+    (b self self-0 self-1 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (priv-stor priv-stor-0 priv-stor-1 priv-stor-2 locn)
+    (l l-0 y x l-1 l-2 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1 l-2))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-1 l-2))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-1) l-2))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1 l-2)))
+  (defstrand ltx-gen 2 (ignore ignore-2) (self self-1)
+    (priv-stor priv-stor-2) (l l-2))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (0 3)) ((8 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1 l-2)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1 l-2))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-2)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-1 l-2))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-2)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1 l-2)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1 l-2))))
+    ((load priv-stor-2 (cat pt-5 ignore-2))
+      (stor priv-stor-2 (cat pt-6 (pv self-1 l-2)))))
+  (label 270)
+  (parent 215)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l y x x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-0))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 1 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-0)) (send (cat (exp (gen) x-0) l-0)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-0)))))
+  (label 271)
+  (parent 248)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l l-0 y x x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (one)))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (one)))
+      (send (cat (exp (gen) x-0) (one))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0)))))
+  (label 272)
+  (parent 248)
+  (unrealized (0 3) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l y x x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) x-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul x-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) l-0))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l) (x l-0) (x-0 l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 4 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-0)) (send (cat (exp (gen) x-0) l-0)))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-0)))))
+  (label 273)
+  (parent 248)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self b-0 self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (gb base) (priv-stor priv-stor-0 priv-stor-1 locn)
+    (l l-0 y x x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-1))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)) ((8 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-1)) (send (cat (exp (gen) x-0) l-1)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 274)
+  (parent 248)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l y x x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 1 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-0)) (send (cat (exp (gen) x-0) l-0)))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-0)))))
+  (label 275)
+  (parent 249)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l l-0 y x x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (one)))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (one)))
+      (send (cat (exp (gen) x-0) (one))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0)))))
+  (label 276)
+  (parent 249)
+  (unrealized (0 3) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l y x x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) x-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul x-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l) (x l-0) (x-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 4 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-0)) (send (cat (exp (gen) x-0) l-0)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-0)))))
+  (label 277)
+  (parent 249)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self b-0 self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (gb base) (priv-stor priv-stor-0 priv-stor-1 locn)
+    (l l-0 y x x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-1))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)) ((8 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-1)) (send (cat (exp (gen) x-0) l-1)))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 278)
+  (parent 249)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) x-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-1))) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-1))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-1) (x l) (x-0 l-0))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-1) (pv self l) (pv a l-0))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 9 1 ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-1)) (send (cat (exp (gen) x-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-1)))))
+  (label 279)
+  (parent 250)
+  (unrealized (0 3) (5 0) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 l-1 y x x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (one)))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-1) (x l) (x-0 l-0))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-1) (pv self l) (pv a l-0))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (one)))
+      (send (cat (exp (gen) x-0) (one))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0)))))
+  (label 280)
+  (parent 250)
+  (unrealized (0 3) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-1))) (priv-stor priv-stor-0)
+    (l l-1) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-1))
+    (gx (exp (gen) (mul x-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l-1) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-1))
+  (deflistener (cat (exp (gen) x-0) l-1))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l-1) (x-0 l))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-0) (pv self l-1) (pv a l))
+  (facts (neq self b) (undisclosed l-1) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 9 4 ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-1)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l-0 l-1))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l-0 l-1))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((recv (cat (exp (gen) l-1) (one)))
+      (send (cat (exp (gen) l-1) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-1)))
+      (send
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-1)) (send (cat (exp (gen) x-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv a l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-1)))))
+  (label 281)
+  (parent 250)
+  (unrealized (0 3) (5 0) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-1))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l-1))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-0) (pv self l) (pv a l-1))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 9 7 ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-1)) (send (cat (exp (gen) x-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-1)))))
+  (label 282)
+  (parent 250)
+  (unrealized (0 3) (5 0) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 ignore-2 mesg) (na nb na-0 data)
+    (b self a b-0 self-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 priv-stor-2 locn)
+    (l l-0 l-1 y x x-0 l-2 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) x-0 l-2))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-2))) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-2))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-2)))
+  (defstrand ltx-gen 2 (ignore ignore-2) (self self-0)
+    (priv-stor priv-stor-2) (l l-2))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)) ((9 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1 l-2)
+  (uniq-gen y x x-0)
+  (absent (y l-1) (x l) (x-0 l-0))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-1) (pv self l) (pv a l-0))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-2))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y x-0 l-2)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-2))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y x-0 l-2)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-2)) (send (cat (exp (gen) x-0) l-2)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-2)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-2))))
+    ((load priv-stor-2 (cat pt-5 ignore-2))
+      (stor priv-stor-2 (cat pt-6 (pv self-0 l-2)))))
+  (label 283)
+  (parent 250)
+  (unrealized (0 3) (5 0) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (deflistener x)
+  (precedes ((0 2) (5 0)) ((0 2) (7 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 1) (0 3)) ((7 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-0) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-0)) (send (cat (gen) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))) ((recv x) (send x)))
+  (label 284)
+  (parent 251)
+  (unrealized (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (gen) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (deflistener x)
+  (precedes ((0 2) (5 0)) ((0 2) (7 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 1) (0 3)) ((7 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-0) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-0)) (send (cat (gen) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))) ((recv x) (send x)))
+  (label 285)
+  (parent 252)
+  (unrealized (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener x)
+  (precedes ((0 2) (5 0)) ((0 2) (8 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 1) (0 3)) ((7 1) (5 0)) ((8 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-1) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1))))
+    ((recv x) (send x)))
+  (label 286)
+  (parent 253)
+  (unrealized (5 0) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+  (deflistener x)
+  (precedes ((0 2) (5 0)) ((0 2) (7 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 1) (0 3)) ((7 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-0 l-0) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-0)) (send (cat (exp (gen) l-0) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-0))))
+    ((recv x) (send x)))
+  (label 287)
+  (parent 255)
+  (unrealized (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l y x y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 1 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-0)) (send (cat (exp (gen) y-0) l-0)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-0)))))
+  (label 288)
+  (parent 259)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l l-0 y x y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) (one)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (y-1 y-0) (w (mul (rec x) y-0))) (one) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) (one)))
+      (send (cat (exp (gen) y-0) (one))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0)))))
+  (label 289)
+  (parent 259)
+  (unrealized (0 3) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l y x y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) y-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul y-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l) (x l-0) (y-0 l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 4 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-0)) (send (cat (exp (gen) y-0) l-0)))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-0)))))
+  (label 290)
+  (parent 259)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (ga gx base) (priv-stor priv-stor-0 priv-stor-1 locn)
+    (l l-0 y x y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-1))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)) ((8 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-1)) (send (cat (exp (gen) y-0) l-1)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 291)
+  (parent 259)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l y x y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 1 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-0)) (send (cat (exp (gen) y-0) l-0)))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-0)))))
+  (label 292)
+  (parent 260)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l l-0 y x y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) (one)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (y-1 y-0) (w (mul (rec x) y-0))) (one) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) (one)))
+      (send (cat (exp (gen) y-0) (one))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0)))))
+  (label 293)
+  (parent 260)
+  (unrealized (0 3) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l y x y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) y-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul y-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l) (x l-0) (y-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 4 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-0)) (send (cat (exp (gen) y-0) l-0)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-0)))))
+  (label 294)
+  (parent 260)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (ga gx base) (priv-stor priv-stor-0 priv-stor-1 locn)
+    (l l-0 y x y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-1))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)) ((8 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-1)) (send (cat (exp (gen) y-0) l-1)))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 295)
+  (parent 260)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) y-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-1))) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-1))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 3) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-1) (x l) (y-0 l-0))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-1) (pv self l) (pv b-0 l-0))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 9 1 ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-1)) (send (cat (exp (gen) y-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-0) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-1)))))
+  (label 296)
+  (parent 261)
+  (unrealized (0 3) (5 0) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 l-1 y x y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) (one)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 3) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-1) (x l) (y-0 l-0))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-1) (pv self l) (pv b-0 l-0))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (y-1 y-0) (w (mul (rec x) y-0))) (one) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) (one)))
+      (send (cat (exp (gen) y-0) (one))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-0) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0)))))
+  (label 297)
+  (parent 261)
+  (unrealized (0 3) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-1))) (priv-stor priv-stor-0)
+    (l l-1) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-1))
+    (gx (exp (gen) (mul y-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l-1) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-1))
+  (deflistener (cat (exp (gen) y-0) l-1))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 3) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l-1) (y-0 l))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-0) (pv self l-1) (pv b-0 l))
+  (facts (neq self b) (undisclosed l-1) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 9 4 ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-1)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l-0 l-1))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l-0 l-1))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((recv (cat (exp (gen) l-1) (one)))
+      (send (cat (exp (gen) l-1) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-1)))
+      (send
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-1)) (send (cat (exp (gen) y-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-1)))))
+  (label 298)
+  (parent 261)
+  (unrealized (0 3) (5 0) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-1))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 3) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l-1))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-0) (pv self l) (pv b-0 l-1))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 9 7 ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-1)) (send (cat (exp (gen) y-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-1)))))
+  (label 299)
+  (parent 261)
+  (unrealized (0 3) (5 0) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 ignore-2 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 self-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 priv-stor-2 locn)
+    (l l-0 l-1 y x y-0 l-2 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) y-0 l-2))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-2))) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-2))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-2)))
+  (defstrand ltx-gen 2 (ignore ignore-2) (self self-0)
+    (priv-stor priv-stor-2) (l l-2))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 3) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)) ((9 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1 l-2)
+  (uniq-gen y x y-0)
+  (absent (y l-1) (x l) (y-0 l-0))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-1) (pv self l) (pv b-0 l-0))
+  (facts (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-2))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y y-0 l-2)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-2))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y y-0 l-2)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-2)) (send (cat (exp (gen) y-0) l-2)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-0) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-2)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-2))))
+    ((load priv-stor-2 (cat pt-5 ignore-2))
+      (stor priv-stor-2 (cat pt-6 (pv self-0 l-2)))))
+  (label 300)
+  (parent 261)
+  (unrealized (0 3) (5 0) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul l-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+  (deflistener x)
+  (precedes ((0 2) (5 0)) ((0 2) (7 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((4 2) (5 0)) ((5 1) (2 2)) ((6 1) (0 3)) ((7 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-0 l-0) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-0)) (send (cat (exp (gen) l-0) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-0))))
+    ((recv x) (send x)))
+  (label 301)
+  (parent 264)
+  (unrealized (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-1 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-1) l-1))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1 l-1)))
+  (deflistener x)
+  (precedes ((0 2) (5 0)) ((0 2) (8 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)) ((8 1) (7 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-1 l-1) (7 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-1 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) l-1)) (send (cat (exp (gen) l-1) l-1)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1 l-1))))
+    ((recv x) (send x)))
+  (label 302)
+  (parent 269)
+  (unrealized (5 0) (8 0))
   (dead)
   (comment "empty cohort"))
 
diff --git a/tst/dhcr_um3.scm b/tst/dhcr_um3.scm
--- a/tst/dhcr_um3.scm
+++ b/tst/dhcr_um3.scm
@@ -94,7 +94,7 @@
   (vars (ltxa ltxb x y rndx) (a b name))
   (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y))
   (defstrand ltx-gen 1 (l ltxb))
-  (deflistener (mul x y))
+  (deflistener (exp (gen) (mul x y)))
   (non-orig ltxb)
   (neq (a b)))
 
diff --git a/tst/dhcr_um3.tst b/tst/dhcr_um3.tst
--- a/tst/dhcr_um3.tst
+++ b/tst/dhcr_um3.tst
@@ -1,2325 +1,4387 @@
 (herald "DHCR: unified model (UM) three-part" (bound 20) (limit 8000)
   (algebra diffie-hellman))
 
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/dhcr_um3.scm")
-(comment "Step count limited to 8000")
-(comment "Strand count bounded at 20")
-
-(defprotocol dhcr-um3 diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul y x)))))) (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-      (y (exp (gen) x))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self self) (l ltxa))
-  (defstrand ltx-gen 1 (self self-0) (l ltxb))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((send (cat self (exp (gen) ltxa))))
-    ((send (cat self-0 (exp (gen) ltxb)))))
-  (label 0)
-  (unrealized (0 0) (0 2))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)) ((2 0) (0 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb)))))
-  (label 1)
-  (parent 0)
-  (unrealized (0 2))
-  (origs (na (0 1)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen y x ltxa ltxb)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-        (exp (gen) (mul y x)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-              (exp (gen) (mul y x)))))) (send nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-              (exp (gen) (mul y x))))))))
-  (label 2)
-  (parent 1)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1 2)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na)
-        (nb nb))))
-  (origs (nb (3 2)) (na (0 1))))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-        (exp (gen) (mul x y))))
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-        (exp (gen) (mul x y)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul x y))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul x y))))))
-  (label 3)
-  (parent 1)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))))
-  (deflistener
-    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))))
-  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2))
-    ((4 1) (3 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-        (exp (gen) (mul x y))))
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))) (3 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul x y))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul x y)))))
-    ((recv
-       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul x y))))
-      (send
-        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul x y))))))
-  (label 4)
-  (parent 3)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))))
-  (deflistener
-    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxb) x))
-  (precedes ((0 1) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
-    (exp (gen) (mul ltxb x)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul x y))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul x y)))))
-    ((recv
-       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul x y))))
-      (send
-        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
-  (label 5)
-  (parent 4)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol dhcr-um3 diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul y x)))))) (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-      (y (exp (gen) x))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self self) (l ltxb))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self ltxb) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((send (cat self (exp (gen) ltxb)))))
-  (label 6)
-  (unrealized (0 0) (0 2))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((send (cat b (exp (gen) ltxb)))))
-  (label 7)
-  (parent 6)
-  (unrealized (0 2))
-  (origs (na (0 1)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen y x ltxb)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-        (exp (gen) (mul y x)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-              (exp (gen) (mul y x)))))) (send nb))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-              (exp (gen) (mul y x))))))))
-  (label 8)
-  (parent 7)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na)
-        (nb nb))))
-  (origs (nb (2 2)) (na (0 1))))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (0 2)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-        (exp (gen) (mul x y))))
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-        (exp (gen) (mul x y)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul x y))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul x y))))))
-  (label 9)
-  (parent 7)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))))
-  (deflistener
-    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-        (exp (gen) (mul x y))))
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))) (2 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul x y))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul x y)))))
-    ((recv
-       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul x y))))
-      (send
-        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul x y))))))
-  (label 10)
-  (parent 9)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))))
-  (deflistener
-    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxb) x))
-  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
-    (exp (gen) (mul ltxb x)) (3 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul x y))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul x y)))))
-    ((recv
-       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul x y))))
-      (send
-        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
-  (label 11)
-  (parent 10)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol dhcr-um3 diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul y x)))))) (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-      (y (exp (gen) x))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b self name) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self self) (l ltxb))
-  (deflistener (mul x y))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self ltxb) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((send (cat self (exp (gen) ltxb))))
-    ((recv (mul x y)) (send (mul x y))))
-  (label 12)
-  (unrealized (0 0) (0 2) (2 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener (mul x y))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv (mul x y)) (send (mul x y))))
-  (label 13)
-  (parent 12)
-  (unrealized (0 2) (2 0))
-  (origs (na (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb x y rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener (mul x y))
-  (deflistener x)
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((3 1) (2 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation nonce-test (added-listener x) (mul x y) (2 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv (mul x y)) (send (mul x y))) ((recv x) (send x)))
-  (label 14)
-  (parent 13)
-  (unrealized (0 2) (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol dhcr-um3 diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul y x)))))) (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-      (y (exp (gen) x))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self self) (l ltxa))
-  (defstrand ltx-gen 1 (self self-0) (l ltxb))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul y x)))))) (recv nb))
-    ((send (cat self (exp (gen) ltxa))))
-    ((send (cat self-0 (exp (gen) ltxb)))))
-  (label 15)
-  (unrealized (0 0) (0 3))
-  (preskeleton)
-  (origs (nb (0 2)))
-  (comment "Not a skeleton"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)) ((2 0) (0 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul y x)))))) (recv nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb)))))
-  (label 16)
-  (parent 15)
-  (unrealized (0 3))
-  (origs (nb (0 2)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 1) (0 1)) ((3 3) (0 3)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))
-    (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) y) (gen)) (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen y x ltxa ltxb)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand init 4) nb (0 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-        (exp (gen) (mul y x)))))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-              (exp (gen) (mul y x)))))) (recv nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-              (exp (gen) (mul y x)))))) (send nb)))
-  (label 17)
-  (parent 16)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1 2)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)
-        (nb nb))))
-  (origs (na (3 1)) (nb (0 2))))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul y x))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-        (exp (gen) (mul y x)))) nb (0 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-        (exp (gen) (mul y x)))))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul y x)))))) (recv nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul y x))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul y x))))))
-  (label 18)
-  (parent 16)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul y x))))
-  (deflistener
-    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul y x))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-        (exp (gen) (mul y x))))
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul y x))) (3 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul y x)))))) (recv nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul y x))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul y x)))))
-    ((recv
-       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul y x))))
-      (send
-        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul y x))))))
-  (label 19)
-  (parent 18)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul y x))))
-  (deflistener
-    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul y x))))
-  (deflistener (cat (exp (gen) ltxa) y))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))
-    (exp (gen) (mul ltxa y)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul y x)))))) (recv nb))
-    ((send (cat a (exp (gen) ltxa)))) ((send (cat b (exp (gen) ltxb))))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul y x))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul y x)))))
-    ((recv
-       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul y x))))
-      (send
-        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul y x)))))
-    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))
-  (label 20)
-  (parent 19)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol dhcr-um3 diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul y x)))))) (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-      (y (exp (gen) x))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self self) (l ltxa))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul y x)))))) (recv nb))
-    ((send (cat self (exp (gen) ltxa)))))
-  (label 21)
-  (unrealized (0 0) (0 3))
-  (preskeleton)
-  (origs (nb (0 2)))
-  (comment "Not a skeleton"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (precedes ((1 0) (0 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul y x)))))) (recv nb))
-    ((send (cat a (exp (gen) ltxa)))))
-  (label 22)
-  (parent 21)
-  (unrealized (0 3))
-  (origs (nb (0 2)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((2 3) (0 3)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))
-    (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) y) (gen)) (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen y x ltxa)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand init 4) nb (0 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-        (exp (gen) (mul y x)))))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-              (exp (gen) (mul y x)))))) (recv nb))
-    ((send (cat a (exp (gen) ltxa))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-              (exp (gen) (mul y x)))))) (send nb)))
-  (label 23)
-  (parent 22)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)
-        (nb nb))))
-  (origs (na (2 1)) (nb (0 2))))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul y x))))
-  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-        (exp (gen) (mul y x)))) nb (0 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-        (exp (gen) (mul y x)))))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul y x)))))) (recv nb))
-    ((send (cat a (exp (gen) ltxa))))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul y x))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul y x))))))
-  (label 24)
-  (parent 22)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul y x))))
-  (deflistener
-    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul y x))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-        (exp (gen) (mul y x))))
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul y x))) (2 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul y x)))))) (recv nb))
-    ((send (cat a (exp (gen) ltxa))))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul y x))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul y x)))))
-    ((recv
-       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul y x))))
-      (send
-        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul y x))))))
-  (label 25)
-  (parent 24)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul y x))))
-  (deflistener
-    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul y x))))
-  (deflistener (cat (exp (gen) ltxa) y))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))
-    (exp (gen) (mul ltxa y)) (3 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul y x)))))) (recv nb))
-    ((send (cat a (exp (gen) ltxa))))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul y x))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul y x)))))
-    ((recv
-       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul y x))))
-      (send
-        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul y x)))))
-    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))
-  (label 26)
-  (parent 25)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol dhcr-um3 diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul y x)))))) (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-      (y (exp (gen) x))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self self) (l ltxa))
-  (defstrand ltx-gen 3 (self self-0) (l ltxb))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul x y))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul x y)))))
-    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 27)
-  (unrealized (0 0) (0 2) (1 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul x y))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 28)
-  (parent 27)
-  (unrealized (0 2) (1 0))
-  (origs (na (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-        (exp (gen) (mul x y))))
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))) (1 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul x y))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul x y))))
-      (send
-        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul x y))))))
-  (label 29)
-  (parent 28)
-  (unrealized (0 2) (4 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) ltxb) x))
-  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
-    (exp (gen) (mul ltxb x)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul x y))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul x y))))
-      (send
-        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
-  (label 30)
-  (parent 29)
-  (unrealized (0 2) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-      (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) x) ltxb))
-  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) x) ltxb))
-    (exp (gen) (mul ltxb x)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul x y))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-         (exp (gen) (mul x y))))
-      (send
-        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
-          (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb))))
-  (label 31)
-  (parent 29)
-  (unrealized (0 2) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y y))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-      (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-      (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) x) l))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((3 0) (0 0))
-    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation nonce-test (displaced 6 3 ltx-gen 3) l (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-         (exp (gen) (mul x y))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-          (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-         (exp (gen) (mul x y))))
-      (send
-        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-          (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l))))
-  (label 32)
-  (parent 31)
-  (unrealized (0 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener
-    (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-      (exp (gen) (mul y x))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-      (exp (gen) (mul y x))))
-  (deflistener (cat (exp (gen) x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y x ltxa ltxb)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-        (exp (gen) (mul y x)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-              (exp (gen) (mul y x)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-         (exp (gen) (mul y x))))
-      (send
-        (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-          (exp (gen) (mul y x)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-         (exp (gen) (mul y x))))
-      (send
-        (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-          (exp (gen) (mul y x)))))
-    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-              (exp (gen) (mul y x))))))))
-  (label 33)
-  (parent 32)
-  (unrealized (4 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y y))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-      (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-      (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) x) l))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-      (exp (gen) (mul x y))))
-  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (0 2)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-        (exp (gen) (mul x y))))
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-        (exp (gen) (mul x y)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-         (exp (gen) (mul x y))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-          (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-         (exp (gen) (mul x y))))
-      (send
-        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-          (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-         (exp (gen) (mul x y))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-          (exp (gen) (mul x y))))))
-  (label 34)
-  (parent 32)
-  (unrealized (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener
-    (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-      (exp (gen) (mul y x))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-      (exp (gen) (mul y x))))
-  (deflistener (cat (exp (gen) x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat (exp (gen) y) ltxa))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((6 2) (7 0))
-    ((7 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y x ltxa ltxb)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener (cat (exp (gen) y) ltxa))
-    (exp (gen) (mul y ltxa)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-              (exp (gen) (mul y x)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-         (exp (gen) (mul y x))))
-      (send
-        (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-          (exp (gen) (mul y x)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-         (exp (gen) (mul y x))))
-      (send
-        (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-          (exp (gen) (mul y x)))))
-    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-              (exp (gen) (mul y x)))))))
-    ((recv (cat (exp (gen) y) ltxa)) (send (cat (exp (gen) y) ltxa))))
-  (label 35)
-  (parent 33)
-  (unrealized (4 0) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener
-    (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-      (exp (gen) (mul y x))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-      (exp (gen) (mul y x))))
-  (deflistener (cat (exp (gen) x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat (exp (gen) ltxa) y))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((6 2) (7 0))
-    ((7 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y x ltxa ltxb)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))
-    (exp (gen) (mul y ltxa)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-              (exp (gen) (mul y x)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-         (exp (gen) (mul y x))))
-      (send
-        (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-          (exp (gen) (mul y x)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-         (exp (gen) (mul y x))))
-      (send
-        (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-          (exp (gen) (mul y x)))))
-    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
-              (exp (gen) (mul y x)))))))
-    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))
-  (label 36)
-  (parent 33)
-  (unrealized (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y y))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-      (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-      (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) x) l))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-      (exp (gen) (mul x y))))
-  (deflistener
-    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-      (exp (gen) (mul x y))))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (0 2)) ((7 1) (6 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-        (exp (gen) (mul x y))))
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-      (exp (gen) (mul x y))) (6 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-         (exp (gen) (mul x y))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-          (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-         (exp (gen) (mul x y))))
-      (send
-        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-          (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-         (exp (gen) (mul x y))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-          (exp (gen) (mul x y)))))
-    ((recv
-       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-         (exp (gen) (mul x y))))
-      (send
-        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-          (exp (gen) (mul x y))))))
-  (label 37)
-  (parent 34)
-  (unrealized (7 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (y x ltxb l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener
-    (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-      (exp (gen) (mul y x))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-      (exp (gen) (mul y x))))
-  (deflistener (cat (exp (gen) x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat (exp (gen) y) l))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (7 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2))
-    ((7 1) (4 0)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y x ltxb l)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 8 2 ltx-gen 3) l (7 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-              (exp (gen) (mul y x)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-         (exp (gen) (mul y x))))
-      (send
-        (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-          (exp (gen) (mul y x)))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-         (exp (gen) (mul y x))))
-      (send
-        (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-          (exp (gen) (mul y x)))))
-    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-              (exp (gen) (mul y x)))))))
-    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l))))
-  (label 38)
-  (parent 35)
-  (unrealized (4 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y y))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-      (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-      (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) x) l))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-      (exp (gen) (mul x y))))
-  (deflistener
-    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-      (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) x) l))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (0 2)) ((7 1) (6 0)) ((8 1) (7 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) x) l))
-    (exp (gen) (mul x l)) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-         (exp (gen) (mul x y))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-          (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-         (exp (gen) (mul x y))))
-      (send
-        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-          (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-         (exp (gen) (mul x y))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-          (exp (gen) (mul x y)))))
-    ((recv
-       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-         (exp (gen) (mul x y))))
-      (send
-        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-          (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l))))
-  (label 39)
-  (parent 37)
-  (unrealized (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y y))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-      (exp (gen) (mul x y))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-      (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) x) l))
-  (deflistener
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-      (exp (gen) (mul x y))))
-  (deflistener
-    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-      (exp (gen) (mul x y))))
-  (deflistener (cat (exp (gen) l) x))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (0 2)) ((7 1) (6 0)) ((8 1) (7 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) l) x))
-    (exp (gen) (mul x l)) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-              (exp (gen) (mul x y)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-         (exp (gen) (mul x y))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-          (exp (gen) (mul x y)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-         (exp (gen) (mul x y))))
-      (send
-        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-          (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
-    ((recv
-       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-         (exp (gen) (mul x y))))
-      (send
-        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-          (exp (gen) (mul x y)))))
-    ((recv
-       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-         (exp (gen) (mul x y))))
-      (send
-        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
-          (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) l) x)) (send (cat (exp (gen) l) x))))
-  (label 40)
-  (parent 37)
-  (unrealized (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (y x ltxb l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener
-    (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-      (exp (gen) (mul y x))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-      (exp (gen) (mul y x))))
-  (deflistener (cat (exp (gen) x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat (exp (gen) y) l))
-  (deflistener (cat (exp (gen) y) x))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (7 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2))
-    ((6 2) (8 0)) ((7 1) (4 0)) ((8 1) (4 0)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y x ltxb l)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener (cat (exp (gen) y) x))
-    (exp (gen) (mul y x)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-              (exp (gen) (mul y x)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-         (exp (gen) (mul y x))))
-      (send
-        (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-          (exp (gen) (mul y x)))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-         (exp (gen) (mul y x))))
-      (send
-        (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-          (exp (gen) (mul y x)))))
-    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-              (exp (gen) (mul y x)))))))
-    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l)))
-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
-  (label 41)
-  (parent 38)
-  (unrealized (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-um3
-  (vars (na nb data) (a b name) (y x ltxb l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener
-    (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-      (exp (gen) (mul y x))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-      (exp (gen) (mul y x))))
-  (deflistener (cat (exp (gen) x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat (exp (gen) y) l))
-  (deflistener (cat (exp (gen) x) y))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (7 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2))
-    ((6 2) (8 0)) ((7 1) (4 0)) ((8 1) (4 0)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y x ltxb l)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener (cat (exp (gen) x) y))
-    (exp (gen) (mul y x)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-              (exp (gen) (mul y x)))))) (send nb))
-    ((recv
-       (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-         (exp (gen) (mul y x))))
-      (send
-        (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-          (exp (gen) (mul y x)))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-         (exp (gen) (mul y x))))
-      (send
-        (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-          (exp (gen) (mul y x)))))
-    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
-              (exp (gen) (mul y x)))))))
-    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l)))
-    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
-  (label 42)
-  (parent 38)
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/dhcr_um3.scm")
+(comment "Step count limited to 8000")
+(comment "Strand count bounded at 20")
+
+(defprotocol dhcr-um3 diffie-hellman
+  (defrole init
+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    (uniq-orig na)
+    (uniq-gen x)
+    (absent (x ltxa) (x ltxb))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) y) (gen))))
+  (defrole resp
+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul y x)))))) (recv nb))
+    (uniq-orig nb)
+    (uniq-gen y)
+    (absent (y ltxa) (y ltxb) (y x))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) x) (gen))))
+  (defrole ltx-gen
+    (vars (self name) (l rndx))
+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    (uniq-gen l)
+    (fn-of ("principal-of" (l self)) ("ltx-of" (self l))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (non-orig ltxa ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxa ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb)))))
+  (label 0)
+  (unrealized (0 0) (0 2))
+  (preskeleton)
+  (origs (na (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (precedes ((1 0) (0 0)) ((2 0) (0 0)))
+  (non-orig ltxa ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxa ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 2))
+  (origs (na (0 1)))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (precedes ((1 0) (0 0)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen x ltxb)
+  (absent (x ltxb))
+  (operation collapsed 2 1)
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb)))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (y x ltxa ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
+    ((2 0) (3 0)) ((3 2) (0 2)))
+  (non-orig ltxa ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxa ltxb)
+  (absent (y x) (y ltxa) (y ltxb) (x ltxa) (x ltxb))
+  (operation encryption-test (added-strand resp 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+        (exp (gen) (mul y x)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (send nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x))))))))
+  (label 3)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 2)
+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na) (nb nb)
+        (self self) (self-0 self-0))))
+  (origs (nb (3 2)) (na (0 1))))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (y x ltxb ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb) (x x) (y (mul y ltxb (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxb-0))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxb)
+    (ltxb ltxb-0) (y y) (x (mul x ltxb (rec ltxb-0))))
+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
+    ((2 0) (3 0)) ((3 2) (0 2)))
+  (non-orig ltxb ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb ltxb-0)
+  (absent (y (mul x ltxb (rec ltxb-0))) (y ltxb) (y ltxb-0) (x ltxb)
+    (x ltxb-0))
+  (operation encryption-test (added-strand resp 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+        (exp (gen) (mul y x ltxb (rec ltxb-0))))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y ltxb (rec ltxb-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x ltxb (rec ltxb-0))))))) (send nb))
+    ((send (cat self (exp (gen) ltxb-0))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul x ltxb (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x ltxb (rec ltxb-0)))))))))
+  (label 4)
+  (parent 1)
+  (unrealized (0 2) (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2)))
+  (non-orig ltxa ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxa ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation encryption-test
+    (added-listener
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+        (exp (gen) (mul x y))))
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+        (exp (gen) (mul x y)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y))))))
+  (label 5)
+  (parent 1)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y x ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (y y) (x x))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb)
+  (absent (y x) (y ltxb) (x ltxb))
+  (operation encryption-test (added-strand resp 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+        (exp (gen) (mul y x)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x))))))))
+  (label 6)
+  (parent 2)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 1)
+      ((ltxa ltxb) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na) (nb nb)
+        (self self) (self-0 self))))
+  (origs (nb (2 2)) (na (0 1))))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener
+    (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul x y))))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (0 2)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen x ltxb)
+  (absent (x ltxb))
+  (operation encryption-test
+    (added-listener
+      (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+        (exp (gen) (mul x y))))
+    (enc na nb a b
+      (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+        (exp (gen) (mul x y)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv
+       (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul x y))))))
+  (label 7)
+  (parent 2)
+  (unrealized (2 0))
+  (origs (na (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (y x ltxb ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb) (x x) (y (mul y ltxb (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxb-0))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxb)
+    (ltxb ltxb-0) (y y) (x (mul x ltxb (rec ltxb-0))))
+  (deflistener (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
+    ((2 0) (3 0)) ((3 2) (0 2)) ((4 1) (3 1)))
+  (non-orig ltxb ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb ltxb-0)
+  (absent (y (mul x ltxb (rec ltxb-0))) (y ltxb) (y ltxb-0) (x ltxb)
+    (x ltxb-0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+    (exp (gen) (mul x ltxb (rec ltxb-0))) (3 1))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y ltxb (rec ltxb-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x ltxb (rec ltxb-0))))))) (send nb))
+    ((send (cat self (exp (gen) ltxb-0))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul x ltxb (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x ltxb (rec ltxb-0))))))))
+    ((recv (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+      (send (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))))
+  (label 8)
+  (parent 4)
+  (unrealized (0 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2))
+    ((4 1) (3 0)))
+  (non-orig ltxa ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxa ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+        (exp (gen) (mul x y))))
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y)))))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y))))))
+  (label 9)
+  (parent 5)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener
+    (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul x y))))
+  (deflistener
+    (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul x y))))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen x ltxb)
+  (absent (x ltxb))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+        (exp (gen) (mul x y))))
+    (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul x y))) (2 0))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv
+       (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul x y)))))
+    ((recv
+       (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul x y))))))
+  (label 10)
+  (parent 7)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) ltxb) x))
+  (precedes ((0 1) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2))
+    ((4 1) (3 0)) ((5 1) (4 0)))
+  (non-orig ltxa ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxa ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
+    (exp (gen) (mul ltxb x)) (4 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y)))))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
+  (label 11)
+  (parent 9)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener
+    (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul x y))))
+  (deflistener
+    (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) ltxb) x))
+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))
+    ((4 1) (3 0)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen x ltxb)
+  (absent (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
+    (exp (gen) (mul x ltxb)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv
+       (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul x y)))))
+    ((recv
+       (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
+  (label 12)
+  (parent 10)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol dhcr-um3 diffie-hellman
+  (defrole init
+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    (uniq-orig na)
+    (uniq-gen x)
+    (absent (x ltxa) (x ltxb))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) y) (gen))))
+  (defrole resp
+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul y x)))))) (recv nb))
+    (uniq-orig nb)
+    (uniq-gen y)
+    (absent (y ltxa) (y ltxb) (y x))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) x) (gen))))
+  (defrole ltx-gen
+    (vars (self name) (l rndx))
+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    (uniq-gen l)
+    (fn-of ("principal-of" (l self)) ("ltx-of" (self l))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb)))))
+  (label 13)
+  (unrealized (0 0) (0 2))
+  (preskeleton)
+  (origs (na (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (precedes ((1 0) (0 0)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb)))))
+  (label 14)
+  (parent 13)
+  (unrealized (0 2))
+  (origs (na (0 1)))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y x ltxa ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb)
+  (absent (y x) (y ltxa) (y ltxb) (x ltxa) (x ltxb))
+  (operation encryption-test (added-strand resp 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+        (exp (gen) (mul y x)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x))))))))
+  (label 15)
+  (parent 14)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na) (nb nb)
+        (self self))))
+  (origs (nb (2 2)) (na (0 1))))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y x ltxb ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb) (x x) (y (mul y ltxb (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxb)
+    (ltxb ltxb-0) (y y) (x (mul x ltxb (rec ltxb-0))))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb)
+  (absent (y (mul x ltxb (rec ltxb-0))) (y ltxb) (y ltxb-0) (x ltxb)
+    (x ltxb-0))
+  (operation encryption-test (added-strand resp 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+        (exp (gen) (mul y x ltxb (rec ltxb-0))))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y ltxb (rec ltxb-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x ltxb (rec ltxb-0))))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul x ltxb (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x ltxb (rec ltxb-0)))))))))
+  (label 16)
+  (parent 14)
+  (unrealized (0 2) (2 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (0 2)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation encryption-test
+    (added-listener
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+        (exp (gen) (mul x y))))
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+        (exp (gen) (mul x y)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y))))))
+  (label 17)
+  (parent 14)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y x ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (y y) (x x))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb)
+  (absent (y x) (y ltxb) (x ltxb))
+  (operation nonce-test (displaced 3 0 init 2) (exp (gen) x) (2 1))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x))))))))
+  (label 18)
+  (parent 16)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ltxa ltxb) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na) (nb nb)
+        (self self))))
+  (origs (na (0 1)) (nb (2 2))))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y x ltxb ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb) (x x) (y (mul y ltxb (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxb)
+    (ltxb ltxb-0) (y y) (x (mul x ltxb (rec ltxb-0))))
+  (deflistener (cat (exp (gen) (mul x ltxb)) ltxb-0))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2))
+    ((3 1) (2 1)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb)
+  (absent (y (mul x ltxb (rec ltxb-0))) (y ltxb) (y ltxb-0) (x ltxb)
+    (x ltxb-0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x ltxb)) ltxb-0))
+    (exp (gen) (mul x ltxb (rec ltxb-0))) (2 1))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y ltxb (rec ltxb-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x ltxb (rec ltxb-0))))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul x ltxb (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x ltxb (rec ltxb-0))))))))
+    ((recv (cat (exp (gen) (mul x ltxb)) ltxb-0))
+      (send (cat (exp (gen) (mul x ltxb)) ltxb-0))))
+  (label 19)
+  (parent 16)
+  (unrealized (0 2) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y x ltxb ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb) (x x) (y (mul y ltxb (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxb)
+    (ltxb ltxb-0) (y y) (x (mul x ltxb (rec ltxb-0))))
+  (deflistener (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2))
+    ((3 1) (2 1)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb)
+  (absent (y (mul x ltxb (rec ltxb-0))) (y ltxb) (y ltxb-0) (x ltxb)
+    (x ltxb-0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+    (exp (gen) (mul x ltxb (rec ltxb-0))) (2 1))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y ltxb (rec ltxb-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x ltxb (rec ltxb-0))))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul x ltxb (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x ltxb (rec ltxb-0))))))))
+    ((recv (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+      (send (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))))
+  (label 20)
+  (parent 16)
+  (unrealized (0 2) (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+        (exp (gen) (mul x y))))
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))) (2 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y)))))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y))))))
+  (label 21)
+  (parent 17)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y x ltxb ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb) (x x) (y (mul y ltxb (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxb)
+    (ltxb ltxb-0) (y y) (x (mul x ltxb (rec ltxb-0))))
+  (deflistener (cat (exp (gen) (mul x ltxb)) ltxb-0))
+  (deflistener (cat (exp (gen) ltxb) x))
+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2))
+    ((3 1) (2 1)) ((4 1) (3 0)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb)
+  (absent (y (mul x ltxb (rec ltxb-0))) (y ltxb) (y ltxb-0) (x ltxb)
+    (x ltxb-0))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
+    (exp (gen) (mul x ltxb)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y ltxb (rec ltxb-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x ltxb (rec ltxb-0))))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul x ltxb (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x ltxb (rec ltxb-0))))))))
+    ((recv (cat (exp (gen) (mul x ltxb)) ltxb-0))
+      (send (cat (exp (gen) (mul x ltxb)) ltxb-0)))
+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
+  (label 22)
+  (parent 19)
+  (unrealized (0 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) ltxb) x))
+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))
+    ((4 1) (3 0)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
+    (exp (gen) (mul ltxb x)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y)))))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
+  (label 23)
+  (parent 21)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol dhcr-um3 diffie-hellman
+  (defrole init
+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    (uniq-orig na)
+    (uniq-gen x)
+    (absent (x ltxa) (x ltxb))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) y) (gen))))
+  (defrole resp
+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul y x)))))) (recv nb))
+    (uniq-orig nb)
+    (uniq-gen y)
+    (absent (y ltxa) (y ltxb) (y x))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) x) (gen))))
+  (defrole ltx-gen
+    (vars (self name) (l rndx))
+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    (uniq-gen l)
+    (fn-of ("principal-of" (l self)) ("ltx-of" (self l))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (ltxa ltxb x y rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener (exp (gen) (mul x y)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))
+  (label 24)
+  (unrealized (0 0) (0 2) (2 0))
+  (preskeleton)
+  (origs (na (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (ltxa ltxb x y rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener (exp (gen) (mul x y)))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))
+  (label 25)
+  (parent 24)
+  (unrealized (0 2))
+  (origs (na (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (ltxa y x ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener (exp (gen) (mul y x)))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((3 2) (0 2))
+    ((3 2) (2 0)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb)
+  (absent (y ltxa) (y x) (y ltxb) (x ltxa) (x ltxb))
+  (operation encryption-test (added-strand resp 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))
+        (exp (gen) (mul y x)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x))))))))
+  (label 26)
+  (parent 25)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (ltxa ltxb x y rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (precedes ((0 1) (2 0)) ((0 1) (3 0)) ((1 0) (0 0)) ((3 1) (0 2)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation encryption-test
+    (added-listener
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+        (exp (gen) (mul x y))))
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+        (exp (gen) (mul x y)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y))))))
+  (label 27)
+  (parent 25)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (ltxa y x ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener (exp (gen) (mul y x)))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) y) x))
+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((3 2) (0 2))
+    ((3 2) (4 0)) ((4 1) (2 0)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb)
+  (absent (y ltxa) (y x) (y ltxb) (x ltxa) (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) y) x))
+    (exp (gen) (mul y x)) (2 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
+  (label 28)
+  (parent 26)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (ltxa y x ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener (exp (gen) (mul y x)))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) x) y))
+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((3 2) (0 2))
+    ((3 2) (4 0)) ((4 1) (2 0)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb)
+  (absent (y ltxa) (y x) (y ltxb) (x ltxa) (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) x) y))
+    (exp (gen) (mul y x)) (2 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))))
+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
+  (label 29)
+  (parent 26)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (ltxa ltxb x y rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (precedes ((0 1) (2 0)) ((0 1) (4 0)) ((1 0) (0 0)) ((3 1) (0 2))
+    ((4 1) (3 0)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+        (exp (gen) (mul x y))))
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y)))))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y))))))
+  (label 30)
+  (parent 27)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (ltxa ltxb x y rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) ltxb) x))
+  (precedes ((0 1) (2 0)) ((0 1) (5 0)) ((1 0) (0 0)) ((3 1) (0 2))
+    ((4 1) (3 0)) ((5 1) (4 0)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
+    (exp (gen) (mul ltxb x)) (4 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y)))))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
+  (label 31)
+  (parent 30)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol dhcr-um3 diffie-hellman
+  (defrole init
+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    (uniq-orig na)
+    (uniq-gen x)
+    (absent (x ltxa) (x ltxb))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) y) (gen))))
+  (defrole resp
+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul y x)))))) (recv nb))
+    (uniq-orig nb)
+    (uniq-gen y)
+    (absent (y ltxa) (y ltxb) (y x))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) x) (gen))))
+  (defrole ltx-gen
+    (vars (self name) (l rndx))
+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    (uniq-gen l)
+    (fn-of ("principal-of" (l self)) ("ltx-of" (self l))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (non-orig ltxa ltxb)
+  (uniq-orig nb)
+  (uniq-gen ltxa ltxb y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul y x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb)))))
+  (label 32)
+  (unrealized (0 0) (0 3))
+  (preskeleton)
+  (origs (nb (0 2)))
+  (comment "Not a skeleton"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (precedes ((1 0) (0 0)) ((2 0) (0 0)))
+  (non-orig ltxa ltxb)
+  (uniq-orig nb)
+  (uniq-gen ltxa ltxb y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul y x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb)))))
+  (label 33)
+  (parent 32)
+  (unrealized (0 3))
+  (origs (nb (0 2)))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y rndx) (x expt) (ltxb rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (precedes ((1 0) (0 0)))
+  (non-orig ltxb)
+  (uniq-orig nb)
+  (uniq-gen y ltxb)
+  (absent (y x) (y ltxb))
+  (operation collapsed 2 1)
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxb)))))
+  (label 34)
+  (parent 33)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (y x ltxa ltxb rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
+    ((2 0) (3 0)) ((3 1) (0 1)) ((3 3) (0 3)))
+  (non-orig ltxa ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxa ltxb)
+  (absent (y x) (y ltxa) (y ltxb) (x ltxa) (x ltxb))
+  (operation nonce-test (added-strand init 4) nb (0 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+        (exp (gen) (mul y x)))))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (send nb)))
+  (label 35)
+  (parent 33)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 2)
+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na) (nb nb)
+        (self self) (self-0 self-0))))
+  (origs (na (3 1)) (nb (0 2))))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (y x ltxb ltxb-0 rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb) (y y) (x (mul x (rec ltxb) ltxb-0)))
+  (defstrand ltx-gen 1 (self self) (l ltxb-0))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb)
+    (ltxb ltxb-0) (x x) (y (mul y (rec ltxb) ltxb-0)))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
+    ((2 0) (3 0)) ((3 1) (0 1)) ((3 3) (0 3)))
+  (non-orig ltxb ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb ltxb-0)
+  (absent (y (mul x (rec ltxb) ltxb-0)) (y ltxb) (y ltxb-0) (x ltxb)
+    (x ltxb-0))
+  (operation nonce-test (added-strand init 4) nb (0 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul y ltxb-0)) (exp (gen) (mul x ltxb-0))
+        (exp (gen) (mul y x (rec ltxb) ltxb-0)))))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x (rec ltxb) ltxb-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0)) (exp (gen) (mul x ltxb-0))
+              (exp (gen) (mul y x (rec ltxb) ltxb-0)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxb-0))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec ltxb) ltxb-0))
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0)) (exp (gen) (mul x ltxb-0))
+              (exp (gen) (mul y x (rec ltxb) ltxb-0)))))) (send nb)))
+  (label 36)
+  (parent 33)
+  (unrealized (0 1) (3 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul y x))))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
+  (non-orig ltxa ltxb)
+  (uniq-orig nb)
+  (uniq-gen ltxa ltxb y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (operation nonce-test
+    (added-listener
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+        (exp (gen) (mul y x)))) nb (0 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+        (exp (gen) (mul y x)))))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul y x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul y x))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul y x))))))
+  (label 37)
+  (parent 33)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y x ltxb rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((2 3) (0 3)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb)
+  (absent (y x) (y ltxb) (x ltxb))
+  (operation nonce-test (added-strand init 4) nb (0 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+        (exp (gen) (mul y x)))))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (send nb)))
+  (label 38)
+  (parent 34)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 1)
+      ((ltxa ltxb) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na) (nb nb)
+        (self self) (self-0 self))))
+  (origs (na (2 1)) (nb (0 2))))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y rndx) (x expt) (ltxb rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener
+    (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul y x))))
+  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))
+  (non-orig ltxb)
+  (uniq-orig nb)
+  (uniq-gen y ltxb)
+  (absent (y x) (y ltxb))
+  (operation nonce-test
+    (added-listener
+      (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+        (exp (gen) (mul y x)))) nb (0 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+        (exp (gen) (mul y x)))))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv
+       (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul y x))))
+      (send
+        (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul y x))))))
+  (label 39)
+  (parent 34)
+  (unrealized (2 0))
+  (origs (nb (0 2)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (y x ltxb ltxb-0 rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb) (y y) (x (mul x (rec ltxb) ltxb-0)))
+  (defstrand ltx-gen 1 (self self) (l ltxb-0))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb)
+    (ltxb ltxb-0) (x x) (y (mul y (rec ltxb) ltxb-0)))
+  (deflistener (cat (exp (gen) (mul (rec ltxb) ltxb-0)) y))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
+    ((2 0) (3 0)) ((3 1) (0 1)) ((3 3) (0 3)) ((4 1) (3 2)))
+  (non-orig ltxb ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb ltxb-0)
+  (absent (y (mul x (rec ltxb) ltxb-0)) (y ltxb) (y ltxb-0) (x ltxb)
+    (x ltxb-0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec ltxb) ltxb-0)) y))
+    (exp (gen) (mul y (rec ltxb) ltxb-0)) (3 2))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x (rec ltxb) ltxb-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0)) (exp (gen) (mul x ltxb-0))
+              (exp (gen) (mul y x (rec ltxb) ltxb-0)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxb-0))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec ltxb) ltxb-0))
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0)) (exp (gen) (mul x ltxb-0))
+              (exp (gen) (mul y x (rec ltxb) ltxb-0)))))) (send nb))
+    ((recv (cat (exp (gen) (mul (rec ltxb) ltxb-0)) y))
+      (send (cat (exp (gen) (mul (rec ltxb) ltxb-0)) y))))
+  (label 40)
+  (parent 36)
+  (unrealized (0 1) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul y x))))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul y x))))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
+    ((4 1) (3 0)))
+  (non-orig ltxa ltxb)
+  (uniq-orig nb)
+  (uniq-gen ltxa ltxb y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+        (exp (gen) (mul y x))))
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul y x))) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul y x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul y x))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul y x)))))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul y x))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul y x))))))
+  (label 41)
+  (parent 37)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y rndx) (x expt) (ltxb rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener
+    (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul y x))))
+  (deflistener
+    (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul y x))))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))
+  (non-orig ltxb)
+  (uniq-orig nb)
+  (uniq-gen y ltxb)
+  (absent (y x) (y ltxb))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+        (exp (gen) (mul y x))))
+    (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul y x))) (2 0))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv
+       (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul y x))))
+      (send
+        (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul y x)))))
+    ((recv
+       (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul y x))))
+      (send
+        (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul y x))))))
+  (label 42)
+  (parent 39)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul y x))))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul y x))))
+  (deflistener (cat (exp (gen) ltxa) y))
+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
+    ((4 1) (3 0)) ((5 1) (4 0)))
+  (non-orig ltxa ltxb)
+  (uniq-orig nb)
+  (uniq-gen ltxa ltxb y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))
+    (exp (gen) (mul ltxa y)) (4 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul y x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul y x))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul y x)))))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul y x))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul y x)))))
+    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))
+  (label 43)
+  (parent 41)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y rndx) (x expt) (ltxb rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener
+    (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul y x))))
+  (deflistener
+    (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul y x))))
+  (deflistener (cat (exp (gen) ltxb) y))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
+    ((4 1) (3 0)))
+  (non-orig ltxb)
+  (uniq-orig nb)
+  (uniq-gen y ltxb)
+  (absent (y x) (y ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) y))
+    (exp (gen) (mul y ltxb)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv
+       (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul y x))))
+      (send
+        (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul y x)))))
+    ((recv
+       (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul y x))))
+      (send
+        (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul y x)))))
+    ((recv (cat (exp (gen) ltxb) y)) (send (cat (exp (gen) ltxb) y))))
+  (label 44)
+  (parent 42)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol dhcr-um3 diffie-hellman
+  (defrole init
+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    (uniq-orig na)
+    (uniq-gen x)
+    (absent (x ltxa) (x ltxb))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) y) (gen))))
+  (defrole resp
+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul y x)))))) (recv nb))
+    (uniq-orig nb)
+    (uniq-gen y)
+    (absent (y ltxa) (y ltxb) (y x))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) x) (gen))))
+  (defrole ltx-gen
+    (vars (self name) (l rndx))
+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    (uniq-gen l)
+    (fn-of ("principal-of" (l self)) ("ltx-of" (self l))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (non-orig ltxa)
+  (uniq-orig nb)
+  (uniq-gen ltxa y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul y x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa)))))
+  (label 45)
+  (unrealized (0 0) (0 3))
+  (preskeleton)
+  (origs (nb (0 2)))
+  (comment "Not a skeleton"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (precedes ((1 0) (0 0)))
+  (non-orig ltxa)
+  (uniq-orig nb)
+  (uniq-gen ltxa y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul y x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa)))))
+  (label 46)
+  (parent 45)
+  (unrealized (0 3))
+  (origs (nb (0 2)))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y x ltxa ltxb rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((2 3) (0 3)))
+  (non-orig ltxa)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxa)
+  (absent (y x) (y ltxa) (y ltxb) (x ltxa) (x ltxb))
+  (operation nonce-test (added-strand init 4) nb (0 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+        (exp (gen) (mul y x)))))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (send nb)))
+  (label 47)
+  (parent 46)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na) (nb nb)
+        (self self))))
+  (origs (na (2 1)) (nb (0 2))))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y x ltxb ltxb-0 rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb) (y y) (x (mul x (rec ltxb) ltxb-0)))
+  (defstrand ltx-gen 1 (self self) (l ltxb-0))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb)
+    (ltxb ltxb-0) (x x) (y (mul y (rec ltxb) ltxb-0)))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((2 3) (0 3)))
+  (non-orig ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb-0)
+  (absent (y (mul x (rec ltxb) ltxb-0)) (y ltxb) (y ltxb-0) (x ltxb)
+    (x ltxb-0))
+  (operation nonce-test (added-strand init 4) nb (0 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul y ltxb-0)) (exp (gen) (mul x ltxb-0))
+        (exp (gen) (mul y x (rec ltxb) ltxb-0)))))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x (rec ltxb) ltxb-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0)) (exp (gen) (mul x ltxb-0))
+              (exp (gen) (mul y x (rec ltxb) ltxb-0)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxb-0))))
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec ltxb) ltxb-0))
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0)) (exp (gen) (mul x ltxb-0))
+              (exp (gen) (mul y x (rec ltxb) ltxb-0)))))) (send nb)))
+  (label 48)
+  (parent 46)
+  (unrealized (0 1) (2 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul y x))))
+  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))
+  (non-orig ltxa)
+  (uniq-orig nb)
+  (uniq-gen ltxa y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (operation nonce-test
+    (added-listener
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+        (exp (gen) (mul y x)))) nb (0 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+        (exp (gen) (mul y x)))))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul y x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul y x))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul y x))))))
+  (label 49)
+  (parent 46)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y ltxb x rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((2 3) (0 3)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y ltxb x)
+  (absent (y ltxb) (y x) (x ltxb))
+  (operation nonce-test (displaced 3 0 resp 3) (exp (gen) y) (2 2))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul y x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul y x)))))) (send nb)))
+  (label 50)
+  (parent 48)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ltxa ltxb) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na) (nb nb)
+        (self self))))
+  (origs (nb (0 2)) (na (2 1))))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y x ltxb ltxb-0 rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb) (y y) (x (mul x (rec ltxb) ltxb-0)))
+  (defstrand ltx-gen 1 (self self) (l ltxb-0))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb)
+    (ltxb ltxb-0) (x x) (y (mul y (rec ltxb) ltxb-0)))
+  (deflistener (cat (exp (gen) (mul y ltxb-0)) ltxb))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((2 3) (0 3)) ((3 1) (2 2)))
+  (non-orig ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb-0)
+  (absent (y (mul x (rec ltxb) ltxb-0)) (y ltxb) (y ltxb-0) (x ltxb)
+    (x ltxb-0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y ltxb-0)) ltxb))
+    (exp (gen) (mul y (rec ltxb) ltxb-0)) (2 2))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x (rec ltxb) ltxb-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0)) (exp (gen) (mul x ltxb-0))
+              (exp (gen) (mul y x (rec ltxb) ltxb-0)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxb-0))))
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec ltxb) ltxb-0))
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0)) (exp (gen) (mul x ltxb-0))
+              (exp (gen) (mul y x (rec ltxb) ltxb-0)))))) (send nb))
+    ((recv (cat (exp (gen) (mul y ltxb-0)) ltxb))
+      (send (cat (exp (gen) (mul y ltxb-0)) ltxb))))
+  (label 51)
+  (parent 48)
+  (unrealized (0 1) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y x ltxb ltxb-0 rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb) (y y) (x (mul x (rec ltxb) ltxb-0)))
+  (defstrand ltx-gen 1 (self self) (l ltxb-0))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb)
+    (ltxb ltxb-0) (x x) (y (mul y (rec ltxb) ltxb-0)))
+  (deflistener (cat (exp (gen) (mul (rec ltxb) ltxb-0)) y))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((2 3) (0 3)) ((3 1) (2 2)))
+  (non-orig ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb-0)
+  (absent (y (mul x (rec ltxb) ltxb-0)) (y ltxb) (y ltxb-0) (x ltxb)
+    (x ltxb-0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec ltxb) ltxb-0)) y))
+    (exp (gen) (mul y (rec ltxb) ltxb-0)) (2 2))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x (rec ltxb) ltxb-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0)) (exp (gen) (mul x ltxb-0))
+              (exp (gen) (mul y x (rec ltxb) ltxb-0)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxb-0))))
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec ltxb) ltxb-0))
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0)) (exp (gen) (mul x ltxb-0))
+              (exp (gen) (mul y x (rec ltxb) ltxb-0)))))) (send nb))
+    ((recv (cat (exp (gen) (mul (rec ltxb) ltxb-0)) y))
+      (send (cat (exp (gen) (mul (rec ltxb) ltxb-0)) y))))
+  (label 52)
+  (parent 48)
+  (unrealized (0 1) (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul y x))))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul y x))))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))
+  (non-orig ltxa)
+  (uniq-orig nb)
+  (uniq-gen ltxa y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+        (exp (gen) (mul y x))))
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul y x))) (2 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul y x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul y x))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul y x)))))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul y x))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul y x))))))
+  (label 53)
+  (parent 49)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y x ltxb ltxb-0 rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb) (y y) (x (mul x (rec ltxb) ltxb-0)))
+  (defstrand ltx-gen 1 (self self) (l ltxb-0))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb)
+    (ltxb ltxb-0) (x x) (y (mul y (rec ltxb) ltxb-0)))
+  (deflistener (cat (exp (gen) (mul y ltxb-0)) ltxb))
+  (deflistener (cat (exp (gen) ltxb-0) y))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((2 3) (0 3)) ((3 1) (2 2)) ((4 1) (3 0)))
+  (non-orig ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb-0)
+  (absent (y (mul x (rec ltxb) ltxb-0)) (y ltxb) (y ltxb-0) (x ltxb)
+    (x ltxb-0))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb-0) y))
+    (exp (gen) (mul y ltxb-0)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x (rec ltxb) ltxb-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0)) (exp (gen) (mul x ltxb-0))
+              (exp (gen) (mul y x (rec ltxb) ltxb-0)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxb-0))))
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec ltxb) ltxb-0))
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0)) (exp (gen) (mul x ltxb-0))
+              (exp (gen) (mul y x (rec ltxb) ltxb-0)))))) (send nb))
+    ((recv (cat (exp (gen) (mul y ltxb-0)) ltxb))
+      (send (cat (exp (gen) (mul y ltxb-0)) ltxb)))
+    ((recv (cat (exp (gen) ltxb-0) y))
+      (send (cat (exp (gen) ltxb-0) y))))
+  (label 54)
+  (parent 51)
+  (unrealized (0 1) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul y x))))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul y x))))
+  (deflistener (cat (exp (gen) ltxa) y))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
+    ((4 1) (3 0)))
+  (non-orig ltxa)
+  (uniq-orig nb)
+  (uniq-gen ltxa y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))
+    (exp (gen) (mul ltxa y)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul y x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul y x))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul y x)))))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul y x))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul y x)))))
+    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))
+  (label 55)
+  (parent 53)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol dhcr-um3 diffie-hellman
+  (defrole init
+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    (uniq-orig na)
+    (uniq-gen x)
+    (absent (x ltxa) (x ltxb))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) y) (gen))))
+  (defrole resp
+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul y x)))))) (recv nb))
+    (uniq-orig nb)
+    (uniq-gen y)
+    (absent (y ltxa) (y ltxb) (y x))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) x) (gen))))
+  (defrole ltx-gen
+    (vars (self name) (l rndx))
+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    (uniq-gen l)
+    (fn-of ("principal-of" (l self)) ("ltx-of" (self l))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
+  (uniq-orig na)
+  (uniq-gen ltxa ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb)))
+  (label 56)
+  (unrealized (0 0) (0 2) (1 0))
+  (preskeleton)
+  (origs (na (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)))
+  (uniq-orig na)
+  (uniq-gen ltxa ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb)))
+  (label 57)
+  (parent 56)
+  (unrealized (0 2) (1 0))
+  (origs (na (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener
+    (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul x y))))
+  (defstrand ltx-gen 3 (self self) (l ltxb))
+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((2 0) (0 0)))
+  (uniq-orig na)
+  (uniq-gen x ltxb)
+  (absent (x ltxb))
+  (operation collapsed 3 2)
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul x y)))))
+    ((send (cat self (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb)))
+  (label 58)
+  (parent 57)
+  (unrealized (0 2) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((4 1) (1 0)))
+  (uniq-orig na)
+  (uniq-gen ltxa ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+        (exp (gen) (mul x y))))
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))) (1 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y))))))
+  (label 59)
+  (parent 57)
+  (unrealized (0 2) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener
+    (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul x y))))
+  (defstrand ltx-gen 3 (self self) (l ltxb))
+  (deflistener
+    (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul x y))))
+  (precedes ((0 1) (3 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((3 1) (1 0)))
+  (uniq-orig na)
+  (uniq-gen x ltxb)
+  (absent (x ltxb))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+        (exp (gen) (mul x y))))
+    (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul x y))) (1 0))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul x y)))))
+    ((send (cat self (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv
+       (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul x y))))))
+  (label 60)
+  (parent 58)
+  (unrealized (0 2) (3 0))
+  (origs (na (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) ltxb) x))
+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
+  (uniq-orig na)
+  (uniq-gen ltxa ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
+    (exp (gen) (mul ltxb x)) (4 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
+  (label 61)
+  (parent 59)
+  (unrealized (0 2) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
+  (uniq-orig na)
+  (uniq-gen ltxa ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) x) ltxb))
+    (exp (gen) (mul ltxb x)) (4 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb))))
+  (label 62)
+  (parent 59)
+  (unrealized (0 2) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener
+    (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul x y))))
+  (defstrand ltx-gen 3 (self self) (l ltxb))
+  (deflistener
+    (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((3 1) (1 0))
+    ((4 1) (3 0)))
+  (uniq-orig na)
+  (uniq-gen x ltxb)
+  (absent (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) x) ltxb))
+    (exp (gen) (mul x ltxb)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul x y)))))
+    ((send (cat self (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv
+       (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb))))
+  (label 63)
+  (parent 60)
+  (unrealized (0 2) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener
+    (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul x y))))
+  (defstrand ltx-gen 3 (self self) (l ltxb))
+  (deflistener
+    (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) ltxb) x))
+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((3 1) (1 0))
+    ((4 1) (3 0)))
+  (uniq-orig na)
+  (uniq-gen x ltxb)
+  (absent (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
+    (exp (gen) (mul x ltxb)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul x y)))))
+    ((send (cat self (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv
+       (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
+  (label 64)
+  (parent 60)
+  (unrealized (0 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (ltxa x rndx) (y expt)
+    (l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x x) (y y))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) x) l))
+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((3 0) (0 0))
+    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)))
+  (uniq-orig na)
+  (uniq-gen ltxa x l)
+  (absent (x ltxa) (x l))
+  (operation nonce-test (displaced 6 3 ltx-gen 3) l (5 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l))))
+  (label 65)
+  (parent 62)
+  (unrealized (0 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y y))
+  (deflistener
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener
+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) x) l))
+  (precedes ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0)) ((3 1) (1 0))
+    ((4 1) (3 0)))
+  (uniq-orig na)
+  (uniq-gen x l)
+  (absent (x l))
+  (operation nonce-test (displaced 5 2 ltx-gen 3) l (4 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv
+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l))))
+  (label 66)
+  (parent 63)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (y x ltxa ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener
+    (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul y x))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener
+    (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul y x))))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y x ltxa ltxb)
+  (absent (y x) (y ltxa) (y ltxb) (x ltxa) (x ltxb))
+  (operation encryption-test (added-strand resp 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+        (exp (gen) (mul y x)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul y x))))
+      (send
+        (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul y x)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv
+       (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul y x))))
+      (send
+        (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul y x)))))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x))))))))
+  (label 67)
+  (parent 65)
+  (unrealized (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (y x l ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb l)
+    (x x) (y (mul y l (rec ltxb))))
+  (deflistener
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul y x l (rec ltxb)))))
+  (defstrand ltx-gen 3 (self self) (l ltxb))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener
+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul y x l (rec ltxb)))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (y y) (x (mul x l (rec ltxb))))
+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y x l ltxb)
+  (absent (y (mul x l (rec ltxb))) (y l) (y ltxb) (x l) (x ltxb))
+  (operation encryption-test (added-strand resp 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+        (exp (gen) (mul y x l (rec ltxb))))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y l (rec ltxb)))
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+              (exp (gen) (mul y x l (rec ltxb))))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul y x l (rec ltxb)))))
+      (send
+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul y x l (rec ltxb))))))
+    ((send (cat self (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv
+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul y x l (rec ltxb)))))
+      (send
+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul y x l (rec ltxb))))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x l (rec ltxb)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+              (exp (gen) (mul y x l (rec ltxb)))))))))
+  (label 68)
+  (parent 65)
+  (unrealized (0 2) (4 0) (6 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (ltxa x rndx) (y expt)
+    (l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x x) (y y))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) x) l))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 1) (0 2)))
+  (uniq-orig na)
+  (uniq-gen ltxa x l)
+  (absent (x ltxa) (x l))
+  (operation encryption-test
+    (added-listener
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+        (exp (gen) (mul x y))))
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+        (exp (gen) (mul x y)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y))))))
+  (label 69)
+  (parent 65)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y x l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y y))
+  (deflistener
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul y x))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener
+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul y x))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (y y)
+    (x x))
+  (precedes ((0 1) (5 1)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 0) (5 0))
+    ((2 2) (4 0)) ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y x l)
+  (absent (y x) (y l) (x l))
+  (operation encryption-test (added-strand resp 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+        (exp (gen) (mul y x)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+              (exp (gen) (mul y x)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul y x))))
+      (send
+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul y x)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv
+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul y x))))
+      (send
+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul y x)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+              (exp (gen) (mul y x))))))))
+  (label 70)
+  (parent 66)
+  (unrealized (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y y))
+  (deflistener
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener
+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) x) l))
+  (deflistener
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 1) (0 2)))
+  (uniq-orig na)
+  (uniq-gen x l)
+  (absent (x l))
+  (operation encryption-test
+    (added-listener
+      (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+        (exp (gen) (mul x y))))
+    (enc na nb a b
+      (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+        (exp (gen) (mul x y)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv
+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv
+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y))))))
+  (label 71)
+  (parent 66)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (y x ltxa ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener
+    (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul y x))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener
+    (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul y x))))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) y) ltxa))
+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((6 2) (7 0))
+    ((7 1) (4 0)))
+  (uniq-orig na nb)
+  (uniq-gen y x ltxa ltxb)
+  (absent (y x) (y ltxa) (y ltxb) (x ltxa) (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) y) ltxa))
+    (exp (gen) (mul y ltxa)) (4 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul y x))))
+      (send
+        (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul y x)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv
+       (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul y x))))
+      (send
+        (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul y x)))))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))))
+    ((recv (cat (exp (gen) y) ltxa)) (send (cat (exp (gen) y) ltxa))))
+  (label 72)
+  (parent 67)
+  (unrealized (4 0) (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (y x ltxa ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener
+    (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul y x))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener
+    (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul y x))))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) ltxa) y))
+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((6 2) (7 0))
+    ((7 1) (4 0)))
+  (uniq-orig na nb)
+  (uniq-gen y x ltxa ltxb)
+  (absent (y x) (y ltxa) (y ltxb) (x ltxa) (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))
+    (exp (gen) (mul y ltxa)) (4 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul y x))))
+      (send
+        (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul y x)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv
+       (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul y x))))
+      (send
+        (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul y x)))))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))))
+    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))
+  (label 73)
+  (parent 67)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (y x l ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb l)
+    (x x) (y (mul y l (rec ltxb))))
+  (deflistener
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul y x l (rec ltxb)))))
+  (defstrand ltx-gen 3 (self self) (l ltxb))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener
+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul y x l (rec ltxb)))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (y y) (x (mul x l (rec ltxb))))
+  (deflistener (cat (exp (gen) (mul x l)) ltxb))
+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((7 1) (6 1)))
+  (uniq-orig na nb)
+  (uniq-gen y x l ltxb)
+  (absent (y (mul x l (rec ltxb))) (y l) (y ltxb) (x l) (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x l)) ltxb))
+    (exp (gen) (mul x l (rec ltxb))) (6 1))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y l (rec ltxb)))
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+              (exp (gen) (mul y x l (rec ltxb))))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul y x l (rec ltxb)))))
+      (send
+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul y x l (rec ltxb))))))
+    ((send (cat self (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv
+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul y x l (rec ltxb)))))
+      (send
+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul y x l (rec ltxb))))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x l (rec ltxb)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+              (exp (gen) (mul y x l (rec ltxb))))))))
+    ((recv (cat (exp (gen) (mul x l)) ltxb))
+      (send (cat (exp (gen) (mul x l)) ltxb))))
+  (label 74)
+  (parent 68)
+  (unrealized (0 2) (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (y x l ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb l)
+    (x x) (y (mul y l (rec ltxb))))
+  (deflistener
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul y x l (rec ltxb)))))
+  (defstrand ltx-gen 3 (self self) (l ltxb))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener
+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul y x l (rec ltxb)))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (y y) (x (mul x l (rec ltxb))))
+  (deflistener (cat (exp (gen) (mul x (rec ltxb))) l))
+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((7 1) (6 1)))
+  (uniq-orig na nb)
+  (uniq-gen y x l ltxb)
+  (absent (y (mul x l (rec ltxb))) (y l) (y ltxb) (x l) (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x (rec ltxb))) l))
+    (exp (gen) (mul x l (rec ltxb))) (6 1))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y l (rec ltxb)))
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+              (exp (gen) (mul y x l (rec ltxb))))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul y x l (rec ltxb)))))
+      (send
+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul y x l (rec ltxb))))))
+    ((send (cat self (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv
+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul y x l (rec ltxb)))))
+      (send
+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul y x l (rec ltxb))))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x l (rec ltxb)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+              (exp (gen) (mul y x l (rec ltxb))))))))
+    ((recv (cat (exp (gen) (mul x (rec ltxb))) l))
+      (send (cat (exp (gen) (mul x (rec ltxb))) l))))
+  (label 75)
+  (parent 68)
+  (unrealized (0 2) (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (y x l ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb l)
+    (x x) (y (mul y l (rec ltxb))))
+  (deflistener
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul y x l (rec ltxb)))))
+  (defstrand ltx-gen 3 (self self) (l ltxb))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener
+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul y x l (rec ltxb)))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (y y) (x (mul x l (rec ltxb))))
+  (deflistener (cat (exp (gen) (mul l (rec ltxb))) x))
+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((7 1) (6 1)))
+  (uniq-orig na nb)
+  (uniq-gen y x l ltxb)
+  (absent (y (mul x l (rec ltxb))) (y l) (y ltxb) (x l) (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul l (rec ltxb))) x))
+    (exp (gen) (mul x l (rec ltxb))) (6 1))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y l (rec ltxb)))
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+              (exp (gen) (mul y x l (rec ltxb))))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul y x l (rec ltxb)))))
+      (send
+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul y x l (rec ltxb))))))
+    ((send (cat self (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv
+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul y x l (rec ltxb)))))
+      (send
+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul y x l (rec ltxb))))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x l (rec ltxb)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+              (exp (gen) (mul y x l (rec ltxb))))))))
+    ((recv (cat (exp (gen) (mul l (rec ltxb))) x))
+      (send (cat (exp (gen) (mul l (rec ltxb))) x))))
+  (label 76)
+  (parent 68)
+  (unrealized (0 2) (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (ltxa x rndx) (y expt)
+    (l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x x) (y y))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) x) l))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 1) (0 2)) ((7 1) (6 0)))
+  (uniq-orig na)
+  (uniq-gen ltxa x l)
+  (absent (x ltxa) (x l))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+        (exp (gen) (mul x y))))
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))) (6 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y))))))
+  (label 77)
+  (parent 69)
+  (unrealized (7 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y x l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y y))
+  (deflistener
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul y x))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener
+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul y x))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (y y)
+    (x x))
+  (deflistener (cat (exp (gen) y) x))
+  (precedes ((0 1) (5 1)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 0) (5 0))
+    ((2 2) (4 0)) ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (0 2))
+    ((5 2) (6 0)) ((6 1) (3 0)))
+  (uniq-orig na nb)
+  (uniq-gen y x l)
+  (absent (y x) (y l) (x l))
+  (operation nonce-test (added-listener (cat (exp (gen) y) x))
+    (exp (gen) (mul y x)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+              (exp (gen) (mul y x)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul y x))))
+      (send
+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul y x)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv
+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul y x))))
+      (send
+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul y x)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+              (exp (gen) (mul y x)))))))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
+  (label 78)
+  (parent 70)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (y x l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y y))
+  (deflistener
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul y x))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener
+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul y x))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (y y)
+    (x x))
+  (deflistener (cat (exp (gen) x) y))
+  (precedes ((0 1) (5 1)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 0) (5 0))
+    ((2 2) (4 0)) ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (0 2))
+    ((5 2) (6 0)) ((6 1) (3 0)))
+  (uniq-orig na nb)
+  (uniq-gen y x l)
+  (absent (y x) (y l) (x l))
+  (operation nonce-test (added-listener (cat (exp (gen) x) y))
+    (exp (gen) (mul y x)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+              (exp (gen) (mul y x)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul y x))))
+      (send
+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul y x)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv
+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul y x))))
+      (send
+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul y x)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+              (exp (gen) (mul y x)))))))
+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
+  (label 79)
+  (parent 70)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y y))
+  (deflistener
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener
+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) x) l))
+  (deflistener
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (deflistener
+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 1) (0 2)) ((6 1) (5 0)))
+  (uniq-orig na)
+  (uniq-gen x l)
+  (absent (x l))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+        (exp (gen) (mul x y))))
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))) (5 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv
+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv
+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((recv
+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y))))))
+  (label 80)
+  (parent 71)
+  (unrealized (6 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (y x ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul y x))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener
+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul y x))))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) y) l))
+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 0) (6 0)) ((2 2) (7 0)) ((3 0) (0 0)) ((3 0) (6 0))
+    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2))
+    ((7 1) (4 0)))
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb l)
+  (absent (y x) (y ltxb) (y l) (x ltxb) (x l))
+  (operation nonce-test (displaced 8 2 ltx-gen 3) l (7 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul y x))))
+      (send
+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul y x)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv
+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul y x))))
+      (send
+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul y x)))))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))))
+    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l))))
+  (label 81)
+  (parent 72)
+  (unrealized (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (ltxa x rndx) (y expt)
+    (l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x x) (y y))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) x) l))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) x) l))
+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 1) (0 2)) ((7 1) (6 0)) ((8 1) (7 0)))
+  (uniq-orig na)
+  (uniq-gen ltxa x l)
+  (absent (x ltxa) (x l))
+  (operation nonce-test (added-listener (cat (exp (gen) x) l))
+    (exp (gen) (mul x l)) (7 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l))))
+  (label 82)
+  (parent 77)
+  (unrealized (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (ltxa x rndx) (y expt)
+    (l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x x) (y y))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) x) l))
+  (deflistener
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (deflistener
+    (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) l) x))
+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 1) (0 2)) ((7 1) (6 0)) ((8 1) (7 0)))
+  (uniq-orig na)
+  (uniq-gen ltxa x l)
+  (absent (x ltxa) (x l))
+  (operation nonce-test (added-listener (cat (exp (gen) l) x))
+    (exp (gen) (mul x l)) (7 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv
+       (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((recv
+       (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) l) x)) (send (cat (exp (gen) l) x))))
+  (label 83)
+  (parent 77)
+  (unrealized (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y y))
+  (deflistener
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener
+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) x) l))
+  (deflistener
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (deflistener
+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) x) l))
+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 1) (0 2)) ((6 1) (5 0))
+    ((7 1) (6 0)))
+  (uniq-orig na)
+  (uniq-gen x l)
+  (absent (x l))
+  (operation nonce-test (added-listener (cat (exp (gen) x) l))
+    (exp (gen) (mul x l)) (6 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv
+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv
+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((recv
+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l))))
+  (label 84)
+  (parent 80)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y y))
+  (deflistener
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener
+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) x) l))
+  (deflistener
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (deflistener
+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+      (exp (gen) (mul x y))))
+  (deflistener (cat (exp (gen) l) x))
+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 1) (0 2)) ((6 1) (5 0))
+    ((7 1) (6 0)))
+  (uniq-orig na)
+  (uniq-gen x l)
+  (absent (x l))
+  (operation nonce-test (added-listener (cat (exp (gen) l) x))
+    (exp (gen) (mul x l)) (6 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+              (exp (gen) (mul x y)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv
+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv
+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((recv
+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+         (exp (gen) (mul x y))))
+      (send
+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))
+          (exp (gen) (mul x y)))))
+    ((recv (cat (exp (gen) l) x)) (send (cat (exp (gen) l) x))))
+  (label 85)
+  (parent 80)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (y x ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul y x))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener
+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul y x))))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) y) l))
+  (deflistener (cat (exp (gen) y) x))
+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 0) (6 0)) ((2 2) (7 0)) ((3 0) (0 0)) ((3 0) (6 0))
+    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2))
+    ((6 2) (8 0)) ((7 1) (4 0)) ((8 1) (4 0)))
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb l)
+  (absent (y x) (y ltxb) (y l) (x ltxb) (x l))
+  (operation nonce-test (added-listener (cat (exp (gen) y) x))
+    (exp (gen) (mul y x)) (4 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul y x))))
+      (send
+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul y x)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv
+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul y x))))
+      (send
+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul y x)))))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))))
+    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l)))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
+  (label 86)
+  (parent 81)
+  (unrealized (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um3
+  (vars (na nb data) (a b self self-0 name) (y x ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul y x))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener
+    (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+      (exp (gen) (mul y x))))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) y) l))
+  (deflistener (cat (exp (gen) x) y))
+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 0) (6 0)) ((2 2) (7 0)) ((3 0) (0 0)) ((3 0) (6 0))
+    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2))
+    ((6 2) (8 0)) ((7 1) (4 0)) ((8 1) (4 0)))
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb l)
+  (absent (y x) (y ltxb) (y l) (x ltxb) (x l))
+  (operation nonce-test (added-listener (cat (exp (gen) x) y))
+    (exp (gen) (mul y x)) (4 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))) (send nb))
+    ((recv
+       (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul y x))))
+      (send
+        (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul y x)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv
+       (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+         (exp (gen) (mul y x))))
+      (send
+        (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+          (exp (gen) (mul y x)))))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))
+              (exp (gen) (mul y x)))))))
+    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l)))
+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
+  (label 87)
+  (parent 81)
   (unrealized (8 0))
   (dead)
   (comment "empty cohort"))
diff --git a/tst/dhcr_um_exercise_resolved_bug.scm b/tst/dhcr_um_exercise_resolved_bug.scm
new file mode 100644
--- /dev/null
+++ b/tst/dhcr_um_exercise_resolved_bug.scm
@@ -0,0 +1,220 @@
+;;; Unified Model  This version used in the paper, tooldev/dh/conf_dh/dh_ebn.tex
+
+;;; This file models the "Unified Model" method of determining a fresh
+;;; key from long-term and ephemeral Diffie-Hellman exponents.  We use
+;;; function relation declarations to link names to long-term public
+;;; values.
+
+;;; This file contains the standard version, in which the two
+;;; ephemeral are mixed, as are the two static exponents.
+
+;;; A role is provided in which a party signs a fresh long-term
+;;; Diffie-Hellman value, and then leaks the exponent.  The latter step
+;;; is used to test the notion of forward security.
+
+;;; Two inputs are analyzed.  In the first, we model that two
+;;; participants exist that agree on the UM key.  The notion of
+;;; "implicit authentication" suggests that if one participant exists
+;;; and another party knows the same key, that party must be either the
+;;; participant or the participant's intended partner.
+
+;;; In this version, we assume that the long-term keys of the
+;;; participants do not leak.
+
+;;; The second input checks whether the key can be learned when the key
+;;; is generated honestly.  In this version, we do NOT assume that the
+;;; long-term keys of the participants do not leak.
+
+;;; CPSA4 revisions:
+;;;
+;;; 1.  Self certify my public value in ltx-gen,
+;;;     and assume signing keys non.
+;;; 2.  Deposit private value in state and retrieve
+;;;	it at the beginning of each init or resp run.
+;;; 3.  Discard the private value from state before
+;;;	disclosing it, when testing forward secrecy.
+
+(herald "DHCR: unified model (UM) original"
+	(bound 20)
+	(limit 12000)
+	(algebra diffie-hellman))
+
+(defmacro (kcfa l gb x gy)
+  (hash (exp gb l) (exp gy x)))
+
+(defmacro (kcfb l ga y gx)
+  (hash (exp ga l) (exp gx y)))
+
+(defprotocol dhcr-um diffie-hellman
+  (defrole init
+    (vars (l x rndx) (gb gy base) (a b name) (na nb data) (priv-stor locn))
+    (trace
+     (load priv-stor (pv a l))
+     (recv (sig (body b gb (pubk "sig" b))
+		(privk "sig" b)))
+     (send (cat na a b (exp (gen) x)))
+     (recv (cat gy (enc na nb a b (kcfa l gb x gy))))
+     (send nb)
+     )
+    (uniq-gen x)
+    (uniq-orig na)
+    ;; (facts (neq gy (gen)))
+    (gen-st (pv a l))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+           ("ltx-of" (a ltxa) (b ltxb))))
+
+  (defrole resp
+    (vars (l y rndx) (ga gx base) (a b name) (na nb data) (priv-stor locn))
+    (trace
+     (load priv-stor (pv b l))
+     (recv (sig (body a ga (pubk "sig" a))
+		(privk "sig" a)))
+     (recv (cat na a b gx))
+     (send (cat (exp (gen) y) (enc na nb a b (kcfb l ga y gx))))
+     (recv nb)
+     )
+    (uniq-gen y)
+    (uniq-orig nb)
+    (facts (neq gx (gen)))
+    (gen-st (pv b l))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+	   ("ltx-of" (a ltxa) (b ltxb))))
+
+  (defrole ltx-gen
+    (vars (self name) (l rndx)
+	  (priv-stor locn) (ignore mesg))
+    (trace
+     (load priv-stor ignore)
+     (stor priv-stor (pv self l))
+     (send (sig (body self (exp (gen) l) (pubk "sig" self))
+		(privk "sig" self))))
+    (uniq-orig l)
+    (fn-of ("principal-of" (l self))
+	   ("ltx-of" (self l))))
+
+  (defrole ltx-disclose
+    (vars (self name) (l rndx)
+	  (priv-stor locn) (ignore mesg))
+    (trace
+     (load priv-stor (pv self l))
+     (stor priv-stor "nil")
+     (send l))
+    (gen-st (pv self l))
+    (fn-of ("principal-of" (l self))
+	   ("ltx-of" (self l))))
+
+  (defrule fact-resp-silly
+    (forall ((z strd) (gx base)
+	     )
+	    (implies (and (p "resp" z 3) (p "resp" "gx" z gx))
+		     (fact silly gx))))
+
+  (defrule fact-resp-neq0
+    (forall ((z strd) ;(gx base)
+	     )
+	    (implies (and (p "resp" z 3) (p "resp" "gx" z (gen))) (false))))
+
+  (defrule fact-init-neq0
+    (forall ((z strd) ;(gx base)
+	     )
+	    (implies (and (p "init" z 4) (p "init" "gy" z (gen))) (false))))
+
+  (defrule undisclosed-not-disclosed
+    (forall
+     ((z strd) (l rndx))
+     (implies
+      (and (fact undisclosed l)
+	  (p "ltx-disclose" z 2)
+	  (p "ltx-disclose" "l" z l))
+      (false))))
+
+  (lang (sig sign)
+	(body (tuple 3))
+	(pv (tuple 2))))
+
+; Initiator point of view: both LTX exponents secret
+(defskeleton dhcr-um
+  (vars (a b name) (l l-peer rndx))
+  (defstrand init 4 (a a) (b b) (l l) (gb (exp (gen) l-peer)))
+  (non-orig (privk "sig" b))
+  (facts (neq a b)
+	 (undisclosed l)
+	 (undisclosed l-peer)))
+
+(comment
+
+; Initiator point of view:  peer exponent secret
+(defskeleton dhcr-um
+  (vars (a b name) (l l-peer rndx))
+  (defstrand init 4 (a a) (b b) (l l) (gb (exp (gen) l-peer)))
+  (non-orig (privk "sig" b))
+  (facts (neq a b)
+	 ;;	 (undisclosed l)
+	 (undisclosed l-peer)))
+
+; Initiator point of view:  my exponent secret
+(defskeleton dhcr-um
+  (vars (a b name) (l rndx) (l-peer expt))
+  (defstrand init 4 (a a) (b b) (l l) (gb (exp (gen) l-peer)))
+  (non-orig (privk "sig" b))
+  (facts (neq a b)
+	 ;;	 (undisclosed l-peer)
+	 (undisclosed l)))
+
+; Initiator point of view:  neither exponent secret
+
+(defskeleton dhcr-um
+  (vars (a b name) (l rndx) (l-peer expt))
+  (defstrand init 4 (a a) (b b) (l l) (gb (exp (gen) l-peer)))
+  (non-orig (privk "sig" b))
+  (facts (neq a b)
+	 ;;	 (undisclosed l-peer)
+	 ;;	 (undisclosed l)
+	 )))
+
+(comment
+					; Initiator point of view: partner's exponent secret
+ (defskeleton dhcr-um
+   (vars (ltxa ltxb rndx) (a b name))
+   (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
+   (defstrand ltx-gen 1 (l ltxb))
+   (non-orig ltxb)
+   (neq (a b)))
+
+					; Responder point of view; both exponents secret
+ (defskeleton dhcr-um
+   (vars (ltxa ltxb rndx) (a b name))
+   (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
+   (defstrand ltx-gen 1 (l ltxa))
+   (defstrand ltx-gen 1 (l ltxb))
+   (non-orig ltxa ltxb)
+   (neq (a b)))
+
+					; Responder point of view; partner's exponent secre
+ (defskeleton dhcr-um
+   (vars (ltxa ltxb rndx) (a b name))
+   (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
+   (defstrand ltx-gen 1 (l ltxa))
+   (non-orig ltxa)
+   (neq (a b)))
+
+;;; Forward secrecy, neither long-term exponent secure
+ (defskeleton dhcr-um
+   (vars (ltxa ltxb x rndx) (y expt) (a b name))
+   (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
+   (deflistener (kcfa ltxa ltxb x (exp (gen) y)))
+   (defstrand ltx-gen 3 (l ltxa))
+   (defstrand ltx-gen 3 (l ltxb))
+   (precedes ((0 3) (3 1)) ((0 3) (2 1)))
+   (neq (a b)))
+
+;;; Forward secrecy, neither long-term exponent secure
+ (defskeleton dhcr-um
+   (vars (ltxa ltxb x rndx) (y expt) (a b name))
+   (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
+   (deflistener (exp (exp (gen) x) y))
+   (defstrand ltx-gen 3 (l ltxa))
+   (defstrand ltx-gen 3 (l ltxb))
+   (precedes ((0 3) (3 1)) ((0 3) (2 1)))
+   (neq (a b)))
+ )
diff --git a/tst/dhcr_um_exercise_resolved_bug.tst b/tst/dhcr_um_exercise_resolved_bug.tst
new file mode 100644
--- /dev/null
+++ b/tst/dhcr_um_exercise_resolved_bug.tst
@@ -0,0 +1,21414 @@
+(herald "DHCR: unified model (UM) original" (bound 20) (limit 12000)
+  (algebra diffie-hellman))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/dhcr_um_exercise_resolved_bug.scm")
+(comment "Step count limited to 12000")
+(comment "Strand count bounded at 20")
+
+(defprotocol dhcr-um diffie-hellman
+  (defrole init
+    (vars (l x rndx) (gb gy base) (a b name) (na nb data)
+      (priv-stor locn))
+    (trace (load priv-stor (pv a l))
+      (recv (sig (body b gb (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv (cat gy (enc na nb a b (hash (exp gb l) (exp gy x)))))
+      (send nb))
+    (uniq-orig na)
+    (uniq-gen x)
+    (absent (x l))
+    (gen-st (pv a l))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb))))
+  (defrole resp
+    (vars (l y rndx) (ga gx base) (a b name) (na nb data)
+      (priv-stor locn))
+    (trace (load priv-stor (pv b l))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp ga l) (exp gx y))))) (recv nb))
+    (uniq-orig nb)
+    (uniq-gen y)
+    (absent (y l))
+    (facts (neq gx (gen)))
+    (gen-st (pv b l))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb))))
+  (defrole ltx-gen
+    (vars (self name) (l rndx) (priv-stor locn) (ignore mesg))
+    (trace (load priv-stor ignore) (stor priv-stor (pv self l))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    (uniq-orig l)
+    (fn-of ("principal-of" (l self)) ("ltx-of" (self l))))
+  (defrole ltx-disclose
+    (vars (self name) (l rndx) (priv-stor locn))
+    (trace (load priv-stor (pv self l)) (stor priv-stor "nil") (send l))
+    (gen-st (pv self l))
+    (fn-of ("principal-of" (l self)) ("ltx-of" (self l))))
+  (defrule fact-resp-silly
+    (forall ((z strd) (gx base))
+      (implies
+        (and (p "resp" z (idx 3)) (p "resp" "gx" z gx))
+        (fact silly gx))))
+  (defrule fact-resp-neq0
+    (forall ((z strd))
+      (implies
+        (and (p "resp" z (idx 3)) (p "resp" "gx" z (gen)))
+        (false))))
+  (defrule fact-init-neq0
+    (forall ((z strd))
+      (implies
+        (and (p "init" z (idx 4)) (p "init" "gy" z (gen)))
+        (false))))
+  (defrule undisclosed-not-disclosed
+    (forall ((z strd) (l rndx))
+      (implies
+        (and (fact undisclosed l) (p "ltx-disclose" z (idx 2))
+          (p "ltx-disclose" "l" z l))
+        (false))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule fact-resp-neq0
+    (forall ((z strd) (gx base))
+      (implies (and (p "resp" z (idx 3)) (p "resp" "gx" z gx))
+        (fact neq gx (gen)))))
+  (defgenrule trRl_ltx-gen-at-1
+    (forall ((z strd))
+      (implies (p "ltx-gen" z (idx 2)) (trans z (idx 1)))))
+  (defgenrule trRl_ltx-gen-at-0
+    (forall ((z strd))
+      (implies (p "ltx-gen" z (idx 2)) (trans z (idx 0)))))
+  (defgenrule trRl_ltx-disclose-at-1
+    (forall ((z strd))
+      (implies (p "ltx-disclose" z (idx 2)) (trans z (idx 1)))))
+  (defgenrule trRl_ltx-disclose-at-0
+    (forall ((z strd))
+      (implies (p "ltx-disclose" z (idx 2)) (trans z (idx 0)))))
+  (defgenrule gen-st-init-0
+    (forall ((z strd) (l rndx) (a name))
+      (implies
+        (and (p "init" z (idx 1)) (p "init" "l" z l) (p "init" "a" z a))
+        (gen-st (pv a l)))))
+  (defgenrule gen-st-resp-0
+    (forall ((z strd) (l rndx) (b name))
+      (implies
+        (and (p "resp" z (idx 1)) (p "resp" "l" z l) (p "resp" "b" z b))
+        (gen-st (pv b l)))))
+  (defgenrule gen-st-ltx-disclose-0
+    (forall ((z strd) (l rndx) (self name))
+      (implies
+        (and (p "ltx-disclose" z (idx 1)) (p "ltx-disclose" "l" z l)
+          (p "ltx-disclose" "self" z self)) (gen-st (pv self l)))))
+  (lang (sig sign) (body (tuple 3)) (pv (tuple 2))))
+
+(defskeleton dhcr-um
+  (vars (na nb data) (a b name) (pt pval) (gy base) (priv-stor locn)
+    (l l-peer x rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-peer))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (non-orig (privk "sig" b))
+  (uniq-orig na)
+  (uniq-gen x)
+  (absent (x l))
+  (facts (neq a b) (undisclosed l) (undisclosed l-peer))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-peer) (pubk "sig" b))
+          (privk "sig" b))) (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b
+            (hash (exp (gen) (mul l l-peer)) (exp gy x)))))))
+  (label 0)
+  (unrealized (0 1) (0 3))
+  (origs (na (0 2)))
+  (comment "Not closed under rules"))
+
+(defskeleton dhcr-um
+  (vars (na nb data) (a b name) (pt pval) (gy base) (priv-stor locn)
+    (l l-peer x rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-peer))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (non-orig (privk "sig" b))
+  (uniq-orig na)
+  (uniq-gen x)
+  (absent (x l))
+  (gen-st (pv a l))
+  (facts (neq a b) (undisclosed l) (undisclosed l-peer))
+  (rule gen-st-ltx-disclose-0)
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-peer) (pubk "sig" b))
+          (privk "sig" b))) (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b
+            (hash (exp (gen) (mul l l-peer)) (exp gy x)))))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 0) (0 1) (0 3))
+  (origs (na (0 2)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore mesg) (na nb data) (a b name) (pt pt-0 pval) (gy base)
+    (priv-stor locn) (l-peer x l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-peer))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (precedes ((1 1) (0 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na l)
+  (uniq-gen x)
+  (absent (x l))
+  (gen-st (pv a l))
+  (facts (neq a b) (undisclosed l) (undisclosed l-peer))
+  (leads-to ((1 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor (cat pt (pv a l))) (0 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-peer) (pubk "sig" b))
+          (privk "sig" b))) (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b
+            (hash (exp (gen) (mul l-peer l)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l)))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 1) (0 3))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (precedes ((1 1) (0 0)) ((2 2) (0 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na l l-0)
+  (uniq-gen x)
+  (absent (x l))
+  (gen-st (pv a l))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation encryption-test (added-strand ltx-gen 3)
+    (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)) (0 1))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (gy base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 l-1 x y rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b)
+    (ga (exp (gen) (mul l l-0 (rec l-1)))) (gx (exp gy (mul x (rec y))))
+    (priv-stor priv-stor-1) (l l-1) (y y))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 3) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (gen-st (pv a l) (pv b l-1))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly gen-st-ltx-disclose-0
+    trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation encryption-test (added-strand resp 4)
+    (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))) (0 3))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (recv
+        (sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
+          (privk "sig" a))) (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x)))))))
+  (label 4)
+  (parent 3)
+  (unrealized (3 0) (3 1) (3 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (hash (exp (gen) (mul l l-0)) (exp gy x)))
+  (precedes ((0 2) (3 0)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na l l-0)
+  (uniq-gen x)
+  (absent (x l))
+  (gen-st (pv a l))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation encryption-test
+    (added-listener (hash (exp (gen) (mul l l-0)) (exp gy x)))
+    (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))) (0 3))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((recv (hash (exp (gen) (mul l l-0)) (exp gy x)))
+      (send (hash (exp (gen) (mul l l-0)) (exp gy x)))))
+  (label 5)
+  (parent 3)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (l x y l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l-0) (y y))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 2) (0 1))
+    ((3 3) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (gen-st (pv a l) (pv b l-0))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 4 2 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b l-1))) (3 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l-0)))
+      (recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x)))))))
+  (label 6)
+  (parent 4)
+  (unrealized (3 1) (3 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gy base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b)
+    (ga (exp (gen) (mul l l-0 (rec l-1)))) (gx (exp gy (mul x (rec y))))
+    (priv-stor priv-stor-1) (l l-1) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 3) (0 3))
+    ((4 1) (3 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (gen-st (pv a l) (pv b l-1))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((4 1) (3 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b l-1))) (3 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (recv
+        (sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
+          (privk "sig" a))) (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b l-1)))))
+  (label 7)
+  (parent 4)
+  (unrealized (3 1) (3 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (hash (exp (gen) (mul l l-0)) (exp gy x)))
+  (deflistener (cat (exp (gen) (mul l l-0)) (exp gy x)))
+  (precedes ((0 2) (4 0)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 1) (0 3))
+    ((4 1) (3 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na l l-0)
+  (uniq-gen x)
+  (absent (x l))
+  (gen-st (pv a l))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation encryption-test
+    (added-listener (cat (exp (gen) (mul l l-0)) (exp gy x)))
+    (hash (exp (gen) (mul l l-0)) (exp gy x)) (3 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((recv (hash (exp (gen) (mul l l-0)) (exp gy x)))
+      (send (hash (exp (gen) (mul l l-0)) (exp gy x))))
+    ((recv (cat (exp (gen) (mul l l-0)) (exp gy x)))
+      (send (cat (exp (gen) (mul l l-0)) (exp gy x)))))
+  (label 8)
+  (parent 5)
+  (unrealized (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor-0) (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 1 4 ltx-gen 3) (exp (gen) l-0) (3 1))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 9)
+  (parent 6)
+  (unrealized (2 2))
+  (comment "7 in cohort - 7 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (l x y l-0 rndx) (w expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l-0) (y y))
+  (deflistener (cat (exp (gen) (mul l (rec w))) w))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0))
+  (gen-st (pv a l) (pv b l-0))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul l (rec w))) w)) (exp (gen) l)
+    (3 1))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l-0)))
+      (recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) (mul l (rec w))) w))
+      (send (cat (exp (gen) (mul l (rec w))) w))))
+  (label 10)
+  (parent 6)
+  (unrealized (3 2) (4 0))
+  (comment "7 in cohort - 7 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gy base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b)
+    (ga (exp (gen) (mul l l-0 (rec l-1)))) (gx (exp gy (mul x (rec y))))
+    (priv-stor priv-stor-1) (l l-1) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul l l-0)) l-1))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 3) (0 3))
+    ((4 1) (3 0)) ((4 1) (5 0)) ((5 1) (3 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (gen-st (pv a l) (pv b l-1))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((4 1) (3 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul l l-0)) l-1))
+    (exp (gen) (mul l l-0 (rec l-1))) (3 1))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (recv
+        (sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
+          (privk "sig" a))) (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b l-1))))
+    ((recv (cat (exp (gen) (mul l l-0)) l-1))
+      (send (cat (exp (gen) (mul l l-0)) l-1))))
+  (label 11)
+  (parent 7)
+  (unrealized (3 2) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gy base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b)
+    (ga (exp (gen) (mul l l-0 (rec l-1)))) (gx (exp gy (mul x (rec y))))
+    (priv-stor priv-stor-1) (l l-1) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul l (rec l-1))) l-0))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (5 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 0)) ((5 1) (3 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (gen-st (pv a l) (pv b l-1))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((4 1) (3 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul l (rec l-1))) l-0))
+    (exp (gen) (mul l l-0 (rec l-1))) (3 1))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (recv
+        (sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
+          (privk "sig" a))) (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b l-1))))
+    ((recv (cat (exp (gen) (mul l (rec l-1))) l-0))
+      (send (cat (exp (gen) (mul l (rec l-1))) l-0))))
+  (label 12)
+  (parent 7)
+  (unrealized (3 2) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gy base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b)
+    (ga (exp (gen) (mul l l-0 (rec l-1)))) (gx (exp gy (mul x (rec y))))
+    (priv-stor priv-stor-1) (l l-1) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul l-0 (rec l-1))) l))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((1 1) (5 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 0)) ((5 1) (3 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (gen-st (pv a l) (pv b l-1))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((4 1) (3 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul l-0 (rec l-1))) l))
+    (exp (gen) (mul l l-0 (rec l-1))) (3 1))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (recv
+        (sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
+          (privk "sig" a))) (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b l-1))))
+    ((recv (cat (exp (gen) (mul l-0 (rec l-1))) l))
+      (send (cat (exp (gen) (mul l-0 (rec l-1))) l))))
+  (label 13)
+  (parent 7)
+  (unrealized (3 2) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (hash (exp (gen) (mul l l-0)) (exp gy x)))
+  (deflistener (cat (exp (gen) (mul l l-0)) (exp gy x)))
+  (deflistener (cat (exp (gen) l) l-0))
+  (precedes ((0 2) (4 0)) ((1 1) (0 0)) ((2 1) (5 0)) ((2 2) (0 1))
+    ((3 1) (0 3)) ((4 1) (3 0)) ((5 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na l l-0)
+  (uniq-gen x)
+  (absent (x l))
+  (gen-st (pv a l))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) l) l-0))
+    (exp (gen) (mul l l-0)) (4 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((recv (hash (exp (gen) (mul l l-0)) (exp gy x)))
+      (send (hash (exp (gen) (mul l l-0)) (exp gy x))))
+    ((recv (cat (exp (gen) (mul l l-0)) (exp gy x)))
+      (send (cat (exp (gen) (mul l l-0)) (exp gy x))))
+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0))))
+  (label 14)
+  (parent 8)
+  (unrealized (4 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (hash (exp (gen) (mul l l-0)) (exp gy x)))
+  (deflistener (cat (exp (gen) (mul l l-0)) (exp gy x)))
+  (deflistener (cat (exp (gen) l-0) l))
+  (precedes ((0 2) (4 0)) ((1 1) (0 0)) ((1 1) (5 0)) ((2 2) (0 1))
+    ((3 1) (0 3)) ((4 1) (3 0)) ((5 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na l l-0)
+  (uniq-gen x)
+  (absent (x l))
+  (gen-st (pv a l))
+  (facts (neq a b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (0 0)))
+  (rule trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) l-0) l))
+    (exp (gen) (mul l l-0)) (4 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((recv (hash (exp (gen) (mul l l-0)) (exp gy x)))
+      (send (hash (exp (gen) (mul l l-0)) (exp gy x))))
+    ((recv (cat (exp (gen) (mul l l-0)) (exp gy x)))
+      (send (cat (exp (gen) (mul l l-0)) (exp gy x))))
+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l))))
+  (label 15)
+  (parent 8)
+  (unrealized (4 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 3) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly gen-st-ltx-disclose-0
+    trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand resp 4) (exp (gen) y-0) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0)))))))
+  (label 16)
+  (parent 9)
+  (unrealized (0 3) (4 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self a b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly gen-st-ltx-disclose-0
+    trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand init 3) (exp (gen) x-0) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0)))))
+  (label 17)
+  (parent 9)
+  (unrealized (0 3) (4 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (y l l-0 x rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) x)) (neq (exp (gen) x) (gen)) (neq self b)
+    (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 4 0 init 3) (exp (gen) x-0) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 18)
+  (parent 9)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a self) (b b) (l l-0) (l-peer l) (x x) (gy (exp (gen) y))
+        (na na) (nb nb) (priv-stor priv-stor-0))))
+  (origs (na (0 2)) (l-0 (3 1)) (pt-2 (3 1)) (l (1 1)) (pt-0 (1 1))
+    (nb (2 3))))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 4 3 ltx-gen 3) (exp (gen) l-1) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 19)
+  (parent 9)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 4 1 ltx-gen 3) (exp (gen) l-1) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 20)
+  (parent 9)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-1)) (neq (exp (gen) l-1) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 3) (exp (gen) l-1) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0)))))
+  (label 21)
+  (parent 9)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx) (w expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor-0) (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp gy (mul x (rec y) (rec w))) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp gy (mul x (rec y) (rec w))) w))
+    (exp gy (mul x (rec y))) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp gy (mul x (rec y) (rec w))) w))
+      (send (cat (exp gy (mul x (rec y) (rec w))) w))))
+  (label 22)
+  (parent 9)
+  (unrealized (4 0))
+  (comment "7 in cohort - 7 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (a b a-0 b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (gy gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor) (l l-1) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l-1))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (exp (gen) x-0) (mul l-1 (rec x-0))))
+  (defstrand init 3 (na na-0) (a a-0) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 1)) ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-1) (y l) (x-0 l-0))
+  (precur (4 0))
+  (gen-st (pv a l-1) (pv b l) (pv a-0 l-0))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l-1)
+    (undisclosed l))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)))
+  (rule fact-resp-neq0 fact-resp-silly gen-st-ltx-disclose-0
+    trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand init 3) (exp (gen) x-0) (4 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l-1)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-1)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l-1))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l)))
+      (recv
+        (sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-1)) (exp gy x))))))
+    ((recv (cat (exp (gen) x-0) (mul l-1 (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul l-1 (rec x-0)))))
+    ((load priv-stor-1 (cat pt-3 (pv a-0 l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a-0 b-0 (exp (gen) x-0)))))
+  (label 23)
+  (parent 10)
+  (unrealized (3 1) (3 2) (4 0) (5 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (y l l-0 x rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor) (l l-0) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul (rec y) x))) (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (exp (gen) x) (mul l-0 (rec x))))
+  (precedes ((0 2) (4 0)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (4 0))
+  (gen-st (pv a l-0) (pv b l))
+  (facts (silly (exp gy (mul (rec y) x)))
+    (neq (exp gy (mul (rec y) x)) (gen)) (neq a b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 0 init 3) (exp (gen) x-0) (4 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l-0))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l)))
+      (recv
+        (sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul (rec y) x))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) x) (mul l-0 (rec x))))
+      (send (cat (exp (gen) x) (mul l-0 (rec x))))))
+  (label 24)
+  (parent 10)
+  (unrealized (3 1) (3 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor) (l l-0) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (gen) l-0))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((1 1) (4 0)) ((2 1) (3 0))
+    ((2 2) (0 1)) ((3 3) (0 3)) ((4 1) (3 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (4 0))
+  (gen-st (pv a l-0) (pv b l))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (contracted (l-1 l-0) (w l-0)) (gen) (4 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l-0))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l)))
+      (recv
+        (sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (gen) l-0)) (send (cat (gen) l-0))))
+  (label 25)
+  (parent 10)
+  (unrealized (3 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor-0) (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 1 5 ltx-gen 3) (exp (gen) l-1) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 26)
+  (parent 10)
+  (unrealized (2 2))
+  (comment "7 in cohort - 7 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (a b a-0 b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (gy ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor) (l l-1) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l-1))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (exp (gen) y-0) (mul l-1 (rec y-0))))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a-0) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y-0))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 1)) ((5 3) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-1) (y l) (y-0 l-0))
+  (precur (4 0))
+  (gen-st (pv a l-1) (pv b l) (pv b-0 l-0))
+  (facts (silly gx) (silly (exp gy (mul x (rec y)))) (neq gx (gen))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l-1)
+    (undisclosed l))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)))
+  (rule fact-resp-neq0 fact-resp-silly gen-st-ltx-disclose-0
+    trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand resp 4) (exp (gen) y-0) (4 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l-1)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-1)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l-1))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l)))
+      (recv
+        (sig (body a (exp (gen) l-1) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-1)) (exp gy x))))))
+    ((recv (cat (exp (gen) y-0) (mul l-1 (rec y-0))))
+      (send (cat (exp (gen) y-0) (mul l-1 (rec y-0)))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a-0 ga (pubk "sig" a-0)) (privk "sig" a-0)))
+      (recv (cat na-0 a-0 b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a-0 b-0 (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 27)
+  (parent 10)
+  (unrealized (3 1) (3 2) (4 0) (5 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l-0) (mul l (rec l-0))))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 2) (0 1))
+    ((2 2) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0))
+  (gen-st (pv a l) (pv b l-0))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 2 ltx-gen 3) (exp (gen) l-1) (4 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l-0)))
+      (recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) l-0) (mul l (rec l-0))))
+      (send (cat (exp (gen) l-0) (mul l (rec l-0))))))
+  (label 28)
+  (parent 10)
+  (unrealized (3 1) (3 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b self name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gy base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor) (l l-0) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (exp (gen) l-1) (mul l-0 (rec l-1))))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 1)) ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (4 0))
+  (gen-st (pv a l-0) (pv b l))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 3) (exp (gen) l-1) (4 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l-0))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l)))
+      (recv
+        (sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) l-1) (mul l-0 (rec l-1))))
+      (send (cat (exp (gen) l-1) (mul l-0 (rec l-1)))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self l-1)))
+      (send
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 29)
+  (parent 10)
+  (unrealized (3 1) (3 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (gy base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b)
+    (ga (exp (gen) (mul l l-0 (rec l-1)))) (gx (exp gy (mul x (rec y))))
+    (priv-stor priv-stor-1) (l l-1) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul l l-0)) l-1))
+  (defstrand ltx-disclose 3 (self b) (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 2) (0 1)) ((3 3) (0 3))
+    ((4 1) (3 0)) ((4 1) (6 0)) ((5 1) (3 1)) ((6 2) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (gen-st (pv a l) (pv b l-1))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((4 1) (3 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-disclose-at-0
+    trRl_ltx-disclose-at-1 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-disclose 3) l-1 (5 0)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b l-1))))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (recv
+        (sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
+          (privk "sig" a))) (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b l-1))))
+    ((recv (cat (exp (gen) (mul l l-0)) l-1))
+      (send (cat (exp (gen) (mul l l-0)) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (stor priv-stor-1 (cat pt-5 "nil")) (send l-1)))
+  (label 30)
+  (parent 11)
+  (unrealized (3 2) (5 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 3) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (4 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 5 1 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 31)
+  (parent 16)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 1) (4 0)) ((3 2) (2 1)) ((4 3) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (4 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 5 3 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 32)
+  (parent 16)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 3) (2 2)) ((5 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((5 1) (4 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1)))))
+  (label 33)
+  (parent 16)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (4 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 5 1 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0)))))
+  (label 34)
+  (parent 17)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 1) (4 0)) ((3 2) (2 1)) ((4 2) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (4 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 5 3 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0)))))
+  (label 35)
+  (parent 17)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2)) ((5 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((5 1) (4 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1)))))
+  (label 36)
+  (parent 17)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (4 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) l-0))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-0))
+      (send (cat (exp (gen) (mul (rec x) y)) l-0))))
+  (label 37)
+  (parent 19)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) (mul (rec x) l-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (4 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) l-0)) y))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul (rec x) l-0)) y))
+      (send (cat (exp (gen) (mul (rec x) l-0)) y))))
+  (label 38)
+  (parent 19)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) (mul y l-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (4 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y l-0)) x))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul y l-0)) x))
+      (send (cat (exp (gen) (mul y l-0)) x))))
+  (label 39)
+  (parent 19)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (4 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) l-0))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-0))
+      (send (cat (exp (gen) (mul (rec x) y)) l-0))))
+  (label 40)
+  (parent 20)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) (mul (rec x) l-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (4 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) l-0)) y))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul (rec x) l-0)) y))
+      (send (cat (exp (gen) (mul (rec x) l-0)) y))))
+  (label 41)
+  (parent 20)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) (mul y l-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (4 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y l-0)) x))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul y l-0)) x))
+      (send (cat (exp (gen) (mul y l-0)) x))))
+  (label 42)
+  (parent 20)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-1))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-1)) (neq (exp (gen) l-1) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) l-1))
+    (exp (gen) (mul (rec x) y l-1)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-1))
+      (send (cat (exp (gen) (mul (rec x) y)) l-1))))
+  (label 43)
+  (parent 21)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) l-1)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-1)) (neq (exp (gen) l-1) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) l-1)) y))
+    (exp (gen) (mul (rec x) y l-1)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) l-1)) y))
+      (send (cat (exp (gen) (mul (rec x) l-1)) y))))
+  (label 44)
+  (parent 21)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul y l-1)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-1)) (neq (exp (gen) l-1) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y l-1)) x))
+    (exp (gen) (mul (rec x) y l-1)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul y l-1)) x))
+      (send (cat (exp (gen) (mul y l-1)) x))))
+  (label 45)
+  (parent 21)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self a b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (l-1 x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (silly (exp (gen) (mul w x-0)))
+    (neq (exp (gen) (mul w x-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly gen-st-ltx-disclose-0
+    trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand init 3) (exp (gen) x-0) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0)))))
+  (label 46)
+  (parent 22)
+  (unrealized (0 3) (5 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (y l rndx)
+    (w expt) (l-0 x rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y w))) (priv-stor priv-stor-0) (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul w x))) (neq (exp (gen) (mul w x)) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 0 init 3) (exp (gen) x-0) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y w))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))
+  (label 47)
+  (parent 22)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx) (w expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) w)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (gen) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) w)) (neq (exp (gen) w) (gen)) (neq self b)
+    (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (contracted (gy (exp (gen) (mul (rec x) y w))))
+    (gen) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) w)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) w)) (send (cat (gen) w))))
+  (label 48)
+  (parent 22)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y l rndx)
+    (w expt) (l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul w l-0)))
+    (neq (exp (gen) (mul w l-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 1 ltx-gen 3) (exp (gen) l-1) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))
+  (label 49)
+  (parent 22)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (l-1 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 3) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (silly gx) (silly (exp (gen) (mul w y-0))) (neq gx (gen))
+    (neq (exp (gen) (mul w y-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly gen-st-ltx-disclose-0
+    trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand resp 4) (exp (gen) y-0) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0)))))))
+  (label 50)
+  (parent 22)
+  (unrealized (0 3) (5 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y l rndx)
+    (w expt) (l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w l-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((3 2) (4 0)) ((4 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul w l-0)))
+    (neq (exp (gen) (mul w l-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 3 ltx-gen 3) (exp (gen) l-1) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))
+  (label 51)
+  (parent 22)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w l-1))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w l-1))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-1) w))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul w l-1)))
+    (neq (exp (gen) (mul w l-1)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 3) (exp (gen) l-1) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0)))))
+  (label 52)
+  (parent 22)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (a b b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gy gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor) (l l-0) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (exp (gen) x-0) (mul (rec x-0) l-0)))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((1 1) (5 0)) ((2 1) (3 0))
+    ((2 2) (0 1)) ((3 3) (0 3)) ((4 1) (3 1)) ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (precur (4 0))
+  (gen-st (pv a l-0) (pv b l))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (0 0)) ((1 1) (5 0)) ((2 1) (3 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 1 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l-0))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l)))
+      (recv
+        (sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) x-0) (mul (rec x-0) l-0)))
+      (send (cat (exp (gen) x-0) (mul (rec x-0) l-0))))
+    ((load priv-stor (cat pt (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0)))))
+  (label 53)
+  (parent 23)
+  (unrealized (3 1) (3 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (a b b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gy gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l-0) (y y))
+  (deflistener (cat (exp (gen) x-0) (mul l (rec x-0))))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 1) (5 0))
+    ((2 2) (0 1)) ((3 3) (0 3)) ((4 1) (3 1)) ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (precur (4 0))
+  (gen-st (pv a l) (pv b l-0))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)) ((2 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 2 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l-0)))
+      (recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) x-0) (mul l (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul l (rec x-0)))))
+    ((load priv-stor-0 (cat pt-2 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0)))))
+  (label 54)
+  (parent 23)
+  (unrealized (3 1) (3 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (a b a-0 b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gy gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor) (l l-0) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (exp (gen) x-0) (mul l-0 (rec x-0))))
+  (defstrand init 3 (na na-0) (a a-0) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 1)) ((5 2) (4 0)) ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (4 0))
+  (gen-st (pv a l-0) (pv b l) (pv a-0 l-1))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l-0))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l)))
+      (recv
+        (sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) x-0) (mul l-0 (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul l-0 (rec x-0)))))
+    ((load priv-stor-1 (cat pt-3 (pv a-0 l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a-0 b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a-0 l-1)))))
+  (label 55)
+  (parent 23)
+  (unrealized (3 1) (3 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 3) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly gen-st-ltx-disclose-0
+    trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand resp 4) (exp (gen) y-0) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0)))))))
+  (label 56)
+  (parent 26)
+  (unrealized (0 3) (5 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self a b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 2) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly gen-st-ltx-disclose-0
+    trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand init 3) (exp (gen) x-0) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0)))))
+  (label 57)
+  (parent 26)
+  (unrealized (0 3) (5 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (y l l-0 x rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) x)) (neq (exp (gen) x) (gen)) (neq self b)
+    (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 0 init 3) (exp (gen) x-0) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 58)
+  (parent 26)
+  (seen 18)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 4 ltx-gen 3) (exp (gen) l-1) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 59)
+  (parent 26)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 1 ltx-gen 3) (exp (gen) l-1) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 60)
+  (parent 26)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 2) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-1)) (neq (exp (gen) l-1) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 3) (exp (gen) l-1) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0)))))
+  (label 61)
+  (parent 26)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (gy base) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx) (w expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor-0) (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp gy (mul x (rec y) (rec w))) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp gy (mul x (rec y) (rec w))) w))
+    (exp gy (mul x (rec y))) (2 2))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp gy (mul x (rec y) (rec w))) w))
+      (send (cat (exp gy (mul x (rec y) (rec w))) w))))
+  (label 62)
+  (parent 26)
+  (unrealized (5 0))
+  (comment "7 in cohort - 7 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (a b a-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gy ga gx base)
+    (priv-stor priv-stor-0 locn) (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor) (l l-0) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (exp (gen) y-0) (mul (rec y-0) l-0)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a-0) (b a) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((1 1) (5 0)) ((2 1) (3 0))
+    ((2 2) (0 1)) ((3 3) (0 3)) ((4 1) (3 1)) ((5 3) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (precur (4 0))
+  (gen-st (pv a l-0) (pv b l))
+  (facts (silly gx) (silly (exp gy (mul x (rec y)))) (neq gx (gen))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (0 0)) ((1 1) (5 0)) ((2 1) (3 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 1 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l-0))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l)))
+      (recv
+        (sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) y-0) (mul (rec y-0) l-0)))
+      (send (cat (exp (gen) y-0) (mul (rec y-0) l-0))))
+    ((load priv-stor (cat pt (pv a l-0)))
+      (recv (sig (body a-0 ga (pubk "sig" a-0)) (privk "sig" a-0)))
+      (recv (cat na-0 a-0 a gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a-0 a (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 63)
+  (parent 27)
+  (unrealized (3 1) (3 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (a b a-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gy ga gx base)
+    (priv-stor priv-stor-0 locn) (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l-0) (y y))
+  (deflistener (cat (exp (gen) y-0) (mul l (rec y-0))))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a-0) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 1) (5 0))
+    ((2 2) (0 1)) ((3 3) (0 3)) ((4 1) (3 1)) ((5 3) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (4 0))
+  (gen-st (pv a l) (pv b l-0))
+  (facts (silly gx) (silly (exp gy (mul x (rec y)))) (neq gx (gen))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)) ((2 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 2 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l-0)))
+      (recv (sig (body a (exp (gen) l) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) y-0) (mul l (rec y-0))))
+      (send (cat (exp (gen) y-0) (mul l (rec y-0)))))
+    ((load priv-stor-0 (cat pt-2 (pv b l-0)))
+      (recv (sig (body a-0 ga (pubk "sig" a-0)) (privk "sig" a-0)))
+      (recv (cat na-0 a-0 b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a-0 b (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 64)
+  (parent 27)
+  (unrealized (3 1) (3 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (a b a-0 b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (gy ga gx base) (priv-stor priv-stor-0 priv-stor-1 locn)
+    (x y l l-0 y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l))
+    (gy gy) (priv-stor priv-stor) (l l-0) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ga (exp (gen) l-0))
+    (gx (exp gy (mul x (rec y)))) (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (exp (gen) y-0) (mul l-0 (rec y-0))))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a-0) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (3 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 1)) ((5 3) (4 0)) ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (4 0))
+  (gen-st (pv a l-0) (pv b l) (pv b-0 l-1))
+  (facts (silly gx) (silly (exp gy (mul x (rec y)))) (neq gx (gen))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (0 0)) ((2 1) (3 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l-0))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-0 (cat pt-2 (pv b l)))
+      (recv
+        (sig (body a (exp (gen) l-0) (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((recv (cat (exp (gen) y-0) (mul l-0 (rec y-0))))
+      (send (cat (exp (gen) y-0) (mul l-0 (rec y-0)))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a-0 ga (pubk "sig" a-0)) (privk "sig" a-0)))
+      (recv (cat na-0 a-0 b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a-0 b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1)))))
+  (label 65)
+  (parent 27)
+  (unrealized (3 1) (3 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (gy base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b)
+    (ga (exp (gen) (mul l l-0 (rec l-1)))) (gx (exp gy (mul x (rec y))))
+    (priv-stor priv-stor-1) (l l-1) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul l l-0)) l-1))
+  (defstrand ltx-disclose 3 (self b) (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) l) l-0))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((2 1) (7 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 0)) ((4 1) (6 0)) ((5 1) (3 1))
+    ((6 2) (5 0)) ((7 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (gen-st (pv a l) (pv b l-1))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((4 1) (3 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-disclose-at-0
+    trRl_ltx-disclose-at-1 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) l) l-0))
+    (exp (gen) (mul l l-0)) (5 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (recv
+        (sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
+          (privk "sig" a))) (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b l-1))))
+    ((recv (cat (exp (gen) (mul l l-0)) l-1))
+      (send (cat (exp (gen) (mul l l-0)) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (stor priv-stor-1 (cat pt-5 "nil")) (send l-1))
+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0))))
+  (label 66)
+  (parent 30)
+  (unrealized (3 2) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data) (a b name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (gy base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (gb (exp (gen) l-0))
+    (gy gy) (priv-stor priv-stor) (l l) (x x))
+  (defstrand ltx-gen 2 (ignore ignore) (self a) (priv-stor priv-stor)
+    (l l))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self b)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b)
+    (ga (exp (gen) (mul l l-0 (rec l-1)))) (gx (exp gy (mul x (rec y))))
+    (priv-stor priv-stor-1) (l l-1) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul l l-0)) l-1))
+  (defstrand ltx-disclose 3 (self b) (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) l-0) l))
+  (precedes ((0 2) (3 2)) ((1 1) (0 0)) ((1 1) (7 0)) ((2 2) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 0)) ((4 1) (6 0)) ((5 1) (3 1))
+    ((6 2) (5 0)) ((7 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (gen-st (pv a l) (pv b l-1))
+  (facts (silly (exp gy (mul x (rec y))))
+    (neq (exp gy (mul x (rec y))) (gen)) (neq a b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (0 0)) ((4 1) (3 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-disclose-at-0
+    trRl_ltx-disclose-at-1 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) l-0) l))
+    (exp (gen) (mul l l-0)) (5 0))
+  (traces
+    ((load priv-stor (cat pt (pv a l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat gy
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor (cat pt-0 ignore))
+      (stor priv-stor (cat pt (pv a l))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (recv
+        (sig (body a (exp (gen) (mul l l-0 (rec l-1))) (pubk "sig" a))
+          (privk "sig" a))) (recv (cat na a b (exp gy (mul x (rec y)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b (hash (exp (gen) (mul l l-0)) (exp gy x))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b l-1))))
+    ((recv (cat (exp (gen) (mul l l-0)) l-1))
+      (send (cat (exp (gen) (mul l l-0)) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv b l-1)))
+      (stor priv-stor-1 (cat pt-5 "nil")) (send l-1))
+    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l))))
+  (label 67)
+  (parent 30)
+  (unrealized (3 2) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 3) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (4 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) y-0))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) y-0))
+      (send (cat (exp (gen) (mul (rec x) y)) y-0))))
+  (label 68)
+  (parent 31)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 3) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (4 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y-0)) y))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y-0)) y))
+      (send (cat (exp (gen) (mul (rec x) y-0)) y))))
+  (label 69)
+  (parent 31)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul y y-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 3) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (4 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y y-0)) x))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul y y-0)) x))
+      (send (cat (exp (gen) (mul y y-0)) x))))
+  (label 70)
+  (parent 31)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 1) (4 0)) ((3 2) (2 1)) ((4 3) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (4 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) y-0))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) y-0))
+      (send (cat (exp (gen) (mul (rec x) y)) y-0))))
+  (label 71)
+  (parent 32)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 1) (4 0)) ((3 2) (2 1)) ((4 3) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (4 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y-0)) y))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y-0)) y))
+      (send (cat (exp (gen) (mul (rec x) y-0)) y))))
+  (label 72)
+  (parent 32)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul y y-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 1) (4 0)) ((3 2) (2 1)) ((4 3) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (4 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y y-0)) x))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul y y-0)) x))
+      (send (cat (exp (gen) (mul y y-0)) x))))
+  (label 73)
+  (parent 32)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 3) (2 2)) ((5 1) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((5 1) (4 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) y-0))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) y-0))
+      (send (cat (exp (gen) (mul (rec x) y)) y-0))))
+  (label 74)
+  (parent 33)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 3) (2 2)) ((5 1) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((5 1) (4 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y-0)) y))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) y-0)) y))
+      (send (cat (exp (gen) (mul (rec x) y-0)) y))))
+  (label 75)
+  (parent 33)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul y y-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 3) (2 2)) ((5 1) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((5 1) (4 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y y-0)) x))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1))))
+    ((recv (cat (exp (gen) (mul y y-0)) x))
+      (send (cat (exp (gen) (mul y y-0)) x))))
+  (label 76)
+  (parent 33)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (4 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) x-0))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) x-0))
+      (send (cat (exp (gen) (mul (rec x) y)) x-0))))
+  (label 77)
+  (parent 34)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) x-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (4 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) x-0)) y))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) x-0)) y))
+      (send (cat (exp (gen) (mul (rec x) x-0)) y))))
+  (label 78)
+  (parent 34)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul y x-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (4 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y x-0)) x))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul y x-0)) x))
+      (send (cat (exp (gen) (mul y x-0)) x))))
+  (label 79)
+  (parent 34)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 1) (4 0)) ((3 2) (2 1)) ((4 2) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (4 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) x-0))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) x-0))
+      (send (cat (exp (gen) (mul (rec x) y)) x-0))))
+  (label 80)
+  (parent 35)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) x-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 1) (4 0)) ((3 2) (2 1)) ((4 2) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (4 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) x-0)) y))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) x-0)) y))
+      (send (cat (exp (gen) (mul (rec x) x-0)) y))))
+  (label 81)
+  (parent 35)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul y x-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 1) (4 0)) ((3 2) (2 1)) ((4 2) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (4 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y x-0)) x))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul y x-0)) x))
+      (send (cat (exp (gen) (mul y x-0)) x))))
+  (label 82)
+  (parent 35)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2)) ((5 1) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((5 1) (4 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) x-0))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) x-0))
+      (send (cat (exp (gen) (mul (rec x) y)) x-0))))
+  (label 83)
+  (parent 36)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) x-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2)) ((5 1) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((5 1) (4 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) x-0)) y))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) x-0)) y))
+      (send (cat (exp (gen) (mul (rec x) x-0)) y))))
+  (label 84)
+  (parent 36)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul y x-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 2) (2 2)) ((5 1) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((5 1) (4 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y x-0)) x))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1))))
+    ((recv (cat (exp (gen) (mul y x-0)) x))
+      (send (cat (exp (gen) (mul y x-0)) x))))
+  (label 85)
+  (parent 36)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-1))
+  (defstrand ltx-disclose 3 (self self-0) (priv-stor priv-stor-1)
+    (l l-1))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (6 0)) ((4 2) (2 2))
+    ((5 1) (0 3)) ((6 2) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0) (pv self-0 l-1))
+  (facts (silly (exp (gen) l-1)) (neq (exp (gen) l-1) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly gen-st-ltx-disclose-0
+    trRl_ltx-disclose-at-0 trRl_ltx-disclose-at-1 trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-disclose 3) l-1 (5 0)
+    (ch-msg priv-stor-1 (cat pt-4 (pv self-0 l-1))))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-1))
+      (send (cat (exp (gen) (mul (rec x) y)) l-1)))
+    ((load priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (stor priv-stor-1 (cat pt-5 "nil")) (send l-1)))
+  (label 86)
+  (parent 43)
+  (unrealized (5 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (precur (4 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul w x-0)))
+    (neq (exp (gen) (mul w x-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 1 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0)))))
+  (label 87)
+  (parent 46)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul w x-0)))
+    (neq (exp (gen) (mul w x-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 3 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0)))))
+  (label 88)
+  (parent 46)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (silly (exp (gen) (mul w x-0)))
+    (neq (exp (gen) (mul w x-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1)))))
+  (label 89)
+  (parent 46)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (y l rndx)
+    (w expt) (l-0 x rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y w))) (priv-stor priv-stor-0) (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul w x))) (neq (exp (gen) (mul w x)) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation generalization deleted (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y w))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))))
+  (label 90)
+  (parent 47)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a self) (b b) (l l-0) (l-peer l) (x x)
+        (gy (exp (gen) (mul y w))) (na na) (nb nb)
+        (priv-stor priv-stor-0))))
+  (origs (na (0 2)) (l-0 (3 1)) (pt-2 (3 1)) (l (1 1)) (pt-0 (1 1))
+    (nb (2 3))))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l x l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) x))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x)) (neq (exp (gen) x) (gen)) (neq self b)
+    (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) x)) (send (cat (gen) x))))
+  (label 91)
+  (parent 48)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx) (w w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) w)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (gen) w))
+  (deflistener (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) w)) (neq (exp (gen) w) (gen)) (neq self b)
+    (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) w)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) w)) (send (cat (gen) w)))
+    ((recv (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))))
+  (label 92)
+  (parent 48)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l x l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) (mul x (rec l-0))))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x)) (neq (exp (gen) x) (gen)) (neq self b)
+    (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (mul x (rec l-0))))
+      (send (cat (exp (gen) l-0) (mul x (rec l-0))))))
+  (label 93)
+  (parent 49)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y l rndx)
+    (w expt) (l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) w))
+  (deflistener (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul w l-0)))
+    (neq (exp (gen) (mul w l-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
+    ((recv (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))))
+  (label 94)
+  (parent 49)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (4 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) (mul w y-0))) (neq gx (gen))
+    (neq (exp (gen) (mul w y-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 1 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 95)
+  (parent 50)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly gx) (silly (exp (gen) (mul w y-0))) (neq gx (gen))
+    (neq (exp (gen) (mul w y-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 3 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 96)
+  (parent 50)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 3) (4 0))
+    ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (4 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (silly gx) (silly (exp (gen) (mul w y-0))) (neq gx (gen))
+    (neq (exp (gen) (mul w y-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1)))))
+  (label 97)
+  (parent 50)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x l l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l) (mul x (rec l))))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((3 2) (4 0)) ((4 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x)) (neq (exp (gen) x) (gen)) (neq self b)
+    (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 5 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l) (mul x (rec l))))
+      (send (cat (exp (gen) l) (mul x (rec l))))))
+  (label 98)
+  (parent 51)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y l rndx)
+    (w expt) (l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w l-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) w))
+  (deflistener (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((3 2) (4 0)) ((4 1) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul w l-0)))
+    (neq (exp (gen) (mul w l-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
+    ((recv (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))))
+  (label 99)
+  (parent 51)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l x l-0 l-1 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) (mul x (rec l-0))))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (precur (4 0))
+  (gen-st (pv b l-1) (pv self l))
+  (facts (silly (exp (gen) x)) (neq (exp (gen) x) (gen)) (neq self b)
+    (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (mul x (rec l-0))))
+      (send (cat (exp (gen) l-0) (mul x (rec l-0)))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-0)))
+      (send
+        (sig (body self-0 (exp (gen) l-0) (pubk "sig" self-0))
+          (privk "sig" self-0)))))
+  (label 100)
+  (parent 52)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (l-1 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w l-1))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w l-1))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-1) w))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y w l-1 (rec w-0))) w-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul w l-1)))
+    (neq (exp (gen) (mul w l-1)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w l-1 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w l-1)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y w l-1 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w l-1 (rec w-0))) w-0))))
+  (label 101)
+  (parent 52)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 3) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 1 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 102)
+  (parent 56)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (5 0)) ((4 2) (3 0))
+    ((5 3) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 4 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 103)
+  (parent 56)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 3) (2 2))
+    ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1)))))
+  (label 104)
+  (parent 56)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 2) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 1 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0)))))
+  (label 105)
+  (parent 57)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (5 0)) ((4 2) (3 0))
+    ((5 2) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 6 4 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0)))))
+  (label 106)
+  (parent 57)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 2) (2 2))
+    ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1)))))
+  (label 107)
+  (parent 57)
+  (unrealized (0 3))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) l-0))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-0))
+      (send (cat (exp (gen) (mul (rec x) y)) l-0))))
+  (label 108)
+  (parent 59)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) (mul (rec x) l-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) l-0)) y))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul (rec x) l-0)) y))
+      (send (cat (exp (gen) (mul (rec x) l-0)) y))))
+  (label 109)
+  (parent 59)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) (mul y l-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y l-0)) x))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul y l-0)) x))
+      (send (cat (exp (gen) (mul y l-0)) x))))
+  (label 110)
+  (parent 59)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) l-0))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-0))
+      (send (cat (exp (gen) (mul (rec x) y)) l-0))))
+  (label 111)
+  (parent 60)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) (mul (rec x) l-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) l-0)) y))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul (rec x) l-0)) y))
+      (send (cat (exp (gen) (mul (rec x) l-0)) y))))
+  (label 112)
+  (parent 60)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) (mul y l-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y l-0)) x))
+    (exp (gen) (mul (rec x) y l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) (mul y l-0)) x))
+      (send (cat (exp (gen) (mul y l-0)) x))))
+  (label 113)
+  (parent 60)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-1))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 2) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-1)) (neq (exp (gen) l-1) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) l-1))
+    (exp (gen) (mul (rec x) y l-1)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-1))
+      (send (cat (exp (gen) (mul (rec x) y)) l-1))))
+  (label 114)
+  (parent 61)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) l-1)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 2) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-1)) (neq (exp (gen) l-1) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) l-1)) y))
+    (exp (gen) (mul (rec x) y l-1)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) l-1)) y))
+      (send (cat (exp (gen) (mul (rec x) l-1)) y))))
+  (label 115)
+  (parent 61)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul y l-1)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 2) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-1)) (neq (exp (gen) l-1) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y l-1)) x))
+    (exp (gen) (mul (rec x) y l-1)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul y l-1)) x))
+      (send (cat (exp (gen) (mul y l-1)) x))))
+  (label 116)
+  (parent 61)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self a b-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (l-1 x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (silly (exp (gen) (mul w x-0)))
+    (neq (exp (gen) (mul w x-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly gen-st-ltx-disclose-0
+    trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand init 3) (exp (gen) x-0) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0)))))
+  (label 117)
+  (parent 62)
+  (unrealized (0 3) (6 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (y l rndx)
+    (w expt) (l-0 x rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y w))) (priv-stor priv-stor-0) (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul w x))) (neq (exp (gen) (mul w x)) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 0 init 3) (exp (gen) x-0) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y w))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))
+  (label 118)
+  (parent 62)
+  (seen 47)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx) (w expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) w)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (gen) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) w)) (neq (exp (gen) w) (gen)) (neq self b)
+    (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (contracted (gy (exp (gen) (mul (rec x) y w))))
+    (gen) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) w)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) w)) (send (cat (gen) w))))
+  (label 119)
+  (parent 62)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y l rndx)
+    (w expt) (l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul w l-0)))
+    (neq (exp (gen) (mul w l-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 1 ltx-gen 3) (exp (gen) l-1) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))
+  (label 120)
+  (parent 62)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (l-1 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 3) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (silly gx) (silly (exp (gen) (mul w y-0))) (neq gx (gen))
+    (neq (exp (gen) (mul w y-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly gen-st-ltx-disclose-0
+    trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand resp 4) (exp (gen) y-0) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0)))))))
+  (label 121)
+  (parent 62)
+  (unrealized (0 3) (6 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y l rndx)
+    (w expt) (l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w l-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((4 2) (5 0))
+    ((5 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul w l-0)))
+    (neq (exp (gen) (mul w l-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 4 ltx-gen 3) (exp (gen) l-1) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))
+  (label 122)
+  (parent 62)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w l-1))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w l-1))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-1) w))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul w l-1)))
+    (neq (exp (gen) (mul w l-1)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 3) (exp (gen) l-1) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-1)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0)))))
+  (label 123)
+  (parent 62)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-1))
+  (defstrand ltx-disclose 3 (self self-0) (priv-stor priv-stor-1)
+    (l l-1))
+  (deflistener (cat (exp (gen) (rec x)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (6 0)) ((4 2) (2 2))
+    ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0) (pv self-0 l-1))
+  (facts (silly (exp (gen) l-1)) (neq (exp (gen) l-1) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-disclose-at-0
+    trRl_ltx-disclose-at-1 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (rec x)) y))
+    (exp (gen) (mul (rec x) y)) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-1))
+      (send (cat (exp (gen) (mul (rec x) y)) l-1)))
+    ((load priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (stor priv-stor-1 (cat pt-5 "nil")) (send l-1))
+    ((recv (cat (exp (gen) (rec x)) y))
+      (send (cat (exp (gen) (rec x)) y))))
+  (label 124)
+  (parent 86)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-1))
+  (defstrand ltx-disclose 3 (self self-0) (priv-stor priv-stor-1)
+    (l l-1))
+  (deflistener (cat (exp (gen) y) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (6 0)) ((4 2) (2 2))
+    ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (gen-st (pv b l) (pv self l-0) (pv self-0 l-1))
+  (facts (silly (exp (gen) l-1)) (neq (exp (gen) l-1) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-disclose-at-0
+    trRl_ltx-disclose-at-1 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) y) x))
+    (exp (gen) (mul (rec x) y)) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-1))
+      (send (cat (exp (gen) (mul (rec x) y)) l-1)))
+    ((load priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (stor priv-stor-1 (cat pt-5 "nil")) (send l-1))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
+  (label 125)
+  (parent 86)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l x x-0 l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l-0) (y l-0))
+  (precur (4 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x)) (neq (exp (gen) x) (gen)) (neq self b)
+    (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0)))))
+  (label 126)
+  (parent 87)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (x-0 l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul w x-0)))
+    (neq (exp (gen) (mul w x-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))))
+  (label 127)
+  (parent 87)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l x x-0 l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l) (x x-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l) (y l-0))
+  (precur (4 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x)) (neq (exp (gen) x) (gen)) (neq self b)
+    (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0)))))
+  (label 128)
+  (parent 88)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (x-0 l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul w x-0)))
+    (neq (exp (gen) (mul w x-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))))
+  (label 129)
+  (parent 88)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x x-0 l-1 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l-0) (y l-1))
+  (precur (4 0))
+  (gen-st (pv b l-1) (pv self l) (pv a l-0))
+  (facts (silly (exp (gen) x)) (neq (exp (gen) x) (gen)) (neq self b)
+    (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-0)))))
+  (label 130)
+  (parent 89)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (x-0 l-1 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (silly (exp (gen) (mul w x-0)))
+    (neq (exp (gen) (mul w x-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))))
+  (label 131)
+  (parent 89)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l x rndx)
+    (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) (mul x w)))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul x w))) (neq (exp (gen) (mul x w)) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-0) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 132)
+  (parent 92)
+  (unrealized (4 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l x rndx)
+    (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) (mul x w (rec l-0))))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul x w))) (neq (exp (gen) (mul x w)) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-0) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (mul x w (rec l-0))))
+      (send (cat (exp (gen) l-0) (mul x w (rec l-0)))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 133)
+  (parent 94)
+  (unrealized (4 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l x y l-0 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y-0)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y))))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (4 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) x)) (neq gx (gen))
+    (neq (exp (gen) x) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-1) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y))))
+      (send (cat (exp (gen) y) (mul x (rec y)))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y)))))))
+  (label 134)
+  (parent 95)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (y-0 l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) (mul w y-0))) (neq gx (gen))
+    (neq (exp (gen) (mul w y-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))))
+  (label 135)
+  (parent 95)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l x y l-0 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y-0)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y))))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l) (y y))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l) (y-0 l-0))
+  (precur (4 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) x)) (neq gx (gen))
+    (neq (exp (gen) x) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-1) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y))))
+      (send (cat (exp (gen) y) (mul x (rec y)))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a self (hash (exp ga l) (exp gx y)))))))
+  (label 136)
+  (parent 96)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (y-0 l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly gx) (silly (exp (gen) (mul w y-0))) (neq gx (gen))
+    (neq (exp (gen) (mul w y-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))))
+  (label 137)
+  (parent 96)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y l-1 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) y-0)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-1) (y y-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y))))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 3) (4 0))
+    ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-1))
+  (precur (4 0))
+  (gen-st (pv b l-1) (pv self l) (pv b-0 l-0))
+  (facts (silly gx) (silly (exp (gen) x)) (neq gx (gen))
+    (neq (exp (gen) x) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-1) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y))))
+      (send (cat (exp (gen) y) (mul x (rec y)))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-0) (exp gx y))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-0)))))
+  (label 138)
+  (parent 97)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (y-0 l-1 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 3) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (silly gx) (silly (exp (gen) (mul w y-0))) (neq gx (gen))
+    (neq (exp (gen) (mul w y-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))))
+  (label 139)
+  (parent 97)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x l rndx)
+    (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l) (mul x (rec l) w)))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((3 2) (4 0)) ((4 1) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul x w))) (neq (exp (gen) (mul x w)) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-0) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l) (mul x (rec l) w)))
+      (send (cat (exp (gen) l) (mul x (rec l) w))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 140)
+  (parent 99)
+  (unrealized (4 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l x l-0 rndx) (w expt)
+    (l-1 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) (mul x (rec l-0) w)))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-1) (pv self l))
+  (facts (silly (exp (gen) (mul x w))) (neq (exp (gen) (mul x w)) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-0) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (mul x (rec l-0) w)))
+      (send (cat (exp (gen) l-0) (mul x (rec l-0) w))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-0)))
+      (send
+        (sig (body self-0 (exp (gen) l-0) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 141)
+  (parent 101)
+  (unrealized (4 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 3) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) y-0))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) y-0))
+      (send (cat (exp (gen) (mul (rec x) y)) y-0))))
+  (label 142)
+  (parent 102)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 3) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y-0)) y))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y-0)) y))
+      (send (cat (exp (gen) (mul (rec x) y-0)) y))))
+  (label 143)
+  (parent 102)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul y y-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 3) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y y-0)) x))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul y y-0)) x))
+      (send (cat (exp (gen) (mul y y-0)) x))))
+  (label 144)
+  (parent 102)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (5 0)) ((4 2) (3 0))
+    ((5 3) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) y-0))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) y-0))
+      (send (cat (exp (gen) (mul (rec x) y)) y-0))))
+  (label 145)
+  (parent 103)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (5 0)) ((4 2) (3 0))
+    ((5 3) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y-0)) y))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y-0)) y))
+      (send (cat (exp (gen) (mul (rec x) y-0)) y))))
+  (label 146)
+  (parent 103)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul y y-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (5 0)) ((4 2) (3 0))
+    ((5 3) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y y-0)) x))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul y y-0)) x))
+      (send (cat (exp (gen) (mul y y-0)) x))))
+  (label 147)
+  (parent 103)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) y-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 3) (2 2))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) y-0))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) y-0))
+      (send (cat (exp (gen) (mul (rec x) y)) y-0))))
+  (label 148)
+  (parent 104)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 3) (2 2))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y-0)) y))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) y-0)) y))
+      (send (cat (exp (gen) (mul (rec x) y-0)) y))))
+  (label 149)
+  (parent 104)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y y-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul y y-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 3) (2 2))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y y-0)) x))
+    (exp (gen) (mul (rec x) y y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1))))
+    ((recv (cat (exp (gen) (mul y y-0)) x))
+      (send (cat (exp (gen) (mul y y-0)) x))))
+  (label 150)
+  (parent 104)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 2) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) x-0))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) x-0))
+      (send (cat (exp (gen) (mul (rec x) y)) x-0))))
+  (label 151)
+  (parent 105)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) x-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 2) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) x-0)) y))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) x-0)) y))
+      (send (cat (exp (gen) (mul (rec x) x-0)) y))))
+  (label 152)
+  (parent 105)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul y x-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 2) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y x-0)) x))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul y x-0)) x))
+      (send (cat (exp (gen) (mul y x-0)) x))))
+  (label 153)
+  (parent 105)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (5 0)) ((4 2) (3 0))
+    ((5 2) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) x-0))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) x-0))
+      (send (cat (exp (gen) (mul (rec x) y)) x-0))))
+  (label 154)
+  (parent 106)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) x-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (5 0)) ((4 2) (3 0))
+    ((5 2) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) x-0)) y))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) x-0)) y))
+      (send (cat (exp (gen) (mul (rec x) x-0)) y))))
+  (label 155)
+  (parent 106)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul y x-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (5 0)) ((4 2) (3 0))
+    ((5 2) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y x-0)) x))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul y x-0)) x))
+      (send (cat (exp (gen) (mul y x-0)) x))))
+  (label 156)
+  (parent 106)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) x-0))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 2) (2 2))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y)) x-0))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) x-0))
+      (send (cat (exp (gen) (mul (rec x) y)) x-0))))
+  (label 157)
+  (parent 107)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) x-0)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 2) (2 2))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) x-0)) y))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) x-0)) y))
+      (send (cat (exp (gen) (mul (rec x) x-0)) y))))
+  (label 158)
+  (parent 107)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y x-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul y x-0)) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 2) (2 2))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (mul y x-0)) x))
+    (exp (gen) (mul (rec x) y x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1))))
+    ((recv (cat (exp (gen) (mul y x-0)) x))
+      (send (cat (exp (gen) (mul y x-0)) x))))
+  (label 159)
+  (parent 107)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-1))
+  (defstrand ltx-disclose 3 (self self-0) (priv-stor priv-stor-1)
+    (l l-1))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (7 0))
+    ((5 2) (2 2)) ((6 1) (0 3)) ((7 2) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv self-0 l-1))
+  (facts (silly (exp (gen) l-1)) (neq (exp (gen) l-1) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((5 1) (7 0)))
+  (rule fact-resp-neq0 fact-resp-silly gen-st-ltx-disclose-0
+    trRl_ltx-disclose-at-0 trRl_ltx-disclose-at-1 trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-disclose 3) l-1 (6 0)
+    (ch-msg priv-stor-1 (cat pt-4 (pv self-0 l-1))))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-1))
+      (send (cat (exp (gen) (mul (rec x) y)) l-1)))
+    ((load priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (stor priv-stor-1 (cat pt-5 "nil")) (send l-1)))
+  (label 160)
+  (parent 114)
+  (unrealized (6 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul w x-0)))
+    (neq (exp (gen) (mul w x-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 7 1 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0)))))
+  (label 161)
+  (parent 117)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul w x-0)))
+    (neq (exp (gen) (mul w x-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 7 4 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0)))))
+  (label 162)
+  (parent 117)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (silly (exp (gen) (mul w x-0)))
+    (neq (exp (gen) (mul w x-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv a l-1))) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1)))))
+  (label 163)
+  (parent 117)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l x l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) x))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x)) (neq (exp (gen) x) (gen)) (neq self b)
+    (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) x)) (send (cat (gen) x))))
+  (label 164)
+  (parent 119)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x y l l-0 rndx) (w w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) w)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (gen) w))
+  (deflistener (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) w)) (neq (exp (gen) w) (gen)) (neq self b)
+    (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) w)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) w)) (send (cat (gen) w)))
+    ((recv (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w (rec w-0))) w-0))))
+  (label 165)
+  (parent 119)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l x l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) (mul x (rec l-0))))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x)) (neq (exp (gen) x) (gen)) (neq self b)
+    (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (mul x (rec l-0))))
+      (send (cat (exp (gen) l-0) (mul x (rec l-0))))))
+  (label 166)
+  (parent 120)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y l rndx)
+    (w expt) (l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) w))
+  (deflistener (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul w l-0)))
+    (neq (exp (gen) (mul w l-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
+    ((recv (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))))
+  (label 167)
+  (parent 120)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) (mul w y-0))) (neq gx (gen))
+    (neq (exp (gen) (mul w y-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 7 1 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 168)
+  (parent 121)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly gx) (silly (exp (gen) (mul w y-0))) (neq gx (gen))
+    (neq (exp (gen) (mul w y-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (displaced 7 4 ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0)))))))
+  (label 169)
+  (parent 121)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 3) (5 0)) ((7 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (silly gx) (silly (exp (gen) (mul w y-0))) (neq gx (gen))
+    (neq (exp (gen) (mul w y-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation channel-test (added-strand ltx-gen 2)
+    (ch-msg priv-stor-1 (cat pt-3 (pv b-0 l-1))) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1)))))
+  (label 170)
+  (parent 121)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (x l l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l) (mul x (rec l))))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((4 2) (5 0))
+    ((5 1) (2 2)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x)) (neq (exp (gen) x) (gen)) (neq self b)
+    (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l) (mul x (rec l))))
+      (send (cat (exp (gen) l) (mul x (rec l))))))
+  (label 171)
+  (parent 122)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x y l rndx)
+    (w expt) (l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w l-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) w))
+  (deflistener (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((4 2) (5 0))
+    ((5 1) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul w l-0)))
+    (neq (exp (gen) (mul w l-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w l-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
+    ((recv (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w l-0 (rec w-0))) w-0))))
+  (label 172)
+  (parent 122)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l x l-0 l-1 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) (mul x (rec l-0))))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-1) (pv self l))
+  (facts (silly (exp (gen) x)) (neq (exp (gen) x) (gen)) (neq self b)
+    (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (mul x (rec l-0))))
+      (send (cat (exp (gen) l-0) (mul x (rec l-0)))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-0)))
+      (send
+        (sig (body self-0 (exp (gen) l-0) (pubk "sig" self-0))
+          (privk "sig" self-0)))))
+  (label 173)
+  (parent 123)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (l-1 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w l-1))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w l-1))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-1) w))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y w l-1 (rec w-0))) w-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul w l-1)))
+    (neq (exp (gen) (mul w l-1)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w l-1 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w l-1)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w l-1)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y w l-1 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w l-1 (rec w-0))) w-0))))
+  (label 174)
+  (parent 123)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l x x-0 rndx) (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l-0) (y l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul x w))) (neq (exp (gen) (mul x w)) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-0) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 175)
+  (parent 127)
+  (unrealized (4 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l x x-0 rndx) (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l) (x x-0))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l) (y l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul x w))) (neq (exp (gen) (mul x w)) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-0) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 176)
+  (parent 129)
+  (unrealized (4 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x x-0 rndx) (w expt)
+    (l-1 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l-0) (y l-1))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-1) (pv self l) (pv a l-0))
+  (facts (silly (exp (gen) (mul x w))) (neq (exp (gen) (mul x w)) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 2 resp 4) (exp (gen) y-0) (7 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-0))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 177)
+  (parent 131)
+  (unrealized (4 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 1 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-0)) (send (cat (gen) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))))
+  (label 178)
+  (parent 132)
+  (unrealized (0 3) (4 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (gen) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 3 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-0)) (send (cat (gen) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))))
+  (label 179)
+  (parent 132)
+  (unrealized (0 3) (4 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3))
+    ((6 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) l-1)) (neq (exp (gen) l-1) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 180)
+  (parent 132)
+  (unrealized (0 3) (4 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l x rndx)
+    (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) (mul x w)))
+  (deflistener (cat (exp (gen) y) w))
+  (deflistener x)
+  (precedes ((0 2) (6 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3))
+    ((6 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul x w))) (neq (exp (gen) (mul x w)) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul x w) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
+    ((recv x) (send x)))
+  (label 181)
+  (parent 132)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul l-0 l-0)))
+    (neq (exp (gen) (mul l-0 l-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 1 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-0)) (send (cat (exp (gen) l-0) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-0)))))
+  (label 182)
+  (parent 133)
+  (unrealized (0 3) (4 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (w (mul (rec x) l-0)) (l-1 l-0)) (one) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))))
+  (label 183)
+  (parent 133)
+  (unrealized (0 3) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (y x l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul l l-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul l l-0)))
+    (neq (exp (gen) (mul l l-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 3 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l l-0)))))
+  (label 184)
+  (parent 133)
+  (unrealized (0 3) (4 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l y x l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 1) (0 3))
+    ((6 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul l-0 l-1)))
+    (neq (exp (gen) (mul l-0 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 185)
+  (parent 133)
+  (unrealized (0 3) (4 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l x y rndx) (w expt) (l-0 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y-0))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) w)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) y-0) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) (mul x w))) (neq gx (gen))
+    (neq (exp (gen) (mul x w)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-1) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) w)))
+      (send (cat (exp (gen) y) (mul x (rec y) w))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y))))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w))))
+  (label 186)
+  (parent 135)
+  (unrealized (4 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l x y rndx) (w expt) (l-0 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y-0))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) w)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (exp (gen) y-0) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l) (y-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) (mul x w))) (neq gx (gen))
+    (neq (exp (gen) (mul x w)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-1) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) w)))
+      (send (cat (exp (gen) y) (mul x (rec y) w))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a self (hash (exp ga l) (exp gx y))))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w))))
+  (label 187)
+  (parent 137)
+  (unrealized (4 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y rndx) (w expt)
+    (l-1 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul w y-0))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-1) (y y-0))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) w)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 3) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-1))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-1) (pv self l) (pv b-0 l-0))
+  (facts (silly gx) (silly (exp (gen) (mul x w))) (neq gx (gen))
+    (neq (exp (gen) (mul x w)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 2 resp 4) (exp (gen) y-1) (7 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) w)))
+      (send (cat (exp (gen) y) (mul x (rec y) w))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-0) (exp gx y))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-0))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w))))
+  (label 188)
+  (parent 139)
+  (unrealized (4 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (y x l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((3 2) (4 0)) ((4 1) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul l l-0)))
+    (neq (exp (gen) (mul l l-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 1 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l l-0)))))
+  (label 189)
+  (parent 140)
+  (unrealized (0 3) (4 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((3 2) (4 0)) ((4 1) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (l-1 l-0) (w (mul (rec x) l-0))) (one) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))))
+  (label 190)
+  (parent 140)
+  (unrealized (0 3) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul l-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((3 2) (4 0)) ((4 1) (2 2))
+    ((5 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul l-0 l-0)))
+    (neq (exp (gen) (mul l-0 l-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 6 3 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-0)) (send (cat (exp (gen) l-0) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-0)))))
+  (label 191)
+  (parent 140)
+  (unrealized (0 3) (4 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l y x l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0 l-1))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul l-0 l-1))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (5 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((3 2) (4 0)) ((4 1) (2 2))
+    ((5 1) (0 3)) ((6 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul l-0 l-1)))
+    (neq (exp (gen) (mul l-0 l-1)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 192)
+  (parent 140)
+  (unrealized (0 3) (4 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l y x l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) l-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-0 l-1))) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) l-1))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-1) (x l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-1) (pv self l))
+  (facts (silly (exp (gen) (mul l-0 l-1)))
+    (neq (exp (gen) (mul l-0 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 1 ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-0)))
+      (send
+        (sig (body self-0 (exp (gen) l-0) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-1)))))
+  (label 193)
+  (parent 141)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-1) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) l-1)) (neq (exp (gen) l-1) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (l-2 l-1) (w (mul (rec x) l-1))) (one) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) (one)))
+      (send (cat (exp (gen) l-1) (one))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1)))))
+  (label 194)
+  (parent 141)
+  (unrealized (0 3) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l y x l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0 l-1))) (priv-stor priv-stor-0)
+    (l l-1) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-1))
+    (gx (exp (gen) (mul l-0 l-1))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-1))
+  (deflistener (cat (exp (gen) l-0) l-1))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l) (x l-1))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l) (pv self l-1))
+  (facts (silly (exp (gen) (mul l-0 l-1)))
+    (neq (exp (gen) (mul l-0 l-1)) (gen)) (neq self b) (undisclosed l-1)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 3 ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-1)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-1)))
+      (send
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-0)))
+      (send
+        (sig (body self-0 (exp (gen) l-0) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-1)))))
+  (label 195)
+  (parent 141)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-1 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-1) l-1))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1 l-1)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul l-1 l-1)))
+    (neq (exp (gen) (mul l-1 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 5 ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-1 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) l-1)) (send (cat (exp (gen) l-1) l-1)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1 l-1)))))
+  (label 196)
+  (parent 141)
+  (unrealized (0 3) (4 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 ignore-2 mesg) (na nb data)
+    (b self self-0 self-1 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (priv-stor priv-stor-0 priv-stor-1 priv-stor-2 locn)
+    (l l-0 y x l-1 l-2 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1 l-2))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-1 l-2))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-1) l-2))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1 l-2)))
+  (defstrand ltx-gen 2 (ignore ignore-2) (self self-1)
+    (priv-stor priv-stor-2) (l l-2))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (0 3)) ((7 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1 l-2)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul l-1 l-2)))
+    (neq (exp (gen) (mul l-1 l-2)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1 l-2))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-2)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-1 l-2))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-2)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1 l-2)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1 l-2))))
+    ((load priv-stor-2 (cat pt-5 ignore-2))
+      (stor priv-stor-2 (cat pt-6 (pv self-1 l-2)))))
+  (label 197)
+  (parent 141)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-1))
+  (defstrand ltx-disclose 3 (self self-0) (priv-stor priv-stor-1)
+    (l l-1))
+  (deflistener (cat (exp (gen) (rec x)) y))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (7 0))
+    ((5 2) (2 2)) ((6 1) (0 3)) ((7 2) (6 0)) ((8 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv self-0 l-1))
+  (facts (silly (exp (gen) l-1)) (neq (exp (gen) l-1) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((5 1) (7 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-disclose-at-0
+    trRl_ltx-disclose-at-1 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) (rec x)) y))
+    (exp (gen) (mul (rec x) y)) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-1))
+      (send (cat (exp (gen) (mul (rec x) y)) l-1)))
+    ((load priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (stor priv-stor-1 (cat pt-5 "nil")) (send l-1))
+    ((recv (cat (exp (gen) (rec x)) y))
+      (send (cat (exp (gen) (rec x)) y))))
+  (label 198)
+  (parent 160)
+  (unrealized (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y l-1))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y)) l-1))
+  (defstrand ltx-disclose 3 (self self-0) (priv-stor priv-stor-1)
+    (l l-1))
+  (deflistener (cat (exp (gen) y) x))
+  (precedes ((0 2) (2 2)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (7 0))
+    ((5 2) (2 2)) ((6 1) (0 3)) ((7 2) (6 0)) ((8 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l-0) (y l))
+  (precur (3 0))
+  (gen-st (pv b l) (pv self l-0) (pv self-0 l-1))
+  (facts (silly (exp (gen) l-1)) (neq (exp (gen) l-1) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((5 1) (7 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-disclose-at-0
+    trRl_ltx-disclose-at-1 trRl_ltx-gen-at-0 trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener (cat (exp (gen) y) x))
+    (exp (gen) (mul (rec x) y)) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y)) l-1))
+      (send (cat (exp (gen) (mul (rec x) y)) l-1)))
+    ((load priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (stor priv-stor-1 (cat pt-5 "nil")) (send l-1))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
+  (label 199)
+  (parent 160)
+  (unrealized (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l x x-0 l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l-0) (y l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x)) (neq (exp (gen) x) (gen)) (neq self b)
+    (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0)))))
+  (label 200)
+  (parent 161)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (x-0 l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l) (y l-0) (x-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul w x-0)))
+    (neq (exp (gen) (mul w x-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))))
+  (label 201)
+  (parent 161)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l x x-0 l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l) (x x-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l) (y l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x)) (neq (exp (gen) x) (gen)) (neq self b)
+    (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0)))))
+  (label 202)
+  (parent 162)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (x-0 l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul w x-0)))
+    (neq (exp (gen) (mul w x-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))))
+  (label 203)
+  (parent 162)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x x-0 l-1 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) y)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l-0) (y l-1))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-1) (pv self l) (pv a l-0))
+  (facts (silly (exp (gen) x)) (neq (exp (gen) x) (gen)) (neq self b)
+    (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 2 resp 4) (exp (gen) y-0) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-0)))))
+  (label 204)
+  (parent 163)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (x-0 l-1 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w x-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w x-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x y x-0)
+  (absent (x l-0) (y l) (x-0 l-1))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l) (pv self l-0) (pv a l-1))
+  (facts (silly (exp (gen) (mul w x-0)))
+    (neq (exp (gen) (mul w x-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w x-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w x-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w x-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w x-0 (rec w-0))) w-0))))
+  (label 205)
+  (parent 163)
+  (unrealized (8 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l x rndx)
+    (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) (mul x w)))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul x w))) (neq (exp (gen) (mul x w)) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-0) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 206)
+  (parent 165)
+  (unrealized (5 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l x rndx)
+    (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) (mul x w (rec l-0))))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul x w))) (neq (exp (gen) (mul x w)) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-0) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (mul x w (rec l-0))))
+      (send (cat (exp (gen) l-0) (mul x w (rec l-0)))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 207)
+  (parent 167)
+  (unrealized (5 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l x y l-0 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y-0)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y))))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (0 3)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) x)) (neq gx (gen))
+    (neq (exp (gen) x) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-1) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y))))
+      (send (cat (exp (gen) y) (mul x (rec y)))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y)))))))
+  (label 208)
+  (parent 168)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (y-0 l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) (mul w y-0))) (neq gx (gen))
+    (neq (exp (gen) (mul w y-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))))
+  (label 209)
+  (parent 168)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l x y l-0 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) y-0)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y))))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l) (y y))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l) (y-0 l-0))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) x)) (neq gx (gen))
+    (neq (exp (gen) x) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-1) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y))))
+      (send (cat (exp (gen) y) (mul x (rec y)))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a self (hash (exp ga l) (exp gx y)))))))
+  (label 210)
+  (parent 169)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (x y l rndx) (w expt) (y-0 l-0 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly gx) (silly (exp (gen) (mul w y-0))) (neq gx (gen))
+    (neq (exp (gen) (mul w y-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))))
+  (label 211)
+  (parent 169)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y l-1 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) y-0)) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x)) (priv-stor priv-stor) (l l-1) (y y-0))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y))))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 3) (5 0)) ((7 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-1))
+  (precur (3 0) (5 0))
+  (gen-st (pv b l-1) (pv self l) (pv b-0 l-0))
+  (facts (silly gx) (silly (exp (gen) x)) (neq gx (gen))
+    (neq (exp (gen) x) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 2 resp 4) (exp (gen) y-1) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y))))
+      (send (cat (exp (gen) y) (mul x (rec y)))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-0) (exp gx y))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-0)))))
+  (label 212)
+  (parent 170)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (x y l l-0 rndx) (w expt)
+    (y-0 l-1 rndx) (w-0 expt))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul (rec x) y w y-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul w y-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 3) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l-0) (y l) (y-0 l-1))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l) (pv self l-0) (pv b-0 l-1))
+  (facts (silly gx) (silly (exp (gen) (mul w y-0))) (neq gx (gen))
+    (neq (exp (gen) (mul w y-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (added-listener
+      (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+    (exp (gen) (mul (rec x) y w y-0)) (0 3))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec x) y w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul w y-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y w y-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1))))
+    ((recv (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))
+      (send (cat (exp (gen) (mul (rec x) y w y-0 (rec w-0))) w-0))))
+  (label 213)
+  (parent 170)
+  (unrealized (8 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (x l rndx)
+    (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l) (mul x (rec l) w)))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((4 2) (5 0))
+    ((5 1) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul x w))) (neq (exp (gen) (mul x w)) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 2 resp 4) (exp (gen) y-0) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l) (mul x (rec l) w)))
+      (send (cat (exp (gen) l) (mul x (rec l) w))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 214)
+  (parent 172)
+  (unrealized (5 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l x l-0 rndx) (w expt)
+    (l-1 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) (mul x (rec l-0) w)))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen x y)
+  (absent (x l) (y l-1))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-1) (pv self l))
+  (facts (silly (exp (gen) (mul x w))) (neq (exp (gen) (mul x w)) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 2 resp 4) (exp (gen) y-0) (7 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (mul x (rec l-0) w)))
+      (send (cat (exp (gen) l-0) (mul x (rec l-0) w))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-0)))
+      (send
+        (sig (body self-0 (exp (gen) l-0) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 215)
+  (parent 174)
+  (unrealized (5 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l y x x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-0))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul x-0 l-0)))
+    (neq (exp (gen) (mul x-0 l-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 1 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-0)) (send (cat (exp (gen) x-0) l-0)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-0)))))
+  (label 216)
+  (parent 175)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l l-0 y x x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (one)))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (one)))
+      (send (cat (exp (gen) x-0) (one))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0)))))
+  (label 217)
+  (parent 175)
+  (unrealized (0 3) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l y x x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) x-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul x-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) l-0))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l) (x l-0) (x-0 l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul x-0 l-0)))
+    (neq (exp (gen) (mul x-0 l-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 3 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-0)) (send (cat (exp (gen) x-0) l-0)))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-0)))))
+  (label 218)
+  (parent 175)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self b-0 self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (gb base) (priv-stor priv-stor-0 priv-stor-1 locn)
+    (l l-0 y x x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-1))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul x-0 l-1)))
+    (neq (exp (gen) (mul x-0 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-1)) (send (cat (exp (gen) x-0) l-1)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 219)
+  (parent 175)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l y x x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul x-0 l-0)))
+    (neq (exp (gen) (mul x-0 l-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 1 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-0)) (send (cat (exp (gen) x-0) l-0)))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-0)))))
+  (label 220)
+  (parent 176)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l l-0 y x x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (one)))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (one)))
+      (send (cat (exp (gen) x-0) (one))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0)))))
+  (label 221)
+  (parent 176)
+  (unrealized (0 3) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l y x x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) x-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul x-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l) (x l-0) (x-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul x-0 l-0)))
+    (neq (exp (gen) (mul x-0 l-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 3 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-0)) (send (cat (exp (gen) x-0) l-0)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-0)))))
+  (label 222)
+  (parent 176)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self b-0 self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (gb base) (priv-stor priv-stor-0 priv-stor-1 locn)
+    (l l-0 y x x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-1))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul x-0 l-1)))
+    (neq (exp (gen) (mul x-0 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-1)) (send (cat (exp (gen) x-0) l-1)))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 223)
+  (parent 176)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) x-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-1))) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-1))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-1) (x l) (x-0 l-0))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-1) (pv self l) (pv a l-0))
+  (facts (silly (exp (gen) (mul x-0 l-1)))
+    (neq (exp (gen) (mul x-0 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 1 ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-1)) (send (cat (exp (gen) x-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-1)))))
+  (label 224)
+  (parent 177)
+  (unrealized (0 3) (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 l-1 y x x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (one)))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-1) (x l) (x-0 l-0))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-1) (pv self l) (pv a l-0))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (one)))
+      (send (cat (exp (gen) x-0) (one))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0)))))
+  (label 225)
+  (parent 177)
+  (unrealized (0 3) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-1))) (priv-stor priv-stor-0)
+    (l l-1) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-1))
+    (gx (exp (gen) (mul x-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-1))
+  (deflistener (cat (exp (gen) x-0) l-1))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l-1) (x-0 l))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-0) (pv self l-1) (pv a l))
+  (facts (silly (exp (gen) (mul x-0 l-1)))
+    (neq (exp (gen) (mul x-0 l-1)) (gen)) (neq self b) (undisclosed l-1)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 3 ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-1)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l-0 l-1))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l-0 l-1))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-1)))
+      (send
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-1)) (send (cat (exp (gen) x-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv a l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-1)))))
+  (label 226)
+  (parent 177)
+  (unrealized (0 3) (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-1))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l-1))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-0) (pv self l) (pv a l-1))
+  (facts (silly (exp (gen) (mul x-0 l-1)))
+    (neq (exp (gen) (mul x-0 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 6 ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-1)) (send (cat (exp (gen) x-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-1)))))
+  (label 227)
+  (parent 177)
+  (unrealized (0 3) (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 ignore-2 mesg) (na nb na-0 data)
+    (b self a b-0 self-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 priv-stor-2 locn)
+    (l l-0 l-1 y x x-0 l-2 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) x-0 l-2))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-2))) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-2))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-2)))
+  (defstrand ltx-gen 2 (ignore ignore-2) (self self-0)
+    (priv-stor priv-stor-2) (l l-2))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 2) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)) ((8 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1 l-2)
+  (uniq-gen y x x-0)
+  (absent (y l-1) (x l) (x-0 l-0))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-1) (pv self l) (pv a l-0))
+  (facts (silly (exp (gen) (mul x-0 l-2)))
+    (neq (exp (gen) (mul x-0 l-2)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-2))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y x-0 l-2)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-2))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y x-0 l-2)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-2)) (send (cat (exp (gen) x-0) l-2)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-2)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-2))))
+    ((load priv-stor-2 (cat pt-5 ignore-2))
+      (stor priv-stor-2 (cat pt-6 (pv self-0 l-2)))))
+  (label 228)
+  (parent 177)
+  (unrealized (0 3) (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (deflistener x)
+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 1) (0 3)) ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-0) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-0)) (send (cat (gen) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))) ((recv x) (send x)))
+  (label 229)
+  (parent 178)
+  (unrealized (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (gen) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (deflistener x)
+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 1) (0 3)) ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-0) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-0)) (send (cat (gen) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))) ((recv x) (send x)))
+  (label 230)
+  (parent 179)
+  (unrealized (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener x)
+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 1) (0 3)) ((6 1) (4 0)) ((7 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) l-1)) (neq (exp (gen) l-1) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-1) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1))))
+    ((recv x) (send x)))
+  (label 231)
+  (parent 180)
+  (unrealized (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+  (deflistener x)
+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 1) (0 3)) ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul l-0 l-0)))
+    (neq (exp (gen) (mul l-0 l-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-0 l-0) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-0)) (send (cat (exp (gen) l-0) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-0))))
+    ((recv x) (send x)))
+  (label 232)
+  (parent 182)
+  (unrealized (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l y x y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) (mul y-0 l-0))) (neq gx (gen))
+    (neq (exp (gen) (mul y-0 l-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 1 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-0)) (send (cat (exp (gen) y-0) l-0)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-0)))))
+  (label 233)
+  (parent 186)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l l-0 y x y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) (one)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (y-1 y-0) (w (mul (rec x) y-0))) (one) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) (one)))
+      (send (cat (exp (gen) y-0) (one))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0)))))
+  (label 234)
+  (parent 186)
+  (unrealized (0 3) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l y x y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) y-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul y-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l) (x l-0) (y-0 l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly gx) (silly (exp (gen) (mul y-0 l-0))) (neq gx (gen))
+    (neq (exp (gen) (mul y-0 l-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 3 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-0)) (send (cat (exp (gen) y-0) l-0)))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-0)))))
+  (label 235)
+  (parent 186)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (ga gx base) (priv-stor priv-stor-0 priv-stor-1 locn)
+    (l l-0 y x y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-1))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)) ((7 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) (mul y-0 l-1))) (neq gx (gen))
+    (neq (exp (gen) (mul y-0 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (5 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-1)) (send (cat (exp (gen) y-0) l-1)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 236)
+  (parent 186)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l y x y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) (mul y-0 l-0))) (neq gx (gen))
+    (neq (exp (gen) (mul y-0 l-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 1 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-0)) (send (cat (exp (gen) y-0) l-0)))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-0)))))
+  (label 237)
+  (parent 187)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l l-0 y x y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) (one)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (y-1 y-0) (w (mul (rec x) y-0))) (one) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) (one)))
+      (send (cat (exp (gen) y-0) (one))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0)))))
+  (label 238)
+  (parent 187)
+  (unrealized (0 3) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l y x y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) y-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul y-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l) (x l-0) (y-0 l-0))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly gx) (silly (exp (gen) (mul y-0 l-0))) (neq gx (gen))
+    (neq (exp (gen) (mul y-0 l-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 3 ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-0)) (send (cat (exp (gen) y-0) l-0)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-0)))))
+  (label 239)
+  (parent 187)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (ga gx base) (priv-stor priv-stor-0 priv-stor-1 locn)
+    (l l-0 y x y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-1))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (0 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 3) (4 0)) ((6 1) (0 3)) ((7 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) (mul y-0 l-1))) (neq gx (gen))
+    (neq (exp (gen) (mul y-0 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((3 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-1)) (send (cat (exp (gen) y-0) l-1)))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 240)
+  (parent 187)
+  (unrealized (0 3) (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) y-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-1))) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-1))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 3) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-1) (x l) (y-0 l-0))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-1) (pv self l) (pv b-0 l-0))
+  (facts (silly gx) (silly (exp (gen) (mul y-0 l-1))) (neq gx (gen))
+    (neq (exp (gen) (mul y-0 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 1 ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-1)) (send (cat (exp (gen) y-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-0) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-1)))))
+  (label 241)
+  (parent 188)
+  (unrealized (0 3) (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 l-1 y x y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) (one)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 3) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-1) (x l) (y-0 l-0))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-1) (pv self l) (pv b-0 l-0))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (y-1 y-0) (w (mul (rec x) y-0))) (one) (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) (one)))
+      (send (cat (exp (gen) y-0) (one))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-0) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0)))))
+  (label 242)
+  (parent 188)
+  (unrealized (0 3) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-1))) (priv-stor priv-stor-0)
+    (l l-1) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-1))
+    (gx (exp (gen) (mul y-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-1))
+  (deflistener (cat (exp (gen) y-0) l-1))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 3) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l-1) (y-0 l))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-0) (pv self l-1) (pv b-0 l))
+  (facts (silly gx) (silly (exp (gen) (mul y-0 l-1))) (neq gx (gen))
+    (neq (exp (gen) (mul y-0 l-1)) (gen)) (neq self b) (undisclosed l-1)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 3 ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-1)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l-0 l-1))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l-0 l-1))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-1)))
+      (send
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-1)) (send (cat (exp (gen) y-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-1)))))
+  (label 243)
+  (parent 188)
+  (unrealized (0 3) (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-1))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 3) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l-1))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-0) (pv self l) (pv b-0 l-1))
+  (facts (silly gx) (silly (exp (gen) (mul y-0 l-1))) (neq gx (gen))
+    (neq (exp (gen) (mul y-0 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 6 ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-1)) (send (cat (exp (gen) y-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-1)))))
+  (label 244)
+  (parent 188)
+  (unrealized (0 3) (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 ignore-2 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 self-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 priv-stor-2 locn)
+    (l l-0 l-1 y x y-0 l-2 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) y-0 l-2))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-2))) (priv-stor priv-stor) (l l-1) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-2))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-2)))
+  (defstrand ltx-gen 2 (ignore ignore-2) (self self-0)
+    (priv-stor priv-stor-2) (l l-2))
+  (precedes ((0 2) (4 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2)) ((5 3) (4 0))
+    ((6 1) (5 0)) ((7 1) (0 3)) ((8 1) (4 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1 l-2)
+  (uniq-gen y x y-0)
+  (absent (y l-1) (x l) (y-0 l-0))
+  (precur (4 0) (7 0))
+  (gen-st (pv b l-1) (pv self l) (pv b-0 l-0))
+  (facts (silly gx) (silly (exp (gen) (mul y-0 l-2))) (neq gx (gen))
+    (neq (exp (gen) (mul y-0 l-2)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)) ((6 1) (5 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-2))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y y-0 l-2)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-2))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y y-0 l-2)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-2)) (send (cat (exp (gen) y-0) l-2)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-0) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-2)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-2))))
+    ((load priv-stor-2 (cat pt-5 ignore-2))
+      (stor priv-stor-2 (cat pt-6 (pv self-0 l-2)))))
+  (label 245)
+  (parent 188)
+  (unrealized (0 3) (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul l-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+  (deflistener x)
+  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (5 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((3 2) (4 0))
+    ((4 1) (2 2)) ((5 1) (0 3)) ((6 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (4 0) (5 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul l-0 l-0)))
+    (neq (exp (gen) (mul l-0 l-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-0 l-0) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-0)) (send (cat (exp (gen) l-0) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-0))))
+    ((recv x) (send x)))
+  (label 246)
+  (parent 191)
+  (unrealized (4 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-1 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-1) l-1))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1 l-1)))
+  (deflistener x)
+  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (0 0)) ((3 2) (2 1)) ((4 1) (2 2))
+    ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (4 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul l-1 l-1)))
+    (neq (exp (gen) (mul l-1 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((3 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-1 l-1) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-1 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-1)))))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) l-1)) (send (cat (exp (gen) l-1) l-1)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1 l-1))))
+    ((recv x) (send x)))
+  (label 247)
+  (parent 196)
+  (unrealized (4 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l x x-0 rndx) (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l-0) (y l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul x w))) (neq (exp (gen) (mul x w)) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 2 resp 4) (exp (gen) y-0) (7 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 248)
+  (parent 201)
+  (unrealized (5 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l x x-0 rndx) (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l) (x x-0))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l) (y l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul x w))) (neq (exp (gen) (mul x w)) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 2 resp 4) (exp (gen) y-0) (7 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 249)
+  (parent 203)
+  (unrealized (5 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x x-0 rndx) (w expt)
+    (l-1 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen x x-0 y)
+  (absent (x l) (x-0 l-0) (y l-1))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-1) (pv self l) (pv a l-0))
+  (facts (silly (exp (gen) (mul x w))) (neq (exp (gen) (mul x w)) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 9 2 resp 4) (exp (gen) y-0) (8 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) w)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) w))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-0))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w))))
+  (label 250)
+  (parent 205)
+  (unrealized (5 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 1 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-0)) (send (cat (gen) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))))
+  (label 251)
+  (parent 206)
+  (unrealized (0 3) (5 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (gen) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 4 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-0)) (send (cat (gen) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))))
+  (label 252)
+  (parent 206)
+  (unrealized (0 3) (5 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)) ((7 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) l-1)) (neq (exp (gen) l-1) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 253)
+  (parent 206)
+  (unrealized (0 3) (5 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn) (l x rndx)
+    (w expt) (l-0 y rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) (mul x w)))
+  (deflistener (cat (exp (gen) y) w))
+  (deflistener x)
+  (precedes ((0 2) (7 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)) ((7 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen x y)
+  (absent (x l) (y l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul x w))) (neq (exp (gen) (mul x w)) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul x w) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) (mul x w))) (send (cat (gen) (mul x w))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
+    ((recv x) (send x)))
+  (label 254)
+  (parent 206)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul l-0 l-0)))
+    (neq (exp (gen) (mul l-0 l-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 1 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-0)) (send (cat (exp (gen) l-0) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-0)))))
+  (label 255)
+  (parent 207)
+  (unrealized (0 3) (5 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (w (mul (rec x) l-0)) (l-1 l-0)) (one) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))))
+  (label 256)
+  (parent 207)
+  (unrealized (0 3) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (y x l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul l l-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul l l-0)))
+    (neq (exp (gen) (mul l l-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 4 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l l-0)))))
+  (label 257)
+  (parent 207)
+  (unrealized (0 3) (5 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l y x l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 1) (0 3)) ((7 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul l-0 l-1)))
+    (neq (exp (gen) (mul l-0 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 258)
+  (parent 207)
+  (unrealized (0 3) (5 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l x y rndx) (w expt) (l-0 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y-0))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) w)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) y-0) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) (mul x w))) (neq gx (gen))
+    (neq (exp (gen) (mul x w)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 2 resp 4) (exp (gen) y-1) (7 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) w)))
+      (send (cat (exp (gen) y) (mul x (rec y) w))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y))))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w))))
+  (label 259)
+  (parent 209)
+  (unrealized (5 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l x y rndx) (w expt) (l-0 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul w y-0))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) w)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l) (y y))
+  (deflistener (cat (exp (gen) y-0) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l) (y-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) (mul x w))) (neq gx (gen))
+    (neq (exp (gen) (mul x w)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 2 resp 4) (exp (gen) y-1) (7 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul x w y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) w)))
+      (send (cat (exp (gen) y) (mul x (rec y) w))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a self (hash (exp ga l) (exp gx y))))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w))))
+  (label 260)
+  (parent 211)
+  (unrealized (5 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 x y rndx) (w expt)
+    (l-1 y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul w y-0))) (priv-stor priv-stor-0) (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x w))) (priv-stor priv-stor) (l l-1) (y y-0))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) w)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y-0) w))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 3) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen x y y-0)
+  (absent (x l) (y l-0) (y-0 l-1))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-1) (pv self l) (pv b-0 l-0))
+  (facts (silly gx) (silly (exp (gen) (mul x w))) (neq gx (gen))
+    (neq (exp (gen) (mul x w)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 9 2 resp 4) (exp (gen) y-1) (8 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul w y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x w))))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul x w y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) w)))
+      (send (cat (exp (gen) y) (mul x (rec y) w))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-0) (exp gx y))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-0))))
+    ((recv (cat (exp (gen) y-0) w)) (send (cat (exp (gen) y-0) w))))
+  (label 261)
+  (parent 213)
+  (unrealized (5 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (y x l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((4 2) (5 0))
+    ((5 1) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul l l-0)))
+    (neq (exp (gen) (mul l l-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 1 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l l-0)))))
+  (label 262)
+  (parent 214)
+  (unrealized (0 3) (5 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((4 2) (5 0))
+    ((5 1) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (l-1 l-0) (w (mul (rec x) l-0))) (one) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))))
+  (label 263)
+  (parent 214)
+  (unrealized (0 3) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul l-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((4 2) (5 0))
+    ((5 1) (2 2)) ((6 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul l-0 l-0)))
+    (neq (exp (gen) (mul l-0 l-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 7 4 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-0)) (send (cat (exp (gen) l-0) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-0)))))
+  (label 264)
+  (parent 214)
+  (unrealized (0 3) (5 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l y x l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0 l-1))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul l-0 l-1))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (6 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((4 2) (5 0))
+    ((5 1) (2 2)) ((6 1) (0 3)) ((7 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul l-0 l-1)))
+    (neq (exp (gen) (mul l-0 l-1)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 265)
+  (parent 214)
+  (unrealized (0 3) (5 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l y x l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) l-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-0 l-1))) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) l-1))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-1) (x l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-1) (pv self l))
+  (facts (silly (exp (gen) (mul l-0 l-1)))
+    (neq (exp (gen) (mul l-0 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 1 ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-0)))
+      (send
+        (sig (body self-0 (exp (gen) l-0) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-1)))))
+  (label 266)
+  (parent 215)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-1) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) l-1)) (neq (exp (gen) l-1) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (l-2 l-1) (w (mul (rec x) l-1))) (one) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) (one)))
+      (send (cat (exp (gen) l-1) (one))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1)))))
+  (label 267)
+  (parent 215)
+  (unrealized (0 3) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l y x l-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0 l-1))) (priv-stor priv-stor-0)
+    (l l-1) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-1))
+    (gx (exp (gen) (mul l-0 l-1))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-1) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-1))
+  (deflistener (cat (exp (gen) l-0) l-1))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l) (x l-1))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l) (pv self l-1))
+  (facts (silly (exp (gen) (mul l-0 l-1)))
+    (neq (exp (gen) (mul l-0 l-1)) (gen)) (neq self b) (undisclosed l-1)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 4 ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-1)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y l-0 l-1)))))))
+    ((recv (cat (exp (gen) l-1) (one)))
+      (send (cat (exp (gen) l-1) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-1)))
+      (send
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-0)))
+      (send
+        (sig (body self-0 (exp (gen) l-0) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-1)))))
+  (label 268)
+  (parent 215)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-1 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-1) l-1))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1 l-1)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul l-1 l-1)))
+    (neq (exp (gen) (mul l-1 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 6 ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-1 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) l-1)) (send (cat (exp (gen) l-1) l-1)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1 l-1)))))
+  (label 269)
+  (parent 215)
+  (unrealized (0 3) (5 0) (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 ignore-2 mesg) (na nb data)
+    (b self self-0 self-1 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval)
+    (priv-stor priv-stor-0 priv-stor-1 priv-stor-2 locn)
+    (l l-0 y x l-1 l-2 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1 l-2))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-1 l-2))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-1) l-2))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1 l-2)))
+  (defstrand ltx-gen 2 (ignore ignore-2) (self self-1)
+    (priv-stor priv-stor-2) (l l-2))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (0 3)) ((8 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1 l-2)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul l-1 l-2)))
+    (neq (exp (gen) (mul l-1 l-2)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1 l-2))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-2)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-1 l-2))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-2)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1 l-2)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1 l-2))))
+    ((load priv-stor-2 (cat pt-5 ignore-2))
+      (stor priv-stor-2 (cat pt-6 (pv self-1 l-2)))))
+  (label 270)
+  (parent 215)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l y x x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-0))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul x-0 l-0)))
+    (neq (exp (gen) (mul x-0 l-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 1 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-0)) (send (cat (exp (gen) x-0) l-0)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-0)))))
+  (label 271)
+  (parent 248)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l l-0 y x x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (one)))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (one)))
+      (send (cat (exp (gen) x-0) (one))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0)))))
+  (label 272)
+  (parent 248)
+  (unrealized (0 3) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l y x x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) x-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul x-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) l-0))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l) (x l-0) (x-0 l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul x-0 l-0)))
+    (neq (exp (gen) (mul x-0 l-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 4 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-0)) (send (cat (exp (gen) x-0) l-0)))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-0)))))
+  (label 273)
+  (parent 248)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self b-0 self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (gb base) (priv-stor priv-stor-0 priv-stor-1 locn)
+    (l l-0 y x x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-1))
+  (defstrand init 3 (na na-0) (a b) (b b-0) (gb gb)
+    (priv-stor priv-stor) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)) ((8 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul x-0 l-1)))
+    (neq (exp (gen) (mul x-0 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-1)) (send (cat (exp (gen) x-0) l-1)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 b b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 274)
+  (parent 248)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l y x x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul x-0 l-0)))
+    (neq (exp (gen) (mul x-0 l-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 1 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-0)) (send (cat (exp (gen) x-0) l-0)))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-0)))))
+  (label 275)
+  (parent 249)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l l-0 y x x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (one)))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (one)))
+      (send (cat (exp (gen) x-0) (one))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0)))))
+  (label 276)
+  (parent 249)
+  (unrealized (0 3) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 data) (b self b-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (gb base) (priv-stor priv-stor-0 locn)
+    (l y x x-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) x-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul x-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) x-0) l-0))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l-0) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0)
+  (uniq-gen y x x-0)
+  (absent (y l) (x l-0) (x-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul x-0 l-0)))
+    (neq (exp (gen) (mul x-0 l-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 4 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-0)) (send (cat (exp (gen) x-0) l-0)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-0)))))
+  (label 277)
+  (parent 249)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self b-0 self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (gb base) (priv-stor priv-stor-0 priv-stor-1 locn)
+    (l l-0 y x x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-1))
+  (defstrand init 3 (na na-0) (a self) (b b-0) (gb gb)
+    (priv-stor priv-stor-0) (l l) (x x-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)) ((8 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul x-0 l-1)))
+    (neq (exp (gen) (mul x-0 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-1)) (send (cat (exp (gen) x-0) l-1)))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 self b-0 (exp (gen) x-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 278)
+  (parent 249)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) x-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-1))) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-1))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-1) (x l) (x-0 l-0))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-1) (pv self l) (pv a l-0))
+  (facts (silly (exp (gen) (mul x-0 l-1)))
+    (neq (exp (gen) (mul x-0 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 9 1 ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-1)) (send (cat (exp (gen) x-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-1)))))
+  (label 279)
+  (parent 250)
+  (unrealized (0 3) (5 0) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 l-1 y x x-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) x-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) x-0)) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) (one)))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-1) (x l) (x-0 l-0))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-1) (pv self l) (pv a l-0))
+  (facts (silly (exp (gen) x-0)) (neq (exp (gen) x-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-1 x) (x-2 x-0) (w (mul (rec x) x-0))) (one) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y x-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) x-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y x-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) (one)))
+      (send (cat (exp (gen) x-0) (one))))
+    ((load priv-stor-1 (cat pt-3 (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0)))))
+  (label 280)
+  (parent 250)
+  (unrealized (0 3) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-1))) (priv-stor priv-stor-0)
+    (l l-1) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-1))
+    (gx (exp (gen) (mul x-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l-1) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-1))
+  (deflistener (cat (exp (gen) x-0) l-1))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l-1) (x-0 l))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-0) (pv self l-1) (pv a l))
+  (facts (silly (exp (gen) (mul x-0 l-1)))
+    (neq (exp (gen) (mul x-0 l-1)) (gen)) (neq self b) (undisclosed l-1)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 9 4 ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-1)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l-0 l-1))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l-0 l-1))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((recv (cat (exp (gen) l-1) (one)))
+      (send (cat (exp (gen) l-1) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-1)))
+      (send
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-1)) (send (cat (exp (gen) x-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv a l)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-1)))))
+  (label 281)
+  (parent 250)
+  (unrealized (0 3) (5 0) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x x-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) x-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-1))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-1) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1)
+  (uniq-gen y x x-0)
+  (absent (y l-0) (x l) (x-0 l-1))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-0) (pv self l) (pv a l-1))
+  (facts (silly (exp (gen) (mul x-0 l-1)))
+    (neq (exp (gen) (mul x-0 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 9 7 ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y x-0 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-1)) (send (cat (exp (gen) x-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-1)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-1))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-1)))))
+  (label 282)
+  (parent 250)
+  (unrealized (0 3) (5 0) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 ignore-2 mesg) (na nb na-0 data)
+    (b self a b-0 self-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (gb base)
+    (priv-stor priv-stor-0 priv-stor-1 priv-stor-2 locn)
+    (l l-0 l-1 y x x-0 l-2 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) x-0 l-2))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul x-0 l-2))) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) x-0) l-2))
+  (defstrand init 3 (na na-0) (a a) (b b-0) (gb gb)
+    (priv-stor priv-stor-1) (l l-0) (x x-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self a)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) x-0 l-2)))
+  (defstrand ltx-gen 2 (ignore ignore-2) (self self-0)
+    (priv-stor priv-stor-2) (l l-2))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 2) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)) ((9 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb na-0 l l-0 l-1 l-2)
+  (uniq-gen y x x-0)
+  (absent (y l-1) (x l) (x-0 l-0))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-1) (pv self l) (pv a l-0))
+  (facts (silly (exp (gen) (mul x-0 l-2)))
+    (neq (exp (gen) (mul x-0 l-2)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) x-0 l-2))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y x-0 l-2)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul x-0 l-2))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y x-0 l-2)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) x-0) l-2)) (send (cat (exp (gen) x-0) l-2)))
+    ((load priv-stor-1 (cat pt-3 (pv a l-0)))
+      (recv (sig (body b-0 gb (pubk "sig" b-0)) (privk "sig" b-0)))
+      (send (cat na-0 a b-0 (exp (gen) x-0))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv a l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) x-0 l-2)))
+      (send (cat (exp (gen) y) (mul (rec x) x-0 l-2))))
+    ((load priv-stor-2 (cat pt-5 ignore-2))
+      (stor priv-stor-2 (cat pt-6 (pv self-0 l-2)))))
+  (label 283)
+  (parent 250)
+  (unrealized (0 3) (5 0) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (deflistener x)
+  (precedes ((0 2) (5 0)) ((0 2) (7 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 1) (0 3)) ((7 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-0) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-0)) (send (cat (gen) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))) ((recv x) (send x)))
+  (label 284)
+  (parent 251)
+  (unrealized (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0))) (priv-stor priv-stor-0) (l l-0)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) l-0)) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (gen) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0)))
+  (deflistener x)
+  (precedes ((0 2) (5 0)) ((0 2) (7 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 1) (0 3)) ((7 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) l-0)) (neq (exp (gen) l-0) (gen))
+    (neq self b) (undisclosed l-0) (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-0) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-0)) (send (cat (gen) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0)))) ((recv x) (send x)))
+  (label 285)
+  (parent 252)
+  (unrealized (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) l-1)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (gen) l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener x)
+  (precedes ((0 2) (5 0)) ((0 2) (8 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 1) (0 3)) ((7 1) (5 0)) ((8 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) l-1)) (neq (exp (gen) l-1) (gen))
+    (neq self b) (undisclosed l) (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-1) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) l-1)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1))))
+    ((recv x) (send x)))
+  (label 286)
+  (parent 253)
+  (unrealized (5 0) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-0) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+  (deflistener x)
+  (precedes ((0 2) (5 0)) ((0 2) (7 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 1) (0 3)) ((7 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul l-0 l-0)))
+    (neq (exp (gen) (mul l-0 l-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-0 l-0) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-0)) (send (cat (exp (gen) l-0) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-0))))
+    ((recv x) (send x)))
+  (label 287)
+  (parent 255)
+  (unrealized (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l y x y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) (mul y-0 l-0))) (neq gx (gen))
+    (neq (exp (gen) (mul y-0 l-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 1 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-0)) (send (cat (exp (gen) y-0) l-0)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-0)))))
+  (label 288)
+  (parent 259)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l l-0 y x y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) (one)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (y-1 y-0) (w (mul (rec x) y-0))) (one) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) (one)))
+      (send (cat (exp (gen) y-0) (one))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0)))))
+  (label 289)
+  (parent 259)
+  (unrealized (0 3) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l y x y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) y-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul y-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l) (x l-0) (y-0 l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly gx) (silly (exp (gen) (mul y-0 l-0))) (neq gx (gen))
+    (neq (exp (gen) (mul y-0 l-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 4 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-0)) (send (cat (exp (gen) y-0) l-0)))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-0)))))
+  (label 290)
+  (parent 259)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (ga gx base) (priv-stor priv-stor-0 priv-stor-1 locn)
+    (l l-0 y x y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-1))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b) (ga ga) (gx gx)
+    (priv-stor priv-stor) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 1) (6 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)) ((8 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) (mul y-0 l-1))) (neq gx (gen))
+    (neq (exp (gen) (mul y-0 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((1 1) (6 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-1)) (send (cat (exp (gen) y-0) l-1)))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 291)
+  (parent 259)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l y x y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-0))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-0))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) (mul y-0 l-0))) (neq gx (gen))
+    (neq (exp (gen) (mul y-0 l-0)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 1 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-0)) (send (cat (exp (gen) y-0) l-0)))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-0)))))
+  (label 292)
+  (parent 260)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l l-0 y x y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) (one)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (y-1 y-0) (w (mul (rec x) y-0))) (one) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) (one)))
+      (send (cat (exp (gen) y-0) (one))))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0)))))
+  (label 293)
+  (parent 260)
+  (unrealized (0 3) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb na-0 nb-0 data) (b self a name)
+    (pt pt-0 pt-1 pt-2 pval) (ga gx base) (priv-stor priv-stor-0 locn)
+    (l y x y-0 l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) y-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul y-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) y-0) l-0))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l-0) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0)
+  (uniq-gen y x y-0)
+  (absent (y l) (x l-0) (y-0 l-0))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly gx) (silly (exp (gen) (mul y-0 l-0))) (neq gx (gen))
+    (neq (exp (gen) (mul y-0 l-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 8 4 ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-0)) (send (cat (exp (gen) y-0) l-0)))
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l-0) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-0)))))
+  (label 294)
+  (parent 260)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (ga gx base) (priv-stor priv-stor-0 priv-stor-1 locn)
+    (l l-0 y x y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-1))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b self) (ga ga) (gx gx)
+    (priv-stor priv-stor-0) (l l) (y y-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (7 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 1) (6 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 3) (5 0)) ((7 1) (0 3)) ((8 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly gx) (silly (exp (gen) (mul y-0 l-1))) (neq gx (gen))
+    (neq (exp (gen) (mul y-0 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((4 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-1 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-1)) (send (cat (exp (gen) y-0) l-1)))
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a self gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a self (hash (exp ga l) (exp gx y-0))))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-1))))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))))
+  (label 295)
+  (parent 260)
+  (unrealized (0 3) (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) y-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-1))) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-1))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 3) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-1) (x l) (y-0 l-0))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-1) (pv self l) (pv b-0 l-0))
+  (facts (silly gx) (silly (exp (gen) (mul y-0 l-1))) (neq gx (gen))
+    (neq (exp (gen) (mul y-0 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 9 1 ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-1)) (send (cat (exp (gen) y-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-0) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-1)))))
+  (label 296)
+  (parent 261)
+  (unrealized (0 3) (5 0) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 l-1 y x y-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) y-0))) (priv-stor priv-stor-0) (l l)
+    (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) y-0)) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) (one)))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 3) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-1) (x l) (y-0 l-0))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-1) (pv self l) (pv b-0 l-0))
+  (facts (silly gx) (silly (exp (gen) y-0)) (neq gx (gen))
+    (neq (exp (gen) y-0) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test
+    (contracted (x-0 x) (y-1 y-0) (w (mul (rec x) y-0))) (one) (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y y-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))) (recv (cat na self b (exp (gen) y-0)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1)) (exp (gen) (mul y y-0)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) (one)))
+      (send (cat (exp (gen) y-0) (one))))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-0) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0)))))
+  (label 297)
+  (parent 261)
+  (unrealized (0 3) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-1))) (priv-stor priv-stor-0)
+    (l l-1) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-1))
+    (gx (exp (gen) (mul y-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l-1) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-1))
+  (deflistener (cat (exp (gen) y-0) l-1))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 3) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l-1) (y-0 l))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-0) (pv self l-1) (pv b-0 l))
+  (facts (silly gx) (silly (exp (gen) (mul y-0 l-1))) (neq gx (gen))
+    (neq (exp (gen) (mul y-0 l-1)) (gen)) (neq self b) (undisclosed l-1)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 9 4 ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-1)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l-0 l-1))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l-0 l-1))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((recv (cat (exp (gen) l-1) (one)))
+      (send (cat (exp (gen) l-1) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-1)))
+      (send
+        (sig (body self (exp (gen) l-1) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-1)) (send (cat (exp (gen) y-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-1)))))
+  (label 298)
+  (parent 261)
+  (unrealized (0 3) (5 0) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x y-0 l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) y-0 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-1))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-1) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 3) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1)
+  (uniq-gen y x y-0)
+  (absent (y l-0) (x l) (y-0 l-1))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-0) (pv self l) (pv b-0 l-1))
+  (facts (silly gx) (silly (exp (gen) (mul y-0 l-1))) (neq gx (gen))
+    (neq (exp (gen) (mul y-0 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (displaced 9 7 ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y y-0 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-1)) (send (cat (exp (gen) y-0) l-1)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-1)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-1) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-1))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-1)))))
+  (label 299)
+  (parent 261)
+  (unrealized (0 3) (5 0) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 ignore-2 mesg) (na nb na-0 nb-0 data)
+    (b self a b-0 self-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (ga gx base)
+    (priv-stor priv-stor-0 priv-stor-1 priv-stor-2 locn)
+    (l l-0 l-1 y x y-0 l-2 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-1))
+    (gy (exp (gen) (mul y (rec x) y-0 l-2))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-1))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul y-0 l-2))) (priv-stor priv-stor) (l l-1) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) y-0) l-2))
+  (defstrand resp 4 (na na-0) (nb nb-0) (a a) (b b-0) (ga ga) (gx gx)
+    (priv-stor priv-stor-1) (l l-0) (y y-0))
+  (defstrand ltx-gen 2 (ignore ignore-1) (self b-0)
+    (priv-stor priv-stor-1) (l l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) y-0 l-2)))
+  (defstrand ltx-gen 2 (ignore ignore-2) (self self-0)
+    (priv-stor priv-stor-2) (l l-2))
+  (precedes ((0 2) (5 0)) ((1 1) (2 0)) ((1 2) (0 1)) ((2 3) (8 0))
+    ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0)) ((5 1) (2 2))
+    ((6 3) (5 0)) ((7 1) (6 0)) ((8 1) (0 3)) ((9 1) (5 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb nb-0 l l-0 l-1 l-2)
+  (uniq-gen y x y-0)
+  (absent (y l-1) (x l) (y-0 l-0))
+  (precur (3 0) (5 0) (8 0))
+  (gen-st (pv b l-1) (pv self l) (pv b-0 l-0))
+  (facts (silly gx) (silly (exp (gen) (mul y-0 l-2))) (neq gx (gen))
+    (neq (exp (gen) (mul y-0 l-2)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-1))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)) ((7 1) (6 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-strand ltx-gen 2) l-2 (5 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) y-0 l-2))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y y-0 l-2)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-1)))
+      (send
+        (sig (body b (exp (gen) l-1) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-1)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul y-0 l-2))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-1))
+              (exp (gen) (mul y y-0 l-2)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) y-0) l-2)) (send (cat (exp (gen) y-0) l-2)))
+    ((load priv-stor-1 (cat pt-3 (pv b-0 l-0)))
+      (recv (sig (body a ga (pubk "sig" a)) (privk "sig" a)))
+      (recv (cat na-0 a b-0 gx))
+      (send
+        (cat (exp (gen) y-0)
+          (enc na-0 nb-0 a b-0 (hash (exp ga l-0) (exp gx y-0))))))
+    ((load priv-stor-1 (cat pt-4 ignore-1))
+      (stor priv-stor-1 (cat pt-3 (pv b-0 l-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) y-0 l-2)))
+      (send (cat (exp (gen) y) (mul (rec x) y-0 l-2))))
+    ((load priv-stor-2 (cat pt-5 ignore-2))
+      (stor priv-stor-2 (cat pt-6 (pv self-0 l-2)))))
+  (label 300)
+  (parent 261)
+  (unrealized (0 3) (5 0) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 mesg) (na nb data) (b self name)
+    (pt pt-0 pt-1 pt-2 pval) (priv-stor priv-stor-0 locn)
+    (l y x l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l))
+    (gy (exp (gen) (mul y (rec x) l-0 l-0))) (priv-stor priv-stor-0)
+    (l l-0) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l-0))
+    (gx (exp (gen) (mul l-0 l-0))) (priv-stor priv-stor) (l l) (y y))
+  (deflistener (cat (exp (gen) l-0) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l-0))
+  (deflistener (cat (exp (gen) l-0) l-0))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+  (deflistener x)
+  (precedes ((0 2) (5 0)) ((0 2) (7 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (6 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((4 2) (5 0)) ((5 1) (2 2)) ((6 1) (0 3)) ((7 1) (6 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0)
+  (uniq-gen y x)
+  (absent (y l) (x l-0))
+  (precur (3 0) (5 0) (6 0))
+  (gen-st (pv b l) (pv self l-0))
+  (facts (silly (exp (gen) (mul l-0 l-0)))
+    (neq (exp (gen) (mul l-0 l-0)) (gen)) (neq self b) (undisclosed l-0)
+    (undisclosed l))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-0 l-0) (6 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l-0)))
+      (recv (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-0 l-0))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l)))
+      (send
+        (sig (body b (exp (gen) l) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l)))
+      (recv
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-0 l-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-0 l-0)))))))
+    ((recv (cat (exp (gen) l-0) (one)))
+      (send (cat (exp (gen) l-0) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l-0)))
+      (send
+        (sig (body self (exp (gen) l-0) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-0) l-0)) (send (cat (exp (gen) l-0) l-0)))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-0 l-0)))
+      (send (cat (exp (gen) y) (mul (rec x) l-0 l-0))))
+    ((recv x) (send x)))
+  (label 301)
+  (parent 264)
+  (unrealized (5 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-um
+  (vars (ignore ignore-0 ignore-1 mesg) (na nb data)
+    (b self self-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (priv-stor priv-stor-0 priv-stor-1 locn) (l l-0 y x l-1 rndx))
+  (defstrand init 4 (na na) (nb nb) (a self) (b b) (gb (exp (gen) l-0))
+    (gy (exp (gen) (mul y (rec x) l-1 l-1))) (priv-stor priv-stor-0)
+    (l l) (x x))
+  (defstrand ltx-gen 3 (ignore ignore) (self b) (priv-stor priv-stor)
+    (l l-0))
+  (defstrand resp 4 (na na) (nb nb) (a self) (b b) (ga (exp (gen) l))
+    (gx (exp (gen) (mul l-1 l-1))) (priv-stor priv-stor) (l l-0) (y y))
+  (deflistener (cat (exp (gen) l) (one)))
+  (defstrand ltx-gen 3 (ignore ignore-0) (self self)
+    (priv-stor priv-stor-0) (l l))
+  (deflistener (cat (exp (gen) l-1) l-1))
+  (defstrand ltx-gen 3 (ignore ignore-1) (self self-0)
+    (priv-stor priv-stor-1) (l l-1))
+  (deflistener (cat (exp (gen) y) (mul (rec x) l-1 l-1)))
+  (deflistener x)
+  (precedes ((0 2) (5 0)) ((0 2) (8 0)) ((1 1) (2 0)) ((1 2) (0 1))
+    ((2 3) (7 0)) ((3 1) (2 1)) ((4 1) (0 0)) ((4 2) (3 0))
+    ((5 1) (2 2)) ((6 2) (5 0)) ((7 1) (0 3)) ((8 1) (7 0)))
+  (non-orig (privk "sig" b))
+  (uniq-orig na nb l l-0 l-1)
+  (uniq-gen y x)
+  (absent (y l-0) (x l))
+  (precur (3 0) (5 0) (7 0))
+  (gen-st (pv b l-0) (pv self l))
+  (facts (silly (exp (gen) (mul l-1 l-1)))
+    (neq (exp (gen) (mul l-1 l-1)) (gen)) (neq self b) (undisclosed l)
+    (undisclosed l-0))
+  (leads-to ((1 1) (2 0)) ((4 1) (0 0)))
+  (rule fact-resp-neq0 fact-resp-silly trRl_ltx-gen-at-0
+    trRl_ltx-gen-at-1)
+  (operation nonce-test (added-listener x) (mul (rec x) l-1 l-1) (7 0))
+  (traces
+    ((load priv-stor-0 (cat pt-2 (pv self l)))
+      (recv
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b)))
+      (send (cat na self b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec x) l-1 l-1))
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-1)))))))
+    ((load priv-stor (cat pt ignore))
+      (stor priv-stor (cat pt-0 (pv b l-0)))
+      (send
+        (sig (body b (exp (gen) l-0) (pubk "sig" b)) (privk "sig" b))))
+    ((load priv-stor (cat pt-0 (pv b l-0)))
+      (recv
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self)))
+      (recv (cat na self b (exp (gen) (mul l-1 l-1))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb self b
+            (hash (exp (gen) (mul l l-0))
+              (exp (gen) (mul y l-1 l-1)))))))
+    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
+    ((load priv-stor-0 (cat pt-1 ignore-0))
+      (stor priv-stor-0 (cat pt-2 (pv self l)))
+      (send
+        (sig (body self (exp (gen) l) (pubk "sig" self))
+          (privk "sig" self))))
+    ((recv (cat (exp (gen) l-1) l-1)) (send (cat (exp (gen) l-1) l-1)))
+    ((load priv-stor-1 (cat pt-3 ignore-1))
+      (stor priv-stor-1 (cat pt-4 (pv self-0 l-1)))
+      (send
+        (sig (body self-0 (exp (gen) l-1) (pubk "sig" self-0))
+          (privk "sig" self-0))))
+    ((recv (cat (exp (gen) y) (mul (rec x) l-1 l-1)))
+      (send (cat (exp (gen) y) (mul (rec x) l-1 l-1))))
+    ((recv x) (send x)))
+  (label 302)
+  (parent 269)
+  (unrealized (5 0) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/tst/dhcr_um_expt.scm b/tst/dhcr_um_expt.scm
new file mode 100644
--- /dev/null
+++ b/tst/dhcr_um_expt.scm
@@ -0,0 +1,260 @@
+;;; Unified Model  This version used in the paper, tooldev/dh/conf_dh/dh_ebn.tex
+
+;;; This file models the "Unified Model" method of determining a fresh
+;;; key from long-term and ephemeral Diffie-Hellman exponents.  We use
+;;; function relation declarations to link names to long-term public
+;;; values.
+
+;;; This file contains the standard version, in which the two
+;;; ephemeral are mixed, as are the two static exponents.
+
+;;; A role is provided in which a party signs a fresh long-term
+;;; Diffie-Hellman value, and then leaks the exponent.  The latter step
+;;; is used to test the notion of forward security.
+
+;;; Two inputs are analyzed.  In the first, we model that two
+;;; participants exist that agree on the UM key.  The notion of
+;;; "implicit authentication" suggests that if one participant exists
+;;; and another party knows the same key, that party must be either the
+;;; participant or the participant's intended partner.
+
+;;; In this version, we assume that the long-term keys of the
+;;; participants do not leak.
+
+;;; The second input checks whether the key can be learned when the key
+;;; is generated honestly.  In this version, we do NOT assume that the
+;;; long-term keys of the participants do not leak.
+
+;;; CPSA4 revisions:
+;;;
+;;; 1.  Self certify my public value in ltx-gen,
+;;;     and assume signing keys non.
+;;; 2.  Deposit private value in state and retrieve
+;;;	it at the beginning of each init or resp run.
+;;; 3.  Discard the private value from state before
+;;;	disclosing it, when testing forward secrecy.
+
+(herald "DHCR: unified model (UM) original"
+	(bound 20)
+	(limit 12000)
+	(algebra diffie-hellman))
+
+(defmacro (kcfa l gb x gy)
+  (hash (exp gb l) (exp gy x)))
+
+(defmacro (kcfb l ga y gx)
+  (hash (exp ga l) (exp gx y)))
+
+(defprotocol dhcr-um diffie-hellman
+  (defrole init
+    (vars (la x rndx) (beta upsilon expt) (a b name) (na nb data) (priv-stor locn))
+    (trace
+     (load priv-stor (pv a la))
+     (recv (sig (body b (exp (gen) beta) (pubk "sig" b))
+		(privk "sig" b)))
+     (send (cat na a b (exp (gen) x) ;; (sig na a b (exp (gen) x) (privk "sig" a))
+		))
+     (recv (cat (exp (gen) upsilon)
+		(enc na nb a b
+		     (kcfa la (exp (gen) beta) x (exp (gen) upsilon)))))
+     (send nb)
+     )
+    (uniq-gen x)
+    (uniq-orig na)
+    (facts (neq (exp (gen) upsilon) (gen)))
+    (gen-st (pv a la))
+    (fn-off ("principal-of" (ltxa a) (ltxb b))
+           ("ltx-of" (a ltxa) (b ltxb))))
+
+  (defrole resp
+    (vars (lb y rndx) (alpha zeta expt) (a b name) (na nb data) (priv-stor locn))
+    (trace
+     (load priv-stor (pv b lb))
+     (recv (sig (body a (exp (gen) alpha) (pubk "sig" a))
+		(privk "sig" a)))
+     (recv (cat na a b (exp (gen) zeta) ;; (sig na a b (exp (gen) zeta) (privk "sig" a))
+		))
+     (send (cat (exp (gen) y)
+		(enc na nb a b
+		     (kcfb lb (exp (gen) alpha) y (exp (gen) zeta)))))
+     (recv nb)
+     )
+    (uniq-gen y)
+    (uniq-orig nb)
+    (facts (neq (exp (gen) zeta) (gen)))
+    (gen-st (pv b lb))
+    (fn-off ("principal-of" (ltxa a) (ltxb b))
+	   ("ltx-of" (a ltxa) (b ltxb))))
+
+  (defrole ltx-gen
+    (vars (self name) (l rndx)
+	  (priv-stor locn) (ignore mesg))
+    (trace
+     (load priv-stor ignore)
+     (stor priv-stor (pv self l))
+     (send (sig (body self (exp (gen) l) (pubk "sig" self))
+		(privk "sig" self))))
+    (uniq-orig l)
+    (fn-off ("principal-of" (l self))
+	   ("ltx-of" (self l))))
+
+  (defrole ltx-disclose
+    (vars (self name) (l rndx)
+	  (priv-stor locn) (ignore mesg))
+    (trace
+     (load priv-stor (pv self l))
+     (stor priv-stor "nil")
+     (send l))
+    (gen-st (pv self l))
+    (fn-off ("principal-of" (l self))
+	   ("ltx-of" (self l))))
+
+;     (defrule fact-resp-neq0
+;       (forall ((z strd) (zeta expt))
+;         (implies (and (p "resp" z 3) (p "resp" "zeta" z zeta))
+;           (fact neq zeta one))))
+
+  (defrule undisclosed-not-disclosed
+    (forall
+     ((z strd) (l rndx))
+     (implies
+      (and (fact undisclosed l)
+	  (p "ltx-disclose" z 2)
+	  (p "ltx-disclose" "l" z l))
+      (false))))
+
+  (lang (sig sign)
+	(body (tuple 3))
+	(pv (tuple 2))))
+
+; Initiator point of view: both LTX exponents secret
+(defskeleton dhcr-um
+  (vars (a b name) (la l-peer rndx) (beta expt))
+  (defstrand init 5 (a a) (b b) (la la) (beta beta))
+  (non-orig (privk "sig" b))
+  (facts (neq a b)
+	 (undisclosed la)
+	 (undisclosed beta)))
+
+; Initiator point of view:  peer exponent secret
+(defskeleton dhcr-um
+  (vars (a b name) (la l-peer rndx) (beta expt))
+  (defstrand init 5 (a a) (b b) (la la) (beta beta))
+  (non-orig (privk "sig" b))
+  (facts (neq a b)
+	 ;;	 (undisclosed la)
+	 (undisclosed beta)))
+
+; Initiator point of view:  my exponent secret
+(defskeleton dhcr-um
+  (vars (a b name) (la rndx))
+  (defstrand init 5 (a a) (b b) (la la) )
+  (non-orig (privk "sig" b))
+  (facts (neq a b)
+	 ;;	 (undisclosed l-peer)
+	 (undisclosed la)))
+
+; Initiator point of view:  neither exponent secret
+
+(defskeleton dhcr-um
+  (vars (a b name) (la rndx))
+  (defstrand init 5 (a a) (b b) (la la))
+  (non-orig (privk "sig" b))
+  (facts (neq a b)
+	 ;;	 (undisclosed l-peer)
+	 ;;	 (undisclosed la)
+	 ))
+
+(defskeleton dhcr-um
+  (vars (a b name) (la lb rndx) (alpha beta expt))
+  (defstrand resp 5 (a a) (b b) (lb lb) (alpha alpha))
+  (defstrand init 5 (a a) (b b) (la la) (beta beta))
+  (non-orig (privk "sig" a) (privk "sig" b))
+  (facts (neq a b)
+	 (undisclosed la)
+	 (undisclosed lb)))
+
+; Responder point of view: both exponents secret
+(defskeleton dhcr-um
+  (vars (a b name) (lb rndx) (alpha expt))
+  (defstrand resp 5 (a a) (b b) (lb lb) (alpha alpha))
+  (non-orig (privk "sig" a))
+  (facts (neq a b)
+	 (undisclosed lb)
+	 (undisclosed alpha)))
+
+; Responder point of view:  peer exponent secret
+(defskeleton dhcr-um
+  (vars (a b name) (lb l-peer rndx) (alpha expt))
+  (defstrand resp 5 (a a) (b b) (lb lb) (alpha alpha))
+  (non-orig (privk "sig" a))
+  (facts (neq a b)
+	 ;;	 (undisclosed lb)
+	 (undisclosed alpha)))
+
+; Responder point of view:  my exponent secret
+(defskeleton dhcr-um
+  (vars (a b name) (lb rndx) (l-peer expt))
+  (defstrand resp 5 (a a) (b b) (lb lb) )
+  (non-orig (privk "sig" a))
+  (facts (neq a b)
+	 ;;	 (undisclosed l-peer)
+	 (undisclosed lb)))
+
+; Responder point of view:  neither exponent secret
+
+(defskeleton dhcr-um
+  (vars (a b name) (lb rndx) (l-peer expt))
+  (defstrand resp 5 (a a) (b b) (lb lb))
+  (non-orig (privk "sig" a))
+  (facts (neq a b)
+	 ;;	 (undisclosed l-peer)
+	 ;;	 (undisclosed lb)
+	 ))
+
+(comment
+;;; Initiator point of view: partner's exponent secret
+(defskeleton dhcr-um
+  (vars (ltxa ltxb rndx) (a b name))
+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
+  (defstrand ltx-gen 1 (l ltxb))
+  (non-orig ltxb)
+  (neq (a b)))
+
+					; Responder point of view; both exponents secret
+(defskeleton dhcr-um
+  (vars (ltxa ltxb rndx) (a b name))
+  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
+  (defstrand ltx-gen 1 (l ltxa))
+  (defstrand ltx-gen 1 (l ltxb))
+  (non-orig ltxa ltxb)
+  (neq (a b)))
+
+; Responder point of view; partner's exponent secre
+(defskeleton dhcr-um
+  (vars (ltxa ltxb rndx) (a b name))
+  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
+  (defstrand ltx-gen 1 (l ltxa))
+  (non-orig ltxa)
+  (neq (a b)))
+
+;;; Forward secrecy, neither long-term exponent secure
+(defskeleton dhcr-um
+   (vars (ltxa ltxb x rndx) (y expt) (a b name))
+   (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
+   (deflistener (kcfa ltxa ltxb x (exp (gen) y)))
+   (defstrand ltx-gen 3 (l ltxa))
+   (defstrand ltx-gen 3 (l ltxb))
+   (precedes ((0 3) (3 1)) ((0 3) (2 1)))
+   (neq (a b)))
+
+;;; Forward secrecy, neither long-term exponent secure
+(defskeleton dhcr-um
+  (vars (ltxa ltxb x rndx) (y expt) (a b name))
+  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
+  (deflistener (exp (gen) (mul x y)))
+  (defstrand ltx-gen 3 (l ltxa))
+  (defstrand ltx-gen 3 (l ltxb))
+  (precedes ((0 3) (3 1)) ((0 3) (2 1)))
+  (neq (a b)))
+)
diff --git a/tst/dhcr_um_expt.tst b/tst/dhcr_um_expt.tst
new file mode 100644
# file too large to diff: tst/dhcr_um_expt.tst
diff --git a/tst/dhcr_umx.tst b/tst/dhcr_umx.tst
--- a/tst/dhcr_umx.tst
+++ b/tst/dhcr_umx.tst
@@ -1,2275 +1,7609 @@
 (herald "DHCR: unified model (UM) criss-cross" (bound 20) (limit 8000)
   (algebra diffie-hellman))
 
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/dhcr_umx.scm")
-(comment "Step count limited to 8000")
-(comment "Strand count bounded at 20")
-
-(defprotocol dhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-      (y (exp (gen) x))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb)) ((send (cat b (exp (gen) ltxb)))))
-  (label 0)
-  (unrealized (0 2))
-  (origs (na (0 1)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen y x ltxb)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))
-      (send nb)) ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa))
-              (exp (gen) (mul x ltxb))))))))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na)
-        (nb nb))))
-  (origs (nb (2 2)) (na (0 1))))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (0 2)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb)) ((send (cat b (exp (gen) ltxb))))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-  (label 2)
-  (parent 0)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (2 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb)) ((send (cat b (exp (gen) ltxb))))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-  (label 3)
-  (parent 2)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (deflistener (cat (exp (gen) ltxb) x))
-  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
-    (exp (gen) (mul ltxb x)) (3 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb)) ((send (cat b (exp (gen) ltxb))))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
-  (label 4)
-  (parent 3)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol dhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-      (y (exp (gen) x))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb)) ((send (cat b (exp (gen) ltxb)))))
-  (label 5)
-  (unrealized (0 2))
-  (origs (na (0 1)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen y x ltxb)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))
-      (send nb)) ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa))
-              (exp (gen) (mul x ltxb))))))))
-  (label 6)
-  (parent 5)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na)
-        (nb nb))))
-  (origs (nb (2 2)) (na (0 1))))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (0 2)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb)) ((send (cat b (exp (gen) ltxb))))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-  (label 7)
-  (parent 5)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (2 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb)) ((send (cat b (exp (gen) ltxb))))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-  (label 8)
-  (parent 7)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (deflistener (cat (exp (gen) ltxb) x))
-  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
-    (exp (gen) (mul ltxb x)) (3 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb)) ((send (cat b (exp (gen) ltxb))))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
-  (label 9)
-  (parent 8)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol dhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-      (y (exp (gen) x))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self self) (l ltxa))
-  (defstrand ltx-gen 1 (self self-0) (l ltxb))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb)) ((send (cat self (exp (gen) ltxa))))
-    ((send (cat self-0 (exp (gen) ltxb)))))
-  (label 10)
-  (unrealized (0 0) (0 2))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)) ((2 0) (0 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb)) ((send (cat a (exp (gen) ltxa))))
-    ((send (cat b (exp (gen) ltxb)))))
-  (label 11)
-  (parent 10)
-  (unrealized (0 2))
-  (origs (na (0 1)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen y x ltxa ltxb)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))
-      (send nb)) ((send (cat a (exp (gen) ltxa))))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa))
-              (exp (gen) (mul x ltxb))))))))
-  (label 12)
-  (parent 11)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1 2)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na)
-        (nb nb))))
-  (origs (nb (3 2)) (na (0 1))))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb)) ((send (cat a (exp (gen) ltxa))))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-  (label 13)
-  (parent 11)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2))
-    ((4 1) (3 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (3 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb)) ((send (cat a (exp (gen) ltxa))))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-  (label 14)
-  (parent 13)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (deflistener (cat (exp (gen) ltxb) x))
-  (precedes ((0 1) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
-    (exp (gen) (mul ltxb x)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb)) ((send (cat a (exp (gen) ltxa))))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
-  (label 15)
-  (parent 14)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol dhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-      (y (exp (gen) x))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self self) (l ltxa))
-  (defstrand ltx-gen 1 (self self-0) (l ltxb))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb)) ((send (cat self (exp (gen) ltxa))))
-    ((send (cat self-0 (exp (gen) ltxb)))))
-  (label 16)
-  (unrealized (0 0) (0 3))
-  (preskeleton)
-  (origs (nb (0 2)))
-  (comment "Not a skeleton"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)) ((2 0) (0 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb)) ((send (cat a (exp (gen) ltxa))))
-    ((send (cat b (exp (gen) ltxb)))))
-  (label 17)
-  (parent 16)
-  (unrealized (0 3))
-  (origs (nb (0 2)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 1) (0 1)) ((3 3) (0 3)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))
-    (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) y) (gen)) (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen y x ltxa ltxb)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand init 4) nb (0 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))
-      (recv nb)) ((send (cat a (exp (gen) ltxa))))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))
-      (send nb)))
-  (label 18)
-  (parent 17)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1 2)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)
-        (nb nb))))
-  (origs (na (3 1)) (nb (0 2))))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))) nb (0 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb)) ((send (cat a (exp (gen) ltxa))))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-  (label 19)
-  (parent 17)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (3 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb)) ((send (cat a (exp (gen) ltxa))))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-  (label 20)
-  (parent 19)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (deflistener (cat (exp (gen) ltxa) y))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))
-    (exp (gen) (mul ltxa y)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb)) ((send (cat a (exp (gen) ltxa))))
-    ((send (cat b (exp (gen) ltxb))))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))
-  (label 21)
-  (parent 20)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol dhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-      (y (exp (gen) x))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self self) (l ltxa))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb)) ((send (cat self (exp (gen) ltxa)))))
-  (label 22)
-  (unrealized (0 0) (0 3))
-  (preskeleton)
-  (origs (nb (0 2)))
-  (comment "Not a skeleton"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (precedes ((1 0) (0 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb)) ((send (cat a (exp (gen) ltxa)))))
-  (label 23)
-  (parent 22)
-  (unrealized (0 3))
-  (origs (nb (0 2)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((2 3) (0 3)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))
-    (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) y) (gen)) (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen y x ltxa)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand init 4) nb (0 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))
-      (recv nb)) ((send (cat a (exp (gen) ltxa))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))
-      (send nb)))
-  (label 24)
-  (parent 23)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)
-        (nb nb))))
-  (origs (na (2 1)) (nb (0 2))))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))) nb (0 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb)) ((send (cat a (exp (gen) ltxa))))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-  (label 25)
-  (parent 23)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (2 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb)) ((send (cat a (exp (gen) ltxa))))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-  (label 26)
-  (parent 25)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (deflistener (cat (exp (gen) ltxa) y))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))
-    (exp (gen) (mul ltxa y)) (3 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb)) ((send (cat a (exp (gen) ltxa))))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))
-  (label 27)
-  (parent 26)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol dhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-      (y (exp (gen) x))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self self) (l ltxa))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa self) (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb)) ((send (cat self (exp (gen) ltxa)))))
-  (label 28)
-  (unrealized (0 0) (0 3))
-  (preskeleton)
-  (origs (nb (0 2)))
-  (comment "Not a skeleton"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (precedes ((1 0) (0 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb)) ((send (cat a (exp (gen) ltxa)))))
-  (label 29)
-  (parent 28)
-  (unrealized (0 3))
-  (origs (nb (0 2)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((2 3) (0 3)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)) (y (exp (gen) ltxa))
-    (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) y) (gen)) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen y x ltxa)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand init 4) nb (0 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))
-      (recv nb)) ((send (cat a (exp (gen) ltxa))))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))
-      (send nb)))
-  (label 30)
-  (parent 29)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)
-        (nb nb))))
-  (origs (na (2 1)) (nb (0 2))))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))) nb (0 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb)) ((send (cat a (exp (gen) ltxa))))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-  (label 31)
-  (parent 29)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (2 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb)) ((send (cat a (exp (gen) ltxa))))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-  (label 32)
-  (parent 31)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (deflistener (cat (exp (gen) ltxa) y))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))
-    (exp (gen) (mul ltxa y)) (3 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb)) ((send (cat a (exp (gen) ltxa))))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))
-  (label 33)
-  (parent 32)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol dhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb))))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb))
-      (y (exp (gen) x))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (defstrand ltx-gen 3 (self self) (l ltxa))
-  (defstrand ltx-gen 3 (self self-0) (l ltxb))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 34)
-  (unrealized (0 0) (0 2) (1 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 35)
-  (parent 34)
-  (unrealized (0 2) (1 0))
-  (origs (na (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (1 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-  (label 36)
-  (parent 35)
-  (unrealized (0 2) (4 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (deflistener (cat (exp (gen) ltxb) x))
-  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
-    (exp (gen) (mul ltxb x)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
-  (label 37)
-  (parent 36)
-  (unrealized (0 2) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-  (deflistener (cat (exp (gen) x) ltxb))
-  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) x) ltxb))
-    (exp (gen) (mul ltxb x)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
-    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb))))
-  (label 38)
-  (parent 36)
-  (unrealized (0 2) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-  (deflistener (cat (exp (gen) x) l))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((3 0) (0 0))
-    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation nonce-test (displaced 6 3 ltx-gen 3) l (5 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
-    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l))))
-  (label 39)
-  (parent 38)
-  (unrealized (0 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))
-  (deflistener (cat (exp (gen) x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y x ltxa ltxb)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b
-      (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))
-      (send (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))
-      (send (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))
-    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa))
-              (exp (gen) (mul x ltxb))))))))
-  (label 40)
-  (parent 39)
-  (unrealized (4 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-  (deflistener (cat (exp (gen) x) l))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (0 2)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-    (enc na nb a b
-      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))) (0 2))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
-    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
-  (label 41)
-  (parent 39)
-  (unrealized (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))
-  (deflistener (cat (exp (gen) x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat (exp (gen) y) ltxa))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((6 2) (7 0))
-    ((7 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y x ltxa ltxb)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener (cat (exp (gen) y) ltxa))
-    (exp (gen) (mul y ltxa)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))
-      (send (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))
-      (send (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))
-    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))))
-    ((recv (cat (exp (gen) y) ltxa)) (send (cat (exp (gen) y) ltxa))))
-  (label 42)
-  (parent 40)
-  (unrealized (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (y x ltxa ltxb rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))
-  (deflistener (cat (exp (gen) x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat (exp (gen) ltxa) y))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((6 2) (7 0))
-    ((7 1) (4 0)))
-  (absent (y (exp (gen) ltxa)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) ltxa)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y x ltxa ltxb)
-  (uniq-orig na nb)
-  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))
-    (exp (gen) (mul y ltxa)) (4 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))
-      (send (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))
-      (send (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))
-    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
-    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb)))))))
-    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))
-  (label 43)
-  (parent 40)
-  (unrealized (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-  (deflistener (cat (exp (gen) x) l))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (0 2)) ((7 1) (6 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))) (6 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
-    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
-  (label 44)
-  (parent 41)
-  (unrealized (7 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (y x ltxb l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))
-  (deflistener (cat (exp (gen) x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat (exp (gen) y) l))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (7 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2))
-    ((7 1) (4 0)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y x ltxb l)
-  (uniq-orig na nb)
-  (operation nonce-test (displaced 8 2 ltx-gen 3) l (7 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))
-      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb)))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))
-      (send (cat (exp (gen) (mul y l)) (exp (gen) (mul x ltxb)))))
-    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb)))))))
-    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l))))
-  (label 45)
-  (parent 42)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-  (deflistener (cat (exp (gen) x) l))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-  (deflistener (cat (exp (gen) x) l))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (0 2)) ((7 1) (6 0)) ((8 1) (7 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) x) l))
-    (exp (gen) (mul x l)) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
-    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
-    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l))))
-  (label 46)
-  (parent 44)
-  (unrealized (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (ltxa x rndx) (y expt) (l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-  (deflistener (cat (exp (gen) x) l))
-  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-  (deflistener (cat (exp (gen) l) x))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (0 2)) ((7 1) (6 0)) ((8 1) (7 0)))
-  (absent (x (exp (gen) ltxa)) (x (exp (gen) l)))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation nonce-test (added-listener (cat (exp (gen) l) x))
-    (exp (gen) (mul x l)) (7 0))
-  (traces
-    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
-    ((send (cat a (exp (gen) ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
-    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
-    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
-    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
-      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
-    ((recv (cat (exp (gen) l) x)) (send (cat (exp (gen) l) x))))
-  (label 47)
-  (parent 44)
-  (unrealized (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (y x ltxb l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat (exp (gen) x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat (exp (gen) y) l))
-  (precedes ((0 1) (5 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (5 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (5 0))
-    ((3 2) (4 0)) ((4 1) (1 0)) ((5 2) (0 2)) ((6 1) (1 0)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y x ltxb l)
-  (uniq-orig na nb)
-  (operation generalization deleted (4 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))
-      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb)))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb)))))))
-    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l))))
-  (label 48)
-  (parent 45)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (y x ltxb l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat (exp (gen) y) l))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (4 0))
-    ((3 2) (1 0)) ((4 2) (0 2)) ((5 1) (1 0)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y x ltxb l)
-  (uniq-orig na nb)
-  (operation generalization deleted (4 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))
-      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb)))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb)))))))
-    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l))))
-  (label 49)
-  (parent 48)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhcr-umx
-  (vars (na nb data) (a b name) (y x ltxb l rndx))
-  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (x x) (y y))
-  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((2 2) (1 0)) ((3 0) (0 0)) ((3 0) (4 0))
-    ((3 2) (1 0)) ((4 2) (0 2)))
-  (absent (y (exp (gen) l)) (y (exp (gen) ltxb)) (y (exp (gen) x))
-    (x (exp (gen) l)) (x (exp (gen) ltxb)))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y x ltxb l)
-  (uniq-orig na nb)
-  (operation generalization deleted (5 0))
-  (traces
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (send (cat na a b (exp (gen) x)))
-      (recv
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))))
-      (send nb))
-    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))
-      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb)))))
-    ((send (cat a (exp (gen) l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (exp (gen) ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
-      (recv (cat na a b (exp (gen) x)))
-      (send
-        (cat (exp (gen) y)
-          (enc na nb a b
-            (hash (exp (gen) (mul y l)) (exp (gen) (mul x ltxb))))))))
-  (label 50)
-  (parent 49)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1 2 3)
-      ((ltxa l) (ltxb ltxb) (x x) (y y) (a a) (b b) (na na) (nb nb))))
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/dhcr_umx.scm")
+(comment "Step count limited to 8000")
+(comment "Strand count bounded at 20")
+
+(defprotocol dhcr-umx diffie-hellman
+  (defrole init
+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    (uniq-orig na)
+    (uniq-gen x)
+    (absent (x ltxa) (x ltxb))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) y) (gen))))
+  (defrole resp
+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb))
+    (uniq-orig nb)
+    (uniq-gen y)
+    (absent (y ltxa) (y ltxb) (y x))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) x) (gen))))
+  (defrole ltx-gen
+    (vars (self name) (l rndx))
+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    (uniq-gen l)
+    (fn-of ("principal-of" (l self)) ("ltx-of" (self l))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self b) (l ltxb))
+  (precedes ((1 0) (0 0)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb)) ((send (cat b (exp (gen) ltxb)))))
+  (label 0)
+  (unrealized (0 2))
+  (origs (na (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b name) (ltxa ltxa-0 y ltxb x ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y (mul (rec ltxa) ltxa-0 y)))
+  (defstrand ltx-gen 1 (self b) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y ltxb x)
+  (absent (y ltxa-0) (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa)
+    (x ltxb))
+  (operation encryption-test (added-strand resp 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb x)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))) (send nb))
+    ((send (cat b (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x))))))))
+  (label 1)
+  (parent 0)
+  (unrealized (2 1))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self b) (l ltxb))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (0 2)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation encryption-test
+    (added-listener
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb)) ((send (cat b (exp (gen) ltxb))))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+  (label 2)
+  (parent 0)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b name) (ltxa ltxa-0 y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x ltxb) (y (mul (rec ltxa) ltxa-0 y)))
+  (defstrand ltx-gen 1 (self b) (l l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (y y) (x l))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig l)
+  (uniq-orig na nb)
+  (uniq-gen y ltxb l)
+  (absent (y ltxa-0) (y ltxb) (y l) (ltxb ltxa) (ltxb l))
+  (operation nonce-test (displaced 3 1 ltx-gen 1) (exp (gen) l) (2 1))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l)))))) (send nb))
+    ((send (cat b (exp (gen) l))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l))))))))
+  (label 3)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ltxa ltxa) (ltxb l) (a a) (b b) (x ltxb)
+        (y (mul (rec ltxa) ltxa-0 y)) (na na) (nb nb))))
+  (origs (nb (2 2)) (na (0 1))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b name) (ltxa y x ltxa-0 ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (defstrand ltx-gen 1 (self b) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb)
+  (absent (y ltxa) (y x) (y ltxb) (x ltxa-0) (x ltxb))
+  (operation nonce-test (displaced 3 0 init 2) (exp (gen) x) (2 1))
+  (traces
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))))
+      (send nb)) ((send (cat b (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul x ltxb))))))))
+  (label 4)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ltxa ltxa-0) (ltxb ltxb) (a a) (b b) (x x)
+        (y (mul ltxa y (rec ltxa-0))) (na na) (nb nb))))
+  (origs (na (0 1)) (nb (2 2))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b name) (ltxa ltxa-0 y ltxb x ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y (mul (rec ltxa) ltxa-0 y)))
+  (defstrand ltx-gen 1 (self b) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (deflistener (cat (exp (gen) (mul ltxb x)) ltxb-0))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 1) (2 1)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y ltxb x)
+  (absent (y ltxa-0) (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa)
+    (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxb x)) ltxb-0))
+    (exp (gen) (mul ltxb x (rec ltxb-0))) (2 1))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))) (send nb))
+    ((send (cat b (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))))
+    ((recv (cat (exp (gen) (mul ltxb x)) ltxb-0))
+      (send (cat (exp (gen) (mul ltxb x)) ltxb-0))))
+  (label 5)
+  (parent 1)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b name) (ltxa ltxa-0 y ltxb x ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y (mul (rec ltxa) ltxa-0 y)))
+  (defstrand ltx-gen 1 (self b) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (deflistener (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 1) (2 1)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y ltxb x)
+  (absent (y ltxa-0) (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa)
+    (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+    (exp (gen) (mul ltxb x (rec ltxb-0))) (2 1))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))) (send nb))
+    ((send (cat b (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))))
+    ((recv (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+      (send (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))))
+  (label 6)
+  (parent 1)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self b) (l ltxb))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (2 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb)) ((send (cat b (exp (gen) ltxb))))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+  (label 7)
+  (parent 2)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b name) (ltxa ltxa-0 y ltxb x ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y (mul (rec ltxa) ltxa-0 y)))
+  (defstrand ltx-gen 1 (self b) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (deflistener (cat (exp (gen) (mul ltxb x)) ltxb-0))
+  (deflistener (cat (exp (gen) ltxb) x))
+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 1) (2 1))
+    ((4 1) (3 0)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y ltxb x)
+  (absent (y ltxa-0) (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa)
+    (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
+    (exp (gen) (mul ltxb x)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))) (send nb))
+    ((send (cat b (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))))
+    ((recv (cat (exp (gen) (mul ltxb x)) ltxb-0))
+      (send (cat (exp (gen) (mul ltxb x)) ltxb-0)))
+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
+  (label 8)
+  (parent 5)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self b) (l ltxb))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) ltxb) x))
+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))
+    ((4 1) (3 0)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
+    (exp (gen) (mul ltxb x)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb)) ((send (cat b (exp (gen) ltxb))))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
+  (label 9)
+  (parent 7)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol dhcr-umx diffie-hellman
+  (defrole init
+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    (uniq-orig na)
+    (uniq-gen x)
+    (absent (x ltxa) (x ltxb))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) y) (gen))))
+  (defrole resp
+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb))
+    (uniq-orig nb)
+    (uniq-gen y)
+    (absent (y ltxa) (y ltxb) (y x))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) x) (gen))))
+  (defrole ltx-gen
+    (vars (self name) (l rndx))
+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    (uniq-gen l)
+    (fn-of ("principal-of" (l self)) ("ltx-of" (self l))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self b) (l ltxb))
+  (precedes ((1 0) (0 0)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb)) ((send (cat b (exp (gen) ltxb)))))
+  (label 10)
+  (unrealized (0 2))
+  (origs (na (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b name) (ltxa ltxa-0 y ltxb x ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y (mul (rec ltxa) ltxa-0 y)))
+  (defstrand ltx-gen 1 (self b) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y ltxb x)
+  (absent (y ltxa-0) (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa)
+    (x ltxb))
+  (operation encryption-test (added-strand resp 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb x)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))) (send nb))
+    ((send (cat b (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x))))))))
+  (label 11)
+  (parent 10)
+  (unrealized (2 1))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self b) (l ltxb))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (0 2)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation encryption-test
+    (added-listener
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb)) ((send (cat b (exp (gen) ltxb))))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+  (label 12)
+  (parent 10)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b name) (ltxa ltxa-0 y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x ltxb) (y (mul (rec ltxa) ltxa-0 y)))
+  (defstrand ltx-gen 1 (self b) (l l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (y y) (x l))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig l)
+  (uniq-orig na nb)
+  (uniq-gen y ltxb l)
+  (absent (y ltxa-0) (y ltxb) (y l) (ltxb ltxa) (ltxb l))
+  (operation nonce-test (displaced 3 1 ltx-gen 1) (exp (gen) l) (2 1))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l)))))) (send nb))
+    ((send (cat b (exp (gen) l))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l))))))))
+  (label 13)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ltxa ltxa) (ltxb l) (a a) (b b) (x ltxb)
+        (y (mul (rec ltxa) ltxa-0 y)) (na na) (nb nb))))
+  (origs (nb (2 2)) (na (0 1))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b name) (ltxa y x ltxa-0 ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (defstrand ltx-gen 1 (self b) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb)
+  (absent (y ltxa) (y x) (y ltxb) (x ltxa-0) (x ltxb))
+  (operation nonce-test (displaced 3 0 init 2) (exp (gen) x) (2 1))
+  (traces
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))))
+      (send nb)) ((send (cat b (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul x ltxb))))))))
+  (label 14)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ltxa ltxa-0) (ltxb ltxb) (a a) (b b) (x x)
+        (y (mul ltxa y (rec ltxa-0))) (na na) (nb nb))))
+  (origs (na (0 1)) (nb (2 2))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b name) (ltxa ltxa-0 y ltxb x ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y (mul (rec ltxa) ltxa-0 y)))
+  (defstrand ltx-gen 1 (self b) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (deflistener (cat (exp (gen) (mul ltxb x)) ltxb-0))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 1) (2 1)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y ltxb x)
+  (absent (y ltxa-0) (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa)
+    (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxb x)) ltxb-0))
+    (exp (gen) (mul ltxb x (rec ltxb-0))) (2 1))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))) (send nb))
+    ((send (cat b (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))))
+    ((recv (cat (exp (gen) (mul ltxb x)) ltxb-0))
+      (send (cat (exp (gen) (mul ltxb x)) ltxb-0))))
+  (label 15)
+  (parent 11)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b name) (ltxa ltxa-0 y ltxb x ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y (mul (rec ltxa) ltxa-0 y)))
+  (defstrand ltx-gen 1 (self b) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (deflistener (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 1) (2 1)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y ltxb x)
+  (absent (y ltxa-0) (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa)
+    (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+    (exp (gen) (mul ltxb x (rec ltxb-0))) (2 1))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))) (send nb))
+    ((send (cat b (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))))
+    ((recv (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+      (send (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))))
+  (label 16)
+  (parent 11)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self b) (l ltxb))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (2 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb)) ((send (cat b (exp (gen) ltxb))))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+  (label 17)
+  (parent 12)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b name) (ltxa ltxa-0 y ltxb x ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y (mul (rec ltxa) ltxa-0 y)))
+  (defstrand ltx-gen 1 (self b) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (deflistener (cat (exp (gen) (mul ltxb x)) ltxb-0))
+  (deflistener (cat (exp (gen) ltxb) x))
+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 1) (2 1))
+    ((4 1) (3 0)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y ltxb x)
+  (absent (y ltxa-0) (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa)
+    (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
+    (exp (gen) (mul ltxb x)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))) (send nb))
+    ((send (cat b (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))))
+    ((recv (cat (exp (gen) (mul ltxb x)) ltxb-0))
+      (send (cat (exp (gen) (mul ltxb x)) ltxb-0)))
+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
+  (label 18)
+  (parent 15)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self b) (l ltxb))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) ltxb) x))
+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))
+    ((4 1) (3 0)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
+    (exp (gen) (mul ltxb x)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb)) ((send (cat b (exp (gen) ltxb))))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
+  (label 19)
+  (parent 17)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol dhcr-umx diffie-hellman
+  (defrole init
+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    (uniq-orig na)
+    (uniq-gen x)
+    (absent (x ltxa) (x ltxb))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) y) (gen))))
+  (defrole resp
+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb))
+    (uniq-orig nb)
+    (uniq-gen y)
+    (absent (y ltxa) (y ltxb) (y x))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) x) (gen))))
+  (defrole ltx-gen
+    (vars (self name) (l rndx))
+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    (uniq-gen l)
+    (fn-of ("principal-of" (l self)) ("ltx-of" (self l))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (non-orig ltxa ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxa ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb)) ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb)))))
+  (label 20)
+  (unrealized (0 0) (0 2))
+  (preskeleton)
+  (origs (na (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (precedes ((1 0) (0 0)) ((2 0) (0 0)))
+  (non-orig ltxa ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxa ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb)) ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb)))))
+  (label 21)
+  (parent 20)
+  (unrealized (0 2))
+  (origs (na (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (precedes ((1 0) (0 0)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen x ltxb)
+  (absent (x ltxb))
+  (operation collapsed 2 1)
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))))
+      (send nb)) ((send (cat self (exp (gen) ltxb)))))
+  (label 22)
+  (parent 21)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name)
+    (ltxa ltxa-0 y ltxb x ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y (mul (rec ltxa) ltxa-0 y)))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 2) (0 2)))
+  (non-orig ltxa ltxb)
+  (uniq-orig na nb)
+  (uniq-gen ltxa y ltxb x)
+  (absent (y ltxa-0) (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa)
+    (x ltxb))
+  (operation encryption-test (added-strand resp 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb x)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))) (send nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x))))))))
+  (label 23)
+  (parent 21)
+  (unrealized (0 2) (3 1))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2)))
+  (non-orig ltxa ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxa ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation encryption-test
+    (added-listener
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb)) ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+  (label 24)
+  (parent 21)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y x ltxb ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb-0) (x x) (y (mul ltxa y (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxb-0))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul x (rec ltxb) ltxb-0)))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb-0)
+  (absent (y ltxa) (y (mul x (rec ltxb) ltxb-0)) (y ltxb) (x ltxb-0))
+  (operation encryption-test (added-strand resp 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb-0)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxb-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul x ltxb-0)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb-0))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x (rec ltxb) ltxb-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul x ltxb-0))))))))
+  (label 25)
+  (parent 22)
+  (unrealized (0 2) (2 1))
+  (origs (nb (2 2)) (na (0 1)))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (0 2)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen x ltxb)
+  (absent (x ltxb))
+  (operation encryption-test
+    (added-listener
+      (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+    (enc na nb a b
+      (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))))
+      (send nb)) ((send (cat self (exp (gen) ltxb))))
+    ((recv (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+      (send (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))))
+  (label 26)
+  (parent 22)
+  (unrealized (2 0))
+  (origs (na (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxa-0 y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x ltxb) (y (mul (rec ltxa) ltxa-0 y)))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (y y) (x l))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 2) (0 2)))
+  (non-orig ltxa l)
+  (uniq-orig na nb)
+  (uniq-gen ltxa y ltxb l)
+  (absent (y ltxa-0) (y ltxb) (y l) (ltxb ltxa) (ltxb l))
+  (operation nonce-test (displaced 4 2 ltx-gen 1) (exp (gen) l) (3 1))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l)))))) (send nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) l))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l))))))))
+  (label 27)
+  (parent 23)
+  (unrealized (0 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa y x ltxa-0 ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxa-0))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((2 0) (0 0)) ((2 0) (3 0))
+    ((3 2) (0 2)))
+  (non-orig ltxa-0 ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxa-0 ltxb)
+  (absent (y ltxa) (y x) (y ltxb) (x ltxa-0) (x ltxb))
+  (operation nonce-test (displaced 4 0 init 2) (exp (gen) x) (3 1))
+  (traces
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))))
+      (send nb)) ((send (cat self (exp (gen) ltxa-0))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul x ltxb))))))))
+  (label 28)
+  (parent 23)
+  (unrealized (0 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name)
+    (ltxa ltxa-0 y ltxb x ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y (mul (rec ltxa) ltxa-0 y)))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (deflistener (cat (exp (gen) (mul ltxb x)) ltxb-0))
+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 2) (0 2))
+    ((4 1) (3 1)))
+  (non-orig ltxa ltxb)
+  (uniq-orig na nb)
+  (uniq-gen ltxa y ltxb x)
+  (absent (y ltxa-0) (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa)
+    (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxb x)) ltxb-0))
+    (exp (gen) (mul ltxb x (rec ltxb-0))) (3 1))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))) (send nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))))
+    ((recv (cat (exp (gen) (mul ltxb x)) ltxb-0))
+      (send (cat (exp (gen) (mul ltxb x)) ltxb-0))))
+  (label 29)
+  (parent 23)
+  (unrealized (0 2) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name)
+    (ltxa ltxa-0 y ltxb x ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y (mul (rec ltxa) ltxa-0 y)))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (deflistener (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 2) (0 2))
+    ((4 1) (3 1)))
+  (non-orig ltxa ltxb)
+  (uniq-orig na nb)
+  (uniq-gen ltxa y ltxb x)
+  (absent (y ltxa-0) (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa)
+    (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+    (exp (gen) (mul ltxb x (rec ltxb-0))) (3 1))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))) (send nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))))
+    ((recv (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+      (send (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))))
+  (label 30)
+  (parent 23)
+  (unrealized (0 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2))
+    ((4 1) (3 0)))
+  (non-orig ltxa ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxa ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb)) ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+  (label 31)
+  (parent 24)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l)
+    (x ltxb) (y (mul ltxa y (rec l))))
+  (defstrand ltx-gen 1 (self self) (l l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x l))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig l)
+  (uniq-orig na nb)
+  (uniq-gen y ltxb l)
+  (absent (y ltxa) (y ltxb) (y l) (ltxb l))
+  (operation nonce-test (displaced 3 1 ltx-gen 1) (exp (gen) l) (2 1))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))))
+      (send nb)) ((send (cat self (exp (gen) l))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb l))))))))
+  (label 32)
+  (parent 25)
+  (unrealized (0 2))
+  (origs (nb (2 2)) (na (0 1)))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y x ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y (mul ltxa y (rec ltxb))))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb)
+  (absent (y ltxa) (y x) (y ltxb) (x ltxb))
+  (operation nonce-test (displaced 3 0 init 2) (exp (gen) x) (2 1))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxb)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))))
+      (send nb)) ((send (cat self (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul x ltxb))))))))
+  (label 33)
+  (parent 25)
+  (unrealized (0 2))
+  (origs (na (0 1)) (nb (2 2)))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y x ltxb ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb-0) (x x) (y (mul ltxa y (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxb-0))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul x (rec ltxb) ltxb-0)))
+  (deflistener (cat (exp (gen) (mul x ltxb-0)) ltxb))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 1) (2 1)))
+  (non-orig ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb-0)
+  (absent (y ltxa) (y (mul x (rec ltxb) ltxb-0)) (y ltxb) (x ltxb-0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x ltxb-0)) ltxb))
+    (exp (gen) (mul x (rec ltxb) ltxb-0)) (2 1))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxb-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul x ltxb-0)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb-0))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x (rec ltxb) ltxb-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul x ltxb-0)))))))
+    ((recv (cat (exp (gen) (mul x ltxb-0)) ltxb))
+      (send (cat (exp (gen) (mul x ltxb-0)) ltxb))))
+  (label 34)
+  (parent 25)
+  (unrealized (0 2) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y x ltxb ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb-0) (x x) (y (mul ltxa y (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxb-0))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul x (rec ltxb) ltxb-0)))
+  (deflistener (cat (exp (gen) (mul (rec ltxb) ltxb-0)) x))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 1) (2 1)))
+  (non-orig ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb-0)
+  (absent (y ltxa) (y (mul x (rec ltxb) ltxb-0)) (y ltxb) (x ltxb-0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec ltxb) ltxb-0)) x))
+    (exp (gen) (mul x (rec ltxb) ltxb-0)) (2 1))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxb-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul x ltxb-0)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb-0))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x (rec ltxb) ltxb-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul x ltxb-0)))))))
+    ((recv (cat (exp (gen) (mul (rec ltxb) ltxb-0)) x))
+      (send (cat (exp (gen) (mul (rec ltxb) ltxb-0)) x))))
+  (label 35)
+  (parent 25)
+  (unrealized (0 2) (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+  (deflistener (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen x ltxb)
+  (absent (x ltxb))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+    (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))) (2 0))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))))
+      (send nb)) ((send (cat self (exp (gen) ltxb))))
+    ((recv (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+      (send (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb)))))
+    ((recv (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+      (send (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))))
+  (label 36)
+  (parent 26)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y ltxa ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x ltxb) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x l))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 2) (0 2)))
+  (non-orig ltxa l)
+  (uniq-orig na nb)
+  (uniq-gen y ltxa ltxb l)
+  (absent (y ltxa) (y ltxb) (y l) (ltxb ltxa) (ltxb l))
+  (operation nonce-test (displaced 4 3 resp 3) (exp (gen) y) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l))))))
+      (send nb)) ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) l))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa))
+              (exp (gen) (mul ltxb l))))))))
+  (label 37)
+  (parent 27)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 2)
+      ((ltxa ltxa) (ltxb l) (a a) (b b) (x ltxb) (y y) (na na) (nb nb)
+        (self self) (self-0 self-0))))
+  (origs (nb (3 2)) (na (0 1))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxa-0 y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x ltxb) (y (mul (rec ltxa) ltxa-0 y)))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (y y) (x l))
+  (deflistener (cat (exp (gen) (mul (rec ltxa) ltxa-0)) y))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 2) (4 0))
+    ((4 1) (0 2)))
+  (non-orig ltxa l)
+  (uniq-orig na nb)
+  (uniq-gen ltxa y ltxb l)
+  (absent (y ltxa-0) (y ltxb) (y l) (ltxb ltxa) (ltxb l))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec ltxa) ltxa-0)) y))
+    (exp (gen) (mul (rec ltxa) ltxa-0 y)) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l)))))) (send nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) l))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) (mul (rec ltxa) ltxa-0)) y))
+      (send (cat (exp (gen) (mul (rec ltxa) ltxa-0)) y))))
+  (label 38)
+  (parent 27)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxa-0 y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x ltxb) (y (mul (rec ltxa) ltxa-0 y)))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (y y) (x l))
+  (deflistener (cat (exp (gen) (mul (rec ltxa) y)) ltxa-0))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 2) (4 0))
+    ((4 1) (0 2)))
+  (non-orig ltxa l)
+  (uniq-orig na nb)
+  (uniq-gen ltxa y ltxb l)
+  (absent (y ltxa-0) (y ltxb) (y l) (ltxb ltxa) (ltxb l))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec ltxa) y)) ltxa-0))
+    (exp (gen) (mul (rec ltxa) ltxa-0 y)) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l)))))) (send nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) l))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) (mul (rec ltxa) y)) ltxa-0))
+      (send (cat (exp (gen) (mul (rec ltxa) y)) ltxa-0))))
+  (label 39)
+  (parent 27)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y ltxa ltxb x rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
+    ((2 0) (3 0)) ((3 2) (0 2)))
+  (non-orig ltxa ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y ltxa ltxb x)
+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
+  (operation nonce-test (displaced 4 3 resp 3) (exp (gen) y) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))))
+      (send nb)) ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa))
+              (exp (gen) (mul ltxb x))))))))
+  (label 40)
+  (parent 28)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 2)
+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na) (nb nb)
+        (self self) (self-0 self-0))))
+  (origs (nb (3 2)) (na (0 1))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa y x ltxa-0 ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxa-0))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) (mul ltxa (rec ltxa-0))) y))
+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((2 0) (0 0)) ((2 0) (3 0))
+    ((3 2) (4 0)) ((4 1) (0 2)))
+  (non-orig ltxa-0 ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxa-0 ltxb)
+  (absent (y ltxa) (y x) (y ltxb) (x ltxa-0) (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxa (rec ltxa-0))) y))
+    (exp (gen) (mul ltxa y (rec ltxa-0))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))))
+      (send nb)) ((send (cat self (exp (gen) ltxa-0))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))))
+    ((recv (cat (exp (gen) (mul ltxa (rec ltxa-0))) y))
+      (send (cat (exp (gen) (mul ltxa (rec ltxa-0))) y))))
+  (label 41)
+  (parent 28)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa y x ltxa-0 ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxa-0))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) (mul y (rec ltxa-0))) ltxa))
+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((2 0) (0 0)) ((2 0) (3 0))
+    ((3 2) (4 0)) ((4 1) (0 2)))
+  (non-orig ltxa-0 ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxa-0 ltxb)
+  (absent (y ltxa) (y x) (y ltxb) (x ltxa-0) (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y (rec ltxa-0))) ltxa))
+    (exp (gen) (mul ltxa y (rec ltxa-0))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))))
+      (send nb)) ((send (cat self (exp (gen) ltxa-0))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))))
+    ((recv (cat (exp (gen) (mul y (rec ltxa-0))) ltxa))
+      (send (cat (exp (gen) (mul y (rec ltxa-0))) ltxa))))
+  (label 42)
+  (parent 28)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name)
+    (ltxa ltxa-0 y ltxb x ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y (mul (rec ltxa) ltxa-0 y)))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (deflistener (cat (exp (gen) (mul ltxb x)) ltxb-0))
+  (deflistener (cat (exp (gen) ltxb) x))
+  (precedes ((0 1) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 2) (0 2))
+    ((4 1) (3 1)) ((5 1) (4 0)))
+  (non-orig ltxa ltxb)
+  (uniq-orig na nb)
+  (uniq-gen ltxa y ltxb x)
+  (absent (y ltxa-0) (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa)
+    (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
+    (exp (gen) (mul ltxb x)) (4 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))) (send nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb x)))))))
+    ((recv (cat (exp (gen) (mul ltxb x)) ltxb-0))
+      (send (cat (exp (gen) (mul ltxb x)) ltxb-0)))
+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
+  (label 43)
+  (parent 29)
+  (unrealized (0 2) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) ltxb) x))
+  (precedes ((0 1) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2))
+    ((4 1) (3 0)) ((5 1) (4 0)))
+  (non-orig ltxa ltxb)
+  (uniq-orig na)
+  (uniq-gen ltxa ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
+    (exp (gen) (mul ltxb x)) (4 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb)) ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
+  (label 44)
+  (parent 31)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l)
+    (x ltxb) (y y))
+  (defstrand ltx-gen 1 (self self) (l l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (y y) (x l))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig l)
+  (uniq-orig na nb)
+  (uniq-gen y ltxb l)
+  (absent (y ltxb) (y l) (ltxb l))
+  (operation nonce-test (displaced 3 2 resp 3) (exp (gen) y) (0 2))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb l))))))
+      (send nb)) ((send (cat self (exp (gen) l))))
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb l))))))))
+  (label 45)
+  (parent 32)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 1)
+      ((ltxa l) (ltxb l) (a a) (b b) (x ltxb) (y y) (na na) (nb nb)
+        (self self) (self-0 self))))
+  (origs (nb (2 2)) (na (0 1))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l)
+    (x ltxb) (y (mul ltxa y (rec l))))
+  (defstrand ltx-gen 1 (self self) (l l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x l))
+  (deflistener (cat (exp (gen) (mul ltxa (rec l))) y))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (3 0)) ((3 1) (0 2)))
+  (non-orig l)
+  (uniq-orig na nb)
+  (uniq-gen y ltxb l)
+  (absent (y ltxa) (y ltxb) (y l) (ltxb l))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxa (rec l))) y))
+    (exp (gen) (mul ltxa y (rec l))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))))
+      (send nb)) ((send (cat self (exp (gen) l))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) (mul ltxa (rec l))) y))
+      (send (cat (exp (gen) (mul ltxa (rec l))) y))))
+  (label 46)
+  (parent 32)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l)
+    (x ltxb) (y (mul ltxa y (rec l))))
+  (defstrand ltx-gen 1 (self self) (l l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x l))
+  (deflistener (cat (exp (gen) (mul y (rec l))) ltxa))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (3 0)) ((3 1) (0 2)))
+  (non-orig l)
+  (uniq-orig na nb)
+  (uniq-gen y ltxb l)
+  (absent (y ltxa) (y ltxb) (y l) (ltxb l))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y (rec l))) ltxa))
+    (exp (gen) (mul ltxa y (rec l))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))))
+      (send nb)) ((send (cat self (exp (gen) l))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) (mul y (rec l))) ltxa))
+      (send (cat (exp (gen) (mul y (rec l))) ltxa))))
+  (label 47)
+  (parent 32)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y ltxb x rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (y y) (x x))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y ltxb x)
+  (absent (y ltxb) (y x) (x ltxb))
+  (operation nonce-test (displaced 3 2 resp 3) (exp (gen) y) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul ltxb x))))))
+      (send nb)) ((send (cat self (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb))
+              (exp (gen) (mul ltxb x))))))))
+  (label 48)
+  (parent 33)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 1)
+      ((ltxa ltxb) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na) (nb nb)
+        (self self) (self-0 self))))
+  (origs (nb (2 2)) (na (0 1))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y x ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y (mul ltxa y (rec ltxb))))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) (mul ltxa (rec ltxb))) y))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (3 0))
+    ((3 1) (0 2)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb)
+  (absent (y ltxa) (y x) (y ltxb) (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxa (rec ltxb))) y))
+    (exp (gen) (mul ltxa y (rec ltxb))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxb)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))))
+      (send nb)) ((send (cat self (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))))
+    ((recv (cat (exp (gen) (mul ltxa (rec ltxb))) y))
+      (send (cat (exp (gen) (mul ltxa (rec ltxb))) y))))
+  (label 49)
+  (parent 33)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y x ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y (mul ltxa y (rec ltxb))))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) (mul y (rec ltxb))) ltxa))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (3 0))
+    ((3 1) (0 2)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb)
+  (absent (y ltxa) (y x) (y ltxb) (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y (rec ltxb))) ltxa))
+    (exp (gen) (mul ltxa y (rec ltxb))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxb)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))))
+      (send nb)) ((send (cat self (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))))
+    ((recv (cat (exp (gen) (mul y (rec ltxb))) ltxa))
+      (send (cat (exp (gen) (mul y (rec ltxb))) ltxa))))
+  (label 50)
+  (parent 33)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y x ltxb ltxb-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb-0) (x x) (y (mul ltxa y (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxb-0))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul x (rec ltxb) ltxb-0)))
+  (deflistener (cat (exp (gen) (mul x ltxb-0)) ltxb))
+  (deflistener (cat (exp (gen) ltxb-0) x))
+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 1) (2 1))
+    ((4 1) (3 0)))
+  (non-orig ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb-0)
+  (absent (y ltxa) (y (mul x (rec ltxb) ltxb-0)) (y ltxb) (x ltxb-0))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb-0) x))
+    (exp (gen) (mul x ltxb-0)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxb-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul x ltxb-0)))))) (send nb))
+    ((send (cat self (exp (gen) ltxb-0))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x (rec ltxb) ltxb-0))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul x ltxb-0)))))))
+    ((recv (cat (exp (gen) (mul x ltxb-0)) ltxb))
+      (send (cat (exp (gen) (mul x ltxb-0)) ltxb)))
+    ((recv (cat (exp (gen) ltxb-0) x))
+      (send (cat (exp (gen) ltxb-0) x))))
+  (label 51)
+  (parent 34)
+  (unrealized (0 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+  (deflistener (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+  (deflistener (cat (exp (gen) ltxb) x))
+  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))
+    ((4 1) (3 0)))
+  (non-orig ltxb)
+  (uniq-orig na)
+  (uniq-gen x ltxb)
+  (absent (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
+    (exp (gen) (mul x ltxb)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))))
+      (send nb)) ((send (cat self (exp (gen) ltxb))))
+    ((recv (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+      (send (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb)))))
+    ((recv (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+      (send (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb)))))
+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
+  (label 52)
+  (parent 36)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxa-0 y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x ltxb) (y (mul (rec ltxa) ltxa-0 y)))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (y y) (x l))
+  (deflistener (cat (exp (gen) (mul (rec ltxa) y)) ltxa-0))
+  (deflistener (cat (exp (gen) (rec ltxa)) y))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 2) (5 0))
+    ((4 1) (0 2)) ((5 1) (4 0)))
+  (non-orig ltxa l)
+  (uniq-orig na nb)
+  (uniq-gen ltxa y ltxb l)
+  (absent (y ltxa-0) (y ltxb) (y l) (ltxb ltxa) (ltxb l))
+  (operation nonce-test (added-listener (cat (exp (gen) (rec ltxa)) y))
+    (exp (gen) (mul (rec ltxa) y)) (4 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l)))))) (send nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) l))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) (mul (rec ltxa) y)) ltxa-0))
+      (send (cat (exp (gen) (mul (rec ltxa) y)) ltxa-0)))
+    ((recv (cat (exp (gen) (rec ltxa)) y))
+      (send (cat (exp (gen) (rec ltxa)) y))))
+  (label 53)
+  (parent 39)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa y x ltxa-0 ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxa-0))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) (mul y (rec ltxa-0))) ltxa))
+  (deflistener (cat (exp (gen) (rec ltxa-0)) y))
+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((2 0) (0 0)) ((2 0) (3 0))
+    ((3 2) (5 0)) ((4 1) (0 2)) ((5 1) (4 0)))
+  (non-orig ltxa-0 ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxa-0 ltxb)
+  (absent (y ltxa) (y x) (y ltxb) (x ltxa-0) (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (rec ltxa-0)) y))
+    (exp (gen) (mul y (rec ltxa-0))) (4 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))))
+      (send nb)) ((send (cat self (exp (gen) ltxa-0))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))))
+    ((recv (cat (exp (gen) (mul y (rec ltxa-0))) ltxa))
+      (send (cat (exp (gen) (mul y (rec ltxa-0))) ltxa)))
+    ((recv (cat (exp (gen) (rec ltxa-0)) y))
+      (send (cat (exp (gen) (rec ltxa-0)) y))))
+  (label 54)
+  (parent 42)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l)
+    (x ltxb) (y (mul ltxa y (rec l))))
+  (defstrand ltx-gen 1 (self self) (l l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x l))
+  (deflistener (cat (exp (gen) (mul y (rec l))) ltxa))
+  (deflistener (cat (exp (gen) (rec l)) y))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 2) (4 0)) ((3 1) (0 2))
+    ((4 1) (3 0)))
+  (non-orig l)
+  (uniq-orig na nb)
+  (uniq-gen y ltxb l)
+  (absent (y ltxa) (y ltxb) (y l) (ltxb l))
+  (operation nonce-test (added-listener (cat (exp (gen) (rec l)) y))
+    (exp (gen) (mul y (rec l))) (3 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))))
+      (send nb)) ((send (cat self (exp (gen) l))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) (mul y (rec l))) ltxa))
+      (send (cat (exp (gen) (mul y (rec l))) ltxa)))
+    ((recv (cat (exp (gen) (rec l)) y))
+      (send (cat (exp (gen) (rec l)) y))))
+  (label 55)
+  (parent 47)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y x ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y (mul ltxa y (rec ltxb))))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) (mul y (rec ltxb))) ltxa))
+  (deflistener (cat (exp (gen) (rec ltxb)) y))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (4 0))
+    ((3 1) (0 2)) ((4 1) (3 0)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb)
+  (absent (y ltxa) (y x) (y ltxb) (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) (rec ltxb)) y))
+    (exp (gen) (mul y (rec ltxb))) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxb)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))))
+      (send nb)) ((send (cat self (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))))
+    ((recv (cat (exp (gen) (mul y (rec ltxb))) ltxa))
+      (send (cat (exp (gen) (mul y (rec ltxb))) ltxa)))
+    ((recv (cat (exp (gen) (rec ltxb)) y))
+      (send (cat (exp (gen) (rec ltxb)) y))))
+  (label 56)
+  (parent 50)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol dhcr-umx diffie-hellman
+  (defrole init
+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    (uniq-orig na)
+    (uniq-gen x)
+    (absent (x ltxa) (x ltxb))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) y) (gen))))
+  (defrole resp
+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb))
+    (uniq-orig nb)
+    (uniq-gen y)
+    (absent (y ltxa) (y ltxb) (y x))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) x) (gen))))
+  (defrole ltx-gen
+    (vars (self name) (l rndx))
+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    (uniq-gen l)
+    (fn-of ("principal-of" (l self)) ("ltx-of" (self l))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (non-orig ltxa ltxb)
+  (uniq-orig nb)
+  (uniq-gen ltxa ltxb y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb)))))
+  (label 57)
+  (unrealized (0 0) (0 3))
+  (preskeleton)
+  (origs (nb (0 2)))
+  (comment "Not a skeleton"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (precedes ((1 0) (0 0)) ((2 0) (0 0)))
+  (non-orig ltxa ltxb)
+  (uniq-orig nb)
+  (uniq-gen ltxa ltxb y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb)))))
+  (label 58)
+  (parent 57)
+  (unrealized (0 3))
+  (origs (nb (0 2)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y rndx) (x expt) (ltxb rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (precedes ((1 0) (0 0)))
+  (non-orig ltxb)
+  (uniq-orig nb)
+  (uniq-gen y ltxb)
+  (absent (y x) (y ltxb))
+  (operation collapsed 2 1)
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxb)))))
+  (label 59)
+  (parent 58)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name)
+    (ltxa y ltxa-0 ltxb ltxb-0 x rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul (rec ltxb) ltxb-0 x)))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 1))
+    ((3 3) (0 3)))
+  (non-orig ltxa ltxb)
+  (uniq-orig na nb)
+  (uniq-gen ltxa y ltxb x)
+  (absent (y ltxa) (y (mul (rec ltxb) ltxb-0 x)) (y ltxb) (x ltxa-0)
+    (x ltxb-0))
+  (operation nonce-test (added-strand init 4) nb (0 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb-0 x)))))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul (rec ltxb) ltxb-0 x))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (send nb)))
+  (label 60)
+  (parent 58)
+  (unrealized (0 1) (3 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
+  (non-orig ltxa ltxb)
+  (uniq-orig nb)
+  (uniq-gen ltxa ltxb y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (operation nonce-test
+    (added-listener
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))) nb (0 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+  (label 61)
+  (parent 58)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y ltxa ltxb x ltxb-0 rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxb-0))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y (mul y (rec ltxa) ltxb-0)))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((2 1) (0 1)) ((2 3) (0 3)))
+  (non-orig ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb-0)
+  (absent (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa) (x ltxb))
+  (operation nonce-test (added-strand init 4) nb (0 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul y ltxb-0)) (exp (gen) (mul ltxb x)))))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0))
+              (exp (gen) (mul ltxb x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxb-0))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec ltxa) ltxb-0))
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0))
+              (exp (gen) (mul ltxb x)))))) (send nb)))
+  (label 62)
+  (parent 59)
+  (unrealized (0 1) (2 2))
+  (origs (na (2 1)) (nb (0 2)))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y rndx) (x expt) (ltxb rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))
+  (non-orig ltxb)
+  (uniq-orig nb)
+  (uniq-gen y ltxb)
+  (absent (y x) (y ltxb))
+  (operation nonce-test
+    (added-listener
+      (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb)))) nb (0 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb)))))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxb))))
+    ((recv (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+      (send (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))))
+  (label 63)
+  (parent 59)
+  (unrealized (2 0))
+  (origs (nb (0 2)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y ltxa ltxb x ltxb-0 rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb-0))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
+    ((3 1) (0 1)) ((3 3) (0 3)))
+  (non-orig ltxa ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y ltxa x ltxb-0)
+  (absent (y ltxa) (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa)
+    (x ltxb))
+  (operation nonce-test (displaced 4 0 resp 3) (exp (gen) y) (3 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb-0))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))))
+      (send nb)))
+  (label 64)
+  (parent 60)
+  (unrealized (0 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name)
+    (ltxa y ltxa-0 ltxb ltxb-0 x rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul (rec ltxb) ltxb-0 x)))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) ltxa-0))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 2)))
+  (non-orig ltxa ltxb)
+  (uniq-orig na nb)
+  (uniq-gen ltxa y ltxb x)
+  (absent (y ltxa) (y (mul (rec ltxb) ltxb-0 x)) (y ltxb) (x ltxa-0)
+    (x ltxb-0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxa y)) ltxa-0))
+    (exp (gen) (mul ltxa y (rec ltxa-0))) (3 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul (rec ltxb) ltxb-0 x))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (send nb))
+    ((recv (cat (exp (gen) (mul ltxa y)) ltxa-0))
+      (send (cat (exp (gen) (mul ltxa y)) ltxa-0))))
+  (label 65)
+  (parent 60)
+  (unrealized (0 1) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name)
+    (ltxa y ltxa-0 ltxb ltxb-0 x rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul (rec ltxb) ltxb-0 x)))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (deflistener (cat (exp (gen) (mul ltxa (rec ltxa-0))) y))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 2)))
+  (non-orig ltxa ltxb)
+  (uniq-orig na nb)
+  (uniq-gen ltxa y ltxb x)
+  (absent (y ltxa) (y (mul (rec ltxb) ltxb-0 x)) (y ltxb) (x ltxa-0)
+    (x ltxb-0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxa (rec ltxa-0))) y))
+    (exp (gen) (mul ltxa y (rec ltxa-0))) (3 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul (rec ltxb) ltxb-0 x))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (send nb))
+    ((recv (cat (exp (gen) (mul ltxa (rec ltxa-0))) y))
+      (send (cat (exp (gen) (mul ltxa (rec ltxa-0))) y))))
+  (label 66)
+  (parent 60)
+  (unrealized (0 1) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
+    ((4 1) (3 0)))
+  (non-orig ltxa ltxb)
+  (uniq-orig nb)
+  (uniq-gen ltxa ltxb y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+  (label 67)
+  (parent 61)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y ltxb x ltxb-0 rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxb-0))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb) (x x) (y y))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((2 3) (0 3)))
+  (non-orig ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb-0)
+  (absent (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxb) (x ltxb-0))
+  (operation nonce-test (displaced 3 0 resp 3) (exp (gen) y) (2 2))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0))
+              (exp (gen) (mul ltxb x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxb-0))))
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0))
+              (exp (gen) (mul ltxb x)))))) (send nb)))
+  (label 68)
+  (parent 62)
+  (unrealized (0 1))
+  (origs (nb (0 2)) (na (2 1)))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y ltxa ltxb x ltxb-0 rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxb-0))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y (mul y (rec ltxa) ltxb-0)))
+  (deflistener (cat (exp (gen) (mul y ltxb-0)) ltxa))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 2)))
+  (non-orig ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb-0)
+  (absent (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa) (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y ltxb-0)) ltxa))
+    (exp (gen) (mul y (rec ltxa) ltxb-0)) (2 2))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0))
+              (exp (gen) (mul ltxb x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxb-0))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec ltxa) ltxb-0))
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0))
+              (exp (gen) (mul ltxb x)))))) (send nb))
+    ((recv (cat (exp (gen) (mul y ltxb-0)) ltxa))
+      (send (cat (exp (gen) (mul y ltxb-0)) ltxa))))
+  (label 69)
+  (parent 62)
+  (unrealized (0 1) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y ltxa ltxb x ltxb-0 rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxb-0))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y (mul y (rec ltxa) ltxb-0)))
+  (deflistener (cat (exp (gen) (mul (rec ltxa) ltxb-0)) y))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 2)))
+  (non-orig ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb-0)
+  (absent (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa) (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec ltxa) ltxb-0)) y))
+    (exp (gen) (mul y (rec ltxa) ltxb-0)) (2 2))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0))
+              (exp (gen) (mul ltxb x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxb-0))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec ltxa) ltxb-0))
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0))
+              (exp (gen) (mul ltxb x)))))) (send nb))
+    ((recv (cat (exp (gen) (mul (rec ltxa) ltxb-0)) y))
+      (send (cat (exp (gen) (mul (rec ltxa) ltxb-0)) y))))
+  (label 70)
+  (parent 62)
+  (unrealized (0 1) (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y rndx) (x expt) (ltxb rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+  (deflistener (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))
+  (non-orig ltxb)
+  (uniq-orig nb)
+  (uniq-gen y ltxb)
+  (absent (y x) (y ltxb))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+    (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))) (2 0))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxb))))
+    ((recv (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+      (send (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb)))))
+    ((recv (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+      (send (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))))
+  (label 71)
+  (parent 63)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y x ltxa ltxb rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
+    ((2 0) (3 0)) ((3 1) (0 1)) ((3 3) (0 3)))
+  (non-orig ltxa ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxa ltxb)
+  (absent (y x) (y ltxa) (y ltxb) (x ltxa) (x ltxb))
+  (operation nonce-test (displaced 4 3 init 2) (exp (gen) x) (0 1))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul x ltxb))))))
+      (send nb)))
+  (label 72)
+  (parent 64)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 2)
+      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na) (nb nb)
+        (self self) (self-0 self-0))))
+  (origs (na (3 1)) (nb (0 2))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y ltxa ltxb x ltxb-0 rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb-0))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
+    ((2 0) (4 0)) ((3 1) (4 0)) ((3 3) (0 3)) ((4 1) (0 1)))
+  (non-orig ltxa ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y ltxa x ltxb-0)
+  (absent (y ltxa) (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa)
+    (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+    (exp (gen) (mul ltxb x (rec ltxb-0))) (0 1))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb-0))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    ((recv (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+      (send (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))))
+  (label 73)
+  (parent 64)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y ltxa ltxb x ltxb-0 rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb-0))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener (cat (exp (gen) (mul x (rec ltxb-0))) ltxb))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
+    ((2 0) (4 0)) ((3 1) (4 0)) ((3 3) (0 3)) ((4 1) (0 1)))
+  (non-orig ltxa ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y ltxa x ltxb-0)
+  (absent (y ltxa) (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa)
+    (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x (rec ltxb-0))) ltxb))
+    (exp (gen) (mul ltxb x (rec ltxb-0))) (0 1))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb-0))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    ((recv (cat (exp (gen) (mul x (rec ltxb-0))) ltxb))
+      (send (cat (exp (gen) (mul x (rec ltxb-0))) ltxb))))
+  (label 74)
+  (parent 64)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name)
+    (ltxa y ltxa-0 ltxb ltxb-0 x rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul (rec ltxb) ltxb-0 x)))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) ltxa-0))
+  (deflistener (cat (exp (gen) ltxa) y))
+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 1))
+    ((3 3) (0 3)) ((4 1) (3 2)) ((5 1) (4 0)))
+  (non-orig ltxa ltxb)
+  (uniq-orig na nb)
+  (uniq-gen ltxa y ltxb x)
+  (absent (y ltxa) (y (mul (rec ltxb) ltxb-0 x)) (y ltxb) (x ltxa-0)
+    (x ltxb-0))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))
+    (exp (gen) (mul ltxa y)) (4 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul (rec ltxb) ltxb-0 x))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (send nb))
+    ((recv (cat (exp (gen) (mul ltxa y)) ltxa-0))
+      (send (cat (exp (gen) (mul ltxa y)) ltxa-0)))
+    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))
+  (label 75)
+  (parent 65)
+  (unrealized (0 1) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) ltxa) y))
+  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
+    ((4 1) (3 0)) ((5 1) (4 0)))
+  (non-orig ltxa ltxb)
+  (uniq-orig nb)
+  (uniq-gen ltxa ltxb y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))
+    (exp (gen) (mul ltxa y)) (4 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb))))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))
+  (label 76)
+  (parent 67)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y x ltxb rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((2 3) (0 3)))
+  (non-orig ltxb)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb)
+  (absent (y x) (y ltxb) (x ltxb))
+  (operation nonce-test (displaced 3 2 init 2) (exp (gen) x) (0 1))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxb))))
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))))
+      (send nb)))
+  (label 77)
+  (parent 68)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 1)
+      ((ltxa ltxb) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na) (nb nb)
+        (self self) (self-0 self))))
+  (origs (na (2 1)) (nb (0 2))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y ltxb x ltxb-0 rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxb-0))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb) (x x) (y y))
+  (deflistener (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (3 0))
+    ((2 3) (0 3)) ((3 1) (0 1)))
+  (non-orig ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb-0)
+  (absent (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxb) (x ltxb-0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+    (exp (gen) (mul ltxb x (rec ltxb-0))) (0 1))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0))
+              (exp (gen) (mul ltxb x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxb-0))))
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0))
+              (exp (gen) (mul ltxb x)))))) (send nb))
+    ((recv (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))
+      (send (cat (exp (gen) (mul ltxb (rec ltxb-0))) x))))
+  (label 78)
+  (parent 68)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y ltxb x ltxb-0 rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxb-0))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb) (x x) (y y))
+  (deflistener (cat (exp (gen) (mul x (rec ltxb-0))) ltxb))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (3 0))
+    ((2 3) (0 3)) ((3 1) (0 1)))
+  (non-orig ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb-0)
+  (absent (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxb) (x ltxb-0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x (rec ltxb-0))) ltxb))
+    (exp (gen) (mul ltxb x (rec ltxb-0))) (0 1))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0))
+              (exp (gen) (mul ltxb x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxb-0))))
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0))
+              (exp (gen) (mul ltxb x)))))) (send nb))
+    ((recv (cat (exp (gen) (mul x (rec ltxb-0))) ltxb))
+      (send (cat (exp (gen) (mul x (rec ltxb-0))) ltxb))))
+  (label 79)
+  (parent 68)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y ltxa ltxb x ltxb-0 rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxb-0))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y (mul y (rec ltxa) ltxb-0)))
+  (deflistener (cat (exp (gen) (mul y ltxb-0)) ltxa))
+  (deflistener (cat (exp (gen) ltxb-0) y))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 2)) ((4 1) (3 0)))
+  (non-orig ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb-0)
+  (absent (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa) (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb-0) y))
+    (exp (gen) (mul y ltxb-0)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0))
+              (exp (gen) (mul ltxb x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxb-0))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul y (rec ltxa) ltxb-0))
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0))
+              (exp (gen) (mul ltxb x)))))) (send nb))
+    ((recv (cat (exp (gen) (mul y ltxb-0)) ltxa))
+      (send (cat (exp (gen) (mul y ltxb-0)) ltxa)))
+    ((recv (cat (exp (gen) ltxb-0) y))
+      (send (cat (exp (gen) ltxb-0) y))))
+  (label 80)
+  (parent 69)
+  (unrealized (0 1) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y rndx) (x expt) (ltxb rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxb))
+  (deflistener (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+  (deflistener (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+  (deflistener (cat (exp (gen) ltxb) y))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
+    ((4 1) (3 0)))
+  (non-orig ltxb)
+  (uniq-orig nb)
+  (uniq-gen y ltxb)
+  (absent (y x) (y ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) y))
+    (exp (gen) (mul y ltxb)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxb))))
+    ((recv (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+      (send (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb)))))
+    ((recv (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+      (send (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb)))))
+    ((recv (cat (exp (gen) ltxb) y)) (send (cat (exp (gen) ltxb) y))))
+  (label 81)
+  (parent 71)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y ltxa ltxb x ltxb-0 rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand ltx-gen 1 (self self-0) (l ltxb-0))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener (cat (exp (gen) (mul x (rec ltxb-0))) ltxb))
+  (deflistener (cat (exp (gen) (rec ltxb-0)) x))
+  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
+    ((2 0) (5 0)) ((3 1) (5 0)) ((3 3) (0 3)) ((4 1) (0 1))
+    ((5 1) (4 0)))
+  (non-orig ltxa ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y ltxa x ltxb-0)
+  (absent (y ltxa) (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa)
+    (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (rec ltxb-0)) x))
+    (exp (gen) (mul x (rec ltxb-0))) (4 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa))))
+    ((send (cat self-0 (exp (gen) ltxb-0))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    ((recv (cat (exp (gen) (mul x (rec ltxb-0))) ltxb))
+      (send (cat (exp (gen) (mul x (rec ltxb-0))) ltxb)))
+    ((recv (cat (exp (gen) (rec ltxb-0)) x))
+      (send (cat (exp (gen) (rec ltxb-0)) x))))
+  (label 82)
+  (parent 74)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y ltxb x ltxb-0 rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxb-0))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb-0)
+    (ltxb ltxb) (x x) (y y))
+  (deflistener (cat (exp (gen) (mul x (rec ltxb-0))) ltxb))
+  (deflistener (cat (exp (gen) (rec ltxb-0)) x))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (4 0))
+    ((2 3) (0 3)) ((3 1) (0 1)) ((4 1) (3 0)))
+  (non-orig ltxb-0)
+  (uniq-orig na nb)
+  (uniq-gen y x ltxb-0)
+  (absent (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxb) (x ltxb-0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (rec ltxb-0)) x))
+    (exp (gen) (mul x (rec ltxb-0))) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0))
+              (exp (gen) (mul ltxb x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxb-0))))
+    ((recv (cat (exp (gen) ltxb-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb-0))
+              (exp (gen) (mul ltxb x)))))) (send nb))
+    ((recv (cat (exp (gen) (mul x (rec ltxb-0))) ltxb))
+      (send (cat (exp (gen) (mul x (rec ltxb-0))) ltxb)))
+    ((recv (cat (exp (gen) (rec ltxb-0)) x))
+      (send (cat (exp (gen) (rec ltxb-0)) x))))
+  (label 83)
+  (parent 79)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol dhcr-umx diffie-hellman
+  (defrole init
+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    (uniq-orig na)
+    (uniq-gen x)
+    (absent (x ltxa) (x ltxb))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) y) (gen))))
+  (defrole resp
+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb))
+    (uniq-orig nb)
+    (uniq-gen y)
+    (absent (y ltxa) (y ltxb) (y x))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) x) (gen))))
+  (defrole ltx-gen
+    (vars (self name) (l rndx))
+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    (uniq-gen l)
+    (fn-of ("principal-of" (l self)) ("ltx-of" (self l))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (non-orig ltxa)
+  (uniq-orig nb)
+  (uniq-gen ltxa y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa)))))
+  (label 84)
+  (unrealized (0 0) (0 3))
+  (preskeleton)
+  (origs (nb (0 2)))
+  (comment "Not a skeleton"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (precedes ((1 0) (0 0)))
+  (non-orig ltxa)
+  (uniq-orig nb)
+  (uniq-gen ltxa y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa)))))
+  (label 85)
+  (parent 84)
+  (unrealized (0 3))
+  (origs (nb (0 2)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y ltxa-0 ltxb ltxb-0 x rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul (rec ltxb) ltxb-0 x)))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((2 1) (0 1)) ((2 3) (0 3)))
+  (non-orig ltxa)
+  (uniq-orig na nb)
+  (uniq-gen ltxa y x)
+  (absent (y ltxa) (y (mul (rec ltxb) ltxb-0 x)) (y ltxb) (x ltxa-0)
+    (x ltxb-0))
+  (operation nonce-test (added-strand init 4) nb (0 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb-0 x)))))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul (rec ltxb) ltxb-0 x))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (send nb)))
+  (label 86)
+  (parent 85)
+  (unrealized (2 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))
+  (non-orig ltxa)
+  (uniq-orig nb)
+  (uniq-gen ltxa y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (operation nonce-test
+    (added-listener
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))) nb (0 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa))))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+  (label 87)
+  (parent 85)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y ltxa ltxb x ltxb-0 rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((2 3) (0 3)))
+  (non-orig ltxa)
+  (uniq-orig na nb)
+  (uniq-gen y ltxa x)
+  (absent (y ltxa) (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa)
+    (x ltxb))
+  (operation nonce-test (displaced 3 0 resp 3) (exp (gen) y) (2 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))))
+      (send nb)))
+  (label 88)
+  (parent 86)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ltxa ltxa) (ltxb ltxb-0) (a a) (b b) (y y)
+        (x (mul ltxb x (rec ltxb-0))) (na na) (nb nb) (self self))))
+  (origs (nb (0 2)) (na (2 1))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y ltxa-0 ltxb ltxb-0 x rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul (rec ltxb) ltxb-0 x)))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) ltxa-0))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 2)))
+  (non-orig ltxa)
+  (uniq-orig na nb)
+  (uniq-gen ltxa y x)
+  (absent (y ltxa) (y (mul (rec ltxb) ltxb-0 x)) (y ltxb) (x ltxa-0)
+    (x ltxb-0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxa y)) ltxa-0))
+    (exp (gen) (mul ltxa y (rec ltxa-0))) (2 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul (rec ltxb) ltxb-0 x))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (send nb))
+    ((recv (cat (exp (gen) (mul ltxa y)) ltxa-0))
+      (send (cat (exp (gen) (mul ltxa y)) ltxa-0))))
+  (label 89)
+  (parent 86)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y ltxa-0 ltxb ltxb-0 x rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul (rec ltxb) ltxb-0 x)))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (deflistener (cat (exp (gen) (mul ltxa (rec ltxa-0))) y))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 2)))
+  (non-orig ltxa)
+  (uniq-orig na nb)
+  (uniq-gen ltxa y x)
+  (absent (y ltxa) (y (mul (rec ltxb) ltxb-0 x)) (y ltxb) (x ltxa-0)
+    (x ltxb-0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxa (rec ltxa-0))) y))
+    (exp (gen) (mul ltxa y (rec ltxa-0))) (2 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul (rec ltxb) ltxb-0 x))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (send nb))
+    ((recv (cat (exp (gen) (mul ltxa (rec ltxa-0))) y))
+      (send (cat (exp (gen) (mul ltxa (rec ltxa-0))) y))))
+  (label 90)
+  (parent 86)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))
+  (non-orig ltxa)
+  (uniq-orig nb)
+  (uniq-gen ltxa y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (2 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa))))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+  (label 91)
+  (parent 87)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y ltxa-0 ltxb ltxb-0 x rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul (rec ltxb) ltxb-0 x)))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) ltxa-0))
+  (deflistener (cat (exp (gen) ltxa) y))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 2)) ((4 1) (3 0)))
+  (non-orig ltxa)
+  (uniq-orig na nb)
+  (uniq-gen ltxa y x)
+  (absent (y ltxa) (y (mul (rec ltxb) ltxb-0 x)) (y ltxb) (x ltxa-0)
+    (x ltxb-0))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))
+    (exp (gen) (mul ltxa y)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul (rec ltxb) ltxb-0 x))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (send nb))
+    ((recv (cat (exp (gen) (mul ltxa y)) ltxa-0))
+      (send (cat (exp (gen) (mul ltxa y)) ltxa-0)))
+    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))
+  (label 92)
+  (parent 89)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) ltxa) y))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
+    ((4 1) (3 0)))
+  (non-orig ltxa)
+  (uniq-orig nb)
+  (uniq-gen ltxa y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))
+    (exp (gen) (mul ltxa y)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa))))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))
+  (label 93)
+  (parent 91)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol dhcr-umx diffie-hellman
+  (defrole init
+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    (uniq-orig na)
+    (uniq-gen x)
+    (absent (x ltxa) (x ltxb))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) y) (gen))))
+  (defrole resp
+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb))
+    (uniq-orig nb)
+    (uniq-gen y)
+    (absent (y ltxa) (y ltxb) (y x))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) x) (gen))))
+  (defrole ltx-gen
+    (vars (self name) (l rndx))
+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    (uniq-gen l)
+    (fn-of ("principal-of" (l self)) ("ltx-of" (self l))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (non-orig ltxa)
+  (uniq-orig nb)
+  (uniq-gen ltxa y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa)))))
+  (label 94)
+  (unrealized (0 0) (0 3))
+  (preskeleton)
+  (origs (nb (0 2)))
+  (comment "Not a skeleton"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (precedes ((1 0) (0 0)))
+  (non-orig ltxa)
+  (uniq-orig nb)
+  (uniq-gen ltxa y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa)))))
+  (label 95)
+  (parent 94)
+  (unrealized (0 3))
+  (origs (nb (0 2)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y ltxa-0 ltxb ltxb-0 x rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul (rec ltxb) ltxb-0 x)))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((2 1) (0 1)) ((2 3) (0 3)))
+  (non-orig ltxa)
+  (uniq-orig na nb)
+  (uniq-gen ltxa y x)
+  (absent (y ltxa) (y (mul (rec ltxb) ltxb-0 x)) (y ltxb) (x ltxa-0)
+    (x ltxb-0))
+  (operation nonce-test (added-strand init 4) nb (0 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb-0 x)))))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul (rec ltxb) ltxb-0 x))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (send nb)))
+  (label 96)
+  (parent 95)
+  (unrealized (2 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))
+  (non-orig ltxa)
+  (uniq-orig nb)
+  (uniq-gen ltxa y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (operation nonce-test
+    (added-listener
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))) nb (0 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa))))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+  (label 97)
+  (parent 95)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y ltxa ltxb x ltxb-0 rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa)
+    (ltxb ltxb-0) (y y) (x (mul ltxb x (rec ltxb-0))))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
+    ((2 3) (0 3)))
+  (non-orig ltxa)
+  (uniq-orig na nb)
+  (uniq-gen y ltxa x)
+  (absent (y ltxa) (y (mul ltxb x (rec ltxb-0))) (y ltxb-0) (x ltxa)
+    (x ltxb))
+  (operation nonce-test (displaced 3 0 resp 3) (exp (gen) y) (2 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb-0)))
+      (recv (cat na a b (exp (gen) (mul ltxb x (rec ltxb-0)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa))))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))))
+      (send nb)))
+  (label 98)
+  (parent 96)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ltxa ltxa) (ltxb ltxb-0) (a a) (b b) (y y)
+        (x (mul ltxb x (rec ltxb-0))) (na na) (nb nb) (self self))))
+  (origs (nb (0 2)) (na (2 1))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y ltxa-0 ltxb ltxb-0 x rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul (rec ltxb) ltxb-0 x)))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) ltxa-0))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 2)))
+  (non-orig ltxa)
+  (uniq-orig na nb)
+  (uniq-gen ltxa y x)
+  (absent (y ltxa) (y (mul (rec ltxb) ltxb-0 x)) (y ltxb) (x ltxa-0)
+    (x ltxb-0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxa y)) ltxa-0))
+    (exp (gen) (mul ltxa y (rec ltxa-0))) (2 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul (rec ltxb) ltxb-0 x))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (send nb))
+    ((recv (cat (exp (gen) (mul ltxa y)) ltxa-0))
+      (send (cat (exp (gen) (mul ltxa y)) ltxa-0))))
+  (label 99)
+  (parent 96)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y ltxa-0 ltxb ltxb-0 x rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul (rec ltxb) ltxb-0 x)))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (deflistener (cat (exp (gen) (mul ltxa (rec ltxa-0))) y))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 2)))
+  (non-orig ltxa)
+  (uniq-orig na nb)
+  (uniq-gen ltxa y x)
+  (absent (y ltxa) (y (mul (rec ltxb) ltxb-0 x)) (y ltxb) (x ltxa-0)
+    (x ltxb-0))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxa (rec ltxa-0))) y))
+    (exp (gen) (mul ltxa y (rec ltxa-0))) (2 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul (rec ltxb) ltxb-0 x))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (send nb))
+    ((recv (cat (exp (gen) (mul ltxa (rec ltxa-0))) y))
+      (send (cat (exp (gen) (mul ltxa (rec ltxa-0))) y))))
+  (label 100)
+  (parent 96)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))
+  (non-orig ltxa)
+  (uniq-orig nb)
+  (uniq-gen ltxa y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (2 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa))))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+  (label 101)
+  (parent 97)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y ltxa-0 ltxb ltxb-0 x rndx))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul (rec ltxb) ltxb-0 x)))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb-0) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) ltxa-0))
+  (deflistener (cat (exp (gen) ltxa) y))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 1)) ((2 3) (0 3))
+    ((3 1) (2 2)) ((4 1) (3 0)))
+  (non-orig ltxa)
+  (uniq-orig na nb)
+  (uniq-gen ltxa y x)
+  (absent (y ltxa) (y (mul (rec ltxb) ltxb-0 x)) (y ltxb) (x ltxa-0)
+    (x ltxb-0))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))
+    (exp (gen) (mul ltxa y)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul (rec ltxb) ltxb-0 x))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (recv nb))
+    ((send (cat self (exp (gen) ltxa))))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb-0)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb-0 x)))))) (send nb))
+    ((recv (cat (exp (gen) (mul ltxa y)) ltxa-0))
+      (send (cat (exp (gen) (mul ltxa y)) ltxa-0)))
+    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))
+  (label 102)
+  (parent 99)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
+  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (defstrand ltx-gen 1 (self self) (l ltxa))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) ltxa) y))
+  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
+    ((4 1) (3 0)))
+  (non-orig ltxa)
+  (uniq-orig nb)
+  (uniq-gen ltxa y)
+  (absent (y ltxa) (y ltxb) (y x))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))
+    (exp (gen) (mul ltxa y)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb)) ((send (cat self (exp (gen) ltxa))))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))
+  (label 103)
+  (parent 101)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol dhcr-umx diffie-hellman
+  (defrole init
+    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    (uniq-orig na)
+    (uniq-gen x)
+    (absent (x ltxa) (x ltxb))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) y) (gen))))
+  (defrole resp
+    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
+    (trace (recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (recv nb))
+    (uniq-orig nb)
+    (uniq-gen y)
+    (absent (y ltxa) (y ltxb) (y x))
+    (fn-of ("principal-of" (ltxa a) (ltxb b))
+      ("ltx-of" (a ltxa) (b ltxb)))
+    (neq ((exp (gen) x) (gen))))
+  (defrole ltx-gen
+    (vars (self name) (l rndx))
+    (trace (send (cat self (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    (uniq-gen l)
+    (fn-of ("principal-of" (l self)) ("ltx-of" (self l))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
+  (uniq-orig na)
+  (uniq-gen ltxa ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb)))
+  (label 104)
+  (unrealized (0 0) (0 2) (1 0))
+  (preskeleton)
+  (origs (na (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)))
+  (uniq-orig na)
+  (uniq-gen ltxa ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb)))
+  (label 105)
+  (parent 104)
+  (unrealized (0 2) (1 0))
+  (origs (na (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+  (defstrand ltx-gen 3 (self self) (l ltxb))
+  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((2 0) (0 0)))
+  (uniq-orig na)
+  (uniq-gen x ltxb)
+  (absent (x ltxb))
+  (operation collapsed 3 2)
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+      (send (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb)))))
+    ((send (cat self (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb)))
+  (label 106)
+  (parent 105)
+  (unrealized (0 2) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((4 1) (1 0)))
+  (uniq-orig na)
+  (uniq-gen ltxa ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))) (1 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+  (label 107)
+  (parent 105)
+  (unrealized (0 2) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+  (defstrand ltx-gen 3 (self self) (l ltxb))
+  (deflistener (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+  (precedes ((0 1) (3 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((3 1) (1 0)))
+  (uniq-orig na)
+  (uniq-gen x ltxb)
+  (absent (x ltxb))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+    (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))) (1 0))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+      (send (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb)))))
+    ((send (cat self (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+      (send (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))))
+  (label 108)
+  (parent 106)
+  (unrealized (0 2) (3 0))
+  (origs (na (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) ltxb) x))
+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
+  (uniq-orig na)
+  (uniq-gen ltxa ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
+    (exp (gen) (mul ltxb x)) (4 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
+  (label 109)
+  (parent 107)
+  (unrealized (0 2) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxb x rndx) (y expt))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
+  (uniq-orig na)
+  (uniq-gen ltxa ltxb x)
+  (absent (x ltxa) (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) x) ltxb))
+    (exp (gen) (mul ltxb x)) (4 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb))))
+  (label 110)
+  (parent 107)
+  (unrealized (0 2) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+  (defstrand ltx-gen 3 (self self) (l ltxb))
+  (deflistener (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((3 1) (1 0))
+    ((4 1) (3 0)))
+  (uniq-orig na)
+  (uniq-gen x ltxb)
+  (absent (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) x) ltxb))
+    (exp (gen) (mul x ltxb)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+      (send (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb)))))
+    ((send (cat self (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+      (send (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb)))))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb))))
+  (label 111)
+  (parent 108)
+  (unrealized (0 2) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxb) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+  (defstrand ltx-gen 3 (self self) (l ltxb))
+  (deflistener (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+  (deflistener (cat (exp (gen) ltxb) x))
+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((3 1) (1 0))
+    ((4 1) (3 0)))
+  (uniq-orig na)
+  (uniq-gen x ltxb)
+  (absent (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxb) x))
+    (exp (gen) (mul x ltxb)) (3 0))
+  (traces
+    ((recv (cat (exp (gen) ltxb) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+      (send (hash (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb)))))
+    ((send (cat self (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb))))
+      (send (cat (exp (gen) (mul y ltxb)) (exp (gen) (mul x ltxb)))))
+    ((recv (cat (exp (gen) ltxb) x)) (send (cat (exp (gen) ltxb) x))))
+  (label 112)
+  (parent 108)
+  (unrealized (0 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa x rndx) (y expt)
+    (l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((3 0) (0 0))
+    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)))
+  (uniq-orig na)
+  (uniq-gen ltxa x l)
+  (absent (x ltxa) (x l))
+  (operation nonce-test (displaced 6 3 ltx-gen 3) l (5 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l))))
+  (label 113)
+  (parent 110)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y y))
+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (precedes ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0)) ((3 1) (1 0))
+    ((4 1) (3 0)))
+  (uniq-orig na)
+  (uniq-gen x l)
+  (absent (x l))
+  (operation nonce-test (displaced 5 2 ltx-gen 3) l (4 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul y l)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l))))
+  (label 114)
+  (parent 111)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name)
+    (ltxa ltxa-0 y x l ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x x) (y (mul (rec ltxa) ltxa-0 y)))
+  (deflistener (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (y y) (x (mul x l (rec ltxb))))
+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 2) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen ltxa y x l)
+  (absent (y ltxa-0) (y (mul x l (rec ltxb))) (y ltxb) (x ltxa) (x l))
+  (operation encryption-test (added-strand resp 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x l (rec ltxb)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))))))
+  (label 115)
+  (parent 113)
+  (unrealized (0 2) (6 1))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa x rndx) (y expt)
+    (l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 1) (0 2)))
+  (uniq-orig na)
+  (uniq-gen ltxa x l)
+  (absent (x ltxa) (x l))
+  (operation encryption-test
+    (added-listener
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
+  (label 116)
+  (parent 113)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y x ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y (mul ltxa y (rec l))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul x (rec ltxb) l)))
+  (precedes ((0 1) (5 1)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y x l)
+  (absent (y ltxa) (y (mul x (rec ltxb) l)) (y ltxb) (x l))
+  (operation encryption-test (added-strand resp 3)
+    (enc na nb a b
+      (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x (rec ltxb) l))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))))
+  (label 117)
+  (parent 114)
+  (unrealized (0 2) (5 1))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y y))
+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 1) (0 2)))
+  (uniq-orig na)
+  (uniq-gen x l)
+  (absent (x l))
+  (operation encryption-test
+    (added-listener (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+    (enc na nb a b (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+    (0 2))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul y l)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))))
+  (label 118)
+  (parent 114)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxa-0 y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x ltxb) (y (mul (rec ltxa) ltxa-0 y)))
+  (deflistener
+    (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener
+    (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+  (deflistener (cat (exp (gen) ltxb) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (y y) (x l))
+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 2) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen ltxa y ltxb l)
+  (absent (y ltxa-0) (y ltxb) (y l) (ltxb ltxa) (ltxb l))
+  (operation nonce-test (displaced 7 3 ltx-gen 1) (exp (gen) l) (6 1))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l)))))) (send nb))
+    ((recv (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+      (send (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l)))))
+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l))))))))
+  (label 119)
+  (parent 115)
+  (unrealized (0 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa y x ltxa-0 ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+  (defstrand ltx-gen 3 (self self) (l ltxa-0))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0)) ((4 1) (1 0))
+    ((5 1) (4 0)) ((6 2) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y x ltxa-0 ltxb)
+  (absent (y ltxa) (y x) (y ltxb) (x ltxa-0) (x ltxb))
+  (operation nonce-test (displaced 7 0 init 2) (exp (gen) x) (6 1))
+  (traces
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))
+    ((send (cat self (exp (gen) ltxa-0))) (recv "end-of-protocol")
+      (send ltxa-0))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul x ltxb))))))))
+  (label 120)
+  (parent 115)
+  (unrealized (0 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name)
+    (ltxa ltxa-0 y x l ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x x) (y (mul (rec ltxa) ltxa-0 y)))
+  (deflistener (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (y y) (x (mul x l (rec ltxb))))
+  (deflistener (cat (exp (gen) (mul x l)) ltxb))
+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 2) (0 2)) ((7 1) (6 1)))
+  (uniq-orig na nb)
+  (uniq-gen ltxa y x l)
+  (absent (y ltxa-0) (y (mul x l (rec ltxb))) (y ltxb) (x ltxa) (x l))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x l)) ltxb))
+    (exp (gen) (mul x l (rec ltxb))) (6 1))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x l (rec ltxb)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l)))))))
+    ((recv (cat (exp (gen) (mul x l)) ltxb))
+      (send (cat (exp (gen) (mul x l)) ltxb))))
+  (label 121)
+  (parent 115)
+  (unrealized (0 2) (7 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name)
+    (ltxa ltxa-0 y x l ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x x) (y (mul (rec ltxa) ltxa-0 y)))
+  (deflistener (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (y y) (x (mul x l (rec ltxb))))
+  (deflistener (cat (exp (gen) (mul x (rec ltxb))) l))
+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 2) (0 2)) ((7 1) (6 1)))
+  (uniq-orig na nb)
+  (uniq-gen ltxa y x l)
+  (absent (y ltxa-0) (y (mul x l (rec ltxb))) (y ltxb) (x ltxa) (x l))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x (rec ltxb))) l))
+    (exp (gen) (mul x l (rec ltxb))) (6 1))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x l (rec ltxb)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l)))))))
+    ((recv (cat (exp (gen) (mul x (rec ltxb))) l))
+      (send (cat (exp (gen) (mul x (rec ltxb))) l))))
+  (label 122)
+  (parent 115)
+  (unrealized (0 2) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name)
+    (ltxa ltxa-0 y x l ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x x) (y (mul (rec ltxa) ltxa-0 y)))
+  (deflistener (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (y y) (x (mul x l (rec ltxb))))
+  (deflistener (cat (exp (gen) (mul l (rec ltxb))) x))
+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 2) (0 2)) ((7 1) (6 1)))
+  (uniq-orig na nb)
+  (uniq-gen ltxa y x l)
+  (absent (y ltxa-0) (y (mul x l (rec ltxb))) (y ltxb) (x ltxa) (x l))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul l (rec ltxb))) x))
+    (exp (gen) (mul x l (rec ltxb))) (6 1))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x l (rec ltxb)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l)))))))
+    ((recv (cat (exp (gen) (mul l (rec ltxb))) x))
+      (send (cat (exp (gen) (mul l (rec ltxb))) x))))
+  (label 123)
+  (parent 115)
+  (unrealized (0 2) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa x rndx) (y expt)
+    (l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 1) (0 2)) ((7 1) (6 0)))
+  (uniq-orig na)
+  (uniq-gen ltxa x l)
+  (absent (x ltxa) (x l))
+  (operation encryption-test
+    (added-listener
+      (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+    (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))) (6 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
+  (label 124)
+  (parent 116)
+  (unrealized (7 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l)
+    (x ltxb) (y (mul ltxa y (rec l))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+  (deflistener (cat (exp (gen) ltxb) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x l))
+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxb l)
+  (absent (y ltxa) (y ltxb) (y l) (ltxb l))
+  (operation nonce-test (displaced 6 2 ltx-gen 1) (exp (gen) l) (5 1))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l)))))
+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y))
+              (exp (gen) (mul ltxb l))))))))
+  (label 125)
+  (parent 117)
+  (unrealized (0 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y x l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y (mul ltxa y (rec l))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (y y) (x x))
+  (precedes ((0 1) (5 1)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 0) (5 0))
+    ((2 2) (4 0)) ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y x l)
+  (absent (y ltxa) (y x) (y l) (x l))
+  (operation nonce-test (displaced 6 0 init 2) (exp (gen) x) (5 1))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))))
+  (label 126)
+  (parent 117)
+  (unrealized (0 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y x ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y (mul ltxa y (rec l))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul x (rec ltxb) l)))
+  (deflistener (cat (exp (gen) (mul x (rec ltxb))) l))
+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (0 2)) ((6 1) (5 1)))
+  (uniq-orig na nb)
+  (uniq-gen y x l)
+  (absent (y ltxa) (y (mul x (rec ltxb) l)) (y ltxb) (x l))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x (rec ltxb))) l))
+    (exp (gen) (mul x (rec ltxb) l)) (5 1))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x (rec ltxb) l))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))))
+    ((recv (cat (exp (gen) (mul x (rec ltxb))) l))
+      (send (cat (exp (gen) (mul x (rec ltxb))) l))))
+  (label 127)
+  (parent 117)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y x ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y (mul ltxa y (rec l))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul x (rec ltxb) l)))
+  (deflistener (cat (exp (gen) (mul x l)) ltxb))
+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (0 2)) ((6 1) (5 1)))
+  (uniq-orig na nb)
+  (uniq-gen y x l)
+  (absent (y ltxa) (y (mul x (rec ltxb) l)) (y ltxb) (x l))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul x l)) ltxb))
+    (exp (gen) (mul x (rec ltxb) l)) (5 1))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x (rec ltxb) l))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))))
+    ((recv (cat (exp (gen) (mul x l)) ltxb))
+      (send (cat (exp (gen) (mul x l)) ltxb))))
+  (label 128)
+  (parent 117)
+  (unrealized (0 2) (6 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y x ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y (mul ltxa y (rec l))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul x (rec ltxb) l)))
+  (deflistener (cat (exp (gen) (mul (rec ltxb) l)) x))
+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (0 2)) ((6 1) (5 1)))
+  (uniq-orig na nb)
+  (uniq-gen y x l)
+  (absent (y ltxa) (y (mul x (rec ltxb) l)) (y ltxb) (x l))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec ltxb) l)) x))
+    (exp (gen) (mul x (rec ltxb) l)) (5 1))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x (rec ltxb) l))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))))
+    ((recv (cat (exp (gen) (mul (rec ltxb) l)) x))
+      (send (cat (exp (gen) (mul (rec ltxb) l)) x))))
+  (label 129)
+  (parent 117)
+  (unrealized (0 2) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y y))
+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 1) (0 2)) ((6 1) (5 0)))
+  (uniq-orig na)
+  (uniq-gen x l)
+  (absent (x l))
+  (operation encryption-test
+    (added-listener (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+    (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))) (5 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul y l)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))))))
+  (label 130)
+  (parent 118)
+  (unrealized (6 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxa-0 y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x ltxb) (y (mul (rec ltxa) ltxa-0 y)))
+  (deflistener
+    (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener
+    (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+  (deflistener (cat (exp (gen) ltxb) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (y y) (x l))
+  (deflistener (cat (exp (gen) (mul (rec ltxa) ltxa-0)) y))
+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 2) (7 0)) ((7 1) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen ltxa y ltxb l)
+  (absent (y ltxa-0) (y ltxb) (y l) (ltxb ltxa) (ltxb l))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec ltxa) ltxa-0)) y))
+    (exp (gen) (mul (rec ltxa) ltxa-0 y)) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l)))))) (send nb))
+    ((recv (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+      (send (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l)))))
+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) (mul (rec ltxa) ltxa-0)) y))
+      (send (cat (exp (gen) (mul (rec ltxa) ltxa-0)) y))))
+  (label 131)
+  (parent 119)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y ltxa ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x ltxb) (y y))
+  (deflistener (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l))))
+  (deflistener (cat (exp (gen) ltxb) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x l))
+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 2) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxa ltxb l)
+  (absent (y ltxa) (y ltxb) (y l) (ltxb ltxa) (ltxb l))
+  (operation nonce-test (displaced 7 6 resp 3) (exp (gen) y) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l))))
+      (send (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l)))))
+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa))
+              (exp (gen) (mul ltxb l))))))))
+  (label 132)
+  (parent 119)
+  (unrealized (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxa-0 y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x ltxb) (y (mul (rec ltxa) ltxa-0 y)))
+  (deflistener
+    (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener
+    (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+  (deflistener (cat (exp (gen) ltxb) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (y y) (x l))
+  (deflistener (cat (exp (gen) (mul (rec ltxa) y)) ltxa-0))
+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 2) (7 0)) ((7 1) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen ltxa y ltxb l)
+  (absent (y ltxa-0) (y ltxb) (y l) (ltxb ltxa) (ltxb l))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul (rec ltxa) y)) ltxa-0))
+    (exp (gen) (mul (rec ltxa) ltxa-0 y)) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l)))))) (send nb))
+    ((recv (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+      (send (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l)))))
+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) (mul (rec ltxa) y)) ltxa-0))
+      (send (cat (exp (gen) (mul (rec ltxa) y)) ltxa-0))))
+  (label 133)
+  (parent 119)
+  (unrealized (7 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxa-0 y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x ltxb) (y (mul (rec ltxa) ltxa-0 y)))
+  (deflistener
+    (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener
+    (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+  (deflistener (cat (exp (gen) ltxb) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (y y) (x l))
+  (deflistener (cat (exp (gen) (mul ltxa-0 y)) ltxa))
+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 2) (7 0)) ((7 1) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen ltxa y ltxb l)
+  (absent (y ltxa-0) (y ltxb) (y l) (ltxb ltxa) (ltxb l))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxa-0 y)) ltxa))
+    (exp (gen) (mul (rec ltxa) ltxa-0 y)) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l)))))) (send nb))
+    ((recv (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+      (send (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l)))))
+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) (mul ltxa-0 y)) ltxa))
+      (send (cat (exp (gen) (mul ltxa-0 y)) ltxa))))
+  (label 134)
+  (parent 119)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa y x ltxa-0 ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+  (defstrand ltx-gen 3 (self self) (l ltxa-0))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) (mul ltxa y)) ltxa-0))
+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0)) ((4 1) (1 0))
+    ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y x ltxa-0 ltxb)
+  (absent (y ltxa) (y x) (y ltxb) (x ltxa-0) (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxa y)) ltxa-0))
+    (exp (gen) (mul ltxa y (rec ltxa-0))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))
+    ((send (cat self (exp (gen) ltxa-0))) (recv "end-of-protocol")
+      (send ltxa-0))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))))
+    ((recv (cat (exp (gen) (mul ltxa y)) ltxa-0))
+      (send (cat (exp (gen) (mul ltxa y)) ltxa-0))))
+  (label 135)
+  (parent 120)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y ltxa ltxb x rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxa ltxb x)
+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
+  (operation nonce-test (displaced 7 6 resp 3) (exp (gen) y) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))
+      (send (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa))
+              (exp (gen) (mul ltxb x))))))))
+  (label 136)
+  (parent 120)
+  (unrealized (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa y x ltxa-0 ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+  (defstrand ltx-gen 3 (self self) (l ltxa-0))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) (mul ltxa (rec ltxa-0))) y))
+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0)) ((4 1) (1 0))
+    ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y x ltxa-0 ltxb)
+  (absent (y ltxa) (y x) (y ltxb) (x ltxa-0) (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxa (rec ltxa-0))) y))
+    (exp (gen) (mul ltxa y (rec ltxa-0))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))
+    ((send (cat self (exp (gen) ltxa-0))) (recv "end-of-protocol")
+      (send ltxa-0))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))))
+    ((recv (cat (exp (gen) (mul ltxa (rec ltxa-0))) y))
+      (send (cat (exp (gen) (mul ltxa (rec ltxa-0))) y))))
+  (label 137)
+  (parent 120)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa y x ltxa-0 ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+  (defstrand ltx-gen 3 (self self) (l ltxa-0))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) (mul y (rec ltxa-0))) ltxa))
+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0)) ((4 1) (1 0))
+    ((5 1) (4 0)) ((6 2) (7 0)) ((7 1) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y x ltxa-0 ltxb)
+  (absent (y ltxa) (y x) (y ltxb) (x ltxa-0) (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y (rec ltxa-0))) ltxa))
+    (exp (gen) (mul ltxa y (rec ltxa-0))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))
+    ((send (cat self (exp (gen) ltxa-0))) (recv "end-of-protocol")
+      (send ltxa-0))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))))
+    ((recv (cat (exp (gen) (mul y (rec ltxa-0))) ltxa))
+      (send (cat (exp (gen) (mul y (rec ltxa-0))) ltxa))))
+  (label 138)
+  (parent 120)
+  (unrealized (7 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name)
+    (ltxa ltxa-0 y x l ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x x) (y (mul (rec ltxa) ltxa-0 y)))
+  (deflistener (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (y y) (x (mul x l (rec ltxb))))
+  (deflistener (cat (exp (gen) (mul x l)) ltxb))
+  (deflistener (cat (exp (gen) x) l))
+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 2) (0 2)) ((7 1) (6 1)) ((8 1) (7 0)))
+  (uniq-orig na nb)
+  (uniq-gen ltxa y x l)
+  (absent (y ltxa-0) (y (mul x l (rec ltxb))) (y ltxb) (x ltxa) (x l))
+  (operation nonce-test (added-listener (cat (exp (gen) x) l))
+    (exp (gen) (mul x l)) (7 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x l (rec ltxb)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l)))))))
+    ((recv (cat (exp (gen) (mul x l)) ltxb))
+      (send (cat (exp (gen) (mul x l)) ltxb)))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l))))
+  (label 139)
+  (parent 121)
+  (unrealized (0 2) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name)
+    (ltxa ltxa-0 y x l ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x x) (y (mul (rec ltxa) ltxa-0 y)))
+  (deflistener (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (y y) (x (mul x l (rec ltxb))))
+  (deflistener (cat (exp (gen) (mul x l)) ltxb))
+  (deflistener (cat (exp (gen) l) x))
+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 2) (0 2)) ((7 1) (6 1)) ((8 1) (7 0)))
+  (uniq-orig na nb)
+  (uniq-gen ltxa y x l)
+  (absent (y ltxa-0) (y (mul x l (rec ltxb))) (y ltxb) (x ltxa) (x l))
+  (operation nonce-test (added-listener (cat (exp (gen) l) x))
+    (exp (gen) (mul x l)) (7 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x l (rec ltxb)))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul x l)))))))
+    ((recv (cat (exp (gen) (mul x l)) ltxb))
+      (send (cat (exp (gen) (mul x l)) ltxb)))
+    ((recv (cat (exp (gen) l) x)) (send (cat (exp (gen) l) x))))
+  (label 140)
+  (parent 121)
+  (unrealized (0 2) (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa x rndx) (y expt)
+    (l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 1) (0 2)) ((7 1) (6 0)) ((8 1) (7 0)))
+  (uniq-orig na)
+  (uniq-gen ltxa x l)
+  (absent (x ltxa) (x l))
+  (operation nonce-test (added-listener (cat (exp (gen) x) l))
+    (exp (gen) (mul x l)) (7 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l))))
+  (label 141)
+  (parent 124)
+  (unrealized (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa x rndx) (y expt)
+    (l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) l) x))
+  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 1) (0 2)) ((7 1) (6 0)) ((8 1) (7 0)))
+  (uniq-orig na)
+  (uniq-gen ltxa x l)
+  (absent (x ltxa) (x l))
+  (operation nonce-test (added-listener (cat (exp (gen) l) x))
+    (exp (gen) (mul x l)) (7 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) l) x)) (send (cat (exp (gen) l) x))))
+  (label 142)
+  (parent 124)
+  (unrealized (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l)
+    (x ltxb) (y (mul ltxa y (rec l))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+  (deflistener (cat (exp (gen) ltxb) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) l))
+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (6 0)) ((6 1) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxb l)
+  (absent (y ltxa) (y ltxb) (y l) (ltxb l))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxa y)) l))
+    (exp (gen) (mul ltxa y (rec l))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l)))))
+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) (mul ltxa y)) l))
+      (send (cat (exp (gen) (mul ltxa y)) l))))
+  (label 143)
+  (parent 125)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l)
+    (x ltxb) (y y))
+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul y l)) (exp (gen) (mul ltxb l))))
+  (deflistener (cat (exp (gen) ltxb) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (y y) (x l))
+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxb l)
+  (absent (y ltxb) (y l) (ltxb l))
+  (operation nonce-test (displaced 6 5 resp 3) (exp (gen) y) (0 2))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul y l)) (exp (gen) (mul ltxb l))))
+      (send (cat (exp (gen) (mul y l)) (exp (gen) (mul ltxb l)))))
+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb l))))))))
+  (label 144)
+  (parent 125)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l)
+    (x ltxb) (y (mul ltxa y (rec l))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+  (deflistener (cat (exp (gen) ltxb) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x l))
+  (deflistener (cat (exp (gen) (mul ltxa (rec l))) y))
+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (6 0)) ((6 1) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxb l)
+  (absent (y ltxa) (y ltxb) (y l) (ltxb l))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxa (rec l))) y))
+    (exp (gen) (mul ltxa y (rec l))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l)))))
+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) (mul ltxa (rec l))) y))
+      (send (cat (exp (gen) (mul ltxa (rec l))) y))))
+  (label 145)
+  (parent 125)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l)
+    (x ltxb) (y (mul ltxa y (rec l))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+  (deflistener (cat (exp (gen) ltxb) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x l))
+  (deflistener (cat (exp (gen) (mul y (rec l))) ltxa))
+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (6 0)) ((6 1) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxb l)
+  (absent (y ltxa) (y ltxb) (y l) (ltxb l))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y (rec l))) ltxa))
+    (exp (gen) (mul ltxa y (rec l))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l)))))
+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) (mul y (rec l))) ltxa))
+      (send (cat (exp (gen) (mul y (rec l))) ltxa))))
+  (label 146)
+  (parent 125)
+  (unrealized (6 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y x l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y (mul ltxa y (rec l))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) (mul ltxa y)) l))
+  (precedes ((0 1) (5 1)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 0) (5 0))
+    ((2 2) (4 0)) ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (6 0))
+    ((6 1) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y x l)
+  (absent (y ltxa) (y x) (y l) (x l))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxa y)) l))
+    (exp (gen) (mul ltxa y (rec l))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))))
+    ((recv (cat (exp (gen) (mul ltxa y)) l))
+      (send (cat (exp (gen) (mul ltxa y)) l))))
+  (label 147)
+  (parent 126)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y l x rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y y))
+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul l x))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul y l)) (exp (gen) (mul l x))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (y y)
+    (x x))
+  (precedes ((0 1) (5 1)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 0) (5 0))
+    ((2 2) (4 0)) ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y l x)
+  (absent (y l) (y x) (x l))
+  (operation nonce-test (displaced 6 5 resp 3) (exp (gen) y) (0 2))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul l x))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul l x))))
+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul l x)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul y l)) (exp (gen) (mul l x))))
+      (send (cat (exp (gen) (mul y l)) (exp (gen) (mul l x)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul l x))))))))
+  (label 148)
+  (parent 126)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y x l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y (mul ltxa y (rec l))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) (mul ltxa (rec l))) y))
+  (precedes ((0 1) (5 1)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 0) (5 0))
+    ((2 2) (4 0)) ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (6 0))
+    ((6 1) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y x l)
+  (absent (y ltxa) (y x) (y l) (x l))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ltxa (rec l))) y))
+    (exp (gen) (mul ltxa y (rec l))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))))
+    ((recv (cat (exp (gen) (mul ltxa (rec l))) y))
+      (send (cat (exp (gen) (mul ltxa (rec l))) y))))
+  (label 149)
+  (parent 126)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y x l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y (mul ltxa y (rec l))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) (mul y (rec l))) ltxa))
+  (precedes ((0 1) (5 1)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 0) (5 0))
+    ((2 2) (4 0)) ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (6 0))
+    ((6 1) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y x l)
+  (absent (y ltxa) (y x) (y l) (x l))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul y (rec l))) ltxa))
+    (exp (gen) (mul ltxa y (rec l))) (0 2))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))))
+    ((recv (cat (exp (gen) (mul y (rec l))) ltxa))
+      (send (cat (exp (gen) (mul y (rec l))) ltxa))))
+  (label 150)
+  (parent 126)
+  (unrealized (6 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y x ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y (mul ltxa y (rec l))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul x (rec ltxb) l)))
+  (deflistener (cat (exp (gen) (mul x l)) ltxb))
+  (deflistener (cat (exp (gen) x) l))
+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (0 2)) ((6 1) (5 1))
+    ((7 1) (6 0)))
+  (uniq-orig na nb)
+  (uniq-gen y x l)
+  (absent (y ltxa) (y (mul x (rec ltxb) l)) (y ltxb) (x l))
+  (operation nonce-test (added-listener (cat (exp (gen) x) l))
+    (exp (gen) (mul x l)) (6 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x (rec ltxb) l))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))))
+    ((recv (cat (exp (gen) (mul x l)) ltxb))
+      (send (cat (exp (gen) (mul x l)) ltxb)))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l))))
+  (label 151)
+  (parent 128)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y x ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y (mul ltxa y (rec l))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x (mul x (rec ltxb) l)))
+  (deflistener (cat (exp (gen) (mul x l)) ltxb))
+  (deflistener (cat (exp (gen) l) x))
+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (0 2)) ((6 1) (5 1))
+    ((7 1) (6 0)))
+  (uniq-orig na nb)
+  (uniq-gen y x l)
+  (absent (y ltxa) (y (mul x (rec ltxb) l)) (y ltxb) (x l))
+  (operation nonce-test (added-listener (cat (exp (gen) l) x))
+    (exp (gen) (mul x l)) (6 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) (mul x (rec ltxb) l))))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))))
+    ((recv (cat (exp (gen) (mul x l)) ltxb))
+      (send (cat (exp (gen) (mul x l)) ltxb)))
+    ((recv (cat (exp (gen) l) x)) (send (cat (exp (gen) l) x))))
+  (label 152)
+  (parent 128)
+  (unrealized (0 2) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y y))
+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 1) (0 2)) ((6 1) (5 0))
+    ((7 1) (6 0)))
+  (uniq-orig na)
+  (uniq-gen x l)
+  (absent (x l))
+  (operation nonce-test (added-listener (cat (exp (gen) x) l))
+    (exp (gen) (mul x l)) (6 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul y l)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul y l)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l))))
+  (label 153)
+  (parent 130)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (x rndx) (y expt) (l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y y))
+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) l) x))
+  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 1) (0 2)) ((6 1) (5 0))
+    ((7 1) (6 0)))
+  (uniq-orig na)
+  (uniq-gen x l)
+  (absent (x l))
+  (operation nonce-test (added-listener (cat (exp (gen) l) x))
+    (exp (gen) (mul x l)) (6 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul y l)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) (mul y l)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul y l)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) l) x)) (send (cat (exp (gen) l) x))))
+  (label 154)
+  (parent 130)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y ltxa ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x ltxb) (y y))
+  (deflistener (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l))))
+  (deflistener (cat (exp (gen) ltxb) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x l))
+  (deflistener (cat (exp (gen) y) ltxa))
+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 2) (0 2)) ((6 2) (7 0)) ((7 1) (4 0)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxa ltxb l)
+  (absent (y ltxa) (y ltxb) (y l) (ltxb ltxa) (ltxb l))
+  (operation nonce-test (added-listener (cat (exp (gen) y) ltxa))
+    (exp (gen) (mul y ltxa)) (4 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l))))
+      (send (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l)))))
+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) y) ltxa)) (send (cat (exp (gen) y) ltxa))))
+  (label 155)
+  (parent 132)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y ltxa ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x ltxb) (y y))
+  (deflistener (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l))))
+  (deflistener (cat (exp (gen) ltxb) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x l))
+  (deflistener (cat (exp (gen) ltxa) y))
+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 2) (0 2)) ((6 2) (7 0)) ((7 1) (4 0)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxa ltxb l)
+  (absent (y ltxa) (y ltxb) (y l) (ltxb ltxa) (ltxb l))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))
+    (exp (gen) (mul y ltxa)) (4 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l))))
+      (send (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l)))))
+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))
+  (label 156)
+  (parent 132)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxa-0 y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x ltxb) (y (mul (rec ltxa) ltxa-0 y)))
+  (deflistener
+    (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener
+    (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+  (deflistener (cat (exp (gen) ltxb) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (y y) (x l))
+  (deflistener (cat (exp (gen) (mul (rec ltxa) y)) ltxa-0))
+  (deflistener (cat (exp (gen) (rec ltxa)) y))
+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 2) (8 0)) ((7 1) (0 2)) ((8 1) (7 0)))
+  (uniq-orig na nb)
+  (uniq-gen ltxa y ltxb l)
+  (absent (y ltxa-0) (y ltxb) (y l) (ltxb ltxa) (ltxb l))
+  (operation nonce-test (added-listener (cat (exp (gen) (rec ltxa)) y))
+    (exp (gen) (mul (rec ltxa) y)) (7 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l)))))) (send nb))
+    ((recv (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+      (send (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l)))))
+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) (mul (rec ltxa) y)) ltxa-0))
+      (send (cat (exp (gen) (mul (rec ltxa) y)) ltxa-0)))
+    ((recv (cat (exp (gen) (rec ltxa)) y))
+      (send (cat (exp (gen) (rec ltxa)) y))))
+  (label 157)
+  (parent 133)
+  (unrealized (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa ltxa-0 y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (x ltxb) (y (mul (rec ltxa) ltxa-0 y)))
+  (deflistener
+    (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener
+    (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+  (deflistener (cat (exp (gen) ltxb) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (y y) (x l))
+  (deflistener (cat (exp (gen) (mul (rec ltxa) y)) ltxa-0))
+  (deflistener (cat (exp (gen) y) ltxa))
+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0))
+    ((6 2) (8 0)) ((7 1) (0 2)) ((8 1) (7 0)))
+  (uniq-orig na nb)
+  (uniq-gen ltxa y ltxb l)
+  (absent (y ltxa-0) (y ltxb) (y l) (ltxb ltxa) (ltxb l))
+  (operation nonce-test (added-listener (cat (exp (gen) y) ltxa))
+    (exp (gen) (mul (rec ltxa) y)) (7 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul (rec ltxa) ltxa-0 y))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l)))))) (send nb))
+    ((recv (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l))))
+      (send (cat (exp (gen) (mul ltxa-0 y)) (exp (gen) (mul ltxb l)))))
+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa-0 y))
+              (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) (mul (rec ltxa) y)) ltxa-0))
+      (send (cat (exp (gen) (mul (rec ltxa) y)) ltxa-0)))
+    ((recv (cat (exp (gen) y) ltxa)) (send (cat (exp (gen) y) ltxa))))
+  (label 158)
+  (parent 133)
+  (unrealized (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y ltxa ltxb x rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) y) ltxa))
+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((6 2) (7 0))
+    ((7 1) (4 0)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxa ltxb x)
+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) y) ltxa))
+    (exp (gen) (mul y ltxa)) (4 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))
+      (send (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x)))))))
+    ((recv (cat (exp (gen) y) ltxa)) (send (cat (exp (gen) y) ltxa))))
+  (label 159)
+  (parent 136)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y ltxa ltxb x rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))
+  (defstrand ltx-gen 3 (self self) (l ltxa))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) ltxa) y))
+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0))
+    ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)) ((6 2) (7 0))
+    ((7 1) (4 0)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxa ltxb x)
+  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) ltxa) y))
+    (exp (gen) (mul y ltxa)) (4 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x)))))
+    ((send (cat self (exp (gen) ltxa))) (recv "end-of-protocol")
+      (send ltxa))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x))))
+      (send (cat (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y ltxa)) (exp (gen) (mul ltxb x)))))))
+    ((recv (cat (exp (gen) ltxa) y)) (send (cat (exp (gen) ltxa) y))))
+  (label 160)
+  (parent 136)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa y x ltxa-0 ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+  (defstrand ltx-gen 3 (self self) (l ltxa-0))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) (mul y (rec ltxa-0))) ltxa))
+  (deflistener (cat (exp (gen) y) ltxa-0))
+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0)) ((4 1) (1 0))
+    ((5 1) (4 0)) ((6 2) (8 0)) ((7 1) (0 2)) ((8 1) (7 0)))
+  (uniq-orig na nb)
+  (uniq-gen y x ltxa-0 ltxb)
+  (absent (y ltxa) (y x) (y ltxb) (x ltxa-0) (x ltxb))
+  (operation nonce-test (added-listener (cat (exp (gen) y) ltxa-0))
+    (exp (gen) (mul y (rec ltxa-0))) (7 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))
+    ((send (cat self (exp (gen) ltxa-0))) (recv "end-of-protocol")
+      (send ltxa-0))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))))
+    ((recv (cat (exp (gen) (mul y (rec ltxa-0))) ltxa))
+      (send (cat (exp (gen) (mul y (rec ltxa-0))) ltxa)))
+    ((recv (cat (exp (gen) y) ltxa-0))
+      (send (cat (exp (gen) y) ltxa-0))))
+  (label 161)
+  (parent 138)
+  (unrealized (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (ltxa y x ltxa-0 ltxb rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
+    (ltxb ltxb) (x x) (y (mul ltxa y (rec ltxa-0))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+  (defstrand ltx-gen 3 (self self) (l ltxa-0))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) (mul y (rec ltxa-0))) ltxa))
+  (deflistener (cat (exp (gen) (rec ltxa-0)) y))
+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (5 0)) ((4 1) (1 0))
+    ((5 1) (4 0)) ((6 2) (8 0)) ((7 1) (0 2)) ((8 1) (7 0)))
+  (uniq-orig na nb)
+  (uniq-gen y x ltxa-0 ltxb)
+  (absent (y ltxa) (y x) (y ltxb) (x ltxa-0) (x ltxb))
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (rec ltxa-0)) y))
+    (exp (gen) (mul y (rec ltxa-0))) (7 0))
+  (traces
+    ((recv (cat (exp (gen) ltxa-0) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec ltxa-0)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))
+    ((send (cat self (exp (gen) ltxa-0))) (recv "end-of-protocol")
+      (send ltxa-0))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x ltxb)))))))
+    ((recv (cat (exp (gen) (mul y (rec ltxa-0))) ltxa))
+      (send (cat (exp (gen) (mul y (rec ltxa-0))) ltxa)))
+    ((recv (cat (exp (gen) (rec ltxa-0)) y))
+      (send (cat (exp (gen) (rec ltxa-0)) y))))
+  (label 162)
+  (parent 138)
+  (unrealized (8 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l)
+    (x ltxb) (y y))
+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) ltxb) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (y y) (x l))
+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (3 0))
+    ((3 1) (1 0)) ((4 2) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxb l)
+  (absent (y ltxb) (y l) (ltxb l))
+  (operation generalization deleted (3 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb l))))))))
+  (label 163)
+  (parent 144)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l)
+    (x ltxb) (y (mul ltxa y (rec l))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+  (deflistener (cat (exp (gen) ltxb) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x l))
+  (deflistener (cat (exp (gen) (mul y (rec l))) ltxa))
+  (deflistener (cat (exp (gen) y) l))
+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (7 0)) ((6 1) (0 2))
+    ((7 1) (6 0)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxb l)
+  (absent (y ltxa) (y ltxb) (y l) (ltxb l))
+  (operation nonce-test (added-listener (cat (exp (gen) y) l))
+    (exp (gen) (mul y (rec l))) (6 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l)))))
+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) (mul y (rec l))) ltxa))
+      (send (cat (exp (gen) (mul y (rec l))) ltxa)))
+    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l))))
+  (label 164)
+  (parent 146)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l)
+    (x ltxb) (y (mul ltxa y (rec l))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+  (deflistener (cat (exp (gen) ltxb) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
+    (y y) (x l))
+  (deflistener (cat (exp (gen) (mul y (rec l))) ltxa))
+  (deflistener (cat (exp (gen) (rec l)) y))
+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (4 0))
+    ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (7 0)) ((6 1) (0 2))
+    ((7 1) (6 0)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxb l)
+  (absent (y ltxa) (y ltxb) (y l) (ltxb l))
+  (operation nonce-test (added-listener (cat (exp (gen) (rec l)) y))
+    (exp (gen) (mul y (rec l))) (6 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l)))))
+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) (mul y (rec l))) ltxa))
+      (send (cat (exp (gen) (mul y (rec l))) ltxa)))
+    ((recv (cat (exp (gen) (rec l)) y))
+      (send (cat (exp (gen) (rec l)) y))))
+  (label 165)
+  (parent 146)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y l x rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y y))
+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul l x))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (y y)
+    (x x))
+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 0) (4 0))
+    ((2 2) (3 0)) ((3 1) (1 0)) ((4 2) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y l x)
+  (absent (y l) (y x) (x l))
+  (operation generalization deleted (3 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul l x))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul l x))))
+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul l x)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul l x))))))))
+  (label 166)
+  (parent 148)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y x l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y (mul ltxa y (rec l))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) (mul y (rec l))) ltxa))
+  (deflistener (cat (exp (gen) y) l))
+  (precedes ((0 1) (5 1)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 0) (5 0))
+    ((2 2) (4 0)) ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (7 0))
+    ((6 1) (0 2)) ((7 1) (6 0)))
+  (uniq-orig na nb)
+  (uniq-gen y x l)
+  (absent (y ltxa) (y x) (y l) (x l))
+  (operation nonce-test (added-listener (cat (exp (gen) y) l))
+    (exp (gen) (mul y (rec l))) (6 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))))
+    ((recv (cat (exp (gen) (mul y (rec l))) ltxa))
+      (send (cat (exp (gen) (mul y (rec l))) ltxa)))
+    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l))))
+  (label 167)
+  (parent 150)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (ltxa y x l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y (mul ltxa y (rec l))))
+  (deflistener (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (deflistener (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+  (deflistener (cat (exp (gen) x) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) (mul y (rec l))) ltxa))
+  (deflistener (cat (exp (gen) (rec l)) y))
+  (precedes ((0 1) (5 1)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 0) (5 0))
+    ((2 2) (4 0)) ((3 1) (1 0)) ((4 1) (3 0)) ((5 2) (7 0))
+    ((6 1) (0 2)) ((7 1) (6 0)))
+  (uniq-orig na nb)
+  (uniq-gen y x l)
+  (absent (y ltxa) (y x) (y l) (x l))
+  (operation nonce-test (added-listener (cat (exp (gen) (rec l)) y))
+    (exp (gen) (mul y (rec l))) (6 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) (mul ltxa y (rec l)))
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l))))
+      (send (cat (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))
+    ((recv (cat (exp (gen) x) l)) (send (cat (exp (gen) x) l)))
+    ((recv (cat (exp (gen) ltxa) (exp (gen) l)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul ltxa y)) (exp (gen) (mul x l)))))))
+    ((recv (cat (exp (gen) (mul y (rec l))) ltxa))
+      (send (cat (exp (gen) (mul y (rec l))) ltxa)))
+    ((recv (cat (exp (gen) (rec l)) y))
+      (send (cat (exp (gen) (rec l)) y))))
+  (label 168)
+  (parent 150)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y ltxb l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l-0) (ltxb l)
+    (x ltxb) (y y))
+  (deflistener (hash (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l l-0))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener (cat (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l))))
+  (deflistener (cat (exp (gen) ltxb) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l-0) (ltxb ltxb)
+    (y y) (x l))
+  (deflistener (cat (exp (gen) y) l-0))
+  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 2) (7 0)) ((3 0) (0 0)) ((3 2) (5 0)) ((4 1) (1 0))
+    ((5 1) (4 0)) ((6 2) (0 2)) ((7 1) (4 0)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxb l l-0)
+  (absent (y ltxb) (y l) (y l-0) (ltxb l) (ltxb l-0))
+  (operation nonce-test (displaced 8 2 ltx-gen 3) l-0 (7 0))
+  (traces
+    ((recv (cat (exp (gen) l-0) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) l-0))) (recv "end-of-protocol")
+      (send l-0))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l))))
+      (send (cat (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l)))))
+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
+    ((recv (cat (exp (gen) l-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) y) l-0)) (send (cat (exp (gen) y) l-0))))
+  (label 169)
+  (parent 155)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y ltxb x l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb x))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener (cat (exp (gen) (mul y l)) (exp (gen) (mul ltxb x))))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) y) l))
+  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 0) (6 0)) ((2 2) (7 0)) ((3 0) (0 0)) ((3 0) (6 0))
+    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2))
+    ((7 1) (4 0)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxb x l)
+  (absent (y ltxb) (y x) (y l) (x ltxb) (x l))
+  (operation nonce-test (displaced 8 2 ltx-gen 3) l (7 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb x)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv (cat (exp (gen) (mul y l)) (exp (gen) (mul ltxb x))))
+      (send (cat (exp (gen) (mul y l)) (exp (gen) (mul ltxb x)))))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb x)))))))
+    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l))))
+  (label 170)
+  (parent 159)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y ltxb l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l)
+    (x ltxb) (y y))
+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (y y) (x l))
+  (precedes ((0 1) (3 0)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 2) (1 0))
+    ((3 2) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxb l)
+  (absent (y ltxb) (y l) (ltxb l))
+  (operation generalization deleted (3 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb l))))))))
+  (label 171)
+  (parent 163)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 2 2)
+      ((ltxa l) (ltxb l) (x ltxb) (y y) (a a) (b b) (na na) (nb nb)
+        (self self) (self-0 self))))
+  (origs (nb (3 2)) (na (0 1))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self name) (y l x rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (x x)
+    (y y))
+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul l x))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb l) (y y)
+    (x x))
+  (precedes ((0 1) (3 1)) ((0 3) (2 1)) ((2 0) (0 0)) ((2 0) (3 0))
+    ((2 2) (1 0)) ((3 2) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y l x)
+  (absent (y l) (y x) (x l))
+  (operation generalization deleted (3 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul l x))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul l x))))
+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul l x)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((recv (cat (exp (gen) l) (exp (gen) l)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul l x))))))))
+  (label 172)
+  (parent 166)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 2 2)
+      ((ltxa l) (ltxb l) (x x) (y y) (a a) (b b) (na na) (nb nb)
+        (self self) (self-0 self))))
+  (origs (nb (3 2)) (na (0 1))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y ltxb l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l-0) (ltxb l)
+    (x ltxb) (y y))
+  (deflistener (hash (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l l-0))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (deflistener (cat (exp (gen) ltxb) l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l-0) (ltxb ltxb)
+    (y y) (x l))
+  (deflistener (cat (exp (gen) y) l-0))
+  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (4 0)) ((4 1) (1 0))
+    ((5 2) (0 2)) ((6 1) (1 0)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxb l l-0)
+  (absent (y ltxb) (y l) (y l-0) (ltxb l) (ltxb l-0))
+  (operation generalization deleted (4 0))
+  (traces
+    ((recv (cat (exp (gen) l-0) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) l-0))) (recv "end-of-protocol")
+      (send l-0))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) ltxb) l)) (send (cat (exp (gen) ltxb) l)))
+    ((recv (cat (exp (gen) l-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) y) l-0)) (send (cat (exp (gen) y) l-0))))
+  (label 173)
+  (parent 169)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y ltxb x l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb x))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (deflistener (cat (exp (gen) x) ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) y) l))
+  (precedes ((0 1) (5 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 0) (5 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (5 0))
+    ((3 2) (4 0)) ((4 1) (1 0)) ((5 2) (0 2)) ((6 1) (1 0)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxb x l)
+  (absent (y ltxb) (y x) (y l) (x ltxb) (x l))
+  (operation generalization deleted (4 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb x)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv (cat (exp (gen) x) ltxb)) (send (cat (exp (gen) x) ltxb)))
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb x)))))))
+    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l))))
+  (label 174)
+  (parent 170)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y ltxb l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l-0) (ltxb l)
+    (x ltxb) (y y))
+  (deflistener (hash (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l l-0))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l-0) (ltxb ltxb)
+    (y y) (x l))
+  (deflistener (cat (exp (gen) y) l-0))
+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 2) (5 0)) ((3 0) (0 0)) ((3 2) (1 0)) ((4 2) (0 2))
+    ((5 1) (1 0)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxb l l-0)
+  (absent (y ltxb) (y l) (y l-0) (ltxb l) (ltxb l-0))
+  (operation generalization deleted (4 0))
+  (traces
+    ((recv (cat (exp (gen) l-0) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) l-0))) (recv "end-of-protocol")
+      (send l-0))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) l-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l)))))))
+    ((recv (cat (exp (gen) y) l-0)) (send (cat (exp (gen) y) l-0))))
+  (label 175)
+  (parent 173)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y ltxb x l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb x))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (y y) (x x))
+  (deflistener (cat (exp (gen) y) l))
+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 0) (4 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (4 0))
+    ((3 2) (1 0)) ((4 2) (0 2)) ((5 1) (1 0)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxb x l)
+  (absent (y ltxb) (y x) (y l) (x ltxb) (x l))
+  (operation generalization deleted (4 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb x)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb x)))))))
+    ((recv (cat (exp (gen) y) l)) (send (cat (exp (gen) y) l))))
+  (label 176)
+  (parent 174)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y ltxb l l-0 rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l-0) (ltxb l)
+    (x ltxb) (y y))
+  (deflistener (hash (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l))))
+  (defstrand ltx-gen 3 (self self) (l l-0))
+  (defstrand ltx-gen 3 (self self-0) (l l))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l-0) (ltxb ltxb)
+    (y y) (x l))
+  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 2) (1 0)) ((3 0) (0 0)) ((3 2) (1 0)) ((4 2) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxb l l-0)
+  (absent (y ltxb) (y l) (y l-0) (ltxb l) (ltxb l-0))
+  (operation generalization deleted (5 0))
+  (traces
+    ((recv (cat (exp (gen) l-0) (exp (gen) l)))
+      (send (cat na a b (exp (gen) ltxb)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l))))
+      (send (hash (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l)))))
+    ((send (cat self (exp (gen) l-0))) (recv "end-of-protocol")
+      (send l-0))
+    ((send (cat self-0 (exp (gen) l))) (recv "end-of-protocol")
+      (send l))
+    ((recv (cat (exp (gen) l-0) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) l)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l-0)) (exp (gen) (mul ltxb l))))))))
+  (label 177)
+  (parent 175)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 2 3)
+      ((ltxa l-0) (ltxb l) (x ltxb) (y y) (a a) (b b) (na na) (nb nb)
+        (self self) (self-0 self-0))))
+  (origs (nb (4 2)) (na (0 1))))
+
+(defskeleton dhcr-umx
+  (vars (na nb data) (a b self self-0 name) (y ltxb x l rndx))
+  (defstrand init 4 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (x x) (y y))
+  (deflistener (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb x))))
+  (defstrand ltx-gen 3 (self self) (l l))
+  (defstrand ltx-gen 3 (self self-0) (l ltxb))
+  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb)
+    (y y) (x x))
+  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
+    ((2 0) (4 0)) ((2 2) (1 0)) ((3 0) (0 0)) ((3 0) (4 0))
+    ((3 2) (1 0)) ((4 2) (0 2)))
+  (uniq-orig na nb)
+  (uniq-gen y ltxb x l)
+  (absent (y ltxb) (y x) (y l) (x ltxb) (x l))
+  (operation generalization deleted (5 0))
+  (traces
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (send (cat na a b (exp (gen) x)))
+      (recv
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb x))))))
+      (send nb))
+    ((recv (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb x))))
+      (send (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb x)))))
+    ((send (cat self (exp (gen) l))) (recv "end-of-protocol") (send l))
+    ((send (cat self-0 (exp (gen) ltxb))) (recv "end-of-protocol")
+      (send ltxb))
+    ((recv (cat (exp (gen) l) (exp (gen) ltxb)))
+      (recv (cat na a b (exp (gen) x)))
+      (send
+        (cat (exp (gen) y)
+          (enc na nb a b
+            (hash (exp (gen) (mul y l)) (exp (gen) (mul ltxb x))))))))
+  (label 178)
+  (parent 176)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 2 3)
+      ((ltxa l) (ltxb ltxb) (x x) (y y) (a a) (b b) (na na) (nb nb)
+        (self self) (self-0 self-0))))
   (origs (nb (4 2)) (na (0 1))))
 
 (comment "Nothing left to do")
diff --git a/tst/dhke2.lisp b/tst/dhke2.lisp
new file mode 100644
--- /dev/null
+++ b/tst/dhke2.lisp
@@ -0,0 +1,108 @@
+(herald "Diffie-Hellman Key Exchange" (algebra diffie-hellman2))
+
+;; The Diffie-Hellman problem is given (exp (gen) x), and (exp (gen)
+;; y), compute the value of (exp (exp (gen) x) y) which is also (exp
+;; (exp (gen) y) x).
+
+(defprotocol dhke diffie-hellman2
+  (defrole init (vars (a b name) (x expn) (h base))
+    (trace
+     (send (enc "i" (exp (gen) x) (privk a)))
+     (recv (cat (enc h (privk b)) (enc a b (exp h x))))
+     (send (enc "i" a b (exp h x))))
+    (uniq-orig  (exp (gen) x)))
+  (defrole resp (vars (a b name) (y expn) (h base))
+    (trace
+     (recv (enc "i" h (privk a)))
+     (send (cat (enc (exp (gen) y) (privk b)) (enc a b (exp h y))))
+     (recv (enc "i" a b (exp h y))))
+    (uniq-orig (exp (gen) y))))
+
+(defskeleton dhke (vars (a b name) (y expn) (h base))
+  (defstrand resp 3 (a a) (b b) (y y) (h h))
+  (non-orig (privk a) (privk b))
+  (pen-non-orig (exp h y)))
+
+ (defskeleton dhke (vars (a b name))
+   (defstrand init 2 (a a) (b b))
+   (non-orig (privk a) (privk b)))
+
+(defprotocol dh-mim diffie-hellman2
+  (defrole init
+    (vars (x expn) (h base) (n text))
+    (trace
+     (send (exp (gen) x))
+     (recv h)
+     (send (enc n (exp h x))))
+    (uniq-orig n (exp (gen) x)))
+  (defrole resp
+    (vars (y expn) (h base) (n text))
+    (trace
+     (recv h)
+     (send (exp (gen) y))
+     (recv (enc n (exp h y))))
+    (uniq-orig (exp (gen) y)))
+  (comment "Diffie-Hellman without signatures"
+	   "has a man-in-the-middle attack"))
+
+(defskeleton dh-mim
+  (vars (n text))
+  (defstrand init 3 (n n))
+  (deflistener n)
+  (uniq-orig n))
+
+;; Protocols using variables of sort base
+
+(comment
+(defprotocol dhke-with-base-vars diffie-hellman
+  (defrole init (vars (a b name) (g base) (x expn))
+    (trace
+     (send (enc "i" (exp (gen) x) (privk a)))
+     (recv (cat (enc g (privk b)) (enc a b (exp g x))))
+     (send (enc "i" a b (exp g x))))
+    (uniq-orig  x))
+  (defrole resp (vars (a b name) (h base) (y expn))
+    (trace
+     (recv (enc "i" h (privk a)))
+     (send (cat (enc (exp (gen) y) (privk b)) (enc a b (exp h y))))
+     (recv (enc "i" a b (exp h y))))
+    (uniq-orig y)))
+
+(defskeleton dhke-with-base-vars (vars (a b name))
+  (defstrand resp 3 (a a) (b b))
+  (non-orig (privk a) (privk b)))
+
+ (defskeleton dhke-with-base-vars (vars (a b name))
+   (defstrand init 2 (a a) (b b))
+   (non-orig (privk a) (privk b)))
+
+(defprotocol dh-mim-with-base-vars diffie-hellman
+  (defrole init
+    (vars (x expn) (hy base) (n text))
+    (trace
+     (send (exp (gen) x))
+     (recv hy)
+     (send (enc n (exp hy x))))
+    (uniq-orig n x))
+  (defrole resp
+    (vars (y expn) (hx base) (n text))
+    (trace
+     (recv hx)
+     (send (exp (gen) y))
+     (recv (enc n (exp hx y))))
+    (uniq-orig y))
+  (comment "Diffie-Hellman without signatures"
+	   "has a man-in-the-middle attack"))
+
+(defskeleton dh-mim-with-base-vars
+  (vars (n text))
+  (defstrand init 3 (n n))
+  (defstrand resp 3 (n n))
+  (uniq-orig n))
+
+(defskeleton dh-mim-with-base-vars
+  (vars (n text))
+  (defstrand init 3 (n n))
+  (deflistener n)
+  (uniq-orig n))
+)
diff --git a/tst/dhnsl_basic.scm b/tst/dhnsl_basic.scm
deleted file mode 100644
--- a/tst/dhnsl_basic.scm
+++ /dev/null
@@ -1,45 +0,0 @@
-(herald "Diffie-Hellman enhanced Needham-Schroeder-Lowe Protocol"
-;  (limit 1)
-  (algebra diffie-hellman))
-
-(defprotocol dhnsl diffie-hellman
-  (defrole resp
-    (vars (b a name) (x expt) (y rndx))
-    (trace
-     (recv (enc (exp (gen) x) a (pubk b)))
-     (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-     (recv (enc (exp (gen) y) (pubk b)))
-
-     )
-    (absent (y (exp (gen) x)))
-;    (uniq-gen y)
-    (comment "Y and Z should be assumed to be freshly chosen per role")
-  )
-  (defrole init
-    (vars (a b name) (y expt) (x rndx))
-    (trace
-     (send (enc (exp (gen) x) a (pubk b)))
-     (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-     (send (enc (exp (gen) y) (pubk b)))
-    )
-;    (uniq-gen x)
-    (comment "X should be assumed to be freshly chosen per role")
-  )
-  (comment "Needham-Schroeder-Lowe DH challenge/responses in place of nonces")
-)
-
-;;; The initiator point-of-view
-(defskeleton dhnsl
-  (vars (a b name) (y expt) (x rndx))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (non-orig (privk b) (privk a))
-  (uniq-gen x)
-  (comment "Initiator point-of-view"))
-
-;; The responder point-of-view
-(defskeleton dhnsl
-  (vars (a b name) (x expt) (y rndx))
-  (defstrand resp 3 (a a) (b b) (x x) (y y))
-  (non-orig (privk a))
-  (uniq-gen y)
-  (comment "Responder point-of-view"))
diff --git a/tst/dhnsl_basic.tst b/tst/dhnsl_basic.tst
deleted file mode 100644
--- a/tst/dhnsl_basic.tst
+++ /dev/null
@@ -1,786 +0,0 @@
-(herald "Diffie-Hellman enhanced Needham-Schroeder-Lowe Protocol"
-  (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/dhnsl_basic.scm")
-
-(defprotocol dhnsl diffie-hellman
-  (defrole resp
-    (vars (b a name) (x expt) (y rndx))
-    (trace (recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b))))
-    (absent (y (exp (gen) x)))
-    (comment "Y and Z should be assumed to be freshly chosen per role"))
-  (defrole init
-    (vars (a b name) (y expt) (x rndx))
-    (trace (send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    (comment "X should be assumed to be freshly chosen per role"))
-  (comment
-    "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))
-
-(defskeleton dhnsl
-  (vars (a b name) (y expt) (x rndx))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (comment "Initiator point-of-view")
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))))
-  (label 0)
-  (unrealized (0 1))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (a b name) (y expt) (y-0 x rndx))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (operation nonce-test (added-strand resp 2) (exp (gen) x) (0 1)
-    (enc (exp (gen) x) a (pubk b)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a)))))
-  (label 1)
-  (parent 0)
-  (unrealized (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (a b name) (y expt) (x rndx) (w expt))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (deflistener (cat (exp (gen) (mul x (rec w))) w))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (precur (1 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)
-    (0 1) (enc (exp (gen) x) a (pubk b)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (cat (exp (gen) (mul x (rec w))) w))
-      (send (cat (exp (gen) (mul x (rec w))) w))))
-  (label 2)
-  (parent 0)
-  (unrealized (1 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (a b name) (x y rndx))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (operation nonce-test (contracted (y-0 y) (y-1 y)) (exp (gen) x) (0 1)
-    (enc (exp (gen) x) a (pubk b))
-    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))))
-  (label 3)
-  (parent 1)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (y y) (x x))))
-  (origs))
-
-(defskeleton dhnsl
-  (vars (a b name) (y expt) (y-0 x rndx) (w expt))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (deflistener (cat (exp (gen) (mul x (rec w))) w))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (precur (2 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)
-    (0 1) (enc (exp (gen) x) a (pubk b))
-    (enc (exp (gen) x) (exp (gen) y-0) b (pubk a)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))
-    ((recv (cat (exp (gen) (mul x (rec w))) w))
-      (send (cat (exp (gen) (mul x (rec w))) w))))
-  (label 4)
-  (parent 1)
-  (unrealized (2 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (a b name) (y expt) (x rndx))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (deflistener (cat (gen) x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (precur (1 0))
-  (operation nonce-test (contracted (x-0 x) (w x)) (gen) (1 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (cat (gen) x)) (send (cat (gen) x))))
-  (label 5)
-  (parent 2)
-  (unrealized (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (a b b-0 a-0 name) (y x expt) (x-0 y-0 rndx))
-  (defstrand init 3 (a a) (b b) (y y) (x x-0))
-  (deflistener (cat (exp (gen) y-0) (mul x-0 (rec y-0))))
-  (defstrand resp 2 (b b-0) (a a-0) (x x) (y y-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (1 0)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen x-0)
-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))
-  (traces
-    ((send (enc (exp (gen) x-0) a (pubk b)))
-      (recv (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (cat (exp (gen) y-0) (mul x-0 (rec y-0))))
-      (send (cat (exp (gen) y-0) (mul x-0 (rec y-0)))))
-    ((recv (enc (exp (gen) x) a-0 (pubk b-0)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b-0 (pubk a-0)))))
-  (label 6)
-  (parent 2)
-  (unrealized (0 1) (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (a b name) (y expt) (x rndx))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (deflistener (cat (exp (gen) x) (one)))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen x)
-  (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))
-  (label 7)
-  (parent 2)
-  (unrealized (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (a b a-0 b-0 name) (y expt) (x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
-  (defstrand init 1 (a a-0) (b b-0) (x x-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 0) (1 0)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen x)
-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
-      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))
-  (label 8)
-  (parent 2)
-  (unrealized (0 1) (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (a b name) (y expt) (y-0 x rndx))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (deflistener (cat (gen) x))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (precur (2 0))
-  (operation nonce-test (contracted (x-0 x) (w x)) (gen) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))
-    ((recv (cat (gen) x)) (send (cat (gen) x))))
-  (label 9)
-  (parent 4)
-  (unrealized (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (a b name) (y expt) (x y-0 rndx))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (deflistener (cat (exp (gen) y-0) (mul x (rec y-0))))
-  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (2 0))
-  (uniq-gen x)
-  (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-1) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))
-    ((recv (cat (exp (gen) y-0) (mul x (rec y-0))))
-      (send (cat (exp (gen) y-0) (mul x (rec y-0))))))
-  (label 10)
-  (parent 4)
-  (unrealized (0 1) (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (a b b-0 a-0 name) (y expt) (y-0 rndx) (x expt) (x-0 y-1 rndx))
-  (defstrand init 3 (a a) (b b) (y y) (x x-0))
-  (defstrand resp 2 (b b) (a a) (x x-0) (y y-0))
-  (deflistener (cat (exp (gen) y-1) (mul x-0 (rec y-1))))
-  (defstrand resp 2 (b b-0) (a a-0) (x x) (y y-1))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))
-    ((3 1) (2 0)))
-  (absent (y-1 (exp (gen) x)) (y-0 (exp (gen) x-0)))
-  (non-orig (privk a) (privk b))
-  (precur (2 0))
-  (uniq-gen x-0)
-  (operation nonce-test (added-strand resp 2) (exp (gen) y-1) (2 0))
-  (traces
-    ((send (enc (exp (gen) x-0) a (pubk b)))
-      (recv (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (enc (exp (gen) x-0) a (pubk b)))
-      (send (enc (exp (gen) x-0) (exp (gen) y-0) b (pubk a))))
-    ((recv (cat (exp (gen) y-1) (mul x-0 (rec y-1))))
-      (send (cat (exp (gen) y-1) (mul x-0 (rec y-1)))))
-    ((recv (enc (exp (gen) x) a-0 (pubk b-0)))
-      (send (enc (exp (gen) x) (exp (gen) y-1) b-0 (pubk a-0)))))
-  (label 11)
-  (parent 4)
-  (unrealized (0 1) (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (a b name) (y expt) (y-0 x rndx))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (deflistener (cat (exp (gen) x) (one)))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (2 0))
-  (uniq-gen x)
-  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))
-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))
-  (label 12)
-  (parent 4)
-  (seen 15)
-  (unrealized (2 0))
-  (comment "2 in cohort - 1 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (a b a-0 b-0 name) (y expt) (y-0 x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
-  (defstrand init 1 (a a-0) (b b-0) (x x-0))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))
-    ((3 0) (2 0)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (2 0))
-  (uniq-gen x)
-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))
-    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
-      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))
-  (label 13)
-  (parent 4)
-  (unrealized (0 1) (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (a b b-0 a-0 name) (y x expt) (x-0 y-0 rndx))
-  (defstrand init 3 (a a) (b b) (y y) (x x-0))
-  (deflistener (cat (exp (gen) y-0) (mul x-0 (rec y-0))))
-  (defstrand resp 2 (b b-0) (a a-0) (x x) (y y-0))
-  (deflistener x-0)
-  (precedes ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (1 0)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen x-0)
-  (operation nonce-test (added-listener x-0) (mul x-0 (rec y-0)) (1 0))
-  (traces
-    ((send (enc (exp (gen) x-0) a (pubk b)))
-      (recv (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (cat (exp (gen) y-0) (mul x-0 (rec y-0))))
-      (send (cat (exp (gen) y-0) (mul x-0 (rec y-0)))))
-    ((recv (enc (exp (gen) x) a-0 (pubk b-0)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b-0 (pubk a-0))))
-    ((recv x-0) (send x-0)))
-  (label 14)
-  (parent 6)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (a b name) (y expt) (y-0 x rndx))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (deflistener (cat (exp (gen) x) (one)))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen x)
-  (operation nonce-test (added-strand resp 2) (exp (gen) x) (1 0)
-    (enc (exp (gen) x) a (pubk b)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a)))))
-  (label 15)
-  (parent 7)
-  (unrealized (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (a b a-0 b-0 name) (y expt) (x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
-  (defstrand init 1 (a a-0) (b b-0) (x x-0))
-  (deflistener x)
-  (precedes ((0 0) (3 0)) ((1 1) (0 1)) ((2 0) (1 0)) ((3 1) (1 0)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen x)
-  (operation nonce-test (added-listener x) (mul x (rec x-0)) (1 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
-      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))) ((recv x) (send x)))
-  (label 16)
-  (parent 8)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (a b name) (y expt) (x y-0 rndx))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (deflistener (cat (exp (gen) y-0) (mul x (rec y-0))))
-  (deflistener x)
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (2 0)) ((2 1) (0 1))
-    ((3 1) (2 0)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (2 0))
-  (uniq-gen x)
-  (operation nonce-test (added-listener x) (mul x (rec y-0)) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))
-    ((recv (cat (exp (gen) y-0) (mul x (rec y-0))))
-      (send (cat (exp (gen) y-0) (mul x (rec y-0)))))
-    ((recv x) (send x)))
-  (label 17)
-  (parent 10)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (a b b-0 a-0 name) (y expt) (y-0 rndx) (x expt) (x-0 y-1 rndx))
-  (defstrand init 3 (a a) (b b) (y y) (x x-0))
-  (defstrand resp 2 (b b) (a a) (x x-0) (y y-0))
-  (deflistener (cat (exp (gen) y-1) (mul x-0 (rec y-1))))
-  (defstrand resp 2 (b b-0) (a a-0) (x x) (y y-1))
-  (deflistener x-0)
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 1))
-    ((3 1) (2 0)) ((4 1) (2 0)))
-  (absent (y-1 (exp (gen) x)) (y-0 (exp (gen) x-0)))
-  (non-orig (privk a) (privk b))
-  (precur (2 0))
-  (uniq-gen x-0)
-  (operation nonce-test (added-listener x-0) (mul x-0 (rec y-1)) (2 0))
-  (traces
-    ((send (enc (exp (gen) x-0) a (pubk b)))
-      (recv (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (enc (exp (gen) x-0) a (pubk b)))
-      (send (enc (exp (gen) x-0) (exp (gen) y-0) b (pubk a))))
-    ((recv (cat (exp (gen) y-1) (mul x-0 (rec y-1))))
-      (send (cat (exp (gen) y-1) (mul x-0 (rec y-1)))))
-    ((recv (enc (exp (gen) x) a-0 (pubk b-0)))
-      (send (enc (exp (gen) x) (exp (gen) y-1) b-0 (pubk a-0))))
-    ((recv x-0) (send x-0)))
-  (label 18)
-  (parent 11)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (a b name) (y expt) (y-0 y-1 x rndx))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (deflistener (cat (exp (gen) x) (one)))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-1))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
-    ((3 1) (2 0)))
-  (absent (y-1 (exp (gen) x)) (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (2 0))
-  (uniq-gen x)
-  (operation nonce-test (added-strand resp 2) (exp (gen) x) (2 0)
-    (enc (exp (gen) x) a (pubk b)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))
-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-1) b (pubk a)))))
-  (label 19)
-  (parent 12)
-  (seen 15)
-  (unrealized (2 0))
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (a b a-0 b-0 name) (y expt) (y-0 x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
-  (defstrand init 1 (a a-0) (b b-0) (x x-0))
-  (deflistener x)
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 1))
-    ((3 0) (2 0)) ((4 1) (2 0)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (2 0))
-  (uniq-gen x)
-  (operation nonce-test (added-listener x) (mul x (rec x-0)) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))
-    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
-      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))) ((recv x) (send x)))
-  (label 20)
-  (parent 13)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol dhnsl diffie-hellman
-  (defrole resp
-    (vars (b a name) (x expt) (y rndx))
-    (trace (recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b))))
-    (absent (y (exp (gen) x)))
-    (comment "Y and Z should be assumed to be freshly chosen per role"))
-  (defrole init
-    (vars (a b name) (y expt) (x rndx))
-    (trace (send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    (comment "X should be assumed to be freshly chosen per role"))
-  (comment
-    "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))
-
-(defskeleton dhnsl
-  (vars (a b name) (x expt) (y rndx))
-  (defstrand resp 3 (b b) (a a) (x x) (y y))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a))
-  (uniq-gen y)
-  (comment "Responder point-of-view")
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))))
-  (label 21)
-  (unrealized (0 2))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (a b name) (y x rndx))
-  (defstrand resp 3 (b b) (a a) (x x) (y y))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a))
-  (uniq-gen y)
-  (operation nonce-test (added-strand init 3) (exp (gen) y) (0 2)
-    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b))))
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))))
-  (label 22)
-  (parent 21)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (x x) (y y))))
-  (origs))
-
-(defskeleton dhnsl
-  (vars (a b name) (x expt) (y rndx) (w expt))
-  (defstrand resp 3 (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) (mul y (rec w))) w))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a))
-  (uniq-gen y)
-  (precur (1 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y (rec w))) w)) (exp (gen) y)
-    (0 2) (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b))))
-    ((recv (cat (exp (gen) (mul y (rec w))) w))
-      (send (cat (exp (gen) (mul y (rec w))) w))))
-  (label 23)
-  (parent 21)
-  (unrealized (1 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (a b name) (x expt) (y rndx))
-  (defstrand resp 3 (b b) (a a) (x x) (y y))
-  (deflistener (cat (gen) y))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a))
-  (uniq-gen y)
-  (precur (1 0))
-  (operation nonce-test (contracted (y-0 y) (w y)) (gen) (1 0))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b))))
-    ((recv (cat (gen) y)) (send (cat (gen) y))))
-  (label 24)
-  (parent 23)
-  (unrealized (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (a b name) (x expt) (y rndx))
-  (defstrand resp 3 (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y) (one)))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a))
-  (precur (1 0))
-  (uniq-gen y)
-  (operation nonce-test (displaced 2 0 resp 2) (exp (gen) y-0) (1 0))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b))))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))
-  (label 25)
-  (parent 23)
-  (unrealized (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (a b b-0 a-0 name) (x x-0 expt) (y y-0 rndx))
-  (defstrand resp 3 (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y-0) (mul y (rec y-0))))
-  (defstrand resp 2 (b b-0) (a a-0) (x x-0) (y y-0))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))
-  (absent (y-0 (exp (gen) x-0)) (y (exp (gen) x)))
-  (non-orig (privk a))
-  (precur (1 0))
-  (uniq-gen y)
-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b))))
-    ((recv (cat (exp (gen) y-0) (mul y (rec y-0))))
-      (send (cat (exp (gen) y-0) (mul y (rec y-0)))))
-    ((recv (enc (exp (gen) x-0) a-0 (pubk b-0)))
-      (send (enc (exp (gen) x-0) (exp (gen) y-0) b-0 (pubk a-0)))))
-  (label 26)
-  (parent 23)
-  (unrealized (0 2) (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (a b a-0 b-0 name) (x expt) (y x-0 rndx))
-  (defstrand resp 3 (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) x-0) (mul y (rec x-0))))
-  (defstrand init 1 (a a-0) (b b-0) (x x-0))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a))
-  (precur (1 0))
-  (uniq-gen y)
-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b))))
-    ((recv (cat (exp (gen) x-0) (mul y (rec x-0))))
-      (send (cat (exp (gen) x-0) (mul y (rec x-0)))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))
-  (label 27)
-  (parent 23)
-  (unrealized (0 2) (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (a b name) (y x rndx))
-  (defstrand resp 3 (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y) (one)))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 2) (1 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a))
-  (precur (1 0))
-  (uniq-gen y)
-  (operation nonce-test (added-strand init 3) (exp (gen) y) (1 0)
-    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b))))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))))
-  (label 28)
-  (parent 25)
-  (seen 22)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (a b b-0 a-0 name) (x x-0 expt) (y y-0 rndx))
-  (defstrand resp 3 (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y-0) (mul y (rec y-0))))
-  (defstrand resp 2 (b b-0) (a a-0) (x x-0) (y y-0))
-  (deflistener y)
-  (precedes ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (1 0)))
-  (absent (y-0 (exp (gen) x-0)) (y (exp (gen) x)))
-  (non-orig (privk a))
-  (precur (1 0))
-  (uniq-gen y)
-  (operation nonce-test (added-listener y) (mul y (rec y-0)) (1 0))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b))))
-    ((recv (cat (exp (gen) y-0) (mul y (rec y-0))))
-      (send (cat (exp (gen) y-0) (mul y (rec y-0)))))
-    ((recv (enc (exp (gen) x-0) a-0 (pubk b-0)))
-      (send (enc (exp (gen) x-0) (exp (gen) y-0) b-0 (pubk a-0))))
-    ((recv y) (send y)))
-  (label 29)
-  (parent 26)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (a b a-0 b-0 name) (x expt) (y x-0 rndx))
-  (defstrand resp 3 (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) x-0) (mul y (rec x-0))))
-  (defstrand init 1 (a a-0) (b b-0) (x x-0))
-  (deflistener y)
-  (precedes ((0 1) (3 0)) ((1 1) (0 2)) ((2 0) (1 0)) ((3 1) (1 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a))
-  (precur (1 0))
-  (uniq-gen y)
-  (operation nonce-test (added-listener y) (mul y (rec x-0)) (1 0))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b))))
-    ((recv (cat (exp (gen) x-0) (mul y (rec x-0))))
-      (send (cat (exp (gen) x-0) (mul y (rec x-0)))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))) ((recv y) (send y)))
-  (label 30)
-  (parent 27)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
diff --git a/tst/dhnsl_hack.scm b/tst/dhnsl_hack.scm
new file mode 100644
--- /dev/null
+++ b/tst/dhnsl_hack.scm
@@ -0,0 +1,44 @@
+(herald "Diffie-Hellman enhanced Needham-Schroeder-Lowe Protocol"
+  (algebra basic))
+
+(defmacro (CDH gx gy dhkey) (enc "dh" gx gy dhkey))
+
+(defprotocol dhnsl basic
+  (defrole init
+    (vars (a b name) (h2 h3 gx akey) (dhkey skey))
+    (trace
+     (send (enc gx a (pubk b)))
+     (recv (enc h2 (CDH h2 gx dhkey) h3 b (pubk a)))
+     (send (enc (CDH h3 gx dhkey) (pubk b)))
+    )
+    (uniq-orig gx)
+    (non-orig (invk gx) dhkey)
+    (comment "X should be assumed to be freshly chosen per role")
+  )
+  (defrole resp
+    (vars (b a name) (h1 gy gz akey) (dhkey skey))
+    (trace
+     (recv (enc h1 a (pubk b)))
+     (send (enc gy (CDH gy h1 dhkey) gz b (pubk a)))
+     (recv (enc (CDH gz h1 dhkey) (pubk b)))
+    )
+    (uniq-orig gy gz)
+    (non-orig (invk gy) (invk gz) dhkey)
+    (comment "Y and Z should be assumed to be freshly chosen per role")
+  )
+  (comment "Needham-Schroeder-Lowe DH challenge/responses in place of nonces")
+)
+
+;;; The initiator point-of-view
+(defskeleton dhnsl
+  (vars (a b name) (gx gy gz akey))
+  (defstrand init 3 (a a) (b b) (h2 gy) (h3 gz) (gx gx))
+  (non-orig (privk b) (privk a))
+  (comment "Initiator point-of-view"))
+
+;;; The responder point-of-view
+(defskeleton dhnsl
+  (vars (a b name) (gx gy gz akey))
+  (defstrand resp 3 (a a) (b b) (h1 gx) (gy gy) (gz gz))
+  (non-orig (privk a))
+  (comment "Responder point-of-view"))
diff --git a/tst/dhnsl_hack.tst b/tst/dhnsl_hack.tst
new file mode 100644
--- /dev/null
+++ b/tst/dhnsl_hack.tst
@@ -0,0 +1,445 @@
+(herald "Diffie-Hellman enhanced Needham-Schroeder-Lowe Protocol"
+  (algebra basic))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/dhnsl_hack.scm")
+
+(defprotocol dhnsl basic
+  (defrole init
+    (vars (a b name) (h2 h3 gx akey) (dhkey skey))
+    (trace (send (enc gx a (pubk b)))
+      (recv (enc h2 (enc "dh" h2 gx dhkey) h3 b (pubk a)))
+      (send (enc (enc "dh" h3 gx dhkey) (pubk b))))
+    (non-orig dhkey (invk gx))
+    (uniq-orig gx)
+    (comment "X should be assumed to be freshly chosen per role"))
+  (defrole resp
+    (vars (b a name) (h1 gy gz akey) (dhkey skey))
+    (trace (recv (enc h1 a (pubk b)))
+      (send (enc gy (enc "dh" gy h1 dhkey) gz b (pubk a)))
+      (recv (enc (enc "dh" gz h1 dhkey) (pubk b))))
+    (non-orig dhkey (invk gy) (invk gz))
+    (uniq-orig gy gz)
+    (comment "Y and Z should be assumed to be freshly chosen per role"))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment
+    "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))
+
+(defskeleton dhnsl
+  (vars (dhkey skey) (gx gy gz akey) (a b name))
+  (defstrand init 3 (dhkey dhkey) (h2 gy) (h3 gz) (gx gx) (a a) (b b))
+  (non-orig dhkey (invk gx) (privk a) (privk b))
+  (uniq-orig gx)
+  (comment "Initiator point-of-view")
+  (traces
+    ((send (enc gx a (pubk b)))
+      (recv (enc gy (enc "dh" gy gx dhkey) gz b (pubk a)))
+      (send (enc (enc "dh" gz gx dhkey) (pubk b)))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (gx (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhnsl
+  (vars (dhkey skey) (gx gy gz gz-0 akey) (a b b-0 a-0 name))
+  (defstrand init 3 (dhkey dhkey) (h2 gy) (h3 gz) (gx gx) (a a) (b b))
+  (defstrand resp 2 (dhkey dhkey) (h1 gx) (gy gy) (gz gz-0) (b b-0)
+    (a a-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig dhkey (invk gx) (invk gy) (invk gz-0) (privk a) (privk b))
+  (uniq-orig gx gy gz-0)
+  (operation encryption-test (added-strand resp 2)
+    (enc "dh" gy gx dhkey) (0 1))
+  (traces
+    ((send (enc gx a (pubk b)))
+      (recv (enc gy (enc "dh" gy gx dhkey) gz b (pubk a)))
+      (send (enc (enc "dh" gz gx dhkey) (pubk b))))
+    ((recv (enc gx a-0 (pubk b-0)))
+      (send (enc gy (enc "dh" gy gx dhkey) gz-0 b-0 (pubk a-0)))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhnsl
+  (vars (dhkey skey) (gx gy gz gz-0 akey) (a b name))
+  (defstrand init 3 (dhkey dhkey) (h2 gy) (h3 gz) (gx gx) (a a) (b b))
+  (defstrand resp 2 (dhkey dhkey) (h1 gx) (gy gy) (gz gz-0) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig dhkey (invk gx) (invk gy) (invk gz-0) (privk a) (privk b))
+  (uniq-orig gx gy gz-0)
+  (operation nonce-test (contracted (b-0 b) (a-0 a)) gx (1 0)
+    (enc gx a (pubk b)))
+  (traces
+    ((send (enc gx a (pubk b)))
+      (recv (enc gy (enc "dh" gy gx dhkey) gz b (pubk a)))
+      (send (enc (enc "dh" gz gx dhkey) (pubk b))))
+    ((recv (enc gx a (pubk b)))
+      (send (enc gy (enc "dh" gy gx dhkey) gz-0 b (pubk a)))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhnsl
+  (vars (dhkey dhkey-0 skey) (gx gy gz gz-0 gy-0 gz-1 akey)
+    (a b b-0 a-0 name))
+  (defstrand init 3 (dhkey dhkey) (h2 gy) (h3 gz) (gx gx) (a a) (b b))
+  (defstrand resp 2 (dhkey dhkey) (h1 gx) (gy gy) (gz gz-0) (b b-0)
+    (a a-0))
+  (defstrand resp 2 (dhkey dhkey-0) (h1 gx) (gy gy-0) (gz gz-1) (b b)
+    (a a))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig dhkey dhkey-0 (invk gx) (invk gy) (invk gz-0) (invk gy-0)
+    (invk gz-1) (privk a) (privk b))
+  (uniq-orig gx gy gz-0 gy-0 gz-1)
+  (operation nonce-test (added-strand resp 2) gx (1 0)
+    (enc gx a (pubk b)))
+  (traces
+    ((send (enc gx a (pubk b)))
+      (recv (enc gy (enc "dh" gy gx dhkey) gz b (pubk a)))
+      (send (enc (enc "dh" gz gx dhkey) (pubk b))))
+    ((recv (enc gx a-0 (pubk b-0)))
+      (send (enc gy (enc "dh" gy gx dhkey) gz-0 b-0 (pubk a-0))))
+    ((recv (enc gx a (pubk b)))
+      (send (enc gy-0 (enc "dh" gy-0 gx dhkey-0) gz-1 b (pubk a)))))
+  (label 3)
+  (parent 1)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhnsl
+  (vars (dhkey skey) (gx gy gz akey) (a b name))
+  (defstrand init 3 (dhkey dhkey) (h2 gy) (h3 gz) (gx gx) (a a) (b b))
+  (defstrand resp 2 (dhkey dhkey) (h1 gx) (gy gy) (gz gz) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig dhkey (invk gx) (invk gy) (invk gz) (privk a) (privk b))
+  (uniq-orig gx gy gz)
+  (operation encryption-test (contracted (gz-0 gz))
+    (enc "dh" gy gx dhkey) (0 1)
+    (enc gy (enc "dh" gy gx dhkey) gz b (pubk a)))
+  (traces
+    ((send (enc gx a (pubk b)))
+      (recv (enc gy (enc "dh" gy gx dhkey) gz b (pubk a)))
+      (send (enc (enc "dh" gz gx dhkey) (pubk b))))
+    ((recv (enc gx a (pubk b)))
+      (send (enc gy (enc "dh" gy gx dhkey) gz b (pubk a)))))
+  (label 4)
+  (parent 2)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (gx gx) (gy gy) (gz gz) (dhkey dhkey))))
+  (origs (gy (1 1)) (gz (1 1)) (gx (0 0))))
+
+(defskeleton dhnsl
+  (vars (dhkey dhkey-0 skey) (gx gy gz gz-0 gy-0 gz-1 akey) (a b name))
+  (defstrand init 3 (dhkey dhkey) (h2 gy) (h3 gz) (gx gx) (a a) (b b))
+  (defstrand resp 2 (dhkey dhkey) (h1 gx) (gy gy) (gz gz-0) (b b) (a a))
+  (defstrand resp 2 (dhkey dhkey-0) (h1 gx) (gy gy-0) (gz gz-1) (b b)
+    (a a))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig dhkey dhkey-0 (invk gx) (invk gy) (invk gz-0) (invk gy-0)
+    (invk gz-1) (privk a) (privk b))
+  (uniq-orig gx gy gz-0 gy-0 gz-1)
+  (operation nonce-test (contracted (b-0 b) (a-0 a)) gx (1 0)
+    (enc gx a (pubk b))
+    (enc gy-0 (enc "dh" gy-0 gx dhkey-0) gz-1 b (pubk a)))
+  (traces
+    ((send (enc gx a (pubk b)))
+      (recv (enc gy (enc "dh" gy gx dhkey) gz b (pubk a)))
+      (send (enc (enc "dh" gz gx dhkey) (pubk b))))
+    ((recv (enc gx a (pubk b)))
+      (send (enc gy (enc "dh" gy gx dhkey) gz-0 b (pubk a))))
+    ((recv (enc gx a (pubk b)))
+      (send (enc gy-0 (enc "dh" gy-0 gx dhkey-0) gz-1 b (pubk a)))))
+  (label 5)
+  (parent 3)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhnsl
+  (vars (dhkey dhkey-0 skey) (gx gy gz gy-0 gz-0 akey) (a b name))
+  (defstrand init 3 (dhkey dhkey) (h2 gy) (h3 gz) (gx gx) (a a) (b b))
+  (defstrand resp 2 (dhkey dhkey) (h1 gx) (gy gy) (gz gz) (b b) (a a))
+  (defstrand resp 2 (dhkey dhkey-0) (h1 gx) (gy gy-0) (gz gz-0) (b b)
+    (a a))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig dhkey dhkey-0 (invk gx) (invk gy) (invk gz) (invk gy-0)
+    (invk gz-0) (privk a) (privk b))
+  (uniq-orig gx gy gz gy-0 gz-0)
+  (operation encryption-test (contracted (gz-1 gz))
+    (enc "dh" gy gx dhkey) (0 1)
+    (enc gy (enc "dh" gy gx dhkey) gz b (pubk a)))
+  (traces
+    ((send (enc gx a (pubk b)))
+      (recv (enc gy (enc "dh" gy gx dhkey) gz b (pubk a)))
+      (send (enc (enc "dh" gz gx dhkey) (pubk b))))
+    ((recv (enc gx a (pubk b)))
+      (send (enc gy (enc "dh" gy gx dhkey) gz b (pubk a))))
+    ((recv (enc gx a (pubk b)))
+      (send (enc gy-0 (enc "dh" gy-0 gx dhkey-0) gz-0 b (pubk a)))))
+  (label 6)
+  (parent 5)
+  (seen 4)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol dhnsl basic
+  (defrole init
+    (vars (a b name) (h2 h3 gx akey) (dhkey skey))
+    (trace (send (enc gx a (pubk b)))
+      (recv (enc h2 (enc "dh" h2 gx dhkey) h3 b (pubk a)))
+      (send (enc (enc "dh" h3 gx dhkey) (pubk b))))
+    (non-orig dhkey (invk gx))
+    (uniq-orig gx)
+    (comment "X should be assumed to be freshly chosen per role"))
+  (defrole resp
+    (vars (b a name) (h1 gy gz akey) (dhkey skey))
+    (trace (recv (enc h1 a (pubk b)))
+      (send (enc gy (enc "dh" gy h1 dhkey) gz b (pubk a)))
+      (recv (enc (enc "dh" gz h1 dhkey) (pubk b))))
+    (non-orig dhkey (invk gy) (invk gz))
+    (uniq-orig gy gz)
+    (comment "Y and Z should be assumed to be freshly chosen per role"))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment
+    "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))
+
+(defskeleton dhnsl
+  (vars (dhkey skey) (gx gy gz akey) (a b name))
+  (defstrand resp 3 (dhkey dhkey) (h1 gx) (gy gy) (gz gz) (b b) (a a))
+  (non-orig dhkey (invk gy) (invk gz) (privk a))
+  (uniq-orig gy gz)
+  (comment "Responder point-of-view")
+  (traces
+    ((recv (enc gx a (pubk b)))
+      (send (enc gy (enc "dh" gy gx dhkey) gz b (pubk a)))
+      (recv (enc (enc "dh" gz gx dhkey) (pubk b)))))
+  (label 7)
+  (unrealized (0 2))
+  (origs (gz (0 1)) (gy (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhnsl
+  (vars (dhkey skey) (gx gy gz h2 akey) (a b a-0 b-0 name))
+  (defstrand resp 3 (dhkey dhkey) (h1 gx) (gy gy) (gz gz) (b b) (a a))
+  (defstrand init 3 (dhkey dhkey) (h2 h2) (h3 gz) (gx gx) (a a-0)
+    (b b-0))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig dhkey (invk gx) (invk gy) (invk gz) (privk a))
+  (uniq-orig gx gy gz)
+  (operation encryption-test (added-strand init 3)
+    (enc "dh" gz gx dhkey) (0 2))
+  (traces
+    ((recv (enc gx a (pubk b)))
+      (send (enc gy (enc "dh" gy gx dhkey) gz b (pubk a)))
+      (recv (enc (enc "dh" gz gx dhkey) (pubk b))))
+    ((send (enc gx a-0 (pubk b-0)))
+      (recv (enc h2 (enc "dh" h2 gx dhkey) gz b-0 (pubk a-0)))
+      (send (enc (enc "dh" gz gx dhkey) (pubk b-0)))))
+  (label 8)
+  (parent 7)
+  (unrealized (1 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhnsl
+  (vars (dhkey skey) (gx gy akey) (a b name))
+  (defstrand resp 3 (dhkey dhkey) (h1 gx) (gy gy) (gz gy) (b b) (a a))
+  (non-orig dhkey (invk gy) (privk a))
+  (uniq-orig gy)
+  (operation encryption-test (displaced 1 0 resp 2)
+    (enc "dh" gz gx dhkey) (0 2))
+  (traces
+    ((recv (enc gx a (pubk b)))
+      (send (enc gy (enc "dh" gy gx dhkey) gy b (pubk a)))
+      (recv (enc (enc "dh" gy gx dhkey) (pubk b)))))
+  (label 9)
+  (parent 7)
+  (unrealized (0 2))
+  (origs (gy (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhnsl
+  (vars (dhkey skey) (gx gy gz akey) (a b a-0 b-0 name))
+  (defstrand resp 3 (dhkey dhkey) (h1 gx) (gy gy) (gz gz) (b b) (a a))
+  (defstrand init 3 (dhkey dhkey) (h2 gy) (h3 gz) (gx gx) (a a-0)
+    (b b-0))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig dhkey (invk gx) (invk gy) (invk gz) (privk a))
+  (uniq-orig gx gy gz)
+  (operation encryption-test (displaced 2 0 resp 2)
+    (enc "dh" h2 gx dhkey) (1 1))
+  (traces
+    ((recv (enc gx a (pubk b)))
+      (send (enc gy (enc "dh" gy gx dhkey) gz b (pubk a)))
+      (recv (enc (enc "dh" gz gx dhkey) (pubk b))))
+    ((send (enc gx a-0 (pubk b-0)))
+      (recv (enc gy (enc "dh" gy gx dhkey) gz b-0 (pubk a-0)))
+      (send (enc (enc "dh" gz gx dhkey) (pubk b-0)))))
+  (label 10)
+  (parent 8)
+  (unrealized (1 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhnsl
+  (vars (dhkey skey) (gx gy gz h2 gz-0 akey) (a b a-0 b-0 b-1 a-1 name))
+  (defstrand resp 3 (dhkey dhkey) (h1 gx) (gy gy) (gz gz) (b b) (a a))
+  (defstrand init 3 (dhkey dhkey) (h2 h2) (h3 gz) (gx gx) (a a-0)
+    (b b-0))
+  (defstrand resp 2 (dhkey dhkey) (h1 gx) (gy h2) (gz gz-0) (b b-1)
+    (a a-1))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 2) (0 2))
+    ((2 1) (1 1)))
+  (non-orig dhkey (invk gx) (invk gy) (invk gz) (invk h2) (invk gz-0)
+    (privk a))
+  (uniq-orig gx gy gz h2 gz-0)
+  (operation encryption-test (added-strand resp 2)
+    (enc "dh" h2 gx dhkey) (1 1))
+  (traces
+    ((recv (enc gx a (pubk b)))
+      (send (enc gy (enc "dh" gy gx dhkey) gz b (pubk a)))
+      (recv (enc (enc "dh" gz gx dhkey) (pubk b))))
+    ((send (enc gx a-0 (pubk b-0)))
+      (recv (enc h2 (enc "dh" h2 gx dhkey) gz b-0 (pubk a-0)))
+      (send (enc (enc "dh" gz gx dhkey) (pubk b-0))))
+    ((recv (enc gx a-1 (pubk b-1)))
+      (send (enc h2 (enc "dh" h2 gx dhkey) gz-0 b-1 (pubk a-1)))))
+  (label 11)
+  (parent 8)
+  (unrealized (1 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhnsl
+  (vars (dhkey skey) (gx gy h2 akey) (a b a-0 b-0 name))
+  (defstrand resp 3 (dhkey dhkey) (h1 gx) (gy gy) (gz gy) (b b) (a a))
+  (defstrand init 3 (dhkey dhkey) (h2 h2) (h3 gy) (gx gx) (a a-0)
+    (b b-0))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig dhkey (invk gx) (invk gy) (privk a))
+  (uniq-orig gx gy)
+  (operation encryption-test (added-strand init 3)
+    (enc "dh" gy gx dhkey) (0 2)
+    (enc gy (enc "dh" gy gx dhkey) gy b (pubk a)))
+  (traces
+    ((recv (enc gx a (pubk b)))
+      (send (enc gy (enc "dh" gy gx dhkey) gy b (pubk a)))
+      (recv (enc (enc "dh" gy gx dhkey) (pubk b))))
+    ((send (enc gx a-0 (pubk b-0)))
+      (recv (enc h2 (enc "dh" h2 gx dhkey) gy b-0 (pubk a-0)))
+      (send (enc (enc "dh" gy gx dhkey) (pubk b-0)))))
+  (label 12)
+  (parent 9)
+  (unrealized (1 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhnsl
+  (vars (dhkey skey) (gx gy gz akey) (a b name))
+  (defstrand resp 3 (dhkey dhkey) (h1 gx) (gy gy) (gz gz) (b b) (a a))
+  (defstrand init 3 (dhkey dhkey) (h2 gy) (h3 gz) (gx gx) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig dhkey (invk gx) (invk gy) (invk gz) (privk a))
+  (uniq-orig gx gy gz)
+  (operation encryption-test (contracted (a-0 a) (b-0 b))
+    (enc "dh" gy gx dhkey) (1 1)
+    (enc gy (enc "dh" gy gx dhkey) gz b (pubk a)))
+  (traces
+    ((recv (enc gx a (pubk b)))
+      (send (enc gy (enc "dh" gy gx dhkey) gz b (pubk a)))
+      (recv (enc (enc "dh" gz gx dhkey) (pubk b))))
+    ((send (enc gx a (pubk b)))
+      (recv (enc gy (enc "dh" gy gx dhkey) gz b (pubk a)))
+      (send (enc (enc "dh" gz gx dhkey) (pubk b)))))
+  (label 13)
+  (parent 10)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (gx gx) (gy gy) (gz gz) (dhkey dhkey))))
+  (origs (gy (0 1)) (gz (0 1)) (gx (1 0))))
+
+(defskeleton dhnsl
+  (vars (dhkey skey) (gx gy akey) (a b a-0 b-0 name))
+  (defstrand resp 3 (dhkey dhkey) (h1 gx) (gy gy) (gz gy) (b b) (a a))
+  (defstrand init 3 (dhkey dhkey) (h2 gy) (h3 gy) (gx gx) (a a-0)
+    (b b-0))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig dhkey (invk gx) (invk gy) (privk a))
+  (uniq-orig gx gy)
+  (operation encryption-test (displaced 2 0 resp 2)
+    (enc "dh" h2 gx dhkey) (1 1))
+  (traces
+    ((recv (enc gx a (pubk b)))
+      (send (enc gy (enc "dh" gy gx dhkey) gy b (pubk a)))
+      (recv (enc (enc "dh" gy gx dhkey) (pubk b))))
+    ((send (enc gx a-0 (pubk b-0)))
+      (recv (enc gy (enc "dh" gy gx dhkey) gy b-0 (pubk a-0)))
+      (send (enc (enc "dh" gy gx dhkey) (pubk b-0)))))
+  (label 14)
+  (parent 12)
+  (unrealized (1 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhnsl
+  (vars (dhkey skey) (gx gy h2 gz akey) (a b a-0 b-0 b-1 a-1 name))
+  (defstrand resp 3 (dhkey dhkey) (h1 gx) (gy gy) (gz gy) (b b) (a a))
+  (defstrand init 3 (dhkey dhkey) (h2 h2) (h3 gy) (gx gx) (a a-0)
+    (b b-0))
+  (defstrand resp 2 (dhkey dhkey) (h1 gx) (gy h2) (gz gz) (b b-1)
+    (a a-1))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 2) (0 2))
+    ((2 1) (1 1)))
+  (non-orig dhkey (invk gx) (invk gy) (invk h2) (invk gz) (privk a))
+  (uniq-orig gx gy h2 gz)
+  (operation encryption-test (added-strand resp 2)
+    (enc "dh" h2 gx dhkey) (1 1))
+  (traces
+    ((recv (enc gx a (pubk b)))
+      (send (enc gy (enc "dh" gy gx dhkey) gy b (pubk a)))
+      (recv (enc (enc "dh" gy gx dhkey) (pubk b))))
+    ((send (enc gx a-0 (pubk b-0)))
+      (recv (enc h2 (enc "dh" h2 gx dhkey) gy b-0 (pubk a-0)))
+      (send (enc (enc "dh" gy gx dhkey) (pubk b-0))))
+    ((recv (enc gx a-1 (pubk b-1)))
+      (send (enc h2 (enc "dh" h2 gx dhkey) gz b-1 (pubk a-1)))))
+  (label 15)
+  (parent 12)
+  (unrealized (1 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhnsl
+  (vars (dhkey skey) (gx gy akey) (a b name))
+  (defstrand resp 3 (dhkey dhkey) (h1 gx) (gy gy) (gz gy) (b b) (a a))
+  (defstrand init 3 (dhkey dhkey) (h2 gy) (h3 gy) (gx gx) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig dhkey (invk gx) (invk gy) (privk a))
+  (uniq-orig gx gy)
+  (operation encryption-test (contracted (a-0 a) (b-0 b))
+    (enc "dh" gy gx dhkey) (1 1)
+    (enc gy (enc "dh" gy gx dhkey) gy b (pubk a)))
+  (traces
+    ((recv (enc gx a (pubk b)))
+      (send (enc gy (enc "dh" gy gx dhkey) gy b (pubk a)))
+      (recv (enc (enc "dh" gy gx dhkey) (pubk b))))
+    ((send (enc gx a (pubk b)))
+      (recv (enc gy (enc "dh" gy gx dhkey) gy b (pubk a)))
+      (send (enc (enc "dh" gy gx dhkey) (pubk b)))))
+  (label 16)
+  (parent 14)
+  (seen 13)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/tst/dhnsl_use.scm b/tst/dhnsl_use.scm
deleted file mode 100644
--- a/tst/dhnsl_use.scm
+++ /dev/null
@@ -1,91 +0,0 @@
-(herald "Diffie-Hellman enhanced Needham-Schroeder-Lowe Protocol"
-  ;(limit 4)
-  (algebra diffie-hellman))
-
-(defprotocol dhnsl diffie-hellman
-  (defrole resp
-    (vars (b a name) (x expt) (y rndx) (n text))
-    (trace
-     (recv (enc (exp (gen) x) a (pubk b)))
-     (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-     (recv (enc (exp (gen) y) (pubk b)))
-     (send (enc n (exp (gen) (mul x y))))
-     (recv n)
-    )
-     (uniq-orig n)
-    (uniq-gen y)
-    (comment "Y should be assumed to be freshly chosen per role")
-  )
-  (defrole init
-    (vars (a b name) (y expt) (x rndx) (n text))
-    (trace
-     (send (enc (exp (gen) x) a (pubk b)))
-     (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-     (send (enc (exp (gen) y) (pubk b)))
-     (recv (enc n (exp (gen) (mul x y))))
-     (send n)
-    )
-    (uniq-gen x)
-    (comment "X should be assumed to be freshly chosen per role")
-  )
-  (comment "Needham-Schroeder-Lowe DH challenge/responses in place of nonces")
-)
-
-;;; The initiator point-of-view
-(defskeleton dhnsl
-  (vars (a b name) (y expt) (x rndx))
-  (defstrand init 5 (a a) (b b) (y y) (x x))
-  (non-orig (privk b) (privk a))
-  (comment "Initiator point-of-view"))
-
-;; The responder point-of-view
-(defskeleton dhnsl
-  (vars (a b name) (x expt) (y rndx))
-  (defstrand resp 5 (a a) (b b) (x x) (y y))
-  (non-orig (privk a) (privk b))
-  (comment "Responder point-of-view"))
-
-(defprotocol dhns diffie-hellman
-  (defrole resp
-    (vars (b a name) (x expt) (y rndx) (n text))
-    (trace
-     (recv (enc (exp (gen) x) a (pubk b)))
-     (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-     (recv (enc (exp (gen) y) (pubk b)))
-     (send (enc n (exp (gen) (mul x y))))
-     (recv n)
-    )
-     (uniq-orig n)
-    (uniq-gen y)
-    (comment "Y should be assumed to be freshly chosen per role")
-  )
-  (defrole init
-    (vars (a b name) (y expt) (x rndx) (n text))
-    (trace
-     (send (enc (exp (gen) x) a (pubk b)))
-     (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-     (send (enc (exp (gen) y) (pubk b)))
-     (recv (enc n (exp (gen) (mul y x))))
-     (send n)
-    )
-    (uniq-gen x)
-    (comment "X should be assumed to be freshly chosen per role")
-  )
-  (comment "Needham-Schroeder-Lowe DH challenge/responses in place of nonces")
-)
-
-;;; The initiator point-of-view
-(defskeleton dhns
-  (vars (a b name) (y expt) (x rndx))
-  (defstrand init 5 (a a) (b b) (y y) (x x))
-  (non-orig (privk b) (privk a))
-;  (uniq-gen x)
-  (comment "Initiator point-of-view"))
-
-;; The responder point-of-view
-(defskeleton dhns
-  (vars (a b name) (x expt) (y z rndx))
-  (defstrand resp 5 (a a) (b b) (x x) (y y))
-  (non-orig (privk a) (privk b))
-;  (uniq-gen y)
-  (comment "Responder point-of-view"))
diff --git a/tst/dhnsl_use.tst b/tst/dhnsl_use.tst
deleted file mode 100644
--- a/tst/dhnsl_use.tst
+++ /dev/null
@@ -1,2843 +0,0 @@
-(herald "Diffie-Hellman enhanced Needham-Schroeder-Lowe Protocol"
-  (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/dhnsl_use.scm")
-
-(defprotocol dhnsl diffie-hellman
-  (defrole resp
-    (vars (b a name) (x expt) (y rndx) (n text))
-    (trace (recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))) (recv n))
-    (uniq-orig n)
-    (uniq-gen y)
-    (absent (y (exp (gen) x)))
-    (comment "Y should be assumed to be freshly chosen per role"))
-  (defrole init
-    (vars (a b name) (y expt) (x rndx) (n text))
-    (trace (send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    (uniq-gen x)
-    (comment "X should be assumed to be freshly chosen per role"))
-  (comment
-    "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (y expt) (x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (comment "Initiator point-of-view")
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n)))
-  (label 0)
-  (unrealized (0 1) (0 3))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (y expt) (y-0 x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y-0 x)
-  (operation nonce-test (added-strand resp 2) (exp (gen) x) (0 1)
-    (enc (exp (gen) x) a (pubk b)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a)))))
-  (label 1)
-  (parent 0)
-  (unrealized (0 1) (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (y expt) (x rndx) (w expt))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (deflistener (cat (exp (gen) (mul x (rec w))) w))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (precur (1 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)
-    (0 1) (enc (exp (gen) x) a (pubk b)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (cat (exp (gen) (mul x (rec w))) w))
-      (send (cat (exp (gen) (mul x (rec w))) w))))
-  (label 2)
-  (parent 0)
-  (unrealized (1 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation nonce-test (contracted (y-0 y) (y-1 y)) (exp (gen) x) (0 1)
-    (enc (exp (gen) x) a (pubk b))
-    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul x y)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))))
-  (label 3)
-  (parent 1)
-  (unrealized (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (y expt) (y-0 x rndx) (w expt))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (deflistener (cat (exp (gen) (mul x (rec w))) w))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y-0 x)
-  (precur (2 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)
-    (0 1) (enc (exp (gen) x) a (pubk b))
-    (enc (exp (gen) x) (exp (gen) y-0) b (pubk a)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))
-    ((recv (cat (exp (gen) (mul x (rec w))) w))
-      (send (cat (exp (gen) (mul x (rec w))) w))))
-  (label 4)
-  (parent 1)
-  (unrealized (2 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (y expt) (x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (deflistener (cat (gen) x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (precur (1 0))
-  (operation nonce-test (contracted (x-0 x) (w x)) (gen) (1 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (cat (gen) x)) (send (cat (gen) x))))
-  (label 5)
-  (parent 2)
-  (unrealized (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b b-0 a-0 name) (y x expt) (x-0 y-0 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x-0))
-  (deflistener (cat (exp (gen) y-0) (mul x-0 (rec y-0))))
-  (defstrand resp 2 (b b-0) (a a-0) (x x) (y y-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (1 0)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen x-0 y-0)
-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))
-  (traces
-    ((send (enc (exp (gen) x-0) a (pubk b)))
-      (recv (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x-0)))) (send n))
-    ((recv (cat (exp (gen) y-0) (mul x-0 (rec y-0))))
-      (send (cat (exp (gen) y-0) (mul x-0 (rec y-0)))))
-    ((recv (enc (exp (gen) x) a-0 (pubk b-0)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b-0 (pubk a-0)))))
-  (label 6)
-  (parent 2)
-  (unrealized (0 1) (0 3) (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (y expt) (x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (deflistener (cat (exp (gen) x) (one)))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen x)
-  (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))
-  (label 7)
-  (parent 2)
-  (unrealized (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b a-0 b-0 name) (y expt) (x x-0 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
-  (defstrand init 1 (a a-0) (b b-0) (x x-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 0) (1 0)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen x x-0)
-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
-      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))
-  (label 8)
-  (parent 2)
-  (unrealized (0 1) (0 3) (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (b a name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 3) (0 3)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (uniq-gen x y)
-  (uniq-orig n)
-  (operation encryption-test (displaced 1 2 resp 4)
-    (enc n (exp (gen) (mul x y-0))) (0 3))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul x y)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y))))))
-  (label 9)
-  (parent 3)
-  (unrealized (1 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 3)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation encryption-test (added-listener (exp (gen) (mul x y)))
-    (enc n (exp (gen) (mul x y))) (0 3))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul x y)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))
-  (label 10)
-  (parent 3)
-  (unrealized (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (y expt) (y-0 x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (deflistener (cat (gen) x))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y-0 x)
-  (precur (2 0))
-  (operation nonce-test (contracted (x-0 x) (w x)) (gen) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))
-    ((recv (cat (gen) x)) (send (cat (gen) x))))
-  (label 11)
-  (parent 4)
-  (unrealized (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (y expt) (x y-0 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (deflistener (cat (exp (gen) y-0) (mul x (rec y-0))))
-  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (2 0))
-  (uniq-gen x y-0)
-  (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-1) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))
-    ((recv (cat (exp (gen) y-0) (mul x (rec y-0))))
-      (send (cat (exp (gen) y-0) (mul x (rec y-0))))))
-  (label 12)
-  (parent 4)
-  (unrealized (0 1) (0 3) (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b b-0 a-0 name) (y expt) (y-0 rndx) (x expt)
-    (x-0 y-1 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x-0))
-  (defstrand resp 2 (b b) (a a) (x x-0) (y y-0))
-  (deflistener (cat (exp (gen) y-1) (mul x-0 (rec y-1))))
-  (defstrand resp 2 (b b-0) (a a-0) (x x) (y y-1))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))
-    ((3 1) (2 0)))
-  (absent (y-1 (exp (gen) x)) (y-0 (exp (gen) x-0)))
-  (non-orig (privk a) (privk b))
-  (precur (2 0))
-  (uniq-gen y-0 x-0 y-1)
-  (operation nonce-test (added-strand resp 2) (exp (gen) y-1) (2 0))
-  (traces
-    ((send (enc (exp (gen) x-0) a (pubk b)))
-      (recv (enc (exp (gen) x-0) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x-0)))) (send n))
-    ((recv (enc (exp (gen) x-0) a (pubk b)))
-      (send (enc (exp (gen) x-0) (exp (gen) y-0) b (pubk a))))
-    ((recv (cat (exp (gen) y-1) (mul x-0 (rec y-1))))
-      (send (cat (exp (gen) y-1) (mul x-0 (rec y-1)))))
-    ((recv (enc (exp (gen) x) a-0 (pubk b-0)))
-      (send (enc (exp (gen) x) (exp (gen) y-1) b-0 (pubk a-0)))))
-  (label 13)
-  (parent 4)
-  (unrealized (0 1) (0 3) (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (y expt) (y-0 x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (deflistener (cat (exp (gen) x) (one)))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (2 0))
-  (uniq-gen y-0 x)
-  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))
-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))
-  (label 14)
-  (parent 4)
-  (seen 16)
-  (unrealized (2 0))
-  (comment "2 in cohort - 1 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b a-0 b-0 name) (y expt) (y-0 x x-0 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
-  (defstrand init 1 (a a-0) (b b-0) (x x-0))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))
-    ((3 0) (2 0)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (2 0))
-  (uniq-gen y-0 x x-0)
-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))
-    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
-      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))
-  (label 15)
-  (parent 4)
-  (unrealized (0 1) (0 3) (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (y expt) (y-0 x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (deflistener (cat (exp (gen) x) (one)))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen y-0 x)
-  (operation nonce-test (added-strand resp 2) (exp (gen) x) (1 0)
-    (enc (exp (gen) x) a (pubk b)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a)))))
-  (label 16)
-  (parent 7)
-  (unrealized (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (b a name) (y x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))
-  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (displaced 2 0 init 3) (exp (gen) y) (1 2)
-    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x))))))
-  (label 17)
-  (parent 9)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (y y) (x x) (n n))))
-  (origs (n (1 3))))
-
-(defskeleton dhnsl
-  (vars (n text) (b a name) (x y rndx) (w expt))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) (mul y (rec w))) w))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (uniq-gen x y)
-  (uniq-orig n)
-  (precur (2 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y (rec w))) w)) (exp (gen) y)
-    (1 2) (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul x y)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) (mul y (rec w))) w))
-      (send (cat (exp (gen) (mul y (rec w))) w))))
-  (label 18)
-  (parent 9)
-  (unrealized (2 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (deflistener (cat (exp (gen) x) y))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))
-    ((3 1) (2 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation nonce-test (added-listener (cat (exp (gen) x) y))
-    (exp (gen) (mul x y)) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul x y)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
-  (label 19)
-  (parent 10)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (deflistener (cat (exp (gen) y) x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))
-    ((3 1) (2 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation nonce-test (added-listener (cat (exp (gen) y) x))
-    (exp (gen) (mul x y)) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul x y)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a))))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
-  (label 20)
-  (parent 10)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (y expt) (y-0 y-1 x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (deflistener (cat (exp (gen) x) (one)))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-1))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
-    ((3 1) (2 0)))
-  (absent (y-1 (exp (gen) x)) (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (2 0))
-  (uniq-gen y-0 y-1 x)
-  (operation nonce-test (added-strand resp 2) (exp (gen) x) (2 0)
-    (enc (exp (gen) x) a (pubk b)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a))))
-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-1) b (pubk a)))))
-  (label 21)
-  (parent 14)
-  (seen 16)
-  (unrealized (2 0))
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (n text) (b a name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (gen) y))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (uniq-gen x y)
-  (uniq-orig n)
-  (precur (2 0))
-  (operation nonce-test (contracted (y-0 y) (w y)) (gen) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul x y)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))))
-    ((recv (cat (gen) y)) (send (cat (gen) y))))
-  (label 22)
-  (parent 18)
-  (unrealized (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (b a name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y) (one)))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (precur (2 0))
-  (uniq-gen x y)
-  (uniq-orig n)
-  (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-0) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul x y)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))
-  (label 23)
-  (parent 18)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (n text) (b a b-0 a-0 name) (x rndx) (x-0 expt) (y y-0 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y-0) (mul y (rec y-0))))
-  (defstrand resp 2 (b b-0) (a a-0) (x x-0) (y y-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 2)) ((3 1) (2 0)))
-  (absent (y-0 (exp (gen) x-0)) (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (precur (2 0))
-  (uniq-gen x y y-0)
-  (uniq-orig n)
-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul x y)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) y-0) (mul y (rec y-0))))
-      (send (cat (exp (gen) y-0) (mul y (rec y-0)))))
-    ((recv (enc (exp (gen) x-0) a-0 (pubk b-0)))
-      (send (enc (exp (gen) x-0) (exp (gen) y-0) b-0 (pubk a-0)))))
-  (label 24)
-  (parent 18)
-  (unrealized (1 2) (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (b a name) (y x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) x) (mul y (rec x))))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (precur (2 0))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))))
-    ((recv (cat (exp (gen) x) (mul y (rec x))))
-      (send (cat (exp (gen) x) (mul y (rec x))))))
-  (label 25)
-  (parent 18)
-  (unrealized (1 2) (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (n text) (b a a-0 b-0 name) (x y x-0 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) x-0) (mul y (rec x-0))))
-  (defstrand init 1 (a a-0) (b b-0) (x x-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 2)) ((3 0) (2 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (precur (2 0))
-  (uniq-gen x y x-0)
-  (uniq-orig n)
-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul x y)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) x-0) (mul y (rec x-0))))
-      (send (cat (exp (gen) x-0) (mul y (rec x-0)))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))
-  (label 26)
-  (parent 18)
-  (unrealized (1 2) (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (b a name) (y x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y) (one)))
-  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((1 3) (0 3))
-    ((2 1) (1 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (precur (2 0))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (displaced 3 0 init 3) (exp (gen) y) (2 0)
-    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))
-  (label 27)
-  (parent 23)
-  (unrealized (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (b a name) (y y-0 x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) x) (mul y (rec x))))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((1 1) (2 0))
-    ((1 3) (0 3)) ((2 1) (1 2)) ((3 1) (2 0)))
-  (absent (y-0 (exp (gen) x)) (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (precur (2 0))
-  (uniq-gen y y-0 x)
-  (uniq-orig n)
-  (operation nonce-test (added-strand resp 2) (exp (gen) x) (2 0)
-    (enc (exp (gen) x) a (pubk b))
-    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))))
-    ((recv (cat (exp (gen) x) (mul y (rec x))))
-      (send (cat (exp (gen) x) (mul y (rec x)))))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) b (pubk a)))))
-  (label 28)
-  (parent 25)
-  (unrealized (1 2) (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol dhnsl diffie-hellman
-  (defrole resp
-    (vars (b a name) (x expt) (y rndx) (n text))
-    (trace (recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))) (recv n))
-    (uniq-orig n)
-    (uniq-gen y)
-    (absent (y (exp (gen) x)))
-    (comment "Y should be assumed to be freshly chosen per role"))
-  (defrole init
-    (vars (a b name) (y expt) (x rndx) (n text))
-    (trace (send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    (uniq-gen x)
-    (comment "X should be assumed to be freshly chosen per role"))
-  (comment
-    "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (x expt) (y rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y)
-  (uniq-orig n)
-  (comment "Responder point-of-view")
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))) (recv n)))
-  (label 29)
-  (unrealized (0 2) (0 4))
-  (origs (n (0 3)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (y x rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (added-strand init 3) (exp (gen) y) (0 2)
-    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))))
-  (label 30)
-  (parent 29)
-  (unrealized (0 4))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (x expt) (y rndx) (w expt))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) (mul y (rec w))) w))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y)
-  (uniq-orig n)
-  (precur (1 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y (rec w))) w)) (exp (gen) y)
-    (0 2) (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))) (recv n))
-    ((recv (cat (exp (gen) (mul y (rec w))) w))
-      (send (cat (exp (gen) (mul y (rec w))) w))))
-  (label 31)
-  (parent 29)
-  (unrealized (1 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (y x rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (precedes ((0 1) (1 1)) ((0 3) (1 3)) ((1 0) (0 0)) ((1 2) (0 2))
-    ((1 4) (0 4)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (displaced 1 2 init 5) n (0 4)
-    (enc n (exp (gen) (mul y x-0))))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n)))
-  (label 32)
-  (parent 30)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (x x) (y y) (n n))))
-  (origs (n (0 3))))
-
-(defskeleton dhnsl
-  (vars (n text) (a b a-0 b-0 name) (y x x-0 rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (defstrand init 5 (n n) (a a-0) (b b-0) (y (mul y x (rec x-0)))
-    (x x-0))
-  (precedes ((0 1) (1 1)) ((0 1) (2 1)) ((0 3) (2 3)) ((1 0) (0 0))
-    ((1 2) (0 2)) ((2 4) (0 4)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x x-0)
-  (uniq-orig n)
-  (operation nonce-test (added-strand init 5) n (0 4)
-    (enc n (exp (gen) (mul y x))))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))
-      (recv
-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0))) b-0
-          (pubk a-0)))
-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-0)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n)))
-  (label 33)
-  (parent 30)
-  (unrealized (2 1))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (y x rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (deflistener (exp (gen) (mul y x)))
-  (precedes ((0 1) (1 1)) ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2))
-    ((2 1) (0 4)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (added-listener (exp (gen) (mul y x))) n (0 4)
-    (enc n (exp (gen) (mul y x))))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))
-  (label 34)
-  (parent 30)
-  (unrealized (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (x expt) (y rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (gen) y))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y)
-  (uniq-orig n)
-  (precur (1 0))
-  (operation nonce-test (contracted (y-0 y) (w y)) (gen) (1 0))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))) (recv n))
-    ((recv (cat (gen) y)) (send (cat (gen) y))))
-  (label 35)
-  (parent 31)
-  (unrealized (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (x expt) (y rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y) (one)))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen y)
-  (uniq-orig n)
-  (operation nonce-test (displaced 2 0 resp 2) (exp (gen) y-0) (1 0))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))) (recv n))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))
-  (label 36)
-  (parent 31)
-  (unrealized (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b b-0 a-0 name) (x x-0 expt) (y y-0 rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y-0) (mul y (rec y-0))))
-  (defstrand resp 2 (b b-0) (a a-0) (x x-0) (y y-0))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))
-  (absent (y-0 (exp (gen) x-0)) (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen y y-0)
-  (uniq-orig n)
-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))) (recv n))
-    ((recv (cat (exp (gen) y-0) (mul y (rec y-0))))
-      (send (cat (exp (gen) y-0) (mul y (rec y-0)))))
-    ((recv (enc (exp (gen) x-0) a-0 (pubk b-0)))
-      (send (enc (exp (gen) x-0) (exp (gen) y-0) b-0 (pubk a-0)))))
-  (label 37)
-  (parent 31)
-  (unrealized (0 2) (0 4) (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b a-0 b-0 name) (x expt) (y x-0 rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) x-0) (mul y (rec x-0))))
-  (defstrand init 1 (a a-0) (b b-0) (x x-0))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen y x-0)
-  (uniq-orig n)
-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))) (recv n))
-    ((recv (cat (exp (gen) x-0) (mul y (rec x-0))))
-      (send (cat (exp (gen) x-0) (mul y (rec x-0)))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))
-  (label 38)
-  (parent 31)
-  (unrealized (0 2) (0 4) (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b a-0 b-0 name) (y x x-0 rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (defstrand init 5 (n n) (a a-0) (b b-0) (y (mul y x (rec x-0)))
-    (x x-0))
-  (deflistener (cat (exp (gen) (mul y x)) x-0))
-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))
-    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x x-0)
-  (uniq-orig n)
-  (operation nonce-test (added-listener (cat (exp (gen) (mul y x)) x-0))
-    (exp (gen) (mul y x (rec x-0))) (2 1))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))
-      (recv
-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0))) b-0
-          (pubk a-0)))
-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-0)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (cat (exp (gen) (mul y x)) x-0))
-      (send (cat (exp (gen) (mul y x)) x-0))))
-  (label 39)
-  (parent 33)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b a-0 b-0 name) (y x x-0 rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (defstrand init 5 (n n) (a a-0) (b b-0) (y (mul y x (rec x-0)))
-    (x x-0))
-  (deflistener (cat (exp (gen) (mul y (rec x-0))) x))
-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))
-    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x x-0)
-  (uniq-orig n)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y (rec x-0))) x))
-    (exp (gen) (mul y x (rec x-0))) (2 1))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))
-      (recv
-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0))) b-0
-          (pubk a-0)))
-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-0)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (cat (exp (gen) (mul y (rec x-0))) x))
-      (send (cat (exp (gen) (mul y (rec x-0))) x))))
-  (label 40)
-  (parent 33)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b a-0 b-0 name) (y x x-0 rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (defstrand init 5 (n n) (a a-0) (b b-0) (y (mul y x (rec x-0)))
-    (x x-0))
-  (deflistener (cat (exp (gen) (mul x (rec x-0))) y))
-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))
-    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x x-0)
-  (uniq-orig n)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x (rec x-0))) y))
-    (exp (gen) (mul y x (rec x-0))) (2 1))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))
-      (recv
-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0))) b-0
-          (pubk a-0)))
-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-0)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (cat (exp (gen) (mul x (rec x-0))) y))
-      (send (cat (exp (gen) (mul x (rec x-0))) y))))
-  (label 41)
-  (parent 33)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (y x rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (deflistener (exp (gen) (mul y x)))
-  (deflistener (cat (exp (gen) y) x))
-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))
-    ((2 1) (0 4)) ((3 1) (2 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (added-listener (cat (exp (gen) y) x))
-    (exp (gen) (mul y x)) (2 0))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
-  (label 42)
-  (parent 34)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (y x rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (deflistener (exp (gen) (mul y x)))
-  (deflistener (cat (exp (gen) x) y))
-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))
-    ((2 1) (0 4)) ((3 1) (2 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (added-listener (cat (exp (gen) x) y))
-    (exp (gen) (mul y x)) (2 0))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b))))
-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
-    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
-  (label 43)
-  (parent 34)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhnsl
-  (vars (n text) (a b name) (y x rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y) (one)))
-  (defstrand init 3 (a a) (b b) (y y) (x x))
-  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (1 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (added-strand init 3) (exp (gen) y) (1 0)
-    (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) b (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))))
-  (label 44)
-  (parent 36)
-  (unrealized (0 4) (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol dhns diffie-hellman
-  (defrole resp
-    (vars (b a name) (x expt) (y rndx) (n text))
-    (trace (recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))) (recv n))
-    (uniq-orig n)
-    (uniq-gen y)
-    (absent (y (exp (gen) x)))
-    (comment "Y should be assumed to be freshly chosen per role"))
-  (defrole init
-    (vars (a b name) (y expt) (x rndx) (n text))
-    (trace (send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    (uniq-gen x)
-    (comment "X should be assumed to be freshly chosen per role"))
-  (comment
-    "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))
-
-(defskeleton dhns
-  (vars (n text) (a b name) (y expt) (x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (comment "Initiator point-of-view")
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n)))
-  (label 45)
-  (unrealized (0 1) (0 3))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (a b name) (y expt) (y-0 x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y-0 x)
-  (operation nonce-test (added-strand resp 2) (exp (gen) x) (0 1)
-    (enc (exp (gen) x) a (pubk b)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a)))))
-  (label 46)
-  (parent 45)
-  (unrealized (0 1) (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (a b name) (y expt) (x rndx) (w expt))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (deflistener (cat (exp (gen) (mul x (rec w))) w))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (precur (1 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)
-    (0 1) (enc (exp (gen) x) a (pubk b)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (cat (exp (gen) (mul x (rec w))) w))
-      (send (cat (exp (gen) (mul x (rec w))) w))))
-  (label 47)
-  (parent 45)
-  (unrealized (1 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (a b name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation nonce-test (contracted (y-0 y) (y-1 y)) (exp (gen) x) (0 1)
-    (enc (exp (gen) x) a (pubk b))
-    (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul x y)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))))
-  (label 48)
-  (parent 46)
-  (unrealized (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (a b name) (y expt) (y-0 x rndx) (w expt))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (deflistener (cat (exp (gen) (mul x (rec w))) w))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y-0 x)
-  (precur (2 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)
-    (0 1) (enc (exp (gen) x) a (pubk b))
-    (enc (exp (gen) x) (exp (gen) y-0) (pubk a)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a))))
-    ((recv (cat (exp (gen) (mul x (rec w))) w))
-      (send (cat (exp (gen) (mul x (rec w))) w))))
-  (label 49)
-  (parent 46)
-  (unrealized (2 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (a b name) (y expt) (x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (deflistener (cat (gen) x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (precur (1 0))
-  (operation nonce-test (contracted (x-0 x) (w x)) (gen) (1 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (cat (gen) x)) (send (cat (gen) x))))
-  (label 50)
-  (parent 47)
-  (unrealized (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (a b b-0 a-0 name) (y x expt) (x-0 y-0 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x-0))
-  (deflistener (cat (exp (gen) y-0) (mul x-0 (rec y-0))))
-  (defstrand resp 2 (b b-0) (a a-0) (x x) (y y-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (1 0)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen x-0 y-0)
-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))
-  (traces
-    ((send (enc (exp (gen) x-0) a (pubk b)))
-      (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x-0)))) (send n))
-    ((recv (cat (exp (gen) y-0) (mul x-0 (rec y-0))))
-      (send (cat (exp (gen) y-0) (mul x-0 (rec y-0)))))
-    ((recv (enc (exp (gen) x) a-0 (pubk b-0)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a-0)))))
-  (label 51)
-  (parent 47)
-  (unrealized (0 1) (0 3) (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (a b name) (y expt) (x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (deflistener (cat (exp (gen) x) (one)))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen x)
-  (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))
-  (label 52)
-  (parent 47)
-  (unrealized (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (a b a-0 b-0 name) (y expt) (x x-0 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
-  (defstrand init 1 (a a-0) (b b-0) (x x-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 0) (1 0)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen x x-0)
-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
-      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))
-  (label 53)
-  (parent 47)
-  (unrealized (0 1) (0 3) (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (b a name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 3) (0 3)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (uniq-gen x y)
-  (uniq-orig n)
-  (operation encryption-test (displaced 1 2 resp 4)
-    (enc n (exp (gen) (mul x y-0))) (0 3))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul x y)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y))))))
-  (label 54)
-  (parent 48)
-  (unrealized (1 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (a b name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 3)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation encryption-test (added-listener (exp (gen) (mul x y)))
-    (enc n (exp (gen) (mul x y))) (0 3))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul x y)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))
-  (label 55)
-  (parent 48)
-  (unrealized (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (a b name) (y expt) (y-0 x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (deflistener (cat (gen) x))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y-0 x)
-  (precur (2 0))
-  (operation nonce-test (contracted (x-0 x) (w x)) (gen) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a))))
-    ((recv (cat (gen) x)) (send (cat (gen) x))))
-  (label 56)
-  (parent 49)
-  (unrealized (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (a b name) (y expt) (x y-0 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (deflistener (cat (exp (gen) y-0) (mul x (rec y-0))))
-  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (2 0))
-  (uniq-gen x y-0)
-  (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-1) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a))))
-    ((recv (cat (exp (gen) y-0) (mul x (rec y-0))))
-      (send (cat (exp (gen) y-0) (mul x (rec y-0))))))
-  (label 57)
-  (parent 49)
-  (unrealized (0 1) (0 3) (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (a b b-0 a-0 name) (y expt) (y-0 rndx) (x expt)
-    (x-0 y-1 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x-0))
-  (defstrand resp 2 (b b) (a a) (x x-0) (y y-0))
-  (deflistener (cat (exp (gen) y-1) (mul x-0 (rec y-1))))
-  (defstrand resp 2 (b b-0) (a a-0) (x x) (y y-1))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))
-    ((3 1) (2 0)))
-  (absent (y-1 (exp (gen) x)) (y-0 (exp (gen) x-0)))
-  (non-orig (privk a) (privk b))
-  (precur (2 0))
-  (uniq-gen y-0 x-0 y-1)
-  (operation nonce-test (added-strand resp 2) (exp (gen) y-1) (2 0))
-  (traces
-    ((send (enc (exp (gen) x-0) a (pubk b)))
-      (recv (enc (exp (gen) x-0) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x-0)))) (send n))
-    ((recv (enc (exp (gen) x-0) a (pubk b)))
-      (send (enc (exp (gen) x-0) (exp (gen) y-0) (pubk a))))
-    ((recv (cat (exp (gen) y-1) (mul x-0 (rec y-1))))
-      (send (cat (exp (gen) y-1) (mul x-0 (rec y-1)))))
-    ((recv (enc (exp (gen) x) a-0 (pubk b-0)))
-      (send (enc (exp (gen) x) (exp (gen) y-1) (pubk a-0)))))
-  (label 58)
-  (parent 49)
-  (unrealized (0 1) (0 3) (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (a b name) (y expt) (y-0 x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (deflistener (cat (exp (gen) x) (one)))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (2 0))
-  (uniq-gen y-0 x)
-  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a))))
-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))
-  (label 59)
-  (parent 49)
-  (seen 61)
-  (unrealized (2 0))
-  (comment "2 in cohort - 1 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (a b a-0 b-0 name) (y expt) (y-0 x x-0 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
-  (defstrand init 1 (a a-0) (b b-0) (x x-0))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))
-    ((3 0) (2 0)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (2 0))
-  (uniq-gen y-0 x x-0)
-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a))))
-    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
-      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))
-  (label 60)
-  (parent 49)
-  (unrealized (0 1) (0 3) (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (a b name) (y expt) (y-0 x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (deflistener (cat (exp (gen) x) (one)))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
-  (absent (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen y-0 x)
-  (operation nonce-test (added-strand resp 2) (exp (gen) x) (1 0)
-    (enc (exp (gen) x) a (pubk b)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a)))))
-  (label 61)
-  (parent 52)
-  (unrealized (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (b a name) (y x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))
-  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (displaced 2 0 init 3) (exp (gen) y) (1 2)
-    (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x))))))
-  (label 62)
-  (parent 54)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (y y) (x x) (n n))))
-  (origs (n (1 3))))
-
-(defskeleton dhns
-  (vars (n text) (b a name) (x y rndx) (w expt))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) (mul y (rec w))) w))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (uniq-gen x y)
-  (uniq-orig n)
-  (precur (2 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y (rec w))) w)) (exp (gen) y)
-    (1 2) (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul x y)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) (mul y (rec w))) w))
-      (send (cat (exp (gen) (mul y (rec w))) w))))
-  (label 63)
-  (parent 54)
-  (unrealized (2 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (a b name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (deflistener (cat (exp (gen) x) y))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))
-    ((3 1) (2 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation nonce-test (added-listener (cat (exp (gen) x) y))
-    (exp (gen) (mul x y)) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul x y)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
-  (label 64)
-  (parent 55)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (a b name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (deflistener (cat (exp (gen) y) x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))
-    ((3 1) (2 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation nonce-test (added-listener (cat (exp (gen) y) x))
-    (exp (gen) (mul x y)) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul x y)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a))))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
-  (label 65)
-  (parent 55)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (a b name) (y expt) (y-0 y-1 x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (deflistener (cat (exp (gen) x) (one)))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-1))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
-    ((3 1) (2 0)))
-  (absent (y-1 (exp (gen) x)) (y-0 (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (2 0))
-  (uniq-gen y-0 y-1 x)
-  (operation nonce-test (added-strand resp 2) (exp (gen) x) (2 0)
-    (enc (exp (gen) x) a (pubk b)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a))))
-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one))))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-1) (pubk a)))))
-  (label 66)
-  (parent 59)
-  (seen 61)
-  (unrealized (2 0))
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (b a name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (gen) y))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (uniq-gen x y)
-  (uniq-orig n)
-  (precur (2 0))
-  (operation nonce-test (contracted (y-0 y) (w y)) (gen) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul x y)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))))
-    ((recv (cat (gen) y)) (send (cat (gen) y))))
-  (label 67)
-  (parent 63)
-  (unrealized (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (b a name) (x y rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y) (one)))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (precur (2 0))
-  (uniq-gen x y)
-  (uniq-orig n)
-  (operation nonce-test (displaced 3 1 resp 2) (exp (gen) y-0) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul x y)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))
-  (label 68)
-  (parent 63)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (b a b-0 a-0 name) (x rndx) (x-0 expt) (y y-0 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y-0) (mul y (rec y-0))))
-  (defstrand resp 2 (b b-0) (a a-0) (x x-0) (y y-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 2)) ((3 1) (2 0)))
-  (absent (y-0 (exp (gen) x-0)) (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (precur (2 0))
-  (uniq-gen x y y-0)
-  (uniq-orig n)
-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul x y)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) y-0) (mul y (rec y-0))))
-      (send (cat (exp (gen) y-0) (mul y (rec y-0)))))
-    ((recv (enc (exp (gen) x-0) a-0 (pubk b-0)))
-      (send (enc (exp (gen) x-0) (exp (gen) y-0) (pubk a-0)))))
-  (label 69)
-  (parent 63)
-  (unrealized (1 2) (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (b a name) (y x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) x) (mul y (rec x))))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (precur (2 0))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))))
-    ((recv (cat (exp (gen) x) (mul y (rec x))))
-      (send (cat (exp (gen) x) (mul y (rec x))))))
-  (label 70)
-  (parent 63)
-  (unrealized (1 2) (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (b a a-0 b-0 name) (x y x-0 rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) x-0) (mul y (rec x-0))))
-  (defstrand init 1 (a a-0) (b b-0) (x x-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 2)) ((3 0) (2 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (precur (2 0))
-  (uniq-gen x y x-0)
-  (uniq-orig n)
-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul x y)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))))
-    ((recv (cat (exp (gen) x-0) (mul y (rec x-0))))
-      (send (cat (exp (gen) x-0) (mul y (rec x-0)))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))
-  (label 71)
-  (parent 63)
-  (unrealized (1 2) (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (b a name) (y x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y) (one)))
-  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((1 3) (0 3))
-    ((2 1) (1 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (precur (2 0))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (displaced 3 0 init 3) (exp (gen) y) (2 0)
-    (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))
-  (label 72)
-  (parent 68)
-  (unrealized (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (b a name) (y y-0 x rndx))
-  (defstrand init 5 (n n) (a a) (b b) (y y) (x x))
-  (defstrand resp 4 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) x) (mul y (rec x))))
-  (defstrand resp 2 (b b) (a a) (x x) (y y-0))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((1 1) (2 0))
-    ((1 3) (0 3)) ((2 1) (1 2)) ((3 1) (2 0)))
-  (absent (y-0 (exp (gen) x)) (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (precur (2 0))
-  (uniq-gen y y-0 x)
-  (uniq-orig n)
-  (operation nonce-test (added-strand resp 2) (exp (gen) x) (2 0)
-    (enc (exp (gen) x) a (pubk b))
-    (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-  (traces
-    ((send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))))
-    ((recv (cat (exp (gen) x) (mul y (rec x))))
-      (send (cat (exp (gen) x) (mul y (rec x)))))
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y-0) (pubk a)))))
-  (label 73)
-  (parent 70)
-  (unrealized (1 2) (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol dhns diffie-hellman
-  (defrole resp
-    (vars (b a name) (x expt) (y rndx) (n text))
-    (trace (recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))) (recv n))
-    (uniq-orig n)
-    (uniq-gen y)
-    (absent (y (exp (gen) x)))
-    (comment "Y should be assumed to be freshly chosen per role"))
-  (defrole init
-    (vars (a b name) (y expt) (x rndx) (n text))
-    (trace (send (enc (exp (gen) x) a (pubk b)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    (uniq-gen x)
-    (comment "X should be assumed to be freshly chosen per role"))
-  (comment
-    "Needham-Schroeder-Lowe DH challenge/responses in place of nonces"))
-
-(defskeleton dhns
-  (vars (n text) (a b name) (x expt) (y rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y)
-  (uniq-orig n)
-  (comment "Responder point-of-view")
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))) (recv n)))
-  (label 74)
-  (unrealized (0 2) (0 4))
-  (origs (n (0 3)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (a b b-0 name) (y x rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (defstrand init 3 (a a) (b b-0) (y y) (x x))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (added-strand init 3) (exp (gen) y) (0 2)
-    (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc (exp (gen) x) a (pubk b-0)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b-0)))))
-  (label 75)
-  (parent 74)
-  (unrealized (0 4))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (a b name) (x expt) (y rndx) (w expt))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) (mul y (rec w))) w))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y)
-  (uniq-orig n)
-  (precur (1 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y (rec w))) w)) (exp (gen) y)
-    (0 2) (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))) (recv n))
-    ((recv (cat (exp (gen) (mul y (rec w))) w))
-      (send (cat (exp (gen) (mul y (rec w))) w))))
-  (label 76)
-  (parent 74)
-  (unrealized (1 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (b a b-0 name) (y x rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (defstrand init 5 (n n) (a a) (b b-0) (y y) (x x))
-  (precedes ((0 1) (1 1)) ((0 3) (1 3)) ((1 0) (0 0)) ((1 2) (0 2))
-    ((1 4) (0 4)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (displaced 1 2 init 5) n (0 4)
-    (enc n (exp (gen) (mul y x-0))))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc (exp (gen) x) a (pubk b-0)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b-0)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n)))
-  (label 77)
-  (parent 75)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (x x) (y y) (n n))))
-  (origs (n (0 3))))
-
-(defskeleton dhns
-  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (defstrand init 3 (a a) (b b-0) (y y) (x x))
-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))
-    (x x-0))
-  (precedes ((0 1) (1 1)) ((0 1) (2 1)) ((0 3) (2 3)) ((1 0) (0 0))
-    ((1 2) (0 2)) ((2 4) (0 4)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x x-0)
-  (uniq-orig n)
-  (operation nonce-test (added-strand init 5) n (0 4)
-    (enc n (exp (gen) (mul y x))))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc (exp (gen) x) a (pubk b-0)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b-0))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))
-      (recv
-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))
-          (pubk a-0)))
-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n)))
-  (label 78)
-  (parent 75)
-  (unrealized (2 1))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (a b b-0 name) (y x rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (defstrand init 3 (a a) (b b-0) (y y) (x x))
-  (deflistener (exp (gen) (mul y x)))
-  (precedes ((0 1) (1 1)) ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2))
-    ((2 1) (0 4)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (added-listener (exp (gen) (mul y x))) n (0 4)
-    (enc n (exp (gen) (mul y x))))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc (exp (gen) x) a (pubk b-0)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b-0))))
-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))
-  (label 79)
-  (parent 75)
-  (unrealized (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (a b name) (x expt) (y rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (gen) y))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y)
-  (uniq-orig n)
-  (precur (1 0))
-  (operation nonce-test (contracted (y-0 y) (w y)) (gen) (1 0))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))) (recv n))
-    ((recv (cat (gen) y)) (send (cat (gen) y))))
-  (label 80)
-  (parent 76)
-  (unrealized (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (a b name) (x expt) (y rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y) (one)))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen y)
-  (uniq-orig n)
-  (operation nonce-test (displaced 2 0 resp 2) (exp (gen) y-0) (1 0))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))) (recv n))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one)))))
-  (label 81)
-  (parent 76)
-  (unrealized (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (a b b-0 a-0 name) (x x-0 expt) (y y-0 rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y-0) (mul y (rec y-0))))
-  (defstrand resp 2 (b b-0) (a a-0) (x x-0) (y y-0))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))
-  (absent (y-0 (exp (gen) x-0)) (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen y y-0)
-  (uniq-orig n)
-  (operation nonce-test (added-strand resp 2) (exp (gen) y-0) (1 0))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))) (recv n))
-    ((recv (cat (exp (gen) y-0) (mul y (rec y-0))))
-      (send (cat (exp (gen) y-0) (mul y (rec y-0)))))
-    ((recv (enc (exp (gen) x-0) a-0 (pubk b-0)))
-      (send (enc (exp (gen) x-0) (exp (gen) y-0) (pubk a-0)))))
-  (label 82)
-  (parent 76)
-  (unrealized (0 2) (0 4) (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (a b a-0 b-0 name) (x expt) (y x-0 rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) x-0) (mul y (rec x-0))))
-  (defstrand init 1 (a a-0) (b b-0) (x x-0))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen y x-0)
-  (uniq-orig n)
-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul x y)))) (recv n))
-    ((recv (cat (exp (gen) x-0) (mul y (rec x-0))))
-      (send (cat (exp (gen) x-0) (mul y (rec x-0)))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-0)))))
-  (label 83)
-  (parent 76)
-  (unrealized (0 2) (0 4) (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (defstrand init 3 (a a) (b b-0) (y y) (x x))
-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))
-    (x x-0))
-  (deflistener (cat (exp (gen) (mul y x)) x-0))
-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))
-    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x x-0)
-  (uniq-orig n)
-  (operation nonce-test (added-listener (cat (exp (gen) (mul y x)) x-0))
-    (exp (gen) (mul y x (rec x-0))) (2 1))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc (exp (gen) x) a (pubk b-0)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b-0))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))
-      (recv
-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))
-          (pubk a-0)))
-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (cat (exp (gen) (mul y x)) x-0))
-      (send (cat (exp (gen) (mul y x)) x-0))))
-  (label 84)
-  (parent 78)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (defstrand init 3 (a a) (b b-0) (y y) (x x))
-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))
-    (x x-0))
-  (deflistener (cat (exp (gen) (mul y (rec x-0))) x))
-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))
-    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x x-0)
-  (uniq-orig n)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y (rec x-0))) x))
-    (exp (gen) (mul y x (rec x-0))) (2 1))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc (exp (gen) x) a (pubk b-0)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b-0))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))
-      (recv
-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))
-          (pubk a-0)))
-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (cat (exp (gen) (mul y (rec x-0))) x))
-      (send (cat (exp (gen) (mul y (rec x-0))) x))))
-  (label 85)
-  (parent 78)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (defstrand init 3 (a a) (b b-0) (y y) (x x))
-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))
-    (x x-0))
-  (deflistener (cat (exp (gen) (mul x (rec x-0))) y))
-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((0 3) (2 3)) ((1 0) (0 0))
-    ((1 2) (0 2)) ((2 0) (3 0)) ((2 4) (0 4)) ((3 1) (2 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x x-0)
-  (uniq-orig n)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x (rec x-0))) y))
-    (exp (gen) (mul y x (rec x-0))) (2 1))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc (exp (gen) x) a (pubk b-0)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b-0))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))
-      (recv
-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))
-          (pubk a-0)))
-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (cat (exp (gen) (mul x (rec x-0))) y))
-      (send (cat (exp (gen) (mul x (rec x-0))) y))))
-  (label 86)
-  (parent 78)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (a b b-0 name) (y x rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (defstrand init 3 (a a) (b b-0) (y y) (x x))
-  (deflistener (exp (gen) (mul y x)))
-  (deflistener (cat (exp (gen) y) x))
-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))
-    ((2 1) (0 4)) ((3 1) (2 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (added-listener (cat (exp (gen) y) x))
-    (exp (gen) (mul y x)) (2 0))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc (exp (gen) x) a (pubk b-0)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b-0))))
-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
-  (label 87)
-  (parent 79)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (a b b-0 name) (y x rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (defstrand init 3 (a a) (b b-0) (y y) (x x))
-  (deflistener (exp (gen) (mul y x)))
-  (deflistener (cat (exp (gen) x) y))
-  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2))
-    ((2 1) (0 4)) ((3 1) (2 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (added-listener (cat (exp (gen) x) y))
-    (exp (gen) (mul y x)) (2 0))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc (exp (gen) x) a (pubk b-0)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b-0))))
-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
-    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
-  (label 88)
-  (parent 79)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (a b b-0 name) (y x rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y) (one)))
-  (defstrand init 3 (a a) (b b-0) (y y) (x x))
-  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (1 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (added-strand init 3) (exp (gen) y) (1 0)
-    (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
-    ((send (enc (exp (gen) x) a (pubk b-0)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b-0)))))
-  (label 89)
-  (parent 81)
-  (unrealized (0 4))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (b a b-0 name) (y x rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y) (one)))
-  (defstrand init 5 (n n) (a a) (b b-0) (y y) (x x))
-  (precedes ((0 1) (2 1)) ((0 3) (2 3)) ((1 1) (0 2)) ((2 0) (0 0))
-    ((2 2) (1 0)) ((2 4) (0 4)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk b) (privk a))
-  (precur (1 0))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (displaced 2 3 init 5) n (0 4)
-    (enc n (exp (gen) (mul y x-0))))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
-    ((send (enc (exp (gen) x) a (pubk b-0)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b-0)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n)))
-  (label 90)
-  (parent 89)
-  (seen 77)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y) (one)))
-  (defstrand init 3 (a a) (b b-0) (y y) (x x))
-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))
-    (x x-0))
-  (precedes ((0 1) (2 1)) ((0 1) (3 1)) ((0 3) (3 3)) ((1 1) (0 2))
-    ((2 0) (0 0)) ((2 2) (1 0)) ((3 4) (0 4)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen y x x-0)
-  (uniq-orig n)
-  (operation nonce-test (added-strand init 5) n (0 4)
-    (enc n (exp (gen) (mul y x))))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
-    ((send (enc (exp (gen) x) a (pubk b-0)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b-0))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))
-      (recv
-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))
-          (pubk a-0)))
-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n)))
-  (label 91)
-  (parent 89)
-  (unrealized (3 1))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (a b b-0 name) (y x rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y) (one)))
-  (defstrand init 3 (a a) (b b-0) (y y) (x x))
-  (deflistener (exp (gen) (mul y x)))
-  (precedes ((0 1) (2 1)) ((0 1) (3 0)) ((1 1) (0 2)) ((2 0) (0 0))
-    ((2 2) (1 0)) ((3 1) (0 4)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (added-listener (exp (gen) (mul y x))) n (0 4)
-    (enc n (exp (gen) (mul y x))))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
-    ((send (enc (exp (gen) x) a (pubk b-0)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b-0))))
-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))
-  (label 92)
-  (parent 89)
-  (unrealized (3 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton dhns
-  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y) (one)))
-  (defstrand init 3 (a a) (b b-0) (y y) (x x))
-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))
-    (x x-0))
-  (deflistener (cat (exp (gen) (mul y x)) x-0))
-  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((0 3) (3 3)) ((1 1) (0 2))
-    ((2 0) (0 0)) ((2 2) (1 0)) ((3 0) (4 0)) ((3 4) (0 4))
-    ((4 1) (3 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen y x x-0)
-  (uniq-orig n)
-  (operation nonce-test (added-listener (cat (exp (gen) (mul y x)) x-0))
-    (exp (gen) (mul y x (rec x-0))) (3 1))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
-    ((send (enc (exp (gen) x) a (pubk b-0)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b-0))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))
-      (recv
-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))
-          (pubk a-0)))
-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (cat (exp (gen) (mul y x)) x-0))
-      (send (cat (exp (gen) (mul y x)) x-0))))
-  (label 93)
-  (parent 91)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y) (one)))
-  (defstrand init 3 (a a) (b b-0) (y y) (x x))
-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))
-    (x x-0))
-  (deflistener (cat (exp (gen) (mul y (rec x-0))) x))
-  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((0 3) (3 3)) ((1 1) (0 2))
-    ((2 0) (0 0)) ((2 2) (1 0)) ((3 0) (4 0)) ((3 4) (0 4))
-    ((4 1) (3 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen y x x-0)
-  (uniq-orig n)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul y (rec x-0))) x))
-    (exp (gen) (mul y x (rec x-0))) (3 1))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
-    ((send (enc (exp (gen) x) a (pubk b-0)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b-0))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))
-      (recv
-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))
-          (pubk a-0)))
-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (cat (exp (gen) (mul y (rec x-0))) x))
-      (send (cat (exp (gen) (mul y (rec x-0))) x))))
-  (label 94)
-  (parent 91)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (a b b-0 a-0 b-1 name) (y x x-0 rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y) (one)))
-  (defstrand init 3 (a a) (b b-0) (y y) (x x))
-  (defstrand init 5 (n n) (a a-0) (b b-1) (y (mul y x (rec x-0)))
-    (x x-0))
-  (deflistener (cat (exp (gen) (mul x (rec x-0))) y))
-  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((0 3) (3 3)) ((1 1) (0 2))
-    ((2 0) (0 0)) ((2 2) (1 0)) ((3 0) (4 0)) ((3 4) (0 4))
-    ((4 1) (3 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen y x x-0)
-  (uniq-orig n)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x (rec x-0))) y))
-    (exp (gen) (mul y x (rec x-0))) (3 1))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
-    ((send (enc (exp (gen) x) a (pubk b-0)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b-0))))
-    ((send (enc (exp (gen) x-0) a-0 (pubk b-1)))
-      (recv
-        (enc (exp (gen) x-0) (exp (gen) (mul y x (rec x-0)))
-          (pubk a-0)))
-      (send (enc (exp (gen) (mul y x (rec x-0))) (pubk b-1)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((recv (cat (exp (gen) (mul x (rec x-0))) y))
-      (send (cat (exp (gen) (mul x (rec x-0))) y))))
-  (label 95)
-  (parent 91)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (a b b-0 name) (y x rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y) (one)))
-  (defstrand init 3 (a a) (b b-0) (y y) (x x))
-  (deflistener (exp (gen) (mul y x)))
-  (deflistener (cat (exp (gen) y) x))
-  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 0) (0 0))
-    ((2 2) (1 0)) ((3 1) (0 4)) ((4 1) (3 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (added-listener (cat (exp (gen) y) x))
-    (exp (gen) (mul y x)) (3 0))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
-    ((send (enc (exp (gen) x) a (pubk b-0)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b-0))))
-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
-  (label 96)
-  (parent 92)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton dhns
-  (vars (n text) (a b b-0 name) (y x rndx))
-  (defstrand resp 5 (n n) (b b) (a a) (x x) (y y))
-  (deflistener (cat (exp (gen) y) (one)))
-  (defstrand init 3 (a a) (b b-0) (y y) (x x))
-  (deflistener (exp (gen) (mul y x)))
-  (deflistener (cat (exp (gen) x) y))
-  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 0) (0 0))
-    ((2 2) (1 0)) ((3 1) (0 4)) ((4 1) (3 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (precur (1 0))
-  (uniq-gen y x)
-  (uniq-orig n)
-  (operation nonce-test (added-listener (cat (exp (gen) x) y))
-    (exp (gen) (mul y x)) (3 0))
-  (traces
-    ((recv (enc (exp (gen) x) a (pubk b)))
-      (send (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (recv (enc (exp (gen) y) (pubk b)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((recv (cat (exp (gen) y) (one))) (send (cat (exp (gen) y) (one))))
-    ((send (enc (exp (gen) x) a (pubk b-0)))
-      (recv (enc (exp (gen) x) (exp (gen) y) (pubk a)))
-      (send (enc (exp (gen) y) (pubk b-0))))
-    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
-    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
-  (label 97)
-  (parent 92)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
diff --git a/tst/dhstatic-state.scm b/tst/dhstatic-state.scm
new file mode 100644
--- /dev/null
+++ b/tst/dhstatic-state.scm
@@ -0,0 +1,67 @@
+(herald dhstatic-state
+	(algebra diffie-hellman)
+	(bound 16))
+
+(defprotocol dhstatic-state diffie-hellman
+  (defrole cert
+    (vars (subj ca name) (serial data) (galpha mesg))
+    (trace
+     (recv (sig (cert-req subj galpha ca) (privk "sig" subj)))
+     (send (sig (cert subj galpha ca serial)
+		(privk "sig" ca))))
+    (uniq-orig serial)
+    (comment "Certificate Authority"))
+
+  (defrole get-cert
+    (vars (self ca name) (serial data) (ra rndx)
+	  (static-key locn) (ignore mesg))
+    (trace
+     (send (sig (cert-req self (exp (gen) ra) ca) (privk "sig" self)))
+     (recv (sig (cert self (exp (gen) ra) ca serial)
+		(privk "sig" ca)))
+     (load static-key ignore)
+     (stor static-key (cat "privkey" self ra serial ca)))
+
+    (uniq-gen ra)
+    (comment "Get certified"))
+
+  (defrole init
+    (vars (a b ca name) (ra rndx) (serial-a serial-b data)
+	  (galpha base) (n text) (static-key locn))
+    (trace
+     (load static-key (cat "privkey" a ra serial-a ca))
+     (recv (sig (cert b galpha ca serial-b)
+		(privk "sig" ca)))
+     (send (enc n a b serial-a serial-b (exp galpha ra)))
+     (recv n))
+    (uniq-orig n)
+    (gen-st (cat "privkey" a ra serial-a ca))
+    (facts (neq a b))
+    (comment "Initiator is A"))
+
+  (defrole resp
+    (vars (a b ca name) (rb rndx) (serial-b serial-a data)
+	  (galpha base) (n text) (static-key locn))
+    (trace
+     (load static-key (cat "privkey" b rb serial-b ca))
+     (recv (sig (cert a galpha ca serial-a)
+		(privk "sig" ca)))
+     (recv (enc n a b serial-a serial-b (exp galpha rb)))
+     (send n))
+    (facts (neq a b))
+    (gen-st (cat "privkey" b rb serial-b ca))
+    (comment "Responder is B"))
+
+  (lang (cert-req (tupl 3))
+	(cert (tupl 4))
+	(sig sign)))
+
+(defskeleton dhstatic-state
+  (vars (ca b name))
+  (defstrand init 4 (ca ca) (b b))
+  (non-orig (privk "sig" ca) (privk "sig" b)))
+
+(defskeleton dhstatic-state
+  (vars (ca a name))
+  (defstrand resp 4 (ca ca) (a a))
+  (non-orig (privk "sig" ca) (privk "sig" a)))
diff --git a/tst/dhstatic-state.tst b/tst/dhstatic-state.tst
new file mode 100644
--- /dev/null
+++ b/tst/dhstatic-state.tst
@@ -0,0 +1,2892 @@
+(herald dhstatic-state (algebra diffie-hellman) (bound 16))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/dhstatic-state.scm")
+(comment "Strand count bounded at 16")
+
+(defprotocol dhstatic-state diffie-hellman
+  (defrole cert
+    (vars (subj ca name) (serial data) (galpha mesg))
+    (trace (recv (sig (cert-req subj galpha ca) (privk "sig" subj)))
+      (send (sig (cert subj galpha ca serial) (privk "sig" ca))))
+    (uniq-orig serial)
+    (comment "Certificate Authority"))
+  (defrole get-cert
+    (vars (self ca name) (serial data) (ra rndx) (static-key locn)
+      (ignore mesg))
+    (trace
+      (send (sig (cert-req self (exp (gen) ra) ca) (privk "sig" self)))
+      (recv (sig (cert self (exp (gen) ra) ca serial) (privk "sig" ca)))
+      (load static-key ignore)
+      (stor static-key (cat "privkey" self ra serial ca)))
+    (uniq-gen ra)
+    (comment "Get certified"))
+  (defrole init
+    (vars (a b ca name) (ra rndx) (serial-a serial-b data) (galpha base)
+      (n text) (static-key locn))
+    (trace (load static-key (cat "privkey" a ra serial-a ca))
+      (recv (sig (cert b galpha ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp galpha ra))) (recv n))
+    (uniq-orig n)
+    (gen-st (cat "privkey" a ra serial-a ca))
+    (facts (neq a b))
+    (comment "Initiator is A"))
+  (defrole resp
+    (vars (a b ca name) (rb rndx) (serial-b serial-a data) (galpha base)
+      (n text) (static-key locn))
+    (trace (load static-key (cat "privkey" b rb serial-b ca))
+      (recv (sig (cert a galpha ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp galpha rb))) (send n))
+    (facts (neq a b))
+    (gen-st (cat "privkey" b rb serial-b ca))
+    (comment "Responder is B"))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule fact-init-neq0
+    (forall ((z strd) (b a name))
+      (implies
+        (and (p "init" z (idx 2)) (p "init" "b" z b) (p "init" "a" z a))
+        (fact neq a b))))
+  (defgenrule fact-resp-neq0
+    (forall ((z strd) (b a name))
+      (implies
+        (and (p "resp" z (idx 2)) (p "resp" "b" z b) (p "resp" "a" z a))
+        (fact neq a b))))
+  (defgenrule trRl_get-cert-at-3
+    (forall ((z strd))
+      (implies (p "get-cert" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_get-cert-at-2
+    (forall ((z strd))
+      (implies (p "get-cert" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule gen-st-init-0
+    (forall ((z strd) (serial-a data) (ra rndx) (ca a name))
+      (implies
+        (and (p "init" z (idx 1)) (p "init" "serial-a" z serial-a)
+          (p "init" "ra" z ra) (p "init" "ca" z ca) (p "init" "a" z a))
+        (gen-st (cat "privkey" a ra serial-a ca)))))
+  (defgenrule gen-st-resp-0
+    (forall ((z strd) (serial-b data) (rb rndx) (ca b name))
+      (implies
+        (and (p "resp" z (idx 1)) (p "resp" "serial-b" z serial-b)
+          (p "resp" "rb" z rb) (p "resp" "ca" z ca) (p "resp" "b" z b))
+        (gen-st (cat "privkey" b rb serial-b ca)))))
+  (lang (cert-req (tupl 3)) (cert (tupl 4)) (sig sign)))
+
+(defskeleton dhstatic-state
+  (vars (serial-a serial-b data) (n text) (ca b a name) (pt pval)
+    (galpha base) (static-key locn) (ra rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca) (galpha galpha) (static-key static-key) (ra ra))
+  (non-orig (privk "sig" ca) (privk "sig" b))
+  (uniq-orig n)
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca))
+      (recv (sig (cert b galpha ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp galpha ra))) (recv n)))
+  (label 0)
+  (unrealized (0 1))
+  (origs (n (0 2)))
+  (comment "Not closed under rules"))
+
+(defskeleton dhstatic-state
+  (vars (serial-a serial-b data) (n text) (ca b a name) (pt pval)
+    (galpha base) (static-key locn) (ra rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca) (galpha galpha) (static-key static-key) (ra ra))
+  (non-orig (privk "sig" ca) (privk "sig" b))
+  (uniq-orig n)
+  (gen-st (cat "privkey" a ra serial-a ca))
+  (facts (neq a b) (neq b a))
+  (rule fact-init-neq0 fact-resp-neq0 gen-st-resp-0)
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca))
+      (recv (sig (cert b galpha ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp galpha ra))) (recv n)))
+  (label 1)
+  (parent 0)
+  (unrealized (0 0) (0 1))
+  (origs (n (0 2)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore mesg) (serial-a serial-b data) (n text) (ca b a name)
+    (pt pt-0 pval) (galpha base) (static-key locn) (ra rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca) (galpha galpha) (static-key static-key) (ra ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca) (static-key static-key) (ra ra))
+  (precedes ((1 3) (0 0)))
+  (non-orig (privk "sig" ca) (privk "sig" b))
+  (uniq-orig n)
+  (uniq-gen ra)
+  (gen-st (cat "privkey" a ra serial-a ca))
+  (facts (neq a b) (neq b a))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation channel-test (added-strand get-cert 4)
+    (ch-msg static-key (cat pt "privkey" a ra serial-a ca)) (0 0))
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca))
+      (recv (sig (cert b galpha ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp galpha ra))) (recv n))
+    ((send (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (recv (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra serial-a ca))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 1) (0 3) (1 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore mesg) (serial-a serial-b data) (n text) (ca b a name)
+    (pt pt-0 pval) (galpha base) (static-key locn) (ra rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca) (galpha galpha) (static-key static-key) (ra ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca))
+  (precedes ((1 0) (2 0)) ((1 3) (0 0)) ((2 1) (1 1)))
+  (non-orig (privk "sig" ca) (privk "sig" b))
+  (uniq-orig serial-a n)
+  (uniq-gen ra)
+  (gen-st (cat "privkey" a ra serial-a ca))
+  (facts (neq a b) (neq b a))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation encryption-test (added-strand cert 2)
+    (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)) (1 1))
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca))
+      (recv (sig (cert b galpha ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp galpha ra))) (recv n))
+    ((send (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (recv (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra serial-a ca)))
+    ((recv (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (send
+        (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 1) (0 3))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore mesg) (serial-a serial-b data) (n text) (ca b a name)
+    (pt pt-0 pval) (galpha base) (static-key locn) (ra rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca) (galpha galpha) (static-key static-key) (ra ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand cert 2 (galpha galpha) (serial serial-b) (subj b) (ca ca))
+  (precedes ((1 0) (2 0)) ((1 3) (0 0)) ((2 1) (1 1)) ((3 1) (0 1)))
+  (non-orig (privk "sig" ca) (privk "sig" b))
+  (uniq-orig serial-a serial-b n)
+  (uniq-gen ra)
+  (gen-st (cat "privkey" a ra serial-a ca))
+  (facts (neq a b) (neq b a))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation encryption-test (added-strand cert 2)
+    (sig (cert b galpha ca serial-b) (privk "sig" ca)) (0 1))
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca))
+      (recv (sig (cert b galpha ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp galpha ra))) (recv n))
+    ((send (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (recv (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra serial-a ca)))
+    ((recv (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (send (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca))))
+    ((recv (sig (cert-req b galpha ca) (privk "sig" b)))
+      (send (sig (cert b galpha ca serial-b) (privk "sig" ca)))))
+  (label 4)
+  (parent 3)
+  (unrealized (0 3) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore mesg) (serial-a serial-b data) (n text) (ca b a name)
+    (pt pt-0 pval) (static-key locn) (ra ra-0 rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (ra ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand get-cert 1 (self b) (ca ca) (ra ra-0))
+  (precedes ((1 0) (2 0)) ((1 3) (0 0)) ((2 1) (1 1)) ((3 1) (0 1))
+    ((4 0) (3 0)))
+  (non-orig (privk "sig" ca) (privk "sig" b))
+  (uniq-orig serial-a serial-b n)
+  (uniq-gen ra ra-0)
+  (gen-st (cat "privkey" a ra serial-a ca))
+  (facts (neq a b) (neq b a))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation encryption-test (added-strand get-cert 1)
+    (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b)) (3 0))
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca))
+      (recv
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (recv n))
+    ((send (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (recv (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra serial-a ca)))
+    ((recv (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (send (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca))))
+    ((recv (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b)))
+      (send
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca))))
+    ((send (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b)))))
+  (label 5)
+  (parent 4)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore mesg) (serial-a serial-b data) (n text)
+    (ca b a ca-0 name) (pt pt-0 pt-1 pval)
+    (static-key static-key-0 locn) (ra ra-0 rb rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (ra ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand get-cert 1 (self b) (ca ca) (ra ra-0))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca-0) (galpha (exp (gen) (mul ra ra-0 (rec rb))))
+    (static-key static-key-0) (rb rb))
+  (precedes ((0 2) (5 2)) ((1 0) (2 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((2 1) (5 1)) ((3 1) (0 1)) ((3 1) (5 0)) ((4 0) (3 0))
+    ((5 3) (0 3)))
+  (non-orig (privk "sig" ca) (privk "sig" b))
+  (uniq-orig serial-a serial-b n)
+  (uniq-gen ra ra-0)
+  (gen-st (cat "privkey" b rb serial-b ca-0)
+    (cat "privkey" a ra serial-a ca))
+  (facts (neq a b) (neq b a))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-resp-neq0 gen-st-resp-0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation nonce-test (added-strand resp 4) n (0 3)
+    (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca))
+      (recv
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (recv n))
+    ((send (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (recv (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra serial-a ca)))
+    ((recv (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (send (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca))))
+    ((recv (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b)))
+      (send
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca))))
+    ((send (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b))))
+    ((load static-key-0 (cat pt-1 "privkey" b rb serial-b ca-0))
+      (recv
+        (sig (cert a (exp (gen) (mul ra ra-0 (rec rb))) ca-0 serial-a)
+          (privk "sig" ca-0)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n)))
+  (label 6)
+  (parent 5)
+  (unrealized (5 0) (5 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore mesg) (serial-a serial-b data) (n text) (ca b a name)
+    (pt pt-0 pval) (static-key locn) (ra ra-0 rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (ra ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand get-cert 1 (self b) (ca ca) (ra ra-0))
+  (deflistener (exp (gen) (mul ra ra-0)))
+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((3 1) (0 1)) ((4 0) (3 0)) ((4 0) (5 0)) ((5 1) (0 3)))
+  (non-orig (privk "sig" ca) (privk "sig" b))
+  (uniq-orig serial-a serial-b n)
+  (uniq-gen ra ra-0)
+  (gen-st (cat "privkey" a ra serial-a ca))
+  (facts (neq a b) (neq b a))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation nonce-test (added-listener (exp (gen) (mul ra ra-0))) n
+    (0 3) (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca))
+      (recv
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (recv n))
+    ((send (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (recv (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra serial-a ca)))
+    ((recv (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (send (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca))))
+    ((recv (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b)))
+      (send
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca))))
+    ((send (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b))))
+    ((recv (exp (gen) (mul ra ra-0))) (send (exp (gen) (mul ra ra-0)))))
+  (label 7)
+  (parent 5)
+  (unrealized (5 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 mesg) (serial-a serial-b data) (n text)
+    (b a ca name) (pt pt-0 pt-1 pt-2 pval)
+    (static-key static-key-0 locn) (ra ra-0 rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (ra ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra)) (static-key static-key-0)
+    (rb ra-0))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-b) (self b)
+    (ca ca) (static-key static-key-0) (ra ra-0))
+  (precedes ((0 2) (4 2)) ((1 0) (2 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((2 1) (4 1)) ((3 1) (0 1)) ((3 1) (5 1)) ((4 3) (0 3))
+    ((5 0) (3 0)) ((5 3) (4 0)))
+  (non-orig (privk "sig" b) (privk "sig" ca))
+  (uniq-orig serial-a serial-b n)
+  (uniq-gen ra ra-0)
+  (gen-st (cat "privkey" b ra-0 serial-b ca)
+    (cat "privkey" a ra serial-a ca))
+  (facts (neq a b) (neq b a))
+  (leads-to ((1 3) (0 0)) ((5 3) (4 0)))
+  (rule fact-resp-neq0 trRl_get-cert-at-2 trRl_get-cert-at-3)
+  (operation channel-test (displaced 4 6 get-cert 4)
+    (ch-msg static-key-0 (cat pt-1 "privkey" b ra-1 serial-b ca)) (5 0))
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca))
+      (recv
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (recv n))
+    ((send (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (recv (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra serial-a ca)))
+    ((recv (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (send (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca))))
+    ((recv (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b)))
+      (send
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca))))
+    ((load static-key-0 (cat pt-1 "privkey" b ra-0 serial-b ca))
+      (recv (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b)))
+      (recv
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca)))
+      (load static-key-0 (cat pt-2 ignore-0))
+      (stor static-key-0 (cat pt-1 "privkey" b ra-0 serial-b ca))))
+  (label 8)
+  (parent 6)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((ca ca) (b b) (a a) (ra ra) (serial-a serial-a)
+        (serial-b serial-b) (galpha (exp (gen) ra-0)) (n n)
+        (static-key static-key))))
+  (origs (pt-1 (5 3)) (serial-b (3 1)) (serial-a (2 1)) (pt (1 3))
+    (n (0 2))))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 mesg) (serial-a serial-b data) (n text)
+    (ca b a ca-0 name) (pt pt-0 pt-1 pt-2 pval)
+    (static-key static-key-0 locn) (ra ra-0 ra-1 rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (ra ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand get-cert 1 (self b) (ca ca) (ra ra-0))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca-0) (galpha (exp (gen) (mul ra ra-0 (rec ra-1))))
+    (static-key static-key-0) (rb ra-1))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-b) (self b)
+    (ca ca-0) (static-key static-key-0) (ra ra-1))
+  (precedes ((0 2) (5 2)) ((1 0) (2 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((2 1) (5 1)) ((3 1) (0 1)) ((3 1) (6 1)) ((4 0) (3 0))
+    ((5 3) (0 3)) ((6 3) (5 0)))
+  (non-orig (privk "sig" ca) (privk "sig" b))
+  (uniq-orig serial-a serial-b n)
+  (uniq-gen ra ra-0 ra-1)
+  (gen-st (cat "privkey" b ra-1 serial-b ca-0)
+    (cat "privkey" a ra serial-a ca))
+  (facts (neq a b) (neq b a))
+  (leads-to ((1 3) (0 0)) ((6 3) (5 0)))
+  (rule fact-resp-neq0 trRl_get-cert-at-2 trRl_get-cert-at-3)
+  (operation channel-test (added-strand get-cert 4)
+    (ch-msg static-key-0 (cat pt-1 "privkey" b ra-1 serial-b ca-0))
+    (5 0))
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca))
+      (recv
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (recv n))
+    ((send (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (recv (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra serial-a ca)))
+    ((recv (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (send (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca))))
+    ((recv (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b)))
+      (send
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca))))
+    ((send (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b))))
+    ((load static-key-0 (cat pt-1 "privkey" b ra-1 serial-b ca-0))
+      (recv
+        (sig (cert a (exp (gen) (mul ra ra-0 (rec ra-1))) ca-0 serial-a)
+          (privk "sig" ca-0)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra-1) ca-0) (privk "sig" b)))
+      (recv
+        (sig (cert b (exp (gen) ra-1) ca-0 serial-b)
+          (privk "sig" ca-0))) (load static-key-0 (cat pt-2 ignore-0))
+      (stor static-key-0 (cat pt-1 "privkey" b ra-1 serial-b ca-0))))
+  (label 9)
+  (parent 6)
+  (unrealized (5 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore mesg) (serial-a serial-b data) (n text) (ca b a name)
+    (pt pt-0 pval) (static-key locn) (ra ra-0 rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (ra ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand get-cert 1 (self b) (ca ca) (ra ra-0))
+  (deflistener (exp (gen) (mul ra ra-0)))
+  (deflistener (cat (exp (gen) ra) ra-0))
+  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((3 1) (0 1)) ((4 0) (3 0)) ((4 0) (6 0)) ((5 1) (0 3))
+    ((6 1) (5 0)))
+  (non-orig (privk "sig" ca) (privk "sig" b))
+  (uniq-orig serial-a serial-b n)
+  (uniq-gen ra ra-0)
+  (gen-st (cat "privkey" a ra serial-a ca))
+  (facts (neq a b) (neq b a))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation nonce-test (added-listener (cat (exp (gen) ra) ra-0))
+    (exp (gen) (mul ra ra-0)) (5 0))
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca))
+      (recv
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (recv n))
+    ((send (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (recv (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra serial-a ca)))
+    ((recv (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (send (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca))))
+    ((recv (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b)))
+      (send
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca))))
+    ((send (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b))))
+    ((recv (exp (gen) (mul ra ra-0))) (send (exp (gen) (mul ra ra-0))))
+    ((recv (cat (exp (gen) ra) ra-0)) (send (cat (exp (gen) ra) ra-0))))
+  (label 10)
+  (parent 7)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore mesg) (serial-a serial-b data) (n text) (ca b a name)
+    (pt pt-0 pval) (static-key locn) (ra ra-0 rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (ra ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand get-cert 1 (self b) (ca ca) (ra ra-0))
+  (deflistener (exp (gen) (mul ra ra-0)))
+  (deflistener (cat (exp (gen) ra-0) ra))
+  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((3 1) (0 1)) ((4 0) (3 0)) ((4 0) (6 0)) ((5 1) (0 3))
+    ((6 1) (5 0)))
+  (non-orig (privk "sig" ca) (privk "sig" b))
+  (uniq-orig serial-a serial-b n)
+  (uniq-gen ra ra-0)
+  (gen-st (cat "privkey" a ra serial-a ca))
+  (facts (neq a b) (neq b a))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation nonce-test (added-listener (cat (exp (gen) ra-0) ra))
+    (exp (gen) (mul ra ra-0)) (5 0))
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca))
+      (recv
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (recv n))
+    ((send (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (recv (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra serial-a ca)))
+    ((recv (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (send (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca))))
+    ((recv (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b)))
+      (send
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca))))
+    ((send (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b))))
+    ((recv (exp (gen) (mul ra ra-0))) (send (exp (gen) (mul ra ra-0))))
+    ((recv (cat (exp (gen) ra-0) ra)) (send (cat (exp (gen) ra-0) ra))))
+  (label 11)
+  (parent 7)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 mesg) (serial-a serial-b data) (n text)
+    (ca b a ca-0 name) (pt pt-0 pt-1 pt-2 pval)
+    (static-key static-key-0 locn) (ra ra-0 ra-1 rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (ra ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand get-cert 1 (self b) (ca ca) (ra ra-0))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca-0) (galpha (exp (gen) (mul ra ra-0 (rec ra-1))))
+    (static-key static-key-0) (rb ra-1))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-b) (self b)
+    (ca ca-0) (static-key static-key-0) (ra ra-1))
+  (deflistener (cat (exp (gen) (mul ra ra-0)) ra-1))
+  (precedes ((0 2) (5 2)) ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 0))
+    ((2 1) (1 1)) ((2 1) (5 1)) ((3 1) (0 1)) ((3 1) (6 1))
+    ((4 0) (3 0)) ((4 0) (7 0)) ((5 3) (0 3)) ((6 0) (7 0))
+    ((6 3) (5 0)) ((7 1) (5 1)))
+  (non-orig (privk "sig" ca) (privk "sig" b))
+  (uniq-orig serial-a serial-b n)
+  (uniq-gen ra ra-0 ra-1)
+  (gen-st (cat "privkey" b ra-1 serial-b ca-0)
+    (cat "privkey" a ra serial-a ca))
+  (facts (neq a b) (neq b a))
+  (leads-to ((1 3) (0 0)) ((6 3) (5 0)))
+  (rule fact-resp-neq0 trRl_get-cert-at-2 trRl_get-cert-at-3)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ra ra-0)) ra-1))
+    (exp (gen) (mul ra ra-0 (rec ra-1))) (5 1))
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca))
+      (recv
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (recv n))
+    ((send (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (recv (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra serial-a ca)))
+    ((recv (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (send (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca))))
+    ((recv (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b)))
+      (send
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca))))
+    ((send (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b))))
+    ((load static-key-0 (cat pt-1 "privkey" b ra-1 serial-b ca-0))
+      (recv
+        (sig (cert a (exp (gen) (mul ra ra-0 (rec ra-1))) ca-0 serial-a)
+          (privk "sig" ca-0)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra-1) ca-0) (privk "sig" b)))
+      (recv
+        (sig (cert b (exp (gen) ra-1) ca-0 serial-b)
+          (privk "sig" ca-0))) (load static-key-0 (cat pt-2 ignore-0))
+      (stor static-key-0 (cat pt-1 "privkey" b ra-1 serial-b ca-0)))
+    ((recv (cat (exp (gen) (mul ra ra-0)) ra-1))
+      (send (cat (exp (gen) (mul ra ra-0)) ra-1))))
+  (label 12)
+  (parent 9)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 mesg) (serial-a serial-b data) (n text)
+    (ca b a ca-0 name) (pt pt-0 pt-1 pt-2 pval)
+    (static-key static-key-0 locn) (ra ra-0 ra-1 rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (ra ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand get-cert 1 (self b) (ca ca) (ra ra-0))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca-0) (galpha (exp (gen) (mul ra ra-0 (rec ra-1))))
+    (static-key static-key-0) (rb ra-1))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-b) (self b)
+    (ca ca-0) (static-key static-key-0) (ra ra-1))
+  (deflistener (cat (exp (gen) (mul ra (rec ra-1))) ra-0))
+  (precedes ((0 2) (5 2)) ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 0))
+    ((2 1) (1 1)) ((2 1) (5 1)) ((3 1) (0 1)) ((3 1) (6 1))
+    ((4 0) (3 0)) ((4 0) (7 0)) ((5 3) (0 3)) ((6 0) (7 0))
+    ((6 3) (5 0)) ((7 1) (5 1)))
+  (non-orig (privk "sig" ca) (privk "sig" b))
+  (uniq-orig serial-a serial-b n)
+  (uniq-gen ra ra-0 ra-1)
+  (gen-st (cat "privkey" b ra-1 serial-b ca-0)
+    (cat "privkey" a ra serial-a ca))
+  (facts (neq a b) (neq b a))
+  (leads-to ((1 3) (0 0)) ((6 3) (5 0)))
+  (rule fact-resp-neq0 trRl_get-cert-at-2 trRl_get-cert-at-3)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ra (rec ra-1))) ra-0))
+    (exp (gen) (mul ra ra-0 (rec ra-1))) (5 1))
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca))
+      (recv
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (recv n))
+    ((send (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (recv (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra serial-a ca)))
+    ((recv (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (send (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca))))
+    ((recv (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b)))
+      (send
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca))))
+    ((send (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b))))
+    ((load static-key-0 (cat pt-1 "privkey" b ra-1 serial-b ca-0))
+      (recv
+        (sig (cert a (exp (gen) (mul ra ra-0 (rec ra-1))) ca-0 serial-a)
+          (privk "sig" ca-0)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra-1) ca-0) (privk "sig" b)))
+      (recv
+        (sig (cert b (exp (gen) ra-1) ca-0 serial-b)
+          (privk "sig" ca-0))) (load static-key-0 (cat pt-2 ignore-0))
+      (stor static-key-0 (cat pt-1 "privkey" b ra-1 serial-b ca-0)))
+    ((recv (cat (exp (gen) (mul ra (rec ra-1))) ra-0))
+      (send (cat (exp (gen) (mul ra (rec ra-1))) ra-0))))
+  (label 13)
+  (parent 9)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 mesg) (serial-a serial-b data) (n text)
+    (ca b a ca-0 name) (pt pt-0 pt-1 pt-2 pval)
+    (static-key static-key-0 locn) (ra ra-0 ra-1 rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (ra ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand get-cert 1 (self b) (ca ca) (ra ra-0))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca-0) (galpha (exp (gen) (mul ra ra-0 (rec ra-1))))
+    (static-key static-key-0) (rb ra-1))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-b) (self b)
+    (ca ca-0) (static-key static-key-0) (ra ra-1))
+  (deflistener (cat (exp (gen) (mul ra-0 (rec ra-1))) ra))
+  (precedes ((0 2) (5 2)) ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 0))
+    ((2 1) (1 1)) ((2 1) (5 1)) ((3 1) (0 1)) ((3 1) (6 1))
+    ((4 0) (3 0)) ((4 0) (7 0)) ((5 3) (0 3)) ((6 0) (7 0))
+    ((6 3) (5 0)) ((7 1) (5 1)))
+  (non-orig (privk "sig" ca) (privk "sig" b))
+  (uniq-orig serial-a serial-b n)
+  (uniq-gen ra ra-0 ra-1)
+  (gen-st (cat "privkey" b ra-1 serial-b ca-0)
+    (cat "privkey" a ra serial-a ca))
+  (facts (neq a b) (neq b a))
+  (leads-to ((1 3) (0 0)) ((6 3) (5 0)))
+  (rule fact-resp-neq0 trRl_get-cert-at-2 trRl_get-cert-at-3)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ra-0 (rec ra-1))) ra))
+    (exp (gen) (mul ra ra-0 (rec ra-1))) (5 1))
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca))
+      (recv
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (recv n))
+    ((send (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (recv (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra serial-a ca)))
+    ((recv (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (send (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca))))
+    ((recv (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b)))
+      (send
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca))))
+    ((send (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b))))
+    ((load static-key-0 (cat pt-1 "privkey" b ra-1 serial-b ca-0))
+      (recv
+        (sig (cert a (exp (gen) (mul ra ra-0 (rec ra-1))) ca-0 serial-a)
+          (privk "sig" ca-0)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra-1) ca-0) (privk "sig" b)))
+      (recv
+        (sig (cert b (exp (gen) ra-1) ca-0 serial-b)
+          (privk "sig" ca-0))) (load static-key-0 (cat pt-2 ignore-0))
+      (stor static-key-0 (cat pt-1 "privkey" b ra-1 serial-b ca-0)))
+    ((recv (cat (exp (gen) (mul ra-0 (rec ra-1))) ra))
+      (send (cat (exp (gen) (mul ra-0 (rec ra-1))) ra))))
+  (label 14)
+  (parent 9)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 mesg) (serial-a serial-b serial data) (n text)
+    (a self ca name) (pt pt-0 pt-1 pt-2 pval)
+    (static-key static-key-0 locn) (ra ra-0 rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b self) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (ra ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-b)
+    (subj self) (ca ca))
+  (deflistener (exp (gen) (mul ra ra-0)))
+  (deflistener (cat (exp (gen) ra) ra-0))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial) (self self)
+    (ca ca) (static-key static-key-0) (ra ra-0))
+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((3 1) (0 1)) ((4 1) (0 3)) ((5 1) (4 0)) ((6 0) (3 0))
+    ((6 3) (5 0)))
+  (non-orig (privk "sig" self) (privk "sig" ca))
+  (uniq-orig serial-a serial-b n)
+  (uniq-gen ra ra-0)
+  (gen-st (cat "privkey" a ra serial-a ca))
+  (facts (neq a self) (neq self a))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation nonce-test (displaced 4 7 get-cert 4) ra-0 (6 0))
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca))
+      (recv
+        (sig (cert self (exp (gen) ra-0) ca serial-b) (privk "sig" ca)))
+      (send (enc n a self serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (recv n))
+    ((send (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (recv (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra serial-a ca)))
+    ((recv (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (send (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca))))
+    ((recv (sig (cert-req self (exp (gen) ra-0) ca) (privk "sig" self)))
+      (send
+        (sig (cert self (exp (gen) ra-0) ca serial-b)
+          (privk "sig" ca))))
+    ((recv (exp (gen) (mul ra ra-0))) (send (exp (gen) (mul ra ra-0))))
+    ((recv (cat (exp (gen) ra) ra-0)) (send (cat (exp (gen) ra) ra-0)))
+    ((send (sig (cert-req self (exp (gen) ra-0) ca) (privk "sig" self)))
+      (recv
+        (sig (cert self (exp (gen) ra-0) ca serial) (privk "sig" ca)))
+      (load static-key-0 (cat pt-1 ignore-0))
+      (stor static-key-0 (cat pt-2 "privkey" self ra-0 serial ca))))
+  (label 15)
+  (parent 10)
+  (unrealized (5 0) (6 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore mesg) (serial-a serial-b data) (n text) (ca b a name)
+    (pt pt-0 pval) (static-key locn) (ra ra-0 rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra)) (static-key static-key)
+    (ra ra-0))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca) (static-key static-key) (ra ra-0))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand get-cert 1 (self b) (ca ca) (ra ra))
+  (deflistener (exp (gen) (mul ra ra-0)))
+  (deflistener (cat (exp (gen) ra) ra-0))
+  (precedes ((1 0) (2 0)) ((1 3) (0 0)) ((1 3) (6 0)) ((2 1) (1 1))
+    ((3 1) (0 1)) ((4 0) (3 0)) ((4 0) (6 0)) ((5 1) (0 3))
+    ((6 1) (5 0)))
+  (non-orig (privk "sig" ca) (privk "sig" b))
+  (uniq-orig serial-a serial-b n)
+  (uniq-gen ra ra-0)
+  (gen-st (cat "privkey" a ra-0 serial-a ca))
+  (facts (neq a b) (neq b a))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation nonce-test (displaced 7 1 get-cert 4) ra-0 (6 0))
+  (traces
+    ((load static-key (cat pt "privkey" a ra-0 serial-a ca))
+      (recv (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (recv n))
+    ((send (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a)))
+      (recv
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra-0 serial-a ca)))
+    ((recv (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a)))
+      (send
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca))))
+    ((recv (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (send (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca))))
+    ((send (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b))))
+    ((recv (exp (gen) (mul ra ra-0))) (send (exp (gen) (mul ra ra-0))))
+    ((recv (cat (exp (gen) ra) ra-0)) (send (cat (exp (gen) ra) ra-0))))
+  (label 16)
+  (parent 11)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 mesg) (serial-a serial-b data) (n text)
+    (ca b a ca-0 name) (pt pt-0 pt-1 pt-2 pval)
+    (static-key static-key-0 locn) (ra ra-0 ra-1 rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (ra ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand get-cert 1 (self b) (ca ca) (ra ra-0))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca-0) (galpha (exp (gen) (mul ra ra-0 (rec ra-1))))
+    (static-key static-key-0) (rb ra-1))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-b) (self b)
+    (ca ca-0) (static-key static-key-0) (ra ra-1))
+  (deflistener (cat (exp (gen) (mul ra ra-0)) ra-1))
+  (precedes ((0 2) (5 2)) ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 0))
+    ((2 1) (1 1)) ((2 1) (5 1)) ((3 1) (0 1)) ((3 1) (6 1))
+    ((4 0) (3 0)) ((5 3) (0 3)) ((6 3) (5 0)) ((6 3) (7 0))
+    ((7 1) (5 1)))
+  (non-orig (privk "sig" ca) (privk "sig" b))
+  (uniq-orig serial-a serial-b n)
+  (uniq-gen ra ra-0 ra-1)
+  (gen-st (cat "privkey" b ra-1 serial-b ca-0)
+    (cat "privkey" a ra serial-a ca))
+  (facts (neq a b) (neq b a))
+  (leads-to ((1 3) (0 0)) ((6 3) (5 0)))
+  (rule fact-resp-neq0 trRl_get-cert-at-2 trRl_get-cert-at-3)
+  (operation nonce-test (displaced 8 6 get-cert 4) ra-1 (7 0))
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca))
+      (recv
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (recv n))
+    ((send (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (recv (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra serial-a ca)))
+    ((recv (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (send (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca))))
+    ((recv (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b)))
+      (send
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca))))
+    ((send (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b))))
+    ((load static-key-0 (cat pt-1 "privkey" b ra-1 serial-b ca-0))
+      (recv
+        (sig (cert a (exp (gen) (mul ra ra-0 (rec ra-1))) ca-0 serial-a)
+          (privk "sig" ca-0)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra-1) ca-0) (privk "sig" b)))
+      (recv
+        (sig (cert b (exp (gen) ra-1) ca-0 serial-b)
+          (privk "sig" ca-0))) (load static-key-0 (cat pt-2 ignore-0))
+      (stor static-key-0 (cat pt-1 "privkey" b ra-1 serial-b ca-0)))
+    ((recv (cat (exp (gen) (mul ra ra-0)) ra-1))
+      (send (cat (exp (gen) (mul ra ra-0)) ra-1))))
+  (label 17)
+  (parent 12)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 ignore-1 mesg) (serial-a serial-b serial data)
+    (n text) (a ca self ca-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (static-key static-key-0 static-key-1 locn) (ra ra-0 ra-1 rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b self) (ca ca-0) (galpha (exp (gen) ra-1)) (static-key static-key)
+    (ra ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca-0) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca-0))
+  (defstrand cert 2 (galpha (exp (gen) ra-1)) (serial serial-b)
+    (subj self) (ca ca-0))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b self) (ca ca) (galpha (exp (gen) (mul ra (rec ra-0) ra-1)))
+    (static-key static-key-0) (rb ra-0))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-b) (self self)
+    (ca ca) (static-key static-key-0) (ra ra-0))
+  (deflistener (cat (exp (gen) (mul ra (rec ra-0))) ra-1))
+  (defstrand get-cert 4 (ignore ignore-1) (serial serial) (self self)
+    (ca ca-0) (static-key static-key-1) (ra ra-1))
+  (precedes ((0 2) (4 2)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 0))
+    ((2 1) (1 1)) ((2 1) (4 1)) ((3 1) (0 1)) ((3 1) (5 1))
+    ((4 3) (0 3)) ((5 0) (6 0)) ((5 3) (4 0)) ((6 1) (4 1))
+    ((7 0) (3 0)) ((7 3) (6 0)))
+  (non-orig (privk "sig" self) (privk "sig" ca-0))
+  (uniq-orig serial-a serial-b n)
+  (uniq-gen ra ra-0 ra-1)
+  (gen-st (cat "privkey" a ra serial-a ca-0)
+    (cat "privkey" self ra-0 serial-b ca))
+  (facts (neq a self) (neq self a))
+  (leads-to ((1 3) (0 0)) ((5 3) (4 0)))
+  (rule fact-resp-neq0 trRl_get-cert-at-2 trRl_get-cert-at-3)
+  (operation nonce-test (displaced 4 8 get-cert 4) ra-1 (7 0))
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca-0))
+      (recv
+        (sig (cert self (exp (gen) ra-1) ca-0 serial-b)
+          (privk "sig" ca-0)))
+      (send (enc n a self serial-a serial-b (exp (gen) (mul ra ra-1))))
+      (recv n))
+    ((send (sig (cert-req a (exp (gen) ra) ca-0) (privk "sig" a)))
+      (recv
+        (sig (cert a (exp (gen) ra) ca-0 serial-a) (privk "sig" ca-0)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra serial-a ca-0)))
+    ((recv (sig (cert-req a (exp (gen) ra) ca-0) (privk "sig" a)))
+      (send
+        (sig (cert a (exp (gen) ra) ca-0 serial-a) (privk "sig" ca-0))))
+    ((recv
+       (sig (cert-req self (exp (gen) ra-1) ca-0) (privk "sig" self)))
+      (send
+        (sig (cert self (exp (gen) ra-1) ca-0 serial-b)
+          (privk "sig" ca-0))))
+    ((load static-key-0 (cat pt-1 "privkey" self ra-0 serial-b ca))
+      (recv
+        (sig (cert a (exp (gen) (mul ra (rec ra-0) ra-1)) ca serial-a)
+          (privk "sig" ca)))
+      (recv (enc n a self serial-a serial-b (exp (gen) (mul ra ra-1))))
+      (send n))
+    ((send (sig (cert-req self (exp (gen) ra-0) ca) (privk "sig" self)))
+      (recv
+        (sig (cert self (exp (gen) ra-0) ca serial-b) (privk "sig" ca)))
+      (load static-key-0 (cat pt-2 ignore-0))
+      (stor static-key-0 (cat pt-1 "privkey" self ra-0 serial-b ca)))
+    ((recv (cat (exp (gen) (mul ra (rec ra-0))) ra-1))
+      (send (cat (exp (gen) (mul ra (rec ra-0))) ra-1)))
+    ((send
+       (sig (cert-req self (exp (gen) ra-1) ca-0) (privk "sig" self)))
+      (recv
+        (sig (cert self (exp (gen) ra-1) ca-0 serial)
+          (privk "sig" ca-0))) (load static-key-1 (cat pt-3 ignore-1))
+      (stor static-key-1 (cat pt-4 "privkey" self ra-1 serial ca-0))))
+  (label 18)
+  (parent 13)
+  (unrealized (6 0) (7 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 mesg) (serial-a serial-b data) (n text)
+    (ca b a ca-0 name) (pt pt-0 pt-1 pt-2 pval)
+    (static-key static-key-0 locn) (ra ra-0 ra-1 rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra)) (static-key static-key)
+    (ra ra-1))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca) (static-key static-key) (ra ra-1))
+  (defstrand cert 2 (galpha (exp (gen) ra-1)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand get-cert 1 (self b) (ca ca) (ra ra))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca-0) (galpha (exp (gen) (mul ra (rec ra-0) ra-1)))
+    (static-key static-key-0) (rb ra-0))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-b) (self b)
+    (ca ca-0) (static-key static-key-0) (ra ra-0))
+  (deflistener (cat (exp (gen) (mul ra (rec ra-0))) ra-1))
+  (precedes ((0 2) (5 2)) ((1 0) (2 0)) ((1 3) (0 0)) ((1 3) (7 0))
+    ((2 1) (1 1)) ((3 1) (0 1)) ((3 1) (6 1)) ((4 0) (3 0))
+    ((4 0) (7 0)) ((5 3) (0 3)) ((6 0) (7 0)) ((6 3) (5 0))
+    ((7 1) (5 1)))
+  (non-orig (privk "sig" ca) (privk "sig" b))
+  (uniq-orig serial-a serial-b n)
+  (uniq-gen ra ra-0 ra-1)
+  (gen-st (cat "privkey" b ra-0 serial-b ca-0)
+    (cat "privkey" a ra-1 serial-a ca))
+  (facts (neq a b) (neq b a))
+  (leads-to ((1 3) (0 0)) ((6 3) (5 0)))
+  (rule fact-resp-neq0 trRl_get-cert-at-2 trRl_get-cert-at-3)
+  (operation nonce-test (displaced 8 1 get-cert 4) ra-1 (7 0))
+  (traces
+    ((load static-key (cat pt "privkey" a ra-1 serial-a ca))
+      (recv (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-1))))
+      (recv n))
+    ((send (sig (cert-req a (exp (gen) ra-1) ca) (privk "sig" a)))
+      (recv
+        (sig (cert a (exp (gen) ra-1) ca serial-a) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra-1 serial-a ca)))
+    ((recv (sig (cert-req a (exp (gen) ra-1) ca) (privk "sig" a)))
+      (send
+        (sig (cert a (exp (gen) ra-1) ca serial-a) (privk "sig" ca))))
+    ((recv (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (send (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca))))
+    ((send (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b))))
+    ((load static-key-0 (cat pt-1 "privkey" b ra-0 serial-b ca-0))
+      (recv
+        (sig (cert a (exp (gen) (mul ra (rec ra-0) ra-1)) ca-0 serial-a)
+          (privk "sig" ca-0)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-1))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra-0) ca-0) (privk "sig" b)))
+      (recv
+        (sig (cert b (exp (gen) ra-0) ca-0 serial-b)
+          (privk "sig" ca-0))) (load static-key-0 (cat pt-2 ignore-0))
+      (stor static-key-0 (cat pt-1 "privkey" b ra-0 serial-b ca-0)))
+    ((recv (cat (exp (gen) (mul ra (rec ra-0))) ra-1))
+      (send (cat (exp (gen) (mul ra (rec ra-0))) ra-1))))
+  (label 19)
+  (parent 14)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 mesg) (serial-a serial-b data) (n text)
+    (a self ca name) (pt pt-0 pt-1 pt-2 pval)
+    (static-key static-key-0 locn) (ra ra-0 rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b self) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (ra ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-b)
+    (subj self) (ca ca))
+  (deflistener (exp (gen) (mul ra ra-0)))
+  (deflistener (cat (exp (gen) ra) ra-0))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-b) (self self)
+    (ca ca) (static-key static-key-0) (ra ra-0))
+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((3 1) (0 1)) ((3 1) (6 1)) ((4 1) (0 3)) ((5 1) (4 0))
+    ((6 0) (3 0)) ((6 3) (5 0)))
+  (non-orig (privk "sig" self) (privk "sig" ca))
+  (uniq-orig serial-a serial-b n)
+  (uniq-gen ra ra-0)
+  (gen-st (cat "privkey" a ra serial-a ca))
+  (facts (neq a self) (neq self a))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation encryption-test (displaced 7 3 cert 2)
+    (sig (cert self (exp (gen) ra-0) ca serial) (privk "sig" ca)) (6 1))
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca))
+      (recv
+        (sig (cert self (exp (gen) ra-0) ca serial-b) (privk "sig" ca)))
+      (send (enc n a self serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (recv n))
+    ((send (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (recv (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra serial-a ca)))
+    ((recv (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (send (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca))))
+    ((recv (sig (cert-req self (exp (gen) ra-0) ca) (privk "sig" self)))
+      (send
+        (sig (cert self (exp (gen) ra-0) ca serial-b)
+          (privk "sig" ca))))
+    ((recv (exp (gen) (mul ra ra-0))) (send (exp (gen) (mul ra ra-0))))
+    ((recv (cat (exp (gen) ra) ra-0)) (send (cat (exp (gen) ra) ra-0)))
+    ((send (sig (cert-req self (exp (gen) ra-0) ca) (privk "sig" self)))
+      (recv
+        (sig (cert self (exp (gen) ra-0) ca serial-b) (privk "sig" ca)))
+      (load static-key-0 (cat pt-1 ignore-0))
+      (stor static-key-0 (cat pt-2 "privkey" self ra-0 serial-b ca))))
+  (label 20)
+  (parent 15)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 mesg) (serial-a serial-b serial data) (n text)
+    (a self ca name) (pt pt-0 pt-1 pt-2 pval)
+    (static-key static-key-0 locn) (ra ra-0 rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b self) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (ra ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-b)
+    (subj self) (ca ca))
+  (deflistener (exp (gen) (mul ra ra-0)))
+  (deflistener (cat (exp (gen) ra) ra-0))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial) (self self)
+    (ca ca) (static-key static-key-0) (ra ra-0))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial)
+    (subj self) (ca ca))
+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((3 1) (0 1)) ((4 1) (0 3)) ((5 1) (4 0)) ((6 0) (3 0))
+    ((6 0) (7 0)) ((6 3) (5 0)) ((7 1) (6 1)))
+  (non-orig (privk "sig" self) (privk "sig" ca))
+  (uniq-orig serial-a serial-b serial n)
+  (uniq-gen ra ra-0)
+  (gen-st (cat "privkey" a ra serial-a ca))
+  (facts (neq a self) (neq self a))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation encryption-test (added-strand cert 2)
+    (sig (cert self (exp (gen) ra-0) ca serial) (privk "sig" ca)) (6 1))
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca))
+      (recv
+        (sig (cert self (exp (gen) ra-0) ca serial-b) (privk "sig" ca)))
+      (send (enc n a self serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (recv n))
+    ((send (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (recv (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra serial-a ca)))
+    ((recv (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (send (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca))))
+    ((recv (sig (cert-req self (exp (gen) ra-0) ca) (privk "sig" self)))
+      (send
+        (sig (cert self (exp (gen) ra-0) ca serial-b)
+          (privk "sig" ca))))
+    ((recv (exp (gen) (mul ra ra-0))) (send (exp (gen) (mul ra ra-0))))
+    ((recv (cat (exp (gen) ra) ra-0)) (send (cat (exp (gen) ra) ra-0)))
+    ((send (sig (cert-req self (exp (gen) ra-0) ca) (privk "sig" self)))
+      (recv
+        (sig (cert self (exp (gen) ra-0) ca serial) (privk "sig" ca)))
+      (load static-key-0 (cat pt-1 ignore-0))
+      (stor static-key-0 (cat pt-2 "privkey" self ra-0 serial ca)))
+    ((recv (sig (cert-req self (exp (gen) ra-0) ca) (privk "sig" self)))
+      (send
+        (sig (cert self (exp (gen) ra-0) ca serial) (privk "sig" ca)))))
+  (label 21)
+  (parent 15)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 ignore-1 mesg) (serial-a serial-b data)
+    (n text) (a ca self ca-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (static-key static-key-0 static-key-1 locn) (ra ra-0 ra-1 rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b self) (ca ca-0) (galpha (exp (gen) ra-1)) (static-key static-key)
+    (ra ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca-0) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca-0))
+  (defstrand cert 2 (galpha (exp (gen) ra-1)) (serial serial-b)
+    (subj self) (ca ca-0))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b self) (ca ca) (galpha (exp (gen) (mul ra (rec ra-0) ra-1)))
+    (static-key static-key-0) (rb ra-0))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-b) (self self)
+    (ca ca) (static-key static-key-0) (ra ra-0))
+  (deflistener (cat (exp (gen) (mul ra (rec ra-0))) ra-1))
+  (defstrand get-cert 4 (ignore ignore-1) (serial serial-b) (self self)
+    (ca ca-0) (static-key static-key-1) (ra ra-1))
+  (precedes ((0 2) (4 2)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 0))
+    ((2 1) (1 1)) ((2 1) (4 1)) ((3 1) (0 1)) ((3 1) (5 1))
+    ((3 1) (7 1)) ((4 3) (0 3)) ((5 0) (6 0)) ((5 3) (4 0))
+    ((6 1) (4 1)) ((7 0) (3 0)) ((7 3) (6 0)))
+  (non-orig (privk "sig" self) (privk "sig" ca-0))
+  (uniq-orig serial-a serial-b n)
+  (uniq-gen ra ra-0 ra-1)
+  (gen-st (cat "privkey" a ra serial-a ca-0)
+    (cat "privkey" self ra-0 serial-b ca))
+  (facts (neq a self) (neq self a))
+  (leads-to ((1 3) (0 0)) ((5 3) (4 0)))
+  (rule fact-resp-neq0 trRl_get-cert-at-2 trRl_get-cert-at-3)
+  (operation encryption-test (displaced 8 3 cert 2)
+    (sig (cert self (exp (gen) ra-1) ca-0 serial) (privk "sig" ca-0))
+    (7 1))
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca-0))
+      (recv
+        (sig (cert self (exp (gen) ra-1) ca-0 serial-b)
+          (privk "sig" ca-0)))
+      (send (enc n a self serial-a serial-b (exp (gen) (mul ra ra-1))))
+      (recv n))
+    ((send (sig (cert-req a (exp (gen) ra) ca-0) (privk "sig" a)))
+      (recv
+        (sig (cert a (exp (gen) ra) ca-0 serial-a) (privk "sig" ca-0)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra serial-a ca-0)))
+    ((recv (sig (cert-req a (exp (gen) ra) ca-0) (privk "sig" a)))
+      (send
+        (sig (cert a (exp (gen) ra) ca-0 serial-a) (privk "sig" ca-0))))
+    ((recv
+       (sig (cert-req self (exp (gen) ra-1) ca-0) (privk "sig" self)))
+      (send
+        (sig (cert self (exp (gen) ra-1) ca-0 serial-b)
+          (privk "sig" ca-0))))
+    ((load static-key-0 (cat pt-1 "privkey" self ra-0 serial-b ca))
+      (recv
+        (sig (cert a (exp (gen) (mul ra (rec ra-0) ra-1)) ca serial-a)
+          (privk "sig" ca)))
+      (recv (enc n a self serial-a serial-b (exp (gen) (mul ra ra-1))))
+      (send n))
+    ((send (sig (cert-req self (exp (gen) ra-0) ca) (privk "sig" self)))
+      (recv
+        (sig (cert self (exp (gen) ra-0) ca serial-b) (privk "sig" ca)))
+      (load static-key-0 (cat pt-2 ignore-0))
+      (stor static-key-0 (cat pt-1 "privkey" self ra-0 serial-b ca)))
+    ((recv (cat (exp (gen) (mul ra (rec ra-0))) ra-1))
+      (send (cat (exp (gen) (mul ra (rec ra-0))) ra-1)))
+    ((send
+       (sig (cert-req self (exp (gen) ra-1) ca-0) (privk "sig" self)))
+      (recv
+        (sig (cert self (exp (gen) ra-1) ca-0 serial-b)
+          (privk "sig" ca-0))) (load static-key-1 (cat pt-3 ignore-1))
+      (stor static-key-1 (cat pt-4 "privkey" self ra-1 serial-b ca-0))))
+  (label 22)
+  (parent 18)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 ignore-1 mesg) (serial-a serial-b serial data)
+    (n text) (a ca self ca-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (static-key static-key-0 static-key-1 locn) (ra ra-0 ra-1 rndx))
+  (defstrand init 4 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b self) (ca ca-0) (galpha (exp (gen) ra-1)) (static-key static-key)
+    (ra ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-a) (self a)
+    (ca ca-0) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca-0))
+  (defstrand cert 2 (galpha (exp (gen) ra-1)) (serial serial-b)
+    (subj self) (ca ca-0))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b self) (ca ca) (galpha (exp (gen) (mul ra (rec ra-0) ra-1)))
+    (static-key static-key-0) (rb ra-0))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-b) (self self)
+    (ca ca) (static-key static-key-0) (ra ra-0))
+  (deflistener (cat (exp (gen) (mul ra (rec ra-0))) ra-1))
+  (defstrand get-cert 4 (ignore ignore-1) (serial serial) (self self)
+    (ca ca-0) (static-key static-key-1) (ra ra-1))
+  (defstrand cert 2 (galpha (exp (gen) ra-1)) (serial serial)
+    (subj self) (ca ca-0))
+  (precedes ((0 2) (4 2)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 0))
+    ((2 1) (1 1)) ((2 1) (4 1)) ((3 1) (0 1)) ((3 1) (5 1))
+    ((4 3) (0 3)) ((5 0) (6 0)) ((5 3) (4 0)) ((6 1) (4 1))
+    ((7 0) (3 0)) ((7 0) (8 0)) ((7 3) (6 0)) ((8 1) (7 1)))
+  (non-orig (privk "sig" self) (privk "sig" ca-0))
+  (uniq-orig serial-a serial-b serial n)
+  (uniq-gen ra ra-0 ra-1)
+  (gen-st (cat "privkey" a ra serial-a ca-0)
+    (cat "privkey" self ra-0 serial-b ca))
+  (facts (neq a self) (neq self a))
+  (leads-to ((1 3) (0 0)) ((5 3) (4 0)))
+  (rule fact-resp-neq0 trRl_get-cert-at-2 trRl_get-cert-at-3)
+  (operation encryption-test (added-strand cert 2)
+    (sig (cert self (exp (gen) ra-1) ca-0 serial) (privk "sig" ca-0))
+    (7 1))
+  (traces
+    ((load static-key (cat pt "privkey" a ra serial-a ca-0))
+      (recv
+        (sig (cert self (exp (gen) ra-1) ca-0 serial-b)
+          (privk "sig" ca-0)))
+      (send (enc n a self serial-a serial-b (exp (gen) (mul ra ra-1))))
+      (recv n))
+    ((send (sig (cert-req a (exp (gen) ra) ca-0) (privk "sig" a)))
+      (recv
+        (sig (cert a (exp (gen) ra) ca-0 serial-a) (privk "sig" ca-0)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" a ra serial-a ca-0)))
+    ((recv (sig (cert-req a (exp (gen) ra) ca-0) (privk "sig" a)))
+      (send
+        (sig (cert a (exp (gen) ra) ca-0 serial-a) (privk "sig" ca-0))))
+    ((recv
+       (sig (cert-req self (exp (gen) ra-1) ca-0) (privk "sig" self)))
+      (send
+        (sig (cert self (exp (gen) ra-1) ca-0 serial-b)
+          (privk "sig" ca-0))))
+    ((load static-key-0 (cat pt-1 "privkey" self ra-0 serial-b ca))
+      (recv
+        (sig (cert a (exp (gen) (mul ra (rec ra-0) ra-1)) ca serial-a)
+          (privk "sig" ca)))
+      (recv (enc n a self serial-a serial-b (exp (gen) (mul ra ra-1))))
+      (send n))
+    ((send (sig (cert-req self (exp (gen) ra-0) ca) (privk "sig" self)))
+      (recv
+        (sig (cert self (exp (gen) ra-0) ca serial-b) (privk "sig" ca)))
+      (load static-key-0 (cat pt-2 ignore-0))
+      (stor static-key-0 (cat pt-1 "privkey" self ra-0 serial-b ca)))
+    ((recv (cat (exp (gen) (mul ra (rec ra-0))) ra-1))
+      (send (cat (exp (gen) (mul ra (rec ra-0))) ra-1)))
+    ((send
+       (sig (cert-req self (exp (gen) ra-1) ca-0) (privk "sig" self)))
+      (recv
+        (sig (cert self (exp (gen) ra-1) ca-0 serial)
+          (privk "sig" ca-0))) (load static-key-1 (cat pt-3 ignore-1))
+      (stor static-key-1 (cat pt-4 "privkey" self ra-1 serial ca-0)))
+    ((recv
+       (sig (cert-req self (exp (gen) ra-1) ca-0) (privk "sig" self)))
+      (send
+        (sig (cert self (exp (gen) ra-1) ca-0 serial)
+          (privk "sig" ca-0)))))
+  (label 23)
+  (parent 18)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol dhstatic-state diffie-hellman
+  (defrole cert
+    (vars (subj ca name) (serial data) (galpha mesg))
+    (trace (recv (sig (cert-req subj galpha ca) (privk "sig" subj)))
+      (send (sig (cert subj galpha ca serial) (privk "sig" ca))))
+    (uniq-orig serial)
+    (comment "Certificate Authority"))
+  (defrole get-cert
+    (vars (self ca name) (serial data) (ra rndx) (static-key locn)
+      (ignore mesg))
+    (trace
+      (send (sig (cert-req self (exp (gen) ra) ca) (privk "sig" self)))
+      (recv (sig (cert self (exp (gen) ra) ca serial) (privk "sig" ca)))
+      (load static-key ignore)
+      (stor static-key (cat "privkey" self ra serial ca)))
+    (uniq-gen ra)
+    (comment "Get certified"))
+  (defrole init
+    (vars (a b ca name) (ra rndx) (serial-a serial-b data) (galpha base)
+      (n text) (static-key locn))
+    (trace (load static-key (cat "privkey" a ra serial-a ca))
+      (recv (sig (cert b galpha ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp galpha ra))) (recv n))
+    (uniq-orig n)
+    (gen-st (cat "privkey" a ra serial-a ca))
+    (facts (neq a b))
+    (comment "Initiator is A"))
+  (defrole resp
+    (vars (a b ca name) (rb rndx) (serial-b serial-a data) (galpha base)
+      (n text) (static-key locn))
+    (trace (load static-key (cat "privkey" b rb serial-b ca))
+      (recv (sig (cert a galpha ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp galpha rb))) (send n))
+    (facts (neq a b))
+    (gen-st (cat "privkey" b rb serial-b ca))
+    (comment "Responder is B"))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule fact-init-neq0
+    (forall ((z strd) (b a name))
+      (implies
+        (and (p "init" z (idx 2)) (p "init" "b" z b) (p "init" "a" z a))
+        (fact neq a b))))
+  (defgenrule fact-resp-neq0
+    (forall ((z strd) (b a name))
+      (implies
+        (and (p "resp" z (idx 2)) (p "resp" "b" z b) (p "resp" "a" z a))
+        (fact neq a b))))
+  (defgenrule trRl_get-cert-at-3
+    (forall ((z strd))
+      (implies (p "get-cert" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_get-cert-at-2
+    (forall ((z strd))
+      (implies (p "get-cert" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule gen-st-init-0
+    (forall ((z strd) (serial-a data) (ra rndx) (ca a name))
+      (implies
+        (and (p "init" z (idx 1)) (p "init" "serial-a" z serial-a)
+          (p "init" "ra" z ra) (p "init" "ca" z ca) (p "init" "a" z a))
+        (gen-st (cat "privkey" a ra serial-a ca)))))
+  (defgenrule gen-st-resp-0
+    (forall ((z strd) (serial-b data) (rb rndx) (ca b name))
+      (implies
+        (and (p "resp" z (idx 1)) (p "resp" "serial-b" z serial-b)
+          (p "resp" "rb" z rb) (p "resp" "ca" z ca) (p "resp" "b" z b))
+        (gen-st (cat "privkey" b rb serial-b ca)))))
+  (lang (cert-req (tupl 3)) (cert (tupl 4)) (sig sign)))
+
+(defskeleton dhstatic-state
+  (vars (serial-b serial-a data) (n text) (ca a b name) (pt pval)
+    (galpha base) (static-key locn) (rb rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca) (galpha galpha) (static-key static-key) (rb rb))
+  (non-orig (privk "sig" ca) (privk "sig" a))
+  (traces
+    ((load static-key (cat pt "privkey" b rb serial-b ca))
+      (recv (sig (cert a galpha ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp galpha rb))) (send n)))
+  (label 24)
+  (unrealized (0 1))
+  (origs)
+  (comment "Not closed under rules"))
+
+(defskeleton dhstatic-state
+  (vars (serial-b serial-a data) (n text) (ca a b name) (pt pval)
+    (galpha base) (static-key locn) (rb rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca) (galpha galpha) (static-key static-key) (rb rb))
+  (non-orig (privk "sig" ca) (privk "sig" a))
+  (gen-st (cat "privkey" b rb serial-b ca))
+  (facts (neq b a) (neq a b))
+  (rule fact-init-neq0 fact-resp-neq0 gen-st-resp-0)
+  (traces
+    ((load static-key (cat pt "privkey" b rb serial-b ca))
+      (recv (sig (cert a galpha ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp galpha rb))) (send n)))
+  (label 25)
+  (parent 24)
+  (unrealized (0 0) (0 1))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore mesg) (serial-b serial-a data) (n text) (ca a b name)
+    (pt pt-0 pval) (galpha base) (static-key locn) (ra rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca) (galpha galpha) (static-key static-key) (rb ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca) (static-key static-key) (ra ra))
+  (precedes ((1 3) (0 0)))
+  (non-orig (privk "sig" ca) (privk "sig" a))
+  (uniq-gen ra)
+  (gen-st (cat "privkey" b ra serial-b ca))
+  (facts (neq b a) (neq a b))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation channel-test (added-strand get-cert 4)
+    (ch-msg static-key (cat pt "privkey" b ra serial-b ca)) (0 0))
+  (traces
+    ((load static-key (cat pt "privkey" b ra serial-b ca))
+      (recv (sig (cert a galpha ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp galpha ra))) (send n))
+    ((send (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (recv (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra serial-b ca))))
+  (label 26)
+  (parent 25)
+  (unrealized (0 1) (0 2) (1 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore mesg) (serial-b serial-a data) (n text) (ca a b name)
+    (pt pt-0 pval) (galpha base) (static-key locn) (ra rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca) (galpha galpha) (static-key static-key) (rb ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca))
+  (precedes ((1 0) (2 0)) ((1 3) (0 0)) ((2 1) (1 1)))
+  (non-orig (privk "sig" ca) (privk "sig" a))
+  (uniq-orig serial-b)
+  (uniq-gen ra)
+  (gen-st (cat "privkey" b ra serial-b ca))
+  (facts (neq b a) (neq a b))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation encryption-test (added-strand cert 2)
+    (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)) (1 1))
+  (traces
+    ((load static-key (cat pt "privkey" b ra serial-b ca))
+      (recv (sig (cert a galpha ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp galpha ra))) (send n))
+    ((send (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (recv (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra serial-b ca)))
+    ((recv (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (send
+        (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))))
+  (label 27)
+  (parent 26)
+  (unrealized (0 1) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore mesg) (serial-b serial-a data) (n text) (ca a b name)
+    (pt pt-0 pval) (galpha base) (static-key locn) (ra rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca) (galpha galpha) (static-key static-key) (rb ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand cert 2 (galpha galpha) (serial serial-a) (subj a) (ca ca))
+  (precedes ((1 0) (2 0)) ((1 3) (0 0)) ((2 1) (1 1)) ((3 1) (0 1)))
+  (non-orig (privk "sig" ca) (privk "sig" a))
+  (uniq-orig serial-b serial-a)
+  (uniq-gen ra)
+  (gen-st (cat "privkey" b ra serial-b ca))
+  (facts (neq b a) (neq a b))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation encryption-test (added-strand cert 2)
+    (sig (cert a galpha ca serial-a) (privk "sig" ca)) (0 1))
+  (traces
+    ((load static-key (cat pt "privkey" b ra serial-b ca))
+      (recv (sig (cert a galpha ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp galpha ra))) (send n))
+    ((send (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (recv (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra serial-b ca)))
+    ((recv (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (send (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca))))
+    ((recv (sig (cert-req a galpha ca) (privk "sig" a)))
+      (send (sig (cert a galpha ca serial-a) (privk "sig" ca)))))
+  (label 28)
+  (parent 27)
+  (unrealized (0 2) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore mesg) (serial-b serial-a data) (n text) (ca a b name)
+    (pt pt-0 pval) (static-key locn) (ra ra-0 rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (rb ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand get-cert 1 (self a) (ca ca) (ra ra-0))
+  (precedes ((1 0) (2 0)) ((1 3) (0 0)) ((2 1) (1 1)) ((3 1) (0 1))
+    ((4 0) (3 0)))
+  (non-orig (privk "sig" ca) (privk "sig" a))
+  (uniq-orig serial-b serial-a)
+  (uniq-gen ra ra-0)
+  (gen-st (cat "privkey" b ra serial-b ca))
+  (facts (neq b a) (neq a b))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation encryption-test (added-strand get-cert 1)
+    (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a)) (3 0))
+  (traces
+    ((load static-key (cat pt "privkey" b ra serial-b ca))
+      (recv
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (recv (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra serial-b ca)))
+    ((recv (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (send (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca))))
+    ((recv (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a)))
+      (send
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca))))
+    ((send (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a)))))
+  (label 29)
+  (parent 28)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore mesg) (serial-b serial-a data) (n text)
+    (ca a b ca-0 name) (pt pt-0 pt-1 pval)
+    (static-key static-key-0 locn) (ra ra-0 ra-1 rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (rb ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand get-cert 1 (self a) (ca ca) (ra ra-0))
+  (defstrand init 3 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca-0) (galpha (exp (gen) (mul ra ra-0 (rec ra-1))))
+    (static-key static-key-0) (ra ra-1))
+  (precedes ((1 0) (2 0)) ((1 3) (0 0)) ((2 1) (1 1)) ((2 1) (5 1))
+    ((3 1) (0 1)) ((3 1) (5 0)) ((4 0) (3 0)) ((5 2) (0 2)))
+  (non-orig (privk "sig" ca) (privk "sig" a))
+  (uniq-orig serial-b serial-a n)
+  (uniq-gen ra ra-0)
+  (gen-st (cat "privkey" a ra-1 serial-a ca-0)
+    (cat "privkey" b ra serial-b ca))
+  (facts (neq b a) (neq a b))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-resp-neq0 gen-st-resp-0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation encryption-test (added-strand init 3)
+    (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))) (0 2))
+  (traces
+    ((load static-key (cat pt "privkey" b ra serial-b ca))
+      (recv
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (recv (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra serial-b ca)))
+    ((recv (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (send (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca))))
+    ((recv (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a)))
+      (send
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca))))
+    ((send (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a))))
+    ((load static-key-0 (cat pt-1 "privkey" a ra-1 serial-a ca-0))
+      (recv
+        (sig (cert b (exp (gen) (mul ra ra-0 (rec ra-1))) ca-0 serial-b)
+          (privk "sig" ca-0)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))))
+  (label 30)
+  (parent 29)
+  (unrealized (5 0) (5 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore mesg) (serial-b serial-a data) (n text) (ca a b name)
+    (pt pt-0 pval) (static-key locn) (ra ra-0 rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (rb ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand get-cert 1 (self a) (ca ca) (ra ra-0))
+  (deflistener (exp (gen) (mul ra ra-0)))
+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((3 1) (0 1)) ((4 0) (3 0)) ((4 0) (5 0)) ((5 1) (0 2)))
+  (non-orig (privk "sig" ca) (privk "sig" a))
+  (uniq-orig serial-b serial-a)
+  (uniq-gen ra ra-0)
+  (gen-st (cat "privkey" b ra serial-b ca))
+  (facts (neq b a) (neq a b))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation encryption-test (added-listener (exp (gen) (mul ra ra-0)))
+    (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))) (0 2))
+  (traces
+    ((load static-key (cat pt "privkey" b ra serial-b ca))
+      (recv
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (recv (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra serial-b ca)))
+    ((recv (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (send (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca))))
+    ((recv (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a)))
+      (send
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca))))
+    ((send (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a))))
+    ((recv (exp (gen) (mul ra ra-0))) (send (exp (gen) (mul ra ra-0)))))
+  (label 31)
+  (parent 29)
+  (unrealized (5 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 mesg) (serial-b serial-a data) (n text)
+    (a b ca name) (pt pt-0 pt-1 pt-2 pval)
+    (static-key static-key-0 locn) (ra ra-0 rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (rb ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand init 3 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra)) (static-key static-key-0)
+    (ra ra-0))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-a) (self a)
+    (ca ca) (static-key static-key-0) (ra ra-0))
+  (precedes ((1 0) (2 0)) ((1 3) (0 0)) ((2 1) (1 1)) ((2 1) (4 1))
+    ((3 1) (0 1)) ((3 1) (5 1)) ((4 2) (0 2)) ((5 0) (3 0))
+    ((5 3) (4 0)))
+  (non-orig (privk "sig" a) (privk "sig" ca))
+  (uniq-orig serial-b serial-a n)
+  (uniq-gen ra ra-0)
+  (gen-st (cat "privkey" a ra-0 serial-a ca)
+    (cat "privkey" b ra serial-b ca))
+  (facts (neq b a) (neq a b))
+  (leads-to ((1 3) (0 0)) ((5 3) (4 0)))
+  (rule fact-resp-neq0 trRl_get-cert-at-2 trRl_get-cert-at-3)
+  (operation channel-test (displaced 4 6 get-cert 4)
+    (ch-msg static-key-0 (cat pt-1 "privkey" a ra-1 serial-a ca)) (5 0))
+  (traces
+    ((load static-key (cat pt "privkey" b ra serial-b ca))
+      (recv
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (recv (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra serial-b ca)))
+    ((recv (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (send (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca))))
+    ((recv (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a)))
+      (send
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca))))
+    ((load static-key-0 (cat pt-1 "privkey" a ra-0 serial-a ca))
+      (recv (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0)))))
+    ((send (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a)))
+      (recv
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca)))
+      (load static-key-0 (cat pt-2 ignore-0))
+      (stor static-key-0 (cat pt-1 "privkey" a ra-0 serial-a ca))))
+  (label 32)
+  (parent 30)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((ca ca) (a a) (b b) (rb ra) (serial-b serial-b)
+        (serial-a serial-a) (galpha (exp (gen) ra-0)) (n n)
+        (static-key static-key))))
+  (origs (pt-1 (5 3)) (n (4 2)) (serial-a (3 1)) (serial-b (2 1))
+    (pt (1 3))))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 mesg) (serial-b serial-a data) (n text)
+    (ca a b ca-0 name) (pt pt-0 pt-1 pt-2 pval)
+    (static-key static-key-0 locn) (ra ra-0 ra-1 rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (rb ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand get-cert 1 (self a) (ca ca) (ra ra-0))
+  (defstrand init 3 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca-0) (galpha (exp (gen) (mul ra ra-0 (rec ra-1))))
+    (static-key static-key-0) (ra ra-1))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-a) (self a)
+    (ca ca-0) (static-key static-key-0) (ra ra-1))
+  (precedes ((1 0) (2 0)) ((1 3) (0 0)) ((2 1) (1 1)) ((2 1) (5 1))
+    ((3 1) (0 1)) ((3 1) (6 1)) ((4 0) (3 0)) ((5 2) (0 2))
+    ((6 3) (5 0)))
+  (non-orig (privk "sig" ca) (privk "sig" a))
+  (uniq-orig serial-b serial-a n)
+  (uniq-gen ra ra-0 ra-1)
+  (gen-st (cat "privkey" a ra-1 serial-a ca-0)
+    (cat "privkey" b ra serial-b ca))
+  (facts (neq b a) (neq a b))
+  (leads-to ((1 3) (0 0)) ((6 3) (5 0)))
+  (rule fact-resp-neq0 trRl_get-cert-at-2 trRl_get-cert-at-3)
+  (operation channel-test (added-strand get-cert 4)
+    (ch-msg static-key-0 (cat pt-1 "privkey" a ra-1 serial-a ca-0))
+    (5 0))
+  (traces
+    ((load static-key (cat pt "privkey" b ra serial-b ca))
+      (recv
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (recv (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra serial-b ca)))
+    ((recv (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (send (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca))))
+    ((recv (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a)))
+      (send
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca))))
+    ((send (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a))))
+    ((load static-key-0 (cat pt-1 "privkey" a ra-1 serial-a ca-0))
+      (recv
+        (sig (cert b (exp (gen) (mul ra ra-0 (rec ra-1))) ca-0 serial-b)
+          (privk "sig" ca-0)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0)))))
+    ((send (sig (cert-req a (exp (gen) ra-1) ca-0) (privk "sig" a)))
+      (recv
+        (sig (cert a (exp (gen) ra-1) ca-0 serial-a)
+          (privk "sig" ca-0))) (load static-key-0 (cat pt-2 ignore-0))
+      (stor static-key-0 (cat pt-1 "privkey" a ra-1 serial-a ca-0))))
+  (label 33)
+  (parent 30)
+  (unrealized (5 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore mesg) (serial-b serial-a data) (n text) (ca a b name)
+    (pt pt-0 pval) (static-key locn) (ra ra-0 rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (rb ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand get-cert 1 (self a) (ca ca) (ra ra-0))
+  (deflistener (exp (gen) (mul ra ra-0)))
+  (deflistener (cat (exp (gen) ra) ra-0))
+  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((3 1) (0 1)) ((4 0) (3 0)) ((4 0) (6 0)) ((5 1) (0 2))
+    ((6 1) (5 0)))
+  (non-orig (privk "sig" ca) (privk "sig" a))
+  (uniq-orig serial-b serial-a)
+  (uniq-gen ra ra-0)
+  (gen-st (cat "privkey" b ra serial-b ca))
+  (facts (neq b a) (neq a b))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation nonce-test (added-listener (cat (exp (gen) ra) ra-0))
+    (exp (gen) (mul ra ra-0)) (5 0))
+  (traces
+    ((load static-key (cat pt "privkey" b ra serial-b ca))
+      (recv
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (recv (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra serial-b ca)))
+    ((recv (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (send (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca))))
+    ((recv (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a)))
+      (send
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca))))
+    ((send (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a))))
+    ((recv (exp (gen) (mul ra ra-0))) (send (exp (gen) (mul ra ra-0))))
+    ((recv (cat (exp (gen) ra) ra-0)) (send (cat (exp (gen) ra) ra-0))))
+  (label 34)
+  (parent 31)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore mesg) (serial-b serial-a data) (n text) (ca a b name)
+    (pt pt-0 pval) (static-key locn) (ra ra-0 rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (rb ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand get-cert 1 (self a) (ca ca) (ra ra-0))
+  (deflistener (exp (gen) (mul ra ra-0)))
+  (deflistener (cat (exp (gen) ra-0) ra))
+  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((3 1) (0 1)) ((4 0) (3 0)) ((4 0) (6 0)) ((5 1) (0 2))
+    ((6 1) (5 0)))
+  (non-orig (privk "sig" ca) (privk "sig" a))
+  (uniq-orig serial-b serial-a)
+  (uniq-gen ra ra-0)
+  (gen-st (cat "privkey" b ra serial-b ca))
+  (facts (neq b a) (neq a b))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation nonce-test (added-listener (cat (exp (gen) ra-0) ra))
+    (exp (gen) (mul ra ra-0)) (5 0))
+  (traces
+    ((load static-key (cat pt "privkey" b ra serial-b ca))
+      (recv
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (recv (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra serial-b ca)))
+    ((recv (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (send (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca))))
+    ((recv (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a)))
+      (send
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca))))
+    ((send (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a))))
+    ((recv (exp (gen) (mul ra ra-0))) (send (exp (gen) (mul ra ra-0))))
+    ((recv (cat (exp (gen) ra-0) ra)) (send (cat (exp (gen) ra-0) ra))))
+  (label 35)
+  (parent 31)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 mesg) (serial-b serial-a data) (n text)
+    (ca a b ca-0 name) (pt pt-0 pt-1 pt-2 pval)
+    (static-key static-key-0 locn) (ra ra-0 ra-1 rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (rb ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand get-cert 1 (self a) (ca ca) (ra ra-0))
+  (defstrand init 3 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca-0) (galpha (exp (gen) (mul ra ra-0 (rec ra-1))))
+    (static-key static-key-0) (ra ra-1))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-a) (self a)
+    (ca ca-0) (static-key static-key-0) (ra ra-1))
+  (deflistener (cat (exp (gen) (mul ra ra-0)) ra-1))
+  (precedes ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((2 1) (5 1)) ((3 1) (0 1)) ((3 1) (6 1)) ((4 0) (3 0))
+    ((4 0) (7 0)) ((5 2) (0 2)) ((6 0) (7 0)) ((6 3) (5 0))
+    ((7 1) (5 1)))
+  (non-orig (privk "sig" ca) (privk "sig" a))
+  (uniq-orig serial-b serial-a n)
+  (uniq-gen ra ra-0 ra-1)
+  (gen-st (cat "privkey" a ra-1 serial-a ca-0)
+    (cat "privkey" b ra serial-b ca))
+  (facts (neq b a) (neq a b))
+  (leads-to ((1 3) (0 0)) ((6 3) (5 0)))
+  (rule fact-resp-neq0 trRl_get-cert-at-2 trRl_get-cert-at-3)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ra ra-0)) ra-1))
+    (exp (gen) (mul ra ra-0 (rec ra-1))) (5 1))
+  (traces
+    ((load static-key (cat pt "privkey" b ra serial-b ca))
+      (recv
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (recv (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra serial-b ca)))
+    ((recv (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (send (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca))))
+    ((recv (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a)))
+      (send
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca))))
+    ((send (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a))))
+    ((load static-key-0 (cat pt-1 "privkey" a ra-1 serial-a ca-0))
+      (recv
+        (sig (cert b (exp (gen) (mul ra ra-0 (rec ra-1))) ca-0 serial-b)
+          (privk "sig" ca-0)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0)))))
+    ((send (sig (cert-req a (exp (gen) ra-1) ca-0) (privk "sig" a)))
+      (recv
+        (sig (cert a (exp (gen) ra-1) ca-0 serial-a)
+          (privk "sig" ca-0))) (load static-key-0 (cat pt-2 ignore-0))
+      (stor static-key-0 (cat pt-1 "privkey" a ra-1 serial-a ca-0)))
+    ((recv (cat (exp (gen) (mul ra ra-0)) ra-1))
+      (send (cat (exp (gen) (mul ra ra-0)) ra-1))))
+  (label 36)
+  (parent 33)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 mesg) (serial-b serial-a data) (n text)
+    (ca a b ca-0 name) (pt pt-0 pt-1 pt-2 pval)
+    (static-key static-key-0 locn) (ra ra-0 ra-1 rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (rb ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand get-cert 1 (self a) (ca ca) (ra ra-0))
+  (defstrand init 3 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca-0) (galpha (exp (gen) (mul ra ra-0 (rec ra-1))))
+    (static-key static-key-0) (ra ra-1))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-a) (self a)
+    (ca ca-0) (static-key static-key-0) (ra ra-1))
+  (deflistener (cat (exp (gen) (mul ra (rec ra-1))) ra-0))
+  (precedes ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((2 1) (5 1)) ((3 1) (0 1)) ((3 1) (6 1)) ((4 0) (3 0))
+    ((4 0) (7 0)) ((5 2) (0 2)) ((6 0) (7 0)) ((6 3) (5 0))
+    ((7 1) (5 1)))
+  (non-orig (privk "sig" ca) (privk "sig" a))
+  (uniq-orig serial-b serial-a n)
+  (uniq-gen ra ra-0 ra-1)
+  (gen-st (cat "privkey" a ra-1 serial-a ca-0)
+    (cat "privkey" b ra serial-b ca))
+  (facts (neq b a) (neq a b))
+  (leads-to ((1 3) (0 0)) ((6 3) (5 0)))
+  (rule fact-resp-neq0 trRl_get-cert-at-2 trRl_get-cert-at-3)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ra (rec ra-1))) ra-0))
+    (exp (gen) (mul ra ra-0 (rec ra-1))) (5 1))
+  (traces
+    ((load static-key (cat pt "privkey" b ra serial-b ca))
+      (recv
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (recv (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra serial-b ca)))
+    ((recv (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (send (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca))))
+    ((recv (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a)))
+      (send
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca))))
+    ((send (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a))))
+    ((load static-key-0 (cat pt-1 "privkey" a ra-1 serial-a ca-0))
+      (recv
+        (sig (cert b (exp (gen) (mul ra ra-0 (rec ra-1))) ca-0 serial-b)
+          (privk "sig" ca-0)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0)))))
+    ((send (sig (cert-req a (exp (gen) ra-1) ca-0) (privk "sig" a)))
+      (recv
+        (sig (cert a (exp (gen) ra-1) ca-0 serial-a)
+          (privk "sig" ca-0))) (load static-key-0 (cat pt-2 ignore-0))
+      (stor static-key-0 (cat pt-1 "privkey" a ra-1 serial-a ca-0)))
+    ((recv (cat (exp (gen) (mul ra (rec ra-1))) ra-0))
+      (send (cat (exp (gen) (mul ra (rec ra-1))) ra-0))))
+  (label 37)
+  (parent 33)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 mesg) (serial-b serial-a data) (n text)
+    (ca a b ca-0 name) (pt pt-0 pt-1 pt-2 pval)
+    (static-key static-key-0 locn) (ra ra-0 ra-1 rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (rb ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand get-cert 1 (self a) (ca ca) (ra ra-0))
+  (defstrand init 3 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca-0) (galpha (exp (gen) (mul ra ra-0 (rec ra-1))))
+    (static-key static-key-0) (ra ra-1))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-a) (self a)
+    (ca ca-0) (static-key static-key-0) (ra ra-1))
+  (deflistener (cat (exp (gen) (mul ra-0 (rec ra-1))) ra))
+  (precedes ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((2 1) (5 1)) ((3 1) (0 1)) ((3 1) (6 1)) ((4 0) (3 0))
+    ((4 0) (7 0)) ((5 2) (0 2)) ((6 0) (7 0)) ((6 3) (5 0))
+    ((7 1) (5 1)))
+  (non-orig (privk "sig" ca) (privk "sig" a))
+  (uniq-orig serial-b serial-a n)
+  (uniq-gen ra ra-0 ra-1)
+  (gen-st (cat "privkey" a ra-1 serial-a ca-0)
+    (cat "privkey" b ra serial-b ca))
+  (facts (neq b a) (neq a b))
+  (leads-to ((1 3) (0 0)) ((6 3) (5 0)))
+  (rule fact-resp-neq0 trRl_get-cert-at-2 trRl_get-cert-at-3)
+  (operation nonce-test
+    (added-listener (cat (exp (gen) (mul ra-0 (rec ra-1))) ra))
+    (exp (gen) (mul ra ra-0 (rec ra-1))) (5 1))
+  (traces
+    ((load static-key (cat pt "privkey" b ra serial-b ca))
+      (recv
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (recv (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra serial-b ca)))
+    ((recv (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (send (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca))))
+    ((recv (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a)))
+      (send
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca))))
+    ((send (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a))))
+    ((load static-key-0 (cat pt-1 "privkey" a ra-1 serial-a ca-0))
+      (recv
+        (sig (cert b (exp (gen) (mul ra ra-0 (rec ra-1))) ca-0 serial-b)
+          (privk "sig" ca-0)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0)))))
+    ((send (sig (cert-req a (exp (gen) ra-1) ca-0) (privk "sig" a)))
+      (recv
+        (sig (cert a (exp (gen) ra-1) ca-0 serial-a)
+          (privk "sig" ca-0))) (load static-key-0 (cat pt-2 ignore-0))
+      (stor static-key-0 (cat pt-1 "privkey" a ra-1 serial-a ca-0)))
+    ((recv (cat (exp (gen) (mul ra-0 (rec ra-1))) ra))
+      (send (cat (exp (gen) (mul ra-0 (rec ra-1))) ra))))
+  (label 38)
+  (parent 33)
+  (unrealized (7 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 mesg) (serial-b serial-a serial data) (n text)
+    (b self ca name) (pt pt-0 pt-1 pt-2 pval)
+    (static-key static-key-0 locn) (ra ra-0 rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n)
+    (a self) (b b) (ca ca) (galpha (exp (gen) ra-0))
+    (static-key static-key) (rb ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-a)
+    (subj self) (ca ca))
+  (deflistener (exp (gen) (mul ra ra-0)))
+  (deflistener (cat (exp (gen) ra) ra-0))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial) (self self)
+    (ca ca) (static-key static-key-0) (ra ra-0))
+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((3 1) (0 1)) ((4 1) (0 2)) ((5 1) (4 0)) ((6 0) (3 0))
+    ((6 3) (5 0)))
+  (non-orig (privk "sig" self) (privk "sig" ca))
+  (uniq-orig serial-b serial-a)
+  (uniq-gen ra ra-0)
+  (gen-st (cat "privkey" b ra serial-b ca))
+  (facts (neq b self) (neq self b))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation nonce-test (displaced 4 7 get-cert 4) ra-0 (6 0))
+  (traces
+    ((load static-key (cat pt "privkey" b ra serial-b ca))
+      (recv
+        (sig (cert self (exp (gen) ra-0) ca serial-a) (privk "sig" ca)))
+      (recv (enc n self b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (recv (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra serial-b ca)))
+    ((recv (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (send (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca))))
+    ((recv (sig (cert-req self (exp (gen) ra-0) ca) (privk "sig" self)))
+      (send
+        (sig (cert self (exp (gen) ra-0) ca serial-a)
+          (privk "sig" ca))))
+    ((recv (exp (gen) (mul ra ra-0))) (send (exp (gen) (mul ra ra-0))))
+    ((recv (cat (exp (gen) ra) ra-0)) (send (cat (exp (gen) ra) ra-0)))
+    ((send (sig (cert-req self (exp (gen) ra-0) ca) (privk "sig" self)))
+      (recv
+        (sig (cert self (exp (gen) ra-0) ca serial) (privk "sig" ca)))
+      (load static-key-0 (cat pt-1 ignore-0))
+      (stor static-key-0 (cat pt-2 "privkey" self ra-0 serial ca))))
+  (label 39)
+  (parent 34)
+  (unrealized (5 0) (6 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore mesg) (serial-b serial-a data) (n text) (ca a b name)
+    (pt pt-0 pval) (static-key locn) (ra ra-0 rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra)) (static-key static-key)
+    (rb ra-0))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca) (static-key static-key) (ra ra-0))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand get-cert 1 (self a) (ca ca) (ra ra))
+  (deflistener (exp (gen) (mul ra ra-0)))
+  (deflistener (cat (exp (gen) ra) ra-0))
+  (precedes ((1 0) (2 0)) ((1 3) (0 0)) ((1 3) (6 0)) ((2 1) (1 1))
+    ((3 1) (0 1)) ((4 0) (3 0)) ((4 0) (6 0)) ((5 1) (0 2))
+    ((6 1) (5 0)))
+  (non-orig (privk "sig" ca) (privk "sig" a))
+  (uniq-orig serial-b serial-a)
+  (uniq-gen ra ra-0)
+  (gen-st (cat "privkey" b ra-0 serial-b ca))
+  (facts (neq b a) (neq a b))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation nonce-test (displaced 7 1 get-cert 4) ra-0 (6 0))
+  (traces
+    ((load static-key (cat pt "privkey" b ra-0 serial-b ca))
+      (recv (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b)))
+      (recv
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra-0 serial-b ca)))
+    ((recv (sig (cert-req b (exp (gen) ra-0) ca) (privk "sig" b)))
+      (send
+        (sig (cert b (exp (gen) ra-0) ca serial-b) (privk "sig" ca))))
+    ((recv (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (send (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca))))
+    ((send (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a))))
+    ((recv (exp (gen) (mul ra ra-0))) (send (exp (gen) (mul ra ra-0))))
+    ((recv (cat (exp (gen) ra) ra-0)) (send (cat (exp (gen) ra) ra-0))))
+  (label 40)
+  (parent 35)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 mesg) (serial-b serial-a data) (n text)
+    (ca a b ca-0 name) (pt pt-0 pt-1 pt-2 pval)
+    (static-key static-key-0 locn) (ra ra-0 ra-1 rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra-0)) (static-key static-key)
+    (rb ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand get-cert 1 (self a) (ca ca) (ra ra-0))
+  (defstrand init 3 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca-0) (galpha (exp (gen) (mul ra ra-0 (rec ra-1))))
+    (static-key static-key-0) (ra ra-1))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-a) (self a)
+    (ca ca-0) (static-key static-key-0) (ra ra-1))
+  (deflistener (cat (exp (gen) (mul ra ra-0)) ra-1))
+  (precedes ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((2 1) (5 1)) ((3 1) (0 1)) ((3 1) (6 1)) ((4 0) (3 0))
+    ((5 2) (0 2)) ((6 3) (5 0)) ((6 3) (7 0)) ((7 1) (5 1)))
+  (non-orig (privk "sig" ca) (privk "sig" a))
+  (uniq-orig serial-b serial-a n)
+  (uniq-gen ra ra-0 ra-1)
+  (gen-st (cat "privkey" a ra-1 serial-a ca-0)
+    (cat "privkey" b ra serial-b ca))
+  (facts (neq b a) (neq a b))
+  (leads-to ((1 3) (0 0)) ((6 3) (5 0)))
+  (rule fact-resp-neq0 trRl_get-cert-at-2 trRl_get-cert-at-3)
+  (operation nonce-test (displaced 8 6 get-cert 4) ra-1 (7 0))
+  (traces
+    ((load static-key (cat pt "privkey" b ra serial-b ca))
+      (recv
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (recv (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra serial-b ca)))
+    ((recv (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (send (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca))))
+    ((recv (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a)))
+      (send
+        (sig (cert a (exp (gen) ra-0) ca serial-a) (privk "sig" ca))))
+    ((send (sig (cert-req a (exp (gen) ra-0) ca) (privk "sig" a))))
+    ((load static-key-0 (cat pt-1 "privkey" a ra-1 serial-a ca-0))
+      (recv
+        (sig (cert b (exp (gen) (mul ra ra-0 (rec ra-1))) ca-0 serial-b)
+          (privk "sig" ca-0)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-0)))))
+    ((send (sig (cert-req a (exp (gen) ra-1) ca-0) (privk "sig" a)))
+      (recv
+        (sig (cert a (exp (gen) ra-1) ca-0 serial-a)
+          (privk "sig" ca-0))) (load static-key-0 (cat pt-2 ignore-0))
+      (stor static-key-0 (cat pt-1 "privkey" a ra-1 serial-a ca-0)))
+    ((recv (cat (exp (gen) (mul ra ra-0)) ra-1))
+      (send (cat (exp (gen) (mul ra ra-0)) ra-1))))
+  (label 41)
+  (parent 36)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 ignore-1 mesg) (serial-b serial-a serial data)
+    (n text) (b ca self ca-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (static-key static-key-0 static-key-1 locn) (ra ra-0 ra-1 rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n)
+    (a self) (b b) (ca ca-0) (galpha (exp (gen) ra-1))
+    (static-key static-key) (rb ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca-0) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca-0))
+  (defstrand cert 2 (galpha (exp (gen) ra-1)) (serial serial-a)
+    (subj self) (ca ca-0))
+  (defstrand init 3 (serial-a serial-a) (serial-b serial-b) (n n)
+    (a self) (b b) (ca ca) (galpha (exp (gen) (mul ra (rec ra-0) ra-1)))
+    (static-key static-key-0) (ra ra-0))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-a) (self self)
+    (ca ca) (static-key static-key-0) (ra ra-0))
+  (deflistener (cat (exp (gen) (mul ra (rec ra-0))) ra-1))
+  (defstrand get-cert 4 (ignore ignore-1) (serial serial) (self self)
+    (ca ca-0) (static-key static-key-1) (ra ra-1))
+  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((2 1) (4 1)) ((3 1) (0 1)) ((3 1) (5 1)) ((4 2) (0 2))
+    ((5 0) (6 0)) ((5 3) (4 0)) ((6 1) (4 1)) ((7 0) (3 0))
+    ((7 3) (6 0)))
+  (non-orig (privk "sig" self) (privk "sig" ca-0))
+  (uniq-orig serial-b serial-a n)
+  (uniq-gen ra ra-0 ra-1)
+  (gen-st (cat "privkey" b ra serial-b ca-0)
+    (cat "privkey" self ra-0 serial-a ca))
+  (facts (neq b self) (neq self b))
+  (leads-to ((1 3) (0 0)) ((5 3) (4 0)))
+  (rule fact-resp-neq0 trRl_get-cert-at-2 trRl_get-cert-at-3)
+  (operation nonce-test (displaced 4 8 get-cert 4) ra-1 (7 0))
+  (traces
+    ((load static-key (cat pt "privkey" b ra serial-b ca-0))
+      (recv
+        (sig (cert self (exp (gen) ra-1) ca-0 serial-a)
+          (privk "sig" ca-0)))
+      (recv (enc n self b serial-a serial-b (exp (gen) (mul ra ra-1))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra) ca-0) (privk "sig" b)))
+      (recv
+        (sig (cert b (exp (gen) ra) ca-0 serial-b) (privk "sig" ca-0)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra serial-b ca-0)))
+    ((recv (sig (cert-req b (exp (gen) ra) ca-0) (privk "sig" b)))
+      (send
+        (sig (cert b (exp (gen) ra) ca-0 serial-b) (privk "sig" ca-0))))
+    ((recv
+       (sig (cert-req self (exp (gen) ra-1) ca-0) (privk "sig" self)))
+      (send
+        (sig (cert self (exp (gen) ra-1) ca-0 serial-a)
+          (privk "sig" ca-0))))
+    ((load static-key-0 (cat pt-1 "privkey" self ra-0 serial-a ca))
+      (recv
+        (sig (cert b (exp (gen) (mul ra (rec ra-0) ra-1)) ca serial-b)
+          (privk "sig" ca)))
+      (send (enc n self b serial-a serial-b (exp (gen) (mul ra ra-1)))))
+    ((send (sig (cert-req self (exp (gen) ra-0) ca) (privk "sig" self)))
+      (recv
+        (sig (cert self (exp (gen) ra-0) ca serial-a) (privk "sig" ca)))
+      (load static-key-0 (cat pt-2 ignore-0))
+      (stor static-key-0 (cat pt-1 "privkey" self ra-0 serial-a ca)))
+    ((recv (cat (exp (gen) (mul ra (rec ra-0))) ra-1))
+      (send (cat (exp (gen) (mul ra (rec ra-0))) ra-1)))
+    ((send
+       (sig (cert-req self (exp (gen) ra-1) ca-0) (privk "sig" self)))
+      (recv
+        (sig (cert self (exp (gen) ra-1) ca-0 serial)
+          (privk "sig" ca-0))) (load static-key-1 (cat pt-3 ignore-1))
+      (stor static-key-1 (cat pt-4 "privkey" self ra-1 serial ca-0))))
+  (label 42)
+  (parent 37)
+  (unrealized (6 0) (7 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 mesg) (serial-b serial-a data) (n text)
+    (ca a b ca-0 name) (pt pt-0 pt-1 pt-2 pval)
+    (static-key static-key-0 locn) (ra ra-0 ra-1 rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n) (a a)
+    (b b) (ca ca) (galpha (exp (gen) ra)) (static-key static-key)
+    (rb ra-1))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca) (static-key static-key) (ra ra-1))
+  (defstrand cert 2 (galpha (exp (gen) ra-1)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-a) (subj a)
+    (ca ca))
+  (defstrand get-cert 1 (self a) (ca ca) (ra ra))
+  (defstrand init 3 (serial-a serial-a) (serial-b serial-b) (n n) (a a)
+    (b b) (ca ca-0) (galpha (exp (gen) (mul ra (rec ra-0) ra-1)))
+    (static-key static-key-0) (ra ra-0))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-a) (self a)
+    (ca ca-0) (static-key static-key-0) (ra ra-0))
+  (deflistener (cat (exp (gen) (mul ra (rec ra-0))) ra-1))
+  (precedes ((1 0) (2 0)) ((1 3) (0 0)) ((1 3) (7 0)) ((2 1) (1 1))
+    ((3 1) (0 1)) ((3 1) (6 1)) ((4 0) (3 0)) ((4 0) (7 0))
+    ((5 2) (0 2)) ((6 0) (7 0)) ((6 3) (5 0)) ((7 1) (5 1)))
+  (non-orig (privk "sig" ca) (privk "sig" a))
+  (uniq-orig serial-b serial-a n)
+  (uniq-gen ra ra-0 ra-1)
+  (gen-st (cat "privkey" a ra-0 serial-a ca-0)
+    (cat "privkey" b ra-1 serial-b ca))
+  (facts (neq b a) (neq a b))
+  (leads-to ((1 3) (0 0)) ((6 3) (5 0)))
+  (rule fact-resp-neq0 trRl_get-cert-at-2 trRl_get-cert-at-3)
+  (operation nonce-test (displaced 8 1 get-cert 4) ra-1 (7 0))
+  (traces
+    ((load static-key (cat pt "privkey" b ra-1 serial-b ca))
+      (recv (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca)))
+      (recv (enc n a b serial-a serial-b (exp (gen) (mul ra ra-1))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra-1) ca) (privk "sig" b)))
+      (recv
+        (sig (cert b (exp (gen) ra-1) ca serial-b) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra-1 serial-b ca)))
+    ((recv (sig (cert-req b (exp (gen) ra-1) ca) (privk "sig" b)))
+      (send
+        (sig (cert b (exp (gen) ra-1) ca serial-b) (privk "sig" ca))))
+    ((recv (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a)))
+      (send (sig (cert a (exp (gen) ra) ca serial-a) (privk "sig" ca))))
+    ((send (sig (cert-req a (exp (gen) ra) ca) (privk "sig" a))))
+    ((load static-key-0 (cat pt-1 "privkey" a ra-0 serial-a ca-0))
+      (recv
+        (sig (cert b (exp (gen) (mul ra (rec ra-0) ra-1)) ca-0 serial-b)
+          (privk "sig" ca-0)))
+      (send (enc n a b serial-a serial-b (exp (gen) (mul ra ra-1)))))
+    ((send (sig (cert-req a (exp (gen) ra-0) ca-0) (privk "sig" a)))
+      (recv
+        (sig (cert a (exp (gen) ra-0) ca-0 serial-a)
+          (privk "sig" ca-0))) (load static-key-0 (cat pt-2 ignore-0))
+      (stor static-key-0 (cat pt-1 "privkey" a ra-0 serial-a ca-0)))
+    ((recv (cat (exp (gen) (mul ra (rec ra-0))) ra-1))
+      (send (cat (exp (gen) (mul ra (rec ra-0))) ra-1))))
+  (label 43)
+  (parent 38)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 mesg) (serial-b serial-a data) (n text)
+    (b self ca name) (pt pt-0 pt-1 pt-2 pval)
+    (static-key static-key-0 locn) (ra ra-0 rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n)
+    (a self) (b b) (ca ca) (galpha (exp (gen) ra-0))
+    (static-key static-key) (rb ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-a)
+    (subj self) (ca ca))
+  (deflistener (exp (gen) (mul ra ra-0)))
+  (deflistener (cat (exp (gen) ra) ra-0))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-a) (self self)
+    (ca ca) (static-key static-key-0) (ra ra-0))
+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((3 1) (0 1)) ((3 1) (6 1)) ((4 1) (0 2)) ((5 1) (4 0))
+    ((6 0) (3 0)) ((6 3) (5 0)))
+  (non-orig (privk "sig" self) (privk "sig" ca))
+  (uniq-orig serial-b serial-a)
+  (uniq-gen ra ra-0)
+  (gen-st (cat "privkey" b ra serial-b ca))
+  (facts (neq b self) (neq self b))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation encryption-test (displaced 7 3 cert 2)
+    (sig (cert self (exp (gen) ra-0) ca serial) (privk "sig" ca)) (6 1))
+  (traces
+    ((load static-key (cat pt "privkey" b ra serial-b ca))
+      (recv
+        (sig (cert self (exp (gen) ra-0) ca serial-a) (privk "sig" ca)))
+      (recv (enc n self b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (recv (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra serial-b ca)))
+    ((recv (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (send (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca))))
+    ((recv (sig (cert-req self (exp (gen) ra-0) ca) (privk "sig" self)))
+      (send
+        (sig (cert self (exp (gen) ra-0) ca serial-a)
+          (privk "sig" ca))))
+    ((recv (exp (gen) (mul ra ra-0))) (send (exp (gen) (mul ra ra-0))))
+    ((recv (cat (exp (gen) ra) ra-0)) (send (cat (exp (gen) ra) ra-0)))
+    ((send (sig (cert-req self (exp (gen) ra-0) ca) (privk "sig" self)))
+      (recv
+        (sig (cert self (exp (gen) ra-0) ca serial-a) (privk "sig" ca)))
+      (load static-key-0 (cat pt-1 ignore-0))
+      (stor static-key-0 (cat pt-2 "privkey" self ra-0 serial-a ca))))
+  (label 44)
+  (parent 39)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 mesg) (serial-b serial-a serial data) (n text)
+    (b self ca name) (pt pt-0 pt-1 pt-2 pval)
+    (static-key static-key-0 locn) (ra ra-0 rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n)
+    (a self) (b b) (ca ca) (galpha (exp (gen) ra-0))
+    (static-key static-key) (rb ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial-a)
+    (subj self) (ca ca))
+  (deflistener (exp (gen) (mul ra ra-0)))
+  (deflistener (cat (exp (gen) ra) ra-0))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial) (self self)
+    (ca ca) (static-key static-key-0) (ra ra-0))
+  (defstrand cert 2 (galpha (exp (gen) ra-0)) (serial serial)
+    (subj self) (ca ca))
+  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((3 1) (0 1)) ((4 1) (0 2)) ((5 1) (4 0)) ((6 0) (3 0))
+    ((6 0) (7 0)) ((6 3) (5 0)) ((7 1) (6 1)))
+  (non-orig (privk "sig" self) (privk "sig" ca))
+  (uniq-orig serial-b serial-a serial)
+  (uniq-gen ra ra-0)
+  (gen-st (cat "privkey" b ra serial-b ca))
+  (facts (neq b self) (neq self b))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-init-neq0 fact-resp-neq0 trRl_get-cert-at-2
+    trRl_get-cert-at-3)
+  (operation encryption-test (added-strand cert 2)
+    (sig (cert self (exp (gen) ra-0) ca serial) (privk "sig" ca)) (6 1))
+  (traces
+    ((load static-key (cat pt "privkey" b ra serial-b ca))
+      (recv
+        (sig (cert self (exp (gen) ra-0) ca serial-a) (privk "sig" ca)))
+      (recv (enc n self b serial-a serial-b (exp (gen) (mul ra ra-0))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (recv (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra serial-b ca)))
+    ((recv (sig (cert-req b (exp (gen) ra) ca) (privk "sig" b)))
+      (send (sig (cert b (exp (gen) ra) ca serial-b) (privk "sig" ca))))
+    ((recv (sig (cert-req self (exp (gen) ra-0) ca) (privk "sig" self)))
+      (send
+        (sig (cert self (exp (gen) ra-0) ca serial-a)
+          (privk "sig" ca))))
+    ((recv (exp (gen) (mul ra ra-0))) (send (exp (gen) (mul ra ra-0))))
+    ((recv (cat (exp (gen) ra) ra-0)) (send (cat (exp (gen) ra) ra-0)))
+    ((send (sig (cert-req self (exp (gen) ra-0) ca) (privk "sig" self)))
+      (recv
+        (sig (cert self (exp (gen) ra-0) ca serial) (privk "sig" ca)))
+      (load static-key-0 (cat pt-1 ignore-0))
+      (stor static-key-0 (cat pt-2 "privkey" self ra-0 serial ca)))
+    ((recv (sig (cert-req self (exp (gen) ra-0) ca) (privk "sig" self)))
+      (send
+        (sig (cert self (exp (gen) ra-0) ca serial) (privk "sig" ca)))))
+  (label 45)
+  (parent 39)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 ignore-1 mesg) (serial-b serial-a data)
+    (n text) (b ca self ca-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (static-key static-key-0 static-key-1 locn) (ra ra-0 ra-1 rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n)
+    (a self) (b b) (ca ca-0) (galpha (exp (gen) ra-1))
+    (static-key static-key) (rb ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca-0) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca-0))
+  (defstrand cert 2 (galpha (exp (gen) ra-1)) (serial serial-a)
+    (subj self) (ca ca-0))
+  (defstrand init 3 (serial-a serial-a) (serial-b serial-b) (n n)
+    (a self) (b b) (ca ca) (galpha (exp (gen) (mul ra (rec ra-0) ra-1)))
+    (static-key static-key-0) (ra ra-0))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-a) (self self)
+    (ca ca) (static-key static-key-0) (ra ra-0))
+  (deflistener (cat (exp (gen) (mul ra (rec ra-0))) ra-1))
+  (defstrand get-cert 4 (ignore ignore-1) (serial serial-a) (self self)
+    (ca ca-0) (static-key static-key-1) (ra ra-1))
+  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((2 1) (4 1)) ((3 1) (0 1)) ((3 1) (5 1)) ((3 1) (7 1))
+    ((4 2) (0 2)) ((5 0) (6 0)) ((5 3) (4 0)) ((6 1) (4 1))
+    ((7 0) (3 0)) ((7 3) (6 0)))
+  (non-orig (privk "sig" self) (privk "sig" ca-0))
+  (uniq-orig serial-b serial-a n)
+  (uniq-gen ra ra-0 ra-1)
+  (gen-st (cat "privkey" b ra serial-b ca-0)
+    (cat "privkey" self ra-0 serial-a ca))
+  (facts (neq b self) (neq self b))
+  (leads-to ((1 3) (0 0)) ((5 3) (4 0)))
+  (rule fact-resp-neq0 trRl_get-cert-at-2 trRl_get-cert-at-3)
+  (operation encryption-test (displaced 8 3 cert 2)
+    (sig (cert self (exp (gen) ra-1) ca-0 serial) (privk "sig" ca-0))
+    (7 1))
+  (traces
+    ((load static-key (cat pt "privkey" b ra serial-b ca-0))
+      (recv
+        (sig (cert self (exp (gen) ra-1) ca-0 serial-a)
+          (privk "sig" ca-0)))
+      (recv (enc n self b serial-a serial-b (exp (gen) (mul ra ra-1))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra) ca-0) (privk "sig" b)))
+      (recv
+        (sig (cert b (exp (gen) ra) ca-0 serial-b) (privk "sig" ca-0)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra serial-b ca-0)))
+    ((recv (sig (cert-req b (exp (gen) ra) ca-0) (privk "sig" b)))
+      (send
+        (sig (cert b (exp (gen) ra) ca-0 serial-b) (privk "sig" ca-0))))
+    ((recv
+       (sig (cert-req self (exp (gen) ra-1) ca-0) (privk "sig" self)))
+      (send
+        (sig (cert self (exp (gen) ra-1) ca-0 serial-a)
+          (privk "sig" ca-0))))
+    ((load static-key-0 (cat pt-1 "privkey" self ra-0 serial-a ca))
+      (recv
+        (sig (cert b (exp (gen) (mul ra (rec ra-0) ra-1)) ca serial-b)
+          (privk "sig" ca)))
+      (send (enc n self b serial-a serial-b (exp (gen) (mul ra ra-1)))))
+    ((send (sig (cert-req self (exp (gen) ra-0) ca) (privk "sig" self)))
+      (recv
+        (sig (cert self (exp (gen) ra-0) ca serial-a) (privk "sig" ca)))
+      (load static-key-0 (cat pt-2 ignore-0))
+      (stor static-key-0 (cat pt-1 "privkey" self ra-0 serial-a ca)))
+    ((recv (cat (exp (gen) (mul ra (rec ra-0))) ra-1))
+      (send (cat (exp (gen) (mul ra (rec ra-0))) ra-1)))
+    ((send
+       (sig (cert-req self (exp (gen) ra-1) ca-0) (privk "sig" self)))
+      (recv
+        (sig (cert self (exp (gen) ra-1) ca-0 serial-a)
+          (privk "sig" ca-0))) (load static-key-1 (cat pt-3 ignore-1))
+      (stor static-key-1 (cat pt-4 "privkey" self ra-1 serial-a ca-0))))
+  (label 46)
+  (parent 42)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton dhstatic-state
+  (vars (ignore ignore-0 ignore-1 mesg) (serial-b serial-a serial data)
+    (n text) (b ca self ca-0 name) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (static-key static-key-0 static-key-1 locn) (ra ra-0 ra-1 rndx))
+  (defstrand resp 4 (serial-b serial-b) (serial-a serial-a) (n n)
+    (a self) (b b) (ca ca-0) (galpha (exp (gen) ra-1))
+    (static-key static-key) (rb ra))
+  (defstrand get-cert 4 (ignore ignore) (serial serial-b) (self b)
+    (ca ca-0) (static-key static-key) (ra ra))
+  (defstrand cert 2 (galpha (exp (gen) ra)) (serial serial-b) (subj b)
+    (ca ca-0))
+  (defstrand cert 2 (galpha (exp (gen) ra-1)) (serial serial-a)
+    (subj self) (ca ca-0))
+  (defstrand init 3 (serial-a serial-a) (serial-b serial-b) (n n)
+    (a self) (b b) (ca ca) (galpha (exp (gen) (mul ra (rec ra-0) ra-1)))
+    (static-key static-key-0) (ra ra-0))
+  (defstrand get-cert 4 (ignore ignore-0) (serial serial-a) (self self)
+    (ca ca) (static-key static-key-0) (ra ra-0))
+  (deflistener (cat (exp (gen) (mul ra (rec ra-0))) ra-1))
+  (defstrand get-cert 4 (ignore ignore-1) (serial serial) (self self)
+    (ca ca-0) (static-key static-key-1) (ra ra-1))
+  (defstrand cert 2 (galpha (exp (gen) ra-1)) (serial serial)
+    (subj self) (ca ca-0))
+  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 0)) ((2 1) (1 1))
+    ((2 1) (4 1)) ((3 1) (0 1)) ((3 1) (5 1)) ((4 2) (0 2))
+    ((5 0) (6 0)) ((5 3) (4 0)) ((6 1) (4 1)) ((7 0) (3 0))
+    ((7 0) (8 0)) ((7 3) (6 0)) ((8 1) (7 1)))
+  (non-orig (privk "sig" self) (privk "sig" ca-0))
+  (uniq-orig serial-b serial-a serial n)
+  (uniq-gen ra ra-0 ra-1)
+  (gen-st (cat "privkey" b ra serial-b ca-0)
+    (cat "privkey" self ra-0 serial-a ca))
+  (facts (neq b self) (neq self b))
+  (leads-to ((1 3) (0 0)) ((5 3) (4 0)))
+  (rule fact-resp-neq0 trRl_get-cert-at-2 trRl_get-cert-at-3)
+  (operation encryption-test (added-strand cert 2)
+    (sig (cert self (exp (gen) ra-1) ca-0 serial) (privk "sig" ca-0))
+    (7 1))
+  (traces
+    ((load static-key (cat pt "privkey" b ra serial-b ca-0))
+      (recv
+        (sig (cert self (exp (gen) ra-1) ca-0 serial-a)
+          (privk "sig" ca-0)))
+      (recv (enc n self b serial-a serial-b (exp (gen) (mul ra ra-1))))
+      (send n))
+    ((send (sig (cert-req b (exp (gen) ra) ca-0) (privk "sig" b)))
+      (recv
+        (sig (cert b (exp (gen) ra) ca-0 serial-b) (privk "sig" ca-0)))
+      (load static-key (cat pt-0 ignore))
+      (stor static-key (cat pt "privkey" b ra serial-b ca-0)))
+    ((recv (sig (cert-req b (exp (gen) ra) ca-0) (privk "sig" b)))
+      (send
+        (sig (cert b (exp (gen) ra) ca-0 serial-b) (privk "sig" ca-0))))
+    ((recv
+       (sig (cert-req self (exp (gen) ra-1) ca-0) (privk "sig" self)))
+      (send
+        (sig (cert self (exp (gen) ra-1) ca-0 serial-a)
+          (privk "sig" ca-0))))
+    ((load static-key-0 (cat pt-1 "privkey" self ra-0 serial-a ca))
+      (recv
+        (sig (cert b (exp (gen) (mul ra (rec ra-0) ra-1)) ca serial-b)
+          (privk "sig" ca)))
+      (send (enc n self b serial-a serial-b (exp (gen) (mul ra ra-1)))))
+    ((send (sig (cert-req self (exp (gen) ra-0) ca) (privk "sig" self)))
+      (recv
+        (sig (cert self (exp (gen) ra-0) ca serial-a) (privk "sig" ca)))
+      (load static-key-0 (cat pt-2 ignore-0))
+      (stor static-key-0 (cat pt-1 "privkey" self ra-0 serial-a ca)))
+    ((recv (cat (exp (gen) (mul ra (rec ra-0))) ra-1))
+      (send (cat (exp (gen) (mul ra (rec ra-0))) ra-1)))
+    ((send
+       (sig (cert-req self (exp (gen) ra-1) ca-0) (privk "sig" self)))
+      (recv
+        (sig (cert self (exp (gen) ra-1) ca-0 serial)
+          (privk "sig" ca-0))) (load static-key-1 (cat pt-3 ignore-1))
+      (stor static-key-1 (cat pt-4 "privkey" self ra-1 serial ca-0)))
+    ((recv
+       (sig (cert-req self (exp (gen) ra-1) ca-0) (privk "sig" self)))
+      (send
+        (sig (cert self (exp (gen) ra-1) ca-0 serial)
+          (privk "sig" ca-0)))))
+  (label 47)
+  (parent 42)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/tst/disclosure.scm b/tst/disclosure.scm
new file mode 100644
--- /dev/null
+++ b/tst/disclosure.scm
@@ -0,0 +1,33 @@
+;;; Here's a protocol where there are two ways for the init strand to
+;;; be satisfied.  The responder can use the key to extract that
+;;; nonce.  Or else the adversary can get the key from the init's last
+;;; send, and use that in *the next* session to extract the nonce
+;;; without the responder's help.
+
+;;; This is a simplest example in which CPSA needs to introduce a
+;;; listener to explore the possibility that the adversary can do the
+;;; decryption.  It certainly illustrates that the generalization
+;;; steps that discard listeners are a natural part of finding the
+;;; minimal shapes.
+
+(herald disclosure)
+
+(defprotocol disc basic
+  (defrole init
+    (vars (a b name) (k skey) (n text))
+    (trace
+     (send (enc a b n k))
+     (recv n)
+     (send k))
+    (pen-non-orig k))
+
+  (defrole resp
+    (vars (a b name) (k skey) (n text))
+    (trace
+     (recv (enc a b n k))
+     (send n))))
+
+(defskeleton disc
+  (vars (n text))
+  (defstrand init 2 (n n))
+  (uniq-orig n))
diff --git a/tst/disclosure.tst b/tst/disclosure.tst
new file mode 100644
--- /dev/null
+++ b/tst/disclosure.tst
@@ -0,0 +1,96 @@
+(herald disclosure)
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/disclosure.scm")
+
+(defprotocol disc basic
+  (defrole init
+    (vars (a b name) (k skey) (n text))
+    (trace (send (enc a b n k)) (recv n) (send k))
+    (pen-non-orig k))
+  (defrole resp
+    (vars (a b name) (k skey) (n text))
+    (trace (recv (enc a b n k)) (send n)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton disc
+  (vars (k skey) (n text) (a b name))
+  (defstrand init 2 (k k) (n n) (a a) (b b))
+  (pen-non-orig k)
+  (uniq-orig n)
+  (traces ((send (enc a b n k)) (recv n)))
+  (label 0)
+  (unrealized (0 1))
+  (origs (n (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton disc
+  (vars (k skey) (n text) (a b name))
+  (defstrand init 2 (k k) (n n) (a a) (b b))
+  (defstrand resp 2 (k k) (n n) (a a) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (pen-non-orig k)
+  (uniq-orig n)
+  (operation nonce-test (added-strand resp 2) n (0 1) (enc a b n k))
+  (traces ((send (enc a b n k)) (recv n))
+    ((recv (enc a b n k)) (send n)))
+  (label 1)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (a a) (b b) (k k))))
+  (origs (n (0 0))))
+
+(defskeleton disc
+  (vars (k skey) (n text) (a b name))
+  (defstrand init 2 (k k) (n n) (a a) (b b))
+  (deflistener k)
+  (precedes ((1 1) (0 1)))
+  (pen-non-orig k)
+  (uniq-orig n)
+  (operation nonce-test (added-listener k) n (0 1) (enc a b n k))
+  (traces ((send (enc a b n k)) (recv n)) ((recv k) (send k)))
+  (label 2)
+  (parent 0)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton disc
+  (vars (k skey) (n n-0 text) (a b a-0 b-0 name))
+  (defstrand init 2 (k k) (n n) (a a) (b b))
+  (deflistener k)
+  (defstrand init 3 (k k) (n n-0) (a a-0) (b b-0))
+  (precedes ((1 1) (0 1)) ((2 2) (1 0)))
+  (pen-non-orig k)
+  (uniq-orig n)
+  (operation nonce-test (added-strand init 3) k (1 0))
+  (traces ((send (enc a b n k)) (recv n)) ((recv k) (send k))
+    ((send (enc a-0 b-0 n-0 k)) (recv n-0) (send k)))
+  (label 3)
+  (parent 2)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton disc
+  (vars (k skey) (n n-0 text) (a b a-0 b-0 name))
+  (defstrand init 2 (k k) (n n) (a a) (b b))
+  (defstrand init 3 (k k) (n n-0) (a a-0) (b b-0))
+  (precedes ((1 2) (0 1)))
+  (pen-non-orig k)
+  (uniq-orig n)
+  (operation generalization deleted (1 0))
+  (traces ((send (enc a b n k)) (recv n))
+    ((send (enc a-0 b-0 n-0 k)) (recv n-0) (send k)))
+  (label 4)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (a a) (b b) (k k))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/doorsep.scm b/tst/doorsep.scm
--- a/tst/doorsep.scm
+++ b/tst/doorsep.scm
@@ -2,42 +2,32 @@
 
 (defprotocol doorsep basic
   (defrole person
-    (vars (p d akey) (k skey) (t text))
+    (vars (d p akey) (k skey) (t text))
     (trace
      (send (enc (enc k (invk p)) d))
      (recv (enc t k))
      (send t))
-    (uniq-orig k)
-    )
+    (uniq-orig k))
   (defrole door
-    (vars (p d akey) (k skey) (t text))
+    (vars (d p akey) (k skey) (t text))
     (trace
      (recv (enc (enc k (invk p)) d))
      (send (enc t k))
      (recv t))
-    )
+    (uniq-orig t))
   (defrule trust
-    (forall ((z strd) (p d akey) (k skey))
+    (forall ((z strd) (p d akey))
 	    (implies
 	     (and (p "person" z 1)
 		  (p "person" "p" z p)
 		  (p "person" "d" z d)
-		  (p "person" "k" z k)
-		  (fact trust p))
-	     (and (non (invk d))
-		  (uniq k))))))
-
-(defskeleton doorsep
-  (vars (p akey) (t text))
-  (defstrand door 3 (p p) (t t))
-  (non-orig (invk p))
-  (uniq-orig t)
-  (facts (trust p))
-  (comment "Analyze from the door's perspective"))
+		  (non (invk p)))
+	     (non (invk d))))
+    (comment "The trust rule"))
+  (comment "Doorsep protocol using unnamed asymmetric keys"))
 
 (defskeleton doorsep
-  (vars (p akey) (t text))
-  (defstrand door 3 (p p) (t t))
+  (vars (p akey))
+  (defstrand door 3 (p p))
   (non-orig (invk p))
-  (uniq-orig t)
-  (comment "Analyze from the door's perspective when we don't trust p"))
+  (comment "Analyze from the doors's perspective"))
diff --git a/tst/doorsep.tst b/tst/doorsep.tst
--- a/tst/doorsep.tst
+++ b/tst/doorsep.tst
@@ -1,30 +1,38 @@
 (herald doorsep (comment "Door Simple Example Protocol"))
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/doorsep.scm")
 
 (defprotocol doorsep basic
   (defrole person
-    (vars (p d akey) (k skey) (t text))
+    (vars (d p akey) (k skey) (t text))
     (trace (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))
     (uniq-orig k))
   (defrole door
-    (vars (p d akey) (k skey) (t text))
-    (trace (recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t)))
+    (vars (d p akey) (k skey) (t text))
+    (trace (recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))
+    (uniq-orig t))
   (defrule trust
-    (forall ((z strd) (p d akey) (k skey))
+    (forall ((z strd) (p d akey))
       (implies
-        (and (p "person" z 1) (p "person" "p" z p) (p "person" "d" z d)
-          (p "person" "k" z k) (fact trust p))
-        (and (non (invk d)) (uniq k))))))
+        (and (p "person" z (idx 1)) (p "person" "p" z p)
+          (p "person" "d" z d) (non (invk p)))
+        (non (invk d))))
+    (comment "The trust rule"))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Doorsep protocol using unnamed asymmetric keys"))
 
 (defskeleton doorsep
-  (vars (t text) (k skey) (p d akey))
-  (defstrand door 3 (t t) (k k) (p p) (d d))
+  (vars (k skey) (t text) (p d akey))
+  (defstrand door 3 (k k) (t t) (d d) (p p))
   (non-orig (invk p))
   (uniq-orig t)
-  (facts (trust p))
-  (comment "Analyze from the door's perspective")
+  (comment "Analyze from the doors's perspective")
   (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t)))
   (label 0)
   (unrealized (0 0))
@@ -32,13 +40,12 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton doorsep
-  (vars (t text) (k skey) (p d d-0 akey))
-  (defstrand door 3 (t t) (k k) (p p) (d d))
-  (defstrand person 1 (k k) (p p) (d d-0))
+  (vars (k skey) (t text) (p d d-0 akey))
+  (defstrand door 3 (k k) (t t) (d d) (p p))
+  (defstrand person 1 (k k) (d d-0) (p p))
   (precedes ((1 0) (0 0)))
   (non-orig (invk p) (invk d-0))
-  (uniq-orig t k)
-  (facts (trust p))
+  (uniq-orig k t)
   (rule trust)
   (operation encryption-test (added-strand person 1) (enc k (invk p))
     (0 0))
@@ -50,13 +57,12 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton doorsep
-  (vars (t text) (k skey) (p d akey))
-  (defstrand door 3 (t t) (k k) (p p) (d d))
-  (defstrand person 1 (k k) (p p) (d d))
+  (vars (k skey) (t text) (p d akey))
+  (defstrand door 3 (k k) (t t) (d d) (p p))
+  (defstrand person 1 (k k) (d d) (p p))
   (precedes ((1 0) (0 0)))
   (non-orig (invk p) (invk d))
-  (uniq-orig t k)
-  (facts (trust p))
+  (uniq-orig k t)
   (operation encryption-test (contracted (d-0 d)) (enc k (invk p)) (0 0)
     (enc (enc k (invk p)) d))
   (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))
@@ -67,32 +73,30 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton doorsep
-  (vars (t text) (k skey) (p d akey))
-  (defstrand door 3 (t t) (k k) (p p) (d d))
-  (defstrand person 3 (t t) (k k) (p p) (d d))
+  (vars (k skey) (t text) (d p akey))
+  (defstrand door 3 (k k) (t t) (d d) (p p))
+  (defstrand person 3 (k k) (t t) (d d) (p p))
   (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
-  (non-orig (invk p) (invk d))
-  (uniq-orig t k)
-  (facts (trust p))
+  (non-orig (invk d) (invk p))
+  (uniq-orig k t)
   (operation nonce-test (displaced 1 2 person 3) t (0 2) (enc t k))
   (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))
     ((send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t)))
   (label 3)
   (parent 2)
-  (unrealized)
+  (realized)
   (shape)
-  (maps ((0) ((p p) (t t) (d d) (k k))))
+  (maps ((0) ((p p) (d d) (k k) (t t))))
   (origs (k (1 0)) (t (0 1))))
 
 (defskeleton doorsep
-  (vars (t text) (k skey) (p d akey))
-  (defstrand door 3 (t t) (k k) (p p) (d d))
-  (defstrand person 1 (k k) (p p) (d d))
+  (vars (k skey) (t text) (p d akey))
+  (defstrand door 3 (k k) (t t) (d d) (p p))
+  (defstrand person 1 (k k) (d d) (p p))
   (deflistener k)
   (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 2)))
   (non-orig (invk p) (invk d))
-  (uniq-orig t k)
-  (facts (trust p))
+  (uniq-orig k t)
   (operation nonce-test (added-listener k) t (0 2) (enc t k))
   (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))
     ((send (enc (enc k (invk p)) d))) ((recv k) (send k)))
@@ -101,52 +105,5 @@
   (unrealized (2 0))
   (dead)
   (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol doorsep basic
-  (defrole person
-    (vars (p d akey) (k skey) (t text))
-    (trace (send (enc (enc k (invk p)) d)) (recv (enc t k)) (send t))
-    (uniq-orig k))
-  (defrole door
-    (vars (p d akey) (k skey) (t text))
-    (trace (recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t)))
-  (defrule trust
-    (forall ((z strd) (p d akey) (k skey))
-      (implies
-        (and (p "person" z 1) (p "person" "p" z p) (p "person" "d" z d)
-          (p "person" "k" z k) (fact trust p))
-        (and (non (invk d)) (uniq k))))))
-
-(defskeleton doorsep
-  (vars (t text) (k skey) (p d akey))
-  (defstrand door 3 (t t) (k k) (p p) (d d))
-  (non-orig (invk p))
-  (uniq-orig t)
-  (comment "Analyze from the door's perspective when we don't trust p")
-  (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t)))
-  (label 5)
-  (unrealized (0 0))
-  (origs (t (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton doorsep
-  (vars (t text) (k skey) (p d d-0 akey))
-  (defstrand door 3 (t t) (k k) (p p) (d d))
-  (defstrand person 1 (k k) (p p) (d d-0))
-  (precedes ((1 0) (0 0)))
-  (non-orig (invk p))
-  (uniq-orig t k)
-  (operation encryption-test (added-strand person 1) (enc k (invk p))
-    (0 0))
-  (traces ((recv (enc (enc k (invk p)) d)) (send (enc t k)) (recv t))
-    ((send (enc (enc k (invk p)) d-0))))
-  (label 6)
-  (parent 5)
-  (unrealized)
-  (shape)
-  (maps ((0) ((p p) (t t) (d d) (k k))))
-  (origs (k (1 0)) (t (0 1))))
 
 (comment "Nothing left to do")
diff --git a/tst/doorsep2invk.tst b/tst/doorsep2invk.tst
--- a/tst/doorsep2invk.tst
+++ b/tst/doorsep2invk.tst
@@ -1,6 +1,6 @@
 (herald doorsep2invk (comment "Door Simple Example Protocol"))
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/doorsep2invk.scm")
 
 (defprotocol doorsep basic
@@ -14,16 +14,22 @@
     (trace (recv (enc (enc skey (invk peer)) self))
       (send (enc data skey)) (recv data))
     (uniq-orig data))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Doorsep's protocol using unnamed asymmetric keys"))
 
 (defskeleton doorsep
-  (vars (text+0 text) (skey+0 skey) (akey+1 akey+0 akey+3 akey))
+  (vars (skey+0 skey) (text+0 text) (akey+1 akey+0 akey+3 akey))
   (defstrand init 1 (skey skey+0) (self (invk akey+3)) (peer akey+0))
-  (defstrand resp 3 (data text+0) (skey skey+0) (self akey+1)
+  (defstrand resp 3 (skey skey+0) (data text+0) (self akey+1)
     (peer (invk akey+3)))
   (precedes ((0 0) (1 0)))
   (non-orig akey+3 (invk akey+0))
-  (uniq-orig text+0 skey+0)
+  (uniq-orig skey+0 text+0)
   (goals
     (forall
       ((text+0 text) (skey+0 skey) (akey+1 akey+0 akey+3 akey)
@@ -41,17 +47,17 @@
       (recv text+0)))
   (label 0)
   (unrealized (1 0) (1 2))
-  (origs (text+0 (1 1)) (skey+0 (0 0)))
+  (origs (skey+0 (0 0)) (text+0 (1 1)))
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton doorsep
-  (vars (text+0 text) (skey+0 skey) (akey+0 akey+3 akey))
+  (vars (skey+0 skey) (text+0 text) (akey+0 akey+3 akey))
   (defstrand init 1 (skey skey+0) (self (invk akey+3)) (peer akey+0))
-  (defstrand resp 3 (data text+0) (skey skey+0) (self akey+0)
+  (defstrand resp 3 (skey skey+0) (data text+0) (self akey+0)
     (peer (invk akey+3)))
   (precedes ((0 0) (1 0)))
   (non-orig akey+3 (invk akey+0))
-  (uniq-orig text+0 skey+0)
+  (uniq-orig skey+0 text+0)
   (operation encryption-test (contracted (akey+1 akey+0))
     (enc skey+0 akey+3) (1 0) (enc (enc skey+0 akey+3) akey+0))
   (traces ((send (enc (enc skey+0 akey+3) akey+0)))
@@ -60,16 +66,16 @@
   (label 1)
   (parent 0)
   (unrealized (1 2))
-  (origs (text+0 (1 1)) (skey+0 (0 0)))
+  (origs (skey+0 (0 0)) (text+0 (1 1)))
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton doorsep
-  (vars (text+0 text) (skey+0 skey) (self peer akey))
-  (defstrand resp 3 (data text+0) (skey skey+0) (self peer) (peer self))
-  (defstrand init 3 (data text+0) (skey skey+0) (self self) (peer peer))
+  (vars (skey+0 skey) (text+0 text) (self peer akey))
+  (defstrand resp 3 (skey skey+0) (data text+0) (self peer) (peer self))
+  (defstrand init 3 (skey skey+0) (data text+0) (self self) (peer peer))
   (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
   (non-orig (invk self) (invk peer))
-  (uniq-orig text+0 skey+0)
+  (uniq-orig skey+0 text+0)
   (operation nonce-test (displaced 0 2 init 3) text+0 (1 2)
     (enc text+0 skey+0))
   (traces
@@ -79,7 +85,7 @@
       (recv (enc text+0 skey+0)) (send text+0)))
   (label 2)
   (parent 1)
-  (unrealized)
+  (realized)
   (shape)
   (satisfies yes)
   (maps
@@ -89,14 +95,14 @@
   (origs (skey+0 (1 0)) (text+0 (0 1))))
 
 (defskeleton doorsep
-  (vars (text+0 text) (skey+0 skey) (akey+0 akey+3 akey))
+  (vars (skey+0 skey) (text+0 text) (akey+0 akey+3 akey))
   (defstrand init 1 (skey skey+0) (self (invk akey+3)) (peer akey+0))
-  (defstrand resp 3 (data text+0) (skey skey+0) (self akey+0)
+  (defstrand resp 3 (skey skey+0) (data text+0) (self akey+0)
     (peer (invk akey+3)))
   (deflistener skey+0)
   (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((2 1) (1 2)))
   (non-orig akey+3 (invk akey+0))
-  (uniq-orig text+0 skey+0)
+  (uniq-orig skey+0 text+0)
   (operation nonce-test (added-listener skey+0) text+0 (1 2)
     (enc text+0 skey+0))
   (traces ((send (enc (enc skey+0 akey+3) akey+0)))
diff --git a/tst/ds-short.lisp b/tst/ds-short.lisp
new file mode 100644
--- /dev/null
+++ b/tst/ds-short.lisp
@@ -0,0 +1,33 @@
+;;; This is something like the Denning Sacco protocol with
+;;; public keys as described by Clark and Jacob, but without
+;;; timestamps.  Since the whole point of the protocol was to
+;;; show how timestamps could be used, this is a funny thing to do!
+
+(defprotocol denning-sacco-with-pk basic
+  (defrole init ; A
+    (vars (a name) (b name) (ks name) (k skey))
+    (trace (send (cat a b))
+	   (recv (cat (enc (cat b (pubk b)) (privk ks)) ; certB
+		      (enc (cat a (pubk a)) (privk ks)))) ; cert A
+	   (send (cat (enc (enc k (privk a)) (pubk b)) ; sign & encr k
+		      (enc (cat b (pubk b)) (privk ks))
+		      (enc (cat a  (pubk a)) (privk ks))))))
+  (defrole resp ; B
+    (vars (a name) (b name) (ks name) (k skey))
+    (trace (recv (cat (enc (enc k (privk a)) (pubk b))
+		      (enc (cat b (pubk b)) (privk ks))
+		      (enc (cat a (pubk a)) (privk ks))))))
+  (defrole keyserver
+    (vars (a name) (b name) (ks name))
+    (trace (recv (cat a b))
+	   (send (cat (enc (cat b (pubk b)) (privk ks))
+		      (enc (cat a (pubk a)) (privk ks)))))))
+
+;;; For the preskeleton, I'd like to require every initiator and
+;;; respondent to use the same ks.  How can that be done?
+
+(defskeleton denning-sacco-with-pk
+  (vars (a name) (b name) (ks name) (k skey))
+  (defstrand resp 1 (a a) (b b) (ks ks) (k k))
+  (non-orig (privk b) (privk a) (privk ks))
+  (uniq-orig k))
diff --git a/tst/dy.lsp b/tst/dy.lsp
new file mode 100644
--- /dev/null
+++ b/tst/dy.lsp
@@ -0,0 +1,38 @@
+(herald "Example 1.3 from 1983 Dolev-Yao Paper"
+	(bound 12)
+	;; (limit 6000)
+	)
+
+; This protocol, from Example 1.3 in 1983 Dolev-Yao paper, is known to
+; be vulnerable to the following attack.
+
+; A->E : {{M}KB, A}KB
+; E->B : {{{M}KB, A}KB, E}KB
+; B->E : {{{M}KB, A}KE, B}KE
+; E->B : {{M}KB, E}KB
+; B->E : {{M}KE, B}KE
+
+; So E gets M.
+
+(defprotocol dy basic
+  (defrole init (vars (a b name) (m text))
+    (trace
+     (send (enc (enc m (pubk b)) a (pubk b)))
+     (recv (enc (enc m (pubk a)) b (pubk a)))))
+  (defrole resp (vars (a b name) (m mesg))
+    (trace
+     (recv (enc (enc m (pubk b)) a (pubk b)))
+     (send (enc (enc m (pubk a)) b (pubk a))))))
+
+(defskeleton dy
+  (vars (a b name) (m text))
+  (defstrand init 1 (a a) (b b) (m m))
+  (deflistener m)
+  (uniq-orig m)
+  (non-orig (privk a) (privk b)))
+
+(defskeleton dy
+  (vars (a b name) (m text))
+  (defstrand init 2 (a a) (b b) (m m))
+  (uniq-orig m)
+  (non-orig (privk a) (privk b)))
diff --git a/tst/dy.tst b/tst/dy.tst
new file mode 100644
# file too large to diff: tst/dy.tst
diff --git a/tst/eadh_um.scm b/tst/eadh_um.scm
deleted file mode 100644
--- a/tst/eadh_um.scm
+++ /dev/null
@@ -1,62 +0,0 @@
-(herald "Unified model (UM)" (bound 20) (limit 8000) (algebra diffie-hellman))
-
-(defprotocol eadh-um diffie-hellman
-  (defrole init
-    (vars (l e rndx) (ll ee expt) (self peer name) (n data))
-    (trace
-     (recv (enc "cert" (exp (gen) l) self (privk self)))
-     (recv (enc "cert" (exp (gen) ll) peer (privk peer)))
-     (send (exp (gen) e))
-     (recv (exp (gen) ee))
-     (send (enc n (hash (exp (gen) (mul ll l)) (exp (gen) (mul ee e)))))
-     (recv n))
-    (uniq-gen e)
-    (uniq-orig n)
-    (neq (ee (one)))
-    (fn-of ("principal-of" (self l)))
-    (fn-of ("privdh-of" (l self)))
-    )
-  (defrole resp
-    (vars (l e rndx) (ll ee expt) (self peer name) (n data))
-    (trace
-     (recv (enc "cert" (exp (gen) l) self (privk self)))
-     (recv (enc "cert" (exp (gen) ll) peer (privk peer)))
-     (send (exp (gen) e))
-     (recv (exp (gen) ee))
-     (recv (enc n (hash (exp (gen) (mul ll l)) (exp (gen) (mul ee e)))))
-     (send n))
-    (uniq-gen e)
-    (neq (ee (one)))
-    (fn-of ("principal-of" (self l)))
-    (fn-of ("privdh-of" (l self)))
-    )
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace
-     (send (enc "cert" (exp (gen) l) self (privk self)))
-     (send l))
-    (uniq-gen l)
-    (fn-of ("principal-of" (self l)))
-    (fn-of ("privdh-of" (l self)))
-    )
-  )
-
-;; Explicit authentication: init's point of view
- (defskeleton eadh-um
-  (vars (n data) (lA eA lB rndx) (A B name))
-  (defstrand init 6 (n n) (e eA) (l lA) (self A) (peer B))
-  (defstrand ltx-gen 1 (self B) (l lB))
-  (non-orig lA lB)
-  (non-orig (privk A) (privk B))
-  (comment "Explicit authentication")
-  )
-
-;; Explicit authentication: init's point of view
- (defskeleton eadh-um
-  (vars (n data) (lA eA lB rndx) (A B name))
-  (defstrand init 6 (n n) (e eA) (l lA) (self A) (peer B))
-  (defstrand ltx-gen 1 (self B) (l lB))
-  (non-orig lB)
-  (non-orig (privk A) (privk B))
-  (comment "Explicit authentication, not assuming own LTK safe")
-)
diff --git a/tst/eadh_um.tst b/tst/eadh_um.tst
deleted file mode 100644
# file too large to diff: tst/eadh_um.tst
diff --git a/tst/encsig.scm b/tst/encsig.scm
new file mode 100644
--- /dev/null
+++ b/tst/encsig.scm
@@ -0,0 +1,44 @@
+(herald "Encrypted Signed Message Example"
+   (comment "Shows examples of key usage of asymmetric keys"))
+
+(defprotocol mult-keys-enc-sig basic
+   (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace
+     (send (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+     (recv (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+     (send (enc (enc n2 (pubk "enc" b)) (privk "sig" a)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace
+     (recv (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+     (send (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+     (recv (enc (enc n2 (pubk "enc" b)) (privk "sig" a))))))
+
+;;; The initiator point-of-view
+(defskeleton mult-keys-enc-sig
+   (vars (a b name) (n1 text))
+   (defstrand init 3 (a a) (b b) (n1 n1))
+   (non-orig (privk "enc" a) (privk "sig" a) (privk "sig" b))
+   (uniq-orig n1))
+
+;;; The responder point-of-view trusting only a's signature key
+(defskeleton mult-keys-enc-sig
+  (vars (a b name) (n2 text))
+  (defstrand resp 3 (a a) (b b) (n2 n2))
+  (non-orig (privk "sig" a))
+  (uniq-orig n2))
+
+;;; The responder point-of-view trusting only a's encryption key
+(defskeleton mult-keys-enc-sig
+  (vars (a b name) (n2 text))
+  (defstrand resp 3 (a a) (b b) (n2 n2))
+  (non-orig (privk "enc" a))
+  (uniq-orig n2))
+
+;;; The responder point-of-view trusting both of a's keys
+(defskeleton mult-keys-enc-sig
+  (vars (a b name) (n2 text))
+  (defstrand resp 3 (a a) (b b) (n2 n2))
+  (non-orig (privk "sig" a) (privk "enc" a))
+  (uniq-orig n2))
diff --git a/tst/encsig.tst b/tst/encsig.tst
new file mode 100644
--- /dev/null
+++ b/tst/encsig.tst
@@ -0,0 +1,398 @@
+(herald "Encrypted Signed Message Example"
+  (comment "Shows examples of key usage of asymmetric keys"))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/encsig.scm")
+
+(defprotocol mult-keys-enc-sig basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (recv (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (send (enc (enc n2 (pubk "enc" b)) (privk "sig" a)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (send (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (recv (enc (enc n2 (pubk "enc" b)) (privk "sig" a)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton mult-keys-enc-sig
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (non-orig (privk "enc" a) (privk "sig" a) (privk "sig" b))
+  (uniq-orig n1)
+  (traces
+    ((send (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (recv (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (send (enc (enc n2 (pubk "enc" b)) (privk "sig" a)))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton mult-keys-enc-sig
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk "enc" a) (privk "sig" a) (privk "sig" b))
+  (uniq-orig n1)
+  (operation encryption-test (added-strand resp 2)
+    (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)) (0 1))
+  (traces
+    ((send (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (recv (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (send (enc (enc n2 (pubk "enc" b)) (privk "sig" a))))
+    ((recv (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (send (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))))
+  (label 1)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol mult-keys-enc-sig basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (recv (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (send (enc (enc n2 (pubk "enc" b)) (privk "sig" a)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (send (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (recv (enc (enc n2 (pubk "enc" b)) (privk "sig" a)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton mult-keys-enc-sig
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (non-orig (privk "sig" a))
+  (uniq-orig n2)
+  (traces
+    ((recv (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (send (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (recv (enc (enc n2 (pubk "enc" b)) (privk "sig" a)))))
+  (label 2)
+  (unrealized (0 0) (0 2))
+  (origs (n2 (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton mult-keys-enc-sig
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 1 (n1 n1) (a a) (b b))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "sig" a))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand init 1)
+    (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)) (0 0))
+  (traces
+    ((recv (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (send (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (recv (enc (enc n2 (pubk "enc" b)) (privk "sig" a))))
+    ((send (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton mult-keys-enc-sig
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig (privk "sig" a))
+  (uniq-orig n2)
+  (operation encryption-test (displaced 1 2 init 3)
+    (enc (enc n2 (pubk "enc" b)) (privk "sig" a)) (0 2))
+  (traces
+    ((recv (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (send (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (recv (enc (enc n2 (pubk "enc" b)) (privk "sig" a))))
+    ((send (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (recv (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (send (enc (enc n2 (pubk "enc" b)) (privk "sig" a)))))
+  (label 4)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 1))))
+
+(defskeleton mult-keys-enc-sig
+  (vars (n2 n1 n1-0 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 1 (n1 n1) (a a) (b b))
+  (defstrand init 3 (n1 n1-0) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (privk "sig" a))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand init 3)
+    (enc (enc n2 (pubk "enc" b)) (privk "sig" a)) (0 2))
+  (traces
+    ((recv (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (send (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (recv (enc (enc n2 (pubk "enc" b)) (privk "sig" a))))
+    ((send (enc (enc n1 a (pubk "enc" b)) (privk "sig" a))))
+    ((send (enc (enc n1-0 a (pubk "enc" b)) (privk "sig" a)))
+      (recv (enc (enc n1-0 n2 (pubk "enc" a)) (privk "sig" b)))
+      (send (enc (enc n2 (pubk "enc" b)) (privk "sig" a)))))
+  (label 5)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol mult-keys-enc-sig basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (recv (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (send (enc (enc n2 (pubk "enc" b)) (privk "sig" a)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (send (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (recv (enc (enc n2 (pubk "enc" b)) (privk "sig" a)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton mult-keys-enc-sig
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (non-orig (privk "enc" a))
+  (uniq-orig n2)
+  (traces
+    ((recv (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (send (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (recv (enc (enc n2 (pubk "enc" b)) (privk "sig" a)))))
+  (label 6)
+  (unrealized (0 2))
+  (origs (n2 (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton mult-keys-enc-sig
+  (vars (n2 n1 text) (a b b-0 name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (privk "enc" a))
+  (uniq-orig n2)
+  (operation nonce-test (added-strand init 3) n2 (0 2)
+    (enc n1 n2 (pubk "enc" a)))
+  (traces
+    ((recv (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (send (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (recv (enc (enc n2 (pubk "enc" b)) (privk "sig" a))))
+    ((send (enc (enc n1 a (pubk "enc" b-0)) (privk "sig" a)))
+      (recv (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b-0)))
+      (send (enc (enc n2 (pubk "enc" b-0)) (privk "sig" a)))))
+  (label 7)
+  (parent 6)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol mult-keys-enc-sig basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (recv (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (send (enc (enc n2 (pubk "enc" b)) (privk "sig" a)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (send (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (recv (enc (enc n2 (pubk "enc" b)) (privk "sig" a)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton mult-keys-enc-sig
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (non-orig (privk "enc" a) (privk "sig" a))
+  (uniq-orig n2)
+  (traces
+    ((recv (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (send (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (recv (enc (enc n2 (pubk "enc" b)) (privk "sig" a)))))
+  (label 8)
+  (unrealized (0 0) (0 2))
+  (origs (n2 (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton mult-keys-enc-sig
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 1 (n1 n1) (a a) (b b))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "enc" a) (privk "sig" a))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand init 1)
+    (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)) (0 0))
+  (traces
+    ((recv (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (send (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (recv (enc (enc n2 (pubk "enc" b)) (privk "sig" a))))
+    ((send (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))))
+  (label 9)
+  (parent 8)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton mult-keys-enc-sig
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig (privk "enc" a) (privk "sig" a))
+  (uniq-orig n2)
+  (operation encryption-test (displaced 1 2 init 3)
+    (enc (enc n2 (pubk "enc" b)) (privk "sig" a)) (0 2))
+  (traces
+    ((recv (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (send (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (recv (enc (enc n2 (pubk "enc" b)) (privk "sig" a))))
+    ((send (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (recv (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (send (enc (enc n2 (pubk "enc" b)) (privk "sig" a)))))
+  (label 10)
+  (parent 9)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 1))))
+
+(defskeleton mult-keys-enc-sig
+  (vars (n2 n1 n1-0 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 1 (n1 n1) (a a) (b b))
+  (defstrand init 3 (n1 n1-0) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (privk "enc" a) (privk "sig" a))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand init 3)
+    (enc (enc n2 (pubk "enc" b)) (privk "sig" a)) (0 2))
+  (traces
+    ((recv (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (send (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (recv (enc (enc n2 (pubk "enc" b)) (privk "sig" a))))
+    ((send (enc (enc n1 a (pubk "enc" b)) (privk "sig" a))))
+    ((send (enc (enc n1-0 a (pubk "enc" b)) (privk "sig" a)))
+      (recv (enc (enc n1-0 n2 (pubk "enc" a)) (privk "sig" b)))
+      (send (enc (enc n2 (pubk "enc" b)) (privk "sig" a)))))
+  (label 11)
+  (parent 9)
+  (unrealized (2 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton mult-keys-enc-sig
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 1 (n1 n1) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (privk "enc" a) (privk "sig" a))
+  (uniq-orig n2)
+  (operation nonce-test (contracted (n1-0 n1)) n2 (2 1)
+    (enc n1 n2 (pubk "enc" a)))
+  (traces
+    ((recv (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (send (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (recv (enc (enc n2 (pubk "enc" b)) (privk "sig" a))))
+    ((send (enc (enc n1 a (pubk "enc" b)) (privk "sig" a))))
+    ((send (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (recv (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (send (enc (enc n2 (pubk "enc" b)) (privk "sig" a)))))
+  (label 12)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 1))))
+
+(defskeleton mult-keys-enc-sig
+  (vars (n2 n1 n1-0 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 3 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (2 1)) ((1 2) (0 2)) ((2 0) (0 0)) ((2 2) (1 1)))
+  (non-orig (privk "enc" a) (privk "sig" a))
+  (uniq-orig n2)
+  (operation nonce-test (displaced 1 3 init 3) n2 (2 1)
+    (enc n1 n2 (pubk "enc" a)))
+  (traces
+    ((recv (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (send (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (recv (enc (enc n2 (pubk "enc" b)) (privk "sig" a))))
+    ((send (enc (enc n1-0 a (pubk "enc" b)) (privk "sig" a)))
+      (recv (enc (enc n1-0 n2 (pubk "enc" a)) (privk "sig" b)))
+      (send (enc (enc n2 (pubk "enc" b)) (privk "sig" a))))
+    ((send (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (recv (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (send (enc (enc n2 (pubk "enc" b)) (privk "sig" a)))))
+  (label 13)
+  (parent 11)
+  (seen 10)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton mult-keys-enc-sig
+  (vars (n2 n1 n1-0 text) (a b b-0 name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 1 (n1 n1) (a a) (b b))
+  (defstrand init 3 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0))
+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 2) (2 1)))
+  (non-orig (privk "enc" a) (privk "sig" a))
+  (uniq-orig n2)
+  (operation nonce-test (added-strand init 3) n2 (2 1)
+    (enc n1 n2 (pubk "enc" a)))
+  (traces
+    ((recv (enc (enc n1 a (pubk "enc" b)) (privk "sig" a)))
+      (send (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b)))
+      (recv (enc (enc n2 (pubk "enc" b)) (privk "sig" a))))
+    ((send (enc (enc n1 a (pubk "enc" b)) (privk "sig" a))))
+    ((send (enc (enc n1-0 a (pubk "enc" b)) (privk "sig" a)))
+      (recv (enc (enc n1-0 n2 (pubk "enc" a)) (privk "sig" b)))
+      (send (enc (enc n2 (pubk "enc" b)) (privk "sig" a))))
+    ((send (enc (enc n1 a (pubk "enc" b-0)) (privk "sig" a)))
+      (recv (enc (enc n1 n2 (pubk "enc" a)) (privk "sig" b-0)))
+      (send (enc (enc n2 (pubk "enc" b-0)) (privk "sig" a)))))
+  (label 14)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 1))))
+
+(comment "Nothing left to do")
diff --git a/tst/enrich.scm b/tst/enrich.scm
deleted file mode 100644
--- a/tst/enrich.scm
+++ /dev/null
@@ -1,17 +0,0 @@
-(herald enrich)
-
-(defprotocol enrich basic
-  (defrole extend
-    (vars (value state mesg))
-    (trace
-     (recv value)
-     (tran state (hash value state))))
-  (defrole see
-    (vars (state mesg))
-    (trace
-     (obsv state))))
-
-(defskeleton enrich
-  (vars (state mesg))
-  (defstrand extend 2 (value "1") (state (hash "0" state)))
-  (defstrand see 1 (state (hash "0" state))))
diff --git a/tst/enrich.tst b/tst/enrich.tst
deleted file mode 100644
--- a/tst/enrich.tst
+++ /dev/null
@@ -1,83 +0,0 @@
-(herald enrich)
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/enrich.scm")
-
-(defprotocol enrich basic
-  (defrole extend
-    (vars (value state mesg))
-    (trace (recv value) (tran state (hash value state))))
-  (defrole see (vars (state mesg)) (trace (obsv state))))
-
-(defskeleton enrich
-  (vars (state mesg))
-  (defstrand extend 2 (value "1") (state (hash "0" state)))
-  (defstrand see 1 (state (hash "0" state)))
-  (traces
-    ((recv "1") (tran (hash "0" state) (hash "1" (hash "0" state))))
-    ((obsv (hash "0" state))))
-  (label 0)
-  (unrealized (0 1) (1 0))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton enrich
-  (vars (state mesg))
-  (defstrand extend 2 (value "1") (state (hash "0" state)))
-  (defstrand see 1 (state (hash "0" state)))
-  (defstrand extend 2 (value "0") (state state))
-  (precedes ((2 1) (1 0)))
-  (leadsto ((2 1) (1 0)))
-  (operation state-passing-test (added-strand extend 2) (hash "0" state)
-    (1 0))
-  (traces
-    ((recv "1") (tran (hash "0" state) (hash "1" (hash "0" state))))
-    ((obsv (hash "0" state)))
-    ((recv "0") (tran state (hash "0" state))))
-  (label 1)
-  (parent 0)
-  (unrealized (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton enrich
-  (vars (state mesg))
-  (defstrand extend 2 (value "1") (state (hash "0" state)))
-  (defstrand see 1 (state (hash "0" state)))
-  (defstrand extend 2 (value "0") (state state))
-  (precedes ((1 0) (0 1)) ((2 1) (0 1)) ((2 1) (1 0)))
-  (leadsto ((2 1) (0 1)) ((2 1) (1 0)))
-  (operation state-passing-test (displaced 3 2 extend 2)
-    (hash "0" state) (0 1))
-  (traces
-    ((recv "1") (tran (hash "0" state) (hash "1" (hash "0" state))))
-    ((obsv (hash "0" state)))
-    ((recv "0") (tran state (hash "0" state))))
-  (label 2)
-  (parent 1)
-  (unrealized)
-  (shape)
-  (maps ((0 1) ((state state))))
-  (origs))
-
-(defskeleton enrich
-  (vars (state mesg))
-  (defstrand extend 2 (value "1") (state (hash "0" state)))
-  (defstrand see 1 (state (hash "0" state)))
-  (defstrand extend 2 (value "0") (state state))
-  (defstrand extend 2 (value "0") (state state))
-  (precedes ((1 0) (0 1)) ((2 1) (1 0)) ((3 1) (0 1)))
-  (leadsto ((2 1) (1 0)) ((3 1) (0 1)))
-  (operation state-passing-test (added-strand extend 2) (hash "0" state)
-    (0 1))
-  (traces
-    ((recv "1") (tran (hash "0" state) (hash "1" (hash "0" state))))
-    ((obsv (hash "0" state))) ((recv "0") (tran state (hash "0" state)))
-    ((recv "0") (tran state (hash "0" state))))
-  (label 3)
-  (parent 1)
-  (unrealized)
-  (shape)
-  (maps ((0 1) ((state state))))
-  (origs))
-
-(comment "Nothing left to do")
diff --git a/tst/envelope.scm b/tst/envelope.scm
--- a/tst/envelope.scm
+++ b/tst/envelope.scm
@@ -1,141 +1,204 @@
-;;; Mark Ryan's envelope protocol, implemented using TPMs.
-;;; The protocol includes roles to emulate interactions with a simplified
-;;; TPM (trusted platform module) that only has a single Platform
-;;; Configuration Register (PCR).
+(herald "Envelope Protocol" (bound 15))
 
-;;; The true protocol is encoded in the "alice" role.  Alice is a
-;;; teenager who wants to go out for an evening and maintain privacy
-;;; about her itinerary, but her parents insist on being able to know in
-;;; an emergency.
+;;; This file analyzes the Envelope Protocol using three rules sets.
+;;; For each rule set, it checks three scenarios.  In every scenario,
+;;; an Alice strand runs to completion.  In the first scenario, the
+;;; obtain token is listened for.  In the second, a listener for the
+;;; refusal token is included.  In the third scenario, both listeners
+;;; are included.  The third scenario should be impossible, but rules
+;;; are required to accurately model state.
+;;;
+;;; The first rule set is empty and the answer to the third scenario
+;;; shows a case is which the TPM's PCR state splits.  The second rule
+;;; set forces TPM extends to be linearly ordered.  However, in this
+;;; case, there are two TPMs when there should be one as Alice uses
+;;; one TPM storage key to communicate with both TPMs.  The final rule
+;;; set includes a rule about storage keys and thus accurately models
+;;; state.
+;;;
+;;; Macros are used to avoid copying roles and scenarios.
 
-;;; Alice uses a TPM-created key to encrypt the itinerary (represented
-;;; by 'v' for value).  Alice's parents can alter the state of the TPM
-;;; in either of two ways, but not in both: they can extend with
-;;; "obtain", which will enable decryption of 'v'.  Or, they can
-;;; extend with "refuse", which serves to represent permanently declining
-;;; the option to open the envelope.
+;; This is the refusal token
+(defmacro (refuse n v k aik)
+  (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
 
-(herald "Envelope Protocol" (bound 20))
+;;; This protocol tracks the TPM's PCR state
+;;; by sending a message with the current PCR
+;;; value encrypted by a hashed secret key.
+;;; The hash is used to prevent a confusion with
+;;; the key for an encrypted session.
 
-;;; Encoding of a PCR extend operation
-(defmacro (extend val old)
-  (hash val old))
+(defmacro (roles)
+  (^
+   ;; Power on sets the pcr to 0
+   (defrole tpm-power-on
+     (vars (pcrkey skey))
+     (trace
+      (recv "power on")
+      (send (enc "0" (hash pcrkey))))
+     (non-orig pcrkey))
 
-;; This is the refusal token
-(defmacro (refuse n pcr v k aik)
-  (enc "quote" (extend "refuse" (extend n pcr)) (enc v k) aik))
+   ;; The extend command takes the value to
+   ;; extend and the current PCR value (in the
+   ;; form of a message encrypted with the special
+   ;; PCR state key) and produces the hash of the
+   ;; two values (by sending it encrypted in the
+   ;; special PCR state key).
+   (defrole tpm-extend
+     (vars (value current-value mesg) (pcrkey skey))
+     (trace
+      (recv (cat "extend" value))
+      (recv (enc current-value (hash pcrkey))) ;; MSR lhs (deleted)
+      (send (enc (hash current-value value) (hash pcrkey))) ;; MSR rhs
+      (send "ext ok"))
+     (non-orig pcrkey))
 
+   ;; The extend command can also occur within an
+   ;; encrypted session.  We assume some session key already exists
+   (defrole tpm-extend-enc
+     (vars (value current-value mesg) (pcrkey esk skey))
+     (trace
+      (recv (enc "extend" value esk))
+      (recv (enc current-value (hash pcrkey))) ;; MSR lhs (deleted)
+      (send (enc (hash current-value value) (hash pcrkey))) ;; MSR rhs
+      (send "ext ok"))
+     (non-orig pcrkey esk))
+
+   ;; The TPM must retrieve the current pcr value.  Notice that
+   ;; the nonce is of sort mesg, which allows non-atomic values.
+   (defrole tpm-quote
+     (vars (nonce current-value mesg) (pcrkey skey) (aik akey))
+     (trace
+      (recv (cat "quote" nonce))
+      (recv (enc current-value (hash pcrkey))) ;; MSR lhs (not deleted)
+      (send (enc "quote" current-value nonce aik)))
+     (non-orig aik pcrkey))
+
+   ;; This role creates a key whose use is restricted to a
+   ;; requested pcr value (since we only model one pcr).
+   ;; It doesn't create or change any TPM state.
+   (defrole tpm-create-key
+     (vars (k aik akey) (pcrval mesg) (esk skey))
+     (trace
+      (recv (enc "create key" pcrval esk)) ;; encryption prevents weird shapes
+      (send (enc "created" k pcrval aik)));; no tpm state is set
+     (uniq-orig k)
+     (non-orig (invk k) aik esk))
+
+   ;; This role receives an encryption and a previously
+   ;; made key structure that restricts the decryption key
+   ;; to be used with a certain pcr value.  It retrieves the
+   ;; current value and checks that it matches before decrypting.
+   (defrole tpm-decrypt
+     (vars (m pcrvals mesg) (k aik akey) (pcrkey skey))
+     (trace
+      (recv (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcrvals aik))
+      (recv (enc pcrvals (hash pcrkey))) ;; MSR lhs (not deleted)
+      (send m))
+     (non-orig aik pcrkey))
+
+   ;; Alice extends a pcr with a fresh nonce in an encrypted
+   ;; session.  She has the TPM create a new key whose use is
+   ;; bound to the hash of pcr value she just created with the
+   ;; string "obtain".  She then encrypts her fresh secret with
+   ;; this newly created key.
+   (defrole alice
+     (vars (n v data) (esk skey) (k aik akey))
+     (trace
+      (send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+     (uniq-orig n v)
+     (non-orig aik esk))))
+
 (defprotocol envelope basic
+  (roles))
 
-  ;; Power on sets the TPM to the boot state
-  (defrole tpm-power-on
-    (vars (state mesg))
-    (trace
-     (init "0")))
+(defskeleton envelope
+  (vars (v data))
+  (deflistener v)
+  (defstrand alice 4 (v v)))
 
-  ;; TPM Quote has a fake event to deal with the fact that a variable
-  ;; of sort mesg must be acquired.
-  (defrole tpm-quote
-    (vars (nonce pcr mesg) (aik akey))
-    (trace
-     (recv (cat "quote" nonce))
-     (obsv pcr)
-     (send (enc "quote" pcr nonce aik)))
-    (non-orig aik))
+(defskeleton envelope
+  (vars (n v data) (k aik akey))
+  (deflistener (refuse n v k aik))
+  (defstrand alice 4 (n n) (v v) (k k) (aik aik)))
 
-  ;; The extend command occurs only within an encrypted session.  We
-  ;; assume some session key already exists
-  (defrole tpm-extend-enc
-    (vars (value state mesg) (esk skey) (tne tno data)
-	  (tpmkey akey))
-    (trace
-     (recv (cat "establish transport"
-		tpmkey (enc esk tpmkey)))
-     (send (cat "establish transport" tne))
-     (recv (cat "execute transport"
-		(cat "extend" (enc value esk))
-		tno "false"
-		(hash esk (hash "execute transport"
-				(hash "extend"
-				      (enc value esk)))
-				tne tno "false")))
-     (tran state (extend value state)))
-    (uniq-orig tne)
-    ;; (non-orig (invk tpmkey))  ; JDG:  This assumption irrelevant 
-    )
+(defskeleton envelope
+  (vars (n v data) (k aik akey))
+  (deflistener (refuse n v k aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (k k) (aik aik)))
 
-  ;; This role creates a key whose use is restricted to a requested
-  ;; pcr value (since we only model one pcr).  It doesn't create or
-  ;; change any TPM state.
-  (defrole tpm-create-key
-    (vars (k aik akey) (pcr mesg) (esk skey))
-    (trace
-     (recv (enc "create key" pcr esk)) ;; encryption prevents weird shapes
-     (send (enc "created" k pcr aik)));; no tpm state is set
-    (uniq-orig k)
-    (non-orig (invk k) aik esk))
+(defprotocol envelope basic
+  (roles)
 
-  ;; This role receives an encryption and a previously made key
-  ;; structure that restricts the decryption key to be used with a
-  ;; certain pcr value.  It retrieves the current value and checks
-  ;; that it matches before decrypting.
-  (defrole tpm-decrypt
-    (vars (m pcr mesg) (k aik akey))
-    (trace
-     (recv (cat "decrypt" (enc m k)))
-     (recv (enc "created" k pcr aik))
-     (obsv pcr)
-     (send m))
-    (non-orig aik))
+  (defrule ordered-extends
+    (forall ((y z strd) (pcrkey skey))
+	    (implies
+	     (and (p "tpm-extend" y 3)
+		  (p "tpm-extend" z 3)
+		  (p "tpm-extend" "pcrkey" y pcrkey)
+		  (p "tpm-extend" "pcrkey" z pcrkey))
+	     (or (= y z)
+		 (prec y 2 z 3)
+		 (prec z 2 y 3))))))
 
-  ;; Alice extends a pcr with a fresh nonce in an encrypted session.
-  ;; She has the TPM create a new key whose use is bound to the hash
-  ;; of pcr value she just created with the string "obtain".  She then
-  ;; encrypts her fresh secret with this newly created key.  This role
-  ;; has a fake reception event to deal with he fact that pcr must be
-  ;; acquired.
-  (defrole alice
-    (vars (v n tne tno data) (esk1 esk skey) (k aik tpmkey akey)
-	  (pcr mesg))
-    (trace
-     (send (cat "establish transport"
-		tpmkey (enc esk tpmkey)))
-     (recv (cat "establish transport" tne))
-     (send (cat "execute transport"
-		(cat "extend" (enc n esk))
-		tno "false"
-		(hash esk (hash "execute transport"
-				(hash "extend"
-				      (enc n esk)))
-				tne tno "false")))
-     (recv pcr)				; Fake event
-     (send (enc "create key" (extend "obtain" (extend n pcr)) esk1))
-     (recv (enc "created" k (extend "obtain" (extend n pcr)) aik))
-     (send (enc v k)))
-    (uniq-orig n v tno esk)
-    (neq (tno n))
-    (non-orig aik esk1 (invk tpmkey)	; JDG:  This assumption important 
-	      )))
+(defskeleton envelope
+  (vars (v data))
+  (deflistener v)
+  (defstrand alice 4 (v v)))
 
-;;; Initial skeleton
 (defskeleton envelope
-  (vars (v n data) (esk skey) (k aik tpmkey akey) (pcr mesg))
-  (deflistener esk)
-  (defstrand alice 7 (esk esk) (n n) (pcr pcr) (v v) (k k) (aik aik)))
+  (vars (n v data) (k aik akey))
+  (deflistener (refuse n v k aik))
+  (defstrand alice 4 (n n) (v v) (k k) (aik aik)))
 
 (defskeleton envelope
-  (vars (v n data) (k aik akey) (pcr mesg))
-  (deflistener (refuse n pcr v k aik))
+  (vars (n v data) (k aik akey))
+  (deflistener (refuse n v k aik))
   (deflistener v)
-  (defstrand alice 7 (n n) (pcr pcr) (v v) (k k) (aik aik)))
+  (defstrand alice 4 (n n) (v v) (k k) (aik aik)))
 
+(defprotocol envelope basic
+  (roles)
+
+  (defrule ordered-extends
+    (forall ((y z strd) (pcrkey skey))
+	    (implies
+	     (and (p "tpm-extend" y 3)
+		  (p "tpm-extend" z 3)
+		  (p "tpm-extend" "pcrkey" y pcrkey)
+		  (p "tpm-extend" "pcrkey" z pcrkey))
+	     (or (= y z)
+		 (prec y 2 z 3)
+		 (prec z 2 y 3)))))
+
+  (defrule esk-same-as-pcrkey
+    (forall ((y z strd) (esk pcrkey pcrkey-0 skey))
+	    (implies
+	     (and (p "tpm-extend-enc" y 3)
+		  (p "tpm-extend-enc" z 3)
+		  (p "tpm-extend-enc" "esk" y esk)
+		  (p "tpm-extend-enc" "esk" z esk)
+		  (p "tpm-extend-enc" "pcrkey" y pcrkey)
+		  (p "tpm-extend-enc" "pcrkey" z pcrkey-0))
+	     (= pcrkey pcrkey-0)))))
+
 (defskeleton envelope
   (vars (v data))
   (deflistener v)
-  (defstrand alice 7 (v v)))
+  (defstrand alice 4 (v v)))
 
 (defskeleton envelope
-  (vars (v n data) (k aik akey) (pcr mesg))
-  (deflistener (refuse n pcr v k aik))
-  ;;   (deflistener v)
-  (defstrand alice 7 (n n) (pcr pcr) (v v) (k k) (aik aik)))
+  (vars (n v data) (k aik akey))
+  (deflistener (refuse n v k aik))
+  (defstrand alice 4 (n n) (v v) (k k) (aik aik)))
+
+(defskeleton envelope
+  (vars (n v data) (k aik akey))
+  (deflistener (refuse n v k aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (k k) (aik aik)))
diff --git a/tst/envelope.tst b/tst/envelope.tst
--- a/tst/envelope.tst
+++ b/tst/envelope.tst
@@ -1,10571 +1,6374 @@
-(herald "Envelope Protocol" (bound 20))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/envelope.scm")
-(comment "Strand count bounded at 20")
-
-(defprotocol envelope basic
-  (defrole tpm-power-on (vars) (trace (init "0")))
-  (defrole tpm-quote
-    (vars (nonce pcr mesg) (aik akey))
-    (trace (recv (cat "quote" nonce)) (obsv pcr)
-      (send (enc "quote" pcr nonce aik)))
-    (non-orig aik))
-  (defrole tpm-extend-enc
-    (vars (value state mesg) (esk skey) (tne tno data) (tpmkey akey))
-    (trace (recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc value esk)) tno
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc value esk)))
-            tne tno "false"))) (tran state (hash value state)))
-    (uniq-orig tne))
-  (defrole tpm-create-key
-    (vars (k aik akey) (pcr mesg) (esk skey))
-    (trace (recv (enc "create key" pcr esk))
-      (send (enc "created" k pcr aik)))
-    (non-orig (invk k) aik esk)
-    (uniq-orig k))
-  (defrole tpm-decrypt
-    (vars (m pcr mesg) (k aik akey))
-    (trace (recv (cat "decrypt" (enc m k)))
-      (recv (enc "created" k pcr aik)) (obsv pcr) (send m))
-    (non-orig aik))
-  (defrole alice
-    (vars (v n tne tno data) (esk1 esk skey) (k aik tpmkey akey)
-      (pcr mesg))
-    (trace (send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    (non-orig aik esk1 (invk tpmkey))
-    (uniq-orig v n tno esk)
-    (neq (tno n))))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk esk1 skey)
-    (k aik tpmkey akey))
-  (deflistener esk)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (neq (tno n))
-  (non-orig esk1 aik (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (traces ((recv esk) (send esk))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k))))
-  (label 0)
-  (unrealized (0 0) (1 5))
-  (preskeleton)
-  (origs (esk (1 0)) (n (1 2)) (tno (1 2)) (v (1 6)))
-  (comment "Not a skeleton"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk esk1 skey)
-    (k aik tpmkey akey))
-  (deflistener esk)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (precedes ((1 0) (0 0)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (traces ((recv esk) (send esk))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k))))
-  (label 1)
-  (parent 0)
-  (unrealized (0 0) (1 5))
-  (origs (esk (1 0)) (n (1 2)) (tno (1 2)) (v (1 6)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk esk1 skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener esk)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" k (hash "obtain" (hash n pcr)) aik))
-    (aik aik-0))
-  (precedes ((1 0) (0 0)) ((2 2) (1 5)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" k (hash "obtain" (hash n pcr)) aik) (1 5))
-  (traces ((recv esk) (send esk))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (cat "quote" nonce))
-      (obsv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send
-        (enc "quote" (enc "created" k (hash "obtain" (hash n pcr)) aik)
-          nonce aik-0))))
-  (label 2)
-  (parent 1)
-  (unrealized (0 0) (2 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk esk1 esk-0 skey)
-    (k aik tpmkey akey))
-  (deflistener esk)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk-0) (k k) (aik aik))
-  (precedes ((1 0) (0 0)) ((2 1) (1 5)))
-  (neq (tno n))
-  (non-orig esk1 esk-0 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-create-key 2)
-    (enc "created" k (hash "obtain" (hash n pcr)) aik) (1 5))
-  (traces ((recv esk) (send esk))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))
-  (label 3)
-  (parent 1)
-  (unrealized (0 0) (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk esk1 esk-0 skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener esk)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk-0) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-    (aik aik-0))
-  (precedes ((1 0) (0 0)) ((2 1) (1 5)) ((3 2) (2 0)))
-  (neq (tno n))
-  (non-orig esk1 esk-0 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (2 0))
-  (traces ((recv esk) (send esk))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "quote" nonce))
-      (obsv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-      (send
-        (enc "quote"
-          (enc "create key" (hash "obtain" (hash n pcr)) esk-0) nonce
-          aik-0))))
-  (label 4)
-  (parent 3)
-  (unrealized (0 0) (3 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk esk1 skey)
-    (k aik tpmkey akey))
-  (deflistener esk)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (precedes ((1 0) (0 0)) ((1 4) (2 0)) ((2 1) (1 5)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (displaced 3 1 alice 5)
-    (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (2 0))
-  (traces ((recv esk) (send esk))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))
-  (label 5)
-  (parent 3)
-  (unrealized (0 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk esk1 skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener esk)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((1 0) (3 1)) ((1 4) (2 0)) ((2 1) (1 5)) ((3 2) (0 0)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (0 0)
-    (enc esk tpmkey))
-  (traces ((recv esk) (send esk))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "quote" nonce)) (obsv esk)
-      (send (enc "quote" esk nonce aik-0))))
-  (label 6)
-  (parent 5)
-  (unrealized (3 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr pcr-0 mesg) (v n tne tno data) (esk esk1 skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener esk)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr-0) (k tpmkey) (aik aik-0))
-  (precedes ((1 0) (3 0)) ((1 4) (2 0)) ((2 1) (1 5)) ((3 3) (0 0)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (0 0)
-    (enc esk tpmkey))
-  (traces ((recv esk) (send esk))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr-0 aik-0)) (obsv pcr-0)
-      (send esk)))
-  (label 7)
-  (parent 5)
-  (unrealized (3 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr pcr-0 nonce mesg) (v n tne tno data) (esk esk1 skey)
-    (k aik tpmkey aik-0 aik-1 akey))
-  (deflistener esk)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr-0) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" tpmkey pcr-0 aik-0)) (aik aik-1))
-  (precedes ((1 0) (3 0)) ((1 4) (2 0)) ((2 1) (1 5)) ((3 3) (0 0))
-    ((4 2) (3 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" tpmkey pcr-0 aik-0) (3 1))
-  (traces ((recv esk) (send esk))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr-0 aik-0)) (obsv pcr-0) (send esk))
-    ((recv (cat "quote" nonce))
-      (obsv (enc "created" tpmkey pcr-0 aik-0))
-      (send
-        (enc "quote" (enc "created" tpmkey pcr-0 aik-0) nonce aik-1))))
-  (label 8)
-  (parent 7)
-  (unrealized (4 1))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol envelope basic
-  (defrole tpm-power-on (vars) (trace (init "0")))
-  (defrole tpm-quote
-    (vars (nonce pcr mesg) (aik akey))
-    (trace (recv (cat "quote" nonce)) (obsv pcr)
-      (send (enc "quote" pcr nonce aik)))
-    (non-orig aik))
-  (defrole tpm-extend-enc
-    (vars (value state mesg) (esk skey) (tne tno data) (tpmkey akey))
-    (trace (recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc value esk)) tno
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc value esk)))
-            tne tno "false"))) (tran state (hash value state)))
-    (uniq-orig tne))
-  (defrole tpm-create-key
-    (vars (k aik akey) (pcr mesg) (esk skey))
-    (trace (recv (enc "create key" pcr esk))
-      (send (enc "created" k pcr aik)))
-    (non-orig (invk k) aik esk)
-    (uniq-orig k))
-  (defrole tpm-decrypt
-    (vars (m pcr mesg) (k aik akey))
-    (trace (recv (cat "decrypt" (enc m k)))
-      (recv (enc "created" k pcr aik)) (obsv pcr) (send m))
-    (non-orig aik))
-  (defrole alice
-    (vars (v n tne tno data) (esk1 esk skey) (k aik tpmkey akey)
-      (pcr mesg))
-    (trace (send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    (non-orig aik esk1 (invk tpmkey))
-    (uniq-orig v n tno esk)
-    (neq (tno n))))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (neq (tno n))
-  (non-orig esk1 aik (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k))))
-  (label 9)
-  (unrealized (0 0) (1 0) (2 5))
-  (preskeleton)
-  (origs (esk (2 0)) (n (2 2)) (tno (2 2)) (v (2 6)))
-  (comment "Not a skeleton"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (precedes ((2 6) (0 0)) ((2 6) (1 0)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k))))
-  (label 10)
-  (parent 9)
-  (unrealized (0 0) (2 5))
-  (origs (esk (2 0)) (n (2 2)) (tno (2 2)) (v (2 6)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" k (hash "obtain" (hash n pcr)) aik))
-    (aik aik-0))
-  (precedes ((2 6) (0 0)) ((2 6) (1 0)) ((3 2) (2 5)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" k (hash "obtain" (hash n pcr)) aik) (2 5))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (cat "quote" nonce))
-      (obsv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send
-        (enc "quote" (enc "created" k (hash "obtain" (hash n pcr)) aik)
-          nonce aik-0))))
-  (label 11)
-  (parent 10)
-  (unrealized (0 0) (3 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk esk-0 skey)
-    (k aik tpmkey akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk-0) (k k) (aik aik))
-  (precedes ((2 6) (0 0)) ((2 6) (1 0)) ((3 1) (2 5)))
-  (neq (tno n))
-  (non-orig esk1 esk-0 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-create-key 2)
-    (enc "created" k (hash "obtain" (hash n pcr)) aik) (2 5))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))
-  (label 12)
-  (parent 10)
-  (unrealized (0 0) (1 0) (3 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk esk-0 skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk-0) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-    (aik aik-0))
-  (precedes ((2 6) (0 0)) ((2 6) (1 0)) ((3 1) (2 5)) ((4 2) (3 0)))
-  (neq (tno n))
-  (non-orig esk1 esk-0 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (3 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "quote" nonce))
-      (obsv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-      (send
-        (enc "quote"
-          (enc "create key" (hash "obtain" (hash n pcr)) esk-0) nonce
-          aik-0))))
-  (label 13)
-  (parent 12)
-  (unrealized (0 0) (1 0) (4 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (1 0)) ((3 1) (2 5)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (displaced 4 2 alice 5)
-    (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (3 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))
-  (label 14)
-  (parent 12)
-  (unrealized (0 0) (1 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr v) (aik aik-0))
-  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 1)) ((3 1) (2 5))
-    ((4 2) (1 0)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation nonce-test (added-strand tpm-quote 3) v (1 0) (enc v k))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "quote" nonce)) (obsv v)
-      (send (enc "quote" v nonce aik-0))))
-  (label 15)
-  (parent 14)
-  (unrealized (0 0) (4 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr pcr-0 mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))
-  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))
-    ((4 3) (1 0)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k pcr-0 aik-0)) (obsv pcr-0) (send v)))
-  (label 16)
-  (parent 14)
-  (unrealized (0 0) (4 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr pcr-0 nonce mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 aik-1 akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" k pcr-0 aik-0)) (aik aik-1))
-  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))
-    ((3 1) (5 1)) ((4 3) (1 0)) ((5 2) (4 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" k pcr-0 aik-0) (4 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k pcr-0 aik-0)) (obsv pcr-0) (send v))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" k pcr-0 aik-0))
-      (send (enc "quote" (enc "created" k pcr-0 aik-0) nonce aik-1))))
-  (label 17)
-  (parent 16)
-  (unrealized (0 0) (5 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n pcr)))
-    (k k) (aik aik))
-  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))
-    ((4 3) (1 0)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (displaced 5 3 tpm-create-key 2)
-    (enc "created" k pcr-0 aik-0) (4 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (obsv (hash "obtain" (hash n pcr))) (send v)))
-  (label 18)
-  (parent 16)
-  (unrealized (0 0) (4 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno tne-0 tno-0 data) (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n pcr)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n pcr))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))
-    ((4 3) (1 0)) ((5 3) (4 2)))
-  (leadsto ((5 3) (4 2)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "obtain" (hash n pcr)) (4 2))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (obsv (hash "obtain" (hash n pcr))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n pcr) (hash "obtain" (hash n pcr)))))
-  (label 19)
-  (parent 18)
-  (unrealized (0 0) (5 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 3) (5 3)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash n state) (5 3))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state))))
-  (label 20)
-  (parent 19)
-  (unrealized (0 0) (6 2))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr
-      (hash esk-1
-        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-        tno-1 "false")) (aik aik-0))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 3) (5 3))
-    ((7 2) (6 2)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false") (6 2))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce))
-      (obsv
-        (hash esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false"))
-      (send
-        (enc "quote"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false") nonce aik-0))))
-  (label 21)
-  (parent 20)
-  (unrealized (0 0) (6 2) (7 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation encryption-test (displaced 7 2 alice 3)
-    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false") (6 2))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state))))
-  (label 22)
-  (parent 20)
-  (unrealized (0 0) (6 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener
-      (cat esk-1
-        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-        tno-1 "false"))
-    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false") (6 2))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false"))))
-  (label 23)
-  (parent 20)
-  (unrealized (0 0) (6 2) (7 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr
-      (hash esk-1
-        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-        tno-1 "false")) (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value esk-1)
-    (state
-      (cat (hash "execute transport" (hash "extend" (enc n esk-1)))
-        tne-1 tno-1 "false")) (tne tne-2) (tno tno-2) (esk esk-2)
-    (tpmkey tpmkey-2))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (8 3))
-    ((6 3) (5 3)) ((7 2) (6 2)) ((8 3) (7 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false") (7 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce))
-      (obsv
-        (hash esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false"))
-      (send
-        (enc "quote"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false") nonce aik-0)))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc esk-1 esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc esk-1 esk-2)))
-            tne-2 tno-2 "false")))
-      (tran
-        (cat (hash "execute transport" (hash "extend" (enc n esk-1)))
-          tne-1 tno-1 "false")
-        (hash esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false"))))
-  (label 24)
-  (parent 21)
-  (unrealized (0 0) (6 2) (8 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (contracted (tpmkey-1 tpmkey)) esk (6 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state))))
-  (label 25)
-  (parent 22)
-  (unrealized (0 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((2 0) (7 1)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (6 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (6 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce)) (obsv esk)
-      (send (enc "quote" esk nonce aik-0))))
-  (label 26)
-  (parent 22)
-  (unrealized (0 0) (7 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((2 0) (7 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)) ((7 3) (6 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (6 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))
-  (label 27)
-  (parent 22)
-  (unrealized (0 0) (7 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))
-    (aik aik-0))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 2) (7 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash "execute transport" (hash "extend" (enc n esk-1))) (7 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce
-          aik-0))))
-  (label 28)
-  (parent 23)
-  (unrealized (0 0) (6 2) (8 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener
-      (cat "execute transport" (hash "extend" (enc n esk-1))))
-    (hash "execute transport" (hash "extend" (enc n esk-1))) (7 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1))))))
-  (label 29)
-  (parent 23)
-  (unrealized (0 0) (6 2) (8 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (4 0))
-    ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik) (0 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send
-        (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))))
-  (label 30)
-  (parent 25)
-  (unrealized (7 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-    (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (4 0))
-    ((2 6) (7 1)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik) (0 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce))
-      (obsv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send
-        (enc "quote"
-          (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)
-          nonce aik-0))))
-  (label 31)
-  (parent 25)
-  (unrealized (7 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr nonce mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((2 0) (7 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)) ((7 3) (6 0)) ((8 2) (7 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" tpmkey pcr aik-0) (7 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))
-      (send
-        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))
-  (label 32)
-  (parent 27)
-  (unrealized (0 0) (8 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))
-    (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "execute transport")
-    (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)
-    (esk esk-2) (tpmkey tpmkey-2))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 2) (7 0)) ((9 3) (8 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((9 3) (8 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "execute transport" (hash "extend" (enc n esk-1))) (8 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce
-          aik-0)))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport"
-          (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"
-          (hash esk-2
-            (hash "execute transport"
-              (hash "extend" (enc "execute transport" esk-2))) tne-2
-            tno-2 "false")))
-      (tran (hash "extend" (enc n esk-1))
-        (hash "execute transport" (hash "extend" (enc n esk-1))))))
-  (label 33)
-  (parent 28)
-  (unrealized (0 0) (6 2) (9 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "extend" (enc n esk-1))) (aik aik-0))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 2) (8 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash "extend" (enc n esk-1)) (8 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))
-      (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0))))
-  (label 34)
-  (parent 29)
-  (unrealized (0 0) (6 2) (9 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (precedes ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener (cat "extend" (enc n esk-1)))
-    (hash "extend" (enc n esk-1)) (8 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))))
-  (label 35)
-  (parent 29)
-  (unrealized (0 0) (9 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (4 0))
-    ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "refuse" (hash n state)) (7 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state)))))
-  (label 36)
-  (parent 30)
-  (unrealized (8 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)
-    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 tpmkey-3 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))
-    (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "execute transport")
-    (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)
-    (esk esk-2) (tpmkey tpmkey-2))
-  (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))
-    (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))
-  (precedes ((2 2) (10 3)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 2) (7 0)) ((9 3) (8 1))
-    ((10 3) (9 3)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((9 3) (8 1)) ((10 3) (9 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 tne-3 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "extend" (enc n esk-1)) (9 3))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce
-          aik-0)))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport"
-          (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"
-          (hash esk-2
-            (hash "execute transport"
-              (hash "extend" (enc "execute transport" esk-2))) tne-2
-            tno-2 "false")))
-      (tran (hash "extend" (enc n esk-1))
-        (hash "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))
-      (send (cat "establish transport" tne-3))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "extend" esk-3))
-          tno-3 "false"
-          (hash esk-3
-            (hash "execute transport"
-              (hash "extend" (enc "extend" esk-3))) tne-3 tno-3
-            "false")))
-      (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))
-  (label 37)
-  (parent 33)
-  (unrealized (0 0) (6 2) (10 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "extend" (enc n esk-1))) (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))
-    (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (precedes ((2 2) (10 3)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 2) (8 0))
-    ((10 3) (9 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((10 3) (9 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "extend" (enc n esk-1)) (9 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))
-      (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0)))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "extend" esk-2))
-          tno-2 "false"
-          (hash esk-2
-            (hash "execute transport"
-              (hash "extend" (enc "extend" esk-2))) tne-2 tno-2
-            "false")))
-      (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))
-  (label 38)
-  (parent 34)
-  (unrealized (0 0) (6 2) (10 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (precedes ((2 0) (6 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (contracted (esk-1 esk)) n (9 0) (enc n esk))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-1
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-1
-            tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-1 tno-1 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-1 tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk)))))
-  (label 39)
-  (parent 35)
-  (unrealized (0 0) (6 0) (7 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr n) (aik aik-0))
-  (precedes ((2 2) (10 1)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 1) (8 0))
-    ((10 2) (9 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) n (9 0) (enc n esk))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1))))
-    ((recv (cat "quote" nonce)) (obsv n)
-      (send (enc "quote" n nonce aik-0))))
-  (label 40)
-  (parent 35)
-  (unrealized (0 0) (10 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (deflistener esk)
-  (precedes ((2 0) (10 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-listener esk) n (9 0) (enc n esk))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk)))
-  (label 41)
-  (parent 35)
-  (unrealized (0 0) (10 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 3) (8 3)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash n state) (8 3))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state))))
-  (label 42)
-  (parent 36)
-  (unrealized (9 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 0) (10 1)) ((2 2) (9 0)) ((2 4) (3 0))
-    ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2))
-    ((8 1) (7 0)) ((9 1) (8 0)) ((10 2) (7 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (7 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-1
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-1
-            tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-1 tno-1 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-1 tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "quote" nonce)) (obsv esk)
-      (send (enc "quote" esk nonce aik-0))))
-  (label 43)
-  (parent 39)
-  (unrealized (0 0) (6 0) (10 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 2) (9 0)) ((2 4) (3 0))
-    ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2))
-    ((8 1) (7 0)) ((9 1) (8 0)) ((10 3) (7 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (7 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-1
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-1
-            tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-1 tno-1 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-1 tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))
-  (label 44)
-  (parent 39)
-  (unrealized (0 0) (6 0) (10 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((2 0) (11 1)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 1) (9 0)) ((11 2) (10 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (10 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))
-    ((recv (cat "quote" nonce)) (obsv esk)
-      (send (enc "quote" esk nonce aik-0))))
-  (label 45)
-  (parent 41)
-  (unrealized (0 0) (11 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((2 0) (11 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 1) (9 0)) ((11 3) (10 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (10 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))
-  (label 46)
-  (parent 41)
-  (unrealized (0 0) (11 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr
-      (hash esk-2
-        (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-        tno-2 "false")) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 3) (8 3)) ((10 2) (9 2)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false") (9 2))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce))
-      (obsv
-        (hash esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false"))
-      (send
-        (enc "quote"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false") nonce aik-0))))
-  (label 47)
-  (parent 42)
-  (unrealized (9 2) (10 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test
-    (added-listener
-      (cat esk-2
-        (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-        tno-2 "false"))
-    (hash esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false") (9 2))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false"))))
-  (label 48)
-  (parent 42)
-  (unrealized (9 2) (10 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state pcr nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 data) (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 2) (9 0)) ((2 4) (3 0))
-    ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2))
-    ((8 1) (7 0)) ((9 1) (8 0)) ((10 3) (7 0)) ((11 2) (10 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" tpmkey pcr aik-0) (10 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-1
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-1
-            tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-1 tno-1 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-1 tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))
-      (send
-        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))
-  (label 49)
-  (parent 44)
-  (unrealized (0 0) (6 0) (11 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((2 0) (11 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 1) (9 0)) ((11 3) (10 0)) ((12 2) (11 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" tpmkey pcr aik-0) (11 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))
-      (send
-        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))
-  (label 50)
-  (parent 46)
-  (unrealized (0 0) (12 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)
-    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr
-      (hash esk-2
-        (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-        tno-2 "false")) (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value esk-2)
-    (state
-      (cat (hash "execute transport" (hash "extend" (enc n esk-2)))
-        tne-2 tno-2 "false")) (tne tne-3) (tno tno-3) (esk esk-3)
-    (tpmkey tpmkey-3))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (11 3)) ((9 3) (8 3)) ((10 2) (9 2))
-    ((11 3) (10 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))
-    ((11 3) (10 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false") (10 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce))
-      (obsv
-        (hash esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false"))
-      (send
-        (enc "quote"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false") nonce aik-0)))
-    ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))
-      (send (cat "establish transport" tne-3))
-      (recv
-        (cat "execute transport" (cat "extend" (enc esk-2 esk-3)) tno-3
-          "false"
-          (hash esk-3
-            (hash "execute transport" (hash "extend" (enc esk-2 esk-3)))
-            tne-3 tno-3 "false")))
-      (tran
-        (cat (hash "execute transport" (hash "extend" (enc n esk-2)))
-          tne-2 tno-2 "false")
-        (hash esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false"))))
-  (label 51)
-  (parent 47)
-  (unrealized (9 2) (11 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-2))))
-    (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 2) (10 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash "execute transport" (hash "extend" (enc n esk-2))) (10 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-2))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-2))) nonce
-          aik-0))))
-  (label 52)
-  (parent 48)
-  (unrealized (9 2) (11 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 1) (10 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test
-    (added-listener
-      (cat "execute transport" (hash "extend" (enc n esk-2))))
-    (hash "execute transport" (hash "extend" (enc n esk-2))) (10 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-2))))))
-  (label 53)
-  (parent 48)
-  (unrealized (9 2) (11 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)
-    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-2))))
-    (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "execute transport")
-    (state (hash "extend" (enc n esk-2))) (tne tne-3) (tno tno-3)
-    (esk esk-3) (tpmkey tpmkey-3))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 2) (10 0)) ((12 3) (11 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))
-    ((12 3) (11 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "execute transport" (hash "extend" (enc n esk-2))) (11 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-2))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-2))) nonce
-          aik-0)))
-    ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))
-      (send (cat "establish transport" tne-3))
-      (recv
-        (cat "execute transport"
-          (cat "extend" (enc "execute transport" esk-3)) tno-3 "false"
-          (hash esk-3
-            (hash "execute transport"
-              (hash "extend" (enc "execute transport" esk-3))) tne-3
-            tno-3 "false")))
-      (tran (hash "extend" (enc n esk-2))
-        (hash "execute transport" (hash "extend" (enc n esk-2))))))
-  (label 54)
-  (parent 52)
-  (unrealized (9 2) (12 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "extend" (enc n esk-2))) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 1) (10 0)) ((12 2) (11 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash "extend" (enc n esk-2)) (11 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))
-    ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-2)))
-      (send (enc "quote" (hash "extend" (enc n esk-2)) nonce aik-0))))
-  (label 55)
-  (parent 53)
-  (unrealized (9 2) (12 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))
-  (deflistener (cat "extend" (enc n esk-2)))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (12 0)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 1) (10 0)) ((12 1) (11 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test
-    (added-listener (cat "extend" (enc n esk-2)))
-    (hash "extend" (enc n esk-2)) (11 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))
-    ((recv (cat "extend" (enc n esk-2)))
-      (send (cat "extend" (enc n esk-2)))))
-  (label 56)
-  (parent 53)
-  (unrealized (12 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 tne-4
-      tno-4 data) (esk1 esk esk-0 esk-1 esk-2 esk-3 esk-4 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 tpmkey-4
-      akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-2))))
-    (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "execute transport")
-    (state (hash "extend" (enc n esk-2))) (tne tne-3) (tno tno-3)
-    (esk esk-3) (tpmkey tpmkey-3))
-  (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-2))
-    (tne tne-4) (tno tno-4) (esk esk-4) (tpmkey tpmkey-4))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (13 3)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 2) (10 0)) ((12 3) (11 1)) ((13 3) (12 3)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))
-    ((12 3) (11 1)) ((13 3) (12 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 tne-4 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "extend" (enc n esk-2)) (12 3))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-2))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-2))) nonce
-          aik-0)))
-    ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))
-      (send (cat "establish transport" tne-3))
-      (recv
-        (cat "execute transport"
-          (cat "extend" (enc "execute transport" esk-3)) tno-3 "false"
-          (hash esk-3
-            (hash "execute transport"
-              (hash "extend" (enc "execute transport" esk-3))) tne-3
-            tno-3 "false")))
-      (tran (hash "extend" (enc n esk-2))
-        (hash "execute transport" (hash "extend" (enc n esk-2)))))
-    ((recv (cat "establish transport" tpmkey-4 (enc esk-4 tpmkey-4)))
-      (send (cat "establish transport" tne-4))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "extend" esk-4))
-          tno-4 "false"
-          (hash esk-4
-            (hash "execute transport"
-              (hash "extend" (enc "extend" esk-4))) tne-4 tno-4
-            "false")))
-      (tran (enc n esk-2) (hash "extend" (enc n esk-2)))))
-  (label 57)
-  (parent 54)
-  (unrealized (9 2) (13 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)
-    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "extend" (enc n esk-2))) (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-2))
-    (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (13 3)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 1) (10 0)) ((12 2) (11 0)) ((13 3) (12 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))
-    ((13 3) (12 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "extend" (enc n esk-2)) (12 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))
-    ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-2)))
-      (send (enc "quote" (hash "extend" (enc n esk-2)) nonce aik-0)))
-    ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))
-      (send (cat "establish transport" tne-3))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "extend" esk-3))
-          tno-3 "false"
-          (hash esk-3
-            (hash "execute transport"
-              (hash "extend" (enc "extend" esk-3))) tne-3 tno-3
-            "false")))
-      (tran (enc n esk-2) (hash "extend" (enc n esk-2)))))
-  (label 58)
-  (parent 55)
-  (unrealized (9 2) (13 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 2) (6 2)) ((2 2) (12 0))
-    ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))
-    ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))
-    ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))
-    ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (contracted (esk-2 esk)) n (12 0) (enc n esk))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-2
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-2
-            tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-2 tno-2 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-2 tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk)))))
-  (label 59)
-  (parent 56)
-  (unrealized (9 0) (10 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))
-  (deflistener (cat "extend" (enc n esk-2)))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr n) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (13 1)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 1) (10 0)) ((12 1) (11 0)) ((13 2) (12 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) n (12 0) (enc n esk))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))
-    ((recv (cat "extend" (enc n esk-2)))
-      (send (cat "extend" (enc n esk-2))))
-    ((recv (cat "quote" nonce)) (obsv n)
-      (send (enc "quote" n nonce aik-0))))
-  (label 60)
-  (parent 56)
-  (unrealized (13 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))
-  (deflistener (cat "extend" (enc n esk-2)))
-  (deflistener esk)
-  (precedes ((2 0) (6 0)) ((2 0) (13 0)) ((2 2) (6 2)) ((2 2) (12 0))
-    ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))
-    ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))
-    ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))
-    ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (added-listener esk) n (12 0) (enc n esk))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))
-    ((recv (cat "extend" (enc n esk-2)))
-      (send (cat "extend" (enc n esk-2)))) ((recv esk) (send esk)))
-  (label 61)
-  (parent 56)
-  (unrealized (13 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 0) (13 1)) ((2 2) (6 2))
-    ((2 2) (12 0)) ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1))
-    ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0))
-    ((9 3) (8 3)) ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0))
-    ((13 2) (10 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (10 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-2
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-2
-            tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-2 tno-2 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-2 tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "quote" nonce)) (obsv esk)
-      (send (enc "quote" esk nonce aik-0))))
-  (label 62)
-  (parent 59)
-  (unrealized (9 0) (13 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 0) (13 0)) ((2 2) (6 2))
-    ((2 2) (12 0)) ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1))
-    ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0))
-    ((9 3) (8 3)) ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0))
-    ((13 3) (10 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (10 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-2
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-2
-            tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-2 tno-2 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-2 tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))
-  (label 63)
-  (parent 59)
-  (unrealized (9 0) (13 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))
-  (deflistener (cat "extend" (enc n esk-2)))
-  (deflistener esk)
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 0) (14 1)) ((2 2) (6 2)) ((2 2) (12 0))
-    ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))
-    ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))
-    ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))
-    ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0))
-    ((14 2) (13 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (13 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))
-    ((recv (cat "extend" (enc n esk-2)))
-      (send (cat "extend" (enc n esk-2)))) ((recv esk) (send esk))
-    ((recv (cat "quote" nonce)) (obsv esk)
-      (send (enc "quote" esk nonce aik-0))))
-  (label 64)
-  (parent 61)
-  (unrealized (14 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))
-  (deflistener (cat "extend" (enc n esk-2)))
-  (deflistener esk)
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 0) (14 0)) ((2 2) (6 2)) ((2 2) (12 0))
-    ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))
-    ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))
-    ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))
-    ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0))
-    ((14 3) (13 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (13 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))
-    ((recv (cat "extend" (enc n esk-2)))
-      (send (cat "extend" (enc n esk-2)))) ((recv esk) (send esk))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))
-  (label 65)
-  (parent 61)
-  (unrealized (14 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state pcr nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 aik-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 0) (13 0)) ((2 2) (6 2))
-    ((2 2) (12 0)) ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1))
-    ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0))
-    ((9 3) (8 3)) ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0))
-    ((13 3) (10 0)) ((14 2) (13 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" tpmkey pcr aik-0) (13 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-2
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-2
-            tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-2 tno-2 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-2 tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))
-      (send
-        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))
-  (label 66)
-  (parent 63)
-  (unrealized (9 0) (14 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 aik-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))
-  (deflistener (cat "extend" (enc n esk-2)))
-  (deflistener esk)
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((2 0) (6 0)) ((2 0) (14 0)) ((2 2) (6 2)) ((2 2) (12 0))
-    ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))
-    ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))
-    ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))
-    ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0))
-    ((14 3) (13 0)) ((15 2) (14 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" tpmkey pcr aik-0) (14 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))
-    ((recv (cat "extend" (enc n esk-2)))
-      (send (cat "extend" (enc n esk-2)))) ((recv esk) (send esk))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))
-      (send
-        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))
-  (label 67)
-  (parent 65)
-  (unrealized (15 1))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol envelope basic
-  (defrole tpm-power-on (vars) (trace (init "0")))
-  (defrole tpm-quote
-    (vars (nonce pcr mesg) (aik akey))
-    (trace (recv (cat "quote" nonce)) (obsv pcr)
-      (send (enc "quote" pcr nonce aik)))
-    (non-orig aik))
-  (defrole tpm-extend-enc
-    (vars (value state mesg) (esk skey) (tne tno data) (tpmkey akey))
-    (trace (recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc value esk)) tno
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc value esk)))
-            tne tno "false"))) (tran state (hash value state)))
-    (uniq-orig tne))
-  (defrole tpm-create-key
-    (vars (k aik akey) (pcr mesg) (esk skey))
-    (trace (recv (enc "create key" pcr esk))
-      (send (enc "created" k pcr aik)))
-    (non-orig (invk k) aik esk)
-    (uniq-orig k))
-  (defrole tpm-decrypt
-    (vars (m pcr mesg) (k aik akey))
-    (trace (recv (cat "decrypt" (enc m k)))
-      (recv (enc "created" k pcr aik)) (obsv pcr) (send m))
-    (non-orig aik))
-  (defrole alice
-    (vars (v n tne tno data) (esk1 esk skey) (k aik tpmkey akey)
-      (pcr mesg))
-    (trace (send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    (non-orig aik esk1 (invk tpmkey))
-    (uniq-orig v n tno esk)
-    (neq (tno n))))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (neq (tno n))
-  (non-orig esk1 aik (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k))))
-  (label 68)
-  (unrealized (0 0) (1 5))
-  (preskeleton)
-  (origs (esk (1 0)) (n (1 2)) (tno (1 2)) (v (1 6)))
-  (comment "Not a skeleton"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (precedes ((1 6) (0 0)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k))))
-  (label 69)
-  (parent 68)
-  (unrealized (1 5))
-  (origs (esk (1 0)) (n (1 2)) (tno (1 2)) (v (1 6)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" k (hash "obtain" (hash n pcr)) aik))
-    (aik aik-0))
-  (precedes ((1 6) (0 0)) ((2 2) (1 5)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" k (hash "obtain" (hash n pcr)) aik) (1 5))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (cat "quote" nonce))
-      (obsv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send
-        (enc "quote" (enc "created" k (hash "obtain" (hash n pcr)) aik)
-          nonce aik-0))))
-  (label 70)
-  (parent 69)
-  (unrealized (2 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk esk-0 skey)
-    (k aik tpmkey akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk-0) (k k) (aik aik))
-  (precedes ((1 6) (0 0)) ((2 1) (1 5)))
-  (neq (tno n))
-  (non-orig esk1 esk-0 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-create-key 2)
-    (enc "created" k (hash "obtain" (hash n pcr)) aik) (1 5))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))
-  (label 71)
-  (parent 69)
-  (unrealized (0 0) (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk esk-0 skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk-0) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-    (aik aik-0))
-  (precedes ((1 6) (0 0)) ((2 1) (1 5)) ((3 2) (2 0)))
-  (neq (tno n))
-  (non-orig esk1 esk-0 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (2 0))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "quote" nonce))
-      (obsv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-      (send
-        (enc "quote"
-          (enc "create key" (hash "obtain" (hash n pcr)) esk-0) nonce
-          aik-0))))
-  (label 72)
-  (parent 71)
-  (unrealized (0 0) (3 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (precedes ((1 4) (2 0)) ((1 6) (0 0)) ((2 1) (1 5)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (displaced 3 1 alice 5)
-    (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (2 0))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))
-  (label 73)
-  (parent 71)
-  (unrealized (0 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr v) (aik aik-0))
-  (precedes ((1 4) (2 0)) ((1 6) (3 1)) ((2 1) (1 5)) ((3 2) (0 0)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation nonce-test (added-strand tpm-quote 3) v (0 0) (enc v k))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "quote" nonce)) (obsv v)
-      (send (enc "quote" v nonce aik-0))))
-  (label 74)
-  (parent 73)
-  (unrealized (3 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr pcr-0 mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))
-  (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k pcr-0 aik-0)) (obsv pcr-0) (send v)))
-  (label 75)
-  (parent 73)
-  (unrealized (3 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr pcr-0 nonce mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 aik-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" k pcr-0 aik-0)) (aik aik-1))
-  (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((2 1) (4 1))
-    ((3 3) (0 0)) ((4 2) (3 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" k pcr-0 aik-0) (3 1))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k pcr-0 aik-0)) (obsv pcr-0) (send v))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" k pcr-0 aik-0))
-      (send (enc "quote" (enc "created" k pcr-0 aik-0) nonce aik-1))))
-  (label 76)
-  (parent 75)
-  (unrealized (4 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n pcr)))
-    (k k) (aik aik))
-  (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (displaced 4 2 tpm-create-key 2)
-    (enc "created" k pcr-0 aik-0) (3 1))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (obsv (hash "obtain" (hash n pcr))) (send v)))
-  (label 77)
-  (parent 75)
-  (unrealized (3 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno tne-0 tno-0 data) (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n pcr)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n pcr))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0))
-    ((4 3) (3 2)))
-  (leadsto ((4 3) (3 2)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "obtain" (hash n pcr)) (3 2))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (obsv (hash "obtain" (hash n pcr))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n pcr) (hash "obtain" (hash n pcr)))))
-  (label 78)
-  (parent 77)
-  (unrealized (4 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 3) (4 3)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash n state) (4 3))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state))))
-  (label 79)
-  (parent 78)
-  (unrealized (5 2))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr
-      (hash esk-1
-        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-        tno-1 "false")) (aik aik-0))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 3) (4 3)) ((6 2) (5 2)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false") (5 2))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce))
-      (obsv
-        (hash esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false"))
-      (send
-        (enc "quote"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false") nonce aik-0))))
-  (label 80)
-  (parent 79)
-  (unrealized (5 2) (6 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (precedes ((1 0) (5 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))
-    ((5 3) (4 3)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation encryption-test (displaced 6 1 alice 3)
-    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false") (5 2))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state))))
-  (label 81)
-  (parent 79)
-  (unrealized (5 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener
-      (cat esk-1
-        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-        tno-1 "false"))
-    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false") (5 2))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false"))))
-  (label 82)
-  (parent 79)
-  (unrealized (5 2) (6 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr
-      (hash esk-1
-        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-        tno-1 "false")) (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value esk-1)
-    (state
-      (cat (hash "execute transport" (hash "extend" (enc n esk-1)))
-        tne-1 tno-1 "false")) (tne tne-2) (tno tno-2) (esk esk-2)
-    (tpmkey tpmkey-2))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (7 3)) ((5 3) (4 3))
-    ((6 2) (5 2)) ((7 3) (6 1)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((7 3) (6 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false") (6 1))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce))
-      (obsv
-        (hash esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false"))
-      (send
-        (enc "quote"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false") nonce aik-0)))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc esk-1 esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc esk-1 esk-2)))
-            tne-2 tno-2 "false")))
-      (tran
-        (cat (hash "execute transport" (hash "extend" (enc n esk-1)))
-          tne-1 tno-1 "false")
-        (hash esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false"))))
-  (label 83)
-  (parent 80)
-  (unrealized (5 2) (7 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (precedes ((1 0) (5 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))
-    ((5 3) (4 3)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (contracted (tpmkey-1 tpmkey)) esk (5 0)
-    (enc esk tpmkey))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state))))
-  (label 84)
-  (parent 81)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k)
-        (aik aik) (tpmkey tpmkey) (pcr state))))
-  (origs (n (1 2)) (tno (1 2)) (esk (1 0)) (tne (5 1)) (tne-0 (4 1))
-    (k (2 1)) (v (1 6))))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((1 0) (6 1)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))
-    ((5 3) (4 3)) ((6 2) (5 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (5 0)
-    (enc esk tpmkey))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce)) (obsv esk)
-      (send (enc "quote" esk nonce aik-0))))
-  (label 85)
-  (parent 81)
-  (unrealized (6 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((1 0) (6 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))
-    ((5 3) (4 3)) ((6 3) (5 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (5 0)
-    (enc esk tpmkey))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))
-  (label 86)
-  (parent 81)
-  (unrealized (6 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))
-    (aik aik-0))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 2) (6 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash "execute transport" (hash "extend" (enc n esk-1))) (6 0))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce
-          aik-0))))
-  (label 87)
-  (parent 82)
-  (unrealized (5 2) (7 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 1) (6 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener
-      (cat "execute transport" (hash "extend" (enc n esk-1))))
-    (hash "execute transport" (hash "extend" (enc n esk-1))) (6 0))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1))))))
-  (label 88)
-  (parent 82)
-  (unrealized (5 2) (7 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state pcr nonce mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((1 0) (6 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))
-    ((5 3) (4 3)) ((6 3) (5 0)) ((7 2) (6 1)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" tpmkey pcr aik-0) (6 1))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))
-      (send
-        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))
-  (label 89)
-  (parent 86)
-  (unrealized (7 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))
-    (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "execute transport")
-    (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)
-    (esk esk-2) (tpmkey tpmkey-2))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 2) (6 0)) ((8 3) (7 1)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((8 3) (7 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "execute transport" (hash "extend" (enc n esk-1))) (7 1))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce
-          aik-0)))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport"
-          (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"
-          (hash esk-2
-            (hash "execute transport"
-              (hash "extend" (enc "execute transport" esk-2))) tne-2
-            tno-2 "false")))
-      (tran (hash "extend" (enc n esk-1))
-        (hash "execute transport" (hash "extend" (enc n esk-1))))))
-  (label 90)
-  (parent 87)
-  (unrealized (5 2) (8 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "extend" (enc n esk-1))) (aik aik-0))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 1) (6 0)) ((8 2) (7 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash "extend" (enc n esk-1)) (7 0))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))
-      (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0))))
-  (label 91)
-  (parent 88)
-  (unrealized (5 2) (8 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (precedes ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener (cat "extend" (enc n esk-1)))
-    (hash "extend" (enc n esk-1)) (7 0))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))))
-  (label 92)
-  (parent 88)
-  (unrealized (8 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)
-    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 tpmkey-3 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))
-    (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "execute transport")
-    (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)
-    (esk esk-2) (tpmkey tpmkey-2))
-  (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))
-    (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))
-  (precedes ((1 2) (9 3)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 2) (6 0)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 tne-3 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "extend" (enc n esk-1)) (8 3))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce
-          aik-0)))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport"
-          (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"
-          (hash esk-2
-            (hash "execute transport"
-              (hash "extend" (enc "execute transport" esk-2))) tne-2
-            tno-2 "false")))
-      (tran (hash "extend" (enc n esk-1))
-        (hash "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))
-      (send (cat "establish transport" tne-3))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "extend" esk-3))
-          tno-3 "false"
-          (hash esk-3
-            (hash "execute transport"
-              (hash "extend" (enc "extend" esk-3))) tne-3 tno-3
-            "false")))
-      (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))
-  (label 93)
-  (parent 90)
-  (unrealized (5 2) (9 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "extend" (enc n esk-1))) (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))
-    (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (precedes ((1 2) (9 3)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 1) (6 0)) ((8 2) (7 0)) ((9 3) (8 1)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((9 3) (8 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "extend" (enc n esk-1)) (8 1))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))
-      (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0)))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "extend" esk-2))
-          tno-2 "false"
-          (hash esk-2
-            (hash "execute transport"
-              (hash "extend" (enc "extend" esk-2))) tne-2 tno-2
-            "false")))
-      (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))
-  (label 94)
-  (parent 91)
-  (unrealized (5 2) (9 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (precedes ((1 0) (5 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))
-    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (contracted (esk-1 esk)) n (8 0) (enc n esk))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-1
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-1
-            tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-1 tno-1 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-1 tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk)))))
-  (label 95)
-  (parent 92)
-  (unrealized (5 0) (6 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr n) (aik aik-0))
-  (precedes ((1 2) (9 1)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)) ((9 2) (8 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) n (8 0) (enc n esk))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1))))
-    ((recv (cat "quote" nonce)) (obsv n)
-      (send (enc "quote" n nonce aik-0))))
-  (label 96)
-  (parent 92)
-  (unrealized (9 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (deflistener esk)
-  (precedes ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))
-    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-listener esk) n (8 0) (enc n esk))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk)))
-  (label 97)
-  (parent 92)
-  (unrealized (9 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((1 0) (5 0)) ((1 0) (9 1)) ((1 2) (8 0)) ((1 4) (2 0))
-    ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2))
-    ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))
-    ((8 1) (7 0)) ((9 2) (6 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (6 0)
-    (enc esk tpmkey))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-1
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-1
-            tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-1 tno-1 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-1 tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "quote" nonce)) (obsv esk)
-      (send (enc "quote" esk nonce aik-0))))
-  (label 98)
-  (parent 95)
-  (unrealized (5 0) (9 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((1 0) (5 0)) ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0))
-    ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2))
-    ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))
-    ((8 1) (7 0)) ((9 3) (6 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (6 0)
-    (enc esk tpmkey))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-1
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-1
-            tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-1 tno-1 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-1 tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))
-  (label 99)
-  (parent 95)
-  (unrealized (5 0) (9 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((1 0) (10 1)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))
-    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 2) (9 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (9 0)
-    (enc esk tpmkey))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))
-    ((recv (cat "quote" nonce)) (obsv esk)
-      (send (enc "quote" esk nonce aik-0))))
-  (label 100)
-  (parent 97)
-  (unrealized (10 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((1 0) (10 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))
-    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 3) (9 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (9 0)
-    (enc esk tpmkey))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))
-  (label 101)
-  (parent 97)
-  (unrealized (10 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state pcr nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 data) (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((1 0) (5 0)) ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0))
-    ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2))
-    ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))
-    ((8 1) (7 0)) ((9 3) (6 0)) ((10 2) (9 1)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" tpmkey pcr aik-0) (9 1))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-1
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-1
-            tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-1 tno-1 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-1 tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))
-      (send
-        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))
-  (label 102)
-  (parent 99)
-  (unrealized (5 0) (10 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((1 0) (10 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))
-    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 3) (9 0)) ((11 2) (10 1)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" tpmkey pcr aik-0) (10 1))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))
-      (send
-        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))
-  (label 103)
-  (parent 101)
-  (unrealized (11 1))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol envelope basic
-  (defrole tpm-power-on (vars) (trace (init "0")))
-  (defrole tpm-quote
-    (vars (nonce pcr mesg) (aik akey))
-    (trace (recv (cat "quote" nonce)) (obsv pcr)
-      (send (enc "quote" pcr nonce aik)))
-    (non-orig aik))
-  (defrole tpm-extend-enc
-    (vars (value state mesg) (esk skey) (tne tno data) (tpmkey akey))
-    (trace (recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc value esk)) tno
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc value esk)))
-            tne tno "false"))) (tran state (hash value state)))
-    (uniq-orig tne))
-  (defrole tpm-create-key
-    (vars (k aik akey) (pcr mesg) (esk skey))
-    (trace (recv (enc "create key" pcr esk))
-      (send (enc "created" k pcr aik)))
-    (non-orig (invk k) aik esk)
-    (uniq-orig k))
-  (defrole tpm-decrypt
-    (vars (m pcr mesg) (k aik akey))
-    (trace (recv (cat "decrypt" (enc m k)))
-      (recv (enc "created" k pcr aik)) (obsv pcr) (send m))
-    (non-orig aik))
-  (defrole alice
-    (vars (v n tne tno data) (esk1 esk skey) (k aik tpmkey akey)
-      (pcr mesg))
-    (trace (send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    (non-orig aik esk1 (invk tpmkey))
-    (uniq-orig v n tno esk)
-    (neq (tno n))))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (neq (tno n))
-  (non-orig esk1 aik (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k))))
-  (label 104)
-  (unrealized (0 0) (1 5))
-  (preskeleton)
-  (origs (esk (1 0)) (n (1 2)) (tno (1 2)) (v (1 6)))
-  (comment "Not a skeleton"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (precedes ((1 6) (0 0)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k))))
-  (label 105)
-  (parent 104)
-  (unrealized (0 0) (1 5))
-  (origs (esk (1 0)) (n (1 2)) (tno (1 2)) (v (1 6)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" k (hash "obtain" (hash n pcr)) aik))
-    (aik aik-0))
-  (precedes ((1 6) (0 0)) ((2 2) (1 5)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" k (hash "obtain" (hash n pcr)) aik) (1 5))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (cat "quote" nonce))
-      (obsv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send
-        (enc "quote" (enc "created" k (hash "obtain" (hash n pcr)) aik)
-          nonce aik-0))))
-  (label 106)
-  (parent 105)
-  (unrealized (0 0) (2 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk esk-0 skey)
-    (k aik tpmkey akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk-0) (k k) (aik aik))
-  (precedes ((1 6) (0 0)) ((2 1) (1 5)))
-  (neq (tno n))
-  (non-orig esk1 esk-0 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-create-key 2)
-    (enc "created" k (hash "obtain" (hash n pcr)) aik) (1 5))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))
-  (label 107)
-  (parent 105)
-  (unrealized (0 0) (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk esk-0 skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk-0) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-    (aik aik-0))
-  (precedes ((1 6) (0 0)) ((2 1) (1 5)) ((3 2) (2 0)))
-  (neq (tno n))
-  (non-orig esk1 esk-0 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (2 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "quote" nonce))
-      (obsv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-      (send
-        (enc "quote"
-          (enc "create key" (hash "obtain" (hash n pcr)) esk-0) nonce
-          aik-0))))
-  (label 108)
-  (parent 107)
-  (unrealized (0 0) (3 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (precedes ((1 4) (2 0)) ((1 6) (0 0)) ((2 1) (1 5)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (displaced 3 1 alice 5)
-    (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (2 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))
-  (label 109)
-  (parent 107)
-  (unrealized (0 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n pcr))) (aik aik))
-  (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 2) (0 0)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik) (0 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "quote" (enc v k))) (obsv (hash "refuse" (hash n pcr)))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))))
-  (label 110)
-  (parent 109)
-  (unrealized (3 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-    (aik aik-0))
-  (precedes ((1 4) (2 0)) ((1 6) (3 1)) ((2 1) (1 5)) ((3 2) (0 0)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik) (0 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "quote" nonce))
-      (obsv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send
-        (enc "quote"
-          (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik) nonce
-          aik-0))))
-  (label 111)
-  (parent 109)
-  (unrealized (3 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno tne-0 tno-0 data) (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n pcr))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n pcr))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 2) (0 0))
-    ((4 3) (3 1)))
-  (leadsto ((4 3) (3 1)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "refuse" (hash n pcr)) (3 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "quote" (enc v k))) (obsv (hash "refuse" (hash n pcr)))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n pcr) (hash "refuse" (hash n pcr)))))
-  (label 112)
-  (parent 110)
-  (unrealized (4 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 2) (0 0)) ((4 3) (3 1)) ((5 3) (4 3)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash n state) (4 3))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state))))
-  (label 113)
-  (parent 112)
-  (unrealized (5 2))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr
-      (hash esk-1
-        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-        tno-1 "false")) (aik aik-0))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 2) (0 0)) ((4 3) (3 1)) ((5 3) (4 3)) ((6 2) (5 2)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false") (5 2))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce))
-      (obsv
-        (hash esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false"))
-      (send
-        (enc "quote"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false") nonce aik-0))))
-  (label 114)
-  (parent 113)
-  (unrealized (5 2) (6 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (precedes ((1 0) (5 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (1 1))
-    ((5 3) (4 3)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation encryption-test (displaced 6 1 alice 3)
-    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false") (5 2))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state))))
-  (label 115)
-  (parent 113)
-  (unrealized (5 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener
-      (cat esk-1
-        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-        tno-1 "false"))
-    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false") (5 2))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false"))))
-  (label 116)
-  (parent 113)
-  (unrealized (5 2) (6 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr
-      (hash esk-1
-        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-        tno-1 "false")) (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value esk-1)
-    (state
-      (cat (hash "execute transport" (hash "extend" (enc n esk-1)))
-        tne-1 tno-1 "false")) (tne tne-2) (tno tno-2) (esk esk-2)
-    (tpmkey tpmkey-2))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (7 3)) ((5 3) (4 3))
-    ((6 2) (5 2)) ((7 3) (6 1)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)) ((7 3) (6 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false") (6 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce))
-      (obsv
-        (hash esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false"))
-      (send
-        (enc "quote"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false") nonce aik-0)))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc esk-1 esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc esk-1 esk-2)))
-            tne-2 tno-2 "false")))
-      (tran
-        (cat (hash "execute transport" (hash "extend" (enc n esk-1)))
-          tne-1 tno-1 "false")
-        (hash esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false"))))
-  (label 117)
-  (parent 114)
-  (unrealized (5 2) (7 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (precedes ((1 0) (5 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (1 1))
-    ((5 3) (4 3)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (contracted (tpmkey-1 tpmkey)) esk (5 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state))))
-  (label 118)
-  (parent 115)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((v v) (n n) (k k) (aik aik) (pcr state) (tne tne) (tno tno)
-        (esk1 esk1) (esk esk) (tpmkey tpmkey))))
-  (origs (n (1 2)) (tno (1 2)) (esk (1 0)) (tne (5 1)) (tne-0 (4 1))
-    (k (2 1)) (v (1 6))))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((1 0) (6 1)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (1 1))
-    ((5 3) (4 3)) ((6 2) (5 0)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (5 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce)) (obsv esk)
-      (send (enc "quote" esk nonce aik-0))))
-  (label 119)
-  (parent 115)
-  (unrealized (6 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((1 0) (6 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (1 1))
-    ((5 3) (4 3)) ((6 3) (5 0)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (5 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))
-  (label 120)
-  (parent 115)
-  (unrealized (6 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))
-    (aik aik-0))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 2) (6 0)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash "execute transport" (hash "extend" (enc n esk-1))) (6 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce
-          aik-0))))
-  (label 121)
-  (parent 116)
-  (unrealized (5 2) (7 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 1) (6 0)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener
-      (cat "execute transport" (hash "extend" (enc n esk-1))))
-    (hash "execute transport" (hash "extend" (enc n esk-1))) (6 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1))))))
-  (label 122)
-  (parent 116)
-  (unrealized (5 2) (7 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state pcr nonce mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((1 0) (6 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (1 1))
-    ((5 3) (4 3)) ((6 3) (5 0)) ((7 2) (6 1)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" tpmkey pcr aik-0) (6 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))
-      (send
-        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))
-  (label 123)
-  (parent 120)
-  (unrealized (7 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))
-    (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "execute transport")
-    (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)
-    (esk esk-2) (tpmkey tpmkey-2))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 2) (6 0)) ((8 3) (7 1)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)) ((8 3) (7 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "execute transport" (hash "extend" (enc n esk-1))) (7 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce
-          aik-0)))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport"
-          (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"
-          (hash esk-2
-            (hash "execute transport"
-              (hash "extend" (enc "execute transport" esk-2))) tne-2
-            tno-2 "false")))
-      (tran (hash "extend" (enc n esk-1))
-        (hash "execute transport" (hash "extend" (enc n esk-1))))))
-  (label 124)
-  (parent 121)
-  (unrealized (5 2) (8 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "extend" (enc n esk-1))) (aik aik-0))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 1) (6 0)) ((8 2) (7 0)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash "extend" (enc n esk-1)) (7 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))
-      (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0))))
-  (label 125)
-  (parent 122)
-  (unrealized (5 2) (8 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (precedes ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener (cat "extend" (enc n esk-1)))
-    (hash "extend" (enc n esk-1)) (7 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))))
-  (label 126)
-  (parent 122)
-  (unrealized (8 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)
-    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 tpmkey-3 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))
-    (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "execute transport")
-    (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)
-    (esk esk-2) (tpmkey tpmkey-2))
-  (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))
-    (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))
-  (precedes ((1 2) (9 3)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 2) (6 0)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 tne-3 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "extend" (enc n esk-1)) (8 3))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce
-          aik-0)))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport"
-          (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"
-          (hash esk-2
-            (hash "execute transport"
-              (hash "extend" (enc "execute transport" esk-2))) tne-2
-            tno-2 "false")))
-      (tran (hash "extend" (enc n esk-1))
-        (hash "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))
-      (send (cat "establish transport" tne-3))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "extend" esk-3))
-          tno-3 "false"
-          (hash esk-3
-            (hash "execute transport"
-              (hash "extend" (enc "extend" esk-3))) tne-3 tno-3
-            "false")))
-      (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))
-  (label 127)
-  (parent 124)
-  (unrealized (5 2) (9 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "extend" (enc n esk-1))) (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))
-    (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (precedes ((1 2) (9 3)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 1) (6 0)) ((8 2) (7 0)) ((9 3) (8 1)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)) ((9 3) (8 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "extend" (enc n esk-1)) (8 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))
-      (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0)))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "extend" esk-2))
-          tno-2 "false"
-          (hash esk-2
-            (hash "execute transport"
-              (hash "extend" (enc "extend" esk-2))) tne-2 tno-2
-            "false")))
-      (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))
-  (label 128)
-  (parent 125)
-  (unrealized (5 2) (9 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (precedes ((1 0) (5 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0))
-    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (contracted (esk-1 esk)) n (8 0) (enc n esk))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-1
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-1
-            tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-1 tno-1 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-1 tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk)))))
-  (label 129)
-  (parent 126)
-  (unrealized (5 0) (6 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr n) (aik aik-0))
-  (precedes ((1 2) (9 1)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)) ((9 2) (8 0)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) n (8 0) (enc n esk))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1))))
-    ((recv (cat "quote" nonce)) (obsv n)
-      (send (enc "quote" n nonce aik-0))))
-  (label 130)
-  (parent 126)
-  (unrealized (9 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (deflistener esk)
-  (precedes ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0))
-    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-listener esk) n (8 0) (enc n esk))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk)))
-  (label 131)
-  (parent 126)
-  (unrealized (9 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((1 0) (5 0)) ((1 0) (9 1)) ((1 2) (8 0)) ((1 4) (2 0))
-    ((1 6) (3 0)) ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1))
-    ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))
-    ((8 1) (7 0)) ((9 2) (6 0)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (6 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-1
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-1
-            tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-1 tno-1 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-1 tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "quote" nonce)) (obsv esk)
-      (send (enc "quote" esk nonce aik-0))))
-  (label 132)
-  (parent 129)
-  (unrealized (5 0) (9 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((1 0) (5 0)) ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0))
-    ((1 6) (3 0)) ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1))
-    ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))
-    ((8 1) (7 0)) ((9 3) (6 0)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (6 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-1
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-1
-            tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-1 tno-1 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-1 tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))
-  (label 133)
-  (parent 129)
-  (unrealized (5 0) (9 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((1 0) (10 1)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0))
-    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 2) (9 0)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (9 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))
-    ((recv (cat "quote" nonce)) (obsv esk)
-      (send (enc "quote" esk nonce aik-0))))
-  (label 134)
-  (parent 131)
-  (unrealized (10 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((1 0) (10 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0))
-    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 3) (9 0)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (9 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))
-  (label 135)
-  (parent 131)
-  (unrealized (10 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state pcr nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 data) (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((1 0) (5 0)) ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0))
-    ((1 6) (3 0)) ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1))
-    ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))
-    ((8 1) (7 0)) ((9 3) (6 0)) ((10 2) (9 1)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" tpmkey pcr aik-0) (9 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-1
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-1
-            tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-1 tno-1 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-1 tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))
-      (send
-        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))
-  (label 136)
-  (parent 133)
-  (unrealized (5 0) (10 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((1 0) (10 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 2) (0 0)) ((4 3) (3 1)) ((5 1) (6 0))
-    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 3) (9 0)) ((11 2) (10 1)))
-  (leadsto ((4 3) (3 1)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" tpmkey pcr aik-0) (10 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))
-      (send
-        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))
-  (label 137)
-  (parent 135)
-  (unrealized (11 1))
+(herald "Envelope Protocol" (bound 15))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/envelope.scm")
+(comment "Strand count bounded at 15")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (pcrkey skey))
+    (trace (recv "power on") (send (enc "0" (hash pcrkey))))
+    (non-orig pcrkey))
+  (defrole tpm-extend
+    (vars (value current-value mesg) (pcrkey skey))
+    (trace (recv (cat "extend" value))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc (hash current-value value) (hash pcrkey)))
+      (send "ext ok"))
+    (non-orig pcrkey))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcrkey esk skey))
+    (trace (recv (enc "extend" value esk))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc (hash current-value value) (hash pcrkey)))
+      (send "ext ok"))
+    (non-orig pcrkey esk))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcrkey skey) (aik akey))
+    (trace (recv (cat "quote" nonce))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc "quote" current-value nonce aik)))
+    (non-orig pcrkey aik))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcrval mesg) (esk skey))
+    (trace (recv (enc "create key" pcrval esk))
+      (send (enc "created" k pcrval aik)))
+    (non-orig esk aik (invk k))
+    (uniq-orig k))
+  (defrole tpm-decrypt
+    (vars (m pcrvals mesg) (k aik akey) (pcrkey skey))
+    (trace (recv (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcrvals aik))
+      (recv (enc pcrvals (hash pcrkey))) (send m))
+    (non-orig pcrkey aik))
+  (defrole alice
+    (vars (n v data) (esk skey) (k aik akey))
+    (trace (send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig esk aik)
+    (uniq-orig n v))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (non-orig esk aik)
+  (uniq-orig v n)
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 0)
+  (unrealized (0 0) (1 2))
+  (preskeleton)
+  (origs (v (1 3)) (n (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (precedes ((1 3) (0 0)))
+  (non-orig esk aik)
+  (uniq-orig v n)
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 2))
+  (origs (v (1 3)) (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk esk-0 skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk-0) (k k) (aik aik))
+  (precedes ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k (hash (hash "0" n) "obtain") aik) (1 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk-0))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (precedes ((1 1) (2 0)) ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (displaced 3 1 alice 2)
+    (enc "create key" (hash (hash "0" n) "obtain") esk-0) (2 0))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (pcrvals mesg) (v n data) (esk pcrkey skey) (k aik aik-0 akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals pcrvals) (pcrkey pcrkey) (k k)
+    (aik aik-0))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0)))
+  (non-orig esk pcrkey aik aik-0 (invk k))
+  (uniq-orig v n k)
+  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcrvals aik-0))
+      (recv (enc pcrvals (hash pcrkey))) (send v)))
+  (label 4)
+  (parent 3)
+  (unrealized (3 1) (3 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (displaced 4 2 tpm-create-key 2)
+    (enc "created" k pcrvals aik-0) (3 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v)))
+  (label 5)
+  (parent 4)
+  (unrealized (3 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 2) (3 2)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-strand tpm-extend 3)
+    (enc (hash (hash "0" n) "obtain") (hash pcrkey)) (3 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey)))))
+  (label 6)
+  (parent 5)
+  (unrealized (4 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey esk-0 skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcrkey pcrkey) (esk esk-0))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 2) (3 2)))
+  (non-orig esk pcrkey esk-0 aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash (hash "0" n) "obtain") (hash pcrkey)) (3 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (enc "extend" "obtain" esk-0))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey)))))
+  (label 7)
+  (parent 5)
+  (unrealized (4 0) (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (deflistener (hash pcrkey))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 1) (3 2)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc (hash (hash "0" n) "obtain") (hash pcrkey)) (3 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 8)
+  (parent 5)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend 3 (value n) (current-value "0") (pcrkey pcrkey))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-strand tpm-extend 3)
+    (enc (hash "0" n) (hash pcrkey)) (4 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (cat "extend" n)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 9)
+  (parent 6)
+  (unrealized (5 0) (5 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey esk-0 skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk-0))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)))
+  (non-orig esk pcrkey esk-0 aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash "0" n) (hash pcrkey)) (4 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk-0)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 10)
+  (parent 6)
+  (unrealized (5 0) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (deflistener (hash pcrkey))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 2) (3 2)) ((5 1) (4 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc (hash "0" n) (hash pcrkey)) (4 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 11)
+  (parent 6)
+  (unrealized (4 1) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (displaced 6 1 alice 1)
+    (enc "extend" n esk-0) (5 0))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 12)
+  (parent 10)
+  (unrealized (5 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)) ((6 1) (5 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-strand tpm-power-on 2)
+    (enc "0" (hash pcrkey)) (5 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey)))))
+  (label 13)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps ((0 1) ((v v) (n n) (esk esk) (k k) (aik aik))))
+  (origs (n (1 0)) (k (2 1)) (v (1 3))))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (deflistener (hash pcrkey))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)) ((6 1) (5 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc "0" (hash pcrkey)) (5 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 14)
+  (parent 12)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (pcrkey skey))
+    (trace (recv "power on") (send (enc "0" (hash pcrkey))))
+    (non-orig pcrkey))
+  (defrole tpm-extend
+    (vars (value current-value mesg) (pcrkey skey))
+    (trace (recv (cat "extend" value))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc (hash current-value value) (hash pcrkey)))
+      (send "ext ok"))
+    (non-orig pcrkey))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcrkey esk skey))
+    (trace (recv (enc "extend" value esk))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc (hash current-value value) (hash pcrkey)))
+      (send "ext ok"))
+    (non-orig pcrkey esk))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcrkey skey) (aik akey))
+    (trace (recv (cat "quote" nonce))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc "quote" current-value nonce aik)))
+    (non-orig pcrkey aik))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcrval mesg) (esk skey))
+    (trace (recv (enc "create key" pcrval esk))
+      (send (enc "created" k pcrval aik)))
+    (non-orig esk aik (invk k))
+    (uniq-orig k))
+  (defrole tpm-decrypt
+    (vars (m pcrvals mesg) (k aik akey) (pcrkey skey))
+    (trace (recv (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcrvals aik))
+      (recv (enc pcrvals (hash pcrkey))) (send m))
+    (non-orig pcrkey aik))
+  (defrole alice
+    (vars (n v data) (esk skey) (k aik akey))
+    (trace (send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig esk aik)
+    (uniq-orig n v))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 15)
+  (unrealized (0 0) (1 2))
+  (preskeleton)
+  (origs (v (1 3)) (n (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (precedes ((1 3) (0 0)))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 16)
+  (parent 15)
+  (unrealized (0 0) (1 2))
+  (origs (v (1 3)) (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk-0) (k k) (aik aik))
+  (precedes ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k (hash (hash "0" n) "obtain") aik) (1 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk-0))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 17)
+  (parent 16)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (precedes ((1 1) (2 0)) ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 3 1 alice 2)
+    (enc "create key" (hash (hash "0" n) "obtain") esk-0) (2 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 18)
+  (parent 17)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik) (0 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))))
+  (label 19)
+  (parent 18)
+  (unrealized (3 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 2) (3 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend 3)
+    (enc (hash (hash "0" n) "refuse") (hash pcrkey)) (3 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey)))))
+  (label 20)
+  (parent 19)
+  (unrealized (4 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcrkey pcrkey) (esk esk-0))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 2) (3 1)))
+  (non-orig esk pcrkey esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash (hash "0" n) "refuse") (hash pcrkey)) (3 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (enc "extend" "refuse" esk-0))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey)))))
+  (label 21)
+  (parent 19)
+  (unrealized (4 0) (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (deflistener (hash pcrkey))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 1) (3 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc (hash (hash "0" n) "refuse") (hash pcrkey)) (3 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 22)
+  (parent 19)
+  (unrealized (3 1) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend 3 (value n) (current-value "0") (pcrkey pcrkey))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend 3)
+    (enc (hash "0" n) (hash pcrkey)) (4 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey))))
+    ((recv (cat "extend" n)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 23)
+  (parent 20)
+  (unrealized (5 0) (5 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk-0))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig esk pcrkey esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash "0" n) (hash pcrkey)) (4 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey))))
+    ((recv (enc "extend" n esk-0)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 24)
+  (parent 20)
+  (unrealized (5 0) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (deflistener (hash pcrkey))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 2) (3 1)) ((5 1) (4 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc (hash "0" n) (hash pcrkey)) (4 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey))))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 25)
+  (parent 20)
+  (unrealized (4 1) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 6 1 alice 1)
+    (enc "extend" n esk-0) (5 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 26)
+  (parent 24)
+  (unrealized (5 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)) ((6 1) (5 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-power-on 2)
+    (enc "0" (hash pcrkey)) (5 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey)))))
+  (label 27)
+  (parent 26)
+  (realized)
+  (shape)
+  (maps ((0 1) ((n n) (v v) (k k) (aik aik) (esk esk))))
+  (origs (n (1 0)) (k (2 1)) (v (1 3))))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (deflistener (hash pcrkey))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)) ((6 1) (5 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc "0" (hash pcrkey)) (5 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 28)
+  (parent 26)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (pcrkey skey))
+    (trace (recv "power on") (send (enc "0" (hash pcrkey))))
+    (non-orig pcrkey))
+  (defrole tpm-extend
+    (vars (value current-value mesg) (pcrkey skey))
+    (trace (recv (cat "extend" value))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc (hash current-value value) (hash pcrkey)))
+      (send "ext ok"))
+    (non-orig pcrkey))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcrkey esk skey))
+    (trace (recv (enc "extend" value esk))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc (hash current-value value) (hash pcrkey)))
+      (send "ext ok"))
+    (non-orig pcrkey esk))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcrkey skey) (aik akey))
+    (trace (recv (cat "quote" nonce))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc "quote" current-value nonce aik)))
+    (non-orig pcrkey aik))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcrval mesg) (esk skey))
+    (trace (recv (enc "create key" pcrval esk))
+      (send (enc "created" k pcrval aik)))
+    (non-orig esk aik (invk k))
+    (uniq-orig k))
+  (defrole tpm-decrypt
+    (vars (m pcrvals mesg) (k aik akey) (pcrkey skey))
+    (trace (recv (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcrvals aik))
+      (recv (enc pcrvals (hash pcrkey))) (send m))
+    (non-orig pcrkey aik))
+  (defrole alice
+    (vars (n v data) (esk skey) (k aik akey))
+    (trace (send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig esk aik)
+    (uniq-orig n v))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 29)
+  (unrealized (0 0) (1 0) (2 2))
+  (preskeleton)
+  (origs (v (2 3)) (n (2 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (precedes ((2 3) (0 0)) ((2 3) (1 0)))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 30)
+  (parent 29)
+  (unrealized (0 0) (2 2))
+  (origs (v (2 3)) (n (2 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk-0) (k k) (aik aik))
+  (precedes ((2 3) (0 0)) ((2 3) (1 0)) ((3 1) (2 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k (hash (hash "0" n) "obtain") aik) (2 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk-0))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 31)
+  (parent 30)
+  (unrealized (0 0) (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (1 0)) ((3 1) (2 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 4 2 alice 2)
+    (enc "create key" (hash (hash "0" n) "obtain") esk-0) (3 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 32)
+  (parent 31)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (pcrvals mesg) (n v data) (esk pcrkey skey) (k aik aik-0 akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals pcrvals) (pcrkey pcrkey) (k k)
+    (aik aik-0))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)))
+  (non-orig esk pcrkey aik aik-0 (invk k))
+  (uniq-orig n v k)
+  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcrvals aik-0))
+      (recv (enc pcrvals (hash pcrkey))) (send v)))
+  (label 33)
+  (parent 32)
+  (unrealized (0 0) (4 1) (4 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 5 3 tpm-create-key 2)
+    (enc "created" k pcrvals aik-0) (4 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v)))
+  (label 34)
+  (parent 33)
+  (unrealized (0 0) (4 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 2) (4 2)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend 3)
+    (enc (hash (hash "0" n) "obtain") (hash pcrkey)) (4 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey)))))
+  (label 35)
+  (parent 34)
+  (unrealized (0 0) (5 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcrkey pcrkey) (esk esk-0))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 2) (4 2)))
+  (non-orig esk pcrkey esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash (hash "0" n) "obtain") (hash pcrkey)) (4 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (enc "extend" "obtain" esk-0))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey)))))
+  (label 36)
+  (parent 34)
+  (unrealized (0 0) (5 0) (5 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (deflistener (hash pcrkey))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 1) (4 2)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc (hash (hash "0" n) "obtain") (hash pcrkey)) (4 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 37)
+  (parent 34)
+  (unrealized (0 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend 3 (value n) (current-value "0") (pcrkey pcrkey))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend 3)
+    (enc (hash "0" n) (hash pcrkey)) (5 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (cat "extend" n)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 38)
+  (parent 35)
+  (unrealized (0 0) (6 0) (6 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1)))
+  (non-orig esk pcrkey esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash "0" n) (hash pcrkey)) (5 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk-0)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 39)
+  (parent 35)
+  (unrealized (0 0) (6 0) (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (deflistener (hash pcrkey))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 2) (4 2)) ((6 1) (5 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc (hash "0" n) (hash pcrkey)) (5 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 40)
+  (parent 35)
+  (unrealized (0 0) (5 1) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 7 2 alice 1)
+    (enc "extend" n esk-0) (6 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 41)
+  (parent 39)
+  (unrealized (0 0) (6 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-power-on 2)
+    (enc "0" (hash pcrkey)) (6 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey)))))
+  (label 42)
+  (parent 41)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (deflistener (hash pcrkey))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc "0" (hash pcrkey)) (6 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 43)
+  (parent 41)
+  (unrealized (0 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)))
+  (non-orig esk pcrkey pcrkey-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik) (0 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))))
+  (label 44)
+  (parent 42)
+  (unrealized (8 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1)))
+  (non-orig esk pcrkey pcrkey-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend 3)
+    (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)) (8 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey-0)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))))
+  (label 45)
+  (parent 44)
+  (unrealized (9 1))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcrkey pcrkey-0) (esk esk-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1)))
+  (non-orig esk pcrkey pcrkey-0 esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)) (8 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (enc "extend" "refuse" esk-0))
+      (recv (enc (hash "0" n) (hash pcrkey-0)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))))
+  (label 46)
+  (parent 44)
+  (unrealized (9 0) (9 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (deflistener (hash pcrkey-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)) ((9 1) (8 1)))
+  (non-orig esk pcrkey pcrkey-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey-0))
+    (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)) (8 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (hash pcrkey-0)) (send (hash pcrkey-0))))
+  (label 47)
+  (parent 44)
+  (unrealized (8 1) (9 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((6 2) (9 1)) ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 10 6 tpm-extend-enc 3)
+    (enc (hash "0" n) (hash pcrkey-0)) (9 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey)))))
+  (label 48)
+  (parent 45)
+  (realized)
+  (shape)
+  (maps ((0 1 2) ((n n) (v v) (k k) (aik aik) (esk esk))))
+  (origs (n (2 0)) (k (3 1)) (v (2 3))))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey-0))
+  (defstrand tpm-extend 3 (value n) (current-value "0")
+    (pcrkey pcrkey-0))
+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (8 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1))
+    ((10 2) (9 1)))
+  (non-orig esk pcrkey pcrkey-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend 3)
+    (enc (hash "0" n) (hash pcrkey-0)) (9 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey-0)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey-0))))
+    ((recv (cat "extend" n)) (recv (enc "0" (hash pcrkey-0)))
+      (send (enc (hash "0" n) (hash pcrkey-0)))))
+  (label 49)
+  (parent 45)
+  (unrealized (10 0) (10 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey-0) (esk esk-0))
+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (8 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1))
+    ((10 2) (9 1)))
+  (non-orig esk pcrkey pcrkey-0 esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash "0" n) (hash pcrkey-0)) (9 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey-0)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey-0))))
+    ((recv (enc "extend" n esk-0)) (recv (enc "0" (hash pcrkey-0)))
+      (send (enc (hash "0" n) (hash pcrkey-0)))))
+  (label 50)
+  (parent 45)
+  (unrealized (10 0) (10 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey-0))
+  (deflistener (hash pcrkey-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1)) ((10 1) (9 1)))
+  (non-orig esk pcrkey pcrkey-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey-0))
+    (enc (hash "0" n) (hash pcrkey-0)) (9 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey-0)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey-0))))
+    ((recv (hash pcrkey-0)) (send (hash pcrkey-0))))
+  (label 51)
+  (parent 45)
+  (unrealized (9 1) (10 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey-0) (esk esk))
+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (8 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1))
+    ((10 2) (9 1)))
+  (non-orig esk pcrkey pcrkey-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 11 2 alice 1)
+    (enc "extend" n esk-0) (10 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey-0)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey-0))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey-0)))
+      (send (enc (hash "0" n) (hash pcrkey-0)))))
+  (label 52)
+  (parent 50)
+  (unrealized (10 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (8 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 1) (6 1)) ((7 1) (10 1)) ((8 2) (0 0))
+    ((9 2) (8 1)) ((10 2) (9 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 11 7 tpm-power-on 2)
+    (enc "0" (hash pcrkey-0)) (10 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 53)
+  (parent 52)
+  (realized)
+  (shape)
+  (maps ((0 1 2) ((n n) (v v) (k k) (aik aik) (esk esk))))
+  (origs (n (2 0)) (k (3 1)) (v (2 3))))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey-0) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey-0))
+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (8 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1))
+    ((10 2) (9 1)) ((11 1) (10 1)))
+  (non-orig esk pcrkey pcrkey-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-power-on 2)
+    (enc "0" (hash pcrkey-0)) (10 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey-0)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey-0))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey-0)))
+      (send (enc (hash "0" n) (hash pcrkey-0))))
+    ((recv "power on") (send (enc "0" (hash pcrkey-0)))))
+  (label 54)
+  (parent 52)
+  (realized)
+  (shape)
+  (maps ((0 1 2) ((n n) (v v) (k k) (aik aik) (esk esk))))
+  (origs (n (2 0)) (k (3 1)) (v (2 3))))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey-0) (esk esk))
+  (deflistener (hash pcrkey-0))
+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (8 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1))
+    ((10 2) (9 1)) ((11 1) (10 1)))
+  (non-orig esk pcrkey pcrkey-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey-0))
+    (enc "0" (hash pcrkey-0)) (10 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey-0)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey-0))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey-0)))
+      (send (enc (hash "0" n) (hash pcrkey-0))))
+    ((recv (hash pcrkey-0)) (send (hash pcrkey-0))))
+  (label 55)
+  (parent 52)
+  (unrealized (11 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (pcrkey skey))
+    (trace (recv "power on") (send (enc "0" (hash pcrkey))))
+    (non-orig pcrkey))
+  (defrole tpm-extend
+    (vars (value current-value mesg) (pcrkey skey))
+    (trace (recv (cat "extend" value))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc (hash current-value value) (hash pcrkey)))
+      (send "ext ok"))
+    (non-orig pcrkey))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcrkey esk skey))
+    (trace (recv (enc "extend" value esk))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc (hash current-value value) (hash pcrkey)))
+      (send "ext ok"))
+    (non-orig pcrkey esk))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcrkey skey) (aik akey))
+    (trace (recv (cat "quote" nonce))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc "quote" current-value nonce aik)))
+    (non-orig pcrkey aik))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcrval mesg) (esk skey))
+    (trace (recv (enc "create key" pcrval esk))
+      (send (enc "created" k pcrval aik)))
+    (non-orig esk aik (invk k))
+    (uniq-orig k))
+  (defrole tpm-decrypt
+    (vars (m pcrvals mesg) (k aik akey) (pcrkey skey))
+    (trace (recv (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcrvals aik))
+      (recv (enc pcrvals (hash pcrkey))) (send m))
+    (non-orig pcrkey aik))
+  (defrole alice
+    (vars (n v data) (esk skey) (k aik akey))
+    (trace (send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig esk aik)
+    (uniq-orig n v))
+  (defrule ordered-extends
+    (forall ((y z strd) (pcrkey skey))
+      (implies
+        (and (p "tpm-extend" y (idx 3)) (p "tpm-extend" z (idx 3))
+          (p "tpm-extend" "pcrkey" y pcrkey)
+          (p "tpm-extend" "pcrkey" z pcrkey))
+        (or
+          (= y z)
+          (prec y (idx 2) z (idx 3))
+          (prec z (idx 2) y (idx 3))))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (non-orig esk aik)
+  (uniq-orig v n)
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 56)
+  (unrealized (0 0) (1 2))
+  (preskeleton)
+  (origs (v (1 3)) (n (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (precedes ((1 3) (0 0)))
+  (non-orig esk aik)
+  (uniq-orig v n)
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 57)
+  (parent 56)
+  (unrealized (1 2))
+  (origs (v (1 3)) (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk esk-0 skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk-0) (k k) (aik aik))
+  (precedes ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k (hash (hash "0" n) "obtain") aik) (1 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk-0))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 58)
+  (parent 57)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (precedes ((1 1) (2 0)) ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (displaced 3 1 alice 2)
+    (enc "create key" (hash (hash "0" n) "obtain") esk-0) (2 0))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 59)
+  (parent 58)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (pcrvals mesg) (v n data) (esk pcrkey skey) (k aik aik-0 akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals pcrvals) (pcrkey pcrkey) (k k)
+    (aik aik-0))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0)))
+  (non-orig esk pcrkey aik aik-0 (invk k))
+  (uniq-orig v n k)
+  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcrvals aik-0))
+      (recv (enc pcrvals (hash pcrkey))) (send v)))
+  (label 60)
+  (parent 59)
+  (unrealized (3 1) (3 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (displaced 4 2 tpm-create-key 2)
+    (enc "created" k pcrvals aik-0) (3 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v)))
+  (label 61)
+  (parent 60)
+  (unrealized (3 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 2) (3 2)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-strand tpm-extend 3)
+    (enc (hash (hash "0" n) "obtain") (hash pcrkey)) (3 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey)))))
+  (label 62)
+  (parent 61)
+  (unrealized (4 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey esk-0 skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcrkey pcrkey) (esk esk-0))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 2) (3 2)))
+  (non-orig esk pcrkey esk-0 aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash (hash "0" n) "obtain") (hash pcrkey)) (3 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (enc "extend" "obtain" esk-0))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey)))))
+  (label 63)
+  (parent 61)
+  (unrealized (4 0) (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (deflistener (hash pcrkey))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 1) (3 2)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc (hash (hash "0" n) "obtain") (hash pcrkey)) (3 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 64)
+  (parent 61)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey esk-0 skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk-0))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)))
+  (non-orig esk pcrkey esk-0 aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash "0" n) (hash pcrkey)) (4 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk-0)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 65)
+  (parent 62)
+  (unrealized (5 0) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (deflistener (hash pcrkey))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 2) (3 2)) ((5 1) (4 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc (hash "0" n) (hash pcrkey)) (4 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 66)
+  (parent 62)
+  (unrealized (4 1) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (displaced 6 1 alice 1)
+    (enc "extend" n esk-0) (5 0))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 67)
+  (parent 65)
+  (unrealized (5 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)) ((6 1) (5 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-strand tpm-power-on 2)
+    (enc "0" (hash pcrkey)) (5 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey)))))
+  (label 68)
+  (parent 67)
+  (realized)
+  (shape)
+  (maps ((0 1) ((v v) (n n) (esk esk) (k k) (aik aik))))
+  (origs (n (1 0)) (k (2 1)) (v (1 3))))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (deflistener (hash pcrkey))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)) ((6 1) (5 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc "0" (hash pcrkey)) (5 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 69)
+  (parent 67)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (pcrkey skey))
+    (trace (recv "power on") (send (enc "0" (hash pcrkey))))
+    (non-orig pcrkey))
+  (defrole tpm-extend
+    (vars (value current-value mesg) (pcrkey skey))
+    (trace (recv (cat "extend" value))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc (hash current-value value) (hash pcrkey)))
+      (send "ext ok"))
+    (non-orig pcrkey))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcrkey esk skey))
+    (trace (recv (enc "extend" value esk))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc (hash current-value value) (hash pcrkey)))
+      (send "ext ok"))
+    (non-orig pcrkey esk))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcrkey skey) (aik akey))
+    (trace (recv (cat "quote" nonce))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc "quote" current-value nonce aik)))
+    (non-orig pcrkey aik))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcrval mesg) (esk skey))
+    (trace (recv (enc "create key" pcrval esk))
+      (send (enc "created" k pcrval aik)))
+    (non-orig esk aik (invk k))
+    (uniq-orig k))
+  (defrole tpm-decrypt
+    (vars (m pcrvals mesg) (k aik akey) (pcrkey skey))
+    (trace (recv (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcrvals aik))
+      (recv (enc pcrvals (hash pcrkey))) (send m))
+    (non-orig pcrkey aik))
+  (defrole alice
+    (vars (n v data) (esk skey) (k aik akey))
+    (trace (send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig esk aik)
+    (uniq-orig n v))
+  (defrule ordered-extends
+    (forall ((y z strd) (pcrkey skey))
+      (implies
+        (and (p "tpm-extend" y (idx 3)) (p "tpm-extend" z (idx 3))
+          (p "tpm-extend" "pcrkey" y pcrkey)
+          (p "tpm-extend" "pcrkey" z pcrkey))
+        (or
+          (= y z)
+          (prec y (idx 2) z (idx 3))
+          (prec z (idx 2) y (idx 3))))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 70)
+  (unrealized (0 0) (1 2))
+  (preskeleton)
+  (origs (v (1 3)) (n (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (precedes ((1 3) (0 0)))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 71)
+  (parent 70)
+  (unrealized (0 0) (1 2))
+  (origs (v (1 3)) (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk-0) (k k) (aik aik))
+  (precedes ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k (hash (hash "0" n) "obtain") aik) (1 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk-0))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 72)
+  (parent 71)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (precedes ((1 1) (2 0)) ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 3 1 alice 2)
+    (enc "create key" (hash (hash "0" n) "obtain") esk-0) (2 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 73)
+  (parent 72)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik) (0 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))))
+  (label 74)
+  (parent 73)
+  (unrealized (3 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 2) (3 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend 3)
+    (enc (hash (hash "0" n) "refuse") (hash pcrkey)) (3 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey)))))
+  (label 75)
+  (parent 74)
+  (unrealized (4 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcrkey pcrkey) (esk esk-0))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 2) (3 1)))
+  (non-orig esk pcrkey esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash (hash "0" n) "refuse") (hash pcrkey)) (3 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (enc "extend" "refuse" esk-0))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey)))))
+  (label 76)
+  (parent 74)
+  (unrealized (4 0) (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (deflistener (hash pcrkey))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 1) (3 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc (hash (hash "0" n) "refuse") (hash pcrkey)) (3 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 77)
+  (parent 74)
+  (unrealized (3 1) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk-0))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig esk pcrkey esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash "0" n) (hash pcrkey)) (4 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey))))
+    ((recv (enc "extend" n esk-0)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 78)
+  (parent 75)
+  (unrealized (5 0) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (deflistener (hash pcrkey))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 2) (3 1)) ((5 1) (4 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc (hash "0" n) (hash pcrkey)) (4 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey))))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 79)
+  (parent 75)
+  (unrealized (4 1) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 6 1 alice 1)
+    (enc "extend" n esk-0) (5 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 80)
+  (parent 78)
+  (unrealized (5 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)) ((6 1) (5 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-power-on 2)
+    (enc "0" (hash pcrkey)) (5 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey)))))
+  (label 81)
+  (parent 80)
+  (realized)
+  (shape)
+  (maps ((0 1) ((n n) (v v) (k k) (aik aik) (esk esk))))
+  (origs (n (1 0)) (k (2 1)) (v (1 3))))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (deflistener (hash pcrkey))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)) ((6 1) (5 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc "0" (hash pcrkey)) (5 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 82)
+  (parent 80)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (pcrkey skey))
+    (trace (recv "power on") (send (enc "0" (hash pcrkey))))
+    (non-orig pcrkey))
+  (defrole tpm-extend
+    (vars (value current-value mesg) (pcrkey skey))
+    (trace (recv (cat "extend" value))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc (hash current-value value) (hash pcrkey)))
+      (send "ext ok"))
+    (non-orig pcrkey))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcrkey esk skey))
+    (trace (recv (enc "extend" value esk))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc (hash current-value value) (hash pcrkey)))
+      (send "ext ok"))
+    (non-orig pcrkey esk))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcrkey skey) (aik akey))
+    (trace (recv (cat "quote" nonce))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc "quote" current-value nonce aik)))
+    (non-orig pcrkey aik))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcrval mesg) (esk skey))
+    (trace (recv (enc "create key" pcrval esk))
+      (send (enc "created" k pcrval aik)))
+    (non-orig esk aik (invk k))
+    (uniq-orig k))
+  (defrole tpm-decrypt
+    (vars (m pcrvals mesg) (k aik akey) (pcrkey skey))
+    (trace (recv (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcrvals aik))
+      (recv (enc pcrvals (hash pcrkey))) (send m))
+    (non-orig pcrkey aik))
+  (defrole alice
+    (vars (n v data) (esk skey) (k aik akey))
+    (trace (send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig esk aik)
+    (uniq-orig n v))
+  (defrule ordered-extends
+    (forall ((y z strd) (pcrkey skey))
+      (implies
+        (and (p "tpm-extend" y (idx 3)) (p "tpm-extend" z (idx 3))
+          (p "tpm-extend" "pcrkey" y pcrkey)
+          (p "tpm-extend" "pcrkey" z pcrkey))
+        (or
+          (= y z)
+          (prec y (idx 2) z (idx 3))
+          (prec z (idx 2) y (idx 3))))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 83)
+  (unrealized (0 0) (1 0) (2 2))
+  (preskeleton)
+  (origs (v (2 3)) (n (2 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (precedes ((2 3) (0 0)) ((2 3) (1 0)))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 84)
+  (parent 83)
+  (unrealized (0 0) (2 2))
+  (origs (v (2 3)) (n (2 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk-0) (k k) (aik aik))
+  (precedes ((2 3) (0 0)) ((2 3) (1 0)) ((3 1) (2 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k (hash (hash "0" n) "obtain") aik) (2 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk-0))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 85)
+  (parent 84)
+  (unrealized (0 0) (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (1 0)) ((3 1) (2 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 4 2 alice 2)
+    (enc "create key" (hash (hash "0" n) "obtain") esk-0) (3 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 86)
+  (parent 85)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (pcrvals mesg) (n v data) (esk pcrkey skey) (k aik aik-0 akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals pcrvals) (pcrkey pcrkey) (k k)
+    (aik aik-0))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)))
+  (non-orig esk pcrkey aik aik-0 (invk k))
+  (uniq-orig n v k)
+  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcrvals aik-0))
+      (recv (enc pcrvals (hash pcrkey))) (send v)))
+  (label 87)
+  (parent 86)
+  (unrealized (0 0) (4 1) (4 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 5 3 tpm-create-key 2)
+    (enc "created" k pcrvals aik-0) (4 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v)))
+  (label 88)
+  (parent 87)
+  (unrealized (0 0) (4 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 2) (4 2)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend 3)
+    (enc (hash (hash "0" n) "obtain") (hash pcrkey)) (4 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey)))))
+  (label 89)
+  (parent 88)
+  (unrealized (0 0) (5 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcrkey pcrkey) (esk esk-0))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 2) (4 2)))
+  (non-orig esk pcrkey esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash (hash "0" n) "obtain") (hash pcrkey)) (4 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (enc "extend" "obtain" esk-0))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey)))))
+  (label 90)
+  (parent 88)
+  (unrealized (0 0) (5 0) (5 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (deflistener (hash pcrkey))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 1) (4 2)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc (hash (hash "0" n) "obtain") (hash pcrkey)) (4 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 91)
+  (parent 88)
+  (unrealized (0 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1)))
+  (non-orig esk pcrkey esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash "0" n) (hash pcrkey)) (5 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk-0)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 92)
+  (parent 89)
+  (unrealized (0 0) (6 0) (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (deflistener (hash pcrkey))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 2) (4 2)) ((6 1) (5 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc (hash "0" n) (hash pcrkey)) (5 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 93)
+  (parent 89)
+  (unrealized (0 0) (5 1) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 7 2 alice 1)
+    (enc "extend" n esk-0) (6 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 94)
+  (parent 92)
+  (unrealized (0 0) (6 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-power-on 2)
+    (enc "0" (hash pcrkey)) (6 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey)))))
+  (label 95)
+  (parent 94)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (deflistener (hash pcrkey))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc "0" (hash pcrkey)) (6 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 96)
+  (parent 94)
+  (unrealized (0 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)))
+  (non-orig esk pcrkey pcrkey-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik) (0 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))))
+  (label 97)
+  (parent 95)
+  (unrealized (8 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1)))
+  (non-orig esk pcrkey pcrkey-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend 3)
+    (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)) (8 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey-0)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))))
+  (label 98)
+  (parent 97)
+  (unrealized (9 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcrkey pcrkey-0) (esk esk-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1)))
+  (non-orig esk pcrkey pcrkey-0 esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)) (8 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (enc "extend" "refuse" esk-0))
+      (recv (enc (hash "0" n) (hash pcrkey-0)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))))
+  (label 99)
+  (parent 97)
+  (unrealized (9 0) (9 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (deflistener (hash pcrkey-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)) ((9 1) (8 1)))
+  (non-orig esk pcrkey pcrkey-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey-0))
+    (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)) (8 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (hash pcrkey-0)) (send (hash pcrkey-0))))
+  (label 100)
+  (parent 97)
+  (unrealized (8 1) (9 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey-0) (esk esk-0))
+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (8 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1))
+    ((10 2) (9 1)))
+  (non-orig esk pcrkey pcrkey-0 esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash "0" n) (hash pcrkey-0)) (9 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey-0)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey-0))))
+    ((recv (enc "extend" n esk-0)) (recv (enc "0" (hash pcrkey-0)))
+      (send (enc (hash "0" n) (hash pcrkey-0)))))
+  (label 101)
+  (parent 98)
+  (unrealized (10 0) (10 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey-0))
+  (deflistener (hash pcrkey-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1)) ((10 1) (9 1)))
+  (non-orig esk pcrkey pcrkey-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey-0))
+    (enc (hash "0" n) (hash pcrkey-0)) (9 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey-0)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey-0))))
+    ((recv (hash pcrkey-0)) (send (hash pcrkey-0))))
+  (label 102)
+  (parent 98)
+  (unrealized (9 1) (10 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey-0) (esk esk))
+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (8 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1))
+    ((10 2) (9 1)))
+  (non-orig esk pcrkey pcrkey-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 11 2 alice 1)
+    (enc "extend" n esk-0) (10 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey-0)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey-0))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey-0)))
+      (send (enc (hash "0" n) (hash pcrkey-0)))))
+  (label 103)
+  (parent 101)
+  (unrealized (10 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey-0) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey-0))
+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (8 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1))
+    ((10 2) (9 1)) ((11 1) (10 1)))
+  (non-orig esk pcrkey pcrkey-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-power-on 2)
+    (enc "0" (hash pcrkey-0)) (10 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey-0)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey-0))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey-0)))
+      (send (enc (hash "0" n) (hash pcrkey-0))))
+    ((recv "power on") (send (enc "0" (hash pcrkey-0)))))
+  (label 104)
+  (parent 103)
+  (realized)
+  (shape)
+  (maps ((0 1 2) ((n n) (v v) (k k) (aik aik) (esk esk))))
+  (origs (n (2 0)) (k (3 1)) (v (2 3))))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey-0) (esk esk))
+  (deflistener (hash pcrkey-0))
+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (8 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1))
+    ((10 2) (9 1)) ((11 1) (10 1)))
+  (non-orig esk pcrkey pcrkey-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey-0))
+    (enc "0" (hash pcrkey-0)) (10 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey-0)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey-0))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey-0)))
+      (send (enc (hash "0" n) (hash pcrkey-0))))
+    ((recv (hash pcrkey-0)) (send (hash pcrkey-0))))
+  (label 105)
+  (parent 103)
+  (unrealized (11 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (pcrkey skey))
+    (trace (recv "power on") (send (enc "0" (hash pcrkey))))
+    (non-orig pcrkey))
+  (defrole tpm-extend
+    (vars (value current-value mesg) (pcrkey skey))
+    (trace (recv (cat "extend" value))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc (hash current-value value) (hash pcrkey)))
+      (send "ext ok"))
+    (non-orig pcrkey))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcrkey esk skey))
+    (trace (recv (enc "extend" value esk))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc (hash current-value value) (hash pcrkey)))
+      (send "ext ok"))
+    (non-orig pcrkey esk))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcrkey skey) (aik akey))
+    (trace (recv (cat "quote" nonce))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc "quote" current-value nonce aik)))
+    (non-orig pcrkey aik))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcrval mesg) (esk skey))
+    (trace (recv (enc "create key" pcrval esk))
+      (send (enc "created" k pcrval aik)))
+    (non-orig esk aik (invk k))
+    (uniq-orig k))
+  (defrole tpm-decrypt
+    (vars (m pcrvals mesg) (k aik akey) (pcrkey skey))
+    (trace (recv (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcrvals aik))
+      (recv (enc pcrvals (hash pcrkey))) (send m))
+    (non-orig pcrkey aik))
+  (defrole alice
+    (vars (n v data) (esk skey) (k aik akey))
+    (trace (send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig esk aik)
+    (uniq-orig n v))
+  (defrule ordered-extends
+    (forall ((y z strd) (pcrkey skey))
+      (implies
+        (and (p "tpm-extend" y (idx 3)) (p "tpm-extend" z (idx 3))
+          (p "tpm-extend" "pcrkey" y pcrkey)
+          (p "tpm-extend" "pcrkey" z pcrkey))
+        (or
+          (= y z)
+          (prec y (idx 2) z (idx 3))
+          (prec z (idx 2) y (idx 3))))))
+  (defrule esk-same-as-pcrkey
+    (forall ((y z strd) (esk pcrkey pcrkey-0 skey))
+      (implies
+        (and (p "tpm-extend-enc" y (idx 3))
+          (p "tpm-extend-enc" z (idx 3))
+          (p "tpm-extend-enc" "esk" y esk)
+          (p "tpm-extend-enc" "esk" z esk)
+          (p "tpm-extend-enc" "pcrkey" y pcrkey)
+          (p "tpm-extend-enc" "pcrkey" z pcrkey-0))
+        (= pcrkey pcrkey-0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (non-orig esk aik)
+  (uniq-orig v n)
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 106)
+  (unrealized (0 0) (1 2))
+  (preskeleton)
+  (origs (v (1 3)) (n (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (precedes ((1 3) (0 0)))
+  (non-orig esk aik)
+  (uniq-orig v n)
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 107)
+  (parent 106)
+  (unrealized (1 2))
+  (origs (v (1 3)) (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk esk-0 skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk-0) (k k) (aik aik))
+  (precedes ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k (hash (hash "0" n) "obtain") aik) (1 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk-0))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 108)
+  (parent 107)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (precedes ((1 1) (2 0)) ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (displaced 3 1 alice 2)
+    (enc "create key" (hash (hash "0" n) "obtain") esk-0) (2 0))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 109)
+  (parent 108)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (pcrvals mesg) (v n data) (esk pcrkey skey) (k aik aik-0 akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals pcrvals) (pcrkey pcrkey) (k k)
+    (aik aik-0))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0)))
+  (non-orig esk pcrkey aik aik-0 (invk k))
+  (uniq-orig v n k)
+  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcrvals aik-0))
+      (recv (enc pcrvals (hash pcrkey))) (send v)))
+  (label 110)
+  (parent 109)
+  (unrealized (3 1) (3 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (displaced 4 2 tpm-create-key 2)
+    (enc "created" k pcrvals aik-0) (3 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v)))
+  (label 111)
+  (parent 110)
+  (unrealized (3 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 2) (3 2)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-strand tpm-extend 3)
+    (enc (hash (hash "0" n) "obtain") (hash pcrkey)) (3 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey)))))
+  (label 112)
+  (parent 111)
+  (unrealized (4 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey esk-0 skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcrkey pcrkey) (esk esk-0))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 2) (3 2)))
+  (non-orig esk pcrkey esk-0 aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash (hash "0" n) "obtain") (hash pcrkey)) (3 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (enc "extend" "obtain" esk-0))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey)))))
+  (label 113)
+  (parent 111)
+  (unrealized (4 0) (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (deflistener (hash pcrkey))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 1) (3 2)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc (hash (hash "0" n) "obtain") (hash pcrkey)) (3 2))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 114)
+  (parent 111)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey esk-0 skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk-0))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)))
+  (non-orig esk pcrkey esk-0 aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash "0" n) (hash pcrkey)) (4 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk-0)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 115)
+  (parent 112)
+  (unrealized (5 0) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (deflistener (hash pcrkey))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 2) (3 2)) ((5 1) (4 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc (hash "0" n) (hash pcrkey)) (4 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 116)
+  (parent 112)
+  (unrealized (4 1) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (displaced 6 1 alice 1)
+    (enc "extend" n esk-0) (5 0))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 117)
+  (parent 115)
+  (unrealized (5 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)) ((6 1) (5 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-strand tpm-power-on 2)
+    (enc "0" (hash pcrkey)) (5 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey)))))
+  (label 118)
+  (parent 117)
+  (realized)
+  (shape)
+  (maps ((0 1) ((v v) (n n) (esk esk) (k k) (aik aik))))
+  (origs (n (1 0)) (k (2 1)) (v (1 3))))
+
+(defskeleton envelope
+  (vars (v n data) (esk pcrkey skey) (k aik akey))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (deflistener (hash pcrkey))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)) ((6 1) (5 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig v n k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc "0" (hash pcrkey)) (5 1))
+  (traces ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 119)
+  (parent 117)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (pcrkey skey))
+    (trace (recv "power on") (send (enc "0" (hash pcrkey))))
+    (non-orig pcrkey))
+  (defrole tpm-extend
+    (vars (value current-value mesg) (pcrkey skey))
+    (trace (recv (cat "extend" value))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc (hash current-value value) (hash pcrkey)))
+      (send "ext ok"))
+    (non-orig pcrkey))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcrkey esk skey))
+    (trace (recv (enc "extend" value esk))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc (hash current-value value) (hash pcrkey)))
+      (send "ext ok"))
+    (non-orig pcrkey esk))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcrkey skey) (aik akey))
+    (trace (recv (cat "quote" nonce))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc "quote" current-value nonce aik)))
+    (non-orig pcrkey aik))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcrval mesg) (esk skey))
+    (trace (recv (enc "create key" pcrval esk))
+      (send (enc "created" k pcrval aik)))
+    (non-orig esk aik (invk k))
+    (uniq-orig k))
+  (defrole tpm-decrypt
+    (vars (m pcrvals mesg) (k aik akey) (pcrkey skey))
+    (trace (recv (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcrvals aik))
+      (recv (enc pcrvals (hash pcrkey))) (send m))
+    (non-orig pcrkey aik))
+  (defrole alice
+    (vars (n v data) (esk skey) (k aik akey))
+    (trace (send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig esk aik)
+    (uniq-orig n v))
+  (defrule ordered-extends
+    (forall ((y z strd) (pcrkey skey))
+      (implies
+        (and (p "tpm-extend" y (idx 3)) (p "tpm-extend" z (idx 3))
+          (p "tpm-extend" "pcrkey" y pcrkey)
+          (p "tpm-extend" "pcrkey" z pcrkey))
+        (or
+          (= y z)
+          (prec y (idx 2) z (idx 3))
+          (prec z (idx 2) y (idx 3))))))
+  (defrule esk-same-as-pcrkey
+    (forall ((y z strd) (esk pcrkey pcrkey-0 skey))
+      (implies
+        (and (p "tpm-extend-enc" y (idx 3))
+          (p "tpm-extend-enc" z (idx 3))
+          (p "tpm-extend-enc" "esk" y esk)
+          (p "tpm-extend-enc" "esk" z esk)
+          (p "tpm-extend-enc" "pcrkey" y pcrkey)
+          (p "tpm-extend-enc" "pcrkey" z pcrkey-0))
+        (= pcrkey pcrkey-0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 120)
+  (unrealized (0 0) (1 2))
+  (preskeleton)
+  (origs (v (1 3)) (n (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (precedes ((1 3) (0 0)))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 121)
+  (parent 120)
+  (unrealized (0 0) (1 2))
+  (origs (v (1 3)) (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk-0) (k k) (aik aik))
+  (precedes ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k (hash (hash "0" n) "obtain") aik) (1 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk-0))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 122)
+  (parent 121)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (precedes ((1 1) (2 0)) ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 3 1 alice 2)
+    (enc "create key" (hash (hash "0" n) "obtain") esk-0) (2 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 123)
+  (parent 122)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik) (0 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))))
+  (label 124)
+  (parent 123)
+  (unrealized (3 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 2) (3 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend 3)
+    (enc (hash (hash "0" n) "refuse") (hash pcrkey)) (3 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey)))))
+  (label 125)
+  (parent 124)
+  (unrealized (4 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcrkey pcrkey) (esk esk-0))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 2) (3 1)))
+  (non-orig esk pcrkey esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash (hash "0" n) "refuse") (hash pcrkey)) (3 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (enc "extend" "refuse" esk-0))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey)))))
+  (label 126)
+  (parent 124)
+  (unrealized (4 0) (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (deflistener (hash pcrkey))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 1) (3 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc (hash (hash "0" n) "refuse") (hash pcrkey)) (3 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 127)
+  (parent 124)
+  (unrealized (3 1) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk-0))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig esk pcrkey esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash "0" n) (hash pcrkey)) (4 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey))))
+    ((recv (enc "extend" n esk-0)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 128)
+  (parent 125)
+  (unrealized (5 0) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (deflistener (hash pcrkey))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 2) (3 1)) ((5 1) (4 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc (hash "0" n) (hash pcrkey)) (4 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey))))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 129)
+  (parent 125)
+  (unrealized (4 1) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 6 1 alice 1)
+    (enc "extend" n esk-0) (5 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 130)
+  (parent 128)
+  (unrealized (5 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)) ((6 1) (5 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-power-on 2)
+    (enc "0" (hash pcrkey)) (5 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey)))))
+  (label 131)
+  (parent 130)
+  (realized)
+  (shape)
+  (maps ((0 1) ((n n) (v v) (k k) (aik aik) (esk esk))))
+  (origs (n (1 0)) (k (2 1)) (v (1 3))))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (deflistener (hash pcrkey))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)) ((6 1) (5 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc "0" (hash pcrkey)) (5 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 132)
+  (parent 130)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (pcrkey skey))
+    (trace (recv "power on") (send (enc "0" (hash pcrkey))))
+    (non-orig pcrkey))
+  (defrole tpm-extend
+    (vars (value current-value mesg) (pcrkey skey))
+    (trace (recv (cat "extend" value))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc (hash current-value value) (hash pcrkey)))
+      (send "ext ok"))
+    (non-orig pcrkey))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcrkey esk skey))
+    (trace (recv (enc "extend" value esk))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc (hash current-value value) (hash pcrkey)))
+      (send "ext ok"))
+    (non-orig pcrkey esk))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcrkey skey) (aik akey))
+    (trace (recv (cat "quote" nonce))
+      (recv (enc current-value (hash pcrkey)))
+      (send (enc "quote" current-value nonce aik)))
+    (non-orig pcrkey aik))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcrval mesg) (esk skey))
+    (trace (recv (enc "create key" pcrval esk))
+      (send (enc "created" k pcrval aik)))
+    (non-orig esk aik (invk k))
+    (uniq-orig k))
+  (defrole tpm-decrypt
+    (vars (m pcrvals mesg) (k aik akey) (pcrkey skey))
+    (trace (recv (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcrvals aik))
+      (recv (enc pcrvals (hash pcrkey))) (send m))
+    (non-orig pcrkey aik))
+  (defrole alice
+    (vars (n v data) (esk skey) (k aik akey))
+    (trace (send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig esk aik)
+    (uniq-orig n v))
+  (defrule ordered-extends
+    (forall ((y z strd) (pcrkey skey))
+      (implies
+        (and (p "tpm-extend" y (idx 3)) (p "tpm-extend" z (idx 3))
+          (p "tpm-extend" "pcrkey" y pcrkey)
+          (p "tpm-extend" "pcrkey" z pcrkey))
+        (or
+          (= y z)
+          (prec y (idx 2) z (idx 3))
+          (prec z (idx 2) y (idx 3))))))
+  (defrule esk-same-as-pcrkey
+    (forall ((y z strd) (esk pcrkey pcrkey-0 skey))
+      (implies
+        (and (p "tpm-extend-enc" y (idx 3))
+          (p "tpm-extend-enc" z (idx 3))
+          (p "tpm-extend-enc" "esk" y esk)
+          (p "tpm-extend-enc" "esk" z esk)
+          (p "tpm-extend-enc" "pcrkey" y pcrkey)
+          (p "tpm-extend-enc" "pcrkey" z pcrkey-0))
+        (= pcrkey pcrkey-0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 133)
+  (unrealized (0 0) (1 0) (2 2))
+  (preskeleton)
+  (origs (v (2 3)) (n (2 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (precedes ((2 3) (0 0)) ((2 3) (1 0)))
+  (non-orig esk aik)
+  (uniq-orig n v)
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 134)
+  (parent 133)
+  (unrealized (0 0) (2 2))
+  (origs (v (2 3)) (n (2 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk-0) (k k) (aik aik))
+  (precedes ((2 3) (0 0)) ((2 3) (1 0)) ((3 1) (2 2)))
+  (non-orig esk esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k (hash (hash "0" n) "obtain") aik) (2 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk-0))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 135)
+  (parent 134)
+  (unrealized (0 0) (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (1 0)) ((3 1) (2 2)))
+  (non-orig esk aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 4 2 alice 2)
+    (enc "create key" (hash (hash "0" n) "obtain") esk-0) (3 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik))))
+  (label 136)
+  (parent 135)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (pcrvals mesg) (n v data) (esk pcrkey skey) (k aik aik-0 akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals pcrvals) (pcrkey pcrkey) (k k)
+    (aik aik-0))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)))
+  (non-orig esk pcrkey aik aik-0 (invk k))
+  (uniq-orig n v k)
+  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcrvals aik-0))
+      (recv (enc pcrvals (hash pcrkey))) (send v)))
+  (label 137)
+  (parent 136)
+  (unrealized (0 0) (4 1) (4 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 5 3 tpm-create-key 2)
+    (enc "created" k pcrvals aik-0) (4 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v)))
+  (label 138)
+  (parent 137)
+  (unrealized (0 0) (4 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 2) (4 2)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend 3)
+    (enc (hash (hash "0" n) "obtain") (hash pcrkey)) (4 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey)))))
+  (label 139)
+  (parent 138)
+  (unrealized (0 0) (5 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcrkey pcrkey) (esk esk-0))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 2) (4 2)))
+  (non-orig esk pcrkey esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash (hash "0" n) "obtain") (hash pcrkey)) (4 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (enc "extend" "obtain" esk-0))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey)))))
+  (label 140)
+  (parent 138)
+  (unrealized (0 0) (5 0) (5 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (deflistener (hash pcrkey))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 1) (4 2)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc (hash (hash "0" n) "obtain") (hash pcrkey)) (4 2))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 141)
+  (parent 138)
+  (unrealized (0 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1)))
+  (non-orig esk pcrkey esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash "0" n) (hash pcrkey)) (5 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk-0)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 142)
+  (parent 139)
+  (unrealized (0 0) (6 0) (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (deflistener (hash pcrkey))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 2) (4 2)) ((6 1) (5 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc (hash "0" n) (hash pcrkey)) (5 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 143)
+  (parent 139)
+  (unrealized (0 0) (5 1) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (displaced 7 2 alice 1)
+    (enc "extend" n esk-0) (6 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey)))))
+  (label 144)
+  (parent 142)
+  (unrealized (0 0) (6 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-power-on 2)
+    (enc "0" (hash pcrkey)) (6 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey)))))
+  (label 145)
+  (parent 144)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (deflistener (hash pcrkey))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)))
+  (non-orig esk pcrkey aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey))
+    (enc "0" (hash pcrkey)) (6 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv (hash pcrkey)) (send (hash pcrkey))))
+  (label 146)
+  (parent 144)
+  (unrealized (0 0) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)))
+  (non-orig esk pcrkey pcrkey-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik) (0 0))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))))
+  (label 147)
+  (parent 145)
+  (unrealized (8 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1)))
+  (non-orig esk pcrkey pcrkey-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend 3)
+    (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)) (8 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey-0)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))))
+  (label 148)
+  (parent 147)
+  (unrealized (9 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcrkey pcrkey-0) (esk esk-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1)))
+  (non-orig esk pcrkey pcrkey-0 esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)) (8 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (enc "extend" "refuse" esk-0))
+      (recv (enc (hash "0" n) (hash pcrkey-0)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))))
+  (label 149)
+  (parent 147)
+  (unrealized (9 0) (9 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (deflistener (hash pcrkey-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)) ((9 1) (8 1)))
+  (non-orig esk pcrkey pcrkey-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey-0))
+    (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)) (8 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (hash pcrkey-0)) (send (hash pcrkey-0))))
+  (label 150)
+  (parent 147)
+  (unrealized (8 1) (9 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 esk-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey-0) (esk esk-0))
+  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (8 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1))
+    ((10 2) (9 1)))
+  (non-orig esk pcrkey pcrkey-0 esk-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-strand tpm-extend-enc 3)
+    (enc (hash "0" n) (hash pcrkey-0)) (9 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey-0)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey-0))))
+    ((recv (enc "extend" n esk-0)) (recv (enc "0" (hash pcrkey-0)))
+      (send (enc (hash "0" n) (hash pcrkey-0)))))
+  (label 151)
+  (parent 148)
+  (unrealized (10 0) (10 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (esk pcrkey pcrkey-0 skey) (k aik akey))
+  (deflistener (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (esk esk) (k k) (aik aik))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (esk esk) (k k) (aik aik))
+  (defstrand tpm-decrypt 4 (m v) (pcrvals (hash (hash "0" n) "obtain"))
+    (pcrkey pcrkey) (k k) (aik aik))
+  (defstrand tpm-extend 3 (value "obtain") (current-value (hash "0" n))
+    (pcrkey pcrkey))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcrkey pcrkey) (esk esk))
+  (defstrand tpm-power-on 2 (pcrkey pcrkey))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcrkey pcrkey-0)
+    (aik aik))
+  (defstrand tpm-extend 3 (value "refuse") (current-value (hash "0" n))
+    (pcrkey pcrkey-0))
+  (deflistener (hash pcrkey-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (8 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 1) (6 1)) ((8 2) (0 0)) ((9 2) (8 1)) ((10 1) (9 1)))
+  (non-orig esk pcrkey pcrkey-0 aik (invk k))
+  (uniq-orig n v k)
+  (operation encryption-test (added-listener (hash pcrkey-0))
+    (enc (hash "0" n) (hash pcrkey-0)) (9 1))
+  (traces
+    ((recv (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv v) (send v))
+    ((send (enc "extend" n esk))
+      (send (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv (enc "create key" (hash (hash "0" n) "obtain") esk))
+      (send (enc "created" k (hash (hash "0" n) "obtain") aik)))
+    ((recv (cat "decrypt" (enc v k)))
+      (recv (enc "created" k (hash (hash "0" n) "obtain") aik))
+      (recv (enc (hash (hash "0" n) "obtain") (hash pcrkey))) (send v))
+    ((recv (cat "extend" "obtain"))
+      (recv (enc (hash "0" n) (hash pcrkey)))
+      (send (enc (hash (hash "0" n) "obtain") (hash pcrkey))))
+    ((recv (enc "extend" n esk)) (recv (enc "0" (hash pcrkey)))
+      (send (enc (hash "0" n) (hash pcrkey))))
+    ((recv "power on") (send (enc "0" (hash pcrkey))))
+    ((recv (cat "quote" (enc v k)))
+      (recv (enc (hash (hash "0" n) "refuse") (hash pcrkey-0)))
+      (send (enc "quote" (hash (hash "0" n) "refuse") (enc v k) aik)))
+    ((recv (cat "extend" "refuse"))
+      (recv (enc (hash "0" n) (hash pcrkey-0)))
+      (send (enc (hash (hash "0" n) "refuse") (hash pcrkey-0))))
+    ((recv (hash pcrkey-0)) (send (hash pcrkey-0))))
+  (label 152)
+  (parent 148)
+  (unrealized (9 1) (10 0))
   (dead)
   (comment "empty cohort"))
 
diff --git a/tst/envelope_short.scm b/tst/envelope_short.scm
deleted file mode 100644
--- a/tst/envelope_short.scm
+++ /dev/null
@@ -1,128 +0,0 @@
-;;; Mark Ryan's envelope protocol, implemented using TPMs.
-;;; The protocol includes roles to emulate interactions with a simplified
-;;; TPM (trusted platform module) that only has a single Platform
-;;; Configuration Register (PCR).
-
-;;; The true protocol is encoded in the "alice" role.  Alice is a
-;;; teenager who wants to go out for an evening and maintain privacy
-;;; about her itinerary, but her parents insist on being able to know in
-;;; an emergency.
-
-;;; Alice uses a TPM-created key to encrypt the itinerary (represented
-;;; by 'v' for value).  Alice's parents can alter the state of the TPM
-;;; in either of two ways, but not in both: they can extend with
-;;; "obtain", which will enable decryption of 'v'.  Or, they can
-;;; extend with "refuse", which serves to represent permanently declining
-;;; the option to open the envelope.
-
-(herald "Envelope Protocol" (bound 20))
-
-;;; Encoding of a PCR extend operation
-(defmacro (extend val old)
-  (hash val old))
-
-;; This is the refusal token
-(defmacro (refuse n pcr v k aik)
-  (enc "quote" (extend "refuse" (extend n pcr)) (enc v k) aik))
-
-(defprotocol envelope basic
-
-  ;; Power on sets the TPM to the boot state
-  (defrole tpm-power-on
-    (vars (state mesg))
-    (trace
-     (init "0")))
-
-  ;; TPM Quote has a fake event to deal with the fact that a variable
-  ;; of sort mesg must be acquired.
-  (defrole tpm-quote
-    (vars (nonce pcr mesg) (aik akey))
-    (trace
-     (recv (cat "quote" nonce))
-     (obsv pcr)
-     (send (enc "quote" pcr nonce aik)))
-    (non-orig aik))
-
-  ;; The extend command occurs only within an encrypted session.  We
-  ;; assume some session key already exists
-  (defrole tpm-extend-enc
-    (vars (value state mesg) (esk skey) (tne tno data)
-	  (tpmkey akey))
-    (trace
-     (recv (cat "establish transport"
-		tpmkey (enc esk tpmkey)))
-     (send (cat "establish transport" tne))
-     (recv (cat "execute transport"
-		(cat "extend" (enc value esk))
-		tno "false"
-		(hash esk (hash "execute transport"
-				(hash "extend"
-				      (enc value esk)))
-				tne tno "false")))
-     (tran state (extend value state)))
-    (uniq-orig tne)
-    (non-orig (invk tpmkey)))
-
-  ;; This role creates a key whose use is restricted to a requested
-  ;; pcr value (since we only model one pcr).  It doesn't create or
-  ;; change any TPM state.
-  (defrole tpm-create-key
-    (vars (k aik akey) (pcr mesg) (esk skey))
-    (trace
-     (recv (enc "create key" pcr esk)) ;; encryption prevents weird shapes
-     (send (enc "created" k pcr aik)));; no tpm state is set
-    (uniq-orig k)
-    (non-orig (invk k) aik esk))
-
-  ;; This role receives an encryption and a previously made key
-  ;; structure that restricts the decryption key to be used with a
-  ;; certain pcr value.  It retrieves the current value and checks
-  ;; that it matches before decrypting.
-  (defrole tpm-decrypt
-    (vars (m pcr mesg) (k aik akey))
-    (trace
-     (recv (cat "decrypt" (enc m k)))
-     (recv (enc "created" k pcr aik))
-     (obsv pcr)
-     (send m))
-    (non-orig aik))
-
-  ;; Alice extends a pcr with a fresh nonce in an encrypted session.
-  ;; She has the TPM create a new key whose use is bound to the hash
-  ;; of pcr value she just created with the string "obtain".  She then
-  ;; encrypts her fresh secret with this newly created key.  This role
-  ;; has a fake reception event to deal with he fact that pcr must be
-  ;; acquired.
-  (defrole alice
-    (vars (v n tne tno data) (esk1 esk skey) (k aik tpmkey akey)
-	  (pcr mesg))
-    (trace
-     (send (cat "establish transport"
-		tpmkey (enc esk tpmkey)))
-     (recv (cat "establish transport" tne))
-     (send (cat "execute transport"
-		(cat "extend" (enc n esk))
-		tno "false"
-		(hash esk (hash "execute transport"
-				(hash "extend"
-				      (enc n esk)))
-				tne tno "false")))
-     (recv pcr)				; Fake event
-     (send (enc "create key" (extend "obtain" (extend n pcr)) esk1))
-     (recv (enc "created" k (extend "obtain" (extend n pcr)) aik))
-     (send (enc v k)))
-    (uniq-orig n v tno esk)
-    (neq (tno n))
-    (non-orig aik esk1 (invk tpmkey))))
-
-;;; Initial skeleton
-(defskeleton envelope
-  (vars (v n data) (k aik akey) (pcr mesg))
-  (deflistener (refuse n pcr v k aik))
-  (deflistener v)
-  (defstrand alice 7 (n n) (pcr pcr) (v v) (k k) (aik aik)))
-
-(defskeleton envelope
-  (vars (v data))
-  (deflistener v)
-  (defstrand alice 7 (v v)))
diff --git a/tst/envelope_short.tst b/tst/envelope_short.tst
deleted file mode 100644
--- a/tst/envelope_short.tst
+++ /dev/null
@@ -1,7794 +0,0 @@
-(herald "Envelope Protocol" (bound 20))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/envelope_short.scm")
-(comment "Strand count bounded at 20")
-
-(defprotocol envelope basic
-  (defrole tpm-power-on (vars) (trace (init "0")))
-  (defrole tpm-quote
-    (vars (nonce pcr mesg) (aik akey))
-    (trace (recv (cat "quote" nonce)) (obsv pcr)
-      (send (enc "quote" pcr nonce aik)))
-    (non-orig aik))
-  (defrole tpm-extend-enc
-    (vars (value state mesg) (esk skey) (tne tno data) (tpmkey akey))
-    (trace (recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc value esk)) tno
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc value esk)))
-            tne tno "false"))) (tran state (hash value state)))
-    (non-orig (invk tpmkey))
-    (uniq-orig tne))
-  (defrole tpm-create-key
-    (vars (k aik akey) (pcr mesg) (esk skey))
-    (trace (recv (enc "create key" pcr esk))
-      (send (enc "created" k pcr aik)))
-    (non-orig (invk k) aik esk)
-    (uniq-orig k))
-  (defrole tpm-decrypt
-    (vars (m pcr mesg) (k aik akey))
-    (trace (recv (cat "decrypt" (enc m k)))
-      (recv (enc "created" k pcr aik)) (obsv pcr) (send m))
-    (non-orig aik))
-  (defrole alice
-    (vars (v n tne tno data) (esk1 esk skey) (k aik tpmkey akey)
-      (pcr mesg))
-    (trace (send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    (non-orig aik esk1 (invk tpmkey))
-    (uniq-orig v n tno esk)
-    (neq (tno n))))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (neq (tno n))
-  (non-orig esk1 aik (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k))))
-  (label 0)
-  (unrealized (0 0) (1 0) (2 5))
-  (preskeleton)
-  (origs (esk (2 0)) (n (2 2)) (tno (2 2)) (v (2 6)))
-  (comment "Not a skeleton"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (precedes ((2 6) (0 0)) ((2 6) (1 0)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k))))
-  (label 1)
-  (parent 0)
-  (unrealized (0 0) (2 5))
-  (origs (esk (2 0)) (n (2 2)) (tno (2 2)) (v (2 6)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" k (hash "obtain" (hash n pcr)) aik))
-    (aik aik-0))
-  (precedes ((2 6) (0 0)) ((2 6) (1 0)) ((3 2) (2 5)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" k (hash "obtain" (hash n pcr)) aik) (2 5))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (cat "quote" nonce))
-      (obsv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send
-        (enc "quote" (enc "created" k (hash "obtain" (hash n pcr)) aik)
-          nonce aik-0))))
-  (label 2)
-  (parent 1)
-  (unrealized (0 0) (3 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk esk-0 skey)
-    (k aik tpmkey akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk-0) (k k) (aik aik))
-  (precedes ((2 6) (0 0)) ((2 6) (1 0)) ((3 1) (2 5)))
-  (neq (tno n))
-  (non-orig esk1 esk-0 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-create-key 2)
-    (enc "created" k (hash "obtain" (hash n pcr)) aik) (2 5))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))
-  (label 3)
-  (parent 1)
-  (unrealized (0 0) (1 0) (3 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk esk-0 skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk-0) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-    (aik aik-0))
-  (precedes ((2 6) (0 0)) ((2 6) (1 0)) ((3 1) (2 5)) ((4 2) (3 0)))
-  (neq (tno n))
-  (non-orig esk1 esk-0 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (3 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "quote" nonce))
-      (obsv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-      (send
-        (enc "quote"
-          (enc "create key" (hash "obtain" (hash n pcr)) esk-0) nonce
-          aik-0))))
-  (label 4)
-  (parent 3)
-  (unrealized (0 0) (1 0) (4 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (1 0)) ((3 1) (2 5)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (displaced 4 2 alice 5)
-    (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (3 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))
-  (label 5)
-  (parent 3)
-  (unrealized (0 0) (1 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr v) (aik aik-0))
-  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 1)) ((3 1) (2 5))
-    ((4 2) (1 0)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation nonce-test (added-strand tpm-quote 3) v (1 0) (enc v k))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "quote" nonce)) (obsv v)
-      (send (enc "quote" v nonce aik-0))))
-  (label 6)
-  (parent 5)
-  (unrealized (0 0) (4 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr pcr-0 mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))
-  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))
-    ((4 3) (1 0)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k pcr-0 aik-0)) (obsv pcr-0) (send v)))
-  (label 7)
-  (parent 5)
-  (unrealized (0 0) (4 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr pcr-0 nonce mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 aik-1 akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" k pcr-0 aik-0)) (aik aik-1))
-  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))
-    ((3 1) (5 1)) ((4 3) (1 0)) ((5 2) (4 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" k pcr-0 aik-0) (4 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k pcr-0 aik-0)) (obsv pcr-0) (send v))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" k pcr-0 aik-0))
-      (send (enc "quote" (enc "created" k pcr-0 aik-0) nonce aik-1))))
-  (label 8)
-  (parent 7)
-  (unrealized (0 0) (5 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n pcr)))
-    (k k) (aik aik))
-  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))
-    ((4 3) (1 0)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (displaced 5 3 tpm-create-key 2)
-    (enc "created" k pcr-0 aik-0) (4 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (obsv (hash "obtain" (hash n pcr))) (send v)))
-  (label 9)
-  (parent 7)
-  (unrealized (0 0) (4 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno tne-0 tno-0 data) (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 akey))
-  (deflistener (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n pcr)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n pcr))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (precedes ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5))
-    ((4 3) (1 0)) ((5 3) (4 2)))
-  (leadsto ((5 3) (4 2)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0))
-  (uniq-orig v n tno tne-0 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "obtain" (hash n pcr)) (4 2))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n pcr)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (obsv (hash "obtain" (hash n pcr))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n pcr) (hash "obtain" (hash n pcr)))))
-  (label 10)
-  (parent 9)
-  (unrealized (0 0) (5 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 3) (5 3)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash n state) (5 3))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state))))
-  (label 11)
-  (parent 10)
-  (unrealized (0 0) (6 2))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr
-      (hash esk-1
-        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-        tno-1 "false")) (aik aik-0))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 3) (5 3))
-    ((7 2) (6 2)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false") (6 2))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce))
-      (obsv
-        (hash esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false"))
-      (send
-        (enc "quote"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false") nonce aik-0))))
-  (label 12)
-  (parent 11)
-  (unrealized (0 0) (6 2) (7 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation encryption-test (displaced 7 2 alice 3)
-    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false") (6 2))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state))))
-  (label 13)
-  (parent 11)
-  (unrealized (0 0) (6 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener
-      (cat esk-1
-        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-        tno-1 "false"))
-    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false") (6 2))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false"))))
-  (label 14)
-  (parent 11)
-  (unrealized (0 0) (6 2) (7 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr
-      (hash esk-1
-        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-        tno-1 "false")) (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value esk-1)
-    (state
-      (cat (hash "execute transport" (hash "extend" (enc n esk-1)))
-        tne-1 tno-1 "false")) (tne tne-2) (tno tno-2) (esk esk-2)
-    (tpmkey tpmkey-2))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (8 3))
-    ((6 3) (5 3)) ((7 2) (6 2)) ((8 3) (7 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false") (7 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce))
-      (obsv
-        (hash esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false"))
-      (send
-        (enc "quote"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false") nonce aik-0)))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc esk-1 esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc esk-1 esk-2)))
-            tne-2 tno-2 "false")))
-      (tran
-        (cat (hash "execute transport" (hash "extend" (enc n esk-1)))
-          tne-1 tno-1 "false")
-        (hash esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false"))))
-  (label 15)
-  (parent 12)
-  (unrealized (0 0) (6 2) (8 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (contracted (tpmkey-1 tpmkey)) esk (6 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state))))
-  (label 16)
-  (parent 13)
-  (unrealized (0 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((2 0) (7 1)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (6 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (6 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce)) (obsv esk)
-      (send (enc "quote" esk nonce aik-0))))
-  (label 17)
-  (parent 13)
-  (unrealized (0 0) (7 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((2 0) (7 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)) ((7 3) (6 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (6 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))
-  (label 18)
-  (parent 13)
-  (unrealized (0 0) (7 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))
-    (aik aik-0))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 2) (7 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash "execute transport" (hash "extend" (enc n esk-1))) (7 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce
-          aik-0))))
-  (label 19)
-  (parent 14)
-  (unrealized (0 0) (6 2) (8 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener
-      (cat "execute transport" (hash "extend" (enc n esk-1))))
-    (hash "execute transport" (hash "extend" (enc n esk-1))) (7 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1))))))
-  (label 20)
-  (parent 14)
-  (unrealized (0 0) (6 2) (8 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (4 0))
-    ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik) (0 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send
-        (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))))
-  (label 21)
-  (parent 16)
-  (unrealized (7 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-    (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (4 0))
-    ((2 6) (7 1)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik) (0 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce))
-      (obsv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send
-        (enc "quote"
-          (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)
-          nonce aik-0))))
-  (label 22)
-  (parent 16)
-  (unrealized (7 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr nonce mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((2 0) (7 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)) ((7 3) (6 0)) ((8 2) (7 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" tpmkey pcr aik-0) (7 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))
-      (send
-        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))
-  (label 23)
-  (parent 18)
-  (unrealized (0 0) (8 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))
-    (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "execute transport")
-    (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)
-    (esk esk-2) (tpmkey tpmkey-2))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 2) (7 0)) ((9 3) (8 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((9 3) (8 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "execute transport" (hash "extend" (enc n esk-1))) (8 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce
-          aik-0)))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport"
-          (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"
-          (hash esk-2
-            (hash "execute transport"
-              (hash "extend" (enc "execute transport" esk-2))) tne-2
-            tno-2 "false")))
-      (tran (hash "extend" (enc n esk-1))
-        (hash "execute transport" (hash "extend" (enc n esk-1))))))
-  (label 24)
-  (parent 19)
-  (unrealized (0 0) (6 2) (9 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "extend" (enc n esk-1))) (aik aik-0))
-  (precedes ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 2) (8 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash "extend" (enc n esk-1)) (8 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))
-      (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0))))
-  (label 25)
-  (parent 20)
-  (unrealized (0 0) (6 2) (9 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (precedes ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener (cat "extend" (enc n esk-1)))
-    (hash "extend" (enc n esk-1)) (8 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))))
-  (label 26)
-  (parent 20)
-  (unrealized (0 0) (9 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 4) (3 0)) ((2 6) (4 0))
-    ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tne tno tne-0 tne-1 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "refuse" (hash n state)) (7 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state)))))
-  (label 27)
-  (parent 21)
-  (unrealized (8 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)
-    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 tpmkey-3 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))
-    (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "execute transport")
-    (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)
-    (esk esk-2) (tpmkey tpmkey-2))
-  (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))
-    (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))
-  (precedes ((2 2) (10 3)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 2) (7 0)) ((9 3) (8 1))
-    ((10 3) (9 3)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((9 3) (8 1)) ((10 3) (9 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 tne-3 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "extend" (enc n esk-1)) (9 3))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce
-          aik-0)))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport"
-          (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"
-          (hash esk-2
-            (hash "execute transport"
-              (hash "extend" (enc "execute transport" esk-2))) tne-2
-            tno-2 "false")))
-      (tran (hash "extend" (enc n esk-1))
-        (hash "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))
-      (send (cat "establish transport" tne-3))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "extend" esk-3))
-          tno-3 "false"
-          (hash esk-3
-            (hash "execute transport"
-              (hash "extend" (enc "extend" esk-3))) tne-3 tno-3
-            "false")))
-      (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))
-  (label 28)
-  (parent 24)
-  (unrealized (0 0) (6 2) (10 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "extend" (enc n esk-1))) (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))
-    (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (precedes ((2 2) (10 3)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 2) (8 0))
-    ((10 3) (9 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((10 3) (9 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "extend" (enc n esk-1)) (9 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))
-      (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0)))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "extend" esk-2))
-          tno-2 "false"
-          (hash esk-2
-            (hash "execute transport"
-              (hash "extend" (enc "extend" esk-2))) tne-2 tno-2
-            "false")))
-      (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))
-  (label 29)
-  (parent 25)
-  (unrealized (0 0) (6 2) (10 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (precedes ((2 0) (6 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (contracted (esk-1 esk)) n (9 0) (enc n esk))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-1
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-1
-            tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-1 tno-1 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-1 tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk)))))
-  (label 30)
-  (parent 26)
-  (unrealized (0 0) (6 0) (7 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr n) (aik aik-0))
-  (precedes ((2 2) (10 1)) ((2 4) (3 0)) ((2 6) (0 0)) ((2 6) (4 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (7 0))
-    ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0)) ((9 1) (8 0))
-    ((10 2) (9 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) n (9 0) (enc n esk))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1))))
-    ((recv (cat "quote" nonce)) (obsv n)
-      (send (enc "quote" n nonce aik-0))))
-  (label 31)
-  (parent 26)
-  (unrealized (0 0) (10 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (deflistener esk)
-  (precedes ((2 0) (10 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-listener esk) n (9 0) (enc n esk))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk)))
-  (label 32)
-  (parent 26)
-  (unrealized (0 0) (10 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 3) (8 3)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash n state) (8 3))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state))))
-  (label 33)
-  (parent 27)
-  (unrealized (9 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 0) (10 1)) ((2 2) (9 0)) ((2 4) (3 0))
-    ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2))
-    ((8 1) (7 0)) ((9 1) (8 0)) ((10 2) (7 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (7 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-1
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-1
-            tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-1 tno-1 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-1 tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "quote" nonce)) (obsv esk)
-      (send (enc "quote" esk nonce aik-0))))
-  (label 34)
-  (parent 30)
-  (unrealized (0 0) (6 0) (10 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 2) (9 0)) ((2 4) (3 0))
-    ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2))
-    ((8 1) (7 0)) ((9 1) (8 0)) ((10 3) (7 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (7 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-1
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-1
-            tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-1 tno-1 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-1 tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))
-  (label 35)
-  (parent 30)
-  (unrealized (0 0) (6 0) (10 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((2 0) (11 1)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 1) (9 0)) ((11 2) (10 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (10 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))
-    ((recv (cat "quote" nonce)) (obsv esk)
-      (send (enc "quote" esk nonce aik-0))))
-  (label 36)
-  (parent 32)
-  (unrealized (0 0) (11 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((2 0) (11 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 1) (9 0)) ((11 3) (10 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (10 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))
-  (label 37)
-  (parent 32)
-  (unrealized (0 0) (11 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr
-      (hash esk-2
-        (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-        tno-2 "false")) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 3) (8 3)) ((10 2) (9 2)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false") (9 2))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce))
-      (obsv
-        (hash esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false"))
-      (send
-        (enc "quote"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false") nonce aik-0))))
-  (label 38)
-  (parent 33)
-  (unrealized (9 2) (10 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test
-    (added-listener
-      (cat esk-2
-        (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-        tno-2 "false"))
-    (hash esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false") (9 2))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false"))))
-  (label 39)
-  (parent 33)
-  (unrealized (9 2) (10 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state pcr nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 data) (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((2 0) (6 0)) ((2 0) (10 0)) ((2 2) (9 0)) ((2 4) (3 0))
-    ((2 6) (0 0)) ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2))
-    ((8 1) (7 0)) ((9 1) (8 0)) ((10 3) (7 0)) ((11 2) (10 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" tpmkey pcr aik-0) (10 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-1
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-1
-            tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-1 tno-1 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-1 tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))
-      (send
-        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))
-  (label 40)
-  (parent 35)
-  (unrealized (0 0) (6 0) (11 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((2 0) (11 0)) ((2 2) (9 0)) ((2 4) (3 0)) ((2 6) (0 0))
-    ((2 6) (4 0)) ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2))
-    ((6 1) (7 0)) ((6 3) (5 3)) ((7 1) (6 2)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 1) (9 0)) ((11 3) (10 0)) ((12 2) (11 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" tpmkey pcr aik-0) (11 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))
-      (send
-        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))
-  (label 41)
-  (parent 37)
-  (unrealized (0 0) (12 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)
-    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr
-      (hash esk-2
-        (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-        tno-2 "false")) (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value esk-2)
-    (state
-      (cat (hash "execute transport" (hash "extend" (enc n esk-2)))
-        tne-2 tno-2 "false")) (tne tne-3) (tno tno-3) (esk esk-3)
-    (tpmkey tpmkey-3))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (11 3)) ((9 3) (8 3)) ((10 2) (9 2))
-    ((11 3) (10 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))
-    ((11 3) (10 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false") (10 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce))
-      (obsv
-        (hash esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false"))
-      (send
-        (enc "quote"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false") nonce aik-0)))
-    ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))
-      (send (cat "establish transport" tne-3))
-      (recv
-        (cat "execute transport" (cat "extend" (enc esk-2 esk-3)) tno-3
-          "false"
-          (hash esk-3
-            (hash "execute transport" (hash "extend" (enc esk-2 esk-3)))
-            tne-3 tno-3 "false")))
-      (tran
-        (cat (hash "execute transport" (hash "extend" (enc n esk-2)))
-          tne-2 tno-2 "false")
-        (hash esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false"))))
-  (label 42)
-  (parent 38)
-  (unrealized (9 2) (11 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-2))))
-    (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 2) (10 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash "execute transport" (hash "extend" (enc n esk-2))) (10 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-2))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-2))) nonce
-          aik-0))))
-  (label 43)
-  (parent 39)
-  (unrealized (9 2) (11 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 1) (10 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test
-    (added-listener
-      (cat "execute transport" (hash "extend" (enc n esk-2))))
-    (hash "execute transport" (hash "extend" (enc n esk-2))) (10 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-2))))))
-  (label 44)
-  (parent 39)
-  (unrealized (9 2) (11 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)
-    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-2))))
-    (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "execute transport")
-    (state (hash "extend" (enc n esk-2))) (tne tne-3) (tno tno-3)
-    (esk esk-3) (tpmkey tpmkey-3))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 2) (10 0)) ((12 3) (11 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))
-    ((12 3) (11 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "execute transport" (hash "extend" (enc n esk-2))) (11 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-2))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-2))) nonce
-          aik-0)))
-    ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))
-      (send (cat "establish transport" tne-3))
-      (recv
-        (cat "execute transport"
-          (cat "extend" (enc "execute transport" esk-3)) tno-3 "false"
-          (hash esk-3
-            (hash "execute transport"
-              (hash "extend" (enc "execute transport" esk-3))) tne-3
-            tno-3 "false")))
-      (tran (hash "extend" (enc n esk-2))
-        (hash "execute transport" (hash "extend" (enc n esk-2))))))
-  (label 45)
-  (parent 43)
-  (unrealized (9 2) (12 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "extend" (enc n esk-2))) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (9 2)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 1) (10 0)) ((12 2) (11 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash "extend" (enc n esk-2)) (11 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))
-    ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-2)))
-      (send (enc "quote" (hash "extend" (enc n esk-2)) nonce aik-0))))
-  (label 46)
-  (parent 44)
-  (unrealized (9 2) (12 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))
-  (deflistener (cat "extend" (enc n esk-2)))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (12 0)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 1) (10 0)) ((12 1) (11 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test
-    (added-listener (cat "extend" (enc n esk-2)))
-    (hash "extend" (enc n esk-2)) (11 0))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))
-    ((recv (cat "extend" (enc n esk-2)))
-      (send (cat "extend" (enc n esk-2)))))
-  (label 47)
-  (parent 44)
-  (unrealized (12 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 tne-4
-      tno-4 data) (esk1 esk esk-0 esk-1 esk-2 esk-3 esk-4 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 tpmkey-4
-      akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-2))))
-    (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "execute transport")
-    (state (hash "extend" (enc n esk-2))) (tne tne-3) (tno tno-3)
-    (esk esk-3) (tpmkey tpmkey-3))
-  (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-2))
-    (tne tne-4) (tno tno-4) (esk esk-4) (tpmkey tpmkey-4))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (13 3)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 2) (10 0)) ((12 3) (11 1)) ((13 3) (12 3)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))
-    ((12 3) (11 1)) ((13 3) (12 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3) (invk tpmkey-4))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 tne-4 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "extend" (enc n esk-2)) (12 3))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-2))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-2))) nonce
-          aik-0)))
-    ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))
-      (send (cat "establish transport" tne-3))
-      (recv
-        (cat "execute transport"
-          (cat "extend" (enc "execute transport" esk-3)) tno-3 "false"
-          (hash esk-3
-            (hash "execute transport"
-              (hash "extend" (enc "execute transport" esk-3))) tne-3
-            tno-3 "false")))
-      (tran (hash "extend" (enc n esk-2))
-        (hash "execute transport" (hash "extend" (enc n esk-2)))))
-    ((recv (cat "establish transport" tpmkey-4 (enc esk-4 tpmkey-4)))
-      (send (cat "establish transport" tne-4))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "extend" esk-4))
-          tno-4 "false"
-          (hash esk-4
-            (hash "execute transport"
-              (hash "extend" (enc "extend" esk-4))) tne-4 tno-4
-            "false")))
-      (tran (enc n esk-2) (hash "extend" (enc n esk-2)))))
-  (label 48)
-  (parent 45)
-  (unrealized (9 2) (13 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)
-    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 tpmkey-3 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "extend" (enc n esk-2))) (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-2))
-    (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (13 3)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 1) (10 0)) ((12 2) (11 0)) ((13 3) (12 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3))
-    ((13 3) (12 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 tne-3 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "extend" (enc n esk-2)) (12 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))
-    ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-2)))
-      (send (enc "quote" (hash "extend" (enc n esk-2)) nonce aik-0)))
-    ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))
-      (send (cat "establish transport" tne-3))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "extend" esk-3))
-          tno-3 "false"
-          (hash esk-3
-            (hash "execute transport"
-              (hash "extend" (enc "extend" esk-3))) tne-3 tno-3
-            "false")))
-      (tran (enc n esk-2) (hash "extend" (enc n esk-2)))))
-  (label 49)
-  (parent 46)
-  (unrealized (9 2) (13 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 2) (6 2)) ((2 2) (12 0))
-    ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))
-    ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))
-    ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))
-    ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (contracted (esk-2 esk)) n (12 0) (enc n esk))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-2
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-2
-            tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-2 tno-2 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-2 tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk)))))
-  (label 50)
-  (parent 47)
-  (unrealized (9 0) (10 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))
-  (deflistener (cat "extend" (enc n esk-2)))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr n) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 2) (6 2)) ((2 2) (13 1)) ((2 4) (3 0))
-    ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5)) ((4 3) (1 0))
-    ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3)) ((7 2) (0 0))
-    ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3)) ((10 1) (9 2))
-    ((11 1) (10 0)) ((12 1) (11 0)) ((13 2) (12 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) n (12 0) (enc n esk))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))
-    ((recv (cat "extend" (enc n esk-2)))
-      (send (cat "extend" (enc n esk-2))))
-    ((recv (cat "quote" nonce)) (obsv n)
-      (send (enc "quote" n nonce aik-0))))
-  (label 51)
-  (parent 47)
-  (unrealized (13 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))
-  (deflistener (cat "extend" (enc n esk-2)))
-  (deflistener esk)
-  (precedes ((2 0) (6 0)) ((2 0) (13 0)) ((2 2) (6 2)) ((2 2) (12 0))
-    ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))
-    ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))
-    ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))
-    ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (added-listener esk) n (12 0) (enc n esk))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))
-    ((recv (cat "extend" (enc n esk-2)))
-      (send (cat "extend" (enc n esk-2)))) ((recv esk) (send esk)))
-  (label 52)
-  (parent 47)
-  (unrealized (13 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 0) (13 1)) ((2 2) (6 2))
-    ((2 2) (12 0)) ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1))
-    ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0))
-    ((9 3) (8 3)) ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0))
-    ((13 2) (10 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (10 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-2
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-2
-            tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-2 tno-2 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-2 tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "quote" nonce)) (obsv esk)
-      (send (enc "quote" esk nonce aik-0))))
-  (label 53)
-  (parent 50)
-  (unrealized (9 0) (13 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 0) (13 0)) ((2 2) (6 2))
-    ((2 2) (12 0)) ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1))
-    ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0))
-    ((9 3) (8 3)) ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0))
-    ((13 3) (10 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (10 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-2
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-2
-            tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-2 tno-2 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-2 tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))
-  (label 54)
-  (parent 50)
-  (unrealized (9 0) (13 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))
-  (deflistener (cat "extend" (enc n esk-2)))
-  (deflistener esk)
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 0) (14 1)) ((2 2) (6 2)) ((2 2) (12 0))
-    ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))
-    ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))
-    ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))
-    ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0))
-    ((14 2) (13 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (13 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))
-    ((recv (cat "extend" (enc n esk-2)))
-      (send (cat "extend" (enc n esk-2)))) ((recv esk) (send esk))
-    ((recv (cat "quote" nonce)) (obsv esk)
-      (send (enc "quote" esk nonce aik-0))))
-  (label 55)
-  (parent 52)
-  (unrealized (14 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))
-  (deflistener (cat "extend" (enc n esk-2)))
-  (deflistener esk)
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((2 0) (6 0)) ((2 0) (14 0)) ((2 2) (6 2)) ((2 2) (12 0))
-    ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))
-    ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))
-    ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))
-    ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0))
-    ((14 3) (13 0)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (13 0)
-    (enc esk tpmkey))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))
-    ((recv (cat "extend" (enc n esk-2)))
-      (send (cat "extend" (enc n esk-2)))) ((recv esk) (send esk))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))
-  (label 56)
-  (parent 52)
-  (unrealized (14 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state pcr nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 aik-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 0) (13 0)) ((2 2) (6 2))
-    ((2 2) (12 0)) ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0))
-    ((3 1) (2 5)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1))
-    ((6 3) (5 3)) ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0))
-    ((9 3) (8 3)) ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0))
-    ((13 3) (10 0)) ((14 2) (13 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" tpmkey pcr aik-0) (13 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-2
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-2
-            tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-2 tno-2 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-2 tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))
-      (send
-        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))
-  (label 57)
-  (parent 54)
-  (unrealized (9 0) (14 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 tpmkey-2 aik-0 aik-1 akey))
-  (deflistener
-    (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce (enc v k))
-    (pcr (hash "refuse" (hash n state))) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "refuse") (state (hash n state))
-    (tne tne-1) (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-2)
-    (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (deflistener
-    (cat esk-2 (hash "execute transport" (hash "extend" (enc n esk-2)))
-      tne-2 tno-2 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-2))))
-  (deflistener (cat "extend" (enc n esk-2)))
-  (deflistener esk)
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((2 0) (6 0)) ((2 0) (14 0)) ((2 2) (6 2)) ((2 2) (12 0))
-    ((2 4) (3 0)) ((2 6) (4 0)) ((2 6) (7 0)) ((3 1) (2 5))
-    ((4 3) (1 0)) ((5 3) (4 2)) ((6 1) (2 1)) ((6 3) (5 3))
-    ((7 2) (0 0)) ((8 3) (7 1)) ((9 1) (10 0)) ((9 3) (8 3))
-    ((10 1) (9 2)) ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0))
-    ((14 3) (13 0)) ((15 2) (14 1)))
-  (leadsto ((5 3) (4 2)) ((6 3) (5 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tne tno tne-0 tne-1 tne-2 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" tpmkey pcr aik-0) (14 1))
-  (traces
-    ((recv (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" (enc v k)))
-      (obsv (hash "refuse" (hash n state)))
-      (send (enc "quote" (hash "refuse" (hash n state)) (enc v k) aik)))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "refuse" esk-1))
-          tno-1 "false"
-          (hash esk-1
-            (hash "execute transport"
-              (hash "extend" (enc "refuse" esk-1))) tne-1 tno-1
-            "false")))
-      (tran (hash n state) (hash "refuse" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc n esk-2)))
-            tne-2 tno-2 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-2
-         (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-         tno-2 "false"))
-      (send
-        (cat esk-2
-          (hash "execute transport" (hash "extend" (enc n esk-2))) tne-2
-          tno-2 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-2))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-2)))))
-    ((recv (cat "extend" (enc n esk-2)))
-      (send (cat "extend" (enc n esk-2)))) ((recv esk) (send esk))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))
-      (send
-        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))
-  (label 58)
-  (parent 56)
-  (unrealized (15 1))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol envelope basic
-  (defrole tpm-power-on (vars) (trace (init "0")))
-  (defrole tpm-quote
-    (vars (nonce pcr mesg) (aik akey))
-    (trace (recv (cat "quote" nonce)) (obsv pcr)
-      (send (enc "quote" pcr nonce aik)))
-    (non-orig aik))
-  (defrole tpm-extend-enc
-    (vars (value state mesg) (esk skey) (tne tno data) (tpmkey akey))
-    (trace (recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc value esk)) tno
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc value esk)))
-            tne tno "false"))) (tran state (hash value state)))
-    (non-orig (invk tpmkey))
-    (uniq-orig tne))
-  (defrole tpm-create-key
-    (vars (k aik akey) (pcr mesg) (esk skey))
-    (trace (recv (enc "create key" pcr esk))
-      (send (enc "created" k pcr aik)))
-    (non-orig (invk k) aik esk)
-    (uniq-orig k))
-  (defrole tpm-decrypt
-    (vars (m pcr mesg) (k aik akey))
-    (trace (recv (cat "decrypt" (enc m k)))
-      (recv (enc "created" k pcr aik)) (obsv pcr) (send m))
-    (non-orig aik))
-  (defrole alice
-    (vars (v n tne tno data) (esk1 esk skey) (k aik tpmkey akey)
-      (pcr mesg))
-    (trace (send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    (non-orig aik esk1 (invk tpmkey))
-    (uniq-orig v n tno esk)
-    (neq (tno n))))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (neq (tno n))
-  (non-orig esk1 aik (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k))))
-  (label 59)
-  (unrealized (0 0) (1 5))
-  (preskeleton)
-  (origs (esk (1 0)) (n (1 2)) (tno (1 2)) (v (1 6)))
-  (comment "Not a skeleton"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (precedes ((1 6) (0 0)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k))))
-  (label 60)
-  (parent 59)
-  (unrealized (1 5))
-  (origs (esk (1 0)) (n (1 2)) (tno (1 2)) (v (1 6)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" k (hash "obtain" (hash n pcr)) aik))
-    (aik aik-0))
-  (precedes ((1 6) (0 0)) ((2 2) (1 5)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk tpmkey))
-  (uniq-orig v n tno esk)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" k (hash "obtain" (hash n pcr)) aik) (1 5))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (cat "quote" nonce))
-      (obsv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send
-        (enc "quote" (enc "created" k (hash "obtain" (hash n pcr)) aik)
-          nonce aik-0))))
-  (label 61)
-  (parent 60)
-  (unrealized (2 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk esk-0 skey)
-    (k aik tpmkey akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk-0) (k k) (aik aik))
-  (precedes ((1 6) (0 0)) ((2 1) (1 5)))
-  (neq (tno n))
-  (non-orig esk1 esk-0 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-create-key 2)
-    (enc "created" k (hash "obtain" (hash n pcr)) aik) (1 5))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))
-  (label 62)
-  (parent 60)
-  (unrealized (0 0) (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk esk-0 skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk-0) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-    (aik aik-0))
-  (precedes ((1 6) (0 0)) ((2 1) (1 5)) ((3 2) (2 0)))
-  (neq (tno n))
-  (non-orig esk1 esk-0 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (2 0))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "quote" nonce))
-      (obsv (enc "create key" (hash "obtain" (hash n pcr)) esk-0))
-      (send
-        (enc "quote"
-          (enc "create key" (hash "obtain" (hash n pcr)) esk-0) nonce
-          aik-0))))
-  (label 63)
-  (parent 62)
-  (unrealized (0 0) (3 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (precedes ((1 4) (2 0)) ((1 6) (0 0)) ((2 1) (1 5)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (displaced 3 1 alice 5)
-    (enc "create key" (hash "obtain" (hash n pcr)) esk-0) (2 0))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik))))
-  (label 64)
-  (parent 62)
-  (unrealized (0 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr nonce mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr v) (aik aik-0))
-  (precedes ((1 4) (2 0)) ((1 6) (3 1)) ((2 1) (1 5)) ((3 2) (0 0)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation nonce-test (added-strand tpm-quote 3) v (0 0) (enc v k))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "quote" nonce)) (obsv v)
-      (send (enc "quote" v nonce aik-0))))
-  (label 65)
-  (parent 64)
-  (unrealized (3 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr pcr-0 mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))
-  (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k pcr-0 aik-0)) (obsv pcr-0) (send v)))
-  (label 66)
-  (parent 64)
-  (unrealized (3 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr pcr-0 nonce mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey aik-0 aik-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr pcr-0) (k k) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" k pcr-0 aik-0)) (aik aik-1))
-  (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((2 1) (4 1))
-    ((3 3) (0 0)) ((4 2) (3 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" k pcr-0 aik-0) (3 1))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k pcr-0 aik-0)) (obsv pcr-0) (send v))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" k pcr-0 aik-0))
-      (send (enc "quote" (enc "created" k pcr-0 aik-0) nonce aik-1))))
-  (label 67)
-  (parent 66)
-  (unrealized (4 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno data) (esk1 esk skey)
-    (k aik tpmkey akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n pcr)))
-    (k k) (aik aik))
-  (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey))
-  (uniq-orig v n tno esk k)
-  (operation encryption-test (displaced 4 2 tpm-create-key 2)
-    (enc "created" k pcr-0 aik-0) (3 1))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (obsv (hash "obtain" (hash n pcr))) (send v)))
-  (label 68)
-  (parent 66)
-  (unrealized (3 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (pcr mesg) (v n tne tno tne-0 tno-0 data) (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr pcr) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n pcr)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n pcr)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n pcr))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (precedes ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0))
-    ((4 3) (3 2)))
-  (leadsto ((4 3) (3 2)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0))
-  (uniq-orig v n tno tne-0 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "obtain" (hash n pcr)) (3 2))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv pcr)
-      (send (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n pcr)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n pcr)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n pcr)) aik))
-      (obsv (hash "obtain" (hash n pcr))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n pcr) (hash "obtain" (hash n pcr)))))
-  (label 69)
-  (parent 68)
-  (unrealized (4 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 3) (4 3)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash n state) (4 3))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state))))
-  (label 70)
-  (parent 69)
-  (unrealized (5 2))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr
-      (hash esk-1
-        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-        tno-1 "false")) (aik aik-0))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 3) (4 3)) ((6 2) (5 2)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false") (5 2))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce))
-      (obsv
-        (hash esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false"))
-      (send
-        (enc "quote"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false") nonce aik-0))))
-  (label 71)
-  (parent 70)
-  (unrealized (5 2) (6 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (precedes ((1 0) (5 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))
-    ((5 3) (4 3)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation encryption-test (displaced 6 1 alice 3)
-    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false") (5 2))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state))))
-  (label 72)
-  (parent 70)
-  (unrealized (5 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener
-      (cat esk-1
-        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-        tno-1 "false"))
-    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false") (5 2))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false"))))
-  (label 73)
-  (parent 70)
-  (unrealized (5 2) (6 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr
-      (hash esk-1
-        (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-        tno-1 "false")) (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value esk-1)
-    (state
-      (cat (hash "execute transport" (hash "extend" (enc n esk-1)))
-        tne-1 tno-1 "false")) (tne tne-2) (tno tno-2) (esk esk-2)
-    (tpmkey tpmkey-2))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (7 3)) ((5 3) (4 3))
-    ((6 2) (5 2)) ((7 3) (6 1)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((7 3) (6 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false") (6 1))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce))
-      (obsv
-        (hash esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false"))
-      (send
-        (enc "quote"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false") nonce aik-0)))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc esk-1 esk-2)) tno-2
-          "false"
-          (hash esk-2
-            (hash "execute transport" (hash "extend" (enc esk-1 esk-2)))
-            tne-2 tno-2 "false")))
-      (tran
-        (cat (hash "execute transport" (hash "extend" (enc n esk-1)))
-          tne-1 tno-1 "false")
-        (hash esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false"))))
-  (label 74)
-  (parent 71)
-  (unrealized (5 2) (7 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey))
-  (precedes ((1 0) (5 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))
-    ((5 3) (4 3)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (contracted (tpmkey-1 tpmkey)) esk (5 0)
-    (enc esk tpmkey))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state))))
-  (label 75)
-  (parent 72)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((v v) (n n) (tne tne) (tno tno) (esk1 esk1) (esk esk) (k k)
-        (aik aik) (tpmkey tpmkey) (pcr state))))
-  (origs (n (1 2)) (tno (1 2)) (esk (1 0)) (tne (5 1)) (tne-0 (4 1))
-    (k (2 1)) (v (1 6))))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((1 0) (6 1)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))
-    ((5 3) (4 3)) ((6 2) (5 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (5 0)
-    (enc esk tpmkey))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "quote" nonce)) (obsv esk)
-      (send (enc "quote" esk nonce aik-0))))
-  (label 76)
-  (parent 72)
-  (unrealized (6 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((1 0) (6 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))
-    ((5 3) (4 3)) ((6 3) (5 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (5 0)
-    (enc esk tpmkey))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))
-  (label 77)
-  (parent 72)
-  (unrealized (6 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))
-    (aik aik-0))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 2) (6 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash "execute transport" (hash "extend" (enc n esk-1))) (6 0))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce
-          aik-0))))
-  (label 78)
-  (parent 73)
-  (unrealized (5 2) (7 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 1) (6 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener
-      (cat "execute transport" (hash "extend" (enc n esk-1))))
-    (hash "execute transport" (hash "extend" (enc n esk-1))) (6 0))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1))))))
-  (label 79)
-  (parent 73)
-  (unrealized (5 2) (7 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state pcr nonce mesg) (v n tne tno tne-0 tno-0 data)
-    (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne)
-    (tno tno) (esk esk) (tpmkey tpmkey-1))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((1 0) (6 0)) ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (1 1))
-    ((5 3) (4 3)) ((6 3) (5 0)) ((7 2) (6 1)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tne tno tne-0 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" tpmkey pcr aik-0) (6 1))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (tran state (hash n state)))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))
-      (send
-        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))
-  (label 80)
-  (parent 77)
-  (unrealized (7 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))
-    (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "execute transport")
-    (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)
-    (esk esk-2) (tpmkey tpmkey-2))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 2) (6 0)) ((8 3) (7 1)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((8 3) (7 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "execute transport" (hash "extend" (enc n esk-1))) (7 1))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce
-          aik-0)))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport"
-          (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"
-          (hash esk-2
-            (hash "execute transport"
-              (hash "extend" (enc "execute transport" esk-2))) tne-2
-            tno-2 "false")))
-      (tran (hash "extend" (enc n esk-1))
-        (hash "execute transport" (hash "extend" (enc n esk-1))))))
-  (label 81)
-  (parent 78)
-  (unrealized (5 2) (8 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "extend" (enc n esk-1))) (aik aik-0))
-  (precedes ((1 2) (5 2)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 1) (6 0)) ((8 2) (7 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (hash "extend" (enc n esk-1)) (7 0))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))
-      (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0))))
-  (label 82)
-  (parent 79)
-  (unrealized (5 2) (8 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (precedes ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test
-    (added-listener (cat "extend" (enc n esk-1)))
-    (hash "extend" (enc n esk-1)) (7 0))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))))
-  (label 83)
-  (parent 79)
-  (unrealized (8 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 tne-3 tno-3 data)
-    (esk1 esk esk-0 esk-1 esk-2 esk-3 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 tpmkey-3 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "execute transport" (hash "extend" (enc n esk-1))))
-    (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "execute transport")
-    (state (hash "extend" (enc n esk-1))) (tne tne-2) (tno tno-2)
-    (esk esk-2) (tpmkey tpmkey-2))
-  (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))
-    (tne tne-3) (tno tno-3) (esk esk-3) (tpmkey tpmkey-3))
-  (precedes ((1 2) (9 3)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 2) (6 0)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((8 3) (7 1)) ((9 3) (8 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2) (invk tpmkey-3))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 tne-3 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "extend" (enc n esk-1)) (8 3))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "quote" nonce))
-      (obsv (hash "execute transport" (hash "extend" (enc n esk-1))))
-      (send
-        (enc "quote"
-          (hash "execute transport" (hash "extend" (enc n esk-1))) nonce
-          aik-0)))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport"
-          (cat "extend" (enc "execute transport" esk-2)) tno-2 "false"
-          (hash esk-2
-            (hash "execute transport"
-              (hash "extend" (enc "execute transport" esk-2))) tne-2
-            tno-2 "false")))
-      (tran (hash "extend" (enc n esk-1))
-        (hash "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "establish transport" tpmkey-3 (enc esk-3 tpmkey-3)))
-      (send (cat "establish transport" tne-3))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "extend" esk-3))
-          tno-3 "false"
-          (hash esk-3
-            (hash "execute transport"
-              (hash "extend" (enc "extend" esk-3))) tne-3 tno-3
-            "false")))
-      (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))
-  (label 84)
-  (parent 81)
-  (unrealized (5 2) (9 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 tne-2 tno-2 data)
-    (esk1 esk esk-0 esk-1 esk-2 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 tpmkey-2 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (hash "extend" (enc n esk-1))) (aik aik-0))
-  (defstrand tpm-extend-enc 4 (value "extend") (state (enc n esk-1))
-    (tne tne-2) (tno tno-2) (esk esk-2) (tpmkey tpmkey-2))
-  (precedes ((1 2) (9 3)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 1) (6 0)) ((8 2) (7 0)) ((9 3) (8 1)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)) ((9 3) (8 1)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1) (invk tpmkey-2))
-  (uniq-orig v n tno tne-0 tne-1 tne-2 esk k)
-  (operation state-passing-test (added-strand tpm-extend-enc 4)
-    (hash "extend" (enc n esk-1)) (8 1))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "quote" nonce)) (obsv (hash "extend" (enc n esk-1)))
-      (send (enc "quote" (hash "extend" (enc n esk-1)) nonce aik-0)))
-    ((recv (cat "establish transport" tpmkey-2 (enc esk-2 tpmkey-2)))
-      (send (cat "establish transport" tne-2))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "extend" esk-2))
-          tno-2 "false"
-          (hash esk-2
-            (hash "execute transport"
-              (hash "extend" (enc "extend" esk-2))) tne-2 tno-2
-            "false")))
-      (tran (enc n esk-1) (hash "extend" (enc n esk-1)))))
-  (label 85)
-  (parent 82)
-  (unrealized (5 2) (9 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (precedes ((1 0) (5 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))
-    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (contracted (esk-1 esk)) n (8 0) (enc n esk))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-1
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-1
-            tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-1 tno-1 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-1 tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk)))))
-  (label 86)
-  (parent 83)
-  (unrealized (5 0) (6 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr n) (aik aik-0))
-  (precedes ((1 2) (9 1)) ((1 4) (2 0)) ((1 6) (3 0)) ((2 1) (1 5))
-    ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0)) ((5 3) (4 3))
-    ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0)) ((9 2) (8 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) n (8 0) (enc n esk))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1))))
-    ((recv (cat "quote" nonce)) (obsv n)
-      (send (enc "quote" n nonce aik-0))))
-  (label 87)
-  (parent 83)
-  (unrealized (9 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey) (k aik tpmkey tpmkey-0 tpmkey-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (deflistener esk)
-  (precedes ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))
-    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-listener esk) n (8 0) (enc n esk))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk)))
-  (label 88)
-  (parent 83)
-  (unrealized (9 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((1 0) (5 0)) ((1 0) (9 1)) ((1 2) (8 0)) ((1 4) (2 0))
-    ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2))
-    ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))
-    ((8 1) (7 0)) ((9 2) (6 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (6 0)
-    (enc esk tpmkey))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-1
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-1
-            tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-1 tno-1 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-1 tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "quote" nonce)) (obsv esk)
-      (send (enc "quote" esk nonce aik-0))))
-  (label 89)
-  (parent 86)
-  (unrealized (5 0) (9 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 skey) (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((1 0) (5 0)) ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0))
-    ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2))
-    ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))
-    ((8 1) (7 0)) ((9 3) (6 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (6 0)
-    (enc esk tpmkey))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-1
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-1
-            tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-1 tno-1 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-1 tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))
-  (label 90)
-  (parent 86)
-  (unrealized (5 0) (9 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state nonce mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-quote 3 (nonce nonce) (pcr esk) (aik aik-0))
-  (precedes ((1 0) (10 1)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))
-    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 2) (9 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-quote 3) esk (9 0)
-    (enc esk tpmkey))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))
-    ((recv (cat "quote" nonce)) (obsv esk)
-      (send (enc "quote" esk nonce aik-0))))
-  (label 91)
-  (parent 88)
-  (unrealized (10 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr mesg) (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (precedes ((1 0) (10 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))
-    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 3) (9 0)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation nonce-test (added-strand tpm-decrypt 4) esk (9 0)
-    (enc esk tpmkey))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk)))
-  (label 92)
-  (parent 88)
-  (unrealized (10 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton envelope
-  (vars (state pcr nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 data) (esk1 esk esk-0 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk))))
-  (deflistener (cat "extend" (enc n esk)))
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((1 0) (5 0)) ((1 0) (9 0)) ((1 2) (8 0)) ((1 4) (2 0))
-    ((1 6) (3 0)) ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2))
-    ((5 1) (6 0)) ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0))
-    ((8 1) (7 0)) ((9 3) (6 0)) ((10 2) (9 1)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" tpmkey pcr aik-0) (9 1))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk)) tno-1
-          "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne-1
-            tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-         tne-1 tno-1 "false"))
-      (send
-        (cat esk (hash "execute transport" (hash "extend" (enc n esk)))
-          tne-1 tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk))))
-      (send (cat "execute transport" (hash "extend" (enc n esk)))))
-    ((recv (cat "extend" (enc n esk)))
-      (send (cat "extend" (enc n esk))))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))
-      (send
-        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))
-  (label 93)
-  (parent 90)
-  (unrealized (5 0) (10 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton envelope
-  (vars (state pcr nonce mesg)
-    (v n tne tno tne-0 tno-0 tne-1 tno-1 data)
-    (esk1 esk esk-0 esk-1 skey)
-    (k aik tpmkey tpmkey-0 tpmkey-1 aik-0 aik-1 akey))
-  (deflistener v)
-  (defstrand alice 7 (pcr state) (v v) (n n) (tne tne) (tno tno)
-    (esk1 esk1) (esk esk) (k k) (aik aik) (tpmkey tpmkey))
-  (defstrand tpm-create-key 2 (pcr (hash "obtain" (hash n state)))
-    (esk esk1) (k k) (aik aik))
-  (defstrand tpm-decrypt 4 (m v) (pcr (hash "obtain" (hash n state)))
-    (k k) (aik aik))
-  (defstrand tpm-extend-enc 4 (value "obtain") (state (hash n state))
-    (tne tne-0) (tno tno-0) (esk esk-0) (tpmkey tpmkey-0))
-  (defstrand tpm-extend-enc 4 (value n) (state state) (tne tne-1)
-    (tno tno-1) (esk esk-1) (tpmkey tpmkey-1))
-  (deflistener
-    (cat esk-1 (hash "execute transport" (hash "extend" (enc n esk-1)))
-      tne-1 tno-1 "false"))
-  (deflistener (cat "execute transport" (hash "extend" (enc n esk-1))))
-  (deflistener (cat "extend" (enc n esk-1)))
-  (deflistener esk)
-  (defstrand tpm-decrypt 4 (m esk) (pcr pcr) (k tpmkey) (aik aik-0))
-  (defstrand tpm-quote 3 (nonce nonce)
-    (pcr (enc "created" tpmkey pcr aik-0)) (aik aik-1))
-  (precedes ((1 0) (10 0)) ((1 2) (8 0)) ((1 4) (2 0)) ((1 6) (3 0))
-    ((2 1) (1 5)) ((3 3) (0 0)) ((4 3) (3 2)) ((5 1) (6 0))
-    ((5 3) (4 3)) ((6 1) (5 2)) ((7 1) (6 0)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 3) (9 0)) ((11 2) (10 1)))
-  (leadsto ((4 3) (3 2)) ((5 3) (4 3)))
-  (neq (tno n))
-  (non-orig esk1 aik aik-0 aik-1 (invk k) (invk tpmkey) (invk tpmkey-0)
-    (invk tpmkey-1))
-  (uniq-orig v n tno tne-0 tne-1 esk k)
-  (operation encryption-test (added-strand tpm-quote 3)
-    (enc "created" tpmkey pcr aik-0) (10 1))
-  (traces ((recv v) (send v))
-    ((send (cat "establish transport" tpmkey (enc esk tpmkey)))
-      (recv (cat "establish transport" tne))
-      (send
-        (cat "execute transport" (cat "extend" (enc n esk)) tno "false"
-          (hash esk
-            (hash "execute transport" (hash "extend" (enc n esk))) tne
-            tno "false"))) (recv state)
-      (send (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (send (enc v k)))
-    ((recv (enc "create key" (hash "obtain" (hash n state)) esk1))
-      (send (enc "created" k (hash "obtain" (hash n state)) aik)))
-    ((recv (cat "decrypt" (enc v k)))
-      (recv (enc "created" k (hash "obtain" (hash n state)) aik))
-      (obsv (hash "obtain" (hash n state))) (send v))
-    ((recv (cat "establish transport" tpmkey-0 (enc esk-0 tpmkey-0)))
-      (send (cat "establish transport" tne-0))
-      (recv
-        (cat "execute transport" (cat "extend" (enc "obtain" esk-0))
-          tno-0 "false"
-          (hash esk-0
-            (hash "execute transport"
-              (hash "extend" (enc "obtain" esk-0))) tne-0 tno-0
-            "false")))
-      (tran (hash n state) (hash "obtain" (hash n state))))
-    ((recv (cat "establish transport" tpmkey-1 (enc esk-1 tpmkey-1)))
-      (send (cat "establish transport" tne-1))
-      (recv
-        (cat "execute transport" (cat "extend" (enc n esk-1)) tno-1
-          "false"
-          (hash esk-1
-            (hash "execute transport" (hash "extend" (enc n esk-1)))
-            tne-1 tno-1 "false"))) (tran state (hash n state)))
-    ((recv
-       (cat esk-1
-         (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-         tno-1 "false"))
-      (send
-        (cat esk-1
-          (hash "execute transport" (hash "extend" (enc n esk-1))) tne-1
-          tno-1 "false")))
-    ((recv (cat "execute transport" (hash "extend" (enc n esk-1))))
-      (send (cat "execute transport" (hash "extend" (enc n esk-1)))))
-    ((recv (cat "extend" (enc n esk-1)))
-      (send (cat "extend" (enc n esk-1)))) ((recv esk) (send esk))
-    ((recv (cat "decrypt" (enc esk tpmkey)))
-      (recv (enc "created" tpmkey pcr aik-0)) (obsv pcr) (send esk))
-    ((recv (cat "quote" nonce)) (obsv (enc "created" tpmkey pcr aik-0))
-      (send
-        (enc "quote" (enc "created" tpmkey pcr aik-0) nonce aik-1))))
-  (label 94)
-  (parent 92)
-  (unrealized (11 1))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
diff --git a/tst/epmo-hash.scm b/tst/epmo-hash.scm
new file mode 100644
--- /dev/null
+++ b/tst/epmo-hash.scm
@@ -0,0 +1,77 @@
+(herald "Electronic Purchase with Money Order Protocol with Key Hashing"
+  (comment "Annotated with trust management formulas"))
+
+(defprotocol epmo basic
+  (defrole bank
+    (vars (b c m name) (nc nm nb data) (price text))
+    (trace
+     (recv (enc c nc nm price (pubk b)))
+     (send (cat (enc (hash c nc nb nm price) (privk b))
+		(enc nc nb (pubk c))))
+     (recv (enc (hash b nb nm) (privk m))))
+    (uniq-orig nb)
+    (annotations b
+      (1
+        (implies
+          (and (forall ((pm name)) (says c (transfer b price pm nm)))
+            (forall ((pm name)) (says pm (transfer b price pm nm))))
+          (forall ((pm name)) (transfer b price pm nm))))
+      (2
+        (and (says c (transfer b price m nm))
+          (says m (transfer b price m nm))))))
+  (defrole customer
+    (vars (b c m name) (nb nc nm data) (goods price text))
+    (trace
+     (send (enc c nc goods price (pubk m)))
+     (recv (enc nc nm m goods price (pubk c)))
+     (send (enc c nc nm price (pubk b)))
+     (recv (cat (enc (hash c nc nb nm price) (privk b))
+		(enc nc nb (pubk c))))
+     (send (cat (enc (hash c nc nb nm price) (privk b)) nb)))
+    (uniq-orig nc)
+    (annotations c
+      (1
+        (says m
+          (forall ((pb name))
+            (implies (transfer pb price m nm) (ship m goods c)))))
+      (3
+        (says b
+          (implies
+            (and (forall ((pm name)) (says c (transfer b price pm nm)))
+              (forall ((pm name)) (says m (transfer b price pm nm))))
+            (transfer b price m nm))))
+      (4 (transfer b price m nm))))
+  (defrole merchant
+    (vars (b c m name) (nb nc nm data) (goods price text))
+    (trace
+     (recv (enc c nc goods price (pubk m)))
+     (send (enc nc nm m goods price (pubk c)))
+     (recv (cat (enc (hash c nc nb nm price) (privk b)) nb))
+     (send (enc (hash b nb nm) (privk m))))
+    (uniq-orig nm)
+    (annotations m
+      (1
+        (forall ((pb name))
+          (implies (transfer pb price m nm) (ship m goods c))))
+      (2
+        (and
+          (says b
+            (implies
+              (and
+                (forall ((pm name)) (says c (transfer b price pm nm)))
+                (forall ((pm name)) (says m (transfer b price pm nm))))
+              (transfer b price m nm)))
+          (says c (transfer b price m nm))))
+      (3 (and (transfer b price m nm) (ship m goods c))))))
+
+(defskeleton epmo (vars (b c m name))
+  (defstrand customer 5 (b b) (c c) (m m))
+  (non-orig (privk b) (privk c) (privk m)))
+
+(defskeleton epmo (vars (b c m name) (goods name))
+  (defstrand bank 3 (b b) (c c) (m m))
+  (non-orig (privk b) (privk c) (privk m)))
+
+(defskeleton epmo (vars (b c m name))
+  (defstrand merchant 4 (b b) (c c) (m m))
+  (non-orig (privk b) (privk c) (privk m)))
diff --git a/tst/epmo-hash.tst b/tst/epmo-hash.tst
new file mode 100644
--- /dev/null
+++ b/tst/epmo-hash.tst
@@ -0,0 +1,780 @@
+(herald "Electronic Purchase with Money Order Protocol with Key Hashing"
+  (comment "Annotated with trust management formulas"))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/epmo-hash.scm")
+
+(defprotocol epmo basic
+  (defrole bank
+    (vars (b c m name) (nc nm nb data) (price text))
+    (trace (recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c)))) (recv (enc (hash b nb nm) (privk m))))
+    (uniq-orig nb)
+    (annotations b
+      (1
+        (implies
+          (and (forall ((pm name)) (says c (transfer b price pm nm)))
+            (forall ((pm name)) (says pm (transfer b price pm nm))))
+          (forall ((pm name)) (transfer b price pm nm))))
+      (2
+        (and (says c (transfer b price m nm))
+          (says m (transfer b price m nm))))))
+  (defrole customer
+    (vars (b c m name) (nb nc nm data) (goods price text))
+    (trace (send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (hash c nc nb nm price) (privk b)) nb)))
+    (uniq-orig nc)
+    (annotations c
+      (1
+        (says m
+          (forall ((pb name))
+            (implies (transfer pb price m nm) (ship m goods c)))))
+      (3
+        (says b
+          (implies
+            (and (forall ((pm name)) (says c (transfer b price pm nm)))
+              (forall ((pm name)) (says m (transfer b price pm nm))))
+            (transfer b price m nm)))) (4 (transfer b price m nm))))
+  (defrole merchant
+    (vars (b c m name) (nb nc nm data) (goods price text))
+    (trace (recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (hash c nc nb nm price) (privk b)) nb))
+      (send (enc (hash b nb nm) (privk m))))
+    (uniq-orig nm)
+    (annotations m
+      (1
+        (forall ((pb name))
+          (implies (transfer pb price m nm) (ship m goods c))))
+      (2
+        (and
+          (says b
+            (implies
+              (and
+                (forall ((pm name)) (says c (transfer b price pm nm)))
+                (forall ((pm name)) (says m (transfer b price pm nm))))
+              (transfer b price m nm)))
+          (says c (transfer b price m nm))))
+      (3 (and (transfer b price m nm) (ship m goods c)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nc)
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (hash c nc nb nm price) (privk b)) nb))))
+  (label 0)
+  (unrealized (0 1) (0 3))
+  (origs (nc (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm nm-0 data) (goods price text) (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price)
+    (c c) (m m))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nc nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (0 1)
+    (enc c nc goods price (pubk m)))
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (hash c nc nb nm price) (privk b)) nb)))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm-0 m goods price (pubk c)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1) (0 3))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price)
+    (c c) (m m))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nc nm)
+  (operation nonce-test (contracted (nm-0 nm)) nc (0 1)
+    (enc nc nm m goods price (pubk c)) (enc c nc goods price (pubk m)))
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (hash c nc nb nm price) (privk b)) nb)))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 3))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 3)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nb nc nm)
+  (operation encryption-test (added-strand bank 2)
+    (enc (hash c nc nb nm price) (privk b)) (0 3))
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (hash c nc nb nm price) (privk b)) nb)))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c))))))
+  (label 3)
+  (parent 2)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c))
+  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nb nc nm)
+  (operation nonce-test (displaced 3 0 customer 3) nc (2 0)
+    (enc nc nm m goods price (pubk c)) (enc c nc goods price (pubk m)))
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (hash c nc nb nm price) (privk b)) nb)))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c))))))
+  (label 4)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((b b) (c c) (m m) (nb nb) (nc nc) (nm nm) (goods goods)
+        (price price))))
+  (origs (nc (0 0)) (nb (2 1)) (nm (1 1))))
+
+(defskeleton epmo
+  (vars (nb nc nm nm-0 data) (goods price text) (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price)
+    (c c) (m m))
+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((1 1) (2 0))
+    ((2 1) (0 3)) ((3 1) (2 0)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nb nc nm nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (2 0)
+    (enc nc nm m goods price (pubk c)) (enc c nc goods price (pubk m)))
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (hash c nc nb nm price) (privk b)) nb)))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm-0 m goods price (pubk c)))))
+  (label 5)
+  (parent 3)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm nm-0 data) (goods price text) (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price)
+    (c c) (m m))
+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((0 2) (2 0)) ((1 1) (0 1))
+    ((2 1) (0 3)) ((3 1) (2 0)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nb nc nm nm-0)
+  (operation nonce-test (displaced 4 0 customer 3) nc (2 0)
+    (enc nc nm m goods price (pubk c))
+    (enc nc nm-0 m goods price (pubk c))
+    (enc c nc goods price (pubk m)))
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (hash c nc nb nm price) (privk b)) nb)))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm-0 m goods price (pubk c)))))
+  (label 6)
+  (parent 5)
+  (seen 4)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol epmo basic
+  (defrole bank
+    (vars (b c m name) (nc nm nb data) (price text))
+    (trace (recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c)))) (recv (enc (hash b nb nm) (privk m))))
+    (uniq-orig nb)
+    (annotations b
+      (1
+        (implies
+          (and (forall ((pm name)) (says c (transfer b price pm nm)))
+            (forall ((pm name)) (says pm (transfer b price pm nm))))
+          (forall ((pm name)) (transfer b price pm nm))))
+      (2
+        (and (says c (transfer b price m nm))
+          (says m (transfer b price m nm))))))
+  (defrole customer
+    (vars (b c m name) (nb nc nm data) (goods price text))
+    (trace (send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (hash c nc nb nm price) (privk b)) nb)))
+    (uniq-orig nc)
+    (annotations c
+      (1
+        (says m
+          (forall ((pb name))
+            (implies (transfer pb price m nm) (ship m goods c)))))
+      (3
+        (says b
+          (implies
+            (and (forall ((pm name)) (says c (transfer b price pm nm)))
+              (forall ((pm name)) (says m (transfer b price pm nm))))
+            (transfer b price m nm)))) (4 (transfer b price m nm))))
+  (defrole merchant
+    (vars (b c m name) (nb nc nm data) (goods price text))
+    (trace (recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (hash c nc nb nm price) (privk b)) nb))
+      (send (enc (hash b nb nm) (privk m))))
+    (uniq-orig nm)
+    (annotations m
+      (1
+        (forall ((pb name))
+          (implies (transfer pb price m nm) (ship m goods c))))
+      (2
+        (and
+          (says b
+            (implies
+              (and
+                (forall ((pm name)) (says c (transfer b price pm nm)))
+                (forall ((pm name)) (says m (transfer b price pm nm))))
+              (transfer b price m nm)))
+          (says c (transfer b price m nm))))
+      (3 (and (transfer b price m nm) (ship m goods c)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton epmo
+  (vars (nc nm nb data) (price text) (b c m name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c)
+    (m m))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nb)
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c)))) (recv (enc (hash b nb nm) (privk m)))))
+  (label 7)
+  (unrealized (0 2))
+  (origs (nb (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nc nm nb nc-0 data) (price goods price-0 text)
+    (b c m c-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c)
+    (m m))
+  (defstrand merchant 4 (nb nb) (nc nc-0) (nm nm) (goods goods)
+    (price price-0) (b b) (c c-0) (m m))
+  (precedes ((0 1) (1 2)) ((1 1) (0 0)) ((1 3) (0 2)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nm nb)
+  (operation encryption-test (added-strand merchant 4)
+    (enc (hash b nb nm) (privk m)) (0 2))
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c)))) (recv (enc (hash b nb nm) (privk m))))
+    ((recv (enc c-0 nc-0 goods price-0 (pubk m)))
+      (send (enc nc-0 nm m goods price-0 (pubk c-0)))
+      (recv (cat (enc (hash c-0 nc-0 nb nm price-0) (privk b)) nb))
+      (send (enc (hash b nb nm) (privk m)))))
+  (label 8)
+  (parent 7)
+  (unrealized (1 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nc nm nb data) (price goods text) (b c m name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c)
+    (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (precedes ((0 1) (1 2)) ((1 1) (0 0)) ((1 3) (0 2)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nm nb)
+  (operation encryption-test (displaced 2 0 bank 2)
+    (enc (hash c-0 nc-0 nb nm price-0) (privk b)) (1 2))
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c)))) (recv (enc (hash b nb nm) (privk m))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (hash c nc nb nm price) (privk b)) nb))
+      (send (enc (hash b nb nm) (privk m)))))
+  (label 9)
+  (parent 8)
+  (unrealized (0 0) (1 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nc nm nb nm-0 data) (price goods goods-0 price-0 text)
+    (b c m b-0 m-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c)
+    (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm-0) (goods goods-0)
+    (price price-0) (b b-0) (c c) (m m-0))
+  (precedes ((0 1) (2 3)) ((1 1) (0 0)) ((1 3) (0 2)) ((2 0) (1 0))
+    ((2 4) (1 2)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nc nm nb)
+  (operation nonce-test (added-strand customer 5) nb (1 2)
+    (enc nc nb (pubk c)))
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c)))) (recv (enc (hash b nb nm) (privk m))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (hash c nc nb nm price) (privk b)) nb))
+      (send (enc (hash b nb nm) (privk m))))
+    ((send (enc c nc goods-0 price-0 (pubk m-0)))
+      (recv (enc nc nm-0 m-0 goods-0 price-0 (pubk c)))
+      (send (enc c nc nm-0 price-0 (pubk b-0)))
+      (recv
+        (cat (enc (hash c nc nb nm-0 price-0) (privk b-0))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (hash c nc nb nm-0 price-0) (privk b-0)) nb))))
+  (label 10)
+  (parent 9)
+  (unrealized (0 0) (2 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton epmo
+  (vars (nc nm nb data) (price goods goods-0 text) (b c m b-0 m-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c)
+    (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods-0)
+    (price price) (b b-0) (c c) (m m-0))
+  (precedes ((0 1) (2 3)) ((1 1) (0 0)) ((1 1) (2 1)) ((1 3) (0 2))
+    ((2 0) (1 0)) ((2 4) (1 2)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nc nm nb)
+  (operation encryption-test (displaced 3 0 bank 2)
+    (hash c nc nb nm-0 price-0) (2 3))
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c)))) (recv (enc (hash b nb nm) (privk m))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (hash c nc nb nm price) (privk b)) nb))
+      (send (enc (hash b nb nm) (privk m))))
+    ((send (enc c nc goods-0 price (pubk m-0)))
+      (recv (enc nc nm m-0 goods-0 price (pubk c)))
+      (send (enc c nc nm price (pubk b-0)))
+      (recv
+        (cat (enc (hash c nc nb nm price) (privk b-0))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (hash c nc nb nm price) (privk b-0)) nb))))
+  (label 11)
+  (parent 10)
+  (unrealized (0 0) (2 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nc nm nb nm-0 data) (price goods goods-0 price-0 text)
+    (b c m b-0 m-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c)
+    (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm-0) (goods goods-0)
+    (price price-0) (b b-0) (c c) (m m-0))
+  (deflistener (cat c nc nb nm-0 price-0))
+  (precedes ((0 1) (3 0)) ((1 1) (0 0)) ((1 3) (0 2)) ((2 0) (1 0))
+    ((2 4) (1 2)) ((3 1) (2 3)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nc nm nb)
+  (operation encryption-test (added-listener (cat c nc nb nm-0 price-0))
+    (hash c nc nb nm-0 price-0) (2 3))
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c)))) (recv (enc (hash b nb nm) (privk m))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (hash c nc nb nm price) (privk b)) nb))
+      (send (enc (hash b nb nm) (privk m))))
+    ((send (enc c nc goods-0 price-0 (pubk m-0)))
+      (recv (enc nc nm-0 m-0 goods-0 price-0 (pubk c)))
+      (send (enc c nc nm-0 price-0 (pubk b-0)))
+      (recv
+        (cat (enc (hash c nc nb nm-0 price-0) (privk b-0))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (hash c nc nb nm-0 price-0) (privk b-0)) nb)))
+    ((recv (cat c nc nb nm-0 price-0))
+      (send (cat c nc nb nm-0 price-0))))
+  (label 12)
+  (parent 10)
+  (unrealized (0 0) (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton epmo
+  (vars (nc nm nb data) (price goods text) (b c m b-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c)
+    (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b-0) (c c) (m m))
+  (precedes ((0 1) (2 3)) ((1 1) (0 0)) ((1 1) (2 1)) ((1 3) (0 2))
+    ((2 0) (1 0)) ((2 4) (1 2)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nc nm nb)
+  (operation nonce-test (contracted (m-0 m) (goods-0 goods)) nm (2 1)
+    (enc nc nm m goods price (pubk c)))
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c)))) (recv (enc (hash b nb nm) (privk m))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (hash c nc nb nm price) (privk b)) nb))
+      (send (enc (hash b nb nm) (privk m))))
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b-0)))
+      (recv
+        (cat (enc (hash c nc nb nm price) (privk b-0))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (hash c nc nb nm price) (privk b-0)) nb))))
+  (label 13)
+  (parent 11)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nc nm nb data) (price goods text) (b c m b-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c)
+    (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b-0) (c c) (m m))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (1 0))
+    ((2 2) (0 0)) ((2 4) (1 2)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nc nm nb)
+  (operation nonce-test (displaced 3 2 customer 3) nm (0 0)
+    (enc nc nm m goods price (pubk c)))
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c)))) (recv (enc (hash b nb nm) (privk m))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (hash c nc nb nm price) (privk b)) nb))
+      (send (enc (hash b nb nm) (privk m))))
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b-0)))
+      (recv
+        (cat (enc (hash c nc nb nm price) (privk b-0))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (hash c nc nb nm price) (privk b-0)) nb))))
+  (label 14)
+  (parent 13)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (c c) (m m) (nc nc) (nm nm) (nb nb) (price price))))
+  (origs (nc (2 0)) (nb (0 1)) (nm (1 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol epmo basic
+  (defrole bank
+    (vars (b c m name) (nc nm nb data) (price text))
+    (trace (recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c)))) (recv (enc (hash b nb nm) (privk m))))
+    (uniq-orig nb)
+    (annotations b
+      (1
+        (implies
+          (and (forall ((pm name)) (says c (transfer b price pm nm)))
+            (forall ((pm name)) (says pm (transfer b price pm nm))))
+          (forall ((pm name)) (transfer b price pm nm))))
+      (2
+        (and (says c (transfer b price m nm))
+          (says m (transfer b price m nm))))))
+  (defrole customer
+    (vars (b c m name) (nb nc nm data) (goods price text))
+    (trace (send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (hash c nc nb nm price) (privk b)) nb)))
+    (uniq-orig nc)
+    (annotations c
+      (1
+        (says m
+          (forall ((pb name))
+            (implies (transfer pb price m nm) (ship m goods c)))))
+      (3
+        (says b
+          (implies
+            (and (forall ((pm name)) (says c (transfer b price pm nm)))
+              (forall ((pm name)) (says m (transfer b price pm nm))))
+            (transfer b price m nm)))) (4 (transfer b price m nm))))
+  (defrole merchant
+    (vars (b c m name) (nb nc nm data) (goods price text))
+    (trace (recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (hash c nc nb nm price) (privk b)) nb))
+      (send (enc (hash b nb nm) (privk m))))
+    (uniq-orig nm)
+    (annotations m
+      (1
+        (forall ((pb name))
+          (implies (transfer pb price m nm) (ship m goods c))))
+      (2
+        (and
+          (says b
+            (implies
+              (and
+                (forall ((pm name)) (says c (transfer b price pm nm)))
+                (forall ((pm name)) (says m (transfer b price pm nm))))
+              (transfer b price m nm)))
+          (says c (transfer b price m nm))))
+      (3 (and (transfer b price m nm) (ship m goods c)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (b c m name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nm)
+  (traces
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (hash c nc nb nm price) (privk b)) nb))
+      (send (enc (hash b nb nm) (privk m)))))
+  (label 15)
+  (unrealized (0 2))
+  (origs (nm (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (b c m name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nb nm)
+  (operation encryption-test (added-strand bank 2)
+    (enc (hash c nc nb nm price) (privk b)) (0 2))
+  (traces
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (hash c nc nb nm price) (privk b)) nb))
+      (send (enc (hash b nb nm) (privk m))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c))))))
+  (label 16)
+  (parent 15)
+  (unrealized (0 2) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (b c m b-0 name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c))
+  (defstrand customer 3 (nc nc) (nm nm) (goods goods) (price price)
+    (b b-0) (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (1 0)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nb nc nm)
+  (operation nonce-test (added-strand customer 3) nm (1 0)
+    (enc nc nm m goods price (pubk c)))
+  (traces
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (hash c nc nb nm price) (privk b)) nb))
+      (send (enc (hash b nb nm) (privk m))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b-0)))))
+  (label 17)
+  (parent 16)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (b c b-0 m name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b-0) (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (2 3)) ((2 0) (0 0)) ((2 2) (1 0))
+    ((2 4) (0 2)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nb nc nm)
+  (operation nonce-test (displaced 2 3 customer 5) nb (0 2)
+    (enc nc nb (pubk c)))
+  (traces
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (hash c nc nb nm price) (privk b)) nb))
+      (send (enc (hash b nb nm) (privk m))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (hash c nc nb nm price) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b-0)))
+      (recv
+        (cat (enc (hash c nc nb nm price) (privk b-0))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (hash c nc nb nm price) (privk b-0)) nb))))
+  (label 18)
+  (parent 17)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((b b) (c c) (m m) (nb nb) (nc nc) (nm nm) (goods goods)
+        (price price))))
+  (origs (nc (2 0)) (nb (1 1)) (nm (0 1))))
+
+(comment "Nothing left to do")
diff --git a/tst/epmo-key-hash.scm b/tst/epmo-key-hash.scm
new file mode 100644
--- /dev/null
+++ b/tst/epmo-key-hash.scm
@@ -0,0 +1,77 @@
+(herald "Electronic Purchase with Money Order Protocol with Key Hashing"
+  (comment "Annotated with trust management formulas"))
+
+(defprotocol epmo basic
+  (defrole bank
+    (vars (b c m name) (nc nm nb data) (price text))
+    (trace
+     (recv (enc c nc nm price (pubk b)))
+     (send (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+		(enc nc nb (pubk c))))
+     (recv (enc (enc "hash" (cat b nb nm)) (privk m))))
+    (uniq-orig nb)
+    (annotations b
+      (1
+        (implies
+          (and (forall ((pm name)) (says c (transfer b price pm nm)))
+            (forall ((pm name)) (says pm (transfer b price pm nm))))
+          (forall ((pm name)) (transfer b price pm nm))))
+      (2
+        (and (says c (transfer b price m nm))
+          (says m (transfer b price m nm))))))
+  (defrole customer
+    (vars (b c m name) (nb nc nm data) (goods price text))
+    (trace
+     (send (enc c nc goods price (pubk m)))
+     (recv (enc nc nm m goods price (pubk c)))
+     (send (enc c nc nm price (pubk b)))
+     (recv (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+		(enc nc nb (pubk c))))
+     (send (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb)))
+    (uniq-orig nc)
+    (annotations c
+      (1
+        (says m
+          (forall ((pb name))
+            (implies (transfer pb price m nm) (ship m goods c)))))
+      (3
+        (says b
+          (implies
+            (and (forall ((pm name)) (says c (transfer b price pm nm)))
+              (forall ((pm name)) (says m (transfer b price pm nm))))
+            (transfer b price m nm))))
+      (4 (transfer b price m nm))))
+  (defrole merchant
+    (vars (b c m name) (nb nc nm data) (goods price text))
+    (trace
+     (recv (enc c nc goods price (pubk m)))
+     (send (enc nc nm m goods price (pubk c)))
+     (recv (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+     (send (enc (enc "hash" (cat b nb nm)) (privk m))))
+    (uniq-orig nm)
+    (annotations m
+      (1
+        (forall ((pb name))
+          (implies (transfer pb price m nm) (ship m goods c))))
+      (2
+        (and
+          (says b
+            (implies
+              (and
+                (forall ((pm name)) (says c (transfer b price pm nm)))
+                (forall ((pm name)) (says m (transfer b price pm nm))))
+              (transfer b price m nm)))
+          (says c (transfer b price m nm))))
+      (3 (and (transfer b price m nm) (ship m goods c))))))
+
+(defskeleton epmo (vars (b c m name))
+  (defstrand customer 5 (b b) (c c) (m m))
+  (non-orig (privk b) (privk c) (privk m)))
+
+(defskeleton epmo (vars (b c m name) (goods name))
+  (defstrand bank 3 (b b) (c c) (m m))
+  (non-orig (privk b) (privk c) (privk m)))
+
+(defskeleton epmo (vars (b c m name))
+  (defstrand merchant 4 (b b) (c c) (m m))
+  (non-orig (privk b) (privk c) (privk m)))
diff --git a/tst/epmo-key-hash.tst b/tst/epmo-key-hash.tst
new file mode 100644
--- /dev/null
+++ b/tst/epmo-key-hash.tst
@@ -0,0 +1,827 @@
+(herald "Electronic Purchase with Money Order Protocol with Key Hashing"
+  (comment "Annotated with trust management formulas"))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/epmo-key-hash.scm")
+
+(defprotocol epmo basic
+  (defrole bank
+    (vars (b c m name) (nc nm nb data) (price text))
+    (trace (recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b nb nm)) (privk m))))
+    (uniq-orig nb)
+    (annotations b
+      (1
+        (implies
+          (and (forall ((pm name)) (says c (transfer b price pm nm)))
+            (forall ((pm name)) (says pm (transfer b price pm nm))))
+          (forall ((pm name)) (transfer b price pm nm))))
+      (2
+        (and (says c (transfer b price m nm))
+          (says m (transfer b price m nm))))))
+  (defrole customer
+    (vars (b c m name) (nb nc nm data) (goods price text))
+    (trace (send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb)))
+    (uniq-orig nc)
+    (annotations c
+      (1
+        (says m
+          (forall ((pb name))
+            (implies (transfer pb price m nm) (ship m goods c)))))
+      (3
+        (says b
+          (implies
+            (and (forall ((pm name)) (says c (transfer b price pm nm)))
+              (forall ((pm name)) (says m (transfer b price pm nm))))
+            (transfer b price m nm)))) (4 (transfer b price m nm))))
+  (defrole merchant
+    (vars (b c m name) (nb nc nm data) (goods price text))
+    (trace (recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b nb nm)) (privk m))))
+    (uniq-orig nm)
+    (annotations m
+      (1
+        (forall ((pb name))
+          (implies (transfer pb price m nm) (ship m goods c))))
+      (2
+        (and
+          (says b
+            (implies
+              (and
+                (forall ((pm name)) (says c (transfer b price pm nm)))
+                (forall ((pm name)) (says m (transfer b price pm nm))))
+              (transfer b price m nm)))
+          (says c (transfer b price m nm))))
+      (3 (and (transfer b price m nm) (ship m goods c)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nc)
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))))
+  (label 0)
+  (unrealized (0 1) (0 3))
+  (origs (nc (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm nm-0 data) (goods price text) (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price)
+    (c c) (m m))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nc nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (0 1)
+    (enc c nc goods price (pubk m)))
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb)))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm-0 m goods price (pubk c)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1) (0 3))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price)
+    (c c) (m m))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nc nm)
+  (operation nonce-test (contracted (nm-0 nm)) nc (0 1)
+    (enc nc nm m goods price (pubk c)) (enc c nc goods price (pubk m)))
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb)))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 3))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 3)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nb nc nm)
+  (operation encryption-test (added-strand bank 2)
+    (enc (enc "hash" (cat c nc nb nm price)) (privk b)) (0 3))
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb)))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))))
+  (label 3)
+  (parent 2)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c))
+  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nb nc nm)
+  (operation nonce-test (displaced 3 0 customer 3) nc (2 0)
+    (enc nc nm m goods price (pubk c)) (enc c nc goods price (pubk m)))
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb)))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))))
+  (label 4)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((b b) (c c) (m m) (nb nb) (nc nc) (nm nm) (goods goods)
+        (price price))))
+  (origs (nc (0 0)) (nb (2 1)) (nm (1 1))))
+
+(defskeleton epmo
+  (vars (nb nc nm nm-0 data) (goods price text) (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price)
+    (c c) (m m))
+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((1 1) (2 0))
+    ((2 1) (0 3)) ((3 1) (2 0)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nb nc nm nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (2 0)
+    (enc nc nm m goods price (pubk c)) (enc c nc goods price (pubk m)))
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb)))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm-0 m goods price (pubk c)))))
+  (label 5)
+  (parent 3)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm nm-0 data) (goods price text) (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price)
+    (c c) (m m))
+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((0 2) (2 0)) ((1 1) (0 1))
+    ((2 1) (0 3)) ((3 1) (2 0)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nb nc nm nm-0)
+  (operation nonce-test (displaced 4 0 customer 3) nc (2 0)
+    (enc nc nm m goods price (pubk c))
+    (enc nc nm-0 m goods price (pubk c))
+    (enc c nc goods price (pubk m)))
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb)))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm-0 m goods price (pubk c)))))
+  (label 6)
+  (parent 5)
+  (seen 4)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol epmo basic
+  (defrole bank
+    (vars (b c m name) (nc nm nb data) (price text))
+    (trace (recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b nb nm)) (privk m))))
+    (uniq-orig nb)
+    (annotations b
+      (1
+        (implies
+          (and (forall ((pm name)) (says c (transfer b price pm nm)))
+            (forall ((pm name)) (says pm (transfer b price pm nm))))
+          (forall ((pm name)) (transfer b price pm nm))))
+      (2
+        (and (says c (transfer b price m nm))
+          (says m (transfer b price m nm))))))
+  (defrole customer
+    (vars (b c m name) (nb nc nm data) (goods price text))
+    (trace (send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb)))
+    (uniq-orig nc)
+    (annotations c
+      (1
+        (says m
+          (forall ((pb name))
+            (implies (transfer pb price m nm) (ship m goods c)))))
+      (3
+        (says b
+          (implies
+            (and (forall ((pm name)) (says c (transfer b price pm nm)))
+              (forall ((pm name)) (says m (transfer b price pm nm))))
+            (transfer b price m nm)))) (4 (transfer b price m nm))))
+  (defrole merchant
+    (vars (b c m name) (nb nc nm data) (goods price text))
+    (trace (recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b nb nm)) (privk m))))
+    (uniq-orig nm)
+    (annotations m
+      (1
+        (forall ((pb name))
+          (implies (transfer pb price m nm) (ship m goods c))))
+      (2
+        (and
+          (says b
+            (implies
+              (and
+                (forall ((pm name)) (says c (transfer b price pm nm)))
+                (forall ((pm name)) (says m (transfer b price pm nm))))
+              (transfer b price m nm)))
+          (says c (transfer b price m nm))))
+      (3 (and (transfer b price m nm) (ship m goods c)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton epmo
+  (vars (nc nm nb data) (price text) (b c m name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c)
+    (m m))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nb)
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b nb nm)) (privk m)))))
+  (label 7)
+  (unrealized (0 2))
+  (origs (nb (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nc nm nb nc-0 data) (price goods price-0 text)
+    (b c m c-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c)
+    (m m))
+  (defstrand merchant 4 (nb nb) (nc nc-0) (nm nm) (goods goods)
+    (price price-0) (b b) (c c-0) (m m))
+  (precedes ((0 1) (1 2)) ((1 1) (0 0)) ((1 3) (0 2)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nm nb)
+  (operation encryption-test (added-strand merchant 4)
+    (enc (enc "hash" (cat b nb nm)) (privk m)) (0 2))
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b nb nm)) (privk m))))
+    ((recv (enc c-0 nc-0 goods price-0 (pubk m)))
+      (send (enc nc-0 nm m goods price-0 (pubk c-0)))
+      (recv
+        (cat (enc (enc "hash" (cat c-0 nc-0 nb nm price-0)) (privk b))
+          nb)) (send (enc (enc "hash" (cat b nb nm)) (privk m)))))
+  (label 8)
+  (parent 7)
+  (unrealized (1 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nc nm nb data) (price goods text) (b c m name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c)
+    (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (precedes ((0 1) (1 2)) ((1 1) (0 0)) ((1 3) (0 2)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nm nb)
+  (operation encryption-test (displaced 2 0 bank 2)
+    (enc (enc "hash" (cat c-0 nc-0 nb nm price-0)) (privk b)) (1 2))
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b nb nm)) (privk m))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b nb nm)) (privk m)))))
+  (label 9)
+  (parent 8)
+  (unrealized (0 0) (1 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nc nm nb nm-0 data) (price goods goods-0 price-0 text)
+    (b c m b-0 m-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c)
+    (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm-0) (goods goods-0)
+    (price price-0) (b b-0) (c c) (m m-0))
+  (precedes ((0 1) (2 3)) ((1 1) (0 0)) ((1 3) (0 2)) ((2 0) (1 0))
+    ((2 4) (1 2)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nc nm nb)
+  (operation nonce-test (added-strand customer 5) nb (1 2)
+    (enc nc nb (pubk c)))
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b nb nm)) (privk m))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b nb nm)) (privk m))))
+    ((send (enc c nc goods-0 price-0 (pubk m-0)))
+      (recv (enc nc nm-0 m-0 goods-0 price-0 (pubk c)))
+      (send (enc c nc nm-0 price-0 (pubk b-0)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm-0 price-0)) (privk b-0))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm-0 price-0)) (privk b-0))
+          nb))))
+  (label 10)
+  (parent 9)
+  (unrealized (0 0) (2 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton epmo
+  (vars (nc nm nb data) (price goods goods-0 text) (b c m b-0 m-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c)
+    (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods-0)
+    (price price) (b b-0) (c c) (m m-0))
+  (precedes ((0 1) (2 3)) ((1 1) (0 0)) ((1 1) (2 1)) ((1 3) (0 2))
+    ((2 0) (1 0)) ((2 4) (1 2)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nc nm nb)
+  (operation encryption-test (displaced 3 0 bank 2)
+    (enc "hash" (cat c nc nb nm-0 price-0)) (2 3))
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b nb nm)) (privk m))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b nb nm)) (privk m))))
+    ((send (enc c nc goods-0 price (pubk m-0)))
+      (recv (enc nc nm m-0 goods-0 price (pubk c)))
+      (send (enc c nc nm price (pubk b-0)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b-0))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b-0))
+          nb))))
+  (label 11)
+  (parent 10)
+  (unrealized (0 0) (2 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nc nm nb nm-0 data) (price goods goods-0 price-0 text)
+    (b c m b-0 m-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c)
+    (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm-0) (goods goods-0)
+    (price price-0) (b b-0) (c c) (m m-0))
+  (deflistener (cat c nc nb nm-0 price-0))
+  (precedes ((0 1) (3 0)) ((1 1) (0 0)) ((1 3) (0 2)) ((2 0) (1 0))
+    ((2 4) (1 2)) ((3 1) (2 3)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nc nm nb)
+  (operation encryption-test (added-listener (cat c nc nb nm-0 price-0))
+    (enc "hash" (cat c nc nb nm-0 price-0)) (2 3))
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b nb nm)) (privk m))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b nb nm)) (privk m))))
+    ((send (enc c nc goods-0 price-0 (pubk m-0)))
+      (recv (enc nc nm-0 m-0 goods-0 price-0 (pubk c)))
+      (send (enc c nc nm-0 price-0 (pubk b-0)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm-0 price-0)) (privk b-0))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm-0 price-0)) (privk b-0))
+          nb)))
+    ((recv (cat c nc nb nm-0 price-0))
+      (send (cat c nc nb nm-0 price-0))))
+  (label 12)
+  (parent 10)
+  (unrealized (0 0) (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton epmo
+  (vars (nc nm nb data) (price goods text) (b c m b-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c)
+    (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b-0) (c c) (m m))
+  (precedes ((0 1) (2 3)) ((1 1) (0 0)) ((1 1) (2 1)) ((1 3) (0 2))
+    ((2 0) (1 0)) ((2 4) (1 2)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nc nm nb)
+  (operation nonce-test (contracted (m-0 m) (goods-0 goods)) nm (2 1)
+    (enc nc nm m goods price (pubk c)))
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b nb nm)) (privk m))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b nb nm)) (privk m))))
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b-0)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b-0))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b-0))
+          nb))))
+  (label 13)
+  (parent 11)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nc nm nb data) (price goods text) (b c m b-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c)
+    (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b-0) (c c) (m m))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (1 0))
+    ((2 2) (0 0)) ((2 4) (1 2)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nc nm nb)
+  (operation nonce-test (displaced 3 2 customer 3) nm (0 0)
+    (enc nc nm m goods price (pubk c)))
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b nb nm)) (privk m))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b nb nm)) (privk m))))
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b-0)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b-0))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b-0))
+          nb))))
+  (label 14)
+  (parent 13)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (c c) (m m) (nc nc) (nm nm) (nb nb) (price price))))
+  (origs (nc (2 0)) (nb (0 1)) (nm (1 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol epmo basic
+  (defrole bank
+    (vars (b c m name) (nc nm nb data) (price text))
+    (trace (recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b nb nm)) (privk m))))
+    (uniq-orig nb)
+    (annotations b
+      (1
+        (implies
+          (and (forall ((pm name)) (says c (transfer b price pm nm)))
+            (forall ((pm name)) (says pm (transfer b price pm nm))))
+          (forall ((pm name)) (transfer b price pm nm))))
+      (2
+        (and (says c (transfer b price m nm))
+          (says m (transfer b price m nm))))))
+  (defrole customer
+    (vars (b c m name) (nb nc nm data) (goods price text))
+    (trace (send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb)))
+    (uniq-orig nc)
+    (annotations c
+      (1
+        (says m
+          (forall ((pb name))
+            (implies (transfer pb price m nm) (ship m goods c)))))
+      (3
+        (says b
+          (implies
+            (and (forall ((pm name)) (says c (transfer b price pm nm)))
+              (forall ((pm name)) (says m (transfer b price pm nm))))
+            (transfer b price m nm)))) (4 (transfer b price m nm))))
+  (defrole merchant
+    (vars (b c m name) (nb nc nm data) (goods price text))
+    (trace (recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b nb nm)) (privk m))))
+    (uniq-orig nm)
+    (annotations m
+      (1
+        (forall ((pb name))
+          (implies (transfer pb price m nm) (ship m goods c))))
+      (2
+        (and
+          (says b
+            (implies
+              (and
+                (forall ((pm name)) (says c (transfer b price pm nm)))
+                (forall ((pm name)) (says m (transfer b price pm nm))))
+              (transfer b price m nm)))
+          (says c (transfer b price m nm))))
+      (3 (and (transfer b price m nm) (ship m goods c)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (b c m name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nm)
+  (traces
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b nb nm)) (privk m)))))
+  (label 15)
+  (unrealized (0 2))
+  (origs (nm (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (b c m name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nb nm)
+  (operation encryption-test (added-strand bank 2)
+    (enc (enc "hash" (cat c nc nb nm price)) (privk b)) (0 2))
+  (traces
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b nb nm)) (privk m))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))))
+  (label 16)
+  (parent 15)
+  (unrealized (0 2) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (b c m b-0 name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c))
+  (defstrand customer 3 (nc nc) (nm nm) (goods goods) (price price)
+    (b b-0) (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (1 0)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nb nc nm)
+  (operation nonce-test (added-strand customer 3) nm (1 0)
+    (enc nc nm m goods price (pubk c)))
+  (traces
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b nb nm)) (privk m))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b-0)))))
+  (label 17)
+  (parent 16)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (b c b-0 m name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (b b) (c c))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b-0) (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (2 3)) ((2 0) (0 0)) ((2 2) (1 0))
+    ((2 4) (0 2)))
+  (non-orig (privk b) (privk c) (privk m))
+  (uniq-orig nb nc nm)
+  (operation nonce-test (displaced 2 3 customer 5) nb (0 2)
+    (enc nc nb (pubk c)))
+  (traces
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b nb nm)) (privk m))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b-0)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b-0))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b-0))
+          nb))))
+  (label 18)
+  (parent 17)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((b b) (c c) (m m) (nb nb) (nc nc) (nm nm) (goods goods)
+        (price price))))
+  (origs (nc (2 0)) (nb (1 1)) (nm (0 1))))
+
+(comment "Nothing left to do")
diff --git a/tst/epmo.scm b/tst/epmo.scm
new file mode 100644
--- /dev/null
+++ b/tst/epmo.scm
@@ -0,0 +1,80 @@
+(herald "Electronic Purchase with Money Order Protocol"
+  (comment "Annotated with trust management formulas"))
+
+(defprotocol epmo basic
+  (defrole bank
+    (vars (b c m name) (hash akey) (nc nm nb data) (price text))
+    (trace
+     (recv (enc c nc nm price (pubk b)))
+     (send (cat (enc (enc c nc nb nm price hash) (privk b))
+		(enc nc nb (pubk c))))
+     (recv (enc (enc b nb nm hash) (privk m))))
+    (non-orig (invk hash))
+    (uniq-orig nb)
+    (annotations b
+      (1
+        (implies
+          (and (forall ((pm name)) (says c (transfer b price pm nm)))
+            (forall ((pm name)) (says pm (transfer b price pm nm))))
+          (forall ((pm name)) (transfer b price pm nm))))
+      (2
+        (and (says c (transfer b price m nm))
+          (says m (transfer b price m nm))))))
+  (defrole customer
+    (vars (b c m name) (hash akey) (nb nc nm data) (goods price text))
+    (trace
+     (send (enc c nc goods price (pubk m)))
+     (recv (enc nc nm m goods price (pubk c)))
+     (send (enc c nc nm price (pubk b)))
+     (recv (cat (enc (enc c nc nb nm price hash) (privk b))
+		(enc nc nb (pubk c))))
+     (send (cat (enc (enc c nc nb nm price hash) (privk b)) nb)))
+    (non-orig (invk hash))
+    (uniq-orig nc)
+    (annotations c
+      (1
+        (says m
+          (forall ((pb name))
+            (implies (transfer pb price m nm) (ship m goods c)))))
+      (3
+        (says b
+          (implies
+            (and (forall ((pm name)) (says c (transfer b price pm nm)))
+              (forall ((pm name)) (says m (transfer b price pm nm))))
+            (transfer b price m nm))))
+      (4 (transfer b price m nm))))
+  (defrole merchant
+    (vars (b c m name) (hash akey) (nb nc nm data) (goods price text))
+    (trace
+     (recv (enc c nc goods price (pubk m)))
+     (send (enc nc nm m goods price (pubk c)))
+     (recv (cat (enc (enc c nc nb nm price hash) (privk b)) nb))
+     (send (enc (enc b nb nm hash) (privk m))))
+    (non-orig (invk hash))
+    (uniq-orig nm)
+    (annotations m
+      (1
+        (forall ((pb name))
+          (implies (transfer pb price m nm) (ship m goods c))))
+      (2
+        (and
+          (says b
+            (implies
+              (and
+                (forall ((pm name)) (says c (transfer b price pm nm)))
+                (forall ((pm name)) (says m (transfer b price pm nm))))
+              (transfer b price m nm)))
+          (says c (transfer b price m nm))))
+      (3 (and (transfer b price m nm) (ship m goods c))))))
+
+(defskeleton epmo (vars (b c m name))
+  (defstrand customer 5 (b b) (c c) (m m))
+  (non-orig (privk b) (privk c) (privk m)))
+
+(defskeleton epmo (vars (b c m name) (goods name))
+  (defstrand bank 3 (b b) (c c) (m m))
+  (non-orig (privk b) (privk c) (privk m)))
+
+(defskeleton epmo (vars (b c m name))
+  (defstrand merchant 4 (b b) (c c) (m m))
+  (non-orig (privk b) (privk c) (privk m)))
diff --git a/tst/epmo.tst b/tst/epmo.tst
new file mode 100644
--- /dev/null
+++ b/tst/epmo.tst
@@ -0,0 +1,736 @@
+(herald "Electronic Purchase with Money Order Protocol"
+  (comment "Annotated with trust management formulas"))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/epmo.scm")
+
+(defprotocol epmo basic
+  (defrole bank
+    (vars (b c m name) (hash akey) (nc nm nb data) (price text))
+    (trace (recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc b nb nm hash) (privk m))))
+    (non-orig (invk hash))
+    (uniq-orig nb)
+    (annotations b
+      (1
+        (implies
+          (and (forall ((pm name)) (says c (transfer b price pm nm)))
+            (forall ((pm name)) (says pm (transfer b price pm nm))))
+          (forall ((pm name)) (transfer b price pm nm))))
+      (2
+        (and (says c (transfer b price m nm))
+          (says m (transfer b price m nm))))))
+  (defrole customer
+    (vars (b c m name) (hash akey) (nb nc nm data) (goods price text))
+    (trace (send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (enc c nc nb nm price hash) (privk b)) nb)))
+    (non-orig (invk hash))
+    (uniq-orig nc)
+    (annotations c
+      (1
+        (says m
+          (forall ((pb name))
+            (implies (transfer pb price m nm) (ship m goods c)))))
+      (3
+        (says b
+          (implies
+            (and (forall ((pm name)) (says c (transfer b price pm nm)))
+              (forall ((pm name)) (says m (transfer b price pm nm))))
+            (transfer b price m nm)))) (4 (transfer b price m nm))))
+  (defrole merchant
+    (vars (b c m name) (hash akey) (nb nc nm data) (goods price text))
+    (trace (recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (enc c nc nb nm price hash) (privk b)) nb))
+      (send (enc (enc b nb nm hash) (privk m))))
+    (non-orig (invk hash))
+    (uniq-orig nm)
+    (annotations m
+      (1
+        (forall ((pb name))
+          (implies (transfer pb price m nm) (ship m goods c))))
+      (2
+        (and
+          (says b
+            (implies
+              (and
+                (forall ((pm name)) (says c (transfer b price pm nm)))
+                (forall ((pm name)) (says m (transfer b price pm nm))))
+              (transfer b price m nm)))
+          (says c (transfer b price m nm))))
+      (3 (and (transfer b price m nm) (ship m goods c)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (hash akey) (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (hash hash) (b b) (c c) (m m))
+  (non-orig (invk hash) (privk b) (privk c) (privk m))
+  (uniq-orig nc)
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (enc c nc nb nm price hash) (privk b)) nb))))
+  (label 0)
+  (unrealized (0 1) (0 3))
+  (origs (nc (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm nm-0 data) (goods price text) (hash akey)
+    (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (hash hash) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price)
+    (c c) (m m))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk hash) (privk b) (privk c) (privk m))
+  (uniq-orig nc nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (0 1)
+    (enc c nc goods price (pubk m)))
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (enc c nc nb nm price hash) (privk b)) nb)))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm-0 m goods price (pubk c)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1) (0 3))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (hash akey) (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (hash hash) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price)
+    (c c) (m m))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk hash) (privk b) (privk c) (privk m))
+  (uniq-orig nc nm)
+  (operation nonce-test (contracted (nm-0 nm)) nc (0 1)
+    (enc nc nm m goods price (pubk c)) (enc c nc goods price (pubk m)))
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (enc c nc nb nm price hash) (privk b)) nb)))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 3))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (hash akey) (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (hash hash) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (hash hash)
+    (b b) (c c))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 3)))
+  (non-orig (invk hash) (privk b) (privk c) (privk m))
+  (uniq-orig nb nc nm)
+  (operation encryption-test (added-strand bank 2)
+    (enc (enc c nc nb nm price hash) (privk b)) (0 3))
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (enc c nc nb nm price hash) (privk b)) nb)))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))))
+  (label 3)
+  (parent 2)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (hash akey) (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (hash hash) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (hash hash)
+    (b b) (c c))
+  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
+  (non-orig (invk hash) (privk b) (privk c) (privk m))
+  (uniq-orig nb nc nm)
+  (operation nonce-test (displaced 3 0 customer 3) nc (2 0)
+    (enc nc nm m goods price (pubk c)) (enc c nc goods price (pubk m)))
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (enc c nc nb nm price hash) (privk b)) nb)))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))))
+  (label 4)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((b b) (c c) (m m) (hash hash) (nb nb) (nc nc) (nm nm)
+        (goods goods) (price price))))
+  (origs (nc (0 0)) (nb (2 1)) (nm (1 1))))
+
+(defskeleton epmo
+  (vars (nb nc nm nm-0 data) (goods price text) (hash akey)
+    (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (hash hash) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (hash hash)
+    (b b) (c c))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price)
+    (c c) (m m))
+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((1 1) (2 0))
+    ((2 1) (0 3)) ((3 1) (2 0)))
+  (non-orig (invk hash) (privk b) (privk c) (privk m))
+  (uniq-orig nb nc nm nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (2 0)
+    (enc nc nm m goods price (pubk c)) (enc c nc goods price (pubk m)))
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (enc c nc nb nm price hash) (privk b)) nb)))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm-0 m goods price (pubk c)))))
+  (label 5)
+  (parent 3)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm nm-0 data) (goods price text) (hash akey)
+    (b c m name))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (hash hash) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (hash hash)
+    (b b) (c c))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price)
+    (c c) (m m))
+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((0 2) (2 0)) ((1 1) (0 1))
+    ((2 1) (0 3)) ((3 1) (2 0)))
+  (non-orig (invk hash) (privk b) (privk c) (privk m))
+  (uniq-orig nb nc nm nm-0)
+  (operation nonce-test (displaced 4 0 customer 3) nc (2 0)
+    (enc nc nm m goods price (pubk c))
+    (enc nc nm-0 m goods price (pubk c))
+    (enc c nc goods price (pubk m)))
+  (traces
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (enc c nc nb nm price hash) (privk b)) nb)))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm-0 m goods price (pubk c)))))
+  (label 6)
+  (parent 5)
+  (seen 4)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol epmo basic
+  (defrole bank
+    (vars (b c m name) (hash akey) (nc nm nb data) (price text))
+    (trace (recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc b nb nm hash) (privk m))))
+    (non-orig (invk hash))
+    (uniq-orig nb)
+    (annotations b
+      (1
+        (implies
+          (and (forall ((pm name)) (says c (transfer b price pm nm)))
+            (forall ((pm name)) (says pm (transfer b price pm nm))))
+          (forall ((pm name)) (transfer b price pm nm))))
+      (2
+        (and (says c (transfer b price m nm))
+          (says m (transfer b price m nm))))))
+  (defrole customer
+    (vars (b c m name) (hash akey) (nb nc nm data) (goods price text))
+    (trace (send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (enc c nc nb nm price hash) (privk b)) nb)))
+    (non-orig (invk hash))
+    (uniq-orig nc)
+    (annotations c
+      (1
+        (says m
+          (forall ((pb name))
+            (implies (transfer pb price m nm) (ship m goods c)))))
+      (3
+        (says b
+          (implies
+            (and (forall ((pm name)) (says c (transfer b price pm nm)))
+              (forall ((pm name)) (says m (transfer b price pm nm))))
+            (transfer b price m nm)))) (4 (transfer b price m nm))))
+  (defrole merchant
+    (vars (b c m name) (hash akey) (nb nc nm data) (goods price text))
+    (trace (recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (enc c nc nb nm price hash) (privk b)) nb))
+      (send (enc (enc b nb nm hash) (privk m))))
+    (non-orig (invk hash))
+    (uniq-orig nm)
+    (annotations m
+      (1
+        (forall ((pb name))
+          (implies (transfer pb price m nm) (ship m goods c))))
+      (2
+        (and
+          (says b
+            (implies
+              (and
+                (forall ((pm name)) (says c (transfer b price pm nm)))
+                (forall ((pm name)) (says m (transfer b price pm nm))))
+              (transfer b price m nm)))
+          (says c (transfer b price m nm))))
+      (3 (and (transfer b price m nm) (ship m goods c)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton epmo
+  (vars (nc nm nb data) (price text) (hash akey) (b c m name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (hash hash)
+    (b b) (c c) (m m))
+  (non-orig (invk hash) (privk b) (privk c) (privk m))
+  (uniq-orig nb)
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc b nb nm hash) (privk m)))))
+  (label 7)
+  (unrealized (0 2))
+  (origs (nb (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nc nm nb nc-0 data) (price goods price-0 text) (hash akey)
+    (b c m c-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (hash hash)
+    (b b) (c c) (m m))
+  (defstrand merchant 4 (nb nb) (nc nc-0) (nm nm) (goods goods)
+    (price price-0) (hash hash) (b b) (c c-0) (m m))
+  (precedes ((0 1) (1 2)) ((1 1) (0 0)) ((1 3) (0 2)))
+  (non-orig (invk hash) (privk b) (privk c) (privk m))
+  (uniq-orig nm nb)
+  (operation encryption-test (added-strand merchant 4)
+    (enc (enc b nb nm hash) (privk m)) (0 2))
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc b nb nm hash) (privk m))))
+    ((recv (enc c-0 nc-0 goods price-0 (pubk m)))
+      (send (enc nc-0 nm m goods price-0 (pubk c-0)))
+      (recv (cat (enc (enc c-0 nc-0 nb nm price-0 hash) (privk b)) nb))
+      (send (enc (enc b nb nm hash) (privk m)))))
+  (label 8)
+  (parent 7)
+  (unrealized (1 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nc nm nb data) (price goods text) (hash akey) (b c m name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (hash hash)
+    (b b) (c c) (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (hash hash) (b b) (c c) (m m))
+  (precedes ((0 1) (1 2)) ((1 1) (0 0)) ((1 3) (0 2)))
+  (non-orig (invk hash) (privk b) (privk c) (privk m))
+  (uniq-orig nm nb)
+  (operation encryption-test (displaced 2 0 bank 2)
+    (enc (enc c-0 nc-0 nb nm price-0 hash) (privk b)) (1 2))
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc b nb nm hash) (privk m))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (enc c nc nb nm price hash) (privk b)) nb))
+      (send (enc (enc b nb nm hash) (privk m)))))
+  (label 9)
+  (parent 8)
+  (unrealized (0 0) (1 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nc nm nb data) (price goods goods-0 text) (hash akey)
+    (b c m b-0 m-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (hash hash)
+    (b b) (c c) (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (hash hash) (b b) (c c) (m m))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods-0)
+    (price price) (hash hash) (b b-0) (c c) (m m-0))
+  (precedes ((0 1) (2 3)) ((1 1) (0 0)) ((1 1) (2 1)) ((1 3) (0 2))
+    ((2 0) (1 0)) ((2 4) (1 2)))
+  (non-orig (invk hash) (privk b) (privk c) (privk m))
+  (uniq-orig nc nm nb)
+  (operation nonce-test (added-strand customer 5) nb (1 2)
+    (enc nc nb (pubk c)) (enc c nc nb nm price hash))
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc b nb nm hash) (privk m))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (enc c nc nb nm price hash) (privk b)) nb))
+      (send (enc (enc b nb nm hash) (privk m))))
+    ((send (enc c nc goods-0 price (pubk m-0)))
+      (recv (enc nc nm m-0 goods-0 price (pubk c)))
+      (send (enc c nc nm price (pubk b-0)))
+      (recv
+        (cat (enc (enc c nc nb nm price hash) (privk b-0))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (enc c nc nb nm price hash) (privk b-0)) nb))))
+  (label 10)
+  (parent 9)
+  (unrealized (0 0) (2 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nc nm nb data) (price goods text) (hash akey) (b c m b-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (hash hash)
+    (b b) (c c) (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (hash hash) (b b) (c c) (m m))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (hash hash) (b b-0) (c c) (m m))
+  (precedes ((0 1) (2 3)) ((1 1) (0 0)) ((1 1) (2 1)) ((1 3) (0 2))
+    ((2 0) (1 0)) ((2 4) (1 2)))
+  (non-orig (invk hash) (privk b) (privk c) (privk m))
+  (uniq-orig nc nm nb)
+  (operation nonce-test (contracted (m-0 m) (goods-0 goods)) nm (2 1)
+    (enc nc nm m goods price (pubk c)))
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc b nb nm hash) (privk m))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (enc c nc nb nm price hash) (privk b)) nb))
+      (send (enc (enc b nb nm hash) (privk m))))
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b-0)))
+      (recv
+        (cat (enc (enc c nc nb nm price hash) (privk b-0))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (enc c nc nb nm price hash) (privk b-0)) nb))))
+  (label 11)
+  (parent 10)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nc nm nb data) (price goods text) (hash akey) (b c m b-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (price price) (hash hash)
+    (b b) (c c) (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (hash hash) (b b) (c c) (m m))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (hash hash) (b b-0) (c c) (m m))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (1 0))
+    ((2 2) (0 0)) ((2 4) (1 2)))
+  (non-orig (invk hash) (privk b) (privk c) (privk m))
+  (uniq-orig nc nm nb)
+  (operation nonce-test (displaced 3 2 customer 3) nm (0 0)
+    (enc nc nm m goods price (pubk c)))
+  (traces
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc b nb nm hash) (privk m))))
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (enc c nc nb nm price hash) (privk b)) nb))
+      (send (enc (enc b nb nm hash) (privk m))))
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b-0)))
+      (recv
+        (cat (enc (enc c nc nb nm price hash) (privk b-0))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (enc c nc nb nm price hash) (privk b-0)) nb))))
+  (label 12)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((b b) (c c) (m m) (hash hash) (nc nc) (nm nm) (nb nb)
+        (price price))))
+  (origs (nc (2 0)) (nb (0 1)) (nm (1 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol epmo basic
+  (defrole bank
+    (vars (b c m name) (hash akey) (nc nm nb data) (price text))
+    (trace (recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc b nb nm hash) (privk m))))
+    (non-orig (invk hash))
+    (uniq-orig nb)
+    (annotations b
+      (1
+        (implies
+          (and (forall ((pm name)) (says c (transfer b price pm nm)))
+            (forall ((pm name)) (says pm (transfer b price pm nm))))
+          (forall ((pm name)) (transfer b price pm nm))))
+      (2
+        (and (says c (transfer b price m nm))
+          (says m (transfer b price m nm))))))
+  (defrole customer
+    (vars (b c m name) (hash akey) (nb nc nm data) (goods price text))
+    (trace (send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b)))
+      (recv
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (enc c nc nb nm price hash) (privk b)) nb)))
+    (non-orig (invk hash))
+    (uniq-orig nc)
+    (annotations c
+      (1
+        (says m
+          (forall ((pb name))
+            (implies (transfer pb price m nm) (ship m goods c)))))
+      (3
+        (says b
+          (implies
+            (and (forall ((pm name)) (says c (transfer b price pm nm)))
+              (forall ((pm name)) (says m (transfer b price pm nm))))
+            (transfer b price m nm)))) (4 (transfer b price m nm))))
+  (defrole merchant
+    (vars (b c m name) (hash akey) (nb nc nm data) (goods price text))
+    (trace (recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (enc c nc nb nm price hash) (privk b)) nb))
+      (send (enc (enc b nb nm hash) (privk m))))
+    (non-orig (invk hash))
+    (uniq-orig nm)
+    (annotations m
+      (1
+        (forall ((pb name))
+          (implies (transfer pb price m nm) (ship m goods c))))
+      (2
+        (and
+          (says b
+            (implies
+              (and
+                (forall ((pm name)) (says c (transfer b price pm nm)))
+                (forall ((pm name)) (says m (transfer b price pm nm))))
+              (transfer b price m nm)))
+          (says c (transfer b price m nm))))
+      (3 (and (transfer b price m nm) (ship m goods c)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (hash akey) (b c m name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (hash hash) (b b) (c c) (m m))
+  (non-orig (invk hash) (privk b) (privk c) (privk m))
+  (uniq-orig nm)
+  (traces
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (enc c nc nb nm price hash) (privk b)) nb))
+      (send (enc (enc b nb nm hash) (privk m)))))
+  (label 13)
+  (unrealized (0 2))
+  (origs (nm (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (hash akey) (b c m name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (hash hash) (b b) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (hash hash)
+    (b b) (c c))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (invk hash) (privk b) (privk c) (privk m))
+  (uniq-orig nb nm)
+  (operation encryption-test (added-strand bank 2)
+    (enc (enc c nc nb nm price hash) (privk b)) (0 2))
+  (traces
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (enc c nc nb nm price hash) (privk b)) nb))
+      (send (enc (enc b nb nm hash) (privk m))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c))))))
+  (label 14)
+  (parent 13)
+  (unrealized (0 2) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (goods price text) (hash akey) (b c m b-0 name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (hash hash) (b b) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (hash hash)
+    (b b) (c c))
+  (defstrand customer 3 (nc nc) (nm nm) (goods goods) (price price)
+    (b b-0) (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (1 0)))
+  (non-orig (invk hash) (privk b) (privk c) (privk m))
+  (uniq-orig nb nc nm)
+  (operation nonce-test (added-strand customer 3) nm (1 0)
+    (enc nc nm m goods price (pubk c)))
+  (traces
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (enc c nc nb nm price hash) (privk b)) nb))
+      (send (enc (enc b nb nm hash) (privk m))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b-0)))))
+  (label 15)
+  (parent 14)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo
+  (vars (nb nc nm data) (price goods text) (hash akey) (b c b-0 m name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (hash hash) (b b) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (price price) (hash hash)
+    (b b) (c c))
+  (defstrand customer 5 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (hash hash) (b b-0) (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (2 3)) ((2 0) (0 0)) ((2 2) (1 0))
+    ((2 4) (0 2)))
+  (non-orig (invk hash) (privk b) (privk c) (privk m))
+  (uniq-orig nb nc nm)
+  (operation nonce-test (displaced 2 3 customer 5) nb (0 2)
+    (enc nc nb (pubk c)) (enc c nc nb nm price hash))
+  (traces
+    ((recv (enc c nc goods price (pubk m)))
+      (send (enc nc nm m goods price (pubk c)))
+      (recv (cat (enc (enc c nc nb nm price hash) (privk b)) nb))
+      (send (enc (enc b nb nm hash) (privk m))))
+    ((recv (enc c nc nm price (pubk b)))
+      (send
+        (cat (enc (enc c nc nb nm price hash) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods price (pubk m)))
+      (recv (enc nc nm m goods price (pubk c)))
+      (send (enc c nc nm price (pubk b-0)))
+      (recv
+        (cat (enc (enc c nc nb nm price hash) (privk b-0))
+          (enc nc nb (pubk c))))
+      (send (cat (enc (enc c nc nb nm price hash) (privk b-0)) nb))))
+  (label 16)
+  (parent 15)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((b b) (c c) (m m) (hash hash) (nb nb) (nc nc) (nm nm)
+        (goods goods) (price price))))
+  (origs (nc (2 0)) (nb (1 1)) (nm (0 1))))
+
+(comment "Nothing left to do")
diff --git a/tst/epmo_acctnum-key-hash.scm b/tst/epmo_acctnum-key-hash.scm
new file mode 100644
--- /dev/null
+++ b/tst/epmo_acctnum-key-hash.scm
@@ -0,0 +1,100 @@
+(herald "Electronic Purchase with Money Order Protocol Variant with Key Hashing"
+  (comment "This version includes account numbers in exchanges"))
+
+;; The results of running CPSA on this input produces interesting
+;; output.  One of the shapes is produced only as a result of
+;; generalization, not cohort reduction.  It is a counterexample to
+;; the hypthesis that all shapes are produced by cohort reduction, and
+;; the purpose of generalization is to distinguish the shapes from the
+;; other realized skeletons produced by cohort reduction.
+
+;; The shape in question identifies the bank's nonce with price of the
+;; goods.  The variable cannot be separated because the uniquely
+;; originating variable originates on the merchant strand, but after
+;; separation, it would originate on the bank's strand.
+
+;; Adding a role unique origination assumption to the bank role for
+;; its nonce eliminates the undesired shape.
+
+(defprotocol epmo_acctnum basic
+  (defrole bank
+    (vars (b c m name) (acctnum text) (nc nm nb price text))
+    (trace
+     (recv (enc c nc nm acctnum price (pubk b)))
+     (send (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+		(enc nc nb (pubk c))))
+     (recv (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    (annotations b
+      (1
+        (forall ((pm name))
+          (implies
+            (and (authtransfer c acctnum b price pm nm)
+              (reqtransfer pm b price pm nm))
+            (dotransfer acctnum b price pm nm))))
+      (2
+        (and (says c (authtransfer c acctnum b price m nm))
+          (says m (reqtransfer m b price m nm))))))
+  (defrole customer
+    (vars (b c m name) (acctnum nb nc nm goods price text))
+    (trace
+     (send (enc c nc goods (pubk m)))
+     (recv (enc nc nm m price (pubk c)))
+     (send (enc c nc nm acctnum price (pubk b)))
+     (recv (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+		(enc nc nb (pubk c))))
+     (send (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+		nb)))
+    (non-orig (privk b))
+    (uniq-orig nc)
+    (annotations c
+      (1
+        (says m
+          (implies
+            (exists ((acctnum2 text))
+              (dotransfer acctnum2 b price m nm)) (doship m goods c))))
+      (3
+        (says b
+          (forall ((pm name))
+            (implies
+              (and (authtransfer c acctnum b price m nm)
+                (reqtransfer pm b price pm nm))
+              (dotransfer acctnum b price pm nm)))))
+      (4 (authtransfer c acctnum b price m nm))))
+  (defrole merchant (vars (b c m name) (nb nc nm goods price text))
+    (trace
+     (recv (enc c nc goods (pubk m)))
+     (send (enc nc nm m price (pubk c)))
+     (recv (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+		nb))
+     (send (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    (uniq-orig nm)
+    (annotations m
+      (1
+        (implies
+          (exists ((acctnum2 text)) (dotransfer acctnum2 b price m nm))
+          (doship m goods c)))
+      (2
+        (and
+          (says b
+            (forall ((pm name))
+              (exists ((acctnum2 text))
+                (implies
+                  (and (authtransfer c acctnum2 b price m nm)
+                    (reqtransfer pm b price pm nm))
+                  (dotransfer acctnum2 b price pm nm)))))
+          (says c
+            (exists ((acctnum2 text))
+              (authtransfer c acctnum2 b price m nm)))))
+      (3 (and (reqtransfer m b price m nm) (doship m goods c))))))
+
+(defskeleton epmo_acctnum
+  (vars (b m c name) (nm nc nb text))
+  (defstrand merchant 4 (b b) (m m) (c c) (nm nm) (nc nc) (nb nb))
+  (non-orig (privk b) (privk m) (privk c))
+  (uniq-orig nm nc nb))
+
+(defskeleton epmo_acctnum
+  (vars (b m c name) (nm nb nc text) (price acctnum text))
+  (defstrand bank 3 (b b) (m m) (c c) (nm nm) (nb nb) (nc nc))
+  (non-orig (privk b) (privk m) (privk c))
+  (uniq-orig nm nc nb))
diff --git a/tst/epmo_acctnum-key-hash.tst b/tst/epmo_acctnum-key-hash.tst
new file mode 100644
--- /dev/null
+++ b/tst/epmo_acctnum-key-hash.tst
@@ -0,0 +1,943 @@
+(herald
+  "Electronic Purchase with Money Order Protocol Variant with Key Hashing"
+  (comment "This version includes account numbers in exchanges"))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/epmo_acctnum-key-hash.scm")
+
+(defprotocol epmo_acctnum basic
+  (defrole bank
+    (vars (b c m name) (acctnum nc nm nb price text))
+    (trace (recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    (annotations b
+      (1
+        (forall ((pm name))
+          (implies
+            (and (authtransfer c acctnum b price pm nm)
+              (reqtransfer pm b price pm nm))
+            (dotransfer acctnum b price pm nm))))
+      (2
+        (and (says c (authtransfer c acctnum b price m nm))
+          (says m (reqtransfer m b price m nm))))))
+  (defrole customer
+    (vars (b c m name) (acctnum nb nc nm goods price text))
+    (trace (send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb)))
+    (non-orig (privk b))
+    (uniq-orig nc)
+    (annotations c
+      (1
+        (says m
+          (implies
+            (exists ((acctnum2 text))
+              (dotransfer acctnum2 b price m nm)) (doship m goods c))))
+      (3
+        (says b
+          (forall ((pm name))
+            (implies
+              (and (authtransfer c acctnum b price m nm)
+                (reqtransfer pm b price pm nm))
+              (dotransfer acctnum b price pm nm)))))
+      (4 (authtransfer c acctnum b price m nm))))
+  (defrole merchant
+    (vars (b c m name) (nb nc nm goods price text))
+    (trace (recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    (uniq-orig nm)
+    (annotations m
+      (1
+        (implies
+          (exists ((acctnum2 text)) (dotransfer acctnum2 b price m nm))
+          (doship m goods c)))
+      (2
+        (and
+          (says b
+            (forall ((pm name))
+              (exists ((acctnum2 text))
+                (implies
+                  (and (authtransfer c acctnum2 b price m nm)
+                    (reqtransfer pm b price pm nm))
+                  (dotransfer acctnum2 b price pm nm)))))
+          (says c
+            (exists ((acctnum2 text))
+              (authtransfer c acctnum2 b price m nm)))))
+      (3 (and (reqtransfer m b price m nm) (doship m goods c)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton epmo_acctnum
+  (vars (nm nc nb goods price text) (b m c name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (non-orig (privk b) (privk m) (privk c))
+  (uniq-orig nm nc nb)
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m)))))
+  (label 0)
+  (unrealized (0 2))
+  (origs (nm (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo_acctnum
+  (vars (nm nc nb goods price acctnum text) (b m c name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (acctnum acctnum) (nc nc) (nm nm) (nb nb)
+    (price price) (b b) (c c))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk b) (privk m) (privk c))
+  (uniq-orig nm nc nb)
+  (operation encryption-test (added-strand bank 2)
+    (enc (enc "hash" (cat c nc nb nm price)) (privk b)) (0 2))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 2) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo_acctnum
+  (vars (nm nc nb goods price acctnum acctnum-0 goods-0 text)
+    (b m c b-0 name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (acctnum acctnum) (nc nc) (nm nm) (nb nb)
+    (price price) (b b) (c c))
+  (defstrand customer 3 (acctnum acctnum-0) (nc nc) (nm nm)
+    (goods goods-0) (price price) (b b-0) (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk b-0))
+  (uniq-orig nm nc nb)
+  (operation nonce-test (added-strand customer 3) nm (1 0)
+    (enc nc nm m price (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b-0)))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo_acctnum
+  (vars (nm nc nb goods price acctnum goods-0 text) (m c b name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (acctnum acctnum) (nc nc) (nm nm) (nb nb)
+    (price price) (b b) (c c))
+  (defstrand customer 3 (acctnum acctnum) (nc nc) (nm nm)
+    (goods goods-0) (price price) (b b) (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (1 0)))
+  (non-orig (privk m) (privk c) (privk b))
+  (uniq-orig nm nc nb)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nm
+    (1 0) (enc nc nm m price (pubk c))
+    (enc c nc nm acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b)))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 0) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton epmo_acctnum
+  (vars (nm nc nb price acctnum goods text) (m c b name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (acctnum acctnum) (nc nc) (nm nm) (nb nb)
+    (price price) (b b) (c c))
+  (defstrand customer 3 (acctnum acctnum) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (1 0)))
+  (non-orig (privk m) (privk c) (privk b))
+  (uniq-orig nm nc nb)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b)))))
+  (label 4)
+  (parent 3)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo_acctnum
+  (vars (nm nc nb goods price acctnum goods-0 nm-0 price-0 text)
+    (m c b name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (acctnum acctnum) (nc nc) (nm nm) (nb nb)
+    (price price) (b b) (c c))
+  (defstrand customer 3 (acctnum acctnum) (nc nc) (nm nm)
+    (goods goods-0) (price price) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods-0)
+    (price price-0) (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (3 0)) ((2 2) (1 0))
+    ((3 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk b))
+  (uniq-orig nm nc nb nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c)))))
+  (label 5)
+  (parent 3)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo_acctnum
+  (vars (nc nb acctnum nm goods price text) (c b m name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (acctnum acctnum) (nc nc) (nm nm) (nb nb)
+    (price price) (b b) (c c))
+  (defstrand customer 5 (acctnum acctnum) (nb nb) (nc nc) (nm nm)
+    (goods goods) (price price) (b b) (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (2 3)) ((2 0) (0 0)) ((2 2) (1 0))
+    ((2 4) (0 2)))
+  (non-orig (privk c) (privk b) (privk m))
+  (uniq-orig nc nb nm)
+  (operation nonce-test (displaced 2 3 customer 5) nb (0 2)
+    (enc nc nb (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))))
+  (label 6)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((b b) (m m) (c c) (nm nm) (nc nc) (nb nb) (goods goods)
+        (price price))))
+  (origs (nc (2 0)) (nm (0 1)) (nb (1 1))))
+
+(defskeleton epmo_acctnum
+  (vars (nm nc nb price acctnum goods nm-0 price-0 text) (m c b name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (acctnum acctnum) (nc nc) (nm nm) (nb nb)
+    (price price) (b b) (c c))
+  (defstrand customer 3 (acctnum acctnum) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (3 0)) ((2 2) (1 0))
+    ((3 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk b))
+  (uniq-orig nm nc nb nm-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm-0 m price-0 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c)))))
+  (label 7)
+  (parent 5)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo_acctnum
+  (vars (nc nb nm price acctnum nm-0 goods price-0 text) (c b m name))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm-0) (goods goods)
+    (price price-0) (b b) (c c) (m m))
+  (defstrand bank 2 (acctnum acctnum) (nc nc) (nm nm-0) (nb nb)
+    (price price-0) (b b) (c c))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price)
+    (c c) (m m))
+  (defstrand customer 5 (acctnum acctnum) (nb nb) (nc nc) (nm nm-0)
+    (goods goods) (price price-0) (b b) (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (3 3)) ((2 1) (0 0)) ((3 0) (2 0))
+    ((3 2) (1 0)) ((3 4) (0 2)))
+  (non-orig (privk c) (privk b) (privk m))
+  (uniq-orig nc nb nm nm-0)
+  (operation nonce-test (displaced 2 4 customer 5) nb (0 2)
+    (enc nc nb (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm-0 price-0)) (privk b))
+          nb)) (send (enc (enc "hash" (cat b m nb nm-0)) (privk m))))
+    ((recv (enc c nc nm-0 acctnum price-0 (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm-0 price-0)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm-0 m price-0 (pubk c)))
+      (send (enc c nc nm-0 acctnum price-0 (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm-0 price-0)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm-0 price-0)) (privk b))
+          nb))))
+  (label 8)
+  (parent 7)
+  (seen 6)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol epmo_acctnum basic
+  (defrole bank
+    (vars (b c m name) (acctnum nc nm nb price text))
+    (trace (recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    (annotations b
+      (1
+        (forall ((pm name))
+          (implies
+            (and (authtransfer c acctnum b price pm nm)
+              (reqtransfer pm b price pm nm))
+            (dotransfer acctnum b price pm nm))))
+      (2
+        (and (says c (authtransfer c acctnum b price m nm))
+          (says m (reqtransfer m b price m nm))))))
+  (defrole customer
+    (vars (b c m name) (acctnum nb nc nm goods price text))
+    (trace (send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb)))
+    (non-orig (privk b))
+    (uniq-orig nc)
+    (annotations c
+      (1
+        (says m
+          (implies
+            (exists ((acctnum2 text))
+              (dotransfer acctnum2 b price m nm)) (doship m goods c))))
+      (3
+        (says b
+          (forall ((pm name))
+            (implies
+              (and (authtransfer c acctnum b price m nm)
+                (reqtransfer pm b price pm nm))
+              (dotransfer acctnum b price pm nm)))))
+      (4 (authtransfer c acctnum b price m nm))))
+  (defrole merchant
+    (vars (b c m name) (nb nc nm goods price text))
+    (trace (recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    (uniq-orig nm)
+    (annotations m
+      (1
+        (implies
+          (exists ((acctnum2 text)) (dotransfer acctnum2 b price m nm))
+          (doship m goods c)))
+      (2
+        (and
+          (says b
+            (forall ((pm name))
+              (exists ((acctnum2 text))
+                (implies
+                  (and (authtransfer c acctnum2 b price m nm)
+                    (reqtransfer pm b price pm nm))
+                  (dotransfer acctnum2 b price pm nm)))))
+          (says c
+            (exists ((acctnum2 text))
+              (authtransfer c acctnum2 b price m nm)))))
+      (3 (and (reqtransfer m b price m nm) (doship m goods c)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton epmo_acctnum
+  (vars (nm nb nc acctnum price text) (b m c name))
+  (defstrand bank 3 (acctnum acctnum) (nc nc) (nm nm) (nb nb)
+    (price price) (b b) (c c) (m m))
+  (non-orig (privk b) (privk m) (privk c))
+  (uniq-orig nm nb nc)
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b m nb nm)) (privk m)))))
+  (label 9)
+  (unrealized (0 2))
+  (origs (nb (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo_acctnum
+  (vars (nm nb nc acctnum price nc-0 goods price-0 text)
+    (b m c c-0 name))
+  (defstrand bank 3 (acctnum acctnum) (nc nc) (nm nm) (nb nb)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 4 (nb nb) (nc nc-0) (nm nm) (goods goods)
+    (price price-0) (b b) (c c-0) (m m))
+  (precedes ((0 1) (1 2)) ((1 1) (0 0)) ((1 3) (0 2)))
+  (non-orig (privk b) (privk m) (privk c))
+  (uniq-orig nm nb nc)
+  (operation encryption-test (added-strand merchant 4)
+    (enc (enc "hash" (cat b m nb nm)) (privk m)) (0 2))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((recv (enc c-0 nc-0 goods (pubk m)))
+      (send (enc nc-0 nm m price-0 (pubk c-0)))
+      (recv
+        (cat (enc (enc "hash" (cat c-0 nc-0 nb nm price-0)) (privk b))
+          nb)) (send (enc (enc "hash" (cat b m nb nm)) (privk m)))))
+  (label 10)
+  (parent 9)
+  (unrealized (1 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo_acctnum
+  (vars (nm nb nc acctnum price goods text) (b m c name))
+  (defstrand bank 3 (acctnum acctnum) (nc nc) (nm nm) (nb nb)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (precedes ((0 1) (1 2)) ((1 1) (0 0)) ((1 3) (0 2)))
+  (non-orig (privk b) (privk m) (privk c))
+  (uniq-orig nm nb nc)
+  (operation encryption-test (displaced 2 0 bank 2)
+    (enc (enc "hash" (cat c-0 nc-0 nb nm price-0)) (privk b)) (1 2))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m)))))
+  (label 11)
+  (parent 10)
+  (unrealized (0 0) (1 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo_acctnum
+  (vars
+    (nm nb nc acctnum price goods acctnum-0 nm-0 goods-0 price-0 text)
+    (b m c b-0 m-0 name))
+  (defstrand bank 3 (acctnum acctnum) (nc nc) (nm nm) (nb nb)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand customer 5 (acctnum acctnum-0) (nb nb) (nc nc) (nm nm-0)
+    (goods goods-0) (price price-0) (b b-0) (c c) (m m-0))
+  (precedes ((0 1) (2 3)) ((1 1) (0 0)) ((1 3) (0 2)) ((2 0) (1 0))
+    ((2 4) (1 2)))
+  (non-orig (privk b) (privk m) (privk c) (privk b-0))
+  (uniq-orig nm nb nc)
+  (operation nonce-test (added-strand customer 5) nb (1 2)
+    (enc nc nb (pubk c)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((send (enc c nc goods-0 (pubk m-0)))
+      (recv (enc nc nm-0 m-0 price-0 (pubk c)))
+      (send (enc c nc nm-0 acctnum-0 price-0 (pubk b-0)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm-0 price-0)) (privk b-0))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm-0 price-0)) (privk b-0))
+          nb))))
+  (label 12)
+  (parent 11)
+  (unrealized (0 0) (2 3))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo_acctnum
+  (vars (nm nb nc acctnum price goods acctnum-0 goods-0 text)
+    (b m c m-0 name))
+  (defstrand bank 3 (acctnum acctnum) (nc nc) (nm nm) (nb nb)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand customer 5 (acctnum acctnum-0) (nb nb) (nc nc) (nm nm)
+    (goods goods-0) (price price) (b b) (c c) (m m-0))
+  (precedes ((0 1) (2 3)) ((1 1) (0 0)) ((1 1) (2 1)) ((1 3) (0 2))
+    ((2 0) (1 0)) ((2 4) (1 2)))
+  (non-orig (privk b) (privk m) (privk c))
+  (uniq-orig nm nb nc)
+  (operation encryption-test (displaced 3 0 bank 2)
+    (enc (enc "hash" (cat c nc nb nm-0 price-0)) (privk b-0)) (2 3))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((send (enc c nc goods-0 (pubk m-0)))
+      (recv (enc nc nm m-0 price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))))
+  (label 13)
+  (parent 12)
+  (unrealized (0 0) (2 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo_acctnum
+  (vars (nm nb nc acctnum price goods acctnum-0 goods-0 text)
+    (b m c name))
+  (defstrand bank 3 (acctnum acctnum) (nc nc) (nm nm) (nb nb)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand customer 5 (acctnum acctnum-0) (nb nb) (nc nc) (nm nm)
+    (goods goods-0) (price price) (b b) (c c) (m m))
+  (precedes ((0 1) (2 3)) ((1 1) (0 0)) ((1 1) (2 1)) ((1 3) (0 2))
+    ((2 0) (1 0)) ((2 4) (1 2)))
+  (non-orig (privk b) (privk m) (privk c))
+  (uniq-orig nm nb nc)
+  (operation nonce-test (contracted (m-0 m)) nm (2 1)
+    (enc nc nm m price (pubk c)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))))
+  (label 14)
+  (parent 13)
+  (unrealized (0 0) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton epmo_acctnum
+  (vars (nm nb nc acctnum price acctnum-0 goods text) (b m c name))
+  (defstrand bank 3 (acctnum acctnum) (nc nc) (nm nm) (nb nb)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand customer 5 (acctnum acctnum-0) (nb nb) (nc nc) (nm nm)
+    (goods goods) (price price) (b b) (c c) (m m))
+  (precedes ((0 1) (2 3)) ((1 1) (0 0)) ((1 1) (2 1)) ((1 3) (0 2))
+    ((2 0) (1 0)) ((2 4) (1 2)))
+  (non-orig (privk b) (privk m) (privk c))
+  (uniq-orig nm nb nc)
+  (operation nonce-test (contracted (goods-0 goods)) nc (1 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))))
+  (label 15)
+  (parent 14)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo_acctnum
+  (vars
+    (nm nb nc acctnum price goods acctnum-0 goods-0 nm-0 price-0 text)
+    (b m c name))
+  (defstrand bank 3 (acctnum acctnum) (nc nc) (nm nm) (nb nb)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand customer 5 (acctnum acctnum-0) (nb nb) (nc nc) (nm nm)
+    (goods goods-0) (price price) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods-0)
+    (price price-0) (c c) (m m))
+  (precedes ((0 1) (2 3)) ((1 1) (0 0)) ((1 1) (2 1)) ((1 3) (0 2))
+    ((2 0) (3 0)) ((2 4) (1 2)) ((3 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c))
+  (uniq-orig nm nb nc nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (1 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb)))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c)))))
+  (label 16)
+  (parent 14)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo_acctnum
+  (vars (nm nb nc acctnum price acctnum-0 goods text) (b m c name))
+  (defstrand bank 3 (acctnum acctnum) (nc nc) (nm nm) (nb nb)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand customer 5 (acctnum acctnum-0) (nb nb) (nc nc) (nm nm)
+    (goods goods) (price price) (b b) (c c) (m m))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (1 0))
+    ((2 2) (0 0)) ((2 4) (1 2)))
+  (non-orig (privk b) (privk m) (privk c))
+  (uniq-orig nm nb nc)
+  (operation nonce-test (displaced 3 2 customer 3) nm (0 0)
+    (enc nc nm m price (pubk c)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))))
+  (label 17)
+  (parent 15)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo_acctnum
+  (vars (nm nb nc acctnum price acctnum-0 goods nm-0 price-0 text)
+    (b m c name))
+  (defstrand bank 3 (acctnum acctnum) (nc nc) (nm nm) (nb nb)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand customer 5 (acctnum acctnum-0) (nb nb) (nc nc) (nm nm)
+    (goods goods) (price price) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (2 3)) ((1 1) (0 0)) ((1 1) (2 1)) ((1 3) (0 2))
+    ((2 0) (3 0)) ((2 4) (1 2)) ((3 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c))
+  (uniq-orig nm nb nc nm-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (1 0)
+    (enc nc nm-0 m price-0 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb)))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c)))))
+  (label 18)
+  (parent 16)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo_acctnum
+  (vars (nm nb nc price acctnum goods text) (b m c name))
+  (defstrand bank 3 (acctnum acctnum) (nc nc) (nm nm) (nb nb)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand customer 5 (acctnum acctnum) (nb nb) (nc nc) (nm nm)
+    (goods goods) (price price) (b b) (c c) (m m))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (1 0))
+    ((2 2) (0 0)) ((2 4) (1 2)))
+  (non-orig (privk b) (privk m) (privk c))
+  (uniq-orig nm nb nc)
+  (operation nonce-test (contracted (acctnum-0 acctnum)) nm (0 0)
+    (enc nc nm m price (pubk c)) (enc c nc nm acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))))
+  (label 19)
+  (parent 17)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((b b) (m m) (c c) (nm nm) (nb nb) (nc nc) (acctnum acctnum)
+        (price price))))
+  (origs (nc (2 0)) (nm (1 1)) (nb (0 1))))
+
+(defskeleton epmo_acctnum
+  (vars (nm nb nc acctnum price acctnum-0 goods nm-0 price-0 text)
+    (b m c name))
+  (defstrand bank 3 (acctnum acctnum) (nc nc) (nm nm) (nb nb)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand customer 5 (acctnum acctnum-0) (nb nb) (nc nc) (nm nm)
+    (goods goods) (price price) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (3 0))
+    ((2 2) (0 0)) ((2 4) (1 2)) ((3 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c))
+  (uniq-orig nm nb nc nm-0)
+  (operation nonce-test (displaced 4 2 customer 3) nm (0 0)
+    (enc nc nm m price (pubk c)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb)))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c)))))
+  (label 20)
+  (parent 18)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton epmo_acctnum
+  (vars (nm nb nc price acctnum goods nm-0 price-0 text) (b m c name))
+  (defstrand bank 3 (acctnum acctnum) (nc nc) (nm nm) (nb nb)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 4 (nb nb) (nc nc) (nm nm) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand customer 5 (acctnum acctnum) (nb nb) (nc nc) (nm nm)
+    (goods goods) (price price) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (3 0))
+    ((2 2) (0 0)) ((2 4) (1 2)) ((3 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c))
+  (uniq-orig nm nb nc nm-0)
+  (operation nonce-test (contracted (acctnum-0 acctnum)) nm (0 0)
+    (enc nc nm m price (pubk c)) (enc c nc nm acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb))
+      (send (enc (enc "hash" (cat b m nb nm)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" (cat c nc nb nm price)) (privk b)) nb)))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c)))))
+  (label 21)
+  (parent 20)
+  (seen 19)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/tst/epmo_acctnum.lisp b/tst/epmo_acctnum.lisp
new file mode 100644
--- /dev/null
+++ b/tst/epmo_acctnum.lisp
@@ -0,0 +1,103 @@
+(herald "Electronic Purchase with Money Order Protocol Variant"
+  (bound 12) (limit 5000)
+  (comment "This version includes account numbers in exchanges"))
+
+;; The results of running CPSA on this input produces interesting
+;; output.  One of the shapes is produced only as a result of
+;; generalization, not cohort reduction.  It is a counterexample to
+;; the hypthesis that all shapes are produced by cohort reduction, and
+;; the purpose of generalization is to distinguish the shapes from the
+;; other realized skeletons produced by cohort reduction.
+
+;; The shape in question identifies the bank's nonce with price of the
+;; goods.  The variable cannot be separated because the uniquely
+;; originating variable originates on the merchant strand, but after
+;; separation, it would originate on the bank's strand.
+
+;; Adding a role unique origination assumption to the bank role for
+;; its nonce eliminates the undesired shape.
+
+(defprotocol epmo_acctnum basic
+  (defrole bank
+    (vars (b c m name) (acctnum text) (hash name) (nc nm nb price text))
+    (trace
+     (recv (enc c nc nm acctnum price (pubk b)))
+     (send (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+		(enc nc nb (pubk c))))
+     (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    (non-orig (privk hash))
+    (annotations b
+      (1
+        (forall ((pm name))
+          (implies
+            (and (authtransfer c acctnum b price pm nm)
+              (reqtransfer pm b price pm nm))
+            (dotransfer acctnum b price pm nm))))
+      (2
+        (and (says c (authtransfer c acctnum b price m nm))
+          (says m (reqtransfer m b price m nm))))))
+  (defrole customer
+    (vars (b c m hash name) (acctnum nb nc nm goods price text))
+    (trace
+     (send (enc c nc goods (pubk m)))
+     (recv (enc nc nm m price (pubk c)))
+     (send (enc c nc nm acctnum price (pubk b)))
+     (recv (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+		(enc nc nb (pubk c))))
+     (send (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+		nb)))
+    (non-orig (privk b) (privk hash))
+    (uniq-orig nc)
+    (annotations c
+      (1
+        (says m
+          (implies
+            (exists ((acctnum2 text))
+              (dotransfer acctnum2 b price m nm)) (doship m goods c))))
+      (3
+        (says b
+          (forall ((pm name))
+            (implies
+              (and (authtransfer c acctnum b price m nm)
+                (reqtransfer pm b price pm nm))
+              (dotransfer acctnum b price pm nm)))))
+      (4 (authtransfer c acctnum b price m nm))))
+  (defrole merchant (vars (b c m hash name) (nb nc nm goods price text))
+    (trace
+     (recv (enc c nc goods (pubk m)))
+     (send (enc nc nm m price (pubk c)))
+     (recv (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+		nb))
+     (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    (non-orig (privk hash))
+    (uniq-orig nm)
+    (annotations m
+      (1
+        (implies
+          (exists ((acctnum2 text)) (dotransfer acctnum2 b price m nm))
+          (doship m goods c)))
+      (2
+        (and
+          (says b
+            (forall ((pm name))
+              (exists ((acctnum2 text))
+                (implies
+                  (and (authtransfer c acctnum2 b price m nm)
+                    (reqtransfer pm b price pm nm))
+                  (dotransfer acctnum2 b price pm nm)))))
+          (says c
+            (exists ((acctnum2 text))
+              (authtransfer c acctnum2 b price m nm)))))
+      (3 (and (reqtransfer m b price m nm) (doship m goods c))))))
+
+(defskeleton epmo_acctnum
+  (vars (b m c name) (nm nc nb text) (hash name))
+  (defstrand merchant 4 (b b) (m m) (c c) (nm nm) (nc nc) (nb nb) (hash hash))
+  (non-orig (privk b) (privk m) (privk c) (privk hash))
+  (uniq-orig nm nc nb))
+
+(defskeleton epmo_acctnum
+  (vars (b m c name) (nm nb nc text) (hash name) (price acctnum text))
+  (defstrand bank 3 (b b) (m m) (c c) (nm nm) (nb nb) (nc nc) (hash hash))
+  (non-orig (privk b) (privk m) (privk c) (privk hash))
+  (uniq-orig nm nc nb))
diff --git a/tst/epmo_acctnum.tst b/tst/epmo_acctnum.tst
new file mode 100644
# file too large to diff: tst/epmo_acctnum.tst
diff --git a/tst/eq_test.scm b/tst/eq_test.scm
deleted file mode 100644
--- a/tst/eq_test.scm
+++ /dev/null
@@ -1,33 +0,0 @@
-(herald "Equality constraint test protocol"
-   (comment "First skeleton should have a shape,"
-            "second, and hird should be dead."))
-
-(defprotocol eqtest basic
-  (defrole init
-     (vars (n1 n2 text) (k skey))
-     (trace
-       (send (cat n1 (enc n1 n2 k)))
-       (recv n2))
-     (non-orig k)
-     (uniq-orig n1 n2)
-  )
-)
-
-;;; With no inequality declaration, a shape
-;;; should be found where n1 = n2.
-(defskeleton eqtest
-   (vars (n1 n2 text) (k skey))
-   (defstrand init 2 (n1 n1) (n2 n2) (k k)))
-
-;;; With the equality declaration, n1 = n2 should
-;;; be found by skeletonizing.
-(defskeleton eqtest
-   (vars (n1 n2 text))
-   (defstrand init 2 (n1 n1) (n2 n2))
-   (eq (n1 n2)))
-
-;;; An fn-of declaration should produce a similar result.
-(defskeleton eqtest
-  (vars (n1 n2 text))
-  (defstrand init 2 (n1 n1) (n2 n2))
-  (fn-of ("foo" (n1 "bar") (n2 "bar"))))
diff --git a/tst/eq_test.tst b/tst/eq_test.tst
deleted file mode 100644
--- a/tst/eq_test.tst
+++ /dev/null
@@ -1,110 +0,0 @@
-(herald "Equality constraint test protocol"
-  (comment "First skeleton should have a shape,"
-    "second, and hird should be dead."))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/eq_test.scm")
-
-(defprotocol eqtest basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))
-
-(defskeleton eqtest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (traces ((send (cat n1 (enc n1 n2 k))) (recv n2)))
-  (label 0)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton eqtest
-  (vars (n1 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n1) (k k))
-  (non-orig k)
-  (uniq-orig n1)
-  (operation nonce-test (displaced 1 0 init 1) n2 (0 1) (enc n1 n2 k))
-  (traces ((send (cat n1 (enc n1 n1 k))) (recv n1)))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n1 n1) (n2 n1) (k k))))
-  (origs (n1 (0 0))))
-
-(comment "Nothing left to do")
-
-(defprotocol eqtest basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))
-
-(defskeleton eqtest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (traces ((send (cat n1 (enc n1 n2 k))) (recv n2)))
-  (label 2)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton eqtest
-  (vars (n1 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n1) (k k))
-  (non-orig k)
-  (uniq-orig n1)
-  (operation nonce-test (displaced 1 0 init 1) n2 (0 1) (enc n1 n2 k))
-  (traces ((send (cat n1 (enc n1 n1 k))) (recv n1)))
-  (label 3)
-  (parent 2)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n1 n1) (n2 n1) (k k))))
-  (origs (n1 (0 0))))
-
-(comment "Nothing left to do")
-
-(defprotocol eqtest basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))
-
-(defskeleton eqtest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (fn-of ("foo" (n1 "bar") (n2 "bar")))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (traces ((send (cat n1 (enc n1 n2 k))) (recv n2)))
-  (label 4)
-  (unrealized (0 1))
-  (preskeleton)
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment "Not a skeleton"))
-
-(defskeleton eqtest
-  (vars (n2 text) (k skey))
-  (defstrand init 2 (n1 n2) (n2 n2) (k k))
-  (fn-of ("foo" (n2 "bar")))
-  (non-orig k)
-  (uniq-orig n2)
-  (traces ((send (cat n2 (enc n2 n2 k))) (recv n2)))
-  (label 5)
-  (parent 4)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n2 n2) (k k))))
-  (origs (n2 (0 0))))
-
-(comment "Nothing left to do")
diff --git a/tst/expand.scm b/tst/expand.scm
new file mode 100644
--- /dev/null
+++ b/tst/expand.scm
@@ -0,0 +1,18 @@
+(herald expand (expand) (comment "test macro expansion"))
+
+(defmacro (altenc t k)
+  (enc t k))
+
+(defmacro (altcat a b)
+  (^ a b))
+
+(defprotocol expand basic
+  (defrole init
+    (vars (t text) (k skey))
+    (trace
+     (send (altenc t k))
+     (recv (cat (altcat t k))))))
+
+(defskeleton expand
+  (vars)
+  (defstrand init 2))
diff --git a/tst/expand.tst b/tst/expand.tst
new file mode 100644
--- /dev/null
+++ b/tst/expand.tst
@@ -0,0 +1,11 @@
+(comment "CPSA 4.4.1")
+(comment "Expanded macros")
+
+(herald expand (expand) (comment "test macro expansion"))
+
+(defprotocol expand basic
+  (defrole init
+    (vars (t text) (k skey))
+    (trace (send (enc t k)) (recv (cat t k)))))
+
+(defskeleton expand (vars) (defstrand init 2))
diff --git a/tst/facts.scm b/tst/facts.scm
new file mode 100644
--- /dev/null
+++ b/tst/facts.scm
@@ -0,0 +1,95 @@
+(herald facts)
+
+;;; Testing facts
+
+(defprotocol unilateral basic
+  (defrole init
+     (vars (n text) (k akey))
+     (trace
+      (send (enc n k))
+      (recv n))
+     (uniq-orig n))
+  (defrole resp
+     (vars (n text) (k akey))
+     (trace
+      (recv (enc n k))
+      (send n))))
+
+(defskeleton unilateral
+   (vars (k akey))
+   (defstrand init 2 (k k))
+   (non-orig (invk k))
+   (facts (foo 0 k)
+	  (bar 0 (invk k))))
+
+(defskeleton unilateral
+   (vars (n text) (k akey))
+   (defstrand resp 2 (n n) (k k))
+   (pen-non-orig n)
+   (non-orig (invk k)))
+
+;;; The same two problems posed using security goals.  The goals were
+;;; taken from the output of cpsasas.
+
+(defgoal unilateral
+  (forall ((n text) (k akey) (z strd))
+    (implies
+      (and (p "init" z 2) (p "init" "n" z n) (p "init" "k" z k)
+        (non (invk k)) (uniq-at n z 0)
+	(fact foo z k)
+	(fact bar z (invk k)))
+      (exists ((z-0 strd))
+        (and (p "resp" z-0 2) (p "resp" "n" z-0 n) (p "resp" "k" z-0 k)
+          (prec z 0 z-0 0) (prec z-0 1 z 1))))))
+
+(defgoal unilateral
+  (forall ((n text) (k akey) (z strd))
+    (implies
+      (and (p "resp" z 2) (p "resp" "n" z n) (p "resp" "k" z k)
+        (non (invk k)) (pnon n))
+      (exists ((k-0 akey) (z-0 strd))
+        (and (p "init" z-0 1) (p "init" "n" z-0 n)
+          (p "init" "k" z-0 k-0) (prec z-0 0 z 0) (uniq-at n z-0 0))))))
+
+;;; Unilateral authentication from ISO/IEC JTC 1/SC 27/WG 2 N1050
+
+(defprotocol iso-unilateral basic
+  (defrole resp
+    (vars (na nb t1 t2 t3 text) (b name))
+    (trace
+     (recv (cat nb t1))
+     (send (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    (uniq-orig na))
+  (defrole init
+    (vars (na nb t1 t2 t3 text) (b name))
+    (trace
+     (send (cat nb t1))
+     (recv (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    (uniq-orig nb))
+  (comment "Two pass authentication"))
+
+(defskeleton iso-unilateral
+  (vars (b name))
+  (defstrand init 2 (b b))
+  (non-orig (privk b)))
+
+;;; Same as above, but also checking to see if there was agreement.
+(defgoal iso-unilateral
+  (forall ((b name) (z strd))
+    (implies
+     (and (p "init" z 2)
+	  (p "init" "b" z b)
+	  (non (privk b)))
+      (exists ((y strd))
+	      (and (p "resp" y 2)
+		   (p "resp" "b" y b))))))
+
+;;; Silly example.  Of course the shape produced does not satisfy this
+;;; goal!
+(defgoal iso-unilateral
+  (forall ((b name) (z strd))
+    (implies
+     (and (p "init" z 2)
+	  (p "init" "b" z b)
+	  (non (privk b)))
+     (false))))
diff --git a/tst/facts.tst b/tst/facts.tst
new file mode 100644
--- /dev/null
+++ b/tst/facts.tst
@@ -0,0 +1,381 @@
+(herald facts)
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/facts.scm")
+
+(defprotocol unilateral basic
+  (defrole init
+    (vars (n text) (k akey))
+    (trace (send (enc n k)) (recv n))
+    (uniq-orig n))
+  (defrole resp
+    (vars (n text) (k akey))
+    (trace (recv (enc n k)) (send n)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton unilateral
+  (vars (n text) (k akey))
+  (defstrand init 2 (n n) (k k))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (facts (foo 0 k) (bar 0 (invk k)))
+  (traces ((send (enc n k)) (recv n)))
+  (label 0)
+  (unrealized (0 1))
+  (origs (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton unilateral
+  (vars (n text) (k akey))
+  (defstrand init 2 (n n) (k k))
+  (defstrand resp 2 (n n) (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (facts (foo 0 k) (bar 0 (invk k)))
+  (operation nonce-test (added-strand resp 2) n (0 1) (enc n k))
+  (traces ((send (enc n k)) (recv n)) ((recv (enc n k)) (send n)))
+  (label 1)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps ((0) ((k k) (n n))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol unilateral basic
+  (defrole init
+    (vars (n text) (k akey))
+    (trace (send (enc n k)) (recv n))
+    (uniq-orig n))
+  (defrole resp
+    (vars (n text) (k akey))
+    (trace (recv (enc n k)) (send n)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton unilateral
+  (vars (n text) (k akey))
+  (defstrand resp 2 (n n) (k k))
+  (non-orig (invk k))
+  (pen-non-orig n)
+  (traces ((recv (enc n k)) (send n)))
+  (label 2)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton unilateral
+  (vars (n text) (k k-0 akey))
+  (defstrand resp 2 (n n) (k k))
+  (defstrand init 1 (n n) (k k-0))
+  (precedes ((1 0) (0 0)))
+  (non-orig (invk k))
+  (pen-non-orig n)
+  (uniq-orig n)
+  (operation nonce-test (added-strand init 1) n (0 0))
+  (traces ((recv (enc n k)) (send n)) ((send (enc n k-0))))
+  (label 3)
+  (parent 2)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (k k))))
+  (origs (n (1 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol unilateral basic
+  (defrole init
+    (vars (n text) (k akey))
+    (trace (send (enc n k)) (recv n))
+    (uniq-orig n))
+  (defrole resp
+    (vars (n text) (k akey))
+    (trace (recv (enc n k)) (send n)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton unilateral
+  (vars (n text) (k akey))
+  (defstrand init 2 (n n) (k k))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (facts (foo 0 k) (bar 0 (invk k)))
+  (goals
+    (forall ((n text) (k akey) (z strd))
+      (implies
+        (and (p "init" z 2) (p "init" "n" z n) (p "init" "k" z k)
+          (non (invk k)) (uniq-at n z 0) (fact foo z k)
+          (fact bar z (invk k)))
+        (exists ((z-0 strd))
+          (and (p "resp" z-0 2) (p "resp" "n" z-0 n)
+            (p "resp" "k" z-0 k) (prec z 0 z-0 0) (prec z-0 1 z 1))))))
+  (traces ((send (enc n k)) (recv n)))
+  (label 4)
+  (unrealized (0 1))
+  (origs (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton unilateral
+  (vars (n text) (k akey))
+  (defstrand init 2 (n n) (k k))
+  (defstrand resp 2 (n n) (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (facts (foo 0 k) (bar 0 (invk k)))
+  (operation nonce-test (added-strand resp 2) n (0 1) (enc n k))
+  (traces ((send (enc n k)) (recv n)) ((recv (enc n k)) (send n)))
+  (label 5)
+  (parent 4)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0) ((n n) (k k))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol unilateral basic
+  (defrole init
+    (vars (n text) (k akey))
+    (trace (send (enc n k)) (recv n))
+    (uniq-orig n))
+  (defrole resp
+    (vars (n text) (k akey))
+    (trace (recv (enc n k)) (send n)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton unilateral
+  (vars (n text) (k akey))
+  (defstrand resp 2 (n n) (k k))
+  (non-orig (invk k))
+  (pen-non-orig n)
+  (goals
+    (forall ((n text) (k akey) (z strd))
+      (implies
+        (and (p "resp" z 2) (p "resp" "n" z n) (p "resp" "k" z k)
+          (non (invk k)) (pnon n))
+        (exists ((k-0 akey) (z-0 strd))
+          (and (p "init" z-0 1) (p "init" "n" z-0 n)
+            (p "init" "k" z-0 k-0) (prec z-0 0 z 0)
+            (uniq-at n z-0 0))))))
+  (traces ((recv (enc n k)) (send n)))
+  (label 6)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton unilateral
+  (vars (n text) (k k-0 akey))
+  (defstrand resp 2 (n n) (k k))
+  (defstrand init 1 (n n) (k k-0))
+  (precedes ((1 0) (0 0)))
+  (non-orig (invk k))
+  (pen-non-orig n)
+  (uniq-orig n)
+  (operation nonce-test (added-strand init 1) n (0 0))
+  (traces ((recv (enc n k)) (send n)) ((send (enc n k-0))))
+  (label 7)
+  (parent 6)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0) ((n n) (k k))))
+  (origs (n (1 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol iso-unilateral basic
+  (defrole resp
+    (vars (na nb t1 t2 t3 text) (b name))
+    (trace (recv (cat nb t1))
+      (send (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    (uniq-orig na))
+  (defrole init
+    (vars (na nb t1 t2 t3 text) (b name))
+    (trace (send (cat nb t1))
+      (recv (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    (uniq-orig nb))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Two pass authentication"))
+
+(defskeleton iso-unilateral
+  (vars (na nb t1 t2 t3 text) (b name))
+  (defstrand init 2 (na na) (nb nb) (t1 t1) (t2 t2) (t3 t3) (b b))
+  (non-orig (privk b))
+  (uniq-orig nb)
+  (traces
+    ((send (cat nb t1))
+      (recv (cat na nb b t3 (enc na nb b t2 (privk b))))))
+  (label 8)
+  (unrealized (0 1))
+  (origs (nb (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton iso-unilateral
+  (vars (na nb t1 t2 t3 t1-0 t3-0 text) (b name))
+  (defstrand init 2 (na na) (nb nb) (t1 t1) (t2 t2) (t3 t3) (b b))
+  (defstrand resp 2 (na na) (nb nb) (t1 t1-0) (t2 t2) (t3 t3-0) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-orig na nb)
+  (operation encryption-test (added-strand resp 2)
+    (enc na nb b t2 (privk b)) (0 1))
+  (traces
+    ((send (cat nb t1))
+      (recv (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    ((recv (cat nb t1-0))
+      (send (cat na nb b t3-0 (enc na nb b t2 (privk b))))))
+  (label 9)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (na na) (nb nb) (t1 t1) (t2 t2) (t3 t3))))
+  (origs (na (1 1)) (nb (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol iso-unilateral basic
+  (defrole resp
+    (vars (na nb t1 t2 t3 text) (b name))
+    (trace (recv (cat nb t1))
+      (send (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    (uniq-orig na))
+  (defrole init
+    (vars (na nb t1 t2 t3 text) (b name))
+    (trace (send (cat nb t1))
+      (recv (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    (uniq-orig nb))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Two pass authentication"))
+
+(defskeleton iso-unilateral
+  (vars (na nb t1 t2 t3 text) (b name))
+  (defstrand init 2 (na na) (nb nb) (t1 t1) (t2 t2) (t3 t3) (b b))
+  (non-orig (privk b))
+  (uniq-orig nb)
+  (goals
+    (forall ((b name) (z strd))
+      (implies (and (p "init" z 2) (p "init" "b" z b) (non (privk b)))
+        (exists ((y strd)) (and (p "resp" y 2) (p "resp" "b" y b))))))
+  (traces
+    ((send (cat nb t1))
+      (recv (cat na nb b t3 (enc na nb b t2 (privk b))))))
+  (label 10)
+  (unrealized (0 1))
+  (origs (nb (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton iso-unilateral
+  (vars (na nb t1 t2 t3 t1-0 t3-0 text) (b name))
+  (defstrand init 2 (na na) (nb nb) (t1 t1) (t2 t2) (t3 t3) (b b))
+  (defstrand resp 2 (na na) (nb nb) (t1 t1-0) (t2 t2) (t3 t3-0) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-orig na nb)
+  (operation encryption-test (added-strand resp 2)
+    (enc na nb b t2 (privk b)) (0 1))
+  (traces
+    ((send (cat nb t1))
+      (recv (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    ((recv (cat nb t1-0))
+      (send (cat na nb b t3-0 (enc na nb b t2 (privk b))))))
+  (label 11)
+  (parent 10)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0) ((b b) (na na) (nb nb) (t1 t1) (t2 t2) (t3 t3))))
+  (origs (na (1 1)) (nb (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol iso-unilateral basic
+  (defrole resp
+    (vars (na nb t1 t2 t3 text) (b name))
+    (trace (recv (cat nb t1))
+      (send (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    (uniq-orig na))
+  (defrole init
+    (vars (na nb t1 t2 t3 text) (b name))
+    (trace (send (cat nb t1))
+      (recv (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    (uniq-orig nb))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Two pass authentication"))
+
+(defskeleton iso-unilateral
+  (vars (na nb t1 t2 t3 text) (b name))
+  (defstrand init 2 (na na) (nb nb) (t1 t1) (t2 t2) (t3 t3) (b b))
+  (non-orig (privk b))
+  (uniq-orig nb)
+  (goals
+    (forall ((b name) (z strd))
+      (implies (and (p "init" z 2) (p "init" "b" z b) (non (privk b)))
+        (false))))
+  (traces
+    ((send (cat nb t1))
+      (recv (cat na nb b t3 (enc na nb b t2 (privk b))))))
+  (label 12)
+  (unrealized (0 1))
+  (origs (nb (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton iso-unilateral
+  (vars (na nb t1 t2 t3 t1-0 t3-0 text) (b name))
+  (defstrand init 2 (na na) (nb nb) (t1 t1) (t2 t2) (t3 t3) (b b))
+  (defstrand resp 2 (na na) (nb nb) (t1 t1-0) (t2 t2) (t3 t3-0) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-orig na nb)
+  (operation encryption-test (added-strand resp 2)
+    (enc na nb b t2 (privk b)) (0 1))
+  (traces
+    ((send (cat nb t1))
+      (recv (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    ((recv (cat nb t1-0))
+      (send (cat na nb b t3-0 (enc na nb b t2 (privk b))))))
+  (label 13)
+  (parent 12)
+  (realized)
+  (shape)
+  (satisfies (no (fact false) (b b) (z 0)))
+  (maps ((0) ((b b) (na na) (nb nb) (t1 t1) (t2 t2) (t3 t3))))
+  (origs (na (1 1)) (nb (0 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/factvar.scm b/tst/factvar.scm
new file mode 100644
--- /dev/null
+++ b/tst/factvar.scm
@@ -0,0 +1,32 @@
+(herald factvar)
+
+;; An example of a rule that creates a variable that is
+;; used in a fact but does not occur in a strand.
+
+(defprotocol free-fact-var basic
+  (defrole resp
+    (vars (n text) (k akey))
+    (trace
+     (recv (enc n k))
+     (send n)))
+
+  (defrule add
+    (forall ((z strd))
+	    (implies
+	     (p "resp" z 1)
+	     (exists ((m text))
+		     (fact thing m))))
+    (comment "This rule adds a text variable")
+    (comment "that does not appear in a strand"))
+  )
+
+(defskeleton free-fact-var
+  (vars (k akey))
+  (defstrand resp 1 (k k))
+  (non-orig (invk k)))
+
+(defskeleton free-fact-var
+  (vars (n text) (k akey))
+  (defstrand resp 1 (n n) (k k))
+  (non-orig (invk k))
+  (pen-non-orig n))
diff --git a/tst/factvar.tst b/tst/factvar.tst
new file mode 100644
--- /dev/null
+++ b/tst/factvar.tst
@@ -0,0 +1,90 @@
+(herald factvar)
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/factvar.scm")
+
+(defprotocol free-fact-var basic
+  (defrole resp
+    (vars (n text) (k akey))
+    (trace (recv (enc n k)) (send n)))
+  (defrule add
+    (forall ((z strd))
+      (implies (p "resp" z (idx 1)) (exists ((m text)) (fact thing m))))
+    (comment "This rule adds a text variable")
+    (comment "that does not appear in a strand"))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton free-fact-var
+  (vars (n text) (k akey))
+  (defstrand resp 1 (n n) (k k))
+  (non-orig (invk k))
+  (traces ((recv (enc n k))))
+  (label 0)
+  (realized)
+  (origs)
+  (comment "Not closed under rules"))
+
+(defskeleton free-fact-var
+  (vars (m n text) (k akey))
+  (defstrand resp 1 (n n) (k k))
+  (non-orig (invk k))
+  (facts (thing m))
+  (rule add)
+  (traces ((recv (enc n k))))
+  (label 1)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps ((0) ((k k) (n n))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol free-fact-var basic
+  (defrole resp
+    (vars (n text) (k akey))
+    (trace (recv (enc n k)) (send n)))
+  (defrule add
+    (forall ((z strd))
+      (implies (p "resp" z (idx 1)) (exists ((m text)) (fact thing m))))
+    (comment "This rule adds a text variable")
+    (comment "that does not appear in a strand"))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton free-fact-var
+  (vars (n text) (k akey))
+  (defstrand resp 1 (n n) (k k))
+  (non-orig (invk k))
+  (pen-non-orig n)
+  (traces ((recv (enc n k))))
+  (label 2)
+  (unrealized (0 0))
+  (origs)
+  (comment "Not closed under rules"))
+
+(defskeleton free-fact-var
+  (vars (m n text) (k akey))
+  (defstrand resp 1 (n n) (k k))
+  (non-orig (invk k))
+  (pen-non-orig n)
+  (facts (thing m))
+  (rule add)
+  (traces ((recv (enc n k))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 0))
+  (dead)
+  (origs)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/tst/ffgg.tst b/tst/ffgg.tst
--- a/tst/ffgg.tst
+++ b/tst/ffgg.tst
@@ -1,7 +1,7 @@
 (herald "The ffgg Protocol"
   (comment "From A Necessarily Parallel Attack by Jon K. Millen"))
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/ffgg.scm")
 
 (defprotocol ffgg basic
@@ -15,7 +15,13 @@
     (trace (recv a) (send (cat b n1 n2))
       (recv (cat a (enc n1 x y (pubk b))))
       (send (cat n1 x (enc x y n1 (pubk b)))))
-    (uniq-orig n1 n2)))
+    (uniq-orig n1 n2))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton ffgg
   (vars (m n1 n2 x y text) (b a name))
@@ -118,7 +124,7 @@
       (send (cat n2 m (enc m n1 n2 (pubk b))))))
   (label 4)
   (parent 3)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0 1) ((b b) (m m) (a a) (n1 n1) (n2 n2) (x x) (y y))))
   (origs (n1 (2 1)) (n2-0 (2 1)) (n2 (3 1)) (n2-1 (3 1)) (m (0 2))))
diff --git a/tst/fluffy_draft03_gske.tst b/tst/fluffy_draft03_gske.tst
--- a/tst/fluffy_draft03_gske.tst
+++ b/tst/fluffy_draft03_gske.tst
@@ -3,7 +3,7 @@
   (comment
     "Based on the Internet-Draft: https://www.ietf.org/archive/id/draft-hardjono-ace-fluffy-03.txt"))
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/fluffy_draft03_gske.scm")
 
 (defprotocol fluffy basic
@@ -21,11 +21,17 @@
   (defrole client
     (vars (a s name) (na g text) (gk skey))
     (trace (send (cat "fetch" s g (enc a na (ltk s a))))
-      (recv (cat "deliver" a (enc s g na gk (ltk s a)))))))
+      (recv (cat "deliver" a (enc s g na gk (ltk s a))))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton fluffy
-  (vars (nb g text) (b s name) (gk skey))
-  (defstrand sp 2 (nb nb) (g g) (b b) (s s) (gk gk))
+  (vars (gk skey) (nb g text) (b s name))
+  (defstrand sp 2 (gk gk) (nb nb) (g g) (b b) (s s))
   (non-orig (ltk s b))
   (uniq-orig nb)
   (comment "Service Principal's point-of-view")
@@ -38,14 +44,14 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton fluffy
-  (vars (nb g nb-0 text) (b s b-0 name) (gk skey))
-  (defstrand sp 2 (nb nb) (g g) (b b) (s s) (gk gk))
-  (defstrand keyserv 4 (nb nb-0) (na nb) (g g) (a b) (b b-0) (s s)
-    (gk gk))
+  (vars (gk skey) (nb g nb-0 text) (b s b-0 name))
+  (defstrand sp 2 (gk gk) (nb nb) (g g) (b b) (s s))
+  (defstrand keyserv 4 (gk gk) (nb nb-0) (na nb) (g g) (a b) (b b-0)
+    (s s))
   (precedes ((0 0) (1 2)) ((1 3) (0 1)))
   (non-orig (ltk s b))
-  (uniq-gen gk)
   (uniq-orig nb)
+  (uniq-gen gk)
   (operation encryption-test (added-strand keyserv 4)
     (enc s g nb gk (ltk s b)) (0 1))
   (traces
@@ -57,19 +63,19 @@
       (send (cat "deliver" b (enc s g nb gk (ltk s b))))))
   (label 1)
   (parent 0)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((b b) (s s) (nb nb) (gk gk) (g g))))
   (origs (nb (0 0))))
 
 (defskeleton fluffy
-  (vars (nb g text) (b s name) (gk skey))
-  (defstrand sp 2 (nb nb) (g g) (b b) (s s) (gk gk))
-  (defstrand keyserv 2 (nb nb) (g g) (b b) (s s) (gk gk))
+  (vars (gk skey) (nb g text) (b s name))
+  (defstrand sp 2 (gk gk) (nb nb) (g g) (b b) (s s))
+  (defstrand keyserv 2 (gk gk) (nb nb) (g g) (b b) (s s))
   (precedes ((0 0) (1 0)) ((1 1) (0 1)))
   (non-orig (ltk s b))
-  (uniq-gen gk)
   (uniq-orig nb)
+  (uniq-gen gk)
   (operation encryption-test (added-strand keyserv 2)
     (enc s g nb gk (ltk s b)) (0 1))
   (traces
@@ -79,7 +85,7 @@
       (send (cat "resp" b (enc s g nb gk (ltk s b))))))
   (label 2)
   (parent 0)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((b b) (s s) (nb nb) (gk gk) (g g))))
   (origs (nb (0 0))))
@@ -101,11 +107,17 @@
   (defrole client
     (vars (a s name) (na g text) (gk skey))
     (trace (send (cat "fetch" s g (enc a na (ltk s a))))
-      (recv (cat "deliver" a (enc s g na gk (ltk s a)))))))
+      (recv (cat "deliver" a (enc s g na gk (ltk s a))))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton fluffy
-  (vars (nb na g text) (a b s name) (gk skey))
-  (defstrand keyserv 4 (nb nb) (na na) (g g) (a a) (b b) (s s) (gk gk))
+  (vars (gk skey) (nb na g text) (a b s name))
+  (defstrand keyserv 4 (gk gk) (nb nb) (na na) (g g) (a a) (b b) (s s))
   (non-orig (ltk s a) (ltk s b))
   (uniq-gen gk)
   (comment "SKDC's point-of-view")
@@ -120,8 +132,8 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton fluffy
-  (vars (nb na g g-0 text) (a b s name) (gk skey))
-  (defstrand keyserv 4 (nb nb) (na na) (g g) (a a) (b b) (s s) (gk gk))
+  (vars (gk skey) (nb na g g-0 text) (a b s name))
+  (defstrand keyserv 4 (gk gk) (nb nb) (na na) (g g) (a a) (b b) (s s))
   (defstrand sp 1 (nb nb) (g g-0) (b b) (s s))
   (precedes ((1 0) (0 0)))
   (non-orig (ltk s a) (ltk s b))
@@ -140,8 +152,8 @@
   (comment "3 in cohort - 3 not yet seen"))
 
 (defskeleton fluffy
-  (vars (nb na g g-0 text) (a b s name) (gk skey))
-  (defstrand keyserv 4 (nb nb) (na na) (g g) (a a) (b b) (s s) (gk gk))
+  (vars (gk skey) (nb na g g-0 text) (a b s name))
+  (defstrand keyserv 4 (gk gk) (nb nb) (na na) (g g) (a a) (b b) (s s))
   (defstrand client 1 (na nb) (g g-0) (a b) (s s))
   (precedes ((1 0) (0 0)))
   (non-orig (ltk s a) (ltk s b))
@@ -160,8 +172,8 @@
   (comment "3 in cohort - 3 not yet seen"))
 
 (defskeleton fluffy
-  (vars (nb g g-0 text) (b s name) (gk skey))
-  (defstrand keyserv 4 (nb nb) (na nb) (g g) (a b) (b b) (s s) (gk gk))
+  (vars (gk skey) (nb g g-0 text) (b s name))
+  (defstrand keyserv 4 (gk gk) (nb nb) (na nb) (g g) (a b) (b b) (s s))
   (defstrand sp 1 (nb nb) (g g-0) (b b) (s s))
   (precedes ((1 0) (0 0)))
   (non-orig (ltk s b))
@@ -176,14 +188,14 @@
     ((send (cat "req" s g-0 (enc b nb (ltk s b))))))
   (label 6)
   (parent 4)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a b) (b b) (s s) (nb nb) (na nb) (gk gk) (g g))))
   (origs))
 
 (defskeleton fluffy
-  (vars (nb na g g-0 g-1 text) (a b s name) (gk skey))
-  (defstrand keyserv 4 (nb nb) (na na) (g g) (a a) (b b) (s s) (gk gk))
+  (vars (gk skey) (nb na g g-0 g-1 text) (a b s name))
+  (defstrand keyserv 4 (gk gk) (nb nb) (na na) (g g) (a a) (b b) (s s))
   (defstrand sp 1 (nb nb) (g g-0) (b b) (s s))
   (defstrand sp 1 (nb na) (g g-1) (b a) (s s))
   (precedes ((1 0) (0 0)) ((2 0) (0 2)))
@@ -200,14 +212,14 @@
     ((send (cat "req" s g-1 (enc a na (ltk s a))))))
   (label 7)
   (parent 4)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (s s) (nb nb) (na na) (gk gk) (g g))))
   (origs))
 
 (defskeleton fluffy
-  (vars (nb na g g-0 g-1 text) (a b s name) (gk skey))
-  (defstrand keyserv 4 (nb nb) (na na) (g g) (a a) (b b) (s s) (gk gk))
+  (vars (gk skey) (nb na g g-0 g-1 text) (a b s name))
+  (defstrand keyserv 4 (gk gk) (nb nb) (na na) (g g) (a a) (b b) (s s))
   (defstrand sp 1 (nb nb) (g g-0) (b b) (s s))
   (defstrand client 1 (na na) (g g-1) (a a) (s s))
   (precedes ((1 0) (0 0)) ((2 0) (0 2)))
@@ -224,14 +236,14 @@
     ((send (cat "fetch" s g-1 (enc a na (ltk s a))))))
   (label 8)
   (parent 4)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (s s) (nb nb) (na na) (gk gk) (g g))))
   (origs))
 
 (defskeleton fluffy
-  (vars (nb na g g-0 g-1 text) (a b s name) (gk skey))
-  (defstrand keyserv 4 (nb nb) (na na) (g g) (a a) (b b) (s s) (gk gk))
+  (vars (gk skey) (nb na g g-0 g-1 text) (a b s name))
+  (defstrand keyserv 4 (gk gk) (nb nb) (na na) (g g) (a a) (b b) (s s))
   (defstrand client 1 (na nb) (g g-0) (a b) (s s))
   (defstrand sp 1 (nb na) (g g-1) (b a) (s s))
   (precedes ((1 0) (0 0)) ((2 0) (0 2)))
@@ -248,14 +260,14 @@
     ((send (cat "req" s g-1 (enc a na (ltk s a))))))
   (label 9)
   (parent 5)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (s s) (nb nb) (na na) (gk gk) (g g))))
   (origs))
 
 (defskeleton fluffy
-  (vars (nb g g-0 text) (b s name) (gk skey))
-  (defstrand keyserv 4 (nb nb) (na nb) (g g) (a b) (b b) (s s) (gk gk))
+  (vars (gk skey) (nb g g-0 text) (b s name))
+  (defstrand keyserv 4 (gk gk) (nb nb) (na nb) (g g) (a b) (b b) (s s))
   (defstrand client 1 (na nb) (g g-0) (a b) (s s))
   (precedes ((1 0) (0 0)))
   (non-orig (ltk s b))
@@ -270,14 +282,14 @@
     ((send (cat "fetch" s g-0 (enc b nb (ltk s b))))))
   (label 10)
   (parent 5)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a b) (b b) (s s) (nb nb) (na nb) (gk gk) (g g))))
   (origs))
 
 (defskeleton fluffy
-  (vars (nb na g g-0 g-1 text) (a b s name) (gk skey))
-  (defstrand keyserv 4 (nb nb) (na na) (g g) (a a) (b b) (s s) (gk gk))
+  (vars (gk skey) (nb na g g-0 g-1 text) (a b s name))
+  (defstrand keyserv 4 (gk gk) (nb nb) (na na) (g g) (a a) (b b) (s s))
   (defstrand client 1 (na nb) (g g-0) (a b) (s s))
   (defstrand client 1 (na na) (g g-1) (a a) (s s))
   (precedes ((1 0) (0 0)) ((2 0) (0 2)))
@@ -294,7 +306,7 @@
     ((send (cat "fetch" s g-1 (enc a na (ltk s a))))))
   (label 11)
   (parent 5)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (s s) (nb nb) (na na) (gk gk) (g g))))
   (origs))
@@ -316,11 +328,17 @@
   (defrole client
     (vars (a s name) (na g text) (gk skey))
     (trace (send (cat "fetch" s g (enc a na (ltk s a))))
-      (recv (cat "deliver" a (enc s g na gk (ltk s a)))))))
+      (recv (cat "deliver" a (enc s g na gk (ltk s a))))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton fluffy
-  (vars (na g text) (a s name) (gk skey))
-  (defstrand client 2 (na na) (g g) (a a) (s s) (gk gk))
+  (vars (gk skey) (na g text) (a s name))
+  (defstrand client 2 (gk gk) (na na) (g g) (a a) (s s))
   (non-orig (ltk s a))
   (uniq-orig na)
   (comment "Clients's point-of-view")
@@ -333,13 +351,13 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton fluffy
-  (vars (na g nb text) (a s b name) (gk skey))
-  (defstrand client 2 (na na) (g g) (a a) (s s) (gk gk))
-  (defstrand keyserv 4 (nb nb) (na na) (g g) (a a) (b b) (s s) (gk gk))
+  (vars (gk skey) (na g nb text) (a s b name))
+  (defstrand client 2 (gk gk) (na na) (g g) (a a) (s s))
+  (defstrand keyserv 4 (gk gk) (nb nb) (na na) (g g) (a a) (b b) (s s))
   (precedes ((0 0) (1 2)) ((1 3) (0 1)))
   (non-orig (ltk s a))
-  (uniq-gen gk)
   (uniq-orig na)
+  (uniq-gen gk)
   (operation encryption-test (added-strand keyserv 4)
     (enc s g na gk (ltk s a)) (0 1))
   (traces
@@ -351,19 +369,19 @@
       (send (cat "deliver" a (enc s g na gk (ltk s a))))))
   (label 13)
   (parent 12)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (s s) (na na) (gk gk) (g g))))
   (origs (na (0 0))))
 
 (defskeleton fluffy
-  (vars (na g text) (a s name) (gk skey))
-  (defstrand client 2 (na na) (g g) (a a) (s s) (gk gk))
-  (defstrand keyserv 2 (nb na) (g g) (b a) (s s) (gk gk))
+  (vars (gk skey) (na g text) (a s name))
+  (defstrand client 2 (gk gk) (na na) (g g) (a a) (s s))
+  (defstrand keyserv 2 (gk gk) (nb na) (g g) (b a) (s s))
   (precedes ((0 0) (1 0)) ((1 1) (0 1)))
   (non-orig (ltk s a))
-  (uniq-gen gk)
   (uniq-orig na)
+  (uniq-gen gk)
   (operation encryption-test (added-strand keyserv 2)
     (enc s g na gk (ltk s a)) (0 1))
   (traces
@@ -373,7 +391,7 @@
       (send (cat "resp" a (enc s g na gk (ltk s a))))))
   (label 14)
   (parent 12)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (s s) (na na) (gk gk) (g g))))
   (origs (na (0 0))))
@@ -399,19 +417,27 @@
   (defrule client-no-request
     (forall ((a s name) (y z strd))
       (implies
-        (and (p "client" z 1) (p "client" "s" z s) (p "client" "a" z a)
-          (p "keyserv" y 1) (p "keyserv" "s" y s) (p "keyserv" "b" y a))
+        (and (p "client" z (idx 1)) (p "client" "s" z s)
+          (p "client" "a" z a) (p "keyserv" y (idx 1))
+          (p "keyserv" "s" y s) (p "keyserv" "b" y a))
         (false))))
   (defrule sp-no-fetch
     (forall ((b s name) (y z strd))
       (implies
-        (and (p "sp" z 1) (p "sp" "s" z s) (p "sp" "b" z b)
-          (p "keyserv" y 3) (p "keyserv" "s" y s) (p "keyserv" "a" y b))
-        (false)))))
+        (and (p "sp" z (idx 1)) (p "sp" "s" z s) (p "sp" "b" z b)
+          (p "keyserv" y (idx 3)) (p "keyserv" "s" y s)
+          (p "keyserv" "a" y b))
+        (false))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton fluffy-rule
-  (vars (nb g text) (b s name) (gk skey))
-  (defstrand sp 2 (nb nb) (g g) (b b) (s s) (gk gk))
+  (vars (gk skey) (nb g text) (b s name))
+  (defstrand sp 2 (gk gk) (nb nb) (g g) (b b) (s s))
   (non-orig (ltk s b))
   (uniq-orig nb)
   (comment "Service Principal's point-of-view")
@@ -424,13 +450,13 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton fluffy-rule
-  (vars (nb g text) (b s name) (gk skey))
-  (defstrand sp 2 (nb nb) (g g) (b b) (s s) (gk gk))
-  (defstrand keyserv 2 (nb nb) (g g) (b b) (s s) (gk gk))
+  (vars (gk skey) (nb g text) (b s name))
+  (defstrand sp 2 (gk gk) (nb nb) (g g) (b b) (s s))
+  (defstrand keyserv 2 (gk gk) (nb nb) (g g) (b b) (s s))
   (precedes ((0 0) (1 0)) ((1 1) (0 1)))
   (non-orig (ltk s b))
-  (uniq-gen gk)
   (uniq-orig nb)
+  (uniq-gen gk)
   (operation encryption-test (added-strand keyserv 2)
     (enc s g nb gk (ltk s b)) (0 1))
   (traces
@@ -440,7 +466,7 @@
       (send (cat "resp" b (enc s g nb gk (ltk s b))))))
   (label 16)
   (parent 15)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((b b) (s s) (nb nb) (gk gk) (g g))))
   (origs (nb (0 0))))
@@ -466,19 +492,27 @@
   (defrule client-no-request
     (forall ((a s name) (y z strd))
       (implies
-        (and (p "client" z 1) (p "client" "s" z s) (p "client" "a" z a)
-          (p "keyserv" y 1) (p "keyserv" "s" y s) (p "keyserv" "b" y a))
+        (and (p "client" z (idx 1)) (p "client" "s" z s)
+          (p "client" "a" z a) (p "keyserv" y (idx 1))
+          (p "keyserv" "s" y s) (p "keyserv" "b" y a))
         (false))))
   (defrule sp-no-fetch
     (forall ((b s name) (y z strd))
       (implies
-        (and (p "sp" z 1) (p "sp" "s" z s) (p "sp" "b" z b)
-          (p "keyserv" y 3) (p "keyserv" "s" y s) (p "keyserv" "a" y b))
-        (false)))))
+        (and (p "sp" z (idx 1)) (p "sp" "s" z s) (p "sp" "b" z b)
+          (p "keyserv" y (idx 3)) (p "keyserv" "s" y s)
+          (p "keyserv" "a" y b))
+        (false))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton fluffy-rule
-  (vars (nb na g text) (a b s name) (gk skey))
-  (defstrand keyserv 4 (nb nb) (na na) (g g) (a a) (b b) (s s) (gk gk))
+  (vars (gk skey) (nb na g text) (a b s name))
+  (defstrand keyserv 4 (gk gk) (nb nb) (na na) (g g) (a a) (b b) (s s))
   (non-orig (ltk s a) (ltk s b))
   (uniq-gen gk)
   (comment "SKDC's point-of-view")
@@ -493,8 +527,8 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton fluffy-rule
-  (vars (nb na g g-0 text) (a b s name) (gk skey))
-  (defstrand keyserv 4 (nb nb) (na na) (g g) (a a) (b b) (s s) (gk gk))
+  (vars (gk skey) (nb na g g-0 text) (a b s name))
+  (defstrand keyserv 4 (gk gk) (nb nb) (na na) (g g) (a a) (b b) (s s))
   (defstrand sp 1 (nb nb) (g g-0) (b b) (s s))
   (precedes ((1 0) (0 0)))
   (non-orig (ltk s a) (ltk s b))
@@ -513,8 +547,8 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton fluffy-rule
-  (vars (nb na g g-0 g-1 text) (a b s name) (gk skey))
-  (defstrand keyserv 4 (nb nb) (na na) (g g) (a a) (b b) (s s) (gk gk))
+  (vars (gk skey) (nb na g g-0 g-1 text) (a b s name))
+  (defstrand keyserv 4 (gk gk) (nb nb) (na na) (g g) (a a) (b b) (s s))
   (defstrand sp 1 (nb nb) (g g-0) (b b) (s s))
   (defstrand client 1 (na na) (g g-1) (a a) (s s))
   (precedes ((1 0) (0 0)) ((2 0) (0 2)))
@@ -531,7 +565,7 @@
     ((send (cat "fetch" s g-1 (enc a na (ltk s a))))))
   (label 19)
   (parent 18)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (s s) (nb nb) (na na) (gk gk) (g g))))
   (origs))
@@ -557,19 +591,27 @@
   (defrule client-no-request
     (forall ((a s name) (y z strd))
       (implies
-        (and (p "client" z 1) (p "client" "s" z s) (p "client" "a" z a)
-          (p "keyserv" y 1) (p "keyserv" "s" y s) (p "keyserv" "b" y a))
+        (and (p "client" z (idx 1)) (p "client" "s" z s)
+          (p "client" "a" z a) (p "keyserv" y (idx 1))
+          (p "keyserv" "s" y s) (p "keyserv" "b" y a))
         (false))))
   (defrule sp-no-fetch
     (forall ((b s name) (y z strd))
       (implies
-        (and (p "sp" z 1) (p "sp" "s" z s) (p "sp" "b" z b)
-          (p "keyserv" y 3) (p "keyserv" "s" y s) (p "keyserv" "a" y b))
-        (false)))))
+        (and (p "sp" z (idx 1)) (p "sp" "s" z s) (p "sp" "b" z b)
+          (p "keyserv" y (idx 3)) (p "keyserv" "s" y s)
+          (p "keyserv" "a" y b))
+        (false))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton fluffy-rule
-  (vars (na g text) (a s name) (gk skey))
-  (defstrand client 2 (na na) (g g) (a a) (s s) (gk gk))
+  (vars (gk skey) (na g text) (a s name))
+  (defstrand client 2 (gk gk) (na na) (g g) (a a) (s s))
   (non-orig (ltk s a))
   (uniq-orig na)
   (comment "Clients's point-of-view")
@@ -582,13 +624,13 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton fluffy-rule
-  (vars (na g nb text) (a s b name) (gk skey))
-  (defstrand client 2 (na na) (g g) (a a) (s s) (gk gk))
-  (defstrand keyserv 4 (nb nb) (na na) (g g) (a a) (b b) (s s) (gk gk))
+  (vars (gk skey) (na g nb text) (a s b name))
+  (defstrand client 2 (gk gk) (na na) (g g) (a a) (s s))
+  (defstrand keyserv 4 (gk gk) (nb nb) (na na) (g g) (a a) (b b) (s s))
   (precedes ((0 0) (1 2)) ((1 3) (0 1)))
   (non-orig (ltk s a))
-  (uniq-gen gk)
   (uniq-orig na)
+  (uniq-gen gk)
   (operation encryption-test (added-strand keyserv 4)
     (enc s g na gk (ltk s a)) (0 1))
   (traces
@@ -600,7 +642,7 @@
       (send (cat "deliver" a (enc s g na gk (ltk s a))))))
   (label 21)
   (parent 20)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (s s) (na na) (gk gk) (g g))))
   (origs (na (0 0))))
diff --git a/tst/fnof_or.scm b/tst/fnof_or.scm
deleted file mode 100644
--- a/tst/fnof_or.scm
+++ /dev/null
@@ -1,85 +0,0 @@
-(herald "Otway-Rees Protocol"
-	(comment "Version using variables of sort mesg, with ltk function emulated."))
-
-(defprotocol or basic
-  (defrole init (vars (a b s name) (na text) (ltkas k skey) (m text))
-    (trace
-     ;; Including (init s) so that s occurs in the trace.
-     (init s)
-     (send (cat m a b (enc na m a b ltkas)))
-     (recv (cat m (enc na k ltkas))))
-  (fn-of ("ltk" (ltkas (cat a s))))
-  (fn-of ("ltkinv" ((cat a s) ltkas)))
- )
-  (defrole resp
-    (vars (a b s name) (nb text) (k ltkbs ltkas skey) (m text) (x y mesg))
-    (trace
-     ;; Including (init s ltkas) so that s and ltkas occur in the trace.
-     (init (cat s ltkas))
-     (recv (cat m a b x))
-     (send (cat m a b x (enc nb m a b ltkbs)))
-     (recv (cat m y (enc nb k ltkbs)))
-     (send y))
-  (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s))))
-  (fn-of ("ltkinv" ((cat a s) ltkas) ((cat b s) ltkbs)))
- )
-  (defrole serv (vars (a b s name) (na nb text) (k ltkas ltkbs skey) (m text))
-    (trace
-     ;; Including (init s) so that s occurs in the trace.
-     (init s)
-     (recv (cat m a b (enc na m a b ltkas)
-		(enc nb m a b ltkbs)))
-     (send (cat m (enc na k ltkas) (enc nb k ltkbs))))
-    (uniq-orig k)
-  (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s))))
-  (fn-of ("ltkinv" ((cat a s) ltkas) ((cat b s) ltkbs)))
- )
-)
-
-(defskeleton or
-  (vars (nb text) (s a b name) (ltkas ltkbs skey))
-  (defstrand resp 4 (a a) (b b) (s s) (nb nb) (ltkas ltkas) (ltkbs ltkbs))
-  (non-orig ltkas ltkbs)
-  (uniq-orig nb))
-
-;;;  In this version, fn-of is only used for the "forward" direction
-;;; of the ltk function.  In other words, if y = ltk(a,b) and z =
-;;; ltk(a,b) then y = z.  But if y = ltk(a,b) and z = ltk(c,d) it is
-;;; not necessarily the case that if y=z then a = b and c = d.
-(defprotocol or2 basic
-  (defrole init (vars (a b s name) (na text) (ltkas k skey) (m text))
-    (trace
-     ;; Including (init s) so that s occurs in the trace.
-     (init s)
-     (send (cat m a b (enc na m a b ltkas)))
-     (recv (cat m (enc na k ltkas))))
-  (fn-of ("ltk" (ltkas (cat a s))))
- )
-  (defrole resp
-    (vars (a b s name) (nb text) (k ltkbs ltkas skey) (m text) (x y mesg))
-    (trace
-     ;; Including (init s ltkas) so that s and ltkas occur in the trace.
-     (init (cat s ltkas))
-     (recv (cat m a b x))
-     (send (cat m a b x (enc nb m a b ltkbs)))
-     (recv (cat m y (enc nb k ltkbs)))
-     (send y))
-  (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s))))
- )
-  (defrole serv (vars (a b s name) (na nb text) (k ltkas ltkbs skey) (m text))
-    (trace
-     ;; Including (init s) so that s occurs in the trace.
-     (init s)
-     (recv (cat m a b (enc na m a b ltkas)
-		(enc nb m a b ltkbs)))
-     (send (cat m (enc na k ltkas) (enc nb k ltkbs))))
-    (uniq-orig k)
-  (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s))))
- )
-)
-
-(defskeleton or2
-  (vars (nb text) (s a b name) (ltkas ltkbs skey))
-  (defstrand resp 4 (a a) (b b) (s s) (nb nb) (ltkas ltkas) (ltkbs ltkbs))
-  (non-orig ltkas ltkbs)
-  (uniq-orig nb))
diff --git a/tst/fnof_or.tst b/tst/fnof_or.tst
deleted file mode 100644
--- a/tst/fnof_or.tst
+++ /dev/null
@@ -1,477 +0,0 @@
-(herald "Otway-Rees Protocol"
-  (comment
-    "Version using variables of sort mesg, with ltk function emulated."))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/fnof_or.scm")
-
-(defprotocol or basic
-  (defrole init
-    (vars (a b s name) (na text) (ltkas k skey) (m text))
-    (trace (init s) (send (cat m a b (enc na m a b ltkas)))
-      (recv (cat m (enc na k ltkas))))
-    (fn-of ("ltk" (ltkas (cat a s))) ("ltkinv" ((cat a s) ltkas))))
-  (defrole resp
-    (vars (a b s name) (nb text) (k ltkbs ltkas skey) (m text)
-      (x y mesg))
-    (trace (init (cat s ltkas)) (recv (cat m a b x))
-      (send (cat m a b x (enc nb m a b ltkbs)))
-      (recv (cat m y (enc nb k ltkbs))) (send y))
-    (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s)))
-      ("ltkinv" ((cat a s) ltkas) ((cat b s) ltkbs))))
-  (defrole serv
-    (vars (a b s name) (na nb text) (k ltkas ltkbs skey) (m text))
-    (trace (init s)
-      (recv (cat m a b (enc na m a b ltkas) (enc nb m a b ltkbs)))
-      (send (cat m (enc na k ltkas) (enc nb k ltkbs))))
-    (uniq-orig k)
-    (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s)))
-      ("ltkinv" ((cat a s) ltkas) ((cat b s) ltkbs)))))
-
-(defskeleton or
-  (vars (x y mesg) (nb m text) (s a b name) (ltkas ltkbs k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k)
-    (ltkbs ltkbs) (ltkas ltkas))
-  (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s)))
-    ("ltkinv" ((cat a s) ltkas) ((cat b s) ltkbs)))
-  (non-orig ltkas ltkbs)
-  (uniq-orig nb)
-  (traces
-    ((init (cat s ltkas)) (recv (cat m a b x))
-      (send (cat m a b x (enc nb m a b ltkbs)))
-      (recv (cat m y (enc nb k ltkbs)))))
-  (label 0)
-  (unrealized (0 3))
-  (origs (nb (0 2)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton or
-  (vars (x y mesg) (nb m na m-0 text) (s a b a-0 name)
-    (ltkas ltkbs k ltkas-0 skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k)
-    (ltkbs ltkbs) (ltkas ltkas))
-  (defstrand serv 3 (na na) (nb nb) (m m-0) (a a-0) (b b) (s s) (k k)
-    (ltkas ltkas-0) (ltkbs ltkbs))
-  (precedes ((0 2) (1 1)) ((1 2) (0 3)))
-  (fn-of
-    ("ltk" (ltkas-0 (cat a-0 s)) (ltkbs (cat b s)) (ltkas (cat a s)))
-    ("ltkinv" ((cat a-0 s) ltkas-0) ((cat b s) ltkbs)
-      ((cat a s) ltkas)))
-  (non-orig ltkas ltkbs)
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand serv 3) (enc nb k ltkbs)
-    (0 3))
-  (traces
-    ((init (cat s ltkas)) (recv (cat m a b x))
-      (send (cat m a b x (enc nb m a b ltkbs)))
-      (recv (cat m y (enc nb k ltkbs))))
-    ((init s)
-      (recv
-        (cat m-0 a-0 b (enc na m-0 a-0 b ltkas-0)
-          (enc nb m-0 a-0 b ltkbs)))
-      (send (cat m-0 (enc na k ltkas-0) (enc nb k ltkbs)))))
-  (label 1)
-  (parent 0)
-  (unrealized (1 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton or
-  (vars (x y mesg) (nb m nb-0 m-0 text) (s a b b-0 name)
-    (ltkas ltkbs k ltkbs-0 skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k)
-    (ltkbs ltkbs) (ltkas ltkas))
-  (defstrand serv 3 (na nb) (nb nb-0) (m m-0) (a b) (b b-0) (s s) (k k)
-    (ltkas ltkbs) (ltkbs ltkbs-0))
-  (precedes ((0 2) (1 1)) ((1 2) (0 3)))
-  (fn-of
-    ("ltk" (ltkbs (cat b s)) (ltkbs-0 (cat b-0 s)) (ltkas (cat a s)))
-    ("ltkinv" ((cat b s) ltkbs) ((cat b-0 s) ltkbs-0)
-      ((cat a s) ltkas)))
-  (non-orig ltkas ltkbs)
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand serv 3) (enc nb k ltkbs)
-    (0 3))
-  (traces
-    ((init (cat s ltkas)) (recv (cat m a b x))
-      (send (cat m a b x (enc nb m a b ltkbs)))
-      (recv (cat m y (enc nb k ltkbs))))
-    ((init s)
-      (recv
-        (cat m-0 b b-0 (enc nb m-0 b b-0 ltkbs)
-          (enc nb-0 m-0 b b-0 ltkbs-0)))
-      (send (cat m-0 (enc nb k ltkbs) (enc nb-0 k ltkbs-0)))))
-  (label 2)
-  (parent 0)
-  (unrealized (1 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton or
-  (vars (x y mesg) (nb m na text) (s a b name) (ltkbs k ltkas skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k)
-    (ltkbs ltkbs) (ltkas ltkas))
-  (defstrand serv 3 (na na) (nb nb) (m m) (a a) (b b) (s s) (k k)
-    (ltkas ltkas) (ltkbs ltkbs))
-  (precedes ((0 2) (1 1)) ((1 2) (0 3)))
-  (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s)))
-    ("ltkinv" ((cat a s) ltkas) ((cat b s) ltkbs)))
-  (non-orig ltkbs ltkas)
-  (uniq-orig nb k)
-  (operation encryption-test (displaced 2 0 resp 3)
-    (enc nb m-0 a-0 b ltkbs) (1 1))
-  (traces
-    ((init (cat s ltkas)) (recv (cat m a b x))
-      (send (cat m a b x (enc nb m a b ltkbs)))
-      (recv (cat m y (enc nb k ltkbs))))
-    ((init s)
-      (recv (cat m a b (enc na m a b ltkas) (enc nb m a b ltkbs)))
-      (send (cat m (enc na k ltkas) (enc nb k ltkbs)))))
-  (label 3)
-  (parent 1)
-  (unrealized (1 1))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton or
-  (vars (x y mesg) (nb m nb-0 text) (s a name) (k ltkbs skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k)
-    (ltkbs ltkbs) (ltkas ltkbs))
-  (defstrand serv 3 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k)
-    (ltkas ltkbs) (ltkbs ltkbs))
-  (precedes ((0 2) (1 1)) ((1 2) (0 3)))
-  (fn-of ("ltk" (ltkbs (cat a s))) ("ltkinv" ((cat a s) ltkbs)))
-  (non-orig ltkbs)
-  (uniq-orig nb k)
-  (operation encryption-test (displaced 2 0 resp 3)
-    (enc nb m-0 b b-0 ltkbs-0) (1 1))
-  (traces
-    ((init (cat s ltkbs)) (recv (cat m a a x))
-      (send (cat m a a x (enc nb m a a ltkbs)))
-      (recv (cat m y (enc nb k ltkbs))))
-    ((init s)
-      (recv (cat m a a (enc nb m a a ltkbs) (enc nb-0 m a a ltkbs)))
-      (send (cat m (enc nb k ltkbs) (enc nb-0 k ltkbs)))))
-  (label 4)
-  (parent 2)
-  (seen 6)
-  (unrealized (1 1))
-  (comment "3 in cohort - 2 not yet seen"))
-
-(defskeleton or
-  (vars (x y mesg) (nb m na text) (s a b name) (ltkbs k ltkas skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k)
-    (ltkbs ltkbs) (ltkas ltkas))
-  (defstrand serv 3 (na na) (nb nb) (m m) (a a) (b b) (s s) (k k)
-    (ltkas ltkas) (ltkbs ltkbs))
-  (defstrand init 2 (na na) (m m) (a a) (b b) (s s) (ltkas ltkas))
-  (precedes ((0 2) (1 1)) ((1 2) (0 3)) ((2 1) (1 1)))
-  (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s)))
-    ("ltkinv" ((cat a s) ltkas) ((cat b s) ltkbs)))
-  (non-orig ltkbs ltkas)
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand init 2) (enc na m a b ltkas)
-    (1 1))
-  (traces
-    ((init (cat s ltkas)) (recv (cat m a b x))
-      (send (cat m a b x (enc nb m a b ltkbs)))
-      (recv (cat m y (enc nb k ltkbs))))
-    ((init s)
-      (recv (cat m a b (enc na m a b ltkas) (enc nb m a b ltkbs)))
-      (send (cat m (enc na k ltkas) (enc nb k ltkbs))))
-    ((init s) (send (cat m a b (enc na m a b ltkas)))))
-  (label 5)
-  (parent 3)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((nb nb) (s s) (a a) (b b) (ltkas ltkas) (ltkbs ltkbs) (k k) (m m)
-        (x x) (y y))))
-  (origs (k (1 2)) (nb (0 2))))
-
-(defskeleton or
-  (vars (x y mesg) (nb m text) (s b name) (ltkbs k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a b) (b b) (s s) (k k)
-    (ltkbs ltkbs) (ltkas ltkbs))
-  (defstrand serv 3 (na nb) (nb nb) (m m) (a b) (b b) (s s) (k k)
-    (ltkas ltkbs) (ltkbs ltkbs))
-  (precedes ((0 2) (1 1)) ((1 2) (0 3)))
-  (fn-of ("ltk" (ltkbs (cat b s))) ("ltkinv" ((cat b s) ltkbs)))
-  (non-orig ltkbs)
-  (uniq-orig nb k)
-  (operation encryption-test (displaced 2 0 resp 3) (enc na m a b ltkas)
-    (1 1))
-  (traces
-    ((init (cat s ltkbs)) (recv (cat m b b x))
-      (send (cat m b b x (enc nb m b b ltkbs)))
-      (recv (cat m y (enc nb k ltkbs))))
-    ((init s)
-      (recv (cat m b b (enc nb m b b ltkbs) (enc nb m b b ltkbs)))
-      (send (cat m (enc nb k ltkbs) (enc nb k ltkbs)))))
-  (label 6)
-  (parent 3)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((nb nb) (s s) (a b) (b b) (ltkas ltkbs) (ltkbs ltkbs) (k k) (m m)
-        (x x) (y y))))
-  (origs (k (1 2)) (nb (0 2))))
-
-(defskeleton or
-  (vars (x y x-0 mesg) (nb m na text) (s a name) (ltkbs k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k)
-    (ltkbs ltkbs) (ltkas ltkbs))
-  (defstrand serv 3 (na na) (nb nb) (m m) (a a) (b a) (s s) (k k)
-    (ltkas ltkbs) (ltkbs ltkbs))
-  (defstrand resp 3 (x x-0) (nb na) (m m) (a a) (b a) (s s)
-    (ltkbs ltkbs) (ltkas ltkbs))
-  (precedes ((0 2) (1 1)) ((1 2) (0 3)) ((2 2) (1 1)))
-  (fn-of ("ltk" (ltkbs (cat a s))) ("ltkinv" ((cat a s) ltkbs)))
-  (non-orig ltkbs)
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand resp 3) (enc na m a a ltkbs)
-    (1 1))
-  (traces
-    ((init (cat s ltkbs)) (recv (cat m a a x))
-      (send (cat m a a x (enc nb m a a ltkbs)))
-      (recv (cat m y (enc nb k ltkbs))))
-    ((init s)
-      (recv (cat m a a (enc na m a a ltkbs) (enc nb m a a ltkbs)))
-      (send (cat m (enc na k ltkbs) (enc nb k ltkbs))))
-    ((init (cat s ltkbs)) (recv (cat m a a x-0))
-      (send (cat m a a x-0 (enc na m a a ltkbs)))))
-  (label 7)
-  (parent 3)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((nb nb) (s s) (a a) (b a) (ltkas ltkbs) (ltkbs ltkbs) (k k) (m m)
-        (x x) (y y))))
-  (origs (k (1 2)) (nb (0 2))))
-
-(defskeleton or
-  (vars (x y mesg) (nb m nb-0 text) (s a name) (k ltkbs skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k)
-    (ltkbs ltkbs) (ltkas ltkbs))
-  (defstrand serv 3 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k)
-    (ltkas ltkbs) (ltkbs ltkbs))
-  (defstrand init 2 (na nb-0) (m m) (a a) (b a) (s s) (ltkas ltkbs))
-  (precedes ((0 2) (1 1)) ((1 2) (0 3)) ((2 1) (1 1)))
-  (fn-of ("ltk" (ltkbs (cat a s))) ("ltkinv" ((cat a s) ltkbs)))
-  (non-orig ltkbs)
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand init 2)
-    (enc nb-0 m a a ltkbs) (1 1))
-  (traces
-    ((init (cat s ltkbs)) (recv (cat m a a x))
-      (send (cat m a a x (enc nb m a a ltkbs)))
-      (recv (cat m y (enc nb k ltkbs))))
-    ((init s)
-      (recv (cat m a a (enc nb m a a ltkbs) (enc nb-0 m a a ltkbs)))
-      (send (cat m (enc nb k ltkbs) (enc nb-0 k ltkbs))))
-    ((init s) (send (cat m a a (enc nb-0 m a a ltkbs)))))
-  (label 8)
-  (parent 4)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((nb nb) (s s) (a a) (b a) (ltkas ltkbs) (ltkbs ltkbs) (k k) (m m)
-        (x x) (y y))))
-  (origs (k (1 2)) (nb (0 2))))
-
-(defskeleton or
-  (vars (x y x-0 mesg) (nb m nb-0 text) (s a name) (k ltkbs skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k)
-    (ltkbs ltkbs) (ltkas ltkbs))
-  (defstrand serv 3 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k)
-    (ltkas ltkbs) (ltkbs ltkbs))
-  (defstrand resp 3 (x x-0) (nb nb-0) (m m) (a a) (b a) (s s)
-    (ltkbs ltkbs) (ltkas ltkbs))
-  (precedes ((0 2) (1 1)) ((1 2) (0 3)) ((2 2) (1 1)))
-  (fn-of ("ltk" (ltkbs (cat a s))) ("ltkinv" ((cat a s) ltkbs)))
-  (non-orig ltkbs)
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand resp 3)
-    (enc nb-0 m a a ltkbs) (1 1))
-  (traces
-    ((init (cat s ltkbs)) (recv (cat m a a x))
-      (send (cat m a a x (enc nb m a a ltkbs)))
-      (recv (cat m y (enc nb k ltkbs))))
-    ((init s)
-      (recv (cat m a a (enc nb m a a ltkbs) (enc nb-0 m a a ltkbs)))
-      (send (cat m (enc nb k ltkbs) (enc nb-0 k ltkbs))))
-    ((init (cat s ltkbs)) (recv (cat m a a x-0))
-      (send (cat m a a x-0 (enc nb-0 m a a ltkbs)))))
-  (label 9)
-  (parent 4)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((nb nb) (s s) (a a) (b a) (ltkas ltkbs) (ltkbs ltkbs) (k k) (m m)
-        (x x) (y y))))
-  (origs (k (1 2)) (nb (0 2))))
-
-(comment "Nothing left to do")
-
-(defprotocol or2 basic
-  (defrole init
-    (vars (a b s name) (na text) (ltkas k skey) (m text))
-    (trace (init s) (send (cat m a b (enc na m a b ltkas)))
-      (recv (cat m (enc na k ltkas))))
-    (fn-of ("ltk" (ltkas (cat a s)))))
-  (defrole resp
-    (vars (a b s name) (nb text) (k ltkbs ltkas skey) (m text)
-      (x y mesg))
-    (trace (init (cat s ltkas)) (recv (cat m a b x))
-      (send (cat m a b x (enc nb m a b ltkbs)))
-      (recv (cat m y (enc nb k ltkbs))) (send y))
-    (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s)))))
-  (defrole serv
-    (vars (a b s name) (na nb text) (k ltkas ltkbs skey) (m text))
-    (trace (init s)
-      (recv (cat m a b (enc na m a b ltkas) (enc nb m a b ltkbs)))
-      (send (cat m (enc na k ltkas) (enc nb k ltkbs))))
-    (uniq-orig k)
-    (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s))))))
-
-(defskeleton or2
-  (vars (x y mesg) (nb m text) (s a b name) (ltkas ltkbs k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k)
-    (ltkbs ltkbs) (ltkas ltkas))
-  (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s))))
-  (non-orig ltkas ltkbs)
-  (uniq-orig nb)
-  (traces
-    ((init (cat s ltkas)) (recv (cat m a b x))
-      (send (cat m a b x (enc nb m a b ltkbs)))
-      (recv (cat m y (enc nb k ltkbs)))))
-  (label 10)
-  (unrealized (0 3))
-  (origs (nb (0 2)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton or2
-  (vars (x y mesg) (nb m na m-0 text) (s a b a-0 b-0 s-0 name)
-    (ltkas ltkbs k ltkas-0 skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k)
-    (ltkbs ltkbs) (ltkas ltkas))
-  (defstrand serv 3 (na na) (nb nb) (m m-0) (a a-0) (b b-0) (s s-0)
-    (k k) (ltkas ltkas-0) (ltkbs ltkbs))
-  (precedes ((0 2) (1 1)) ((1 2) (0 3)))
-  (fn-of
-    ("ltk" (ltkas-0 (cat a-0 s-0)) (ltkbs (cat b-0 s-0))
-      (ltkas (cat a s)) (ltkbs (cat b s))))
-  (non-orig ltkas ltkbs)
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand serv 3) (enc nb k ltkbs)
-    (0 3))
-  (traces
-    ((init (cat s ltkas)) (recv (cat m a b x))
-      (send (cat m a b x (enc nb m a b ltkbs)))
-      (recv (cat m y (enc nb k ltkbs))))
-    ((init s-0)
-      (recv
-        (cat m-0 a-0 b-0 (enc na m-0 a-0 b-0 ltkas-0)
-          (enc nb m-0 a-0 b-0 ltkbs)))
-      (send (cat m-0 (enc na k ltkas-0) (enc nb k ltkbs)))))
-  (label 11)
-  (parent 10)
-  (unrealized (1 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton or2
-  (vars (x y mesg) (nb m nb-0 m-0 text) (s a b a-0 b-0 s-0 name)
-    (ltkas ltkbs k ltkbs-0 skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k)
-    (ltkbs ltkbs) (ltkas ltkas))
-  (defstrand serv 3 (na nb) (nb nb-0) (m m-0) (a a-0) (b b-0) (s s-0)
-    (k k) (ltkas ltkbs) (ltkbs ltkbs-0))
-  (precedes ((0 2) (1 1)) ((1 2) (0 3)))
-  (fn-of
-    ("ltk" (ltkbs (cat a-0 s-0)) (ltkbs-0 (cat b-0 s-0))
-      (ltkas (cat a s)) (ltkbs (cat b s))))
-  (non-orig ltkas ltkbs)
-  (uniq-orig nb k)
-  (operation encryption-test (added-strand serv 3) (enc nb k ltkbs)
-    (0 3))
-  (traces
-    ((init (cat s ltkas)) (recv (cat m a b x))
-      (send (cat m a b x (enc nb m a b ltkbs)))
-      (recv (cat m y (enc nb k ltkbs))))
-    ((init s-0)
-      (recv
-        (cat m-0 a-0 b-0 (enc nb m-0 a-0 b-0 ltkbs)
-          (enc nb-0 m-0 a-0 b-0 ltkbs-0)))
-      (send (cat m-0 (enc nb k ltkbs) (enc nb-0 k ltkbs-0)))))
-  (label 12)
-  (parent 10)
-  (unrealized (1 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton or2
-  (vars (x y mesg) (nb m na text) (s a b s-0 name)
-    (ltkas ltkbs k ltkas-0 skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k)
-    (ltkbs ltkbs) (ltkas ltkas))
-  (defstrand serv 3 (na na) (nb nb) (m m) (a a) (b b) (s s-0) (k k)
-    (ltkas ltkas-0) (ltkbs ltkbs))
-  (precedes ((0 2) (1 1)) ((1 2) (0 3)))
-  (fn-of
-    ("ltk" (ltkas (cat a s)) (ltkbs (cat b s)) (ltkas-0 (cat a s-0))
-      (ltkbs (cat b s-0))))
-  (non-orig ltkas ltkbs)
-  (uniq-orig nb k)
-  (operation encryption-test (displaced 2 0 resp 3)
-    (enc nb m-0 a-0 b-0 ltkbs) (1 1))
-  (traces
-    ((init (cat s ltkas)) (recv (cat m a b x))
-      (send (cat m a b x (enc nb m a b ltkbs)))
-      (recv (cat m y (enc nb k ltkbs))))
-    ((init s-0)
-      (recv (cat m a b (enc na m a b ltkas-0) (enc nb m a b ltkbs)))
-      (send (cat m (enc na k ltkas-0) (enc nb k ltkbs)))))
-  (label 13)
-  (parent 11)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((nb nb) (s s) (a a) (b b) (ltkas ltkas) (ltkbs ltkbs) (k k) (m m)
-        (x x) (y y))))
-  (origs (k (1 2)) (nb (0 2))))
-
-(defskeleton or2
-  (vars (x y mesg) (nb m nb-0 text) (s a b s-0 name)
-    (ltkas ltkbs k ltkbs-0 skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k)
-    (ltkbs ltkbs) (ltkas ltkas))
-  (defstrand serv 3 (na nb) (nb nb-0) (m m) (a a) (b b) (s s-0) (k k)
-    (ltkas ltkbs) (ltkbs ltkbs-0))
-  (precedes ((0 2) (1 1)) ((1 2) (0 3)))
-  (fn-of
-    ("ltk" (ltkas (cat a s)) (ltkbs (cat b s)) (ltkbs (cat a s-0))
-      (ltkbs-0 (cat b s-0))))
-  (non-orig ltkas ltkbs)
-  (uniq-orig nb k)
-  (operation encryption-test (displaced 2 0 resp 3)
-    (enc nb m-0 a-0 b-0 ltkbs) (1 1))
-  (traces
-    ((init (cat s ltkas)) (recv (cat m a b x))
-      (send (cat m a b x (enc nb m a b ltkbs)))
-      (recv (cat m y (enc nb k ltkbs))))
-    ((init s-0)
-      (recv (cat m a b (enc nb m a b ltkbs) (enc nb-0 m a b ltkbs-0)))
-      (send (cat m (enc nb k ltkbs) (enc nb-0 k ltkbs-0)))))
-  (label 14)
-  (parent 12)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((nb nb) (s s) (a a) (b b) (ltkas ltkas) (ltkbs ltkbs) (k k) (m m)
-        (x x) (y y))))
-  (origs (k (1 2)) (nb (0 2))))
-
-(comment "Nothing left to do")
diff --git a/tst/fnof_test.scm b/tst/fnof_test.scm
deleted file mode 100644
--- a/tst/fnof_test.scm
+++ /dev/null
@@ -1,86 +0,0 @@
-(herald "Function constraint test protocol"
-   (comment "Skeletons 2, 4, and 7 should have no shapes."))
-
-(defprotocol fnoftest basic
-  (defrole init
-     (vars (an0 an1 n0 n1 text) (k skey))
-     (trace
-       (send (cat n0 (enc an0 an1 n0 n1 k)))
-       (recv n1))
-     (non-orig k)
-     (uniq-orig n0 n1)
-  )
-)
-
-;;; In this skeleton, after n0 and n1 are unified, an0 and an1 will
-;;; remain distinct.
-(defskeleton fnoftest
-   (vars (an0 an1 n0 n1 text) (k skey))
-   (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n1) (k k))
-)
-
-;;; This skeleton will be dead.  The fn-of declaration forces an0 =
-;;; an1 which violates the neq declaration.
-(defskeleton fnoftest
-   (vars (an0 an1 n0 n1 text) (k skey))
-   (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n1) (k k))
-   (neq (an0 an1))
-   (fn-of (a (an0 n0) (an1 n1)))
-)
-
-;;; Tests whether rectification will happen properly on initial load,
-;;; since n1 and n0 are already unified.
-(defskeleton fnoftest
-   (vars (an0 an1 n1 text) (k skey))
-   (defstrand init 2 (an0 an0) (an1 an1) (n0 n1) (n1 n1) (k k))
-   (fn-of (a (an0 n1) (an1 n1)))
-)
-
-;;; Tests whether rectification will happen properly on initial load
-;;; when it leads to an impossibility.
-(defskeleton fnoftest
-   (vars (an0 an1 n1 text) (k skey))
-   (defstrand init 2 (an0 an0) (an1 an1) (n0 n1) (n1 n1) (k k))
-   (fn-of (a (an0 n1) (an1 n1)))
-   (neq (an0 an1))
-)
-
-(defprotocol fnoftest2 basic
-  (defrole init
-     (vars (bn0 bn1 name) (an0 an1 n0 n1 text) (k skey))
-     (trace
-       (send (cat n0 (enc bn0 bn1 an0 an1 n0 n1 k)))
-       (recv n1))
-     (non-orig k)
-     (uniq-orig n0 n1)
-     (fn-of (a (an0 n0) (an1 n1)))
-     (fn-of (b ((pubk bn0) an0)))
-  )
-)
-
-;;; This skeleton should be fine, but bn0 = bn1.  Tests cascading
-;;; requirements, as the bn0 = bn1 requirement only arises after an0 =
-;;; an1 happens.
-(defskeleton fnoftest2
-   (vars (bn0 bn1 name) (an0 an1 n0 n1 text) (k skey))
-   (defstrand init 2 (bn0 bn0) (bn1 bn1) (an0 an0) (an1 an1) (n0 n0) (n1 n1) (k k))
-   (fn-of (b ((pubk bn1) an1)))
-)
-
-;;; Here, bn0 and bn1 are not unified because they are the result of
-;;; different functions, even once the inputs are unified.
-(defskeleton fnoftest2
-   (vars (bn0 bn1 name) (an0 an1 n0 n1 text) (k skey))
-   (defstrand init 2 (bn0 bn0) (bn1 bn1) (an0 an0) (an1 an1) (n0 n0) (n1 n1) (k k))
-   (fn-of (c ((pubk bn1) an1)))
-   (decl foo ((n0 n1) (0 1)) ((k k k n0) (0 0) (0 0) (0 1)))
-)
-
-;;; This should be dead due to a cascade, because pubk bn0 cannot be
-;;; unified with privk bn0.
-(defskeleton fnoftest2
-   (vars (bn0 bn1 name) (an0 an1 n0 n1 text) (k skey))
-   (defstrand init 2 (bn0 bn0) (bn1 bn1) (an0 an0) (an1 an1) (n0 n0) (n1 n1) (k k))
-   (fn-of (b ((privk bn0) an1)))
-   (decl foo ((n0 n1) (0 1)) ((k k k n0) (0 0) (0 0) (0 1)))
-)
diff --git a/tst/fnof_test.tst b/tst/fnof_test.tst
deleted file mode 100644
--- a/tst/fnof_test.tst
+++ /dev/null
@@ -1,231 +0,0 @@
-(herald "Function constraint test protocol"
-  (comment "Skeletons 2, 4, and 7 should have no shapes."))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/fnof_test.scm")
-
-(defprotocol fnoftest basic
-  (defrole init
-    (vars (an0 an1 n0 n1 text) (k skey))
-    (trace (send (cat n0 (enc an0 an1 n0 n1 k))) (recv n1))
-    (non-orig k)
-    (uniq-orig n0 n1)))
-
-(defskeleton fnoftest
-  (vars (an0 an1 n0 n1 text) (k skey))
-  (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n1) (k k))
-  (non-orig k)
-  (uniq-orig n0 n1)
-  (traces ((send (cat n0 (enc an0 an1 n0 n1 k))) (recv n1)))
-  (label 0)
-  (unrealized (0 1))
-  (origs (n0 (0 0)) (n1 (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton fnoftest
-  (vars (an0 an1 n0 text) (k skey))
-  (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n0) (k k))
-  (non-orig k)
-  (uniq-orig n0)
-  (operation nonce-test (displaced 1 0 init 1) n1 (0 1)
-    (enc an0 an1 n0 n1 k))
-  (traces ((send (cat n0 (enc an0 an1 n0 n0 k))) (recv n0)))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((an0 an0) (an1 an1) (n0 n0) (n1 n0) (k k))))
-  (origs (n0 (0 0))))
-
-(comment "Nothing left to do")
-
-(defprotocol fnoftest basic
-  (defrole init
-    (vars (an0 an1 n0 n1 text) (k skey))
-    (trace (send (cat n0 (enc an0 an1 n0 n1 k))) (recv n1))
-    (non-orig k)
-    (uniq-orig n0 n1)))
-
-(defskeleton fnoftest
-  (vars (an0 an1 n0 n1 text) (k skey))
-  (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n1) (k k))
-  (fn-of (a (an0 n0) (an1 n1)))
-  (neq (an0 an1))
-  (non-orig k)
-  (uniq-orig n0 n1)
-  (traces ((send (cat n0 (enc an0 an1 n0 n1 k))) (recv n1)))
-  (label 2)
-  (unrealized (0 1))
-  (dead)
-  (origs (n0 (0 0)) (n1 (0 0)))
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol fnoftest basic
-  (defrole init
-    (vars (an0 an1 n0 n1 text) (k skey))
-    (trace (send (cat n0 (enc an0 an1 n0 n1 k))) (recv n1))
-    (non-orig k)
-    (uniq-orig n0 n1)))
-
-(defskeleton fnoftest
-  (vars (an0 an1 n1 text) (k skey))
-  (defstrand init 2 (an0 an0) (an1 an1) (n0 n1) (n1 n1) (k k))
-  (fn-of (a (an0 n1) (an1 n1)))
-  (non-orig k)
-  (uniq-orig n1)
-  (traces ((send (cat n1 (enc an0 an1 n1 n1 k))) (recv n1)))
-  (label 3)
-  (unrealized)
-  (preskeleton)
-  (origs (n1 (0 0)))
-  (comment "Not a skeleton"))
-
-(defskeleton fnoftest
-  (vars (an1 n1 text) (k skey))
-  (defstrand init 2 (an0 an1) (an1 an1) (n0 n1) (n1 n1) (k k))
-  (fn-of (a (an1 n1)))
-  (non-orig k)
-  (uniq-orig n1)
-  (traces ((send (cat n1 (enc an1 an1 n1 n1 k))) (recv n1)))
-  (label 4)
-  (parent 3)
-  (unrealized)
-  (shape)
-  (maps ((0) ((an1 an1) (n1 n1) (k k))))
-  (origs (n1 (0 0))))
-
-(comment "Nothing left to do")
-
-(defprotocol fnoftest basic
-  (defrole init
-    (vars (an0 an1 n0 n1 text) (k skey))
-    (trace (send (cat n0 (enc an0 an1 n0 n1 k))) (recv n1))
-    (non-orig k)
-    (uniq-orig n0 n1)))
-
-(defskeleton fnoftest
-  (vars (an0 an1 n1 text) (k skey))
-  (defstrand init 2 (an0 an0) (an1 an1) (n0 n1) (n1 n1) (k k))
-  (fn-of (a (an0 n1) (an1 n1)))
-  (neq (an0 an1))
-  (non-orig k)
-  (uniq-orig n1)
-  (traces ((send (cat n1 (enc an0 an1 n1 n1 k))) (recv n1)))
-  (label 5)
-  (unrealized)
-  (origs (n1 (0 0)))
-  (comment "Input cannot be made into a skeleton--nothing to do"))
-
-(defprotocol fnoftest2 basic
-  (defrole init
-    (vars (bn0 bn1 name) (an0 an1 n0 n1 text) (k skey))
-    (trace (send (cat n0 (enc bn0 bn1 an0 an1 n0 n1 k))) (recv n1))
-    (non-orig k)
-    (uniq-orig n0 n1)
-    (fn-of (a (an0 n0) (an1 n1)) (b ((pubk bn0) an0)))))
-
-(defskeleton fnoftest2
-  (vars (an0 an1 n0 n1 text) (bn0 bn1 name) (k skey))
-  (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n1) (bn0 bn0)
-    (bn1 bn1) (k k))
-  (fn-of (a (an0 n0) (an1 n1)) (b ((pubk bn1) an1) ((pubk bn0) an0)))
-  (non-orig k)
-  (uniq-orig n0 n1)
-  (traces ((send (cat n0 (enc bn0 bn1 an0 an1 n0 n1 k))) (recv n1)))
-  (label 6)
-  (unrealized (0 1))
-  (origs (n0 (0 0)) (n1 (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton fnoftest2
-  (vars (an1 n0 text) (bn1 name) (k skey))
-  (defstrand init 2 (an0 an1) (an1 an1) (n0 n0) (n1 n0) (bn0 bn1)
-    (bn1 bn1) (k k))
-  (fn-of (a (an1 n0)) (b ((pubk bn1) an1)))
-  (non-orig k)
-  (uniq-orig n0)
-  (operation nonce-test (displaced 1 0 init 1) n1 (0 1)
-    (enc bn0 bn1 an0 an1 n0 n1 k))
-  (traces ((send (cat n0 (enc bn1 bn1 an1 an1 n0 n0 k))) (recv n0)))
-  (label 7)
-  (parent 6)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((bn0 bn1) (bn1 bn1) (an0 an1) (an1 an1) (n0 n0) (n1 n0) (k k))))
-  (origs (n0 (0 0))))
-
-(comment "Nothing left to do")
-
-(defprotocol fnoftest2 basic
-  (defrole init
-    (vars (bn0 bn1 name) (an0 an1 n0 n1 text) (k skey))
-    (trace (send (cat n0 (enc bn0 bn1 an0 an1 n0 n1 k))) (recv n1))
-    (non-orig k)
-    (uniq-orig n0 n1)
-    (fn-of (a (an0 n0) (an1 n1)) (b ((pubk bn0) an0)))))
-
-(defskeleton fnoftest2
-  (vars (an0 an1 n0 n1 text) (bn0 bn1 name) (k skey))
-  (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n1) (bn0 bn0)
-    (bn1 bn1) (k k))
-  (decl foo ((n0 n1) (0 1)) ((k k k n0) (0 0) (0 0) (0 1)))
-  (fn-of (a (an0 n0) (an1 n1)) (b ((pubk bn0) an0))
-    (c ((pubk bn1) an1)))
-  (non-orig k)
-  (uniq-orig n0 n1)
-  (traces ((send (cat n0 (enc bn0 bn1 an0 an1 n0 n1 k))) (recv n1)))
-  (label 8)
-  (unrealized (0 1))
-  (origs (n0 (0 0)) (n1 (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton fnoftest2
-  (vars (an1 n0 text) (bn0 bn1 name) (k skey))
-  (defstrand init 2 (an0 an1) (an1 an1) (n0 n0) (n1 n0) (bn0 bn0)
-    (bn1 bn1) (k k))
-  (decl foo ((n0 n0) (0 1)) ((k k k n0) (0 0) (0 0) (0 1)))
-  (fn-of (a (an1 n0)) (b ((pubk bn0) an1)) (c ((pubk bn1) an1)))
-  (non-orig k)
-  (uniq-orig n0)
-  (operation nonce-test (displaced 1 0 init 1) n1 (0 1)
-    (enc bn0 bn1 an0 an1 n0 n1 k))
-  (traces ((send (cat n0 (enc bn0 bn1 an1 an1 n0 n0 k))) (recv n0)))
-  (label 9)
-  (parent 8)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((bn0 bn0) (bn1 bn1) (an0 an1) (an1 an1) (n0 n0) (n1 n0) (k k))))
-  (origs (n0 (0 0))))
-
-(comment "Nothing left to do")
-
-(defprotocol fnoftest2 basic
-  (defrole init
-    (vars (bn0 bn1 name) (an0 an1 n0 n1 text) (k skey))
-    (trace (send (cat n0 (enc bn0 bn1 an0 an1 n0 n1 k))) (recv n1))
-    (non-orig k)
-    (uniq-orig n0 n1)
-    (fn-of (a (an0 n0) (an1 n1)) (b ((pubk bn0) an0)))))
-
-(defskeleton fnoftest2
-  (vars (an0 an1 n0 n1 text) (bn0 bn1 name) (k skey))
-  (defstrand init 2 (an0 an0) (an1 an1) (n0 n0) (n1 n1) (bn0 bn0)
-    (bn1 bn1) (k k))
-  (decl foo ((n0 n1) (0 1)) ((k k k n0) (0 0) (0 0) (0 1)))
-  (fn-of (a (an0 n0) (an1 n1)) (b ((privk bn0) an1) ((pubk bn0) an0)))
-  (non-orig k)
-  (uniq-orig n0 n1)
-  (traces ((send (cat n0 (enc bn0 bn1 an0 an1 n0 n1 k))) (recv n1)))
-  (label 10)
-  (unrealized (0 1))
-  (dead)
-  (origs (n0 (0 0)) (n1 (0 0)))
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
diff --git a/tst/fnof_woolam.scm b/tst/fnof_woolam.scm
deleted file mode 100644
--- a/tst/fnof_woolam.scm
+++ /dev/null
@@ -1,78 +0,0 @@
-(herald "Woo-Lam Protocol, using fnof to emulate ltk function")
-
-(defprotocol woolam basic
-  (defrole init (vars (a s name) (n text) (ltkas skey))
-    (trace
-     (init s)
-     (send a)
-     (recv n)
-     (send (enc n ltkas)))
-    (non-orig ltkas)
-    (fn-of ("ltk" (ltkas (cat a s))))
-    (fn-of ("ltk-inv" ((cat a s) ltkas)))
- )
-  (defrole resp (vars (a s b name) (n text) (ltkas ltkbs skey))
-    (trace
-     (init (cat b s))
-     (recv a)
-     (send n)
-     (recv (enc n ltkas))
-     (send (enc a (enc n ltkas) ltkbs))
-     (recv (enc a n ltkbs)))
-    (non-orig ltkbs)
-    (uniq-orig n)
-    (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s))))
-    (fn-of ("ltk-inv" ((cat a s) ltkas) ((cat b s) ltkbs)))
- )
-  (defrole serv (vars (a s b name) (n text) (ltkbs ltkas skey))
-    (trace
-     (init (cat b s))
-     (recv (enc a (enc n ltkas) ltkbs))
-     (send (enc a n ltkbs)))
-    (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s))))
-    (fn-of ("ltk-inv" ((cat a s) ltkas) ((cat b s) ltkbs)))
- )
-)
-
-(defskeleton woolam (vars (n text) (a s name) (ltkas skey))
-  (defstrand resp 5 (a a) (s s) (ltkas ltkas))
-  (non-orig ltkas))
-
-;;;  In this version, fn-of is only used for the "forward" direction
-;;; of the ltk function.  In other words, if y = ltk(a,b) and z =
-;;; ltk(a,b) then y = z.  But if y = ltk(a,b) and z = ltk(c,d) it is
-;;; not necessarily the case that a = b and c = d.
-(defprotocol woolam2 basic
-  (defrole init (vars (a s name) (n text) (ltkas skey))
-    (trace
-     (init s)
-     (send a)
-     (recv n)
-     (send (enc n ltkas)))
-    (non-orig ltkas)
-    (fn-of ("ltk" (ltkas (cat a s))))
- )
-  (defrole resp (vars (a s b name) (n text) (ltkas ltkbs skey))
-    (trace
-     (init (cat b s))
-     (recv a)
-     (send n)
-     (recv (enc n ltkas))
-     (send (enc a (enc n ltkas) ltkbs))
-     (recv (enc a n ltkbs)))
-    (non-orig ltkbs)
-    (uniq-orig n)
-    (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s))))
- )
-  (defrole serv (vars (a s b name) (n text) (ltkbs ltkas skey))
-    (trace
-     (init (cat b s))
-     (recv (enc a (enc n ltkas) ltkbs))
-     (send (enc a n ltkbs)))
-    (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s))))
- )
-)
-
-(defskeleton woolam2 (vars (n text) (ltkas skey) (a s name))
-  (defstrand resp 5 (a a) (s s) (ltkas ltkas))
-  (non-orig ltkas))
diff --git a/tst/fnof_woolam.tst b/tst/fnof_woolam.tst
deleted file mode 100644
--- a/tst/fnof_woolam.tst
+++ /dev/null
@@ -1,119 +0,0 @@
-(herald "Woo-Lam Protocol, using fnof to emulate ltk function")
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/fnof_woolam.scm")
-
-(defprotocol woolam basic
-  (defrole init
-    (vars (a s name) (n text) (ltkas skey))
-    (trace (init s) (send a) (recv n) (send (enc n ltkas)))
-    (non-orig ltkas)
-    (fn-of ("ltk" (ltkas (cat a s))) ("ltk-inv" ((cat a s) ltkas))))
-  (defrole resp
-    (vars (a s b name) (n text) (ltkas ltkbs skey))
-    (trace (init (cat b s)) (recv a) (send n) (recv (enc n ltkas))
-      (send (enc a (enc n ltkas) ltkbs)) (recv (enc a n ltkbs)))
-    (non-orig ltkbs)
-    (uniq-orig n)
-    (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s)))
-      ("ltk-inv" ((cat a s) ltkas) ((cat b s) ltkbs))))
-  (defrole serv
-    (vars (a s b name) (n text) (ltkbs ltkas skey))
-    (trace (init (cat b s)) (recv (enc a (enc n ltkas) ltkbs))
-      (send (enc a n ltkbs)))
-    (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s)))
-      ("ltk-inv" ((cat a s) ltkas) ((cat b s) ltkbs)))))
-
-(defskeleton woolam
-  (vars (n text) (a s b name) (ltkas ltkbs skey))
-  (defstrand resp 5 (n n) (a a) (s s) (b b) (ltkas ltkas) (ltkbs ltkbs))
-  (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s)))
-    ("ltk-inv" ((cat a s) ltkas) ((cat b s) ltkbs)))
-  (non-orig ltkas ltkbs)
-  (uniq-orig n)
-  (traces
-    ((init (cat b s)) (recv a) (send n) (recv (enc n ltkas))
-      (send (enc a (enc n ltkas) ltkbs))))
-  (label 0)
-  (unrealized (0 3))
-  (origs (n (0 2)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton woolam
-  (vars (n text) (a s b name) (ltkas ltkbs skey))
-  (defstrand resp 5 (n n) (a a) (s s) (b b) (ltkas ltkas) (ltkbs ltkbs))
-  (defstrand init 4 (n n) (a a) (s s) (ltkas ltkas))
-  (precedes ((0 2) (1 2)) ((1 3) (0 3)))
-  (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s)))
-    ("ltk-inv" ((cat a s) ltkas) ((cat b s) ltkbs)))
-  (non-orig ltkas ltkbs)
-  (uniq-orig n)
-  (operation encryption-test (added-strand init 4) (enc n ltkas) (0 3))
-  (traces
-    ((init (cat b s)) (recv a) (send n) (recv (enc n ltkas))
-      (send (enc a (enc n ltkas) ltkbs)))
-    ((init s) (send a) (recv n) (send (enc n ltkas))))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (s s) (ltkas ltkas) (b b) (n n) (ltkbs ltkbs))))
-  (origs (n (0 2))))
-
-(comment "Nothing left to do")
-
-(defprotocol woolam2 basic
-  (defrole init
-    (vars (a s name) (n text) (ltkas skey))
-    (trace (init s) (send a) (recv n) (send (enc n ltkas)))
-    (non-orig ltkas)
-    (fn-of ("ltk" (ltkas (cat a s)))))
-  (defrole resp
-    (vars (a s b name) (n text) (ltkas ltkbs skey))
-    (trace (init (cat b s)) (recv a) (send n) (recv (enc n ltkas))
-      (send (enc a (enc n ltkas) ltkbs)) (recv (enc a n ltkbs)))
-    (non-orig ltkbs)
-    (uniq-orig n)
-    (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s)))))
-  (defrole serv
-    (vars (a s b name) (n text) (ltkbs ltkas skey))
-    (trace (init (cat b s)) (recv (enc a (enc n ltkas) ltkbs))
-      (send (enc a n ltkbs)))
-    (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s))))))
-
-(defskeleton woolam2
-  (vars (n text) (a s b name) (ltkas ltkbs skey))
-  (defstrand resp 5 (n n) (a a) (s s) (b b) (ltkas ltkas) (ltkbs ltkbs))
-  (fn-of ("ltk" (ltkas (cat a s)) (ltkbs (cat b s))))
-  (non-orig ltkas ltkbs)
-  (uniq-orig n)
-  (traces
-    ((init (cat b s)) (recv a) (send n) (recv (enc n ltkas))
-      (send (enc a (enc n ltkas) ltkbs))))
-  (label 2)
-  (unrealized (0 3))
-  (origs (n (0 2)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton woolam2
-  (vars (n text) (a s b a-0 s-0 name) (ltkas ltkbs skey))
-  (defstrand resp 5 (n n) (a a) (s s) (b b) (ltkas ltkas) (ltkbs ltkbs))
-  (defstrand init 4 (n n) (a a-0) (s s-0) (ltkas ltkas))
-  (precedes ((0 2) (1 2)) ((1 3) (0 3)))
-  (fn-of
-    ("ltk" (ltkas (cat a-0 s-0)) (ltkas (cat a s)) (ltkbs (cat b s))))
-  (non-orig ltkas ltkbs)
-  (uniq-orig n)
-  (operation encryption-test (added-strand init 4) (enc n ltkas) (0 3))
-  (traces
-    ((init (cat b s)) (recv a) (send n) (recv (enc n ltkas))
-      (send (enc a (enc n ltkas) ltkbs)))
-    ((init s-0) (send a-0) (recv n) (send (enc n ltkas))))
-  (label 3)
-  (parent 2)
-  (unrealized)
-  (shape)
-  (maps ((0) ((ltkas ltkas) (a a) (s s) (b b) (n n) (ltkbs ltkbs))))
-  (origs (n (0 2))))
-
-(comment "Nothing left to do")
diff --git a/tst/fnof_yahalom.scm b/tst/fnof_yahalom.scm
deleted file mode 100644
--- a/tst/fnof_yahalom.scm
+++ /dev/null
@@ -1,135 +0,0 @@
-(herald "Yahalom Protocol with Forwarding Removed, using fnof to emulate ltk function"
-   (bound 12))
-
-(defprotocol yahalom basic
-  (defrole init
-    (vars (a b c name) (n-a n-b text) (ltkac ltkbc k skey))
-    ; Including init (c ltkac) to force c, ltkac to be present in the
-    ; trace.
-    (trace (init (cat c ltkac))
-           (send (cat a n-a))
-	   (recv (enc b k n-a n-b ltkac))
-	   (send (enc n-b k)))
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))
-    (fn-of ("ltk-inv" ((cat a c) ltkac) ((cat b c) ltkbc)))
-  )
-  (defrole resp
-    (vars (b a c name) (n-a n-b text) (ltkac ltkbc k skey))
-    ; Including init (c ltkac) to force c, ltkac to be present in the
-    ; trace.
-    (trace (init (cat c ltkac))
-           (recv (cat a n-a))
-	   (send (cat b (enc a n-a n-b ltkbc)))
-	   (recv (enc a k ltkbc))
-	   (recv (enc n-b k)))
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))
-    (fn-of ("ltk-inv" ((cat a c) ltkac) ((cat b c) ltkbc)))
-  )
-  (defrole serv
-    (vars (c a b name) (n-a n-b text) (ltkac ltkbc k skey))
-    ; Including init c to force c to be present in the trace.
-    (trace (init c)
-           (recv (cat b (enc a n-a n-b ltkbc)))
-	   (send (enc b k n-a n-b ltkac))
-	   (send (enc a k ltkbc)))
-    (uniq-orig k)
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))
-    (fn-of ("ltk-inv" ((cat a c) ltkac) ((cat b c) ltkbc)))
-  )
-)
-
-(defskeleton yahalom
-  (vars (a b c name) (n-b text) (ltkac ltkbc skey))
-  (defstrand resp 4 (a a) (b b) (c c) (n-b n-b) (ltkac ltkac) (ltkbc ltkbc))
-  (non-orig ltkbc ltkac)
-  (uniq-orig n-b)
-)
-
-;;; Ensure encryption key remains secret.
-(defskeleton yahalom
-  (vars (a b c name) (n-b text) (ltkac ltkbc k skey))
-  (defstrand resp 4 (a a) (b b) (c c) (n-b n-b) (k k) (ltkac ltkac) (ltkbc ltkbc))
-  (deflistener k)
-  (non-orig ltkbc ltkac)
-  (uniq-orig n-b)
-)
-
-;;;  In this version, fn-of is only used for the "forward" direction
-;;; of the ltk function.  In other words, if y = ltk(a,b) and z =
-;;; ltk(a,b) then y = z.  But if y = ltk(a,b) and z = ltk(c,d) it is
-;;; not necessarily the case that if y = z then a = b and c = d.
-(defprotocol yahalom2 basic
-  (defrole init
-    (vars (a b c name) (n-a n-b text) (ltkac ltkbc k skey))
-    ; Including init (c ltkac) to force c, ltkac to be present in the
-    ; trace.
-    (trace (init (cat c ltkac))
-           (send (cat a n-a))
-	   (recv (enc b k n-a n-b ltkac))
-	   (send (enc n-b k)))
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))
-  )
-  (defrole resp
-    (vars (b a c name) (n-a n-b text) (ltkac ltkbc k skey))
-    ; Including init (c ltkac) to force c, ltkac to be present in the
-    ; trace.
-    (trace (init (cat c ltkac))
-           (recv (cat a n-a))
-	   (send (cat b (enc a n-a n-b ltkbc)))
-	   (recv (enc a k ltkbc))
-	   (recv (enc n-b k)))
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))
-  )
-  (defrole serv
-    (vars (c a b name) (n-a n-b text) (ltkac ltkbc k skey))
-    ; Including init c to force c to be present in the trace.
-    (trace (init c)
-           (recv (cat b (enc a n-a n-b ltkbc)))
-	   (send (enc b k n-a n-b ltkac))
-	   (send (enc a k ltkbc)))
-    (uniq-orig k)
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))
-  )
-)
-
-(defprotocol yahalom2 basic
-  (defrole init
-    (vars (a b c name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (send (cat a n-a (hash ltkbc)))
-	   (recv (enc b k n-a n-b ltkac))
-	   (send (enc n-b k)))
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))
-  )
-  (defrole resp
-    (vars (b a c name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (recv (cat a n-a))
-	   (send (cat b (enc a n-a n-b ltkbc) (hash c ltkac)))
-	   (recv (enc a k ltkbc))
-	   (recv (enc n-b k)))
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))
-  )
-  (defrole serv
-    (vars (c a b name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (recv (cat b (enc a n-a n-b ltkbc)))
-	   (send (cat (hash c) (enc b k n-a n-b ltkac)))
-	   (send (enc a k ltkbc)))
-    (uniq-orig k)
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))
-  )
-)
-
-(defskeleton yahalom2
-  (vars (a b c name) (n-b text) (ltkac ltkbc skey))
-  (defstrand resp 4 (a a) (b b) (c c) (n-b n-b) (ltkac ltkac) (ltkbc ltkbc))
-  (non-orig ltkbc ltkac)
-  (uniq-orig n-b)
-)
-
-;;; Ensure encryption key remains secret.
-(defskeleton yahalom2
-  (vars (a b c name) (n-b text) (ltkac ltkbc k skey))
-  (defstrand resp 4 (a a) (b b) (c c) (n-b n-b) (k k) (ltkac ltkac) (ltkbc ltkbc))
-  (deflistener k)
-  (non-orig ltkbc ltkac)
-  (uniq-orig n-b)
-)
diff --git a/tst/fnof_yahalom.tst b/tst/fnof_yahalom.tst
deleted file mode 100644
--- a/tst/fnof_yahalom.tst
+++ /dev/null
@@ -1,648 +0,0 @@
-(herald
-  "Yahalom Protocol with Forwarding Removed, using fnof to emulate ltk function"
-  (bound 12))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/fnof_yahalom.scm")
-
-(defprotocol yahalom basic
-  (defrole init
-    (vars (a b c name) (n-a n-b text) (ltkac k skey))
-    (trace (init (cat c ltkac)) (send (cat a n-a))
-      (recv (enc b k n-a n-b ltkac)) (send (enc n-b k)))
-    (fn-of ("ltk" (ltkac (cat a c))) ("ltk-inv" ((cat a c) ltkac))))
-  (defrole resp
-    (vars (b a c name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (init (cat c ltkac)) (recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc))) (recv (enc a k ltkbc))
-      (recv (enc n-b k)))
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c)))
-      ("ltk-inv" ((cat a c) ltkac) ((cat b c) ltkbc))))
-  (defrole serv
-    (vars (c a b name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (init c) (recv (cat b (enc a n-a n-b ltkbc)))
-      (send (enc b k n-a n-b ltkac)) (send (enc a k ltkbc)))
-    (uniq-orig k)
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c)))
-      ("ltk-inv" ((cat a c) ltkac) ((cat b c) ltkbc)))))
-
-(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c)))
-    ("ltk-inv" ((cat a c) ltkac) ((cat b c) ltkbc)))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b)
-  (traces
-    ((init (cat c ltkac)) (recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc))) (recv (enc a k ltkbc))))
-  (label 0)
-  (unrealized (0 3))
-  (origs (n-b (0 2)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (defstrand serv 4 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b)
-    (ltkac ltkac) (ltkbc ltkbc) (k k))
-  (precedes ((1 3) (0 3)))
-  (fn-of ("ltk" (ltkbc (cat b c)) (ltkac (cat a c)))
-    ("ltk-inv" ((cat b c) ltkbc) ((cat a c) ltkac)))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand serv 4) (enc a k ltkbc)
-    (0 3))
-  (traces
-    ((init (cat c ltkac)) (recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc))) (recv (enc a k ltkbc)))
-    ((init c) (recv (cat b (enc a n-a-0 n-b-0 ltkbc)))
-      (send (enc b k n-a-0 n-b-0 ltkac)) (send (enc a k ltkbc))))
-  (label 1)
-  (parent 0)
-  (unrealized (1 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (defstrand serv 4 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (precedes ((0 2) (1 1)) ((1 3) (0 3)))
-  (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c)))
-    ("ltk-inv" ((cat a c) ltkac) ((cat b c) ltkbc)))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (displaced 2 0 resp 3)
-    (enc a n-a-0 n-b-0 ltkbc) (1 1))
-  (traces
-    ((init (cat c ltkac)) (recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc))) (recv (enc a k ltkbc)))
-    ((init c) (recv (cat b (enc a n-a n-b ltkbc)))
-      (send (enc b k n-a n-b ltkac)) (send (enc a k ltkbc))))
-  (label 2)
-  (parent 1)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((a a) (b b) (c c) (n-b n-b) (ltkac ltkac) (ltkbc ltkbc) (n-a n-a)
-        (k k))))
-  (origs (k (1 2)) (n-b (0 2))))
-
-(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (defstrand serv 4 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b)
-    (ltkac ltkac) (ltkbc ltkbc) (k k))
-  (defstrand resp 3 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c)
-    (ltkac ltkac) (ltkbc ltkbc))
-  (precedes ((1 3) (0 3)) ((2 2) (1 1)))
-  (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c)))
-    ("ltk-inv" ((cat a c) ltkac) ((cat b c) ltkbc)))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand resp 3)
-    (enc a n-a-0 n-b-0 ltkbc) (1 1))
-  (traces
-    ((init (cat c ltkac)) (recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc))) (recv (enc a k ltkbc)))
-    ((init c) (recv (cat b (enc a n-a-0 n-b-0 ltkbc)))
-      (send (enc b k n-a-0 n-b-0 ltkac)) (send (enc a k ltkbc)))
-    ((init (cat c ltkac)) (recv (cat a n-a-0))
-      (send (cat b (enc a n-a-0 n-b-0 ltkbc)))))
-  (label 3)
-  (parent 1)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((a a) (b b) (c c) (n-b n-b) (ltkac ltkac) (ltkbc ltkbc) (n-a n-a)
-        (k k))))
-  (origs (k (1 2)) (n-b (0 2))))
-
-(comment "Nothing left to do")
-
-(defprotocol yahalom basic
-  (defrole init
-    (vars (a b c name) (n-a n-b text) (ltkac k skey))
-    (trace (init (cat c ltkac)) (send (cat a n-a))
-      (recv (enc b k n-a n-b ltkac)) (send (enc n-b k)))
-    (fn-of ("ltk" (ltkac (cat a c))) ("ltk-inv" ((cat a c) ltkac))))
-  (defrole resp
-    (vars (b a c name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (init (cat c ltkac)) (recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc))) (recv (enc a k ltkbc))
-      (recv (enc n-b k)))
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c)))
-      ("ltk-inv" ((cat a c) ltkac) ((cat b c) ltkbc))))
-  (defrole serv
-    (vars (c a b name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (init c) (recv (cat b (enc a n-a n-b ltkbc)))
-      (send (enc b k n-a n-b ltkac)) (send (enc a k ltkbc)))
-    (uniq-orig k)
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c)))
-      ("ltk-inv" ((cat a c) ltkac) ((cat b c) ltkbc)))))
-
-(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c)))
-    ("ltk-inv" ((cat a c) ltkac) ((cat b c) ltkbc)))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b)
-  (traces
-    ((init (cat c ltkac)) (recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc))) (recv (enc a k ltkbc)))
-    ((recv k) (send k)))
-  (label 4)
-  (unrealized (0 3))
-  (origs (n-b (0 2)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (defstrand serv 4 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b)
-    (ltkac ltkac) (ltkbc ltkbc) (k k))
-  (precedes ((2 2) (1 0)) ((2 3) (0 3)))
-  (fn-of ("ltk" (ltkbc (cat b c)) (ltkac (cat a c)))
-    ("ltk-inv" ((cat b c) ltkbc) ((cat a c) ltkac)))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand serv 4) (enc a k ltkbc)
-    (0 3))
-  (traces
-    ((init (cat c ltkac)) (recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc))) (recv (enc a k ltkbc)))
-    ((recv k) (send k))
-    ((init c) (recv (cat b (enc a n-a-0 n-b-0 ltkbc)))
-      (send (enc b k n-a-0 n-b-0 ltkac)) (send (enc a k ltkbc))))
-  (label 5)
-  (parent 4)
-  (unrealized (1 0) (2 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (defstrand serv 4 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (precedes ((0 2) (2 1)) ((2 2) (1 0)) ((2 3) (0 3)))
-  (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c)))
-    ("ltk-inv" ((cat a c) ltkac) ((cat b c) ltkbc)))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (displaced 3 0 resp 3)
-    (enc a n-a-0 n-b-0 ltkbc) (2 1))
-  (traces
-    ((init (cat c ltkac)) (recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc))) (recv (enc a k ltkbc)))
-    ((recv k) (send k))
-    ((init c) (recv (cat b (enc a n-a n-b ltkbc)))
-      (send (enc b k n-a n-b ltkac)) (send (enc a k ltkbc))))
-  (label 6)
-  (parent 5)
-  (unrealized (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (defstrand serv 4 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b)
-    (ltkac ltkac) (ltkbc ltkbc) (k k))
-  (defstrand resp 3 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c)
-    (ltkac ltkac) (ltkbc ltkbc))
-  (precedes ((2 2) (1 0)) ((2 3) (0 3)) ((3 2) (2 1)))
-  (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c)))
-    ("ltk-inv" ((cat a c) ltkac) ((cat b c) ltkbc)))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand resp 3)
-    (enc a n-a-0 n-b-0 ltkbc) (2 1))
-  (traces
-    ((init (cat c ltkac)) (recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc))) (recv (enc a k ltkbc)))
-    ((recv k) (send k))
-    ((init c) (recv (cat b (enc a n-a-0 n-b-0 ltkbc)))
-      (send (enc b k n-a-0 n-b-0 ltkac)) (send (enc a k ltkbc)))
-    ((init (cat c ltkac)) (recv (cat a n-a-0))
-      (send (cat b (enc a n-a-0 n-b-0 ltkbc)))))
-  (label 7)
-  (parent 5)
-  (unrealized (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (defstrand serv 4 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (precedes ((0 2) (2 1)) ((2 3) (0 3)) ((2 3) (1 0)))
-  (fn-of ("ltk" (ltkbc (cat b c)) (ltkac (cat a c)))
-    ("ltk-inv" ((cat b c) ltkbc) ((cat a c) ltkac)))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation nonce-test (displaced 3 2 serv 4) k (1 0)
-    (enc b k n-a n-b ltkac))
-  (traces
-    ((init (cat c ltkac)) (recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc))) (recv (enc a k ltkbc)))
-    ((recv k) (send k))
-    ((init c) (recv (cat b (enc a n-a n-b ltkbc)))
-      (send (enc b k n-a n-b ltkac)) (send (enc a k ltkbc))))
-  (label 8)
-  (parent 6)
-  (unrealized (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (defstrand serv 4 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b)
-    (ltkac ltkac) (ltkbc ltkbc) (k k))
-  (defstrand resp 3 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c)
-    (ltkac ltkac) (ltkbc ltkbc))
-  (precedes ((2 3) (0 3)) ((2 3) (1 0)) ((3 2) (2 1)))
-  (fn-of ("ltk" (ltkbc (cat b c)) (ltkac (cat a c)))
-    ("ltk-inv" ((cat b c) ltkbc) ((cat a c) ltkac)))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation nonce-test (displaced 4 2 serv 4) k (1 0)
-    (enc b k n-a-0 n-b-0 ltkac))
-  (traces
-    ((init (cat c ltkac)) (recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc))) (recv (enc a k ltkbc)))
-    ((recv k) (send k))
-    ((init c) (recv (cat b (enc a n-a-0 n-b-0 ltkbc)))
-      (send (enc b k n-a-0 n-b-0 ltkac)) (send (enc a k ltkbc)))
-    ((init (cat c ltkac)) (recv (cat a n-a-0))
-      (send (cat b (enc a n-a-0 n-b-0 ltkbc)))))
-  (label 9)
-  (parent 7)
-  (unrealized (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol yahalom2 basic
-  (defrole init
-    (vars (a b name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (send (cat a n-a (hash ltkbc)))
-      (recv (enc b k n-a n-b ltkac)) (send (enc n-b k))))
-  (defrole resp
-    (vars (b a c name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc) (hash c ltkac)))
-      (recv (enc a k ltkbc)) (recv (enc n-b k)))
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c)))))
-  (defrole serv
-    (vars (c a b name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (recv (cat b (enc a n-a n-b ltkbc)))
-      (send (cat (hash c) (enc b k n-a n-b ltkac)))
-      (send (enc a k ltkbc)))
-    (uniq-orig k)
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))))
-
-(defskeleton yahalom2
-  (vars (n-b n-a text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b)
-  (traces
-    ((recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc) (hash c ltkac)))
-      (recv (enc a k ltkbc)) (recv (enc n-b k))))
-  (label 10)
-  (unrealized (0 2) (0 3))
-  (origs (n-b (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton yahalom2
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c c-0 b-0 name)
-    (ltkac ltkbc k ltkac-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c-0) (a a) (b b-0)
-    (ltkac ltkac-0) (ltkbc ltkbc) (k k))
-  (precedes ((1 2) (0 2)))
-  (fn-of
-    ("ltk" (ltkac-0 (cat a c-0)) (ltkbc (cat b-0 c-0)) (ltkac (cat a c))
-      (ltkbc (cat b c))))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand serv 3) (enc a k ltkbc)
-    (0 2))
-  (traces
-    ((recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc) (hash c ltkac)))
-      (recv (enc a k ltkbc)) (recv (enc n-b k)))
-    ((recv (cat b-0 (enc a n-a-0 n-b-0 ltkbc)))
-      (send (cat (hash c-0) (enc b-0 k n-a-0 n-b-0 ltkac-0)))
-      (send (enc a k ltkbc))))
-  (label 11)
-  (parent 10)
-  (unrealized (0 3) (1 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton yahalom2
-  (vars (n-b n-a text) (a b c c-0 b-0 name)
-    (ltkac ltkbc k ltkac-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c-0) (a a) (b b-0)
-    (ltkac ltkac-0) (ltkbc ltkbc) (k k))
-  (precedes ((0 1) (1 0)) ((1 2) (0 2)))
-  (fn-of
-    ("ltk" (ltkac (cat a c)) (ltkbc (cat b c)) (ltkac-0 (cat a c-0))
-      (ltkbc (cat b-0 c-0))))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc a n-a-0 n-b-0 ltkbc) (1 0))
-  (traces
-    ((recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc) (hash c ltkac)))
-      (recv (enc a k ltkbc)) (recv (enc n-b k)))
-    ((recv (cat b-0 (enc a n-a n-b ltkbc)))
-      (send (cat (hash c-0) (enc b-0 k n-a n-b ltkac-0)))
-      (send (enc a k ltkbc))))
-  (label 12)
-  (parent 11)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((a a) (b b) (c c) (n-b n-b) (ltkac ltkac) (ltkbc ltkbc) (n-a n-a)
-        (k k))))
-  (origs (k (1 1)) (n-b (0 1))))
-
-(defskeleton yahalom2
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c c-0 b-0 b-1 c-1 name)
-    (ltkac ltkbc k ltkac-0 ltkac-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c-0) (a a) (b b-0)
-    (ltkac ltkac-0) (ltkbc ltkbc) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b-1) (a a) (c c-1)
-    (ltkac ltkac-1) (ltkbc ltkbc))
-  (precedes ((1 2) (0 2)) ((2 1) (1 0)))
-  (fn-of
-    ("ltk" (ltkac-1 (cat a c-1)) (ltkbc (cat b-1 c-1))
-      (ltkac-0 (cat a c-0)) (ltkbc (cat b-0 c-0)) (ltkac (cat a c))
-      (ltkbc (cat b c))))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand resp 2)
-    (enc a n-a-0 n-b-0 ltkbc) (1 0))
-  (traces
-    ((recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc) (hash c ltkac)))
-      (recv (enc a k ltkbc)) (recv (enc n-b k)))
-    ((recv (cat b-0 (enc a n-a-0 n-b-0 ltkbc)))
-      (send (cat (hash c-0) (enc b-0 k n-a-0 n-b-0 ltkac-0)))
-      (send (enc a k ltkbc)))
-    ((recv (cat a n-a-0))
-      (send (cat b-1 (enc a n-a-0 n-b-0 ltkbc) (hash c-1 ltkac-1)))))
-  (label 13)
-  (parent 11)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton yahalom2
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c c-0 b-0 b-1 c-1 c-2 b-2 name)
-    (ltkac ltkbc k ltkac-0 ltkac-1 ltkac-2 k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c-0) (a a) (b b-0)
-    (ltkac ltkac-0) (ltkbc ltkbc) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b-1) (a a) (c c-1)
-    (ltkac ltkac-1) (ltkbc ltkbc))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c-2) (a a) (b b-2)
-    (ltkac ltkac-2) (ltkbc ltkbc) (k k-0))
-  (precedes ((0 1) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (0 3)))
-  (fn-of
-    ("ltk" (ltkac-2 (cat a c-2)) (ltkbc (cat b-2 c-2))
-      (ltkac-1 (cat a c-1)) (ltkbc (cat b-1 c-1)) (ltkac-0 (cat a c-0))
-      (ltkbc (cat b-0 c-0)) (ltkac (cat a c)) (ltkbc (cat b c))))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (added-strand serv 2) n-b (0 3)
-    (enc a n-a n-b ltkbc))
-  (traces
-    ((recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc) (hash c ltkac)))
-      (recv (enc a k ltkbc)) (recv (enc n-b k)))
-    ((recv (cat b-0 (enc a n-a-0 n-b-0 ltkbc)))
-      (send (cat (hash c-0) (enc b-0 k n-a-0 n-b-0 ltkac-0)))
-      (send (enc a k ltkbc)))
-    ((recv (cat a n-a-0))
-      (send (cat b-1 (enc a n-a-0 n-b-0 ltkbc) (hash c-1 ltkac-1))))
-    ((recv (cat b-2 (enc a n-a n-b ltkbc)))
-      (send (cat (hash c-2) (enc b-2 k-0 n-a n-b ltkac-2)))))
-  (label 14)
-  (parent 13)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((a a) (b b) (c c) (n-b n-b) (ltkac ltkac) (ltkbc ltkbc) (n-a n-a)
-        (k k))))
-  (origs (k-0 (3 1)) (k (1 1)) (n-b (0 1))))
-
-(comment "Nothing left to do")
-
-(defprotocol yahalom2 basic
-  (defrole init
-    (vars (a b name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (send (cat a n-a (hash ltkbc)))
-      (recv (enc b k n-a n-b ltkac)) (send (enc n-b k))))
-  (defrole resp
-    (vars (b a c name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc) (hash c ltkac)))
-      (recv (enc a k ltkbc)) (recv (enc n-b k)))
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c)))))
-  (defrole serv
-    (vars (c a b name) (n-a n-b text) (ltkac ltkbc k skey))
-    (trace (recv (cat b (enc a n-a n-b ltkbc)))
-      (send (cat (hash c) (enc b k n-a n-b ltkac)))
-      (send (enc a k ltkbc)))
-    (uniq-orig k)
-    (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))))
-
-(defskeleton yahalom2
-  (vars (n-b n-a text) (a b c name) (ltkac ltkbc k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (fn-of ("ltk" (ltkac (cat a c)) (ltkbc (cat b c))))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b)
-  (traces
-    ((recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc) (hash c ltkac)))
-      (recv (enc a k ltkbc)) (recv (enc n-b k))) ((recv k) (send k)))
-  (label 15)
-  (unrealized (0 2) (0 3))
-  (origs (n-b (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton yahalom2
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c c-0 b-0 name)
-    (ltkac ltkbc k ltkac-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c-0) (a a) (b b-0)
-    (ltkac ltkac-0) (ltkbc ltkbc) (k k))
-  (precedes ((2 1) (1 0)) ((2 2) (0 2)))
-  (fn-of
-    ("ltk" (ltkac-0 (cat a c-0)) (ltkbc (cat b-0 c-0)) (ltkac (cat a c))
-      (ltkbc (cat b c))))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand serv 3) (enc a k ltkbc)
-    (0 2))
-  (traces
-    ((recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc) (hash c ltkac)))
-      (recv (enc a k ltkbc)) (recv (enc n-b k))) ((recv k) (send k))
-    ((recv (cat b-0 (enc a n-a-0 n-b-0 ltkbc)))
-      (send (cat (hash c-0) (enc b-0 k n-a-0 n-b-0 ltkac-0)))
-      (send (enc a k ltkbc))))
-  (label 16)
-  (parent 15)
-  (unrealized (0 3) (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton yahalom2
-  (vars (n-b n-a text) (a b c c-0 b-0 name)
-    (ltkac ltkbc k ltkac-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c-0) (a a) (b b-0)
-    (ltkac ltkac-0) (ltkbc ltkbc) (k k))
-  (precedes ((0 1) (2 0)) ((2 1) (1 0)) ((2 2) (0 2)))
-  (fn-of
-    ("ltk" (ltkac (cat a c)) (ltkbc (cat b c)) (ltkac-0 (cat a c-0))
-      (ltkbc (cat b-0 c-0))))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (displaced 3 0 resp 2)
-    (enc a n-a-0 n-b-0 ltkbc) (2 0))
-  (traces
-    ((recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc) (hash c ltkac)))
-      (recv (enc a k ltkbc)) (recv (enc n-b k))) ((recv k) (send k))
-    ((recv (cat b-0 (enc a n-a n-b ltkbc)))
-      (send (cat (hash c-0) (enc b-0 k n-a n-b ltkac-0)))
-      (send (enc a k ltkbc))))
-  (label 17)
-  (parent 16)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((a a) (b b) (c c) (n-b n-b) (ltkac ltkac) (ltkbc ltkbc) (k k)
-        (n-a n-a))))
-  (origs (k (2 1)) (n-b (0 1))))
-
-(defskeleton yahalom2
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c c-0 b-0 b-1 c-1 name)
-    (ltkac ltkbc k ltkac-0 ltkac-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c-0) (a a) (b b-0)
-    (ltkac ltkac-0) (ltkbc ltkbc) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b-1) (a a) (c c-1)
-    (ltkac ltkac-1) (ltkbc ltkbc))
-  (precedes ((2 1) (1 0)) ((2 2) (0 2)) ((3 1) (2 0)))
-  (fn-of
-    ("ltk" (ltkac-1 (cat a c-1)) (ltkbc (cat b-1 c-1))
-      (ltkac-0 (cat a c-0)) (ltkbc (cat b-0 c-0)) (ltkac (cat a c))
-      (ltkbc (cat b c))))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k)
-  (operation encryption-test (added-strand resp 2)
-    (enc a n-a-0 n-b-0 ltkbc) (2 0))
-  (traces
-    ((recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc) (hash c ltkac)))
-      (recv (enc a k ltkbc)) (recv (enc n-b k))) ((recv k) (send k))
-    ((recv (cat b-0 (enc a n-a-0 n-b-0 ltkbc)))
-      (send (cat (hash c-0) (enc b-0 k n-a-0 n-b-0 ltkac-0)))
-      (send (enc a k ltkbc)))
-    ((recv (cat a n-a-0))
-      (send (cat b-1 (enc a n-a-0 n-b-0 ltkbc) (hash c-1 ltkac-1)))))
-  (label 18)
-  (parent 16)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton yahalom2
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c c-0 b-0 b-1 c-1 c-2 b-2 name)
-    (ltkac ltkbc k ltkac-0 ltkac-1 ltkac-2 k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (ltkac ltkac)
-    (ltkbc ltkbc) (k k))
-  (deflistener k)
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c-0) (a a) (b b-0)
-    (ltkac ltkac-0) (ltkbc ltkbc) (k k))
-  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b-1) (a a) (c c-1)
-    (ltkac ltkac-1) (ltkbc ltkbc))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c-2) (a a) (b b-2)
-    (ltkac ltkac-2) (ltkbc ltkbc) (k k-0))
-  (precedes ((0 1) (4 0)) ((2 1) (1 0)) ((2 2) (0 2)) ((3 1) (2 0))
-    ((4 1) (0 3)))
-  (fn-of
-    ("ltk" (ltkac-2 (cat a c-2)) (ltkbc (cat b-2 c-2))
-      (ltkac-1 (cat a c-1)) (ltkbc (cat b-1 c-1)) (ltkac-0 (cat a c-0))
-      (ltkbc (cat b-0 c-0)) (ltkac (cat a c)) (ltkbc (cat b c))))
-  (non-orig ltkac ltkbc)
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (added-strand serv 2) n-b (0 3)
-    (enc a n-a n-b ltkbc))
-  (traces
-    ((recv (cat a n-a))
-      (send (cat b (enc a n-a n-b ltkbc) (hash c ltkac)))
-      (recv (enc a k ltkbc)) (recv (enc n-b k))) ((recv k) (send k))
-    ((recv (cat b-0 (enc a n-a-0 n-b-0 ltkbc)))
-      (send (cat (hash c-0) (enc b-0 k n-a-0 n-b-0 ltkac-0)))
-      (send (enc a k ltkbc)))
-    ((recv (cat a n-a-0))
-      (send (cat b-1 (enc a n-a-0 n-b-0 ltkbc) (hash c-1 ltkac-1))))
-    ((recv (cat b-2 (enc a n-a n-b ltkbc)))
-      (send (cat (hash c-2) (enc b-2 k-0 n-a n-b ltkac-2)))))
-  (label 19)
-  (parent 18)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((a a) (b b) (c c) (n-b n-b) (ltkac ltkac) (ltkbc ltkbc) (k k)
-        (n-a n-a))))
-  (origs (k-0 (4 1)) (k (2 1)) (n-b (0 1))))
-
-(comment "Nothing left to do")
diff --git a/tst/fragile_pruning.scm b/tst/fragile_pruning.scm
new file mode 100644
--- /dev/null
+++ b/tst/fragile_pruning.scm
@@ -0,0 +1,45 @@
+;;; Illustrates how delicate pruning must be:
+;;; to find a shape we must allow 3 almost
+;;; identical instances of "adder", without
+;;; pruning them even though they are renamings of
+;;; each other.
+;;; This goes to show that pruning is not justified
+;;; in some cases even when the two strands are
+;;; isomorphic.  What is lost by pruning here is merely
+;;; the ability for a fresh variable of sort text to
+;;; unify with a different already-existing variable of
+;;; sort text without unifying the two existing ones.
+
+(defprotocol fragile_pruning basic
+  (defrole init (vars (k akey) (n n1 n2 n3 text))
+    (trace
+	(send (enc n k))
+      (recv (enc n n1 k))
+      (recv (enc n n2 k))
+      (recv (enc n n3 k))
+      (send (enc n n1 n2 n3 k))
+      (recv (enc n n1 n2 n3 n k))
+    )
+    (uniq-orig n)
+    (non-orig (invk k))
+  )
+  (defrole adder (vars (k akey) (n new text))
+    (trace
+      (recv (enc n k))
+      (send (enc n new k))
+    )
+    (uniq-orig new)
+  )
+  (defrole final (vars (k akey) (n n1 n2 n3 text))
+    (trace
+       (recv (enc n n1 n2 n3 k))
+       (send (enc n n1 n2 n3 n k))
+    )
+  )
+)
+
+(defskeleton fragile_pruning
+  (vars (k akey) (n n1 n2 n3  text))
+  (defstrand init 6 (k k) (n n) (n1 n1) (n2 n2) (n3 n3))
+  (uniq-orig n1 n2 n3)
+)
diff --git a/tst/fragile_pruning.tst b/tst/fragile_pruning.tst
new file mode 100644
--- /dev/null
+++ b/tst/fragile_pruning.tst
@@ -0,0 +1,4865 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/fragile_pruning.scm")
+
+(defprotocol fragile_pruning basic
+  (defrole init
+    (vars (k akey) (n n1 n2 n3 text))
+    (trace (send (enc n k)) (recv (enc n n1 k)) (recv (enc n n2 k))
+      (recv (enc n n3 k)) (send (enc n n1 n2 n3 k))
+      (recv (enc n n1 n2 n3 n k)))
+    (non-orig (invk k))
+    (uniq-orig n))
+  (defrole adder
+    (vars (k akey) (n new text))
+    (trace (recv (enc n k)) (send (enc n new k)))
+    (uniq-orig new))
+  (defrole final
+    (vars (k akey) (n n1 n2 n3 text))
+    (trace (recv (enc n n1 n2 n3 k)) (send (enc n n1 n2 n3 n k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton fragile_pruning
+  (vars (n n1 n2 n3 text) (k akey))
+  (defstrand init 6 (n n) (n1 n1) (n2 n2) (n3 n3) (k k))
+  (non-orig (invk k))
+  (uniq-orig n n1 n2 n3)
+  (traces
+    ((send (enc n k)) (recv (enc n n1 k)) (recv (enc n n2 k))
+      (recv (enc n n3 k)) (send (enc n n1 n2 n3 k))
+      (recv (enc n n1 n2 n3 n k))))
+  (label 0)
+  (unrealized (0 1) (0 2) (0 3) (0 5))
+  (origs (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n n1 n2 n3 new text) (k akey))
+  (defstrand init 6 (n n) (n1 n1) (n2 n2) (n3 n3) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig n n1 n2 n3 new)
+  (operation nonce-test (added-strand adder 2) n (0 1) (enc n k))
+  (traces
+    ((send (enc n k)) (recv (enc n n1 k)) (recv (enc n n2 k))
+      (recv (enc n n3 k)) (send (enc n n1 n2 n3 k))
+      (recv (enc n n1 n2 n3 n k)))
+    ((recv (enc n k)) (send (enc n new k))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1) (0 2) (0 3) (0 5))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n n2 n3 new text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 n2) (n3 n3) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig n n2 n3 new)
+  (operation nonce-test (contracted (n1 new)) n (0 1) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n n2 k))
+      (recv (enc n n3 k)) (send (enc n new n2 n3 k))
+      (recv (enc n new n2 n3 n k)))
+    ((recv (enc n k)) (send (enc n new k))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 2) (0 3) (0 5))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n n3 new text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 n3) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig n n3 new)
+  (operation nonce-test (contracted (n2 new)) n (0 2) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n n3 k)) (send (enc n new new n3 k))
+      (recv (enc n new new n3 n k)))
+    ((recv (enc n k)) (send (enc n new k))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 3) (0 5))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n n2 n3 new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 n2) (n3 n3) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))
+  (non-orig (invk k))
+  (uniq-orig n n2 n3 new new-0)
+  (operation nonce-test (added-strand adder 2) n (0 2) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n n2 k))
+      (recv (enc n n3 k)) (send (enc n new n2 n3 k))
+      (recv (enc n new n2 n3 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k))))
+  (label 4)
+  (parent 2)
+  (unrealized (0 2) (0 3) (0 5))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig n new)
+  (operation nonce-test (contracted (n3 new)) n (0 3) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k))))
+  (label 5)
+  (parent 3)
+  (unrealized (0 5))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n n3 new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 n3) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
+  (non-orig (invk k))
+  (uniq-orig n n3 new new-0)
+  (operation nonce-test (added-strand adder 2) n (0 3) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n n3 k)) (send (enc n new new n3 k))
+      (recv (enc n new new n3 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k))))
+  (label 6)
+  (parent 3)
+  (unrealized (0 3) (0 5))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n n3 new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 n3) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))
+  (non-orig (invk k))
+  (uniq-orig n n3 new new-0)
+  (operation nonce-test (contracted (n2 new)) n (0 2) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n n3 k)) (send (enc n new new n3 k))
+      (recv (enc n new new n3 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k))))
+  (label 7)
+  (parent 4)
+  (unrealized (0 3) (0 5))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n n3 new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 n3) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))
+  (non-orig (invk k))
+  (uniq-orig n n3 new new-0)
+  (operation nonce-test (contracted (n2 new-0)) n (0 2) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n n3 k)) (send (enc n new new-0 n3 k))
+      (recv (enc n new new-0 n3 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k))))
+  (label 8)
+  (parent 4)
+  (unrealized (0 3) (0 5))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (added-strand adder 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new new new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k))))
+  (label 9)
+  (parent 5)
+  (unrealized (0 5))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new new new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 10)
+  (parent 5)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (contracted (n3 new)) n (0 3) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k))))
+  (label 11)
+  (parent 6)
+  (unrealized (0 5))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (contracted (n3 new-0)) n (0 3) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k))))
+  (label 12)
+  (parent 6)
+  (unrealized (0 5))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (contracted (n3 new)) n (0 3) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k))))
+  (label 13)
+  (parent 7)
+  (unrealized (0 5))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (contracted (n3 new-0)) n (0 3) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k))))
+  (label 14)
+  (parent 7)
+  (unrealized (0 5))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n n3 new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 n3) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 2)) ((3 1) (0 3)))
+  (non-orig (invk k))
+  (uniq-orig n n3 new new-0 new-1)
+  (operation nonce-test (added-strand adder 2) n (0 3) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n n3 k)) (send (enc n new new n3 k))
+      (recv (enc n new new n3 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 15)
+  (parent 7)
+  (unrealized (0 3) (0 5))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (contracted (n3 new)) n (0 3) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k))))
+  (label 16)
+  (parent 8)
+  (unrealized (0 5))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (contracted (n3 new-0)) n (0 3) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k))))
+  (label 17)
+  (parent 8)
+  (unrealized (0 5))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n n3 new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 n3) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 2)) ((3 1) (0 3)))
+  (non-orig (invk k))
+  (uniq-orig n n3 new new-0 new-1)
+  (operation nonce-test (added-strand adder 2) n (0 3) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n n3 k)) (send (enc n new new-0 n3 k))
+      (recv (enc n new new-0 n3 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 18)
+  (parent 8)
+  (unrealized (0 3) (0 5))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((1 1) (3 0))
+    ((2 1) (0 5)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new new new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 19)
+  (parent 9)
+  (seen 21)
+  (unrealized (3 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 4) (2 0)) ((1 1) (0 1)) ((2 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new)
+  (operation nonce-test (displaced 3 0 init 5) n (2 0) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 20)
+  (parent 10)
+  (realized)
+  (shape)
+  (maps ((0) ((k k) (n n) (n1 new) (n2 new) (n3 new))))
+  (origs (n (0 0)) (new (1 1))))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((1 1) (2 0))
+    ((2 1) (0 5)) ((3 1) (2 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (added-strand adder 2) n (2 0) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-0 k))))
+  (label 21)
+  (parent 10)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 3)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand adder 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new new new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 22)
+  (parent 11)
+  (unrealized (0 5))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((1 1) (3 0))
+    ((2 1) (0 3)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new new new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 23)
+  (parent 11)
+  (unrealized (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 3)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand adder 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new new new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 24)
+  (parent 12)
+  (unrealized (0 5))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((1 1) (3 0))
+    ((2 1) (0 3)) ((2 1) (3 0)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new new new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k))))
+  (label 25)
+  (parent 12)
+  (unrealized (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 2)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand adder 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new new new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 26)
+  (parent 13)
+  (unrealized (0 5))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((1 1) (3 0))
+    ((2 1) (0 2)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new new new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 27)
+  (parent 13)
+  (unrealized (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 2)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand adder 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new new new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 28)
+  (parent 14)
+  (unrealized (0 5))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((1 1) (3 0))
+    ((2 1) (0 2)) ((2 1) (3 0)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new new new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k))))
+  (label 29)
+  (parent 14)
+  (unrealized (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 2)) ((3 1) (0 3)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (contracted (n3 new)) n (0 3) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 30)
+  (parent 15)
+  (unrealized (0 5))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 2)) ((3 1) (0 3)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (contracted (n3 new-0)) n (0 3) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 31)
+  (parent 15)
+  (unrealized (0 5))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 2)) ((3 1) (0 3)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (contracted (n3 new-1)) n (0 3) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-1 k)) (send (enc n new new new-1 k))
+      (recv (enc n new new new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 32)
+  (parent 15)
+  (unrealized (0 5))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 2)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand adder 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new new-0 new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 33)
+  (parent 16)
+  (unrealized (0 5))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((1 1) (3 0))
+    ((2 1) (0 2)) ((2 1) (3 0)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new new-0 new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new-0 new k)) (send (enc n new new-0 new n k))))
+  (label 34)
+  (parent 16)
+  (unrealized (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 2)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand adder 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new new-0 new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 35)
+  (parent 17)
+  (unrealized (0 5))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((1 1) (3 0))
+    ((2 1) (0 2)) ((2 1) (3 0)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new new-0 new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new-0 new-0 k))
+      (send (enc n new new-0 new-0 n k))))
+  (label 36)
+  (parent 17)
+  (unrealized (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 2)) ((3 1) (0 3)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (contracted (n3 new)) n (0 3) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 37)
+  (parent 18)
+  (unrealized (0 5))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 2)) ((3 1) (0 3)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (contracted (n3 new-0)) n (0 3) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 38)
+  (parent 18)
+  (unrealized (0 5))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 2)) ((3 1) (0 3)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (contracted (n3 new-1)) n (0 3) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-1 k)) (send (enc n new new-0 new-1 k))
+      (recv (enc n new new-0 new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 39)
+  (parent 18)
+  (unrealized (0 5))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 4) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 5)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (displaced 4 0 init 5) n (3 0) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 40)
+  (parent 19)
+  (seen 20)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((1 1) (3 0)) ((2 1) (0 5)) ((3 1) (0 5)) ((4 1) (3 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand adder 2) n (3 0) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 41)
+  (parent 19)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((0 4) (2 0)) ((1 1) (0 1))
+    ((2 1) (0 5)) ((3 1) (2 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (displaced 4 0 init 5) n (2 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-0 k))))
+  (label 42)
+  (parent 21)
+  (seen 20)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 3)) ((3 1) (0 5)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new new new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 43)
+  (parent 22)
+  (seen 45)
+  (unrealized (4 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((1 1) (3 0))
+    ((2 1) (0 3)) ((2 1) (3 0)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (displaced 4 2 adder 2) n (3 0) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 44)
+  (parent 23)
+  (unrealized (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((1 1) (3 0)) ((2 1) (0 3)) ((3 1) (0 5)) ((4 1) (3 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand adder 2) n (3 0) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 45)
+  (parent 23)
+  (seen 77)
+  (unrealized (3 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 3)) ((2 1) (4 0)) ((3 1) (0 5))
+    ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k)
+    (enc n new new new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k))))
+  (label 46)
+  (parent 24)
+  (seen 48)
+  (unrealized (4 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 4) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 3)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (displaced 4 0 init 5) n (3 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k))))
+  (label 47)
+  (parent 25)
+  (realized)
+  (shape)
+  (maps ((0) ((k k) (n n) (n1 new) (n2 new) (n3 new-0))))
+  (origs (n (0 0)) (new-0 (2 1)) (new (1 1))))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((1 1) (3 0)) ((2 1) (0 3)) ((2 1) (3 0)) ((3 1) (0 5))
+    ((4 1) (3 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand adder 2) n (3 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 48)
+  (parent 25)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 2)) ((3 1) (0 5)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new new new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 49)
+  (parent 26)
+  (seen 51)
+  (unrealized (4 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((1 1) (3 0))
+    ((2 1) (0 2)) ((2 1) (3 0)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (displaced 4 2 adder 2) n (3 0) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 50)
+  (parent 27)
+  (unrealized (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((1 1) (3 0)) ((2 1) (0 2)) ((3 1) (0 5)) ((4 1) (3 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand adder 2) n (3 0) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 51)
+  (parent 27)
+  (seen 84)
+  (unrealized (3 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0)) ((3 1) (0 5))
+    ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k)
+    (enc n new new new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k))))
+  (label 52)
+  (parent 28)
+  (seen 54)
+  (unrealized (4 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 4) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 2)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (displaced 4 0 init 5) n (3 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k))))
+  (label 53)
+  (parent 29)
+  (seen 47)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((1 1) (3 0)) ((2 1) (0 2)) ((2 1) (3 0)) ((3 1) (0 5))
+    ((4 1) (3 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand adder 2) n (3 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 54)
+  (parent 29)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new new new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 55)
+  (parent 30)
+  (unrealized (0 5))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 2)) ((3 1) (0 3)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new new new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 56)
+  (parent 30)
+  (unrealized (4 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k)
+    (enc n new new new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 57)
+  (parent 31)
+  (unrealized (0 5))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0)) ((3 1) (0 3))
+    ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k)
+    (enc n new new new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k))))
+  (label 58)
+  (parent 31)
+  (unrealized (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k)
+    (enc n new new new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-1 k)) (send (enc n new new new-1 k))
+      (recv (enc n new new new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 59)
+  (parent 32)
+  (unrealized (0 5))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 2)) ((3 1) (0 3)) ((3 1) (4 0))
+    ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k)
+    (enc n new new new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-1 k)) (send (enc n new new new-1 k))
+      (recv (enc n new new new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new-1 k)) (send (enc n new new new-1 n k))))
+  (label 60)
+  (parent 32)
+  (unrealized (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0)) ((3 1) (0 5))
+    ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k)
+    (enc n new new-0 new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new k)) (send (enc n new new-0 new n k))))
+  (label 61)
+  (parent 33)
+  (seen 63)
+  (unrealized (4 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 4) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 2)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (displaced 4 0 init 5) n (3 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new-0 new k)) (send (enc n new new-0 new n k))))
+  (label 62)
+  (parent 34)
+  (realized)
+  (shape)
+  (maps ((0) ((k k) (n n) (n1 new) (n2 new-0) (n3 new))))
+  (origs (n (0 0)) (new-0 (2 1)) (new (1 1))))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((1 1) (3 0)) ((2 1) (0 2)) ((2 1) (3 0)) ((3 1) (0 5))
+    ((4 1) (3 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand adder 2) n (3 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new-0 new k)) (send (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 63)
+  (parent 34)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0)) ((3 1) (0 5))
+    ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k)
+    (enc n new new-0 new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new-0 k))
+      (send (enc n new new-0 new-0 n k))))
+  (label 64)
+  (parent 35)
+  (seen 66)
+  (unrealized (4 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 4) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 2)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (displaced 4 0 init 5) n (3 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new-0 new-0 k))
+      (send (enc n new new-0 new-0 n k))))
+  (label 65)
+  (parent 36)
+  (realized)
+  (shape)
+  (maps ((0) ((k k) (n n) (n1 new) (n2 new-0) (n3 new-0))))
+  (origs (n (0 0)) (new-0 (2 1)) (new (1 1))))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((1 1) (3 0)) ((2 1) (0 2)) ((2 1) (3 0)) ((3 1) (0 5))
+    ((4 1) (3 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand adder 2) n (3 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new-0 new-0 k))
+      (send (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 66)
+  (parent 36)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k)
+    (enc n new new-0 new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 67)
+  (parent 37)
+  (unrealized (0 5))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0)) ((3 1) (0 3))
+    ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k)
+    (enc n new new-0 new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new k)) (send (enc n new new-0 new n k))))
+  (label 68)
+  (parent 37)
+  (unrealized (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k)
+    (enc n new new-0 new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 69)
+  (parent 38)
+  (unrealized (0 5))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0)) ((3 1) (0 3))
+    ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k)
+    (enc n new new-0 new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new-0 k))
+      (send (enc n new new-0 new-0 n k))))
+  (label 70)
+  (parent 38)
+  (unrealized (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k)
+    (enc n new new-0 new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-1 k)) (send (enc n new new-0 new-1 k))
+      (recv (enc n new new-0 new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 71)
+  (parent 39)
+  (unrealized (0 5))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0)) ((3 1) (0 3))
+    ((3 1) (4 0)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k)
+    (enc n new new-0 new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-1 k)) (send (enc n new new-0 new-1 k))
+      (recv (enc n new new-0 new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new-1 k))
+      (send (enc n new new-0 new-1 n k))))
+  (label 72)
+  (parent 39)
+  (unrealized (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((0 4) (3 0))
+    ((1 1) (0 1)) ((2 1) (0 5)) ((3 1) (0 5)) ((4 1) (3 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 0 init 5) n (3 0) (enc n k)
+    (enc n new k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 73)
+  (parent 41)
+  (seen 42)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 3)) ((2 1) (4 0)) ((3 1) (0 5))
+    ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 2 adder 2) n (4 0) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 74)
+  (parent 43)
+  (seen 77)
+  (unrealized (4 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 3)) ((3 1) (0 5))
+    ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 75)
+  (parent 43)
+  (seen 114)
+  (unrealized (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 4) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 3)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (displaced 4 0 init 5) n (3 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 76)
+  (parent 44)
+  (seen 20)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((1 1) (3 0)) ((2 1) (0 3)) ((2 1) (3 0)) ((3 1) (0 5))
+    ((4 1) (3 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand adder 2) n (3 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 77)
+  (parent 44)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 4) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 3)) ((3 1) (0 5)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k))))
+  (label 78)
+  (parent 46)
+  (seen 47)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 3)) ((2 1) (4 0))
+    ((3 1) (0 5)) ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 79)
+  (parent 46)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((0 4) (3 0))
+    ((1 1) (0 1)) ((2 1) (0 3)) ((3 1) (0 5)) ((4 1) (3 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 0 init 5) n (3 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 80)
+  (parent 48)
+  (seen 47)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0)) ((3 1) (0 5))
+    ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 2 adder 2) n (4 0) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 81)
+  (parent 49)
+  (seen 84)
+  (unrealized (4 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 2)) ((3 1) (0 5))
+    ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 82)
+  (parent 49)
+  (seen 118)
+  (unrealized (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 4) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 2)) ((3 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0)
+  (operation nonce-test (displaced 4 0 init 5) n (3 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 83)
+  (parent 50)
+  (seen 20)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((1 1) (3 0)) ((2 1) (0 2)) ((2 1) (3 0)) ((3 1) (0 5))
+    ((4 1) (3 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (added-strand adder 2) n (3 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 84)
+  (parent 50)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 4) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 5)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k))))
+  (label 85)
+  (parent 52)
+  (seen 53)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0))
+    ((3 1) (0 5)) ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 86)
+  (parent 52)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((0 4) (3 0))
+    ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 5)) ((4 1) (3 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 0 init 5) n (3 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 87)
+  (parent 54)
+  (seen 53)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2)) ((3 1) (0 3))
+    ((4 1) (0 5)) ((5 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new-2 k)
+    (enc n new new new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 88)
+  (parent 55)
+  (seen 91)
+  (unrealized (5 0))
+  (comment "4 in cohort - 3 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0)) ((3 1) (0 3))
+    ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 2 adder 2) n (4 0) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 89)
+  (parent 56)
+  (unrealized (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 2)) ((3 1) (0 3)) ((3 1) (4 0))
+    ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 3 adder 2) n (4 0) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 90)
+  (parent 56)
+  (seen 124)
+  (unrealized (4 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 2)) ((3 1) (0 3))
+    ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 91)
+  (parent 56)
+  (seen 125 126)
+  (unrealized (4 0))
+  (comment "2 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2)) ((2 1) (5 0))
+    ((3 1) (0 3)) ((4 1) (0 5)) ((5 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new-2 k)
+    (enc n new new new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k))))
+  (label 92)
+  (parent 57)
+  (seen 94)
+  (unrealized (5 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0)) ((3 1) (0 3))
+    ((3 1) (4 0)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 3 adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k))))
+  (label 93)
+  (parent 58)
+  (unrealized (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0))
+    ((3 1) (0 3)) ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 94)
+  (parent 58)
+  (seen 130)
+  (unrealized (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2)) ((3 1) (0 3))
+    ((3 1) (5 0)) ((4 1) (0 5)) ((5 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new-2 k)
+    (enc n new new new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-1 k)) (send (enc n new new new-1 k))
+      (recv (enc n new new new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new-1 k)) (send (enc n new new new-1 n k))))
+  (label 95)
+  (parent 59)
+  (seen 97)
+  (unrealized (5 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0)) ((3 1) (0 3))
+    ((3 1) (4 0)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 2 adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-1 k)) (send (enc n new new new-1 k))
+      (recv (enc n new new new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new-1 k)) (send (enc n new new new-1 n k))))
+  (label 96)
+  (parent 60)
+  (unrealized (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 2)) ((3 1) (0 3))
+    ((3 1) (4 0)) ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-1 k)) (send (enc n new new new-1 k))
+      (recv (enc n new new new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new-1 k)) (send (enc n new new new-1 n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 97)
+  (parent 60)
+  (seen 134)
+  (unrealized (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 4) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 5)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new k)) (send (enc n new new-0 new n k))))
+  (label 98)
+  (parent 61)
+  (seen 62)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0))
+    ((3 1) (0 5)) ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new k)) (send (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 99)
+  (parent 61)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((0 4) (3 0))
+    ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 5)) ((4 1) (3 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 0 init 5) n (3 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new-0 new k)) (send (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 100)
+  (parent 63)
+  (seen 62)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 4) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 5)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new-0 k))
+      (send (enc n new new-0 new-0 n k))))
+  (label 101)
+  (parent 64)
+  (seen 65)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0))
+    ((3 1) (0 5)) ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new-0 k))
+      (send (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 102)
+  (parent 64)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((0 4) (3 0))
+    ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 5)) ((4 1) (3 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 0 init 5) n (3 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new-0 new-0 k))
+      (send (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 103)
+  (parent 66)
+  (seen 65)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2)) ((2 1) (5 0))
+    ((3 1) (0 3)) ((4 1) (0 5)) ((5 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new-2 k)
+    (enc n new new-0 new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new-0 new k)) (send (enc n new new-0 new n k))))
+  (label 104)
+  (parent 67)
+  (seen 106)
+  (unrealized (5 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0)) ((3 1) (0 3))
+    ((3 1) (4 0)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 3 adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new k)) (send (enc n new new-0 new n k))))
+  (label 105)
+  (parent 68)
+  (unrealized (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0))
+    ((3 1) (0 3)) ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new k)) (send (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 106)
+  (parent 68)
+  (seen 140)
+  (unrealized (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2)) ((2 1) (5 0))
+    ((3 1) (0 3)) ((4 1) (0 5)) ((5 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new-2 k)
+    (enc n new new-0 new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new-0 new-0 k))
+      (send (enc n new new-0 new-0 n k))))
+  (label 107)
+  (parent 69)
+  (seen 109)
+  (unrealized (5 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0)) ((3 1) (0 3))
+    ((3 1) (4 0)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 3 adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new-0 k))
+      (send (enc n new new-0 new-0 n k))))
+  (label 108)
+  (parent 70)
+  (unrealized (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0))
+    ((3 1) (0 3)) ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new-0 k))
+      (send (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 109)
+  (parent 70)
+  (seen 144)
+  (unrealized (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2)) ((2 1) (5 0))
+    ((3 1) (0 3)) ((3 1) (5 0)) ((4 1) (0 5)) ((5 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand final 2) n (0 5) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new-2 k)
+    (enc n new new-0 new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-1 k)) (send (enc n new new-0 new-1 k))
+      (recv (enc n new new-0 new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new-0 new-1 k))
+      (send (enc n new new-0 new-1 n k))))
+  (label 110)
+  (parent 71)
+  (seen 112)
+  (unrealized (5 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 4) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-1 k)) (send (enc n new new-0 new-1 k))
+      (recv (enc n new new-0 new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new-1 k))
+      (send (enc n new new-0 new-1 n k))))
+  (label 111)
+  (parent 72)
+  (realized)
+  (shape)
+  (maps ((0) ((k k) (n n) (n1 new) (n2 new-0) (n3 new-1))))
+  (origs (n (0 0)) (new-1 (3 1)) (new-0 (2 1)) (new (1 1))))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0))
+    ((3 1) (0 3)) ((3 1) (4 0)) ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-1 k)) (send (enc n new new-0 new-1 k))
+      (recv (enc n new new-0 new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new-1 k))
+      (send (enc n new new-0 new-1 n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 112)
+  (parent 72)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 4) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 3)) ((3 1) (0 5)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 113)
+  (parent 74)
+  (seen 40)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 3)) ((2 1) (4 0))
+    ((3 1) (0 5)) ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 114)
+  (parent 74)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((0 4) (3 0))
+    ((1 1) (0 1)) ((2 1) (0 3)) ((3 1) (0 5)) ((4 1) (3 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 0 init 5) n (3 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 115)
+  (parent 77)
+  (seen 42)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((0 4) (4 0)) ((1 1) (0 1)) ((2 1) (0 3)) ((3 1) (0 5))
+    ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-2 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 116)
+  (parent 79)
+  (seen 80)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 4) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 5)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 117)
+  (parent 81)
+  (seen 40)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0))
+    ((3 1) (0 5)) ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 118)
+  (parent 81)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((0 4) (3 0))
+    ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 5)) ((4 1) (3 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 0 init 5) n (3 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-1 k))))
+  (label 119)
+  (parent 84)
+  (seen 42)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((0 4) (4 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 5))
+    ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-2 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 120)
+  (parent 86)
+  (seen 87)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2)) ((3 1) (0 3))
+    ((3 1) (5 0)) ((4 1) (0 5)) ((5 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 3 adder 2) n (5 0) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 121)
+  (parent 88)
+  (seen 126)
+  (unrealized (5 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2)) ((2 1) (5 0))
+    ((3 1) (0 3)) ((4 1) (0 5)) ((5 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 2 adder 2) n (5 0) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 122)
+  (parent 88)
+  (seen 125 150)
+  (unrealized (5 0))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 new-3 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2))
+    ((3 1) (0 3)) ((4 1) (0 5)) ((5 1) (0 5)) ((6 1) (5 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2 new-3)
+  (operation nonce-test (added-strand adder 2) n (5 0) (enc n k)
+    (enc n new k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-3 k))))
+  (label 123)
+  (parent 88)
+  (seen 151 152)
+  (unrealized (5 0))
+  (comment "2 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0)) ((3 1) (0 3))
+    ((3 1) (4 0)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 3 adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 124)
+  (parent 89)
+  (unrealized (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0))
+    ((3 1) (0 3)) ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 125)
+  (parent 89)
+  (seen 154)
+  (unrealized (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 2)) ((3 1) (0 3))
+    ((3 1) (4 0)) ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 126)
+  (parent 90)
+  (seen 154)
+  (unrealized (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2)) ((2 1) (5 0))
+    ((3 1) (0 3)) ((3 1) (5 0)) ((4 1) (0 5)) ((5 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 3 adder 2) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k))))
+  (label 127)
+  (parent 92)
+  (seen 130)
+  (unrealized (5 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 new-3 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2))
+    ((2 1) (5 0)) ((3 1) (0 3)) ((4 1) (0 5)) ((5 1) (0 5))
+    ((6 1) (5 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2 new-3)
+  (operation nonce-test (added-strand adder 2) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-3 k))))
+  (label 128)
+  (parent 92)
+  (seen 156)
+  (unrealized (5 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 4) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k))))
+  (label 129)
+  (parent 93)
+  (seen 53)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0))
+    ((3 1) (0 3)) ((3 1) (4 0)) ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 130)
+  (parent 93)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2)) ((2 1) (5 0))
+    ((3 1) (0 3)) ((3 1) (5 0)) ((4 1) (0 5)) ((5 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 2 adder 2) n (5 0) (enc n k)
+    (enc n new k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-1 k)) (send (enc n new new new-1 k))
+      (recv (enc n new new new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new-1 k)) (send (enc n new new new-1 n k))))
+  (label 131)
+  (parent 95)
+  (seen 134)
+  (unrealized (5 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 new-3 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new-3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2))
+    ((3 1) (0 3)) ((3 1) (5 0)) ((4 1) (0 5)) ((5 1) (0 5))
+    ((6 1) (5 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2 new-3)
+  (operation nonce-test (added-strand adder 2) n (5 0) (enc n k)
+    (enc n new k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-1 k)) (send (enc n new new new-1 k))
+      (recv (enc n new new new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new-1 k)) (send (enc n new new new-1 n k)))
+    ((recv (enc n k)) (send (enc n new-3 k))))
+  (label 132)
+  (parent 95)
+  (seen 159)
+  (unrealized (5 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 4) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-1 k)) (send (enc n new new new-1 k))
+      (recv (enc n new new new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new-1 k)) (send (enc n new new new-1 n k))))
+  (label 133)
+  (parent 96)
+  (seen 47)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0))
+    ((3 1) (0 3)) ((3 1) (4 0)) ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-1 k)) (send (enc n new new new-1 k))
+      (recv (enc n new new new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new-1 k)) (send (enc n new new new-1 n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 134)
+  (parent 96)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((0 4) (4 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 5))
+    ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-2 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new k)) (send (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 135)
+  (parent 99)
+  (seen 100)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((0 4) (4 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 5))
+    ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-2 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new-0 k))
+      (send (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 136)
+  (parent 102)
+  (seen 103)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2)) ((2 1) (5 0))
+    ((3 1) (0 3)) ((3 1) (5 0)) ((4 1) (0 5)) ((5 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 3 adder 2) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new-0 new k)) (send (enc n new new-0 new n k))))
+  (label 137)
+  (parent 104)
+  (seen 140)
+  (unrealized (5 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 new-3 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2))
+    ((2 1) (5 0)) ((3 1) (0 3)) ((4 1) (0 5)) ((5 1) (0 5))
+    ((6 1) (5 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2 new-3)
+  (operation nonce-test (added-strand adder 2) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new-0 new k)) (send (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new-3 k))))
+  (label 138)
+  (parent 104)
+  (seen 162)
+  (unrealized (5 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 4) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new k)) (send (enc n new new-0 new n k))))
+  (label 139)
+  (parent 105)
+  (seen 62)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0))
+    ((3 1) (0 3)) ((3 1) (4 0)) ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new k)) (send (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 140)
+  (parent 105)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2)) ((2 1) (5 0))
+    ((3 1) (0 3)) ((3 1) (5 0)) ((4 1) (0 5)) ((5 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 3 adder 2) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new-0 new-0 k))
+      (send (enc n new new-0 new-0 n k))))
+  (label 141)
+  (parent 107)
+  (seen 144)
+  (unrealized (5 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 new-3 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2))
+    ((2 1) (5 0)) ((3 1) (0 3)) ((4 1) (0 5)) ((5 1) (0 5))
+    ((6 1) (5 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2 new-3)
+  (operation nonce-test (added-strand adder 2) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new-0 new-0 k))
+      (send (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-3 k))))
+  (label 142)
+  (parent 107)
+  (seen 165)
+  (unrealized (5 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 4) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new-0 k))
+      (send (enc n new new-0 new-0 n k))))
+  (label 143)
+  (parent 108)
+  (seen 65)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0))
+    ((3 1) (0 3)) ((3 1) (4 0)) ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new-0 k))
+      (send (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 144)
+  (parent 108)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 4) (5 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3))
+    ((4 1) (0 5)) ((5 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 0 init 5) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-1 k)) (send (enc n new new-0 new-1 k))
+      (recv (enc n new new-0 new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new-0 new-1 k))
+      (send (enc n new new-0 new-1 n k))))
+  (label 145)
+  (parent 110)
+  (seen 111)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 new-3 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new-3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2))
+    ((2 1) (5 0)) ((3 1) (0 3)) ((3 1) (5 0)) ((4 1) (0 5))
+    ((5 1) (0 5)) ((6 1) (5 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2 new-3)
+  (operation nonce-test (added-strand adder 2) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-1 k)) (send (enc n new new-0 new-1 k))
+      (recv (enc n new new-0 new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new-0 new-1 k))
+      (send (enc n new new-0 new-1 n k)))
+    ((recv (enc n k)) (send (enc n new-3 k))))
+  (label 146)
+  (parent 110)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((0 4) (4 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3))
+    ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new-2 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-1 k)) (send (enc n new new-0 new-1 k))
+      (recv (enc n new new-0 new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new-1 k))
+      (send (enc n new new-0 new-1 n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 147)
+  (parent 112)
+  (seen 111)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((0 4) (4 0)) ((1 1) (0 1)) ((2 1) (0 3)) ((3 1) (0 5))
+    ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-2 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 148)
+  (parent 114)
+  (seen 73)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((0 4) (4 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 5))
+    ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-2 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 149)
+  (parent 118)
+  (seen 73)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2)) ((2 1) (5 0))
+    ((3 1) (0 3)) ((3 1) (5 0)) ((4 1) (0 5)) ((5 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 2 adder 2) n (5 0) (enc n k)
+    (enc n new k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 150)
+  (parent 121)
+  (seen 154)
+  (unrealized (5 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 new-3 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2))
+    ((3 1) (0 3)) ((3 1) (5 0)) ((4 1) (0 5)) ((5 1) (0 5))
+    ((6 1) (5 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2 new-3)
+  (operation nonce-test (added-strand adder 2) n (5 0) (enc n k)
+    (enc n new k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-3 k))))
+  (label 151)
+  (parent 121)
+  (seen 169)
+  (unrealized (5 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 new-3 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2))
+    ((2 1) (5 0)) ((3 1) (0 3)) ((4 1) (0 5)) ((5 1) (0 5))
+    ((6 1) (5 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2 new-3)
+  (operation nonce-test (added-strand adder 2) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-3 k))))
+  (label 152)
+  (parent 122)
+  (seen 169)
+  (unrealized (5 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 4) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3)) ((4 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1)
+  (operation nonce-test (displaced 5 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 153)
+  (parent 124)
+  (seen 76)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (4 0))
+    ((3 1) (0 3)) ((3 1) (4 0)) ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (added-strand adder 2) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 154)
+  (parent 124)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 4) (5 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3))
+    ((4 1) (0 5)) ((5 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 0 init 5) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k))))
+  (label 155)
+  (parent 127)
+  (seen 85)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 new-3 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2))
+    ((2 1) (5 0)) ((3 1) (0 3)) ((3 1) (5 0)) ((4 1) (0 5))
+    ((5 1) (0 5)) ((6 1) (5 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2 new-3)
+  (operation nonce-test (added-strand adder 2) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-3 k))))
+  (label 156)
+  (parent 127)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((0 4) (4 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3))
+    ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new-2 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 157)
+  (parent 130)
+  (seen 87)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 4) (5 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3))
+    ((4 1) (0 5)) ((5 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 0 init 5) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-1 k)) (send (enc n new new new-1 k))
+      (recv (enc n new new new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new-1 k)) (send (enc n new new new-1 n k))))
+  (label 158)
+  (parent 131)
+  (seen 78)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 new-3 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new-3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2))
+    ((2 1) (5 0)) ((3 1) (0 3)) ((3 1) (5 0)) ((4 1) (0 5))
+    ((5 1) (0 5)) ((6 1) (5 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2 new-3)
+  (operation nonce-test (added-strand adder 2) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-1 k)) (send (enc n new new new-1 k))
+      (recv (enc n new new new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new-1 k)) (send (enc n new new new-1 n k)))
+    ((recv (enc n k)) (send (enc n new-3 k))))
+  (label 159)
+  (parent 131)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((0 4) (4 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3))
+    ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new-2 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-1 k)) (send (enc n new new new-1 k))
+      (recv (enc n new new new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new-1 k)) (send (enc n new new new-1 n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 160)
+  (parent 134)
+  (seen 80)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 4) (5 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3))
+    ((4 1) (0 5)) ((5 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 0 init 5) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new-0 new k)) (send (enc n new new-0 new n k))))
+  (label 161)
+  (parent 137)
+  (seen 98)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 new-3 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2))
+    ((2 1) (5 0)) ((3 1) (0 3)) ((3 1) (5 0)) ((4 1) (0 5))
+    ((5 1) (0 5)) ((6 1) (5 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2 new-3)
+  (operation nonce-test (added-strand adder 2) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new-0 new k)) (send (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new-3 k))))
+  (label 162)
+  (parent 137)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((0 4) (4 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3))
+    ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new-2 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new k)) (send (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 163)
+  (parent 140)
+  (seen 100)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 4) (5 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3))
+    ((4 1) (0 5)) ((5 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 0 init 5) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new-0 new-0 k))
+      (send (enc n new new-0 new-0 n k))))
+  (label 164)
+  (parent 141)
+  (seen 101)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 new-3 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2))
+    ((2 1) (5 0)) ((3 1) (0 3)) ((3 1) (5 0)) ((4 1) (0 5))
+    ((5 1) (0 5)) ((6 1) (5 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2 new-3)
+  (operation nonce-test (added-strand adder 2) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new-0 new-0 k))
+      (send (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-3 k))))
+  (label 165)
+  (parent 141)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((0 4) (4 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3))
+    ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new-2 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new-0 new-0 k))
+      (send (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 166)
+  (parent 144)
+  (seen 103)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 new-3 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new-3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 0) (6 0)) ((0 4) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))
+    ((3 1) (0 3)) ((4 1) (0 5)) ((5 1) (0 5)) ((6 1) (5 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2 new-3)
+  (operation nonce-test (displaced 7 0 init 5) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new-3 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-1 k)) (send (enc n new new-0 new-1 k))
+      (recv (enc n new new-0 new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new-0 new-1 k))
+      (send (enc n new new-0 new-1 n k)))
+    ((recv (enc n k)) (send (enc n new-3 k))))
+  (label 167)
+  (parent 146)
+  (seen 147)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 4) (5 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3))
+    ((4 1) (0 5)) ((5 1) (0 5)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 0 init 5) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k))))
+  (label 168)
+  (parent 150)
+  (seen 113)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 new-3 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((1 1) (5 0)) ((2 1) (0 2))
+    ((2 1) (5 0)) ((3 1) (0 3)) ((3 1) (5 0)) ((4 1) (0 5))
+    ((5 1) (0 5)) ((6 1) (5 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2 new-3)
+  (operation nonce-test (added-strand adder 2) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-3 k))))
+  (label 169)
+  (parent 150)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (5 0))
+    ((0 4) (4 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 1) (0 3))
+    ((4 1) (0 5)) ((5 1) (4 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2)
+  (operation nonce-test (displaced 6 0 init 5) n (4 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new-2 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-2 k))))
+  (label 170)
+  (parent 154)
+  (seen 115)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 new-3 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 0) (6 0)) ((0 4) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))
+    ((3 1) (0 3)) ((4 1) (0 5)) ((5 1) (0 5)) ((6 1) (5 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2 new-3)
+  (operation nonce-test (displaced 7 0 init 5) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new-3 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-0 k)) (send (enc n new new new-0 k))
+      (recv (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new-0 k)) (send (enc n new new new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-3 k))))
+  (label 171)
+  (parent 156)
+  (seen 120)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 new-3 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new-1) (k k))
+  (defstrand adder 2 (n n) (new new-3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 0) (6 0)) ((0 4) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))
+    ((3 1) (0 3)) ((4 1) (0 5)) ((5 1) (0 5)) ((6 1) (5 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2 new-3)
+  (operation nonce-test (displaced 7 0 init 5) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new-3 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new-1 k)) (send (enc n new new new-1 k))
+      (recv (enc n new new new-1 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new-1 k)) (send (enc n new new new-1 n k)))
+    ((recv (enc n k)) (send (enc n new-3 k))))
+  (label 172)
+  (parent 159)
+  (seen 116)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 new-3 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 0) (6 0)) ((0 4) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))
+    ((3 1) (0 3)) ((4 1) (0 5)) ((5 1) (0 5)) ((6 1) (5 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2 new-3)
+  (operation nonce-test (displaced 7 0 init 5) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new-3 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new k)) (send (enc n new new-0 new k))
+      (recv (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new-0 new k)) (send (enc n new new-0 new n k)))
+    ((recv (enc n k)) (send (enc n new-3 k))))
+  (label 173)
+  (parent 162)
+  (seen 135)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 new-3 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new-0) (n3 new-0) (k k))
+  (defstrand adder 2 (n n) (new new-3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 0) (6 0)) ((0 4) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))
+    ((3 1) (0 3)) ((4 1) (0 5)) ((5 1) (0 5)) ((6 1) (5 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2 new-3)
+  (operation nonce-test (displaced 7 0 init 5) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new-3 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new-0 k))
+      (recv (enc n new-0 k)) (send (enc n new new-0 new-0 k))
+      (recv (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new-0 new-0 k))
+      (send (enc n new new-0 new-0 n k)))
+    ((recv (enc n k)) (send (enc n new-3 k))))
+  (label 174)
+  (parent 165)
+  (seen 136)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton fragile_pruning
+  (vars (n new new-0 new-1 new-2 new-3 text) (k akey))
+  (defstrand init 6 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new) (k k))
+  (defstrand adder 2 (n n) (new new-0) (k k))
+  (defstrand adder 2 (n n) (new new-1) (k k))
+  (defstrand adder 2 (n n) (new new-2) (k k))
+  (defstrand final 2 (n n) (n1 new) (n2 new) (n3 new) (k k))
+  (defstrand adder 2 (n n) (new new-3) (k k))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((0 0) (6 0)) ((0 4) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))
+    ((3 1) (0 3)) ((4 1) (0 5)) ((5 1) (0 5)) ((6 1) (5 0)))
+  (non-orig (invk k))
+  (uniq-orig n new new-0 new-1 new-2 new-3)
+  (operation nonce-test (displaced 7 0 init 5) n (5 0) (enc n k)
+    (enc n new k) (enc n new-0 k) (enc n new-1 k) (enc n new-3 k))
+  (traces
+    ((send (enc n k)) (recv (enc n new k)) (recv (enc n new k))
+      (recv (enc n new k)) (send (enc n new new new k))
+      (recv (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new k)))
+    ((recv (enc n k)) (send (enc n new-0 k)))
+    ((recv (enc n k)) (send (enc n new-1 k)))
+    ((recv (enc n k)) (send (enc n new-2 k)))
+    ((recv (enc n new new new k)) (send (enc n new new new n k)))
+    ((recv (enc n k)) (send (enc n new-3 k))))
+  (label 175)
+  (parent 169)
+  (seen 148)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/tst/goals.scm b/tst/goals.scm
--- a/tst/goals.scm
+++ b/tst/goals.scm
@@ -214,20 +214,6 @@
       (= z z-0))))
   (comment "Double initiator point of view"))
 
-;;; Double initiator point of view
-(defskeleton ns
-  (vars (a b name) (n1 n1-0 text))
-  (defstrand init 3 (a a) (b b) (n1 n1))
-  (defstrand init 3 (a a) (b b) (n1 n1-0))
-  (non-orig (privk b) (privk a))
-  (uniq-orig n1 n1-0)
-  (goals
-  (forall ((z z-0 strd))
-    (implies
-      (and (p "init" z 3) (p "init" z-0 3))
-      (= z z-0))))
-  (comment "Double initiator point of view 2"))
-
 (defprotocol nsl-typeless basic
   (defrole init
     (vars (a b name) (n1 text) (n2 mesg))
diff --git a/tst/goals.tst b/tst/goals.tst
--- a/tst/goals.tst
+++ b/tst/goals.tst
@@ -1,6 +1,6 @@
 (herald goals)
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/goals.scm")
 
 (defprotocol ns basic
@@ -12,6 +12,12 @@
     (vars (b a name) (n2 n1 text))
     (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
       (recv (enc n2 (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Needham-Schroeder with no role origination assumptions"))
 
 (defskeleton ns
@@ -51,7 +57,7 @@
     ((recv (enc n1 a (pubk b))) (send (enc n1 n2-0 (pubk a)))))
   (label 1)
   (parent 0)
-  (unrealized)
+  (realized)
   (shape)
   (satisfies yes)
   (maps ((0) ((b b) (n1 n1) (a a) (n2 n2))))
@@ -68,6 +74,12 @@
     (vars (b a name) (n2 n1 text))
     (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
       (recv (enc n2 (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Needham-Schroeder with no role origination assumptions"))
 
 (defskeleton ns
@@ -106,7 +118,7 @@
     ((recv (enc n1 a (pubk b))) (send (enc n1 n2-0 (pubk a)))))
   (label 3)
   (parent 2)
-  (unrealized)
+  (realized)
   (shape)
   (satisfies yes)
   (maps ((0) ((b b) (n1 n1) (a a) (n2 n2))))
@@ -123,6 +135,12 @@
     (vars (b a name) (n2 n1 text))
     (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
       (recv (enc n2 (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Needham-Schroeder with no role origination assumptions"))
 
 (defskeleton ns
@@ -163,9 +181,9 @@
       (send (enc n2 (pubk b-0)))))
   (label 5)
   (parent 4)
-  (unrealized)
+  (realized)
   (shape)
-  (satisfies (no (a a) (b b) (n2 n2) (z0 0)))
+  (satisfies (no (p "init" "b" z1 b) (a a) (b b) (n2 n2) (z0 0)))
   (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
   (origs (n2 (0 1))))
 
@@ -180,6 +198,12 @@
     (vars (b a name) (n2 n1 text))
     (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 b (pubk a)))
       (recv (enc n2 (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment
     "Needham-Schroeder-Lowe with no role origination assumptions"))
 
@@ -221,7 +245,7 @@
       (send (enc n2 (pubk b)))))
   (label 7)
   (parent 6)
-  (unrealized)
+  (realized)
   (shape)
   (satisfies yes)
   (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
@@ -238,6 +262,12 @@
     (vars (b a name) (n2 n1 text))
     (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
       (recv (enc n2 (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Needham-Schroeder with no role origination assumptions"))
 
 (defskeleton ns
@@ -270,14 +300,6 @@
   (precedes ((1 0) (0 0)))
   (non-orig (privk a) (privk b))
   (uniq-orig n1)
-  (goals
-    (forall ((a b name) (n1 text) (z0 z1 strd))
-      (implies
-        (and (p "init" z0 3) (p "init" "n1" z0 n1) (p "init" "a" z0 a)
-          (p "init" "b" z0 b) (p "" z1 1) (p "" "x" z1 n1)
-          (non (privk a)) (non (privk b)) (uniq n1)) (false))))
-  (comment "Initiator point of view"
-    "Secrecy goal: nonce n1 not revealed")
   (traces ((recv n1))
     ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
       (send (enc n2 (pubk b)))))
@@ -440,6 +462,12 @@
   (defrole resp
     (vars (a name) (n text))
     (trace (recv (enc n (pubk a))) (send n)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Unilateral authentication"))
 
 (defskeleton unilateral
@@ -473,7 +501,7 @@
     ((recv (enc n (pubk a))) (send n)))
   (label 18)
   (parent 17)
-  (unrealized)
+  (realized)
   (shape)
   (satisfies yes)
   (maps ((0) ((a a) (n n))))
@@ -490,6 +518,12 @@
     (vars (b a name) (n2 n1 text))
     (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
       (recv (enc n2 (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Needham-Schroeder with no role origination assumptions"))
 
 (defskeleton ns
@@ -527,7 +561,7 @@
     ((recv (enc n a-0 (pubk a))) (send (enc n n2-0 (pubk a-0)))))
   (label 20)
   (parent 19)
-  (unrealized)
+  (realized)
   (shape)
   (satisfies yes)
   (maps ((0) ((a a) (n n) (a-0 a-0) (n2 n2))))
@@ -544,6 +578,12 @@
     (vars (b a name) (n2 n1 text))
     (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
       (recv (enc n2 (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Needham-Schroeder with no role origination assumptions"))
 
 (defskeleton ns
@@ -587,7 +627,7 @@
       (send (enc n (pubk b-0)))))
   (label 22)
   (parent 21)
-  (unrealized)
+  (realized)
   (shape)
   (satisfies yes)
   (maps ((0) ((a a) (n n) (b b) (n1 n1))))
@@ -604,6 +644,12 @@
     (vars (b a name) (n2 n1 text))
     (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
       (recv (enc n2 (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Needham-Schroeder with no role origination assumptions"))
 
 (defskeleton ns
@@ -659,7 +705,7 @@
     ((recv (enc n a (pubk b))) (send (enc n n2 (pubk a)))))
   (label 25)
   (parent 24)
-  (unrealized)
+  (realized)
   (shape)
   (satisfies yes yes)
   (maps ((0) ((a a) (b b) (n n) (n2 n2))))
@@ -676,6 +722,12 @@
     (vars (b a name) (n2 n1 text))
     (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
       (recv (enc n2 (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Needham-Schroeder with no role origination assumptions"))
 
 (defskeleton ns
@@ -717,7 +769,7 @@
     ((recv (enc n1 a (pubk b))) (send (enc n1 n2-0 (pubk a)))))
   (label 27)
   (parent 26)
-  (unrealized)
+  (realized)
   (shape)
   (satisfies yes)
   (maps ((0) ((n1 n1) (n2 n2) (b b) (a a))))
@@ -734,6 +786,12 @@
     (vars (b a name) (n2 n1 text))
     (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
       (recv (enc n2 (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Needham-Schroeder with no role origination assumptions"))
 
 (defskeleton ns
@@ -766,14 +824,6 @@
   (precedes ((1 1) (0 0)))
   (non-orig (privk a) (privk b))
   (uniq-orig n2)
-  (goals
-    (forall ((a b name) (n2 text) (z0 z1 strd))
-      (implies
-        (and (p "resp" z0 3) (p "resp" "n2" z0 n2) (p "resp" "a" z0 a)
-          (p "resp" "b" z0 b) (p "" z1 1) (p "" "x" z1 n2)
-          (non (privk a)) (non (privk b)) (uniq n2)) (false))))
-  (comment "Responder point of view"
-    "Failed secrecy goal: nonce n2 not revealed")
   (traces ((recv n2))
     ((recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
       (recv (enc n2 (pubk b)))))
@@ -820,9 +870,9 @@
       (send (enc n2 (pubk b-0)))))
   (label 31)
   (parent 30)
-  (unrealized)
+  (realized)
   (shape)
-  (satisfies (no (a a) (b b) (n2 n2) (z0 1) (z1 0)))
+  (satisfies (no (fact false) (a a) (b b) (n2 n2) (z0 1) (z1 0)))
   (maps ((0 1) ((a a) (b b) (n2 n2) (n1 n1))))
   (origs (n2 (1 1))))
 
@@ -846,9 +896,9 @@
       (send (enc n2 (pubk b-1)))))
   (label 32)
   (parent 30)
-  (unrealized)
+  (realized)
   (shape)
-  (satisfies (no (a a) (b b) (n2 n2) (z0 1) (z1 0)))
+  (satisfies (no (fact false) (a a) (b b) (n2 n2) (z0 1) (z1 0)))
   (maps ((0 1) ((a a) (b b) (n2 n2) (n1 n1))))
   (origs (n2 (1 1))))
 
@@ -863,6 +913,12 @@
     (vars (b a name) (n2 n1 text))
     (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
       (recv (enc n2 (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Needham-Schroeder with no role origination assumptions"))
 
 (defskeleton ns
@@ -981,7 +1037,7 @@
     ((recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))))
   (label 38)
   (parent 36)
-  (unrealized)
+  (realized)
   (shape)
   (satisfies yes)
   (maps ((0 0) ((a a) (b b) (n1 n1) (n1-0 n1) (n2 n2) (n2-0 n2))))
@@ -1030,189 +1086,11 @@
     ((recv (enc n1 a (pubk b))) (send (enc n1 n2-0 (pubk a)))))
   (label 40)
   (parent 39)
-  (unrealized)
+  (realized)
   (shape)
   (satisfies
-    (no (n1 n1) (n1-0 n1-0) (n2 n2-0) (n2-0 n2) (a a) (b b) (z 0)
-      (z-0 1)))
-  (maps ((0 1) ((a a) (b b) (n1 n1) (n1-0 n1-0) (n2 n2-0) (n2-0 n2))))
-  (origs (n1 (0 0)) (n1-0 (1 0))))
-
-(comment "Nothing left to do")
-
-(defprotocol ns basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
-      (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
-      (recv (enc n2 (pubk b)))))
-  (comment "Needham-Schroeder with no role origination assumptions"))
-
-(defskeleton ns
-  (vars (n1 n1-0 n2 n2-0 text) (a b name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1 n1-0)
-  (goals
-    (forall ((z z-0 strd))
-      (implies (and (p "init" z 3) (p "init" z-0 3)) (= z z-0))))
-  (comment "Double initiator point of view 2")
-  (traces
-    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
-      (send (enc n2 (pubk b))))
-    ((send (enc n1-0 a (pubk b))) (recv (enc n1-0 n2-0 (pubk a)))
-      (send (enc n2-0 (pubk b)))))
-  (label 41)
-  (unrealized (0 1) (1 1))
-  (origs (n1 (0 0)) (n1-0 (1 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton ns
-  (vars (n1 n2 text) (a b name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1)
-  (operation collapsed 1 0)
-  (traces
-    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
-      (send (enc n2 (pubk b)))))
-  (label 42)
-  (parent 41)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton ns
-  (vars (n1 n1-0 n2 n2-0 n2-1 text) (a b name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b))
-  (defstrand resp 2 (n2 n2-1) (n1 n1-0) (b b) (a a))
-  (precedes ((1 0) (2 0)) ((2 1) (1 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1 n1-0)
-  (operation nonce-test (added-strand resp 2) n1-0 (1 1)
-    (enc n1-0 a (pubk b)))
-  (traces
-    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
-      (send (enc n2 (pubk b))))
-    ((send (enc n1-0 a (pubk b))) (recv (enc n1-0 n2-0 (pubk a)))
-      (send (enc n2-0 (pubk b))))
-    ((recv (enc n1-0 a (pubk b))) (send (enc n1-0 n2-1 (pubk a)))))
-  (label 43)
-  (parent 41)
-  (unrealized (0 1) (1 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton ns
-  (vars (n1 n2 n2-0 text) (a b name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1)
-  (operation nonce-test (added-strand resp 2) n1 (0 1)
-    (enc n1 a (pubk b)))
-  (traces
-    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
-      (send (enc n2 (pubk b))))
-    ((recv (enc n1 a (pubk b))) (send (enc n1 n2-0 (pubk a)))))
-  (label 44)
-  (parent 42)
-  (unrealized (0 1))
-  (origs (n1 (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton ns
-  (vars (n1 n1-0 n2 n2-0 text) (a b name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b))
-  (defstrand resp 2 (n2 n2-0) (n1 n1-0) (b b) (a a))
-  (precedes ((1 0) (2 0)) ((2 1) (1 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1 n1-0)
-  (operation nonce-test (contracted (n2-1 n2-0)) n1-0 (1 1)
-    (enc n1-0 n2-0 (pubk a)) (enc n1-0 a (pubk b)))
-  (traces
-    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
-      (send (enc n2 (pubk b))))
-    ((send (enc n1-0 a (pubk b))) (recv (enc n1-0 n2-0 (pubk a)))
-      (send (enc n2-0 (pubk b))))
-    ((recv (enc n1-0 a (pubk b))) (send (enc n1-0 n2-0 (pubk a)))))
-  (label 45)
-  (parent 43)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton ns
-  (vars (n1 n2 text) (a b name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1)
-  (operation nonce-test (contracted (n2-0 n2)) n1 (0 1)
-    (enc n1 n2 (pubk a)) (enc n1 a (pubk b)))
-  (traces
-    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
-      (send (enc n2 (pubk b))))
-    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))))
-  (label 46)
-  (parent 44)
-  (unrealized)
-  (shape)
-  (satisfies yes)
-  (maps ((0 0) ((a a) (b b) (n1 n1) (n1-0 n1) (n2 n2) (n2-0 n2))))
-  (origs (n1 (0 0))))
-
-(defskeleton ns
-  (vars (n1 n1-0 n2 n2-0 n2-1 text) (a b name))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
-  (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b))
-  (defstrand resp 2 (n2 n2-0) (n1 n1-0) (b b) (a a))
-  (defstrand resp 2 (n2 n2-1) (n1 n1) (b b) (a a))
-  (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((2 1) (1 1)) ((3 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1 n1-0)
-  (operation nonce-test (added-strand resp 2) n1 (0 1)
-    (enc n1 a (pubk b)))
-  (traces
-    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
-      (send (enc n2 (pubk b))))
-    ((send (enc n1-0 a (pubk b))) (recv (enc n1-0 n2-0 (pubk a)))
-      (send (enc n2-0 (pubk b))))
-    ((recv (enc n1-0 a (pubk b))) (send (enc n1-0 n2-0 (pubk a))))
-    ((recv (enc n1 a (pubk b))) (send (enc n1 n2-1 (pubk a)))))
-  (label 47)
-  (parent 45)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton ns
-  (vars (n1 n1-0 n2 n2-0 text) (a b name))
-  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
-  (defstrand init 3 (n1 n1-0) (n2 n2) (a a) (b b))
-  (defstrand resp 2 (n2 n2) (n1 n1-0) (b b) (a a))
-  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
-  (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((2 1) (1 1)) ((3 1) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-orig n1 n1-0)
-  (operation nonce-test (contracted (n2-1 n2-0)) n1 (0 1)
-    (enc n1 n2-0 (pubk a)) (enc n1 a (pubk b)))
-  (traces
-    ((send (enc n1 a (pubk b))) (recv (enc n1 n2-0 (pubk a)))
-      (send (enc n2-0 (pubk b))))
-    ((send (enc n1-0 a (pubk b))) (recv (enc n1-0 n2 (pubk a)))
-      (send (enc n2 (pubk b))))
-    ((recv (enc n1-0 a (pubk b))) (send (enc n1-0 n2 (pubk a))))
-    ((recv (enc n1 a (pubk b))) (send (enc n1 n2-0 (pubk a)))))
-  (label 48)
-  (parent 47)
-  (unrealized)
-  (shape)
-  (satisfies (no (z 0) (z-0 1)))
+    (no (= z z-0) (n1 n1) (n1-0 n1-0) (n2 n2-0) (n2-0 n2) (a a) (b b)
+      (z 0) (z-0 1)))
   (maps ((0 1) ((a a) (b b) (n1 n1) (n1-0 n1-0) (n2 n2-0) (n2-0 n2))))
   (origs (n1 (0 0)) (n1-0 (1 0))))
 
@@ -1227,6 +1105,12 @@
     (vars (b a name) (n2 text) (n1 mesg))
     (trace (recv (enc a n1 (pubk b))) (send (enc n1 n2 b (pubk a)))
       (recv (enc n2 (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Needham-Schroeder-Lowe with untyped nonces"))
 
 (defskeleton nsl-typeless
@@ -1244,7 +1128,7 @@
   (comment "Shows typeflaw in typeless NSL")
   (traces ((recv n2))
     ((recv (enc a n1 (pubk b))) (send (enc n1 n2 b (pubk a)))))
-  (label 49)
+  (label 41)
   (unrealized (0 0))
   (preskeleton)
   (origs (n2 (1 1)))
@@ -1257,17 +1141,10 @@
   (precedes ((1 1) (0 0)))
   (non-orig (privk a) (privk b))
   (uniq-orig n2)
-  (goals
-    (forall ((n2 text) (a b name) (z z-0 strd))
-      (implies
-        (and (p "resp" z 2) (p "" z-0 1) (p "resp" "n2" z n2)
-          (p "resp" "b" z b) (p "resp" "a" z a) (p "" "x" z-0 n2)
-          (non (privk a)) (non (privk b)) (uniq n2)) (false))))
-  (comment "Shows typeflaw in typeless NSL")
   (traces ((recv n2))
     ((recv (enc a n1 (pubk b))) (send (enc n1 n2 b (pubk a)))))
-  (label 50)
-  (parent 49)
+  (label 42)
+  (parent 41)
   (unrealized (0 0))
   (origs (n2 (1 1)))
   (comment "2 in cohort - 2 not yet seen"))
@@ -1286,8 +1163,8 @@
     ((recv (enc a n1 (pubk b))) (send (enc n1 n2 b (pubk a))))
     ((send (enc a n1 (pubk b))) (recv (enc n1 n2 b (pubk a)))
       (send (enc n2 (pubk b)))))
-  (label 51)
-  (parent 50)
+  (label 43)
+  (parent 42)
   (unrealized (0 0))
   (dead)
   (comment "empty cohort"))
@@ -1306,11 +1183,11 @@
     ((recv (enc a a-0 (pubk b))) (send (enc a-0 n2 b (pubk a))))
     ((recv (enc a-0 n2 b (pubk a)))
       (send (enc (cat n2 b) n2-0 a (pubk a-0)))))
-  (label 52)
-  (parent 50)
-  (unrealized)
+  (label 44)
+  (parent 42)
+  (realized)
   (shape)
-  (satisfies (no (n2 n2) (a a) (b b) (z 1) (z-0 0)))
+  (satisfies (no (fact false) (n2 n2) (a a) (b b) (z 1) (z-0 0)))
   (maps ((0 1) ((n2 n2) (a a) (b b) (n1 a-0))))
   (origs (n2 (1 1))))
 
diff --git a/tst/hashtest-key-hash.scm b/tst/hashtest-key-hash.scm
new file mode 100644
--- /dev/null
+++ b/tst/hashtest-key-hash.scm
@@ -0,0 +1,25 @@
+;;; Hashtest.scm is designed to test if the
+;;; hash is working properly.
+(herald "Hashtest")
+
+(defprotocol hashtest basic
+  (defrole init (vars (n data) (k akey))
+     (trace
+       (send (enc n k))
+       (recv (enc "h" n))
+     )
+     (uniq-orig n)
+     (non-orig (invk k))
+   )
+   (defrole resp (vars (k akey) (n data))
+     (trace
+       (recv (enc n k))
+       (send (enc "h" n))
+     )
+   )
+)
+
+(defskeleton hashtest
+   (vars)
+   (defstrand init 2)
+)
diff --git a/tst/hashtest-key-hash.tst b/tst/hashtest-key-hash.tst
new file mode 100644
--- /dev/null
+++ b/tst/hashtest-key-hash.tst
@@ -0,0 +1,80 @@
+(herald "Hashtest")
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/hashtest-key-hash.scm")
+
+(defprotocol hashtest basic
+  (defrole init
+    (vars (n data) (k akey))
+    (trace (send (enc n k)) (recv (enc "h" n)))
+    (non-orig (invk k))
+    (uniq-orig n))
+  (defrole resp
+    (vars (k akey) (n data))
+    (trace (recv (enc n k)) (send (enc "h" n))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton hashtest
+  (vars (n data) (k akey))
+  (defstrand init 2 (n n) (k k))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (traces ((send (enc n k)) (recv (enc "h" n))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (n (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton hashtest
+  (vars (n data) (k k-0 akey))
+  (defstrand init 2 (n n) (k k))
+  (defstrand resp 2 (n n) (k k-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation encryption-test (added-strand resp 2) (enc "h" n) (0 1))
+  (traces ((send (enc n k)) (recv (enc "h" n)))
+    ((recv (enc n k-0)) (send (enc "h" n))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton hashtest
+  (vars (n data) (k akey))
+  (defstrand init 2 (n n) (k k))
+  (deflistener n)
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation encryption-test (added-listener n) (enc "h" n) (0 1))
+  (traces ((send (enc n k)) (recv (enc "h" n))) ((recv n) (send n)))
+  (label 2)
+  (parent 0)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton hashtest
+  (vars (n data) (k akey))
+  (defstrand init 2 (n n) (k k))
+  (defstrand resp 2 (n n) (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (contracted (k-0 k)) n (1 0) (enc n k))
+  (traces ((send (enc n k)) (recv (enc "h" n)))
+    ((recv (enc n k)) (send (enc "h" n))))
+  (label 3)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (k k))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/hashtest.scm b/tst/hashtest.scm
new file mode 100644
--- /dev/null
+++ b/tst/hashtest.scm
@@ -0,0 +1,25 @@
+;;; Hashtest.scm is designed to test if the
+;;; hash is working properly.
+(herald "Hashtest")
+
+(defprotocol hashtest basic
+  (defrole init (vars (n data) (k akey))
+     (trace
+       (send (enc n k))
+       (recv (hash n))
+     )
+     (uniq-orig n)
+     (non-orig (invk k))
+   )
+   (defrole resp (vars (k akey) (n data))
+     (trace
+       (recv (enc n k))
+       (send (hash n))
+     )
+   )
+)
+
+(defskeleton hashtest
+   (vars)
+   (defstrand init 2)
+)
diff --git a/tst/hashtest.tst b/tst/hashtest.tst
new file mode 100644
--- /dev/null
+++ b/tst/hashtest.tst
@@ -0,0 +1,80 @@
+(herald "Hashtest")
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/hashtest.scm")
+
+(defprotocol hashtest basic
+  (defrole init
+    (vars (n data) (k akey))
+    (trace (send (enc n k)) (recv (hash n)))
+    (non-orig (invk k))
+    (uniq-orig n))
+  (defrole resp
+    (vars (k akey) (n data))
+    (trace (recv (enc n k)) (send (hash n))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton hashtest
+  (vars (n data) (k akey))
+  (defstrand init 2 (n n) (k k))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (traces ((send (enc n k)) (recv (hash n))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (n (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton hashtest
+  (vars (n data) (k k-0 akey))
+  (defstrand init 2 (n n) (k k))
+  (defstrand resp 2 (n n) (k k-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation encryption-test (added-strand resp 2) (hash n) (0 1))
+  (traces ((send (enc n k)) (recv (hash n)))
+    ((recv (enc n k-0)) (send (hash n))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton hashtest
+  (vars (n data) (k akey))
+  (defstrand init 2 (n n) (k k))
+  (deflistener n)
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation encryption-test (added-listener n) (hash n) (0 1))
+  (traces ((send (enc n k)) (recv (hash n))) ((recv n) (send n)))
+  (label 2)
+  (parent 0)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton hashtest
+  (vars (n data) (k akey))
+  (defstrand init 2 (n n) (k k))
+  (defstrand resp 2 (n n) (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (contracted (k-0 k)) n (1 0) (enc n k))
+  (traces ((send (enc n k)) (recv (hash n)))
+    ((recv (enc n k)) (send (hash n))))
+  (label 3)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((n n) (k k))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/iadh_um.scm b/tst/iadh_um.scm
deleted file mode 100644
--- a/tst/iadh_um.scm
+++ /dev/null
@@ -1,69 +0,0 @@
-; Unified Model
-
-; This file models the "Unified Model" method of determining a fresh
-; key from long-term and ephemeral Diffie-Hellman exponents.  Since
-; CPSA does not provide an intrinsic association between names and
-; Diffie-Hellman values, we use digital signatures to link
-; authentication of a Diffie-Hellman long-term public value to a
-; public key.
-
-; A role is provided in which a party signs a fresh long-term
-; Diffie-Hellman value, and then leaks the exponent.  The latter step
-; is used to test the notion of forward security.
-
-; Two inputs are analyzed.  In the first, we model that two
-; participants exist that agree on the UM key.  The notion of
-; "implicit authentication" suggests that if one participant exists
-; and another party knows the same key, that party must be either the
-; participant or the participant's intended partner.
-
-; In this version, we assume that the long-term keys of the
-; participants do not leak.
-
-; The second input checks whether the key can be learned when the key
-; is generated honestly.  In this version, we do NOT assume that the
-; long-term keys of the participants do not leak.
-
-(herald "IADH: unified model (UM)" (bound 20) (limit 2000) (algebra diffie-hellman))
-
-(defprotocol iadh-um diffie-hellman
-  (defrole participant
-    (vars (l e rndx) (lp ep expt) (self peer name) (key n data))
-    (trace
-     (recv (enc "cert" (exp (gen) l) self (privk self)))
-     (recv (enc "cert" (exp (gen) lp) peer (privk peer)))
-     (send (exp (gen) e))
-     (recv (exp (gen) ep))
-     (send key))
-    (fn-of (foo ((hash (exp (gen) (mul l lp)) (exp (gen) (mul e ep))) key)))
-    (uniq-gen e)
-    (neq (ep (one))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace
-     (send (enc "cert" (exp (gen) l) self (privk self)))
-     (send l))
-    (uniq-gen l)
-    (fn-of ("principal-of" (l self))))
-  )
-
-;; Implicit authentication: participants will agree on the resulting key
-;; foo(key).  Therefore they should agree on the names A and B.
- (defskeleton iadh-um
-  (vars (key data) (eA lA eB lB rndx) (A B C D name))
-  (defstrand participant 5 (key key) (e eA) (l lA) (self A) (peer C))
-  (defstrand participant 5 (key key) (e eB) (l lB) (self B) (peer D))
-  (non-orig lA lB)
-  (neq (eA eB))
-  (non-orig (privk C) (privk D) (privk A) (privk B))
-  (comment "Implicit authentication")
-)
-
- ;; Security:
-(defskeleton iadh-um
-  (vars (e1 e2 l rndx) (lp expt) (A B name))
-  (defstrand participant 5 (e e1) (l l) (ep e2) (lp lp) (self A) (peer B))
-  (defstrand participant 3 (e e2))
-  (deflistener (hash (exp (gen) (mul l lp)) (exp (gen) (mul e1 e2))))
-  (non-orig (privk A) (privk B))
-)
diff --git a/tst/iadh_um.tst b/tst/iadh_um.tst
deleted file mode 100644
# file too large to diff: tst/iadh_um.tst
diff --git a/tst/iadh_um_eq.scm b/tst/iadh_um_eq.scm
deleted file mode 100644
--- a/tst/iadh_um_eq.scm
+++ /dev/null
@@ -1,63 +0,0 @@
-; Unified Model
-
-; This file models the "Unified Model" method of determining a fresh
-; key from long-term and ephemeral Diffie-Hellman exponents.  Since
-; CPSA does not provide an intrinsic association between names and
-; Diffie-Hellman values, we use digital signatures to link
-; authentication of a Diffie-Hellman long-term public value to a
-; public key.
-
-; A role is provided in which a party signs a fresh long-term
-; Diffie-Hellman value, and then leaks the exponent.  The latter step
-; is used to test the notion of forward security.
-
-; Two inputs are analyzed.  In the first, we model that two
-; participants exist that agree on the UM key.  The notion of
-; "implicit authentication" suggests that if one participant exists
-; and another party knows the same key, that party must be either the
-; participant or the participant's intended partner.
-
-; In this version, we assume that the long-term keys of the
-; participants do not leak.
-
-; The second input checks whether the key can be learned when the key
-; is generated honestly.  In this version, we do NOT assume that the
-; long-term keys of the participants do not leak.
-
-(herald "IADH: unified model (UM)" (bound 20) (limit 8000) (algebra diffie-hellman))
-
-(defprotocol iadh-um diffie-hellman
-  (defrole participant
-    (vars (l lp e rndx) (ep expt) (self peer name) (n data))
-    (trace
-     (send (cat self peer (exp (gen) l) (exp (gen) lp)))
-     (send (cat (exp (gen) l) (exp (gen) e)))
-     (recv (exp (gen) ep))
-     )
-    (fn-of ("principal-of" (l self) (lp peer))
-           ("ltx-of" (self l) (peer lp)))
-    (uniq-gen e)
-    (neq (ep (one))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace
-     (send (cat self l)))
-    (uniq-orig l)
-    (fn-of ("principal-of" (l self))
-	   ("ltx-of" (self l)))
-
-  )
-)
-
-;; Implicit authentication: participants will agree on the resulting key
-;; foo(key).  Therefore they should agree on the names A and B.
- (defskeleton iadh-um
-  (vars (eA lA lAp eB lB lBp rndx) (ep ep-0 expt))
-  (defstrand participant 3 (lp lAp) (ep ep) (e eA) (l lA))
-  (defstrand participant 3 (lp lBp) (ep ep-0) (e eB) (l lB))
-  (eq ((hash (exp (gen) (mul lBp lB)) (exp (gen) (mul ep-0 eB)))
-       (hash (exp (gen) (mul lAp lA)) (exp (gen) (mul ep eA)))))
-  (non-orig lA lB)
-  (neq (eA eB))
-  (comment "Implicit authentication")
-)
diff --git a/tst/iadh_um_eq.tst b/tst/iadh_um_eq.tst
deleted file mode 100644
--- a/tst/iadh_um_eq.tst
+++ /dev/null
@@ -1,56 +0,0 @@
-(herald "IADH: unified model (UM)" (bound 20) (limit 8000)
-  (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/iadh_um_eq.scm")
-(comment "Step count limited to 8000")
-(comment "Strand count bounded at 20")
-
-(defprotocol iadh-um diffie-hellman
-  (defrole participant
-    (vars (l lp e rndx) (ep expt) (self peer name))
-    (trace (send (cat self peer (exp (gen) l) (exp (gen) lp)))
-      (send (cat (exp (gen) l) (exp (gen) e))) (recv (exp (gen) ep)))
-    (uniq-gen e)
-    (fn-of ("ltx-of" (self l) (peer lp))
-      ("principal-of" (l self) (lp peer)))
-    (neq (ep (one)))
-    (absent (e (exp (gen) l)) (e (exp (gen) lp))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self l)))
-    (uniq-orig l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton iadh-um
-  (vars (self peer self-0 peer-0 name) (eA lA lAp eB lB lBp rndx)
-    (ep ep-0 expt))
-  (defstrand participant 3 (self self) (peer peer) (l lA) (lp lAp)
-    (e eA) (ep ep))
-  (defstrand participant 3 (self self-0) (peer peer-0) (l lB) (lp lBp)
-    (e eB) (ep ep-0))
-  (absent (eB (exp (gen) lB)) (eB (exp (gen) lBp)) (eA (exp (gen) lA))
-    (eA (exp (gen) lAp)))
-  (fn-of ("ltx-of" (self-0 lB) (peer-0 lBp) (self lA) (peer lAp))
-    ("principal-of" (lB self-0) (lBp peer-0) (lA self) (lAp peer)))
-  (neq (ep-0 (one)) (eA eB) (ep (one)))
-  (non-orig lA lB)
-  (uniq-gen eA eB)
-  (comment "Implicit authentication")
-  (traces
-    ((send (cat self peer (exp (gen) lA) (exp (gen) lAp)))
-      (send (cat (exp (gen) lA) (exp (gen) eA))) (recv (exp (gen) ep)))
-    ((send (cat self-0 peer-0 (exp (gen) lB) (exp (gen) lBp)))
-      (send (cat (exp (gen) lB) (exp (gen) eB)))
-      (recv (exp (gen) ep-0))))
-  (label 0)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((eA eA) (lA lA) (lAp lAp) (eB eB) (lB lB) (lBp lBp) (ep ep)
-        (ep-0 ep-0) (self self) (peer peer) (self-0 self-0)
-        (peer-0 peer-0))))
-  (origs))
-
-(comment "Nothing left to do")
diff --git a/tst/iadh_um_joshua.scm b/tst/iadh_um_joshua.scm
deleted file mode 100644
--- a/tst/iadh_um_joshua.scm
+++ /dev/null
@@ -1,97 +0,0 @@
-; Unified Model
-
-; This file models the "Unified Model" method of determining a fresh
-; key from long-term and ephemeral Diffie-Hellman exponents.  Since
-; CPSA does not provide an intrinsic association between names and
-; Diffie-Hellman values, we use digital signatures to link
-; authentication of a Diffie-Hellman long-term public value to a
-; public key.
-
-; A role is provided in which a party signs a fresh long-term
-; Diffie-Hellman value, and then leaks the exponent.  The latter step
-; is used to test the notion of forward security.
-
-; Two inputs are analyzed.  In the first, we model that two
-; participants exist that agree on the UM key.  The notion of
-; "implicit authentication" suggests that if one participant exists
-; and another party knows the same key, that party must be either the
-; participant or the participant's intended partner.
-
-; In this version, we assume that the long-term keys of the
-; participants do not leak.
-
-; The second input checks whether the key can be learned when the key
-; is generated honestly.  In this version, we do NOT assume that the
-; long-term keys of the participants do not leak.
-
-(herald "IADH: unified model (UM)" (bound 20) (limit 2000) (algebra diffie-hellman))
-
-(defprotocol iadh-um diffie-hellman
-  (defrole participant
-    (vars (l e rndx) (hl he base) (self peer name) (kh n data))
-    (trace
-     (recv (enc "cert" (exp (gen) l) self (privk self)))
-     (recv (enc "cert" hl peer (privk peer)))
-     (send (exp (gen) e))
-     (recv he)
-     (send kh))
-    (fn-of (foo ((hash (exp hl l) (exp he e)) kh)))
-;     (uniq-gen e)
-    (neq (he (gen))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace
-     (send (enc "cert" (exp (gen) l) self (privk self)))
-     (send l))
-    (uniq-gen l)
-    (fn-of ("principal-of" (l self))))
-  )
-
-;; Implicit authentication: participants will agree on the resulting key
-;; foo(key).  Therefore they should agree on the names A and B.
-
-(defskeleton iadh-um
-  (vars (kh data) (eA lA eB lB rndx) (A B C D name))
-  (defstrand participant 5 (kh kh) (e eA) (l lA) (self A) (peer C))
-  (defstrand participant 5 (kh kh) (e eB) (l lB) (self B) (peer D))
-  (non-orig lA lB)
-  (uniq-gen eA eB)
-  (neq (A B)(eA eB) (lA lB) (eA lA) (eB lB) (eA lB) (eB lA))
-  (non-orig (privk C) (privk D) (privk A) (privk B))
-  (comment "Implicit authentication")
-  )
-
-;; Security:
-
-(defskeleton iadh-um
-  (vars (kh data) (eA lA eB lB rndx) (A B C D name))
-  (defstrand participant 5 (kh kh) (e eA) (l lA) (self A) (peer C))
-  (defstrand participant 5 (kh kh) (e eB) (l lB) (self B) (peer D))
-  (deflistener (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))
-  (non-orig lA lB)
-  (uniq-gen eA eB)
-  (neq (A B)(eA eB) (lA lB) (eA lA) (eB lB) (eA lB) (eB lA))
-  (non-orig (privk C) (privk D) (privk A) (privk B))
-  (comment "Implicit authentication + disclosure")
-  )
-
-(defskeleton iadh-um
-  (vars (kh data) (eA lA lB rndx) (hl he base) (A B C D name))
-  (defstrand participant 5 (kh kh) (e eA) (l lA) (hl (exp (gen) lB)) (self A) (peer C))
-  (deflistener (hash (exp (exp (gen) lB) lA) (exp he eA)))
-  (non-orig lA lB)
-  (neq (A C) (lA lB) (eA lA) (eA lB))
-  (non-orig (privk C) (privk A))
-  (comment "Implicit authentication + disclosure")
-  )
-
-(defskeleton iadh-um
-  (vars (kh data) (eA lA lB rndx) (hl he base) (A B C D name))
-  (defstrand participant 5 (kh kh) (e eA) (l lA) (hl (exp (gen) lB)) (self A) (peer C))
-  (deflistener (hash (exp (exp (gen) lB) lA) (exp he eA)))
-  (non-orig lB)
-  (uniq-gen eA)
-  (neq (A C) (lA lB) (eA lA) (eA lB))
-  (non-orig (privk C) (privk A))
-  (comment "Implicit authentication + disclosure")
-  )
diff --git a/tst/iadh_um_joshua.tst b/tst/iadh_um_joshua.tst
deleted file mode 100644
--- a/tst/iadh_um_joshua.tst
+++ /dev/null
@@ -1,36728 +0,0 @@
-(herald "IADH: unified model (UM)" (bound 20) (limit 2000)
-  (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/iadh_um_joshua.scm")
-(comment "Strand count bounded at 20")
-
-(defprotocol iadh-um diffie-hellman
-  (defrole participant
-    (vars (l e rndx) (hl he base) (self peer name) (kh data))
-    (trace (recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))
-      (recv he) (send kh))
-    (fn-of (foo ((hash (exp hl l) (exp he e)) kh)))
-    (neq (he (gen))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (enc "cert" (exp (gen) l) self (privk self))) (send l))
-    (uniq-gen l)
-    (fn-of ("principal-of" (l self)))))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (hl he hl-0 he-0 base)
-    (eA lA eB lB rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl hl) (he he)
-    (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl hl-0) (he he-0)
-    (l lB) (e eB))
-  (fn-of
-    (foo ((hash (exp hl-0 lB) (exp he-0 eB)) kh)
-      ((hash (exp hl lA) (exp he eA)) kh)))
-  (neq (he-0 (gen)) (he (gen)) (A B) (eA eB) (lA lB) (eA lA) (eB lB)
-    (eA lB) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA lB)
-  (uniq-gen eA eB)
-  (comment "Implicit authentication")
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" hl C (privk C))) (send (exp (gen) eA)) (recv he)
-      (send kh))
-    ((recv (enc "cert" (exp (gen) lB) B (privk B)))
-      (recv (enc "cert" hl-0 D (privk D))) (send (exp (gen) eB))
-      (recv he-0) (send kh)))
-  (label 0)
-  (unrealized (0 0) (0 1) (1 0) (1 1))
-  (preskeleton)
-  (origs)
-  (comment "Not a skeleton"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (hl he base) (lA lB eA eB rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl hl) (he he)
-    (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp hl (mul lA (rec lB)))) (he (exp he (mul eA (rec eB))))
-    (l lB) (e eB))
-  (precedes ((0 2) (1 3)))
-  (fn-of (foo ((hash (exp hl lA) (exp he eA)) kh)))
-  (neq ((exp he (mul eA (rec eB))) (gen)) (he (gen)) (A B) (eA eB)
-    (lA lB) (eA lA) (eB lB) (eA lB) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA lB)
-  (uniq-gen eA eB)
-  (comment "Implicit authentication")
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" hl C (privk C))) (send (exp (gen) eA)) (recv he)
-      (send kh))
-    ((recv (enc "cert" (exp (gen) lB) B (privk B)))
-      (recv (enc "cert" (exp hl (mul lA (rec lB))) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp he (mul eA (rec eB))))
-      (send kh)))
-  (label 1)
-  (parent 0)
-  (unrealized (0 0) (0 1) (1 0) (1 1) (1 3))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (hl he base) (lA eA eB l rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl hl) (he he)
-    (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp hl (mul lA (rec l)))) (he (exp he (mul eA (rec eB)))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (precedes ((0 2) (1 3)) ((2 0) (1 0)))
-  (fn-of ("principal-of" (l B))
-    (foo ((hash (exp hl lA) (exp he eA)) kh)))
-  (neq ((exp he (mul eA (rec eB))) (gen)) (he (gen)) (A B) (eA eB)
-    (lA l) (eA lA) (eB l) (eA l) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)
-  (uniq-gen eA eB l)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l) B (privk B)) (1 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" hl C (privk C))) (send (exp (gen) eA)) (recv he)
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp hl (mul lA (rec l))) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp he (mul eA (rec eB)))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B)))))
-  (label 2)
-  (parent 1)
-  (unrealized (0 0) (0 1) (1 1) (1 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C name) (he base) (lA eA eB l rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l))) (he he) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp he (mul eA (rec eB)))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (precedes ((0 2) (1 3)) ((2 0) (0 1)) ((2 0) (1 0)))
-  (fn-of ("principal-of" (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp he eA)) kh)))
-  (neq ((exp he (mul eA (rec eB))) (gen)) (he (gen)) (A B) (eA eB)
-    (lA l) (eA lA) (eB l) (eA l) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) lA l)
-  (uniq-gen eA eB l)
-  (operation encryption-test (displaced 3 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) D (privk D)) (1 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp he (mul eA (rec eB)))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B)))))
-  (label 3)
-  (parent 2)
-  (unrealized (0 0) (0 1) (1 3))
-  (comment "6 in cohort - 6 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (he base) (lA eA eB l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l-0))) (he he) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp he (mul eA (rec eB)))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (precedes ((0 2) (1 3)) ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 1))
-    ((3 0) (1 1)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq ((exp he (mul eA (rec eB))) (gen)) (he (gen)) (A B) (eA eB)
-    (lA l) (eA lA) (eB l) (eA l) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)
-  (uniq-gen eA eB l l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) D (privk D)) (1 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp he (mul eA (rec eB)))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))
-  (label 4)
-  (parent 2)
-  (unrealized (0 0) (0 1) (1 3))
-  (comment "7 in cohort - 7 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C name) (eB l l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l (rec l-0)))) (he (exp (gen) eB)) (l l-0)
-    (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0)))
-  (fn-of ("principal-of" (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) eB) (gen)) (A B) (e eB) (l-0 l)
-    (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk A) (privk B) (privk C) l l-0)
-  (uniq-gen eB l e)
-  (operation nonce-test (displaced 3 0 participant 3) (exp (gen) e-0)
-    (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))
-      (send (exp (gen) e)) (recv (exp (gen) eB)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B)))))
-  (label 5)
-  (parent 3)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C name) (lA eA l e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l)))
-    (he (exp (gen) (mul (rec eA) e e))) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l) (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0)))
-  (fn-of ("principal-of" (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul e e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))
-    (A B) (eA e) (lA l) (eA lA) (e l) (eA l) (e lA))
-  (non-orig (privk A) (privk B) (privk C) lA l)
-  (uniq-gen eA l e)
-  (operation nonce-test (displaced 3 1 participant 3) (exp (gen) e-0)
-    (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B)))))
-  (label 6)
-  (parent 3)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C self peer name) (hl base)
-    (lA eA eB l l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l)))
-    (he (exp (gen) (mul (rec eA) eB e))) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 2) (1 3)))
-  (fn-of ("principal-of" (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))
-    (A B) (eA eB) (lA l) (eA lA) (eB l) (eA l) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) lA l)
-  (uniq-gen eA eB l)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e)
-    (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 7)
-  (parent 3)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C name) (lA eA eB l rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l)))
-    (he (exp (gen) (mul (rec eA) eB l))) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) l)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0)))
-  (fn-of ("principal-of" (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB l))) kh)))
-  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))
-    (A B) (eA eB) (lA l) (eA lA) (eB l) (eA l) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) lA l)
-  (uniq-gen eA eB l)
-  (operation nonce-test (displaced 3 2 ltx-gen 1) (exp (gen) l-0) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B)))))
-  (label 8)
-  (parent 3)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C self name) (lA eA eB l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l)))
-    (he (exp (gen) (mul (rec eA) eB l-0))) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) l-0)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 3)) ((3 0) (1 3)))
-  (fn-of ("principal-of" (l-0 self) (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))
-    (A B) (eA eB) (lA l) (eA lA) (eB l) (eA l) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) lA l)
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-0) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))
-  (label 9)
-  (parent 3)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C name) (he base) (lA eA eB l rndx) (w expt))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l))) (he he) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp he (mul eA (rec eB)))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (deflistener (cat (exp he (mul eA (rec eB) (rec w))) w))
-  (precedes ((0 2) (3 0)) ((1 2) (3 0)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 1) (1 3)))
-  (fn-of ("principal-of" (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp he eA)) kh)))
-  (neq ((exp he (mul eA (rec eB))) (gen)) (he (gen)) (A B) (eA eB)
-    (lA l) (eA lA) (eB l) (eA l) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) lA l)
-  (uniq-gen eA eB l)
-  (precur (3 0))
-  (operation nonce-test
-    (added-listener (cat (exp he (mul eA (rec eB) (rec w))) w))
-    (exp he (mul eA (rec eB))) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp he (mul eA (rec eB)))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (cat (exp he (mul eA (rec eB) (rec w))) w))
-      (send (cat (exp he (mul eA (rec eB) (rec w))) w))))
-  (label 10)
-  (parent 3)
-  (unrealized (0 0) (0 1) (3 0))
-  (comment "6 in cohort - 6 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (eB l l-0 l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l-0 (rec l-1)))) (he (exp (gen) eB)) (l l-1)
-    (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((3 0) (1 1)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) eB) (gen)) (A B) (e eB) (l-1 l)
-    (e l-1) (eB l) (e l) (eB l-1))
-  (non-orig (privk A) (privk B) (privk C) (privk D) l l-1)
-  (uniq-gen eB l l-0 e)
-  (operation nonce-test (displaced 4 0 participant 3) (exp (gen) e-0)
-    (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))
-      (send (exp (gen) e)) (recv (exp (gen) eB)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))
-  (label 11)
-  (parent 4)
-  (unrealized (0 0) (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (lA eA l l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l-0)))
-    (he (exp (gen) (mul (rec eA) e e))) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((3 0) (1 1)))
-  (fn-of ("principal-of" (l D) (l-0 B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))
-    (A B) (eA e) (lA l-0) (eA lA) (e l-0) (eA l-0) (e lA))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA l-0)
-  (uniq-gen eA l l-0 e)
-  (operation nonce-test (displaced 4 1 participant 3) (exp (gen) e-0)
-    (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D)))))
-  (label 12)
-  (parent 4)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D self peer name) (hl base)
-    (lA eA eB l l-0 l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l-0)))
-    (he (exp (gen) (mul (rec eA) eB e))) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((3 0) (1 1)) ((4 2) (1 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))
-    (A B) (eA eB) (lA l) (eA lA) (eB l) (eA l) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e)
-    (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 13)
-  (parent 4)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (lA eA eB l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l-0)))
-    (he (exp (gen) (mul (rec eA) eB l-0))) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-0)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((3 0) (1 1)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))
-    (A B) (eA eB) (lA l-0) (eA lA) (eB l-0) (eA l-0) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA l-0)
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test (displaced 4 2 ltx-gen 1) (exp (gen) l-1) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D)))))
-  (label 14)
-  (parent 4)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (lA eA eB l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l-0)))
-    (he (exp (gen) (mul (rec eA) eB l-0))) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((3 0) (1 1)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))
-    (A B) (eA eB) (lA l) (eA lA) (eB l) (eA l) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test (displaced 4 3 ltx-gen 1) (exp (gen) l-1) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))
-  (label 15)
-  (parent 4)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D self name) (lA eA eB l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l-0)))
-    (he (exp (gen) (mul (rec eA) eB l-1))) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((3 0) (1 1)) ((4 0) (0 3)) ((4 0) (1 3)))
-  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))
-    (A B) (eA eB) (lA l) (eA lA) (eB l) (eA l) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)
-  (uniq-gen eA eB l l-0 l-1)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-1) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 16)
-  (parent 4)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (he base) (lA eA eB l l-0 rndx)
-    (w expt))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l-0))) (he he) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp he (mul eA (rec eB)))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp he (mul eA (rec eB) (rec w))) w))
-  (precedes ((0 2) (4 0)) ((1 2) (4 0)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq ((exp he (mul eA (rec eB))) (gen)) (he (gen)) (A B) (eA eB)
-    (lA l) (eA lA) (eB l) (eA l) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)
-  (uniq-gen eA eB l l-0)
-  (precur (4 0))
-  (operation nonce-test
-    (added-listener (cat (exp he (mul eA (rec eB) (rec w))) w))
-    (exp he (mul eA (rec eB))) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp he (mul eA (rec eB)))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp he (mul eA (rec eB) (rec w))) w))
-      (send (cat (exp he (mul eA (rec eB) (rec w))) w))))
-  (label 17)
-  (parent 4)
-  (unrealized (0 0) (0 1) (4 0))
-  (comment "7 in cohort - 7 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C name) (eB l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l (rec l-0)))) (he (exp (gen) eB)) (l l-0)
-    (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)))
-  (fn-of ("principal-of" (l-0 A) (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) eB) (gen)) (A B) (e eB) (l-0 l)
-    (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk A) (privk B) (privk C) l l-0)
-  (uniq-gen eB l e l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))
-      (send (exp (gen) e)) (recv (exp (gen) eB)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 18)
-  (parent 5)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C name) (eA l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l (rec l-0))))
-    (he (exp (gen) (mul (rec eA) e e))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l) (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)))
-  (fn-of ("principal-of" (l-0 A) (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul e e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))
-    (A B) (eA e) (l-0 l) (eA l-0) (e l) (eA l) (e l-0))
-  (non-orig (privk A) (privk B) (privk C) l l-0)
-  (uniq-gen eA l e l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 19)
-  (parent 6)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C self peer name) (hl base)
-    (eA eB l l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l (rec l-1))))
-    (he (exp (gen) (mul (rec eA) eB e))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 2) (1 3)) ((4 0) (0 0)))
-  (fn-of ("principal-of" (l-1 A) (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))
-    (A B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk A) (privk B) (privk C) l l-1)
-  (uniq-gen eA eB l l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l (rec l-1))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 20)
-  (parent 7)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C name) (eA eB l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l (rec l-0))))
-    (he (exp (gen) (mul (rec eA) eB l))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) l)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)))
-  (fn-of ("principal-of" (l-0 A) (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB l))) kh)))
-  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))
-    (A B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk A) (privk B) (privk C) l l-0)
-  (uniq-gen eA eB l l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 21)
-  (parent 8)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B C self name) (eA eB l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self) (peer C)
-    (hl (exp (gen) (mul l l (rec l-0))))
-    (he (exp (gen) (mul (rec eA) eB l-0))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) l-0)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)))
-  (fn-of ("principal-of" (l-0 self) (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))
-    (self B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk C) (privk self) l l-0)
-  (uniq-gen eA eB l l-0)
-  (operation encryption-test (displaced 4 3 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))
-  (label 22)
-  (parent 9)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C self name) (eA eB l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l (rec l-1))))
-    (he (exp (gen) (mul (rec eA) eB l-0))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) l-0)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 3)) ((3 0) (1 3)) ((4 0) (0 0)))
-  (fn-of ("principal-of" (l-1 A) (l-0 self) (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))
-    (A B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk A) (privk B) (privk C) l l-1)
-  (uniq-gen eA eB l l-0 l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l (rec l-1))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 23)
-  (parent 9)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C name) (lA eA eB l rndx) (w expt))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l)))
-    (he (exp (gen) (mul (rec eA) eB w))) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (deflistener (cat (gen) w))
-  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 1) (1 3)))
-  (fn-of ("principal-of" (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w))) kh)))
-  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec eA) eB w)) (gen))
-    (A B) (eA eB) (lA l) (eA lA) (eB l) (eA l) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) lA l)
-  (uniq-gen eA eB l)
-  (precur (3 0))
-  (operation nonce-test
-    (contracted (he (exp (gen) (mul (rec eA) eB w)))) (gen) (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) w)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (cat (gen) w)) (send (cat (gen) w))))
-  (label 24)
-  (parent 10)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C name) (eB l rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l (rec l-0)))) (he (exp (gen) (mul eB w)))
-    (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 1) (1 3)))
-  (fn-of ("principal-of" (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen)) ((exp (gen) (mul eB w)) (gen))
-    (A B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk A) (privk B) (privk C) l l-0)
-  (precur (3 0))
-  (uniq-gen eB l e)
-  (operation nonce-test (displaced 4 0 participant 3) (exp (gen) e-0)
-    (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul eB w))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 25)
-  (parent 10)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C name) (lA eA rndx) (w expt) (l e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l)))
-    (he (exp (gen) (mul (rec eA) w e e))) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e))) (l l) (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 1) (1 3)))
-  (fn-of ("principal-of" (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul w e e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen))
-    ((exp (gen) (mul (rec eA) w e e)) (gen)) (A B) (eA e) (lA l) (eA lA)
-    (e l) (eA l) (e lA))
-  (non-orig (privk A) (privk B) (privk C) lA l)
-  (precur (3 0))
-  (uniq-gen eA l e)
-  (operation nonce-test (displaced 4 1 participant 3) (exp (gen) e-0)
-    (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) w e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 26)
-  (parent 10)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C self peer name) (hl base) (lA eA eB l rndx)
-    (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l)))
-    (he (exp (gen) (mul (rec eA) eB w e))) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 1) (1 3)) ((4 2) (3 0)))
-  (fn-of ("principal-of" (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen))
-    ((exp (gen) (mul (rec eA) eB w e)) (gen)) (A B) (eA eB) (lA l)
-    (eA lA) (eB l) (eA l) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) lA l)
-  (precur (3 0))
-  (uniq-gen eA eB l)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e)
-    (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 27)
-  (parent 10)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C name) (lA eA eB rndx) (w expt) (l rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l)))
-    (he (exp (gen) (mul (rec eA) eB w l))) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (deflistener (cat (exp (gen) l) w))
-  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 1) (1 3)))
-  (fn-of ("principal-of" (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w l))) kh)))
-  (neq ((exp (gen) (mul w l)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l)) (gen)) (A B) (eA eB) (lA l)
-    (eA lA) (eB l) (eA l) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) lA l)
-  (precur (3 0))
-  (uniq-gen eA eB l)
-  (operation nonce-test (displaced 4 2 ltx-gen 1) (exp (gen) l-0) (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w))))
-  (label 28)
-  (parent 10)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C self name) (lA eA eB l rndx) (w expt)
-    (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l)))
-    (he (exp (gen) (mul (rec eA) eB w l-0))) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 1) (1 3)) ((4 0) (0 3)) ((4 0) (3 0)))
-  (fn-of ("principal-of" (l-0 self) (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w l-0))) kh)))
-  (neq ((exp (gen) (mul w l-0)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (A B) (eA eB) (lA l)
-    (eA lA) (eB l) (eA l) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) lA l)
-  (precur (3 0))
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-0) (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))
-  (label 29)
-  (parent 10)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B C D name) (eB l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))
-    (he (exp (gen) eB)) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) eB) (gen)) (D B) (e eB) (l-0 l)
-    (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk C) (privk D) l l-0)
-  (uniq-gen eB l e l-0)
-  (operation encryption-test (displaced 4 3 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))
-      (recv (exp (gen) eB)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))
-  (label 30)
-  (parent 11)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (eB l l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l-0 (rec l-1)))) (he (exp (gen) eB)) (l l-1)
-    (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((3 0) (1 1)) ((4 0) (0 0)))
-  (fn-of ("principal-of" (l-1 A) (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) eB) (gen)) (A B) (e eB) (l-1 l)
-    (e l-1) (eB l) (e l) (eB l-1))
-  (non-orig (privk A) (privk B) (privk C) (privk D) l l-1)
-  (uniq-gen eB l l-0 e l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))
-      (send (exp (gen) e)) (recv (exp (gen) eB)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 31)
-  (parent 11)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B C D name) (eA l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) e e))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))
-    (D B) (eA e) (l-0 l) (eA l-0) (e l) (eA l) (e l-0))
-  (non-orig (privk B) (privk C) (privk D) l l-0)
-  (uniq-gen eA l e l-0)
-  (operation encryption-test (displaced 4 3 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))
-  (label 32)
-  (parent 12)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (eA l l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l-0 (rec l-1))))
-    (he (exp (gen) (mul (rec eA) e e))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((3 0) (1 1)) ((4 0) (0 0)))
-  (fn-of ("principal-of" (l-1 A) (l D) (l-0 B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))
-    (A B) (eA e) (l-1 l-0) (eA l-1) (e l-0) (eA l-0) (e l-1))
-  (non-orig (privk A) (privk B) (privk C) (privk D) l-0 l-1)
-  (uniq-gen eA l l-0 e l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 33)
-  (parent 12)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B C D self peer name) (hl base)
-    (eA eB l l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB e))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) e)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)) ((4 2) (1 3)))
-  (fn-of ("principal-of" (l-1 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))
-    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk C) (privk D) l l-1)
-  (uniq-gen eA eB l l-1)
-  (operation encryption-test (displaced 5 3 ltx-gen 1)
-    (enc "cert" (exp (gen) l-2) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 34)
-  (parent 13)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D self peer name) (hl base)
-    (eA eB l l-0 l-1 e l-2 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l-0 (rec l-2))))
-    (he (exp (gen) (mul (rec eA) eB e))) (l l-2) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (defstrand ltx-gen 1 (self A) (l l-2))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((3 0) (1 1)) ((4 2) (1 3)) ((5 0) (0 0)))
-  (fn-of ("principal-of" (l-2 A) (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))
-    (A B) (eA eB) (l-2 l) (eA l-2) (eB l) (eA l) (eB l-2))
-  (non-orig (privk A) (privk B) (privk C) (privk D) l l-2)
-  (uniq-gen eA eB l l-0 l-2)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-2) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-2) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-2))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-2) A (privk A)))))
-  (label 35)
-  (parent 13)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B C D name) (eA eB l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB l))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l))) kh)))
-  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk C) (privk D) l l-0)
-  (uniq-gen eA eB l l-0)
-  (operation encryption-test (displaced 4 3 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))
-  (label 36)
-  (parent 14)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (eA eB l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l-0 (rec l-1))))
-    (he (exp (gen) (mul (rec eA) eB l-0))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-0)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((3 0) (1 1)) ((4 0) (0 0)))
-  (fn-of ("principal-of" (l-1 A) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))
-    (A B) (eA eB) (l-1 l-0) (eA l-1) (eB l-0) (eA l-0) (eB l-1))
-  (non-orig (privk A) (privk B) (privk C) (privk D) l-0 l-1)
-  (uniq-gen eA eB l l-0 l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 37)
-  (parent 14)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B C D name) (eA eB l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB l-0))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk C) (privk D) l l-0)
-  (uniq-gen eA eB l l-0)
-  (operation encryption-test (displaced 4 3 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))
-  (label 38)
-  (parent 15)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (eA eB l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l-0 (rec l-1))))
-    (he (exp (gen) (mul (rec eA) eB l-0))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((3 0) (1 1)) ((4 0) (0 0)))
-  (fn-of ("principal-of" (l-1 A) (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))
-    (A B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk A) (privk B) (privk C) (privk D) l l-1)
-  (uniq-gen eA eB l l-0 l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 39)
-  (parent 15)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B C D self name) (eA eB l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB l-0))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) l-0)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)) ((4 0) (0 3)) ((4 0) (1 3)))
-  (fn-of ("principal-of" (l-1 D) (l-0 self) (l B))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))
-    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk C) (privk D) l l-1)
-  (uniq-gen eA eB l l-0 l-1)
-  (operation encryption-test (displaced 5 3 ltx-gen 1)
-    (enc "cert" (exp (gen) l-2) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))
-  (label 40)
-  (parent 16)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B C D self name) (eA eB l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self) (peer C)
-    (hl (exp (gen) (mul l l-0 (rec l-1))))
-    (he (exp (gen) (mul (rec eA) eB l-1))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((3 0) (1 1)) ((4 0) (0 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))
-    (self B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk C) (privk D) (privk self) l l-1)
-  (uniq-gen eA eB l l-0 l-1)
-  (operation encryption-test (displaced 5 4 ltx-gen 1)
-    (enc "cert" (exp (gen) l-2) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 41)
-  (parent 16)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D self name) (eA eB l l-0 l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l-0 (rec l-2))))
-    (he (exp (gen) (mul (rec eA) eB l-1))) (l l-2) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand ltx-gen 1 (self A) (l l-2))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((3 0) (1 1)) ((4 0) (0 3)) ((4 0) (1 3))
-    ((5 0) (0 0)))
-  (fn-of ("principal-of" (l-2 A) (l-1 self) (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))
-    (A B) (eA eB) (l-2 l) (eA l-2) (eB l) (eA l) (eB l-2))
-  (non-orig (privk A) (privk B) (privk C) (privk D) l l-2)
-  (uniq-gen eA eB l l-0 l-1 l-2)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-2) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-2) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-2))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-2) A (privk A)))))
-  (label 42)
-  (parent 16)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (lA eA eB l l-0 rndx) (w expt))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l-0)))
-    (he (exp (gen) (mul (rec eA) eB w))) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (gen) w))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w))) kh)))
-  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec eA) eB w)) (gen))
-    (A B) (eA eB) (lA l) (eA lA) (eB l) (eA l) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)
-  (uniq-gen eA eB l l-0)
-  (precur (4 0))
-  (operation nonce-test
-    (contracted (he (exp (gen) (mul (rec eA) eB w)))) (gen) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) w)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (gen) w)) (send (cat (gen) w))))
-  (label 43)
-  (parent 17)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (eB l l-0 rndx) (w expt) (l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l-0 (rec l-1)))) (he (exp (gen) (mul eB w)))
-    (l l-1) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen)) ((exp (gen) (mul eB w)) (gen))
-    (A B) (e eB) (l-1 l) (e l-1) (eB l) (e l) (eB l-1))
-  (non-orig (privk A) (privk B) (privk C) (privk D) l l-1)
-  (precur (4 0))
-  (uniq-gen eB l l-0 e)
-  (operation nonce-test (displaced 5 0 participant 3) (exp (gen) e-0)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul eB w))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 44)
-  (parent 17)
-  (unrealized (0 0) (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (lA eA l rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l-0)))
-    (he (exp (gen) (mul (rec eA) w e e))) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l D) (l-0 B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen))
-    ((exp (gen) (mul (rec eA) w e e)) (gen)) (A B) (eA e) (lA l-0)
-    (eA lA) (e l-0) (eA l-0) (e lA))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA l-0)
-  (precur (4 0))
-  (uniq-gen eA l l-0 e)
-  (operation nonce-test (displaced 5 1 participant 3) (exp (gen) e-0)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) w e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 45)
-  (parent 17)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D self peer name) (hl base)
-    (lA eA eB l l-0 rndx) (w expt) (l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l-0)))
-    (he (exp (gen) (mul (rec eA) eB w e))) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 2) (4 0)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen))
-    ((exp (gen) (mul (rec eA) eB w e)) (gen)) (A B) (eA eB) (lA l)
-    (eA lA) (eB l) (eA l) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)
-  (precur (4 0))
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 46)
-  (parent 17)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (lA eA eB l rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l-0)))
-    (he (exp (gen) (mul (rec eA) eB w l-0))) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) w))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l-0))) kh)))
-  (neq ((exp (gen) (mul w l-0)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (A B) (eA eB) (lA l-0)
-    (eA lA) (eB l-0) (eA l-0) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA l-0)
-  (precur (4 0))
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test (displaced 5 2 ltx-gen 1) (exp (gen) l-1) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))
-  (label 47)
-  (parent 17)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (lA eA eB l rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l-0)))
-    (he (exp (gen) (mul (rec eA) eB w l-0))) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) w))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l-0))) kh)))
-  (neq ((exp (gen) (mul w l-0)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (A B) (eA eB) (lA l)
-    (eA lA) (eB l) (eA l) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)
-  (precur (4 0))
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test (displaced 5 3 ltx-gen 1) (exp (gen) l-1) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))
-  (label 48)
-  (parent 17)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D self name) (lA eA eB l l-0 rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul (rec lA) l l-0)))
-    (he (exp (gen) (mul (rec eA) eB w l-1))) (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) w))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 3)) ((5 0) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l-1))) kh)))
-  (neq ((exp (gen) (mul w l-1)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l-1)) (gen)) (A B) (eA eB) (lA l)
-    (eA lA) (eB l) (eA l) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)
-  (precur (4 0))
-  (uniq-gen eA eB l l-0 l-1)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-1) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul (rec lA) l l-0)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 49)
-  (parent 17)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C name) (eA eB l rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l (rec l-0))))
-    (he (exp (gen) (mul (rec eA) eB w))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (deflistener (cat (gen) w))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 1) (1 3)) ((4 0) (0 0)))
-  (fn-of ("principal-of" (l-0 A) (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w))) kh)))
-  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec eA) eB w)) (gen))
-    (A B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk A) (privk B) (privk C) l l-0)
-  (precur (3 0))
-  (uniq-gen eA eB l l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) w)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (cat (gen) w)) (send (cat (gen) w)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 50)
-  (parent 24)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C name) (eB l rndx) (w expt) (e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l (rec l-0)))) (he (exp (gen) (mul eB w)))
-    (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 1) (1 3)) ((4 0) (0 0)))
-  (fn-of ("principal-of" (l-0 A) (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen)) ((exp (gen) (mul eB w)) (gen))
-    (A B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk A) (privk B) (privk C) l l-0)
-  (precur (3 0))
-  (uniq-gen eB l e l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul eB w))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 51)
-  (parent 25)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C name) (eA rndx) (w expt) (l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l (rec l-0))))
-    (he (exp (gen) (mul (rec eA) w e e))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e))) (l l) (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 1) (1 3)) ((4 0) (0 0)))
-  (fn-of ("principal-of" (l-0 A) (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul w e e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen))
-    ((exp (gen) (mul (rec eA) w e e)) (gen)) (A B) (eA e) (l-0 l)
-    (eA l-0) (e l) (eA l) (e l-0))
-  (non-orig (privk A) (privk B) (privk C) l l-0)
-  (precur (3 0))
-  (uniq-gen eA l e l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) w e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 52)
-  (parent 26)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C self peer name) (hl base) (eA eB l rndx)
-    (w expt) (l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l (rec l-1))))
-    (he (exp (gen) (mul (rec eA) eB w e))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 1) (1 3)) ((4 2) (3 0)) ((5 0) (0 0)))
-  (fn-of ("principal-of" (l-1 A) (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen))
-    ((exp (gen) (mul (rec eA) eB w e)) (gen)) (A B) (eA eB) (l-1 l)
-    (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk A) (privk B) (privk C) l l-1)
-  (precur (3 0))
-  (uniq-gen eA eB l l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l (rec l-1))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 53)
-  (parent 27)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C name) (eA eB rndx) (w expt) (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l (rec l-0))))
-    (he (exp (gen) (mul (rec eA) eB w l))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (deflistener (cat (exp (gen) l) w))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 1) (1 3)) ((4 0) (0 0)))
-  (fn-of ("principal-of" (l-0 A) (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w l))) kh)))
-  (neq ((exp (gen) (mul w l)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l)) (gen)) (A B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk A) (privk B) (privk C) l l-0)
-  (precur (3 0))
-  (uniq-gen eA eB l l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 54)
-  (parent 28)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B C self name) (eA eB l rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self) (peer C)
-    (hl (exp (gen) (mul l l (rec l-0))))
-    (he (exp (gen) (mul (rec eA) eB w l-0))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 1) (1 3)) ((4 0) (0 0)))
-  (fn-of ("principal-of" (l-0 self) (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w l-0))) kh)))
-  (neq ((exp (gen) (mul w l-0)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (self B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk C) (privk self) l l-0)
-  (precur (3 0))
-  (uniq-gen eA eB l l-0)
-  (operation encryption-test (displaced 5 4 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" (exp (gen) (mul l l (rec l-0))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))
-  (label 55)
-  (parent 29)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C self name) (eA eB l rndx) (w expt)
-    (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l (rec l-1))))
-    (he (exp (gen) (mul (rec eA) eB w l-0))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 1) (1 3)) ((4 0) (0 3)) ((4 0) (3 0))
-    ((5 0) (0 0)))
-  (fn-of ("principal-of" (l-1 A) (l-0 self) (l B))
-    (foo ((hash (exp (gen) (mul l l)) (exp (gen) (mul eB w l-0))) kh)))
-  (neq ((exp (gen) (mul w l-0)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (A B) (eA eB) (l-1 l)
-    (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk A) (privk B) (privk C) l l-1)
-  (precur (3 0))
-  (uniq-gen eA eB l l-0 l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l (rec l-1))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 56)
-  (parent 29)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eB e l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) eB)) (l l) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) eB) (gen)) (D B) (e eB) (l l-0)
-    (e l) (eB l-0) (e l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (uniq-gen eB e l l-0)
-  (operation encryption-test (displaced 4 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) e)) (recv (exp (gen) eB)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D)))))
-  (label 57)
-  (parent 30)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((kh kh) (A D) (B B) (C B) (D D) (hl (exp (gen) l-0))
-        (he (exp (gen) eB)) (lA l) (lB l-0) (eA e) (eB eB))))
-  (origs))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA e l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (uniq-gen eA e l l-0)
-  (operation encryption-test (displaced 4 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D)))))
-  (label 58)
-  (parent 32)
-  (unrealized (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (eA eB l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)) ((4 2) (1 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (uniq-gen eA eB l-0 l-1)
-  (operation encryption-test (displaced 5 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 59)
-  (parent 34)
-  (unrealized (0 3))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-0))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-0)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (uniq-gen eA eB l l-0)
-  (operation encryption-test (displaced 4 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D)))))
-  (label 60)
-  (parent 36)
-  (unrealized (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l))) kh)))
-  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (uniq-gen eA eB l l-0)
-  (operation encryption-test (displaced 4 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D)))))
-  (label 61)
-  (parent 38)
-  (unrealized (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (eA eB l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB l))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l)) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)) ((4 0) (0 3)) ((4 0) (1 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D) (l self))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB l))) kh)))
-  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (uniq-gen eA eB l l-0 l-1)
-  (operation encryption-test (displaced 5 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((send (enc "cert" (exp (gen) l) self (privk self)))))
-  (label 62)
-  (parent 40)
-  (unrealized (0 3))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B C D name) (eA eB l rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB w))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (gen) w))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w))) kh)))
-  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec eA) eB w)) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk C) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen eA eB l l-0)
-  (operation encryption-test (displaced 5 3 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) w)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (gen) w)) (send (cat (gen) w))))
-  (label 63)
-  (parent 43)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (eA eB l l-0 rndx) (w expt) (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l-0 (rec l-1))))
-    (he (exp (gen) (mul (rec eA) eB w))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (gen) w))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 0)))
-  (fn-of ("principal-of" (l-1 A) (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w))) kh)))
-  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec eA) eB w)) (gen))
-    (A B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk A) (privk B) (privk C) (privk D) l l-1)
-  (precur (4 0))
-  (uniq-gen eA eB l l-0 l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) w)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (gen) w)) (send (cat (gen) w)))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 64)
-  (parent 43)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B C D name) (eB l rndx) (w expt) (e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))
-    (he (exp (gen) (mul eB w))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen)) ((exp (gen) (mul eB w)) (gen))
-    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk C) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen eB l e l-0)
-  (operation encryption-test (displaced 5 3 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eB w))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 65)
-  (parent 44)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (eB l l-0 rndx) (w expt) (e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l-0 (rec l-1)))) (he (exp (gen) (mul eB w)))
-    (l l-1) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 0)))
-  (fn-of ("principal-of" (l-1 A) (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen)) ((exp (gen) (mul eB w)) (gen))
-    (A B) (e eB) (l-1 l) (e l-1) (eB l) (e l) (eB l-1))
-  (non-orig (privk A) (privk B) (privk C) (privk D) l l-1)
-  (precur (4 0))
-  (uniq-gen eB l l-0 e l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul eB w))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 66)
-  (parent 44)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B C D name) (eA rndx) (w expt) (l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) w e e))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen))
-    ((exp (gen) (mul (rec eA) w e e)) (gen)) (D B) (eA e) (l-0 l)
-    (eA l-0) (e l) (eA l) (e l-0))
-  (non-orig (privk B) (privk C) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen eA l e l-0)
-  (operation encryption-test (displaced 5 3 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) w e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 67)
-  (parent 45)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (eA l rndx) (w expt) (l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l-0 (rec l-1))))
-    (he (exp (gen) (mul (rec eA) w e e))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 0)))
-  (fn-of ("principal-of" (l-1 A) (l D) (l-0 B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen))
-    ((exp (gen) (mul (rec eA) w e e)) (gen)) (A B) (eA e) (l-1 l-0)
-    (eA l-1) (e l-0) (eA l-0) (e l-1))
-  (non-orig (privk A) (privk B) (privk C) (privk D) l-0 l-1)
-  (precur (4 0))
-  (uniq-gen eA l l-0 e l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) w e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 68)
-  (parent 45)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B C D self peer name) (hl base) (eA eB l rndx)
-    (w expt) (l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB w e))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 2) (4 0)))
-  (fn-of ("principal-of" (l-1 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB w e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen))
-    ((exp (gen) (mul (rec eA) eB w e)) (gen)) (D B) (eA eB) (l-1 l)
-    (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk C) (privk D) l l-1)
-  (precur (4 0))
-  (uniq-gen eA eB l l-1)
-  (operation encryption-test (displaced 6 3 ltx-gen 1)
-    (enc "cert" (exp (gen) l-2) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 69)
-  (parent 46)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D self peer name) (hl base) (eA eB l l-0 rndx)
-    (w expt) (l-1 e l-2 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l-0 (rec l-2))))
-    (he (exp (gen) (mul (rec eA) eB w e))) (l l-2) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (defstrand ltx-gen 1 (self A) (l l-2))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 2) (4 0)) ((6 0) (0 0)))
-  (fn-of ("principal-of" (l-2 A) (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen))
-    ((exp (gen) (mul (rec eA) eB w e)) (gen)) (A B) (eA eB) (l-2 l)
-    (eA l-2) (eB l) (eA l) (eB l-2))
-  (non-orig (privk A) (privk B) (privk C) (privk D) l l-2)
-  (precur (4 0))
-  (uniq-gen eA eB l l-0 l-2)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-2) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-2) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-2))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-2) A (privk A)))))
-  (label 70)
-  (parent 46)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B C D name) (eA eB rndx) (w expt) (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB w l))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l) w))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l))) kh)))
-  (neq ((exp (gen) (mul w l)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l)) (gen)) (D B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk C) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen eA eB l l-0)
-  (operation encryption-test (displaced 5 3 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w))))
-  (label 71)
-  (parent 47)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (eA eB l rndx) (w expt) (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l-0 (rec l-1))))
-    (he (exp (gen) (mul (rec eA) eB w l-0))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 0)))
-  (fn-of ("principal-of" (l-1 A) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l-0))) kh)))
-  (neq ((exp (gen) (mul w l-0)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (A B) (eA eB) (l-1 l-0)
-    (eA l-1) (eB l-0) (eA l-0) (eB l-1))
-  (non-orig (privk A) (privk B) (privk C) (privk D) l-0 l-1)
-  (precur (4 0))
-  (uniq-gen eA eB l l-0 l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 72)
-  (parent 47)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B C D name) (eA eB l rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB w l-0))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) w))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l-0))) kh)))
-  (neq ((exp (gen) (mul w l-0)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (D B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk C) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen eA eB l l-0)
-  (operation encryption-test (displaced 5 3 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))
-  (label 73)
-  (parent 48)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (eA eB l rndx) (w expt) (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l-0 (rec l-1))))
-    (he (exp (gen) (mul (rec eA) eB w l-0))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 0)))
-  (fn-of ("principal-of" (l-1 A) (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l-0))) kh)))
-  (neq ((exp (gen) (mul w l-0)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (A B) (eA eB) (l-1 l)
-    (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk A) (privk B) (privk C) (privk D) l l-1)
-  (precur (4 0))
-  (uniq-gen eA eB l l-0 l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 74)
-  (parent 48)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B C D self name) (eA eB l rndx) (w expt)
-    (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer C) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB w l-0))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-0))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 3)) ((5 0) (4 0)))
-  (fn-of ("principal-of" (l-1 D) (l-0 self) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB w l-0))) kh)))
-  (neq ((exp (gen) (mul w l-0)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (D B) (eA eB) (l-1 l)
-    (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk C) (privk D) l l-1)
-  (precur (4 0))
-  (uniq-gen eA eB l l-0 l-1)
-  (operation encryption-test (displaced 6 3 ltx-gen 1)
-    (enc "cert" (exp (gen) l-2) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))
-  (label 75)
-  (parent 49)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B C D self name) (eA eB l l-0 rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self) (peer C)
-    (hl (exp (gen) (mul l l-0 (rec l-1))))
-    (he (exp (gen) (mul (rec eA) eB w l-1))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) w))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l-1))) kh)))
-  (neq ((exp (gen) (mul w l-1)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l-1)) (gen)) (self B) (eA eB) (l-1 l)
-    (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk C) (privk D) (privk self) l l-1)
-  (precur (4 0))
-  (uniq-gen eA eB l l-0 l-1)
-  (operation encryption-test (displaced 6 5 ltx-gen 1)
-    (enc "cert" (exp (gen) l-2) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-1))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 76)
-  (parent 49)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D self name) (eA eB l l-0 rndx) (w expt)
-    (l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C)
-    (hl (exp (gen) (mul l l-0 (rec l-2))))
-    (he (exp (gen) (mul (rec eA) eB w l-1))) (l l-2) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) w))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand ltx-gen 1 (self A) (l l-2))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 3)) ((5 0) (4 0)) ((6 0) (0 0)))
-  (fn-of ("principal-of" (l-2 A) (l-1 self) (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l-1))) kh)))
-  (neq ((exp (gen) (mul w l-1)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l-1)) (gen)) (A B) (eA eB) (l-2 l)
-    (eA l-2) (eB l) (eA l) (eB l-2))
-  (non-orig (privk A) (privk B) (privk C) (privk D) l l-2)
-  (precur (4 0))
-  (uniq-gen eA eB l l-0 l-1 l-2)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-2) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-2) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul l l-0 (rec l-2))) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-2) A (privk A)))))
-  (label 77)
-  (parent 49)
-  (unrealized (0 1) (0 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA e l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) (rec eA)) e))
-  (precedes ((0 2) (1 3)) ((0 2) (4 0)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (uniq-gen eA e l l-0)
-  (operation nonce-test (added-listener (cat (exp (gen) (rec eA)) e))
-    (exp (gen) (mul (rec eA) e e)) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) (rec eA)) e))
-      (send (cat (exp (gen) (rec eA)) e))))
-  (label 78)
-  (parent 58)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA e l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) (mul e e)) eA))
-  (precedes ((0 2) (1 3)) ((0 2) (4 0)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (uniq-gen eA e l l-0)
-  (operation nonce-test (added-listener (cat (exp (gen) (mul e e)) eA))
-    (exp (gen) (mul (rec eA) e e)) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) (mul e e)) eA))
-      (send (cat (exp (gen) (mul e e)) eA))))
-  (label 79)
-  (parent 58)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (eA eB l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) (mul (rec eA) eB)) e))
-  (precedes ((0 2) (1 3)) ((0 2) (5 0)) ((1 2) (5 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 2) (1 3))
-    ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (uniq-gen eA eB l-0 l-1)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec eA) eB)) e))
-    (exp (gen) (mul (rec eA) eB e)) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) (mul (rec eA) eB)) e))
-      (send (cat (exp (gen) (mul (rec eA) eB)) e))))
-  (label 80)
-  (parent 59)
-  (unrealized (5 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (eA eB l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) (mul (rec eA) e)) eB))
-  (precedes ((0 2) (1 3)) ((0 2) (5 0)) ((1 2) (5 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 2) (1 3))
-    ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (uniq-gen eA eB l-0 l-1)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec eA) e)) eB))
-    (exp (gen) (mul (rec eA) eB e)) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) (mul (rec eA) e)) eB))
-      (send (cat (exp (gen) (mul (rec eA) e)) eB))))
-  (label 81)
-  (parent 59)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (eA eB l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) (mul eB e)) eA))
-  (precedes ((0 2) (1 3)) ((0 2) (5 0)) ((1 2) (5 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 2) (1 3))
-    ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (uniq-gen eA eB l-0 l-1)
-  (operation nonce-test (added-listener (cat (exp (gen) (mul eB e)) eA))
-    (exp (gen) (mul (rec eA) eB e)) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) (mul eB e)) eA))
-      (send (cat (exp (gen) (mul eB e)) eA))))
-  (label 82)
-  (parent 59)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-0))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-0)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) (mul (rec eA) l-0)) eB))
-  (precedes ((0 2) (1 3)) ((0 2) (4 0)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec eA) l-0)) eB))
-    (exp (gen) (mul (rec eA) eB l-0)) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) (mul (rec eA) l-0)) eB))
-      (send (cat (exp (gen) (mul (rec eA) l-0)) eB))))
-  (label 83)
-  (parent 60)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-0))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-0)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) (mul eB l-0)) eA))
-  (precedes ((0 2) (1 3)) ((0 2) (4 0)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul eB l-0)) eA))
-    (exp (gen) (mul (rec eA) eB l-0)) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) (mul eB l-0)) eA))
-      (send (cat (exp (gen) (mul eB l-0)) eA))))
-  (label 84)
-  (parent 60)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) (mul (rec eA) l)) eB))
-  (precedes ((0 2) (1 3)) ((0 2) (4 0)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l))) kh)))
-  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec eA) l)) eB))
-    (exp (gen) (mul (rec eA) eB l)) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) (mul (rec eA) l)) eB))
-      (send (cat (exp (gen) (mul (rec eA) l)) eB))))
-  (label 85)
-  (parent 61)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) (mul eB l)) eA))
-  (precedes ((0 2) (1 3)) ((0 2) (4 0)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l))) kh)))
-  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test (added-listener (cat (exp (gen) (mul eB l)) eA))
-    (exp (gen) (mul (rec eA) eB l)) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) (mul eB l)) eA))
-      (send (cat (exp (gen) (mul eB l)) eA))))
-  (label 86)
-  (parent 61)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (eA eB l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB l))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l)) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) (mul (rec eA) eB)) l))
-  (precedes ((0 2) (1 3)) ((0 2) (5 0)) ((1 2) (5 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 0) (1 3))
-    ((4 0) (5 0)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D) (l self))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB l))) kh)))
-  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (uniq-gen eA eB l l-0 l-1)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec eA) eB)) l))
-    (exp (gen) (mul (rec eA) eB l)) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) (mul (rec eA) eB)) l))
-      (send (cat (exp (gen) (mul (rec eA) eB)) l))))
-  (label 87)
-  (parent 62)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (eA eB l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB l))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l)) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) (mul (rec eA) l)) eB))
-  (precedes ((0 2) (1 3)) ((0 2) (5 0)) ((1 2) (5 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 0) (1 3))
-    ((4 0) (5 0)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D) (l self))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB l))) kh)))
-  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (uniq-gen eA eB l l-0 l-1)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec eA) l)) eB))
-    (exp (gen) (mul (rec eA) eB l)) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) (mul (rec eA) l)) eB))
-      (send (cat (exp (gen) (mul (rec eA) l)) eB))))
-  (label 88)
-  (parent 62)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (eA eB l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB l))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l)) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) (mul eB l)) eA))
-  (precedes ((0 2) (1 3)) ((0 2) (5 0)) ((1 2) (5 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 0) (1 3))
-    ((4 0) (5 0)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D) (l self))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB l))) kh)))
-  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (uniq-gen eA eB l l-0 l-1)
-  (operation nonce-test (added-listener (cat (exp (gen) (mul eB l)) eA))
-    (exp (gen) (mul (rec eA) eB l)) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) (mul eB l)) eA))
-      (send (cat (exp (gen) (mul eB l)) eA))))
-  (label 89)
-  (parent 62)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB rndx) (w expt) (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB w))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) w))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w))) kh)))
-  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec eA) eB w)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen eA eB l l-0)
-  (operation encryption-test (displaced 5 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) w)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) w)) (send (cat (gen) w))))
-  (label 90)
-  (parent 63)
-  (unrealized (0 3))
-  (comment "7 in cohort - 7 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eB rndx) (w expt) (e l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eB w))) (l l) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen)) ((exp (gen) (mul eB w)) (gen))
-    (D B) (e eB) (l l-0) (e l) (eB l-0) (e l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen eB e l l-0)
-  (operation encryption-test (displaced 5 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul eB w))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 91)
-  (parent 65)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA rndx) (w expt) (e l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) w e e))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen))
-    ((exp (gen) (mul (rec eA) w e e)) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen eA e l l-0)
-  (operation encryption-test (displaced 5 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) w e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 92)
-  (parent 67)
-  (unrealized (0 3))
-  (comment "7 in cohort - 7 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (eA eB rndx) (w expt)
-    (l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB w e))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 2) (4 0)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB w e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen))
-    ((exp (gen) (mul (rec eA) eB w e)) (gen)) (D B) (eA eB) (l-0 l-1)
-    (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (4 0))
-  (uniq-gen eA eB l-0 l-1)
-  (operation encryption-test (displaced 6 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 93)
-  (parent 69)
-  (unrealized (0 3))
-  (comment "8 in cohort - 8 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB rndx) (w expt) (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB w l-0))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) w))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l-0))) kh)))
-  (neq ((exp (gen) (mul w l-0)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen eA eB l l-0)
-  (operation encryption-test (displaced 5 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))
-  (label 94)
-  (parent 71)
-  (unrealized (0 3))
-  (comment "7 in cohort - 7 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB rndx) (w expt) (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB w l))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l) w))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l))) kh)))
-  (neq ((exp (gen) (mul w l)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen eA eB l l-0)
-  (operation encryption-test (displaced 5 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w))))
-  (label 95)
-  (parent 73)
-  (unrealized (0 3))
-  (comment "7 in cohort - 7 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (eA eB rndx) (w expt)
-    (l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB w l))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l) w))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 3)) ((5 0) (4 0)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D) (l self))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB w l))) kh)))
-  (neq ((exp (gen) (mul w l)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l)) (gen)) (D B) (eA eB) (l-0 l-1)
-    (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (4 0))
-  (uniq-gen eA eB l l-0 l-1)
-  (operation encryption-test (displaced 6 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))
-    ((send (enc "cert" (exp (gen) l) self (privk self)))))
-  (label 96)
-  (parent 75)
-  (unrealized (0 3))
-  (comment "8 in cohort - 8 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (eA eB l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) (mul (rec eA) eB)) e))
-  (deflistener (cat (exp (gen) (rec eA)) eB))
-  (precedes ((0 2) (1 3)) ((0 2) (6 0)) ((1 2) (6 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 2) (1 3))
-    ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (uniq-gen eA eB l-0 l-1)
-  (operation nonce-test (added-listener (cat (exp (gen) (rec eA)) eB))
-    (exp (gen) (mul (rec eA) eB)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) (mul (rec eA) eB)) e))
-      (send (cat (exp (gen) (mul (rec eA) eB)) e)))
-    ((recv (cat (exp (gen) (rec eA)) eB))
-      (send (cat (exp (gen) (rec eA)) eB))))
-  (label 97)
-  (parent 80)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (eA eB l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) (mul (rec eA) eB)) e))
-  (deflistener (cat (exp (gen) eB) eA))
-  (precedes ((0 2) (1 3)) ((0 2) (6 0)) ((1 2) (6 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 2) (1 3))
-    ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (uniq-gen eA eB l-0 l-1)
-  (operation nonce-test (added-listener (cat (exp (gen) eB) eA))
-    (exp (gen) (mul (rec eA) eB)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) (mul (rec eA) eB)) e))
-      (send (cat (exp (gen) (mul (rec eA) eB)) e)))
-    ((recv (cat (exp (gen) eB) eA)) (send (cat (exp (gen) eB) eA))))
-  (label 98)
-  (parent 80)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (eA eB l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-1)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) (mul (rec eA) eB)) l-1))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (1 3)) ((0 2) (4 0)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (0 3))
-    ((5 0) (1 3)) ((5 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (uniq-gen eA eB l l-0 l-1)
-  (operation nonce-test (displaced 4 6 ltx-gen 2) l-1 (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) (mul (rec eA) eB)) l-1))
-      (send (cat (exp (gen) (mul (rec eA) eB)) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 99)
-  (parent 87)
-  (unrealized (4 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) e e))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (gen) (mul (rec eB) e e)))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))
-  (neq ((exp (gen) (mul (rec eB) e e)) (gen)) ((exp (gen) e) (gen))
-    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l eB l-0 e)
-  (operation nonce-test (displaced 5 0 participant 3) (exp (gen) e-0)
-    (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) e)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) e e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (gen) (mul (rec eB) e e)))
-      (send (cat (gen) (mul (rec eB) e e)))))
-  (label 100)
-  (parent 90)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) eA)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) eA))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA e))) kh)))
-  (neq ((exp (gen) eA) (gen)) ((exp (gen) e) (gen)) (D B) (eA e) (l l-0)
-    (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l eA l-0 e)
-  (operation nonce-test (displaced 5 1 participant 3) (exp (gen) e-0)
-    (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) e)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) eA)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) eA)) (send (cat (gen) eA))))
-  (label 101)
-  (parent 90)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 l-1 eA eB e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) e))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA (rec eB) e)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 2) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA e))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) e)) (gen)) ((exp (gen) e) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l l-0 eA eB)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e)
-    (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) e)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA (rec eB) e)))
-      (send (cat (gen) (mul eA (rec eB) e))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 102)
-  (parent 90)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA eB l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA (rec eB) l-0)))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) l-0)) (gen)) ((exp (gen) l-0) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l eA eB l-0)
-  (operation nonce-test (displaced 5 2 ltx-gen 1) (exp (gen) l-1) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) l-0)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA (rec eB) l-0)))
-      (send (cat (gen) (mul eA (rec eB) l-0)))))
-  (label 103)
-  (parent 90)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA eB l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) l-0)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) l-0))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (gen) (mul eA (rec eB) l-0)))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) l-0)) (gen)) ((exp (gen) l-0) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l eA eB l-0)
-  (operation nonce-test (displaced 5 3 ltx-gen 1) (exp (gen) l-1) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) l-0)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (gen) (mul eA (rec eB) l-0)))
-      (send (cat (gen) (mul eA (rec eB) l-0)))))
-  (label 104)
-  (parent 90)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA (rec eB) l-1)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 3)) ((5 0) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) l-1)) (gen)) ((exp (gen) l-1) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-1) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) l-1)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA (rec eB) l-1)))
-      (send (cat (gen) (mul eA (rec eB) l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 105)
-  (parent 90)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB rndx) (w expt) (l l-0 rndx)
-    (w-0 expt))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB w))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) w))
-  (deflistener (cat (exp (gen) (mul (rec eA) eB w (rec w-0))) w-0))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w))) kh)))
-  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul (rec eA) eB w)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec eA) eB w (rec w-0))) w-0))
-    (exp (gen) (mul (rec eA) eB w)) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) w)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) w)) (send (cat (gen) w)))
-    ((recv (cat (exp (gen) (mul (rec eA) eB w (rec w-0))) w-0))
-      (send (cat (exp (gen) (mul (rec eA) eB w (rec w-0))) w-0))))
-  (label 106)
-  (parent 90)
-  (unrealized (5 0))
-  (comment "7 in cohort - 7 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eB rndx) (w expt) (e l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eB w))) (l l) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen)) ((exp (gen) (mul eB w)) (gen))
-    (D B) (e eB) (l l-0) (e l) (eB l-0) (e l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (uniq-gen eB e l l-0)
-  (operation generalization deleted (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul eB w))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D)))))
-  (label 107)
-  (parent 91)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((kh kh) (A D) (B B) (C B) (D D) (hl (exp (gen) l-0))
-        (he (exp (gen) (mul eB w))) (lA l) (lB l-0) (eA e) (eB eB))))
-  (origs))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l e l-0 e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) e-0)) (l l-0) (e e-0))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec e) e-0 e-0))) (l l)
-    (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) e-0 e-0)))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e-0 e-0))) kh)))
-  (neq ((exp (gen) (mul (rec e) e-0 e-0)) (gen)) ((exp (gen) e-0) (gen))
-    (D B) (e-0 e) (l-0 l) (e-0 l-0) (e l) (e-0 l) (e l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l e l-0 e-0)
-  (operation nonce-test (displaced 5 0 participant 3) (exp (gen) e-1)
-    (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) e-0)) (recv (exp (gen) e-0)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul (rec e) e-0 e-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) e-0 e-0)))
-      (send (cat (exp (gen) e) (mul (rec e) (rec e) e-0 e-0)))))
-  (label 108)
-  (parent 92)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) eA)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e))))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA e))) kh)))
-  (neq ((exp (gen) eA) (gen)) ((exp (gen) e) (gen)) (D B) (eA e) (l l-0)
-    (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l eA l-0 e)
-  (operation nonce-test (displaced 5 1 participant 3) (exp (gen) e-0)
-    (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) e)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) eA)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e))))
-      (send (cat (exp (gen) e) (mul eA (rec e))))))
-  (label 109)
-  (parent 92)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 l-1 eA e e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) e-0)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec e) e-0))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) e-0)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e-0))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 2) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA e-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec e) e-0)) (gen)) ((exp (gen) e-0) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l l-0 eA e)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e-0)
-    (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) e-0)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA (rec e) e-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) e-0)))
-      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) e-0))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e-0))))
-  (label 110)
-  (parent 92)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec e) l-0))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) l-0)))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec e) l-0)) (gen)) ((exp (gen) l-0) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l eA e l-0)
-  (operation nonce-test (displaced 5 2 ltx-gen 1) (exp (gen) l-1) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) l-0)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA (rec e) l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) l-0)))
-      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) l-0)))))
-  (label 111)
-  (parent 92)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) l-0)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec e) l-0))) (l l)
-    (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) l-0)))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec e) l-0)) (gen)) ((exp (gen) l-0) (gen))
-    (D B) (eA e) (l-0 l) (eA l-0) (e l) (eA l) (e l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l eA e l-0)
-  (operation nonce-test (displaced 5 3 ltx-gen 1) (exp (gen) l-1) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) l-0)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul eA (rec e) l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) l-0)))
-      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) l-0)))))
-  (label 112)
-  (parent 92)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec e) l-1))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) l-1)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 3)) ((5 0) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec e) l-1)) (gen)) ((exp (gen) l-1) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l l-0 eA e l-1)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-1) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) l-1)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA (rec e) l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) l-1)))
-      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 113)
-  (parent 92)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA rndx) (w expt) (e l l-0 rndx)
-    (w-0 expt))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) w e e))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (deflistener (cat (exp (gen) (mul (rec eA) w e e (rec w-0))) w-0))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen))
-    ((exp (gen) (mul (rec eA) w e e)) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eA e l l-0)
-  (operation nonce-test
-    (added-listener
-      (cat (exp (gen) (mul (rec eA) w e e (rec w-0))) w-0))
-    (exp (gen) (mul (rec eA) w e e)) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) w e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (cat (exp (gen) (mul (rec eA) w e e (rec w-0))) w-0))
-      (send (cat (exp (gen) (mul (rec eA) w e e (rec w-0))) w-0))))
-  (label 114)
-  (parent 92)
-  (unrealized (5 0))
-  (comment "7 in cohort - 7 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 eB e l-1 e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) e-0)) (l l-1) (e e-0))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) e-0 e-0))) (l l-0)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) e-0 e-0)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 2) (4 0)))
-  (fn-of ("principal-of" (l-0 B) (l-1 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul e-0 e-0))) kh)))
-  (neq ((exp (gen) (mul (rec eB) e-0 e-0)) (gen))
-    ((exp (gen) e-0) (gen)) (D B) (e-0 eB) (l-1 l-0) (e-0 l-1) (eB l-0)
-    (e-0 l-0) (eB l-1))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (4 0))
-  (uniq-gen l-0 eB l-1 e-0)
-  (operation nonce-test (displaced 6 0 participant 3) (exp (gen) e-1)
-    (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) e-0)) (recv (exp (gen) e-0)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) e-0 e-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) e-0 e-0)))
-      (send (cat (exp (gen) e) (mul (rec eB) (rec e) e-0 e-0))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 115)
-  (parent 93)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 eA e l-1 e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) e-0)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) eA)) (l l-1) (e e-0))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e))))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 2) (4 0)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA e-0))) kh)))
-  (neq ((exp (gen) eA) (gen)) ((exp (gen) e-0) (gen)) (D B) (eA e-0)
-    (l-0 l-1) (eA l-0) (e-0 l-1) (eA l-1) (e-0 l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (4 0))
-  (uniq-gen l-0 eA l-1 e-0)
-  (operation nonce-test (displaced 6 1 participant 3) (exp (gen) e-1)
-    (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) e-0)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e-0)) (recv (exp (gen) eA)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e))))
-      (send (cat (exp (gen) e) (mul eA (rec e)))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 116)
-  (parent 93)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 eA eB l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) e))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA (rec eB))))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 2) (0 3)) ((5 2) (4 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA e))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) e)) (gen)) ((exp (gen) e) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l l-0 eA eB)
-  (operation nonce-test (displaced 6 5 participant 3) (exp (gen) e-0)
-    (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) e)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec eB))))
-      (send (cat (exp (gen) e) (mul eA (rec eB)))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 117)
-  (parent 93)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 peer-0 name) (hl hl-0 base)
-    (l l-0 l-1 l-2 eA eB e e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) e-0)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) e-0))) (l l-1)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) e-0)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-2)
-    (e e-0))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 2) (4 0)) ((6 2) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA e-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) e-0)) (gen)) ((exp (gen) e-0) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (4 0))
-  (uniq-gen l-0 l-1 eA eB)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e-0)
-    (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) e-0)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) e-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) e-0)))
-      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) e-0))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))
-      (send (exp (gen) e-0))))
-  (label 118)
-  (parent 93)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 eA eB e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) l-1)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) l-1))) (l l-1)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) l-1)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 2) (4 0)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) l-1)) (gen)) ((exp (gen) l-1) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (4 0))
-  (uniq-gen l-0 eA eB l-1)
-  (operation nonce-test (displaced 6 2 ltx-gen 1) (exp (gen) l-2) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) l-1)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) l-1)))
-      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) l-1))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 119)
-  (parent 93)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 eA eB e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) l-1))) (l l-0)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) l-1)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 2) (4 0)))
-  (fn-of ("principal-of" (l-1 D) (l-0 B))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) l-1)) (gen)) ((exp (gen) l-1) (gen))
-    (D B) (eA eB) (l-1 l-0) (eA l-1) (eB l-0) (eA l-0) (eB l-1))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (4 0))
-  (uniq-gen l-0 eA eB l-1)
-  (operation nonce-test (displaced 6 3 ltx-gen 1) (exp (gen) l-2) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) l-1)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) l-1)))
-      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) l-1))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 120)
-  (parent 93)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eA eB e l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) l-2)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) l-2))) (l l-1)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) l-2)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 1 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 2) (4 0)) ((6 0) (0 3)) ((6 0) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA l-2))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) l-2)) (gen)) ((exp (gen) l-2) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (4 0))
-  (uniq-gen l-0 l-1 eA eB l-2)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-2) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) l-2)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) l-2)))
-      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) l-2))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))
-  (label 121)
-  (parent 93)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (eA eB rndx) (w expt)
-    (l e l-0 l-1 rndx) (w-0 expt))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB w e))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) (mul (rec eA) eB w e (rec w-0))) w-0))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB w e))) kh)))
-  (neq ((exp (gen) (mul w e)) (gen))
-    ((exp (gen) (mul (rec eA) eB w e)) (gen)) (D B) (eA eB) (l-0 l-1)
-    (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen eA eB l-0 l-1)
-  (operation nonce-test
-    (added-listener
-      (cat (exp (gen) (mul (rec eA) eB w e (rec w-0))) w-0))
-    (exp (gen) (mul (rec eA) eB w e)) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) (mul (rec eA) eB w e (rec w-0))) w-0))
-      (send (cat (exp (gen) (mul (rec eA) eB w e (rec w-0))) w-0))))
-  (label 122)
-  (parent 93)
-  (unrealized (6 0))
-  (comment "8 in cohort - 8 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eB l l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) e e))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l) (mul (rec eB) (rec l) e e)))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))
-  (neq ((exp (gen) (mul (rec eB) e e)) (gen)) ((exp (gen) e) (gen))
-    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen eB l l-0 e)
-  (operation nonce-test (displaced 5 0 participant 3) (exp (gen) e-0)
-    (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) e)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) e e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul (rec eB) (rec l) e e)))
-      (send (cat (exp (gen) l) (mul (rec eB) (rec l) e e)))))
-  (label 123)
-  (parent 94)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) eA)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0))))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA e))) kh)))
-  (neq ((exp (gen) eA) (gen)) ((exp (gen) e) (gen)) (D B) (eA e) (l l-0)
-    (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l eA l-0 e)
-  (operation nonce-test (displaced 5 1 participant 3) (exp (gen) e-0)
-    (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) e)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) eA)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0))))
-      (send (cat (exp (gen) l-0) (mul eA (rec l-0))))))
-  (label 124)
-  (parent 94)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 eA eB l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) e)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) e))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) e)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 2) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA e))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) e)) (gen)) ((exp (gen) e) (gen))
-    (D B) (eA eB) (l l-1) (eA l) (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (4 0))
-  (uniq-gen l eA eB l-1)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e)
-    (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) e)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) e)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) e))))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 125)
-  (parent 94)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA eB l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB))))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) l-0)) (gen)) ((exp (gen) l-0) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l eA eB l-0)
-  (operation nonce-test (displaced 5 2 ltx-gen 1) (exp (gen) l-1) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) l-0)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB))))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB))))))
-  (label 126)
-  (parent 94)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) l-0)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) l-0))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l) (mul eA (rec eB) (rec l) l-0)))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) l-0)) (gen)) ((exp (gen) l-0) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test (displaced 5 3 ltx-gen 1) (exp (gen) l-1) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) l-0)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul eA (rec eB) (rec l) l-0)))
-      (send (cat (exp (gen) l) (mul eA (rec eB) (rec l) l-0)))))
-  (label 127)
-  (parent 94)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 3)) ((5 0) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) l-1)) (gen)) ((exp (gen) l-1) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-1) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) l-1)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 128)
-  (parent 94)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB rndx) (w expt) (l l-0 rndx)
-    (w-0 expt))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB w l-0))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) w))
-  (deflistener (cat (exp (gen) (mul (rec eA) eB w l-0 (rec w-0))) w-0))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l-0))) kh)))
-  (neq ((exp (gen) (mul w l-0)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l-0)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test
-    (added-listener
-      (cat (exp (gen) (mul (rec eA) eB w l-0 (rec w-0))) w-0))
-    (exp (gen) (mul (rec eA) eB w l-0)) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((recv (cat (exp (gen) (mul (rec eA) eB w l-0 (rec w-0))) w-0))
-      (send (cat (exp (gen) (mul (rec eA) eB w l-0 (rec w-0))) w-0))))
-  (label 129)
-  (parent 94)
-  (unrealized (5 0))
-  (comment "7 in cohort - 7 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) e e))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) e e)))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))
-  (neq ((exp (gen) (mul (rec eB) e e)) (gen)) ((exp (gen) e) (gen))
-    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l eB l-0 e)
-  (operation nonce-test (displaced 5 0 participant 3) (exp (gen) e-0)
-    (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) e)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) e e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) e e)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) e e)))))
-  (label 130)
-  (parent 95)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA l l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) eA)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l) (mul eA (rec l))))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA e))) kh)))
-  (neq ((exp (gen) eA) (gen)) ((exp (gen) e) (gen)) (D B) (eA e) (l l-0)
-    (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen eA l l-0 e)
-  (operation nonce-test (displaced 5 1 participant 3) (exp (gen) e-0)
-    (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) e)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) eA)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul eA (rec l))))
-      (send (cat (exp (gen) l) (mul eA (rec l))))))
-  (label 131)
-  (parent 95)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 eA eB l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) e))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) e)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 2) (0 3)))
-  (fn-of ("principal-of" (l B) (l-1 D))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA e))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) e)) (gen)) ((exp (gen) e) (gen))
-    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (4 0))
-  (uniq-gen l eA eB l-1)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e)
-    (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) e)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) e)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) e))))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 132)
-  (parent 95)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l) (mul eA (rec eB) (rec l) l-0)))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) l-0)) (gen)) ((exp (gen) l-0) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test (displaced 5 2 ltx-gen 1) (exp (gen) l-1) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) l-0)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul eA (rec eB) (rec l) l-0)))
-      (send (cat (exp (gen) l) (mul eA (rec eB) (rec l) l-0)))))
-  (label 133)
-  (parent 95)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA eB l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) l-0)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) l-0))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB))))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) l-0)) (gen)) ((exp (gen) l-0) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l eA eB l-0)
-  (operation nonce-test (displaced 5 3 ltx-gen 1) (exp (gen) l-1) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) l-0)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB))))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB))))))
-  (label 134)
-  (parent 95)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) l-1)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) l-1))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 3)) ((5 0) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) l-1)) (gen)) ((exp (gen) l-1) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-1) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) l-1)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 135)
-  (parent 95)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB rndx) (w expt) (l l-0 rndx)
-    (w-0 expt))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB w l))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l) w))
-  (deflistener (cat (exp (gen) (mul (rec eA) eB w l (rec w-0))) w-0))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB w l))) kh)))
-  (neq ((exp (gen) (mul w l)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test
-    (added-listener
-      (cat (exp (gen) (mul (rec eA) eB w l (rec w-0))) w-0))
-    (exp (gen) (mul (rec eA) eB w l)) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))
-    ((recv (cat (exp (gen) (mul (rec eA) eB w l (rec w-0))) w-0))
-      (send (cat (exp (gen) (mul (rec eA) eB w l (rec w-0))) w-0))))
-  (label 136)
-  (parent 95)
-  (unrealized (5 0))
-  (comment "7 in cohort - 7 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB l-0 l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l-1) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) e e))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) e e)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 3)) ((5 0) (4 0)))
-  (fn-of ("principal-of" (l B) (l-1 D) (l-0 self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul e e))) kh)))
-  (neq ((exp (gen) (mul (rec eB) e e)) (gen)) ((exp (gen) e) (gen))
-    (D B) (e eB) (l-1 l) (e l-1) (eB l) (e l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (4 0))
-  (uniq-gen l eB l-0 l-1 e)
-  (operation nonce-test (displaced 6 0 participant 3) (exp (gen) e-0)
-    (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) e)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) e e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) e e)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) e e))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))
-  (label 137)
-  (parent 96)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA l-0 l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) e)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) eA)) (l l-1) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0))))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 3)) ((5 0) (4 0)))
-  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA e))) kh)))
-  (neq ((exp (gen) eA) (gen)) ((exp (gen) e) (gen)) (D B) (eA e) (l l-1)
-    (eA l) (e l-1) (eA l-1) (e l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (4 0))
-  (uniq-gen l eA l-0 l-1 e)
-  (operation nonce-test (displaced 6 1 participant 3) (exp (gen) e-0)
-    (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) e)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) eA)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0))))
-      (send (cat (exp (gen) l-0) (mul eA (rec l-0)))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))
-  (label 138)
-  (parent 96)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 peer name) (hl base)
-    (l l-0 l-1 eA eB l-2 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) e))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) (rec l-2) e)))
-  (defstrand ltx-gen 1 (self self) (l l-2))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 3)) ((5 0) (4 0)) ((6 2) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-2 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA e))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) e)) (gen)) ((exp (gen) e) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l l-0 eA eB l-2)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e)
-    (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) e)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) (rec l-2) e)))
-      (send (cat (exp (gen) l-2) (mul eA (rec eB) (rec l-2) e))))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))))
-    ((recv (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 139)
-  (parent 96)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) l-1)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) l-1))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 3)) ((5 0) (4 0)))
-  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) l-1)) (gen)) ((exp (gen) l-1) (gen))
-    (D B) (eA eB) (l l-1) (eA l) (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (displaced 6 2 ltx-gen 1) (exp (gen) l-2) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) l-1)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))
-  (label 140)
-  (parent 96)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) l-1)) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) l-1))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 3)) ((5 0) (4 0)))
-  (fn-of ("principal-of" (l-1 D) (l B) (l-0 self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) l-1)) (gen)) ((exp (gen) l-1) (gen))
-    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (displaced 6 3 ltx-gen 1) (exp (gen) l-2) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) l-1)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) l-1))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))
-  (label 141)
-  (parent 96)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 3)) ((5 0) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) l-1)) (gen)) ((exp (gen) l-1) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (operation nonce-test (displaced 6 5 ltx-gen 1) (exp (gen) l-2) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) l-1)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB))))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 142)
-  (parent 96)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-2)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) l-2)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand ltx-gen 1 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 0) (0 3)) ((5 0) (4 0)) ((6 0) (0 3)) ((6 0) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-2))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) l-2)) (gen)) ((exp (gen) l-2) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-2) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) l-2)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) l-2)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) l-2))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))
-  (label 143)
-  (parent 96)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (eA eB rndx) (w expt) (l l-0 l-1 rndx)
-    (w-0 expt))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB w l))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l) w))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) (mul (rec eA) eB w l (rec w-0))) w-0))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D) (l self))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB w l))) kh)))
-  (neq ((exp (gen) (mul w l)) (gen))
-    ((exp (gen) (mul (rec eA) eB w l)) (gen)) (D B) (eA eB) (l-0 l-1)
-    (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen eA eB l l-0 l-1)
-  (operation nonce-test
-    (added-listener
-      (cat (exp (gen) (mul (rec eA) eB w l (rec w-0))) w-0))
-    (exp (gen) (mul (rec eA) eB w l)) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB w l)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w l))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) (mul (rec eA) eB w l (rec w-0))) w-0))
-      (send (cat (exp (gen) (mul (rec eA) eB w l (rec w-0))) w-0))))
-  (label 144)
-  (parent 96)
-  (unrealized (6 0))
-  (comment "8 in cohort - 8 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (eA eB l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-1)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) (mul (rec eA) eB)) l-1))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener (cat (exp (gen) (rec eA)) eB))
-  (precedes ((0 2) (1 3)) ((0 2) (6 0)) ((1 2) (6 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (0 3))
-    ((5 0) (1 3)) ((5 1) (4 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (uniq-gen eA eB l l-0 l-1)
-  (operation nonce-test (added-listener (cat (exp (gen) (rec eA)) eB))
-    (exp (gen) (mul (rec eA) eB)) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) (mul (rec eA) eB)) l-1))
-      (send (cat (exp (gen) (mul (rec eA) eB)) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv (cat (exp (gen) (rec eA)) eB))
-      (send (cat (exp (gen) (rec eA)) eB))))
-  (label 145)
-  (parent 99)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (eA eB l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-1)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) (mul (rec eA) eB)) l-1))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener (cat (exp (gen) eB) eA))
-  (precedes ((0 2) (1 3)) ((0 2) (6 0)) ((1 2) (6 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (0 3))
-    ((5 0) (1 3)) ((5 1) (4 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (uniq-gen eA eB l l-0 l-1)
-  (operation nonce-test (added-listener (cat (exp (gen) eB) eA))
-    (exp (gen) (mul (rec eA) eB)) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) (mul (rec eA) eB)) l-1))
-      (send (cat (exp (gen) (mul (rec eA) eB)) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv (cat (exp (gen) eB) eA)) (send (cat (exp (gen) eB) eA))))
-  (label 146)
-  (parent 99)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l l-0 eA eB rndx) (w expt))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA (rec eB) w)))
-  (deflistener (cat (gen) w))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (w-0 (mul eA (rec eB) w)) (w-1 w))
-    (gen) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA (rec eB) w)))
-      (send (cat (gen) (mul eA (rec eB) w))))
-    ((recv (cat (gen) w)) (send (cat (gen) w))))
-  (label 147)
-  (parent 106)
-  (unrealized (1 3) (4 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w e e))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (gen) (mul (rec eB) w e e)))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e e)) (gen))
-    ((exp (gen) (mul w e)) (gen)) (D B) (e eB) (l-0 l) (e l-0) (eB l)
-    (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 e)
-  (operation nonce-test (displaced 6 0 participant 3) (exp (gen) e-0)
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (gen) (mul (rec eB) w e e)))
-      (send (cat (gen) (mul (rec eB) w e e))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 148)
-  (parent 106)
-  (unrealized (1 3) (4 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA w)))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w e)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 e)
-  (operation nonce-test (displaced 6 1 participant 3) (exp (gen) e-0)
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA w))) (send (cat (gen) (mul eA w))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 149)
-  (parent 106)
-  (unrealized (4 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eA eB rndx)
-    (w expt) (e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w e))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA (rec eB) w e)))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w e)) (gen))
-    ((exp (gen) (mul w e)) (gen)) (D B) (eA eB) (l l-0) (eA l) (eB l-0)
-    (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e)
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA (rec eB) w e)))
-      (send (cat (gen) (mul eA (rec eB) w e))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 150)
-  (parent 106)
-  (unrealized (1 3) (4 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA eB rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA (rec eB) w l-0)))
-  (deflistener (cat (exp (gen) l-0) w))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0)
-  (operation nonce-test (displaced 6 2 ltx-gen 1) (exp (gen) l-1) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA (rec eB) w l-0)))
-      (send (cat (gen) (mul eA (rec eB) w l-0))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))
-  (label 151)
-  (parent 106)
-  (unrealized (1 3) (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA eB rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l-0))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (gen) (mul eA (rec eB) w l-0)))
-  (deflistener (cat (exp (gen) l-0) w))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0)
-  (operation nonce-test (displaced 6 3 ltx-gen 1) (exp (gen) l-1) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (gen) (mul eA (rec eB) w l-0)))
-      (send (cat (gen) (mul eA (rec eB) w l-0))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))
-  (label 152)
-  (parent 106)
-  (unrealized (1 3) (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA (rec eB) w l-1)))
-  (deflistener (cat (exp (gen) l-1) w))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-1) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA (rec eB) w l-1)))
-      (send (cat (gen) (mul eA (rec eB) w l-1))))
-    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 153)
-  (parent 106)
-  (unrealized (1 3) (4 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l l-0 eA e rndx) (w expt))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec e) w))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))
-  (deflistener (cat (gen) w))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec e) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA e)
-  (operation nonce-test
-    (contracted (eA-0 eA) (w-0 (mul eA (rec e) (rec e) w)) (e-0 e)
-      (w-1 w)) (gen) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA (rec e) w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))
-      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) w))))
-    ((recv (cat (gen) w)) (send (cat (gen) w))))
-  (label 154)
-  (parent 114)
-  (unrealized (1 3) (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l e rndx) (w expt) (l-0 e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e-0))) (l l-0) (e e-0))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec e) w e-0 e-0))) (l l)
-    (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w e-0 e-0)))
-  (deflistener (cat (exp (gen) e-0) w))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e-0 e-0))) kh)))
-  (neq ((exp (gen) (mul (rec e) w e-0 e-0)) (gen))
-    ((exp (gen) (mul w e-0)) (gen)) (D B) (e-0 e) (l-0 l) (e-0 l-0)
-    (e l) (e-0 l) (e l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l e l-0 e-0)
-  (operation nonce-test (displaced 6 0 participant 3) (exp (gen) e-1)
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) e-0)) (recv (exp (gen) (mul w e-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul (rec e) w e-0 e-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w e-0 e-0)))
-      (send (cat (exp (gen) e) (mul (rec e) (rec e) w e-0 e-0))))
-    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w))))
-  (label 155)
-  (parent 114)
-  (unrealized (1 3) (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA w (rec e))))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w e)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 e)
-  (operation nonce-test (displaced 6 1 participant 3) (exp (gen) e-0)
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA w (rec e))))
-      (send (cat (exp (gen) e) (mul eA w (rec e)))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 156)
-  (parent 114)
-  (unrealized (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eA e rndx)
-    (w expt) (e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e-0))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec e) w e-0))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) w e-0)))
-  (deflistener (cat (exp (gen) e-0) w))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e-0))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec e) w e-0)) (gen))
-    ((exp (gen) (mul w e-0)) (gen)) (D B) (eA e) (l l-0) (eA l) (e l-0)
-    (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA e)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e-0)
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA (rec e) w e-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) w e-0)))
-      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) w e-0))))
-    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e-0))))
-  (label 157)
-  (parent 114)
-  (unrealized (1 3) (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA e rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec e) w l-0))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) w l-0)))
-  (deflistener (cat (exp (gen) l-0) w))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec e) w l-0)) (gen))
-    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA e) (l l-0) (eA l) (e l-0)
-    (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA e l-0)
-  (operation nonce-test (displaced 6 2 ltx-gen 1) (exp (gen) l-1) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA (rec e) w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) w l-0)))
-      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) w l-0))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))
-  (label 158)
-  (parent 114)
-  (unrealized (1 3) (4 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA e rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec e) w l-0))) (l l)
-    (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) w l-0)))
-  (deflistener (cat (exp (gen) l-0) w))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec e) w l-0)) (gen))
-    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA e) (l-0 l) (eA l-0) (e l)
-    (eA l) (e l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA e l-0)
-  (operation nonce-test (displaced 6 3 ltx-gen 1) (exp (gen) l-1) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul eA (rec e) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) w l-0)))
-      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) w l-0))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))
-  (label 159)
-  (parent 114)
-  (unrealized (1 3) (4 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA e rndx) (w expt) (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec e) w l-1))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) w l-1)))
-  (deflistener (cat (exp (gen) l-1) w))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec e) w l-1)) (gen))
-    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA e) (l l-0) (eA l) (e l-0)
-    (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA e l-1)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-1) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA (rec e) w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) w l-1)))
-      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) w l-1))))
-    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 160)
-  (parent 114)
-  (unrealized (1 3) (4 0))
-  (comment "6 in cohort - 6 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 eA e l-1 e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) e-0)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) eA)) (l l-1) (e e-0))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e))))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener eA)
-  (precedes ((0 2) (6 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((2 0) (0 1))
-    ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3))
-    ((5 2) (4 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA e-0))) kh)))
-  (neq ((exp (gen) eA) (gen)) ((exp (gen) e-0) (gen)) (D B) (eA e-0)
-    (l-0 l-1) (eA l-0) (e-0 l-1) (eA l-1) (e-0 l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (4 0))
-  (uniq-gen l-0 eA l-1 e-0)
-  (operation nonce-test (added-listener eA) (mul eA (rec e)) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) e-0)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e-0)) (recv (exp (gen) eA)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e))))
-      (send (cat (exp (gen) e) (mul eA (rec e)))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv eA) (send eA)))
-  (label 161)
-  (parent 116)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 l-1 eA eB e rndx) (w expt))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) w)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l-1)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (gen) w))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA eB)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (w-0 (mul eA (rec eB) (rec e) w))
-      (e-0 e) (w-1 w)) (gen) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))
-      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) w))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (gen) w)) (send (cat (gen) w))))
-  (label 162)
-  (parent 122)
-  (unrealized (1 3) (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB e rndx)
-    (w expt) (l-1 e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e-0))) (l l-1) (e e-0))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w e-0 e-0)))
-    (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w e-0 e-0)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) w))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l-1 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e-0 e-0)))
-        kh)))
-  (neq ((exp (gen) (mul (rec eB) w e-0 e-0)) (gen))
-    ((exp (gen) (mul w e-0)) (gen)) (D B) (e-0 eB) (l-1 l-0) (e-0 l-1)
-    (eB l-0) (e-0 l-0) (eB l-1))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eB l-1 e-0)
-  (operation nonce-test (displaced 7 0 participant 3) (exp (gen) e-1)
-    (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) e-0)) (recv (exp (gen) (mul w e-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e-0 e-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w e-0 e-0)))
-      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w e-0 e-0))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w))))
-  (label 163)
-  (parent 122)
-  (unrealized (1 3) (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA e rndx)
-    (w expt) (l-1 e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w))) (l l-1) (e e-0))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) w))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w e-0))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w e-0)) (gen))
-    (D B) (eA e-0) (l-0 l-1) (eA l-0) (e-0 l-1) (eA l-1) (e-0 l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eA l-1 e-0)
-  (operation nonce-test (displaced 7 1 participant 3) (exp (gen) e-1)
-    (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e-0)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) w)))
-      (send (cat (exp (gen) e) (mul eA (rec e) w))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w))))
-  (label 164)
-  (parent 122)
-  (unrealized (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA eB rndx)
-    (w expt) (l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w e))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA (rec eB) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((5 2) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w e)) (gen))
-    ((exp (gen) (mul w e)) (gen)) (D B) (eA eB) (l l-0) (eA l) (eB l-0)
-    (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB)
-  (operation nonce-test (displaced 7 5 participant 3) (exp (gen) e-0)
-    (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec eB) w)))
-      (send (cat (exp (gen) e) (mul eA (rec eB) w))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 165)
-  (parent 122)
-  (unrealized (1 3) (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 peer-0 name) (hl hl-0 base)
-    (l l-0 l-1 l-2 eA eB e rndx) (w expt) (e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w e-0)))
-    (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) w e-0)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) w))
-  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-2)
-    (e e-0))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 2) (6 0)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w e-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w e-0)) (gen))
-    ((exp (gen) (mul w e-0)) (gen)) (D B) (eA eB) (l-0 l-1) (eA l-0)
-    (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA eB)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e-0)
-    (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) w e-0)))
-      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) w e-0))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))
-    ((recv (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))
-      (send (exp (gen) e-0))))
-  (label 166)
-  (parent 122)
-  (unrealized (1 3) (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA eB e rndx)
-    (w expt) (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l-1)))
-    (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) w l-1)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-1) w))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l-0 l-1) (eA l-0)
-    (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eA eB l-1)
-  (operation nonce-test (displaced 7 2 ltx-gen 1) (exp (gen) l-2) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) w l-1)))
-      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) w l-1))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w))))
-  (label 167)
-  (parent 122)
-  (unrealized (1 3) (4 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA eB e rndx)
-    (w expt) (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) w l-1)))
-    (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) w l-1)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-1) w))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 D) (l-0 B))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l-1 l-0) (eA l-1)
-    (eB l-0) (eA l-0) (eB l-1))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eA eB l-1)
-  (operation nonce-test (displaced 7 3 ltx-gen 1) (exp (gen) l-2) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) w l-1)))
-      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) w l-1))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w))))
-  (label 168)
-  (parent 122)
-  (unrealized (1 3) (4 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eA eB e rndx) (w expt) (l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-2))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l-2)))
-    (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) w l-2)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-2) w))
-  (defstrand ltx-gen 1 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (4 0))
-    ((7 0) (6 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w l-2))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-2)) (gen))
-    ((exp (gen) (mul w l-2)) (gen)) (D B) (eA eB) (l-0 l-1) (eA l-0)
-    (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA eB l-2)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-2) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) w l-2)))
-      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) w l-2))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-2) w)) (send (cat (exp (gen) l-2) w)))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))
-  (label 169)
-  (parent 122)
-  (unrealized (1 3) (4 0))
-  (comment "6 in cohort - 6 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA eB l-0 rndx) (w expt))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))
-  (deflistener (cat (gen) w))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (w-0 (mul eA (rec eB) (rec l-0) w))
-      (l-1 l-0) (w-1 w)) (gen) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w))))
-    ((recv (cat (gen) w)) (send (cat (gen) w))))
-  (label 170)
-  (parent 129)
-  (unrealized (1 3) (4 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eB l rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w e e))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l) (mul (rec eB) (rec l) w e e)))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e e)) (gen))
-    ((exp (gen) (mul w e)) (gen)) (D B) (e eB) (l-0 l) (e l-0) (eB l)
-    (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eB l l-0 e)
-  (operation nonce-test (displaced 6 0 participant 3) (exp (gen) e-0)
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul (rec eB) (rec l) w e e)))
-      (send (cat (exp (gen) l) (mul (rec eB) (rec l) w e e))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 171)
-  (parent 129)
-  (unrealized (1 3) (4 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA w (rec l-0))))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w e)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 e)
-  (operation nonce-test (displaced 6 1 participant 3) (exp (gen) e-0)
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA w (rec l-0))))
-      (send (cat (exp (gen) l-0) (mul eA w (rec l-0)))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 172)
-  (parent 129)
-  (unrealized (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA eB l-1 rndx)
-    (w expt) (e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w e))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w e)))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))
-  (fn-of ("principal-of" (l-1 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w e))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w e)) (gen))
-    ((exp (gen) (mul w e)) (gen)) (D B) (eA eB) (l l-1) (eA l) (eB l-1)
-    (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-1)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e)
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w e)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w e))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 173)
-  (parent 129)
-  (unrealized (1 3) (4 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA eB rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) w)))
-  (deflistener (cat (exp (gen) l-0) w))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0)
-  (operation nonce-test (displaced 6 2 ltx-gen 1) (exp (gen) l-1) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) w))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))
-  (label 174)
-  (parent 129)
-  (unrealized (1 3) (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB l rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l-0))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l) (mul eA (rec eB) (rec l) w l-0)))
-  (deflistener (cat (exp (gen) l-0) w))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test (displaced 6 3 ltx-gen 1) (exp (gen) l-1) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul eA (rec eB) (rec l) w l-0)))
-      (send (cat (exp (gen) l) (mul eA (rec eB) (rec l) w l-0))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))
-  (label 175)
-  (parent 129)
-  (unrealized (1 3) (4 0))
-  (comment "6 in cohort - 6 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1)))
-  (deflistener (cat (exp (gen) l-1) w))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-1) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1))))
-    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 176)
-  (parent 129)
-  (unrealized (1 3) (4 0))
-  (comment "7 in cohort - 7 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA eB l-0 rndx) (w expt))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))
-  (deflistener (cat (gen) w))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (w-0 (mul eA (rec eB) (rec l-0) w))
-      (l-1 l-0) (w-1 w)) (gen) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w))))
-    ((recv (cat (gen) w)) (send (cat (gen) w))))
-  (label 177)
-  (parent 136)
-  (unrealized (1 3) (4 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w e e))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) w (rec l-0) e e)))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e e)) (gen))
-    ((exp (gen) (mul w e)) (gen)) (D B) (e eB) (l-0 l) (e l-0) (eB l)
-    (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 e)
-  (operation nonce-test (displaced 6 0 participant 3) (exp (gen) e-0)
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) w (rec l-0) e e)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) w (rec l-0) e e))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 178)
-  (parent 136)
-  (unrealized (1 3) (4 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA l rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l) (mul eA (rec l) w)))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w e)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eA l l-0 e)
-  (operation nonce-test (displaced 6 1 participant 3) (exp (gen) e-0)
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul eA (rec l) w)))
-      (send (cat (exp (gen) l) (mul eA (rec l) w))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 179)
-  (parent 136)
-  (unrealized (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA eB l-1 rndx)
-    (w expt) (e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) w e))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w e)))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))
-  (fn-of ("principal-of" (l B) (l-1 D))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w e))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w e)) (gen))
-    ((exp (gen) (mul w e)) (gen)) (D B) (eA eB) (l-1 l) (eA l-1) (eB l)
-    (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-1)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e)
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w e)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w e))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 180)
-  (parent 136)
-  (unrealized (1 3) (4 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB l rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l) (mul eA (rec eB) (rec l) w l-0)))
-  (deflistener (cat (exp (gen) l-0) w))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test (displaced 6 2 ltx-gen 1) (exp (gen) l-1) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul eA (rec eB) (rec l) w l-0)))
-      (send (cat (exp (gen) l) (mul eA (rec eB) (rec l) w l-0))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))
-  (label 181)
-  (parent 136)
-  (unrealized (1 3) (4 0))
-  (comment "6 in cohort - 6 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA eB rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l-0))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) w)))
-  (deflistener (cat (exp (gen) l-0) w))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0)
-  (operation nonce-test (displaced 6 3 ltx-gen 1) (exp (gen) l-1) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) w))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w))))
-  (label 182)
-  (parent 136)
-  (unrealized (1 3) (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-1))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l-1))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1)))
-  (deflistener (cat (exp (gen) l-1) w))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-1) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1))))
-    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 183)
-  (parent 136)
-  (unrealized (1 3) (4 0))
-  (comment "7 in cohort - 7 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx) (w expt))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (gen) w))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (w-0 (mul eA (rec eB) (rec l-1) w))
-      (l-2 l-1) (w-1 w)) (gen) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (gen) w)) (send (cat (gen) w))))
-  (label 184)
-  (parent 144)
-  (unrealized (1 3) (4 0))
-  (comment "6 in cohort - 6 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt) (l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e))) (l l-1) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w e e))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w e e)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-1 D) (l-0 self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e e))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e e)) (gen))
-    ((exp (gen) (mul w e)) (gen)) (D B) (e eB) (l-1 l) (e l-1) (eB l)
-    (e l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l eB l-0 l-1 e)
-  (operation nonce-test (displaced 7 0 participant 3) (exp (gen) e-0)
-    (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w e e)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w e e))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 185)
-  (parent 144)
-  (unrealized (1 3) (4 0))
-  (comment "6 in cohort - 6 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt) (l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w))) (l l-1) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w e))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w e)) (gen))
-    (D B) (eA e) (l l-1) (eA l) (e l-1) (eA l-1) (e l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l eA l-0 l-1 e)
-  (operation nonce-test (displaced 7 1 participant 3) (exp (gen) e-0)
-    (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 186)
-  (parent 144)
-  (unrealized (4 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 peer name) (hl base)
-    (l l-0 l-1 eA eB l-2 rndx) (w expt) (e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w e))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) (rec l-2) w e)))
-  (defstrand ltx-gen 1 (self self) (l l-2))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 2) (6 0)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-2 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w e)) (gen))
-    ((exp (gen) (mul w e)) (gen)) (D B) (eA eB) (l l-0) (eA l) (eB l-0)
-    (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-2)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e)
-    (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) (rec l-2) w e)))
-      (send (cat (exp (gen) l-2) (mul eA (rec eB) (rec l-2) w e))))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 187)
-  (parent 144)
-  (unrealized (1 3) (4 0))
-  (comment "6 in cohort - 6 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l-1) w))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-1) (eA l)
-    (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (displaced 7 2 ltx-gen 1) (exp (gen) l-2) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w))))
-  (label 188)
-  (parent 144)
-  (unrealized (1 3) (4 0))
-  (comment "7 in cohort - 7 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-1))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) w l-1))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l-1) w))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 D) (l B) (l-0 self))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l-1 l) (eA l-1)
-    (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (displaced 7 3 ltx-gen 1) (exp (gen) l-2) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w l-1))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w))))
-  (label 189)
-  (parent 144)
-  (unrealized (1 3) (4 0))
-  (comment "7 in cohort - 7 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-1) w))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (operation nonce-test (displaced 7 5 ltx-gen 1) (exp (gen) l-2) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w))))
-  (label 190)
-  (parent 144)
-  (unrealized (1 3) (4 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 rndx) (w expt)
-    (l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-2))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w l-2)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-2) w))
-  (defstrand ltx-gen 1 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 0) (4 0)) ((7 0) (6 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-2))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-2)) (gen))
-    ((exp (gen) (mul w l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-2) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w l-2)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w l-2))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-2) w)) (send (cat (exp (gen) l-2) w)))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))
-  (label 191)
-  (parent 144)
-  (unrealized (1 3) (4 0))
-  (comment "8 in cohort - 8 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-1)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) l-1))
-  (deflistener (cat (gen) (mul (rec eA) eB l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))
-    ((recv (cat (gen) (mul (rec eA) eB l-1)))
-      (send (cat (gen) (mul (rec eA) eB l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 192)
-  (parent 147)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l l-0 eB rndx) (w expt) (eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul (rec eB) w)))
-  (deflistener (cat (gen) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eB eA)
-  (absent (eA (mul (rec eB) w)))
-  (operation nonce-test (added-absence eA (mul (rec eB) w))
-    (mul (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul (rec eB) w)))
-      (send (cat (gen) (mul (rec eB) w))))
-    ((recv (cat (gen) (mul w (rec eA))))
-      (send (cat (gen) (mul w (rec eA))))))
-  (label 193)
-  (parent 147)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l l-0 eA rndx) (w expt) (eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA w)))
-  (deflistener (cat (gen) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB)
-  (absent (eB (mul eA w)))
-  (operation nonce-test (added-absence eB (mul eA w)) (mul eA w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA w))) (send (cat (gen) (mul eA w))))
-    ((recv (cat (gen) (mul w eB))) (send (cat (gen) (mul w eB)))))
-  (label 194)
-  (parent 147)
-  (unrealized (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eB e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul eB (rec e) l-1))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (gen) l-1))
-  (deflistener (cat (exp (gen) e) (mul eB (rec e) (rec e) l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul eB (rec e) l-1)) (gen))
-    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eB e l-1)
-  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eB (rec e) l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))
-    ((recv (cat (exp (gen) e) (mul eB (rec e) (rec e) l-1)))
-      (send (cat (exp (gen) e) (mul eB (rec e) (rec e) l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 195)
-  (parent 148)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e eB))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (gen) (mul w e e)))
-  (deflistener (cat (exp (gen) e) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e eB))) kh)))
-  (neq ((exp (gen) (mul w e e)) (gen)) ((exp (gen) (mul w e eB)) (gen))
-    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e eB)
-  (absent (eB (mul w e e)))
-  (operation nonce-test (added-absence eB (mul w e e)) (mul w e e)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (gen) (mul w e e))) (send (cat (gen) (mul w e e))))
-    ((recv (cat (exp (gen) e) (mul w eB)))
-      (send (cat (exp (gen) e) (mul w eB)))))
-  (label 196)
-  (parent 148)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w (rec e)))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (gen) (mul (rec eB) w)))
-  (deflistener (cat (exp (gen) e) (mul w (rec e) (rec e))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec e))) (gen)) (D B) (e eB) (l-0 l) (e l-0)
-    (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 e)
-  (absent (e (mul (rec eB) w)))
-  (operation nonce-test (added-absence e (mul (rec eB) w))
-    (mul (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w (rec e)))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (gen) (mul (rec eB) w)))
-      (send (cat (gen) (mul (rec eB) w))))
-    ((recv (cat (exp (gen) e) (mul w (rec e) (rec e))))
-      (send (cat (exp (gen) e) (mul w (rec e) (rec e))))))
-  (label 197)
-  (parent 148)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 e eA l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e (rec eA) l-1))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-1)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) l-1))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul e (rec eA) l-1)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e eA l-1)
-  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))
-    ((recv (cat (exp (gen) e) (mul (rec eA) l-1)))
-      (send (cat (exp (gen) e) (mul (rec eA) l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 198)
-  (parent 149)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) w))
-  (deflistener (cat (exp (gen) e) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))
-  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e (rec eA))) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e eA)
-  (absent (eA w))
-  (operation nonce-test (added-absence eA w) w (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) w)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) w)) (send (cat (gen) w)))
-    ((recv (cat (exp (gen) e) (mul w (rec eA))))
-      (send (cat (exp (gen) e) (mul w (rec eA))))))
-  (label 199)
-  (parent 149)
-  (unrealized (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA w)))
-  (deflistener (cat (exp (gen) e) w))
-  (deflistener eA)
-  (precedes ((0 2) (5 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w e)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 e)
-  (operation nonce-test (added-listener eA) (mul eA w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA w))) (send (cat (gen) (mul eA w))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv eA) (send eA)))
-  (label 200)
-  (parent 149)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eA eB e l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-2))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-2)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) l-2))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) eB (rec e) l-2)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 0) (5 0))
-    ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-2))) kh)))
-  (neq ((exp (gen) l-2) (gen)) ((exp (gen) (mul (rec eA) eB l-2)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-2)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) l-2)) (send (cat (gen) l-2)))
-    ((recv (cat (exp (gen) e) (mul (rec eA) eB (rec e) l-2)))
-      (send (cat (exp (gen) e) (mul (rec eA) eB (rec e) l-2))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 201)
-  (parent 150)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eB rndx)
-    (w expt) (e eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w e))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul (rec eB) w e)))
-  (deflistener (cat (exp (gen) e) (mul w (rec eA))))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e)) (gen))
-    ((exp (gen) (mul w e (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eB eA)
-  (absent (eA (mul (rec eB) w e)))
-  (operation nonce-test (added-absence eA (mul (rec eB) w e))
-    (mul (rec eB) w e) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul (rec eB) w e)))
-      (send (cat (gen) (mul (rec eB) w e))))
-    ((recv (cat (exp (gen) e) (mul w (rec eA))))
-      (send (cat (exp (gen) e) (mul w (rec eA)))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 202)
-  (parent 150)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eA rndx)
-    (w expt) (e eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w e))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA w e)))
-  (deflistener (cat (exp (gen) e) (mul w eB)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e eB))) kh)))
-  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB)
-  (absent (eB (mul eA w e)))
-  (operation nonce-test (added-absence eB (mul eA w e)) (mul eA w e)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA w e))) (send (cat (gen) (mul eA w e))))
-    ((recv (cat (exp (gen) e) (mul w eB)))
-      (send (cat (exp (gen) e) (mul w eB))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 203)
-  (parent 150)
-  (unrealized (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-1)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) l-1))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))
-    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1)))
-      (send (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 204)
-  (parent 151)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul (rec eB) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 eA)
-  (absent (eA (mul (rec eB) w l-0)))
-  (operation nonce-test (added-absence eA (mul (rec eB) w l-0))
-    (mul (rec eB) w l-0) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul (rec eB) w l-0)))
-      (send (cat (gen) (mul (rec eB) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))
-      (send (cat (exp (gen) l-0) (mul w (rec eA))))))
-  (label 205)
-  (parent 151)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-0)) (gen))
-    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 eB)
-  (absent (eB (mul eA w l-0)))
-  (operation nonce-test (added-absence eB (mul eA w l-0)) (mul eA w l-0)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA w l-0)))
-      (send (cat (gen) (mul eA w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w eB)))
-      (send (cat (exp (gen) l-0) (mul w eB)))))
-  (label 206)
-  (parent 151)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA eB rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA (rec eB) w)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0)
-  (absent (l-0 (mul eA (rec eB) w)))
-  (operation nonce-test (added-absence l-0 (mul eA (rec eB) w))
-    (mul eA (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA (rec eB) w)))
-      (send (cat (gen) (mul eA (rec eB) w))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec l-0))))
-      (send (cat (exp (gen) l-0) (mul w (rec l-0))))))
-  (label 207)
-  (parent 151)
-  (unrealized (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB l-1))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (gen) l-1))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))
-    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1)))
-      (send (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 208)
-  (parent 152)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 (rec eA)))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-0))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (gen) (mul (rec eB) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 eA)
-  (absent (eA (mul (rec eB) w l-0)))
-  (operation nonce-test (added-absence eA (mul (rec eB) w l-0))
-    (mul (rec eB) w l-0) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (gen) (mul (rec eB) w l-0)))
-      (send (cat (gen) (mul (rec eB) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))
-      (send (cat (exp (gen) l-0) (mul w (rec eA))))))
-  (label 209)
-  (parent 152)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (gen) (mul eA w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-0)) (gen))
-    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 eB)
-  (absent (eB (mul eA w l-0)))
-  (operation nonce-test (added-absence eB (mul eA w l-0)) (mul eA w l-0)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (gen) (mul eA w l-0)))
-      (send (cat (gen) (mul eA w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w eB)))
-      (send (cat (exp (gen) l-0) (mul w eB)))))
-  (label 210)
-  (parent 152)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA eB rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (gen) (mul eA (rec eB) w)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0)
-  (absent (l-0 (mul eA (rec eB) w)))
-  (operation nonce-test (added-absence l-0 (mul eA (rec eB) w))
-    (mul eA (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (gen) (mul eA (rec eB) w)))
-      (send (cat (gen) (mul eA (rec eB) w))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec l-0))))
-      (send (cat (exp (gen) l-0) (mul w (rec l-0))))))
-  (label 211)
-  (parent 152)
-  (unrealized (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-1)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) l-1))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB)))
-      (send (cat (exp (gen) l-1) (mul (rec eA) eB))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 212)
-  (parent 153)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-2))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-2)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) l-2))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB (rec l-1) l-2)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 0) (5 0)) ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-2))) kh)))
-  (neq ((exp (gen) l-2) (gen)) ((exp (gen) (mul (rec eA) eB l-2)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-2)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) l-2)) (send (cat (gen) l-2)))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB (rec l-1) l-2)))
-      (send (cat (exp (gen) l-1) (mul (rec eA) eB (rec l-1) l-2))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 213)
-  (parent 153)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eB rndx) (w expt)
-    (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul (rec eB) w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eB l-1 eA)
-  (absent (eA (mul (rec eB) w l-1)))
-  (operation nonce-test (added-absence eA (mul (rec eB) w l-1))
-    (mul (rec eB) w l-1) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul (rec eB) w l-1)))
-      (send (cat (gen) (mul (rec eB) w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec eA)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 214)
-  (parent 153)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt)
-    (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w eB)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA l-1 eB)
-  (absent (eB (mul eA w l-1)))
-  (operation nonce-test (added-absence eB (mul eA w l-1)) (mul eA w l-1)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA w l-1)))
-      (send (cat (gen) (mul eA w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w eB)))
-      (send (cat (exp (gen) l-1) (mul w eB))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 215)
-  (parent 153)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA (rec eB) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (absent (l-1 (mul eA (rec eB) w)))
-  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w))
-    (mul eA (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA (rec eB) w)))
-      (send (cat (gen) (mul eA (rec eB) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 216)
-  (parent 153)
-  (unrealized (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l l-0 eA e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (one)))
-  (deflistener (cat (gen) (mul (rec eA) e e)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA e)
-  (operation nonce-test
-    (contracted (eA-0 eA) (e-0 e) (w (mul (rec eA) e e))) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (cat (gen) (mul (rec eA) e e)))
-      (send (cat (gen) (mul (rec eA) e e)))))
-  (label 217)
-  (parent 154)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e l-1))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul e l-1))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) l-1))
-  (deflistener (cat (gen) (mul (rec eA) e e l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e l-1))) kh)))
-  (neq ((exp (gen) (mul e l-1)) (gen))
-    ((exp (gen) (mul (rec eA) e e l-1)) (gen)) (D B) (eA e) (l l-0)
-    (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA e l-1)
-  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul e l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (cat (gen) (mul (rec eA) e e l-1)))
-      (send (cat (gen) (mul (rec eA) e e l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 218)
-  (parent 154)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l l-0 e rndx) (w expt) (eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec e) w))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w)))
-  (deflistener (cat (gen) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec e) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e eA)
-  (absent (eA (mul (rec e) (rec e) w)))
-  (operation nonce-test (added-absence eA (mul (rec e) (rec e) w))
-    (mul (rec e) (rec e) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul (rec e) w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w)))
-      (send (cat (exp (gen) e) (mul (rec e) (rec e) w))))
-    ((recv (cat (gen) (mul w (rec eA))))
-      (send (cat (gen) (mul w (rec eA))))))
-  (label 219)
-  (parent 154)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l l-0 eA rndx) (w expt) (e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w e))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA w)))
-  (deflistener (cat (gen) (mul w e e)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e e))) kh)))
-  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e e)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA e)
-  (absent (e (mul eA w)))
-  (operation nonce-test (added-absence e (mul eA w)) (mul eA w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA w)))
-      (send (cat (exp (gen) e) (mul eA w))))
-    ((recv (cat (gen) (mul w e e))) (send (cat (gen) (mul w e e)))))
-  (label 220)
-  (parent 154)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l l-0 e e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul e e (rec e-0)))) (l l-0) (e e-0))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (deflistener (cat (exp (gen) e-0) (mul e e (rec e-0) (rec e-0))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul e e (rec e-0))) (gen))
-    (D B) (e-0 e) (l-0 l) (e-0 l-0) (e l) (e-0 l) (e l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e e-0)
-  (operation nonce-test
-    (contracted (e-1 e) (w (mul e e (rec e-0) (rec e-0))) (e-2 e-0))
-    (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) e-0)) (recv (exp (gen) (mul e e (rec e-0))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (cat (exp (gen) e-0) (mul e e (rec e-0) (rec e-0))))
-      (send (cat (exp (gen) e-0) (mul e e (rec e-0) (rec e-0))))))
-  (label 221)
-  (parent 155)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 e e-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul e e (rec e-0) l-1))) (l l-0) (e e-0))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-1))) (l l) (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) l-1))
-  (deflistener (cat (exp (gen) e-0) (mul e e (rec e-0) (rec e-0) l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e l-1))) kh)))
-  (neq ((exp (gen) (mul e l-1)) (gen))
-    ((exp (gen) (mul e e (rec e-0) l-1)) (gen)) (D B) (e-0 e) (l-0 l)
-    (e-0 l-0) (e l) (e-0 l) (e l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e e-0 l-1)
-  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) e-0)) (recv (exp (gen) (mul e e (rec e-0) l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul e l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (cat (exp (gen) e-0) (mul e e (rec e-0) (rec e-0) l-1)))
-      (send (cat (exp (gen) e-0) (mul e e (rec e-0) (rec e-0) l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 222)
-  (parent 155)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e e-0 e-0))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e e-0))) (l l) (e e-0))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e-0) (mul w e e)))
-  (deflistener (cat (exp (gen) e) (mul w e-0 e-0)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e e-0 e-0)))
-        kh)))
-  (neq ((exp (gen) (mul w e e e-0)) (gen))
-    ((exp (gen) (mul w e e-0 e-0)) (gen)) (D B) (e e-0) (l-0 l) (e l-0)
-    (e-0 l) (e l) (e-0 l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e e-0)
-  (absent (e-0 (mul w e e)))
-  (operation nonce-test (added-absence e-0 (mul w e e)) (mul w e e)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e e-0 e-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e-0)) (recv (exp (gen) (mul w e e e-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e-0) (mul w e e)))
-      (send (cat (exp (gen) e-0) (mul w e e))))
-    ((recv (cat (exp (gen) e) (mul w e-0 e-0)))
-      (send (cat (exp (gen) e) (mul w e-0 e-0)))))
-  (label 223)
-  (parent 155)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l e rndx) (w expt) (l-0 e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w (rec e-0)))) (l l-0) (e e-0))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec e) w))) (l l) (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w)))
-  (deflistener (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec e) w)) (gen))
-    ((exp (gen) (mul w (rec e-0))) (gen)) (D B) (e-0 e) (l-0 l)
-    (e-0 l-0) (e l) (e-0 l) (e l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l e l-0 e-0)
-  (absent (e-0 (mul (rec e) (rec e) w)))
-  (operation nonce-test (added-absence e-0 (mul (rec e) (rec e) w))
-    (mul (rec e) (rec e) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) e-0)) (recv (exp (gen) (mul w (rec e-0))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul (rec e) w))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w)))
-      (send (cat (exp (gen) e) (mul (rec e) (rec e) w))))
-    ((recv (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0))))
-      (send (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0))))))
-  (label 224)
-  (parent 155)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l l-0 eA e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (one)))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) e)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA e)
-  (operation nonce-test
-    (contracted (eA-0 eA) (w (mul (rec eA) e)) (e-0 e)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (cat (exp (gen) e) (mul (rec eA) e)))
-      (send (cat (exp (gen) e) (mul (rec eA) e)))))
-  (label 225)
-  (parent 156)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e l-1))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul e l-1))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) l-1))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) e l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e l-1))) kh)))
-  (neq ((exp (gen) (mul e l-1)) (gen))
-    ((exp (gen) (mul (rec eA) e e l-1)) (gen)) (D B) (eA e) (l l-0)
-    (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA e l-1)
-  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul e l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (cat (exp (gen) e) (mul (rec eA) e l-1)))
-      (send (cat (exp (gen) e) (mul (rec eA) e l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 226)
-  (parent 156)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul w (rec e))))
-  (deflistener (cat (exp (gen) e) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))
-  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e (rec eA))) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e eA)
-  (absent (eA (mul w (rec e))))
-  (operation nonce-test (added-absence eA (mul w (rec e)))
-    (mul w (rec e)) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) w)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul w (rec e))))
-      (send (cat (exp (gen) e) (mul w (rec e)))))
-    ((recv (cat (exp (gen) e) (mul w (rec eA))))
-      (send (cat (exp (gen) e) (mul w (rec eA))))))
-  (label 227)
-  (parent 156)
-  (unrealized (0 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w e))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA w)))
-  (deflistener (cat (exp (gen) e) (mul w e)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e e))) kh)))
-  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e e)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 e)
-  (absent (e (mul eA w)))
-  (operation nonce-test (added-absence e (mul eA w)) (mul eA w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA w)))
-      (send (cat (exp (gen) e) (mul eA w))))
-    ((recv (cat (exp (gen) e) (mul w e)))
-      (send (cat (exp (gen) e) (mul w e)))))
-  (label 228)
-  (parent 156)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 l-1 eA e e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (one)))
-  (deflistener (cat (exp (gen) e-0) (mul (rec eA) e e (rec e-0))))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e-0))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA e)
-  (operation nonce-test
-    (contracted (eA-0 eA) (e-1 e) (w (mul (rec eA) e e (rec e-0)))
-      (e-2 e-0)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (cat (exp (gen) e-0) (mul (rec eA) e e (rec e-0))))
-      (send (cat (exp (gen) e-0) (mul (rec eA) e e (rec e-0)))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e-0))))
-  (label 229)
-  (parent 157)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eA e e-0 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e l-2))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul e l-2))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) l-2))
-  (deflistener (cat (exp (gen) e-0) (mul (rec eA) e e (rec e-0) l-2)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e-0))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 0) (5 0))
-    ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e l-2))) kh)))
-  (neq ((exp (gen) (mul e l-2)) (gen))
-    ((exp (gen) (mul (rec eA) e e l-2)) (gen)) (D B) (eA e) (l l-0)
-    (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA e l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul e l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) l-2)) (send (cat (exp (gen) e) l-2)))
-    ((recv (cat (exp (gen) e-0) (mul (rec eA) e e (rec e-0) l-2)))
-      (send (cat (exp (gen) e-0) (mul (rec eA) e e (rec e-0) l-2))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e-0)))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 230)
-  (parent 157)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 e rndx)
-    (w expt) (e-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e-0 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec e) w e-0))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w e-0)))
-  (deflistener (cat (exp (gen) e-0) (mul w (rec eA))))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e-0))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e-0))) kh)))
-  (neq ((exp (gen) (mul (rec e) w e-0)) (gen))
-    ((exp (gen) (mul w e-0 (rec eA))) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e eA)
-  (absent (eA (mul (rec e) (rec e) w e-0)))
-  (operation nonce-test (added-absence eA (mul (rec e) (rec e) w e-0))
-    (mul (rec e) (rec e) w e-0) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul (rec e) w e-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w e-0)))
-      (send (cat (exp (gen) e) (mul (rec e) (rec e) w e-0))))
-    ((recv (cat (exp (gen) e-0) (mul w (rec eA))))
-      (send (cat (exp (gen) e-0) (mul w (rec eA)))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e-0))))
-  (label 231)
-  (parent 157)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eA rndx)
-    (w expt) (e e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e-0 e-0))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w e e-0))) (l l-0) (e e-0))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e-0) (mul eA w e)))
-  (deflistener (cat (exp (gen) e) (mul w e-0 e-0)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e e-0 e-0)))
-        kh)))
-  (neq ((exp (gen) (mul eA w e e-0)) (gen))
-    ((exp (gen) (mul w e e-0 e-0)) (gen)) (D B) (eA e-0) (l l-0) (eA l)
-    (e-0 l-0) (eA l-0) (e-0 l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA e-0)
-  (absent (e-0 (mul eA w e)))
-  (operation nonce-test (added-absence e-0 (mul eA w e)) (mul eA w e)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e e-0 e-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) e-0)) (recv (exp (gen) (mul eA w e e-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e-0) (mul eA w e)))
-      (send (cat (exp (gen) e-0) (mul eA w e))))
-    ((recv (cat (exp (gen) e) (mul w e-0 e-0)))
-      (send (cat (exp (gen) e) (mul w e-0 e-0))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 232)
-  (parent 157)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (one)))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA e l-0)
-  (operation nonce-test
-    (contracted (eA-0 eA) (e-0 e) (w (mul (rec eA) e e (rec l-0)))
-      (l-1 l-0)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0))))
-      (send (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0))))))
-  (label 233)
-  (parent 158)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e l-1))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul e l-1))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) l-1))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0) l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e l-1))) kh)))
-  (neq ((exp (gen) (mul e l-1)) (gen))
-    ((exp (gen) (mul (rec eA) e e l-1)) (gen)) (D B) (eA e) (l l-0)
-    (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA e l-0 l-1)
-  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul e l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0) l-1)))
-      (send (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0) l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 234)
-  (parent 158)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l e rndx) (w expt) (l-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec e) w l-0))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))
-  (neq ((exp (gen) (mul (rec e) w l-0)) (gen))
-    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l e l-0 eA)
-  (absent (eA (mul (rec e) (rec e) w l-0)))
-  (operation nonce-test (added-absence eA (mul (rec e) (rec e) w l-0))
-    (mul (rec e) (rec e) w l-0) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul (rec e) w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w l-0)))
-      (send (cat (exp (gen) e) (mul (rec e) (rec e) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))
-      (send (cat (exp (gen) l-0) (mul w (rec eA))))))
-  (label 235)
-  (parent 158)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 e e))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-0 e))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w e e)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 e e)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-0 e)) (gen))
-    ((exp (gen) (mul w l-0 e e)) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 e)
-  (absent (e (mul eA w l-0)))
-  (operation nonce-test (added-absence e (mul eA w l-0)) (mul eA w l-0)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w l-0 e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA w l-0)))
-      (send (cat (exp (gen) e) (mul eA w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w e e)))
-      (send (cat (exp (gen) l-0) (mul w e e)))))
-  (label 236)
-  (parent 158)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA e rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec e) w))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec e) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA e l-0)
-  (absent (l-0 (mul eA (rec e) (rec e) w)))
-  (operation nonce-test (added-absence l-0 (mul eA (rec e) (rec e) w))
-    (mul eA (rec e) (rec e) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA (rec e) w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))
-      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) w))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec l-0))))
-      (send (cat (exp (gen) l-0) (mul w (rec l-0))))))
-  (label 237)
-  (parent 158)
-  (unrealized (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) e e))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l) (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))
-    (D B) (eA e) (l-0 l) (eA l-0) (e l) (eA l) (e l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA e l-0)
-  (operation nonce-test
-    (contracted (eA-0 eA) (e-0 e) (w (mul (rec eA) e e (rec l-0)))
-      (l-1 l-0)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0))))
-      (send (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0))))))
-  (label 238)
-  (parent 159)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) e e l-1))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-1))) (l l) (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) l-1))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0) l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e l-1))) kh)))
-  (neq ((exp (gen) (mul e l-1)) (gen))
-    ((exp (gen) (mul (rec eA) e e l-1)) (gen)) (D B) (eA e) (l-0 l)
-    (eA l-0) (e l) (eA l) (e l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA e l-0 l-1)
-  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul e l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0) l-1)))
-      (send (cat (exp (gen) l-0) (mul (rec eA) e e (rec l-0) l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 239)
-  (parent 159)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l e rndx) (w expt) (l-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 (rec eA)))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec e) w l-0))) (l l)
-    (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))
-  (neq ((exp (gen) (mul (rec e) w l-0)) (gen))
-    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA e) (l-0 l)
-    (eA l-0) (e l) (eA l) (e l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l e l-0 eA)
-  (absent (eA (mul (rec e) (rec e) w l-0)))
-  (operation nonce-test (added-absence eA (mul (rec e) (rec e) w l-0))
-    (mul (rec e) (rec e) w l-0) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul (rec e) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w l-0)))
-      (send (cat (exp (gen) e) (mul (rec e) (rec e) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))
-      (send (cat (exp (gen) l-0) (mul w (rec eA))))))
-  (label 240)
-  (parent 159)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 e e))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0 e))) (l l) (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w e e)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 e e)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-0 e)) (gen))
-    ((exp (gen) (mul w l-0 e e)) (gen)) (D B) (eA e) (l-0 l) (eA l-0)
-    (e l) (eA l) (e l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 e)
-  (absent (e (mul eA w l-0)))
-  (operation nonce-test (added-absence e (mul eA w l-0)) (mul eA w l-0)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul eA w l-0 e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA w l-0)))
-      (send (cat (exp (gen) e) (mul eA w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w e e)))
-      (send (cat (exp (gen) l-0) (mul w e e)))))
-  (label 241)
-  (parent 159)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA e rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec e) w))) (l l)
-    (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec e) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA e) (l-0 l) (eA l-0) (e l) (eA l) (e l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA e l-0)
-  (absent (l-0 (mul eA (rec e) (rec e) w)))
-  (operation nonce-test (added-absence l-0 (mul eA (rec e) (rec e) w))
-    (mul eA (rec e) (rec e) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul eA (rec e) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))
-      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) w))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec l-0))))
-      (send (cat (exp (gen) l-0) (mul w (rec l-0))))))
-  (label 242)
-  (parent 159)
-  (unrealized (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (one)))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eA) e e (rec l-1))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA e l-1)
-  (operation nonce-test
-    (contracted (eA-0 eA) (e-0 e) (w (mul (rec eA) e e (rec l-1)))
-      (l-2 l-1)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) e e (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul (rec eA) e e (rec l-1)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 243)
-  (parent 160)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e l-1))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul e l-1))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) l-1))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eA) e e)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e l-1))) kh)))
-  (neq ((exp (gen) (mul e l-1)) (gen))
-    ((exp (gen) (mul (rec eA) e e l-1)) (gen)) (D B) (eA e) (l l-0)
-    (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA e l-1)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul e l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) e e)))
-      (send (cat (exp (gen) l-1) (mul (rec eA) e e))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 244)
-  (parent 160)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA e l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e l-2))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul e l-2))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) l-2))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eA) e e (rec l-1) l-2)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 0) (5 0)) ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e l-2))) kh)))
-  (neq ((exp (gen) (mul e l-2)) (gen))
-    ((exp (gen) (mul (rec eA) e e l-2)) (gen)) (D B) (eA e) (l l-0)
-    (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA e l-1 l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul e l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) l-2)) (send (cat (exp (gen) e) l-2)))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) e e (rec l-1) l-2)))
-      (send (cat (exp (gen) l-1) (mul (rec eA) e e (rec l-1) l-2))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 245)
-  (parent 160)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 e rndx) (w expt) (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec e) w l-1))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec e) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e l-1 eA)
-  (absent (eA (mul (rec e) (rec e) w l-1)))
-  (operation nonce-test (added-absence eA (mul (rec e) (rec e) w l-1))
-    (mul (rec e) (rec e) w l-1) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul (rec e) w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w l-1)))
-      (send (cat (exp (gen) e) (mul (rec e) (rec e) w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec eA)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 246)
-  (parent 160)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt) (l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 e e))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-1 e))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w e e)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 e e)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1 e)) (gen))
-    ((exp (gen) (mul w l-1 e e)) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA l-1 e)
-  (absent (e (mul eA w l-1)))
-  (operation nonce-test (added-absence e (mul eA w l-1)) (mul eA w l-1)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w l-1 e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA w l-1)))
-      (send (cat (exp (gen) e) (mul eA w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w e e)))
-      (send (cat (exp (gen) l-1) (mul w e e))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 247)
-  (parent 160)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA e rndx) (w expt) (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec e) w))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec e) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA e l-1)
-  (absent (l-1 (mul eA (rec e) (rec e) w)))
-  (operation nonce-test (added-absence l-1 (mul eA (rec e) (rec e) w))
-    (mul eA (rec e) (rec e) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA (rec e) w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))
-      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 248)
-  (parent 160)
-  (unrealized (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 l-1 eA eB e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (gen) (mul (rec eA) eB e)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA eB)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (e-0 e) (w (mul (rec eA) eB e)))
-    (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (gen) (mul (rec eA) eB e)))
-      (send (cat (gen) (mul (rec eA) eB e)))))
-  (label 249)
-  (parent 162)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eA eB e l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e l-2)))
-    (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-2))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) l-2))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (gen) (mul (rec eA) eB e l-2)))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (6 0))
-    ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e l-2))) kh)))
-  (neq ((exp (gen) (mul e l-2)) (gen))
-    ((exp (gen) (mul (rec eA) eB e l-2)) (gen)) (D B) (eA eB) (l-0 l-1)
-    (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA eB l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul e l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) l-2)) (send (cat (exp (gen) e) l-2)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (gen) (mul (rec eA) eB e l-2)))
-      (send (cat (gen) (mul (rec eA) eB e l-2))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 250)
-  (parent 162)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eB e rndx)
-    (w expt) (eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w (rec eA)))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l-1)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (gen) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l-0 l-1)
-    (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eB eA)
-  (absent (eA (mul (rec eB) (rec e) w)))
-  (operation nonce-test (added-absence eA (mul (rec eB) (rec e) w))
-    (mul (rec eB) (rec e) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w)))
-      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (gen) (mul w (rec eA))))
-      (send (cat (gen) (mul w (rec eA))))))
-  (label 251)
-  (parent 162)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eA e rndx)
-    (w expt) (eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (gen) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w eB))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA eB)
-  (absent (eB (mul eA (rec e) w)))
-  (operation nonce-test (added-absence eB (mul eA (rec e) w))
-    (mul eA (rec e) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) w)))
-      (send (cat (exp (gen) e) (mul eA (rec e) w))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (gen) (mul w eB))) (send (cat (gen) (mul w eB)))))
-  (label 252)
-  (parent 162)
-  (unrealized (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 l-1 eB e e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eB e (rec e-0)))) (l l-1)
-    (e e-0))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) e)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) (mul eB e (rec e-0) (rec e-0))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l-1 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul eB e (rec e-0))) (gen))
-    (D B) (e-0 eB) (l-1 l-0) (e-0 l-1) (eB l-0) (e-0 l-0) (eB l-1))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eB e-0)
-  (operation nonce-test
-    (contracted (eB-0 eB) (e-1 e) (w (mul eB e (rec e-0) (rec e-0)))
-      (e-2 e-0)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) e-0)) (recv (exp (gen) (mul eB e (rec e-0))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) (mul eB e (rec e-0) (rec e-0))))
-      (send (cat (exp (gen) e-0) (mul eB e (rec e-0) (rec e-0))))))
-  (label 253)
-  (parent 163)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eB e e-0 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eB e (rec e-0) l-2)))
-    (l l-1) (e e-0))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul e l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) e) l-2))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) (mul eB e (rec e-0) (rec e-0) l-2)))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (6 0))
-    ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l-1 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e l-2))) kh)))
-  (neq ((exp (gen) (mul e l-2)) (gen))
-    ((exp (gen) (mul eB e (rec e-0) l-2)) (gen)) (D B) (e-0 eB)
-    (l-1 l-0) (e-0 l-1) (eB l-0) (e-0 l-0) (eB l-1))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eB e-0 l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) e-0)) (recv (exp (gen) (mul eB e (rec e-0) l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul e l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) e) l-2)) (send (cat (exp (gen) e) l-2)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) (mul eB e (rec e-0) (rec e-0) l-2)))
-      (send (cat (exp (gen) e-0) (mul eB e (rec e-0) (rec e-0) l-2))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 254)
-  (parent 163)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 e rndx) (w expt)
-    (l-1 e-0 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e-0 eB))) (l l-1)
-    (e e-0))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0 e-0))) (l l-0)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul (rec e) w e-0 e-0)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l-1 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e-0 e-0 eB)))
-        kh)))
-  (neq ((exp (gen) (mul w e-0 e-0)) (gen))
-    ((exp (gen) (mul w e-0 eB)) (gen)) (D B) (e-0 eB) (l-1 l-0)
-    (e-0 l-1) (eB l-0) (e-0 l-0) (eB l-1))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 e-0 eB)
-  (absent (eB (mul (rec e) w e-0 e-0)))
-  (operation nonce-test (added-absence eB (mul (rec e) w e-0 e-0))
-    (mul (rec e) w e-0 e-0) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) e-0)) (recv (exp (gen) (mul w e-0 eB)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e-0 e-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec e) w e-0 e-0)))
-      (send (cat (exp (gen) e) (mul (rec e) w e-0 e-0))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) (mul w eB)))
-      (send (cat (exp (gen) e-0) (mul w eB)))))
-  (label 255)
-  (parent 163)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB e rndx)
-    (w expt) (l-1 e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec e-0)))) (l l-1)
-    (e e-0))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w))) (l l-0)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l-1 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec e-0))) (gen)) (D B) (e-0 eB) (l-1 l-0)
-    (e-0 l-1) (eB l-0) (e-0 l-0) (eB l-1))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eB l-1 e-0)
-  (absent (e-0 (mul (rec eB) (rec e) w)))
-  (operation nonce-test (added-absence e-0 (mul (rec eB) (rec e) w))
-    (mul (rec eB) (rec e) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) e-0)) (recv (exp (gen) (mul w (rec e-0))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w)))
-      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0))))
-      (send (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0))))))
-  (label 256)
-  (parent 163)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 l-1 e eA e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul e (rec eA) e-0))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e-0)) (l l-1) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e-0) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l)
-    (e e-0))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) e-0)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul e e-0))) kh)))
-  (neq ((exp (gen) e-0) (gen)) ((exp (gen) (mul e (rec eA) e-0)) (gen))
-    (D B) (eA e) (l-0 l-1) (eA l-0) (e l-1) (eA l-1) (e l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 e eA)
-  (operation nonce-test
-    (contracted (eA-0 eA) (e-1 e-0) (w (mul (rec eA) e-0))) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) e-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) e-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e-0) (one)))
-      (send (cat (exp (gen) e-0) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e-0)))
-    ((recv (cat (exp (gen) e) (mul (rec eA) e-0)))
-      (send (cat (exp (gen) e) (mul (rec eA) e-0)))))
-  (label 257)
-  (parent 164)
-  (unrealized (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 e eA e-0 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul e (rec eA) e-0 l-2)))
-    (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e-0 l-2))) (l l-1) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e-0) l-2))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l)
-    (e e-0))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) e-0 l-2)))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (6 0))
-    ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul e e-0 l-2)))
-        kh)))
-  (neq ((exp (gen) (mul e-0 l-2)) (gen))
-    ((exp (gen) (mul e (rec eA) e-0 l-2)) (gen)) (D B) (eA e) (l-0 l-1)
-    (eA l-0) (e l-1) (eA l-1) (e l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 e eA l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) e-0 l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul e-0 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e-0) l-2)) (send (cat (exp (gen) e-0) l-2)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e-0)))
-    ((recv (cat (exp (gen) e) (mul (rec eA) e-0 l-2)))
-      (send (cat (exp (gen) e) (mul (rec eA) e-0 l-2))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 258)
-  (parent 164)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 e rndx) (w expt)
-    (l-1 e-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0 (rec eA)))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l-1) (e e-0))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul (rec e) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e-0))) kh)))
-  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e-0 (rec eA))) (gen))
-    (D B) (eA e-0) (l-0 l-1) (eA l-0) (e-0 l-1) (eA l-1) (e-0 l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 e-0 eA)
-  (absent (eA (mul (rec e) w)))
-  (operation nonce-test (added-absence eA (mul (rec e) w))
-    (mul (rec e) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e-0)) (recv (exp (gen) w)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec e) w)))
-      (send (cat (exp (gen) e) (mul (rec e) w))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) (mul w (rec eA))))
-      (send (cat (exp (gen) e-0) (mul w (rec eA))))))
-  (label 259)
-  (parent 164)
-  (unrealized (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA e rndx)
-    (w expt) (l-1 e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w))) (l l-1) (e e-0))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) w))
-  (deflistener eA)
-  (precedes ((0 2) (6 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w e-0))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w e-0)) (gen))
-    (D B) (eA e-0) (l-0 l-1) (eA l-0) (e-0 l-1) (eA l-1) (e-0 l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eA l-1 e-0)
-  (operation nonce-test (added-listener eA) (mul eA (rec e) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e-0)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) w)))
-      (send (cat (exp (gen) e) (mul eA (rec e) w))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))
-    ((recv eA) (send eA)))
-  (label 260)
-  (parent 164)
-  (unrealized (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 l-1 e eA eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e (rec eA) eB))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((5 2) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e eB))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul e (rec eA) eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (w (mul (rec eA) eB))) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) eB)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e) (mul (rec eA) eB)))
-      (send (cat (exp (gen) e) (mul (rec eA) eB)))))
-  (label 261)
-  (parent 165)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 e eA eB l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e (rec eA) eB l-2))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul e l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) l-2))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) eB l-2)))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((5 2) (6 0)) ((6 1) (0 3))
-    ((7 0) (6 0)) ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e eB l-2))) kh)))
-  (neq ((exp (gen) (mul e l-2)) (gen))
-    ((exp (gen) (mul e (rec eA) eB l-2)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) eB l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul e l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) l-2)) (send (cat (exp (gen) e) l-2)))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e) (mul (rec eA) eB l-2)))
-      (send (cat (exp (gen) e) (mul (rec eA) eB l-2))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 262)
-  (parent 165)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB rndx)
-    (w expt) (l-1 e eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w e))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul (rec eB) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (deflistener (cat (exp (gen) e) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((5 2) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e)) (gen))
-    ((exp (gen) (mul w e (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eB eA)
-  (absent (eA (mul (rec eB) w)))
-  (operation nonce-test (added-absence eA (mul (rec eB) w))
-    (mul (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec eB) w)))
-      (send (cat (exp (gen) e) (mul (rec eB) w))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e) (mul w (rec eA))))
-      (send (cat (exp (gen) e) (mul w (rec eA))))))
-  (label 263)
-  (parent 165)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA rndx)
-    (w expt) (l-1 e eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w e))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (deflistener (cat (exp (gen) e) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((5 2) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e eB))) kh)))
-  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB)
-  (absent (eB (mul eA w)))
-  (operation nonce-test (added-absence eB (mul eA w)) (mul eA w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA w)))
-      (send (cat (exp (gen) e) (mul eA w))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e) (mul w eB)))
-      (send (cat (exp (gen) e) (mul w eB)))))
-  (label 264)
-  (parent 165)
-  (unrealized (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 peer-0 name) (hl hl-0 base)
-    (l l-0 l-1 l-2 eA eB e e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) (mul (rec eA) eB e (rec e-0))))
-  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-2)
-    (e e-0))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 2) (6 0)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA eB)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (e-1 e)
-      (w (mul (rec eA) eB e (rec e-0))) (e-2 e-0)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) (mul (rec eA) eB e (rec e-0))))
-      (send (cat (exp (gen) e-0) (mul (rec eA) eB e (rec e-0)))))
-    ((recv (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))
-      (send (exp (gen) e-0))))
-  (label 265)
-  (parent 166)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 peer-0 self-1 name)
-    (hl hl-0 base) (l l-0 l-1 l-2 eA eB e e-0 l-3 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e l-3)))
-    (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-3))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) l-3))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) (mul (rec eA) eB e (rec e-0) l-3)))
-  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-2)
-    (e e-0))
-  (defstrand ltx-gen 2 (self self-1) (l l-3))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 2) (6 0))
-    ((8 0) (6 0)) ((8 1) (4 0)))
-  (fn-of ("principal-of" (l-3 self-1) (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e l-3))) kh)))
-  (neq ((exp (gen) (mul e l-3)) (gen))
-    ((exp (gen) (mul (rec eA) eB e l-3)) (gen)) (D B) (eA eB) (l-0 l-1)
-    (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA eB l-3)
-  (operation nonce-test (added-strand ltx-gen 2) l-3 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e l-3)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul e l-3))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) l-3)) (send (cat (exp (gen) e) l-3)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) (mul (rec eA) eB e (rec e-0) l-3)))
-      (send (cat (exp (gen) e-0) (mul (rec eA) eB e (rec e-0) l-3))))
-    ((recv (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))
-      (send (exp (gen) e-0)))
-    ((send (enc "cert" (exp (gen) l-3) self-1 (privk self-1)))
-      (send l-3)))
-  (label 266)
-  (parent 166)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 peer-0 name) (hl hl-0 base)
-    (l l-0 l-1 l-2 eB e rndx) (w expt) (e-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0 (rec eA)))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w e-0))) (l l-1)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w e-0)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) (mul w (rec eA))))
-  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-2)
-    (e e-0))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 2) (6 0)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e-0))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e-0)) (gen))
-    ((exp (gen) (mul w e-0 (rec eA))) (gen)) (D B) (eA eB) (l-0 l-1)
-    (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eB eA)
-  (absent (eA (mul (rec eB) (rec e) w e-0)))
-  (operation nonce-test (added-absence eA (mul (rec eB) (rec e) w e-0))
-    (mul (rec eB) (rec e) w e-0) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w e-0)))
-      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w e-0))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) (mul w (rec eA))))
-      (send (cat (exp (gen) e-0) (mul w (rec eA)))))
-    ((recv (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))
-      (send (exp (gen) e-0))))
-  (label 267)
-  (parent 166)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 peer-0 name) (hl hl-0 base)
-    (l l-0 l-1 l-2 eA e rndx) (w expt) (e-0 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0 eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w e-0))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) w e-0)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) (mul w eB)))
-  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-2)
-    (e e-0))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 2) (6 0)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w e-0 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w e-0)) (gen))
-    ((exp (gen) (mul w e-0 eB)) (gen)) (D B) (eA eB) (l-0 l-1) (eA l-0)
-    (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA eB)
-  (absent (eB (mul eA (rec e) w e-0)))
-  (operation nonce-test (added-absence eB (mul eA (rec e) w e-0))
-    (mul eA (rec e) w e-0) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) w e-0)))
-      (send (cat (exp (gen) e) (mul eA (rec e) w e-0))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) (mul w eB)))
-      (send (cat (exp (gen) e-0) (mul w eB))))
-    ((recv (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))
-      (send (exp (gen) e-0))))
-  (label 268)
-  (parent 166)
-  (unrealized (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 eA eB e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eA eB l-1)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (e-0 e)
-      (w (mul (rec eA) eB e (rec l-1))) (l-2 l-1)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1))))))
-  (label 269)
-  (parent 167)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 eA eB e l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e l-2)))
-    (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-2))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) l-2))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1) l-2)))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (6 0))
-    ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e l-2))) kh)))
-  (neq ((exp (gen) (mul e l-2)) (gen))
-    ((exp (gen) (mul (rec eA) eB e l-2)) (gen)) (D B) (eA eB) (l-0 l-1)
-    (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eA eB l-1 l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul e l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) l-2)) (send (cat (exp (gen) e) l-2)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1) l-2)))
-      (send (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1) l-2))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 270)
-  (parent 167)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB e rndx)
-    (w expt) (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-1))) (l l-1)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l-0 l-1)
-    (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eB l-1 eA)
-  (absent (eA (mul (rec eB) (rec e) w l-1)))
-  (operation nonce-test (added-absence eA (mul (rec eB) (rec e) w l-1))
-    (mul (rec eB) (rec e) w l-1) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1)))
-      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec eA))))))
-  (label 271)
-  (parent 167)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA e rndx)
-    (w expt) (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1 eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-1))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) w l-1)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-1) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l-0 l-1) (eA l-0)
-    (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eA l-1 eB)
-  (absent (eB (mul eA (rec e) w l-1)))
-  (operation nonce-test (added-absence eB (mul eA (rec e) w l-1))
-    (mul eA (rec e) w l-1) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) w l-1)))
-      (send (cat (exp (gen) e) (mul eA (rec e) w l-1))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-1) (mul w eB)))
-      (send (cat (exp (gen) l-1) (mul w eB)))))
-  (label 272)
-  (parent 167)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA eB e rndx)
-    (w expt) (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) w)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l-1)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eA eB l-1)
-  (absent (l-1 (mul eA (rec eB) (rec e) w)))
-  (operation nonce-test (added-absence l-1 (mul eA (rec eB) (rec e) w))
-    (mul eA (rec eB) (rec e) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))
-      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) w))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1))))))
-  (label 273)
-  (parent 167)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 eA eB e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB e))) (l l-1)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) e)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 D) (l-0 B))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))
-    (D B) (eA eB) (l-1 l-0) (eA l-1) (eB l-0) (eA l-0) (eB l-1))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eA eB l-1)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (e-0 e)
-      (w (mul (rec eA) eB e (rec l-1))) (l-2 l-1)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1))))))
-  (label 274)
-  (parent 168)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 eA eB e l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB e l-2)))
-    (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul e l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) e) l-2))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1) l-2)))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (6 0))
-    ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 D) (l-0 B))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e l-2))) kh)))
-  (neq ((exp (gen) (mul e l-2)) (gen))
-    ((exp (gen) (mul (rec eA) eB e l-2)) (gen)) (D B) (eA eB) (l-1 l-0)
-    (eA l-1) (eB l-0) (eA l-0) (eB l-1))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eA eB l-1 l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul e l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) e) l-2)) (send (cat (exp (gen) e) l-2)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1) l-2)))
-      (send (cat (exp (gen) l-1) (mul (rec eA) eB e (rec l-1) l-2))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 275)
-  (parent 168)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB e rndx)
-    (w expt) (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l-1)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w l-1))) (l l-0)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 D) (l-0 B))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l-1 l-0)
-    (eA l-1) (eB l-0) (eA l-0) (eB l-1))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eB l-1 eA)
-  (absent (eA (mul (rec eB) (rec e) w l-1)))
-  (operation nonce-test (added-absence eA (mul (rec eB) (rec e) w l-1))
-    (mul (rec eB) (rec e) w l-1) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1)))
-      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec eA))))))
-  (label 276)
-  (parent 168)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA e rndx)
-    (w expt) (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) w l-1)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-1) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 D) (l-0 B))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l-1 l-0) (eA l-1)
-    (eB l-0) (eA l-0) (eB l-1))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eA l-1 eB)
-  (absent (eB (mul eA (rec e) w l-1)))
-  (operation nonce-test (added-absence eB (mul eA (rec e) w l-1))
-    (mul eA (rec e) w l-1) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) w l-1)))
-      (send (cat (exp (gen) e) (mul eA (rec e) w l-1))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-1) (mul w eB)))
-      (send (cat (exp (gen) l-1) (mul w eB)))))
-  (label 277)
-  (parent 168)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA eB e rndx)
-    (w expt) (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) w))) (l l-0)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 D) (l-0 B))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l-1 l-0) (eA l-1) (eB l-0) (eA l-0) (eB l-1))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eA eB l-1)
-  (absent (l-1 (mul eA (rec eB) (rec e) w)))
-  (operation nonce-test (added-absence l-1 (mul eA (rec eB) (rec e) w))
-    (mul eA (rec eB) (rec e) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))
-      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) w))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1))))))
-  (label 278)
-  (parent 168)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eA eB e l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-2) (mul (rec eA) eB e (rec l-2))))
-  (defstrand ltx-gen 1 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (4 0))
-    ((7 0) (6 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA eB l-2)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (e-0 e)
-      (w (mul (rec eA) eB e (rec l-2))) (l-3 l-2)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-2) (mul (rec eA) eB e (rec l-2))))
-      (send (cat (exp (gen) l-2) (mul (rec eA) eB e (rec l-2)))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))
-  (label 279)
-  (parent 169)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eA eB e l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e l-2)))
-    (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-2))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) l-2))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-2) (mul (rec eA) eB e)))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (6 0))
-    ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e l-2))) kh)))
-  (neq ((exp (gen) (mul e l-2)) (gen))
-    ((exp (gen) (mul (rec eA) eB e l-2)) (gen)) (D B) (eA eB) (l-0 l-1)
-    (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA eB l-2)
-  (operation nonce-test (displaced 7 8 ltx-gen 2) l-3 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul e l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) l-2)) (send (cat (exp (gen) e) l-2)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-2) (mul (rec eA) eB e)))
-      (send (cat (exp (gen) l-2) (mul (rec eA) eB e))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 280)
-  (parent 169)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 self-1 name) (hl base)
-    (l l-0 l-1 eA eB e l-2 l-3 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e l-3)))
-    (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-3))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) l-3))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-2) (mul (rec eA) eB e (rec l-2) l-3)))
-  (defstrand ltx-gen 1 (self self-0) (l l-2))
-  (defstrand ltx-gen 2 (self self-1) (l l-3))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (4 0))
-    ((7 0) (6 0)) ((8 0) (6 0)) ((8 1) (4 0)))
-  (fn-of ("principal-of" (l-3 self-1) (l-2 self-0) (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e l-3))) kh)))
-  (neq ((exp (gen) (mul e l-3)) (gen))
-    ((exp (gen) (mul (rec eA) eB e l-3)) (gen)) (D B) (eA eB) (l-0 l-1)
-    (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA eB l-2 l-3)
-  (operation nonce-test (added-strand ltx-gen 2) l-3 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e l-3)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul e l-3))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) l-3)) (send (cat (exp (gen) e) l-3)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-2) (mul (rec eA) eB e (rec l-2) l-3)))
-      (send (cat (exp (gen) l-2) (mul (rec eA) eB e (rec l-2) l-3))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-3) self-1 (privk self-1)))
-      (send l-3)))
-  (label 281)
-  (parent 169)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eB e rndx) (w expt) (l-2 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-2 (rec eA)))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-2))) (l l-1)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w l-2)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-2) (mul w (rec eA))))
-  (defstrand ltx-gen 1 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (4 0))
-    ((7 0) (6 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l-2))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-2)) (gen))
-    ((exp (gen) (mul w l-2 (rec eA))) (gen)) (D B) (eA eB) (l-0 l-1)
-    (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eB l-2 eA)
-  (absent (eA (mul (rec eB) (rec e) w l-2)))
-  (operation nonce-test (added-absence eA (mul (rec eB) (rec e) w l-2))
-    (mul (rec eB) (rec e) w l-2) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w l-2)))
-      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w l-2))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-2) (mul w (rec eA))))
-      (send (cat (exp (gen) l-2) (mul w (rec eA)))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))
-  (label 282)
-  (parent 169)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eA e rndx) (w expt) (l-2 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-2 eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-2))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) w l-2)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-2) (mul w eB)))
-  (defstrand ltx-gen 1 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (4 0))
-    ((7 0) (6 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w l-2 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-2)) (gen))
-    ((exp (gen) (mul w l-2 eB)) (gen)) (D B) (eA eB) (l-0 l-1) (eA l-0)
-    (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA l-2 eB)
-  (absent (eB (mul eA (rec e) w l-2)))
-  (operation nonce-test (added-absence eB (mul eA (rec e) w l-2))
-    (mul eA (rec e) w l-2) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) w l-2)))
-      (send (cat (exp (gen) e) (mul eA (rec e) w l-2))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-2) (mul w eB)))
-      (send (cat (exp (gen) l-2) (mul w eB))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))
-  (label 283)
-  (parent 169)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eA eB e rndx) (w expt) (l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) w)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l-1)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2))))
-  (defstrand ltx-gen 1 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (4 0))
-    ((7 0) (6 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA eB l-2)
-  (absent (l-2 (mul eA (rec eB) (rec e) w)))
-  (operation nonce-test (added-absence l-2 (mul eA (rec eB) (rec e) w))
-    (mul eA (rec eB) (rec e) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))
-      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) w))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-2) (mul w (rec l-2))))
-      (send (cat (exp (gen) l-2) (mul w (rec l-2)))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))
-  (label 284)
-  (parent 169)
-  (unrealized (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA eB l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-0))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-0)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (deflistener (cat (gen) (mul (rec eA) eB l-0)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (l-1 l-0) (w (mul (rec eA) eB l-0)))
-    (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((recv (cat (gen) (mul (rec eA) eB l-0)))
-      (send (cat (gen) (mul (rec eA) eB l-0)))))
-  (label 285)
-  (parent 170)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-0 l-1)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-0 l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) l-1))
-  (deflistener (cat (gen) (mul (rec eA) eB l-0 l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0 l-1))) kh)))
-  (neq ((exp (gen) (mul l-0 l-1)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-0 l-1)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0 l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
-    ((recv (cat (gen) (mul (rec eA) eB l-0 l-1)))
-      (send (cat (gen) (mul (rec eA) eB l-0 l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 286)
-  (parent 170)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB l-0 rndx) (w expt) (eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))
-  (deflistener (cat (gen) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 eA)
-  (absent (eA (mul (rec eB) (rec l-0) w)))
-  (operation nonce-test (added-absence eA (mul (rec eB) (rec l-0) w))
-    (mul (rec eB) (rec l-0) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w))))
-    ((recv (cat (gen) (mul w (rec eA))))
-      (send (cat (gen) (mul w (rec eA))))))
-  (label 287)
-  (parent 170)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA l-0 rndx) (w expt) (eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w)))
-  (deflistener (cat (gen) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 eB)
-  (absent (eB (mul eA (rec l-0) w)))
-  (operation nonce-test (added-absence eB (mul eA (rec l-0) w))
-    (mul eA (rec l-0) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w))))
-    ((recv (cat (gen) (mul w eB))) (send (cat (gen) (mul w eB)))))
-  (label 288)
-  (parent 170)
-  (unrealized (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA eB rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) w)))
-  (deflistener (cat (gen) (mul w l-0)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0)
-  (absent (l-0 (mul eA (rec eB) w)))
-  (operation nonce-test (added-absence l-0 (mul eA (rec eB) w))
-    (mul eA (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) w))))
-    ((recv (cat (gen) (mul w l-0))) (send (cat (gen) (mul w l-0)))))
-  (label 289)
-  (parent 170)
-  (unrealized (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eB l-0 (rec e)))) (l l)
-    (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-0)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (deflistener (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul eB l-0 (rec e))) (gen))
-    (D B) (e eB) (l l-0) (e l) (eB l-0) (e l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 e)
-  (operation nonce-test
-    (contracted (eB-0 eB) (l-1 l-0) (w (mul eB l-0 (rec e) (rec e)))
-      (e-0 e)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul eB l-0 (rec e))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((recv (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e))))
-      (send (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e))))))
-  (label 290)
-  (parent 171)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eB l-0 (rec e) l-1))) (l l)
-    (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-0 l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) l-1))
-  (deflistener (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e) l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0 l-1))) kh)))
-  (neq ((exp (gen) (mul l-0 l-1)) (gen))
-    ((exp (gen) (mul eB l-0 (rec e) l-1)) (gen)) (D B) (e eB) (l l-0)
-    (e l) (eB l-0) (e l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 e l-1)
-  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul eB l-0 (rec e) l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
-    ((recv (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e) l-1)))
-      (send (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e) l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 291)
-  (parent 171)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e eB))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l) (mul (rec l) w e e)))
-  (deflistener (cat (exp (gen) e) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e eB))) kh)))
-  (neq ((exp (gen) (mul w e e)) (gen)) ((exp (gen) (mul w e eB)) (gen))
-    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e eB)
-  (absent (eB (mul (rec l) w e e)))
-  (operation nonce-test (added-absence eB (mul (rec l) w e e))
-    (mul (rec l) w e e) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul (rec l) w e e)))
-      (send (cat (exp (gen) l) (mul (rec l) w e e))))
-    ((recv (cat (exp (gen) e) (mul w eB)))
-      (send (cat (exp (gen) e) (mul w eB)))))
-  (label 292)
-  (parent 171)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eB rndx) (w expt) (l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-0))) (l l) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w e e l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) w e e)))
-  (deflistener (cat (exp (gen) e) (mul w l-0)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e l-0))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e e l-0)) (gen))
-    ((exp (gen) (mul w e l-0)) (gen)) (D B) (e eB) (l l-0) (e l)
-    (eB l-0) (e l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eB l e l-0)
-  (absent (l-0 (mul (rec eB) w e e)))
-  (operation nonce-test (added-absence l-0 (mul (rec eB) w e e))
-    (mul (rec eB) w e e) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul w e l-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e e l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) w e e)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) w e e))))
-    ((recv (cat (exp (gen) e) (mul w l-0)))
-      (send (cat (exp (gen) e) (mul w l-0)))))
-  (label 293)
-  (parent 171)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eB l rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w (rec e)))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l) (mul (rec eB) (rec l) w)))
-  (deflistener (cat (exp (gen) e) (mul w (rec e) (rec e))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec e))) (gen)) (D B) (e eB) (l-0 l) (e l-0)
-    (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eB l l-0 e)
-  (absent (e (mul (rec eB) (rec l) w)))
-  (operation nonce-test (added-absence e (mul (rec eB) (rec l) w))
-    (mul (rec eB) (rec l) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w (rec e)))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul (rec eB) (rec l) w)))
-      (send (cat (exp (gen) l) (mul (rec eB) (rec l) w))))
-    ((recv (cat (exp (gen) e) (mul w (rec e) (rec e))))
-      (send (cat (exp (gen) e) (mul w (rec e) (rec e))))))
-  (label 294)
-  (parent 171)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l e eA l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e (rec eA) l-0))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-0)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) l-0)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul e (rec eA) l-0)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l e eA l-0)
-  (operation nonce-test
-    (contracted (eA-0 eA) (w (mul (rec eA) l-0)) (l-1 l-0)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((recv (cat (exp (gen) e) (mul (rec eA) l-0)))
-      (send (cat (exp (gen) e) (mul (rec eA) l-0)))))
-  (label 295)
-  (parent 172)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l e eA l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e (rec eA) l-0 l-1))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-0 l-1))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) l-1))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) l-0 l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-0 l-1))) kh)))
-  (neq ((exp (gen) (mul l-0 l-1)) (gen))
-    ((exp (gen) (mul e (rec eA) l-0 l-1)) (gen)) (D B) (eA e) (l l-0)
-    (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l e eA l-0 l-1)
-  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) l-0 l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul l-0 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
-    ((recv (cat (exp (gen) e) (mul (rec eA) l-0 l-1)))
-      (send (cat (exp (gen) e) (mul (rec eA) l-0 l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 296)
-  (parent 172)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0))))
-  (deflistener (cat (exp (gen) e) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))
-  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e (rec eA))) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e eA)
-  (absent (eA (mul w (rec l-0))))
-  (operation nonce-test (added-absence eA (mul w (rec l-0)))
-    (mul w (rec l-0)) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) w)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec l-0))))
-      (send (cat (exp (gen) l-0) (mul w (rec l-0)))))
-    ((recv (cat (exp (gen) e) (mul w (rec eA))))
-      (send (cat (exp (gen) e) (mul w (rec eA))))))
-  (label 297)
-  (parent 172)
-  (unrealized (0 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA rndx) (w expt) (e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-0))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-0))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA w)))
-  (deflistener (cat (exp (gen) e) (mul w l-0)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-0))) kh)))
-  (neq ((exp (gen) (mul eA w l-0)) (gen))
-    ((exp (gen) (mul w e l-0)) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA e l-0)
-  (absent (l-0 (mul eA w)))
-  (operation nonce-test (added-absence l-0 (mul eA w)) (mul eA w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA w)))
-      (send (cat (exp (gen) l-0) (mul eA w))))
-    ((recv (cat (exp (gen) e) (mul w l-0)))
-      (send (cat (exp (gen) e) (mul w l-0)))))
-  (label 298)
-  (parent 172)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 eA eB l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB l-1))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-1)) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e))))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))
-  (fn-of ("principal-of" (l-1 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))
-    (D B) (eA eB) (l l-1) (eA l) (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-1)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (l-2 l-1)
-      (w (mul (rec eA) eB l-1 (rec e))) (e-0 e)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((recv (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e))))
-      (send (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e)))))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 299)
-  (parent 173)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 eA eB l-1 e l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB l-1 l-2)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-1 l-2))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) l-2))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e) l-2)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 0) (5 0))
-    ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-1 l-2))) kh)))
-  (neq ((exp (gen) (mul l-1 l-2)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-1 l-2)) (gen)) (D B) (eA eB) (l l-1)
-    (eA l) (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-1 l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))
-    ((recv (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e) l-2)))
-      (send (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e) l-2))))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 300)
-  (parent 173)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB l-1 rndx)
-    (w expt) (e eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w e))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e)))
-  (deflistener (cat (exp (gen) e) (mul w (rec eA))))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))
-  (fn-of ("principal-of" (l-1 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e)) (gen))
-    ((exp (gen) (mul w e (rec eA))) (gen)) (D B) (eA eB) (l l-1) (eA l)
-    (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-1 eA)
-  (absent (eA (mul (rec eB) (rec l-1) w e)))
-  (operation nonce-test (added-absence eA (mul (rec eB) (rec l-1) w e))
-    (mul (rec eB) (rec l-1) w e) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e))))
-    ((recv (cat (exp (gen) e) (mul w (rec eA))))
-      (send (cat (exp (gen) e) (mul w (rec eA)))))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 301)
-  (parent 173)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA l-1 rndx)
-    (w expt) (e eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w e))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec l-1) w e)))
-  (deflistener (cat (exp (gen) e) (mul w eB)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))
-  (fn-of ("principal-of" (l-1 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w e eB))) kh)))
-  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e eB)) (gen))
-    (D B) (eA eB) (l l-1) (eA l) (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-1 eB)
-  (absent (eB (mul eA (rec l-1) w e)))
-  (operation nonce-test (added-absence eB (mul eA (rec l-1) w e))
-    (mul eA (rec l-1) w e) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec l-1) w e)))
-      (send (cat (exp (gen) l-1) (mul eA (rec l-1) w e))))
-    ((recv (cat (exp (gen) e) (mul w eB)))
-      (send (cat (exp (gen) e) (mul w eB))))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 302)
-  (parent 173)
-  (unrealized (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA eB rndx)
-    (w expt) (e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w e l-1))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w e)))
-  (deflistener (cat (exp (gen) e) (mul w l-1)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))
-  (fn-of ("principal-of" (l-1 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w e l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w e l-1)) (gen))
-    ((exp (gen) (mul w e l-1)) (gen)) (D B) (eA eB) (l l-1) (eA l)
-    (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-1)
-  (absent (l-1 (mul eA (rec eB) w e)))
-  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w e))
-    (mul eA (rec eB) w e) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w e)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) w e))))
-    ((recv (cat (exp (gen) e) (mul w l-1)))
-      (send (cat (exp (gen) e) (mul w l-1))))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 303)
-  (parent 173)
-  (unrealized (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l l-0 eA eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-0 (rec eA) eB))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-0)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eA) eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-0 eB))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul l-0 (rec eA) eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (w (mul (rec eA) eB))) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-0 (rec eA) eB)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB)))
-      (send (cat (exp (gen) l-0) (mul (rec eA) eB)))))
-  (label 304)
-  (parent 174)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-0 (rec eA) eB l-1)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-0 l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) l-1))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eA) eB l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-0 eB l-1))) kh)))
-  (neq ((exp (gen) (mul l-0 l-1)) (gen))
-    ((exp (gen) (mul l-0 (rec eA) eB l-1)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-0 (rec eA) eB l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
-    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB l-1)))
-      (send (cat (exp (gen) l-0) (mul (rec eA) eB l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 305)
-  (parent 174)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) w)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 eA)
-  (absent (eA (mul (rec eB) w)))
-  (operation nonce-test (added-absence eA (mul (rec eB) w))
-    (mul (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) w)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) w))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))
-      (send (cat (exp (gen) l-0) (mul w (rec eA))))))
-  (label 306)
-  (parent 174)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA w)))
-  (deflistener (cat (exp (gen) l-0) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-0)) (gen))
-    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 eB)
-  (absent (eB (mul eA w)))
-  (operation nonce-test (added-absence eB (mul eA w)) (mul eA w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA w)))
-      (send (cat (exp (gen) l-0) (mul eA w))))
-    ((recv (cat (exp (gen) l-0) (mul w eB)))
-      (send (cat (exp (gen) l-0) (mul w eB)))))
-  (label 307)
-  (parent 174)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB l))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l) (one)))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l))) kh)))
-  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (l-1 l)
-      (w (mul (rec eA) eB l (rec l-0))) (l-2 l-0)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0))))
-      (send (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0))))))
-  (label 308)
-  (parent 175)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (eA eB l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB l l-1))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l l-1))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l) l-1))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0) l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l l-1))) kh)))
-  (neq ((exp (gen) (mul l l-1)) (gen))
-    ((exp (gen) (mul (rec eA) eB l l-1)) (gen)) (D B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eA eB l l-0 l-1)
-  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))
-    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0) l-1)))
-      (send (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0) l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 309)
-  (parent 175)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eB l rndx) (w expt) (l-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 (rec eA)))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-0))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eB l l-0 eA)
-  (absent (eA (mul (rec eB) (rec l) w l-0)))
-  (operation nonce-test (added-absence eA (mul (rec eB) (rec l) w l-0))
-    (mul (rec eB) (rec l) w l-0) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0)))
-      (send (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))
-      (send (cat (exp (gen) l-0) (mul w (rec eA))))))
-  (label 310)
-  (parent 175)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA l rndx) (w expt) (l-0 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l) (mul eA (rec l) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-0)) (gen))
-    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eA l l-0 eB)
-  (absent (eB (mul eA (rec l) w l-0)))
-  (operation nonce-test (added-absence eB (mul eA (rec l) w l-0))
-    (mul eA (rec l) w l-0) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul eA (rec l) w l-0)))
-      (send (cat (exp (gen) l) (mul eA (rec l) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w eB)))
-      (send (cat (exp (gen) l-0) (mul w eB)))))
-  (label 311)
-  (parent 175)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB rndx) (w expt) (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l l-0))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) w l)))
-  (deflistener (cat (exp (gen) l) (mul w l-0)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l D) (l-0 B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l l-0)) (gen))
-    ((exp (gen) (mul w l l-0)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eA eB l l-0)
-  (absent (l-0 (mul eA (rec eB) w l)))
-  (operation nonce-test (added-absence l-0 (mul eA (rec eB) w l))
-    (mul eA (rec eB) w l) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l l-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) w l)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) w l))))
-    ((recv (cat (exp (gen) l) (mul w l-0)))
-      (send (cat (exp (gen) l) (mul w l-0)))))
-  (label 312)
-  (parent 175)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB l rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l) (mul eA (rec eB) (rec l) w)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eA eB l l-0)
-  (absent (l-0 (mul eA (rec eB) (rec l) w)))
-  (operation nonce-test (added-absence l-0 (mul eA (rec eB) (rec l) w))
-    (mul eA (rec eB) (rec l) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul eA (rec eB) (rec l) w)))
-      (send (cat (exp (gen) l) (mul eA (rec eB) (rec l) w))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec l-0))))
-      (send (cat (exp (gen) l-0) (mul w (rec l-0))))))
-  (label 313)
-  (parent 175)
-  (unrealized (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-0))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-0)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (l-2 l-0)
-      (w (mul (rec eA) eB l-0 (rec l-1))) (l-3 l-1)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 314)
-  (parent 176)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-0 l-1)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-0 l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) l-1))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB l-0)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0 l-1))) kh)))
-  (neq ((exp (gen) (mul l-0 l-1)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-0 l-1)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0 l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-0)))
-      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-0))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 315)
-  (parent 176)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l eA eB l-0 l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-0 l-2)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-0 l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) l-2))
-  (deflistener
-    (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 0) (5 0)) ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0 l-2))) kh)))
-  (neq ((exp (gen) (mul l-0 l-2)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-0 l-2)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1 l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0 l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) l-2)) (send (cat (exp (gen) l-0) l-2)))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2)))
-      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 316)
-  (parent 176)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)
-    (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 l-1 eA)
-  (absent (eA (mul (rec eB) (rec l-0) w l-1)))
-  (operation nonce-test
-    (added-absence eA (mul (rec eB) (rec l-0) w l-1))
-    (mul (rec eB) (rec l-0) w l-1) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec eA)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 317)
-  (parent 176)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)
-    (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w eB)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 l-1 eB)
-  (absent (eB (mul eA (rec l-0) w l-1)))
-  (operation nonce-test (added-absence eB (mul eA (rec l-0) w l-1))
-    (mul eA (rec l-0) w l-1) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))
-      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w eB)))
-      (send (cat (exp (gen) l-1) (mul w eB))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 318)
-  (parent 176)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)
-    (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-0 l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-0 l-1))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w l-1)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-0 self) (l-1 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-0 l-1)))
-        kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-0 l-1)) (gen))
-    ((exp (gen) (mul w l-0 l-1)) (gen)) (D B) (eA eB) (l l-1) (eA l)
-    (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (absent (l-1 (mul eA (rec eB) w l-0)))
-  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w l-0))
-    (mul eA (rec eB) w l-0) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB))
-      (recv (exp (gen) (mul eA (rec eB) w l-0 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w l-1)))
-      (send (cat (exp (gen) l-0) (mul w l-1))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))
-  (label 319)
-  (parent 176)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (absent (l-1 (mul eA (rec eB) (rec l-0) w)))
-  (operation nonce-test
-    (added-absence l-1 (mul eA (rec eB) (rec l-0) w))
-    (mul eA (rec eB) (rec l-0) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 320)
-  (parent 176)
-  (unrealized (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA eB l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB l-0))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (deflistener (cat (gen) (mul (rec eA) eB l-0)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (l-1 l-0) (w (mul (rec eA) eB l-0)))
-    (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((recv (cat (gen) (mul (rec eA) eB l-0)))
-      (send (cat (gen) (mul (rec eA) eB l-0)))))
-  (label 321)
-  (parent 177)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB l-0 l-1))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-0 l-1))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) l-1))
-  (deflistener (cat (gen) (mul (rec eA) eB l-0 l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0 l-1))) kh)))
-  (neq ((exp (gen) (mul l-0 l-1)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-0 l-1)) (gen)) (D B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0 l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
-    ((recv (cat (gen) (mul (rec eA) eB l-0 l-1)))
-      (send (cat (gen) (mul (rec eA) eB l-0 l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 322)
-  (parent 177)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB l-0 rndx) (w expt) (eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w (rec eA)))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))
-  (deflistener (cat (gen) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 eA)
-  (absent (eA (mul (rec eB) (rec l-0) w)))
-  (operation nonce-test (added-absence eA (mul (rec eB) (rec l-0) w))
-    (mul (rec eB) (rec l-0) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w))))
-    ((recv (cat (gen) (mul w (rec eA))))
-      (send (cat (gen) (mul w (rec eA))))))
-  (label 323)
-  (parent 177)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA l-0 rndx) (w expt) (eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w)))
-  (deflistener (cat (gen) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 eB)
-  (absent (eB (mul eA (rec l-0) w)))
-  (operation nonce-test (added-absence eB (mul eA (rec l-0) w))
-    (mul eA (rec l-0) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w))))
-    ((recv (cat (gen) (mul w eB))) (send (cat (gen) (mul w eB)))))
-  (label 324)
-  (parent 177)
-  (unrealized (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA eB rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l-0))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) w)))
-  (deflistener (cat (gen) (mul w l-0)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0)
-  (absent (l-0 (mul eA (rec eB) w)))
-  (operation nonce-test (added-absence l-0 (mul eA (rec eB) w))
-    (mul eA (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) w))))
-    ((recv (cat (gen) (mul w l-0))) (send (cat (gen) (mul w l-0)))))
-  (label 325)
-  (parent 177)
-  (unrealized (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul eB l-0 (rec e)))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (deflistener (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul eB l-0 (rec e))) (gen))
-    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 e)
-  (operation nonce-test
-    (contracted (eB-0 eB) (w (mul eB l-0 (rec e) (rec e))) (l-1 l-0)
-      (e-0 e)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eB l-0 (rec e)))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((recv (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e))))
-      (send (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e))))))
-  (label 326)
-  (parent 178)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul eB l-0 (rec e) l-1))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-0 l-1))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) l-1))
-  (deflistener (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e) l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0 l-1))) kh)))
-  (neq ((exp (gen) (mul l-0 l-1)) (gen))
-    ((exp (gen) (mul eB l-0 (rec e) l-1)) (gen)) (D B) (e eB) (l-0 l)
-    (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 e l-1)
-  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eB l-0 (rec e) l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
-    ((recv (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e) l-1)))
-      (send (cat (exp (gen) e) (mul eB l-0 (rec e) (rec e) l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 327)
-  (parent 178)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e eB))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0) e e)))
-  (deflistener (cat (exp (gen) e) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e eB))) kh)))
-  (neq ((exp (gen) (mul w e e)) (gen)) ((exp (gen) (mul w e eB)) (gen))
-    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e eB)
-  (absent (eB (mul w (rec l-0) e e)))
-  (operation nonce-test (added-absence eB (mul w (rec l-0) e e))
-    (mul w (rec l-0) e e) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec l-0) e e)))
-      (send (cat (exp (gen) l-0) (mul w (rec l-0) e e))))
-    ((recv (cat (exp (gen) e) (mul w eB)))
-      (send (cat (exp (gen) e) (mul w eB)))))
-  (label 328)
-  (parent 178)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB rndx) (w expt) (e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e l-0))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w e e l-0))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) w e e)))
-  (deflistener (cat (exp (gen) e) (mul w l-0)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e l-0))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e e l-0)) (gen))
-    ((exp (gen) (mul w e l-0)) (gen)) (D B) (e eB) (l-0 l) (e l-0)
-    (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB e l-0)
-  (absent (l-0 (mul (rec eB) w e e)))
-  (operation nonce-test (added-absence l-0 (mul (rec eB) w e e))
-    (mul (rec eB) w e e) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e l-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e e l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) w e e)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) w e e))))
-    ((recv (cat (exp (gen) e) (mul w l-0)))
-      (send (cat (exp (gen) e) (mul w l-0)))))
-  (label 329)
-  (parent 178)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w (rec e)))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) w (rec l-0))))
-  (deflistener (cat (exp (gen) e) (mul w (rec e) (rec e))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec e))) (gen)) (D B) (e eB) (l-0 l) (e l-0)
-    (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 e)
-  (absent (e (mul (rec eB) w (rec l-0))))
-  (operation nonce-test (added-absence e (mul (rec eB) w (rec l-0)))
-    (mul (rec eB) w (rec l-0)) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w (rec e)))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) w (rec l-0))))
-      (send (cat (exp (gen) l-0) (mul (rec eB) w (rec l-0)))))
-    ((recv (cat (exp (gen) e) (mul w (rec e) (rec e))))
-      (send (cat (exp (gen) e) (mul w (rec e) (rec e))))))
-  (label 330)
-  (parent 178)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l e eA l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul e (rec eA) l-0))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) l-0)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul e (rec eA) l-0)) (gen))
-    (D B) (eA e) (l-0 l) (eA l-0) (e l) (eA l) (e l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l e eA l-0)
-  (operation nonce-test
-    (contracted (eA-0 eA) (l-1 l-0) (w (mul (rec eA) l-0))) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((recv (cat (exp (gen) e) (mul (rec eA) l-0)))
-      (send (cat (exp (gen) e) (mul (rec eA) l-0)))))
-  (label 331)
-  (parent 179)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l e eA l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul e (rec eA) l-0 l-1))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-0 l-1))) (l l) (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) l-1))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) l-0 l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-0 l-1))) kh)))
-  (neq ((exp (gen) (mul l-0 l-1)) (gen))
-    ((exp (gen) (mul e (rec eA) l-0 l-1)) (gen)) (D B) (eA e) (l-0 l)
-    (eA l-0) (e l) (eA l) (e l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l e eA l-0 l-1)
-  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) l-0 l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul l-0 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
-    ((recv (cat (exp (gen) e) (mul (rec eA) l-0 l-1)))
-      (send (cat (exp (gen) e) (mul (rec eA) l-0 l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 332)
-  (parent 179)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l) (mul (rec l) w)))
-  (deflistener (cat (exp (gen) e) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))
-  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e (rec eA))) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e eA)
-  (absent (eA (mul (rec l) w)))
-  (operation nonce-test (added-absence eA (mul (rec l) w))
-    (mul (rec l) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) w)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul (rec l) w)))
-      (send (cat (exp (gen) l) (mul (rec l) w))))
-    ((recv (cat (exp (gen) e) (mul w (rec eA))))
-      (send (cat (exp (gen) e) (mul w (rec eA))))))
-  (label 333)
-  (parent 179)
-  (unrealized (0 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA rndx) (w expt) (l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e l-0))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0))) (l l) (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul eA w)))
-  (deflistener (cat (exp (gen) e) (mul w l-0)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-0))) kh)))
-  (neq ((exp (gen) (mul eA w l-0)) (gen))
-    ((exp (gen) (mul w e l-0)) (gen)) (D B) (eA e) (l-0 l) (eA l-0)
-    (e l) (eA l) (e l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eA l e l-0)
-  (absent (l-0 (mul eA w)))
-  (operation nonce-test (added-absence l-0 (mul eA w)) (mul eA w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul eA w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA w)))
-      (send (cat (exp (gen) l-0) (mul eA w))))
-    ((recv (cat (exp (gen) e) (mul w l-0)))
-      (send (cat (exp (gen) e) (mul w l-0)))))
-  (label 334)
-  (parent 179)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 eA eB l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB l-1))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) l-1)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e))))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))
-  (fn-of ("principal-of" (l B) (l-1 D))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))
-    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-1)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (l-2 l-1)
-      (w (mul (rec eA) eB l-1 (rec e))) (e-0 e)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((recv (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e))))
-      (send (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e)))))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 335)
-  (parent 180)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 eA eB l-1 e l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB l-1 l-2))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul l-1 l-2))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-1) l-2))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e) l-2)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 0) (5 0))
-    ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l B) (l-1 D))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-1 l-2))) kh)))
-  (neq ((exp (gen) (mul l-1 l-2)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-1 l-2)) (gen)) (D B) (eA eB) (l-1 l)
-    (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-1 l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))
-    ((recv (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e) l-2)))
-      (send (cat (exp (gen) e) (mul (rec eA) eB l-1 (rec e) l-2))))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 336)
-  (parent 180)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB l-1 rndx)
-    (w expt) (e eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e (rec eA)))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w e))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e)))
-  (deflistener (cat (exp (gen) e) (mul w (rec eA))))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))
-  (fn-of ("principal-of" (l B) (l-1 D))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e)) (gen))
-    ((exp (gen) (mul w e (rec eA))) (gen)) (D B) (eA eB) (l-1 l)
-    (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-1 eA)
-  (absent (eA (mul (rec eB) (rec l-1) w e)))
-  (operation nonce-test (added-absence eA (mul (rec eB) (rec l-1) w e))
-    (mul (rec eB) (rec l-1) w e) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e))))
-    ((recv (cat (exp (gen) e) (mul w (rec eA))))
-      (send (cat (exp (gen) e) (mul w (rec eA)))))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 337)
-  (parent 180)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA l-1 rndx)
-    (w expt) (e eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e eB))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA w e))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec l-1) w e)))
-  (deflistener (cat (exp (gen) e) (mul w eB)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))
-  (fn-of ("principal-of" (l B) (l-1 D))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w e eB))) kh)))
-  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e eB)) (gen))
-    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-1 eB)
-  (absent (eB (mul eA (rec l-1) w e)))
-  (operation nonce-test (added-absence eB (mul eA (rec l-1) w e))
-    (mul eA (rec l-1) w e) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec l-1) w e)))
-      (send (cat (exp (gen) l-1) (mul eA (rec l-1) w e))))
-    ((recv (cat (exp (gen) e) (mul w eB)))
-      (send (cat (exp (gen) e) (mul w eB))))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 338)
-  (parent 180)
-  (unrealized (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA eB rndx)
-    (w expt) (e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e l-1))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) w e l-1)))
-    (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w e)))
-  (deflistener (cat (exp (gen) e) (mul w l-1)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)))
-  (fn-of ("principal-of" (l B) (l-1 D))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w e l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w e l-1)) (gen))
-    ((exp (gen) (mul w e l-1)) (gen)) (D B) (eA eB) (l-1 l) (eA l-1)
-    (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-1)
-  (absent (l-1 (mul eA (rec eB) w e)))
-  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w e))
-    (mul eA (rec eB) w e) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w e)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) w e))))
-    ((recv (cat (exp (gen) e) (mul w l-1)))
-      (send (cat (exp (gen) e) (mul w l-1))))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 339)
-  (parent 180)
-  (unrealized (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l) (one)))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l))) kh)))
-  (neq ((exp (gen) l) (gen)) ((exp (gen) (mul (rec eA) eB l)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eA eB l l-0)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (l-1 l)
-      (w (mul (rec eA) eB l (rec l-0))) (l-2 l-0)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0))))
-      (send (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0))))))
-  (label 340)
-  (parent 181)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (eA eB l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l l-1))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l) l-1))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0) l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l l-1))) kh)))
-  (neq ((exp (gen) (mul l l-1)) (gen))
-    ((exp (gen) (mul (rec eA) eB l l-1)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eA eB l l-0 l-1)
-  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))
-    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0) l-1)))
-      (send (cat (exp (gen) l-0) (mul (rec eA) eB l (rec l-0) l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 341)
-  (parent 181)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eB l rndx) (w expt) (l-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eB l l-0 eA)
-  (absent (eA (mul (rec eB) (rec l) w l-0)))
-  (operation nonce-test (added-absence eA (mul (rec eB) (rec l) w l-0))
-    (mul (rec eB) (rec l) w l-0) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0)))
-      (send (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))
-      (send (cat (exp (gen) l-0) (mul w (rec eA))))))
-  (label 342)
-  (parent 181)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA l rndx) (w expt) (l-0 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l) (mul eA (rec l) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-0)) (gen))
-    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eA l l-0 eB)
-  (absent (eB (mul eA (rec l) w l-0)))
-  (operation nonce-test (added-absence eB (mul eA (rec l) w l-0))
-    (mul eA (rec l) w l-0) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul eA (rec l) w l-0)))
-      (send (cat (exp (gen) l) (mul eA (rec l) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w eB)))
-      (send (cat (exp (gen) l-0) (mul w eB)))))
-  (label 343)
-  (parent 181)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB rndx) (w expt) (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l l-0))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l l-0)))
-    (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) w l)))
-  (deflistener (cat (exp (gen) l) (mul w l-0)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l l-0)) (gen))
-    ((exp (gen) (mul w l l-0)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eA eB l l-0)
-  (absent (l-0 (mul eA (rec eB) w l)))
-  (operation nonce-test (added-absence l-0 (mul eA (rec eB) w l))
-    (mul eA (rec eB) w l) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l l-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) w l)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) w l))))
-    ((recv (cat (exp (gen) l) (mul w l-0)))
-      (send (cat (exp (gen) l) (mul w l-0)))))
-  (label 344)
-  (parent 181)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA eB l rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l) (mul eA (rec eB) (rec l) w)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eA eB l l-0)
-  (absent (l-0 (mul eA (rec eB) (rec l) w)))
-  (operation nonce-test (added-absence l-0 (mul eA (rec eB) (rec l) w))
-    (mul eA (rec eB) (rec l) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul eA (rec eB) (rec l) w)))
-      (send (cat (exp (gen) l) (mul eA (rec eB) (rec l) w))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec l-0))))
-      (send (cat (exp (gen) l-0) (mul w (rec l-0))))))
-  (label 345)
-  (parent 181)
-  (unrealized (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l l-0 eA eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-0 (rec eA) eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eA) eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-0 eB))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul l-0 (rec eA) eB)) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (w (mul (rec eA) eB))) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-0 (rec eA) eB)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB)))
-      (send (cat (exp (gen) l-0) (mul (rec eA) eB)))))
-  (label 346)
-  (parent 182)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-0 (rec eA) eB l-1))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-0 l-1))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) l-1))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eA) eB l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-0 eB l-1))) kh)))
-  (neq ((exp (gen) (mul l-0 l-1)) (gen))
-    ((exp (gen) (mul l-0 (rec eA) eB l-1)) (gen)) (D B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (operation nonce-test (added-strand ltx-gen 2) l-1 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-0 (rec eA) eB l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
-    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB l-1)))
-      (send (cat (exp (gen) l-0) (mul (rec eA) eB l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 347)
-  (parent 182)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 (rec eA)))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-0))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) w)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 eA)
-  (absent (eA (mul (rec eB) w)))
-  (operation nonce-test (added-absence eA (mul (rec eB) w))
-    (mul (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) w)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) w))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))
-      (send (cat (exp (gen) l-0) (mul w (rec eA))))))
-  (label 348)
-  (parent 182)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul eA w)))
-  (deflistener (cat (exp (gen) l-0) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-0)) (gen))
-    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 eB)
-  (absent (eB (mul eA w)))
-  (operation nonce-test (added-absence eB (mul eA w)) (mul eA w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA w)))
-      (send (cat (exp (gen) l-0) (mul eA w))))
-    ((recv (cat (exp (gen) l-0) (mul w eB)))
-      (send (cat (exp (gen) l-0) (mul w eB)))))
-  (label 349)
-  (parent 182)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB l-0))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-0)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (l-2 l-0)
-      (w (mul (rec eA) eB l-0 (rec l-1))) (l-3 l-1)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 350)
-  (parent 183)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB l-0 l-1))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-0 l-1))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) l-1))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB l-0)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0 l-1))) kh)))
-  (neq ((exp (gen) (mul l-0 l-1)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-0 l-1)) (gen)) (D B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0 l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-0)))
-      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-0))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 351)
-  (parent 183)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l eA eB l-0 l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB l-0 l-2))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-0 l-2))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) l-2))
-  (deflistener
-    (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 0) (5 0)) ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-0 l-2))) kh)))
-  (neq ((exp (gen) (mul l-0 l-2)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-0 l-2)) (gen)) (D B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1 l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0 l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) l-2)) (send (cat (exp (gen) l-0) l-2)))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2)))
-      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 352)
-  (parent 183)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)
-    (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-1 (rec eA)))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-1))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 l-1 eA)
-  (absent (eA (mul (rec eB) (rec l-0) w l-1)))
-  (operation nonce-test
-    (added-absence eA (mul (rec eB) (rec l-0) w l-1))
-    (mul (rec eB) (rec l-0) w l-1) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec eA)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 353)
-  (parent 183)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)
-    (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-1 eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-1))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w eB)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 l-1 eB)
-  (absent (eB (mul eA (rec l-0) w l-1)))
-  (operation nonce-test (added-absence eB (mul eA (rec l-0) w l-1))
-    (mul eA (rec l-0) w l-1) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))
-      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w eB)))
-      (send (cat (exp (gen) l-1) (mul w eB))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 354)
-  (parent 183)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)
-    (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 l-1))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) w l-0 l-1)))
-    (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w l-1)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-0 self) (l B) (l-1 D))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-0 l-1)))
-        kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-0 l-1)) (gen))
-    ((exp (gen) (mul w l-0 l-1)) (gen)) (D B) (eA eB) (l-1 l) (eA l-1)
-    (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (absent (l-1 (mul eA (rec eB) w l-0)))
-  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w l-0))
-    (mul eA (rec eB) w l-0) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB))
-      (recv (exp (gen) (mul eA (rec eB) w l-0 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w l-1)))
-      (send (cat (exp (gen) l-0) (mul w l-1))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self)))))
-  (label 355)
-  (parent 183)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (absent (l-1 (mul eA (rec eB) (rec l-0) w)))
-  (operation nonce-test
-    (added-absence l-1 (mul eA (rec eB) (rec l-0) w))
-    (mul eA (rec eB) (rec l-0) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self)))))
-  (label 356)
-  (parent 183)
-  (unrealized (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-1)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (gen) (mul (rec eA) eB l-1)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (l-2 l-1) (w (mul (rec eA) eB l-1)))
-    (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (gen) (mul (rec eA) eB l-1)))
-      (send (cat (gen) (mul (rec eA) eB l-1)))))
-  (label 357)
-  (parent 184)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1 l-1)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-1 l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) l-1))
-  (deflistener (cat (gen) (mul (rec eA) eB l-1 l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1 l-1))) kh)))
-  (neq ((exp (gen) (mul l-1 l-1)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-1 l-1)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-1)) (send (cat (exp (gen) l-1) l-1)))
-    ((recv (cat (gen) (mul (rec eA) eB l-1 l-1)))
-      (send (cat (gen) (mul (rec eA) eB l-1 l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 358)
-  (parent 184)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1 l-2)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-1 l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) l-2))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (gen) (mul (rec eA) eB l-1 l-2)))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 0) (6 0)) ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1 l-2))) kh)))
-  (neq ((exp (gen) (mul l-1 l-2)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-1 l-2)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (gen) (mul (rec eA) eB l-1 l-2)))
-      (send (cat (gen) (mul (rec eA) eB l-1 l-2))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 359)
-  (parent 184)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eB l-1 rndx) (w expt)
-    (eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (gen) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eB l-1 eA)
-  (absent (eA (mul (rec eB) (rec l-1) w)))
-  (operation nonce-test (added-absence eA (mul (rec eB) (rec l-1) w))
-    (mul (rec eB) (rec l-1) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (gen) (mul w (rec eA))))
-      (send (cat (gen) (mul w (rec eA))))))
-  (label 360)
-  (parent 184)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA l-1 rndx) (w expt)
-    (eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec l-1) w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (gen) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA l-1 eB)
-  (absent (eB (mul eA (rec l-1) w)))
-  (operation nonce-test (added-absence eB (mul eA (rec l-1) w))
-    (mul eA (rec l-1) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec l-1) w)))
-      (send (cat (exp (gen) l-1) (mul eA (rec l-1) w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (gen) (mul w eB))) (send (cat (gen) (mul w eB)))))
-  (label 361)
-  (parent 184)
-  (unrealized (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (gen) (mul w l-1)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (absent (l-1 (mul eA (rec eB) w)))
-  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w))
-    (mul eA (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (gen) (mul w l-1))) (send (cat (gen) (mul w l-1)))))
-  (label 362)
-  (parent 184)
-  (unrealized (1 3) (4 0) (6 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eB l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul eB l-1 (rec e)))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul eB l-1 (rec e) (rec e))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D) (l-1 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul eB l-1 (rec e))) (gen))
-    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eB l-1 e)
-  (operation nonce-test
-    (contracted (eB-0 eB) (l-2 l-1) (w (mul eB l-1 (rec e) (rec e)))
-      (e-0 e)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eB l-1 (rec e)))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul eB l-1 (rec e) (rec e))))
-      (send (cat (exp (gen) e) (mul eB l-1 (rec e) (rec e))))))
-  (label 363)
-  (parent 185)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eB e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul eB (rec e) l-1 l-1))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 l-1))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) l-1))
-  (deflistener (cat (exp (gen) e) (mul eB (rec e) (rec e) l-1 l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1 l-1))) kh)))
-  (neq ((exp (gen) (mul l-1 l-1)) (gen))
-    ((exp (gen) (mul eB (rec e) l-1 l-1)) (gen)) (D B) (e eB) (l-0 l)
-    (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eB e l-1)
-  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eB (rec e) l-1 l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-1)) (send (cat (exp (gen) l-1) l-1)))
-    ((recv (cat (exp (gen) e) (mul eB (rec e) (rec e) l-1 l-1)))
-      (send (cat (exp (gen) e) (mul eB (rec e) (rec e) l-1 l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 364)
-  (parent 185)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eB l-1 e l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul eB l-1 (rec e) l-2))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 l-2))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) l-2))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul eB l-1 (rec e) (rec e) l-2)))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 0) (6 0)) ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l B) (l-0 D) (l-1 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1 l-2))) kh)))
-  (neq ((exp (gen) (mul l-1 l-2)) (gen))
-    ((exp (gen) (mul eB l-1 (rec e) l-2)) (gen)) (D B) (e eB) (l-0 l)
-    (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eB l-1 e l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eB l-1 (rec e) l-2))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul eB l-1 (rec e) (rec e) l-2)))
-      (send (cat (exp (gen) e) (mul eB l-1 (rec e) (rec e) l-2))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 365)
-  (parent 185)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 rndx) (w expt) (l-1 e eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e eB))) (l l-1) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e e))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-0) (mul (rec l-0) w e e)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-1 D) (l-0 self))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e e eB))) kh)))
-  (neq ((exp (gen) (mul w e e)) (gen)) ((exp (gen) (mul w e eB)) (gen))
-    (D B) (e eB) (l-1 l) (e l-1) (eB l) (e l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 l-1 e eB)
-  (absent (eB (mul (rec l-0) w e e)))
-  (operation nonce-test (added-absence eB (mul (rec l-0) w e e))
-    (mul (rec l-0) w e e) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec l-0) w e e)))
-      (send (cat (exp (gen) l-0) (mul (rec l-0) w e e))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul w eB)))
-      (send (cat (exp (gen) e) (mul w eB)))))
-  (label 366)
-  (parent 185)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB rndx) (w expt) (l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e l-1))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w e e l-1))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w e e)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul w l-1)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-0 D) (l-1 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e e l-1)) (gen))
-    ((exp (gen) (mul w e l-1)) (gen)) (D B) (e eB) (l-0 l) (e l-0)
-    (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l eB l-0 e l-1)
-  (absent (l-1 (mul (rec eB) w e e)))
-  (operation nonce-test (added-absence l-1 (mul (rec eB) w e e))
-    (mul (rec eB) w e e) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e e l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) w e e)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) w e e))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul w l-1)))
-      (send (cat (exp (gen) e) (mul w l-1)))))
-  (label 367)
-  (parent 185)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt) (l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w (rec e)))) (l l-1) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul w (rec e) (rec e))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l B) (l-1 D) (l-0 self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec e))) (gen)) (D B) (e eB) (l-1 l) (e l-1)
-    (eB l) (e l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l eB l-0 l-1 e)
-  (absent (e (mul (rec eB) (rec l-0) w)))
-  (operation nonce-test (added-absence e (mul (rec eB) (rec l-0) w))
-    (mul (rec eB) (rec l-0) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w (rec e)))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul w (rec e) (rec e))))
-      (send (cat (exp (gen) e) (mul w (rec e) (rec e))))))
-  (label 368)
-  (parent 185)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 e eA l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e (rec eA) l-1))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-1)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) l-1)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul e (rec eA) l-1)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 e eA l-1)
-  (operation nonce-test
-    (contracted (eA-0 eA) (l-2 l-1) (w (mul (rec eA) l-1))) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul (rec eA) l-1)))
-      (send (cat (exp (gen) e) (mul (rec eA) l-1)))))
-  (label 369)
-  (parent 186)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 e eA l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e (rec eA) l-1 l-1))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-1 l-1))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) l-1))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) l-1 l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-1 l-1))) kh)))
-  (neq ((exp (gen) (mul l-1 l-1)) (gen))
-    ((exp (gen) (mul e (rec eA) l-1 l-1)) (gen)) (D B) (eA e) (l l-0)
-    (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e eA l-1)
-  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) l-1 l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul l-1 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-1)) (send (cat (exp (gen) l-1) l-1)))
-    ((recv (cat (exp (gen) e) (mul (rec eA) l-1 l-1)))
-      (send (cat (exp (gen) e) (mul (rec eA) l-1 l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 370)
-  (parent 186)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 e eA l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e (rec eA) l-1 l-2))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-1 l-2))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) l-2))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) l-1 l-2)))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 0) (6 0)) ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-1 l-2))) kh)))
-  (neq ((exp (gen) (mul l-1 l-2)) (gen))
-    ((exp (gen) (mul e (rec eA) l-1 l-2)) (gen)) (D B) (eA e) (l l-0)
-    (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 e eA l-1 l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) l-1 l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul l-1 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul (rec eA) l-1 l-2)))
-      (send (cat (exp (gen) e) (mul (rec eA) l-1 l-2))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 371)
-  (parent 186)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 rndx) (w expt) (l-1 e eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l-1) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul (rec l-0) w)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))) kh)))
-  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e (rec eA))) (gen))
-    (D B) (eA e) (l l-1) (eA l) (e l-1) (eA l-1) (e l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 l-1 e eA)
-  (absent (eA (mul (rec l-0) w)))
-  (operation nonce-test (added-absence eA (mul (rec l-0) w))
-    (mul (rec l-0) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) w)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul (rec l-0) w))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul w (rec eA))))
-      (send (cat (exp (gen) e) (mul w (rec eA))))))
-  (label 372)
-  (parent 186)
-  (unrealized (0 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA rndx) (w expt) (l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-1))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul w l-1)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-1))) kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w e l-1)) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l eA l-0 e l-1)
-  (absent (l-1 (mul eA w)))
-  (operation nonce-test (added-absence l-1 (mul eA w)) (mul eA w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA w)))
-      (send (cat (exp (gen) l-1) (mul eA w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul w l-1)))
-      (send (cat (exp (gen) e) (mul w l-1)))))
-  (label 373)
-  (parent 186)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 peer name) (hl base)
-    (l l-0 l-1 eA eB l-2 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-2))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-2)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-2))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) eB l-2 (rec e))))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 2) (6 0)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-2 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-2))) kh)))
-  (neq ((exp (gen) l-2) (gen)) ((exp (gen) (mul (rec eA) eB l-2)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-2)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (l-3 l-2)
-      (w (mul (rec eA) eB l-2 (rec e))) (e-0 e)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-2)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (one)))
-      (send (cat (exp (gen) l-2) (one))))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul (rec eA) eB l-2 (rec e))))
-      (send (cat (exp (gen) e) (mul (rec eA) eB l-2 (rec e)))))
-    ((recv (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 374)
-  (parent 187)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eA eB e l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-2 l-2)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-2 l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) l-2))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) eB (rec e) l-2 l-2)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 0) (5 0))
-    ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-2 l-2))) kh)))
-  (neq ((exp (gen) (mul l-2 l-2)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-2 l-2)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-2)
-  (operation nonce-test (displaced 5 8 ltx-gen 2) l-3 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-2 l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-2 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) l-2)) (send (cat (exp (gen) l-2) l-2)))
-    ((recv (cat (exp (gen) e) (mul (rec eA) eB (rec e) l-2 l-2)))
-      (send (cat (exp (gen) e) (mul (rec eA) eB (rec e) l-2 l-2))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 375)
-  (parent 187)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 peer self-1 name) (hl base)
-    (l l-0 l-1 eA eB l-2 e l-3 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-2 l-3)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-2 l-3))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) l-3))
-  (defstrand ltx-gen 1 (self self) (l l-2))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) eB l-2 (rec e) l-3)))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (defstrand ltx-gen 2 (self self-1) (l l-3))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 2) (6 0)) ((8 0) (6 0)) ((8 1) (4 0)))
-  (fn-of ("principal-of" (l-3 self-1) (l-0 B) (l D) (l-2 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-2 l-3))) kh)))
-  (neq ((exp (gen) (mul l-2 l-3)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-2 l-3)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-2 l-3)
-  (operation nonce-test (added-strand ltx-gen 2) l-3 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-2 l-3)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-2 l-3))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) l-3)) (send (cat (exp (gen) l-2) l-3)))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul (rec eA) eB l-2 (rec e) l-3)))
-      (send (cat (exp (gen) e) (mul (rec eA) eB l-2 (rec e) l-3))))
-    ((recv (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-3) self-1 (privk self-1)))
-      (send l-3)))
-  (label 376)
-  (parent 187)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 peer name) (hl base)
-    (l l-0 l-1 eB l-2 rndx) (w expt) (e eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w e))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul (rec eB) (rec l-2) w e)))
-  (defstrand ltx-gen 1 (self self) (l l-2))
-  (deflistener (cat (exp (gen) e) (mul w (rec eA))))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 2) (6 0)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-2 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e)) (gen))
-    ((exp (gen) (mul w e (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eB l-2 eA)
-  (absent (eA (mul (rec eB) (rec l-2) w e)))
-  (operation nonce-test (added-absence eA (mul (rec eB) (rec l-2) w e))
-    (mul (rec eB) (rec l-2) w e) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul (rec eB) (rec l-2) w e)))
-      (send (cat (exp (gen) l-2) (mul (rec eB) (rec l-2) w e))))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul w (rec eA))))
-      (send (cat (exp (gen) e) (mul w (rec eA)))))
-    ((recv (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 377)
-  (parent 187)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 peer name) (hl base)
-    (l l-0 l-1 eA l-2 rndx) (w expt) (e eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w e))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul eA (rec l-2) w e)))
-  (defstrand ltx-gen 1 (self self) (l l-2))
-  (deflistener (cat (exp (gen) e) (mul w eB)))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 2) (6 0)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-2 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e eB))) kh)))
-  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA l-2 eB)
-  (absent (eB (mul eA (rec l-2) w e)))
-  (operation nonce-test (added-absence eB (mul eA (rec l-2) w e))
-    (mul eA (rec l-2) w e) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul eA (rec l-2) w e)))
-      (send (cat (exp (gen) l-2) (mul eA (rec l-2) w e))))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul w eB)))
-      (send (cat (exp (gen) e) (mul w eB))))
-    ((recv (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 378)
-  (parent 187)
-  (unrealized (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 peer name) (hl base)
-    (l l-0 l-1 eA eB rndx) (w expt) (e l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-2))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w e l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) w e)))
-  (defstrand ltx-gen 1 (self self) (l l-2))
-  (deflistener (cat (exp (gen) e) (mul w l-2)))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 2) (6 0)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-2 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-2))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w e l-2)) (gen))
-    ((exp (gen) (mul w e l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-2)
-  (absent (l-2 (mul eA (rec eB) w e)))
-  (operation nonce-test (added-absence l-2 (mul eA (rec eB) w e))
-    (mul eA (rec eB) w e) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-2))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) w e)))
-      (send (cat (exp (gen) l-2) (mul eA (rec eB) w e))))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul w l-2)))
-      (send (cat (exp (gen) e) (mul w l-2))))
-    ((recv (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 379)
-  (parent 187)
-  (unrealized (1 3) (4 0) (6 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB l-0))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-0)) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))
-    (D B) (eA eB) (l l-1) (eA l) (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (l-2 l-0)
-      (w (mul (rec eA) eB l-0 (rec l-1))) (l-3 l-1)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1))))))
-  (label 380)
-  (parent 188)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1 l-1)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-1 l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) l-1))
-  (deflistener
-    (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1 l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1 l-1))) kh)))
-  (neq ((exp (gen) (mul l-1 l-1)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-1 l-1)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-1)) (send (cat (exp (gen) l-1) l-1)))
-    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1 l-1)))
-      (send (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1 l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 381)
-  (parent 188)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l eA eB l-0 l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB l-0 l-2)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-0 l-2))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) l-2))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener
-    (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2)))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 0) (6 0)) ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l D) (l-0 self))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-0 l-2))) kh)))
-  (neq ((exp (gen) (mul l-0 l-2)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-0 l-2)) (gen)) (D B) (eA eB) (l l-1)
-    (eA l) (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1 l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0 l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) l-2)) (send (cat (exp (gen) l-0) l-2)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2)))
-      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 382)
-  (parent 188)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)
-    (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-1))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-1)
-    (eA l) (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l eB l-0 l-1 eA)
-  (absent (eA (mul (rec eB) (rec l-0) w l-1)))
-  (operation nonce-test
-    (added-absence eA (mul (rec eB) (rec l-0) w l-1))
-    (mul (rec eB) (rec l-0) w l-1) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec eA))))))
-  (label 383)
-  (parent 188)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)
-    (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-1))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-1) (eA l)
-    (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l eA l-0 l-1 eB)
-  (absent (eB (mul eA (rec l-0) w l-1)))
-  (operation nonce-test (added-absence eB (mul eA (rec l-0) w l-1))
-    (mul eA (rec l-0) w l-1) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))
-      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul w eB)))
-      (send (cat (exp (gen) l-1) (mul w eB)))))
-  (label 384)
-  (parent 188)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)
-    (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-0 l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-0) (mul w l-1)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 l-1)))
-        kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-0 l-1)) (gen))
-    ((exp (gen) (mul w l-0 l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (absent (l-1 (mul eA (rec eB) w l-0)))
-  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w l-0))
-    (mul eA (rec eB) w l-0) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB))
-      (recv (exp (gen) (mul eA (rec eB) w l-0 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) w l-0))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-0) (mul w l-1)))
-      (send (cat (exp (gen) l-0) (mul w l-1)))))
-  (label 385)
-  (parent 188)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) w)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l l-1) (eA l) (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (absent (l-1 (mul eA (rec eB) (rec l-0) w)))
-  (operation nonce-test
-    (added-absence l-1 (mul eA (rec eB) (rec l-0) w))
-    (mul eA (rec eB) (rec l-0) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1))))))
-  (label 386)
-  (parent 188)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB l-0))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) l-0)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 D) (l B) (l-0 self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-0))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul (rec eA) eB l-0)) (gen))
-    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (l-2 l-0)
-      (w (mul (rec eA) eB l-0 (rec l-1))) (l-3 l-1)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1))))))
-  (label 387)
-  (parent 189)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB l-1 l-1))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 l-1))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) l-1))
-  (deflistener
-    (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1 l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1 l-1))) kh)))
-  (neq ((exp (gen) (mul l-1 l-1)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-1 l-1)) (gen)) (D B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-1)) (send (cat (exp (gen) l-1) l-1)))
-    ((recv (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1 l-1)))
-      (send (cat (exp (gen) l-0) (mul (rec eA) eB (rec l-0) l-1 l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 388)
-  (parent 189)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l eA eB l-0 l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB l-0 l-2))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul l-0 l-2))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-0) l-2))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener
-    (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2)))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 0) (6 0)) ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 D) (l B) (l-0 self))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-0 l-2))) kh)))
-  (neq ((exp (gen) (mul l-0 l-2)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-0 l-2)) (gen)) (D B) (eA eB) (l-1 l)
-    (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1 l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-0 l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-0) l-2)) (send (cat (exp (gen) l-0) l-2)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2)))
-      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-0 (rec l-1) l-2))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 389)
-  (parent 189)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)
-    (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-1 (rec eA)))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w l-1))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 D) (l B) (l-0 self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l-1 l)
-    (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l eB l-0 l-1 eA)
-  (absent (eA (mul (rec eB) (rec l-0) w l-1)))
-  (operation nonce-test
-    (added-absence eA (mul (rec eB) (rec l-0) w l-1))
-    (mul (rec eB) (rec l-0) w l-1) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec eA))))))
-  (label 390)
-  (parent 189)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)
-    (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-1 eB))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA w l-1))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 D) (l B) (l-0 self))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l-1 l) (eA l-1)
-    (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l eA l-0 l-1 eB)
-  (absent (eB (mul eA (rec l-0) w l-1)))
-  (operation nonce-test (added-absence eB (mul eA (rec l-0) w l-1))
-    (mul eA (rec l-0) w l-1) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))
-      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul w eB)))
-      (send (cat (exp (gen) l-1) (mul w eB)))))
-  (label 391)
-  (parent 189)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)
-    (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 l-1))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l-0 l-1)))
-    (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-0) (mul w l-1)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-0 D) (l B) (l-1 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 l-1)))
-        kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-0 l-1)) (gen))
-    ((exp (gen) (mul w l-0 l-1)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (absent (l-1 (mul eA (rec eB) w l-0)))
-  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w l-0))
-    (mul eA (rec eB) w l-0) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB))
-      (recv (exp (gen) (mul eA (rec eB) w l-0 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) w l-0))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-0) (mul w l-1)))
-      (send (cat (exp (gen) l-0) (mul w l-1)))))
-  (label 392)
-  (parent 189)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) w))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 D) (l B) (l-0 self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (absent (l-1 (mul eA (rec eB) (rec l-0) w)))
-  (operation nonce-test
-    (added-absence l-1 (mul eA (rec eB) (rec l-0) w))
-    (mul eA (rec eB) (rec l-0) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1))))))
-  (label 393)
-  (parent 189)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 l-1 eA eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 (rec eA) eB))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-1)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul l-1 (rec eA) eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 l-1 eA eB)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (w (mul (rec eA) eB))) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-1 (rec eA) eB)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB)))
-      (send (cat (exp (gen) l-1) (mul (rec eA) eB)))))
-  (label 394)
-  (parent 190)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1 l-1)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-1 l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) l-1))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB l-1)))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (5 0)) ((6 1) (4 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1 l-1))) kh)))
-  (neq ((exp (gen) (mul l-1 l-1)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-1 l-1)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-1)) (send (cat (exp (gen) l-1) l-1)))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-1)))
-      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-1))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 395)
-  (parent 190)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 l-1 eA eB l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 (rec eA) eB l-2)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-1 l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) l-2))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eA) eB l-2)))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 0) (6 0)) ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB l-2))) kh)))
-  (neq ((exp (gen) (mul l-1 l-2)) (gen))
-    ((exp (gen) (mul l-1 (rec eA) eB l-2)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 l-1 eA eB l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-1 (rec eA) eB l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB l-2)))
-      (send (cat (exp (gen) l-1) (mul (rec eA) eB l-2))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 396)
-  (parent 190)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eB rndx) (w expt)
-    (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eB l-1 eA)
-  (absent (eA (mul (rec eB) w)))
-  (operation nonce-test (added-absence eA (mul (rec eB) w))
-    (mul (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) w)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec eA))))))
-  (label 397)
-  (parent 190)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt)
-    (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-1) (mul w eB)))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA l-1 eB)
-  (absent (eB (mul eA w)))
-  (operation nonce-test (added-absence eB (mul eA w)) (mul eA w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA w)))
-      (send (cat (exp (gen) l-1) (mul eA w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul w eB)))
-      (send (cat (exp (gen) l-1) (mul w eB)))))
-  (label 398)
-  (parent 190)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-1)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-2) (mul (rec eA) eB l-1 (rec l-2))))
-  (defstrand ltx-gen 1 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 0) (4 0)) ((7 0) (6 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (l-3 l-1)
-      (w (mul (rec eA) eB l-1 (rec l-2))) (l-4 l-2)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-2) (mul (rec eA) eB l-1 (rec l-2))))
-      (send (cat (exp (gen) l-2) (mul (rec eA) eB l-1 (rec l-2)))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))
-  (label 399)
-  (parent 191)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-2 l-2)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-2 l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) l-2))
-  (deflistener
-    (cat (exp (gen) l-1) (mul (rec eA) eB (rec l-1) l-2 l-2)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 0) (5 0)) ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-2 l-2))) kh)))
-  (neq ((exp (gen) (mul l-2 l-2)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-2 l-2)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (operation nonce-test (displaced 5 8 ltx-gen 2) l-3 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-2 l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-2 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) l-2)) (send (cat (exp (gen) l-2) l-2)))
-    ((recv (cat (exp (gen) l-1) (mul (rec eA) eB (rec l-1) l-2 l-2)))
-      (send (cat (exp (gen) l-1) (mul (rec eA) eB (rec l-1) l-2 l-2))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 400)
-  (parent 191)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1 l-2)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-1 l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) l-2))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-2) (mul (rec eA) eB l-1)))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 0) (6 0)) ((7 1) (4 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1 l-2))) kh)))
-  (neq ((exp (gen) (mul l-1 l-2)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-1 l-2)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (operation nonce-test (displaced 7 8 ltx-gen 2) l-3 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-2) (mul (rec eA) eB l-1)))
-      (send (cat (exp (gen) l-2) (mul (rec eA) eB l-1))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 401)
-  (parent 191)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 self-1 name)
-    (l l-0 eA eB l-1 l-2 l-3 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-1 l-3)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-1 l-3))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) l-3))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener
-    (cat (exp (gen) l-2) (mul (rec eA) eB l-1 (rec l-2) l-3)))
-  (defstrand ltx-gen 1 (self self-0) (l l-2))
-  (defstrand ltx-gen 2 (self self-1) (l l-3))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 0) (4 0)) ((7 0) (6 0)) ((8 0) (6 0)) ((8 1) (4 0)))
-  (fn-of
-    ("principal-of" (l-3 self-1) (l-2 self-0) (l-0 B) (l D) (l-1 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-1 l-3))) kh)))
-  (neq ((exp (gen) (mul l-1 l-3)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-1 l-3)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2 l-3)
-  (operation nonce-test (added-strand ltx-gen 2) l-3 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-3)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-3))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-3)) (send (cat (exp (gen) l-1) l-3)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-2) (mul (rec eA) eB l-1 (rec l-2) l-3)))
-      (send (cat (exp (gen) l-2) (mul (rec eA) eB l-1 (rec l-2) l-3))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-3) self-1 (privk self-1)))
-      (send l-3)))
-  (label 402)
-  (parent 191)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eB l-1 rndx) (w expt)
-    (l-2 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-2 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w l-2)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-2) (mul w (rec eA))))
-  (defstrand ltx-gen 1 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 0) (4 0)) ((7 0) (6 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-2))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-2)) (gen))
-    ((exp (gen) (mul w l-2 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eB l-1 l-2 eA)
-  (absent (eA (mul (rec eB) (rec l-1) w l-2)))
-  (operation nonce-test
-    (added-absence eA (mul (rec eB) (rec l-1) w l-2))
-    (mul (rec eB) (rec l-1) w l-2) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w l-2)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w l-2))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-2) (mul w (rec eA))))
-      (send (cat (exp (gen) l-2) (mul w (rec eA)))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))
-  (label 403)
-  (parent 191)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA l-1 rndx) (w expt)
-    (l-2 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-2 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec l-1) w l-2)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-2) (mul w eB)))
-  (defstrand ltx-gen 1 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 0) (4 0)) ((7 0) (6 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-2 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-2)) (gen))
-    ((exp (gen) (mul w l-2 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA l-1 l-2 eB)
-  (absent (eB (mul eA (rec l-1) w l-2)))
-  (operation nonce-test (added-absence eB (mul eA (rec l-1) w l-2))
-    (mul eA (rec l-1) w l-2) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec l-1) w l-2)))
-      (send (cat (exp (gen) l-1) (mul eA (rec l-1) w l-2))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-2) (mul w eB)))
-      (send (cat (exp (gen) l-2) (mul w eB))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))
-  (label 404)
-  (parent 191)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB rndx) (w expt)
-    (l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 l-2))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-1 l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) w l-1)))
-  (defstrand ltx-gen 1 (self self) (l l-2))
-  (deflistener (cat (exp (gen) l-1) (mul w l-2)))
-  (defstrand ltx-gen 1 (self self-0) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 0) (4 0)) ((7 0) (6 0)))
-  (fn-of ("principal-of" (l-1 self-0) (l-0 B) (l D) (l-2 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 l-2)))
-        kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-1 l-2)) (gen))
-    ((exp (gen) (mul w l-1 l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (absent (l-2 (mul eA (rec eB) w l-1)))
-  (operation nonce-test (added-absence l-2 (mul eA (rec eB) w l-1))
-    (mul eA (rec eB) w l-1) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB))
-      (recv (exp (gen) (mul eA (rec eB) w l-1 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) w l-1)))
-      (send (cat (exp (gen) l-2) (mul eA (rec eB) w l-1))))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul w l-2)))
-      (send (cat (exp (gen) l-1) (mul w l-2))))
-    ((send (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))))
-  (label 405)
-  (parent 191)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 rndx) (w expt)
-    (l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2))))
-  (defstrand ltx-gen 1 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 0) (4 0)) ((7 0) (6 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (absent (l-2 (mul eA (rec eB) (rec l-1) w)))
-  (operation nonce-test
-    (added-absence l-2 (mul eA (rec eB) (rec l-1) w))
-    (mul eA (rec eB) (rec l-1) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-2) (mul w (rec l-2))))
-      (send (cat (exp (gen) l-2) (mul w (rec l-2)))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))))
-  (label 406)
-  (parent 191)
-  (unrealized (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l l-0 eB rndx) (w expt) (eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul (rec eB) w)))
-  (deflistener (cat (gen) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eB eA)
-  (absent (eA (mul (rec eB) w)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul (rec eB) w)))
-      (send (cat (gen) (mul (rec eB) w))))
-    ((recv (cat (gen) (mul w (rec eA))))
-      (send (cat (gen) (mul w (rec eA))))) ((recv eA) (send eA)))
-  (label 407)
-  (parent 193)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l l-0 eA rndx) (w expt) (eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA w)))
-  (deflistener (cat (gen) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB)
-  (absent (eB (mul eA w)))
-  (operation nonce-test (added-listener eB) (mul w eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA w))) (send (cat (gen) (mul eA w))))
-    ((recv (cat (gen) (mul w eB))) (send (cat (gen) (mul w eB))))
-    ((recv eB) (send eB)))
-  (label 408)
-  (parent 194)
-  (unrealized (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e eB))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (gen) (mul w e e)))
-  (deflistener (cat (exp (gen) e) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e eB))) kh)))
-  (neq ((exp (gen) (mul w e e)) (gen)) ((exp (gen) (mul w e eB)) (gen))
-    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e eB)
-  (absent (eB (mul w e e)))
-  (operation nonce-test (added-listener eB) (mul w eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (gen) (mul w e e))) (send (cat (gen) (mul w e e))))
-    ((recv (cat (exp (gen) e) (mul w eB)))
-      (send (cat (exp (gen) e) (mul w eB)))) ((recv eB) (send eB)))
-  (label 409)
-  (parent 196)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w (rec e)))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (gen) (mul (rec eB) w)))
-  (deflistener (cat (exp (gen) e) (mul w (rec e) (rec e))))
-  (deflistener e)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec e))) (gen)) (D B) (e eB) (l-0 l) (e l-0)
-    (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 e)
-  (absent (e (mul (rec eB) w)))
-  (operation nonce-test (added-listener e) (mul w (rec e) (rec e))
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w (rec e)))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (gen) (mul (rec eB) w)))
-      (send (cat (gen) (mul (rec eB) w))))
-    ((recv (cat (exp (gen) e) (mul w (rec e) (rec e))))
-      (send (cat (exp (gen) e) (mul w (rec e) (rec e)))))
-    ((recv e) (send e)))
-  (label 410)
-  (parent 197)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) w))
-  (deflistener (cat (exp (gen) e) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))
-  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e (rec eA))) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e eA)
-  (absent (eA w))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) w)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) w)) (send (cat (gen) w)))
-    ((recv (cat (exp (gen) e) (mul w (rec eA))))
-      (send (cat (exp (gen) e) (mul w (rec eA)))))
-    ((recv eA) (send eA)))
-  (label 411)
-  (parent 199)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eB rndx)
-    (w expt) (e eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w e))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul (rec eB) w e)))
-  (deflistener (cat (exp (gen) e) (mul w (rec eA))))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e)) (gen))
-    ((exp (gen) (mul w e (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eB eA)
-  (absent (eA (mul (rec eB) w e)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul (rec eB) w e)))
-      (send (cat (gen) (mul (rec eB) w e))))
-    ((recv (cat (exp (gen) e) (mul w (rec eA))))
-      (send (cat (exp (gen) e) (mul w (rec eA)))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv eA) (send eA)))
-  (label 412)
-  (parent 202)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eA rndx)
-    (w expt) (e eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w e))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA w e)))
-  (deflistener (cat (exp (gen) e) (mul w eB)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (7 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e eB))) kh)))
-  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB)
-  (absent (eB (mul eA w e)))
-  (operation nonce-test (added-listener eB) (mul w eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA w e))) (send (cat (gen) (mul eA w e))))
-    ((recv (cat (exp (gen) e) (mul w eB)))
-      (send (cat (exp (gen) e) (mul w eB))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv eB) (send eB)))
-  (label 413)
-  (parent 203)
-  (unrealized (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul (rec eB) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 eA)
-  (absent (eA (mul (rec eB) w l-0)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul (rec eB) w l-0)))
-      (send (cat (gen) (mul (rec eB) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))
-      (send (cat (exp (gen) l-0) (mul w (rec eA)))))
-    ((recv eA) (send eA)))
-  (label 414)
-  (parent 205)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-0)) (gen))
-    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 eB)
-  (absent (eB (mul eA w l-0)))
-  (operation nonce-test (added-listener eB) (mul w eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA w l-0)))
-      (send (cat (gen) (mul eA w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w eB)))
-      (send (cat (exp (gen) l-0) (mul w eB)))) ((recv eB) (send eB)))
-  (label 415)
-  (parent 206)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 (rec eA)))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-0))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (gen) (mul (rec eB) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 eA)
-  (absent (eA (mul (rec eB) w l-0)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (gen) (mul (rec eB) w l-0)))
-      (send (cat (gen) (mul (rec eB) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))
-      (send (cat (exp (gen) l-0) (mul w (rec eA)))))
-    ((recv eA) (send eA)))
-  (label 416)
-  (parent 209)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (gen) (mul eA w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-0)) (gen))
-    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 eB)
-  (absent (eB (mul eA w l-0)))
-  (operation nonce-test (added-listener eB) (mul w eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (gen) (mul eA w l-0)))
-      (send (cat (gen) (mul eA w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w eB)))
-      (send (cat (exp (gen) l-0) (mul w eB)))) ((recv eB) (send eB)))
-  (label 417)
-  (parent 210)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eB rndx) (w expt)
-    (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul (rec eB) w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 1) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eB l-1 eA)
-  (absent (eA (mul (rec eB) w l-1)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul (rec eB) w l-1)))
-      (send (cat (gen) (mul (rec eB) w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec eA)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv eA) (send eA)))
-  (label 418)
-  (parent 214)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt)
-    (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w eB)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (7 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 1) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA l-1 eB)
-  (absent (eB (mul eA w l-1)))
-  (operation nonce-test (added-listener eB) (mul w eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA w l-1)))
-      (send (cat (gen) (mul eA w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w eB)))
-      (send (cat (exp (gen) l-1) (mul w eB))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv eB) (send eB)))
-  (label 419)
-  (parent 215)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA (rec eB) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener l-1)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (7 0))
-    ((7 1) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (absent (l-1 (mul eA (rec eB) w)))
-  (operation nonce-test (added-listener l-1) (mul w (rec l-1)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA (rec eB) w)))
-      (send (cat (gen) (mul eA (rec eB) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv l-1) (send l-1)))
-  (label 420)
-  (parent 216)
-  (unrealized (1 3) (4 0) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l l-0 e rndx) (w expt) (eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec e) w))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w)))
-  (deflistener (cat (gen) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec e) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e eA)
-  (absent (eA (mul (rec e) (rec e) w)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul (rec e) w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w)))
-      (send (cat (exp (gen) e) (mul (rec e) (rec e) w))))
-    ((recv (cat (gen) (mul w (rec eA))))
-      (send (cat (gen) (mul w (rec eA))))) ((recv eA) (send eA)))
-  (label 421)
-  (parent 219)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l l-0 eA rndx) (w expt) (e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w e))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA w)))
-  (deflistener (cat (gen) (mul w e e)))
-  (deflistener e)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e e))) kh)))
-  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e e)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA e)
-  (absent (e (mul eA w)))
-  (operation nonce-test (added-listener e) (mul w e e) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA w)))
-      (send (cat (exp (gen) e) (mul eA w))))
-    ((recv (cat (gen) (mul w e e))) (send (cat (gen) (mul w e e))))
-    ((recv e) (send e)))
-  (label 422)
-  (parent 220)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e e-0 e-0))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e e-0))) (l l) (e e-0))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e-0) (mul w e e)))
-  (deflistener (cat (exp (gen) e) (mul w e-0 e-0)))
-  (deflistener e-0)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e e-0 e-0)))
-        kh)))
-  (neq ((exp (gen) (mul w e e e-0)) (gen))
-    ((exp (gen) (mul w e e-0 e-0)) (gen)) (D B) (e e-0) (l-0 l) (e l-0)
-    (e-0 l) (e l) (e-0 l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e e-0)
-  (absent (e-0 (mul w e e)))
-  (operation nonce-test (added-listener e-0) (mul w e-0 e-0) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e e-0 e-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e-0)) (recv (exp (gen) (mul w e e e-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e-0) (mul w e e)))
-      (send (cat (exp (gen) e-0) (mul w e e))))
-    ((recv (cat (exp (gen) e) (mul w e-0 e-0)))
-      (send (cat (exp (gen) e) (mul w e-0 e-0))))
-    ((recv e-0) (send e-0)))
-  (label 423)
-  (parent 223)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l e rndx) (w expt) (l-0 e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w (rec e-0)))) (l l-0) (e e-0))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec e) w))) (l l) (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w)))
-  (deflistener (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0))))
-  (deflistener e-0)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec e) w)) (gen))
-    ((exp (gen) (mul w (rec e-0))) (gen)) (D B) (e-0 e) (l-0 l)
-    (e-0 l-0) (e l) (e-0 l) (e l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l e l-0 e-0)
-  (absent (e-0 (mul (rec e) (rec e) w)))
-  (operation nonce-test (added-listener e-0) (mul w (rec e-0) (rec e-0))
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) e-0)) (recv (exp (gen) (mul w (rec e-0))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul (rec e) w))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w)))
-      (send (cat (exp (gen) e) (mul (rec e) (rec e) w))))
-    ((recv (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0))))
-      (send (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0)))))
-    ((recv e-0) (send e-0)))
-  (label 424)
-  (parent 224)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul w (rec e))))
-  (deflistener (cat (exp (gen) e) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))
-  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e (rec eA))) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e eA)
-  (absent (eA (mul w (rec e))))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) w)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul w (rec e))))
-      (send (cat (exp (gen) e) (mul w (rec e)))))
-    ((recv (cat (exp (gen) e) (mul w (rec eA))))
-      (send (cat (exp (gen) e) (mul w (rec eA)))))
-    ((recv eA) (send eA)))
-  (label 425)
-  (parent 227)
-  (unrealized (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w e))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA w)))
-  (deflistener (cat (exp (gen) e) (mul w e)))
-  (deflistener e)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e e))) kh)))
-  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e e)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 e)
-  (absent (e (mul eA w)))
-  (operation nonce-test (added-listener e) (mul w e) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA w)))
-      (send (cat (exp (gen) e) (mul eA w))))
-    ((recv (cat (exp (gen) e) (mul w e)))
-      (send (cat (exp (gen) e) (mul w e)))) ((recv e) (send e)))
-  (label 426)
-  (parent 228)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 e rndx)
-    (w expt) (e-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e-0 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec e) w e-0))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w e-0)))
-  (deflistener (cat (exp (gen) e-0) (mul w (rec eA))))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e-0))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e-0))) kh)))
-  (neq ((exp (gen) (mul (rec e) w e-0)) (gen))
-    ((exp (gen) (mul w e-0 (rec eA))) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e eA)
-  (absent (eA (mul (rec e) (rec e) w e-0)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul (rec e) w e-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w e-0)))
-      (send (cat (exp (gen) e) (mul (rec e) (rec e) w e-0))))
-    ((recv (cat (exp (gen) e-0) (mul w (rec eA))))
-      (send (cat (exp (gen) e-0) (mul w (rec eA)))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e-0)))
-    ((recv eA) (send eA)))
-  (label 427)
-  (parent 231)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eA rndx)
-    (w expt) (e e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e-0 e-0))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w e e-0))) (l l-0) (e e-0))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e-0) (mul eA w e)))
-  (deflistener (cat (exp (gen) e) (mul w e-0 e-0)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (deflistener e-0)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (7 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e e-0 e-0)))
-        kh)))
-  (neq ((exp (gen) (mul eA w e e-0)) (gen))
-    ((exp (gen) (mul w e e-0 e-0)) (gen)) (D B) (eA e-0) (l l-0) (eA l)
-    (e-0 l-0) (eA l-0) (e-0 l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA e-0)
-  (absent (e-0 (mul eA w e)))
-  (operation nonce-test (added-listener e-0) (mul w e-0 e-0) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e e-0 e-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) e-0)) (recv (exp (gen) (mul eA w e e-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e-0) (mul eA w e)))
-      (send (cat (exp (gen) e-0) (mul eA w e))))
-    ((recv (cat (exp (gen) e) (mul w e-0 e-0)))
-      (send (cat (exp (gen) e) (mul w e-0 e-0))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv e-0) (send e-0)))
-  (label 428)
-  (parent 232)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l e rndx) (w expt) (l-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec e) w l-0))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))
-  (neq ((exp (gen) (mul (rec e) w l-0)) (gen))
-    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l e l-0 eA)
-  (absent (eA (mul (rec e) (rec e) w l-0)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul (rec e) w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w l-0)))
-      (send (cat (exp (gen) e) (mul (rec e) (rec e) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))
-      (send (cat (exp (gen) l-0) (mul w (rec eA)))))
-    ((recv eA) (send eA)))
-  (label 429)
-  (parent 235)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 e e))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-0 e))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w e e)))
-  (deflistener e)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 e e)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-0 e)) (gen))
-    ((exp (gen) (mul w l-0 e e)) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 e)
-  (absent (e (mul eA w l-0)))
-  (operation nonce-test (added-listener e) (mul w e e) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w l-0 e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA w l-0)))
-      (send (cat (exp (gen) e) (mul eA w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w e e)))
-      (send (cat (exp (gen) l-0) (mul w e e)))) ((recv e) (send e)))
-  (label 430)
-  (parent 236)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l e rndx) (w expt) (l-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 (rec eA)))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec e) w l-0))) (l l)
-    (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))
-  (neq ((exp (gen) (mul (rec e) w l-0)) (gen))
-    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA e) (l-0 l)
-    (eA l-0) (e l) (eA l) (e l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l e l-0 eA)
-  (absent (eA (mul (rec e) (rec e) w l-0)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul (rec e) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w l-0)))
-      (send (cat (exp (gen) e) (mul (rec e) (rec e) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))
-      (send (cat (exp (gen) l-0) (mul w (rec eA)))))
-    ((recv eA) (send eA)))
-  (label 431)
-  (parent 240)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 e e))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0 e))) (l l) (e e))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w e e)))
-  (deflistener e)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 e e)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-0 e)) (gen))
-    ((exp (gen) (mul w l-0 e e)) (gen)) (D B) (eA e) (l-0 l) (eA l-0)
-    (e l) (eA l) (e l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 e)
-  (absent (e (mul eA w l-0)))
-  (operation nonce-test (added-listener e) (mul w e e) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) (mul eA w l-0 e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA w l-0)))
-      (send (cat (exp (gen) e) (mul eA w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w e e)))
-      (send (cat (exp (gen) l-0) (mul w e e)))) ((recv e) (send e)))
-  (label 432)
-  (parent 241)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 e rndx) (w expt) (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec e) w l-1))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 1) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec e) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e l-1 eA)
-  (absent (eA (mul (rec e) (rec e) w l-1)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul (rec e) w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w l-1)))
-      (send (cat (exp (gen) e) (mul (rec e) (rec e) w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec eA)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv eA) (send eA)))
-  (label 433)
-  (parent 246)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt) (l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 e e))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-1 e))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w e e)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener e)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (7 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 1) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 e e)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1 e)) (gen))
-    ((exp (gen) (mul w l-1 e e)) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA l-1 e)
-  (absent (e (mul eA w l-1)))
-  (operation nonce-test (added-listener e) (mul w e e) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w l-1 e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA w l-1)))
-      (send (cat (exp (gen) e) (mul eA w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w e e)))
-      (send (cat (exp (gen) l-1) (mul w e e))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv e) (send e)))
-  (label 434)
-  (parent 247)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA e rndx) (w expt) (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec e) w))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener l-1)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (7 0))
-    ((7 1) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec e) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA e l-1)
-  (absent (l-1 (mul eA (rec e) (rec e) w)))
-  (operation nonce-test (added-listener l-1) (mul w (rec l-1)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA (rec e) w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))
-      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv l-1) (send l-1)))
-  (label 435)
-  (parent 248)
-  (unrealized (1 3) (4 0) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eB e rndx)
-    (w expt) (eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w (rec eA)))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l-1)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (gen) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l-0 l-1)
-    (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eB eA)
-  (absent (eA (mul (rec eB) (rec e) w)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w)))
-      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (gen) (mul w (rec eA))))
-      (send (cat (gen) (mul w (rec eA))))) ((recv eA) (send eA)))
-  (label 436)
-  (parent 251)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 l-1 eA e rndx)
-    (w expt) (eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (gen) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (7 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w eB))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA eB)
-  (absent (eB (mul eA (rec e) w)))
-  (operation nonce-test (added-listener eB) (mul w eB) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) w)))
-      (send (cat (exp (gen) e) (mul eA (rec e) w))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (gen) (mul w eB))) (send (cat (gen) (mul w eB))))
-    ((recv eB) (send eB)))
-  (label 437)
-  (parent 252)
-  (unrealized (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 e rndx) (w expt)
-    (l-1 e-0 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e-0 eB))) (l l-1)
-    (e e-0))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0 e-0))) (l l-0)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul (rec e) w e-0 e-0)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (7 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-0 B) (l-1 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e-0 e-0 eB)))
-        kh)))
-  (neq ((exp (gen) (mul w e-0 e-0)) (gen))
-    ((exp (gen) (mul w e-0 eB)) (gen)) (D B) (e-0 eB) (l-1 l-0)
-    (e-0 l-1) (eB l-0) (e-0 l-0) (eB l-1))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 e-0 eB)
-  (absent (eB (mul (rec e) w e-0 e-0)))
-  (operation nonce-test (added-listener eB) (mul w eB) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) e-0)) (recv (exp (gen) (mul w e-0 eB)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e-0 e-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec e) w e-0 e-0)))
-      (send (cat (exp (gen) e) (mul (rec e) w e-0 e-0))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) (mul w eB)))
-      (send (cat (exp (gen) e-0) (mul w eB)))) ((recv eB) (send eB)))
-  (label 438)
-  (parent 255)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB e rndx)
-    (w expt) (l-1 e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec e-0)))) (l l-1)
-    (e e-0))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w))) (l l-0)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0))))
-  (deflistener e-0)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-0 B) (l-1 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec e-0))) (gen)) (D B) (e-0 eB) (l-1 l-0)
-    (e-0 l-1) (eB l-0) (e-0 l-0) (eB l-1))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eB l-1 e-0)
-  (absent (e-0 (mul (rec eB) (rec e) w)))
-  (operation nonce-test (added-listener e-0) (mul w (rec e-0) (rec e-0))
-    (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) e-0)) (recv (exp (gen) (mul w (rec e-0))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w)))
-      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0))))
-      (send (cat (exp (gen) e-0) (mul w (rec e-0) (rec e-0)))))
-    ((recv e-0) (send e-0)))
-  (label 439)
-  (parent 256)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base)
-    (l l-0 l-1 e eA e-0 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul e (rec eA) e-0))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e-0)) (l l-1) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e-0) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l)
-    (e e-0))
-  (deflistener (cat (exp (gen) e) (mul (rec eA) e-0)))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul e e-0))) kh)))
-  (neq ((exp (gen) e-0) (gen)) ((exp (gen) (mul e (rec eA) e-0)) (gen))
-    (D B) (eA e) (l-0 l-1) (eA l-0) (e l-1) (eA l-1) (e l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 e eA)
-  (operation nonce-test (added-listener eA) (mul (rec eA) e-0) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul e (rec eA) e-0)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e)) (recv (exp (gen) e-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e-0) (one)))
-      (send (cat (exp (gen) e-0) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e-0)))
-    ((recv (cat (exp (gen) e) (mul (rec eA) e-0)))
-      (send (cat (exp (gen) e) (mul (rec eA) e-0))))
-    ((recv eA) (send eA)))
-  (label 440)
-  (parent 257)
-  (unrealized (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 e rndx) (w expt)
-    (l-1 e-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0 (rec eA)))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l-1) (e e-0))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul (rec e) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e-0))) kh)))
-  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e-0 (rec eA))) (gen))
-    (D B) (eA e-0) (l-0 l-1) (eA l-0) (e-0 l-1) (eA l-1) (e-0 l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 e-0 eA)
-  (absent (eA (mul (rec e) w)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) e-0)) (recv (exp (gen) w)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec e) w)))
-      (send (cat (exp (gen) e) (mul (rec e) w))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) (mul w (rec eA))))
-      (send (cat (exp (gen) e-0) (mul w (rec eA)))))
-    ((recv eA) (send eA)))
-  (label 441)
-  (parent 259)
-  (unrealized (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB rndx)
-    (w expt) (l-1 e eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w e))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul (rec eB) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (deflistener (cat (exp (gen) e) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((5 2) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e)) (gen))
-    ((exp (gen) (mul w e (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eB eA)
-  (absent (eA (mul (rec eB) w)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec eB) w)))
-      (send (cat (exp (gen) e) (mul (rec eB) w))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e) (mul w (rec eA))))
-      (send (cat (exp (gen) e) (mul w (rec eA)))))
-    ((recv eA) (send eA)))
-  (label 442)
-  (parent 263)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA rndx)
-    (w expt) (l-1 e eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w e))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (deflistener (cat (exp (gen) e) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (7 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((5 2) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e eB))) kh)))
-  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB)
-  (absent (eB (mul eA w)))
-  (operation nonce-test (added-listener eB) (mul w eB) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA w)))
-      (send (cat (exp (gen) e) (mul eA w))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e) (mul w eB)))
-      (send (cat (exp (gen) e) (mul w eB)))) ((recv eB) (send eB)))
-  (label 443)
-  (parent 264)
-  (unrealized (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 peer-0 name) (hl hl-0 base)
-    (l l-0 l-1 l-2 eB e rndx) (w expt) (e-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0 (rec eA)))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w e-0))) (l l-1)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w e-0)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) (mul w (rec eA))))
-  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-2)
-    (e e-0))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 2) (6 0))
-    ((8 1) (6 0)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e-0))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e-0)) (gen))
-    ((exp (gen) (mul w e-0 (rec eA))) (gen)) (D B) (eA eB) (l-0 l-1)
-    (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eB eA)
-  (absent (eA (mul (rec eB) (rec e) w e-0)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w e-0)))
-      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w e-0))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) (mul w (rec eA))))
-      (send (cat (exp (gen) e-0) (mul w (rec eA)))))
-    ((recv (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))
-      (send (exp (gen) e-0))) ((recv eA) (send eA)))
-  (label 444)
-  (parent 267)
-  (unrealized (1 3) (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 peer-0 name) (hl hl-0 base)
-    (l l-0 l-1 l-2 eA e rndx) (w expt) (e-0 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e-0 eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w e-0))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) w e-0)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) (mul w eB)))
-  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-2)
-    (e e-0))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (8 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 2) (6 0))
-    ((8 1) (6 0)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w e-0 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w e-0)) (gen))
-    ((exp (gen) (mul w e-0 eB)) (gen)) (D B) (eA eB) (l-0 l-1) (eA l-0)
-    (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA eB)
-  (absent (eB (mul eA (rec e) w e-0)))
-  (operation nonce-test (added-listener eB) (mul w eB) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e-0 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) w e-0)))
-      (send (cat (exp (gen) e) (mul eA (rec e) w e-0))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) (mul w eB)))
-      (send (cat (exp (gen) e-0) (mul w eB))))
-    ((recv (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))
-      (send (exp (gen) e-0))) ((recv eB) (send eB)))
-  (label 445)
-  (parent 268)
-  (unrealized (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB e rndx)
-    (w expt) (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-1))) (l l-1)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l-0 l-1)
-    (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eB l-1 eA)
-  (absent (eA (mul (rec eB) (rec e) w l-1)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1)))
-      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec eA)))))
-    ((recv eA) (send eA)))
-  (label 446)
-  (parent 271)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA e rndx)
-    (w expt) (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1 eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-1))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) w l-1)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-1) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (7 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l-0 l-1) (eA l-0)
-    (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eA l-1 eB)
-  (absent (eB (mul eA (rec e) w l-1)))
-  (operation nonce-test (added-listener eB) (mul w eB) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) w l-1)))
-      (send (cat (exp (gen) e) (mul eA (rec e) w l-1))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-1) (mul w eB)))
-      (send (cat (exp (gen) l-1) (mul w eB)))) ((recv eB) (send eB)))
-  (label 447)
-  (parent 272)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB e rndx)
-    (w expt) (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l-1)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w l-1))) (l l-0)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-1 D) (l-0 B))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l-1 l-0)
-    (eA l-1) (eB l-0) (eA l-0) (eB l-1))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eB l-1 eA)
-  (absent (eA (mul (rec eB) (rec e) w l-1)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1)))
-      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w l-1))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec eA)))))
-    ((recv eA) (send eA)))
-  (label 448)
-  (parent 276)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA e rndx)
-    (w expt) (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) w l-1)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-1) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (7 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-1 D) (l-0 B))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l-1 l-0) (eA l-1)
-    (eB l-0) (eA l-0) (eB l-1))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 eA l-1 eB)
-  (absent (eB (mul eA (rec e) w l-1)))
-  (operation nonce-test (added-listener eB) (mul w eB) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) w l-1)))
-      (send (cat (exp (gen) e) (mul eA (rec e) w l-1))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-1) (mul w eB)))
-      (send (cat (exp (gen) l-1) (mul w eB)))) ((recv eB) (send eB)))
-  (label 449)
-  (parent 277)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eB e rndx) (w expt) (l-2 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-2 (rec eA)))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-2))) (l l-1)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w l-2)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-2) (mul w (rec eA))))
-  (defstrand ltx-gen 1 (self self-0) (l l-2))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (4 0))
-    ((7 0) (6 0)) ((8 1) (6 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l-2))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-2)) (gen))
-    ((exp (gen) (mul w l-2 (rec eA))) (gen)) (D B) (eA eB) (l-0 l-1)
-    (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eB l-2 eA)
-  (absent (eA (mul (rec eB) (rec e) w l-2)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w l-2)))
-      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w l-2))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-2) (mul w (rec eA))))
-      (send (cat (exp (gen) l-2) (mul w (rec eA)))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0))))
-    ((recv eA) (send eA)))
-  (label 450)
-  (parent 282)
-  (unrealized (1 3) (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eA e rndx) (w expt) (l-2 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-2 eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-2))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) w l-2)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-2) (mul w eB)))
-  (defstrand ltx-gen 1 (self self-0) (l l-2))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (8 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (4 0))
-    ((7 0) (6 0)) ((8 1) (6 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w l-2 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-2)) (gen))
-    ((exp (gen) (mul w l-2 eB)) (gen)) (D B) (eA eB) (l-0 l-1) (eA l-0)
-    (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA l-2 eB)
-  (absent (eB (mul eA (rec e) w l-2)))
-  (operation nonce-test (added-listener eB) (mul w eB) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) w l-2)))
-      (send (cat (exp (gen) e) (mul eA (rec e) w l-2))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-2) (mul w eB)))
-      (send (cat (exp (gen) l-2) (mul w eB))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0))))
-    ((recv eB) (send eB)))
-  (label 451)
-  (parent 283)
-  (unrealized (1 3) (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eA eB e rndx) (w expt) (l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) w)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l-1)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2))))
-  (defstrand ltx-gen 1 (self self-0) (l l-2))
-  (deflistener l-2)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 0) (4 0))
-    ((7 0) (8 0)) ((8 1) (6 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA eB l-2)
-  (absent (l-2 (mul eA (rec eB) (rec e) w)))
-  (operation nonce-test (added-listener l-2) (mul w (rec l-2)) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))
-      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) w))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-2) (mul w (rec l-2))))
-      (send (cat (exp (gen) l-2) (mul w (rec l-2)))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0))))
-    ((recv l-2) (send l-2)))
-  (label 452)
-  (parent 284)
-  (unrealized (1 3) (4 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB l-0 rndx) (w expt) (eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))
-  (deflistener (cat (gen) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 eA)
-  (absent (eA (mul (rec eB) (rec l-0) w)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w))))
-    ((recv (cat (gen) (mul w (rec eA))))
-      (send (cat (gen) (mul w (rec eA))))) ((recv eA) (send eA)))
-  (label 453)
-  (parent 287)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA l-0 rndx) (w expt) (eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w)))
-  (deflistener (cat (gen) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 eB)
-  (absent (eB (mul eA (rec l-0) w)))
-  (operation nonce-test (added-listener eB) (mul w eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w))))
-    ((recv (cat (gen) (mul w eB))) (send (cat (gen) (mul w eB))))
-    ((recv eB) (send eB)))
-  (label 454)
-  (parent 288)
-  (unrealized (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e eB))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l) (mul (rec l) w e e)))
-  (deflistener (cat (exp (gen) e) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e eB))) kh)))
-  (neq ((exp (gen) (mul w e e)) (gen)) ((exp (gen) (mul w e eB)) (gen))
-    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e eB)
-  (absent (eB (mul (rec l) w e e)))
-  (operation nonce-test (added-listener eB) (mul w eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul (rec l) w e e)))
-      (send (cat (exp (gen) l) (mul (rec l) w e e))))
-    ((recv (cat (exp (gen) e) (mul w eB)))
-      (send (cat (exp (gen) e) (mul w eB)))) ((recv eB) (send eB)))
-  (label 455)
-  (parent 292)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eB l rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w (rec e)))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l) (mul (rec eB) (rec l) w)))
-  (deflistener (cat (exp (gen) e) (mul w (rec e) (rec e))))
-  (deflistener e)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec e))) (gen)) (D B) (e eB) (l-0 l) (e l-0)
-    (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eB l l-0 e)
-  (absent (e (mul (rec eB) (rec l) w)))
-  (operation nonce-test (added-listener e) (mul w (rec e) (rec e))
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w (rec e)))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul (rec eB) (rec l) w)))
-      (send (cat (exp (gen) l) (mul (rec eB) (rec l) w))))
-    ((recv (cat (exp (gen) e) (mul w (rec e) (rec e))))
-      (send (cat (exp (gen) e) (mul w (rec e) (rec e)))))
-    ((recv e) (send e)))
-  (label 456)
-  (parent 294)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0))))
-  (deflistener (cat (exp (gen) e) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))
-  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e (rec eA))) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e eA)
-  (absent (eA (mul w (rec l-0))))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) w)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec l-0))))
-      (send (cat (exp (gen) l-0) (mul w (rec l-0)))))
-    ((recv (cat (exp (gen) e) (mul w (rec eA))))
-      (send (cat (exp (gen) e) (mul w (rec eA)))))
-    ((recv eA) (send eA)))
-  (label 457)
-  (parent 297)
-  (unrealized (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB l-1 rndx)
-    (w expt) (e eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w e))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e)))
-  (deflistener (cat (exp (gen) e) (mul w (rec eA))))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0)))
-  (fn-of ("principal-of" (l-1 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e)) (gen))
-    ((exp (gen) (mul w e (rec eA))) (gen)) (D B) (eA eB) (l l-1) (eA l)
-    (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-1 eA)
-  (absent (eA (mul (rec eB) (rec l-1) w e)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e))))
-    ((recv (cat (exp (gen) e) (mul w (rec eA))))
-      (send (cat (exp (gen) e) (mul w (rec eA)))))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv eA) (send eA)))
-  (label 458)
-  (parent 301)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA l-1 rndx)
-    (w expt) (e eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w e))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec l-1) w e)))
-  (deflistener (cat (exp (gen) e) (mul w eB)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (7 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0)))
-  (fn-of ("principal-of" (l-1 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w e eB))) kh)))
-  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e eB)) (gen))
-    (D B) (eA eB) (l l-1) (eA l) (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-1 eB)
-  (absent (eB (mul eA (rec l-1) w e)))
-  (operation nonce-test (added-listener eB) (mul w eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec l-1) w e)))
-      (send (cat (exp (gen) l-1) (mul eA (rec l-1) w e))))
-    ((recv (cat (exp (gen) e) (mul w eB)))
-      (send (cat (exp (gen) e) (mul w eB))))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv eB) (send eB)))
-  (label 459)
-  (parent 302)
-  (unrealized (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) w)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 eA)
-  (absent (eA (mul (rec eB) w)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) w)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) w))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))
-      (send (cat (exp (gen) l-0) (mul w (rec eA)))))
-    ((recv eA) (send eA)))
-  (label 460)
-  (parent 306)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA w)))
-  (deflistener (cat (exp (gen) l-0) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-0)) (gen))
-    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 eB)
-  (absent (eB (mul eA w)))
-  (operation nonce-test (added-listener eB) (mul w eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA w)))
-      (send (cat (exp (gen) l-0) (mul eA w))))
-    ((recv (cat (exp (gen) l-0) (mul w eB)))
-      (send (cat (exp (gen) l-0) (mul w eB)))) ((recv eB) (send eB)))
-  (label 461)
-  (parent 307)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eB l rndx) (w expt) (l-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 (rec eA)))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-0))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eB l l-0 eA)
-  (absent (eA (mul (rec eB) (rec l) w l-0)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0)))
-      (send (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))
-      (send (cat (exp (gen) l-0) (mul w (rec eA)))))
-    ((recv eA) (send eA)))
-  (label 462)
-  (parent 310)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA l rndx) (w expt) (l-0 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l) (mul eA (rec l) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-0)) (gen))
-    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eA l l-0 eB)
-  (absent (eB (mul eA (rec l) w l-0)))
-  (operation nonce-test (added-listener eB) (mul w eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul eA (rec l) w l-0)))
-      (send (cat (exp (gen) l) (mul eA (rec l) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w eB)))
-      (send (cat (exp (gen) l-0) (mul w eB)))) ((recv eB) (send eB)))
-  (label 463)
-  (parent 311)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)
-    (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 1) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 l-1 eA)
-  (absent (eA (mul (rec eB) (rec l-0) w l-1)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec eA)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv eA) (send eA)))
-  (label 464)
-  (parent 317)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)
-    (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w eB)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (7 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 1) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 l-1 eB)
-  (absent (eB (mul eA (rec l-0) w l-1)))
-  (operation nonce-test (added-listener eB) (mul w eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))
-      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w eB)))
-      (send (cat (exp (gen) l-1) (mul w eB))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv eB) (send eB)))
-  (label 465)
-  (parent 318)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener l-1)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (7 0))
-    ((7 1) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (absent (l-1 (mul eA (rec eB) (rec l-0) w)))
-  (operation nonce-test (added-listener l-1) (mul w (rec l-1)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv l-1) (send l-1)))
-  (label 466)
-  (parent 320)
-  (unrealized (1 3) (4 0) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB l-0 rndx) (w expt) (eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w (rec eA)))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))
-  (deflistener (cat (gen) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 eA)
-  (absent (eA (mul (rec eB) (rec l-0) w)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w))))
-    ((recv (cat (gen) (mul w (rec eA))))
-      (send (cat (gen) (mul w (rec eA))))) ((recv eA) (send eA)))
-  (label 467)
-  (parent 323)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA l-0 rndx) (w expt) (eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w)))
-  (deflistener (cat (gen) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 eB)
-  (absent (eB (mul eA (rec l-0) w)))
-  (operation nonce-test (added-listener eB) (mul w eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w))))
-    ((recv (cat (gen) (mul w eB))) (send (cat (gen) (mul w eB))))
-    ((recv eB) (send eB)))
-  (label 468)
-  (parent 324)
-  (unrealized (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e eB))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0) e e)))
-  (deflistener (cat (exp (gen) e) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e eB))) kh)))
-  (neq ((exp (gen) (mul w e e)) (gen)) ((exp (gen) (mul w e eB)) (gen))
-    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e eB)
-  (absent (eB (mul w (rec l-0) e e)))
-  (operation nonce-test (added-listener eB) (mul w eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec l-0) e e)))
-      (send (cat (exp (gen) l-0) (mul w (rec l-0) e e))))
-    ((recv (cat (exp (gen) e) (mul w eB)))
-      (send (cat (exp (gen) e) (mul w eB)))) ((recv eB) (send eB)))
-  (label 469)
-  (parent 328)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w (rec e)))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) w (rec l-0))))
-  (deflistener (cat (exp (gen) e) (mul w (rec e) (rec e))))
-  (deflistener e)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec e))) (gen)) (D B) (e eB) (l-0 l) (e l-0)
-    (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 e)
-  (absent (e (mul (rec eB) w (rec l-0))))
-  (operation nonce-test (added-listener e) (mul w (rec e) (rec e))
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w (rec e)))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) w (rec l-0))))
-      (send (cat (exp (gen) l-0) (mul (rec eB) w (rec l-0)))))
-    ((recv (cat (exp (gen) e) (mul w (rec e) (rec e))))
-      (send (cat (exp (gen) e) (mul w (rec e) (rec e)))))
-    ((recv e) (send e)))
-  (label 470)
-  (parent 330)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l rndx) (w expt) (l-0 e eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l) (mul (rec l) w)))
-  (deflistener (cat (exp (gen) e) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))
-  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e (rec eA))) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e eA)
-  (absent (eA (mul (rec l) w)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) w)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul (rec l) w)))
-      (send (cat (exp (gen) l) (mul (rec l) w))))
-    ((recv (cat (exp (gen) e) (mul w (rec eA))))
-      (send (cat (exp (gen) e) (mul w (rec eA)))))
-    ((recv eA) (send eA)))
-  (label 471)
-  (parent 333)
-  (unrealized (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eB l-1 rndx)
-    (w expt) (e eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e (rec eA)))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w e))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e)))
-  (deflistener (cat (exp (gen) e) (mul w (rec eA))))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0)))
-  (fn-of ("principal-of" (l B) (l-1 D))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e)) (gen))
-    ((exp (gen) (mul w e (rec eA))) (gen)) (D B) (eA eB) (l-1 l)
-    (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-1 eA)
-  (absent (eA (mul (rec eB) (rec l-1) w e)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w e))))
-    ((recv (cat (exp (gen) e) (mul w (rec eA))))
-      (send (cat (exp (gen) e) (mul w (rec eA)))))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv eA) (send eA)))
-  (label 472)
-  (parent 337)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer name) (hl base) (l l-0 eA l-1 rndx)
-    (w expt) (e eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e eB))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA w e))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec l-1) w e)))
-  (deflistener (cat (exp (gen) e) (mul w eB)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (7 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0)))
-  (fn-of ("principal-of" (l B) (l-1 D))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w e eB))) kh)))
-  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e eB)) (gen))
-    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-1 eB)
-  (absent (eB (mul eA (rec l-1) w e)))
-  (operation nonce-test (added-listener eB) (mul w eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec l-1) w e)))
-      (send (cat (exp (gen) l-1) (mul eA (rec l-1) w e))))
-    ((recv (cat (exp (gen) e) (mul w eB)))
-      (send (cat (exp (gen) e) (mul w eB))))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv eB) (send eB)))
-  (label 473)
-  (parent 338)
-  (unrealized (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eB l rndx) (w expt) (l-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eB l l-0 eA)
-  (absent (eA (mul (rec eB) (rec l) w l-0)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0)))
-      (send (cat (exp (gen) l) (mul (rec eB) (rec l) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))
-      (send (cat (exp (gen) l-0) (mul w (rec eA)))))
-    ((recv eA) (send eA)))
-  (label 474)
-  (parent 342)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (eA l rndx) (w expt) (l-0 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-0))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l) (mul eA (rec l) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-0)) (gen))
-    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen eA l l-0 eB)
-  (absent (eB (mul eA (rec l) w l-0)))
-  (operation nonce-test (added-listener eB) (mul w eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l) (mul eA (rec l) w l-0)))
-      (send (cat (exp (gen) l) (mul eA (rec l) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w eB)))
-      (send (cat (exp (gen) l-0) (mul w eB)))) ((recv eB) (send eB)))
-  (label 475)
-  (parent 343)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eB rndx) (w expt) (l-0 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 (rec eA)))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-0))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) w)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0 (rec eA))) (gen)) (D B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 eA)
-  (absent (eA (mul (rec eB) w)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) w)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) w))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec eA))))
-      (send (cat (exp (gen) l-0) (mul w (rec eA)))))
-    ((recv eA) (send eA)))
-  (label 476)
-  (parent 348)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D name) (l eA rndx) (w expt) (l-0 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul eA w)))
-  (deflistener (cat (exp (gen) l-0) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-0)) (gen))
-    ((exp (gen) (mul w l-0 eB)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 eB)
-  (absent (eB (mul eA w)))
-  (operation nonce-test (added-listener eB) (mul w eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA w)))
-      (send (cat (exp (gen) l-0) (mul eA w))))
-    ((recv (cat (exp (gen) l-0) (mul w eB)))
-      (send (cat (exp (gen) l-0) (mul w eB)))) ((recv eB) (send eB)))
-  (label 477)
-  (parent 349)
-  (unrealized (1 3) (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)
-    (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-1 (rec eA)))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-1))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 1) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 l-1 eA)
-  (absent (eA (mul (rec eB) (rec l-0) w l-1)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec eA)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv eA) (send eA)))
-  (label 478)
-  (parent 353)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)
-    (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-1 eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-1))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w eB)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (7 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 1) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 l-1 eB)
-  (absent (eB (mul eA (rec l-0) w l-1)))
-  (operation nonce-test (added-listener eB) (mul w eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))
-      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w eB)))
-      (send (cat (exp (gen) l-1) (mul w eB))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv eB) (send eB)))
-  (label 479)
-  (parent 354)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener l-1)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (7 0))
-    ((7 1) (5 0)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (absent (l-1 (mul eA (rec eB) (rec l-0) w)))
-  (operation nonce-test (added-listener l-1) (mul w (rec l-1)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv l-1) (send l-1)))
-  (label 480)
-  (parent 356)
-  (unrealized (1 3) (4 0) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eB l-1 rndx) (w expt)
-    (eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (gen) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eB l-1 eA)
-  (absent (eA (mul (rec eB) (rec l-1) w)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (gen) (mul w (rec eA))))
-      (send (cat (gen) (mul w (rec eA))))) ((recv eA) (send eA)))
-  (label 481)
-  (parent 360)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA l-1 rndx) (w expt)
-    (eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec l-1) w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (gen) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (7 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA l-1 eB)
-  (absent (eB (mul eA (rec l-1) w)))
-  (operation nonce-test (added-listener eB) (mul w eB) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec l-1) w)))
-      (send (cat (exp (gen) l-1) (mul eA (rec l-1) w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (gen) (mul w eB))) (send (cat (gen) (mul w eB))))
-    ((recv eB) (send eB)))
-  (label 482)
-  (parent 361)
-  (unrealized (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB))))
-  (deflistener (cat (gen) l-1))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 1) (5 0)))
-  (absent (l-1 (mul eA (rec eB))))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) l-1)) (gen)) ((exp (gen) l-1) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) l-1)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB))))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB)))))
-    ((recv (cat (gen) l-1)) (send (cat (gen) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 483)
-  (parent 362)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (gen) (mul w l-1)))
-  (deflistener l-1)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (7 0)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (absent (l-1 (mul eA (rec eB) w)))
-  (operation nonce-test (added-listener l-1) (mul w l-1) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (gen) (mul w l-1))) (send (cat (gen) (mul w l-1))))
-    ((recv l-1) (send l-1)))
-  (label 484)
-  (parent 362)
-  (unrealized (1 3) (4 0) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 rndx) (w expt) (l-1 e eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e eB))) (l l-1) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e e))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-0) (mul (rec l-0) w e e)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (7 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (fn-of ("principal-of" (l B) (l-1 D) (l-0 self))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e e eB))) kh)))
-  (neq ((exp (gen) (mul w e e)) (gen)) ((exp (gen) (mul w e eB)) (gen))
-    (D B) (e eB) (l-1 l) (e l-1) (eB l) (e l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 l-1 e eB)
-  (absent (eB (mul (rec l-0) w e e)))
-  (operation nonce-test (added-listener eB) (mul w eB) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e e))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec l-0) w e e)))
-      (send (cat (exp (gen) l-0) (mul (rec l-0) w e e))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul w eB)))
-      (send (cat (exp (gen) e) (mul w eB)))) ((recv eB) (send eB)))
-  (label 485)
-  (parent 366)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul e l-1))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) e e l-1))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) e e)))
-  (deflistener (cat (exp (gen) e) l-1))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 1) (5 0)))
-  (absent (l-1 (mul (rec eB) e e)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) e e l-1)) (gen))
-    ((exp (gen) (mul e l-1)) (gen)) (D B) (e eB) (l-0 l) (e l-0) (eB l)
-    (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 e l-1)
-  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul e l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) e e l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) e e)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) e e))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 486)
-  (parent 367)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB rndx) (w expt) (l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e l-1))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w e e l-1))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w e e)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul w l-1)))
-  (deflistener l-1)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (7 0)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (fn-of ("principal-of" (l B) (l-0 D) (l-1 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e e l-1)) (gen))
-    ((exp (gen) (mul w e l-1)) (gen)) (D B) (e eB) (l-0 l) (e l-0)
-    (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l eB l-0 e l-1)
-  (absent (l-1 (mul (rec eB) w e e)))
-  (operation nonce-test (added-listener l-1) (mul w l-1) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e e l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) w e e)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) w e e))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul w l-1)))
-      (send (cat (exp (gen) e) (mul w l-1)))) ((recv l-1) (send l-1)))
-  (label 487)
-  (parent 367)
-  (unrealized (1 3) (4 0) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt) (l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w (rec e)))) (l l-1) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul w (rec e) (rec e))))
-  (deflistener e)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (fn-of ("principal-of" (l B) (l-1 D) (l-0 self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec e))) (gen)) (D B) (e eB) (l-1 l) (e l-1)
-    (eB l) (e l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l eB l-0 l-1 e)
-  (absent (e (mul (rec eB) (rec l-0) w)))
-  (operation nonce-test (added-listener e) (mul w (rec e) (rec e))
-    (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w (rec e)))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul w (rec e) (rec e))))
-      (send (cat (exp (gen) e) (mul w (rec e) (rec e)))))
-    ((recv e) (send e)))
-  (label 488)
-  (parent 368)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 rndx) (w expt) (l-1 e eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w e (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l-1) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul (rec l-0) w)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))) kh)))
-  (neq ((exp (gen) w) (gen)) ((exp (gen) (mul w e (rec eA))) (gen))
-    (D B) (eA e) (l l-1) (eA l) (e l-1) (eA l-1) (e l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 l-1 e eA)
-  (absent (eA (mul (rec l-0) w)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) w)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul (rec l-0) w))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul w (rec eA))))
-      (send (cat (exp (gen) e) (mul w (rec eA)))))
-    ((recv eA) (send eA)))
-  (label 489)
-  (parent 372)
-  (unrealized (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA l-1))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) eA))
-  (deflistener (cat (exp (gen) e) l-1))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 1) (5 0)))
-  (absent (l-1 eA))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA e l-1))) kh)))
-  (neq ((exp (gen) (mul eA l-1)) (gen)) ((exp (gen) (mul e l-1)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 e l-1)
-  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul e l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) eA)) (send (cat (exp (gen) l-1) eA)))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 490)
-  (parent 373)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA rndx) (w expt) (l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-1))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) e) (mul w l-1)))
-  (deflistener l-1)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (7 0)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-1))) kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w e l-1)) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l eA l-0 e l-1)
-  (absent (l-1 (mul eA w)))
-  (operation nonce-test (added-listener l-1) (mul w l-1) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA w)))
-      (send (cat (exp (gen) l-1) (mul eA w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul w l-1)))
-      (send (cat (exp (gen) e) (mul w l-1)))) ((recv l-1) (send l-1)))
-  (label 491)
-  (parent 373)
-  (unrealized (1 3) (4 0) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 peer name) (hl base)
-    (l l-0 l-1 eB l-2 rndx) (w expt) (e eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w e))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul (rec eB) (rec l-2) w e)))
-  (defstrand ltx-gen 1 (self self) (l l-2))
-  (deflistener (cat (exp (gen) e) (mul w (rec eA))))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 2) (6 0)) ((8 1) (6 0)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-2 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e)) (gen))
-    ((exp (gen) (mul w e (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eB l-2 eA)
-  (absent (eA (mul (rec eB) (rec l-2) w e)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul (rec eB) (rec l-2) w e)))
-      (send (cat (exp (gen) l-2) (mul (rec eB) (rec l-2) w e))))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul w (rec eA))))
-      (send (cat (exp (gen) e) (mul w (rec eA)))))
-    ((recv (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv eA) (send eA)))
-  (label 492)
-  (parent 377)
-  (unrealized (1 3) (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 peer name) (hl base)
-    (l l-0 l-1 eA l-2 rndx) (w expt) (e eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w e))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul eA (rec l-2) w e)))
-  (defstrand ltx-gen 1 (self self) (l l-2))
-  (deflistener (cat (exp (gen) e) (mul w eB)))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (8 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 2) (6 0)) ((8 1) (6 0)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-2 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e eB))) kh)))
-  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA l-2 eB)
-  (absent (eB (mul eA (rec l-2) w e)))
-  (operation nonce-test (added-listener eB) (mul w eB) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul eA (rec l-2) w e)))
-      (send (cat (exp (gen) l-2) (mul eA (rec l-2) w e))))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul w eB)))
-      (send (cat (exp (gen) e) (mul w eB))))
-    ((recv (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv eB) (send eB)))
-  (label 493)
-  (parent 378)
-  (unrealized (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eA eB e l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-2))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) e l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) e)))
-  (deflistener (cat (exp (gen) e) l-2))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 0) (4 0))
-    ((7 1) (5 0)))
-  (absent (l-2 (mul eA (rec eB) e)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA e l-2))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) e l-2)) (gen))
-    ((exp (gen) (mul e l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-2)
-  (operation nonce-test (displaced 5 8 ltx-gen 2) l-3 (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul e l-2))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) e l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) e)))
-      (send (cat (exp (gen) l-2) (mul eA (rec eB) e))))
-    ((recv (cat (exp (gen) e) l-2)) (send (cat (exp (gen) e) l-2)))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 494)
-  (parent 379)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 peer name) (hl base)
-    (l l-0 l-1 eA eB rndx) (w expt) (e l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-2))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w e l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) w e)))
-  (defstrand ltx-gen 1 (self self) (l l-2))
-  (deflistener (cat (exp (gen) e) (mul w l-2)))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (deflistener l-2)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (8 0)) ((6 1) (0 3))
-    ((7 2) (6 0)) ((8 1) (6 0)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-2 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-2))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w e l-2)) (gen))
-    ((exp (gen) (mul w e l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-2)
-  (absent (l-2 (mul eA (rec eB) w e)))
-  (operation nonce-test (added-listener l-2) (mul w l-2) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-2))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) w e)))
-      (send (cat (exp (gen) l-2) (mul eA (rec eB) w e))))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))))
-    ((recv (cat (exp (gen) e) (mul w l-2)))
-      (send (cat (exp (gen) e) (mul w l-2))))
-    ((recv (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv l-2) (send l-2)))
-  (label 495)
-  (parent 379)
-  (unrealized (1 3) (4 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)
-    (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-1))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-1)
-    (eA l) (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l eB l-0 l-1 eA)
-  (absent (eA (mul (rec eB) (rec l-0) w l-1)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec eA)))))
-    ((recv eA) (send eA)))
-  (label 496)
-  (parent 383)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)
-    (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-1))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (7 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-1 B) (l D) (l-0 self))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-1) (eA l)
-    (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l eA l-0 l-1 eB)
-  (absent (eB (mul eA (rec l-0) w l-1)))
-  (operation nonce-test (added-listener eB) (mul w eB) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))
-      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul w eB)))
-      (send (cat (exp (gen) l-1) (mul w eB)))) ((recv eB) (send eB)))
-  (label 497)
-  (parent 384)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-0 l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) l-0 l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) l-0)))
-  (deflistener (cat (exp (gen) l-0) l-1))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 1) (5 0)))
-  (absent (l-1 (mul eA (rec eB) l-0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-0 l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) l-0 l-1)) (gen))
-    ((exp (gen) (mul l-0 l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-0 l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-0 l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) l-0)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) l-0))))
-    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 498)
-  (parent 385)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)
-    (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-0 l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-0) (mul w l-1)))
-  (deflistener l-1)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (7 0)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-0 B) (l D) (l-1 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 l-1)))
-        kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-0 l-1)) (gen))
-    ((exp (gen) (mul w l-0 l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (absent (l-1 (mul eA (rec eB) w l-0)))
-  (operation nonce-test (added-listener l-1) (mul w l-1) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB))
-      (recv (exp (gen) (mul eA (rec eB) w l-0 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) w l-0))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-0) (mul w l-1)))
-      (send (cat (exp (gen) l-0) (mul w l-1)))) ((recv l-1) (send l-1)))
-  (label 499)
-  (parent 385)
-  (unrealized (1 3) (4 0) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)
-    (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-1 (rec eA)))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eB) w l-1))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-1 D) (l B) (l-0 self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l-1 l)
-    (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l eB l-0 l-1 eA)
-  (absent (eA (mul (rec eB) (rec l-0) w l-1)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w l-1))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec eA)))))
-    ((recv eA) (send eA)))
-  (label 500)
-  (parent 390)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)
-    (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-1 eB))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA w l-1))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (7 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-1 D) (l B) (l-0 self))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l-1 l) (eA l-1)
-    (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l eA l-0 l-1 eB)
-  (absent (eB (mul eA (rec l-0) w l-1)))
-  (operation nonce-test (added-listener eB) (mul w eB) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1)))
-      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w l-1))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul w eB)))
-      (send (cat (exp (gen) l-1) (mul w eB)))) ((recv eB) (send eB)))
-  (label 501)
-  (parent 391)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-0 l-1))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) l-0 l-1)))
-    (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) l-0)))
-  (deflistener (cat (exp (gen) l-0) l-1))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 1) (5 0)))
-  (absent (l-1 (mul eA (rec eB) l-0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-0 l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) l-0 l-1)) (gen))
-    ((exp (gen) (mul l-0 l-1)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-0 l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-0 l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) l-0)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) l-0))))
-    ((recv (cat (exp (gen) l-0) l-1)) (send (cat (exp (gen) l-0) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 502)
-  (parent 392)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)
-    (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 l-1))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l-0 l-1)))
-    (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-0) (mul w l-1)))
-  (deflistener l-1)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (7 0)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-0 D) (l B) (l-1 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 l-1)))
-        kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-0 l-1)) (gen))
-    ((exp (gen) (mul w l-0 l-1)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (absent (l-1 (mul eA (rec eB) w l-0)))
-  (operation nonce-test (added-listener l-1) (mul w l-1) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB))
-      (recv (exp (gen) (mul eA (rec eB) w l-0 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) w l-0))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-0) (mul w l-1)))
-      (send (cat (exp (gen) l-0) (mul w l-1)))) ((recv l-1) (send l-1)))
-  (label 503)
-  (parent 392)
-  (unrealized (1 3) (4 0) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eB rndx) (w expt)
-    (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec eA))))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (7 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eB l-1 eA)
-  (absent (eA (mul (rec eB) w)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) w)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec eA)))))
-    ((recv eA) (send eA)))
-  (label 504)
-  (parent 397)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt)
-    (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-1) (mul w eB)))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (7 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA l-1 eB)
-  (absent (eB (mul eA w)))
-  (operation nonce-test (added-listener eB) (mul w eB) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA w)))
-      (send (cat (exp (gen) l-1) (mul eA w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul w eB)))
-      (send (cat (exp (gen) l-1) (mul w eB)))) ((recv eB) (send eB)))
-  (label 505)
-  (parent 398)
-  (unrealized (1 3) (4 0) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eB l-1 rndx) (w expt)
-    (l-2 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-2 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w l-2)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-2) (mul w (rec eA))))
-  (defstrand ltx-gen 1 (self self-0) (l l-2))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 0) (4 0)) ((7 0) (6 0)) ((8 1) (6 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-2))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-2)) (gen))
-    ((exp (gen) (mul w l-2 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eB l-1 l-2 eA)
-  (absent (eA (mul (rec eB) (rec l-1) w l-2)))
-  (operation nonce-test (added-listener eA) (mul w (rec eA)) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w l-2)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w l-2))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-2) (mul w (rec eA))))
-      (send (cat (exp (gen) l-2) (mul w (rec eA)))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0))))
-    ((recv eA) (send eA)))
-  (label 506)
-  (parent 403)
-  (unrealized (1 3) (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA l-1 rndx) (w expt)
-    (l-2 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-2 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec l-1) w l-2)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-2) (mul w eB)))
-  (defstrand ltx-gen 1 (self self-0) (l l-2))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (8 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 0) (4 0)) ((7 0) (6 0)) ((8 1) (6 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-2 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-2)) (gen))
-    ((exp (gen) (mul w l-2 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA l-1 l-2 eB)
-  (absent (eB (mul eA (rec l-1) w l-2)))
-  (operation nonce-test (added-listener eB) (mul w eB) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec l-1) w l-2)))
-      (send (cat (exp (gen) l-1) (mul eA (rec l-1) w l-2))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-2) (mul w eB)))
-      (send (cat (exp (gen) l-2) (mul w eB))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0))))
-    ((recv eB) (send eB)))
-  (label 507)
-  (parent 404)
-  (unrealized (1 3) (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 l-2))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) l-1 l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) l-1)))
-  (deflistener (cat (exp (gen) l-1) l-2))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 0) (4 0)) ((7 1) (5 0)))
-  (absent (l-2 (mul eA (rec eB) l-1)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA l-1 l-2))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) l-1 l-2)) (gen))
-    ((exp (gen) (mul l-1 l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (operation nonce-test (displaced 5 8 ltx-gen 2) l-3 (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-1 l-2))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) l-1 l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) l-1)))
-      (send (cat (exp (gen) l-2) (mul eA (rec eB) l-1))))
-    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 508)
-  (parent 405)
-  (unrealized (1 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB rndx) (w expt)
-    (l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 l-2))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-1 l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) w l-1)))
-  (defstrand ltx-gen 1 (self self) (l l-2))
-  (deflistener (cat (exp (gen) l-1) (mul w l-2)))
-  (defstrand ltx-gen 1 (self self-0) (l l-1))
-  (deflistener l-2)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (8 0)) ((6 1) (0 3))
-    ((7 0) (4 0)) ((7 0) (6 0)) ((8 1) (6 0)))
-  (fn-of ("principal-of" (l-1 self-0) (l-0 B) (l D) (l-2 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 l-2)))
-        kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-1 l-2)) (gen))
-    ((exp (gen) (mul w l-1 l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (absent (l-2 (mul eA (rec eB) w l-1)))
-  (operation nonce-test (added-listener l-2) (mul w l-2) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB))
-      (recv (exp (gen) (mul eA (rec eB) w l-1 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) w l-1)))
-      (send (cat (exp (gen) l-2) (mul eA (rec eB) w l-1))))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul w l-2)))
-      (send (cat (exp (gen) l-1) (mul w l-2))))
-    ((send (enc "cert" (exp (gen) l-1) self-0 (privk self-0))))
-    ((recv l-2) (send l-2)))
-  (label 509)
-  (parent 405)
-  (unrealized (1 3) (4 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 rndx) (w expt)
-    (l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2))))
-  (defstrand ltx-gen 1 (self self-0) (l l-2))
-  (deflistener l-2)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 0) (4 0)) ((7 0) (8 0)) ((8 1) (6 0)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (absent (l-2 (mul eA (rec eB) (rec l-1) w)))
-  (operation nonce-test (added-listener l-2) (mul w (rec l-2)) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-2) (mul w (rec l-2))))
-      (send (cat (exp (gen) l-2) (mul w (rec l-2)))))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0))))
-    ((recv l-2) (send l-2)))
-  (label 510)
-  (parent 406)
-  (unrealized (1 3) (4 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA (rec eB) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-1 (mul eA (rec eB) w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (operation nonce-test (displaced 6 8 ltx-gen 2) l-1 (7 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA (rec eB) w)))
-      (send (cat (gen) (mul eA (rec eB) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 511)
-  (parent 420)
-  (unrealized (1 3) (4 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA e rndx) (w expt) (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec e) w))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-1 (mul eA (rec e) (rec e) w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec e) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA e l-1)
-  (operation nonce-test (displaced 6 8 ltx-gen 2) l-1 (7 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA (rec e) w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) (rec e) w)))
-      (send (cat (exp (gen) e) (mul eA (rec e) (rec e) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 512)
-  (parent 435)
-  (unrealized (1 3) (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eA eB e rndx) (w expt) (l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) w)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l-1)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2))))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0))
-    ((8 0) (4 0)) ((8 1) (7 0)))
-  (absent (l-2 (mul eA (rec eB) (rec e) w)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA eB l-2)
-  (operation nonce-test (displaced 7 9 ltx-gen 2) l-2 (8 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec eB) (rec e) w)))
-      (send (cat (exp (gen) e) (mul eA (rec eB) (rec e) w))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-2) (mul w (rec l-2))))
-      (send (cat (exp (gen) l-2) (mul w (rec l-2)))))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 513)
-  (parent 452)
-  (unrealized (1 3) (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-1 (mul eA (rec eB) (rec l-0) w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (displaced 6 8 ltx-gen 2) l-1 (7 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 514)
-  (parent 466)
-  (unrealized (1 3) (4 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB l-0 rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) w)) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-1 (mul eA (rec eB) (rec l-0) w)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (displaced 6 8 ltx-gen 2) l-1 (7 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) (rec l-0) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 515)
-  (parent 480)
-  (unrealized (1 3) (4 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB rndx) (w expt)
-    (l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w)))
-  (deflistener (cat (gen) (mul w l-1)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-1 (mul eA (rec eB) w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (operation nonce-test (displaced 5 8 ltx-gen 2) l-1 (7 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) w))))
-    ((recv (cat (gen) (mul w l-1))) (send (cat (gen) (mul w l-1))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 516)
-  (parent 484)
-  (unrealized (1 3) (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB rndx) (w expt) (l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e l-1))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w e e l-1))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w e e)))
-  (deflistener (cat (exp (gen) e) (mul w l-1)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-1 (mul (rec eB) w e e)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e e l-1)) (gen))
-    ((exp (gen) (mul w e l-1)) (gen)) (D B) (e eB) (l-0 l) (e l-0)
-    (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 e l-1)
-  (operation nonce-test (displaced 5 8 ltx-gen 2) l-1 (7 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e e l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) w e e)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) w e e))))
-    ((recv (cat (exp (gen) e) (mul w l-1)))
-      (send (cat (exp (gen) e) (mul w l-1)))) ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 517)
-  (parent 487)
-  (unrealized (1 3) (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA rndx) (w expt) (l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-1))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA w)))
-  (deflistener (cat (exp (gen) e) (mul w l-1)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-1 (mul eA w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-1))) kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w e l-1)) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 e l-1)
-  (operation nonce-test (displaced 5 8 ltx-gen 2) l-1 (7 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA w)))
-      (send (cat (exp (gen) l-1) (mul eA w))))
-    ((recv (cat (exp (gen) e) (mul w l-1)))
-      (send (cat (exp (gen) e) (mul w l-1)))) ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 518)
-  (parent 491)
-  (unrealized (1 3) (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eA eB rndx) (w expt) (e l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-2))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w e l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) w e)))
-  (deflistener (cat (exp (gen) e) (mul w l-2)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0))
-    ((8 0) (4 0)) ((8 1) (7 0)))
-  (absent (l-2 (mul eA (rec eB) w e)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-2))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w e l-2)) (gen))
-    ((exp (gen) (mul w e l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-2)
-  (operation nonce-test (displaced 5 9 ltx-gen 2) l-2 (8 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-2))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w e l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) w e)))
-      (send (cat (exp (gen) l-2) (mul eA (rec eB) w e))))
-    ((recv (cat (exp (gen) e) (mul w l-2)))
-      (send (cat (exp (gen) e) (mul w l-2))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 519)
-  (parent 495)
-  (unrealized (1 3) (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)
-    (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-0 l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w l-1)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-1 (mul eA (rec eB) w l-0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 l-1)))
-        kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-0 l-1)) (gen))
-    ((exp (gen) (mul w l-0 l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (displaced 5 8 ltx-gen 2) l-1 (7 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB))
-      (recv (exp (gen) (mul eA (rec eB) w l-0 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w l-1)))
-      (send (cat (exp (gen) l-0) (mul w l-1)))) ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 520)
-  (parent 499)
-  (unrealized (1 3) (4 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)
-    (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 l-1))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA (rec eB) w l-0 l-1)))
-    (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w l-1)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-1 (mul eA (rec eB) w l-0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 l-1)))
-        kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-0 l-1)) (gen))
-    ((exp (gen) (mul w l-0 l-1)) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (displaced 5 8 ltx-gen 2) l-1 (7 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB))
-      (recv (exp (gen) (mul eA (rec eB) w l-0 l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w l-0)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w l-1)))
-      (send (cat (exp (gen) l-0) (mul w l-1)))) ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 521)
-  (parent 503)
-  (unrealized (1 3) (4 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB rndx) (w expt)
-    (l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 l-2))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-1 l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w l-2)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 1) (5 0)) ((8 0) (4 0)) ((8 1) (7 0)))
-  (absent (l-2 (mul eA (rec eB) w l-1)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 l-2)))
-        kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-1 l-2)) (gen))
-    ((exp (gen) (mul w l-1 l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (operation nonce-test (displaced 5 9 ltx-gen 2) l-2 (8 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB))
-      (recv (exp (gen) (mul eA (rec eB) w l-1 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) w l-1)))
-      (send (cat (exp (gen) l-2) (mul eA (rec eB) w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w l-2)))
-      (send (cat (exp (gen) l-1) (mul w l-2))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 522)
-  (parent 509)
-  (unrealized (1 3) (4 0))
-  (comment "6 in cohort - 6 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 rndx) (w expt)
-    (l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) w)) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2))))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)) ((8 0) (4 0)) ((8 1) (7 0)))
-  (absent (l-2 (mul eA (rec eB) (rec l-1) w)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w)) (gen)) ((exp (gen) w) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (operation nonce-test (displaced 7 9 ltx-gen 2) l-2 (8 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) w)) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) (rec l-1) w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-2) (mul w (rec l-2))))
-      (send (cat (exp (gen) l-2) (mul w (rec l-2)))))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 523)
-  (parent 510)
-  (unrealized (1 3) (4 0))
-  (comment "6 in cohort - 6 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 l-1 eA eB l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-2))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-2)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) l-2))
-  (deflistener (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))
-  (absent (l-1 l-2))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-2))) kh)))
-  (neq ((exp (gen) l-2) (gen)) ((exp (gen) (mul (rec eA) eB l-2)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 l-1 eA eB l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-2)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) l-2)) (send (cat (gen) l-2)))
-    ((recv (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2)))
-      (send (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 524)
-  (parent 511)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eB rndx) (w expt)
-    (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul (rec eB) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (eA (mul (rec eB) w)) (l-1 (mul (rec eB) w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eB l-1 eA)
-  (operation nonce-test (added-absence eA (mul (rec eB) w))
-    (mul (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul (rec eB) w)))
-      (send (cat (gen) (mul (rec eB) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 525)
-  (parent 511)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt)
-    (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) eB)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (eB (mul eA w)) (l-1 (mul eA w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA l-1 eB)
-  (operation nonce-test (added-absence eB (mul eA w)) (mul eA w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA w))) (send (cat (gen) (mul eA w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) eB)))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1) eB))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 526)
-  (parent 511)
-  (unrealized (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 l-1 eA e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) e)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (one)))
-  (deflistener (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) e e)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-1 (one)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) e e)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 l-1 eA e)
-  (operation nonce-test
-    (contracted (eA-0 eA) (e-0 e) (w (mul (rec eA) e e))) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) e e)))
-      (send (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) e e))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 527)
-  (parent 512)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 l-1 eA e l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) e e l-2))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul e l-2))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) l-2))
-  (deflistener (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) e e l-2)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))
-  (absent (l-1 l-2))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e e l-2))) kh)))
-  (neq ((exp (gen) (mul e l-2)) (gen))
-    ((exp (gen) (mul (rec eA) e e l-2)) (gen)) (D B) (eA e) (l l-0)
-    (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 l-1 eA e l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) e e l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul e l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) l-2)) (send (cat (exp (gen) e) l-2)))
-    ((recv (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) e e l-2)))
-      (send (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) e e l-2))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 528)
-  (parent 512)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 e rndx) (w expt) (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec e) w))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (eA (mul (rec e) (rec e) w)) (l-1 (mul (rec e) (rec e) w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec e) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e l-1 eA)
-  (operation nonce-test (added-absence eA (mul (rec e) (rec e) w))
-    (mul (rec e) (rec e) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul (rec e) w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w)))
-      (send (cat (exp (gen) e) (mul (rec e) (rec e) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 529)
-  (parent 512)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt) (l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w e))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) e e)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (e (mul eA w)) (l-1 (mul eA w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e e))) kh)))
-  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e e)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA l-1 e)
-  (operation nonce-test (added-absence e (mul eA w)) (mul eA w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA w)))
-      (send (cat (exp (gen) e) (mul eA w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) e e)))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1) e e))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 530)
-  (parent 512)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 l-2 eA eB e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) e)) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-2) (mul (rec l-2) (rec eA) eB e)))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0))
-    ((8 0) (4 0)) ((8 1) (7 0)))
-  (absent (l-2 (one)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e))) kh)))
-  (neq ((exp (gen) e) (gen)) ((exp (gen) (mul (rec eA) eB e)) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 l-2 eA eB)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (e-0 e) (w (mul (rec eA) eB e)))
-    (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) e)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-2) (mul (rec l-2) (rec eA) eB e)))
-      (send (cat (exp (gen) l-2) (mul (rec l-2) (rec eA) eB e))))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 531)
-  (parent 513)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 self-1 name) (hl base)
-    (l l-0 l-1 l-2 eA eB e l-3 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB e l-3)))
-    (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-3))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) l-3))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-2) (mul (rec l-2) (rec eA) eB e l-3)))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (defstrand ltx-gen 2 (self self-1) (l l-3))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0))
-    ((8 0) (4 0)) ((8 1) (7 0)) ((9 0) (6 0)) ((9 1) (4 0)))
-  (absent (l-2 l-3))
-  (fn-of ("principal-of" (l-3 self-1) (l-2 self-0) (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eB e l-3))) kh)))
-  (neq ((exp (gen) (mul e l-3)) (gen))
-    ((exp (gen) (mul (rec eA) eB e l-3)) (gen)) (D B) (eA eB) (l-0 l-1)
-    (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 l-2 eA eB l-3)
-  (operation nonce-test (added-strand ltx-gen 2) l-3 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB e l-3)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul e l-3))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) l-3)) (send (cat (exp (gen) e) l-3)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-2) (mul (rec l-2) (rec eA) eB e l-3)))
-      (send (cat (exp (gen) l-2) (mul (rec l-2) (rec eA) eB e l-3))))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2))
-    ((send (enc "cert" (exp (gen) l-3) self-1 (privk self-1)))
-      (send l-3)))
-  (label 532)
-  (parent 513)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eB e rndx) (w expt) (l-2 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w (rec eA)))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l-1)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA))))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0))
-    ((8 0) (4 0)) ((8 1) (7 0)))
-  (absent (eA (mul (rec eB) (rec e) w)) (l-2 (mul (rec eB) (rec e) w)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l-0 l-1)
-    (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eB l-2 eA)
-  (operation nonce-test (added-absence eA (mul (rec eB) (rec e) w))
-    (mul (rec eB) (rec e) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w)))
-      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA))))
-      (send (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA)))))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 533)
-  (parent 513)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eA e rndx) (w expt) (l-2 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2) eB)))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0))
-    ((8 0) (4 0)) ((8 1) (7 0)))
-  (absent (eB (mul eA (rec e) w)) (l-2 (mul eA (rec e) w)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w eB))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA l-2 eB)
-  (operation nonce-test (added-absence eB (mul eA (rec e) w))
-    (mul eA (rec e) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) w)))
-      (send (cat (exp (gen) e) (mul eA (rec e) w))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-2) (mul w (rec l-2) eB)))
-      (send (cat (exp (gen) l-2) (mul w (rec l-2) eB))))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 534)
-  (parent 513)
-  (unrealized (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB l-1))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-1)) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (deflistener (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1)))
-  (deflistener l-0)
-  (defstrand ltx-gen 2 (self self) (l l-0))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-0 (one)))
-  (fn-of ("principal-of" (l-0 self) (l-1 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))
-    (D B) (eA eB) (l l-1) (eA l) (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (l-2 l-1) (w (mul (rec eA) eB l-1)))
-    (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((recv (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1)))
-      (send (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1))))
-    ((recv l-0) (send l-0))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))
-  (label 535)
-  (parent 514)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul (rec eA) eB l-1 l-2)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-1 l-2))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) l-2))
-  (deflistener
-    (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1 l-2)))
-  (deflistener l-0)
-  (defstrand ltx-gen 2 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))
-  (absent (l-0 l-2))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 self) (l-1 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-1 l-2))) kh)))
-  (neq ((exp (gen) (mul l-1 l-2)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-1 l-2)) (gen)) (D B) (eA eB) (l l-1)
-    (eA l) (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))
-    ((recv (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1 l-2)))
-      (send (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1 l-2))))
-    ((recv l-0) (send l-0))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 536)
-  (parent 514)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)
-    (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (eA (mul (rec eB) (rec l-0) w))
-    (l-1 (mul (rec eB) (rec l-0) w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 l-1 eA)
-  (operation nonce-test (added-absence eA (mul (rec eB) (rec l-0) w))
-    (mul (rec eB) (rec l-0) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 537)
-  (parent 514)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)
-    (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) eB)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (eB (mul eA (rec l-0) w)) (l-1 (mul eA (rec l-0) w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 l-1 eB)
-  (operation nonce-test (added-absence eB (mul eA (rec l-0) w))
-    (mul eA (rec l-0) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) eB)))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1) eB))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 538)
-  (parent 514)
-  (unrealized (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)
-    (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0) l-1)))
-  (deflistener l-0)
-  (defstrand ltx-gen 2 (self self) (l l-0))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-1 (mul eA (rec eB) w)) (l-0 (mul eA (rec eB) w)))
-  (fn-of ("principal-of" (l-0 self) (l-1 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-1) (eA l)
-    (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w))
-    (mul eA (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) w))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec l-0) l-1)))
-      (send (cat (exp (gen) l-0) (mul w (rec l-0) l-1))))
-    ((recv l-0) (send l-0))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))
-  (label 539)
-  (parent 514)
-  (unrealized (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB l-1))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) l-1)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (deflistener (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1)))
-  (deflistener l-0)
-  (defstrand ltx-gen 2 (self self) (l l-0))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-0 (one)))
-  (fn-of ("principal-of" (l-0 self) (l B) (l-1 D))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul (rec eA) eB l-1)) (gen))
-    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (l-2 l-1) (w (mul (rec eA) eB l-1)))
-    (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((recv (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1)))
-      (send (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1))))
-    ((recv l-0) (send l-0))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))
-  (label 540)
-  (parent 515)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eA) eB l-1 l-2))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul l-1 l-2))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-1) l-2))
-  (deflistener
-    (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1 l-2)))
-  (deflistener l-0)
-  (defstrand ltx-gen 2 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))
-  (absent (l-0 l-2))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 self) (l B) (l-1 D))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eB l-1 l-2))) kh)))
-  (neq ((exp (gen) (mul l-1 l-2)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-1 l-2)) (gen)) (D B) (eA eB) (l-1 l)
-    (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-1 l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))
-    ((recv (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1 l-2)))
-      (send (cat (exp (gen) l-0) (mul (rec l-0) (rec eA) eB l-1 l-2))))
-    ((recv l-0) (send l-0))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 541)
-  (parent 515)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)
-    (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w (rec eA)))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (eA (mul (rec eB) (rec l-0) w))
-    (l-1 (mul (rec eB) (rec l-0) w)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 l-1 eA)
-  (operation nonce-test (added-absence eA (mul (rec eB) (rec l-0) w))
-    (mul (rec eB) (rec l-0) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 542)
-  (parent 515)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)
-    (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) eB)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (eB (mul eA (rec l-0) w)) (l-1 (mul eA (rec l-0) w)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 l-1 eB)
-  (operation nonce-test (added-absence eB (mul eA (rec l-0) w))
-    (mul eA (rec l-0) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) eB)))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1) eB))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 543)
-  (parent 515)
-  (unrealized (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)
-    (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-1))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) w l-1))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w)))
-  (deflistener (cat (exp (gen) l-0) (mul w (rec l-0) l-1)))
-  (deflistener l-0)
-  (defstrand ltx-gen 2 (self self) (l l-0))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-1 (mul eA (rec eB) w)) (l-0 (mul eA (rec eB) w)))
-  (fn-of ("principal-of" (l-0 self) (l B) (l-1 D))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l-1 l) (eA l-1)
-    (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w))
-    (mul eA (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) w))))
-    ((recv (cat (exp (gen) l-0) (mul w (rec l-0) l-1)))
-      (send (cat (exp (gen) l-0) (mul w (rec l-0) l-1))))
-    ((recv l-0) (send l-0))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))
-  (label 544)
-  (parent 515)
-  (unrealized (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 l-1 eA eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 (rec eA) eB))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-1)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (deflistener (cat (gen) (mul l-1 (rec eA) eB)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-1 (one)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul l-1 (rec eA) eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 l-1 eA eB)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (w (mul (rec eA) eB))) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-1 (rec eA) eB)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((recv (cat (gen) (mul l-1 (rec eA) eB)))
-      (send (cat (gen) (mul l-1 (rec eA) eB)))) ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 545)
-  (parent 516)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 l-1 eA eB l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 (rec eA) eB l-2)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-1 l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) l-2))
-  (deflistener (cat (gen) (mul l-1 (rec eA) eB l-2)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))
-  (absent (l-1 l-2))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB l-2))) kh)))
-  (neq ((exp (gen) (mul l-1 l-2)) (gen))
-    ((exp (gen) (mul l-1 (rec eA) eB l-2)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 l-1 eA eB l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-1 (rec eA) eB l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))
-    ((recv (cat (gen) (mul l-1 (rec eA) eB l-2)))
-      (send (cat (gen) (mul l-1 (rec eA) eB l-2))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 546)
-  (parent 516)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eB rndx) (w expt)
-    (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w)))
-  (deflistener (cat (gen) (mul w l-1 (rec eA))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (eA (mul (rec eB) w)) (l-1 (mul (rec eB) w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eB l-1 eA)
-  (operation nonce-test (added-absence eA (mul (rec eB) w))
-    (mul (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) w)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) w))))
-    ((recv (cat (gen) (mul w l-1 (rec eA))))
-      (send (cat (gen) (mul w l-1 (rec eA))))) ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 547)
-  (parent 516)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt)
-    (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA w)))
-  (deflistener (cat (gen) (mul w l-1 eB)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (eB (mul eA w)) (l-1 (mul eA w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA l-1 eB)
-  (operation nonce-test (added-absence eB (mul eA w)) (mul eA w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA w)))
-      (send (cat (exp (gen) l-1) (mul eA w))))
-    ((recv (cat (gen) (mul w l-1 eB)))
-      (send (cat (gen) (mul w l-1 eB)))) ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 548)
-  (parent 516)
-  (unrealized (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 l-1 eB e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-1 eB (rec e)))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) l-1)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (deflistener (cat (exp (gen) e) (mul l-1 eB (rec e) (rec e))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-1 (one)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul l-1 eB (rec e))) (gen))
-    (D B) (e eB) (l-0 l) (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 l-1 eB e)
-  (operation nonce-test
-    (contracted (eB-0 eB) (w (mul eB (rec e) (rec e))) (e-0 e)) (one)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul l-1 eB (rec e)))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((recv (cat (exp (gen) e) (mul l-1 eB (rec e) (rec e))))
-      (send (cat (exp (gen) e) (mul l-1 eB (rec e) (rec e)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 549)
-  (parent 517)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 l-1 eB e l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-1 eB (rec e) l-2))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 l-2))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) l-2))
-  (deflistener (cat (exp (gen) e) (mul l-1 eB (rec e) (rec e) l-2)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))
-  (absent (l-1 l-2))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB l-2))) kh)))
-  (neq ((exp (gen) (mul l-1 l-2)) (gen))
-    ((exp (gen) (mul l-1 eB (rec e) l-2)) (gen)) (D B) (e eB) (l-0 l)
-    (e l-0) (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 l-1 eB e l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul l-1 eB (rec e) l-2))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))
-    ((recv (cat (exp (gen) e) (mul l-1 eB (rec e) (rec e) l-2)))
-      (send (cat (exp (gen) e) (mul l-1 eB (rec e) (rec e) l-2))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 550)
-  (parent 517)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l rndx) (w expt) (l-0 e l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e l-1 eB))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e l-1))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul w e e)))
-  (deflistener (cat (exp (gen) e) (mul w l-1 eB)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (eB (mul w e e)) (l-1 (mul w e e)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul w e e l-1)) (gen))
-    ((exp (gen) (mul w e l-1 eB)) (gen)) (D B) (e eB) (l-0 l) (e l-0)
-    (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e l-1 eB)
-  (operation nonce-test (added-absence eB (mul w e e)) (mul w e e)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e e l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul w e e)))
-      (send (cat (exp (gen) l-1) (mul w e e))))
-    ((recv (cat (exp (gen) e) (mul w l-1 eB)))
-      (send (cat (exp (gen) e) (mul w l-1 eB)))) ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 551)
-  (parent 517)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB rndx) (w expt) (l-0 l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-1 (rec e)))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-1))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w)))
-  (deflistener (cat (exp (gen) e) (mul w l-1 (rec e) (rec e))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (e (mul (rec eB) w)) (l-1 (mul (rec eB) w)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec e))) (gen)) (D B) (e eB) (l-0 l) (e l-0)
-    (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 l-1 e)
-  (operation nonce-test (added-absence e (mul (rec eB) w))
-    (mul (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w l-1 (rec e)))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) w)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) w))))
-    ((recv (cat (exp (gen) e) (mul w l-1 (rec e) (rec e))))
-      (send (cat (exp (gen) e) (mul w l-1 (rec e) (rec e)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 552)
-  (parent 517)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 e l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-1 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-1)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (deflistener (cat (exp (gen) e) (mul l-1 (rec eA))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-1 (one)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul e l-1 (rec eA))) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e l-1 eA)
-  (operation nonce-test (contracted (eA-0 eA) (w (rec eA))) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul e l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((recv (cat (exp (gen) e) (mul l-1 (rec eA))))
-      (send (cat (exp (gen) e) (mul l-1 (rec eA)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 553)
-  (parent 518)
-  (unrealized (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 e l-1 eA l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-1 (rec eA) l-2))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-1 l-2))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) l-2))
-  (deflistener (cat (exp (gen) e) (mul l-1 (rec eA) l-2)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))
-  (absent (l-1 l-2))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-1 l-2))) kh)))
-  (neq ((exp (gen) (mul l-1 l-2)) (gen))
-    ((exp (gen) (mul e l-1 (rec eA) l-2)) (gen)) (D B) (eA e) (l l-0)
-    (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e l-1 eA l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul e l-1 (rec eA) l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul l-1 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))
-    ((recv (cat (exp (gen) e) (mul l-1 (rec eA) l-2)))
-      (send (cat (exp (gen) e) (mul l-1 (rec eA) l-2))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 554)
-  (parent 518)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l rndx) (w expt) (l-0 e l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-1 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-1))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) w))
-  (deflistener (cat (exp (gen) e) (mul w l-1 (rec eA))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (eA w) (l-1 w))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e l-1))) kh)))
-  (neq ((exp (gen) (mul w l-1)) (gen))
-    ((exp (gen) (mul w e l-1 (rec eA))) (gen)) (D B) (eA e) (l l-0)
-    (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e l-1 eA)
-  (operation nonce-test (added-absence eA w) w (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))
-    ((recv (cat (exp (gen) e) (mul w l-1 (rec eA))))
-      (send (cat (exp (gen) e) (mul w l-1 (rec eA)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 555)
-  (parent 518)
-  (unrealized (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA rndx) (w expt) (l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-1))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA w)))
-  (deflistener (cat (exp (gen) e) (mul w l-1)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener eA)
-  (precedes ((0 2) (5 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (4 0)))
-  (absent (l-1 (mul eA w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-1))) kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w e l-1)) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 e l-1)
-  (operation nonce-test (added-listener eA) (mul eA w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA w)))
-      (send (cat (exp (gen) l-1) (mul eA w))))
-    ((recv (cat (exp (gen) e) (mul w l-1)))
-      (send (cat (exp (gen) e) (mul w l-1)))) ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv eA) (send eA)))
-  (label 556)
-  (parent 518)
-  (unrealized (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 l-2 eA eB e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-2 (rec eA) eB))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-2)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (one)))
-  (deflistener (cat (exp (gen) e) (mul l-2 (rec eA) eB (rec e))))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0))
-    ((8 0) (4 0)) ((8 1) (7 0)))
-  (absent (l-2 (one)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-2 eB))) kh)))
-  (neq ((exp (gen) l-2) (gen)) ((exp (gen) (mul l-2 (rec eA) eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 l-2 eA eB)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (w (mul (rec eA) eB (rec e)))
-      (e-0 e)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-2 (rec eA) eB)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-2)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (one)))
-      (send (cat (exp (gen) l-2) (one))))
-    ((recv (cat (exp (gen) e) (mul l-2 (rec eA) eB (rec e))))
-      (send (cat (exp (gen) e) (mul l-2 (rec eA) eB (rec e)))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 557)
-  (parent 519)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 self-1 name) (hl base)
-    (l l-0 l-1 l-2 eA eB e l-3 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-2 (rec eA) eB l-3)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-2 l-3))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) l-3))
-  (deflistener (cat (exp (gen) e) (mul l-2 (rec eA) eB (rec e) l-3)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (defstrand ltx-gen 2 (self self-1) (l l-3))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0))
-    ((8 0) (4 0)) ((8 1) (7 0)) ((9 0) (5 0)) ((9 1) (4 0)))
-  (absent (l-2 l-3))
-  (fn-of ("principal-of" (l-3 self-1) (l-2 self-0) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-2 eB l-3))) kh)))
-  (neq ((exp (gen) (mul l-2 l-3)) (gen))
-    ((exp (gen) (mul l-2 (rec eA) eB l-3)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 l-2 eA eB l-3)
-  (operation nonce-test (added-strand ltx-gen 2) l-3 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-2 (rec eA) eB l-3)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-2 l-3))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) l-3)) (send (cat (exp (gen) l-2) l-3)))
-    ((recv (cat (exp (gen) e) (mul l-2 (rec eA) eB (rec e) l-3)))
-      (send (cat (exp (gen) e) (mul l-2 (rec eA) eB (rec e) l-3))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2))
-    ((send (enc "cert" (exp (gen) l-3) self-1 (privk self-1)))
-      (send l-3)))
-  (label 558)
-  (parent 519)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eB rndx) (w expt) (e l-2 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-2 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w e l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul (rec eB) w e)))
-  (deflistener (cat (exp (gen) e) (mul w l-2 (rec eA))))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0))
-    ((8 0) (4 0)) ((8 1) (7 0)))
-  (absent (eA (mul (rec eB) w e)) (l-2 (mul (rec eB) w e)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e l-2))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e l-2)) (gen))
-    ((exp (gen) (mul w e l-2 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eB l-2 eA)
-  (operation nonce-test (added-absence eA (mul (rec eB) w e))
-    (mul (rec eB) w e) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-2 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul (rec eB) w e)))
-      (send (cat (exp (gen) l-2) (mul (rec eB) w e))))
-    ((recv (cat (exp (gen) e) (mul w l-2 (rec eA))))
-      (send (cat (exp (gen) e) (mul w l-2 (rec eA)))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 559)
-  (parent 519)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eA rndx) (w expt) (e l-2 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-2 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w e l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul eA w e)))
-  (deflistener (cat (exp (gen) e) (mul w l-2 eB)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0))
-    ((8 0) (4 0)) ((8 1) (7 0)))
-  (absent (eB (mul eA w e)) (l-2 (mul eA w e)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-2 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w e l-2)) (gen))
-    ((exp (gen) (mul w e l-2 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA l-2 eB)
-  (operation nonce-test (added-absence eB (mul eA w e)) (mul eA w e)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-2 eB)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul eA w e)))
-      (send (cat (exp (gen) l-2) (mul eA w e))))
-    ((recv (cat (exp (gen) e) (mul w l-2 eB)))
-      (send (cat (exp (gen) e) (mul w l-2 eB))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 560)
-  (parent 519)
-  (unrealized (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul l-0 (rec eA) eB))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-0)) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (deflistener (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1))))
-  (deflistener l-0)
-  (defstrand ltx-gen 2 (self self) (l l-0))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-0 (one)))
-  (fn-of ("principal-of" (l-0 self) (l-1 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul l-0 eB))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul l-0 (rec eA) eB)) (gen))
-    (D B) (eA eB) (l l-1) (eA l) (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (w (mul (rec eA) eB (rec l-1)))
-      (l-2 l-1)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-0 (rec eA) eB)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((recv (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1)))))
-    ((recv l-0) (send l-0))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))
-  (label 561)
-  (parent 520)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul l-0 (rec eA) eB l-2)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-0 l-2))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) l-2))
-  (deflistener
-    (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1) l-2)))
-  (deflistener l-0)
-  (defstrand ltx-gen 2 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))
-  (absent (l-0 l-2))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 self) (l-1 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul l-0 eB l-2))) kh)))
-  (neq ((exp (gen) (mul l-0 l-2)) (gen))
-    ((exp (gen) (mul l-0 (rec eA) eB l-2)) (gen)) (D B) (eA eB) (l l-1)
-    (eA l) (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-0 (rec eA) eB l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) l-2)) (send (cat (exp (gen) l-0) l-2)))
-    ((recv (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1) l-2)))
-      (send (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1) l-2))))
-    ((recv l-0) (send l-0))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 562)
-  (parent 520)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB rndx) (w expt)
-    (l-0 l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 l-1 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-0 l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w l-1 (rec eA))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (eA (mul (rec eB) w l-0)) (l-1 (mul (rec eB) w l-0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0 l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-0 l-1)) (gen))
-    ((exp (gen) (mul w l-0 l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 l-1 eA)
-  (operation nonce-test (added-absence eA (mul (rec eB) w l-0))
-    (mul (rec eB) w l-0) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0 l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) w l-0)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w l-1 (rec eA))))
-      (send (cat (exp (gen) l-0) (mul w l-1 (rec eA)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 563)
-  (parent 520)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA rndx) (w expt)
-    (l-0 l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 l-1 eB))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-0 l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w l-1 eB)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (eB (mul eA w l-0)) (l-1 (mul eA w l-0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-0 l-1)) (gen))
-    ((exp (gen) (mul w l-0 l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 l-1 eB)
-  (operation nonce-test (added-absence eB (mul eA w l-0)) (mul eA w l-0)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1 eB)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0 l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA w l-0)))
-      (send (cat (exp (gen) l-1) (mul eA w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w l-1 eB)))
-      (send (cat (exp (gen) l-0) (mul w l-1 eB))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 564)
-  (parent 520)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)
-    (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w l-0))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-0))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w l-0 (rec l-1))))
-  (deflistener l-0)
-  (defstrand ltx-gen 2 (self self) (l l-0))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-1 (mul eA (rec eB) w)) (l-0 (mul eA (rec eB) w)))
-  (fn-of ("principal-of" (l-0 self) (l-1 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA eB) (l l-1) (eA l)
-    (eB l-1) (eA l-1) (eB l))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w))
-    (mul eA (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) w))))
-    ((recv (cat (exp (gen) l-1) (mul w l-0 (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul w l-0 (rec l-1)))))
-    ((recv l-0) (send l-0))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))
-  (label 565)
-  (parent 520)
-  (unrealized (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA eB l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-0 (rec eA) eB))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) l-0)) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (deflistener (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1))))
-  (deflistener l-0)
-  (defstrand ltx-gen 2 (self self) (l l-0))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-0 (one)))
-  (fn-of ("principal-of" (l-0 self) (l-1 D) (l B))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul l-0 eB))) kh)))
-  (neq ((exp (gen) l-0) (gen)) ((exp (gen) (mul l-0 (rec eA) eB)) (gen))
-    (D B) (eA eB) (l-1 l) (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (w (mul (rec eA) eB (rec l-1)))
-      (l-2 l-1)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-0 (rec eA) eB)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-0)) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((recv (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1)))))
-    ((recv l-0) (send l-0))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))
-  (label 566)
-  (parent 521)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-0 (rec eA) eB l-2))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul l-0 l-2))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-0) l-2))
-  (deflistener
-    (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1) l-2)))
-  (deflistener l-0)
-  (defstrand ltx-gen 2 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))
-  (absent (l-0 l-2))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 self) (l-1 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul l-0 eB l-2))) kh)))
-  (neq ((exp (gen) (mul l-0 l-2)) (gen))
-    ((exp (gen) (mul l-0 (rec eA) eB l-2)) (gen)) (D B) (eA eB) (l-1 l)
-    (eA l-1) (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (operation nonce-test (added-strand ltx-gen 2) l-2 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-0 (rec eA) eB l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-0 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-0) l-2)) (send (cat (exp (gen) l-0) l-2)))
-    ((recv (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1) l-2)))
-      (send (cat (exp (gen) l-1) (mul l-0 (rec eA) eB (rec l-1) l-2))))
-    ((recv l-0) (send l-0))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 567)
-  (parent 521)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB rndx) (w expt)
-    (l-0 l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 l-1 (rec eA)))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-0 l-1))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w l-1 (rec eA))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (eA (mul (rec eB) w l-0)) (l-1 (mul (rec eB) w l-0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0 l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-0 l-1)) (gen))
-    ((exp (gen) (mul w l-0 l-1 (rec eA))) (gen)) (D B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 l-1 eA)
-  (operation nonce-test (added-absence eA (mul (rec eB) w l-0))
-    (mul (rec eB) w l-0) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0 l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) w l-0)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w l-1 (rec eA))))
-      (send (cat (exp (gen) l-0) (mul w l-1 (rec eA)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 568)
-  (parent 521)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA rndx) (w expt)
-    (l-0 l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 l-1 eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0 l-1))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul eA w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w l-1 eB)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (eB (mul eA w l-0)) (l-1 (mul eA w l-0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-0 l-1)) (gen))
-    ((exp (gen) (mul w l-0 l-1 eB)) (gen)) (D B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 l-1 eB)
-  (operation nonce-test (added-absence eB (mul eA w l-0)) (mul eA w l-0)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1 eB)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0 l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA w l-0)))
-      (send (cat (exp (gen) l-1) (mul eA w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w l-1 eB)))
-      (send (cat (exp (gen) l-0) (mul w l-1 eB))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 569)
-  (parent 521)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA eB rndx) (w expt)
-    (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0))) (l l-1) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul eA (rec eB) w l-0))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec eB) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w l-0 (rec l-1))))
-  (deflistener l-0)
-  (defstrand ltx-gen 2 (self self) (l l-0))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)))
-  (absent (l-1 (mul eA (rec eB) w)) (l-0 (mul eA (rec eB) w)))
-  (fn-of ("principal-of" (l-0 self) (l-1 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-1)) (exp (gen) (mul eA w l-0))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-0)) (gen))
-    ((exp (gen) (mul w l-0)) (gen)) (D B) (eA eB) (l-1 l) (eA l-1)
-    (eB l) (eA l) (eB l-1))
-  (non-orig (privk B) (privk D) l l-1)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA eB l-0 l-1)
-  (operation nonce-test (added-absence l-1 (mul eA (rec eB) w))
-    (mul eA (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-0)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec eB) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec eB) w))))
-    ((recv (cat (exp (gen) l-1) (mul w l-0 (rec l-1))))
-      (send (cat (exp (gen) l-1) (mul w l-0 (rec l-1)))))
-    ((recv l-0) (send l-0))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))
-  (label 570)
-  (parent 521)
-  (unrealized (1 3) (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 l-1 eA eB l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 (rec eA) eB))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-1)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (deflistener (cat (exp (gen) l-2) (mul l-1 (rec eA) eB (rec l-2))))
-  (defstrand ltx-gen 1 (self self) (l l-2))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self-0) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 1) (5 0)) ((8 0) (4 0)) ((8 1) (7 0)))
-  (absent (l-1 (one)))
-  (fn-of ("principal-of" (l-1 self-0) (l-2 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul l-1 (rec eA) eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 l-1 eA eB l-2)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (w (mul (rec eA) eB (rec l-2)))
-      (l-3 l-2)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-1 (rec eA) eB)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((recv (cat (exp (gen) l-2) (mul l-1 (rec eA) eB (rec l-2))))
-      (send (cat (exp (gen) l-2) (mul l-1 (rec eA) eB (rec l-2)))))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))
-      (send l-1)))
-  (label 571)
-  (parent 522)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 l-1 eA eB l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 (rec eA) eB l-2)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-1 l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) l-2))
-  (deflistener (cat (exp (gen) l-2) (mul l-1 (rec eA) eB)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))
-  (absent (l-1 l-2))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB l-2))) kh)))
-  (neq ((exp (gen) (mul l-1 l-2)) (gen))
-    ((exp (gen) (mul l-1 (rec eA) eB l-2)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 l-1 eA eB l-2)
-  (operation nonce-test (displaced 6 9 ltx-gen 2) l-3 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-1 (rec eA) eB l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-2)) (send (cat (exp (gen) l-1) l-2)))
-    ((recv (cat (exp (gen) l-2) (mul l-1 (rec eA) eB)))
-      (send (cat (exp (gen) l-2) (mul l-1 (rec eA) eB))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 572)
-  (parent 522)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 self-1 name)
-    (l l-0 l-1 eA eB l-2 l-3 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 (rec eA) eB l-3)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-1 l-3))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) l-3))
-  (deflistener
-    (cat (exp (gen) l-2) (mul l-1 (rec eA) eB (rec l-2) l-3)))
-  (defstrand ltx-gen 1 (self self) (l l-2))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self-0) (l l-1))
-  (defstrand ltx-gen 2 (self self-1) (l l-3))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 1) (5 0)) ((8 0) (4 0)) ((8 1) (7 0)) ((9 0) (5 0))
-    ((9 1) (4 0)))
-  (absent (l-1 l-3))
-  (fn-of
-    ("principal-of" (l-3 self-1) (l-1 self-0) (l-2 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB l-3))) kh)))
-  (neq ((exp (gen) (mul l-1 l-3)) (gen))
-    ((exp (gen) (mul l-1 (rec eA) eB l-3)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 l-1 eA eB l-2 l-3)
-  (operation nonce-test (added-strand ltx-gen 2) l-3 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-1 (rec eA) eB l-3)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-3))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-3)) (send (cat (exp (gen) l-1) l-3)))
-    ((recv (cat (exp (gen) l-2) (mul l-1 (rec eA) eB (rec l-2) l-3)))
-      (send (cat (exp (gen) l-2) (mul l-1 (rec eA) eB (rec l-2) l-3))))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))
-      (send l-1))
-    ((send (enc "cert" (exp (gen) l-3) self-1 (privk self-1)))
-      (send l-3)))
-  (label 573)
-  (parent 522)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eB rndx) (w expt)
-    (l-1 l-2 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 l-2 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-1 l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul (rec eB) w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w l-2 (rec eA))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 1) (5 0)) ((8 0) (4 0)) ((8 1) (7 0)))
-  (absent (eA (mul (rec eB) w l-1)) (l-2 (mul (rec eB) w l-1)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1 l-2))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1 l-2)) (gen))
-    ((exp (gen) (mul w l-1 l-2 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eB l-1 l-2 eA)
-  (operation nonce-test (added-absence eA (mul (rec eB) w l-1))
-    (mul (rec eB) w l-1) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 l-2 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1 l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul (rec eB) w l-1)))
-      (send (cat (exp (gen) l-2) (mul (rec eB) w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w l-2 (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w l-2 (rec eA)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 574)
-  (parent 522)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA rndx) (w expt)
-    (l-1 l-2 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 l-2 eB))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-1 l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul eA w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w l-2 eB)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 1) (5 0)) ((8 0) (4 0)) ((8 1) (7 0)))
-  (absent (eB (mul eA w l-1)) (l-2 (mul eA w l-1)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 l-2 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1 l-2)) (gen))
-    ((exp (gen) (mul w l-1 l-2 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA l-1 l-2 eB)
-  (operation nonce-test (added-absence eB (mul eA w l-1)) (mul eA w l-1)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 l-2 eB)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1 l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul eA w l-1)))
-      (send (cat (exp (gen) l-2) (mul eA w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w l-2 eB)))
-      (send (cat (exp (gen) l-1) (mul w l-2 eB))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 575)
-  (parent 522)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB rndx) (w expt)
-    (l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w)))
-  (deflistener (cat (exp (gen) l-2) (mul w l-1 (rec l-2))))
-  (defstrand ltx-gen 1 (self self) (l l-2))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self-0) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 1) (5 0)) ((8 0) (4 0)) ((8 1) (7 0)))
-  (absent (l-2 (mul eA (rec eB) w)) (l-1 (mul eA (rec eB) w)))
-  (fn-of ("principal-of" (l-1 self-0) (l-2 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (operation nonce-test (added-absence l-2 (mul eA (rec eB) w))
-    (mul eA (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) w))))
-    ((recv (cat (exp (gen) l-2) (mul w l-1 (rec l-2))))
-      (send (cat (exp (gen) l-2) (mul w l-1 (rec l-2)))))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))
-      (send l-1)))
-  (label 576)
-  (parent 522)
-  (unrealized (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 l-1 eA eB l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-2))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-2)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-2))
-  (deflistener (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self-0) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)) ((8 0) (4 0)) ((8 1) (7 0)))
-  (absent (l-1 (one)))
-  (fn-of ("principal-of" (l-1 self-0) (l-0 B) (l D) (l-2 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-2))) kh)))
-  (neq ((exp (gen) l-2) (gen)) ((exp (gen) (mul (rec eA) eB l-2)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 l-1 eA eB l-2)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (l-3 l-2) (w (mul (rec eA) eB l-2)))
-    (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-2)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (one)))
-      (send (cat (exp (gen) l-2) (one))))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2)))
-      (send (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))
-      (send l-1)))
-  (label 577)
-  (parent 523)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 l-1 eA eB l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-2 l-2)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-2 l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) l-2))
-  (deflistener
-    (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2 l-2)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 0) (5 0)) ((8 1) (4 0)))
-  (absent (l-1 l-2))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-2 l-2))) kh)))
-  (neq ((exp (gen) (mul l-2 l-2)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-2 l-2)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 l-1 eA eB l-2)
-  (operation nonce-test (displaced 5 9 ltx-gen 2) l-3 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-2 l-2)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-2 l-2))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) l-2)) (send (cat (exp (gen) l-2) l-2)))
-    ((recv (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2 l-2)))
-      (send (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2 l-2))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 578)
-  (parent 523)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 self-1 name)
-    (l l-0 l-1 eA eB l-2 l-3 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eA) eB l-2 l-3)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-2 l-3))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) l-3))
-  (defstrand ltx-gen 1 (self self) (l l-2))
-  (deflistener
-    (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2 l-3)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self-0) (l l-1))
-  (defstrand ltx-gen 2 (self self-1) (l l-3))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)) ((8 0) (4 0)) ((8 1) (7 0)) ((9 0) (6 0))
-    ((9 1) (4 0)))
-  (absent (l-1 l-3))
-  (fn-of
-    ("principal-of" (l-3 self-1) (l-1 self-0) (l-0 B) (l D) (l-2 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eB l-2 l-3))) kh)))
-  (neq ((exp (gen) (mul l-2 l-3)) (gen))
-    ((exp (gen) (mul (rec eA) eB l-2 l-3)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 l-1 eA eB l-2 l-3)
-  (operation nonce-test (added-strand ltx-gen 2) l-3 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec eA) eB l-2 l-3)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-2 l-3))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) l-3)) (send (cat (exp (gen) l-2) l-3)))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2 l-3)))
-      (send (cat (exp (gen) l-1) (mul (rec l-1) (rec eA) eB l-2 l-3))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))
-      (send l-1))
-    ((send (enc "cert" (exp (gen) l-3) self-1 (privk self-1)))
-      (send l-3)))
-  (label 579)
-  (parent 523)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eB l-1 rndx) (w expt)
-    (l-2 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA))))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)) ((8 0) (4 0)) ((8 1) (7 0)))
-  (absent (eA (mul (rec eB) (rec l-1) w))
-    (l-2 (mul (rec eB) (rec l-1) w)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eB l-1 l-2 eA)
-  (operation nonce-test (added-absence eA (mul (rec eB) (rec l-1) w))
-    (mul (rec eB) (rec l-1) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA))))
-      (send (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA)))))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 580)
-  (parent 523)
-  (unrealized (0 3) (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA l-1 rndx) (w expt)
-    (l-2 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec l-1) w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2) eB)))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)) ((8 0) (4 0)) ((8 1) (7 0)))
-  (absent (eB (mul eA (rec l-1) w)) (l-2 (mul eA (rec l-1) w)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA l-1 l-2 eB)
-  (operation nonce-test (added-absence eB (mul eA (rec l-1) w))
-    (mul eA (rec l-1) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec l-1) w)))
-      (send (cat (exp (gen) l-1) (mul eA (rec l-1) w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-2) (mul w (rec l-2) eB)))
-      (send (cat (exp (gen) l-2) (mul w (rec l-2) eB))))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 581)
-  (parent 523)
-  (unrealized (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB rndx) (w expt)
-    (l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-2))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) w)))
-  (defstrand ltx-gen 1 (self self) (l l-2))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) l-2)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self-0) (l l-1))
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)) ((8 0) (4 0)) ((8 1) (7 0)))
-  (absent (l-2 (mul eA (rec eB) w)) (l-1 (mul eA (rec eB) w)))
-  (fn-of ("principal-of" (l-1 self-0) (l-0 B) (l D) (l-2 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-2))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-2)) (gen))
-    ((exp (gen) (mul w l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (operation nonce-test (added-absence l-2 (mul eA (rec eB) w))
-    (mul eA (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) w)))
-      (send (cat (exp (gen) l-2) (mul eA (rec eB) w))))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) l-2)))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1) l-2))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))
-      (send l-1)))
-  (label 582)
-  (parent 523)
-  (unrealized (1 3) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eB rndx) (w expt)
-    (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul (rec eB) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)))
-  (absent (eA (mul (rec eB) w)) (l-1 (mul (rec eB) w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eB l-1 eA)
-  (operation nonce-test (added-listener eA) (mul w (rec l-1) (rec eA))
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul (rec eB) w)))
-      (send (cat (gen) (mul (rec eB) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv eA) (send eA)))
-  (label 583)
-  (parent 525)
-  (unrealized (1 3) (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt)
-    (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (gen) (mul eA w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) eB)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (8 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)))
-  (absent (eB (mul eA w)) (l-1 (mul eA w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA l-1 eB)
-  (operation nonce-test (added-listener eB) (mul w (rec l-1) eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (gen) (mul eA w))) (send (cat (gen) (mul eA w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) eB)))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1) eB))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv eB) (send eB)))
-  (label 584)
-  (parent 526)
-  (unrealized (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 e rndx) (w expt) (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec e) w))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul (rec e) (rec e) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)))
-  (absent (eA (mul (rec e) (rec e) w)) (l-1 (mul (rec e) (rec e) w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec e) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA e) (l l-0) (eA l)
-    (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e l-1 eA)
-  (operation nonce-test (added-listener eA) (mul w (rec l-1) (rec eA))
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul (rec e) w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec e) (rec e) w)))
-      (send (cat (exp (gen) e) (mul (rec e) (rec e) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv eA) (send eA)))
-  (label 585)
-  (parent 529)
-  (unrealized (1 3) (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt) (l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w e))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) e) (mul eA w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) e e)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener e)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (8 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)))
-  (absent (e (mul eA w)) (l-1 (mul eA w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e e))) kh)))
-  (neq ((exp (gen) (mul eA w e)) (gen)) ((exp (gen) (mul w e e)) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA l-1 e)
-  (operation nonce-test (added-listener e) (mul w (rec l-1) e e) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e e))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul eA w e))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA w)))
-      (send (cat (exp (gen) e) (mul eA w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) e e)))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1) e e))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv e) (send e)))
-  (label 586)
-  (parent 530)
-  (unrealized (1 3) (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eB e rndx) (w expt) (l-2 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w (rec eA)))) (l l-0)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l-1)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul (rec eB) (rec e) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA))))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (9 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0))
-    ((8 0) (4 0)) ((8 1) (7 0)) ((9 1) (6 0)))
-  (absent (eA (mul (rec eB) (rec e) w)) (l-2 (mul (rec eB) (rec e) w)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l-0 l-1)
-    (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eB l-2 eA)
-  (operation nonce-test (added-listener eA) (mul w (rec l-2) (rec eA))
-    (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul (rec eB) (rec e) w)))
-      (send (cat (exp (gen) e) (mul (rec eB) (rec e) w))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA))))
-      (send (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA)))))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)) ((recv eA) (send eA)))
-  (label 587)
-  (parent 533)
-  (unrealized (1 3) (4 0) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eA e rndx) (w expt) (l-2 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-1)) (he (exp (gen) (mul w eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w))) (l l-1) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) e) (mul eA (rec e) w)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2) eB)))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (9 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 2) (4 0)) ((6 1) (0 3)) ((7 1) (6 0))
-    ((8 0) (4 0)) ((8 1) (7 0)) ((9 1) (6 0)))
-  (absent (eB (mul eA (rec e) w)) (l-2 (mul eA (rec e) w)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul eA w eB))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))
-    (D B) (eA eB) (l-0 l-1) (eA l-0) (eB l-1) (eA l-1) (eB l-0))
-  (non-orig (privk B) (privk D) l-0 l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen l-0 l-1 eA l-2 eB)
-  (operation nonce-test (added-listener eB) (mul w (rec l-2) eB) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) e) (mul eA (rec e) w)))
-      (send (cat (exp (gen) e) (mul eA (rec e) w))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-2) (mul w (rec l-2) eB)))
-      (send (cat (exp (gen) l-2) (mul w (rec l-2) eB))))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)) ((recv eB) (send eB)))
-  (label 588)
-  (parent 534)
-  (unrealized (4 0) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)
-    (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)))
-  (absent (eA (mul (rec eB) (rec l-0) w))
-    (l-1 (mul (rec eB) (rec l-0) w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 l-1 eA)
-  (operation nonce-test (added-listener eA) (mul w (rec l-1) (rec eA))
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv eA) (send eA)))
-  (label 589)
-  (parent 537)
-  (unrealized (1 3) (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)
-    (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) eB)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (8 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)))
-  (absent (eB (mul eA (rec l-0) w)) (l-1 (mul eA (rec l-0) w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 l-1 eB)
-  (operation nonce-test (added-listener eB) (mul w (rec l-1) eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) eB)))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1) eB))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv eB) (send eB)))
-  (label 590)
-  (parent 538)
-  (unrealized (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB l-0 rndx) (w expt)
-    (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w (rec eA)))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)))
-  (absent (eA (mul (rec eB) (rec l-0) w))
-    (l-1 (mul (rec eB) (rec l-0) w)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l-0 l) (eA l-0)
-    (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 l-1 eA)
-  (operation nonce-test (added-listener eA) (mul w (rec l-1) (rec eA))
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul (rec eB) (rec l-0) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1) (rec eA)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv eA) (send eA)))
-  (label 591)
-  (parent 542)
-  (unrealized (1 3) (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA l-0 rndx) (w expt)
-    (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-0) (mul eA (rec l-0) w)))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) eB)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (8 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)))
-  (absent (eB (mul eA (rec l-0) w)) (l-1 (mul eA (rec l-0) w)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))
-    (D B) (eA eB) (l-0 l) (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 l-1 eB)
-  (operation nonce-test (added-listener eB) (mul w (rec l-1) eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-0) (mul eA (rec l-0) w)))
-      (send (cat (exp (gen) l-0) (mul eA (rec l-0) w))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) eB)))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1) eB))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv eB) (send eB)))
-  (label 592)
-  (parent 543)
-  (unrealized (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eB rndx) (w expt)
-    (l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w)))
-  (deflistener (cat (gen) (mul w l-1 (rec eA))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)))
-  (absent (eA (mul (rec eB) w)) (l-1 (mul (rec eB) w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eB l-1 eA)
-  (operation nonce-test (added-listener eA) (mul w l-1 (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) w)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) w))))
-    ((recv (cat (gen) (mul w l-1 (rec eA))))
-      (send (cat (gen) (mul w l-1 (rec eA))))) ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv eA) (send eA)))
-  (label 593)
-  (parent 547)
-  (unrealized (1 3) (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 eA rndx) (w expt)
-    (l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA w)))
-  (deflistener (cat (gen) (mul w l-1 eB)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (8 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)))
-  (absent (eB (mul eA w)) (l-1 (mul eA w)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA l-1 eB)
-  (operation nonce-test (added-listener eB) (mul w l-1 eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA w)))
-      (send (cat (exp (gen) l-1) (mul eA w))))
-    ((recv (cat (gen) (mul w l-1 eB)))
-      (send (cat (gen) (mul w l-1 eB)))) ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv eB) (send eB)))
-  (label 594)
-  (parent 548)
-  (unrealized (1 3) (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l rndx) (w expt) (l-0 e l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w e l-1 eB))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e e l-1))) (l l) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul w e e)))
-  (deflistener (cat (exp (gen) e) (mul w l-1 eB)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (8 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)))
-  (absent (eB (mul w e e)) (l-1 (mul w e e)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e e l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul w e e l-1)) (gen))
-    ((exp (gen) (mul w e l-1 eB)) (gen)) (D B) (e eB) (l-0 l) (e l-0)
-    (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e l-1 eB)
-  (operation nonce-test (added-listener eB) (mul w l-1 eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w e l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul w e e l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul w e e)))
-      (send (cat (exp (gen) l-1) (mul w e e))))
-    ((recv (cat (exp (gen) e) (mul w l-1 eB)))
-      (send (cat (exp (gen) e) (mul w l-1 eB)))) ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv eB) (send eB)))
-  (label 595)
-  (parent 551)
-  (unrealized (1 3) (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB rndx) (w expt) (l-0 l-1 e rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-1 (rec e)))) (l l-0) (e e))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-1))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w)))
-  (deflistener (cat (exp (gen) e) (mul w l-1 (rec e) (rec e))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener e)
-  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)))
-  (absent (e (mul (rec eB) w)) (l-1 (mul (rec eB) w)))
-  (fn-of ("principal-of" (l-1 self) (l B) (l-0 D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec e))) (gen)) (D B) (e eB) (l-0 l) (e l-0)
-    (eB l) (e l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 l-1 e)
-  (operation nonce-test (added-listener e) (mul w l-1 (rec e) (rec e))
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w l-1 (rec e)))) (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) w)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) w))))
-    ((recv (cat (exp (gen) e) (mul w l-1 (rec e) (rec e))))
-      (send (cat (exp (gen) e) (mul w l-1 (rec e) (rec e)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv e) (send e)))
-  (label 596)
-  (parent 552)
-  (unrealized (1 3) (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l l-0 e l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul e l-1 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-1)) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (deflistener (cat (exp (gen) e) (mul l-1 (rec eA))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)))
-  (absent (l-1 (one)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul e l-1))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul e l-1 (rec eA))) (gen))
-    (D B) (eA e) (l l-0) (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e l-1 eA)
-  (operation nonce-test (added-listener eA) (mul l-1 (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul e l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((recv (cat (exp (gen) e) (mul l-1 (rec eA))))
-      (send (cat (exp (gen) e) (mul l-1 (rec eA)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv eA) (send eA)))
-  (label 597)
-  (parent 553)
-  (unrealized (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l rndx) (w expt) (l-0 e l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-1 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-1))) (l l-0) (e e))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) w))
-  (deflistener (cat (exp (gen) e) (mul w l-1 (rec eA))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)))
-  (absent (eA w) (l-1 w))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e l-1))) kh)))
-  (neq ((exp (gen) (mul w l-1)) (gen))
-    ((exp (gen) (mul w e l-1 (rec eA))) (gen)) (D B) (eA e) (l l-0)
-    (eA l) (e l-0) (eA l-0) (e l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 e l-1 eA)
-  (operation nonce-test (added-listener eA) (mul w l-1 (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D))) (send (exp (gen) e))
-      (recv (exp (gen) (mul w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) w)) (send (cat (exp (gen) l-1) w)))
-    ((recv (cat (exp (gen) e) (mul w l-1 (rec eA))))
-      (send (cat (exp (gen) e) (mul w l-1 (rec eA)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv eA) (send eA)))
-  (label 598)
-  (parent 555)
-  (unrealized (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eB rndx) (w expt) (e l-2 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-2 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w e l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul (rec eB) w e)))
-  (deflistener (cat (exp (gen) e) (mul w l-2 (rec eA))))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (9 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0))
-    ((8 0) (4 0)) ((8 1) (7 0)) ((9 1) (5 0)))
-  (absent (eA (mul (rec eB) w e)) (l-2 (mul (rec eB) w e)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e l-2))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w e l-2)) (gen))
-    ((exp (gen) (mul w e l-2 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eB l-2 eA)
-  (operation nonce-test (added-listener eA) (mul w l-2 (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-2 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w e l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul (rec eB) w e)))
-      (send (cat (exp (gen) l-2) (mul (rec eB) w e))))
-    ((recv (cat (exp (gen) e) (mul w l-2 (rec eA))))
-      (send (cat (exp (gen) e) (mul w l-2 (rec eA)))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)) ((recv eA) (send eA)))
-  (label 599)
-  (parent 559)
-  (unrealized (1 3) (4 0) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self peer self-0 name) (hl base)
-    (l l-0 l-1 eA rndx) (w expt) (e l-2 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w e l-2 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w e l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul eA w e)))
-  (deflistener (cat (exp (gen) e) (mul w l-2 eB)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l-1)
-    (e e))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (9 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 2) (5 0)) ((7 1) (5 0))
-    ((8 0) (4 0)) ((8 1) (7 0)) ((9 1) (5 0)))
-  (absent (eB (mul eA w e)) (l-2 (mul eA w e)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w e l-2 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w e l-2)) (gen))
-    ((exp (gen) (mul w e l-2 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA l-2 eB)
-  (operation nonce-test (added-listener eB) (mul w l-2 eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w e l-2 eB)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w e l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul eA w e)))
-      (send (cat (exp (gen) l-2) (mul eA w e))))
-    ((recv (cat (exp (gen) e) (mul w l-2 eB)))
-      (send (cat (exp (gen) e) (mul w l-2 eB))))
-    ((recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)) ((recv eB) (send eB)))
-  (label 600)
-  (parent 560)
-  (unrealized (1 3) (4 0) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB rndx) (w expt)
-    (l-0 l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 l-1 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-0 l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w l-1 (rec eA))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)))
-  (absent (eA (mul (rec eB) w l-0)) (l-1 (mul (rec eB) w l-0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0 l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-0 l-1)) (gen))
-    ((exp (gen) (mul w l-0 l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 l-1 eA)
-  (operation nonce-test (added-listener eA) (mul w l-1 (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0 l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) w l-0)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w l-1 (rec eA))))
-      (send (cat (exp (gen) l-0) (mul w l-1 (rec eA)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv eA) (send eA)))
-  (label 601)
-  (parent 563)
-  (unrealized (1 3) (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA rndx) (w expt)
-    (l-0 l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-0 l-1 eB))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-0 l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w l-1 eB)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (8 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)))
-  (absent (eB (mul eA w l-0)) (l-1 (mul eA w l-0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-0 l-1)) (gen))
-    ((exp (gen) (mul w l-0 l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 l-1 eB)
-  (operation nonce-test (added-listener eB) (mul w l-1 eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1 eB)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0 l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA w l-0)))
-      (send (cat (exp (gen) l-1) (mul eA w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w l-1 eB)))
-      (send (cat (exp (gen) l-0) (mul w l-1 eB))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv eB) (send eB)))
-  (label 602)
-  (parent 564)
-  (unrealized (1 3) (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eB rndx) (w expt)
-    (l-0 l-1 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 l-1 (rec eA)))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul (rec eB) w l-0 l-1))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w l-1 (rec eA))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (8 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)))
-  (absent (eA (mul (rec eB) w l-0)) (l-1 (mul (rec eB) w l-0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0 l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-0 l-1)) (gen))
-    ((exp (gen) (mul w l-0 l-1 (rec eA))) (gen)) (D B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eB l-0 l-1 eA)
-  (operation nonce-test (added-listener eA) (mul w l-1 (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-0 l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) w l-0)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w l-1 (rec eA))))
-      (send (cat (exp (gen) l-0) (mul w l-1 (rec eA)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv eA) (send eA)))
-  (label 603)
-  (parent 568)
-  (unrealized (1 3) (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self name) (l eA rndx) (w expt)
-    (l-0 l-1 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B) (hl (exp (gen) l))
-    (he (exp (gen) (mul w l-0 l-1 eB))) (l l-0) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul eA w l-0 l-1))) (l l)
-    (e eB))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) l-1) (mul eA w l-0)))
-  (deflistener (cat (exp (gen) l-0) (mul w l-1 eB)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (8 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)))
-  (absent (eB (mul eA w l-0)) (l-1 (mul eA w l-0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-0 l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-0 l-1)) (gen))
-    ((exp (gen) (mul w l-0 l-1 eB)) (gen)) (D B) (eA eB) (l-0 l)
-    (eA l-0) (eB l) (eA l) (eB l-0))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l eA l-0 l-1 eB)
-  (operation nonce-test (added-listener eB) (mul w l-1 eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-0 l-1 eB)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-0 l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA w l-0)))
-      (send (cat (exp (gen) l-1) (mul eA w l-0))))
-    ((recv (cat (exp (gen) l-0) (mul w l-1 eB)))
-      (send (cat (exp (gen) l-0) (mul w l-1 eB))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv eB) (send eB)))
-  (label 604)
-  (parent 569)
-  (unrealized (1 3) (4 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eB rndx) (w expt)
-    (l-1 l-2 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 l-2 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-1 l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul (rec eB) w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w l-2 (rec eA))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (9 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 1) (5 0)) ((8 0) (4 0)) ((8 1) (7 0)) ((9 1) (5 0)))
-  (absent (eA (mul (rec eB) w l-1)) (l-2 (mul (rec eB) w l-1)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1 l-2))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1 l-2)) (gen))
-    ((exp (gen) (mul w l-1 l-2 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eB l-1 l-2 eA)
-  (operation nonce-test (added-listener eA) (mul w l-2 (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 l-2 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1 l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul (rec eB) w l-1)))
-      (send (cat (exp (gen) l-2) (mul (rec eB) w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w l-2 (rec eA))))
-      (send (cat (exp (gen) l-1) (mul w l-2 (rec eA)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)) ((recv eA) (send eA)))
-  (label 605)
-  (parent 574)
-  (unrealized (1 3) (4 0) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA rndx) (w expt)
-    (l-1 l-2 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 l-2 eB))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-1 l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul eA w l-1)))
-  (deflistener (cat (exp (gen) l-1) (mul w l-2 eB)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (9 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (5 0))
-    ((7 1) (5 0)) ((8 0) (4 0)) ((8 1) (7 0)) ((9 1) (5 0)))
-  (absent (eB (mul eA w l-1)) (l-2 (mul eA w l-1)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 l-2 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1 l-2)) (gen))
-    ((exp (gen) (mul w l-1 l-2 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA l-1 l-2 eB)
-  (operation nonce-test (added-listener eB) (mul w l-2 eB) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 l-2 eB)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1 l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul eA w l-1)))
-      (send (cat (exp (gen) l-2) (mul eA w l-1))))
-    ((recv (cat (exp (gen) l-1) (mul w l-2 eB)))
-      (send (cat (exp (gen) l-1) (mul w l-2 eB))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)) ((recv eB) (send eB)))
-  (label 606)
-  (parent 575)
-  (unrealized (1 3) (4 0) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB rndx) (w expt)
-    (l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w)))
-  (deflistener (cat (exp (gen) l-2) (mul w l-1 (rec l-2))))
-  (defstrand ltx-gen 1 (self self) (l l-2))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self-0) (l l-1))
-  (deflistener l-2)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 0) (4 0)) ((6 0) (9 0))
-    ((7 1) (5 0)) ((8 0) (4 0)) ((8 1) (7 0)) ((9 1) (5 0)))
-  (absent (l-2 (mul eA (rec eB) w)) (l-1 (mul eA (rec eB) w)))
-  (fn-of ("principal-of" (l-1 self-0) (l-2 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (operation nonce-test (added-listener l-2) (mul w l-1 (rec l-2))
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) w))))
-    ((recv (cat (exp (gen) l-2) (mul w l-1 (rec l-2))))
-      (send (cat (exp (gen) l-2) (mul w l-1 (rec l-2)))))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))
-      (send l-1)) ((recv l-2) (send l-2)))
-  (label 607)
-  (parent 576)
-  (unrealized (1 3) (4 0) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eB l-1 rndx) (w expt)
-    (l-2 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w (rec eA)))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA))))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (9 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)) ((8 0) (4 0)) ((8 1) (7 0)) ((9 1) (6 0)))
-  (absent (eA (mul (rec eB) (rec l-1) w))
-    (l-2 (mul (rec eB) (rec l-1) w)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) w)) kh)))
-  (neq ((exp (gen) (mul (rec eB) w)) (gen))
-    ((exp (gen) (mul w (rec eA))) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eB l-1 l-2 eA)
-  (operation nonce-test (added-listener eA) (mul w (rec l-2) (rec eA))
-    (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) (rec l-1) w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA))))
-      (send (cat (exp (gen) l-2) (mul w (rec l-2) (rec eA)))))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)) ((recv eA) (send eA)))
-  (label 608)
-  (parent 580)
-  (unrealized (1 3) (4 0) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA l-1 rndx) (w expt)
-    (l-2 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec l-1) w)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l-2) (mul w (rec l-2) eB)))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (9 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (6 0)) ((6 1) (0 3))
-    ((7 1) (6 0)) ((8 0) (4 0)) ((8 1) (7 0)) ((9 1) (6 0)))
-  (absent (eB (mul eA (rec l-1) w)) (l-2 (mul eA (rec l-1) w)))
-  (fn-of ("principal-of" (l-2 self-0) (l-0 B) (l D) (l-1 self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w eB))) kh)))
-  (neq ((exp (gen) (mul eA w)) (gen)) ((exp (gen) (mul w eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA l-1 l-2 eB)
-  (operation nonce-test (added-listener eB) (mul w (rec l-2) eB) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec l-1) w)))
-      (send (cat (exp (gen) l-1) (mul eA (rec l-1) w))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l-2) (mul w (rec l-2) eB)))
-      (send (cat (exp (gen) l-2) (mul w (rec l-2) eB))))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)) ((recv eB) (send eB)))
-  (label 609)
-  (parent 581)
-  (unrealized (4 0) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB rndx) (w expt)
-    (l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-2))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-2))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-2) (mul eA (rec eB) w)))
-  (defstrand ltx-gen 1 (self self) (l l-2))
-  (deflistener (cat (exp (gen) l-1) (mul w (rec l-1) l-2)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self-0) (l l-1))
-  (deflistener l-2)
-  (precedes ((0 2) (4 0)) ((0 2) (6 0)) ((1 2) (4 0)) ((1 2) (6 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 0) (4 0)) ((5 0) (9 0)) ((6 1) (0 3))
-    ((7 1) (6 0)) ((8 0) (4 0)) ((8 1) (7 0)) ((9 1) (6 0)))
-  (absent (l-2 (mul eA (rec eB) w)) (l-1 (mul eA (rec eB) w)))
-  (fn-of ("principal-of" (l-1 self-0) (l-0 B) (l D) (l-2 self))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-2))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-2)) (gen))
-    ((exp (gen) (mul w l-2)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (operation nonce-test (added-listener l-2) (mul w (rec l-1) l-2)
-    (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-2))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-2)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-2) (mul eA (rec eB) w)))
-      (send (cat (exp (gen) l-2) (mul eA (rec eB) w))))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))))
-    ((recv (cat (exp (gen) l-1) (mul w (rec l-1) l-2)))
-      (send (cat (exp (gen) l-1) (mul w (rec l-1) l-2))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self-0 (privk self-0)))
-      (send l-1)) ((recv l-2) (send l-2)))
-  (label 610)
-  (parent 582)
-  (seen 611)
-  (unrealized (1 3) (4 0) (9 0))
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA eB rndx) (w expt)
-    (l-1 l-2 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA (rec eB) w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA (rec eB) w)))
-  (deflistener (cat (exp (gen) l-2) (mul w l-1 (rec l-2))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)) ((9 0) (4 0)) ((9 1) (8 0)))
-  (absent (l-2 (mul eA (rec eB) w)) (l-1 (mul eA (rec eB) w)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1))) kh)))
-  (neq ((exp (gen) (mul eA (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA eB l-1 l-2)
-  (operation nonce-test (displaced 6 10 ltx-gen 2) l-2 (9 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA (rec eB) w)))
-      (send (cat (exp (gen) l-1) (mul eA (rec eB) w))))
-    ((recv (cat (exp (gen) l-2) (mul w l-1 (rec l-2))))
-      (send (cat (exp (gen) l-2) (mul w l-1 (rec l-2)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 611)
-  (parent 607)
-  (unrealized (1 3) (4 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 l-1 l-2 eA eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 (rec eA) eB))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) l-1)) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (deflistener (cat (exp (gen) l-2) (mul l-1 (rec l-2) (rec eA) eB)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)) ((9 0) (4 0)) ((9 1) (8 0)))
-  (absent (l-2 (one)) (l-1 (one)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB))) kh)))
-  (neq ((exp (gen) l-1) (gen)) ((exp (gen) (mul l-1 (rec eA) eB)) (gen))
-    (D B) (eA eB) (l l-0) (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 l-1 l-2 eA eB)
-  (operation nonce-test
-    (contracted (eA-0 eA) (eB-0 eB) (w (mul (rec eA) eB))) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-1 (rec eA) eB)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) l-1)) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((recv (cat (exp (gen) l-2) (mul l-1 (rec l-2) (rec eA) eB)))
-      (send (cat (exp (gen) l-2) (mul l-1 (rec l-2) (rec eA) eB))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 612)
-  (parent 611)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 self-1 name)
-    (l l-0 l-1 l-2 eA eB l-3 rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul l-1 (rec eA) eB l-3)))
-    (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul l-1 l-3))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) l-3))
-  (deflistener
-    (cat (exp (gen) l-2) (mul l-1 (rec l-2) (rec eA) eB l-3)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (defstrand ltx-gen 2 (self self-1) (l l-3))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)) ((9 0) (4 0)) ((9 1) (8 0))
-    ((10 0) (5 0)) ((10 1) (4 0)))
-  (absent (l-2 l-3) (l-1 l-3))
-  (fn-of
-    ("principal-of" (l-3 self-1) (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul l-1 eB l-3))) kh)))
-  (neq ((exp (gen) (mul l-1 l-3)) (gen))
-    ((exp (gen) (mul l-1 (rec eA) eB l-3)) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 l-1 l-2 eA eB l-3)
-  (operation nonce-test (added-strand ltx-gen 2) l-3 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul l-1 (rec eA) eB l-3)))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul l-1 l-3))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) l-3)) (send (cat (exp (gen) l-1) l-3)))
-    ((recv (cat (exp (gen) l-2) (mul l-1 (rec l-2) (rec eA) eB l-3)))
-      (send (cat (exp (gen) l-2) (mul l-1 (rec l-2) (rec eA) eB l-3))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2))
-    ((send (enc "cert" (exp (gen) l-3) self-1 (privk self-1)))
-      (send l-3)))
-  (label 613)
-  (parent 611)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eB rndx) (w expt)
-    (l-1 l-2 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w)))
-  (deflistener (cat (exp (gen) l-2) (mul w l-1 (rec l-2) (rec eA))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)) ((9 0) (4 0)) ((9 1) (8 0)))
-  (absent (eA (mul (rec eB) w)) (l-2 (mul (rec eB) w))
-    (l-1 (mul (rec eB) w)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eB l-1 l-2 eA)
-  (operation nonce-test (added-absence eA (mul (rec eB) w))
-    (mul (rec eB) w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) w)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) w))))
-    ((recv (cat (exp (gen) l-2) (mul w l-1 (rec l-2) (rec eA))))
-      (send (cat (exp (gen) l-2) (mul w l-1 (rec l-2) (rec eA)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 614)
-  (parent 611)
-  (unrealized (0 3) (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA rndx) (w expt)
-    (l-1 l-2 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA w)))
-  (deflistener (cat (exp (gen) l-2) (mul w l-1 (rec l-2) eB)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)) ((9 0) (4 0)) ((9 1) (8 0)))
-  (absent (eB (mul eA w)) (l-2 (mul eA w)) (l-1 (mul eA w)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA l-1 l-2 eB)
-  (operation nonce-test (added-absence eB (mul eA w)) (mul eA w) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA w)))
-      (send (cat (exp (gen) l-1) (mul eA w))))
-    ((recv (cat (exp (gen) l-2) (mul w l-1 (rec l-2) eB)))
-      (send (cat (exp (gen) l-2) (mul w l-1 (rec l-2) eB))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)))
-  (label 615)
-  (parent 611)
-  (unrealized (1 3) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eB rndx) (w expt)
-    (l-1 l-2 eA rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 (rec eA)))) (l l)
-    (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul (rec eB) w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul (rec eB) w)))
-  (deflistener (cat (exp (gen) l-2) (mul w l-1 (rec l-2) (rec eA))))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (deflistener eA)
-  (precedes ((0 2) (4 0)) ((0 2) (10 0)) ((1 2) (4 0)) ((1 2) (5 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)) ((9 0) (4 0)) ((9 1) (8 0))
-    ((10 1) (5 0)))
-  (absent (eA (mul (rec eB) w)) (l-2 (mul (rec eB) w))
-    (l-1 (mul (rec eB) w)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-1))) kh)))
-  (neq ((exp (gen) (mul (rec eB) w l-1)) (gen))
-    ((exp (gen) (mul w l-1 (rec eA))) (gen)) (D B) (eA eB) (l l-0)
-    (eA l) (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eB l-1 l-2 eA)
-  (operation nonce-test (added-listener eA)
-    (mul w l-1 (rec l-2) (rec eA)) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 (rec eA))))
-      (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul (rec eB) w l-1)))
-      (send kh)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul (rec eB) w)))
-      (send (cat (exp (gen) l-1) (mul (rec eB) w))))
-    ((recv (cat (exp (gen) l-2) (mul w l-1 (rec l-2) (rec eA))))
-      (send (cat (exp (gen) l-2) (mul w l-1 (rec l-2) (rec eA)))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)) ((recv eA) (send eA)))
-  (label 616)
-  (parent 614)
-  (unrealized (1 3) (4 0) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (B D self self-0 name) (l l-0 eA rndx) (w expt)
-    (l-1 l-2 eB rndx))
-  (defstrand participant 5 (kh kh) (self D) (peer B)
-    (hl (exp (gen) l-0)) (he (exp (gen) (mul w l-1 eB))) (l l) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl (exp (gen) l))
-    (he (exp (gen) (mul eA w l-1))) (l l-0) (e eB))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) l-1) (mul eA w)))
-  (deflistener (cat (exp (gen) l-2) (mul w l-1 (rec l-2) eB)))
-  (deflistener l-1)
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener l-2)
-  (defstrand ltx-gen 2 (self self-0) (l l-2))
-  (deflistener eB)
-  (precedes ((0 2) (4 0)) ((0 2) (5 0)) ((1 2) (4 0)) ((1 2) (10 0))
-    ((2 0) (0 1)) ((2 0) (1 0)) ((3 0) (0 0)) ((3 0) (1 1))
-    ((4 1) (1 3)) ((5 1) (0 3)) ((6 1) (5 0)) ((7 0) (4 0))
-    ((7 1) (6 0)) ((8 1) (5 0)) ((9 0) (4 0)) ((9 1) (8 0))
-    ((10 1) (5 0)))
-  (absent (eB (mul eA w)) (l-2 (mul eA w)) (l-1 (mul eA w)))
-  (fn-of ("principal-of" (l-2 self-0) (l-1 self) (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul l l-0)) (exp (gen) (mul eA w l-1 eB)))
-        kh)))
-  (neq ((exp (gen) (mul eA w l-1)) (gen))
-    ((exp (gen) (mul w l-1 eB)) (gen)) (D B) (eA eB) (l l-0) (eA l)
-    (eB l-0) (eA l-0) (eB l))
-  (non-orig (privk B) (privk D) l l-0)
-  (precur (5 0) (4 0))
-  (uniq-gen l l-0 eA l-1 l-2 eB)
-  (operation nonce-test (added-listener eB) (mul w l-1 (rec l-2) eB)
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul w l-1 eB))) (send kh))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA w l-1))) (send kh))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) l-1) (mul eA w)))
-      (send (cat (exp (gen) l-1) (mul eA w))))
-    ((recv (cat (exp (gen) l-2) (mul w l-1 (rec l-2) eB)))
-      (send (cat (exp (gen) l-2) (mul w l-1 (rec l-2) eB))))
-    ((recv l-1) (send l-1))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv l-2) (send l-2))
-    ((send (enc "cert" (exp (gen) l-2) self-0 (privk self-0)))
-      (send l-2)) ((recv eB) (send eB)))
-  (label 617)
-  (parent 615)
-  (unrealized (1 3) (4 0) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol iadh-um diffie-hellman
-  (defrole participant
-    (vars (l e rndx) (hl he base) (self peer name) (kh data))
-    (trace (recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))
-      (recv he) (send kh))
-    (fn-of (foo ((hash (exp hl l) (exp he e)) kh)))
-    (neq (he (gen))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (enc "cert" (exp (gen) l) self (privk self))) (send l))
-    (uniq-gen l)
-    (fn-of ("principal-of" (l self)))))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (hl he hl-0 he-0 base)
-    (eA lA eB lB rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl hl) (he he)
-    (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D) (hl hl-0) (he he-0)
-    (l lB) (e eB))
-  (deflistener (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))
-  (fn-of
-    (foo ((hash (exp hl-0 lB) (exp he-0 eB)) kh)
-      ((hash (exp hl lA) (exp he eA)) kh)))
-  (neq (he-0 (gen)) (he (gen)) (A B) (eA eB) (lA lB) (eA lA) (eB lB)
-    (eA lB) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA lB)
-  (uniq-gen eA eB)
-  (comment "Implicit authentication + disclosure")
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" hl C (privk C))) (send (exp (gen) eA)) (recv he)
-      (send kh))
-    ((recv (enc "cert" (exp (gen) lB) B (privk B)))
-      (recv (enc "cert" hl-0 D (privk D))) (send (exp (gen) eB))
-      (recv he-0) (send kh))
-    ((recv (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))
-      (send (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))))
-  (label 618)
-  (unrealized (0 0) (0 1) (1 0) (1 1) (2 0))
-  (preskeleton)
-  (origs)
-  (comment "Not a skeleton"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (hl he base) (lA lB eA eB rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl hl) (he he)
-    (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp hl (mul lA (rec lB)))) (he (exp he (mul eA (rec eB))))
-    (l lB) (e eB))
-  (deflistener (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))
-  (precedes ((0 2) (1 3)) ((0 2) (2 0)) ((1 2) (2 0)))
-  (fn-of (foo ((hash (exp hl lA) (exp he eA)) kh)))
-  (neq ((exp he (mul eA (rec eB))) (gen)) (he (gen)) (A B) (eA eB)
-    (lA lB) (eA lA) (eB lB) (eA lB) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA lB)
-  (uniq-gen eA eB)
-  (comment "Implicit authentication + disclosure")
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" hl C (privk C))) (send (exp (gen) eA)) (recv he)
-      (send kh))
-    ((recv (enc "cert" (exp (gen) lB) B (privk B)))
-      (recv (enc "cert" (exp hl (mul lA (rec lB))) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp he (mul eA (rec eB)))) (send kh))
-    ((recv (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))
-      (send (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))))
-  (label 619)
-  (parent 618)
-  (unrealized (0 0) (0 1) (1 0) (1 1) (1 3) (2 0))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A B C D name) (hl he base) (lA lB eA eB rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl hl) (he he)
-    (l lA) (e eA))
-  (defstrand participant 5 (kh kh) (self B) (peer D)
-    (hl (exp hl (mul lA (rec lB)))) (he (exp he (mul eA (rec eB))))
-    (l lB) (e eB))
-  (deflistener (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))
-  (deflistener (cat (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))
-  (precedes ((0 2) (1 3)) ((0 2) (3 0)) ((1 2) (3 0)) ((3 1) (2 0)))
-  (fn-of (foo ((hash (exp hl lA) (exp he eA)) kh)))
-  (neq ((exp he (mul eA (rec eB))) (gen)) (he (gen)) (A B) (eA eB)
-    (lA lB) (eA lA) (eB lB) (eA lB) (eB lA))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA lB)
-  (uniq-gen eA eB)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))
-    (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))) (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" hl C (privk C))) (send (exp (gen) eA)) (recv he)
-      (send kh))
-    ((recv (enc "cert" (exp (gen) lB) B (privk B)))
-      (recv (enc "cert" (exp hl (mul lA (rec lB))) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp he (mul eA (rec eB)))) (send kh))
-    ((recv (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))
-      (send (hash (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB)))))
-    ((recv (cat (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))
-      (send (cat (exp (gen) (mul lA lB)) (exp (gen) (mul eA eB))))))
-  (label 620)
-  (parent 619)
-  (unrealized (0 0) (0 1) (1 0) (1 1) (1 3) (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol iadh-um diffie-hellman
-  (defrole participant
-    (vars (l e rndx) (hl he base) (self peer name) (kh data))
-    (trace (recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))
-      (recv he) (send kh))
-    (fn-of (foo ((hash (exp hl l) (exp he e)) kh)))
-    (neq (he (gen))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (enc "cert" (exp (gen) l) self (privk self))) (send l))
-    (uniq-gen l)
-    (fn-of ("principal-of" (l self)))))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C name) (he he-0 base) (eA lA lB rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) lB))
-    (he he-0) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA lB)) (exp he eA)))
-  (fn-of (foo ((hash (exp (gen) (mul lA lB)) (exp he-0 eA)) kh)))
-  (neq (he-0 (gen)) (A C) (lA lB) (eA lA) (eA lB))
-  (non-orig (privk A) (privk C) lA lB)
-  (comment "Implicit authentication + disclosure")
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) lB) C (privk C)))
-      (send (exp (gen) eA)) (recv he-0) (send kh))
-    ((recv (hash (exp (gen) (mul lA lB)) (exp he eA)))
-      (send (hash (exp (gen) (mul lA lB)) (exp he eA)))))
-  (label 621)
-  (unrealized (0 0) (0 1) (1 0))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C name) (he he-0 base) (eA lA lB rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) lB))
-    (he he-0) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA lB)) (exp he eA)))
-  (deflistener (cat (exp (gen) (mul lA lB)) (exp he eA)))
-  (precedes ((2 1) (1 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA lB)) (exp he-0 eA)) kh)))
-  (neq (he-0 (gen)) (A C) (lA lB) (eA lA) (eA lB))
-  (non-orig (privk A) (privk C) lA lB)
-  (operation encryption-test
-    (added-listener (cat (exp (gen) (mul lA lB)) (exp he eA)))
-    (hash (exp (gen) (mul lA lB)) (exp he eA)) (1 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) lB) C (privk C)))
-      (send (exp (gen) eA)) (recv he-0) (send kh))
-    ((recv (hash (exp (gen) (mul lA lB)) (exp he eA)))
-      (send (hash (exp (gen) (mul lA lB)) (exp he eA))))
-    ((recv (cat (exp (gen) (mul lA lB)) (exp he eA)))
-      (send (cat (exp (gen) (mul lA lB)) (exp he eA)))))
-  (label 622)
-  (parent 621)
-  (unrealized (0 0) (0 1) (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol iadh-um diffie-hellman
-  (defrole participant
-    (vars (l e rndx) (hl he base) (self peer name) (kh data))
-    (trace (recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))
-      (recv he) (send kh))
-    (fn-of (foo ((hash (exp hl l) (exp he e)) kh)))
-    (neq (he (gen))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (enc "cert" (exp (gen) l) self (privk self))) (send l))
-    (uniq-gen l)
-    (fn-of ("principal-of" (l self)))))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C name) (he he-0 base) (eA lA lB rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) lB))
-    (he he-0) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA lB)) (exp he eA)))
-  (fn-of (foo ((hash (exp (gen) (mul lA lB)) (exp he-0 eA)) kh)))
-  (neq (he-0 (gen)) (A C) (lA lB) (eA lA) (eA lB))
-  (non-orig (privk A) (privk C) lB)
-  (uniq-gen eA)
-  (comment "Implicit authentication + disclosure")
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) lB) C (privk C)))
-      (send (exp (gen) eA)) (recv he-0) (send kh))
-    ((recv (hash (exp (gen) (mul lA lB)) (exp he eA)))
-      (send (hash (exp (gen) (mul lA lB)) (exp he eA)))))
-  (label 623)
-  (unrealized (0 0) (0 1) (1 0))
-  (preskeleton)
-  (origs)
-  (comment "Not a skeleton"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C name) (he he-0 base) (eA lA lB rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) lB))
-    (he he-0) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA lB)) (exp he eA)))
-  (precedes ((0 2) (1 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA lB)) (exp he-0 eA)) kh)))
-  (neq (he-0 (gen)) (A C) (lA lB) (eA lA) (eA lB))
-  (non-orig (privk A) (privk C) lB)
-  (uniq-gen eA)
-  (comment "Implicit authentication + disclosure")
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) lB) C (privk C)))
-      (send (exp (gen) eA)) (recv he-0) (send kh))
-    ((recv (hash (exp (gen) (mul lA lB)) (exp he eA)))
-      (send (hash (exp (gen) (mul lA lB)) (exp he eA)))))
-  (label 624)
-  (parent 623)
-  (unrealized (0 0) (0 1) (1 0))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C name) (he he-0 base) (eA lA lB rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) lB))
-    (he he-0) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA lB)) (exp he eA)))
-  (deflistener (cat (exp (gen) (mul lA lB)) (exp he eA)))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA lB)) (exp he-0 eA)) kh)))
-  (neq (he-0 (gen)) (A C) (lA lB) (eA lA) (eA lB))
-  (non-orig (privk A) (privk C) lB)
-  (uniq-gen eA)
-  (operation encryption-test
-    (added-listener (cat (exp (gen) (mul lA lB)) (exp he eA)))
-    (hash (exp (gen) (mul lA lB)) (exp he eA)) (1 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) lB) C (privk C)))
-      (send (exp (gen) eA)) (recv he-0) (send kh))
-    ((recv (hash (exp (gen) (mul lA lB)) (exp he eA)))
-      (send (hash (exp (gen) (mul lA lB)) (exp he eA))))
-    ((recv (cat (exp (gen) (mul lA lB)) (exp he eA)))
-      (send (cat (exp (gen) (mul lA lB)) (exp he eA)))))
-  (label 625)
-  (parent 624)
-  (unrealized (0 0) (0 1) (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C name) (he he-0 base) (eA lA lB rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) lB))
-    (he he-0) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA lB)) (exp he eA)))
-  (deflistener (cat (exp (gen) (mul lA lB)) (exp he eA)))
-  (deflistener (cat (exp (gen) lB) lA))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA lB)) (exp he-0 eA)) kh)))
-  (neq (he-0 (gen)) (A C) (lA lB) (eA lA) (eA lB))
-  (non-orig (privk A) (privk C) lB)
-  (uniq-gen eA)
-  (operation nonce-test (added-listener (cat (exp (gen) lB) lA))
-    (exp (gen) (mul lA lB)) (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) lB) C (privk C)))
-      (send (exp (gen) eA)) (recv he-0) (send kh))
-    ((recv (hash (exp (gen) (mul lA lB)) (exp he eA)))
-      (send (hash (exp (gen) (mul lA lB)) (exp he eA))))
-    ((recv (cat (exp (gen) (mul lA lB)) (exp he eA)))
-      (send (cat (exp (gen) (mul lA lB)) (exp he eA))))
-    ((recv (cat (exp (gen) lB) lA)) (send (cat (exp (gen) lB) lA))))
-  (label 626)
-  (parent 625)
-  (unrealized (0 0) (0 1) (2 0) (3 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he he-0 hl base)
-    (eA lA l e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he-0) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA e)) (exp he eA)))
-  (deflistener (cat (exp (gen) (mul lA e)) (exp he eA)))
-  (deflistener (cat (exp (gen) e) lA))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he-0 eA)) kh)))
-  (neq (he-0 (gen)) (A C) (lA e) (eA lA) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (uniq-gen eA)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e)
-    (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he-0) (send kh))
-    ((recv (hash (exp (gen) (mul lA e)) (exp he eA)))
-      (send (hash (exp (gen) (mul lA e)) (exp he eA))))
-    ((recv (cat (exp (gen) (mul lA e)) (exp he eA)))
-      (send (cat (exp (gen) (mul lA e)) (exp he eA))))
-    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 627)
-  (parent 626)
-  (unrealized (0 0) (0 1) (2 0))
-  (comment "6 in cohort - 6 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he he-0 base) (eA lA l rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he-0) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA l)) (exp he eA)))
-  (deflistener (cat (exp (gen) (mul lA l)) (exp he eA)))
-  (deflistener (cat (exp (gen) l) lA))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul lA l)) (exp he-0 eA)) kh)))
-  (neq (he-0 (gen)) (A C) (lA l) (eA lA) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (uniq-gen eA l)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l) (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he-0) (send kh))
-    ((recv (hash (exp (gen) (mul lA l)) (exp he eA)))
-      (send (hash (exp (gen) (mul lA l)) (exp he eA))))
-    ((recv (cat (exp (gen) (mul lA l)) (exp he eA)))
-      (send (cat (exp (gen) (mul lA l)) (exp he eA))))
-    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))
-    ((send (enc "cert" (exp (gen) l) self (privk self)))))
-  (label 628)
-  (parent 626)
-  (unrealized (0 0) (0 1) (2 0))
-  (comment "6 in cohort - 6 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C name) (he he-0 base) (eA lA lB rndx) (w expt))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) lB))
-    (he he-0) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA lB)) (exp he eA)))
-  (deflistener (cat (exp (gen) (mul lA lB)) (exp he eA)))
-  (deflistener (cat (exp (gen) lB) lA))
-  (deflistener (cat (exp (gen) (mul lB (rec w))) w))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA lB)) (exp he-0 eA)) kh)))
-  (neq (he-0 (gen)) (A C) (lA lB) (eA lA) (eA lB))
-  (non-orig (privk A) (privk C) lB)
-  (uniq-gen eA)
-  (precur (4 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul lB (rec w))) w)) (exp (gen) lB)
-    (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) lB) C (privk C)))
-      (send (exp (gen) eA)) (recv he-0) (send kh))
-    ((recv (hash (exp (gen) (mul lA lB)) (exp he eA)))
-      (send (hash (exp (gen) (mul lA lB)) (exp he eA))))
-    ((recv (cat (exp (gen) (mul lA lB)) (exp he eA)))
-      (send (cat (exp (gen) (mul lA lB)) (exp he eA))))
-    ((recv (cat (exp (gen) lB) lA)) (send (cat (exp (gen) lB) lA)))
-    ((recv (cat (exp (gen) (mul lB (rec w))) w))
-      (send (cat (exp (gen) (mul lB (rec w))) w))))
-  (label 629)
-  (parent 626)
-  (unrealized (0 0) (0 1) (2 0) (4 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (eA lA l e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA e)) (gen)))
-  (deflistener (cat (exp (gen) (mul lA e)) (gen)))
-  (deflistener (cat (exp (gen) e) lA))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (uniq-gen eA)
-  (operation nonce-test (contracted (he-0 (exp (gen) (rec eA)))) (gen)
-    (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA e)) (gen)))
-      (send (hash (exp (gen) (mul lA e)) (gen))))
-    ((recv (cat (exp (gen) (mul lA e)) (gen)))
-      (send (cat (exp (gen) (mul lA e)) (gen))))
-    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 630)
-  (parent 627)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (l e l-0 e-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-0) (e e-0))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0)))
-  (fn-of (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))
-  (neq (he (gen)) (A C) (l-0 e) (e-0 l-0) (e-0 e))
-  (non-orig (privk A) (privk C) e)
-  (uniq-gen e-0)
-  (operation nonce-test (displaced 5 0 participant 3) (exp (gen) e-1)
-    (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) e-0)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 631)
-  (parent 627)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (eA lA l e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) e) lA))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (uniq-gen eA)
-  (operation nonce-test (displaced 5 4 participant 3) (exp (gen) e-0)
-    (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul lA e)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul lA e)) (exp (gen) e))))
-    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 632)
-  (parent 627)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer self-0 peer-0 name) (he hl hl-0 base)
-    (eA lA l e l-0 e-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) e) lA))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)
-    (e e-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 2) (2 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (uniq-gen eA)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e-0)
-    (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) e-0)))
-      (send (hash (exp (gen) (mul lA e)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) e-0)))
-      (send (cat (exp (gen) (mul lA e)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))
-      (send (exp (gen) e-0))))
-  (label 633)
-  (parent 627)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer self-0 name) (he hl base)
-    (eA lA l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) e) lA))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 0) (2 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (uniq-gen eA l-0)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-0) (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul lA e)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul lA e)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))
-  (label 634)
-  (parent 627)
-  (unrealized (0 0) (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he he-0 hl base)
-    (eA lA l e rndx) (w expt))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he-0) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA e)) (exp he eA)))
-  (deflistener (cat (exp (gen) (mul lA e)) (exp he eA)))
-  (deflistener (cat (exp (gen) e) lA))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp he (mul eA (rec w))) w))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 1) (2 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he-0 eA)) kh)))
-  (neq (he-0 (gen)) (A C) (lA e) (eA lA) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (uniq-gen eA)
-  (precur (5 0))
-  (operation nonce-test
-    (added-listener (cat (exp he (mul eA (rec w))) w)) (exp he eA)
-    (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he-0) (send kh))
-    ((recv (hash (exp (gen) (mul lA e)) (exp he eA)))
-      (send (hash (exp (gen) (mul lA e)) (exp he eA))))
-    ((recv (cat (exp (gen) (mul lA e)) (exp he eA)))
-      (send (cat (exp (gen) (mul lA e)) (exp he eA))))
-    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp he (mul eA (rec w))) w))
-      (send (cat (exp he (mul eA (rec w))) w))))
-  (label 635)
-  (parent 627)
-  (unrealized (0 0) (0 1) (5 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (eA lA l rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA l)) (gen)))
-  (deflistener (cat (exp (gen) (mul lA l)) (gen)))
-  (deflistener (cat (exp (gen) l) lA))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (uniq-gen eA l)
-  (operation nonce-test (contracted (he-0 (exp (gen) (rec eA)))) (gen)
-    (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA l)) (gen)))
-      (send (hash (exp (gen) (mul lA l)) (gen))))
-    ((recv (cat (exp (gen) (mul lA l)) (gen)))
-      (send (cat (exp (gen) (mul lA l)) (gen))))
-    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))
-    ((send (enc "cert" (exp (gen) l) self (privk self)))))
-  (label 636)
-  (parent 628)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (l l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-0) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (A C) (l-0 l) (e l-0) (e l))
-  (non-orig (privk A) (privk C) l)
-  (uniq-gen l e)
-  (operation nonce-test (displaced 5 0 participant 3) (exp (gen) e-0)
-    (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))
-      (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((send (enc "cert" (exp (gen) l) self (privk self)))))
-  (label 637)
-  (parent 628)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self self-0 peer name) (he hl base)
-    (eA lA l l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l) lA))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 2) (2 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (uniq-gen eA l)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e)
-    (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul lA l)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul lA l)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 638)
-  (parent 628)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (eA lA l rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) l) lA))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (uniq-gen eA l)
-  (operation nonce-test (displaced 5 4 ltx-gen 1) (exp (gen) l-0) (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) l)))
-      (send (hash (exp (gen) (mul lA l)) (exp (gen) l))))
-    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) l)))
-      (send (cat (exp (gen) (mul lA l)) (exp (gen) l))))
-    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))
-    ((send (enc "cert" (exp (gen) l) self (privk self)))))
-  (label 639)
-  (parent 628)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self self-0 name) (he base) (eA lA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) l) lA))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (2 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (uniq-gen eA l l-0)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-0) (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul lA l)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul lA l)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))
-  (label 640)
-  (parent 628)
-  (unrealized (0 0) (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he he-0 base) (eA lA l rndx)
-    (w expt))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he-0) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA l)) (exp he eA)))
-  (deflistener (cat (exp (gen) (mul lA l)) (exp he eA)))
-  (deflistener (cat (exp (gen) l) lA))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp he (mul eA (rec w))) w))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul lA l)) (exp he-0 eA)) kh)))
-  (neq (he-0 (gen)) (A C) (lA l) (eA lA) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (uniq-gen eA l)
-  (precur (5 0))
-  (operation nonce-test
-    (added-listener (cat (exp he (mul eA (rec w))) w)) (exp he eA)
-    (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he-0) (send kh))
-    ((recv (hash (exp (gen) (mul lA l)) (exp he eA)))
-      (send (hash (exp (gen) (mul lA l)) (exp he eA))))
-    ((recv (cat (exp (gen) (mul lA l)) (exp he eA)))
-      (send (cat (exp (gen) (mul lA l)) (exp he eA))))
-    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp he (mul eA (rec w))) w))
-      (send (cat (exp he (mul eA (rec w))) w))))
-  (label 641)
-  (parent 628)
-  (unrealized (0 0) (0 1) (5 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C name) (he he-0 base) (lB l e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) lB))
-    (he he-0) (l l) (e e))
-  (deflistener (hash (exp (gen) (mul lB l)) (exp he e)))
-  (deflistener (cat (exp (gen) (mul lB l)) (exp he e)))
-  (deflistener (cat (exp (gen) lB) l))
-  (deflistener (cat (exp (gen) e) (mul lB (rec e))))
-  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lB l)) (exp he-0 e)) kh)))
-  (neq (he-0 (gen)) (A C) (l lB) (e l) (e lB))
-  (non-orig (privk A) (privk C) lB)
-  (precur (4 0))
-  (uniq-gen e)
-  (operation nonce-test (displaced 5 0 participant 3) (exp (gen) e-0)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) lB) C (privk C)))
-      (send (exp (gen) e)) (recv he-0) (send kh))
-    ((recv (hash (exp (gen) (mul lB l)) (exp he e)))
-      (send (hash (exp (gen) (mul lB l)) (exp he e))))
-    ((recv (cat (exp (gen) (mul lB l)) (exp he e)))
-      (send (cat (exp (gen) (mul lB l)) (exp he e))))
-    ((recv (cat (exp (gen) lB) l)) (send (cat (exp (gen) lB) l)))
-    ((recv (cat (exp (gen) e) (mul lB (rec e))))
-      (send (cat (exp (gen) e) (mul lB (rec e))))))
-  (label 642)
-  (parent 629)
-  (unrealized (0 0) (0 1) (2 0) (3 0) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he he-0 hl base)
-    (eA lA l lB e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) lB))
-    (he he-0) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA lB)) (exp he eA)))
-  (deflistener (cat (exp (gen) (mul lA lB)) (exp he eA)))
-  (deflistener (cat (exp (gen) lB) lA))
-  (deflistener (cat (exp (gen) e) (mul lB (rec e))))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA lB)) (exp he-0 eA)) kh)))
-  (neq (he-0 (gen)) (A C) (lA lB) (eA lA) (eA lB))
-  (non-orig (privk A) (privk C) lB)
-  (precur (4 0))
-  (uniq-gen eA)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e)
-    (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) lB) C (privk C)))
-      (send (exp (gen) eA)) (recv he-0) (send kh))
-    ((recv (hash (exp (gen) (mul lA lB)) (exp he eA)))
-      (send (hash (exp (gen) (mul lA lB)) (exp he eA))))
-    ((recv (cat (exp (gen) (mul lA lB)) (exp he eA)))
-      (send (cat (exp (gen) (mul lA lB)) (exp he eA))))
-    ((recv (cat (exp (gen) lB) lA)) (send (cat (exp (gen) lB) lA)))
-    ((recv (cat (exp (gen) e) (mul lB (rec e))))
-      (send (cat (exp (gen) e) (mul lB (rec e)))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 643)
-  (parent 629)
-  (unrealized (0 0) (0 1) (2 0) (3 0) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he he-0 base) (eA lA lB l rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) lB))
-    (he he-0) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA lB)) (exp he eA)))
-  (deflistener (cat (exp (gen) (mul lA lB)) (exp he eA)))
-  (deflistener (cat (exp (gen) lB) lA))
-  (deflistener (cat (exp (gen) l) (mul lB (rec l))))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (4 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul lA lB)) (exp he-0 eA)) kh)))
-  (neq (he-0 (gen)) (A C) (lA lB) (eA lA) (eA lB))
-  (non-orig (privk A) (privk C) lB)
-  (precur (4 0))
-  (uniq-gen eA l)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) lB) C (privk C)))
-      (send (exp (gen) eA)) (recv he-0) (send kh))
-    ((recv (hash (exp (gen) (mul lA lB)) (exp he eA)))
-      (send (hash (exp (gen) (mul lA lB)) (exp he eA))))
-    ((recv (cat (exp (gen) (mul lA lB)) (exp he eA)))
-      (send (cat (exp (gen) (mul lA lB)) (exp he eA))))
-    ((recv (cat (exp (gen) lB) lA)) (send (cat (exp (gen) lB) lA)))
-    ((recv (cat (exp (gen) l) (mul lB (rec l))))
-      (send (cat (exp (gen) l) (mul lB (rec l)))))
-    ((send (enc "cert" (exp (gen) l) self (privk self)))))
-  (label 644)
-  (parent 629)
-  (unrealized (0 0) (0 1) (2 0) (3 0) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (eA l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (gen)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (gen)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 0) (0 0)) ((5 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (uniq-gen eA l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (gen)))
-      (send (hash (exp (gen) (mul e l-0)) (gen))))
-    ((recv (cat (exp (gen) (mul e l-0)) (gen)))
-      (send (cat (exp (gen) (mul e l-0)) (gen))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 645)
-  (parent 630)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (l e e-0 l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-0) (e e-0))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 0) (0 0)) ((5 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))
-  (neq (he (gen)) (A C) (l-0 e) (e-0 l-0) (e-0 e))
-  (non-orig (privk A) (privk C) e)
-  (uniq-gen e-0 l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) e-0)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 646)
-  (parent 631)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (eA l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 0) (0 0)) ((5 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (uniq-gen eA l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 647)
-  (parent 632)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer self-0 peer-0 name) (he hl hl-0 base)
-    (eA l e l-0 e-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) e) l-1))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)
-    (e e-0))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 2) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))
-  (fn-of ("principal-of" (l-1 A))
-    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-1 e) (eA l-1) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (uniq-gen eA l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) e-0)))
-      (send (hash (exp (gen) (mul e l-1)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) e-0)))
-      (send (cat (exp (gen) (mul e l-1)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))
-      (send (exp (gen) e-0)))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 648)
-  (parent 633)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 name) (he hl base)
-    (eA l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 0) (0 0)) ((5 0) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk C) (privk self-0) e)
-  (uniq-gen eA l-0)
-  (operation encryption-test (displaced 6 5 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))
-  (label 649)
-  (parent 634)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer self-0 name) (he hl base)
-    (eA l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) e) l-1))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 0) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))
-  (fn-of ("principal-of" (l-1 A) (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-1 e) (eA l-1) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (uniq-gen eA l-0 l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul e l-1)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul e l-1)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 650)
-  (parent 634)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (eA lA l e rndx)
-    (w expt))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) e) lA))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (gen) w))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 1) (2 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (uniq-gen eA)
-  (precur (5 0))
-  (operation nonce-test (contracted (he-0 (exp (gen) (mul (rec eA) w))))
-    (gen) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) w)))
-      (send (hash (exp (gen) (mul lA e)) (exp (gen) w))))
-    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) w)))
-      (send (cat (exp (gen) (mul lA e)) (exp (gen) w))))
-    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (gen) w)) (send (cat (gen) w))))
-  (label 651)
-  (parent 635)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (l e rndx) (w expt)
-    (l-0 e-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-0) (e e-0))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) e) l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) w))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 1) (2 0)))
-  (fn-of (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))
-  (neq (he (gen)) (A C) (l-0 e) (e-0 l-0) (e-0 e))
-  (non-orig (privk A) (privk C) e)
-  (precur (5 0))
-  (uniq-gen e-0)
-  (operation nonce-test (displaced 6 0 participant 3) (exp (gen) e-1)
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) e-0)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w))))
-  (label 652)
-  (parent 635)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (eA lA rndx)
-    (w expt) (l e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) e) lA))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((4 2) (5 0)) ((5 1) (2 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (5 0))
-  (uniq-gen eA)
-  (operation nonce-test (displaced 6 4 participant 3) (exp (gen) e-0)
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 653)
-  (parent 635)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer self-0 peer-0 name) (he hl hl-0 base)
-    (eA lA l e rndx) (w expt) (l-0 e-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) e) lA))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) w))
-  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)
-    (e e-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 1) (2 0)) ((6 2) (5 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (5 0))
-  (uniq-gen eA)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e-0)
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e-0))))
-      (send (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e-0))))
-      (send (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))
-      (send (exp (gen) e-0))))
-  (label 654)
-  (parent 635)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer self-0 name) (he hl base)
-    (eA lA l e rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) e) lA))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 1) (2 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (5 0))
-  (uniq-gen eA l-0)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-0) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul lA e)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul lA e)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))
-  (label 655)
-  (parent 635)
-  (unrealized (0 0) (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (gen)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (gen)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (0 0)) ((5 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (uniq-gen eA l l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (gen)))
-      (send (hash (exp (gen) (mul l l-0)) (gen))))
-    ((recv (cat (exp (gen) (mul l l-0)) (gen)))
-      (send (cat (exp (gen) (mul l l-0)) (gen))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 656)
-  (parent 636)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-0) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (0 0)) ((5 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (A C) (l-0 l) (e l-0) (e l))
-  (non-orig (privk A) (privk C) l)
-  (uniq-gen l e l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))
-      (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 657)
-  (parent 637)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self self-0 peer name) (he hl base)
-    (eA l l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l) l-1))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 2) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))
-  (fn-of ("principal-of" (l-1 A) (l self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-1 l) (eA l-1) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (uniq-gen eA l l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l l-1)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul l l-1)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 658)
-  (parent 638)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (0 0)) ((5 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (uniq-gen eA l l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 659)
-  (parent 639)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (0 0)) ((5 0) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk C) (privk self-0) l)
-  (uniq-gen eA l l-0)
-  (operation encryption-test (displaced 6 5 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))
-  (label 660)
-  (parent 640)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self self-0 name) (he base) (eA l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) l) l-1))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))
-  (fn-of ("principal-of" (l-1 A) (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-1 l) (eA l-1) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (uniq-gen eA l l-0 l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul l l-1)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul l l-1)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 661)
-  (parent 640)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (eA lA l rndx) (w expt))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) l) lA))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (gen) w))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (uniq-gen eA l)
-  (precur (5 0))
-  (operation nonce-test (contracted (he-0 (exp (gen) (mul (rec eA) w))))
-    (gen) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) w)))
-      (send (hash (exp (gen) (mul lA l)) (exp (gen) w))))
-    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) w)))
-      (send (cat (exp (gen) (mul lA l)) (exp (gen) w))))
-    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (gen) w)) (send (cat (gen) w))))
-  (label 662)
-  (parent 641)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (l rndx) (w expt)
-    (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-0) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l) l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (A C) (l-0 l) (e l-0) (e l))
-  (non-orig (privk A) (privk C) l)
-  (precur (5 0))
-  (uniq-gen l e)
-  (operation nonce-test (displaced 6 0 participant 3) (exp (gen) e-0)
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))
-      (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 663)
-  (parent 641)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self self-0 peer name) (he hl base)
-    (eA lA l rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l) lA))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)) ((6 2) (5 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (5 0))
-  (uniq-gen eA l)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e)
-    (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul lA l)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul lA l)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 664)
-  (parent 641)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (eA lA rndx) (w expt)
-    (l rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) l) lA))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) l) w))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (5 0))
-  (uniq-gen eA l)
-  (operation nonce-test (displaced 6 4 ltx-gen 1) (exp (gen) l-0) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l))))
-      (send (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l))))
-      (send (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w))))
-  (label 665)
-  (parent 641)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self self-0 name) (he base) (eA lA l rndx)
-    (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) l) lA))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (5 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (5 0))
-  (uniq-gen eA l l-0)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-0) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))
-  (label 666)
-  (parent 641)
-  (unrealized (0 0) (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he he-0 hl base)
-    (eA lA l e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he-0) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA e)) (exp he eA)))
-  (deflistener (cat (exp (gen) (mul lA e)) (exp he eA)))
-  (deflistener (cat (exp (gen) e) lA))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he-0 eA)) kh)))
-  (neq (he-0 (gen)) (A C) (lA e) (eA lA) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (4 0))
-  (uniq-gen eA)
-  (operation nonce-test (contracted (lB e) (e-0 e)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he-0) (send kh))
-    ((recv (hash (exp (gen) (mul lA e)) (exp he eA)))
-      (send (hash (exp (gen) (mul lA e)) (exp he eA))))
-    ((recv (cat (exp (gen) (mul lA e)) (exp he eA)))
-      (send (cat (exp (gen) (mul lA e)) (exp he eA))))
-    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 667)
-  (parent 643)
-  (unrealized (0 0) (0 1) (2 0))
-  (comment "6 in cohort - 6 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he he-0 base) (eA lA l rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he-0) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA l)) (exp he eA)))
-  (deflistener (cat (exp (gen) (mul lA l)) (exp he eA)))
-  (deflistener (cat (exp (gen) l) lA))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul lA l)) (exp he-0 eA)) kh)))
-  (neq (he-0 (gen)) (A C) (lA l) (eA lA) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (4 0))
-  (uniq-gen eA l)
-  (operation nonce-test (contracted (lB l) (l-0 l)) (one) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he-0) (send kh))
-    ((recv (hash (exp (gen) (mul lA l)) (exp he eA)))
-      (send (hash (exp (gen) (mul lA l)) (exp he eA))))
-    ((recv (cat (exp (gen) (mul lA l)) (exp he eA)))
-      (send (cat (exp (gen) (mul lA l)) (exp he eA))))
-    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self)))))
-  (label 668)
-  (parent 644)
-  (unrealized (0 0) (0 1) (2 0))
-  (comment "6 in cohort - 6 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 name) (he hl base)
-    (eA l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (gen)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (gen)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 0) (0 0)) ((5 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk C) (privk self-0) e)
-  (uniq-gen eA l-0)
-  (operation nonce-test (displaced 5 6 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (gen)))
-      (send (hash (exp (gen) (mul e l-0)) (gen))))
-    ((recv (cat (exp (gen) (mul e l-0)) (gen)))
-      (send (cat (exp (gen) (mul e l-0)) (gen))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 669)
-  (parent 645)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 name) (he hl base)
-    (l e e-0 l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-0) (e e-0))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 0) (0 0)) ((5 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 e) (e-0 l-0) (e-0 e))
-  (non-orig (privk C) (privk self-0) e)
-  (uniq-gen e-0 l-0)
-  (operation nonce-test (displaced 5 6 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) e-0)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 670)
-  (parent 646)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 name) (he hl base)
-    (eA l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 0) (0 0)) ((5 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk C) (privk self-0) e)
-  (uniq-gen eA l-0)
-  (operation nonce-test (displaced 5 6 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 671)
-  (parent 647)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 peer-0 self-1 name)
-    (he hl hl-0 base) (eA l e l-0 e-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) e) l-1))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)
-    (e e-0))
-  (defstrand ltx-gen 2 (self self-1) (l l-1))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 2) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self-1))
-    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 C) (l-1 e) (eA l-1) (eA e))
-  (non-orig (privk C) (privk self-1) e)
-  (uniq-gen eA l-1)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-1 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) e-0)))
-      (send (hash (exp (gen) (mul e l-1)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) e-0)))
-      (send (cat (exp (gen) (mul e l-1)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))
-      (send (exp (gen) e-0)))
-    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send l-1)))
-  (label 672)
-  (parent 648)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 name) (he hl base)
-    (eA l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 0) (0 0)) ((5 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk C) (privk self-0) e)
-  (uniq-gen eA l-0)
-  (operation nonce-test (displaced 5 6 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 673)
-  (parent 649)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 self-1 name) (he hl base)
-    (eA l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) e) l-1))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (defstrand ltx-gen 2 (self self-1) (l l-1))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 0) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 C) (l-1 e) (eA l-1) (eA e))
-  (non-orig (privk C) (privk self-1) e)
-  (uniq-gen eA l-0 l-1)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-1 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul e l-1)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul e l-1)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send l-1)))
-  (label 674)
-  (parent 650)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (eA l e rndx)
-    (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (gen) w))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 1) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (5 0))
-  (uniq-gen eA l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) w)))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) w)))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (gen) w)) (send (cat (gen) w)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 675)
-  (parent 651)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (l e rndx) (w expt)
-    (e-0 l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-0) (e e-0))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) e) l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) w))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 1) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))
-  (neq (he (gen)) (A C) (l-0 e) (e-0 l-0) (e-0 e))
-  (non-orig (privk A) (privk C) e)
-  (precur (5 0))
-  (uniq-gen e-0 l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) e-0)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 676)
-  (parent 652)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (eA rndx) (w expt)
-    (l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) e) l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((4 2) (5 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (5 0))
-  (uniq-gen eA l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 677)
-  (parent 653)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer self-0 peer-0 name) (he hl hl-0 base)
-    (eA l e rndx) (w expt) (l-0 e-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) e) l-1))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) w))
-  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)
-    (e e-0))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 1) (2 0)) ((6 2) (5 0)) ((7 0) (0 0)) ((7 0) (3 0)))
-  (fn-of ("principal-of" (l-1 A))
-    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-1 e) (eA l-1) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (5 0))
-  (uniq-gen eA l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))
-      (send (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))
-      (send (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))
-      (send (exp (gen) e-0)))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 678)
-  (parent 654)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 name) (he hl base) (eA l e rndx)
-    (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) e) l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 1) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk C) (privk self-0) e)
-  (precur (5 0))
-  (uniq-gen eA l-0)
-  (operation encryption-test (displaced 7 6 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))
-  (label 679)
-  (parent 655)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer self-0 name) (he hl base) (eA l e rndx)
-    (w expt) (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) e) l-1))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 1) (2 0)) ((6 0) (5 0)) ((7 0) (0 0)) ((7 0) (3 0)))
-  (fn-of ("principal-of" (l-1 A) (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-1 e) (eA l-1) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (5 0))
-  (uniq-gen eA l-0 l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 680)
-  (parent 655)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (gen)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (gen)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk C) (privk self-0) l)
-  (uniq-gen eA l l-0)
-  (operation nonce-test (displaced 5 6 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (gen)))
-      (send (hash (exp (gen) (mul l l-0)) (gen))))
-    ((recv (cat (exp (gen) (mul l l-0)) (gen)))
-      (send (cat (exp (gen) (mul l l-0)) (gen))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 681)
-  (parent 656)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 name) (he base) (l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-0) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 l) (e l-0) (e l))
-  (non-orig (privk C) (privk self-0) l)
-  (uniq-gen l e l-0)
-  (operation nonce-test (displaced 5 6 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))
-      (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 682)
-  (parent 657)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 peer self-1 name) (he hl base)
-    (eA l l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l) l-1))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (defstrand ltx-gen 2 (self self-1) (l l-1))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 2) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self-1) (l self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 C) (l-1 l) (eA l-1) (eA l))
-  (non-orig (privk C) (privk self-1) l)
-  (uniq-gen eA l l-1)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-1 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l l-1)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul l l-1)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send l-1)))
-  (label 683)
-  (parent 658)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk C) (privk self-0) l)
-  (uniq-gen eA l l-0)
-  (operation nonce-test (displaced 5 6 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 684)
-  (parent 659)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk C) (privk self-0) l)
-  (uniq-gen eA l l-0)
-  (operation nonce-test (displaced 5 6 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 685)
-  (parent 660)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 self-1 name) (he base)
-    (eA l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) l) l-1))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (defstrand ltx-gen 2 (self self-1) (l l-1))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 C) (l-1 l) (eA l-1) (eA l))
-  (non-orig (privk C) (privk self-1) l)
-  (uniq-gen eA l l-0 l-1)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-1 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul l l-1)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul l l-1)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send l-1)))
-  (label 686)
-  (parent 661)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (eA l rndx) (w expt)
-    (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (gen) w))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (5 0))
-  (uniq-gen eA l l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) w)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (gen) w)) (send (cat (gen) w)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 687)
-  (parent 662)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (l rndx) (w expt)
-    (e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-0) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l) l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (A C) (l-0 l) (e l-0) (e l))
-  (non-orig (privk A) (privk C) l)
-  (precur (5 0))
-  (uniq-gen l e l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))
-      (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 688)
-  (parent 663)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self self-0 peer name) (he hl base) (eA l rndx)
-    (w expt) (l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l) l-1))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)) ((6 2) (5 0)) ((7 0) (0 0))
-    ((7 0) (3 0)))
-  (fn-of ("principal-of" (l-1 A) (l self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-1 l) (eA l-1) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (5 0))
-  (uniq-gen eA l l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 689)
-  (parent 664)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) l) l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) l) w))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (5 0))
-  (uniq-gen eA l l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 690)
-  (parent 665)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 name) (he base) (eA l rndx) (w expt)
-    (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) l) l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 0) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk C) (privk self-0) l)
-  (precur (5 0))
-  (uniq-gen eA l l-0)
-  (operation encryption-test (displaced 7 6 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))
-  (label 691)
-  (parent 666)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self self-0 name) (he base) (eA l rndx) (w expt)
-    (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) l) l-1))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (5 0)) ((7 0) (0 0))
-    ((7 0) (3 0)))
-  (fn-of ("principal-of" (l-1 A) (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-1 l) (eA l-1) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (5 0))
-  (uniq-gen eA l l-0 l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 692)
-  (parent 666)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (eA lA l e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA e)) (gen)))
-  (deflistener (cat (exp (gen) (mul lA e)) (gen)))
-  (deflistener (cat (exp (gen) e) lA))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (4 0))
-  (uniq-gen eA)
-  (operation nonce-test (contracted (he-0 (exp (gen) (rec eA)))) (gen)
-    (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA e)) (gen)))
-      (send (hash (exp (gen) (mul lA e)) (gen))))
-    ((recv (cat (exp (gen) (mul lA e)) (gen)))
-      (send (cat (exp (gen) (mul lA e)) (gen))))
-    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 693)
-  (parent 667)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (l e l-0 e-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-0) (e e-0))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)))
-  (fn-of (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))
-  (neq (he (gen)) (A C) (l-0 e) (e-0 l-0) (e-0 e))
-  (non-orig (privk A) (privk C) e)
-  (precur (4 0))
-  (uniq-gen e-0)
-  (operation nonce-test (displaced 6 0 participant 3) (exp (gen) e-1)
-    (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) e-0)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 694)
-  (parent 667)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (eA lA l e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) e) lA))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (4 0))
-  (uniq-gen eA)
-  (operation nonce-test (displaced 6 5 participant 3) (exp (gen) e-0)
-    (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul lA e)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul lA e)) (exp (gen) e))))
-    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 695)
-  (parent 667)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer self-0 peer-0 name) (he hl hl-0 base)
-    (eA lA l e l-0 e-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) e) lA))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)
-    (e e-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 2) (2 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (4 0))
-  (uniq-gen eA)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e-0)
-    (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) e-0)))
-      (send (hash (exp (gen) (mul lA e)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) e-0)))
-      (send (cat (exp (gen) (mul lA e)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))
-      (send (exp (gen) e-0))))
-  (label 696)
-  (parent 667)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer self-0 name) (he hl base)
-    (eA lA l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) e) lA))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 0) (2 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (4 0))
-  (uniq-gen eA l-0)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-0) (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul lA e)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul lA e)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))
-  (label 697)
-  (parent 667)
-  (unrealized (0 0) (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he he-0 hl base)
-    (eA lA l e rndx) (w expt))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he-0) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA e)) (exp he eA)))
-  (deflistener (cat (exp (gen) (mul lA e)) (exp he eA)))
-  (deflistener (cat (exp (gen) e) lA))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp he (mul eA (rec w))) w))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 1) (2 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he-0 eA)) kh)))
-  (neq (he-0 (gen)) (A C) (lA e) (eA lA) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (6 0) (4 0))
-  (uniq-gen eA)
-  (operation nonce-test
-    (added-listener (cat (exp he (mul eA (rec w))) w)) (exp he eA)
-    (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he-0) (send kh))
-    ((recv (hash (exp (gen) (mul lA e)) (exp he eA)))
-      (send (hash (exp (gen) (mul lA e)) (exp he eA))))
-    ((recv (cat (exp (gen) (mul lA e)) (exp he eA)))
-      (send (cat (exp (gen) (mul lA e)) (exp he eA))))
-    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp he (mul eA (rec w))) w))
-      (send (cat (exp he (mul eA (rec w))) w))))
-  (label 698)
-  (parent 667)
-  (unrealized (0 0) (0 1) (6 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (eA lA l rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA l)) (gen)))
-  (deflistener (cat (exp (gen) (mul lA l)) (gen)))
-  (deflistener (cat (exp (gen) l) lA))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (4 0))
-  (uniq-gen eA l)
-  (operation nonce-test (contracted (he-0 (exp (gen) (rec eA)))) (gen)
-    (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA l)) (gen)))
-      (send (hash (exp (gen) (mul lA l)) (gen))))
-    ((recv (cat (exp (gen) (mul lA l)) (gen)))
-      (send (cat (exp (gen) (mul lA l)) (gen))))
-    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self)))))
-  (label 699)
-  (parent 668)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (l l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-0) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (A C) (l-0 l) (e l-0) (e l))
-  (non-orig (privk A) (privk C) l)
-  (precur (4 0))
-  (uniq-gen l e)
-  (operation nonce-test (displaced 6 0 participant 3) (exp (gen) e-0)
-    (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))
-      (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self)))))
-  (label 700)
-  (parent 668)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self self-0 peer name) (he hl base)
-    (eA lA l l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l) lA))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 2) (2 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (4 0))
-  (uniq-gen eA l)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e)
-    (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul lA l)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul lA l)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 701)
-  (parent 668)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (eA lA l rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) l) lA))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (4 0))
-  (uniq-gen eA l)
-  (operation nonce-test (displaced 6 5 ltx-gen 1) (exp (gen) l-0) (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) l)))
-      (send (hash (exp (gen) (mul lA l)) (exp (gen) l))))
-    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) l)))
-      (send (cat (exp (gen) (mul lA l)) (exp (gen) l))))
-    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self)))))
-  (label 702)
-  (parent 668)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self self-0 name) (he base) (eA lA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) l) lA))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (2 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (4 0))
-  (uniq-gen eA l l-0)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-0) (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul lA l)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul lA l)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))
-  (label 703)
-  (parent 668)
-  (unrealized (0 0) (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he he-0 base) (eA lA l rndx)
-    (w expt))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he-0) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA l)) (exp he eA)))
-  (deflistener (cat (exp (gen) (mul lA l)) (exp he eA)))
-  (deflistener (cat (exp (gen) l) lA))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp he (mul eA (rec w))) w))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul lA l)) (exp he-0 eA)) kh)))
-  (neq (he-0 (gen)) (A C) (lA l) (eA lA) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l)
-  (operation nonce-test
-    (added-listener (cat (exp he (mul eA (rec w))) w)) (exp he eA)
-    (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he-0) (send kh))
-    ((recv (hash (exp (gen) (mul lA l)) (exp he eA)))
-      (send (hash (exp (gen) (mul lA l)) (exp he eA))))
-    ((recv (cat (exp (gen) (mul lA l)) (exp he eA)))
-      (send (cat (exp (gen) (mul lA l)) (exp he eA))))
-    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp he (mul eA (rec w))) w))
-      (send (cat (exp he (mul eA (rec w))) w))))
-  (label 704)
-  (parent 668)
-  (unrealized (0 0) (0 1) (6 0))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 name) (he hl base) (eA l e rndx)
-    (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (gen) w))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk C) (privk self-0) e)
-  (precur (5 0))
-  (uniq-gen eA l-0)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) w)))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) w)))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (gen) w)) (send (cat (gen) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 705)
-  (parent 675)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 name) (he hl base) (l e rndx)
-    (w expt) (e-0 l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-0) (e e-0))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) e) l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) w))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 e) (e-0 l-0) (e-0 e))
-  (non-orig (privk C) (privk self-0) e)
-  (precur (5 0))
-  (uniq-gen e-0 l-0)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) e-0)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 706)
-  (parent 676)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 name) (he hl base) (eA rndx)
-    (w expt) (l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) e) l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((4 2) (5 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk C) (privk self-0) e)
-  (precur (5 0))
-  (uniq-gen eA l-0)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 707)
-  (parent 677)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 peer-0 self-1 name)
-    (he hl hl-0 base) (eA l e rndx) (w expt) (l-0 e-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) e) l-1))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) w))
-  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)
-    (e e-0))
-  (defstrand ltx-gen 2 (self self-1) (l l-1))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 1) (2 0)) ((6 2) (5 0)) ((7 0) (0 0)) ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self-1))
-    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 C) (l-1 e) (eA l-1) (eA e))
-  (non-orig (privk C) (privk self-1) e)
-  (precur (5 0))
-  (uniq-gen eA l-1)
-  (operation nonce-test (displaced 7 8 ltx-gen 2) l-1 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))
-      (send (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))
-      (send (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))
-      (send (exp (gen) e-0)))
-    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send l-1)))
-  (label 708)
-  (parent 678)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 name) (he hl base) (eA l e rndx)
-    (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) e) l-0))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk C) (privk self-0) e)
-  (precur (5 0))
-  (uniq-gen eA l-0)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 709)
-  (parent 679)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 self-1 name) (he hl base)
-    (eA l e rndx) (w expt) (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) e) l-1))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (defstrand ltx-gen 2 (self self-1) (l l-1))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 2) (3 0))
-    ((5 1) (2 0)) ((6 0) (5 0)) ((7 0) (0 0)) ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 C) (l-1 e) (eA l-1) (eA e))
-  (non-orig (privk C) (privk self-1) e)
-  (precur (5 0))
-  (uniq-gen eA l-0 l-1)
-  (operation nonce-test (displaced 7 8 ltx-gen 2) l-1 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send l-1)))
-  (label 710)
-  (parent 680)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (gen)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (gen)))
-  (deflistener (cat (exp (gen) l-0) l))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (uniq-gen eA l l-0)
-  (operation encryption-test (displaced 6 4 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (gen)))
-      (send (hash (exp (gen) (mul l l-0)) (gen))))
-    ((recv (cat (exp (gen) (mul l l-0)) (gen)))
-      (send (cat (exp (gen) (mul l l-0)) (gen))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 711)
-  (parent 681)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (e l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l-0) l))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (uniq-gen e l l-0)
-  (operation encryption-test (displaced 6 4 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) e)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 712)
-  (parent 682)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 peer self-1 name) (he hl base)
-    (eA l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul l-0 l-1)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l-1) l-0))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)
-    (e e))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 2) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (uniq-gen eA l-0 l-1)
-  (operation encryption-test (displaced 7 4 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul l-0 l-1)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul l-0 l-1)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 713)
-  (parent 683)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) l-0) l))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (uniq-gen eA l l-0)
-  (operation encryption-test (displaced 6 4 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 714)
-  (parent 684)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) l-0) l))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (uniq-gen eA l l-0)
-  (operation encryption-test (displaced 6 4 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 715)
-  (parent 685)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 self-1 name) (he base)
-    (eA l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) (mul l-0 l-1)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) l-1) l-0))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand ltx-gen 1 (self self-0) (l l))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (uniq-gen eA l l-0 l-1)
-  (operation encryption-test (displaced 7 4 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l))))
-    ((recv (cat (exp (gen) (mul l-0 l-1)) (exp (gen) l)))
-      (send (cat (exp (gen) (mul l-0 l-1)) (exp (gen) l))))
-    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 716)
-  (parent 686)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 name) (he base) (eA l rndx) (w expt)
-    (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (gen) w))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk C) (privk self-0) l)
-  (precur (5 0))
-  (uniq-gen eA l l-0)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) w)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (gen) w)) (send (cat (gen) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 717)
-  (parent 687)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 name) (he base) (l rndx) (w expt)
-    (e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-0) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l) l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 l) (e l-0) (e l))
-  (non-orig (privk C) (privk self-0) l)
-  (precur (5 0))
-  (uniq-gen l e l-0)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))
-      (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 718)
-  (parent 688)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 peer self-1 name) (he hl base)
-    (eA l rndx) (w expt) (l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l) l-1))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (defstrand ltx-gen 2 (self self-1) (l l-1))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)) ((6 2) (5 0)) ((7 0) (0 0))
-    ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self-1) (l self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 C) (l-1 l) (eA l-1) (eA l))
-  (non-orig (privk C) (privk self-1) l)
-  (precur (5 0))
-  (uniq-gen eA l l-1)
-  (operation nonce-test (displaced 7 8 ltx-gen 2) l-1 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send l-1)))
-  (label 719)
-  (parent 689)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) l) l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) l) w))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk C) (privk self-0) l)
-  (precur (5 0))
-  (uniq-gen eA l l-0)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 720)
-  (parent 690)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 name) (he base) (eA l rndx) (w expt)
-    (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) l) l-0))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk C) (privk self-0) l)
-  (precur (5 0))
-  (uniq-gen eA l l-0)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 721)
-  (parent 691)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 self-1 name) (he base) (eA l rndx)
-    (w expt) (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) l) l-1))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (defstrand ltx-gen 2 (self self-1) (l l-1))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (5 0)) ((7 0) (0 0))
-    ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 C) (l-1 l) (eA l-1) (eA l))
-  (non-orig (privk C) (privk self-1) l)
-  (precur (5 0))
-  (uniq-gen eA l l-0 l-1)
-  (operation nonce-test (displaced 7 8 ltx-gen 2) l-1 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send l-1)))
-  (label 722)
-  (parent 692)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (eA l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (gen)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (gen)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 0) (0 0)) ((6 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (4 0))
-  (uniq-gen eA l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (gen)))
-      (send (hash (exp (gen) (mul e l-0)) (gen))))
-    ((recv (cat (exp (gen) (mul e l-0)) (gen)))
-      (send (cat (exp (gen) (mul e l-0)) (gen))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 723)
-  (parent 693)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (l e e-0 l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-0) (e e-0))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 0) (0 0)) ((6 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))
-  (neq (he (gen)) (A C) (l-0 e) (e-0 l-0) (e-0 e))
-  (non-orig (privk A) (privk C) e)
-  (precur (4 0))
-  (uniq-gen e-0 l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) e-0)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 724)
-  (parent 694)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (eA l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 0) (0 0)) ((6 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (4 0))
-  (uniq-gen eA l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 725)
-  (parent 695)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer self-0 peer-0 name) (he hl hl-0 base)
-    (eA l e l-0 e-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) e) l-1))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)
-    (e e-0))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 2) (2 0)) ((7 0) (0 0)) ((7 0) (3 0)))
-  (fn-of ("principal-of" (l-1 A))
-    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-1 e) (eA l-1) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (4 0))
-  (uniq-gen eA l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) e-0)))
-      (send (hash (exp (gen) (mul e l-1)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) e-0)))
-      (send (cat (exp (gen) (mul e l-1)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))
-      (send (exp (gen) e-0)))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 726)
-  (parent 696)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 name) (he hl base)
-    (eA l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 0) (0 0)) ((6 0) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk C) (privk self-0) e)
-  (precur (4 0))
-  (uniq-gen eA l-0)
-  (operation encryption-test (displaced 7 6 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))
-  (label 727)
-  (parent 697)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer self-0 name) (he hl base)
-    (eA l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) e) l-1))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 0) (2 0)) ((7 0) (0 0)) ((7 0) (3 0)))
-  (fn-of ("principal-of" (l-1 A) (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-1 e) (eA l-1) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (4 0))
-  (uniq-gen eA l-0 l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul e l-1)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul e l-1)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 728)
-  (parent 697)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (eA lA l e rndx)
-    (w expt))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) e) lA))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (gen) w))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 1) (2 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (6 0) (4 0))
-  (uniq-gen eA)
-  (operation nonce-test (contracted (he-0 (exp (gen) (mul (rec eA) w))))
-    (gen) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) w)))
-      (send (hash (exp (gen) (mul lA e)) (exp (gen) w))))
-    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) w)))
-      (send (cat (exp (gen) (mul lA e)) (exp (gen) w))))
-    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (gen) w)) (send (cat (gen) w))))
-  (label 729)
-  (parent 698)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (l e rndx) (w expt)
-    (l-0 e-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-0) (e e-0))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) e) l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) w))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 1) (2 0)))
-  (fn-of (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))
-  (neq (he (gen)) (A C) (l-0 e) (e-0 l-0) (e-0 e))
-  (non-orig (privk A) (privk C) e)
-  (precur (6 0) (4 0))
-  (uniq-gen e-0)
-  (operation nonce-test (displaced 7 0 participant 3) (exp (gen) e-1)
-    (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) e-0)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w))))
-  (label 730)
-  (parent 698)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (eA lA rndx)
-    (w expt) (l e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) e) lA))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((5 2) (6 0)) ((6 1) (2 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (6 0) (4 0))
-  (uniq-gen eA)
-  (operation nonce-test (displaced 7 5 participant 3) (exp (gen) e-0)
-    (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 731)
-  (parent 698)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer self-0 peer-0 name) (he hl hl-0 base)
-    (eA lA l e rndx) (w expt) (l-0 e-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) e) lA))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) w))
-  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)
-    (e e-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 1) (2 0)) ((7 2) (6 0)))
-  (fn-of (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (6 0) (4 0))
-  (uniq-gen eA)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e-0)
-    (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e-0))))
-      (send (hash (exp (gen) (mul lA e)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e-0))))
-      (send (cat (exp (gen) (mul lA e)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))
-      (send (exp (gen) e-0))))
-  (label 732)
-  (parent 698)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer self-0 name) (he hl base)
-    (eA lA l e rndx) (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA e)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul lA e)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) e) lA))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 1) (2 0)) ((7 0) (6 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul lA e)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA e) (eA lA) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l-0)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-0) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA e)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul lA e)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul lA e)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul lA e)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) e) lA)) (send (cat (exp (gen) e) lA)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))
-  (label 733)
-  (parent 698)
-  (unrealized (0 0) (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (gen)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (gen)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (4 0))
-  (uniq-gen eA l l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (gen)))
-      (send (hash (exp (gen) (mul l l-0)) (gen))))
-    ((recv (cat (exp (gen) (mul l l-0)) (gen)))
-      (send (cat (exp (gen) (mul l l-0)) (gen))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 734)
-  (parent 699)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-0) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (A C) (l-0 l) (e l-0) (e l))
-  (non-orig (privk A) (privk C) l)
-  (precur (4 0))
-  (uniq-gen l e l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))
-      (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 735)
-  (parent 700)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self self-0 peer name) (he hl base)
-    (eA l l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l) l-1))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 2) (2 0)) ((7 0) (0 0))
-    ((7 0) (3 0)))
-  (fn-of ("principal-of" (l-1 A) (l self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-1 l) (eA l-1) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (4 0))
-  (uniq-gen eA l l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l l-1)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul l l-1)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 736)
-  (parent 701)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (4 0))
-  (uniq-gen eA l l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 737)
-  (parent 702)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 0) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk C) (privk self-0) l)
-  (precur (4 0))
-  (uniq-gen eA l l-0)
-  (operation encryption-test (displaced 7 6 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))
-  (label 738)
-  (parent 703)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self self-0 name) (he base) (eA l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) l) l-1))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (2 0)) ((7 0) (0 0))
-    ((7 0) (3 0)))
-  (fn-of ("principal-of" (l-1 A) (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-1 l) (eA l-1) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (4 0))
-  (uniq-gen eA l l-0 l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul l l-1)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul l l-1)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 739)
-  (parent 703)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (eA lA l rndx) (w expt))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) l) lA))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (gen) w))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l)
-  (operation nonce-test (contracted (he-0 (exp (gen) (mul (rec eA) w))))
-    (gen) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) w)))
-      (send (hash (exp (gen) (mul lA l)) (exp (gen) w))))
-    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) w)))
-      (send (cat (exp (gen) (mul lA l)) (exp (gen) w))))
-    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (gen) w)) (send (cat (gen) w))))
-  (label 740)
-  (parent 704)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (l rndx) (w expt)
-    (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-0) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l) l-0))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (A C) (l-0 l) (e l-0) (e l))
-  (non-orig (privk A) (privk C) l)
-  (precur (6 0) (4 0))
-  (uniq-gen l e)
-  (operation nonce-test (displaced 7 0 participant 3) (exp (gen) e-0)
-    (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))
-      (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w))))
-  (label 741)
-  (parent 704)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self self-0 peer name) (he hl base)
-    (eA lA l rndx) (w expt) (l-0 e rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l) lA))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 2) (6 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l)
-  (operation nonce-test (added-strand participant 3) (exp (gen) e)
-    (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul lA l)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul lA l)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e))))
-  (label 742)
-  (parent 704)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (eA lA rndx) (w expt)
-    (l rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) l) lA))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) l) w))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l)
-  (operation nonce-test (displaced 7 5 ltx-gen 1) (exp (gen) l-0) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l))))
-      (send (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l))))
-      (send (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w))))
-  (label 743)
-  (parent 704)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self self-0 name) (he base) (eA lA l rndx)
-    (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l lA) (e eA))
-  (deflistener (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) l) lA))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (6 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul lA l)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (lA l) (eA lA) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l l-0)
-  (operation nonce-test (added-strand ltx-gen 1) (exp (gen) l-0) (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul lA l)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul lA l)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) l) lA)) (send (cat (exp (gen) l) lA)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))
-  (label 744)
-  (parent 704)
-  (unrealized (0 0) (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (gen)))
-  (deflistener (cat (exp (gen) l-0) l))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 0) (0 0)) ((4 1) (2 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (gen)))
-      (send (hash (exp (gen) (mul l l-0)) (gen))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 745)
-  (parent 711)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (e l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l-0) l))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 0) (0 0)) ((4 1) (2 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (uniq-gen e l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) e)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 746)
-  (parent 712)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 peer self-1 name) (he hl base)
-    (eA l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l-1) l-0))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)
-    (e e))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 2) (1 0)) ((5 0) (0 0)) ((5 1) (2 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (uniq-gen eA l-0 l-1)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 747)
-  (parent 713)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) l-0) l))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 0) (0 0)) ((4 1) (2 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 748)
-  (parent 714)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) l-0) l))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 0) (0 0)) ((4 1) (2 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 749)
-  (parent 715)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 self-1 name) (he base)
-    (eA l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) l-1) l-0))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand ltx-gen 1 (self self-0) (l l))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 0) (1 0)) ((5 0) (0 0)) ((5 1) (2 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (uniq-gen eA l l-0 l-1)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l))))
-    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 750)
-  (parent 716)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) l-0) l))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (gen) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (5 0))
-  (uniq-gen eA l l-0)
-  (operation encryption-test (displaced 7 4 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) w)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (gen) w)) (send (cat (gen) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 751)
-  (parent 717)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (w expt) (e l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l-0) l))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (5 0))
-  (uniq-gen e l l-0)
-  (operation encryption-test (displaced 7 4 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) e)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 752)
-  (parent 718)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 peer self-1 name) (he hl base) (eA rndx)
-    (w expt) (l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l-1) l-0))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)
-    (e e))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)) ((6 2) (5 0)) ((7 0) (0 0))
-    ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (precur (5 0))
-  (uniq-gen eA l-0 l-1)
-  (operation encryption-test (displaced 8 4 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 753)
-  (parent 719)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) l-0) l))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (5 0))
-  (uniq-gen eA l l-0)
-  (operation encryption-test (displaced 7 4 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 754)
-  (parent 720)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) l-0) l))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (5 0))
-  (uniq-gen eA l l-0)
-  (operation encryption-test (displaced 7 4 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 755)
-  (parent 721)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 self-1 name) (he base) (eA rndx) (w expt)
-    (l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) l-1) l-0))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l) w))
-  (defstrand ltx-gen 1 (self self-0) (l l))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (2 0)) ((6 0) (5 0)) ((7 0) (0 0))
-    ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (precur (5 0))
-  (uniq-gen eA l l-0 l-1)
-  (operation encryption-test (displaced 8 4 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))
-      (send (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 756)
-  (parent 722)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 name) (he hl base)
-    (eA l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (gen)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (gen)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk C) (privk self-0) e)
-  (precur (4 0))
-  (uniq-gen eA l-0)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (gen)))
-      (send (hash (exp (gen) (mul e l-0)) (gen))))
-    ((recv (cat (exp (gen) (mul e l-0)) (gen)))
-      (send (cat (exp (gen) (mul e l-0)) (gen))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 757)
-  (parent 723)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 name) (he hl base)
-    (l e e-0 l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-0) (e e-0))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 e) (e-0 l-0) (e-0 e))
-  (non-orig (privk C) (privk self-0) e)
-  (precur (4 0))
-  (uniq-gen e-0 l-0)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) e-0)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) e-0)))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 758)
-  (parent 724)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 name) (he hl base)
-    (eA l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk C) (privk self-0) e)
-  (precur (4 0))
-  (uniq-gen eA l-0)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 759)
-  (parent 725)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 peer-0 self-1 name)
-    (he hl hl-0 base) (eA l e l-0 e-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) e-0)))
-  (deflistener (cat (exp (gen) e) l-1))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)
-    (e e-0))
-  (defstrand ltx-gen 2 (self self-1) (l l-1))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 2) (2 0)) ((7 0) (0 0)) ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self-1))
-    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 C) (l-1 e) (eA l-1) (eA e))
-  (non-orig (privk C) (privk self-1) e)
-  (precur (4 0))
-  (uniq-gen eA l-1)
-  (operation nonce-test (displaced 7 8 ltx-gen 2) l-1 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) e-0)))
-      (send (hash (exp (gen) (mul e l-1)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) e-0)))
-      (send (cat (exp (gen) (mul e l-1)) (exp (gen) e-0))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))
-      (send (exp (gen) e-0)))
-    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send l-1)))
-  (label 760)
-  (parent 726)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 name) (he hl base)
-    (eA l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk C) (privk self-0) e)
-  (precur (4 0))
-  (uniq-gen eA l-0)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 761)
-  (parent 727)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 self-1 name) (he hl base)
-    (eA l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) e) l-1))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (defstrand ltx-gen 2 (self self-1) (l l-1))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 0) (2 0)) ((7 0) (0 0)) ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 C) (l-1 e) (eA l-1) (eA e))
-  (non-orig (privk C) (privk self-1) e)
-  (precur (4 0))
-  (uniq-gen eA l-0 l-1)
-  (operation nonce-test (displaced 7 8 ltx-gen 2) l-1 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul e l-1)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul e l-1)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send l-1)))
-  (label 762)
-  (parent 728)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (eA l e rndx)
-    (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (gen) w))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 1) (2 0)) ((7 0) (0 0)) ((7 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) w)))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) w)))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (gen) w)) (send (cat (gen) w)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 763)
-  (parent 729)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (l e rndx) (w expt)
-    (e-0 l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-0) (e e-0))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) e) l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) w))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 1) (2 0)) ((7 0) (0 0)) ((7 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))
-  (neq (he (gen)) (A C) (l-0 e) (e-0 l-0) (e-0 e))
-  (non-orig (privk A) (privk C) e)
-  (precur (6 0) (4 0))
-  (uniq-gen e-0 l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) e-0)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 764)
-  (parent 730)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer name) (he hl base) (eA rndx) (w expt)
-    (l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) e) l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((5 2) (6 0)) ((6 1) (2 0)) ((7 0) (0 0))
-    ((7 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 765)
-  (parent 731)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer self-0 peer-0 name) (he hl hl-0 base)
-    (eA l e rndx) (w expt) (l-0 e-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) e) l-1))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) w))
-  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)
-    (e e-0))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 1) (2 0)) ((7 2) (6 0)) ((8 0) (0 0))
-    ((8 0) (3 0)))
-  (fn-of ("principal-of" (l-1 A))
-    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-1 e) (eA l-1) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))
-      (send (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))
-      (send (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))
-      (send (exp (gen) e-0)))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 766)
-  (parent 732)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 name) (he hl base) (eA l e rndx)
-    (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) e) l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 1) (2 0)) ((7 0) (0 0)) ((7 0) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk C) (privk self-0) e)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l-0)
-  (operation encryption-test (displaced 8 7 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))
-  (label 767)
-  (parent 733)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self peer self-0 name) (he hl base) (eA l e rndx)
-    (w expt) (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) e))
-    (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) e) l-1))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 1) (2 0)) ((7 0) (6 0)) ((8 0) (0 0))
-    ((8 0) (3 0)))
-  (fn-of ("principal-of" (l-1 A) (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-1 e) (eA l-1) (eA e))
-  (non-orig (privk A) (privk C) e)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l-0 l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 768)
-  (parent 733)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (gen)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (gen)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk C) (privk self-0) l)
-  (precur (4 0))
-  (uniq-gen eA l l-0)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (gen)))
-      (send (hash (exp (gen) (mul l l-0)) (gen))))
-    ((recv (cat (exp (gen) (mul l l-0)) (gen)))
-      (send (cat (exp (gen) (mul l l-0)) (gen))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 769)
-  (parent 734)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 name) (he base) (l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-0) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 l) (e l-0) (e l))
-  (non-orig (privk C) (privk self-0) l)
-  (precur (4 0))
-  (uniq-gen l e l-0)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))
-      (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 770)
-  (parent 735)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 peer self-1 name) (he hl base)
-    (eA l l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l) l-1))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (defstrand ltx-gen 2 (self self-1) (l l-1))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 2) (2 0)) ((7 0) (0 0))
-    ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self-1) (l self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 C) (l-1 l) (eA l-1) (eA l))
-  (non-orig (privk C) (privk self-1) l)
-  (precur (4 0))
-  (uniq-gen eA l l-1)
-  (operation nonce-test (displaced 7 8 ltx-gen 2) l-1 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l l-1)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul l l-1)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send l-1)))
-  (label 771)
-  (parent 736)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk C) (privk self-0) l)
-  (precur (4 0))
-  (uniq-gen eA l l-0)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 772)
-  (parent 737)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk C) (privk self-0) l)
-  (precur (4 0))
-  (uniq-gen eA l l-0)
-  (operation nonce-test (displaced 6 7 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 773)
-  (parent 738)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 self-1 name) (he base)
-    (eA l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) l) l-1))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (defstrand ltx-gen 2 (self self-1) (l l-1))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (2 0)) ((7 0) (0 0))
-    ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 C) (l-1 l) (eA l-1) (eA l))
-  (non-orig (privk C) (privk self-1) l)
-  (precur (4 0))
-  (uniq-gen eA l l-0 l-1)
-  (operation nonce-test (displaced 7 8 ltx-gen 2) l-1 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul l l-1)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul l l-1)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send l-1)))
-  (label 774)
-  (parent 739)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (eA l rndx) (w expt)
-    (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (gen) w))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))
-    ((7 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) w)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (gen) w)) (send (cat (gen) w)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 775)
-  (parent 740)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (l rndx) (w expt)
-    (e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-0) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l) l-0))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))
-    ((7 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (A C) (l-0 l) (e l-0) (e l))
-  (non-orig (privk A) (privk C) l)
-  (precur (6 0) (4 0))
-  (uniq-gen l e l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))
-      (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 776)
-  (parent 741)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self self-0 peer name) (he hl base) (eA l rndx)
-    (w expt) (l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l) l-1))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 2) (6 0))
-    ((8 0) (0 0)) ((8 0) (3 0)))
-  (fn-of ("principal-of" (l-1 A) (l self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-1 l) (eA l-1) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 777)
-  (parent 742)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) l) l-0))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) l) w))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))
-    ((7 0) (3 0)))
-  (fn-of ("principal-of" (l-0 A) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 778)
-  (parent 743)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 name) (he base) (eA l rndx) (w expt)
-    (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) l) l-0))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))
-    ((7 0) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk C) (privk self-0) l)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l l-0)
-  (operation encryption-test (displaced 8 7 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))))
-  (label 779)
-  (parent 744)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (A C self self-0 name) (he base) (eA l rndx) (w expt)
-    (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self A) (peer C) (hl (exp (gen) l))
-    (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) l) l-1))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (6 0))
-    ((8 0) (0 0)) ((8 0) (3 0)))
-  (fn-of ("principal-of" (l-1 A) (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (A C) (l-1 l) (eA l-1) (eA l))
-  (non-orig (privk A) (privk C) l)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l l-0 l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 780)
-  (parent 744)
-  (unrealized (0 1) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (gen)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (1 0)) ((2 0) (0 1)) ((3 0) (0 0)) ((3 1) (1 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (gen)))
-      (send (hash (exp (gen) (mul l l-0)) (gen))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 781)
-  (parent 745)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((kh kh) (eA eA) (lA l) (lB l-0) (he (exp (gen) (rec eA)))
-        (A self-0) (C self) (he-0 he))))
-  (origs))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (e l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (1 0)) ((2 0) (0 1)) ((3 0) (0 0)) ((3 1) (1 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (uniq-gen e l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) e)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 782)
-  (parent 746)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((kh kh) (eA e) (lA l) (lB l-0) (he (gen)) (A self-0) (C self)
-        (he-0 he))))
-  (origs))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 peer self-1 name) (he hl base)
-    (eA l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)
-    (e e))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (1 0)) ((2 0) (0 1)) ((3 2) (1 0)) ((4 0) (0 0))
-    ((4 1) (1 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (uniq-gen eA l-0 l-1)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 783)
-  (parent 747)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (1 0)) ((2 0) (0 1)) ((3 0) (0 0)) ((3 1) (1 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l-0))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 784)
-  (parent 748)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((kh kh) (eA eA) (lA l) (lB l-0)
-        (he (exp (gen) (mul (rec eA) l-0))) (A self-0) (C self)
-        (he-0 he))))
-  (origs))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (1 0)) ((2 0) (0 1)) ((3 0) (0 0)) ((3 1) (1 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 785)
-  (parent 749)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((kh kh) (eA eA) (lA l) (lB l-0) (he (exp (gen) (mul (rec eA) l)))
-        (A self-0) (C self) (he-0 he))))
-  (origs))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 self-1 name) (he base)
-    (eA l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand ltx-gen 1 (self self-0) (l l))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (1 0)) ((2 0) (0 1)) ((3 0) (1 0)) ((4 0) (0 0))
-    ((4 1) (1 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (uniq-gen eA l l-0 l-1)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 786)
-  (parent 750)
-  (seen 811)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) l-0) l))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (gen) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 1) (1 0)) ((5 0) (0 0)) ((5 1) (2 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (4 0))
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (gen) w)) (send (cat (gen) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 787)
-  (parent 751)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (w expt) (e l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l-0) l))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 1) (1 0)) ((5 0) (0 0)) ((5 1) (2 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (4 0))
-  (uniq-gen e l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) e)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 788)
-  (parent 752)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 peer self-1 name) (he hl base) (eA rndx)
-    (w expt) (l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l-1) l-0))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)
-    (e e))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 1) (1 0)) ((5 2) (4 0)) ((6 0) (0 0)) ((6 1) (2 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (precur (4 0))
-  (uniq-gen eA l-0 l-1)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 789)
-  (parent 753)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) l-0) l))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 1) (1 0)) ((5 0) (0 0)) ((5 1) (2 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (4 0))
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 790)
-  (parent 754)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) l-0) l))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 1) (1 0)) ((5 0) (0 0)) ((5 1) (2 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (4 0))
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 791)
-  (parent 755)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 self-1 name) (he base) (eA rndx) (w expt)
-    (l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) l-1) l-0))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l) w))
-  (defstrand ltx-gen 1 (self self-0) (l l))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 1) (1 0)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 1) (2 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (precur (4 0))
-  (uniq-gen eA l l-0 l-1)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 792)
-  (parent 756)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 name) (he hl base) (eA l e rndx)
-    (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) e) l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (gen) w))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 1) (2 0)) ((7 0) (0 0)) ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk C) (privk self-0) e)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l-0)
-  (operation nonce-test (displaced 7 8 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) w)))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) w)))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (gen) w)) (send (cat (gen) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 793)
-  (parent 763)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 name) (he hl base) (l e rndx)
-    (w expt) (e-0 l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-0) (e e-0))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) e) l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) w))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 1) (2 0)) ((7 0) (0 0)) ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he e-0)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 e) (e-0 l-0) (e-0 e))
-  (non-orig (privk C) (privk self-0) e)
-  (precur (6 0) (4 0))
-  (uniq-gen e-0 l-0)
-  (operation nonce-test (displaced 7 8 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) e-0)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0))))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 794)
-  (parent 764)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 name) (he hl base) (eA rndx)
-    (w expt) (l e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) e) l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((5 2) (6 0)) ((6 1) (2 0)) ((7 0) (0 0))
-    ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk C) (privk self-0) e)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l-0)
-  (operation nonce-test (displaced 7 8 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 795)
-  (parent 765)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 peer-0 self-1 name)
-    (he hl hl-0 base) (eA l e rndx) (w expt) (l-0 e-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))
-  (deflistener (cat (exp (gen) e) l-1))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) e-0) w))
-  (defstrand participant 3 (self self-0) (peer peer-0) (hl hl-0) (l l-0)
-    (e e-0))
-  (defstrand ltx-gen 2 (self self-1) (l l-1))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 1) (2 0)) ((7 2) (6 0)) ((8 0) (0 0))
-    ((8 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self-1))
-    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 C) (l-1 e) (eA l-1) (eA e))
-  (non-orig (privk C) (privk self-1) e)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l-1)
-  (operation nonce-test (displaced 8 9 ltx-gen 2) l-1 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))
-      (send (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0))))
-      (send (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w e-0)))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) e-0) w)) (send (cat (exp (gen) e-0) w)))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl-0 peer-0 (privk peer-0)))
-      (send (exp (gen) e-0)))
-    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send l-1)))
-  (label 796)
-  (parent 766)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 name) (he hl base) (eA l e rndx)
-    (w expt) (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) e) l-0))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 1) (2 0)) ((7 0) (0 0)) ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 e) (eA l-0) (eA e))
-  (non-orig (privk C) (privk self-0) e)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l-0)
-  (operation nonce-test (displaced 7 8 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul e l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) e) l-0)) (send (cat (exp (gen) e) l-0)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 797)
-  (parent 767)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self peer self-0 self-1 name) (he hl base)
-    (eA l e rndx) (w expt) (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer C)
-    (hl (exp (gen) e)) (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) e) l-1))
-  (deflistener (cat (exp (gen) e) (one)))
-  (defstrand participant 3 (self self) (peer peer) (hl hl) (l l) (e e))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (defstrand ltx-gen 2 (self self-1) (l l-1))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 2) (4 0)) ((6 1) (2 0)) ((7 0) (6 0)) ((8 0) (0 0))
-    ((8 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 C) (l-1 e) (eA l-1) (eA e))
-  (non-orig (privk C) (privk self-1) e)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l-0 l-1)
-  (operation nonce-test (displaced 8 9 ltx-gen 2) l-1 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) e) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul e l-1)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) e) l-1)) (send (cat (exp (gen) e) l-1)))
-    ((recv (cat (exp (gen) e) (one))) (send (cat (exp (gen) e) (one))))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send l-1)))
-  (label 798)
-  (parent 768)
-  (unrealized (0 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (gen)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (gen)))
-  (deflistener (cat (exp (gen) l-0) l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (4 0))
-  (uniq-gen eA l l-0)
-  (operation encryption-test (displaced 7 5 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (gen)))
-      (send (hash (exp (gen) (mul l l-0)) (gen))))
-    ((recv (cat (exp (gen) (mul l l-0)) (gen)))
-      (send (cat (exp (gen) (mul l l-0)) (gen))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 799)
-  (parent 769)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (e l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l-0) l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (4 0))
-  (uniq-gen e l l-0)
-  (operation encryption-test (displaced 7 5 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) e)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 800)
-  (parent 770)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 peer self-1 name) (he hl base)
-    (eA l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) (mul l-0 l-1)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l-1) l-0))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)
-    (e e))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 2) (2 0)) ((7 0) (0 0))
-    ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (precur (4 0))
-  (uniq-gen eA l-0 l-1)
-  (operation encryption-test (displaced 8 5 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e))))
-    ((recv (cat (exp (gen) (mul l-0 l-1)) (exp (gen) e)))
-      (send (cat (exp (gen) (mul l-0 l-1)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 801)
-  (parent 771)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) l-0) l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (4 0))
-  (uniq-gen eA l l-0)
-  (operation encryption-test (displaced 7 5 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 802)
-  (parent 772)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) l-0) l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (4 0))
-  (uniq-gen eA l l-0)
-  (operation encryption-test (displaced 7 5 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) l)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) l))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 803)
-  (parent 773)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 self-1 name) (he base)
-    (eA l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) (mul l-0 l-1)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) l-1) l-0))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand ltx-gen 1 (self self-0) (l l))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (2 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 0) (2 0)) ((7 0) (0 0))
-    ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (precur (4 0))
-  (uniq-gen eA l l-0 l-1)
-  (operation encryption-test (displaced 8 5 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l))))
-    ((recv (cat (exp (gen) (mul l-0 l-1)) (exp (gen) l)))
-      (send (cat (exp (gen) (mul l-0 l-1)) (exp (gen) l))))
-    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 804)
-  (parent 774)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 name) (he base) (eA l rndx) (w expt)
-    (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) l) l-0))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (gen) w))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))
-    ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk C) (privk self-0) l)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l l-0)
-  (operation nonce-test (displaced 7 8 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) w)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (gen) w)) (send (cat (gen) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 805)
-  (parent 775)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 name) (he base) (l rndx) (w expt)
-    (e l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-0) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l) l-0))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))
-    ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 l) (e l-0) (e l))
-  (non-orig (privk C) (privk self-0) l)
-  (precur (6 0) (4 0))
-  (uniq-gen l e l-0)
-  (operation nonce-test (displaced 7 8 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l) C (privk C))) (send (exp (gen) e))
-      (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 806)
-  (parent 776)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 peer self-1 name) (he hl base)
-    (eA l rndx) (w expt) (l-0 e l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l) l-1))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l-0)
-    (e e))
-  (defstrand ltx-gen 2 (self self-1) (l l-1))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 2) (6 0))
-    ((8 0) (0 0)) ((8 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self-1) (l self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 C) (l-1 l) (eA l-1) (eA l))
-  (non-orig (privk C) (privk self-1) l)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l l-1)
-  (operation nonce-test (displaced 8 9 ltx-gen 2) l-1 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send l-1)))
-  (label 807)
-  (parent 777)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) l) l-0))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) l) w))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))
-    ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk C) (privk self-0) l)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l l-0)
-  (operation nonce-test (displaced 7 8 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 808)
-  (parent 778)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 name) (he base) (eA l rndx) (w expt)
-    (l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) l) l-0))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))
-    ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 C) (l-0 l) (eA l-0) (eA l))
-  (non-orig (privk C) (privk self-0) l)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l l-0)
-  (operation nonce-test (displaced 7 8 ltx-gen 2) l-0 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) l) l-0)) (send (cat (exp (gen) l) l-0)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 809)
-  (parent 779)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (C self self-0 self-1 name) (he base) (eA l rndx)
-    (w expt) (l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer C)
-    (hl (exp (gen) l)) (he he) (l l-1) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) l) l-1))
-  (deflistener (cat (exp (gen) l) (one)))
-  (defstrand ltx-gen 1 (self self) (l l))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 1 (self self-0) (l l-0))
-  (defstrand ltx-gen 2 (self self-1) (l l-1))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (6 0))
-    ((8 0) (0 0)) ((8 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul l l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 C) (l-1 l) (eA l-1) (eA l))
-  (non-orig (privk C) (privk self-1) l)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l l-0 l-1)
-  (operation nonce-test (displaced 8 9 ltx-gen 2) l-1 (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l) C (privk C)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul l l-1)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) l) l-1)) (send (cat (exp (gen) l) l-1)))
-    ((recv (cat (exp (gen) l) (one))) (send (cat (exp (gen) l) (one))))
-    ((send (enc "cert" (exp (gen) l) self (privk self))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send l-1)))
-  (label 810)
-  (parent 780)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA e l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (1 0)) ((2 0) (0 1)) ((3 0) (0 0)) ((3 1) (1 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 811)
-  (parent 783)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((kh kh) (eA eA) (lA l) (lB l-0) (he (exp (gen) (mul (rec eA) e)))
-        (A self-0) (C self) (he-0 he))))
-  (origs))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (gen) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (3 0)) ((2 0) (0 1)) ((3 1) (1 0)) ((4 0) (0 0))
-    ((4 1) (1 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (3 0))
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (gen) w)) (send (cat (gen) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 812)
-  (parent 787)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (w expt) (e l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (3 0)) ((2 0) (0 1)) ((3 1) (1 0)) ((4 0) (0 0))
-    ((4 1) (1 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (3 0))
-  (uniq-gen e l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) e)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 813)
-  (parent 788)
-  (seen 830)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 peer self-1 name) (he hl base) (eA rndx)
-    (w expt) (l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)
-    (e e))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (3 0)) ((2 0) (0 1)) ((3 1) (1 0)) ((4 2) (3 0))
-    ((5 0) (0 0)) ((5 1) (1 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (precur (3 0))
-  (uniq-gen eA l-0 l-1)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 814)
-  (parent 789)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (3 0)) ((2 0) (0 1)) ((3 1) (1 0)) ((4 0) (0 0))
-    ((4 1) (1 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (3 0))
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 815)
-  (parent 790)
-  (seen 830)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (3 0)) ((2 0) (0 1)) ((3 1) (1 0)) ((4 0) (0 0))
-    ((4 1) (1 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (3 0))
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 816)
-  (parent 791)
-  (seen 830)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 self-1 name) (he base) (eA rndx) (w expt)
-    (l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l) w))
-  (defstrand ltx-gen 1 (self self-0) (l l))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (3 0)) ((2 0) (0 1)) ((3 1) (1 0)) ((4 0) (3 0))
-    ((5 0) (0 0)) ((5 1) (1 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (precur (3 0))
-  (uniq-gen eA l l-0 l-1)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 817)
-  (parent 792)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (gen)))
-  (deflistener (cat (exp (gen) l-0) l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (2 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (3 0))
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (gen)))
-      (send (hash (exp (gen) (mul l l-0)) (gen))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 818)
-  (parent 799)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (e l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l-0) l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (2 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (3 0))
-  (uniq-gen e l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) e)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 819)
-  (parent 800)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 peer self-1 name) (he hl base)
-    (eA l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l-1) l-0))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)
-    (e e))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 2) (1 0)) ((6 0) (0 0)) ((6 1) (2 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (precur (3 0))
-  (uniq-gen eA l-0 l-1)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 820)
-  (parent 801)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) l-0) l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (2 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (3 0))
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 821)
-  (parent 802)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) l-0) l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (0 0)) ((5 1) (2 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (3 0))
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 822)
-  (parent 803)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 self-1 name) (he base)
-    (eA l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) l-1) l-0))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand ltx-gen 1 (self self-0) (l l))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 0) (1 0)) ((6 0) (0 0)) ((6 1) (2 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (precur (3 0))
-  (uniq-gen eA l l-0 l-1)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l))))
-    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 823)
-  (parent 804)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) l-0) l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (gen) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))
-    ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l l-0)
-  (operation encryption-test (displaced 8 5 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) w)))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (gen) w)) (send (cat (gen) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 824)
-  (parent 805)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (w expt) (e l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l-0) l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))
-    ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen e l l-0)
-  (operation encryption-test (displaced 8 5 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) e)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 825)
-  (parent 806)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 peer self-1 name) (he hl base) (eA rndx)
-    (w expt) (l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l-1) l-0))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)
-    (e e))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 2) (6 0))
-    ((8 0) (0 0)) ((8 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l-0 l-1)
-  (operation encryption-test (displaced 9 5 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))
-      (send (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 826)
-  (parent 807)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) l-0) l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))
-    ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l l-0)
-  (operation encryption-test (displaced 8 5 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 827)
-  (parent 808)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) l-0) l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (0 0))
-    ((7 1) (3 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l l-0)
-  (operation encryption-test (displaced 8 5 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-      (send (cat (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 828)
-  (parent 809)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 self-1 name) (he base) (eA rndx) (w expt)
-    (l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) l-1) l-0))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l) w))
-  (defstrand ltx-gen 1 (self self-0) (l l))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
-    ((5 0) (0 1)) ((5 0) (4 0)) ((6 1) (2 0)) ((7 0) (6 0))
-    ((8 0) (0 0)) ((8 1) (3 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (precur (6 0) (4 0))
-  (uniq-gen eA l l-0 l-1)
-  (operation encryption-test (displaced 9 5 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))
-      (send (cat (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 829)
-  (parent 810)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (1 0)) ((2 0) (0 1)) ((3 0) (0 0)) ((3 1) (1 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 830)
-  (parent 812)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((kh kh) (eA eA) (lA l) (lB l-0) (he (exp (gen) (mul (rec eA) w)))
-        (A self-0) (C self) (he-0 he))))
-  (origs))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 peer self-1 name) (he hl base) (eA rndx)
-    (w expt) (l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)
-    (e e))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (1 0)) ((2 0) (0 1)) ((3 2) (1 0)) ((4 0) (0 0))
-    ((4 1) (1 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (uniq-gen eA l-0 l-1)
-  (operation generalization deleted (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 831)
-  (parent 814)
-  (seen 830)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 self-1 name) (he base) (eA rndx) (w expt)
-    (l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand ltx-gen 1 (self self-0) (l l))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (1 0)) ((2 0) (0 1)) ((3 0) (1 0)) ((4 0) (0 0))
-    ((4 1) (1 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (uniq-gen eA l l-0 l-1)
-  (operation generalization deleted (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l)))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 832)
-  (parent 817)
-  (seen 830)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (gen)))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 0) (0 0)) ((4 1) (1 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (2 0))
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (gen)))
-      (send (hash (exp (gen) (mul l l-0)) (gen))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 833)
-  (parent 818)
-  (seen 781)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (e l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 0) (0 0)) ((4 1) (1 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (2 0))
-  (uniq-gen e l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) e)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 834)
-  (parent 819)
-  (seen 782)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 peer self-1 name) (he hl base)
-    (eA l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)
-    (e e))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 2) (1 0)) ((5 0) (0 0)) ((5 1) (1 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (precur (2 0))
-  (uniq-gen eA l-0 l-1)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e)))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) e))))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 835)
-  (parent 820)
-  (seen 783)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 0) (0 0)) ((4 1) (1 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (2 0))
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l-0)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l-0))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 836)
-  (parent 821)
-  (seen 784)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 0) (0 0)) ((4 1) (1 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (2 0))
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) l)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) l))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 837)
-  (parent 822)
-  (seen 785)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 self-1 name) (he base)
-    (eA l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (defstrand ltx-gen 1 (self self-0) (l l))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (1 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 0) (1 0)) ((5 0) (0 0)) ((5 1) (1 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (precur (2 0))
-  (uniq-gen eA l l-0 l-1)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l)))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) l))))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 838)
-  (parent 823)
-  (seen 786)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) l-0) l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (gen) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (1 0)) ((6 0) (0 0)) ((6 1) (2 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (5 0) (3 0))
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (gen) w)) (send (cat (gen) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 839)
-  (parent 824)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (w expt) (e l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l-0) l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (1 0)) ((6 0) (0 0)) ((6 1) (2 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (5 0) (3 0))
-  (uniq-gen e l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) e)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 840)
-  (parent 825)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 peer self-1 name) (he hl base) (eA rndx)
-    (w expt) (l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l-1) l-0))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)
-    (e e))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (1 0)) ((6 2) (5 0)) ((7 0) (0 0))
-    ((7 1) (2 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (precur (5 0) (3 0))
-  (uniq-gen eA l-0 l-1)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 841)
-  (parent 826)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) l-0) l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (1 0)) ((6 0) (0 0)) ((6 1) (2 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (5 0) (3 0))
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 842)
-  (parent 827)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) l-0) l))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (1 0)) ((6 0) (0 0)) ((6 1) (2 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (5 0) (3 0))
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) l-0) l)) (send (cat (exp (gen) l-0) l)))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 843)
-  (parent 828)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 self-1 name) (he base) (eA rndx) (w expt)
-    (l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) l-1) l-0))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l) w))
-  (defstrand ltx-gen 1 (self self-0) (l l))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 1))
-    ((4 0) (3 0)) ((5 1) (1 0)) ((6 0) (5 0)) ((7 0) (0 0))
-    ((7 1) (2 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (precur (5 0) (3 0))
-  (uniq-gen eA l l-0 l-1)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) l-1) l-0)) (send (cat (exp (gen) l-1) l-0)))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 844)
-  (parent 829)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (gen) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 1) (1 0)) ((5 0) (0 0)) ((5 1) (1 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (4 0) (2 0))
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) w)))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) w))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (gen) w)) (send (cat (gen) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 845)
-  (parent 839)
-  (seen 812)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (w expt) (e l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e e))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 1) (1 0)) ((5 0) (0 0)) ((5 1) (1 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he e)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (e l) (e l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (4 0) (2 0))
-  (uniq-gen e l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) e)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 846)
-  (parent 840)
-  (seen 813)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 peer self-1 name) (he hl base) (eA rndx)
-    (w expt) (l e l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) e) w))
-  (defstrand participant 3 (self self-0) (peer peer) (hl hl) (l l)
-    (e e))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 1) (1 0)) ((5 2) (4 0)) ((6 0) (0 0)) ((6 1) (1 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (precur (4 0) (2 0))
-  (uniq-gen eA l-0 l-1)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e))))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w e)))))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) e) w)) (send (cat (exp (gen) e) w)))
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" hl peer (privk peer))) (send (exp (gen) e)))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 847)
-  (parent 841)
-  (seen 814)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l-0) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 1) (1 0)) ((5 0) (0 0)) ((5 1) (1 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (4 0) (2 0))
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l-0)))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l-0) w)) (send (cat (exp (gen) l-0) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 848)
-  (parent 842)
-  (seen 815)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 name) (he base) (eA rndx) (w expt)
-    (l l-0 rndx))
-  (defstrand participant 5 (kh kh) (self self-0) (peer self)
-    (hl (exp (gen) l-0)) (he he) (l l) (e eA))
-  (deflistener (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) l-0) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-0))
-  (deflistener (cat (exp (gen) l) w))
-  (defstrand ltx-gen 2 (self self-0) (l l))
-  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 1) (1 0)) ((5 0) (0 0)) ((5 1) (1 0)))
-  (fn-of ("principal-of" (l-0 self) (l self-0))
-    (foo ((hash (exp (gen) (mul l l-0)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-0 self) (l l-0) (eA l) (eA l-0))
-  (non-orig (privk self) (privk self-0) l-0)
-  (precur (4 0) (2 0))
-  (uniq-gen eA l l-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l))))
-      (send (hash (exp (gen) (mul l l-0)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) l-0) (one)))
-      (send (cat (exp (gen) l-0) (one))))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))) (send l)))
-  (label 849)
-  (parent 843)
-  (seen 816)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton iadh-um
-  (vars (kh data) (self self-0 self-1 name) (he base) (eA rndx) (w expt)
-    (l l-0 l-1 rndx))
-  (defstrand participant 5 (kh kh) (self self-1) (peer self)
-    (hl (exp (gen) l-1)) (he he) (l l-0) (e eA))
-  (deflistener (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))
-  (deflistener (cat (exp (gen) l-1) (one)))
-  (defstrand ltx-gen 1 (self self) (l l-1))
-  (deflistener (cat (exp (gen) l) w))
-  (defstrand ltx-gen 1 (self self-0) (l l))
-  (defstrand ltx-gen 2 (self self-1) (l l-0))
-  (precedes ((0 2) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
-    ((4 1) (1 0)) ((5 0) (4 0)) ((6 0) (0 0)) ((6 1) (1 0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 self-1) (l self-0))
-    (foo ((hash (exp (gen) (mul l-0 l-1)) (exp he eA)) kh)))
-  (neq (he (gen)) (self-1 self) (l-0 l-1) (eA l-0) (eA l-1))
-  (non-orig (privk self) (privk self-1) l-1)
-  (precur (4 0) (2 0))
-  (uniq-gen eA l l-0 l-1)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv he) (send kh))
-    ((recv (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l))))
-      (send (hash (exp (gen) (mul l-0 l-1)) (exp (gen) (mul w l)))))
-    ((recv (cat (exp (gen) l-1) (one)))
-      (send (cat (exp (gen) l-1) (one))))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))))
-    ((recv (cat (exp (gen) l) w)) (send (cat (exp (gen) l) w)))
-    ((send (enc "cert" (exp (gen) l) self-0 (privk self-0))))
-    ((send (enc "cert" (exp (gen) l-0) self-1 (privk self-1)))
-      (send l-0)))
-  (label 850)
-  (parent 844)
-  (seen 817)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(comment "Nothing left to do")
diff --git a/tst/iadh_umx.scm b/tst/iadh_umx.scm
deleted file mode 100644
--- a/tst/iadh_umx.scm
+++ /dev/null
@@ -1,53 +0,0 @@
-(herald "IADH: unified model (UM), criss-cross variant" (bound 20) (limit 2000) (algebra diffie-hellman))
-
-(defprotocol iadh-umx diffie-hellman
-  (defrole participant1
-    (vars (l e rndx) (lp ep expt) (self peer name) (key n data))
-    (trace
-     (recv (enc "cert" (exp (gen) l) self (privk self)))
-     (recv (enc "cert" (exp (gen) lp) peer (privk peer)))
-     (send (exp (gen) e))
-     (recv (exp (gen) ep))
-     (send key))
-    (fn-of (foo ((hash (exp (gen) (mul lp e)) (exp (gen) (mul l ep))) key)))
-    (uniq-gen e)
-    (neq (ep (one))))
-  (defrole participant2
-    (vars (l e rndx) (lp ep expt) (self peer name) (key n data))
-    (trace
-     (recv (enc "cert" (exp (gen) l) self (privk self)))
-     (recv (enc "cert" (exp (gen) lp) peer (privk peer)))
-     (send (exp (gen) e))
-     (recv (exp (gen) ep))
-     (send key))
-    (fn-of (foo ((hash (exp (gen) (mul l ep)) (exp (gen) (mul lp e))) key)))
-    (uniq-gen e)
-    (neq (ep (one))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace
-     (send (enc "cert" (exp (gen) l) self (privk self)))
-     (send l))
-    (uniq-gen l)
-    (fn-of ("principal-of" (l self))))
-  )
-
-;; Implicit authentication: participants will agree on the resulting key
-;; foo(key).  Therefore they should agree on the names A and B.
- (defskeleton iadh-umx
-  (vars (key data) (eA lA eB lB rndx) (A B C D name))
-  (defstrand participant1 5 (key key) (e eA) (l lA) (self A) (peer C))
-  (defstrand participant2 5 (key key) (e eB) (l lB) (self B) (peer D))
-  (non-orig lA lB)
-  (neq (eA eB))
-  (non-orig (privk C) (privk D) (privk A) (privk B))
-)
-
- ;; Security:
-(defskeleton iadh-umx
-  (vars (e1 e2 l rndx) (lp expt) (A B name))
-  (defstrand participant1 5 (e e1) (l l) (ep e2) (lp lp) (self A) (peer B))
-  (defstrand participant2 3 (e e2))
-  (deflistener (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e1 l))))
-  (non-orig (privk A) (privk B))
-)
diff --git a/tst/iadh_umx.tst b/tst/iadh_umx.tst
deleted file mode 100644
--- a/tst/iadh_umx.tst
+++ /dev/null
@@ -1,3600 +0,0 @@
-(herald "IADH: unified model (UM), criss-cross variant" (bound 20)
-  (limit 2000) (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/iadh_umx.scm")
-(comment "Strand count bounded at 20")
-
-(defprotocol iadh-umx diffie-hellman
-  (defrole participant1
-    (vars (l e rndx) (lp ep expt) (self peer name) (key data))
-    (trace (recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))
-      (send (exp (gen) e)) (recv (exp (gen) ep)) (send key))
-    (uniq-gen e)
-    (fn-of
-      (foo ((hash (exp (gen) (mul e lp)) (exp (gen) (mul l ep))) key)))
-    (neq (ep (one)))
-    (absent (e (exp (gen) l)) (e (exp (gen) lp))))
-  (defrole participant2
-    (vars (l e rndx) (lp ep expt) (self peer name) (key data))
-    (trace (recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))
-      (send (exp (gen) e)) (recv (exp (gen) ep)) (send key))
-    (uniq-gen e)
-    (fn-of
-      (foo ((hash (exp (gen) (mul l ep)) (exp (gen) (mul e lp))) key)))
-    (neq (ep (one)))
-    (absent (e (exp (gen) l)) (e (exp (gen) lp))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (enc "cert" (exp (gen) l) self (privk self))) (send l))
-    (uniq-gen l)
-    (fn-of ("principal-of" (l self)))))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B C D name) (eA lA eB lB rndx)
-    (lp ep lp-0 ep-0 expt))
-  (defstrand participant1 5 (key key) (self A) (peer C) (l lA) (e eA)
-    (lp lp) (ep ep))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l lB) (e eB)
-    (lp lp-0) (ep ep-0))
-  (absent (eB (exp (gen) lB)) (eB (exp (gen) lp-0)) (eA (exp (gen) lA))
-    (eA (exp (gen) lp)))
-  (fn-of
-    (foo
-      ((hash (exp (gen) (mul lB ep-0)) (exp (gen) (mul eB lp-0))) key)
-      ((hash (exp (gen) (mul eA lp)) (exp (gen) (mul lA ep))) key)))
-  (neq (ep-0 (one)) (eA eB) (ep (one)))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA lB)
-  (uniq-gen eA eB)
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) lp) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) ep)) (send key))
-    ((recv (enc "cert" (exp (gen) lB) B (privk B)))
-      (recv (enc "cert" (exp (gen) lp-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) ep-0)) (send key)))
-  (label 0)
-  (unrealized (0 0) (0 1) (1 0) (1 1))
-  (preskeleton)
-  (origs)
-  (comment "Not a skeleton"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B C D name) (lB rndx) (ep expt) (lA eB rndx)
-    (lp expt) (eA rndx))
-  (defstrand participant1 5 (key key) (self A) (peer C) (l lA) (e eA)
-    (lp (mul lB ep)) (ep (mul (rec lA) eB lp)))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l lB) (e eB)
-    (lp lp) (ep (mul ep eA)))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)))
-  (absent (eB (exp (gen) lB)) (eB (exp (gen) lp)) (eA (exp (gen) lA))
-    (eA (exp (gen) (mul lB ep))))
-  (fn-of
-    (foo
-      ((hash (exp (gen) (mul lB ep eA)) (exp (gen) (mul eB lp))) key)))
-  (neq ((mul ep eA) (one)) (eA eB) ((mul (rec lA) eB lp) (one)))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lB lA)
-  (uniq-gen eB eA)
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul lB ep)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec lA) eB lp)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) lB) B (privk B)))
-      (recv (enc "cert" (exp (gen) lp) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul ep eA))) (send key)))
-  (label 1)
-  (parent 0)
-  (unrealized (0 0) (0 1) (0 3) (1 0) (1 1))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B C D name) (ep expt) (lA eB rndx) (lp expt)
-    (eA l rndx))
-  (defstrand participant1 5 (key key) (self A) (peer C) (l lA) (e eA)
-    (lp (mul ep l)) (ep (mul (rec lA) eB lp)))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l) (e eB)
-    (lp lp) (ep (mul ep eA)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0)))
-  (absent (eB (exp (gen) l)) (eB (exp (gen) lp)) (eA (exp (gen) lA))
-    (eA (exp (gen) (mul ep l))))
-  (fn-of ("principal-of" (l B))
-    (foo
-      ((hash (exp (gen) (mul ep eA l)) (exp (gen) (mul eB lp))) key)))
-  (neq ((mul ep eA) (one)) (eA eB) ((mul (rec lA) eB lp) (one)))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)
-  (uniq-gen eB eA l)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l) B (privk B)) (1 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul ep l)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec lA) eB lp)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) lp) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul ep eA))) (send key))
-    ((send (enc "cert" (exp (gen) l) B (privk B)))))
-  (label 2)
-  (parent 1)
-  (unrealized (0 0) (0 1) (0 3) (1 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B C name) (ep expt) (lA eB eA l rndx))
-  (defstrand participant1 5 (key key) (self A) (peer C) (l lA) (e eA)
-    (lp (mul ep l)) (ep (mul (rec lA) eB l)))
-  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)
-    (lp l) (ep (mul ep eA)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0)))
-  (absent (eB (exp (gen) l)) (eA (exp (gen) lA))
-    (eA (exp (gen) (mul ep l))))
-  (fn-of ("principal-of" (l B))
-    (foo ((hash (exp (gen) (mul ep eA l)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul ep eA) (one)) (eA eB) ((mul (rec lA) eB l) (one)))
-  (non-orig (privk A) (privk B) (privk C) lA l)
-  (uniq-gen eB eA l)
-  (operation encryption-test (displaced 3 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) D (privk D)) (1 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul ep l)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec lA) eB l)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul ep eA))) (send key))
-    ((send (enc "cert" (exp (gen) l) B (privk B)))))
-  (label 3)
-  (parent 2)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B C D name) (ep expt) (lA eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer C) (l lA) (e eA)
-    (lp (mul ep l)) (ep (mul (rec lA) eB l-0)))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l) (e eB)
-    (lp l-0) (ep (mul ep eA)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (1 1)))
-  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) lA))
-    (eA (exp (gen) (mul ep l))))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul ep eA l)) (exp (gen) (mul eB l-0))) key)))
-  (neq ((mul ep eA) (one)) (eA eB) ((mul (rec lA) eB l-0) (one)))
-  (non-orig (privk A) (privk B) (privk C) (privk D) lA l)
-  (uniq-gen eB eA l l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) D (privk D)) (1 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) lA) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul ep l)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul (rec lA) eB l-0)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul ep eA))) (send key))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))
-  (label 4)
-  (parent 2)
-  (unrealized (0 0) (0 1) (0 3))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B C name) (ep expt) (eB eA l rndx))
-  (defstrand participant1 5 (key key) (self B) (peer C) (l l) (e eA)
-    (lp (mul ep l)) (ep eB))
-  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)
-    (lp l) (ep (mul ep eA)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0)))
-  (absent (eB (exp (gen) l)) (eA (exp (gen) l))
-    (eA (exp (gen) (mul ep l))))
-  (fn-of ("principal-of" (l B))
-    (foo ((hash (exp (gen) (mul ep eA l)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul ep eA) (one)) (eA eB) (eB (one)))
-  (non-orig (privk B) (privk C) l)
-  (uniq-gen eB eA l)
-  (operation encryption-test (displaced 3 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) (mul ep l)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul ep eA))) (send key))
-    ((send (enc "cert" (exp (gen) l) B (privk B)))))
-  (label 5)
-  (parent 3)
-  (unrealized (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B C name) (ep expt) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer C) (l l-0) (e eA)
-    (lp (mul ep l)) (ep (mul eB l (rec l-0))))
-  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)
-    (lp l) (ep (mul ep eA)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)))
-  (absent (eB (exp (gen) l)) (eA (exp (gen) l-0))
-    (eA (exp (gen) (mul ep l))))
-  (fn-of ("principal-of" (l-0 A) (l B))
-    (foo ((hash (exp (gen) (mul ep eA l)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul ep eA) (one)) (eA eB) ((mul eB l (rec l-0)) (one)))
-  (non-orig (privk A) (privk B) (privk C) l l-0)
-  (uniq-gen eB eA l l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul ep l)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul ep eA))) (send key))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 6)
-  (parent 3)
-  (unrealized (0 1) (0 3))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B C D name) (ep expt) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer C) (l l-0) (e eA)
-    (lp (mul ep l-0)) (ep (mul eB l (rec l-0))))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)
-    (lp l) (ep (mul ep eA)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 0) (1 1)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-0))
-    (eA (exp (gen) (mul ep l-0))))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo
-      ((hash (exp (gen) (mul ep eA l-0)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul ep eA) (one)) (eA eB) ((mul eB l (rec l-0)) (one)))
-  (non-orig (privk B) (privk C) (privk D) l-0)
-  (uniq-gen eB eA l l-0)
-  (operation encryption-test (displaced 4 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) (mul ep l-0)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul ep eA))) (send key))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D)))))
-  (label 7)
-  (parent 4)
-  (unrealized (0 1) (0 3))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B C D name) (ep expt) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self D) (peer C) (l l-0) (e eA)
-    (lp (mul ep l)) (ep eB))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l) (e eB)
-    (lp l-0) (ep (mul ep eA)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)))
-  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l-0))
-    (eA (exp (gen) (mul ep l))))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul ep eA l)) (exp (gen) (mul eB l-0))) key)))
-  (neq ((mul ep eA) (one)) (eA eB) (eB (one)))
-  (non-orig (privk B) (privk C) (privk D) l l-0)
-  (uniq-gen eB eA l l-0)
-  (operation encryption-test (displaced 4 3 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) (mul ep l)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul ep eA))) (send key))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))
-  (label 8)
-  (parent 4)
-  (unrealized (0 1))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B C D name) (ep expt) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer C) (l l-1) (e eA)
-    (lp (mul ep l)) (ep (mul eB l-0 (rec l-1))))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l) (e eB)
-    (lp l-0) (ep (mul ep eA)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (1 1)) ((4 0) (0 0)))
-  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l-1))
-    (eA (exp (gen) (mul ep l))))
-  (fn-of ("principal-of" (l-1 A) (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul ep eA l)) (exp (gen) (mul eB l-0))) key)))
-  (neq ((mul ep eA) (one)) (eA eB) ((mul eB l-0 (rec l-1)) (one)))
-  (non-orig (privk A) (privk B) (privk C) (privk D) l l-1)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) (mul ep l)) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l-0 (rec l-1))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul ep eA))) (send key))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 9)
-  (parent 4)
-  (unrealized (0 1) (0 3))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B name) (eB eA l rndx))
-  (defstrand participant1 5 (key key) (self B) (peer B) (l l) (e eA)
-    (lp l) (ep eB))
-  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)
-    (lp l) (ep eA))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0)))
-  (absent (eB (exp (gen) l)) (eA (exp (gen) l)))
-  (fn-of ("principal-of" (l B))
-    (foo ((hash (exp (gen) (mul eA l)) (exp (gen) (mul eB l))) key)))
-  (neq (eA (one)) (eA eB) (eB (one)))
-  (non-orig (privk B) l)
-  (uniq-gen eB eA l)
-  (operation encryption-test (displaced 3 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))
-    ((send (enc "cert" (exp (gen) l) B (privk B)))))
-  (label 10)
-  (parent 5)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((key key) (A B) (B B) (C B) (D B) (lB l) (ep (one)) (lA l)
-        (eB eB) (lp l) (eA eA))))
-  (origs))
-
-(defskeleton iadh-umx
-  (vars (key data) (B C name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer C) (l l) (e eA)
-    (lp l-0) (ep eB))
-  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)
-    (lp l) (ep (mul eA (rec l) l-0)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self C) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 0) (0 1)))
-  (absent (eB (exp (gen) l)) (eA (exp (gen) l)) (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 C) (l B))
-    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l) l-0) (one)) (eA eB) (eB (one)))
-  (non-orig (privk B) (privk C) l)
-  (uniq-gen eB eA l l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))
-      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) C (privk C)))))
-  (label 11)
-  (parent 5)
-  (unrealized (1 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e eA)
-    (lp l-0) (ep (mul eB (rec l) l-0)))
-  (defstrand participant2 5 (key key) (self B) (peer B) (l l-0) (e eB)
-    (lp l-0) (ep eA))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)))
-  (absent (eB (exp (gen) l-0)) (eA (exp (gen) l)) (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 B) (l A))
-    (foo
-      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-0))) key)))
-  (neq (eA (one)) (eA eB) ((mul eB (rec l) l-0) (one)))
-  (non-orig (privk A) (privk B) l l-0)
-  (uniq-gen eB eA l l-0)
-  (operation encryption-test (displaced 4 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) A (privk A)))))
-  (label 12)
-  (parent 6)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer A) (l l-0) (e eA)
-    (lp l-0) (ep (mul eB l (rec l-0))))
-  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)
-    (lp l) (ep (mul eA (rec l) l-0)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)))
-  (absent (eB (exp (gen) l)) (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 A) (l B))
-    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l) l-0) (one)) (eA eB)
-    ((mul eB l (rec l-0)) (one)))
-  (non-orig (privk A) (privk B) l l-0)
-  (uniq-gen eB eA l l-0)
-  (operation encryption-test (displaced 4 3 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))
-      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 13)
-  (parent 6)
-  (unrealized (0 3) (1 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B C name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer C) (l l) (e eA)
-    (lp l-1) (ep (mul eB (rec l) l-0)))
-  (defstrand participant2 5 (key key) (self B) (peer B) (l l-0) (e eB)
-    (lp l-0) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l))
-  (defstrand ltx-gen 1 (self C) (l l-1))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((4 0) (0 1)))
-  (absent (eB (exp (gen) l-0)) (eA (exp (gen) l)) (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 C) (l A) (l-0 B))
-    (foo
-      ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l-0))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)
-    ((mul eB (rec l) l-0) (one)))
-  (non-orig (privk A) (privk B) (privk C) l l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-1) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) A (privk A))))
-    ((send (enc "cert" (exp (gen) l-1) C (privk C)))))
-  (label 14)
-  (parent 6)
-  (unrealized (0 3) (1 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B D name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer B) (l l-0) (e eA)
-    (lp l-0) (ep (mul eB l (rec l-0))))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)
-    (lp l) (ep eA))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 0) (1 1)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))
-  (neq (eA (one)) (eA eB) ((mul eB l (rec l-0)) (one)))
-  (non-orig (privk B) (privk D) l-0)
-  (uniq-gen eB eA l l-0)
-  (operation encryption-test (displaced 4 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D)))))
-  (label 15)
-  (parent 7)
-  (unrealized (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B D name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer D) (l l) (e eA)
-    (lp l-0) (ep (mul eB (rec l) l-0)))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l) (e eB)
-    (lp l-0) (ep (mul eA (rec l) l-0)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((3 0) (1 1)))
-  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l))
-    (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-0))) key)))
-  (neq ((mul eA (rec l) l-0) (one)) (eA eB)
-    ((mul eB (rec l) l-0) (one)))
-  (non-orig (privk B) (privk D) l)
-  (uniq-gen eB eA l l-0)
-  (operation encryption-test (displaced 4 3 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))
-      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))
-  (label 16)
-  (parent 7)
-  (unrealized (0 3) (1 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B C D name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer C) (l l-0) (e eA)
-    (lp l-1) (ep (mul eB l (rec l-0))))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)
-    (lp l) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (defstrand ltx-gen 1 (self C) (l l-1))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 0) (1 1)) ((4 0) (0 1)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-0))
-    (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 C) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)
-    ((mul eB l (rec l-0)) (one)))
-  (non-orig (privk B) (privk C) (privk D) l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-1) C (privk C)))))
-  (label 17)
-  (parent 7)
-  (unrealized (0 3) (1 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B D name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self D) (peer B) (l l) (e eA)
-    (lp l-0) (ep eB))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)
-    (lp l) (ep eA))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l))
-    (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))
-  (neq (eA (one)) (eA eB) (eB (one)))
-  (non-orig (privk B) (privk D) l l-0)
-  (uniq-gen eB eA l l-0)
-  (operation encryption-test (displaced 4 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D)))))
-  (label 18)
-  (parent 8)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((key key) (A D) (B B) (C B) (D D) (lB l-0) (ep (one)) (lA l)
-        (eB eB) (lp l) (eA eA))))
-  (origs))
-
-(defskeleton iadh-umx
-  (vars (key data) (B D name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self D) (peer D) (l l-0) (e eA)
-    (lp l-0) (ep eB))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l) (e eB)
-    (lp l-0) (ep (mul eA (rec l) l-0)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)))
-  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-0))) key)))
-  (neq ((mul eA (rec l) l-0) (one)) (eA eB) (eB (one)))
-  (non-orig (privk B) (privk D) l l-0)
-  (uniq-gen eB eA l l-0)
-  (operation encryption-test (displaced 4 3 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))
-      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D)))))
-  (label 19)
-  (parent 8)
-  (unrealized (1 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B C D name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self D) (peer C) (l l) (e eA)
-    (lp l-1) (ep eB))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)
-    (lp l) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (defstrand ltx-gen 1 (self C) (l l-1))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)) ((4 0) (0 1)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l))
-    (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 C) (l D) (l-0 B))
-    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB) (eB (one)))
-  (non-orig (privk B) (privk C) (privk D) l l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-1) C (privk C)))))
-  (label 20)
-  (parent 8)
-  (unrealized (1 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B D name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer B) (l l-0) (e eA)
-    (lp l-1) (ep (mul eB l (rec l-0))))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-1) (e eB)
-    (lp l) (ep eA))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (1 1)) ((4 0) (0 0)))
-  (absent (eB (exp (gen) l-1)) (eB (exp (gen) l)) (eA (exp (gen) l-0))
-    (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 B) (l-0 A) (l D))
-    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))
-  (neq (eA (one)) (eA eB) ((mul eB l (rec l-0)) (one)))
-  (non-orig (privk A) (privk B) (privk D) l-0 l-1)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation encryption-test (displaced 5 2 ltx-gen 1)
-    (enc "cert" (exp (gen) l-2) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 21)
-  (parent 9)
-  (unrealized (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B D name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer D) (l l) (e eA)
-    (lp l-1) (ep (mul eB (rec l) l-1)))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)
-    (lp l-1) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (defstrand ltx-gen 1 (self A) (l l))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((3 0) (1 1)) ((4 0) (0 0)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l-1)) (eA (exp (gen) l))
-    (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 D) (l A) (l-0 B))
-    (foo
-      ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l-1))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)
-    ((mul eB (rec l) l-1) (one)))
-  (non-orig (privk A) (privk B) (privk D) l l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation encryption-test (displaced 5 3 ltx-gen 1)
-    (enc "cert" (exp (gen) l-2) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-1)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((send (enc "cert" (exp (gen) l) A (privk A)))))
-  (label 22)
-  (parent 9)
-  (unrealized (0 3) (1 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B D name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer A) (l l-1) (e eA)
-    (lp l-1) (ep (mul eB l (rec l-1))))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)
-    (lp l) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (1 1)) ((4 0) (0 0)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 A) (l D) (l-0 B))
-    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)
-    ((mul eB l (rec l-1)) (one)))
-  (non-orig (privk A) (privk B) (privk D) l-0 l-1)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation encryption-test (displaced 5 4 ltx-gen 1)
-    (enc "cert" (exp (gen) l-2) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-1))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A)))))
-  (label 23)
-  (parent 9)
-  (unrealized (0 3) (1 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B C D name) (eB eA l l-0 l-1 l-2 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer C) (l l-0) (e eA)
-    (lp l-2) (ep (mul eB l (rec l-0))))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-1) (e eB)
-    (lp l) (ep (mul eA (rec l-1) l-2)))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (defstrand ltx-gen 1 (self C) (l l-2))
-  (precedes ((0 2) (1 3)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (1 1)) ((4 0) (0 0)) ((5 0) (0 1)))
-  (absent (eB (exp (gen) l-1)) (eB (exp (gen) l)) (eA (exp (gen) l-0))
-    (eA (exp (gen) l-2)))
-  (fn-of ("principal-of" (l-2 C) (l-0 A) (l D) (l-1 B))
-    (foo ((hash (exp (gen) (mul eA l-2)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l-1) l-2) (one)) (eA eB)
-    ((mul eB l (rec l-0)) (one)))
-  (non-orig (privk A) (privk B) (privk C) (privk D) l-0 l-1)
-  (uniq-gen eB eA l l-0 l-1 l-2)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-2) C (privk C)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-2) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-1) l-2)))
-      (send key)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A))))
-    ((send (enc "cert" (exp (gen) l-2) C (privk C)))))
-  (label 24)
-  (parent 9)
-  (unrealized (0 3) (1 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B C name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer C) (l l) (e eA)
-    (lp l-0) (ep eB))
-  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)
-    (lp l) (ep (mul eA (rec l) l-0)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self C) (l l-0))
-  (deflistener (cat (exp (gen) (mul eA (rec l))) l-0))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((4 1) (1 3)))
-  (absent (eB (exp (gen) l)) (eA (exp (gen) l)) (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 C) (l B))
-    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l) l-0) (one)) (eA eB) (eB (one)))
-  (non-orig (privk B) (privk C) l)
-  (uniq-gen eB eA l l-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul eA (rec l))) l-0))
-    (exp (gen) (mul eA (rec l) l-0)) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))
-      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) C (privk C))))
-    ((recv (cat (exp (gen) (mul eA (rec l))) l-0))
-      (send (cat (exp (gen) (mul eA (rec l))) l-0))))
-  (label 25)
-  (parent 11)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B C name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer C) (l l) (e eA)
-    (lp l-0) (ep eB))
-  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)
-    (lp l) (ep (mul eA (rec l) l-0)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self C) (l l-0))
-  (deflistener (cat (exp (gen) (mul (rec l) l-0)) eA))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((4 1) (1 3)))
-  (absent (eB (exp (gen) l)) (eA (exp (gen) l)) (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 C) (l B))
-    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l) l-0) (one)) (eA eB) (eB (one)))
-  (non-orig (privk B) (privk C) l)
-  (uniq-gen eB eA l l-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec l) l-0)) eA))
-    (exp (gen) (mul eA (rec l) l-0)) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))
-      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) C (privk C))))
-    ((recv (cat (exp (gen) (mul (rec l) l-0)) eA))
-      (send (cat (exp (gen) (mul (rec l) l-0)) eA))))
-  (label 26)
-  (parent 11)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e eA)
-    (lp l-0) (ep (mul eB (rec l) l-0)))
-  (defstrand participant2 5 (key key) (self B) (peer B) (l l-0) (e eB)
-    (lp l-0) (ep eA))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l))
-  (deflistener (cat (exp (gen) (mul (rec l) l-0)) eB))
-  (precedes ((0 2) (1 3)) ((1 2) (4 0)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (4 0)) ((4 1) (0 3)))
-  (absent (eB (exp (gen) l-0)) (eA (exp (gen) l)) (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 B) (l A))
-    (foo
-      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-0))) key)))
-  (neq (eA (one)) (eA eB) ((mul eB (rec l) l-0) (one)))
-  (non-orig (privk A) (privk B) l l-0)
-  (uniq-gen eB eA l l-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec l) l-0)) eB))
-    (exp (gen) (mul eB (rec l) l-0)) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) A (privk A))))
-    ((recv (cat (exp (gen) (mul (rec l) l-0)) eB))
-      (send (cat (exp (gen) (mul (rec l) l-0)) eB))))
-  (label 27)
-  (parent 12)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer A) (l l-0) (e eA)
-    (lp l-0) (ep (mul eB l (rec l-0))))
-  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)
-    (lp l) (ep (mul eA (rec l) l-0)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (deflistener (cat (exp (gen) (mul (rec l) l-0)) eA))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((4 1) (1 3)))
-  (absent (eB (exp (gen) l)) (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 A) (l B))
-    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l) l-0) (one)) (eA eB)
-    ((mul eB l (rec l-0)) (one)))
-  (non-orig (privk A) (privk B) l l-0)
-  (uniq-gen eB eA l l-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec l) l-0)) eA))
-    (exp (gen) (mul eA (rec l) l-0)) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))
-      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A))))
-    ((recv (cat (exp (gen) (mul (rec l) l-0)) eA))
-      (send (cat (exp (gen) (mul (rec l) l-0)) eA))))
-  (label 28)
-  (parent 13)
-  (unrealized (0 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B C name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer C) (l l) (e eA)
-    (lp l-1) (ep (mul eB (rec l) l-0)))
-  (defstrand participant2 5 (key key) (self B) (peer B) (l l-0) (e eB)
-    (lp l-0) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l))
-  (defstrand ltx-gen 1 (self C) (l l-1))
-  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))
-  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((4 0) (0 1)) ((5 1) (1 3)))
-  (absent (eB (exp (gen) l-0)) (eA (exp (gen) l)) (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 C) (l A) (l-0 B))
-    (foo
-      ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l-0))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)
-    ((mul eB (rec l) l-0) (one)))
-  (non-orig (privk A) (privk B) (privk C) l l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul eA (rec l-0))) l-1))
-    (exp (gen) (mul eA (rec l-0) l-1)) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-1) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) A (privk A))))
-    ((send (enc "cert" (exp (gen) l-1) C (privk C))))
-    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))
-      (send (cat (exp (gen) (mul eA (rec l-0))) l-1))))
-  (label 29)
-  (parent 14)
-  (unrealized (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B C name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer C) (l l) (e eA)
-    (lp l-1) (ep (mul eB (rec l) l-0)))
-  (defstrand participant2 5 (key key) (self B) (peer B) (l l-0) (e eB)
-    (lp l-0) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l))
-  (defstrand ltx-gen 1 (self C) (l l-1))
-  (deflistener (cat (exp (gen) (mul (rec l-0) l-1)) eA))
-  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((4 0) (0 1)) ((5 1) (1 3)))
-  (absent (eB (exp (gen) l-0)) (eA (exp (gen) l)) (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 C) (l A) (l-0 B))
-    (foo
-      ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l-0))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)
-    ((mul eB (rec l) l-0) (one)))
-  (non-orig (privk A) (privk B) (privk C) l l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec l-0) l-1)) eA))
-    (exp (gen) (mul eA (rec l-0) l-1)) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-1) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) A (privk A))))
-    ((send (enc "cert" (exp (gen) l-1) C (privk C))))
-    ((recv (cat (exp (gen) (mul (rec l-0) l-1)) eA))
-      (send (cat (exp (gen) (mul (rec l-0) l-1)) eA))))
-  (label 30)
-  (parent 14)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B D name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer B) (l l-0) (e eA)
-    (lp l-0) (ep (mul eB l (rec l-0))))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)
-    (lp l) (ep eA))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) (mul eB (rec l-0))) l))
-  (precedes ((0 2) (1 3)) ((1 2) (4 0)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 0) (1 1)) ((4 1) (0 3)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))
-  (neq (eA (one)) (eA eB) ((mul eB l (rec l-0)) (one)))
-  (non-orig (privk B) (privk D) l-0)
-  (uniq-gen eB eA l l-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul eB (rec l-0))) l))
-    (exp (gen) (mul eB l (rec l-0))) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) (mul eB (rec l-0))) l))
-      (send (cat (exp (gen) (mul eB (rec l-0))) l))))
-  (label 31)
-  (parent 15)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B D name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer B) (l l-0) (e eA)
-    (lp l-0) (ep (mul eB l (rec l-0))))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)
-    (lp l) (ep eA))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) (mul l (rec l-0))) eB))
-  (precedes ((0 2) (1 3)) ((1 2) (4 0)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 0) (1 1)) ((4 1) (0 3)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))
-  (neq (eA (one)) (eA eB) ((mul eB l (rec l-0)) (one)))
-  (non-orig (privk B) (privk D) l-0)
-  (uniq-gen eB eA l l-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul l (rec l-0))) eB))
-    (exp (gen) (mul eB l (rec l-0))) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) (mul l (rec l-0))) eB))
-      (send (cat (exp (gen) (mul l (rec l-0))) eB))))
-  (label 32)
-  (parent 15)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B D name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer D) (l l) (e eA)
-    (lp l-0) (ep (mul eB (rec l) l-0)))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l) (e eB)
-    (lp l-0) (ep (mul eA (rec l) l-0)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) (mul eA (rec l))) l-0))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l))
-    (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-0))) key)))
-  (neq ((mul eA (rec l) l-0) (one)) (eA eB)
-    ((mul eB (rec l) l-0) (one)))
-  (non-orig (privk B) (privk D) l)
-  (uniq-gen eB eA l l-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul eA (rec l))) l-0))
-    (exp (gen) (mul eA (rec l) l-0)) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))
-      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) (mul eA (rec l))) l-0))
-      (send (cat (exp (gen) (mul eA (rec l))) l-0))))
-  (label 33)
-  (parent 16)
-  (unrealized (0 3) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B D name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer D) (l l) (e eA)
-    (lp l-0) (ep (mul eB (rec l) l-0)))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l) (e eB)
-    (lp l-0) (ep (mul eA (rec l) l-0)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) (mul (rec l) l-0)) eA))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l))
-    (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-0))) key)))
-  (neq ((mul eA (rec l) l-0) (one)) (eA eB)
-    ((mul eB (rec l) l-0) (one)))
-  (non-orig (privk B) (privk D) l)
-  (uniq-gen eB eA l l-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec l) l-0)) eA))
-    (exp (gen) (mul eA (rec l) l-0)) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))
-      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) (mul (rec l) l-0)) eA))
-      (send (cat (exp (gen) (mul (rec l) l-0)) eA))))
-  (label 34)
-  (parent 16)
-  (unrealized (0 3) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B C D name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer C) (l l-0) (e eA)
-    (lp l-1) (ep (mul eB l (rec l-0))))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)
-    (lp l) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (defstrand ltx-gen 1 (self C) (l l-1))
-  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))
-  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 0) (1 1)) ((4 0) (0 1)) ((5 1) (1 3)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-0))
-    (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 C) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)
-    ((mul eB l (rec l-0)) (one)))
-  (non-orig (privk B) (privk C) (privk D) l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul eA (rec l-0))) l-1))
-    (exp (gen) (mul eA (rec l-0) l-1)) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-1) C (privk C))))
-    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))
-      (send (cat (exp (gen) (mul eA (rec l-0))) l-1))))
-  (label 35)
-  (parent 17)
-  (unrealized (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B C D name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer C) (l l-0) (e eA)
-    (lp l-1) (ep (mul eB l (rec l-0))))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)
-    (lp l) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (defstrand ltx-gen 1 (self C) (l l-1))
-  (deflistener (cat (exp (gen) (mul (rec l-0) l-1)) eA))
-  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 0) (1 1)) ((4 0) (0 1)) ((5 1) (1 3)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-0))
-    (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 C) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)
-    ((mul eB l (rec l-0)) (one)))
-  (non-orig (privk B) (privk C) (privk D) l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec l-0) l-1)) eA))
-    (exp (gen) (mul eA (rec l-0) l-1)) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-1) C (privk C))))
-    ((recv (cat (exp (gen) (mul (rec l-0) l-1)) eA))
-      (send (cat (exp (gen) (mul (rec l-0) l-1)) eA))))
-  (label 36)
-  (parent 17)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B D name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self D) (peer D) (l l-0) (e eA)
-    (lp l-0) (ep eB))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l) (e eB)
-    (lp l-0) (ep (mul eA (rec l) l-0)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (defstrand ltx-gen 1 (self D) (l l-0))
-  (deflistener (cat (exp (gen) (mul (rec l) l-0)) eA))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)))
-  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 D) (l B))
-    (foo
-      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-0))) key)))
-  (neq ((mul eA (rec l) l-0) (one)) (eA eB) (eB (one)))
-  (non-orig (privk B) (privk D) l l-0)
-  (uniq-gen eB eA l l-0)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec l) l-0)) eA))
-    (exp (gen) (mul eA (rec l) l-0)) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))
-      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-0) D (privk D))))
-    ((recv (cat (exp (gen) (mul (rec l) l-0)) eA))
-      (send (cat (exp (gen) (mul (rec l) l-0)) eA))))
-  (label 37)
-  (parent 19)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B C D name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self D) (peer C) (l l) (e eA)
-    (lp l-1) (ep eB))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)
-    (lp l) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (defstrand ltx-gen 1 (self C) (l l-1))
-  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))
-  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)) ((4 0) (0 1)) ((5 1) (1 3)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l))
-    (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 C) (l D) (l-0 B))
-    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB) (eB (one)))
-  (non-orig (privk B) (privk C) (privk D) l l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul eA (rec l-0))) l-1))
-    (exp (gen) (mul eA (rec l-0) l-1)) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-1) C (privk C))))
-    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))
-      (send (cat (exp (gen) (mul eA (rec l-0))) l-1))))
-  (label 38)
-  (parent 20)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B C D name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self D) (peer C) (l l) (e eA)
-    (lp l-1) (ep eB))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)
-    (lp l) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (defstrand ltx-gen 1 (self C) (l l-1))
-  (deflistener (cat (exp (gen) (mul (rec l-0) l-1)) eA))
-  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)) ((4 0) (0 1)) ((5 1) (1 3)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l))
-    (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 C) (l D) (l-0 B))
-    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB) (eB (one)))
-  (non-orig (privk B) (privk C) (privk D) l l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec l-0) l-1)) eA))
-    (exp (gen) (mul eA (rec l-0) l-1)) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-1) C (privk C))))
-    ((recv (cat (exp (gen) (mul (rec l-0) l-1)) eA))
-      (send (cat (exp (gen) (mul (rec l-0) l-1)) eA))))
-  (label 39)
-  (parent 20)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B D name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer B) (l l-0) (e eA)
-    (lp l-1) (ep (mul eB l (rec l-0))))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-1) (e eB)
-    (lp l) (ep eA))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (deflistener (cat (exp (gen) (mul eB (rec l-0))) l))
-  (precedes ((0 2) (1 3)) ((1 2) (5 0)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (1 1)) ((4 0) (0 0)) ((4 0) (5 0)) ((5 1) (0 3)))
-  (absent (eB (exp (gen) l-1)) (eB (exp (gen) l)) (eA (exp (gen) l-0))
-    (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 B) (l-0 A) (l D))
-    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))
-  (neq (eA (one)) (eA eB) ((mul eB l (rec l-0)) (one)))
-  (non-orig (privk A) (privk B) (privk D) l-0 l-1)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul eB (rec l-0))) l))
-    (exp (gen) (mul eB l (rec l-0))) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A))))
-    ((recv (cat (exp (gen) (mul eB (rec l-0))) l))
-      (send (cat (exp (gen) (mul eB (rec l-0))) l))))
-  (label 40)
-  (parent 21)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B D name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer B) (l l-0) (e eA)
-    (lp l-1) (ep (mul eB l (rec l-0))))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-1) (e eB)
-    (lp l) (ep eA))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (deflistener (cat (exp (gen) (mul l (rec l-0))) eB))
-  (precedes ((0 2) (1 3)) ((1 2) (5 0)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (1 1)) ((4 0) (0 0)) ((4 0) (5 0)) ((5 1) (0 3)))
-  (absent (eB (exp (gen) l-1)) (eB (exp (gen) l)) (eA (exp (gen) l-0))
-    (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 B) (l-0 A) (l D))
-    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))
-  (neq (eA (one)) (eA eB) ((mul eB l (rec l-0)) (one)))
-  (non-orig (privk A) (privk B) (privk D) l-0 l-1)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul l (rec l-0))) eB))
-    (exp (gen) (mul eB l (rec l-0))) (0 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))
-    ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A))))
-    ((recv (cat (exp (gen) (mul l (rec l-0))) eB))
-      (send (cat (exp (gen) (mul l (rec l-0))) eB))))
-  (label 41)
-  (parent 21)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B D name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer D) (l l) (e eA)
-    (lp l-1) (ep (mul eB (rec l) l-1)))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)
-    (lp l-1) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (defstrand ltx-gen 1 (self A) (l l))
-  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))
-  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((3 0) (1 1)) ((4 0) (0 0)) ((5 1) (1 3)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l-1)) (eA (exp (gen) l))
-    (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 D) (l A) (l-0 B))
-    (foo
-      ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l-1))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)
-    ((mul eB (rec l) l-1) (one)))
-  (non-orig (privk A) (privk B) (privk D) l l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul eA (rec l-0))) l-1))
-    (exp (gen) (mul eA (rec l-0) l-1)) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-1)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((send (enc "cert" (exp (gen) l) A (privk A))))
-    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))
-      (send (cat (exp (gen) (mul eA (rec l-0))) l-1))))
-  (label 42)
-  (parent 22)
-  (unrealized (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B D name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer D) (l l) (e eA)
-    (lp l-1) (ep (mul eB (rec l) l-1)))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)
-    (lp l-1) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l-1))
-  (defstrand ltx-gen 1 (self A) (l l))
-  (deflistener (cat (exp (gen) (mul (rec l-0) l-1)) eA))
-  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 1)) ((3 0) (1 1)) ((4 0) (0 0)) ((5 1) (1 3)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l-1)) (eA (exp (gen) l))
-    (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 D) (l A) (l-0 B))
-    (foo
-      ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l-1))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)
-    ((mul eB (rec l) l-1) (one)))
-  (non-orig (privk A) (privk B) (privk D) l l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec l-0) l-1)) eA))
-    (exp (gen) (mul eA (rec l-0) l-1)) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-1)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l-1) D (privk D))))
-    ((send (enc "cert" (exp (gen) l) A (privk A))))
-    ((recv (cat (exp (gen) (mul (rec l-0) l-1)) eA))
-      (send (cat (exp (gen) (mul (rec l-0) l-1)) eA))))
-  (label 43)
-  (parent 22)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B D name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer A) (l l-1) (e eA)
-    (lp l-1) (ep (mul eB l (rec l-1))))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)
-    (lp l) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-1))
-  (deflistener (cat (exp (gen) (mul (rec l-0) l-1)) eA))
-  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (1 1)) ((4 0) (0 0)) ((5 1) (1 3)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 A) (l D) (l-0 B))
-    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)
-    ((mul eB l (rec l-1)) (one)))
-  (non-orig (privk A) (privk B) (privk D) l-0 l-1)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec l-0) l-1)) eA))
-    (exp (gen) (mul eA (rec l-0) l-1)) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-1) A (privk A)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-1))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-1) A (privk A))))
-    ((recv (cat (exp (gen) (mul (rec l-0) l-1)) eA))
-      (send (cat (exp (gen) (mul (rec l-0) l-1)) eA))))
-  (label 44)
-  (parent 23)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B C D name) (eB eA l l-0 l-1 l-2 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer C) (l l-0) (e eA)
-    (lp l-2) (ep (mul eB l (rec l-0))))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-1) (e eB)
-    (lp l) (ep (mul eA (rec l-1) l-2)))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (defstrand ltx-gen 1 (self C) (l l-2))
-  (deflistener (cat (exp (gen) (mul eA (rec l-1))) l-2))
-  (precedes ((0 2) (6 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (1 1)) ((4 0) (0 0)) ((5 0) (0 1)) ((6 1) (1 3)))
-  (absent (eB (exp (gen) l-1)) (eB (exp (gen) l)) (eA (exp (gen) l-0))
-    (eA (exp (gen) l-2)))
-  (fn-of ("principal-of" (l-2 C) (l-0 A) (l D) (l-1 B))
-    (foo ((hash (exp (gen) (mul eA l-2)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l-1) l-2) (one)) (eA eB)
-    ((mul eB l (rec l-0)) (one)))
-  (non-orig (privk A) (privk B) (privk C) (privk D) l-0 l-1)
-  (uniq-gen eB eA l l-0 l-1 l-2)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul eA (rec l-1))) l-2))
-    (exp (gen) (mul eA (rec l-1) l-2)) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-2) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-1) l-2)))
-      (send key)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A))))
-    ((send (enc "cert" (exp (gen) l-2) C (privk C))))
-    ((recv (cat (exp (gen) (mul eA (rec l-1))) l-2))
-      (send (cat (exp (gen) (mul eA (rec l-1))) l-2))))
-  (label 45)
-  (parent 24)
-  (unrealized (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B C D name) (eB eA l l-0 l-1 l-2 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer C) (l l-0) (e eA)
-    (lp l-2) (ep (mul eB l (rec l-0))))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-1) (e eB)
-    (lp l) (ep (mul eA (rec l-1) l-2)))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (defstrand ltx-gen 1 (self C) (l l-2))
-  (deflistener (cat (exp (gen) (mul (rec l-1) l-2)) eA))
-  (precedes ((0 2) (6 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (1 1)) ((4 0) (0 0)) ((5 0) (0 1)) ((6 1) (1 3)))
-  (absent (eB (exp (gen) l-1)) (eB (exp (gen) l)) (eA (exp (gen) l-0))
-    (eA (exp (gen) l-2)))
-  (fn-of ("principal-of" (l-2 C) (l-0 A) (l D) (l-1 B))
-    (foo ((hash (exp (gen) (mul eA l-2)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l-1) l-2) (one)) (eA eB)
-    ((mul eB l (rec l-0)) (one)))
-  (non-orig (privk A) (privk B) (privk C) (privk D) l-0 l-1)
-  (uniq-gen eB eA l l-0 l-1 l-2)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul (rec l-1) l-2)) eA))
-    (exp (gen) (mul eA (rec l-1) l-2)) (1 3))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-2) C (privk C)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-1) l-2)))
-      (send key)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A))))
-    ((send (enc "cert" (exp (gen) l-2) C (privk C))))
-    ((recv (cat (exp (gen) (mul (rec l-1) l-2)) eA))
-      (send (cat (exp (gen) (mul (rec l-1) l-2)) eA))))
-  (label 46)
-  (parent 24)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B self name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer self) (l l) (e eA)
-    (lp l-0) (ep eB))
-  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)
-    (lp l) (ep (mul eA (rec l) l-0)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (deflistener (cat (exp (gen) (mul eA (rec l))) l-0))
-  (defstrand ltx-gen 2 (self self) (l l-0))
-  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 1) (1 3)) ((4 0) (0 1)) ((4 1) (3 0)))
-  (absent (eB (exp (gen) l)) (eA (exp (gen) l)) (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 self) (l B))
-    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l) l-0) (one)) (eA eB) (eB (one)))
-  (non-orig (privk B) (privk self) l)
-  (uniq-gen eB eA l l-0)
-  (operation nonce-test (displaced 3 5 ltx-gen 2) l-0 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))
-      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (cat (exp (gen) (mul eA (rec l))) l-0))
-      (send (cat (exp (gen) (mul eA (rec l))) l-0)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))
-  (label 47)
-  (parent 25)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B self name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer self) (l l) (e eA)
-    (lp l-1) (ep (mul eB (rec l) l-0)))
-  (defstrand participant2 5 (key key) (self B) (peer B) (l l-0) (e eB)
-    (lp l-0) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l))
-  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((4 1) (1 3)) ((5 0) (0 1)) ((5 1) (4 0)))
-  (absent (eB (exp (gen) l-0)) (eA (exp (gen) l)) (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 self) (l A) (l-0 B))
-    (foo
-      ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l-0))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)
-    ((mul eB (rec l) l-0) (one)))
-  (non-orig (privk A) (privk B) (privk self) l l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test (displaced 4 6 ltx-gen 2) l-1 (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) A (privk A))))
-    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))
-      (send (cat (exp (gen) (mul eA (rec l-0))) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 48)
-  (parent 29)
-  (unrealized (0 3) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B self name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer B) (l l) (e eA)
-    (lp l) (ep (mul eB (rec l) l-0)))
-  (defstrand participant2 5 (key key) (self B) (peer self) (l l) (e eB)
-    (lp l-0) (ep eA))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (deflistener (cat (exp (gen) (mul eB (rec l))) l-0))
-  (defstrand ltx-gen 2 (self self) (l l-0))
-  (precedes ((0 2) (1 3)) ((1 2) (3 0)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 1) (0 3)) ((4 0) (1 1)) ((4 1) (3 0)))
-  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l)))
-  (fn-of ("principal-of" (l-0 self) (l B))
-    (foo ((hash (exp (gen) (mul eA l)) (exp (gen) (mul eB l-0))) key)))
-  (neq (eA (one)) (eA eB) ((mul eB (rec l) l-0) (one)))
-  (non-orig (privk B) (privk self) l)
-  (uniq-gen eB eA l l-0)
-  (operation nonce-test (displaced 3 5 ltx-gen 2) l-0 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (cat (exp (gen) (mul eB (rec l))) l-0))
-      (send (cat (exp (gen) (mul eB (rec l))) l-0)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))
-  (label 49)
-  (parent 31)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B self name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer self) (l l) (e eA)
-    (lp l-0) (ep (mul eB (rec l) l-0)))
-  (defstrand participant2 5 (key key) (self B) (peer self) (l l) (e eB)
-    (lp l-0) (ep (mul eA (rec l) l-0)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (deflistener (cat (exp (gen) (mul eA (rec l))) l-0))
-  (defstrand ltx-gen 2 (self self) (l l-0))
-  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 1) (1 3)) ((4 0) (0 1)) ((4 0) (1 1)) ((4 1) (3 0)))
-  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l))
-    (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 self) (l B))
-    (foo
-      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-0))) key)))
-  (neq ((mul eA (rec l) l-0) (one)) (eA eB)
-    ((mul eB (rec l) l-0) (one)))
-  (non-orig (privk B) (privk self) l)
-  (uniq-gen eB eA l l-0)
-  (operation nonce-test (displaced 3 5 ltx-gen 2) l-0 (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))
-      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (cat (exp (gen) (mul eA (rec l))) l-0))
-      (send (cat (exp (gen) (mul eA (rec l))) l-0)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0)))
-  (label 50)
-  (parent 33)
-  (unrealized (0 3) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B D self name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer self) (l l-0)
-    (e eA) (lp l-1) (ep (mul eB l (rec l-0))))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)
-    (lp l) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 0) (1 1)) ((4 1) (1 3)) ((5 0) (0 1)) ((5 1) (4 0)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-0))
-    (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)
-    ((mul eB l (rec l-0)) (one)))
-  (non-orig (privk B) (privk D) (privk self) l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test (displaced 4 6 ltx-gen 2) l-1 (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))
-      (send (cat (exp (gen) (mul eA (rec l-0))) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 51)
-  (parent 35)
-  (unrealized (0 3) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B D self name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self D) (peer self) (l l) (e eA)
-    (lp l-1) (ep eB))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)
-    (lp l) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)) ((5 0) (0 1))
-    ((5 1) (4 0)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l))
-    (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 self) (l D) (l-0 B))
-    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB) (eB (one)))
-  (non-orig (privk B) (privk D) (privk self) l l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test (displaced 4 6 ltx-gen 2) l-1 (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))
-      (send (cat (exp (gen) (mul eA (rec l-0))) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 52)
-  (parent 38)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B self name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e eA)
-    (lp l-0) (ep (mul eB (rec l) l-1)))
-  (defstrand participant2 5 (key key) (self B) (peer self) (l l-0)
-    (e eB) (lp l-1) (ep eA))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l))
-  (deflistener (cat (exp (gen) (mul eB (rec l))) l-1))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (1 3)) ((1 2) (4 0)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (4 0)) ((4 1) (0 3)) ((5 0) (1 1))
-    ((5 1) (4 0)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l-1)) (eA (exp (gen) l))
-    (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l A))
-    (foo
-      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-1))) key)))
-  (neq (eA (one)) (eA eB) ((mul eB (rec l) l-1) (one)))
-  (non-orig (privk A) (privk B) (privk self) l l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test (displaced 3 6 ltx-gen 2) l-1 (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-1)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) A (privk A))))
-    ((recv (cat (exp (gen) (mul eB (rec l))) l-1))
-      (send (cat (exp (gen) (mul eB (rec l))) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 53)
-  (parent 40)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B self name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer self) (l l) (e eA)
-    (lp l-1) (ep (mul eB (rec l) l-1)))
-  (defstrand participant2 5 (key key) (self B) (peer self) (l l-0)
-    (e eB) (lp l-1) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l))
-  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((4 1) (1 3)) ((5 0) (0 1)) ((5 0) (1 1))
-    ((5 1) (4 0)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l-1)) (eA (exp (gen) l))
-    (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 self) (l A) (l-0 B))
-    (foo
-      ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l-1))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)
-    ((mul eB (rec l) l-1) (one)))
-  (non-orig (privk A) (privk B) (privk self) l l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test (displaced 3 6 ltx-gen 2) l-1 (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-1)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) A (privk A))))
-    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))
-      (send (cat (exp (gen) (mul eA (rec l-0))) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1)))
-  (label 54)
-  (parent 42)
-  (unrealized (0 3) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B D self name) (eB eA l l-0 l-1 l-2 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer self) (l l-0)
-    (e eA) (lp l-2) (ep (mul eB l (rec l-0))))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-1) (e eB)
-    (lp l) (ep (mul eA (rec l-1) l-2)))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (deflistener (cat (exp (gen) (mul eA (rec l-1))) l-2))
-  (defstrand ltx-gen 2 (self self) (l l-2))
-  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (1 1)) ((4 0) (0 0)) ((5 1) (1 3)) ((6 0) (0 1))
-    ((6 1) (5 0)))
-  (absent (eB (exp (gen) l-1)) (eB (exp (gen) l)) (eA (exp (gen) l-0))
-    (eA (exp (gen) l-2)))
-  (fn-of ("principal-of" (l-2 self) (l-0 A) (l D) (l-1 B))
-    (foo ((hash (exp (gen) (mul eA l-2)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l-1) l-2) (one)) (eA eB)
-    ((mul eB l (rec l-0)) (one)))
-  (non-orig (privk A) (privk B) (privk D) (privk self) l-0 l-1)
-  (uniq-gen eB eA l l-0 l-1 l-2)
-  (operation nonce-test (displaced 5 7 ltx-gen 2) l-2 (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-2) self (privk self)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-1) l-2)))
-      (send key)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A))))
-    ((recv (cat (exp (gen) (mul eA (rec l-1))) l-2))
-      (send (cat (exp (gen) (mul eA (rec l-1))) l-2)))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))) (send l-2)))
-  (label 55)
-  (parent 45)
-  (unrealized (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B self name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer self) (l l) (e eA)
-    (lp l-0) (ep eB))
-  (defstrand participant2 5 (key key) (self B) (peer B) (l l) (e eB)
-    (lp l) (ep (mul eA (rec l) l-0)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (deflistener (cat (exp (gen) (mul eA (rec l))) l-0))
-  (defstrand ltx-gen 2 (self self) (l l-0))
-  (deflistener (cat (exp (gen) (rec l)) eA))
-  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 1) (1 3)) ((4 0) (0 1)) ((4 1) (3 0)) ((5 1) (3 0)))
-  (absent (eB (exp (gen) l)) (eA (exp (gen) l)) (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 self) (l B))
-    (foo ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l) l-0) (one)) (eA eB) (eB (one)))
-  (non-orig (privk B) (privk self) l)
-  (uniq-gen eB eA l l-0)
-  (operation nonce-test (added-listener (cat (exp (gen) (rec l)) eA))
-    (exp (gen) (mul eA (rec l))) (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))
-      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (cat (exp (gen) (mul eA (rec l))) l-0))
-      (send (cat (exp (gen) (mul eA (rec l))) l-0)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0))
-    ((recv (cat (exp (gen) (rec l)) eA))
-      (send (cat (exp (gen) (rec l)) eA))))
-  (label 56)
-  (parent 47)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B self name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer self) (l l) (e eA)
-    (lp l-1) (ep (mul eB (rec l) l-0)))
-  (defstrand participant2 5 (key key) (self B) (peer B) (l l-0) (e eB)
-    (lp l-0) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l))
-  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener (cat (exp (gen) (rec l-0)) eA))
-  (precedes ((0 2) (6 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((4 1) (1 3)) ((5 0) (0 1)) ((5 1) (4 0))
-    ((6 1) (4 0)))
-  (absent (eB (exp (gen) l-0)) (eA (exp (gen) l)) (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 self) (l A) (l-0 B))
-    (foo
-      ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l-0))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)
-    ((mul eB (rec l) l-0) (one)))
-  (non-orig (privk A) (privk B) (privk self) l l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test (added-listener (cat (exp (gen) (rec l-0)) eA))
-    (exp (gen) (mul eA (rec l-0))) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) A (privk A))))
-    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))
-      (send (cat (exp (gen) (mul eA (rec l-0))) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv (cat (exp (gen) (rec l-0)) eA))
-      (send (cat (exp (gen) (rec l-0)) eA))))
-  (label 57)
-  (parent 48)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B self name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer B) (l l) (e eA)
-    (lp l) (ep (mul eB (rec l) l-0)))
-  (defstrand participant2 5 (key key) (self B) (peer self) (l l) (e eB)
-    (lp l-0) (ep eA))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (deflistener (cat (exp (gen) (mul eB (rec l))) l-0))
-  (defstrand ltx-gen 2 (self self) (l l-0))
-  (deflistener (cat (exp (gen) (rec l)) eB))
-  (precedes ((0 2) (1 3)) ((1 2) (5 0)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 1) (0 3)) ((4 0) (1 1)) ((4 1) (3 0)) ((5 1) (3 0)))
-  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l)))
-  (fn-of ("principal-of" (l-0 self) (l B))
-    (foo ((hash (exp (gen) (mul eA l)) (exp (gen) (mul eB l-0))) key)))
-  (neq (eA (one)) (eA eB) ((mul eB (rec l) l-0) (one)))
-  (non-orig (privk B) (privk self) l)
-  (uniq-gen eB eA l l-0)
-  (operation nonce-test (added-listener (cat (exp (gen) (rec l)) eB))
-    (exp (gen) (mul eB (rec l))) (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))
-    ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (cat (exp (gen) (mul eB (rec l))) l-0))
-      (send (cat (exp (gen) (mul eB (rec l))) l-0)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0))
-    ((recv (cat (exp (gen) (rec l)) eB))
-      (send (cat (exp (gen) (rec l)) eB))))
-  (label 58)
-  (parent 49)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B self name) (eB eA l l-0 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer self) (l l) (e eA)
-    (lp l-0) (ep (mul eB (rec l) l-0)))
-  (defstrand participant2 5 (key key) (self B) (peer self) (l l) (e eB)
-    (lp l-0) (ep (mul eA (rec l) l-0)))
-  (defstrand ltx-gen 1 (self B) (l l))
-  (deflistener (cat (exp (gen) (mul eA (rec l))) l-0))
-  (defstrand ltx-gen 2 (self self) (l l-0))
-  (deflistener (cat (exp (gen) (rec l)) eA))
-  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 1) (1 3)) ((4 0) (0 1)) ((4 0) (1 1)) ((4 1) (3 0))
-    ((5 1) (3 0)))
-  (absent (eB (exp (gen) l)) (eB (exp (gen) l-0)) (eA (exp (gen) l))
-    (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 self) (l B))
-    (foo
-      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-0))) key)))
-  (neq ((mul eA (rec l) l-0) (one)) (eA eB)
-    ((mul eB (rec l) l-0) (one)))
-  (non-orig (privk B) (privk self) l)
-  (uniq-gen eB eA l l-0)
-  (operation nonce-test (added-listener (cat (exp (gen) (rec l)) eA))
-    (exp (gen) (mul eA (rec l))) (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-0)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l) l-0)))
-      (send key)) ((send (enc "cert" (exp (gen) l) B (privk B))))
-    ((recv (cat (exp (gen) (mul eA (rec l))) l-0))
-      (send (cat (exp (gen) (mul eA (rec l))) l-0)))
-    ((send (enc "cert" (exp (gen) l-0) self (privk self))) (send l-0))
-    ((recv (cat (exp (gen) (rec l)) eA))
-      (send (cat (exp (gen) (rec l)) eA))))
-  (label 59)
-  (parent 50)
-  (unrealized (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B D self name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self B) (peer self) (l l-0)
-    (e eA) (lp l-1) (ep (mul eB l (rec l-0))))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)
-    (lp l) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener (cat (exp (gen) (rec l-0)) eA))
-  (precedes ((0 2) (6 0)) ((1 2) (0 3)) ((2 0) (0 0)) ((2 0) (1 0))
-    ((3 0) (1 1)) ((4 1) (1 3)) ((5 0) (0 1)) ((5 1) (4 0))
-    ((6 1) (4 0)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l-0))
-    (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l D))
-    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)
-    ((mul eB l (rec l-0)) (one)))
-  (non-orig (privk B) (privk D) (privk self) l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test (added-listener (cat (exp (gen) (rec l-0)) eA))
-    (exp (gen) (mul eA (rec l-0))) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))
-      (send (cat (exp (gen) (mul eA (rec l-0))) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv (cat (exp (gen) (rec l-0)) eA))
-      (send (cat (exp (gen) (rec l-0)) eA))))
-  (label 60)
-  (parent 51)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B D self name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self D) (peer self) (l l) (e eA)
-    (lp l-1) (ep eB))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-0) (e eB)
-    (lp l) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener (cat (exp (gen) (rec l-0)) eA))
-  (precedes ((0 2) (6 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (1 1)) ((4 1) (1 3)) ((5 0) (0 1))
-    ((5 1) (4 0)) ((6 1) (4 0)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l)) (eA (exp (gen) l))
-    (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 self) (l D) (l-0 B))
-    (foo ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB) (eB (one)))
-  (non-orig (privk B) (privk D) (privk self) l l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test (added-listener (cat (exp (gen) (rec l-0)) eA))
-    (exp (gen) (mul eA (rec l-0))) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) D (privk D)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv (exp (gen) eB)) (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))
-      (send (cat (exp (gen) (mul eA (rec l-0))) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv (cat (exp (gen) (rec l-0)) eA))
-      (send (cat (exp (gen) (rec l-0)) eA))))
-  (label 61)
-  (parent 52)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B self name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e eA)
-    (lp l-0) (ep (mul eB (rec l) l-1)))
-  (defstrand participant2 5 (key key) (self B) (peer self) (l l-0)
-    (e eB) (lp l-1) (ep eA))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l))
-  (deflistener (cat (exp (gen) (mul eB (rec l))) l-1))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener (cat (exp (gen) (rec l)) eB))
-  (precedes ((0 2) (1 3)) ((1 2) (6 0)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((3 0) (6 0)) ((4 1) (0 3)) ((5 0) (1 1))
-    ((5 1) (4 0)) ((6 1) (4 0)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l-1)) (eA (exp (gen) l))
-    (eA (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-1 self) (l-0 B) (l A))
-    (foo
-      ((hash (exp (gen) (mul eA l-0)) (exp (gen) (mul eB l-1))) key)))
-  (neq (eA (one)) (eA eB) ((mul eB (rec l) l-1) (one)))
-  (non-orig (privk A) (privk B) (privk self) l l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test (added-listener (cat (exp (gen) (rec l)) eB))
-    (exp (gen) (mul eB (rec l))) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-1)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eB)) (recv (exp (gen) eA)) (send key))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) A (privk A))))
-    ((recv (cat (exp (gen) (mul eB (rec l))) l-1))
-      (send (cat (exp (gen) (mul eB (rec l))) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv (cat (exp (gen) (rec l)) eB))
-      (send (cat (exp (gen) (rec l)) eB))))
-  (label 62)
-  (parent 53)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B self name) (eB eA l l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer self) (l l) (e eA)
-    (lp l-1) (ep (mul eB (rec l) l-1)))
-  (defstrand participant2 5 (key key) (self B) (peer self) (l l-0)
-    (e eB) (lp l-1) (ep (mul eA (rec l-0) l-1)))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (defstrand ltx-gen 1 (self A) (l l))
-  (deflistener (cat (exp (gen) (mul eA (rec l-0))) l-1))
-  (defstrand ltx-gen 2 (self self) (l l-1))
-  (deflistener (cat (exp (gen) (rec l-0)) eA))
-  (precedes ((0 2) (6 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (0 0)) ((4 1) (1 3)) ((5 0) (0 1)) ((5 0) (1 1))
-    ((5 1) (4 0)) ((6 1) (4 0)))
-  (absent (eB (exp (gen) l-0)) (eB (exp (gen) l-1)) (eA (exp (gen) l))
-    (eA (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 self) (l A) (l-0 B))
-    (foo
-      ((hash (exp (gen) (mul eA l-1)) (exp (gen) (mul eB l-1))) key)))
-  (neq ((mul eA (rec l-0) l-1) (one)) (eA eB)
-    ((mul eB (rec l) l-1) (one)))
-  (non-orig (privk A) (privk B) (privk self) l l-0)
-  (uniq-gen eB eA l l-0 l-1)
-  (operation nonce-test (added-listener (cat (exp (gen) (rec l-0)) eA))
-    (exp (gen) (mul eA (rec l-0))) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB (rec l) l-1)))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (recv (enc "cert" (exp (gen) l-1) self (privk self)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-0) l-1)))
-      (send key)) ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) A (privk A))))
-    ((recv (cat (exp (gen) (mul eA (rec l-0))) l-1))
-      (send (cat (exp (gen) (mul eA (rec l-0))) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self (privk self))) (send l-1))
-    ((recv (cat (exp (gen) (rec l-0)) eA))
-      (send (cat (exp (gen) (rec l-0)) eA))))
-  (label 63)
-  (parent 54)
-  (unrealized (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B D self name) (eB eA l l-0 l-1 l-2 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer self) (l l-0)
-    (e eA) (lp l-2) (ep (mul eB l (rec l-0))))
-  (defstrand participant2 5 (key key) (self B) (peer D) (l l-1) (e eB)
-    (lp l) (ep (mul eA (rec l-1) l-2)))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (defstrand ltx-gen 1 (self D) (l l))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (deflistener (cat (exp (gen) (mul eA (rec l-1))) l-2))
-  (defstrand ltx-gen 2 (self self) (l l-2))
-  (deflistener (cat (exp (gen) (rec l-1)) eA))
-  (precedes ((0 2) (7 0)) ((1 2) (0 3)) ((2 0) (0 1)) ((2 0) (1 0))
-    ((3 0) (1 1)) ((4 0) (0 0)) ((5 1) (1 3)) ((6 0) (0 1))
-    ((6 1) (5 0)) ((7 1) (5 0)))
-  (absent (eB (exp (gen) l-1)) (eB (exp (gen) l)) (eA (exp (gen) l-0))
-    (eA (exp (gen) l-2)))
-  (fn-of ("principal-of" (l-2 self) (l-0 A) (l D) (l-1 B))
-    (foo ((hash (exp (gen) (mul eA l-2)) (exp (gen) (mul eB l))) key)))
-  (neq ((mul eA (rec l-1) l-2) (one)) (eA eB)
-    ((mul eB l (rec l-0)) (one)))
-  (non-orig (privk A) (privk B) (privk D) (privk self) l-0 l-1)
-  (uniq-gen eB eA l l-0 l-1 l-2)
-  (operation nonce-test (added-listener (cat (exp (gen) (rec l-1)) eA))
-    (exp (gen) (mul eA (rec l-1))) (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) l-2) self (privk self)))
-      (send (exp (gen) eA)) (recv (exp (gen) (mul eB l (rec l-0))))
-      (send key))
-    ((recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (recv (enc "cert" (exp (gen) l) D (privk D)))
-      (send (exp (gen) eB)) (recv (exp (gen) (mul eA (rec l-1) l-2)))
-      (send key)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((send (enc "cert" (exp (gen) l) D (privk D))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A))))
-    ((recv (cat (exp (gen) (mul eA (rec l-1))) l-2))
-      (send (cat (exp (gen) (mul eA (rec l-1))) l-2)))
-    ((send (enc "cert" (exp (gen) l-2) self (privk self))) (send l-2))
-    ((recv (cat (exp (gen) (rec l-1)) eA))
-      (send (cat (exp (gen) (rec l-1)) eA))))
-  (label 64)
-  (parent 55)
-  (unrealized (0 3) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol iadh-umx diffie-hellman
-  (defrole participant1
-    (vars (l e rndx) (lp ep expt) (self peer name) (key data))
-    (trace (recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))
-      (send (exp (gen) e)) (recv (exp (gen) ep)) (send key))
-    (uniq-gen e)
-    (fn-of
-      (foo ((hash (exp (gen) (mul e lp)) (exp (gen) (mul l ep))) key)))
-    (neq (ep (one)))
-    (absent (e (exp (gen) l)) (e (exp (gen) lp))))
-  (defrole participant2
-    (vars (l e rndx) (lp ep expt) (self peer name) (key data))
-    (trace (recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))
-      (send (exp (gen) e)) (recv (exp (gen) ep)) (send key))
-    (uniq-gen e)
-    (fn-of
-      (foo ((hash (exp (gen) (mul l ep)) (exp (gen) (mul e lp))) key)))
-    (neq (ep (one)))
-    (absent (e (exp (gen) l)) (e (exp (gen) lp))))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (enc "cert" (exp (gen) l) self (privk self))) (send l))
-    (uniq-gen l)
-    (fn-of ("principal-of" (l self)))))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B self peer name) (e1 e2 l rndx) (lp expt)
-    (l-0 rndx) (lp-0 expt))
-  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e e1)
-    (lp lp) (ep e2))
-  (defstrand participant2 3 (self self) (peer peer) (l l-0) (e e2)
-    (lp lp-0))
-  (deflistener (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l))))
-  (absent (e2 (exp (gen) l-0)) (e2 (exp (gen) lp-0)) (e1 (exp (gen) l))
-    (e1 (exp (gen) lp)))
-  (fn-of
-    (foo ((hash (exp (gen) (mul e1 lp)) (exp (gen) (mul e2 l))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk A) (privk B))
-  (uniq-gen e1 e2)
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) lp) B (privk B)))
-      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp-0) peer (privk peer)))
-      (send (exp (gen) e2)))
-    ((recv (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l))))
-      (send (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l))))))
-  (label 65)
-  (unrealized (0 0) (0 1) (0 3) (2 0))
-  (preskeleton)
-  (origs)
-  (comment "Not a skeleton"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B self peer name) (e1 e2 l rndx) (lp expt)
-    (l-0 rndx) (lp-0 expt))
-  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e e1)
-    (lp lp) (ep e2))
-  (defstrand participant2 3 (self self) (peer peer) (l l-0) (e e2)
-    (lp lp-0))
-  (deflistener (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l))))
-  (precedes ((0 2) (2 0)) ((1 2) (0 3)) ((1 2) (2 0)))
-  (absent (e2 (exp (gen) l-0)) (e2 (exp (gen) lp-0)) (e1 (exp (gen) l))
-    (e1 (exp (gen) lp)))
-  (fn-of
-    (foo ((hash (exp (gen) (mul e1 lp)) (exp (gen) (mul e2 l))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk A) (privk B))
-  (uniq-gen e1 e2)
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) lp) B (privk B)))
-      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))
-    ((recv (enc "cert" (exp (gen) l-0) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp-0) peer (privk peer)))
-      (send (exp (gen) e2)))
-    ((recv (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l))))
-      (send (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l))))))
-  (label 66)
-  (parent 65)
-  (unrealized (0 0) (0 1))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B name) (l rndx) (lp expt) (e2 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e e2)
-    (lp lp) (ep e2))
-  (deflistener (hash (exp (gen) (mul lp e2)) (exp (gen) (mul l e2))))
-  (precedes ((0 2) (1 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)))
-  (fn-of
-    (foo ((hash (exp (gen) (mul lp e2)) (exp (gen) (mul l e2))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk A) (privk B))
-  (uniq-gen e2)
-  (operation collapsed 1 0)
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) lp) B (privk B)))
-      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))
-    ((recv (hash (exp (gen) (mul lp e2)) (exp (gen) (mul l e2))))
-      (send (hash (exp (gen) (mul lp e2)) (exp (gen) (mul l e2))))))
-  (label 67)
-  (parent 66)
-  (unrealized (0 0) (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B self peer name) (e1 e2 rndx) (lp expt) (l rndx)
-    (lp-0 expt) (l-0 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer B) (l l-0) (e e1)
-    (lp lp) (ep e2))
-  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)
-    (lp lp-0))
-  (deflistener (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (precedes ((0 2) (2 0)) ((1 2) (0 3)) ((1 2) (2 0)) ((3 0) (0 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp-0)) (e1 (exp (gen) l-0))
-    (e1 (exp (gen) lp)))
-  (fn-of ("principal-of" (l-0 A))
-    (foo ((hash (exp (gen) (mul e1 lp)) (exp (gen) (mul e2 l-0))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk A) (privk B))
-  (uniq-gen e1 e2 l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) lp) B (privk B)))
-      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp-0) peer (privk peer)))
-      (send (exp (gen) e2)))
-    ((recv (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))
-      (send (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0)))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A)))))
-  (label 68)
-  (parent 66)
-  (unrealized (0 1) (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B name) (lp expt) (e2 l rndx))
-  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e e2)
-    (lp lp) (ep e2))
-  (deflistener (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))
-  (defstrand ltx-gen 1 (self A) (l l))
-  (precedes ((0 2) (1 0)) ((2 0) (0 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)))
-  (fn-of ("principal-of" (l A))
-    (foo ((hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk A) (privk B))
-  (uniq-gen e2 l)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l) A (privk A)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) lp) B (privk B)))
-      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))
-    ((recv (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))
-      (send (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l)))))
-    ((send (enc "cert" (exp (gen) l) A (privk A)))))
-  (label 69)
-  (parent 67)
-  (unrealized (0 1) (1 0))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B self peer name) (e1 e2 rndx) (lp expt) (l rndx)
-    (lp-0 expt) (l-0 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer B) (l l-0) (e e1)
-    (lp lp) (ep e2))
-  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)
-    (lp lp-0))
-  (deflistener (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (deflistener (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((3 0) (0 0))
-    ((4 1) (2 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp-0)) (e1 (exp (gen) l-0))
-    (e1 (exp (gen) lp)))
-  (fn-of ("principal-of" (l-0 A))
-    (foo ((hash (exp (gen) (mul e1 lp)) (exp (gen) (mul e2 l-0))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk A) (privk B))
-  (uniq-gen e1 e2 l-0)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))
-    (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))) (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) lp) B (privk B)))
-      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp-0) peer (privk peer)))
-      (send (exp (gen) e2)))
-    ((recv (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))
-      (send (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0)))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A))))
-    ((recv (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))
-      (send (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))))
-  (label 70)
-  (parent 68)
-  (unrealized (0 1) (4 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B name) (lp expt) (e2 l rndx))
-  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e e2)
-    (lp lp) (ep e2))
-  (deflistener (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))
-  (defstrand ltx-gen 1 (self A) (l l))
-  (deflistener (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))
-  (precedes ((0 2) (3 0)) ((2 0) (0 0)) ((3 1) (1 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)))
-  (fn-of ("principal-of" (l A))
-    (foo ((hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk A) (privk B))
-  (uniq-gen e2 l)
-  (operation encryption-test
-    (added-listener
-      (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))
-    (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))) (1 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) lp) B (privk B)))
-      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))
-    ((recv (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))
-      (send (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l)))))
-    ((send (enc "cert" (exp (gen) l) A (privk A))))
-    ((recv (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))
-      (send (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))))
-  (label 71)
-  (parent 69)
-  (unrealized (0 1) (3 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B self peer name) (e1 e2 rndx) (lp expt) (l rndx)
-    (lp-0 expt) (l-0 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer B) (l l-0) (e e1)
-    (lp lp) (ep e2))
-  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)
-    (lp lp-0))
-  (deflistener (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (deflistener (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))
-  (deflistener (cat (exp (gen) e1) l-0))
-  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((3 0) (0 0))
-    ((4 1) (2 0)) ((5 1) (4 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp-0)) (e1 (exp (gen) l-0))
-    (e1 (exp (gen) lp)))
-  (fn-of ("principal-of" (l-0 A))
-    (foo ((hash (exp (gen) (mul e1 lp)) (exp (gen) (mul e2 l-0))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk A) (privk B))
-  (uniq-gen e1 e2 l-0)
-  (operation nonce-test (added-listener (cat (exp (gen) e1) l-0))
-    (exp (gen) (mul e1 l-0)) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) lp) B (privk B)))
-      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp-0) peer (privk peer)))
-      (send (exp (gen) e2)))
-    ((recv (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))
-      (send (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0)))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A))))
-    ((recv (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))
-      (send (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0)))))
-    ((recv (cat (exp (gen) e1) l-0)) (send (cat (exp (gen) e1) l-0))))
-  (label 72)
-  (parent 70)
-  (unrealized (0 1) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B self peer name) (e1 e2 rndx) (lp expt) (l rndx)
-    (lp-0 expt) (l-0 rndx))
-  (defstrand participant1 5 (key key) (self A) (peer B) (l l-0) (e e1)
-    (lp lp) (ep e2))
-  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)
-    (lp lp-0))
-  (deflistener (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))
-  (defstrand ltx-gen 1 (self A) (l l-0))
-  (deflistener (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))
-  (deflistener (cat (exp (gen) l-0) e1))
-  (precedes ((0 2) (5 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((3 0) (0 0))
-    ((4 1) (2 0)) ((5 1) (4 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp-0)) (e1 (exp (gen) l-0))
-    (e1 (exp (gen) lp)))
-  (fn-of ("principal-of" (l-0 A))
-    (foo ((hash (exp (gen) (mul e1 lp)) (exp (gen) (mul e2 l-0))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk A) (privk B))
-  (uniq-gen e1 e2 l-0)
-  (operation nonce-test (added-listener (cat (exp (gen) l-0) e1))
-    (exp (gen) (mul e1 l-0)) (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) A (privk A)))
-      (recv (enc "cert" (exp (gen) lp) B (privk B)))
-      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp-0) peer (privk peer)))
-      (send (exp (gen) e2)))
-    ((recv (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))
-      (send (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0)))))
-    ((send (enc "cert" (exp (gen) l-0) A (privk A))))
-    ((recv (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))
-      (send (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0)))))
-    ((recv (cat (exp (gen) l-0) e1)) (send (cat (exp (gen) l-0) e1))))
-  (label 73)
-  (parent 70)
-  (unrealized (0 1) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B name) (lp expt) (e2 l rndx))
-  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e e2)
-    (lp lp) (ep e2))
-  (deflistener (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))
-  (defstrand ltx-gen 1 (self A) (l l))
-  (deflistener (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))
-  (deflistener (cat (exp (gen) e2) l))
-  (precedes ((0 2) (4 0)) ((2 0) (0 0)) ((3 1) (1 0)) ((4 1) (3 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)))
-  (fn-of ("principal-of" (l A))
-    (foo ((hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk A) (privk B))
-  (uniq-gen e2 l)
-  (operation nonce-test (added-listener (cat (exp (gen) e2) l))
-    (exp (gen) (mul e2 l)) (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) lp) B (privk B)))
-      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))
-    ((recv (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))
-      (send (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l)))))
-    ((send (enc "cert" (exp (gen) l) A (privk A))))
-    ((recv (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))
-      (send (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l)))))
-    ((recv (cat (exp (gen) e2) l)) (send (cat (exp (gen) e2) l))))
-  (label 74)
-  (parent 71)
-  (unrealized (0 1) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (A B name) (lp expt) (e2 l rndx))
-  (defstrand participant1 5 (key key) (self A) (peer B) (l l) (e e2)
-    (lp lp) (ep e2))
-  (deflistener (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))
-  (defstrand ltx-gen 1 (self A) (l l))
-  (deflistener (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))
-  (deflistener (cat (exp (gen) l) e2))
-  (precedes ((0 2) (4 0)) ((2 0) (0 0)) ((3 1) (1 0)) ((4 1) (3 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)))
-  (fn-of ("principal-of" (l A))
-    (foo ((hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk A) (privk B))
-  (uniq-gen e2 l)
-  (operation nonce-test (added-listener (cat (exp (gen) l) e2))
-    (exp (gen) (mul e2 l)) (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) A (privk A)))
-      (recv (enc "cert" (exp (gen) lp) B (privk B)))
-      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))
-    ((recv (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))
-      (send (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l)))))
-    ((send (enc "cert" (exp (gen) l) A (privk A))))
-    ((recv (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))
-      (send (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l)))))
-    ((recv (cat (exp (gen) l) e2)) (send (cat (exp (gen) l) e2))))
-  (label 75)
-  (parent 71)
-  (unrealized (0 1) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B self peer self-0 name) (e1 e2 rndx) (lp expt)
-    (l rndx) (lp-0 expt) (l-0 rndx))
-  (defstrand participant1 5 (key key) (self self-0) (peer B) (l l-0)
-    (e e1) (lp lp) (ep e2))
-  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)
-    (lp lp-0))
-  (deflistener (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))
-  (deflistener (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))
-  (deflistener (cat (exp (gen) e1) l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((3 1) (2 0))
-    ((4 1) (3 0)) ((5 0) (0 0)) ((5 1) (4 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp-0)) (e1 (exp (gen) l-0))
-    (e1 (exp (gen) lp)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo ((hash (exp (gen) (mul e1 lp)) (exp (gen) (mul e2 l-0))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk B) (privk self-0))
-  (uniq-gen e1 e2 l-0)
-  (operation nonce-test (displaced 3 6 ltx-gen 2) l-0 (5 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) lp) B (privk B)))
-      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp-0) peer (privk peer)))
-      (send (exp (gen) e2)))
-    ((recv (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))
-      (send (hash (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0)))))
-    ((recv (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0))))
-      (send (cat (exp (gen) (mul e2 lp)) (exp (gen) (mul e1 l-0)))))
-    ((recv (cat (exp (gen) e1) l-0)) (send (cat (exp (gen) e1) l-0)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 76)
-  (parent 72)
-  (unrealized (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B self name) (lp expt) (e2 l rndx))
-  (defstrand participant1 5 (key key) (self self) (peer B) (l l) (e e2)
-    (lp lp) (ep e2))
-  (deflistener (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))
-  (deflistener (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))
-  (deflistener (cat (exp (gen) e2) l))
-  (defstrand ltx-gen 2 (self self) (l l))
-  (precedes ((0 2) (3 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 0))
-    ((4 1) (3 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk B) (privk self))
-  (uniq-gen e2 l)
-  (operation nonce-test (displaced 2 5 ltx-gen 2) l (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp) B (privk B)))
-      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))
-    ((recv (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))
-      (send (hash (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l)))))
-    ((recv (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l))))
-      (send (cat (exp (gen) (mul lp e2)) (exp (gen) (mul e2 l)))))
-    ((recv (cat (exp (gen) e2) l)) (send (cat (exp (gen) e2) l)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))) (send l)))
-  (label 77)
-  (parent 74)
-  (unrealized (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (self peer self-0 name) (e1 e2 l rndx) (lp expt)
-    (l-0 rndx))
-  (defstrand participant1 5 (key key) (self self-0) (peer self-0)
-    (l l-0) (e e1) (lp l-0) (ep e2))
-  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)
-    (lp lp))
-  (deflistener (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0))))
-  (deflistener (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0))))
-  (deflistener (cat (exp (gen) e1) l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((3 1) (2 0))
-    ((4 1) (3 0)) ((5 0) (0 0)) ((5 1) (4 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)) (e1 (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo
-      ((hash (exp (gen) (mul e1 l-0)) (exp (gen) (mul e2 l-0))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk self-0))
-  (uniq-gen e1 e2 l-0)
-  (operation encryption-test (displaced 6 5 ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) B (privk B)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))
-      (send (exp (gen) e2)))
-    ((recv (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0))))
-      (send (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0)))))
-    ((recv (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0))))
-      (send (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0)))))
-    ((recv (cat (exp (gen) e1) l-0)) (send (cat (exp (gen) e1) l-0)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 78)
-  (parent 76)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B self peer self-0 name) (e1 e2 l rndx) (lp expt)
-    (l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self self-0) (peer B) (l l-0)
-    (e e1) (lp l-1) (ep e2))
-  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)
-    (lp lp))
-  (deflistener (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-  (deflistener (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-  (deflistener (cat (exp (gen) e1) l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (3 0)) ((3 1) (2 0))
-    ((4 1) (3 0)) ((5 0) (0 0)) ((5 1) (4 0)) ((6 0) (0 1)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)) (e1 (exp (gen) l-0))
-    (e1 (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 B) (l-0 self-0))
-    (foo
-      ((hash (exp (gen) (mul e1 l-1)) (exp (gen) (mul e2 l-0))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk B) (privk self-0))
-  (uniq-gen e1 e2 l-0 l-1)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-1) B (privk B)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))
-      (send (exp (gen) e2)))
-    ((recv (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-      (send (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))
-    ((recv (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-      (send (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))
-    ((recv (cat (exp (gen) e1) l-0)) (send (cat (exp (gen) e1) l-0)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)) ((send (enc "cert" (exp (gen) l-1) B (privk B)))))
-  (label 79)
-  (parent 76)
-  (unrealized (3 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (self name) (e2 l rndx))
-  (defstrand participant1 5 (key key) (self self) (peer self) (l l)
-    (e e2) (lp l) (ep e2))
-  (deflistener (hash (exp (gen) (mul e2 l)) (exp (gen) (mul e2 l))))
-  (deflistener (cat (exp (gen) (mul e2 l)) (exp (gen) (mul e2 l))))
-  (deflistener (cat (exp (gen) e2) l))
-  (defstrand ltx-gen 2 (self self) (l l))
-  (precedes ((0 2) (3 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 0))
-    ((4 1) (3 0)))
-  (absent (e2 (exp (gen) l)))
-  (fn-of ("principal-of" (l self))
-    (foo ((hash (exp (gen) (mul e2 l)) (exp (gen) (mul e2 l))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk self))
-  (uniq-gen e2 l)
-  (operation encryption-test (displaced 5 4 ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) B (privk B)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) l) self (privk self)))
-      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))
-    ((recv (hash (exp (gen) (mul e2 l)) (exp (gen) (mul e2 l))))
-      (send (hash (exp (gen) (mul e2 l)) (exp (gen) (mul e2 l)))))
-    ((recv (cat (exp (gen) (mul e2 l)) (exp (gen) (mul e2 l))))
-      (send (cat (exp (gen) (mul e2 l)) (exp (gen) (mul e2 l)))))
-    ((recv (cat (exp (gen) e2) l)) (send (cat (exp (gen) e2) l)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))) (send l)))
-  (label 80)
-  (parent 77)
-  (unrealized)
-  (shape)
-  (maps)
-  (origs))
-
-(defskeleton iadh-umx
-  (vars (key data) (B self name) (e2 l l-0 rndx))
-  (defstrand participant1 5 (key key) (self self) (peer B) (l l) (e e2)
-    (lp l-0) (ep e2))
-  (deflistener (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))
-  (deflistener (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))
-  (deflistener (cat (exp (gen) e2) l))
-  (defstrand ltx-gen 2 (self self) (l l))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (precedes ((0 2) (3 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (0 0))
-    ((4 1) (3 0)) ((5 0) (0 1)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 B) (l self))
-    (foo ((hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk B) (privk self))
-  (uniq-gen e2 l l-0)
-  (operation encryption-test (added-strand ltx-gen 1)
-    (enc "cert" (exp (gen) l-0) B (privk B)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))
-    ((recv (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))
-      (send (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l)))))
-    ((recv (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))
-      (send (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l)))))
-    ((recv (cat (exp (gen) e2) l)) (send (cat (exp (gen) e2) l)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))) (send l))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B)))))
-  (label 81)
-  (parent 77)
-  (unrealized (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (self peer self-0 name) (e1 e2 l rndx) (lp expt)
-    (l-0 rndx))
-  (defstrand participant1 5 (key key) (self self-0) (peer self-0)
-    (l l-0) (e e1) (lp l-0) (ep e2))
-  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)
-    (lp lp))
-  (deflistener (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0))))
-  (deflistener (cat (exp (gen) e1) l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (2 0)) ((3 1) (2 0))
-    ((4 0) (0 0)) ((4 1) (3 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)) (e1 (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo
-      ((hash (exp (gen) (mul e1 l-0)) (exp (gen) (mul e2 l-0))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk self-0))
-  (uniq-gen e1 e2 l-0)
-  (operation generalization deleted (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))
-      (send (exp (gen) e2)))
-    ((recv (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0))))
-      (send (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0)))))
-    ((recv (cat (exp (gen) e1) l-0)) (send (cat (exp (gen) e1) l-0)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 82)
-  (parent 78)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B self peer self-0 name) (e1 e2 l rndx) (lp expt)
-    (l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self self-0) (peer B) (l l-0)
-    (e e1) (lp l-1) (ep e2))
-  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)
-    (lp lp))
-  (deflistener (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-  (deflistener (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-  (deflistener (cat (exp (gen) e1) l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (deflistener (cat (exp (gen) e2) l-1))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (7 0)) ((3 1) (2 0))
-    ((4 1) (3 0)) ((5 0) (0 0)) ((5 1) (4 0)) ((6 0) (0 1))
-    ((6 0) (7 0)) ((7 1) (3 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)) (e1 (exp (gen) l-0))
-    (e1 (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 B) (l-0 self-0))
-    (foo
-      ((hash (exp (gen) (mul e1 l-1)) (exp (gen) (mul e2 l-0))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk B) (privk self-0))
-  (uniq-gen e1 e2 l-0 l-1)
-  (operation nonce-test (added-listener (cat (exp (gen) e2) l-1))
-    (exp (gen) (mul e2 l-1)) (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))
-      (send (exp (gen) e2)))
-    ((recv (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-      (send (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))
-    ((recv (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-      (send (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))
-    ((recv (cat (exp (gen) e1) l-0)) (send (cat (exp (gen) e1) l-0)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((recv (cat (exp (gen) e2) l-1)) (send (cat (exp (gen) e2) l-1))))
-  (label 83)
-  (parent 79)
-  (unrealized (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B self peer self-0 name) (e1 e2 l rndx) (lp expt)
-    (l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self self-0) (peer B) (l l-0)
-    (e e1) (lp l-1) (ep e2))
-  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)
-    (lp lp))
-  (deflistener (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-  (deflistener (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-  (deflistener (cat (exp (gen) e1) l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (defstrand ltx-gen 1 (self B) (l l-1))
-  (deflistener (cat (exp (gen) l-1) e2))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (7 0)) ((3 1) (2 0))
-    ((4 1) (3 0)) ((5 0) (0 0)) ((5 1) (4 0)) ((6 0) (0 1))
-    ((6 0) (7 0)) ((7 1) (3 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)) (e1 (exp (gen) l-0))
-    (e1 (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 B) (l-0 self-0))
-    (foo
-      ((hash (exp (gen) (mul e1 l-1)) (exp (gen) (mul e2 l-0))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk B) (privk self-0))
-  (uniq-gen e1 e2 l-0 l-1)
-  (operation nonce-test (added-listener (cat (exp (gen) l-1) e2))
-    (exp (gen) (mul e2 l-1)) (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-1) B (privk B)))
-      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))
-      (send (exp (gen) e2)))
-    ((recv (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-      (send (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))
-    ((recv (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-      (send (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))
-    ((recv (cat (exp (gen) e1) l-0)) (send (cat (exp (gen) e1) l-0)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)) ((send (enc "cert" (exp (gen) l-1) B (privk B))))
-    ((recv (cat (exp (gen) l-1) e2)) (send (cat (exp (gen) l-1) e2))))
-  (label 84)
-  (parent 79)
-  (unrealized (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B self name) (e2 l l-0 rndx))
-  (defstrand participant1 5 (key key) (self self) (peer B) (l l) (e e2)
-    (lp l-0) (ep e2))
-  (deflistener (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))
-  (deflistener (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))
-  (deflistener (cat (exp (gen) e2) l))
-  (defstrand ltx-gen 2 (self self) (l l))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (deflistener (cat (exp (gen) e2) l-0))
-  (precedes ((0 2) (3 0)) ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0))
-    ((4 0) (0 0)) ((4 1) (3 0)) ((5 0) (0 1)) ((6 1) (2 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 B) (l self))
-    (foo ((hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk B) (privk self))
-  (uniq-gen e2 l l-0)
-  (operation nonce-test (added-listener (cat (exp (gen) e2) l-0))
-    (exp (gen) (mul e2 l-0)) (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))
-    ((recv (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))
-      (send (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l)))))
-    ((recv (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))
-      (send (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l)))))
-    ((recv (cat (exp (gen) e2) l)) (send (cat (exp (gen) e2) l)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))) (send l))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((recv (cat (exp (gen) e2) l-0)) (send (cat (exp (gen) e2) l-0))))
-  (label 85)
-  (parent 81)
-  (unrealized (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (B self name) (e2 l l-0 rndx))
-  (defstrand participant1 5 (key key) (self self) (peer B) (l l) (e e2)
-    (lp l-0) (ep e2))
-  (deflistener (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))
-  (deflistener (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))
-  (deflistener (cat (exp (gen) e2) l))
-  (defstrand ltx-gen 2 (self self) (l l))
-  (defstrand ltx-gen 1 (self B) (l l-0))
-  (deflistener (cat (exp (gen) l-0) e2))
-  (precedes ((0 2) (3 0)) ((0 2) (6 0)) ((2 1) (1 0)) ((3 1) (2 0))
-    ((4 0) (0 0)) ((4 1) (3 0)) ((5 0) (0 1)) ((6 1) (2 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 B) (l self))
-    (foo ((hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk B) (privk self))
-  (uniq-gen e2 l l-0)
-  (operation nonce-test (added-listener (cat (exp (gen) l-0) e2))
-    (exp (gen) (mul e2 l-0)) (2 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) l-0) B (privk B)))
-      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))
-    ((recv (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))
-      (send (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l)))))
-    ((recv (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))
-      (send (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l)))))
-    ((recv (cat (exp (gen) e2) l)) (send (cat (exp (gen) e2) l)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))) (send l))
-    ((send (enc "cert" (exp (gen) l-0) B (privk B))))
-    ((recv (cat (exp (gen) l-0) e2)) (send (cat (exp (gen) l-0) e2))))
-  (label 86)
-  (parent 81)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton iadh-umx
-  (vars (key data) (self peer self-0 name) (e1 e2 l rndx) (lp expt)
-    (l-0 rndx))
-  (defstrand participant1 5 (key key) (self self-0) (peer self-0)
-    (l l-0) (e e1) (lp l-0) (ep e2))
-  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)
-    (lp lp))
-  (deflistener (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0))))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (2 0)) ((1 2) (0 3)) ((1 2) (2 0)) ((3 0) (0 0))
-    ((3 1) (2 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)) (e1 (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 self-0))
-    (foo
-      ((hash (exp (gen) (mul e1 l-0)) (exp (gen) (mul e2 l-0))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk self-0))
-  (uniq-gen e1 e2 l-0)
-  (operation generalization deleted (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))
-      (send (exp (gen) e2)))
-    ((recv (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0))))
-      (send (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e1 l-0)))))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 87)
-  (parent 82)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1 2)
-      ((e1 e1) (e2 e2) (l l-0) (lp l-0) (A self-0) (B self-0) (key key)
-        (l-0 l) (lp-0 lp) (self self) (peer peer))))
-  (origs))
-
-(defskeleton iadh-umx
-  (vars (key data) (self peer self-0 self-1 name) (e1 e2 l rndx)
-    (lp expt) (l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self self-0) (peer self-1)
-    (l l-0) (e e1) (lp l-1) (ep e2))
-  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)
-    (lp lp))
-  (deflistener (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-  (deflistener (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-  (deflistener (cat (exp (gen) e1) l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (deflistener (cat (exp (gen) e2) l-1))
-  (defstrand ltx-gen 2 (self self-1) (l l-1))
-  (precedes ((0 2) (4 0)) ((1 2) (0 3)) ((1 2) (6 0)) ((3 1) (2 0))
-    ((4 1) (3 0)) ((5 0) (0 0)) ((5 1) (4 0)) ((6 1) (3 0))
-    ((7 0) (0 1)) ((7 1) (6 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)) (e1 (exp (gen) l-0))
-    (e1 (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0))
-    (foo
-      ((hash (exp (gen) (mul e1 l-1)) (exp (gen) (mul e2 l-0))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk self-0) (privk self-1))
-  (uniq-gen e1 e2 l-0 l-1)
-  (operation nonce-test (displaced 6 8 ltx-gen 2) l-1 (7 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))
-      (send (exp (gen) e2)))
-    ((recv (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-      (send (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))
-    ((recv (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-      (send (cat (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))
-    ((recv (cat (exp (gen) e1) l-0)) (send (cat (exp (gen) e1) l-0)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0))
-    ((recv (cat (exp (gen) e2) l-1)) (send (cat (exp (gen) e2) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send l-1)))
-  (label 88)
-  (parent 83)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (self self-0 name) (e2 l l-0 rndx))
-  (defstrand participant1 5 (key key) (self self) (peer self-0) (l l)
-    (e e2) (lp l-0) (ep e2))
-  (deflistener (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))
-  (deflistener (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))
-  (deflistener (cat (exp (gen) e2) l))
-  (defstrand ltx-gen 2 (self self) (l l))
-  (deflistener (cat (exp (gen) e2) l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (precedes ((0 2) (3 0)) ((0 2) (5 0)) ((2 1) (1 0)) ((3 1) (2 0))
-    ((4 0) (0 0)) ((4 1) (3 0)) ((5 1) (2 0)) ((6 0) (0 1))
-    ((6 1) (5 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) l-0)))
-  (fn-of ("principal-of" (l-0 self-0) (l self))
-    (foo ((hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk self) (privk self-0))
-  (uniq-gen e2 l l-0)
-  (operation nonce-test (displaced 5 7 ltx-gen 2) l-0 (6 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send (exp (gen) e2)) (recv (exp (gen) e2)) (send key))
-    ((recv (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))
-      (send (hash (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l)))))
-    ((recv (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l))))
-      (send (cat (exp (gen) (mul e2 l-0)) (exp (gen) (mul e2 l)))))
-    ((recv (cat (exp (gen) e2) l)) (send (cat (exp (gen) e2) l)))
-    ((send (enc "cert" (exp (gen) l) self (privk self))) (send l))
-    ((recv (cat (exp (gen) e2) l-0)) (send (cat (exp (gen) e2) l-0)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0)))
-  (label 89)
-  (parent 85)
-  (unrealized)
-  (shape)
-  (maps)
-  (origs))
-
-(defskeleton iadh-umx
-  (vars (key data) (self peer self-0 self-1 name) (e1 e2 l rndx)
-    (lp expt) (l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self self-0) (peer self-1)
-    (l l-0) (e e1) (lp l-1) (ep e2))
-  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)
-    (lp lp))
-  (deflistener (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-  (deflistener (cat (exp (gen) e1) l-0))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (deflistener (cat (exp (gen) e2) l-1))
-  (defstrand ltx-gen 2 (self self-1) (l l-1))
-  (precedes ((0 2) (3 0)) ((1 2) (0 3)) ((1 2) (5 0)) ((3 1) (2 0))
-    ((4 0) (0 0)) ((4 1) (3 0)) ((5 1) (2 0)) ((6 0) (0 1))
-    ((6 1) (5 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)) (e1 (exp (gen) l-0))
-    (e1 (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0))
-    (foo
-      ((hash (exp (gen) (mul e1 l-1)) (exp (gen) (mul e2 l-0))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk self-0) (privk self-1))
-  (uniq-gen e1 e2 l-0 l-1)
-  (operation generalization deleted (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))
-      (send (exp (gen) e2)))
-    ((recv (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-      (send (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))
-    ((recv (cat (exp (gen) e1) l-0)) (send (cat (exp (gen) e1) l-0)))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0))
-    ((recv (cat (exp (gen) e2) l-1)) (send (cat (exp (gen) e2) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send l-1)))
-  (label 90)
-  (parent 88)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (self peer self-0 self-1 name) (e1 e2 l rndx)
-    (lp expt) (l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self self-0) (peer self-1)
-    (l l-0) (e e1) (lp l-1) (ep e2))
-  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)
-    (lp lp))
-  (deflistener (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (deflistener (cat (exp (gen) e2) l-1))
-  (defstrand ltx-gen 2 (self self-1) (l l-1))
-  (precedes ((0 2) (2 0)) ((1 2) (0 3)) ((1 2) (4 0)) ((3 0) (0 0))
-    ((3 1) (2 0)) ((4 1) (2 0)) ((5 0) (0 1)) ((5 1) (4 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)) (e1 (exp (gen) l-0))
-    (e1 (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0))
-    (foo
-      ((hash (exp (gen) (mul e1 l-1)) (exp (gen) (mul e2 l-0))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk self-0) (privk self-1))
-  (uniq-gen e1 e2 l-0 l-1)
-  (operation generalization deleted (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))
-      (send (exp (gen) e2)))
-    ((recv (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-      (send (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0))
-    ((recv (cat (exp (gen) e2) l-1)) (send (cat (exp (gen) e2) l-1)))
-    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send l-1)))
-  (label 91)
-  (parent 90)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton iadh-umx
-  (vars (key data) (self peer self-0 self-1 name) (e1 e2 l rndx)
-    (lp expt) (l-0 l-1 rndx))
-  (defstrand participant1 5 (key key) (self self-0) (peer self-1)
-    (l l-0) (e e1) (lp l-1) (ep e2))
-  (defstrand participant2 3 (self self) (peer peer) (l l) (e e2)
-    (lp lp))
-  (deflistener (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-  (defstrand ltx-gen 2 (self self-0) (l l-0))
-  (defstrand ltx-gen 2 (self self-1) (l l-1))
-  (precedes ((0 2) (2 0)) ((1 2) (0 3)) ((1 2) (2 0)) ((3 0) (0 0))
-    ((3 1) (2 0)) ((4 0) (0 1)) ((4 1) (2 0)))
-  (absent (e2 (exp (gen) l)) (e2 (exp (gen) lp)) (e1 (exp (gen) l-0))
-    (e1 (exp (gen) l-1)))
-  (fn-of ("principal-of" (l-1 self-1) (l-0 self-0))
-    (foo
-      ((hash (exp (gen) (mul e1 l-1)) (exp (gen) (mul e2 l-0))) key)))
-  (neq (e2 (one)))
-  (non-orig (privk self-0) (privk self-1))
-  (uniq-gen e1 e2 l-0 l-1)
-  (operation generalization deleted (4 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (recv (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send (exp (gen) e1)) (recv (exp (gen) e2)) (send key))
-    ((recv (enc "cert" (exp (gen) l) self (privk self)))
-      (recv (enc "cert" (exp (gen) lp) peer (privk peer)))
-      (send (exp (gen) e2)))
-    ((recv (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0))))
-      (send (hash (exp (gen) (mul e2 l-1)) (exp (gen) (mul e1 l-0)))))
-    ((send (enc "cert" (exp (gen) l-0) self-0 (privk self-0)))
-      (send l-0))
-    ((send (enc "cert" (exp (gen) l-1) self-1 (privk self-1)))
-      (send l-1)))
-  (label 92)
-  (parent 91)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1 2)
-      ((e1 e1) (e2 e2) (l l-0) (lp l-1) (A self-0) (B self-1) (key key)
-        (l-0 l) (lp-0 lp) (self self) (peer peer))))
-  (origs))
-
-(comment "Nothing left to do")
diff --git a/tst/incompleteness_example.scm b/tst/incompleteness_example.scm
new file mode 100644
--- /dev/null
+++ b/tst/incompleteness_example.scm
@@ -0,0 +1,21 @@
+(herald incompleteness-example
+  (comment "Shows a shape not found by CPSA"))
+
+(defprotocol incompleteness-example basic
+  (defrole init (vars (k akey) (n text))
+    (trace (send (enc n k)) (recv n))
+    (uniq-orig n))
+  (defrole resp (vars (k akey) (n1 n2 text))
+    (trace (recv (enc n1 k)) (send n2))))
+
+(defskeleton incompleteness-example
+  (vars (k akey))
+  (defstrand init 2 (k k))
+  (non-orig (invk k)))
+
+(defskeleton incompleteness-example
+  (vars (k akey) (n text))
+  (defstrand init 2 (k k) (n n))
+  (defstrand resp 2 (k k) (n1 n) (n2 n))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (comment "A shape compatible with the first problem in this run"))
diff --git a/tst/incompleteness_example.tst b/tst/incompleteness_example.tst
new file mode 100644
--- /dev/null
+++ b/tst/incompleteness_example.tst
@@ -0,0 +1,65 @@
+(herald incompleteness-example
+  (comment "Shows a shape not found by CPSA"))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/incompleteness_example.scm")
+
+(defprotocol incompleteness-example basic
+  (defrole init
+    (vars (k akey) (n text))
+    (trace (send (enc n k)) (recv n))
+    (uniq-orig n))
+  (defrole resp
+    (vars (k akey) (n1 n2 text))
+    (trace (recv (enc n1 k)) (send n2)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton incompleteness-example
+  (vars (n text) (k akey))
+  (defstrand init 2 (n n) (k k))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (traces ((send (enc n k)) (recv n)))
+  (label 0)
+  (unrealized (0 1))
+  (dead)
+  (origs (n (0 0)))
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol incompleteness-example basic
+  (defrole init
+    (vars (k akey) (n text))
+    (trace (send (enc n k)) (recv n))
+    (uniq-orig n))
+  (defrole resp
+    (vars (k akey) (n1 n2 text))
+    (trace (recv (enc n1 k)) (send n2)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton incompleteness-example
+  (vars (n text) (k akey))
+  (defstrand init 2 (n n) (k k))
+  (defstrand resp 2 (n1 n) (n2 n) (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig n)
+  (comment "A shape compatible with the first problem in this run")
+  (traces ((send (enc n k)) (recv n)) ((recv (enc n k)) (send n)))
+  (label 1)
+  (realized)
+  (shape)
+  (maps ((0 1) ((k k) (n n))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/injection.scm b/tst/injection.scm
deleted file mode 100644
--- a/tst/injection.scm
+++ /dev/null
@@ -1,53 +0,0 @@
-(herald "Needham-Schroeder Public-Key Protocol"
-	(algebra diffie-hellman)
-	(comment "This protocol contains a man-in-the-middle"
-		 "attack discovered by Galvin Lowe."))
-
-;;; Used to generate output for inclusion in the primer.
-;;; Use margin = 60 (-m 60) to generate the output.
-
-(defprotocol ns diffie-hellman
-  (defrole init
-    (vars (a b c d name) (n1 n2 text))
-    (trace
-     (send (enc n1 a c d (pubk b)))
-     (recv (enc (enc n1 n2 (pubk a)) (pubk c)))
-     (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a c d name) (n2 n1 text))
-    (trace
-     (recv (enc n1 a c d (pubk b)))
-     (send (enc (enc n1 n2 (pubk a)) (pubk c)))
-     (recv (enc n2 (pubk b)))))
-  (comment "Needham-Schroeder variant 1"))
-
-;;; The responder point-of-view
-(defskeleton ns
-  (vars (a name) (n2 text))
-  (defstrand resp 3 (a a) (n2 n2))
-  (non-orig (privk a))
-  (uniq-orig n2)
-  (comment "Responder point-of-view"))
-
-(defprotocol ns-inj diffie-hellman
-  (defrole init
-    (vars (a b c d name) (n1 n2 text))
-    (trace
-     (send (enc n1 a c d (pubk b)))
-     (recv (enc (enc (enc n1 n2 (pubk a)) (pubk c)) (pubk d)))
-     (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a c d name) (n2 n1 text))
-    (trace
-     (recv (enc n1 a c d (pubk b)))
-     (send (enc (enc (enc n1 n2 (pubk a)) (pubk c)) (pubk d)))
-     (recv (enc n2 (pubk b)))))
-  (comment "Needham-Schroeder variant 2"))
-
-;;; The responder point-of-view
-(defskeleton ns-inj
-  (vars (a name) (n2 text))
-  (defstrand resp 3 (a a) (n2 n2))
-  (non-orig (privk a))
-  (uniq-orig n2)
-  (comment "Responder point-of-view"))
diff --git a/tst/injection.tst b/tst/injection.tst
deleted file mode 100644
--- a/tst/injection.tst
+++ /dev/null
@@ -1,112 +0,0 @@
-(herald "Needham-Schroeder Public-Key Protocol" (algebra diffie-hellman)
-  (comment "This protocol contains a man-in-the-middle"
-    "attack discovered by Galvin Lowe."))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/injection.scm")
-
-(defprotocol ns diffie-hellman
-  (defrole init
-    (vars (a b c d name) (n1 n2 text))
-    (trace (send (enc n1 a c d (pubk b)))
-      (recv (enc (enc n1 n2 (pubk a)) (pubk c)))
-      (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a c d name) (n2 n1 text))
-    (trace (recv (enc n1 a c d (pubk b)))
-      (send (enc (enc n1 n2 (pubk a)) (pubk c)))
-      (recv (enc n2 (pubk b)))))
-  (comment "Needham-Schroeder variant 1"))
-
-(defskeleton ns
-  (vars (n2 n1 text) (a b c d name))
-  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a) (c c) (d d))
-  (non-orig (privk a))
-  (uniq-orig n2)
-  (comment "Responder point-of-view")
-  (traces
-    ((recv (enc n1 a c d (pubk b)))
-      (send (enc (enc n1 n2 (pubk a)) (pubk c)))
-      (recv (enc n2 (pubk b)))))
-  (label 0)
-  (unrealized (0 2))
-  (origs (n2 (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton ns
-  (vars (n2 n1 text) (a b c d b-0 c-0 d-0 name))
-  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a) (c c) (d d))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0) (c c-0) (d d-0))
-  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
-  (non-orig (privk a))
-  (uniq-orig n2)
-  (operation nonce-test (added-strand init 3) n2 (0 2)
-    (enc n1 n2 (pubk a)))
-  (traces
-    ((recv (enc n1 a c d (pubk b)))
-      (send (enc (enc n1 n2 (pubk a)) (pubk c)))
-      (recv (enc n2 (pubk b))))
-    ((send (enc n1 a c-0 d-0 (pubk b-0)))
-      (recv (enc (enc n1 n2 (pubk a)) (pubk c-0)))
-      (send (enc n2 (pubk b-0)))))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (n2 n2) (b b) (c c) (d d) (n1 n1))))
-  (origs (n2 (0 1))))
-
-(comment "Nothing left to do")
-
-(defprotocol ns-inj diffie-hellman
-  (defrole init
-    (vars (a b c d name) (n1 n2 text))
-    (trace (send (enc n1 a c d (pubk b)))
-      (recv (enc (enc (enc n1 n2 (pubk a)) (pubk c)) (pubk d)))
-      (send (enc n2 (pubk b)))))
-  (defrole resp
-    (vars (b a c d name) (n2 n1 text))
-    (trace (recv (enc n1 a c d (pubk b)))
-      (send (enc (enc (enc n1 n2 (pubk a)) (pubk c)) (pubk d)))
-      (recv (enc n2 (pubk b)))))
-  (comment "Needham-Schroeder variant 2"))
-
-(defskeleton ns-inj
-  (vars (n2 n1 text) (a b c d name))
-  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a) (c c) (d d))
-  (non-orig (privk a))
-  (uniq-orig n2)
-  (comment "Responder point-of-view")
-  (traces
-    ((recv (enc n1 a c d (pubk b)))
-      (send (enc (enc (enc n1 n2 (pubk a)) (pubk c)) (pubk d)))
-      (recv (enc n2 (pubk b)))))
-  (label 2)
-  (unrealized (0 2))
-  (origs (n2 (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton ns-inj
-  (vars (n2 n1 text) (a b c d b-0 c-0 d-0 name))
-  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a) (c c) (d d))
-  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0) (c c-0) (d d-0))
-  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
-  (non-orig (privk a))
-  (uniq-orig n2)
-  (operation nonce-test (added-strand init 3) n2 (0 2)
-    (enc n1 n2 (pubk a)))
-  (traces
-    ((recv (enc n1 a c d (pubk b)))
-      (send (enc (enc (enc n1 n2 (pubk a)) (pubk c)) (pubk d)))
-      (recv (enc n2 (pubk b))))
-    ((send (enc n1 a c-0 d-0 (pubk b-0)))
-      (recv (enc (enc (enc n1 n2 (pubk a)) (pubk c-0)) (pubk d-0)))
-      (send (enc n2 (pubk b-0)))))
-  (label 3)
-  (parent 2)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (n2 n2) (b b) (c c) (d d) (n1 n1))))
-  (origs (n2 (0 1))))
-
-(comment "Nothing left to do")
diff --git a/tst/isoreject-corrected.scm b/tst/isoreject-corrected.scm
new file mode 100644
--- /dev/null
+++ b/tst/isoreject-corrected.scm
@@ -0,0 +1,24 @@
+(herald isoreject-corrected)
+
+(defprotocol isofix basic
+  (defrole init (vars (a b name) (na nb nc text))
+    (trace
+     (send (cat a na))
+     (recv (enc "first" nb na a (privk b)))
+     (send (enc "second" nc nb b (privk a)))))
+  (defrole resp (vars (a b name) (na nb nc text))
+    (trace
+     (recv (cat a na))
+     (send (enc "first" nb na a (privk b)))
+     (recv (enc "second" nc nb b (privk a))))
+    (uniq-orig nb)))
+
+(defskeleton isofix
+  (vars (a b name))
+  (defstrand resp 3 (a a) (b b))
+  (non-orig (privk a) (privk b)))
+
+(defskeleton isofix
+  (vars (b name))
+  (defstrand init 3 (b b))
+  (non-orig (privk b)))
diff --git a/tst/isoreject-corrected.tst b/tst/isoreject-corrected.tst
new file mode 100644
--- /dev/null
+++ b/tst/isoreject-corrected.tst
@@ -0,0 +1,127 @@
+(herald isoreject-corrected)
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/isoreject-corrected.scm")
+
+(defprotocol isofix basic
+  (defrole init
+    (vars (a b name) (na nb nc text))
+    (trace (send (cat a na)) (recv (enc "first" nb na a (privk b)))
+      (send (enc "second" nc nb b (privk a)))))
+  (defrole resp
+    (vars (a b name) (na nb nc text))
+    (trace (recv (cat a na)) (send (enc "first" nb na a (privk b)))
+      (recv (enc "second" nc nb b (privk a))))
+    (uniq-orig nb))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton isofix
+  (vars (na nb nc text) (a b name))
+  (defstrand resp 3 (na na) (nb nb) (nc nc) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig nb)
+  (traces
+    ((recv (cat a na)) (send (enc "first" nb na a (privk b)))
+      (recv (enc "second" nc nb b (privk a)))))
+  (label 0)
+  (unrealized (0 2))
+  (origs (nb (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton isofix
+  (vars (na nb nc na-0 text) (a b name))
+  (defstrand resp 3 (na na) (nb nb) (nc nc) (a a) (b b))
+  (defstrand init 3 (na na-0) (nb nb) (nc nc) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig nb)
+  (operation encryption-test (added-strand init 3)
+    (enc "second" nc nb b (privk a)) (0 2))
+  (traces
+    ((recv (cat a na)) (send (enc "first" nb na a (privk b)))
+      (recv (enc "second" nc nb b (privk a))))
+    ((send (cat a na-0)) (recv (enc "first" nb na-0 a (privk b)))
+      (send (enc "second" nc nb b (privk a)))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton isofix
+  (vars (na nb nc text) (a b name))
+  (defstrand resp 3 (na na) (nb nb) (nc nc) (a a) (b b))
+  (defstrand init 3 (na na) (nb nb) (nc nc) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig nb)
+  (operation encryption-test (displaced 2 0 resp 2)
+    (enc "first" nb na-0 a (privk b)) (1 1))
+  (traces
+    ((recv (cat a na)) (send (enc "first" nb na a (privk b)))
+      (recv (enc "second" nc nb b (privk a))))
+    ((send (cat a na)) (recv (enc "first" nb na a (privk b)))
+      (send (enc "second" nc nb b (privk a)))))
+  (label 2)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (na na) (nb nb) (nc nc))))
+  (origs (nb (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol isofix basic
+  (defrole init
+    (vars (a b name) (na nb nc text))
+    (trace (send (cat a na)) (recv (enc "first" nb na a (privk b)))
+      (send (enc "second" nc nb b (privk a)))))
+  (defrole resp
+    (vars (a b name) (na nb nc text))
+    (trace (recv (cat a na)) (send (enc "first" nb na a (privk b)))
+      (recv (enc "second" nc nb b (privk a))))
+    (uniq-orig nb))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton isofix
+  (vars (na nb nc text) (b a name))
+  (defstrand init 3 (na na) (nb nb) (nc nc) (a a) (b b))
+  (non-orig (privk b))
+  (traces
+    ((send (cat a na)) (recv (enc "first" nb na a (privk b)))
+      (send (enc "second" nc nb b (privk a)))))
+  (label 3)
+  (unrealized (0 1))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton isofix
+  (vars (na nb nc text) (b a name))
+  (defstrand init 3 (na na) (nb nb) (nc nc) (a a) (b b))
+  (defstrand resp 2 (na na) (nb nb) (a a) (b b))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-orig nb)
+  (operation encryption-test (added-strand resp 2)
+    (enc "first" nb na a (privk b)) (0 1))
+  (traces
+    ((send (cat a na)) (recv (enc "first" nb na a (privk b)))
+      (send (enc "second" nc nb b (privk a))))
+    ((recv (cat a na)) (send (enc "first" nb na a (privk b)))))
+  (label 4)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (a a) (na na) (nb nb) (nc nc))))
+  (origs (nb (1 1))))
+
+(comment "Nothing left to do")
diff --git a/tst/isoreject.scm b/tst/isoreject.scm
new file mode 100644
--- /dev/null
+++ b/tst/isoreject.scm
@@ -0,0 +1,22 @@
+(defprotocol isoreject basic
+  (defrole init (vars (a b name) (na nb nc text))
+    (trace
+     (send (cat a na))
+     (recv (enc nb na a (privk b)))
+     (send (enc nc nb b (privk a)))))
+  (defrole resp (vars (a b name) (na nb nc text))
+    (trace
+     (recv (cat a na))
+     (send (enc nb na a (privk b)))
+     (recv (enc nc nb b (privk a))))
+    (uniq-orig nb)))
+
+(defskeleton isoreject
+  (vars (a b name))
+  (defstrand resp 3 (a a) (b b))
+  (non-orig (privk a) (privk b)))
+
+(defskeleton isoreject
+  (vars (b name))
+  (defstrand init 3 (b b))
+  (non-orig (privk b)))
diff --git a/tst/isoreject.tst b/tst/isoreject.tst
new file mode 100644
--- /dev/null
+++ b/tst/isoreject.tst
@@ -0,0 +1,165 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/isoreject.scm")
+
+(defprotocol isoreject basic
+  (defrole init
+    (vars (a b name) (na nb nc text))
+    (trace (send (cat a na)) (recv (enc nb na a (privk b)))
+      (send (enc nc nb b (privk a)))))
+  (defrole resp
+    (vars (a b name) (na nb nc text))
+    (trace (recv (cat a na)) (send (enc nb na a (privk b)))
+      (recv (enc nc nb b (privk a))))
+    (uniq-orig nb))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton isoreject
+  (vars (na nb nc text) (a b name))
+  (defstrand resp 3 (na na) (nb nb) (nc nc) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig nb)
+  (traces
+    ((recv (cat a na)) (send (enc nb na a (privk b)))
+      (recv (enc nc nb b (privk a)))))
+  (label 0)
+  (unrealized (0 2))
+  (origs (nb (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton isoreject
+  (vars (na nb nc na-0 text) (a b name))
+  (defstrand resp 3 (na na) (nb nb) (nc nc) (a a) (b b))
+  (defstrand init 3 (na na-0) (nb nb) (nc nc) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig nb)
+  (operation encryption-test (added-strand init 3)
+    (enc nc nb b (privk a)) (0 2))
+  (traces
+    ((recv (cat a na)) (send (enc nb na a (privk b)))
+      (recv (enc nc nb b (privk a))))
+    ((send (cat a na-0)) (recv (enc nb na-0 a (privk b)))
+      (send (enc nc nb b (privk a)))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton isoreject
+  (vars (na nb nc text) (a b name))
+  (defstrand resp 3 (na na) (nb nb) (nc nc) (a a) (b b))
+  (defstrand resp 2 (na nb) (nb nc) (a b) (b a))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig nb nc)
+  (operation encryption-test (added-strand resp 2)
+    (enc nc nb b (privk a)) (0 2))
+  (traces
+    ((recv (cat a na)) (send (enc nb na a (privk b)))
+      (recv (enc nc nb b (privk a))))
+    ((recv (cat b nb)) (send (enc nc nb b (privk a)))))
+  (label 2)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (na na) (nb nb) (nc nc))))
+  (origs (nc (1 1)) (nb (0 1))))
+
+(defskeleton isoreject
+  (vars (na nb nc text) (a b name))
+  (defstrand resp 3 (na na) (nb nb) (nc nc) (a a) (b b))
+  (defstrand init 3 (na na) (nb nb) (nc nc) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig nb)
+  (operation encryption-test (displaced 2 0 resp 2)
+    (enc nb na-0 a (privk b)) (1 1))
+  (traces
+    ((recv (cat a na)) (send (enc nb na a (privk b)))
+      (recv (enc nc nb b (privk a))))
+    ((send (cat a na)) (recv (enc nb na a (privk b)))
+      (send (enc nc nb b (privk a)))))
+  (label 3)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (na na) (nb nb) (nc nc))))
+  (origs (nb (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol isoreject basic
+  (defrole init
+    (vars (a b name) (na nb nc text))
+    (trace (send (cat a na)) (recv (enc nb na a (privk b)))
+      (send (enc nc nb b (privk a)))))
+  (defrole resp
+    (vars (a b name) (na nb nc text))
+    (trace (recv (cat a na)) (send (enc nb na a (privk b)))
+      (recv (enc nc nb b (privk a))))
+    (uniq-orig nb))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton isoreject
+  (vars (na nb nc text) (b a name))
+  (defstrand init 3 (na na) (nb nb) (nc nc) (a a) (b b))
+  (non-orig (privk b))
+  (traces
+    ((send (cat a na)) (recv (enc nb na a (privk b)))
+      (send (enc nc nb b (privk a)))))
+  (label 4)
+  (unrealized (0 1))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton isoreject
+  (vars (na nb nc na-0 text) (b a name))
+  (defstrand init 3 (na na) (nb nb) (nc nc) (a a) (b b))
+  (defstrand init 3 (na na-0) (nb na) (nc nb) (a b) (b a))
+  (precedes ((1 2) (0 1)))
+  (non-orig (privk b))
+  (operation encryption-test (added-strand init 3)
+    (enc nb na a (privk b)) (0 1))
+  (traces
+    ((send (cat a na)) (recv (enc nb na a (privk b)))
+      (send (enc nc nb b (privk a))))
+    ((send (cat b na-0)) (recv (enc na na-0 b (privk a)))
+      (send (enc nb na a (privk b)))))
+  (label 5)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (a a) (na na) (nb nb) (nc nc))))
+  (origs))
+
+(defskeleton isoreject
+  (vars (na nb nc text) (b a name))
+  (defstrand init 3 (na na) (nb nb) (nc nc) (a a) (b b))
+  (defstrand resp 2 (na na) (nb nb) (a a) (b b))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-orig nb)
+  (operation encryption-test (added-strand resp 2)
+    (enc nb na a (privk b)) (0 1))
+  (traces
+    ((send (cat a na)) (recv (enc nb na a (privk b)))
+      (send (enc nc nb b (privk a))))
+    ((recv (cat a na)) (send (enc nb na a (privk b)))))
+  (label 6)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (a a) (na na) (nb nb) (nc nc))))
+  (origs (nb (1 1))))
+
+(comment "Nothing left to do")
diff --git a/tst/jdg-neuman-stubblebine-reauth.tst b/tst/jdg-neuman-stubblebine-reauth.tst
new file mode 100644
--- /dev/null
+++ b/tst/jdg-neuman-stubblebine-reauth.tst
@@ -0,0 +1,2550 @@
+(herald jdg-neuman-stubblebine-reauth (bound 8))
+
+(comment "CPSA 4.3.0")
+(comment "All input read from tst/jdg-neuman-stubblebine-reauth.lsp")
+
+(defprotocol neuman-stubblebine basic
+  (defrole init
+    (vars (a b ks name) (ra rb text) (k skey) (tb text) (tkt mesg))
+    (trace (send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) tkt rb))
+      (send (cat tkt (enc rb k)))))
+  (defrole resp
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (defrole keyserver
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    (uniq-orig k))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton neuman-stubblebine
+  (vars (ra tb rb text) (a b ks name) (k skey))
+  (defstrand resp 3 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks) (k k))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 0)
+  (unrealized (0 2))
+  (origs (rb (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (ra tb rb ra-0 rb-0 text) (a b ks name) (k skey))
+  (defstrand resp 3 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra-0) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (precedes ((1 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation encryption-test (added-strand keyserver 2)
+    (enc a k tb (ltk b ks)) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 2) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (ra tb rb rb-0 text) (a b ks name) (k skey))
+  (defstrand resp 3 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation encryption-test (displaced 2 0 resp 2)
+    (enc a ra-0 tb (ltk b ks)) (1 0))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (ra tb rb ra-0 rb-0 rb-1 text) (a b ks name) (k skey))
+  (defstrand resp 3 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra-0) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((1 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation encryption-test (added-strand resp 2)
+    (enc a ra-0 tb (ltk b ks)) (1 0))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb (ltk b ks))))))
+  (label 3)
+  (parent 1)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (tkt mesg) (ra tb rb rb-0 ra-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name) (k skey))
+  (defstrand resp 3 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand init 3 (tkt tkt) (ra ra-0) (rb rb) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0) (k k))
+  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((2 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a-0 ra-0))
+      (recv (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0)) tkt rb))
+      (send (cat tkt (enc rb k)))))
+  (label 4)
+  (parent 2)
+  (unrealized (2 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (ra tb rb rb-0 text) (a b ks name) (k skey))
+  (defstrand resp 3 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (deflistener k)
+  (precedes ((0 1) (1 0)) ((1 1) (2 0)) ((2 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv k) (send k)))
+  (label 5)
+  (parent 2)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine
+  (vars (tkt mesg) (ra tb rb ra-0 rb-0 rb-1 ra-1 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name) (k skey))
+  (defstrand resp 3 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra-0) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (tkt tkt) (ra ra-1) (rb rb) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0) (k k))
+  (precedes ((0 1) (3 1)) ((1 1) (3 1)) ((2 1) (1 0)) ((3 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a-0 ra-1))
+      (recv (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0)) tkt rb))
+      (send (cat tkt (enc rb k)))))
+  (label 6)
+  (parent 3)
+  (unrealized (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (ra tb rb ra-0 rb-0 rb-1 text) (a b ks name) (k skey))
+  (defstrand resp 3 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra-0) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (3 0)) ((2 1) (1 0)) ((3 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv k) (send k)))
+  (label 7)
+  (parent 3)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine
+  (vars (tkt mesg) (ra tb rb rb-0 text) (a b ks name) (k skey))
+  (defstrand resp 3 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand init 3 (tkt tkt) (ra ra) (rb rb) (tb tb) (a a) (b b)
+    (ks ks) (k k))
+  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((2 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (ra-0 ra) (tb-0 tb)) k (2 1)
+    (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra)) (recv (cat (enc b ra k tb (ltk a ks)) tkt rb))
+      (send (cat tkt (enc rb k)))))
+  (label 8)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k))))
+  (origs (k (1 1)) (ra (2 0)) (rb (0 1))))
+
+(defskeleton neuman-stubblebine
+  (vars (tkt mesg) (ra tb rb ra-0 rb-0 rb-1 text) (a b ks name)
+    (k skey))
+  (defstrand resp 3 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra-0) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (tkt tkt) (ra ra-0) (rb rb) (tb tb) (a a) (b b)
+    (ks ks) (k k))
+  (precedes ((0 1) (3 1)) ((1 1) (3 1)) ((2 1) (1 0)) ((3 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (ra-1 ra-0) (tb-0 tb)) k (3 1)
+    (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv (cat (enc b ra-0 k tb (ltk a ks)) tkt rb))
+      (send (cat tkt (enc rb k)))))
+  (label 9)
+  (parent 6)
+  (realized)
+  (shape)
+  (maps ((0) ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k))))
+  (origs (k (1 1)) (rb (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol neuman-stubblebine basic
+  (defrole init
+    (vars (a b ks name) (ra rb text) (k skey) (tb text) (tkt mesg))
+    (trace (send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) tkt rb))
+      (send (cat tkt (enc rb k)))))
+  (defrole resp
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (defrole keyserver
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    (uniq-orig k))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton neuman-stubblebine
+  (vars (tkt mesg) (ra tb rb text) (a b ks name) (k skey))
+  (defstrand init 3 (tkt tkt) (ra ra) (rb rb) (tb tb) (a a) (b b)
+    (ks ks) (k k))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (traces
+    ((send (cat a ra)) (recv (cat (enc b ra k tb (ltk a ks)) tkt rb))
+      (send (cat tkt (enc rb k)))))
+  (label 10)
+  (unrealized (0 1))
+  (origs (ra (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (tkt mesg) (ra tb rb rb-0 text) (a b ks name) (k skey))
+  (defstrand init 3 (tkt tkt) (ra ra) (rb rb) (tb tb) (a a) (b b)
+    (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation encryption-test (added-strand keyserver 2)
+    (enc b ra k tb (ltk a ks)) (0 1))
+  (traces
+    ((send (cat a ra)) (recv (cat (enc b ra k tb (ltk a ks)) tkt rb))
+      (send (cat tkt (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0))))
+  (label 11)
+  (parent 10)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (tkt mesg) (ra tb rb rb-0 rb-1 text) (a b ks name) (k skey))
+  (defstrand init 3 (tkt tkt) (ra ra) (rb rb) (tb tb) (a a) (b b)
+    (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation encryption-test (added-strand resp 2)
+    (enc a ra tb (ltk b ks)) (1 0))
+  (traces
+    ((send (cat a ra)) (recv (cat (enc b ra k tb (ltk a ks)) tkt rb))
+      (send (cat tkt (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat a ra)) (send (cat b rb-1 (enc a ra tb (ltk b ks))))))
+  (label 12)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps
+    ((0) ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k) (tkt tkt))))
+  (origs (k (1 1)) (ra (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol neuman-stubblebine basic
+  (defrole init
+    (vars (a b ks name) (ra rb text) (k skey) (tb text) (tkt mesg))
+    (trace (send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) tkt rb))
+      (send (cat tkt (enc rb k)))))
+  (defrole resp
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (defrole keyserver
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    (uniq-orig k))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton neuman-stubblebine
+  (vars (ra tb rb text) (a b ks name) (k skey))
+  (defstrand resp 3 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks) (k k))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 13)
+  (unrealized (0 2))
+  (origs (rb (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (ra tb rb ra-0 rb-0 text) (a b ks name) (k skey))
+  (defstrand resp 3 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra-0) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (precedes ((1 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation encryption-test (added-strand keyserver 2)
+    (enc a k tb (ltk b ks)) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0))))
+  (label 14)
+  (parent 13)
+  (unrealized (0 2) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (ra tb rb rb-0 text) (a b ks name) (k skey))
+  (defstrand resp 3 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation encryption-test (displaced 2 0 resp 2)
+    (enc a ra-0 tb (ltk b ks)) (1 0))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0))))
+  (label 15)
+  (parent 14)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (ra tb rb ra-0 rb-0 rb-1 text) (a b ks name) (k skey))
+  (defstrand resp 3 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra-0) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((1 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation encryption-test (added-strand resp 2)
+    (enc a ra-0 tb (ltk b ks)) (1 0))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb (ltk b ks))))))
+  (label 16)
+  (parent 14)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (tkt mesg) (ra tb rb rb-0 ra-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name) (k skey))
+  (defstrand resp 3 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand init 3 (tkt tkt) (ra ra-0) (rb rb) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0) (k k))
+  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((2 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a-0 ra-0))
+      (recv (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0)) tkt rb))
+      (send (cat tkt (enc rb k)))))
+  (label 17)
+  (parent 15)
+  (unrealized (2 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (ra tb rb rb-0 text) (a b ks name) (k skey))
+  (defstrand resp 3 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (deflistener k)
+  (precedes ((0 1) (1 0)) ((1 1) (2 0)) ((2 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv k) (send k)))
+  (label 18)
+  (parent 15)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine
+  (vars (tkt mesg) (ra tb rb ra-0 rb-0 rb-1 ra-1 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name) (k skey))
+  (defstrand resp 3 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra-0) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (tkt tkt) (ra ra-1) (rb rb) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0) (k k))
+  (precedes ((0 1) (3 1)) ((1 1) (3 1)) ((2 1) (1 0)) ((3 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a-0 ra-1))
+      (recv (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0)) tkt rb))
+      (send (cat tkt (enc rb k)))))
+  (label 19)
+  (parent 16)
+  (unrealized (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (ra tb rb ra-0 rb-0 rb-1 text) (a b ks name) (k skey))
+  (defstrand resp 3 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra-0) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (3 0)) ((2 1) (1 0)) ((3 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv k) (send k)))
+  (label 20)
+  (parent 16)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine
+  (vars (tkt mesg) (ra tb rb rb-0 text) (a b ks name) (k skey))
+  (defstrand resp 3 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand init 3 (tkt tkt) (ra ra) (rb rb) (tb tb) (a a) (b b)
+    (ks ks) (k k))
+  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((2 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (ra-0 ra) (tb-0 tb)) k (2 1)
+    (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra)) (recv (cat (enc b ra k tb (ltk a ks)) tkt rb))
+      (send (cat tkt (enc rb k)))))
+  (label 21)
+  (parent 17)
+  (realized)
+  (shape)
+  (maps ((0) ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k))))
+  (origs (k (1 1)) (ra (2 0)) (rb (0 1))))
+
+(defskeleton neuman-stubblebine
+  (vars (tkt mesg) (ra tb rb ra-0 rb-0 rb-1 text) (a b ks name)
+    (k skey))
+  (defstrand resp 3 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra-0) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (tkt tkt) (ra ra-0) (rb rb) (tb tb) (a a) (b b)
+    (ks ks) (k k))
+  (precedes ((0 1) (3 1)) ((1 1) (3 1)) ((2 1) (1 0)) ((3 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (ra-1 ra-0) (tb-0 tb)) k (3 1)
+    (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv (cat (enc b ra-0 k tb (ltk a ks)) tkt rb))
+      (send (cat tkt (enc rb k)))))
+  (label 22)
+  (parent 19)
+  (realized)
+  (shape)
+  (maps ((0) ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k))))
+  (origs (k (1 1)) (rb (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol neuman-stubblebine basic
+  (defrole init
+    (vars (a b ks name) (ra rb text) (k skey) (tb text) (tkt mesg))
+    (trace (send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) tkt rb))
+      (send (cat tkt (enc rb k)))))
+  (defrole resp
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (defrole keyserver
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    (uniq-orig k))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton neuman-stubblebine
+  (vars (tkt mesg) (ra tb rb text) (a b ks name) (k skey))
+  (defstrand init 3 (tkt tkt) (ra ra) (rb rb) (tb tb) (a a) (b b)
+    (ks ks) (k k))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (traces
+    ((send (cat a ra)) (recv (cat (enc b ra k tb (ltk a ks)) tkt rb))
+      (send (cat tkt (enc rb k)))))
+  (label 23)
+  (unrealized (0 1))
+  (origs (ra (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (tkt mesg) (ra tb rb rb-0 text) (a b ks name) (k skey))
+  (defstrand init 3 (tkt tkt) (ra ra) (rb rb) (tb tb) (a a) (b b)
+    (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation encryption-test (added-strand keyserver 2)
+    (enc b ra k tb (ltk a ks)) (0 1))
+  (traces
+    ((send (cat a ra)) (recv (cat (enc b ra k tb (ltk a ks)) tkt rb))
+      (send (cat tkt (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0))))
+  (label 24)
+  (parent 23)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (tkt mesg) (ra tb rb rb-0 rb-1 text) (a b ks name) (k skey))
+  (defstrand init 3 (tkt tkt) (ra ra) (rb rb) (tb tb) (a a) (b b)
+    (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k)
+  (operation encryption-test (added-strand resp 2)
+    (enc a ra tb (ltk b ks)) (1 0))
+  (traces
+    ((send (cat a ra)) (recv (cat (enc b ra k tb (ltk a ks)) tkt rb))
+      (send (cat tkt (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat a ra)) (send (cat b rb-1 (enc a ra tb (ltk b ks))))))
+  (label 25)
+  (parent 24)
+  (realized)
+  (shape)
+  (maps
+    ((0) ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k) (tkt tkt))))
+  (origs (k (1 1)) (ra (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol neuman-stubblebine-reauth basic
+  (defrole init
+    (vars (a b ks name) (ra rb tb text) (k skey) (tkt mesg))
+    (trace (send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) tkt rb))
+      (send (cat tkt (enc rb k)))))
+  (defrole resp
+    (vars (a b ks name) (ra rb tb text) (k skey))
+    (trace (recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (defrole init-reauth
+    (vars (a b ks name) (ra ra-prime rb-prime text) (k skey) (tb text)
+      (tkt mesg))
+    (trace (recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime)) (recv (cat rb-prime (enc ra-prime k)))
+      (send (enc rb-prime k))))
+  (defrole resp-reauth
+    (vars (a b ks name) (tb ra-prime rb-prime text) (k skey))
+    (trace (recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k))))
+  (defrole keyserver
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    (uniq-orig k))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (ra-prime rb-prime tb text) (a b ks name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k))))
+  (label 26)
+  (unrealized (0 0))
+  (origs (rb-prime (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (ra-prime rb-prime tb ra rb text) (a b ks name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (precedes ((1 1) (0 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-strand keyserver 2)
+    (enc a k tb (ltk b ks)) (0 0))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))))
+  (label 27)
+  (parent 26)
+  (unrealized (0 2) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (ra-prime rb-prime tb ra rb rb-0 text) (a b ks name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-strand resp 2)
+    (enc a ra tb (ltk b ks)) (1 0))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks))))))
+  (label 28)
+  (parent 27)
+  (unrealized (0 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-0 ra-prime-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra-0) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a-0) (b b-0) (ks ks-0) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((2 1) (1 0))
+    ((3 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc rb-prime k) (0 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k))))
+  (label 29)
+  (parent 28)
+  (unrealized (3 0) (3 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt mesg) (ra-prime rb-prime tb ra rb rb-0 ra-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (tkt tkt) (ra ra-0) (rb rb-prime) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0) (k k))
+  (precedes ((0 1) (3 1)) ((1 1) (0 0)) ((2 1) (1 0)) ((3 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-strand init 3) (enc rb-prime k)
+    (0 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((send (cat a-0 ra-0))
+      (recv (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0)) tkt rb-prime))
+      (send (cat tkt (enc rb-prime k)))))
+  (label 30)
+  (parent 28)
+  (unrealized (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (ra-prime rb-prime tb ra rb rb-0 tb-0 rb-prime-0 text)
+    (a b ks a-0 b-0 ks-0 name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (tb tb-0) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (a a-0) (b b-0) (ks ks-0) (k k))
+  (precedes ((0 1) (3 0)) ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc rb-prime k) (0 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k)))))
+  (label 31)
+  (parent 28)
+  (unrealized (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (ra-prime rb-prime tb ra rb rb-0 text) (a b ks name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (0 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((3 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-listener k) (enc rb-prime k) (0 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv k) (send k)))
+  (label 32)
+  (parent 28)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt mesg) (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 text)
+    (a b ks name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((2 1) (1 0))
+    ((3 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (ra-0 ra) (tb-0 tb)) k (3 0)
+    (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k))))
+  (label 33)
+  (parent 29)
+  (unrealized (3 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt mesg) (ra-prime rb-prime tb ra rb rb-0 text) (a b ks name)
+    (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (tkt tkt) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks) (k k))
+  (precedes ((0 1) (3 1)) ((1 1) (0 0)) ((2 1) (1 0)) ((3 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (ra-0 ra) (tb-0 tb)) k (3 1)
+    (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) tkt rb-prime))
+      (send (cat tkt (enc rb-prime k)))))
+  (label 34)
+  (parent 30)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (ks ks) (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+        (tb tb))))
+  (origs (k (1 1)) (rb-prime (0 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (ra-prime rb-prime tb ra rb rb-0 rb-prime-0 text) (a b ks name)
+    (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (tb tb) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (a a) (b b) (ks ks) (k k))
+  (precedes ((0 1) (3 0)) ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (3 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k)))))
+  (label 35)
+  (parent 31)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (ks ks) (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+        (tb tb))))
+  (origs (k (1 1)) (rb-prime (0 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-0 ra-prime-1 tb-0
+      text) (a b ks a-0 b-0 ks-0 name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra-0) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((2 1) (1 0)) ((3 3) (0 2)) ((4 3) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-0 k) (3 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))))
+  (label 36)
+  (parent 33)
+  (unrealized (4 0) (4 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init 3 (tkt tkt-0) (ra ra-0) (rb ra-prime-0) (tb tb-0)
+    (a a-0) (b b-0) (ks ks-0) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 1))
+    ((2 1) (1 0)) ((3 3) (0 2)) ((4 2) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-0 k)
+    (3 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a-0 ra-0))
+      (recv (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0)) tkt-0 ra-prime-0))
+      (send (cat tkt-0 (enc ra-prime-0 k)))))
+  (label 37)
+  (parent 33)
+  (unrealized (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt mesg) (ra-prime rb-prime tb ra rb rb-0 text) (a b ks name)
+    (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (3 0)) ((2 1) (1 0)) ((3 1) (0 0))
+    ((3 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (displaced 4 0 resp-reauth 2)
+    (enc ra-prime-0 k) (3 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime)) (recv (cat rb-prime (enc ra-prime k)))
+      (send (enc rb-prime k))))
+  (label 38)
+  (parent 33)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (ks ks) (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+        (tb tb))))
+  (origs (k (1 1)) (ra-prime (3 1)) (rb-prime (0 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 tb-0 rb-prime-0 text)
+    (a b ks a-0 b-0 ks-0 name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand resp-reauth 2 (tb tb-0) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (a a-0) (b b-0) (ks ks-0) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((2 1) (1 0)) ((3 3) (0 2)) ((4 1) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-0 k) (3 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k)))))
+  (label 39)
+  (parent 33)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt mesg) (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 text)
+    (a b ks name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (deflistener k)
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((2 1) (1 0)) ((3 3) (0 2)) ((4 1) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-listener k) (enc ra-prime-0 k)
+    (3 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv k) (send k)))
+  (label 40)
+  (parent 33)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((2 1) (1 0)) ((3 3) (0 2)) ((4 3) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (ra-0 ra) (tb-0 tb)) k (4 0)
+    (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))))
+  (label 41)
+  (parent 36)
+  (unrealized (4 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 text) (a b ks name)
+    (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init 3 (tkt tkt-0) (ra ra) (rb ra-prime-0) (tb tb) (a a)
+    (b b) (ks ks) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 1))
+    ((2 1) (1 0)) ((3 3) (0 2)) ((4 2) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (ra-0 ra) (tb-0 tb)) k (4 1)
+    (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) tkt-0 ra-prime-0))
+      (send (cat tkt-0 (enc ra-prime-0 k)))))
+  (label 42)
+  (parent 37)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (ks ks) (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+        (tb tb))))
+  (origs (k (1 1)) (rb-prime (0 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 rb-prime-0 text)
+    (a b ks name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand resp-reauth 2 (tb tb) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (a a) (b b) (ks ks) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((2 1) (1 0)) ((3 3) (0 2)) ((4 1) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (4 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k)))))
+  (label 43)
+  (parent 39)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (ks ks) (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+        (tb tb))))
+  (origs (k (1 1)) (rb-prime (0 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 tkt-1 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 ra-0
+      ra-prime-2 tb-0 text) (a b ks a-0 b-0 ks-0 name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-1) (ra ra-0) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((1 1) (5 0)) ((2 1) (1 0)) ((3 3) (0 2)) ((4 3) (3 2))
+    ((5 3) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-1 k) (4 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0)) tkt-1))
+      (send (cat tkt-1 ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 44)
+  (parent 41)
+  (unrealized (5 0) (5 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 tkt-1 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 ra-0 tb-0
+      text) (a b ks a-0 b-0 ks-0 name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init 3 (tkt tkt-1) (ra ra-0) (rb ra-prime-1) (tb tb-0)
+    (a a-0) (b b-0) (ks ks-0) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((1 1) (5 1)) ((2 1) (1 0)) ((3 3) (0 2)) ((4 3) (3 2))
+    ((5 2) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-1 k)
+    (4 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a-0 ra-0))
+      (recv (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0)) tkt-1 ra-prime-1))
+      (send (cat tkt-1 (enc ra-prime-1 k)))))
+  (label 45)
+  (parent 41)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 text) (a b ks name)
+    (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (precedes ((0 1) (4 2)) ((1 1) (3 0)) ((1 1) (4 0)) ((2 1) (1 0))
+    ((3 3) (0 2)) ((4 1) (0 0)) ((4 3) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (displaced 5 0 resp-reauth 2)
+    (enc ra-prime-1 k) (4 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k))))
+  (label 46)
+  (parent 41)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (ks ks) (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+        (tb tb))))
+  (origs (k (1 1)) (ra-prime (4 1)) (rb-prime (0 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 tb-0
+      rb-prime-0 text) (a b ks a-0 b-0 ks-0 name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand resp-reauth 2 (tb tb-0) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (a a-0) (b b-0) (ks ks-0) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((1 1) (5 0)) ((2 1) (1 0)) ((3 3) (0 2)) ((4 3) (3 2))
+    ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-1 k) (4 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 47)
+  (parent 41)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (deflistener k)
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((1 1) (5 0)) ((2 1) (1 0)) ((3 3) (0 2)) ((4 3) (3 2))
+    ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-listener k) (enc ra-prime-1 k)
+    (4 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))) ((recv k) (send k)))
+  (label 48)
+  (parent 41)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 tkt-1 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-1) (ra ra) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((1 1) (5 0)) ((2 1) (1 0)) ((3 3) (0 2)) ((4 3) (3 2))
+    ((5 3) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (ra-0 ra) (tb-0 tb)) k (5 0)
+    (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-1))
+      (send (cat tkt-1 ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 49)
+  (parent 44)
+  (unrealized (5 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 tkt-1 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init 3 (tkt tkt-1) (ra ra) (rb ra-prime-1) (tb tb) (a a)
+    (b b) (ks ks) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((1 1) (5 1)) ((2 1) (1 0)) ((3 3) (0 2)) ((4 3) (3 2))
+    ((5 2) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (ra-0 ra) (tb-0 tb)) k (5 1)
+    (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) tkt-1 ra-prime-1))
+      (send (cat tkt-1 (enc ra-prime-1 k)))))
+  (label 50)
+  (parent 45)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (ks ks) (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+        (tb tb))))
+  (origs (k (1 1)) (rb-prime (0 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      text) (a b ks name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand resp-reauth 2 (tb tb) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (a a) (b b) (ks ks) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((1 1) (5 0)) ((2 1) (1 0)) ((3 3) (0 2)) ((4 3) (3 2))
+    ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 51)
+  (parent 47)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (ks ks) (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+        (tb tb))))
+  (origs (k (1 1)) (rb-prime (0 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 tkt-1 tkt-2 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-0 ra-prime-3 tb-0 text) (a b ks a-0 b-0 ks-0 name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-1) (ra ra) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-2) (ra ra-0) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb-0) (a a-0) (b b-0) (ks ks-0) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 0)) ((3 3) (0 2))
+    ((4 3) (3 2)) ((5 3) (4 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-2 k) (5 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-1))
+      (send (cat tkt-1 ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0)) tkt-2))
+      (send (cat tkt-2 ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k))))
+  (label 52)
+  (parent 49)
+  (unrealized (6 0) (6 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 tkt-1 tkt-2 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-0 tb-0 text) (a b ks a-0 b-0 ks-0 name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-1) (ra ra) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init 3 (tkt tkt-2) (ra ra-0) (rb ra-prime-2) (tb tb-0)
+    (a a-0) (b b-0) (ks ks-0) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((1 1) (5 0)) ((1 1) (6 1)) ((2 1) (1 0)) ((3 3) (0 2))
+    ((4 3) (3 2)) ((5 3) (4 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-2 k)
+    (5 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-1))
+      (send (cat tkt-1 ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a-0 ra-0))
+      (recv (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0)) tkt-2 ra-prime-2))
+      (send (cat tkt-2 (enc ra-prime-2 k)))))
+  (label 53)
+  (parent 49)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 tkt-1 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-1) (ra ra) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks) (k k))
+  (precedes ((0 1) (5 2)) ((1 1) (3 0)) ((1 1) (4 0)) ((1 1) (5 0))
+    ((2 1) (1 0)) ((3 3) (0 2)) ((4 3) (3 2)) ((5 1) (0 0))
+    ((5 3) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (displaced 6 0 resp-reauth 2)
+    (enc ra-prime-2 k) (5 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-1))
+      (send (cat tkt-1 ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k))))
+  (label 54)
+  (parent 49)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (ks ks) (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+        (tb tb))))
+  (origs (k (1 1)) (ra-prime (5 1)) (rb-prime (0 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 tkt-1 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      tb-0 rb-prime-0 text) (a b ks a-0 b-0 ks-0 name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-1) (ra ra) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand resp-reauth 2 (tb tb-0) (ra-prime ra-prime-2)
+    (rb-prime rb-prime-0) (a a-0) (b b-0) (ks ks-0) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 0)) ((3 3) (0 2))
+    ((4 3) (3 2)) ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-2 k) (5 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-1))
+      (send (cat tkt-1 ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat rb-prime-0 (enc ra-prime-2 k)))))
+  (label 55)
+  (parent 49)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 tkt-1 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-1) (ra ra) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks) (k k))
+  (deflistener k)
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 0)) ((3 3) (0 2))
+    ((4 3) (3 2)) ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-listener k) (enc ra-prime-2 k)
+    (5 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-1))
+      (send (cat tkt-1 ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))) ((recv k) (send k)))
+  (label 56)
+  (parent 49)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 tkt-1 tkt-2 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-prime-3 text) (a b ks name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-1) (ra ra) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-2) (ra ra) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb) (a a) (b b) (ks ks) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 0)) ((3 3) (0 2))
+    ((4 3) (3 2)) ((5 3) (4 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (ra-0 ra) (tb-0 tb)) k (6 0)
+    (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-1))
+      (send (cat tkt-1 ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-2))
+      (send (cat tkt-2 ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k))))
+  (label 57)
+  (parent 52)
+  (unrealized (6 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 tkt-1 tkt-2 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-1) (ra ra) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init 3 (tkt tkt-2) (ra ra) (rb ra-prime-2) (tb tb) (a a)
+    (b b) (ks ks) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((1 1) (5 0)) ((1 1) (6 1)) ((2 1) (1 0)) ((3 3) (0 2))
+    ((4 3) (3 2)) ((5 3) (4 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (ra-0 ra) (tb-0 tb)) k (6 1)
+    (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-1))
+      (send (cat tkt-1 ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) tkt-2 ra-prime-2))
+      (send (cat tkt-2 (enc ra-prime-2 k)))))
+  (label 58)
+  (parent 53)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (ks ks) (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+        (tb tb))))
+  (origs (k (1 1)) (rb-prime (0 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 tkt-1 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      rb-prime-0 text) (a b ks name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-1) (ra ra) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand resp-reauth 2 (tb tb) (ra-prime ra-prime-2)
+    (rb-prime rb-prime-0) (a a) (b b) (ks ks) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((1 1) (5 0)) ((1 1) (6 0)) ((2 1) (1 0)) ((3 3) (0 2))
+    ((4 3) (3 2)) ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-1))
+      (send (cat tkt-1 ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (send (cat rb-prime-0 (enc ra-prime-2 k)))))
+  (label 59)
+  (parent 55)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (ks ks) (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+        (tb tb))))
+  (origs (k (1 1)) (rb-prime (0 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 tkt-1 tkt-2 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-1) (ra ra) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-2) (ra ra) (ra-prime ra-prime)
+    (rb-prime ra-prime-2) (tb tb) (a a) (b b) (ks ks) (k k))
+  (precedes ((0 1) (6 2)) ((1 1) (3 0)) ((1 1) (4 0)) ((1 1) (5 0))
+    ((1 1) (6 0)) ((2 1) (1 0)) ((3 3) (0 2)) ((4 3) (3 2))
+    ((5 3) (4 2)) ((6 1) (0 0)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (displaced 7 0 resp-reauth 2)
+    (enc ra-prime-3 k) (6 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-1))
+      (send (cat tkt-1 ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-2))
+      (send (cat tkt-2 ra-prime))
+      (recv (cat ra-prime-2 (enc ra-prime k)))
+      (send (enc ra-prime-2 k))))
+  (label 62)
+  (parent 57)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (ks ks) (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+        (tb tb))))
+  (origs (k (1 1)) (ra-prime (6 1)) (rb-prime (0 1))))
+
+(comment "Strand bound exceeded--aborting run")
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 tkt-1 tkt-2 tkt-3 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-prime-3 ra-0 ra-prime-4 tb-0 text) (a b ks a-0 b-0 ks-0 name)
+    (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-1) (ra ra) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-2) (ra ra) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-3) (ra ra-0) (ra-prime ra-prime-4)
+    (rb-prime ra-prime-3) (tb tb-0) (a a-0) (b b-0) (ks ks-0) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((1 1) (5 0)) ((1 1) (6 0)) ((1 1) (7 0)) ((2 1) (1 0))
+    ((3 3) (0 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 3) (5 2))
+    ((7 3) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-3 k) (6 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-1))
+      (send (cat tkt-1 ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-2))
+      (send (cat tkt-2 ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k)))
+    ((recv (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0)) tkt-3))
+      (send (cat tkt-3 ra-prime-4))
+      (recv (cat ra-prime-3 (enc ra-prime-4 k)))
+      (send (enc ra-prime-3 k))))
+  (label 60)
+  (parent 57)
+  (unrealized (7 0) (7 2))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 tkt-1 tkt-2 tkt-3 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-prime-3 ra-0 tb-0 text) (a b ks a-0 b-0 ks-0 name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-1) (ra ra) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-2) (ra ra) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init 3 (tkt tkt-3) (ra ra-0) (rb ra-prime-3) (tb tb-0)
+    (a a-0) (b b-0) (ks ks-0) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((1 1) (5 0)) ((1 1) (6 0)) ((1 1) (7 1)) ((2 1) (1 0))
+    ((3 3) (0 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 3) (5 2))
+    ((7 2) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-3 k)
+    (6 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-1))
+      (send (cat tkt-1 ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-2))
+      (send (cat tkt-2 ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k)))
+    ((send (cat a-0 ra-0))
+      (recv (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0)) tkt-3 ra-prime-3))
+      (send (cat tkt-3 (enc ra-prime-3 k)))))
+  (label 61)
+  (parent 57)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 tkt-1 tkt-2 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-prime-3 tb-0 rb-prime-0 text) (a b ks a-0 b-0 ks-0 name)
+    (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-1) (ra ra) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-2) (ra ra) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand resp-reauth 2 (tb tb-0) (ra-prime ra-prime-3)
+    (rb-prime rb-prime-0) (a a-0) (b b-0) (ks ks-0) (k k))
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((1 1) (5 0)) ((1 1) (6 0)) ((1 1) (7 0)) ((2 1) (1 0))
+    ((3 3) (0 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 3) (5 2))
+    ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-3 k) (6 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-1))
+      (send (cat tkt-1 ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-2))
+      (send (cat tkt-2 ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-3))
+      (send (cat rb-prime-0 (enc ra-prime-3 k)))))
+  (label 63)
+  (parent 57)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (tkt tkt-0 tkt-1 tkt-2 mesg)
+    (ra-prime rb-prime tb ra rb rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-prime-3 text) (a b ks name) (k skey))
+  (defstrand resp-reauth 3 (tb tb) (ra-prime ra-prime)
+    (rb-prime rb-prime) (a a) (b b) (ks ks) (k k))
+  (defstrand keyserver 2 (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks)
+    (k k))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (tkt tkt) (ra ra) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-0) (ra ra) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-1) (ra ra) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks) (k k))
+  (defstrand init-reauth 4 (tkt tkt-2) (ra ra) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb) (a a) (b b) (ks ks) (k k))
+  (deflistener k)
+  (precedes ((0 1) (3 2)) ((1 1) (0 0)) ((1 1) (3 0)) ((1 1) (4 0))
+    ((1 1) (5 0)) ((1 1) (6 0)) ((1 1) (7 0)) ((2 1) (1 0))
+    ((3 3) (0 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 3) (5 2))
+    ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra-prime rb-prime k)
+  (operation encryption-test (added-listener k) (enc ra-prime-3 k)
+    (6 2))
+  (traces
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks)))))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt))
+      (send (cat tkt ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-0))
+      (send (cat tkt-0 ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-1))
+      (send (cat tkt-1 ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc b ra k tb (ltk a ks)) tkt-2))
+      (send (cat tkt-2 ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k))) ((recv k) (send k)))
+  (label 64)
+  (parent 57)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
diff --git a/tst/kelly1.scm b/tst/kelly1.scm
new file mode 100644
--- /dev/null
+++ b/tst/kelly1.scm
@@ -0,0 +1,76 @@
+;;An attestation protocol containing a client, a server, and an appraiser.
+
+;;The client is attempting to verify that the server he receives his
+;;content from is the server he wishes to communicate with, and that the
+;;server meets some policy.
+
+;;The appraiser acquires measurements from the server to determine the
+;;policy, and passes the resulting policy on to the client. The server's
+;;public key is used to identify the server.
+
+;;The server is verifying nothing about his surroundings, and will
+;;answer both measurement and content inquiries from anyone.
+
+;;When analyzing this protocol, it is assumes that the client knows some
+;;appraiser he trusts; the client analysis should contain non privk(A).
+
+(defprotocol kelly1 basic
+
+  (defrole client
+    (vars (C name) (A name) (S name) (Ns text) (request text) (Check text)  (policy text) (response text))
+    (trace
+     (send (cat C S request))
+     (recv (cat S C (enc (cat response Ns)
+			 (privk S))))
+     (send (cat C A Check (pubk S)))
+     (recv (cat A C (enc (cat policy (pubk S) Ns)
+			 (privk A))))
+      )
+    )
+
+  (defrole appraiser
+    (vars (C name) (A name) (S name) (N text) (Ns text) (hello text)
+	  (Quote text) (measurements text) (Check text) (policy text)
+	  (AIK name))
+    (trace
+     (recv (cat S A hello))
+     (send (cat A S N))
+     (recv (cat S A
+		(enc
+		 (cat Quote measurements N Ns (pubk S))
+		 (privk AIK))
+		(pubk S)))
+     (recv (cat C A Check (pubk S)))
+     (send (cat A C (enc (cat policy (pubk S) Ns)
+			 (privk A))))
+      )
+    (non-orig (privk A) (privk AIK))
+    (uniq-orig N)
+    )
+
+  (defrole server
+    (vars (C name) (A name) (S name) (N text) (Ns text) (hello text)
+	  (Quote text) (measurements text) (request text) (response text)
+	  (AIK name))
+   (trace
+      (send (cat S A hello))
+      (recv (cat A S N))
+      (send (cat S A
+		 (enc
+		  (cat Quote measurements N Ns (pubk S))
+		  (privk AIK))
+		 (pubk S)))
+      (recv (cat C S request))
+      (send (cat S C (enc (cat response Ns)
+			  (privk S))))
+      )
+   (non-orig (privk S) (privk AIK))
+   (uniq-orig  Ns)
+   )
+)
+
+(defskeleton kelly1
+  (vars (A name))
+  (defstrand client 4 (A A))
+  (non-orig (privk A))
+  )
diff --git a/tst/kelly1.tst b/tst/kelly1.tst
new file mode 100644
--- /dev/null
+++ b/tst/kelly1.tst
@@ -0,0 +1,159 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/kelly1.scm")
+
+(defprotocol kelly1 basic
+  (defrole client
+    (vars (C A S name) (Ns request Check policy response text))
+    (trace (send (cat C S request))
+      (recv (cat S C (enc response Ns (privk S))))
+      (send (cat C A Check (pubk S)))
+      (recv (cat A C (enc policy (pubk S) Ns (privk A))))))
+  (defrole appraiser
+    (vars (C A S name) (N Ns hello Quote measurements Check policy text)
+      (AIK name))
+    (trace (recv (cat S A hello)) (send (cat A S N))
+      (recv
+        (cat S A (enc Quote measurements N Ns (pubk S) (privk AIK))
+          (pubk S))) (recv (cat C A Check (pubk S)))
+      (send (cat A C (enc policy (pubk S) Ns (privk A)))))
+    (non-orig (privk A) (privk AIK))
+    (uniq-orig N))
+  (defrole server
+    (vars (C A S name)
+      (N Ns hello Quote measurements request response text) (AIK name))
+    (trace (send (cat S A hello)) (recv (cat A S N))
+      (send
+        (cat S A (enc Quote measurements N Ns (pubk S) (privk AIK))
+          (pubk S))) (recv (cat C S request))
+      (send (cat S C (enc response Ns (privk S)))))
+    (non-orig (privk S) (privk AIK))
+    (uniq-orig Ns))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton kelly1
+  (vars (Ns request Check policy response text) (A C S name))
+  (defstrand client 4 (Ns Ns) (request request) (Check Check)
+    (policy policy) (response response) (C C) (A A) (S S))
+  (non-orig (privk A))
+  (traces
+    ((send (cat C S request))
+      (recv (cat S C (enc response Ns (privk S))))
+      (send (cat C A Check (pubk S)))
+      (recv (cat A C (enc policy (pubk S) Ns (privk A))))))
+  (label 0)
+  (unrealized (0 3))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton kelly1
+  (vars
+    (Ns request Check policy response N hello Quote measurements Check-0
+      text) (A C S C-0 AIK name))
+  (defstrand client 4 (Ns Ns) (request request) (Check Check)
+    (policy policy) (response response) (C C) (A A) (S S))
+  (defstrand appraiser 5 (N N) (Ns Ns) (hello hello) (Quote Quote)
+    (measurements measurements) (Check Check-0) (policy policy) (C C-0)
+    (A A) (S S) (AIK AIK))
+  (precedes ((1 4) (0 3)))
+  (non-orig (privk A) (privk AIK))
+  (uniq-orig N)
+  (operation encryption-test (added-strand appraiser 5)
+    (enc policy (pubk S) Ns (privk A)) (0 3))
+  (traces
+    ((send (cat C S request))
+      (recv (cat S C (enc response Ns (privk S))))
+      (send (cat C A Check (pubk S)))
+      (recv (cat A C (enc policy (pubk S) Ns (privk A)))))
+    ((recv (cat S A hello)) (send (cat A S N))
+      (recv
+        (cat S A (enc Quote measurements N Ns (pubk S) (privk AIK))
+          (pubk S))) (recv (cat C-0 A Check-0 (pubk S)))
+      (send (cat A C-0 (enc policy (pubk S) Ns (privk A))))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton kelly1
+  (vars
+    (Ns request Check policy response N hello Quote measurements Check-0
+      hello-0 text) (A C S C-0 AIK A-0 name))
+  (defstrand client 4 (Ns Ns) (request request) (Check Check)
+    (policy policy) (response response) (C C) (A A) (S S))
+  (defstrand appraiser 5 (N N) (Ns Ns) (hello hello) (Quote Quote)
+    (measurements measurements) (Check Check-0) (policy policy) (C C-0)
+    (A A) (S S) (AIK AIK))
+  (defstrand server 3 (N N) (Ns Ns) (hello hello-0) (Quote Quote)
+    (measurements measurements) (A A-0) (S S) (AIK AIK))
+  (precedes ((1 1) (2 1)) ((1 4) (0 3)) ((2 2) (0 1)) ((2 2) (1 2)))
+  (non-orig (privk A) (privk S) (privk AIK))
+  (uniq-orig Ns N)
+  (operation encryption-test (added-strand server 3)
+    (enc Quote measurements N Ns (pubk S) (privk AIK)) (1 2))
+  (traces
+    ((send (cat C S request))
+      (recv (cat S C (enc response Ns (privk S))))
+      (send (cat C A Check (pubk S)))
+      (recv (cat A C (enc policy (pubk S) Ns (privk A)))))
+    ((recv (cat S A hello)) (send (cat A S N))
+      (recv
+        (cat S A (enc Quote measurements N Ns (pubk S) (privk AIK))
+          (pubk S))) (recv (cat C-0 A Check-0 (pubk S)))
+      (send (cat A C-0 (enc policy (pubk S) Ns (privk A)))))
+    ((send (cat S A-0 hello-0)) (recv (cat A-0 S N))
+      (send
+        (cat S A-0 (enc Quote measurements N Ns (pubk S) (privk AIK))
+          (pubk S)))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton kelly1
+  (vars
+    (Ns request Check policy response hello Check-0 N hello-0 Quote
+      measurements request-0 text) (A C S C-0 C-1 A-0 AIK name))
+  (defstrand client 4 (Ns Ns) (request request) (Check Check)
+    (policy policy) (response response) (C C) (A A) (S S))
+  (defstrand appraiser 5 (N N) (Ns Ns) (hello hello) (Quote Quote)
+    (measurements measurements) (Check Check-0) (policy policy) (C C-0)
+    (A A) (S S) (AIK AIK))
+  (defstrand server 5 (N N) (Ns Ns) (hello hello-0) (Quote Quote)
+    (measurements measurements) (request request-0) (response response)
+    (C C-1) (A A-0) (S S) (AIK AIK))
+  (precedes ((1 1) (2 1)) ((1 4) (0 3)) ((2 2) (1 2)) ((2 4) (0 1)))
+  (non-orig (privk A) (privk S) (privk AIK))
+  (uniq-orig Ns N)
+  (operation encryption-test (displaced 2 3 server 5)
+    (enc response Ns (privk S)) (0 1))
+  (traces
+    ((send (cat C S request))
+      (recv (cat S C (enc response Ns (privk S))))
+      (send (cat C A Check (pubk S)))
+      (recv (cat A C (enc policy (pubk S) Ns (privk A)))))
+    ((recv (cat S A hello)) (send (cat A S N))
+      (recv
+        (cat S A (enc Quote measurements N Ns (pubk S) (privk AIK))
+          (pubk S))) (recv (cat C-0 A Check-0 (pubk S)))
+      (send (cat A C-0 (enc policy (pubk S) Ns (privk A)))))
+    ((send (cat S A-0 hello-0)) (recv (cat A-0 S N))
+      (send
+        (cat S A-0 (enc Quote measurements N Ns (pubk S) (privk AIK))
+          (pubk S))) (recv (cat C-1 S request-0))
+      (send (cat S C-1 (enc response Ns (privk S))))))
+  (label 3)
+  (parent 2)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((A A) (C C) (S S) (Ns Ns) (request request) (Check Check)
+        (policy policy) (response response))))
+  (origs (Ns (2 2)) (N (1 1))))
+
+(comment "Nothing left to do")
diff --git a/tst/kelly64.lisp b/tst/kelly64.lisp
new file mode 100644
--- /dev/null
+++ b/tst/kelly64.lisp
@@ -0,0 +1,127 @@
+(herald "Kelly's 64-shape protocol" (bound 10))
+
+(defprotocol kelly64 basic
+  (defrole client
+    (vars (C name) (A name) (S name) (AIKC name) (NC text)
+	  (hello text) (Quote text) (mc text) (request text)
+	  (response text) (Check text) (P2 text))
+    (trace
+     (send (cat C A hello))
+     (recv (cat A C NC))
+     (send (cat C A (enc
+		     (cat Quote mc NC
+			  (enc
+			   (pubk C)
+			   (privk C)))
+		     (privk AIKC))
+		(enc
+		 (pubk C)
+		 (privk C))))
+     (send (cat C S
+		(enc (cat request request)
+		     (privk C))))
+     (recv (cat S C
+		(enc response
+		     (privk S))))
+     (send (cat C A Check (pubk S)))
+     (recv (cat A C
+		(enc (cat P2 (pubk S))
+		     (privk A)))))
+    (non-orig (privk C) (privk AIKC) (privk A))
+    )
+  ;;   non = (privk(C);privk(AIKC);privk(A));
+  ;;   uniq = ();
+
+  (defrole appraiser
+    (vars (C name) (A name) (S name) (AIKS name) (AIKC name)
+	  (NS text) (NC text) (hello text)(Quote text)
+	  (ms text)(mc text)(Check text)(P1 text)(P2 text))
+    (trace
+
+     (recv (cat S A hello))
+     (send (cat A S NS))
+     (recv (cat S A
+		(enc
+		 (cat Quote ms NS
+		      (enc (pubk S)
+			   (privk S)))
+		 (privk AIKS))
+		(enc
+		 (pubk S)
+		 (privk S))))
+     (recv (cat C A hello))
+     (send (cat A C NC))
+     (recv (cat C A (enc
+		     (cat Quote mc NC (enc
+				       (pubk C)
+				       (privk C)))
+		     (privk AIKC))
+		(enc
+		 (pubk C)
+		 (privk C))))
+     (recv (cat S A  Check (pubk C)))
+     (send (cat A S (enc
+		     (cat P1 (pubk C))
+		     (privk A))))
+     (recv (cat C A Check (pubk S)))
+     (send (cat A C (enc
+		     (cat P2 (pubk S))
+		     (privk A))))
+     )
+    (non-orig (privk A) (privk AIKS) (privk AIKC))
+    (uniq-orig NS NC)
+    ;;   non = (privk(A);privk(AIKS);privk(AIKC));
+    ;;   uniq = (NS;NC);
+    )
+
+  (defrole server
+    (vars (C name) (A name) (S name) (AIKS name) (NS text)
+	  (hello text) (Quote text) (ms text) (request text)
+	  (Check text) (P1 text) (response text))
+    (trace
+     ;;   non = (privk(S);privk(AIKS);privk(A));
+     ;;  uniq = ();
+
+     (send (cat S A hello))
+     (recv (cat A S NS))
+     (send (cat S A (enc
+		     (cat Quote ms NS (enc
+				       (pubk S)
+				       (privk S)))
+		     (privk AIKS))
+		(enc
+		 (pubk S)
+		 (privk S))))
+     (recv (cat C S (enc
+		     (cat request request)
+		     (privk C))))
+     (send (cat S A Check (pubk C)))
+     (recv (cat A S (enc
+		     (cat P1 (pubk C))
+		     (privk A))))
+     (send (cat S C (enc
+		     response
+		     (privk S))))
+     )
+    (non-orig (privk S) (privk AIKS) (privk A))
+    )
+
+  )
+
+(defskeleton kelly64
+  (vars (C name) (A name) (S name) (AIKC name) (NC text)
+	  (hello text) (Quote text) (mc text) (request text)
+	  (response text) (Check text) (P2 text))
+  (defstrand client 7 (C C) (A A) (S S) (AIKC AIKC)
+    (NC NC) (hello hello) (Quote Quote) (mc mc)
+    (request request) (response response) (Check Check) (P2 P2)))
+
+(defskeleton kelly64
+  (vars (C name) (A name) (S name) (AIKC name) (NC text)
+	  (hello text) (Quote text) (mc text) (request text)
+	  (response text) (Check text) (P1 text))
+  (defstrand server 7 ))
+
+(defskeleton kelly64
+(vars)
+  (defstrand appraiser 10))
diff --git a/tst/kerb.scm b/tst/kerb.scm
deleted file mode 100644
--- a/tst/kerb.scm
+++ /dev/null
@@ -1,76 +0,0 @@
-; Flawed and Fixed Kerberos
-
-; In this example, the initiator is trying to send a private message
-; to the responder.  Each are presumed to share a long-term private key
-; with the key server, which will choose a fresh session key on request
-; and encrypt it for both parties.
-
-; A flaw exists in the protocol intentionally: the initiator will need
-; confirmation that the session key is shared between the initiator and
-; the partner they specified.
-
-; This version of the protocol is not modeled properly and misses the flaw.
-(defprotocol kerb-flawed basic
-  (defrole init
-    (vars (a b s name) (m n text) (k skey))
-    (trace
-       ;; Make the request
-       (send (cat a b n))
-       ;; Receive the encrypted key and ticket
-       (recv (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))
-       (send (cat (enc m k) (enc k a b (ltk b s)))))
-    (uniq-orig n))
-  (defrole resp
-    (vars (a b s name) (m text) (k skey))
-    (trace
-       (recv (cat (enc m k) (enc k a b (ltk b s))))))
-  (defrole keyserv
-    (vars (a b s name) (m n text) (k skey))
-    (trace
-       ;; Receive the request
-       (recv (cat a b n))
-       ;; Send the encrypted key and ticket
-       (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s)))))
-    (uniq-orig k))
-)
-
-; This skeleton should be dead, even though m can leak
-(defskeleton kerb-flawed
-  (vars (a b s name) (m text))
-  (defstrand init 3 (a a) (b b) (s s) (m m))
-  (deflistener m)
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig m))
-
-; This version of the protocol is modeled properly, with a generic variable (ticket)
-(defprotocol kerb-flawed2 basic
-  (defrole init
-    (vars (a b s name) (ticket mesg) (m n text) (k skey))
-    (trace
-       ;; Make the request
-       (send (cat a b n))
-       ;; Receive the encrypted key and ticket
-       (recv (cat (enc k n (ltk a s)) ticket))
-       (send (cat (enc m k) ticket)))
-    (uniq-orig n))
-  (defrole resp
-    (vars (a b s name) (m text) (k skey))
-    (trace
-       (recv (cat (enc m k) (enc k a b (ltk b s))))))
-  (defrole keyserv
-    (vars (a b s name) (m n text) (k skey))
-    (trace
-       ;; Receive the request
-       (recv (cat a b n))
-       ;; Send the encrypted key and ticket
-       (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s)))))
-    (uniq-orig k))
-)
-
-; This skeleton should have a shape, demonstrating that m may be leaked.
-(defskeleton kerb-flawed2
-  (vars (a b s name) (m text))
-  (defstrand init 3 (a a) (b b) (s s) (m m))
-  (deflistener m)
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig m))
diff --git a/tst/kerb.tst b/tst/kerb.tst
deleted file mode 100644
--- a/tst/kerb.tst
+++ /dev/null
@@ -1,189 +0,0 @@
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/kerb.scm")
-
-(defprotocol kerb-flawed basic
-  (defrole init
-    (vars (a b s name) (m n text) (k skey))
-    (trace (send (cat a b n))
-      (recv (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))
-      (send (cat (enc m k) (enc k a b (ltk b s)))))
-    (uniq-orig n))
-  (defrole resp
-    (vars (a b s name) (m text) (k skey))
-    (trace (recv (cat (enc m k) (enc k a b (ltk b s))))))
-  (defrole keyserv
-    (vars (a b s name) (n text) (k skey))
-    (trace (recv (cat a b n))
-      (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s)))))
-    (uniq-orig k)))
-
-(defskeleton kerb-flawed
-  (vars (m n text) (a b s name) (k skey))
-  (defstrand init 3 (m m) (n n) (a a) (b b) (s s) (k k))
-  (deflistener m)
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig m n)
-  (traces
-    ((send (cat a b n))
-      (recv (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))
-      (send (cat (enc m k) (enc k a b (ltk b s))))) ((recv m) (send m)))
-  (label 0)
-  (unrealized (0 1) (1 0))
-  (preskeleton)
-  (origs (n (0 0)) (m (0 2)))
-  (comment "Not a skeleton"))
-
-(defskeleton kerb-flawed
-  (vars (m n text) (a b s name) (k skey))
-  (defstrand init 3 (m m) (n n) (a a) (b b) (s s) (k k))
-  (deflistener m)
-  (precedes ((0 2) (1 0)))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig m n)
-  (traces
-    ((send (cat a b n))
-      (recv (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))
-      (send (cat (enc m k) (enc k a b (ltk b s))))) ((recv m) (send m)))
-  (label 1)
-  (parent 0)
-  (unrealized (0 1))
-  (origs (n (0 0)) (m (0 2)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton kerb-flawed
-  (vars (m n text) (a b s b-0 name) (k skey))
-  (defstrand init 3 (m m) (n n) (a a) (b b) (s s) (k k))
-  (deflistener m)
-  (defstrand keyserv 2 (n n) (a a) (b b-0) (s s) (k k))
-  (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1)))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig m n k)
-  (operation encryption-test (added-strand keyserv 2)
-    (enc k n (ltk a s)) (0 1))
-  (traces
-    ((send (cat a b n))
-      (recv (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))
-      (send (cat (enc m k) (enc k a b (ltk b s))))) ((recv m) (send m))
-    ((recv (cat a b-0 n))
-      (send (cat (enc k n (ltk a s)) (enc k a b-0 (ltk b-0 s))))))
-  (label 2)
-  (parent 1)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton kerb-flawed
-  (vars (m n text) (a s b name) (k skey))
-  (defstrand init 3 (m m) (n n) (a a) (b b) (s s) (k k))
-  (deflistener m)
-  (defstrand keyserv 2 (n n) (a a) (b b) (s s) (k k))
-  (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1)))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig m n k)
-  (operation encryption-test (displaced 3 2 keyserv 2)
-    (enc k a b-0 (ltk b-0 s)) (0 1))
-  (traces
-    ((send (cat a b n))
-      (recv (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))
-      (send (cat (enc m k) (enc k a b (ltk b s))))) ((recv m) (send m))
-    ((recv (cat a b n))
-      (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))))
-  (label 3)
-  (parent 2)
-  (unrealized (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton kerb-flawed
-  (vars (m n text) (a s b name) (k skey))
-  (defstrand init 3 (m m) (n n) (a a) (b b) (s s) (k k))
-  (deflistener m)
-  (defstrand keyserv 2 (n n) (a a) (b b) (s s) (k k))
-  (deflistener k)
-  (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1)) ((2 1) (3 0))
-    ((3 1) (1 0)))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig m n k)
-  (operation nonce-test (added-listener k) m (1 0) (enc m k))
-  (traces
-    ((send (cat a b n))
-      (recv (cat (enc k n (ltk a s)) (enc k a b (ltk b s))))
-      (send (cat (enc m k) (enc k a b (ltk b s))))) ((recv m) (send m))
-    ((recv (cat a b n))
-      (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s)))))
-    ((recv k) (send k)))
-  (label 4)
-  (parent 3)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol kerb-flawed2 basic
-  (defrole init
-    (vars (a b s name) (ticket mesg) (m n text) (k skey))
-    (trace (send (cat a b n)) (recv (cat (enc k n (ltk a s)) ticket))
-      (send (cat (enc m k) ticket)))
-    (uniq-orig n))
-  (defrole resp
-    (vars (a b s name) (m text) (k skey))
-    (trace (recv (cat (enc m k) (enc k a b (ltk b s))))))
-  (defrole keyserv
-    (vars (a b s name) (n text) (k skey))
-    (trace (recv (cat a b n))
-      (send (cat (enc k n (ltk a s)) (enc k a b (ltk b s)))))
-    (uniq-orig k)))
-
-(defskeleton kerb-flawed2
-  (vars (ticket mesg) (m n text) (a b s name) (k skey))
-  (defstrand init 3 (ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k))
-  (deflistener m)
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig m n)
-  (traces
-    ((send (cat a b n)) (recv (cat (enc k n (ltk a s)) ticket))
-      (send (cat (enc m k) ticket))) ((recv m) (send m)))
-  (label 5)
-  (unrealized (0 1) (1 0))
-  (preskeleton)
-  (origs (n (0 0)) (m (0 2)))
-  (comment "Not a skeleton"))
-
-(defskeleton kerb-flawed2
-  (vars (ticket mesg) (m n text) (a b s name) (k skey))
-  (defstrand init 3 (ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k))
-  (deflistener m)
-  (precedes ((0 2) (1 0)))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig m n)
-  (traces
-    ((send (cat a b n)) (recv (cat (enc k n (ltk a s)) ticket))
-      (send (cat (enc m k) ticket))) ((recv m) (send m)))
-  (label 6)
-  (parent 5)
-  (unrealized (0 1))
-  (origs (n (0 0)) (m (0 2)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton kerb-flawed2
-  (vars (ticket mesg) (m n text) (a b s b-0 name) (k skey))
-  (defstrand init 3 (ticket ticket) (m m) (n n) (a a) (b b) (s s) (k k))
-  (deflistener m)
-  (defstrand keyserv 2 (n n) (a a) (b b-0) (s s) (k k))
-  (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1)))
-  (non-orig (ltk a s) (ltk b s))
-  (uniq-orig m n k)
-  (operation encryption-test (added-strand keyserv 2)
-    (enc k n (ltk a s)) (0 1))
-  (traces
-    ((send (cat a b n)) (recv (cat (enc k n (ltk a s)) ticket))
-      (send (cat (enc m k) ticket))) ((recv m) (send m))
-    ((recv (cat a b-0 n))
-      (send (cat (enc k n (ltk a s)) (enc k a b-0 (ltk b-0 s))))))
-  (label 7)
-  (parent 6)
-  (unrealized)
-  (shape)
-  (maps ((0 1) ((a a) (b b) (s s) (m m) (ticket ticket) (n n) (k k))))
-  (origs (k (2 1)) (n (0 0)) (m (0 2))))
-
-(comment "Nothing left to do")
diff --git a/tst/kerb5.lisp b/tst/kerb5.lisp
new file mode 100644
--- /dev/null
+++ b/tst/kerb5.lisp
@@ -0,0 +1,94 @@
+;; Kerberos 5 specification, taken from
+;; http://www.lsv.ens-cachan.fr/spore/kerberos.html
+;;
+;; Ku in the original document has become pubk/privk U.
+;; Since we cannot confirm with CPSA that T1 is between T1start and T1expire,
+;; and since the purpose of T1 is to have a defined relationship with T1start
+;; and T1expire, I am replacing T1 with (cat T1start T1expire). Ditto with T2.
+
+(defprotocol kerb5 basic
+
+  ;; U is the client's user (and, approximately, its principal.)
+  (defrole client
+    (vars (U name) (G name) (L1 text) (N1 text) (C name) (S name)
+	  (L2 text) (N2 text) (Kcg skey) (T1start text) (T1expire text)
+	  (Kag skey) (Kgs skey) (T2start text) (T2expire text)
+	  (Kcs skey))
+    (trace
+     (send (cat U G L1 N1))
+     (recv (cat U
+		(enc (cat U C G Kcg T1start T1expire) Kag)
+		(enc (cat G Kcg T1start T1expire) (pubk U))))
+     (send (cat S
+		L2
+		N2
+		(enc (cat U C G Kcg T1start T1expire) Kag)
+		(enc (cat C T1start T1expire) Kcg)))
+     (recv (cat U
+		(enc (cat U C S Kcs T2start T2expire) Kgs)
+		(enc (cat S Kcs T2start T2expire N2) Kcg)))
+     (send (cat (enc (cat U C S Kcs T2start T2expire) Kgs)
+		(enc (cat C T2start T2expire) Kcs)))
+     (recv (enc (cat T2start T2expire) Kcs))
+     )
+    (uniq-orig N1 N2)
+    (non-orig (privk U))
+    )
+
+;; A is the key distribution authority's principal; never used explicitly
+;; Kag is a long-term shared key between A and G.
+;; Kcg is the session key to be shared by C and G, created by A.
+  (defrole authority
+    (vars (U name) (G name) (C name) (L1 text) (N1 text)
+	  (T1start text) (T1expire text) (Kag skey) (Kcg skey))
+    (trace
+     (recv (cat U G L1 N1))
+     (send (cat U
+		(enc (cat U C G Kcg T1start T1expire) Kag)
+		(enc (cat G Kcg T1start T1expire) (pubk U))))
+     )
+    (uniq-orig Kcg)
+    (non-orig Kag)
+    )
+
+;; G is the ticket granting server's principal.
+;; Kag is a long-term shared key between A and G.
+;; Kgs is a long-term shared key between G and S.
+  (defrole granter
+       (vars (U name) (G name) (C name) (S name) (L2 text) (N2 text)
+	  (Kcg skey) (T1start text) (T1expire text) (Kag skey)
+	  (Kgs skey) (T2start text) (T2expire text) (Kcs skey))
+       (trace
+	(recv (cat S
+		   L2
+		   N2
+		   (enc (cat U C G Kcg T1start T1expire) Kag)
+		   (enc (cat C T1start T1expire) Kcg)))
+	(send (cat U
+		   (enc (cat U C S Kcs T2start T2expire) Kgs)
+		   (enc (cat S Kcs T2start T2expire N2) Kcg)))
+	)
+       (uniq-orig Kcs)
+       (non-orig Kgs Kag)
+    )
+
+;; S is the principal of the server that C wishes to communicate with
+;; Kgs is a long-term shared key between G and S.
+  (defrole server
+    (vars (U name) (C name) (S name) (Kgs skey) (T2start text)
+	  (T2expire text) (Kcs skey))
+    (trace
+     (recv (cat (enc (cat U C S Kcs T2start T2expire) Kgs)
+		(enc (cat C T2start T2expire) Kcs)))
+     (send (enc (cat T2start T2expire) Kcs))
+     )
+    (uniq-orig )
+    (non-orig Kgs)
+    )
+
+)
+
+ (defskeleton kerb5
+    (vars )
+    (defstrand server 2)
+    )
diff --git a/tst/kerberos++.scm b/tst/kerberos++.scm
deleted file mode 100644
--- a/tst/kerberos++.scm
+++ /dev/null
@@ -1,79 +0,0 @@
-; CPSA - Full Local Realm Kerberos
-
-; In this example, cli (client) is trying to connect to the serv (service).
-;
-; 1) It first sends a request to the as (authentication server) for an initial tgt (ticket-granting ticket).
-
-; 2) The AS responds by sending the TGT and a package containing a new session key encrypted under the long-term
-;	 key of the client.
-
-; 3) The client then sends the TGT along with an authenticator (encrypted message containing its name and a time-stamp
-;	 encrypted under the session key received from the AS) to the TGS (Ticket-Granting Server).
-
-; 4) Having received the TGT and authenticator, the TGS then decrypts the TGT to get the session key. It then
-;	 decrypts the authenticator to compare the contents of the TGT and the authenticator. If this is verified, it
-;	 generates an encrypted session key package (same as above in step 2, which includes the name of service, time-stamp,
-;	 lifetime stamp, and the session key all encrypted under the session key it used in previous step) and a ST
-;	 (Service Ticket) to send to the client.
-
-; 5) The client then receives this package and decrypts the session key package to get the new session key to use
-;	 with the service. It then sends an Application Request (AP_REQ), which contains the service ticket it received
-;	 in the previous step and an authenticator that the client generates, to the service. This authenticator is encrypted with
-;	 the session key it extracted and contains its name and a time-stamp. This request is used as its credentials
-;	 to access the service.
-
-(defprotocol kerberos basic
-  (defrole client
-    (vars (cli tgs as serv name) (time t-prime life life-prime tgt st ack nonce text) (tgsk servk skey))
-    (trace
-	  ; Send the Initial Request (AS_REQ), which involves the client name, service name, and a lifetime stamp
-	  (send (cat cli serv nonce life))
-	  ; Get back response from the AS (AS_REP), which gives the TGT and an encrypted message with a new session key,
-	  ; client name, time-stamp, and lifetime stamp.
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-	  (send (cat (enc cli t-prime servk) st))
-	  (recv (enc ack servk))) (uniq-orig nonce))
-
-  (defrole tgs
-    (vars (cli tgs as serv name) (time t-prime life life-prime tgt st text) (tgsk servk skey))
-    (trace
-	  (recv (cat (enc cli time tgsk) (enc time life tgsk cli (ltk tgs as))))
-      (send (cat (enc serv t-prime life-prime servk tgsk) (enc cli serv t-prime life-prime servk (ltk serv as))))) (uniq-orig servk))
-
-  (defrole as
-    (vars (cli tgs as serv name) (time life nonce text) (tgsk skey))
-    (trace
-	  (recv (cat cli serv nonce life))
-      (send
-        (cat (enc time life nonce tgsk tgs (ltk cli as)) (enc time life tgsk cli (ltk tgs as))))) (uniq-orig tgsk))
-
-  (defrole serv
-	(vars (cli as serv name) (t-prime life-prime ack text) (servk skey))
-	(trace
-	  (recv (cat (enc cli t-prime servk) (enc cli serv t-prime life-prime servk (ltk serv as))))
-	  (send (enc ack servk)))))
-
-; we'll observe two shapes resulting from these preskeletons
-; because the keyserver can reverse a and b with no change
-; in the protocol
-(defskeleton kerberos
-  (vars (cli name) (tgs name) (as name) (serv name))
-  (defstrand client 6 (cli cli) (tgs tgs) (as as) (serv serv))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as)))
-
-(defskeleton kerberos
-  (vars (cli name) (tgs name) (as name) (serv name))
-  (defstrand tgs 2 (cli cli) (tgs tgs) (as as) (serv serv))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as)))
-
-(defskeleton kerberos
-  (vars (cli name) (tgs name) (as name) (serv name))
-  (defstrand as 2 (cli cli) (tgs tgs) (as as) (serv serv))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as)))
-
-(defskeleton kerberos
-  (vars (cli name) (serv name) (as name))
-  (defstrand serv 2 (cli cli) (serv serv) (as as))
-  (non-orig (ltk cli as) (ltk serv as)))
diff --git a/tst/kerberos++.tst b/tst/kerberos++.tst
deleted file mode 100644
--- a/tst/kerberos++.tst
+++ /dev/null
@@ -1,1405 +0,0 @@
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/kerberos++.scm")
-
-(defprotocol kerberos basic
-  (defrole client
-    (vars (cli tgs as serv name)
-      (time t-prime life life-prime tgt st ack nonce text)
-      (tgsk servk skey))
-    (trace (send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    (uniq-orig nonce))
-  (defrole tgs
-    (vars (cli tgs as serv name) (time t-prime life life-prime text)
-      (tgsk servk skey))
-    (trace
-      (recv
-        (cat (enc cli time tgsk) (enc time life tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    (uniq-orig servk))
-  (defrole as
-    (vars (cli tgs as serv name) (time life nonce text) (tgsk skey))
-    (trace (recv (cat cli serv nonce life))
-      (send
-        (cat (enc time life nonce tgsk tgs (ltk cli as))
-          (enc time life tgsk cli (ltk tgs as)))))
-    (uniq-orig tgsk))
-  (defrole serv
-    (vars (cli as serv name) (t-prime life-prime ack text) (servk skey))
-    (trace
-      (recv
-        (cat (enc cli t-prime servk)
-          (enc cli serv t-prime life-prime servk (ltk serv as))))
-      (send (enc ack servk)))))
-
-(defskeleton kerberos
-  (vars (time t-prime life life-prime tgt st ack nonce text)
-    (cli tgs as serv name) (tgsk servk skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce)
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk))))
-  (label 0)
-  (unrealized (0 1))
-  (origs (nonce (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton kerberos
-  (vars (time t-prime life life-prime tgt st ack nonce text)
-    (cli tgs as serv serv-0 name) (tgsk servk skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce tgsk)
-  (operation encryption-test (added-strand as 2)
-    (enc time nonce life tgsk tgs (ltk cli as)) (0 1))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as))))))
-  (label 1)
-  (parent 0)
-  (unrealized (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton kerberos
-  (vars
-    (time t-prime life life-prime tgt st ack nonce time-0 life-0 text)
-    (cli tgs as serv serv-0 cli-0 tgs-0 as-0 name) (tgsk servk skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand tgs 2 (time time-0) (t-prime t-prime) (life life-0)
-    (life-prime life-prime) (cli cli-0) (tgs tgs-0) (as as-0)
-    (serv serv) (tgsk tgsk) (servk servk))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 3)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce tgsk servk)
-  (operation encryption-test (added-strand tgs 2)
-    (enc serv t-prime life-prime servk tgsk) (0 3))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as)))))
-    ((recv
-       (cat (enc cli-0 time-0 tgsk)
-         (enc time-0 life-0 tgsk cli-0 (ltk tgs-0 as-0))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli-0 serv t-prime life-prime servk (ltk serv as-0))))))
-  (label 2)
-  (parent 1)
-  (unrealized (2 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton kerberos
-  (vars (time t-prime life life-prime tgt st ack nonce text)
-    (cli tgs as serv serv-0 name) (tgsk servk skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (deflistener tgsk)
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 3)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce tgsk)
-  (operation encryption-test (added-listener tgsk)
-    (enc serv t-prime life-prime servk tgsk) (0 3))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as)))))
-    ((recv tgsk) (send tgsk)))
-  (label 3)
-  (parent 1)
-  (unrealized (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton kerberos
-  (vars
-    (time t-prime life life-prime tgt st ack nonce time-0 life-0 time-1
-      life-1 life-prime-0 tgt-0 st-0 nonce-0 text)
-    (cli tgs as serv serv-0 cli-0 tgs-0 as-0 tgs-1 as-1 serv-1 name)
-    (tgsk servk tgsk-0 skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand tgs 2 (time time-0) (t-prime t-prime) (life life-0)
-    (life-prime life-prime) (cli cli-0) (tgs tgs-0) (as as-0)
-    (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand client 5 (time time-1) (t-prime time-0) (life life-1)
-    (life-prime life-prime-0) (tgt tgt-0) (st st-0) (nonce nonce-0)
-    (cli cli-0) (tgs tgs-1) (as as-1) (serv serv-1) (tgsk tgsk-0)
-    (servk tgsk))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 3)) ((2 1) (0 3))
-    ((3 4) (2 0)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce nonce-0 tgsk servk)
-  (operation encryption-test (added-strand client 5)
-    (enc cli-0 time-0 tgsk) (2 0))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as)))))
-    ((recv
-       (cat (enc cli-0 time-0 tgsk)
-         (enc time-0 life-0 tgsk cli-0 (ltk tgs-0 as-0))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli-0 serv t-prime life-prime servk (ltk serv as-0)))))
-    ((send (cat cli-0 serv-1 nonce-0 life-1))
-      (recv
-        (cat (enc time-1 nonce-0 life-1 tgsk-0 tgs-1 (ltk cli-0 as-1))
-          tgt-0)) (send (cat (enc cli-0 time-1 tgsk-0) tgt-0))
-      (recv (cat (enc serv-1 time-0 life-prime-0 tgsk tgsk-0) st-0))
-      (send (cat (enc cli-0 time-0 tgsk) st-0))))
-  (label 4)
-  (parent 2)
-  (unrealized (2 0) (3 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton kerberos
-  (vars (time t-prime life life-prime tgt st ack nonce life-0 text)
-    (cli tgs as serv serv-0 tgs-0 as-0 name) (tgsk servk skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life life-0)
-    (life-prime life-prime) (cli cli) (tgs tgs-0) (as as-0) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce tgsk servk)
-  (operation encryption-test (displaced 3 0 client 3)
-    (enc cli-0 time-0 tgsk) (2 0))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as)))))
-    ((recv
-       (cat (enc cli time tgsk)
-         (enc time life-0 tgsk cli (ltk tgs-0 as-0))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as-0))))))
-  (label 5)
-  (parent 2)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton kerberos
-  (vars
-    (time t-prime life life-prime tgt st ack nonce time-0 life-0 life-1
-      tgt-0 nonce-0 text)
-    (cli tgs as serv serv-0 cli-0 tgs-0 as-0 tgs-1 as-1 serv-1 name)
-    (tgsk servk skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand tgs 2 (time time-0) (t-prime t-prime) (life life-0)
-    (life-prime life-prime) (cli cli-0) (tgs tgs-0) (as as-0)
-    (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand client 3 (time time-0) (life life-1) (tgt tgt-0)
-    (nonce nonce-0) (cli cli-0) (tgs tgs-1) (as as-1) (serv serv-1)
-    (tgsk tgsk))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 1)) ((2 1) (0 3))
-    ((3 2) (2 0)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce nonce-0 tgsk servk)
-  (operation encryption-test (added-strand client 3)
-    (enc cli-0 time-0 tgsk) (2 0))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as)))))
-    ((recv
-       (cat (enc cli-0 time-0 tgsk)
-         (enc time-0 life-0 tgsk cli-0 (ltk tgs-0 as-0))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli-0 serv t-prime life-prime servk (ltk serv as-0)))))
-    ((send (cat cli-0 serv-1 nonce-0 life-1))
-      (recv
-        (cat (enc time-0 nonce-0 life-1 tgsk tgs-1 (ltk cli-0 as-1))
-          tgt-0)) (send (cat (enc cli-0 time-0 tgsk) tgt-0))))
-  (label 6)
-  (parent 2)
-  (unrealized (2 0) (3 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton kerberos
-  (vars
-    (time t-prime life life-prime tgt st ack nonce time-0 life-0 text)
-    (cli tgs as serv serv-0 cli-0 tgs-0 as-0 name) (tgsk servk skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand tgs 2 (time time-0) (t-prime t-prime) (life life-0)
-    (life-prime life-prime) (cli cli-0) (tgs tgs-0) (as as-0)
-    (serv serv) (tgsk tgsk) (servk servk))
-  (deflistener tgsk)
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3))
-    ((3 1) (2 0)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce tgsk servk)
-  (operation encryption-test (added-listener tgsk)
-    (enc cli-0 time-0 tgsk) (2 0))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as)))))
-    ((recv
-       (cat (enc cli-0 time-0 tgsk)
-         (enc time-0 life-0 tgsk cli-0 (ltk tgs-0 as-0))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli-0 serv t-prime life-prime servk (ltk serv as-0)))))
-    ((recv tgsk) (send tgsk)))
-  (label 7)
-  (parent 2)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton kerberos
-  (vars (time t-prime life life-prime tgt st ack nonce text)
-    (cli tgs as serv serv-0 name) (tgsk servk skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life nonce)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce tgsk servk)
-  (operation nonce-test
-    (contracted (tgs-0 tgs) (as-0 as) (life-0 nonce)) tgsk (2 0)
-    (enc time nonce life tgsk tgs (ltk cli as))
-    (enc time nonce tgsk cli (ltk tgs as)))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as)))))
-    ((recv
-       (cat (enc cli time tgsk) (enc time nonce tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as))))))
-  (label 8)
-  (parent 5)
-  (unrealized (0 5))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton kerberos
-  (vars
-    (time t-prime life life-prime tgt st ack nonce t-prime-0
-      life-prime-0 text) (cli tgs as serv serv-0 cli-0 as-0 serv-1 name)
-    (tgsk servk skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life nonce)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (defstrand serv 2 (t-prime t-prime-0) (life-prime life-prime-0)
-    (ack ack) (cli cli-0) (as as-0) (serv serv-1) (servk servk))
-  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((2 1) (3 0)) ((3 1) (0 5)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce tgsk servk)
-  (operation encryption-test (added-strand serv 2) (enc ack servk)
-    (0 5))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as)))))
-    ((recv
-       (cat (enc cli time tgsk) (enc time nonce tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    ((recv
-       (cat (enc cli-0 t-prime-0 servk)
-         (enc cli-0 serv-1 t-prime-0 life-prime-0 servk
-           (ltk serv-1 as-0)))) (send (enc ack servk))))
-  (label 9)
-  (parent 8)
-  (unrealized (3 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton kerberos
-  (vars (time t-prime life life-prime tgt st ack nonce text)
-    (cli tgs as serv serv-0 name) (tgsk servk skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life nonce)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (deflistener servk)
-  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((2 1) (3 0)) ((3 1) (0 5)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce tgsk servk)
-  (operation encryption-test (added-listener servk) (enc ack servk)
-    (0 5))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as)))))
-    ((recv
-       (cat (enc cli time tgsk) (enc time nonce tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    ((recv servk) (send servk)))
-  (label 10)
-  (parent 8)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton kerberos
-  (vars
-    (time t-prime life life-prime tgt st ack nonce life-prime-0 text)
-    (cli tgs as serv serv-0 as-0 serv-1 name) (tgsk servk skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life nonce)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (defstrand serv 2 (t-prime t-prime) (life-prime life-prime-0)
-    (ack ack) (cli cli) (as as-0) (serv serv-1) (servk servk))
-  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((0 4) (3 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 1) (0 5)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce tgsk servk)
-  (operation encryption-test (displaced 4 0 client 5)
-    (enc cli-0 t-prime-0 servk) (3 0))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as)))))
-    ((recv
-       (cat (enc cli time tgsk) (enc time nonce tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    ((recv
-       (cat (enc cli t-prime servk)
-         (enc cli serv-1 t-prime life-prime-0 servk (ltk serv-1 as-0))))
-      (send (enc ack servk))))
-  (label 11)
-  (parent 9)
-  (unrealized (3 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton kerberos
-  (vars
-    (time t-prime life life-prime tgt st ack nonce t-prime-0
-      life-prime-0 time-0 life-0 life-prime-1 tgt-0 st-0 nonce-0 text)
-    (cli tgs as serv serv-0 cli-0 as-0 serv-1 tgs-0 as-1 serv-2 name)
-    (tgsk servk tgsk-0 skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life nonce)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (defstrand serv 2 (t-prime t-prime-0) (life-prime life-prime-0)
-    (ack ack) (cli cli-0) (as as-0) (serv serv-1) (servk servk))
-  (defstrand client 5 (time time-0) (t-prime t-prime-0) (life life-0)
-    (life-prime life-prime-1) (tgt tgt-0) (st st-0) (nonce nonce-0)
-    (cli cli-0) (tgs tgs-0) (as as-1) (serv serv-2) (tgsk tgsk-0)
-    (servk servk))
-  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((2 1) (4 3)) ((3 1) (0 5)) ((4 4) (3 0)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce nonce-0 tgsk servk)
-  (operation encryption-test (added-strand client 5)
-    (enc cli-0 t-prime-0 servk) (3 0))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as)))))
-    ((recv
-       (cat (enc cli time tgsk) (enc time nonce tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    ((recv
-       (cat (enc cli-0 t-prime-0 servk)
-         (enc cli-0 serv-1 t-prime-0 life-prime-0 servk
-           (ltk serv-1 as-0)))) (send (enc ack servk)))
-    ((send (cat cli-0 serv-2 nonce-0 life-0))
-      (recv
-        (cat (enc time-0 nonce-0 life-0 tgsk-0 tgs-0 (ltk cli-0 as-1))
-          tgt-0)) (send (cat (enc cli-0 time-0 tgsk-0) tgt-0))
-      (recv (cat (enc serv-2 t-prime-0 life-prime-1 servk tgsk-0) st-0))
-      (send (cat (enc cli-0 t-prime-0 servk) st-0))))
-  (label 12)
-  (parent 9)
-  (unrealized (3 0) (4 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton kerberos
-  (vars
-    (time t-prime life life-prime tgt st ack nonce t-prime-0
-      life-prime-0 life-0 tgt-0 nonce-0 text)
-    (cli tgs as serv serv-0 cli-0 as-0 serv-1 tgs-0 as-1 serv-2 name)
-    (tgsk servk skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life nonce)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (defstrand serv 2 (t-prime t-prime-0) (life-prime life-prime-0)
-    (ack ack) (cli cli-0) (as as-0) (serv serv-1) (servk servk))
-  (defstrand client 3 (time t-prime-0) (life life-0) (tgt tgt-0)
-    (nonce nonce-0) (cli cli-0) (tgs tgs-0) (as as-1) (serv serv-2)
-    (tgsk servk))
-  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((2 1) (4 1)) ((3 1) (0 5)) ((4 2) (3 0)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce nonce-0 tgsk servk)
-  (operation encryption-test (added-strand client 3)
-    (enc cli-0 t-prime-0 servk) (3 0))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as)))))
-    ((recv
-       (cat (enc cli time tgsk) (enc time nonce tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    ((recv
-       (cat (enc cli-0 t-prime-0 servk)
-         (enc cli-0 serv-1 t-prime-0 life-prime-0 servk
-           (ltk serv-1 as-0)))) (send (enc ack servk)))
-    ((send (cat cli-0 serv-2 nonce-0 life-0))
-      (recv
-        (cat (enc t-prime-0 nonce-0 life-0 servk tgs-0 (ltk cli-0 as-1))
-          tgt-0)) (send (cat (enc cli-0 t-prime-0 servk) tgt-0))))
-  (label 13)
-  (parent 9)
-  (unrealized (3 0) (4 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton kerberos
-  (vars
-    (time t-prime life life-prime tgt st ack nonce t-prime-0
-      life-prime-0 text) (cli tgs as serv serv-0 cli-0 as-0 serv-1 name)
-    (tgsk servk skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life nonce)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (defstrand serv 2 (t-prime t-prime-0) (life-prime life-prime-0)
-    (ack ack) (cli cli-0) (as as-0) (serv serv-1) (servk servk))
-  (deflistener servk)
-  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((2 1) (4 0)) ((3 1) (0 5)) ((4 1) (3 0)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce tgsk servk)
-  (operation encryption-test (added-listener servk)
-    (enc cli-0 t-prime-0 servk) (3 0))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as)))))
-    ((recv
-       (cat (enc cli time tgsk) (enc time nonce tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    ((recv
-       (cat (enc cli-0 t-prime-0 servk)
-         (enc cli-0 serv-1 t-prime-0 life-prime-0 servk
-           (ltk serv-1 as-0)))) (send (enc ack servk)))
-    ((recv servk) (send servk)))
-  (label 14)
-  (parent 9)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton kerberos
-  (vars (time t-prime life life-prime tgt st ack nonce text)
-    (cli tgs as serv serv-0 name) (tgsk servk skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life nonce)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (deflistener servk)
-  (deflistener tgsk)
-  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((1 1) (4 0))
-    ((2 1) (0 3)) ((2 1) (3 0)) ((3 1) (0 5)) ((4 1) (3 0)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce tgsk servk)
-  (operation nonce-test (added-listener tgsk) servk (3 0)
-    (enc cli serv t-prime life-prime servk (ltk serv as))
-    (enc serv t-prime life-prime servk tgsk))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as)))))
-    ((recv
-       (cat (enc cli time tgsk) (enc time nonce tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    ((recv servk) (send servk)) ((recv tgsk) (send tgsk)))
-  (label 15)
-  (parent 10)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton kerberos
-  (vars (time t-prime life life-prime tgt st ack nonce text)
-    (cli tgs as serv serv-0 name) (tgsk servk skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life nonce)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (defstrand serv 2 (t-prime t-prime) (life-prime life-prime) (ack ack)
-    (cli cli) (as as) (serv serv) (servk servk))
-  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((0 4) (3 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 1) (0 5)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce tgsk servk)
-  (operation nonce-test
-    (contracted (as-0 as) (serv-1 serv) (life-prime-0 life-prime)) servk
-    (3 0) (enc cli serv t-prime life-prime servk (ltk serv as))
-    (enc serv t-prime life-prime servk tgsk))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as)))))
-    ((recv
-       (cat (enc cli time tgsk) (enc time nonce tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    ((recv
-       (cat (enc cli t-prime servk)
-         (enc cli serv t-prime life-prime servk (ltk serv as))))
-      (send (enc ack servk))))
-  (label 16)
-  (parent 11)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((cli cli) (tgs tgs) (as as) (serv serv) (time time)
-        (t-prime t-prime) (life life) (life-prime life-prime) (tgt tgt)
-        (st st) (ack ack) (nonce nonce) (tgsk tgsk) (servk servk))))
-  (origs (nonce (0 0)) (servk (2 1)) (tgsk (1 1))))
-
-(defskeleton kerberos
-  (vars
-    (time t-prime life life-prime tgt st ack nonce life-prime-0 text)
-    (cli tgs as serv serv-0 as-0 serv-1 name) (tgsk servk skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life nonce)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (defstrand serv 2 (t-prime t-prime) (life-prime life-prime-0)
-    (ack ack) (cli cli) (as as-0) (serv serv-1) (servk servk))
-  (deflistener tgsk)
-  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((0 4) (3 0)) ((1 1) (0 1))
-    ((1 1) (4 0)) ((2 1) (0 3)) ((3 1) (0 5)) ((4 1) (3 0)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce tgsk servk)
-  (operation nonce-test (added-listener tgsk) servk (3 0)
-    (enc cli serv t-prime life-prime servk (ltk serv as))
-    (enc serv t-prime life-prime servk tgsk))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as)))))
-    ((recv
-       (cat (enc cli time tgsk) (enc time nonce tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    ((recv
-       (cat (enc cli t-prime servk)
-         (enc cli serv-1 t-prime life-prime-0 servk (ltk serv-1 as-0))))
-      (send (enc ack servk))) ((recv tgsk) (send tgsk)))
-  (label 17)
-  (parent 11)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton kerberos
-  (vars
-    (time t-prime life life-prime tgt st ack nonce life-prime-0 time-0
-      life-0 tgt-0 st-0 nonce-0 text)
-    (cli tgs as serv serv-0 cli-0 as-0 serv-1 tgs-0 as-1 name)
-    (tgsk servk skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life nonce)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (defstrand serv 2 (t-prime t-prime) (life-prime life-prime-0)
-    (ack ack) (cli cli-0) (as as-0) (serv serv-1) (servk servk))
-  (defstrand client 5 (time time-0) (t-prime t-prime) (life life-0)
-    (life-prime life-prime) (tgt tgt-0) (st st-0) (nonce nonce-0)
-    (cli cli-0) (tgs tgs-0) (as as-1) (serv serv) (tgsk tgsk)
-    (servk servk))
-  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((1 1) (4 1))
-    ((2 1) (0 3)) ((2 1) (4 3)) ((3 1) (0 5)) ((4 4) (3 0)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce nonce-0 tgsk servk)
-  (operation nonce-test
-    (contracted (t-prime-0 t-prime) (serv-2 serv)
-      (life-prime-1 life-prime) (tgsk-0 tgsk)) servk (4 3)
-    (enc cli serv t-prime life-prime servk (ltk serv as))
-    (enc serv t-prime life-prime servk tgsk))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as)))))
-    ((recv
-       (cat (enc cli time tgsk) (enc time nonce tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    ((recv
-       (cat (enc cli-0 t-prime servk)
-         (enc cli-0 serv-1 t-prime life-prime-0 servk
-           (ltk serv-1 as-0)))) (send (enc ack servk)))
-    ((send (cat cli-0 serv nonce-0 life-0))
-      (recv
-        (cat (enc time-0 nonce-0 life-0 tgsk tgs-0 (ltk cli-0 as-1))
-          tgt-0)) (send (cat (enc cli-0 time-0 tgsk) tgt-0))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st-0))
-      (send (cat (enc cli-0 t-prime servk) st-0))))
-  (label 18)
-  (parent 12)
-  (unrealized (3 0) (4 1))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton kerberos
-  (vars
-    (time t-prime life life-prime tgt st ack nonce t-prime-0
-      life-prime-0 time-0 life-0 life-prime-1 tgt-0 st-0 nonce-0 text)
-    (cli tgs as serv serv-0 cli-0 as-0 serv-1 tgs-0 as-1 serv-2 name)
-    (tgsk servk tgsk-0 skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life nonce)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (defstrand serv 2 (t-prime t-prime-0) (life-prime life-prime-0)
-    (ack ack) (cli cli-0) (as as-0) (serv serv-1) (servk servk))
-  (defstrand client 5 (time time-0) (t-prime t-prime-0) (life life-0)
-    (life-prime life-prime-1) (tgt tgt-0) (st st-0) (nonce nonce-0)
-    (cli cli-0) (tgs tgs-0) (as as-1) (serv serv-2) (tgsk tgsk-0)
-    (servk servk))
-  (deflistener tgsk)
-  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((1 1) (5 0))
-    ((2 1) (0 3)) ((2 1) (4 3)) ((3 1) (0 5)) ((4 4) (3 0))
-    ((5 1) (4 3)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce nonce-0 tgsk servk)
-  (operation nonce-test (added-listener tgsk) servk (4 3)
-    (enc cli serv t-prime life-prime servk (ltk serv as))
-    (enc serv t-prime life-prime servk tgsk))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as)))))
-    ((recv
-       (cat (enc cli time tgsk) (enc time nonce tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    ((recv
-       (cat (enc cli-0 t-prime-0 servk)
-         (enc cli-0 serv-1 t-prime-0 life-prime-0 servk
-           (ltk serv-1 as-0)))) (send (enc ack servk)))
-    ((send (cat cli-0 serv-2 nonce-0 life-0))
-      (recv
-        (cat (enc time-0 nonce-0 life-0 tgsk-0 tgs-0 (ltk cli-0 as-1))
-          tgt-0)) (send (cat (enc cli-0 time-0 tgsk-0) tgt-0))
-      (recv (cat (enc serv-2 t-prime-0 life-prime-1 servk tgsk-0) st-0))
-      (send (cat (enc cli-0 t-prime-0 servk) st-0)))
-    ((recv tgsk) (send tgsk)))
-  (label 19)
-  (parent 12)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton kerberos
-  (vars
-    (time t-prime life life-prime tgt st ack nonce t-prime-0
-      life-prime-0 life-0 tgt-0 nonce-0 text)
-    (cli tgs as serv serv-0 cli-0 as-0 serv-1 tgs-0 as-1 serv-2 name)
-    (tgsk servk skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life nonce)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (defstrand serv 2 (t-prime t-prime-0) (life-prime life-prime-0)
-    (ack ack) (cli cli-0) (as as-0) (serv serv-1) (servk servk))
-  (defstrand client 3 (time t-prime-0) (life life-0) (tgt tgt-0)
-    (nonce nonce-0) (cli cli-0) (tgs tgs-0) (as as-1) (serv serv-2)
-    (tgsk servk))
-  (deflistener tgsk)
-  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((1 1) (5 0))
-    ((2 1) (0 3)) ((2 1) (4 1)) ((3 1) (0 5)) ((4 2) (3 0))
-    ((5 1) (4 1)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce nonce-0 tgsk servk)
-  (operation nonce-test (added-listener tgsk) servk (4 1)
-    (enc cli serv t-prime life-prime servk (ltk serv as))
-    (enc serv t-prime life-prime servk tgsk))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as)))))
-    ((recv
-       (cat (enc cli time tgsk) (enc time nonce tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    ((recv
-       (cat (enc cli-0 t-prime-0 servk)
-         (enc cli-0 serv-1 t-prime-0 life-prime-0 servk
-           (ltk serv-1 as-0)))) (send (enc ack servk)))
-    ((send (cat cli-0 serv-2 nonce-0 life-0))
-      (recv
-        (cat (enc t-prime-0 nonce-0 life-0 servk tgs-0 (ltk cli-0 as-1))
-          tgt-0)) (send (cat (enc cli-0 t-prime-0 servk) tgt-0)))
-    ((recv tgsk) (send tgsk)))
-  (label 20)
-  (parent 13)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton kerberos
-  (vars
-    (time t-prime life life-prime tgt st ack nonce t-prime-0
-      life-prime-0 text) (cli tgs as serv serv-0 cli-0 as-0 serv-1 name)
-    (tgsk servk skey))
-  (defstrand client 6 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (tgt tgt) (st st) (ack ack) (nonce nonce)
-    (cli cli) (tgs tgs) (as as) (serv serv) (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life nonce) (nonce life) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life nonce)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (defstrand serv 2 (t-prime t-prime-0) (life-prime life-prime-0)
-    (ack ack) (cli cli-0) (as as-0) (serv serv-1) (servk servk))
-  (deflistener servk)
-  (deflistener tgsk)
-  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((1 1) (5 0))
-    ((2 1) (0 3)) ((2 1) (4 0)) ((3 1) (0 5)) ((4 1) (3 0))
-    ((5 1) (4 0)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce tgsk servk)
-  (operation nonce-test (added-listener tgsk) servk (4 0)
-    (enc cli serv t-prime life-prime servk (ltk serv as))
-    (enc serv t-prime life-prime servk tgsk))
-  (traces
-    ((send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    ((recv (cat cli serv-0 life nonce))
-      (send
-        (cat (enc time nonce life tgsk tgs (ltk cli as))
-          (enc time nonce tgsk cli (ltk tgs as)))))
-    ((recv
-       (cat (enc cli time tgsk) (enc time nonce tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    ((recv
-       (cat (enc cli-0 t-prime-0 servk)
-         (enc cli-0 serv-1 t-prime-0 life-prime-0 servk
-           (ltk serv-1 as-0)))) (send (enc ack servk)))
-    ((recv servk) (send servk)) ((recv tgsk) (send tgsk)))
-  (label 21)
-  (parent 14)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol kerberos basic
-  (defrole client
-    (vars (cli tgs as serv name)
-      (time t-prime life life-prime tgt st ack nonce text)
-      (tgsk servk skey))
-    (trace (send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    (uniq-orig nonce))
-  (defrole tgs
-    (vars (cli tgs as serv name) (time t-prime life life-prime text)
-      (tgsk servk skey))
-    (trace
-      (recv
-        (cat (enc cli time tgsk) (enc time life tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    (uniq-orig servk))
-  (defrole as
-    (vars (cli tgs as serv name) (time life nonce text) (tgsk skey))
-    (trace (recv (cat cli serv nonce life))
-      (send
-        (cat (enc time life nonce tgsk tgs (ltk cli as))
-          (enc time life tgsk cli (ltk tgs as)))))
-    (uniq-orig tgsk))
-  (defrole serv
-    (vars (cli as serv name) (t-prime life-prime ack text) (servk skey))
-    (trace
-      (recv
-        (cat (enc cli t-prime servk)
-          (enc cli serv t-prime life-prime servk (ltk serv as))))
-      (send (enc ack servk)))))
-
-(defskeleton kerberos
-  (vars (time t-prime life life-prime text) (cli tgs as serv name)
-    (tgsk servk skey))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig servk)
-  (traces
-    ((recv
-       (cat (enc cli time tgsk) (enc time life tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as))))))
-  (label 22)
-  (unrealized (0 0))
-  (origs (servk (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton kerberos
-  (vars (time t-prime life life-prime nonce text)
-    (cli tgs as serv serv-0 name) (tgsk servk skey))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life life) (nonce nonce) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (precedes ((1 1) (0 0)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig tgsk servk)
-  (operation encryption-test (added-strand as 2)
-    (enc time life tgsk cli (ltk tgs as)) (0 0))
-  (traces
-    ((recv
-       (cat (enc cli time tgsk) (enc time life tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    ((recv (cat cli serv-0 nonce life))
-      (send
-        (cat (enc time life nonce tgsk tgs (ltk cli as))
-          (enc time life tgsk cli (ltk tgs as))))))
-  (label 23)
-  (parent 22)
-  (unrealized (0 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton kerberos
-  (vars
-    (time t-prime life life-prime nonce time-0 life-0 life-prime-0 tgt
-      st nonce-0 text) (cli tgs as serv serv-0 tgs-0 as-0 serv-1 name)
-    (tgsk servk tgsk-0 skey))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life life) (nonce nonce) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand client 5 (time time-0) (t-prime time) (life life-0)
-    (life-prime life-prime-0) (tgt tgt) (st st) (nonce nonce-0)
-    (cli cli) (tgs tgs-0) (as as-0) (serv serv-1) (tgsk tgsk-0)
-    (servk tgsk))
-  (precedes ((1 1) (2 3)) ((2 4) (0 0)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce-0 tgsk servk)
-  (operation encryption-test (added-strand client 5) (enc cli time tgsk)
-    (0 0))
-  (traces
-    ((recv
-       (cat (enc cli time tgsk) (enc time life tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    ((recv (cat cli serv-0 nonce life))
-      (send
-        (cat (enc time life nonce tgsk tgs (ltk cli as))
-          (enc time life tgsk cli (ltk tgs as)))))
-    ((send (cat cli serv-1 nonce-0 life-0))
-      (recv
-        (cat (enc time-0 nonce-0 life-0 tgsk-0 tgs-0 (ltk cli as-0))
-          tgt)) (send (cat (enc cli time-0 tgsk-0) tgt))
-      (recv (cat (enc serv-1 time life-prime-0 tgsk tgsk-0) st))
-      (send (cat (enc cli time tgsk) st))))
-  (label 24)
-  (parent 23)
-  (unrealized (2 3))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton kerberos
-  (vars (time t-prime life life-prime nonce life-0 tgt nonce-0 text)
-    (cli tgs as serv serv-0 tgs-0 as-0 serv-1 name) (tgsk servk skey))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life life) (nonce nonce) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand client 3 (time time) (life life-0) (tgt tgt)
-    (nonce nonce-0) (cli cli) (tgs tgs-0) (as as-0) (serv serv-1)
-    (tgsk tgsk))
-  (precedes ((1 1) (2 1)) ((2 2) (0 0)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig nonce-0 tgsk servk)
-  (operation encryption-test (added-strand client 3) (enc cli time tgsk)
-    (0 0))
-  (traces
-    ((recv
-       (cat (enc cli time tgsk) (enc time life tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    ((recv (cat cli serv-0 nonce life))
-      (send
-        (cat (enc time life nonce tgsk tgs (ltk cli as))
-          (enc time life tgsk cli (ltk tgs as)))))
-    ((send (cat cli serv-1 nonce-0 life-0))
-      (recv
-        (cat (enc time nonce-0 life-0 tgsk tgs-0 (ltk cli as-0)) tgt))
-      (send (cat (enc cli time tgsk) tgt))))
-  (label 25)
-  (parent 23)
-  (unrealized (2 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton kerberos
-  (vars (time t-prime life life-prime nonce text)
-    (cli tgs as serv serv-0 name) (tgsk servk skey))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life life) (nonce nonce) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (deflistener tgsk)
-  (precedes ((1 1) (2 0)) ((2 1) (0 0)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig tgsk servk)
-  (operation encryption-test (added-listener tgsk) (enc cli time tgsk)
-    (0 0))
-  (traces
-    ((recv
-       (cat (enc cli time tgsk) (enc time life tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    ((recv (cat cli serv-0 nonce life))
-      (send
-        (cat (enc time life nonce tgsk tgs (ltk cli as))
-          (enc time life tgsk cli (ltk tgs as)))))
-    ((recv tgsk) (send tgsk)))
-  (label 26)
-  (parent 23)
-  (unrealized (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton kerberos
-  (vars (time t-prime life life-prime nonce tgt text)
-    (cli tgs as serv serv-0 serv-1 name) (tgsk servk skey))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (defstrand as 2 (time time) (life life) (nonce nonce) (cli cli)
-    (tgs tgs) (as as) (serv serv-0) (tgsk tgsk))
-  (defstrand client 3 (time time) (life nonce) (tgt tgt) (nonce life)
-    (cli cli) (tgs tgs) (as as) (serv serv-1) (tgsk tgsk))
-  (precedes ((1 1) (2 1)) ((2 0) (1 0)) ((2 2) (0 0)))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig life tgsk servk)
-  (operation nonce-test
-    (contracted (tgs-0 tgs) (as-0 as) (life-0 nonce) (nonce-0 life))
-    tgsk (2 1) (enc time life nonce tgsk tgs (ltk cli as))
-    (enc time life tgsk cli (ltk tgs as)))
-  (traces
-    ((recv
-       (cat (enc cli time tgsk) (enc time life tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    ((recv (cat cli serv-0 nonce life))
-      (send
-        (cat (enc time life nonce tgsk tgs (ltk cli as))
-          (enc time life tgsk cli (ltk tgs as)))))
-    ((send (cat cli serv-1 life nonce))
-      (recv (cat (enc time life nonce tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))))
-  (label 27)
-  (parent 25)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((cli cli) (tgs tgs) (as as) (serv serv) (time time)
-        (t-prime t-prime) (life life) (life-prime life-prime)
-        (tgsk tgsk) (servk servk))))
-  (origs (life (2 0)) (tgsk (1 1)) (servk (0 1))))
-
-(comment "Nothing left to do")
-
-(defprotocol kerberos basic
-  (defrole client
-    (vars (cli tgs as serv name)
-      (time t-prime life life-prime tgt st ack nonce text)
-      (tgsk servk skey))
-    (trace (send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    (uniq-orig nonce))
-  (defrole tgs
-    (vars (cli tgs as serv name) (time t-prime life life-prime text)
-      (tgsk servk skey))
-    (trace
-      (recv
-        (cat (enc cli time tgsk) (enc time life tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    (uniq-orig servk))
-  (defrole as
-    (vars (cli tgs as serv name) (time life nonce text) (tgsk skey))
-    (trace (recv (cat cli serv nonce life))
-      (send
-        (cat (enc time life nonce tgsk tgs (ltk cli as))
-          (enc time life tgsk cli (ltk tgs as)))))
-    (uniq-orig tgsk))
-  (defrole serv
-    (vars (cli as serv name) (t-prime life-prime ack text) (servk skey))
-    (trace
-      (recv
-        (cat (enc cli t-prime servk)
-          (enc cli serv t-prime life-prime servk (ltk serv as))))
-      (send (enc ack servk)))))
-
-(defskeleton kerberos
-  (vars (time life nonce text) (cli tgs as serv name) (tgsk skey))
-  (defstrand as 2 (time time) (life life) (nonce nonce) (cli cli)
-    (tgs tgs) (as as) (serv serv) (tgsk tgsk))
-  (non-orig (ltk cli as) (ltk tgs as) (ltk serv as))
-  (uniq-orig tgsk)
-  (traces
-    ((recv (cat cli serv nonce life))
-      (send
-        (cat (enc time life nonce tgsk tgs (ltk cli as))
-          (enc time life tgsk cli (ltk tgs as))))))
-  (label 28)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((cli cli) (tgs tgs) (as as) (serv serv) (time time) (life life)
-        (nonce nonce) (tgsk tgsk))))
-  (origs (tgsk (0 1))))
-
-(comment "Nothing left to do")
-
-(defprotocol kerberos basic
-  (defrole client
-    (vars (cli tgs as serv name)
-      (time t-prime life life-prime tgt st ack nonce text)
-      (tgsk servk skey))
-    (trace (send (cat cli serv nonce life))
-      (recv (cat (enc time nonce life tgsk tgs (ltk cli as)) tgt))
-      (send (cat (enc cli time tgsk) tgt))
-      (recv (cat (enc serv t-prime life-prime servk tgsk) st))
-      (send (cat (enc cli t-prime servk) st)) (recv (enc ack servk)))
-    (uniq-orig nonce))
-  (defrole tgs
-    (vars (cli tgs as serv name) (time t-prime life life-prime text)
-      (tgsk servk skey))
-    (trace
-      (recv
-        (cat (enc cli time tgsk) (enc time life tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as)))))
-    (uniq-orig servk))
-  (defrole as
-    (vars (cli tgs as serv name) (time life nonce text) (tgsk skey))
-    (trace (recv (cat cli serv nonce life))
-      (send
-        (cat (enc time life nonce tgsk tgs (ltk cli as))
-          (enc time life tgsk cli (ltk tgs as)))))
-    (uniq-orig tgsk))
-  (defrole serv
-    (vars (cli as serv name) (t-prime life-prime ack text) (servk skey))
-    (trace
-      (recv
-        (cat (enc cli t-prime servk)
-          (enc cli serv t-prime life-prime servk (ltk serv as))))
-      (send (enc ack servk)))))
-
-(defskeleton kerberos
-  (vars (t-prime life-prime ack text) (cli serv as name) (servk skey))
-  (defstrand serv 2 (t-prime t-prime) (life-prime life-prime) (ack ack)
-    (cli cli) (as as) (serv serv) (servk servk))
-  (non-orig (ltk cli as) (ltk serv as))
-  (traces
-    ((recv
-       (cat (enc cli t-prime servk)
-         (enc cli serv t-prime life-prime servk (ltk serv as))))
-      (send (enc ack servk))))
-  (label 29)
-  (unrealized (0 0))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton kerberos
-  (vars (t-prime life-prime ack time life text) (cli serv as tgs name)
-    (servk tgsk skey))
-  (defstrand serv 2 (t-prime t-prime) (life-prime life-prime) (ack ack)
-    (cli cli) (as as) (serv serv) (servk servk))
-  (defstrand tgs 2 (time time) (t-prime t-prime) (life life)
-    (life-prime life-prime) (cli cli) (tgs tgs) (as as) (serv serv)
-    (tgsk tgsk) (servk servk))
-  (precedes ((1 1) (0 0)))
-  (non-orig (ltk cli as) (ltk serv as))
-  (uniq-orig servk)
-  (operation encryption-test (added-strand tgs 2)
-    (enc cli serv t-prime life-prime servk (ltk serv as)) (0 0))
-  (traces
-    ((recv
-       (cat (enc cli t-prime servk)
-         (enc cli serv t-prime life-prime servk (ltk serv as))))
-      (send (enc ack servk)))
-    ((recv
-       (cat (enc cli time tgsk) (enc time life tgsk cli (ltk tgs as))))
-      (send
-        (cat (enc serv t-prime life-prime servk tgsk)
-          (enc cli serv t-prime life-prime servk (ltk serv as))))))
-  (label 30)
-  (parent 29)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((cli cli) (serv serv) (as as) (t-prime t-prime)
-        (life-prime life-prime) (ack ack) (servk servk))))
-  (origs (servk (1 1))))
-
-(comment "Nothing left to do")
diff --git a/tst/kerberos.scm b/tst/kerberos.scm
new file mode 100644
--- /dev/null
+++ b/tst/kerberos.scm
@@ -0,0 +1,37 @@
+(defprotocol kerberos basic
+  (defrole init
+    (vars (a name) (b name) (ks name) (t text) (t-prime text) (l text) (k skey))
+    (trace (send (cat a b))
+      (recv
+        (cat (enc (cat t l k b) (ltk a ks))
+          (enc (cat t l k a) (ltk b ks))))
+      (send (cat (enc (cat a t) k) (enc (cat t l k a) (ltk b ks))))
+      (recv (enc t-prime k))))
+  (defrole resp
+    (vars (a name) (b name) (ks name) (t text) (t-prime text) (l text) (k skey))
+    (trace (recv (cat (enc (cat a t) k) (enc (cat t l k a) (ltk b ks))))
+      (send (enc t-prime k))))
+  (defrole keyserver
+    (vars (a name) (b name) (ks name) (t text) (l text) (k skey))
+    (trace (recv (cat a b))
+      (send
+        (cat (enc (cat t l k b) (ltk a ks))
+          (enc (cat t l k a) (ltk b ks))))) (uniq-orig k)))
+
+; we'll observe two shapes resulting from these preskeletons
+; because the keyserver can reverse a and b with no change
+; in the protocol
+(defskeleton kerberos
+  (vars (a name) (b name) (ks name))
+  (defstrand init 4 (a a) (b b) (ks ks))
+  (non-orig (ltk a ks) (ltk b ks)))
+
+(defskeleton kerberos
+  (vars (a name) (b name) (ks name))
+  (defstrand resp 2 (a a) (b b) (ks ks))
+  (non-orig (ltk a ks) (ltk b ks)))
+
+(defskeleton kerberos
+  (vars (a name) (b name) (ks name))
+  (defstrand keyserver 2 (a a) (b b) (ks ks))
+  (non-orig (ltk a ks) (ltk b ks)))
diff --git a/tst/kerberos.tst b/tst/kerberos.tst
new file mode 100644
--- /dev/null
+++ b/tst/kerberos.tst
@@ -0,0 +1,929 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/kerberos.scm")
+
+(defprotocol kerberos basic
+  (defrole init
+    (vars (a b ks name) (t t-prime l text) (k skey))
+    (trace (send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k))))
+  (defrole resp
+    (vars (a b ks name) (t t-prime l text) (k skey))
+    (trace (recv (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (send (enc t-prime k))))
+  (defrole keyserver
+    (vars (a b ks name) (t l text) (k skey))
+    (trace (recv (cat a b))
+      (send (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks)))))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l text) (a b ks name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (non-orig (ltk a ks) (ltk b ks))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k))))
+  (label 0)
+  (unrealized (0 1))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l text) (a b ks name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (precedes ((1 1) (0 1)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation encryption-test (added-strand keyserver 2)
+    (enc t l k b (ltk a ks)) (0 1))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat a b))
+      (send (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l text) (a b ks name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a b) (b a) (ks ks))
+  (precedes ((1 1) (0 1)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation encryption-test (added-strand keyserver 2)
+    (enc t l k b (ltk a ks)) (0 1))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat b a))
+      (send (cat (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks))))))
+  (label 2)
+  (parent 0)
+  (unrealized (0 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l t-0 l-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (defstrand resp 2 (k k) (t t-0) (t-prime t-prime) (l l-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 3)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation encryption-test (added-strand resp 2) (enc t-prime k)
+    (0 3))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat a b))
+      (send (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks)))))
+    ((recv (cat (enc a-0 t-0 k) (enc t-0 l-0 k a-0 (ltk b-0 ks-0))))
+      (send (enc t-prime k))))
+  (label 3)
+  (parent 1)
+  (unrealized (2 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l text) (a b ks name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 3)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation encryption-test (added-listener k) (enc t-prime k) (0 3))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat a b))
+      (send (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks)))))
+    ((recv k) (send k)))
+  (label 4)
+  (parent 1)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l t-0 l-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a b) (b a) (ks ks))
+  (defstrand resp 2 (k k) (t t-0) (t-prime t-prime) (l l-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 3)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation encryption-test (added-strand resp 2) (enc t-prime k)
+    (0 3))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat b a))
+      (send (cat (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))))
+    ((recv (cat (enc a-0 t-0 k) (enc t-0 l-0 k a-0 (ltk b-0 ks-0))))
+      (send (enc t-prime k))))
+  (label 5)
+  (parent 2)
+  (unrealized (2 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l text) (a b ks name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a b) (b a) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (0 3)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation encryption-test (added-listener k) (enc t-prime k) (0 3))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat b a))
+      (send (cat (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))))
+    ((recv k) (send k)))
+  (label 6)
+  (parent 2)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l l-0 text) (a b ks b-0 ks-0 name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l-0) (a a) (b b-0)
+    (ks ks-0))
+  (precedes ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation encryption-test (displaced 3 0 init 3) (enc a-0 t-0 k)
+    (2 0))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat a b))
+      (send (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks)))))
+    ((recv (cat (enc a t k) (enc t l-0 k a (ltk b-0 ks-0))))
+      (send (enc t-prime k))))
+  (label 7)
+  (parent 3)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l t-0 l-0 l-1 text)
+    (a b ks a-0 b-0 ks-0 b-1 ks-1 name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (defstrand resp 2 (k k) (t t-0) (t-prime t-prime) (l l-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (defstrand init 3 (k k) (t t-0) (l l-1) (a a-0) (b b-1) (ks ks-1))
+  (precedes ((1 1) (0 1)) ((1 1) (3 1)) ((2 1) (0 3)) ((3 2) (2 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 3) (enc a-0 t-0 k)
+    (2 0))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat a b))
+      (send (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks)))))
+    ((recv (cat (enc a-0 t-0 k) (enc t-0 l-0 k a-0 (ltk b-0 ks-0))))
+      (send (enc t-prime k)))
+    ((send (cat a-0 b-1))
+      (recv
+        (cat (enc t-0 l-1 k b-1 (ltk a-0 ks-1))
+          (enc t-0 l-1 k a-0 (ltk b-1 ks-1))))
+      (send (cat (enc a-0 t-0 k) (enc t-0 l-1 k a-0 (ltk b-1 ks-1))))))
+  (label 8)
+  (parent 3)
+  (unrealized (3 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l t-0 l-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (defstrand resp 2 (k k) (t t-0) (t-prime t-prime) (l l-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (deflistener k)
+  (precedes ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3)) ((3 1) (2 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation encryption-test (added-listener k) (enc a-0 t-0 k) (2 0))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat a b))
+      (send (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks)))))
+    ((recv (cat (enc a-0 t-0 k) (enc t-0 l-0 k a-0 (ltk b-0 ks-0))))
+      (send (enc t-prime k))) ((recv k) (send k)))
+  (label 9)
+  (parent 3)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l l-0 text) (a b ks b-0 ks-0 name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a b) (b a) (ks ks))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l-0) (a a) (b b-0)
+    (ks ks-0))
+  (precedes ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation encryption-test (displaced 3 0 init 3) (enc a-0 t-0 k)
+    (2 0))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat b a))
+      (send (cat (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))))
+    ((recv (cat (enc a t k) (enc t l-0 k a (ltk b-0 ks-0))))
+      (send (enc t-prime k))))
+  (label 10)
+  (parent 5)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l t-0 l-0 l-1 text)
+    (a b ks a-0 b-0 ks-0 b-1 ks-1 name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a b) (b a) (ks ks))
+  (defstrand resp 2 (k k) (t t-0) (t-prime t-prime) (l l-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (defstrand init 3 (k k) (t t-0) (l l-1) (a a-0) (b b-1) (ks ks-1))
+  (precedes ((1 1) (0 1)) ((1 1) (3 1)) ((2 1) (0 3)) ((3 2) (2 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 3) (enc a-0 t-0 k)
+    (2 0))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat b a))
+      (send (cat (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))))
+    ((recv (cat (enc a-0 t-0 k) (enc t-0 l-0 k a-0 (ltk b-0 ks-0))))
+      (send (enc t-prime k)))
+    ((send (cat a-0 b-1))
+      (recv
+        (cat (enc t-0 l-1 k b-1 (ltk a-0 ks-1))
+          (enc t-0 l-1 k a-0 (ltk b-1 ks-1))))
+      (send (cat (enc a-0 t-0 k) (enc t-0 l-1 k a-0 (ltk b-1 ks-1))))))
+  (label 11)
+  (parent 5)
+  (unrealized (3 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l t-0 l-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a b) (b a) (ks ks))
+  (defstrand resp 2 (k k) (t t-0) (t-prime t-prime) (l l-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (deflistener k)
+  (precedes ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (0 3)) ((3 1) (2 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation encryption-test (added-listener k) (enc a-0 t-0 k) (2 0))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat b a))
+      (send (cat (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))))
+    ((recv (cat (enc a-0 t-0 k) (enc t-0 l-0 k a-0 (ltk b-0 ks-0))))
+      (send (enc t-prime k))) ((recv k) (send k)))
+  (label 12)
+  (parent 5)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l text) (a b ks name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (precedes ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation nonce-test (contracted (b-0 b) (ks-0 ks) (l-0 l)) k (2 0)
+    (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat a b))
+      (send (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks)))))
+    ((recv (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (send (enc t-prime k))))
+  (label 13)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (ks ks) (t t) (t-prime t-prime) (l l) (k k))))
+  (origs (k (1 1))))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l l-0 text) (a b ks b-0 ks-0 name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l-0) (a a) (b b-0)
+    (ks ks-0))
+  (defstrand init 3 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (precedes ((1 1) (0 1)) ((1 1) (3 1)) ((2 1) (0 3)) ((3 2) (2 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation nonce-test
+    (contracted (a-0 a) (t-0 t) (b-1 b) (ks-1 ks) (l-1 l)) k (3 1)
+    (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat a b))
+      (send (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks)))))
+    ((recv (cat (enc a t k) (enc t l-0 k a (ltk b-0 ks-0))))
+      (send (enc t-prime k)))
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))))
+  (label 14)
+  (parent 8)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l l-0 text) (a b ks b-0 ks-0 name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l-0) (a b) (b b-0)
+    (ks ks-0))
+  (defstrand init 3 (k k) (t t) (l l) (a b) (b a) (ks ks))
+  (precedes ((1 1) (0 1)) ((1 1) (3 1)) ((2 1) (0 3)) ((3 2) (2 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation nonce-test
+    (contracted (a-0 b) (t-0 t) (b-1 a) (ks-1 ks) (l-1 l)) k (3 1)
+    (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat a b))
+      (send (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks)))))
+    ((recv (cat (enc b t k) (enc t l-0 k b (ltk b-0 ks-0))))
+      (send (enc t-prime k)))
+    ((send (cat b a))
+      (recv (cat (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks))))
+      (send (cat (enc b t k) (enc t l k b (ltk a ks))))))
+  (label 15)
+  (parent 8)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l text) (a b ks name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a b) (b a) (ks ks))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (precedes ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation nonce-test (contracted (b-0 b) (ks-0 ks) (l-0 l)) k (2 0)
+    (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat b a))
+      (send (cat (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))))
+    ((recv (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (send (enc t-prime k))))
+  (label 16)
+  (parent 10)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (ks ks) (t t) (t-prime t-prime) (l l) (k k))))
+  (origs (k (1 1))))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l l-0 text) (a b ks b-0 ks-0 name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a b) (b a) (ks ks))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l-0) (a a) (b b-0)
+    (ks ks-0))
+  (defstrand init 3 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (precedes ((1 1) (0 1)) ((1 1) (3 1)) ((2 1) (0 3)) ((3 2) (2 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation nonce-test
+    (contracted (a-0 a) (t-0 t) (b-1 b) (ks-1 ks) (l-1 l)) k (3 1)
+    (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat b a))
+      (send (cat (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))))
+    ((recv (cat (enc a t k) (enc t l-0 k a (ltk b-0 ks-0))))
+      (send (enc t-prime k)))
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))))
+  (label 17)
+  (parent 11)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l l-0 text) (a b ks b-0 ks-0 name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a b) (b a) (ks ks))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l-0) (a b) (b b-0)
+    (ks ks-0))
+  (defstrand init 3 (k k) (t t) (l l) (a b) (b a) (ks ks))
+  (precedes ((1 1) (0 1)) ((1 1) (3 1)) ((2 1) (0 3)) ((3 2) (2 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation nonce-test
+    (contracted (a-0 b) (t-0 t) (b-1 a) (ks-1 ks) (l-1 l)) k (3 1)
+    (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat b a))
+      (send (cat (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))))
+    ((recv (cat (enc b t k) (enc t l-0 k b (ltk b-0 ks-0))))
+      (send (enc t-prime k)))
+    ((send (cat b a))
+      (recv (cat (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks))))
+      (send (cat (enc b t k) (enc t l k b (ltk a ks))))))
+  (label 18)
+  (parent 11)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l text) (a b ks name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (precedes ((1 1) (0 1)) ((1 1) (3 1)) ((2 1) (0 3)) ((3 2) (2 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation nonce-test (contracted (b-0 b) (ks-0 ks) (l-0 l)) k (2 0)
+    (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat a b))
+      (send (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks)))))
+    ((recv (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (send (enc t-prime k)))
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))))
+  (label 19)
+  (parent 14)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (ks ks) (t t) (t-prime t-prime) (l l) (k k))))
+  (origs (k (1 1))))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l text) (a b ks name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l) (a b) (b a)
+    (ks ks))
+  (defstrand init 3 (k k) (t t) (l l) (a b) (b a) (ks ks))
+  (precedes ((1 1) (0 1)) ((1 1) (3 1)) ((2 1) (0 3)) ((3 2) (2 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation nonce-test (contracted (b-0 a) (ks-0 ks) (l-0 l)) k (2 0)
+    (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat a b))
+      (send (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks)))))
+    ((recv (cat (enc b t k) (enc t l k b (ltk a ks))))
+      (send (enc t-prime k)))
+    ((send (cat b a))
+      (recv (cat (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks))))
+      (send (cat (enc b t k) (enc t l k b (ltk a ks))))))
+  (label 20)
+  (parent 15)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (ks ks) (t t) (t-prime t-prime) (l l) (k k))))
+  (origs (k (1 1))))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l text) (a b ks name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a b) (b a) (ks ks))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (precedes ((1 1) (0 1)) ((1 1) (3 1)) ((2 1) (0 3)) ((3 2) (2 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation nonce-test (contracted (b-0 b) (ks-0 ks) (l-0 l)) k (2 0)
+    (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat b a))
+      (send (cat (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))))
+    ((recv (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (send (enc t-prime k)))
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))))
+  (label 21)
+  (parent 17)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (ks ks) (t t) (t-prime t-prime) (l l) (k k))))
+  (origs (k (1 1))))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l text) (a b ks name))
+  (defstrand init 4 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a b) (b a) (ks ks))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l) (a b) (b a)
+    (ks ks))
+  (defstrand init 3 (k k) (t t) (l l) (a b) (b a) (ks ks))
+  (precedes ((1 1) (0 1)) ((1 1) (3 1)) ((2 1) (0 3)) ((3 2) (2 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation nonce-test (contracted (b-0 a) (ks-0 ks) (l-0 l)) k (2 0)
+    (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))
+  (traces
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k)))
+    ((recv (cat b a))
+      (send (cat (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))))
+    ((recv (cat (enc b t k) (enc t l k b (ltk a ks))))
+      (send (enc t-prime k)))
+    ((send (cat b a))
+      (recv (cat (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks))))
+      (send (cat (enc b t k) (enc t l k b (ltk a ks))))))
+  (label 22)
+  (parent 18)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (ks ks) (t t) (t-prime t-prime) (l l) (k k))))
+  (origs (k (1 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol kerberos basic
+  (defrole init
+    (vars (a b ks name) (t t-prime l text) (k skey))
+    (trace (send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k))))
+  (defrole resp
+    (vars (a b ks name) (t t-prime l text) (k skey))
+    (trace (recv (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (send (enc t-prime k))))
+  (defrole keyserver
+    (vars (a b ks name) (t l text) (k skey))
+    (trace (recv (cat a b))
+      (send (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks)))))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l text) (a b ks name))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (non-orig (ltk a ks) (ltk b ks))
+  (traces
+    ((recv (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (send (enc t-prime k))))
+  (label 23)
+  (unrealized (0 0))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l text) (a b ks name))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a b) (b a) (ks ks))
+  (precedes ((1 1) (0 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation encryption-test (added-strand keyserver 2)
+    (enc t l k a (ltk b ks)) (0 0))
+  (traces
+    ((recv (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (send (enc t-prime k)))
+    ((recv (cat b a))
+      (send (cat (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks))))))
+  (label 24)
+  (parent 23)
+  (unrealized (0 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l text) (a b ks name))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (precedes ((1 1) (0 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation encryption-test (added-strand keyserver 2)
+    (enc t l k a (ltk b ks)) (0 0))
+  (traces
+    ((recv (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (send (enc t-prime k)))
+    ((recv (cat a b))
+      (send (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))))
+  (label 25)
+  (parent 23)
+  (unrealized (0 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l l-0 text) (a b ks b-0 ks-0 name))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a b) (b a) (ks ks))
+  (defstrand init 3 (k k) (t t) (l l-0) (a a) (b b-0) (ks ks-0))
+  (precedes ((1 1) (2 1)) ((2 2) (0 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 3) (enc a t k) (0 0))
+  (traces
+    ((recv (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (send (enc t-prime k)))
+    ((recv (cat b a))
+      (send (cat (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))))
+    ((send (cat a b-0))
+      (recv
+        (cat (enc t l-0 k b-0 (ltk a ks-0))
+          (enc t l-0 k a (ltk b-0 ks-0))))
+      (send (cat (enc a t k) (enc t l-0 k a (ltk b-0 ks-0))))))
+  (label 26)
+  (parent 24)
+  (unrealized (2 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l text) (a b ks name))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a b) (b a) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (2 0)) ((2 1) (0 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation encryption-test (added-listener k) (enc a t k) (0 0))
+  (traces
+    ((recv (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (send (enc t-prime k)))
+    ((recv (cat b a))
+      (send (cat (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))))
+    ((recv k) (send k)))
+  (label 27)
+  (parent 24)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l l-0 text) (a b ks b-0 ks-0 name))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (t t) (l l-0) (a a) (b b-0) (ks ks-0))
+  (precedes ((1 1) (2 1)) ((2 2) (0 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 3) (enc a t k) (0 0))
+  (traces
+    ((recv (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (send (enc t-prime k)))
+    ((recv (cat a b))
+      (send (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks)))))
+    ((send (cat a b-0))
+      (recv
+        (cat (enc t l-0 k b-0 (ltk a ks-0))
+          (enc t l-0 k a (ltk b-0 ks-0))))
+      (send (cat (enc a t k) (enc t l-0 k a (ltk b-0 ks-0))))))
+  (label 28)
+  (parent 25)
+  (unrealized (2 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l text) (a b ks name))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (2 0)) ((2 1) (0 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation encryption-test (added-listener k) (enc a t k) (0 0))
+  (traces
+    ((recv (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (send (enc t-prime k)))
+    ((recv (cat a b))
+      (send (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks)))))
+    ((recv k) (send k)))
+  (label 29)
+  (parent 25)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l text) (a b ks name))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a b) (b a) (ks ks))
+  (defstrand init 3 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (precedes ((1 1) (2 1)) ((2 2) (0 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation nonce-test (contracted (b-0 b) (ks-0 ks) (l-0 l)) k (2 1)
+    (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))
+  (traces
+    ((recv (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (send (enc t-prime k)))
+    ((recv (cat b a))
+      (send (cat (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))))
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))))
+  (label 30)
+  (parent 26)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (ks ks) (t t) (t-prime t-prime) (l l) (k k))))
+  (origs (k (1 1))))
+
+(defskeleton kerberos
+  (vars (k skey) (t t-prime l text) (a b ks name))
+  (defstrand resp 2 (k k) (t t) (t-prime t-prime) (l l) (a a) (b b)
+    (ks ks))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (precedes ((1 1) (2 1)) ((2 2) (0 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (operation nonce-test (contracted (b-0 b) (ks-0 ks) (l-0 l)) k (2 1)
+    (enc t l k a (ltk b ks)) (enc t l k b (ltk a ks)))
+  (traces
+    ((recv (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (send (enc t-prime k)))
+    ((recv (cat a b))
+      (send (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks)))))
+    ((send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))))
+  (label 31)
+  (parent 28)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (ks ks) (t t) (t-prime t-prime) (l l) (k k))))
+  (origs (k (1 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol kerberos basic
+  (defrole init
+    (vars (a b ks name) (t t-prime l text) (k skey))
+    (trace (send (cat a b))
+      (recv (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))
+      (send (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (recv (enc t-prime k))))
+  (defrole resp
+    (vars (a b ks name) (t t-prime l text) (k skey))
+    (trace (recv (cat (enc a t k) (enc t l k a (ltk b ks))))
+      (send (enc t-prime k))))
+  (defrole keyserver
+    (vars (a b ks name) (t l text) (k skey))
+    (trace (recv (cat a b))
+      (send (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks)))))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton kerberos
+  (vars (k skey) (t l text) (a b ks name))
+  (defstrand keyserver 2 (k k) (t t) (l l) (a a) (b b) (ks ks))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k)
+  (traces
+    ((recv (cat a b))
+      (send (cat (enc t l k b (ltk a ks)) (enc t l k a (ltk b ks))))))
+  (label 32)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (ks ks) (t t) (l l) (k k))))
+  (origs (k (0 1))))
+
+(comment "Nothing left to do")
diff --git a/tst/locn_envelope.scm b/tst/locn_envelope.scm
new file mode 100644
--- /dev/null
+++ b/tst/locn_envelope.scm
@@ -0,0 +1,254 @@
+(herald "Envelope Protocol, location-based version"
+	(bound 30)
+	(limit 1200))
+
+;;; This file analyzes the Envelope Protocol using three rules sets.
+;;; For each rule set, it checks three scenarios.  In every scenario,
+;;; an Alice strand runs to completion.  In the first scenario, the
+;;; obtain token is listened for.  In the second, a listener for the
+;;; refusal token is included.  In the third scenario, both listeners
+;;; are included.  The third scenario should be impossible, but rules
+;;; are required to accurately model state.
+;;;
+;;; The first rule set is empty and the answer to the third scenario
+;;; shows a case is which the TPM's PCR state splits.  The second rule
+;;; set forces TPM extends to be linearly ordered.  However, in this
+;;; case, there are two TPMs when there should be one as Alice uses
+;;; one TPM storage key to communicate with both TPMs.  The final rule
+;;; set includes a rule about storage keys and thus accurately models
+;;; state.
+;;;
+;;; Macros are used to avoid copying roles and scenarios.
+
+;; This is the refusal token
+(defmacro (refuse pcr-id n v k aik)
+  (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+
+;;; This protocol tracks the TPM's PCR state
+;;; by sending a message with the current PCR
+;;; value encrypted by a hashed secret key.
+;;; The hash is used to prevent a confusion with
+;;; the key for an encrypted session.
+
+(defmacro (roles)
+  (^
+   ;; Power on sets the pcr to 0
+   (defrole tpm-power-on
+     (vars (current-value mesg) (pcr locn) (tpm chan))
+     (trace
+      (recv tpm "power on")
+      (load pcr current-value)
+      (stor pcr "0")))
+
+   ;; The extend command takes the value to extend and the current PCR
+   ;; value and produces the hash of the two values.
+   ;;     (defrole tpm-extend
+   ;;        (vars (value current-value mesg) (pcr locn))
+   ;;        (trace
+   ;;         (recv (cat "extend" value))
+   ;;         (recv pcr current-value)		    ;; MSR lhs (deleted)
+   ;;         (stor pcr (hash current-value value)) ;; MSR rhs
+   ;;         (send "ext ok")))
+
+   ;; The extend command can also occur within an
+   ;; encrypted session.  We assume some session key already exists
+   (defrole tpm-extend-enc
+     (vars (value current-value mesg) (pcr-id text) (pcr locn) (tpm chan))
+     (trace
+      (recv tpm (cat "extend" pcr-id value))
+      (load pcr current-value)		    ;; MSR lhs (deleted)
+      (stor pcr (hash current-value value)) ;; MSR rhs
+      (send "ext ok")))
+
+   ;; The TPM must retrieve the current pcr value.  Notice that
+   ;; the nonce is of sort mesg, which allows non-atomic values.
+   (defrole tpm-quote
+     (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn) (tpm chan))
+     (trace
+      (recv tpm (cat "quote" pcr-id nonce))
+      (load pcr current-value) ;; MSR lhs (not deleted)
+      (send (enc "quote" pcr-id current-value nonce aik))))
+
+   ;; This role creates a key whose use is restricted to a
+   ;; requested pcr value (since we only model one pcr).
+   ;; It doesn't create or change any TPM state.
+   (defrole tpm-create-key
+     (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
+     (trace
+      (recv tpm (cat "create-req" pcr-id pcrval))
+      (send (enc "created" k pcr-id pcrval aik))) ;; no tpm state is set
+     (uniq-orig k)
+     (non-orig (invk k))
+     (auth tpm))
+
+   ;; This role receives an encryption and a previously
+   ;; made key structure that restricts the decryption key
+   ;; to be used with a certain pcr value.  It retrieves the
+   ;; current value and checks that it matches before decrypting.
+   (defrole tpm-decrypt
+     (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn) (tpm chan))
+     (trace
+      (recv tpm (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcr-id current-value aik))
+      (load pcr current-value) ;; MSR lhs (not deleted)
+      (send m))
+     (non-orig aik))
+
+   ;; Alice extends a pcr with a fresh nonce in an encrypted
+   ;; session.  She has the TPM create a new key whose use is
+   ;; bound to the hash of pcr value she just created with the
+   ;; string "obtain".  She then encrypts her fresh secret with
+   ;; this newly created key.
+   (defrole alice
+     (vars (n v data) (pcr-id text) (k aik akey) (tpm chan))
+     (trace
+      (send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req"pcr-id (hash (hash "0" n) "obtain")))
+      ;; (enc "create key" (hash (hash "0" n) "obtain") esk)
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+     (neq (k aik))
+     (uniq-orig n v)
+     (non-orig aik)
+     (conf tpm))))
+
+(defmacro (genStV-rules)
+  (^
+   (defrule genStV-if-hashed-tpm-power-on
+     (forall
+      ((z strd) (v1 v2 mesg))
+      (implies
+       (and
+	(p "tpm-power-on" z 2)
+	(p "tpm-power-on" "current-value" z (hash v1 v2)))
+       (gen-st (hash v1 v2)))))
+
+;;      (defrule genStV-if-hashed-tpm-extend
+;;        (forall
+;;         ((z strd) (v1 v2 mesg))
+;;         (implies
+;;          (and
+;;   	(p "tpm-extend" z 2)
+;;   	(p "tpm-extend" "current-value" z (hash v1 v2)))
+;;          (gen-st (hash v1 v2)))))
+
+   (defrule genStV-if-hashed-tpm-extend-enc
+     (forall
+      ((z strd) (v1 v2 mesg))
+      (implies
+       (and
+	(p "tpm-extend-enc" z 2)
+	(p "tpm-extend-enc" "current-value" z (hash v1 v2)))
+       (gen-st (hash v1 v2)))))
+
+   (defrule genStV-if-hashed-tpm-decrypt
+     (forall
+      ((z strd) (v1 v2 mesg))
+      (implies
+       (and
+	(p "tpm-decrypt" z 3)
+	(p "tpm-decrypt" "current-value" z (hash v1 v2)))
+       (gen-st (hash v1 v2)))))
+
+   (defrule genStV-if-hashed-tpm-quote
+     (forall
+      ((z strd) (v1 v2 mesg))
+      (implies
+       (and
+	(p "tpm-quote" z 2)
+	(p "tpm-quote" "current-value" z (hash v1 v2)))
+       (gen-st (hash v1 v2)))))))
+
+(defprotocol envelope basic
+  (roles)
+  (genStV-rules)
+  )
+
+(defskeleton envelope
+  (vars (v data))
+  (deflistener v)
+  (defstrand alice 4 (v v)))
+
+(defskeleton envelope
+  (vars (n v data) (k aik akey) (pcr-id text))
+  (deflistener (refuse pcr-id n v k aik))
+  (defstrand alice 4 (n n) (v v) (k k) (aik aik)))
+
+(defskeleton envelope
+  (vars (n v data) (k aik akey) (pcr-id text))
+  (deflistener (refuse pcr-id n v k aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (k k) (aik aik)))
+
+(defprotocol envelope-plus basic
+  (roles)
+  (genStV-rules)
+
+  (defrule ordered-extends
+    (forall ((y z strd) (pcr locn))
+	    (implies
+	     (and (p "tpm-extend-enc" y 3)
+		  (p "tpm-extend-enc" z 3)
+		  (p "tpm-extend-enc" "pcr" y pcr)
+		  (p "tpm-extend-enc" "pcr" z pcr))
+	     (or (= y z)
+		 (prec y 2 z 1)
+		 (prec z 2 y 1))))))
+
+(defskeleton envelope-plus
+  (vars (v data))
+  (deflistener v)
+  (defstrand alice 4 (v v)))
+
+(defskeleton envelope-plus
+  (vars (n v data) (k aik akey) (pcr-id text))
+  (deflistener (refuse pcr-id n v k aik))
+  (defstrand alice 4 (n n) (v v) (k k) (aik aik)))
+
+(defskeleton envelope-plus
+  (vars (n v data) (k aik akey) (pcr-id text))
+  (deflistener (refuse pcr-id n v k aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (k k) (aik aik)))
+
+(defprotocol envelope-plus-2 basic
+  (roles)
+  (genStV-rules)
+
+  ;;   (defrule ordered-extends
+;;       (forall ((y z strd) (pcr locn))
+;;   	    (implies
+;;   	     (and (p "tpm-extend-enc" y 3)
+;;   		  (p "tpm-extend-enc" z 3)
+;;   		  (p "tpm-extend-enc" "pcr" y pcr)
+;;   		  (p "tpm-extend-enc" "pcr" z pcr))
+;;   	     (or (= y z)
+;;   		 (prec y 2 z 1)
+;;   		 (prec z 2 y 1)))))
+
+  (defrule pcr-id-identifies-pcr
+    (forall ((y z strd) (pcr-id text) (pcr pcr-0 locn))
+	    (implies
+	     (and (p "tpm-extend-enc" y 3)
+		  (p "tpm-extend-enc" z 3)
+		  (p "tpm-extend-enc" "pcr-id" y pcr-id)
+		  (p "tpm-extend-enc" "pcr-id" z pcr-id)
+		  (p "tpm-extend-enc" "pcr" y pcr)
+		  (p "tpm-extend-enc" "pcr" z pcr-0))
+	     (= pcr pcr-0)))))
+
+(defskeleton envelope-plus-2
+  (vars (v data))
+  (deflistener v)
+  (defstrand alice 4 (v v)))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (k aik akey) (pcr-id text))
+  (deflistener (refuse pcr-id n v k aik))
+  (defstrand alice 4 (n n) (v v) (k k) (aik aik)))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (k aik akey) (pcr-id text))
+  (deflistener (refuse pcr-id n v k aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (k k) (aik aik)))
diff --git a/tst/locn_envelope.tst b/tst/locn_envelope.tst
new file mode 100644
--- /dev/null
+++ b/tst/locn_envelope.tst
@@ -0,0 +1,5076 @@
+(herald "Envelope Protocol, location-based version" (bound 30)
+  (limit 1200))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/locn_envelope.scm")
+(comment "Step count limited to 1200")
+(comment "Strand count bounded at 30")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (current-value mesg) (pcr locn) (tpm chan))
+    (trace (recv tpm "power on") (load pcr current-value)
+      (stor pcr "0")))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcr-id text) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "extend" pcr-id value))
+      (load pcr current-value) (stor pcr (hash current-value value))
+      (send "ext ok")))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "quote" pcr-id nonce))
+      (load pcr current-value)
+      (send (enc "quote" pcr-id current-value nonce aik))))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
+    (trace (recv tpm (cat "create-req" pcr-id pcrval))
+      (send (enc "created" k pcr-id pcrval aik)))
+    (non-orig (invk k))
+    (uniq-orig k)
+    (auth tpm))
+  (defrole tpm-decrypt
+    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcr-id current-value aik))
+      (load pcr current-value) (send m))
+    (non-orig aik))
+  (defrole alice
+    (vars (n v data) (pcr-id text) (k aik akey) (tpm chan))
+    (trace (send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig aik)
+    (uniq-orig n v)
+    (conf tpm)
+    (neq (k aik)))
+  (defrule genStV-if-hashed-tpm-power-on
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-power-on" z (idx 2))
+          (p "tpm-power-on" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-extend-enc
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-extend-enc" z (idx 2))
+          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-decrypt
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-decrypt" z (idx 3))
+          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-quote
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-quote" z (idx 2))
+          (p "tpm-quote" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_tpm-power-on-at-2
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-power-on-at-1
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_tpm-extend-enc-at-2
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-extend-enc-at-1
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 3)) (trans z (idx 1))))))
+
+(defskeleton envelope
+  (vars (v n data) (pcr-id text) (k aik akey) (tpm chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (non-orig aik)
+  (uniq-orig v n)
+  (conf tpm)
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 0)
+  (unrealized (0 0) (1 2))
+  (preskeleton)
+  (origs (v (1 3)) (n (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (v n data) (pcr-id text) (k aik akey) (tpm chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (precedes ((1 3) (0 0)))
+  (non-orig aik)
+  (uniq-orig v n)
+  (conf tpm)
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 2))
+  (origs (v (1 3)) (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (pcr-id text) (k aik akey) (tpm tpm-0 chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
+  (precedes ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig aik (invk k))
+  (uniq-orig v n k)
+  (conf tpm)
+  (auth tpm-0)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik) (1 2))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (pcr-id text) (k aik akey) (tpm chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (precedes ((1 1) (2 0)) ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig aik (invk k))
+  (uniq-orig v n k)
+  (conf tpm)
+  (auth tpm)
+  (operation channel-test (displaced 3 1 alice 2)
+    (ch-msg tpm-0
+      (cat "create-req" pcr-id (hash (hash "0" n) "obtain"))) (2 0))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (current-value mesg) (v n data) (pcr-id pcr-id-0 text)
+    (k aik aik-0 akey) (pt pval) (tpm tpm-0 chan) (pcr locn))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
+    (pcr-id pcr-id-0) (k k) (aik aik-0) (tpm tpm-0) (pcr pcr))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0)))
+  (non-orig aik aik-0 (invk k))
+  (uniq-orig v n k)
+  (conf tpm)
+  (auth tpm)
+  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 current-value aik-0))
+      (load pcr (cat pt current-value)) (send v)))
+  (label 4)
+  (parent 3)
+  (unrealized (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (pcr-id text) (k aik akey) (pt pval) (tpm tpm-0 chan)
+    (pcr locn))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0)))
+  (non-orig aik (invk k))
+  (uniq-orig v n k)
+  (gen-st (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (rule genStV-if-hashed-tpm-decrypt)
+  (operation encryption-test (displaced 4 2 tpm-create-key 2)
+    (enc "created" k pcr-id-0 current-value aik-0) (3 1))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v)))
+  (label 5)
+  (parent 4)
+  (unrealized (3 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (pcr-id pcr-id-0 text) (k aik akey) (pt pt-0 pval)
+    (tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-0) (tpm tpm-1)
+    (pcr pcr))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 2) (3 2)))
+  (non-orig aik (invk k))
+  (uniq-orig v n k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((4 2) (3 2)))
+  (rule genStV-if-hashed-tpm-extend-enc trRl_tpm-extend-enc-at-1
+    trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))) (3 2))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-0 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain")))))
+  (label 6)
+  (parent 5)
+  (unrealized (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (pcr-id pcr-id-0 pcr-id-1 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-0) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-1) (tpm tpm-2) (pcr pcr))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)))
+  (non-orig aik (invk k))
+  (uniq-orig v n k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((4 2) (3 2)) ((5 2) (4 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr (cat pt-0 (hash "0" n))) (4 1))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-0 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm-2 (cat "extend" pcr-id-1 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 7)
+  (parent 6)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (pcr-id pcr-id-0 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-0) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id) (tpm tpm) (pcr pcr))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)))
+  (non-orig aik (invk k))
+  (uniq-orig v n k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((4 2) (3 2)) ((5 2) (4 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation nonce-test (contracted (pcr-id-1 pcr-id) (tpm-2 tpm)) n
+    (5 0) (ch-msg tpm (cat "extend" pcr-id n)))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-0 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm (cat "extend" pcr-id n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 8)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0 1) ((v v) (n n) (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))))
+  (origs (pt-0 (5 2)) (pt (4 2)) (k (2 1)) (n (1 0)) (v (1 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (current-value mesg) (pcr locn) (tpm chan))
+    (trace (recv tpm "power on") (load pcr current-value)
+      (stor pcr "0")))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcr-id text) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "extend" pcr-id value))
+      (load pcr current-value) (stor pcr (hash current-value value))
+      (send "ext ok")))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "quote" pcr-id nonce))
+      (load pcr current-value)
+      (send (enc "quote" pcr-id current-value nonce aik))))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
+    (trace (recv tpm (cat "create-req" pcr-id pcrval))
+      (send (enc "created" k pcr-id pcrval aik)))
+    (non-orig (invk k))
+    (uniq-orig k)
+    (auth tpm))
+  (defrole tpm-decrypt
+    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcr-id current-value aik))
+      (load pcr current-value) (send m))
+    (non-orig aik))
+  (defrole alice
+    (vars (n v data) (pcr-id text) (k aik akey) (tpm chan))
+    (trace (send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig aik)
+    (uniq-orig n v)
+    (conf tpm)
+    (neq (k aik)))
+  (defrule genStV-if-hashed-tpm-power-on
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-power-on" z (idx 2))
+          (p "tpm-power-on" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-extend-enc
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-extend-enc" z (idx 2))
+          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-decrypt
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-decrypt" z (idx 3))
+          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-quote
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-quote" z (idx 2))
+          (p "tpm-quote" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_tpm-power-on-at-2
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-power-on-at-1
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_tpm-extend-enc-at-2
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-extend-enc-at-1
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 3)) (trans z (idx 1))))))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (non-orig aik)
+  (uniq-orig n v)
+  (conf tpm)
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 9)
+  (unrealized (0 0) (1 2))
+  (preskeleton)
+  (origs (v (1 3)) (n (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (precedes ((1 3) (0 0)))
+  (non-orig aik)
+  (uniq-orig n v)
+  (conf tpm)
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 10)
+  (parent 9)
+  (unrealized (0 0) (1 2))
+  (origs (v (1 3)) (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm tpm-0 chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
+  (precedes ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (conf tpm)
+  (auth tpm-0)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik) (1 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-0
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
+  (label 11)
+  (parent 10)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (precedes ((1 1) (2 0)) ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (conf tpm)
+  (auth tpm)
+  (operation channel-test (displaced 3 1 alice 2)
+    (ch-msg tpm-0
+      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))) (2 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
+  (label 12)
+  (parent 11)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (pt pval)
+    (tpm tpm-0 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (rule genStV-if-hashed-tpm-quote)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
+    (0 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
+      (load pcr (cat pt (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))))
+  (label 13)
+  (parent 12)
+  (unrealized (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 text) (k aik akey)
+    (pt pt-0 pval) (tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 2) (3 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((4 2) (3 1)))
+  (rule genStV-if-hashed-tpm-extend-enc trRl_tpm-extend-enc-at-1
+    trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr (cat pt (hash (hash "0" n) "refuse"))) (3 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
+      (load pcr (cat pt (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "refuse"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "refuse")))))
+  (label 14)
+  (parent 13)
+  (unrealized (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 pcr-id-2 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-2) (tpm tpm-2) (pcr pcr))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((4 2) (3 1)) ((5 2) (4 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr (cat pt-0 (hash "0" n))) (4 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
+      (load pcr (cat pt (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "refuse"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
+    ((recv tpm-2 (cat "extend" pcr-id-2 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 15)
+  (parent 14)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((4 2) (3 1)) ((5 2) (4 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation nonce-test (contracted (pcr-id-2 pcr-id-0) (tpm-2 tpm)) n
+    (5 0) (ch-msg tpm (cat "extend" pcr-id-0 n)))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
+      (load pcr (cat pt (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "refuse"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 16)
+  (parent 15)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
+        (tpm tpm))))
+  (origs (pt-0 (5 2)) (pt (4 2)) (n (1 0)) (k (2 1)) (v (1 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (current-value mesg) (pcr locn) (tpm chan))
+    (trace (recv tpm "power on") (load pcr current-value)
+      (stor pcr "0")))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcr-id text) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "extend" pcr-id value))
+      (load pcr current-value) (stor pcr (hash current-value value))
+      (send "ext ok")))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "quote" pcr-id nonce))
+      (load pcr current-value)
+      (send (enc "quote" pcr-id current-value nonce aik))))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
+    (trace (recv tpm (cat "create-req" pcr-id pcrval))
+      (send (enc "created" k pcr-id pcrval aik)))
+    (non-orig (invk k))
+    (uniq-orig k)
+    (auth tpm))
+  (defrole tpm-decrypt
+    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcr-id current-value aik))
+      (load pcr current-value) (send m))
+    (non-orig aik))
+  (defrole alice
+    (vars (n v data) (pcr-id text) (k aik akey) (tpm chan))
+    (trace (send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig aik)
+    (uniq-orig n v)
+    (conf tpm)
+    (neq (k aik)))
+  (defrule genStV-if-hashed-tpm-power-on
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-power-on" z (idx 2))
+          (p "tpm-power-on" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-extend-enc
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-extend-enc" z (idx 2))
+          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-decrypt
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-decrypt" z (idx 3))
+          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-quote
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-quote" z (idx 2))
+          (p "tpm-quote" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_tpm-power-on-at-2
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-power-on-at-1
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_tpm-extend-enc-at-2
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-extend-enc-at-1
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 3)) (trans z (idx 1))))))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (non-orig aik)
+  (uniq-orig n v)
+  (conf tpm)
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 17)
+  (unrealized (0 0) (1 0) (2 2))
+  (preskeleton)
+  (origs (v (2 3)) (n (2 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (precedes ((2 3) (0 0)) ((2 3) (1 0)))
+  (non-orig aik)
+  (uniq-orig n v)
+  (conf tpm)
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 18)
+  (parent 17)
+  (unrealized (0 0) (2 2))
+  (origs (v (2 3)) (n (2 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm tpm-0 chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
+  (precedes ((2 3) (0 0)) ((2 3) (1 0)) ((3 1) (2 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (conf tpm)
+  (auth tpm-0)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik) (2 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-0
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
+  (label 19)
+  (parent 18)
+  (unrealized (0 0) (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (1 0)) ((3 1) (2 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (conf tpm)
+  (auth tpm)
+  (operation channel-test (displaced 4 2 alice 2)
+    (ch-msg tpm-0
+      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))) (3 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
+  (label 20)
+  (parent 19)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (current-value mesg) (n v data) (pcr-id pcr-id-0 pcr-id-1 text)
+    (k aik aik-0 akey) (pt pval) (tpm tpm-0 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
+    (pcr-id pcr-id-1) (k k) (aik aik-0) (tpm tpm-0) (pcr pcr))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)))
+  (non-orig aik aik-0 (invk k))
+  (uniq-orig n v k)
+  (conf tpm)
+  (auth tpm)
+  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-1 current-value aik-0))
+      (load pcr (cat pt current-value)) (send v)))
+  (label 21)
+  (parent 20)
+  (unrealized (0 0) (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (pt pval)
+    (tpm tpm-0 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (rule genStV-if-hashed-tpm-decrypt)
+  (operation encryption-test (displaced 5 3 tpm-create-key 2)
+    (enc "created" k pcr-id-1 current-value aik-0) (4 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v)))
+  (label 22)
+  (parent 21)
+  (unrealized (0 0) (4 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 text) (k aik akey)
+    (pt pt-0 pval) (tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 2) (4 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)))
+  (rule genStV-if-hashed-tpm-extend-enc trRl_tpm-extend-enc-at-1
+    trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))) (4 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain")))))
+  (label 23)
+  (parent 22)
+  (unrealized (0 0) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 pcr-id-2 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-2) (tpm tpm-2) (pcr pcr))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)) ((6 2) (5 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr (cat pt-0 (hash "0" n))) (5 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm-2 (cat "extend" pcr-id-2 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 24)
+  (parent 23)
+  (unrealized (0 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)) ((6 2) (5 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation nonce-test (contracted (pcr-id-2 pcr-id-0) (tpm-2 tpm)) n
+    (6 0) (ch-msg tpm (cat "extend" pcr-id-0 n)))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 25)
+  (parent 24)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 text) (k aik akey)
+    (pt pt-0 pt-1 pt-2 pval) (tpm tpm-0 tpm-1 tpm-2 chan)
+    (pcr pcr-0 locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-2) (pcr pcr-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (7 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 2) (0 0)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain")
+    (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)) ((6 2) (5 1)))
+  (rule genStV-if-hashed-tpm-quote trRl_tpm-extend-enc-at-1
+    trRl_tpm-extend-enc-at-2)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
+    (0 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n))))
+    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
+      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))))
+  (label 26)
+  (parent 25)
+  (unrealized (7 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 pcr-id-2 text) (k aik akey)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
+    (pcr pcr-0 locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-2) (pcr pcr-0))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-2) (tpm tpm-3)
+    (pcr pcr-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (7 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 2) (0 0)) ((8 2) (7 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain")
+    (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)) ((6 2) (5 1)) ((8 2) (7 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (7 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n))))
+    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
+      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm-3 (cat "extend" pcr-id-2 "refuse"))
+      (load pcr-0 (cat pt-3 (hash "0" n)))
+      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
+  (label 27)
+  (parent 26)
+  (unrealized (8 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 pcr-id-2 pcr-id-3 text)
+    (k aik akey) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-2) (pcr pcr-0))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-2) (tpm tpm-3)
+    (pcr pcr-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-3) (tpm tpm-4) (pcr pcr-0))
+  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (7 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 2) (0 0)) ((8 2) (7 1)) ((9 2) (8 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain")
+    (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)) ((6 2) (5 1)) ((8 2) (7 1)) ((9 2) (8 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n))))
+    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
+      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm-3 (cat "extend" pcr-id-2 "refuse"))
+      (load pcr-0 (cat pt-3 (hash "0" n)))
+      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
+    ((recv tpm-4 (cat "extend" pcr-id-3 n)) (load pcr-0 (cat pt-4 "0"))
+      (stor pcr-0 (cat pt-3 (hash "0" n)))))
+  (label 28)
+  (parent 27)
+  (unrealized (9 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 pcr-id-2 text) (k aik akey)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-2) (pcr pcr-0))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-2) (tpm tpm-3)
+    (pcr pcr-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr-0))
+  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (7 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 2) (0 0)) ((8 2) (7 1)) ((9 2) (8 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain")
+    (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)) ((6 2) (5 1)) ((8 2) (7 1)) ((9 2) (8 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation nonce-test (contracted (pcr-id-3 pcr-id-0) (tpm-4 tpm)) n
+    (9 0) (ch-msg tpm (cat "extend" pcr-id-0 n)))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n))))
+    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
+      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm-3 (cat "extend" pcr-id-2 "refuse"))
+      (load pcr-0 (cat pt-3 (hash "0" n)))
+      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr-0 (cat pt-4 "0"))
+      (stor pcr-0 (cat pt-3 (hash "0" n)))))
+  (label 29)
+  (parent 28)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 2)
+      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
+        (tpm tpm))))
+  (origs (pt-3 (9 2)) (pt-2 (8 2)) (pt-0 (6 2)) (pt (5 2)) (k (3 1))
+    (n (2 0)) (v (2 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope-plus basic
+  (defrole tpm-power-on
+    (vars (current-value mesg) (pcr locn) (tpm chan))
+    (trace (recv tpm "power on") (load pcr current-value)
+      (stor pcr "0")))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcr-id text) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "extend" pcr-id value))
+      (load pcr current-value) (stor pcr (hash current-value value))
+      (send "ext ok")))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "quote" pcr-id nonce))
+      (load pcr current-value)
+      (send (enc "quote" pcr-id current-value nonce aik))))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
+    (trace (recv tpm (cat "create-req" pcr-id pcrval))
+      (send (enc "created" k pcr-id pcrval aik)))
+    (non-orig (invk k))
+    (uniq-orig k)
+    (auth tpm))
+  (defrole tpm-decrypt
+    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcr-id current-value aik))
+      (load pcr current-value) (send m))
+    (non-orig aik))
+  (defrole alice
+    (vars (n v data) (pcr-id text) (k aik akey) (tpm chan))
+    (trace (send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig aik)
+    (uniq-orig n v)
+    (conf tpm)
+    (neq (k aik)))
+  (defrule genStV-if-hashed-tpm-power-on
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-power-on" z (idx 2))
+          (p "tpm-power-on" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-extend-enc
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-extend-enc" z (idx 2))
+          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-decrypt
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-decrypt" z (idx 3))
+          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-quote
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-quote" z (idx 2))
+          (p "tpm-quote" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule ordered-extends
+    (forall ((y z strd) (pcr locn))
+      (implies
+        (and (p "tpm-extend-enc" y (idx 3))
+          (p "tpm-extend-enc" z (idx 3))
+          (p "tpm-extend-enc" "pcr" y pcr)
+          (p "tpm-extend-enc" "pcr" z pcr))
+        (or
+          (= y z)
+          (prec y (idx 2) z (idx 1))
+          (prec z (idx 2) y (idx 1))))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_tpm-power-on-at-2
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-power-on-at-1
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_tpm-extend-enc-at-2
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-extend-enc-at-1
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 3)) (trans z (idx 1))))))
+
+(defskeleton envelope-plus
+  (vars (v n data) (pcr-id text) (k aik akey) (tpm chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (non-orig aik)
+  (uniq-orig v n)
+  (conf tpm)
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 30)
+  (unrealized (0 0) (1 2))
+  (preskeleton)
+  (origs (v (1 3)) (n (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope-plus
+  (vars (v n data) (pcr-id text) (k aik akey) (tpm chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (precedes ((1 3) (0 0)))
+  (non-orig aik)
+  (uniq-orig v n)
+  (conf tpm)
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 31)
+  (parent 30)
+  (unrealized (1 2))
+  (origs (v (1 3)) (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (v n data) (pcr-id text) (k aik akey) (tpm tpm-0 chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
+  (precedes ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig aik (invk k))
+  (uniq-orig v n k)
+  (conf tpm)
+  (auth tpm-0)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik) (1 2))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))))
+  (label 32)
+  (parent 31)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (v n data) (pcr-id text) (k aik akey) (tpm chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (precedes ((1 1) (2 0)) ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig aik (invk k))
+  (uniq-orig v n k)
+  (conf tpm)
+  (auth tpm)
+  (operation channel-test (displaced 3 1 alice 2)
+    (ch-msg tpm-0
+      (cat "create-req" pcr-id (hash (hash "0" n) "obtain"))) (2 0))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))))
+  (label 33)
+  (parent 32)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (current-value mesg) (v n data) (pcr-id pcr-id-0 text)
+    (k aik aik-0 akey) (pt pval) (tpm tpm-0 chan) (pcr locn))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
+    (pcr-id pcr-id-0) (k k) (aik aik-0) (tpm tpm-0) (pcr pcr))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0)))
+  (non-orig aik aik-0 (invk k))
+  (uniq-orig v n k)
+  (conf tpm)
+  (auth tpm)
+  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 current-value aik-0))
+      (load pcr (cat pt current-value)) (send v)))
+  (label 34)
+  (parent 33)
+  (unrealized (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (v n data) (pcr-id text) (k aik akey) (pt pval) (tpm tpm-0 chan)
+    (pcr locn))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0)))
+  (non-orig aik (invk k))
+  (uniq-orig v n k)
+  (gen-st (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (rule genStV-if-hashed-tpm-decrypt)
+  (operation encryption-test (displaced 4 2 tpm-create-key 2)
+    (enc "created" k pcr-id-0 current-value aik-0) (3 1))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v)))
+  (label 35)
+  (parent 34)
+  (unrealized (3 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (v n data) (pcr-id pcr-id-0 text) (k aik akey) (pt pt-0 pval)
+    (tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-0) (tpm tpm-1)
+    (pcr pcr))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 2) (3 2)))
+  (non-orig aik (invk k))
+  (uniq-orig v n k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((4 2) (3 2)))
+  (rule genStV-if-hashed-tpm-extend-enc trRl_tpm-extend-enc-at-1
+    trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))) (3 2))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-0 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain")))))
+  (label 36)
+  (parent 35)
+  (unrealized (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (v n data) (pcr-id pcr-id-0 pcr-id-1 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-0) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-1) (tpm tpm-2) (pcr pcr))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)))
+  (non-orig aik (invk k))
+  (uniq-orig v n k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((4 2) (3 2)) ((5 2) (4 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr (cat pt-0 (hash "0" n))) (4 1))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-0 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm-2 (cat "extend" pcr-id-1 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 37)
+  (parent 36)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (v n data) (pcr-id pcr-id-0 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-0) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id) (tpm tpm) (pcr pcr))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)))
+  (non-orig aik (invk k))
+  (uniq-orig v n k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((4 2) (3 2)) ((5 2) (4 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation nonce-test (contracted (pcr-id-1 pcr-id) (tpm-2 tpm)) n
+    (5 0) (ch-msg tpm (cat "extend" pcr-id n)))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-0 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm (cat "extend" pcr-id n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 38)
+  (parent 37)
+  (realized)
+  (shape)
+  (maps ((0 1) ((v v) (n n) (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))))
+  (origs (pt-0 (5 2)) (pt (4 2)) (k (2 1)) (n (1 0)) (v (1 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope-plus basic
+  (defrole tpm-power-on
+    (vars (current-value mesg) (pcr locn) (tpm chan))
+    (trace (recv tpm "power on") (load pcr current-value)
+      (stor pcr "0")))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcr-id text) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "extend" pcr-id value))
+      (load pcr current-value) (stor pcr (hash current-value value))
+      (send "ext ok")))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "quote" pcr-id nonce))
+      (load pcr current-value)
+      (send (enc "quote" pcr-id current-value nonce aik))))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
+    (trace (recv tpm (cat "create-req" pcr-id pcrval))
+      (send (enc "created" k pcr-id pcrval aik)))
+    (non-orig (invk k))
+    (uniq-orig k)
+    (auth tpm))
+  (defrole tpm-decrypt
+    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcr-id current-value aik))
+      (load pcr current-value) (send m))
+    (non-orig aik))
+  (defrole alice
+    (vars (n v data) (pcr-id text) (k aik akey) (tpm chan))
+    (trace (send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig aik)
+    (uniq-orig n v)
+    (conf tpm)
+    (neq (k aik)))
+  (defrule genStV-if-hashed-tpm-power-on
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-power-on" z (idx 2))
+          (p "tpm-power-on" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-extend-enc
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-extend-enc" z (idx 2))
+          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-decrypt
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-decrypt" z (idx 3))
+          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-quote
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-quote" z (idx 2))
+          (p "tpm-quote" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule ordered-extends
+    (forall ((y z strd) (pcr locn))
+      (implies
+        (and (p "tpm-extend-enc" y (idx 3))
+          (p "tpm-extend-enc" z (idx 3))
+          (p "tpm-extend-enc" "pcr" y pcr)
+          (p "tpm-extend-enc" "pcr" z pcr))
+        (or
+          (= y z)
+          (prec y (idx 2) z (idx 1))
+          (prec z (idx 2) y (idx 1))))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_tpm-power-on-at-2
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-power-on-at-1
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_tpm-extend-enc-at-2
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-extend-enc-at-1
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 3)) (trans z (idx 1))))))
+
+(defskeleton envelope-plus
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (non-orig aik)
+  (uniq-orig n v)
+  (conf tpm)
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 39)
+  (unrealized (0 0) (1 2))
+  (preskeleton)
+  (origs (v (1 3)) (n (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope-plus
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (precedes ((1 3) (0 0)))
+  (non-orig aik)
+  (uniq-orig n v)
+  (conf tpm)
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 40)
+  (parent 39)
+  (unrealized (0 0) (1 2))
+  (origs (v (1 3)) (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm tpm-0 chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
+  (precedes ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (conf tpm)
+  (auth tpm-0)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik) (1 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-0
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
+  (label 41)
+  (parent 40)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (precedes ((1 1) (2 0)) ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (conf tpm)
+  (auth tpm)
+  (operation channel-test (displaced 3 1 alice 2)
+    (ch-msg tpm-0
+      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))) (2 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
+  (label 42)
+  (parent 41)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (pt pval)
+    (tpm tpm-0 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (rule genStV-if-hashed-tpm-quote)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
+    (0 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
+      (load pcr (cat pt (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))))
+  (label 43)
+  (parent 42)
+  (unrealized (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 text) (k aik akey)
+    (pt pt-0 pval) (tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 2) (3 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((4 2) (3 1)))
+  (rule genStV-if-hashed-tpm-extend-enc trRl_tpm-extend-enc-at-1
+    trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr (cat pt (hash (hash "0" n) "refuse"))) (3 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
+      (load pcr (cat pt (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "refuse"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "refuse")))))
+  (label 44)
+  (parent 43)
+  (unrealized (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 pcr-id-2 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-2) (tpm tpm-2) (pcr pcr))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((4 2) (3 1)) ((5 2) (4 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr (cat pt-0 (hash "0" n))) (4 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
+      (load pcr (cat pt (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "refuse"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
+    ((recv tpm-2 (cat "extend" pcr-id-2 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 45)
+  (parent 44)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((4 2) (3 1)) ((5 2) (4 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation nonce-test (contracted (pcr-id-2 pcr-id-0) (tpm-2 tpm)) n
+    (5 0) (ch-msg tpm (cat "extend" pcr-id-0 n)))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
+      (load pcr (cat pt (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "refuse"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 46)
+  (parent 45)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
+        (tpm tpm))))
+  (origs (pt-0 (5 2)) (pt (4 2)) (n (1 0)) (k (2 1)) (v (1 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope-plus basic
+  (defrole tpm-power-on
+    (vars (current-value mesg) (pcr locn) (tpm chan))
+    (trace (recv tpm "power on") (load pcr current-value)
+      (stor pcr "0")))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcr-id text) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "extend" pcr-id value))
+      (load pcr current-value) (stor pcr (hash current-value value))
+      (send "ext ok")))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "quote" pcr-id nonce))
+      (load pcr current-value)
+      (send (enc "quote" pcr-id current-value nonce aik))))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
+    (trace (recv tpm (cat "create-req" pcr-id pcrval))
+      (send (enc "created" k pcr-id pcrval aik)))
+    (non-orig (invk k))
+    (uniq-orig k)
+    (auth tpm))
+  (defrole tpm-decrypt
+    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcr-id current-value aik))
+      (load pcr current-value) (send m))
+    (non-orig aik))
+  (defrole alice
+    (vars (n v data) (pcr-id text) (k aik akey) (tpm chan))
+    (trace (send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig aik)
+    (uniq-orig n v)
+    (conf tpm)
+    (neq (k aik)))
+  (defrule genStV-if-hashed-tpm-power-on
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-power-on" z (idx 2))
+          (p "tpm-power-on" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-extend-enc
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-extend-enc" z (idx 2))
+          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-decrypt
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-decrypt" z (idx 3))
+          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-quote
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-quote" z (idx 2))
+          (p "tpm-quote" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule ordered-extends
+    (forall ((y z strd) (pcr locn))
+      (implies
+        (and (p "tpm-extend-enc" y (idx 3))
+          (p "tpm-extend-enc" z (idx 3))
+          (p "tpm-extend-enc" "pcr" y pcr)
+          (p "tpm-extend-enc" "pcr" z pcr))
+        (or
+          (= y z)
+          (prec y (idx 2) z (idx 1))
+          (prec z (idx 2) y (idx 1))))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_tpm-power-on-at-2
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-power-on-at-1
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_tpm-extend-enc-at-2
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-extend-enc-at-1
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 3)) (trans z (idx 1))))))
+
+(defskeleton envelope-plus
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (non-orig aik)
+  (uniq-orig n v)
+  (conf tpm)
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 47)
+  (unrealized (0 0) (1 0) (2 2))
+  (preskeleton)
+  (origs (v (2 3)) (n (2 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope-plus
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (precedes ((2 3) (0 0)) ((2 3) (1 0)))
+  (non-orig aik)
+  (uniq-orig n v)
+  (conf tpm)
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 48)
+  (parent 47)
+  (unrealized (0 0) (2 2))
+  (origs (v (2 3)) (n (2 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm tpm-0 chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
+  (precedes ((2 3) (0 0)) ((2 3) (1 0)) ((3 1) (2 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (conf tpm)
+  (auth tpm-0)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik) (2 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-0
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
+  (label 49)
+  (parent 48)
+  (unrealized (0 0) (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (1 0)) ((3 1) (2 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (conf tpm)
+  (auth tpm)
+  (operation channel-test (displaced 4 2 alice 2)
+    (ch-msg tpm-0
+      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))) (3 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
+  (label 50)
+  (parent 49)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (current-value mesg) (n v data) (pcr-id pcr-id-0 pcr-id-1 text)
+    (k aik aik-0 akey) (pt pval) (tpm tpm-0 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
+    (pcr-id pcr-id-1) (k k) (aik aik-0) (tpm tpm-0) (pcr pcr))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)))
+  (non-orig aik aik-0 (invk k))
+  (uniq-orig n v k)
+  (conf tpm)
+  (auth tpm)
+  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-1 current-value aik-0))
+      (load pcr (cat pt current-value)) (send v)))
+  (label 51)
+  (parent 50)
+  (unrealized (0 0) (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (pt pval)
+    (tpm tpm-0 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (rule genStV-if-hashed-tpm-decrypt)
+  (operation encryption-test (displaced 5 3 tpm-create-key 2)
+    (enc "created" k pcr-id-1 current-value aik-0) (4 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v)))
+  (label 52)
+  (parent 51)
+  (unrealized (0 0) (4 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 text) (k aik akey)
+    (pt pt-0 pval) (tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 2) (4 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)))
+  (rule genStV-if-hashed-tpm-extend-enc trRl_tpm-extend-enc-at-1
+    trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))) (4 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain")))))
+  (label 53)
+  (parent 52)
+  (unrealized (0 0) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 pcr-id-2 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-2) (tpm tpm-2) (pcr pcr))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)) ((6 2) (5 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr (cat pt-0 (hash "0" n))) (5 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm-2 (cat "extend" pcr-id-2 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 54)
+  (parent 53)
+  (unrealized (0 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)) ((6 2) (5 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation nonce-test (contracted (pcr-id-2 pcr-id-0) (tpm-2 tpm)) n
+    (6 0) (ch-msg tpm (cat "extend" pcr-id-0 n)))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 55)
+  (parent 54)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 text) (k aik akey)
+    (pt pt-0 pt-1 pt-2 pval) (tpm tpm-0 tpm-1 tpm-2 chan)
+    (pcr pcr-0 locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-2) (pcr pcr-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (7 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 2) (0 0)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain")
+    (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)) ((6 2) (5 1)))
+  (rule genStV-if-hashed-tpm-quote trRl_tpm-extend-enc-at-1
+    trRl_tpm-extend-enc-at-2)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
+    (0 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n))))
+    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
+      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))))
+  (label 56)
+  (parent 55)
+  (unrealized (7 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 pcr-id-2 text) (k aik akey)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
+    (pcr pcr-0 locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-2) (pcr pcr-0))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-2) (tpm tpm-3)
+    (pcr pcr-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (7 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 2) (0 0)) ((8 2) (7 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain")
+    (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)) ((6 2) (5 1)) ((8 2) (7 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (7 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n))))
+    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
+      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm-3 (cat "extend" pcr-id-2 "refuse"))
+      (load pcr-0 (cat pt-3 (hash "0" n)))
+      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
+  (label 57)
+  (parent 56)
+  (unrealized (8 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 pcr-id-2 pcr-id-3 text)
+    (k aik akey) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-2) (pcr pcr-0))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-2) (tpm tpm-3)
+    (pcr pcr-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-3) (tpm tpm-4) (pcr pcr-0))
+  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (7 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 2) (0 0)) ((8 2) (7 1)) ((9 2) (8 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain")
+    (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)) ((6 2) (5 1)) ((8 2) (7 1)) ((9 2) (8 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n))))
+    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
+      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm-3 (cat "extend" pcr-id-2 "refuse"))
+      (load pcr-0 (cat pt-3 (hash "0" n)))
+      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
+    ((recv tpm-4 (cat "extend" pcr-id-3 n)) (load pcr-0 (cat pt-4 "0"))
+      (stor pcr-0 (cat pt-3 (hash "0" n)))))
+  (label 58)
+  (parent 57)
+  (unrealized (9 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 pcr-id-2 text) (k aik akey)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-2) (pcr pcr-0))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-2) (tpm tpm-3)
+    (pcr pcr-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr-0))
+  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (7 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 2) (0 0)) ((8 2) (7 1)) ((9 2) (8 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain")
+    (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)) ((6 2) (5 1)) ((8 2) (7 1)) ((9 2) (8 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation nonce-test (contracted (pcr-id-3 pcr-id-0) (tpm-4 tpm)) n
+    (9 0) (ch-msg tpm (cat "extend" pcr-id-0 n)))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n))))
+    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
+      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm-3 (cat "extend" pcr-id-2 "refuse"))
+      (load pcr-0 (cat pt-3 (hash "0" n)))
+      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr-0 (cat pt-4 "0"))
+      (stor pcr-0 (cat pt-3 (hash "0" n)))))
+  (label 59)
+  (parent 58)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 2)
+      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
+        (tpm tpm))))
+  (origs (pt-3 (9 2)) (pt-2 (8 2)) (pt-0 (6 2)) (pt (5 2)) (k (3 1))
+    (n (2 0)) (v (2 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope-plus-2 basic
+  (defrole tpm-power-on
+    (vars (current-value mesg) (pcr locn) (tpm chan))
+    (trace (recv tpm "power on") (load pcr current-value)
+      (stor pcr "0")))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcr-id text) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "extend" pcr-id value))
+      (load pcr current-value) (stor pcr (hash current-value value))
+      (send "ext ok")))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "quote" pcr-id nonce))
+      (load pcr current-value)
+      (send (enc "quote" pcr-id current-value nonce aik))))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
+    (trace (recv tpm (cat "create-req" pcr-id pcrval))
+      (send (enc "created" k pcr-id pcrval aik)))
+    (non-orig (invk k))
+    (uniq-orig k)
+    (auth tpm))
+  (defrole tpm-decrypt
+    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcr-id current-value aik))
+      (load pcr current-value) (send m))
+    (non-orig aik))
+  (defrole alice
+    (vars (n v data) (pcr-id text) (k aik akey) (tpm chan))
+    (trace (send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig aik)
+    (uniq-orig n v)
+    (conf tpm)
+    (neq (k aik)))
+  (defrule genStV-if-hashed-tpm-power-on
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-power-on" z (idx 2))
+          (p "tpm-power-on" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-extend-enc
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-extend-enc" z (idx 2))
+          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-decrypt
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-decrypt" z (idx 3))
+          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-quote
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-quote" z (idx 2))
+          (p "tpm-quote" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule pcr-id-identifies-pcr
+    (forall ((y z strd) (pcr-id text) (pcr pcr-0 locn))
+      (implies
+        (and (p "tpm-extend-enc" y (idx 3))
+          (p "tpm-extend-enc" z (idx 3))
+          (p "tpm-extend-enc" "pcr-id" y pcr-id)
+          (p "tpm-extend-enc" "pcr-id" z pcr-id)
+          (p "tpm-extend-enc" "pcr" y pcr)
+          (p "tpm-extend-enc" "pcr" z pcr-0))
+        (= pcr pcr-0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_tpm-power-on-at-2
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-power-on-at-1
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_tpm-extend-enc-at-2
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-extend-enc-at-1
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 3)) (trans z (idx 1))))))
+
+(defskeleton envelope-plus-2
+  (vars (v n data) (pcr-id text) (k aik akey) (tpm chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (non-orig aik)
+  (uniq-orig v n)
+  (conf tpm)
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 60)
+  (unrealized (0 0) (1 2))
+  (preskeleton)
+  (origs (v (1 3)) (n (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope-plus-2
+  (vars (v n data) (pcr-id text) (k aik akey) (tpm chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (precedes ((1 3) (0 0)))
+  (non-orig aik)
+  (uniq-orig v n)
+  (conf tpm)
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 61)
+  (parent 60)
+  (unrealized (1 2))
+  (origs (v (1 3)) (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (v n data) (pcr-id text) (k aik akey) (tpm tpm-0 chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
+  (precedes ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig aik (invk k))
+  (uniq-orig v n k)
+  (conf tpm)
+  (auth tpm-0)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik) (1 2))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))))
+  (label 62)
+  (parent 61)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (v n data) (pcr-id text) (k aik akey) (tpm chan))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (precedes ((1 1) (2 0)) ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig aik (invk k))
+  (uniq-orig v n k)
+  (conf tpm)
+  (auth tpm)
+  (operation channel-test (displaced 3 1 alice 2)
+    (ch-msg tpm-0
+      (cat "create-req" pcr-id (hash (hash "0" n) "obtain"))) (2 0))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))))
+  (label 63)
+  (parent 62)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (current-value mesg) (v n data) (pcr-id pcr-id-0 text)
+    (k aik aik-0 akey) (pt pval) (tpm tpm-0 chan) (pcr locn))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
+    (pcr-id pcr-id-0) (k k) (aik aik-0) (tpm tpm-0) (pcr pcr))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0)))
+  (non-orig aik aik-0 (invk k))
+  (uniq-orig v n k)
+  (conf tpm)
+  (auth tpm)
+  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 current-value aik-0))
+      (load pcr (cat pt current-value)) (send v)))
+  (label 64)
+  (parent 63)
+  (unrealized (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (v n data) (pcr-id text) (k aik akey) (pt pval) (tpm tpm-0 chan)
+    (pcr locn))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0)))
+  (non-orig aik (invk k))
+  (uniq-orig v n k)
+  (gen-st (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (rule genStV-if-hashed-tpm-decrypt)
+  (operation encryption-test (displaced 4 2 tpm-create-key 2)
+    (enc "created" k pcr-id-0 current-value aik-0) (3 1))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v)))
+  (label 65)
+  (parent 64)
+  (unrealized (3 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (v n data) (pcr-id pcr-id-0 text) (k aik akey) (pt pt-0 pval)
+    (tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-0) (tpm tpm-1)
+    (pcr pcr))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 3) (0 0))
+    ((4 2) (3 2)))
+  (non-orig aik (invk k))
+  (uniq-orig v n k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((4 2) (3 2)))
+  (rule genStV-if-hashed-tpm-extend-enc trRl_tpm-extend-enc-at-1
+    trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))) (3 2))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-0 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain")))))
+  (label 66)
+  (parent 65)
+  (unrealized (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (v n data) (pcr-id pcr-id-0 pcr-id-1 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-0) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-1) (tpm tpm-2) (pcr pcr))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)))
+  (non-orig aik (invk k))
+  (uniq-orig v n k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((4 2) (3 2)) ((5 2) (4 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr (cat pt-0 (hash "0" n))) (4 1))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-0 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm-2 (cat "extend" pcr-id-1 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 67)
+  (parent 66)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (v n data) (pcr-id pcr-id-0 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-0) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id) (tpm tpm) (pcr pcr))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 3) (0 0)) ((4 2) (3 2)) ((5 2) (4 1)))
+  (non-orig aik (invk k))
+  (uniq-orig v n k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((4 2) (3 2)) ((5 2) (4 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation nonce-test (contracted (pcr-id-1 pcr-id) (tpm-2 tpm)) n
+    (5 0) (ch-msg tpm (cat "extend" pcr-id n)))
+  (traces ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-0 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm (cat "extend" pcr-id n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 68)
+  (parent 67)
+  (realized)
+  (shape)
+  (maps ((0 1) ((v v) (n n) (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))))
+  (origs (pt-0 (5 2)) (pt (4 2)) (k (2 1)) (n (1 0)) (v (1 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope-plus-2 basic
+  (defrole tpm-power-on
+    (vars (current-value mesg) (pcr locn) (tpm chan))
+    (trace (recv tpm "power on") (load pcr current-value)
+      (stor pcr "0")))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcr-id text) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "extend" pcr-id value))
+      (load pcr current-value) (stor pcr (hash current-value value))
+      (send "ext ok")))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "quote" pcr-id nonce))
+      (load pcr current-value)
+      (send (enc "quote" pcr-id current-value nonce aik))))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
+    (trace (recv tpm (cat "create-req" pcr-id pcrval))
+      (send (enc "created" k pcr-id pcrval aik)))
+    (non-orig (invk k))
+    (uniq-orig k)
+    (auth tpm))
+  (defrole tpm-decrypt
+    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcr-id current-value aik))
+      (load pcr current-value) (send m))
+    (non-orig aik))
+  (defrole alice
+    (vars (n v data) (pcr-id text) (k aik akey) (tpm chan))
+    (trace (send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig aik)
+    (uniq-orig n v)
+    (conf tpm)
+    (neq (k aik)))
+  (defrule genStV-if-hashed-tpm-power-on
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-power-on" z (idx 2))
+          (p "tpm-power-on" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-extend-enc
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-extend-enc" z (idx 2))
+          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-decrypt
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-decrypt" z (idx 3))
+          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-quote
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-quote" z (idx 2))
+          (p "tpm-quote" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule pcr-id-identifies-pcr
+    (forall ((y z strd) (pcr-id text) (pcr pcr-0 locn))
+      (implies
+        (and (p "tpm-extend-enc" y (idx 3))
+          (p "tpm-extend-enc" z (idx 3))
+          (p "tpm-extend-enc" "pcr-id" y pcr-id)
+          (p "tpm-extend-enc" "pcr-id" z pcr-id)
+          (p "tpm-extend-enc" "pcr" y pcr)
+          (p "tpm-extend-enc" "pcr" z pcr-0))
+        (= pcr pcr-0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_tpm-power-on-at-2
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-power-on-at-1
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_tpm-extend-enc-at-2
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-extend-enc-at-1
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 3)) (trans z (idx 1))))))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (non-orig aik)
+  (uniq-orig n v)
+  (conf tpm)
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 69)
+  (unrealized (0 0) (1 2))
+  (preskeleton)
+  (origs (v (1 3)) (n (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (precedes ((1 3) (0 0)))
+  (non-orig aik)
+  (uniq-orig n v)
+  (conf tpm)
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 70)
+  (parent 69)
+  (unrealized (0 0) (1 2))
+  (origs (v (1 3)) (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm tpm-0 chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
+  (precedes ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (conf tpm)
+  (auth tpm-0)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik) (1 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-0
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
+  (label 71)
+  (parent 70)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (precedes ((1 1) (2 0)) ((1 3) (0 0)) ((2 1) (1 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (conf tpm)
+  (auth tpm)
+  (operation channel-test (displaced 3 1 alice 2)
+    (ch-msg tpm-0
+      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))) (2 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
+  (label 72)
+  (parent 71)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (pt pval)
+    (tpm tpm-0 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (rule genStV-if-hashed-tpm-quote)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
+    (0 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
+      (load pcr (cat pt (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))))
+  (label 73)
+  (parent 72)
+  (unrealized (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 text) (k aik akey)
+    (pt pt-0 pval) (tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (precedes ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2)) ((3 2) (0 0))
+    ((4 2) (3 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((4 2) (3 1)))
+  (rule genStV-if-hashed-tpm-extend-enc trRl_tpm-extend-enc-at-1
+    trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr (cat pt (hash (hash "0" n) "refuse"))) (3 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
+      (load pcr (cat pt (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "refuse"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "refuse")))))
+  (label 74)
+  (parent 73)
+  (unrealized (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 pcr-id-2 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-2) (tpm tpm-2) (pcr pcr))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((4 2) (3 1)) ((5 2) (4 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr (cat pt-0 (hash "0" n))) (4 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
+      (load pcr (cat pt (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "refuse"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
+    ((recv tpm-2 (cat "extend" pcr-id-2 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 75)
+  (parent 74)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr))
+  (precedes ((1 0) (5 0)) ((1 1) (2 0)) ((1 3) (3 0)) ((2 1) (1 2))
+    ((3 2) (0 0)) ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((4 2) (3 1)) ((5 2) (4 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation nonce-test (contracted (pcr-id-2 pcr-id-0) (tpm-2 tpm)) n
+    (5 0) (ch-msg tpm (cat "extend" pcr-id-0 n)))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
+      (load pcr (cat pt (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "refuse"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 76)
+  (parent 75)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
+        (tpm tpm))))
+  (origs (pt-0 (5 2)) (pt (4 2)) (n (1 0)) (k (2 1)) (v (1 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope-plus-2 basic
+  (defrole tpm-power-on
+    (vars (current-value mesg) (pcr locn) (tpm chan))
+    (trace (recv tpm "power on") (load pcr current-value)
+      (stor pcr "0")))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcr-id text) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "extend" pcr-id value))
+      (load pcr current-value) (stor pcr (hash current-value value))
+      (send "ext ok")))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "quote" pcr-id nonce))
+      (load pcr current-value)
+      (send (enc "quote" pcr-id current-value nonce aik))))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
+    (trace (recv tpm (cat "create-req" pcr-id pcrval))
+      (send (enc "created" k pcr-id pcrval aik)))
+    (non-orig (invk k))
+    (uniq-orig k)
+    (auth tpm))
+  (defrole tpm-decrypt
+    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcr-id current-value aik))
+      (load pcr current-value) (send m))
+    (non-orig aik))
+  (defrole alice
+    (vars (n v data) (pcr-id text) (k aik akey) (tpm chan))
+    (trace (send tpm (cat "extend" pcr-id n))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig aik)
+    (uniq-orig n v)
+    (conf tpm)
+    (neq (k aik)))
+  (defrule genStV-if-hashed-tpm-power-on
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-power-on" z (idx 2))
+          (p "tpm-power-on" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-extend-enc
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-extend-enc" z (idx 2))
+          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-decrypt
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-decrypt" z (idx 3))
+          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-quote
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-quote" z (idx 2))
+          (p "tpm-quote" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule pcr-id-identifies-pcr
+    (forall ((y z strd) (pcr-id text) (pcr pcr-0 locn))
+      (implies
+        (and (p "tpm-extend-enc" y (idx 3))
+          (p "tpm-extend-enc" z (idx 3))
+          (p "tpm-extend-enc" "pcr-id" y pcr-id)
+          (p "tpm-extend-enc" "pcr-id" z pcr-id)
+          (p "tpm-extend-enc" "pcr" y pcr)
+          (p "tpm-extend-enc" "pcr" z pcr-0))
+        (= pcr pcr-0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_tpm-power-on-at-2
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-power-on-at-1
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_tpm-extend-enc-at-2
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-extend-enc-at-1
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 3)) (trans z (idx 1))))))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (non-orig aik)
+  (uniq-orig n v)
+  (conf tpm)
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 77)
+  (unrealized (0 0) (1 0) (2 2))
+  (preskeleton)
+  (origs (v (2 3)) (n (2 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (precedes ((2 3) (0 0)) ((2 3) (1 0)))
+  (non-orig aik)
+  (uniq-orig n v)
+  (conf tpm)
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 78)
+  (parent 77)
+  (unrealized (0 0) (2 2))
+  (origs (v (2 3)) (n (2 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm tpm-0 chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
+  (precedes ((2 3) (0 0)) ((2 3) (1 0)) ((3 1) (2 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (conf tpm)
+  (auth tpm-0)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik) (2 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-0
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
+  (label 79)
+  (parent 78)
+  (unrealized (0 0) (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (tpm chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (1 0)) ((3 1) (2 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (conf tpm)
+  (auth tpm)
+  (operation channel-test (displaced 4 2 alice 2)
+    (ch-msg tpm-0
+      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))) (3 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
+  (label 80)
+  (parent 79)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (current-value mesg) (n v data) (pcr-id pcr-id-0 pcr-id-1 text)
+    (k aik aik-0 akey) (pt pval) (tpm tpm-0 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
+    (pcr-id pcr-id-1) (k k) (aik aik-0) (tpm tpm-0) (pcr pcr))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)))
+  (non-orig aik aik-0 (invk k))
+  (uniq-orig n v k)
+  (conf tpm)
+  (auth tpm)
+  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-1 current-value aik-0))
+      (load pcr (cat pt current-value)) (send v)))
+  (label 81)
+  (parent 80)
+  (unrealized (0 0) (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (pcr-id pcr-id-0 text) (k aik akey) (pt pval)
+    (tpm tpm-0 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (rule genStV-if-hashed-tpm-decrypt)
+  (operation encryption-test (displaced 5 3 tpm-create-key 2)
+    (enc "created" k pcr-id-1 current-value aik-0) (4 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v)))
+  (label 82)
+  (parent 81)
+  (unrealized (0 0) (4 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 text) (k aik akey)
+    (pt pt-0 pval) (tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (precedes ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0)) ((3 1) (2 2))
+    ((4 3) (1 0)) ((5 2) (4 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)))
+  (rule genStV-if-hashed-tpm-extend-enc trRl_tpm-extend-enc-at-1
+    trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))) (4 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain")))))
+  (label 83)
+  (parent 82)
+  (unrealized (0 0) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 pcr-id-2 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpm tpm-0 tpm-1 tpm-2 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-2) (tpm tpm-2) (pcr pcr))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)) ((6 2) (5 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr (cat pt-0 (hash "0" n))) (5 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm-2 (cat "extend" pcr-id-2 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 84)
+  (parent 83)
+  (unrealized (0 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (0 0)) ((2 3) (4 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)) ((6 2) (5 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation nonce-test (contracted (pcr-id-2 pcr-id-0) (tpm-2 tpm)) n
+    (6 0) (ch-msg tpm (cat "extend" pcr-id-0 n)))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 85)
+  (parent 84)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 text) (k aik akey)
+    (pt pt-0 pt-1 pt-2 pval) (tpm tpm-0 tpm-1 tpm-2 chan)
+    (pcr pcr-0 locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-2) (pcr pcr-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (7 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 2) (0 0)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain")
+    (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)) ((6 2) (5 1)))
+  (rule genStV-if-hashed-tpm-quote trRl_tpm-extend-enc-at-1
+    trRl_tpm-extend-enc-at-2)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
+    (0 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n))))
+    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
+      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))))
+  (label 86)
+  (parent 85)
+  (unrealized (7 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 pcr-id-2 text) (k aik akey)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (tpm tpm-0 tpm-1 tpm-2 tpm-3 chan)
+    (pcr pcr-0 locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-2) (pcr pcr-0))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-2) (tpm tpm-3)
+    (pcr pcr-0))
+  (precedes ((2 0) (6 0)) ((2 1) (3 0)) ((2 3) (4 0)) ((2 3) (7 0))
+    ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2)) ((6 2) (5 1))
+    ((7 2) (0 0)) ((8 2) (7 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain")
+    (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)) ((6 2) (5 1)) ((8 2) (7 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (7 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n))))
+    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
+      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm-3 (cat "extend" pcr-id-2 "refuse"))
+      (load pcr-0 (cat pt-3 (hash "0" n)))
+      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
+  (label 87)
+  (parent 86)
+  (unrealized (8 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 pcr-id-2 pcr-id-3 text)
+    (k aik akey) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (tpm tpm-0 tpm-1 tpm-2 tpm-3 tpm-4 chan) (pcr pcr-0 locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-2) (pcr pcr-0))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-2) (tpm tpm-3)
+    (pcr pcr-0))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-3) (tpm tpm-4) (pcr pcr-0))
+  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (7 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 2) (0 0)) ((8 2) (7 1)) ((9 2) (8 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain")
+    (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)) ((6 2) (5 1)) ((8 2) (7 1)) ((9 2) (8 1)))
+  (rule trRl_tpm-extend-enc-at-1 trRl_tpm-extend-enc-at-2)
+  (operation channel-test (added-strand tpm-extend-enc 3)
+    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n))))
+    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
+      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm-3 (cat "extend" pcr-id-2 "refuse"))
+      (load pcr-0 (cat pt-3 (hash "0" n)))
+      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
+    ((recv tpm-4 (cat "extend" pcr-id-3 n)) (load pcr-0 (cat pt-4 "0"))
+      (stor pcr-0 (cat pt-3 (hash "0" n)))))
+  (label 88)
+  (parent 87)
+  (unrealized (9 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope-plus-2
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 pcr-id-2 text) (k aik akey)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 4 (n n) (v v) (pcr-id pcr-id-0) (k k) (aik aik)
+    (tpm tpm))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (tpm tpm-1)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-2) (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-2) (tpm tpm-3)
+    (pcr pcr))
+  (defstrand tpm-extend-enc 3 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (tpm tpm) (pcr pcr))
+  (precedes ((2 0) (6 0)) ((2 0) (9 0)) ((2 1) (3 0)) ((2 3) (4 0))
+    ((2 3) (7 0)) ((3 1) (2 2)) ((4 3) (1 0)) ((5 2) (4 2))
+    ((6 2) (5 1)) ((7 2) (0 0)) ((8 2) (7 1)) ((9 2) (8 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain")
+    (hash (hash "0" n) "refuse"))
+  (conf tpm)
+  (auth tpm)
+  (leads-to ((5 2) (4 2)) ((6 2) (5 1)) ((8 2) (7 1)) ((9 2) (8 1)))
+  (rule pcr-id-identifies-pcr trRl_tpm-extend-enc-at-1
+    trRl_tpm-extend-enc-at-2)
+  (operation nonce-test
+    (contracted (pcr-0 pcr) (pcr-id-3 pcr-id-0) (tpm-4 tpm)) n (9 0)
+    (ch-msg tpm (cat "extend" pcr-id-0 n)))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((send tpm (cat "extend" pcr-id-0 n))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((recv tpm-1 (cat "extend" pcr-id-1 "obtain"))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr (cat pt-1 "0"))
+      (stor pcr (cat pt-0 (hash "0" n))))
+    ((recv tpm-2 (cat "quote" pcr-id (enc v k)))
+      (load pcr (cat pt-2 (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm-3 (cat "extend" pcr-id-2 "refuse"))
+      (load pcr (cat pt-3 (hash "0" n)))
+      (stor pcr (cat pt-2 (hash (hash "0" n) "refuse"))))
+    ((recv tpm (cat "extend" pcr-id-0 n)) (load pcr (cat pt-4 "0"))
+      (stor pcr (cat pt-3 (hash "0" n)))))
+  (label 89)
+  (parent 88)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 2)
+      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
+        (tpm tpm))))
+  (origs (pt-3 (9 2)) (pt-2 (8 2)) (pt-0 (6 2)) (pt (5 2)) (k (3 1))
+    (n (2 0)) (v (2 3))))
+
+(comment "Nothing left to do")
diff --git a/tst/lt_test.scm b/tst/lt_test.scm
deleted file mode 100644
--- a/tst/lt_test.scm
+++ /dev/null
@@ -1,55 +0,0 @@
-(herald "Less-than constraint test protocol"
-   (comment "First and third skeletons should have a shape,"
-            "second and fourth should be dead."))
-
-(defprotocol lttest basic
-  (defrole init
-     (vars (n1 n2 text) (k skey))
-     (trace
-       (send (cat n1 (enc n1 n2 k)))
-       (recv n2))
-     (non-orig k)
-     (uniq-orig n1 n2)
-  )
-)
-
-;;; With no declaration, a shape
-;;; should be found where n1 = n2.
-(defskeleton lttest
-   (vars (n1 n2 text) (k skey))
-   (defstrand init 2) (n1 n1) (n2 n2) (k k))
-
-;;; With the declaration that n1 < n2,
-;;; no shape should exist, since n1 = n2 would
-;;; be a cycle.
-(defskeleton lttest
-   (vars (n1 n2 text))
-   (defstrand init 2 (n1 n1) (n2 n2))
-   (lt (n1 n2)))
-
-(defprotocol lttest2 basic
-  (defrole init
-     (vars (n1 n2 n text) (k skey))
-     (trace
-       (send n)
-       (send (cat n1 (enc n1 n2 k)))
-       (recv n2))
-     (non-orig k)
-     (uniq-orig n1 n2)
-     (lt (n2 n))
-  )
-)
-
-;;; In this version, the single lt declaration
-;;; should not interfere.
-(defskeleton lttest2
-   (vars (n n1 n2 text) (k skey))
-   (defstrand init 3) (n1 n1) (n2 n2) (k k))
-
-;;; In this version, the additional requirement
-;;; that n1 < n prevents n1 and n2 from being
-;;; unified.
-(defskeleton lttest2
-   (vars (n n1 n2 text) (k skey))
-   (defstrand init 3 (n1 n1) (n2 n2) (k k) (n n))
-   (lt (n n1)))
diff --git a/tst/lt_test.tst b/tst/lt_test.tst
deleted file mode 100644
--- a/tst/lt_test.tst
+++ /dev/null
@@ -1,122 +0,0 @@
-(herald "Less-than constraint test protocol"
-  (comment "First and third skeletons should have a shape,"
-    "second and fourth should be dead."))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/lt_test.scm")
-
-(defprotocol lttest basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))
-
-(defskeleton lttest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (traces ((send (cat n1 (enc n1 n2 k))) (recv n2)))
-  (label 0)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton lttest
-  (vars (n1 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n1) (k k))
-  (non-orig k)
-  (uniq-orig n1)
-  (operation nonce-test (displaced 1 0 init 1) n2 (0 1) (enc n1 n2 k))
-  (traces ((send (cat n1 (enc n1 n1 k))) (recv n1)))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n1 n1) (n2 n1) (k k))))
-  (origs (n1 (0 0))))
-
-(comment "Nothing left to do")
-
-(defprotocol lttest basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))
-
-(defskeleton lttest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (lt (n1 n2))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (traces ((send (cat n1 (enc n1 n2 k))) (recv n2)))
-  (label 2)
-  (unrealized (0 1))
-  (dead)
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol lttest2 basic
-  (defrole init
-    (vars (n1 n2 n text) (k skey))
-    (trace (send n) (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)
-    (lt (n2 n))))
-
-(defskeleton lttest2
-  (vars (n1 n2 n text) (k skey))
-  (defstrand init 3 (n1 n1) (n2 n2) (n n) (k k))
-  (lt (n2 n))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (traces ((send n) (send (cat n1 (enc n1 n2 k))) (recv n2)))
-  (label 3)
-  (unrealized (0 2))
-  (origs (n1 (0 1)) (n2 (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton lttest2
-  (vars (n1 n text) (k skey))
-  (defstrand init 3 (n1 n1) (n2 n1) (n n) (k k))
-  (lt (n1 n))
-  (non-orig k)
-  (uniq-orig n1)
-  (operation nonce-test (displaced 1 0 init 2) n2 (0 2) (enc n1 n2 k))
-  (traces ((send n) (send (cat n1 (enc n1 n1 k))) (recv n1)))
-  (label 4)
-  (parent 3)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n1 n1) (n2 n1) (n n) (k k))))
-  (origs (n1 (0 1))))
-
-(comment "Nothing left to do")
-
-(defprotocol lttest2 basic
-  (defrole init
-    (vars (n1 n2 n text) (k skey))
-    (trace (send n) (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)
-    (lt (n2 n))))
-
-(defskeleton lttest2
-  (vars (n n1 n2 text) (k skey))
-  (defstrand init 3 (n1 n1) (n2 n2) (n n) (k k))
-  (lt (n n1) (n2 n))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (traces ((send n) (send (cat n1 (enc n1 n2 k))) (recv n2)))
-  (label 5)
-  (unrealized (0 2))
-  (dead)
-  (origs (n1 (0 1)) (n2 (0 1)))
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
diff --git a/tst/mass.lsp b/tst/mass.lsp
new file mode 100644
--- /dev/null
+++ b/tst/mass.lsp
@@ -0,0 +1,29 @@
+(defprotocol mass basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace
+      (send a)
+      (recv n1)
+      (send (enc n1 (ltk a b)))
+      (send n2)
+      (recv (enc n2 (ltk a b)))))
+  (defrole resp
+    (vars (a b name) (n1 n2 text))
+    (trace
+      (recv a)
+      (send n1)
+      (recv (enc n1 (ltk a b)))
+      (recv n2)
+      (send (enc n2 (ltk a b))))))
+
+(defskeleton mass
+  (vars (a b name) (n2 text))
+  (defstrand init 5 (a a) (b b) (n2 n2))
+  (non-orig (ltk a b))
+  (uniq-orig n2))
+
+(defskeleton mass
+  (vars (a b name) (n1 text))
+  (defstrand resp 5 (a a) (b b) (n1 n1))
+  (non-orig (ltk a b))
+  (uniq-orig n1))
diff --git a/tst/mass.tst b/tst/mass.tst
new file mode 100644
--- /dev/null
+++ b/tst/mass.tst
@@ -0,0 +1,616 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/mass.lsp")
+
+(defprotocol mass basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b)))))
+  (defrole resp
+    (vars (a b name) (n1 n2 text))
+    (trace (recv a) (send n1) (recv (enc n1 (ltk a b))) (recv n2)
+      (send (enc n2 (ltk a b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton mass
+  (vars (n2 n1 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b)))))
+  (label 0)
+  (unrealized (0 4))
+  (origs (n2 (0 3)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton mass
+  (vars (n2 n1 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n2) (a a) (b b))
+  (precedes ((0 3) (1 1)) ((1 2) (0 4)))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand init 3) (enc n2 (ltk a b))
+    (0 4))
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b))))
+    ((send a) (recv n2) (send (enc n2 (ltk a b)))))
+  (label 1)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 3))))
+
+(defskeleton mass
+  (vars (n2 n1 n1-0 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-0) (n2 n2) (a a) (b b))
+  (precedes ((0 3) (1 3)) ((1 4) (0 4)))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand resp 5) (enc n2 (ltk a b))
+    (0 4))
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b))))
+    ((recv a) (send n1-0) (recv (enc n1-0 (ltk a b))) (recv n2)
+      (send (enc n2 (ltk a b)))))
+  (label 2)
+  (parent 0)
+  (unrealized (1 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton mass
+  (vars (n2 n1 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1) (n2 n2) (a a) (b b))
+  (precedes ((0 2) (1 2)) ((0 3) (1 3)) ((1 4) (0 4)))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (operation encryption-test (displaced 2 0 init 3) (enc n1-0 (ltk a b))
+    (1 2))
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b))))
+    ((recv a) (send n1) (recv (enc n1 (ltk a b))) (recv n2)
+      (send (enc n2 (ltk a b)))))
+  (label 3)
+  (parent 2)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 3))))
+
+(defskeleton mass
+  (vars (n2 n1 n1-0 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1-0) (a a) (b b))
+  (precedes ((0 3) (1 3)) ((1 4) (0 4)) ((2 2) (1 2)))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand init 3) (enc n1-0 (ltk a b))
+    (1 2))
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b))))
+    ((recv a) (send n1-0) (recv (enc n1-0 (ltk a b))) (recv n2)
+      (send (enc n2 (ltk a b))))
+    ((send a) (recv n1-0) (send (enc n1-0 (ltk a b)))))
+  (label 4)
+  (parent 2)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 3))))
+
+(defskeleton mass
+  (vars (n2 n1 n1-0 n1-1 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-1) (n2 n1-0) (a a) (b b))
+  (precedes ((0 3) (1 3)) ((1 4) (0 4)) ((2 4) (1 2)))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand resp 5) (enc n1-0 (ltk a b))
+    (1 2))
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b))))
+    ((recv a) (send n1-0) (recv (enc n1-0 (ltk a b))) (recv n2)
+      (send (enc n2 (ltk a b))))
+    ((recv a) (send n1-1) (recv (enc n1-1 (ltk a b))) (recv n1-0)
+      (send (enc n1-0 (ltk a b)))))
+  (label 5)
+  (parent 2)
+  (unrealized (2 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton mass
+  (vars (n2 n1 n1-0 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1) (n2 n1-0) (a a) (b b))
+  (precedes ((0 2) (2 2)) ((0 3) (1 3)) ((1 4) (0 4)) ((2 4) (1 2)))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (operation encryption-test (displaced 3 0 init 3) (enc n1-1 (ltk a b))
+    (2 2))
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b))))
+    ((recv a) (send n1-0) (recv (enc n1-0 (ltk a b))) (recv n2)
+      (send (enc n2 (ltk a b))))
+    ((recv a) (send n1) (recv (enc n1 (ltk a b))) (recv n1-0)
+      (send (enc n1-0 (ltk a b)))))
+  (label 6)
+  (parent 5)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 3))))
+
+(defskeleton mass
+  (vars (n2 n1 n1-0 n1-1 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-1) (n2 n1-0) (a a) (b b))
+  (defstrand init 3 (n1 n1-1) (a a) (b b))
+  (precedes ((0 3) (1 3)) ((1 4) (0 4)) ((2 4) (1 2)) ((3 2) (2 2)))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand init 3) (enc n1-1 (ltk a b))
+    (2 2))
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b))))
+    ((recv a) (send n1-0) (recv (enc n1-0 (ltk a b))) (recv n2)
+      (send (enc n2 (ltk a b))))
+    ((recv a) (send n1-1) (recv (enc n1-1 (ltk a b))) (recv n1-0)
+      (send (enc n1-0 (ltk a b))))
+    ((send a) (recv n1-1) (send (enc n1-1 (ltk a b)))))
+  (label 7)
+  (parent 5)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 3))))
+
+(defskeleton mass
+  (vars (n2 n1 n1-0 n1-1 n1-2 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-1) (n2 n1-0) (a a) (b b))
+  (defstrand resp 5 (n1 n1-2) (n2 n1-1) (a a) (b b))
+  (precedes ((0 3) (1 3)) ((1 4) (0 4)) ((2 4) (1 2)) ((3 4) (2 2)))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand resp 5) (enc n1-1 (ltk a b))
+    (2 2))
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b))))
+    ((recv a) (send n1-0) (recv (enc n1-0 (ltk a b))) (recv n2)
+      (send (enc n2 (ltk a b))))
+    ((recv a) (send n1-1) (recv (enc n1-1 (ltk a b))) (recv n1-0)
+      (send (enc n1-0 (ltk a b))))
+    ((recv a) (send n1-2) (recv (enc n1-2 (ltk a b))) (recv n1-1)
+      (send (enc n1-1 (ltk a b)))))
+  (label 8)
+  (parent 5)
+  (unrealized (3 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton mass
+  (vars (n2 n1 n1-0 n1-1 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-1) (n2 n1-0) (a a) (b b))
+  (defstrand resp 5 (n1 n1) (n2 n1-1) (a a) (b b))
+  (precedes ((0 2) (3 2)) ((0 3) (1 3)) ((1 4) (0 4)) ((2 4) (1 2))
+    ((3 4) (2 2)))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (operation encryption-test (displaced 4 0 init 3) (enc n1-2 (ltk a b))
+    (3 2))
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b))))
+    ((recv a) (send n1-0) (recv (enc n1-0 (ltk a b))) (recv n2)
+      (send (enc n2 (ltk a b))))
+    ((recv a) (send n1-1) (recv (enc n1-1 (ltk a b))) (recv n1-0)
+      (send (enc n1-0 (ltk a b))))
+    ((recv a) (send n1) (recv (enc n1 (ltk a b))) (recv n1-1)
+      (send (enc n1-1 (ltk a b)))))
+  (label 9)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 3))))
+
+(defskeleton mass
+  (vars (n2 n1 n1-0 n1-1 n1-2 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-1) (n2 n1-0) (a a) (b b))
+  (defstrand resp 5 (n1 n1-2) (n2 n1-1) (a a) (b b))
+  (defstrand init 3 (n1 n1-2) (a a) (b b))
+  (precedes ((0 3) (1 3)) ((1 4) (0 4)) ((2 4) (1 2)) ((3 4) (2 2))
+    ((4 2) (3 2)))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand init 3) (enc n1-2 (ltk a b))
+    (3 2))
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b))))
+    ((recv a) (send n1-0) (recv (enc n1-0 (ltk a b))) (recv n2)
+      (send (enc n2 (ltk a b))))
+    ((recv a) (send n1-1) (recv (enc n1-1 (ltk a b))) (recv n1-0)
+      (send (enc n1-0 (ltk a b))))
+    ((recv a) (send n1-2) (recv (enc n1-2 (ltk a b))) (recv n1-1)
+      (send (enc n1-1 (ltk a b))))
+    ((send a) (recv n1-2) (send (enc n1-2 (ltk a b)))))
+  (label 10)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 3))))
+
+(defskeleton mass
+  (vars (n2 n1 n1-0 n1-1 n1-2 n1-3 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-1) (n2 n1-0) (a a) (b b))
+  (defstrand resp 5 (n1 n1-2) (n2 n1-1) (a a) (b b))
+  (defstrand resp 5 (n1 n1-3) (n2 n1-2) (a a) (b b))
+  (precedes ((0 3) (1 3)) ((1 4) (0 4)) ((2 4) (1 2)) ((3 4) (2 2))
+    ((4 4) (3 2)))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand resp 5) (enc n1-2 (ltk a b))
+    (3 2))
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b))))
+    ((recv a) (send n1-0) (recv (enc n1-0 (ltk a b))) (recv n2)
+      (send (enc n2 (ltk a b))))
+    ((recv a) (send n1-1) (recv (enc n1-1 (ltk a b))) (recv n1-0)
+      (send (enc n1-0 (ltk a b))))
+    ((recv a) (send n1-2) (recv (enc n1-2 (ltk a b))) (recv n1-1)
+      (send (enc n1-1 (ltk a b))))
+    ((recv a) (send n1-3) (recv (enc n1-3 (ltk a b))) (recv n1-2)
+      (send (enc n1-2 (ltk a b)))))
+  (label 11)
+  (parent 8)
+  (unrealized (4 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton mass
+  (vars (n2 n1 n1-0 n1-1 n1-2 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-1) (n2 n1-0) (a a) (b b))
+  (defstrand resp 5 (n1 n1-2) (n2 n1-1) (a a) (b b))
+  (defstrand resp 5 (n1 n1) (n2 n1-2) (a a) (b b))
+  (precedes ((0 2) (4 2)) ((0 3) (1 3)) ((1 4) (0 4)) ((2 4) (1 2))
+    ((3 4) (2 2)) ((4 4) (3 2)))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (operation encryption-test (displaced 5 0 init 3) (enc n1-3 (ltk a b))
+    (4 2))
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b))))
+    ((recv a) (send n1-0) (recv (enc n1-0 (ltk a b))) (recv n2)
+      (send (enc n2 (ltk a b))))
+    ((recv a) (send n1-1) (recv (enc n1-1 (ltk a b))) (recv n1-0)
+      (send (enc n1-0 (ltk a b))))
+    ((recv a) (send n1-2) (recv (enc n1-2 (ltk a b))) (recv n1-1)
+      (send (enc n1-1 (ltk a b))))
+    ((recv a) (send n1) (recv (enc n1 (ltk a b))) (recv n1-2)
+      (send (enc n1-2 (ltk a b)))))
+  (label 12)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 3))))
+
+(defskeleton mass
+  (vars (n2 n1 n1-0 n1-1 n1-2 n1-3 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-1) (n2 n1-0) (a a) (b b))
+  (defstrand resp 5 (n1 n1-2) (n2 n1-1) (a a) (b b))
+  (defstrand resp 5 (n1 n1-3) (n2 n1-2) (a a) (b b))
+  (defstrand init 3 (n1 n1-3) (a a) (b b))
+  (precedes ((0 3) (1 3)) ((1 4) (0 4)) ((2 4) (1 2)) ((3 4) (2 2))
+    ((4 4) (3 2)) ((5 2) (4 2)))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand init 3) (enc n1-3 (ltk a b))
+    (4 2))
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b))))
+    ((recv a) (send n1-0) (recv (enc n1-0 (ltk a b))) (recv n2)
+      (send (enc n2 (ltk a b))))
+    ((recv a) (send n1-1) (recv (enc n1-1 (ltk a b))) (recv n1-0)
+      (send (enc n1-0 (ltk a b))))
+    ((recv a) (send n1-2) (recv (enc n1-2 (ltk a b))) (recv n1-1)
+      (send (enc n1-1 (ltk a b))))
+    ((recv a) (send n1-3) (recv (enc n1-3 (ltk a b))) (recv n1-2)
+      (send (enc n1-2 (ltk a b))))
+    ((send a) (recv n1-3) (send (enc n1-3 (ltk a b)))))
+  (label 13)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 3))))
+
+(defskeleton mass
+  (vars (n2 n1 n1-0 n1-1 n1-2 n1-3 n1-4 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-1) (n2 n1-0) (a a) (b b))
+  (defstrand resp 5 (n1 n1-2) (n2 n1-1) (a a) (b b))
+  (defstrand resp 5 (n1 n1-3) (n2 n1-2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-4) (n2 n1-3) (a a) (b b))
+  (precedes ((0 3) (1 3)) ((1 4) (0 4)) ((2 4) (1 2)) ((3 4) (2 2))
+    ((4 4) (3 2)) ((5 4) (4 2)))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand resp 5) (enc n1-3 (ltk a b))
+    (4 2))
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b))))
+    ((recv a) (send n1-0) (recv (enc n1-0 (ltk a b))) (recv n2)
+      (send (enc n2 (ltk a b))))
+    ((recv a) (send n1-1) (recv (enc n1-1 (ltk a b))) (recv n1-0)
+      (send (enc n1-0 (ltk a b))))
+    ((recv a) (send n1-2) (recv (enc n1-2 (ltk a b))) (recv n1-1)
+      (send (enc n1-1 (ltk a b))))
+    ((recv a) (send n1-3) (recv (enc n1-3 (ltk a b))) (recv n1-2)
+      (send (enc n1-2 (ltk a b))))
+    ((recv a) (send n1-4) (recv (enc n1-4 (ltk a b))) (recv n1-3)
+      (send (enc n1-3 (ltk a b)))))
+  (label 14)
+  (parent 11)
+  (unrealized (5 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton mass
+  (vars (n2 n1 n1-0 n1-1 n1-2 n1-3 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-1) (n2 n1-0) (a a) (b b))
+  (defstrand resp 5 (n1 n1-2) (n2 n1-1) (a a) (b b))
+  (defstrand resp 5 (n1 n1-3) (n2 n1-2) (a a) (b b))
+  (defstrand resp 5 (n1 n1) (n2 n1-3) (a a) (b b))
+  (precedes ((0 2) (5 2)) ((0 3) (1 3)) ((1 4) (0 4)) ((2 4) (1 2))
+    ((3 4) (2 2)) ((4 4) (3 2)) ((5 4) (4 2)))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (operation encryption-test (displaced 6 0 init 3) (enc n1-4 (ltk a b))
+    (5 2))
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b))))
+    ((recv a) (send n1-0) (recv (enc n1-0 (ltk a b))) (recv n2)
+      (send (enc n2 (ltk a b))))
+    ((recv a) (send n1-1) (recv (enc n1-1 (ltk a b))) (recv n1-0)
+      (send (enc n1-0 (ltk a b))))
+    ((recv a) (send n1-2) (recv (enc n1-2 (ltk a b))) (recv n1-1)
+      (send (enc n1-1 (ltk a b))))
+    ((recv a) (send n1-3) (recv (enc n1-3 (ltk a b))) (recv n1-2)
+      (send (enc n1-2 (ltk a b))))
+    ((recv a) (send n1) (recv (enc n1 (ltk a b))) (recv n1-3)
+      (send (enc n1-3 (ltk a b)))))
+  (label 15)
+  (parent 14)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 3))))
+
+(defskeleton mass
+  (vars (n2 n1 n1-0 n1-1 n1-2 n1-3 n1-4 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-1) (n2 n1-0) (a a) (b b))
+  (defstrand resp 5 (n1 n1-2) (n2 n1-1) (a a) (b b))
+  (defstrand resp 5 (n1 n1-3) (n2 n1-2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-4) (n2 n1-3) (a a) (b b))
+  (defstrand init 3 (n1 n1-4) (a a) (b b))
+  (precedes ((0 3) (1 3)) ((1 4) (0 4)) ((2 4) (1 2)) ((3 4) (2 2))
+    ((4 4) (3 2)) ((5 4) (4 2)) ((6 2) (5 2)))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand init 3) (enc n1-4 (ltk a b))
+    (5 2))
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b))))
+    ((recv a) (send n1-0) (recv (enc n1-0 (ltk a b))) (recv n2)
+      (send (enc n2 (ltk a b))))
+    ((recv a) (send n1-1) (recv (enc n1-1 (ltk a b))) (recv n1-0)
+      (send (enc n1-0 (ltk a b))))
+    ((recv a) (send n1-2) (recv (enc n1-2 (ltk a b))) (recv n1-1)
+      (send (enc n1-1 (ltk a b))))
+    ((recv a) (send n1-3) (recv (enc n1-3 (ltk a b))) (recv n1-2)
+      (send (enc n1-2 (ltk a b))))
+    ((recv a) (send n1-4) (recv (enc n1-4 (ltk a b))) (recv n1-3)
+      (send (enc n1-3 (ltk a b))))
+    ((send a) (recv n1-4) (send (enc n1-4 (ltk a b)))))
+  (label 16)
+  (parent 14)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 3))))
+
+(defskeleton mass
+  (vars (n2 n1 n1-0 n1-1 n1-2 n1-3 n1-4 n1-5 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-1) (n2 n1-0) (a a) (b b))
+  (defstrand resp 5 (n1 n1-2) (n2 n1-1) (a a) (b b))
+  (defstrand resp 5 (n1 n1-3) (n2 n1-2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-4) (n2 n1-3) (a a) (b b))
+  (defstrand resp 5 (n1 n1-5) (n2 n1-4) (a a) (b b))
+  (precedes ((0 3) (1 3)) ((1 4) (0 4)) ((2 4) (1 2)) ((3 4) (2 2))
+    ((4 4) (3 2)) ((5 4) (4 2)) ((6 4) (5 2)))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand resp 5) (enc n1-4 (ltk a b))
+    (5 2))
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b))))
+    ((recv a) (send n1-0) (recv (enc n1-0 (ltk a b))) (recv n2)
+      (send (enc n2 (ltk a b))))
+    ((recv a) (send n1-1) (recv (enc n1-1 (ltk a b))) (recv n1-0)
+      (send (enc n1-0 (ltk a b))))
+    ((recv a) (send n1-2) (recv (enc n1-2 (ltk a b))) (recv n1-1)
+      (send (enc n1-1 (ltk a b))))
+    ((recv a) (send n1-3) (recv (enc n1-3 (ltk a b))) (recv n1-2)
+      (send (enc n1-2 (ltk a b))))
+    ((recv a) (send n1-4) (recv (enc n1-4 (ltk a b))) (recv n1-3)
+      (send (enc n1-3 (ltk a b))))
+    ((recv a) (send n1-5) (recv (enc n1-5 (ltk a b))) (recv n1-4)
+      (send (enc n1-4 (ltk a b)))))
+  (label 17)
+  (parent 14)
+  (unrealized (6 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton mass
+  (vars (n2 n1 n1-0 n1-1 n1-2 n1-3 n1-4 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-1) (n2 n1-0) (a a) (b b))
+  (defstrand resp 5 (n1 n1-2) (n2 n1-1) (a a) (b b))
+  (defstrand resp 5 (n1 n1-3) (n2 n1-2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-4) (n2 n1-3) (a a) (b b))
+  (defstrand resp 5 (n1 n1) (n2 n1-4) (a a) (b b))
+  (precedes ((0 2) (6 2)) ((0 3) (1 3)) ((1 4) (0 4)) ((2 4) (1 2))
+    ((3 4) (2 2)) ((4 4) (3 2)) ((5 4) (4 2)) ((6 4) (5 2)))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (operation encryption-test (displaced 7 0 init 3) (enc n1-5 (ltk a b))
+    (6 2))
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b))))
+    ((recv a) (send n1-0) (recv (enc n1-0 (ltk a b))) (recv n2)
+      (send (enc n2 (ltk a b))))
+    ((recv a) (send n1-1) (recv (enc n1-1 (ltk a b))) (recv n1-0)
+      (send (enc n1-0 (ltk a b))))
+    ((recv a) (send n1-2) (recv (enc n1-2 (ltk a b))) (recv n1-1)
+      (send (enc n1-1 (ltk a b))))
+    ((recv a) (send n1-3) (recv (enc n1-3 (ltk a b))) (recv n1-2)
+      (send (enc n1-2 (ltk a b))))
+    ((recv a) (send n1-4) (recv (enc n1-4 (ltk a b))) (recv n1-3)
+      (send (enc n1-3 (ltk a b))))
+    ((recv a) (send n1) (recv (enc n1 (ltk a b))) (recv n1-4)
+      (send (enc n1-4 (ltk a b)))))
+  (label 18)
+  (parent 17)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 3))))
+
+(defskeleton mass
+  (vars (n2 n1 n1-0 n1-1 n1-2 n1-3 n1-4 n1-5 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-1) (n2 n1-0) (a a) (b b))
+  (defstrand resp 5 (n1 n1-2) (n2 n1-1) (a a) (b b))
+  (defstrand resp 5 (n1 n1-3) (n2 n1-2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-4) (n2 n1-3) (a a) (b b))
+  (defstrand resp 5 (n1 n1-5) (n2 n1-4) (a a) (b b))
+  (defstrand init 3 (n1 n1-5) (a a) (b b))
+  (precedes ((0 3) (1 3)) ((1 4) (0 4)) ((2 4) (1 2)) ((3 4) (2 2))
+    ((4 4) (3 2)) ((5 4) (4 2)) ((6 4) (5 2)) ((7 2) (6 2)))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand init 3) (enc n1-5 (ltk a b))
+    (6 2))
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b))))
+    ((recv a) (send n1-0) (recv (enc n1-0 (ltk a b))) (recv n2)
+      (send (enc n2 (ltk a b))))
+    ((recv a) (send n1-1) (recv (enc n1-1 (ltk a b))) (recv n1-0)
+      (send (enc n1-0 (ltk a b))))
+    ((recv a) (send n1-2) (recv (enc n1-2 (ltk a b))) (recv n1-1)
+      (send (enc n1-1 (ltk a b))))
+    ((recv a) (send n1-3) (recv (enc n1-3 (ltk a b))) (recv n1-2)
+      (send (enc n1-2 (ltk a b))))
+    ((recv a) (send n1-4) (recv (enc n1-4 (ltk a b))) (recv n1-3)
+      (send (enc n1-3 (ltk a b))))
+    ((recv a) (send n1-5) (recv (enc n1-5 (ltk a b))) (recv n1-4)
+      (send (enc n1-4 (ltk a b))))
+    ((send a) (recv n1-5) (send (enc n1-5 (ltk a b)))))
+  (label 19)
+  (parent 17)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 3))))
+
+(comment "Strand bound exceeded--aborting run")
+
+(defskeleton mass
+  (vars (n2 n1 n1-0 n1-1 n1-2 n1-3 n1-4 n1-5 n1-6 text) (a b name))
+  (defstrand init 5 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-1) (n2 n1-0) (a a) (b b))
+  (defstrand resp 5 (n1 n1-2) (n2 n1-1) (a a) (b b))
+  (defstrand resp 5 (n1 n1-3) (n2 n1-2) (a a) (b b))
+  (defstrand resp 5 (n1 n1-4) (n2 n1-3) (a a) (b b))
+  (defstrand resp 5 (n1 n1-5) (n2 n1-4) (a a) (b b))
+  (defstrand resp 5 (n1 n1-6) (n2 n1-5) (a a) (b b))
+  (precedes ((0 3) (1 3)) ((1 4) (0 4)) ((2 4) (1 2)) ((3 4) (2 2))
+    ((4 4) (3 2)) ((5 4) (4 2)) ((6 4) (5 2)) ((7 4) (6 2)))
+  (non-orig (ltk a b))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand resp 5) (enc n1-5 (ltk a b))
+    (6 2))
+  (traces
+    ((send a) (recv n1) (send (enc n1 (ltk a b))) (send n2)
+      (recv (enc n2 (ltk a b))))
+    ((recv a) (send n1-0) (recv (enc n1-0 (ltk a b))) (recv n2)
+      (send (enc n2 (ltk a b))))
+    ((recv a) (send n1-1) (recv (enc n1-1 (ltk a b))) (recv n1-0)
+      (send (enc n1-0 (ltk a b))))
+    ((recv a) (send n1-2) (recv (enc n1-2 (ltk a b))) (recv n1-1)
+      (send (enc n1-1 (ltk a b))))
+    ((recv a) (send n1-3) (recv (enc n1-3 (ltk a b))) (recv n1-2)
+      (send (enc n1-2 (ltk a b))))
+    ((recv a) (send n1-4) (recv (enc n1-4 (ltk a b))) (recv n1-3)
+      (send (enc n1-3 (ltk a b))))
+    ((recv a) (send n1-5) (recv (enc n1-5 (ltk a b))) (recv n1-4)
+      (send (enc n1-4 (ltk a b))))
+    ((recv a) (send n1-6) (recv (enc n1-6 (ltk a b))) (recv n1-5)
+      (send (enc n1-5 (ltk a b)))))
+  (label 20)
+  (parent 17)
+  (unrealized (7 2))
+  (aborted)
+  (comment "aborted"))
diff --git a/tst/mass2.lsp b/tst/mass2.lsp
new file mode 100644
--- /dev/null
+++ b/tst/mass2.lsp
@@ -0,0 +1,19 @@
+(defprotocol mass2 basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace
+      (send (cat a n2))
+      (recv (cat n1 (enc n2 (ltk a b))))
+      (send (enc n1 (ltk a b)))))
+  (defrole resp
+    (vars (a b name) (n1 n2 text))
+    (trace
+      (recv (cat a n2))
+      (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))))
+
+(defskeleton mass2
+  (vars (a b name) (n1 text))
+  (defstrand resp 3 (a a) (b b) (n1 n1))
+  (non-orig (ltk a b))
+  (uniq-orig n1))
diff --git a/tst/mass2.tst b/tst/mass2.tst
new file mode 100644
--- /dev/null
+++ b/tst/mass2.tst
@@ -0,0 +1,615 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/mass2.lsp")
+
+(defprotocol mass2 basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (cat a n2)) (recv (cat n1 (enc n2 (ltk a b))))
+      (send (enc n1 (ltk a b)))))
+  (defrole resp
+    (vars (a b name) (n1 n2 text))
+    (trace (recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton mass2
+  (vars (n1 n2 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b)))))
+  (label 0)
+  (unrealized (0 2))
+  (origs (n1 (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton mass2
+  (vars (n1 n2 n2-0 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (operation encryption-test (added-strand init 3) (enc n1 (ltk a b))
+    (0 2))
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))
+    ((send (cat a n2-0)) (recv (cat n1 (enc n2-0 (ltk a b))))
+      (send (enc n1 (ltk a b)))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton mass2
+  (vars (n1 n2 n1-0 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n1 n1-0) (n2 n1) (a a) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (operation encryption-test (added-strand resp 2) (enc n1 (ltk a b))
+    (0 2))
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))
+    ((recv (cat a n1)) (send (cat n1-0 (enc n1 (ltk a b))))))
+  (label 2)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 1))))
+
+(defskeleton mass2
+  (vars (n1 n2 n2-0 n2-1 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (defstrand init 3 (n1 n2-0) (n2 n2-1) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)) ((2 2) (1 1)))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (operation encryption-test (added-strand init 3) (enc n2-0 (ltk a b))
+    (1 1))
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))
+    ((send (cat a n2-0)) (recv (cat n1 (enc n2-0 (ltk a b))))
+      (send (enc n1 (ltk a b))))
+    ((send (cat a n2-1)) (recv (cat n2-0 (enc n2-1 (ltk a b))))
+      (send (enc n2-0 (ltk a b)))))
+  (label 3)
+  (parent 1)
+  (unrealized (2 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton mass2
+  (vars (n1 n2 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (operation encryption-test (displaced 2 0 resp 2) (enc n2-0 (ltk a b))
+    (1 1))
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))
+    ((send (cat a n2)) (recv (cat n1 (enc n2 (ltk a b))))
+      (send (enc n1 (ltk a b)))))
+  (label 4)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 1))))
+
+(defskeleton mass2
+  (vars (n1 n2 n2-0 n1-0 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (defstrand resp 2 (n1 n1-0) (n2 n2-0) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)) ((2 1) (1 1)))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (operation encryption-test (added-strand resp 2) (enc n2-0 (ltk a b))
+    (1 1))
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))
+    ((send (cat a n2-0)) (recv (cat n1 (enc n2-0 (ltk a b))))
+      (send (enc n1 (ltk a b))))
+    ((recv (cat a n2-0)) (send (cat n1-0 (enc n2-0 (ltk a b))))))
+  (label 5)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 1))))
+
+(defskeleton mass2
+  (vars (n1 n2 n2-0 n2-1 n2-2 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (defstrand init 3 (n1 n2-0) (n2 n2-1) (a a) (b b))
+  (defstrand init 3 (n1 n2-1) (n2 n2-2) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)) ((2 2) (1 1)) ((3 2) (2 1)))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (operation encryption-test (added-strand init 3) (enc n2-1 (ltk a b))
+    (2 1))
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))
+    ((send (cat a n2-0)) (recv (cat n1 (enc n2-0 (ltk a b))))
+      (send (enc n1 (ltk a b))))
+    ((send (cat a n2-1)) (recv (cat n2-0 (enc n2-1 (ltk a b))))
+      (send (enc n2-0 (ltk a b))))
+    ((send (cat a n2-2)) (recv (cat n2-1 (enc n2-2 (ltk a b))))
+      (send (enc n2-1 (ltk a b)))))
+  (label 6)
+  (parent 3)
+  (unrealized (3 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton mass2
+  (vars (n1 n2 n2-0 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (defstrand init 3 (n1 n2-0) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (2 1)) ((1 2) (0 2)) ((2 2) (1 1)))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (operation encryption-test (displaced 3 0 resp 2) (enc n2-1 (ltk a b))
+    (2 1))
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))
+    ((send (cat a n2-0)) (recv (cat n1 (enc n2-0 (ltk a b))))
+      (send (enc n1 (ltk a b))))
+    ((send (cat a n2)) (recv (cat n2-0 (enc n2 (ltk a b))))
+      (send (enc n2-0 (ltk a b)))))
+  (label 7)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 1))))
+
+(defskeleton mass2
+  (vars (n1 n2 n2-0 n2-1 n1-0 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (defstrand init 3 (n1 n2-0) (n2 n2-1) (a a) (b b))
+  (defstrand resp 2 (n1 n1-0) (n2 n2-1) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)) ((2 2) (1 1)) ((3 1) (2 1)))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (operation encryption-test (added-strand resp 2) (enc n2-1 (ltk a b))
+    (2 1))
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))
+    ((send (cat a n2-0)) (recv (cat n1 (enc n2-0 (ltk a b))))
+      (send (enc n1 (ltk a b))))
+    ((send (cat a n2-1)) (recv (cat n2-0 (enc n2-1 (ltk a b))))
+      (send (enc n2-0 (ltk a b))))
+    ((recv (cat a n2-1)) (send (cat n1-0 (enc n2-1 (ltk a b))))))
+  (label 8)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 1))))
+
+(defskeleton mass2
+  (vars (n1 n2 n2-0 n2-1 n2-2 n2-3 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (defstrand init 3 (n1 n2-0) (n2 n2-1) (a a) (b b))
+  (defstrand init 3 (n1 n2-1) (n2 n2-2) (a a) (b b))
+  (defstrand init 3 (n1 n2-2) (n2 n2-3) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)) ((2 2) (1 1)) ((3 2) (2 1))
+    ((4 2) (3 1)))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (operation encryption-test (added-strand init 3) (enc n2-2 (ltk a b))
+    (3 1))
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))
+    ((send (cat a n2-0)) (recv (cat n1 (enc n2-0 (ltk a b))))
+      (send (enc n1 (ltk a b))))
+    ((send (cat a n2-1)) (recv (cat n2-0 (enc n2-1 (ltk a b))))
+      (send (enc n2-0 (ltk a b))))
+    ((send (cat a n2-2)) (recv (cat n2-1 (enc n2-2 (ltk a b))))
+      (send (enc n2-1 (ltk a b))))
+    ((send (cat a n2-3)) (recv (cat n2-2 (enc n2-3 (ltk a b))))
+      (send (enc n2-2 (ltk a b)))))
+  (label 9)
+  (parent 6)
+  (unrealized (4 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton mass2
+  (vars (n1 n2 n2-0 n2-1 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (defstrand init 3 (n1 n2-0) (n2 n2-1) (a a) (b b))
+  (defstrand init 3 (n1 n2-1) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (3 1)) ((1 2) (0 2)) ((2 2) (1 1)) ((3 2) (2 1)))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (operation encryption-test (displaced 4 0 resp 2) (enc n2-2 (ltk a b))
+    (3 1))
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))
+    ((send (cat a n2-0)) (recv (cat n1 (enc n2-0 (ltk a b))))
+      (send (enc n1 (ltk a b))))
+    ((send (cat a n2-1)) (recv (cat n2-0 (enc n2-1 (ltk a b))))
+      (send (enc n2-0 (ltk a b))))
+    ((send (cat a n2)) (recv (cat n2-1 (enc n2 (ltk a b))))
+      (send (enc n2-1 (ltk a b)))))
+  (label 10)
+  (parent 6)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 1))))
+
+(defskeleton mass2
+  (vars (n1 n2 n2-0 n2-1 n2-2 n1-0 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (defstrand init 3 (n1 n2-0) (n2 n2-1) (a a) (b b))
+  (defstrand init 3 (n1 n2-1) (n2 n2-2) (a a) (b b))
+  (defstrand resp 2 (n1 n1-0) (n2 n2-2) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)) ((2 2) (1 1)) ((3 2) (2 1))
+    ((4 1) (3 1)))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (operation encryption-test (added-strand resp 2) (enc n2-2 (ltk a b))
+    (3 1))
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))
+    ((send (cat a n2-0)) (recv (cat n1 (enc n2-0 (ltk a b))))
+      (send (enc n1 (ltk a b))))
+    ((send (cat a n2-1)) (recv (cat n2-0 (enc n2-1 (ltk a b))))
+      (send (enc n2-0 (ltk a b))))
+    ((send (cat a n2-2)) (recv (cat n2-1 (enc n2-2 (ltk a b))))
+      (send (enc n2-1 (ltk a b))))
+    ((recv (cat a n2-2)) (send (cat n1-0 (enc n2-2 (ltk a b))))))
+  (label 11)
+  (parent 6)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 1))))
+
+(defskeleton mass2
+  (vars (n1 n2 n2-0 n2-1 n2-2 n2-3 n2-4 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (defstrand init 3 (n1 n2-0) (n2 n2-1) (a a) (b b))
+  (defstrand init 3 (n1 n2-1) (n2 n2-2) (a a) (b b))
+  (defstrand init 3 (n1 n2-2) (n2 n2-3) (a a) (b b))
+  (defstrand init 3 (n1 n2-3) (n2 n2-4) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)) ((2 2) (1 1)) ((3 2) (2 1))
+    ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (operation encryption-test (added-strand init 3) (enc n2-3 (ltk a b))
+    (4 1))
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))
+    ((send (cat a n2-0)) (recv (cat n1 (enc n2-0 (ltk a b))))
+      (send (enc n1 (ltk a b))))
+    ((send (cat a n2-1)) (recv (cat n2-0 (enc n2-1 (ltk a b))))
+      (send (enc n2-0 (ltk a b))))
+    ((send (cat a n2-2)) (recv (cat n2-1 (enc n2-2 (ltk a b))))
+      (send (enc n2-1 (ltk a b))))
+    ((send (cat a n2-3)) (recv (cat n2-2 (enc n2-3 (ltk a b))))
+      (send (enc n2-2 (ltk a b))))
+    ((send (cat a n2-4)) (recv (cat n2-3 (enc n2-4 (ltk a b))))
+      (send (enc n2-3 (ltk a b)))))
+  (label 12)
+  (parent 9)
+  (unrealized (5 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton mass2
+  (vars (n1 n2 n2-0 n2-1 n2-2 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (defstrand init 3 (n1 n2-0) (n2 n2-1) (a a) (b b))
+  (defstrand init 3 (n1 n2-1) (n2 n2-2) (a a) (b b))
+  (defstrand init 3 (n1 n2-2) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (4 1)) ((1 2) (0 2)) ((2 2) (1 1)) ((3 2) (2 1))
+    ((4 2) (3 1)))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (operation encryption-test (displaced 5 0 resp 2) (enc n2-3 (ltk a b))
+    (4 1))
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))
+    ((send (cat a n2-0)) (recv (cat n1 (enc n2-0 (ltk a b))))
+      (send (enc n1 (ltk a b))))
+    ((send (cat a n2-1)) (recv (cat n2-0 (enc n2-1 (ltk a b))))
+      (send (enc n2-0 (ltk a b))))
+    ((send (cat a n2-2)) (recv (cat n2-1 (enc n2-2 (ltk a b))))
+      (send (enc n2-1 (ltk a b))))
+    ((send (cat a n2)) (recv (cat n2-2 (enc n2 (ltk a b))))
+      (send (enc n2-2 (ltk a b)))))
+  (label 13)
+  (parent 9)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 1))))
+
+(defskeleton mass2
+  (vars (n1 n2 n2-0 n2-1 n2-2 n2-3 n1-0 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (defstrand init 3 (n1 n2-0) (n2 n2-1) (a a) (b b))
+  (defstrand init 3 (n1 n2-1) (n2 n2-2) (a a) (b b))
+  (defstrand init 3 (n1 n2-2) (n2 n2-3) (a a) (b b))
+  (defstrand resp 2 (n1 n1-0) (n2 n2-3) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)) ((2 2) (1 1)) ((3 2) (2 1))
+    ((4 2) (3 1)) ((5 1) (4 1)))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (operation encryption-test (added-strand resp 2) (enc n2-3 (ltk a b))
+    (4 1))
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))
+    ((send (cat a n2-0)) (recv (cat n1 (enc n2-0 (ltk a b))))
+      (send (enc n1 (ltk a b))))
+    ((send (cat a n2-1)) (recv (cat n2-0 (enc n2-1 (ltk a b))))
+      (send (enc n2-0 (ltk a b))))
+    ((send (cat a n2-2)) (recv (cat n2-1 (enc n2-2 (ltk a b))))
+      (send (enc n2-1 (ltk a b))))
+    ((send (cat a n2-3)) (recv (cat n2-2 (enc n2-3 (ltk a b))))
+      (send (enc n2-2 (ltk a b))))
+    ((recv (cat a n2-3)) (send (cat n1-0 (enc n2-3 (ltk a b))))))
+  (label 14)
+  (parent 9)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 1))))
+
+(defskeleton mass2
+  (vars (n1 n2 n2-0 n2-1 n2-2 n2-3 n2-4 n2-5 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (defstrand init 3 (n1 n2-0) (n2 n2-1) (a a) (b b))
+  (defstrand init 3 (n1 n2-1) (n2 n2-2) (a a) (b b))
+  (defstrand init 3 (n1 n2-2) (n2 n2-3) (a a) (b b))
+  (defstrand init 3 (n1 n2-3) (n2 n2-4) (a a) (b b))
+  (defstrand init 3 (n1 n2-4) (n2 n2-5) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)) ((2 2) (1 1)) ((3 2) (2 1))
+    ((4 2) (3 1)) ((5 2) (4 1)) ((6 2) (5 1)))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (operation encryption-test (added-strand init 3) (enc n2-4 (ltk a b))
+    (5 1))
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))
+    ((send (cat a n2-0)) (recv (cat n1 (enc n2-0 (ltk a b))))
+      (send (enc n1 (ltk a b))))
+    ((send (cat a n2-1)) (recv (cat n2-0 (enc n2-1 (ltk a b))))
+      (send (enc n2-0 (ltk a b))))
+    ((send (cat a n2-2)) (recv (cat n2-1 (enc n2-2 (ltk a b))))
+      (send (enc n2-1 (ltk a b))))
+    ((send (cat a n2-3)) (recv (cat n2-2 (enc n2-3 (ltk a b))))
+      (send (enc n2-2 (ltk a b))))
+    ((send (cat a n2-4)) (recv (cat n2-3 (enc n2-4 (ltk a b))))
+      (send (enc n2-3 (ltk a b))))
+    ((send (cat a n2-5)) (recv (cat n2-4 (enc n2-5 (ltk a b))))
+      (send (enc n2-4 (ltk a b)))))
+  (label 15)
+  (parent 12)
+  (unrealized (6 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton mass2
+  (vars (n1 n2 n2-0 n2-1 n2-2 n2-3 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (defstrand init 3 (n1 n2-0) (n2 n2-1) (a a) (b b))
+  (defstrand init 3 (n1 n2-1) (n2 n2-2) (a a) (b b))
+  (defstrand init 3 (n1 n2-2) (n2 n2-3) (a a) (b b))
+  (defstrand init 3 (n1 n2-3) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (5 1)) ((1 2) (0 2)) ((2 2) (1 1)) ((3 2) (2 1))
+    ((4 2) (3 1)) ((5 2) (4 1)))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (operation encryption-test (displaced 6 0 resp 2) (enc n2-4 (ltk a b))
+    (5 1))
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))
+    ((send (cat a n2-0)) (recv (cat n1 (enc n2-0 (ltk a b))))
+      (send (enc n1 (ltk a b))))
+    ((send (cat a n2-1)) (recv (cat n2-0 (enc n2-1 (ltk a b))))
+      (send (enc n2-0 (ltk a b))))
+    ((send (cat a n2-2)) (recv (cat n2-1 (enc n2-2 (ltk a b))))
+      (send (enc n2-1 (ltk a b))))
+    ((send (cat a n2-3)) (recv (cat n2-2 (enc n2-3 (ltk a b))))
+      (send (enc n2-2 (ltk a b))))
+    ((send (cat a n2)) (recv (cat n2-3 (enc n2 (ltk a b))))
+      (send (enc n2-3 (ltk a b)))))
+  (label 16)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 1))))
+
+(defskeleton mass2
+  (vars (n1 n2 n2-0 n2-1 n2-2 n2-3 n2-4 n1-0 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (defstrand init 3 (n1 n2-0) (n2 n2-1) (a a) (b b))
+  (defstrand init 3 (n1 n2-1) (n2 n2-2) (a a) (b b))
+  (defstrand init 3 (n1 n2-2) (n2 n2-3) (a a) (b b))
+  (defstrand init 3 (n1 n2-3) (n2 n2-4) (a a) (b b))
+  (defstrand resp 2 (n1 n1-0) (n2 n2-4) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)) ((2 2) (1 1)) ((3 2) (2 1))
+    ((4 2) (3 1)) ((5 2) (4 1)) ((6 1) (5 1)))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (operation encryption-test (added-strand resp 2) (enc n2-4 (ltk a b))
+    (5 1))
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))
+    ((send (cat a n2-0)) (recv (cat n1 (enc n2-0 (ltk a b))))
+      (send (enc n1 (ltk a b))))
+    ((send (cat a n2-1)) (recv (cat n2-0 (enc n2-1 (ltk a b))))
+      (send (enc n2-0 (ltk a b))))
+    ((send (cat a n2-2)) (recv (cat n2-1 (enc n2-2 (ltk a b))))
+      (send (enc n2-1 (ltk a b))))
+    ((send (cat a n2-3)) (recv (cat n2-2 (enc n2-3 (ltk a b))))
+      (send (enc n2-2 (ltk a b))))
+    ((send (cat a n2-4)) (recv (cat n2-3 (enc n2-4 (ltk a b))))
+      (send (enc n2-3 (ltk a b))))
+    ((recv (cat a n2-4)) (send (cat n1-0 (enc n2-4 (ltk a b))))))
+  (label 17)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 1))))
+
+(defskeleton mass2
+  (vars (n1 n2 n2-0 n2-1 n2-2 n2-3 n2-4 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (defstrand init 3 (n1 n2-0) (n2 n2-1) (a a) (b b))
+  (defstrand init 3 (n1 n2-1) (n2 n2-2) (a a) (b b))
+  (defstrand init 3 (n1 n2-2) (n2 n2-3) (a a) (b b))
+  (defstrand init 3 (n1 n2-3) (n2 n2-4) (a a) (b b))
+  (defstrand init 3 (n1 n2-4) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (6 1)) ((1 2) (0 2)) ((2 2) (1 1)) ((3 2) (2 1))
+    ((4 2) (3 1)) ((5 2) (4 1)) ((6 2) (5 1)))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (operation encryption-test (displaced 7 0 resp 2) (enc n2-5 (ltk a b))
+    (6 1))
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))
+    ((send (cat a n2-0)) (recv (cat n1 (enc n2-0 (ltk a b))))
+      (send (enc n1 (ltk a b))))
+    ((send (cat a n2-1)) (recv (cat n2-0 (enc n2-1 (ltk a b))))
+      (send (enc n2-0 (ltk a b))))
+    ((send (cat a n2-2)) (recv (cat n2-1 (enc n2-2 (ltk a b))))
+      (send (enc n2-1 (ltk a b))))
+    ((send (cat a n2-3)) (recv (cat n2-2 (enc n2-3 (ltk a b))))
+      (send (enc n2-2 (ltk a b))))
+    ((send (cat a n2-4)) (recv (cat n2-3 (enc n2-4 (ltk a b))))
+      (send (enc n2-3 (ltk a b))))
+    ((send (cat a n2)) (recv (cat n2-4 (enc n2 (ltk a b))))
+      (send (enc n2-4 (ltk a b)))))
+  (label 19)
+  (parent 15)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 1))))
+
+(defskeleton mass2
+  (vars (n1 n2 n2-0 n2-1 n2-2 n2-3 n2-4 n2-5 n1-0 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (defstrand init 3 (n1 n2-0) (n2 n2-1) (a a) (b b))
+  (defstrand init 3 (n1 n2-1) (n2 n2-2) (a a) (b b))
+  (defstrand init 3 (n1 n2-2) (n2 n2-3) (a a) (b b))
+  (defstrand init 3 (n1 n2-3) (n2 n2-4) (a a) (b b))
+  (defstrand init 3 (n1 n2-4) (n2 n2-5) (a a) (b b))
+  (defstrand resp 2 (n1 n1-0) (n2 n2-5) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)) ((2 2) (1 1)) ((3 2) (2 1))
+    ((4 2) (3 1)) ((5 2) (4 1)) ((6 2) (5 1)) ((7 1) (6 1)))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (operation encryption-test (added-strand resp 2) (enc n2-5 (ltk a b))
+    (6 1))
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))
+    ((send (cat a n2-0)) (recv (cat n1 (enc n2-0 (ltk a b))))
+      (send (enc n1 (ltk a b))))
+    ((send (cat a n2-1)) (recv (cat n2-0 (enc n2-1 (ltk a b))))
+      (send (enc n2-0 (ltk a b))))
+    ((send (cat a n2-2)) (recv (cat n2-1 (enc n2-2 (ltk a b))))
+      (send (enc n2-1 (ltk a b))))
+    ((send (cat a n2-3)) (recv (cat n2-2 (enc n2-3 (ltk a b))))
+      (send (enc n2-2 (ltk a b))))
+    ((send (cat a n2-4)) (recv (cat n2-3 (enc n2-4 (ltk a b))))
+      (send (enc n2-3 (ltk a b))))
+    ((send (cat a n2-5)) (recv (cat n2-4 (enc n2-5 (ltk a b))))
+      (send (enc n2-4 (ltk a b))))
+    ((recv (cat a n2-5)) (send (cat n1-0 (enc n2-5 (ltk a b))))))
+  (label 20)
+  (parent 15)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 1))))
+
+(comment "Strand bound exceeded--aborting run")
+
+(defskeleton mass2
+  (vars (n1 n2 n2-0 n2-1 n2-2 n2-3 n2-4 n2-5 n2-6 text) (a b name))
+  (defstrand resp 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (defstrand init 3 (n1 n2-0) (n2 n2-1) (a a) (b b))
+  (defstrand init 3 (n1 n2-1) (n2 n2-2) (a a) (b b))
+  (defstrand init 3 (n1 n2-2) (n2 n2-3) (a a) (b b))
+  (defstrand init 3 (n1 n2-3) (n2 n2-4) (a a) (b b))
+  (defstrand init 3 (n1 n2-4) (n2 n2-5) (a a) (b b))
+  (defstrand init 3 (n1 n2-5) (n2 n2-6) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)) ((2 2) (1 1)) ((3 2) (2 1))
+    ((4 2) (3 1)) ((5 2) (4 1)) ((6 2) (5 1)) ((7 2) (6 1)))
+  (non-orig (ltk a b))
+  (uniq-orig n1)
+  (operation encryption-test (added-strand init 3) (enc n2-5 (ltk a b))
+    (6 1))
+  (traces
+    ((recv (cat a n2)) (send (cat n1 (enc n2 (ltk a b))))
+      (recv (enc n1 (ltk a b))))
+    ((send (cat a n2-0)) (recv (cat n1 (enc n2-0 (ltk a b))))
+      (send (enc n1 (ltk a b))))
+    ((send (cat a n2-1)) (recv (cat n2-0 (enc n2-1 (ltk a b))))
+      (send (enc n2-0 (ltk a b))))
+    ((send (cat a n2-2)) (recv (cat n2-1 (enc n2-2 (ltk a b))))
+      (send (enc n2-1 (ltk a b))))
+    ((send (cat a n2-3)) (recv (cat n2-2 (enc n2-3 (ltk a b))))
+      (send (enc n2-2 (ltk a b))))
+    ((send (cat a n2-4)) (recv (cat n2-3 (enc n2-4 (ltk a b))))
+      (send (enc n2-3 (ltk a b))))
+    ((send (cat a n2-5)) (recv (cat n2-4 (enc n2-5 (ltk a b))))
+      (send (enc n2-4 (ltk a b))))
+    ((send (cat a n2-6)) (recv (cat n2-5 (enc n2-6 (ltk a b))))
+      (send (enc n2-5 (ltk a b)))))
+  (label 18)
+  (parent 15)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
diff --git a/tst/missing_contraction.scm b/tst/missing_contraction.scm
new file mode 100644
--- /dev/null
+++ b/tst/missing_contraction.scm
@@ -0,0 +1,54 @@
+; missing-contraction
+;   The purpose in creating this example was to see if
+; CPSA would stubmle when it should find a substitution to
+; solve a test node that ultimately unifies the reception
+; with something *not* in the escape set.  In this case,
+; the receiver's reception is unexplained.  Ordinary
+; contraction finds the map that unifies the names a and b
+; but (enc a n (pubk b)) is not part of the escape set so
+; contraction does not find the substitution that unifies
+; n and m.
+;   Contraction doesn't work that way but CPSA does have
+; another route to finding that shape, but it involves
+; augmentation, or more correctly, displacement.  A
+; displacement will create a sender that uses m as its n,
+; and will unify this with the existing sender, resulting
+; effectively in the substitution we were looking for.
+;   At the time, CPSA failed to do this, because the map
+; that collapses the two sender strands is not a homomorphism
+; because it changes the origination point of m on the new
+; strand.
+
+(defprotocol missing-contraction basic
+  (defrole sender
+    (vars (m n text) (a b name))
+    (trace
+     (send (enc a m (pubk a)))
+     (send (enc a n (pubk b)))))
+  (defrole receiver
+    (vars (m text) (a b name))
+    (trace
+     (recv (enc a m (pubk b))))))
+
+(defskeleton missing-contraction
+  (vars (m text) (a c name))
+  (defstrand sender 2 (m m) (a a))
+  (defstrand receiver 1 (m m) (a a) (b c))
+  (precedes ((0 1) (1 0)))
+  (uniq-orig m)
+  (non-orig (privk a)))
+
+(defskeleton missing-contraction
+  (vars (m text) (a c name))
+  (defstrand sender 1 (m m) (a a))
+  (deflistener (enc a m (pubk c)))
+  (uniq-orig m)
+  (non-orig (privk a)))
+
+(defskeleton missing-contraction
+  (vars (m text) (a b c name))
+  (defstrand sender 2 (m m) (a a) (b b))
+  (defstrand receiver 1 (m m) (a a) (b c))
+  (precedes ((0 1) (1 0)))
+  (uniq-orig m)
+  (non-orig (privk a) (privk b)))
diff --git a/tst/missing_contraction.tst b/tst/missing_contraction.tst
new file mode 100644
--- /dev/null
+++ b/tst/missing_contraction.tst
@@ -0,0 +1,247 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/missing_contraction.scm")
+
+(defprotocol missing-contraction basic
+  (defrole sender
+    (vars (m n text) (a b name))
+    (trace (send (enc a m (pubk a))) (send (enc a n (pubk b)))))
+  (defrole receiver
+    (vars (m text) (a b name))
+    (trace (recv (enc a m (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton missing-contraction
+  (vars (m n text) (a c b name))
+  (defstrand sender 2 (m m) (n n) (a a) (b b))
+  (defstrand receiver 1 (m m) (a a) (b c))
+  (precedes ((0 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig m)
+  (traces ((send (enc a m (pubk a))) (send (enc a n (pubk b))))
+    ((recv (enc a m (pubk c)))))
+  (label 0)
+  (unrealized (1 0))
+  (origs (m (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton missing-contraction
+  (vars (m n text) (a b name))
+  (defstrand sender 2 (m m) (n n) (a a) (b b))
+  (defstrand receiver 1 (m m) (a a) (b a))
+  (precedes ((0 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig m)
+  (operation nonce-test (contracted (c a)) m (1 0) (enc a m (pubk a)))
+  (traces ((send (enc a m (pubk a))) (send (enc a n (pubk b))))
+    ((recv (enc a m (pubk a)))))
+  (label 1)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps ((0 1) ((m m) (a a) (c a) (n n) (b b))))
+  (origs (m (0 0))))
+
+(defskeleton missing-contraction
+  (vars (n text) (a c b name))
+  (defstrand sender 2 (m n) (n n) (a a) (b b))
+  (defstrand receiver 1 (m n) (a a) (b c))
+  (precedes ((0 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test (displaced 2 0 sender 2) m (1 0)
+    (enc a m (pubk a)))
+  (traces ((send (enc a n (pubk a))) (send (enc a n (pubk b))))
+    ((recv (enc a n (pubk c)))))
+  (label 2)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps ((0 1) ((m n) (a a) (c c) (n n) (b b))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol missing-contraction basic
+  (defrole sender
+    (vars (m n text) (a b name))
+    (trace (send (enc a m (pubk a))) (send (enc a n (pubk b)))))
+  (defrole receiver
+    (vars (m text) (a b name))
+    (trace (recv (enc a m (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton missing-contraction
+  (vars (m text) (a c name))
+  (defstrand sender 1 (m m) (a a))
+  (deflistener (enc a m (pubk c)))
+  (non-orig (privk a))
+  (uniq-orig m)
+  (traces ((send (enc a m (pubk a))))
+    ((recv (enc a m (pubk c))) (send (enc a m (pubk c)))))
+  (label 3)
+  (unrealized (1 0))
+  (preskeleton)
+  (origs (m (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton missing-contraction
+  (vars (m text) (a c name))
+  (defstrand sender 1 (m m) (a a))
+  (deflistener (enc a m (pubk c)))
+  (precedes ((0 0) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig m)
+  (traces ((send (enc a m (pubk a))))
+    ((recv (enc a m (pubk c))) (send (enc a m (pubk c)))))
+  (label 4)
+  (parent 3)
+  (unrealized (1 0))
+  (origs (m (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton missing-contraction
+  (vars (m text) (a name))
+  (defstrand sender 1 (m m) (a a))
+  (deflistener (enc a m (pubk a)))
+  (precedes ((0 0) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig m)
+  (operation nonce-test (contracted (c a)) m (1 0) (enc a m (pubk a)))
+  (traces ((send (enc a m (pubk a))))
+    ((recv (enc a m (pubk a))) (send (enc a m (pubk a)))))
+  (label 5)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0 1) ((m m) (a a) (c a))))
+  (origs (m (0 0))))
+
+(defskeleton missing-contraction
+  (vars (m text) (c a b name))
+  (deflistener (enc a m (pubk c)))
+  (defstrand sender 2 (m m) (n m) (a a) (b b))
+  (precedes ((1 1) (0 0)))
+  (non-orig (privk a))
+  (uniq-orig m)
+  (operation nonce-test (displaced 0 2 sender 2) m-0 (1 0)
+    (enc a-0 m-0 (pubk a-0)))
+  (traces ((recv (enc a m (pubk c))) (send (enc a m (pubk c))))
+    ((send (enc a m (pubk a))) (send (enc a m (pubk b)))))
+  (label 6)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((1 0) ((m m) (a a) (c c))))
+  (origs (m (1 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol missing-contraction basic
+  (defrole sender
+    (vars (m n text) (a b name))
+    (trace (send (enc a m (pubk a))) (send (enc a n (pubk b)))))
+  (defrole receiver
+    (vars (m text) (a b name))
+    (trace (recv (enc a m (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton missing-contraction
+  (vars (m n text) (a b c name))
+  (defstrand sender 2 (m m) (n n) (a a) (b b))
+  (defstrand receiver 1 (m m) (a a) (b c))
+  (precedes ((0 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig m)
+  (traces ((send (enc a m (pubk a))) (send (enc a n (pubk b))))
+    ((recv (enc a m (pubk c)))))
+  (label 7)
+  (unrealized (1 0))
+  (origs (m (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton missing-contraction
+  (vars (m n text) (a b name))
+  (defstrand sender 2 (m m) (n n) (a a) (b b))
+  (defstrand receiver 1 (m m) (a a) (b a))
+  (precedes ((0 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig m)
+  (operation nonce-test (contracted (c a)) m (1 0) (enc a m (pubk a)))
+  (traces ((send (enc a m (pubk a))) (send (enc a n (pubk b))))
+    ((recv (enc a m (pubk a)))))
+  (label 8)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0 1) ((m m) (a a) (b b) (c a) (n n))))
+  (origs (m (0 0))))
+
+(defskeleton missing-contraction
+  (vars (n text) (a b c name))
+  (defstrand sender 2 (m n) (n n) (a a) (b b))
+  (defstrand receiver 1 (m n) (a a) (b c))
+  (precedes ((0 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n)
+  (operation nonce-test (displaced 2 0 sender 2) m (1 0)
+    (enc a m (pubk a)))
+  (traces ((send (enc a n (pubk a))) (send (enc a n (pubk b))))
+    ((recv (enc a n (pubk c)))))
+  (label 9)
+  (parent 7)
+  (unrealized (1 0))
+  (origs (n (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton missing-contraction
+  (vars (n text) (a b name))
+  (defstrand sender 2 (m n) (n n) (a a) (b b))
+  (defstrand receiver 1 (m n) (a a) (b a))
+  (precedes ((0 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n)
+  (operation nonce-test (contracted (c a)) n (1 0) (enc a n (pubk a))
+    (enc a n (pubk b)))
+  (traces ((send (enc a n (pubk a))) (send (enc a n (pubk b))))
+    ((recv (enc a n (pubk a)))))
+  (label 10)
+  (parent 9)
+  (seen 8)
+  (realized)
+  (origs (n (0 0)))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton missing-contraction
+  (vars (n text) (a b name))
+  (defstrand sender 2 (m n) (n n) (a a) (b b))
+  (defstrand receiver 1 (m n) (a a) (b b))
+  (precedes ((0 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n)
+  (operation nonce-test (contracted (c b)) n (1 0) (enc a n (pubk a))
+    (enc a n (pubk b)))
+  (traces ((send (enc a n (pubk a))) (send (enc a n (pubk b))))
+    ((recv (enc a n (pubk b)))))
+  (label 11)
+  (parent 9)
+  (realized)
+  (shape)
+  (maps ((0 1) ((m n) (a a) (b b) (c b) (n n))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/mksas b/tst/mksas
new file mode 100644
--- /dev/null
+++ b/tst/mksas
@@ -0,0 +1,46 @@
+# When the binary changes, run the test suite, and look for changes in
+# the output.  The changes are not fatal errors, but for a *.scm input
+# file, an error produced by the binary is fatal.
+
+TSTS	:= $(patsubst %.scm,%_sas.text,$(wildcard *.scm))
+CPSA	= ../dist/build/cpsa4/cpsa4$(EXE)
+DIFF	= ../dist/build/cpsa4diff/cpsa4diff$(EXE)
+SHAPES	= ../dist/build/cpsa4shapes/cpsa4shapes$(EXE)
+SAS	= ../dist/build/cpsa4sas/cpsa4sas$(EXE)
+GRAPH	= ../dist/build/cpsa4graph/cpsa4graph$(EXE)
+CPSAFLAGS = +RTS -M512m -RTS
+
+# The expected answers are in files with the .tst extension.
+
+# Analyze protocols for shapes expecting success
+%.txt:	%.scm $(CPSA)
+	$(CPSA) $(CPSAFLAGS) -o $@ $*.scm
+	-$(DIFF) $(DIFFFLAGS) $*.tst $*.txt
+
+# Analyze protocols for shapes expecting failure
+%.txt:	%.lsp $(CPSA)
+	-$(CPSA) $(CPSAFLAGS) -o $@ $*.lsp
+	-$(DIFF) $(DIFFFLAGS) $*.tst $*.txt
+
+# Extract shapes
+%_shapes.txt:	%.txt
+	$(SHAPES) $(SHAPESFLAGS) -o $@ $<
+
+# Extract shape analysis sentences
+%_sas.text:	%.txt
+	$(SAS) $(SASFLAGS) -o $@ $<
+
+# Visualize output
+%.svg:		%.txt
+	$(GRAPH) -c -o $@ $<
+
+# Visualize output using the expanded format
+%.xhtml:	%.txt
+	$(GRAPH) $(GRAPHFLAGS) -o $@ $<
+
+.PRECIOUS:	%.txt %_shapes.txt
+
+all:	$(TSTS)
+
+clean:
+	-rm *.text *.txt
diff --git a/tst/neq_test.scm b/tst/neq_test.scm
--- a/tst/neq_test.scm
+++ b/tst/neq_test.scm
@@ -1,46 +1,30 @@
-(herald "Inequality constraint test protocol"
-   (comment "First skeleton should have a shape,"
-            "second, and hird should be dead."))
+(herald "Inequality constraint using facts and rules"
+	(comment "First skeleton should have a shape,"
+		 "second should be dead."))
 
-(defprotocol neqtest basic
+(defprotocol neq-test basic
   (defrole init
-     (vars (n1 n2 text) (k skey))
-     (trace
-       (send (cat n1 (enc n1 n2 k)))
-       (recv n2))
-     (non-orig k)
-     (uniq-orig n1 n2)
-  )
-)
+    (vars (n1 n2 text) (k skey))
+    (trace
+     (send (cat n1 (enc n1 n2 k)))
+     (recv n2))
+    (non-orig k)
+    (uniq-orig n1 n2))
+  (defrule neq
+    (forall ((a mesg))
+	    (implies
+	     (fact neq a a)
+	     (false)))))
 
-;;; With no inequality declaration, a shape
-;;; should be found where n1 = n2.
-(defskeleton neqtest
-   (vars (n1 n2 text) (k skey))
-   (defstrand init 2 (n1 n1) (n2 n2) (k k)))
+;;; With no inequality fact,
+;;; a shape should be found where n1 = n2.
+(defskeleton neq-test
+  (vars)
+  (defstrand init 2))
 
-;;; With the inequality declaration that n1 != n2,
+;;; With an inequality fact,
 ;;; no shape should exist.
-(defskeleton neqtest
+(defskeleton neq-test
    (vars (n1 n2 text))
    (defstrand init 2 (n1 n1) (n2 n2))
-   (neq (n1 n2)))
-
-(defprotocol neqtest2 basic
-  (defrole init
-     (vars (n1 n2 n3 text) (k skey))
-     (trace
-       (send (cat n1 (enc n1 n2 n3 k)))
-       (recv n2))
-     (non-orig k)
-     (uniq-orig n1 n2)
-  )
-)
-
-;;; Here, we use the neqlist declaration to force
-;;; deadness, as an alternative.
-(defskeleton neqtest2
-   (vars (n1 n2 n3 text) (k skey))
-   (defstrand init 2 (n1 n1) (n2 n2) (n3 n3) (k k))
-   (neqlist ((n1 n2 n3)))
-)
+   (facts (neq n1 n2)))			;  assert n1 != n2
diff --git a/tst/neq_test.tst b/tst/neq_test.tst
--- a/tst/neq_test.tst
+++ b/tst/neq_test.tst
@@ -1,84 +1,76 @@
-(herald "Inequality constraint test protocol"
+(herald "Inequality constraint using facts and rules"
   (comment "First skeleton should have a shape,"
-    "second, and hird should be dead."))
+    "second should be dead."))
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/neq_test.scm")
 
-(defprotocol neqtest basic
+(defprotocol neq-test basic
   (defrole init
     (vars (n1 n2 text) (k skey))
     (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
     (non-orig k)
-    (uniq-orig n1 n2)))
+    (uniq-orig n1 n2))
+  (defrule neq (forall ((a mesg)) (implies (fact neq a a) (false))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
-(defskeleton neqtest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
+(defskeleton neq-test
+  (vars (k skey) (n1 n2 text))
+  (defstrand init 2 (k k) (n1 n1) (n2 n2))
   (non-orig k)
   (uniq-orig n1 n2)
   (traces ((send (cat n1 (enc n1 n2 k))) (recv n2)))
   (label 0)
   (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
+  (origs (n2 (0 0)) (n1 (0 0)))
   (comment "1 in cohort - 1 not yet seen"))
 
-(defskeleton neqtest
-  (vars (n1 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n1) (k k))
+(defskeleton neq-test
+  (vars (k skey) (n1 text))
+  (defstrand init 2 (k k) (n1 n1) (n2 n1))
   (non-orig k)
   (uniq-orig n1)
   (operation nonce-test (displaced 1 0 init 1) n2 (0 1) (enc n1 n2 k))
   (traces ((send (cat n1 (enc n1 n1 k))) (recv n1)))
   (label 1)
   (parent 0)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((n1 n1) (n2 n1) (k k))))
   (origs (n1 (0 0))))
 
 (comment "Nothing left to do")
 
-(defprotocol neqtest basic
+(defprotocol neq-test basic
   (defrole init
     (vars (n1 n2 text) (k skey))
     (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
     (non-orig k)
-    (uniq-orig n1 n2)))
+    (uniq-orig n1 n2))
+  (defrule neq (forall ((a mesg)) (implies (fact neq a a) (false))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
-(defskeleton neqtest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (neq (n1 n2))
+(defskeleton neq-test
+  (vars (k skey) (n1 n2 text))
+  (defstrand init 2 (k k) (n1 n1) (n2 n2))
   (non-orig k)
   (uniq-orig n1 n2)
+  (facts (neq n1 n2))
   (traces ((send (cat n1 (enc n1 n2 k))) (recv n2)))
   (label 2)
   (unrealized (0 1))
   (dead)
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol neqtest2 basic
-  (defrole init
-    (vars (n1 n2 n3 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 n3 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))
-
-(defskeleton neqtest2
-  (vars (n1 n2 n3 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (n3 n3) (k k))
-  (neqlist ((n1 n2 n3)))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (traces ((send (cat n1 (enc n1 n2 n3 k))) (recv n2)))
-  (label 3)
-  (unrealized (0 1))
-  (dead)
-  (origs (n1 (0 0)) (n2 (0 0)))
+  (origs (n2 (0 0)) (n1 (0 0)))
   (comment "empty cohort"))
 
 (comment "Nothing left to do")
diff --git a/tst/neuman-stubblebine-alt.lisp b/tst/neuman-stubblebine-alt.lisp
new file mode 100644
--- /dev/null
+++ b/tst/neuman-stubblebine-alt.lisp
@@ -0,0 +1,36 @@
+;;; derived from the protocol description in the CPSA tst directory
+
+(defprotocol neuman-stubblebine basic
+  (defrole init
+    (vars (a name) (b name) (ks name) (ra text) (rb text) (ltk-a-ks skey) (k skey) (tb text))
+    (trace (send (cat a ra))
+	   (recv (cat (enc (cat b ra k tb) ltk-a-ks) (enc (cat a k tb) (ltk b ks)) rb))
+	   (send (cat (enc (cat a k tb) (ltk b ks)) (enc rb k)))))
+  (defrole resp
+    (vars (a name) (b name) (ks name) (ra text) (rb text) (k skey) (tb text))
+    (trace (recv (cat a ra))
+	   (send (cat b rb (enc (cat a ra tb) (ltk b ks))))
+	   (recv (cat (enc (cat a k tb) (ltk b ks)) (enc rb k)))))
+  (defrole keyserver
+    (vars (a name) (b name) (ks name) (ra text) (rb text) (k skey) (tb text))
+    (trace (recv (cat b rb (enc (cat a ra tb) (ltk b ks))))
+	   (send (cat (enc (cat b ra k tb) (ltk a ks)) (enc (cat a k tb) (ltk b ks)) rb)))
+    (uniq-orig k)))
+
+(defskeleton neuman-stubblebine
+  (vars (a name) (b name) (ks name) (ra text) (rb text))
+  (defstrand init 3 (a a) (b b) (ks ks) (ra ra) (rb rb))
+  (uniq-orig ra rb)
+  (non-orig (ltk a ks) (ltk b ks)))
+
+(defskeleton neuman-stubblebine
+  (vars (a name) (b name) (ks name) (ra text) (rb text))
+  (defstrand resp 3 (a a) (b b) (ks ks) (ra ra) (rb rb))
+  (uniq-orig ra rb)
+  (non-orig (ltk a ks) (ltk b ks)))
+
+(defskeleton neuman-stubblebine
+  (vars (a name) (b name) (ks name) (ra text) (rb text))
+  (defstrand keyserver 2 (a a) (b b) (ks ks) (ra ra) (rb rb))
+  (uniq-orig ra rb)
+  (non-orig (ltk a ks) (ltk b ks)))
diff --git a/tst/neuman-stubblebine-reauth-tagged.tst b/tst/neuman-stubblebine-reauth-tagged.tst
new file mode 100644
--- /dev/null
+++ b/tst/neuman-stubblebine-reauth-tagged.tst
@@ -0,0 +1,1455 @@
+(herald neuman-stubblebine-reauth (bound 8))
+
+(comment "CPSA 4.3.1")
+(comment "All input read from tst/neuman-stubblebine-reauth-tagged.lsp")
+
+(defprotocol neuman-stubblebine-reauth basic
+  (defrole init
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc "one" rb k)))))
+  (defrole resp
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k)))))
+  (defrole init-reauth
+    (vars (a b ks name) (ra-prime rb-prime text) (k skey) (tb text))
+    (trace (recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc "two" ra-prime k)))
+      (send (enc "three" rb-prime k))))
+  (defrole resp-reauth
+    (vars (a b ks name) (ra-prime rb-prime text) (k skey) (tb text))
+    (trace (recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k))))
+  (defrole keyserver
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime tb-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k))))
+  (label 0)
+  (unrealized (0 2) (1 0))
+  (origs (rb (0 1)) (rb-prime (1 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (precedes ((2 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand keyserver 2)
+    (enc a k tb-0 (ltk b ks)) (1 0))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 2) (1 2) (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((2 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 3 0 resp 2)
+    (enc a ra-0 tb-0 (ltk b ks)) (2 0))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 2) (1 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (precedes ((2 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp 2)
+    (enc a ra-0 tb-0 (ltk b ks)) (2 0))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks))))))
+  (label 3)
+  (parent 1)
+  (unrealized (0 2) (1 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((3 3) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc "three" rb-prime k) (1 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (recv (cat rb-prime (enc "two" ra-prime-0 k)))
+      (send (enc "three" rb-prime k))))
+  (label 4)
+  (parent 2)
+  (unrealized (0 2) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((3 1) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc "three" rb-prime k)
+    (1 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv k) (send k)))
+  (label 5)
+  (parent 2)
+  (unrealized (0 2) (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0 tb-1
+      text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-1) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((3 1) (2 0)) ((4 3) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc "three" rb-prime k) (1 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a-0 k tb-1 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-1 (ltk b-0 ks-0)) ra-prime-0))
+      (recv (cat rb-prime (enc "two" ra-prime-0 k)))
+      (send (enc "three" rb-prime k))))
+  (label 6)
+  (parent 3)
+  (unrealized (0 2) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0)) ((3 1) (2 0))
+    ((4 1) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc "three" rb-prime k)
+    (1 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv k) (send k)))
+  (label 7)
+  (parent 3)
+  (unrealized (0 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((3 3) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (3 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc "two" ra-prime-0 k)))
+      (send (enc "three" rb-prime k))))
+  (label 8)
+  (parent 4)
+  (unrealized (0 2) (3 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((3 1) (2 0)) ((4 3) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-1 tb-0)) k (4 0)
+    (enc a k tb-0 (ltk b ks)) (enc b ra-0 k tb-0 (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc "two" ra-prime-0 k)))
+      (send (enc "three" rb-prime k))))
+  (label 9)
+  (parent 6)
+  (unrealized (0 2) (4 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (3 0))
+    ((3 1) (1 0)) ((3 3) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 4 1 resp-reauth 2)
+    (enc "two" ra-prime-0 k) (3 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc "two" ra-prime k)))
+      (send (enc "three" rb-prime k))))
+  (label 10)
+  (parent 8)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((3 3) (1 2)) ((4 1) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc "two" ra-prime-0 k) (3 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc "two" ra-prime-0 k)))
+      (send (enc "three" rb-prime k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (send (cat rb-prime-0 (enc "two" ra-prime-0 k)))))
+  (label 11)
+  (parent 8)
+  (unrealized (0 2) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((3 3) (1 2)) ((4 1) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc "two" ra-prime-0 k)
+    (3 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc "two" ra-prime-0 k)))
+      (send (enc "three" rb-prime k))) ((recv k) (send k)))
+  (label 12)
+  (parent 8)
+  (unrealized (0 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (4 0)) ((3 1) (2 0))
+    ((4 1) (1 0)) ((4 3) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 5 1 resp-reauth 2)
+    (enc "two" ra-prime-0 k) (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc "two" ra-prime k)))
+      (send (enc "three" rb-prime k))))
+  (label 13)
+  (parent 9)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0
+      rb-prime-0 tb-1 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb-1) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc "two" ra-prime-0 k) (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc "two" ra-prime-0 k)))
+      (send (enc "three" rb-prime k)))
+    ((recv (cat (enc a-0 k tb-1 (ltk b-0 ks-0)) ra-prime-0))
+      (send (cat rb-prime-0 (enc "two" ra-prime-0 k)))))
+  (label 14)
+  (parent 9)
+  (unrealized (0 2) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc "two" ra-prime-0 k)
+    (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc "two" ra-prime-0 k)))
+      (send (enc "three" rb-prime k))) ((recv k) (send k)))
+  (label 15)
+  (parent 9)
+  (unrealized (0 2) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 1))
+    ((3 1) (1 0)) ((3 3) (1 2)) ((4 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc "one" rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc "two" ra-prime k)))
+      (send (enc "three" rb-prime k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc "one" rb k)))))
+  (label 16)
+  (parent 10)
+  (unrealized (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((3 1) (1 0)) ((3 3) (1 2)) ((4 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc "one" rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc "two" ra-prime k)))
+      (send (enc "three" rb-prime k))) ((recv k) (send k)))
+  (label 17)
+  (parent 10)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((3 3) (1 2)) ((4 1) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (4 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc "two" ra-prime-0 k)))
+      (send (enc "three" rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc "two" ra-prime-0 k)))))
+  (label 18)
+  (parent 11)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (4 0)) ((3 1) (2 0))
+    ((4 1) (1 0)) ((4 3) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 5 2 keyserver 2)
+    (enc a k tb-0 (ltk b ks)) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc "two" ra-prime k)))
+      (send (enc "three" rb-prime k))))
+  (label 19)
+  (parent 13)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0
+      rb-prime-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb-0) (a a) (b b) (ks ks))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-1 tb-0)) k (5 0)
+    (enc a k tb-0 (ltk b ks)) (enc b ra-0 k tb-0 (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc "two" ra-prime-0 k)))
+      (send (enc "three" rb-prime k)))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc "two" ra-prime-0 k)))))
+  (label 20)
+  (parent 14)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 1))
+    ((3 1) (1 0)) ((3 3) (1 2)) ((4 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (4 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc "two" ra-prime k)))
+      (send (enc "three" rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc "one" rb k)))))
+  (label 21)
+  (parent 16)
+  (unrealized (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 ra-0 tb-0
+      text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((3 3) (1 2)) ((4 1) (3 2))
+    ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc "one" rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc "two" ra-prime-0 k)))
+      (send (enc "three" rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc "two" ra-prime-0 k))))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc "one" rb k)))))
+  (label 22)
+  (parent 18)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((3 3) (1 2)) ((4 1) (3 2))
+    ((5 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc "one" rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc "two" ra-prime-0 k)))
+      (send (enc "three" rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc "two" ra-prime-0 k))))
+    ((recv k) (send k)))
+  (label 23)
+  (parent 18)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-1 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (5 1)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 1))
+    ((3 1) (2 0)) ((4 1) (1 0)) ((4 3) (1 2)) ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc "one" rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc "two" ra-prime k)))
+      (send (enc "three" rb-prime k)))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc "one" rb k)))))
+  (label 24)
+  (parent 19)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 0)) ((3 1) (2 0))
+    ((4 1) (1 0)) ((4 3) (1 2)) ((5 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc "one" rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc "two" ra-prime k)))
+      (send (enc "three" rb-prime k))) ((recv k) (send k)))
+  (label 25)
+  (parent 19)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 2 keyserver 2)
+    (enc a k tb-0 (ltk b ks)) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc "two" ra-prime-0 k)))
+      (send (enc "three" rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc "two" ra-prime-0 k)))))
+  (label 26)
+  (parent 20)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 1))
+    ((3 1) (1 0)) ((3 3) (1 2)) ((4 0) (0 0)) ((4 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 5 2 keyserver 2)
+    (enc b ra-0 k tb (ltk a ks)) (4 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc "two" ra-prime k)))
+      (send (enc "three" rb-prime k)))
+    ((send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc "one" rb k)))))
+  (label 27)
+  (parent 21)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (4 0)) (rb (0 1)) (ra-prime (3 1))
+    (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 ra-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((3 3) (1 2)) ((4 1) (3 2))
+    ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc "two" ra-prime-0 k)))
+      (send (enc "three" rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc "two" ra-prime-0 k))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc "one" rb k)))))
+  (label 28)
+  (parent 22)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 1)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 1))
+    ((3 1) (2 0)) ((4 1) (1 0)) ((4 3) (1 2)) ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 1) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc "two" ra-prime k)))
+      (send (enc "three" rb-prime k)))
+    ((send (cat a ra-1))
+      (recv
+        (cat (enc b ra-1 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc "one" rb k)))))
+  (label 29)
+  (parent 24)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      ra-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (6 1)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 1) (4 2)) ((6 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc "one" rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc "two" ra-prime-0 k)))
+      (send (enc "three" rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc "two" ra-prime-0 k))))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc "one" rb k)))))
+  (label 30)
+  (parent 26)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (4 2))
+    ((6 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc "one" rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc "two" ra-prime-0 k)))
+      (send (enc "three" rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc "two" ra-prime-0 k))))
+    ((recv k) (send k)))
+  (label 31)
+  (parent 26)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((3 3) (1 2)) ((4 1) (3 2))
+    ((5 0) (0 0)) ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 2 keyserver 2)
+    (enc b ra-0 k tb (ltk a ks)) (5 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc "two" ra-prime-0 k)))
+      (send (enc "three" rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc "two" ra-prime-0 k))))
+    ((send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc "one" rb k)))))
+  (label 32)
+  (parent 28)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (5 0)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 1)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 1))
+    ((3 1) (2 0)) ((4 1) (1 0)) ((4 3) (1 2)) ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 2 keyserver 2)
+    (enc b ra-1 k tb (ltk a ks)) (5 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc "two" ra-prime k)))
+      (send (enc "three" rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc "one" rb k)))))
+  (label 33)
+  (parent 29)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (4 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      ra-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (6 1)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 1) (4 2)) ((6 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 1) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc "two" ra-prime-0 k)))
+      (send (enc "three" rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc "two" ra-prime-0 k))))
+    ((send (cat a ra-1))
+      (recv
+        (cat (enc b ra-1 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc "one" rb k)))))
+  (label 34)
+  (parent 30)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (6 1)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 1) (4 2)) ((6 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 2 keyserver 2)
+    (enc b ra-1 k tb (ltk a ks)) (6 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc "one" rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc "two" ra-prime k)))
+      (recv (enc "three" rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc "two" ra-prime-0 k)))
+      (send (enc "three" rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc "two" ra-prime-0 k))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc "one" rb k)))))
+  (label 35)
+  (parent 34)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(comment "Nothing left to do")
diff --git a/tst/neuman-stubblebine-reauth.lisp b/tst/neuman-stubblebine-reauth.lisp
new file mode 100644
--- /dev/null
+++ b/tst/neuman-stubblebine-reauth.lisp
@@ -0,0 +1,42 @@
+(defprotocol neuman-stubblebine basic
+  (defrole init
+    (vars (a name) (b name) (ks name) (ra text) (ra-prime text) (rb text) (rb-prime text) (k skey) (tb text))
+    (trace (send (cat a ra))
+	   (recv (cat (enc (cat b ra k tb) (ltk a ks)) (enc (cat a k tb) (ltk b ks)) rb))
+	   (send (cat (enc (cat a k tb) (ltk b ks)) (enc rb k)))
+	   (send (cat (enc (cat a k tb) (ltk b ks)) ra-prime))
+	   (recv (cat rb-prime (enc ra-prime k)))
+	   (send (enc rb-prime k))))
+  (defrole resp
+    (vars (a name) (b name) (ks name) (ra text) (ra-prime text) (rb text) (rb-prime text) (k skey) (tb text))
+    (trace (recv (cat a ra))
+	   (send (cat b rb (enc (cat a ra tb) (ltk b ks))))
+	   (recv (cat (enc (cat a k tb) (ltk b ks)) (enc rb k)))
+	   (recv (cat (enc (cat a k tb) (ltk b ks)) ra-prime))
+	   (send (cat rb-prime (enc ra-prime k)))
+	   (recv (enc rb-prime k))))
+  (defrole keyserver
+    (vars (a name) (b name) (ks name) (ra text) (rb text) (k skey) (tb text))
+    (trace (recv (cat b rb (enc (cat a ra tb) (ltk b ks))))
+	   (send (cat (enc (cat b ra k tb) (ltk a ks)) (enc (cat a k tb) (ltk b ks)) rb)))
+    (uniq-orig k)))
+
+;(defskeleton neuman-stubblebine
+;  (vars (a name) (b name) (k skey) (ks name) (ra text) (rb text))
+;  (defstrand init 6 (a a) (b b) (ks ks) (ra ra) (rb rb))
+;  (deflistener k)
+;  (uniq-orig ra rb)
+;  (non-orig (ltk a ks) (ltk b ks)))
+
+(defskeleton neuman-stubblebine
+  (vars (a name) (b name) (ks name) (ra text) (rb text) (k skey))
+  (defstrand resp 6 (a a) (b b) (ks ks) (ra ra) (rb rb) (k k))
+ ; (deflistener k)
+  (uniq-orig ra rb)
+  (non-orig (ltk a ks) (ltk b ks)))
+
+;(defskeleton neuman-stubblebine
+;  (vars (a name) (b name) (ks name) (ra text) (rb text))
+;  (defstrand keyserver 2 (a a) (b b) (ks ks) (ra ra) (rb rb))
+;  (uniq-orig ra rb)
+;  (non-orig (ltk a ks) (ltk b ks)))
diff --git a/tst/neuman-stubblebine-reauth.lsp b/tst/neuman-stubblebine-reauth.lsp
new file mode 100644
--- /dev/null
+++ b/tst/neuman-stubblebine-reauth.lsp
@@ -0,0 +1,40 @@
+(herald neuman-stubblebine-reauth (bound 8))
+
+(defprotocol neuman-stubblebine-reauth basic
+  (defrole init (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace
+     (send (cat a ra))
+     (recv (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+     (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (defrole resp (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace
+     (recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+     (recv (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (defrole init-reauth
+    (vars (a b ks name) (ra-prime rb-prime text) (k skey) (tb text))
+    (trace
+     (recv (enc a k tb (ltk b ks)))
+     (send (cat (enc a k tb (ltk b ks)) ra-prime))
+     (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k))))
+  (defrole resp-reauth
+    (vars (a b ks name) (ra-prime rb-prime text) (k skey) (tb text))
+    (trace
+     (recv (cat (enc a k tb (ltk b ks)) ra-prime))
+     (send (cat rb-prime (enc ra-prime k)))
+     (recv (enc rb-prime k))))
+  (defrole keyserver
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace
+     (recv (cat b rb (enc a ra tb (ltk b ks))))
+     (send (cat (enc b ra k tb (ltk a ks))
+		(enc a k tb (ltk b ks)) rb)))
+    (uniq-orig k)))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (ra rb-0 tb rb text) (a b ks name) (k skey)
+	(ra-prime rb-prime text))
+  (defstrand resp 3 (a a) (b b) (ks ks) (ra ra) (rb rb) (k k) (tb tb))
+  (defstrand resp-reauth 3 (a a) (b b) (ks ks) (k k) (ra-prime ra-prime)
+    (rb-prime rb-prime))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb k ra-prime rb-prime))
diff --git a/tst/neuman-stubblebine-reauth.tst b/tst/neuman-stubblebine-reauth.tst
new file mode 100644
--- /dev/null
+++ b/tst/neuman-stubblebine-reauth.tst
@@ -0,0 +1,20560 @@
+(herald neuman-stubblebine-reauth (bound 8))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/neuman-stubblebine-reauth.lsp")
+
+(defprotocol neuman-stubblebine-reauth basic
+  (defrole init
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (defrole resp
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (defrole init-reauth
+    (vars (a b ks name) (ra-prime rb-prime text) (k skey) (tb text))
+    (trace (recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k))))
+  (defrole resp-reauth
+    (vars (a b ks name) (ra-prime rb-prime text) (k skey) (tb text))
+    (trace (recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k))))
+  (defrole keyserver
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime tb-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k))))
+  (label 0)
+  (unrealized (0 2) (1 0))
+  (origs (rb (0 1)) (rb-prime (1 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (precedes ((2 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand keyserver 2)
+    (enc a k tb-0 (ltk b ks)) (1 0))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 2) (1 2) (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((2 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 3 0 resp 2)
+    (enc a ra-0 tb-0 (ltk b ks)) (2 0))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 2) (1 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (precedes ((2 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp 2)
+    (enc a ra-0 tb-0 (ltk b ks)) (2 0))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks))))))
+  (label 3)
+  (parent 1)
+  (unrealized (0 2) (1 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((3 3) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc rb-prime k) (1 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k))))
+  (label 4)
+  (parent 2)
+  (unrealized (0 2) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((3 2) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb-prime k)
+    (1 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb-prime))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb-prime k)))))
+  (label 5)
+  (parent 2)
+  (unrealized (0 2) (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((3 1) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc rb-prime k) (1 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k)))))
+  (label 6)
+  (parent 2)
+  (unrealized (0 2) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((3 1) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb-prime k) (1 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv k) (send k)))
+  (label 7)
+  (parent 2)
+  (unrealized (0 2) (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0 tb-1
+      text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-1) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((3 1) (2 0)) ((4 3) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc rb-prime k) (1 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a-0 k tb-1 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-1 (ltk b-0 ks-0)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k))))
+  (label 8)
+  (parent 3)
+  (unrealized (0 2) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-1 tb-1 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb-prime) (tb tb-1) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((1 1) (4 1)) ((2 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0))
+    ((4 2) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb-prime k)
+    (1 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-1 (ltk a-0 ks-0))
+          (enc a-0 k tb-1 (ltk b-0 ks-0)) rb-prime))
+      (send (cat (enc a-0 k tb-1 (ltk b-0 ks-0)) (enc rb-prime k)))))
+  (label 9)
+  (parent 3)
+  (unrealized (0 2) (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 rb-prime-0 tb-1
+      text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb-1) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0))
+    ((4 1) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc rb-prime k) (1 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (cat (enc a-0 k tb-1 (ltk b-0 ks-0)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k)))))
+  (label 10)
+  (parent 3)
+  (unrealized (0 2) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0)) ((3 1) (2 0))
+    ((4 1) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb-prime k) (1 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv k) (send k)))
+  (label 11)
+  (parent 3)
+  (unrealized (0 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((3 3) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (3 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k))))
+  (label 12)
+  (parent 4)
+  (unrealized (0 2) (3 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((3 2) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (3 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k)))))
+  (label 13)
+  (parent 5)
+  (unrealized (0 2) (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((3 1) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (3 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k)))))
+  (label 14)
+  (parent 6)
+  (unrealized (0 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((3 1) (2 0)) ((4 3) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-1 tb-0)) k (4 0)
+    (enc a k tb-0 (ltk b ks)) (enc b ra-0 k tb-0 (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k))))
+  (label 15)
+  (parent 8)
+  (unrealized (0 2) (4 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb-prime) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (precedes ((1 1) (4 1)) ((2 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0))
+    ((4 2) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-1 tb-0)) k (4 1)
+    (enc a k tb-0 (ltk b ks)) (enc b ra-0 k tb-0 (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((send (cat a ra-1))
+      (recv
+        (cat (enc b ra-1 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb-0 (ltk b ks)) (enc rb-prime k)))))
+  (label 16)
+  (parent 9)
+  (unrealized (0 2) (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb-0) (a a) (b b) (ks ks))
+  (precedes ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0))
+    ((4 1) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-1 tb-0)) k (4 0)
+    (enc a k tb-0 (ltk b ks)) (enc b ra-0 k tb-0 (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k)))))
+  (label 17)
+  (parent 10)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((3 3) (1 2)) ((4 3) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-0 k) (3 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))))
+  (label 18)
+  (parent 12)
+  (unrealized (0 2) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 1)) ((3 3) (1 2)) ((4 2) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-0 k)
+    (3 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-0 k)))))
+  (label 19)
+  (parent 12)
+  (unrealized (0 2) (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (3 0))
+    ((3 1) (1 0)) ((3 3) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 4 1 resp-reauth 2)
+    (enc ra-prime-0 k) (3 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k))))
+  (label 20)
+  (parent 12)
+  (unrealized (0 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((3 3) (1 2)) ((4 1) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-0 k) (3 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k)))))
+  (label 21)
+  (parent 12)
+  (unrealized (0 2) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((3 3) (1 2)) ((4 1) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-0 k)
+    (3 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv k) (send k)))
+  (label 22)
+  (parent 12)
+  (unrealized (0 2) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((3 0) (0 0)) ((3 2) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 4 2 keyserver 2)
+    (enc b ra-0 k tb (ltk a ks)) (3 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k)))))
+  (label 23)
+  (parent 13)
+  (unrealized (0 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((3 1) (1 2)) ((4 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 24)
+  (parent 14)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 1))
+    ((3 1) (1 2)) ((4 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 25)
+  (parent 14)
+  (unrealized (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb ra-prime rb-prime rb rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb ra-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((1 1) (3 0)) ((2 1) (1 0))
+    ((3 1) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra ra-prime rb-prime)
+  (operation encryption-test (displaced 4 1 resp-reauth 2) (enc rb-0 k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b ra-prime (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc ra-prime k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k)))))
+  (label 26)
+  (parent 14)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb ra-prime) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra-prime (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 rb-prime-1 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-1)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((3 1) (1 2)) ((4 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-1 (enc rb k)))))
+  (label 27)
+  (parent 14)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((3 1) (1 2)) ((4 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k)))) ((recv k) (send k)))
+  (label 28)
+  (parent 14)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0
+      ra-prime-1 tb-1 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-1) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 3) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-0 k) (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a-0 k tb-1 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-1 (ltk b-0 ks-0)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))))
+  (label 29)
+  (parent 15)
+  (unrealized (0 2) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0 ra-1 tb-1
+      text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb ra-prime-0) (tb tb-1) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 2) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-0 k)
+    (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-1 (ltk a-0 ks-0))
+          (enc a-0 k tb-1 (ltk b-0 ks-0)) ra-prime-0))
+      (send (cat (enc a-0 k tb-1 (ltk b-0 ks-0)) (enc ra-prime-0 k)))))
+  (label 30)
+  (parent 15)
+  (unrealized (0 2) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (4 0)) ((3 1) (2 0))
+    ((4 1) (1 0)) ((4 3) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 5 1 resp-reauth 2)
+    (enc ra-prime-0 k) (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k))))
+  (label 31)
+  (parent 15)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0
+      rb-prime-0 tb-1 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb-1) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-0 k) (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a-0 k tb-1 (ltk b-0 ks-0)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k)))))
+  (label 32)
+  (parent 15)
+  (unrealized (0 2) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-0 k)
+    (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv k) (send k)))
+  (label 33)
+  (parent 15)
+  (unrealized (0 2) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (precedes ((1 1) (4 1)) ((2 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0))
+    ((4 2) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 5 2 keyserver 2)
+    (enc b ra-1 k tb-0 (ltk a ks)) (4 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb-0 (ltk b ks)) (enc rb-prime k)))))
+  (label 34)
+  (parent 16)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((1 1) (4 0)) ((2 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0))
+    ((4 1) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 5 2 keyserver 2)
+    (enc a k tb-0 (ltk b ks)) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k)))))
+  (label 35)
+  (parent 17)
+  (unrealized (0 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((3 3) (1 2)) ((4 3) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (4 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))))
+  (label 36)
+  (parent 18)
+  (unrealized (0 2) (4 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 1)) ((3 3) (1 2)) ((4 2) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (4 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k)))))
+  (label 37)
+  (parent 19)
+  (unrealized (0 2) (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((3 1) (1 0)) ((3 3) (1 2)) ((4 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 38)
+  (parent 20)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 1))
+    ((3 1) (1 0)) ((3 3) (1 2)) ((4 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 39)
+  (parent 20)
+  (unrealized (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((3 1) (1 0)) ((3 3) (1 2)) ((4 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 40)
+  (parent 20)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((3 1) (1 0)) ((3 3) (1 2)) ((4 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv k) (send k)))
+  (label 41)
+  (parent 20)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((3 3) (1 2)) ((4 1) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (4 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k)))))
+  (label 42)
+  (parent 21)
+  (unrealized (0 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((3 0) (0 0)) ((3 2) (1 2)) ((4 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 43)
+  (parent 23)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 1))
+    ((3 0) (0 0)) ((3 2) (1 2)) ((4 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 44)
+  (parent 23)
+  (unrealized (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb ra-prime rb-prime rb text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb ra-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((1 1) (3 1)) ((2 1) (1 0))
+    ((3 0) (0 0)) ((3 2) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra ra-prime rb-prime)
+  (operation encryption-test (displaced 4 1 resp-reauth 2) (enc rb-0 k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b ra-prime (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc ra-prime k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k)))))
+  (label 45)
+  (parent 23)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb ra-prime) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (3 0)) (ra-prime (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((3 0) (0 0)) ((3 2) (1 2)) ((4 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 46)
+  (parent 23)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((3 0) (0 0)) ((3 2) (1 2)) ((4 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv k) (send k)))
+  (label 47)
+  (parent 23)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((3 1) (1 2)) ((4 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (4 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 48)
+  (parent 24)
+  (unrealized (4 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 1))
+    ((3 1) (1 2)) ((4 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (4 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 49)
+  (parent 25)
+  (unrealized (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 rb-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-1)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((3 1) (1 2)) ((4 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (4 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb))
+      (send (cat rb-prime-1 (enc rb k)))))
+  (label 50)
+  (parent 27)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0
+      ra-prime-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a) (b b) (ks ks))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 3) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-1 tb-0)) k (5 0)
+    (enc a k tb-0 (ltk b ks)) (enc b ra-0 k tb-0 (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))))
+  (label 51)
+  (parent 29)
+  (unrealized (0 2) (5 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0 ra-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb ra-prime-0) (tb tb-0) (a a)
+    (b b) (ks ks))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 2) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-1 tb-0)) k (5 1)
+    (enc a k tb-0 (ltk b ks)) (enc b ra-0 k tb-0 (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra-1))
+      (recv
+        (cat (enc b ra-1 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb-0 (ltk b ks)) (enc ra-prime-0 k)))))
+  (label 52)
+  (parent 30)
+  (unrealized (0 2) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (4 0)) ((3 1) (2 0))
+    ((4 1) (1 0)) ((4 3) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 5 2 keyserver 2)
+    (enc a k tb-0 (ltk b ks)) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k))))
+  (label 53)
+  (parent 31)
+  (unrealized (0 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0
+      rb-prime-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb-0) (a a) (b b) (ks ks))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-1 tb-0)) k (5 0)
+    (enc a k tb-0 (ltk b ks)) (enc b ra-0 k tb-0 (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k)))))
+  (label 54)
+  (parent 32)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((1 1) (4 1)) ((2 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0))
+    ((4 2) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 5 2 keyserver 2)
+    (enc a k tb-0 (ltk b ks)) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k)))))
+  (label 55)
+  (parent 34)
+  (unrealized (0 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 ra-prime-0
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 0)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((3 1) (2 0)) ((4 1) (1 2)) ((5 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 56)
+  (parent 35)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 ra-1 tb-0
+      text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (5 1)) ((1 1) (4 0)) ((2 1) (1 0)) ((2 1) (5 1))
+    ((3 1) (2 0)) ((4 1) (1 2)) ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 57)
+  (parent 35)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra ra-prime rb-prime tb ra-0 rb rb-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb ra-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((1 1) (4 0)) ((2 1) (1 0))
+    ((3 1) (2 0)) ((4 1) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra ra-prime rb-prime)
+  (operation encryption-test (displaced 5 1 resp-reauth 2) (enc rb-1 k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b ra-prime (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc ra-prime k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra-0)) (send (cat b rb-0 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k)))))
+  (label 58)
+  (parent 35)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb ra-prime) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra-prime (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 rb-prime-1
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-1)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 0)) ((1 1) (4 0)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-1 (enc rb k)))))
+  (label 59)
+  (parent 35)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (4 0)) ((2 1) (1 0)) ((2 1) (5 0)) ((3 1) (2 0))
+    ((4 1) (1 2)) ((5 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k)))) ((recv k) (send k)))
+  (label 60)
+  (parent 35)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 3) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-1 k) (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 61)
+  (parent 36)
+  (unrealized (0 2) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-0 tb-0
+      text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 1)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 2) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-1 k)
+    (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-1 k)))))
+  (label 62)
+  (parent 36)
+  (unrealized (0 2) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((3 3) (1 2)) ((4 1) (1 0)) ((4 3) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 5 1 resp-reauth 2)
+    (enc ra-prime-1 k) (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k))))
+  (label 63)
+  (parent 36)
+  (unrealized (0 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-1 k) (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 64)
+  (parent 36)
+  (unrealized (0 2) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-1 k)
+    (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))) ((recv k) (send k)))
+  (label 65)
+  (parent 36)
+  (unrealized (0 2) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 1)) ((3 3) (1 2)) ((4 0) (0 0))
+    ((4 2) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 5 2 keyserver 2)
+    (enc b ra-0 k tb (ltk a ks)) (4 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k)))))
+  (label 66)
+  (parent 37)
+  (unrealized (0 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((3 1) (1 0)) ((3 3) (1 2)) ((4 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (4 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 67)
+  (parent 38)
+  (unrealized (4 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 1))
+    ((3 1) (1 0)) ((3 3) (1 2)) ((4 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (4 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 68)
+  (parent 39)
+  (unrealized (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((3 1) (1 0)) ((3 3) (1 2)) ((4 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (4 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 69)
+  (parent 40)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (3 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 ra-prime-1
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((3 3) (1 2)) ((4 1) (3 2))
+    ((5 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k))))
+  (label 70)
+  (parent 42)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 ra-0 tb-0
+      text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((3 3) (1 2)) ((4 1) (3 2))
+    ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 71)
+  (parent 42)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb ra-prime rb-prime rb ra-prime-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb ra-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((1 1) (3 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((3 3) (1 2)) ((4 1) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra ra-prime rb-prime)
+  (operation encryption-test (displaced 5 1 resp-reauth 2) (enc rb-0 k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b ra-prime (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc ra-prime k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k)))))
+  (label 72)
+  (parent 42)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb ra-prime) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra-prime (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 rb-prime-1
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-1)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((3 3) (1 2)) ((4 1) (3 2))
+    ((5 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-1 (enc rb k)))))
+  (label 73)
+  (parent 42)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((3 3) (1 2)) ((4 1) (3 2))
+    ((5 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k)))) ((recv k) (send k)))
+  (label 74)
+  (parent 42)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((3 0) (0 0)) ((3 2) (1 2)) ((4 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (4 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 75)
+  (parent 43)
+  (unrealized (4 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 1))
+    ((3 0) (0 0)) ((3 2) (1 2)) ((4 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (4 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 76)
+  (parent 44)
+  (unrealized (4 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((3 0) (0 0)) ((3 2) (1 2)) ((4 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (4 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 77)
+  (parent 46)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (3 0)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 ra-prime-1
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (1 2)) ((4 3) (0 2)) ((5 3) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-0 k) (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))))
+  (label 78)
+  (parent 48)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 ra-0 tb-0
+      text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((3 1) (1 2)) ((4 3) (0 2)) ((5 2) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-0 k)
+    (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-0 k)))))
+  (label 79)
+  (parent 48)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((1 1) (4 2)) ((2 1) (4 0))
+    ((3 1) (1 2)) ((4 1) (1 0)) ((4 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 5 1 resp-reauth 2)
+    (enc ra-prime-0 k) (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb (enc ra-prime k))) (send (enc rb k))))
+  (label 80)
+  (parent 48)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (4 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 rb-prime-1
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (1 2)) ((4 3) (0 2)) ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-0 k) (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (send (cat rb-prime-1 (enc ra-prime-0 k)))))
+  (label 81)
+  (parent 48)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (1 2)) ((4 3) (0 2)) ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-0 k)
+    (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv k) (send k)))
+  (label 82)
+  (parent 48)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 1))
+    ((3 1) (1 2)) ((4 0) (0 0)) ((4 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 5 2 keyserver 2)
+    (enc b ra-0 k tb (ltk a ks)) (4 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 83)
+  (parent 49)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (4 0)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0
+      ra-prime-1 ra-prime-2 tb-1 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb-1) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 3) (4 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a-0 k tb-1 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-1 (ltk b-0 ks-0)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 84)
+  (parent 51)
+  (unrealized (0 2) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0
+      ra-prime-1 ra-1 tb-1 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb ra-prime-1) (tb tb-1) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 3) (4 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-1 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-1 (ltk a-0 ks-0))
+          (enc a-0 k tb-1 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat (enc a-0 k tb-1 (ltk b-0 ks-0)) (enc ra-prime-1 k)))))
+  (label 85)
+  (parent 51)
+  (unrealized (0 2) (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb-0) (a a) (b b) (ks ks))
+  (precedes ((1 1) (5 2)) ((2 1) (0 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (1 0)) ((5 3) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 1 resp-reauth 2)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k))))
+  (label 86)
+  (parent 51)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0
+      ra-prime-1 rb-prime-0 tb-1 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb-1) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a-0 k tb-1 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 87)
+  (parent 51)
+  (unrealized (0 2) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0
+      ra-prime-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-1 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))) ((recv k) (send k)))
+  (label 88)
+  (parent 51)
+  (unrealized (0 2) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb-0) (a a)
+    (b b) (ks ks))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 2) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 2 keyserver 2)
+    (enc b ra-1 k tb-0 (ltk a ks)) (5 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb-0 (ltk b ks)) (enc ra-prime-0 k)))))
+  (label 89)
+  (parent 52)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((3 1) (2 0)) ((4 1) (1 0)) ((4 3) (1 2)) ((5 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 90)
+  (parent 53)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-1 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (5 1)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 1))
+    ((3 1) (2 0)) ((4 1) (1 0)) ((4 3) (1 2)) ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 91)
+  (parent 53)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 0)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((3 1) (2 0)) ((4 1) (1 0)) ((4 3) (1 2)) ((5 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 92)
+  (parent 53)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 0)) ((3 1) (2 0))
+    ((4 1) (1 0)) ((4 3) (1 2)) ((5 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv k) (send k)))
+  (label 93)
+  (parent 53)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 2 keyserver 2)
+    (enc a k tb-0 (ltk b ks)) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k)))))
+  (label 94)
+  (parent 54)
+  (unrealized (0 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 1)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((3 1) (2 0)) ((4 2) (1 2)) ((5 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 95)
+  (parent 55)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-1 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (5 1)) ((1 1) (4 1)) ((2 1) (1 0)) ((2 1) (5 1))
+    ((3 1) (2 0)) ((4 2) (1 2)) ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 96)
+  (parent 55)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra ra-prime rb-prime tb ra-0 rb rb-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb ra-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((1 1) (4 1)) ((2 1) (1 0))
+    ((3 1) (2 0)) ((4 2) (1 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra ra-prime rb-prime)
+  (operation encryption-test (displaced 5 1 resp-reauth 2) (enc rb-1 k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b ra-prime (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc ra-prime k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra-0)) (send (cat b rb-0 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k)))))
+  (label 97)
+  (parent 55)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb ra-prime) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra-prime (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 0)) ((1 1) (4 1)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((3 1) (2 0)) ((4 2) (1 2)) ((5 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 98)
+  (parent 55)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (4 1)) ((2 1) (1 0)) ((2 1) (5 0)) ((3 1) (2 0))
+    ((4 2) (1 2)) ((5 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv k) (send k)))
+  (label 99)
+  (parent 55)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 ra-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 2)) ((1 1) (4 0)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((3 1) (2 0)) ((4 1) (1 2)) ((5 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 100)
+  (parent 56)
+  (unrealized (5 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 ra-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 1)) ((1 1) (4 0)) ((2 1) (1 0)) ((2 1) (5 1))
+    ((3 1) (2 0)) ((4 1) (1 2)) ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 1) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((send (cat a ra-1))
+      (recv
+        (cat (enc b ra-1 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 101)
+  (parent 57)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 rb-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-1)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 0)) ((1 1) (4 0)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb))
+      (send (cat rb-prime-1 (enc rb k)))))
+  (label 102)
+  (parent 59)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 3) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 103)
+  (parent 61)
+  (unrealized (0 2) (5 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 1)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 2) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k)))))
+  (label 104)
+  (parent 62)
+  (unrealized (0 2) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 3) (1 2)) ((4 1) (1 0)) ((4 3) (3 2))
+    ((5 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k))))
+  (label 105)
+  (parent 63)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((3 3) (1 2)) ((4 1) (1 0)) ((4 3) (3 2))
+    ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 106)
+  (parent 63)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 3) (1 2)) ((4 1) (1 0)) ((4 3) (3 2))
+    ((5 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 107)
+  (parent 63)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 3) (1 2)) ((4 1) (1 0)) ((4 3) (3 2))
+    ((5 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k))) ((recv k) (send k)))
+  (label 108)
+  (parent 63)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 109)
+  (parent 64)
+  (unrealized (0 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 0)) ((3 3) (1 2)) ((4 0) (0 0))
+    ((4 2) (3 2)) ((5 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k))))
+  (label 110)
+  (parent 66)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 1)) ((3 3) (1 2)) ((4 0) (0 0))
+    ((4 2) (3 2)) ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 111)
+  (parent 66)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb ra-prime rb-prime rb ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb ra-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((1 1) (3 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 1)) ((3 3) (1 2)) ((4 0) (0 0))
+    ((4 2) (3 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra ra-prime rb-prime)
+  (operation encryption-test (displaced 5 1 resp-reauth 2) (enc rb-0 k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b ra-prime (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc ra-prime k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k)))))
+  (label 112)
+  (parent 66)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb ra-prime) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (4 0)) (ra-prime (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 0)) ((3 3) (1 2)) ((4 0) (0 0))
+    ((4 2) (3 2)) ((5 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 113)
+  (parent 66)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 0)) ((3 3) (1 2)) ((4 0) (0 0))
+    ((4 2) (3 2)) ((5 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv k) (send k)))
+  (label 114)
+  (parent 66)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (1 0)) ((3 3) (1 2)) ((4 3) (0 2))
+    ((5 3) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-0 k) (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))))
+  (label 115)
+  (parent 67)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((3 1) (1 0)) ((3 3) (1 2)) ((4 3) (0 2))
+    ((5 2) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-0 k)
+    (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-0 k)))))
+  (label 116)
+  (parent 67)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (1 0)) ((3 3) (1 2)) ((4 3) (0 2))
+    ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-0 k) (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k)))))
+  (label 117)
+  (parent 67)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (1 0)) ((3 3) (1 2)) ((4 3) (0 2))
+    ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-0 k)
+    (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv k) (send k)))
+  (label 118)
+  (parent 67)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 1))
+    ((3 1) (1 0)) ((3 3) (1 2)) ((4 0) (0 0)) ((4 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 5 2 keyserver 2)
+    (enc b ra-0 k tb (ltk a ks)) (4 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 119)
+  (parent 68)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (4 0)) (rb (0 1)) (ra-prime (3 1))
+    (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((3 3) (1 2)) ((4 1) (3 2))
+    ((5 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k))))
+  (label 120)
+  (parent 70)
+  (unrealized (5 2))
+  (comment "6 in cohort - 6 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 ra-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((3 3) (1 2)) ((4 1) (3 2))
+    ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 121)
+  (parent 71)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 rb-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-1)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((3 3) (1 2)) ((4 1) (3 2))
+    ((5 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb))
+      (send (cat rb-prime-1 (enc rb k)))))
+  (label 122)
+  (parent 73)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 0) (0 0)) ((3 2) (1 2)) ((4 3) (0 2))
+    ((5 3) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-0 k) (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))))
+  (label 123)
+  (parent 75)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((3 0) (0 0)) ((3 2) (1 2)) ((4 3) (0 2))
+    ((5 2) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-0 k)
+    (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-0 k)))))
+  (label 124)
+  (parent 75)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((1 1) (4 2)) ((2 1) (4 0))
+    ((3 0) (0 0)) ((3 2) (1 2)) ((4 1) (1 0)) ((4 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 5 1 resp-reauth 2)
+    (enc ra-prime-0 k) (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb (enc ra-prime k))) (send (enc rb k))))
+  (label 125)
+  (parent 75)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (3 0)) (rb (0 1)) (ra-prime (4 1))
+    (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 0) (0 0)) ((3 2) (1 2)) ((4 3) (0 2))
+    ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-0 k) (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k)))))
+  (label 126)
+  (parent 75)
+  (unrealized (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 0) (0 0)) ((3 2) (1 2)) ((4 3) (0 2))
+    ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-0 k)
+    (4 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv k) (send k)))
+  (label 127)
+  (parent 75)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (1 2)) ((4 3) (0 2)) ((5 3) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))))
+  (label 128)
+  (parent 78)
+  (unrealized (5 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 ra-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((3 1) (1 2)) ((4 3) (0 2)) ((5 2) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k)))))
+  (label 129)
+  (parent 79)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 rb-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (1 2)) ((4 3) (0 2)) ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-1 (enc ra-prime-0 k)))))
+  (label 130)
+  (parent 81)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0
+      ra-prime-1 ra-prime-2 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb-0) (a a) (b b) (ks ks))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 3) (4 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-1 tb-0)) k (6 0)
+    (enc a k tb-0 (ltk b ks)) (enc b ra-0 k tb-0 (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 131)
+  (parent 84)
+  (unrealized (0 2) (6 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0
+      ra-prime-1 ra-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb ra-prime-1) (tb tb-0) (a a)
+    (b b) (ks ks))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 3) (4 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-1 tb-0)) k (6 1)
+    (enc a k tb-0 (ltk b ks)) (enc b ra-0 k tb-0 (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra-1))
+      (recv
+        (cat (enc b ra-1 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb-0 (ltk b ks)) (enc ra-prime-1 k)))))
+  (label 132)
+  (parent 85)
+  (unrealized (0 2) (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((1 1) (5 2)) ((2 1) (0 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (1 0)) ((5 3) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 2 keyserver 2)
+    (enc a k tb-0 (ltk b ks)) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k))))
+  (label 133)
+  (parent 86)
+  (unrealized (0 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0
+      ra-prime-1 rb-prime-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb-0) (a a) (b b) (ks ks))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test
+    (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-1 tb-0)) k (6 0)
+    (enc a k tb-0 (ltk b ks)) (enc b ra-0 k tb-0 (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 134)
+  (parent 87)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 2) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 2 keyserver 2)
+    (enc a k tb-0 (ltk b ks)) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k)))))
+  (label 135)
+  (parent 89)
+  (unrealized (0 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 2)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((3 1) (2 0)) ((4 1) (1 0)) ((4 3) (1 2)) ((5 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 136)
+  (parent 90)
+  (unrealized (5 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 1)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 1))
+    ((3 1) (2 0)) ((4 1) (1 0)) ((4 3) (1 2)) ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 1) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((send (cat a ra-1))
+      (recv
+        (cat (enc b ra-1 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 137)
+  (parent 91)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 0)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((3 1) (2 0)) ((4 1) (1 0)) ((4 3) (1 2)) ((5 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 138)
+  (parent 92)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (4 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      ra-prime-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (6 2)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 1) (4 2)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k))))
+  (label 139)
+  (parent 94)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      ra-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (6 1)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 1) (4 2)) ((6 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 140)
+  (parent 94)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra ra-prime rb-prime tb ra-0 rb rb-0 ra-prime-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb ra-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((1 1) (4 2)) ((2 1) (1 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra ra-prime rb-prime)
+  (operation encryption-test (displaced 6 1 resp-reauth 2) (enc rb-1 k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b ra-prime (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc ra-prime k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra-0)) (send (cat b rb-0 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k)))))
+  (label 141)
+  (parent 94)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb ra-prime) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra-prime (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      rb-prime-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-1)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (6 0)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 1) (4 2)) ((6 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-1 (enc rb k)))))
+  (label 142)
+  (parent 94)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (4 2))
+    ((6 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k)))) ((recv k) (send k)))
+  (label 143)
+  (parent 94)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 2)) ((1 1) (4 1)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((3 1) (2 0)) ((4 2) (1 2)) ((5 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 144)
+  (parent 95)
+  (unrealized (5 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 1)) ((1 1) (4 1)) ((2 1) (1 0)) ((2 1) (5 1))
+    ((3 1) (2 0)) ((4 2) (1 2)) ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 1) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((send (cat a ra-1))
+      (recv
+        (cat (enc b ra-1 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 145)
+  (parent 96)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 0)) ((1 1) (4 1)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((3 1) (2 0)) ((4 2) (1 2)) ((5 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 146)
+  (parent 98)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 ra-prime-0
+      ra-prime-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 0)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 3) (0 2))
+    ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-0 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))))
+  (label 147)
+  (parent 100)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 ra-prime-0
+      ra-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb ra-prime-0) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 0)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 1)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 3) (0 2))
+    ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-0 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-0 k)))))
+  (label 148)
+  (parent 100)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 2)) ((1 1) (4 0)) ((1 1) (5 2)) ((2 1) (5 0))
+    ((3 1) (2 0)) ((4 1) (1 2)) ((5 1) (1 0)) ((5 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 1 resp-reauth 2)
+    (enc ra-prime-0 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb (enc ra-prime k))) (send (enc rb k))))
+  (label 149)
+  (parent 100)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (5 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 ra-prime-0
+      rb-prime-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 0)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 3) (0 2))
+    ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-0 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (send (cat rb-prime-1 (enc ra-prime-0 k)))))
+  (label 150)
+  (parent 100)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 ra-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (5 2)) ((1 1) (4 0)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 3) (0 2))
+    ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-0 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv k) (send k)))
+  (label 151)
+  (parent 100)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 1)) ((1 1) (4 0)) ((2 1) (1 0)) ((2 1) (5 1))
+    ((3 1) (2 0)) ((4 1) (1 2)) ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 2 keyserver 2)
+    (enc b ra-1 k tb (ltk a ks)) (5 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 152)
+  (parent 101)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-prime-3 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-2 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k))))
+  (label 153)
+  (parent 103)
+  (unrealized (0 2) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-2) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 1))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-2 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-2 k)))))
+  (label 154)
+  (parent 103)
+  (unrealized (0 2) (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (5 2)) ((2 1) (0 2)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((3 3) (1 2)) ((4 3) (3 2))
+    ((5 1) (1 0)) ((5 3) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 1 resp-reauth 2)
+    (enc ra-prime-2 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k))))
+  (label 155)
+  (parent 103)
+  (unrealized (0 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      rb-prime-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-2)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-2 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat rb-prime-0 (enc ra-prime-2 k)))))
+  (label 156)
+  (parent 103)
+  (unrealized (0 2) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-2 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))) ((recv k) (send k)))
+  (label 157)
+  (parent 103)
+  (unrealized (0 2) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 1)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 0) (0 0)) ((5 2) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 2 keyserver 2)
+    (enc b ra-0 k tb (ltk a ks)) (5 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k)))))
+  (label 158)
+  (parent 104)
+  (unrealized (0 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 3) (1 2)) ((4 1) (1 0)) ((4 3) (3 2))
+    ((5 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k))))
+  (label 159)
+  (parent 105)
+  (unrealized (5 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((3 3) (1 2)) ((4 1) (1 0)) ((4 3) (3 2))
+    ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 160)
+  (parent 106)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 3) (1 2)) ((4 1) (1 0)) ((4 3) (3 2))
+    ((5 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 161)
+  (parent 107)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (4 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      ra-prime-2 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 1) (4 2)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k))))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k))))
+  (label 162)
+  (parent 109)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      ra-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 1)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 1) (4 2)) ((6 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k))))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 163)
+  (parent 109)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb ra-prime rb-prime rb ra-prime-0 ra-prime-1 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb ra-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((1 1) (3 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra ra-prime rb-prime)
+  (operation encryption-test (displaced 6 1 resp-reauth 2) (enc rb-0 k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b ra-prime (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc ra-prime k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 164)
+  (parent 109)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb ra-prime) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra-prime (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      rb-prime-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-1)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 1) (4 2)) ((6 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k))))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-1 (enc rb k)))))
+  (label 165)
+  (parent 109)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 1) (4 2)) ((6 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))) ((recv k) (send k)))
+  (label 166)
+  (parent 109)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 0)) ((3 3) (1 2)) ((4 0) (0 0))
+    ((4 2) (3 2)) ((5 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k))))
+  (label 167)
+  (parent 110)
+  (unrealized (5 2))
+  (comment "6 in cohort - 6 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 1)) ((3 3) (1 2)) ((4 0) (0 0))
+    ((4 2) (3 2)) ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 168)
+  (parent 111)
+  (unrealized (5 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 0)) ((3 3) (1 2)) ((4 0) (0 0))
+    ((4 2) (3 2)) ((5 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 169)
+  (parent 113)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (4 0)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (1 0)) ((3 3) (1 2)) ((4 3) (0 2))
+    ((5 3) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))))
+  (label 170)
+  (parent 115)
+  (unrealized (5 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((3 1) (1 0)) ((3 3) (1 2)) ((4 3) (0 2))
+    ((5 2) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k)))))
+  (label 171)
+  (parent 116)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (1 0)) ((3 3) (1 2)) ((4 3) (0 2))
+    ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k)))))
+  (label 172)
+  (parent 117)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (3 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((1 1) (5 2)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((3 3) (1 2)) ((4 1) (3 2))
+    ((5 1) (1 0)) ((5 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 1 resp-reauth 2)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb (enc ra-prime k))) (send (enc rb k))))
+  (label 173)
+  (parent 120)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (5 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 ra-prime-1
+      ra-prime-2 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 1) (3 2)) ((5 3) (0 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 174)
+  (parent 120)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 ra-prime-1
+      ra-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 1)) ((3 3) (1 2))
+    ((4 1) (3 2)) ((5 3) (0 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-1 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-1 k)))))
+  (label 175)
+  (parent 120)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((3 3) (1 2)) ((4 1) (3 2))
+    ((4 1) (5 2)) ((5 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 4 resp-reauth 2)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 176)
+  (parent 120)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 ra-prime-1
+      rb-prime-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 1) (3 2)) ((5 3) (0 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat rb-prime-1 (enc ra-prime-1 k)))))
+  (label 177)
+  (parent 120)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 1) (3 2)) ((5 3) (0 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-1 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv k) (send k)))
+  (label 178)
+  (parent 120)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((3 3) (1 2)) ((4 1) (3 2))
+    ((5 0) (0 0)) ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 2 keyserver 2)
+    (enc b ra-0 k tb (ltk a ks)) (5 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 179)
+  (parent 121)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (5 0)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 0) (0 0)) ((3 2) (1 2)) ((4 3) (0 2))
+    ((5 3) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))))
+  (label 180)
+  (parent 123)
+  (unrealized (5 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((3 0) (0 0)) ((3 2) (1 2)) ((4 3) (0 2))
+    ((5 2) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k)))))
+  (label 181)
+  (parent 124)
+  (unrealized (5 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 0) (0 0)) ((3 2) (1 2)) ((4 3) (0 2))
+    ((5 1) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (5 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k)))))
+  (label 182)
+  (parent 126)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (3 0)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 ra-prime-1
+      ra-prime-2 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (1 2)) ((4 3) (0 2))
+    ((5 3) (4 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 183)
+  (parent 128)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 ra-prime-1
+      ra-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 1) (1 2)) ((4 3) (0 2))
+    ((5 3) (4 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-1 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-1 k)))))
+  (label 184)
+  (parent 128)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((1 1) (5 2)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 1) (1 2)) ((4 3) (0 2)) ((5 1) (1 0))
+    ((5 3) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 1 resp-reauth 2)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k))))
+  (label 185)
+  (parent 128)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (5 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 ra-prime-1
+      rb-prime-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (1 2)) ((4 3) (0 2))
+    ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat rb-prime-1 (enc ra-prime-1 k)))))
+  (label 186)
+  (parent 128)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (1 2)) ((4 3) (0 2))
+    ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-1 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))) ((recv k) (send k)))
+  (label 187)
+  (parent 128)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((3 1) (1 2)) ((4 3) (0 2)) ((5 0) (0 0))
+    ((5 2) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 2 keyserver 2)
+    (enc b ra-0 k tb (ltk a ks)) (5 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k)))))
+  (label 188)
+  (parent 129)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (5 0)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0
+      ra-prime-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb-0) (a a) (b b) (ks ks))
+  (precedes ((1 1) (6 2)) ((2 1) (0 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 3) (4 2))
+    ((6 1) (1 0)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 1 resp-reauth 2)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k))))
+  (label 191)
+  (parent 131)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0
+      ra-prime-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb-0) (a a)
+    (b b) (ks ks))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 3) (4 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 2 keyserver 2)
+    (enc b ra-1 k tb-0 (ltk a ks)) (6 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb-0 (ltk b ks)) (enc ra-prime-1 k)))))
+  (label 194)
+  (parent 132)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (6 2)) ((1 1) (5 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (1 0))
+    ((5 3) (4 2)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k))))
+  (label 195)
+  (parent 133)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-1 tb-0
+      text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (6 1)) ((1 1) (5 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 1)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (1 0))
+    ((5 3) (4 2)) ((6 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 196)
+  (parent 133)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (6 0)) ((1 1) (5 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (1 0))
+    ((5 3) (4 2)) ((6 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 197)
+  (parent 133)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (5 2)) ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0))
+    ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (1 0)) ((5 3) (4 2))
+    ((6 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k))) ((recv k) (send k)))
+  (label 198)
+  (parent 133)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      rb-prime-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 2 keyserver 2)
+    (enc a k tb-0 (ltk b ks)) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 199)
+  (parent 134)
+  (unrealized (0 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (6 2)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 2) (4 2)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k))))
+  (label 200)
+  (parent 135)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-1 tb-0
+      text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (6 1)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((2 1) (6 1)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 2) (4 2)) ((6 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 201)
+  (parent 135)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra ra-prime rb-prime tb ra-0 rb rb-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb ra-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((1 1) (4 2)) ((2 1) (1 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 2) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra ra-prime rb-prime)
+  (operation encryption-test (displaced 6 1 resp-reauth 2) (enc rb-1 k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b ra-prime (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc ra-prime k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra-0)) (send (cat b rb-0 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k)))))
+  (label 202)
+  (parent 135)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb ra-prime) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra-prime (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (6 0)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 2) (4 2)) ((6 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 203)
+  (parent 135)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0)) ((2 1) (5 1))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 2) (4 2))
+    ((6 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv k) (send k)))
+  (label 204)
+  (parent 135)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 1) (1 0)) ((4 3) (1 2))
+    ((5 3) (0 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-0 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))))
+  (label 205)
+  (parent 136)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-1 tb-0
+      text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb ra-prime-0) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 1)) ((3 1) (2 0)) ((4 1) (1 0)) ((4 3) (1 2))
+    ((5 3) (0 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-0 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-0 k)))))
+  (label 206)
+  (parent 136)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 1) (1 0)) ((4 3) (1 2))
+    ((5 3) (0 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-0 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k)))))
+  (label 207)
+  (parent 136)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (5 2)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 1) (1 0)) ((4 3) (1 2))
+    ((5 3) (0 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-0 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv k) (send k)))
+  (label 208)
+  (parent 136)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 1)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 1))
+    ((3 1) (2 0)) ((4 1) (1 0)) ((4 3) (1 2)) ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 2 keyserver 2)
+    (enc b ra-1 k tb (ltk a ks)) (5 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 209)
+  (parent 137)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (4 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      ra-prime-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (6 2)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 1) (4 2)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k))))
+  (label 210)
+  (parent 139)
+  (unrealized (6 2))
+  (comment "6 in cohort - 6 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      ra-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (6 1)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 1) (4 2)) ((6 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 1) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((send (cat a ra-1))
+      (recv
+        (cat (enc b ra-1 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 211)
+  (parent 140)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      rb-prime-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-1)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (6 0)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 1) (4 2)) ((6 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb))
+      (send (cat rb-prime-1 (enc rb k)))))
+  (label 212)
+  (parent 142)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 1)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 2) (1 2)) ((5 3) (0 2))
+    ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-0 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))))
+  (label 213)
+  (parent 144)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-1 tb-0
+      text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb ra-prime-0) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 1)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 1)) ((3 1) (2 0)) ((4 2) (1 2)) ((5 3) (0 2))
+    ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-0 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-0 k)))))
+  (label 214)
+  (parent 144)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 2)) ((1 1) (4 1)) ((1 1) (5 2)) ((2 1) (5 0))
+    ((3 1) (2 0)) ((4 2) (1 2)) ((5 1) (1 0)) ((5 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 1 resp-reauth 2)
+    (enc ra-prime-0 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb (enc ra-prime k))) (send (enc rb k))))
+  (label 215)
+  (parent 144)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (5 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 1)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 2) (1 2)) ((5 3) (0 2))
+    ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-0 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k)))))
+  (label 216)
+  (parent 144)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (5 2)) ((1 1) (4 1)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 2) (1 2)) ((5 3) (0 2))
+    ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-0 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv k) (send k)))
+  (label 217)
+  (parent 144)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 1)) ((1 1) (4 1)) ((2 1) (1 0)) ((2 1) (5 1))
+    ((3 1) (2 0)) ((4 2) (1 2)) ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 2 keyserver 2)
+    (enc b ra-1 k tb (ltk a ks)) (5 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 218)
+  (parent 145)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 ra-prime-0
+      ra-prime-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 2)) ((1 1) (4 0)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 3) (0 2))
+    ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))))
+  (label 219)
+  (parent 147)
+  (unrealized (6 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 ra-prime-0
+      ra-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (5 2)) ((1 1) (4 0)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 1)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 3) (0 2))
+    ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 1) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((send (cat a ra-1))
+      (recv
+        (cat (enc b ra-1 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k)))))
+  (label 220)
+  (parent 148)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 ra-prime-0
+      rb-prime-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 2)) ((1 1) (4 0)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 3) (0 2))
+    ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-1 (enc ra-prime-0 k)))))
+  (label 221)
+  (parent 150)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-prime-3 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k))))
+  (label 222)
+  (parent 153)
+  (unrealized (0 2) (6 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-2) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 1))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-2))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-2 k)))))
+  (label 223)
+  (parent 154)
+  (unrealized (0 2) (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (5 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2)) ((4 3) (3 2))
+    ((5 1) (1 0)) ((5 3) (4 2)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k))))
+  (label 224)
+  (parent 155)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-0 tb-0
+      text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (5 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 3) (1 2)) ((4 3) (3 2))
+    ((5 1) (1 0)) ((5 3) (4 2)) ((6 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 225)
+  (parent 155)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (5 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2)) ((4 3) (3 2))
+    ((5 1) (1 0)) ((5 3) (4 2)) ((6 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 226)
+  (parent 155)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (5 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2)) ((4 3) (3 2))
+    ((5 1) (1 0)) ((5 3) (4 2)) ((6 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k))) ((recv k) (send k)))
+  (label 227)
+  (parent 155)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      rb-prime-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-2)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (send (cat rb-prime-0 (enc ra-prime-2 k)))))
+  (label 228)
+  (parent 156)
+  (unrealized (0 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 0) (0 0)) ((5 2) (4 2)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k))))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k))))
+  (label 229)
+  (parent 158)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-0 tb-0
+      text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((2 1) (6 1)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 0) (0 0)) ((5 2) (4 2)) ((6 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k))))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 230)
+  (parent 158)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb ra-prime rb-prime rb ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb ra-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((1 1) (3 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 1)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 0) (0 0)) ((5 2) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra ra-prime rb-prime)
+  (operation encryption-test (displaced 6 1 resp-reauth 2) (enc rb-0 k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b ra-prime (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc ra-prime k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k)))))
+  (label 231)
+  (parent 158)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb ra-prime) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (5 0)) (ra-prime (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 0) (0 0)) ((5 2) (4 2)) ((6 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k))))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 232)
+  (parent 158)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 0) (0 0)) ((5 2) (4 2)) ((6 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k))))
+    ((recv k) (send k)))
+  (label 233)
+  (parent 158)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 3) (1 2)) ((4 1) (1 0)) ((4 3) (3 2))
+    ((4 3) (5 2)) ((5 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 4 init-reauth 4)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 234)
+  (parent 159)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (4 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-0 tb-0
+      text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 3) (1 2)) ((4 1) (1 0))
+    ((4 3) (3 2)) ((5 3) (0 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-1 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-1 k)))))
+  (label 235)
+  (parent 159)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2)) ((4 1) (1 0))
+    ((4 3) (3 2)) ((5 3) (0 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 236)
+  (parent 159)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2)) ((4 1) (1 0))
+    ((4 3) (3 2)) ((5 3) (0 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 237)
+  (parent 159)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2)) ((4 1) (1 0))
+    ((4 3) (3 2)) ((5 3) (0 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-1 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv k) (send k)))
+  (label 238)
+  (parent 159)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((3 3) (1 2)) ((4 1) (1 0)) ((4 3) (3 2))
+    ((5 0) (0 0)) ((5 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 2 keyserver 2)
+    (enc b ra-0 k tb (ltk a ks)) (5 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 239)
+  (parent 160)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (5 0)) (rb (0 1)) (ra-prime (4 1))
+    (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      ra-prime-2 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 1) (4 2)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k))))
+  (label 240)
+  (parent 162)
+  (unrealized (6 2))
+  (comment "7 in cohort - 7 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      ra-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 1)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 1) (4 2)) ((6 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 241)
+  (parent 163)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      rb-prime-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-1)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 1) (4 2)) ((6 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb))
+      (send (cat rb-prime-1 (enc rb k)))))
+  (label 242)
+  (parent 165)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 0) (0 0)) ((4 2) (3 2)) ((5 3) (0 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 243)
+  (parent 167)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-0 tb-0
+      text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 0)) ((2 1) (6 1)) ((3 3) (1 2))
+    ((4 0) (0 0)) ((4 2) (3 2)) ((5 3) (0 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-1 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-1 k)))))
+  (label 244)
+  (parent 167)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 0)) ((3 3) (1 2)) ((4 0) (0 0))
+    ((4 2) (3 2)) ((4 2) (5 2)) ((5 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 4 init 3) (enc ra-prime-1 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 245)
+  (parent 167)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (4 0)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((1 1) (5 2)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 0)) ((3 3) (1 2)) ((4 0) (0 0))
+    ((4 2) (3 2)) ((5 1) (1 0)) ((5 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 1 resp-reauth 2)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb (enc ra-prime k))) (send (enc rb k))))
+  (label 246)
+  (parent 167)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (4 0)) (rb (0 1)) (ra-prime (5 1))
+    (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 0) (0 0)) ((4 2) (3 2)) ((5 3) (0 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 247)
+  (parent 167)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 0) (0 0)) ((4 2) (3 2)) ((5 3) (0 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-1 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv k) (send k)))
+  (label 248)
+  (parent 167)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (1 0)) ((3 3) (1 2))
+    ((4 3) (0 2)) ((5 3) (4 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 249)
+  (parent 170)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-0 tb-0
+      text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 1) (1 0)) ((3 3) (1 2))
+    ((4 3) (0 2)) ((5 3) (4 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-1 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-1 k)))))
+  (label 250)
+  (parent 170)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (1 0)) ((3 3) (1 2))
+    ((4 3) (0 2)) ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 251)
+  (parent 170)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (1 0)) ((3 3) (1 2))
+    ((4 3) (0 2)) ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-1 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))) ((recv k) (send k)))
+  (label 252)
+  (parent 170)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((3 1) (1 0)) ((3 3) (1 2)) ((4 3) (0 2))
+    ((5 0) (0 0)) ((5 2) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 2 keyserver 2)
+    (enc b ra-0 k tb (ltk a ks)) (5 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k)))))
+  (label 253)
+  (parent 171)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (5 0)) (rb (0 1)) (ra-prime (3 1))
+    (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 ra-prime-1
+      ra-prime-2 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 1) (3 2)) ((5 3) (0 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 254)
+  (parent 174)
+  (unrealized (6 2))
+  (comment "6 in cohort - 6 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 ra-prime-1
+      ra-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 1)) ((3 3) (1 2))
+    ((4 1) (3 2)) ((5 3) (0 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k)))))
+  (label 255)
+  (parent 175)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 ra-prime-1
+      rb-prime-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 1) (3 2)) ((5 3) (0 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-1 (enc ra-prime-1 k)))))
+  (label 256)
+  (parent 177)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 0) (0 0)) ((3 2) (1 2))
+    ((4 3) (0 2)) ((5 3) (4 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 257)
+  (parent 180)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-0 tb-0
+      text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 0) (0 0)) ((3 2) (1 2))
+    ((4 3) (0 2)) ((5 3) (4 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-1 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-1 k)))))
+  (label 258)
+  (parent 180)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey) (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((1 1) (5 2)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((3 0) (0 0)) ((3 2) (1 2)) ((4 3) (0 2))
+    ((5 1) (1 0)) ((5 3) (4 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 6 1 resp-reauth 2)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k))))
+  (label 259)
+  (parent 180)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (3 0)) (rb (0 1)) (ra-prime (5 1))
+    (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 0) (0 0)) ((3 2) (1 2))
+    ((4 3) (0 2)) ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-1 k) (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 260)
+  (parent 180)
+  (unrealized (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 0) (0 0)) ((3 2) (1 2))
+    ((4 3) (0 2)) ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-1 k)
+    (5 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))) ((recv k) (send k)))
+  (label 261)
+  (parent 180)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 ra-prime-1
+      ra-prime-2 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (1 2)) ((4 3) (0 2))
+    ((5 3) (4 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 262)
+  (parent 183)
+  (unrealized (6 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 ra-prime-1
+      ra-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 1) (1 2)) ((4 3) (0 2))
+    ((5 3) (4 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k)))))
+  (label 263)
+  (parent 184)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 ra-prime-1
+      rb-prime-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (1 2)) ((4 3) (0 2))
+    ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-1 (enc ra-prime-1 k)))))
+  (label 264)
+  (parent 186)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((1 1) (6 2)) ((2 1) (0 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 3) (4 2))
+    ((6 1) (1 0)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 2 keyserver 2)
+    (enc a k tb-0 (ltk b ks)) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k))))
+  (label 265)
+  (parent 191)
+  (unrealized (0 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 3) (4 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 2 keyserver 2)
+    (enc a k tb-0 (ltk b ks)) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k)))))
+  (label 266)
+  (parent 194)
+  (unrealized (0 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (6 2)) ((1 1) (5 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (1 0))
+    ((5 3) (4 2)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k))))
+  (label 267)
+  (parent 195)
+  (unrealized (6 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (6 1)) ((1 1) (5 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 1)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (1 0))
+    ((5 3) (4 2)) ((6 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 1) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra-1))
+      (recv
+        (cat (enc b ra-1 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 268)
+  (parent 196)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (6 0)) ((1 1) (5 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (1 0))
+    ((5 3) (4 2)) ((6 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 269)
+  (parent 197)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (5 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra ra-prime rb-prime tb ra-0 rb rb-0 ra-prime-0 ra-prime-1
+      rb-prime-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb ra-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((1 1) (4 2)) ((2 1) (1 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (2 0))
+    ((4 3) (1 2)) ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra ra-prime rb-prime)
+  (operation encryption-test (displaced 7 1 resp-reauth 2) (enc rb-1 k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b ra-prime (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc ra-prime k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra-0)) (send (cat b rb-0 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 272)
+  (parent 199)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb ra-prime) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra-prime (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (6 2)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 2) (4 2)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k))))
+  (label 275)
+  (parent 200)
+  (unrealized (6 2))
+  (comment "6 in cohort - 6 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (6 1)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((2 1) (6 1)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 2) (4 2)) ((6 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 1) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((send (cat a ra-1))
+      (recv
+        (cat (enc b ra-1 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 276)
+  (parent 201)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (6 0)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 2) (4 2)) ((6 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 277)
+  (parent 203)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 2)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 1) (1 0)) ((4 3) (1 2))
+    ((5 3) (0 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))))
+  (label 278)
+  (parent 205)
+  (unrealized (6 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (5 2)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 1)) ((3 1) (2 0)) ((4 1) (1 0)) ((4 3) (1 2))
+    ((5 3) (0 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 1) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((send (cat a ra-1))
+      (recv
+        (cat (enc b ra-1 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k)))))
+  (label 279)
+  (parent 206)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 2)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 1) (1 0)) ((4 3) (1 2))
+    ((5 3) (0 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k)))))
+  (label 280)
+  (parent 207)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (4 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (6 2)) ((1 1) (4 2)) ((1 1) (6 2)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 1) (4 2)) ((6 1) (1 0)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 1 resp-reauth 2)
+    (enc ra-prime-1 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb (enc ra-prime k))) (send (enc rb k))))
+  (label 281)
+  (parent 210)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (6 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (6 2)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 1) (4 2)) ((5 1) (6 2)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 5 resp-reauth 2)
+    (enc ra-prime-1 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 284)
+  (parent 210)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (6 1)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 1) (4 2)) ((6 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 2 keyserver 2)
+    (enc b ra-1 k tb (ltk a ks)) (6 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 287)
+  (parent 211)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 2)) ((1 1) (4 1)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 2) (1 2)) ((5 3) (0 2))
+    ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))))
+  (label 288)
+  (parent 213)
+  (unrealized (6 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (5 2)) ((1 1) (4 1)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 1)) ((3 1) (2 0)) ((4 2) (1 2)) ((5 3) (0 2))
+    ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 1) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((send (cat a ra-1))
+      (recv
+        (cat (enc b ra-1 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k)))))
+  (label 289)
+  (parent 214)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 2)) ((1 1) (4 1)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 2) (1 2)) ((5 3) (0 2))
+    ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k)))))
+  (label 290)
+  (parent 216)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 ra-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 2)) ((1 1) (4 0)) ((1 1) (6 2)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 3) (0 2))
+    ((6 1) (1 0)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 1 resp-reauth 2)
+    (enc ra-prime-1 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k))))
+  (label 293)
+  (parent 219)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (6 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 ra-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (5 2)) ((1 1) (4 0)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 1)) ((3 1) (2 0)) ((4 1) (1 2)) ((5 3) (0 2))
+    ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 2 keyserver 2)
+    (enc b ra-1 k tb (ltk a ks)) (6 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k)))))
+  (label 296)
+  (parent 220)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-2) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (6 2)) ((2 1) (0 2)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 3) (4 2)) ((6 1) (1 0)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 1 resp-reauth 2)
+    (enc ra-prime-3 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-2 (enc ra-prime k)))
+      (send (enc ra-prime-2 k))))
+  (label 299)
+  (parent 222)
+  (unrealized (0 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-2) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 1))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 0) (0 0))
+    ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 2 keyserver 2)
+    (enc b ra-0 k tb (ltk a ks)) (6 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-2))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-2 k)))))
+  (label 302)
+  (parent 223)
+  (unrealized (0 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (5 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2)) ((4 3) (3 2))
+    ((5 1) (1 0)) ((5 3) (4 2)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k))))
+  (label 303)
+  (parent 224)
+  (unrealized (6 2))
+  (comment "6 in cohort - 6 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (5 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 3) (1 2)) ((4 3) (3 2))
+    ((5 1) (1 0)) ((5 3) (4 2)) ((6 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 304)
+  (parent 225)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (5 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2)) ((4 3) (3 2))
+    ((5 1) (1 0)) ((5 3) (4 2)) ((6 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 305)
+  (parent 226)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (5 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb ra-prime rb-prime rb ra-prime-0 ra-prime-1 ra-prime-2
+      rb-prime-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb ra-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-2)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((1 1) (3 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra ra-prime rb-prime)
+  (operation encryption-test (displaced 7 1 resp-reauth 2) (enc rb-0 k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b ra-prime (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc ra-prime k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (send (cat rb-prime-0 (enc ra-prime-2 k)))))
+  (label 308)
+  (parent 228)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb ra-prime) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra-prime (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 0) (0 0)) ((5 2) (4 2)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k))))
+  (label 311)
+  (parent 229)
+  (unrealized (6 2))
+  (comment "7 in cohort - 7 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((2 1) (6 1)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 0) (0 0)) ((5 2) (4 2)) ((6 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 312)
+  (parent 230)
+  (unrealized (6 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 0) (0 0)) ((5 2) (4 2)) ((6 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 313)
+  (parent 232)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (5 0)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 3) (1 2)) ((4 1) (1 0))
+    ((4 3) (3 2)) ((5 3) (0 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k)))))
+  (label 314)
+  (parent 235)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2)) ((4 1) (1 0))
+    ((4 3) (3 2)) ((5 3) (0 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 315)
+  (parent 236)
+  (unrealized (6 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2)) ((4 1) (1 0))
+    ((4 3) (3 2)) ((5 3) (0 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 316)
+  (parent 237)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (4 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((4 3) (6 2)) ((5 1) (4 2)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 4 init-reauth 4)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 318)
+  (parent 240)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 1) (4 2)) ((5 1) (6 2)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 5 resp-reauth 2)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k))))
+  (label 320)
+  (parent 240)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((1 1) (6 2)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 1) (4 2)) ((6 1) (1 0)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 1 resp-reauth 2)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb (enc ra-prime k))) (send (enc rb k))))
+  (label 321)
+  (parent 240)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (6 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 1)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 1) (4 2)) ((6 0) (0 0)) ((6 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 2 keyserver 2)
+    (enc b ra-0 k tb (ltk a ks)) (6 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k))))
+    ((send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 324)
+  (parent 241)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (6 0)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 0) (0 0)) ((4 2) (3 2)) ((5 3) (0 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 325)
+  (parent 243)
+  (unrealized (6 2))
+  (comment "6 in cohort - 6 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 0)) ((2 1) (6 1)) ((3 3) (1 2))
+    ((4 0) (0 0)) ((4 2) (3 2)) ((5 3) (0 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k)))))
+  (label 326)
+  (parent 244)
+  (unrealized (6 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 0) (0 0)) ((4 2) (3 2)) ((5 3) (0 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 327)
+  (parent 247)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (4 0)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (1 0)) ((3 3) (1 2))
+    ((4 3) (0 2)) ((5 3) (4 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 328)
+  (parent 249)
+  (unrealized (6 2))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 1) (1 0)) ((3 3) (1 2))
+    ((4 3) (0 2)) ((5 3) (4 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k)))))
+  (label 329)
+  (parent 250)
+  (unrealized (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (1 0)) ((3 3) (1 2))
+    ((4 3) (0 2)) ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 330)
+  (parent 251)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (3 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((1 1) (6 2)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 1) (3 2)) ((5 3) (0 2)) ((6 1) (1 0)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 1 resp-reauth 2)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k))))
+  (label 331)
+  (parent 254)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (6 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 1) (3 2)) ((4 1) (6 2)) ((5 3) (0 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 4 resp-reauth 2)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat ra-prime-1 (enc ra-prime-0 k)))
+      (send (enc ra-prime-1 k))))
+  (label 334)
+  (parent 254)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 1)) ((3 3) (1 2))
+    ((4 1) (3 2)) ((5 3) (0 2)) ((6 0) (0 0)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 2 keyserver 2)
+    (enc b ra-0 k tb (ltk a ks)) (6 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k)))))
+  (label 337)
+  (parent 255)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (6 0)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 0) (0 0)) ((3 2) (1 2))
+    ((4 3) (0 2)) ((5 3) (4 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 338)
+  (parent 257)
+  (unrealized (6 2))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 0) (0 0)) ((3 2) (1 2))
+    ((4 3) (0 2)) ((5 3) (4 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k)))))
+  (label 339)
+  (parent 258)
+  (unrealized (6 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 0) (0 0)) ((3 2) (1 2))
+    ((4 3) (0 2)) ((5 3) (4 2)) ((6 1) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (6 0) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 340)
+  (parent 260)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (3 0)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((1 1) (6 2)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 1) (1 2)) ((4 3) (0 2))
+    ((5 3) (4 2)) ((6 1) (1 0)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 1 resp-reauth 2)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k))))
+  (label 343)
+  (parent 262)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (6 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 1) (1 2)) ((4 3) (0 2))
+    ((5 3) (4 2)) ((6 0) (0 0)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 2 keyserver 2)
+    (enc b ra-0 k tb (ltk a ks)) (6 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k)))))
+  (label 346)
+  (parent 263)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (6 0)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra ra-prime rb-prime tb ra-0 rb rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb ra-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((1 1) (4 2)) ((2 1) (1 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 1)) ((3 1) (2 0))
+    ((4 3) (1 2)) ((5 3) (4 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra ra-prime rb-prime)
+  (operation encryption-test (displaced 7 1 resp-reauth 2) (enc rb-1 k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b ra-prime (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc ra-prime k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra-0)) (send (cat b rb-0 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k)))))
+  (label 353)
+  (parent 266)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb ra-prime) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra-prime (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (6 2)) ((1 1) (5 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (1 0))
+    ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 5 init-reauth 4)
+    (enc ra-prime-1 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 356)
+  (parent 267)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (5 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (6 1)) ((1 1) (5 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 1)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 1) (1 0))
+    ((5 3) (4 2)) ((6 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 2 keyserver 2)
+    (enc b ra-1 k tb (ltk a ks)) (6 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 361)
+  (parent 268)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (5 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (6 2)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 2) (4 2)) ((5 2) (6 2)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 5 init 3) (enc ra-prime-1 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 364)
+  (parent 275)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (6 2)) ((1 1) (4 2)) ((1 1) (6 2)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((2 1) (6 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 2) (4 2)) ((6 1) (1 0)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 1 resp-reauth 2)
+    (enc ra-prime-1 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb (enc ra-prime k))) (send (enc rb k))))
+  (label 365)
+  (parent 275)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (6 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (6 1)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((2 1) (6 1)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 2) (4 2)) ((6 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 2 keyserver 2)
+    (enc b ra-1 k tb (ltk a ks)) (6 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 368)
+  (parent 276)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (5 2)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 1)) ((3 1) (2 0)) ((4 1) (1 0)) ((4 3) (1 2))
+    ((5 3) (0 2)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 2 keyserver 2)
+    (enc b ra-1 k tb (ltk a ks)) (6 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k)))))
+  (label 373)
+  (parent 279)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (4 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (5 2)) ((1 1) (4 1)) ((1 1) (6 2)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((3 1) (2 0)) ((4 2) (1 2)) ((5 3) (0 2))
+    ((6 1) (1 0)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 1 resp-reauth 2)
+    (enc ra-prime-1 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k))))
+  (label 376)
+  (parent 288)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (6 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (5 2)) ((1 1) (4 1)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 1)) ((3 1) (2 0)) ((4 2) (1 2)) ((5 3) (0 2))
+    ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 2 keyserver 2)
+    (enc b ra-1 k tb (ltk a ks)) (6 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k)))))
+  (label 379)
+  (parent 289)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb ra-prime rb-prime rb ra-prime-0 ra-prime-1 ra-prime-2 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb ra-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-2) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((1 1) (3 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 1))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 0) (0 0))
+    ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra ra-prime rb-prime)
+  (operation encryption-test (displaced 7 1 resp-reauth 2) (enc rb-0 k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b ra-prime (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc ra-prime k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-2))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-2 k)))))
+  (label 386)
+  (parent 302)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb ra-prime) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (6 0)) (ra-prime (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (5 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2)) ((4 3) (3 2))
+    ((5 1) (1 0)) ((5 3) (4 2)) ((5 3) (6 2)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 5 init-reauth 4)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k))))
+  (label 389)
+  (parent 303)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (5 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (5 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2)) ((4 3) (3 2))
+    ((4 3) (6 2)) ((5 1) (1 0)) ((5 3) (4 2)) ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 4 init-reauth 4)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 390)
+  (parent 303)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (5 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (5 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 3) (1 2)) ((4 3) (3 2))
+    ((5 1) (1 0)) ((5 3) (4 2)) ((6 0) (0 0)) ((6 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 2 keyserver 2)
+    (enc b ra-0 k tb (ltk a ks)) (6 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 395)
+  (parent 304)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (6 0)) (rb (0 1)) (ra-prime (5 1))
+    (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((4 3) (6 2)) ((5 0) (0 0)) ((5 2) (4 2))
+    ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 4 init-reauth 4)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k))))
+  (label 396)
+  (parent 311)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (5 0)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 0) (0 0)) ((5 2) (4 2)) ((5 2) (6 2))
+    ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 5 init 3) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k))))
+  (label 398)
+  (parent 311)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (5 0)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((1 1) (6 2)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 0) (0 0)) ((5 2) (4 2)) ((6 1) (1 0))
+    ((6 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 1 resp-reauth 2)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb (enc ra-prime k))) (send (enc rb k))))
+  (label 399)
+  (parent 311)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (5 0)) (rb (0 1)) (ra-prime (6 1))
+    (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 3) (1 2)) ((4 1) (1 0))
+    ((4 3) (3 2)) ((5 3) (0 2)) ((6 0) (0 0)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 2 keyserver 2)
+    (enc b ra-0 k tb (ltk a ks)) (6 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k)))))
+  (label 403)
+  (parent 314)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (6 0)) (rb (0 1)) (ra-prime (4 1))
+    (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2)) ((4 1) (1 0))
+    ((4 3) (3 2)) ((4 3) (6 2)) ((5 3) (0 2)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 4 init-reauth 4)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat ra-prime-1 (enc ra-prime-0 k)))
+      (send (enc ra-prime-1 k))))
+  (label 404)
+  (parent 315)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (rb (0 1)) (ra-prime (4 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 0) (0 0)) ((4 2) (3 2)) ((4 2) (6 2)) ((5 3) (0 2))
+    ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 4 init 3) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat ra-prime-1 (enc ra-prime-0 k)))
+      (send (enc ra-prime-1 k))))
+  (label 411)
+  (parent 325)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (4 0)) (rb (0 1)) (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((1 1) (6 2)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 0)) ((2 1) (6 0)) ((3 3) (1 2))
+    ((4 0) (0 0)) ((4 2) (3 2)) ((5 3) (0 2)) ((6 1) (1 0))
+    ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 1 resp-reauth 2)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k))))
+  (label 412)
+  (parent 325)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (4 0)) (rb (0 1)) (ra-prime (6 1))
+    (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((3 1) (1 0)) ((3 3) (1 2))
+    ((4 3) (0 2)) ((5 3) (4 2)) ((6 0) (0 0)) ((6 2) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 2 keyserver 2)
+    (enc b ra-0 k tb (ltk a ks)) (6 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k)))))
+  (label 419)
+  (parent 329)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (6 0)) (rb (0 1)) (ra-prime (3 1))
+    (rb-prime (1 1))))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 text)
+    (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((1 1) (6 2)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((3 0) (0 0)) ((3 2) (1 2))
+    ((4 3) (0 2)) ((5 3) (4 2)) ((6 1) (1 0)) ((6 3) (5 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (displaced 7 1 resp-reauth 2)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k))))
+  (label 422)
+  (parent 338)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((ra ra) (tb tb) (rb rb) (a a) (b b) (ks ks) (k k)
+        (ra-prime ra-prime) (rb-prime rb-prime) (tb-0 tb))))
+  (origs (k (2 1)) (ra (3 0)) (rb (0 1)) (ra-prime (6 1))
+    (rb-prime (1 1))))
+
+(comment "Strand bound exceeded--aborting run")
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0
+      ra-prime-1 ra-prime-2 ra-prime-3 tb-1 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb-1) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0))
+    ((4 3) (1 2)) ((5 3) (4 2)) ((6 3) (5 2)) ((7 3) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a-0 k tb-1 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-1 (ltk b-0 ks-0)) ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k))))
+  (label 189)
+  (parent 131)
+  (unrealized (0 2) (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0
+      ra-prime-1 ra-prime-2 ra-1 tb-1 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb ra-prime-2) (tb tb-1) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 1)) ((3 1) (2 0))
+    ((4 3) (1 2)) ((5 3) (4 2)) ((6 3) (5 2)) ((7 2) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-1 (ltk a-0 ks-0))
+          (enc a-0 k tb-1 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat (enc a-0 k tb-1 (ltk b-0 ks-0)) (enc ra-prime-2 k)))))
+  (label 190)
+  (parent 131)
+  (unrealized (0 2) (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0
+      ra-prime-1 ra-prime-2 rb-prime-0 tb-1 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-2)
+    (rb-prime rb-prime-0) (tb tb-1) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0))
+    ((4 3) (1 2)) ((5 3) (4 2)) ((6 3) (5 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc a-0 k tb-1 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat rb-prime-0 (enc ra-prime-2 k)))))
+  (label 192)
+  (parent 131)
+  (unrealized (0 2) (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime tb-0 ra-0 rb-0 rb-1 ra-prime-0
+      ra-prime-1 ra-prime-2 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb-0) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb-0) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb-0) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (4 2)) ((2 1) (0 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0))
+    ((4 3) (1 2)) ((5 3) (4 2)) ((6 3) (5 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb-0 (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb-0 (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb-0 (ltk a ks)) (enc a k tb-0 (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb-0 (ltk b ks)))))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb-0 (ltk b ks)))
+      (send (cat (enc a k tb-0 (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))) ((recv k) (send k)))
+  (label 193)
+  (parent 131)
+  (unrealized (0 2) (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      rb-prime-0 ra-prime-2 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (7 2)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0))
+    ((4 3) (1 2)) ((5 3) (4 2)) ((6 1) (5 2)) ((7 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k))))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k))))
+  (label 270)
+  (parent 199)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      rb-prime-0 ra-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (7 1)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 1)) ((3 1) (2 0))
+    ((4 3) (1 2)) ((5 3) (4 2)) ((6 1) (5 2)) ((7 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k))))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 271)
+  (parent 199)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      rb-prime-0 rb-prime-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-1)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (7 0)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0))
+    ((4 3) (1 2)) ((5 3) (4 2)) ((6 1) (5 2)) ((7 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k))))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-1 (enc rb k)))))
+  (label 273)
+  (parent 199)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      rb-prime-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 3) (4 2)) ((6 1) (5 2)) ((7 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))) ((recv k) (send k)))
+  (label 274)
+  (parent 199)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      ra-prime-1 ra-prime-2 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (6 2)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0))
+    ((4 3) (1 2)) ((5 1) (4 2)) ((6 3) (0 2)) ((7 3) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-1 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 282)
+  (parent 210)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      ra-prime-1 ra-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb ra-prime-1) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (6 2)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 1)) ((3 1) (2 0))
+    ((4 3) (1 2)) ((5 1) (4 2)) ((6 3) (0 2)) ((7 2) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-1 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-1 k)))))
+  (label 283)
+  (parent 210)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      ra-prime-1 rb-prime-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (6 2)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0))
+    ((4 3) (1 2)) ((5 1) (4 2)) ((6 3) (0 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-1 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat rb-prime-1 (enc ra-prime-1 k)))))
+  (label 285)
+  (parent 210)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 rb-prime-0
+      ra-prime-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (6 2)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0))
+    ((4 3) (1 2)) ((5 1) (4 2)) ((6 3) (0 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-1 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv k) (send k)))
+  (label 286)
+  (parent 210)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 ra-prime-0
+      ra-prime-1 ra-prime-2 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 0)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0)) ((4 1) (1 2))
+    ((5 3) (0 2)) ((6 3) (5 2)) ((7 3) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-1 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 291)
+  (parent 219)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 ra-prime-0
+      ra-prime-1 ra-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb ra-prime-1) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 0)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((2 1) (7 1)) ((3 1) (2 0)) ((4 1) (1 2))
+    ((5 3) (0 2)) ((6 3) (5 2)) ((7 2) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-1 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-1 k)))))
+  (label 292)
+  (parent 219)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 ra-prime-0
+      ra-prime-1 rb-prime-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 0)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0)) ((4 1) (1 2))
+    ((5 3) (0 2)) ((6 3) (5 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-1 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat rb-prime-1 (enc ra-prime-1 k)))))
+  (label 294)
+  (parent 219)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 rb-prime-0 ra-prime-0
+      ra-prime-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (5 2)) ((1 1) (4 0)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0)) ((4 1) (1 2))
+    ((5 3) (0 2)) ((6 3) (5 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-1 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))) ((recv k) (send k)))
+  (label 295)
+  (parent 219)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-prime-3 ra-prime-4 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-4)
+    (rb-prime ra-prime-3) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0))
+    ((2 1) (7 0)) ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2))
+    ((6 3) (5 2)) ((7 3) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-3 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-4))
+      (recv (cat ra-prime-3 (enc ra-prime-4 k)))
+      (send (enc ra-prime-3 k))))
+  (label 297)
+  (parent 222)
+  (unrealized (0 2) (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-prime-3 ra-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-3) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0))
+    ((2 1) (7 1)) ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2))
+    ((6 3) (5 2)) ((7 2) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-3 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-3))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-3 k)))))
+  (label 298)
+  (parent 222)
+  (unrealized (0 2) (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-prime-3 rb-prime-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-3)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0))
+    ((2 1) (7 0)) ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2))
+    ((6 3) (5 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-3 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-3))
+      (send (cat rb-prime-0 (enc ra-prime-3 k)))))
+  (label 300)
+  (parent 222)
+  (unrealized (0 2) (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-prime-3 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (0 2)) ((2 1) (1 0))
+    ((2 1) (3 0)) ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0))
+    ((2 1) (7 0)) ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2))
+    ((6 3) (5 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-3 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k))) ((recv k) (send k)))
+  (label 301)
+  (parent 222)
+  (unrealized (0 2) (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      rb-prime-0 ra-prime-3 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-2)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-3) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 1) (5 2))
+    ((7 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (send (cat rb-prime-0 (enc ra-prime-2 k))))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-3))
+      (recv (cat rb (enc ra-prime-3 k))) (send (enc rb k))))
+  (label 306)
+  (parent 228)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      rb-prime-0 ra-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-2)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 1))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 1) (5 2))
+    ((7 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (send (cat rb-prime-0 (enc ra-prime-2 k))))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 307)
+  (parent 228)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      rb-prime-0 rb-prime-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-2)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-1)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 1) (5 2))
+    ((7 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (send (cat rb-prime-0 (enc ra-prime-2 k))))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-1 (enc rb k)))))
+  (label 309)
+  (parent 228)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      rb-prime-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-2)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 1) (5 2))
+    ((7 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (send (cat rb-prime-0 (enc ra-prime-2 k)))) ((recv k) (send k)))
+  (label 310)
+  (parent 228)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      ra-prime-2 ra-prime-3 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 1) (4 2)) ((6 3) (0 2))
+    ((7 3) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k))))
+  (label 317)
+  (parent 240)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      ra-prime-2 ra-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-2) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 1))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 1) (4 2)) ((6 3) (0 2))
+    ((7 2) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-2 k)))))
+  (label 319)
+  (parent 240)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      ra-prime-2 rb-prime-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-2)
+    (rb-prime rb-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 1) (4 2)) ((6 3) (0 2))
+    ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat rb-prime-1 (enc ra-prime-2 k)))))
+  (label 322)
+  (parent 240)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 rb-prime-0
+      ra-prime-2 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 1) (4 2)) ((6 3) (0 2))
+    ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k)))
+    ((recv k) (send k)))
+  (label 323)
+  (parent 240)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 ra-prime-1
+      ra-prime-2 ra-prime-3 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0))
+    ((3 3) (1 2)) ((4 1) (3 2)) ((5 3) (0 2)) ((6 3) (5 2))
+    ((7 3) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k))))
+  (label 332)
+  (parent 254)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 ra-prime-1
+      ra-prime-2 ra-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-2) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 1))
+    ((3 3) (1 2)) ((4 1) (3 2)) ((5 3) (0 2)) ((6 3) (5 2))
+    ((7 2) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-2 k)))))
+  (label 333)
+  (parent 254)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 ra-prime-1
+      ra-prime-2 rb-prime-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-2)
+    (rb-prime rb-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0))
+    ((3 3) (1 2)) ((4 1) (3 2)) ((5 3) (0 2)) ((6 3) (5 2))
+    ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat rb-prime-1 (enc ra-prime-2 k)))))
+  (label 335)
+  (parent 254)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 rb-prime-0 ra-prime-1
+      ra-prime-2 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0))
+    ((3 3) (1 2)) ((4 1) (3 2)) ((5 3) (0 2)) ((6 3) (5 2))
+    ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (send (cat rb-prime-0 (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))) ((recv k) (send k)))
+  (label 336)
+  (parent 254)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 ra-prime-1
+      ra-prime-2 ra-prime-3 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (1 2))
+    ((4 3) (0 2)) ((5 3) (4 2)) ((6 3) (5 2)) ((7 3) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k))))
+  (label 341)
+  (parent 262)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 ra-prime-1
+      ra-prime-2 ra-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-2) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 1)) ((3 1) (1 2))
+    ((4 3) (0 2)) ((5 3) (4 2)) ((6 3) (5 2)) ((7 2) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-2 k)))))
+  (label 342)
+  (parent 262)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 ra-prime-1
+      ra-prime-2 rb-prime-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-2)
+    (rb-prime rb-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (1 2))
+    ((4 3) (0 2)) ((5 3) (4 2)) ((6 3) (5 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat rb-prime-1 (enc ra-prime-2 k)))))
+  (label 344)
+  (parent 262)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 rb-prime-0 ra-prime-0 ra-prime-1
+      ra-prime-2 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb-prime)
+    (rb-prime rb-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 0)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (1 2))
+    ((4 3) (0 2)) ((5 3) (4 2)) ((6 3) (5 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat (enc a k tb (ltk b ks)) rb-prime))
+      (send (cat rb-prime-0 (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))) ((recv k) (send k)))
+  (label 345)
+  (parent 262)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      ra-prime-2 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (7 2)) ((1 1) (6 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 3) (4 2)) ((6 1) (1 0)) ((6 3) (5 2)) ((7 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k))))
+  (label 347)
+  (parent 265)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      ra-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (7 1)) ((1 1) (6 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((2 1) (7 1)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 3) (4 2)) ((6 1) (1 0)) ((6 3) (5 2)) ((7 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 348)
+  (parent 265)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      rb-prime-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (7 0)) ((1 1) (6 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 3) (4 2)) ((6 1) (1 0)) ((6 3) (5 2)) ((7 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 349)
+  (parent 265)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (6 2)) ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 0))
+    ((2 1) (7 0)) ((3 1) (2 0)) ((4 3) (1 2)) ((5 3) (4 2))
+    ((6 1) (1 0)) ((6 3) (5 2)) ((7 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k))) ((recv k) (send k)))
+  (label 350)
+  (parent 265)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      ra-prime-2 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (7 2)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((2 1) (7 0)) ((3 1) (2 0))
+    ((4 3) (1 2)) ((5 3) (4 2)) ((6 2) (5 2)) ((7 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k))))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k))))
+  (label 351)
+  (parent 266)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      ra-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (7 1)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((2 1) (7 1)) ((3 1) (2 0))
+    ((4 3) (1 2)) ((5 3) (4 2)) ((6 2) (5 2)) ((7 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k))))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 352)
+  (parent 266)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      rb-prime-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (7 0)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 1)) ((2 1) (7 0)) ((3 1) (2 0))
+    ((4 3) (1 2)) ((5 3) (4 2)) ((6 2) (5 2)) ((7 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k))))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 354)
+  (parent 266)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 1)) ((2 1) (7 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 3) (4 2)) ((6 2) (5 2)) ((7 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k))))
+    ((recv k) (send k)))
+  (label 355)
+  (parent 266)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      ra-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb ra-prime-1) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (6 2)) ((1 1) (5 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((2 1) (7 1)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 1) (1 0)) ((5 3) (4 2)) ((6 3) (0 2)) ((7 2) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-1 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-1 k)))))
+  (label 357)
+  (parent 267)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      ra-prime-2 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (6 2)) ((1 1) (5 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 1) (1 0)) ((5 3) (4 2)) ((6 3) (0 2)) ((7 3) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-1 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 358)
+  (parent 267)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      rb-prime-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (6 2)) ((1 1) (5 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 1) (1 0)) ((5 3) (4 2)) ((6 3) (0 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-1 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 359)
+  (parent 267)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (6 2)) ((1 1) (5 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0)) ((4 3) (1 2))
+    ((5 1) (1 0)) ((5 3) (4 2)) ((6 3) (0 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-1 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv k) (send k)))
+  (label 360)
+  (parent 267)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      ra-prime-2 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (6 2)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0))
+    ((4 3) (1 2)) ((5 2) (4 2)) ((6 3) (0 2)) ((7 3) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-1 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 362)
+  (parent 275)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      ra-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb ra-prime-1) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (6 2)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((2 1) (6 0)) ((2 1) (7 1)) ((3 1) (2 0))
+    ((4 3) (1 2)) ((5 2) (4 2)) ((6 3) (0 2)) ((7 2) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-1 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-1 k)))))
+  (label 363)
+  (parent 275)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      rb-prime-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (6 2)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0))
+    ((4 3) (1 2)) ((5 2) (4 2)) ((6 3) (0 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-1 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 366)
+  (parent 275)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (6 2)) ((1 1) (4 2)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 1)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0))
+    ((4 3) (1 2)) ((5 2) (4 2)) ((6 3) (0 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-1 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv k) (send k)))
+  (label 367)
+  (parent 275)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      ra-prime-2 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0)) ((4 1) (1 0))
+    ((4 3) (1 2)) ((5 3) (0 2)) ((6 3) (5 2)) ((7 3) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-1 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 369)
+  (parent 278)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      ra-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb ra-prime-1) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((2 1) (7 1)) ((3 1) (2 0)) ((4 1) (1 0))
+    ((4 3) (1 2)) ((5 3) (0 2)) ((6 3) (5 2)) ((7 2) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-1 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-1 k)))))
+  (label 370)
+  (parent 278)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      rb-prime-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0)) ((4 1) (1 0))
+    ((4 3) (1 2)) ((5 3) (0 2)) ((6 3) (5 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-1 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 371)
+  (parent 278)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (5 2)) ((1 1) (4 2)) ((2 1) (4 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0)) ((4 1) (1 0))
+    ((4 3) (1 2)) ((5 3) (0 2)) ((6 3) (5 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-1 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))) ((recv k) (send k)))
+  (label 372)
+  (parent 278)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      ra-prime-2 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 1)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0)) ((4 2) (1 2))
+    ((5 3) (0 2)) ((6 3) (5 2)) ((7 3) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-1 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))))
+  (label 374)
+  (parent 288)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      ra-1 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb ra-prime-1) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 1)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((2 1) (7 1)) ((3 1) (2 0)) ((4 2) (1 2))
+    ((5 3) (0 2)) ((6 3) (5 2)) ((7 2) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-1 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-1 k)))))
+  (label 375)
+  (parent 288)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      rb-prime-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-1)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (5 2)) ((1 1) (4 1)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0)) ((4 2) (1 2))
+    ((5 3) (0 2)) ((6 3) (5 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-1 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-1))
+      (send (cat rb-prime-0 (enc ra-prime-1 k)))))
+  (label 377)
+  (parent 288)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra rb ra-prime rb-prime tb ra-0 rb-0 rb-1 ra-prime-0 ra-prime-1
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (5 2)) ((1 1) (4 1)) ((2 1) (1 0)) ((2 1) (5 0))
+    ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (2 0)) ((4 2) (1 2))
+    ((5 3) (0 2)) ((6 3) (5 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-1 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k))) ((recv k) (send k)))
+  (label 378)
+  (parent 288)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-prime-3 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-2) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-3) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (6 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 3) (4 2)) ((6 1) (1 0)) ((6 3) (5 2))
+    ((7 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-2 (enc ra-prime k)))
+      (send (enc ra-prime-2 k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-3))
+      (recv (cat rb (enc ra-prime-3 k))) (send (enc rb k))))
+  (label 380)
+  (parent 299)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-2) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (6 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 1)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 3) (4 2)) ((6 1) (1 0)) ((6 3) (5 2))
+    ((7 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-2 (enc ra-prime k)))
+      (send (enc ra-prime-2 k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 381)
+  (parent 299)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      rb-prime-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-2) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (6 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 3) (4 2)) ((6 1) (1 0)) ((6 3) (5 2))
+    ((7 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-2 (enc ra-prime k)))
+      (send (enc ra-prime-2 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 382)
+  (parent 299)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-2) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (6 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 3) (4 2)) ((6 1) (1 0)) ((6 3) (5 2))
+    ((7 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-2 (enc ra-prime k)))
+      (send (enc ra-prime-2 k))) ((recv k) (send k)))
+  (label 383)
+  (parent 299)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-prime-3 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-2) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-3) (rb-prime rb)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 1)) ((2 1) (7 0))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 0) (0 0))
+    ((6 2) (5 2)) ((7 3) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-2))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-2 k))))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-3))
+      (recv (cat rb (enc ra-prime-3 k))) (send (enc rb k))))
+  (label 384)
+  (parent 302)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-2) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 1)) ((2 1) (7 1))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 0) (0 0))
+    ((6 2) (5 2)) ((7 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-2))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-2 k))))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 385)
+  (parent 302)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      rb-prime-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-2) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime rb) (rb-prime rb-prime-0)
+    (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 1)) ((2 1) (7 0))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 0) (0 0))
+    ((6 2) (5 2)) ((7 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2) (enc rb k)
+    (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-2))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-2 k))))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat rb-prime-0 (enc rb k)))))
+  (label 387)
+  (parent 302)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-2) (tb tb) (a a) (b b)
+    (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 0)) ((2 1) (6 1)) ((2 1) (7 0))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 3) (4 2)) ((6 0) (0 0))
+    ((6 2) (5 2)) ((7 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-2))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-2 k))))
+    ((recv k) (send k)))
+  (label 388)
+  (parent 302)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-2) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (5 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 1)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 1) (1 0)) ((5 3) (4 2)) ((6 3) (0 2))
+    ((7 2) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-2 k)))))
+  (label 391)
+  (parent 303)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-prime-3 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (5 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 1) (1 0)) ((5 3) (4 2)) ((6 3) (0 2))
+    ((7 3) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k))))
+  (label 392)
+  (parent 303)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      rb-prime-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-2)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (5 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 1) (1 0)) ((5 3) (4 2)) ((6 3) (0 2))
+    ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat rb-prime-0 (enc ra-prime-2 k)))))
+  (label 393)
+  (parent 303)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (5 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 3) (1 2))
+    ((4 3) (3 2)) ((5 1) (1 0)) ((5 3) (4 2)) ((6 3) (0 2))
+    ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-1 (enc ra-prime k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k)))
+    ((recv k) (send k)))
+  (label 394)
+  (parent 303)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-2) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((2 1) (6 0)) ((2 1) (7 1))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 0) (0 0)) ((5 2) (4 2))
+    ((6 3) (0 2)) ((7 2) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-2 k)))))
+  (label 397)
+  (parent 311)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-prime-3 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((2 1) (6 0)) ((2 1) (7 0))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 0) (0 0)) ((5 2) (4 2))
+    ((6 3) (0 2)) ((7 3) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k))))
+  (label 400)
+  (parent 311)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      rb-prime-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-2)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((2 1) (6 0)) ((2 1) (7 0))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 0) (0 0)) ((5 2) (4 2))
+    ((6 3) (0 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat rb-prime-0 (enc ra-prime-2 k)))))
+  (label 401)
+  (parent 311)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-1) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 0)) ((2 1) (5 1)) ((2 1) (6 0)) ((2 1) (7 0))
+    ((3 3) (1 2)) ((4 3) (3 2)) ((5 0) (0 0)) ((5 2) (4 2))
+    ((6 3) (0 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-1))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-1 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat rb (enc ra-prime-2 k))) (send (enc rb k)))
+    ((recv k) (send k)))
+  (label 402)
+  (parent 311)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-2) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 1)) ((3 3) (1 2))
+    ((4 1) (1 0)) ((4 3) (3 2)) ((5 3) (0 2)) ((6 3) (5 2))
+    ((7 2) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-2 k)))))
+  (label 405)
+  (parent 315)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-prime-3 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 3) (1 2))
+    ((4 1) (1 0)) ((4 3) (3 2)) ((5 3) (0 2)) ((6 3) (5 2))
+    ((7 3) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k))))
+  (label 406)
+  (parent 315)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      rb-prime-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-2)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 3) (1 2))
+    ((4 1) (1 0)) ((4 3) (3 2)) ((5 3) (0 2)) ((6 3) (5 2))
+    ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat rb-prime-0 (enc ra-prime-2 k)))))
+  (label 407)
+  (parent 315)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (4 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 3) (1 2))
+    ((4 1) (1 0)) ((4 3) (3 2)) ((5 3) (0 2)) ((6 3) (5 2))
+    ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat ra-prime-0 (enc ra-prime k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))) ((recv k) (send k)))
+  (label 408)
+  (parent 315)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-prime-3 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0))
+    ((3 3) (1 2)) ((4 0) (0 0)) ((4 2) (3 2)) ((5 3) (0 2))
+    ((6 3) (5 2)) ((7 3) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k))))
+  (label 409)
+  (parent 325)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-2) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 1))
+    ((3 3) (1 2)) ((4 0) (0 0)) ((4 2) (3 2)) ((5 3) (0 2))
+    ((6 3) (5 2)) ((7 2) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-2 k)))))
+  (label 410)
+  (parent 325)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      rb-prime-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-2)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0))
+    ((3 3) (1 2)) ((4 0) (0 0)) ((4 2) (3 2)) ((5 3) (0 2))
+    ((6 3) (5 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat rb-prime-0 (enc ra-prime-2 k)))))
+  (label 413)
+  (parent 325)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0)
+    (rb-prime rb-prime) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb ra-prime-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((2 1) (4 1)) ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0))
+    ((3 3) (1 2)) ((4 0) (0 0)) ((4 2) (3 2)) ((5 3) (0 2))
+    ((6 3) (5 2)) ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb-prime (enc ra-prime-0 k))) (send (enc rb-prime k)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          ra-prime-0))
+      (send (cat (enc a k tb (ltk b ks)) (enc ra-prime-0 k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat rb (enc ra-prime-1 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))) ((recv k) (send k)))
+  (label 414)
+  (parent 325)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-prime-3 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (1 0))
+    ((3 3) (1 2)) ((4 3) (0 2)) ((5 3) (4 2)) ((6 3) (5 2))
+    ((7 3) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k))))
+  (label 415)
+  (parent 328)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-2) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 1)) ((3 1) (1 0))
+    ((3 3) (1 2)) ((4 3) (0 2)) ((5 3) (4 2)) ((6 3) (5 2))
+    ((7 2) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-2 k)))))
+  (label 416)
+  (parent 328)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      rb-prime-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-2)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (1 0))
+    ((3 3) (1 2)) ((4 3) (0 2)) ((5 3) (4 2)) ((6 3) (5 2))
+    ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat rb-prime-0 (enc ra-prime-2 k)))))
+  (label 417)
+  (parent 328)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 2)) ((2 1) (3 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 1) (1 0))
+    ((3 3) (1 2)) ((4 3) (0 2)) ((5 3) (4 2)) ((6 3) (5 2))
+    ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime))
+      (recv (cat rb-prime (enc ra-prime k))) (send (enc rb-prime k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))) ((recv k) (send k)))
+  (label 418)
+  (parent 328)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-prime-3 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-3)
+    (rb-prime ra-prime-2) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 0) (0 0))
+    ((3 2) (1 2)) ((4 3) (0 2)) ((5 3) (4 2)) ((6 3) (5 2))
+    ((7 3) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init-reauth 4)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (enc a-0 k tb-0 (ltk b-0 ks-0)))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-3))
+      (recv (cat ra-prime-2 (enc ra-prime-3 k)))
+      (send (enc ra-prime-2 k))))
+  (label 420)
+  (parent 338)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      ra-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb ra-prime-2) (tb tb-0) (a a-0)
+    (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 1)) ((3 0) (0 0))
+    ((3 2) (1 2)) ((4 3) (0 2)) ((5 3) (4 2)) ((6 3) (5 2))
+    ((7 2) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand init 3) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc ra-prime-2 k)))))
+  (label 421)
+  (parent 338)
+  (unrealized (7 1))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      rb-prime-0 tb-0 text) (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 2 (k k) (ra-prime ra-prime-2)
+    (rb-prime rb-prime-0) (tb tb-0) (a a-0) (b b-0) (ks ks-0))
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 0) (0 0))
+    ((3 2) (1 2)) ((4 3) (0 2)) ((5 3) (4 2)) ((6 3) (5 2))
+    ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-strand resp-reauth 2)
+    (enc ra-prime-2 k) (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k)))
+    ((recv (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) ra-prime-2))
+      (send (cat rb-prime-0 (enc ra-prime-2 k)))))
+  (label 423)
+  (parent 338)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
+
+(defskeleton neuman-stubblebine-reauth
+  (vars (k skey)
+    (ra tb rb ra-prime rb-prime rb-0 ra-prime-0 ra-prime-1 ra-prime-2
+      text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand resp-reauth 3 (k k) (ra-prime ra-prime) (rb-prime rb-prime)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb-prime) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-0) (rb-prime rb)
+    (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-1)
+    (rb-prime ra-prime-0) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init-reauth 4 (k k) (ra-prime ra-prime-2)
+    (rb-prime ra-prime-1) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (2 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((2 1) (4 0))
+    ((2 1) (5 0)) ((2 1) (6 0)) ((2 1) (7 0)) ((3 0) (0 0))
+    ((3 2) (1 2)) ((4 3) (0 2)) ((5 3) (4 2)) ((6 3) (5 2))
+    ((7 1) (6 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb ra-prime rb-prime)
+  (operation encryption-test (added-listener k) (enc ra-prime-2 k)
+    (6 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat (enc a k tb (ltk b ks)) ra-prime))
+      (send (cat rb-prime (enc ra-prime k))) (recv (enc rb-prime k)))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-prime))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb-prime k))))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-0))
+      (recv (cat rb (enc ra-prime-0 k))) (send (enc rb k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-1))
+      (recv (cat ra-prime-0 (enc ra-prime-1 k)))
+      (send (enc ra-prime-0 k)))
+    ((recv (enc a k tb (ltk b ks)))
+      (send (cat (enc a k tb (ltk b ks)) ra-prime-2))
+      (recv (cat ra-prime-1 (enc ra-prime-2 k)))
+      (send (enc ra-prime-1 k))) ((recv k) (send k)))
+  (label 424)
+  (parent 338)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
diff --git a/tst/neuman-stubblebine.scm b/tst/neuman-stubblebine.scm
new file mode 100644
--- /dev/null
+++ b/tst/neuman-stubblebine.scm
@@ -0,0 +1,37 @@
+(defprotocol neuman-stubblebine basic
+  (defrole init (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace
+     (send (cat a ra))
+     (recv (cat (enc b ra k tb (ltk a ks))
+		(enc a k tb (ltk b ks)) rb))
+     (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (defrole resp (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace
+     (recv (cat a ra))
+     (send (cat b rb (enc a ra tb (ltk b ks))))
+     (recv (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (defrole keyserver
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace
+     (recv (cat b rb (enc a ra tb (ltk b ks))))
+     (send (cat (enc b ra k tb (ltk a ks))
+		(enc a k tb (ltk b ks)) rb)))
+    (uniq-orig k)))
+
+(defskeleton neuman-stubblebine
+  (vars (a b ks name) (ra rb text))
+  (defstrand init 3 (a a) (b b) (ks ks) (ra ra) (rb rb))
+  (uniq-orig ra rb)
+  (non-orig (ltk a ks) (ltk b ks)))
+
+(defskeleton neuman-stubblebine
+  (vars (a b ks name) (ra rb text))
+  (defstrand resp 3 (a a) (b b) (ks ks) (ra ra) (rb rb))
+  (uniq-orig ra rb)
+  (non-orig (ltk a ks) (ltk b ks)))
+
+(defskeleton neuman-stubblebine
+  (vars (a b ks name) (ra rb text))
+  (defstrand keyserver 2 (a a) (b b) (ks ks) (ra ra) (rb rb))
+  (uniq-orig ra rb)
+  (non-orig (ltk a ks) (ltk b ks)))
diff --git a/tst/neuman-stubblebine.tst b/tst/neuman-stubblebine.tst
new file mode 100644
--- /dev/null
+++ b/tst/neuman-stubblebine.tst
@@ -0,0 +1,478 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/neuman-stubblebine.scm")
+
+(defprotocol neuman-stubblebine basic
+  (defrole init
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (defrole resp
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (defrole keyserver
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton neuman-stubblebine
+  (vars (k skey) (ra rb tb text) (a b ks name))
+  (defstrand init 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb)
+  (traces
+    ((send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (ra (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (k skey) (ra rb tb rb-0 text) (a b ks name))
+  (defstrand init 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb)
+  (operation encryption-test (added-strand keyserver 2)
+    (enc b ra k tb (ltk a ks)) (0 1))
+  (traces
+    ((send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (k skey) (ra rb tb rb-0 rb-1 text) (a b ks name))
+  (defstrand init 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb)
+  (operation encryption-test (added-strand resp 2)
+    (enc a ra tb (ltk b ks)) (1 0))
+  (traces
+    ((send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv (cat a ra)) (send (cat b rb-1 (enc a ra tb (ltk b ks))))))
+  (label 2)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (ks ks) (ra ra) (rb rb) (k k) (tb tb))))
+  (origs (k (1 1)) (ra (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol neuman-stubblebine basic
+  (defrole init
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (defrole resp
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (defrole keyserver
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton neuman-stubblebine
+  (vars (k skey) (ra rb tb text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig ra rb)
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 3)
+  (unrealized (0 2))
+  (origs (rb (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (k skey) (ra rb tb ra-0 rb-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((1 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb)
+  (operation encryption-test (added-strand keyserver 2)
+    (enc a k tb (ltk b ks)) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0))))
+  (label 4)
+  (parent 3)
+  (unrealized (0 2) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (k skey) (ra rb tb rb-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb)
+  (operation encryption-test (displaced 2 0 resp 2)
+    (enc a ra-0 tb (ltk b ks)) (1 0))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0))))
+  (label 5)
+  (parent 4)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (k skey) (ra rb tb ra-0 rb-0 rb-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((1 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb)
+  (operation encryption-test (added-strand resp 2)
+    (enc a ra-0 tb (ltk b ks)) (1 0))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0))
+      (send (cat b rb-1 (enc a ra-0 tb (ltk b ks))))))
+  (label 6)
+  (parent 4)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (k skey) (ra rb tb rb-0 ra-0 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((2 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a-0 ra-0))
+      (recv
+        (cat (enc b-0 ra-0 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 7)
+  (parent 5)
+  (unrealized (2 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (k skey) (ra rb tb rb-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (deflistener k)
+  (precedes ((0 1) (1 0)) ((1 1) (2 0)) ((2 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((recv k) (send k)))
+  (label 8)
+  (parent 5)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine
+  (vars (k skey) (ra rb tb ra-0 rb-0 rb-1 ra-1 tb-0 text)
+    (a b ks a-0 b-0 ks-0 name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb-0) (a a-0) (b b-0)
+    (ks ks-0))
+  (precedes ((0 1) (3 1)) ((1 1) (3 1)) ((2 1) (1 0)) ((3 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb)
+  (operation encryption-test (added-strand init 3) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a-0 ra-1))
+      (recv
+        (cat (enc b-0 ra-1 k tb-0 (ltk a-0 ks-0))
+          (enc a-0 k tb-0 (ltk b-0 ks-0)) rb))
+      (send (cat (enc a-0 k tb-0 (ltk b-0 ks-0)) (enc rb k)))))
+  (label 9)
+  (parent 6)
+  (unrealized (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (k skey) (ra rb tb ra-0 rb-0 rb-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (deflistener k)
+  (precedes ((1 1) (3 0)) ((2 1) (1 0)) ((3 1) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb)
+  (operation encryption-test (added-listener k) (enc rb k) (0 2))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((recv k) (send k)))
+  (label 10)
+  (parent 6)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton neuman-stubblebine
+  (vars (k skey) (ra rb tb rb-0 ra-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((2 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (2 1) (enc a k tb (ltk b ks)) (enc b ra k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 11)
+  (parent 7)
+  (unrealized (2 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (k skey) (ra rb tb ra-0 rb-0 rb-1 ra-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-1) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (3 1)) ((1 1) (3 1)) ((2 1) (1 0)) ((3 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (ks-0 ks) (tb-0 tb))
+    k (3 1) (enc a k tb (ltk b ks)) (enc b ra-0 k tb (ltk a ks)))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-1))
+      (recv
+        (cat (enc b ra-1 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 12)
+  (parent 9)
+  (unrealized (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (k skey) (ra rb tb rb-0 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand init 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((2 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb)
+  (operation encryption-test (displaced 3 1 keyserver 2)
+    (enc b ra-0 k tb (ltk a ks)) (2 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb-0)))
+    ((send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 13)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (ks ks) (ra ra) (rb rb) (k k) (tb tb))))
+  (origs (k (1 1)) (ra (2 0)) (rb (0 1))))
+
+(defskeleton neuman-stubblebine
+  (vars (k skey) (ra rb tb ra-0 rb-0 rb-1 text) (a b ks name))
+  (defstrand resp 3 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (defstrand keyserver 2 (k k) (ra ra-0) (rb rb-0) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra-0) (rb rb-1) (tb tb) (a a) (b b) (ks ks))
+  (defstrand init 3 (k k) (ra ra-0) (rb rb) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((0 1) (3 1)) ((1 1) (3 1)) ((2 1) (1 0)) ((3 2) (0 2)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb)
+  (operation encryption-test (displaced 4 1 keyserver 2)
+    (enc b ra-1 k tb (ltk a ks)) (3 1))
+  (traces
+    ((recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k))))
+    ((recv (cat b rb-0 (enc a ra-0 tb (ltk b ks))))
+      (send
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks))
+          rb-0)))
+    ((recv (cat a ra-0)) (send (cat b rb-1 (enc a ra-0 tb (ltk b ks)))))
+    ((send (cat a ra-0))
+      (recv
+        (cat (enc b ra-0 k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (label 14)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (ks ks) (ra ra) (rb rb) (k k) (tb tb))))
+  (origs (k (1 1)) (rb (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol neuman-stubblebine basic
+  (defrole init
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (send (cat a ra))
+      (recv (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))
+      (send (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (defrole resp
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (recv (cat a ra)) (send (cat b rb (enc a ra tb (ltk b ks))))
+      (recv (cat (enc a k tb (ltk b ks)) (enc rb k)))))
+  (defrole keyserver
+    (vars (a b ks name) (ra rb text) (k skey) (tb text))
+    (trace (recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton neuman-stubblebine
+  (vars (k skey) (ra rb tb text) (a b ks name))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b)
+    (ks ks))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb)
+  (traces
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb))))
+  (label 15)
+  (unrealized (0 0))
+  (origs (k (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton neuman-stubblebine
+  (vars (k skey) (ra rb tb rb-0 text) (a b ks name))
+  (defstrand keyserver 2 (k k) (ra ra) (rb rb) (tb tb) (a a) (b b)
+    (ks ks))
+  (defstrand resp 2 (ra ra) (rb rb-0) (tb tb) (a a) (b b) (ks ks))
+  (precedes ((1 1) (0 0)))
+  (non-orig (ltk a ks) (ltk b ks))
+  (uniq-orig k ra rb)
+  (operation encryption-test (added-strand resp 2)
+    (enc a ra tb (ltk b ks)) (0 0))
+  (traces
+    ((recv (cat b rb (enc a ra tb (ltk b ks))))
+      (send
+        (cat (enc b ra k tb (ltk a ks)) (enc a k tb (ltk b ks)) rb)))
+    ((recv (cat a ra)) (send (cat b rb-0 (enc a ra tb (ltk b ks))))))
+  (label 16)
+  (parent 15)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (ks ks) (ra ra) (rb rb) (k k) (tb tb))))
+  (origs (k (0 1))))
+
+(comment "Nothing left to do")
diff --git a/tst/nh-ca-w-dh.scm b/tst/nh-ca-w-dh.scm
deleted file mode 100644
--- a/tst/nh-ca-w-dh.scm
+++ /dev/null
@@ -1,140 +0,0 @@
-; CA
-; This is an authenticated form of a new-hope key exchange.
-
-; The file contains one model of the CA protocol with the hint included in the
-; encryption and one model fo the CA protocol with the hint not included in the
-; encryption.
-
-; Note: This version of nh-ca does use diffie hellman for the defined
-; macros.
-
-(herald nhca (algebra diffie-hellman) (bound 20))
-
-(defmacro (nh_public x1)
-  (exp (gen) x1))
-(defmacro (nh_public2 x1 x2)
-  (hash "share" (exp (gen) (mul x1 x2)) x1))
-(defmacro (nh_hint x1 x2)
-  (hash "hint" (nh_public2 x1 x2)))
-(defmacro (nh_key_hint x1 x2 h)
-  (hash "key" (nh_public2 x1 x2) h))
-(defmacro (nh_key x1 x2)
-  (nh_key_hint x1 x2 (nh_hint x1 x2)))
-
-(defprotocol nhca diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))
-    (trace
-     (send (enc "reg" (nh_public xi) a (privk a)))
-     (recv (enc (nh_public xi) a (privk ca)))
-     (send (cat (nh_public xi) (enc (nh_public xi) a (privk ca))))
-     (recv (cat (nh_public xr) hint (enc (nh_public xr) b (privk ca))
-        (enc n hint (nh_key_hint xi xr hint))))
-     (send (cat (enc "check" n (nh_key_hint xi xr hint))
-                (enc "check" n (nh_key_hint xr xi hint)))))
-    (uniq-gen xi)
-    (non-orig (privk a))
-    (non-orig (privk ca)))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (a b ca name) (n text))
-    (trace
-     (send (enc "reg" (nh_public xr) b (privk b)))
-     (recv (enc (nh_public xr) b (privk ca)))
-     (recv (cat (nh_public xi) (enc (nh_public xi) a (privk ca))))
-     (send (cat (nh_public xr) (nh_hint xr xi) (enc (nh_public xr) b (privk ca))
-		(enc n (nh_hint xr xi) (nh_key xr xi))
-        (enc n (nh_hint xr xi) (nh_key_hint xi xr (nh_hint xr xi)))))
-     (recv (enc "check" n (nh_key xr xi))))
-    (uniq-gen xr)
-    (non-orig (privk b))
-    (non-orig (privk ca)))
-  (defrole ca
-    (vars (subject ca name) (x expt))
-    (trace
-     (recv (enc "reg" (nh_public x) subject (privk subject)))
-     (send (enc (nh_public x) subject (privk ca))))
-    (non-orig (privk subject))
-    )
-  (comment A diffie-hellman exchange which uses a certificate
-    authority to certify lonh-term NH values)
-)
-
-(defskeleton nhca
-  (vars )
-  (defstrand init 5 )
-(comment Full initiator POV No need to make extra assumptions))
-
-(defskeleton nhca
-  (vars (n text))
-  (defstrand resp 5 (n n))
-  (uniq-orig n)
-  (comment Full responder point of view with freshly chosen n)
-)
-
-(defskeleton nhca
-  (vars (a b ca name) (xi xr rndx) (n text))
-  (defstrand init 5 (xi xi) (ca ca) (a a) (b b) (n n))
-  (defstrand resp 5 (xr xr) (ca ca) (a a) (b b) (n n))
-(uniq-orig n)
-(comment point of view in which init and resp each complete and
-    they agree on the relevant parameters)
-)
-
-(defprotocol nhca-nohint diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))
-    (trace
-     (send (enc "reg" (nh_public xi) a (privk a)))
-     (recv (enc (nh_public xi) a (privk ca)))
-     (send (cat (nh_public xi) (enc (nh_public xi) a (privk ca))))
-     (recv (cat (nh_public xr) hint (enc (nh_public xr) b (privk ca))
-        (enc n (nh_key_hint xi xr hint))))
-     (send (cat (enc "check" n (nh_key_hint xi xr hint))
-                (enc "check" n (nh_key_hint xr xi hint)))))
-    (uniq-gen xi)
-    (non-orig (privk a))
-    (non-orig (privk ca)))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (a b ca name) (n text))
-    (trace
-     (send (enc "reg" (nh_public xr) b (privk b)))
-     (recv (enc (nh_public xr) b (privk ca)))
-     (recv (cat (nh_public xi) (enc (nh_public xi) a (privk ca))))
-     (send (cat (nh_public xr) (nh_hint xr xi) (enc (nh_public xr) b (privk ca))
-		(enc n (nh_key xr xi))
-        (enc n (nh_key_hint xi xr (nh_hint xr xi)))))
-     (recv (enc "check" n (nh_key xr xi))))
-    (uniq-gen xr)
-    (non-orig (privk b))
-    (non-orig (privk ca)))
-  (defrole ca
-    (vars (subject ca name) (x expt))
-    (trace
-     (recv (enc "reg" (nh_public x) subject (privk subject)))
-     (send (enc (nh_public x) subject (privk ca))))
-    (non-orig (privk subject))
-    )
-  (comment A diffie-hellman exchange which uses a certificate
-    authority to certify lonh-term NH values)
-)
-
-(defskeleton nhca-nohint
-  (vars )
-  (defstrand init 5 )
-(comment Full initiator POV No need to make extra assumptions))
-
-(defskeleton nhca-nohint
-  (vars (n text))
-  (defstrand resp 5 (n n))
-  (uniq-orig n)
-  (comment Full responder point of view with freshly chosen n)
-)
-
-(defskeleton nhca-nohint
-  (vars (a b ca name) (xi xr rndx) (n text))
-  (defstrand init 5 (xi xi) (ca ca) (a a) (b b) (n n))
-  (defstrand resp 5 (xr xr) (ca ca) (a a) (b b) (n n))
-(uniq-orig n)
-(comment point of view in which init and resp each complete and
-    they agree on the relevant parameters)
-)
diff --git a/tst/nh-ca-w-dh.tst b/tst/nh-ca-w-dh.tst
deleted file mode 100644
--- a/tst/nh-ca-w-dh.tst
+++ /dev/null
@@ -1,35298 +0,0 @@
-(herald nhca (algebra diffie-hellman) (bound 20))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/nh-ca-w-dh.scm")
-(comment "Strand count bounded at 20")
-
-(defprotocol nhca diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))
-    (trace (send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    (non-orig (privk a) (privk ca))
-    (uniq-gen xi))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (a b ca name) (n text))
-    (trace (send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    (non-orig (privk b) (privk ca))
-    (uniq-gen xr))
-  (defrole ca
-    (vars (subject ca name) (x expt))
-    (trace (recv (enc "reg" (exp (gen) x) subject (privk subject)))
-      (send (enc (exp (gen) x) subject (privk ca))))
-    (non-orig (privk subject)))
-  (comment A diffie-hellman exchange which uses a certificate authority
-    to certify lonh-term NH values))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (comment Full initiator POV No need to make extra assumptions)
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint))))))
-  (label 0)
-  (unrealized (0 1) (0 3))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xi rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xi) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca)))))
-  (label 1)
-  (parent 0)
-  (unrealized (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a ca name) (xi rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test (displaced 2 1 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi) hint (enc (exp (gen) xi) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca)))))
-  (label 2)
-  (parent 1)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr x))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) x) hint (enc (exp (gen) x) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi x)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi x)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi x)) x)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) b (privk b)))
-      (send (enc (exp (gen) x) b (privk ca)))))
-  (label 3)
-  (parent 1)
-  (unrealized (0 3) (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a ca name) (xi rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi) hint (enc (exp (gen) xi) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))))
-  (label 4)
-  (parent 2)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a ca name) (xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xr)
-  (operation encryption-test (displaced 3 0 resp 1)
-    (enc "reg" (exp (gen) xr-0) b (privk b)) (2 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (send (cat (exp (gen) xr) (enc (exp (gen) xr) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca)))))
-  (label 5)
-  (parent 3)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 1 (b b) (xr xr))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)) ((3 0) (2 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (exp (gen) xr) b (privk b)) (2 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))))
-  (label 6)
-  (parent 3)
-  (unrealized (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a ca name) (xi rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 1) (2 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint) (2 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi) hint (enc (exp (gen) xi) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))))
-  (label 7)
-  (parent 4)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a ca name) (xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 1) (0 3)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (send (cat (exp (gen) xr) (enc (exp (gen) xr) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))))
-  (label 8)
-  (parent 5)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a ca a-0 b ca-0 name) (xi xr rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))
-  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 3) (0 3)))
-  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))
-  (uniq-gen xi xr)
-  (operation encryption-test (displaced 3 4 resp 4)
-    (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-        (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr)))) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca-0)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a-0 (privk ca-0))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))))
-  (label 9)
-  (parent 6)
-  (unrealized (3 1) (3 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 1 (b b) (xr xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 3)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))))
-  (label 10)
-  (parent 6)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a ca name) (xi rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xi)) xi))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 1) (2 0)) ((4 1) (3 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xi)) xi))
-    (hash "share" (exp (gen) (mul xi xi)) xi) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi) hint (enc (exp (gen) xi) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-      (send (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xi)) xi))
-      (send (cat "share" (exp (gen) (mul xi xi)) xi))))
-  (label 11)
-  (parent 7)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a ca name) (xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (send (cat (exp (gen) xr) (enc (exp (gen) xr) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))))
-  (label 12)
-  (parent 8)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a ca a-0 b name) (xi xr rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (xr xr) (xi xi))
-  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (3 1))
-    ((3 0) (2 0)) ((3 3) (0 3)))
-  (non-orig (privk a) (privk ca) (privk b))
-  (uniq-gen xi xr)
-  (operation encryption-test (displaced 4 2 ca 2)
-    (enc (exp (gen) xr) b (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a-0 (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))))
-  (label 13)
-  (parent 9)
-  (unrealized (3 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a ca a-0 b ca-0 name) (xi xr rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))
-  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))
-  (uniq-gen xi xr)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xr) b (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca-0)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a-0 (privk ca-0))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0)))))
-  (label 14)
-  (parent 9)
-  (unrealized (3 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 1 (b b) (xr xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))))
-  (label 15)
-  (parent 10)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a ca name) (xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-  (deflistener (cat "share" (exp (gen) (mul xr xr)) xr))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)) ((5 1) (4 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr xr)) xr))
-    (hash "share" (exp (gen) (mul xr xr)) xr) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (send (cat (exp (gen) xr) (enc (exp (gen) xr) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-      (send (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint)))
-    ((recv (cat "share" (exp (gen) (mul xr xr)) xr))
-      (send (cat "share" (exp (gen) (mul xr xr)) xr))))
-  (label 16)
-  (parent 12)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (n text) (a ca b name) (xr xi rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (3 1))
-    ((3 0) (2 0)) ((3 3) (0 3)))
-  (non-orig (privk a) (privk ca) (privk b))
-  (uniq-gen xr xi)
-  (operation encryption-test (displaced 4 1 ca 2)
-    (enc (exp (gen) xi) a-0 (privk ca)) (3 2))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))))
-  (label 17)
-  (parent 13)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((xi xi) (xr xr) (a a) (b b) (ca ca) (n n)
-        (hint
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-  (origs))
-
-(defskeleton nhca
-  (vars (n text) (a ca a-0 b name) (xr xi rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a-0) (ca ca) (x xi))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))
-    ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk a-0) (privk b))
-  (uniq-gen xr xi)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xi) a-0 (privk ca)) (3 2))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a-0 (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a-0 (privk a-0)))
-      (send (enc (exp (gen) xi) a-0 (privk ca)))))
-  (label 18)
-  (parent 13)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a ca b name) (xr xi rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))
-  (non-orig (privk a) (privk ca) (privk b))
-  (uniq-gen xr xi)
-  (operation encryption-test (displaced 5 1 ca 2)
-    (enc (exp (gen) xi) a-0 (privk ca-0)) (3 2))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca)))))
-  (label 19)
-  (parent 14)
-  (seen 17)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a ca a-0 b ca-0 name) (xr xi rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a-0) (ca ca-0) (x xi))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))
-    ((5 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk a-0) (privk b) (privk ca-0))
-  (uniq-gen xr xi)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xi) a-0 (privk ca-0)) (3 2))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca-0)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a-0 (privk ca-0))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi) a-0 (privk a-0)))
-      (send (enc (exp (gen) xi) a-0 (privk ca-0)))))
-  (label 20)
-  (parent 14)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 1 (b b) (xr xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xr)) xi))
-  (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (6 0)) ((4 1) (0 3)) ((5 1) (4 0))
-    ((6 1) (5 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xr)) xi))
-    (hash "share" (exp (gen) (mul xi xr)) xi) (5 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-      (send (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xr)) xi))
-      (send (cat "share" (exp (gen) (mul xi xr)) xi))))
-  (label 21)
-  (parent 15)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (n text) (a ca b name) (xr xr-0 rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b b) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))
-    ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk b))
-  (uniq-gen xr xr-0)
-  (operation encryption-test (displaced 5 0 resp 1)
-    (enc "reg" (exp (gen) xr-0) a-0 (privk a-0)) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca)))))
-  (label 22)
-  (parent 18)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((xi xr-0) (xr xr) (a a) (b b) (ca ca) (n n)
-        (hint
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-  (origs))
-
-(defskeleton nhca
-  (vars (n text) (a ca b ca-0 name) (xr xr-0 rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b b) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca-0) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))
-    ((5 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))
-  (uniq-gen xr xr-0)
-  (operation encryption-test (displaced 6 0 resp 1)
-    (enc "reg" (exp (gen) xr-0) a-0 (privk a-0)) (5 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca-0)))
-      (recv
-        (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca-0))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca-0)))))
-  (label 23)
-  (parent 20)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((xi xr-0) (xr xr) (a a) (b b) (ca ca) (n n)
-        (hint
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol nhca diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))
-    (trace (send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    (non-orig (privk a) (privk ca))
-    (uniq-gen xi))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (a b ca name) (n text))
-    (trace (send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    (non-orig (privk b) (privk ca))
-    (uniq-gen xr))
-  (defrole ca
-    (vars (subject ca name) (x expt))
-    (trace (recv (enc "reg" (exp (gen) x) subject (privk subject)))
-      (send (enc (exp (gen) x) subject (privk ca))))
-    (non-orig (privk subject)))
-  (comment A diffie-hellman exchange which uses a certificate authority
-    to certify lonh-term NH values))
-
-(defskeleton nhca
-  (vars (n text) (a b ca name) (xr rndx) (xi expt))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (comment Full responder point of view with freshly chosen n)
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-  (label 24)
-  (unrealized (0 1) (0 2) (0 4))
-  (origs (n (0 3)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a b ca name) (xi expt) (xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xr) b (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca)))))
-  (label 25)
-  (parent 24)
-  (unrealized (0 2) (0 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 2 1 ca 2)
-    (enc (exp (gen) x) a (privk ca)) (0 2))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca)))))
-  (label 26)
-  (parent 25)
-  (unrealized (0 4))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a b ca name) (xr rndx) (x expt))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi x))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) a (privk ca)) (0 2))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr x)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr x)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr x)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr x)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr x)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr x)) x)
-              (hash "hint" (hash "share" (exp (gen) (mul xr x)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr x)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr x)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca)))))
-  (label 27)
-  (parent 25)
-  (unrealized (0 4) (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 4)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-    (enc "check" n
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (0 4))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-  (label 28)
-  (parent 26)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 3 0 resp 1)
-    (enc "reg" (exp (gen) xr-0) a (privk a)) (2 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca)))))
-  (label 29)
-  (parent 27)
-  (unrealized (0 4))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a b ca name) (xr xr-0 rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand resp 1 (b a) (xr xr-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 0) (2 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (exp (gen) xr-0) a (privk a)) (2 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))))
-  (label 30)
-  (parent 27)
-  (unrealized (0 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 4))
-    ((3 1) (2 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (2 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-  (label 31)
-  (parent 28)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 1) (0 4)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-    (enc "check" n
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (0 4))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-  (label 32)
-  (parent 29)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca a b-0 ca-0 name) (xr xi rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)
-    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 4) (0 4)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi)
-  (uniq-orig n)
-  (operation encryption-test (displaced 3 4 init 5)
-    (enc "check" n
-      (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))) (0 4))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b-0 (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))))
-  (label 33)
-  (parent 30)
-  (unrealized (3 1) (3 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a b ca name) (xr xr-0 rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand resp 1 (b a) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 4)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-    (enc "check" n
-      (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-    (0 4))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-  (label 34)
-  (parent 30)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (deflistener (cat "share" (exp (gen) (mul xr xr)) xr))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 4))
-    ((3 1) (2 0)) ((4 1) (3 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr xr)) xr))
-    (hash "share" (exp (gen) (mul xr xr)) xr) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))
-    ((recv (cat "share" (exp (gen) (mul xr xr)) xr))
-      (send (cat "share" (exp (gen) (mul xr xr)) xr))))
-  (label 35)
-  (parent 31)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-  (label 36)
-  (parent 32)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca a b-0 name) (xr xi rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)
-    (a a) (b b-0) (ca ca) (xi xi) (xr xr))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xr xi)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 2 ca 2)
-    (enc (exp (gen) xi) a (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b-0 (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))))
-  (label 37)
-  (parent 33)
-  (unrealized (3 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca a b-0 ca-0 name) (xr xi rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)
-    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xi) a (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b-0 (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0)))))
-  (label 38)
-  (parent 33)
-  (unrealized (3 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a b ca name) (xr xr-0 rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand resp 1 (b a) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-    (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-  (label 39)
-  (parent 34)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (deflistener (cat "share" (exp (gen) (mul xr xr)) xr))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)) ((5 1) (4 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr xr)) xr))
-    (hash "share" (exp (gen) (mul xr xr)) xr) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))
-    ((recv (cat "share" (exp (gen) (mul xr xr)) xr))
-      (send (cat "share" (exp (gen) (mul xr xr)) xr))))
-  (label 40)
-  (parent 36)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (n text) (b ca a name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 1 ca 2)
-    (enc (exp (gen) xr) b-0 (privk ca)) (3 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))))
-  (label 41)
-  (parent 37)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))
-  (origs (n (0 3))))
-
-(defskeleton nhca
-  (vars (n text) (b ca a b-0 name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b-0) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b-0) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))
-    ((4 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk b-0))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xr) b-0 (privk ca)) (3 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b-0 (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b-0 (privk b-0)))
-      (send (enc (exp (gen) xr) b-0 (privk ca)))))
-  (label 42)
-  (parent 37)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca a name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 5 1 ca 2)
-    (enc (exp (gen) xr) b-0 (privk ca-0)) (3 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca)))))
-  (label 43)
-  (parent 38)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))
-  (origs (n (0 3))))
-
-(defskeleton nhca
-  (vars (n text) (b ca a b-0 ca-0 name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b-0) (ca ca-0) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))
-    ((4 1) (3 1)) ((5 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xr) b-0 (privk ca-0)) (3 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b-0 (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b-0 (privk b-0)))
-      (send (enc (exp (gen) xr) b-0 (privk ca-0)))))
-  (label 44)
-  (parent 38)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a b ca name) (xr xr-0 rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand resp 1 (b a) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-  (deflistener (cat "share" (exp (gen) (mul xr xr-0)) xr))
-  (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (6 0)) ((4 1) (0 4)) ((5 1) (4 0))
-    ((6 1) (5 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr xr-0)) xr))
-    (hash "share" (exp (gen) (mul xr xr-0)) xr) (5 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))))
-    ((recv (cat "share" (exp (gen) (mul xr xr-0)) xr))
-      (send (cat "share" (exp (gen) (mul xr xr-0)) xr))))
-  (label 45)
-  (parent 39)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (n text) (b ca a name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))
-    ((4 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 5 0 resp 1)
-    (enc "reg" (exp (gen) xr) b-0 (privk b-0)) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca)))))
-  (label 46)
-  (parent 42)
-  (seen 41)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca a ca-0 name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))
-    ((4 1) (3 1)) ((5 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 0 resp 1)
-    (enc "reg" (exp (gen) xr) b-0 (privk b-0)) (5 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0)))))
-  (label 47)
-  (parent 44)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))
-  (origs (n (0 3))))
-
-(comment "Nothing left to do")
-
-(defprotocol nhca diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))
-    (trace (send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    (non-orig (privk a) (privk ca))
-    (uniq-gen xi))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (a b ca name) (n text))
-    (trace (send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    (non-orig (privk b) (privk ca))
-    (uniq-gen xr))
-  (defrole ca
-    (vars (subject ca name) (x expt))
-    (trace (recv (enc "reg" (exp (gen) x) subject (privk subject)))
-      (send (enc (exp (gen) x) subject (privk ca))))
-    (non-orig (privk subject)))
-  (comment A diffie-hellman exchange which uses a certificate authority
-    to certify lonh-term NH values))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx)
-    (xr-0 xi-0 expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi-0))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (comment point of view in which init and resp each complete and they
-    agree on the relevant parameters)
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-  (label 48)
-  (unrealized (0 1) (0 3) (1 1) (1 2) (1 4))
-  (preskeleton)
-  (origs (n (1 3)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx)
-    (xr-0 xi-0 expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi-0))
-  (precedes ((1 3) (0 3)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (comment point of view in which init and resp each complete and they
-    agree on the relevant parameters)
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-  (label 49)
-  (parent 48)
-  (unrealized (0 1) (0 3) (1 1) (1 2) (1 4))
-  (origs (n (1 3)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr xi-0 expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xr-0) b (privk ca)) (1 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca)))))
-  (label 50)
-  (parent 49)
-  (unrealized (0 1) (0 3) (1 2) (1 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 3 2 ca 2)
-    (enc (exp (gen) x) a (privk ca)) (1 2))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) b (privk b)))
-      (recv (enc (exp (gen) xi) b (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca)))))
-  (label 51)
-  (parent 50)
-  (unrealized (0 1) (0 3) (1 4))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx) (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi x))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) a (privk ca)) (1 2))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 x)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr-0 x)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 x)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 x)) xr-0))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr-0 x)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 x)) x)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 x)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 x)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 x)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca)))))
-  (label 52)
-  (parent 50)
-  (unrealized (0 1) (0 3) (1 4) (3 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 4)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-    (enc "check" n
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-    (1 4))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) b (privk b)))
-      (recv (enc (exp (gen) xi) b (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-  (label 53)
-  (parent 51)
-  (unrealized (0 1) (0 3) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 0 resp 1)
-    (enc "reg" (exp (gen) xr-2) a (privk a)) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (recv (enc (exp (gen) xr-1) a (privk ca)))
-      (send (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (send (enc (exp (gen) xr-1) a (privk ca)))))
-  (label 54)
-  (parent 52)
-  (unrealized (0 1) (0 3) (1 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 1 resp 1)
-    (enc "reg" (exp (gen) xr-1) a (privk a)) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) b (privk b)))
-      (recv (enc (exp (gen) xi) b (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca)))))
-  (label 55)
-  (parent 52)
-  (unrealized (0 1) (0 3) (1 4))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)
-    (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (defstrand resp 1 (b a) (xr xr-1))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (exp (gen) xr-1) a (privk a)) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (send (enc (exp (gen) xr-1) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-1) a (privk a)))))
-  (label 56)
-  (parent 52)
-  (unrealized (0 1) (0 3) (1 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (precedes ((1 0) (2 0)) ((1 0) (4 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 4)) ((4 1) (3 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))
-    (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) b (privk b)))
-      (recv (enc (exp (gen) xi) b (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-  (label 57)
-  (parent 53)
-  (unrealized (0 1) (0 3) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a b ca name) (xi xr rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (1 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 0 init 5)
-    (enc "check" n
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xi)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi)) xr-0))))
-    (1 4))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca)))))
-  (label 58)
-  (parent 54)
-  (unrealized (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((1 0) (2 0)) ((1 0) (4 0))
-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-    (enc "check" n
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-    (1 4))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (recv (enc (exp (gen) xr-1) a (privk ca)))
-      (send (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (send (enc (exp (gen) xr-1) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-  (label 59)
-  (parent 54)
-  (unrealized (0 1) (0 3) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (4 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-    (enc "check" n
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-    (1 4))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) b (privk b)))
-      (recv (enc (exp (gen) xi) b (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-  (label 60)
-  (parent 55)
-  (unrealized (0 1) (0 3) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)
-    (xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)))
-    (n n) (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 4) (1 4)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 5 init 5)
-    (enc "check" n
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))
-    (1 4))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-          (enc (exp (gen) xr-0) b-0 (privk ca-0))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))))
-  (label 61)
-  (parent 56)
-  (unrealized (0 1) (0 3) (4 1) (4 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)
-    (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (defstrand resp 1 (b a) (xr xr-1))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((5 1) (1 4)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-    (enc "check" n
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-    (1 4))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (send (enc (exp (gen) xr-1) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-1) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-  (label 62)
-  (parent 56)
-  (unrealized (0 1) (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 4)) ((4 1) (3 0)) ((5 1) (4 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) b (privk b)))
-      (recv (enc (exp (gen) xi) b (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))
-    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (label 63)
-  (parent 57)
-  (unrealized (0 1) (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (n text) (a b ca name) (xr xi rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (0 1)) ((3 1) (1 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xi)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 3 ca 2)
-    (enc (exp (gen) xi) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca)))))
-  (label 64)
-  (parent 58)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((a a) (b b) (ca ca) (xi xi) (xr xr) (n n) (xr-0 xr)
-        (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))
-        (xi-0 xi))))
-  (origs (n (1 3))))
-
-(defskeleton nhca
-  (vars (n text) (a b ca name) (xr xi rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 4) (1 4)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (0 1)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xi)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xi) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca)))))
-  (label 65)
-  (parent 58)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((a a) (b b) (ca ca) (xi xi) (xr xr) (n n) (xr-0 xr)
-        (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))
-        (xi-0 xi))))
-  (origs (n (1 3))))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))
-    ((5 1) (4 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))
-    (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (recv (enc (exp (gen) xr-1) a (privk ca)))
-      (send (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (send (enc (exp (gen) xr-1) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-  (label 66)
-  (parent 59)
-  (unrealized (0 1) (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)) ((5 1) (4 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))
-    (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) b (privk b)))
-      (recv (enc (exp (gen) xi) b (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-  (label 67)
-  (parent 60)
-  (unrealized (0 1) (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a b-0 name) (xi rndx) (xr expt)
-    (xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)))
-    (n n) (a a) (b b-0) (ca ca) (xi xi-0) (xr xr-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 5 3 ca 2)
-    (enc (exp (gen) xi-0) a (privk ca-0)) (4 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-          (enc (exp (gen) xr-0) b-0 (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))))
-  (label 68)
-  (parent 61)
-  (unrealized (0 1) (0 3) (4 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)
-    (xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)))
-    (n n) (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xi-0) a (privk ca-0)) (4 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-          (enc (exp (gen) xr-0) b-0 (privk ca-0))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca-0)))))
-  (label 69)
-  (parent 61)
-  (unrealized (0 1) (0 3) (4 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)
-    (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (defstrand resp 1 (b a) (xr xr-1))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (6 0)) ((5 1) (1 4))
-    ((6 1) (5 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))
-    (5 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (send (enc (exp (gen) xr-1) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-1) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-  (label 70)
-  (parent 62)
-  (unrealized (0 1) (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-  (precedes ((0 0) (3 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))
-    ((5 1) (4 0)) ((6 1) (5 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-    (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0) (5 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (recv (enc (exp (gen) xr-1) a (privk ca)))
-      (send (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (send (enc (exp (gen) xr-1) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))
-    ((recv (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-      (send (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (label 71)
-  (parent 66)
-  (unrealized (0 1) (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)) ((5 1) (4 0))
-    ((6 1) (5 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (5 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) b (privk b)))
-      (recv (enc (exp (gen) xi) b (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))
-    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (label 72)
-  (parent 67)
-  (unrealized (0 1) (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))
-    (n n) (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 5 2 ca 2)
-    (enc (exp (gen) xr-0) b-0 (privk ca)) (4 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))))
-  (label 73)
-  (parent 68)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a b-0 name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))
-    (n n) (a a) (b b-0) (ca ca) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject b-0) (ca ca) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (4 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk b-0))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xr-0) b-0 (privk ca)) (4 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b-0 (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b-0 (privk b-0)))
-      (send (enc (exp (gen) xr-0) b-0 (privk ca)))))
-  (label 74)
-  (parent 68)
-  (unrealized (0 1) (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))
-    (n n) (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 2 ca 2)
-    (enc (exp (gen) xr-0) b-0 (privk ca-0)) (4 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 75)
-  (parent 69)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))
-    (n n) (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject b-0) (ca ca-0) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xr-0) b-0 (privk ca-0)) (4 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b-0 (privk ca-0))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr-0) b-0 (privk b-0)))
-      (send (enc (exp (gen) xr-0) b-0 (privk ca-0)))))
-  (label 76)
-  (parent 69)
-  (unrealized (0 1) (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)
-    (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (defstrand resp 1 (b a) (xr xr-1))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (7 0)) ((5 1) (1 4))
-    ((6 1) (5 0)) ((7 1) (6 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-    (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0) (6 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (send (enc (exp (gen) xr-1) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-1) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))
-    ((recv (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-      (send (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (label 77)
-  (parent 70)
-  (unrealized (0 1) (0 3) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xr expt)
-    (xi xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))
-    (n n) (a a) (b b) (ca ca) (xi xi) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xi-0) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 78)
-  (parent 73)
-  (unrealized (0 3))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))
-    (n n) (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (4 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 1 resp 1)
-    (enc "reg" (exp (gen) xr-0) b-0 (privk b-0)) (5 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca)))))
-  (label 79)
-  (parent 74)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xr expt)
-    (xi xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))
-    (n n) (a a) (b b) (ca ca) (xi xi) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xi-0) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 80)
-  (parent 75)
-  (unrealized (0 3))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))
-    (n n) (a a) (b b) (ca ca-0) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 1 resp 1)
-    (enc "reg" (exp (gen) xr-0) b-0 (privk b-0)) (6 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca-0))
-          (enc n
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca-0)))))
-  (label 81)
-  (parent 76)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 2 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 82)
-  (parent 78)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 3 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca)))))
-  (label 83)
-  (parent 78)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 5 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 84)
-  (parent 78)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr x))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x x))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) x) hint (enc (exp (gen) x) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) x)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) b (privk b)))
-      (send (enc (exp (gen) x) b (privk ca)))))
-  (label 85)
-  (parent 78)
-  (unrealized (0 3) (6 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xr expt)
-    (xi xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))
-    (n n) (a a) (b b) (ca ca) (xi xi) (xr xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xi-0) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 86)
-  (parent 79)
-  (unrealized (0 3))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 2 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 87)
-  (parent 80)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 3 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca)))))
-  (label 88)
-  (parent 80)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 6 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 89)
-  (parent 80)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr x))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x x))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) x) hint (enc (exp (gen) x) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) x)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) b (privk b)))
-      (send (enc (exp (gen) x) b (privk ca)))))
-  (label 90)
-  (parent 80)
-  (unrealized (0 3) (7 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xr expt)
-    (xi xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))
-    (n n) (a a) (b b) (ca ca-0) (xi xi) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xi-0) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca-0))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 91)
-  (parent 81)
-  (unrealized (0 3))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 92)
-  (parent 82)
-  (unrealized (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))
-  (label 93)
-  (parent 83)
-  (unrealized (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint))))
-  (label 94)
-  (parent 84)
-  (unrealized (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 0 resp 1)
-    (enc "reg" (exp (gen) xr-1) b (privk b)) (6 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca)))))
-  (label 95)
-  (parent 85)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 1 resp 1)
-    (enc "reg" (exp (gen) xr-0) b (privk b)) (6 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca)))))
-  (label 96)
-  (parent 85)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 4 resp 1)
-    (enc "reg" (exp (gen) xr-1) b (privk b)) (6 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca)))))
-  (label 97)
-  (parent 85)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)) ((7 0) (6 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (exp (gen) xr-0) b (privk b)) (6 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))))
-  (label 98)
-  (parent 85)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 2 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 99)
-  (parent 86)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 3 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca)))))
-  (label 100)
-  (parent 86)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 6 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 101)
-  (parent 86)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr x))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x x))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1))
-    ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) x) hint (enc (exp (gen) x) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) x)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) b (privk b)))
-      (send (enc (exp (gen) x) b (privk ca)))))
-  (label 102)
-  (parent 86)
-  (unrealized (0 3) (7 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (7 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 103)
-  (parent 87)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))
-  (label 104)
-  (parent 88)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint))))
-  (label 105)
-  (parent 89)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 0 resp 1)
-    (enc "reg" (exp (gen) xr-1) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca)))))
-  (label 106)
-  (parent 90)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 1 resp 1)
-    (enc "reg" (exp (gen) xr-0) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca)))))
-  (label 107)
-  (parent 90)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 4 resp 1)
-    (enc "reg" (exp (gen) xr-1) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca)))))
-  (label 108)
-  (parent 90)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 0) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (exp (gen) xr-0) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))))
-  (label 109)
-  (parent 90)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 2 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 110)
-  (parent 91)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 3 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca)))))
-  (label 111)
-  (parent 91)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 7 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 112)
-  (parent 91)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 rndx)
-    (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr x))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x x))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) x) hint (enc (exp (gen) x) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) x)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) b (privk b)))
-      (send (enc (exp (gen) x) b (privk ca)))))
-  (label 113)
-  (parent 91)
-  (unrealized (0 3) (8 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (7 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (6 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)
-    (6 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 114)
-  (parent 92)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (6 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint) (6 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))
-  (label 115)
-  (parent 93)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint)
-    (6 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint))))
-  (label 116)
-  (parent 94)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint))))
-  (label 117)
-  (parent 95)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (7 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 118)
-  (parent 96)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (7 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))
-  (label 119)
-  (parent 97)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))
-    ((7 0) (6 0)) ((7 0) (8 0)) ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint))))
-  (label 120)
-  (parent 98)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (7 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 121)
-  (parent 99)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))
-  (label 122)
-  (parent 100)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint))))
-  (label 123)
-  (parent 101)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 0 resp 1)
-    (enc "reg" (exp (gen) xr-1) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca)))))
-  (label 124)
-  (parent 102)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 0) (7 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 1 resp 1)
-    (enc "reg" (exp (gen) xr-0) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca)))))
-  (label 125)
-  (parent 102)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 4 resp 1)
-    (enc "reg" (exp (gen) xr-1) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca)))))
-  (label 126)
-  (parent 102)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 0) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (exp (gen) xr-0) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))))
-  (label 127)
-  (parent 102)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (8 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)
-    (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 128)
-  (parent 103)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))
-  (label 129)
-  (parent 104)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint)
-    (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint))))
-  (label 130)
-  (parent 105)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint))))
-  (label 131)
-  (parent 106)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (7 0))
-    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 132)
-  (parent 107)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (8 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))
-  (label 133)
-  (parent 108)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (9 0)) ((9 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint))))
-  (label 134)
-  (parent 109)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 135)
-  (parent 110)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))
-  (label 136)
-  (parent 111)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint))))
-  (label 137)
-  (parent 112)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 9 0 resp 1)
-    (enc "reg" (exp (gen) xr-1) b (privk b)) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca)))))
-  (label 138)
-  (parent 113)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 0) (8 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 9 1 resp 1)
-    (enc "reg" (exp (gen) xr-0) b (privk b)) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca)))))
-  (label 139)
-  (parent 113)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 9 4 resp 1)
-    (enc "reg" (exp (gen) xr-1) b (privk b)) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca)))))
-  (label 140)
-  (parent 113)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (exp (gen) xr-0) b (privk b)) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))))
-  (label 141)
-  (parent 113)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (8 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (6 0)) ((8 1) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))
-  (label 142)
-  (parent 114)
-  (unrealized (0 3) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xi-0)) xi))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (6 0)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xi-0)) xi))
-    (hash "share" (exp (gen) (mul xi xi-0)) xi) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xi-0)) xi))
-      (send (cat "share" (exp (gen) (mul xi xi-0)) xi))))
-  (label 143)
-  (parent 115)
-  (unrealized (0 3) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))
-    ((7 1) (6 0)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))))
-  (label 144)
-  (parent 116)
-  (unrealized (0 3) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint)
-    (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint))))
-  (label 145)
-  (parent 117)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)
-    (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 146)
-  (parent 118)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (8 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))
-  (label 147)
-  (parent 119)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))
-    ((7 0) (6 0)) ((7 0) (9 0)) ((8 1) (0 3)) ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint)
-    (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint))))
-  (label 148)
-  (parent 120)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)
-    (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 149)
-  (parent 121)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (8 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))
-  (label 150)
-  (parent 122)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint)
-    (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint))))
-  (label 151)
-  (parent 123)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0))
-    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint))))
-  (label 152)
-  (parent 124)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (7 0)) ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 153)
-  (parent 125)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (8 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))
-  (label 154)
-  (parent 126)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (9 0))
-    ((9 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint))))
-  (label 155)
-  (parent 127)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (9 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))
-  (label 156)
-  (parent 128)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xi-0)) xi))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (9 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xi-0)) xi))
-    (hash "share" (exp (gen) (mul xi xi-0)) xi) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xi-0)) xi))
-      (send (cat "share" (exp (gen) (mul xi xi-0)) xi))))
-  (label 157)
-  (parent 129)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))))
-  (label 158)
-  (parent 130)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint)
-    (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint))))
-  (label 159)
-  (parent 131)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (7 0))
-    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)
-    (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 160)
-  (parent 132)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (9 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))
-  (label 161)
-  (parent 133)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (10 0)) ((9 1) (0 3))
-    ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint)
-    (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint))))
-  (label 162)
-  (parent 134)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)
-    (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 163)
-  (parent 135)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (9 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))
-  (label 164)
-  (parent 136)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint)
-    (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint))))
-  (label 165)
-  (parent 137)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (9 0)) ((1 0) (2 0))
-    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint))))
-  (label 166)
-  (parent 138)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (8 0)) ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 167)
-  (parent 139)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (9 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))
-  (label 168)
-  (parent 140)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))
-    ((9 0) (10 0)) ((10 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (enc n hint
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint))))
-  (label 169)
-  (parent 141)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (label 170)
-  (parent 145)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))
-  (label 171)
-  (parent 146)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xr-0)) xi))
-  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (9 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xr-0)) xi))
-    (hash "share" (exp (gen) (mul xi xr-0)) xi) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xr-0)) xi))
-      (send (cat "share" (exp (gen) (mul xi xr-0)) xi))))
-  (label 172)
-  (parent 147)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-  (precedes ((0 0) (5 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))
-    ((7 0) (6 0)) ((7 0) (10 0)) ((8 1) (0 3)) ((9 1) (8 0))
-    ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))))
-  (label 173)
-  (parent 148)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))
-  (label 174)
-  (parent 149)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xi-0)) xi))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (9 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xi-0)) xi))
-    (hash "share" (exp (gen) (mul xi xi-0)) xi) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xi-0)) xi))
-      (send (cat "share" (exp (gen) (mul xi xi-0)) xi))))
-  (label 175)
-  (parent 150)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))))
-  (label 176)
-  (parent 151)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0))
-    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint)
-    (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint))))
-  (label 177)
-  (parent 152)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (7 0)) ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)) ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)
-    (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 178)
-  (parent 153)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (9 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))
-  (label 179)
-  (parent 154)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (10 0))
-    ((9 1) (0 3)) ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint)
-    (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint))))
-  (label 180)
-  (parent 155)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)) ((9 1) (8 0))
-    ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (label 181)
-  (parent 159)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (7 0))
-    ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))
-  (label 182)
-  (parent 160)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xr-0)) xi))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (10 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xr-0)) xi))
-    (hash "share" (exp (gen) (mul xi xr-0)) xi) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xr-0)) xi))
-      (send (cat "share" (exp (gen) (mul xi xr-0)) xi))))
-  (label 183)
-  (parent 161)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (11 0)) ((9 1) (0 3))
-    ((10 1) (9 0)) ((11 1) (10 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) (10 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))))
-  (label 184)
-  (parent 162)
-  (unrealized (0 3) (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))
-  (label 185)
-  (parent 163)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xi-0)) xi))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (10 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xi-0)) xi))
-    (hash "share" (exp (gen) (mul xi xi-0)) xi) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xi-0)) xi))
-      (send (cat "share" (exp (gen) (mul xi xi-0)) xi))))
-  (label 186)
-  (parent 164)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 1) (8 0))
-    ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))))
-  (label 187)
-  (parent 165)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (10 0)) ((1 0) (2 0))
-    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (0 3)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint)
-    (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint))))
-  (label 188)
-  (parent 166)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (8 0)) ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)
-    (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 189)
-  (parent 167)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (10 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))
-  (label 190)
-  (parent 168)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))
-    ((9 0) (11 0)) ((10 1) (0 3)) ((11 1) (10 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint)
-    (10 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint))))
-  (label 191)
-  (parent 169)
-  (unrealized (0 3) (11 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0))
-    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (label 192)
-  (parent 177)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (7 0)) ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)) ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))
-  (label 193)
-  (parent 178)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xr-0)) xi))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (10 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)) ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xr-0)) xi))
-    (hash "share" (exp (gen) (mul xi xr-0)) xi) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xr-0)) xi))
-      (send (cat "share" (exp (gen) (mul xi xr-0)) xi))))
-  (label 194)
-  (parent 179)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (11 0))
-    ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) (10 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))))
-  (label 195)
-  (parent 180)
-  (unrealized (0 3) (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (11 0)) ((1 0) (2 0))
-    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (10 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (label 196)
-  (parent 188)
-  (unrealized (0 3) (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (8 0)) ((1 0) (11 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (10 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))
-  (label 197)
-  (parent 189)
-  (unrealized (0 3) (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xr-0)) xi))
-  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (11 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xr-0)) xi))
-    (hash "share" (exp (gen) (mul xi xr-0)) xi) (10 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xr-0)) xi))
-      (send (cat "share" (exp (gen) (mul xi xr-0)) xi))))
-  (label 198)
-  (parent 190)
-  (unrealized (0 3) (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-  (precedes ((0 0) (7 0)) ((0 0) (12 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))
-    ((9 0) (12 0)) ((10 1) (0 3)) ((11 1) (10 0)) ((12 1) (11 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) (11 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n hint
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))))
-  (label 199)
-  (parent 191)
-  (unrealized (0 3) (12 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhca-nohint diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))
-    (trace (send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    (non-orig (privk a) (privk ca))
-    (uniq-gen xi))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (a b ca name) (n text))
-    (trace (send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    (non-orig (privk b) (privk ca))
-    (uniq-gen xr))
-  (defrole ca
-    (vars (subject ca name) (x expt))
-    (trace (recv (enc "reg" (exp (gen) x) subject (privk subject)))
-      (send (enc (exp (gen) x) subject (privk ca))))
-    (non-orig (privk subject)))
-  (comment A diffie-hellman exchange which uses a certificate authority
-    to certify lonh-term NH values))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (comment Full initiator POV No need to make extra assumptions)
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint))))))
-  (label 200)
-  (unrealized (0 1) (0 3))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xi rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xi) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca)))))
-  (label 201)
-  (parent 200)
-  (unrealized (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a ca name) (xi rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test (displaced 2 1 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi) hint (enc (exp (gen) xi) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca)))))
-  (label 202)
-  (parent 201)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr x))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) x) hint (enc (exp (gen) x) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi x)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi x)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi x)) x)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) b (privk b)))
-      (send (enc (exp (gen) x) b (privk ca)))))
-  (label 203)
-  (parent 201)
-  (unrealized (0 3) (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a ca name) (xi rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-    (enc n (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi) hint (enc (exp (gen) xi) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))))
-  (label 204)
-  (parent 202)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a ca name) (xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xr)
-  (operation encryption-test (displaced 3 0 resp 1)
-    (enc "reg" (exp (gen) xr-0) b (privk b)) (2 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (send (cat (exp (gen) xr) (enc (exp (gen) xr) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca)))))
-  (label 205)
-  (parent 203)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 1 (b b) (xr xr))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)) ((3 0) (2 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (exp (gen) xr) b (privk b)) (2 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))))
-  (label 206)
-  (parent 203)
-  (unrealized (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a ca name) (xi rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 1) (2 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint) (2 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi) hint (enc (exp (gen) xi) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))))
-  (label 207)
-  (parent 204)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a ca name) (xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 1) (0 3)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-    (enc n (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (send (cat (exp (gen) xr) (enc (exp (gen) xr) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))))
-  (label 208)
-  (parent 205)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a ca a-0 b ca-0 name) (xi xr rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))
-  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 3) (0 3)))
-  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))
-  (uniq-gen xi xr)
-  (operation encryption-test (displaced 3 4 resp 4)
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-        (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr)))) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca-0)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a-0 (privk ca-0))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))))
-  (label 209)
-  (parent 206)
-  (unrealized (3 1) (3 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 1 (b b) (xr xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 3)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-    (enc n (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))))
-  (label 210)
-  (parent 206)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a ca name) (xi rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xi)) xi))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 1) (2 0)) ((4 1) (3 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xi)) xi))
-    (hash "share" (exp (gen) (mul xi xi)) xi) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi) hint (enc (exp (gen) xi) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint))
-      (send (cat "key" (hash "share" (exp (gen) (mul xi xi)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xi)) xi))
-      (send (cat "share" (exp (gen) (mul xi xi)) xi))))
-  (label 211)
-  (parent 207)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a ca name) (xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (send (cat (exp (gen) xr) (enc (exp (gen) xr) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))))
-  (label 212)
-  (parent 208)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a ca a-0 b name) (xi xr rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (xr xr) (xi xi))
-  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (3 1))
-    ((3 0) (2 0)) ((3 3) (0 3)))
-  (non-orig (privk a) (privk ca) (privk b))
-  (uniq-gen xi xr)
-  (operation encryption-test (displaced 4 2 ca 2)
-    (enc (exp (gen) xr) b (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a-0 (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))))
-  (label 213)
-  (parent 209)
-  (unrealized (3 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a ca a-0 b ca-0 name) (xi xr rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))
-  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))
-  (uniq-gen xi xr)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xr) b (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca-0)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a-0 (privk ca-0))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0)))))
-  (label 214)
-  (parent 209)
-  (unrealized (3 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 1 (b b) (xr xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))))
-  (label 215)
-  (parent 210)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a ca name) (xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-  (deflistener (cat "share" (exp (gen) (mul xr xr)) xr))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)) ((5 1) (4 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr xr)) xr))
-    (hash "share" (exp (gen) (mul xr xr)) xr) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (send (cat (exp (gen) xr) (enc (exp (gen) xr) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint))
-      (send (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr) hint)))
-    ((recv (cat "share" (exp (gen) (mul xr xr)) xr))
-      (send (cat "share" (exp (gen) (mul xr xr)) xr))))
-  (label 216)
-  (parent 212)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a ca b name) (xr xi rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (3 1))
-    ((3 0) (2 0)) ((3 3) (0 3)))
-  (non-orig (privk a) (privk ca) (privk b))
-  (uniq-gen xr xi)
-  (operation encryption-test (displaced 4 1 ca 2)
-    (enc (exp (gen) xi) a-0 (privk ca)) (3 2))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))))
-  (label 217)
-  (parent 213)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((xi xi) (xr xr) (a a) (b b) (ca ca) (n n)
-        (hint
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-  (origs))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a ca a-0 b name) (xr xi rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a-0) (ca ca) (x xi))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))
-    ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk a-0) (privk b))
-  (uniq-gen xr xi)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xi) a-0 (privk ca)) (3 2))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a-0 (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a-0 (privk a-0)))
-      (send (enc (exp (gen) xi) a-0 (privk ca)))))
-  (label 218)
-  (parent 213)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a ca b name) (xr xi rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))
-  (non-orig (privk a) (privk ca) (privk b))
-  (uniq-gen xr xi)
-  (operation encryption-test (displaced 5 1 ca 2)
-    (enc (exp (gen) xi) a-0 (privk ca-0)) (3 2))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca)))))
-  (label 219)
-  (parent 214)
-  (seen 217)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a ca a-0 b ca-0 name) (xr xi rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a-0) (ca ca-0) (x xi))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))
-    ((5 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk a-0) (privk b) (privk ca-0))
-  (uniq-gen xr xi)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xi) a-0 (privk ca-0)) (3 2))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca-0)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a-0 (privk ca-0))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi) a-0 (privk a-0)))
-      (send (enc (exp (gen) xi) a-0 (privk ca-0)))))
-  (label 220)
-  (parent 214)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 1 (b b) (xr xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xr)) xi))
-  (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (6 0)) ((4 1) (0 3)) ((5 1) (4 0))
-    ((6 1) (5 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xr)) xi))
-    (hash "share" (exp (gen) (mul xi xr)) xi) (5 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-      (send (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xr)) xi))
-      (send (cat "share" (exp (gen) (mul xi xr)) xi))))
-  (label 221)
-  (parent 215)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a ca b name) (xr xr-0 rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b b) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))
-    ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk b))
-  (uniq-gen xr xr-0)
-  (operation encryption-test (displaced 5 0 resp 1)
-    (enc "reg" (exp (gen) xr-0) a-0 (privk a-0)) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca)))))
-  (label 222)
-  (parent 218)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((xi xr-0) (xr xr) (a a) (b b) (ca ca) (n n)
-        (hint
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-  (origs))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a ca b ca-0 name) (xr xr-0 rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b b) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca-0) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))
-    ((5 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))
-  (uniq-gen xr xr-0)
-  (operation encryption-test (displaced 6 0 resp 1)
-    (enc "reg" (exp (gen) xr-0) a-0 (privk a-0)) (5 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca-0)))
-      (recv
-        (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca-0))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca-0)))))
-  (label 223)
-  (parent 220)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((xi xr-0) (xr xr) (a a) (b b) (ca ca) (n n)
-        (hint
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol nhca-nohint diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))
-    (trace (send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    (non-orig (privk a) (privk ca))
-    (uniq-gen xi))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (a b ca name) (n text))
-    (trace (send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    (non-orig (privk b) (privk ca))
-    (uniq-gen xr))
-  (defrole ca
-    (vars (subject ca name) (x expt))
-    (trace (recv (enc "reg" (exp (gen) x) subject (privk subject)))
-      (send (enc (exp (gen) x) subject (privk ca))))
-    (non-orig (privk subject)))
-  (comment A diffie-hellman exchange which uses a certificate authority
-    to certify lonh-term NH values))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a b ca name) (xr rndx) (xi expt))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (comment Full responder point of view with freshly chosen n)
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-  (label 224)
-  (unrealized (0 1) (0 2) (0 4))
-  (origs (n (0 3)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a b ca name) (xi expt) (xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xr) b (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca)))))
-  (label 225)
-  (parent 224)
-  (unrealized (0 2) (0 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 2 1 ca 2)
-    (enc (exp (gen) x) a (privk ca)) (0 2))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca)))))
-  (label 226)
-  (parent 225)
-  (unrealized (0 4))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a b ca name) (xr rndx) (x expt))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi x))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) a (privk ca)) (0 2))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr x)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr x)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr x)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr x)) x)
-              (hash "hint" (hash "share" (exp (gen) (mul xr x)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr x)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr x)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca)))))
-  (label 227)
-  (parent 225)
-  (unrealized (0 4) (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 4)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-    (enc "check" n
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (0 4))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-  (label 228)
-  (parent 226)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 3 0 resp 1)
-    (enc "reg" (exp (gen) xr-0) a (privk a)) (2 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca)))))
-  (label 229)
-  (parent 227)
-  (unrealized (0 4))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a b ca name) (xr xr-0 rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand resp 1 (b a) (xr xr-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 0) (2 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (exp (gen) xr-0) a (privk a)) (2 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))))
-  (label 230)
-  (parent 227)
-  (unrealized (0 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 4))
-    ((3 1) (2 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (2 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-  (label 231)
-  (parent 228)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 1) (0 4)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-    (enc "check" n
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (0 4))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-  (label 232)
-  (parent 229)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca a b-0 ca-0 name) (xr xi rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)
-    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 4) (0 4)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi)
-  (uniq-orig n)
-  (operation encryption-test (displaced 3 4 init 5)
-    (enc "check" n
-      (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))) (0 4))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b-0 (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))))
-  (label 233)
-  (parent 230)
-  (unrealized (3 1) (3 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a b ca name) (xr xr-0 rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand resp 1 (b a) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 4)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-    (enc "check" n
-      (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-    (0 4))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-  (label 234)
-  (parent 230)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (deflistener (cat "share" (exp (gen) (mul xr xr)) xr))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 4))
-    ((3 1) (2 0)) ((4 1) (3 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr xr)) xr))
-    (hash "share" (exp (gen) (mul xr xr)) xr) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))
-    ((recv (cat "share" (exp (gen) (mul xr xr)) xr))
-      (send (cat "share" (exp (gen) (mul xr xr)) xr))))
-  (label 235)
-  (parent 231)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-  (label 236)
-  (parent 232)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca a b-0 name) (xr xi rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)
-    (a a) (b b-0) (ca ca) (xi xi) (xr xr))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xr xi)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 2 ca 2)
-    (enc (exp (gen) xi) a (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b-0 (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))))
-  (label 237)
-  (parent 233)
-  (unrealized (3 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca a b-0 ca-0 name) (xr xi rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)
-    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xi) a (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b-0 (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0)))))
-  (label 238)
-  (parent 233)
-  (unrealized (3 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a b ca name) (xr xr-0 rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand resp 1 (b a) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-    (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-  (label 239)
-  (parent 234)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (deflistener (cat "share" (exp (gen) (mul xr xr)) xr))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)) ((5 1) (4 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr xr)) xr))
-    (hash "share" (exp (gen) (mul xr xr)) xr) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr) (enc (exp (gen) xr) b (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))
-    ((recv (cat "share" (exp (gen) (mul xr xr)) xr))
-      (send (cat "share" (exp (gen) (mul xr xr)) xr))))
-  (label 240)
-  (parent 236)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca a name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 1 ca 2)
-    (enc (exp (gen) xr) b-0 (privk ca)) (3 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))))
-  (label 241)
-  (parent 237)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))
-  (origs (n (0 3))))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca a b-0 name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b-0) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b-0) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))
-    ((4 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk b-0))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xr) b-0 (privk ca)) (3 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b-0 (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b-0 (privk b-0)))
-      (send (enc (exp (gen) xr) b-0 (privk ca)))))
-  (label 242)
-  (parent 237)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca a name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 5 1 ca 2)
-    (enc (exp (gen) xr) b-0 (privk ca-0)) (3 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca)))))
-  (label 243)
-  (parent 238)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))
-  (origs (n (0 3))))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca a b-0 ca-0 name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b-0) (ca ca-0) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))
-    ((4 1) (3 1)) ((5 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xr) b-0 (privk ca-0)) (3 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b-0 (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b-0 (privk b-0)))
-      (send (enc (exp (gen) xr) b-0 (privk ca-0)))))
-  (label 244)
-  (parent 238)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a b ca name) (xr xr-0 rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand resp 1 (b a) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-  (deflistener (cat "share" (exp (gen) (mul xr xr-0)) xr))
-  (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (6 0)) ((4 1) (0 4)) ((5 1) (4 0))
-    ((6 1) (5 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr xr-0)) xr))
-    (hash "share" (exp (gen) (mul xr xr-0)) xr) (5 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))))
-    ((recv (cat "share" (exp (gen) (mul xr xr-0)) xr))
-      (send (cat "share" (exp (gen) (mul xr xr-0)) xr))))
-  (label 245)
-  (parent 239)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca a name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))
-    ((4 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 5 0 resp 1)
-    (enc "reg" (exp (gen) xr) b-0 (privk b-0)) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca)))))
-  (label 246)
-  (parent 242)
-  (seen 241)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca a ca-0 name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))
-    ((4 1) (3 1)) ((5 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 0 resp 1)
-    (enc "reg" (exp (gen) xr) b-0 (privk b-0)) (5 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0)))))
-  (label 247)
-  (parent 244)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))
-  (origs (n (0 3))))
-
-(comment "Nothing left to do")
-
-(defprotocol nhca-nohint diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))
-    (trace (send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    (non-orig (privk a) (privk ca))
-    (uniq-gen xi))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (a b ca name) (n text))
-    (trace (send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    (non-orig (privk b) (privk ca))
-    (uniq-gen xr))
-  (defrole ca
-    (vars (subject ca name) (x expt))
-    (trace (recv (enc "reg" (exp (gen) x) subject (privk subject)))
-      (send (enc (exp (gen) x) subject (privk ca))))
-    (non-orig (privk subject)))
-  (comment A diffie-hellman exchange which uses a certificate authority
-    to certify lonh-term NH values))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx)
-    (xr-0 xi-0 expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi-0))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (comment point of view in which init and resp each complete and they
-    agree on the relevant parameters)
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-  (label 248)
-  (unrealized (0 1) (0 3) (1 1) (1 2) (1 4))
-  (preskeleton)
-  (origs (n (1 3)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx)
-    (xr-0 xi-0 expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi-0))
-  (precedes ((1 3) (0 3)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (comment point of view in which init and resp each complete and they
-    agree on the relevant parameters)
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-  (label 249)
-  (parent 248)
-  (unrealized (0 1) (0 3) (1 1) (1 2) (1 4))
-  (origs (n (1 3)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr xi-0 expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xr-0) b (privk ca)) (1 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca)))))
-  (label 250)
-  (parent 249)
-  (unrealized (0 1) (0 3) (1 2) (1 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 3 2 ca 2)
-    (enc (exp (gen) x) a (privk ca)) (1 2))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) b (privk b)))
-      (recv (enc (exp (gen) xi) b (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca)))))
-  (label 251)
-  (parent 250)
-  (unrealized (0 1) (0 3) (1 4))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx) (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi x))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) a (privk ca)) (1 2))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) x) (enc (exp (gen) x) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 x)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 x)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 x)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 x)) x)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 x)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 x)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 x)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) a (privk a)))
-      (send (enc (exp (gen) x) a (privk ca)))))
-  (label 252)
-  (parent 250)
-  (unrealized (0 1) (0 3) (1 4) (3 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 4)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-    (enc "check" n
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-    (1 4))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) b (privk b)))
-      (recv (enc (exp (gen) xi) b (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-  (label 253)
-  (parent 251)
-  (unrealized (0 1) (0 3) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 0 resp 1)
-    (enc "reg" (exp (gen) xr-2) a (privk a)) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (recv (enc (exp (gen) xr-1) a (privk ca)))
-      (send (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (send (enc (exp (gen) xr-1) a (privk ca)))))
-  (label 254)
-  (parent 252)
-  (unrealized (0 1) (0 3) (1 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 1 resp 1)
-    (enc "reg" (exp (gen) xr-1) a (privk a)) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) b (privk b)))
-      (recv (enc (exp (gen) xi) b (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca)))))
-  (label 255)
-  (parent 252)
-  (unrealized (0 1) (0 3) (1 4))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)
-    (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (defstrand resp 1 (b a) (xr xr-1))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (exp (gen) xr-1) a (privk a)) (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (send (enc (exp (gen) xr-1) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-1) a (privk a)))))
-  (label 256)
-  (parent 252)
-  (unrealized (0 1) (0 3) (1 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (precedes ((1 0) (2 0)) ((1 0) (4 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 4)) ((4 1) (3 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))
-    (3 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) b (privk b)))
-      (recv (enc (exp (gen) xi) b (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-  (label 257)
-  (parent 253)
-  (unrealized (0 1) (0 3) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a b ca name) (xi xr rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (1 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 0 init 5)
-    (enc "check" n
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xi)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi)) xr-0))))
-    (1 4))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca)))))
-  (label 258)
-  (parent 254)
-  (unrealized (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((1 0) (2 0)) ((1 0) (4 0))
-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-    (enc "check" n
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-    (1 4))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (recv (enc (exp (gen) xr-1) a (privk ca)))
-      (send (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (send (enc (exp (gen) xr-1) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-  (label 259)
-  (parent 254)
-  (unrealized (0 1) (0 3) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (4 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-    (enc "check" n
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-    (1 4))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) b (privk b)))
-      (recv (enc (exp (gen) xi) b (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-  (label 260)
-  (parent 255)
-  (unrealized (0 1) (0 3) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)
-    (xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)))
-    (n n) (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 4) (1 4)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 5 init 5)
-    (enc "check" n
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))
-    (1 4))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-          (enc (exp (gen) xr-0) b-0 (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))))
-  (label 261)
-  (parent 256)
-  (unrealized (0 1) (0 3) (4 1) (4 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)
-    (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (defstrand resp 1 (b a) (xr xr-1))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((5 1) (1 4)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-    (enc "check" n
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-    (1 4))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (send (enc (exp (gen) xr-1) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-1) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-  (label 262)
-  (parent 256)
-  (unrealized (0 1) (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 4)) ((4 1) (3 0)) ((5 1) (4 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) b (privk b)))
-      (recv (enc (exp (gen) xi) b (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))
-    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (label 263)
-  (parent 257)
-  (unrealized (0 1) (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a b ca name) (xr xi rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (0 1)) ((3 1) (1 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xi)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 3 ca 2)
-    (enc (exp (gen) xi) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca)))))
-  (label 264)
-  (parent 258)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((a a) (b b) (ca ca) (xi xi) (xr xr) (n n) (xr-0 xr)
-        (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))
-        (xi-0 xi))))
-  (origs (n (1 3))))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a b ca name) (xr xi rndx))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 4) (1 4)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (0 1)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xi)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xi) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca)))))
-  (label 265)
-  (parent 258)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((a a) (b b) (ca ca) (xi xi) (xr xr) (n n) (xr-0 xr)
-        (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))
-        (xi-0 xi))))
-  (origs (n (1 3))))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))
-    ((5 1) (4 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))
-    (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (recv (enc (exp (gen) xr-1) a (privk ca)))
-      (send (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (send (enc (exp (gen) xr-1) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-  (label 266)
-  (parent 259)
-  (unrealized (0 1) (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)) ((5 1) (4 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))
-    (4 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) b (privk b)))
-      (recv (enc (exp (gen) xi) b (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-  (label 267)
-  (parent 260)
-  (unrealized (0 1) (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a b-0 name) (xi rndx) (xr expt)
-    (xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)))
-    (n n) (a a) (b b-0) (ca ca) (xi xi-0) (xr xr-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 5 3 ca 2)
-    (enc (exp (gen) xi-0) a (privk ca-0)) (4 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-          (enc (exp (gen) xr-0) b-0 (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))))
-  (label 268)
-  (parent 261)
-  (unrealized (0 1) (0 3) (4 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)
-    (xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)))
-    (n n) (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xi-0) a (privk ca-0)) (4 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))
-          (enc (exp (gen) xr-0) b-0 (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xi-0)) xr-0)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca-0)))))
-  (label 269)
-  (parent 261)
-  (unrealized (0 1) (0 3) (4 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)
-    (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (defstrand resp 1 (b a) (xr xr-1))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (6 0)) ((5 1) (1 4))
-    ((6 1) (5 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-        (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))
-    (5 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (send (enc (exp (gen) xr-1) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-1) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-  (label 270)
-  (parent 262)
-  (unrealized (0 1) (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-  (precedes ((0 0) (3 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))
-    ((5 1) (4 0)) ((6 1) (5 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-    (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0) (5 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (recv (enc (exp (gen) xr-1) a (privk ca)))
-      (send (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr-1)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-1)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (send (enc (exp (gen) xr-1) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))
-    ((recv (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-      (send (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (label 271)
-  (parent 266)
-  (unrealized (0 1) (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)) ((5 1) (4 0))
-    ((6 1) (5 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (5 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) b (privk b)))
-      (recv (enc (exp (gen) xi) b (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) b (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) b (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)))))
-    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (label 272)
-  (parent 267)
-  (unrealized (0 1) (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))
-    (n n) (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 5 2 ca 2)
-    (enc (exp (gen) xr-0) b-0 (privk ca)) (4 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))))
-  (label 273)
-  (parent 268)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a b-0 name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))
-    (n n) (a a) (b b-0) (ca ca) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject b-0) (ca ca) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (4 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk b-0))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xr-0) b-0 (privk ca)) (4 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b-0 (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b-0 (privk b-0)))
-      (send (enc (exp (gen) xr-0) b-0 (privk ca)))))
-  (label 274)
-  (parent 268)
-  (unrealized (0 1) (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))
-    (n n) (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 2 ca 2)
-    (enc (exp (gen) xr-0) b-0 (privk ca-0)) (4 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 275)
-  (parent 269)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))
-    (n n) (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject b-0) (ca ca-0) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xr-0) b-0 (privk ca-0)) (4 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b-0 (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr-0) b-0 (privk b-0)))
-      (send (enc (exp (gen) xr-0) b-0 (privk ca-0)))))
-  (label 276)
-  (parent 269)
-  (unrealized (0 1) (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)
-    (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (defstrand resp 1 (b a) (xr xr-1))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-      (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (7 0)) ((5 1) (1 4))
-    ((6 1) (5 0)) ((7 1) (6 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-    (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0) (6 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xr-1) (enc (exp (gen) xr-1) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-1)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-1) a (privk a)))
-      (send (enc (exp (gen) xr-1) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-1) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-         (hash "hint" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)
-          (hash "hint"
-            (hash "share" (exp (gen) (mul xr-0 xr-1)) xr-0)))))
-    ((recv (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))
-      (send (cat "share" (exp (gen) (mul xr-0 xr-1)) xr-0))))
-  (label 277)
-  (parent 270)
-  (unrealized (0 1) (0 3) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xr expt)
-    (xi xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))
-    (n n) (a a) (b b) (ca ca) (xi xi) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xi-0) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 278)
-  (parent 273)
-  (unrealized (0 3))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))
-    (n n) (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (4 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 1 resp 1)
-    (enc "reg" (exp (gen) xr-0) b-0 (privk b-0)) (5 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca)))))
-  (label 279)
-  (parent 274)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xr expt)
-    (xi xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))
-    (n n) (a a) (b b) (ca ca) (xi xi) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xi-0) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 280)
-  (parent 275)
-  (unrealized (0 3))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))
-    (n n) (a a) (b b) (ca ca-0) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 1 resp 1)
-    (enc "reg" (exp (gen) xr-0) b-0 (privk b-0)) (6 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca-0)))))
-  (label 281)
-  (parent 276)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 2 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 282)
-  (parent 278)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 3 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca)))))
-  (label 283)
-  (parent 278)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 5 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 284)
-  (parent 278)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr x))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x x))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) x) hint (enc (exp (gen) x) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) x)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) b (privk b)))
-      (send (enc (exp (gen) x) b (privk ca)))))
-  (label 285)
-  (parent 278)
-  (unrealized (0 3) (6 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xr expt)
-    (xi xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))
-    (n n) (a a) (b b) (ca ca) (xi xi) (xr xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xi-0) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 286)
-  (parent 279)
-  (unrealized (0 3))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 2 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 287)
-  (parent 280)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 3 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca)))))
-  (label 288)
-  (parent 280)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 6 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 289)
-  (parent 280)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr x))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x x))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) x) hint (enc (exp (gen) x) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) x)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) b (privk b)))
-      (send (enc (exp (gen) x) b (privk ca)))))
-  (label 290)
-  (parent 280)
-  (unrealized (0 3) (7 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xr expt)
-    (xi xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))
-    (n n) (a a) (b b) (ca ca-0) (xi xi) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) xi-0) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (recv (enc (exp (gen) xr-0) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc (exp (gen) xr-0) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 291)
-  (parent 281)
-  (unrealized (0 3))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 292)
-  (parent 282)
-  (unrealized (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))
-  (label 293)
-  (parent 283)
-  (unrealized (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint))))
-  (label 294)
-  (parent 284)
-  (unrealized (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 0 resp 1)
-    (enc "reg" (exp (gen) xr-1) b (privk b)) (6 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca)))))
-  (label 295)
-  (parent 285)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 1 resp 1)
-    (enc "reg" (exp (gen) xr-0) b (privk b)) (6 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca)))))
-  (label 296)
-  (parent 285)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 4 resp 1)
-    (enc "reg" (exp (gen) xr-1) b (privk b)) (6 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca)))))
-  (label 297)
-  (parent 285)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)) ((7 0) (6 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (exp (gen) xr-0) b (privk b)) (6 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))))
-  (label 298)
-  (parent 285)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 2 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 299)
-  (parent 286)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 3 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca)))))
-  (label 300)
-  (parent 286)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 6 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 301)
-  (parent 286)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr x))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x x))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1))
-    ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) x) hint (enc (exp (gen) x) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) x)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) b (privk b)))
-      (send (enc (exp (gen) x) b (privk ca)))))
-  (label 302)
-  (parent 286)
-  (unrealized (0 3) (7 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (7 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 303)
-  (parent 287)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))
-  (label 304)
-  (parent 288)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint))))
-  (label 305)
-  (parent 289)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 0 resp 1)
-    (enc "reg" (exp (gen) xr-1) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca)))))
-  (label 306)
-  (parent 290)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 1 resp 1)
-    (enc "reg" (exp (gen) xr-0) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca)))))
-  (label 307)
-  (parent 290)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 4 resp 1)
-    (enc "reg" (exp (gen) xr-1) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca)))))
-  (label 308)
-  (parent 290)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 0) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (exp (gen) xr-0) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))))
-  (label 309)
-  (parent 290)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 2 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 310)
-  (parent 291)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 3 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca)))))
-  (label 311)
-  (parent 291)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 7 ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca)))))
-  (label 312)
-  (parent 291)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 rndx)
-    (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr x))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x x))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (exp (gen) x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) x) hint (enc (exp (gen) x) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 x)) x)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) x) b (privk b)))
-      (send (enc (exp (gen) x) b (privk ca)))))
-  (label 313)
-  (parent 291)
-  (unrealized (0 3) (8 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (7 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (6 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)
-    (6 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 314)
-  (parent 292)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (6 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint) (6 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))
-  (label 315)
-  (parent 293)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint)
-    (6 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint))))
-  (label 316)
-  (parent 294)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint))))
-  (label 317)
-  (parent 295)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (7 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 318)
-  (parent 296)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (7 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))
-  (label 319)
-  (parent 297)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))
-    ((7 0) (6 0)) ((7 0) (8 0)) ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint))))
-  (label 320)
-  (parent 298)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (7 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 321)
-  (parent 299)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))
-  (label 322)
-  (parent 300)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint))))
-  (label 323)
-  (parent 301)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 0 resp 1)
-    (enc "reg" (exp (gen) xr-1) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca)))))
-  (label 324)
-  (parent 302)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 0) (7 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 1 resp 1)
-    (enc "reg" (exp (gen) xr-0) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca)))))
-  (label 325)
-  (parent 302)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 4 resp 1)
-    (enc "reg" (exp (gen) xr-1) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca)))))
-  (label 326)
-  (parent 302)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 0) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (exp (gen) xr-0) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))))
-  (label 327)
-  (parent 302)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (8 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)
-    (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 328)
-  (parent 303)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))
-  (label 329)
-  (parent 304)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint)
-    (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint))))
-  (label 330)
-  (parent 305)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint))))
-  (label 331)
-  (parent 306)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (7 0))
-    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 332)
-  (parent 307)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (8 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))
-  (label 333)
-  (parent 308)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (9 0)) ((9 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint))))
-  (label 334)
-  (parent 309)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 335)
-  (parent 310)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))
-  (label 336)
-  (parent 311)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint))))
-  (label 337)
-  (parent 312)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 9 0 resp 1)
-    (enc "reg" (exp (gen) xr-1) b (privk b)) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca)))))
-  (label 338)
-  (parent 313)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 0) (8 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 9 1 resp 1)
-    (enc "reg" (exp (gen) xr-0) b (privk b)) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca)))))
-  (label 339)
-  (parent 313)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 9 4 resp 1)
-    (enc "reg" (exp (gen) xr-1) b (privk b)) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca)))))
-  (label 340)
-  (parent 313)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (exp (gen) xr-0) b (privk b)) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b)))))
-  (label 341)
-  (parent 313)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (8 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (6 0)) ((8 1) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))
-  (label 342)
-  (parent 314)
-  (unrealized (0 3) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xi-0)) xi))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (6 0)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xi-0)) xi))
-    (hash "share" (exp (gen) (mul xi xi-0)) xi) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xi-0)) xi))
-      (send (cat "share" (exp (gen) (mul xi xi-0)) xi))))
-  (label 343)
-  (parent 315)
-  (unrealized (0 3) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))
-    ((7 1) (6 0)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))))
-  (label 344)
-  (parent 316)
-  (unrealized (0 3) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint)
-    (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint))))
-  (label 345)
-  (parent 317)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)
-    (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 346)
-  (parent 318)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (8 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))
-  (label 347)
-  (parent 319)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))
-    ((7 0) (6 0)) ((7 0) (9 0)) ((8 1) (0 3)) ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint)
-    (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint))))
-  (label 348)
-  (parent 320)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)
-    (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 349)
-  (parent 321)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (8 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint) (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))
-  (label 350)
-  (parent 322)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint)
-    (7 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint))))
-  (label 351)
-  (parent 323)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0))
-    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint))))
-  (label 352)
-  (parent 324)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (7 0)) ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 353)
-  (parent 325)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (8 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))
-  (label 354)
-  (parent 326)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (9 0))
-    ((9 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint))))
-  (label 355)
-  (parent 327)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (9 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))
-  (label 356)
-  (parent 328)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xi-0)) xi))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (9 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xi-0)) xi))
-    (hash "share" (exp (gen) (mul xi xi-0)) xi) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xi-0)) xi))
-      (send (cat "share" (exp (gen) (mul xi xi-0)) xi))))
-  (label 357)
-  (parent 329)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))))
-  (label 358)
-  (parent 330)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint)
-    (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint))))
-  (label 359)
-  (parent 331)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (7 0))
-    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)
-    (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 360)
-  (parent 332)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (9 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))
-  (label 361)
-  (parent 333)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (10 0)) ((9 1) (0 3))
-    ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint)
-    (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint))))
-  (label 362)
-  (parent 334)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)
-    (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 363)
-  (parent 335)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (9 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))))
-  (label 364)
-  (parent 336)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint)
-    (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint))))
-  (label 365)
-  (parent 337)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (9 0)) ((1 0) (2 0))
-    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint))))
-  (label 366)
-  (parent 338)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (8 0)) ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 367)
-  (parent 339)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (9 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))
-  (label 368)
-  (parent 340)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))
-    ((9 0) (10 0)) ((10 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (enc n
-      (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (0 3))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint))))
-  (label 369)
-  (parent 341)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (label 370)
-  (parent 345)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))
-  (label 371)
-  (parent 346)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xr-0)) xi))
-  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (9 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xr-0)) xi))
-    (hash "share" (exp (gen) (mul xi xr-0)) xi) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xr-0)) xi))
-      (send (cat "share" (exp (gen) (mul xi xr-0)) xi))))
-  (label 372)
-  (parent 347)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-  (precedes ((0 0) (5 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))
-    ((7 0) (6 0)) ((7 0) (10 0)) ((8 1) (0 3)) ((9 1) (8 0))
-    ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))))
-  (label 373)
-  (parent 348)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))
-  (label 374)
-  (parent 349)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xi-0)) xi))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (9 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xi-0)) xi))
-    (hash "share" (exp (gen) (mul xi xi-0)) xi) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xi-0)) xi))
-      (send (cat "share" (exp (gen) (mul xi xi-0)) xi))))
-  (label 375)
-  (parent 350)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))))
-  (label 376)
-  (parent 351)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0))
-    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint)
-    (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint))))
-  (label 377)
-  (parent 352)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (7 0)) ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)) ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)
-    (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 378)
-  (parent 353)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (9 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint) (8 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))
-  (label 379)
-  (parent 354)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (10 0))
-    ((9 1) (0 3)) ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint)
-    (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint))))
-  (label 380)
-  (parent 355)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)) ((9 1) (8 0))
-    ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (label 381)
-  (parent 359)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (7 0))
-    ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))
-  (label 382)
-  (parent 360)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xr-0)) xi))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (10 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xr-0)) xi))
-    (hash "share" (exp (gen) (mul xi xr-0)) xi) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xr-0)) xi))
-      (send (cat "share" (exp (gen) (mul xi xr-0)) xi))))
-  (label 383)
-  (parent 361)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (11 0)) ((9 1) (0 3))
-    ((10 1) (9 0)) ((11 1) (10 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) (10 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))))
-  (label 384)
-  (parent 362)
-  (unrealized (0 3) (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))
-  (label 385)
-  (parent 363)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr)))
-    (n n) (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xi-0)) xi))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (10 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xi-0)) xi))
-    (hash "share" (exp (gen) (mul xi xi-0)) xi) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi-0)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xi-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xi-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xi-0)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xi-0)) xi))
-      (send (cat "share" (exp (gen) (mul xi xi-0)) xi))))
-  (label 386)
-  (parent 364)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 1) (8 0))
-    ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xi-0) hint (enc (exp (gen) xi-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xi-0)) xi-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xi-0)) xi-0))))
-  (label 387)
-  (parent 365)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (10 0)) ((1 0) (2 0))
-    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (0 3)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint)
-    (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint))))
-  (label 388)
-  (parent 366)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (8 0)) ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)
-    (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint))))
-  (label 389)
-  (parent 367)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (10 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))))
-  (label 390)
-  (parent 368)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))
-    ((9 0) (11 0)) ((10 1) (0 3)) ((11 1) (10 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint)
-    (10 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint))))
-  (label 391)
-  (parent 369)
-  (unrealized (0 3) (11 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0))
-    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (label 392)
-  (parent 377)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (7 0)) ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)) ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))
-  (label 393)
-  (parent 378)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xr-0)) xi))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (10 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)) ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xr-0)) xi))
-    (hash "share" (exp (gen) (mul xi xr-0)) xi) (9 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xr-0)) xi))
-      (send (cat "share" (exp (gen) (mul xi xr-0)) xi))))
-  (label 394)
-  (parent 379)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (11 0))
-    ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) (10 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))))
-  (label 395)
-  (parent 380)
-  (unrealized (0 3) (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (11 0)) ((1 0) (2 0))
-    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-    (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) (10 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca)))
-      (send (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr-0 xr-0)) xr-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))
-      (send (cat "share" (exp (gen) (mul xr-0 xr-0)) xr-0))))
-  (label 396)
-  (parent 388)
-  (unrealized (0 3) (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (8 0)) ((1 0) (11 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) (10 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr) hint (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xr)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr)) xi-0) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr)) xi-0))))
-  (label 397)
-  (parent 389)
-  (unrealized (0 3) (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr)))
-    (n n) (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xr-0)) xi))
-  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (11 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xr-0)) xi))
-    (hash "share" (exp (gen) (mul xi xr-0)) xi) (10 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) a (privk a)))
-      (recv (enc (exp (gen) xr) a (privk ca)))
-      (recv (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (recv (enc (exp (gen) xr-0) a (privk ca-0)))
-      (send
-        (cat (exp (gen) xr-0) (enc (exp (gen) xr-0) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr-0)) xr))
-          (enc (exp (gen) xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xr xr-0)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr-0)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) a (privk a)))
-      (send (enc (exp (gen) xr) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) a (privk a)))
-      (send (enc (exp (gen) xr-0) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xr-0)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xr-0)) xi))
-      (send (cat "share" (exp (gen) (mul xi xr-0)) xi))))
-  (label 398)
-  (parent 390)
-  (unrealized (0 3) (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-  (precedes ((0 0) (7 0)) ((0 0) (12 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))
-    ((9 0) (12 0)) ((10 1) (0 3)) ((11 1) (10 0)) ((12 1) (11 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-    (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) (11 0))
-  (traces
-    ((send (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (recv (enc (exp (gen) xi-0) a (privk ca)))
-      (send (cat (exp (gen) xi-0) (enc (exp (gen) xi-0) a (privk ca))))
-      (recv
-        (cat (exp (gen) xr-0) hint (enc (exp (gen) xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-              hint))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xr-0)
-              hint)))))
-    ((send (enc "reg" (exp (gen) xr) b (privk b)))
-      (recv (enc (exp (gen) xr) b (privk ca)))
-      (recv (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca))))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca))))
-    ((send (enc "reg" (exp (gen) xi) a (privk a)))
-      (recv (enc (exp (gen) xi) a (privk ca-0)))
-      (send (cat (exp (gen) xi) (enc (exp (gen) xi) a (privk ca-0))))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (exp (gen) xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc "check" n
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr)))))))
-    ((recv (enc "reg" (exp (gen) xi) a (privk a)))
-      (send (enc (exp (gen) xi) a (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xr) b (privk b)))
-      (send (enc (exp (gen) xr) b (privk ca-0))))
-    ((recv (enc "reg" (exp (gen) xi-0) a (privk a)))
-      (send (enc (exp (gen) xi-0) a (privk ca))))
-    ((recv (enc "reg" (exp (gen) xr-0) b (privk b)))
-      (send (enc (exp (gen) xr-0) b (privk ca))))
-    ((send (enc "reg" (exp (gen) xr-0) b (privk b))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-         hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi-0 xr-0)) xi-0)
-          hint)))
-    ((recv (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))
-      (send (cat "share" (exp (gen) (mul xi-0 xr-0)) xi-0))))
-  (label 399)
-  (parent 391)
-  (unrealized (0 3) (12 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
diff --git a/tst/nh-ca.scm b/tst/nh-ca.scm
deleted file mode 100644
--- a/tst/nh-ca.scm
+++ /dev/null
@@ -1,140 +0,0 @@
-; CA
-; This is an authenticated form of a new-hope key exchange.
-
-; The file contains one model of the CA protocol with the hint included in the
-; encryption and one model fo the CA protocol with the hint not included in the
-; encryption.
-
-; Note: This version of nh-ca does not use diffie hellman for the defined
-; macros.
-
-(herald nhca (algebra diffie-hellman) (bound 20))
-
-(defmacro (nh_public x1)
-  (hash "public" x1))
-(defmacro (nh_public2 x1 x2)
-  (hash "share" x1 x2))
-(defmacro (nh_hint x1 x2)
-  (hash "hint" (nh_public2 x1 x2)))
-(defmacro (nh_key_hint x1 x2 h)
-  (hash "key" (nh_public2 x1 x2) h))
-(defmacro (nh_key x1 x2)
-  (nh_key_hint x1 x2 (nh_hint x1 x2)))
-
-(defprotocol nhca diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))
-    (trace
-     (send (enc "reg" (nh_public xi) a (privk a)))
-     (recv (enc (nh_public xi) a (privk ca)))
-     (send (cat (nh_public xi) (enc (nh_public xi) a (privk ca))))
-     (recv (cat (nh_public xr) hint (enc (nh_public xr) b (privk ca))
-        (enc n hint (nh_key_hint xi xr hint))))
-     (send (cat (enc "check" n (nh_key_hint xi xr hint))
-                (enc "check" n (nh_key_hint xr xi hint)))))
-    (uniq-gen xi)
-    (non-orig (privk a))
-    (non-orig (privk ca)))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (a b ca name) (n text))
-    (trace
-     (send (enc "reg" (nh_public xr) b (privk b)))
-     (recv (enc (nh_public xr) b (privk ca)))
-     (recv (cat (nh_public xi) (enc (nh_public xi) a (privk ca))))
-     (send (cat (nh_public xr) (nh_hint xr xi) (enc (nh_public xr) b (privk ca))
-		(enc n (nh_hint xr xi) (nh_key xr xi))
-        (enc n (nh_hint xr xi) (nh_key_hint xi xr (nh_hint xr xi)))))
-     (recv (enc "check" n (nh_key xr xi))))
-    (uniq-gen xr)
-    (non-orig (privk b))
-    (non-orig (privk ca)))
-  (defrole ca
-    (vars (subject ca name) (x expt))
-    (trace
-     (recv (enc "reg" (nh_public x) subject (privk subject)))
-     (send (enc (nh_public x) subject (privk ca))))
-    (non-orig (privk subject))
-    )
-  (comment A diffie-hellman exchange which uses a certificate
-    authority to certify lonh-term NH values)
-)
-
-(defskeleton nhca
-  (vars )
-  (defstrand init 5 )
-(comment Full initiator POV No need to make extra assumptions))
-
-(defskeleton nhca
-  (vars (n text))
-  (defstrand resp 5 (n n))
-  (uniq-orig n)
-  (comment Full responder point of view with freshly chosen n)
-)
-
-(defskeleton nhca
-  (vars (a b ca name) (xi xr rndx) (n text))
-  (defstrand init 5 (xi xi) (ca ca) (a a) (b b) (n n))
-  (defstrand resp 5 (xr xr) (ca ca) (a a) (b b) (n n))
-(uniq-orig n)
-(comment point of view in which init and resp each complete and
-    they agree on the relevant parameters)
-)
-
-(defprotocol nhca-nohint diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))
-    (trace
-     (send (enc "reg" (nh_public xi) a (privk a)))
-     (recv (enc (nh_public xi) a (privk ca)))
-     (send (cat (nh_public xi) (enc (nh_public xi) a (privk ca))))
-     (recv (cat (nh_public xr) hint (enc (nh_public xr) b (privk ca))
-        (enc n (nh_key_hint xi xr hint))))
-     (send (cat (enc "check" n (nh_key_hint xi xr hint))
-                (enc "check" n (nh_key_hint xr xi hint)))))
-    (uniq-gen xi)
-    (non-orig (privk a))
-    (non-orig (privk ca)))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (a b ca name) (n text))
-    (trace
-     (send (enc "reg" (nh_public xr) b (privk b)))
-     (recv (enc (nh_public xr) b (privk ca)))
-     (recv (cat (nh_public xi) (enc (nh_public xi) a (privk ca))))
-     (send (cat (nh_public xr) (nh_hint xr xi) (enc (nh_public xr) b (privk ca))
-		(enc n (nh_key xr xi))
-        (enc n (nh_key_hint xi xr (nh_hint xr xi)))))
-     (recv (enc "check" n (nh_key xr xi))))
-    (uniq-gen xr)
-    (non-orig (privk b))
-    (non-orig (privk ca)))
-  (defrole ca
-    (vars (subject ca name) (x expt))
-    (trace
-     (recv (enc "reg" (nh_public x) subject (privk subject)))
-     (send (enc (nh_public x) subject (privk ca))))
-    (non-orig (privk subject))
-    )
-  (comment A diffie-hellman exchange which uses a certificate
-    authority to certify lonh-term NH values)
-)
-
-(defskeleton nhca-nohint
-  (vars )
-  (defstrand init 5 )
-(comment Full initiator POV No need to make extra assumptions))
-
-(defskeleton nhca-nohint
-  (vars (n text))
-  (defstrand resp 5 (n n))
-  (uniq-orig n)
-  (comment Full responder point of view with freshly chosen n)
-)
-
-(defskeleton nhca-nohint
-  (vars (a b ca name) (xi xr rndx) (n text))
-  (defstrand init 5 (xi xi) (ca ca) (a a) (b b) (n n))
-  (defstrand resp 5 (xr xr) (ca ca) (a a) (b b) (n n))
-(uniq-orig n)
-(comment point of view in which init and resp each complete and
-    they agree on the relevant parameters)
-)
diff --git a/tst/nh-ca.tst b/tst/nh-ca.tst
deleted file mode 100644
--- a/tst/nh-ca.tst
+++ /dev/null
@@ -1,30605 +0,0 @@
-(herald nhca (algebra diffie-hellman) (bound 20))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/nh-ca.scm")
-(comment "Strand count bounded at 20")
-
-(defprotocol nhca diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))
-    (trace (send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    (non-orig (privk a) (privk ca))
-    (uniq-gen xi))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (a b ca name) (n text))
-    (trace (send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    (non-orig (privk b) (privk ca))
-    (uniq-gen xr))
-  (defrole ca
-    (vars (subject ca name) (x expt))
-    (trace (recv (enc "reg" (hash "public" x) subject (privk subject)))
-      (send (enc (hash "public" x) subject (privk ca))))
-    (non-orig (privk subject)))
-  (comment A diffie-hellman exchange which uses a certificate authority
-    to certify lonh-term NH values))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (comment Full initiator POV No need to make extra assumptions)
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint))))))
-  (label 0)
-  (unrealized (0 1) (0 3))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xi rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xi) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca)))))
-  (label 1)
-  (parent 0)
-  (unrealized (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a ca name) (xi rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test (displaced 2 1 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi) hint
-          (enc (hash "public" xi) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xi) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi) hint))
-          (enc "check" n (hash "key" (hash "share" xi xi) hint)))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca)))))
-  (label 2)
-  (parent 1)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr x))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" x) hint (enc (hash "public" x) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi x) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi x) hint))
-          (enc "check" n (hash "key" (hash "share" x xi) hint)))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" x) b (privk b)))
-      (send (enc (hash "public" x) b (privk ca)))))
-  (label 3)
-  (parent 1)
-  (unrealized (0 3) (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a ca name) (xi rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi xi) hint))
-    (enc n hint (hash "key" (hash "share" xi xi) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi) hint
-          (enc (hash "public" xi) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xi) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi) hint))
-          (enc "check" n (hash "key" (hash "share" xi xi) hint)))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi) hint))
-      (send (hash "key" (hash "share" xi xi) hint))))
-  (label 4)
-  (parent 2)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a ca name) (xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xr)
-  (operation encryption-test (displaced 3 0 resp 1)
-    (enc "reg" (hash "public" xr-0) b (privk b)) (2 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (send
-        (cat (hash "public" xr) (enc (hash "public" xr) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xr xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xr) hint)))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca)))))
-  (label 5)
-  (parent 3)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 1 (b b) (xr xr))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)) ((3 0) (2 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (hash "public" xr) b (privk b)) (2 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))))
-  (label 6)
-  (parent 3)
-  (unrealized (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a ca name) (xi rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi) hint))
-  (deflistener (cat "key" (hash "share" xi xi) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 1) (2 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi xi) hint))
-    (hash "key" (hash "share" xi xi) hint) (2 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi) hint
-          (enc (hash "public" xi) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xi) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi) hint))
-          (enc "check" n (hash "key" (hash "share" xi xi) hint)))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi) hint))
-      (send (hash "key" (hash "share" xi xi) hint)))
-    ((recv (cat "key" (hash "share" xi xi) hint))
-      (send (cat "key" (hash "share" xi xi) hint))))
-  (label 7)
-  (parent 4)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a ca name) (xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xr xr) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 1) (0 3)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xr xr) hint))
-    (enc n hint (hash "key" (hash "share" xr xr) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (send
-        (cat (hash "public" xr) (enc (hash "public" xr) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xr xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xr) hint)))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr xr) hint))
-      (send (hash "key" (hash "share" xr xr) hint))))
-  (label 8)
-  (parent 5)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a ca a-0 b ca-0 name) (xi xr rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))
-  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 3) (0 3)))
-  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))
-  (uniq-gen xi xr)
-  (operation encryption-test (displaced 3 4 resp 4)
-    (enc n (hash "hint" (hash "share" xr xi))
-      (hash "key" (hash "share" xi xr)
-        (hash "hint" (hash "share" xr xi)))) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca-0)))
-      (recv
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a-0 (privk ca-0))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))))
-  (label 9)
-  (parent 6)
-  (unrealized (3 1) (3 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 1 (b b) (xr xr))
-  (deflistener (hash "key" (hash "share" xi xr) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 3)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi xr) hint))
-    (enc n hint (hash "key" (hash "share" xi xr) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b))))
-    ((recv (hash "key" (hash "share" xi xr) hint))
-      (send (hash "key" (hash "share" xi xr) hint))))
-  (label 10)
-  (parent 6)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a ca name) (xi rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi) hint))
-  (deflistener (cat "key" (hash "share" xi xi) hint))
-  (deflistener (cat "share" xi xi))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 1) (2 0)) ((4 1) (3 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test (added-listener (cat "share" xi xi))
-    (hash "share" xi xi) (3 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi) hint
-          (enc (hash "public" xi) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xi) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi) hint))
-          (enc "check" n (hash "key" (hash "share" xi xi) hint)))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi) hint))
-      (send (hash "key" (hash "share" xi xi) hint)))
-    ((recv (cat "key" (hash "share" xi xi) hint))
-      (send (cat "key" (hash "share" xi xi) hint)))
-    ((recv (cat "share" xi xi)) (send (cat "share" xi xi))))
-  (label 11)
-  (parent 7)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a ca name) (xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xr xr) hint))
-  (deflistener (cat "key" (hash "share" xr xr) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xr xr) hint))
-    (hash "key" (hash "share" xr xr) hint) (3 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (send
-        (cat (hash "public" xr) (enc (hash "public" xr) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xr xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xr) hint)))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr xr) hint))
-      (send (hash "key" (hash "share" xr xr) hint)))
-    ((recv (cat "key" (hash "share" xr xr) hint))
-      (send (cat "key" (hash "share" xr xr) hint))))
-  (label 12)
-  (parent 8)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a ca a-0 b name) (xi xr rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (xr xr) (xi xi))
-  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (3 1))
-    ((3 0) (2 0)) ((3 3) (0 3)))
-  (non-orig (privk a) (privk ca) (privk b))
-  (uniq-gen xi xr)
-  (operation encryption-test (displaced 4 2 ca 2)
-    (enc (hash "public" xr) b (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a-0 (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))))
-  (label 13)
-  (parent 9)
-  (unrealized (3 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a ca a-0 b ca-0 name) (xi xr rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))
-  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))
-  (uniq-gen xi xr)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xr) b (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca-0)))
-      (recv
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a-0 (privk ca-0))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0)))))
-  (label 14)
-  (parent 9)
-  (unrealized (3 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 1 (b b) (xr xr))
-  (deflistener (hash "key" (hash "share" xi xr) hint))
-  (deflistener (cat "key" (hash "share" xi xr) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi xr) hint))
-    (hash "key" (hash "share" xi xr) hint) (4 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b))))
-    ((recv (hash "key" (hash "share" xi xr) hint))
-      (send (hash "key" (hash "share" xi xr) hint)))
-    ((recv (cat "key" (hash "share" xi xr) hint))
-      (send (cat "key" (hash "share" xi xr) hint))))
-  (label 15)
-  (parent 10)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a ca name) (xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xr xr) hint))
-  (deflistener (cat "key" (hash "share" xr xr) hint))
-  (deflistener (cat "share" xr xr))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)) ((5 1) (4 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xr)
-  (operation encryption-test (added-listener (cat "share" xr xr))
-    (hash "share" xr xr) (4 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (send
-        (cat (hash "public" xr) (enc (hash "public" xr) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xr xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xr) hint)))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr xr) hint))
-      (send (hash "key" (hash "share" xr xr) hint)))
-    ((recv (cat "key" (hash "share" xr xr) hint))
-      (send (cat "key" (hash "share" xr xr) hint)))
-    ((recv (cat "share" xr xr)) (send (cat "share" xr xr))))
-  (label 16)
-  (parent 12)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (n text) (a ca b name) (xr xi rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (3 1))
-    ((3 0) (2 0)) ((3 3) (0 3)))
-  (non-orig (privk a) (privk ca) (privk b))
-  (uniq-gen xr xi)
-  (operation encryption-test (displaced 4 1 ca 2)
-    (enc (hash "public" xi) a-0 (privk ca)) (3 2))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))))
-  (label 17)
-  (parent 13)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((xi xi) (xr xr) (a a) (b b) (ca ca) (n n)
-        (hint (hash "hint" (hash "share" xr xi))))))
-  (origs))
-
-(defskeleton nhca
-  (vars (n text) (a ca a-0 b name) (xr xi rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a-0) (ca ca) (x xi))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))
-    ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk a-0) (privk b))
-  (uniq-gen xr xi)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xi) a-0 (privk ca)) (3 2))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a-0 (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a-0 (privk a-0)))
-      (send (enc (hash "public" xi) a-0 (privk ca)))))
-  (label 18)
-  (parent 13)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a ca b name) (xr xi rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))
-  (non-orig (privk a) (privk ca) (privk b))
-  (uniq-gen xr xi)
-  (operation encryption-test (displaced 5 1 ca 2)
-    (enc (hash "public" xi) a-0 (privk ca-0)) (3 2))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca)))))
-  (label 19)
-  (parent 14)
-  (seen 17)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a ca a-0 b ca-0 name) (xr xi rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a-0) (ca ca-0) (x xi))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))
-    ((5 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk a-0) (privk b) (privk ca-0))
-  (uniq-gen xr xi)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xi) a-0 (privk ca-0)) (3 2))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca-0)))
-      (recv
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a-0 (privk ca-0))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi) a-0 (privk a-0)))
-      (send (enc (hash "public" xi) a-0 (privk ca-0)))))
-  (label 20)
-  (parent 14)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 1 (b b) (xr xr))
-  (deflistener (hash "key" (hash "share" xi xr) hint))
-  (deflistener (cat "key" (hash "share" xi xr) hint))
-  (deflistener (cat "share" xi xr))
-  (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (6 0)) ((4 1) (0 3)) ((5 1) (4 0))
-    ((6 1) (5 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (operation encryption-test (added-listener (cat "share" xi xr))
-    (hash "share" xi xr) (5 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b))))
-    ((recv (hash "key" (hash "share" xi xr) hint))
-      (send (hash "key" (hash "share" xi xr) hint)))
-    ((recv (cat "key" (hash "share" xi xr) hint))
-      (send (cat "key" (hash "share" xi xr) hint)))
-    ((recv (cat "share" xi xr)) (send (cat "share" xi xr))))
-  (label 21)
-  (parent 15)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (n text) (a ca b name) (xr xr-0 rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b b) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))
-    ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk b))
-  (uniq-gen xr xr-0)
-  (operation encryption-test (displaced 5 0 resp 1)
-    (enc "reg" (hash "public" xr-0) a-0 (privk a-0)) (4 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca)))))
-  (label 22)
-  (parent 18)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((xi xr-0) (xr xr) (a a) (b b) (ca ca) (n n)
-        (hint (hash "hint" (hash "share" xr xr-0))))))
-  (origs))
-
-(defskeleton nhca
-  (vars (n text) (a ca b ca-0 name) (xr xr-0 rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b b) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca-0) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))
-    ((5 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))
-  (uniq-gen xr xr-0)
-  (operation encryption-test (displaced 6 0 resp 1)
-    (enc "reg" (hash "public" xr-0) a-0 (privk a-0)) (5 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca-0)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca-0))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca-0)))))
-  (label 23)
-  (parent 20)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((xi xr-0) (xr xr) (a a) (b b) (ca ca) (n n)
-        (hint (hash "hint" (hash "share" xr xr-0))))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol nhca diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))
-    (trace (send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    (non-orig (privk a) (privk ca))
-    (uniq-gen xi))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (a b ca name) (n text))
-    (trace (send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    (non-orig (privk b) (privk ca))
-    (uniq-gen xr))
-  (defrole ca
-    (vars (subject ca name) (x expt))
-    (trace (recv (enc "reg" (hash "public" x) subject (privk subject)))
-      (send (enc (hash "public" x) subject (privk ca))))
-    (non-orig (privk subject)))
-  (comment A diffie-hellman exchange which uses a certificate authority
-    to certify lonh-term NH values))
-
-(defskeleton nhca
-  (vars (n text) (a b ca name) (xr rndx) (xi expt))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (comment Full responder point of view with freshly chosen n)
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi)))))))
-  (label 24)
-  (unrealized (0 1) (0 2) (0 4))
-  (origs (n (0 3)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a b ca name) (xi expt) (xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xr) b (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca)))))
-  (label 25)
-  (parent 24)
-  (unrealized (0 2) (0 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 2 1 ca 2)
-    (enc (hash "public" x) a (privk ca)) (0 2))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr))
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))
-          (enc n (hash "hint" (hash "share" xr xr))
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr)
-            (hash "hint" (hash "share" xr xr))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca)))))
-  (label 26)
-  (parent 25)
-  (unrealized (0 4))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a b ca name) (xr rndx) (x expt))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi x))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" x) a (privk ca)) (0 2))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" x) (enc (hash "public" x) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr x))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr x))
-            (hash "key" (hash "share" xr x)
-              (hash "hint" (hash "share" xr x))))
-          (enc n (hash "hint" (hash "share" xr x))
-            (hash "key" (hash "share" x xr)
-              (hash "hint" (hash "share" xr x))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr x)
-            (hash "hint" (hash "share" xr x))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" x) a (privk a)))
-      (send (enc (hash "public" x) a (privk ca)))))
-  (label 27)
-  (parent 25)
-  (unrealized (0 4) (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" xr xr)
-      (hash "hint" (hash "share" xr xr))))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 4)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" xr xr)
-        (hash "hint" (hash "share" xr xr))))
-    (enc "check" n
-      (hash "key" (hash "share" xr xr)
-        (hash "hint" (hash "share" xr xr)))) (0 4))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr))
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))
-          (enc n (hash "hint" (hash "share" xr xr))
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr)
-            (hash "hint" (hash "share" xr xr))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr xr)
-         (hash "hint" (hash "share" xr xr))))
-      (send
-        (hash "key" (hash "share" xr xr)
-          (hash "hint" (hash "share" xr xr))))))
-  (label 28)
-  (parent 26)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 3 0 resp 1)
-    (enc "reg" (hash "public" xr-0) a (privk a)) (2 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr))
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))
-          (enc n (hash "hint" (hash "share" xr xr))
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr)
-            (hash "hint" (hash "share" xr xr))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca)))))
-  (label 29)
-  (parent 27)
-  (unrealized (0 4))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a b ca name) (xr xr-0 rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand resp 1 (b a) (xr xr-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 0) (2 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (hash "public" xr-0) a (privk a)) (2 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))))
-  (label 30)
-  (parent 27)
-  (unrealized (0 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" xr xr)
-      (hash "hint" (hash "share" xr xr))))
-  (deflistener
-    (cat "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr))))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 4))
-    ((3 1) (2 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" xr xr)
-        (hash "hint" (hash "share" xr xr))))
-    (hash "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr)))
-    (2 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr))
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))
-          (enc n (hash "hint" (hash "share" xr xr))
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr)
-            (hash "hint" (hash "share" xr xr))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr xr)
-         (hash "hint" (hash "share" xr xr))))
-      (send
-        (hash "key" (hash "share" xr xr)
-          (hash "hint" (hash "share" xr xr)))))
-    ((recv
-       (cat "key" (hash "share" xr xr)
-         (hash "hint" (hash "share" xr xr))))
-      (send
-        (cat "key" (hash "share" xr xr)
-          (hash "hint" (hash "share" xr xr))))))
-  (label 31)
-  (parent 28)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" xr xr)
-      (hash "hint" (hash "share" xr xr))))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 1) (0 4)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" xr xr)
-        (hash "hint" (hash "share" xr xr))))
-    (enc "check" n
-      (hash "key" (hash "share" xr xr)
-        (hash "hint" (hash "share" xr xr)))) (0 4))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr))
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))
-          (enc n (hash "hint" (hash "share" xr xr))
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr)
-            (hash "hint" (hash "share" xr xr))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr xr)
-         (hash "hint" (hash "share" xr xr))))
-      (send
-        (hash "key" (hash "share" xr xr)
-          (hash "hint" (hash "share" xr xr))))))
-  (label 32)
-  (parent 29)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca a b-0 ca-0 name) (xr xi rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 4) (0 4)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi)
-  (uniq-orig n)
-  (operation encryption-test (displaced 3 4 init 5)
-    (enc "check" n
-      (hash "key" (hash "share" xr xi)
-        (hash "hint" (hash "share" xr xi)))) (0 4))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b-0 (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))))))
-  (label 33)
-  (parent 30)
-  (unrealized (3 1) (3 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a b ca name) (xr xr-0 rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand resp 1 (b a) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" xr xr-0)
-      (hash "hint" (hash "share" xr xr-0))))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 4)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" xr xr-0)
-        (hash "hint" (hash "share" xr xr-0))))
-    (enc "check" n
-      (hash "key" (hash "share" xr xr-0)
-        (hash "hint" (hash "share" xr xr-0)))) (0 4))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" xr xr-0)
-         (hash "hint" (hash "share" xr xr-0))))
-      (send
-        (hash "key" (hash "share" xr xr-0)
-          (hash "hint" (hash "share" xr xr-0))))))
-  (label 34)
-  (parent 30)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" xr xr)
-      (hash "hint" (hash "share" xr xr))))
-  (deflistener
-    (cat "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr))))
-  (deflistener (cat "share" xr xr))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 4))
-    ((3 1) (2 0)) ((4 1) (3 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr xr))
-    (hash "share" xr xr) (3 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr))
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))
-          (enc n (hash "hint" (hash "share" xr xr))
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr)
-            (hash "hint" (hash "share" xr xr))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr xr)
-         (hash "hint" (hash "share" xr xr))))
-      (send
-        (hash "key" (hash "share" xr xr)
-          (hash "hint" (hash "share" xr xr)))))
-    ((recv
-       (cat "key" (hash "share" xr xr)
-         (hash "hint" (hash "share" xr xr))))
-      (send
-        (cat "key" (hash "share" xr xr)
-          (hash "hint" (hash "share" xr xr)))))
-    ((recv (cat "share" xr xr)) (send (cat "share" xr xr))))
-  (label 35)
-  (parent 31)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" xr xr)
-      (hash "hint" (hash "share" xr xr))))
-  (deflistener
-    (cat "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr))))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" xr xr)
-        (hash "hint" (hash "share" xr xr))))
-    (hash "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr)))
-    (3 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr))
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))
-          (enc n (hash "hint" (hash "share" xr xr))
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr)
-            (hash "hint" (hash "share" xr xr))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr xr)
-         (hash "hint" (hash "share" xr xr))))
-      (send
-        (hash "key" (hash "share" xr xr)
-          (hash "hint" (hash "share" xr xr)))))
-    ((recv
-       (cat "key" (hash "share" xr xr)
-         (hash "hint" (hash "share" xr xr))))
-      (send
-        (cat "key" (hash "share" xr xr)
-          (hash "hint" (hash "share" xr xr))))))
-  (label 36)
-  (parent 32)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca a b-0 name) (xr xi rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b-0) (ca ca) (xi xi) (xr xr))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xr xi)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 2 ca 2)
-    (enc (hash "public" xi) a (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b-0 (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))))))
-  (label 37)
-  (parent 33)
-  (unrealized (3 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca a b-0 ca-0 name) (xr xi rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xi) a (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b-0 (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0)))))
-  (label 38)
-  (parent 33)
-  (unrealized (3 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a b ca name) (xr xr-0 rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand resp 1 (b a) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" xr xr-0)
-      (hash "hint" (hash "share" xr xr-0))))
-  (deflistener
-    (cat "key" (hash "share" xr xr-0)
-      (hash "hint" (hash "share" xr xr-0))))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" xr xr-0)
-        (hash "hint" (hash "share" xr xr-0))))
-    (hash "key" (hash "share" xr xr-0)
-      (hash "hint" (hash "share" xr xr-0))) (4 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" xr xr-0)
-         (hash "hint" (hash "share" xr xr-0))))
-      (send
-        (hash "key" (hash "share" xr xr-0)
-          (hash "hint" (hash "share" xr xr-0)))))
-    ((recv
-       (cat "key" (hash "share" xr xr-0)
-         (hash "hint" (hash "share" xr xr-0))))
-      (send
-        (cat "key" (hash "share" xr xr-0)
-          (hash "hint" (hash "share" xr xr-0))))))
-  (label 39)
-  (parent 34)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" xr xr)
-      (hash "hint" (hash "share" xr xr))))
-  (deflistener
-    (cat "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr))))
-  (deflistener (cat "share" xr xr))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)) ((5 1) (4 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr xr))
-    (hash "share" xr xr) (4 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr))
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))
-          (enc n (hash "hint" (hash "share" xr xr))
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr)
-            (hash "hint" (hash "share" xr xr))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr xr)
-         (hash "hint" (hash "share" xr xr))))
-      (send
-        (hash "key" (hash "share" xr xr)
-          (hash "hint" (hash "share" xr xr)))))
-    ((recv
-       (cat "key" (hash "share" xr xr)
-         (hash "hint" (hash "share" xr xr))))
-      (send
-        (cat "key" (hash "share" xr xr)
-          (hash "hint" (hash "share" xr xr)))))
-    ((recv (cat "share" xr xr)) (send (cat "share" xr xr))))
-  (label 40)
-  (parent 36)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (n text) (b ca a name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 1 ca 2)
-    (enc (hash "public" xr) b-0 (privk ca)) (3 3))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))))))
-  (label 41)
-  (parent 37)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))
-  (origs (n (0 3))))
-
-(defskeleton nhca
-  (vars (n text) (b ca a b-0 name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b-0) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b-0) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))
-    ((4 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk b-0))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xr) b-0 (privk ca)) (3 3))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b-0 (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b-0 (privk b-0)))
-      (send (enc (hash "public" xr) b-0 (privk ca)))))
-  (label 42)
-  (parent 37)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca a name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 5 1 ca 2)
-    (enc (hash "public" xr) b-0 (privk ca-0)) (3 3))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca)))))
-  (label 43)
-  (parent 38)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))
-  (origs (n (0 3))))
-
-(defskeleton nhca
-  (vars (n text) (b ca a b-0 ca-0 name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b-0) (ca ca-0) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))
-    ((4 1) (3 1)) ((5 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xr) b-0 (privk ca-0)) (3 3))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b-0 (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b-0 (privk b-0)))
-      (send (enc (hash "public" xr) b-0 (privk ca-0)))))
-  (label 44)
-  (parent 38)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a b ca name) (xr xr-0 rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand resp 1 (b a) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" xr xr-0)
-      (hash "hint" (hash "share" xr xr-0))))
-  (deflistener
-    (cat "key" (hash "share" xr xr-0)
-      (hash "hint" (hash "share" xr xr-0))))
-  (deflistener (cat "share" xr xr-0))
-  (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (6 0)) ((4 1) (0 4)) ((5 1) (4 0))
-    ((6 1) (5 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr xr-0))
-    (hash "share" xr xr-0) (5 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" xr xr-0)
-         (hash "hint" (hash "share" xr xr-0))))
-      (send
-        (hash "key" (hash "share" xr xr-0)
-          (hash "hint" (hash "share" xr xr-0)))))
-    ((recv
-       (cat "key" (hash "share" xr xr-0)
-         (hash "hint" (hash "share" xr xr-0))))
-      (send
-        (cat "key" (hash "share" xr xr-0)
-          (hash "hint" (hash "share" xr xr-0)))))
-    ((recv (cat "share" xr xr-0)) (send (cat "share" xr xr-0))))
-  (label 45)
-  (parent 39)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (n text) (b ca a name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))
-    ((4 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 5 0 resp 1)
-    (enc "reg" (hash "public" xr) b-0 (privk b-0)) (4 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca)))))
-  (label 46)
-  (parent 42)
-  (seen 41)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (b ca a ca-0 name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))
-    ((4 1) (3 1)) ((5 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 0 resp 1)
-    (enc "reg" (hash "public" xr) b-0 (privk b-0)) (5 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0)))))
-  (label 47)
-  (parent 44)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))
-  (origs (n (0 3))))
-
-(comment "Nothing left to do")
-
-(defprotocol nhca diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))
-    (trace (send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    (non-orig (privk a) (privk ca))
-    (uniq-gen xi))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (a b ca name) (n text))
-    (trace (send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    (non-orig (privk b) (privk ca))
-    (uniq-gen xr))
-  (defrole ca
-    (vars (subject ca name) (x expt))
-    (trace (recv (enc "reg" (hash "public" x) subject (privk subject)))
-      (send (enc (hash "public" x) subject (privk ca))))
-    (non-orig (privk subject)))
-  (comment A diffie-hellman exchange which uses a certificate authority
-    to certify lonh-term NH values))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx)
-    (xr-0 xi-0 expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi-0))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (comment point of view in which init and resp each complete and they
-    agree on the relevant parameters)
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0)))))))
-  (label 48)
-  (unrealized (0 1) (0 3) (1 1) (1 2) (1 4))
-  (preskeleton)
-  (origs (n (1 3)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx)
-    (xr-0 xi-0 expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi-0))
-  (precedes ((1 3) (0 3)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (comment point of view in which init and resp each complete and they
-    agree on the relevant parameters)
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0)))))))
-  (label 49)
-  (parent 48)
-  (unrealized (0 1) (0 3) (1 1) (1 2) (1 4))
-  (origs (n (1 3)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr xi-0 expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xr-0) b (privk ca)) (1 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi-0)
-            (hash "hint" (hash "share" xr-0 xi-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca)))))
-  (label 50)
-  (parent 49)
-  (unrealized (0 1) (0 3) (1 2) (1 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 3 2 ca 2)
-    (enc (hash "public" x) a (privk ca)) (1 2))
-  (traces
-    ((send (enc "reg" (hash "public" xi) b (privk b)))
-      (recv (enc (hash "public" xi) b (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) b (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xr-0))
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))
-          (enc n (hash "hint" (hash "share" xr-0 xr-0))
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-0)
-            (hash "hint" (hash "share" xr-0 xr-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca)))))
-  (label 51)
-  (parent 50)
-  (unrealized (0 1) (0 3) (1 4))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx) (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi x))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" x) a (privk ca)) (1 2))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" x) (enc (hash "public" x) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 x))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 x))
-            (hash "key" (hash "share" xr-0 x)
-              (hash "hint" (hash "share" xr-0 x))))
-          (enc n (hash "hint" (hash "share" xr-0 x))
-            (hash "key" (hash "share" x xr-0)
-              (hash "hint" (hash "share" xr-0 x))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 x)
-            (hash "hint" (hash "share" xr-0 x))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" x) a (privk a)))
-      (send (enc (hash "public" x) a (privk ca)))))
-  (label 52)
-  (parent 50)
-  (unrealized (0 1) (0 3) (1 4) (3 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 4)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" xr-0 xr-0)
-        (hash "hint" (hash "share" xr-0 xr-0))))
-    (enc "check" n
-      (hash "key" (hash "share" xr-0 xr-0)
-        (hash "hint" (hash "share" xr-0 xr-0)))) (1 4))
-  (traces
-    ((send (enc "reg" (hash "public" xi) b (privk b)))
-      (recv (enc (hash "public" xi) b (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) b (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xr-0))
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))
-          (enc n (hash "hint" (hash "share" xr-0 xr-0))
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-0)
-            (hash "hint" (hash "share" xr-0 xr-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-0)
-         (hash "hint" (hash "share" xr-0 xr-0))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-0)
-          (hash "hint" (hash "share" xr-0 xr-0))))))
-  (label 53)
-  (parent 51)
-  (unrealized (0 1) (0 3) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 0 resp 1)
-    (enc "reg" (hash "public" xr-2) a (privk a)) (3 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-1) a (privk a)))
-      (recv (enc (hash "public" xr-1) a (privk ca)))
-      (send
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xr-1 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-1 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xr-1) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xr-1))
-            (hash "key" (hash "share" xr-0 xr-1)
-              (hash "hint" (hash "share" xr-0 xr-1))))
-          (enc n (hash "hint" (hash "share" xr-0 xr-1))
-            (hash "key" (hash "share" xr-1 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-1))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-1)
-            (hash "hint" (hash "share" xr-0 xr-1))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))
-      (send (enc (hash "public" xr-1) a (privk ca)))))
-  (label 54)
-  (parent 52)
-  (unrealized (0 1) (0 3) (1 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 1 resp 1)
-    (enc "reg" (hash "public" xr-1) a (privk a)) (3 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) b (privk b)))
-      (recv (enc (hash "public" xi) b (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) b (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xr-0))
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))
-          (enc n (hash "hint" (hash "share" xr-0 xr-0))
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-0)
-            (hash "hint" (hash "share" xr-0 xr-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca)))))
-  (label 55)
-  (parent 52)
-  (unrealized (0 1) (0 3) (1 4))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)
-    (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (defstrand resp 1 (b a) (xr xr-1))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (hash "public" xr-1) a (privk a)) (3 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xr-1))
-            (hash "key" (hash "share" xr-0 xr-1)
-              (hash "hint" (hash "share" xr-0 xr-1))))
-          (enc n (hash "hint" (hash "share" xr-0 xr-1))
-            (hash "key" (hash "share" xr-1 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-1))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-1)
-            (hash "hint" (hash "share" xr-0 xr-1))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))
-      (send (enc (hash "public" xr-1) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-1) a (privk a)))))
-  (label 56)
-  (parent 52)
-  (unrealized (0 1) (0 3) (1 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))))
-  (deflistener
-    (cat "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))))
-  (precedes ((1 0) (2 0)) ((1 0) (4 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 4)) ((4 1) (3 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" xr-0 xr-0)
-        (hash "hint" (hash "share" xr-0 xr-0))))
-    (hash "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))) (3 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) b (privk b)))
-      (recv (enc (hash "public" xi) b (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) b (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xr-0))
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))
-          (enc n (hash "hint" (hash "share" xr-0 xr-0))
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-0)
-            (hash "hint" (hash "share" xr-0 xr-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-0)
-         (hash "hint" (hash "share" xr-0 xr-0))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-0)
-          (hash "hint" (hash "share" xr-0 xr-0)))))
-    ((recv
-       (cat "key" (hash "share" xr-0 xr-0)
-         (hash "hint" (hash "share" xr-0 xr-0))))
-      (send
-        (cat "key" (hash "share" xr-0 xr-0)
-          (hash "hint" (hash "share" xr-0 xr-0))))))
-  (label 57)
-  (parent 53)
-  (unrealized (0 1) (0 3) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (n text) (a b ca name) (xi xr rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (1 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 0 init 5)
-    (enc "check" n
-      (hash "key" (hash "share" xr-0 xi)
-        (hash "hint" (hash "share" xr-0 xi)))) (1 4))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca)))))
-  (label 58)
-  (parent 54)
-  (unrealized (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))))
-  (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((1 0) (2 0)) ((1 0) (4 0))
-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" xr-0 xr-1)
-        (hash "hint" (hash "share" xr-0 xr-1))))
-    (enc "check" n
-      (hash "key" (hash "share" xr-0 xr-1)
-        (hash "hint" (hash "share" xr-0 xr-1)))) (1 4))
-  (traces
-    ((send (enc "reg" (hash "public" xr-1) a (privk a)))
-      (recv (enc (hash "public" xr-1) a (privk ca)))
-      (send
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xr-1 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-1 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xr-1) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xr-1))
-            (hash "key" (hash "share" xr-0 xr-1)
-              (hash "hint" (hash "share" xr-0 xr-1))))
-          (enc n (hash "hint" (hash "share" xr-0 xr-1))
-            (hash "key" (hash "share" xr-1 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-1))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-1)
-            (hash "hint" (hash "share" xr-0 xr-1))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))
-      (send (enc (hash "public" xr-1) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-1)
-         (hash "hint" (hash "share" xr-0 xr-1))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-1)
-          (hash "hint" (hash "share" xr-0 xr-1))))))
-  (label 59)
-  (parent 54)
-  (unrealized (0 1) (0 3) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (4 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" xr-0 xr-0)
-        (hash "hint" (hash "share" xr-0 xr-0))))
-    (enc "check" n
-      (hash "key" (hash "share" xr-0 xr-0)
-        (hash "hint" (hash "share" xr-0 xr-0)))) (1 4))
-  (traces
-    ((send (enc "reg" (hash "public" xi) b (privk b)))
-      (recv (enc (hash "public" xi) b (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) b (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xr-0))
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))
-          (enc n (hash "hint" (hash "share" xr-0 xr-0))
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-0)
-            (hash "hint" (hash "share" xr-0 xr-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-0)
-         (hash "hint" (hash "share" xr-0 xr-0))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-0)
-          (hash "hint" (hash "share" xr-0 xr-0))))))
-  (label 60)
-  (parent 55)
-  (unrealized (0 1) (0 3) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)
-    (xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)
-    (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 4) (1 4)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 5 init 5)
-    (enc "check" n
-      (hash "key" (hash "share" xr-0 xi-0)
-        (hash "hint" (hash "share" xr-0 xi-0)))) (1 4))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi-0)
-            (hash "hint" (hash "share" xr-0 xi-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b-0 (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))))
-  (label 61)
-  (parent 56)
-  (unrealized (0 1) (0 3) (4 1) (4 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)
-    (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (defstrand resp 1 (b a) (xr xr-1))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))))
-  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((5 1) (1 4)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" xr-0 xr-1)
-        (hash "hint" (hash "share" xr-0 xr-1))))
-    (enc "check" n
-      (hash "key" (hash "share" xr-0 xr-1)
-        (hash "hint" (hash "share" xr-0 xr-1)))) (1 4))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xr-1))
-            (hash "key" (hash "share" xr-0 xr-1)
-              (hash "hint" (hash "share" xr-0 xr-1))))
-          (enc n (hash "hint" (hash "share" xr-0 xr-1))
-            (hash "key" (hash "share" xr-1 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-1))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-1)
-            (hash "hint" (hash "share" xr-0 xr-1))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))
-      (send (enc (hash "public" xr-1) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-1) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-1)
-         (hash "hint" (hash "share" xr-0 xr-1))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-1)
-          (hash "hint" (hash "share" xr-0 xr-1))))))
-  (label 62)
-  (parent 56)
-  (unrealized (0 1) (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))))
-  (deflistener
-    (cat "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))))
-  (deflistener (cat "share" xr-0 xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 4)) ((4 1) (3 0)) ((5 1) (4 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))
-    (hash "share" xr-0 xr-0) (4 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) b (privk b)))
-      (recv (enc (hash "public" xi) b (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) b (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xr-0))
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))
-          (enc n (hash "hint" (hash "share" xr-0 xr-0))
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-0)
-            (hash "hint" (hash "share" xr-0 xr-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-0)
-         (hash "hint" (hash "share" xr-0 xr-0))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-0)
-          (hash "hint" (hash "share" xr-0 xr-0)))))
-    ((recv
-       (cat "key" (hash "share" xr-0 xr-0)
-         (hash "hint" (hash "share" xr-0 xr-0))))
-      (send
-        (cat "key" (hash "share" xr-0 xr-0)
-          (hash "hint" (hash "share" xr-0 xr-0)))))
-    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))
-  (label 63)
-  (parent 57)
-  (unrealized (0 1) (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (n text) (a b ca name) (xr xi rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (0 1)) ((3 1) (1 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xi)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 3 ca 2)
-    (enc (hash "public" xi) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca)))))
-  (label 64)
-  (parent 58)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((a a) (b b) (ca ca) (xi xi) (xr xr) (n n) (xr-0 xr)
-        (hint (hash "hint" (hash "share" xr xi))) (xi-0 xi))))
-  (origs (n (1 3))))
-
-(defskeleton nhca
-  (vars (n text) (a b ca name) (xr xi rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 4) (1 4)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (0 1)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xi)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xi) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca)))))
-  (label 65)
-  (parent 58)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((a a) (b b) (ca ca) (xi xi) (xr xr) (n n) (xr-0 xr)
-        (hint (hash "hint" (hash "share" xr xi))) (xi-0 xi))))
-  (origs (n (1 3))))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))))
-  (deflistener
-    (cat "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))))
-  (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))
-    ((5 1) (4 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" xr-0 xr-1)
-        (hash "hint" (hash "share" xr-0 xr-1))))
-    (hash "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))) (4 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-1) a (privk a)))
-      (recv (enc (hash "public" xr-1) a (privk ca)))
-      (send
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xr-1 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-1 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xr-1) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xr-1))
-            (hash "key" (hash "share" xr-0 xr-1)
-              (hash "hint" (hash "share" xr-0 xr-1))))
-          (enc n (hash "hint" (hash "share" xr-0 xr-1))
-            (hash "key" (hash "share" xr-1 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-1))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-1)
-            (hash "hint" (hash "share" xr-0 xr-1))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))
-      (send (enc (hash "public" xr-1) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-1)
-         (hash "hint" (hash "share" xr-0 xr-1))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-1)
-          (hash "hint" (hash "share" xr-0 xr-1)))))
-    ((recv
-       (cat "key" (hash "share" xr-0 xr-1)
-         (hash "hint" (hash "share" xr-0 xr-1))))
-      (send
-        (cat "key" (hash "share" xr-0 xr-1)
-          (hash "hint" (hash "share" xr-0 xr-1))))))
-  (label 66)
-  (parent 59)
-  (unrealized (0 1) (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))))
-  (deflistener
-    (cat "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)) ((5 1) (4 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" xr-0 xr-0)
-        (hash "hint" (hash "share" xr-0 xr-0))))
-    (hash "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))) (4 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) b (privk b)))
-      (recv (enc (hash "public" xi) b (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) b (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xr-0))
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))
-          (enc n (hash "hint" (hash "share" xr-0 xr-0))
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-0)
-            (hash "hint" (hash "share" xr-0 xr-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-0)
-         (hash "hint" (hash "share" xr-0 xr-0))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-0)
-          (hash "hint" (hash "share" xr-0 xr-0)))))
-    ((recv
-       (cat "key" (hash "share" xr-0 xr-0)
-         (hash "hint" (hash "share" xr-0 xr-0))))
-      (send
-        (cat "key" (hash "share" xr-0 xr-0)
-          (hash "hint" (hash "share" xr-0 xr-0))))))
-  (label 67)
-  (parent 60)
-  (unrealized (0 1) (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a b-0 name) (xi rndx) (xr expt)
-    (xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)
-    (a a) (b b-0) (ca ca) (xi xi-0) (xr xr-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 5 3 ca 2)
-    (enc (hash "public" xi-0) a (privk ca-0)) (4 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi-0)
-            (hash "hint" (hash "share" xr-0 xi-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b-0 (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))))
-  (label 68)
-  (parent 61)
-  (unrealized (0 1) (0 3) (4 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)
-    (xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)
-    (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xi-0) a (privk ca-0)) (4 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi-0)
-            (hash "hint" (hash "share" xr-0 xi-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b-0 (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca-0)))))
-  (label 69)
-  (parent 61)
-  (unrealized (0 1) (0 3) (4 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)
-    (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (defstrand resp 1 (b a) (xr xr-1))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))))
-  (deflistener
-    (cat "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))))
-  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (6 0)) ((5 1) (1 4))
-    ((6 1) (5 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" xr-0 xr-1)
-        (hash "hint" (hash "share" xr-0 xr-1))))
-    (hash "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))) (5 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xr-1))
-            (hash "key" (hash "share" xr-0 xr-1)
-              (hash "hint" (hash "share" xr-0 xr-1))))
-          (enc n (hash "hint" (hash "share" xr-0 xr-1))
-            (hash "key" (hash "share" xr-1 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-1))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-1)
-            (hash "hint" (hash "share" xr-0 xr-1))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))
-      (send (enc (hash "public" xr-1) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-1) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-1)
-         (hash "hint" (hash "share" xr-0 xr-1))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-1)
-          (hash "hint" (hash "share" xr-0 xr-1)))))
-    ((recv
-       (cat "key" (hash "share" xr-0 xr-1)
-         (hash "hint" (hash "share" xr-0 xr-1))))
-      (send
-        (cat "key" (hash "share" xr-0 xr-1)
-          (hash "hint" (hash "share" xr-0 xr-1))))))
-  (label 70)
-  (parent 62)
-  (unrealized (0 1) (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))))
-  (deflistener
-    (cat "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))))
-  (deflistener (cat "share" xr-0 xr-1))
-  (precedes ((0 0) (3 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))
-    ((5 1) (4 0)) ((6 1) (5 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr-0 xr-1))
-    (hash "share" xr-0 xr-1) (5 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-1) a (privk a)))
-      (recv (enc (hash "public" xr-1) a (privk ca)))
-      (send
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xr-1 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-1 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xr-1) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xr-1))
-            (hash "key" (hash "share" xr-0 xr-1)
-              (hash "hint" (hash "share" xr-0 xr-1))))
-          (enc n (hash "hint" (hash "share" xr-0 xr-1))
-            (hash "key" (hash "share" xr-1 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-1))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-1)
-            (hash "hint" (hash "share" xr-0 xr-1))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))
-      (send (enc (hash "public" xr-1) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-1)
-         (hash "hint" (hash "share" xr-0 xr-1))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-1)
-          (hash "hint" (hash "share" xr-0 xr-1)))))
-    ((recv
-       (cat "key" (hash "share" xr-0 xr-1)
-         (hash "hint" (hash "share" xr-0 xr-1))))
-      (send
-        (cat "key" (hash "share" xr-0 xr-1)
-          (hash "hint" (hash "share" xr-0 xr-1)))))
-    ((recv (cat "share" xr-0 xr-1)) (send (cat "share" xr-0 xr-1))))
-  (label 71)
-  (parent 66)
-  (unrealized (0 1) (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))))
-  (deflistener
-    (cat "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))))
-  (deflistener (cat "share" xr-0 xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)) ((5 1) (4 0))
-    ((6 1) (5 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))
-    (hash "share" xr-0 xr-0) (5 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) b (privk b)))
-      (recv (enc (hash "public" xi) b (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) b (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xr-0))
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))
-          (enc n (hash "hint" (hash "share" xr-0 xr-0))
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-0)
-            (hash "hint" (hash "share" xr-0 xr-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-0)
-         (hash "hint" (hash "share" xr-0 xr-0))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-0)
-          (hash "hint" (hash "share" xr-0 xr-0)))))
-    ((recv
-       (cat "key" (hash "share" xr-0 xr-0)
-         (hash "hint" (hash "share" xr-0 xr-0))))
-      (send
-        (cat "key" (hash "share" xr-0 xr-0)
-          (hash "hint" (hash "share" xr-0 xr-0)))))
-    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))
-  (label 72)
-  (parent 67)
-  (unrealized (0 1) (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)
-    (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 5 2 ca 2)
-    (enc (hash "public" xr-0) b-0 (privk ca)) (4 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi-0)
-            (hash "hint" (hash "share" xr-0 xi-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))))
-  (label 73)
-  (parent 68)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a b-0 name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)
-    (a a) (b b-0) (ca ca) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject b-0) (ca ca) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (4 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk b-0))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xr-0) b-0 (privk ca)) (4 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi-0)
-            (hash "hint" (hash "share" xr-0 xi-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b-0 (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) b-0 (privk b-0)))
-      (send (enc (hash "public" xr-0) b-0 (privk ca)))))
-  (label 74)
-  (parent 68)
-  (unrealized (0 1) (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)
-    (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 2 ca 2)
-    (enc (hash "public" xr-0) b-0 (privk ca-0)) (4 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi-0)
-            (hash "hint" (hash "share" xr-0 xi-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 75)
-  (parent 69)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)
-    (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject b-0) (ca ca-0) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xr-0) b-0 (privk ca-0)) (4 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi-0)
-            (hash "hint" (hash "share" xr-0 xi-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b-0 (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr-0) b-0 (privk b-0)))
-      (send (enc (hash "public" xr-0) b-0 (privk ca-0)))))
-  (label 76)
-  (parent 69)
-  (unrealized (0 1) (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)
-    (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (defstrand resp 1 (b a) (xr xr-1))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))))
-  (deflistener
-    (cat "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))))
-  (deflistener (cat "share" xr-0 xr-1))
-  (precedes ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (7 0)) ((5 1) (1 4))
-    ((6 1) (5 0)) ((7 1) (6 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr-0 xr-1))
-    (hash "share" xr-0 xr-1) (6 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xr-1))
-            (hash "key" (hash "share" xr-0 xr-1)
-              (hash "hint" (hash "share" xr-0 xr-1))))
-          (enc n (hash "hint" (hash "share" xr-0 xr-1))
-            (hash "key" (hash "share" xr-1 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-1))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-1)
-            (hash "hint" (hash "share" xr-0 xr-1))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))
-      (send (enc (hash "public" xr-1) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-1) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-1)
-         (hash "hint" (hash "share" xr-0 xr-1))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-1)
-          (hash "hint" (hash "share" xr-0 xr-1)))))
-    ((recv
-       (cat "key" (hash "share" xr-0 xr-1)
-         (hash "hint" (hash "share" xr-0 xr-1))))
-      (send
-        (cat "key" (hash "share" xr-0 xr-1)
-          (hash "hint" (hash "share" xr-0 xr-1)))))
-    ((recv (cat "share" xr-0 xr-1)) (send (cat "share" xr-0 xr-1))))
-  (label 77)
-  (parent 70)
-  (unrealized (0 1) (0 3) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xr expt)
-    (xi xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xi-0) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi))
-            (hash "key" (hash "share" xr-0 xi)
-              (hash "hint" (hash "share" xr-0 xi))))
-          (enc n (hash "hint" (hash "share" xr-0 xi))
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi)
-            (hash "hint" (hash "share" xr-0 xi))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi))
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi)
-              (hash "hint" (hash "share" xr-0 xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 78)
-  (parent 73)
-  (unrealized (0 3))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)
-    (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (4 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 1 resp 1)
-    (enc "reg" (hash "public" xr-0) b-0 (privk b-0)) (5 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi-0)
-            (hash "hint" (hash "share" xr-0 xi-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca)))))
-  (label 79)
-  (parent 74)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xr expt)
-    (xi xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xi-0) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi))
-            (hash "key" (hash "share" xr-0 xi)
-              (hash "hint" (hash "share" xr-0 xi))))
-          (enc n (hash "hint" (hash "share" xr-0 xi))
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi)
-            (hash "hint" (hash "share" xr-0 xi))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi))
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi)
-              (hash "hint" (hash "share" xr-0 xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 80)
-  (parent 75)
-  (unrealized (0 3))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 1 resp 1)
-    (enc "reg" (hash "public" xr-0) b-0 (privk b-0)) (6 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi-0)
-            (hash "hint" (hash "share" xr-0 xi-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr-0 xi-0))
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca-0)))))
-  (label 81)
-  (parent 76)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 2 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 82)
-  (parent 78)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 3 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca)))))
-  (label 83)
-  (parent 78)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 5 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 84)
-  (parent 78)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr x))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x x))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" x) hint (enc (hash "public" x) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 x) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 x) hint))
-          (enc "check" n (hash "key" (hash "share" x xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" x) b (privk b)))
-      (send (enc (hash "public" x) b (privk ca)))))
-  (label 85)
-  (parent 78)
-  (unrealized (0 3) (6 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xr expt)
-    (xi xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xi-0) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi))
-            (hash "key" (hash "share" xr-0 xi)
-              (hash "hint" (hash "share" xr-0 xi))))
-          (enc n (hash "hint" (hash "share" xr-0 xi))
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi)
-            (hash "hint" (hash "share" xr-0 xi))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi))
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi)
-              (hash "hint" (hash "share" xr-0 xi)))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 86)
-  (parent 79)
-  (unrealized (0 3))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 2 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 87)
-  (parent 80)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 3 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca)))))
-  (label 88)
-  (parent 80)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 6 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 89)
-  (parent 80)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr x))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x x))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" x) hint (enc (hash "public" x) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 x) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 x) hint))
-          (enc "check" n (hash "key" (hash "share" x xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" x) b (privk b)))
-      (send (enc (hash "public" x) b (privk ca)))))
-  (label 90)
-  (parent 80)
-  (unrealized (0 3) (7 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xr expt)
-    (xi xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xi-0) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr-0 xi))
-            (hash "key" (hash "share" xr-0 xi)
-              (hash "hint" (hash "share" xr-0 xi))))
-          (enc n (hash "hint" (hash "share" xr-0 xi))
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi)
-            (hash "hint" (hash "share" xr-0 xi))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))
-          (enc (hash "public" xr-0) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr-0 xi))
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi)
-              (hash "hint" (hash "share" xr-0 xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 91)
-  (parent 81)
-  (unrealized (0 3))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr) hint))
-    (enc n hint (hash "key" (hash "share" xi-0 xr) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint))))
-  (label 92)
-  (parent 82)
-  (unrealized (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi xi-0) hint))
-    (enc n hint (hash "key" (hash "share" xi xi-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint))))
-  (label 93)
-  (parent 83)
-  (unrealized (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xi-0) hint))
-    (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint))))
-  (label 94)
-  (parent 84)
-  (unrealized (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 0 resp 1)
-    (enc "reg" (hash "public" xr-1) b (privk b)) (6 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca)))))
-  (label 95)
-  (parent 85)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 1 resp 1)
-    (enc "reg" (hash "public" xr-0) b (privk b)) (6 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca)))))
-  (label 96)
-  (parent 85)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 4 resp 1)
-    (enc "reg" (hash "public" xr-1) b (privk b)) (6 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca)))))
-  (label 97)
-  (parent 85)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)) ((7 0) (6 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (hash "public" xr-0) b (privk b)) (6 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))))
-  (label 98)
-  (parent 85)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 2 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 99)
-  (parent 86)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 3 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca)))))
-  (label 100)
-  (parent 86)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 6 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 101)
-  (parent 86)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr x))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x x))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1))
-    ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" x) hint (enc (hash "public" x) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 x) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 x) hint))
-          (enc "check" n (hash "key" (hash "share" x xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" x) b (privk b)))
-      (send (enc (hash "public" x) b (privk ca)))))
-  (label 102)
-  (parent 86)
-  (unrealized (0 3) (7 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (7 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr) hint))
-    (enc n hint (hash "key" (hash "share" xi-0 xr) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint))))
-  (label 103)
-  (parent 87)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi xi-0) hint))
-    (enc n hint (hash "key" (hash "share" xi xi-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint))))
-  (label 104)
-  (parent 88)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xi-0) hint))
-    (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint))))
-  (label 105)
-  (parent 89)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 0 resp 1)
-    (enc "reg" (hash "public" xr-1) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca)))))
-  (label 106)
-  (parent 90)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 1 resp 1)
-    (enc "reg" (hash "public" xr-0) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca)))))
-  (label 107)
-  (parent 90)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 4 resp 1)
-    (enc "reg" (hash "public" xr-1) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca)))))
-  (label 108)
-  (parent 90)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 0) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (hash "public" xr-0) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))))
-  (label 109)
-  (parent 90)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 2 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 110)
-  (parent 91)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 3 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca)))))
-  (label 111)
-  (parent 91)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 7 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 112)
-  (parent 91)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 rndx)
-    (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr x))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x x))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" x) hint (enc (hash "public" x) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 x) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 x) hint))
-          (enc "check" n (hash "key" (hash "share" x xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" x) b (privk b)))
-      (send (enc (hash "public" x) b (privk ca)))))
-  (label 113)
-  (parent 91)
-  (unrealized (0 3) (8 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (7 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (6 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr) hint))
-    (hash "key" (hash "share" xi-0 xr) hint) (6 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint))))
-  (label 114)
-  (parent 92)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (6 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi xi-0) hint))
-    (hash "key" (hash "share" xi xi-0) hint) (6 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi xi-0) hint))
-      (send (cat "key" (hash "share" xi xi-0) hint))))
-  (label 115)
-  (parent 93)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xi-0) hint))
-    (hash "key" (hash "share" xi-0 xi-0) hint) (6 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))
-      (send (cat "key" (hash "share" xi-0 xi-0) hint))))
-  (label 116)
-  (parent 94)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xr-0 xr-0) hint))
-    (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint))))
-  (label 117)
-  (parent 95)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (7 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr) hint))
-    (enc n hint (hash "key" (hash "share" xi-0 xr) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint))))
-  (label 118)
-  (parent 96)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (7 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi xr-0) hint))
-    (enc n hint (hash "key" (hash "share" xi xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint))))
-  (label 119)
-  (parent 97)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))
-    ((7 0) (6 0)) ((7 0) (8 0)) ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr-0) hint))
-    (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint))))
-  (label 120)
-  (parent 98)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (7 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr) hint))
-    (enc n hint (hash "key" (hash "share" xi-0 xr) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint))))
-  (label 121)
-  (parent 99)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi xi-0) hint))
-    (enc n hint (hash "key" (hash "share" xi xi-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint))))
-  (label 122)
-  (parent 100)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xi-0) hint))
-    (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint))))
-  (label 123)
-  (parent 101)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 0 resp 1)
-    (enc "reg" (hash "public" xr-1) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca)))))
-  (label 124)
-  (parent 102)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 0) (7 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 1 resp 1)
-    (enc "reg" (hash "public" xr-0) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca)))))
-  (label 125)
-  (parent 102)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 4 resp 1)
-    (enc "reg" (hash "public" xr-1) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca)))))
-  (label 126)
-  (parent 102)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 0) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (hash "public" xr-0) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))))
-  (label 127)
-  (parent 102)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (8 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr) hint))
-    (hash "key" (hash "share" xi-0 xr) hint) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint))))
-  (label 128)
-  (parent 103)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi xi-0) hint))
-    (hash "key" (hash "share" xi xi-0) hint) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi xi-0) hint))
-      (send (cat "key" (hash "share" xi xi-0) hint))))
-  (label 129)
-  (parent 104)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xi-0) hint))
-    (hash "key" (hash "share" xi-0 xi-0) hint) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))
-      (send (cat "key" (hash "share" xi-0 xi-0) hint))))
-  (label 130)
-  (parent 105)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xr-0 xr-0) hint))
-    (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint))))
-  (label 131)
-  (parent 106)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (7 0))
-    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr) hint))
-    (enc n hint (hash "key" (hash "share" xi-0 xr) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint))))
-  (label 132)
-  (parent 107)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (8 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi xr-0) hint))
-    (enc n hint (hash "key" (hash "share" xi xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint))))
-  (label 133)
-  (parent 108)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (9 0)) ((9 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr-0) hint))
-    (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint))))
-  (label 134)
-  (parent 109)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr) hint))
-    (enc n hint (hash "key" (hash "share" xi-0 xr) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint))))
-  (label 135)
-  (parent 110)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi xi-0) hint))
-    (enc n hint (hash "key" (hash "share" xi xi-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint))))
-  (label 136)
-  (parent 111)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xi-0) hint))
-    (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint))))
-  (label 137)
-  (parent 112)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 9 0 resp 1)
-    (enc "reg" (hash "public" xr-1) b (privk b)) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca)))))
-  (label 138)
-  (parent 113)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 0) (8 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 9 1 resp 1)
-    (enc "reg" (hash "public" xr-0) b (privk b)) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca)))))
-  (label 139)
-  (parent 113)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 9 4 resp 1)
-    (enc "reg" (hash "public" xr-1) b (privk b)) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca)))))
-  (label 140)
-  (parent 113)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (hash "public" xr-0) b (privk b)) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))))
-  (label 141)
-  (parent 113)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "share" xi-0 xr))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (8 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (6 0)) ((8 1) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr))
-    (hash "share" xi-0 xr) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))
-  (label 142)
-  (parent 114)
-  (unrealized (0 3) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "share" xi xi-0))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (6 0)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi xi-0))
-    (hash "share" xi xi-0) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi xi-0) hint))
-      (send (cat "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "share" xi xi-0)) (send (cat "share" xi xi-0))))
-  (label 143)
-  (parent 115)
-  (unrealized (0 3) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "share" xi-0 xi-0))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))
-    ((7 1) (6 0)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xi-0))
-    (hash "share" xi-0 xi-0) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))
-      (send (cat "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "share" xi-0 xi-0)) (send (cat "share" xi-0 xi-0))))
-  (label 144)
-  (parent 116)
-  (unrealized (0 3) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xr-0 xr-0) hint))
-    (hash "key" (hash "share" xr-0 xr-0) hint) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))
-      (send (cat "key" (hash "share" xr-0 xr-0) hint))))
-  (label 145)
-  (parent 117)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr) hint))
-    (hash "key" (hash "share" xi-0 xr) hint) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint))))
-  (label 146)
-  (parent 118)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi xr-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (8 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi xr-0) hint))
-    (hash "key" (hash "share" xi xr-0) hint) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi xr-0) hint))
-      (send (cat "key" (hash "share" xi xr-0) hint))))
-  (label 147)
-  (parent 119)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))
-    ((7 0) (6 0)) ((7 0) (9 0)) ((8 1) (0 3)) ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr-0) hint))
-    (hash "key" (hash "share" xi-0 xr-0) hint) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))
-      (send (cat "key" (hash "share" xi-0 xr-0) hint))))
-  (label 148)
-  (parent 120)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr) hint))
-    (hash "key" (hash "share" xi-0 xr) hint) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint))))
-  (label 149)
-  (parent 121)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (8 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi xi-0) hint))
-    (hash "key" (hash "share" xi xi-0) hint) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi xi-0) hint))
-      (send (cat "key" (hash "share" xi xi-0) hint))))
-  (label 150)
-  (parent 122)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xi-0) hint))
-    (hash "key" (hash "share" xi-0 xi-0) hint) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))
-      (send (cat "key" (hash "share" xi-0 xi-0) hint))))
-  (label 151)
-  (parent 123)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0))
-    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xr-0 xr-0) hint))
-    (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint))))
-  (label 152)
-  (parent 124)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (7 0)) ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr) hint))
-    (enc n hint (hash "key" (hash "share" xi-0 xr) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint))))
-  (label 153)
-  (parent 125)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (8 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi xr-0) hint))
-    (enc n hint (hash "key" (hash "share" xi xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint))))
-  (label 154)
-  (parent 126)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (9 0))
-    ((9 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr-0) hint))
-    (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint))))
-  (label 155)
-  (parent 127)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "share" xi-0 xr))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (9 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr))
-    (hash "share" xi-0 xr) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))
-  (label 156)
-  (parent 128)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "share" xi xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (9 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi xi-0))
-    (hash "share" xi xi-0) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi xi-0) hint))
-      (send (cat "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "share" xi xi-0)) (send (cat "share" xi xi-0))))
-  (label 157)
-  (parent 129)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "share" xi-0 xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xi-0))
-    (hash "share" xi-0 xi-0) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))
-      (send (cat "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "share" xi-0 xi-0)) (send (cat "share" xi-0 xi-0))))
-  (label 158)
-  (parent 130)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xr-0 xr-0) hint))
-    (hash "key" (hash "share" xr-0 xr-0) hint) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))
-      (send (cat "key" (hash "share" xr-0 xr-0) hint))))
-  (label 159)
-  (parent 131)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (7 0))
-    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr) hint))
-    (hash "key" (hash "share" xi-0 xr) hint) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint))))
-  (label 160)
-  (parent 132)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (9 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi xr-0) hint))
-    (hash "key" (hash "share" xi xr-0) hint) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi xr-0) hint))
-      (send (cat "key" (hash "share" xi xr-0) hint))))
-  (label 161)
-  (parent 133)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (10 0)) ((9 1) (0 3))
-    ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr-0) hint))
-    (hash "key" (hash "share" xi-0 xr-0) hint) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))
-      (send (cat "key" (hash "share" xi-0 xr-0) hint))))
-  (label 162)
-  (parent 134)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr) hint))
-    (hash "key" (hash "share" xi-0 xr) hint) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint))))
-  (label 163)
-  (parent 135)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (9 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi xi-0) hint))
-    (hash "key" (hash "share" xi xi-0) hint) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi xi-0) hint))
-      (send (cat "key" (hash "share" xi xi-0) hint))))
-  (label 164)
-  (parent 136)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xi-0) hint))
-    (hash "key" (hash "share" xi-0 xi-0) hint) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))
-      (send (cat "key" (hash "share" xi-0 xi-0) hint))))
-  (label 165)
-  (parent 137)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (9 0)) ((1 0) (2 0))
-    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xr-0 xr-0) hint))
-    (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint))))
-  (label 166)
-  (parent 138)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (8 0)) ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr) hint))
-    (enc n hint (hash "key" (hash "share" xi-0 xr) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint))))
-  (label 167)
-  (parent 139)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (9 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi xr-0) hint))
-    (enc n hint (hash "key" (hash "share" xi xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint))))
-  (label 168)
-  (parent 140)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))
-    ((9 0) (10 0)) ((10 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr-0) hint))
-    (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint))))
-  (label 169)
-  (parent 141)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "share" xr-0 xr-0))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))
-    (hash "share" xr-0 xr-0) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))
-      (send (cat "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))
-  (label 170)
-  (parent 145)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "share" xi-0 xr))
-  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr))
-    (hash "share" xi-0 xr) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))
-  (label 171)
-  (parent 146)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "share" xi xr-0))
-  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (9 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi xr-0))
-    (hash "share" xi xr-0) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi xr-0) hint))
-      (send (cat "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "share" xi xr-0)) (send (cat "share" xi xr-0))))
-  (label 172)
-  (parent 147)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "share" xi-0 xr-0))
-  (precedes ((0 0) (5 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))
-    ((7 0) (6 0)) ((7 0) (10 0)) ((8 1) (0 3)) ((9 1) (8 0))
-    ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr-0))
-    (hash "share" xi-0 xr-0) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))
-      (send (cat "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "share" xi-0 xr-0)) (send (cat "share" xi-0 xr-0))))
-  (label 173)
-  (parent 148)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "share" xi-0 xr))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr))
-    (hash "share" xi-0 xr) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))
-  (label 174)
-  (parent 149)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "share" xi xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (9 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi xi-0))
-    (hash "share" xi xi-0) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi xi-0) hint))
-      (send (cat "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "share" xi xi-0)) (send (cat "share" xi xi-0))))
-  (label 175)
-  (parent 150)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "share" xi-0 xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xi-0))
-    (hash "share" xi-0 xi-0) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))
-      (send (cat "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "share" xi-0 xi-0)) (send (cat "share" xi-0 xi-0))))
-  (label 176)
-  (parent 151)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0))
-    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xr-0 xr-0) hint))
-    (hash "key" (hash "share" xr-0 xr-0) hint) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))
-      (send (cat "key" (hash "share" xr-0 xr-0) hint))))
-  (label 177)
-  (parent 152)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (7 0)) ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)) ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr) hint))
-    (hash "key" (hash "share" xi-0 xr) hint) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint))))
-  (label 178)
-  (parent 153)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (9 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi xr-0) hint))
-    (hash "key" (hash "share" xi xr-0) hint) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi xr-0) hint))
-      (send (cat "key" (hash "share" xi xr-0) hint))))
-  (label 179)
-  (parent 154)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (10 0))
-    ((9 1) (0 3)) ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr-0) hint))
-    (hash "key" (hash "share" xi-0 xr-0) hint) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))
-      (send (cat "key" (hash "share" xi-0 xr-0) hint))))
-  (label 180)
-  (parent 155)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "share" xr-0 xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)) ((9 1) (8 0))
-    ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))
-    (hash "share" xr-0 xr-0) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))
-      (send (cat "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))
-  (label 181)
-  (parent 159)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "share" xi-0 xr))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (7 0))
-    ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr))
-    (hash "share" xi-0 xr) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))
-  (label 182)
-  (parent 160)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "share" xi xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (10 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi xr-0))
-    (hash "share" xi xr-0) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi xr-0) hint))
-      (send (cat "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "share" xi xr-0)) (send (cat "share" xi xr-0))))
-  (label 183)
-  (parent 161)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "share" xi-0 xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (11 0)) ((9 1) (0 3))
-    ((10 1) (9 0)) ((11 1) (10 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr-0))
-    (hash "share" xi-0 xr-0) (10 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))
-      (send (cat "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "share" xi-0 xr-0)) (send (cat "share" xi-0 xr-0))))
-  (label 184)
-  (parent 162)
-  (unrealized (0 3) (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "share" xi-0 xr))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr))
-    (hash "share" xi-0 xr) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))
-  (label 185)
-  (parent 163)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "share" xi xi-0))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (10 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi xi-0))
-    (hash "share" xi xi-0) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi-0))
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi xi-0) hint))
-      (send (cat "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "share" xi xi-0)) (send (cat "share" xi xi-0))))
-  (label 186)
-  (parent 164)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "share" xi-0 xi-0))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 1) (8 0))
-    ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xi-0))
-    (hash "share" xi-0 xi-0) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))
-      (send (cat "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "share" xi-0 xi-0)) (send (cat "share" xi-0 xi-0))))
-  (label 187)
-  (parent 165)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (10 0)) ((1 0) (2 0))
-    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (0 3)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xr-0 xr-0) hint))
-    (hash "key" (hash "share" xr-0 xr-0) hint) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))
-      (send (cat "key" (hash "share" xr-0 xr-0) hint))))
-  (label 188)
-  (parent 166)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (8 0)) ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr) hint))
-    (hash "key" (hash "share" xi-0 xr) hint) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint))))
-  (label 189)
-  (parent 167)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi xr-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (10 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi xr-0) hint))
-    (hash "key" (hash "share" xi xr-0) hint) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi xr-0) hint))
-      (send (cat "key" (hash "share" xi xr-0) hint))))
-  (label 190)
-  (parent 168)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))
-    ((9 0) (11 0)) ((10 1) (0 3)) ((11 1) (10 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr-0) hint))
-    (hash "key" (hash "share" xi-0 xr-0) hint) (10 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))
-      (send (cat "key" (hash "share" xi-0 xr-0) hint))))
-  (label 191)
-  (parent 169)
-  (unrealized (0 3) (11 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "share" xr-0 xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0))
-    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))
-    (hash "share" xr-0 xr-0) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))
-      (send (cat "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))
-  (label 192)
-  (parent 177)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "share" xi-0 xr))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (7 0)) ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)) ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr))
-    (hash "share" xi-0 xr) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))
-  (label 193)
-  (parent 178)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "share" xi xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (10 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)) ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi xr-0))
-    (hash "share" xi xr-0) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi xr-0) hint))
-      (send (cat "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "share" xi xr-0)) (send (cat "share" xi xr-0))))
-  (label 194)
-  (parent 179)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "share" xi-0 xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (11 0))
-    ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr-0))
-    (hash "share" xi-0 xr-0) (10 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))
-      (send (cat "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "share" xi-0 xr-0)) (send (cat "share" xi-0 xr-0))))
-  (label 195)
-  (parent 180)
-  (unrealized (0 3) (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "share" xr-0 xr-0))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (11 0)) ((1 0) (2 0))
-    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))
-    (hash "share" xr-0 xr-0) (10 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))
-      (send (cat "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))
-  (label 196)
-  (parent 188)
-  (unrealized (0 3) (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "share" xi-0 xr))
-  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (8 0)) ((1 0) (11 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr))
-    (hash "share" xi-0 xr) (10 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))
-  (label 197)
-  (parent 189)
-  (unrealized (0 3) (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "share" xi xr-0))
-  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (11 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi xr-0))
-    (hash "share" xi xr-0) (10 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n hint (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xr-0))
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi xr-0) hint))
-      (send (cat "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "share" xi xr-0)) (send (cat "share" xi xr-0))))
-  (label 198)
-  (parent 190)
-  (unrealized (0 3) (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "share" xi-0 xr-0))
-  (precedes ((0 0) (7 0)) ((0 0) (12 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))
-    ((9 0) (12 0)) ((10 1) (0 3)) ((11 1) (10 0)) ((12 1) (11 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr-0))
-    (hash "share" xi-0 xr-0) (11 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n hint (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n (hash "hint" (hash "share" xr xi))
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))
-      (send (cat "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "share" xi-0 xr-0)) (send (cat "share" xi-0 xr-0))))
-  (label 199)
-  (parent 191)
-  (unrealized (0 3) (12 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhca-nohint diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))
-    (trace (send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    (non-orig (privk a) (privk ca))
-    (uniq-gen xi))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (a b ca name) (n text))
-    (trace (send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    (non-orig (privk b) (privk ca))
-    (uniq-gen xr))
-  (defrole ca
-    (vars (subject ca name) (x expt))
-    (trace (recv (enc "reg" (hash "public" x) subject (privk subject)))
-      (send (enc (hash "public" x) subject (privk ca))))
-    (non-orig (privk subject)))
-  (comment A diffie-hellman exchange which uses a certificate authority
-    to certify lonh-term NH values))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (comment Full initiator POV No need to make extra assumptions)
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint))))))
-  (label 200)
-  (unrealized (0 1) (0 3))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xi rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xi) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca)))))
-  (label 201)
-  (parent 200)
-  (unrealized (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a ca name) (xi rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test (displaced 2 1 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi) hint
-          (enc (hash "public" xi) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xi) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi) hint))
-          (enc "check" n (hash "key" (hash "share" xi xi) hint)))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca)))))
-  (label 202)
-  (parent 201)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr x))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" x) hint (enc (hash "public" x) b (privk ca))
-          (enc n (hash "key" (hash "share" xi x) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi x) hint))
-          (enc "check" n (hash "key" (hash "share" x xi) hint)))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" x) b (privk b)))
-      (send (enc (hash "public" x) b (privk ca)))))
-  (label 203)
-  (parent 201)
-  (unrealized (0 3) (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a ca name) (xi rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi xi) hint))
-    (enc n (hash "key" (hash "share" xi xi) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi) hint
-          (enc (hash "public" xi) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xi) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi) hint))
-          (enc "check" n (hash "key" (hash "share" xi xi) hint)))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi) hint))
-      (send (hash "key" (hash "share" xi xi) hint))))
-  (label 204)
-  (parent 202)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a ca name) (xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xr)
-  (operation encryption-test (displaced 3 0 resp 1)
-    (enc "reg" (hash "public" xr-0) b (privk b)) (2 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (send
-        (cat (hash "public" xr) (enc (hash "public" xr) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "key" (hash "share" xr xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xr) hint)))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca)))))
-  (label 205)
-  (parent 203)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 1 (b b) (xr xr))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 3)) ((3 0) (2 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (hash "public" xr) b (privk b)) (2 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))))
-  (label 206)
-  (parent 203)
-  (unrealized (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a ca name) (xi rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi) hint))
-  (deflistener (cat "key" (hash "share" xi xi) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 1) (2 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi xi) hint))
-    (hash "key" (hash "share" xi xi) hint) (2 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi) hint
-          (enc (hash "public" xi) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xi) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi) hint))
-          (enc "check" n (hash "key" (hash "share" xi xi) hint)))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi) hint))
-      (send (hash "key" (hash "share" xi xi) hint)))
-    ((recv (cat "key" (hash "share" xi xi) hint))
-      (send (cat "key" (hash "share" xi xi) hint))))
-  (label 207)
-  (parent 204)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a ca name) (xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xr xr) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 1) (0 3)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xr xr) hint))
-    (enc n (hash "key" (hash "share" xr xr) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (send
-        (cat (hash "public" xr) (enc (hash "public" xr) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "key" (hash "share" xr xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xr) hint)))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr xr) hint))
-      (send (hash "key" (hash "share" xr xr) hint))))
-  (label 208)
-  (parent 205)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a ca a-0 b ca-0 name) (xi xr rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))
-  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 3) (0 3)))
-  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))
-  (uniq-gen xi xr)
-  (operation encryption-test (displaced 3 4 resp 4)
-    (enc n
-      (hash "key" (hash "share" xi xr)
-        (hash "hint" (hash "share" xr xi)))) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca-0)))
-      (recv
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a-0 (privk ca-0))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))))
-  (label 209)
-  (parent 206)
-  (unrealized (3 1) (3 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 1 (b b) (xr xr))
-  (deflistener (hash "key" (hash "share" xi xr) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 3)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi xr) hint))
-    (enc n (hash "key" (hash "share" xi xr) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b))))
-    ((recv (hash "key" (hash "share" xi xr) hint))
-      (send (hash "key" (hash "share" xi xr) hint))))
-  (label 210)
-  (parent 206)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a ca name) (xi rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi) hint))
-  (deflistener (cat "key" (hash "share" xi xi) hint))
-  (deflistener (cat "share" xi xi))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 1) (2 0)) ((4 1) (3 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xi)
-  (operation encryption-test (added-listener (cat "share" xi xi))
-    (hash "share" xi xi) (3 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi) hint
-          (enc (hash "public" xi) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xi) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi) hint))
-          (enc "check" n (hash "key" (hash "share" xi xi) hint)))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi) hint))
-      (send (hash "key" (hash "share" xi xi) hint)))
-    ((recv (cat "key" (hash "share" xi xi) hint))
-      (send (cat "key" (hash "share" xi xi) hint)))
-    ((recv (cat "share" xi xi)) (send (cat "share" xi xi))))
-  (label 211)
-  (parent 207)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a ca name) (xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xr xr) hint))
-  (deflistener (cat "key" (hash "share" xr xr) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xr xr) hint))
-    (hash "key" (hash "share" xr xr) hint) (3 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (send
-        (cat (hash "public" xr) (enc (hash "public" xr) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "key" (hash "share" xr xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xr) hint)))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr xr) hint))
-      (send (hash "key" (hash "share" xr xr) hint)))
-    ((recv (cat "key" (hash "share" xr xr) hint))
-      (send (cat "key" (hash "share" xr xr) hint))))
-  (label 212)
-  (parent 208)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a ca a-0 b name) (xi xr rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (xr xr) (xi xi))
-  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (3 1))
-    ((3 0) (2 0)) ((3 3) (0 3)))
-  (non-orig (privk a) (privk ca) (privk b))
-  (uniq-gen xi xr)
-  (operation encryption-test (displaced 4 2 ca 2)
-    (enc (hash "public" xr) b (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a-0 (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))))
-  (label 213)
-  (parent 209)
-  (unrealized (3 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a ca a-0 b ca-0 name) (xi xr rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (3 2)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))
-  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))
-  (uniq-gen xi xr)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xr) b (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca-0)))
-      (recv
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a-0 (privk ca-0))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0)))))
-  (label 214)
-  (parent 209)
-  (unrealized (3 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 1 (b b) (xr xr))
-  (deflistener (hash "key" (hash "share" xi xr) hint))
-  (deflistener (cat "key" (hash "share" xi xr) hint))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 3)) ((5 1) (4 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi xr) hint))
-    (hash "key" (hash "share" xi xr) hint) (4 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b))))
-    ((recv (hash "key" (hash "share" xi xr) hint))
-      (send (hash "key" (hash "share" xi xr) hint)))
-    ((recv (cat "key" (hash "share" xi xr) hint))
-      (send (cat "key" (hash "share" xi xr) hint))))
-  (label 215)
-  (parent 210)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a ca name) (xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xr xr) hint))
-  (deflistener (cat "key" (hash "share" xr xr) hint))
-  (deflistener (cat "share" xr xr))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))
-    ((2 1) (0 3)) ((3 1) (0 3)) ((4 1) (3 0)) ((5 1) (4 0)))
-  (non-orig (privk a) (privk ca))
-  (uniq-gen xr)
-  (operation encryption-test (added-listener (cat "share" xr xr))
-    (hash "share" xr xr) (4 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (send
-        (cat (hash "public" xr) (enc (hash "public" xr) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) a (privk ca))
-          (enc n (hash "key" (hash "share" xr xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xr) hint)))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr xr) hint))
-      (send (hash "key" (hash "share" xr xr) hint)))
-    ((recv (cat "key" (hash "share" xr xr) hint))
-      (send (cat "key" (hash "share" xr xr) hint)))
-    ((recv (cat "share" xr xr)) (send (cat "share" xr xr))))
-  (label 216)
-  (parent 212)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a ca b name) (xr xi rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (3 1))
-    ((3 0) (2 0)) ((3 3) (0 3)))
-  (non-orig (privk a) (privk ca) (privk b))
-  (uniq-gen xr xi)
-  (operation encryption-test (displaced 4 1 ca 2)
-    (enc (hash "public" xi) a-0 (privk ca)) (3 2))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))))
-  (label 217)
-  (parent 213)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((xi xi) (xr xr) (a a) (b b) (ca ca) (n n)
-        (hint (hash "hint" (hash "share" xr xi))))))
-  (origs))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a ca a-0 b name) (xr xi rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a-0) (ca ca) (x xi))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))
-    ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk a-0) (privk b))
-  (uniq-gen xr xi)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xi) a-0 (privk ca)) (3 2))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a-0 (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a-0 (privk a-0)))
-      (send (enc (hash "public" xi) a-0 (privk ca)))))
-  (label 218)
-  (parent 213)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a ca b name) (xr xi rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 2)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1)))
-  (non-orig (privk a) (privk ca) (privk b))
-  (uniq-gen xr xi)
-  (operation encryption-test (displaced 5 1 ca 2)
-    (enc (hash "public" xi) a-0 (privk ca-0)) (3 2))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca)))))
-  (label 219)
-  (parent 214)
-  (seen 217)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a ca a-0 b ca-0 name) (xr xi rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a-0) (b b) (ca ca-0) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a-0) (ca ca-0) (x xi))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))
-    ((5 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk a-0) (privk b) (privk ca-0))
-  (uniq-gen xr xi)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xi) a-0 (privk ca-0)) (3 2))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca-0)))
-      (recv
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a-0 (privk ca-0))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi) a-0 (privk a-0)))
-      (send (enc (hash "public" xi) a-0 (privk ca-0)))))
-  (label 220)
-  (parent 214)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 1 (b b) (xr xr))
-  (deflistener (hash "key" (hash "share" xi xr) hint))
-  (deflistener (cat "key" (hash "share" xi xr) hint))
-  (deflistener (cat "share" xi xr))
-  (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (6 0)) ((4 1) (0 3)) ((5 1) (4 0))
-    ((6 1) (5 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (operation encryption-test (added-listener (cat "share" xi xr))
-    (hash "share" xi xr) (5 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b))))
-    ((recv (hash "key" (hash "share" xi xr) hint))
-      (send (hash "key" (hash "share" xi xr) hint)))
-    ((recv (cat "key" (hash "share" xi xr) hint))
-      (send (cat "key" (hash "share" xi xr) hint)))
-    ((recv (cat "share" xi xr)) (send (cat "share" xi xr))))
-  (label 221)
-  (parent 215)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a ca b name) (xr xr-0 rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b b) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (3 1))
-    ((3 0) (2 0)) ((3 3) (0 3)) ((4 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk b))
-  (uniq-gen xr xr-0)
-  (operation encryption-test (displaced 5 0 resp 1)
-    (enc "reg" (hash "public" xr-0) a-0 (privk a-0)) (4 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca)))))
-  (label 222)
-  (parent 218)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((xi xr-0) (xr xr) (a a) (b b) (ca ca) (n n)
-        (hint (hash "hint" (hash "share" xr xr-0))))))
-  (origs))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a ca b ca-0 name) (xr xr-0 rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b b) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca-0) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 3))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 3) (0 3)) ((4 1) (3 1))
-    ((5 1) (3 2)))
-  (non-orig (privk a) (privk ca) (privk b) (privk ca-0))
-  (uniq-gen xr xr-0)
-  (operation encryption-test (displaced 6 0 resp 1)
-    (enc "reg" (hash "public" xr-0) a-0 (privk a-0)) (5 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca-0)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca-0))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca-0)))))
-  (label 223)
-  (parent 220)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((xi xr-0) (xr xr) (a a) (b b) (ca ca) (n n)
-        (hint (hash "hint" (hash "share" xr xr-0))))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol nhca-nohint diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))
-    (trace (send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    (non-orig (privk a) (privk ca))
-    (uniq-gen xi))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (a b ca name) (n text))
-    (trace (send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    (non-orig (privk b) (privk ca))
-    (uniq-gen xr))
-  (defrole ca
-    (vars (subject ca name) (x expt))
-    (trace (recv (enc "reg" (hash "public" x) subject (privk subject)))
-      (send (enc (hash "public" x) subject (privk ca))))
-    (non-orig (privk subject)))
-  (comment A diffie-hellman exchange which uses a certificate authority
-    to certify lonh-term NH values))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a b ca name) (xr rndx) (xi expt))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (comment Full responder point of view with freshly chosen n)
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi)))))))
-  (label 224)
-  (unrealized (0 1) (0 2) (0 4))
-  (origs (n (0 3)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a b ca name) (xi expt) (xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xr) b (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca)))))
-  (label 225)
-  (parent 224)
-  (unrealized (0 2) (0 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 2 1 ca 2)
-    (enc (hash "public" x) a (privk ca)) (0 2))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))
-          (enc n
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr)
-            (hash "hint" (hash "share" xr xr))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca)))))
-  (label 226)
-  (parent 225)
-  (unrealized (0 4))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a b ca name) (xr rndx) (x expt))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi x))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" x) a (privk ca)) (0 2))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" x) (enc (hash "public" x) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr x))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr x)
-              (hash "hint" (hash "share" xr x))))
-          (enc n
-            (hash "key" (hash "share" x xr)
-              (hash "hint" (hash "share" xr x))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr x)
-            (hash "hint" (hash "share" xr x))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" x) a (privk a)))
-      (send (enc (hash "public" x) a (privk ca)))))
-  (label 227)
-  (parent 225)
-  (unrealized (0 4) (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" xr xr)
-      (hash "hint" (hash "share" xr xr))))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 4)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" xr xr)
-        (hash "hint" (hash "share" xr xr))))
-    (enc "check" n
-      (hash "key" (hash "share" xr xr)
-        (hash "hint" (hash "share" xr xr)))) (0 4))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))
-          (enc n
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr)
-            (hash "hint" (hash "share" xr xr))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr xr)
-         (hash "hint" (hash "share" xr xr))))
-      (send
-        (hash "key" (hash "share" xr xr)
-          (hash "hint" (hash "share" xr xr))))))
-  (label 228)
-  (parent 226)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 2)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 3 0 resp 1)
-    (enc "reg" (hash "public" xr-0) a (privk a)) (2 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))
-          (enc n
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr)
-            (hash "hint" (hash "share" xr xr))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca)))))
-  (label 229)
-  (parent 227)
-  (unrealized (0 4))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a b ca name) (xr xr-0 rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand resp 1 (b a) (xr xr-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (0 2)) ((3 0) (2 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (hash "public" xr-0) a (privk a)) (2 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))))
-  (label 230)
-  (parent 227)
-  (unrealized (0 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" xr xr)
-      (hash "hint" (hash "share" xr xr))))
-  (deflistener
-    (cat "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr))))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 4))
-    ((3 1) (2 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" xr xr)
-        (hash "hint" (hash "share" xr xr))))
-    (hash "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr)))
-    (2 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))
-          (enc n
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr)
-            (hash "hint" (hash "share" xr xr))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr xr)
-         (hash "hint" (hash "share" xr xr))))
-      (send
-        (hash "key" (hash "share" xr xr)
-          (hash "hint" (hash "share" xr xr)))))
-    ((recv
-       (cat "key" (hash "share" xr xr)
-         (hash "hint" (hash "share" xr xr))))
-      (send
-        (cat "key" (hash "share" xr xr)
-          (hash "hint" (hash "share" xr xr))))))
-  (label 231)
-  (parent 228)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" xr xr)
-      (hash "hint" (hash "share" xr xr))))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 1) (0 4)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" xr xr)
-        (hash "hint" (hash "share" xr xr))))
-    (enc "check" n
-      (hash "key" (hash "share" xr xr)
-        (hash "hint" (hash "share" xr xr)))) (0 4))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))
-          (enc n
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr)
-            (hash "hint" (hash "share" xr xr))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr xr)
-         (hash "hint" (hash "share" xr xr))))
-      (send
-        (hash "key" (hash "share" xr xr)
-          (hash "hint" (hash "share" xr xr))))))
-  (label 232)
-  (parent 229)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca a b-0 ca-0 name) (xr xi rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 4) (0 4)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi)
-  (uniq-orig n)
-  (operation encryption-test (displaced 3 4 init 5)
-    (enc "check" n
-      (hash "key" (hash "share" xr xi)
-        (hash "hint" (hash "share" xr xi)))) (0 4))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b-0 (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))))))
-  (label 233)
-  (parent 230)
-  (unrealized (3 1) (3 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a b ca name) (xr xr-0 rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand resp 1 (b a) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" xr xr-0)
-      (hash "hint" (hash "share" xr xr-0))))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((4 1) (0 4)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" xr xr-0)
-        (hash "hint" (hash "share" xr xr-0))))
-    (enc "check" n
-      (hash "key" (hash "share" xr xr-0)
-        (hash "hint" (hash "share" xr xr-0)))) (0 4))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" xr xr-0)
-         (hash "hint" (hash "share" xr xr-0))))
-      (send
-        (hash "key" (hash "share" xr xr-0)
-          (hash "hint" (hash "share" xr xr-0))))))
-  (label 234)
-  (parent 230)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" xr xr)
-      (hash "hint" (hash "share" xr xr))))
-  (deflistener
-    (cat "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr))))
-  (deflistener (cat "share" xr xr))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (0 4))
-    ((3 1) (2 0)) ((4 1) (3 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr xr))
-    (hash "share" xr xr) (3 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))
-          (enc n
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr)
-            (hash "hint" (hash "share" xr xr))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr xr)
-         (hash "hint" (hash "share" xr xr))))
-      (send
-        (hash "key" (hash "share" xr xr)
-          (hash "hint" (hash "share" xr xr)))))
-    ((recv
-       (cat "key" (hash "share" xr xr)
-         (hash "hint" (hash "share" xr xr))))
-      (send
-        (cat "key" (hash "share" xr xr)
-          (hash "hint" (hash "share" xr xr)))))
-    ((recv (cat "share" xr xr)) (send (cat "share" xr xr))))
-  (label 235)
-  (parent 231)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" xr xr)
-      (hash "hint" (hash "share" xr xr))))
-  (deflistener
-    (cat "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr))))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" xr xr)
-        (hash "hint" (hash "share" xr xr))))
-    (hash "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr)))
-    (3 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))
-          (enc n
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr)
-            (hash "hint" (hash "share" xr xr))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr xr)
-         (hash "hint" (hash "share" xr xr))))
-      (send
-        (hash "key" (hash "share" xr xr)
-          (hash "hint" (hash "share" xr xr)))))
-    ((recv
-       (cat "key" (hash "share" xr xr)
-         (hash "hint" (hash "share" xr xr))))
-      (send
-        (cat "key" (hash "share" xr xr)
-          (hash "hint" (hash "share" xr xr))))))
-  (label 236)
-  (parent 232)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca a b-0 name) (xr xi rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b-0) (ca ca) (xi xi) (xr xr))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xr xi)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 2 ca 2)
-    (enc (hash "public" xi) a (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b-0 (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))))))
-  (label 237)
-  (parent 233)
-  (unrealized (3 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca a b-0 ca-0 name) (xr xi rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xi) a (privk ca-0)) (3 1))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b-0 (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0)))))
-  (label 238)
-  (parent 233)
-  (unrealized (3 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a b ca name) (xr xr-0 rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand resp 1 (b a) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" xr xr-0)
-      (hash "hint" (hash "share" xr xr-0))))
-  (deflistener
-    (cat "key" (hash "share" xr xr-0)
-      (hash "hint" (hash "share" xr xr-0))))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (5 0)) ((4 1) (0 4)) ((5 1) (4 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" xr xr-0)
-        (hash "hint" (hash "share" xr xr-0))))
-    (hash "key" (hash "share" xr xr-0)
-      (hash "hint" (hash "share" xr xr-0))) (4 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" xr xr-0)
-         (hash "hint" (hash "share" xr xr-0))))
-      (send
-        (hash "key" (hash "share" xr xr-0)
-          (hash "hint" (hash "share" xr xr-0)))))
-    ((recv
-       (cat "key" (hash "share" xr xr-0)
-         (hash "hint" (hash "share" xr xr-0))))
-      (send
-        (cat "key" (hash "share" xr xr-0)
-          (hash "hint" (hash "share" xr xr-0))))))
-  (label 239)
-  (parent 234)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca name) (xr rndx))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr) (xi xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener
-    (hash "key" (hash "share" xr xr)
-      (hash "hint" (hash "share" xr xr))))
-  (deflistener
-    (cat "key" (hash "share" xr xr) (hash "hint" (hash "share" xr xr))))
-  (deflistener (cat "share" xr xr))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 1) (0 4)) ((4 1) (3 0)) ((5 1) (4 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xr)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr xr))
-    (hash "share" xr xr) (4 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr) (enc (hash "public" xr) b (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))
-          (enc n
-            (hash "key" (hash "share" xr xr)
-              (hash "hint" (hash "share" xr xr))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr)
-            (hash "hint" (hash "share" xr xr))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr xr)
-         (hash "hint" (hash "share" xr xr))))
-      (send
-        (hash "key" (hash "share" xr xr)
-          (hash "hint" (hash "share" xr xr)))))
-    ((recv
-       (cat "key" (hash "share" xr xr)
-         (hash "hint" (hash "share" xr xr))))
-      (send
-        (cat "key" (hash "share" xr xr)
-          (hash "hint" (hash "share" xr xr)))))
-    ((recv (cat "share" xr xr)) (send (cat "share" xr xr))))
-  (label 240)
-  (parent 236)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca a name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 1 ca 2)
-    (enc (hash "public" xr) b-0 (privk ca)) (3 3))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))))))
-  (label 241)
-  (parent 237)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))
-  (origs (n (0 3))))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca a b-0 name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b-0) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b-0) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))
-    ((4 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk b-0))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xr) b-0 (privk ca)) (3 3))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b-0 (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b-0 (privk b-0)))
-      (send (enc (hash "public" xr) b-0 (privk ca)))))
-  (label 242)
-  (parent 237)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca a name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (1 0)) ((0 3) (3 3)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4)) ((4 1) (3 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 5 1 ca 2)
-    (enc (hash "public" xr) b-0 (privk ca-0)) (3 3))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca)))))
-  (label 243)
-  (parent 238)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))
-  (origs (n (0 3))))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca a b-0 ca-0 name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b-0) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b-0) (ca ca-0) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))
-    ((4 1) (3 1)) ((5 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xr) b-0 (privk ca-0)) (3 3))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b-0 (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b-0 (privk b-0)))
-      (send (enc (hash "public" xr) b-0 (privk ca-0)))))
-  (label 244)
-  (parent 238)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a b ca name) (xr xr-0 rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand resp 1 (b a) (xr xr-0))
-  (deflistener
-    (hash "key" (hash "share" xr xr-0)
-      (hash "hint" (hash "share" xr xr-0))))
-  (deflistener
-    (cat "key" (hash "share" xr xr-0)
-      (hash "hint" (hash "share" xr xr-0))))
-  (deflistener (cat "share" xr xr-0))
-  (precedes ((0 0) (1 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 2))
-    ((3 0) (2 0)) ((3 0) (6 0)) ((4 1) (0 4)) ((5 1) (4 0))
-    ((6 1) (5 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr xr-0))
-    (hash "share" xr xr-0) (5 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" xr xr-0)
-         (hash "hint" (hash "share" xr xr-0))))
-      (send
-        (hash "key" (hash "share" xr xr-0)
-          (hash "hint" (hash "share" xr xr-0)))))
-    ((recv
-       (cat "key" (hash "share" xr xr-0)
-         (hash "hint" (hash "share" xr xr-0))))
-      (send
-        (cat "key" (hash "share" xr xr-0)
-          (hash "hint" (hash "share" xr xr-0)))))
-    ((recv (cat "share" xr xr-0)) (send (cat "share" xr xr-0))))
-  (label 245)
-  (parent 239)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca a name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (4 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((2 1) (3 1)) ((3 0) (2 0)) ((3 4) (0 4))
-    ((4 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 5 0 resp 1)
-    (enc "reg" (hash "public" xr) b-0 (privk b-0)) (4 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca)))))
-  (label 246)
-  (parent 242)
-  (seen 241)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (b ca a ca-0 name) (xi xr rndx))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (precedes ((0 0) (1 0)) ((0 0) (5 0)) ((0 3) (3 3)) ((1 1) (0 1))
-    ((2 1) (0 2)) ((3 0) (2 0)) ((3 0) (4 0)) ((3 4) (0 4))
-    ((4 1) (3 1)) ((5 1) (3 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 0 resp 1)
-    (enc "reg" (hash "public" xr) b-0 (privk b-0)) (5 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0)))))
-  (label 247)
-  (parent 244)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n n) (xr xr) (xi xi) (a a) (b b) (ca ca))))
-  (origs (n (0 3))))
-
-(comment "Nothing left to do")
-
-(defprotocol nhca-nohint diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (a b ca name) (n text) (hint mesg))
-    (trace (send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    (non-orig (privk a) (privk ca))
-    (uniq-gen xi))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (a b ca name) (n text))
-    (trace (send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    (non-orig (privk b) (privk ca))
-    (uniq-gen xr))
-  (defrole ca
-    (vars (subject ca name) (x expt))
-    (trace (recv (enc "reg" (hash "public" x) subject (privk subject)))
-      (send (enc (hash "public" x) subject (privk ca))))
-    (non-orig (privk subject)))
-  (comment A diffie-hellman exchange which uses a certificate authority
-    to certify lonh-term NH values))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx)
-    (xr-0 xi-0 expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi-0))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (comment point of view in which init and resp each complete and they
-    agree on the relevant parameters)
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0)))))))
-  (label 248)
-  (unrealized (0 1) (0 3) (1 1) (1 2) (1 4))
-  (preskeleton)
-  (origs (n (1 3)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi xr rndx)
-    (xr-0 xi-0 expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi-0))
-  (precedes ((1 3) (0 3)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (comment point of view in which init and resp each complete and they
-    agree on the relevant parameters)
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0)))))))
-  (label 249)
-  (parent 248)
-  (unrealized (0 1) (0 3) (1 1) (1 2) (1 4))
-  (origs (n (1 3)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr xi-0 expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xr-0) b (privk ca)) (1 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi-0)
-            (hash "hint" (hash "share" xr-0 xi-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca)))))
-  (label 250)
-  (parent 249)
-  (unrealized (0 1) (0 3) (1 2) (1 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 3 2 ca 2)
-    (enc (hash "public" x) a (privk ca)) (1 2))
-  (traces
-    ((send (enc "reg" (hash "public" xi) b (privk b)))
-      (recv (enc (hash "public" xi) b (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) b (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-0)
-            (hash "hint" (hash "share" xr-0 xr-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca)))))
-  (label 251)
-  (parent 250)
-  (unrealized (0 1) (0 3) (1 4))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx) (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi x))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x x))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" x) a (privk ca)) (1 2))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" x) (enc (hash "public" x) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 x))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 x)
-              (hash "hint" (hash "share" xr-0 x))))
-          (enc n
-            (hash "key" (hash "share" x xr-0)
-              (hash "hint" (hash "share" xr-0 x))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 x)
-            (hash "hint" (hash "share" xr-0 x))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" x) a (privk a)))
-      (send (enc (hash "public" x) a (privk ca)))))
-  (label 252)
-  (parent 250)
-  (unrealized (0 1) (0 3) (1 4) (3 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 4)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" xr-0 xr-0)
-        (hash "hint" (hash "share" xr-0 xr-0))))
-    (enc "check" n
-      (hash "key" (hash "share" xr-0 xr-0)
-        (hash "hint" (hash "share" xr-0 xr-0)))) (1 4))
-  (traces
-    ((send (enc "reg" (hash "public" xi) b (privk b)))
-      (recv (enc (hash "public" xi) b (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) b (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-0)
-            (hash "hint" (hash "share" xr-0 xr-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-0)
-         (hash "hint" (hash "share" xr-0 xr-0))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-0)
-          (hash "hint" (hash "share" xr-0 xr-0))))))
-  (label 253)
-  (parent 251)
-  (unrealized (0 1) (0 3) (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 0 resp 1)
-    (enc "reg" (hash "public" xr-2) a (privk a)) (3 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-1) a (privk a)))
-      (recv (enc (hash "public" xr-1) a (privk ca)))
-      (send
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xr-1 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-1 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xr-1) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-1)
-              (hash "hint" (hash "share" xr-0 xr-1))))
-          (enc n
-            (hash "key" (hash "share" xr-1 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-1))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-1)
-            (hash "hint" (hash "share" xr-0 xr-1))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))
-      (send (enc (hash "public" xr-1) a (privk ca)))))
-  (label 254)
-  (parent 252)
-  (unrealized (0 1) (0 3) (1 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 1 resp 1)
-    (enc "reg" (hash "public" xr-1) a (privk a)) (3 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) b (privk b)))
-      (recv (enc (hash "public" xi) b (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) b (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-0)
-            (hash "hint" (hash "share" xr-0 xr-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca)))))
-  (label 255)
-  (parent 252)
-  (unrealized (0 1) (0 3) (1 4))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)
-    (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (defstrand resp 1 (b a) (xr xr-1))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (hash "public" xr-1) a (privk a)) (3 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-1)
-              (hash "hint" (hash "share" xr-0 xr-1))))
-          (enc n
-            (hash "key" (hash "share" xr-1 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-1))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-1)
-            (hash "hint" (hash "share" xr-0 xr-1))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))
-      (send (enc (hash "public" xr-1) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-1) a (privk a)))))
-  (label 256)
-  (parent 252)
-  (unrealized (0 1) (0 3) (1 4))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))))
-  (deflistener
-    (cat "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))))
-  (precedes ((1 0) (2 0)) ((1 0) (4 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 4)) ((4 1) (3 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" xr-0 xr-0)
-        (hash "hint" (hash "share" xr-0 xr-0))))
-    (hash "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))) (3 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) b (privk b)))
-      (recv (enc (hash "public" xi) b (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) b (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-0)
-            (hash "hint" (hash "share" xr-0 xr-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-0)
-         (hash "hint" (hash "share" xr-0 xr-0))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-0)
-          (hash "hint" (hash "share" xr-0 xr-0)))))
-    ((recv
-       (cat "key" (hash "share" xr-0 xr-0)
-         (hash "hint" (hash "share" xr-0 xr-0))))
-      (send
-        (cat "key" (hash "share" xr-0 xr-0)
-          (hash "hint" (hash "share" xr-0 xr-0))))))
-  (label 257)
-  (parent 253)
-  (unrealized (0 1) (0 3) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a b ca name) (xi xr rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (1 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 0 init 5)
-    (enc "check" n
-      (hash "key" (hash "share" xr-0 xi)
-        (hash "hint" (hash "share" xr-0 xi)))) (1 4))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca)))))
-  (label 258)
-  (parent 254)
-  (unrealized (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))))
-  (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((1 0) (2 0)) ((1 0) (4 0))
-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" xr-0 xr-1)
-        (hash "hint" (hash "share" xr-0 xr-1))))
-    (enc "check" n
-      (hash "key" (hash "share" xr-0 xr-1)
-        (hash "hint" (hash "share" xr-0 xr-1)))) (1 4))
-  (traces
-    ((send (enc "reg" (hash "public" xr-1) a (privk a)))
-      (recv (enc (hash "public" xr-1) a (privk ca)))
-      (send
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xr-1 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-1 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xr-1) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-1)
-              (hash "hint" (hash "share" xr-0 xr-1))))
-          (enc n
-            (hash "key" (hash "share" xr-1 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-1))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-1)
-            (hash "hint" (hash "share" xr-0 xr-1))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))
-      (send (enc (hash "public" xr-1) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-1)
-         (hash "hint" (hash "share" xr-0 xr-1))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-1)
-          (hash "hint" (hash "share" xr-0 xr-1))))))
-  (label 259)
-  (parent 254)
-  (unrealized (0 1) (0 3) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (4 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" xr-0 xr-0)
-        (hash "hint" (hash "share" xr-0 xr-0))))
-    (enc "check" n
-      (hash "key" (hash "share" xr-0 xr-0)
-        (hash "hint" (hash "share" xr-0 xr-0)))) (1 4))
-  (traces
-    ((send (enc "reg" (hash "public" xi) b (privk b)))
-      (recv (enc (hash "public" xi) b (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) b (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-0)
-            (hash "hint" (hash "share" xr-0 xr-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-0)
-         (hash "hint" (hash "share" xr-0 xr-0))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-0)
-          (hash "hint" (hash "share" xr-0 xr-0))))))
-  (label 260)
-  (parent 255)
-  (unrealized (0 1) (0 3) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)
-    (xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)
-    (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 4) (1 4)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 5 init 5)
-    (enc "check" n
-      (hash "key" (hash "share" xr-0 xi-0)
-        (hash "hint" (hash "share" xr-0 xi-0)))) (1 4))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi-0)
-            (hash "hint" (hash "share" xr-0 xi-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b-0 (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))))
-  (label 261)
-  (parent 256)
-  (unrealized (0 1) (0 3) (4 1) (4 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)
-    (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (defstrand resp 1 (b a) (xr xr-1))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))))
-  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((5 1) (1 4)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" xr-0 xr-1)
-        (hash "hint" (hash "share" xr-0 xr-1))))
-    (enc "check" n
-      (hash "key" (hash "share" xr-0 xr-1)
-        (hash "hint" (hash "share" xr-0 xr-1)))) (1 4))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-1)
-              (hash "hint" (hash "share" xr-0 xr-1))))
-          (enc n
-            (hash "key" (hash "share" xr-1 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-1))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-1)
-            (hash "hint" (hash "share" xr-0 xr-1))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))
-      (send (enc (hash "public" xr-1) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-1) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-1)
-         (hash "hint" (hash "share" xr-0 xr-1))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-1)
-          (hash "hint" (hash "share" xr-0 xr-1))))))
-  (label 262)
-  (parent 256)
-  (unrealized (0 1) (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))))
-  (deflistener
-    (cat "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))))
-  (deflistener (cat "share" xr-0 xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 4)) ((4 1) (3 0)) ((5 1) (4 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))
-    (hash "share" xr-0 xr-0) (4 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) b (privk b)))
-      (recv (enc (hash "public" xi) b (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) b (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-0)
-            (hash "hint" (hash "share" xr-0 xr-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-0)
-         (hash "hint" (hash "share" xr-0 xr-0))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-0)
-          (hash "hint" (hash "share" xr-0 xr-0)))))
-    ((recv
-       (cat "key" (hash "share" xr-0 xr-0)
-         (hash "hint" (hash "share" xr-0 xr-0))))
-      (send
-        (cat "key" (hash "share" xr-0 xr-0)
-          (hash "hint" (hash "share" xr-0 xr-0)))))
-    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))
-  (label 263)
-  (parent 257)
-  (unrealized (0 1) (0 3) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a b ca name) (xr xi rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (3 0)) ((0 4) (1 4)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (0 1)) ((3 1) (1 2)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xi)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 3 ca 2)
-    (enc (hash "public" xi) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca)))))
-  (label 264)
-  (parent 258)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((a a) (b b) (ca ca) (xi xi) (xr xr) (n n) (xr-0 xr)
-        (hint (hash "hint" (hash "share" xr xi))) (xi-0 xi))))
-  (origs (n (1 3))))
-
-(defskeleton nhca-nohint
-  (vars (n text) (a b ca name) (xr xi rndx))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (3 0)) ((0 0) (4 0)) ((0 4) (1 4)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (0 1)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr xi)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xi) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca)))))
-  (label 265)
-  (parent 258)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((a a) (b b) (ca ca) (xi xi) (xr xr) (n n) (xr-0 xr)
-        (hint (hash "hint" (hash "share" xr xi))) (xi-0 xi))))
-  (origs (n (1 3))))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))))
-  (deflistener
-    (cat "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))))
-  (precedes ((0 0) (3 0)) ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))
-    ((5 1) (4 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" xr-0 xr-1)
-        (hash "hint" (hash "share" xr-0 xr-1))))
-    (hash "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))) (4 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-1) a (privk a)))
-      (recv (enc (hash "public" xr-1) a (privk ca)))
-      (send
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xr-1 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-1 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xr-1) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-1)
-              (hash "hint" (hash "share" xr-0 xr-1))))
-          (enc n
-            (hash "key" (hash "share" xr-1 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-1))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-1)
-            (hash "hint" (hash "share" xr-0 xr-1))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))
-      (send (enc (hash "public" xr-1) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-1)
-         (hash "hint" (hash "share" xr-0 xr-1))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-1)
-          (hash "hint" (hash "share" xr-0 xr-1)))))
-    ((recv
-       (cat "key" (hash "share" xr-0 xr-1)
-         (hash "hint" (hash "share" xr-0 xr-1))))
-      (send
-        (cat "key" (hash "share" xr-0 xr-1)
-          (hash "hint" (hash "share" xr-0 xr-1))))))
-  (label 266)
-  (parent 259)
-  (unrealized (0 1) (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))))
-  (deflistener
-    (cat "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)) ((5 1) (4 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" xr-0 xr-0)
-        (hash "hint" (hash "share" xr-0 xr-0))))
-    (hash "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))) (4 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) b (privk b)))
-      (recv (enc (hash "public" xi) b (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) b (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-0)
-            (hash "hint" (hash "share" xr-0 xr-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-0)
-         (hash "hint" (hash "share" xr-0 xr-0))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-0)
-          (hash "hint" (hash "share" xr-0 xr-0)))))
-    ((recv
-       (cat "key" (hash "share" xr-0 xr-0)
-         (hash "hint" (hash "share" xr-0 xr-0))))
-      (send
-        (cat "key" (hash "share" xr-0 xr-0)
-          (hash "hint" (hash "share" xr-0 xr-0))))))
-  (label 267)
-  (parent 260)
-  (unrealized (0 1) (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a b-0 name) (xi rndx) (xr expt)
-    (xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)
-    (a a) (b b-0) (ca ca) (xi xi-0) (xr xr-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 5 3 ca 2)
-    (enc (hash "public" xi-0) a (privk ca-0)) (4 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi-0)
-            (hash "hint" (hash "share" xr-0 xi-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b-0 (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))))
-  (label 268)
-  (parent 261)
-  (unrealized (0 1) (0 3) (4 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)
-    (xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)
-    (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xi-0) a (privk ca-0)) (4 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi-0)
-            (hash "hint" (hash "share" xr-0 xi-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b-0 (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca-0)))))
-  (label 269)
-  (parent 261)
-  (unrealized (0 1) (0 3) (4 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)
-    (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (defstrand resp 1 (b a) (xr xr-1))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))))
-  (deflistener
-    (cat "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))))
-  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (6 0)) ((5 1) (1 4))
-    ((6 1) (5 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" xr-0 xr-1)
-        (hash "hint" (hash "share" xr-0 xr-1))))
-    (hash "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))) (5 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-1)
-              (hash "hint" (hash "share" xr-0 xr-1))))
-          (enc n
-            (hash "key" (hash "share" xr-1 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-1))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-1)
-            (hash "hint" (hash "share" xr-0 xr-1))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))
-      (send (enc (hash "public" xr-1) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-1) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-1)
-         (hash "hint" (hash "share" xr-0 xr-1))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-1)
-          (hash "hint" (hash "share" xr-0 xr-1)))))
-    ((recv
-       (cat "key" (hash "share" xr-0 xr-1)
-         (hash "hint" (hash "share" xr-0 xr-1))))
-      (send
-        (cat "key" (hash "share" xr-0 xr-1)
-          (hash "hint" (hash "share" xr-0 xr-1))))))
-  (label 270)
-  (parent 262)
-  (unrealized (0 1) (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xr expt) (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xr-1)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))))
-  (deflistener
-    (cat "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))))
-  (deflistener (cat "share" xr-0 xr-1))
-  (precedes ((0 0) (3 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4))
-    ((5 1) (4 0)) ((6 1) (5 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr-0 xr-1))
-    (hash "share" xr-0 xr-1) (5 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-1) a (privk a)))
-      (recv (enc (hash "public" xr-1) a (privk ca)))
-      (send
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xr-1 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-1 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xr-1) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-1)
-              (hash "hint" (hash "share" xr-0 xr-1))))
-          (enc n
-            (hash "key" (hash "share" xr-1 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-1))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-1)
-            (hash "hint" (hash "share" xr-0 xr-1))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))
-      (send (enc (hash "public" xr-1) a (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-1)
-         (hash "hint" (hash "share" xr-0 xr-1))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-1)
-          (hash "hint" (hash "share" xr-0 xr-1)))))
-    ((recv
-       (cat "key" (hash "share" xr-0 xr-1)
-         (hash "hint" (hash "share" xr-0 xr-1))))
-      (send
-        (cat "key" (hash "share" xr-0 xr-1)
-          (hash "hint" (hash "share" xr-0 xr-1)))))
-    ((recv (cat "share" xr-0 xr-1)) (send (cat "share" xr-0 xr-1))))
-  (label 271)
-  (parent 266)
-  (unrealized (0 1) (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca name) (xi rndx) (xr expt)
-    (xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a b) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a b) (b b) (ca ca) (xr xr-0) (xi xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))))
-  (deflistener
-    (cat "key" (hash "share" xr-0 xr-0)
-      (hash "hint" (hash "share" xr-0 xr-0))))
-  (deflistener (cat "share" xr-0 xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 1) (1 4)) ((5 1) (4 0))
-    ((6 1) (5 0)))
-  (non-orig (privk b) (privk ca))
-  (uniq-gen xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))
-    (hash "share" xr-0 xr-0) (5 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) b (privk b)))
-      (recv (enc (hash "public" xi) b (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) b (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) b (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-0)
-            (hash "hint" (hash "share" xr-0 xr-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-0)
-         (hash "hint" (hash "share" xr-0 xr-0))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-0)
-          (hash "hint" (hash "share" xr-0 xr-0)))))
-    ((recv
-       (cat "key" (hash "share" xr-0 xr-0)
-         (hash "hint" (hash "share" xr-0 xr-0))))
-      (send
-        (cat "key" (hash "share" xr-0 xr-0)
-          (hash "hint" (hash "share" xr-0 xr-0)))))
-    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))
-  (label 272)
-  (parent 267)
-  (unrealized (0 1) (0 3) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)
-    (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 5 2 ca 2)
-    (enc (hash "public" xr-0) b-0 (privk ca)) (4 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi-0)
-            (hash "hint" (hash "share" xr-0 xi-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))))
-  (label 273)
-  (parent 268)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a b-0 name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)
-    (a a) (b b-0) (ca ca) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject b-0) (ca ca) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (4 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk b-0))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xr-0) b-0 (privk ca)) (4 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi-0)
-            (hash "hint" (hash "share" xr-0 xi-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b-0 (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) b-0 (privk b-0)))
-      (send (enc (hash "public" xr-0) b-0 (privk ca)))))
-  (label 274)
-  (parent 268)
-  (unrealized (0 1) (0 3) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)
-    (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 2 ca 2)
-    (enc (hash "public" xr-0) b-0 (privk ca-0)) (4 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi-0)
-            (hash "hint" (hash "share" xr-0 xi-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 275)
-  (parent 269)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a b-0 ca-0 name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)
-    (a a) (b b-0) (ca ca-0) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject b-0) (ca ca-0) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk b-0) (privk ca-0))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xr-0) b-0 (privk ca-0)) (4 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi-0)
-            (hash "hint" (hash "share" xr-0 xi-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b-0 (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr-0) b-0 (privk b-0)))
-      (send (enc (hash "public" xr-0) b-0 (privk ca-0)))))
-  (label 276)
-  (parent 269)
-  (unrealized (0 1) (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (a b ca name) (xi rndx) (xr expt)
-    (xr-0 xr-1 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xr-1))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-1))
-  (defstrand resp 1 (b a) (xr xr-1))
-  (deflistener
-    (hash "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))))
-  (deflistener
-    (cat "key" (hash "share" xr-0 xr-1)
-      (hash "hint" (hash "share" xr-0 xr-1))))
-  (deflistener (cat "share" xr-0 xr-1))
-  (precedes ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (7 0)) ((5 1) (1 4))
-    ((6 1) (5 0)) ((7 1) (6 0)))
-  (non-orig (privk a) (privk b) (privk ca))
-  (uniq-gen xi xr-0 xr-1)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr-0 xr-1))
-    (hash "share" xr-0 xr-1) (6 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xr-1)
-          (enc (hash "public" xr-1) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xr-1))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr-1)
-              (hash "hint" (hash "share" xr-0 xr-1))))
-          (enc n
-            (hash "key" (hash "share" xr-1 xr-0)
-              (hash "hint" (hash "share" xr-0 xr-1))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xr-1)
-            (hash "hint" (hash "share" xr-0 xr-1))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-1) a (privk a)))
-      (send (enc (hash "public" xr-1) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-1) a (privk a))))
-    ((recv
-       (hash "key" (hash "share" xr-0 xr-1)
-         (hash "hint" (hash "share" xr-0 xr-1))))
-      (send
-        (hash "key" (hash "share" xr-0 xr-1)
-          (hash "hint" (hash "share" xr-0 xr-1)))))
-    ((recv
-       (cat "key" (hash "share" xr-0 xr-1)
-         (hash "hint" (hash "share" xr-0 xr-1))))
-      (send
-        (cat "key" (hash "share" xr-0 xr-1)
-          (hash "hint" (hash "share" xr-0 xr-1)))))
-    ((recv (cat "share" xr-0 xr-1)) (send (cat "share" xr-0 xr-1))))
-  (label 277)
-  (parent 270)
-  (unrealized (0 1) (0 3) (7 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xr expt)
-    (xi xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xi-0) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xi)
-              (hash "hint" (hash "share" xr-0 xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi)
-            (hash "hint" (hash "share" xr-0 xi))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi)
-              (hash "hint" (hash "share" xr-0 xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 278)
-  (parent 273)
-  (unrealized (0 3))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)
-    (a a) (b b) (ca ca) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (4 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 1 resp 1)
-    (enc "reg" (hash "public" xr-0) b-0 (privk b-0)) (5 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi-0)
-            (hash "hint" (hash "share" xr-0 xi-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca)))))
-  (label 279)
-  (parent 274)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xr expt)
-    (xi xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xi-0) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xi)
-              (hash "hint" (hash "share" xr-0 xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi)
-            (hash "hint" (hash "share" xr-0 xi))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi)
-              (hash "hint" (hash "share" xr-0 xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 280)
-  (parent 275)
-  (unrealized (0 3))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi rndx) (xr expt)
-    (xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi-0))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi-0) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr-0))
-  (precedes ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 1 resp 1)
-    (enc "reg" (hash "public" xr-0) b-0 (privk b-0)) (6 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi-0)
-            (hash "hint" (hash "share" xr-0 xi-0))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi-0))
-          (enc (hash "public" xr-0) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr-0)
-              (hash "hint" (hash "share" xr-0 xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi-0)
-              (hash "hint" (hash "share" xr-0 xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca-0)))))
-  (label 281)
-  (parent 276)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 2 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 282)
-  (parent 278)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 3 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca)))))
-  (label 283)
-  (parent 278)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 6 5 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 284)
-  (parent 278)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr x))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x x))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" x) hint (enc (hash "public" x) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 x) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 x) hint))
-          (enc "check" n (hash "key" (hash "share" x xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" x) b (privk b)))
-      (send (enc (hash "public" x) b (privk ca)))))
-  (label 285)
-  (parent 278)
-  (unrealized (0 3) (6 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xr expt)
-    (xi xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xi-0) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xi)
-              (hash "hint" (hash "share" xr-0 xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi)
-            (hash "hint" (hash "share" xr-0 xi))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi)
-              (hash "hint" (hash "share" xr-0 xi)))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 286)
-  (parent 279)
-  (unrealized (0 3))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 2 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 287)
-  (parent 280)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 3 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca)))))
-  (label 288)
-  (parent 280)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 6 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 289)
-  (parent 280)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr x))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x x))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" x) hint (enc (hash "public" x) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 x) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 x) hint))
-          (enc "check" n (hash "key" (hash "share" x xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" x) b (privk b)))
-      (send (enc (hash "public" x) b (privk ca)))))
-  (label 290)
-  (parent 280)
-  (unrealized (0 3) (7 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xr expt)
-    (xi xr-0 xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr-0) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr-0 xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr-0 xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" xi-0) a (privk ca)) (0 1))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))
-      (recv (enc (hash "public" xr-0) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xi)
-              (hash "hint" (hash "share" xr-0 xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr-0 xi)
-            (hash "hint" (hash "share" xr-0 xi))))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr-0) (hash "hint" (hash "share" xr-0 xi))
-          (enc (hash "public" xr-0) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr-0)
-              (hash "hint" (hash "share" xr-0 xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xi)
-              (hash "hint" (hash "share" xr-0 xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 291)
-  (parent 281)
-  (unrealized (0 3))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr) hint))
-    (enc n (hash "key" (hash "share" xi-0 xr) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint))))
-  (label 292)
-  (parent 282)
-  (unrealized (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi xi-0) hint))
-    (enc n (hash "key" (hash "share" xi xi-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint))))
-  (label 293)
-  (parent 283)
-  (unrealized (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xi-0) hint))
-    (enc n (hash "key" (hash "share" xi-0 xi-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint))))
-  (label 294)
-  (parent 284)
-  (unrealized (0 3) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 0 resp 1)
-    (enc "reg" (hash "public" xr-1) b (privk b)) (6 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca)))))
-  (label 295)
-  (parent 285)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 1 resp 1)
-    (enc "reg" (hash "public" xr-0) b (privk b)) (6 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca)))))
-  (label 296)
-  (parent 285)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 0) (6 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 4 resp 1)
-    (enc "reg" (hash "public" xr-1) b (privk b)) (6 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca)))))
-  (label 297)
-  (parent 285)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3)) ((7 0) (6 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (hash "public" xr-0) b (privk b)) (6 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))))
-  (label 298)
-  (parent 285)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 2 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 299)
-  (parent 286)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 3 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca)))))
-  (label 300)
-  (parent 286)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 7 6 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 301)
-  (parent 286)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 rndx) (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr x))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x x))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1))
-    ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" x) hint (enc (hash "public" x) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 x) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 x) hint))
-          (enc "check" n (hash "key" (hash "share" x xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" x) b (privk b)))
-      (send (enc (hash "public" x) b (privk ca)))))
-  (label 302)
-  (parent 286)
-  (unrealized (0 3) (7 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (7 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr) hint))
-    (enc n (hash "key" (hash "share" xi-0 xr) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint))))
-  (label 303)
-  (parent 287)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi xi-0) hint))
-    (enc n (hash "key" (hash "share" xi xi-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint))))
-  (label 304)
-  (parent 288)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xi-0) hint))
-    (enc n (hash "key" (hash "share" xi-0 xi-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint))))
-  (label 305)
-  (parent 289)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 0 resp 1)
-    (enc "reg" (hash "public" xr-1) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca)))))
-  (label 306)
-  (parent 290)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (7 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 1 resp 1)
-    (enc "reg" (hash "public" xr-0) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca)))))
-  (label 307)
-  (parent 290)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 4 resp 1)
-    (enc "reg" (hash "public" xr-1) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca)))))
-  (label 308)
-  (parent 290)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 0) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (hash "public" xr-0) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))))
-  (label 309)
-  (parent 290)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 2 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 310)
-  (parent 291)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 3 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca)))))
-  (label 311)
-  (parent 291)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 7 ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca)))))
-  (label 312)
-  (parent 291)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 rndx)
-    (x expt))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr x))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x x))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 2)
-    (enc (hash "public" x) b (privk ca)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" x) hint (enc (hash "public" x) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 x) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 x) hint))
-          (enc "check" n (hash "key" (hash "share" x xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" x) b (privk b)))
-      (send (enc (hash "public" x) b (privk ca)))))
-  (label 313)
-  (parent 291)
-  (unrealized (0 3) (8 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (7 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (6 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr) hint))
-    (hash "key" (hash "share" xi-0 xr) hint) (6 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint))))
-  (label 314)
-  (parent 292)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (6 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi xi-0) hint))
-    (hash "key" (hash "share" xi xi-0) hint) (6 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi xi-0) hint))
-      (send (cat "key" (hash "share" xi xi-0) hint))))
-  (label 315)
-  (parent 293)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))
-    ((7 1) (6 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xi-0) hint))
-    (hash "key" (hash "share" xi-0 xi-0) hint) (6 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))
-      (send (cat "key" (hash "share" xi-0 xi-0) hint))))
-  (label 316)
-  (parent 294)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xr-0 xr-0) hint))
-    (enc n (hash "key" (hash "share" xr-0 xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint))))
-  (label 317)
-  (parent 295)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (7 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr) hint))
-    (enc n (hash "key" (hash "share" xi-0 xr) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint))))
-  (label 318)
-  (parent 296)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (7 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi xr-0) hint))
-    (enc n (hash "key" (hash "share" xi xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint))))
-  (label 319)
-  (parent 297)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))
-    ((7 0) (6 0)) ((7 0) (8 0)) ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr-0) hint))
-    (enc n (hash "key" (hash "share" xi-0 xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint))))
-  (label 320)
-  (parent 298)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (7 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr) hint))
-    (enc n (hash "key" (hash "share" xi-0 xr) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint))))
-  (label 321)
-  (parent 299)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi xi-0) hint))
-    (enc n (hash "key" (hash "share" xi xi-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint))))
-  (label 322)
-  (parent 300)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xi-0) hint))
-    (enc n (hash "key" (hash "share" xi-0 xi-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint))))
-  (label 323)
-  (parent 301)
-  (unrealized (0 3) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 0 resp 1)
-    (enc "reg" (hash "public" xr-1) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca)))))
-  (label 324)
-  (parent 302)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 0) (7 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 1 resp 1)
-    (enc "reg" (hash "public" xr-0) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca)))))
-  (label 325)
-  (parent 302)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (7 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 8 4 resp 1)
-    (enc "reg" (hash "public" xr-1) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca)))))
-  (label 326)
-  (parent 302)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (precedes ((0 0) (6 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 0) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (hash "public" xr-0) b (privk b)) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))))
-  (label 327)
-  (parent 302)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (8 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr) hint))
-    (hash "key" (hash "share" xi-0 xr) hint) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint))))
-  (label 328)
-  (parent 303)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi xi-0) hint))
-    (hash "key" (hash "share" xi xi-0) hint) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi xi-0) hint))
-      (send (cat "key" (hash "share" xi xi-0) hint))))
-  (label 329)
-  (parent 304)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xi-0) hint))
-    (hash "key" (hash "share" xi-0 xi-0) hint) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))
-      (send (cat "key" (hash "share" xi-0 xi-0) hint))))
-  (label 330)
-  (parent 305)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xr-0 xr-0) hint))
-    (enc n (hash "key" (hash "share" xr-0 xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint))))
-  (label 331)
-  (parent 306)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (7 0))
-    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr) hint))
-    (enc n (hash "key" (hash "share" xi-0 xr) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint))))
-  (label 332)
-  (parent 307)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (8 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi xr-0) hint))
-    (enc n (hash "key" (hash "share" xi xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint))))
-  (label 333)
-  (parent 308)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (9 0)) ((9 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr-0) hint))
-    (enc n (hash "key" (hash "share" xi-0 xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint))))
-  (label 334)
-  (parent 309)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr) hint))
-    (enc n (hash "key" (hash "share" xi-0 xr) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint))))
-  (label 335)
-  (parent 310)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi xi-0) hint))
-    (enc n (hash "key" (hash "share" xi xi-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint))))
-  (label 336)
-  (parent 311)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xi-0) hint))
-    (enc n (hash "key" (hash "share" xi-0 xi-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint))))
-  (label 337)
-  (parent 312)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 9 0 resp 1)
-    (enc "reg" (hash "public" xr-1) b (privk b)) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca)))))
-  (label 338)
-  (parent 313)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 0) (8 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (displaced 9 1 resp 1)
-    (enc "reg" (hash "public" xr-0) b (privk b)) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca)))))
-  (label 339)
-  (parent 313)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 9 4 resp 1)
-    (enc "reg" (hash "public" xr-1) b (privk b)) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca)))))
-  (label 340)
-  (parent 313)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (precedes ((0 0) (7 0)) ((1 0) (2 0)) ((1 0) (6 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3))
-    ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand resp 1)
-    (enc "reg" (hash "public" xr-0) b (privk b)) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b)))))
-  (label 341)
-  (parent 313)
-  (unrealized (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "share" xi-0 xr))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (8 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (6 0)) ((8 1) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr))
-    (hash "share" xi-0 xr) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))
-  (label 342)
-  (parent 314)
-  (unrealized (0 3) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "share" xi xi-0))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (8 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (6 0)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi xi-0))
-    (hash "share" xi xi-0) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi xi-0) hint))
-      (send (cat "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "share" xi xi-0)) (send (cat "share" xi xi-0))))
-  (label 343)
-  (parent 315)
-  (unrealized (0 3) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "share" xi-0 xi-0))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))
-    ((7 1) (6 0)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xi-0))
-    (hash "share" xi-0 xi-0) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))
-      (send (cat "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "share" xi-0 xi-0)) (send (cat "share" xi-0 xi-0))))
-  (label 344)
-  (parent 316)
-  (unrealized (0 3) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xr-0 xr-0) hint))
-    (hash "key" (hash "share" xr-0 xr-0) hint) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))
-      (send (cat "key" (hash "share" xr-0 xr-0) hint))))
-  (label 345)
-  (parent 317)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr) hint))
-    (hash "key" (hash "share" xi-0 xr) hint) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint))))
-  (label 346)
-  (parent 318)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi xr-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (8 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi xr-0) hint))
-    (hash "key" (hash "share" xi xr-0) hint) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi xr-0) hint))
-      (send (cat "key" (hash "share" xi xr-0) hint))))
-  (label 347)
-  (parent 319)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))
-  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))
-    ((7 0) (6 0)) ((7 0) (9 0)) ((8 1) (0 3)) ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr-0) hint))
-    (hash "key" (hash "share" xi-0 xr-0) hint) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))
-      (send (cat "key" (hash "share" xi-0 xr-0) hint))))
-  (label 348)
-  (parent 320)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr) hint))
-    (hash "key" (hash "share" xi-0 xr) hint) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint))))
-  (label 349)
-  (parent 321)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (8 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi xi-0) hint))
-    (hash "key" (hash "share" xi xi-0) hint) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi xi-0) hint))
-      (send (cat "key" (hash "share" xi xi-0) hint))))
-  (label 350)
-  (parent 322)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xi-0) hint))
-    (hash "key" (hash "share" xi-0 xi-0) hint) (7 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))
-      (send (cat "key" (hash "share" xi-0 xi-0) hint))))
-  (label 351)
-  (parent 323)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (8 0)) ((1 0) (2 0))
-    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xr-0 xr-0) hint))
-    (enc n (hash "key" (hash "share" xr-0 xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint))))
-  (label 352)
-  (parent 324)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (7 0)) ((1 0) (8 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr) hint))
-    (enc n (hash "key" (hash "share" xi-0 xr) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint))))
-  (label 353)
-  (parent 325)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (8 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (8 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi xr-0) hint))
-    (enc n (hash "key" (hash "share" xi xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint))))
-  (label 354)
-  (parent 326)
-  (unrealized (0 3) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (9 0))
-    ((9 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr-0) hint))
-    (enc n (hash "key" (hash "share" xi-0 xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint))))
-  (label 355)
-  (parent 327)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "share" xi-0 xr))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (9 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr))
-    (hash "share" xi-0 xr) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))
-  (label 356)
-  (parent 328)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "share" xi xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (9 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi xi-0))
-    (hash "share" xi xi-0) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi xi-0) hint))
-      (send (cat "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "share" xi xi-0)) (send (cat "share" xi xi-0))))
-  (label 357)
-  (parent 329)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "share" xi-0 xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xi-0))
-    (hash "share" xi-0 xi-0) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))
-      (send (cat "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "share" xi-0 xi-0)) (send (cat "share" xi-0 xi-0))))
-  (label 358)
-  (parent 330)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xr-0 xr-0) hint))
-    (hash "key" (hash "share" xr-0 xr-0) hint) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))
-      (send (cat "key" (hash "share" xr-0 xr-0) hint))))
-  (label 359)
-  (parent 331)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (7 0))
-    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr) hint))
-    (hash "key" (hash "share" xi-0 xr) hint) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint))))
-  (label 360)
-  (parent 332)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (9 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi xr-0) hint))
-    (hash "key" (hash "share" xi xr-0) hint) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi xr-0) hint))
-      (send (cat "key" (hash "share" xi xr-0) hint))))
-  (label 361)
-  (parent 333)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (10 0)) ((9 1) (0 3))
-    ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr-0) hint))
-    (hash "key" (hash "share" xi-0 xr-0) hint) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))
-      (send (cat "key" (hash "share" xi-0 xr-0) hint))))
-  (label 362)
-  (parent 334)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr) hint))
-    (hash "key" (hash "share" xi-0 xr) hint) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint))))
-  (label 363)
-  (parent 335)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (9 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi xi-0) hint))
-    (hash "key" (hash "share" xi xi-0) hint) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi xi-0) hint))
-      (send (cat "key" (hash "share" xi xi-0) hint))))
-  (label 364)
-  (parent 336)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xi-0) hint))
-    (hash "key" (hash "share" xi-0 xi-0) hint) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))
-      (send (cat "key" (hash "share" xi-0 xi-0) hint))))
-  (label 365)
-  (parent 337)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (9 0)) ((1 0) (2 0))
-    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xr-0 xr-0) hint))
-    (enc n (hash "key" (hash "share" xr-0 xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint))))
-  (label 366)
-  (parent 338)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (8 0)) ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr) hint))
-    (enc n (hash "key" (hash "share" xi-0 xr) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint))))
-  (label 367)
-  (parent 339)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (9 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi xr-0) hint))
-    (enc n (hash "key" (hash "share" xi xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint))))
-  (label 368)
-  (parent 340)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))
-    ((9 0) (10 0)) ((10 1) (0 3)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (hash "key" (hash "share" xi-0 xr-0) hint))
-    (enc n (hash "key" (hash "share" xi-0 xr-0) hint)) (0 3))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint))))
-  (label 369)
-  (parent 341)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "share" xr-0 xr-0))
-  (precedes ((0 0) (5 0)) ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1))
-    ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))
-    (hash "share" xr-0 xr-0) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))
-      (send (cat "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))
-  (label 370)
-  (parent 345)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "share" xi-0 xr))
-  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr))
-    (hash "share" xi-0 xr) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))
-  (label 371)
-  (parent 346)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "share" xi xr-0))
-  (precedes ((0 0) (5 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 0) (6 0)) ((4 0) (9 0)) ((4 4) (1 4))
-    ((5 1) (0 1)) ((6 1) (0 3)) ((7 1) (0 3)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi xr-0))
-    (hash "share" xi xr-0) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi xr-0) hint))
-      (send (cat "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "share" xi xr-0)) (send (cat "share" xi xr-0))))
-  (label 372)
-  (parent 347)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "share" xi-0 xr-0))
-  (precedes ((0 0) (5 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1))
-    ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (0 1)) ((6 1) (0 3))
-    ((7 0) (6 0)) ((7 0) (10 0)) ((8 1) (0 3)) ((9 1) (8 0))
-    ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr-0))
-    (hash "share" xi-0 xr-0) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))
-      (send (cat "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "share" xi-0 xr-0)) (send (cat "share" xi-0 xr-0))))
-  (label 373)
-  (parent 348)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "share" xi-0 xr))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr))
-    (hash "share" xi-0 xr) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))
-  (label 374)
-  (parent 349)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "share" xi xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (9 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi xi-0))
-    (hash "share" xi xi-0) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi xi-0) hint))
-      (send (cat "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "share" xi xi-0)) (send (cat "share" xi xi-0))))
-  (label 375)
-  (parent 350)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "share" xi-0 xi-0))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xi-0))
-    (hash "share" xi-0 xi-0) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))
-      (send (cat "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "share" xi-0 xi-0)) (send (cat "share" xi-0 xi-0))))
-  (label 376)
-  (parent 351)
-  (unrealized (0 3) (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (9 0)) ((1 0) (2 0))
-    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xr-0 xr-0) hint))
-    (hash "key" (hash "share" xr-0 xr-0) hint) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))
-      (send (cat "key" (hash "share" xr-0 xr-0) hint))))
-  (label 377)
-  (parent 352)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (7 0)) ((1 0) (9 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)) ((9 1) (8 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr) hint))
-    (hash "key" (hash "share" xi-0 xr) hint) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint))))
-  (label 378)
-  (parent 353)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (9 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (9 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)) ((9 1) (8 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi xr-0) hint))
-    (hash "key" (hash "share" xi xr-0) hint) (8 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi xr-0) hint))
-      (send (cat "key" (hash "share" xi xr-0) hint))))
-  (label 379)
-  (parent 354)
-  (unrealized (0 3) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (10 0))
-    ((9 1) (0 3)) ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr-0) hint))
-    (hash "key" (hash "share" xi-0 xr-0) hint) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))
-      (send (cat "key" (hash "share" xi-0 xr-0) hint))))
-  (label 380)
-  (parent 355)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "share" xr-0 xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3)) ((9 1) (8 0))
-    ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))
-    (hash "share" xr-0 xr-0) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))
-      (send (cat "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))
-  (label 381)
-  (parent 359)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "share" xi-0 xr))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (7 0))
-    ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr))
-    (hash "share" xi-0 xr) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))
-  (label 382)
-  (parent 360)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "share" xi xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 0) (7 0)) ((4 0) (10 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi xr-0))
-    (hash "share" xi xr-0) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi xr-0) hint))
-      (send (cat "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "share" xi xr-0)) (send (cat "share" xi xr-0))))
-  (label 383)
-  (parent 361)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "share" xi-0 xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 3) (0 3))
-    ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0))
-    ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (0 1))
-    ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (11 0)) ((9 1) (0 3))
-    ((10 1) (9 0)) ((11 1) (10 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr-0))
-    (hash "share" xi-0 xr-0) (10 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))
-      (send (cat "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "share" xi-0 xr-0)) (send (cat "share" xi-0 xr-0))))
-  (label 384)
-  (parent 362)
-  (unrealized (0 3) (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "share" xi-0 xr))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr))
-    (hash "share" xi-0 xr) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))
-  (label 385)
-  (parent 363)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi-0))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (deflistener (hash "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi xi-0) hint))
-  (deflistener (cat "share" xi xi-0))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (10 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi xi-0))
-    (hash "share" xi xi-0) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi-0)
-            (hash "hint" (hash "share" xr xi-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi-0))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi-0 xr)
-              (hash "hint" (hash "share" xr xi-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi-0)
-              (hash "hint" (hash "share" xr xi-0)))))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xi-0) hint))
-      (send (hash "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi xi-0) hint))
-      (send (cat "key" (hash "share" xi xi-0) hint)))
-    ((recv (cat "share" xi xi-0)) (send (cat "share" xi xi-0))))
-  (label 386)
-  (parent 364)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xi-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi-0)
-    (xr xi-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (deflistener (hash "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xi-0) hint))
-  (deflistener (cat "share" xi-0 xi-0))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 1) (8 0))
-    ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xi-0))
-    (hash "share" xi-0 xi-0) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xi-0) hint
-          (enc (hash "public" xi-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xi-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint))
-          (enc "check" n (hash "key" (hash "share" xi-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xi-0) hint))
-      (send (hash "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xi-0) hint))
-      (send (cat "key" (hash "share" xi-0 xi-0) hint)))
-    ((recv (cat "share" xi-0 xi-0)) (send (cat "share" xi-0 xi-0))))
-  (label 387)
-  (parent 365)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (10 0)) ((1 0) (2 0))
-    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (0 3)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xr-0 xr-0) hint))
-    (hash "key" (hash "share" xr-0 xr-0) hint) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))
-      (send (cat "key" (hash "share" xr-0 xr-0) hint))))
-  (label 388)
-  (parent 366)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (8 0)) ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr) hint))
-    (hash "key" (hash "share" xi-0 xr) hint) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint))))
-  (label 389)
-  (parent 367)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi xr-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (10 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi xr-0) hint))
-    (hash "key" (hash "share" xi xr-0) hint) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi xr-0) hint))
-      (send (cat "key" (hash "share" xi xr-0) hint))))
-  (label 390)
-  (parent 368)
-  (unrealized (0 3) (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))
-  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))
-    ((9 0) (11 0)) ((10 1) (0 3)) ((11 1) (10 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test
-    (added-listener (cat "key" (hash "share" xi-0 xr-0) hint))
-    (hash "key" (hash "share" xi-0 xr-0) hint) (10 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))
-      (send (cat "key" (hash "share" xi-0 xr-0) hint))))
-  (label 391)
-  (parent 369)
-  (unrealized (0 3) (11 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "share" xr-0 xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (7 0)) ((0 0) (10 0)) ((1 0) (2 0))
-    ((1 0) (5 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4))
-    ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3)) ((8 1) (0 3))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))
-    (hash "share" xr-0 xr-0) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))
-      (send (cat "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))
-  (label 392)
-  (parent 377)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "share" xi-0 xr))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 0) (7 0)) ((1 0) (10 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((3 1) (4 1)) ((4 0) (3 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)) ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr))
-    (hash "share" xi-0 xr) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))
-  (label 393)
-  (parent 378)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "share" xi xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (10 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 0) (7 0)) ((4 0) (10 0))
-    ((4 4) (1 4)) ((5 1) (4 3)) ((6 1) (0 1)) ((7 1) (0 3))
-    ((8 1) (0 3)) ((9 1) (8 0)) ((10 1) (9 0)))
-  (non-orig (privk ca) (privk a))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi xr-0))
-    (hash "share" xi xr-0) (9 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi xr-0) hint))
-      (send (cat "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "share" xi xr-0)) (send (cat "share" xi xr-0))))
-  (label 394)
-  (parent 379)
-  (unrealized (0 3) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca) (xi xi) (xr xr))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "share" xi-0 xr-0))
-  (precedes ((0 0) (6 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (5 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((3 1) (4 1)) ((4 0) (3 0)) ((4 4) (1 4)) ((5 1) (4 3))
-    ((6 1) (0 1)) ((7 1) (0 3)) ((8 0) (7 0)) ((8 0) (11 0))
-    ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))
-  (non-orig (privk b) (privk ca) (privk a))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr-0))
-    (hash "share" xi-0 xr-0) (10 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))
-      (send (cat "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "share" xi-0 xr-0)) (send (cat "share" xi-0 xr-0))))
-  (label 395)
-  (parent 380)
-  (unrealized (0 3) (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xi xr xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xr-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b a) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xr-0 xr-0) hint))
-  (deflistener (cat "share" xr-0 xr-0))
-  (precedes ((0 0) (7 0)) ((0 0) (8 0)) ((0 0) (11 0)) ((1 0) (2 0))
-    ((1 0) (6 0)) ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1))
-    ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4))
-    ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3))
-    ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xr-0 xr-0))
-    (hash "share" xr-0 xr-0) (10 0))
-  (traces
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xr-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xr-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xr-0 xr-0) hint))
-      (send (hash "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xr-0 xr-0) hint))
-      (send (cat "key" (hash "share" xr-0 xr-0) hint)))
-    ((recv (cat "share" xr-0 xr-0)) (send (cat "share" xr-0 xr-0))))
-  (label 396)
-  (parent 388)
-  (unrealized (0 3) (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xi-0 xr rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (deflistener (hash "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr) hint))
-  (deflistener (cat "share" xi-0 xr))
-  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 0) (8 0)) ((1 0) (11 0)) ((1 3) (0 3)) ((1 3) (4 3))
-    ((2 1) (1 1)) ((3 1) (1 2)) ((4 0) (3 0)) ((4 0) (5 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xi-0 xr)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr))
-    (hash "share" xi-0 xr) (10 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr) hint
-          (enc (hash "public" xr) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr) hint))
-          (enc "check" n (hash "key" (hash "share" xr xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (hash "key" (hash "share" xi-0 xr) hint))
-      (send (hash "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr) hint))
-      (send (cat "key" (hash "share" xi-0 xr) hint)))
-    ((recv (cat "share" xi-0 xr)) (send (cat "share" xi-0 xr))))
-  (label 397)
-  (parent 389)
-  (unrealized (0 3) (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (ca a ca-0 name) (xr xi xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b a) (ca ca) (xi xi)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b a) (ca ca) (xr xr) (xi xr-0))
-  (defstrand ca 2 (subject a) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xr-0))) (n n)
-    (a a) (b a) (ca ca-0) (xi xr-0) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr-0))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand ca 2 (subject a) (ca ca) (x xr-0))
-  (deflistener (hash "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi xr-0) hint))
-  (deflistener (cat "share" xi xr-0))
-  (precedes ((0 0) (7 0)) ((0 0) (11 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 0) (8 0)) ((4 0) (11 0))
-    ((4 4) (1 4)) ((5 1) (4 1)) ((6 1) (4 3)) ((7 1) (0 1))
-    ((8 1) (0 3)) ((9 1) (0 3)) ((10 1) (9 0)) ((11 1) (10 0)))
-  (non-orig (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xr xi xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi xr-0))
-    (hash "share" xi xr-0) (10 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca)))
-      (send
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) a (privk ca))
-          (enc n (hash "key" (hash "share" xi xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi) hint)))))
-    ((send (enc "reg" (hash "public" xr) a (privk a)))
-      (recv (enc (hash "public" xr) a (privk ca)))
-      (recv
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xr-0)
-            (hash "hint" (hash "share" xr xr-0))))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) a (privk a)))
-      (recv (enc (hash "public" xr-0) a (privk ca-0)))
-      (send
-        (cat (hash "public" xr-0)
-          (enc (hash "public" xr-0) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xr-0))
-          (enc (hash "public" xr) a (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xr-0 xr)
-              (hash "hint" (hash "share" xr xr-0))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xr-0)
-              (hash "hint" (hash "share" xr xr-0)))))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) a (privk a)))
-      (send (enc (hash "public" xr) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) a (privk a)))
-      (send (enc (hash "public" xr-0) a (privk ca))))
-    ((recv (hash "key" (hash "share" xi xr-0) hint))
-      (send (hash "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi xr-0) hint))
-      (send (cat "key" (hash "share" xi xr-0) hint)))
-    ((recv (cat "share" xi xr-0)) (send (cat "share" xi xr-0))))
-  (label 398)
-  (parent 390)
-  (unrealized (0 3) (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhca-nohint
-  (vars (hint mesg) (n text) (b ca a ca-0 name) (xi xr xi-0 xr-0 rndx))
-  (defstrand init 5 (hint hint) (n n) (a a) (b b) (ca ca) (xi xi-0)
-    (xr xr-0))
-  (defstrand resp 5 (n n) (a a) (b b) (ca ca) (xr xr) (xi xi))
-  (defstrand ca 2 (subject b) (ca ca) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi))
-  (defstrand init 5 (hint (hash "hint" (hash "share" xr xi))) (n n)
-    (a a) (b b) (ca ca-0) (xi xi) (xr xr))
-  (defstrand ca 2 (subject a) (ca ca-0) (x xi))
-  (defstrand ca 2 (subject b) (ca ca-0) (x xr))
-  (defstrand ca 2 (subject a) (ca ca) (x xi-0))
-  (defstrand ca 2 (subject b) (ca ca) (x xr-0))
-  (defstrand resp 1 (b b) (xr xr-0))
-  (deflistener (hash "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "key" (hash "share" xi-0 xr-0) hint))
-  (deflistener (cat "share" xi-0 xr-0))
-  (precedes ((0 0) (7 0)) ((0 0) (12 0)) ((1 0) (2 0)) ((1 0) (6 0))
-    ((1 3) (0 3)) ((1 3) (4 3)) ((2 1) (1 1)) ((3 1) (1 2))
-    ((4 0) (3 0)) ((4 0) (5 0)) ((4 4) (1 4)) ((5 1) (4 1))
-    ((6 1) (4 3)) ((7 1) (0 1)) ((8 1) (0 3)) ((9 0) (8 0))
-    ((9 0) (12 0)) ((10 1) (0 3)) ((11 1) (10 0)) ((12 1) (11 0)))
-  (non-orig (privk b) (privk ca) (privk a) (privk ca-0))
-  (uniq-gen xi xr xi-0 xr-0)
-  (uniq-orig n)
-  (operation encryption-test (added-listener (cat "share" xi-0 xr-0))
-    (hash "share" xi-0 xr-0) (11 0))
-  (traces
-    ((send (enc "reg" (hash "public" xi-0) a (privk a)))
-      (recv (enc (hash "public" xi-0) a (privk ca)))
-      (send
-        (cat (hash "public" xi-0)
-          (enc (hash "public" xi-0) a (privk ca))))
-      (recv
-        (cat (hash "public" xr-0) hint
-          (enc (hash "public" xr-0) b (privk ca))
-          (enc n (hash "key" (hash "share" xi-0 xr-0) hint))))
-      (send
-        (cat (enc "check" n (hash "key" (hash "share" xi-0 xr-0) hint))
-          (enc "check" n (hash "key" (hash "share" xr-0 xi-0) hint)))))
-    ((send (enc "reg" (hash "public" xr) b (privk b)))
-      (recv (enc (hash "public" xr) b (privk ca)))
-      (recv
-        (cat (hash "public" xi) (enc (hash "public" xi) a (privk ca))))
-      (send
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca))
-          (enc n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi))))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (recv
-        (enc "check" n
-          (hash "key" (hash "share" xr xi)
-            (hash "hint" (hash "share" xr xi))))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca))))
-    ((send (enc "reg" (hash "public" xi) a (privk a)))
-      (recv (enc (hash "public" xi) a (privk ca-0)))
-      (send
-        (cat (hash "public" xi)
-          (enc (hash "public" xi) a (privk ca-0))))
-      (recv
-        (cat (hash "public" xr) (hash "hint" (hash "share" xr xi))
-          (enc (hash "public" xr) b (privk ca-0))
-          (enc n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))))
-      (send
-        (cat
-          (enc "check" n
-            (hash "key" (hash "share" xi xr)
-              (hash "hint" (hash "share" xr xi))))
-          (enc "check" n
-            (hash "key" (hash "share" xr xi)
-              (hash "hint" (hash "share" xr xi)))))))
-    ((recv (enc "reg" (hash "public" xi) a (privk a)))
-      (send (enc (hash "public" xi) a (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xr) b (privk b)))
-      (send (enc (hash "public" xr) b (privk ca-0))))
-    ((recv (enc "reg" (hash "public" xi-0) a (privk a)))
-      (send (enc (hash "public" xi-0) a (privk ca))))
-    ((recv (enc "reg" (hash "public" xr-0) b (privk b)))
-      (send (enc (hash "public" xr-0) b (privk ca))))
-    ((send (enc "reg" (hash "public" xr-0) b (privk b))))
-    ((recv (hash "key" (hash "share" xi-0 xr-0) hint))
-      (send (hash "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "key" (hash "share" xi-0 xr-0) hint))
-      (send (cat "key" (hash "share" xi-0 xr-0) hint)))
-    ((recv (cat "share" xi-0 xr-0)) (send (cat "share" xi-0 xr-0))))
-  (label 399)
-  (parent 391)
-  (unrealized (0 3) (12 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
diff --git a/tst/nhcr_um.scm b/tst/nhcr_um.scm
deleted file mode 100644
--- a/tst/nhcr_um.scm
+++ /dev/null
@@ -1,184 +0,0 @@
-; Unified Model  This version used in the paper, tooldev/dh/conf_dh/dh_ebn.tex
-
-; This file models the "Unified Model" method of determining a fresh
-; key from long-term and ephemeral Diffie-Hellman exponents.  We use
-; function relation declarations to link names to long-term public
-; values.
-
-;;; This file contains the standard version, in which the two
-;;; ephemeral are mixed, as are the two static exponents.
-
-; A role is provided in which a party signs a fresh long-term
-; Diffie-Hellman value, and then leaks the exponent.  The latter step
-; is used to test the notion of forward security.
-
-; Two inputs are analyzed.  In the first, we model that two
-; participants exist that agree on the UM key.  The notion of
-; "implicit authentication" suggests that if one participant exists
-; and another party knows the same key, that party must be either the
-; participant or the participant's intended partner.
-
-; In this version, we assume that the long-term keys of the
-; participants do not leak.
-
-; The second input checks whether the key can be learned when the key
-; is generated honestly.  In this version, we do NOT assume that the
-; long-term keys of the participants do not leak.
-
-(herald "NHCR: unified model (UM)" (bound 20) (limit 8000) (algebra diffie-hellman))
-
-(defmacro (nh_public k1)
-  ;(exp (gen) x1))
-  (hash "public" k1))
-
-(defmacro (nh_share k1 k2)
-  ;(hash "share" (nh_public (mul x1 x2))))
-  (hash "share" (nh_public k1) k2))
-
-; Use this macro to generate the hint
-(defmacro (nh_hint k1 k2)
-  (hash "hint" (nh_share k1 k2)))
-
-(defmacro (nh_key1 k1 k2 h)
-  (hash "nh_key" (nh_share k1 k2) h))
-
-(defmacro (nh_key2 k1 k2 h)
-  (hash "nh_key" (nh_share k2 k1) h))
-
-(defmacro (key_hint11 ltk1 ltk2 ek1 ek2 h1 h2)
-  (hash "key" (nh_key1 ltk1 ltk2 h1) (nh_key1 ek1 ek2 h2)))
-
-(defmacro (key_hint12 ltk1 ltk2 ek1 ek2 h1 h2)
-  (hash "key" (nh_key1 ltk1 ltk2 h1) (nh_key2 ek1 ek2 h2)))
-
-(defmacro (key_hint21 ltk1 ltk2 ek1 ek2 h1 h2)
-  (hash "key" (nh_key2 ltk1 ltk2 h1) (nh_key1 ek1 ek2 h2)))
-
-(defmacro (key_hint22 ltk1 ltk2 ek1 ek2 h1 h2)
-  (hash "key" (nh_key2 ltk1 ltk2 h1) (nh_key2 ek1 ek2 h2)))
-
-;(defmacro (key ltk1 ltk2 ek1 ek2)
-;  (key_hint ltk1 ltk2 (nh_hint ltk1 ek2) ek1 ek2 (nh_hint ek1 ltk2)))
-
-(defprotocol nhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data) (hint1 hint2 mesg))
-    (trace
-     (recv (cat (nh_public ltxa) (nh_public ltxb)))
-     (send (cat na a b (nh_public x)))
-     (recv (cat (nh_public y) hint1 hint2
-                (enc na nb a b hint1 hint2
-                     (key_hint22 ltxa ltxb x y hint1 hint2))))
-     (send nb)
-     )
-    (fn-of ("principal-of" (ltxa a) (ltxb b))
-           ("ltx-of" (a ltxa) (b ltxb)))
-    (uniq-gen x)
-    (uniq-orig na)
-    (neq ((exp (gen) y) (gen))))
-
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace
-     (recv (cat (nh_public ltxa) (nh_public ltxb)))
-     (recv (cat na a b (nh_public x)))
-     (send (cat (nh_public y) (nh_hint ltxa y) (nh_hint x ltxb)
-                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb)
-		     (key_hint11 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))
-		(enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb)
-		     (key_hint12 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))
-		(enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb)
-		     (key_hint21 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))
-                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb)
-		     (key_hint22 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))))
-     (recv nb)
-     )
-    (fn-of ("principal-of" (ltxa a) (ltxb b))
-	   ("ltx-of" (a ltxa) (b ltxb)))
-    (uniq-gen y)
-    (uniq-orig nb)
-    (neq ((exp (gen) x) (gen))))
-
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace
-     (send (cat self (nh_public l)))
-     (recv "end-of-protocol")
-     (send l))
-    (uniq-gen l)
-    (fn-of ("principal-of" (l self))
-	   ("ltx-of" (self l)))))
-
-; Initiator point of view: partner's exponent secret
-(defskeleton nhcr-umx
-  (vars (ltxa ltxb rndx) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)))
-  (non-orig ltxb)
-  (neq (a b)))
-
-; Initiator point of view: both LTX exponents secret
-(defskeleton nhcr-umx
-  (vars (ltxa ltxb rndx) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
-  (defstrand ltx-gen 1 (l ltxa))
-  (defstrand ltx-gen 1 (l ltxb))
-  (non-orig ltxa ltxb) (neq (a b)))
-
-; Responder point of view; both exponents secret
-(defskeleton nhcr-umx
-  (vars (ltxa ltxb rndx) (a b name))
-  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
-  (defstrand ltx-gen 1 (l ltxa))
-  (defstrand ltx-gen 1 (l ltxb))
-  (non-orig ltxa ltxb)
-  (neq (a b)))
-
-; Responder point of view; partner's exponent secret
-(defskeleton nhcr-umx
-  (vars (ltxa ltxb rndx) (a b name))
-  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
-  (defstrand ltx-gen 1 (l ltxa))
-  (non-orig ltxa)
-  (neq (a b)))
-
-;;; Forward secrecy, neither long-term exponent secure
-(defskeleton nhcr-umx
-  (vars (ltxa ltxb x rndx) (y expt) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
-  (deflistener (key_hint11 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))
-  (defstrand ltx-gen 3 (l ltxa))
-  (defstrand ltx-gen 3 (l ltxb))
-  (precedes ((0 3) (3 1)) ((0 3) (2 1)))
-  (neq (a b)))
-
-;;; Forward secrecy, neither long-term exponent secure
-(defskeleton nhcr-umx
-  (vars (ltxa ltxb x rndx) (y expt) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
-  (deflistener (key_hint12 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))
-  (defstrand ltx-gen 3 (l ltxa))
-  (defstrand ltx-gen 3 (l ltxb))
-  (precedes ((0 3) (3 1)) ((0 3) (2 1)))
-  (neq (a b)))
-
-;;; Forward secrecy, neither long-term exponent secure
-(defskeleton nhcr-umx
-  (vars (ltxa ltxb x rndx) (y expt) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
-  (deflistener (key_hint21 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))
-  (defstrand ltx-gen 3 (l ltxa))
-  (defstrand ltx-gen 3 (l ltxb))
-  (precedes ((0 3) (3 1)) ((0 3) (2 1)))
-  (neq (a b)))
-
-;;; Forward secrecy, neither long-term exponent secure
-(defskeleton nhcr-umx
-  (vars (ltxa ltxb x rndx) (y expt) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
-  (deflistener (key_hint22 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))
-  (defstrand ltx-gen 3 (l ltxa))
-  (defstrand ltx-gen 3 (l ltxb))
-  (precedes ((0 3) (3 1)) ((0 3) (2 1)))
-  (neq (a b)))
diff --git a/tst/nhcr_um.tst b/tst/nhcr_um.tst
deleted file mode 100644
--- a/tst/nhcr_um.tst
+++ /dev/null
@@ -1,8785 +0,0 @@
-(herald "NHCR: unified model (UM)" (bound 20) (limit 8000)
-  (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/nhcr_um.scm")
-(comment "Step count limited to 8000")
-(comment "Strand count bounded at 20")
-
-(defprotocol nhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((send (cat b (hash "public" ltxb)))))
-  (label 0)
-  (unrealized (0 2))
-  (origs (na (0 1)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxb ltxa y x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb y x)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb)) ((send (cat b (hash "public" ltxb))))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb)))))))))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na) (nb nb)
-        (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (origs (nb (2 2)) (na (0 1))))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (0 2)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-    (enc na nb a b hint1 hint2
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-    (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))))
-  (label 2)
-  (parent 0)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)) (2 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))))
-  (label 3)
-  (parent 2)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener (cat "nh_key" (hash "share" (hash "public" y) x) hint2))
-  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) x) hint2))
-    (hash "nh_key" (hash "share" (hash "public" y) x) hint2) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" y) x) hint2))
-      (send (cat "nh_key" (hash "share" (hash "public" y) x) hint2))))
-  (label 4)
-  (parent 3)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener (cat "nh_key" (hash "share" (hash "public" y) x) hint2))
-  (deflistener (cat "share" (hash "public" y) x))
-  (precedes ((0 1) (5 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" y) x))
-    (hash "share" (hash "public" y) x) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" y) x) hint2))
-      (send (cat "nh_key" (hash "share" (hash "public" y) x) hint2)))
-    ((recv (cat "share" (hash "public" y) x))
-      (send (cat "share" (hash "public" y) x))))
-  (label 5)
-  (parent 4)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b self self-0 name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self self) (l ltxa))
-  (defstrand ltx-gen 1 (self self-0) (l ltxb))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((send (cat self (hash "public" ltxa))))
-    ((send (cat self-0 (hash "public" ltxb)))))
-  (label 6)
-  (unrealized (0 0) (0 2))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)) ((2 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb)))))
-  (label 7)
-  (parent 6)
-  (unrealized (0 2))
-  (origs (na (0 1)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxb ltxa y x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (0 2)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb ltxa)
-  (uniq-gen ltxb ltxa y x)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb)))))))))
-  (label 8)
-  (parent 7)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1 2)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na) (nb nb)
-        (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (origs (nb (3 2)) (na (0 1))))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-    (enc na nb a b hint1 hint2
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-    (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))))
-  (label 9)
-  (parent 7)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2))
-    ((4 1) (3 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))))
-  (label 10)
-  (parent 9)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1))
-  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((1 0) (5 0)) ((2 0) (0 0))
-    ((2 0) (5 0)) ((3 1) (0 2)) ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1))
-    (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-    (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa) hint1))))
-  (label 11)
-  (parent 10)
-  (unrealized (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self self) (l ltxa))
-  (defstrand ltx-gen 1 (self self-0) (l ltxb))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat self (hash "public" ltxa))))
-    ((send (cat self-0 (hash "public" ltxb)))))
-  (label 12)
-  (unrealized (0 0) (0 3))
-  (preskeleton)
-  (origs (nb (0 2)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)) ((2 0) (0 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb)))))
-  (label 13)
-  (parent 12)
-  (unrealized (0 3))
-  (origs (nb (0 2)))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxb ltxa y x rndx))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 1) (0 1)) ((3 3) (0 3)))
-  (absent (x ltxa) (x ltxb) (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) y) (gen)) (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxb ltxa)
-  (uniq-gen ltxb ltxa y x)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand init 4) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb)))
-  (label 14)
-  (parent 13)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1 2)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)
-        (nb nb))))
-  (origs (na (3 1)) (nb (0 2))))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb
-    (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 15)
-  (parent 13)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb
-    (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 16)
-  (parent 13)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb
-    (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 17)
-  (parent 13)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb
-    (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 18)
-  (parent 13)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 19)
-  (parent 15)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 20)
-  (parent 16)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 21)
-  (parent 17)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 22)
-  (parent 18)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 23)
-  (parent 19)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 24)
-  (parent 20)
-  (unrealized (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 25)
-  (parent 21)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 26)
-  (parent 22)
-  (unrealized (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self self) (l ltxa))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat self (hash "public" ltxa)))))
-  (label 27)
-  (unrealized (0 0) (0 3))
-  (preskeleton)
-  (origs (nb (0 2)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (precedes ((1 0) (0 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa)))))
-  (label 28)
-  (parent 27)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)
-        (nb nb))))
-  (origs (nb (0 2))))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b self self-0 name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self self) (l ltxa))
-  (defstrand ltx-gen 3 (self self-0) (l ltxb))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 29)
-  (unrealized (0 0) (0 2) (1 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 30)
-  (parent 29)
-  (unrealized (0 2) (1 0))
-  (origs (na (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (1 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 31)
-  (parent 30)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (5 0)) ((3 0) (0 0)) ((3 0) (5 0)) ((4 1) (1 0))
-    ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 32)
-  (parent 31)
-  (unrealized (0 2) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) ltxb))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((4 1) (1 0))
-    ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxa) ltxb))
-    (hash "share" (hash "public" ltxa) ltxb) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) ltxb))
-      (send (cat "share" (hash "public" ltxa) ltxb))))
-  (label 33)
-  (parent 32)
-  (unrealized (0 2) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) l))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((3 0) (0 0))
-    ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation nonce-test (displaced 7 3 ltx-gen 3) l (6 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" l) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) l))
-      (send (cat "share" (hash "public" ltxa) l))))
-  (label 34)
-  (parent 33)
-  (unrealized (0 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxb ltxa y x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (7 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (7 0)) ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 2) (0 2)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb ltxa y x)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) ltxb))
-      (send (cat "share" (hash "public" ltxa) ltxb)))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb)))))))))
-  (label 35)
-  (parent 34)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) l))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (0 2)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-    (enc na nb a b hint1 hint2
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-    (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" l) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) l))
-      (send (cat "share" (hash "public" ltxa) l)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))))
-  (label 36)
-  (parent 34)
-  (unrealized (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxb ltxa y x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (precedes ((0 1) (7 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (7 0)) ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 2) (0 2))
-    ((7 2) (8 0)) ((8 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb ltxa y x)
-  (uniq-orig na nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb))))
-    (hash "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) ltxb))
-      (send (cat "share" (hash "public" ltxa) ltxb)))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb))))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (label 37)
-  (parent 35)
-  (unrealized (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) l))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (0 2)) ((8 1) (7 0)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)) (7 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" l) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) l))
-      (send (cat "share" (hash "public" ltxa) l)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))))
-  (label 38)
-  (parent 36)
-  (unrealized (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxb ltxa y x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" x) y))
-  (precedes ((0 1) (7 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (7 0)) ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 2) (0 2))
-    ((7 2) (9 0)) ((8 1) (4 0)) ((9 1) (8 0)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb ltxa y x)
-  (uniq-orig na nb)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" x) y))
-    (hash "share" (hash "public" x) y) (8 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) ltxb))
-      (send (cat "share" (hash "public" ltxa) ltxb)))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb))))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" x) y))
-      (send (cat "share" (hash "public" x) y))))
-  (label 39)
-  (parent 37)
-  (unrealized (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) l))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" l) ltxa) hint1))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (9 0)) ((3 0) (0 0)) ((3 0) (9 0)) ((3 2) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (0 2))
-    ((8 1) (7 0)) ((9 1) (8 0)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" l) ltxa) hint1))
-    (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1) (8 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" l) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) l))
-      (send (cat "share" (hash "public" ltxa) l)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" l) ltxa) hint1))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" l) ltxa) hint1))))
-  (label 40)
-  (parent 38)
-  (unrealized (8 0) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) l))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" l) ltxa) hint1))
-  (deflistener (cat "share" (hash "public" l) ltxa))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (10 0)) ((3 0) (0 0)) ((3 0) (10 0)) ((3 2) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (0 2))
-    ((8 1) (7 0)) ((9 1) (8 0)) ((10 1) (9 0)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" l) ltxa))
-    (hash "share" (hash "public" l) ltxa) (9 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" l) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) l))
-      (send (cat "share" (hash "public" ltxa) l)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" l) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" l) ltxa) hint1))
-      (send (cat "nh_key" (hash "share" (hash "public" l) ltxa) hint1)))
-    ((recv (cat "share" (hash "public" l) ltxa))
-      (send (cat "share" (hash "public" l) ltxa))))
-  (label 41)
-  (parent 40)
-  (unrealized (8 0) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b self self-0 name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self self) (l ltxa))
-  (defstrand ltx-gen 3 (self self-0) (l ltxb))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 42)
-  (unrealized (0 0) (0 2) (1 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 43)
-  (parent 42)
-  (unrealized (0 2) (1 0))
-  (origs (na (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (1 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 44)
-  (parent 43)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (5 0)) ((3 0) (0 0)) ((3 0) (5 0)) ((4 1) (1 0))
-    ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 45)
-  (parent 44)
-  (unrealized (0 2) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) ltxb))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((4 1) (1 0))
-    ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxa) ltxb))
-    (hash "share" (hash "public" ltxa) ltxb) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) ltxb))
-      (send (cat "share" (hash "public" ltxa) ltxb))))
-  (label 46)
-  (parent 45)
-  (unrealized (0 2) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) l))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((3 0) (0 0))
-    ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation nonce-test (displaced 7 3 ltx-gen 3) l (6 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" l) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) l))
-      (send (cat "share" (hash "public" ltxa) l))))
-  (label 47)
-  (parent 46)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) x)
-      (hash "hint" (hash "share" (hash "public" x) l))))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) l))))
-    (hash "nh_key" (hash "share" (hash "public" y) x)
-      (hash "hint" (hash "share" (hash "public" x) l))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" l) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) l))
-      (send (cat "share" (hash "public" ltxa) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) x)
-         (hash "hint" (hash "share" (hash "public" x) l))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) l))))))
-  (label 48)
-  (parent 47)
-  (unrealized (0 2) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) x)
-      (hash "hint" (hash "share" (hash "public" x) l))))
-  (deflistener (cat "share" (hash "public" y) x))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" y) x))
-    (hash "share" (hash "public" y) x) (7 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" l) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) l)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) l)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) l))
-      (send (cat "share" (hash "public" ltxa) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) x)
-         (hash "hint" (hash "share" (hash "public" x) l))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) l)))))
-    ((recv (cat "share" (hash "public" y) x))
-      (send (cat "share" (hash "public" y) x))))
-  (label 49)
-  (parent 48)
-  (unrealized (0 2) (7 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b self self-0 name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self self) (l ltxa))
-  (defstrand ltx-gen 3 (self self-0) (l ltxb))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 50)
-  (unrealized (0 0) (0 2) (1 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 51)
-  (parent 50)
-  (unrealized (0 2) (1 0))
-  (origs (na (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (1 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 52)
-  (parent 51)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (5 0)) ((3 0) (0 0)) ((3 0) (5 0)) ((4 1) (1 0))
-    ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 53)
-  (parent 52)
-  (unrealized (0 2) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxb) ltxa))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((4 1) (1 0))
-    ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxb) ltxa))
-    (hash "share" (hash "public" ltxb) ltxa) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxb) ltxa))
-      (send (cat "share" (hash "public" ltxb) ltxa))))
-  (label 54)
-  (parent 53)
-  (unrealized (0 2) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" ltxb) l))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation nonce-test (displaced 7 2 ltx-gen 3) l (6 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" ltxb) l))
-      (send (cat "share" (hash "public" ltxb) l))))
-  (label 55)
-  (parent 54)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" ltxb) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb))))
-    (hash "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" ltxb) l))
-      (send (cat "share" (hash "public" ltxb) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (label 56)
-  (parent 55)
-  (unrealized (0 2) (7 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb na-0 nb-0 data) (a b a-0 name)
-    (y expt) (l ltxa y-0 x ltxb rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" ltxb) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b) (ltxa ltxa)
-    (ltxb ltxb) (y y-0) (x x))
-  (precedes ((0 1) (8 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (8 0)) ((4 1) (1 0))
-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0)) ((8 2) (7 0)))
-  (absent (y-0 ltxa) (y-0 ltxb) (y-0 x) (x l) (x ltxb))
-  (fn-of ("ltx-of" (a-0 ltxa) (b ltxb) (a l))
-    ("principal-of" (ltxa a-0) (ltxb b) (l a)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen l y-0 x ltxb)
-  (uniq-orig na nb-0)
-  (operation encryption-test (added-strand resp 3)
-    (hash "hint" (hash "share" (hash "public" x) ltxb)) (7 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" ltxb) l))
-      (send (cat "share" (hash "public" ltxb) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na-0 a-0 b (hash "public" x)))
-      (send
-        (cat (hash "public" y-0)
-          (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" x) y-0)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" y-0) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" x) y-0)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" y-0) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb)))))))))
-  (label 57)
-  (parent 56)
-  (unrealized (0 2))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" ltxb) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "hint" (hash "share" (hash "public" x) ltxb)))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "hint" (hash "share" (hash "public" x) ltxb)))
-    (hash "hint" (hash "share" (hash "public" x) ltxb)) (7 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" ltxb) l))
-      (send (cat "share" (hash "public" ltxb) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "hint" (hash "share" (hash "public" x) ltxb)))
-      (send (cat "hint" (hash "share" (hash "public" x) ltxb)))))
-  (label 58)
-  (parent 56)
-  (unrealized (0 2) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (b a name) (ltxb x ltxa y rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxb) ltxa))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (8 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (8 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (8 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0))
-    ((8 2) (0 2)) ((8 2) (7 0)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x ltxa y)
-  (uniq-orig na nb)
-  (operation encryption-test (displaced 9 8 resp 3)
-    (enc na-0 nb-0 a-0 b
-      (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-          (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-        (hash "nh_key" (hash "share" (hash "public" y-0) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxb) ltxa))
-      (send (cat "share" (hash "public" ltxb) ltxa)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb)))))))))
-  (label 59)
-  (parent 57)
-  (unrealized (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb na-0 nb-0 data) (a b a-0 name)
-    (ltxa y ltxb ltxa-0 y-0 x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa-0) (ltxb ltxb) (x x) (y y-0))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-        (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-      (hash "nh_key" (hash "share" (hash "public" x) y-0)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa-0))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-        (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-      (hash "nh_key" (hash "share" (hash "public" x) y-0)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-      (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))))
-  (deflistener (cat "share" (hash "public" ltxb) ltxa-0))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y-0)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b) (ltxa ltxa)
-    (ltxb ltxb) (y y) (x x))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
-    (ltxb ltxb) (y y-0) (x x))
-  (precedes ((0 1) (8 1)) ((0 1) (9 1)) ((0 3) (2 1)) ((0 3) (3 1))
-    ((2 0) (0 0)) ((2 0) (9 0)) ((2 2) (6 0)) ((3 0) (0 0))
-    ((3 0) (8 0)) ((3 0) (9 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)) ((8 2) (7 0)) ((9 2) (0 2))
-    ((9 2) (7 0)))
-  (absent (y-0 ltxa-0) (y-0 ltxb) (y-0 x) (y ltxa) (y ltxb) (y x)
-    (x ltxa-0) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa-0) (b ltxb) (a-0 ltxa))
-    ("principal-of" (ltxa-0 a) (ltxb b) (ltxa a-0)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y-0) (gen)))
-  (uniq-gen y ltxb ltxa-0 y-0 x)
-  (uniq-orig na nb nb-0)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b
-      (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-          (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-        (hash "nh_key" (hash "share" (hash "public" y-0) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa-0) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y-0)
-          (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-                (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" y-0) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-           (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-         (hash "nh_key" (hash "share" (hash "public" x) y-0)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-          (hash "nh_key" (hash "share" (hash "public" x) y-0)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa-0))) (recv "end-of-protocol")
-      (send ltxa-0))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-           (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-         (hash "nh_key" (hash "share" (hash "public" x) y-0)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-          (hash "nh_key" (hash "share" (hash "public" x) y-0)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-         (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-          (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))))
-    ((recv (cat "share" (hash "public" ltxb) ltxa-0))
-      (send (cat "share" (hash "public" ltxb) ltxa-0)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y-0)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y-0)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na-0 a-0 b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb))))))))
-    ((recv (cat (hash "public" ltxa-0) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y-0)
-          (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa-0) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" x) y-0)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa-0) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" y-0) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-                (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" x) y-0)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-                (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" y-0) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb)))))))))
-  (label 60)
-  (parent 57)
-  (unrealized (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb na-0 nb-0 data) (a b a-0 name)
-    (y expt) (l ltxa y-0 x ltxb rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" ltxb) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b) (ltxa ltxa)
-    (ltxb ltxb) (y y-0) (x x))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (precedes ((0 1) (8 1)) ((0 1) (9 0)) ((0 3) (2 1)) ((0 3) (3 1))
-    ((2 0) (0 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (8 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0))
-    ((8 2) (7 0)) ((9 1) (0 2)))
-  (absent (y-0 ltxa) (y-0 ltxb) (y-0 x) (x l) (x ltxb))
-  (fn-of ("ltx-of" (a-0 ltxa) (b ltxb) (a l))
-    ("principal-of" (ltxa a-0) (ltxb b) (l a)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen l y-0 x ltxb)
-  (uniq-orig na nb-0)
-  (operation encryption-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-    (enc na nb a b hint1 hint2
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-    (0 2))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" ltxb) l))
-      (send (cat "share" (hash "public" ltxb) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na-0 a-0 b (hash "public" x)))
-      (send
-        (cat (hash "public" y-0)
-          (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" x) y-0)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" y-0) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" x) y-0)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" y-0) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb))))))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))))
-  (label 61)
-  (parent 57)
-  (unrealized (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" ltxb) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "hint" (hash "share" (hash "public" x) ltxb)))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (precedes ((0 1) (9 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" x) ltxb))
-    (hash "share" (hash "public" x) ltxb) (8 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" ltxb) l))
-      (send (cat "share" (hash "public" ltxb) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "hint" (hash "share" (hash "public" x) ltxb)))
-      (send (cat "hint" (hash "share" (hash "public" x) ltxb))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb))))
-  (label 62)
-  (parent 58)
-  (unrealized (0 2) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (b a name) (ltxb x ltxa y rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxb) ltxa))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat "share" (hash "public" x) y))
-  (precedes ((0 1) (8 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (8 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (8 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0))
-    ((8 2) (0 2)) ((8 2) (9 0)) ((9 1) (7 0)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x ltxa y)
-  (uniq-orig na nb)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" x) y))
-    (hash "share" (hash "public" x) y) (7 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxb) ltxa))
-      (send (cat "share" (hash "public" ltxb) ltxa)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb))))))))
-    ((recv (cat "share" (hash "public" x) y))
-      (send (cat "share" (hash "public" x) y))))
-  (label 63)
-  (parent 59)
-  (unrealized (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-umx
-  (vars (na nb na-0 nb-0 data) (a b a-0 name)
-    (ltxa y ltxb ltxa-0 y-0 x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa-0) (ltxb ltxb) (x x) (y y-0))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-        (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-      (hash "nh_key" (hash "share" (hash "public" x) y-0)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa-0))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-        (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-      (hash "nh_key" (hash "share" (hash "public" x) y-0)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-      (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))))
-  (deflistener (cat "share" (hash "public" ltxb) ltxa-0))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y-0)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b) (ltxa ltxa)
-    (ltxb ltxb) (y y) (x x))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa-0)
-    (ltxb ltxb) (y y-0) (x x))
-  (deflistener (cat "share" (hash "public" x) y-0))
-  (precedes ((0 1) (8 1)) ((0 1) (9 1)) ((0 3) (2 1)) ((0 3) (3 1))
-    ((2 0) (0 0)) ((2 0) (9 0)) ((2 2) (6 0)) ((3 0) (0 0))
-    ((3 0) (8 0)) ((3 0) (9 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)) ((8 2) (7 0)) ((9 2) (0 2))
-    ((9 2) (10 0)) ((10 1) (7 0)))
-  (absent (y-0 ltxa-0) (y-0 ltxb) (y-0 x) (y ltxa) (y ltxb) (y x)
-    (x ltxa-0) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa-0) (b ltxb) (a-0 ltxa))
-    ("principal-of" (ltxa-0 a) (ltxb b) (ltxa a-0)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y-0) (gen)))
-  (uniq-gen y ltxb ltxa-0 y-0 x)
-  (uniq-orig na nb nb-0)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" x) y-0))
-    (hash "share" (hash "public" x) y-0) (7 0))
-  (traces
-    ((recv (cat (hash "public" ltxa-0) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y-0)
-          (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-                (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" y-0) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-           (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-         (hash "nh_key" (hash "share" (hash "public" x) y-0)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-          (hash "nh_key" (hash "share" (hash "public" x) y-0)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa-0))) (recv "end-of-protocol")
-      (send ltxa-0))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-           (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-         (hash "nh_key" (hash "share" (hash "public" x) y-0)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-          (hash "nh_key" (hash "share" (hash "public" x) y-0)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-         (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-          (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))))
-    ((recv (cat "share" (hash "public" ltxb) ltxa-0))
-      (send (cat "share" (hash "public" ltxb) ltxa-0)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y-0)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y-0)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na-0 a-0 b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb))))))))
-    ((recv (cat (hash "public" ltxa-0) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y-0)
-          (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa-0) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" x) y-0)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa-0) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" y-0) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-                (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" x) y-0)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa-0) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa-0)
-                (hash "hint" (hash "share" (hash "public" ltxa-0) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" y-0) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb))))))))
-    ((recv (cat "share" (hash "public" x) y-0))
-      (send (cat "share" (hash "public" x) y-0))))
-  (label 64)
-  (parent 60)
-  (unrealized (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb na-0 nb-0 data) (a b a-0 name)
-    (y expt) (l ltxa y-0 x ltxb rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" ltxb) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b) (ltxa ltxa)
-    (ltxb ltxb) (y y-0) (x x))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (precedes ((0 1) (8 1)) ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1))
-    ((2 0) (0 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (8 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0))
-    ((8 2) (7 0)) ((9 1) (0 2)) ((10 1) (9 0)))
-  (absent (y-0 ltxa) (y-0 ltxb) (y-0 x) (x l) (x ltxb))
-  (fn-of ("ltx-of" (a-0 ltxa) (b ltxb) (a l))
-    ("principal-of" (ltxa a-0) (ltxb b) (l a)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen l y-0 x ltxb)
-  (uniq-orig na nb-0)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)) (9 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" ltxb) l))
-      (send (cat "share" (hash "public" ltxb) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na-0 a-0 b (hash "public" x)))
-      (send
-        (cat (hash "public" y-0)
-          (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" x) y-0)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" y-0) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" x) y-0)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" y-0) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb))))))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))))
-  (label 65)
-  (parent 61)
-  (unrealized (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (x rndx) (y expt)
-    (l l-0 rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb l-0) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" l-0) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l l-0))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" l-0) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" l-0) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" l-0) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) l-0))))
-  (deflistener (cat "hint" (hash "share" (hash "public" x) l-0)))
-  (deflistener (cat "share" (hash "public" x) l-0))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))
-    ((3 0) (0 0)) ((3 2) (9 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)) ((9 1) (8 0)))
-  (absent (x l) (x l-0))
-  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen x l l-0)
-  (uniq-orig na)
-  (operation nonce-test (displaced 10 3 ltx-gen 3) l-0 (9 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" l-0)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" l-0) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" l-0) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) l-0))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")
-      (send l-0))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" l-0) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" l-0) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) l-0))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" l-0) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" l-0) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" l-0) l))
-      (send (cat "share" (hash "public" l-0) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) l-0))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) l-0)))))
-    ((recv (cat "hint" (hash "share" (hash "public" x) l-0)))
-      (send (cat "hint" (hash "share" (hash "public" x) l-0))))
-    ((recv (cat "share" (hash "public" x) l-0))
-      (send (cat "share" (hash "public" x) l-0))))
-  (label 66)
-  (parent 62)
-  (unrealized (0 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb na-0 nb-0 data) (a b a-0 name)
-    (y expt) (l ltxa y-0 x ltxb rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" ltxb) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b) (ltxa ltxa)
-    (ltxb ltxb) (y y-0) (x x))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) l) hint1))
-  (precedes ((0 1) (8 1)) ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1))
-    ((2 0) (0 0)) ((2 0) (11 0)) ((2 2) (6 0)) ((3 0) (0 0))
-    ((3 0) (8 0)) ((3 0) (11 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)) ((8 2) (7 0)) ((9 1) (0 2))
-    ((10 1) (9 0)) ((11 1) (10 0)))
-  (absent (y-0 ltxa) (y-0 ltxb) (y-0 x) (x l) (x ltxb))
-  (fn-of ("ltx-of" (a-0 ltxa) (b ltxb) (a l))
-    ("principal-of" (ltxa a-0) (ltxb b) (l a)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen l y-0 x ltxb)
-  (uniq-orig na nb-0)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxb) l) hint1))
-    (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1) (10 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" ltxb) l))
-      (send (cat "share" (hash "public" ltxb) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na-0 a-0 b (hash "public" x)))
-      (send
-        (cat (hash "public" y-0)
-          (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" x) y-0)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" y-0) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" x) y-0)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" y-0) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb))))))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" ltxb) l) hint1))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) l) hint1))))
-  (label 67)
-  (parent 65)
-  (unrealized (10 0) (11 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxb ltxa y x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxb) ltxa))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "hint" (hash "share" (hash "public" x) ltxb)))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (10 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (10 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (10 0))
-    ((3 2) (9 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0))
-    ((7 1) (4 0)) ((8 1) (7 0)) ((9 1) (8 0)) ((10 2) (0 2)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb ltxa y x)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxb) ltxa))
-      (send (cat "share" (hash "public" ltxb) ltxa)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "hint" (hash "share" (hash "public" x) ltxb)))
-      (send (cat "hint" (hash "share" (hash "public" x) ltxb))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb)))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb)))))))))
-  (label 68)
-  (parent 66)
-  (unrealized (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (x rndx) (y expt)
-    (l l-0 rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb l-0) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" l-0) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l l-0))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" l-0) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" l-0) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" l-0) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) l-0))))
-  (deflistener (cat "hint" (hash "share" (hash "public" x) l-0)))
-  (deflistener (cat "share" (hash "public" x) l-0))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (precedes ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (9 0)) ((4 1) (1 0))
-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 1) (0 2)))
-  (absent (x l) (x l-0))
-  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen x l l-0)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-    (enc na nb a b hint1 hint2
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-    (0 2))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" l-0)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" l-0) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" l-0) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) l-0))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")
-      (send l-0))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" l-0) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" l-0) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) l-0))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" l-0) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" l-0) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" l-0) l))
-      (send (cat "share" (hash "public" l-0) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) l-0))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) l-0)))))
-    ((recv (cat "hint" (hash "share" (hash "public" x) l-0)))
-      (send (cat "hint" (hash "share" (hash "public" x) l-0))))
-    ((recv (cat "share" (hash "public" x) l-0))
-      (send (cat "share" (hash "public" x) l-0)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))))
-  (label 69)
-  (parent 66)
-  (unrealized (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb na-0 nb-0 data) (a b a-0 name)
-    (y expt) (l ltxa y-0 x ltxb rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" ltxb) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (defstrand resp 3 (na na-0) (nb nb-0) (a a-0) (b b) (ltxa ltxa)
-    (ltxb ltxb) (y y-0) (x x))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) l) hint1))
-  (deflistener (cat "share" (hash "public" ltxb) l))
-  (precedes ((0 1) (8 1)) ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1))
-    ((2 0) (0 0)) ((2 0) (12 0)) ((2 2) (6 0)) ((3 0) (0 0))
-    ((3 0) (8 0)) ((3 0) (12 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)) ((8 2) (7 0)) ((9 1) (0 2))
-    ((10 1) (9 0)) ((11 1) (10 0)) ((12 1) (11 0)))
-  (absent (y-0 ltxa) (y-0 ltxb) (y-0 x) (x l) (x ltxb))
-  (fn-of ("ltx-of" (a-0 ltxa) (b ltxb) (a l))
-    ("principal-of" (ltxa a-0) (ltxb b) (l a)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen l y-0 x ltxb)
-  (uniq-orig na nb-0)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxb) l))
-    (hash "share" (hash "public" ltxb) l) (11 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" ltxb) l))
-      (send (cat "share" (hash "public" ltxb) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na-0 a-0 b (hash "public" x)))
-      (send
-        (cat (hash "public" y-0)
-          (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" x) y-0)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" y-0) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" x) y-0)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na-0 nb-0 a-0 b
-            (hash "hint" (hash "share" (hash "public" ltxa) y-0))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y-0)))
-              (hash "nh_key" (hash "share" (hash "public" y-0) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb))))))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" ltxb) l) hint1))
-      (send (cat "nh_key" (hash "share" (hash "public" ltxb) l) hint1)))
-    ((recv (cat "share" (hash "public" ltxb) l))
-      (send (cat "share" (hash "public" ltxb) l))))
-  (label 70)
-  (parent 67)
-  (unrealized (10 0) (12 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxb ltxa y x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxb) ltxa))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "hint" (hash "share" (hash "public" x) ltxb)))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener (cat "share" (hash "public" x) y))
-  (precedes ((0 1) (10 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (10 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (10 0))
-    ((3 2) (9 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0))
-    ((7 1) (4 0)) ((8 1) (7 0)) ((9 1) (8 0)) ((10 2) (0 2))
-    ((10 2) (11 0)) ((11 1) (7 0)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb ltxa y x)
-  (uniq-orig na nb)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" x) y))
-    (hash "share" (hash "public" x) y) (7 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxb) ltxa))
-      (send (cat "share" (hash "public" ltxb) ltxa)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "hint" (hash "share" (hash "public" x) ltxb)))
-      (send (cat "hint" (hash "share" (hash "public" x) ltxb))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb)))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb))))))))
-    ((recv (cat "share" (hash "public" x) y))
-      (send (cat "share" (hash "public" x) y))))
-  (label 71)
-  (parent 68)
-  (unrealized (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (x rndx) (y expt)
-    (l l-0 rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb l-0) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" l-0) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l l-0))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" l-0) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" l-0) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" l-0) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) l-0))))
-  (deflistener (cat "hint" (hash "share" (hash "public" x) l-0)))
-  (deflistener (cat "share" (hash "public" x) l-0))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (precedes ((0 1) (11 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (9 0)) ((4 1) (1 0))
-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 1) (0 2)) ((11 1) (10 0)))
-  (absent (x l) (x l-0))
-  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen x l l-0)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)) (10 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" l-0)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" l-0) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" l-0) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) l-0))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")
-      (send l-0))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" l-0) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" l-0) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) l-0))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" l-0) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" l-0) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" l-0) l))
-      (send (cat "share" (hash "public" l-0) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) l-0))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) l-0)))))
-    ((recv (cat "hint" (hash "share" (hash "public" x) l-0)))
-      (send (cat "hint" (hash "share" (hash "public" x) l-0))))
-    ((recv (cat "share" (hash "public" x) l-0))
-      (send (cat "share" (hash "public" x) l-0)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))))
-  (label 72)
-  (parent 69)
-  (unrealized (11 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (x rndx) (y expt)
-    (l l-0 rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb l-0) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" l-0) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l l-0))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" l-0) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" l-0) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" l-0) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) l-0))))
-  (deflistener (cat "hint" (hash "share" (hash "public" x) l-0)))
-  (deflistener (cat "share" (hash "public" x) l-0))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" l-0) l) hint1))
-  (precedes ((0 1) (11 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (12 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (12 0))
-    ((3 2) (9 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0))
-    ((7 1) (4 0)) ((8 1) (7 0)) ((9 1) (8 0)) ((10 1) (0 2))
-    ((11 1) (10 0)) ((12 1) (11 0)))
-  (absent (x l) (x l-0))
-  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen x l l-0)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" l-0) l) hint1))
-    (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1) (11 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" l-0)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" l-0) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" l-0) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) l-0))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")
-      (send l-0))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" l-0) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" l-0) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) l-0))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" l-0) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" l-0) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" l-0) l))
-      (send (cat "share" (hash "public" l-0) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) l-0))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) l-0)))))
-    ((recv (cat "hint" (hash "share" (hash "public" x) l-0)))
-      (send (cat "hint" (hash "share" (hash "public" x) l-0))))
-    ((recv (cat "share" (hash "public" x) l-0))
-      (send (cat "share" (hash "public" x) l-0)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" l-0) l) hint1))
-      (send (cat "nh_key" (hash "share" (hash "public" l-0) l) hint1))))
-  (label 73)
-  (parent 72)
-  (unrealized (11 0) (12 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (x rndx) (y expt)
-    (l l-0 rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb l-0) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" l-0) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l l-0))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" l-0) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" l-0) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" l-0) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) l-0))))
-  (deflistener (cat "hint" (hash "share" (hash "public" x) l-0)))
-  (deflistener (cat "share" (hash "public" x) l-0))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" l-0) l) hint1))
-  (deflistener (cat "share" (hash "public" l-0) l))
-  (precedes ((0 1) (11 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (13 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (13 0))
-    ((3 2) (9 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0))
-    ((7 1) (4 0)) ((8 1) (7 0)) ((9 1) (8 0)) ((10 1) (0 2))
-    ((11 1) (10 0)) ((12 1) (11 0)) ((13 1) (12 0)))
-  (absent (x l) (x l-0))
-  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen x l l-0)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" l-0) l))
-    (hash "share" (hash "public" l-0) l) (12 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" l-0)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" l-0) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" l-0) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) l-0))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")
-      (send l-0))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" l-0) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" l-0) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) l-0))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" l-0) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" l-0) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" l-0) l))
-      (send (cat "share" (hash "public" l-0) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) l-0))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) l-0)))))
-    ((recv (cat "hint" (hash "share" (hash "public" x) l-0)))
-      (send (cat "hint" (hash "share" (hash "public" x) l-0))))
-    ((recv (cat "share" (hash "public" x) l-0))
-      (send (cat "share" (hash "public" x) l-0)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" l-0) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint2))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" l-0) l) hint1))
-      (send (cat "nh_key" (hash "share" (hash "public" l-0) l) hint1)))
-    ((recv (cat "share" (hash "public" l-0) l))
-      (send (cat "share" (hash "public" l-0) l))))
-  (label 74)
-  (parent 73)
-  (unrealized (11 0) (13 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) ltxb)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b self self-0 name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self self) (l ltxa))
-  (defstrand ltx-gen 3 (self self-0) (l ltxb))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 75)
-  (unrealized (0 0) (0 2) (1 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 76)
-  (parent 75)
-  (unrealized (0 2) (1 0))
-  (origs (na (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (1 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 77)
-  (parent 76)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (5 0)) ((3 0) (0 0)) ((3 0) (5 0)) ((4 1) (1 0))
-    ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 78)
-  (parent 77)
-  (unrealized (0 2) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxb) ltxa))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((3 0) (6 0)) ((4 1) (1 0))
-    ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxb) ltxa))
-    (hash "share" (hash "public" ltxb) ltxa) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxb) ltxa))
-      (send (cat "share" (hash "public" ltxb) ltxa))))
-  (label 79)
-  (parent 78)
-  (unrealized (0 2) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" ltxb) l))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation nonce-test (displaced 7 2 ltx-gen 3) l (6 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" ltxb) l))
-      (send (cat "share" (hash "public" ltxb) l))))
-  (label 80)
-  (parent 79)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" ltxb) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb))))
-    (hash "nh_key" (hash "share" (hash "public" y) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" ltxb) l))
-      (send (cat "share" (hash "public" ltxb) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) x)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (label 81)
-  (parent 80)
-  (unrealized (0 2) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" ltxb) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" y) x))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" y) x))
-    (hash "share" (hash "public" y) x) (7 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxb) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" ltxb) l))
-      (send (cat "share" (hash "public" ltxb) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) x)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" y) x))
-      (send (cat "share" (hash "public" y) x))))
-  (label 82)
-  (parent 81)
-  (unrealized (0 2) (7 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
diff --git a/tst/nhcr_um3.scm b/tst/nhcr_um3.scm
deleted file mode 100644
--- a/tst/nhcr_um3.scm
+++ /dev/null
@@ -1,233 +0,0 @@
-; Unified Model  This version used in the paper, tooldev/dh/conf_dh/dh_ebn.tex
-
-; This file models the "Unified Model" method of determining a fresh
-; key from long-term and ephemeral values.  We use
-; function relation declarations to link names to long-term public
-; values.
-
-;;; This file contains the standard version, in which the two
-;;; ephemeral are mixed, as are the two static long term values.
-
-; A role is provided in which a party signs a fresh long-term
-; value, and then leaks the exponent.  The latter step
-; is used to test the notion of forward security.
-
-; Two inputs are analyzed.  In the first, we model that two
-; participants exist that agree on the UM key.  The notion of
-; "implicit authentication" suggests that if one participant exists
-; and another party knows the same key, that party must be either the
-; participant or the participant's intended partner.
-
-; In this version, we assume that the long-term keys of the
-; participants do not leak.
-
-; The second input checks whether the key can be learned when the key
-; is generated honestly.  In this version, we do NOT assume that the
-; long-term keys of the participants do not leak.
-
-(herald "NHCR: unified model (UM3) original" (bound 20) (limit 8000) (algebra diffie-hellman))
-
-(defmacro (nh_public k1)
-  ;(exp (gen) x1))
-  (hash "public" k1))
-
-(defmacro (nh_share k1 k2)
-  ;(hash "share" (nh_public (mul x1 x2))))
-  (hash "share" (nh_public k1) k2))
-
-; Use this macro to generate the hint
-(defmacro (nh_hint k1 k2)
-  (hash "hint" (nh_share k1 k2)))
-
-(defmacro (nh_key1 k1 k2 h)
-  (hash "nh_key" (nh_share k1 k2) h))
-
-(defmacro (nh_key2 k1 k2 h)
-  (hash "nh_key" (nh_share k2 k1) h))
-
-(defmacro (key_hint111 ltk1 ltk2 ek1 ek2 h1 h2 h3)
-  (hash "key" (nh_key1 ltk1 ek2 h1) (nh_key1 ek1 ltk2 h2) (nh_key1 ek1 ek2 h3)))
-(defmacro (key_hint112 ltk1 ltk2 ek1 ek2 h1 h2 h3)
-  (hash "key" (nh_key1 ltk1 ek2 h1) (nh_key1 ek1 ltk2 h2) (nh_key2 ek1 ek2 h3)))
-(defmacro (key_hint121 ltk1 ltk2 ek1 ek2 h1 h2 h3)
-  (hash "key" (nh_key1 ltk1 ek2 h1) (nh_key2 ek1 ltk2 h2) (nh_key1 ek1 ek2 h3)))
-(defmacro (key_hint122 ltk1 ltk2 ek1 ek2 h1 h2 h3)
-  (hash "key" (nh_key1 ltk1 ek2 h1) (nh_key2 ek1 ltk2 h2) (nh_key2 ek1 ek2 h3)))
-(defmacro (key_hint211 ltk1 ltk2 ek1 ek2 h1 h2 h3)
-  (hash "key" (nh_key2 ltk1 ek2 h1) (nh_key1 ek1 ltk2 h2) (nh_key1 ek1 ek2 h3)))
-(defmacro (key_hint212 ltk1 ltk2 ek1 ek2 h1 h2 h3)
-  (hash "key" (nh_key2 ltk1 ek2 h1) (nh_key1 ek1 ltk2 h2) (nh_key2 ek1 ek2 h3)))
-(defmacro (key_hint221 ltk1 ltk2 ek1 ek2 h1 h2 h3)
-  (hash "key" (nh_key2 ltk1 ek2 h1) (nh_key2 ek1 ltk2 h2) (nh_key1 ek1 ek2 h3)))
-(defmacro (key_hint222 ltk1 ltk2 ek1 ek2 h1 h2 h3)
-  (hash "key" (nh_key2 ltk1 ek2 h1) (nh_key2 ek1 ltk2 h2) (nh_key2 ek1 ek2 h3)))
-
-(defprotocol nhcr-um3 diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data) (hint1 hint2 hint3 mesg))
-    (trace
-     (recv (cat (nh_public ltxa) (nh_public ltxb)))
-     (send (cat na a b (nh_public x)))
-     (recv (cat (nh_public y) hint1 hint2 hint3
-                (enc na nb a b hint1 hint2 hint3
-                     (key_hint222 ltxa ltxb x y hint1 hint2 hint3))))
-     (send nb)
-     )
-    (fn-of ("principal-of" (ltxa a) (ltxb b))
-           ("ltx-of" (a ltxa) (b ltxb)))
-    (uniq-gen x)
-    (uniq-orig na)
-    (neq ((exp (gen) y) (gen))))
-
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace
-     (recv (cat (nh_public ltxa) (nh_public ltxb)))
-     (recv (cat na a b (nh_public x)))
-     (send (cat (nh_public y) (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)
-                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)
-           (key_hint111 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))
-                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)
-           (key_hint112 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))
-                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)
-           (key_hint121 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))
-                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)
-           (key_hint122 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))
-                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)
-           (key_hint211 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))
-                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)
-           (key_hint212 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))
-                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)
-           (key_hint221 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))
-                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)
-           (key_hint222 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))))
-     (recv nb)
-     )
-    (fn-of ("principal-of" (ltxa a) (ltxb b))
-	   ("ltx-of" (a ltxa) (b ltxb)))
-    (uniq-gen y)
-    (uniq-orig nb)
-    (neq ((exp (gen) x) (gen))))
-
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace
-     (send (cat self (nh_public l)))
-     (recv "end-of-protocol")
-     (send l))
-    (uniq-gen l)
-    (fn-of ("principal-of" (l self))
-	   ("ltx-of" (self l)))))
-
-; Initiator point of view: both LTX exponents secret
-(defskeleton nhcr-um3
-  (vars (ltxa ltxb rndx) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
-  (defstrand ltx-gen 1 (l ltxa))
-  (defstrand ltx-gen 1 (l ltxb))
-  (non-orig ltxa ltxb) (neq (a b)))
-
-; Initiator point of view: partner's exponent secret
-(defskeleton nhcr-um3
-  (vars (ltxa ltxb rndx) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
-  (defstrand ltx-gen 1 (l ltxb))
-  (non-orig ltxb)
-  (neq (a b)))
-
-; Responder point of view; both exponents secret
-(defskeleton nhcr-um3
-  (vars (ltxa ltxb rndx) (a b name))
-  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
-  (defstrand ltx-gen 1 (l ltxa))
-  (defstrand ltx-gen 1 (l ltxb))
-  (non-orig ltxa ltxb)
-  (neq (a b)))
-
-; Responder point of view; partner's exponent secre
-(defskeleton nhcr-um3
-  (vars (ltxa ltxb rndx) (a b name))
-  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
-  (defstrand ltx-gen 1 (l ltxa))
-  (non-orig ltxa)
-  (neq (a b)))
-
-;;; Forward secrecy, neither long-term exponent secure
-(defskeleton nhcr-um3
-  (vars (ltxa ltxb x rndx) (y expt) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
-  (deflistener (key_hint111 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))
-  (defstrand ltx-gen 3 (l ltxa))
-  (defstrand ltx-gen 3 (l ltxb))
-  (precedes ((0 3) (3 1)) ((0 3) (2 1)))
-  (neq (a b)))
-
-;;; Forward secrecy, neither long-term exponent secure
-(defskeleton nhcr-um3
-  (vars (ltxa ltxb x rndx) (y expt) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
-  (deflistener (key_hint112 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))
-  (defstrand ltx-gen 3 (l ltxa))
-  (defstrand ltx-gen 3 (l ltxb))
-  (precedes ((0 3) (3 1)) ((0 3) (2 1)))
-  (neq (a b)))
-
-;;; Forward secrecy, neither long-term exponent secure
-(defskeleton nhcr-um3
-  (vars (ltxa ltxb x rndx) (y expt) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
-  (deflistener (key_hint121 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))
-  (defstrand ltx-gen 3 (l ltxa))
-  (defstrand ltx-gen 3 (l ltxb))
-  (precedes ((0 3) (3 1)) ((0 3) (2 1)))
-  (neq (a b)))
-
-;;; Forward secrecy, neither long-term exponent secure
-(defskeleton nhcr-um3
-  (vars (ltxa ltxb x rndx) (y expt) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
-  (deflistener (key_hint122 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))
-  (defstrand ltx-gen 3 (l ltxa))
-  (defstrand ltx-gen 3 (l ltxb))
-  (precedes ((0 3) (3 1)) ((0 3) (2 1)))
-  (neq (a b)))
-
-;;; Forward secrecy, neither long-term exponent secure
-(defskeleton nhcr-um3
-  (vars (ltxa ltxb x rndx) (y expt) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
-  (deflistener (key_hint211 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))
-  (defstrand ltx-gen 3 (l ltxa))
-  (defstrand ltx-gen 3 (l ltxb))
-  (precedes ((0 3) (3 1)) ((0 3) (2 1)))
-  (neq (a b)))
-
-;;; Forward secrecy, neither long-term exponent secure
-(defskeleton nhcr-um3
-  (vars (ltxa ltxb x rndx) (y expt) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
-  (deflistener (key_hint212 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))
-  (defstrand ltx-gen 3 (l ltxa))
-  (defstrand ltx-gen 3 (l ltxb))
-  (precedes ((0 3) (3 1)) ((0 3) (2 1)))
-  (neq (a b)))
-
-;;; Forward secrecy, neither long-term exponent secure
-(defskeleton nhcr-um3
-  (vars (ltxa ltxb x rndx) (y expt) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
-  (deflistener (key_hint221 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))
-  (defstrand ltx-gen 3 (l ltxa))
-  (defstrand ltx-gen 3 (l ltxb))
-  (precedes ((0 3) (3 1)) ((0 3) (2 1)))
-  (neq (a b)))
-
-;;; Forward secrecy, neither long-term exponent secure
-(defskeleton nhcr-um3
-  (vars (ltxa ltxb x rndx) (y expt) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
-  (deflistener (key_hint222 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb) (nh_hint x y)))
-  (defstrand ltx-gen 3 (l ltxa))
-  (defstrand ltx-gen 3 (l ltxb))
-  (precedes ((0 3) (3 1)) ((0 3) (2 1)))
-  (neq (a b)))
diff --git a/tst/nhcr_um3.tst b/tst/nhcr_um3.tst
deleted file mode 100644
--- a/tst/nhcr_um3.tst
+++ /dev/null
@@ -1,22358 +0,0 @@
-(herald "NHCR: unified model (UM3) original" (bound 20) (limit 8000)
-  (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/nhcr_um3.scm")
-(comment "Step count limited to 8000")
-(comment "Strand count bounded at 20")
-
-(defprotocol nhcr-um3 diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 hint3 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b self self-0 name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self self) (l ltxa))
-  (defstrand ltx-gen 1 (self self-0) (l ltxb))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((send (cat self (hash "public" ltxa))))
-    ((send (cat self-0 (hash "public" ltxb)))))
-  (label 0)
-  (unrealized (0 0) (0 2))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)) ((2 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb)))))
-  (label 1)
-  (parent 0)
-  (unrealized (0 2))
-  (origs (na (0 1)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))
-    (hint3 (hash "hint" (hash "share" (hash "public" x) y))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (0 2)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen y ltxa ltxb x)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y))))) (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (send nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))))
-  (label 2)
-  (parent 1)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1 2)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na) (nb nb)
-        (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hint3 (hash "hint" (hash "share" (hash "public" x) y))))))
-  (origs (nb (3 2)) (na (0 1))))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-    (enc na nb a b hint1 hint2 hint3
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-    (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))))
-  (label 3)
-  (parent 1)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2))
-    ((4 1) (3 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))))
-  (label 4)
-  (parent 3)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))
-  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((1 0) (5 0)) ((2 0) (0 0))
-    ((3 1) (0 2)) ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))))
-  (label 5)
-  (parent 4)
-  (unrealized (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-um3 diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 hint3 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b self name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self self) (l ltxb))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (self ltxb) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((send (cat self (hash "public" ltxb)))))
-  (label 6)
-  (unrealized (0 0) (0 2))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((send (cat b (hash "public" ltxb)))))
-  (label 7)
-  (parent 6)
-  (unrealized (0 2))
-  (origs (na (0 1)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))
-    (hint3 (hash "hint" (hash "share" (hash "public" x) y))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen y ltxb x)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y))))) (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (send nb)) ((send (cat b (hash "public" ltxb))))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))))
-  (label 8)
-  (parent 7)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na) (nb nb)
-        (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hint3 (hash "hint" (hash "share" (hash "public" x) y))))))
-  (origs (nb (2 2)) (na (0 1))))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (0 2)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-    (enc na nb a b hint1 hint2 hint3
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-    (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))))
-  (label 9)
-  (parent 7)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)) (2 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))))
-  (label 10)
-  (parent 9)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))
-  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))
-    (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))))
-  (label 11)
-  (parent 10)
-  (unrealized (3 0) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))
-  (deflistener (cat "share" (hash "public" ltxb) x))
-  (precedes ((0 1) (5 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxb) x))
-    (hash "share" (hash "public" ltxb) x) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))
-      (send (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-    ((recv (cat "share" (hash "public" ltxb) x))
-      (send (cat "share" (hash "public" ltxb) x))))
-  (label 12)
-  (parent 11)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-um3 diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 hint3 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self self) (l ltxa))
-  (defstrand ltx-gen 1 (self self-0) (l ltxb))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat self (hash "public" ltxa))))
-    ((send (cat self-0 (hash "public" ltxb)))))
-  (label 13)
-  (unrealized (0 0) (0 3))
-  (preskeleton)
-  (origs (nb (0 2)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)) ((2 0) (0 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb)))))
-  (label 14)
-  (parent 13)
-  (unrealized (0 3))
-  (origs (nb (0 2)))
-  (comment "9 in cohort - 9 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))
-    (hint3 (hash "hint" (hash "share" (hash "public" x) y))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 1) (0 1)) ((3 3) (0 3)))
-  (absent (x ltxa) (x ltxb) (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) y) (gen)) (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen y ltxa ltxb x)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand init 4) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (send nb)))
-  (label 15)
-  (parent 14)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1 2)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)
-        (nb nb))))
-  (origs (na (3 1)) (nb (0 2))))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 16)
-  (parent 14)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 17)
-  (parent 14)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 18)
-  (parent 14)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 19)
-  (parent 14)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 20)
-  (parent 14)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 21)
-  (parent 14)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 22)
-  (parent 14)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 23)
-  (parent 14)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 24)
-  (parent 16)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 25)
-  (parent 17)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 26)
-  (parent 18)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 27)
-  (parent 19)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 28)
-  (parent 20)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 29)
-  (parent 21)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 30)
-  (parent 22)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 31)
-  (parent 23)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 32)
-  (parent 24)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 33)
-  (parent 25)
-  (unrealized (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 34)
-  (parent 26)
-  (unrealized (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 35)
-  (parent 27)
-  (unrealized (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 36)
-  (parent 28)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 37)
-  (parent 29)
-  (unrealized (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 38)
-  (parent 30)
-  (unrealized (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 39)
-  (parent 31)
-  (unrealized (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) y))
-  (precedes ((0 2) (6 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxa) y))
-    (hash "share" (hash "public" ltxa) y) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) y))
-      (send (cat "share" (hash "public" ltxa) y))))
-  (label 40)
-  (parent 32)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) y))
-  (precedes ((0 2) (6 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxa) y))
-    (hash "share" (hash "public" ltxa) y) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) y))
-      (send (cat "share" (hash "public" ltxa) y))))
-  (label 41)
-  (parent 33)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) y))
-  (precedes ((0 2) (6 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxa) y))
-    (hash "share" (hash "public" ltxa) y) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) y))
-      (send (cat "share" (hash "public" ltxa) y))))
-  (label 42)
-  (parent 34)
-  (unrealized (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) y))
-  (precedes ((0 2) (6 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxa) y))
-    (hash "share" (hash "public" ltxa) y) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) y))
-      (send (cat "share" (hash "public" ltxa) y))))
-  (label 43)
-  (parent 35)
-  (unrealized (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-um3 diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 hint3 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self self) (l ltxa))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat self (hash "public" ltxa)))))
-  (label 44)
-  (unrealized (0 0) (0 3))
-  (preskeleton)
-  (origs (nb (0 2)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (precedes ((1 0) (0 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa)))))
-  (label 45)
-  (parent 44)
-  (unrealized (0 3))
-  (origs (nb (0 2)))
-  (comment "9 in cohort - 9 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))
-    (hint3 (hash "hint" (hash "share" (hash "public" x) y))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((2 3) (0 3)))
-  (absent (x ltxa) (x ltxb) (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) y) (gen)) (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen y ltxa x)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand init 4) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (send nb)))
-  (label 46)
-  (parent 45)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)
-        (nb nb))))
-  (origs (na (2 1)) (nb (0 2))))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 47)
-  (parent 45)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 48)
-  (parent 45)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 49)
-  (parent 45)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 50)
-  (parent 45)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 51)
-  (parent 45)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 52)
-  (parent 45)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 53)
-  (parent 45)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 54)
-  (parent 45)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (2 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 55)
-  (parent 47)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (2 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 56)
-  (parent 48)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (2 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 57)
-  (parent 49)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (2 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 58)
-  (parent 50)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (2 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 59)
-  (parent 51)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (2 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 60)
-  (parent 52)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (2 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 61)
-  (parent 53)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (2 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 62)
-  (parent 54)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 63)
-  (parent 55)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 64)
-  (parent 56)
-  (unrealized (3 0) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 65)
-  (parent 57)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 66)
-  (parent 58)
-  (unrealized (3 0) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 67)
-  (parent 59)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 68)
-  (parent 60)
-  (unrealized (3 0) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 69)
-  (parent 61)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 70)
-  (parent 62)
-  (unrealized (3 0) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) y))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxa) y))
-    (hash "share" (hash "public" ltxa) y) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) y))
-      (send (cat "share" (hash "public" ltxa) y))))
-  (label 71)
-  (parent 63)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) y))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxa) y))
-    (hash "share" (hash "public" ltxa) y) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) y))
-      (send (cat "share" (hash "public" ltxa) y))))
-  (label 72)
-  (parent 64)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) y))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxa) y))
-    (hash "share" (hash "public" ltxa) y) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) y))
-      (send (cat "share" (hash "public" ltxa) y))))
-  (label 73)
-  (parent 65)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) y))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxa) y))
-    (hash "share" (hash "public" ltxa) y) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) y))
-      (send (cat "share" (hash "public" ltxa) y))))
-  (label 74)
-  (parent 66)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-um3 diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 hint3 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b self self-0 name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self self) (l ltxa))
-  (defstrand ltx-gen 3 (self self-0) (l ltxb))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 75)
-  (unrealized (0 0) (0 2) (1 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 76)
-  (parent 75)
-  (unrealized (0 2) (1 0))
-  (origs (na (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (1 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 77)
-  (parent 76)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb))))
-    (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (label 78)
-  (parent 77)
-  (unrealized (0 2) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" x) ltxb))
-    (hash "share" (hash "public" x) ltxb) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb))))
-  (label 79)
-  (parent 78)
-  (unrealized (0 2) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l)
-      (hash "hint" (hash "share" (hash "public" x) l))))
-  (deflistener (cat "share" (hash "public" x) l))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((3 0) (0 0))
-    ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation nonce-test (displaced 7 3 ltx-gen 3) l (6 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l)
-         (hash "hint" (hash "share" (hash "public" x) l))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l)
-          (hash "hint" (hash "share" (hash "public" x) l)))))
-    ((recv (cat "share" (hash "public" x) l))
-      (send (cat "share" (hash "public" x) l))))
-  (label 80)
-  (parent 79)
-  (unrealized (0 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))
-    (hint3 (hash "hint" (hash "share" (hash "public" x) y))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (7 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (7 0)) ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 2) (0 2)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y ltxa ltxb x)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y))))) (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb)))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))))
-  (label 81)
-  (parent 80)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l)
-      (hash "hint" (hash "share" (hash "public" x) l))))
-  (deflistener (cat "share" (hash "public" x) l))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (0 2)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-    (enc na nb a b hint1 hint2 hint3
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-    (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l)
-         (hash "hint" (hash "share" (hash "public" x) l))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l)
-          (hash "hint" (hash "share" (hash "public" x) l)))))
-    ((recv (cat "share" (hash "public" x) l))
-      (send (cat "share" (hash "public" x) l)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))))
-  (label 82)
-  (parent 80)
-  (unrealized (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))
-    (hint3 (hash "hint" (hash "share" (hash "public" x) y))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 1) (7 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (7 0)) ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 2) (0 2))
-    ((7 2) (8 0)) ((8 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y ltxa ltxb x)
-  (uniq-orig na nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb)))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y))))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 83)
-  (parent 81)
-  (unrealized (4 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l)
-      (hash "hint" (hash "share" (hash "public" x) l))))
-  (deflistener (cat "share" (hash "public" x) l))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (0 2)) ((8 1) (7 0)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)) (7 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l)
-         (hash "hint" (hash "share" (hash "public" x) l))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l)
-          (hash "hint" (hash "share" (hash "public" x) l)))))
-    ((recv (cat "share" (hash "public" x) l))
-      (send (cat "share" (hash "public" x) l)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))))
-  (label 84)
-  (parent 82)
-  (unrealized (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))
-    (hint3 (hash "hint" (hash "share" (hash "public" x) y))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) y))
-  (precedes ((0 1) (7 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (7 0)) ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 2) (0 2))
-    ((7 2) (9 0)) ((8 1) (4 0)) ((9 1) (8 0)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y ltxa ltxb x)
-  (uniq-orig na nb)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxa) y))
-    (hash "share" (hash "public" ltxa) y) (8 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb)))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y))))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) y))
-      (send (cat "share" (hash "public" ltxa) y))))
-  (label 85)
-  (parent 83)
-  (unrealized (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l)
-      (hash "hint" (hash "share" (hash "public" x) l))))
-  (deflistener (cat "share" (hash "public" x) l))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (9 0)) ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0))
-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (0 2)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1) (8 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l)
-         (hash "hint" (hash "share" (hash "public" x) l))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l)
-          (hash "hint" (hash "share" (hash "public" x) l)))))
-    ((recv (cat "share" (hash "public" x) l))
-      (send (cat "share" (hash "public" x) l)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))))
-  (label 86)
-  (parent 84)
-  (unrealized (8 0) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l)
-      (hash "hint" (hash "share" (hash "public" x) l))))
-  (deflistener (cat "share" (hash "public" x) l))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))
-  (deflistener (cat "share" (hash "public" y) ltxa))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (10 0)) ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0))
-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (0 2)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" y) ltxa))
-    (hash "share" (hash "public" y) ltxa) (9 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l)
-         (hash "hint" (hash "share" (hash "public" x) l))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l)
-          (hash "hint" (hash "share" (hash "public" x) l)))))
-    ((recv (cat "share" (hash "public" x) l))
-      (send (cat "share" (hash "public" x) l)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))
-      (send (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1)))
-    ((recv (cat "share" (hash "public" y) ltxa))
-      (send (cat "share" (hash "public" y) ltxa))))
-  (label 87)
-  (parent 86)
-  (unrealized (8 0) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-um3 diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 hint3 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b self self-0 name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self self) (l ltxa))
-  (defstrand ltx-gen 3 (self self-0) (l ltxb))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 88)
-  (unrealized (0 0) (0 2) (1 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 89)
-  (parent 88)
-  (unrealized (0 2) (1 0))
-  (origs (na (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (1 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 90)
-  (parent 89)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb))))
-    (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (label 91)
-  (parent 90)
-  (unrealized (0 2) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" x) ltxb))
-    (hash "share" (hash "public" x) ltxb) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb))))
-  (label 92)
-  (parent 91)
-  (unrealized (0 2) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l)
-      (hash "hint" (hash "share" (hash "public" x) l))))
-  (deflistener (cat "share" (hash "public" x) l))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((3 0) (0 0))
-    ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation nonce-test (displaced 7 3 ltx-gen 3) l (6 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l)
-         (hash "hint" (hash "share" (hash "public" x) l))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l)
-          (hash "hint" (hash "share" (hash "public" x) l)))))
-    ((recv (cat "share" (hash "public" x) l))
-      (send (cat "share" (hash "public" x) l))))
-  (label 93)
-  (parent 92)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l)
-      (hash "hint" (hash "share" (hash "public" x) l))))
-  (deflistener (cat "share" (hash "public" x) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) x)
-      (hash "hint" (hash "share" (hash "public" x) y))))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y))))
-    (hash "nh_key" (hash "share" (hash "public" y) x)
-      (hash "hint" (hash "share" (hash "public" x) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l)
-         (hash "hint" (hash "share" (hash "public" x) l))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l)
-          (hash "hint" (hash "share" (hash "public" x) l)))))
-    ((recv (cat "share" (hash "public" x) l))
-      (send (cat "share" (hash "public" x) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) x)
-         (hash "hint" (hash "share" (hash "public" x) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (label 94)
-  (parent 93)
-  (unrealized (0 2) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l)
-      (hash "hint" (hash "share" (hash "public" x) l))))
-  (deflistener (cat "share" (hash "public" x) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) x)
-      (hash "hint" (hash "share" (hash "public" x) y))))
-  (deflistener (cat "share" (hash "public" y) x))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" y) x))
-    (hash "share" (hash "public" y) x) (7 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" l) x) hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l)
-         (hash "hint" (hash "share" (hash "public" x) l))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l)
-          (hash "hint" (hash "share" (hash "public" x) l)))))
-    ((recv (cat "share" (hash "public" x) l))
-      (send (cat "share" (hash "public" x) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) x)
-         (hash "hint" (hash "share" (hash "public" x) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    ((recv (cat "share" (hash "public" y) x))
-      (send (cat "share" (hash "public" y) x))))
-  (label 95)
-  (parent 94)
-  (unrealized (0 2) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-um3 diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 hint3 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b self self-0 name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self self) (l ltxa))
-  (defstrand ltx-gen 3 (self self-0) (l ltxb))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 96)
-  (unrealized (0 0) (0 2) (1 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 97)
-  (parent 96)
-  (unrealized (0 2) (1 0))
-  (origs (na (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (1 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 98)
-  (parent 97)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb))))
-    (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (label 99)
-  (parent 98)
-  (unrealized (0 2) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" ltxb) x))
-  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxb) x))
-    (hash "share" (hash "public" ltxb) x) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" ltxb) x))
-      (send (cat "share" (hash "public" ltxb) x))))
-  (label 100)
-  (parent 99)
-  (unrealized (0 2) (5 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-um3 diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 hint3 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b self self-0 name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self self) (l ltxa))
-  (defstrand ltx-gen 3 (self self-0) (l ltxb))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 101)
-  (unrealized (0 0) (0 2) (1 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 102)
-  (parent 101)
-  (unrealized (0 2) (1 0))
-  (origs (na (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (1 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 103)
-  (parent 102)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb))))
-    (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (label 104)
-  (parent 103)
-  (unrealized (0 2) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" ltxb) x))
-  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxb) x))
-    (hash "share" (hash "public" ltxb) x) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" ltxb) x))
-      (send (cat "share" (hash "public" ltxb) x))))
-  (label 105)
-  (parent 104)
-  (unrealized (0 2) (5 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-um3 diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 hint3 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b self self-0 name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self self) (l ltxa))
-  (defstrand ltx-gen 3 (self self-0) (l ltxb))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 106)
-  (unrealized (0 0) (0 2) (1 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 107)
-  (parent 106)
-  (unrealized (0 2) (1 0))
-  (origs (na (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (1 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 108)
-  (parent 107)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (5 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 109)
-  (parent 108)
-  (unrealized (0 2) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" y) ltxa))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" y) ltxa))
-    (hash "share" (hash "public" y) ltxa) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" y) ltxa))
-      (send (cat "share" (hash "public" y) ltxa))))
-  (label 110)
-  (parent 109)
-  (unrealized (0 2) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation nonce-test (displaced 7 2 ltx-gen 3) l (6 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l))))
-  (label 111)
-  (parent 110)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb))))
-    (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (label 112)
-  (parent 111)
-  (unrealized (0 2) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" x) ltxb))
-    (hash "share" (hash "public" x) ltxb) (7 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb))))
-  (label 113)
-  (parent 112)
-  (unrealized (0 2) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (x rndx)
-    (y expt) (l l-0 rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa l) (ltxb l-0) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l l-0))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l-0)
-      (hash "hint" (hash "share" (hash "public" x) l-0))))
-  (deflistener (cat "share" (hash "public" x) l-0))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))
-    ((3 0) (0 0)) ((3 2) (8 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))
-  (absent (x l) (x l-0))
-  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen x l l-0)
-  (uniq-orig na)
-  (operation nonce-test (displaced 9 3 ltx-gen 3) l-0 (8 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" l-0)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")
-      (send l-0))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l-0)
-         (hash "hint" (hash "share" (hash "public" x) l-0))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l-0)
-          (hash "hint" (hash "share" (hash "public" x) l-0)))))
-    ((recv (cat "share" (hash "public" x) l-0))
-      (send (cat "share" (hash "public" x) l-0))))
-  (label 114)
-  (parent 113)
-  (unrealized (0 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))
-    (hint3 (hash "hint" (hash "share" (hash "public" x) y))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" y) ltxa))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (9 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (9 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (9 0))
-    ((3 2) (8 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0))
-    ((7 1) (4 0)) ((8 1) (7 0)) ((9 2) (0 2)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y ltxa ltxb x)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "hint" (hash "share" (hash "public" x) y))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y))))) (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" y) ltxa))
-      (send (cat "share" (hash "public" y) ltxa)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb)))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))))
-  (label 115)
-  (parent 114)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (x rndx)
-    (y expt) (l l-0 rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa l) (ltxb l-0) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l l-0))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l-0)
-      (hash "hint" (hash "share" (hash "public" x) l-0))))
-  (deflistener (cat "share" (hash "public" x) l-0))
-  (deflistener
-    (hash "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (precedes ((0 1) (9 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (8 0)) ((4 1) (1 0))
-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0))
-    ((9 1) (0 2)))
-  (absent (x l) (x l-0))
-  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen x l l-0)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-        (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-    (enc na nb a b hint1 hint2 hint3
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-        (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-    (0 2))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" l-0)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")
-      (send l-0))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l-0)
-         (hash "hint" (hash "share" (hash "public" x) l-0))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l-0)
-          (hash "hint" (hash "share" (hash "public" x) l-0)))))
-    ((recv (cat "share" (hash "public" x) l-0))
-      (send (cat "share" (hash "public" x) l-0)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))))
-  (label 116)
-  (parent 114)
-  (unrealized (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))
-    (hint3 (hash "hint" (hash "share" (hash "public" x) y))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" y) ltxa))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) y))))
-  (precedes ((0 1) (9 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (9 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (9 0))
-    ((3 2) (8 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0))
-    ((7 1) (4 0)) ((8 1) (7 0)) ((9 2) (0 2)) ((9 2) (10 0))
-    ((10 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y ltxa ltxb x)
-  (uniq-orig na nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y))))
-    (hash "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" y) ltxa))
-      (send (cat "share" (hash "public" y) ltxa)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb)))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y))))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (label 117)
-  (parent 115)
-  (unrealized (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (x rndx)
-    (y expt) (l l-0 rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa l) (ltxb l-0) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l l-0))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l-0)
-      (hash "hint" (hash "share" (hash "public" x) l-0))))
-  (deflistener (cat "share" (hash "public" x) l-0))
-  (deflistener
-    (hash "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (deflistener
-    (cat "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (precedes ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (8 0)) ((4 1) (1 0))
-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0))
-    ((9 1) (0 2)) ((10 1) (9 0)))
-  (absent (x l) (x l-0))
-  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen x l l-0)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-        (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-        (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-    (hash "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)) (9 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" l-0)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")
-      (send l-0))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l-0)
-         (hash "hint" (hash "share" (hash "public" x) l-0))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l-0)
-          (hash "hint" (hash "share" (hash "public" x) l-0)))))
-    ((recv (cat "share" (hash "public" x) l-0))
-      (send (cat "share" (hash "public" x) l-0)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))))
-  (label 118)
-  (parent 116)
-  (unrealized (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb)))
-    (hint3 (hash "hint" (hash "share" (hash "public" x) y))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" y) ltxa))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) y)
-      (hash "hint" (hash "share" (hash "public" x) y))))
-  (deflistener (cat "share" (hash "public" x) y))
-  (precedes ((0 1) (9 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (9 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (9 0))
-    ((3 2) (8 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0))
-    ((7 1) (4 0)) ((8 1) (7 0)) ((9 2) (0 2)) ((9 2) (11 0))
-    ((10 1) (4 0)) ((11 1) (10 0)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y ltxa ltxb x)
-  (uniq-orig na nb)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" x) y))
-    (hash "share" (hash "public" x) y) (10 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" y) ltxa))
-      (send (cat "share" (hash "public" y) ltxa)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb)))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y))))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) y)
-         (hash "hint" (hash "share" (hash "public" x) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    ((recv (cat "share" (hash "public" x) y))
-      (send (cat "share" (hash "public" x) y))))
-  (label 119)
-  (parent 117)
-  (unrealized (11 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (x rndx)
-    (y expt) (l l-0 rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa l) (ltxb l-0) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l l-0))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l-0)
-      (hash "hint" (hash "share" (hash "public" x) l-0))))
-  (deflistener (cat "share" (hash "public" x) l-0))
-  (deflistener
-    (hash "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (deflistener
-    (cat "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (deflistener (cat "nh_key" (hash "share" (hash "public" y) l) hint1))
-  (precedes ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (11 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (8 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0))
-    ((8 1) (7 0)) ((9 1) (0 2)) ((10 1) (9 0)) ((11 1) (10 0)))
-  (absent (x l) (x l-0))
-  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen x l l-0)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) l) hint1))
-    (hash "nh_key" (hash "share" (hash "public" y) l) hint1) (10 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" l-0)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")
-      (send l-0))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l-0)
-         (hash "hint" (hash "share" (hash "public" x) l-0))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l-0)
-          (hash "hint" (hash "share" (hash "public" x) l-0)))))
-    ((recv (cat "share" (hash "public" x) l-0))
-      (send (cat "share" (hash "public" x) l-0)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" y) l) hint1))
-      (send (cat "nh_key" (hash "share" (hash "public" y) l) hint1))))
-  (label 120)
-  (parent 118)
-  (unrealized (10 0) (11 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (x rndx)
-    (y expt) (l l-0 rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa l) (ltxb l-0) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l l-0))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l-0)
-      (hash "hint" (hash "share" (hash "public" x) l-0))))
-  (deflistener (cat "share" (hash "public" x) l-0))
-  (deflistener
-    (hash "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (deflistener
-    (cat "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-      (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-  (deflistener (cat "nh_key" (hash "share" (hash "public" y) l) hint1))
-  (deflistener (cat "share" (hash "public" y) l))
-  (precedes ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (12 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (8 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0))
-    ((8 1) (7 0)) ((9 1) (0 2)) ((10 1) (9 0)) ((11 1) (10 0))
-    ((12 1) (11 0)))
-  (absent (x l) (x l-0))
-  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen x l l-0)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" y) l))
-    (hash "share" (hash "public" y) l) (11 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" l-0)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")
-      (send l-0))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l-0)
-         (hash "hint" (hash "share" (hash "public" x) l-0))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l-0)
-          (hash "hint" (hash "share" (hash "public" x) l-0)))))
-    ((recv (cat "share" (hash "public" x) l-0))
-      (send (cat "share" (hash "public" x) l-0)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-         (hash "nh_key" (hash "share" (hash "public" y) x) hint3)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-          (hash "nh_key" (hash "share" (hash "public" y) x) hint3))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" y) l) hint1))
-      (send (cat "nh_key" (hash "share" (hash "public" y) l) hint1)))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l))))
-  (label 121)
-  (parent 120)
-  (unrealized (10 0) (12 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-um3 diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 hint3 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b self self-0 name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self self) (l ltxa))
-  (defstrand ltx-gen 3 (self self-0) (l ltxb))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 122)
-  (unrealized (0 0) (0 2) (1 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 123)
-  (parent 122)
-  (unrealized (0 2) (1 0))
-  (origs (na (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (1 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 124)
-  (parent 123)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (5 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 125)
-  (parent 124)
-  (unrealized (0 2) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" y) ltxa))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" y) ltxa))
-    (hash "share" (hash "public" y) ltxa) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" y) ltxa))
-      (send (cat "share" (hash "public" y) ltxa))))
-  (label 126)
-  (parent 125)
-  (unrealized (0 2) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation nonce-test (displaced 7 2 ltx-gen 3) l (6 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l))))
-  (label 127)
-  (parent 126)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb))))
-    (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (label 128)
-  (parent 127)
-  (unrealized (0 2) (4 0) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" x) ltxb))
-    (hash "share" (hash "public" x) ltxb) (7 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb))))
-  (label 129)
-  (parent 128)
-  (unrealized (0 2) (4 0) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (x rndx)
-    (y expt) (l l-0 rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa l) (ltxb l-0) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l l-0))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l-0)
-      (hash "hint" (hash "share" (hash "public" x) l-0))))
-  (deflistener (cat "share" (hash "public" x) l-0))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))
-    ((3 0) (0 0)) ((3 2) (8 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))
-  (absent (x l) (x l-0))
-  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen x l l-0)
-  (uniq-orig na)
-  (operation nonce-test (displaced 9 3 ltx-gen 3) l-0 (8 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" l-0)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")
-      (send l-0))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l-0)
-         (hash "hint" (hash "share" (hash "public" x) l-0))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l-0)
-          (hash "hint" (hash "share" (hash "public" x) l-0)))))
-    ((recv (cat "share" (hash "public" x) l-0))
-      (send (cat "share" (hash "public" x) l-0))))
-  (label 130)
-  (parent 129)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (x rndx)
-    (y expt) (l l-0 rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa l) (ltxb l-0) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l l-0))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l-0)
-      (hash "hint" (hash "share" (hash "public" x) l-0))))
-  (deflistener (cat "share" (hash "public" x) l-0))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) x)
-      (hash "hint" (hash "share" (hash "public" x) y))))
-  (precedes ((0 1) (9 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (8 0)) ((4 1) (1 0))
-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0))
-    ((9 1) (4 0)))
-  (absent (x l) (x l-0))
-  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen x l l-0)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y))))
-    (hash "nh_key" (hash "share" (hash "public" y) x)
-      (hash "hint" (hash "share" (hash "public" x) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" l-0)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")
-      (send l-0))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l-0)
-         (hash "hint" (hash "share" (hash "public" x) l-0))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l-0)
-          (hash "hint" (hash "share" (hash "public" x) l-0)))))
-    ((recv (cat "share" (hash "public" x) l-0))
-      (send (cat "share" (hash "public" x) l-0)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) x)
-         (hash "hint" (hash "share" (hash "public" x) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y))))))
-  (label 131)
-  (parent 130)
-  (unrealized (0 2) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (x rndx)
-    (y expt) (l l-0 rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa l) (ltxb l-0) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l l-0))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l-0)
-      (hash "hint" (hash "share" (hash "public" x) l-0))))
-  (deflistener (cat "share" (hash "public" x) l-0))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) x)
-      (hash "hint" (hash "share" (hash "public" x) y))))
-  (deflistener (cat "share" (hash "public" y) x))
-  (precedes ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (8 0)) ((4 1) (1 0))
-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0))
-    ((9 1) (4 0)) ((10 1) (9 0)))
-  (absent (x l) (x l-0))
-  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen x l l-0)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" y) x))
-    (hash "share" (hash "public" y) x) (9 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" l-0)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")
-      (send l-0))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l-0)
-         (hash "hint" (hash "share" (hash "public" x) l-0))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l-0)
-          (hash "hint" (hash "share" (hash "public" x) l-0)))))
-    ((recv (cat "share" (hash "public" x) l-0))
-      (send (cat "share" (hash "public" x) l-0)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) x)
-         (hash "hint" (hash "share" (hash "public" x) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    ((recv (cat "share" (hash "public" y) x))
-      (send (cat "share" (hash "public" y) x))))
-  (label 132)
-  (parent 131)
-  (unrealized (0 2) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-um3 diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 hint3 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b self self-0 name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self self) (l ltxa))
-  (defstrand ltx-gen 3 (self self-0) (l ltxb))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 133)
-  (unrealized (0 0) (0 2) (1 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 134)
-  (parent 133)
-  (unrealized (0 2) (1 0))
-  (origs (na (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" x) y)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (1 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 135)
-  (parent 134)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (5 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 136)
-  (parent 135)
-  (unrealized (0 2) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" y) ltxa))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" y) ltxa))
-    (hash "share" (hash "public" y) ltxa) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" y) ltxa))
-      (send (cat "share" (hash "public" y) ltxa))))
-  (label 137)
-  (parent 136)
-  (unrealized (0 2) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation nonce-test (displaced 7 2 ltx-gen 3) l (6 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l))))
-  (label 138)
-  (parent 137)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb))))
-    (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (label 139)
-  (parent 138)
-  (unrealized (0 2) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" x) y)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" ltxb) x))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxb) x))
-    (hash "share" (hash "public" ltxb) x) (7 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" x) y)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" x) y)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" ltxb) x))
-      (send (cat "share" (hash "public" ltxb) x))))
-  (label 140)
-  (parent 139)
-  (unrealized (0 2) (7 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-um3 diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 hint3 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (hash "hint" (hash "share" (hash "public" x) y))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" x) y)
-                (hash "hint" (hash "share" (hash "public" x) y)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "hint" (hash "share" (hash "public" x) y))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                (hash "hint" (hash "share" (hash "public" x) y)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b self self-0 name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self self) (l ltxa))
-  (defstrand ltx-gen 3 (self self-0) (l ltxb))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 141)
-  (unrealized (0 0) (0 2) (1 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 142)
-  (parent 141)
-  (unrealized (0 2) (1 0))
-  (origs (na (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))
-        (hash "nh_key" (hash "share" (hash "public" y) x)
-          (hash "hint" (hash "share" (hash "public" x) y)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))) (1 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y)))))))
-  (label 143)
-  (parent 142)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (5 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 144)
-  (parent 143)
-  (unrealized (0 2) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" y) ltxa))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" y) ltxa))
-    (hash "share" (hash "public" y) ltxa) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" y) ltxa))
-      (send (cat "share" (hash "public" y) ltxa))))
-  (label 145)
-  (parent 144)
-  (unrealized (0 2) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation nonce-test (displaced 7 2 ltx-gen 3) l (6 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l))))
-  (label 146)
-  (parent 145)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb))))
-    (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (label 147)
-  (parent 146)
-  (unrealized (0 2) (4 0) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-um3
-  (vars (hint1 hint2 hint3 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (hint3 hint3) (na na)
-    (nb nb) (a a) (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))
-      (hash "nh_key" (hash "share" (hash "public" y) x)
-        (hash "hint" (hash "share" (hash "public" x) y)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" ltxb) x))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxb) x))
-    (hash "share" (hash "public" ltxb) x) (7 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2 hint3
-          (enc na nb a b hint1 hint2 hint3
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2)
-              (hash "nh_key" (hash "share" (hash "public" y) x)
-                hint3))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))
-         (hash "nh_key" (hash "share" (hash "public" y) x)
-           (hash "hint" (hash "share" (hash "public" x) y)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))
-          (hash "nh_key" (hash "share" (hash "public" y) x)
-            (hash "hint" (hash "share" (hash "public" x) y))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" ltxb) x))
-      (send (cat "share" (hash "public" ltxb) x))))
-  (label 148)
-  (parent 147)
-  (unrealized (0 2) (7 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
diff --git a/tst/nhcr_umx.scm b/tst/nhcr_umx.scm
deleted file mode 100644
--- a/tst/nhcr_umx.scm
+++ /dev/null
@@ -1,184 +0,0 @@
-; Unified Model  This version used in the paper, tooldev/dh/conf_dh/dh_ebn.tex
-
-; This file models the "Unified Model" method of determining a fresh
-; key from long-term and ephemeral Diffie-Hellman exponents.  We use
-; function relation declarations to link names to long-term public
-; values.
-
-;;; This file contains the standard version, in which the two
-;;; ephemeral are mixed, as are the two static exponents.
-
-; A role is provided in which a party signs a fresh long-term
-; Diffie-Hellman value, and then leaks the exponent.  The latter step
-; is used to test the notion of forward security.
-
-; Two inputs are analyzed.  In the first, we model that two
-; participants exist that agree on the UM key.  The notion of
-; "implicit authentication" suggests that if one participant exists
-; and another party knows the same key, that party must be either the
-; participant or the participant's intended partner.
-
-; In this version, we assume that the long-term keys of the
-; participants do not leak.
-
-; The second input checks whether the key can be learned when the key
-; is generated honestly.  In this version, we do NOT assume that the
-; long-term keys of the participants do not leak.
-
-(herald "NHCR: unified model (UMX) criss-cross" (bound 20) (limit 8000) (algebra diffie-hellman))
-
-(defmacro (nh_public k1)
-  ;(exp (gen) x1))
-  (hash "public" k1))
-
-(defmacro (nh_share k1 k2)
-  ;(hash "share" (nh_public (mul x1 x2))))
-  (hash "share" (nh_public k1) k2))
-
-; Use this macro to generate the hint
-(defmacro (nh_hint k1 k2)
-  (hash "hint" (nh_share k1 k2)))
-
-(defmacro (nh_key1 k1 k2 h)
-  (hash "nh_key" (nh_share k1 k2) h))
-
-(defmacro (nh_key2 k1 k2 h)
-  (hash "nh_key" (nh_share k2 k1) h))
-
-(defmacro (key_hint11 ltk1 ltk2 ek1 ek2 h1 h2)
-  (hash "key" (nh_key1 ltk1 ek2 h1) (nh_key1 ek1 ltk2 h2)))
-
-(defmacro (key_hint12 ltk1 ltk2 ek1 ek2 h1 h2)
-  (hash "key" (nh_key1 ltk1 ek2 h1) (nh_key2 ek1 ltk2 h2)))
-
-(defmacro (key_hint21 ltk1 ltk2 ek1 ek2 h1 h2)
-  (hash "key" (nh_key2 ltk1 ek2 h1) (nh_key1 ek1 ltk2 h2)))
-
-(defmacro (key_hint22 ltk1 ltk2 ek1 ek2 h1 h2)
-  (hash "key" (nh_key2 ltk1 ek2 h1) (nh_key2 ek1 ltk2 h2)))
-
-;(defmacro (key ltk1 ltk2 ek1 ek2)
-;  (key_hint ltk1 ltk2 (nh_hint ltk1 ek2) ek1 ek2 (nh_hint ek1 ltk2)))
-
-(defprotocol nhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data) (hint1 hint2 mesg))
-    (trace
-     (recv (cat (nh_public ltxa) (nh_public ltxb)))
-     (send (cat na a b (nh_public x)))
-     (recv (cat (nh_public y) hint1 hint2
-                (enc na nb a b hint1 hint2
-                     (key_hint22 ltxa ltxb x y hint1 hint2))))
-     (send nb)
-     )
-    (fn-of ("principal-of" (ltxa a) (ltxb b))
-           ("ltx-of" (a ltxa) (b ltxb)))
-    (uniq-gen x)
-    (uniq-orig na)
-    (neq ((exp (gen) y) (gen))))
-
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace
-     (recv (cat (nh_public ltxa) (nh_public ltxb)))
-     (recv (cat na a b (nh_public x)))
-     (send (cat (nh_public y) (nh_hint ltxa y) (nh_hint x ltxb)
-                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb)
-		     (key_hint11 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))
-		(enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb)
-		     (key_hint12 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))
-		(enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb)
-		     (key_hint21 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))
-                (enc na nb a b (nh_hint ltxa y) (nh_hint x ltxb)
-		     (key_hint22 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))))
-     (recv nb)
-     )
-    (fn-of ("principal-of" (ltxa a) (ltxb b))
-	   ("ltx-of" (a ltxa) (b ltxb)))
-    (uniq-gen y)
-    (uniq-orig nb)
-    (neq ((exp (gen) x) (gen))))
-
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace
-     (send (cat self (nh_public l)))
-     (recv "end-of-protocol")
-     (send l))
-    (uniq-gen l)
-    (fn-of ("principal-of" (l self))
-	   ("ltx-of" (self l)))))
-
-; Initiator point of view: partner's exponent secret
-(defskeleton nhcr-umx
-  (vars (ltxa ltxb rndx) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)))
-  (non-orig ltxb)
-  (neq (a b)))
-
-; Initiator point of view: both LTX exponents secret
-(defskeleton nhcr-umx
-  (vars (ltxa ltxb rndx) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
-  (defstrand ltx-gen 1 (l ltxa))
-  (defstrand ltx-gen 1 (l ltxb))
-  (non-orig ltxa ltxb) (neq (a b)))
-
-; Responder point of view; both exponents secret
-(defskeleton nhcr-umx
-  (vars (ltxa ltxb rndx) (a b name))
-  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
-  (defstrand ltx-gen 1 (l ltxa))
-  (defstrand ltx-gen 1 (l ltxb))
-  (non-orig ltxa ltxb)
-  (neq (a b)))
-
-; Responder point of view; partner's exponent secret
-(defskeleton nhcr-umx
-  (vars (ltxa ltxb rndx) (a b name))
-  (defstrand resp 4 (ltxa ltxa) (ltxb ltxb) (a a) (b b))
-  (defstrand ltx-gen 1 (l ltxa))
-  (non-orig ltxa)
-  (neq (a b)))
-
-;;; Forward secrecy, neither long-term exponent secure
-(defskeleton nhcr-umx
-  (vars (ltxa ltxb x rndx) (y expt) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
-  (deflistener (key_hint11 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))
-  (defstrand ltx-gen 3 (l ltxa))
-  (defstrand ltx-gen 3 (l ltxb))
-  (precedes ((0 3) (3 1)) ((0 3) (2 1)))
-  (neq (a b)))
-
-;;; Forward secrecy, neither long-term exponent secure
-(defskeleton nhcr-umx
-  (vars (ltxa ltxb x rndx) (y expt) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
-  (deflistener (key_hint12 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))
-  (defstrand ltx-gen 3 (l ltxa))
-  (defstrand ltx-gen 3 (l ltxb))
-  (precedes ((0 3) (3 1)) ((0 3) (2 1)))
-  (neq (a b)))
-
-;;; Forward secrecy, neither long-term exponent secure
-(defskeleton nhcr-umx
-  (vars (ltxa ltxb x rndx) (y expt) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
-  (deflistener (key_hint21 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))
-  (defstrand ltx-gen 3 (l ltxa))
-  (defstrand ltx-gen 3 (l ltxb))
-  (precedes ((0 3) (3 1)) ((0 3) (2 1)))
-  (neq (a b)))
-
-;;; Forward secrecy, neither long-term exponent secure
-(defskeleton nhcr-umx
-  (vars (ltxa ltxb x rndx) (y expt) (a b name))
-  (defstrand init 4 (ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b))
-  (deflistener (key_hint22 ltxa ltxb x y (nh_hint ltxa y) (nh_hint x ltxb)))
-  (defstrand ltx-gen 3 (l ltxa))
-  (defstrand ltx-gen 3 (l ltxb))
-  (precedes ((0 3) (3 1)) ((0 3) (2 1)))
-  (neq (a b)))
diff --git a/tst/nhcr_umx.tst b/tst/nhcr_umx.tst
deleted file mode 100644
--- a/tst/nhcr_umx.tst
+++ /dev/null
@@ -1,9181 +0,0 @@
-(herald "NHCR: unified model (UMX) criss-cross" (bound 20) (limit 8000)
-  (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/nhcr_umx.scm")
-(comment "Step count limited to 8000")
-(comment "Strand count bounded at 20")
-
-(defprotocol nhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((send (cat b (hash "public" ltxb)))))
-  (label 0)
-  (unrealized (0 2))
-  (origs (na (0 1)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (0 2)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen y ltxb x)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb)) ((send (cat b (hash "public" ltxb))))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb)))))))))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na) (nb nb)
-        (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (origs (nb (2 2)) (na (0 1))))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (0 2)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-    (enc na nb a b hint1 hint2
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-    (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            hint2)))))
-  (label 2)
-  (parent 0)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2))
-    (2 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            hint2)))))
-  (label 3)
-  (parent 2)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))
-  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))
-    (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))))
-  (label 4)
-  (parent 3)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))
-  (deflistener (cat "share" (hash "public" ltxb) x))
-  (precedes ((0 1) (5 0)) ((1 0) (0 0)) ((2 1) (0 2)) ((3 1) (2 0))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxb)
-  (uniq-gen ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxb) x))
-    (hash "share" (hash "public" ltxb) x) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2))
-      (send (cat "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-    ((recv (cat "share" (hash "public" ltxb) x))
-      (send (cat "share" (hash "public" ltxb) x))))
-  (label 5)
-  (parent 4)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b self self-0 name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self self) (l ltxa))
-  (defstrand ltx-gen 1 (self self-0) (l ltxb))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((send (cat self (hash "public" ltxa))))
-    ((send (cat self-0 (hash "public" ltxb)))))
-  (label 6)
-  (unrealized (0 0) (0 2))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)) ((2 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb)))))
-  (label 7)
-  (parent 6)
-  (unrealized (0 2))
-  (origs (na (0 1)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 2) (0 2)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen y ltxa ltxb x)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb)))))))))
-  (label 8)
-  (parent 7)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1 2)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (x x) (y y) (na na) (nb nb)
-        (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (origs (nb (3 2)) (na (0 1))))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-    (enc na nb a b hint1 hint2
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-    (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            hint2)))))
-  (label 9)
-  (parent 7)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 2))
-    ((4 1) (3 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2))
-    (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            hint2)))))
-  (label 10)
-  (parent 9)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))
-  (precedes ((0 1) (4 0)) ((1 0) (0 0)) ((1 0) (5 0)) ((2 0) (0 0))
-    ((3 1) (0 2)) ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x) hint2))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))))
-  (label 11)
-  (parent 10)
-  (unrealized (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b self self-0 name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self self) (l ltxa))
-  (defstrand ltx-gen 1 (self self-0) (l ltxb))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat self (hash "public" ltxa))))
-    ((send (cat self-0 (hash "public" ltxb)))))
-  (label 12)
-  (unrealized (0 0) (0 3))
-  (preskeleton)
-  (origs (nb (0 2)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (precedes ((1 0) (0 0)) ((2 0) (0 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb)))))
-  (label 13)
-  (parent 12)
-  (unrealized (0 3))
-  (origs (nb (0 2)))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 0))
-    ((2 0) (3 0)) ((3 1) (0 1)) ((3 3) (0 3)))
-  (absent (x ltxa) (x ltxb) (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) y) (gen)) (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen y ltxa ltxb x)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand init 4) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb)))
-  (label 14)
-  (parent 13)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1 2)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)
-        (nb nb))))
-  (origs (na (3 1)) (nb (0 2))))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb
-    (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 15)
-  (parent 13)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb
-    (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 16)
-  (parent 13)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb
-    (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 17)
-  (parent 13)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb
-    (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 18)
-  (parent 13)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 19)
-  (parent 15)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 20)
-  (parent 16)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 21)
-  (parent 17)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 22)
-  (parent 18)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 23)
-  (parent 19)
-  (unrealized (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 24)
-  (parent 20)
-  (unrealized (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 25)
-  (parent 21)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 26)
-  (parent 22)
-  (unrealized (4 0) (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) y))
-  (precedes ((0 2) (6 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxa) y))
-    (hash "share" (hash "public" ltxa) y) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) y))
-      (send (cat "share" (hash "public" ltxa) y))))
-  (label 27)
-  (parent 23)
-  (unrealized (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand ltx-gen 1 (self b) (l ltxb))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) y))
-  (precedes ((0 2) (6 0)) ((1 0) (0 0)) ((2 0) (0 0)) ((3 1) (0 3))
-    ((4 1) (3 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa ltxb)
-  (uniq-gen ltxa ltxb y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxa) y))
-    (hash "share" (hash "public" ltxa) y) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((send (cat b (hash "public" ltxb))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) y))
-      (send (cat "share" (hash "public" ltxa) y))))
-  (label 28)
-  (parent 24)
-  (unrealized (4 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b self name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self self) (l ltxa))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat self (hash "public" ltxa)))))
-  (label 29)
-  (unrealized (0 0) (0 3))
-  (preskeleton)
-  (origs (nb (0 2)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (precedes ((1 0) (0 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa)))))
-  (label 30)
-  (parent 29)
-  (unrealized (0 3))
-  (origs (nb (0 2)))
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (precedes ((0 2) (2 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((2 1) (0 1))
-    ((2 3) (0 3)))
-  (absent (x ltxa) (x ltxb) (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) y) (gen)) (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen y ltxa x)
-  (uniq-orig na nb)
-  (operation nonce-test (added-strand init 4) nb (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb)))
-  (label 31)
-  (parent 30)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((ltxa ltxa) (ltxb ltxb) (a a) (b b) (y y) (x x) (na na)
-        (nb nb))))
-  (origs (na (2 1)) (nb (0 2))))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb
-    (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 32)
-  (parent 30)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb
-    (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 33)
-  (parent 30)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb
-    (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 34)
-  (parent 30)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (2 0)) ((1 0) (0 0)) ((2 1) (0 3)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation nonce-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) nb
-    (0 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 35)
-  (parent 30)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (2 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 36)
-  (parent 32)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (2 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 37)
-  (parent 33)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (2 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 38)
-  (parent 34)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 2) (3 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (2 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 39)
-  (parent 35)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 40)
-  (parent 36)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 41)
-  (parent 37)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 42)
-  (parent 38)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 2) (4 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (3 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 43)
-  (parent 39)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) y))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxa) y))
-    (hash "share" (hash "public" ltxa) y) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) y))
-      (send (cat "share" (hash "public" ltxa) y))))
-  (label 44)
-  (parent 40)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (ltxa ltxb y rndx) (x expt))
-  (defstrand resp 4 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (defstrand ltx-gen 1 (self a) (l ltxa))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) y))
-  (precedes ((0 2) (5 0)) ((1 0) (0 0)) ((2 1) (0 3)) ((3 1) (2 0))
-    ((4 1) (3 0)) ((5 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) x) (gen)))
-  (non-orig ltxa)
-  (uniq-gen ltxa y)
-  (uniq-orig nb)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxa) y))
-    (hash "share" (hash "public" ltxa) y) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb)) ((send (cat a (hash "public" ltxa))))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) y))
-      (send (cat "share" (hash "public" ltxa) y))))
-  (label 45)
-  (parent 41)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b self self-0 name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self self) (l ltxa))
-  (defstrand ltx-gen 3 (self self-0) (l ltxb))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 46)
-  (unrealized (0 0) (0 2) (1 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 47)
-  (parent 46)
-  (unrealized (0 2) (1 0))
-  (origs (na (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (1 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 48)
-  (parent 47)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb))))
-    (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (label 49)
-  (parent 48)
-  (unrealized (0 2) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" x) ltxb))
-    (hash "share" (hash "public" x) ltxb) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb))))
-  (label 50)
-  (parent 49)
-  (unrealized (0 2) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l)
-      (hash "hint" (hash "share" (hash "public" x) l))))
-  (deflistener (cat "share" (hash "public" x) l))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((3 0) (0 0))
-    ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation nonce-test (displaced 7 3 ltx-gen 3) l (6 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" l) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l)
-         (hash "hint" (hash "share" (hash "public" x) l))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l)
-          (hash "hint" (hash "share" (hash "public" x) l)))))
-    ((recv (cat "share" (hash "public" x) l))
-      (send (cat "share" (hash "public" x) l))))
-  (label 51)
-  (parent 50)
-  (unrealized (0 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (7 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (7 0)) ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 2) (0 2)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y ltxa ltxb x)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb)))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb)))))))))
-  (label 52)
-  (parent 51)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l)
-      (hash "hint" (hash "share" (hash "public" x) l))))
-  (deflistener (cat "share" (hash "public" x) l))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (0 2)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))
-    (enc na nb a b hint1 hint2
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))
-    (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" l) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l)
-         (hash "hint" (hash "share" (hash "public" x) l))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l)
-          (hash "hint" (hash "share" (hash "public" x) l)))))
-    ((recv (cat "share" (hash "public" x) l))
-      (send (cat "share" (hash "public" x) l)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))))
-  (label 53)
-  (parent 51)
-  (unrealized (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 1) (7 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (7 0)) ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 2) (0 2))
-    ((7 2) (8 0)) ((8 1) (4 0)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y ltxa ltxb x)
-  (uniq-orig na nb)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb)))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb))))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 54)
-  (parent 52)
-  (unrealized (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l)
-      (hash "hint" (hash "share" (hash "public" x) l))))
-  (deflistener (cat "share" (hash "public" x) l))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (0 2)) ((8 1) (7 0)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-        (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)) (7 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" l) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l)
-         (hash "hint" (hash "share" (hash "public" x) l))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l)
-          (hash "hint" (hash "share" (hash "public" x) l)))))
-    ((recv (cat "share" (hash "public" x) l))
-      (send (cat "share" (hash "public" x) l)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))))
-  (label 55)
-  (parent 53)
-  (unrealized (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" ltxa) y))
-  (precedes ((0 1) (7 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (7 0)) ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (6 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 2) (0 2))
-    ((7 2) (9 0)) ((8 1) (4 0)) ((9 1) (8 0)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y ltxa ltxb x)
-  (uniq-orig na nb)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxa) y))
-    (hash "share" (hash "public" ltxa) y) (8 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb)))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb))))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" ltxa) y))
-      (send (cat "share" (hash "public" ltxa) y))))
-  (label 56)
-  (parent 54)
-  (unrealized (9 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l)
-      (hash "hint" (hash "share" (hash "public" x) l))))
-  (deflistener (cat "share" (hash "public" x) l))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (9 0)) ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0))
-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (0 2)) ((8 1) (7 0))
-    ((9 1) (8 0)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1) (8 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" l) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l)
-         (hash "hint" (hash "share" (hash "public" x) l))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l)
-          (hash "hint" (hash "share" (hash "public" x) l)))))
-    ((recv (cat "share" (hash "public" x) l))
-      (send (cat "share" (hash "public" x) l)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l) x) hint2))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))))
-  (label 57)
-  (parent 55)
-  (unrealized (8 0) (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb l) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l l))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l)
-        (hash "hint" (hash "share" (hash "public" x) l)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l)
-      (hash "hint" (hash "share" (hash "public" x) l))))
-  (deflistener (cat "share" (hash "public" x) l))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))
-  (deflistener (cat "share" (hash "public" y) ltxa))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (10 0)) ((3 0) (0 0)) ((3 2) (6 0)) ((4 1) (1 0))
-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (0 2)) ((8 1) (7 0))
-    ((9 1) (8 0)) ((10 1) (9 0)))
-  (absent (x ltxa) (x l))
-  (fn-of ("ltx-of" (b l) (a ltxa)) ("principal-of" (l b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" y) ltxa))
-    (hash "share" (hash "public" y) ltxa) (9 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" l)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" l) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l)
-           (hash "hint" (hash "share" (hash "public" x) l)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l)
-            (hash "hint" (hash "share" (hash "public" x) l))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l)
-         (hash "hint" (hash "share" (hash "public" x) l))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l)
-          (hash "hint" (hash "share" (hash "public" x) l)))))
-    ((recv (cat "share" (hash "public" x) l))
-      (send (cat "share" (hash "public" x) l)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l) x) hint2))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1))
-      (send (cat "nh_key" (hash "share" (hash "public" y) ltxa) hint1)))
-    ((recv (cat "share" (hash "public" y) ltxa))
-      (send (cat "share" (hash "public" y) ltxa))))
-  (label 58)
-  (parent 57)
-  (unrealized (8 0) (10 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b self self-0 name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self self) (l ltxa))
-  (defstrand ltx-gen 3 (self self-0) (l ltxb))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 59)
-  (unrealized (0 0) (0 2) (1 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 60)
-  (parent 59)
-  (unrealized (0 2) (1 0))
-  (origs (na (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (1 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 61)
-  (parent 60)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (precedes ((0 1) (5 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb))))
-    (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (label 62)
-  (parent 61)
-  (unrealized (0 2) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" ltxb) x))
-  (precedes ((0 1) (6 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxb) x))
-    (hash "share" (hash "public" ltxb) x) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" ltxb) x))
-      (send (cat "share" (hash "public" ltxb) x))))
-  (label 63)
-  (parent 62)
-  (unrealized (0 2) (5 0) (6 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b self self-0 name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self self) (l ltxa))
-  (defstrand ltx-gen 3 (self self-0) (l ltxb))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 64)
-  (unrealized (0 0) (0 2) (1 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 65)
-  (parent 64)
-  (unrealized (0 2) (1 0))
-  (origs (na (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (1 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 66)
-  (parent 65)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (5 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 67)
-  (parent 66)
-  (unrealized (0 2) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" y) ltxa))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" y) ltxa))
-    (hash "share" (hash "public" y) ltxa) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" y) ltxa))
-      (send (cat "share" (hash "public" y) ltxa))))
-  (label 68)
-  (parent 67)
-  (unrealized (0 2) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation nonce-test (displaced 7 2 ltx-gen 3) l (6 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l))))
-  (label 69)
-  (parent 68)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb))))
-    (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (label 70)
-  (parent 69)
-  (unrealized (0 2) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" x) ltxb))
-    (hash "share" (hash "public" x) ltxb) (7 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb))))
-  (label 71)
-  (parent 70)
-  (unrealized (0 2) (8 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (x rndx) (y expt)
-    (l l-0 rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb l-0) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l l-0))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l-0)
-      (hash "hint" (hash "share" (hash "public" x) l-0))))
-  (deflistener (cat "share" (hash "public" x) l-0))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))
-    ((3 0) (0 0)) ((3 2) (8 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))
-  (absent (x l) (x l-0))
-  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen x l l-0)
-  (uniq-orig na)
-  (operation nonce-test (displaced 9 3 ltx-gen 3) l-0 (8 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" l-0)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" l-0) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")
-      (send l-0))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l-0)
-         (hash "hint" (hash "share" (hash "public" x) l-0))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l-0)
-          (hash "hint" (hash "share" (hash "public" x) l-0)))))
-    ((recv (cat "share" (hash "public" x) l-0))
-      (send (cat "share" (hash "public" x) l-0))))
-  (label 72)
-  (parent 71)
-  (unrealized (0 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" y) ltxa))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (9 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (9 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 0) (9 0))
-    ((3 2) (8 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0))
-    ((7 1) (4 0)) ((8 1) (7 0)) ((9 2) (0 2)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y ltxa ltxb x)
-  (uniq-orig na nb)
-  (operation encryption-test (added-strand resp 3)
-    (enc na nb a b (hash "hint" (hash "share" (hash "public" ltxa) y))
-      (hash "hint" (hash "share" (hash "public" x) ltxb))
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))) (0 2))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" y) ltxa))
-      (send (cat "share" (hash "public" y) ltxa)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb)))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb)))))))))
-  (label 73)
-  (parent 72)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (x rndx) (y expt)
-    (l l-0 rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb l-0) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l l-0))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l-0)
-      (hash "hint" (hash "share" (hash "public" x) l-0))))
-  (deflistener (cat "share" (hash "public" x) l-0))
-  (deflistener
-    (hash "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))
-  (precedes ((0 1) (9 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (8 0)) ((4 1) (1 0))
-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0))
-    ((9 1) (0 2)))
-  (absent (x l) (x l-0))
-  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen x l l-0)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-        (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))
-    (enc na nb a b hint1 hint2
-      (hash "key"
-        (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-        (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))
-    (0 2))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" l-0)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" l-0) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")
-      (send l-0))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l-0)
-         (hash "hint" (hash "share" (hash "public" x) l-0))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l-0)
-          (hash "hint" (hash "share" (hash "public" x) l-0)))))
-    ((recv (cat "share" (hash "public" x) l-0))
-      (send (cat "share" (hash "public" x) l-0)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))))
-  (label 74)
-  (parent 72)
-  (unrealized (9 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" y) ltxa))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (8 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (8 0)) ((2 2) (5 0)) ((3 0) (0 0)) ((3 0) (8 0))
-    ((3 2) (7 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (1 0))
-    ((7 1) (6 0)) ((8 2) (0 2)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y ltxa ltxb x)
-  (uniq-orig na nb)
-  (operation generalization deleted (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" y) ltxa))
-      (send (cat "share" (hash "public" y) ltxa)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb)))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb)))))))))
-  (label 75)
-  (parent 73)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (x rndx) (y expt)
-    (l l-0 rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb l-0) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l l-0))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l-0)
-      (hash "hint" (hash "share" (hash "public" x) l-0))))
-  (deflistener (cat "share" (hash "public" x) l-0))
-  (deflistener
-    (hash "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))
-  (deflistener
-    (cat "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))
-  (precedes ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (8 0)) ((4 1) (1 0))
-    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0))
-    ((9 1) (0 2)) ((10 1) (9 0)))
-  (absent (x l) (x l-0))
-  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen x l l-0)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-        (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))
-    (hash "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)) (9 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" l-0)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" l-0) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")
-      (send l-0))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l-0)
-         (hash "hint" (hash "share" (hash "public" x) l-0))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l-0)
-          (hash "hint" (hash "share" (hash "public" x) l-0)))))
-    ((recv (cat "share" (hash "public" x) l-0))
-      (send (cat "share" (hash "public" x) l-0)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))))
-  (label 76)
-  (parent 74)
-  (unrealized (10 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat "share" (hash "public" y) ltxa))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (7 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (7 0)) ((2 2) (4 0)) ((3 0) (0 0)) ((3 0) (7 0))
-    ((3 2) (6 0)) ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (5 0))
-    ((7 2) (0 2)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y ltxa ltxb x)
-  (uniq-orig na nb)
-  (operation generalization deleted (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat "share" (hash "public" y) ltxa))
-      (send (cat "share" (hash "public" y) ltxa)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb)))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb)))))))))
-  (label 77)
-  (parent 75)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (x rndx) (y expt)
-    (l l-0 rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb l-0) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l l-0))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l-0)
-      (hash "hint" (hash "share" (hash "public" x) l-0))))
-  (deflistener (cat "share" (hash "public" x) l-0))
-  (deflistener
-    (hash "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))
-  (deflistener
-    (cat "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))
-  (deflistener (cat "nh_key" (hash "share" (hash "public" y) l) hint1))
-  (precedes ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (11 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (8 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0))
-    ((8 1) (7 0)) ((9 1) (0 2)) ((10 1) (9 0)) ((11 1) (10 0)))
-  (absent (x l) (x l-0))
-  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen x l l-0)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) l) hint1))
-    (hash "nh_key" (hash "share" (hash "public" y) l) hint1) (10 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" l-0)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" l-0) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")
-      (send l-0))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l-0)
-         (hash "hint" (hash "share" (hash "public" x) l-0))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l-0)
-          (hash "hint" (hash "share" (hash "public" x) l-0)))))
-    ((recv (cat "share" (hash "public" x) l-0))
-      (send (cat "share" (hash "public" x) l-0)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" y) l) hint1))
-      (send (cat "nh_key" (hash "share" (hash "public" y) l) hint1))))
-  (label 78)
-  (parent 76)
-  (unrealized (10 0) (11 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (6 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((2 2) (1 0)) ((3 0) (0 0)) ((3 0) (6 0))
-    ((3 2) (5 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 2) (0 2)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y ltxa ltxb x)
-  (uniq-orig na nb)
-  (operation generalization deleted (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) ltxb)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb)))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb)))))))))
-  (label 79)
-  (parent 77)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (x rndx) (y expt)
-    (l l-0 rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb l-0) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l l-0))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) l-0)
-        (hash "hint" (hash "share" (hash "public" x) l-0)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" x) l-0)
-      (hash "hint" (hash "share" (hash "public" x) l-0))))
-  (deflistener (cat "share" (hash "public" x) l-0))
-  (deflistener
-    (hash "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))
-  (deflistener
-    (cat "key" (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-      (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))
-  (deflistener (cat "nh_key" (hash "share" (hash "public" y) l) hint1))
-  (deflistener (cat "share" (hash "public" y) l))
-  (precedes ((0 1) (10 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (12 0)) ((2 2) (6 0)) ((3 0) (0 0)) ((3 2) (8 0))
-    ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (4 0))
-    ((8 1) (7 0)) ((9 1) (0 2)) ((10 1) (9 0)) ((11 1) (10 0))
-    ((12 1) (11 0)))
-  (absent (x l) (x l-0))
-  (fn-of ("ltx-of" (b l-0) (a l)) ("principal-of" (l-0 b) (l a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen x l l-0)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" y) l))
-    (hash "share" (hash "public" y) l) (11 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" l-0)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" l-0) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" l-0))) (recv "end-of-protocol")
-      (send l-0))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) l-0)
-           (hash "hint" (hash "share" (hash "public" x) l-0)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) l-0)
-            (hash "hint" (hash "share" (hash "public" x) l-0))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" x) l-0)
-         (hash "hint" (hash "share" (hash "public" x) l-0))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" x) l-0)
-          (hash "hint" (hash "share" (hash "public" x) l-0)))))
-    ((recv (cat "share" (hash "public" x) l-0))
-      (send (cat "share" (hash "public" x) l-0)))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2))))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-         (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2)))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-          (hash "nh_key" (hash "share" (hash "public" l-0) x) hint2))))
-    ((recv (cat "nh_key" (hash "share" (hash "public" y) l) hint1))
-      (send (cat "nh_key" (hash "share" (hash "public" y) l) hint1)))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l))))
-  (label 80)
-  (parent 78)
-  (unrealized (10 0) (12 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener (cat "share" (hash "public" x) ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (5 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (5 0)) ((2 2) (1 0)) ((3 0) (0 0)) ((3 0) (5 0))
-    ((3 2) (4 0)) ((4 1) (1 0)) ((5 2) (0 2)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y ltxa ltxb x)
-  (uniq-orig na nb)
-  (operation generalization deleted (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat "share" (hash "public" x) ltxb))
-      (send (cat "share" (hash "public" x) ltxb)))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb)))))))))
-  (label 81)
-  (parent 79)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (na nb data) (a b name) (y ltxa ltxb x rndx))
-  (defstrand init 4
-    (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-    (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))) (na na)
-    (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (defstrand resp 3 (na na) (nb nb) (a a) (b b) (ltxa ltxa) (ltxb ltxb)
-    (y y) (x x))
-  (precedes ((0 1) (4 1)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (4 0)) ((2 2) (1 0)) ((3 0) (0 0)) ((3 0) (4 0))
-    ((3 2) (1 0)) ((4 2) (0 2)))
-  (absent (y ltxa) (y ltxb) (y x) (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (a ltxa) (b ltxb))
-    ("principal-of" (ltxa a) (ltxb b)))
-  (neq ((exp (gen) x) (gen)) (a b) ((exp (gen) y) (gen)))
-  (uniq-gen y ltxa ltxb x)
-  (uniq-orig na nb)
-  (operation generalization deleted (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint"
-                  (hash "share" (hash "public" x) ltxb)))))))))
-  (label 82)
-  (parent 81)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1 2 3)
-      ((ltxa ltxa) (ltxb ltxb) (x x) (y y) (a a) (b b) (na na) (nb nb)
-        (hint1 (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hint2 (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (origs (nb (4 2)) (na (0 1))))
-
-(comment "Nothing left to do")
-
-(defprotocol nhcr-umx diffie-hellman
-  (defrole init
-    (vars (ltxa ltxb x rndx) (y expt) (a b name) (na nb data)
-      (hint1 hint2 mesg))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    (uniq-orig na)
-    (uniq-gen x)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) y) (gen)))
-    (absent (x ltxa) (x ltxb)))
-  (defrole resp
-    (vars (ltxa ltxb y rndx) (x expt) (a b name) (na nb data))
-    (trace (recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (recv (cat na a b (hash "public" x)))
-      (send
-        (cat (hash "public" y)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))
-          (hash "hint" (hash "share" (hash "public" x) ltxb))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" ltxa) y)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" x) ltxb)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-          (enc na nb a b
-            (hash "hint" (hash "share" (hash "public" ltxa) y))
-            (hash "hint" (hash "share" (hash "public" x) ltxb))
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                (hash "hint" (hash "share" (hash "public" ltxa) y)))
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-      (recv nb))
-    (uniq-orig nb)
-    (uniq-gen y)
-    (fn-of ("ltx-of" (a ltxa) (b ltxb))
-      ("principal-of" (ltxa a) (ltxb b)))
-    (neq ((exp (gen) x) (gen)))
-    (absent (y ltxa) (y ltxb) (y x)))
-  (defrole ltx-gen
-    (vars (self name) (l rndx))
-    (trace (send (cat self (hash "public" l))) (recv "end-of-protocol")
-      (send l))
-    (uniq-gen l)
-    (fn-of ("ltx-of" (self l)) ("principal-of" (l self)))))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b self self-0 name)
-    (ltxa ltxb x rndx) (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self self) (l ltxa))
-  (defstrand ltx-gen 3 (self self-0) (l ltxb))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (self-0 ltxb) (self ltxa) (a ltxa) (b ltxb))
-    ("principal-of" (ltxb self-0) (ltxa self) (ltxa a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat self (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat self-0 (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 83)
-  (unrealized (0 0) (0 2) (1 0))
-  (preskeleton)
-  (origs (na (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (precedes ((0 1) (1 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb)))
-  (label 84)
-  (parent 83)
-  (unrealized (0 2) (1 0))
-  (origs (na (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((3 0) (0 0)) ((4 1) (1 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "key"
-        (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))
-        (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))) (1 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb)))))))
-  (label 85)
-  (parent 84)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (5 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y))))
-    (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))) (4 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y))))))
-  (label 86)
-  (parent 85)
-  (unrealized (0 2) (4 0) (5 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxa ltxb x rndx)
-    (y expt))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa ltxa) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l ltxa))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-        (hash "hint" (hash "share" (hash "public" ltxa) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-      (hash "hint" (hash "share" (hash "public" ltxa) y))))
-  (deflistener (cat "share" (hash "public" y) ltxa))
-  (precedes ((0 1) (4 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 0) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)))
-  (absent (x ltxa) (x ltxb))
-  (fn-of ("ltx-of" (b ltxb) (a ltxa))
-    ("principal-of" (ltxb b) (ltxa a)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxa ltxb x)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" y) ltxa))
-    (hash "share" (hash "public" y) ltxa) (5 0))
-  (traces
-    ((recv (cat (hash "public" ltxa) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-                hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" ltxa))) (recv "end-of-protocol")
-      (send ltxa))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-           (hash "hint" (hash "share" (hash "public" ltxa) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) ltxa)
-            (hash "hint" (hash "share" (hash "public" ltxa) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-         (hash "hint" (hash "share" (hash "public" ltxa) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) ltxa)
-          (hash "hint" (hash "share" (hash "public" ltxa) y)))))
-    ((recv (cat "share" (hash "public" y) ltxa))
-      (send (cat "share" (hash "public" y) ltxa))))
-  (label 87)
-  (parent 86)
-  (unrealized (0 2) (4 0) (6 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (precedes ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0)) ((2 2) (6 0))
-    ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0)) ((6 1) (5 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation nonce-test (displaced 7 2 ltx-gen 3) l (6 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l))))
-  (label 88)
-  (parent 87)
-  (unrealized (0 2) (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (precedes ((0 1) (7 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener
-      (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb))))
-    (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))) (4 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-  (label 89)
-  (parent 88)
-  (unrealized (0 2) (7 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton nhcr-umx
-  (vars (hint1 hint2 mesg) (na nb data) (a b name) (ltxb x rndx)
-    (y expt) (l rndx))
-  (defstrand init 4 (hint1 hint1) (hint2 hint2) (na na) (nb nb) (a a)
-    (b b) (ltxa l) (ltxb ltxb) (x x) (y y))
-  (deflistener
-    (hash "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (defstrand ltx-gen 3 (self a) (l l))
-  (defstrand ltx-gen 3 (self b) (l ltxb))
-  (deflistener
-    (cat "key"
-      (hash "nh_key" (hash "share" (hash "public" y) l)
-        (hash "hint" (hash "share" (hash "public" l) y)))
-      (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-        (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" y) l)
-      (hash "hint" (hash "share" (hash "public" l) y))))
-  (deflistener (cat "share" (hash "public" y) l))
-  (deflistener
-    (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-      (hash "hint" (hash "share" (hash "public" x) ltxb))))
-  (deflistener (cat "share" (hash "public" ltxb) x))
-  (precedes ((0 1) (8 0)) ((0 3) (2 1)) ((0 3) (3 1)) ((2 0) (0 0))
-    ((2 2) (6 0)) ((3 0) (0 0)) ((4 1) (1 0)) ((5 1) (4 0))
-    ((6 1) (5 0)) ((7 1) (4 0)) ((8 1) (7 0)))
-  (absent (x l) (x ltxb))
-  (fn-of ("ltx-of" (a l) (b ltxb)) ("principal-of" (l a) (ltxb b)))
-  (neq (a b) ((exp (gen) y) (gen)))
-  (uniq-gen ltxb x l)
-  (uniq-orig na)
-  (operation encryption-test
-    (added-listener (cat "share" (hash "public" ltxb) x))
-    (hash "share" (hash "public" ltxb) x) (7 0))
-  (traces
-    ((recv (cat (hash "public" l) (hash "public" ltxb)))
-      (send (cat na a b (hash "public" x)))
-      (recv
-        (cat (hash "public" y) hint1 hint2
-          (enc na nb a b hint1 hint2
-            (hash "key"
-              (hash "nh_key" (hash "share" (hash "public" y) l) hint1)
-              (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-                hint2))))) (send nb))
-    ((recv
-       (hash "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (hash "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((send (cat a (hash "public" l))) (recv "end-of-protocol") (send l))
-    ((send (cat b (hash "public" ltxb))) (recv "end-of-protocol")
-      (send ltxb))
-    ((recv
-       (cat "key"
-         (hash "nh_key" (hash "share" (hash "public" y) l)
-           (hash "hint" (hash "share" (hash "public" l) y)))
-         (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-           (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-      (send
-        (cat "key"
-          (hash "nh_key" (hash "share" (hash "public" y) l)
-            (hash "hint" (hash "share" (hash "public" l) y)))
-          (hash "nh_key" (hash "share" (hash "public" ltxb) x)
-            (hash "hint" (hash "share" (hash "public" x) ltxb))))))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" y) l)
-         (hash "hint" (hash "share" (hash "public" l) y))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" y) l)
-          (hash "hint" (hash "share" (hash "public" l) y)))))
-    ((recv (cat "share" (hash "public" y) l))
-      (send (cat "share" (hash "public" y) l)))
-    ((recv
-       (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-         (hash "hint" (hash "share" (hash "public" x) ltxb))))
-      (send
-        (cat "nh_key" (hash "share" (hash "public" ltxb) x)
-          (hash "hint" (hash "share" (hash "public" x) ltxb)))))
-    ((recv (cat "share" (hash "public" ltxb) x))
-      (send (cat "share" (hash "public" ltxb) x))))
-  (label 90)
-  (parent 89)
-  (unrealized (0 2) (7 0) (8 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
diff --git a/tst/no_contraction.scm b/tst/no_contraction.scm
new file mode 100644
--- /dev/null
+++ b/tst/no_contraction.scm
@@ -0,0 +1,16 @@
+(defprotocol no-contraction basic
+  (defrole init
+    (vars (a b name) (n text))
+    (trace
+     (send (enc (enc n (privk a))(pubk b)))))
+  (defrole resp
+    (vars (a name) (n text))
+    (trace
+     (recv (enc n (privk a))))))
+
+(defskeleton no-contraction
+  (vars (a b name) (n m text))
+  (defstrand resp 1 (a a) (n n))
+  (defstrand init 1 (n n))
+  (uniq-orig n)
+  (non-orig (privk a)))
diff --git a/tst/no_contraction.tst b/tst/no_contraction.tst
new file mode 100644
--- /dev/null
+++ b/tst/no_contraction.tst
@@ -0,0 +1,65 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/no_contraction.scm")
+
+(defprotocol no-contraction basic
+  (defrole init
+    (vars (a b name) (n text))
+    (trace (send (enc (enc n (privk a)) (pubk b)))))
+  (defrole resp
+    (vars (a name) (n text))
+    (trace (recv (enc n (privk a)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton no-contraction
+  (vars (n text) (a a-0 b name))
+  (defstrand resp 1 (n n) (a a))
+  (defstrand init 1 (n n) (a a-0) (b b))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (traces ((recv (enc n (privk a))))
+    ((send (enc (enc n (privk a-0)) (pubk b)))))
+  (label 0)
+  (unrealized (0 0))
+  (preskeleton)
+  (origs (n (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton no-contraction
+  (vars (n text) (a a-0 b name))
+  (defstrand resp 1 (n n) (a a))
+  (defstrand init 1 (n n) (a a-0) (b b))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (traces ((recv (enc n (privk a))))
+    ((send (enc (enc n (privk a-0)) (pubk b)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 0))
+  (origs (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton no-contraction
+  (vars (n text) (a b name))
+  (defstrand resp 1 (n n) (a a))
+  (defstrand init 1 (n n) (a a) (b b))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation encryption-test (displaced 2 1 init 1) (enc n (privk a-0))
+    (0 0))
+  (traces ((recv (enc n (privk a))))
+    ((send (enc (enc n (privk a)) (pubk b)))))
+  (label 2)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0 1) ((a a) (n n) (a-0 a) (b b))))
+  (origs (n (1 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/non_transforming.scm b/tst/non_transforming.scm
new file mode 100644
--- /dev/null
+++ b/tst/non_transforming.scm
@@ -0,0 +1,42 @@
+; non_transforming.scm --
+;  Illustrates a bug.  In the given
+; POV, if we try an augmentation with
+; (breaker 3), cowt causes a unification
+; that makes the 3rd node no longer a
+; transforming node, because the same
+; message is sent at the 2nd node.
+
+(defprotocol non_transforming basic
+  (defrole sender
+    (vars (a b text) (B name))
+    (trace
+      (send (enc a b (pubk B)))
+    )
+    (uniq-orig a b)
+    (non-orig (privk B))
+  )
+  (defrole recv
+    (vars (a b text) (B name))
+    (trace
+      (recv (enc a (pubk B)))
+      (recv (enc b (pubk B)))
+    )
+  )
+  (defrole breaker
+    (vars (a b text) (B name))
+    (trace
+       (recv (enc a b (pubk B)))
+       (send (enc a (pubk B)))
+       (send (enc b (pubk B)))
+    )
+  )
+)
+
+(defskeleton non_transforming
+  (vars (a b c d text) (B B0 B1 name))
+  (defstrand recv 2 (a a) (b b) (B B))
+  (defstrand sender 1 (a a) (b d) (B B0))
+  (defstrand sender 1 (a c) (b b) (B B1))
+  (precedes ((1 0) (0 0)) ((2 0) (0 1)))
+  (uniq-orig a b)
+)
diff --git a/tst/non_transforming.tst b/tst/non_transforming.tst
new file mode 100644
--- /dev/null
+++ b/tst/non_transforming.tst
@@ -0,0 +1,284 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/non_transforming.scm")
+
+(defprotocol non_transforming basic
+  (defrole sender
+    (vars (a b text) (B name))
+    (trace (send (enc a b (pubk B))))
+    (non-orig (privk B))
+    (uniq-orig a b))
+  (defrole recv
+    (vars (a b text) (B name))
+    (trace (recv (enc a (pubk B))) (recv (enc b (pubk B)))))
+  (defrole breaker
+    (vars (a b text) (B name))
+    (trace (recv (enc a b (pubk B))) (send (enc a (pubk B)))
+      (send (enc b (pubk B)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton non_transforming
+  (vars (a b c d text) (B B0 B1 name))
+  (defstrand recv 2 (a a) (b b) (B B))
+  (defstrand sender 1 (a a) (b d) (B B0))
+  (defstrand sender 1 (a c) (b b) (B B1))
+  (precedes ((1 0) (0 0)) ((2 0) (0 1)))
+  (non-orig (privk B0) (privk B1))
+  (uniq-orig a b c d)
+  (traces ((recv (enc a (pubk B))) (recv (enc b (pubk B))))
+    ((send (enc a d (pubk B0)))) ((send (enc c b (pubk B1)))))
+  (label 0)
+  (unrealized (0 0) (0 1))
+  (origs (c (2 0)) (d (1 0)) (a (1 0)) (b (2 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton non_transforming
+  (vars (a d text) (B B0 name))
+  (defstrand recv 2 (a a) (b d) (B B))
+  (defstrand sender 1 (a a) (b d) (B B0))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk B0))
+  (uniq-orig a d)
+  (operation collapsed 2 1)
+  (traces ((recv (enc a (pubk B))) (recv (enc d (pubk B))))
+    ((send (enc a d (pubk B0)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 0) (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton non_transforming
+  (vars (a b c d text) (B B0 B1 name))
+  (defstrand recv 2 (a a) (b b) (B B))
+  (defstrand sender 1 (a a) (b d) (B B0))
+  (defstrand sender 1 (a c) (b b) (B B1))
+  (defstrand breaker 2 (a a) (b d) (B B0))
+  (precedes ((1 0) (3 0)) ((2 0) (0 1)) ((3 1) (0 0)))
+  (non-orig (privk B0) (privk B1))
+  (uniq-orig a b c d)
+  (operation nonce-test (added-strand breaker 2) a (0 0)
+    (enc a d (pubk B0)))
+  (traces ((recv (enc a (pubk B))) (recv (enc b (pubk B))))
+    ((send (enc a d (pubk B0)))) ((send (enc c b (pubk B1))))
+    ((recv (enc a d (pubk B0))) (send (enc a (pubk B0)))))
+  (label 2)
+  (parent 0)
+  (unrealized (0 0) (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton non_transforming
+  (vars (a d text) (B B0 name))
+  (defstrand recv 2 (a a) (b d) (B B))
+  (defstrand sender 1 (a a) (b d) (B B0))
+  (defstrand breaker 2 (a a) (b d) (B B0))
+  (precedes ((1 0) (2 0)) ((2 1) (0 0)))
+  (non-orig (privk B0))
+  (uniq-orig a d)
+  (operation nonce-test (added-strand breaker 2) a (0 0)
+    (enc a d (pubk B0)))
+  (traces ((recv (enc a (pubk B))) (recv (enc d (pubk B))))
+    ((send (enc a d (pubk B0))))
+    ((recv (enc a d (pubk B0))) (send (enc a (pubk B0)))))
+  (label 3)
+  (parent 1)
+  (unrealized (0 0) (0 1))
+  (origs (a (1 0)) (d (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton non_transforming
+  (vars (a b c d text) (B0 B1 name))
+  (defstrand recv 2 (a a) (b b) (B B0))
+  (defstrand sender 1 (a a) (b d) (B B0))
+  (defstrand sender 1 (a c) (b b) (B B1))
+  (defstrand breaker 2 (a a) (b d) (B B0))
+  (precedes ((1 0) (3 0)) ((2 0) (0 1)) ((3 1) (0 0)))
+  (non-orig (privk B0) (privk B1))
+  (uniq-orig a b c d)
+  (operation nonce-test (contracted (B B0)) a (0 0) (enc a (pubk B0))
+    (enc a d (pubk B0)))
+  (traces ((recv (enc a (pubk B0))) (recv (enc b (pubk B0))))
+    ((send (enc a d (pubk B0)))) ((send (enc c b (pubk B1))))
+    ((recv (enc a d (pubk B0))) (send (enc a (pubk B0)))))
+  (label 4)
+  (parent 2)
+  (unrealized (0 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton non_transforming
+  (vars (a d text) (B0 name))
+  (defstrand recv 2 (a a) (b d) (B B0))
+  (defstrand sender 1 (a a) (b d) (B B0))
+  (defstrand breaker 2 (a a) (b d) (B B0))
+  (precedes ((1 0) (2 0)) ((2 1) (0 0)))
+  (non-orig (privk B0))
+  (uniq-orig a d)
+  (operation nonce-test (contracted (B B0)) a (0 0) (enc a (pubk B0))
+    (enc a d (pubk B0)))
+  (traces ((recv (enc a (pubk B0))) (recv (enc d (pubk B0))))
+    ((send (enc a d (pubk B0))))
+    ((recv (enc a d (pubk B0))) (send (enc a (pubk B0)))))
+  (label 5)
+  (parent 3)
+  (unrealized (0 1))
+  (origs (a (1 0)) (d (1 0)))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton non_transforming
+  (vars (a b c d text) (B0 B1 name))
+  (defstrand recv 2 (a a) (b b) (B B0))
+  (defstrand sender 1 (a a) (b d) (B B0))
+  (defstrand sender 1 (a c) (b b) (B B1))
+  (defstrand breaker 2 (a a) (b d) (B B0))
+  (defstrand breaker 3 (a c) (b b) (B B1))
+  (precedes ((1 0) (3 0)) ((2 0) (4 0)) ((3 1) (0 0)) ((4 2) (0 1)))
+  (non-orig (privk B0) (privk B1))
+  (uniq-orig a b c d)
+  (operation nonce-test (added-strand breaker 3) b (0 1)
+    (enc c b (pubk B1)))
+  (traces ((recv (enc a (pubk B0))) (recv (enc b (pubk B0))))
+    ((send (enc a d (pubk B0)))) ((send (enc c b (pubk B1))))
+    ((recv (enc a d (pubk B0))) (send (enc a (pubk B0))))
+    ((recv (enc c b (pubk B1))) (send (enc c (pubk B1)))
+      (send (enc b (pubk B1)))))
+  (label 6)
+  (parent 4)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton non_transforming
+  (vars (a c d text) (B0 B1 name))
+  (defstrand recv 2 (a a) (b c) (B B0))
+  (defstrand sender 1 (a a) (b d) (B B0))
+  (defstrand sender 1 (a c) (b c) (B B1))
+  (defstrand breaker 2 (a a) (b d) (B B0))
+  (defstrand breaker 2 (a c) (b c) (B B1))
+  (precedes ((1 0) (3 0)) ((2 0) (4 0)) ((3 1) (0 0)) ((4 1) (0 1)))
+  (non-orig (privk B0) (privk B1))
+  (uniq-orig a c d)
+  (operation nonce-test (added-strand breaker 2) c (0 1)
+    (enc c c (pubk B1)))
+  (traces ((recv (enc a (pubk B0))) (recv (enc c (pubk B0))))
+    ((send (enc a d (pubk B0)))) ((send (enc c c (pubk B1))))
+    ((recv (enc a d (pubk B0))) (send (enc a (pubk B0))))
+    ((recv (enc c c (pubk B1))) (send (enc c (pubk B1)))))
+  (label 7)
+  (parent 4)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton non_transforming
+  (vars (a d text) (B0 name))
+  (defstrand recv 2 (a a) (b d) (B B0))
+  (defstrand sender 1 (a a) (b d) (B B0))
+  (defstrand breaker 3 (a a) (b d) (B B0))
+  (precedes ((1 0) (2 0)) ((2 1) (0 0)) ((2 2) (0 1)))
+  (non-orig (privk B0))
+  (uniq-orig a d)
+  (operation nonce-test (displaced 2 3 breaker 3) d (0 1)
+    (enc a d (pubk B0)))
+  (traces ((recv (enc a (pubk B0))) (recv (enc d (pubk B0))))
+    ((send (enc a d (pubk B0))))
+    ((recv (enc a d (pubk B0))) (send (enc a (pubk B0)))
+      (send (enc d (pubk B0)))))
+  (label 8)
+  (parent 5)
+  (realized)
+  (shape)
+  (maps ((0 1 1) ((a a) (b d) (c a) (d d) (B B0) (B0 B0) (B1 B0))))
+  (origs (a (1 0)) (d (1 0))))
+
+(defskeleton non_transforming
+  (vars (a d text) (B0 name))
+  (defstrand recv 2 (a a) (b d) (B B0))
+  (defstrand sender 1 (a a) (b d) (B B0))
+  (defstrand breaker 2 (a a) (b d) (B B0))
+  (defstrand breaker 3 (a a) (b d) (B B0))
+  (precedes ((1 0) (2 0)) ((1 0) (3 0)) ((2 1) (0 0)) ((3 2) (0 1)))
+  (non-orig (privk B0))
+  (uniq-orig a d)
+  (operation nonce-test (added-strand breaker 3) d (0 1)
+    (enc a d (pubk B0)))
+  (traces ((recv (enc a (pubk B0))) (recv (enc d (pubk B0))))
+    ((send (enc a d (pubk B0))))
+    ((recv (enc a d (pubk B0))) (send (enc a (pubk B0))))
+    ((recv (enc a d (pubk B0))) (send (enc a (pubk B0)))
+      (send (enc d (pubk B0)))))
+  (label 9)
+  (parent 5)
+  (realized)
+  (shape)
+  (maps ((0 1 1) ((a a) (b d) (c a) (d d) (B B0) (B0 B0) (B1 B0))))
+  (origs (a (1 0)) (d (1 0))))
+
+(defskeleton non_transforming
+  (vars (a text) (B0 name))
+  (defstrand recv 2 (a a) (b a) (B B0))
+  (defstrand sender 1 (a a) (b a) (B B0))
+  (defstrand breaker 2 (a a) (b a) (B B0))
+  (precedes ((1 0) (2 0)) ((2 1) (0 0)))
+  (non-orig (privk B0))
+  (uniq-orig a)
+  (operation nonce-test (displaced 3 2 breaker 2) a (0 1)
+    (enc a a (pubk B0)))
+  (traces ((recv (enc a (pubk B0))) (recv (enc a (pubk B0))))
+    ((send (enc a a (pubk B0))))
+    ((recv (enc a a (pubk B0))) (send (enc a (pubk B0)))))
+  (label 10)
+  (parent 5)
+  (realized)
+  (shape)
+  (maps ((0 1 1) ((a a) (b a) (c a) (d a) (B B0) (B0 B0) (B1 B0))))
+  (origs (a (1 0))))
+
+(defskeleton non_transforming
+  (vars (a b c d text) (B1 name))
+  (defstrand recv 2 (a a) (b b) (B B1))
+  (defstrand sender 1 (a a) (b d) (B B1))
+  (defstrand sender 1 (a c) (b b) (B B1))
+  (defstrand breaker 2 (a a) (b d) (B B1))
+  (defstrand breaker 3 (a c) (b b) (B B1))
+  (precedes ((1 0) (3 0)) ((2 0) (4 0)) ((3 1) (0 0)) ((4 2) (0 1)))
+  (non-orig (privk B1))
+  (uniq-orig a b c d)
+  (operation nonce-test (contracted (B0 B1)) b (0 1) (enc b (pubk B1))
+    (enc c b (pubk B1)))
+  (traces ((recv (enc a (pubk B1))) (recv (enc b (pubk B1))))
+    ((send (enc a d (pubk B1)))) ((send (enc c b (pubk B1))))
+    ((recv (enc a d (pubk B1))) (send (enc a (pubk B1))))
+    ((recv (enc c b (pubk B1))) (send (enc c (pubk B1)))
+      (send (enc b (pubk B1)))))
+  (label 11)
+  (parent 6)
+  (realized)
+  (shape)
+  (maps ((0 1 2) ((a a) (b b) (c c) (d d) (B B1) (B0 B1) (B1 B1))))
+  (origs (c (2 0)) (d (1 0)) (a (1 0)) (b (2 0))))
+
+(defskeleton non_transforming
+  (vars (a c d text) (B1 name))
+  (defstrand recv 2 (a a) (b c) (B B1))
+  (defstrand sender 1 (a a) (b d) (B B1))
+  (defstrand sender 1 (a c) (b c) (B B1))
+  (defstrand breaker 2 (a a) (b d) (B B1))
+  (defstrand breaker 2 (a c) (b c) (B B1))
+  (precedes ((1 0) (3 0)) ((2 0) (4 0)) ((3 1) (0 0)) ((4 1) (0 1)))
+  (non-orig (privk B1))
+  (uniq-orig a c d)
+  (operation nonce-test (contracted (B0 B1)) c (0 1) (enc c (pubk B1))
+    (enc c c (pubk B1)))
+  (traces ((recv (enc a (pubk B1))) (recv (enc c (pubk B1))))
+    ((send (enc a d (pubk B1)))) ((send (enc c c (pubk B1))))
+    ((recv (enc a d (pubk B1))) (send (enc a (pubk B1))))
+    ((recv (enc c c (pubk B1))) (send (enc c (pubk B1)))))
+  (label 12)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0 1 2) ((a a) (b c) (c c) (d d) (B B1) (B0 B1) (B1 B1))))
+  (origs (c (2 0)) (d (1 0)) (a (1 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/nonaug-prune.scm b/tst/nonaug-prune.scm
new file mode 100644
--- /dev/null
+++ b/tst/nonaug-prune.scm
@@ -0,0 +1,42 @@
+;; This protocol shows that it is possible to prune
+;; two strands of a parent skeleton after augmenting
+;; with a new strand.
+
+(defprotocol nonaug-prune basic
+  (defrole orig
+    (vars (n text) (A B name) (k akey))
+    (trace
+     (send (enc n B B k))
+     (send (enc n A k))
+     (recv (enc n A A A k)))
+    (uniq-orig n)
+    (non-orig (invk k)))
+  (defrole trans1
+    (vars (n text) (A C name) (k akey))
+    (trace
+     (recv (enc n A A k))
+     (recv (enc n A k))
+     (send (enc n n C k))))
+  (defrole trans2
+    (vars (n text) (A name) (k akey))
+    (trace
+     (recv (enc n A k))
+     (send (enc n A A A k))))
+)
+
+;; (defskeleton nonaug-prune
+;;   (vars (n text) (A B C name) (k akey))
+;;   (defstrand trans1 3 (n n) (A A) (C C) (k k))
+;;   (defstrand orig 3 (n n) (A A) (B B) (k k))
+;;   (precedes ((1 0) (0 0)) ((0 2) (1 2))))
+
+;; (defskeleton nonaug-prune
+;;   (vars (n text) (A B name) (k akey))
+;;   (defstrand orig 3 (n n) (A A) (B B) (k k)))
+
+(defskeleton nonaug-prune
+  (vars (n text) (A B name) (k akey))
+  (defstrand trans2 2 (n n) (A B) (k k))
+  (defstrand trans2 2 (n n) (A A) (k k))
+  (defstrand orig 3 (n n) (A A)(B B) (k k))
+  (precedes ((2 0) (0 0)) ((2 0) (1 0))))
diff --git a/tst/nonaug-prune.tst b/tst/nonaug-prune.tst
new file mode 100644
--- /dev/null
+++ b/tst/nonaug-prune.tst
@@ -0,0 +1,828 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/nonaug-prune.scm")
+
+(defprotocol nonaug-prune basic
+  (defrole orig
+    (vars (n text) (A B name) (k akey))
+    (trace (send (enc n B B k)) (send (enc n A k))
+      (recv (enc n A A A k)))
+    (non-orig (invk k))
+    (uniq-orig n))
+  (defrole trans1
+    (vars (n text) (A C name) (k akey))
+    (trace (recv (enc n A A k)) (recv (enc n A k))
+      (send (enc n n C k))))
+  (defrole trans2
+    (vars (n text) (A name) (k akey))
+    (trace (recv (enc n A k)) (send (enc n A A A k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (A B name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand orig 3 (n n) (k k) (A A) (B B))
+  (precedes ((2 0) (0 0)) ((2 0) (1 0)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((send (enc n B B k)) (send (enc n A k)) (recv (enc n A A A k))))
+  (label 0)
+  (unrealized (0 0) (1 0) (2 2))
+  (origs (n (2 0)))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (precedes ((1 0) (0 0)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation collapsed 1 0)
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k))))
+  (label 1)
+  (parent 0)
+  (seen 2)
+  (unrealized (0 0) (1 2))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (precedes ((0 1) (2 2)) ((2 0) (0 0)) ((2 0) (1 0)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 3 0 trans2 2) n (2 2) (enc n A k)
+    (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k))))
+  (label 2)
+  (parent 0)
+  (unrealized (0 0) (1 0))
+  (origs (n (2 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B C name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (defstrand trans1 3 (n n) (k k) (A B) (C C))
+  (precedes ((2 0) (0 0)) ((2 0) (1 0)) ((2 0) (3 0)) ((3 2) (2 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (added-strand trans1 3) n (2 2) (enc n B k)
+    (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k)))
+    ((recv (enc n B B k)) (recv (enc n B k)) (send (enc n n C k))))
+  (label 3)
+  (parent 0)
+  (unrealized (0 0) (1 0) (2 2) (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (A B name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand orig 3 (n n) (k k) (A A) (B B))
+  (precedes ((1 1) (2 2)) ((2 0) (0 0)) ((2 0) (1 0)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 3 1 trans2 2) n (2 2) (enc n A k)
+    (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((send (enc n B B k)) (send (enc n A k)) (recv (enc n A A A k))))
+  (label 4)
+  (parent 0)
+  (unrealized (0 0) (1 0))
+  (origs (n (2 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (A B name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand orig 3 (n n) (k k) (A A) (B B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (precedes ((2 0) (0 0)) ((2 0) (1 0)) ((2 0) (3 0)) ((3 1) (2 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (added-strand trans2 2) n (2 2) (enc n A k)
+    (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((send (enc n B B k)) (send (enc n A k)) (recv (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k))))
+  (label 5)
+  (parent 0)
+  (unrealized (0 0) (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B C name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (defstrand trans1 3 (n n) (k k) (A B) (C C))
+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((2 2) (1 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (added-strand trans1 3) n (1 2) (enc n B k)
+    (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k)))
+    ((recv (enc n B B k)) (recv (enc n B k)) (send (enc n n C k))))
+  (label 6)
+  (parent 1)
+  (unrealized (0 0) (1 2) (2 1))
+  (origs (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (precedes ((0 1) (1 2)) ((1 0) (0 0)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 2 0 trans2 2) n (1 2) (enc n B k)
+    (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k))))
+  (label 7)
+  (parent 1)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (precedes ((0 1) (2 2)) ((2 0) (0 0)) ((2 1) (1 0)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 3 2 orig 2) n (1 0) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k))))
+  (label 8)
+  (parent 2)
+  (unrealized (0 0))
+  (origs (n (2 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B C name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (defstrand trans1 3 (n n) (k k) (A B) (C C))
+  (precedes ((2 0) (0 0)) ((2 0) (1 0)) ((2 0) (3 0)) ((2 1) (3 1))
+    ((3 2) (2 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 4 2 orig 2) n (3 1) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k)))
+    ((recv (enc n B B k)) (recv (enc n B k)) (send (enc n n C k))))
+  (label 9)
+  (parent 3)
+  (unrealized (0 0) (1 0) (2 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (A B name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand orig 3 (n n) (k k) (A A) (B B))
+  (precedes ((1 1) (2 2)) ((2 0) (0 0)) ((2 1) (1 0)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 3 2 orig 2) n (1 0) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((send (enc n B B k)) (send (enc n A k)) (recv (enc n A A A k))))
+  (label 10)
+  (parent 4)
+  (unrealized (0 0))
+  (origs (n (2 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (A B name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand orig 3 (n n) (k k) (A A) (B B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (precedes ((2 0) (0 0)) ((2 0) (1 0)) ((2 1) (3 0)) ((3 1) (2 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 4 2 orig 2) n (3 0) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((send (enc n B B k)) (send (enc n A k)) (recv (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k))))
+  (label 11)
+  (parent 5)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B C name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (defstrand trans1 3 (n n) (k k) (A B) (C C))
+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((1 1) (2 1)) ((2 2) (1 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 3 1 orig 2) n (2 1) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k)))
+    ((recv (enc n B B k)) (recv (enc n B k)) (send (enc n n C k))))
+  (label 12)
+  (parent 6)
+  (seen 16)
+  (unrealized (0 0) (1 2))
+  (origs (n (1 0)))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (precedes ((0 1) (1 2)) ((1 1) (0 0)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 2 1 orig 2) n (0 0) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k))))
+  (label 13)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0 0 1) ((n n) (A B) (B B) (k k))))
+  (origs (n (1 0))))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (precedes ((0 1) (2 2)) ((2 1) (0 0)) ((2 1) (1 0)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 3 2 orig 2) n (0 0) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k))))
+  (label 14)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps ((0 1 2) ((n n) (A B) (B B) (k k))))
+  (origs (n (2 0))))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B C C-0 name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (defstrand trans1 3 (n n) (k k) (A B) (C C))
+  (defstrand trans1 3 (n n) (k k) (A B) (C C-0))
+  (precedes ((2 0) (0 0)) ((2 0) (1 0)) ((2 0) (3 0)) ((2 0) (4 0))
+    ((2 1) (3 1)) ((3 2) (2 2)) ((4 2) (2 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (added-strand trans1 3) n (2 2) (enc n B k)
+    (enc n n C k) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k)))
+    ((recv (enc n B B k)) (recv (enc n B k)) (send (enc n n C k)))
+    ((recv (enc n B B k)) (recv (enc n B k)) (send (enc n n C-0 k))))
+  (label 15)
+  (parent 9)
+  (seen 9)
+  (unrealized (0 0) (1 0) (2 2) (4 1))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B C name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (defstrand trans1 3 (n n) (k k) (A B) (C C))
+  (precedes ((1 1) (2 2)) ((2 0) (0 0)) ((2 0) (1 0)) ((2 0) (3 0))
+    ((2 1) (3 1)) ((3 2) (2 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 4 1 trans2 2) n (2 2) (enc n B k)
+    (enc n n C k) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k)))
+    ((recv (enc n B B k)) (recv (enc n B k)) (send (enc n n C k))))
+  (label 16)
+  (parent 9)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B C name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (defstrand trans1 3 (n n) (k k) (A B) (C C))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (precedes ((2 0) (0 0)) ((2 0) (1 0)) ((2 0) (3 0)) ((2 0) (4 0))
+    ((2 1) (3 1)) ((3 2) (2 2)) ((4 1) (2 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (added-strand trans2 2) n (2 2) (enc n B k)
+    (enc n n C k) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k)))
+    ((recv (enc n B B k)) (recv (enc n B k)) (send (enc n n C k)))
+    ((recv (enc n B k)) (send (enc n B B B k))))
+  (label 17)
+  (parent 9)
+  (unrealized (0 0) (1 0) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (A B name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand orig 3 (n n) (k k) (A A) (B B))
+  (precedes ((1 1) (2 2)) ((2 1) (0 0)) ((2 1) (1 0)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 3 2 orig 2) n (0 0) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((send (enc n B B k)) (send (enc n A k)) (recv (enc n A A A k))))
+  (label 18)
+  (parent 10)
+  (seen 14)
+  (unrealized (0 0))
+  (origs (n (2 0)))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (A B name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand orig 3 (n n) (k k) (A A) (B B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (precedes ((2 0) (0 0)) ((2 1) (1 0)) ((2 1) (3 0)) ((3 1) (2 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 4 2 orig 2) n (1 0) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((send (enc n B B k)) (send (enc n A k)) (recv (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k))))
+  (label 19)
+  (parent 11)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B C C-0 name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (defstrand trans1 3 (n n) (k k) (A B) (C C))
+  (defstrand trans1 3 (n n) (k k) (A B) (C C-0))
+  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0)) ((1 1) (2 1))
+    ((2 2) (1 2)) ((3 2) (1 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (added-strand trans1 3) n (1 2) (enc n B k)
+    (enc n n C k) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k)))
+    ((recv (enc n B B k)) (recv (enc n B k)) (send (enc n n C k)))
+    ((recv (enc n B B k)) (recv (enc n B k)) (send (enc n n C-0 k))))
+  (label 20)
+  (parent 12)
+  (seen 12)
+  (unrealized (0 0) (1 2) (3 1))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B C name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (defstrand trans1 3 (n n) (k k) (A B) (C C))
+  (precedes ((0 1) (1 2)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 1) (2 1))
+    ((2 2) (1 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 3 0 trans2 2) n (1 2) (enc n B k)
+    (enc n n C k) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k)))
+    ((recv (enc n B B k)) (recv (enc n B k)) (send (enc n n C k))))
+  (label 21)
+  (parent 12)
+  (unrealized (0 0))
+  (origs (n (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B C name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (defstrand trans1 3 (n n) (k k) (A B) (C C))
+  (precedes ((1 1) (2 2)) ((2 0) (0 0)) ((2 0) (3 0)) ((2 1) (1 0))
+    ((2 1) (3 1)) ((3 2) (2 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 4 2 orig 2) n (1 0) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k)))
+    ((recv (enc n B B k)) (recv (enc n B k)) (send (enc n n C k))))
+  (label 22)
+  (parent 16)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B C name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (defstrand trans1 3 (n n) (k k) (A B) (C C))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (precedes ((2 0) (0 0)) ((2 0) (1 0)) ((2 0) (3 0)) ((2 1) (3 1))
+    ((2 1) (4 0)) ((3 2) (2 2)) ((4 1) (2 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 5 2 orig 2) n (4 0) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k)))
+    ((recv (enc n B B k)) (recv (enc n B k)) (send (enc n n C k)))
+    ((recv (enc n B k)) (send (enc n B B B k))))
+  (label 23)
+  (parent 17)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (A B name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand orig 3 (n n) (k k) (A A) (B B))
+  (precedes ((1 1) (0 0)) ((1 1) (2 2)) ((2 1) (1 0)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 3 1 trans2 2) n (0 0) (enc n A k)
+    (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((send (enc n B B k)) (send (enc n A k)) (recv (enc n A A A k))))
+  (label 24)
+  (parent 18)
+  (unrealized (0 0))
+  (origs (n (2 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (A B name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand orig 3 (n n) (k k) (A A) (B B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (precedes ((1 1) (2 2)) ((2 0) (3 0)) ((2 1) (0 0)) ((2 1) (1 0))
+    ((3 1) (0 0)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (added-strand trans2 2) n (0 0) (enc n A k)
+    (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((send (enc n B B k)) (send (enc n A k)) (recv (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k))))
+  (label 25)
+  (parent 18)
+  (unrealized (0 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (A B name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand orig 3 (n n) (k k) (A A) (B B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (precedes ((2 1) (0 0)) ((2 1) (1 0)) ((2 1) (3 0)) ((3 1) (2 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 4 2 orig 2) n (0 0) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((send (enc n B B k)) (send (enc n A k)) (recv (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k))))
+  (label 26)
+  (parent 19)
+  (seen 31)
+  (unrealized (0 0))
+  (comment "4 in cohort - 3 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B C name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (defstrand trans1 3 (n n) (k k) (A B) (C C))
+  (precedes ((0 1) (1 2)) ((1 0) (2 0)) ((1 1) (0 0)) ((1 1) (2 1))
+    ((2 2) (1 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 3 1 orig 2) n (0 0) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k)))
+    ((recv (enc n B B k)) (recv (enc n B k)) (send (enc n n C k))))
+  (label 27)
+  (parent 21)
+  (seen 13)
+  (realized)
+  (origs (n (1 0)))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B C name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (defstrand trans1 3 (n n) (k k) (A B) (C C))
+  (precedes ((1 1) (2 2)) ((2 0) (3 0)) ((2 1) (0 0)) ((2 1) (1 0))
+    ((2 1) (3 1)) ((3 2) (2 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 4 2 orig 2) n (0 0) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k)))
+    ((recv (enc n B B k)) (recv (enc n B k)) (send (enc n n C k))))
+  (label 28)
+  (parent 22)
+  (seen 14)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B C name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (defstrand trans1 3 (n n) (k k) (A B) (C C))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (precedes ((2 0) (0 0)) ((2 0) (3 0)) ((2 1) (1 0)) ((2 1) (3 1))
+    ((2 1) (4 0)) ((3 2) (2 2)) ((4 1) (2 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 5 2 orig 2) n (1 0) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k)))
+    ((recv (enc n B B k)) (recv (enc n B k)) (send (enc n n C k)))
+    ((recv (enc n B k)) (send (enc n B B B k))))
+  (label 29)
+  (parent 23)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (A name))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand orig 3 (n n) (k k) (A A) (B A))
+  (precedes ((1 1) (0 0)) ((1 1) (2 2)) ((2 1) (1 0)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (contracted (B A)) n (0 0) (enc n A k)
+    (enc n A A k) (enc n A A A k))
+  (traces ((recv (enc n A k)) (send (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((send (enc n A A k)) (send (enc n A k)) (recv (enc n A A A k))))
+  (label 30)
+  (parent 24)
+  (seen 14)
+  (realized)
+  (origs (n (2 0)))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (A B name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand orig 3 (n n) (k k) (A A) (B B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (precedes ((1 1) (2 2)) ((2 1) (1 0)) ((2 1) (3 0)) ((3 1) (0 0)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 4 2 orig 2) n (3 0) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((send (enc n B B k)) (send (enc n A k)) (recv (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k))))
+  (label 31)
+  (parent 25)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (A name))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand orig 3 (n n) (k k) (A A) (B A))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (precedes ((2 1) (0 0)) ((2 1) (1 0)) ((2 1) (3 0)) ((3 1) (2 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (contracted (B A)) n (0 0) (enc n A k)
+    (enc n A A k))
+  (traces ((recv (enc n A k)) (send (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((send (enc n A A k)) (send (enc n A k)) (recv (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k))))
+  (label 32)
+  (parent 26)
+  (realized)
+  (shape)
+  (maps ((0 1 2) ((n n) (A A) (B A) (k k))))
+  (origs (n (2 0))))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (A B name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand orig 3 (n n) (k k) (A A) (B B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (precedes ((2 1) (1 0)) ((2 1) (3 0)) ((3 1) (0 0)) ((3 1) (2 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 4 3 trans2 2) n (0 0) (enc n A k)
+    (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((send (enc n B B k)) (send (enc n A k)) (recv (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k))))
+  (label 33)
+  (parent 26)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (A B name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand orig 3 (n n) (k k) (A A) (B B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (precedes ((2 0) (4 0)) ((2 1) (0 0)) ((2 1) (1 0)) ((2 1) (3 0))
+    ((3 1) (2 2)) ((4 1) (0 0)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (added-strand trans2 2) n (0 0) (enc n A k)
+    (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((send (enc n B B k)) (send (enc n A k)) (recv (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k))))
+  (label 34)
+  (parent 26)
+  (unrealized (0 0) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (B C name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand orig 3 (n n) (k k) (A B) (B B))
+  (defstrand trans1 3 (n n) (k k) (A B) (C C))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (precedes ((2 0) (3 0)) ((2 1) (0 0)) ((2 1) (1 0)) ((2 1) (3 1))
+    ((2 1) (4 0)) ((3 2) (2 2)) ((4 1) (2 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 5 2 orig 2) n (0 0) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n B k)) (send (enc n B B B k)))
+    ((send (enc n B B k)) (send (enc n B k)) (recv (enc n B B B k)))
+    ((recv (enc n B B k)) (recv (enc n B k)) (send (enc n n C k)))
+    ((recv (enc n B k)) (send (enc n B B B k))))
+  (label 35)
+  (parent 29)
+  (seen 32)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (A name))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand orig 3 (n n) (k k) (A A) (B A))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (precedes ((1 1) (2 2)) ((2 1) (1 0)) ((2 1) (3 0)) ((3 1) (0 0)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (contracted (B A)) n (0 0) (enc n A k)
+    (enc n A A k) (enc n A A A k))
+  (traces ((recv (enc n A k)) (send (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((send (enc n A A k)) (send (enc n A k)) (recv (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k))))
+  (label 36)
+  (parent 31)
+  (seen 14)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (A name))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand orig 3 (n n) (k k) (A A) (B A))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (precedes ((2 1) (1 0)) ((2 1) (3 0)) ((3 1) (0 0)) ((3 1) (2 2)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (contracted (B A)) n (0 0) (enc n A k)
+    (enc n A A k) (enc n A A A k))
+  (traces ((recv (enc n A k)) (send (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((send (enc n A A k)) (send (enc n A k)) (recv (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k))))
+  (label 37)
+  (parent 33)
+  (seen 32)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (A B name))
+  (defstrand trans2 2 (n n) (k k) (A B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand orig 3 (n n) (k k) (A A) (B B))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (precedes ((2 1) (1 0)) ((2 1) (3 0)) ((2 1) (4 0)) ((3 1) (2 2))
+    ((4 1) (0 0)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (displaced 5 2 orig 2) n (4 0) (enc n B B k))
+  (traces ((recv (enc n B k)) (send (enc n B B B k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((send (enc n B B k)) (send (enc n A k)) (recv (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k))))
+  (label 38)
+  (parent 34)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nonaug-prune
+  (vars (n text) (k akey) (A name))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand orig 3 (n n) (k k) (A A) (B A))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (defstrand trans2 2 (n n) (k k) (A A))
+  (precedes ((2 1) (1 0)) ((2 1) (3 0)) ((2 1) (4 0)) ((3 1) (2 2))
+    ((4 1) (0 0)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (contracted (B A)) n (0 0) (enc n A k)
+    (enc n A A k) (enc n A A A k))
+  (traces ((recv (enc n A k)) (send (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((send (enc n A A k)) (send (enc n A k)) (recv (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k)))
+    ((recv (enc n A k)) (send (enc n A A A k))))
+  (label 39)
+  (parent 38)
+  (seen 32)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/tst/ns-l.scm b/tst/ns-l.scm
new file mode 100644
--- /dev/null
+++ b/tst/ns-l.scm
@@ -0,0 +1,38 @@
+(herald "Needham-Schroeder-Low Public-Key Protocol"
+	(comment "With deflistener's"))
+
+;;; Used to generate output for inclusion in the primer.
+;;; Use margin = 60 (-m 60) to generate the output.
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace
+     (send (enc n1 a (pubk b)))
+     (recv (enc b n1 n2 (pubk a)))
+     (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace
+     (recv (enc n1 a (pubk b)))
+     (send (enc b n1 n2 (pubk a)))
+     (recv (enc n2 (pubk b)))))
+  (comment "Needham-Schroeder"))
+
+;;; The initiator point-of-view
+(defskeleton ns
+  (vars (a b name) (n1 text))
+  (defstrand init 3 (a a) (b b) (n1 n1))
+  (deflistener n1)
+  (non-orig (privk b) (privk a))
+  (uniq-orig n1)
+  (comment "Initiator point-of-view with a listener"))
+
+;;; The responder point-of-view
+(defskeleton ns
+  (vars (a name) (n2 text))
+  (defstrand resp 3 (a a) (n2 n2))
+  (deflistener n2)
+  (non-orig (privk a))
+  (uniq-orig n2)
+  (comment "Responder point-of-view with a listener"))
diff --git a/tst/ns-l.tst b/tst/ns-l.tst
new file mode 100644
--- /dev/null
+++ b/tst/ns-l.tst
@@ -0,0 +1,235 @@
+(herald "Needham-Schroeder-Low Public-Key Protocol"
+  (comment "With deflistener's"))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/ns-l.scm")
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc n1 a (pubk b))) (recv (enc b n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc n1 a (pubk b))) (send (enc b n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Needham-Schroeder"))
+
+(defskeleton ns
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (deflistener n1)
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (comment "Initiator point-of-view with a listener")
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc b n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))) ((recv n1) (send n1)))
+  (label 0)
+  (unrealized (0 1) (1 0))
+  (preskeleton)
+  (origs (n1 (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton ns
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (deflistener n1)
+  (precedes ((0 0) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc b n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))) ((recv n1) (send n1)))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1) (1 0))
+  (origs (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (n1 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (deflistener n1)
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (2 0)) ((2 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (operation nonce-test (added-strand resp 2) n1 (1 0)
+    (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc b n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))) ((recv n1) (send n1))
+    ((recv (enc n1 a (pubk b))) (send (enc b n1 n2-0 (pubk a)))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 1) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (n2 text) (a b name))
+  (defstrand init 3 (n1 n2) (n2 n2) (a a) (b b))
+  (deflistener n2)
+  (defstrand resp 2 (n2 n2) (n1 n2) (b b) (a a))
+  (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n2)
+  (operation nonce-test (displaced 3 0 init 3) n2-0 (1 0)
+    (enc n2-0 a (pubk b)) (enc b n2-0 n2-0 (pubk a)))
+  (traces
+    ((send (enc n2 a (pubk b))) (recv (enc b n2 n2 (pubk a)))
+      (send (enc n2 (pubk b)))) ((recv n2) (send n2))
+    ((recv (enc n2 a (pubk b))) (send (enc b n2 n2 (pubk a)))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 1) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n2) (n2 n2) (a a) (b b))
+  (deflistener n2)
+  (defstrand resp 2 (n2 n2) (n1 n2) (b b) (a a))
+  (defstrand resp 2 (n2 n2-0) (n1 n2) (b b) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 2) (1 0)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n2)
+  (operation nonce-test (added-strand resp 2) n2 (1 0) (enc n2 (pubk b))
+    (enc n2 a (pubk b)) (enc b n2 n2 (pubk a)))
+  (traces
+    ((send (enc n2 a (pubk b))) (recv (enc b n2 n2 (pubk a)))
+      (send (enc n2 (pubk b)))) ((recv n2) (send n2))
+    ((recv (enc n2 a (pubk b))) (send (enc b n2 n2 (pubk a))))
+    ((recv (enc n2 a (pubk b))) (send (enc b n2 n2-0 (pubk a)))))
+  (label 4)
+  (parent 3)
+  (unrealized (0 1) (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc n1 a (pubk b))) (recv (enc b n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc n1 a (pubk b))) (send (enc b n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Needham-Schroeder"))
+
+(defskeleton ns
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (deflistener n2)
+  (non-orig (privk a))
+  (uniq-orig n2)
+  (comment "Responder point-of-view with a listener")
+  (traces
+    ((recv (enc n1 a (pubk b))) (send (enc b n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b)))) ((recv n2) (send n2)))
+  (label 5)
+  (unrealized (0 2) (1 0))
+  (preskeleton)
+  (origs (n2 (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton ns
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (deflistener n2)
+  (precedes ((0 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig n2)
+  (traces
+    ((recv (enc n1 a (pubk b))) (send (enc b n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b)))) ((recv n2) (send n2)))
+  (label 6)
+  (parent 5)
+  (unrealized (0 2) (1 0))
+  (origs (n2 (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (deflistener n2)
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (2 1)) ((2 2) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig n2)
+  (operation nonce-test (added-strand init 3) n2 (1 0)
+    (enc b n1 n2 (pubk a)))
+  (traces
+    ((recv (enc n1 a (pubk b))) (send (enc b n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b)))) ((recv n2) (send n2))
+    ((send (enc n1 a (pubk b))) (recv (enc b n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 7)
+  (parent 6)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton ns
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (deflistener n2)
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (2 1)) ((2 2) (0 2)) ((2 2) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig n2)
+  (operation nonce-test (displaced 3 2 init 3) n2 (0 2)
+    (enc b n1 n2 (pubk a)))
+  (traces
+    ((recv (enc n1 a (pubk b))) (send (enc b n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b)))) ((recv n2) (send n2))
+    ((send (enc n1 a (pubk b))) (recv (enc b n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 8)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0 1) ((a a) (n2 n2) (b b) (n1 n1))))
+  (origs (n2 (0 1))))
+
+(defskeleton ns
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (deflistener n2)
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (2 1)) ((0 1) (3 1)) ((2 2) (1 0)) ((3 2) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig n2)
+  (operation nonce-test (added-strand init 3) n2 (0 2)
+    (enc b n1 n2 (pubk a)))
+  (traces
+    ((recv (enc n1 a (pubk b))) (send (enc b n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b)))) ((recv n2) (send n2))
+    ((send (enc n1 a (pubk b))) (recv (enc b n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((send (enc n1 a (pubk b))) (recv (enc b n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 9)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0 1) ((a a) (n2 n2) (b b) (n1 n1))))
+  (origs (n2 (0 1))))
+
+(comment "Nothing left to do")
diff --git a/tst/ns-rebinding.scm b/tst/ns-rebinding.scm
new file mode 100644
--- /dev/null
+++ b/tst/ns-rebinding.scm
@@ -0,0 +1,95 @@
+(comment
+ (defrole keyserver
+   (vars (a name) (b name) (ks name) (t text) (l text) (sk kas kbs skey))
+   (trace
+    (recv (cat a b))
+    (guar (and (long-term-key ks a kas)
+	       (long-term-key ks b kbs)))
+    (send
+     (cat (enc (cat t l sk b) kas)
+	  (enc (cat t l sk a) kbs))))
+   (uniq-orig sk)))
+
+(herald "ALternate Needham-Schroeder Public-Key Protocol Variants")
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace
+     (send (enc n1 a (pubk b)))
+     (recv (enc n1 n2 b (pubk a)))
+     (send (enc n2 (pubk b))))
+    (facts (rel1 n1 n2)
+	   (rel2 n1 n2)))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace
+     (recv (enc n1 a (pubk b)))
+     (send (enc n1 n2 b (pubk a)))
+     (recv (enc n2 (pubk b)))))
+
+  (defrule rebind-x 			; This rule tests rebinding in the conclusion of a rule.
+    (forall
+     ((x y text))
+     (implies
+      (fact rel1 x y)
+      (exists ((x name)) (fact rel2 x y)))))
+
+  (comment "Needham-Schroeder with no role origination assumptions"))
+
+;;; The initiator point-of-view
+(defskeleton ns
+  (vars (a b name) (n1 text))
+  (defstrand init 3 (a a) (b b) (n1 n1))
+  (non-orig (privk b) (privk a))
+  (uniq-orig n1)
+  (comment "Initiator point-of-view"))
+
+(defskeleton ns
+  (vars (a b name) (n1 text))
+  (defstrand init 3 (a a) (b b) (n1 n1))
+  (non-orig (privk b) (privk a))
+  (uniq-orig n1)
+  (facts (rel n1 n1))
+  (comment "Initiator point-of-view"))
+
+(defskeleton ns
+  (vars (a b name) (n1 text))
+  (defstrand init 3 (a a) (b b) (n1 n1))
+  (non-orig (privk b))
+  (uniq-orig n1)
+  (comment "Initiator point-of-view"))
+
+(defskeleton ns
+  (vars (a b name) (n1 text))
+  (defstrand init 3 (a a) (b b) (n1 n1))
+  (deflistener n1)
+  (non-orig (privk b) (privk a))
+  (uniq-orig n1)
+  (comment "Initiator point-of-view"))
+
+;;; Double initiator point-of-view
+(defskeleton ns
+  (vars (a b name) (n1 n1-0 text))
+  (defstrand init 3 (a a) (b b) (n1 n1))
+  (defstrand init 3 (a a) (b b) (n1 n1-0))
+  (non-orig (privk b) (privk a))
+  (uniq-orig n1 n1-0)
+  (comment "Double initiator point-of-view"))
+
+;;; Double initiator point-of-view, same nonce
+(defskeleton ns
+  (vars (a b name) (n1 text))
+  (defstrand init 3 (a a) (b b) (n1 n1))
+  (defstrand init 3 (a a) (b b) (n1 n1))
+  (non-orig (privk b) (privk a))
+  (uniq-orig n1)
+  (comment "Double initiator point-of-view, same nonce"))
+
+;;; The responder point-of-view
+(defskeleton ns
+  (vars (a name) (n2 text))
+  (defstrand resp 3 (a a) (n2 n2))
+  (non-orig (privk a))
+  (uniq-orig n2)
+  (comment "Responder point-of-view"))
diff --git a/tst/ns-rebinding.tst b/tst/ns-rebinding.tst
new file mode 100644
--- /dev/null
+++ b/tst/ns-rebinding.tst
@@ -0,0 +1,891 @@
+(herald "ALternate Needham-Schroeder Public-Key Protocol Variants")
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/ns-rebinding.scm")
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    (facts (rel1 n1 n2) (rel2 n1 n2)))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 b (pubk a)))
+      (recv (enc n2 (pubk b)))))
+  (defrule rebind-x
+    (forall ((x y text))
+      (implies
+        (fact rel1 x y)
+        (exists ((x-0 name)) (fact rel2 x-0 y)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule fact-init-rel11
+    (forall ((z strd) (n2 n1 text))
+      (implies
+        (and (p "init" z (idx 2)) (p "init" "n2" z n2)
+          (p "init" "n1" z n1)) (fact rel1 n1 n2))))
+  (defgenrule fact-init-rel20
+    (forall ((z strd) (n2 n1 text))
+      (implies
+        (and (p "init" z (idx 2)) (p "init" "n2" z n2)
+          (p "init" "n1" z n1)) (fact rel2 n1 n2))))
+  (comment "Needham-Schroeder with no role origination assumptions"))
+
+(defskeleton ns
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (comment "Initiator point-of-view")
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (n1 (0 0)))
+  (comment "Not closed under rules"))
+
+(defskeleton ns
+  (vars (x name) (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (facts (rel2 x n2) (rel1 n1 n2) (rel2 n1 n2))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1))
+  (origs (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (x name) (n1 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (facts (rel2 x n2) (rel1 n1 n2) (rel2 n1 n2))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (operation nonce-test (added-strand resp 2) n1 (0 1)
+    (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2-0 b (pubk a)))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (x name) (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (facts (rel2 x n2) (rel1 n1 n2) (rel2 n1 n2))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (operation nonce-test (contracted (n2-0 n2)) n1 (0 1)
+    (enc n1 a (pubk b)) (enc n1 n2 b (pubk a)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 b (pubk a)))))
+  (label 3)
+  (parent 2)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    (facts (rel1 n1 n2) (rel2 n1 n2)))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 b (pubk a)))
+      (recv (enc n2 (pubk b)))))
+  (defrule rebind-x
+    (forall ((x y text))
+      (implies
+        (fact rel1 x y)
+        (exists ((x-0 name)) (fact rel2 x-0 y)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule fact-init-rel11
+    (forall ((z strd) (n2 n1 text))
+      (implies
+        (and (p "init" z (idx 2)) (p "init" "n2" z n2)
+          (p "init" "n1" z n1)) (fact rel1 n1 n2))))
+  (defgenrule fact-init-rel20
+    (forall ((z strd) (n2 n1 text))
+      (implies
+        (and (p "init" z (idx 2)) (p "init" "n2" z n2)
+          (p "init" "n1" z n1)) (fact rel2 n1 n2))))
+  (comment "Needham-Schroeder with no role origination assumptions"))
+
+(defskeleton ns
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (facts (rel n1 n1))
+  (comment "Initiator point-of-view")
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 4)
+  (unrealized (0 1))
+  (origs (n1 (0 0)))
+  (comment "Not closed under rules"))
+
+(defskeleton ns
+  (vars (x name) (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (facts (rel2 x n2) (rel1 n1 n2) (rel2 n1 n2) (rel n1 n1))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 5)
+  (parent 4)
+  (unrealized (0 1))
+  (origs (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (x name) (n1 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (facts (rel2 x n2) (rel1 n1 n2) (rel2 n1 n2) (rel n1 n1))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (operation nonce-test (added-strand resp 2) n1 (0 1)
+    (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2-0 b (pubk a)))))
+  (label 6)
+  (parent 5)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (x name) (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (facts (rel2 x n2) (rel1 n1 n2) (rel2 n1 n2) (rel n1 n1))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (operation nonce-test (contracted (n2-0 n2)) n1 (0 1)
+    (enc n1 a (pubk b)) (enc n1 n2 b (pubk a)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 b (pubk a)))))
+  (label 7)
+  (parent 6)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    (facts (rel1 n1 n2) (rel2 n1 n2)))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 b (pubk a)))
+      (recv (enc n2 (pubk b)))))
+  (defrule rebind-x
+    (forall ((x y text))
+      (implies
+        (fact rel1 x y)
+        (exists ((x-0 name)) (fact rel2 x-0 y)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule fact-init-rel11
+    (forall ((z strd) (n2 n1 text))
+      (implies
+        (and (p "init" z (idx 2)) (p "init" "n2" z n2)
+          (p "init" "n1" z n1)) (fact rel1 n1 n2))))
+  (defgenrule fact-init-rel20
+    (forall ((z strd) (n2 n1 text))
+      (implies
+        (and (p "init" z (idx 2)) (p "init" "n2" z n2)
+          (p "init" "n1" z n1)) (fact rel2 n1 n2))))
+  (comment "Needham-Schroeder with no role origination assumptions"))
+
+(defskeleton ns
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (non-orig (privk b))
+  (uniq-orig n1)
+  (comment "Initiator point-of-view")
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 8)
+  (unrealized (0 1))
+  (origs (n1 (0 0)))
+  (comment "Not closed under rules"))
+
+(defskeleton ns
+  (vars (x name) (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (non-orig (privk b))
+  (uniq-orig n1)
+  (facts (rel2 x n2) (rel1 n1 n2) (rel2 n1 n2))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 9)
+  (parent 8)
+  (unrealized (0 1))
+  (origs (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (x name) (n1 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-orig n1)
+  (facts (rel2 x n2) (rel1 n1 n2) (rel2 n1 n2))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (operation nonce-test (added-strand resp 2) n1 (0 1)
+    (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2-0 b (pubk a)))))
+  (label 10)
+  (parent 9)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    (facts (rel1 n1 n2) (rel2 n1 n2)))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 b (pubk a)))
+      (recv (enc n2 (pubk b)))))
+  (defrule rebind-x
+    (forall ((x y text))
+      (implies
+        (fact rel1 x y)
+        (exists ((x-0 name)) (fact rel2 x-0 y)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule fact-init-rel11
+    (forall ((z strd) (n2 n1 text))
+      (implies
+        (and (p "init" z (idx 2)) (p "init" "n2" z n2)
+          (p "init" "n1" z n1)) (fact rel1 n1 n2))))
+  (defgenrule fact-init-rel20
+    (forall ((z strd) (n2 n1 text))
+      (implies
+        (and (p "init" z (idx 2)) (p "init" "n2" z n2)
+          (p "init" "n1" z n1)) (fact rel2 n1 n2))))
+  (comment "Needham-Schroeder with no role origination assumptions"))
+
+(defskeleton ns
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (deflistener n1)
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (comment "Initiator point-of-view")
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b)))) ((recv n1) (send n1)))
+  (label 11)
+  (unrealized (0 1) (1 0))
+  (preskeleton)
+  (origs (n1 (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton ns
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (deflistener n1)
+  (precedes ((0 0) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b)))) ((recv n1) (send n1)))
+  (label 12)
+  (parent 11)
+  (unrealized (0 1) (1 0))
+  (origs (n1 (0 0)))
+  (comment "Not closed under rules"))
+
+(defskeleton ns
+  (vars (x name) (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (deflistener n1)
+  (precedes ((0 0) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (facts (rel2 x n2) (rel1 n1 n2) (rel2 n1 n2))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b)))) ((recv n1) (send n1)))
+  (label 13)
+  (parent 12)
+  (unrealized (0 1) (1 0))
+  (origs (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (x name) (n1 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (deflistener n1)
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (2 0)) ((2 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (facts (rel2 x n2) (rel1 n1 n2) (rel2 n1 n2))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (operation nonce-test (added-strand resp 2) n1 (1 0)
+    (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b)))) ((recv n1) (send n1))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2-0 b (pubk a)))))
+  (label 14)
+  (parent 13)
+  (unrealized (0 1) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (x name) (n2 text) (a b name))
+  (defstrand init 3 (n1 n2) (n2 n2) (a a) (b b))
+  (deflistener n2)
+  (defstrand resp 2 (n2 n2) (n1 n2) (b b) (a a))
+  (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n2)
+  (facts (rel2 x n2) (rel1 n2 n2) (rel2 n2 n2))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (operation nonce-test (displaced 3 0 init 3) n2-0 (1 0)
+    (enc n2-0 a (pubk b)) (enc n2-0 n2-0 b (pubk a)))
+  (traces
+    ((send (enc n2 a (pubk b))) (recv (enc n2 n2 b (pubk a)))
+      (send (enc n2 (pubk b)))) ((recv n2) (send n2))
+    ((recv (enc n2 a (pubk b))) (send (enc n2 n2 b (pubk a)))))
+  (label 15)
+  (parent 14)
+  (unrealized (0 1) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (x name) (n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n2) (n2 n2) (a a) (b b))
+  (deflistener n2)
+  (defstrand resp 2 (n2 n2) (n1 n2) (b b) (a a))
+  (defstrand resp 2 (n2 n2-0) (n1 n2) (b b) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 2) (1 0)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n2)
+  (facts (rel2 x n2) (rel1 n2 n2) (rel2 n2 n2))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (operation nonce-test (added-strand resp 2) n2 (1 0) (enc n2 (pubk b))
+    (enc n2 a (pubk b)) (enc n2 n2 b (pubk a)))
+  (traces
+    ((send (enc n2 a (pubk b))) (recv (enc n2 n2 b (pubk a)))
+      (send (enc n2 (pubk b)))) ((recv n2) (send n2))
+    ((recv (enc n2 a (pubk b))) (send (enc n2 n2 b (pubk a))))
+    ((recv (enc n2 a (pubk b))) (send (enc n2 n2-0 b (pubk a)))))
+  (label 16)
+  (parent 15)
+  (unrealized (0 1) (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    (facts (rel1 n1 n2) (rel2 n1 n2)))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 b (pubk a)))
+      (recv (enc n2 (pubk b)))))
+  (defrule rebind-x
+    (forall ((x y text))
+      (implies
+        (fact rel1 x y)
+        (exists ((x-0 name)) (fact rel2 x-0 y)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule fact-init-rel11
+    (forall ((z strd) (n2 n1 text))
+      (implies
+        (and (p "init" z (idx 2)) (p "init" "n2" z n2)
+          (p "init" "n1" z n1)) (fact rel1 n1 n2))))
+  (defgenrule fact-init-rel20
+    (forall ((z strd) (n2 n1 text))
+      (implies
+        (and (p "init" z (idx 2)) (p "init" "n2" z n2)
+          (p "init" "n1" z n1)) (fact rel2 n1 n2))))
+  (comment "Needham-Schroeder with no role origination assumptions"))
+
+(defskeleton ns
+  (vars (n1 n1-0 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n1-0)
+  (comment "Double initiator point-of-view")
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((send (enc n1-0 a (pubk b))) (recv (enc n1-0 n2-0 b (pubk a)))
+      (send (enc n2-0 (pubk b)))))
+  (label 17)
+  (unrealized (0 1) (1 1))
+  (origs (n1 (0 0)) (n1-0 (1 0)))
+  (comment "Not closed under rules"))
+
+(defskeleton ns
+  (vars (x x-0 name) (n1 n1-0 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n1-0)
+  (facts (rel2 x-0 n2-0) (rel2 x n2) (rel1 n1-0 n2-0) (rel1 n1 n2)
+    (rel2 n1-0 n2-0) (rel2 n1 n2))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((send (enc n1-0 a (pubk b))) (recv (enc n1-0 n2-0 b (pubk a)))
+      (send (enc n2-0 (pubk b)))))
+  (label 18)
+  (parent 17)
+  (seen 20)
+  (unrealized (0 1) (1 1))
+  (origs (n1 (0 0)) (n1-0 (1 0)))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (x name) (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (facts (rel2 x n2) (rel1 n1 n2) (rel2 n1 n2))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (operation collapsed 1 0)
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 19)
+  (parent 18)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (x x-0 name) (n1 n1-0 n2 n2-0 n2-1 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b))
+  (defstrand resp 2 (n2 n2-1) (n1 n1-0) (b b) (a a))
+  (precedes ((1 0) (2 0)) ((2 1) (1 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n1-0)
+  (facts (rel2 x-0 n2) (rel2 x n2-0) (rel1 n1-0 n2-0) (rel1 n1 n2)
+    (rel2 n1-0 n2-0) (rel2 n1 n2))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (operation nonce-test (added-strand resp 2) n1-0 (1 1)
+    (enc n1-0 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((send (enc n1-0 a (pubk b))) (recv (enc n1-0 n2-0 b (pubk a)))
+      (send (enc n2-0 (pubk b))))
+    ((recv (enc n1-0 a (pubk b))) (send (enc n1-0 n2-1 b (pubk a)))))
+  (label 20)
+  (parent 18)
+  (seen 22)
+  (unrealized (0 1) (1 1))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (x name) (n1 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (facts (rel2 x n2) (rel1 n1 n2) (rel2 n1 n2))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (operation nonce-test (added-strand resp 2) n1 (0 1)
+    (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2-0 b (pubk a)))))
+  (label 21)
+  (parent 19)
+  (unrealized (0 1))
+  (origs (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (x x-0 name) (n1 n1-0 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1-0) (b b) (a a))
+  (precedes ((1 0) (2 0)) ((2 1) (1 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n1-0)
+  (facts (rel2 x-0 n2) (rel2 x n2-0) (rel1 n1-0 n2-0) (rel1 n1 n2)
+    (rel2 n1-0 n2-0) (rel2 n1 n2))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (operation nonce-test (contracted (n2-1 n2-0)) n1-0 (1 1)
+    (enc n1-0 a (pubk b)) (enc n1-0 n2-0 b (pubk a)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((send (enc n1-0 a (pubk b))) (recv (enc n1-0 n2-0 b (pubk a)))
+      (send (enc n2-0 (pubk b))))
+    ((recv (enc n1-0 a (pubk b))) (send (enc n1-0 n2-0 b (pubk a)))))
+  (label 22)
+  (parent 20)
+  (seen 24)
+  (unrealized (0 1))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (x name) (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (facts (rel2 x n2) (rel1 n1 n2) (rel2 n1 n2))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (operation nonce-test (contracted (n2-0 n2)) n1 (0 1)
+    (enc n1 a (pubk b)) (enc n1 n2 b (pubk a)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 b (pubk a)))))
+  (label 23)
+  (parent 21)
+  (realized)
+  (shape)
+  (maps ((0 0) ((a a) (b b) (n1 n1) (n1-0 n1) (n2 n2) (n2-0 n2))))
+  (origs (n1 (0 0))))
+
+(defskeleton ns
+  (vars (x x-0 name) (n1 n1-0 n2 n2-0 n2-1 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1-0) (b b) (a a))
+  (defstrand resp 2 (n2 n2-1) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((2 1) (1 1)) ((3 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n1-0)
+  (facts (rel2 x-0 n2) (rel2 x n2-0) (rel1 n1-0 n2-0) (rel1 n1 n2)
+    (rel2 n1-0 n2-0) (rel2 n1 n2))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (operation nonce-test (added-strand resp 2) n1 (0 1)
+    (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((send (enc n1-0 a (pubk b))) (recv (enc n1-0 n2-0 b (pubk a)))
+      (send (enc n2-0 (pubk b))))
+    ((recv (enc n1-0 a (pubk b))) (send (enc n1-0 n2-0 b (pubk a))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2-1 b (pubk a)))))
+  (label 24)
+  (parent 22)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (x x-0 name) (n1 n1-0 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (defstrand init 3 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2) (n1 n1-0) (b b) (a a))
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((2 1) (1 1)) ((3 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n1-0)
+  (facts (rel2 x-0 n2) (rel2 x n2-0) (rel1 n1-0 n2) (rel1 n1 n2-0)
+    (rel2 n1-0 n2) (rel2 n1 n2-0))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (operation nonce-test (contracted (n2-1 n2-0)) n1 (0 1)
+    (enc n1 a (pubk b)) (enc n1 n2-0 b (pubk a)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2-0 b (pubk a)))
+      (send (enc n2-0 (pubk b))))
+    ((send (enc n1-0 a (pubk b))) (recv (enc n1-0 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1-0 a (pubk b))) (send (enc n1-0 n2 b (pubk a))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2-0 b (pubk a)))))
+  (label 25)
+  (parent 24)
+  (realized)
+  (shape)
+  (maps ((0 1) ((a a) (b b) (n1 n1) (n1-0 n1-0) (n2 n2-0) (n2-0 n2))))
+  (origs (n1 (0 0)) (n1-0 (1 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    (facts (rel1 n1 n2) (rel2 n1 n2)))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 b (pubk a)))
+      (recv (enc n2 (pubk b)))))
+  (defrule rebind-x
+    (forall ((x y text))
+      (implies
+        (fact rel1 x y)
+        (exists ((x-0 name)) (fact rel2 x-0 y)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule fact-init-rel11
+    (forall ((z strd) (n2 n1 text))
+      (implies
+        (and (p "init" z (idx 2)) (p "init" "n2" z n2)
+          (p "init" "n1" z n1)) (fact rel1 n1 n2))))
+  (defgenrule fact-init-rel20
+    (forall ((z strd) (n2 n1 text))
+      (implies
+        (and (p "init" z (idx 2)) (p "init" "n2" z n2)
+          (p "init" "n1" z n1)) (fact rel2 n1 n2))))
+  (comment "Needham-Schroeder with no role origination assumptions"))
+
+(defskeleton ns
+  (vars (n1 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (comment "Double initiator point-of-view, same nonce")
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2-0 b (pubk a)))
+      (send (enc n2-0 (pubk b)))))
+  (label 26)
+  (realized)
+  (preskeleton)
+  (origs (n1 (1 0)) (n1 (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton ns
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 27)
+  (parent 26)
+  (unrealized (0 1))
+  (origs (n1 (0 0)))
+  (comment "Not closed under rules"))
+
+(defskeleton ns
+  (vars (x name) (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (facts (rel2 x n2) (rel1 n1 n2) (rel2 n1 n2))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 28)
+  (parent 27)
+  (unrealized (0 1))
+  (origs (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (x name) (n1 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (facts (rel2 x n2) (rel1 n1 n2) (rel2 n1 n2))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (operation nonce-test (added-strand resp 2) n1 (0 1)
+    (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2-0 b (pubk a)))))
+  (label 29)
+  (parent 28)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (x name) (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (facts (rel2 x n2) (rel1 n1 n2) (rel2 n1 n2))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (operation nonce-test (contracted (n2-0 n2)) n1 (0 1)
+    (enc n1 a (pubk b)) (enc n1 n2 b (pubk a)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 b (pubk a)))))
+  (label 30)
+  (parent 29)
+  (realized)
+  (shape)
+  (maps ((0 0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b))))
+    (facts (rel1 n1 n2) (rel2 n1 n2)))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 b (pubk a)))
+      (recv (enc n2 (pubk b)))))
+  (defrule rebind-x
+    (forall ((x y text))
+      (implies
+        (fact rel1 x y)
+        (exists ((x-0 name)) (fact rel2 x-0 y)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule fact-init-rel11
+    (forall ((z strd) (n2 n1 text))
+      (implies
+        (and (p "init" z (idx 2)) (p "init" "n2" z n2)
+          (p "init" "n1" z n1)) (fact rel1 n1 n2))))
+  (defgenrule fact-init-rel20
+    (forall ((z strd) (n2 n1 text))
+      (implies
+        (and (p "init" z (idx 2)) (p "init" "n2" z n2)
+          (p "init" "n1" z n1)) (fact rel2 n1 n2))))
+  (comment "Needham-Schroeder with no role origination assumptions"))
+
+(defskeleton ns
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (non-orig (privk a))
+  (uniq-orig n2)
+  (comment "Responder point-of-view")
+  (traces
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 b (pubk a)))
+      (recv (enc n2 (pubk b)))))
+  (label 31)
+  (unrealized (0 2))
+  (origs (n2 (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (x name) (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig n2)
+  (facts (rel2 x n2) (rel1 n1 n2) (rel2 n1 n2))
+  (rule fact-init-rel11 fact-init-rel20 rebind-x)
+  (operation nonce-test (added-strand init 3) n2 (0 2)
+    (enc n1 n2 b (pubk a)))
+  (traces
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 b (pubk a)))
+      (recv (enc n2 (pubk b))))
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 32)
+  (parent 31)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (n2 n2) (b b) (n1 n1))))
+  (origs (n2 (0 1))))
+
+(comment "Nothing left to do")
diff --git a/tst/ns.scm b/tst/ns.scm
--- a/tst/ns.scm
+++ b/tst/ns.scm
@@ -1,9 +1,4 @@
-(herald "Needham-Schroeder Public-Key Protocol"
-	(comment "This protocol contains a man-in-the-middle"
-		 "attack discovered by Galvin Lowe."))
-
-;;; Used to generate output for inclusion in the primer.
-;;; Use margin = 60 (-m 60) to generate the output.
+(herald "Needham-Schroeder Public-Key Protocol Variants")
 
 (defprotocol ns basic
   (defrole init
@@ -18,7 +13,7 @@
      (recv (enc n1 a (pubk b)))
      (send (enc n1 n2 (pubk a)))
      (recv (enc n2 (pubk b)))))
-  (comment "Needham-Schroeder"))
+  (comment "Needham-Schroeder with no role origination assumptions"))
 
 ;;; The initiator point-of-view
 (defskeleton ns
@@ -28,10 +23,124 @@
   (uniq-orig n1)
   (comment "Initiator point-of-view"))
 
+;;; Double initiator point-of-view
+(defskeleton ns
+  (vars (a b name) (n1 n1-0 text))
+  (defstrand init 3 (a a) (b b) (n1 n1))
+  (defstrand init 3 (a a) (b b) (n1 n1-0))
+  (non-orig (privk b) (privk a))
+  (uniq-orig n1 n1-0)
+  (comment "Double initiator point-of-view"))
+
+;;; Double initiator point-of-view, same nonce
+(defskeleton ns
+  (vars (a b name) (n1 text))
+  (defstrand init 3 (a a) (b b) (n1 n1))
+  (defstrand init 3 (a a) (b b) (n1 n1))
+  (non-orig (privk b) (privk a))
+  (uniq-orig n1)
+  (comment "Double initiator point-of-view, same nonce"))
+
 ;;; The responder point-of-view
 (defskeleton ns
+  (vars (a name) (n2 text))
+  (defstrand resp 3 (a a) (n2 n2))
+  (non-orig (privk a))
+  (uniq-orig n2)
+  (comment "Responder point-of-view"))
+
+;;; Needham-Schroeder Protocol with origination assumptions on roles
+;;; This
+
+(defprotocol ns-role-origs basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace
+     (send (enc n1 a (pubk b)))
+     (recv (enc n1 n2 (pubk a)))
+     (send (enc n2 (pubk b))))
+    (non-orig (privk b))
+    (uniq-orig n1))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace
+     (recv (enc n1 a (pubk b)))
+     (send (enc n1 n2 (pubk a)))
+     (recv (enc n2 (pubk b))))
+    (non-orig (privk a))
+    (uniq-orig n2))
+  (comment "Needham-Schroeder with role assumptions that are too strong"))
+
+;;; The initiator point-of-view
+(defskeleton ns-role-origs
+  (vars)
+  (defstrand init 3))
+
+;;; The responder point-of-view
+(defskeleton ns-role-origs
+  (vars)
+  (defstrand resp 3))
+
+;;; Needham-Schroeder Protocol with a doubled nonce.  Look at the
+;;; first message in each role.
+
+(defprotocol ns2 basic
+  (defrole init
+    (vars (a b name) (n1 n2 n3 text))
+    (trace
+     (send (enc n1 n3 a (pubk b)))
+     (recv (enc n1 n2 (pubk a)))
+     (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace
+     (recv (enc n1 n1 a (pubk b)))
+     (send (enc n1 n2 (pubk a)))
+     (recv (enc n2 (pubk b))))
+    (note doubled nonce in the first message))
+  (note that this protocol is derived from Needham-Schroeder))
+
+(defskeleton ns2
+  (vars (a b name) (n1 text))
+  (defstrand init 3 (a a) (b b) (n1 n1))
+  (non-orig (privk b) (privk a))
+  (uniq-orig n1)
+  (note the disappearance of this note))
+
+;;; Note that the association list style key-value pairs that follow
+;;; the list of strands can be supplied in any order, and values with
+;;; the same key are appended together.  Check the output to see how
+;;; CPSA interprets this input.
+(defskeleton ns
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
+  (non-orig (privk b))
+  (precedes ((0 0) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig n1)
+  (precedes ((1 1) (0 1))))
+
+(defprotocol nsl-typeless basic
+  (defrole init
+    (vars (a b name) (n1 text) (n2 mesg))
+    (trace
+     (send (enc a n1 (pubk b)))
+     (recv (enc n1 n2 b (pubk a)))
+     (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 text) (n1 mesg))
+    (trace
+     (recv (enc a n1 (pubk b)))
+     (send (enc n1 n2 b (pubk a)))
+     (recv (enc n2 (pubk b)))))
+  (comment "Needham-Schroeder-Lowe with untyped nonces"))
+
+;;; The responder point-of-view
+(defskeleton nsl-typeless
   (vars (a b name) (n2 text))
-  (defstrand resp 3 (a a) (b b) (n2 n2))
+  (defstrand resp 2 (a a) (n2 n2) (b b))
+  (deflistener n2)
   (non-orig (privk a) (privk b))
   (uniq-orig n2)
-  (comment "Responder point-of-view"))
+  (comment "Shows typeflaw in typeless NSL"))
diff --git a/tst/ns.tst b/tst/ns.tst
--- a/tst/ns.tst
+++ b/tst/ns.tst
@@ -1,8 +1,6 @@
-(herald "Needham-Schroeder Public-Key Protocol"
-  (comment "This protocol contains a man-in-the-middle"
-    "attack discovered by Galvin Lowe."))
+(herald "Needham-Schroeder Public-Key Protocol Variants")
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/ns.scm")
 
 (defprotocol ns basic
@@ -14,7 +12,13 @@
     (vars (b a name) (n2 n1 text))
     (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
       (recv (enc n2 (pubk b)))))
-  (comment "Needham-Schroeder"))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Needham-Schroeder with no role origination assumptions"))
 
 (defskeleton ns
   (vars (n1 n2 text) (a b name))
@@ -63,7 +67,7 @@
     ((recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))))
   (label 2)
   (parent 1)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
   (origs (n1 (0 0))))
@@ -79,18 +83,292 @@
     (vars (b a name) (n2 n1 text))
     (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
       (recv (enc n2 (pubk b)))))
-  (comment "Needham-Schroeder"))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Needham-Schroeder with no role origination assumptions"))
 
 (defskeleton ns
+  (vars (n1 n1-0 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n1-0)
+  (comment "Double initiator point-of-view")
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((send (enc n1-0 a (pubk b))) (recv (enc n1-0 n2-0 (pubk a)))
+      (send (enc n2-0 (pubk b)))))
+  (label 3)
+  (unrealized (0 1) (1 1))
+  (origs (n1 (0 0)) (n1-0 (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (operation collapsed 1 0)
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 4)
+  (parent 3)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (n1 n1-0 n2 n2-0 n2-1 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b))
+  (defstrand resp 2 (n2 n2-1) (n1 n1-0) (b b) (a a))
+  (precedes ((1 0) (2 0)) ((2 1) (1 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n1-0)
+  (operation nonce-test (added-strand resp 2) n1-0 (1 1)
+    (enc n1-0 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((send (enc n1-0 a (pubk b))) (recv (enc n1-0 n2-0 (pubk a)))
+      (send (enc n2-0 (pubk b))))
+    ((recv (enc n1-0 a (pubk b))) (send (enc n1-0 n2-1 (pubk a)))))
+  (label 5)
+  (parent 3)
+  (unrealized (0 1) (1 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (n1 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (operation nonce-test (added-strand resp 2) n1 (0 1)
+    (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2-0 (pubk a)))))
+  (label 6)
+  (parent 4)
+  (unrealized (0 1))
+  (origs (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (n1 n1-0 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1-0) (b b) (a a))
+  (precedes ((1 0) (2 0)) ((2 1) (1 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n1-0)
+  (operation nonce-test (contracted (n2-1 n2-0)) n1-0 (1 1)
+    (enc n1-0 n2-0 (pubk a)) (enc n1-0 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((send (enc n1-0 a (pubk b))) (recv (enc n1-0 n2-0 (pubk a)))
+      (send (enc n2-0 (pubk b))))
+    ((recv (enc n1-0 a (pubk b))) (send (enc n1-0 n2-0 (pubk a)))))
+  (label 7)
+  (parent 5)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (operation nonce-test (contracted (n2-0 n2)) n1 (0 1)
+    (enc n1 n2 (pubk a)) (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))))
+  (label 8)
+  (parent 6)
+  (realized)
+  (shape)
+  (maps ((0 0) ((a a) (b b) (n1 n1) (n1-0 n1) (n2 n2) (n2-0 n2))))
+  (origs (n1 (0 0))))
+
+(defskeleton ns
+  (vars (n1 n1-0 n2 n2-0 n2-1 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1-0) (n2 n2-0) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1-0) (b b) (a a))
+  (defstrand resp 2 (n2 n2-1) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((2 1) (1 1)) ((3 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n1-0)
+  (operation nonce-test (added-strand resp 2) n1 (0 1)
+    (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((send (enc n1-0 a (pubk b))) (recv (enc n1-0 n2-0 (pubk a)))
+      (send (enc n2-0 (pubk b))))
+    ((recv (enc n1-0 a (pubk b))) (send (enc n1-0 n2-0 (pubk a))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2-1 (pubk a)))))
+  (label 9)
+  (parent 7)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (n1 n1-0 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (defstrand init 3 (n1 n1-0) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2) (n1 n1-0) (b b) (a a))
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (3 0)) ((1 0) (2 0)) ((2 1) (1 1)) ((3 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n1-0)
+  (operation nonce-test (contracted (n2-1 n2-0)) n1 (0 1)
+    (enc n1 n2-0 (pubk a)) (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2-0 (pubk a)))
+      (send (enc n2-0 (pubk b))))
+    ((send (enc n1-0 a (pubk b))) (recv (enc n1-0 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1-0 a (pubk b))) (send (enc n1-0 n2 (pubk a))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2-0 (pubk a)))))
+  (label 10)
+  (parent 9)
+  (realized)
+  (shape)
+  (maps ((0 1) ((a a) (b b) (n1 n1) (n1-0 n1-0) (n2 n2-0) (n2-0 n2))))
+  (origs (n1 (0 0)) (n1-0 (1 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Needham-Schroeder with no role origination assumptions"))
+
+(defskeleton ns
+  (vars (n1 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand init 3 (n1 n1) (n2 n2-0) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (comment "Double initiator point-of-view, same nonce")
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2-0 (pubk a)))
+      (send (enc n2-0 (pubk b)))))
+  (label 11)
+  (realized)
+  (preskeleton)
+  (origs (n1 (1 0)) (n1 (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton ns
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 12)
+  (parent 11)
+  (unrealized (0 1))
+  (origs (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (n1 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (operation nonce-test (added-strand resp 2) n1 (0 1)
+    (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2-0 (pubk a)))))
+  (label 13)
+  (parent 12)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (operation nonce-test (contracted (n2-0 n2)) n1 (0 1)
+    (enc n1 n2 (pubk a)) (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))))
+  (label 14)
+  (parent 13)
+  (realized)
+  (shape)
+  (maps ((0 0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Needham-Schroeder with no role origination assumptions"))
+
+(defskeleton ns
   (vars (n2 n1 text) (a b name))
   (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
-  (non-orig (privk a) (privk b))
+  (non-orig (privk a))
   (uniq-orig n2)
   (comment "Responder point-of-view")
   (traces
     ((recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
       (recv (enc n2 (pubk b)))))
-  (label 3)
+  (label 15)
   (unrealized (0 2))
   (origs (n2 (0 1)))
   (comment "1 in cohort - 1 not yet seen"))
@@ -100,8 +378,141 @@
   (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
   (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0))
   (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig n2)
+  (operation nonce-test (added-strand init 3) n2 (0 2)
+    (enc n1 n2 (pubk a)))
+  (traces
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b))))
+    ((send (enc n1 a (pubk b-0))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b-0)))))
+  (label 16)
+  (parent 15)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (n2 n2) (b b) (n1 n1))))
+  (origs (n2 (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol ns-role-origs basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    (non-orig (privk b))
+    (uniq-orig n1))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b))))
+    (non-orig (privk a))
+    (uniq-orig n2))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment
+    "Needham-Schroeder with role assumptions that are too strong"))
+
+(defskeleton ns-role-origs
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (non-orig (privk b))
+  (uniq-orig n1)
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 17)
+  (unrealized (0 1))
+  (origs (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns-role-origs
+  (vars (n1 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
   (non-orig (privk a) (privk b))
+  (uniq-orig n1 n2-0)
+  (operation nonce-test (added-strand resp 2) n1 (0 1)
+    (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2-0 (pubk a)))))
+  (label 18)
+  (parent 17)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns-role-origs
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n2)
+  (operation nonce-test (contracted (n2-0 n2)) n1 (0 1)
+    (enc n1 n2 (pubk a)) (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))))
+  (label 19)
+  (parent 18)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n2 (1 1)) (n1 (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol ns-role-origs basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    (non-orig (privk b))
+    (uniq-orig n1))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b))))
+    (non-orig (privk a))
+    (uniq-orig n2))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment
+    "Needham-Schroeder with role assumptions that are too strong"))
+
+(defskeleton ns-role-origs
+  (vars (n2 n1 text) (b a name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (non-orig (privk a))
   (uniq-orig n2)
+  (traces
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b)))))
+  (label 20)
+  (unrealized (0 2))
+  (origs (n2 (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns-role-origs
+  (vars (n2 n1 text) (b a b-0 name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig (privk a) (privk b-0))
+  (uniq-orig n2 n1)
   (operation nonce-test (added-strand init 3) n2 (0 2)
     (enc n1 n2 (pubk a)))
   (traces
@@ -109,11 +520,270 @@
       (recv (enc n2 (pubk b))))
     ((send (enc n1 a (pubk b-0))) (recv (enc n1 n2 (pubk a)))
       (send (enc n2 (pubk b-0)))))
-  (label 4)
-  (parent 3)
-  (unrealized)
+  (label 21)
+  (parent 20)
+  (unrealized (0 0) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton ns-role-origs
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n2 n1)
+  (operation nonce-test (contracted (b-0 b)) n1 (0 0)
+    (enc n1 a (pubk b)))
+  (traces
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b))))
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 22)
+  (parent 21)
+  (realized)
   (shape)
-  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (maps ((0) ((b b) (a a) (n2 n2) (n1 n1))))
+  (origs (n1 (1 0)) (n2 (0 1))))
+
+(defskeleton ns-role-origs
+  (vars (n2 n1 n2-0 text) (b a b-0 name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0))
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b-0) (a a))
+  (precedes ((0 1) (1 1)) ((1 0) (2 0)) ((1 2) (0 2)) ((2 1) (0 0)))
+  (non-orig (privk a) (privk b-0))
+  (uniq-orig n2 n1 n2-0)
+  (operation nonce-test (added-strand resp 2) n1 (0 0)
+    (enc n1 a (pubk b-0)))
+  (traces
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b))))
+    ((send (enc n1 a (pubk b-0))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b-0))))
+    ((recv (enc n1 a (pubk b-0))) (send (enc n1 n2-0 (pubk a)))))
+  (label 23)
+  (parent 21)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns-role-origs
+  (vars (n2 n1 n2-0 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 1) (1 1)) ((1 0) (2 0)) ((1 2) (0 2)) ((2 1) (0 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n2 n1 n2-0)
+  (operation nonce-test (contracted (b-0 b)) n1 (0 0)
+    (enc n1 n2-0 (pubk a)) (enc n1 a (pubk b)))
+  (traces
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b))))
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2-0 (pubk a)))))
+  (label 24)
+  (parent 23)
+  (seen 22)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol ns2 basic
+  (defrole init
+    (vars (a b name) (n1 n2 n3 text))
+    (trace (send (enc n1 n3 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc n1 n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b))))
+    (note doubled nonce in the first message))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (note that this protocol is derived from Needham-Schroeder))
+
+(defskeleton ns2
+  (vars (n1 n2 n3 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (n3 n3) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (traces
+    ((send (enc n1 n3 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 25)
+  (unrealized (0 1))
+  (origs (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns2
+  (vars (n2 n3 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n3) (n2 n2) (n3 n3) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n3) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n3)
+  (operation nonce-test (added-strand resp 2) n3 (0 1)
+    (enc n3 n3 a (pubk b)))
+  (traces
+    ((send (enc n3 n3 a (pubk b))) (recv (enc n3 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n3 n3 a (pubk b))) (send (enc n3 n2-0 (pubk a)))))
+  (label 26)
+  (parent 25)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns2
+  (vars (n3 n2 text) (a b name))
+  (defstrand init 3 (n1 n3) (n2 n2) (n3 n3) (a a) (b b))
+  (defstrand resp 2 (n2 n2) (n1 n3) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n3)
+  (operation nonce-test (contracted (n2-0 n2)) n3 (0 1)
+    (enc n3 n2 (pubk a)) (enc n3 n3 a (pubk b)))
+  (traces
+    ((send (enc n3 n3 a (pubk b))) (recv (enc n3 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n3 n3 a (pubk b))) (send (enc n3 n2 (pubk a)))))
+  (label 27)
+  (parent 26)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n3) (n2 n2) (n3 n3))))
+  (origs (n3 (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
+      (recv (enc n2 (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Needham-Schroeder with no role origination assumptions"))
+
+(defskeleton ns
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 (pubk a)))
+      (send (enc n2 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))))
+  (label 28)
+  (realized)
+  (shape)
+  (maps ((0 1) ((n1 n1) (n2 n2) (a a) (b b))))
+  (origs (n1 (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol nsl-typeless basic
+  (defrole init
+    (vars (a b name) (n1 text) (n2 mesg))
+    (trace (send (enc a n1 (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (defrole resp
+    (vars (b a name) (n2 text) (n1 mesg))
+    (trace (recv (enc a n1 (pubk b))) (send (enc n1 n2 b (pubk a)))
+      (recv (enc n2 (pubk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Needham-Schroeder-Lowe with untyped nonces"))
+
+(defskeleton nsl-typeless
+  (vars (n1 mesg) (n2 text) (a b name))
+  (defstrand resp 2 (n1 n1) (n2 n2) (b b) (a a))
+  (deflistener n2)
+  (non-orig (privk a) (privk b))
+  (uniq-orig n2)
+  (comment "Shows typeflaw in typeless NSL")
+  (traces ((recv (enc a n1 (pubk b))) (send (enc n1 n2 b (pubk a))))
+    ((recv n2) (send n2)))
+  (label 29)
+  (unrealized (1 0))
+  (preskeleton)
+  (origs (n2 (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton nsl-typeless
+  (vars (n1 mesg) (n2 text) (a b name))
+  (defstrand resp 2 (n1 n1) (n2 n2) (b b) (a a))
+  (deflistener n2)
+  (precedes ((0 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n2)
+  (traces ((recv (enc a n1 (pubk b))) (send (enc n1 n2 b (pubk a))))
+    ((recv n2) (send n2)))
+  (label 30)
+  (parent 29)
+  (unrealized (1 0))
+  (origs (n2 (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton nsl-typeless
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 2 (n1 n1) (n2 n2) (b b) (a a))
+  (deflistener n2)
+  (defstrand init 3 (n2 n2) (n1 n1) (a a) (b b))
+  (precedes ((0 1) (2 1)) ((2 2) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n2)
+  (operation nonce-test (added-strand init 3) n2 (1 0)
+    (enc n1 n2 b (pubk a)))
+  (traces ((recv (enc a n1 (pubk b))) (send (enc n1 n2 b (pubk a))))
+    ((recv n2) (send n2))
+    ((send (enc a n1 (pubk b))) (recv (enc n1 n2 b (pubk a)))
+      (send (enc n2 (pubk b)))))
+  (label 31)
+  (parent 30)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton nsl-typeless
+  (vars (n2 n2-0 text) (a b a-0 name))
+  (defstrand resp 2 (n1 a-0) (n2 n2) (b b) (a a))
+  (deflistener n2)
+  (defstrand resp 2 (n1 (cat n2 b)) (n2 n2-0) (b a) (a a-0))
+  (precedes ((0 1) (2 0)) ((2 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n2)
+  (operation nonce-test (added-strand resp 2) n2 (1 0)
+    (enc a-0 n2 b (pubk a)))
+  (traces ((recv (enc a a-0 (pubk b))) (send (enc a-0 n2 b (pubk a))))
+    ((recv n2) (send n2))
+    ((recv (enc a-0 n2 b (pubk a)))
+      (send (enc (cat n2 b) n2-0 a (pubk a-0)))))
+  (label 32)
+  (parent 30)
+  (realized)
+  (shape)
+  (maps ((0 1) ((a a) (b b) (n2 n2) (n1 a-0))))
   (origs (n2 (0 1))))
 
 (comment "Nothing left to do")
diff --git a/tst/nsl3.scm b/tst/nsl3.scm
new file mode 100644
--- /dev/null
+++ b/tst/nsl3.scm
@@ -0,0 +1,55 @@
+(herald "Three Party Needham-Schroeder-Lowe Protocol")
+
+(defprotocol nsl3 basic
+  (defrole init (vars (a b c name) (na0 na1 nb0 nb1 nc0 nc1 text))
+    (trace
+     (send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+     (recv (enc na1 nc1 c b
+		(enc na0 nb0 b c (pubk a))
+		(enc nb1 nc0 c a (pubk b))
+		(pubk a)))
+     (send (enc nb0
+		(enc nb1 nc0 c a (pubk b))
+		(enc nc1 (pubk c))
+		(pubk b))))
+    (uniq-orig na0 na1))
+  (defrole mid (vars (a b c name) (na0 na1 nb0 nb1 nc0 nc1 text))
+    (trace
+     (recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+     (send (enc nb1 b a
+		(enc na1 a b (pubk c))
+		(enc na0 nb0 b c (pubk a))
+		(pubk c)))
+     (recv (enc nb0
+		(enc nb1 nc0 c a (pubk b))
+		(enc nc1 (pubk c))
+		(pubk b)))
+     (send (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    (uniq-orig nb0 nb1))
+  (defrole resp (vars (a b c name) (na0 na1 nb0 nb1 nc0 nc1 text))
+    (trace
+     (recv (enc nb1 b a
+		(enc na1 a b (pubk c))
+		(enc na0 nb0 b c (pubk a))
+		(pubk c)))
+     (send (enc na1 nc1 c b
+		(enc na0 nb0 b c (pubk a))
+		(enc nb1 nc0 c a (pubk b))
+		(pubk a)))
+     (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    (uniq-orig nc0 nc1)))
+
+(defskeleton nsl3
+  (vars (a b c name))
+  (defstrand init 3 (a a) (b b) (c c))
+  (non-orig (privk a) (privk b) (privk c)))
+
+(defskeleton nsl3
+  (vars (a b c name))
+  (defstrand mid 4 (a a) (b b) (c c))
+  (non-orig (privk a) (privk b) (privk c)))
+
+(defskeleton nsl3
+  (vars (a b c name))
+  (defstrand resp 3 (a a) (b b) (c c))
+  (non-orig (privk a) (privk b) (privk c)))
diff --git a/tst/nsl3.tst b/tst/nsl3.tst
new file mode 100644
--- /dev/null
+++ b/tst/nsl3.tst
@@ -0,0 +1,1485 @@
+(herald "Three Party Needham-Schroeder-Lowe Protocol")
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/nsl3.scm")
+
+(defprotocol nsl3 basic
+  (defrole init
+    (vars (a b c name) (na0 na1 nb0 nb1 nc0 nc1 text))
+    (trace (send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    (uniq-orig na0 na1))
+  (defrole mid
+    (vars (a b c name) (na0 na1 nb0 nb1 nc0 nc1 text))
+    (trace (recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))) (send (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    (uniq-orig nb0 nb1))
+  (defrole resp
+    (vars (a b c name) (na0 na1 nb0 nb1 nc0 nc1 text))
+    (trace
+      (recv
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    (uniq-orig nc0 nc1))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton nsl3
+  (vars (na0 na1 nb0 nb1 nc0 nc1 text) (a b c name))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig na0 na1)
+  (traces
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b)))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (na1 (0 0)) (na0 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nsl3
+  (vars (na0 na1 nb0 nb1 nc0 nc1 nb0-0 nb1-0 text) (a b c name))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0) (a a)
+    (b b) (c c))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig na0 na1 nb0-0 nb1-0)
+  (operation nonce-test (added-strand mid 2) na0 (0 1)
+    (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+  (traces
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1-0 b a (enc na1 a b (pubk c))
+          (enc na0 nb0-0 b c (pubk a)) (pubk c)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nsl3
+  (vars (na0 na1 nb0 nb1 nc0 nc1 nb0-0 nb1-0 nc0-0 nc1-0 text)
+    (a b c name))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0) (a a)
+    (b b) (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0)
+    (nc0 nc0-0) (nc1 nc1-0) (a a) (b b) (c c))
+  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig na0 na1 nb0-0 nb1-0 nc0-0 nc1-0)
+  (operation nonce-test (added-strand resp 2) na0 (0 1)
+    (enc na0 a c (enc na1 a b (pubk c)) (pubk b))
+    (enc nb1-0 b a (enc na1 a b (pubk c)) (enc na0 nb0-0 b c (pubk a))
+      (pubk c)))
+  (traces
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1-0 b a (enc na1 a b (pubk c))
+          (enc na0 nb0-0 b c (pubk a)) (pubk c))))
+    ((recv
+       (enc nb1-0 b a (enc na1 a b (pubk c))
+         (enc na0 nb0-0 b c (pubk a)) (pubk c)))
+      (send
+        (enc na1 nc1-0 c b (enc na0 nb0-0 b c (pubk a))
+          (enc nb1-0 nc0-0 c a (pubk b)) (pubk a)))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton nsl3
+  (vars (na0 na1 nb0 nb1 nc0 nc1 text) (a b c name))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (a a) (b b)
+    (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig na0 na1 nb0 nb1 nc0 nc1)
+  (operation nonce-test
+    (contracted (nb0-0 nb0) (nb1-0 nb1) (nc0-0 nc0) (nc1-0 nc1)) na0
+    (0 1) (enc na0 a c (enc na1 a b (pubk c)) (pubk b))
+    (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+      (enc nb1 nc0 c a (pubk b)) (pubk a))
+    (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+      (pubk c)))
+  (traces
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c))))
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))))
+  (label 3)
+  (parent 2)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (c c) (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1)
+        (nc0 nc0) (nc1 nc1))))
+  (origs (nc0 (2 1)) (nc1 (2 1)) (nb0 (1 1)) (nb1 (1 1)) (na1 (0 0))
+    (na0 (0 0))))
+
+(defskeleton nsl3
+  (vars
+    (na0 na1 nb0 nb1 nc0 nc1 nb0-0 nb1-0 nc0-0 nc1-0 nb0-1 nb1-1 text)
+    (a b c name))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0) (a a)
+    (b b) (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0)
+    (nc0 nc0-0) (nc1 nc1-0) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0-1) (nb1 nb1-1) (a a)
+    (b b) (c c))
+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (2 0)) ((2 1) (0 1))
+    ((3 1) (0 1)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig na0 na1 nb0-0 nb1-0 nc0-0 nc1-0 nb0-1 nb1-1)
+  (operation nonce-test (added-strand mid 2) na0 (0 1)
+    (enc na0 a c (enc na1 a b (pubk c)) (pubk b))
+    (enc na1 nc1-0 c b (enc na0 nb0-0 b c (pubk a))
+      (enc nb1-0 nc0-0 c a (pubk b)) (pubk a))
+    (enc nb1-0 b a (enc na1 a b (pubk c)) (enc na0 nb0-0 b c (pubk a))
+      (pubk c)))
+  (traces
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1-0 b a (enc na1 a b (pubk c))
+          (enc na0 nb0-0 b c (pubk a)) (pubk c))))
+    ((recv
+       (enc nb1-0 b a (enc na1 a b (pubk c))
+         (enc na0 nb0-0 b c (pubk a)) (pubk c)))
+      (send
+        (enc na1 nc1-0 c b (enc na0 nb0-0 b c (pubk a))
+          (enc nb1-0 nc0-0 c a (pubk b)) (pubk a))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1-1 b a (enc na1 a b (pubk c))
+          (enc na0 nb0-1 b c (pubk a)) (pubk c)))))
+  (label 4)
+  (parent 2)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nsl3
+  (vars (na0 na1 nb0 nb1 nc0 nc1 nb0-0 nb1-0 text) (a b c name))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (a a) (b b)
+    (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0) (a a)
+    (b b) (c c))
+  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (2 0)) ((2 1) (0 1))
+    ((3 1) (0 1)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig na0 na1 nb0 nb1 nc0 nc1 nb0-0 nb1-0)
+  (operation nonce-test
+    (contracted (nb0-1 nb0) (nb1-1 nb1) (nc0-0 nc0) (nc1-0 nc1)) na0
+    (0 1) (enc na0 a c (enc na1 a b (pubk c)) (pubk b))
+    (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+      (enc nb1 nc0 c a (pubk b)) (pubk a))
+    (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+      (pubk c))
+    (enc nb1-0 b a (enc na1 a b (pubk c)) (enc na0 nb0-0 b c (pubk a))
+      (pubk c)))
+  (traces
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c))))
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1-0 b a (enc na1 a b (pubk c))
+          (enc na0 nb0-0 b c (pubk a)) (pubk c)))))
+  (label 5)
+  (parent 4)
+  (seen 3)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol nsl3 basic
+  (defrole init
+    (vars (a b c name) (na0 na1 nb0 nb1 nc0 nc1 text))
+    (trace (send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    (uniq-orig na0 na1))
+  (defrole mid
+    (vars (a b c name) (na0 na1 nb0 nb1 nc0 nc1 text))
+    (trace (recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))) (send (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    (uniq-orig nb0 nb1))
+  (defrole resp
+    (vars (a b c name) (na0 na1 nb0 nb1 nc0 nc1 text))
+    (trace
+      (recv
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    (uniq-orig nc0 nc1))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton nsl3
+  (vars (na0 na1 nb0 nb1 nc0 nc1 text) (a b c name))
+  (defstrand mid 4 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig nb0 nb1)
+  (traces
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))) (send (enc nc0 (enc nc1 (pubk c)) (pubk c)))))
+  (label 6)
+  (unrealized (0 2))
+  (origs (nb1 (0 1)) (nb0 (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nsl3
+  (vars (na0 na1 nb0 nb1 nc0 nc1 nc0-0 nc1-0 text) (a b c name))
+  (defstrand mid 4 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0-0)
+    (nc1 nc1-0) (a a) (b b) (c c))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig nb0 nb1 nc0-0 nc1-0)
+  (operation nonce-test (added-strand resp 2) nb0 (0 2)
+    (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+      (pubk c)))
+  (traces
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))) (send (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0-0 c a (pubk b)) (pubk a)))))
+  (label 7)
+  (parent 6)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nsl3
+  (vars (na0 na1 nb0 nb1 nc0 nc1 nc0-0 nc1-0 text) (a b c name))
+  (defstrand mid 4 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0-0)
+    (nc1 nc1-0) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0-0)
+    (nc1 nc1-0) (a a) (b b) (c c))
+  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((2 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig na0 na1 nb0 nb1 nc0-0 nc1-0)
+  (operation nonce-test (added-strand init 3) nb0 (0 2)
+    (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+      (enc nb1 nc0-0 c a (pubk b)) (pubk a))
+    (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+      (pubk c)))
+  (traces
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))) (send (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0-0 c a (pubk b)) (pubk a))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0-0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0-0 c a (pubk b)) (enc nc1-0 (pubk c))
+          (pubk b)))))
+  (label 8)
+  (parent 7)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton nsl3
+  (vars (na0 na1 nb0 nb1 nc0 nc1 text) (a b c name))
+  (defstrand mid 4 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((2 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig na0 na1 nb0 nb1 nc0 nc1)
+  (operation nonce-test (contracted (nc0-0 nc0) (nc1-0 nc1)) nb0 (0 2)
+    (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+      (enc nb1 nc0 c a (pubk b)) (pubk a))
+    (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c)) (pubk b))
+    (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+      (pubk c)))
+  (traces
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))) (send (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b)))))
+  (label 9)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (c c) (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1)
+        (nc0 nc0) (nc1 nc1))))
+  (origs (na0 (2 0)) (na1 (2 0)) (nc0 (1 1)) (nc1 (1 1)) (nb1 (0 1))
+    (nb0 (0 1))))
+
+(defskeleton nsl3
+  (vars (na0 na1 nb0 nb1 nc0 nc1 nc0-0 nc1-0 nc0-1 nc1-1 text)
+    (a b c name))
+  (defstrand mid 4 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0-0)
+    (nc1 nc1-0) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0-0)
+    (nc1 nc1-0) (a a) (b b) (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0-1)
+    (nc1 nc1-1) (a a) (b b) (c c))
+  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((2 0) (0 0))
+    ((2 2) (0 2)) ((3 1) (0 2)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig na0 na1 nb0 nb1 nc0-0 nc1-0 nc0-1 nc1-1)
+  (operation nonce-test (added-strand resp 2) nb0 (0 2)
+    (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+      (enc nb1 nc0-0 c a (pubk b)) (pubk a))
+    (enc nb0 (enc nb1 nc0-0 c a (pubk b)) (enc nc1-0 (pubk c)) (pubk b))
+    (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+      (pubk c)))
+  (traces
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))) (send (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0-0 c a (pubk b)) (pubk a))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0-0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0-0 c a (pubk b)) (enc nc1-0 (pubk c))
+          (pubk b))))
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1-1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0-1 c a (pubk b)) (pubk a)))))
+  (label 10)
+  (parent 8)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nsl3
+  (vars (na0 na1 nb0 nb1 nc0 nc1 nc0-0 nc1-0 text) (a b c name))
+  (defstrand mid 4 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0-0)
+    (nc1 nc1-0) (a a) (b b) (c c))
+  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((2 0) (0 0))
+    ((2 2) (0 2)) ((3 1) (0 2)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig na0 na1 nb0 nb1 nc0 nc1 nc0-0 nc1-0)
+  (operation nonce-test (contracted (nc0-1 nc0) (nc1-1 nc1)) nb0 (0 2)
+    (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+      (enc nb1 nc0 c a (pubk b)) (pubk a))
+    (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+      (enc nb1 nc0-0 c a (pubk b)) (pubk a))
+    (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c)) (pubk b))
+    (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+      (pubk c)))
+  (traces
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))) (send (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0-0 c a (pubk b)) (pubk a)))))
+  (label 11)
+  (parent 10)
+  (seen 9)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol nsl3 basic
+  (defrole init
+    (vars (a b c name) (na0 na1 nb0 nb1 nc0 nc1 text))
+    (trace (send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    (uniq-orig na0 na1))
+  (defrole mid
+    (vars (a b c name) (na0 na1 nb0 nb1 nc0 nc1 text))
+    (trace (recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))) (send (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    (uniq-orig nb0 nb1))
+  (defrole resp
+    (vars (a b c name) (na0 na1 nb0 nb1 nc0 nc1 text))
+    (trace
+      (recv
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    (uniq-orig nc0 nc1))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton nsl3
+  (vars (na0 na1 nb0 nb1 nc0 nc1 text) (a b c name))
+  (defstrand resp 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig nc0 nc1)
+  (traces
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c)))))
+  (label 12)
+  (unrealized (0 2))
+  (origs (nc1 (0 1)) (nc0 (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nsl3
+  (vars (na0 na1 nb0 nb1 nc0 nc1 text) (a b c name))
+  (defstrand resp 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig na0 na1 nc0 nc1)
+  (operation nonce-test (added-strand init 3) nc0 (0 2)
+    (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+      (enc nb1 nc0 c a (pubk b)) (pubk a)))
+  (traces
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b)))))
+  (label 13)
+  (parent 12)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nsl3
+  (vars (na0 na1 nb0 nb1 nc0 nc1 nb0-0 nb1-0 text) (a b c name))
+  (defstrand resp 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0) (a a)
+    (b b) (c c))
+  (precedes ((0 1) (1 1)) ((1 0) (2 0)) ((1 2) (0 2)) ((2 1) (0 0)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig na0 na1 nc0 nc1 nb0-0 nb1-0)
+  (operation nonce-test (added-strand mid 2) na1 (0 0)
+    (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+  (traces
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1-0 b a (enc na1 a b (pubk c))
+          (enc na0 nb0-0 b c (pubk a)) (pubk c)))))
+  (label 14)
+  (parent 13)
+  (unrealized (0 0) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton nsl3
+  (vars (na0 na1 nc0 nc1 nb0 nb1 text) (a b c name))
+  (defstrand resp 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (a a) (b b)
+    (c c))
+  (precedes ((0 1) (1 1)) ((1 0) (2 0)) ((1 2) (0 2)) ((2 1) (0 0)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig na0 na1 nc0 nc1 nb0 nb1)
+  (operation nonce-test (contracted (nb0-0 nb0) (nb1-0 nb1)) na1 (0 0)
+    (enc na0 a c (enc na1 a b (pubk c)) (pubk b))
+    (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+      (pubk c)))
+  (traces
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c)))))
+  (label 15)
+  (parent 14)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nsl3
+  (vars (na0 na1 nb0 nb1 nc0 nc1 nb0-0 nb1-0 nc0-0 nc1-0 text)
+    (a b c name))
+  (defstrand resp 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0) (a a)
+    (b b) (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0)
+    (nc0 nc0-0) (nc1 nc1-0) (a a) (b b) (c c))
+  (precedes ((0 1) (1 1)) ((1 0) (2 0)) ((1 2) (0 2)) ((2 1) (3 0))
+    ((3 1) (0 0)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig na0 na1 nc0 nc1 nb0-0 nb1-0 nc0-0 nc1-0)
+  (operation nonce-test (added-strand resp 2) na1 (0 0)
+    (enc na0 a c (enc na1 a b (pubk c)) (pubk b))
+    (enc nb1-0 b a (enc na1 a b (pubk c)) (enc na0 nb0-0 b c (pubk a))
+      (pubk c)))
+  (traces
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1-0 b a (enc na1 a b (pubk c))
+          (enc na0 nb0-0 b c (pubk a)) (pubk c))))
+    ((recv
+       (enc nb1-0 b a (enc na1 a b (pubk c))
+         (enc na0 nb0-0 b c (pubk a)) (pubk c)))
+      (send
+        (enc na1 nc1-0 c b (enc na0 nb0-0 b c (pubk a))
+          (enc nb1-0 nc0-0 c a (pubk b)) (pubk a)))))
+  (label 16)
+  (parent 14)
+  (unrealized (0 0) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton nsl3
+  (vars (nc0 nc1 nb0 nb1 na0 na1 text) (a b c name))
+  (defstrand resp 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand mid 4 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (precedes ((0 1) (1 1)) ((0 1) (2 2)) ((1 0) (2 0)) ((1 2) (0 2))
+    ((2 1) (0 0)) ((2 3) (0 2)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig nc0 nc1 nb0 nb1 na0 na1)
+  (operation nonce-test (displaced 2 3 mid 4) nc0 (0 2)
+    (enc na1-0 nc1 c b (enc na0-0 nb0 b c (pubk a))
+      (enc nb1 nc0 c a (pubk b)) (pubk a))
+    (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c)) (pubk b)))
+  (traces
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))) (send (enc nc0 (enc nc1 (pubk c)) (pubk c)))))
+  (label 17)
+  (parent 15)
+  (unrealized (2 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nsl3
+  (vars (na0 na1 nc0 nc1 nb0 nb1 nc0-0 nc1-0 text) (a b c name))
+  (defstrand resp 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (a a) (b b)
+    (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0-0)
+    (nc1 nc1-0) (a a) (b b) (c c))
+  (precedes ((0 1) (1 1)) ((1 0) (2 0)) ((1 2) (0 2)) ((2 1) (3 0))
+    ((3 1) (0 0)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig na0 na1 nc0 nc1 nb0 nb1 nc0-0 nc1-0)
+  (operation nonce-test (contracted (nb0-0 nb0) (nb1-0 nb1)) na1 (0 0)
+    (enc na0 a c (enc na1 a b (pubk c)) (pubk b))
+    (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+      (enc nb1 nc0-0 c a (pubk b)) (pubk a))
+    (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+      (pubk c)))
+  (traces
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c))))
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0-0 c a (pubk b)) (pubk a)))))
+  (label 18)
+  (parent 16)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nsl3
+  (vars
+    (na0 na1 nb0 nb1 nc0 nc1 nb0-0 nb1-0 nc0-0 nc1-0 nb0-1 nb1-1 text)
+    (a b c name))
+  (defstrand resp 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0) (a a)
+    (b b) (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0)
+    (nc0 nc0-0) (nc1 nc1-0) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0-1) (nb1 nb1-1) (a a)
+    (b b) (c c))
+  (precedes ((0 1) (1 1)) ((1 0) (2 0)) ((1 0) (4 0)) ((1 2) (0 2))
+    ((2 1) (3 0)) ((3 1) (0 0)) ((4 1) (0 0)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig na0 na1 nc0 nc1 nb0-0 nb1-0 nc0-0 nc1-0 nb0-1 nb1-1)
+  (operation nonce-test (added-strand mid 2) na1 (0 0)
+    (enc na0 a c (enc na1 a b (pubk c)) (pubk b))
+    (enc na1 nc1-0 c b (enc na0 nb0-0 b c (pubk a))
+      (enc nb1-0 nc0-0 c a (pubk b)) (pubk a))
+    (enc nb1-0 b a (enc na1 a b (pubk c)) (enc na0 nb0-0 b c (pubk a))
+      (pubk c)))
+  (traces
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1-0 b a (enc na1 a b (pubk c))
+          (enc na0 nb0-0 b c (pubk a)) (pubk c))))
+    ((recv
+       (enc nb1-0 b a (enc na1 a b (pubk c))
+         (enc na0 nb0-0 b c (pubk a)) (pubk c)))
+      (send
+        (enc na1 nc1-0 c b (enc na0 nb0-0 b c (pubk a))
+          (enc nb1-0 nc0-0 c a (pubk b)) (pubk a))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1-1 b a (enc na1 a b (pubk c))
+          (enc na0 nb0-1 b c (pubk a)) (pubk c)))))
+  (label 19)
+  (parent 16)
+  (unrealized (0 0) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton nsl3
+  (vars (nc0 nc1 nb0 nb1 na0 na1 text) (a b c name))
+  (defstrand resp 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand mid 4 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (precedes ((0 1) (1 1)) ((1 0) (2 0)) ((1 2) (2 2)) ((2 1) (0 0))
+    ((2 3) (0 2)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig nc0 nc1 nb0 nb1 na0 na1)
+  (operation nonce-test (displaced 3 1 init 3) nc0 (2 2)
+    (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+      (enc nb1 nc0 c a (pubk b)) (pubk a)))
+  (traces
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))) (send (enc nc0 (enc nc1 (pubk c)) (pubk c)))))
+  (label 20)
+  (parent 17)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (c c) (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1)
+        (nc0 nc0) (nc1 nc1))))
+  (origs (na0 (1 0)) (na1 (1 0)) (nb0 (2 1)) (nb1 (2 1)) (nc1 (0 1))
+    (nc0 (0 1))))
+
+(defskeleton nsl3
+  (vars (nc0 nc1 nb0 nb1 nc0-0 nc1-0 na0 na1 text) (a b c name))
+  (defstrand resp 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0-0)
+    (nc1 nc1-0) (a a) (b b) (c c))
+  (defstrand mid 4 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (precedes ((0 1) (1 1)) ((0 1) (3 2)) ((1 0) (3 0)) ((1 2) (0 2))
+    ((2 1) (0 0)) ((3 1) (2 0)) ((3 3) (0 2)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig nc0 nc1 nb0 nb1 nc0-0 nc1-0 na0 na1)
+  (operation nonce-test (displaced 2 4 mid 4) nc0 (0 2)
+    (enc na1-0 nc1 c b (enc na0-0 nb0 b c (pubk a))
+      (enc nb1 nc0 c a (pubk b)) (pubk a))
+    (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c)) (pubk b)))
+  (traces
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0-0 c a (pubk b)) (pubk a))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))) (send (enc nc0 (enc nc1 (pubk c)) (pubk c)))))
+  (label 21)
+  (parent 18)
+  (unrealized (3 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nsl3
+  (vars (na0 na1 nc0 nc1 nb0 nb1 nc0-0 nc1-0 nb0-0 nb1-0 text)
+    (a b c name))
+  (defstrand resp 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (a a) (b b)
+    (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0-0)
+    (nc1 nc1-0) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0) (a a)
+    (b b) (c c))
+  (precedes ((0 1) (1 1)) ((1 0) (2 0)) ((1 0) (4 0)) ((1 2) (0 2))
+    ((2 1) (3 0)) ((3 1) (0 0)) ((4 1) (0 0)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig na0 na1 nc0 nc1 nb0 nb1 nc0-0 nc1-0 nb0-0 nb1-0)
+  (operation nonce-test (contracted (nb0-1 nb0) (nb1-1 nb1)) na1 (0 0)
+    (enc na0 a c (enc na1 a b (pubk c)) (pubk b))
+    (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+      (enc nb1 nc0-0 c a (pubk b)) (pubk a))
+    (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+      (pubk c))
+    (enc nb1-0 b a (enc na1 a b (pubk c)) (enc na0 nb0-0 b c (pubk a))
+      (pubk c)))
+  (traces
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c))))
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0-0 c a (pubk b)) (pubk a))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1-0 b a (enc na1 a b (pubk c))
+          (enc na0 nb0-0 b c (pubk a)) (pubk c)))))
+  (label 22)
+  (parent 19)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nsl3
+  (vars (na0 na1 nc0 nc1 nb0 nb1 nc0-0 nc1-0 nb0-0 nb1-0 text)
+    (a b c name))
+  (defstrand resp 3 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0)
+    (nc0 nc0) (nc1 nc1) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0)
+    (nc0 nc0) (nc1 nc1) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (a a) (b b)
+    (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0-0)
+    (nc1 nc1-0) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0) (a a)
+    (b b) (c c))
+  (precedes ((0 1) (1 1)) ((1 0) (2 0)) ((1 0) (4 0)) ((1 2) (0 2))
+    ((2 1) (3 0)) ((3 1) (0 0)) ((4 1) (0 0)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig na0 na1 nc0 nc1 nb0 nb1 nc0-0 nc1-0 nb0-0 nb1-0)
+  (operation nonce-test (contracted (nb0-1 nb0-0) (nb1-1 nb1-0)) na1
+    (0 0) (enc na0 a c (enc na1 a b (pubk c)) (pubk b))
+    (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+      (enc nb1 nc0-0 c a (pubk b)) (pubk a))
+    (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+      (pubk c))
+    (enc nb1-0 b a (enc na1 a b (pubk c)) (enc na0 nb0-0 b c (pubk a))
+      (pubk c)))
+  (traces
+    ((recv
+       (enc nb1-0 b a (enc na1 a b (pubk c))
+         (enc na0 nb0-0 b c (pubk a)) (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0-0 b c (pubk a))
+          (enc nb1-0 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0-0 b c (pubk a))
+          (enc nb1-0 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0-0 (enc nb1-0 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c))))
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0-0 c a (pubk b)) (pubk a))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1-0 b a (enc na1 a b (pubk c))
+          (enc na0 nb0-0 b c (pubk a)) (pubk c)))))
+  (label 23)
+  (parent 19)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nsl3
+  (vars (nc0 nc1 nb0 nb1 nc0-0 nc1-0 na0 na1 text) (a b c name))
+  (defstrand resp 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0-0)
+    (nc1 nc1-0) (a a) (b b) (c c))
+  (defstrand mid 4 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (precedes ((0 1) (1 1)) ((1 0) (3 0)) ((1 2) (3 2)) ((2 1) (0 0))
+    ((3 1) (2 0)) ((3 3) (0 2)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig nc0 nc1 nb0 nb1 nc0-0 nc1-0 na0 na1)
+  (operation nonce-test (displaced 4 1 init 3) nc0 (3 2)
+    (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+      (enc nb1 nc0 c a (pubk b)) (pubk a)))
+  (traces
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0-0 c a (pubk b)) (pubk a))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))) (send (enc nc0 (enc nc1 (pubk c)) (pubk c)))))
+  (label 24)
+  (parent 21)
+  (seen 20)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton nsl3
+  (vars (nc0 nc1 nb0 nb1 nc0-0 nc1-0 nb0-0 nb1-0 na0 na1 text)
+    (a b c name))
+  (defstrand resp 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0-0)
+    (nc1 nc1-0) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0) (a a)
+    (b b) (c c))
+  (defstrand mid 4 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (precedes ((0 1) (1 1)) ((0 1) (4 2)) ((1 0) (3 0)) ((1 0) (4 0))
+    ((1 2) (0 2)) ((2 1) (0 0)) ((3 1) (0 0)) ((4 1) (2 0))
+    ((4 3) (0 2)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig nc0 nc1 nb0 nb1 nc0-0 nc1-0 nb0-0 nb1-0 na0 na1)
+  (operation nonce-test (displaced 2 5 mid 4) nc0 (0 2)
+    (enc na1-0 nc1 c b (enc na0-0 nb0 b c (pubk a))
+      (enc nb1 nc0 c a (pubk b)) (pubk a))
+    (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c)) (pubk b)))
+  (traces
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0-0 c a (pubk b)) (pubk a))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1-0 b a (enc na1 a b (pubk c))
+          (enc na0 nb0-0 b c (pubk a)) (pubk c))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))) (send (enc nc0 (enc nc1 (pubk c)) (pubk c)))))
+  (label 25)
+  (parent 22)
+  (unrealized (4 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nsl3
+  (vars (nc0 nc1 nb0 nb1 nc0-0 nc1-0 nb0-0 nb1-0 na0 na1 text)
+    (a b c name))
+  (defstrand resp 3 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0)
+    (nc0 nc0) (nc1 nc1) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0)
+    (nc0 nc0) (nc1 nc1) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (a a) (b b)
+    (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0-0)
+    (nc1 nc1-0) (a a) (b b) (c c))
+  (defstrand mid 4 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (precedes ((0 1) (1 1)) ((0 1) (4 2)) ((1 0) (2 0)) ((1 0) (4 0))
+    ((1 2) (0 2)) ((2 1) (3 0)) ((3 1) (0 0)) ((4 1) (0 0))
+    ((4 3) (0 2)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig nc0 nc1 nb0 nb1 nc0-0 nc1-0 nb0-0 nb1-0 na0 na1)
+  (operation nonce-test (displaced 4 5 mid 4) nc0 (0 2)
+    (enc na1-0 nc1 c b (enc na0-0 nb0-0 b c (pubk a))
+      (enc nb1-0 nc0 c a (pubk b)) (pubk a))
+    (enc nb0-0 (enc nb1-0 nc0 c a (pubk b)) (enc nc1 (pubk c))
+      (pubk b)))
+  (traces
+    ((recv
+       (enc nb1-0 b a (enc na1 a b (pubk c))
+         (enc na0 nb0-0 b c (pubk a)) (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0-0 b c (pubk a))
+          (enc nb1-0 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0-0 b c (pubk a))
+          (enc nb1-0 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0-0 (enc nb1-0 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c))))
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0-0 c a (pubk b)) (pubk a))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1-0 b a (enc na1 a b (pubk c))
+          (enc na0 nb0-0 b c (pubk a)) (pubk c)))
+      (recv
+        (enc nb0-0 (enc nb1-0 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))) (send (enc nc0 (enc nc1 (pubk c)) (pubk c)))))
+  (label 26)
+  (parent 23)
+  (unrealized (4 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nsl3
+  (vars (nc0 nc1 nb0 nb1 nc0-0 nc1-0 nb0-0 nb1-0 na0 na1 text)
+    (a b c name))
+  (defstrand resp 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0-0)
+    (nc1 nc1-0) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0) (a a)
+    (b b) (c c))
+  (defstrand mid 4 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (precedes ((0 1) (1 1)) ((1 0) (3 0)) ((1 0) (4 0)) ((1 2) (4 2))
+    ((2 1) (0 0)) ((3 1) (0 0)) ((4 1) (2 0)) ((4 3) (0 2)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig nc0 nc1 nb0 nb1 nc0-0 nc1-0 nb0-0 nb1-0 na0 na1)
+  (operation nonce-test (displaced 5 1 init 3) nc0 (4 2)
+    (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+      (enc nb1 nc0 c a (pubk b)) (pubk a)))
+  (traces
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0-0 c a (pubk b)) (pubk a))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1-0 b a (enc na1 a b (pubk c))
+          (enc na0 nb0-0 b c (pubk a)) (pubk c))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))) (send (enc nc0 (enc nc1 (pubk c)) (pubk c)))))
+  (label 27)
+  (parent 25)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nsl3
+  (vars (nc0 nc1 nb0 nb1 nc0-0 nc1-0 nb0-0 nb1-0 na0 na1 text)
+    (a b c name))
+  (defstrand resp 3 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0)
+    (nc0 nc0) (nc1 nc1) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0)
+    (nc0 nc0) (nc1 nc1) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (a a) (b b)
+    (c c))
+  (defstrand resp 2 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0-0)
+    (nc1 nc1-0) (a a) (b b) (c c))
+  (defstrand mid 4 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (precedes ((0 1) (1 1)) ((1 0) (2 0)) ((1 0) (4 0)) ((1 2) (4 2))
+    ((2 1) (3 0)) ((3 1) (0 0)) ((4 1) (0 0)) ((4 3) (0 2)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig nc0 nc1 nb0 nb1 nc0-0 nc1-0 nb0-0 nb1-0 na0 na1)
+  (operation nonce-test (displaced 5 1 init 3) nc0 (4 2)
+    (enc na1 nc1 c b (enc na0 nb0-0 b c (pubk a))
+      (enc nb1-0 nc0 c a (pubk b)) (pubk a)))
+  (traces
+    ((recv
+       (enc nb1-0 b a (enc na1 a b (pubk c))
+         (enc na0 nb0-0 b c (pubk a)) (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0-0 b c (pubk a))
+          (enc nb1-0 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0-0 b c (pubk a))
+          (enc nb1-0 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0-0 (enc nb1-0 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c))))
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1-0 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0-0 c a (pubk b)) (pubk a))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1-0 b a (enc na1 a b (pubk c))
+          (enc na0 nb0-0 b c (pubk a)) (pubk c)))
+      (recv
+        (enc nb0-0 (enc nb1-0 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))) (send (enc nc0 (enc nc1 (pubk c)) (pubk c)))))
+  (label 28)
+  (parent 26)
+  (seen 29)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton nsl3
+  (vars (nc0 nc1 nb0 nb1 nb0-0 nb1-0 na0 na1 text) (a b c name))
+  (defstrand resp 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand init 3 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (defstrand mid 2 (na0 na0) (na1 na1) (nb0 nb0-0) (nb1 nb1-0) (a a)
+    (b b) (c c))
+  (defstrand mid 4 (na0 na0) (na1 na1) (nb0 nb0) (nb1 nb1) (nc0 nc0)
+    (nc1 nc1) (a a) (b b) (c c))
+  (precedes ((0 1) (1 1)) ((1 0) (2 0)) ((1 0) (3 0)) ((1 2) (3 2))
+    ((2 1) (0 0)) ((3 1) (0 0)) ((3 3) (0 2)))
+  (non-orig (privk a) (privk b) (privk c))
+  (uniq-orig nc0 nc1 nb0 nb1 nb0-0 nb1-0 na0 na1)
+  (operation generalization deleted (2 0))
+  (traces
+    ((recv
+       (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+         (pubk c)))
+      (send
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (recv (enc nc0 (enc nc1 (pubk c)) (pubk c))))
+    ((send (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (recv
+        (enc na1 nc1 c b (enc na0 nb0 b c (pubk a))
+          (enc nb1 nc0 c a (pubk b)) (pubk a)))
+      (send
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1-0 b a (enc na1 a b (pubk c))
+          (enc na0 nb0-0 b c (pubk a)) (pubk c))))
+    ((recv (enc na0 a c (enc na1 a b (pubk c)) (pubk b)))
+      (send
+        (enc nb1 b a (enc na1 a b (pubk c)) (enc na0 nb0 b c (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb0 (enc nb1 nc0 c a (pubk b)) (enc nc1 (pubk c))
+          (pubk b))) (send (enc nc0 (enc nc1 (pubk c)) (pubk c)))))
+  (label 29)
+  (parent 27)
+  (seen 20)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/tst/nsl4.lisp b/tst/nsl4.lisp
new file mode 100644
--- /dev/null
+++ b/tst/nsl4.lisp
@@ -0,0 +1,85 @@
+(defprotocol nsl4 basic
+  (defrole init
+    (vars (a b c d name)
+      (na0 na1 na2 nb0 nb1 nb2 nc0 nc1 nc2 nd0 nd1 nd2 text))
+    (trace
+      (send
+        (enc na0 a c d (enc na1 a b d (pubk c)) (enc na2 a b c (pubk d))
+          (pubk b)))
+      (recv
+        (enc na2 nd0 d b c (enc na0 nb2 b c d (pubk a))
+          (enc na1 nc1 c b d (pubk a)) (enc nb0 nc2 c d a (pubk b))
+          (enc nb1 nd1 d a c (pubk b)) (enc nc0 nd2 d a b (pubk c))
+          (pubk a)))
+      (send
+        (enc nb2 (enc nb0 nc2 c d a (pubk b))
+          (enc nb1 nd1 d a c (pubk b)) (enc nc0 nd2 d a b (pubk c))
+          (enc nc1 (pubk c)) (enc nd0 (pubk d)) (pubk b))))
+    (uniq-orig na0 na1 na2))
+  (defrole resp1
+    (vars (a b c d name)
+      (na0 na1 na2 nb0 nb1 nb2 nc0 nc1 nc2 nd0 nd1 nd2 text))
+    (trace
+      (recv
+        (enc na0 a c d (enc na1 a b d (pubk c)) (enc na2 a b c (pubk d))
+          (pubk b)))
+      (send
+        (enc nb0 b d a (enc na1 a b d (pubk c)) (enc na2 a b c (pubk d))
+          (enc nb1 b c a (pubk d)) (enc na0 nb2 b c d (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb2 (enc nb0 nc2 c d a (pubk b))
+          (enc nb1 nd1 d a c (pubk b)) (enc nc0 nd2 d a b (pubk c))
+          (enc nc1 (pubk c)) (enc nd0 (pubk d)) (pubk b)))
+      (send
+        (enc nc2 (enc nc0 nd2 d a b (pubk c)) (enc nc1 (pubk c))
+          (enc nd0 (pubk d)) (enc nd1 (pubk d)) (pubk c))))
+    (uniq-orig nb0 nb1 nb2))
+  (defrole resp2
+    (vars (a b c d name)
+      (na0 na1 na2 nb0 nb1 nb2 nc0 nc1 nc2 nd0 nd1 nd2 text))
+    (trace
+      (recv
+        (enc nb0 b d a (enc na1 a b d (pubk c)) (enc na2 a b c (pubk d))
+          (enc nb1 b c a (pubk d)) (enc na0 nb2 b c d (pubk a))
+          (pubk c)))
+      (send
+        (enc nc0 c a b (enc na2 a b c (pubk d)) (enc nb1 b c a (pubk d))
+          (enc na0 nb2 b c d (pubk a)) (enc na1 nc1 c b d (pubk a))
+          (enc nb0 nc2 c d a (pubk b)) (pubk d)))
+      (recv
+        (enc nc2 (enc nc0 nd2 d a b (pubk c)) (enc nc1 (pubk c))
+          (enc nd0 (pubk d)) (enc nd1 (pubk d)) (pubk c)))
+      (send (enc nd2 (enc nd0 (pubk d)) (enc nd1 (pubk d)) (pubk d))))
+    (uniq-orig nc0 nc1 nc2))
+  (defrole resp3
+    (vars (a b c d name)
+      (na0 na1 na2 nb0 nb1 nb2 nc0 nc1 nc2 nd0 nd1 nd2 text))
+    (trace
+      (recv
+        (enc nc0 c a b (enc na2 a b c (pubk d)) (enc nb1 b c a (pubk d))
+          (enc na0 nb2 b c d (pubk a)) (enc na1 nc1 c b d (pubk a))
+          (enc nb0 nc2 c d a (pubk b)) (pubk d)))
+      (send
+        (enc na2 nd0 d b c (enc na0 nb2 b c d (pubk a))
+          (enc na1 nc1 c b d (pubk a)) (enc nb0 nc2 c d a (pubk b))
+          (enc nb1 nd1 d a c (pubk b)) (enc nc0 nd2 d a b (pubk c))
+          (pubk a)))
+      (recv (enc nd2 (enc nd0 (pubk d)) (enc nd1 (pubk d)) (pubk d))))
+    (uniq-orig nd0 nd1 nd2)))
+
+(defskeleton nsl4 (vars (a b c d name))
+  (defstrand init 3 (a a) (b b) (c c) (d d))
+  (non-orig (privk a) (privk b) (privk c) (privk d)))
+
+(defskeleton nsl4 (vars (a b c d name))
+  (defstrand resp1 4 (a a) (b b) (c c) (d d))
+  (non-orig (privk a) (privk b) (privk c) (privk d)))
+
+(defskeleton nsl4 (vars (a b c d name))
+  (defstrand resp2 4 (a a) (b b) (c c) (d d))
+  (non-orig (privk a) (privk b) (privk c) (privk d)))
+
+(defskeleton nsl4 (vars (a b c d name))
+  (defstrand resp3 3 (a a) (b b) (c c) (d d))
+  (non-orig (privk a) (privk b) (privk c) (privk d)))
diff --git a/tst/nsl4cm1.lisp b/tst/nsl4cm1.lisp
new file mode 100644
--- /dev/null
+++ b/tst/nsl4cm1.lisp
@@ -0,0 +1,49 @@
+(herald "Four Party Needham-Schroeder-Lowe Protocol")
+
+(defprotocol nsl4cm basic
+   (defrole init
+      (vars (a b c d name) (na nb nc nd text))
+      (trace
+         (send (enc a c d na (pubk b)))
+	 (recv (enc b c d na nb nc nd (pubk a)))
+	 (send (enc nb nc nd (pubk b)))))
+   (defrole resp1
+      (vars (a b c d name) (na nb nc nd text))
+      (trace
+         (recv (enc a c d na (pubk b)))
+	 (send (enc a b d na nb (pubk c)))
+	 (recv (enc nb nc nd (pubk b)))
+	 (send (enc nc nd (pubk c)))))
+   (defrole resp2
+      (vars (a b c d name) (na nb nc nd text))
+      (trace
+         (recv (enc a b d na nb (pubk c)))
+	 (send (enc a b c na nb nc (pubk d)))
+	 (recv (enc nc nd (pubk c)))
+	 (send (enc nd (pubk d)))))
+   (defrole resp3
+      (vars (a b c d name) (na nb nc nd text))
+      (trace
+         (recv (enc a b c na nb nc (pubk d)))
+	 (send (enc b c d na nb nc nd (pubk a)))
+	 (recv (enc nd (pubk d))))))
+
+(defskeleton nsl4cm (vars (a b c d name) (na text))
+  (defstrand init 3 (a a) (b b) (c c) (d d) (na na))
+   (non-orig (privk a) (privk b) (privk c) (privk d))
+   (uniq-orig na))
+
+(comment (defskeleton nsl4cm (vars (a b c d name) (nb text))
+   (defstrand resp1 4 (a a) (b b) (c c) (d d) (nb nb))
+   (non-orig (privk a) (privk b) (privk c) (privk d))
+   (uniq-orig nb))
+
+(defskeleton nsl4cm (vars (a b c d name) (nc text))
+   (defstrand resp2 4 (a a) (b b) (c c) (d d) (nc nc))
+   (non-orig (privk a) (privk b) (privk c) (privk d))
+   (uniq-orig nc))
+
+(defskeleton nsl4cm (vars (a b c d name) (nd text))
+   (defstrand resp3 3 (a a) (b b) (c c) (d d) (nd nd))
+   (non-orig (privk a) (privk b) (privk c) (privk d))
+   (uniq-orig nd)))
diff --git a/tst/nsl4init.lisp b/tst/nsl4init.lisp
new file mode 100644
--- /dev/null
+++ b/tst/nsl4init.lisp
@@ -0,0 +1,73 @@
+(defprotocol nsl4 basic
+  (defrole init
+    (vars (a b c d name)
+      (na0 na1 na2 nb0 nb1 nb2 nc0 nc1 nc2 nd0 nd1 nd2 text))
+    (trace
+      (send
+        (enc na0 a c d (enc na1 a b d (pubk c)) (enc na2 a b c (pubk d))
+          (pubk b)))
+      (recv
+        (enc na2 nd0 d b c (enc na0 nb2 b c d (pubk a))
+          (enc na1 nc1 c b d (pubk a)) (enc nb0 nc2 c d a (pubk b))
+          (enc nb1 nd1 d a c (pubk b)) (enc nc0 nd2 d a b (pubk c))
+          (pubk a)))
+      (send
+        (enc nb2 (enc nb0 nc2 c d a (pubk b))
+          (enc nb1 nd1 d a c (pubk b)) (enc nc0 nd2 d a b (pubk c))
+          (enc nc1 (pubk c)) (enc nd0 (pubk d)) (pubk b))))
+    (uniq-orig na0 na1 na2))
+  (defrole resp1
+    (vars (a b c d name)
+      (na0 na1 na2 nb0 nb1 nb2 nc0 nc1 nc2 nd0 nd1 nd2 text))
+    (trace
+      (recv
+        (enc na0 a c d (enc na1 a b d (pubk c)) (enc na2 a b c (pubk d))
+          (pubk b)))
+      (send
+        (enc nb0 b d a (enc na1 a b d (pubk c)) (enc na2 a b c (pubk d))
+          (enc nb1 b c a (pubk d)) (enc na0 nb2 b c d (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb2 (enc nb0 nc2 c d a (pubk b))
+          (enc nb1 nd1 d a c (pubk b)) (enc nc0 nd2 d a b (pubk c))
+          (enc nc1 (pubk c)) (enc nd0 (pubk d)) (pubk b)))
+      (send
+        (enc nc2 (enc nc0 nd2 d a b (pubk c)) (enc nc1 (pubk c))
+          (enc nd0 (pubk d)) (enc nd1 (pubk d)) (pubk c))))
+    (uniq-orig nb0 nb1 nb2))
+  (defrole resp2
+    (vars (a b c d name)
+      (na0 na1 na2 nb0 nb1 nb2 nc0 nc1 nc2 nd0 nd1 nd2 text))
+    (trace
+      (recv
+        (enc nb0 b d a (enc na1 a b d (pubk c)) (enc na2 a b c (pubk d))
+          (enc nb1 b c a (pubk d)) (enc na0 nb2 b c d (pubk a))
+          (pubk c)))
+      (send
+        (enc nc0 c a b (enc na2 a b c (pubk d)) (enc nb1 b c a (pubk d))
+          (enc na0 nb2 b c d (pubk a)) (enc na1 nc1 c b d (pubk a))
+          (enc nb0 nc2 c d a (pubk b)) (pubk d)))
+      (recv
+        (enc nc2 (enc nc0 nd2 d a b (pubk c)) (enc nc1 (pubk c))
+          (enc nd0 (pubk d)) (enc nd1 (pubk d)) (pubk c)))
+      (send (enc nd2 (enc nd0 (pubk d)) (enc nd1 (pubk d)) (pubk d))))
+    (uniq-orig nc0 nc1 nc2))
+  (defrole resp3
+    (vars (a b c d name)
+      (na0 na1 na2 nb0 nb1 nb2 nc0 nc1 nc2 nd0 nd1 nd2 text))
+    (trace
+      (recv
+        (enc nc0 c a b (enc na2 a b c (pubk d)) (enc nb1 b c a (pubk d))
+          (enc na0 nb2 b c d (pubk a)) (enc na1 nc1 c b d (pubk a))
+          (enc nb0 nc2 c d a (pubk b)) (pubk d)))
+      (send
+        (enc na2 nd0 d b c (enc na0 nb2 b c d (pubk a))
+          (enc na1 nc1 c b d (pubk a)) (enc nb0 nc2 c d a (pubk b))
+          (enc nb1 nd1 d a c (pubk b)) (enc nc0 nd2 d a b (pubk c))
+          (pubk a)))
+      (recv (enc nd2 (enc nd0 (pubk d)) (enc nd1 (pubk d)) (pubk d))))
+    (uniq-orig nd0 nd1 nd2)))
+
+(defskeleton nsl4 (vars (a b c d name))
+  (defstrand init 3 (a a) (b b) (c c) (d d))
+  (non-orig (privk a) (privk b) (privk c) (privk d)))
diff --git a/tst/nsl4resp1.lisp b/tst/nsl4resp1.lisp
new file mode 100644
--- /dev/null
+++ b/tst/nsl4resp1.lisp
@@ -0,0 +1,73 @@
+(defprotocol nsl4 basic
+  (defrole init
+    (vars (a b c d name)
+      (na0 na1 na2 nb0 nb1 nb2 nc0 nc1 nc2 nd0 nd1 nd2 text))
+    (trace
+      (send
+        (enc na0 a c d (enc na1 a b d (pubk c)) (enc na2 a b c (pubk d))
+          (pubk b)))
+      (recv
+        (enc na2 nd0 d b c (enc na0 nb2 b c d (pubk a))
+          (enc na1 nc1 c b d (pubk a)) (enc nb0 nc2 c d a (pubk b))
+          (enc nb1 nd1 d a c (pubk b)) (enc nc0 nd2 d a b (pubk c))
+          (pubk a)))
+      (send
+        (enc nb2 (enc nb0 nc2 c d a (pubk b))
+          (enc nb1 nd1 d a c (pubk b)) (enc nc0 nd2 d a b (pubk c))
+          (enc nc1 (pubk c)) (enc nd0 (pubk d)) (pubk b))))
+    (uniq-orig na0 na1 na2))
+  (defrole resp1
+    (vars (a b c d name)
+      (na0 na1 na2 nb0 nb1 nb2 nc0 nc1 nc2 nd0 nd1 nd2 text))
+    (trace
+      (recv
+        (enc na0 a c d (enc na1 a b d (pubk c)) (enc na2 a b c (pubk d))
+          (pubk b)))
+      (send
+        (enc nb0 b d a (enc na1 a b d (pubk c)) (enc na2 a b c (pubk d))
+          (enc nb1 b c a (pubk d)) (enc na0 nb2 b c d (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb2 (enc nb0 nc2 c d a (pubk b))
+          (enc nb1 nd1 d a c (pubk b)) (enc nc0 nd2 d a b (pubk c))
+          (enc nc1 (pubk c)) (enc nd0 (pubk d)) (pubk b)))
+      (send
+        (enc nc2 (enc nc0 nd2 d a b (pubk c)) (enc nc1 (pubk c))
+          (enc nd0 (pubk d)) (enc nd1 (pubk d)) (pubk c))))
+    (uniq-orig nb0 nb1 nb2))
+  (defrole resp2
+    (vars (a b c d name)
+      (na0 na1 na2 nb0 nb1 nb2 nc0 nc1 nc2 nd0 nd1 nd2 text))
+    (trace
+      (recv
+        (enc nb0 b d a (enc na1 a b d (pubk c)) (enc na2 a b c (pubk d))
+          (enc nb1 b c a (pubk d)) (enc na0 nb2 b c d (pubk a))
+          (pubk c)))
+      (send
+        (enc nc0 c a b (enc na2 a b c (pubk d)) (enc nb1 b c a (pubk d))
+          (enc na0 nb2 b c d (pubk a)) (enc na1 nc1 c b d (pubk a))
+          (enc nb0 nc2 c d a (pubk b)) (pubk d)))
+      (recv
+        (enc nc2 (enc nc0 nd2 d a b (pubk c)) (enc nc1 (pubk c))
+          (enc nd0 (pubk d)) (enc nd1 (pubk d)) (pubk c)))
+      (send (enc nd2 (enc nd0 (pubk d)) (enc nd1 (pubk d)) (pubk d))))
+    (uniq-orig nc0 nc1 nc2))
+  (defrole resp3
+    (vars (a b c d name)
+      (na0 na1 na2 nb0 nb1 nb2 nc0 nc1 nc2 nd0 nd1 nd2 text))
+    (trace
+      (recv
+        (enc nc0 c a b (enc na2 a b c (pubk d)) (enc nb1 b c a (pubk d))
+          (enc na0 nb2 b c d (pubk a)) (enc na1 nc1 c b d (pubk a))
+          (enc nb0 nc2 c d a (pubk b)) (pubk d)))
+      (send
+        (enc na2 nd0 d b c (enc na0 nb2 b c d (pubk a))
+          (enc na1 nc1 c b d (pubk a)) (enc nb0 nc2 c d a (pubk b))
+          (enc nb1 nd1 d a c (pubk b)) (enc nc0 nd2 d a b (pubk c))
+          (pubk a)))
+      (recv (enc nd2 (enc nd0 (pubk d)) (enc nd1 (pubk d)) (pubk d))))
+    (uniq-orig nd0 nd1 nd2)))
+
+(defskeleton nsl4 (vars (a b c d name))
+  (defstrand resp1 4 (a a) (b b) (c c) (d d))
+  (non-orig (privk a) (privk b) (privk c) (privk d)))
diff --git a/tst/nsl4resp2.lisp b/tst/nsl4resp2.lisp
new file mode 100644
--- /dev/null
+++ b/tst/nsl4resp2.lisp
@@ -0,0 +1,73 @@
+(defprotocol nsl4 basic
+  (defrole init
+    (vars (a b c d name)
+      (na0 na1 na2 nb0 nb1 nb2 nc0 nc1 nc2 nd0 nd1 nd2 text))
+    (trace
+      (send
+        (enc na0 a c d (enc na1 a b d (pubk c)) (enc na2 a b c (pubk d))
+          (pubk b)))
+      (recv
+        (enc na2 nd0 d b c (enc na0 nb2 b c d (pubk a))
+          (enc na1 nc1 c b d (pubk a)) (enc nb0 nc2 c d a (pubk b))
+          (enc nb1 nd1 d a c (pubk b)) (enc nc0 nd2 d a b (pubk c))
+          (pubk a)))
+      (send
+        (enc nb2 (enc nb0 nc2 c d a (pubk b))
+          (enc nb1 nd1 d a c (pubk b)) (enc nc0 nd2 d a b (pubk c))
+          (enc nc1 (pubk c)) (enc nd0 (pubk d)) (pubk b))))
+    (uniq-orig na0 na1 na2))
+  (defrole resp1
+    (vars (a b c d name)
+      (na0 na1 na2 nb0 nb1 nb2 nc0 nc1 nc2 nd0 nd1 nd2 text))
+    (trace
+      (recv
+        (enc na0 a c d (enc na1 a b d (pubk c)) (enc na2 a b c (pubk d))
+          (pubk b)))
+      (send
+        (enc nb0 b d a (enc na1 a b d (pubk c)) (enc na2 a b c (pubk d))
+          (enc nb1 b c a (pubk d)) (enc na0 nb2 b c d (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb2 (enc nb0 nc2 c d a (pubk b))
+          (enc nb1 nd1 d a c (pubk b)) (enc nc0 nd2 d a b (pubk c))
+          (enc nc1 (pubk c)) (enc nd0 (pubk d)) (pubk b)))
+      (send
+        (enc nc2 (enc nc0 nd2 d a b (pubk c)) (enc nc1 (pubk c))
+          (enc nd0 (pubk d)) (enc nd1 (pubk d)) (pubk c))))
+    (uniq-orig nb0 nb1 nb2))
+  (defrole resp2
+    (vars (a b c d name)
+      (na0 na1 na2 nb0 nb1 nb2 nc0 nc1 nc2 nd0 nd1 nd2 text))
+    (trace
+      (recv
+        (enc nb0 b d a (enc na1 a b d (pubk c)) (enc na2 a b c (pubk d))
+          (enc nb1 b c a (pubk d)) (enc na0 nb2 b c d (pubk a))
+          (pubk c)))
+      (send
+        (enc nc0 c a b (enc na2 a b c (pubk d)) (enc nb1 b c a (pubk d))
+          (enc na0 nb2 b c d (pubk a)) (enc na1 nc1 c b d (pubk a))
+          (enc nb0 nc2 c d a (pubk b)) (pubk d)))
+      (recv
+        (enc nc2 (enc nc0 nd2 d a b (pubk c)) (enc nc1 (pubk c))
+          (enc nd0 (pubk d)) (enc nd1 (pubk d)) (pubk c)))
+      (send (enc nd2 (enc nd0 (pubk d)) (enc nd1 (pubk d)) (pubk d))))
+    (uniq-orig nc0 nc1 nc2))
+  (defrole resp3
+    (vars (a b c d name)
+      (na0 na1 na2 nb0 nb1 nb2 nc0 nc1 nc2 nd0 nd1 nd2 text))
+    (trace
+      (recv
+        (enc nc0 c a b (enc na2 a b c (pubk d)) (enc nb1 b c a (pubk d))
+          (enc na0 nb2 b c d (pubk a)) (enc na1 nc1 c b d (pubk a))
+          (enc nb0 nc2 c d a (pubk b)) (pubk d)))
+      (send
+        (enc na2 nd0 d b c (enc na0 nb2 b c d (pubk a))
+          (enc na1 nc1 c b d (pubk a)) (enc nb0 nc2 c d a (pubk b))
+          (enc nb1 nd1 d a c (pubk b)) (enc nc0 nd2 d a b (pubk c))
+          (pubk a)))
+      (recv (enc nd2 (enc nd0 (pubk d)) (enc nd1 (pubk d)) (pubk d))))
+    (uniq-orig nd0 nd1 nd2)))
+
+(defskeleton nsl4 (vars (a b c d name))
+  (defstrand resp2 4 (a a) (b b) (c c) (d d))
+  (non-orig (privk a) (privk b) (privk c) (privk d)))
diff --git a/tst/nsl4resp3.lisp b/tst/nsl4resp3.lisp
new file mode 100644
--- /dev/null
+++ b/tst/nsl4resp3.lisp
@@ -0,0 +1,73 @@
+(defprotocol nsl4 basic
+  (defrole init
+    (vars (a b c d name)
+      (na0 na1 na2 nb0 nb1 nb2 nc0 nc1 nc2 nd0 nd1 nd2 text))
+    (trace
+      (send
+        (enc na0 a c d (enc na1 a b d (pubk c)) (enc na2 a b c (pubk d))
+          (pubk b)))
+      (recv
+        (enc na2 nd0 d b c (enc na0 nb2 b c d (pubk a))
+          (enc na1 nc1 c b d (pubk a)) (enc nb0 nc2 c d a (pubk b))
+          (enc nb1 nd1 d a c (pubk b)) (enc nc0 nd2 d a b (pubk c))
+          (pubk a)))
+      (send
+        (enc nb2 (enc nb0 nc2 c d a (pubk b))
+          (enc nb1 nd1 d a c (pubk b)) (enc nc0 nd2 d a b (pubk c))
+          (enc nc1 (pubk c)) (enc nd0 (pubk d)) (pubk b))))
+    (uniq-orig na0 na1 na2))
+  (defrole resp1
+    (vars (a b c d name)
+      (na0 na1 na2 nb0 nb1 nb2 nc0 nc1 nc2 nd0 nd1 nd2 text))
+    (trace
+      (recv
+        (enc na0 a c d (enc na1 a b d (pubk c)) (enc na2 a b c (pubk d))
+          (pubk b)))
+      (send
+        (enc nb0 b d a (enc na1 a b d (pubk c)) (enc na2 a b c (pubk d))
+          (enc nb1 b c a (pubk d)) (enc na0 nb2 b c d (pubk a))
+          (pubk c)))
+      (recv
+        (enc nb2 (enc nb0 nc2 c d a (pubk b))
+          (enc nb1 nd1 d a c (pubk b)) (enc nc0 nd2 d a b (pubk c))
+          (enc nc1 (pubk c)) (enc nd0 (pubk d)) (pubk b)))
+      (send
+        (enc nc2 (enc nc0 nd2 d a b (pubk c)) (enc nc1 (pubk c))
+          (enc nd0 (pubk d)) (enc nd1 (pubk d)) (pubk c))))
+    (uniq-orig nb0 nb1 nb2))
+  (defrole resp2
+    (vars (a b c d name)
+      (na0 na1 na2 nb0 nb1 nb2 nc0 nc1 nc2 nd0 nd1 nd2 text))
+    (trace
+      (recv
+        (enc nb0 b d a (enc na1 a b d (pubk c)) (enc na2 a b c (pubk d))
+          (enc nb1 b c a (pubk d)) (enc na0 nb2 b c d (pubk a))
+          (pubk c)))
+      (send
+        (enc nc0 c a b (enc na2 a b c (pubk d)) (enc nb1 b c a (pubk d))
+          (enc na0 nb2 b c d (pubk a)) (enc na1 nc1 c b d (pubk a))
+          (enc nb0 nc2 c d a (pubk b)) (pubk d)))
+      (recv
+        (enc nc2 (enc nc0 nd2 d a b (pubk c)) (enc nc1 (pubk c))
+          (enc nd0 (pubk d)) (enc nd1 (pubk d)) (pubk c)))
+      (send (enc nd2 (enc nd0 (pubk d)) (enc nd1 (pubk d)) (pubk d))))
+    (uniq-orig nc0 nc1 nc2))
+  (defrole resp3
+    (vars (a b c d name)
+      (na0 na1 na2 nb0 nb1 nb2 nc0 nc1 nc2 nd0 nd1 nd2 text))
+    (trace
+      (recv
+        (enc nc0 c a b (enc na2 a b c (pubk d)) (enc nb1 b c a (pubk d))
+          (enc na0 nb2 b c d (pubk a)) (enc na1 nc1 c b d (pubk a))
+          (enc nb0 nc2 c d a (pubk b)) (pubk d)))
+      (send
+        (enc na2 nd0 d b c (enc na0 nb2 b c d (pubk a))
+          (enc na1 nc1 c b d (pubk a)) (enc nb0 nc2 c d a (pubk b))
+          (enc nb1 nd1 d a c (pubk b)) (enc nc0 nd2 d a b (pubk c))
+          (pubk a)))
+      (recv (enc nd2 (enc nd0 (pubk d)) (enc nd1 (pubk d)) (pubk d))))
+    (uniq-orig nd0 nd1 nd2)))
+
+(defskeleton nsl4 (vars (a b c d name))
+  (defstrand resp3 3 (a a) (b b) (c c) (d d))
+  (non-orig (privk a) (privk b) (privk c) (privk d)))
diff --git a/tst/nsl5.lisp b/tst/nsl5.lisp
new file mode 100644
--- /dev/null
+++ b/tst/nsl5.lisp
@@ -0,0 +1,149 @@
+(herald nsl5 (bound 10))
+
+(defprotocol nsl5 basic
+  (defrole init
+    (vars (a b c d e name)
+      (na0 na1 na2 na3 nb0 nb1 nb2 nb3 nc0 nc1 nc2 nc3 nd0 nd1 nd2 nd3
+        ne0 ne1 ne2 ne3 text))
+    (trace
+      (send
+        (enc na0 a c d e (enc na1 a b d e (pubk c))
+          (enc na2 a b c e (pubk d)) (enc na3 a b c d (pubk e))
+          (pubk b)))
+      (recv
+        (enc na3 ne0 e b c d (enc na0 nb3 b c d e (pubk a))
+          (enc na1 nc2 c b d e (pubk a)) (enc na2 nd1 d e b c (pubk a))
+          (enc nb0 nc3 c d e a (pubk b)) (enc nb1 nd2 d c e a (pubk b))
+          (enc nb2 ne1 e a c d (pubk b)) (enc nc0 nd3 d e a b (pubk c))
+          (enc nc1 ne2 e a b d (pubk c)) (enc nd0 ne3 e a b c (pubk d))
+          (pubk a)))
+      (send
+        (enc nb3 (enc nb0 nc3 c d e a (pubk b))
+          (enc nb1 nd2 d c e a (pubk b)) (enc nb2 ne1 e a c d (pubk b))
+          (enc nc0 nd3 d e a b (pubk c)) (enc nc1 ne2 e a b d (pubk c))
+          (enc nc2 (pubk c)) (enc nd0 ne3 e a b c (pubk d))
+          (enc nd1 (pubk d)) (enc ne0 (pubk e)) (pubk b))))
+    (uniq-orig na0 na1 na2 na3))
+  (defrole resp1
+    (vars (a b c d e name)
+      (na0 na1 na2 na3 nb0 nb1 nb2 nb3 nc0 nc1 nc2 nc3 nd0 nd1 nd2 nd3
+        ne0 ne1 ne2 ne3 text))
+    (trace
+      (recv
+        (enc na0 a c d e (enc na1 a b d e (pubk c))
+          (enc na2 a b c e (pubk d)) (enc na3 a b c d (pubk e))
+          (pubk b)))
+      (send
+        (enc nb0 b d e a (enc na1 a b d e (pubk c))
+          (enc na2 a b c e (pubk d)) (enc nb1 b c e a (pubk d))
+          (enc na3 a b c d (pubk e)) (enc nb2 b c d a (pubk e))
+          (enc na0 nb3 b c d e (pubk a)) (pubk c)))
+      (recv
+        (enc nb3 (enc nb0 nc3 c d e a (pubk b))
+          (enc nb1 nd2 d c e a (pubk b)) (enc nb2 ne1 e a c d (pubk b))
+          (enc nc0 nd3 d e a b (pubk c)) (enc nc1 ne2 e a b d (pubk c))
+          (enc nc2 (pubk c)) (enc nd0 ne3 e a b c (pubk d))
+          (enc nd1 (pubk d)) (enc ne0 (pubk e)) (pubk b)))
+      (send
+        (enc nc3 (enc nc0 nd3 d e a b (pubk c))
+          (enc nc1 ne2 e a b d (pubk c)) (enc nc2 (pubk c))
+          (enc nd0 ne3 e a b c (pubk d)) (enc nd1 (pubk d))
+          (enc nd2 (pubk d)) (enc ne0 (pubk e)) (enc ne1 (pubk e))
+          (pubk c))))
+    (uniq-orig nb0 nb1 nb2 nb3))
+  (defrole resp2
+    (vars (a b c d e name)
+      (na0 na1 na2 na3 nb0 nb1 nb2 nb3 nc0 nc1 nc2 nc3 nd0 nd1 nd2 nd3
+        ne0 ne1 ne2 ne3 text))
+    (trace
+      (recv
+        (enc nb0 b d e a (enc na1 a b d e (pubk c))
+          (enc na2 a b c e (pubk d)) (enc nb1 b c e a (pubk d))
+          (enc na3 a b c d (pubk e)) (enc nb2 b c d a (pubk e))
+          (enc na0 nb3 b c d e (pubk a)) (pubk c)))
+      (send
+        (enc nc0 c e a b (enc na2 a b c e (pubk d))
+          (enc nb1 b c e a (pubk d)) (enc na3 a b c d (pubk e))
+          (enc nb2 b c d a (pubk e)) (enc nc1 c d a b (pubk e))
+          (enc na0 nb3 b c d e (pubk a)) (enc na1 nc2 c b d e (pubk a))
+          (enc nb0 nc3 c d e a (pubk b)) (pubk d)))
+      (recv
+        (enc nc3 (enc nc0 nd3 d e a b (pubk c))
+          (enc nc1 ne2 e a b d (pubk c)) (enc nc2 (pubk c))
+          (enc nd0 ne3 e a b c (pubk d)) (enc nd1 (pubk d))
+          (enc nd2 (pubk d)) (enc ne0 (pubk e)) (enc ne1 (pubk e))
+          (pubk c)))
+      (send
+        (enc nd3 (enc nd0 ne3 e a b c (pubk d)) (enc nd1 (pubk d))
+          (enc nd2 (pubk d)) (enc ne0 (pubk e)) (enc ne1 (pubk e))
+          (enc ne2 (pubk e)) (pubk d))))
+    (uniq-orig nc0 nc1 nc2 nc3))
+  (defrole resp3
+    (vars (a b c d e name)
+      (na0 na1 na2 na3 nb0 nb1 nb2 nb3 nc0 nc1 nc2 nc3 nd0 nd1 nd2 nd3
+        ne0 ne1 ne2 ne3 text))
+    (trace
+      (recv
+        (enc nc0 c e a b (enc na2 a b c e (pubk d))
+          (enc nb1 b c e a (pubk d)) (enc na3 a b c d (pubk e))
+          (enc nb2 b c d a (pubk e)) (enc nc1 c d a b (pubk e))
+          (enc na0 nb3 b c d e (pubk a)) (enc na1 nc2 c b d e (pubk a))
+          (enc nb0 nc3 c d e a (pubk b)) (pubk d)))
+      (send
+        (enc nd0 d a b c (enc na3 a b c d (pubk e))
+          (enc nb2 b c d a (pubk e)) (enc nc1 c d a b (pubk e))
+          (enc na0 nb3 b c d e (pubk a)) (enc na1 nc2 c b d e (pubk a))
+          (enc na2 nd1 d e b c (pubk a)) (enc nb0 nc3 c d e a (pubk b))
+          (enc nb1 nd2 d c e a (pubk b)) (enc nc0 nd3 d e a b (pubk c))
+          (pubk e)))
+      (recv
+        (enc nd3 (enc nd0 ne3 e a b c (pubk d)) (enc nd1 (pubk d))
+          (enc nd2 (pubk d)) (enc ne0 (pubk e)) (enc ne1 (pubk e))
+          (enc ne2 (pubk e)) (pubk d)))
+      (send
+        (enc ne3 (enc ne0 (pubk e)) (enc ne1 (pubk e))
+          (enc ne2 (pubk e)) (pubk e))))
+    (uniq-orig nd0 nd1 nd2 nd3))
+  (defrole resp4
+    (vars (a b c d e name)
+      (na0 na1 na2 na3 nb0 nb1 nb2 nb3 nc0 nc1 nc2 nc3 nd0 nd1 nd2 nd3
+        ne0 ne1 ne2 ne3 text))
+    (trace
+      (recv
+        (enc nd0 d a b c (enc na3 a b c d (pubk e))
+          (enc nb2 b c d a (pubk e)) (enc nc1 c d a b (pubk e))
+          (enc na0 nb3 b c d e (pubk a)) (enc na1 nc2 c b d e (pubk a))
+          (enc na2 nd1 d e b c (pubk a)) (enc nb0 nc3 c d e a (pubk b))
+          (enc nb1 nd2 d c e a (pubk b)) (enc nc0 nd3 d e a b (pubk c))
+          (pubk e)))
+      (send
+        (enc na3 ne0 e b c d (enc na0 nb3 b c d e (pubk a))
+          (enc na1 nc2 c b d e (pubk a)) (enc na2 nd1 d e b c (pubk a))
+          (enc nb0 nc3 c d e a (pubk b)) (enc nb1 nd2 d c e a (pubk b))
+          (enc nb2 ne1 e a c d (pubk b)) (enc nc0 nd3 d e a b (pubk c))
+          (enc nc1 ne2 e a b d (pubk c)) (enc nd0 ne3 e a b c (pubk d))
+          (pubk a)))
+      (recv
+        (enc ne3 (enc ne0 (pubk e)) (enc ne1 (pubk e))
+          (enc ne2 (pubk e)) (pubk e))))
+    (uniq-orig ne0 ne1 ne2 ne3)))
+
+(defskeleton nsl5 (vars (a b c d e name))
+  (defstrand init 3 (a a) (b b) (c c) (d d) (e e))
+  (non-orig (privk a) (privk b) (privk c) (privk d) (privk e)))
+
+(defskeleton nsl5 (vars (a b c d e name))
+  (defstrand resp1 4 (a a) (b b) (c c) (d d) (e e))
+  (non-orig (privk a) (privk b) (privk c) (privk d) (privk e)))
+
+(defskeleton nsl5 (vars (a b c d e name))
+  (defstrand resp2 4 (a a) (b b) (c c) (d d) (e e))
+  (non-orig (privk a) (privk b) (privk c) (privk d) (privk e)))
+
+(defskeleton nsl5 (vars (a b c d e name))
+  (defstrand resp3 4 (a a) (b b) (c c) (d d) (e e))
+  (non-orig (privk a) (privk b) (privk c) (privk d) (privk e)))
+
+(defskeleton nsl5 (vars (a b c d e name))
+  (defstrand resp4 3 (a a) (b b) (c c) (d d) (e e))
+  (non-orig (privk a) (privk b) (privk c) (privk d) (privk e)))
diff --git a/tst/nsl5i.lisp b/tst/nsl5i.lisp
new file mode 100644
--- /dev/null
+++ b/tst/nsl5i.lisp
@@ -0,0 +1,64 @@
+(defprotocol nsl5i basic
+  (defrole init
+    (vars (a name) (b name) (c name) (d name) (e name) (na text) (nb text) (nc text) (nd text) (ne text))
+    (trace
+      (send (enc (cat a b c d e (enc (enc (enc na (pubk e)) (pubk d)) (pubk c))) (pubk b)))
+      (recv (enc (cat a b c d e na (enc nb (pubk a)) (enc (enc nc (pubk b)) (pubk a)) (enc (enc (enc nd (pubk c)) (pubk b)) (pubk a)) (enc (enc (enc ne (pubk d)) (pubk c)) (pubk b))) (pubk a)))
+      (send (enc (cat nb (enc nc (pubk b)) (enc (enc nd (pubk c)) (pubk b)) (enc (enc (enc ne (pubk d)) (pubk c)) (pubk b))) (pubk b))))
+      (uniq-orig na))
+  (defrole resp1
+    (vars (a name) (b name) (c name) (d name) (e name) (na text) (nb text) (nc text) (nd text) (ne text))
+    (trace
+      (recv (enc (cat a b c d e (enc (enc (enc na (pubk e)) (pubk d)) (pubk c))) (pubk b)))
+      (send (enc (cat a b c d e (enc (enc (enc na (pubk e)) (pubk d)) (pubk c)) (enc (enc (enc nb (pubk a)) (pubk e)) (pubk d))) (pubk c)))
+      (recv (enc (cat nb (enc nc (pubk b)) (enc (enc nd (pubk c)) (pubk b)) (enc (enc (enc ne (pubk d)) (pubk c)) (pubk b))) (pubk b)))
+      (send (enc (cat nc (enc nd (pubk c)) (enc (enc ne (pubk d)) (pubk c))) (pubk c))))
+      (uniq-orig nb))
+  (defrole resp2
+    (vars (a name) (b name) (c name) (d name) (e name) (na text) (nb text) (nc text) (nd text) (ne text))
+    (trace
+      (recv (enc (cat a b c d e (enc (enc (enc na (pubk e)) (pubk d)) (pubk c)) (enc (enc (enc nb (pubk a)) (pubk e)) (pubk d))) (pubk c)))
+      (send (enc (cat a b c d e (enc (enc na (pubk e)) (pubk d)) (enc (enc (enc nb (pubk a)) (pubk e)) (pubk d)) (enc (enc (enc nc (pubk b)) (pubk a)) (pubk e))) (pubk d)))
+      (recv (enc (cat nc (enc nd (pubk c)) (enc (enc ne (pubk d)) (pubk c))) (pubk c)))
+      (send (enc (cat nd (enc ne (pubk d))) (pubk d))))
+      (uniq-orig nc))
+  (defrole resp3
+    (vars (a name) (b name) (c name) (d name) (e name) (na text) (nb text) (nc text) (nd text) (ne text))
+    (trace
+      (recv (enc (cat a b c d e (enc (enc na (pubk e)) (pubk d)) (enc (enc (enc nb (pubk a)) (pubk e)) (pubk d)) (enc (enc (enc nc (pubk b)) (pubk a)) (pubk e))) (pubk d)))
+      (send (enc (cat a b c d e (enc na (pubk e)) (enc (enc nb (pubk a)) (pubk e)) (enc (enc (enc nc (pubk b)) (pubk a)) (pubk e)) (enc (enc (enc nd (pubk c)) (pubk b)) (pubk a))) (pubk e)))
+      (recv (enc (cat nd (enc ne (pubk d))) (pubk d)))
+      (send (enc ne (pubk e))))
+      (uniq-orig nd))
+  (defrole resp4
+    (vars (a name) (b name) (c name) (d name) (e name) (na text) (nb text) (nc text) (nd text) (ne text))
+    (trace
+      (recv (enc (cat a b c d e (enc na (pubk e)) (enc (enc nb (pubk a)) (pubk e)) (enc (enc (enc nc (pubk b)) (pubk a)) (pubk e)) (enc (enc (enc nd (pubk c)) (pubk b)) (pubk a))) (pubk e)))
+      (send (enc (cat a b c d e na (enc nb (pubk a)) (enc (enc nc (pubk b)) (pubk a)) (enc (enc (enc nd (pubk c)) (pubk b)) (pubk a)) (enc (enc (enc ne (pubk d)) (pubk c)) (pubk b))) (pubk a)))
+      (recv (enc ne (pubk e))))
+      (uniq-orig ne)))
+
+(defskeleton nsl5i
+  (vars (a name) (b name) (c name) (d name) (e name) (na text) (nb text) (nc text) (nd text) (ne text))
+  (defstrand init 3 (a a) (b b) (c c) (d d) (e e))
+  (non-orig (privk a) (privk b) (privk c) (privk d) (privk e)))
+
+(defskeleton nsl5i
+  (vars (a name) (b name) (c name) (d name) (e name) (na text) (nb text) (nc text) (nd text) (ne text))
+  (defstrand resp1 4 (a a) (b b) (c c) (d d) (e e))
+  (non-orig (privk a) (privk b) (privk c) (privk d) (privk e)))
+
+(defskeleton nsl5i
+  (vars (a name) (b name) (c name) (d name) (e name) (na text) (nb text) (nc text) (nd text) (ne text))
+  (defstrand resp2 4 (a a) (b b) (c c) (d d) (e e))
+  (non-orig (privk a) (privk b) (privk c) (privk d) (privk e)))
+
+(defskeleton nsl5i
+  (vars (a name) (b name) (c name) (d name) (e name) (na text) (nb text) (nc text) (nd text) (ne text))
+  (defstrand resp3 4 (a a) (b b) (c c) (d d) (e e))
+  (non-orig (privk a) (privk b) (privk c) (privk d) (privk e)))
+
+(defskeleton nsl5i
+  (vars (a name) (b name) (c name) (d name) (e name) (na text) (nb text) (nc text) (nd text) (ne text))
+  (defstrand resp4 3 (a a) (b b) (c c) (d d) (e e))
+  (non-orig (privk a) (privk b) (privk c) (privk d) (privk e)))
diff --git a/tst/nsl5resp3.lisp b/tst/nsl5resp3.lisp
new file mode 100644
--- /dev/null
+++ b/tst/nsl5resp3.lisp
@@ -0,0 +1,131 @@
+(defprotocol nsl5 basic
+  (defrole init
+    (vars (a b c d e name)
+      (na0 na1 na2 na3 nb0 nb1 nb2 nb3 nc0 nc1 nc2 nc3 nd0 nd1 nd2 nd3
+        ne0 ne1 ne2 ne3 text))
+    (trace
+      (send
+        (enc na0 a c d e (enc na1 a b d e (pubk c))
+          (enc na2 a b c e (pubk d)) (enc na3 a b c d (pubk e))
+          (pubk b)))
+      (recv
+        (enc na3 ne0 e b c d (enc na0 nb3 b c d e (pubk a))
+          (enc na1 nc2 c b d e (pubk a)) (enc na2 nd1 d e b c (pubk a))
+          (enc nb0 nc3 c d e a (pubk b)) (enc nb1 nd2 d c e a (pubk b))
+          (enc nb2 ne1 e a c d (pubk b)) (enc nc0 nd3 d e a b (pubk c))
+          (enc nc1 ne2 e a b d (pubk c)) (enc nd0 ne3 e a b c (pubk d))
+          (pubk a)))
+      (send
+        (enc nb3 (enc nb0 nc3 c d e a (pubk b))
+          (enc nb1 nd2 d c e a (pubk b)) (enc nb2 ne1 e a c d (pubk b))
+          (enc nc0 nd3 d e a b (pubk c)) (enc nc1 ne2 e a b d (pubk c))
+          (enc nc2 (pubk c)) (enc nd0 ne3 e a b c (pubk d))
+          (enc nd1 (pubk d)) (enc ne0 (pubk e)) (pubk b))))
+    (uniq-orig na0 na1 na2 na3))
+  (defrole resp1
+    (vars (a b c d e name)
+      (na0 na1 na2 na3 nb0 nb1 nb2 nb3 nc0 nc1 nc2 nc3 nd0 nd1 nd2 nd3
+        ne0 ne1 ne2 ne3 text))
+    (trace
+      (recv
+        (enc na0 a c d e (enc na1 a b d e (pubk c))
+          (enc na2 a b c e (pubk d)) (enc na3 a b c d (pubk e))
+          (pubk b)))
+      (send
+        (enc nb0 b d e a (enc na1 a b d e (pubk c))
+          (enc na2 a b c e (pubk d)) (enc nb1 b c e a (pubk d))
+          (enc na3 a b c d (pubk e)) (enc nb2 b c d a (pubk e))
+          (enc na0 nb3 b c d e (pubk a)) (pubk c)))
+      (recv
+        (enc nb3 (enc nb0 nc3 c d e a (pubk b))
+          (enc nb1 nd2 d c e a (pubk b)) (enc nb2 ne1 e a c d (pubk b))
+          (enc nc0 nd3 d e a b (pubk c)) (enc nc1 ne2 e a b d (pubk c))
+          (enc nc2 (pubk c)) (enc nd0 ne3 e a b c (pubk d))
+          (enc nd1 (pubk d)) (enc ne0 (pubk e)) (pubk b)))
+      (send
+        (enc nc3 (enc nc0 nd3 d e a b (pubk c))
+          (enc nc1 ne2 e a b d (pubk c)) (enc nc2 (pubk c))
+          (enc nd0 ne3 e a b c (pubk d)) (enc nd1 (pubk d))
+          (enc nd2 (pubk d)) (enc ne0 (pubk e)) (enc ne1 (pubk e))
+          (pubk c))))
+    (uniq-orig nb0 nb1 nb2 nb3))
+  (defrole resp2
+    (vars (a b c d e name)
+      (na0 na1 na2 na3 nb0 nb1 nb2 nb3 nc0 nc1 nc2 nc3 nd0 nd1 nd2 nd3
+        ne0 ne1 ne2 ne3 text))
+    (trace
+      (recv
+        (enc nb0 b d e a (enc na1 a b d e (pubk c))
+          (enc na2 a b c e (pubk d)) (enc nb1 b c e a (pubk d))
+          (enc na3 a b c d (pubk e)) (enc nb2 b c d a (pubk e))
+          (enc na0 nb3 b c d e (pubk a)) (pubk c)))
+      (send
+        (enc nc0 c e a b (enc na2 a b c e (pubk d))
+          (enc nb1 b c e a (pubk d)) (enc na3 a b c d (pubk e))
+          (enc nb2 b c d a (pubk e)) (enc nc1 c d a b (pubk e))
+          (enc na0 nb3 b c d e (pubk a)) (enc na1 nc2 c b d e (pubk a))
+          (enc nb0 nc3 c d e a (pubk b)) (pubk d)))
+      (recv
+        (enc nc3 (enc nc0 nd3 d e a b (pubk c))
+          (enc nc1 ne2 e a b d (pubk c)) (enc nc2 (pubk c))
+          (enc nd0 ne3 e a b c (pubk d)) (enc nd1 (pubk d))
+          (enc nd2 (pubk d)) (enc ne0 (pubk e)) (enc ne1 (pubk e))
+          (pubk c)))
+      (send
+        (enc nd3 (enc nd0 ne3 e a b c (pubk d)) (enc nd1 (pubk d))
+          (enc nd2 (pubk d)) (enc ne0 (pubk e)) (enc ne1 (pubk e))
+          (enc ne2 (pubk e)) (pubk d))))
+    (uniq-orig nc0 nc1 nc2 nc3))
+  (defrole resp3
+    (vars (a b c d e name)
+      (na0 na1 na2 na3 nb0 nb1 nb2 nb3 nc0 nc1 nc2 nc3 nd0 nd1 nd2 nd3
+        ne0 ne1 ne2 ne3 text))
+    (trace
+      (recv
+        (enc nc0 c e a b (enc na2 a b c e (pubk d))
+          (enc nb1 b c e a (pubk d)) (enc na3 a b c d (pubk e))
+          (enc nb2 b c d a (pubk e)) (enc nc1 c d a b (pubk e))
+          (enc na0 nb3 b c d e (pubk a)) (enc na1 nc2 c b d e (pubk a))
+          (enc nb0 nc3 c d e a (pubk b)) (pubk d)))
+      (send
+        (enc nd0 d a b c (enc na3 a b c d (pubk e))
+          (enc nb2 b c d a (pubk e)) (enc nc1 c d a b (pubk e))
+          (enc na0 nb3 b c d e (pubk a)) (enc na1 nc2 c b d e (pubk a))
+          (enc na2 nd1 d e b c (pubk a)) (enc nb0 nc3 c d e a (pubk b))
+          (enc nb1 nd2 d c e a (pubk b)) (enc nc0 nd3 d e a b (pubk c))
+          (pubk e)))
+      (recv
+        (enc nd3 (enc nd0 ne3 e a b c (pubk d)) (enc nd1 (pubk d))
+          (enc nd2 (pubk d)) (enc ne0 (pubk e)) (enc ne1 (pubk e))
+          (enc ne2 (pubk e)) (pubk d)))
+      (send
+        (enc ne3 (enc ne0 (pubk e)) (enc ne1 (pubk e))
+          (enc ne2 (pubk e)) (pubk e))))
+    (uniq-orig nd0 nd1 nd2 nd3))
+  (defrole resp4
+    (vars (a b c d e name)
+      (na0 na1 na2 na3 nb0 nb1 nb2 nb3 nc0 nc1 nc2 nc3 nd0 nd1 nd2 nd3
+        ne0 ne1 ne2 ne3 text))
+    (trace
+      (recv
+        (enc nd0 d a b c (enc na3 a b c d (pubk e))
+          (enc nb2 b c d a (pubk e)) (enc nc1 c d a b (pubk e))
+          (enc na0 nb3 b c d e (pubk a)) (enc na1 nc2 c b d e (pubk a))
+          (enc na2 nd1 d e b c (pubk a)) (enc nb0 nc3 c d e a (pubk b))
+          (enc nb1 nd2 d c e a (pubk b)) (enc nc0 nd3 d e a b (pubk c))
+          (pubk e)))
+      (send
+        (enc na3 ne0 e b c d (enc na0 nb3 b c d e (pubk a))
+          (enc na1 nc2 c b d e (pubk a)) (enc na2 nd1 d e b c (pubk a))
+          (enc nb0 nc3 c d e a (pubk b)) (enc nb1 nd2 d c e a (pubk b))
+          (enc nb2 ne1 e a c d (pubk b)) (enc nc0 nd3 d e a b (pubk c))
+          (enc nc1 ne2 e a b d (pubk c)) (enc nd0 ne3 e a b c (pubk d))
+          (pubk a)))
+      (recv
+        (enc ne3 (enc ne0 (pubk e)) (enc ne1 (pubk e))
+          (enc ne2 (pubk e)) (pubk e))))
+    (uniq-orig ne0 ne1 ne2 ne3)))
+
+(defskeleton nsl5 (vars (a b c d e name))
+  (defstrand resp3 4 (a a) (b b) (c c) (d d) (e e))
+  (non-orig (privk a) (privk b) (privk c) (privk d) (privk e)))
diff --git a/tst/nslsk.scm b/tst/nslsk.scm
new file mode 100644
--- /dev/null
+++ b/tst/nslsk.scm
@@ -0,0 +1,51 @@
+(herald "Needham-Schroeder-Lowe Protocol with symmetric encryption")
+
+(defprotocol nslsk basic
+  (defrole init (vars (a b name) (n text) (k skey) (t text))
+    (trace
+     (send (enc n a (pubk b)))
+     (recv (enc n k b (pubk a)))
+     (send (enc t k))))
+  (defrole resp (vars (b a name) (n text) (k skey) (t text))
+    (trace
+     (recv (enc n a (pubk b)))
+     (send (enc n k b (pubk a)))
+     (recv (enc t k)))))
+
+(defskeleton nslsk
+  (vars (a name) (k skey))
+  (defstrand resp 3 (a a) (k k))
+  (non-orig (privk a))
+  (uniq-orig k))
+
+(defskeleton nslsk
+  (vars (b name) (n text))
+  (defstrand init 3 (b b) (n n))
+  (non-orig (privk b))
+  (uniq-orig n))
+
+;; Use a tag as a term.
+
+(defprotocol nslsk-tag-term basic
+  (defrole init (vars (a b name) (n text) (k skey))
+    (trace
+     (send (enc n a (pubk b)))
+     (recv (enc n k b (pubk a)))
+     (send (enc "t" k))))
+  (defrole resp (vars (b a name) (n text) (k skey))
+    (trace
+     (recv (enc n a (pubk b)))
+     (send (enc n k b (pubk a)))
+     (recv (enc "t" k)))))
+
+(defskeleton nslsk-tag-term
+  (vars (a name) (k skey))
+  (defstrand resp 3 (a a) (k k))
+  (non-orig (privk a))
+  (uniq-orig k))
+
+(defskeleton nslsk-tag-term
+  (vars (b name) (n text))
+  (defstrand init 3 (b b) (n n))
+  (non-orig (privk b))
+  (uniq-orig n))
diff --git a/tst/nslsk.tst b/tst/nslsk.tst
new file mode 100644
--- /dev/null
+++ b/tst/nslsk.tst
@@ -0,0 +1,280 @@
+(herald "Needham-Schroeder-Lowe Protocol with symmetric encryption")
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/nslsk.scm")
+
+(defprotocol nslsk basic
+  (defrole init
+    (vars (a b name) (n text) (k skey) (t text))
+    (trace (send (enc n a (pubk b))) (recv (enc n k b (pubk a)))
+      (send (enc t k))))
+  (defrole resp
+    (vars (b a name) (n text) (k skey) (t text))
+    (trace (recv (enc n a (pubk b))) (send (enc n k b (pubk a)))
+      (recv (enc t k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton nslsk
+  (vars (k skey) (n t text) (a b name))
+  (defstrand resp 3 (k k) (n n) (t t) (b b) (a a))
+  (non-orig (privk a))
+  (uniq-orig k)
+  (traces
+    ((recv (enc n a (pubk b))) (send (enc n k b (pubk a)))
+      (recv (enc t k))))
+  (label 0)
+  (unrealized (0 2))
+  (origs (k (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton nslsk
+  (vars (k skey) (n t n-0 text) (a b a-0 b-0 name))
+  (defstrand resp 3 (k k) (n n) (t t) (b b) (a a))
+  (defstrand init 3 (k k) (n n-0) (t t) (a a-0) (b b-0))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 3) (enc t k) (0 2))
+  (traces
+    ((recv (enc n a (pubk b))) (send (enc n k b (pubk a)))
+      (recv (enc t k)))
+    ((send (enc n-0 a-0 (pubk b-0))) (recv (enc n-0 k b-0 (pubk a-0)))
+      (send (enc t k))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nslsk
+  (vars (k skey) (n t text) (a b name))
+  (defstrand resp 3 (k k) (n n) (t t) (b b) (a a))
+  (deflistener k)
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig k)
+  (operation encryption-test (added-listener k) (enc t k) (0 2))
+  (traces
+    ((recv (enc n a (pubk b))) (send (enc n k b (pubk a)))
+      (recv (enc t k))) ((recv k) (send k)))
+  (label 2)
+  (parent 0)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton nslsk
+  (vars (k skey) (n t text) (a b name))
+  (defstrand resp 3 (k k) (n n) (t t) (b b) (a a))
+  (defstrand init 3 (k k) (n n) (t t) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig k)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (n-0 n)) k (1 1)
+    (enc n k b (pubk a)))
+  (traces
+    ((recv (enc n a (pubk b))) (send (enc n k b (pubk a)))
+      (recv (enc t k)))
+    ((send (enc n a (pubk b))) (recv (enc n k b (pubk a)))
+      (send (enc t k))))
+  (label 3)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (k k) (b b) (n n) (t t))))
+  (origs (k (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol nslsk basic
+  (defrole init
+    (vars (a b name) (n text) (k skey) (t text))
+    (trace (send (enc n a (pubk b))) (recv (enc n k b (pubk a)))
+      (send (enc t k))))
+  (defrole resp
+    (vars (b a name) (n text) (k skey) (t text))
+    (trace (recv (enc n a (pubk b))) (send (enc n k b (pubk a)))
+      (recv (enc t k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton nslsk
+  (vars (k skey) (n t text) (b a name))
+  (defstrand init 3 (k k) (n n) (t t) (a a) (b b))
+  (non-orig (privk b))
+  (uniq-orig n)
+  (traces
+    ((send (enc n a (pubk b))) (recv (enc n k b (pubk a)))
+      (send (enc t k))))
+  (label 4)
+  (unrealized (0 1))
+  (origs (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nslsk
+  (vars (k k-0 skey) (n t text) (b a name))
+  (defstrand init 3 (k k) (n n) (t t) (a a) (b b))
+  (defstrand resp 2 (k k-0) (n n) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-orig n)
+  (operation nonce-test (added-strand resp 2) n (0 1)
+    (enc n a (pubk b)))
+  (traces
+    ((send (enc n a (pubk b))) (recv (enc n k b (pubk a)))
+      (send (enc t k)))
+    ((recv (enc n a (pubk b))) (send (enc n k-0 b (pubk a)))))
+  (label 5)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (n n) (a a) (k k) (t t))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol nslsk-tag-term basic
+  (defrole init
+    (vars (a b name) (n text) (k skey))
+    (trace (send (enc n a (pubk b))) (recv (enc n k b (pubk a)))
+      (send (enc "t" k))))
+  (defrole resp
+    (vars (b a name) (n text) (k skey))
+    (trace (recv (enc n a (pubk b))) (send (enc n k b (pubk a)))
+      (recv (enc "t" k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton nslsk-tag-term
+  (vars (k skey) (n text) (a b name))
+  (defstrand resp 3 (k k) (n n) (b b) (a a))
+  (non-orig (privk a))
+  (uniq-orig k)
+  (traces
+    ((recv (enc n a (pubk b))) (send (enc n k b (pubk a)))
+      (recv (enc "t" k))))
+  (label 6)
+  (unrealized (0 2))
+  (origs (k (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton nslsk-tag-term
+  (vars (k skey) (n n-0 text) (a b a-0 b-0 name))
+  (defstrand resp 3 (k k) (n n) (b b) (a a))
+  (defstrand init 3 (k k) (n n-0) (a a-0) (b b-0))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 3) (enc "t" k) (0 2))
+  (traces
+    ((recv (enc n a (pubk b))) (send (enc n k b (pubk a)))
+      (recv (enc "t" k)))
+    ((send (enc n-0 a-0 (pubk b-0))) (recv (enc n-0 k b-0 (pubk a-0)))
+      (send (enc "t" k))))
+  (label 7)
+  (parent 6)
+  (unrealized (1 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nslsk-tag-term
+  (vars (k skey) (n text) (a b name))
+  (defstrand resp 3 (k k) (n n) (b b) (a a))
+  (deflistener k)
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig k)
+  (operation encryption-test (added-listener k) (enc "t" k) (0 2))
+  (traces
+    ((recv (enc n a (pubk b))) (send (enc n k b (pubk a)))
+      (recv (enc "t" k))) ((recv k) (send k)))
+  (label 8)
+  (parent 6)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton nslsk-tag-term
+  (vars (k skey) (n text) (a b name))
+  (defstrand resp 3 (k k) (n n) (b b) (a a))
+  (defstrand init 3 (k k) (n n) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig k)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (n-0 n)) k (1 1)
+    (enc n k b (pubk a)))
+  (traces
+    ((recv (enc n a (pubk b))) (send (enc n k b (pubk a)))
+      (recv (enc "t" k)))
+    ((send (enc n a (pubk b))) (recv (enc n k b (pubk a)))
+      (send (enc "t" k))))
+  (label 9)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (k k) (b b) (n n))))
+  (origs (k (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol nslsk-tag-term basic
+  (defrole init
+    (vars (a b name) (n text) (k skey))
+    (trace (send (enc n a (pubk b))) (recv (enc n k b (pubk a)))
+      (send (enc "t" k))))
+  (defrole resp
+    (vars (b a name) (n text) (k skey))
+    (trace (recv (enc n a (pubk b))) (send (enc n k b (pubk a)))
+      (recv (enc "t" k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton nslsk-tag-term
+  (vars (k skey) (n text) (b a name))
+  (defstrand init 3 (k k) (n n) (a a) (b b))
+  (non-orig (privk b))
+  (uniq-orig n)
+  (traces
+    ((send (enc n a (pubk b))) (recv (enc n k b (pubk a)))
+      (send (enc "t" k))))
+  (label 10)
+  (unrealized (0 1))
+  (origs (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton nslsk-tag-term
+  (vars (k k-0 skey) (n text) (b a name))
+  (defstrand init 3 (k k) (n n) (a a) (b b))
+  (defstrand resp 2 (k k-0) (n n) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-orig n)
+  (operation nonce-test (added-strand resp 2) n (0 1)
+    (enc n a (pubk b)))
+  (traces
+    ((send (enc n a (pubk b))) (recv (enc n k b (pubk a)))
+      (send (enc "t" k)))
+    ((recv (enc n a (pubk b))) (send (enc n k-0 b (pubk a)))))
+  (label 11)
+  (parent 10)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (n n) (a a) (k k))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/open-closed-multiloc.scm b/tst/open-closed-multiloc.scm
new file mode 100644
--- /dev/null
+++ b/tst/open-closed-multiloc.scm
@@ -0,0 +1,166 @@
+(herald open-closed
+	;; (try-old-strands)
+	;; 	(check-nonces)
+	;; 	(reverse-nodes)
+	(bound 44))
+
+(defmacro (dev-key-state d o k)
+  (cat "st-k" d o k))
+
+(defmacro (opened o)
+  (cat o o))
+
+(defmacro (closed o) o)
+
+(defmacro (dev-state-opened d o)
+  (cat "st" d (opened o)))
+
+(defmacro (dev-state-closed d o)
+  (cat "st" d (closed o)))
+
+(defmacro (dev-state-any d o any)
+  (cat "st" d any))
+
+(defprotocol open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan) (lk ls locn))
+    (trace
+     (recv start-ch (cat "power-up" d o k))
+     (load lk old)
+     (load ls old1)
+     (stor ls (dev-state-closed d o))
+     (stor lk (dev-key-state d o k))
+     (send (enc "up" k)))
+    (auth start-ch))
+
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace
+     (send start-ch (cat "power-up" d o k))
+     (recv (enc "up" k)))
+    (conf start-ch))
+
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace
+     (send (enc "open" d o n k))
+     (recv n)))
+
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace
+     (send (enc "close" d o n k))
+     (recv n)))
+
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace
+     (load lk (dev-key-state d o k))
+     (recv (enc "open" d o n k))
+     (load ls (dev-state-any d o any))
+     (stor ls (dev-state-opened d o))
+     (send n)))
+
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace
+     (load lk (dev-key-state d o k))
+     (recv (enc "close" d o n k))
+     (load ls (dev-state-any d o any))
+     (stor ls (dev-state-closed d o))
+     (send n)))
+
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace
+     (load lk (dev-key-state d o k))
+     (recv (enc "may I pass" k))
+     (load ls (dev-state-opened d o))
+     (send (enc "you may pass" n k)))
+    (uniq-orig n))
+
+  (defrole user-pass
+    (vars (k skey) (n text) (d o name) (l locn))
+    (trace
+     (send (enc "may I pass" k))
+     (recv (enc "you may pass" k))))
+
+  (defrule gen-state-close
+    (forall ((z strd) (d o name) (k skey))
+	    (implies
+	     (and (p "dev-close" z 1)
+		  (p "dev-close" "d" z d)
+		  (p "dev-close" "o" z o)
+		  (p "dev-close" "k" z k)
+		  (p "dev-close" "any" z (opened o)))
+	     (gen-st (dev-state-opened d o)))))
+
+  (defrule gen-state-pass
+    (forall ((z strd) (d o name) (k skey))
+	    (implies
+	     (and (p "dev-pass" z 1)
+		  (p "dev-pass" "d" z d)
+		  (p "dev-pass" "o" z o)
+		  (p "dev-pass" "k" z k))
+	     (gen-st (dev-state-opened d o)))))
+
+   (defrule power-deliver-once
+     (forall
+      ((z1 z2 strd) (k skey))
+      (implies
+       (and (p "dev-up" z1 2)
+ 	   (p "dev-up" z2 2)
+ 	   (p "dev-up" "k" z1 k)
+ 	   (p "dev-up" "k" z2 k))
+       (= z1 z2))))
+  )
+
+(defskeleton open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k))
+  (deflistener k)
+  (uniq-orig k))
+
+(defskeleton open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  ;; (defstrand owner-power-dev 2 (k k))
+  (defstrand dev-pass 4 (k k))
+  ;; (uniq-orig k)
+  )
+
+(defskeleton open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k))
+  (defstrand dev-pass 4 (k k))
+  (uniq-orig k))
+
+(comment
+ (defskeleton open-closed
+   (vars (any old old1 mesg) (n n-0 text) (d o name) (k k-0 skey)
+	 (start-ch chan) (ls lk lk-0 ls-0 locn))
+   (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+   (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk ;-0
+						     ) (ls ls))
+   (defstrand user-pass 1 (k k))
+   (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+     (ls ls))
+   (defstrand dev-up 6 (old old) (old1 old1) (d d) (o o) (k k)
+     (start-ch start-ch) (lk lk-0) (ls ls-0))
+   (precedes ((0 0) (4 0)) ((2 0) (1 1)) ((3 3) (1 2)) ((4 2) (1 0))
+	     ((4 5) (0 1)))
+   (uniq-orig n k))
+
+ (defskeleton open-closed
+   (vars (any old old1 mesg) (n n-0 text) (d o name) (k k-0 skey)
+	 (start-ch chan) (ls lk ls-0 locn))
+   (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+   (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+   (defstrand user-pass 1 (k k))
+   (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+     (ls ls))
+   (defstrand dev-up 6 (old old) (old1 old1) (d d) (o o) (k k)
+     (start-ch start-ch) (lk lk) (ls ls	; -0
+				     ))
+   (precedes ((0 0) (4 0)) ((2 0) (1 1)) ((3 3) (1 2)) ((4 2) (1 0))
+	     ((4 5) (0 1)))
+   (uniq-orig n k)))
diff --git a/tst/open-closed-multiloc.tst b/tst/open-closed-multiloc.tst
new file mode 100644
--- /dev/null
+++ b/tst/open-closed-multiloc.tst
@@ -0,0 +1,844 @@
+(herald open-closed (bound 44))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/open-closed-multiloc.scm")
+(comment "Strand count bounded at 44")
+
+(defprotocol open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (load ls old1) (stor ls (cat "st" d o))
+      (stor lk (cat "st-k" d o k)) (send (enc "up" k)))
+    (auth start-ch))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "open" d o n k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o o)) (send n)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "close" d o n k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o)) (send n)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat "st" d o o)) (send (enc "you may pass" n k)))
+    (uniq-orig n))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule gen-state-close
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-close" z (idx 1)) (p "dev-close" "d" z d)
+          (p "dev-close" "o" z o) (p "dev-close" "k" z k)
+          (p "dev-close" "any" z (cat o o)))
+        (gen-st (cat "st" d o o)))))
+  (defrule gen-state-pass
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "d" z d)
+          (p "dev-pass" "o" z o) (p "dev-pass" "k" z k))
+        (gen-st (cat "st" d o o)))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-2
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 4)) (prec z (idx 3) z1 i))
+        (or (= z z1)
+          (and (p "dev-up" z (idx 5)) (prec z (idx 4) z1 i))))))
+  (defgenrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1)))))))
+
+(defskeleton open-closed
+  (vars (k skey) (d o name) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (uniq-orig k)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k)))
+  (label 0)
+  (unrealized (0 1) (1 0))
+  (preskeleton)
+  (origs (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton open-closed
+  (vars (k skey) (d o name) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k)))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1) (1 0))
+  (origs (k (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 mesg) (k skey) (d o name) (pt pt-0 pt-1 pt-2 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (auth start-ch)
+  (rule trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    trRl_dev-up-at-4)
+  (operation nonce-test (added-strand dev-up 5) k (1 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt old))
+      (load ls (cat pt-0 old1)) (stor ls (cat pt-1 "st" d o))
+      (stor lk (cat pt-2 "st-k" d o k))))
+  (label 2)
+  (parent 1)
+  (seen 2)
+  (unrealized (0 1) (1 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (load ls old1) (stor ls (cat "st" d o))
+      (stor lk (cat "st-k" d o k)) (send (enc "up" k)))
+    (auth start-ch))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "open" d o n k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o o)) (send n)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "close" d o n k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o)) (send n)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat "st" d o o)) (send (enc "you may pass" n k)))
+    (uniq-orig n))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule gen-state-close
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-close" z (idx 1)) (p "dev-close" "d" z d)
+          (p "dev-close" "o" z o) (p "dev-close" "k" z k)
+          (p "dev-close" "any" z (cat o o)))
+        (gen-st (cat "st" d o o)))))
+  (defrule gen-state-pass
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "d" z d)
+          (p "dev-pass" "o" z o) (p "dev-pass" "k" z k))
+        (gen-st (cat "st" d o o)))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-2
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 4)) (prec z (idx 3) z1 i))
+        (or (= z z1)
+          (and (p "dev-up" z (idx 5)) (prec z (idx 4) z1 i))))))
+  (defgenrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1)))))))
+
+(defskeleton open-closed
+  (vars (k skey) (n text) (d o name) (pt pt-0 pval) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (uniq-orig n)
+  (traces
+    ((load lk (cat pt "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d o o)) (send (enc "you may pass" n k))))
+  (label 3)
+  (realized)
+  (origs (n (0 3)))
+  (comment "Not closed under rules"))
+
+(defskeleton open-closed
+  (vars (k skey) (n text) (d o name) (pt pt-0 pval) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (uniq-orig n)
+  (gen-st (cat "st" d o o))
+  (rule gen-state-pass)
+  (traces
+    ((load lk (cat pt "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d o o)) (send (enc "you may pass" n k))))
+  (label 4)
+  (parent 3)
+  (unrealized (0 2))
+  (origs (n (0 3)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (any mesg) (k k-0 skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pval) (lk ls lk-0 locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk-0)
+    (ls ls))
+  (precedes ((1 3) (0 2)))
+  (uniq-orig n)
+  (gen-st (cat "st" d o o))
+  (leads-to ((1 3) (0 2)))
+  (rule trRl_dev-open-at-2 trRl_dev-open-at-3)
+  (operation channel-test (added-strand dev-open 4)
+    (ch-msg ls (cat pt-0 "st" d o o)) (0 2))
+  (traces
+    ((load lk (cat pt "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d o o)) (send (enc "you may pass" n k)))
+    ((load lk-0 (cat pt-1 "st-k" d o k-0))
+      (recv (enc "open" d o n-0 k-0)) (load ls (cat pt-2 "st" d any))
+      (stor ls (cat pt-0 "st" d o o))))
+  (label 5)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((k k) (n n) (d d) (o o) (lk lk) (ls ls))))
+  (origs (pt-0 (1 3)) (n (0 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (load ls old1) (stor ls (cat "st" d o))
+      (stor lk (cat "st-k" d o k)) (send (enc "up" k)))
+    (auth start-ch))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "open" d o n k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o o)) (send n)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "close" d o n k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o)) (send n)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat "st" d o o)) (send (enc "you may pass" n k)))
+    (uniq-orig n))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule gen-state-close
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-close" z (idx 1)) (p "dev-close" "d" z d)
+          (p "dev-close" "o" z o) (p "dev-close" "k" z k)
+          (p "dev-close" "any" z (cat o o)))
+        (gen-st (cat "st" d o o)))))
+  (defrule gen-state-pass
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "d" z d)
+          (p "dev-pass" "o" z o) (p "dev-pass" "k" z k))
+        (gen-st (cat "st" d o o)))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-2
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 4)) (prec z (idx 3) z1 i))
+        (or (= z z1)
+          (and (p "dev-up" z (idx 5)) (prec z (idx 4) z1 i))))))
+  (defgenrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1)))))))
+
+(defskeleton open-closed
+  (vars (k skey) (n text) (d o d-0 o-0 name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (uniq-orig k n)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0))
+      (send (enc "you may pass" n k))))
+  (label 6)
+  (unrealized (0 1) (1 0) (1 1))
+  (preskeleton)
+  (origs (n (1 3)) (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton open-closed
+  (vars (k skey) (n text) (d o d-0 o-0 name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k n)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0))
+      (send (enc "you may pass" n k))))
+  (label 7)
+  (parent 6)
+  (unrealized (0 1) (1 0) (1 1))
+  (origs (n (1 3)) (k (0 0)))
+  (comment "Not closed under rules"))
+
+(defskeleton open-closed
+  (vars (k skey) (n text) (d o d-0 o-0 name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d-0 o-0 o-0))
+  (conf start-ch)
+  (rule gen-state-pass)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0))
+      (send (enc "you may pass" n k))))
+  (label 8)
+  (parent 7)
+  (unrealized (0 1) (1 0) (1 1) (1 2))
+  (origs (n (1 3)) (k (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 mesg) (k skey) (n text) (d o d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan)
+    (lk ls lk-0 ls-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk-0) (ls ls-0))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d-0 o-0 o-0))
+  (conf start-ch)
+  (auth start-ch)
+  (rule trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    trRl_dev-up-at-4)
+  (operation nonce-test (added-strand dev-up 5) k (1 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0))
+      (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk-0 (cat pt-1 old))
+      (load ls-0 (cat pt-2 old1)) (stor ls-0 (cat pt-3 "st" d o))
+      (stor lk-0 (cat pt-4 "st-k" d o k))))
+  (label 9)
+  (parent 8)
+  (seen 9)
+  (unrealized (0 1) (1 0) (1 1) (1 2))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 mesg) (k skey) (n text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (ls lk ls-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls-0))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o))
+  (conf start-ch)
+  (auth start-ch)
+  (leads-to ((2 4) (1 0)))
+  (rule trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    trRl_dev-up-at-4)
+  (operation nonce-test
+    (contracted (d-0 d) (o-0 o) (lk-0 lk) (pt-4 pt-3)) k (1 0)
+    (ch-msg start-ch (cat "power-up" d o k))
+    (ch-msg lk (cat pt-3 "st-k" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-3 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls-0 (cat pt-1 old1)) (stor ls-0 (cat pt-2 "st" d o))
+      (stor lk (cat pt-3 "st-k" d o k))))
+  (label 10)
+  (parent 9)
+  (unrealized (0 1) (1 1) (1 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 mesg) (k skey) (n text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (ls lk ls-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls-0))
+  (defstrand user-pass 1 (k k))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)) ((3 0) (1 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o))
+  (conf start-ch)
+  (auth start-ch)
+  (leads-to ((2 4) (1 0)))
+  (rule trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    trRl_dev-up-at-4)
+  (operation encryption-test (added-strand user-pass 1)
+    (enc "may I pass" k) (1 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-3 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls-0 (cat pt-1 old1)) (stor ls-0 (cat pt-2 "st" d o))
+      (stor lk (cat pt-3 "st-k" d o k))) ((send (enc "may I pass" k))))
+  (label 11)
+  (parent 10)
+  (unrealized (0 1) (1 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 mesg) (k skey) (n text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (ls lk ls-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls-0))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((2 4) (1 0)) ((3 1) (1 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o))
+  (conf start-ch)
+  (auth start-ch)
+  (leads-to ((2 4) (1 0)))
+  (rule trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    trRl_dev-up-at-4)
+  (operation encryption-test (added-listener k) (enc "may I pass" k)
+    (1 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-3 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls-0 (cat pt-1 old1)) (stor ls-0 (cat pt-2 "st" d o))
+      (stor lk (cat pt-3 "st-k" d o k))) ((recv k) (send k)))
+  (label 12)
+  (parent 10)
+  (seen 14)
+  (unrealized (0 1) (1 2) (3 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k k-0 skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk ls-0 lk-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls-0))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk-0)
+    (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)) ((3 0) (1 1)) ((4 3) (1 2)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o))
+  (conf start-ch)
+  (auth start-ch)
+  (leads-to ((2 4) (1 0)) ((4 3) (1 2)))
+  (rule trRl_dev-open-at-2 trRl_dev-open-at-3 trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-open 4)
+    (ch-msg ls (cat pt "st" d o o)) (1 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-3 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls-0 (cat pt-1 old1)) (stor ls-0 (cat pt-2 "st" d o))
+      (stor lk (cat pt-3 "st-k" d o k))) ((send (enc "may I pass" k)))
+    ((load lk-0 (cat pt-4 "st-k" d o k-0))
+      (recv (enc "open" d o n-0 k-0)) (load ls (cat pt-5 "st" d any))
+      (stor ls (cat pt "st" d o o))))
+  (label 13)
+  (parent 11)
+  (seen 15)
+  (unrealized (0 1))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 mesg) (k skey) (n text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (ls lk ls-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls-0))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)) ((2 4) (3 0)) ((3 1) (1 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o))
+  (conf start-ch)
+  (auth start-ch)
+  (leads-to ((2 4) (1 0)))
+  (rule trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    trRl_dev-up-at-4)
+  (operation nonce-test (displaced 4 2 dev-up 5) k (3 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-3 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls-0 (cat pt-1 old1)) (stor ls-0 (cat pt-2 "st" d o))
+      (stor lk (cat pt-3 "st-k" d o k))) ((recv k) (send k)))
+  (label 14)
+  (parent 12)
+  (seen 14)
+  (unrealized (0 1) (1 2) (3 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton open-closed
+  (vars (any old old1 mesg) (k k-0 skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk lk-0 ls-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk-0) (ls ls))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand dev-up 6 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk-0) (ls ls-0))
+  (precedes ((0 0) (4 0)) ((2 0) (1 1)) ((3 3) (1 2)) ((4 4) (1 0))
+    ((4 5) (0 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o))
+  (conf start-ch)
+  (auth start-ch)
+  (leads-to ((3 3) (1 2)) ((4 4) (1 0)))
+  (rule trRl_dev-open-at-2 trRl_dev-open-at-3 trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (displaced 2 5 dev-up 6) (enc "up" k)
+    (0 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk-0 (cat pt-5 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((send (enc "may I pass" k)))
+    ((load lk (cat pt-0 "st-k" d o k-0)) (recv (enc "open" d o n-0 k-0))
+      (load ls (cat pt-1 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk-0 (cat pt-2 old))
+      (load ls-0 (cat pt-3 old1)) (stor ls-0 (cat pt-4 "st" d o))
+      (stor lk-0 (cat pt-5 "st-k" d o k)) (send (enc "up" k))))
+  (label 15)
+  (parent 13)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((k k) (d d) (o o) (start-ch start-ch) (n n) (d-0 d) (o-0 o)
+        (lk lk-0) (ls ls))))
+  (origs (pt-4 (4 3)) (pt-5 (4 4)) (pt (3 3)) (n (1 3)) (k (0 0))))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k k-0 skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk ls-0 lk-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls-0))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk-0)
+    (ls ls))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((2 4) (1 0)) ((3 0) (1 1))
+    ((4 3) (1 2)) ((5 1) (0 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o))
+  (conf start-ch)
+  (auth start-ch)
+  (leads-to ((2 4) (1 0)) ((4 3) (1 2)))
+  (rule trRl_dev-open-at-2 trRl_dev-open-at-3 trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-listener k) (enc "up" k) (0 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-3 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls-0 (cat pt-1 old1)) (stor ls-0 (cat pt-2 "st" d o))
+      (stor lk (cat pt-3 "st-k" d o k))) ((send (enc "may I pass" k)))
+    ((load lk-0 (cat pt-4 "st-k" d o k-0))
+      (recv (enc "open" d o n-0 k-0)) (load ls (cat pt-5 "st" d any))
+      (stor ls (cat pt "st" d o o))) ((recv k) (send k)))
+  (label 16)
+  (parent 13)
+  (seen 17)
+  (unrealized (5 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k k-0 skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk ls-0 lk-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls-0))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk-0)
+    (ls ls))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)) ((2 4) (5 0)) ((3 0) (1 1))
+    ((4 3) (1 2)) ((5 1) (0 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o))
+  (conf start-ch)
+  (auth start-ch)
+  (leads-to ((2 4) (1 0)) ((4 3) (1 2)))
+  (rule trRl_dev-open-at-2 trRl_dev-open-at-3 trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (displaced 6 2 dev-up 5) k (5 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-3 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls-0 (cat pt-1 old1)) (stor ls-0 (cat pt-2 "st" d o))
+      (stor lk (cat pt-3 "st-k" d o k))) ((send (enc "may I pass" k)))
+    ((load lk-0 (cat pt-4 "st-k" d o k-0))
+      (recv (enc "open" d o n-0 k-0)) (load ls (cat pt-5 "st" d any))
+      (stor ls (cat pt "st" d o o))) ((recv k) (send k)))
+  (label 17)
+  (parent 16)
+  (seen 17)
+  (unrealized (5 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/tst/open-closed-tag.scm b/tst/open-closed-tag.scm
new file mode 100644
--- /dev/null
+++ b/tst/open-closed-tag.scm
@@ -0,0 +1,149 @@
+(herald open-closed
+	;; (try-old-strands)
+	;; 	(check-nonces)
+	;; 	(reverse-nodes)
+	(bound 44))
+
+(defmacro (dev-key-state d o k)
+  (cat "st-k" d o k))
+
+(defmacro (opened o)
+  "opened")
+
+(defmacro (closed o) "closed")
+
+(defmacro (dev-state-opened d o)
+  (cat "st" d (opened o)))
+
+(defmacro (dev-state-closed d o)
+  (cat "st" d (closed o)))
+
+(defmacro (dev-state-any d o any)
+  (cat "st" d any))
+
+(defprotocol open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan) (lk ls locn))
+    (trace
+     (recv start-ch (cat "power-up" d o k))
+     (load lk old)
+     (stor lk (dev-key-state d o k))
+     (load ls old1)
+     (stor ls (dev-state-closed d o))
+     (send (enc "up" k)))
+    (auth start-ch))
+
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace
+     (send start-ch (cat "power-up" d o k))
+     (recv (enc "up" k)))
+    (conf start-ch))
+
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace
+     (send (enc "open" d o n k))
+     (recv n)))
+
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace
+     (send (enc "close" d o n k))
+     (recv n)))
+
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace
+     (load lk (dev-key-state d o k))
+     (recv (enc "open" d o n k))
+     (load ls (dev-state-any d o any))
+     (stor ls (dev-state-opened d o))
+     (send n)))
+
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace
+     (load lk (dev-key-state d o k))
+     (recv (enc "close" d o n k))
+     (load ls (dev-state-any d o any))
+     (stor ls (dev-state-closed d o))
+     (send n)))
+
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace
+     (load lk (dev-key-state d o k))
+     (recv (enc "may I pass" k))
+     (load ls (dev-state-opened d o))
+     (send (enc "you may pass" n k)))
+    (uniq-orig n))
+
+  (defrole user-pass
+    (vars (k skey) (n text) (d o name) (l locn))
+    (trace
+     (send (enc "may I pass" k))
+     (recv (enc "you may pass" k))))
+
+  (defrule gen-state-close
+    (forall ((z strd) (d o name) (k skey))
+	    (implies
+	     (and (p "dev-close" z 1)
+		  (p "dev-close" "d" z d)
+		  (p "dev-close" "o" z o)
+		  (p "dev-close" "k" z k)
+		  (p "dev-close" "any" z (opened o)))
+	     (gen-st (dev-state-opened d o)))))
+
+  (defrule gen-state-pass
+    (forall ((z strd) (d o name) (k skey))
+	    (implies
+	     (and (p "dev-pass" z 1)
+		  (p "dev-pass" "d" z d)
+		  (p "dev-pass" "o" z o)
+		  (p "dev-pass" "k" z k))
+	     (gen-st (dev-state-opened d o)))))
+
+   (defrule power-deliver-once
+     (forall
+      ((z1 z2 strd) (k skey))
+      (implies
+       (and (p "dev-up" z1 2)
+ 	   (p "dev-up" z2 2)
+ 	   (p "dev-up" "k" z1 k)
+ 	   (p "dev-up" "k" z2 k))
+       (= z1 z2))))
+  )
+
+(defskeleton open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k))
+  (deflistener k)
+  (uniq-orig k))
+
+(defskeleton open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  ;; (defstrand owner-power-dev 2 (k k))
+  (defstrand dev-pass 4 (k k))
+  ;; (uniq-orig k)
+  )
+
+(defskeleton open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k))
+  (defstrand dev-pass 4 (k k))
+  (uniq-orig k))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (n n-0 text) (d o name) (k k-0 skey)
+    (start-ch chan) (ls lk ls-0 lk-0 locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 6 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls-0))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk-0)
+    (ls ls))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)) ((2 5) (0 1)) ((3 0) (1 1))
+    ((4 3) (1 2)))
+  (uniq-orig n k))
diff --git a/tst/open-closed-tag.tst b/tst/open-closed-tag.tst
new file mode 100644
--- /dev/null
+++ b/tst/open-closed-tag.tst
@@ -0,0 +1,1133 @@
+(herald open-closed (bound 44))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/open-closed-tag.scm")
+(comment "Strand count bounded at 44")
+
+(defprotocol open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (stor lk (cat "st-k" d o k)) (load ls old1)
+      (stor ls (cat "st" d "closed")) (send (enc "up" k)))
+    (auth start-ch))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "open" d o n k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d "opened"))
+      (send n)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "close" d o n k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d "closed"))
+      (send n)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat "st" d "opened")) (send (enc "you may pass" n k)))
+    (uniq-orig n))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule gen-state-close
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-close" z (idx 1)) (p "dev-close" "d" z d)
+          (p "dev-close" "o" z o) (p "dev-close" "k" z k)
+          (p "dev-close" "any" z "opened"))
+        (gen-st (cat "st" d "opened")))))
+  (defrule gen-state-pass
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "d" z d)
+          (p "dev-pass" "o" z o) (p "dev-pass" "k" z k))
+        (gen-st (cat "st" d "opened")))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-2
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 2))))))
+
+(defskeleton open-closed
+  (vars (k skey) (d o name) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (uniq-orig k)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k)))
+  (label 0)
+  (unrealized (0 1) (1 0))
+  (preskeleton)
+  (origs (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton open-closed
+  (vars (k skey) (d o name) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k)))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1) (1 0))
+  (origs (k (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old mesg) (k skey) (d o name) (pt pt-0 pval) (start-ch chan)
+    (lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (defstrand dev-up 3 (old old) (k k) (d d) (o o) (start-ch start-ch)
+    (lk lk))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (auth start-ch)
+  (rule trRl_dev-up-at-1 trRl_dev-up-at-2)
+  (operation nonce-test (added-strand dev-up 3) k (1 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt old))
+      (stor lk (cat pt-0 "st-k" d o k))))
+  (label 2)
+  (parent 1)
+  (seen 2)
+  (unrealized (0 1) (1 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (stor lk (cat "st-k" d o k)) (load ls old1)
+      (stor ls (cat "st" d "closed")) (send (enc "up" k)))
+    (auth start-ch))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "open" d o n k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d "opened"))
+      (send n)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "close" d o n k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d "closed"))
+      (send n)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat "st" d "opened")) (send (enc "you may pass" n k)))
+    (uniq-orig n))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule gen-state-close
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-close" z (idx 1)) (p "dev-close" "d" z d)
+          (p "dev-close" "o" z o) (p "dev-close" "k" z k)
+          (p "dev-close" "any" z "opened"))
+        (gen-st (cat "st" d "opened")))))
+  (defrule gen-state-pass
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "d" z d)
+          (p "dev-pass" "o" z o) (p "dev-pass" "k" z k))
+        (gen-st (cat "st" d "opened")))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-2
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 2))))))
+
+(defskeleton open-closed
+  (vars (k skey) (n text) (d o name) (pt pt-0 pval) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (uniq-orig n)
+  (traces
+    ((load lk (cat pt "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d "opened"))
+      (send (enc "you may pass" n k))))
+  (label 3)
+  (realized)
+  (origs (n (0 3)))
+  (comment "Not closed under rules"))
+
+(defskeleton open-closed
+  (vars (k skey) (n text) (d o name) (pt pt-0 pval) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (uniq-orig n)
+  (gen-st (cat "st" d "opened"))
+  (rule gen-state-pass)
+  (traces
+    ((load lk (cat pt "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d "opened"))
+      (send (enc "you may pass" n k))))
+  (label 4)
+  (parent 3)
+  (unrealized (0 2))
+  (origs (n (0 3)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (any mesg) (k k-0 skey) (n n-0 text) (d o o-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (lk ls lk-0 locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o-0)
+    (lk lk-0) (ls ls))
+  (precedes ((1 3) (0 2)))
+  (uniq-orig n)
+  (gen-st (cat "st" d "opened"))
+  (leads-to ((1 3) (0 2)))
+  (rule trRl_dev-open-at-2 trRl_dev-open-at-3)
+  (operation channel-test (added-strand dev-open 4)
+    (ch-msg ls (cat pt-0 "st" d "opened")) (0 2))
+  (traces
+    ((load lk (cat pt "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d "opened"))
+      (send (enc "you may pass" n k)))
+    ((load lk-0 (cat pt-1 "st-k" d o-0 k-0))
+      (recv (enc "open" d o-0 n-0 k-0)) (load ls (cat pt-2 "st" d any))
+      (stor ls (cat pt-0 "st" d "opened"))))
+  (label 5)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((k k) (n n) (d d) (o o) (lk lk) (ls ls))))
+  (origs (pt-0 (1 3)) (n (0 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (stor lk (cat "st-k" d o k)) (load ls old1)
+      (stor ls (cat "st" d "closed")) (send (enc "up" k)))
+    (auth start-ch))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "open" d o n k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d "opened"))
+      (send n)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "close" d o n k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d "closed"))
+      (send n)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat "st" d "opened")) (send (enc "you may pass" n k)))
+    (uniq-orig n))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule gen-state-close
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-close" z (idx 1)) (p "dev-close" "d" z d)
+          (p "dev-close" "o" z o) (p "dev-close" "k" z k)
+          (p "dev-close" "any" z "opened"))
+        (gen-st (cat "st" d "opened")))))
+  (defrule gen-state-pass
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "d" z d)
+          (p "dev-pass" "o" z o) (p "dev-pass" "k" z k))
+        (gen-st (cat "st" d "opened")))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-2
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 2))))))
+
+(defskeleton open-closed
+  (vars (k skey) (n text) (d o d-0 o-0 name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (uniq-orig k n)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d-0 "opened"))
+      (send (enc "you may pass" n k))))
+  (label 6)
+  (unrealized (0 1) (1 0) (1 1))
+  (preskeleton)
+  (origs (n (1 3)) (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton open-closed
+  (vars (k skey) (n text) (d o d-0 o-0 name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k n)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d-0 "opened"))
+      (send (enc "you may pass" n k))))
+  (label 7)
+  (parent 6)
+  (unrealized (0 1) (1 0) (1 1))
+  (origs (n (1 3)) (k (0 0)))
+  (comment "Not closed under rules"))
+
+(defskeleton open-closed
+  (vars (k skey) (n text) (d o d-0 o-0 name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d-0 "opened"))
+  (conf start-ch)
+  (rule gen-state-pass)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d-0 "opened"))
+      (send (enc "you may pass" n k))))
+  (label 8)
+  (parent 7)
+  (unrealized (0 1) (1 0) (1 1) (1 2))
+  (origs (n (1 3)) (k (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old mesg) (k skey) (n text) (d o d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (start-ch chan) (lk ls lk-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (defstrand dev-up 3 (old old) (k k) (d d) (o o) (start-ch start-ch)
+    (lk lk-0))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d-0 "opened"))
+  (conf start-ch)
+  (auth start-ch)
+  (rule trRl_dev-up-at-1 trRl_dev-up-at-2)
+  (operation nonce-test (added-strand dev-up 3) k (1 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d-0 "opened"))
+      (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk-0 (cat pt-1 old))
+      (stor lk-0 (cat pt-2 "st-k" d o k))))
+  (label 9)
+  (parent 8)
+  (seen 9)
+  (unrealized (0 1) (1 0) (1 1) (1 2))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old mesg) (k skey) (n text) (d o name) (pt pt-0 pt-1 pval)
+    (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 3 (old old) (k k) (d d) (o o) (start-ch start-ch)
+    (lk lk))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d "opened"))
+  (conf start-ch)
+  (auth start-ch)
+  (leads-to ((2 2) (1 0)))
+  (rule trRl_dev-up-at-1 trRl_dev-up-at-2)
+  (operation nonce-test
+    (contracted (d-0 d) (o-0 o) (lk-0 lk) (pt-2 pt-1)) k (1 0)
+    (ch-msg start-ch (cat "power-up" d o k))
+    (ch-msg lk (cat pt-1 "st-k" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-1 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d "opened"))
+      (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k))))
+  (label 10)
+  (parent 9)
+  (unrealized (0 1) (1 1) (1 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old mesg) (k skey) (n text) (d o name) (pt pt-0 pt-1 pval)
+    (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 3 (old old) (k k) (d d) (o o) (start-ch start-ch)
+    (lk lk))
+  (defstrand user-pass 1 (k k))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)) ((3 0) (1 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d "opened"))
+  (conf start-ch)
+  (auth start-ch)
+  (leads-to ((2 2) (1 0)))
+  (rule trRl_dev-up-at-1 trRl_dev-up-at-2)
+  (operation encryption-test (added-strand user-pass 1)
+    (enc "may I pass" k) (1 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-1 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d "opened"))
+      (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k))) ((send (enc "may I pass" k))))
+  (label 11)
+  (parent 10)
+  (unrealized (0 1) (1 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old mesg) (k skey) (n text) (d o name) (pt pt-0 pt-1 pval)
+    (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 3 (old old) (k k) (d d) (o o) (start-ch start-ch)
+    (lk lk))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((2 2) (1 0)) ((3 1) (1 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d "opened"))
+  (conf start-ch)
+  (auth start-ch)
+  (leads-to ((2 2) (1 0)))
+  (rule trRl_dev-up-at-1 trRl_dev-up-at-2)
+  (operation encryption-test (added-listener k) (enc "may I pass" k)
+    (1 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-1 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d "opened"))
+      (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k))) ((recv k) (send k)))
+  (label 12)
+  (parent 10)
+  (seen 14)
+  (unrealized (0 1) (1 2) (3 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old any mesg) (k k-0 skey) (n n-0 text) (d o o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (ls lk lk-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 3 (old old) (k k) (d d) (o o) (start-ch start-ch)
+    (lk lk))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o-0)
+    (lk lk-0) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)) ((3 0) (1 1)) ((4 3) (1 2)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d "opened"))
+  (conf start-ch)
+  (auth start-ch)
+  (leads-to ((2 2) (1 0)) ((4 3) (1 2)))
+  (rule trRl_dev-open-at-2 trRl_dev-open-at-3 trRl_dev-up-at-1
+    trRl_dev-up-at-2)
+  (operation channel-test (added-strand dev-open 4)
+    (ch-msg ls (cat pt "st" d "opened")) (1 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-1 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d "opened"))
+      (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k))) ((send (enc "may I pass" k)))
+    ((load lk-0 (cat pt-2 "st-k" d o-0 k-0))
+      (recv (enc "open" d o-0 n-0 k-0)) (load ls (cat pt-3 "st" d any))
+      (stor ls (cat pt "st" d "opened"))))
+  (label 13)
+  (parent 11)
+  (seen 15)
+  (unrealized (0 1))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old mesg) (k skey) (n text) (d o name) (pt pt-0 pt-1 pval)
+    (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 3 (old old) (k k) (d d) (o o) (start-ch start-ch)
+    (lk lk))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)) ((2 2) (3 0)) ((3 1) (1 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d "opened"))
+  (conf start-ch)
+  (auth start-ch)
+  (leads-to ((2 2) (1 0)))
+  (rule trRl_dev-up-at-1 trRl_dev-up-at-2)
+  (operation nonce-test (displaced 4 2 dev-up 3) k (3 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-1 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d "opened"))
+      (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k))) ((recv k) (send k)))
+  (label 14)
+  (parent 12)
+  (seen 14)
+  (unrealized (0 1) (1 2) (3 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton open-closed
+  (vars (any old old1 mesg) (k k-0 skey) (n n-0 text) (o d o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk lk-0 ls-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o-0) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o-0) (lk lk-0) (ls ls))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand dev-up 6 (old old) (old1 old1) (k k) (d d) (o o-0)
+    (start-ch start-ch) (lk lk-0) (ls ls-0))
+  (precedes ((0 0) (4 0)) ((2 0) (1 1)) ((3 3) (1 2)) ((4 2) (1 0))
+    ((4 5) (0 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d "opened"))
+  (conf start-ch)
+  (auth start-ch)
+  (leads-to ((3 3) (1 2)) ((4 2) (1 0)))
+  (rule trRl_dev-open-at-2 trRl_dev-open-at-3 trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (displaced 2 5 dev-up 6) (enc "up" k)
+    (0 1))
+  (traces ((send start-ch (cat "power-up" d o-0 k)) (recv (enc "up" k)))
+    ((load lk-0 (cat pt-3 "st-k" d o-0 k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d "opened"))
+      (send (enc "you may pass" n k))) ((send (enc "may I pass" k)))
+    ((load lk (cat pt-0 "st-k" d o k-0)) (recv (enc "open" d o n-0 k-0))
+      (load ls (cat pt-1 "st" d any))
+      (stor ls (cat pt "st" d "opened")))
+    ((recv start-ch (cat "power-up" d o-0 k)) (load lk-0 (cat pt-2 old))
+      (stor lk-0 (cat pt-3 "st-k" d o-0 k)) (load ls-0 (cat pt-4 old1))
+      (stor ls-0 (cat pt-5 "st" d "closed")) (send (enc "up" k))))
+  (label 15)
+  (parent 13)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((k k) (d d) (o o-0) (start-ch start-ch) (n n) (d-0 d) (o-0 o-0)
+        (lk lk-0) (ls ls))))
+  (origs (pt-3 (4 2)) (pt-5 (4 4)) (pt (3 3)) (n (1 3)) (k (0 0))))
+
+(defskeleton open-closed
+  (vars (old any mesg) (k k-0 skey) (n n-0 text) (d o o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (ls lk lk-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 3 (old old) (k k) (d d) (o o) (start-ch start-ch)
+    (lk lk))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o-0)
+    (lk lk-0) (ls ls))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((2 2) (1 0)) ((3 0) (1 1))
+    ((4 3) (1 2)) ((5 1) (0 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d "opened"))
+  (conf start-ch)
+  (auth start-ch)
+  (leads-to ((2 2) (1 0)) ((4 3) (1 2)))
+  (rule trRl_dev-open-at-2 trRl_dev-open-at-3 trRl_dev-up-at-1
+    trRl_dev-up-at-2)
+  (operation encryption-test (added-listener k) (enc "up" k) (0 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-1 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d "opened"))
+      (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k))) ((send (enc "may I pass" k)))
+    ((load lk-0 (cat pt-2 "st-k" d o-0 k-0))
+      (recv (enc "open" d o-0 n-0 k-0)) (load ls (cat pt-3 "st" d any))
+      (stor ls (cat pt "st" d "opened"))) ((recv k) (send k)))
+  (label 16)
+  (parent 13)
+  (seen 17)
+  (unrealized (5 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old any mesg) (k k-0 skey) (n n-0 text) (d o o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (ls lk lk-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 3 (old old) (k k) (d d) (o o) (start-ch start-ch)
+    (lk lk))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o-0)
+    (lk lk-0) (ls ls))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)) ((2 2) (5 0)) ((3 0) (1 1))
+    ((4 3) (1 2)) ((5 1) (0 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d "opened"))
+  (conf start-ch)
+  (auth start-ch)
+  (leads-to ((2 2) (1 0)) ((4 3) (1 2)))
+  (rule trRl_dev-open-at-2 trRl_dev-open-at-3 trRl_dev-up-at-1
+    trRl_dev-up-at-2)
+  (operation nonce-test (displaced 6 2 dev-up 3) k (5 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-1 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d "opened"))
+      (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k))) ((send (enc "may I pass" k)))
+    ((load lk-0 (cat pt-2 "st-k" d o-0 k-0))
+      (recv (enc "open" d o-0 n-0 k-0)) (load ls (cat pt-3 "st" d any))
+      (stor ls (cat pt "st" d "opened"))) ((recv k) (send k)))
+  (label 17)
+  (parent 16)
+  (seen 17)
+  (unrealized (5 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (stor lk (cat "st-k" d o k)) (load ls old1)
+      (stor ls (cat "st" d "closed")) (send (enc "up" k)))
+    (auth start-ch))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "open" d o n k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d "opened"))
+      (send n)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "close" d o n k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d "closed"))
+      (send n)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat "st" d "opened")) (send (enc "you may pass" n k)))
+    (uniq-orig n))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule gen-state-close
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-close" z (idx 1)) (p "dev-close" "d" z d)
+          (p "dev-close" "o" z o) (p "dev-close" "k" z k)
+          (p "dev-close" "any" z "opened"))
+        (gen-st (cat "st" d "opened")))))
+  (defrule gen-state-pass
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "d" z d)
+          (p "dev-pass" "o" z o) (p "dev-pass" "k" z k))
+        (gen-st (cat "st" d "opened")))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-2
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 2))))))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k k-0 skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval) (start-ch chan)
+    (ls lk ls-0 lk-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 6 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls-0))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk-0)
+    (ls ls))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)) ((2 5) (0 1)) ((3 0) (1 1))
+    ((4 3) (1 2)))
+  (uniq-orig k n)
+  (conf start-ch)
+  (auth start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d "opened"))
+      (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-1 old))
+      (stor lk (cat pt-2 "st-k" d o k)) (load ls-0 (cat pt-3 old1))
+      (stor ls-0 (cat pt-4 "st" d "closed")) (send (enc "up" k)))
+    ((send (enc "may I pass" k)))
+    ((load lk-0 (cat pt-5 "st-k" d o k-0))
+      (recv (enc "open" d o n-0 k-0)) (load ls (cat pt-6 "st" d any))
+      (stor ls (cat pt-7 "st" d "opened"))))
+  (label 18)
+  (unrealized (1 0))
+  (origs (pt-7 (4 3)) (pt-4 (2 4)) (pt-2 (2 2)) (n (1 3)) (k (0 0)))
+  (comment "Not closed under rules"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k k-0 skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pval) (start-ch chan)
+    (ls lk ls-0 lk-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 6 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls-0))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk-0)
+    (ls ls))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)) ((2 5) (0 1)) ((3 0) (1 1))
+    ((4 3) (1 2)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d "opened"))
+  (conf start-ch)
+  (auth start-ch)
+  (rule gen-state-pass trRl_dev-open-at-2 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d "opened"))
+      (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-1 old))
+      (stor lk (cat pt-2 "st-k" d o k)) (load ls-0 (cat pt-3 old1))
+      (stor ls-0 (cat pt-4 "st" d "closed")) (send (enc "up" k)))
+    ((send (enc "may I pass" k)))
+    ((load lk-0 (cat pt-5 "st-k" d o k-0))
+      (recv (enc "open" d o n-0 k-0)) (load ls (cat pt-6 "st" d any))
+      (stor ls (cat pt-7 "st" d "opened"))))
+  (label 19)
+  (parent 18)
+  (seen 19)
+  (unrealized (1 0) (1 2))
+  (origs (pt-7 (4 3)) (pt-4 (2 4)) (pt-2 (2 2)) (n (1 3)) (k (0 0)))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k k-0 skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pval) (start-ch chan)
+    (ls lk ls-0 lk-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 6 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls-0))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk-0)
+    (ls ls))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)) ((2 5) (0 1)) ((3 0) (1 1))
+    ((4 3) (1 2)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d "opened"))
+  (conf start-ch)
+  (auth start-ch)
+  (leads-to ((2 2) (1 0)))
+  (rule trRl_dev-open-at-2 trRl_dev-open-at-3 trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (contracted (pt-7 pt-1)) k (1 0)
+    (ch-msg start-ch (cat "power-up" d o k))
+    (ch-msg lk (cat pt-1 "st-k" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-1 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d "opened"))
+      (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k)) (load ls-0 (cat pt-2 old1))
+      (stor ls-0 (cat pt-3 "st" d "closed")) (send (enc "up" k)))
+    ((send (enc "may I pass" k)))
+    ((load lk-0 (cat pt-4 "st-k" d o k-0))
+      (recv (enc "open" d o n-0 k-0)) (load ls (cat pt-5 "st" d any))
+      (stor ls (cat pt-6 "st" d "opened"))))
+  (label 20)
+  (parent 19)
+  (seen 21)
+  (unrealized (1 2))
+  (origs (pt-6 (4 3)) (pt-3 (2 4)) (pt-1 (2 2)) (n (1 3)) (k (0 0)))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old old1 any mesg) (k k-0 skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk ls-0 lk-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 6 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls-0))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk-0)
+    (ls ls))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)) ((2 5) (0 1)) ((3 0) (1 1))
+    ((4 3) (1 2)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d "opened"))
+  (conf start-ch)
+  (auth start-ch)
+  (leads-to ((2 2) (1 0)) ((4 3) (1 2)))
+  (rule trRl_dev-open-at-2 trRl_dev-open-at-3 trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (displaced 5 4 dev-open 4)
+    (ch-msg ls (cat pt-6 "st" d "opened")) (1 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-0 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-5 "st" d "opened"))
+      (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt old))
+      (stor lk (cat pt-0 "st-k" d o k)) (load ls-0 (cat pt-1 old1))
+      (stor ls-0 (cat pt-2 "st" d "closed")) (send (enc "up" k)))
+    ((send (enc "may I pass" k)))
+    ((load lk-0 (cat pt-3 "st-k" d o k-0))
+      (recv (enc "open" d o n-0 k-0)) (load ls (cat pt-4 "st" d any))
+      (stor ls (cat pt-5 "st" d "opened"))))
+  (label 21)
+  (parent 20)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 2 3 4)
+      ((old old) (old1 old1) (any any) (n n) (n-0 n-0) (d d) (o o) (k k)
+        (k-0 k-0) (start-ch start-ch) (ls ls) (lk lk) (ls-0 ls-0)
+        (lk-0 lk-0))))
+  (origs (pt-5 (4 3)) (pt-2 (2 4)) (pt-0 (2 2)) (n (1 3)) (k (0 0))))
+
+(defskeleton open-closed
+  (vars (old old1 any any-0 mesg) (k k-0 k-1 skey) (n n-0 n-1 text)
+    (d o o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval)
+    (start-ch chan) (ls lk ls-0 lk-0 lk-1 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 6 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls-0))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk-0)
+    (ls ls))
+  (defstrand dev-open 4 (any any-0) (k k-1) (n n-1) (d d) (o o-0)
+    (lk lk-1) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)) ((2 5) (0 1)) ((3 0) (1 1))
+    ((4 3) (5 2)) ((5 3) (1 2)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d "opened"))
+  (conf start-ch)
+  (auth start-ch)
+  (leads-to ((2 2) (1 0)) ((5 3) (1 2)))
+  (rule invShearsRule trRl_dev-open-at-2 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-open 4)
+    (ch-msg ls (cat pt "st" d "opened")) (1 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-1 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d "opened"))
+      (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k)) (load ls-0 (cat pt-2 old1))
+      (stor ls-0 (cat pt-3 "st" d "closed")) (send (enc "up" k)))
+    ((send (enc "may I pass" k)))
+    ((load lk-0 (cat pt-4 "st-k" d o k-0))
+      (recv (enc "open" d o n-0 k-0)) (load ls (cat pt-5 "st" d any))
+      (stor ls (cat pt-6 "st" d "opened")))
+    ((load lk-1 (cat pt-7 "st-k" d o-0 k-1))
+      (recv (enc "open" d o-0 n-1 k-1))
+      (load ls (cat pt-8 "st" d any-0))
+      (stor ls (cat pt "st" d "opened"))))
+  (label 22)
+  (parent 20)
+  (seen 21)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/tst/open-closed.scm b/tst/open-closed.scm
new file mode 100644
--- /dev/null
+++ b/tst/open-closed.scm
@@ -0,0 +1,180 @@
+(herald open-closed
+	;; (try-old-strands)
+	;; 	(check-nonces)
+	;; 	(reverse-nodes)
+	(bound 44))
+
+(defmacro (dev-key-state d o k)
+  (cat "st-k" d o k))
+
+(defmacro (opened o)
+  (cat o o))
+
+(defmacro (closed o) o)
+
+(defmacro (dev-state-opened d o)
+  (cat "st" d (opened o)))
+
+(defmacro (dev-state-closed d o)
+  (cat "st" d (closed o)))
+
+(defmacro (dev-state-any d o any)
+  (cat "st" d any))
+
+(defprotocol open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan) (lk ls locn))
+    (trace
+     (recv start-ch (cat "power-up" d o k))
+     (load lk old)
+     (stor lk (dev-key-state d o k))
+     (load ls old1)
+     (stor ls (dev-state-closed d o))
+     (send (enc "up" k)))
+    (auth start-ch))
+
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace
+     (send start-ch (cat "power-up" d o k))
+     (recv (enc "up" k)))
+    (conf start-ch))
+
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace
+     (send (enc "open" d o n k))
+     (recv n)))
+
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace
+     (send (enc "close" d o n k))
+     (recv n)))
+
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace
+     (load lk (dev-key-state d o k))
+     (recv (enc "open" d o n k))
+     (load ls (dev-state-any d o any))
+     (stor ls (dev-state-opened d o))
+     (send n)))
+
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace
+     (load lk (dev-key-state d o k))
+     (recv (enc "close" d o n k))
+     (load ls (dev-state-any d o any))
+     (stor ls (dev-state-closed d o))
+     (send n)))
+
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace
+     (load lk (dev-key-state d o k))
+     (recv (enc "may I pass" k))
+     (load ls (dev-state-opened d o))
+     (send (enc "you may pass" n k)))
+    (uniq-orig n))
+
+  (defrole user-pass
+    (vars (k skey) (n text) (d o name) (l locn))
+    (trace
+     (send (enc "may I pass" k))
+     (recv (enc "you may pass" k))))
+
+  (defrule gen-state-close
+    (forall ((z strd) (d o name) (k skey))
+	    (implies
+	     (and (p "dev-close" z 1)
+		  (p "dev-close" "d" z d)
+		  (p "dev-close" "o" z o)
+		  (p "dev-close" "k" z k)
+		  (p "dev-close" "any" z (opened o)))
+	     (gen-st (dev-state-opened d o)))))
+
+  (defrule gen-state-pass
+    (forall ((z strd) (d o name) (k skey))
+	    (implies
+	     (and (p "dev-pass" z 1)
+		  (p "dev-pass" "d" z d)
+		  (p "dev-pass" "o" z o)
+		  (p "dev-pass" "k" z k))
+	     (gen-st (dev-state-opened d o)))))
+
+   (defrule power-deliver-once
+     (forall
+      ((z1 z2 strd) (k skey))
+      (implies
+       (and (p "dev-up" z1 2)
+ 	   (p "dev-up" z2 2)
+ 	   (p "dev-up" "k" z1 k)
+ 	   (p "dev-up" "k" z2 k))
+       (= z2 z1))))
+
+   (defrule same-locn
+     (forall ((z1 z2 strd) (i1 i2 indx))
+  	     (implies
+  	      (same-locn z1 i1 z2 i2)
+  	      (fact ha z1 i1 z2 i2)))
+     (comment this is a rule comment))
+
+   (defrule leadsto-la
+     (forall ((z1 z2 strd) (i1 i2 indx))
+  	     (implies
+  	      (leads-to z1 i1 z2 i2)
+  	      (fact la z1 i1 z2 i2)))
+     (comment this is a rule comment))
+   )
+
+(defskeleton open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k))
+  (deflistener k)
+  (uniq-orig k))
+
+(defskeleton open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  ;; (defstrand owner-power-dev 2 (k k))
+  (defstrand dev-pass 4 (k k))
+  ;; (uniq-orig k)
+  )
+
+(defskeleton open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k))
+  (defstrand dev-pass 4 (k k))
+  (uniq-orig k))
+
+(comment
+ (defskeleton open-closed
+   (vars (any old old1 mesg) (n n-0 text) (d o name) (k k-0 skey)
+	 (start-ch chan) (ls lk lk-0 ls-0 locn))
+   (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+   (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk ;-0
+						     ) (ls ls))
+   (defstrand user-pass 1 (k k))
+   (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+     (ls ls))
+   (defstrand dev-up 6 (old old) (old1 old1) (d d) (o o) (k k)
+     (start-ch start-ch) (lk lk-0) (ls ls-0))
+   (precedes ((0 0) (4 0)) ((2 0) (1 1)) ((3 3) (1 2)) ((4 2) (1 0))
+	     ((4 5) (0 1)))
+   (uniq-orig n k))
+
+ (defskeleton open-closed
+   (vars (any old old1 mesg) (n n-0 text) (d o name) (k k-0 skey)
+	 (start-ch chan) (ls lk ls-0 locn))
+   (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+   (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+   (defstrand user-pass 1 (k k))
+   (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+     (ls ls))
+   (defstrand dev-up 6 (old old) (old1 old1) (d d) (o o) (k k)
+     (start-ch start-ch) (lk lk) (ls ls	; -0
+				     ))
+   (precedes ((0 0) (4 0)) ((2 0) (1 1)) ((3 3) (1 2)) ((4 2) (1 0))
+	     ((4 5) (0 1)))
+   (uniq-orig n k)))
diff --git a/tst/open-closed.tst b/tst/open-closed.tst
new file mode 100644
--- /dev/null
+++ b/tst/open-closed.tst
@@ -0,0 +1,905 @@
+(herald open-closed (bound 44))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/open-closed.scm")
+(comment "Strand count bounded at 44")
+
+(defprotocol open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (stor lk (cat "st-k" d o k)) (load ls old1)
+      (stor ls (cat "st" d o)) (send (enc "up" k)))
+    (auth start-ch))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "open" d o n k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o o)) (send n)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "close" d o n k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o)) (send n)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat "st" d o o)) (send (enc "you may pass" n k)))
+    (uniq-orig n))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule gen-state-close
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-close" z (idx 1)) (p "dev-close" "d" z d)
+          (p "dev-close" "o" z o) (p "dev-close" "k" z k)
+          (p "dev-close" "any" z (cat o o)))
+        (gen-st (cat "st" d o o)))))
+  (defrule gen-state-pass
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "d" z d)
+          (p "dev-pass" "o" z o) (p "dev-pass" "k" z k))
+        (gen-st (cat "st" d o o)))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z2 z1))))
+  (defrule same-locn
+    (forall ((z1 z2 strd) (i1 i2 indx))
+      (implies (same-locn z1 i1 z2 i2) (fact ha z1 i1 z2 i2)))
+    (comment this is a rule comment))
+  (defrule leadsto-la
+    (forall ((z1 z2 strd) (i1 i2 indx))
+      (implies (leads-to z1 i1 z2 i2) (fact la z1 i1 z2 i2)))
+    (comment this is a rule comment))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-2
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 2))))))
+
+(defskeleton open-closed
+  (vars (k skey) (d o name) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (uniq-orig k)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k)))
+  (label 0)
+  (unrealized (0 1) (1 0))
+  (preskeleton)
+  (origs (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton open-closed
+  (vars (k skey) (d o name) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k)))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1) (1 0))
+  (origs (k (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old mesg) (k skey) (d o name) (pt pt-0 pval) (start-ch chan)
+    (lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (defstrand dev-up 3 (old old) (k k) (d d) (o o) (start-ch start-ch)
+    (lk lk))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (auth start-ch)
+  (facts (ha 2 (idx 1) 2 (idx 1)) (ha 2 (idx 1) 2 (idx 2))
+    (ha 2 (idx 2) 2 (idx 1)) (ha 2 (idx 2) 2 (idx 2)))
+  (rule same-locn trRl_dev-up-at-1 trRl_dev-up-at-2)
+  (operation nonce-test (added-strand dev-up 3) k (1 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt old))
+      (stor lk (cat pt-0 "st-k" d o k))))
+  (label 2)
+  (parent 1)
+  (seen 2)
+  (unrealized (0 1) (1 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (stor lk (cat "st-k" d o k)) (load ls old1)
+      (stor ls (cat "st" d o)) (send (enc "up" k)))
+    (auth start-ch))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "open" d o n k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o o)) (send n)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "close" d o n k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o)) (send n)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat "st" d o o)) (send (enc "you may pass" n k)))
+    (uniq-orig n))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule gen-state-close
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-close" z (idx 1)) (p "dev-close" "d" z d)
+          (p "dev-close" "o" z o) (p "dev-close" "k" z k)
+          (p "dev-close" "any" z (cat o o)))
+        (gen-st (cat "st" d o o)))))
+  (defrule gen-state-pass
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "d" z d)
+          (p "dev-pass" "o" z o) (p "dev-pass" "k" z k))
+        (gen-st (cat "st" d o o)))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z2 z1))))
+  (defrule same-locn
+    (forall ((z1 z2 strd) (i1 i2 indx))
+      (implies (same-locn z1 i1 z2 i2) (fact ha z1 i1 z2 i2)))
+    (comment this is a rule comment))
+  (defrule leadsto-la
+    (forall ((z1 z2 strd) (i1 i2 indx))
+      (implies (leads-to z1 i1 z2 i2) (fact la z1 i1 z2 i2)))
+    (comment this is a rule comment))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-2
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 2))))))
+
+(defskeleton open-closed
+  (vars (k skey) (n text) (d o name) (pt pt-0 pval) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (uniq-orig n)
+  (traces
+    ((load lk (cat pt "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d o o)) (send (enc "you may pass" n k))))
+  (label 3)
+  (realized)
+  (origs (n (0 3)))
+  (comment "Not closed under rules"))
+
+(defskeleton open-closed
+  (vars (k skey) (n text) (d o name) (pt pt-0 pval) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (uniq-orig n)
+  (gen-st (cat "st" d o o))
+  (facts (ha 0 (idx 0) 0 (idx 0)) (ha 0 (idx 2) 0 (idx 2)))
+  (rule gen-state-pass same-locn)
+  (traces
+    ((load lk (cat pt "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d o o)) (send (enc "you may pass" n k))))
+  (label 4)
+  (parent 3)
+  (unrealized (0 2))
+  (origs (n (0 3)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (any mesg) (k k-0 skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pval) (lk ls lk-0 locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk-0)
+    (ls ls))
+  (precedes ((1 3) (0 2)))
+  (uniq-orig n)
+  (gen-st (cat "st" d o o))
+  (facts (ha 0 (idx 0) 0 (idx 0)) (ha 0 (idx 2) 0 (idx 2))
+    (ha 0 (idx 2) 1 (idx 2)) (ha 0 (idx 2) 1 (idx 3))
+    (ha 1 (idx 0) 1 (idx 0)) (ha 1 (idx 2) 0 (idx 2))
+    (ha 1 (idx 2) 1 (idx 2)) (ha 1 (idx 2) 1 (idx 3))
+    (ha 1 (idx 3) 0 (idx 2)) (ha 1 (idx 3) 1 (idx 2))
+    (ha 1 (idx 3) 1 (idx 3)) (la 1 (idx 3) 0 (idx 2)))
+  (leads-to ((1 3) (0 2)))
+  (rule leadsto-la same-locn trRl_dev-open-at-2 trRl_dev-open-at-3)
+  (operation channel-test (added-strand dev-open 4)
+    (ch-msg ls (cat pt-0 "st" d o o)) (0 2))
+  (traces
+    ((load lk (cat pt "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d o o)) (send (enc "you may pass" n k)))
+    ((load lk-0 (cat pt-1 "st-k" d o k-0))
+      (recv (enc "open" d o n-0 k-0)) (load ls (cat pt-2 "st" d any))
+      (stor ls (cat pt-0 "st" d o o))))
+  (label 5)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((k k) (n n) (d d) (o o) (lk lk) (ls ls))))
+  (origs (pt-0 (1 3)) (n (0 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (stor lk (cat "st-k" d o k)) (load ls old1)
+      (stor ls (cat "st" d o)) (send (enc "up" k)))
+    (auth start-ch))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "open" d o n k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o o)) (send n)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "close" d o n k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o)) (send n)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat "st" d o o)) (send (enc "you may pass" n k)))
+    (uniq-orig n))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule gen-state-close
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-close" z (idx 1)) (p "dev-close" "d" z d)
+          (p "dev-close" "o" z o) (p "dev-close" "k" z k)
+          (p "dev-close" "any" z (cat o o)))
+        (gen-st (cat "st" d o o)))))
+  (defrule gen-state-pass
+    (forall ((z strd) (d o name) (k skey))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "d" z d)
+          (p "dev-pass" "o" z o) (p "dev-pass" "k" z k))
+        (gen-st (cat "st" d o o)))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z2 z1))))
+  (defrule same-locn
+    (forall ((z1 z2 strd) (i1 i2 indx))
+      (implies (same-locn z1 i1 z2 i2) (fact ha z1 i1 z2 i2)))
+    (comment this is a rule comment))
+  (defrule leadsto-la
+    (forall ((z1 z2 strd) (i1 i2 indx))
+      (implies (leads-to z1 i1 z2 i2) (fact la z1 i1 z2 i2)))
+    (comment this is a rule comment))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-2
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 2))))))
+
+(defskeleton open-closed
+  (vars (k skey) (n text) (d o d-0 o-0 name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (uniq-orig k n)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0))
+      (send (enc "you may pass" n k))))
+  (label 6)
+  (unrealized (0 1) (1 0) (1 1))
+  (preskeleton)
+  (origs (n (1 3)) (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton open-closed
+  (vars (k skey) (n text) (d o d-0 o-0 name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k n)
+  (conf start-ch)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0))
+      (send (enc "you may pass" n k))))
+  (label 7)
+  (parent 6)
+  (unrealized (0 1) (1 0) (1 1))
+  (origs (n (1 3)) (k (0 0)))
+  (comment "Not closed under rules"))
+
+(defskeleton open-closed
+  (vars (k skey) (n text) (d o d-0 o-0 name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d-0 o-0 o-0))
+  (conf start-ch)
+  (facts (ha 1 (idx 0) 1 (idx 0)) (ha 1 (idx 2) 1 (idx 2)))
+  (rule gen-state-pass same-locn)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0))
+      (send (enc "you may pass" n k))))
+  (label 8)
+  (parent 7)
+  (unrealized (0 1) (1 0) (1 1) (1 2))
+  (origs (n (1 3)) (k (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old mesg) (k skey) (n text) (d o d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pval) (start-ch chan) (lk ls lk-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (defstrand dev-up 3 (old old) (k k) (d d) (o o) (start-ch start-ch)
+    (lk lk-0))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d-0 o-0 o-0))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (ha 1 (idx 0) 1 (idx 0)) (ha 1 (idx 2) 1 (idx 2))
+    (ha 2 (idx 1) 2 (idx 1)) (ha 2 (idx 1) 2 (idx 2))
+    (ha 2 (idx 2) 2 (idx 1)) (ha 2 (idx 2) 2 (idx 2)))
+  (rule same-locn trRl_dev-up-at-1 trRl_dev-up-at-2)
+  (operation nonce-test (added-strand dev-up 3) k (1 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k)) (recv (enc "may I pass" k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0))
+      (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk-0 (cat pt-1 old))
+      (stor lk-0 (cat pt-2 "st-k" d o k))))
+  (label 9)
+  (parent 8)
+  (seen 9)
+  (unrealized (0 1) (1 0) (1 1) (1 2))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old mesg) (k skey) (n text) (d o name) (pt pt-0 pt-1 pval)
+    (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 3 (old old) (k k) (d d) (o o) (start-ch start-ch)
+    (lk lk))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (ha 1 (idx 0) 1 (idx 0)) (ha 1 (idx 0) 2 (idx 1))
+    (ha 1 (idx 0) 2 (idx 2)) (ha 1 (idx 2) 1 (idx 2))
+    (ha 2 (idx 1) 1 (idx 0)) (ha 2 (idx 1) 2 (idx 1))
+    (ha 2 (idx 1) 2 (idx 2)) (ha 2 (idx 2) 1 (idx 0))
+    (ha 2 (idx 2) 2 (idx 1)) (ha 2 (idx 2) 2 (idx 2))
+    (la 2 (idx 2) 1 (idx 0)))
+  (leads-to ((2 2) (1 0)))
+  (rule leadsto-la same-locn trRl_dev-up-at-1 trRl_dev-up-at-2)
+  (operation nonce-test
+    (contracted (d-0 d) (o-0 o) (lk-0 lk) (pt-2 pt-1)) k (1 0)
+    (ch-msg start-ch (cat "power-up" d o k))
+    (ch-msg lk (cat pt-1 "st-k" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-1 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k))))
+  (label 10)
+  (parent 9)
+  (unrealized (0 1) (1 1) (1 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old mesg) (k skey) (n text) (d o name) (pt pt-0 pt-1 pval)
+    (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 3 (old old) (k k) (d d) (o o) (start-ch start-ch)
+    (lk lk))
+  (defstrand user-pass 1 (k k))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)) ((3 0) (1 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (ha 1 (idx 0) 1 (idx 0)) (ha 1 (idx 0) 2 (idx 1))
+    (ha 1 (idx 0) 2 (idx 2)) (ha 1 (idx 2) 1 (idx 2))
+    (ha 2 (idx 1) 1 (idx 0)) (ha 2 (idx 1) 2 (idx 1))
+    (ha 2 (idx 1) 2 (idx 2)) (ha 2 (idx 2) 1 (idx 0))
+    (ha 2 (idx 2) 2 (idx 1)) (ha 2 (idx 2) 2 (idx 2))
+    (la 2 (idx 2) 1 (idx 0)))
+  (leads-to ((2 2) (1 0)))
+  (rule leadsto-la same-locn trRl_dev-up-at-1 trRl_dev-up-at-2)
+  (operation encryption-test (added-strand user-pass 1)
+    (enc "may I pass" k) (1 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-1 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k))) ((send (enc "may I pass" k))))
+  (label 11)
+  (parent 10)
+  (unrealized (0 1) (1 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old mesg) (k skey) (n text) (d o name) (pt pt-0 pt-1 pval)
+    (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 3 (old old) (k k) (d d) (o o) (start-ch start-ch)
+    (lk lk))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((2 2) (1 0)) ((3 1) (1 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (ha 1 (idx 0) 1 (idx 0)) (ha 1 (idx 0) 2 (idx 1))
+    (ha 1 (idx 0) 2 (idx 2)) (ha 1 (idx 2) 1 (idx 2))
+    (ha 2 (idx 1) 1 (idx 0)) (ha 2 (idx 1) 2 (idx 1))
+    (ha 2 (idx 1) 2 (idx 2)) (ha 2 (idx 2) 1 (idx 0))
+    (ha 2 (idx 2) 2 (idx 1)) (ha 2 (idx 2) 2 (idx 2))
+    (la 2 (idx 2) 1 (idx 0)))
+  (leads-to ((2 2) (1 0)))
+  (rule leadsto-la same-locn trRl_dev-up-at-1 trRl_dev-up-at-2)
+  (operation encryption-test (added-listener k) (enc "may I pass" k)
+    (1 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-1 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k))) ((recv k) (send k)))
+  (label 12)
+  (parent 10)
+  (seen 14)
+  (unrealized (0 1) (1 2) (3 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old any mesg) (k k-0 skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (ls lk lk-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 3 (old old) (k k) (d d) (o o) (start-ch start-ch)
+    (lk lk))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk-0)
+    (ls ls))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)) ((3 0) (1 1)) ((4 3) (1 2)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (ha 1 (idx 0) 1 (idx 0)) (ha 1 (idx 0) 2 (idx 1))
+    (ha 1 (idx 0) 2 (idx 2)) (ha 1 (idx 2) 1 (idx 2))
+    (ha 1 (idx 2) 4 (idx 2)) (ha 1 (idx 2) 4 (idx 3))
+    (ha 2 (idx 1) 1 (idx 0)) (ha 2 (idx 1) 2 (idx 1))
+    (ha 2 (idx 1) 2 (idx 2)) (ha 2 (idx 2) 1 (idx 0))
+    (ha 2 (idx 2) 2 (idx 1)) (ha 2 (idx 2) 2 (idx 2))
+    (ha 4 (idx 0) 4 (idx 0)) (ha 4 (idx 2) 1 (idx 2))
+    (ha 4 (idx 2) 4 (idx 2)) (ha 4 (idx 2) 4 (idx 3))
+    (ha 4 (idx 3) 1 (idx 2)) (ha 4 (idx 3) 4 (idx 2))
+    (ha 4 (idx 3) 4 (idx 3)) (la 4 (idx 3) 1 (idx 2))
+    (la 2 (idx 2) 1 (idx 0)))
+  (leads-to ((2 2) (1 0)) ((4 3) (1 2)))
+  (rule leadsto-la same-locn trRl_dev-open-at-2 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2)
+  (operation channel-test (added-strand dev-open 4)
+    (ch-msg ls (cat pt "st" d o o)) (1 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-1 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k))) ((send (enc "may I pass" k)))
+    ((load lk-0 (cat pt-2 "st-k" d o k-0))
+      (recv (enc "open" d o n-0 k-0)) (load ls (cat pt-3 "st" d any))
+      (stor ls (cat pt "st" d o o))))
+  (label 13)
+  (parent 11)
+  (seen 15)
+  (unrealized (0 1))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old mesg) (k skey) (n text) (d o name) (pt pt-0 pt-1 pval)
+    (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 3 (old old) (k k) (d d) (o o) (start-ch start-ch)
+    (lk lk))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)) ((2 2) (3 0)) ((3 1) (1 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (ha 1 (idx 0) 1 (idx 0)) (ha 1 (idx 0) 2 (idx 1))
+    (ha 1 (idx 0) 2 (idx 2)) (ha 1 (idx 2) 1 (idx 2))
+    (ha 2 (idx 1) 1 (idx 0)) (ha 2 (idx 1) 2 (idx 1))
+    (ha 2 (idx 1) 2 (idx 2)) (ha 2 (idx 2) 1 (idx 0))
+    (ha 2 (idx 2) 2 (idx 1)) (ha 2 (idx 2) 2 (idx 2))
+    (la 2 (idx 2) 1 (idx 0)))
+  (leads-to ((2 2) (1 0)))
+  (rule leadsto-la same-locn trRl_dev-up-at-1 trRl_dev-up-at-2)
+  (operation nonce-test (displaced 4 2 dev-up 3) k (3 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-1 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k))) ((recv k) (send k)))
+  (label 14)
+  (parent 12)
+  (seen 14)
+  (unrealized (0 1) (1 2) (3 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton open-closed
+  (vars (any old old1 mesg) (k k-0 skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk lk-0 ls-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk-0) (ls ls))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand dev-up 6 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk-0) (ls ls-0))
+  (precedes ((0 0) (4 0)) ((2 0) (1 1)) ((3 3) (1 2)) ((4 2) (1 0))
+    ((4 5) (0 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (ha 1 (idx 0) 1 (idx 0)) (ha 1 (idx 0) 4 (idx 1))
+    (ha 1 (idx 0) 4 (idx 2)) (ha 1 (idx 2) 1 (idx 2))
+    (ha 1 (idx 2) 3 (idx 2)) (ha 1 (idx 2) 3 (idx 3))
+    (ha 3 (idx 0) 3 (idx 0)) (ha 3 (idx 2) 1 (idx 2))
+    (ha 3 (idx 2) 3 (idx 2)) (ha 3 (idx 2) 3 (idx 3))
+    (ha 3 (idx 3) 1 (idx 2)) (ha 3 (idx 3) 3 (idx 2))
+    (ha 3 (idx 3) 3 (idx 3)) (ha 4 (idx 1) 1 (idx 0))
+    (ha 4 (idx 1) 4 (idx 1)) (ha 4 (idx 1) 4 (idx 2))
+    (ha 4 (idx 2) 1 (idx 0)) (ha 4 (idx 2) 4 (idx 1))
+    (ha 4 (idx 2) 4 (idx 2)) (ha 4 (idx 3) 4 (idx 3))
+    (ha 4 (idx 3) 4 (idx 4)) (ha 4 (idx 4) 4 (idx 3))
+    (ha 4 (idx 4) 4 (idx 4)) (la 4 (idx 2) 1 (idx 0))
+    (la 3 (idx 3) 1 (idx 2)))
+  (leads-to ((3 3) (1 2)) ((4 2) (1 0)))
+  (rule leadsto-la same-locn trRl_dev-open-at-2 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (displaced 2 5 dev-up 6) (enc "up" k)
+    (0 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk-0 (cat pt-3 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((send (enc "may I pass" k)))
+    ((load lk (cat pt-0 "st-k" d o k-0)) (recv (enc "open" d o n-0 k-0))
+      (load ls (cat pt-1 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk-0 (cat pt-2 old))
+      (stor lk-0 (cat pt-3 "st-k" d o k)) (load ls-0 (cat pt-4 old1))
+      (stor ls-0 (cat pt-5 "st" d o)) (send (enc "up" k))))
+  (label 15)
+  (parent 13)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((k k) (d d) (o o) (start-ch start-ch) (n n) (d-0 d) (o-0 o)
+        (lk lk-0) (ls ls))))
+  (origs (pt-3 (4 2)) (pt-5 (4 4)) (pt (3 3)) (n (1 3)) (k (0 0))))
+
+(defskeleton open-closed
+  (vars (old any mesg) (k k-0 skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (ls lk lk-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 3 (old old) (k k) (d d) (o o) (start-ch start-ch)
+    (lk lk))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk-0)
+    (ls ls))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((2 2) (1 0)) ((3 0) (1 1))
+    ((4 3) (1 2)) ((5 1) (0 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (ha 1 (idx 0) 1 (idx 0)) (ha 1 (idx 0) 2 (idx 1))
+    (ha 1 (idx 0) 2 (idx 2)) (ha 1 (idx 2) 1 (idx 2))
+    (ha 1 (idx 2) 4 (idx 2)) (ha 1 (idx 2) 4 (idx 3))
+    (ha 2 (idx 1) 1 (idx 0)) (ha 2 (idx 1) 2 (idx 1))
+    (ha 2 (idx 1) 2 (idx 2)) (ha 2 (idx 2) 1 (idx 0))
+    (ha 2 (idx 2) 2 (idx 1)) (ha 2 (idx 2) 2 (idx 2))
+    (ha 4 (idx 0) 4 (idx 0)) (ha 4 (idx 2) 1 (idx 2))
+    (ha 4 (idx 2) 4 (idx 2)) (ha 4 (idx 2) 4 (idx 3))
+    (ha 4 (idx 3) 1 (idx 2)) (ha 4 (idx 3) 4 (idx 2))
+    (ha 4 (idx 3) 4 (idx 3)) (la 4 (idx 3) 1 (idx 2))
+    (la 2 (idx 2) 1 (idx 0)))
+  (leads-to ((2 2) (1 0)) ((4 3) (1 2)))
+  (rule leadsto-la same-locn trRl_dev-open-at-2 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2)
+  (operation encryption-test (added-listener k) (enc "up" k) (0 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-1 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k))) ((send (enc "may I pass" k)))
+    ((load lk-0 (cat pt-2 "st-k" d o k-0))
+      (recv (enc "open" d o n-0 k-0)) (load ls (cat pt-3 "st" d any))
+      (stor ls (cat pt "st" d o o))) ((recv k) (send k)))
+  (label 16)
+  (parent 13)
+  (seen 17)
+  (unrealized (5 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton open-closed
+  (vars (old any mesg) (k k-0 skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (ls lk lk-0 locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 3 (old old) (k k) (d d) (o o) (start-ch start-ch)
+    (lk lk))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk-0)
+    (ls ls))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)) ((2 2) (5 0)) ((3 0) (1 1))
+    ((4 3) (1 2)) ((5 1) (0 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (ha 1 (idx 0) 1 (idx 0)) (ha 1 (idx 0) 2 (idx 1))
+    (ha 1 (idx 0) 2 (idx 2)) (ha 1 (idx 2) 1 (idx 2))
+    (ha 1 (idx 2) 4 (idx 2)) (ha 1 (idx 2) 4 (idx 3))
+    (ha 2 (idx 1) 1 (idx 0)) (ha 2 (idx 1) 2 (idx 1))
+    (ha 2 (idx 1) 2 (idx 2)) (ha 2 (idx 2) 1 (idx 0))
+    (ha 2 (idx 2) 2 (idx 1)) (ha 2 (idx 2) 2 (idx 2))
+    (ha 4 (idx 0) 4 (idx 0)) (ha 4 (idx 2) 1 (idx 2))
+    (ha 4 (idx 2) 4 (idx 2)) (ha 4 (idx 2) 4 (idx 3))
+    (ha 4 (idx 3) 1 (idx 2)) (ha 4 (idx 3) 4 (idx 2))
+    (ha 4 (idx 3) 4 (idx 3)) (la 4 (idx 3) 1 (idx 2))
+    (la 2 (idx 2) 1 (idx 0)))
+  (leads-to ((2 2) (1 0)) ((4 3) (1 2)))
+  (rule leadsto-la same-locn trRl_dev-open-at-2 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2)
+  (operation nonce-test (displaced 6 2 dev-up 3) k (5 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-1 "st-k" d o k)) (recv (enc "may I pass" k))
+      (load ls (cat pt "st" d o o)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (stor lk (cat pt-1 "st-k" d o k))) ((send (enc "may I pass" k)))
+    ((load lk-0 (cat pt-2 "st-k" d o k-0))
+      (recv (enc "open" d o n-0 k-0)) (load ls (cat pt-3 "st" d any))
+      (stor ls (cat pt "st" d o o))) ((recv k) (send k)))
+  (label 17)
+  (parent 16)
+  (seen 17)
+  (unrealized (5 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/tst/or.tst b/tst/or.tst
--- a/tst/or.tst
+++ b/tst/or.tst
@@ -1,7 +1,7 @@
 (herald "Otway-Rees Protocol"
   (comment "Standard version using variables of sort mesg"))
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/or.scm")
 
 (defprotocol or basic
@@ -20,11 +20,17 @@
       (recv
         (cat m a b (enc na m a b (ltk a s)) (enc nb m a b (ltk b s))))
       (send (cat m (enc na k (ltk a s)) (enc nb k (ltk b s)))))
-    (uniq-orig k)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton or
-  (vars (x y mesg) (nb m text) (s a b name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
+  (vars (x y mesg) (k skey) (nb m text) (s a b name))
+  (defstrand resp 4 (x x) (y y) (k k) (nb nb) (m m) (a a) (b b) (s s))
   (non-orig (ltk a s) (ltk b s))
   (uniq-orig nb)
   (traces
@@ -36,12 +42,12 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton or
-  (vars (x y mesg) (nb m na m-0 text) (s a b a-0 name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m-0) (a a-0) (b b) (s s) (k k))
+  (vars (x y mesg) (k skey) (nb m na m-0 text) (s a b a-0 name))
+  (defstrand resp 4 (x x) (y y) (k k) (nb nb) (m m) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (na na) (nb nb) (m m-0) (a a-0) (b b) (s s))
   (precedes ((0 1) (1 0)) ((1 1) (0 2)))
   (non-orig (ltk a s) (ltk b s))
-  (uniq-orig nb k)
+  (uniq-orig k nb)
   (operation encryption-test (added-strand serv 2) (enc nb k (ltk b s))
     (0 2))
   (traces
@@ -57,12 +63,12 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton or
-  (vars (x y mesg) (nb m nb-0 m-0 text) (s a b b-0 name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb-0) (m m-0) (a b) (b b-0) (s s) (k k))
+  (vars (x y mesg) (k skey) (nb m nb-0 m-0 text) (s a b b-0 name))
+  (defstrand resp 4 (x x) (y y) (k k) (nb nb) (m m) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (na nb) (nb nb-0) (m m-0) (a b) (b b-0) (s s))
   (precedes ((0 1) (1 0)) ((1 1) (0 2)))
   (non-orig (ltk a s) (ltk b s))
-  (uniq-orig nb k)
+  (uniq-orig k nb)
   (operation encryption-test (added-strand serv 2) (enc nb k (ltk b s))
     (0 2))
   (traces
@@ -78,12 +84,12 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton or
-  (vars (x y mesg) (nb m na text) (s a b name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s s) (k k))
+  (vars (x y mesg) (k skey) (nb m na text) (s a b name))
+  (defstrand resp 4 (x x) (y y) (k k) (nb nb) (m m) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (na na) (nb nb) (m m) (a a) (b b) (s s))
   (precedes ((0 1) (1 0)) ((1 1) (0 2)))
   (non-orig (ltk a s) (ltk b s))
-  (uniq-orig nb k)
+  (uniq-orig k nb)
   (operation encryption-test (displaced 2 0 resp 2)
     (enc nb m-0 a-0 b (ltk b s)) (1 0))
   (traces
@@ -98,12 +104,12 @@
   (comment "3 in cohort - 3 not yet seen"))
 
 (defskeleton or
-  (vars (x y mesg) (nb m nb-0 text) (s a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))
+  (vars (x y mesg) (k skey) (nb m nb-0 text) (s a name))
+  (defstrand resp 4 (x x) (y y) (k k) (nb nb) (m m) (a a) (b a) (s s))
+  (defstrand serv 2 (k k) (na nb) (nb nb-0) (m m) (a a) (b a) (s s))
   (precedes ((0 1) (1 0)) ((1 1) (0 2)))
   (non-orig (ltk a s))
-  (uniq-orig nb k)
+  (uniq-orig k nb)
   (operation encryption-test (displaced 2 0 resp 2)
     (enc nb m-0 b b (ltk b s)) (1 0))
   (traces
@@ -119,13 +125,13 @@
   (comment "3 in cohort - 2 not yet seen"))
 
 (defskeleton or
-  (vars (x y mesg) (nb m na text) (s a b name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b b) (s s) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b b) (s s) (k k))
+  (vars (x y mesg) (k skey) (nb m na text) (s a b name))
+  (defstrand resp 4 (x x) (y y) (k k) (nb nb) (m m) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (na na) (nb nb) (m m) (a a) (b b) (s s))
   (defstrand init 1 (na na) (m m) (a a) (b b) (s s))
   (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))
   (non-orig (ltk a s) (ltk b s))
-  (uniq-orig nb k)
+  (uniq-orig k nb)
   (operation encryption-test (added-strand init 1)
     (enc na m a b (ltk a s)) (1 0))
   (traces
@@ -137,18 +143,18 @@
     ((send (cat m a b (enc na m a b (ltk a s))))))
   (label 5)
   (parent 3)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((nb nb) (s s) (a a) (b b) (k k) (m m) (x x) (y y))))
   (origs (k (1 1)) (nb (0 1))))
 
 (defskeleton or
-  (vars (x y mesg) (nb m text) (s a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb) (m m) (a a) (b a) (s s) (k k))
+  (vars (x y mesg) (k skey) (nb m text) (s a name))
+  (defstrand resp 4 (x x) (y y) (k k) (nb nb) (m m) (a a) (b a) (s s))
+  (defstrand serv 2 (k k) (na nb) (nb nb) (m m) (a a) (b a) (s s))
   (precedes ((0 1) (1 0)) ((1 1) (0 2)))
   (non-orig (ltk a s))
-  (uniq-orig nb k)
+  (uniq-orig k nb)
   (operation encryption-test (displaced 2 0 resp 2)
     (enc na m a a (ltk a s)) (1 0))
   (traces
@@ -159,19 +165,19 @@
       (send (cat m (enc nb k (ltk a s)) (enc nb k (ltk a s))))))
   (label 6)
   (parent 3)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))
   (origs (k (1 1)) (nb (0 1))))
 
 (defskeleton or
-  (vars (x y x-0 mesg) (nb m na text) (s a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand serv 2 (na na) (nb nb) (m m) (a a) (b a) (s s) (k k))
+  (vars (x y x-0 mesg) (k skey) (nb m na text) (s a name))
+  (defstrand resp 4 (x x) (y y) (k k) (nb nb) (m m) (a a) (b a) (s s))
+  (defstrand serv 2 (k k) (na na) (nb nb) (m m) (a a) (b a) (s s))
   (defstrand resp 2 (x x-0) (nb na) (m m) (a a) (b a) (s s))
   (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))
   (non-orig (ltk a s))
-  (uniq-orig nb k)
+  (uniq-orig k nb)
   (operation encryption-test (added-strand resp 2)
     (enc na m a a (ltk a s)) (1 0))
   (traces
@@ -184,19 +190,19 @@
       (send (cat m a a x-0 (enc na m a a (ltk a s))))))
   (label 7)
   (parent 3)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))
   (origs (k (1 1)) (nb (0 1))))
 
 (defskeleton or
-  (vars (x y mesg) (nb m nb-0 text) (s a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))
+  (vars (x y mesg) (k skey) (nb m nb-0 text) (s a name))
+  (defstrand resp 4 (x x) (y y) (k k) (nb nb) (m m) (a a) (b a) (s s))
+  (defstrand serv 2 (k k) (na nb) (nb nb-0) (m m) (a a) (b a) (s s))
   (defstrand init 1 (na nb-0) (m m) (a a) (b a) (s s))
   (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (1 0)))
   (non-orig (ltk a s))
-  (uniq-orig nb k)
+  (uniq-orig k nb)
   (operation encryption-test (added-strand init 1)
     (enc nb-0 m a a (ltk a s)) (1 0))
   (traces
@@ -208,19 +214,19 @@
     ((send (cat m a a (enc nb-0 m a a (ltk a s))))))
   (label 8)
   (parent 4)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))
   (origs (k (1 1)) (nb (0 1))))
 
 (defskeleton or
-  (vars (x y x-0 mesg) (nb m nb-0 text) (s a name) (k skey))
-  (defstrand resp 4 (x x) (y y) (nb nb) (m m) (a a) (b a) (s s) (k k))
-  (defstrand serv 2 (na nb) (nb nb-0) (m m) (a a) (b a) (s s) (k k))
+  (vars (x y x-0 mesg) (k skey) (nb m nb-0 text) (s a name))
+  (defstrand resp 4 (x x) (y y) (k k) (nb nb) (m m) (a a) (b a) (s s))
+  (defstrand serv 2 (k k) (na nb) (nb nb-0) (m m) (a a) (b a) (s s))
   (defstrand resp 2 (x x-0) (nb nb-0) (m m) (a a) (b a) (s s))
   (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))
   (non-orig (ltk a s))
-  (uniq-orig nb k)
+  (uniq-orig k nb)
   (operation encryption-test (added-strand resp 2)
     (enc nb-0 m a a (ltk a s)) (1 0))
   (traces
@@ -233,7 +239,7 @@
       (send (cat m a a x-0 (enc nb-0 m a a (ltk a s))))))
   (label 9)
   (parent 4)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((nb nb) (s s) (a a) (b a) (k k) (m m) (x x) (y y))))
   (origs (k (1 1)) (nb (0 1))))
diff --git a/tst/ordered.scm b/tst/ordered.scm
--- a/tst/ordered.scm
+++ b/tst/ordered.scm
@@ -6,9 +6,9 @@
     (vars (t text) (k akey))
     (trace (recv (enc t k)) (send t)))
 
-  (defrule neq
-    (forall ((x mesg))
-	    (implies (fact neq x x) (false))))
+;;     (defrule neq
+;;       (forall ((x mesg))
+;;   	    (implies (fact neq x x) (false))))
 
   (defrule order
     (forall ((y z strd))
@@ -24,3 +24,16 @@
   (defstrand dec 2 (t a))
   (defstrand dec 2 (t b))
   (facts (neq a b)))
+
+(defskeleton ordered
+  (vars (b text) (k akey))
+  (defstrand dec 2 (t b) (k k))
+  (facts (neq b b))
+  (rule order)
+  (traces ((recv (enc b k)) (send b)))
+  (label 3)
+  (parent 0)
+  (unrealized)
+  (shape)
+  (maps ((0 0) ((a b) (b b) (k k) (k-0 k))))
+  (origs))
diff --git a/tst/ordered.tst b/tst/ordered.tst
--- a/tst/ordered.tst
+++ b/tst/ordered.tst
@@ -1,18 +1,26 @@
 (herald ordered)
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/ordered.scm")
 
 (defprotocol ordered basic
   (defrole dec
     (vars (t text) (k akey))
     (trace (recv (enc t k)) (send t)))
-  (defrule neq (forall ((x mesg)) (implies (fact neq x x) (false))))
   (defrule order
     (forall ((y z strd))
       (implies
-        (and (p "dec" y 2) (p "dec" z 2))
-        (or (prec y 1 z 0) (prec z 1 y 0) (= y z))))))
+        (and (p "dec" y (idx 2)) (p "dec" z (idx 2)))
+        (or
+          (prec y (idx 1) z (idx 0))
+          (prec z (idx 1) y (idx 0))
+          (= y z)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton ordered
   (vars (a b text) (k k-0 akey))
@@ -21,7 +29,7 @@
   (facts (neq a b))
   (traces ((recv (enc a k)) (send a)) ((recv (enc b k-0)) (send b)))
   (label 0)
-  (unrealized)
+  (realized)
   (origs)
   (comment "Not closed under rules"))
 
@@ -29,30 +37,61 @@
   (vars (a b text) (k k-0 akey))
   (defstrand dec 2 (t a) (k k))
   (defstrand dec 2 (t b) (k k-0))
-  (precedes ((0 1) (1 0)))
+  (precedes ((1 1) (0 0)))
   (facts (neq a b))
   (rule order)
   (traces ((recv (enc a k)) (send a)) ((recv (enc b k-0)) (send b)))
   (label 1)
   (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0 1) ((a a) (b b) (k k) (k-0 k-0))))
-  (origs))
+  (seen 2)
+  (realized)
+  (origs)
+  (comment "1 in cohort - 0 not yet seen"))
 
 (defskeleton ordered
   (vars (a b text) (k k-0 akey))
   (defstrand dec 2 (t a) (k k))
   (defstrand dec 2 (t b) (k k-0))
-  (precedes ((1 1) (0 0)))
+  (precedes ((0 1) (1 0)))
   (facts (neq a b))
   (rule order)
   (traces ((recv (enc a k)) (send a)) ((recv (enc b k-0)) (send b)))
   (label 2)
   (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0 1) ((a a) (b b) (k k) (k-0 k-0))))
-  (origs))
+  (seen 1)
+  (realized)
+  (origs)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol ordered basic
+  (defrole dec
+    (vars (t text) (k akey))
+    (trace (recv (enc t k)) (send t)))
+  (defrule order
+    (forall ((y z strd))
+      (implies
+        (and (p "dec" y (idx 2)) (p "dec" z (idx 2)))
+        (or
+          (prec y (idx 1) z (idx 0))
+          (prec z (idx 1) y (idx 0))
+          (= y z)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton ordered
+  (vars (b text) (k akey))
+  (defstrand dec 2 (t b) (k k))
+  (facts (neq b b))
+  (traces ((recv (enc b k)) (send b)))
+  (label 3)
+  (realized)
+  (origs)
+  (comment "Not closed under rules"))
 
 (comment "Nothing left to do")
diff --git a/tst/owang.scm b/tst/owang.scm
deleted file mode 100644
--- a/tst/owang.scm
+++ /dev/null
@@ -1,408 +0,0 @@
-;; CPSA input file to represent
-;; Wang's Fair Exchange Protocol
-
-;; Wang's encrypted format for the
-;; message payload.  Observe that m,
-;; k get their values from the
-;; like-named messages in the context
-;; where the macro is expanded.
-
-(defmacro (em)
-  (enc m k))
-
-;; The session label L as a fn of
-;; the values that *should be* the
-;; hashes of the encrypted message EM
-;; and the session key K.
-
-(defmacro (l-prime y x)
-  (cat a b t y x))
-
-;; The recipient can check that a
-;; session label has an l-prime where
-;; y is the hash of another parameter.
-;; Hence recipient roles use l-star.
-
-(defmacro (l-star e1 x)
-  (l-prime (hash e1) x))
-
-;; The Evidence of Origin is checked
-;; to be this fn of other parameters
-;; available to the recipient.
-
-(defmacro (eoo-star x e1 e2)
-  (enc (cat "eootag"
-	    (hash (l-star e1 x)) e2)
-       (privk "sign" a)))
-
-;; The Evidence of Receipt is computed
-;; as this fn of other parameters
-;; available to the recipient.
-
-(defmacro (eor-star x e1 e2)
-  (enc (cat "eortag"
-	    (hash (l-star e1 x)) e2)
-       (privk "sign" b)))
-
-;; The Recovery Request as computed by
-;; the recipient.
-
-(defmacro (rr-star x e1 e2)
-  (cat (l-star e1 x) e2
-       (eoo-star x e1 e2)
-       (eor-star x e1 e2)
-       (enc (cat "rcrq" (l-star e1 x) e2)
-            (privk "sign" b))))
-
-;; The Abort Token is checked
-;; to be this fn of other parameters
-;; available to the recipient.
-
-(defmacro (at-star e1 x)
-  (enc (enc "abrq" (l-star e1 x)
-            (privk "sign" a))
-       (privk "sign" t)))
-
-;; How the initiator computes the
-;; encrypted key package:
-
-(defmacro (ek l)
-  (enc (cat "keytag" (hash l) k r)
-       (pubk "encr" t)))
-
-;; The Initiator's computed
-;; version of L.
-
-(defmacro (l)
-  (l-prime (hash (enc m k)) (hash k)))
-
-;; The TTP can check that the session
-;; label L is this fn of other
-;; parameters available to the TTP.
-
-(defmacro (l-prime-prime y)
-  (cat a b t y (hash k)))
-
-;; The TTP can check that the EOO
-;; is this fn of other parameters
-;; available to the TTP.
-
-(defmacro (eoo-prime-prime y)
-  (enc (cat "eootag"
-            (hash (l-prime-prime y))
-	    (ek (l-prime-prime y)))
-       (privk "sign" a)))
-
-;; The TTP can check that the EOR
-;; is this fn of other parameters
-;; available to the TTP.
-
-(defmacro (eor-prime-prime y)
-  (enc (cat "eortag"
-	    (hash (l-prime-prime y))
-	    (ek (l-prime-prime y)))
-       (privk "sign" b)))
-
-;; The TTP can check that the RR
-;; is this fn of other parameters
-;; available to the TTP.
-
-(defmacro (rr-prime-prime y)
-  (cat (l-prime-prime y)
-       (ek (l-prime-prime y))
-       (eoo-prime-prime y)
-       (eor-prime-prime y)
-       (enc "rcrq" (l-prime-prime y)
-	    (ek (l-prime-prime y))
-            (privk "sign" b))))
-
-;; The TTP can check that the Confirmation
-;; Request is this fn of other parameters
-;; available to the TTP.
-
-(defmacro (cf-prime-prime y)
-  (cat (l-prime-prime y) (ek (l-prime-prime y))
-       (eoo-prime-prime y) (eor-prime-prime y)
-       (enc "cfrq" (l-prime-prime y)
-	    (ek (l-prime-prime y))
-            (privk "sign" b))))
-
-;; Defn of Wang's Fair Exchange Protocol.
-;; Closely follows the presentation in the
-;; figures in Section 3.  In the TTP roles,
-;; we have put a dummy send or receive in place
-;; of the state synchronization event to keep
-;; the indices matching the spec.
-
-(defprotocol wang basic
-
-  ;; Successful initiator run with no TTP involvement
-
-  (defrole init1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-     (send (cat (l) (enc m k) (ek (l))
-                (eoo-star (hash k) (enc m k) (ek (l)))))
-     (recv (eor-star (hash k) (enc m k) (ek (l))))
-     (send (cat k r))))
-
-  ;; Aborted initiator run
-
-  (defrole init2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-     (send (cat (l) (enc m k) (ek (l))
-                (eoo-star (hash k) (enc m k) (ek (l)))))
-     (send (enc "abrq" (l) (privk "sign" a)))
-     (recv (enc "abcf"
-                (enc "abrq" (l) (privk "sign" a))
-                (privk "sign" t)))))
-
-  ;; Initiator run with abort request and forced recovery
-
-  (defrole init3
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-     (send (cat (l) (enc m k) (ek (l))
-                (eoo-star (hash k) (enc m k) (ek (l)))))
-     (send (enc "abrq" (l) (privk "sign" a)))
-     (recv (eor-star (hash k) (enc m k) (ek (l))))))
-
-  ;; Aborted initiator run, but with EOR received
-
-  (defrole init4
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-     (send (cat (l) (enc m k) (ek (l))
-                (eoo-star (hash k) (enc m k) (ek (l)))))
-     (recv (eor-star (hash k) (enc m k) (ek (l))))
-     (send (enc "abrq" (l) (privk "sign" a)))
-     (recv (enc "abcf"
-                (enc "abrq" (l) (privk "sign" a))
-                (privk "sign" t)))))
-
-  ;; Initiator run with abort requested after EOR received,
-  ;; but recovery forced
-
-  (defrole init5
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-     (send (cat (l) (enc m k) (ek (l))
-                (eoo-star (hash k) (enc m k) (ek (l)))))
-     (recv (eor-star (hash k) (enc m k) (ek (l))))
-     (send (enc "abrq" (l) (privk "sign" a)))
-     (recv (eor-star (hash k) (enc m k) (ek (l))))))
-
-  ;; Successful responder run with no TTP involvement
-
-  (defrole resp1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-     (recv (cat (l) (enc m k) (ek (l))
-                (eoo-star (hash k) (enc m k) (ek (l)))))
-     (send (eor-star (hash k) (enc m k) (ek (l))))
-     (recv (cat k r))))
-
-  ;;Responder run with recovery via TTP
-
-  (defrole resp2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-     (recv (cat (l) (enc m k) (ek (l))
-                (eoo-star (hash k) (enc m k) (ek (l)))))
-     (send (cat (l) (ek (l)) (eoo-star (hash k) (enc m k) (ek (l)))
-                (eor-star (hash k) (enc m k) (ek (l)))))
-     (send (cat (l) (ek (l)) (eoo-star (hash k) (enc m k) (ek (l)))
-                (eor-star (hash k) (enc m k) (ek (l)))
-                (enc "rcrq" (l) (ek (l)) (privk "sign" b))))
-     (recv (cat k r))))
-
-  ;; Responder run with recovery request and forced abort
-
-  (defrole resp3
-    (vars (a b t name) (e1 e2 x mesg))
-    (trace
-     (recv (cat (l-star e1 x) e1 e2 (eoo-star x e1 e2)))
-     (send (cat (l-star e1 x) e2 (eoo-star x e1 e2) (eor-star x e1 e2)))
-     (send (cat (l-star e1 x) e2 (eoo-star x e1 e2) (eor-star x e1 e2)
-                (enc "rcrq" (l-star e1 x) e2 (privk "sign" b))))
-     (recv (enc "abcf"
-                (enc "abrq" (l-star e1 x) (privk "sign" a))
-                (privk "sign" t)))))
-
-  ;; TTP handles an abort
-
-  (defrole ttp-ab1
-    (vars (a b t name) (y x mesg))
-    (trace
-     (recv (enc "abrq" (l-prime y x) (privk "sign" a)))
-     (send (cat "sync-abrq"
-                (enc "abrq" (l-prime y x) (privk "sign" a))))
-     (send (enc "abcf"
-                (enc "abrq" (l-prime y x) (privk "sign" a))
-                (privk "sign" t)))))
-
-  ;; TTP forces recovery in response to an abort request
-
-  (defrole ttp-ab2
-    (vars (a b t name) (y x e mesg))
-    (trace
-     (recv (enc "abrq" (l-prime y x) (privk "sign" a)))
-     (recv (cat "sync-abrq"
-                (enc "eortag" (hash (l-prime y x)) e
-                     (privk "sign" b))))
-     (send (enc "eortag" (hash (l-prime y x)) e
-                (privk "sign" b)))))
-
-  ;; TTP handles a recovery
-
-  (defrole ttp-rc1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-     (recv (rr-prime-prime y))
-     (send (cat "sync-rc-req"
-                (rr-prime-prime y)))
-     (send (cat k r))))
-
-  ;; TTP forces abort in response to a recovery request
-
-  (defrole ttp-rc2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-     (recv (rr-prime-prime y))
-     (recv (cat "sync-rc-req"
-		(enc "abrq" (l-prime-prime y) (privk "sign" a))))
-     (send (enc "abcf"
-                (enc "abrq" (l-prime-prime y) (privk "sign" a))
-                (privk "sign" t)))))
-
-  ;; TTP handles a confirm request
-
-  (defrole ttp-cf1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-     (recv (cf-prime-prime y))
-     (send (cat "sync-cf-req"
-                (cf-prime-prime y)))
-     (send (enc (cf-prime-prime y) (privk "sign" t)))))
-
-  ;; TTP replies with abort token given confirm request
-
-  (defrole ttp-cf2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-     (recv (cf-prime-prime y))
-     (recv (cat "sync-cf-req"
-                (enc "abrq"(l-prime-prime y) (privk "sign" a))))
-     (send (enc "abcf"
-                (enc "abrq"(l-prime-prime y) (privk "sign" a))
-                (privk "sign" t))))))
-
-;; End of Wang's protocol defn.
-
-;; Two experiments to prove Lemma 4.1
-
-(defskeleton wang
-  (vars (a b t name) (m data) (r text) (k skey))
-  (defstrand init1 1 (b b) (t t) (m m) (r r) (k k))
-  (deflistener m)
-  (non-orig
-   (privk "encr" t))
-  (uniq-orig m k)
-  (comment "Experiment 1 to prove Lemma 4.1."))
-
-(defskeleton wang
-  (vars (a b t name) (m data) (r text) (k skey))
-  (defstrand init1 1 (b b) (t t) (m m) (r r) (k k))
-  (deflistener k)
-  (non-orig
-   (privk "encr" t))
-  (uniq-orig m k)
-  (comment "Experiment 2 to prove Lemma 4.1."))
-
-;; We now have three experiments
-;; to prove Lemma 4.2, clause 1.
-
-(defskeleton wang
-  (vars (a b t name) (m data) (r text) (k skey))
-  (defstrand init1 3 (b b) (t t) (m m) (r r) (k k))
-  (non-orig
-   (privk "sign" b))
-  (comment "First of three experiments to prove Lemma 4.2, clause 1."))
-
-(defskeleton wang
-  (vars (a b t name) (m data) (r text) (k skey))
-  (defstrand init3 3 (b b) (t t) (m m) (r r) (k k))
-  (non-orig
-   (privk "sign" b))
-  (comment "Second of three experiments to prove Lemma 4.2, clause 1."))
-
-(defskeleton wang
-  (vars (a b t name) (m data) (r text) (k skey))
-  (defstrand init5 4 (b b) (t t) (m m) (r r) (k k))
-  (non-orig
-   (privk "sign" b))
-  (comment "Third of three experiments to prove Lemma 4.2, clause 1."))
-
-;; Two experiments to prove 4.2, Clause 2.
-
-(defskeleton wang
-  (vars (a b t name) (m data) (r text) (k skey))
-  (defstrand resp1 3 (a a) (t t) (m m) (r r) (k k))
-  (non-orig
-   (privk "sign" a))
-  (comment
-   "First of two experiments to prove Lemma 4.2, clause 2."))
-
-(defskeleton wang
-  (vars (a b t name) (m data) (r text) (k skey))
-  (defstrand resp2 4 (a a) (t t) (m m) (r r) (k k))
-  (non-orig
-   (privk "sign" a))
-  (comment
-   "Second of two experiments to prove Lemma 4.2, clause 2."))
-
-;; Experiment to prove Lemma 4.2, clause 3.
-
-(defskeleton wang
-  (vars (a b t name) (e1 e2 x mesg))
-  (defstrand resp3 4 (a a) (t t))
-  (non-orig
-   (privk "sign" a))
-  (comment
-   "Experiments to prove Lemma 4.2, clause 3."))
-
-;; One experiment to prove Lemma 4.3, Clause 1.
-
-(defskeleton wang
-  (vars (a b t name) (y x mesg))
-  (deflistener
-    (enc "abcf" (enc "abrq" (l-prime y x) (privk "sign" a))
-	 (privk "sign" t)))
-  (non-orig
-   (privk "sign" t))
-  (comment
-   "Experiments to prove Lemma 4.3, clause 1."))
-
-;; Three experiments to prove Lemma 4.3, Clause 2.
-
-(defskeleton wang
-  (vars (y x mesg) (a b t name))
-  (defstrand ttp-ab1 3 (y y) (x x) (a a) (b b) (t t))
-  (non-orig (privk "sign" a)  (privk "encr" t))
-  (comment
-   "Experiment 1 to prove Lemma 4.3, clause 2."))
-
-(defskeleton wang
-  (vars (a b t name) (r text) (k skey) (y mesg))
-  (defstrand ttp-rc2 3 (a a) (b b) (t t))
-  (non-orig (privk "sign" a)  (privk "encr" t))
-  (comment
-   "Experiment 2 to prove Lemma 4.3, clause 2."))
-
-(defskeleton wang
-  (vars (a b t name) (r text) (k skey) (y mesg))
-  (defstrand ttp-cf2 3 (a a) (b b) (t t))
-  (non-orig (privk "sign" a)  (privk "encr" t))
-  (comment
-   "Experiment 3 to prove Lemma 4.3, clause 2."))
diff --git a/tst/owang.tst b/tst/owang.tst
deleted file mode 100644
--- a/tst/owang.tst
+++ /dev/null
@@ -1,5364 +0,0 @@
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/owang.scm")
-
-(defprotocol wang basic
-  (defrole init1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
-  (defrole init2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init3
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole init4
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init5
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole resp1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
-  (defrole resp2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
-  (defrole resp3
-    (vars (a b t name) (e1 e2 x mesg))
-    (trace
-      (recv
-        (cat (cat a b t (hash e1) x) e1 e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
-      (recv
-        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab1
-    (vars (a b t name) (y x mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab2
-    (vars (a b t name) (y x e mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (recv
-        (cat "sync-abrq"
-          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
-      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
-  (defrole ttp-rc1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-rc-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)))) (send (cat k r))))
-  (defrole ttp-rc2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-rc-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-cf1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-cf-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (enc (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)) (privk "sign" t)))))
-  (defrole ttp-cf2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-cf-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t))))))
-
-(defskeleton wang
-  (vars (r text) (m data) (b t a name) (k skey))
-  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
-  (deflistener m)
-  (non-orig (privk "encr" t))
-  (uniq-orig m k)
-  (comment "Experiment 1 to prove Lemma 4.1.")
-  (traces
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))) ((recv m) (send m)))
-  (label 0)
-  (unrealized (1 0))
-  (preskeleton)
-  (origs (m (0 0)) (k (0 0)))
-  (comment "Not a skeleton"))
-
-(defskeleton wang
-  (vars (r text) (m data) (b t a name) (k skey))
-  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
-  (deflistener m)
-  (precedes ((0 0) (1 0)))
-  (non-orig (privk "encr" t))
-  (uniq-orig m k)
-  (comment "Experiment 1 to prove Lemma 4.1.")
-  (traces
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))) ((recv m) (send m)))
-  (label 1)
-  (parent 0)
-  (unrealized (1 0))
-  (origs (m (0 0)) (k (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton wang
-  (vars (r text) (m data) (b t a name) (k skey))
-  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
-  (deflistener m)
-  (deflistener k)
-  (precedes ((0 0) (2 0)) ((2 1) (1 0)))
-  (non-orig (privk "encr" t))
-  (uniq-orig m k)
-  (operation nonce-test (added-listener k) m (1 0) (enc m k))
-  (traces
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))) ((recv m) (send m))
-    ((recv k) (send k)))
-  (label 2)
-  (parent 1)
-  (unrealized (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton wang
-  (vars (r text) (m data) (b t a name) (k skey))
-  (deflistener m)
-  (deflistener k)
-  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 1) (0 0)) ((2 2) (1 0)))
-  (non-orig (privk "encr" t))
-  (uniq-orig m k)
-  (operation nonce-test (displaced 0 3 init1 3) k (2 0)
-    (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-      (pubk "encr" t)))
-  (traces ((recv m) (send m)) ((recv k) (send k))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
-  (label 3)
-  (parent 2)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton wang
-  (vars (r text) (m data) (b t a name) (k skey))
-  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
-  (deflistener m)
-  (deflistener k)
-  (defstrand ttp-rc1 3 (y (hash (enc m k))) (r r) (a a) (b b) (t t)
-    (k k))
-  (precedes ((0 0) (3 0)) ((2 1) (1 0)) ((3 2) (2 0)))
-  (non-orig (privk "encr" t))
-  (uniq-orig m k)
-  (operation nonce-test (added-strand ttp-rc1 3) k (2 0)
-    (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-      (pubk "encr" t)))
-  (traces
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))) ((recv m) (send m))
-    ((recv k) (send k))
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k))
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))
-         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))
-         (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat "sync-rc-req" (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
-  (label 4)
-  (parent 2)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton wang
-  (vars (r text) (m data) (b t a name) (k skey))
-  (deflistener m)
-  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 2) (0 0)))
-  (non-orig (privk "encr" t))
-  (uniq-orig m k)
-  (operation generalization deleted (1 0))
-  (traces ((recv m) (send m))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
-  (label 5)
-  (parent 3)
-  (unrealized)
-  (shape)
-  (maps ((1 0) ((b b) (t t) (m m) (r r) (k k) (a a))))
-  (origs (m (1 0)) (k (1 0))))
-
-(defskeleton wang
-  (vars (r text) (m data) (b t a name) (k skey))
-  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
-  (deflistener m)
-  (defstrand ttp-rc1 3 (y (hash (enc m k))) (r r) (a a) (b b) (t t)
-    (k k))
-  (precedes ((0 0) (2 0)) ((2 2) (1 0)))
-  (non-orig (privk "encr" t))
-  (uniq-orig m k)
-  (operation generalization deleted (2 0))
-  (traces
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))) ((recv m) (send m))
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k))
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))
-         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))
-         (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat "sync-rc-req" (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
-  (label 6)
-  (parent 4)
-  (unrealized)
-  (shape)
-  (maps ((0 1) ((b b) (t t) (m m) (r r) (k k) (a a))))
-  (origs (m (0 0)) (k (0 0))))
-
-(comment "Nothing left to do")
-
-(defprotocol wang basic
-  (defrole init1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
-  (defrole init2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init3
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole init4
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init5
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole resp1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
-  (defrole resp2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
-  (defrole resp3
-    (vars (a b t name) (e1 e2 x mesg))
-    (trace
-      (recv
-        (cat (cat a b t (hash e1) x) e1 e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
-      (recv
-        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab1
-    (vars (a b t name) (y x mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab2
-    (vars (a b t name) (y x e mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (recv
-        (cat "sync-abrq"
-          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
-      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
-  (defrole ttp-rc1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-rc-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)))) (send (cat k r))))
-  (defrole ttp-rc2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-rc-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-cf1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-cf-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (enc (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)) (privk "sign" t)))))
-  (defrole ttp-cf2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-cf-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t))))))
-
-(defskeleton wang
-  (vars (r text) (m data) (b t a name) (k skey))
-  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
-  (deflistener k)
-  (non-orig (privk "encr" t))
-  (uniq-orig m k)
-  (comment "Experiment 2 to prove Lemma 4.1.")
-  (traces
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))) ((recv k) (send k)))
-  (label 7)
-  (unrealized (1 0))
-  (preskeleton)
-  (origs (m (0 0)) (k (0 0)))
-  (comment "Not a skeleton"))
-
-(defskeleton wang
-  (vars (r text) (m data) (b t a name) (k skey))
-  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
-  (deflistener k)
-  (precedes ((0 0) (1 0)))
-  (non-orig (privk "encr" t))
-  (uniq-orig m k)
-  (comment "Experiment 2 to prove Lemma 4.1.")
-  (traces
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))) ((recv k) (send k)))
-  (label 8)
-  (parent 7)
-  (unrealized (1 0))
-  (origs (m (0 0)) (k (0 0)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton wang
-  (vars (r text) (m data) (b t a name) (k skey))
-  (deflistener k)
-  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 2) (0 0)))
-  (non-orig (privk "encr" t))
-  (uniq-orig m k)
-  (operation nonce-test (displaced 0 2 init1 3) k (1 0)
-    (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-      (pubk "encr" t)))
-  (traces ((recv k) (send k))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
-  (label 9)
-  (parent 8)
-  (unrealized)
-  (shape)
-  (maps ((1 0) ((b b) (t t) (m m) (r r) (k k) (a a))))
-  (origs (m (1 0)) (k (1 0))))
-
-(defskeleton wang
-  (vars (r text) (m data) (b t a name) (k skey))
-  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
-  (deflistener k)
-  (defstrand ttp-rc1 3 (y (hash (enc m k))) (r r) (a a) (b b) (t t)
-    (k k))
-  (precedes ((0 0) (2 0)) ((2 2) (1 0)))
-  (non-orig (privk "encr" t))
-  (uniq-orig m k)
-  (operation nonce-test (added-strand ttp-rc1 3) k (1 0)
-    (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-      (pubk "encr" t)))
-  (traces
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))) ((recv k) (send k))
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k))
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))
-         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))
-         (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat "sync-rc-req" (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
-  (label 10)
-  (parent 8)
-  (unrealized)
-  (shape)
-  (maps ((0 1) ((b b) (t t) (m m) (r r) (k k) (a a))))
-  (origs (m (0 0)) (k (0 0))))
-
-(comment "Nothing left to do")
-
-(defprotocol wang basic
-  (defrole init1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
-  (defrole init2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init3
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole init4
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init5
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole resp1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
-  (defrole resp2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
-  (defrole resp3
-    (vars (a b t name) (e1 e2 x mesg))
-    (trace
-      (recv
-        (cat (cat a b t (hash e1) x) e1 e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
-      (recv
-        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab1
-    (vars (a b t name) (y x mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab2
-    (vars (a b t name) (y x e mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (recv
-        (cat "sync-abrq"
-          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
-      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
-  (defrole ttp-rc1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-rc-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)))) (send (cat k r))))
-  (defrole ttp-rc2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-rc-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-cf1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-cf-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (enc (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)) (privk "sign" t)))))
-  (defrole ttp-cf2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-cf-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t))))))
-
-(defskeleton wang
-  (vars (r text) (m data) (b t a name) (k skey))
-  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (k k))
-  (non-orig (privk "sign" b))
-  (comment "First of three experiments to prove Lemma 4.2, clause 1.")
-  (traces
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
-  (label 11)
-  (unrealized (0 1))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton wang
-  (vars (r text) (m data) (b t a name) (k skey))
-  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (k k))
-  (defstrand resp1 2 (r r) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 1) (0 1)))
-  (non-orig (privk "sign" b))
-  (operation encryption-test (added-strand resp1 2)
-    (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-        (pubk "encr" t)) (privk "sign" b)) (0 1))
-  (traces
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (send (cat k r)))
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (label 12)
-  (parent 11)
-  (unrealized)
-  (shape)
-  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
-  (origs))
-
-(defskeleton wang
-  (vars (r text) (m data) (b t a name) (k skey))
-  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (k k))
-  (defstrand resp3 2 (e1 (enc m k))
-    (e2
-      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-        (pubk "encr" t))) (x (hash k)) (a a) (b b) (t t))
-  (precedes ((1 1) (0 1)))
-  (non-orig (privk "sign" b))
-  (operation encryption-test (added-strand resp3 2)
-    (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-        (pubk "encr" t)) (privk "sign" b)) (0 1))
-  (traces
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (send (cat k r)))
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))))
-  (label 13)
-  (parent 11)
-  (unrealized)
-  (shape)
-  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol wang basic
-  (defrole init1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
-  (defrole init2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init3
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole init4
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init5
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole resp1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
-  (defrole resp2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
-  (defrole resp3
-    (vars (a b t name) (e1 e2 x mesg))
-    (trace
-      (recv
-        (cat (cat a b t (hash e1) x) e1 e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
-      (recv
-        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab1
-    (vars (a b t name) (y x mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab2
-    (vars (a b t name) (y x e mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (recv
-        (cat "sync-abrq"
-          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
-      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
-  (defrole ttp-rc1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-rc-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)))) (send (cat k r))))
-  (defrole ttp-rc2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-rc-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-cf1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-cf-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (enc (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)) (privk "sign" t)))))
-  (defrole ttp-cf2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-cf-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t))))))
-
-(defskeleton wang
-  (vars (r text) (m data) (b t a name) (k skey))
-  (defstrand init3 3 (r r) (m m) (a a) (b b) (t t) (k k))
-  (non-orig (privk "sign" b))
-  (comment "Second of three experiments to prove Lemma 4.2, clause 1.")
-  (traces
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (label 14)
-  (unrealized (0 2))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton wang
-  (vars (r text) (m data) (b t a name) (k skey))
-  (defstrand init3 3 (r r) (m m) (a a) (b b) (t t) (k k))
-  (defstrand resp1 2 (r r) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 1) (0 2)))
-  (non-orig (privk "sign" b))
-  (operation encryption-test (added-strand resp1 2)
-    (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-        (pubk "encr" t)) (privk "sign" b)) (0 2))
-  (traces
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))))
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (label 15)
-  (parent 14)
-  (unrealized)
-  (shape)
-  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
-  (origs))
-
-(defskeleton wang
-  (vars (r text) (m data) (b t a name) (k skey))
-  (defstrand init3 3 (r r) (m m) (a a) (b b) (t t) (k k))
-  (defstrand resp3 2 (e1 (enc m k))
-    (e2
-      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-        (pubk "encr" t))) (x (hash k)) (a a) (b b) (t t))
-  (precedes ((1 1) (0 2)))
-  (non-orig (privk "sign" b))
-  (operation encryption-test (added-strand resp3 2)
-    (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-        (pubk "encr" t)) (privk "sign" b)) (0 2))
-  (traces
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))))
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))))
-  (label 16)
-  (parent 14)
-  (unrealized)
-  (shape)
-  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol wang basic
-  (defrole init1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
-  (defrole init2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init3
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole init4
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init5
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole resp1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
-  (defrole resp2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
-  (defrole resp3
-    (vars (a b t name) (e1 e2 x mesg))
-    (trace
-      (recv
-        (cat (cat a b t (hash e1) x) e1 e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
-      (recv
-        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab1
-    (vars (a b t name) (y x mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab2
-    (vars (a b t name) (y x e mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (recv
-        (cat "sync-abrq"
-          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
-      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
-  (defrole ttp-rc1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-rc-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)))) (send (cat k r))))
-  (defrole ttp-rc2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-rc-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-cf1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-cf-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (enc (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)) (privk "sign" t)))))
-  (defrole ttp-cf2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-cf-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t))))))
-
-(defskeleton wang
-  (vars (r text) (m data) (b t a name) (k skey))
-  (defstrand init5 4 (r r) (m m) (a a) (b b) (t t) (k k))
-  (non-orig (privk "sign" b))
-  (comment "Third of three experiments to prove Lemma 4.2, clause 1.")
-  (traces
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (label 17)
-  (unrealized (0 1) (0 3))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton wang
-  (vars (r text) (m data) (b t a name) (k skey))
-  (defstrand init5 4 (r r) (m m) (a a) (b b) (t t) (k k))
-  (defstrand resp1 2 (r r) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 1) (0 1)))
-  (non-orig (privk "sign" b))
-  (operation encryption-test (added-strand resp1 2)
-    (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-        (pubk "encr" t)) (privk "sign" b)) (0 1))
-  (traces
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))))
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (label 18)
-  (parent 17)
-  (unrealized)
-  (shape)
-  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
-  (origs))
-
-(defskeleton wang
-  (vars (r text) (m data) (b t a name) (k skey))
-  (defstrand init5 4 (r r) (m m) (a a) (b b) (t t) (k k))
-  (defstrand resp3 2 (e1 (enc m k))
-    (e2
-      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-        (pubk "encr" t))) (x (hash k)) (a a) (b b) (t t))
-  (precedes ((1 1) (0 1)))
-  (non-orig (privk "sign" b))
-  (operation encryption-test (added-strand resp3 2)
-    (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-        (pubk "encr" t)) (privk "sign" b)) (0 1))
-  (traces
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))))
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))))
-  (label 19)
-  (parent 17)
-  (unrealized)
-  (shape)
-  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol wang basic
-  (defrole init1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
-  (defrole init2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init3
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole init4
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init5
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole resp1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
-  (defrole resp2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
-  (defrole resp3
-    (vars (a b t name) (e1 e2 x mesg))
-    (trace
-      (recv
-        (cat (cat a b t (hash e1) x) e1 e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
-      (recv
-        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab1
-    (vars (a b t name) (y x mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab2
-    (vars (a b t name) (y x e mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (recv
-        (cat "sync-abrq"
-          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
-      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
-  (defrole ttp-rc1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-rc-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)))) (send (cat k r))))
-  (defrole ttp-rc2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-rc-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-cf1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-cf-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (enc (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)) (privk "sign" t)))))
-  (defrole ttp-cf2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-cf-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t))))))
-
-(defskeleton wang
-  (vars (r text) (m data) (a t b name) (k skey))
-  (defstrand resp1 3 (r r) (m m) (a a) (b b) (t t) (k k))
-  (non-orig (privk "sign" a))
-  (comment "First of two experiments to prove Lemma 4.2, clause 2.")
-  (traces
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
-  (label 20)
-  (unrealized (0 0))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton wang
-  (vars (r text) (m data) (a t b name) (k skey))
-  (defstrand resp1 3 (r r) (m m) (a a) (b b) (t t) (k k))
-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 0) (0 0)))
-  (non-orig (privk "sign" a))
-  (operation encryption-test (added-strand init5 1)
-    (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-        (pubk "encr" t)) (privk "sign" a)) (0 0))
-  (traces
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r)))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))))
-  (label 21)
-  (parent 20)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (t t) (m m) (r r) (k k) (b b))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol wang basic
-  (defrole init1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
-  (defrole init2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init3
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole init4
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init5
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole resp1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
-  (defrole resp2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
-  (defrole resp3
-    (vars (a b t name) (e1 e2 x mesg))
-    (trace
-      (recv
-        (cat (cat a b t (hash e1) x) e1 e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
-      (recv
-        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab1
-    (vars (a b t name) (y x mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab2
-    (vars (a b t name) (y x e mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (recv
-        (cat "sync-abrq"
-          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
-      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
-  (defrole ttp-rc1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-rc-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)))) (send (cat k r))))
-  (defrole ttp-rc2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-rc-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-cf1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-cf-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (enc (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)) (privk "sign" t)))))
-  (defrole ttp-cf2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-cf-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t))))))
-
-(defskeleton wang
-  (vars (r text) (m data) (a t b name) (k skey))
-  (defstrand resp2 4 (r r) (m m) (a a) (b b) (t t) (k k))
-  (non-orig (privk "sign" a))
-  (comment "Second of two experiments to prove Lemma 4.2, clause 2.")
-  (traces
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
-  (label 22)
-  (unrealized (0 0))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton wang
-  (vars (r text) (m data) (a t b name) (k skey))
-  (defstrand resp2 4 (r r) (m m) (a a) (b b) (t t) (k k))
-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 0) (0 0)))
-  (non-orig (privk "sign" a))
-  (operation encryption-test (added-strand init5 1)
-    (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-        (pubk "encr" t)) (privk "sign" a)) (0 0))
-  (traces
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r)))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))))
-  (label 23)
-  (parent 22)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (t t) (m m) (r r) (k k) (b b))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol wang basic
-  (defrole init1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
-  (defrole init2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init3
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole init4
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init5
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole resp1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
-  (defrole resp2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
-  (defrole resp3
-    (vars (a b t name) (e1 e2 x mesg))
-    (trace
-      (recv
-        (cat (cat a b t (hash e1) x) e1 e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
-      (recv
-        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab1
-    (vars (a b t name) (y x mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab2
-    (vars (a b t name) (y x e mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (recv
-        (cat "sync-abrq"
-          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
-      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
-  (defrole ttp-rc1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-rc-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)))) (send (cat k r))))
-  (defrole ttp-rc2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-rc-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-cf1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-cf-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (enc (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)) (privk "sign" t)))))
-  (defrole ttp-cf2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-cf-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t))))))
-
-(defskeleton wang
-  (vars (e1 e2 x mesg) (a t b name))
-  (defstrand resp3 4 (e1 e1) (e2 e2) (x x) (a a) (b b) (t t))
-  (non-orig (privk "sign" a))
-  (comment "Experiments to prove Lemma 4.2, clause 3.")
-  (traces
-    ((recv
-       (cat (cat a b t (hash e1) x) e1 e2
-         (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
-      (recv
-        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
-          (privk "sign" t)))))
-  (label 24)
-  (unrealized (0 0) (0 3))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton wang
-  (vars (r text) (m data) (a t b name) (k skey))
-  (defstrand resp3 4 (e1 (enc m k))
-    (e2
-      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-        (pubk "encr" t))) (x (hash k)) (a a) (b b) (t t))
-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 0) (0 0)))
-  (non-orig (privk "sign" a))
-  (operation encryption-test (added-strand init5 1)
-    (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-        (pubk "encr" t)) (privk "sign" a)) (0 0))
-  (traces
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))))
-  (label 25)
-  (parent 24)
-  (unrealized (0 3))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton wang
-  (vars (r text) (m data) (a t b name) (k skey))
-  (defstrand resp3 4 (e1 (enc m k))
-    (e2
-      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-        (pubk "encr" t))) (x (hash k)) (a a) (b b) (t t))
-  (defstrand init3 2 (r r) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 0) (0 0)) ((1 1) (0 3)))
-  (non-orig (privk "sign" a))
-  (operation encryption-test (displaced 1 2 init3 2)
-    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 3))
-  (traces
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
-  (label 26)
-  (parent 25)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((a a) (t t) (b b) (e1 (enc m k))
-        (e2
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))) (x (hash k)))))
-  (origs))
-
-(defskeleton wang
-  (vars (r r-0 text) (m data) (a t b name) (k skey))
-  (defstrand resp3 4 (e1 (enc m k))
-    (e2
-      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-        (pubk "encr" t))) (x (hash k)) (a a) (b b) (t t))
-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
-  (defstrand init3 2 (r r-0) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 0) (0 0)) ((2 1) (0 3)))
-  (non-orig (privk "sign" a))
-  (operation encryption-test (added-strand init3 2)
-    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 3))
-  (traces
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a)))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
-  (label 27)
-  (parent 25)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((a a) (t t) (b b) (e1 (enc m k))
-        (e2
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))) (x (hash k)))))
-  (origs))
-
-(defskeleton wang
-  (vars (r text) (m data) (a t b name) (k skey))
-  (defstrand resp3 4 (e1 (enc m k))
-    (e2
-      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-        (pubk "encr" t))) (x (hash k)) (a a) (b b) (t t))
-  (defstrand init5 3 (r r) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 0) (0 0)) ((1 2) (0 3)))
-  (non-orig (privk "sign" a))
-  (operation encryption-test (displaced 1 2 init5 3)
-    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 3))
-  (traces
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
-  (label 28)
-  (parent 25)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((a a) (t t) (b b) (e1 (enc m k))
-        (e2
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))) (x (hash k)))))
-  (origs))
-
-(defskeleton wang
-  (vars (r r-0 text) (m data) (a t b name) (k skey))
-  (defstrand resp3 4 (e1 (enc m k))
-    (e2
-      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-        (pubk "encr" t))) (x (hash k)) (a a) (b b) (t t))
-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
-  (defstrand init5 3 (r r-0) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 0) (0 0)) ((2 2) (0 3)))
-  (non-orig (privk "sign" a))
-  (operation encryption-test (added-strand init5 3)
-    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 3))
-  (traces
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a)))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
-             (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
-  (label 29)
-  (parent 25)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((a a) (t t) (b b) (e1 (enc m k))
-        (e2
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))) (x (hash k)))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol wang basic
-  (defrole init1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
-  (defrole init2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init3
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole init4
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init5
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole resp1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
-  (defrole resp2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
-  (defrole resp3
-    (vars (a b t name) (e1 e2 x mesg))
-    (trace
-      (recv
-        (cat (cat a b t (hash e1) x) e1 e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
-      (recv
-        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab1
-    (vars (a b t name) (y x mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab2
-    (vars (a b t name) (y x e mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (recv
-        (cat "sync-abrq"
-          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
-      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
-  (defrole ttp-rc1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-rc-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)))) (send (cat k r))))
-  (defrole ttp-rc2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-rc-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-cf1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-cf-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (enc (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)) (privk "sign" t)))))
-  (defrole ttp-cf2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-cf-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t))))))
-
-(defskeleton wang
-  (vars (y x mesg) (a b t name))
-  (deflistener
-    (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-      (privk "sign" t)))
-  (non-orig (privk "sign" t))
-  (comment "Experiments to prove Lemma 4.3, clause 1.")
-  (traces
-    ((recv
-       (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-         (privk "sign" t)))
-      (send
-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-          (privk "sign" t)))))
-  (label 30)
-  (unrealized (0 0))
-  (origs)
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton wang
-  (vars (y x mesg) (a b t name))
-  (deflistener
-    (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-      (privk "sign" t)))
-  (defstrand ttp-ab1 3 (y y) (x x) (a a) (b b) (t t))
-  (precedes ((1 2) (0 0)))
-  (non-orig (privk "sign" t))
-  (operation encryption-test (added-strand ttp-ab1 3)
-    (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-      (privk "sign" t)) (0 0))
-  (traces
-    ((recv
-       (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-         (privk "sign" t)))
-      (send
-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-          (privk "sign" t))))
-    ((recv (enc "abrq" a b t y x (privk "sign" a)))
-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-          (privk "sign" t)))))
-  (label 31)
-  (parent 30)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (t t) (y y) (x x))))
-  (origs))
-
-(defskeleton wang
-  (vars (y mesg) (r text) (a b t name) (k skey))
-  (deflistener
-    (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-      (privk "sign" t)))
-  (defstrand ttp-rc2 3 (y y) (r r) (a a) (b b) (t t) (k k))
-  (precedes ((1 2) (0 0)))
-  (non-orig (privk "sign" t))
-  (operation encryption-test (added-strand ttp-rc2 3)
-    (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-      (privk "sign" t)) (0 0))
-  (traces
-    ((recv
-       (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-         (privk "sign" t)))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t))))
-    ((recv
-       (cat (cat a b t y (hash k))
-         (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-         (enc "eootag" (hash a b t y (hash k))
-           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-           (privk "sign" a))
-         (enc "eortag" (hash a b t y (hash k))
-           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-           (privk "sign" b))
-         (enc "rcrq" (cat a b t y (hash k))
-           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-           (privk "sign" b))))
-      (recv
-        (cat "sync-rc-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (label 32)
-  (parent 30)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (t t) (y y) (x (hash k)))))
-  (origs))
-
-(defskeleton wang
-  (vars (y mesg) (r text) (a b t name) (k skey))
-  (deflistener
-    (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-      (privk "sign" t)))
-  (defstrand ttp-cf2 3 (y y) (r r) (a a) (b b) (t t) (k k))
-  (precedes ((1 2) (0 0)))
-  (non-orig (privk "sign" t))
-  (operation encryption-test (added-strand ttp-cf2 3)
-    (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-      (privk "sign" t)) (0 0))
-  (traces
-    ((recv
-       (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-         (privk "sign" t)))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t))))
-    ((recv
-       (cat (cat a b t y (hash k))
-         (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-         (enc "eootag" (hash a b t y (hash k))
-           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-           (privk "sign" a))
-         (enc "eortag" (hash a b t y (hash k))
-           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-           (privk "sign" b))
-         (enc "cfrq" (cat a b t y (hash k))
-           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-           (privk "sign" b))))
-      (recv
-        (cat "sync-cf-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (label 33)
-  (parent 30)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (t t) (y y) (x (hash k)))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol wang basic
-  (defrole init1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
-  (defrole init2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init3
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole init4
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init5
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole resp1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
-  (defrole resp2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
-  (defrole resp3
-    (vars (a b t name) (e1 e2 x mesg))
-    (trace
-      (recv
-        (cat (cat a b t (hash e1) x) e1 e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
-      (recv
-        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab1
-    (vars (a b t name) (y x mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab2
-    (vars (a b t name) (y x e mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (recv
-        (cat "sync-abrq"
-          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
-      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
-  (defrole ttp-rc1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-rc-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)))) (send (cat k r))))
-  (defrole ttp-rc2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-rc-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-cf1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-cf-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (enc (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)) (privk "sign" t)))))
-  (defrole ttp-cf2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-cf-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t))))))
-
-(defskeleton wang
-  (vars (y x mesg) (a b t name))
-  (defstrand ttp-ab1 3 (y y) (x x) (a a) (b b) (t t))
-  (non-orig (privk "encr" t) (privk "sign" a))
-  (comment "Experiment 1 to prove Lemma 4.3, clause 2.")
-  (traces
-    ((recv (enc "abrq" a b t y x (privk "sign" a)))
-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-          (privk "sign" t)))))
-  (label 34)
-  (unrealized (0 0))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton wang
-  (vars (r text) (m data) (a b t name) (k skey))
-  (defstrand ttp-ab1 3 (y (hash (enc m k))) (x (hash k)) (a a) (b b)
-    (t t))
-  (defstrand init3 2 (r r) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 1) (0 0)))
-  (non-orig (privk "encr" t) (privk "sign" a))
-  (operation encryption-test (added-strand init3 2)
-    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 0))
-  (traces
-    ((recv
-       (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (send
-        (cat "sync-abrq"
-          (enc "abrq" a b t (hash (enc m k)) (hash k)
-            (privk "sign" a))))
-      (send
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
-  (label 35)
-  (parent 34)
-  (unrealized)
-  (shape)
-  (maps ((0) ((y (hash (enc m k))) (x (hash k)) (a a) (b b) (t t))))
-  (origs))
-
-(defskeleton wang
-  (vars (r text) (m data) (a b t name) (k skey))
-  (defstrand ttp-ab1 3 (y (hash (enc m k))) (x (hash k)) (a a) (b b)
-    (t t))
-  (defstrand init5 3 (r r) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 2) (0 0)))
-  (non-orig (privk "encr" t) (privk "sign" a))
-  (operation encryption-test (added-strand init5 3)
-    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 0))
-  (traces
-    ((recv
-       (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (send
-        (cat "sync-abrq"
-          (enc "abrq" a b t (hash (enc m k)) (hash k)
-            (privk "sign" a))))
-      (send
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
-  (label 36)
-  (parent 34)
-  (unrealized)
-  (shape)
-  (maps ((0) ((y (hash (enc m k))) (x (hash k)) (a a) (b b) (t t))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol wang basic
-  (defrole init1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
-  (defrole init2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init3
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole init4
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init5
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole resp1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
-  (defrole resp2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
-  (defrole resp3
-    (vars (a b t name) (e1 e2 x mesg))
-    (trace
-      (recv
-        (cat (cat a b t (hash e1) x) e1 e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
-      (recv
-        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab1
-    (vars (a b t name) (y x mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab2
-    (vars (a b t name) (y x e mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (recv
-        (cat "sync-abrq"
-          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
-      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
-  (defrole ttp-rc1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-rc-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)))) (send (cat k r))))
-  (defrole ttp-rc2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-rc-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-cf1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-cf-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (enc (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)) (privk "sign" t)))))
-  (defrole ttp-cf2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-cf-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t))))))
-
-(defskeleton wang
-  (vars (y mesg) (r text) (a b t name) (k skey))
-  (defstrand ttp-rc2 3 (y y) (r r) (a a) (b b) (t t) (k k))
-  (non-orig (privk "encr" t) (privk "sign" a))
-  (comment "Experiment 2 to prove Lemma 4.3, clause 2.")
-  (traces
-    ((recv
-       (cat (cat a b t y (hash k))
-         (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-         (enc "eootag" (hash a b t y (hash k))
-           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-           (privk "sign" a))
-         (enc "eortag" (hash a b t y (hash k))
-           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-           (privk "sign" b))
-         (enc "rcrq" (cat a b t y (hash k))
-           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-           (privk "sign" b))))
-      (recv
-        (cat "sync-rc-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (label 37)
-  (unrealized (0 0) (0 1))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton wang
-  (vars (r text) (m data) (a b t name) (k skey))
-  (defstrand ttp-rc2 3 (y (hash (enc m k))) (r r) (a a) (b b) (t t)
-    (k k))
-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 0) (0 0)))
-  (non-orig (privk "encr" t) (privk "sign" a))
-  (operation encryption-test (added-strand init5 1)
-    (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-        (pubk "encr" t)) (privk "sign" a)) (0 0))
-  (traces
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k))
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))
-         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))
-         (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))))
-      (recv
-        (cat "sync-rc-req"
-          (enc "abrq" a b t (hash (enc m k)) (hash k)
-            (privk "sign" a))))
-      (send
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))))
-  (label 38)
-  (parent 37)
-  (unrealized (0 1))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton wang
-  (vars (r text) (m data) (a b t name) (k skey))
-  (defstrand ttp-rc2 3 (y (hash (enc m k))) (r r) (a a) (b b) (t t)
-    (k k))
-  (defstrand init3 2 (r r) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 0) (0 0)) ((1 1) (0 1)))
-  (non-orig (privk "encr" t) (privk "sign" a))
-  (operation encryption-test (displaced 1 2 init3 2)
-    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 1))
-  (traces
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k))
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))
-         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))
-         (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))))
-      (recv
-        (cat "sync-rc-req"
-          (enc "abrq" a b t (hash (enc m k)) (hash k)
-            (privk "sign" a))))
-      (send
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
-  (label 39)
-  (parent 38)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (t t) (r r) (k k) (y (hash (enc m k))))))
-  (origs))
-
-(defskeleton wang
-  (vars (r r-0 text) (m data) (a b t name) (k skey))
-  (defstrand ttp-rc2 3 (y (hash (enc m k))) (r r) (a a) (b b) (t t)
-    (k k))
-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
-  (defstrand init3 2 (r r-0) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 0) (0 0)) ((2 1) (0 1)))
-  (non-orig (privk "encr" t) (privk "sign" a))
-  (operation encryption-test (added-strand init3 2)
-    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 1))
-  (traces
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k))
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))
-         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))
-         (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))))
-      (recv
-        (cat "sync-rc-req"
-          (enc "abrq" a b t (hash (enc m k)) (hash k)
-            (privk "sign" a))))
-      (send
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a)))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
-  (label 40)
-  (parent 38)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (t t) (r r) (k k) (y (hash (enc m k))))))
-  (origs))
-
-(defskeleton wang
-  (vars (r text) (m data) (a b t name) (k skey))
-  (defstrand ttp-rc2 3 (y (hash (enc m k))) (r r) (a a) (b b) (t t)
-    (k k))
-  (defstrand init5 3 (r r) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 0) (0 0)) ((1 2) (0 1)))
-  (non-orig (privk "encr" t) (privk "sign" a))
-  (operation encryption-test (displaced 1 2 init5 3)
-    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 1))
-  (traces
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k))
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))
-         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))
-         (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))))
-      (recv
-        (cat "sync-rc-req"
-          (enc "abrq" a b t (hash (enc m k)) (hash k)
-            (privk "sign" a))))
-      (send
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
-  (label 41)
-  (parent 38)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (t t) (r r) (k k) (y (hash (enc m k))))))
-  (origs))
-
-(defskeleton wang
-  (vars (r r-0 text) (m data) (a b t name) (k skey))
-  (defstrand ttp-rc2 3 (y (hash (enc m k))) (r r) (a a) (b b) (t t)
-    (k k))
-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
-  (defstrand init5 3 (r r-0) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 0) (0 0)) ((2 2) (0 1)))
-  (non-orig (privk "encr" t) (privk "sign" a))
-  (operation encryption-test (added-strand init5 3)
-    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 1))
-  (traces
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k))
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))
-         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))
-         (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))))
-      (recv
-        (cat "sync-rc-req"
-          (enc "abrq" a b t (hash (enc m k)) (hash k)
-            (privk "sign" a))))
-      (send
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a)))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
-             (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
-  (label 42)
-  (parent 38)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (t t) (r r) (k k) (y (hash (enc m k))))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol wang basic
-  (defrole init1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
-  (defrole init2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init3
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole init4
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole init5
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))))
-  (defrole resp1
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
-  (defrole resp2
-    (vars (a b t name) (m data) (r text) (k skey))
-    (trace
-      (recv
-        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t))
-          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" a))
-          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
-            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
-  (defrole resp3
-    (vars (a b t name) (e1 e2 x mesg))
-    (trace
-      (recv
-        (cat (cat a b t (hash e1) x) e1 e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
-      (send
-        (cat (cat a b t (hash e1) x) e2
-          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
-          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
-          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
-      (recv
-        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab1
-    (vars (a b t name) (y x mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-ab2
-    (vars (a b t name) (y x e mesg))
-    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
-      (recv
-        (cat "sync-abrq"
-          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
-      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
-  (defrole ttp-rc1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-rc-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)))) (send (cat k r))))
-  (defrole ttp-rc2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "rcrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-rc-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (defrole ttp-cf1
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (cat "sync-cf-req" (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (send
-        (enc (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b)) (privk "sign" t)))))
-  (defrole ttp-cf2
-    (vars (a b t name) (r text) (k skey) (y mesg))
-    (trace
-      (recv
-        (cat (cat a b t y (hash k))
-          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-          (enc "eootag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" a))
-          (enc "eortag" (hash a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))
-          (enc "cfrq" (cat a b t y (hash k))
-            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-            (privk "sign" b))))
-      (recv
-        (cat "sync-cf-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t))))))
-
-(defskeleton wang
-  (vars (y mesg) (r text) (a b t name) (k skey))
-  (defstrand ttp-cf2 3 (y y) (r r) (a a) (b b) (t t) (k k))
-  (non-orig (privk "encr" t) (privk "sign" a))
-  (comment "Experiment 3 to prove Lemma 4.3, clause 2.")
-  (traces
-    ((recv
-       (cat (cat a b t y (hash k))
-         (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-         (enc "eootag" (hash a b t y (hash k))
-           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-           (privk "sign" a))
-         (enc "eortag" (hash a b t y (hash k))
-           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-           (privk "sign" b))
-         (enc "cfrq" (cat a b t y (hash k))
-           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
-           (privk "sign" b))))
-      (recv
-        (cat "sync-cf-req"
-          (enc "abrq" a b t y (hash k) (privk "sign" a))))
-      (send
-        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
-          (privk "sign" t)))))
-  (label 43)
-  (unrealized (0 0) (0 1))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton wang
-  (vars (r text) (m data) (a b t name) (k skey))
-  (defstrand ttp-cf2 3 (y (hash (enc m k))) (r r) (a a) (b b) (t t)
-    (k k))
-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 0) (0 0)))
-  (non-orig (privk "encr" t) (privk "sign" a))
-  (operation encryption-test (added-strand init5 1)
-    (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-        (pubk "encr" t)) (privk "sign" a)) (0 0))
-  (traces
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k))
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))
-         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))
-         (enc "cfrq" (cat a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))))
-      (recv
-        (cat "sync-cf-req"
-          (enc "abrq" a b t (hash (enc m k)) (hash k)
-            (privk "sign" a))))
-      (send
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))))
-  (label 44)
-  (parent 43)
-  (unrealized (0 1))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton wang
-  (vars (r text) (m data) (a b t name) (k skey))
-  (defstrand ttp-cf2 3 (y (hash (enc m k))) (r r) (a a) (b b) (t t)
-    (k k))
-  (defstrand init3 2 (r r) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 0) (0 0)) ((1 1) (0 1)))
-  (non-orig (privk "encr" t) (privk "sign" a))
-  (operation encryption-test (displaced 1 2 init3 2)
-    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 1))
-  (traces
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k))
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))
-         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))
-         (enc "cfrq" (cat a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))))
-      (recv
-        (cat "sync-cf-req"
-          (enc "abrq" a b t (hash (enc m k)) (hash k)
-            (privk "sign" a))))
-      (send
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
-  (label 45)
-  (parent 44)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (t t) (r r) (k k) (y (hash (enc m k))))))
-  (origs))
-
-(defskeleton wang
-  (vars (r r-0 text) (m data) (a b t name) (k skey))
-  (defstrand ttp-cf2 3 (y (hash (enc m k))) (r r) (a a) (b b) (t t)
-    (k k))
-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
-  (defstrand init3 2 (r r-0) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 0) (0 0)) ((2 1) (0 1)))
-  (non-orig (privk "encr" t) (privk "sign" a))
-  (operation encryption-test (added-strand init3 2)
-    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 1))
-  (traces
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k))
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))
-         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))
-         (enc "cfrq" (cat a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))))
-      (recv
-        (cat "sync-cf-req"
-          (enc "abrq" a b t (hash (enc m k)) (hash k)
-            (privk "sign" a))))
-      (send
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a)))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
-             (pubk "encr" t)) (privk "sign" a))))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
-  (label 46)
-  (parent 44)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (t t) (r r) (k k) (y (hash (enc m k))))))
-  (origs))
-
-(defskeleton wang
-  (vars (r text) (m data) (a b t name) (k skey))
-  (defstrand ttp-cf2 3 (y (hash (enc m k))) (r r) (a a) (b b) (t t)
-    (k k))
-  (defstrand init5 3 (r r) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 0) (0 0)) ((1 2) (0 1)))
-  (non-orig (privk "encr" t) (privk "sign" a))
-  (operation encryption-test (displaced 1 2 init5 3)
-    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 1))
-  (traces
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k))
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))
-         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))
-         (enc "cfrq" (cat a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))))
-      (recv
-        (cat "sync-cf-req"
-          (enc "abrq" a b t (hash (enc m k)) (hash k)
-            (privk "sign" a))))
-      (send
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
-  (label 47)
-  (parent 44)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (t t) (r r) (k k) (y (hash (enc m k))))))
-  (origs))
-
-(defskeleton wang
-  (vars (r r-0 text) (m data) (a b t name) (k skey))
-  (defstrand ttp-cf2 3 (y (hash (enc m k))) (r r) (a a) (b b) (t t)
-    (k k))
-  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
-  (defstrand init5 3 (r r-0) (m m) (a a) (b b) (t t) (k k))
-  (precedes ((1 0) (0 0)) ((2 2) (0 1)))
-  (non-orig (privk "encr" t) (privk "sign" a))
-  (operation encryption-test (added-strand init5 3)
-    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 1))
-  (traces
-    ((recv
-       (cat (cat a b t (hash (enc m k)) (hash k))
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a))
-         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))
-         (enc "cfrq" (cat a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" b))))
-      (recv
-        (cat "sync-cf-req"
-          (enc "abrq" a b t (hash (enc m k)) (hash k)
-            (privk "sign" a))))
-      (send
-        (enc "abcf"
-          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
-          (privk "sign" t))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
-             (pubk "encr" t)) (privk "sign" a)))))
-    ((send
-       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
-         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
-           (pubk "encr" t))
-         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
-           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
-             (pubk "encr" t)) (privk "sign" a))))
-      (recv
-        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
-          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
-            (pubk "encr" t)) (privk "sign" b)))
-      (send
-        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
-  (label 48)
-  (parent 44)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (t t) (r r) (k k) (y (hash (enc m k))))))
-  (origs))
-
-(comment "Nothing left to do")
diff --git a/tst/owat.scm b/tst/owat.scm
deleted file mode 100644
--- a/tst/owat.scm
+++ /dev/null
@@ -1,28 +0,0 @@
-(herald "One-way Authentication Test with bltk keys"
-	(algebra diffie-hellman)
-	(bound 12))
-
-(defprotocol owa diffie-hellman
-  (defrole init
-    (vars (a b name) (n text))
-    (trace
-     (send a)
-     (recv n)
-     (send (enc n (bltk a b)))))
-  (defrole resp
-    (vars (a b name) (n text))
-    (trace
-     (recv a)
-     (send n)
-     (recv (enc n (bltk a b))))))
-
-(defskeleton owa
-  (vars (a b name) (n text))
-  (defstrand init 3 (a a) (b b) (n n))
-  (non-orig (bltk a b)))
-
-(defskeleton owa
-  (vars (a b name) (n text))
-  (defstrand resp 3 (a a) (b b) (n n))
-  (non-orig (bltk a b))
-  (uniq-orig n))
diff --git a/tst/owat.tst b/tst/owat.tst
deleted file mode 100644
--- a/tst/owat.tst
+++ /dev/null
@@ -1,83 +0,0 @@
-(herald "One-way Authentication Test with bltk keys"
-  (algebra diffie-hellman) (bound 12))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/owat.scm")
-
-(defprotocol owa diffie-hellman
-  (defrole init
-    (vars (a b name) (n text))
-    (trace (send a) (recv n) (send (enc n (bltk a b)))))
-  (defrole resp
-    (vars (a b name) (n text))
-    (trace (recv a) (send n) (recv (enc n (bltk a b))))))
-
-(defskeleton owa
-  (vars (n text) (a b name))
-  (defstrand init 3 (n n) (a a) (b b))
-  (non-orig (bltk a b))
-  (traces ((send a) (recv n) (send (enc n (bltk a b)))))
-  (label 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (n n))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol owa diffie-hellman
-  (defrole init
-    (vars (a b name) (n text))
-    (trace (send a) (recv n) (send (enc n (bltk a b)))))
-  (defrole resp
-    (vars (a b name) (n text))
-    (trace (recv a) (send n) (recv (enc n (bltk a b))))))
-
-(defskeleton owa
-  (vars (n text) (a b name))
-  (defstrand resp 3 (n n) (a a) (b b))
-  (non-orig (bltk a b))
-  (uniq-orig n)
-  (traces ((recv a) (send n) (recv (enc n (bltk a b)))))
-  (label 1)
-  (unrealized (0 2))
-  (origs (n (0 1)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton owa
-  (vars (n text) (a b name))
-  (defstrand resp 3 (n n) (a a) (b b))
-  (defstrand init 3 (n n) (a b) (b a))
-  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
-  (non-orig (bltk a b))
-  (uniq-orig n)
-  (operation encryption-test (added-strand init 3) (enc n (bltk a b))
-    (0 2))
-  (traces ((recv a) (send n) (recv (enc n (bltk a b))))
-    ((send b) (recv n) (send (enc n (bltk a b)))))
-  (label 2)
-  (parent 1)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (n n))))
-  (origs (n (0 1))))
-
-(defskeleton owa
-  (vars (n text) (a b name))
-  (defstrand resp 3 (n n) (a a) (b b))
-  (defstrand init 3 (n n) (a a) (b b))
-  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
-  (non-orig (bltk a b))
-  (uniq-orig n)
-  (operation encryption-test (added-strand init 3) (enc n (bltk a b))
-    (0 2))
-  (traces ((recv a) (send n) (recv (enc n (bltk a b))))
-    ((send a) (recv n) (send (enc n (bltk a b)))))
-  (label 3)
-  (parent 1)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (n n))))
-  (origs (n (0 1))))
-
-(comment "Nothing left to do")
diff --git a/tst/par b/tst/par
new file mode 100644
--- /dev/null
+++ b/tst/par
@@ -0,0 +1,10 @@
+#! /bin/sh
+PROG="time ../dist/build/cpsa/cpsa"
+ARGS="-b 12 -l 200000 -o /dev/null nsl5resp3.lisp"
+CPUS="1 2 3 4 5 6 14"
+for i in $CPUS
+do
+  echo $PROG +RTS -N$i -RTS $ARGS
+  $PROG +RTS -N$i -RTS $ARGS
+  echo
+done
diff --git a/tst/pca.scm b/tst/pca.scm
new file mode 100644
--- /dev/null
+++ b/tst/pca.scm
@@ -0,0 +1,36 @@
+(herald "Privacy Certificate Authority" (bound 15)
+  (comment "Generation of an Attestation Identity Certificate"))
+
+;;; PCA generation of AIC, simplified
+
+;;; ki = identity key
+;;; a = identity label
+;;; t = TPM type/platform
+;;; ke = endorsement key
+;;; kp = PCA key
+;;; km = manufacturer key
+;;; (enc (cat ki a t) (invk kp)) is the signed AIC
+
+(defprotocol pca basic
+  (defrole tpm (vars (ke ki km kp akey) (t a text))
+    (trace
+     (send (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+     (recv (enc (enc ki a t (invk kp)) ke))
+     (send (enc ki a t (invk kp))))
+    (non-orig (invk ke) (invk ki) (invk km) (invk kp))
+    (uniq-orig ki))
+  (defrole pca (vars (ke ki km kp akey) (t a text))
+    (trace
+     (recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+     (send (enc (enc ki a t (invk kp)) ke)))
+    (non-orig (invk ke) (invk ki) (invk km) (invk kp)))
+  (defrole appr (vars (ki kp akey) (t a text))
+    (trace
+     (recv (enc ki a t (invk kp))))
+    (non-orig (invk ki) (invk kp))))
+
+;;; normal run
+
+(defskeleton pca (vars (ki kp akey))
+  (defstrand appr 1 (ki ki) (kp kp))
+  (non-orig (invk ki) (invk kp)))
diff --git a/tst/pca.tst b/tst/pca.tst
new file mode 100644
--- /dev/null
+++ b/tst/pca.tst
@@ -0,0 +1,747 @@
+(herald "Privacy Certificate Authority" (bound 15)
+  (comment "Generation of an Attestation Identity Certificate"))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/pca.scm")
+(comment "Strand count bounded at 15")
+
+(defprotocol pca basic
+  (defrole tpm
+    (vars (ke ki km kp akey) (t a text))
+    (trace (send (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp))))
+    (non-orig (invk ke) (invk ki) (invk km) (invk kp))
+    (uniq-orig ki))
+  (defrole pca
+    (vars (ke ki km kp akey) (t a text))
+    (trace (recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    (non-orig (invk ke) (invk ki) (invk km) (invk kp)))
+  (defrole appr
+    (vars (ki kp akey) (t a text))
+    (trace (recv (enc ki a t (invk kp))))
+    (non-orig (invk ki) (invk kp)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton pca
+  (vars (t a text) (ki kp akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (non-orig (invk ki) (invk kp))
+  (traces ((recv (enc ki a t (invk kp)))))
+  (label 0)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pca
+  (vars (t a text) (ki kp ke km akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (precedes ((1 1) (0 0)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km))
+  (operation encryption-test (added-strand pca 2) (enc ki a t (invk kp))
+    (0 0))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pca
+  (vars (t a t-0 text) (ki kp ke km ke-0 km-0 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 1 (t t-0) (a a) (ke ke-0) (ki ki) (km km-0))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km) (invk ke-0)
+    (invk km-0))
+  (uniq-orig ki)
+  (operation encryption-test (added-strand tpm 1) (enc ki a (invk ki))
+    (1 0))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki a (invk ki)) (enc t-0 ke-0 (invk km-0))))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 0) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton pca
+  (vars (a t text) (ki kp ke km akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 1 (t t) (a a) (ke ke) (ki ki) (km km))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km))
+  (uniq-orig ki)
+  (operation encryption-test (displaced 3 2 tpm 1)
+    (enc t-0 ke-0 (invk km-0)) (1 0))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km))))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton pca
+  (vars (t a t-0 a-0 text) (ki kp ke km ke-0 km-0 ki-0 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 1 (t t-0) (a a) (ke ke-0) (ki ki) (km km-0))
+  (defstrand tpm 1 (t t) (a a-0) (ke ke) (ki ki-0) (km km))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((3 0) (1 0)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km) (invk ke-0)
+    (invk km-0) (invk ki-0))
+  (uniq-orig ki ki-0)
+  (operation encryption-test (added-strand tpm 1) (enc t ke (invk km))
+    (1 0))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki a (invk ki)) (enc t-0 ke-0 (invk km-0)))))
+    ((send (cat (enc ki-0 a-0 (invk ki-0)) (enc t ke (invk km))))))
+  (label 4)
+  (parent 2)
+  (unrealized (0 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton pca
+  (vars (a t text) (ki kp ke km akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((2 2) (0 0)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km))
+  (uniq-orig ki)
+  (operation encryption-test (displaced 2 3 tpm 3)
+    (enc ki a t (invk kp)) (0 0) (enc (enc ki a t (invk kp)) ke))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp)))))
+  (label 5)
+  (parent 3)
+  (unrealized (2 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton pca
+  (vars (a t text) (ki kp ke km ke-0 km-0 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 1 (t t) (a a) (ke ke) (ki ki) (km km))
+  (defstrand pca 2 (t t) (a a) (ke ke-0) (ki ki) (km km-0) (kp kp))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((2 0) (3 0)) ((3 1) (0 0)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km) (invk ke-0)
+    (invk km-0))
+  (uniq-orig ki)
+  (operation encryption-test (added-strand pca 2) (enc ki a t (invk kp))
+    (0 0) (enc (enc ki a t (invk kp)) ke))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km)))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke-0 (invk km-0))))
+      (send (enc (enc ki a t (invk kp)) ke-0))))
+  (label 6)
+  (parent 3)
+  (seen 3)
+  (unrealized (0 0) (3 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton pca
+  (vars (t a a-0 text) (ki kp ke km ki-0 km-0 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 1 (t t) (a a-0) (ke ke) (ki ki-0) (km km))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km-0) (kp kp))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((3 0) (1 0)) ((3 2) (0 0)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km) (invk ki-0)
+    (invk km-0))
+  (uniq-orig ki ki-0)
+  (operation encryption-test (displaced 2 4 tpm 3)
+    (enc ki a t (invk kp)) (0 0) (enc (enc ki a t (invk kp)) ke))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki-0 a-0 (invk ki-0)) (enc t ke (invk km)))))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km-0))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp)))))
+  (label 7)
+  (parent 4)
+  (unrealized (3 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton pca
+  (vars (t a t-0 a-0 text) (ki kp ke km ke-0 km-0 ki-0 ke-1 km-1 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 1 (t t-0) (a a) (ke ke-0) (ki ki) (km km-0))
+  (defstrand tpm 1 (t t) (a a-0) (ke ke) (ki ki-0) (km km))
+  (defstrand pca 2 (t t) (a a) (ke ke-1) (ki ki) (km km-1) (kp kp))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((2 0) (4 0)) ((3 0) (1 0))
+    ((4 1) (0 0)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km) (invk ke-0)
+    (invk km-0) (invk ki-0) (invk ke-1) (invk km-1))
+  (uniq-orig ki ki-0)
+  (operation encryption-test (added-strand pca 2) (enc ki a t (invk kp))
+    (0 0) (enc (enc ki a t (invk kp)) ke))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki a (invk ki)) (enc t-0 ke-0 (invk km-0)))))
+    ((send (cat (enc ki-0 a-0 (invk ki-0)) (enc t ke (invk km)))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke-1 (invk km-1))))
+      (send (enc (enc ki a t (invk kp)) ke-1))))
+  (label 8)
+  (parent 4)
+  (seen 4)
+  (unrealized (0 0) (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton pca
+  (vars (a t text) (ki kp ke km akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (precedes ((1 1) (2 1)) ((2 0) (1 0)) ((2 2) (0 0)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km))
+  (uniq-orig ki)
+  (operation encryption-test (displaced 3 1 pca 2)
+    (enc ki a t (invk kp)) (2 1))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp)))))
+  (label 9)
+  (parent 5)
+  (realized)
+  (shape)
+  (maps ((0) ((ki ki) (kp kp) (t t) (a a))))
+  (origs (ki (2 0))))
+
+(defskeleton pca
+  (vars (a t text) (ki kp ke km ke-0 km-0 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke-0) (ki ki) (km km-0) (kp kp))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((2 0) (3 0)) ((2 2) (0 0))
+    ((3 1) (2 1)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km) (invk ke-0)
+    (invk km-0))
+  (uniq-orig ki)
+  (operation encryption-test (added-strand pca 2) (enc ki a t (invk kp))
+    (2 1))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke-0 (invk km-0))))
+      (send (enc (enc ki a t (invk kp)) ke-0))))
+  (label 10)
+  (parent 5)
+  (unrealized (2 1) (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton pca
+  (vars (t a a-0 text) (ki kp ke km ki-0 km-0 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 1 (t t) (a a-0) (ke ke) (ki ki-0) (km km))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km-0) (kp kp))
+  (precedes ((1 1) (3 1)) ((2 0) (1 0)) ((3 0) (1 0)) ((3 2) (0 0)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km) (invk ki-0)
+    (invk km-0))
+  (uniq-orig ki ki-0)
+  (operation encryption-test (displaced 4 1 pca 2)
+    (enc ki a t (invk kp)) (3 1))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki-0 a-0 (invk ki-0)) (enc t ke (invk km)))))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km-0))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp)))))
+  (label 11)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0) ((ki ki) (kp kp) (t t) (a a))))
+  (origs (ki (3 0)) (ki-0 (2 0))))
+
+(defskeleton pca
+  (vars (t a a-0 text) (ki kp ke km ki-0 km-0 ke-0 km-1 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 1 (t t) (a a-0) (ke ke) (ki ki-0) (km km))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km-0) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke-0) (ki ki) (km km-1) (kp kp))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((3 0) (1 0)) ((3 0) (4 0))
+    ((3 2) (0 0)) ((4 1) (3 1)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km) (invk ki-0)
+    (invk km-0) (invk ke-0) (invk km-1))
+  (uniq-orig ki ki-0)
+  (operation encryption-test (added-strand pca 2) (enc ki a t (invk kp))
+    (3 1))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki-0 a-0 (invk ki-0)) (enc t ke (invk km)))))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km-0))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke-0 (invk km-1))))
+      (send (enc (enc ki a t (invk kp)) ke-0))))
+  (label 12)
+  (parent 7)
+  (unrealized (3 1) (4 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton pca
+  (vars (a t text) (ki kp ke km akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((2 0) (3 0)) ((2 2) (0 0))
+    ((3 1) (2 1)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km))
+  (uniq-orig ki)
+  (operation encryption-test (displaced 4 2 tpm 1)
+    (enc t ke-0 (invk km-0)) (3 0))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke))))
+  (label 13)
+  (parent 10)
+  (seen 9)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton pca
+  (vars (a t a-0 text) (ki kp ke km ke-0 km-0 ki-0 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke-0) (ki ki) (km km-0) (kp kp))
+  (defstrand tpm 1 (t t) (a a-0) (ke ke-0) (ki ki-0) (km km-0))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((2 0) (3 0)) ((2 2) (0 0))
+    ((3 1) (2 1)) ((4 0) (3 0)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km) (invk ke-0)
+    (invk km-0) (invk ki-0))
+  (uniq-orig ki ki-0)
+  (operation encryption-test (added-strand tpm 1)
+    (enc t ke-0 (invk km-0)) (3 0))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke-0 (invk km-0))))
+      (send (enc (enc ki a t (invk kp)) ke-0)))
+    ((send (cat (enc ki-0 a-0 (invk ki-0)) (enc t ke-0 (invk km-0))))))
+  (label 14)
+  (parent 10)
+  (unrealized (2 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton pca
+  (vars (t a a-0 text) (ki kp ke km ki-0 km-0 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 1 (t t) (a a-0) (ke ke) (ki ki-0) (km km))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km-0) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((2 0) (4 0)) ((3 0) (1 0))
+    ((3 0) (4 0)) ((3 2) (0 0)) ((4 1) (3 1)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km) (invk ki-0)
+    (invk km-0))
+  (uniq-orig ki ki-0)
+  (operation encryption-test (displaced 5 2 tpm 1)
+    (enc t ke-0 (invk km-1)) (4 0))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki-0 a-0 (invk ki-0)) (enc t ke (invk km)))))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km-0))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke))))
+  (label 15)
+  (parent 12)
+  (seen 11)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton pca
+  (vars (t a a-0 text) (ki kp ke km ki-0 km-0 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 1 (t t) (a a-0) (ke ke) (ki ki-0) (km km))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km-0) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km-0) (kp kp))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((3 0) (1 0)) ((3 0) (4 0))
+    ((3 2) (0 0)) ((4 1) (3 1)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km) (invk ki-0)
+    (invk km-0))
+  (uniq-orig ki ki-0)
+  (operation encryption-test (displaced 5 3 tpm 1)
+    (enc t ke-0 (invk km-1)) (4 0))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki-0 a-0 (invk ki-0)) (enc t ke (invk km)))))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km-0))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km-0))))
+      (send (enc (enc ki a t (invk kp)) ke))))
+  (label 16)
+  (parent 12)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pca
+  (vars (t a a-0 a-1 text) (ki kp ke km ki-0 km-0 ke-0 km-1 ki-1 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 1 (t t) (a a-0) (ke ke) (ki ki-0) (km km))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km-0) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke-0) (ki ki) (km km-1) (kp kp))
+  (defstrand tpm 1 (t t) (a a-1) (ke ke-0) (ki ki-1) (km km-1))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((3 0) (1 0)) ((3 0) (4 0))
+    ((3 2) (0 0)) ((4 1) (3 1)) ((5 0) (4 0)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km) (invk ki-0)
+    (invk km-0) (invk ke-0) (invk km-1) (invk ki-1))
+  (uniq-orig ki ki-0 ki-1)
+  (operation encryption-test (added-strand tpm 1)
+    (enc t ke-0 (invk km-1)) (4 0))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki-0 a-0 (invk ki-0)) (enc t ke (invk km)))))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km-0))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke-0 (invk km-1))))
+      (send (enc (enc ki a t (invk kp)) ke-0)))
+    ((send (cat (enc ki-1 a-1 (invk ki-1)) (enc t ke-0 (invk km-1))))))
+  (label 17)
+  (parent 12)
+  (unrealized (3 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton pca
+  (vars (a t a-0 text) (ki kp km ke km-0 ki-0 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km-0) (kp kp))
+  (defstrand tpm 1 (t t) (a a-0) (ke ke) (ki ki-0) (km km-0))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((2 0) (3 0)) ((2 2) (0 0))
+    ((3 1) (2 1)) ((4 0) (3 0)))
+  (non-orig (invk ki) (invk kp) (invk km) (invk ke) (invk km-0)
+    (invk ki-0))
+  (uniq-orig ki ki-0)
+  (operation encryption-test (contracted (ke-0 ke))
+    (enc ki a t (invk kp)) (2 1) (enc (enc ki a t (invk kp)) ke))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km-0))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki-0 a-0 (invk ki-0)) (enc t ke (invk km-0))))))
+  (label 18)
+  (parent 14)
+  (seen 11)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton pca
+  (vars (a t a-0 text) (ki kp ke km ke-0 km-0 ki-0 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke-0) (ki ki) (km km-0) (kp kp))
+  (defstrand tpm 1 (t t) (a a-0) (ke ke-0) (ki ki-0) (km km-0))
+  (precedes ((1 1) (2 1)) ((2 0) (1 0)) ((2 0) (3 0)) ((2 2) (0 0))
+    ((3 1) (2 1)) ((4 0) (3 0)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km) (invk ke-0)
+    (invk km-0) (invk ki-0))
+  (uniq-orig ki ki-0)
+  (operation encryption-test (displaced 5 1 pca 2)
+    (enc ki a t (invk kp)) (2 1) (enc (enc ki a t (invk kp)) ke-0))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke-0 (invk km-0))))
+      (send (enc (enc ki a t (invk kp)) ke-0)))
+    ((send (cat (enc ki-0 a-0 (invk ki-0)) (enc t ke-0 (invk km-0))))))
+  (label 19)
+  (parent 14)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pca
+  (vars (a t a-0 text) (ki kp ke km ke-0 km-0 ki-0 ke-1 km-1 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke-0) (ki ki) (km km-0) (kp kp))
+  (defstrand tpm 1 (t t) (a a-0) (ke ke-0) (ki ki-0) (km km-0))
+  (defstrand pca 2 (t t) (a a) (ke ke-1) (ki ki) (km km-1) (kp kp))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((2 0) (3 0)) ((2 0) (5 0))
+    ((2 2) (0 0)) ((3 1) (2 1)) ((4 0) (3 0)) ((5 1) (2 1)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km) (invk ke-0)
+    (invk km-0) (invk ki-0) (invk ke-1) (invk km-1))
+  (uniq-orig ki ki-0)
+  (operation encryption-test (added-strand pca 2) (enc ki a t (invk kp))
+    (2 1) (enc (enc ki a t (invk kp)) ke-0))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke-0 (invk km-0))))
+      (send (enc (enc ki a t (invk kp)) ke-0)))
+    ((send (cat (enc ki-0 a-0 (invk ki-0)) (enc t ke-0 (invk km-0)))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke-1 (invk km-1))))
+      (send (enc (enc ki a t (invk kp)) ke-1))))
+  (label 20)
+  (parent 14)
+  (seen 14)
+  (unrealized (2 1) (5 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton pca
+  (vars (t a a-0 text) (ki kp ke km ki-0 km-0 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand tpm 1 (t t) (a a-0) (ke ke) (ki ki-0) (km km))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km-0) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km-0) (kp kp))
+  (precedes ((1 0) (0 0)) ((2 0) (3 0)) ((2 2) (0 0)) ((3 1) (2 1)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km) (invk ki-0)
+    (invk km-0))
+  (uniq-orig ki ki-0)
+  (operation generalization deleted (1 0))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((send (cat (enc ki-0 a-0 (invk ki-0)) (enc t ke (invk km)))))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km-0))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km-0))))
+      (send (enc (enc ki a t (invk kp)) ke))))
+  (label 21)
+  (parent 16)
+  (seen 9)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton pca
+  (vars (t a a-0 a-1 text) (ki kp km ki-0 km-0 ke km-1 ki-1 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 1 (t t) (a a-0) (ke ke) (ki ki-0) (km km))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km-0) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km-1) (kp kp))
+  (defstrand tpm 1 (t t) (a a-1) (ke ke) (ki ki-1) (km km-1))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((3 0) (1 0)) ((3 0) (4 0))
+    ((3 2) (0 0)) ((4 1) (3 1)) ((5 0) (4 0)))
+  (non-orig (invk ki) (invk kp) (invk km) (invk ki-0) (invk km-0)
+    (invk ke) (invk km-1) (invk ki-1))
+  (uniq-orig ki ki-0 ki-1)
+  (operation encryption-test (contracted (ke-0 ke))
+    (enc ki a t (invk kp)) (3 1) (enc (enc ki a t (invk kp)) ke))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki-0 a-0 (invk ki-0)) (enc t ke (invk km)))))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km-0))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km-1))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki-1 a-1 (invk ki-1)) (enc t ke (invk km-1))))))
+  (label 22)
+  (parent 17)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pca
+  (vars (t a a-0 a-1 text) (ki kp ke km ki-0 km-0 ke-0 km-1 ki-1 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 1 (t t) (a a-0) (ke ke) (ki ki-0) (km km))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km-0) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke-0) (ki ki) (km km-1) (kp kp))
+  (defstrand tpm 1 (t t) (a a-1) (ke ke-0) (ki ki-1) (km km-1))
+  (precedes ((1 1) (3 1)) ((2 0) (1 0)) ((3 0) (1 0)) ((3 0) (4 0))
+    ((3 2) (0 0)) ((4 1) (3 1)) ((5 0) (4 0)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km) (invk ki-0)
+    (invk km-0) (invk ke-0) (invk km-1) (invk ki-1))
+  (uniq-orig ki ki-0 ki-1)
+  (operation encryption-test (displaced 6 1 pca 2)
+    (enc ki a t (invk kp)) (3 1) (enc (enc ki a t (invk kp)) ke-0))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki-0 a-0 (invk ki-0)) (enc t ke (invk km)))))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km-0))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke-0 (invk km-1))))
+      (send (enc (enc ki a t (invk kp)) ke-0)))
+    ((send (cat (enc ki-1 a-1 (invk ki-1)) (enc t ke-0 (invk km-1))))))
+  (label 23)
+  (parent 17)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pca
+  (vars (t a a-0 a-1 text)
+    (ki kp ke km ki-0 km-0 ke-0 km-1 ki-1 ke-1 km-2 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 1 (t t) (a a-0) (ke ke) (ki ki-0) (km km))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km-0) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke-0) (ki ki) (km km-1) (kp kp))
+  (defstrand tpm 1 (t t) (a a-1) (ke ke-0) (ki ki-1) (km km-1))
+  (defstrand pca 2 (t t) (a a) (ke ke-1) (ki ki) (km km-2) (kp kp))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((3 0) (1 0)) ((3 0) (4 0))
+    ((3 0) (6 0)) ((3 2) (0 0)) ((4 1) (3 1)) ((5 0) (4 0))
+    ((6 1) (3 1)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km) (invk ki-0)
+    (invk km-0) (invk ke-0) (invk km-1) (invk ki-1) (invk ke-1)
+    (invk km-2))
+  (uniq-orig ki ki-0 ki-1)
+  (operation encryption-test (added-strand pca 2) (enc ki a t (invk kp))
+    (3 1) (enc (enc ki a t (invk kp)) ke-0))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki-0 a-0 (invk ki-0)) (enc t ke (invk km)))))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km-0))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke-0 (invk km-1))))
+      (send (enc (enc ki a t (invk kp)) ke-0)))
+    ((send (cat (enc ki-1 a-1 (invk ki-1)) (enc t ke-0 (invk km-1)))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke-1 (invk km-2))))
+      (send (enc (enc ki a t (invk kp)) ke-1))))
+  (label 24)
+  (parent 17)
+  (seen 17)
+  (unrealized (3 1) (6 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton pca
+  (vars (a t a-0 text) (ki kp ke km ke-0 km-0 ki-0 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 1 (t t) (a a-0) (ke ke-0) (ki ki-0) (km km-0))
+  (precedes ((1 1) (2 1)) ((2 0) (1 0)) ((2 2) (0 0)) ((3 0) (2 1)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km) (invk ke-0)
+    (invk km-0) (invk ki-0))
+  (uniq-orig ki ki-0)
+  (operation generalization deleted (3 0))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp))))
+    ((send (cat (enc ki-0 a-0 (invk ki-0)) (enc t ke-0 (invk km-0))))))
+  (label 25)
+  (parent 19)
+  (seen 9)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton pca
+  (vars (t a a-0 a-1 text) (ki kp km ki-0 km-0 ke km-1 ki-1 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand tpm 1 (t t) (a a-0) (ke ke) (ki ki-0) (km km))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km-0) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km-1) (kp kp))
+  (defstrand tpm 1 (t t) (a a-1) (ke ke) (ki ki-1) (km km-1))
+  (precedes ((1 0) (0 0)) ((2 0) (3 0)) ((2 2) (0 0)) ((3 1) (2 1))
+    ((4 0) (3 0)))
+  (non-orig (invk ki) (invk kp) (invk km) (invk ki-0) (invk km-0)
+    (invk ke) (invk km-1) (invk ki-1))
+  (uniq-orig ki ki-0 ki-1)
+  (operation generalization deleted (1 0))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((send (cat (enc ki-0 a-0 (invk ki-0)) (enc t ke (invk km)))))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km-0))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km-1))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki-1 a-1 (invk ki-1)) (enc t ke (invk km-1))))))
+  (label 26)
+  (parent 22)
+  (seen 11)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton pca
+  (vars (t a a-0 a-1 text) (ki kp ke km ki-0 km-0 ke-0 km-1 ki-1 akey))
+  (defstrand appr 1 (t t) (a a) (ki ki) (kp kp))
+  (defstrand pca 2 (t t) (a a) (ke ke) (ki ki) (km km) (kp kp))
+  (defstrand tpm 1 (t t) (a a-0) (ke ke) (ki ki-0) (km km))
+  (defstrand tpm 3 (t t) (a a) (ke ke) (ki ki) (km km-0) (kp kp))
+  (defstrand tpm 1 (t t) (a a-1) (ke ke-0) (ki ki-1) (km km-1))
+  (precedes ((1 1) (3 1)) ((2 0) (1 0)) ((3 0) (1 0)) ((3 2) (0 0))
+    ((4 0) (3 1)))
+  (non-orig (invk ki) (invk kp) (invk ke) (invk km) (invk ki-0)
+    (invk km-0) (invk ke-0) (invk km-1) (invk ki-1))
+  (uniq-orig ki ki-0 ki-1)
+  (operation generalization deleted (4 0))
+  (traces ((recv (enc ki a t (invk kp))))
+    ((recv (cat (enc ki a (invk ki)) (enc t ke (invk km))))
+      (send (enc (enc ki a t (invk kp)) ke)))
+    ((send (cat (enc ki-0 a-0 (invk ki-0)) (enc t ke (invk km)))))
+    ((send (cat (enc ki a (invk ki)) (enc t ke (invk km-0))))
+      (recv (enc (enc ki a t (invk kp)) ke))
+      (send (enc ki a t (invk kp))))
+    ((send (cat (enc ki-1 a-1 (invk ki-1)) (enc t ke-0 (invk km-1))))))
+  (label 27)
+  (parent 23)
+  (seen 11)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/tst/pen-non-orig-test.scm b/tst/pen-non-orig-test.scm
new file mode 100644
--- /dev/null
+++ b/tst/pen-non-orig-test.scm
@@ -0,0 +1,29 @@
+;; This is to test the pen-non-orig declaration.
+;; The password, pwd, should not be known to the
+;; penetrator at the outset.  Thus, even over an
+;; unencrypted channel, the server should infer
+;; a good client.  However, the password is
+;; learned in the process, hence the skeleton
+;; with a listener will also be realized.
+
+(herald "pen-non-orig test")
+
+(defprotocol pennonorigtest basic
+  (defrole client
+    (vars (userid name) (pwd text))
+    (trace
+     (send (cat userid pwd))))
+  (defrole server
+    (vars (userid name) (pwd text))
+    (trace
+     (recv (cat userid pwd)))
+    (pen-non-orig pwd)))
+
+(defskeleton pennonorigtest
+  (vars (pwd text))
+  (defstrand server 1 (pwd pwd)))
+
+(defskeleton pennonorigtest
+  (vars (pwd text))
+  (defstrand server 1 (pwd pwd))
+  (deflistener pwd))
diff --git a/tst/pen-non-orig-test.tst b/tst/pen-non-orig-test.tst
new file mode 100644
--- /dev/null
+++ b/tst/pen-non-orig-test.tst
@@ -0,0 +1,124 @@
+(herald "pen-non-orig test")
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/pen-non-orig-test.scm")
+
+(defprotocol pennonorigtest basic
+  (defrole client
+    (vars (userid name) (pwd text))
+    (trace (send (cat userid pwd))))
+  (defrole server
+    (vars (userid name) (pwd text))
+    (trace (recv (cat userid pwd)))
+    (pen-non-orig pwd))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton pennonorigtest
+  (vars (pwd text) (userid name))
+  (defstrand server 1 (pwd pwd) (userid userid))
+  (pen-non-orig pwd)
+  (traces ((recv (cat userid pwd))))
+  (label 0)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pennonorigtest
+  (vars (pwd text) (userid userid-0 name))
+  (defstrand server 1 (pwd pwd) (userid userid))
+  (defstrand client 1 (pwd pwd) (userid userid-0))
+  (precedes ((1 0) (0 0)))
+  (pen-non-orig pwd)
+  (operation nonce-test (added-strand client 1) pwd (0 0))
+  (traces ((recv (cat userid pwd))) ((send (cat userid-0 pwd))))
+  (label 1)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps ((0) ((pwd pwd) (userid userid))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol pennonorigtest basic
+  (defrole client
+    (vars (userid name) (pwd text))
+    (trace (send (cat userid pwd))))
+  (defrole server
+    (vars (userid name) (pwd text))
+    (trace (recv (cat userid pwd)))
+    (pen-non-orig pwd))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton pennonorigtest
+  (vars (pwd text) (userid name))
+  (defstrand server 1 (pwd pwd) (userid userid))
+  (deflistener pwd)
+  (pen-non-orig pwd)
+  (traces ((recv (cat userid pwd))) ((recv pwd) (send pwd)))
+  (label 2)
+  (unrealized (0 0) (1 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pennonorigtest
+  (vars (pwd text) (userid userid-0 name))
+  (defstrand server 1 (pwd pwd) (userid userid))
+  (deflistener pwd)
+  (defstrand client 1 (pwd pwd) (userid userid-0))
+  (precedes ((2 0) (1 0)))
+  (pen-non-orig pwd)
+  (operation nonce-test (added-strand client 1) pwd (1 0))
+  (traces ((recv (cat userid pwd))) ((recv pwd) (send pwd))
+    ((send (cat userid-0 pwd))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton pennonorigtest
+  (vars (pwd text) (userid userid-0 name))
+  (defstrand server 1 (pwd pwd) (userid userid))
+  (deflistener pwd)
+  (defstrand client 1 (pwd pwd) (userid userid-0))
+  (precedes ((2 0) (0 0)) ((2 0) (1 0)))
+  (pen-non-orig pwd)
+  (operation nonce-test (displaced 3 2 client 1) pwd (0 0))
+  (traces ((recv (cat userid pwd))) ((recv pwd) (send pwd))
+    ((send (cat userid-0 pwd))))
+  (label 4)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0 1) ((pwd pwd) (userid userid))))
+  (origs))
+
+(defskeleton pennonorigtest
+  (vars (pwd text) (userid userid-0 userid-1 name))
+  (defstrand server 1 (pwd pwd) (userid userid))
+  (deflistener pwd)
+  (defstrand client 1 (pwd pwd) (userid userid-0))
+  (defstrand client 1 (pwd pwd) (userid userid-1))
+  (precedes ((2 0) (1 0)) ((3 0) (0 0)))
+  (pen-non-orig pwd)
+  (operation nonce-test (added-strand client 1) pwd (0 0))
+  (traces ((recv (cat userid pwd))) ((recv pwd) (send pwd))
+    ((send (cat userid-0 pwd))) ((send (cat userid-1 pwd))))
+  (label 5)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0 1) ((pwd pwd) (userid userid))))
+  (origs))
+
+(comment "Nothing left to do")
diff --git a/tst/pfs-via-pubkey.scm b/tst/pfs-via-pubkey.scm
new file mode 100644
--- /dev/null
+++ b/tst/pfs-via-pubkey.scm
@@ -0,0 +1,35 @@
+(herald pfs-via-pubkey)
+
+(defprotocol pfs-easy basic
+  (defrole init
+    (vars (new-akey akey) (a b name) (n data) (s text))
+    (trace
+     (send (enc a b new-akey n (privk "sgn" a)))
+     (recv (enc (enc a n s (privk "sgn" b)) new-akey))
+     (send (privk "sgn" a))))		; compromise signing key subsequently
+
+  (defrole resp
+    (vars (new-akey akey) (a b name) (n data) (s text))
+    (trace
+     (recv (enc a b new-akey n (privk "sgn" a)))
+     (send (enc (enc a n s (privk "sgn" b)) new-akey)))))
+
+(defskeleton pfs-easy
+  (vars (new-akey akey) (a b name) (n data) (s text))
+  (defstrand init 3 (a a) (b b) (new-akey new-akey) (n n))
+  (non-orig (privk "sgn" b) (invk new-akey))
+  (uniq-orig (privk "sgn" a) new-akey n))
+
+(defskeleton pfs-easy
+  (vars (new-akey akey) (a b name) (n data) (s text))
+  (defstrand resp 2 (a a) (new-akey new-akey))
+  (non-orig (privk "sgn" a)))
+
+(defskeleton pfs-easy
+  (vars (s text) (n data) (a b name) (new-akey akey))
+  (defstrand resp 2 (s s) (n n) (a a) (b b) (new-akey new-akey))
+  (defstrand init 3 (n n) (a a) (b b) (new-akey new-akey))
+  (deflistener s)
+  (precedes ((1 0) (0 0)))
+  (non-orig (invk new-akey))
+  (uniq-orig (privk "sgn" a) s))
diff --git a/tst/pfs-via-pubkey.tst b/tst/pfs-via-pubkey.tst
new file mode 100644
--- /dev/null
+++ b/tst/pfs-via-pubkey.tst
@@ -0,0 +1,189 @@
+(herald pfs-via-pubkey)
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/pfs-via-pubkey.scm")
+
+(defprotocol pfs-easy basic
+  (defrole init
+    (vars (new-akey akey) (a b name) (n data) (s text))
+    (trace (send (enc a b new-akey n (privk "sgn" a)))
+      (recv (enc (enc a n s (privk "sgn" b)) new-akey))
+      (send (privk "sgn" a))))
+  (defrole resp
+    (vars (new-akey akey) (a b name) (n data) (s text))
+    (trace (recv (enc a b new-akey n (privk "sgn" a)))
+      (send (enc (enc a n s (privk "sgn" b)) new-akey))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton pfs-easy
+  (vars (n data) (s text) (new-akey akey) (a b name))
+  (defstrand init 3 (n n) (s s) (new-akey new-akey) (a a) (b b))
+  (non-orig (invk new-akey) (privk "sgn" b))
+  (uniq-orig n new-akey (privk "sgn" a))
+  (traces
+    ((send (enc a b new-akey n (privk "sgn" a)))
+      (recv (enc (enc a n s (privk "sgn" b)) new-akey))
+      (send (privk "sgn" a))))
+  (label 0)
+  (unrealized (0 1))
+  (origs ((privk "sgn" a) (0 2)) (new-akey (0 0)) (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pfs-easy
+  (vars (n data) (s text) (new-akey new-akey-0 akey) (a b name))
+  (defstrand init 3 (n n) (s s) (new-akey new-akey) (a a) (b b))
+  (defstrand resp 2 (n n) (s s) (new-akey new-akey-0) (a a) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk new-akey) (privk "sgn" b))
+  (uniq-orig n new-akey (privk "sgn" a))
+  (operation encryption-test (added-strand resp 2)
+    (enc a n s (privk "sgn" b)) (0 1))
+  (traces
+    ((send (enc a b new-akey n (privk "sgn" a)))
+      (recv (enc (enc a n s (privk "sgn" b)) new-akey))
+      (send (privk "sgn" a)))
+    ((recv (enc a b new-akey-0 n (privk "sgn" a)))
+      (send (enc (enc a n s (privk "sgn" b)) new-akey-0))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pfs-easy
+  (vars (n data) (s text) (new-akey akey) (a b name))
+  (defstrand init 3 (n n) (s s) (new-akey new-akey) (a a) (b b))
+  (defstrand resp 2 (n n) (s s) (new-akey new-akey) (a a) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk new-akey) (privk "sgn" b))
+  (uniq-orig n new-akey (privk "sgn" a))
+  (operation encryption-test (displaced 2 0 init 1)
+    (enc a b new-akey-0 n (privk "sgn" a)) (1 0))
+  (traces
+    ((send (enc a b new-akey n (privk "sgn" a)))
+      (recv (enc (enc a n s (privk "sgn" b)) new-akey))
+      (send (privk "sgn" a)))
+    ((recv (enc a b new-akey n (privk "sgn" a)))
+      (send (enc (enc a n s (privk "sgn" b)) new-akey))))
+  (label 2)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((new-akey new-akey) (a a) (b b) (n n) (s s))))
+  (origs ((privk "sgn" a) (0 2)) (new-akey (0 0)) (n (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol pfs-easy basic
+  (defrole init
+    (vars (new-akey akey) (a b name) (n data) (s text))
+    (trace (send (enc a b new-akey n (privk "sgn" a)))
+      (recv (enc (enc a n s (privk "sgn" b)) new-akey))
+      (send (privk "sgn" a))))
+  (defrole resp
+    (vars (new-akey akey) (a b name) (n data) (s text))
+    (trace (recv (enc a b new-akey n (privk "sgn" a)))
+      (send (enc (enc a n s (privk "sgn" b)) new-akey))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton pfs-easy
+  (vars (n data) (s text) (new-akey akey) (a b name))
+  (defstrand resp 2 (n n) (s s) (new-akey new-akey) (a a) (b b))
+  (non-orig (privk "sgn" a))
+  (traces
+    ((recv (enc a b new-akey n (privk "sgn" a)))
+      (send (enc (enc a n s (privk "sgn" b)) new-akey))))
+  (label 3)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton pfs-easy
+  (vars (n data) (s text) (new-akey akey) (a b name))
+  (defstrand resp 2 (n n) (s s) (new-akey new-akey) (a a) (b b))
+  (defstrand init 1 (n n) (new-akey new-akey) (a a) (b b))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "sgn" a))
+  (operation encryption-test (added-strand init 1)
+    (enc a b new-akey n (privk "sgn" a)) (0 0))
+  (traces
+    ((recv (enc a b new-akey n (privk "sgn" a)))
+      (send (enc (enc a n s (privk "sgn" b)) new-akey)))
+    ((send (enc a b new-akey n (privk "sgn" a)))))
+  (label 4)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((new-akey new-akey) (a a) (b b) (n n) (s s))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol pfs-easy basic
+  (defrole init
+    (vars (new-akey akey) (a b name) (n data) (s text))
+    (trace (send (enc a b new-akey n (privk "sgn" a)))
+      (recv (enc (enc a n s (privk "sgn" b)) new-akey))
+      (send (privk "sgn" a))))
+  (defrole resp
+    (vars (new-akey akey) (a b name) (n data) (s text))
+    (trace (recv (enc a b new-akey n (privk "sgn" a)))
+      (send (enc (enc a n s (privk "sgn" b)) new-akey))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton pfs-easy
+  (vars (n data) (s s-0 text) (new-akey akey) (a b name))
+  (defstrand resp 2 (n n) (s s) (new-akey new-akey) (a a) (b b))
+  (defstrand init 3 (n n) (s s-0) (new-akey new-akey) (a a) (b b))
+  (deflistener s)
+  (precedes ((1 0) (0 0)))
+  (non-orig (invk new-akey))
+  (uniq-orig s (privk "sgn" a))
+  (traces
+    ((recv (enc a b new-akey n (privk "sgn" a)))
+      (send (enc (enc a n s (privk "sgn" b)) new-akey)))
+    ((send (enc a b new-akey n (privk "sgn" a)))
+      (recv (enc (enc a n s-0 (privk "sgn" b)) new-akey))
+      (send (privk "sgn" a))) ((recv s) (send s)))
+  (label 5)
+  (unrealized (2 0))
+  (preskeleton)
+  (origs ((privk "sgn" a) (1 2)) (s (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton pfs-easy
+  (vars (n data) (s s-0 text) (new-akey akey) (a b name))
+  (defstrand resp 2 (n n) (s s) (new-akey new-akey) (a a) (b b))
+  (defstrand init 3 (n n) (s s-0) (new-akey new-akey) (a a) (b b))
+  (deflistener s)
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)))
+  (non-orig (invk new-akey))
+  (uniq-orig s (privk "sgn" a))
+  (traces
+    ((recv (enc a b new-akey n (privk "sgn" a)))
+      (send (enc (enc a n s (privk "sgn" b)) new-akey)))
+    ((send (enc a b new-akey n (privk "sgn" a)))
+      (recv (enc (enc a n s-0 (privk "sgn" b)) new-akey))
+      (send (privk "sgn" a))) ((recv s) (send s)))
+  (label 6)
+  (parent 5)
+  (unrealized (2 0))
+  (dead)
+  (origs ((privk "sgn" a) (1 2)) (s (0 1)))
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/tst/pkinit.scm b/tst/pkinit.scm
--- a/tst/pkinit.scm
+++ b/tst/pkinit.scm
@@ -1,47 +1,6 @@
-(herald "Kerberos PKINIT")
-
-;;; This file includes three versions of the Kerberos PKINIT
-;;; protocol. The first version is the flawed version that Cervesato
-;;; et al. analyzed in "Breaking and Fixing Public-Key Kerberos." The
-;;; other two versions are the two fixes that are explored in the same
-;;; paper.
-
-;;; We also express the goal that the authors identify as a property
-;;; not met by the original flawed version, but which both fixes do
-;;; achieve. Running CPSA with this input demonstrates that the flawed
-;;; version does not satisfy the goal, but both fixed versions do.
-
-;;; How to use this file:
-;;;
-;;; CPSA looks at the goal and creates an initial point of view that
-;;; corresponds to the information contained in the antecedent of the
-;;; implication of the goal. It then outputs a characterization
-;;; (consisting of shapes) of all executions containing at least the
-;;; structure contained in the point of view. It then evaluates the
-;;; goal against each of those shapes. The guarantee CPSA provides is
-;;; that a goal is achieved iff each of the shapes satisfies the goal.
-
-;;; We can look at the output in pkinit.xhtml to determine what CPSA
-;;; discovered. Notice that the shape associated with the first
-;;; analysis (of the flawed version) contains an annotation that says
-;;; (satisfies (no (c c) (as as) (k k) (z (0 1)))). This means that
-;;; the goal is not satisfied. The pairs of terms represent a variable
-;;; assignment for the logical variables of the goal into elements of
-;;; the shape. This is the variable assignment of the antecendant
-;;; which has no extension for which the conclusion is also
-;;; satisfied. The shapes for the other analyses contain the
-;;; annotation (satisfies yes) indicating that the goal is satisfied
-;;; in the shape (and hence in any realized skeleton).
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;                       ;;
-;; Protocol Descriptions ;;
-;;                       ;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(herald "Kerberos PK init")
 
-;; This is the flawed version of the Kerberos public key initial
-;; round.
-(defprotocol pkinit-flawed basic
+(defprotocol pkinit basic
   (defrole client
     (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
     (trace (send (cat (enc tc n2 (privk c)) c t n1))
@@ -57,147 +16,7 @@
           (enc ak n1 tk t k))))
     (uniq-orig k ak)))
 
-;; This is the fix the authors proposed to the standards group. It
-;; adds the value c in a new field inside the server's signature.
-(defprotocol pkinit-fix1 basic
-  (defrole client
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    (uniq-orig n1 n2))
-  (defrole auth
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    (uniq-orig k ak)))
-
-;; This is the fix that the standards group proposed and adopted. It
-;; replaces n2 in the server's with a hash of the entire first
-;; message.
-(defprotocol pkinit-fix2 basic
-  (defrole client
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat (enc (enc k (hash (cat (enc tc n2 (privk c)) c t n1))
-                       (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))))
-    (uniq-orig n1 n2))
-  (defrole auth
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat (enc (enc k (hash (cat (enc tc n2 (privk c)) c t n1))
-                       (privk as)) (pubk c)) c tgt (enc ak n1 tk t k))))
-    (uniq-orig k ak)))
-
-;;;;;;;;;;;;;;;;;;;;;
-;;                 ;;
-;; Goal Statements ;;
-;;                 ;;
-;;;;;;;;;;;;;;;;;;;;;
-
-;; This is the goal that the authors discovered was not met by the
-;; original, flawed version, but which was met by both fixes.
-(defgoal pkinit-flawed
-  (forall ((c as name) (k skey) (z strd))
-          (implies
-           (and (p "client" z 2)
-                (p "client" "c" z c)
-                (p "client" "as" z as)
-                (p "client" "k" z k)
-                (non (privk as))
-                (non (privk c)))
-           (exists ((z-0 strd))
-                   (and (p "auth" z-0 2)
-                        (p "auth" "as" z-0 as)
-                        (p "auth" "k" z-0 k)
-                        (p "auth" "c" z-0 c))))))
-
-;; Since we reference the protocol in the expression of the goal, we
-;; must repeat it once for every protocol against which we would like
-;; to evaluate the goal.
-(defgoal pkinit-fix1
-  (forall ((c as name) (k skey) (z strd))
-          (implies
-           (and (p "client" z 2)
-                (p "client" "c" z c)
-                (p "client" "as" z as)
-                (p "client" "k" z k)
-                (non (privk as))
-                (non (privk c)))
-           (exists ((z-0 strd))
-                   (and (p "auth" z-0 2)
-                        (p "auth" "as" z-0 as)
-                        (p "auth" "k" z-0 k)
-                        (p "auth" "c" z-0 c))))))
-
-;; Repeated once more.
-(defgoal pkinit-fix2
-  (forall ((c as name) (k skey) (z strd))
-          (implies
-           (and (p "client" z 2)
-                (p "client" "c" z c)
-                (p "client" "as" z as)
-                (p "client" "k" z k)
-                (non (privk as))
-                (non (privk c)))
-           (exists ((z-0 strd))
-                   (and (p "auth" z-0 2)
-                        (p "auth" "as" z-0 as)
-                        (p "auth" "k" z-0 k)
-                        (p "auth" "c" z-0 c))))))
-
-;;;;;;;;
-
-(defgoal pkinit-flawed
-  (forall ((c c-0 as name) (k skey) (z z-0 strd))
-          (implies
-           (and (p "client" z 2)
-                (p "client" "c" z c)
-                (p "client" "as" z as)
-                (p "client" "k" z k)
-                (p "auth" z-0 2)
-                (p "auth" "k" z-0 k)
-                (p "auth" "c" z-0 c-0)
-                (non (privk as))
-                (non (privk c)))
-           ;(exists ((z-1 strd))
-           ;        (p "client" 1 z-1))
-           (= c c-0)
-           )))
-
-(defgoal pkinit-fix1
-  (forall ((c c-0 as name) (k skey) (z z-0 strd))
-          (implies
-           (and (p "client" z 2)
-                (p "client" "c" z c)
-                (p "client" "as" z as)
-                (p "client" "k" z k)
-                (p "auth" z-0 2)
-                (p "auth" "k" z-0 k)
-                (p "auth" "c" z-0 c-0)
-                (non (privk as))
-                (non (privk c)))
-           (exists ((z-1 strd))
-                   (p "client" z-1 2))
-           ;(= c c-0)
-           )))
-
-(defgoal pkinit-fix2
-  (forall ((c c-0 as name) (k skey) (z z-0 strd))
-          (implies
-           (and (p "client" z 2)
-                (p "client" "c" z c)
-                (p "client" "as" z as)
-                (p "client" "k" z k)
-                (p "auth" z-0 2)
-                (p "auth" "k" z-0 k)
-                (p "auth" "c" z-0 c-0)
-                (non (privk as))
-                (non (privk c)))
-           (exists ((z-1 strd))
-                   (p "client" z-1 2)))))
+(defskeleton pkinit
+  (vars (c as name))
+  (defstrand client 2 (c c) (as as))
+  (non-orig (privk c) (privk as)))
diff --git a/tst/pkinit.tst b/tst/pkinit.tst
--- a/tst/pkinit.tst
+++ b/tst/pkinit.tst
@@ -1,9 +1,9 @@
-(herald "Kerberos PKINIT")
+(herald "Kerberos PK init")
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/pkinit.scm")
 
-(defprotocol pkinit-flawed basic
+(defprotocol pkinit basic
   (defrole client
     (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
     (trace (send (cat (enc tc n2 (privk c)) c t n1))
@@ -17,23 +17,20 @@
       (send
         (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt
           (enc ak n1 tk t k))))
-    (uniq-orig k ak)))
+    (uniq-orig k ak))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
-(defskeleton pkinit-flawed
-  (vars (n2 n1 text) (tc tk tgt data) (c as t name) (k ak skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
+(defskeleton pkinit
+  (vars (tc tk tgt data) (k ak skey) (n2 n1 text) (c as t name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
   (non-orig (privk c) (privk as))
   (uniq-orig n2 n1)
-  (goals
-    (forall ((c as name) (k skey) (z strd))
-      (implies
-        (and (p "client" z 2) (p "client" "c" z c)
-          (p "client" "as" z as) (p "client" "k" z k) (non (privk as))
-          (non (privk c)))
-        (exists ((z-0 strd))
-          (and (p "auth" z-0 2) (p "auth" "as" z-0 as)
-            (p "auth" "k" z-0 k) (p "auth" "c" z-0 c))))))
   (traces
     ((send (cat (enc tc n2 (privk c)) c t n1))
       (recv
@@ -41,19 +38,19 @@
           (enc ak n1 tk t k)))))
   (label 0)
   (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
+  (origs (n2 (0 0)) (n1 (0 0)))
   (comment "1 in cohort - 1 not yet seen"))
 
-(defskeleton pkinit-flawed
-  (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c as t c-0 t-0 name) (k ak ak-0 skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand auth 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0)
-    (c c-0) (t t-0) (as as) (k k) (ak ak-0))
+(defskeleton pkinit
+  (vars (tc tk tgt tc-0 tk-0 tgt-0 data) (k ak ak-0 skey)
+    (n2 n1 n1-0 text) (c as t c-0 t-0 name))
+  (defstrand client 2 (tc tc) (tk tk) (tgt tgt) (k k) (ak ak) (n2 n2)
+    (n1 n1) (c c) (t t) (as as))
+  (defstrand auth 2 (tc tc-0) (tk tk-0) (tgt tgt-0) (k k) (ak ak-0)
+    (n2 n2) (n1 n1-0) (c c-0) (t t-0) (as as))
   (precedes ((0 0) (1 0)) ((1 1) (0 1)))
   (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak-0)
+  (uniq-orig k ak-0 n2 n1)
   (operation encryption-test (added-strand auth 2) (enc k n2 (privk as))
     (0 1))
   (traces
@@ -67,918 +64,12 @@
           (enc ak-0 n1-0 tk-0 t-0 k)))))
   (label 1)
   (parent 0)
-  (unrealized)
+  (realized)
   (shape)
-  (satisfies (no (c c) (as as) (k k) (z 0)))
   (maps
     ((0)
-      ((c c) (as as) (k k) (t t) (n2 n2) (n1 n1) (tc tc) (tk tk)
-        (tgt tgt) (ak ak))))
-  (origs (k (1 1)) (ak-0 (1 1)) (n1 (0 0)) (n2 (0 0))))
-
-(comment "Nothing left to do")
-
-(defprotocol pkinit-fix1 basic
-  (defrole client
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    (uniq-orig n2 n1))
-  (defrole auth
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    (uniq-orig k ak)))
-
-(defskeleton pkinit-fix1
-  (vars (n2 n1 text) (tc tk tgt data) (c as t name) (k ak skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1)
-  (goals
-    (forall ((c as name) (k skey) (z strd))
-      (implies
-        (and (p "client" z 2) (p "client" "c" z c)
-          (p "client" "as" z as) (p "client" "k" z k) (non (privk as))
-          (non (privk c)))
-        (exists ((z-0 strd))
-          (and (p "auth" z-0 2) (p "auth" "as" z-0 as)
-            (p "auth" "k" z-0 k) (p "auth" "c" z-0 c))))))
-  (traces
-    ((send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k)))))
-  (label 2)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton pkinit-fix1
-  (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c as t t-0 name) (k ak ak-0 skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand auth 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0)
-    (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak-0)
-  (operation encryption-test (added-strand auth 2)
-    (enc k n2 c (privk as)) (0 1))
-  (traces
-    ((send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    ((recv (cat (enc tc-0 n2 (privk c)) c t-0 n1-0))
-      (send
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0
-          (enc ak-0 n1-0 tk-0 t-0 k)))))
-  (label 3)
-  (parent 2)
-  (unrealized (0 1) (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton pkinit-fix1
-  (vars (n2 n1 n1-0 text) (tc tk tgt tk-0 tgt-0 data) (c as t t-0 name)
-    (k ak ak-0 skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand auth 2 (n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0)
-    (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak-0)
-  (operation encryption-test (displaced 2 0 client 1)
-    (enc tc-0 n2 (privk c)) (1 0))
-  (traces
-    ((send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    ((recv (cat (enc tc n2 (privk c)) c t-0 n1-0))
-      (send
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0
-          (enc ak-0 n1-0 tk-0 t-0 k)))))
-  (label 4)
-  (parent 3)
-  (unrealized (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton pkinit-fix1
-  (vars (n2 n1 text) (tc tgt tk tgt-0 data) (c as t name) (k ak skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak)
-  (operation encryption-test (displaced 2 1 auth 2)
-    (enc ak-0 n1-0 tk-0 t-0 k) (0 1))
-  (traces
-    ((send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    ((recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0
-          (enc ak n1 tk t k)))))
-  (label 5)
-  (parent 4)
-  (unrealized)
-  (shape)
-  (satisfies yes)
-  (maps
-    ((0)
-      ((c c) (as as) (k k) (t t) (n2 n2) (n1 n1) (tc tc) (tk tk)
-        (tgt tgt) (ak ak))))
-  (origs (k (1 1)) (ak (1 1)) (n1 (0 0)) (n2 (0 0))))
-
-(defskeleton pkinit-fix1
-  (vars (n2 n1 n1-0 text) (tc tk tgt tk-0 tgt-0 data) (c as t t-0 name)
-    (k ak ak-0 skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand auth 2 (n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0)
-    (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (deflistener k)
-  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak-0)
-  (operation encryption-test (added-listener k) (enc ak n1 tk t k)
-    (0 1))
-  (traces
-    ((send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    ((recv (cat (enc tc n2 (privk c)) c t-0 n1-0))
-      (send
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0
-          (enc ak-0 n1-0 tk-0 t-0 k)))) ((recv k) (send k)))
-  (label 6)
-  (parent 4)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton pkinit-fix1
-  (vars (n2 n1 n1-0 text) (tc tk tgt tk-0 tgt-0 data) (c as t t-0 name)
-    (ak ak-0 skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k ak-0) (ak ak))
-  (defstrand auth 2 (n2 n2) (n1 n1-0) (tc tc) (tk tk-0) (tgt tgt-0)
-    (c c) (t t-0) (as as) (k ak-0) (ak ak-0))
-  (deflistener ak-0)
-  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 ak-0)
-  (operation nonce-test (displaced 3 1 auth 2) k (2 0)
-    (enc (enc k n2 c (privk as)) (pubk c)))
-  (traces
-    ((send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat (enc (enc ak-0 n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t ak-0))))
-    ((recv (cat (enc tc n2 (privk c)) c t-0 n1-0))
-      (send
-        (cat (enc (enc ak-0 n2 c (privk as)) (pubk c)) c tgt-0
-          (enc ak-0 n1-0 tk-0 t-0 ak-0)))) ((recv ak-0) (send ak-0)))
-  (label 7)
-  (parent 6)
-  (unrealized (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol pkinit-fix2 basic
-  (defrole client
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt (enc ak n1 tk t k))))
-    (uniq-orig n2 n1))
-  (defrole auth
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt (enc ak n1 tk t k))))
-    (uniq-orig k ak)))
-
-(defskeleton pkinit-fix2
-  (vars (n2 n1 text) (tc tk tgt data) (c as t name) (k ak skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1)
-  (goals
-    (forall ((c as name) (k skey) (z strd))
-      (implies
-        (and (p "client" z 2) (p "client" "c" z c)
-          (p "client" "as" z as) (p "client" "k" z k) (non (privk as))
-          (non (privk c)))
-        (exists ((z-0 strd))
-          (and (p "auth" z-0 2) (p "auth" "as" z-0 as)
-            (p "auth" "k" z-0 k) (p "auth" "c" z-0 c))))))
-  (traces
-    ((send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt (enc ak n1 tk t k)))))
-  (label 8)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton pkinit-fix2
-  (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c as t name)
-    (k ak ak-0 skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c)
-    (t t) (as as) (k k) (ak ak-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak-0)
-  (operation encryption-test (added-strand auth 2)
-    (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as)) (0 1))
-  (traces
-    ((send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt (enc ak n1 tk t k))))
-    ((recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k)))))
-  (label 9)
-  (parent 8)
-  (unrealized (0 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton pkinit-fix2
-  (vars (n2 n1 text) (tc tgt tk tgt-0 data) (c as t name) (k ak skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak)
-  (operation encryption-test (displaced 2 1 auth 2)
-    (enc ak-0 n1 tk-0 t k) (0 1))
-  (traces
-    ((send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt (enc ak n1 tk t k))))
-    ((recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt-0 (enc ak n1 tk t k)))))
-  (label 10)
-  (parent 9)
-  (unrealized)
-  (shape)
-  (satisfies yes)
-  (maps
-    ((0)
-      ((c c) (as as) (k k) (t t) (n2 n2) (n1 n1) (tc tc) (tk tk)
-        (tgt tgt) (ak ak))))
-  (origs (k (1 1)) (ak (1 1)) (n1 (0 0)) (n2 (0 0))))
-
-(defskeleton pkinit-fix2
-  (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c as t name)
-    (k ak ak-0 skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c)
-    (t t) (as as) (k k) (ak ak-0))
-  (deflistener k)
-  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak-0)
-  (operation encryption-test (added-listener k) (enc ak n1 tk t k)
-    (0 1))
-  (traces
-    ((send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt (enc ak n1 tk t k))))
-    ((recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k))))
-    ((recv k) (send k)))
-  (label 11)
-  (parent 9)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton pkinit-fix2
-  (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c as t name)
-    (ak ak-0 skey))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k ak-0) (ak ak))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0) (c c)
-    (t t) (as as) (k ak-0) (ak ak-0))
-  (deflistener ak-0)
-  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 ak-0)
-  (operation nonce-test (displaced 3 1 auth 2) k (2 0)
-    (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-      (pubk c)))
-  (traces
-    ((send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat
-          (enc (enc ak-0 (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt (enc ak n1 tk t ak-0))))
-    ((recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat
-          (enc (enc ak-0 (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t ak-0))))
-    ((recv ak-0) (send ak-0)))
-  (label 12)
-  (parent 11)
-  (unrealized (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol pkinit-flawed basic
-  (defrole client
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    (uniq-orig n2 n1))
-  (defrole auth
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    (uniq-orig k ak)))
-
-(defskeleton pkinit-flawed
-  (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c c-0 as t as-0 t-0 name) (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)
-    (t t) (as as-0) (k k) (ak ak))
-  (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0)
-    (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2-0 n1-0 k ak)
-  (goals
-    (forall ((c c-0 as name) (k skey) (z z-0 strd))
-      (implies
-        (and (p "client" z 2) (p "client" "c" z c)
-          (p "client" "as" z as) (p "client" "k" z k) (p "auth" z-0 2)
-          (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as))
-          (non (privk c))) (= c c-0))))
-  (traces
-    ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1))
-      (send
-        (cat (enc (enc k n2 (privk as-0)) (pubk c-0)) c-0 tgt
-          (enc ak n1 tk t k))))
-    ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
-      (recv
-        (cat (enc (enc k n2-0 (privk as)) (pubk c)) c tgt-0
-          (enc ak-0 n1-0 tk-0 t-0 k)))))
-  (label 13)
-  (unrealized (1 1))
-  (preskeleton)
-  (origs (n1-0 (1 0)) (n2-0 (1 0)) (k (0 1)) (ak (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton pkinit-flawed
-  (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c c-0 as t as-0 t-0 name) (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)
-    (t t) (as as-0) (k k) (ak ak))
-  (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0)
-    (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (precedes ((0 1) (1 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2-0 n1-0 k ak)
-  (goals
-    (forall ((c c-0 as name) (k skey) (z z-0 strd))
-      (implies
-        (and (p "client" z 2) (p "client" "c" z c)
-          (p "client" "as" z as) (p "client" "k" z k) (p "auth" z-0 2)
-          (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as))
-          (non (privk c))) (= c c-0))))
-  (traces
-    ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1))
-      (send
-        (cat (enc (enc k n2 (privk as-0)) (pubk c-0)) c-0 tgt
-          (enc ak n1 tk t k))))
-    ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
-      (recv
-        (cat (enc (enc k n2-0 (privk as)) (pubk c)) c tgt-0
-          (enc ak-0 n1-0 tk-0 t-0 k)))))
-  (label 14)
-  (parent 13)
-  (unrealized (1 1))
-  (origs (n1-0 (1 0)) (n2-0 (1 0)) (k (0 1)) (ak (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton pkinit-flawed
-  (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c c-0 t as t-0 name) (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand client 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0)
-    (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1-0 k ak)
-  (operation encryption-test (displaced 2 0 auth 2)
-    (enc k n2-0 (privk as-0)) (1 1))
-  (traces
-    ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1))
-      (send
-        (cat (enc (enc k n2 (privk as)) (pubk c-0)) c-0 tgt
-          (enc ak n1 tk t k))))
-    ((send (cat (enc tc-0 n2 (privk c)) c t-0 n1-0))
-      (recv
-        (cat (enc (enc k n2 (privk as)) (pubk c)) c tgt-0
-          (enc ak-0 n1-0 tk-0 t-0 k)))))
-  (label 15)
-  (parent 14)
-  (unrealized)
-  (shape)
-  (satisfies (no (c c) (c-0 c-0) (as as) (k k) (z 1) (z-0 0)))
-  (maps
-    ((0 1)
-      ((c c) (c-0 c-0) (as as) (k k) (t t) (as-0 as) (n2 n2) (n1 n1)
-        (tc tc) (tk tk) (tgt tgt) (ak ak) (t-0 t-0) (n2-0 n2)
-        (n1-0 n1-0) (tc-0 tc-0) (tk-0 tk-0) (tgt-0 tgt-0) (ak-0 ak-0))))
-  (origs (k (0 1)) (ak (0 1)) (n1-0 (1 0)) (n2 (1 0))))
-
-(comment "Nothing left to do")
-
-(defprotocol pkinit-fix1 basic
-  (defrole client
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    (uniq-orig n2 n1))
-  (defrole auth
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    (uniq-orig k ak)))
-
-(defskeleton pkinit-fix1
-  (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c c-0 as t as-0 t-0 name) (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)
-    (t t) (as as-0) (k k) (ak ak))
-  (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0)
-    (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2-0 n1-0 k ak)
-  (goals
-    (forall ((c c-0 as name) (k skey) (z z-0 strd))
-      (implies
-        (and (p "client" z 2) (p "client" "c" z c)
-          (p "client" "as" z as) (p "client" "k" z k) (p "auth" z-0 2)
-          (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as))
-          (non (privk c))) (exists ((z-1 strd)) (p "client" z-1 2)))))
-  (traces
-    ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1))
-      (send
-        (cat (enc (enc k n2 c-0 (privk as-0)) (pubk c-0)) c-0 tgt
-          (enc ak n1 tk t k))))
-    ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
-      (recv
-        (cat (enc (enc k n2-0 c (privk as)) (pubk c)) c tgt-0
-          (enc ak-0 n1-0 tk-0 t-0 k)))))
-  (label 16)
-  (unrealized (1 1))
-  (preskeleton)
-  (origs (n1-0 (1 0)) (n2-0 (1 0)) (k (0 1)) (ak (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton pkinit-fix1
-  (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c c-0 as t as-0 t-0 name) (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)
-    (t t) (as as-0) (k k) (ak ak))
-  (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0)
-    (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (precedes ((0 1) (1 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2-0 n1-0 k ak)
-  (goals
-    (forall ((c c-0 as name) (k skey) (z z-0 strd))
-      (implies
-        (and (p "client" z 2) (p "client" "c" z c)
-          (p "client" "as" z as) (p "client" "k" z k) (p "auth" z-0 2)
-          (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as))
-          (non (privk c))) (exists ((z-1 strd)) (p "client" z-1 2)))))
-  (traces
-    ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1))
-      (send
-        (cat (enc (enc k n2 c-0 (privk as-0)) (pubk c-0)) c-0 tgt
-          (enc ak n1 tk t k))))
-    ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
-      (recv
-        (cat (enc (enc k n2-0 c (privk as)) (pubk c)) c tgt-0
-          (enc ak-0 n1-0 tk-0 t-0 k)))))
-  (label 17)
-  (parent 16)
-  (unrealized (1 1))
-  (origs (n1-0 (1 0)) (n2-0 (1 0)) (k (0 1)) (ak (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton pkinit-fix1
-  (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c t as t-0 name) (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand client 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0)
-    (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1-0 k ak)
-  (operation encryption-test (displaced 2 0 auth 2)
-    (enc k n2-0 c-0 (privk as-0)) (1 1))
-  (traces
-    ((recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    ((send (cat (enc tc-0 n2 (privk c)) c t-0 n1-0))
-      (recv
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0
-          (enc ak-0 n1-0 tk-0 t-0 k)))))
-  (label 18)
-  (parent 17)
-  (unrealized (0 0) (1 1))
-  (origs (k (0 1)) (ak (0 1)) (n1-0 (1 0)) (n2 (1 0)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton pkinit-fix1
-  (vars (n2 n1 text) (tc tk tgt tc-0 tgt-0 data) (c t as name)
-    (k ak skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc-0) (tk tk) (tgt tgt-0)
-    (c c) (t t) (as as) (k k) (ak ak))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak)
-  (operation encryption-test (displaced 2 0 auth 2)
-    (enc ak-0 n1-0 tk-0 t-0 k) (1 1))
-  (traces
-    ((recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    ((send (cat (enc tc-0 n2 (privk c)) c t n1))
-      (recv
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0
-          (enc ak n1 tk t k)))))
-  (label 19)
-  (parent 18)
-  (unrealized (0 0))
-  (origs (k (0 1)) (ak (0 1)) (n1 (1 0)) (n2 (1 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton pkinit-fix1
-  (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c t as t-0 name) (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand client 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0)
-    (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (deflistener k)
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (1 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1-0 k ak)
-  (operation encryption-test (added-listener k)
-    (enc ak-0 n1-0 tk-0 t-0 k) (1 1))
-  (traces
-    ((recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    ((send (cat (enc tc-0 n2 (privk c)) c t-0 n1-0))
-      (recv
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0
-          (enc ak-0 n1-0 tk-0 t-0 k)))) ((recv k) (send k)))
-  (label 20)
-  (parent 18)
-  (unrealized (0 0) (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton pkinit-fix1
-  (vars (n2 n1 text) (tk tgt tc tgt-0 data) (c t as name) (k ak skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak)
-  (operation encryption-test (displaced 2 1 client 1)
-    (enc tc-0 n2 (privk c)) (0 0))
-  (traces
-    ((recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t k))))
-    ((send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat (enc (enc k n2 c (privk as)) (pubk c)) c tgt-0
-          (enc ak n1 tk t k)))))
-  (label 21)
-  (parent 19)
-  (unrealized)
-  (shape)
-  (satisfies yes)
-  (maps
-    ((0 1)
-      ((c c) (c-0 c) (as as) (k k) (t t) (as-0 as) (n2 n2) (n1 n1)
-        (tc tc) (tk tk) (tgt tgt) (ak ak) (t-0 t) (n2-0 n2) (n1-0 n1)
-        (tc-0 tc) (tk-0 tk) (tgt-0 tgt-0) (ak-0 ak))))
-  (origs (n1 (1 0)) (n2 (1 0)) (k (0 1)) (ak (0 1))))
-
-(defskeleton pkinit-fix1
-  (vars (n2 n1 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c t as t-0 name) (ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k ak) (ak ak))
-  (defstrand client 2 (n2 n2) (n1 n1-0) (tc tc-0) (tk tk-0) (tgt tgt-0)
-    (c c) (t t-0) (as as) (k ak) (ak ak-0))
-  (deflistener ak)
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (1 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1-0 ak)
-  (operation nonce-test (displaced 3 0 auth 2) k (2 0)
-    (enc (enc k n2 c (privk as)) (pubk c)))
-  (traces
-    ((recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat (enc (enc ak n2 c (privk as)) (pubk c)) c tgt
-          (enc ak n1 tk t ak))))
-    ((send (cat (enc tc-0 n2 (privk c)) c t-0 n1-0))
-      (recv
-        (cat (enc (enc ak n2 c (privk as)) (pubk c)) c tgt-0
-          (enc ak-0 n1-0 tk-0 t-0 ak)))) ((recv ak) (send ak)))
-  (label 22)
-  (parent 20)
-  (unrealized (0 0) (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol pkinit-fix2 basic
-  (defrole client
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt (enc ak n1 tk t k))))
-    (uniq-orig n2 n1))
-  (defrole auth
-    (vars (c t as name) (n2 n1 text) (tc tk tgt data) (k ak skey))
-    (trace (recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt (enc ak n1 tk t k))))
-    (uniq-orig k ak)))
-
-(defskeleton pkinit-fix2
-  (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c c-0 as t as-0 t-0 name) (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)
-    (t t) (as as-0) (k k) (ak ak))
-  (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0)
-    (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2-0 n1-0 k ak)
-  (goals
-    (forall ((c c-0 as name) (k skey) (z z-0 strd))
-      (implies
-        (and (p "client" z 2) (p "client" "c" z c)
-          (p "client" "as" z as) (p "client" "k" z k) (p "auth" z-0 2)
-          (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as))
-          (non (privk c))) (exists ((z-1 strd)) (p "client" z-1 2)))))
-  (traces
-    ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1))
-      (send
-        (cat
-          (enc
-            (enc k (hash (enc tc n2 (privk c-0)) c-0 t n1) (privk as-0))
-            (pubk c-0)) c-0 tgt (enc ak n1 tk t k))))
-    ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
-      (recv
-        (cat
-          (enc
-            (enc k (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0)
-              (privk as)) (pubk c)) c tgt-0
-          (enc ak-0 n1-0 tk-0 t-0 k)))))
-  (label 23)
-  (unrealized (1 1))
-  (preskeleton)
-  (origs (n1-0 (1 0)) (n2-0 (1 0)) (k (0 1)) (ak (0 1)))
-  (comment "Not a skeleton"))
-
-(defskeleton pkinit-fix2
-  (vars (n2 n1 n2-0 n1-0 text) (tc tk tgt tc-0 tk-0 tgt-0 data)
-    (c c-0 as t as-0 t-0 name) (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c-0)
-    (t t) (as as-0) (k k) (ak ak))
-  (defstrand client 2 (n2 n2-0) (n1 n1-0) (tc tc-0) (tk tk-0)
-    (tgt tgt-0) (c c) (t t-0) (as as) (k k) (ak ak-0))
-  (precedes ((0 1) (1 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2-0 n1-0 k ak)
-  (goals
-    (forall ((c c-0 as name) (k skey) (z z-0 strd))
-      (implies
-        (and (p "client" z 2) (p "client" "c" z c)
-          (p "client" "as" z as) (p "client" "k" z k) (p "auth" z-0 2)
-          (p "auth" "k" z-0 k) (p "auth" "c" z-0 c-0) (non (privk as))
-          (non (privk c))) (exists ((z-1 strd)) (p "client" z-1 2)))))
-  (traces
-    ((recv (cat (enc tc n2 (privk c-0)) c-0 t n1))
-      (send
-        (cat
-          (enc
-            (enc k (hash (enc tc n2 (privk c-0)) c-0 t n1) (privk as-0))
-            (pubk c-0)) c-0 tgt (enc ak n1 tk t k))))
-    ((send (cat (enc tc-0 n2-0 (privk c)) c t-0 n1-0))
-      (recv
-        (cat
-          (enc
-            (enc k (hash (enc tc-0 n2-0 (privk c)) c t-0 n1-0)
-              (privk as)) (pubk c)) c tgt-0
-          (enc ak-0 n1-0 tk-0 t-0 k)))))
-  (label 24)
-  (parent 23)
-  (unrealized (1 1))
-  (origs (n1-0 (1 0)) (n2-0 (1 0)) (k (0 1)) (ak (0 1)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton pkinit-fix2
-  (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c t as name)
-    (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0)
-    (c c) (t t) (as as) (k k) (ak ak-0))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak)
-  (operation encryption-test (displaced 2 0 auth 2)
-    (enc k (hash (enc tc-0 n2-0 (privk c-0)) c-0 t-0 n1-0) (privk as-0))
-    (1 1))
-  (traces
-    ((recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt (enc ak n1 tk t k))))
-    ((send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k)))))
-  (label 25)
-  (parent 24)
-  (unrealized (1 1))
-  (origs (k (0 1)) (ak (0 1)) (n1 (1 0)) (n2 (1 0)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton pkinit-fix2
-  (vars (n2 n1 text) (tc tk tgt tgt-0 data) (c t as name) (k ak skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt-0) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak)
-  (operation encryption-test (displaced 2 0 auth 2)
-    (enc ak-0 n1 tk-0 t k) (1 1))
-  (traces
-    ((recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt (enc ak n1 tk t k))))
-    ((send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt-0 (enc ak n1 tk t k)))))
-  (label 26)
-  (parent 25)
-  (unrealized)
-  (shape)
-  (satisfies yes)
-  (maps
-    ((0 1)
-      ((c c) (c-0 c) (as as) (k k) (t t) (as-0 as) (n2 n2) (n1 n1)
-        (tc tc) (tk tk) (tgt tgt) (ak ak) (t-0 t) (n2-0 n2) (n1-0 n1)
-        (tc-0 tc) (tk-0 tk) (tgt-0 tgt-0) (ak-0 ak))))
-  (origs (k (0 1)) (ak (0 1)) (n1 (1 0)) (n2 (1 0))))
-
-(defskeleton pkinit-fix2
-  (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c t as name)
-    (k ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k k) (ak ak))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0)
-    (c c) (t t) (as as) (k k) (ak ak-0))
-  (deflistener k)
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (1 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 k ak)
-  (operation encryption-test (added-listener k) (enc ak-0 n1 tk-0 t k)
-    (1 1))
-  (traces
-    ((recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt (enc ak n1 tk t k))))
-    ((send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat
-          (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t k))))
-    ((recv k) (send k)))
-  (label 27)
-  (parent 25)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton pkinit-fix2
-  (vars (n2 n1 text) (tc tk tgt tk-0 tgt-0 data) (c t as name)
-    (ak ak-0 skey))
-  (defstrand auth 2 (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt) (c c)
-    (t t) (as as) (k ak) (ak ak))
-  (defstrand client 2 (n2 n2) (n1 n1) (tc tc) (tk tk-0) (tgt tgt-0)
-    (c c) (t t) (as as) (k ak) (ak ak-0))
-  (deflistener ak)
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((2 1) (1 1)))
-  (non-orig (privk c) (privk as))
-  (uniq-orig n2 n1 ak)
-  (operation nonce-test (displaced 3 0 auth 2) k (2 0)
-    (enc (enc k (hash (enc tc n2 (privk c)) c t n1) (privk as))
-      (pubk c)))
-  (traces
-    ((recv (cat (enc tc n2 (privk c)) c t n1))
-      (send
-        (cat
-          (enc (enc ak (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt (enc ak n1 tk t ak))))
-    ((send (cat (enc tc n2 (privk c)) c t n1))
-      (recv
-        (cat
-          (enc (enc ak (hash (enc tc n2 (privk c)) c t n1) (privk as))
-            (pubk c)) c tgt-0 (enc ak-0 n1 tk-0 t ak))))
-    ((recv ak) (send ak)))
-  (label 28)
-  (parent 27)
-  (unrealized (2 0))
-  (dead)
-  (comment "empty cohort"))
+      ((c c) (as as) (t t) (n2 n2) (n1 n1) (tc tc) (tk tk) (tgt tgt)
+        (k k) (ak ak))))
+  (origs (k (1 1)) (ak-0 (1 1)) (n2 (0 0)) (n1 (0 0))))
 
 (comment "Nothing left to do")
diff --git a/tst/plaindh.scm b/tst/plaindh.scm
deleted file mode 100644
--- a/tst/plaindh.scm
+++ /dev/null
@@ -1,25 +0,0 @@
-(herald "Plain diffie-hellman protocol with challenge-response" (algebra diffie-hellman)
-; (limit 1)
-)
-
-(defprotocol plaindh diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (n text))
-    (trace (send (exp (gen) x))
-           (recv (exp (gen) y))
-           (send (enc n (exp (gen) (mul x y))))
-           (recv n))
-    (uniq-orig n)
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (n text))
-    (trace (recv (exp (gen) x))
-           (send (exp (gen) y))
-           (recv (enc n (exp (gen) (mul x y))))
-           (send n))
-    (uniq-gen y))
-  (comment "Diffie-hellman key exchange followed by an encryption"))
-
-(defskeleton plaindh
-  (vars )
-  (defstrand init 4))
diff --git a/tst/plaindh.tst b/tst/plaindh.tst
deleted file mode 100644
--- a/tst/plaindh.tst
+++ /dev/null
@@ -1,36 +0,0 @@
-(herald "Plain diffie-hellman protocol with challenge-response"
-  (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/plaindh.scm")
-
-(defprotocol plaindh diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (n text))
-    (trace (send (exp (gen) x)) (recv (exp (gen) y))
-      (send (enc n (exp (gen) (mul x y)))) (recv n))
-    (uniq-orig n)
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (n text))
-    (trace (recv (exp (gen) x)) (send (exp (gen) y))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    (uniq-gen y)
-    (absent (y (exp (gen) x))))
-  (comment "Diffie-hellman key exchange followed by an encryption"))
-
-(defskeleton plaindh
-  (vars (n text) (x rndx) (y expt))
-  (defstrand init 4 (n n) (x x) (y y))
-  (uniq-gen x)
-  (uniq-orig n)
-  (traces
-    ((send (exp (gen) x)) (recv (exp (gen) y))
-      (send (enc n (exp (gen) (mul x y)))) (recv n)))
-  (label 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((x x) (y y) (n n))))
-  (origs (n (0 2))))
-
-(comment "Nothing left to do")
diff --git a/tst/precursor.scm b/tst/precursor.scm
deleted file mode 100644
--- a/tst/precursor.scm
+++ /dev/null
@@ -1,23 +0,0 @@
-(herald precursor (algebra diffie-hellman) (bound 6))
-
-(defprotocol precursor diffie-hellman
-  (defrole init
-    (vars (x y rndx))
-    (trace (send (cat (exp (gen) x) (exp (gen) y)))
-	   (recv (exp (gen) (mul x y))))
-    (uniq-gen x y)))
-
-(defskeleton precursor
-  (vars)
-  (defstrand init 2))
-
-;; (defskeleton precurser
-;;   (vars (x y rndx) (x-0 x-1 expt))
-;;   (defstrand init 2 (x x) (y y))
-;;   (deflistener (cat (exp (gen) (mul x y x-0)) x-0))
-;;   (deflistener (cat (exp (gen) (mul x y x-1)) x-1))
-;;   (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
-;;   (uniq-gen x y)
-;;   (pov (0) (defskeleton precurser
-;; 	     (vars)
-;; 	     (defstrand init 2))))
diff --git a/tst/precursor.tst b/tst/precursor.tst
deleted file mode 100644
--- a/tst/precursor.tst
+++ /dev/null
@@ -1,62 +0,0 @@
-(herald precursor (algebra diffie-hellman) (bound 6))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/precursor.scm")
-(comment "Strand count bounded at 6")
-
-(defprotocol precursor diffie-hellman
-  (defrole init
-    (vars (x y rndx))
-    (trace (send (cat (exp (gen) x) (exp (gen) y)))
-      (recv (exp (gen) (mul x y))))
-    (uniq-gen x y)))
-
-(defskeleton precursor
-  (vars (x y rndx))
-  (defstrand init 2 (x x) (y y))
-  (uniq-gen x y)
-  (traces
-    ((send (cat (exp (gen) x) (exp (gen) y)))
-      (recv (exp (gen) (mul x y)))))
-  (label 0)
-  (unrealized (0 1))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton precursor
-  (vars (x y rndx))
-  (defstrand init 2 (x x) (y y))
-  (deflistener (cat (exp (gen) x) y))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (uniq-gen x y)
-  (operation nonce-test (added-listener (cat (exp (gen) x) y))
-    (exp (gen) (mul x y)) (0 1))
-  (traces
-    ((send (cat (exp (gen) x) (exp (gen) y)))
-      (recv (exp (gen) (mul x y))))
-    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
-  (label 1)
-  (parent 0)
-  (unrealized (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton precursor
-  (vars (x y rndx))
-  (defstrand init 2 (x x) (y y))
-  (deflistener (cat (exp (gen) y) x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (uniq-gen x y)
-  (operation nonce-test (added-listener (cat (exp (gen) y) x))
-    (exp (gen) (mul x y)) (0 1))
-  (traces
-    ((send (cat (exp (gen) x) (exp (gen) y)))
-      (recv (exp (gen) (mul x y))))
-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
-  (label 2)
-  (parent 0)
-  (unrealized (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
diff --git a/tst/preprocess.scm b/tst/preprocess.scm
new file mode 100644
--- /dev/null
+++ b/tst/preprocess.scm
@@ -0,0 +1,27 @@
+(herald "Pre-processing test example: modified NS with two responders")
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 n3 text))
+    (trace
+     (send (enc n1 a (pubk b)))
+     (recv (enc n1 n2 n3 (pubk a)))
+     (send (enc n2 n3 (pubk b))))
+	(uniq-orig n1))
+  (defrole resp
+    (vars (a b name) (n1 n2 n3 text))
+    (trace
+     (recv (enc n1 a (pubk b)))
+     (send (enc n1 n2 n3 (pubk a)))
+     (recv (enc n2 n3 (pubk b))))
+	(uniq-orig n2 n3))
+  (comment "modified Needham-Schroeder with role origination assumptions"))
+
+;;; The initiator and two entangled responders POV
+(defskeleton ns
+  (vars (a b name) (n1 n2 n3 n2p n3p text))
+  (defstrand init 3 (a a) (b b) (n1 n1) (n2 n2) (n3 n3))
+  (defstrand resp 3 (a a) (b b) (n1 n1) (n2 n2) (n3 n3p))
+  (defstrand resp 3 (a a) (b b) (n1 n1) (n2 n2p) (n3 n3))
+  (non-orig (privk b) (privk a))
+)
diff --git a/tst/preprocess.tst b/tst/preprocess.tst
new file mode 100644
--- /dev/null
+++ b/tst/preprocess.tst
@@ -0,0 +1,108 @@
+(herald "Pre-processing test example: modified NS with two responders")
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/preprocess.scm")
+
+(defprotocol ns basic
+  (defrole init
+    (vars (a b name) (n1 n2 n3 text))
+    (trace (send (enc n1 a (pubk b))) (recv (enc n1 n2 n3 (pubk a)))
+      (send (enc n2 n3 (pubk b))))
+    (uniq-orig n1))
+  (defrole resp
+    (vars (a b name) (n1 n2 n3 text))
+    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 n3 (pubk a)))
+      (recv (enc n2 n3 (pubk b))))
+    (uniq-orig n2 n3))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment
+    "modified Needham-Schroeder with role origination assumptions"))
+
+(defskeleton ns
+  (vars (n1 n2 n3 n2p n3p text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (n3 n3) (a a) (b b))
+  (defstrand resp 3 (n1 n1) (n2 n2) (n3 n3p) (a a) (b b))
+  (defstrand resp 3 (n1 n1) (n2 n2p) (n3 n3) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n2 n3 n2p n3p)
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 n3 (pubk a)))
+      (send (enc n2 n3 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 n3p (pubk a)))
+      (recv (enc n2 n3p (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2p n3 (pubk a)))
+      (recv (enc n2p n3 (pubk b)))))
+  (label 0)
+  (unrealized (0 1) (1 0) (1 2) (2 0) (2 2))
+  (preskeleton)
+  (origs (n3 (2 1)) (n2p (2 1)) (n3p (1 1)) (n2 (1 1)) (n1 (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton ns
+  (vars (n1 n2 n3 n2p n3p text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (n3 n3) (a a) (b b))
+  (defstrand resp 3 (n1 n1) (n2 n2) (n3 n3p) (a a) (b b))
+  (defstrand resp 3 (n1 n1) (n2 n2p) (n3 n3) (a a) (b b))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n2 n3 n2p n3p)
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 n3 (pubk a)))
+      (send (enc n2 n3 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 n3p (pubk a)))
+      (recv (enc n2 n3p (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2p n3 (pubk a)))
+      (recv (enc n2p n3 (pubk b)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1) (1 2) (2 2))
+  (dead)
+  (origs (n3 (2 1)) (n2p (2 1)) (n3p (1 1)) (n2 (1 1)) (n1 (0 0)))
+  (comment "empty cohort"))
+
+(defskeleton ns
+  (vars (n1 n2 n3p text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (n3 n3p) (a a) (b b))
+  (defstrand resp 3 (n1 n1) (n2 n2) (n3 n3p) (a a) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n2 n3p)
+  (operation collapsed 2 1)
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 n3p (pubk a)))
+      (send (enc n2 n3p (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 n3p (pubk a)))
+      (recv (enc n2 n3p (pubk b)))))
+  (label 2)
+  (parent 1)
+  (unrealized (1 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton ns
+  (vars (n1 n2 n3p text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (n3 n3p) (a a) (b b))
+  (defstrand resp 3 (n1 n1) (n2 n2) (n3 n3p) (a a) (b b))
+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n2 n3p)
+  (operation nonce-test (displaced 2 0 init 3) n2 (1 2)
+    (enc n1 n2 n3p (pubk a)))
+  (traces
+    ((send (enc n1 a (pubk b))) (recv (enc n1 n2 n3p (pubk a)))
+      (send (enc n2 n3p (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n2 n3p (pubk a)))
+      (recv (enc n2 n3p (pubk b)))))
+  (label 3)
+  (parent 2)
+  (realized)
+  (shape)
+  (maps
+    ((0 1 1) ((a a) (b b) (n1 n1) (n2 n2) (n3 n3p) (n2p n2) (n3p n3p))))
+  (origs (n1 (0 0)) (n3p (1 1)) (n2 (1 1))))
+
+(comment "Nothing left to do")
diff --git a/tst/print.scm b/tst/print.scm
new file mode 100644
--- /dev/null
+++ b/tst/print.scm
@@ -0,0 +1,13 @@
+(herald "Print Test"
+  (comment "See if read forms look like printed ones"))
+
+(defprotocol print-test basic
+  (defrole role
+    (vars (a b akey) (f g skey) (x y data))
+    (trace (recv (cat a b f g x y)))
+    (comment "Check the order in which variables are printed")))
+
+(defskeleton print-test
+  (vars (a b akey) (f g skey) (x y data))
+  (defstrand role 1 (a a) (b b) (f f) (g g) (x x) (y y))
+  (comment "Check the order in which variables are printed"))
diff --git a/tst/print.tst b/tst/print.tst
new file mode 100644
--- /dev/null
+++ b/tst/print.tst
@@ -0,0 +1,30 @@
+(herald "Print Test"
+  (comment "See if read forms look like printed ones"))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/print.scm")
+
+(defprotocol print-test basic
+  (defrole role
+    (vars (a b akey) (f g skey) (x y data))
+    (trace (recv (cat a b f g x y)))
+    (comment "Check the order in which variables are printed"))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton print-test
+  (vars (x y data) (f g skey) (a b akey))
+  (defstrand role 1 (x x) (y y) (f f) (g g) (a a) (b b))
+  (comment "Check the order in which variables are printed")
+  (traces ((recv (cat a b f g x y))))
+  (label 0)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (f f) (g g) (x x) (y y))))
+  (origs))
+
+(comment "Nothing left to do")
diff --git a/tst/priority_test.scm b/tst/priority_test.scm
deleted file mode 100644
--- a/tst/priority_test.scm
+++ /dev/null
@@ -1,27 +0,0 @@
-(herald "Receive priority test protocol"
-  )
-
-(defprotocol priority_test basic
-  (defrole init
-     (vars (n1 n2 n3 n4 text) (k skey))
-     (trace
-       (send (enc n1 n1 k))
-       (recv (enc n1 n2 k))
-       (recv (enc n1 n3 k))
-       (recv (enc n1 n4 k)))
-     (priority (2 0) (3 10))
-     (non-orig k)
-     (uniq-orig n1)
-  )
-)
-
-; Node 4 should realize first, then node 2, then node 3.
-(defskeleton priority_test
-   (vars (n1 text))
-   (defstrand init 4 (n1 n1)))
-
-; Node 3 should realize first, then node 2, then node 4.
-(defskeleton priority_test
-   (vars (n1 text))
-   (defstrand init 4 (n1 n1))
-   (priority ((0 2) 10) ((0 3) 0)))
diff --git a/tst/priority_test.tst b/tst/priority_test.tst
deleted file mode 100644
--- a/tst/priority_test.tst
+++ /dev/null
@@ -1,116 +0,0 @@
-(herald "Receive priority test protocol")
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/priority_test.scm")
-
-(defprotocol priority_test basic
-  (defrole init
-    (vars (n1 n2 n3 n4 text) (k skey))
-    (trace (send (enc n1 n1 k)) (recv (enc n1 n2 k))
-      (recv (enc n1 n3 k)) (recv (enc n1 n4 k)))
-    (non-orig k)
-    (uniq-orig n1)
-    (priority (2 0) (3 10))))
-
-(defskeleton priority_test
-  (vars (n1 n2 n3 n4 text) (k skey))
-  (defstrand init 4 (n1 n1) (n2 n2) (n3 n3) (n4 n4) (k k))
-  (priority ((0 2) 0) ((0 3) 10))
-  (non-orig k)
-  (uniq-orig n1)
-  (traces
-    ((send (enc n1 n1 k)) (recv (enc n1 n2 k)) (recv (enc n1 n3 k))
-      (recv (enc n1 n4 k))))
-  (label 0)
-  (unrealized (0 1) (0 2) (0 3))
-  (origs (n1 (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton priority_test
-  (vars (n2 n3 n4 text) (k skey))
-  (defstrand init 4 (n1 n4) (n2 n2) (n3 n3) (n4 n4) (k k))
-  (priority ((0 2) 0) ((0 3) 10))
-  (non-orig k)
-  (uniq-orig n4)
-  (operation encryption-test (displaced 1 0 init 1) (enc n4 n4 k) (0 3))
-  (traces
-    ((send (enc n4 n4 k)) (recv (enc n4 n2 k)) (recv (enc n4 n3 k))
-      (recv (enc n4 n4 k))))
-  (label 1)
-  (parent 0)
-  (unrealized (0 1) (0 2))
-  (origs (n4 (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton priority_test
-  (vars (n2 n3 text) (k skey))
-  (defstrand init 4 (n1 n2) (n2 n2) (n3 n3) (n4 n2) (k k))
-  (priority ((0 2) 0) ((0 3) 10))
-  (non-orig k)
-  (uniq-orig n2)
-  (operation encryption-test (displaced 1 0 init 1) (enc n2 n2 k) (0 1))
-  (traces
-    ((send (enc n2 n2 k)) (recv (enc n2 n2 k)) (recv (enc n2 n3 k))
-      (recv (enc n2 n2 k))))
-  (label 2)
-  (parent 1)
-  (unrealized (0 2))
-  (origs (n2 (0 0))))
-
-(comment "Nothing left to do")
-
-(defprotocol priority_test basic
-  (defrole init
-    (vars (n1 n2 n3 n4 text) (k skey))
-    (trace (send (enc n1 n1 k)) (recv (enc n1 n2 k))
-      (recv (enc n1 n3 k)) (recv (enc n1 n4 k)))
-    (non-orig k)
-    (uniq-orig n1)
-    (priority (2 0) (3 10))))
-
-(defskeleton priority_test
-  (vars (n1 n2 n3 n4 text) (k skey))
-  (defstrand init 4 (n1 n1) (n2 n2) (n3 n3) (n4 n4) (k k))
-  (priority ((0 2) 10) ((0 3) 0))
-  (non-orig k)
-  (uniq-orig n1)
-  (traces
-    ((send (enc n1 n1 k)) (recv (enc n1 n2 k)) (recv (enc n1 n3 k))
-      (recv (enc n1 n4 k))))
-  (label 3)
-  (unrealized (0 1) (0 2) (0 3))
-  (origs (n1 (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton priority_test
-  (vars (n2 n3 n4 text) (k skey))
-  (defstrand init 4 (n1 n3) (n2 n2) (n3 n3) (n4 n4) (k k))
-  (priority ((0 2) 10) ((0 3) 0))
-  (non-orig k)
-  (uniq-orig n3)
-  (operation encryption-test (displaced 1 0 init 1) (enc n3 n3 k) (0 2))
-  (traces
-    ((send (enc n3 n3 k)) (recv (enc n3 n2 k)) (recv (enc n3 n3 k))
-      (recv (enc n3 n4 k))))
-  (label 4)
-  (parent 3)
-  (unrealized (0 1) (0 3))
-  (origs (n3 (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton priority_test
-  (vars (n2 n4 text) (k skey))
-  (defstrand init 4 (n1 n2) (n2 n2) (n3 n2) (n4 n4) (k k))
-  (priority ((0 2) 10) ((0 3) 0))
-  (non-orig k)
-  (uniq-orig n2)
-  (operation encryption-test (displaced 1 0 init 1) (enc n2 n2 k) (0 1))
-  (traces
-    ((send (enc n2 n2 k)) (recv (enc n2 n2 k)) (recv (enc n2 n2 k))
-      (recv (enc n2 n4 k))))
-  (label 5)
-  (parent 4)
-  (unrealized (0 3))
-  (origs (n2 (0 0))))
-
-(comment "Nothing left to do")
diff --git a/tst/prottrans.tst b/tst/prottrans.tst
--- a/tst/prottrans.tst
+++ b/tst/prottrans.tst
@@ -1,6 +1,6 @@
 (herald "Protocol Transformations With Rules")
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/prottrans.scm")
 
 (defprotocol ns basic
@@ -10,6 +10,12 @@
   (defrole resp
     (vars (b a akey) (nb na text))
     (trace (recv (enc na a b)) (send (enc na nb a)) (recv (enc nb b))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Needham-Schroeder without rules"))
 
 (defskeleton ns
@@ -52,7 +58,7 @@
     ((recv (enc na a b)) (send (enc na nb a))))
   (label 2)
   (parent 1)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (na na) (nb nb))))
   (origs (na (0 0))))
@@ -66,6 +72,12 @@
   (defrole resp
     (vars (b a akey) (nb na text))
     (trace (recv (enc na a b)) (send (enc na nb a)) (recv (enc nb b))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Needham-Schroeder without rules"))
 
 (defskeleton ns
@@ -92,7 +104,7 @@
     ((send (enc na a b-0)) (recv (enc na nb a)) (send (enc nb b-0))))
   (label 4)
   (parent 3)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (nb nb) (b b) (na na))))
   (origs (nb (0 1))))
@@ -105,7 +117,13 @@
     (trace (send (enc n k)) (recv n)))
   (defrole resp
     (vars (n text) (k akey))
-    (trace (recv (enc n k)) (send n))))
+    (trace (recv (enc n k)) (send n)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton unilateral
   (vars (n text) (k akey))
@@ -139,7 +157,7 @@
   (traces ((send (enc n k)) (recv n)) ((recv (enc n k)) (send n)))
   (label 6)
   (parent 5)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((k k) (n n))))
   (origs (n (0 0))))
@@ -156,11 +174,12 @@
   (defrule unilateral
     (forall ((r strd) (a akey) (nb text))
       (implies
-        (and (p "resp" r 3) (p "resp" "a" r a) (p "resp" "nb" r nb)
-          (non (invk a)) (uniq nb))
+        (and (p "resp" r (idx 3)) (p "resp" "a" r a)
+          (p "resp" "nb" r nb) (non (invk a)) (uniq nb))
         (exists ((i strd))
-          (and (p "init" i 3) (p "init" "a" i a) (p "init" "nb" i nb)
-            (prec r 1 i 1) (prec i 2 r 2)))))
+          (and (p "init" i (idx 3)) (p "init" "a" i a)
+            (p "init" "nb" i nb) (prec r (idx 1) i (idx 1))
+            (prec i (idx 2) r (idx 2))))))
     (comment "Unilateral sas under the predicate mapping:")
     (comment (p "init" 2) "->" (p "resp" 3) "and")
     (comment (p "init" "n") "->" (p "resp" "nb") "and")
@@ -168,6 +187,12 @@
     (comment (p "resp" 2) "->" (p "init" 3) "and")
     (comment (p "resp" "n") "->" (p "init" "nb"))
     (comment (p "resp" "k") "->" (p "init" "a")))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Needham-Schroeder with rule"))
 
 (defskeleton ns-with-rule
@@ -210,7 +235,7 @@
     ((send (enc na a b-0)) (recv (enc na nb a)) (send (enc nb b-0))))
   (label 9)
   (parent 8)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (nb nb) (b b) (na na))))
   (origs (nb (0 1))))
@@ -230,7 +255,7 @@
   (label 10)
   (parent 8)
   (seen 9)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 0 not yet seen"))
 
 (comment "Nothing left to do")
diff --git a/tst/pruning1.scm b/tst/pruning1.scm
new file mode 100644
--- /dev/null
+++ b/tst/pruning1.scm
@@ -0,0 +1,42 @@
+; pruning1
+;   Demonstrates a flaw in CPSA due to overly aggressive pruning.
+; Specifically, the shape requires two instances of trans, one
+; with k = pubk b and the other with k = privk b.  CPSA would
+; form one of these instances and then refuse to augment with another
+; because the new one would prune.  This pruning was overly aggressive
+; because leaving k unbound gives the new strand greater freedom.
+;   This flaw was discovered previously in targetterms6, but
+; this example illustrates that the flaw does not depend on variables
+; of sort mesg; here it is done with a variable of sort akey.
+
+(defprotocol prune basic
+  (defrole init (vars (a b name) (n text))
+    (trace
+	(send (enc n (pubk a)))
+      (recv (enc n (pubk b) (pubk a)))
+      (recv (enc n (privk b) (pubk a)))
+	)
+    (uniq-orig n)
+    (non-orig (privk a))
+  )
+  (defrole trans (vars (a name) (n text) (k akey))
+     (trace
+        (recv (enc n (pubk a)))
+	(recv k )
+        (send (enc n k (pubk a)))
+     )
+  )
+  (comment "Shows a failure with generalization"
+	   "Run this with a step count of 4"))
+
+(defskeleton prune
+  (vars (a name) (n text) (k akey))
+  (defstrand init 3))
+
+(defskeleton prune
+  (vars (n text) (a b name))
+  (defstrand init 3 (n n) (a a) (b b))
+  (defstrand trans 3 (n n) (a a) (k (pubk b)))
+  (defstrand trans 3 (n n) (a a) (k (privk b)))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 2) (0 1)) ((2 2) (0 2)))
+)
diff --git a/tst/pruning1.tst b/tst/pruning1.tst
new file mode 100644
--- /dev/null
+++ b/tst/pruning1.tst
@@ -0,0 +1,160 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/pruning1.scm")
+
+(defprotocol prune basic
+  (defrole init
+    (vars (a b name) (n text))
+    (trace (send (enc n (pubk a))) (recv (enc n (pubk b) (pubk a)))
+      (recv (enc n (privk b) (pubk a))))
+    (non-orig (privk a))
+    (uniq-orig n))
+  (defrole trans
+    (vars (a name) (n text) (k akey))
+    (trace (recv (enc n (pubk a))) (recv k) (send (enc n k (pubk a)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Shows a failure with generalization"
+    "Run this with a step count of 4"))
+
+(defskeleton prune
+  (vars (n text) (a b name))
+  (defstrand init 3 (n n) (a a) (b b))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (traces
+    ((send (enc n (pubk a))) (recv (enc n (pubk b) (pubk a)))
+      (recv (enc n (privk b) (pubk a)))))
+  (label 0)
+  (unrealized (0 1) (0 2))
+  (origs (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton prune
+  (vars (n text) (k akey) (a b name))
+  (defstrand init 3 (n n) (a a) (b b))
+  (defstrand trans 3 (n n) (k k) (a a))
+  (precedes ((0 0) (1 0)) ((1 2) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test (added-strand trans 3) n (0 1) (enc n (pubk a)))
+  (traces
+    ((send (enc n (pubk a))) (recv (enc n (pubk b) (pubk a)))
+      (recv (enc n (privk b) (pubk a))))
+    ((recv (enc n (pubk a))) (recv k) (send (enc n k (pubk a)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton prune
+  (vars (n text) (a b name))
+  (defstrand init 3 (n n) (a a) (b b))
+  (defstrand trans 3 (n n) (k (pubk b)) (a a))
+  (precedes ((0 0) (1 0)) ((1 2) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test (contracted (k (pubk b))) n (0 1)
+    (enc n (pubk a)) (enc n (pubk b) (pubk a)))
+  (traces
+    ((send (enc n (pubk a))) (recv (enc n (pubk b) (pubk a)))
+      (recv (enc n (privk b) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (pubk b))
+      (send (enc n (pubk b) (pubk a)))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton prune
+  (vars (n text) (k akey) (a b name))
+  (defstrand init 3 (n n) (a a) (b b))
+  (defstrand trans 3 (n n) (k (pubk b)) (a a))
+  (defstrand trans 3 (n n) (k k) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 2) (0 1)) ((2 2) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test (added-strand trans 3) n (0 2) (enc n (pubk a))
+    (enc n (pubk b) (pubk a)))
+  (traces
+    ((send (enc n (pubk a))) (recv (enc n (pubk b) (pubk a)))
+      (recv (enc n (privk b) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (pubk b))
+      (send (enc n (pubk b) (pubk a))))
+    ((recv (enc n (pubk a))) (recv k) (send (enc n k (pubk a)))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton prune
+  (vars (n text) (a b name))
+  (defstrand init 3 (n n) (a a) (b b))
+  (defstrand trans 3 (n n) (k (pubk b)) (a a))
+  (defstrand trans 3 (n n) (k (privk b)) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 2) (0 1)) ((2 2) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test (contracted (k (privk b))) n (0 2)
+    (enc n (pubk a)) (enc n (privk b) (pubk a))
+    (enc n (pubk b) (pubk a)))
+  (traces
+    ((send (enc n (pubk a))) (recv (enc n (pubk b) (pubk a)))
+      (recv (enc n (privk b) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (pubk b))
+      (send (enc n (pubk b) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (privk b))
+      (send (enc n (privk b) (pubk a)))))
+  (label 4)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n n))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol prune basic
+  (defrole init
+    (vars (a b name) (n text))
+    (trace (send (enc n (pubk a))) (recv (enc n (pubk b) (pubk a)))
+      (recv (enc n (privk b) (pubk a))))
+    (non-orig (privk a))
+    (uniq-orig n))
+  (defrole trans
+    (vars (a name) (n text) (k akey))
+    (trace (recv (enc n (pubk a))) (recv k) (send (enc n k (pubk a)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Shows a failure with generalization"
+    "Run this with a step count of 4"))
+
+(defskeleton prune
+  (vars (n text) (a b name))
+  (defstrand init 3 (n n) (a a) (b b))
+  (defstrand trans 3 (n n) (k (pubk b)) (a a))
+  (defstrand trans 3 (n n) (k (privk b)) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 2) (0 1)) ((2 2) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (traces
+    ((send (enc n (pubk a))) (recv (enc n (pubk b) (pubk a)))
+      (recv (enc n (privk b) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (pubk b))
+      (send (enc n (pubk b) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (privk b))
+      (send (enc n (privk b) (pubk a)))))
+  (label 5)
+  (realized)
+  (shape)
+  (maps ((0 1 2) ((n n) (a a) (b b))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/puzzle_example.scm b/tst/puzzle_example.scm
new file mode 100644
--- /dev/null
+++ b/tst/puzzle_example.scm
@@ -0,0 +1,73 @@
+(herald puzzle_example)
+
+;; Note that (ltk a b) \not= (ltk b a).  If we have a shared key with
+;; this symmetry, then we need a lttle more structure in the middle
+;; msg.
+
+(defprotocol puzzle basic
+  (defrole init
+    (vars (a b name) (na payload text) (s skey))
+    (trace
+     (send na)
+     (recv (enc na s (ltk a b)))
+     (send (enc payload s))))
+
+  (defrole resp
+    (vars (a b name) (na payload text) (s skey))
+    (trace
+     (recv na)
+     (send (enc na s (ltk a b)))
+     (recv (enc payload s)))))
+
+(defskeleton puzzle
+  (vars (a b name) (na payload text) (s skey))
+  (defstrand init 3 (a a) (b b) (na na) (payload payload))
+  (uniq-orig na payload)
+  (non-orig (ltk a b)))
+
+(defskeleton puzzle
+  (vars (a b name) (na payload text) (s skey))
+  (defstrand init 3 (a a) (b b) (na na) (payload payload))
+  (deflistener payload)
+  (uniq-orig na payload)
+  (non-orig (ltk a b)))
+
+(defskeleton puzzle
+  (vars (na payload text) (a b name) (s skey))
+  (defstrand init 3 (na na) (payload payload) (a a) (b b) (s s))
+  (defstrand resp 2 (na na) (a a) (b b) (s s))
+  (deflistener s)
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (ltk a b))
+  (uniq-orig s na payload))
+
+(defskeleton puzzle
+  (vars (na payload text) (a b name) (s skey))
+  (defstrand init 3 (na na) (payload payload) (a a) (b b) (s s))
+  (defstrand resp 2 (na na) (a a) (b b) (s s))
+  (deflistener payload)
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (ltk a b))
+  (uniq-orig s na payload))
+
+(defskeleton puzzle
+  (vars (a b name) (na payload text) (s skey))
+  (defstrand resp 3 (a a) (b b) (s s) (payload payload))
+  (uniq-orig s)
+  (non-orig (ltk a b)))
+
+(defskeleton puzzle
+  (vars (a b name) (na payload text) (s skey))
+  (defstrand resp 3 (a a) (b b) (s s) (payload payload))
+  (deflistener s)
+  (uniq-orig s)
+  (non-orig (ltk a b)))
+
+(defskeleton puzzle
+  (vars (payload na text) (a b name) (s skey))
+  (defstrand resp 3 (na na) (payload payload) (a a) (b b) (s s))
+  (defstrand init 3 (na na) (payload payload) (a a) (b b) (s s))
+  (deflistener payload)
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (ltk a b))
+  (uniq-orig s payload))
diff --git a/tst/puzzle_example.tst b/tst/puzzle_example.tst
new file mode 100644
--- /dev/null
+++ b/tst/puzzle_example.tst
@@ -0,0 +1,445 @@
+(herald puzzle_example)
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/puzzle_example.scm")
+
+(defprotocol puzzle basic
+  (defrole init
+    (vars (a b name) (na payload text) (s skey))
+    (trace (send na) (recv (enc na s (ltk a b)))
+      (send (enc payload s))))
+  (defrole resp
+    (vars (a b name) (na payload text) (s skey))
+    (trace (recv na) (send (enc na s (ltk a b)))
+      (recv (enc payload s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton puzzle
+  (vars (s skey) (na payload text) (a b name))
+  (defstrand init 3 (s s) (na na) (payload payload) (a a) (b b))
+  (non-orig (ltk a b))
+  (uniq-orig na payload)
+  (traces
+    ((send na) (recv (enc na s (ltk a b))) (send (enc payload s))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (na (0 0)) (payload (0 2)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton puzzle
+  (vars (s skey) (na payload text) (a b name))
+  (defstrand init 3 (s s) (na na) (payload payload) (a a) (b b))
+  (defstrand resp 2 (s s) (na na) (a a) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (ltk a b))
+  (uniq-orig na payload)
+  (operation encryption-test (added-strand resp 2) (enc na s (ltk a b))
+    (0 1))
+  (traces ((send na) (recv (enc na s (ltk a b))) (send (enc payload s)))
+    ((recv na) (send (enc na s (ltk a b)))))
+  (label 1)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (na na) (payload payload) (s s))))
+  (origs (na (0 0)) (payload (0 2))))
+
+(comment "Nothing left to do")
+
+(defprotocol puzzle basic
+  (defrole init
+    (vars (a b name) (na payload text) (s skey))
+    (trace (send na) (recv (enc na s (ltk a b)))
+      (send (enc payload s))))
+  (defrole resp
+    (vars (a b name) (na payload text) (s skey))
+    (trace (recv na) (send (enc na s (ltk a b)))
+      (recv (enc payload s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton puzzle
+  (vars (s skey) (na payload text) (a b name))
+  (defstrand init 3 (s s) (na na) (payload payload) (a a) (b b))
+  (deflistener payload)
+  (non-orig (ltk a b))
+  (uniq-orig na payload)
+  (traces ((send na) (recv (enc na s (ltk a b))) (send (enc payload s)))
+    ((recv payload) (send payload)))
+  (label 2)
+  (unrealized (0 1) (1 0))
+  (preskeleton)
+  (origs (na (0 0)) (payload (0 2)))
+  (comment "Not a skeleton"))
+
+(defskeleton puzzle
+  (vars (s skey) (na payload text) (a b name))
+  (defstrand init 3 (s s) (na na) (payload payload) (a a) (b b))
+  (deflistener payload)
+  (precedes ((0 2) (1 0)))
+  (non-orig (ltk a b))
+  (uniq-orig na payload)
+  (traces ((send na) (recv (enc na s (ltk a b))) (send (enc payload s)))
+    ((recv payload) (send payload)))
+  (label 3)
+  (parent 2)
+  (unrealized (0 1))
+  (origs (na (0 0)) (payload (0 2)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton puzzle
+  (vars (s skey) (na payload text) (a b name))
+  (defstrand init 3 (s s) (na na) (payload payload) (a a) (b b))
+  (deflistener payload)
+  (defstrand resp 2 (s s) (na na) (a a) (b b))
+  (precedes ((0 0) (2 0)) ((0 2) (1 0)) ((2 1) (0 1)))
+  (non-orig (ltk a b))
+  (uniq-orig na payload)
+  (operation encryption-test (added-strand resp 2) (enc na s (ltk a b))
+    (0 1))
+  (traces ((send na) (recv (enc na s (ltk a b))) (send (enc payload s)))
+    ((recv payload) (send payload))
+    ((recv na) (send (enc na s (ltk a b)))))
+  (label 4)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0 1) ((a a) (b b) (na na) (payload payload) (s s))))
+  (origs (na (0 0)) (payload (0 2))))
+
+(comment "Nothing left to do")
+
+(defprotocol puzzle basic
+  (defrole init
+    (vars (a b name) (na payload text) (s skey))
+    (trace (send na) (recv (enc na s (ltk a b)))
+      (send (enc payload s))))
+  (defrole resp
+    (vars (a b name) (na payload text) (s skey))
+    (trace (recv na) (send (enc na s (ltk a b)))
+      (recv (enc payload s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton puzzle
+  (vars (s skey) (na payload text) (a b name))
+  (defstrand init 3 (s s) (na na) (payload payload) (a a) (b b))
+  (defstrand resp 2 (s s) (na na) (a a) (b b))
+  (deflistener s)
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (ltk a b))
+  (uniq-orig s na payload)
+  (traces ((send na) (recv (enc na s (ltk a b))) (send (enc payload s)))
+    ((recv na) (send (enc na s (ltk a b)))) ((recv s) (send s)))
+  (label 5)
+  (unrealized (2 0))
+  (preskeleton)
+  (origs (s (1 1)) (na (0 0)) (payload (0 2)))
+  (comment "Not a skeleton"))
+
+(defskeleton puzzle
+  (vars (s skey) (na payload text) (a b name))
+  (defstrand init 3 (s s) (na na) (payload payload) (a a) (b b))
+  (defstrand resp 2 (s s) (na na) (a a) (b b))
+  (deflistener s)
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)))
+  (non-orig (ltk a b))
+  (uniq-orig s na payload)
+  (traces ((send na) (recv (enc na s (ltk a b))) (send (enc payload s)))
+    ((recv na) (send (enc na s (ltk a b)))) ((recv s) (send s)))
+  (label 6)
+  (parent 5)
+  (unrealized (2 0))
+  (dead)
+  (origs (s (1 1)) (na (0 0)) (payload (0 2)))
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol puzzle basic
+  (defrole init
+    (vars (a b name) (na payload text) (s skey))
+    (trace (send na) (recv (enc na s (ltk a b)))
+      (send (enc payload s))))
+  (defrole resp
+    (vars (a b name) (na payload text) (s skey))
+    (trace (recv na) (send (enc na s (ltk a b)))
+      (recv (enc payload s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton puzzle
+  (vars (s skey) (na payload text) (a b name))
+  (defstrand init 3 (s s) (na na) (payload payload) (a a) (b b))
+  (defstrand resp 2 (s s) (na na) (a a) (b b))
+  (deflistener payload)
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (ltk a b))
+  (uniq-orig s na payload)
+  (traces ((send na) (recv (enc na s (ltk a b))) (send (enc payload s)))
+    ((recv na) (send (enc na s (ltk a b))))
+    ((recv payload) (send payload)))
+  (label 7)
+  (unrealized (2 0))
+  (preskeleton)
+  (origs (s (1 1)) (na (0 0)) (payload (0 2)))
+  (comment "Not a skeleton"))
+
+(defskeleton puzzle
+  (vars (s skey) (na payload text) (a b name))
+  (defstrand init 3 (s s) (na na) (payload payload) (a a) (b b))
+  (defstrand resp 2 (s s) (na na) (a a) (b b))
+  (deflistener payload)
+  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)))
+  (non-orig (ltk a b))
+  (uniq-orig s na payload)
+  (traces ((send na) (recv (enc na s (ltk a b))) (send (enc payload s)))
+    ((recv na) (send (enc na s (ltk a b))))
+    ((recv payload) (send payload)))
+  (label 8)
+  (parent 7)
+  (unrealized (2 0))
+  (origs (s (1 1)) (na (0 0)) (payload (0 2)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton puzzle
+  (vars (s skey) (na payload text) (a b name))
+  (defstrand init 3 (s s) (na na) (payload payload) (a a) (b b))
+  (defstrand resp 2 (s s) (na na) (a a) (b b))
+  (deflistener payload)
+  (deflistener s)
+  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((1 1) (3 0))
+    ((3 1) (2 0)))
+  (non-orig (ltk a b))
+  (uniq-orig s na payload)
+  (operation nonce-test (added-listener s) payload (2 0)
+    (enc payload s))
+  (traces ((send na) (recv (enc na s (ltk a b))) (send (enc payload s)))
+    ((recv na) (send (enc na s (ltk a b))))
+    ((recv payload) (send payload)) ((recv s) (send s)))
+  (label 9)
+  (parent 8)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol puzzle basic
+  (defrole init
+    (vars (a b name) (na payload text) (s skey))
+    (trace (send na) (recv (enc na s (ltk a b)))
+      (send (enc payload s))))
+  (defrole resp
+    (vars (a b name) (na payload text) (s skey))
+    (trace (recv na) (send (enc na s (ltk a b)))
+      (recv (enc payload s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton puzzle
+  (vars (s skey) (payload na text) (a b name))
+  (defstrand resp 3 (s s) (na na) (payload payload) (a a) (b b))
+  (non-orig (ltk a b))
+  (uniq-orig s)
+  (traces
+    ((recv na) (send (enc na s (ltk a b))) (recv (enc payload s))))
+  (label 10)
+  (unrealized (0 2))
+  (origs (s (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton puzzle
+  (vars (s skey) (payload na na-0 text) (a b a-0 b-0 name))
+  (defstrand resp 3 (s s) (na na) (payload payload) (a a) (b b))
+  (defstrand init 3 (s s) (na na-0) (payload payload) (a a-0) (b b-0))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (ltk a b))
+  (uniq-orig s)
+  (operation encryption-test (added-strand init 3) (enc payload s)
+    (0 2))
+  (traces ((recv na) (send (enc na s (ltk a b))) (recv (enc payload s)))
+    ((send na-0) (recv (enc na-0 s (ltk a-0 b-0)))
+      (send (enc payload s))))
+  (label 11)
+  (parent 10)
+  (unrealized (1 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton puzzle
+  (vars (s skey) (payload na text) (a b name))
+  (defstrand resp 3 (s s) (na na) (payload payload) (a a) (b b))
+  (deflistener s)
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (ltk a b))
+  (uniq-orig s)
+  (operation encryption-test (added-listener s) (enc payload s) (0 2))
+  (traces ((recv na) (send (enc na s (ltk a b))) (recv (enc payload s)))
+    ((recv s) (send s)))
+  (label 12)
+  (parent 10)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton puzzle
+  (vars (s skey) (payload na text) (a b name))
+  (defstrand resp 3 (s s) (na na) (payload payload) (a a) (b b))
+  (defstrand init 3 (s s) (na na) (payload payload) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (ltk a b))
+  (uniq-orig s)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (na-0 na)) s (1 1)
+    (enc na s (ltk a b)))
+  (traces ((recv na) (send (enc na s (ltk a b))) (recv (enc payload s)))
+    ((send na) (recv (enc na s (ltk a b))) (send (enc payload s))))
+  (label 13)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (payload payload) (s s) (na na))))
+  (origs (s (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol puzzle basic
+  (defrole init
+    (vars (a b name) (na payload text) (s skey))
+    (trace (send na) (recv (enc na s (ltk a b)))
+      (send (enc payload s))))
+  (defrole resp
+    (vars (a b name) (na payload text) (s skey))
+    (trace (recv na) (send (enc na s (ltk a b)))
+      (recv (enc payload s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton puzzle
+  (vars (s skey) (payload na text) (a b name))
+  (defstrand resp 3 (s s) (na na) (payload payload) (a a) (b b))
+  (deflistener s)
+  (non-orig (ltk a b))
+  (uniq-orig s)
+  (traces ((recv na) (send (enc na s (ltk a b))) (recv (enc payload s)))
+    ((recv s) (send s)))
+  (label 14)
+  (unrealized (0 2) (1 0))
+  (preskeleton)
+  (origs (s (0 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton puzzle
+  (vars (s skey) (payload na text) (a b name))
+  (defstrand resp 3 (s s) (na na) (payload payload) (a a) (b b))
+  (deflistener s)
+  (precedes ((0 1) (1 0)))
+  (non-orig (ltk a b))
+  (uniq-orig s)
+  (traces ((recv na) (send (enc na s (ltk a b))) (recv (enc payload s)))
+    ((recv s) (send s)))
+  (label 15)
+  (parent 14)
+  (unrealized (0 2) (1 0))
+  (dead)
+  (origs (s (0 1)))
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol puzzle basic
+  (defrole init
+    (vars (a b name) (na payload text) (s skey))
+    (trace (send na) (recv (enc na s (ltk a b)))
+      (send (enc payload s))))
+  (defrole resp
+    (vars (a b name) (na payload text) (s skey))
+    (trace (recv na) (send (enc na s (ltk a b)))
+      (recv (enc payload s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton puzzle
+  (vars (s skey) (payload na text) (a b name))
+  (defstrand resp 3 (s s) (na na) (payload payload) (a a) (b b))
+  (defstrand init 3 (s s) (na na) (payload payload) (a a) (b b))
+  (deflistener payload)
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (ltk a b))
+  (uniq-orig s payload)
+  (traces ((recv na) (send (enc na s (ltk a b))) (recv (enc payload s)))
+    ((send na) (recv (enc na s (ltk a b))) (send (enc payload s)))
+    ((recv payload) (send payload)))
+  (label 16)
+  (unrealized (2 0))
+  (preskeleton)
+  (origs (s (0 1)) (payload (1 2)))
+  (comment "Not a skeleton"))
+
+(defskeleton puzzle
+  (vars (s skey) (payload na text) (a b name))
+  (defstrand resp 3 (s s) (na na) (payload payload) (a a) (b b))
+  (defstrand init 3 (s s) (na na) (payload payload) (a a) (b b))
+  (deflistener payload)
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)) ((1 2) (2 0)))
+  (non-orig (ltk a b))
+  (uniq-orig s payload)
+  (traces ((recv na) (send (enc na s (ltk a b))) (recv (enc payload s)))
+    ((send na) (recv (enc na s (ltk a b))) (send (enc payload s)))
+    ((recv payload) (send payload)))
+  (label 17)
+  (parent 16)
+  (unrealized (2 0))
+  (origs (s (0 1)) (payload (1 2)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton puzzle
+  (vars (s skey) (payload na text) (a b name))
+  (defstrand resp 3 (s s) (na na) (payload payload) (a a) (b b))
+  (defstrand init 3 (s s) (na na) (payload payload) (a a) (b b))
+  (deflistener payload)
+  (deflistener s)
+  (precedes ((0 1) (1 1)) ((0 1) (3 0)) ((1 2) (0 2)) ((1 2) (2 0))
+    ((3 1) (2 0)))
+  (non-orig (ltk a b))
+  (uniq-orig s payload)
+  (operation nonce-test (added-listener s) payload (2 0)
+    (enc payload s))
+  (traces ((recv na) (send (enc na s (ltk a b))) (recv (enc payload s)))
+    ((send na) (recv (enc na s (ltk a b))) (send (enc payload s)))
+    ((recv payload) (send payload)) ((recv s) (send s)))
+  (label 18)
+  (parent 17)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/tst/reflect.tst b/tst/reflect.tst
--- a/tst/reflect.tst
+++ b/tst/reflect.tst
@@ -1,6 +1,6 @@
 (herald reflect)
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/reflect.scm")
 
 (defprotocol reflect basic
@@ -9,7 +9,13 @@
     (trace (send (enc b (invk a))) (recv (enc a (invk b)))))
   (defrole resp
     (vars (a b akey))
-    (trace (recv (enc b (invk a))) (send (enc a (invk b))))))
+    (trace (recv (enc b (invk a))) (send (enc a (invk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton reflect
   (vars (a b akey))
@@ -32,7 +38,7 @@
   (traces ((recv (enc b (invk a)))) ((send (enc b (invk a)))))
   (label 1)
   (parent 0)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b))))
   (origs))
@@ -66,7 +72,7 @@
     ((send (enc a (invk b)))))
   (label 3)
   (parent 2)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b))))
   (origs))
@@ -104,7 +110,7 @@
     ((send (enc b (invk a)))))
   (label 5)
   (parent 4)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton reflect
@@ -141,7 +147,7 @@
   (label 7)
   (parent 5)
   (seen 1)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 0 not yet seen"))
 
 (comment "Nothing left to do")
@@ -152,7 +158,13 @@
     (trace (send (enc b (invk a))) (recv (enc a (invk b)))))
   (defrole resp
     (vars (a b akey))
-    (trace (recv (enc b (invk a))) (send (enc a (invk b))))))
+    (trace (recv (enc b (invk a))) (send (enc a (invk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton reflect
   (vars (a b akey))
@@ -173,7 +185,7 @@
   (traces ((send (enc b (invk b))) (recv (enc b (invk b)))))
   (label 9)
   (parent 8)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a b) (b b))))
   (origs))
@@ -190,7 +202,7 @@
     ((send (enc a (invk b)))))
   (label 10)
   (parent 8)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b))))
   (origs))
@@ -222,7 +234,7 @@
     ((recv (enc b (invk a))) (send (enc a (invk b)))))
   (label 12)
   (parent 11)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b))))
   (origs))
@@ -241,7 +253,7 @@
     ((send (enc b (invk a)))))
   (label 13)
   (parent 11)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b))))
   (origs))
@@ -276,7 +288,7 @@
   (label 15)
   (parent 14)
   (seen 9)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 0 not yet seen"))
 
 (defskeleton reflect
@@ -295,7 +307,7 @@
     ((send (enc a (invk b)))))
   (label 16)
   (parent 14)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton reflect
@@ -332,7 +344,7 @@
   (label 18)
   (parent 16)
   (seen 10)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 0 not yet seen"))
 
 (comment "Nothing left to do")
@@ -343,7 +355,13 @@
     (trace (send (enc b (invk a))) (recv (enc a (invk b)))))
   (defrole resp
     (vars (a b akey))
-    (trace (recv (enc b (invk a))) (send (enc a (invk b))))))
+    (trace (recv (enc b (invk a))) (send (enc a (invk b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton reflect
   (vars (a b akey))
@@ -367,7 +385,7 @@
     ((send (enc (invk b) (invk a)))))
   (label 20)
   (parent 19)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b))))
   (origs))
@@ -401,7 +419,7 @@
     ((send (enc a (invk a-0)))))
   (label 22)
   (parent 21)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b (invk a-0)))))
   (origs))
@@ -439,7 +457,7 @@
     ((send (enc b (invk a)))))
   (label 24)
   (parent 23)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton reflect
@@ -476,7 +494,7 @@
   (label 26)
   (parent 24)
   (seen 20)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 0 not yet seen"))
 
 (comment "Nothing left to do")
diff --git a/tst/reflect_dh.scm b/tst/reflect_dh.scm
deleted file mode 100644
--- a/tst/reflect_dh.scm
+++ /dev/null
@@ -1,28 +0,0 @@
-(herald reflect
-	(algebra diffie-hellman))
-
-;; A simple protocol vulnerable to a reflection attack
-
-(defprotocol reflect diffie-hellman
-  (defrole init
-    (vars (a b akey))
-    (trace
-     (send (enc b (invk a)))
-     (recv (enc a (invk b)))))
-  (defrole resp
-    (vars (a b akey))
-    (trace
-     (recv (enc b (invk a)))
-     (send (enc a (invk b))))))
-
-;; Expect two shapes
-
-(defskeleton reflect
-  (vars (a b akey))
-  (defstrand resp 2 (a a) (b b))
-  (non-orig (invk a) (invk b)))
-
-(defskeleton reflect
-  (vars (a b akey))
-  (defstrand init 2 (a a) (b b))
-  (non-orig (invk a) (invk b)))
diff --git a/tst/reflect_dh.tst b/tst/reflect_dh.tst
deleted file mode 100644
--- a/tst/reflect_dh.tst
+++ /dev/null
@@ -1,339 +0,0 @@
-(herald reflect (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/reflect_dh.scm")
-
-(defprotocol reflect diffie-hellman
-  (defrole init
-    (vars (a b akey))
-    (trace (send (enc b (invk a))) (recv (enc a (invk b)))))
-  (defrole resp
-    (vars (a b akey))
-    (trace (recv (enc b (invk a))) (send (enc a (invk b))))))
-
-(defskeleton reflect
-  (vars (a b akey))
-  (defstrand resp 2 (a a) (b b))
-  (non-orig (invk a) (invk b))
-  (traces ((recv (enc b (invk a))) (send (enc a (invk b)))))
-  (label 0)
-  (unrealized (0 0))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton reflect
-  (vars (a b akey))
-  (defstrand resp 2 (a a) (b b))
-  (defstrand init 1 (a a) (b b))
-  (precedes ((1 0) (0 0)))
-  (non-orig (invk a) (invk b))
-  (operation encryption-test (added-strand init 1) (enc b (invk a))
-    (0 0))
-  (traces ((recv (enc b (invk a))) (send (enc a (invk b))))
-    ((send (enc b (invk a)))))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b))))
-  (origs))
-
-(defskeleton reflect
-  (vars (a b akey))
-  (defstrand resp 2 (a a) (b b))
-  (defstrand resp 2 (a b) (b a))
-  (precedes ((1 1) (0 0)))
-  (non-orig (invk a) (invk b))
-  (operation encryption-test (added-strand resp 2) (enc b (invk a))
-    (0 0))
-  (traces ((recv (enc b (invk a))) (send (enc a (invk b))))
-    ((recv (enc a (invk b))) (send (enc b (invk a)))))
-  (label 2)
-  (parent 0)
-  (unrealized (1 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton reflect
-  (vars (a b akey))
-  (defstrand resp 2 (a a) (b b))
-  (defstrand resp 2 (a b) (b a))
-  (defstrand init 1 (a b) (b a))
-  (precedes ((1 1) (0 0)) ((2 0) (1 0)))
-  (non-orig (invk a) (invk b))
-  (operation encryption-test (added-strand init 1) (enc a (invk b))
-    (1 0))
-  (traces ((recv (enc b (invk a))) (send (enc a (invk b))))
-    ((recv (enc a (invk b))) (send (enc b (invk a))))
-    ((send (enc a (invk b)))))
-  (label 3)
-  (parent 2)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b))))
-  (origs))
-
-(defskeleton reflect
-  (vars (a b akey))
-  (defstrand resp 2 (a a) (b b))
-  (defstrand resp 2 (a b) (b a))
-  (defstrand resp 2 (a a) (b b))
-  (precedes ((1 1) (0 0)) ((2 1) (1 0)))
-  (non-orig (invk a) (invk b))
-  (operation encryption-test (added-strand resp 2) (enc a (invk b))
-    (1 0))
-  (traces ((recv (enc b (invk a))) (send (enc a (invk b))))
-    ((recv (enc a (invk b))) (send (enc b (invk a))))
-    ((recv (enc b (invk a))) (send (enc a (invk b)))))
-  (label 4)
-  (parent 2)
-  (unrealized (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton reflect
-  (vars (a b akey))
-  (defstrand resp 2 (a a) (b b))
-  (defstrand resp 2 (a b) (b a))
-  (defstrand resp 2 (a a) (b b))
-  (defstrand init 1 (a a) (b b))
-  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 0) (2 0)))
-  (non-orig (invk a) (invk b))
-  (operation encryption-test (added-strand init 1) (enc b (invk a))
-    (2 0))
-  (traces ((recv (enc b (invk a))) (send (enc a (invk b))))
-    ((recv (enc a (invk b))) (send (enc b (invk a))))
-    ((recv (enc b (invk a))) (send (enc a (invk b))))
-    ((send (enc b (invk a)))))
-  (label 5)
-  (parent 4)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton reflect
-  (vars (a b akey))
-  (defstrand resp 2 (a a) (b b))
-  (defstrand resp 2 (a b) (b a))
-  (defstrand resp 2 (a a) (b b))
-  (defstrand resp 2 (a b) (b a))
-  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)))
-  (non-orig (invk a) (invk b))
-  (operation encryption-test (added-strand resp 2) (enc b (invk a))
-    (2 0))
-  (traces ((recv (enc b (invk a))) (send (enc a (invk b))))
-    ((recv (enc a (invk b))) (send (enc b (invk a))))
-    ((recv (enc b (invk a))) (send (enc a (invk b))))
-    ((recv (enc a (invk b))) (send (enc b (invk a)))))
-  (label 6)
-  (parent 4)
-  (seen 4)
-  (unrealized (3 0))
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton reflect
-  (vars (a b akey))
-  (defstrand resp 2 (a a) (b b))
-  (defstrand resp 2 (a a) (b b))
-  (defstrand init 1 (a a) (b b))
-  (precedes ((1 1) (0 0)) ((2 0) (1 0)))
-  (non-orig (invk a) (invk b))
-  (operation generalization deleted (1 0))
-  (traces ((recv (enc b (invk a))) (send (enc a (invk b))))
-    ((recv (enc b (invk a))) (send (enc a (invk b))))
-    ((send (enc b (invk a)))))
-  (label 7)
-  (parent 5)
-  (seen 1)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(comment "Nothing left to do")
-
-(defprotocol reflect diffie-hellman
-  (defrole init
-    (vars (a b akey))
-    (trace (send (enc b (invk a))) (recv (enc a (invk b)))))
-  (defrole resp
-    (vars (a b akey))
-    (trace (recv (enc b (invk a))) (send (enc a (invk b))))))
-
-(defskeleton reflect
-  (vars (a b akey))
-  (defstrand init 2 (a a) (b b))
-  (non-orig (invk a) (invk b))
-  (traces ((send (enc b (invk a))) (recv (enc a (invk b)))))
-  (label 8)
-  (unrealized (0 1))
-  (origs)
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton reflect
-  (vars (b akey))
-  (defstrand init 2 (a b) (b b))
-  (non-orig (invk b))
-  (operation encryption-test (displaced 1 0 init 1) (enc a (invk b))
-    (0 1))
-  (traces ((send (enc b (invk b))) (recv (enc b (invk b)))))
-  (label 9)
-  (parent 8)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a b) (b b))))
-  (origs))
-
-(defskeleton reflect
-  (vars (a b akey))
-  (defstrand init 2 (a a) (b b))
-  (defstrand init 1 (a b) (b a))
-  (precedes ((1 0) (0 1)))
-  (non-orig (invk a) (invk b))
-  (operation encryption-test (added-strand init 1) (enc a (invk b))
-    (0 1))
-  (traces ((send (enc b (invk a))) (recv (enc a (invk b))))
-    ((send (enc a (invk b)))))
-  (label 10)
-  (parent 8)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b))))
-  (origs))
-
-(defskeleton reflect
-  (vars (a b akey))
-  (defstrand init 2 (a a) (b b))
-  (defstrand resp 2 (a a) (b b))
-  (precedes ((1 1) (0 1)))
-  (non-orig (invk a) (invk b))
-  (operation encryption-test (added-strand resp 2) (enc a (invk b))
-    (0 1))
-  (traces ((send (enc b (invk a))) (recv (enc a (invk b))))
-    ((recv (enc b (invk a))) (send (enc a (invk b)))))
-  (label 11)
-  (parent 8)
-  (unrealized (1 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton reflect
-  (vars (a b akey))
-  (defstrand init 2 (a a) (b b))
-  (defstrand resp 2 (a a) (b b))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (invk a) (invk b))
-  (operation encryption-test (displaced 2 0 init 1) (enc b (invk a))
-    (1 0))
-  (traces ((send (enc b (invk a))) (recv (enc a (invk b))))
-    ((recv (enc b (invk a))) (send (enc a (invk b)))))
-  (label 12)
-  (parent 11)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b))))
-  (origs))
-
-(defskeleton reflect
-  (vars (a b akey))
-  (defstrand init 2 (a a) (b b))
-  (defstrand resp 2 (a a) (b b))
-  (defstrand init 1 (a a) (b b))
-  (precedes ((1 1) (0 1)) ((2 0) (1 0)))
-  (non-orig (invk a) (invk b))
-  (operation encryption-test (added-strand init 1) (enc b (invk a))
-    (1 0))
-  (traces ((send (enc b (invk a))) (recv (enc a (invk b))))
-    ((recv (enc b (invk a))) (send (enc a (invk b))))
-    ((send (enc b (invk a)))))
-  (label 13)
-  (parent 11)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b))))
-  (origs))
-
-(defskeleton reflect
-  (vars (a b akey))
-  (defstrand init 2 (a a) (b b))
-  (defstrand resp 2 (a a) (b b))
-  (defstrand resp 2 (a b) (b a))
-  (precedes ((1 1) (0 1)) ((2 1) (1 0)))
-  (non-orig (invk a) (invk b))
-  (operation encryption-test (added-strand resp 2) (enc b (invk a))
-    (1 0))
-  (traces ((send (enc b (invk a))) (recv (enc a (invk b))))
-    ((recv (enc b (invk a))) (send (enc a (invk b))))
-    ((recv (enc a (invk b))) (send (enc b (invk a)))))
-  (label 14)
-  (parent 11)
-  (unrealized (2 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton reflect
-  (vars (b akey))
-  (defstrand init 2 (a b) (b b))
-  (defstrand resp 2 (a b) (b b))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (invk b))
-  (operation encryption-test (displaced 3 0 init 1) (enc a (invk b))
-    (2 0))
-  (traces ((send (enc b (invk b))) (recv (enc b (invk b))))
-    ((recv (enc b (invk b))) (send (enc b (invk b)))))
-  (label 15)
-  (parent 14)
-  (seen 9)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton reflect
-  (vars (a b akey))
-  (defstrand init 2 (a a) (b b))
-  (defstrand resp 2 (a a) (b b))
-  (defstrand resp 2 (a b) (b a))
-  (defstrand init 1 (a b) (b a))
-  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 0) (2 0)))
-  (non-orig (invk a) (invk b))
-  (operation encryption-test (added-strand init 1) (enc a (invk b))
-    (2 0))
-  (traces ((send (enc b (invk a))) (recv (enc a (invk b))))
-    ((recv (enc b (invk a))) (send (enc a (invk b))))
-    ((recv (enc a (invk b))) (send (enc b (invk a))))
-    ((send (enc a (invk b)))))
-  (label 16)
-  (parent 14)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton reflect
-  (vars (a b akey))
-  (defstrand init 2 (a a) (b b))
-  (defstrand resp 2 (a a) (b b))
-  (defstrand resp 2 (a b) (b a))
-  (defstrand resp 2 (a a) (b b))
-  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))
-  (non-orig (invk a) (invk b))
-  (operation encryption-test (added-strand resp 2) (enc a (invk b))
-    (2 0))
-  (traces ((send (enc b (invk a))) (recv (enc a (invk b))))
-    ((recv (enc b (invk a))) (send (enc a (invk b))))
-    ((recv (enc a (invk b))) (send (enc b (invk a))))
-    ((recv (enc b (invk a))) (send (enc a (invk b)))))
-  (label 17)
-  (parent 14)
-  (seen 14)
-  (unrealized (3 0))
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton reflect
-  (vars (a b akey))
-  (defstrand init 2 (a a) (b b))
-  (defstrand resp 2 (a b) (b a))
-  (defstrand init 1 (a b) (b a))
-  (precedes ((1 1) (0 1)) ((2 0) (1 0)))
-  (non-orig (invk a) (invk b))
-  (operation generalization deleted (1 0))
-  (traces ((send (enc b (invk a))) (recv (enc a (invk b))))
-    ((recv (enc a (invk b))) (send (enc b (invk a))))
-    ((send (enc a (invk b)))))
-  (label 18)
-  (parent 16)
-  (seen 10)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(comment "Nothing left to do")
diff --git a/tst/renamings.scm b/tst/renamings.scm
new file mode 100644
--- /dev/null
+++ b/tst/renamings.scm
@@ -0,0 +1,30 @@
+(herald "Blanchet's Simple Example Protocol"
+	(comment "There is a flaw in this protocol by design")
+	(comment "It also shows how variable renaming works"))
+
+(defprotocol blanchet basic
+  (defrole init
+    (vars (a b name) (s skey) (d data))
+    (trace
+     (send (enc (enc s (privk a)) (pubk b)))
+     (recv (enc d s))))
+  (defrole resp
+    (vars (d a name) (b skey) (s data))
+    (trace
+     (recv (enc (enc b (privk d)) (pubk a)))
+     (send (enc s b))))
+  (comment "Blanchet's protocol using named asymmetric keys"))
+
+(defskeleton blanchet
+  (vars (s d name) (a skey) (b data))
+  (defstrand resp 2 (d s) (a d) (b a) (s b))
+  (non-orig (privk s) (privk d))
+  (uniq-orig a)
+  (comment "Analyze from the responder's perspective"))
+
+(defskeleton blanchet
+  (vars (s d name) (a skey) (b data))
+  (defstrand init 2 (a s) (b d) (s a) (d b))
+  (non-orig (privk d))
+  (uniq-orig a)
+  (comment "Analyze from the initiator's perspective"))
diff --git a/tst/renamings.tst b/tst/renamings.tst
new file mode 100644
--- /dev/null
+++ b/tst/renamings.tst
@@ -0,0 +1,131 @@
+(herald "Blanchet's Simple Example Protocol"
+  (comment "There is a flaw in this protocol by design")
+  (comment "It also shows how variable renaming works"))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/renamings.scm")
+
+(defprotocol blanchet basic
+  (defrole init
+    (vars (a b name) (s skey) (d data))
+    (trace (send (enc (enc s (privk a)) (pubk b))) (recv (enc d s))))
+  (defrole resp
+    (vars (d a name) (b skey) (s data))
+    (trace (recv (enc (enc b (privk d)) (pubk a))) (send (enc s b))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Blanchet's protocol using named asymmetric keys"))
+
+(defskeleton blanchet
+  (vars (b data) (a skey) (s d name))
+  (defstrand resp 2 (s b) (b a) (d s) (a d))
+  (non-orig (privk s) (privk d))
+  (uniq-orig a)
+  (comment "Analyze from the responder's perspective")
+  (traces ((recv (enc (enc a (privk s)) (pubk d))) (send (enc b a))))
+  (label 0)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton blanchet
+  (vars (b data) (a skey) (s d b-0 name))
+  (defstrand resp 2 (s b) (b a) (d s) (a d))
+  (defstrand init 1 (s a) (a s) (b b-0))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk s) (privk d))
+  (uniq-orig a)
+  (operation encryption-test (added-strand init 1) (enc a (privk s))
+    (0 0))
+  (traces ((recv (enc (enc a (privk s)) (pubk d))) (send (enc b a)))
+    ((send (enc (enc a (privk s)) (pubk b-0)))))
+  (label 1)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps ((0) ((s s) (d d) (a a) (b b))))
+  (origs (a (1 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol blanchet basic
+  (defrole init
+    (vars (a b name) (s skey) (d data))
+    (trace (send (enc (enc s (privk a)) (pubk b))) (recv (enc d s))))
+  (defrole resp
+    (vars (d a name) (b skey) (s data))
+    (trace (recv (enc (enc b (privk d)) (pubk a))) (send (enc s b))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Blanchet's protocol using named asymmetric keys"))
+
+(defskeleton blanchet
+  (vars (b data) (a skey) (s d name))
+  (defstrand init 2 (d b) (s a) (a s) (b d))
+  (non-orig (privk d))
+  (uniq-orig a)
+  (comment "Analyze from the initiator's perspective")
+  (traces ((send (enc (enc a (privk s)) (pubk d))) (recv (enc b a))))
+  (label 2)
+  (unrealized (0 1))
+  (origs (a (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton blanchet
+  (vars (b data) (a skey) (s d d-0 a-0 name))
+  (defstrand init 2 (d b) (s a) (a s) (b d))
+  (defstrand resp 2 (s b) (b a) (d d-0) (a a-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk d))
+  (uniq-orig a)
+  (operation encryption-test (added-strand resp 2) (enc b a) (0 1))
+  (traces ((send (enc (enc a (privk s)) (pubk d))) (recv (enc b a)))
+    ((recv (enc (enc a (privk d-0)) (pubk a-0))) (send (enc b a))))
+  (label 3)
+  (parent 2)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton blanchet
+  (vars (b data) (a skey) (s d name))
+  (defstrand init 2 (d b) (s a) (a s) (b d))
+  (deflistener a)
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk d))
+  (uniq-orig a)
+  (operation encryption-test (added-listener a) (enc b a) (0 1))
+  (traces ((send (enc (enc a (privk s)) (pubk d))) (recv (enc b a)))
+    ((recv a) (send a)))
+  (label 4)
+  (parent 2)
+  (unrealized (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton blanchet
+  (vars (b data) (a skey) (s d name))
+  (defstrand init 2 (d b) (s a) (a s) (b d))
+  (defstrand resp 2 (s b) (b a) (d s) (a d))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk d))
+  (uniq-orig a)
+  (operation nonce-test (contracted (d-0 s) (a-0 d)) a (1 0)
+    (enc (enc a (privk s)) (pubk d)))
+  (traces ((send (enc (enc a (privk s)) (pubk d))) (recv (enc b a)))
+    ((recv (enc (enc a (privk s)) (pubk d))) (send (enc b a))))
+  (label 5)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((s s) (d d) (a a) (b b))))
+  (origs (a (0 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/role_uniq.tst b/tst/role_uniq.tst
--- a/tst/role_uniq.tst
+++ b/tst/role_uniq.tst
@@ -1,6 +1,6 @@
 (herald "Role Unique Origination")
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/role_uniq.scm")
 
 (defprotocol blanchet basic
@@ -11,6 +11,12 @@
   (defrole resp
     (vars (a b akey) (s skey) (d data))
     (trace (recv (enc (enc s (invk a)) b)) (send (enc d s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Blanchet's protocol using unnamed asymmetric keys"))
 
 (defskeleton blanchet
@@ -69,7 +75,7 @@
     ((recv (enc (enc s (invk a)) b)) (send (enc d s))))
   (label 3)
   (parent 1)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (s s) (d d))))
   (origs (s (0 0))))
@@ -84,6 +90,12 @@
   (defrole resp
     (vars (a b akey) (s skey) (d data))
     (trace (recv (enc (enc s (invk a)) b)) (send (enc d s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Blanchet's protocol using unnamed asymmetric keys"))
 
 (defskeleton blanchet
@@ -110,7 +122,7 @@
     ((send (enc (enc s (invk a)) b-0))))
   (label 5)
   (parent 4)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (s s) (d d))))
   (origs (s (1 0))))
@@ -126,6 +138,12 @@
     (trace (recv (enc (enc s (invk a)) b)) (send (enc d s))))
   (defrule role-uniq
     (forall ((z strd) (s skey)) (implies (p "init" "s" z s) (uniq s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Blanchet's protocol using unnamed asymmetric keys"))
 
 (defskeleton blanchet
@@ -135,7 +153,7 @@
   (comment "Analyze from the initiator's perspective")
   (traces ((send (enc (enc s (invk a)) b)) (recv (enc d s))))
   (label 6)
-  (unrealized)
+  (realized)
   (origs)
   (comment "Not closed under rules"))
 
@@ -196,7 +214,7 @@
     ((recv (enc (enc s (invk a)) b)) (send (enc d s))))
   (label 10)
   (parent 8)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (s s) (d d))))
   (origs (s (0 0))))
@@ -212,6 +230,12 @@
     (trace (recv (enc (enc s (invk a)) b)) (send (enc d s))))
   (defrule role-uniq
     (forall ((z strd) (s skey)) (implies (p "init" "s" z s) (uniq s))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
   (comment "Blanchet's protocol using unnamed asymmetric keys"))
 
 (defskeleton blanchet
@@ -239,7 +263,7 @@
     ((send (enc (enc s (invk a)) b-0))))
   (label 12)
   (parent 11)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (s s) (d d))))
   (origs (s (1 0))))
diff --git a/tst/rule-node.scm b/tst/rule-node.scm
new file mode 100644
--- /dev/null
+++ b/tst/rule-node.scm
@@ -0,0 +1,88 @@
+(herald rule-node)
+
+(defprotocol rule-order basic
+  (defrole init
+    (vars (s t text))
+    (trace
+     (send (cat s t))
+     (recv (cat t s))))
+
+  (defrule le-lt
+    (forall ((z1 z2 strd)(i1 i2 indx))
+    	    (implies
+    	     (fact le z1 i1 z2 i2)
+    	     (or
+    	      (and (= z1 z2) (= i1 i2))
+    	      (fact lt z1 i1 z2 i2)))))
+
+  (defrule lt-le
+    (forall ((z1 z2 strd)(i1 i2 indx))
+    	    (implies
+    	     (fact lt z1 i1 z2 i2)
+    	     (fact le z1 i1 z2 i2))))
+
+  (defrule prec-lt
+    (forall ((z1 z2 strd)(i1 i2 indx))
+	    (implies
+	     (prec z1 i1 z2 i2)
+	     (or
+	      (fact lt z1 i1 z2 i2)))))
+
+  (defrule neq-false
+    (forall ((s mesg))
+	    (implies (fact neq s s)
+		     (false))))
+  )
+
+(defskeleton rule-order
+  (vars (s t s1 t1 text))
+  (defstrand init 2 (s s) (t t))
+  (defstrand init 2 (s t) (t s))
+  ;;  (defstrand init 2 (s s1) (t t1))
+  (precedes ((1 0) (0 1))
+	    ;; ((2 0) (0 1))
+	    )
+  (facts (neq s t)
+	 ;; (neq s s1)
+	 )
+  (facts (le 0 0 0 1))
+  )
+
+(defskeleton rule-order
+  (vars (s t text))
+  (defstrand init 2 (s s) (t t))
+  (defstrand init 2 (s t) (t s))
+  (precedes ((1 0) (0 1)))
+  (facts (le 1 0 0 1) (le 0 0 0 1)))
+
+(defprotocol rule-order-prec basic
+  (defrole init
+    (vars (s t text))
+    (trace
+     (send (cat s t))
+     (recv (cat t s))))
+
+  (defrule prec-tell-me
+    (forall ((z1 z2 strd) (i1 i2 indx))
+	    (implies
+	     (prec z1 i1 z2 i2)
+	     (fact tell-me z1 i1 z2 i2))))
+  )
+
+(defskeleton rule-order-prec
+  (vars (s t text))
+  (defstrand init 2 (s s) (t t)))
+
+(defskeleton rule-order-prec
+  (vars (s t text))
+  (defstrand init 2 (s s) (t t))
+  (defstrand init 2 (s t) (t s))
+  (precedes ((1 0) (0 1)))
+  )
+
+(defskeleton rule-order-prec
+  (vars (s t text))
+  (defstrand init 2 (s s) (t t))
+  (defstrand init 2 (s s) (t t))
+  (precedes ((1 0) (0 1)))
+  (neq (s t)))
diff --git a/tst/rule-node.tst b/tst/rule-node.tst
new file mode 100644
--- /dev/null
+++ b/tst/rule-node.tst
@@ -0,0 +1,248 @@
+(herald rule-node)
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/rule-node.scm")
+
+(defprotocol rule-order basic
+  (defrole init
+    (vars (s t text))
+    (trace (send (cat s t)) (recv (cat t s))))
+  (defrule le-lt
+    (forall ((z1 z2 strd) (i1 i2 indx))
+      (implies
+        (fact le z1 i1 z2 i2)
+        (or (and (= z1 z2) (= i1 i2)) (fact lt z1 i1 z2 i2)))))
+  (defrule lt-le
+    (forall ((z1 z2 strd) (i1 i2 indx))
+      (implies (fact lt z1 i1 z2 i2) (fact le z1 i1 z2 i2))))
+  (defrule prec-lt
+    (forall ((z1 z2 strd) (i1 i2 indx))
+      (implies (prec z1 i1 z2 i2) (fact lt z1 i1 z2 i2))))
+  (defrule neq-false
+    (forall ((s mesg)) (implies (fact neq s s) (false))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton rule-order
+  (vars (s t text))
+  (defstrand init 2 (s s) (t t))
+  (defstrand init 2 (s t) (t s))
+  (precedes ((1 0) (0 1)))
+  (facts (neq s t) (le 0 0 0 1))
+  (traces ((send (cat s t)) (recv (cat t s)))
+    ((send (cat t s)) (recv (cat s t))))
+  (label 0)
+  (realized)
+  (origs)
+  (comment "Not closed under rules"))
+
+(defskeleton rule-order
+  (vars (s t text))
+  (defstrand init 2 (s s) (t t))
+  (defstrand init 2 (s t) (t s))
+  (precedes ((1 0) (0 1)))
+  (facts (lt 0 0 0 1) (le 0 (idx 0) 0 (idx 1)) (le 1 (idx 0) 0 (idx 1))
+    (le 1 (idx 0) 1 (idx 1)) (lt 1 (idx 0) 1 (idx 1))
+    (lt 1 (idx 0) 0 (idx 1)) (lt 0 (idx 0) 0 (idx 1)) (neq s t)
+    (le 0 0 0 1))
+  (rule le-lt lt-le prec-lt)
+  (traces ((send (cat s t)) (recv (cat t s)))
+    ((send (cat t s)) (recv (cat s t))))
+  (label 1)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps ((0 1) ((s s) (t t))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol rule-order basic
+  (defrole init
+    (vars (s t text))
+    (trace (send (cat s t)) (recv (cat t s))))
+  (defrule le-lt
+    (forall ((z1 z2 strd) (i1 i2 indx))
+      (implies
+        (fact le z1 i1 z2 i2)
+        (or (and (= z1 z2) (= i1 i2)) (fact lt z1 i1 z2 i2)))))
+  (defrule lt-le
+    (forall ((z1 z2 strd) (i1 i2 indx))
+      (implies (fact lt z1 i1 z2 i2) (fact le z1 i1 z2 i2))))
+  (defrule prec-lt
+    (forall ((z1 z2 strd) (i1 i2 indx))
+      (implies (prec z1 i1 z2 i2) (fact lt z1 i1 z2 i2))))
+  (defrule neq-false
+    (forall ((s mesg)) (implies (fact neq s s) (false))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton rule-order
+  (vars (s t text))
+  (defstrand init 2 (s s) (t t))
+  (defstrand init 2 (s t) (t s))
+  (precedes ((1 0) (0 1)))
+  (facts (le 1 0 0 1) (le 0 0 0 1))
+  (traces ((send (cat s t)) (recv (cat t s)))
+    ((send (cat t s)) (recv (cat s t))))
+  (label 2)
+  (realized)
+  (origs)
+  (comment "Not closed under rules"))
+
+(defskeleton rule-order
+  (vars (s t text))
+  (defstrand init 2 (s s) (t t))
+  (defstrand init 2 (s t) (t s))
+  (precedes ((1 0) (0 1)))
+  (facts (lt 0 0 0 1) (lt 1 0 0 1) (le 0 (idx 0) 0 (idx 1))
+    (le 1 (idx 0) 0 (idx 1)) (le 1 (idx 0) 1 (idx 1))
+    (lt 1 (idx 0) 1 (idx 1)) (lt 1 (idx 0) 0 (idx 1))
+    (lt 0 (idx 0) 0 (idx 1)) (le 1 0 0 1) (le 0 0 0 1))
+  (rule le-lt lt-le prec-lt)
+  (traces ((send (cat s t)) (recv (cat t s)))
+    ((send (cat t s)) (recv (cat s t))))
+  (label 3)
+  (parent 2)
+  (realized)
+  (shape)
+  (maps ((0 1) ((s s) (t t))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol rule-order-prec basic
+  (defrole init
+    (vars (s t text))
+    (trace (send (cat s t)) (recv (cat t s))))
+  (defrule prec-tell-me
+    (forall ((z1 z2 strd) (i1 i2 indx))
+      (implies (prec z1 i1 z2 i2) (fact tell-me z1 i1 z2 i2))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton rule-order-prec
+  (vars (s t text))
+  (defstrand init 2 (s s) (t t))
+  (traces ((send (cat s t)) (recv (cat t s))))
+  (label 4)
+  (realized)
+  (origs)
+  (comment "Not closed under rules"))
+
+(defskeleton rule-order-prec
+  (vars (s t text))
+  (defstrand init 2 (s s) (t t))
+  (facts (tell-me 0 (idx 0) 0 (idx 1)))
+  (rule prec-tell-me)
+  (traces ((send (cat s t)) (recv (cat t s))))
+  (label 5)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((s s) (t t))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol rule-order-prec basic
+  (defrole init
+    (vars (s t text))
+    (trace (send (cat s t)) (recv (cat t s))))
+  (defrule prec-tell-me
+    (forall ((z1 z2 strd) (i1 i2 indx))
+      (implies (prec z1 i1 z2 i2) (fact tell-me z1 i1 z2 i2))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton rule-order-prec
+  (vars (s t text))
+  (defstrand init 2 (s s) (t t))
+  (defstrand init 2 (s t) (t s))
+  (precedes ((1 0) (0 1)))
+  (traces ((send (cat s t)) (recv (cat t s)))
+    ((send (cat t s)) (recv (cat s t))))
+  (label 6)
+  (realized)
+  (origs)
+  (comment "Not closed under rules"))
+
+(defskeleton rule-order-prec
+  (vars (s t text))
+  (defstrand init 2 (s s) (t t))
+  (defstrand init 2 (s t) (t s))
+  (precedes ((1 0) (0 1)))
+  (facts (tell-me 1 (idx 0) 1 (idx 1)) (tell-me 1 (idx 0) 0 (idx 1))
+    (tell-me 0 (idx 0) 0 (idx 1)))
+  (rule prec-tell-me)
+  (traces ((send (cat s t)) (recv (cat t s)))
+    ((send (cat t s)) (recv (cat s t))))
+  (label 7)
+  (parent 6)
+  (realized)
+  (shape)
+  (maps ((0 1) ((s s) (t t))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol rule-order-prec basic
+  (defrole init
+    (vars (s t text))
+    (trace (send (cat s t)) (recv (cat t s))))
+  (defrule prec-tell-me
+    (forall ((z1 z2 strd) (i1 i2 indx))
+      (implies (prec z1 i1 z2 i2) (fact tell-me z1 i1 z2 i2))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton rule-order-prec
+  (vars (s t text))
+  (defstrand init 2 (s s) (t t))
+  (defstrand init 2 (s s) (t t))
+  (precedes ((1 0) (0 1)))
+  (traces ((send (cat s t)) (recv (cat t s)))
+    ((send (cat s t)) (recv (cat t s))))
+  (label 8)
+  (realized)
+  (origs)
+  (comment "Not closed under rules"))
+
+(defskeleton rule-order-prec
+  (vars (s t text))
+  (defstrand init 2 (s s) (t t))
+  (defstrand init 2 (s s) (t t))
+  (precedes ((1 0) (0 1)))
+  (facts (tell-me 1 (idx 0) 1 (idx 1)) (tell-me 1 (idx 0) 0 (idx 1))
+    (tell-me 0 (idx 0) 0 (idx 1)))
+  (rule prec-tell-me)
+  (traces ((send (cat s t)) (recv (cat t s)))
+    ((send (cat s t)) (recv (cat t s))))
+  (label 9)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps ((0 1) ((s s) (t t))))
+  (origs))
+
+(comment "Nothing left to do")
diff --git a/tst/rule-order.tst b/tst/rule-order.tst
--- a/tst/rule-order.tst
+++ b/tst/rule-order.tst
@@ -1,13 +1,19 @@
 (herald rule-order)
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/rule-order.scm")
 
 (defprotocol rule-order basic
   (defrole init (vars (s t text)) (trace (send (cat s t))))
   (defrule ge
     (forall ((x y text))
-      (implies (fact le x y) (or (= x y) (fact lt x y))))))
+      (implies (fact le x y) (or (= x y) (fact lt x y)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton rule-order
   (vars (s t text))
@@ -15,7 +21,7 @@
   (facts (le s t))
   (traces ((send (cat s t))))
   (label 0)
-  (unrealized)
+  (realized)
   (origs)
   (comment "Not closed under rules"))
 
@@ -27,7 +33,7 @@
   (traces ((send (cat t t))))
   (label 1)
   (parent 0)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((s t) (t t))))
   (origs))
@@ -40,9 +46,9 @@
   (traces ((send (cat s t))))
   (label 2)
   (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((s s) (t t))))
-  (origs))
+  (seen 1)
+  (realized)
+  (origs)
+  (comment "1 in cohort - 0 not yet seen"))
 
 (comment "Nothing left to do")
diff --git a/tst/sigenc.scm b/tst/sigenc.scm
new file mode 100644
--- /dev/null
+++ b/tst/sigenc.scm
@@ -0,0 +1,44 @@
+(herald "Signed Encrypted Message Example"
+   (comment "Shows examples of key usage of asymmetric keys"))
+
+(defprotocol mult-keys-sig-enc basic
+   (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace
+     (send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+     (recv (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+     (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace
+     (recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+     (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+     (recv (enc (enc n2 (privk "sig" a)) (pubk "enc" b))))))
+
+;;; The initiator point-of-view
+(defskeleton mult-keys-sig-enc
+   (vars (a b name) (n1 text))
+   (defstrand init 3 (a a) (b b) (n1 n1))
+   (non-orig (privk "enc" a) (privk "sig" a) (privk "enc" b))
+   (uniq-orig n1))
+
+;;; The responder point-of-view trusting only a's signature key
+(defskeleton mult-keys-sig-enc
+  (vars (a b name) (n2 text))
+  (defstrand resp 3 (a a) (b b) (n2 n2))
+  (non-orig (privk "sig" a))
+  (uniq-orig n2))
+
+;;; The responder point-of-view trusting only a's encryption key
+(defskeleton mult-keys-sig-enc
+  (vars (a b name) (n2 text))
+  (defstrand resp 3 (a a) (b b) (n2 n2))
+  (non-orig (privk "enc" a))
+  (uniq-orig n2))
+
+;;; The responder point-of-view trusting both of a's keys
+(defskeleton mult-keys-sig-enc
+  (vars (a b name) (n2 text))
+  (defstrand resp 3 (a a) (b b) (n2 n2))
+  (non-orig (privk "sig" a) (privk "enc" a))
+  (uniq-orig n2))
diff --git a/tst/sigenc.tst b/tst/sigenc.tst
new file mode 100644
--- /dev/null
+++ b/tst/sigenc.tst
@@ -0,0 +1,465 @@
+(herald "Signed Encrypted Message Example"
+  (comment "Shows examples of key usage of asymmetric keys"))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/sigenc.scm")
+
+(defprotocol mult-keys-sig-enc basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (recv (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (recv (enc (enc n2 (privk "sig" a)) (pubk "enc" b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton mult-keys-sig-enc
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (non-orig (privk "enc" a) (privk "enc" b) (privk "sig" a))
+  (uniq-orig n1)
+  (traces
+    ((send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (recv (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b)))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton mult-keys-sig-enc
+  (vars (n1 n2 n2-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk "enc" a) (privk "enc" b) (privk "sig" a))
+  (uniq-orig n1)
+  (operation nonce-test (added-strand resp 2) n1 (0 1)
+    (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+  (traces
+    ((send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (recv (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b))))
+    ((recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2-0 (privk "sig" b)) (pubk "enc" a)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton mult-keys-sig-enc
+  (vars (n1 n2 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (defstrand resp 2 (n2 n2) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk "enc" a) (privk "enc" b) (privk "sig" a))
+  (uniq-orig n1)
+  (operation nonce-test (contracted (n2-0 n2)) n1 (0 1)
+    (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a))
+    (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+  (traces
+    ((send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (recv (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b))))
+    ((recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))))
+  (label 2)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n2))))
+  (origs (n1 (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol mult-keys-sig-enc basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (recv (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (recv (enc (enc n2 (privk "sig" a)) (pubk "enc" b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton mult-keys-sig-enc
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (non-orig (privk "sig" a))
+  (uniq-orig n2)
+  (traces
+    ((recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (recv (enc (enc n2 (privk "sig" a)) (pubk "enc" b)))))
+  (label 3)
+  (unrealized (0 0) (0 2))
+  (origs (n2 (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton mult-keys-sig-enc
+  (vars (n2 n1 text) (a b b-0 name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 1 (n1 n1) (a a) (b b-0))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "sig" a))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand init 1)
+    (enc n1 a (privk "sig" a)) (0 0))
+  (traces
+    ((recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (recv (enc (enc n2 (privk "sig" a)) (pubk "enc" b))))
+    ((send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b-0)))))
+  (label 4)
+  (parent 3)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton mult-keys-sig-enc
+  (vars (n2 n1 text) (a b b-0 name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig (privk "sig" a))
+  (uniq-orig n2)
+  (operation encryption-test (displaced 1 2 init 3)
+    (enc n2 (privk "sig" a)) (0 2))
+  (traces
+    ((recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (recv (enc (enc n2 (privk "sig" a)) (pubk "enc" b))))
+    ((send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b-0)))
+      (recv (enc (enc n1 n2 (privk "sig" b-0)) (pubk "enc" a)))
+      (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b-0)))))
+  (label 5)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 1))))
+
+(defskeleton mult-keys-sig-enc
+  (vars (n2 n1 n1-0 text) (a b b-0 b-1 name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 1 (n1 n1) (a a) (b b-0))
+  (defstrand init 3 (n1 n1-0) (n2 n2) (a a) (b b-1))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (privk "sig" a))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand init 3)
+    (enc n2 (privk "sig" a)) (0 2))
+  (traces
+    ((recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (recv (enc (enc n2 (privk "sig" a)) (pubk "enc" b))))
+    ((send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b-0))))
+    ((send (enc (enc n1-0 a (privk "sig" a)) (pubk "enc" b-1)))
+      (recv (enc (enc n1-0 n2 (privk "sig" b-1)) (pubk "enc" a)))
+      (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b-1)))))
+  (label 6)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol mult-keys-sig-enc basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (recv (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (recv (enc (enc n2 (privk "sig" a)) (pubk "enc" b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton mult-keys-sig-enc
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (non-orig (privk "enc" a))
+  (uniq-orig n2)
+  (traces
+    ((recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (recv (enc (enc n2 (privk "sig" a)) (pubk "enc" b)))))
+  (label 7)
+  (unrealized (0 2))
+  (origs (n2 (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton mult-keys-sig-enc
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
+  (non-orig (privk "enc" a))
+  (uniq-orig n2)
+  (operation nonce-test (added-strand init 3) n2 (0 2)
+    (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+  (traces
+    ((recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (recv (enc (enc n2 (privk "sig" a)) (pubk "enc" b))))
+    ((send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (recv (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b)))))
+  (label 8)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol mult-keys-sig-enc basic
+  (defrole init
+    (vars (a b name) (n1 n2 text))
+    (trace (send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (recv (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b)))))
+  (defrole resp
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (recv (enc (enc n2 (privk "sig" a)) (pubk "enc" b)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton mult-keys-sig-enc
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (non-orig (privk "enc" a) (privk "sig" a))
+  (uniq-orig n2)
+  (traces
+    ((recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (recv (enc (enc n2 (privk "sig" a)) (pubk "enc" b)))))
+  (label 9)
+  (unrealized (0 0) (0 2))
+  (origs (n2 (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton mult-keys-sig-enc
+  (vars (n2 n1 text) (a b b-0 name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 1 (n1 n1) (a a) (b b-0))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "enc" a) (privk "sig" a))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand init 1)
+    (enc n1 a (privk "sig" a)) (0 0))
+  (traces
+    ((recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (recv (enc (enc n2 (privk "sig" a)) (pubk "enc" b))))
+    ((send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b-0)))))
+  (label 10)
+  (parent 9)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton mult-keys-sig-enc
+  (vars (n2 n1 text) (a b b-0 name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig (privk "enc" a) (privk "sig" a))
+  (uniq-orig n2)
+  (operation encryption-test (displaced 1 2 init 3)
+    (enc n2 (privk "sig" a)) (0 2))
+  (traces
+    ((recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (recv (enc (enc n2 (privk "sig" a)) (pubk "enc" b))))
+    ((send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b-0)))
+      (recv (enc (enc n1 n2 (privk "sig" b-0)) (pubk "enc" a)))
+      (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b-0)))))
+  (label 11)
+  (parent 10)
+  (unrealized (1 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton mult-keys-sig-enc
+  (vars (n2 n1 n1-0 text) (a b b-0 b-1 name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 1 (n1 n1) (a a) (b b-0))
+  (defstrand init 3 (n1 n1-0) (n2 n2) (a a) (b b-1))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (privk "enc" a) (privk "sig" a))
+  (uniq-orig n2)
+  (operation encryption-test (added-strand init 3)
+    (enc n2 (privk "sig" a)) (0 2))
+  (traces
+    ((recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (recv (enc (enc n2 (privk "sig" a)) (pubk "enc" b))))
+    ((send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b-0))))
+    ((send (enc (enc n1-0 a (privk "sig" a)) (pubk "enc" b-1)))
+      (recv (enc (enc n1-0 n2 (privk "sig" b-1)) (pubk "enc" a)))
+      (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b-1)))))
+  (label 12)
+  (parent 10)
+  (unrealized (2 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton mult-keys-sig-enc
+  (vars (n2 n1 text) (a b name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig (privk "enc" a) (privk "sig" a))
+  (uniq-orig n2)
+  (operation nonce-test (contracted (b-0 b)) n2 (1 1)
+    (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+  (traces
+    ((recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (recv (enc (enc n2 (privk "sig" a)) (pubk "enc" b))))
+    ((send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (recv (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b)))))
+  (label 13)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 1))))
+
+(defskeleton mult-keys-sig-enc
+  (vars (n2 n1 text) (a b b-0 name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b-0))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 2) (1 1)))
+  (non-orig (privk "enc" a) (privk "sig" a))
+  (uniq-orig n2)
+  (operation nonce-test (added-strand init 3) n2 (1 1)
+    (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+  (traces
+    ((recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (recv (enc (enc n2 (privk "sig" a)) (pubk "enc" b))))
+    ((send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b-0)))
+      (recv (enc (enc n1 n2 (privk "sig" b-0)) (pubk "enc" a)))
+      (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b-0))))
+    ((send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (recv (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b)))))
+  (label 14)
+  (parent 11)
+  (seen 15)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton mult-keys-sig-enc
+  (vars (n2 n1 text) (a b b-0 name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 1 (n1 n1) (a a) (b b-0))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (2 1)) ((1 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (privk "enc" a) (privk "sig" a))
+  (uniq-orig n2)
+  (operation nonce-test (contracted (b-1 b) (n1-0 n1)) n2 (2 1)
+    (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+  (traces
+    ((recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (recv (enc (enc n2 (privk "sig" a)) (pubk "enc" b))))
+    ((send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b-0))))
+    ((send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (recv (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b)))))
+  (label 15)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n2 n2) (n1 n1))))
+  (origs (n2 (0 1))))
+
+(defskeleton mult-keys-sig-enc
+  (vars (n2 n1 n1-0 text) (a b b-0 name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 3 (n1 n1-0) (n2 n2) (a a) (b b-0))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (2 1)) ((1 2) (0 2)) ((2 0) (0 0)) ((2 2) (1 1)))
+  (non-orig (privk "enc" a) (privk "sig" a))
+  (uniq-orig n2)
+  (operation nonce-test (displaced 1 3 init 3) n2 (2 1)
+    (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+  (traces
+    ((recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (recv (enc (enc n2 (privk "sig" a)) (pubk "enc" b))))
+    ((send (enc (enc n1-0 a (privk "sig" a)) (pubk "enc" b-0)))
+      (recv (enc (enc n1-0 n2 (privk "sig" b-0)) (pubk "enc" a)))
+      (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b-0))))
+    ((send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (recv (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b)))))
+  (label 16)
+  (parent 12)
+  (seen 13)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton mult-keys-sig-enc
+  (vars (n2 n1 n1-0 text) (a b b-0 b-1 name))
+  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
+  (defstrand init 1 (n1 n1) (a a) (b b-0))
+  (defstrand init 3 (n1 n1-0) (n2 n2) (a a) (b b-1))
+  (defstrand init 3 (n1 n1) (n2 n2) (a a) (b b))
+  (precedes ((0 1) (3 1)) ((1 0) (0 0)) ((2 2) (0 2)) ((3 2) (2 1)))
+  (non-orig (privk "enc" a) (privk "sig" a))
+  (uniq-orig n2)
+  (operation nonce-test (added-strand init 3) n2 (2 1)
+    (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+  (traces
+    ((recv (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (send (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (recv (enc (enc n2 (privk "sig" a)) (pubk "enc" b))))
+    ((send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b-0))))
+    ((send (enc (enc n1-0 a (privk "sig" a)) (pubk "enc" b-1)))
+      (recv (enc (enc n1-0 n2 (privk "sig" b-1)) (pubk "enc" a)))
+      (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b-1))))
+    ((send (enc (enc n1 a (privk "sig" a)) (pubk "enc" b)))
+      (recv (enc (enc n1 n2 (privk "sig" b)) (pubk "enc" a)))
+      (send (enc (enc n2 (privk "sig" a)) (pubk "enc" b)))))
+  (label 17)
+  (parent 12)
+  (seen 15)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/tst/sorted_epmo_acctnum.scm b/tst/sorted_epmo_acctnum.scm
new file mode 100644
--- /dev/null
+++ b/tst/sorted_epmo_acctnum.scm
@@ -0,0 +1,90 @@
+(herald "Electronic Purchase with Money Order Protocol Variant"
+  (bound 12)
+  (comment "This version includes account numbers in exchanges"
+	   "This version uses sorts to avoid confusion"
+	   "between a nonce and other data"))
+
+(defprotocol sorted_epmo_acctnum basic
+  (defrole bank
+    (vars (b c m name) (acctnum price text) (hash name) (nc nm nb data))
+    (trace
+     (recv (enc c nc nm acctnum price (pubk b)))
+     (send (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+		(enc nc nb (pubk c))))
+     (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    (non-orig (privk hash))
+    (annotations b
+      (1
+        (forall ((pm name))
+          (implies
+            (and (authtransfer c acctnum b price pm nm)
+              (reqtransfer pm b price pm nm))
+            (dotransfer acctnum b price pm nm))))
+      (2
+        (and (says c (authtransfer c acctnum b price m nm))
+          (says m (reqtransfer m b price m nm))))))
+  (defrole customer
+    (vars (b c m hash name) (acctnum goods price text) (nc nm nb data))
+    (trace
+     (send (enc c nc goods (pubk m)))
+     (recv (enc nc nm m price (pubk c)))
+     (send (enc c nc nm acctnum price (pubk b)))
+     (recv (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+		(enc nc nb (pubk c))))
+     (send (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+		nb)))
+    (non-orig (privk b) (privk hash))
+    (uniq-orig nc)
+    (annotations c
+      (1
+        (says m
+          (implies
+            (exists ((acctnum2 text))
+              (dotransfer acctnum2 b price m nm)) (doship m goods c))))
+      (3
+        (says b
+          (forall ((pm name))
+            (implies
+              (and (authtransfer c acctnum b price m nm)
+                (reqtransfer pm b price pm nm))
+              (dotransfer acctnum b price pm nm)))))
+      (4 (authtransfer c acctnum b price m nm))))
+  (defrole merchant (vars (b c m hash name) (goods price text) (nc nm nb data))
+    (trace
+     (recv (enc c nc goods (pubk m)))
+     (send (enc nc nm m price (pubk c)))
+     (recv (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+		nb))
+     (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    (non-orig (privk hash))
+    (uniq-orig nm)
+    (annotations m
+      (1
+        (implies
+          (exists ((acctnum2 text)) (dotransfer acctnum2 b price m nm))
+          (doship m goods c)))
+      (2
+        (and
+          (says b
+            (forall ((pm name))
+              (exists ((acctnum2 text))
+                (implies
+                  (and (authtransfer c acctnum2 b price m nm)
+                    (reqtransfer pm b price pm nm))
+                  (dotransfer acctnum2 b price pm nm)))))
+          (says c
+            (exists ((acctnum2 text))
+              (authtransfer c acctnum2 b price m nm)))))
+      (3 (and (reqtransfer m b price m nm) (doship m goods c))))))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (b m c name) (nm nc nb data) (hash name))
+  (defstrand merchant 4 (b b) (m m) (c c) (nm nm) (nc nc) (nb nb) (hash hash))
+  (non-orig (privk b) (privk m) (privk c) (privk hash))
+  (uniq-orig nm nc nb))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (b m c name) (nm nb nc data) (hash name) (price acctnum text))
+  (defstrand bank 3 (b b) (m m) (c c) (nm nm) (nb nb) (nc nc) (hash hash))
+  (non-orig (privk b) (privk m) (privk c) (privk hash))
+  (uniq-orig nm nc nb))
diff --git a/tst/sorted_epmo_acctnum.tst b/tst/sorted_epmo_acctnum.tst
new file mode 100644
--- /dev/null
+++ b/tst/sorted_epmo_acctnum.tst
@@ -0,0 +1,14170 @@
+(herald "Electronic Purchase with Money Order Protocol Variant"
+  (bound 12)
+  (comment "This version includes account numbers in exchanges"
+    "This version uses sorts to avoid confusion"
+    "between a nonce and other data"))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/sorted_epmo_acctnum.scm")
+(comment "Strand count bounded at 12")
+
+(defprotocol sorted_epmo_acctnum basic
+  (defrole bank
+    (vars (b c m name) (acctnum price text) (hash name) (nc nm nb data))
+    (trace (recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    (non-orig (privk hash))
+    (annotations b
+      (1
+        (forall ((pm name))
+          (implies
+            (and (authtransfer c acctnum b price pm nm)
+              (reqtransfer pm b price pm nm))
+            (dotransfer acctnum b price pm nm))))
+      (2
+        (and (says c (authtransfer c acctnum b price m nm))
+          (says m (reqtransfer m b price m nm))))))
+  (defrole customer
+    (vars (b c m hash name) (acctnum goods price text) (nc nm nb data))
+    (trace (send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb)))
+    (non-orig (privk b) (privk hash))
+    (uniq-orig nc)
+    (annotations c
+      (1
+        (says m
+          (implies
+            (exists ((acctnum2 text))
+              (dotransfer acctnum2 b price m nm)) (doship m goods c))))
+      (3
+        (says b
+          (forall ((pm name))
+            (implies
+              (and (authtransfer c acctnum b price m nm)
+                (reqtransfer pm b price pm nm))
+              (dotransfer acctnum b price pm nm)))))
+      (4 (authtransfer c acctnum b price m nm))))
+  (defrole merchant
+    (vars (b c m hash name) (goods price text) (nc nm nb data))
+    (trace (recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    (non-orig (privk hash))
+    (uniq-orig nm)
+    (annotations m
+      (1
+        (implies
+          (exists ((acctnum2 text)) (dotransfer acctnum2 b price m nm))
+          (doship m goods c)))
+      (2
+        (and
+          (says b
+            (forall ((pm name))
+              (exists ((acctnum2 text))
+                (implies
+                  (and (authtransfer c acctnum2 b price m nm)
+                    (reqtransfer pm b price pm nm))
+                  (dotransfer acctnum2 b price pm nm)))))
+          (says c
+            (exists ((acctnum2 text))
+              (authtransfer c acctnum2 b price m nm)))))
+      (3 (and (reqtransfer m b price m nm) (doship m goods c)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nc nb data) (goods price text) (b m c hash name))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (non-orig (privk b) (privk m) (privk c) (privk hash))
+  (uniq-orig nm nc nb)
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m)))))
+  (label 0)
+  (unrealized (0 2))
+  (origs (nm (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nc nb data) (goods price acctnum text) (b m c hash name))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash))
+  (uniq-orig nm nc nb)
+  (operation encryption-test (added-strand bank 2)
+    (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b)) (0 2))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 2) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nc nb data) (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 name))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand customer 3 (nc nc) (nm nm) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0))
+  (uniq-orig nm nc nb)
+  (operation nonce-test (added-strand customer 3) nm (1 0)
+    (enc nc nm m price (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b-0)))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nc nb data) (goods price acctnum goods-0 text)
+    (m c hash b name))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand customer 3 (nc nc) (nm nm) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b))
+  (uniq-orig nm nc nb)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nm
+    (1 0) (enc nc nm m price (pubk c))
+    (enc c nc nm acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b)))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 0) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nc nb nb-0 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand customer 3 (nc nc) (nm nm) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (precedes ((0 1) (2 1)) ((0 1) (3 0)) ((1 1) (0 2)) ((2 0) (0 0))
+    ((2 2) (1 0)) ((3 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0))
+  (uniq-orig nm nc nb)
+  (operation nonce-test (added-strand bank 2) nm (1 0)
+    (enc nc nm m price (pubk c))
+    (enc c nc nm acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b-0))))
+    ((recv (enc c nc nm acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nm price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))))
+  (label 4)
+  (parent 2)
+  (unrealized (0 0) (0 2) (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nc nb data) (price acctnum goods text) (m c hash b name))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand customer 3 (nc nc) (nm nm) (acctnum acctnum) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b))
+  (uniq-orig nm nc nb)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b)))))
+  (label 5)
+  (parent 3)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nc nb nm-0 data) (goods price acctnum goods-0 price-0 text)
+    (m c hash b name))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand customer 3 (nc nc) (nm nm) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods-0)
+    (price price-0) (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (3 0)) ((2 2) (1 0))
+    ((3 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b))
+  (uniq-orig nm nc nb nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c)))))
+  (label 6)
+  (parent 3)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nc nb nb-0 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand customer 3 (nc nc) (nm nm) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (3 0))
+    ((3 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0))
+  (uniq-orig nm nc nb)
+  (operation nonce-test (displaced 4 2 customer 3) nm (3 0)
+    (enc nc nm m price (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b-0))))
+    ((recv (enc c nc nm acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nm price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))))
+  (label 7)
+  (parent 4)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nc nb data) (price acctnum goods text) (c hash b m name))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (precedes ((0 1) (2 1)) ((1 1) (2 3)) ((2 0) (0 0)) ((2 2) (1 0))
+    ((2 4) (0 2)))
+  (non-orig (privk c) (privk hash) (privk b) (privk m))
+  (uniq-orig nm nc nb)
+  (operation nonce-test (displaced 2 3 customer 5) nb (0 2)
+    (enc "hash" c nc nb nm price (pubk hash)) (enc nc nb (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))))
+  (label 8)
+  (parent 5)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((b b) (m m) (c c) (nm nm) (nc nc) (nb nb) (hash hash)
+        (goods goods) (price price))))
+  (origs (nc (2 0)) (nm (0 1)) (nb (1 1))))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nc nb nm-0 data) (price acctnum goods price-0 text)
+    (m c hash b name))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand customer 3 (nc nc) (nm nm) (acctnum acctnum) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (3 0)) ((2 2) (1 0))
+    ((3 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b))
+  (uniq-orig nm nc nb nm-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm-0 m price-0 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c)))))
+  (label 9)
+  (parent 6)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nc nb nb-0 data) (goods price acctnum goods-0 text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand customer 3 (nc nc) (nm nm) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (3 0))
+    ((3 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nm nc nb)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nm
+    (1 0) (enc "hash" c nc nb-0 nm price (pubk hash-0))
+    (enc nc nm m price (pubk c)) (enc c nc nm acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nm price (pubk hash-0)) (privk b))
+          (enc nc nb-0 (pubk c))))))
+  (label 10)
+  (parent 7)
+  (unrealized (0 0) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data) (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand customer 3 (nc nc) (nm nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (3 0))
+    ((3 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (displaced 4 3 bank 2) nm (1 0)
+    (enc "hash" c nc nb-0 nm price (pubk hash-0))
+    (enc nc nm m price (pubk c))
+    (enc c nc nm acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))))
+  (label 11)
+  (parent 7)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nc nb nb-0 nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand customer 3 (nc nc) (nm nm) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 0) (0 0))
+    ((2 2) (3 0)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nm nc nb)
+  (operation nonce-test (added-strand bank 2) nm (1 0)
+    (enc "hash" c nc nb-0 nm price (pubk hash-0))
+    (enc nc nm m price (pubk c))
+    (enc c nc nm acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b-0))))
+    ((recv (enc c nc nm acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nm price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nm acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nm price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 12)
+  (parent 7)
+  (seen 7)
+  (unrealized (0 0) (0 2) (1 0) (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nc nb nm-0 data) (price price-0 acctnum goods text)
+    (c hash b m name))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (precedes ((0 1) (3 1)) ((1 1) (3 3)) ((2 1) (0 0)) ((3 0) (2 0))
+    ((3 2) (1 0)) ((3 4) (0 2)))
+  (non-orig (privk c) (privk hash) (privk b) (privk m))
+  (uniq-orig nm nc nb nm-0)
+  (operation nonce-test (displaced 2 4 customer 5) nb (0 2)
+    (enc "hash" c nc nb nm price (pubk hash)) (enc nc nb (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))))
+  (label 13)
+  (parent 9)
+  (seen 8)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nc nb nb-0 data) (price acctnum goods text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand customer 3 (nc nc) (nm nm) (acctnum acctnum) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (3 0))
+    ((3 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nm nc nb)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nm price (pubk hash-0)) (privk b))
+          (enc nc nb-0 (pubk c))))))
+  (label 14)
+  (parent 10)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nc nb nb-0 nm-0 data)
+    (goods price acctnum goods-0 price-0 text) (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand customer 3 (nc nc) (nm nm) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods-0)
+    (price price-0) (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (4 0)) ((2 2) (3 0))
+    ((3 1) (1 0)) ((4 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nm nc nb nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nm price (pubk hash-0)) (privk b))
+          (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c)))))
+  (label 15)
+  (parent 10)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data) (goods price acctnum goods-0 text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand customer 3 (nc nc) (nm nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (3 0))
+    ((3 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nb-0
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))))
+  (label 16)
+  (parent 11)
+  (unrealized (0 0) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand customer 3 (nc nc) (nm nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (precedes ((0 1) (2 1)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 0) (0 0))
+    ((2 2) (3 0)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (added-strand bank 2) nb-0 (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 17)
+  (parent 11)
+  (unrealized (0 0) (0 2) (1 0) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data) (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 4) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (displaced 2 4 customer 5) nb-0 (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0))))
+  (label 18)
+  (parent 11)
+  (unrealized (0 0) (0 2) (1 0) (3 3))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nc nb nb-0 data) (price acctnum goods text)
+    (c hash hash-0 b m name))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (precedes ((0 1) (3 1)) ((1 1) (3 3)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 4) (0 2)))
+  (non-orig (privk c) (privk hash) (privk hash-0) (privk b) (privk m))
+  (uniq-orig nm nc nb)
+  (operation nonce-test (displaced 2 4 customer 5) nb (0 2)
+    (enc "hash" c nc nb nm price (pubk hash)) (enc nc nb (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nm price (pubk hash-0)) (privk b))
+          (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))))
+  (label 19)
+  (parent 14)
+  (seen 8)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nc nb nb-0 nm-0 data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand customer 3 (nc nc) (nm nm) (acctnum acctnum) (goods goods)
+    (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (4 0)) ((2 2) (3 0))
+    ((3 1) (1 0)) ((4 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nm nc nb nm-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm-0 m price-0 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nm price (pubk hash-0)) (privk b))
+          (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c)))))
+  (label 20)
+  (parent 15)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data) (price acctnum goods text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand customer 3 (nc nc) (nm nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (3 0))
+    ((3 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))))
+  (label 21)
+  (parent 16)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data) (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand customer 3 (nc nc) (nm nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (4 0)) ((2 2) (3 0))
+    ((3 1) (1 0)) ((4 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 22)
+  (parent 16)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand customer 3 (nc nc) (nm nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (0 0)) ((2 2) (3 0))
+    ((2 2) (4 0)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (displaced 5 2 customer 3) nb-0 (4 0)
+    (enc nc nb-0 m price (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 23)
+  (parent 17)
+  (seen 11)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data) (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (3 3)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 4) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0))
+  (uniq-orig nc nb nb-0)
+  (operation encryption-test (displaced 4 2 bank 2)
+    (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0)) (privk b-0))
+    (3 3))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0))))
+  (label 24)
+  (parent 18)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data)
+    (goods price acctnum acctnum-0 goods-0 acctnum-1 text)
+    (b m c hash b-0 hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-1)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (precedes ((0 1) (3 1)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 0) (0 0)) ((3 2) (2 0)) ((3 4) (1 0)) ((4 1) (3 3)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0))
+  (uniq-orig nc nb nb-0)
+  (operation encryption-test (added-strand bank 2)
+    (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0)) (privk b-0))
+    (3 3))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-1 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))))
+  (label 25)
+  (parent 18)
+  (unrealized (0 0) (0 2) (1 0) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nc nb nb-0 nm-0 data) (price price-0 acctnum goods text)
+    (c hash hash-0 b m name))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (precedes ((0 1) (4 1)) ((1 1) (4 3)) ((2 1) (1 0)) ((3 1) (0 0))
+    ((4 0) (3 0)) ((4 2) (2 0)) ((4 4) (0 2)))
+  (non-orig (privk c) (privk hash) (privk hash-0) (privk b) (privk m))
+  (uniq-orig nm nc nb nm-0)
+  (operation nonce-test (displaced 2 5 customer 5) nb (0 2)
+    (enc "hash" c nc nb nm price (pubk hash)) (enc nc nb (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nm price (pubk hash-0)) (privk b))
+          (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))))
+  (label 26)
+  (parent 20)
+  (seen 13)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data) (price acctnum goods text)
+    (c hash hash-0 b m name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (precedes ((0 1) (3 1)) ((1 1) (3 3)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 4) (0 2)))
+  (non-orig (privk c) (privk hash) (privk hash-0) (privk b) (privk m))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (displaced 2 4 customer 5) nb (0 2)
+    (enc "hash" c nc nb nb-0 price (pubk hash)) (enc nc nb (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))))
+  (label 27)
+  (parent 21)
+  (seen 8)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand customer 3 (nc nc) (nm nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (2 1)) ((1 1) (0 2)) ((2 0) (4 0)) ((2 2) (3 0))
+    ((3 1) (1 0)) ((4 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 28)
+  (parent 22)
+  (unrealized (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data) (goods price acctnum goods-0 text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (3 3)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 4) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc goods-0 (pubk m)) (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0))))
+  (label 29)
+  (parent 24)
+  (unrealized (0 0) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((0 1) (4 0)) ((1 1) (0 2)) ((2 1) (3 3))
+    ((3 0) (0 0)) ((3 2) (2 0)) ((3 4) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 30)
+  (parent 24)
+  (unrealized (0 0) (0 2) (1 0) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (3 3)) ((3 0) (0 0))
+    ((3 0) (4 0)) ((3 2) (2 0)) ((3 4) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 31)
+  (parent 24)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data)
+    (goods price acctnum acctnum-0 goods-0 acctnum-1 text)
+    (b m c hash b-0 hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-1)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0)) ((4 1) (3 3)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (displaced 5 3 customer 3) nb-0 (4 0)
+    (enc nc nb-0 m price (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-1 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))))
+  (label 32)
+  (parent 25)
+  (unrealized (0 0) (0 2) (1 0) (4 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data) (price price-0 acctnum goods text)
+    (c hash hash-0 b m name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (precedes ((0 1) (4 1)) ((1 1) (4 3)) ((2 1) (1 0)) ((3 1) (0 0))
+    ((4 0) (3 0)) ((4 2) (2 0)) ((4 4) (0 2)))
+  (non-orig (privk c) (privk hash) (privk hash-0) (privk b) (privk m))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (displaced 2 5 customer 5) nb (0 2)
+    (enc "hash" c nc nb nb-0 price (pubk hash)) (enc nc nb (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))))
+  (label 33)
+  (parent 28)
+  (seen 13)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data) (price acctnum goods text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (3 3)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 4) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0))))
+  (label 34)
+  (parent 29)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data) (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (3 3)) ((3 0) (4 0))
+    ((3 2) (2 0)) ((3 4) (1 0)) ((4 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 35)
+  (parent 29)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (3 3)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (displaced 5 3 customer 3) nb-0 (4 0)
+    (enc nc nb-0 m price (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 36)
+  (parent 30)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data) (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (3 3)) ((3 0) (0 0))
+    ((3 0) (4 0)) ((3 2) (2 0)) ((3 4) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 37)
+  (parent 31)
+  (seen 35)
+  (unrealized (0 0) (0 2))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((0 1) (5 0)) ((1 1) (0 2)) ((2 1) (3 3))
+    ((3 0) (0 0)) ((3 0) (4 0)) ((3 2) (2 0)) ((3 4) (1 0))
+    ((4 1) (1 0)) ((5 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 38)
+  (parent 31)
+  (seen 45)
+  (unrealized (0 0) (0 2) (1 0) (5 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data) (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0)) ((4 1) (3 3)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (acctnum-1 acctnum-0)) nb-0 (4 0)
+    (enc nc nb-0 m price (pubk c))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))))
+  (label 39)
+  (parent 32)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data)
+    (goods price acctnum acctnum-0 goods-0 acctnum-1 text)
+    (b m c hash b-0 hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-1)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 4) (1 0)) ((4 1) (3 3)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (displaced 5 2 bank 2) nb-0 (4 0)
+    (enc nc nb-0 m price (pubk c))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-1 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))))
+  (label 40)
+  (parent 32)
+  (seen 24)
+  (unrealized (0 0) (0 2) (1 0) (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 acctnum-1 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-1)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((0 1) (5 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 0) (0 0)) ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (added-strand bank 2) nb-0 (4 0)
+    (enc nc nb-0 m price (pubk c))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-1 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 41)
+  (parent 32)
+  (unrealized (0 0) (0 2) (1 0) (4 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (3 3)) ((3 0) (4 0))
+    ((3 2) (2 0)) ((3 4) (1 0)) ((4 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 42)
+  (parent 35)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data) (goods price acctnum goods-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (3 3)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c))))))
+  (label 43)
+  (parent 36)
+  (unrealized (0 0) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((0 1) (5 0)) ((1 1) (0 2)) ((2 1) (3 3))
+    ((3 0) (0 0)) ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0))
+    ((4 1) (1 0)) ((5 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-2 (pubk c))))))
+  (label 44)
+  (parent 36)
+  (seen 36)
+  (unrealized (0 0) (0 2) (1 0) (5 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (3 3)) ((3 0) (0 0))
+    ((3 0) (5 0)) ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0))
+    ((4 1) (1 0)) ((5 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 45)
+  (parent 36)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (3 3)) ((3 0) (0 0))
+    ((3 0) (4 0)) ((3 2) (2 0)) ((3 4) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 46)
+  (parent 37)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm nm-0 data)
+    (goods price acctnum goods-0 price-0 price-1 text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods-0)
+    (price price-1) (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (3 3)) ((3 0) (4 0))
+    ((3 0) (5 0)) ((3 2) (2 0)) ((3 4) (1 0)) ((4 1) (1 0))
+    ((5 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 47)
+  (parent 37)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data) (goods price acctnum goods-0 text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0)) ((4 1) (3 3)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc goods-0 (pubk m)) (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))))
+  (label 48)
+  (parent 39)
+  (unrealized (0 0) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((0 1) (5 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 0) (0 0)) ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 49)
+  (parent 39)
+  (unrealized (0 0) (0 2) (1 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 0) (5 0)) ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 50)
+  (parent 39)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 acctnum-1 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-1)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (displaced 6 3 customer 3) nb-0 (5 0)
+    (enc nc nb-0 m price (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-1 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 51)
+  (parent 41)
+  (unrealized (0 0) (0 2) (1 0) (4 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data) (price acctnum goods text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (3 3)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c))))))
+  (label 52)
+  (parent 43)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data)
+    (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (3 3)) ((3 0) (5 0))
+    ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0)) ((4 1) (1 0))
+    ((5 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 53)
+  (parent 43)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data)
+    (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (3 3)) ((3 0) (0 0))
+    ((3 0) (5 0)) ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0))
+    ((4 1) (1 0)) ((5 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc nc nm m price-0 (pubk c))
+    (enc c nc goods-0 (pubk m)) (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 54)
+  (parent 45)
+  (seen 53)
+  (unrealized (0 0) (0 2))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm nb-2 data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((0 1) (6 0)) ((1 1) (0 2)) ((2 1) (3 3))
+    ((3 0) (0 0)) ((3 0) (5 0)) ((3 2) (2 0)) ((3 2) (4 0))
+    ((3 4) (1 0)) ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc nc nm m price-0 (pubk c))
+    (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-2 (pubk c))))))
+  (label 55)
+  (parent 45)
+  (seen 45)
+  (unrealized (0 0) (0 2) (1 0) (6 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm nm-0 data)
+    (price acctnum goods price-0 price-1 text) (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-1)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (3 3)) ((3 0) (4 0))
+    ((3 0) (5 0)) ((3 2) (2 0)) ((3 4) (1 0)) ((4 1) (1 0))
+    ((5 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm-0 m price-1 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 56)
+  (parent 47)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data) (price acctnum goods text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0)) ((4 1) (3 3)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))))
+  (label 57)
+  (parent 48)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data) (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (5 0))
+    ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 58)
+  (parent 48)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (4 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (displaced 6 3 customer 3) nb-0 (5 0)
+    (enc nc nb-0 m price (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 59)
+  (parent 49)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data) (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 0) (5 0)) ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 60)
+  (parent 50)
+  (seen 58)
+  (unrealized (0 0) (0 2))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((0 1) (6 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 0) (0 0)) ((3 0) (5 0)) ((3 2) (2 0)) ((3 2) (4 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 61)
+  (parent 50)
+  (seen 72)
+  (unrealized (0 0) (0 2) (1 0) (6 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data)
+    (goods price acctnum acctnum-0 goods-0 acctnum-1 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-1)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (displaced 6 5 bank 2) nb-1 (4 0)
+    (enc "hash" c nc nb-0 nb-1 price (pubk hash-1))
+    (enc nc nb-1 m price (pubk c))
+    (enc c nc nb-1 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-1 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c))))))
+  (label 62)
+  (parent 51)
+  (unrealized (0 0) (0 2) (1 0) (4 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (acctnum-1 acctnum-0)) nb-0 (4 0)
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 m price (pubk c))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 63)
+  (parent 51)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 acctnum-1 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-1)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (displaced 6 2 bank 2) nb-0 (4 0)
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 m price (pubk c))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-1 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 64)
+  (parent 51)
+  (unrealized (0 0) (0 2) (1 0) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 data)
+    (goods price acctnum acctnum-0 goods-0 acctnum-1 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-1)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((0 1) (6 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 0) (0 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (4 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (added-strand bank 2) nb-0 (4 0)
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 m price (pubk c))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-1 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-2 (pubk c))))))
+  (label 65)
+  (parent 51)
+  (seen 51)
+  (unrealized (0 0) (0 2) (1 0) (4 0) (6 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (3 3)) ((3 0) (5 0))
+    ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0)) ((4 1) (1 0))
+    ((5 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 66)
+  (parent 53)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (3 3)) ((3 0) (0 0))
+    ((3 0) (5 0)) ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0))
+    ((4 1) (1 0)) ((5 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 67)
+  (parent 54)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm nm-0 data)
+    (goods price acctnum goods-0 price-0 price-1 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods-0)
+    (price price-1) (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (3 3)) ((3 0) (5 0))
+    ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 68)
+  (parent 54)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (5 0))
+    ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 69)
+  (parent 58)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data) (goods price acctnum goods-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (4 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c))))))
+  (label 70)
+  (parent 59)
+  (unrealized (0 0) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((0 1) (6 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 0) (0 0)) ((3 2) (2 0)) ((3 2) (4 0)) ((3 2) (5 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-2 (pubk c))))))
+  (label 71)
+  (parent 59)
+  (seen 59)
+  (unrealized (0 0) (0 2) (1 0) (6 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (4 0)) ((3 2) (5 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 72)
+  (parent 59)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 0) (5 0)) ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 73)
+  (parent 60)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm nm-0 data)
+    (goods price acctnum goods-0 price-0 price-1 text)
+    (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods-0)
+    (price price-1) (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (5 0))
+    ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (1 0)) ((6 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 74)
+  (parent 60)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data) (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (acctnum-1 acctnum-0)) nb-0 (4 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c))))))
+  (label 75)
+  (parent 62)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data)
+    (goods price acctnum acctnum-0 goods-0 acctnum-1 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-1)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (displaced 6 2 bank 2) nb-0 (4 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-1 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c))))))
+  (label 76)
+  (parent 62)
+  (unrealized (0 0) (0 2) (1 0) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 acctnum-1 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-1)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((0 1) (6 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 0) (0 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (4 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (added-strand bank 2) nb-0 (4 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-1 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 77)
+  (parent 62)
+  (unrealized (0 0) (0 2) (1 0) (4 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data) (goods price acctnum goods-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c))))))
+  (label 78)
+  (parent 63)
+  (unrealized (0 0) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((0 1) (6 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 0) (0 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-2 (pubk c))))))
+  (label 79)
+  (parent 63)
+  (unrealized (0 0) (0 2) (1 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 80)
+  (parent 63)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (acctnum-1 acctnum-0)) nb-0 (4 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 81)
+  (parent 64)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 data)
+    (goods price acctnum acctnum-0 goods-0 acctnum-1 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-1)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((0 1) (6 0)) ((1 1) (0 2)) ((2 1) (4 0))
+    ((3 0) (0 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (4 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (added-strand bank 2) nb-0 (4 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-1 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-2 (pubk c))))))
+  (label 82)
+  (parent 64)
+  (seen 64)
+  (unrealized (0 0) (0 2) (1 0) (4 0) (6 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm nm-0 data)
+    (price acctnum goods price-0 price-1 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-1)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (3 3)) ((3 0) (5 0))
+    ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm-0 m price-1 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 83)
+  (parent 68)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data) (price acctnum goods text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (4 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c))))))
+  (label 84)
+  (parent 70)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data)
+    (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (6 0))
+    ((3 2) (2 0)) ((3 2) (4 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (1 0)) ((6 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 85)
+  (parent 70)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data)
+    (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (4 0)) ((3 2) (5 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc nc nm m price-0 (pubk c))
+    (enc c nc goods-0 (pubk m)) (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 86)
+  (parent 72)
+  (seen 85)
+  (unrealized (0 0) (0 2))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm nb-2 data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((0 1) (7 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (4 0))
+    ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (1 0))
+    ((6 1) (1 0)) ((7 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc nc nm m price-0 (pubk c))
+    (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-2 (pubk c))))))
+  (label 87)
+  (parent 72)
+  (seen 72)
+  (unrealized (0 0) (0 2) (1 0) (7 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm nm-0 data)
+    (price acctnum goods price-0 price-1 text) (m c hash b hash-0 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-1)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (5 0))
+    ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (4 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (1 0)) ((6 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm-0 m price-1 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 88)
+  (parent 74)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data) (goods price acctnum goods-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc goods-0 (pubk m)) (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c))))))
+  (label 89)
+  (parent 75)
+  (unrealized (0 0) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((0 1) (6 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 0) (0 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 90)
+  (parent 75)
+  (unrealized (0 0) (0 2) (1 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 91)
+  (parent 75)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data) (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (acctnum-1 acctnum-0)) nb-0 (4 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c))))))
+  (label 92)
+  (parent 76)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 acctnum-1 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-1)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((0 1) (6 0)) ((1 1) (0 2)) ((2 1) (4 0))
+    ((3 0) (0 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (4 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (added-strand bank 2) nb-0 (4 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-1 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 93)
+  (parent 76)
+  (unrealized (0 0) (0 2) (1 0) (4 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 acctnum-1 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-1)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (4 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (displaced 7 3 customer 3) nb-0 (6 0)
+    (enc nc nb-0 m price (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-1 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 94)
+  (parent 77)
+  (seen 62)
+  (unrealized (0 0) (0 2) (1 0) (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data) (price acctnum goods text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c))))))
+  (label 95)
+  (parent 78)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data)
+    (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (6 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)) ((6 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 96)
+  (parent 78)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (displaced 7 3 customer 3) nb-0 (6 0)
+    (enc nc nb-0 m price (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-2 (pubk c))))))
+  (label 97)
+  (parent 79)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data)
+    (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc nc nm m price-0 (pubk c))
+    (enc c nc goods-0 (pubk m)) (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 98)
+  (parent 80)
+  (seen 96)
+  (unrealized (0 0) (0 2))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm nb-2 data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((0 1) (7 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (5 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc nc nm m price-0 (pubk c))
+    (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-2 (pubk c))))))
+  (label 99)
+  (parent 80)
+  (seen 118)
+  (unrealized (0 0) (0 2) (1 0) (7 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data) (goods price acctnum goods-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c))))))
+  (label 100)
+  (parent 81)
+  (unrealized (0 0) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((0 1) (6 0)) ((1 1) (0 2)) ((2 1) (4 0))
+    ((3 0) (0 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-2 (pubk c))))))
+  (label 101)
+  (parent 81)
+  (unrealized (0 0) (0 2) (1 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 102)
+  (parent 81)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (6 0))
+    ((3 2) (2 0)) ((3 2) (4 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (1 0)) ((6 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 103)
+  (parent 85)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (4 0)) ((3 2) (5 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 104)
+  (parent 86)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm nm-0 data)
+    (goods price acctnum goods-0 price-0 price-1 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods-0)
+    (price price-1) (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (6 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (4 0)) ((3 2) (5 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (1 0)) ((6 1) (1 0))
+    ((7 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 105)
+  (parent 86)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data) (price acctnum goods text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c))))))
+  (label 106)
+  (parent 89)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data) (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (6 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)) ((6 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 107)
+  (parent 89)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (displaced 7 3 customer 3) nb-0 (6 0)
+    (enc nc nb-0 m price (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 108)
+  (parent 90)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data) (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 109)
+  (parent 91)
+  (seen 107)
+  (unrealized (0 0) (0 2))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((0 1) (7 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (5 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 110)
+  (parent 91)
+  (seen 130)
+  (unrealized (0 0) (0 2) (1 0) (7 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data) (goods price acctnum goods-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc goods-0 (pubk m)) (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c))))))
+  (label 111)
+  (parent 92)
+  (unrealized (0 0) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((0 1) (6 0)) ((1 1) (0 2)) ((2 1) (4 0))
+    ((3 0) (0 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 112)
+  (parent 92)
+  (unrealized (0 0) (0 2) (1 0) (6 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 113)
+  (parent 92)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 acctnum-1 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-1)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (4 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (displaced 7 3 customer 3) nb-0 (6 0)
+    (enc nc nb-0 m price (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-1 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 114)
+  (parent 93)
+  (seen 76)
+  (unrealized (0 0) (0 2) (1 0) (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (6 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)) ((6 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 115)
+  (parent 96)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 data) (goods price acctnum goods-0 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c)) (enc nc nb-2 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-2 (pubk c))))))
+  (label 116)
+  (parent 97)
+  (unrealized (0 0) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 nb-3 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 hash-3 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-3) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-3))
+  (precedes ((0 1) (3 1)) ((0 1) (7 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 0) (0 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2) (privk hash-3))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c)) (enc nc nb-2 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-2 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-3 nb-0 price (pubk hash-3))
+            (privk b-0)) (enc nc nb-3 (pubk c))))))
+  (label 117)
+  (parent 97)
+  (seen 97)
+  (unrealized (0 0) (0 2) (1 0) (7 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 nm data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c)) (enc nc nb-2 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-2 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 118)
+  (parent 97)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 119)
+  (parent 98)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm nm-0 data)
+    (goods price acctnum goods-0 price-0 price-1 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods-0)
+    (price price-1) (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (6 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)) ((7 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 120)
+  (parent 98)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data) (price acctnum goods text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c))))))
+  (label 121)
+  (parent 100)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data)
+    (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (6 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)) ((6 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 122)
+  (parent 100)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (displaced 7 3 customer 3) nb-0 (6 0)
+    (enc nc nb-0 m price (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-2 (pubk c))))))
+  (label 123)
+  (parent 101)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data)
+    (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc nc nm m price-0 (pubk c))
+    (enc c nc goods-0 (pubk m)) (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 124)
+  (parent 102)
+  (seen 122)
+  (unrealized (0 0) (0 2))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm nb-2 data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((0 1) (7 0)) ((1 1) (0 2)) ((2 1) (4 0))
+    ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (5 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc nc nm m price-0 (pubk c))
+    (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-2 (pubk c))))))
+  (label 125)
+  (parent 102)
+  (seen 146)
+  (unrealized (0 0) (0 2) (1 0) (7 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm nm-0 data)
+    (price acctnum goods price-0 price-1 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-1)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (6 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (4 0)) ((3 2) (5 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (1 0)) ((6 1) (1 0))
+    ((7 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm-0 m price-1 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 126)
+  (parent 105)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (6 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)) ((6 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 127)
+  (parent 107)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data) (goods price acctnum goods-0 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-1 (pubk c))))))
+  (label 128)
+  (parent 108)
+  (unrealized (0 0) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 hash-3 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-3))
+  (precedes ((0 1) (3 1)) ((0 1) (7 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 0) (0 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2) (privk hash-3))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-3))
+            (privk b-0)) (enc nc nb-2 (pubk c))))))
+  (label 129)
+  (parent 108)
+  (seen 108)
+  (unrealized (0 0) (0 2) (1 0) (7 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 130)
+  (parent 108)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 131)
+  (parent 109)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm nm-0 data)
+    (goods price acctnum goods-0 price-0 price-1 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods-0)
+    (price price-1) (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (6 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)) ((7 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 132)
+  (parent 109)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 data) (price acctnum goods text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c))))))
+  (label 133)
+  (parent 111)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data) (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (6 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)) ((6 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 134)
+  (parent 111)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (displaced 7 3 customer 3) nb-0 (6 0)
+    (enc nc nb-0 m price (pubk c)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 135)
+  (parent 112)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data) (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 136)
+  (parent 113)
+  (seen 134)
+  (unrealized (0 0) (0 2))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm nb-1 data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((0 1) (7 0)) ((1 1) (0 2)) ((2 1) (4 0))
+    ((3 0) (0 0)) ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (5 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-1 (pubk c))))))
+  (label 137)
+  (parent 113)
+  (seen 157)
+  (unrealized (0 0) (0 2) (1 0) (7 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 data) (price acctnum goods text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-2 (pubk c))))))
+  (label 138)
+  (parent 116)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 nm data)
+    (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (7 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)) ((7 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-2 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 139)
+  (parent 116)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 nm data)
+    (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c)) (enc nc nb-2 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc nc nm m price-0 (pubk c))
+    (enc c nc goods-0 (pubk m)) (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-2 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 140)
+  (parent 118)
+  (seen 139)
+  (unrealized (0 0) (0 2))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 nm nb-3 data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 hash-3 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-3) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-3))
+  (precedes ((0 1) (3 1)) ((0 1) (8 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0))
+    ((3 2) (6 0)) ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0))
+    ((6 1) (1 0)) ((7 1) (1 0)) ((8 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2) (privk hash-3))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c)) (enc nc nb-2 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc nc nm m price-0 (pubk c))
+    (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-2 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-3 nb-0 price (pubk hash-3))
+            (privk b-0)) (enc nc nb-3 (pubk c))))))
+  (label 141)
+  (parent 118)
+  (seen 118)
+  (unrealized (0 0) (0 2) (1 0) (8 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm nm-0 data)
+    (price acctnum goods price-0 price-1 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-1)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (6 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)) ((7 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm-0 m price-1 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 142)
+  (parent 120)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (6 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)) ((6 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 143)
+  (parent 122)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 data) (goods price acctnum goods-0 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c)) (enc nc nb-2 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-2 (pubk c))))))
+  (label 144)
+  (parent 123)
+  (unrealized (0 0) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 nb-3 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 hash-3 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-3) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-3))
+  (precedes ((0 1) (3 1)) ((0 1) (7 0)) ((1 1) (0 2)) ((2 1) (4 0))
+    ((3 0) (0 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2) (privk hash-3))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c)) (enc nc nb-2 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-2 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-3 nb-0 price (pubk hash-3))
+            (privk b-0)) (enc nc nb-3 (pubk c))))))
+  (label 145)
+  (parent 123)
+  (seen 123)
+  (unrealized (0 0) (0 2) (1 0) (7 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 nm data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c)) (enc nc nb-2 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-2 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 146)
+  (parent 123)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 147)
+  (parent 124)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm nm-0 data)
+    (goods price acctnum goods-0 price-0 price-1 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods-0)
+    (price price-1) (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (6 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)) ((7 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 148)
+  (parent 124)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data) (price acctnum goods text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-1 (pubk c))))))
+  (label 149)
+  (parent 128)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data)
+    (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (7 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)) ((7 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 150)
+  (parent 128)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data)
+    (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc nc nm m price-0 (pubk c))
+    (enc c nc goods-0 (pubk m)) (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 151)
+  (parent 130)
+  (seen 150)
+  (unrealized (0 0) (0 2))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm nb-2 data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 hash-3 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-3))
+  (precedes ((0 1) (3 1)) ((0 1) (8 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0))
+    ((3 2) (6 0)) ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0))
+    ((6 1) (1 0)) ((7 1) (1 0)) ((8 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2) (privk hash-3))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc nc nm m price-0 (pubk c))
+    (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-3))
+            (privk b-0)) (enc nc nb-2 (pubk c))))))
+  (label 152)
+  (parent 130)
+  (seen 130)
+  (unrealized (0 0) (0 2) (1 0) (8 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm nm-0 data)
+    (price acctnum goods price-0 price-1 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-1)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (6 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)) ((7 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm-0 m price-1 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 153)
+  (parent 132)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (6 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0)) ((4 1) (3 3))
+    ((5 1) (4 0)) ((6 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 154)
+  (parent 134)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data) (goods price acctnum goods-0 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-1 (pubk c))))))
+  (label 155)
+  (parent 135)
+  (unrealized (0 0) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 data)
+    (goods price acctnum acctnum-0 goods-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 hash-3 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-3))
+  (precedes ((0 1) (3 1)) ((0 1) (7 0)) ((1 1) (0 2)) ((2 1) (4 0))
+    ((3 0) (0 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2) (privk hash-3))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-3))
+            (privk b-0)) (enc nc nb-2 (pubk c))))))
+  (label 156)
+  (parent 135)
+  (seen 135)
+  (unrealized (0 0) (0 2) (1 0) (7 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 157)
+  (parent 135)
+  (unrealized (0 0) (0 2) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 0) (6 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 158)
+  (parent 136)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm nm-0 data)
+    (goods price acctnum goods-0 price-0 price-1 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods-0)
+    (price price-1) (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (6 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)) ((7 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 159)
+  (parent 136)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 nm data)
+    (price acctnum goods price-0 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (7 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)) ((7 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-2 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 160)
+  (parent 139)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 nm data)
+    (price acctnum goods price-0 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-2 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 161)
+  (parent 140)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 nm nm-0 data)
+    (goods price acctnum goods-0 price-0 price-1 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods-0)
+    (price price-1) (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (7 0))
+    ((3 0) (8 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)) ((8 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-2 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 162)
+  (parent 140)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 data) (price acctnum goods text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-2 (pubk c))))))
+  (label 163)
+  (parent 144)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 nm data)
+    (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (7 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)) ((7 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-2 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 164)
+  (parent 144)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 nm data)
+    (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c)) (enc nc nb-2 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc nc nm m price-0 (pubk c))
+    (enc c nc goods-0 (pubk m)) (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-2 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 165)
+  (parent 146)
+  (seen 164)
+  (unrealized (0 0) (0 2))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 nm nb-3 data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 hash-3 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-3) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-3))
+  (precedes ((0 1) (3 1)) ((0 1) (8 0)) ((1 1) (0 2)) ((2 1) (4 0))
+    ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0))
+    ((3 2) (6 0)) ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0))
+    ((6 1) (1 0)) ((7 1) (1 0)) ((8 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2) (privk hash-3))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+    (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c)) (enc nc nb-2 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc nc nm m price-0 (pubk c))
+    (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-2 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-3 nb-0 price (pubk hash-3))
+            (privk b-0)) (enc nc nb-3 (pubk c))))))
+  (label 166)
+  (parent 146)
+  (seen 146)
+  (unrealized (0 0) (0 2) (1 0) (8 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm nm-0 data)
+    (price acctnum goods price-0 price-1 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-1)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (6 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)) ((7 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm-0 m price-1 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 167)
+  (parent 148)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (7 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)) ((7 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 168)
+  (parent 150)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 169)
+  (parent 151)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm nm-0 data)
+    (goods price acctnum goods-0 price-0 price-1 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods-0)
+    (price price-1) (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (7 0))
+    ((3 0) (8 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)) ((8 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 170)
+  (parent 151)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 data) (price acctnum goods text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-1 (pubk c))))))
+  (label 171)
+  (parent 155)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data)
+    (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (7 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)) ((7 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 172)
+  (parent 155)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data)
+    (goods price acctnum goods-0 price-0 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (b-0 b) (acctnum-0 acctnum)) nc
+    (1 0) (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc nc nm m price-0 (pubk c))
+    (enc c nc goods-0 (pubk m)) (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 173)
+  (parent 157)
+  (seen 172)
+  (unrealized (0 0) (0 2))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm nb-2 data)
+    (goods price acctnum acctnum-0 goods-0 price-0 text)
+    (b m c hash b-0 hash-0 hash-1 hash-2 hash-3 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum-0)
+    (price price) (b b-0) (c c) (hash hash-3))
+  (precedes ((0 1) (3 1)) ((0 1) (8 0)) ((1 1) (0 2)) ((2 1) (4 0))
+    ((3 0) (0 0)) ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0))
+    ((3 2) (6 0)) ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0))
+    ((6 1) (1 0)) ((7 1) (1 0)) ((8 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0)
+    (privk hash-0) (privk hash-1) (privk hash-2) (privk hash-3))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (added-strand bank 2) nc (1 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+    (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+    (enc nc nb-0 (pubk c)) (enc nc nb-1 (pubk c))
+    (enc nc nb-0 m price (pubk c)) (enc nc nm m price-0 (pubk c))
+    (enc c nc goods-0 (pubk m))
+    (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b-0)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b-0)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b-0)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-3))
+            (privk b-0)) (enc nc nb-2 (pubk c))))))
+  (label 174)
+  (parent 157)
+  (seen 157)
+  (unrealized (0 0) (0 2) (1 0) (8 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nm nm-0 data)
+    (price acctnum goods price-0 price-1 text)
+    (m c hash b hash-0 hash-1 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-1)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (6 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)) ((7 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm-0 m price-1 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 175)
+  (parent 159)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 nm nm-0 data)
+    (price acctnum goods price-0 price-1 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-1)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (7 0))
+    ((3 0) (8 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)) ((8 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm-0 m price-1 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-2 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 176)
+  (parent 162)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 nm data)
+    (price acctnum goods price-0 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (7 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)) ((7 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-2 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 177)
+  (parent 164)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 nm data)
+    (price acctnum goods price-0 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-2 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 178)
+  (parent 165)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 nm nm-0 data)
+    (goods price acctnum goods-0 price-0 price-1 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods-0)
+    (price price-1) (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (7 0))
+    ((3 0) (8 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)) ((8 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-2 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 179)
+  (parent 165)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm nm-0 data)
+    (price acctnum goods price-0 price-1 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-1)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (7 0))
+    ((3 0) (8 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)) ((8 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm-0 m price-1 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 180)
+  (parent 170)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (7 0))
+    ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0)) ((3 4) (1 0))
+    ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0)) ((7 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm m price-0 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 181)
+  (parent 172)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm data) (price acctnum goods price-0 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (0 0))
+    ((3 0) (7 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c)))))
+  (label 182)
+  (parent 173)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm nm-0 data)
+    (goods price acctnum goods-0 price-0 price-1 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods-0) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods-0)
+    (price price-1) (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (7 0))
+    ((3 0) (8 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)) ((8 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (0 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 183)
+  (parent 173)
+  (unrealized (0 0) (0 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nb-2 nm nm-0 data)
+    (price acctnum goods price-0 price-1 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-2) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-1)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (7 0))
+    ((3 0) (8 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)) ((8 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm-0 m price-1 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-2 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-2 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 184)
+  (parent 179)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nc nb nb-0 nb-1 nm nm-0 data)
+    (price acctnum goods price-0 price-1 text)
+    (m c hash b hash-0 hash-1 hash-2 name))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-1))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-2))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-1)
+    (c c) (m m))
+  (precedes ((0 1) (3 1)) ((1 1) (0 2)) ((2 1) (4 0)) ((3 0) (7 0))
+    ((3 0) (8 0)) ((3 2) (2 0)) ((3 2) (5 0)) ((3 2) (6 0))
+    ((3 4) (1 0)) ((4 1) (3 3)) ((5 1) (4 0)) ((6 1) (1 0))
+    ((7 1) (1 0)) ((8 1) (0 0)))
+  (non-orig (privk m) (privk c) (privk hash) (privk b) (privk hash-0)
+    (privk hash-1) (privk hash-2))
+  (uniq-orig nc nb nb-0 nm nm-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (0 0)
+    (enc nc nm-0 m price-1 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) nb-0)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-2))
+            (privk b)) (enc nc nb-1 (pubk c)))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-1 (pubk c)))))
+  (label 185)
+  (parent 183)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol sorted_epmo_acctnum basic
+  (defrole bank
+    (vars (b c m name) (acctnum price text) (hash name) (nc nm nb data))
+    (trace (recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    (non-orig (privk hash))
+    (annotations b
+      (1
+        (forall ((pm name))
+          (implies
+            (and (authtransfer c acctnum b price pm nm)
+              (reqtransfer pm b price pm nm))
+            (dotransfer acctnum b price pm nm))))
+      (2
+        (and (says c (authtransfer c acctnum b price m nm))
+          (says m (reqtransfer m b price m nm))))))
+  (defrole customer
+    (vars (b c m hash name) (acctnum goods price text) (nc nm nb data))
+    (trace (send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb)))
+    (non-orig (privk b) (privk hash))
+    (uniq-orig nc)
+    (annotations c
+      (1
+        (says m
+          (implies
+            (exists ((acctnum2 text))
+              (dotransfer acctnum2 b price m nm)) (doship m goods c))))
+      (3
+        (says b
+          (forall ((pm name))
+            (implies
+              (and (authtransfer c acctnum b price m nm)
+                (reqtransfer pm b price pm nm))
+              (dotransfer acctnum b price pm nm)))))
+      (4 (authtransfer c acctnum b price m nm))))
+  (defrole merchant
+    (vars (b c m hash name) (goods price text) (nc nm nb data))
+    (trace (recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    (non-orig (privk hash))
+    (uniq-orig nm)
+    (annotations m
+      (1
+        (implies
+          (exists ((acctnum2 text)) (dotransfer acctnum2 b price m nm))
+          (doship m goods c)))
+      (2
+        (and
+          (says b
+            (forall ((pm name))
+              (exists ((acctnum2 text))
+                (implies
+                  (and (authtransfer c acctnum2 b price m nm)
+                    (reqtransfer pm b price pm nm))
+                  (dotransfer acctnum2 b price pm nm)))))
+          (says c
+            (exists ((acctnum2 text))
+              (authtransfer c acctnum2 b price m nm)))))
+      (3 (and (reqtransfer m b price m nm) (doship m goods c)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc data) (acctnum price text) (b m c hash name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (non-orig (privk b) (privk m) (privk c) (privk hash))
+  (uniq-orig nm nb nc)
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m)))))
+  (label 186)
+  (unrealized (0 2))
+  (origs (nb (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc nc-0 data) (acctnum price goods price-0 text)
+    (b m c hash c-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc-0) (nm nm) (nb nb) (goods goods)
+    (price price-0) (b b) (c c-0) (m m) (hash hash))
+  (precedes ((0 1) (1 2)) ((1 1) (0 0)) ((1 3) (0 2)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash))
+  (uniq-orig nm nb nc)
+  (operation encryption-test (added-strand merchant 4)
+    (enc (enc "hash" b m nb nm (pubk hash)) (privk m)) (0 2))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c-0 nc-0 goods (pubk m)))
+      (send (enc nc-0 nm m price-0 (pubk c-0)))
+      (recv
+        (cat
+          (enc (enc "hash" c-0 nc-0 nb nm price-0 (pubk hash))
+            (privk b)) nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m)))))
+  (label 187)
+  (parent 186)
+  (unrealized (1 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc data) (acctnum price goods text) (b m c hash name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (precedes ((0 1) (1 2)) ((1 1) (0 0)) ((1 3) (0 2)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash))
+  (uniq-orig nm nb nc)
+  (operation encryption-test (displaced 2 0 bank 2)
+    (enc (enc "hash" c-0 nc-0 nb nm price-0 (pubk hash)) (privk b))
+    (1 2))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m)))))
+  (label 188)
+  (parent 187)
+  (unrealized (0 0) (1 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc data) (acctnum price goods acctnum-0 goods-0 text)
+    (b m c hash b-0 m-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m-0) (hash hash))
+  (precedes ((0 1) (2 3)) ((1 1) (0 0)) ((1 1) (2 1)) ((1 3) (0 2))
+    ((2 0) (1 0)) ((2 4) (1 2)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0))
+  (uniq-orig nm nb nc)
+  (operation nonce-test (added-strand customer 5) nb (1 2)
+    (enc "hash" c nc nb nm price (pubk hash)) (enc nc nb (pubk c)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((send (enc c nc goods-0 (pubk m-0)))
+      (recv (enc nc nm m-0 price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b-0)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b-0))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b-0))
+          nb))))
+  (label 189)
+  (parent 188)
+  (unrealized (0 0) (2 1) (2 3))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc data) (acctnum price goods acctnum-0 goods-0 text)
+    (b m c hash b-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b-0) (c c) (m m) (hash hash))
+  (precedes ((0 1) (2 3)) ((1 1) (0 0)) ((1 1) (2 1)) ((1 3) (0 2))
+    ((2 0) (1 0)) ((2 4) (1 2)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk b-0))
+  (uniq-orig nm nb nc)
+  (operation nonce-test (contracted (m-0 m)) nm (2 1)
+    (enc nc nm m price (pubk c)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b-0)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b-0))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b-0))
+          nb))))
+  (label 190)
+  (parent 189)
+  (unrealized (0 0) (1 0) (2 3))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc data) (acctnum price goods acctnum-0 goods-0 text)
+    (b m c hash name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash))
+  (precedes ((0 1) (2 3)) ((1 1) (0 0)) ((1 1) (2 1)) ((1 3) (0 2))
+    ((2 0) (1 0)) ((2 4) (1 2)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash))
+  (uniq-orig nm nb nc)
+  (operation encryption-test (displaced 3 0 bank 2)
+    (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b-0)) (2 3))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))))
+  (label 191)
+  (parent 190)
+  (unrealized (0 0) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc data) (acctnum price acctnum-0 goods text)
+    (b m c hash name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum-0)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (precedes ((0 1) (2 3)) ((1 1) (0 0)) ((1 1) (2 1)) ((1 3) (0 2))
+    ((2 0) (1 0)) ((2 4) (1 2)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash))
+  (uniq-orig nm nb nc)
+  (operation nonce-test (contracted (goods-0 goods)) nc (1 0)
+    (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))))
+  (label 192)
+  (parent 191)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc nm-0 data)
+    (acctnum price goods acctnum-0 goods-0 price-0 text)
+    (b m c hash name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum-0)
+    (goods goods-0) (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods-0)
+    (price price-0) (c c) (m m))
+  (precedes ((0 1) (2 3)) ((1 1) (0 0)) ((1 1) (2 1)) ((1 3) (0 2))
+    ((2 0) (3 0)) ((2 4) (1 2)) ((3 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash))
+  (uniq-orig nm nb nc nm-0)
+  (operation nonce-test (added-strand merchant 2) nc (1 0)
+    (enc c nc goods-0 (pubk m)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((send (enc c nc goods-0 (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb)))
+    ((recv (enc c nc goods-0 (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c)))))
+  (label 193)
+  (parent 191)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc data) (acctnum price acctnum-0 goods text)
+    (b m c hash name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum-0)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (1 0))
+    ((2 2) (0 0)) ((2 4) (1 2)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash))
+  (uniq-orig nm nb nc)
+  (operation nonce-test (displaced 3 2 customer 3) nm (0 0)
+    (enc nc nm m price (pubk c)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))))
+  (label 194)
+  (parent 192)
+  (unrealized (0 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc nm-0 data)
+    (acctnum price acctnum-0 goods price-0 text) (b m c hash name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum-0)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (2 3)) ((1 1) (0 0)) ((1 1) (2 1)) ((1 3) (0 2))
+    ((2 0) (3 0)) ((2 4) (1 2)) ((3 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash))
+  (uniq-orig nm nb nc nm-0)
+  (operation nonce-test (contracted (goods-0 goods)) nc (1 0)
+    (enc nc nm-0 m price-0 (pubk c)) (enc c nc goods (pubk m)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb)))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c)))))
+  (label 195)
+  (parent 193)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc data) (price acctnum goods text) (b m c hash name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (1 0))
+    ((2 2) (0 0)) ((2 4) (1 2)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash))
+  (uniq-orig nm nb nc)
+  (operation nonce-test (contracted (acctnum-0 acctnum)) nm (0 0)
+    (enc nc nm m price (pubk c)) (enc c nc nm acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))))
+  (label 196)
+  (parent 194)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((b b) (m m) (c c) (nm nm) (nb nb) (nc nc) (hash hash)
+        (acctnum acctnum) (price price))))
+  (origs (nc (2 0)) (nm (1 1)) (nb (0 1))))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc nb-0 data) (acctnum price acctnum-0 goods text)
+    (b m c hash hash-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum-0)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b) (c c) (hash hash-0))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 1) (3 0)) ((1 3) (0 2))
+    ((2 0) (1 0)) ((2 2) (0 0)) ((2 4) (1 2)) ((3 1) (0 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk hash-0))
+  (uniq-orig nm nb nc)
+  (operation nonce-test (added-strand bank 2) nm (0 0)
+    (enc nc nm m price (pubk c)) (enc c nc nm acctnum-0 price (pubk b)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb)))
+    ((recv (enc c nc nm acctnum-0 price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nm price (pubk hash-0)) (privk b))
+          (enc nc nb-0 (pubk c))))))
+  (label 197)
+  (parent 194)
+  (unrealized (0 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc nm-0 data)
+    (acctnum price acctnum-0 goods price-0 text) (b m c hash name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum-0)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (3 0))
+    ((2 2) (0 0)) ((2 4) (1 2)) ((3 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash))
+  (uniq-orig nm nb nc nm-0)
+  (operation nonce-test (displaced 4 2 customer 3) nm (0 0)
+    (enc nc nm m price (pubk c)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb)))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c)))))
+  (label 198)
+  (parent 195)
+  (unrealized (0 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc nb-0 data) (acctnum price acctnum-0 goods text)
+    (b m c hash hash-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum-0)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b) (c c) (hash hash-0))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (1 0))
+    ((2 2) (3 0)) ((2 4) (1 2)) ((3 1) (0 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk hash-0))
+  (uniq-orig nm nb nc)
+  (operation nonce-test (displaced 4 2 customer 3) nm (3 0)
+    (enc nc nm m price (pubk c)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb)))
+    ((recv (enc c nc nm acctnum-0 price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nm price (pubk hash-0)) (privk b))
+          (enc nc nb-0 (pubk c))))))
+  (label 199)
+  (parent 197)
+  (unrealized (0 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc nm-0 data) (price acctnum goods price-0 text)
+    (b m c hash name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-0)
+    (c c) (m m))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (3 0))
+    ((2 2) (0 0)) ((2 4) (1 2)) ((3 1) (1 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash))
+  (uniq-orig nm nb nc nm-0)
+  (operation nonce-test (contracted (acctnum-0 acctnum)) nm (0 0)
+    (enc nc nm m price (pubk c)) (enc c nc nm acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb)))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c)))))
+  (label 200)
+  (parent 198)
+  (seen 196)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc nm-0 nb-0 data)
+    (acctnum price acctnum-0 goods price-0 text)
+    (b m c hash hash-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum-0)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b) (c c) (hash hash-0))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 1) (4 0)) ((1 3) (0 2))
+    ((2 0) (3 0)) ((2 2) (0 0)) ((2 4) (1 2)) ((3 1) (1 0))
+    ((4 1) (0 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk hash-0))
+  (uniq-orig nm nb nc nm-0)
+  (operation nonce-test (added-strand bank 2) nm (0 0)
+    (enc nc nm m price (pubk c)) (enc c nc nm acctnum-0 price (pubk b)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb)))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c))))
+    ((recv (enc c nc nm acctnum-0 price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nm price (pubk hash-0)) (privk b))
+          (enc nc nb-0 (pubk c))))))
+  (label 201)
+  (parent 198)
+  (unrealized (0 0) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc nb-0 data) (price acctnum goods text)
+    (b m c hash hash-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (1 0))
+    ((2 2) (3 0)) ((2 4) (1 2)) ((3 1) (0 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk hash-0))
+  (uniq-orig nm nb nc)
+  (operation nonce-test (contracted (acctnum-0 acctnum)) nm (0 0)
+    (enc "hash" c nc nb-0 nm price (pubk hash-0))
+    (enc nc nm m price (pubk c)) (enc c nc nm acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb)))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nm price (pubk hash-0)) (privk b))
+          (enc nc nb-0 (pubk c))))))
+  (label 202)
+  (parent 199)
+  (seen 196)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nb nc nb-0 data) (acctnum price acctnum-0 goods text)
+    (b m c hash hash-0 name))
+  (defstrand bank 3 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum-0)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b) (c c) (hash hash-0))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (1 0))
+    ((2 2) (3 0)) ((2 4) (1 2)) ((3 1) (0 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk hash-0))
+  (uniq-orig nb nc nb-0)
+  (operation nonce-test (displaced 4 3 bank 2) nm (0 0)
+    (enc "hash" c nc nb-0 nm price (pubk hash-0))
+    (enc nc nm m price (pubk c)) (enc c nc nm acctnum-0 price (pubk b)))
+  (traces
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))))
+  (label 203)
+  (parent 199)
+  (unrealized (0 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc nb-0 nb-1 data) (acctnum price acctnum-0 goods text)
+    (b m c hash hash-0 hash-1 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum-0)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b) (c c) (hash hash-1))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 1) (4 0)) ((1 3) (0 2))
+    ((2 0) (1 0)) ((2 2) (3 0)) ((2 4) (1 2)) ((3 1) (0 0))
+    ((4 1) (0 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nm nb nc)
+  (operation nonce-test (added-strand bank 2) nm (0 0)
+    (enc "hash" c nc nb-0 nm price (pubk hash-0))
+    (enc nc nm m price (pubk c)) (enc c nc nm acctnum-0 price (pubk b)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb)))
+    ((recv (enc c nc nm acctnum-0 price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nm price (pubk hash-0)) (privk b))
+          (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nm acctnum-0 price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nm price (pubk hash-1)) (privk b))
+          (enc nc nb-1 (pubk c))))))
+  (label 204)
+  (parent 199)
+  (seen 199)
+  (unrealized (0 0) (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc nm-0 nb-0 data)
+    (acctnum price acctnum-0 goods price-0 text)
+    (b m c hash hash-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum-0)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b) (c c) (hash hash-0))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (3 0))
+    ((2 2) (4 0)) ((2 4) (1 2)) ((3 1) (1 0)) ((4 1) (0 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk hash-0))
+  (uniq-orig nm nb nc nm-0)
+  (operation nonce-test (displaced 5 2 customer 3) nm (4 0)
+    (enc nc nm m price (pubk c)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb)))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c))))
+    ((recv (enc c nc nm acctnum-0 price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nm price (pubk hash-0)) (privk b))
+          (enc nc nb-0 (pubk c))))))
+  (label 205)
+  (parent 201)
+  (unrealized (0 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nb nc nb-0 data) (price acctnum goods text)
+    (b m c hash hash-0 name))
+  (defstrand bank 3 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (1 0))
+    ((2 2) (3 0)) ((2 4) (1 2)) ((3 1) (0 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk hash-0))
+  (uniq-orig nb nc nb-0)
+  (operation nonce-test (contracted (acctnum-0 acctnum)) nb-0 (0 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb)))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))))
+  (label 206)
+  (parent 203)
+  (seen 196)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nb nc nb-0 nb-1 data) (acctnum price acctnum-0 goods text)
+    (b m c hash hash-0 hash-1 name))
+  (defstrand bank 3 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum-0)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b) (c c) (hash hash-1))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 1) (4 0)) ((1 3) (0 2))
+    ((2 0) (1 0)) ((2 2) (3 0)) ((2 4) (1 2)) ((3 1) (0 0))
+    ((4 1) (0 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nb nc nb-0)
+  (operation nonce-test (added-strand bank 2) nb-0 (0 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc nb-0 acctnum-0 price (pubk b)))
+  (traces
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c))))))
+  (label 207)
+  (parent 203)
+  (unrealized (0 0) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc nm-0 nb-0 data) (price acctnum goods price-0 text)
+    (b m c hash hash-0 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (3 0))
+    ((2 2) (4 0)) ((2 4) (1 2)) ((3 1) (1 0)) ((4 1) (0 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk hash-0))
+  (uniq-orig nm nb nc nm-0)
+  (operation nonce-test (contracted (acctnum-0 acctnum)) nm (0 0)
+    (enc "hash" c nc nb-0 nm price (pubk hash-0))
+    (enc nc nm m price (pubk c)) (enc c nc nm acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb)))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c))))
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nm price (pubk hash-0)) (privk b))
+          (enc nc nb-0 (pubk c))))))
+  (label 208)
+  (parent 205)
+  (seen 202)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nb nc nm nb-0 data)
+    (acctnum price acctnum-0 goods price-0 text)
+    (b m c hash hash-0 name))
+  (defstrand bank 3 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum-0)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b) (c c) (hash hash-0))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (3 0))
+    ((2 2) (4 0)) ((2 4) (1 2)) ((3 1) (1 0)) ((4 1) (0 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk hash-0))
+  (uniq-orig nb nc nm nb-0)
+  (operation nonce-test (displaced 5 4 bank 2) nm-0 (0 0)
+    (enc "hash" c nc nb-0 nm-0 price (pubk hash-0))
+    (enc nc nm-0 m price (pubk c))
+    (enc c nc nm-0 acctnum-0 price (pubk b)))
+  (traces
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb)))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))))
+  (label 209)
+  (parent 205)
+  (unrealized (0 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nm nb nc nm-0 nb-0 nb-1 data)
+    (acctnum price acctnum-0 goods price-0 text)
+    (b m c hash hash-0 hash-1 name))
+  (defstrand bank 3 (nc nc) (nm nm) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nm) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nm) (nb nb) (acctnum acctnum-0)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 2 (nc nc) (nm nm-0) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nm) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b) (c c) (hash hash-1))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 1) (5 0)) ((1 3) (0 2))
+    ((2 0) (3 0)) ((2 2) (4 0)) ((2 4) (1 2)) ((3 1) (1 0))
+    ((4 1) (0 0)) ((5 1) (0 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nm nb nc nm-0)
+  (operation nonce-test (added-strand bank 2) nm (0 0)
+    (enc "hash" c nc nb-0 nm price (pubk hash-0))
+    (enc nc nm m price (pubk c)) (enc c nc nm acctnum-0 price (pubk b)))
+  (traces
+    ((recv (enc c nc nm acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nm (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nm m price (pubk c)))
+      (send (enc c nc nm acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nm price (pubk hash)) (privk b))
+          nb)))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm-0 m price-0 (pubk c))))
+    ((recv (enc c nc nm acctnum-0 price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nm price (pubk hash-0)) (privk b))
+          (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nm acctnum-0 price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nm price (pubk hash-1)) (privk b))
+          (enc nc nb-1 (pubk c))))))
+  (label 210)
+  (parent 205)
+  (seen 205)
+  (unrealized (0 0) (5 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nb nc nb-0 nb-1 data) (acctnum price acctnum-0 goods text)
+    (b m c hash hash-0 hash-1 name))
+  (defstrand bank 3 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum-0)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b) (c c) (hash hash-1))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (1 0))
+    ((2 2) (3 0)) ((2 2) (4 0)) ((2 4) (1 2)) ((3 1) (0 0))
+    ((4 1) (0 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nb nc nb-0)
+  (operation nonce-test (displaced 5 2 customer 3) nb-0 (4 0)
+    (enc nc nb-0 m price (pubk c)))
+  (traces
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb)))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c))))))
+  (label 211)
+  (parent 207)
+  (seen 203)
+  (unrealized (0 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nb nc nm nb-0 data) (price acctnum goods price-0 text)
+    (b m c hash hash-0 name))
+  (defstrand bank 3 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum)
+    (price price) (b b) (c c) (hash hash-0))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (3 0))
+    ((2 2) (4 0)) ((2 4) (1 2)) ((3 1) (1 0)) ((4 1) (0 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk hash-0))
+  (uniq-orig nb nc nm nb-0)
+  (operation nonce-test (contracted (acctnum-0 acctnum)) nb-0 (0 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc nb-0 acctnum price (pubk b)))
+  (traces
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb)))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c))))))
+  (label 212)
+  (parent 209)
+  (seen 206)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nb nc nm nb-0 nb-1 data)
+    (acctnum price acctnum-0 goods price-0 text)
+    (b m c hash hash-0 hash-1 name))
+  (defstrand bank 3 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum-0)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b) (c c) (hash hash-1))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 1) (5 0)) ((1 3) (0 2))
+    ((2 0) (3 0)) ((2 2) (4 0)) ((2 4) (1 2)) ((3 1) (1 0))
+    ((4 1) (0 0)) ((5 1) (0 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nb nc nm nb-0)
+  (operation nonce-test (added-strand bank 2) nb-0 (0 0)
+    (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+    (enc nc nb-0 (pubk c)) (enc nc nb-0 m price (pubk c))
+    (enc c nc nb-0 acctnum-0 price (pubk b)))
+  (traces
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb)))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c))))))
+  (label 213)
+  (parent 209)
+  (unrealized (0 0) (5 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton sorted_epmo_acctnum
+  (vars (nb nc nm nb-0 nb-1 data)
+    (acctnum price acctnum-0 goods price-0 text)
+    (b m c hash hash-0 hash-1 name))
+  (defstrand bank 3 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 4 (nc nc) (nm nb-0) (nb nb) (goods goods)
+    (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand customer 5 (nc nc) (nm nb-0) (nb nb) (acctnum acctnum-0)
+    (goods goods) (price price) (b b) (c c) (m m) (hash hash))
+  (defstrand merchant 2 (nc nc) (nm nm) (goods goods) (price price-0)
+    (c c) (m m))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-0) (acctnum acctnum-0)
+    (price price) (b b) (c c) (hash hash-0))
+  (defstrand bank 2 (nc nc) (nm nb-0) (nb nb-1) (acctnum acctnum-0)
+    (price price) (b b) (c c) (hash hash-1))
+  (precedes ((0 1) (2 3)) ((1 1) (2 1)) ((1 3) (0 2)) ((2 0) (3 0))
+    ((2 2) (4 0)) ((2 2) (5 0)) ((2 4) (1 2)) ((3 1) (1 0))
+    ((4 1) (0 0)) ((5 1) (0 0)))
+  (non-orig (privk b) (privk m) (privk c) (privk hash) (privk hash-0)
+    (privk hash-1))
+  (uniq-orig nb nc nm nb-0)
+  (operation nonce-test (displaced 6 2 customer 3) nb-0 (5 0)
+    (enc nc nb-0 m price (pubk c)))
+  (traces
+    ((recv (enc c nc nb-0 acctnum price (pubk b)))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (recv (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nb-0 m price (pubk c)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb))
+      (send (enc (enc "hash" b m nb nb-0 (pubk hash)) (privk m))))
+    ((send (enc c nc goods (pubk m)))
+      (recv (enc nc nb-0 m price (pubk c)))
+      (send (enc c nc nb-0 acctnum-0 price (pubk b)))
+      (recv
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          (enc nc nb (pubk c))))
+      (send
+        (cat (enc (enc "hash" c nc nb nb-0 price (pubk hash)) (privk b))
+          nb)))
+    ((recv (enc c nc goods (pubk m)))
+      (send (enc nc nm m price-0 (pubk c))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-0 nb-0 price (pubk hash-0))
+            (privk b)) (enc nc nb-0 (pubk c)))))
+    ((recv (enc c nc nb-0 acctnum-0 price (pubk b)))
+      (send
+        (cat
+          (enc (enc "hash" c nc nb-1 nb-0 price (pubk hash-1))
+            (privk b)) (enc nc nb-1 (pubk c))))))
+  (label 214)
+  (parent 213)
+  (seen 209)
+  (unrealized (0 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/tst/staticdh.scm b/tst/staticdh.scm
deleted file mode 100644
--- a/tst/staticdh.scm
+++ /dev/null
@@ -1,62 +0,0 @@
-(herald "Static DH key exchange"
-  (algebra diffie-hellman))
-
-(defprotocol staticdh diffie-hellman
-  (defrole init
-    (vars (b ca name) (h base) (x rndx) (n text))
-    (trace
-       (recv (enc "cert" h b (privk ca)))
-       (send (enc n (exp h x)))
-       (recv n))
-    (uniq-orig n)
-    (non-orig (privk ca) x))
-  (defrole resp
-    (vars (a ca name) (h base) (y rndx) (n text))
-    (trace
-       (recv (enc "cert" h a (privk ca)))
-       (recv (enc n (exp h y)))
-       (send n))
-    (non-orig (privk ca) y))
-  (defrole ca
-    (vars (p ca name) (x rndx))
-    (trace
-       (send (enc "cert" (exp (gen) x) p (privk ca))))
-    (non-orig x)
-    (fn-of (owner-of (p x)))))
-
-(comment
-(defskeleton staticdh
-  (vars )
-  (defstrand init 3))
-)
-
-(defprotocol staticdh1 diffie-hellman
-  (defrole init
-    (vars (a b ca name) (h base) (x rndx) (n text))
-    (trace
-       (recv (enc "cert" (exp (gen) x) a (privk ca)))
-       (recv (enc "cert" h b (privk ca)))
-       (send (enc n (exp h x)))
-       (recv n))
-    (uniq-orig n)
-    (neq (a b))
-    (non-orig (privk ca)))
-  (defrole resp
-    (vars (a b ca name) (h base) (y rndx) (n text))
-    (trace
-       (recv (enc "cert" h a (privk ca)))
-       (recv (enc "cert" (exp (gen) y) b (privk ca)))
-       (recv (enc n (exp h y)))
-       (send n))
-    (neq (a b))
-    (non-orig (privk ca)))
-  (defrole ca
-    (vars (p ca name) (x rndx) (n text))
-    (trace
-       (send (enc "cert" (exp (gen) x) p (privk ca))))
-    (non-orig x)
-    (fn-of (owner-of (p x)))))
-
-(defskeleton staticdh1
-  (vars )
-  (defstrand init 4))
diff --git a/tst/staticdh.tst b/tst/staticdh.tst
deleted file mode 100644
--- a/tst/staticdh.tst
+++ /dev/null
@@ -1,517 +0,0 @@
-(herald "Static DH key exchange" (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/staticdh.scm")
-
-(defprotocol staticdh1 diffie-hellman
-  (defrole init
-    (vars (a b ca name) (h base) (x rndx) (n text))
-    (trace (recv (enc "cert" (exp (gen) x) a (privk ca)))
-      (recv (enc "cert" h b (privk ca))) (send (enc n (exp h x)))
-      (recv n))
-    (non-orig (privk ca))
-    (uniq-orig n)
-    (neq (a b)))
-  (defrole resp
-    (vars (a b ca name) (h base) (y rndx) (n text))
-    (trace (recv (enc "cert" h a (privk ca)))
-      (recv (enc "cert" (exp (gen) y) b (privk ca)))
-      (recv (enc n (exp h y))) (send n))
-    (non-orig (privk ca))
-    (neq (a b)))
-  (defrole ca
-    (vars (p ca name) (x rndx))
-    (trace (send (enc "cert" (exp (gen) x) p (privk ca))))
-    (non-orig x)
-    (fn-of (owner-of (p x)))))
-
-(defskeleton staticdh1
-  (vars (n text) (a b ca name) (h base) (x rndx))
-  (defstrand init 4 (n n) (a a) (b b) (ca ca) (h h) (x x))
-  (neq (a b))
-  (non-orig (privk ca))
-  (uniq-orig n)
-  (traces
-    ((recv (enc "cert" (exp (gen) x) a (privk ca)))
-      (recv (enc "cert" h b (privk ca))) (send (enc n (exp h x)))
-      (recv n)))
-  (label 0)
-  (unrealized (0 0) (0 1))
-  (origs (n (0 2)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton staticdh1
-  (vars (n text) (a b ca name) (h base) (x rndx))
-  (defstrand init 4 (n n) (a a) (b b) (ca ca) (h h) (x x))
-  (defstrand ca 1 (p a) (ca ca) (x x))
-  (precedes ((1 0) (0 0)))
-  (fn-of (owner-of (a x)))
-  (neq (a b))
-  (non-orig (privk ca) x)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 1)
-    (enc "cert" (exp (gen) x) a (privk ca)) (0 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) x) a (privk ca)))
-      (recv (enc "cert" h b (privk ca))) (send (enc n (exp h x)))
-      (recv n)) ((send (enc "cert" (exp (gen) x) a (privk ca)))))
-  (label 1)
-  (parent 0)
-  (unrealized (0 1) (0 3))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton staticdh1
-  (vars (n text) (a b ca name) (x x-0 rndx))
-  (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x-0)) (x x))
-  (defstrand ca 1 (p a) (ca ca) (x x))
-  (defstrand ca 1 (p b) (ca ca) (x x-0))
-  (precedes ((1 0) (0 0)) ((2 0) (0 1)))
-  (fn-of (owner-of (b x-0) (a x)))
-  (neq (a b))
-  (non-orig (privk ca) x x-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 1)
-    (enc "cert" (exp (gen) x-0) b (privk ca)) (0 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) x) a (privk ca)))
-      (recv (enc "cert" (exp (gen) x-0) b (privk ca)))
-      (send (enc n (exp (gen) (mul x x-0)))) (recv n))
-    ((send (enc "cert" (exp (gen) x) a (privk ca))))
-    ((send (enc "cert" (exp (gen) x-0) b (privk ca)))))
-  (label 2)
-  (parent 1)
-  (unrealized (0 3))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton staticdh1
-  (vars (n text) (a b ca a-0 b-0 ca-0 name) (x x-0 y rndx))
-  (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x-0)) (x x))
-  (defstrand ca 1 (p a) (ca ca) (x x))
-  (defstrand ca 1 (p b) (ca ca) (x x-0))
-  (defstrand resp 4 (n n) (a a-0) (b b-0) (ca ca-0)
-    (h (exp (gen) (mul x x-0 (rec y)))) (y y))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (0 1)) ((3 3) (0 3)))
-  (fn-of (owner-of (b x-0) (a x)))
-  (neq (a-0 b-0) (a b))
-  (non-orig (privk ca) (privk ca-0) x x-0)
-  (uniq-orig n)
-  (operation nonce-test (added-strand resp 4) n (0 3)
-    (enc n (exp (gen) (mul x x-0))))
-  (traces
-    ((recv (enc "cert" (exp (gen) x) a (privk ca)))
-      (recv (enc "cert" (exp (gen) x-0) b (privk ca)))
-      (send (enc n (exp (gen) (mul x x-0)))) (recv n))
-    ((send (enc "cert" (exp (gen) x) a (privk ca))))
-    ((send (enc "cert" (exp (gen) x-0) b (privk ca))))
-    ((recv
-       (enc "cert" (exp (gen) (mul x x-0 (rec y))) a-0 (privk ca-0)))
-      (recv (enc "cert" (exp (gen) y) b-0 (privk ca-0)))
-      (recv (enc n (exp (gen) (mul x x-0)))) (send n)))
-  (label 3)
-  (parent 2)
-  (unrealized (3 0) (3 1))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton staticdh1
-  (vars (n text) (a b ca name) (x x-0 rndx))
-  (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x-0)) (x x))
-  (defstrand ca 1 (p a) (ca ca) (x x))
-  (defstrand ca 1 (p b) (ca ca) (x x-0))
-  (deflistener (exp (gen) (mul x x-0)))
-  (precedes ((1 0) (0 0)) ((2 0) (0 1)) ((3 1) (0 3)))
-  (fn-of (owner-of (b x-0) (a x)))
-  (neq (a b))
-  (non-orig (privk ca) x x-0)
-  (uniq-orig n)
-  (operation nonce-test (added-listener (exp (gen) (mul x x-0))) n (0 3)
-    (enc n (exp (gen) (mul x x-0))))
-  (traces
-    ((recv (enc "cert" (exp (gen) x) a (privk ca)))
-      (recv (enc "cert" (exp (gen) x-0) b (privk ca)))
-      (send (enc n (exp (gen) (mul x x-0)))) (recv n))
-    ((send (enc "cert" (exp (gen) x) a (privk ca))))
-    ((send (enc "cert" (exp (gen) x-0) b (privk ca))))
-    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))
-  (label 4)
-  (parent 2)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton staticdh1
-  (vars (n text) (a b ca b-0 name) (y x rndx))
-  (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (x y))
-  (defstrand ca 1 (p a) (ca ca) (x y))
-  (defstrand ca 1 (p b) (ca ca) (x x))
-  (defstrand resp 4 (n n) (a b) (b b-0) (ca ca) (h (exp (gen) x)) (y y))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (0 1)) ((2 0) (3 0))
-    ((3 3) (0 3)))
-  (fn-of (owner-of (b x) (a y)))
-  (neq (b b-0) (a b))
-  (non-orig (privk ca) y x)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 2 ca 1)
-    (enc "cert" (exp (gen) x) a-0 (privk ca-0)) (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) y) a (privk ca)))
-      (recv (enc "cert" (exp (gen) x) b (privk ca)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc "cert" (exp (gen) y) a (privk ca))))
-    ((send (enc "cert" (exp (gen) x) b (privk ca))))
-    ((recv (enc "cert" (exp (gen) x) b (privk ca)))
-      (recv (enc "cert" (exp (gen) y) b-0 (privk ca)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n)))
-  (label 5)
-  (parent 3)
-  (unrealized (3 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton staticdh1
-  (vars (n text) (a b ca b-0 ca-0 name) (y x rndx))
-  (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (x y))
-  (defstrand ca 1 (p a) (ca ca) (x y))
-  (defstrand ca 1 (p b) (ca ca) (x x))
-  (defstrand resp 4 (n n) (a b) (b b-0) (ca ca-0) (h (exp (gen) x))
-    (y y))
-  (defstrand ca 1 (p b) (ca ca-0) (x x))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (0 1)) ((3 3) (0 3))
-    ((4 0) (3 0)))
-  (fn-of (owner-of (b x) (a y)))
-  (neq (b b-0) (a b))
-  (non-orig (privk ca) (privk ca-0) y x)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 1)
-    (enc "cert" (exp (gen) x) b (privk ca-0)) (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) y) a (privk ca)))
-      (recv (enc "cert" (exp (gen) x) b (privk ca)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc "cert" (exp (gen) y) a (privk ca))))
-    ((send (enc "cert" (exp (gen) x) b (privk ca))))
-    ((recv (enc "cert" (exp (gen) x) b (privk ca-0)))
-      (recv (enc "cert" (exp (gen) y) b-0 (privk ca-0)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((send (enc "cert" (exp (gen) x) b (privk ca-0)))))
-  (label 6)
-  (parent 3)
-  (unrealized (3 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton staticdh1
-  (vars (n text) (a b ca b-0 name) (y x rndx))
-  (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))
-  (defstrand ca 1 (p a) (ca ca) (x x))
-  (defstrand ca 1 (p b) (ca ca) (x y))
-  (defstrand resp 4 (n n) (a a) (b b-0) (ca ca) (h (exp (gen) x)) (y y))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 1))
-    ((3 3) (0 3)))
-  (fn-of (owner-of (a x) (b y)))
-  (neq (a b-0) (a b))
-  (non-orig (privk ca) y x)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 1 ca 1)
-    (enc "cert" (exp (gen) x) a-0 (privk ca-0)) (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) x) a (privk ca)))
-      (recv (enc "cert" (exp (gen) y) b (privk ca)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc "cert" (exp (gen) x) a (privk ca))))
-    ((send (enc "cert" (exp (gen) y) b (privk ca))))
-    ((recv (enc "cert" (exp (gen) x) a (privk ca)))
-      (recv (enc "cert" (exp (gen) y) b-0 (privk ca)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n)))
-  (label 7)
-  (parent 3)
-  (unrealized (3 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton staticdh1
-  (vars (n text) (a b ca b-0 ca-0 name) (y x rndx))
-  (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) y)) (x x))
-  (defstrand ca 1 (p a) (ca ca) (x x))
-  (defstrand ca 1 (p b) (ca ca) (x y))
-  (defstrand resp 4 (n n) (a a) (b b-0) (ca ca-0) (h (exp (gen) x))
-    (y y))
-  (defstrand ca 1 (p a) (ca ca-0) (x x))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (0 1)) ((3 3) (0 3))
-    ((4 0) (3 0)))
-  (fn-of (owner-of (a x) (b y)))
-  (neq (a b-0) (a b))
-  (non-orig (privk ca) (privk ca-0) y x)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 1)
-    (enc "cert" (exp (gen) x) a (privk ca-0)) (3 0))
-  (traces
-    ((recv (enc "cert" (exp (gen) x) a (privk ca)))
-      (recv (enc "cert" (exp (gen) y) b (privk ca)))
-      (send (enc n (exp (gen) (mul y x)))) (recv n))
-    ((send (enc "cert" (exp (gen) x) a (privk ca))))
-    ((send (enc "cert" (exp (gen) y) b (privk ca))))
-    ((recv (enc "cert" (exp (gen) x) a (privk ca-0)))
-      (recv (enc "cert" (exp (gen) y) b-0 (privk ca-0)))
-      (recv (enc n (exp (gen) (mul y x)))) (send n))
-    ((send (enc "cert" (exp (gen) x) a (privk ca-0)))))
-  (label 8)
-  (parent 3)
-  (unrealized (3 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton staticdh1
-  (vars (n text) (a b ca name) (x x-0 rndx))
-  (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (x x-0))
-  (defstrand ca 1 (p a) (ca ca) (x x-0))
-  (defstrand ca 1 (p b) (ca ca) (x x))
-  (defstrand resp 4 (n n) (a b) (b a) (ca ca) (h (exp (gen) x)) (y x-0))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 1)) ((2 0) (0 1))
-    ((2 0) (3 0)) ((3 3) (0 3)))
-  (fn-of (owner-of (a x-0) (b x)))
-  (neq (b a) (a b))
-  (non-orig (privk ca) x x-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 1 ca 1)
-    (enc "cert" (exp (gen) x-0) b-0 (privk ca)) (3 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) x-0) a (privk ca)))
-      (recv (enc "cert" (exp (gen) x) b (privk ca)))
-      (send (enc n (exp (gen) (mul x x-0)))) (recv n))
-    ((send (enc "cert" (exp (gen) x-0) a (privk ca))))
-    ((send (enc "cert" (exp (gen) x) b (privk ca))))
-    ((recv (enc "cert" (exp (gen) x) b (privk ca)))
-      (recv (enc "cert" (exp (gen) x-0) a (privk ca)))
-      (recv (enc n (exp (gen) (mul x x-0)))) (send n)))
-  (label 9)
-  (parent 5)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (ca ca) (h (exp (gen) x)) (x x-0) (n n))))
-  (origs (n (0 2))))
-
-(defskeleton staticdh1
-  (vars (n text) (a b ca name) (x x-0 rndx))
-  (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (x x-0))
-  (defstrand ca 1 (p a) (ca ca) (x x-0))
-  (defstrand ca 1 (p b) (ca ca) (x x))
-  (defstrand resp 4 (n n) (a b) (b a) (ca ca) (h (exp (gen) x)) (y x-0))
-  (defstrand ca 1 (p a) (ca ca) (x x-0))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (0 1)) ((2 0) (3 0))
-    ((3 3) (0 3)) ((4 0) (3 1)))
-  (fn-of (owner-of (a x-0) (b x)))
-  (neq (b a) (a b))
-  (non-orig (privk ca) x x-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 1)
-    (enc "cert" (exp (gen) x-0) a (privk ca)) (3 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) x-0) a (privk ca)))
-      (recv (enc "cert" (exp (gen) x) b (privk ca)))
-      (send (enc n (exp (gen) (mul x x-0)))) (recv n))
-    ((send (enc "cert" (exp (gen) x-0) a (privk ca))))
-    ((send (enc "cert" (exp (gen) x) b (privk ca))))
-    ((recv (enc "cert" (exp (gen) x) b (privk ca)))
-      (recv (enc "cert" (exp (gen) x-0) a (privk ca)))
-      (recv (enc n (exp (gen) (mul x x-0)))) (send n))
-    ((send (enc "cert" (exp (gen) x-0) a (privk ca)))))
-  (label 10)
-  (parent 5)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (ca ca) (h (exp (gen) x)) (x x-0) (n n))))
-  (origs (n (0 2))))
-
-(defskeleton staticdh1
-  (vars (n text) (a b ca name) (x x-0 rndx))
-  (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (x x-0))
-  (defstrand ca 1 (p a) (ca ca) (x x-0))
-  (defstrand ca 1 (p b) (ca ca) (x x))
-  (defstrand resp 4 (n n) (a b) (b a) (ca ca) (h (exp (gen) x)) (y x-0))
-  (defstrand ca 1 (p b) (ca ca) (x x))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 1)) ((2 0) (0 1))
-    ((3 3) (0 3)) ((4 0) (3 0)))
-  (fn-of (owner-of (a x-0) (b x)))
-  (neq (b a) (a b))
-  (non-orig (privk ca) x x-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 5 1 ca 1)
-    (enc "cert" (exp (gen) x-0) b-0 (privk ca-0)) (3 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) x-0) a (privk ca)))
-      (recv (enc "cert" (exp (gen) x) b (privk ca)))
-      (send (enc n (exp (gen) (mul x x-0)))) (recv n))
-    ((send (enc "cert" (exp (gen) x-0) a (privk ca))))
-    ((send (enc "cert" (exp (gen) x) b (privk ca))))
-    ((recv (enc "cert" (exp (gen) x) b (privk ca)))
-      (recv (enc "cert" (exp (gen) x-0) a (privk ca)))
-      (recv (enc n (exp (gen) (mul x x-0)))) (send n))
-    ((send (enc "cert" (exp (gen) x) b (privk ca)))))
-  (label 11)
-  (parent 6)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (ca ca) (h (exp (gen) x)) (x x-0) (n n))))
-  (origs (n (0 2))))
-
-(defskeleton staticdh1
-  (vars (n text) (a b ca ca-0 name) (x x-0 rndx))
-  (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (x x-0))
-  (defstrand ca 1 (p a) (ca ca) (x x-0))
-  (defstrand ca 1 (p b) (ca ca) (x x))
-  (defstrand resp 4 (n n) (a b) (b a) (ca ca-0) (h (exp (gen) x))
-    (y x-0))
-  (defstrand ca 1 (p b) (ca ca-0) (x x))
-  (defstrand ca 1 (p a) (ca ca-0) (x x-0))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (0 1)) ((3 3) (0 3))
-    ((4 0) (3 0)) ((5 0) (3 1)))
-  (fn-of (owner-of (a x-0) (b x)))
-  (neq (b a) (a b))
-  (non-orig (privk ca) (privk ca-0) x x-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 1)
-    (enc "cert" (exp (gen) x-0) a (privk ca-0)) (3 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) x-0) a (privk ca)))
-      (recv (enc "cert" (exp (gen) x) b (privk ca)))
-      (send (enc n (exp (gen) (mul x x-0)))) (recv n))
-    ((send (enc "cert" (exp (gen) x-0) a (privk ca))))
-    ((send (enc "cert" (exp (gen) x) b (privk ca))))
-    ((recv (enc "cert" (exp (gen) x) b (privk ca-0)))
-      (recv (enc "cert" (exp (gen) x-0) a (privk ca-0)))
-      (recv (enc n (exp (gen) (mul x x-0)))) (send n))
-    ((send (enc "cert" (exp (gen) x) b (privk ca-0))))
-    ((send (enc "cert" (exp (gen) x-0) a (privk ca-0)))))
-  (label 12)
-  (parent 6)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (ca ca) (h (exp (gen) x)) (x x-0) (n n))))
-  (origs (n (0 2))))
-
-(defskeleton staticdh1
-  (vars (n text) (a b ca name) (x x-0 rndx))
-  (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x-0)) (x x))
-  (defstrand ca 1 (p a) (ca ca) (x x))
-  (defstrand ca 1 (p b) (ca ca) (x x-0))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y x-0))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 1))
-    ((2 0) (3 1)) ((3 3) (0 3)))
-  (fn-of (owner-of (b x-0) (a x)))
-  (neq (a b))
-  (non-orig (privk ca) x x-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 4 2 ca 1)
-    (enc "cert" (exp (gen) x-0) b-0 (privk ca)) (3 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) x) a (privk ca)))
-      (recv (enc "cert" (exp (gen) x-0) b (privk ca)))
-      (send (enc n (exp (gen) (mul x x-0)))) (recv n))
-    ((send (enc "cert" (exp (gen) x) a (privk ca))))
-    ((send (enc "cert" (exp (gen) x-0) b (privk ca))))
-    ((recv (enc "cert" (exp (gen) x) a (privk ca)))
-      (recv (enc "cert" (exp (gen) x-0) b (privk ca)))
-      (recv (enc n (exp (gen) (mul x x-0)))) (send n)))
-  (label 13)
-  (parent 7)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (ca ca) (h (exp (gen) x-0)) (x x) (n n))))
-  (origs (n (0 2))))
-
-(defskeleton staticdh1
-  (vars (n text) (a b ca name) (x x-0 rndx))
-  (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x-0)) (x x))
-  (defstrand ca 1 (p a) (ca ca) (x x))
-  (defstrand ca 1 (p b) (ca ca) (x x-0))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y x-0))
-  (defstrand ca 1 (p b) (ca ca) (x x-0))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((1 0) (3 0)) ((2 0) (0 1))
-    ((3 3) (0 3)) ((4 0) (3 1)))
-  (fn-of (owner-of (b x-0) (a x)))
-  (neq (a b))
-  (non-orig (privk ca) x x-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 1)
-    (enc "cert" (exp (gen) x-0) b (privk ca)) (3 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) x) a (privk ca)))
-      (recv (enc "cert" (exp (gen) x-0) b (privk ca)))
-      (send (enc n (exp (gen) (mul x x-0)))) (recv n))
-    ((send (enc "cert" (exp (gen) x) a (privk ca))))
-    ((send (enc "cert" (exp (gen) x-0) b (privk ca))))
-    ((recv (enc "cert" (exp (gen) x) a (privk ca)))
-      (recv (enc "cert" (exp (gen) x-0) b (privk ca)))
-      (recv (enc n (exp (gen) (mul x x-0)))) (send n))
-    ((send (enc "cert" (exp (gen) x-0) b (privk ca)))))
-  (label 14)
-  (parent 7)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (ca ca) (h (exp (gen) x-0)) (x x) (n n))))
-  (origs (n (0 2))))
-
-(defskeleton staticdh1
-  (vars (n text) (a b ca name) (x x-0 rndx))
-  (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x-0)) (x x))
-  (defstrand ca 1 (p a) (ca ca) (x x))
-  (defstrand ca 1 (p b) (ca ca) (x x-0))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x)) (y x-0))
-  (defstrand ca 1 (p a) (ca ca) (x x))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (0 1)) ((2 0) (3 1))
-    ((3 3) (0 3)) ((4 0) (3 0)))
-  (fn-of (owner-of (b x-0) (a x)))
-  (neq (a b))
-  (non-orig (privk ca) x x-0)
-  (uniq-orig n)
-  (operation encryption-test (displaced 5 2 ca 1)
-    (enc "cert" (exp (gen) x-0) b-0 (privk ca-0)) (3 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) x) a (privk ca)))
-      (recv (enc "cert" (exp (gen) x-0) b (privk ca)))
-      (send (enc n (exp (gen) (mul x x-0)))) (recv n))
-    ((send (enc "cert" (exp (gen) x) a (privk ca))))
-    ((send (enc "cert" (exp (gen) x-0) b (privk ca))))
-    ((recv (enc "cert" (exp (gen) x) a (privk ca)))
-      (recv (enc "cert" (exp (gen) x-0) b (privk ca)))
-      (recv (enc n (exp (gen) (mul x x-0)))) (send n))
-    ((send (enc "cert" (exp (gen) x) a (privk ca)))))
-  (label 15)
-  (parent 8)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (ca ca) (h (exp (gen) x-0)) (x x) (n n))))
-  (origs (n (0 2))))
-
-(defskeleton staticdh1
-  (vars (n text) (a b ca ca-0 name) (x x-0 rndx))
-  (defstrand init 4 (n n) (a a) (b b) (ca ca) (h (exp (gen) x-0)) (x x))
-  (defstrand ca 1 (p a) (ca ca) (x x))
-  (defstrand ca 1 (p b) (ca ca) (x x-0))
-  (defstrand resp 4 (n n) (a a) (b b) (ca ca-0) (h (exp (gen) x))
-    (y x-0))
-  (defstrand ca 1 (p a) (ca ca-0) (x x))
-  (defstrand ca 1 (p b) (ca ca-0) (x x-0))
-  (precedes ((0 2) (3 2)) ((1 0) (0 0)) ((2 0) (0 1)) ((3 3) (0 3))
-    ((4 0) (3 0)) ((5 0) (3 1)))
-  (fn-of (owner-of (b x-0) (a x)))
-  (neq (a b))
-  (non-orig (privk ca) (privk ca-0) x x-0)
-  (uniq-orig n)
-  (operation encryption-test (added-strand ca 1)
-    (enc "cert" (exp (gen) x-0) b (privk ca-0)) (3 1))
-  (traces
-    ((recv (enc "cert" (exp (gen) x) a (privk ca)))
-      (recv (enc "cert" (exp (gen) x-0) b (privk ca)))
-      (send (enc n (exp (gen) (mul x x-0)))) (recv n))
-    ((send (enc "cert" (exp (gen) x) a (privk ca))))
-    ((send (enc "cert" (exp (gen) x-0) b (privk ca))))
-    ((recv (enc "cert" (exp (gen) x) a (privk ca-0)))
-      (recv (enc "cert" (exp (gen) x-0) b (privk ca-0)))
-      (recv (enc n (exp (gen) (mul x x-0)))) (send n))
-    ((send (enc "cert" (exp (gen) x) a (privk ca-0))))
-    ((send (enc "cert" (exp (gen) x-0) b (privk ca-0)))))
-  (label 16)
-  (parent 8)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (ca ca) (h (exp (gen) x-0)) (x x) (n n))))
-  (origs (n (0 2))))
-
-(comment "Nothing left to do")
diff --git a/tst/station.scm b/tst/station.scm
deleted file mode 100644
--- a/tst/station.scm
+++ /dev/null
@@ -1,91 +0,0 @@
-; Station-to-station
-
-; This is an authenticated form of a Diffie-Hellman key exchange.
-
-; The file contains two different models of the station-to-station
-; protocol.  In the first, an assumption is made that *any* initiator
-; or responder properly picks a fresh random exponent and does not
-; allow it to be obtained by the adversary.
-
-; In the second, we do not include this assumption, and as a result,
-; less can be guaranteed.
-
-(herald "Station-to-station protocol" (algebra diffie-hellman))
-
-(defprotocol station-to-station diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (a b name))
-    (trace
-     (send (exp (gen) x))
-     (recv (cat (exp (gen) y)
-		(enc (enc (exp (gen) y)
-			  (exp (gen) x) (privk b))
-		     (exp (gen) (mul y x)))))
-     
-     (send (enc (enc (exp (gen) x)
-		     (exp (gen) y) (privk a))
-		(exp (gen) (mul y x)))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace
-     (recv (exp (gen) x))
-     (send (cat (exp (gen) y)
-		(enc (enc (exp (gen) y)
-			  (exp (gen) x) (privk b))
-		     (exp (gen) (mul x y)))))
-     (recv (enc (enc (exp (gen) x)
-		     (exp (gen) y) (privk a))
-		(exp (gen) (mul x y)))))
-    (uniq-gen y))
-)
-
-(defskeleton station-to-station
-  (vars (a b name))
-  (defstrand init 3 (a a) (b b))
-  (non-orig (privk b) (privk a))
-)
-
-(defskeleton station-to-station
-  (vars (a b name))
-  (defstrand resp 3 (a a) (b b))
-  (non-orig (privk a) (privk b))
-)
-
-(defprotocol station-weak diffie-hellman
-  (defrole weak-init
-    (vars (x rndx) (y expt) (a b name))
-    (trace
-     (send (exp (gen) x))
-     (recv (cat (exp (gen) y)
-		(enc (enc (exp (gen) y)
-			  (exp (gen) x) (privk b)) (exp (gen) (mul y x)))))
-     (send (enc (enc (exp (gen) x)
-		     (exp (gen) y) (privk a)) (exp (gen) (mul y x)))))
-					;(uniq-gen x)
-    )
-  (defrole weak-resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace
-     (recv (exp (gen) x))
-     (send (cat (exp (gen) y)
-		(enc (enc (exp (gen) y) (exp (gen) x) (privk b)) (exp (gen) (mul x y)))))
-     (recv (enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))))
-					;    (uniq-gen y)
-     (absent (y (exp (gen) x)))
-    )
-)
-
-(defskeleton station-weak
-  (vars (a b name) (x rndx))
-  (defstrand weak-init 3 (a a) (b b) (x x))
-  (uniq-gen x)
-  (non-orig (privk b) (privk a))
-)
-
-(defskeleton station-weak
-  (vars (a b name) (y rndx))
-  (defstrand weak-resp 3 (a a) (b b) (y y))
-  (uniq-gen y)
-  (non-orig (privk a) (privk b))
-)
diff --git a/tst/station.tst b/tst/station.tst
deleted file mode 100644
--- a/tst/station.tst
+++ /dev/null
@@ -1,663 +0,0 @@
-(herald "Station-to-station protocol" (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/station.scm")
-
-(defprotocol station-to-station diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (a b name))
-    (trace (send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace (recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x)))))
-    (uniq-gen y)
-    (absent (y (exp (gen) x)))))
-
-(defskeleton station-to-station
-  (vars (a b name) (x rndx) (y expt))
-  (defstrand init 3 (a a) (b b) (x x) (y y))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (traces
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y))))))
-  (label 0)
-  (unrealized (0 1))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (x x-0) (y x))
-  (defstrand init 3 (a b) (b b-0) (x x) (y x-0))
-  (precedes ((0 0) (1 1)) ((1 2) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x x-0)
-  (operation encryption-test (added-strand init 3)
-    (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (0 1))
-  (traces
-    ((send (exp (gen) x-0))
-      (recv
-        (cat (exp (gen) x)
-          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))
-          (exp (gen) (mul x x-0)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) x-0)
-          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-          (exp (gen) (mul x x-0))))))
-  (label 1)
-  (parent 0)
-  (unrealized (1 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (a b name) (y x rndx))
-  (defstrand init 3 (a a) (b b) (x x) (y y))
-  (defstrand resp 2 (b b) (y y) (x x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (operation encryption-test (added-strand resp 2)
-    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
-  (traces
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x)))))
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))))
-  (label 2)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (x x) (y y))))
-  (origs))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (x x-0) (y x))
-  (defstrand init 3 (a b) (b b-0) (x x) (y x-0))
-  (deflistener (exp (gen) (mul x x-0)))
-  (precedes ((0 0) (2 0)) ((1 0) (2 0)) ((1 2) (0 1)) ((2 1) (1 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x x-0)
-  (operation encryption-test (added-listener (exp (gen) (mul x x-0)))
-    (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))
-      (exp (gen) (mul x x-0))) (1 1))
-  (traces
-    ((send (exp (gen) x-0))
-      (recv
-        (cat (exp (gen) x)
-          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))
-          (exp (gen) (mul x x-0)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) x-0)
-          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-          (exp (gen) (mul x x-0)))))
-    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))
-  (label 3)
-  (parent 1)
-  (unrealized (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (x x-0) (y x))
-  (defstrand init 3 (a b) (b b-0) (x x) (y x-0))
-  (deflistener (exp (gen) (mul x x-0)))
-  (deflistener (cat (exp (gen) x) x-0))
-  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x x-0)
-  (operation nonce-test (added-listener (cat (exp (gen) x) x-0))
-    (exp (gen) (mul x x-0)) (2 0))
-  (traces
-    ((send (exp (gen) x-0))
-      (recv
-        (cat (exp (gen) x)
-          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))
-          (exp (gen) (mul x x-0)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) x-0)
-          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-          (exp (gen) (mul x x-0)))))
-    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
-    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0))))
-  (label 4)
-  (parent 3)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (x x-0) (y x))
-  (defstrand init 3 (a b) (b b-0) (x x) (y x-0))
-  (deflistener (exp (gen) (mul x x-0)))
-  (deflistener (cat (exp (gen) x-0) x))
-  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x x-0)
-  (operation nonce-test (added-listener (cat (exp (gen) x-0) x))
-    (exp (gen) (mul x x-0)) (2 0))
-  (traces
-    ((send (exp (gen) x-0))
-      (recv
-        (cat (exp (gen) x)
-          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))
-          (exp (gen) (mul x x-0)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) x-0)
-          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-          (exp (gen) (mul x x-0)))))
-    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
-    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x))))
-  (label 5)
-  (parent 3)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol station-to-station diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (a b name))
-    (trace (send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace (recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x)))))
-    (uniq-gen y)
-    (absent (y (exp (gen) x)))))
-
-(defskeleton station-to-station
-  (vars (a b name) (y rndx) (x expt))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y)
-  (traces
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x))))))
-  (label 6)
-  (unrealized (0 2))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x y rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b-0) (x x) (y y))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation encryption-test (added-strand init 3)
-    (enc (exp (gen) x) (exp (gen) y) (privk a)) (0 2))
-  (traces
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y))))))
-  (label 7)
-  (parent 6)
-  (unrealized (1 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (a b name) (y x rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b) (x x) (y y))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-      (exp (gen) (mul y x))) (1 1))
-  (traces
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x))))))
-  (label 8)
-  (parent 7)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (y y) (x x))))
-  (origs))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x y rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b-0) (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation encryption-test (added-listener (exp (gen) (mul x y)))
-    (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-      (exp (gen) (mul x y))) (1 1))
-  (traces
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))
-  (label 9)
-  (parent 7)
-  (unrealized (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x y rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b-0) (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (deflistener (cat (exp (gen) x) y))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation nonce-test (added-listener (cat (exp (gen) x) y))
-    (exp (gen) (mul x y)) (2 0))
-  (traces
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
-  (label 10)
-  (parent 9)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x y rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b-0) (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (deflistener (cat (exp (gen) y) x))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation nonce-test (added-listener (cat (exp (gen) y) x))
-    (exp (gen) (mul x y)) (2 0))
-  (traces
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
-  (label 11)
-  (parent 9)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol station-weak diffie-hellman
-  (defrole weak-init
-    (vars (x rndx) (y expt) (a b name))
-    (trace (send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y))))))
-  (defrole weak-resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace (recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x)))))
-    (absent (y (exp (gen) x)))))
-
-(defskeleton station-weak
-  (vars (a b name) (x rndx) (y expt))
-  (defstrand weak-init 3 (a a) (b b) (x x) (y y))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (traces
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y))))))
-  (label 12)
-  (unrealized (0 1))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-weak
-  (vars (a b b-0 name) (x x-0 rndx))
-  (defstrand weak-init 3 (a a) (b b) (x x-0) (y x))
-  (defstrand weak-init 3 (a b) (b b-0) (x x) (y x-0))
-  (precedes ((0 0) (1 1)) ((1 2) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x-0)
-  (operation encryption-test (added-strand weak-init 3)
-    (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (0 1))
-  (traces
-    ((send (exp (gen) x-0))
-      (recv
-        (cat (exp (gen) x)
-          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))
-          (exp (gen) (mul x x-0)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) x-0)
-          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-          (exp (gen) (mul x x-0))))))
-  (label 13)
-  (parent 12)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (x x-0) (y x))))
-  (origs))
-
-(defskeleton station-weak
-  (vars (a b name) (y x rndx))
-  (defstrand weak-init 3 (a a) (b b) (x x) (y y))
-  (defstrand weak-resp 2 (b b) (y y) (x x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (operation encryption-test (added-strand weak-resp 2)
-    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
-  (traces
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x)))))
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))))
-  (label 14)
-  (parent 12)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (x x) (y y))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol station-weak diffie-hellman
-  (defrole weak-init
-    (vars (x rndx) (y expt) (a b name))
-    (trace (send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y))))))
-  (defrole weak-resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace (recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x)))))
-    (absent (y (exp (gen) x)))))
-
-(defskeleton station-weak
-  (vars (a b name) (y rndx) (x expt))
-  (defstrand weak-resp 3 (a a) (b b) (y y) (x x))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y)
-  (traces
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x))))))
-  (label 15)
-  (unrealized (0 2))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-weak
-  (vars (a b b-0 name) (x y rndx))
-  (defstrand weak-resp 3 (a a) (b b) (y y) (x x))
-  (defstrand weak-init 3 (a a) (b b-0) (x x) (y y))
-  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y)
-  (operation encryption-test (added-strand weak-init 3)
-    (enc (exp (gen) x) (exp (gen) y) (privk a)) (0 2))
-  (traces
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y))))))
-  (label 16)
-  (parent 15)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (y y) (x x))))
-  (origs))
-
-(defskeleton station-weak
-  (vars (a b name) (y y-0 rndx))
-  (defstrand weak-resp 3 (a a) (b b) (y y-0) (x y))
-  (defstrand weak-resp 2 (b a) (y y) (x y-0))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (absent (y (exp (gen) y-0)) (y-0 (exp (gen) y)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y-0)
-  (operation encryption-test (added-strand weak-resp 2)
-    (enc (exp (gen) y) (exp (gen) y-0) (privk a)) (0 2))
-  (traces
-    ((recv (exp (gen) y))
-      (send
-        (cat (exp (gen) y-0)
-          (enc (enc (exp (gen) y-0) (exp (gen) y) (privk b))
-            (exp (gen) (mul y y-0)))))
-      (recv
-        (enc (enc (exp (gen) y) (exp (gen) y-0) (privk a))
-          (exp (gen) (mul y y-0)))))
-    ((recv (exp (gen) y-0))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) y-0) (privk a))
-            (exp (gen) (mul y y-0)))))))
-  (label 17)
-  (parent 15)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (y y-0) (x y))))
-  (origs))
-
-(comment "Nothing left to do")
diff --git a/tst/station2.scm b/tst/station2.scm
deleted file mode 100644
--- a/tst/station2.scm
+++ /dev/null
@@ -1,32 +0,0 @@
-(herald "Station-to-station protocol" (algebra diffie-hellman)
-; (limit 1)
-)
-
-(defprotocol station-to-station diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (a b name))
-    (trace
-     (send (exp (gen) x))
-     (recv (enc (exp (gen) y) (exp (gen) x) (privk b)))
-     (send (enc (enc (exp (gen) x) (exp (gen) y) (exp (gen) (mul y x))) (privk a))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace
-     (recv (exp (gen) x))
-     (send (enc (exp (gen) y) (exp (gen) x) (privk b)))
-     (recv (enc (enc (exp (gen) x) (exp (gen) y) (exp (gen) (mul x y))) (privk a))))
-    (uniq-gen y))
-)
-
-(defskeleton station-to-station
-  (vars (a b name))
-  (defstrand init 3 (a a) (b b))
-  (non-orig (privk b) (privk a))
-)
-
-(defskeleton station-to-station
-  (vars (a b name))
-  (defstrand resp 3 (a a) (b b))
-  (non-orig (privk a) (privk b))
-)
diff --git a/tst/station2.tst b/tst/station2.tst
deleted file mode 100644
--- a/tst/station2.tst
+++ /dev/null
@@ -1,133 +0,0 @@
-(herald "Station-to-station protocol" (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/station2.scm")
-
-(defprotocol station-to-station diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (a b name))
-    (trace (send (exp (gen) x))
-      (recv (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (exp (gen) (mul x y)))
-          (privk a))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace (recv (exp (gen) x))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (exp (gen) (mul y x)))
-          (privk a))))
-    (uniq-gen y)
-    (absent (y (exp (gen) x)))))
-
-(defskeleton station-to-station
-  (vars (a b name) (x rndx) (y expt))
-  (defstrand init 3 (a a) (b b) (x x) (y y))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (traces
-    ((send (exp (gen) x))
-      (recv (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (exp (gen) (mul x y)))
-          (privk a)))))
-  (label 0)
-  (unrealized (0 1))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (a b name) (y x rndx))
-  (defstrand init 3 (a a) (b b) (x x) (y y))
-  (defstrand resp 2 (b b) (y y) (x x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (operation encryption-test (added-strand resp 2)
-    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
-  (traces
-    ((send (exp (gen) x))
-      (recv (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (exp (gen) (mul y x)))
-          (privk a))))
-    ((recv (exp (gen) x))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk b)))))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (x x) (y y))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol station-to-station diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (a b name))
-    (trace (send (exp (gen) x))
-      (recv (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (exp (gen) (mul x y)))
-          (privk a))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace (recv (exp (gen) x))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (exp (gen) (mul y x)))
-          (privk a))))
-    (uniq-gen y)
-    (absent (y (exp (gen) x)))))
-
-(defskeleton station-to-station
-  (vars (a b name) (y rndx) (x expt))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y)
-  (traces
-    ((recv (exp (gen) x))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (exp (gen) (mul y x)))
-          (privk a)))))
-  (label 2)
-  (unrealized (0 2))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x y rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b-0) (x x) (y y))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation encryption-test (added-strand init 3)
-    (enc (enc (exp (gen) x) (exp (gen) y) (exp (gen) (mul x y)))
-      (privk a)) (0 2))
-  (traces
-    ((recv (exp (gen) x))
-      (send (enc (exp (gen) y) (exp (gen) x) (privk b)))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (exp (gen) (mul x y)))
-          (privk a))))
-    ((send (exp (gen) x))
-      (recv (enc (exp (gen) y) (exp (gen) x) (privk b-0)))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (exp (gen) (mul x y)))
-          (privk a)))))
-  (label 3)
-  (parent 2)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (y y) (x x))))
-  (origs))
-
-(comment "Nothing left to do")
diff --git a/tst/station_newhope.scm b/tst/station_newhope.scm
deleted file mode 100644
--- a/tst/station_newhope.scm
+++ /dev/null
@@ -1,105 +0,0 @@
-; Station-to-station
-
-; This is an authenticated form of a Diffie-Hellman key exchange.
-
-; The file contains two different models of the station-to-station
-; protocol.  In the first, an assumption is made that *any* initiator
-; or responder properly picks a fresh random exponent and does not
-; allow it to be obtained by the adversary.
-
-; In the second, we do not include this assumption, and as a result,
-; less can be guaranteed.
-
-(herald "Station-to-station protocol" (algebra diffie-hellman))
-
-(defmacro (nh_public x1)
-  (exp (gen) x1))
-(defmacro (nh_share x1 x2)
-  (hash "share" (exp (gen) (mul x1 x2)) x1))
-(defmacro (nh_hint x1 x2)
-  (hash "hint" (nh_share x1 x2)))
-(defmacro (nh_key_hint x1 x2 h)
-  (hash "key" (nh_share x1 x2) h))
-(defmacro (nh_key x1 x2)
-  (nh_key_hint x1 x2 (nh_hint x1 x2)))
-
-(defprotocol station-to-station diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (i r name) (hint mesg))
-    (trace
-     (send (nh_public xi))
-     (recv (cat (nh_public xr) hint
-		(enc (enc (nh_public xr) (nh_public xi) hint (privk r)) (nh_key_hint xi xr hint))))
-     (send (cat (enc (enc (nh_public xi) (nh_public xr) hint (privk i)) (nh_key_hint xr xi hint))
-		(enc (enc (nh_public xi) (nh_public xr) hint (privk i)) (nh_key_hint xi xr hint))))
-     )
-    )
-  (defrole resp
-    (vars (xr rndx) (xi expt) (i r name))
-    (trace
-     (recv (nh_public xi))
-     (send (cat (nh_public xr) (nh_hint xr xi)
-		(enc (enc (nh_public xr) (nh_public xi) (nh_hint xr xi) (privk r)) (nh_key xr xi))
-		(enc (enc (nh_public xr) (nh_public xi) (nh_hint xr xi) (privk r)) (nh_key_hint xi xr (nh_hint xr xi)))))
-     (recv (enc (enc (nh_public xi) (nh_public xr) (nh_hint xr xi) (privk i)) (nh_key xr xi))))
-    )
-  )
-
-(defskeleton station-to-station
-  (vars (i r name) (xi rndx))
-  (defstrand init 3 (i i) (r r) (xi xi))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xi)
-)
-
-(defskeleton station-to-station
-  (vars (i r name) (xr rndx) (xi expt))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))
-  (non-orig (privk i) (privk r))
-  (absent (xr xi))
-  (uniq-gen xr)
-  )
-
-(defskeleton station-to-station
-  (vars (i r name) (xr rndx) (xi expt))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-)
-
-(defprotocol station-nohint diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (i r name) (hint mesg))
-    (trace
-     (send (nh_public xi))
-     (recv (cat (nh_public xr) hint
-		(enc (enc "resp" (nh_public xr) (nh_public xi) (privk r)) (nh_key_hint xi xr hint))))
-     (send (cat (enc (enc (nh_public xi) (nh_public xr) (privk i)) (nh_key_hint xr xi hint))
-		(enc (enc (nh_public xi) (nh_public xr) (privk i)) (nh_key_hint xi xr hint))))
-     )
-    )
-  (defrole resp
-    (vars (xr rndx) (xi expt) (i r name))
-    (trace
-     (recv (nh_public xi))
-     (send (cat (nh_public xr) (nh_hint xr xi)
-		(enc (enc "resp" (nh_public xr) (nh_public xi) (privk r)) (nh_key xr xi))
-		(enc (enc "resp" (nh_public xr) (nh_public xi) (privk r)) (nh_key_hint xi xr (nh_hint xr xi)))))
-     (recv (enc (enc (nh_public xi) (nh_public xr) (privk i)) (nh_key xr xi))))
-    )
-  )
-
-(defskeleton station-nohint
-  (vars (i r name) (xi rndx))
-  (defstrand init 3 (i i) (r r) (xi xi))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xi)
-)
-
-(defskeleton station-nohint
-  (vars (i r name) (xr rndx) (xi expt))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))
-  (non-orig (privk i) (privk r))
-  (absent (xr xi))
-  (uniq-gen xr)
-)
diff --git a/tst/station_newhope.tst b/tst/station_newhope.tst
deleted file mode 100644
--- a/tst/station_newhope.tst
+++ /dev/null
@@ -1,5683 +0,0 @@
-(herald "Station-to-station protocol" (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/station_newhope.scm")
-
-(defprotocol station-to-station diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (i r name) (hint mesg))
-    (trace (send (exp (gen) xi))
-      (recv
-        (cat (exp (gen) xr) hint
-          (enc (enc (exp (gen) xr) (exp (gen) xi) hint (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))
-          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (i r name))
-    (trace (recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi)) xr))))))))
-
-(defskeleton station-to-station
-  (vars (hint mesg) (i r name) (xi rndx) (xr expt))
-  (defstrand init 3 (hint hint) (i i) (r r) (xi xi) (xr xr))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xi)
-  (traces
-    ((send (exp (gen) xi))
-      (recv
-        (cat (exp (gen) xr) hint
-          (enc (enc (exp (gen) xr) (exp (gen) xi) hint (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))
-          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))))
-  (label 0)
-  (unrealized (0 1))
-  (origs)
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (hint mesg) (i r r-0 name) (xi xi-0 rndx))
-  (defstrand init 3 (hint hint) (i i) (r r) (xi xi-0) (xr xi))
-  (defstrand init 3 (hint hint) (i r) (r r-0) (xi xi) (xr xi-0))
-  (precedes ((0 0) (1 1)) ((1 2) (0 1)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xi-0)
-  (operation encryption-test (added-strand init 3)
-    (enc (enc (exp (gen) xi) (exp (gen) xi-0) hint (privk r))
-      (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0) hint))
-    (0 1))
-  (traces
-    ((send (exp (gen) xi-0))
-      (recv
-        (cat (exp (gen) xi) hint
-          (enc (enc (exp (gen) xi) (exp (gen) xi-0) hint (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint))))
-      (send
-        (cat
-          (enc (enc (exp (gen) xi-0) (exp (gen) xi) hint (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))
-          (enc (enc (exp (gen) xi-0) (exp (gen) xi) hint (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint)))))
-    ((send (exp (gen) xi))
-      (recv
-        (cat (exp (gen) xi-0) hint
-          (enc (enc (exp (gen) xi-0) (exp (gen) xi) hint (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))
-      (send
-        (cat
-          (enc (enc (exp (gen) xi) (exp (gen) xi-0) hint (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi-0)
-              hint))
-          (enc (enc (exp (gen) xi) (exp (gen) xi-0) hint (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi-0)) xi)
-              hint))))))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((i i) (r r) (xi xi-0) (xr xi) (hint hint))))
-  (origs))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr xi rndx))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (i i)
-    (r r) (xi xi) (xr xr))
-  (defstrand resp 2 (r r) (xr xr) (xi xi))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xi)
-  (operation encryption-test (added-strand resp 2)
-    (enc
-      (enc (exp (gen) xr) (exp (gen) xi)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-        (privk r))
-      (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))) (0 1))
-  (traces
-    ((send (exp (gen) xi))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (send
-        (cat
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))))
-  (label 2)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((i i) (r r) (xi xi) (xr xr)
-        (hint
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-  (origs))
-
-(defskeleton station-to-station
-  (vars (hint mesg) (i r name) (xi rndx) (xr expt))
-  (defstrand init 3 (hint hint) (i i) (r r) (xi xi) (xr xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xi)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-    (enc (enc (exp (gen) xr) (exp (gen) xi) hint (privk r))
-      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-    (0 1))
-  (traces
-    ((send (exp (gen) xi))
-      (recv
-        (cat (exp (gen) xr) hint
-          (enc (enc (exp (gen) xr) (exp (gen) xi) hint (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))
-          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint)))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))))
-  (label 3)
-  (parent 0)
-  (unrealized (0 1) (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (hint mesg) (i r name) (xi rndx) (xr expt))
-  (defstrand init 3 (hint hint) (i i) (r r) (xi xi) (xr xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xi)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint) (1 0))
-  (traces
-    ((send (exp (gen) xi))
-      (recv
-        (cat (exp (gen) xr) hint
-          (enc (enc (exp (gen) xr) (exp (gen) xi) hint (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))
-          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint)))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))))
-  (label 4)
-  (parent 3)
-  (unrealized (0 1) (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (hint mesg) (i r name) (xi rndx) (xr expt))
-  (defstrand init 3 (hint hint) (i i) (r r) (xi xi) (xr xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xr)) xi))
-  (precedes ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xi)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xr)) xi))
-    (hash "share" (exp (gen) (mul xi xr)) xi) (2 0))
-  (traces
-    ((send (exp (gen) xi))
-      (recv
-        (cat (exp (gen) xr) hint
-          (enc (enc (exp (gen) xr) (exp (gen) xi) hint (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))
-          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint)))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-      (send (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xr)) xi))
-      (send (cat "share" (exp (gen) (mul xi xr)) xi))))
-  (label 5)
-  (parent 4)
-  (unrealized (0 1) (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol station-to-station diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (i r name) (hint mesg))
-    (trace (send (exp (gen) xi))
-      (recv
-        (cat (exp (gen) xr) hint
-          (enc (enc (exp (gen) xr) (exp (gen) xi) hint (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))
-          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (i r name))
-    (trace (recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi)) xr))))))))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr rndx) (xi expt))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))
-  (absent (xr xi))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-  (label 6)
-  (unrealized (0 2))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xi xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (i i)
-    (r r-0) (xi xi) (xr xr))
-  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
-  (absent (xr xi))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test (added-strand init 3)
-    (enc
-      (enc (exp (gen) xi) (exp (gen) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-        (privk i))
-      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr)))) (0 2))
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((send (exp (gen) xi))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))))
-  (label 7)
-  (parent 6)
-  (unrealized)
-  (shape)
-  (maps ((0) ((i i) (r r) (xr xr) (xi xi))))
-  (origs))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr rndx) (xi expt))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (absent (xr xi))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-    (enc
-      (enc (exp (gen) xi) (exp (gen) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-        (privk i))
-      (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))) (0 2))
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-  (label 8)
-  (parent 6)
-  (unrealized (0 2) (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr rndx) (xi expt))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))
-  (absent (xr xi))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (1 0))
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-  (label 9)
-  (parent 8)
-  (unrealized (0 2) (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr rndx) (xi expt))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-  (deflistener (cat "share" (exp (gen) (mul xr xi)) xr))
-  (precedes ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0)))
-  (absent (xr xi))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr xi)) xr))
-    (hash "share" (exp (gen) (mul xr xi)) xr) (2 0))
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))
-    ((recv (cat "share" (exp (gen) (mul xr xi)) xr))
-      (send (cat "share" (exp (gen) (mul xr xi)) xr))))
-  (label 10)
-  (parent 9)
-  (unrealized (0 2) (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol station-to-station diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (i r name) (hint mesg))
-    (trace (send (exp (gen) xi))
-      (recv
-        (cat (exp (gen) xr) hint
-          (enc (enc (exp (gen) xr) (exp (gen) xi) hint (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))
-          (enc (enc (exp (gen) xi) (exp (gen) xr) hint (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (i r name))
-    (trace (recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi)) xr))))))))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr rndx) (xi expt))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-  (label 11)
-  (unrealized (0 2))
-  (origs)
-  (comment "5 in cohort - 5 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xi xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (i i)
-    (r r-0) (xi xi) (xr xr))
-  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test (added-strand init 3)
-    (enc
-      (enc (exp (gen) xi) (exp (gen) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-        (privk i))
-      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr)))) (0 2))
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((send (exp (gen) xi))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))))
-  (label 12)
-  (parent 11)
-  (unrealized)
-  (shape)
-  (maps ((0) ((i i) (r r) (xr xr) (xi xi))))
-  (origs))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)
-    (r r-0) (xi xr) (xr xr))
-  (precedes ((1 0) (0 0)) ((1 2) (0 2)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test (added-strand init 3)
-    (enc
-      (enc (exp (gen) xr) (exp (gen) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-        (privk i))
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (0 2))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((send (exp (gen) xr))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (send
-        (cat
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))))
-  (label 13)
-  (parent 11)
-  (unrealized (1 1))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (r name) (xr rndx))
-  (defstrand resp 3 (i r) (r r) (xr xr) (xi xr))
-  (non-orig (privk r))
-  (uniq-gen xr)
-  (operation encryption-test (displaced 1 0 resp 2)
-    (enc
-      (enc (exp (gen) xr) (exp (gen) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-        (privk i))
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (0 2))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk r))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-  (label 14)
-  (parent 11)
-  (unrealized (0 0))
-  (origs)
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (precedes ((1 1) (0 2)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test (added-strand resp 2)
-    (enc
-      (enc (exp (gen) xr) (exp (gen) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-        (privk i))
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (0 2))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))))
-  (label 15)
-  (parent 11)
-  (unrealized (0 0) (1 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr rndx) (xi expt))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-    (enc
-      (enc (exp (gen) xi) (exp (gen) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-        (privk i))
-      (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))) (0 2))
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-  (label 16)
-  (parent 11)
-  (unrealized (0 2) (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)
-    (r r-0) (xi xr) (xr xr))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)) (1 1))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((send (exp (gen) xr))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (send
-        (cat
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))))
-  (label 17)
-  (parent 13)
-  (unrealized (1 1))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 r-1 name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)
-    (r r-0) (xi xr) (xr xr))
-  (defstrand resp 2 (r r-1) (xr xr) (xi xr))
-  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((1 2) (0 2)) ((2 1) (1 1)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test (added-strand resp 2)
-    (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)) (1 1))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((send (exp (gen) xr))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (send
-        (cat
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-1))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-1))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))))
-  (label 18)
-  (parent 13)
-  (unrealized (1 1))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)
-    (r r-0) (xi xr) (xr xr))
-  (deflistener (cat "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))
-  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((1 2) (0 2)) ((2 1) (1 1)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener
-      (cat "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))
-    (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)) (1 1))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((send (exp (gen) xr))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (send
-        (cat
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))
-      (send (cat "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))
-  (label 19)
-  (parent 13)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (r name) (xi rndx))
-  (defstrand resp 3 (i r) (r r) (xr xi) (xi xi))
-  (defstrand init 1 (xi xi))
-  (precedes ((1 0) (0 0)))
-  (non-orig (privk r))
-  (uniq-gen xi)
-  (operation nonce-test (added-strand init 1) (exp (gen) xi) (0 0))
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xi)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xi)) xi))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xi)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-            (privk r))
-          (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))))
-    ((send (exp (gen) xi))))
-  (label 20)
-  (parent 14)
-  (unrealized)
-  (shape)
-  (maps ((0) ((i r) (r r) (xr xi) (xi xi))))
-  (origs))
-
-(defskeleton station-to-station
-  (vars (r r-0 name) (xi expt) (xr rndx))
-  (defstrand resp 3 (i r) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r r-0) (xr xr) (xi xi))
-  (precedes ((1 1) (0 0)))
-  (non-orig (privk r))
-  (uniq-gen xr)
-  (operation nonce-test (added-strand resp 2) (exp (gen) xr) (0 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk r))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))))
-  (label 21)
-  (parent 14)
-  (unrealized)
-  (shape)
-  (maps ((0) ((i r) (r r) (xr xr) (xi xr))))
-  (origs))
-
-(defskeleton station-to-station
-  (vars (r name) (xr rndx) (w expt))
-  (defstrand resp 3 (i r) (r r) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) (mul xr (rec w))) w))
-  (precedes ((1 1) (0 0)))
-  (non-orig (privk r))
-  (uniq-gen xr)
-  (precur (1 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul xr (rec w))) w)) (exp (gen) xr)
-    (0 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk r))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (cat (exp (gen) (mul xr (rec w))) w))
-      (send (cat (exp (gen) (mul xr (rec w))) w))))
-  (label 22)
-  (parent 14)
-  (unrealized (1 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xi rndx))
-  (defstrand resp 3 (i i) (r r) (xr xi) (xi xi))
-  (defstrand resp 2 (r i) (xr xi) (xi xi))
-  (defstrand init 1 (xi xi))
-  (precedes ((1 1) (0 2)) ((2 0) (0 0)) ((2 0) (1 0)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xi)
-  (operation nonce-test (added-strand init 1) (exp (gen) xi) (1 0))
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xi)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xi)) xi))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xi)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xi)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xi)) xi)))))))
-    ((send (exp (gen) xi))))
-  (label 23)
-  (parent 15)
-  (unrealized)
-  (shape)
-  (maps ((0) ((i i) (r r) (xr xi) (xi xi))))
-  (origs))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation nonce-test (displaced 2 0 resp 2) (exp (gen) xr-0) (1 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))))
-  (label 24)
-  (parent 15)
-  (unrealized (0 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xi expt) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (defstrand resp 2 (r r-0) (xr xr) (xi xi))
-  (precedes ((1 1) (0 2)) ((2 1) (0 0)) ((2 1) (1 0)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation nonce-test (added-strand resp 2) (exp (gen) xr) (1 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))))
-  (label 25)
-  (parent 15)
-  (unrealized)
-  (shape)
-  (maps ((0) ((i i) (r r) (xr xr) (xi xr))))
-  (origs))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr rndx) (w expt))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) (mul xr (rec w))) w))
-  (precedes ((1 1) (0 2)) ((2 1) (1 0)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (precur (2 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul xr (rec w))) w)) (exp (gen) xr)
-    (1 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) (mul xr (rec w))) w))
-      (send (cat (exp (gen) (mul xr (rec w))) w))))
-  (label 26)
-  (parent 15)
-  (unrealized (0 0) (2 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr rndx) (xi expt))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (1 0))
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-  (label 27)
-  (parent 16)
-  (unrealized (0 2) (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)
-    (r r) (xi xr) (xr xr))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc
-      (enc (exp (gen) xr) (exp (gen) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-        (privk r-0))
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (1 1))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((send (exp (gen) xr))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (send
-        (cat
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))))
-  (label 28)
-  (parent 17)
-  (unrealized)
-  (shape)
-  (maps ((0) ((i i) (r r) (xr xr) (xi xr))))
-  (origs))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)
-    (r r-0) (xi xr) (xr xr))
-  (defstrand resp 2 (r r-0) (xr xr) (xi xr))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 2) (0 2))
-    ((2 1) (1 1)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test (added-strand resp 2)
-    (enc
-      (enc (exp (gen) xr) (exp (gen) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-        (privk r-0))
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (1 1))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((send (exp (gen) xr))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (send
-        (cat
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))))
-  (label 29)
-  (parent 17)
-  (seen 32)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)
-    (r r-0) (xi xr) (xr xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 2) (0 2))
-    ((2 1) (1 1)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-    (enc
-      (enc (exp (gen) xr) (exp (gen) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-        (privk r-0))
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (1 1))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((send (exp (gen) xr))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (send
-        (cat
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-  (label 30)
-  (parent 17)
-  (unrealized (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)
-    (r r) (xi xr) (xr xr))
-  (defstrand resp 2 (r r-0) (xr xr) (xi xr))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 0) (2 0)) ((1 2) (0 2))
-    ((2 1) (1 1)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test (displaced 3 0 resp 2)
-    (enc
-      (enc (exp (gen) xr) (exp (gen) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-        (privk r-1))
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (1 1))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((send (exp (gen) xr))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (send
-        (cat
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))))
-  (label 31)
-  (parent 18)
-  (seen 28)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)
-    (r r-0) (xi xr) (xr xr))
-  (defstrand resp 2 (r r-0) (xr xr) (xi xr))
-  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((1 2) (0 2)) ((2 1) (1 1)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test (displaced 3 2 resp 2)
-    (enc
-      (enc (exp (gen) xr) (exp (gen) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-        (privk r-1))
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (1 1))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((send (exp (gen) xr))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (send
-        (cat
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))))
-  (label 32)
-  (parent 18)
-  (unrealized)
-  (shape)
-  (maps ((0) ((i i) (r r) (xr xr) (xi xr))))
-  (origs))
-
-(defskeleton station-to-station
-  (vars (i r r-0 r-1 name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)
-    (r r-0) (xi xr) (xr xr))
-  (defstrand resp 2 (r r-1) (xr xr) (xi xr))
-  (defstrand resp 2 (r r-0) (xr xr) (xi xr))
-  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0)) ((1 2) (0 2))
-    ((2 1) (1 1)) ((3 1) (1 1)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test (added-strand resp 2)
-    (enc
-      (enc (exp (gen) xr) (exp (gen) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-        (privk r-0))
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (1 1))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((send (exp (gen) xr))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (send
-        (cat
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-1))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-1))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))))
-  (label 33)
-  (parent 18)
-  (seen 32)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 r-1 name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)
-    (r r-0) (xi xr) (xr xr))
-  (defstrand resp 2 (r r-1) (xr xr) (xi xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (3 0)) ((1 2) (0 2))
-    ((2 1) (1 1)) ((3 1) (1 1)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-    (enc
-      (enc (exp (gen) xr) (exp (gen) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-        (privk r-0))
-      (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))) (1 1))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((send (exp (gen) xr))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (send
-        (cat
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-1))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-1))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-  (label 34)
-  (parent 18)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)
-    (r r-0) (xi xr) (xr xr))
-  (deflistener (cat "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))
-  (deflistener (cat "share" (exp (gen) (mul xr xr)) xr))
-  (precedes ((1 0) (0 0)) ((1 0) (3 0)) ((1 2) (0 2)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr xr)) xr))
-    (hash "share" (exp (gen) (mul xr xr)) xr) (2 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((send (exp (gen) xr))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (send
-        (cat
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))
-      (send (cat "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-    ((recv (cat "share" (exp (gen) (mul xr xr)) xr))
-      (send (cat "share" (exp (gen) (mul xr xr)) xr))))
-  (label 35)
-  (parent 19)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (r name) (xr rndx))
-  (defstrand resp 3 (i r) (r r) (xr xr) (xi xr))
-  (deflistener (cat (gen) xr))
-  (precedes ((1 1) (0 0)))
-  (non-orig (privk r))
-  (uniq-gen xr)
-  (precur (1 0))
-  (operation nonce-test (contracted (xr-0 xr) (w xr)) (gen) (1 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk r))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (cat (gen) xr)) (send (cat (gen) xr))))
-  (label 36)
-  (parent 22)
-  (unrealized (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (r name) (xr xi rndx))
-  (defstrand resp 3 (i r) (r r) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xi) (mul xr (rec xi))))
-  (defstrand init 1 (xi xi))
-  (precedes ((1 1) (0 0)) ((2 0) (1 0)))
-  (non-orig (privk r))
-  (precur (1 0))
-  (uniq-gen xr)
-  (operation nonce-test (added-strand init 1) (exp (gen) xi) (1 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk r))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (cat (exp (gen) xi) (mul xr (rec xi))))
-      (send (cat (exp (gen) xi) (mul xr (rec xi)))))
-    ((send (exp (gen) xi))))
-  (label 37)
-  (parent 22)
-  (unrealized (0 0) (1 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (r r-0 name) (xi expt) (xr xr-0 rndx))
-  (defstrand resp 3 (i r) (r r) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xr-0) (mul xr (rec xr-0))))
-  (defstrand resp 2 (r r-0) (xr xr-0) (xi xi))
-  (precedes ((1 1) (0 0)) ((2 1) (1 0)))
-  (non-orig (privk r))
-  (precur (1 0))
-  (uniq-gen xr)
-  (operation nonce-test (added-strand resp 2) (exp (gen) xr-0) (1 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk r))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (cat (exp (gen) xr-0) (mul xr (rec xr-0))))
-      (send (cat (exp (gen) xr-0) (mul xr (rec xr-0)))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc
-            (enc (exp (gen) xr-0) (exp (gen) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc
-            (enc (exp (gen) xr-0) (exp (gen) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))))
-  (label 38)
-  (parent 22)
-  (unrealized (0 0) (1 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xi rndx))
-  (defstrand resp 3 (i i) (r r) (xr xi) (xi xi))
-  (defstrand resp 2 (r i) (xr xi) (xi xi))
-  (defstrand init 1 (xi xi))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 0) (0 0)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xi)
-  (operation nonce-test (added-strand init 1) (exp (gen) xi) (0 0))
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xi)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xi)) xi))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xi)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xi)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xi)) xi)))))))
-    ((send (exp (gen) xi))))
-  (label 39)
-  (parent 24)
-  (seen 23)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xi expt) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (defstrand resp 2 (r r-0) (xr xr) (xi xi))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 0)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation nonce-test (added-strand resp 2) (exp (gen) xr) (0 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))))
-  (label 40)
-  (parent 24)
-  (seen 25)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr rndx) (w expt))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) (mul xr (rec w))) w))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 0)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (precur (2 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul xr (rec w))) w)) (exp (gen) xr)
-    (0 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) (mul xr (rec w))) w))
-      (send (cat (exp (gen) (mul xr (rec w))) w))))
-  (label 41)
-  (parent 24)
-  (unrealized (2 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (gen) xr))
-  (precedes ((1 1) (0 2)) ((2 1) (1 0)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (precur (2 0))
-  (operation nonce-test (contracted (xr-0 xr) (w xr)) (gen) (2 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (gen) xr)) (send (cat (gen) xr))))
-  (label 42)
-  (parent 26)
-  (unrealized (0 0) (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr xi rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xi) (mul xr (rec xi))))
-  (defstrand init 1 (xi xi))
-  (precedes ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (2 0)))
-  (non-orig (privk i) (privk r))
-  (precur (2 0))
-  (uniq-gen xr)
-  (operation nonce-test (added-strand init 1) (exp (gen) xi) (2 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) xi) (mul xr (rec xi))))
-      (send (cat (exp (gen) xi) (mul xr (rec xi)))))
-    ((send (exp (gen) xi))))
-  (label 43)
-  (parent 26)
-  (unrealized (0 0) (1 0) (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xr) (one)))
-  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))
-  (non-orig (privk i) (privk r))
-  (precur (2 0))
-  (uniq-gen xr)
-  (operation nonce-test (displaced 3 0 resp 2) (exp (gen) xr-0) (2 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) xr) (one)))
-      (send (cat (exp (gen) xr) (one)))))
-  (label 44)
-  (parent 26)
-  (unrealized (0 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xi expt) (xr xr-0 rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xr-0) (mul xr (rec xr-0))))
-  (defstrand resp 2 (r r-0) (xr xr-0) (xi xi))
-  (precedes ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0)))
-  (non-orig (privk i) (privk r))
-  (precur (2 0))
-  (uniq-gen xr)
-  (operation nonce-test (added-strand resp 2) (exp (gen) xr-0) (2 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) xr-0) (mul xr (rec xr-0))))
-      (send (cat (exp (gen) xr-0) (mul xr (rec xr-0)))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc
-            (enc (exp (gen) xr-0) (exp (gen) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc
-            (enc (exp (gen) xr-0) (exp (gen) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))))
-  (label 45)
-  (parent 26)
-  (unrealized (0 0) (1 0) (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr rndx) (xi expt))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-  (deflistener (cat "share" (exp (gen) (mul xr xi)) xr))
-  (precedes ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr xi)) xr))
-    (hash "share" (exp (gen) (mul xr xi)) xr) (2 0))
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))
-    ((recv (cat "share" (exp (gen) (mul xr xi)) xr))
-      (send (cat "share" (exp (gen) (mul xr xi)) xr))))
-  (label 46)
-  (parent 27)
-  (unrealized (0 2) (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)
-    (r r-0) (xi xr) (xr xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 0) (3 0)) ((1 2) (0 2))
-    ((2 1) (1 1)) ((3 1) (2 0)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (2 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((send (exp (gen) xr))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (send
-        (cat
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-  (label 47)
-  (parent 30)
-  (unrealized (3 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 r-1 name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)
-    (r r-0) (xi xr) (xr xr))
-  (defstrand resp 2 (r r-1) (xr xr) (xi xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (4 0)) ((1 2) (0 2))
-    ((2 1) (1 1)) ((3 1) (1 1)) ((4 1) (3 0)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (3 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((send (exp (gen) xr))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (send
-        (cat
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-1))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-1))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-  (label 48)
-  (parent 34)
-  (unrealized (4 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (r name) (xi rndx))
-  (defstrand resp 3 (i r) (r r) (xr xi) (xi xi))
-  (deflistener (cat (exp (gen) xi) (one)))
-  (defstrand init 1 (xi xi))
-  (precedes ((1 1) (0 0)) ((2 0) (1 0)))
-  (non-orig (privk r))
-  (precur (1 0))
-  (uniq-gen xi)
-  (operation nonce-test (contracted (xr xi) (xi-0 xi)) (one) (1 0))
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xi)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xi)) xi))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xi)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-            (privk r))
-          (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))))
-    ((recv (cat (exp (gen) xi) (one)))
-      (send (cat (exp (gen) xi) (one)))) ((send (exp (gen) xi))))
-  (label 49)
-  (parent 37)
-  (seen 20)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (r name) (xr xi rndx))
-  (defstrand resp 3 (i r) (r r) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xi) (mul xr (rec xi))))
-  (defstrand init 1 (xi xi))
-  (deflistener xr)
-  (precedes ((1 1) (0 0)) ((2 0) (1 0)) ((3 1) (1 0)))
-  (non-orig (privk r))
-  (precur (1 0))
-  (uniq-gen xr)
-  (operation nonce-test (added-listener xr) (mul xr (rec xi)) (1 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk r))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (cat (exp (gen) xi) (mul xr (rec xi))))
-      (send (cat (exp (gen) xi) (mul xr (rec xi)))))
-    ((send (exp (gen) xi))) ((recv xr) (send xr)))
-  (label 50)
-  (parent 37)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (r r-0 name) (xi expt) (xr rndx))
-  (defstrand resp 3 (i r) (r r) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xr) (one)))
-  (defstrand resp 2 (r r-0) (xr xr) (xi xi))
-  (precedes ((1 1) (0 0)) ((2 1) (1 0)))
-  (non-orig (privk r))
-  (precur (1 0))
-  (uniq-gen xr)
-  (operation nonce-test (contracted (xr-0 xr) (xr-1 xr)) (one) (1 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk r))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (cat (exp (gen) xr) (one)))
-      (send (cat (exp (gen) xr) (one))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))))
-  (label 51)
-  (parent 38)
-  (seen 21)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (r r-0 name) (xi expt) (xr xr-0 rndx))
-  (defstrand resp 3 (i r) (r r) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xr-0) (mul xr (rec xr-0))))
-  (defstrand resp 2 (r r-0) (xr xr-0) (xi xi))
-  (deflistener xr)
-  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (1 0)))
-  (non-orig (privk r))
-  (precur (1 0))
-  (uniq-gen xr)
-  (operation nonce-test (added-listener xr) (mul xr (rec xr-0)) (1 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk r))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (cat (exp (gen) xr-0) (mul xr (rec xr-0))))
-      (send (cat (exp (gen) xr-0) (mul xr (rec xr-0)))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc
-            (enc (exp (gen) xr-0) (exp (gen) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc
-            (enc (exp (gen) xr-0) (exp (gen) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))
-    ((recv xr) (send xr)))
-  (label 52)
-  (parent 38)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (gen) xr))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 0)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (precur (2 0))
-  (operation nonce-test (contracted (xr-0 xr) (w xr)) (gen) (2 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (gen) xr)) (send (cat (gen) xr))))
-  (label 53)
-  (parent 41)
-  (unrealized (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr xi rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xi) (mul xr (rec xi))))
-  (defstrand init 1 (xi xi))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 0)) ((3 0) (2 0)))
-  (non-orig (privk i) (privk r))
-  (precur (2 0))
-  (uniq-gen xr)
-  (operation nonce-test (added-strand init 1) (exp (gen) xi) (2 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) xi) (mul xr (rec xi))))
-      (send (cat (exp (gen) xi) (mul xr (rec xi)))))
-    ((send (exp (gen) xi))))
-  (label 54)
-  (parent 41)
-  (unrealized (0 0) (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xi expt) (xr xr-0 rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xr-0) (mul xr (rec xr-0))))
-  (defstrand resp 2 (r r-0) (xr xr-0) (xi xi))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 0)) ((3 1) (2 0)))
-  (non-orig (privk i) (privk r))
-  (precur (2 0))
-  (uniq-gen xr)
-  (operation nonce-test (added-strand resp 2) (exp (gen) xr-0) (2 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) xr-0) (mul xr (rec xr-0))))
-      (send (cat (exp (gen) xr-0) (mul xr (rec xr-0)))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc
-            (enc (exp (gen) xr-0) (exp (gen) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc
-            (enc (exp (gen) xr-0) (exp (gen) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))))
-  (label 55)
-  (parent 41)
-  (unrealized (0 0) (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xi rndx))
-  (defstrand resp 3 (i i) (r r) (xr xi) (xi xi))
-  (defstrand resp 2 (r i) (xr xi) (xi xi))
-  (deflistener (cat (exp (gen) xi) (one)))
-  (defstrand init 1 (xi xi))
-  (precedes ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0)) ((3 0) (2 0)))
-  (non-orig (privk i) (privk r))
-  (precur (2 0))
-  (uniq-gen xi)
-  (operation nonce-test (contracted (xr xi) (xi-0 xi)) (one) (2 0))
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xi)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xi)) xi))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xi)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xi)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xi)) xi)))))))
-    ((recv (cat (exp (gen) xi) (one)))
-      (send (cat (exp (gen) xi) (one)))) ((send (exp (gen) xi))))
-  (label 56)
-  (parent 43)
-  (seen 23)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr xi rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xi) (mul xr (rec xi))))
-  (defstrand init 1 (xi xi))
-  (deflistener xr)
-  (precedes ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (2 0)) ((4 1) (2 0)))
-  (non-orig (privk i) (privk r))
-  (precur (2 0))
-  (uniq-gen xr)
-  (operation nonce-test (added-listener xr) (mul xr (rec xi)) (2 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) xi) (mul xr (rec xi))))
-      (send (cat (exp (gen) xi) (mul xr (rec xi)))))
-    ((send (exp (gen) xi))) ((recv xr) (send xr)))
-  (label 57)
-  (parent 43)
-  (unrealized (0 0) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xi rndx))
-  (defstrand resp 3 (i i) (r r) (xr xi) (xi xi))
-  (defstrand resp 2 (r i) (xr xi) (xi xi))
-  (deflistener (cat (exp (gen) xi) (one)))
-  (defstrand init 1 (xi xi))
-  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 0) (0 0)))
-  (non-orig (privk i) (privk r))
-  (precur (2 0))
-  (uniq-gen xi)
-  (operation nonce-test (added-strand init 1) (exp (gen) xi) (0 0))
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xi)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xi)) xi))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xi)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xi)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xi)) xi)))))))
-    ((recv (cat (exp (gen) xi) (one)))
-      (send (cat (exp (gen) xi) (one)))) ((send (exp (gen) xi))))
-  (label 58)
-  (parent 44)
-  (seen 39)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xi expt) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xr) (one)))
-  (defstrand resp 2 (r r-0) (xr xr) (xi xi))
-  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0)))
-  (non-orig (privk i) (privk r))
-  (precur (2 0))
-  (uniq-gen xr)
-  (operation nonce-test (added-strand resp 2) (exp (gen) xr) (0 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) xr) (one)))
-      (send (cat (exp (gen) xr) (one))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))))
-  (label 59)
-  (parent 44)
-  (seen 40)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr rndx) (w expt))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xr) (one)))
-  (deflistener (cat (exp (gen) (mul xr (rec w))) w))
-  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0)))
-  (non-orig (privk i) (privk r))
-  (precur (3 0) (2 0))
-  (uniq-gen xr)
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul xr (rec w))) w)) (exp (gen) xr)
-    (0 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) xr) (one)))
-      (send (cat (exp (gen) xr) (one))))
-    ((recv (cat (exp (gen) (mul xr (rec w))) w))
-      (send (cat (exp (gen) (mul xr (rec w))) w))))
-  (label 60)
-  (parent 44)
-  (unrealized (3 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xi expt) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xr) (one)))
-  (defstrand resp 2 (r r-0) (xr xr) (xi xi))
-  (precedes ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0)) ((3 1) (2 0)))
-  (non-orig (privk i) (privk r))
-  (precur (2 0))
-  (uniq-gen xr)
-  (operation nonce-test (contracted (xr-0 xr) (xr-1 xr)) (one) (2 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) xr) (one)))
-      (send (cat (exp (gen) xr) (one))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))))
-  (label 61)
-  (parent 45)
-  (seen 25)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xi expt) (xr xr-0 rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xr-0) (mul xr (rec xr-0))))
-  (defstrand resp 2 (r r-0) (xr xr-0) (xi xi))
-  (deflistener xr)
-  (precedes ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (2 0)))
-  (non-orig (privk i) (privk r))
-  (precur (2 0))
-  (uniq-gen xr)
-  (operation nonce-test (added-listener xr) (mul xr (rec xr-0)) (2 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) xr-0) (mul xr (rec xr-0))))
-      (send (cat (exp (gen) xr-0) (mul xr (rec xr-0)))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc
-            (enc (exp (gen) xr-0) (exp (gen) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc
-            (enc (exp (gen) xr-0) (exp (gen) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))
-    ((recv xr) (send xr)))
-  (label 62)
-  (parent 45)
-  (unrealized (0 0) (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)
-    (r r-0) (xi xr) (xr xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (deflistener (cat "share" (exp (gen) (mul xr xr)) xr))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 0) (4 0)) ((1 2) (0 2))
-    ((2 1) (1 1)) ((3 1) (2 0)) ((4 1) (3 0)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr xr)) xr))
-    (hash "share" (exp (gen) (mul xr xr)) xr) (3 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((send (exp (gen) xr))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (send
-        (cat
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))
-    ((recv (cat "share" (exp (gen) (mul xr xr)) xr))
-      (send (cat "share" (exp (gen) (mul xr xr)) xr))))
-  (label 63)
-  (parent 47)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 r-1 name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))) (i i)
-    (r r-0) (xi xr) (xr xr))
-  (defstrand resp 2 (r r-1) (xr xr) (xi xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-  (deflistener (cat "share" (exp (gen) (mul xr xr)) xr))
-  (precedes ((1 0) (0 0)) ((1 0) (2 0)) ((1 0) (5 0)) ((1 2) (0 2))
-    ((2 1) (1 1)) ((3 1) (1 1)) ((4 1) (3 0)) ((5 1) (4 0)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr xr)) xr))
-    (hash "share" (exp (gen) (mul xr xr)) xr) (4 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((send (exp (gen) xr))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (send
-        (cat
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-1))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r-1))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr)))))
-    ((recv (cat "share" (exp (gen) (mul xr xr)) xr))
-      (send (cat "share" (exp (gen) (mul xr xr)) xr))))
-  (label 64)
-  (parent 48)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xi rndx))
-  (defstrand resp 3 (i i) (r r) (xr xi) (xi xi))
-  (defstrand resp 2 (r i) (xr xi) (xi xi))
-  (deflistener (cat (exp (gen) xi) (one)))
-  (defstrand init 1 (xi xi))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 0)) ((3 0) (2 0)))
-  (non-orig (privk i) (privk r))
-  (precur (2 0))
-  (uniq-gen xi)
-  (operation nonce-test (contracted (xr xi) (xi-0 xi)) (one) (2 0))
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xi)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xi)) xi))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xi)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xi)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xi)) xi)))))))
-    ((recv (cat (exp (gen) xi) (one)))
-      (send (cat (exp (gen) xi) (one)))) ((send (exp (gen) xi))))
-  (label 65)
-  (parent 54)
-  (seen 39)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr xi rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xi) (mul xr (rec xi))))
-  (defstrand init 1 (xi xi))
-  (deflistener xr)
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 0)) ((3 0) (2 0))
-    ((4 1) (2 0)))
-  (non-orig (privk i) (privk r))
-  (precur (2 0))
-  (uniq-gen xr)
-  (operation nonce-test (added-listener xr) (mul xr (rec xi)) (2 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) xi) (mul xr (rec xi))))
-      (send (cat (exp (gen) xi) (mul xr (rec xi)))))
-    ((send (exp (gen) xi))) ((recv xr) (send xr)))
-  (label 66)
-  (parent 54)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xi expt) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xr) (one)))
-  (defstrand resp 2 (r r-0) (xr xr) (xi xi))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 0)) ((3 1) (2 0)))
-  (non-orig (privk i) (privk r))
-  (precur (2 0))
-  (uniq-gen xr)
-  (operation nonce-test (contracted (xr-0 xr) (xr-1 xr)) (one) (2 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) xr) (one)))
-      (send (cat (exp (gen) xr) (one))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))))
-  (label 67)
-  (parent 55)
-  (seen 40)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xi expt) (xr xr-0 rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xr-0) (mul xr (rec xr-0))))
-  (defstrand resp 2 (r r-0) (xr xr-0) (xi xi))
-  (deflistener xr)
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 0)) ((3 1) (2 0))
-    ((4 1) (2 0)))
-  (non-orig (privk i) (privk r))
-  (precur (2 0))
-  (uniq-gen xr)
-  (operation nonce-test (added-listener xr) (mul xr (rec xr-0)) (2 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) xr-0) (mul xr (rec xr-0))))
-      (send (cat (exp (gen) xr-0) (mul xr (rec xr-0)))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc
-            (enc (exp (gen) xr-0) (exp (gen) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc
-            (enc (exp (gen) xr-0) (exp (gen) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))
-    ((recv xr) (send xr)))
-  (label 68)
-  (parent 55)
-  (unrealized (4 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xr) (one)))
-  (deflistener (cat (gen) xr))
-  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0)))
-  (non-orig (privk i) (privk r))
-  (precur (3 0) (2 0))
-  (uniq-gen xr)
-  (operation nonce-test (contracted (xr-0 xr) (w xr)) (gen) (3 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) xr) (one)))
-      (send (cat (exp (gen) xr) (one))))
-    ((recv (cat (gen) xr)) (send (cat (gen) xr))))
-  (label 69)
-  (parent 60)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr xi rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xr) (one)))
-  (deflistener (cat (exp (gen) xi) (mul xr (rec xi))))
-  (defstrand init 1 (xi xi))
-  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0))
-    ((4 0) (3 0)))
-  (non-orig (privk i) (privk r))
-  (precur (3 0) (2 0))
-  (uniq-gen xr)
-  (operation nonce-test (added-strand init 1) (exp (gen) xi) (3 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) xr) (one)))
-      (send (cat (exp (gen) xr) (one))))
-    ((recv (cat (exp (gen) xi) (mul xr (rec xi))))
-      (send (cat (exp (gen) xi) (mul xr (rec xi)))))
-    ((send (exp (gen) xi))))
-  (label 70)
-  (parent 60)
-  (unrealized (0 0) (3 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xi expt) (xr xr-0 rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xr) (one)))
-  (deflistener (cat (exp (gen) xr-0) (mul xr (rec xr-0))))
-  (defstrand resp 2 (r r-0) (xr xr-0) (xi xi))
-  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0))
-    ((4 1) (3 0)))
-  (non-orig (privk i) (privk r))
-  (precur (3 0) (2 0))
-  (uniq-gen xr)
-  (operation nonce-test (added-strand resp 2) (exp (gen) xr-0) (3 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) xr) (one)))
-      (send (cat (exp (gen) xr) (one))))
-    ((recv (cat (exp (gen) xr-0) (mul xr (rec xr-0))))
-      (send (cat (exp (gen) xr-0) (mul xr (rec xr-0)))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc
-            (enc (exp (gen) xr-0) (exp (gen) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc
-            (enc (exp (gen) xr-0) (exp (gen) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))))))
-  (label 71)
-  (parent 60)
-  (unrealized (0 0) (3 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xi rndx))
-  (defstrand resp 3 (i i) (r r) (xr xi) (xi xi))
-  (defstrand resp 2 (r i) (xr xi) (xi xi))
-  (deflistener (cat (exp (gen) xi) (one)))
-  (deflistener (cat (exp (gen) xi) (one)))
-  (defstrand init 1 (xi xi))
-  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0))
-    ((4 0) (3 0)))
-  (non-orig (privk i) (privk r))
-  (precur (3 0) (2 0))
-  (uniq-gen xi)
-  (operation nonce-test (contracted (xr xi) (xi-0 xi)) (one) (3 0))
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xi)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xi)) xi))))))
-      (recv
-        (enc
-          (enc (exp (gen) xi) (exp (gen) xi)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xi)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))))
-          (enc
-            (enc (exp (gen) xi) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xi)) xi))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xi)) xi)))))))
-    ((recv (cat (exp (gen) xi) (one)))
-      (send (cat (exp (gen) xi) (one))))
-    ((recv (cat (exp (gen) xi) (one)))
-      (send (cat (exp (gen) xi) (one)))) ((send (exp (gen) xi))))
-  (label 72)
-  (parent 70)
-  (seen 65)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r name) (xr xi rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xr) (one)))
-  (deflistener (cat (exp (gen) xi) (mul xr (rec xi))))
-  (defstrand init 1 (xi xi))
-  (deflistener xr)
-  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0))
-    ((4 0) (3 0)) ((5 1) (3 0)))
-  (non-orig (privk i) (privk r))
-  (precur (3 0) (2 0))
-  (uniq-gen xr)
-  (operation nonce-test (added-listener xr) (mul xr (rec xi)) (3 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) xr) (one)))
-      (send (cat (exp (gen) xr) (one))))
-    ((recv (cat (exp (gen) xi) (mul xr (rec xi))))
-      (send (cat (exp (gen) xi) (mul xr (rec xi)))))
-    ((send (exp (gen) xi))) ((recv xr) (send xr)))
-  (label 73)
-  (parent 70)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xi expt) (xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xr) (one)))
-  (deflistener (cat (exp (gen) xr) (one)))
-  (defstrand resp 2 (r r-0) (xr xr) (xi xi))
-  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0))
-    ((4 1) (3 0)))
-  (non-orig (privk i) (privk r))
-  (precur (3 0) (2 0))
-  (uniq-gen xr)
-  (operation nonce-test (contracted (xr-0 xr) (xr-1 xr)) (one) (3 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) xr) (one)))
-      (send (cat (exp (gen) xr) (one))))
-    ((recv (cat (exp (gen) xr) (one)))
-      (send (cat (exp (gen) xr) (one))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xi)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))))
-  (label 74)
-  (parent 71)
-  (seen 67)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (i r r-0 name) (xi expt) (xr xr-0 rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xr))
-  (defstrand resp 2 (r i) (xr xr) (xi xr))
-  (deflistener (cat (exp (gen) xr) (one)))
-  (deflistener (cat (exp (gen) xr-0) (mul xr (rec xr-0))))
-  (defstrand resp 2 (r r-0) (xr xr-0) (xi xi))
-  (deflistener xr)
-  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (0 0))
-    ((4 1) (3 0)) ((5 1) (3 0)))
-  (non-orig (privk i) (privk r))
-  (precur (3 0) (2 0))
-  (uniq-gen xr)
-  (operation nonce-test (added-listener xr) (mul xr (rec xr-0)) (3 0))
-  (traces
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr))))))
-      (recv
-        (enc
-          (enc (exp (gen) xr) (exp (gen) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-            (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))))
-    ((recv (exp (gen) xr))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))))
-          (enc
-            (enc (exp (gen) xr) (exp (gen) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xr)) xr))
-              (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xr)) xr)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xr)) xr)))))))
-    ((recv (cat (exp (gen) xr) (one)))
-      (send (cat (exp (gen) xr) (one))))
-    ((recv (cat (exp (gen) xr-0) (mul xr (rec xr-0))))
-      (send (cat (exp (gen) xr-0) (mul xr (rec xr-0)))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr-0)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-          (enc
-            (enc (exp (gen) xr-0) (exp (gen) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xr-0)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))))
-          (enc
-            (enc (exp (gen) xr-0) (exp (gen) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0))
-              (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr-0)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr-0)) xr-0)))))))
-    ((recv xr) (send xr)))
-  (label 75)
-  (parent 71)
-  (unrealized (5 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol station-nohint diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (i r name) (hint mesg))
-    (trace (send (exp (gen) xi))
-      (recv
-        (cat (exp (gen) xr) hint
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))
-          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (i r name))
-    (trace (recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi)) xr))))))))
-
-(defskeleton station-nohint
-  (vars (hint mesg) (i r name) (xi rndx) (xr expt))
-  (defstrand init 3 (hint hint) (i i) (r r) (xi xi) (xr xr))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xi)
-  (traces
-    ((send (exp (gen) xi))
-      (recv
-        (cat (exp (gen) xr) hint
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))
-          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))))
-  (label 76)
-  (unrealized (0 1))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-nohint
-  (vars (i r name) (xr xi rndx))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (i i)
-    (r r) (xi xi) (xr xr))
-  (defstrand resp 2 (r r) (xr xr) (xi xi))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xi)
-  (operation encryption-test (added-strand resp 2)
-    (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-      (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))) (0 1))
-  (traces
-    ((send (exp (gen) xi))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (send
-        (cat
-          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))))
-  (label 77)
-  (parent 76)
-  (unrealized)
-  (shape)
-  (maps
-    ((0)
-      ((i i) (r r) (xi xi) (xr xr)
-        (hint
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-  (origs))
-
-(defskeleton station-nohint
-  (vars (hint mesg) (i r name) (xi rndx) (xr expt))
-  (defstrand init 3 (hint hint) (i i) (r r) (xi xi) (xr xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xi)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-    (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-    (0 1))
-  (traces
-    ((send (exp (gen) xi))
-      (recv
-        (cat (exp (gen) xr) hint
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))
-          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint)))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))))
-  (label 78)
-  (parent 76)
-  (unrealized (0 1) (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-nohint
-  (vars (hint mesg) (i r name) (xi rndx) (xr expt))
-  (defstrand init 3 (hint hint) (i i) (r r) (xi xi) (xr xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xi)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint) (1 0))
-  (traces
-    ((send (exp (gen) xi))
-      (recv
-        (cat (exp (gen) xr) hint
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))
-          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint)))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))))
-  (label 79)
-  (parent 78)
-  (unrealized (0 1) (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-nohint
-  (vars (hint mesg) (i r name) (xi rndx) (xr expt))
-  (defstrand init 3 (hint hint) (i i) (r r) (xi xi) (xr xr))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-  (deflistener (cat "share" (exp (gen) (mul xi xr)) xi))
-  (precedes ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xi)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xi xr)) xi))
-    (hash "share" (exp (gen) (mul xi xr)) xi) (2 0))
-  (traces
-    ((send (exp (gen) xi))
-      (recv
-        (cat (exp (gen) xr) hint
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))
-          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint)))))
-    ((recv (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))
-    ((recv (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint))
-      (send (cat "key" (hash "share" (exp (gen) (mul xi xr)) xi) hint)))
-    ((recv (cat "share" (exp (gen) (mul xi xr)) xi))
-      (send (cat "share" (exp (gen) (mul xi xr)) xi))))
-  (label 80)
-  (parent 79)
-  (unrealized (0 1) (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol station-nohint diffie-hellman
-  (defrole init
-    (vars (xi rndx) (xr expt) (i r name) (hint mesg))
-    (trace (send (exp (gen) xi))
-      (recv
-        (cat (exp (gen) xr) hint
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))
-      (send
-        (cat
-          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr) hint))
-          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              hint))))))
-  (defrole resp
-    (vars (xr rndx) (xi expt) (i r name))
-    (trace (recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint"
-              (hash "share" (exp (gen) (mul xr xi)) xr))))))))
-
-(defskeleton station-nohint
-  (vars (i r name) (xr rndx) (xi expt))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))
-  (absent (xr xi))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))))
-  (label 81)
-  (unrealized (0 2))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-nohint
-  (vars (i r r-0 name) (xi xr rndx))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))
-  (defstrand init 3
-    (hint (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))) (i i)
-    (r r-0) (xi xi) (xr xr))
-  (precedes ((0 1) (1 1)) ((1 2) (0 2)))
-  (absent (xr xi))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test (added-strand init 3)
-    (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-      (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr)))) (0 2))
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (recv
-        (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))))
-    ((send (exp (gen) xi))
-      (recv
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r-0))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))
-      (send
-        (cat
-          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xi xr)) xr))))
-          (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-            (hash "key" (hash "share" (exp (gen) (mul xi xr)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xi xr)) xr))))))))
-  (label 82)
-  (parent 81)
-  (unrealized)
-  (shape)
-  (maps ((0) ((i i) (r r) (xr xr) (xi xi))))
-  (origs))
-
-(defskeleton station-nohint
-  (vars (i r name) (xr rndx) (xi expt))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
-  (absent (xr xi))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener
-      (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-    (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-      (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))) (0 2))
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-  (label 83)
-  (parent 81)
-  (unrealized (0 2) (1 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-nohint
-  (vars (i r name) (xr rndx) (xi expt))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))
-  (absent (xr xi))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener
-      (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-        (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))) (1 0))
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-  (label 84)
-  (parent 83)
-  (unrealized (0 2) (2 0))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-nohint
-  (vars (i r name) (xr rndx) (xi expt))
-  (defstrand resp 3 (i i) (r r) (xr xr) (xi xi))
-  (deflistener
-    (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-  (deflistener
-    (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-      (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-  (deflistener (cat "share" (exp (gen) (mul xr xi)) xr))
-  (precedes ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0)))
-  (absent (xr xi))
-  (non-orig (privk i) (privk r))
-  (uniq-gen xr)
-  (operation encryption-test
-    (added-listener (cat "share" (exp (gen) (mul xr xi)) xr))
-    (hash "share" (exp (gen) (mul xr xi)) xr) (2 0))
-  (traces
-    ((recv (exp (gen) xi))
-      (send
-        (cat (exp (gen) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-              (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-          (enc (enc "resp" (exp (gen) xr) (exp (gen) xi) (privk r))
-            (hash "key" (hash "share" (exp (gen) (mul xr xi)) xi)
-              (hash "hint"
-                (hash "share" (exp (gen) (mul xr xi)) xr))))))
-      (recv
-        (enc (enc (exp (gen) xi) (exp (gen) xr) (privk i))
-          (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-            (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))))
-    ((recv
-       (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-      (send
-        (hash "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))
-    ((recv
-       (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-         (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr))))
-      (send
-        (cat "key" (hash "share" (exp (gen) (mul xr xi)) xr)
-          (hash "hint" (hash "share" (exp (gen) (mul xr xi)) xr)))))
-    ((recv (cat "share" (exp (gen) (mul xr xi)) xr))
-      (send (cat "share" (exp (gen) (mul xr xi)) xr))))
-  (label 85)
-  (parent 84)
-  (unrealized (0 2) (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
diff --git a/tst/station_nobase.scm b/tst/station_nobase.scm
deleted file mode 100644
--- a/tst/station_nobase.scm
+++ /dev/null
@@ -1,38 +0,0 @@
-(herald "Station-to-station protocol no base vars" (algebra diffie-hellman)
-; (limit 1)
-)
-
-(defprotocol station-to-station diffie-hellman
-  (defrole init
-    (vars (x rndx) (h expt) (a b name))
-    (trace
-     (send (exp (gen) x))
-     (recv (cat (exp (gen) h)
-		(enc (enc (exp (gen) h) (exp (gen) x) (privk b))
-		     (exp (exp (gen) h) x))))
-     (send (enc (enc (exp (gen) x) (exp (gen) h) (privk a))
-		(exp (exp (gen) h) x))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (h expt) (a b name))
-    (trace
-     (recv (exp (gen) h))
-     (send (cat (exp (gen) y)
-		(enc (enc (exp (gen) y) (exp (gen) h) (privk b))
-		     (exp (exp (gen) h) y))))
-     (recv (enc (enc (exp (gen) h) (exp (gen) y) (privk a))
-		(exp (exp (gen) h) y))))
-    (uniq-gen y))
-)
-
-(defskeleton station-to-station
-  (vars (a b name))
-  (defstrand init 3 (a a) (b b))
-  (non-orig (privk b) (privk a))
-)
-
-(defskeleton station-to-station
-  (vars (a b name))
-  (defstrand resp 3 (a a) (b b))
-  (non-orig (privk a) (privk b))
-)
diff --git a/tst/station_nobase.tst b/tst/station_nobase.tst
deleted file mode 100644
--- a/tst/station_nobase.tst
+++ /dev/null
@@ -1,446 +0,0 @@
-(herald "Station-to-station protocol no base vars"
-  (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/station_nobase.scm")
-
-(defprotocol station-to-station diffie-hellman
-  (defrole init
-    (vars (x rndx) (h expt) (a b name))
-    (trace (send (exp (gen) x))
-      (recv
-        (cat (exp (gen) h)
-          (enc (enc (exp (gen) h) (exp (gen) x) (privk b))
-            (exp (gen) (mul x h)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) h) (privk a))
-          (exp (gen) (mul x h)))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (h expt) (a b name))
-    (trace (recv (exp (gen) h))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) h) (privk b))
-            (exp (gen) (mul y h)))))
-      (recv
-        (enc (enc (exp (gen) h) (exp (gen) y) (privk a))
-          (exp (gen) (mul y h)))))
-    (uniq-gen y)
-    (absent (y (exp (gen) h)))))
-
-(defskeleton station-to-station
-  (vars (a b name) (x rndx) (h expt))
-  (defstrand init 3 (a a) (b b) (x x) (h h))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (traces
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) h)
-          (enc (enc (exp (gen) h) (exp (gen) x) (privk b))
-            (exp (gen) (mul x h)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) h) (privk a))
-          (exp (gen) (mul x h))))))
-  (label 0)
-  (unrealized (0 1))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (x x-0) (h x))
-  (defstrand init 3 (a b) (b b-0) (x x) (h x-0))
-  (precedes ((0 0) (1 1)) ((1 2) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x x-0)
-  (operation encryption-test (added-strand init 3)
-    (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (0 1))
-  (traces
-    ((send (exp (gen) x-0))
-      (recv
-        (cat (exp (gen) x)
-          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))
-          (exp (gen) (mul x x-0)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) x-0)
-          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-          (exp (gen) (mul x x-0))))))
-  (label 1)
-  (parent 0)
-  (unrealized (1 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (a b name) (y x rndx))
-  (defstrand init 3 (a a) (b b) (x x) (h y))
-  (defstrand resp 2 (b b) (y y) (h x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (operation encryption-test (added-strand resp 2)
-    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
-  (traces
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x)))))
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))))
-  (label 2)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (x x) (h y))))
-  (origs))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (x x-0) (h x))
-  (defstrand init 3 (a b) (b b-0) (x x) (h x-0))
-  (deflistener (exp (gen) (mul x x-0)))
-  (precedes ((0 0) (2 0)) ((1 0) (2 0)) ((1 2) (0 1)) ((2 1) (1 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x x-0)
-  (operation encryption-test (added-listener (exp (gen) (mul x x-0)))
-    (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))
-      (exp (gen) (mul x x-0))) (1 1))
-  (traces
-    ((send (exp (gen) x-0))
-      (recv
-        (cat (exp (gen) x)
-          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))
-          (exp (gen) (mul x x-0)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) x-0)
-          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-          (exp (gen) (mul x x-0)))))
-    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))
-  (label 3)
-  (parent 1)
-  (unrealized (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (x x-0) (h x))
-  (defstrand init 3 (a b) (b b-0) (x x) (h x-0))
-  (deflistener (exp (gen) (mul x x-0)))
-  (deflistener (cat (exp (gen) x) x-0))
-  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x x-0)
-  (operation nonce-test (added-listener (cat (exp (gen) x) x-0))
-    (exp (gen) (mul x x-0)) (2 0))
-  (traces
-    ((send (exp (gen) x-0))
-      (recv
-        (cat (exp (gen) x)
-          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))
-          (exp (gen) (mul x x-0)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) x-0)
-          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-          (exp (gen) (mul x x-0)))))
-    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
-    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0))))
-  (label 4)
-  (parent 3)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (x x-0) (h x))
-  (defstrand init 3 (a b) (b b-0) (x x) (h x-0))
-  (deflistener (exp (gen) (mul x x-0)))
-  (deflistener (cat (exp (gen) x-0) x))
-  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x x-0)
-  (operation nonce-test (added-listener (cat (exp (gen) x-0) x))
-    (exp (gen) (mul x x-0)) (2 0))
-  (traces
-    ((send (exp (gen) x-0))
-      (recv
-        (cat (exp (gen) x)
-          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))
-          (exp (gen) (mul x x-0)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) x-0)
-          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-          (exp (gen) (mul x x-0)))))
-    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
-    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x))))
-  (label 5)
-  (parent 3)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol station-to-station diffie-hellman
-  (defrole init
-    (vars (x rndx) (h expt) (a b name))
-    (trace (send (exp (gen) x))
-      (recv
-        (cat (exp (gen) h)
-          (enc (enc (exp (gen) h) (exp (gen) x) (privk b))
-            (exp (gen) (mul x h)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) h) (privk a))
-          (exp (gen) (mul x h)))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (h expt) (a b name))
-    (trace (recv (exp (gen) h))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) h) (privk b))
-            (exp (gen) (mul y h)))))
-      (recv
-        (enc (enc (exp (gen) h) (exp (gen) y) (privk a))
-          (exp (gen) (mul y h)))))
-    (uniq-gen y)
-    (absent (y (exp (gen) h)))))
-
-(defskeleton station-to-station
-  (vars (a b name) (y rndx) (h expt))
-  (defstrand resp 3 (a a) (b b) (y y) (h h))
-  (absent (y (exp (gen) h)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y)
-  (traces
-    ((recv (exp (gen) h))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) h) (privk b))
-            (exp (gen) (mul y h)))))
-      (recv
-        (enc (enc (exp (gen) h) (exp (gen) y) (privk a))
-          (exp (gen) (mul y h))))))
-  (label 6)
-  (unrealized (0 2))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x y rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (h x))
-  (defstrand init 3 (a a) (b b-0) (x x) (h y))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation encryption-test (added-strand init 3)
-    (enc (exp (gen) x) (exp (gen) y) (privk a)) (0 2))
-  (traces
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y))))))
-  (label 7)
-  (parent 6)
-  (unrealized (1 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (a b name) (y x rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (h x))
-  (defstrand init 3 (a a) (b b) (x x) (h y))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-      (exp (gen) (mul y x))) (1 1))
-  (traces
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x))))))
-  (label 8)
-  (parent 7)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (y y) (h x))))
-  (origs))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x y rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (h x))
-  (defstrand init 3 (a a) (b b-0) (x x) (h y))
-  (deflistener (exp (gen) (mul x y)))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation encryption-test (added-listener (exp (gen) (mul x y)))
-    (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-      (exp (gen) (mul x y))) (1 1))
-  (traces
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))
-  (label 9)
-  (parent 7)
-  (unrealized (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x y rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (h x))
-  (defstrand init 3 (a a) (b b-0) (x x) (h y))
-  (deflistener (exp (gen) (mul x y)))
-  (deflistener (cat (exp (gen) x) y))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation nonce-test (added-listener (cat (exp (gen) x) y))
-    (exp (gen) (mul x y)) (2 0))
-  (traces
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
-  (label 10)
-  (parent 9)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x y rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (h x))
-  (defstrand init 3 (a a) (b b-0) (x x) (h y))
-  (deflistener (exp (gen) (mul x y)))
-  (deflistener (cat (exp (gen) y) x))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation nonce-test (added-listener (cat (exp (gen) y) x))
-    (exp (gen) (mul x y)) (2 0))
-  (traces
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
-  (label 11)
-  (parent 9)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
diff --git a/tst/stationbase.scm b/tst/stationbase.scm
deleted file mode 100644
--- a/tst/stationbase.scm
+++ /dev/null
@@ -1,34 +0,0 @@
-(herald "Station-to-station protocol" (algebra diffie-hellman)
-; (limit 1)
-)
-
-(defprotocol station-to-station diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (a b name))
-    (trace
-     (send (exp (gen) x))
-     (recv (cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen)
-x) (privk b)) (exp (gen) (mul x y)))))
-     (send (enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace
-     (recv (exp (gen) x))
-     (send (cat (exp (gen) y) (enc (enc (exp (gen) y) (exp (gen)
-x) (privk b)) (exp (gen) (mul x y)))))
-     (recv (enc (enc (exp (gen) x) (exp (gen) y) (privk a)) (exp (gen) (mul x y)))))
-    (uniq-gen y))
-)
-
-(defskeleton station-to-station
-  (vars (a b name))
-  (defstrand init 3 (a a) (b b))
-  (non-orig (privk b) (privk a))
-)
-
-(defskeleton station-to-station
-  (vars (a b name))
-  (defstrand resp 3 (a a) (b b))
-  (non-orig (privk a) (privk b))
-)
diff --git a/tst/stationbase.tst b/tst/stationbase.tst
deleted file mode 100644
--- a/tst/stationbase.tst
+++ /dev/null
@@ -1,445 +0,0 @@
-(herald "Station-to-station protocol" (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/stationbase.scm")
-
-(defprotocol station-to-station diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (a b name))
-    (trace (send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace (recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x)))))
-    (uniq-gen y)
-    (absent (y (exp (gen) x)))))
-
-(defskeleton station-to-station
-  (vars (a b name) (x rndx) (y expt))
-  (defstrand init 3 (a a) (b b) (x x) (y y))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x)
-  (traces
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y))))))
-  (label 0)
-  (unrealized (0 1))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (x x-0) (y x))
-  (defstrand init 3 (a b) (b b-0) (x x) (y x-0))
-  (precedes ((0 0) (1 1)) ((1 2) (0 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x x-0)
-  (operation encryption-test (added-strand init 3)
-    (enc (exp (gen) x) (exp (gen) x-0) (privk b)) (0 1))
-  (traces
-    ((send (exp (gen) x-0))
-      (recv
-        (cat (exp (gen) x)
-          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))
-          (exp (gen) (mul x x-0)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) x-0)
-          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-          (exp (gen) (mul x x-0))))))
-  (label 1)
-  (parent 0)
-  (unrealized (1 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (a b name) (y x rndx))
-  (defstrand init 3 (a a) (b b) (x x) (y y))
-  (defstrand resp 2 (b b) (y y) (x x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (operation encryption-test (added-strand resp 2)
-    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
-  (traces
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x)))))
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))))
-  (label 2)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (x x) (y y))))
-  (origs))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (x x-0) (y x))
-  (defstrand init 3 (a b) (b b-0) (x x) (y x-0))
-  (deflistener (exp (gen) (mul x x-0)))
-  (precedes ((0 0) (2 0)) ((1 0) (2 0)) ((1 2) (0 1)) ((2 1) (1 1)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x x-0)
-  (operation encryption-test (added-listener (exp (gen) (mul x x-0)))
-    (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))
-      (exp (gen) (mul x x-0))) (1 1))
-  (traces
-    ((send (exp (gen) x-0))
-      (recv
-        (cat (exp (gen) x)
-          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))
-          (exp (gen) (mul x x-0)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) x-0)
-          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-          (exp (gen) (mul x x-0)))))
-    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))
-  (label 3)
-  (parent 1)
-  (unrealized (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (x x-0) (y x))
-  (defstrand init 3 (a b) (b b-0) (x x) (y x-0))
-  (deflistener (exp (gen) (mul x x-0)))
-  (deflistener (cat (exp (gen) x) x-0))
-  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x x-0)
-  (operation nonce-test (added-listener (cat (exp (gen) x) x-0))
-    (exp (gen) (mul x x-0)) (2 0))
-  (traces
-    ((send (exp (gen) x-0))
-      (recv
-        (cat (exp (gen) x)
-          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))
-          (exp (gen) (mul x x-0)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) x-0)
-          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-          (exp (gen) (mul x x-0)))))
-    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
-    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0))))
-  (label 4)
-  (parent 3)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x x-0 rndx))
-  (defstrand init 3 (a a) (b b) (x x-0) (y x))
-  (defstrand init 3 (a b) (b b-0) (x x) (y x-0))
-  (deflistener (exp (gen) (mul x x-0)))
-  (deflistener (cat (exp (gen) x-0) x))
-  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x x-0)
-  (operation nonce-test (added-listener (cat (exp (gen) x-0) x))
-    (exp (gen) (mul x x-0)) (2 0))
-  (traces
-    ((send (exp (gen) x-0))
-      (recv
-        (cat (exp (gen) x)
-          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk a))
-          (exp (gen) (mul x x-0)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) x-0)
-          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x x-0)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b))
-          (exp (gen) (mul x x-0)))))
-    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
-    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x))))
-  (label 5)
-  (parent 3)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol station-to-station diffie-hellman
-  (defrole init
-    (vars (x rndx) (y expt) (a b name))
-    (trace (send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    (uniq-gen x))
-  (defrole resp
-    (vars (y rndx) (x expt) (a b name))
-    (trace (recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x)))))
-    (uniq-gen y)
-    (absent (y (exp (gen) x)))))
-
-(defskeleton station-to-station
-  (vars (a b name) (y rndx) (x expt))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y)
-  (traces
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x))))))
-  (label 6)
-  (unrealized (0 2))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x y rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b-0) (x x) (y y))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation encryption-test (added-strand init 3)
-    (enc (exp (gen) x) (exp (gen) y) (privk a)) (0 2))
-  (traces
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y))))))
-  (label 7)
-  (parent 6)
-  (unrealized (1 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (a b name) (y x rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b) (x x) (y y))
-  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen y x)
-  (operation encryption-test (displaced 2 0 resp 2)
-    (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-      (exp (gen) (mul y x))) (1 1))
-  (traces
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul y x)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul y x))))))
-  (label 8)
-  (parent 7)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (y y) (x x))))
-  (origs))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x y rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b-0) (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation encryption-test (added-listener (exp (gen) (mul x y)))
-    (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-      (exp (gen) (mul x y))) (1 1))
-  (traces
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))
-  (label 9)
-  (parent 7)
-  (unrealized (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x y rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b-0) (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (deflistener (cat (exp (gen) x) y))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation nonce-test (added-listener (cat (exp (gen) x) y))
-    (exp (gen) (mul x y)) (2 0))
-  (traces
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
-  (label 10)
-  (parent 9)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton station-to-station
-  (vars (a b b-0 name) (x y rndx))
-  (defstrand resp 3 (a a) (b b) (y y) (x x))
-  (defstrand init 3 (a a) (b b-0) (x x) (y y))
-  (deflistener (exp (gen) (mul x y)))
-  (deflistener (cat (exp (gen) y) x))
-  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))
-    ((3 1) (2 0)))
-  (absent (y (exp (gen) x)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen x y)
-  (operation nonce-test (added-listener (cat (exp (gen) y) x))
-    (exp (gen) (mul x y)) (2 0))
-  (traces
-    ((recv (exp (gen) x))
-      (send
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
-            (exp (gen) (mul x y)))))
-      (recv
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((send (exp (gen) x))
-      (recv
-        (cat (exp (gen) y)
-          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
-            (exp (gen) (mul x y)))))
-      (send
-        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
-          (exp (gen) (mul x y)))))
-    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
-    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
-  (label 11)
-  (parent 9)
-  (unrealized (3 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
diff --git a/tst/sts.scm b/tst/sts.scm
new file mode 100644
--- /dev/null
+++ b/tst/sts.scm
@@ -0,0 +1,72 @@
+;;; Station-to-station
+
+;;; This is an authenticated form of a Diffie-Hellman key exchange.
+
+;;; The file contains one model of the station-to-station protocol.
+;;; An assumption is made that *any* initiator or responder properly
+;;; picks a fresh random exponent and does not allow it to be obtained
+;;; by the adversary.
+
+(herald "Station-to-station protocol" (bound 20) (algebra diffie-hellman))
+
+(defprotocol station-to-station diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace
+     (send (exp (gen) x))
+     (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+     (send (enc (enc (exp (gen) x) h (privk a)) (exp h x)))
+     (send (privk a)))
+    (uniq-gen x))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace
+     (recv h)
+     (send (cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+     (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y)))
+     (send (privk b)))
+    (uniq-gen y))
+)
+
+(defskeleton station-to-station
+  (vars (a b name))
+  (defstrand init 3 (a a) (b b))
+  (non-orig (privk b) (privk a))
+)
+
+(defskeleton station-to-station
+  (vars (a b name))
+  (defstrand resp 3 (a a) (b b))
+  (non-orig (privk a) (privk b))
+  )
+
+(defskeleton station-to-station
+  (vars (a b name)(x y rndx) (h base))
+  (defstrand init 3 (a a) (b b) (x x) (h h))
+  (deflistener (exp h x))
+  (non-orig (privk b) (privk a))
+)
+
+(defskeleton station-to-station
+  (vars (a b name) (x y rndx)(h base))
+  (defstrand resp 3 (a a) (b b) (y y) (h h))
+  (deflistener (exp h y))
+  (non-orig (privk a) (privk b))
+)
+
+(defskeleton station-to-station
+  (vars (a b name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig (privk b) (privk a))
+  )
+
+(defskeleton station-to-station
+  (vars (a b name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (b b) (h (exp (gen) x)) (y y))
+  (deflistener (exp (gen) (mul x y)))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig (privk b) (privk a))
+  )
diff --git a/tst/sts.tst b/tst/sts.tst
new file mode 100644
--- /dev/null
+++ b/tst/sts.tst
@@ -0,0 +1,3550 @@
+(herald "Station-to-station protocol" (bound 20)
+  (algebra diffie-hellman))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/sts.scm")
+(comment "Strand count bounded at 20")
+
+(defprotocol station-to-station diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace (send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc (exp (gen) x) h (privk a)) (exp h x)))
+      (send (privk a)))
+    (uniq-gen x))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace (recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y)))
+      (send (privk b)))
+    (uniq-gen y))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton station-to-station
+  (vars (a b name) (h base) (x rndx))
+  (defstrand init 3 (a a) (b b) (h h) (x x))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (traces
+    ((send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc (exp (gen) x) h (privk a)) (exp h x)))))
+  (label 0)
+  (unrealized (0 1))
+  (origs)
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (precedes ((0 0) (1 1)) ((1 2) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (operation encryption-test (added-strand init 3)
+    (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+      (exp (gen) (mul x x-0))) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0))))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (operation encryption-test (added-strand resp 2)
+    (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+      (exp (gen) (mul x y))) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))))
+  (label 2)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (x x) (h (exp (gen) y)))))
+  (origs))
+
+(defskeleton station-to-station
+  (vars (a b name) (h base) (x rndx))
+  (defstrand init 3 (a a) (b b) (h h) (x x))
+  (deflistener (exp h x))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (operation encryption-test (added-listener (exp h x))
+    (enc (enc h (exp (gen) x) (privk b)) (exp h x)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc (exp (gen) x) h (privk a)) (exp h x))))
+    ((recv (exp h x)) (send (exp h x))))
+  (label 3)
+  (parent 0)
+  (unrealized (0 1) (1 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (precedes ((0 0) (2 0)) ((1 0) (2 0)) ((1 2) (0 1)) ((2 1) (1 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (operation encryption-test (added-listener (exp (gen) (mul x x-0)))
+    (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+      (exp (gen) (mul x x-0))) (1 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))
+  (label 4)
+  (parent 1)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (x rndx))
+  (defstrand init 3 (a a) (b b) (h (gen)) (x x))
+  (deflistener (exp (gen) x))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (gen)
+          (enc (enc (gen) (exp (gen) x) (privk b)) (exp (gen) x))))
+      (send (enc (enc (exp (gen) x) (gen) (privk a)) (exp (gen) x))))
+    ((recv (exp (gen) x)) (send (exp (gen) x))))
+  (label 5)
+  (parent 3)
+  (unrealized (0 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b name) (x rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (rec x))) (x x))
+  (deflistener (gen))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (operation nonce-test (contracted (h (exp (gen) (rec x)))) (gen)
+    (1 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (rec x))
+          (enc (enc (exp (gen) (rec x)) (exp (gen) x) (privk b))
+            (gen))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) (rec x)) (privk a)) (gen))))
+    ((recv (gen)) (send (gen))))
+  (label 6)
+  (parent 3)
+  (unrealized (0 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) x-0))) (x x))
+  (deflistener (exp (gen) x-0))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 0) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (mul (rec x) x-0))
+          (enc
+            (enc (exp (gen) (mul (rec x) x-0)) (exp (gen) x) (privk b))
+            (exp (gen) x-0))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) (mul (rec x) x-0)) (privk a))
+          (exp (gen) x-0))))
+    ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))
+    ((send (exp (gen) x-0))))
+  (label 7)
+  (parent 3)
+  (unrealized (0 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (h base) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) y))) (x x))
+  (deflistener (exp (gen) y))
+  (defstrand resp 2 (b b-0) (h h) (y y))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (operation nonce-test (added-strand resp 2) (exp (gen) y) (1 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (mul (rec x) y))
+          (enc (enc (exp (gen) (mul (rec x) y)) (exp (gen) x) (privk b))
+            (exp (gen) y))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) (mul (rec x) y)) (privk a))
+          (exp (gen) y)))) ((recv (exp (gen) y)) (send (exp (gen) y)))
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b-0)) (exp h y))))))
+  (label 8)
+  (parent 3)
+  (unrealized (0 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b name) (h base) (x rndx) (w expt))
+  (defstrand init 3 (a a) (b b) (h h) (x x))
+  (deflistener (exp h x))
+  (deflistener (cat (exp h (mul x (rec w))) w))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp h (mul x (rec w))) w))
+    (exp h x) (1 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc (exp (gen) x) h (privk a)) (exp h x))))
+    ((recv (exp h x)) (send (exp h x)))
+    ((recv (cat (exp h (mul x (rec w))) w))
+      (send (cat (exp h (mul x (rec w))) w))))
+  (label 9)
+  (parent 3)
+  (unrealized (0 1) (2 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x) x-0))
+  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))
+    ((3 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (operation nonce-test (added-listener (cat (exp (gen) x) x-0))
+    (exp (gen) (mul x x-0)) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0))))
+  (label 10)
+  (parent 4)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x-0) x))
+  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))
+    ((3 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (operation nonce-test (added-listener (cat (exp (gen) x-0) x))
+    (exp (gen) (mul x x-0)) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x))))
+  (label 11)
+  (parent 4)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b name) (w expt) (x rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) w)) (x x))
+  (deflistener (exp (gen) (mul w x)))
+  (deflistener (cat (exp (gen) x) w))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) w)
+          (enc (enc (exp (gen) w) (exp (gen) x) (privk b))
+            (exp (gen) (mul w x)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) w) (privk a))
+          (exp (gen) (mul w x)))))
+    ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))
+    ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))
+  (label 12)
+  (parent 9)
+  (unrealized (0 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (x rndx) (w expt))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) w))) (x x))
+  (deflistener (exp (gen) w))
+  (deflistener (cat (gen) w))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (contracted (h (exp (gen) (mul (rec x) w))))
+    (gen) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (mul (rec x) w))
+          (enc (enc (exp (gen) (mul (rec x) w)) (exp (gen) x) (privk b))
+            (exp (gen) w))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) (mul (rec x) w)) (privk a))
+          (exp (gen) w)))) ((recv (exp (gen) w)) (send (exp (gen) w)))
+    ((recv (cat (gen) w)) (send (cat (gen) w))))
+  (label 13)
+  (parent 9)
+  (unrealized (0 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (x rndx) (w expt) (x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) w x-0)))
+    (x x))
+  (deflistener (exp (gen) (mul w x-0)))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 0) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (mul (rec x) w x-0))
+          (enc
+            (enc (exp (gen) (mul (rec x) w x-0)) (exp (gen) x)
+              (privk b)) (exp (gen) (mul w x-0)))))
+      (send
+        (enc
+          (enc (exp (gen) x) (exp (gen) (mul (rec x) w x-0)) (privk a))
+          (exp (gen) (mul w x-0)))))
+    ((recv (exp (gen) (mul w x-0))) (send (exp (gen) (mul w x-0))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((send (exp (gen) x-0))))
+  (label 14)
+  (parent 9)
+  (unrealized (0 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (h base) (x rndx) (w expt) (y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) w y))) (x x))
+  (deflistener (exp (gen) (mul w y)))
+  (deflistener (cat (exp (gen) y) w))
+  (defstrand resp 2 (b b-0) (h h) (y y))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation nonce-test (added-strand resp 2) (exp (gen) y) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (mul (rec x) w y))
+          (enc
+            (enc (exp (gen) (mul (rec x) w y)) (exp (gen) x) (privk b))
+            (exp (gen) (mul w y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) (mul (rec x) w y)) (privk a))
+          (exp (gen) (mul w y)))))
+    ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b-0)) (exp h y))))))
+  (label 15)
+  (parent 9)
+  (unrealized (0 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x) x-0))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (precedes ((0 0) (2 0)) ((0 0) (3 1)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 2) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation encryption-test (added-strand init 3)
+    (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0)))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0))))))
+  (label 16)
+  (parent 12)
+  (unrealized (2 0) (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) x) y))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation encryption-test (added-strand resp 2)
+    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))))
+  (label 17)
+  (parent 12)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (gen) (mul x x-0)))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (precedes ((0 0) (2 0)) ((0 0) (3 1)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 2) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation encryption-test (added-strand init 3)
+    (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (gen) (mul x x-0))) (send (cat (gen) (mul x x-0))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0))))))
+  (label 18)
+  (parent 13)
+  (unrealized (1 0) (2 0) (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (gen) (mul x y)))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation encryption-test (added-strand resp 2)
+    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (gen) (mul x y))) (send (cat (gen) (mul x y))))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))))
+  (label 19)
+  (parent 13)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x-0) x))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (precedes ((0 0) (2 0)) ((0 0) (3 1)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 2) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation encryption-test (displaced 3 4 init 3)
+    (enc (exp (gen) x-1) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x)))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0))))))
+  (label 20)
+  (parent 14)
+  (unrealized (2 0) (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 x-1 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-1)) (x x))
+  (deflistener (exp (gen) (mul x x-1)))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))
+  (defstrand init 1 (x x-0))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-1))
+  (precedes ((0 0) (2 0)) ((0 0) (4 1)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((4 0) (2 0)) ((4 2) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0 x-1)
+  (precur (2 0))
+  (operation encryption-test (added-strand init 3)
+    (enc (exp (gen) x-1) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-1)
+          (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-1)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-1) (privk a))
+          (exp (gen) (mul x x-1)))))
+    ((recv (exp (gen) (mul x x-1))) (send (exp (gen) (mul x x-1))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) x-1))))
+    ((send (exp (gen) x-0)))
+    ((send (exp (gen) x-1))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-1) (privk b-0))
+            (exp (gen) (mul x x-1)))))
+      (send
+        (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-1))))))
+  (label 21)
+  (parent 14)
+  (unrealized (1 0) (2 0) (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (x x-0 y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) y)))
+  (defstrand init 1 (x x-0))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 0) (2 0))
+    ((4 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0 y)
+  (precur (2 0))
+  (operation encryption-test (added-strand resp 2)
+    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) y)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) y))))
+    ((send (exp (gen) x-0)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))))
+  (label 22)
+  (parent 14)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 b-1 name) (h base) (x y x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) x-0)))
+  (defstrand resp 2 (b b-0) (h h) (y y))
+  (defstrand init 3 (a b) (b b-1) (h (exp (gen) x)) (x x-0))
+  (precedes ((0 0) (2 0)) ((0 0) (4 1)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (2 0)) ((4 0) (2 0)) ((4 2) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y x-0)
+  (precur (2 0))
+  (operation encryption-test (added-strand init 3)
+    (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) x-0)))
+      (send (cat (exp (gen) y) (mul x (rec y) x-0))))
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0))))))
+  (label 23)
+  (parent 15)
+  (unrealized (1 0) (2 0) (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) y) x))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation encryption-test (displaced 4 3 resp 2)
+    (enc (exp (gen) y-0) (exp (gen) x) (privk b-0)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))))
+  (label 24)
+  (parent 15)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (h base) (x y y-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y-0)) (x x))
+  (deflistener (exp (gen) (mul x y-0)))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) y-0)))
+  (defstrand resp 2 (b b-0) (h h) (y y))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y-0))
+  (precedes ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0))
+    ((4 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y y-0)
+  (precur (2 0))
+  (operation encryption-test (added-strand resp 2)
+    (enc (exp (gen) y-0) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y-0)
+          (enc (enc (exp (gen) y-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y-0) (privk a))
+          (exp (gen) (mul x y-0)))))
+    ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) y-0)))
+      (send (cat (exp (gen) y) (mul x (rec y) y-0))))
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y-0)
+          (enc (enc (exp (gen) y-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y-0)))))))
+  (label 25)
+  (parent 15)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x) x-0))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 2) (0 1)) ((4 1) (3 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation encryption-test (added-listener (exp (gen) (mul x x-0)))
+    (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+      (exp (gen) (mul x x-0))) (3 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0)))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))
+  (label 26)
+  (parent 16)
+  (unrealized (2 0) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (gen) (mul x x-0)))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 2) (0 1)) ((4 1) (3 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation encryption-test (added-listener (exp (gen) (mul x x-0)))
+    (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+      (exp (gen) (mul x x-0))) (3 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (gen) (mul x x-0))) (send (cat (gen) (mul x x-0))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))
+  (label 27)
+  (parent 18)
+  (unrealized (1 0) (2 0) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x-0) x))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (4 0)) ((3 2) (0 1)) ((4 1) (3 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation encryption-test (added-listener (exp (gen) (mul x x-0)))
+    (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+      (exp (gen) (mul x x-0))) (3 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x)))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))
+  (label 28)
+  (parent 20)
+  (unrealized (2 0) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 x-1 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-1)) (x x))
+  (deflistener (exp (gen) (mul x x-1)))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))
+  (defstrand init 1 (x x-0))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-1))
+  (deflistener (exp (gen) (mul x x-1)))
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((4 0) (2 0)) ((4 0) (5 0)) ((4 2) (0 1))
+    ((5 1) (4 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0 x-1)
+  (precur (2 0))
+  (operation encryption-test (added-listener (exp (gen) (mul x x-1)))
+    (enc (enc (exp (gen) x) (exp (gen) x-1) (privk b-0))
+      (exp (gen) (mul x x-1))) (4 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-1)
+          (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-1)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-1) (privk a))
+          (exp (gen) (mul x x-1)))))
+    ((recv (exp (gen) (mul x x-1))) (send (exp (gen) (mul x x-1))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) x-1))))
+    ((send (exp (gen) x-0)))
+    ((send (exp (gen) x-1))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-1) (privk b-0))
+            (exp (gen) (mul x x-1)))))
+      (send
+        (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-1)))))
+    ((recv (exp (gen) (mul x x-1))) (send (exp (gen) (mul x x-1)))))
+  (label 29)
+  (parent 21)
+  (unrealized (1 0) (2 0) (5 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 b-1 name) (h base) (x y x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) x-0)))
+  (defstrand resp 2 (b b-0) (h h) (y y))
+  (defstrand init 3 (a b) (b b-1) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (2 0)) ((4 0) (2 0)) ((4 0) (5 0)) ((4 2) (0 1))
+    ((5 1) (4 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y x-0)
+  (precur (2 0))
+  (operation encryption-test (added-listener (exp (gen) (mul x x-0)))
+    (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1))
+      (exp (gen) (mul x x-0))) (4 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) x-0)))
+      (send (cat (exp (gen) y) (mul x (rec y) x-0))))
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))
+  (label 30)
+  (parent 23)
+  (unrealized (1 0) (2 0) (5 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x) x-0))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x) x-0))
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))
+    ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp (gen) x) x-0))
+    (exp (gen) (mul x x-0)) (4 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0)))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0))))
+  (label 31)
+  (parent 26)
+  (unrealized (2 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x) x-0))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x-0) x))
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))
+    ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp (gen) x-0) x))
+    (exp (gen) (mul x x-0)) (4 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0)))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x))))
+  (label 32)
+  (parent 26)
+  (unrealized (2 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (gen) (mul x x-0)))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x) x-0))
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))
+    ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp (gen) x) x-0))
+    (exp (gen) (mul x x-0)) (4 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (gen) (mul x x-0))) (send (cat (gen) (mul x x-0))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0))))
+  (label 33)
+  (parent 27)
+  (unrealized (1 0) (2 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (gen) (mul x x-0)))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x-0) x))
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))
+    ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp (gen) x-0) x))
+    (exp (gen) (mul x x-0)) (4 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (gen) (mul x x-0))) (send (cat (gen) (mul x x-0))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x))))
+  (label 34)
+  (parent 27)
+  (unrealized (1 0) (2 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x-0) x))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x) x-0))
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))
+    ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp (gen) x) x-0))
+    (exp (gen) (mul x x-0)) (4 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x)))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0))))
+  (label 35)
+  (parent 28)
+  (unrealized (2 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x-0) x))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x-0) x))
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1))
+    ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp (gen) x-0) x))
+    (exp (gen) (mul x x-0)) (4 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x)))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x))))
+  (label 36)
+  (parent 28)
+  (unrealized (2 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 x-1 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-1)) (x x))
+  (deflistener (exp (gen) (mul x x-1)))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))
+  (defstrand init 1 (x x-0))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-1))
+  (deflistener (exp (gen) (mul x x-1)))
+  (deflistener (cat (exp (gen) x) x-1))
+  (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((4 0) (2 0)) ((4 0) (6 0)) ((4 2) (0 1))
+    ((5 1) (4 1)) ((6 1) (5 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0 x-1)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp (gen) x) x-1))
+    (exp (gen) (mul x x-1)) (5 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-1)
+          (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-1)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-1) (privk a))
+          (exp (gen) (mul x x-1)))))
+    ((recv (exp (gen) (mul x x-1))) (send (exp (gen) (mul x x-1))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) x-1))))
+    ((send (exp (gen) x-0)))
+    ((send (exp (gen) x-1))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-1) (privk b-0))
+            (exp (gen) (mul x x-1)))))
+      (send
+        (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-1)))))
+    ((recv (exp (gen) (mul x x-1))) (send (exp (gen) (mul x x-1))))
+    ((recv (cat (exp (gen) x) x-1)) (send (cat (exp (gen) x) x-1))))
+  (label 37)
+  (parent 29)
+  (unrealized (1 0) (2 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 x-1 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-1)) (x x))
+  (deflistener (exp (gen) (mul x x-1)))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))
+  (defstrand init 1 (x x-0))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-1))
+  (deflistener (exp (gen) (mul x x-1)))
+  (deflistener (cat (exp (gen) x-1) x))
+  (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 0) (2 0)) ((4 0) (2 0)) ((4 0) (6 0)) ((4 2) (0 1))
+    ((5 1) (4 1)) ((6 1) (5 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0 x-1)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp (gen) x-1) x))
+    (exp (gen) (mul x x-1)) (5 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-1)
+          (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-1)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-1) (privk a))
+          (exp (gen) (mul x x-1)))))
+    ((recv (exp (gen) (mul x x-1))) (send (exp (gen) (mul x x-1))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) x-1))))
+    ((send (exp (gen) x-0)))
+    ((send (exp (gen) x-1))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-1) (privk b-0))
+            (exp (gen) (mul x x-1)))))
+      (send
+        (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-1)))))
+    ((recv (exp (gen) (mul x x-1))) (send (exp (gen) (mul x x-1))))
+    ((recv (cat (exp (gen) x-1) x)) (send (cat (exp (gen) x-1) x))))
+  (label 38)
+  (parent 29)
+  (unrealized (1 0) (2 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 b-1 name) (h base) (x y x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) x-0)))
+  (defstrand resp 2 (b b-0) (h h) (y y))
+  (defstrand init 3 (a b) (b b-1) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x) x-0))
+  (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (2 0)) ((4 0) (2 0)) ((4 0) (6 0)) ((4 2) (0 1))
+    ((5 1) (4 1)) ((6 1) (5 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y x-0)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp (gen) x) x-0))
+    (exp (gen) (mul x x-0)) (5 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) x-0)))
+      (send (cat (exp (gen) y) (mul x (rec y) x-0))))
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0))))
+  (label 39)
+  (parent 30)
+  (unrealized (1 0) (2 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 b-1 name) (h base) (x y x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) x-0)))
+  (defstrand resp 2 (b b-0) (h h) (y y))
+  (defstrand init 3 (a b) (b b-1) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x-0) x))
+  (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (2 0)) ((4 0) (2 0)) ((4 0) (6 0)) ((4 2) (0 1))
+    ((5 1) (4 1)) ((6 1) (5 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y x-0)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp (gen) x-0) x))
+    (exp (gen) (mul x x-0)) (5 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) x-0)))
+      (send (cat (exp (gen) y) (mul x (rec y) x-0))))
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x))))
+  (label 40)
+  (parent 30)
+  (unrealized (1 0) (2 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol station-to-station diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace (send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc (exp (gen) x) h (privk a)) (exp h x)))
+      (send (privk a)))
+    (uniq-gen x))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace (recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y)))
+      (send (privk b)))
+    (uniq-gen y))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton station-to-station
+  (vars (a b name) (h base) (y rndx))
+  (defstrand resp 3 (a a) (b b) (h h) (y y))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y)
+  (traces
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y)))))
+  (label 41)
+  (unrealized (0 2))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (y x rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x)
+  (operation encryption-test (added-strand init 3)
+    (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+      (exp (gen) (mul y x))) (0 2))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x)))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+            (exp (gen) (mul y x)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x))))))
+  (label 42)
+  (parent 41)
+  (unrealized (1 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (h base) (y rndx))
+  (defstrand resp 3 (a a) (b b) (h h) (y y))
+  (deflistener (exp h y))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y)
+  (operation encryption-test (added-listener (exp h y))
+    (enc (enc h (exp (gen) y) (privk a)) (exp h y)) (0 2))
+  (traces
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y))))
+    ((recv (exp h y)) (send (exp h y))))
+  (label 43)
+  (parent 41)
+  (unrealized (0 2) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (x y rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (operation encryption-test (displaced 2 0 resp 2)
+    (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+      (exp (gen) (mul x y))) (1 1))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y))))))
+  (label 44)
+  (parent 42)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (y y) (h (exp (gen) x)))))
+  (origs))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (y x rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul y x)))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x)
+  (operation encryption-test (added-listener (exp (gen) (mul y x)))
+    (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+      (exp (gen) (mul y x))) (1 1))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x)))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+            (exp (gen) (mul y x)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x)))))
+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))
+  (label 45)
+  (parent 42)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (h base) (y rndx) (w expt))
+  (defstrand resp 3 (a a) (b b) (h h) (y y))
+  (deflistener (exp h y))
+  (deflistener (cat (exp h (mul y (rec w))) w))
+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp h (mul y (rec w))) w))
+    (exp h y) (1 0))
+  (traces
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y))))
+    ((recv (exp h y)) (send (exp h y)))
+    ((recv (cat (exp h (mul y (rec w))) w))
+      (send (cat (exp h (mul y (rec w))) w))))
+  (label 46)
+  (parent 43)
+  (unrealized (0 2) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (y x rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul y x)))
+  (deflistener (cat (exp (gen) y) x))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))
+    ((3 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x)
+  (operation nonce-test (added-listener (cat (exp (gen) y) x))
+    (exp (gen) (mul y x)) (2 0))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x)))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+            (exp (gen) (mul y x)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x)))))
+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
+  (label 47)
+  (parent 45)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (y x rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul y x)))
+  (deflistener (cat (exp (gen) x) y))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))
+    ((3 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x)
+  (operation nonce-test (added-listener (cat (exp (gen) x) y))
+    (exp (gen) (mul y x)) (2 0))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x)))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+            (exp (gen) (mul y x)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x)))))
+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
+  (label 48)
+  (parent 45)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol station-to-station diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace (send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc (exp (gen) x) h (privk a)) (exp h x)))
+      (send (privk a)))
+    (uniq-gen x))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace (recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y)))
+      (send (privk b)))
+    (uniq-gen y))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton station-to-station
+  (vars (a b name) (h base) (x rndx))
+  (defstrand init 3 (a a) (b b) (h h) (x x))
+  (deflistener (exp h x))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (traces
+    ((send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc (exp (gen) x) h (privk a)) (exp h x))))
+    ((recv (exp h x)) (send (exp h x))))
+  (label 49)
+  (unrealized (0 1) (1 0))
+  (preskeleton)
+  (origs)
+  (comment "Not a skeleton"))
+
+(defskeleton station-to-station
+  (vars (a b name) (h base) (x rndx))
+  (defstrand init 3 (a a) (b b) (h h) (x x))
+  (deflistener (exp h x))
+  (precedes ((0 0) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (traces
+    ((send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc (exp (gen) x) h (privk a)) (exp h x))))
+    ((recv (exp h x)) (send (exp h x))))
+  (label 50)
+  (parent 49)
+  (unrealized (0 1) (1 0))
+  (origs)
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (x rndx))
+  (defstrand init 3 (a a) (b b) (h (gen)) (x x))
+  (deflistener (exp (gen) x))
+  (precedes ((0 0) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (gen)
+          (enc (enc (gen) (exp (gen) x) (privk b)) (exp (gen) x))))
+      (send (enc (enc (exp (gen) x) (gen) (privk a)) (exp (gen) x))))
+    ((recv (exp (gen) x)) (send (exp (gen) x))))
+  (label 51)
+  (parent 50)
+  (unrealized (0 1))
+  (dead)
+  (origs)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b name) (x rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (rec x))) (x x))
+  (deflistener (gen))
+  (precedes ((0 0) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (operation nonce-test (contracted (h (exp (gen) (rec x)))) (gen)
+    (1 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (rec x))
+          (enc (enc (exp (gen) (rec x)) (exp (gen) x) (privk b))
+            (gen))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) (rec x)) (privk a)) (gen))))
+    ((recv (gen)) (send (gen))))
+  (label 52)
+  (parent 50)
+  (unrealized (0 1))
+  (dead)
+  (origs)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) x-0))) (x x))
+  (deflistener (exp (gen) x-0))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (1 0)) ((2 0) (0 1)) ((2 0) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (mul (rec x) x-0))
+          (enc
+            (enc (exp (gen) (mul (rec x) x-0)) (exp (gen) x) (privk b))
+            (exp (gen) x-0))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) (mul (rec x) x-0)) (privk a))
+          (exp (gen) x-0))))
+    ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))
+    ((send (exp (gen) x-0))))
+  (label 53)
+  (parent 50)
+  (unrealized (0 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (h base) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) y))) (x x))
+  (deflistener (exp (gen) y))
+  (defstrand resp 2 (b b-0) (h h) (y y))
+  (precedes ((0 0) (1 0)) ((2 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (operation nonce-test (added-strand resp 2) (exp (gen) y) (1 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (mul (rec x) y))
+          (enc (enc (exp (gen) (mul (rec x) y)) (exp (gen) x) (privk b))
+            (exp (gen) y))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) (mul (rec x) y)) (privk a))
+          (exp (gen) y)))) ((recv (exp (gen) y)) (send (exp (gen) y)))
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b-0)) (exp h y))))))
+  (label 54)
+  (parent 50)
+  (unrealized (0 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b name) (h base) (x rndx) (w expt))
+  (defstrand init 3 (a a) (b b) (h h) (x x))
+  (deflistener (exp h x))
+  (deflistener (cat (exp h (mul x (rec w))) w))
+  (precedes ((0 0) (2 0)) ((2 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp h (mul x (rec w))) w))
+    (exp h x) (1 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc (exp (gen) x) h (privk a)) (exp h x))))
+    ((recv (exp h x)) (send (exp h x)))
+    ((recv (cat (exp h (mul x (rec w))) w))
+      (send (cat (exp h (mul x (rec w))) w))))
+  (label 55)
+  (parent 50)
+  (unrealized (0 1) (2 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (w expt) (x rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) w)) (x x))
+  (deflistener (exp (gen) (mul w x)))
+  (deflistener (cat (exp (gen) x) w))
+  (precedes ((0 0) (2 0)) ((2 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) w)
+          (enc (enc (exp (gen) w) (exp (gen) x) (privk b))
+            (exp (gen) (mul w x)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) w) (privk a))
+          (exp (gen) (mul w x)))))
+    ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))
+    ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))
+  (label 56)
+  (parent 55)
+  (unrealized (0 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (x rndx) (w expt))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) w))) (x x))
+  (deflistener (exp (gen) w))
+  (deflistener (cat (gen) w))
+  (precedes ((0 0) (2 0)) ((2 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (contracted (h (exp (gen) (mul (rec x) w))))
+    (gen) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (mul (rec x) w))
+          (enc (enc (exp (gen) (mul (rec x) w)) (exp (gen) x) (privk b))
+            (exp (gen) w))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) (mul (rec x) w)) (privk a))
+          (exp (gen) w)))) ((recv (exp (gen) w)) (send (exp (gen) w)))
+    ((recv (cat (gen) w)) (send (cat (gen) w))))
+  (label 57)
+  (parent 55)
+  (unrealized (0 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (x rndx) (w expt) (x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) w x-0)))
+    (x x))
+  (deflistener (exp (gen) (mul w x-0)))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (2 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (mul (rec x) w x-0))
+          (enc
+            (enc (exp (gen) (mul (rec x) w x-0)) (exp (gen) x)
+              (privk b)) (exp (gen) (mul w x-0)))))
+      (send
+        (enc
+          (enc (exp (gen) x) (exp (gen) (mul (rec x) w x-0)) (privk a))
+          (exp (gen) (mul w x-0)))))
+    ((recv (exp (gen) (mul w x-0))) (send (exp (gen) (mul w x-0))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((send (exp (gen) x-0))))
+  (label 58)
+  (parent 55)
+  (unrealized (0 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (h base) (x rndx) (w expt) (y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) w y))) (x x))
+  (deflistener (exp (gen) (mul w y)))
+  (deflistener (cat (exp (gen) y) w))
+  (defstrand resp 2 (b b-0) (h h) (y y))
+  (precedes ((0 0) (2 0)) ((2 1) (1 0)) ((3 1) (0 1)) ((3 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation nonce-test (added-strand resp 2) (exp (gen) y) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (mul (rec x) w y))
+          (enc
+            (enc (exp (gen) (mul (rec x) w y)) (exp (gen) x) (privk b))
+            (exp (gen) (mul w y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) (mul (rec x) w y)) (privk a))
+          (exp (gen) (mul w y)))))
+    ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b-0)) (exp h y))))))
+  (label 59)
+  (parent 55)
+  (unrealized (0 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x) x-0))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (precedes ((0 0) (2 0)) ((0 0) (3 1)) ((2 1) (1 0)) ((3 0) (2 0))
+    ((3 2) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation encryption-test (added-strand init 3)
+    (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0)))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0))))))
+  (label 60)
+  (parent 56)
+  (unrealized (2 0) (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) x) y))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (3 0)) ((2 1) (1 0)) ((3 1) (0 1)) ((3 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation encryption-test (added-strand resp 2)
+    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))))
+  (label 61)
+  (parent 56)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (gen) (mul x x-0)))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (precedes ((0 0) (2 0)) ((0 0) (3 1)) ((2 1) (1 0)) ((3 0) (2 0))
+    ((3 2) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation encryption-test (added-strand init 3)
+    (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (gen) (mul x x-0))) (send (cat (gen) (mul x x-0))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0))))))
+  (label 62)
+  (parent 57)
+  (unrealized (1 0) (2 0) (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (gen) (mul x y)))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (3 0)) ((2 1) (1 0)) ((3 1) (0 1)) ((3 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation encryption-test (added-strand resp 2)
+    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (gen) (mul x y))) (send (cat (gen) (mul x y))))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))))
+  (label 63)
+  (parent 57)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x-0) x))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (precedes ((0 0) (2 0)) ((0 0) (3 1)) ((2 1) (1 0)) ((3 0) (2 0))
+    ((3 2) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation encryption-test (displaced 3 4 init 3)
+    (enc (exp (gen) x-1) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x)))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0))))))
+  (label 64)
+  (parent 58)
+  (unrealized (2 0) (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 x-1 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-1)) (x x))
+  (deflistener (exp (gen) (mul x x-1)))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))
+  (defstrand init 1 (x x-0))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-1))
+  (precedes ((0 0) (2 0)) ((0 0) (4 1)) ((2 1) (1 0)) ((3 0) (0 1))
+    ((3 0) (2 0)) ((4 0) (2 0)) ((4 2) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0 x-1)
+  (precur (2 0))
+  (operation encryption-test (added-strand init 3)
+    (enc (exp (gen) x-1) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-1)
+          (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-1)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-1) (privk a))
+          (exp (gen) (mul x x-1)))))
+    ((recv (exp (gen) (mul x x-1))) (send (exp (gen) (mul x x-1))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) x-1))))
+    ((send (exp (gen) x-0)))
+    ((send (exp (gen) x-1))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-1) (privk b-0))
+            (exp (gen) (mul x x-1)))))
+      (send
+        (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-1))))))
+  (label 65)
+  (parent 58)
+  (unrealized (1 0) (2 0) (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (x x-0 y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) y)))
+  (defstrand init 1 (x x-0))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
+    ((4 1) (0 1)) ((4 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0 y)
+  (precur (2 0))
+  (operation encryption-test (added-strand resp 2)
+    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) y)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) y))))
+    ((send (exp (gen) x-0)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))))
+  (label 66)
+  (parent 58)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 b-1 name) (h base) (x y x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) x-0)))
+  (defstrand resp 2 (b b-0) (h h) (y y))
+  (defstrand init 3 (a b) (b b-1) (h (exp (gen) x)) (x x-0))
+  (precedes ((0 0) (2 0)) ((0 0) (4 1)) ((2 1) (1 0)) ((3 1) (0 1))
+    ((3 1) (2 0)) ((4 0) (2 0)) ((4 2) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y x-0)
+  (precur (2 0))
+  (operation encryption-test (added-strand init 3)
+    (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) x-0)))
+      (send (cat (exp (gen) y) (mul x (rec y) x-0))))
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0))))))
+  (label 67)
+  (parent 59)
+  (unrealized (1 0) (2 0) (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) y) x))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (3 0)) ((2 1) (1 0)) ((3 1) (0 1)) ((3 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation encryption-test (displaced 4 3 resp 2)
+    (enc (exp (gen) y-0) (exp (gen) x) (privk b-0)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))))
+  (label 68)
+  (parent 59)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (h base) (x y y-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y-0)) (x x))
+  (deflistener (exp (gen) (mul x y-0)))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) y-0)))
+  (defstrand resp 2 (b b-0) (h h) (y y))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y-0))
+  (precedes ((0 0) (4 0)) ((2 1) (1 0)) ((3 1) (0 1)) ((3 1) (2 0))
+    ((4 1) (0 1)) ((4 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y y-0)
+  (precur (2 0))
+  (operation encryption-test (added-strand resp 2)
+    (enc (exp (gen) y-0) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y-0)
+          (enc (enc (exp (gen) y-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y-0) (privk a))
+          (exp (gen) (mul x y-0)))))
+    ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) y-0)))
+      (send (cat (exp (gen) y) (mul x (rec y) y-0))))
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y-0)
+          (enc (enc (exp (gen) y-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y-0)))))))
+  (label 69)
+  (parent 59)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x) x-0))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((2 1) (1 0)) ((3 0) (2 0))
+    ((3 0) (4 0)) ((3 2) (0 1)) ((4 1) (3 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation encryption-test (added-listener (exp (gen) (mul x x-0)))
+    (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+      (exp (gen) (mul x x-0))) (3 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0)))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))
+  (label 70)
+  (parent 60)
+  (unrealized (2 0) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (gen) (mul x x-0)))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((2 1) (1 0)) ((3 0) (2 0))
+    ((3 0) (4 0)) ((3 2) (0 1)) ((4 1) (3 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation encryption-test (added-listener (exp (gen) (mul x x-0)))
+    (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+      (exp (gen) (mul x x-0))) (3 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (gen) (mul x x-0))) (send (cat (gen) (mul x x-0))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))
+  (label 71)
+  (parent 62)
+  (unrealized (1 0) (2 0) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x-0) x))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((2 1) (1 0)) ((3 0) (2 0))
+    ((3 0) (4 0)) ((3 2) (0 1)) ((4 1) (3 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation encryption-test (added-listener (exp (gen) (mul x x-0)))
+    (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+      (exp (gen) (mul x x-0))) (3 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x)))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))
+  (label 72)
+  (parent 64)
+  (unrealized (2 0) (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 x-1 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-1)) (x x))
+  (deflistener (exp (gen) (mul x x-1)))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))
+  (defstrand init 1 (x x-0))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-1))
+  (deflistener (exp (gen) (mul x x-1)))
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((2 1) (1 0)) ((3 0) (0 1))
+    ((3 0) (2 0)) ((4 0) (2 0)) ((4 0) (5 0)) ((4 2) (0 1))
+    ((5 1) (4 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0 x-1)
+  (precur (2 0))
+  (operation encryption-test (added-listener (exp (gen) (mul x x-1)))
+    (enc (enc (exp (gen) x) (exp (gen) x-1) (privk b-0))
+      (exp (gen) (mul x x-1))) (4 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-1)
+          (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-1)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-1) (privk a))
+          (exp (gen) (mul x x-1)))))
+    ((recv (exp (gen) (mul x x-1))) (send (exp (gen) (mul x x-1))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) x-1))))
+    ((send (exp (gen) x-0)))
+    ((send (exp (gen) x-1))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-1) (privk b-0))
+            (exp (gen) (mul x x-1)))))
+      (send
+        (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-1)))))
+    ((recv (exp (gen) (mul x x-1))) (send (exp (gen) (mul x x-1)))))
+  (label 73)
+  (parent 65)
+  (unrealized (1 0) (2 0) (5 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 b-1 name) (h base) (x y x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) x-0)))
+  (defstrand resp 2 (b b-0) (h h) (y y))
+  (defstrand init 3 (a b) (b b-1) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((2 1) (1 0)) ((3 1) (0 1))
+    ((3 1) (2 0)) ((4 0) (2 0)) ((4 0) (5 0)) ((4 2) (0 1))
+    ((5 1) (4 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y x-0)
+  (precur (2 0))
+  (operation encryption-test (added-listener (exp (gen) (mul x x-0)))
+    (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1))
+      (exp (gen) (mul x x-0))) (4 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) x-0)))
+      (send (cat (exp (gen) y) (mul x (rec y) x-0))))
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))
+  (label 74)
+  (parent 67)
+  (unrealized (1 0) (2 0) (5 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x) x-0))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x) x-0))
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((2 1) (1 0)) ((3 0) (2 0))
+    ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp (gen) x) x-0))
+    (exp (gen) (mul x x-0)) (4 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0)))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0))))
+  (label 75)
+  (parent 70)
+  (unrealized (2 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x) x-0))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x-0) x))
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((2 1) (1 0)) ((3 0) (2 0))
+    ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp (gen) x-0) x))
+    (exp (gen) (mul x x-0)) (4 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0)))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x))))
+  (label 76)
+  (parent 70)
+  (unrealized (2 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (gen) (mul x x-0)))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x) x-0))
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((2 1) (1 0)) ((3 0) (2 0))
+    ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp (gen) x) x-0))
+    (exp (gen) (mul x x-0)) (4 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (gen) (mul x x-0))) (send (cat (gen) (mul x x-0))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0))))
+  (label 77)
+  (parent 71)
+  (unrealized (1 0) (2 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (gen) (mul x x-0)))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x-0) x))
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((2 1) (1 0)) ((3 0) (2 0))
+    ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp (gen) x-0) x))
+    (exp (gen) (mul x x-0)) (4 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (gen) (mul x x-0))) (send (cat (gen) (mul x x-0))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x))))
+  (label 78)
+  (parent 71)
+  (unrealized (1 0) (2 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x-0) x))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x) x-0))
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((2 1) (1 0)) ((3 0) (2 0))
+    ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp (gen) x) x-0))
+    (exp (gen) (mul x x-0)) (4 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x)))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0))))
+  (label 79)
+  (parent 72)
+  (unrealized (2 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x-0) x))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x-0) x))
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((2 1) (1 0)) ((3 0) (2 0))
+    ((3 0) (5 0)) ((3 2) (0 1)) ((4 1) (3 1)) ((5 1) (4 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp (gen) x-0) x))
+    (exp (gen) (mul x x-0)) (4 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x)))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x))))
+  (label 80)
+  (parent 72)
+  (unrealized (2 0) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 x-1 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-1)) (x x))
+  (deflistener (exp (gen) (mul x x-1)))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))
+  (defstrand init 1 (x x-0))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-1))
+  (deflistener (exp (gen) (mul x x-1)))
+  (deflistener (cat (exp (gen) x) x-1))
+  (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((2 1) (1 0)) ((3 0) (0 1))
+    ((3 0) (2 0)) ((4 0) (2 0)) ((4 0) (6 0)) ((4 2) (0 1))
+    ((5 1) (4 1)) ((6 1) (5 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0 x-1)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp (gen) x) x-1))
+    (exp (gen) (mul x x-1)) (5 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-1)
+          (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-1)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-1) (privk a))
+          (exp (gen) (mul x x-1)))))
+    ((recv (exp (gen) (mul x x-1))) (send (exp (gen) (mul x x-1))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) x-1))))
+    ((send (exp (gen) x-0)))
+    ((send (exp (gen) x-1))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-1) (privk b-0))
+            (exp (gen) (mul x x-1)))))
+      (send
+        (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-1)))))
+    ((recv (exp (gen) (mul x x-1))) (send (exp (gen) (mul x x-1))))
+    ((recv (cat (exp (gen) x) x-1)) (send (cat (exp (gen) x) x-1))))
+  (label 81)
+  (parent 73)
+  (unrealized (1 0) (2 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 name) (x x-0 x-1 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-1)) (x x))
+  (deflistener (exp (gen) (mul x x-1)))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))
+  (defstrand init 1 (x x-0))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-1))
+  (deflistener (exp (gen) (mul x x-1)))
+  (deflistener (cat (exp (gen) x-1) x))
+  (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((2 1) (1 0)) ((3 0) (0 1))
+    ((3 0) (2 0)) ((4 0) (2 0)) ((4 0) (6 0)) ((4 2) (0 1))
+    ((5 1) (4 1)) ((6 1) (5 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0 x-1)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp (gen) x-1) x))
+    (exp (gen) (mul x x-1)) (5 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-1)
+          (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-1)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-1) (privk a))
+          (exp (gen) (mul x x-1)))))
+    ((recv (exp (gen) (mul x x-1))) (send (exp (gen) (mul x x-1))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) x-1)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) x-1))))
+    ((send (exp (gen) x-0)))
+    ((send (exp (gen) x-1))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-1) (privk b-0))
+            (exp (gen) (mul x x-1)))))
+      (send
+        (enc (enc (exp (gen) x-1) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-1)))))
+    ((recv (exp (gen) (mul x x-1))) (send (exp (gen) (mul x x-1))))
+    ((recv (cat (exp (gen) x-1) x)) (send (cat (exp (gen) x-1) x))))
+  (label 82)
+  (parent 73)
+  (unrealized (1 0) (2 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 b-1 name) (h base) (x y x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) x-0)))
+  (defstrand resp 2 (b b-0) (h h) (y y))
+  (defstrand init 3 (a b) (b b-1) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x) x-0))
+  (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((2 1) (1 0)) ((3 1) (0 1))
+    ((3 1) (2 0)) ((4 0) (2 0)) ((4 0) (6 0)) ((4 2) (0 1))
+    ((5 1) (4 1)) ((6 1) (5 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y x-0)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp (gen) x) x-0))
+    (exp (gen) (mul x x-0)) (5 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) x-0)))
+      (send (cat (exp (gen) y) (mul x (rec y) x-0))))
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0))))
+  (label 83)
+  (parent 74)
+  (unrealized (1 0) (2 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b b-0 b-1 name) (h base) (x y x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) x-0)))
+  (defstrand resp 2 (b b-0) (h h) (y y))
+  (defstrand init 3 (a b) (b b-1) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x-0) x))
+  (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((2 1) (1 0)) ((3 1) (0 1))
+    ((3 1) (2 0)) ((4 0) (2 0)) ((4 0) (6 0)) ((4 2) (0 1))
+    ((5 1) (4 1)) ((6 1) (5 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y x-0)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp (gen) x-0) x))
+    (exp (gen) (mul x x-0)) (5 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) x-0)))
+      (send (cat (exp (gen) y) (mul x (rec y) x-0))))
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-1))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x))))
+  (label 84)
+  (parent 74)
+  (unrealized (1 0) (2 0) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol station-to-station diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace (send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc (exp (gen) x) h (privk a)) (exp h x)))
+      (send (privk a)))
+    (uniq-gen x))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace (recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y)))
+      (send (privk b)))
+    (uniq-gen y))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton station-to-station
+  (vars (a b name) (h base) (y rndx))
+  (defstrand resp 3 (a a) (b b) (h h) (y y))
+  (deflistener (exp h y))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y)
+  (traces
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y))))
+    ((recv (exp h y)) (send (exp h y))))
+  (label 85)
+  (unrealized (0 2) (1 0))
+  (preskeleton)
+  (origs)
+  (comment "Not a skeleton"))
+
+(defskeleton station-to-station
+  (vars (a b name) (h base) (y rndx))
+  (defstrand resp 3 (a a) (b b) (h h) (y y))
+  (deflistener (exp h y))
+  (precedes ((0 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y)
+  (traces
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y))))
+    ((recv (exp h y)) (send (exp h y))))
+  (label 86)
+  (parent 85)
+  (unrealized (0 2) (1 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (h base) (y rndx) (w expt))
+  (defstrand resp 3 (a a) (b b) (h h) (y y))
+  (deflistener (exp h y))
+  (deflistener (cat (exp h (mul y (rec w))) w))
+  (precedes ((0 1) (2 0)) ((2 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp h (mul y (rec w))) w))
+    (exp h y) (1 0))
+  (traces
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y))))
+    ((recv (exp h y)) (send (exp h y)))
+    ((recv (cat (exp h (mul y (rec w))) w))
+      (send (cat (exp h (mul y (rec w))) w))))
+  (label 87)
+  (parent 86)
+  (unrealized (0 2) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol station-to-station diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace (send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc (exp (gen) x) h (privk a)) (exp h x)))
+      (send (privk a)))
+    (uniq-gen x))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace (recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y)))
+      (send (privk b)))
+    (uniq-gen y))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton station-to-station
+  (vars (a b a-0 name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a a-0) (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a-0))
+          (exp (gen) (mul x y)))) (send (privk b))))
+  (label 88)
+  (unrealized (1 2))
+  (origs ((privk b) (1 3)) ((privk a) (0 3)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b name) (y x rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a a) (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))
+  (uniq-orig (privk a) (privk b))
+  (uniq-gen y x)
+  (operation encryption-test (displaced 2 0 init 3)
+    (enc (enc (exp (gen) x) (exp (gen) y) (privk a-0))
+      (exp (gen) (mul y x))) (1 2))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x)))) (send (privk b))))
+  (label 89)
+  (parent 88)
+  (realized)
+  (shape)
+  (maps ((0 1) ((a a) (b b) (x x) (y y) (a-0 a))))
+  (origs ((privk b) (1 3)) ((privk a) (0 3))))
+
+(defskeleton station-to-station
+  (vars (a b a-0 name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a a-0) (b b) (h (exp (gen) x)) (y y))
+  (deflistener (exp (gen) (mul x y)))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (1 2)))
+  (uniq-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (operation encryption-test (added-listener (exp (gen) (mul x y)))
+    (enc (enc (exp (gen) x) (exp (gen) y) (privk a-0))
+      (exp (gen) (mul x y))) (1 2))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a-0))
+          (exp (gen) (mul x y)))) (send (privk b)))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))
+  (label 90)
+  (parent 88)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b a-0 name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a a-0) (b b) (h (exp (gen) x)) (y y))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) x) y))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (1 2))
+    ((3 1) (2 0)))
+  (uniq-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (operation nonce-test (added-listener (cat (exp (gen) x) y))
+    (exp (gen) (mul x y)) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a-0))
+          (exp (gen) (mul x y)))) (send (privk b)))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
+  (label 91)
+  (parent 90)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b a-0 name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a a-0) (b b) (h (exp (gen) x)) (y y))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) y) x))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (1 2))
+    ((3 1) (2 0)))
+  (uniq-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (operation nonce-test (added-listener (cat (exp (gen) y) x))
+    (exp (gen) (mul x y)) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a-0))
+          (exp (gen) (mul x y)))) (send (privk b)))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
+  (label 92)
+  (parent 90)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol station-to-station diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace (send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc (exp (gen) x) h (privk a)) (exp h x)))
+      (send (privk a)))
+    (uniq-gen x))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace (recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y)))
+      (send (privk b)))
+    (uniq-gen y))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton station-to-station
+  (vars (a b a-0 name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a a-0) (b b) (h (exp (gen) x)) (y y))
+  (deflistener (exp (gen) (mul x y)))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a-0))
+          (exp (gen) (mul x y)))) (send (privk b)))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))
+  (label 93)
+  (unrealized (1 2) (2 0))
+  (preskeleton)
+  (origs ((privk b) (1 3)) ((privk a) (0 3)))
+  (comment "Not a skeleton"))
+
+(defskeleton station-to-station
+  (vars (a b a-0 name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a a-0) (b b) (h (exp (gen) x)) (y y))
+  (deflistener (exp (gen) (mul x y)))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)))
+  (uniq-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a-0))
+          (exp (gen) (mul x y)))) (send (privk b)))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))
+  (label 94)
+  (parent 93)
+  (unrealized (1 2) (2 0))
+  (origs ((privk b) (1 3)) ((privk a) (0 3)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station
+  (vars (a b a-0 name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a a-0) (b b) (h (exp (gen) x)) (y y))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) x) y))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((3 1) (2 0)))
+  (uniq-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (operation nonce-test (added-listener (cat (exp (gen) x) y))
+    (exp (gen) (mul x y)) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a-0))
+          (exp (gen) (mul x y)))) (send (privk b)))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
+  (label 95)
+  (parent 94)
+  (unrealized (1 2) (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station
+  (vars (a b a-0 name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a a-0) (b b) (h (exp (gen) x)) (y y))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) y) x))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((3 1) (2 0)))
+  (uniq-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (operation nonce-test (added-listener (cat (exp (gen) y) x))
+    (exp (gen) (mul x y)) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a-0))
+          (exp (gen) (mul x y)))) (send (privk b)))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
+  (label 96)
+  (parent 94)
+  (unrealized (1 2) (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/tst/sts_unflip.scm b/tst/sts_unflip.scm
new file mode 100644
--- /dev/null
+++ b/tst/sts_unflip.scm
@@ -0,0 +1,81 @@
+;;; Station-to-station
+
+;;; This is an authenticated form of a Diffie-Hellman key exchange.
+
+;;; The file contains a model of the station-to-station protocol.  An
+;;; assumption is made that *any* initiator or responder properly
+;;; picks a fresh random exponent and does not allow it to be obtained
+;;; by the adversary.
+
+;;; This version is weakened by not flipping the second signed msg.
+
+(herald "Station-to-station protocol unflipped" (algebra diffie-hellman))
+
+(defprotocol station-to-station-unflip diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace
+     (send (exp (gen) x))
+     (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+     (send (enc (enc h (exp (gen) x) (privk a)) (exp h x)))
+     (send (privk a)))
+    (uniq-gen x))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace
+     (recv h)
+     (send (cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+     (recv (enc (enc (exp (gen) y) h (privk a)) (exp h y)))
+     (send (privk b)))
+    (uniq-gen y))
+)
+
+(defskeleton station-to-station-unflip
+  (vars (a b name))
+  (defstrand init 3 (a a) (b b))
+  (non-orig (privk b))
+)
+
+(defskeleton station-to-station-unflip
+  (vars (a b name))
+  (defstrand resp 3 (a a) (b b))
+  (non-orig (privk a))
+  )
+
+(defskeleton station-to-station-unflip
+  (vars (a b name))
+  (defstrand resp 3 (a a) (b b))
+  (non-orig (privk a))
+  (facts (neq a b))
+  )
+
+(defskeleton station-to-station-unflip
+  (vars (a b name)(x y rndx) (h base))
+  (defstrand init 3 (a a) (b b) (x x) (h h))
+  (deflistener (exp h x))
+  (non-orig (privk b) (privk a))
+)
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x y rndx)(h base))
+  (defstrand resp 3 (a a) (b b) (y y) (h h))
+  (deflistener (exp h y))
+  (non-orig (privk a) (privk b))
+)
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig (privk b) (privk a))
+  )
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (b b) (h (exp (gen) x)) (y y))
+  (deflistener (exp (gen) (mul x y)))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig (privk b) (privk a))
+  )
diff --git a/tst/sts_unflip.tst b/tst/sts_unflip.tst
new file mode 100644
--- /dev/null
+++ b/tst/sts_unflip.tst
@@ -0,0 +1,2034 @@
+(herald "Station-to-station protocol unflipped"
+  (algebra diffie-hellman))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/sts_unflip.scm")
+
+(defprotocol station-to-station-unflip diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace (send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc h (exp (gen) x) (privk a)) (exp h x)))
+      (send (privk a)))
+    (uniq-gen x))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace (recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc (exp (gen) y) h (privk a)) (exp h y)))
+      (send (privk b)))
+    (uniq-gen y))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (h base) (x rndx))
+  (defstrand init 3 (a a) (b b) (h h) (x x))
+  (non-orig (privk b))
+  (uniq-gen x)
+  (traces
+    ((send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc h (exp (gen) x) (privk a)) (exp h x)))))
+  (label 0)
+  (unrealized (0 1))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-gen x y)
+  (operation encryption-test (added-strand resp 2)
+    (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+      (exp (gen) (mul x y))) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y)))))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))))
+  (label 1)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (x x) (h (exp (gen) y)))))
+  (origs))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (h base) (x rndx))
+  (defstrand init 3 (a a) (b b) (h h) (x x))
+  (deflistener (exp h x))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-gen x)
+  (operation encryption-test (added-listener (exp h x))
+    (enc (enc h (exp (gen) x) (privk b)) (exp h x)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc h (exp (gen) x) (privk a)) (exp h x))))
+    ((recv (exp h x)) (send (exp h x))))
+  (label 2)
+  (parent 0)
+  (unrealized (0 1) (1 0))
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x rndx))
+  (defstrand init 3 (a a) (b b) (h (gen)) (x x))
+  (deflistener (exp (gen) x))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-gen x)
+  (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (gen)
+          (enc (enc (gen) (exp (gen) x) (privk b)) (exp (gen) x))))
+      (send (enc (enc (gen) (exp (gen) x) (privk a)) (exp (gen) x))))
+    ((recv (exp (gen) x)) (send (exp (gen) x))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (rec x))) (x x))
+  (deflistener (gen))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-gen x)
+  (operation nonce-test (contracted (h (exp (gen) (rec x)))) (gen)
+    (1 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (rec x))
+          (enc (enc (exp (gen) (rec x)) (exp (gen) x) (privk b))
+            (gen))))
+      (send
+        (enc (enc (exp (gen) (rec x)) (exp (gen) x) (privk a)) (gen))))
+    ((recv (gen)) (send (gen))))
+  (label 4)
+  (parent 2)
+  (unrealized (0 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) x-0))) (x x))
+  (deflistener (exp (gen) x-0))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 0) (1 0)))
+  (non-orig (privk b))
+  (uniq-gen x x-0)
+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (mul (rec x) x-0))
+          (enc
+            (enc (exp (gen) (mul (rec x) x-0)) (exp (gen) x) (privk b))
+            (exp (gen) x-0))))
+      (send
+        (enc (enc (exp (gen) (mul (rec x) x-0)) (exp (gen) x) (privk a))
+          (exp (gen) x-0))))
+    ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))
+    ((send (exp (gen) x-0))))
+  (label 5)
+  (parent 2)
+  (unrealized (0 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b b-0 name) (h base) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) y))) (x x))
+  (deflistener (exp (gen) y))
+  (defstrand resp 2 (b b-0) (h h) (y y))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk b))
+  (uniq-gen x y)
+  (operation nonce-test (added-strand resp 2) (exp (gen) y) (1 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (mul (rec x) y))
+          (enc (enc (exp (gen) (mul (rec x) y)) (exp (gen) x) (privk b))
+            (exp (gen) y))))
+      (send
+        (enc (enc (exp (gen) (mul (rec x) y)) (exp (gen) x) (privk a))
+          (exp (gen) y)))) ((recv (exp (gen) y)) (send (exp (gen) y)))
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b-0)) (exp h y))))))
+  (label 6)
+  (parent 2)
+  (unrealized (0 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (h base) (x rndx) (w expt))
+  (defstrand init 3 (a a) (b b) (h h) (x x))
+  (deflistener (exp h x))
+  (deflistener (cat (exp h (mul x (rec w))) w))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk b))
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp h (mul x (rec w))) w))
+    (exp h x) (1 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc h (exp (gen) x) (privk a)) (exp h x))))
+    ((recv (exp h x)) (send (exp h x)))
+    ((recv (cat (exp h (mul x (rec w))) w))
+      (send (cat (exp h (mul x (rec w))) w))))
+  (label 7)
+  (parent 2)
+  (unrealized (0 1) (2 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (w expt) (x rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) w)) (x x))
+  (deflistener (exp (gen) (mul w x)))
+  (deflistener (cat (exp (gen) x) w))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk b))
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) w)
+          (enc (enc (exp (gen) w) (exp (gen) x) (privk b))
+            (exp (gen) (mul w x)))))
+      (send
+        (enc (enc (exp (gen) w) (exp (gen) x) (privk a))
+          (exp (gen) (mul w x)))))
+    ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))
+    ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))
+  (label 8)
+  (parent 7)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x rndx) (w expt))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) w))) (x x))
+  (deflistener (exp (gen) w))
+  (deflistener (cat (gen) w))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk b))
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (contracted (h (exp (gen) (mul (rec x) w))))
+    (gen) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (mul (rec x) w))
+          (enc (enc (exp (gen) (mul (rec x) w)) (exp (gen) x) (privk b))
+            (exp (gen) w))))
+      (send
+        (enc (enc (exp (gen) (mul (rec x) w)) (exp (gen) x) (privk a))
+          (exp (gen) w)))) ((recv (exp (gen) w)) (send (exp (gen) w)))
+    ((recv (cat (gen) w)) (send (cat (gen) w))))
+  (label 9)
+  (parent 7)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x rndx) (w expt) (x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) w x-0)))
+    (x x))
+  (deflistener (exp (gen) (mul w x-0)))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 0) (2 0)))
+  (non-orig (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (mul (rec x) w x-0))
+          (enc
+            (enc (exp (gen) (mul (rec x) w x-0)) (exp (gen) x)
+              (privk b)) (exp (gen) (mul w x-0)))))
+      (send
+        (enc
+          (enc (exp (gen) (mul (rec x) w x-0)) (exp (gen) x) (privk a))
+          (exp (gen) (mul w x-0)))))
+    ((recv (exp (gen) (mul w x-0))) (send (exp (gen) (mul w x-0))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((send (exp (gen) x-0))))
+  (label 10)
+  (parent 7)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b b-0 name) (h base) (x rndx) (w expt) (y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) w y))) (x x))
+  (deflistener (exp (gen) (mul w y)))
+  (deflistener (cat (exp (gen) y) w))
+  (defstrand resp 2 (b b-0) (h h) (y y))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))
+  (non-orig (privk b))
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation nonce-test (added-strand resp 2) (exp (gen) y) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (mul (rec x) w y))
+          (enc
+            (enc (exp (gen) (mul (rec x) w y)) (exp (gen) x) (privk b))
+            (exp (gen) (mul w y)))))
+      (send
+        (enc (enc (exp (gen) (mul (rec x) w y)) (exp (gen) x) (privk a))
+          (exp (gen) (mul w y)))))
+    ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b-0)) (exp h y))))))
+  (label 11)
+  (parent 7)
+  (unrealized (0 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) x) y))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))
+  (non-orig (privk b))
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation encryption-test (added-strand resp 2)
+    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y)))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))))
+  (label 12)
+  (parent 8)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (gen) (mul x y)))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))
+  (non-orig (privk b))
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation encryption-test (added-strand resp 2)
+    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y)))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (gen) (mul x y))) (send (cat (gen) (mul x y))))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))))
+  (label 13)
+  (parent 9)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x x-0 y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) y)))
+  (defstrand init 1 (x x-0))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 0) (2 0))
+    ((4 1) (2 0)))
+  (non-orig (privk b))
+  (uniq-gen x x-0 y)
+  (precur (2 0))
+  (operation encryption-test (added-strand resp 2)
+    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y)))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) y)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) y))))
+    ((send (exp (gen) x-0)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))))
+  (label 14)
+  (parent 10)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) y) x))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0)))
+  (non-orig (privk b))
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation encryption-test (displaced 4 3 resp 2)
+    (enc (exp (gen) y-0) (exp (gen) x) (privk b-0)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y)))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))))
+  (label 15)
+  (parent 11)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b b-0 name) (h base) (x y y-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y-0)) (x x))
+  (deflistener (exp (gen) (mul x y-0)))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) y-0)))
+  (defstrand resp 2 (b b-0) (h h) (y y))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y-0))
+  (precedes ((0 0) (4 0)) ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (2 0))
+    ((4 1) (2 0)))
+  (non-orig (privk b))
+  (uniq-gen x y y-0)
+  (precur (2 0))
+  (operation encryption-test (added-strand resp 2)
+    (enc (exp (gen) y-0) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y-0)
+          (enc (enc (exp (gen) y-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y-0)))))
+      (send
+        (enc (enc (exp (gen) y-0) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y-0)))))
+    ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) y-0)))
+      (send (cat (exp (gen) y) (mul x (rec y) y-0))))
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y-0)
+          (enc (enc (exp (gen) y-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y-0)))))))
+  (label 16)
+  (parent 11)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol station-to-station-unflip diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace (send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc h (exp (gen) x) (privk a)) (exp h x)))
+      (send (privk a)))
+    (uniq-gen x))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace (recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc (exp (gen) y) h (privk a)) (exp h y)))
+      (send (privk b)))
+    (uniq-gen y))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (h base) (y rndx))
+  (defstrand resp 3 (a a) (b b) (h h) (y y))
+  (non-orig (privk a))
+  (uniq-gen y)
+  (traces
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc (exp (gen) y) h (privk a)) (exp h y)))))
+  (label 17)
+  (unrealized (0 2))
+  (origs)
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b b-0 name) (y x rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig (privk a))
+  (uniq-gen y x)
+  (operation encryption-test (added-strand init 3)
+    (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+      (exp (gen) (mul y x))) (0 2))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul y x)))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+            (exp (gen) (mul y x)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul y x))))))
+  (label 18)
+  (parent 17)
+  (unrealized (1 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (b name) (h base) (y rndx))
+  (defstrand resp 3 (a b) (b b) (h h) (y y))
+  (non-orig (privk b))
+  (uniq-gen y)
+  (operation encryption-test (displaced 1 0 resp 2)
+    (enc (enc (exp (gen) y) h (privk a)) (exp h y)) (0 2))
+  (traces
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc (exp (gen) y) h (privk b)) (exp h y)))))
+  (label 19)
+  (parent 17)
+  (realized)
+  (shape)
+  (maps ((0) ((a b) (b b) (y y) (h h))))
+  (origs))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (h base) (y rndx))
+  (defstrand resp 3 (a a) (b b) (h h) (y y))
+  (deflistener (exp h y))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-gen y)
+  (operation encryption-test (added-listener (exp h y))
+    (enc (enc (exp (gen) y) h (privk a)) (exp h y)) (0 2))
+  (traces
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc (exp (gen) y) h (privk a)) (exp h y))))
+    ((recv (exp h y)) (send (exp h y))))
+  (label 20)
+  (parent 17)
+  (unrealized (0 2) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x y rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig (privk a))
+  (uniq-gen x y)
+  (operation encryption-test (displaced 2 0 resp 2)
+    (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+      (exp (gen) (mul x y))) (1 1))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y)))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y))))))
+  (label 21)
+  (parent 18)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (y y) (h (exp (gen) x)))))
+  (origs))
+
+(defskeleton station-to-station-unflip
+  (vars (a b b-0 name) (y x rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul y x)))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1)))
+  (non-orig (privk a))
+  (uniq-gen y x)
+  (operation encryption-test (added-listener (exp (gen) (mul y x)))
+    (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+      (exp (gen) (mul y x))) (1 1))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul y x)))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+            (exp (gen) (mul y x)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul y x)))))
+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))
+  (label 22)
+  (parent 18)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (h base) (y rndx) (w expt))
+  (defstrand resp 3 (a a) (b b) (h h) (y y))
+  (deflistener (exp h y))
+  (deflistener (cat (exp h (mul y (rec w))) w))
+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-gen y)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp h (mul y (rec w))) w))
+    (exp h y) (1 0))
+  (traces
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc (exp (gen) y) h (privk a)) (exp h y))))
+    ((recv (exp h y)) (send (exp h y)))
+    ((recv (cat (exp h (mul y (rec w))) w))
+      (send (cat (exp h (mul y (rec w))) w))))
+  (label 23)
+  (parent 20)
+  (unrealized (0 2) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b b-0 name) (y x rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul y x)))
+  (deflistener (cat (exp (gen) y) x))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))
+    ((3 1) (2 0)))
+  (non-orig (privk a))
+  (uniq-gen y x)
+  (operation nonce-test (added-listener (cat (exp (gen) y) x))
+    (exp (gen) (mul y x)) (2 0))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul y x)))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+            (exp (gen) (mul y x)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul y x)))))
+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
+  (label 24)
+  (parent 22)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b b-0 name) (y x rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul y x)))
+  (deflistener (cat (exp (gen) x) y))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))
+    ((3 1) (2 0)))
+  (non-orig (privk a))
+  (uniq-gen y x)
+  (operation nonce-test (added-listener (cat (exp (gen) x) y))
+    (exp (gen) (mul y x)) (2 0))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul y x)))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+            (exp (gen) (mul y x)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul y x)))))
+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
+  (label 25)
+  (parent 22)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol station-to-station-unflip diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace (send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc h (exp (gen) x) (privk a)) (exp h x)))
+      (send (privk a)))
+    (uniq-gen x))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace (recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc (exp (gen) y) h (privk a)) (exp h y)))
+      (send (privk b)))
+    (uniq-gen y))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (h base) (y rndx))
+  (defstrand resp 3 (a a) (b b) (h h) (y y))
+  (non-orig (privk a))
+  (uniq-gen y)
+  (facts (neq a b))
+  (traces
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc (exp (gen) y) h (privk a)) (exp h y)))))
+  (label 26)
+  (unrealized (0 2))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b b-0 name) (y x rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig (privk a))
+  (uniq-gen y x)
+  (facts (neq a b))
+  (operation encryption-test (added-strand init 3)
+    (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+      (exp (gen) (mul y x))) (0 2))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul y x)))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+            (exp (gen) (mul y x)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul y x))))))
+  (label 27)
+  (parent 26)
+  (unrealized (1 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (h base) (y rndx))
+  (defstrand resp 3 (a a) (b b) (h h) (y y))
+  (deflistener (exp h y))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-gen y)
+  (facts (neq a b))
+  (operation encryption-test (added-listener (exp h y))
+    (enc (enc (exp (gen) y) h (privk a)) (exp h y)) (0 2))
+  (traces
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc (exp (gen) y) h (privk a)) (exp h y))))
+    ((recv (exp h y)) (send (exp h y))))
+  (label 28)
+  (parent 26)
+  (unrealized (0 2) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x y rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig (privk a))
+  (uniq-gen x y)
+  (facts (neq a b))
+  (operation encryption-test (displaced 2 0 resp 2)
+    (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+      (exp (gen) (mul x y))) (1 1))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y)))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y))))))
+  (label 29)
+  (parent 27)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (y y) (h (exp (gen) x)))))
+  (origs))
+
+(defskeleton station-to-station-unflip
+  (vars (a b b-0 name) (y x rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul y x)))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1)))
+  (non-orig (privk a))
+  (uniq-gen y x)
+  (facts (neq a b))
+  (operation encryption-test (added-listener (exp (gen) (mul y x)))
+    (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+      (exp (gen) (mul y x))) (1 1))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul y x)))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+            (exp (gen) (mul y x)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul y x)))))
+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))
+  (label 30)
+  (parent 27)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (h base) (y rndx) (w expt))
+  (defstrand resp 3 (a a) (b b) (h h) (y y))
+  (deflistener (exp h y))
+  (deflistener (cat (exp h (mul y (rec w))) w))
+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-gen y)
+  (precur (2 0))
+  (facts (neq a b))
+  (operation nonce-test (added-listener (cat (exp h (mul y (rec w))) w))
+    (exp h y) (1 0))
+  (traces
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc (exp (gen) y) h (privk a)) (exp h y))))
+    ((recv (exp h y)) (send (exp h y)))
+    ((recv (cat (exp h (mul y (rec w))) w))
+      (send (cat (exp h (mul y (rec w))) w))))
+  (label 31)
+  (parent 28)
+  (unrealized (0 2) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b b-0 name) (y x rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul y x)))
+  (deflistener (cat (exp (gen) y) x))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))
+    ((3 1) (2 0)))
+  (non-orig (privk a))
+  (uniq-gen y x)
+  (facts (neq a b))
+  (operation nonce-test (added-listener (cat (exp (gen) y) x))
+    (exp (gen) (mul y x)) (2 0))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul y x)))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+            (exp (gen) (mul y x)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul y x)))))
+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
+  (label 32)
+  (parent 30)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b b-0 name) (y x rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul y x)))
+  (deflistener (cat (exp (gen) x) y))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))
+    ((3 1) (2 0)))
+  (non-orig (privk a))
+  (uniq-gen y x)
+  (facts (neq a b))
+  (operation nonce-test (added-listener (cat (exp (gen) x) y))
+    (exp (gen) (mul y x)) (2 0))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul y x)))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+            (exp (gen) (mul y x)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul y x)))))
+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
+  (label 33)
+  (parent 30)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol station-to-station-unflip diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace (send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc h (exp (gen) x) (privk a)) (exp h x)))
+      (send (privk a)))
+    (uniq-gen x))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace (recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc (exp (gen) y) h (privk a)) (exp h y)))
+      (send (privk b)))
+    (uniq-gen y))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (h base) (x rndx))
+  (defstrand init 3 (a a) (b b) (h h) (x x))
+  (deflistener (exp h x))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (traces
+    ((send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc h (exp (gen) x) (privk a)) (exp h x))))
+    ((recv (exp h x)) (send (exp h x))))
+  (label 34)
+  (unrealized (0 1) (1 0))
+  (preskeleton)
+  (origs)
+  (comment "Not a skeleton"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (h base) (x rndx))
+  (defstrand init 3 (a a) (b b) (h h) (x x))
+  (deflistener (exp h x))
+  (precedes ((0 0) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (traces
+    ((send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc h (exp (gen) x) (privk a)) (exp h x))))
+    ((recv (exp h x)) (send (exp h x))))
+  (label 35)
+  (parent 34)
+  (unrealized (0 1) (1 0))
+  (origs)
+  (comment "5 in cohort - 5 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x rndx))
+  (defstrand init 3 (a a) (b b) (h (gen)) (x x))
+  (deflistener (exp (gen) x))
+  (precedes ((0 0) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (gen)
+          (enc (enc (gen) (exp (gen) x) (privk b)) (exp (gen) x))))
+      (send (enc (enc (gen) (exp (gen) x) (privk a)) (exp (gen) x))))
+    ((recv (exp (gen) x)) (send (exp (gen) x))))
+  (label 36)
+  (parent 35)
+  (unrealized (0 1))
+  (dead)
+  (origs)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (rec x))) (x x))
+  (deflistener (gen))
+  (precedes ((0 0) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (operation nonce-test (contracted (h (exp (gen) (rec x)))) (gen)
+    (1 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (rec x))
+          (enc (enc (exp (gen) (rec x)) (exp (gen) x) (privk b))
+            (gen))))
+      (send
+        (enc (enc (exp (gen) (rec x)) (exp (gen) x) (privk a)) (gen))))
+    ((recv (gen)) (send (gen))))
+  (label 37)
+  (parent 35)
+  (unrealized (0 1))
+  (dead)
+  (origs)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) x-0))) (x x))
+  (deflistener (exp (gen) x-0))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (1 0)) ((2 0) (0 1)) ((2 0) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (mul (rec x) x-0))
+          (enc
+            (enc (exp (gen) (mul (rec x) x-0)) (exp (gen) x) (privk b))
+            (exp (gen) x-0))))
+      (send
+        (enc (enc (exp (gen) (mul (rec x) x-0)) (exp (gen) x) (privk a))
+          (exp (gen) x-0))))
+    ((recv (exp (gen) x-0)) (send (exp (gen) x-0)))
+    ((send (exp (gen) x-0))))
+  (label 38)
+  (parent 35)
+  (unrealized (0 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b b-0 name) (h base) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) y))) (x x))
+  (deflistener (exp (gen) y))
+  (defstrand resp 2 (b b-0) (h h) (y y))
+  (precedes ((0 0) (1 0)) ((2 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (operation nonce-test (added-strand resp 2) (exp (gen) y) (1 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (mul (rec x) y))
+          (enc (enc (exp (gen) (mul (rec x) y)) (exp (gen) x) (privk b))
+            (exp (gen) y))))
+      (send
+        (enc (enc (exp (gen) (mul (rec x) y)) (exp (gen) x) (privk a))
+          (exp (gen) y)))) ((recv (exp (gen) y)) (send (exp (gen) y)))
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b-0)) (exp h y))))))
+  (label 39)
+  (parent 35)
+  (unrealized (0 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (h base) (x rndx) (w expt))
+  (defstrand init 3 (a a) (b b) (h h) (x x))
+  (deflistener (exp h x))
+  (deflistener (cat (exp h (mul x (rec w))) w))
+  (precedes ((0 0) (2 0)) ((2 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp h (mul x (rec w))) w))
+    (exp h x) (1 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc h (exp (gen) x) (privk a)) (exp h x))))
+    ((recv (exp h x)) (send (exp h x)))
+    ((recv (cat (exp h (mul x (rec w))) w))
+      (send (cat (exp h (mul x (rec w))) w))))
+  (label 40)
+  (parent 35)
+  (unrealized (0 1) (2 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (w expt) (x rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) w)) (x x))
+  (deflistener (exp (gen) (mul w x)))
+  (deflistener (cat (exp (gen) x) w))
+  (precedes ((0 0) (2 0)) ((2 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-0) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) w)
+          (enc (enc (exp (gen) w) (exp (gen) x) (privk b))
+            (exp (gen) (mul w x)))))
+      (send
+        (enc (enc (exp (gen) w) (exp (gen) x) (privk a))
+          (exp (gen) (mul w x)))))
+    ((recv (exp (gen) (mul w x))) (send (exp (gen) (mul w x))))
+    ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))
+  (label 41)
+  (parent 40)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x rndx) (w expt))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) w))) (x x))
+  (deflistener (exp (gen) w))
+  (deflistener (cat (gen) w))
+  (precedes ((0 0) (2 0)) ((2 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x)
+  (precur (2 0))
+  (operation nonce-test (contracted (h (exp (gen) (mul (rec x) w))))
+    (gen) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (mul (rec x) w))
+          (enc (enc (exp (gen) (mul (rec x) w)) (exp (gen) x) (privk b))
+            (exp (gen) w))))
+      (send
+        (enc (enc (exp (gen) (mul (rec x) w)) (exp (gen) x) (privk a))
+          (exp (gen) w)))) ((recv (exp (gen) w)) (send (exp (gen) w)))
+    ((recv (cat (gen) w)) (send (cat (gen) w))))
+  (label 42)
+  (parent 40)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x rndx) (w expt) (x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) w x-0)))
+    (x x))
+  (deflistener (exp (gen) (mul w x-0)))
+  (deflistener (cat (exp (gen) x-0) w))
+  (defstrand init 1 (x x-0))
+  (precedes ((0 0) (2 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (precur (2 0))
+  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (mul (rec x) w x-0))
+          (enc
+            (enc (exp (gen) (mul (rec x) w x-0)) (exp (gen) x)
+              (privk b)) (exp (gen) (mul w x-0)))))
+      (send
+        (enc
+          (enc (exp (gen) (mul (rec x) w x-0)) (exp (gen) x) (privk a))
+          (exp (gen) (mul w x-0)))))
+    ((recv (exp (gen) (mul w x-0))) (send (exp (gen) (mul w x-0))))
+    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
+    ((send (exp (gen) x-0))))
+  (label 43)
+  (parent 40)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b b-0 name) (h base) (x rndx) (w expt) (y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) (mul (rec x) w y))) (x x))
+  (deflistener (exp (gen) (mul w y)))
+  (deflistener (cat (exp (gen) y) w))
+  (defstrand resp 2 (b b-0) (h h) (y y))
+  (precedes ((0 0) (2 0)) ((2 1) (1 0)) ((3 1) (0 1)) ((3 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation nonce-test (added-strand resp 2) (exp (gen) y) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) (mul (rec x) w y))
+          (enc
+            (enc (exp (gen) (mul (rec x) w y)) (exp (gen) x) (privk b))
+            (exp (gen) (mul w y)))))
+      (send
+        (enc (enc (exp (gen) (mul (rec x) w y)) (exp (gen) x) (privk a))
+          (exp (gen) (mul w y)))))
+    ((recv (exp (gen) (mul w y))) (send (exp (gen) (mul w y))))
+    ((recv (cat (exp (gen) y) w)) (send (cat (exp (gen) y) w)))
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b-0)) (exp h y))))))
+  (label 44)
+  (parent 40)
+  (unrealized (0 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) x) y))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (3 0)) ((2 1) (1 0)) ((3 1) (0 1)) ((3 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation encryption-test (added-strand resp 2)
+    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y)))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))))
+  (label 45)
+  (parent 41)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (gen) (mul x y)))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (3 0)) ((2 1) (1 0)) ((3 1) (0 1)) ((3 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation encryption-test (added-strand resp 2)
+    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y)))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (gen) (mul x y))) (send (cat (gen) (mul x y))))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))))
+  (label 46)
+  (parent 42)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x x-0 y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0) y)))
+  (defstrand init 1 (x x-0))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (4 0)) ((2 1) (1 0)) ((3 0) (0 1)) ((3 0) (2 0))
+    ((4 1) (0 1)) ((4 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0 y)
+  (precur (2 0))
+  (operation encryption-test (added-strand resp 2)
+    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y)))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) x-0) (mul x (rec x-0) y)))
+      (send (cat (exp (gen) x-0) (mul x (rec x-0) y))))
+    ((send (exp (gen) x-0)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))))
+  (label 47)
+  (parent 43)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) y) x))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (3 0)) ((2 1) (1 0)) ((3 1) (0 1)) ((3 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (precur (2 0))
+  (operation encryption-test (displaced 4 3 resp 2)
+    (enc (exp (gen) y-0) (exp (gen) x) (privk b-0)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y)))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))))
+  (label 48)
+  (parent 44)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b b-0 name) (h base) (x y y-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y-0)) (x x))
+  (deflistener (exp (gen) (mul x y-0)))
+  (deflistener (cat (exp (gen) y) (mul x (rec y) y-0)))
+  (defstrand resp 2 (b b-0) (h h) (y y))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y-0))
+  (precedes ((0 0) (4 0)) ((2 1) (1 0)) ((3 1) (0 1)) ((3 1) (2 0))
+    ((4 1) (0 1)) ((4 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y y-0)
+  (precur (2 0))
+  (operation encryption-test (added-strand resp 2)
+    (enc (exp (gen) y-0) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y-0)
+          (enc (enc (exp (gen) y-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y-0)))))
+      (send
+        (enc (enc (exp (gen) y-0) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y-0)))))
+    ((recv (exp (gen) (mul x y-0))) (send (exp (gen) (mul x y-0))))
+    ((recv (cat (exp (gen) y) (mul x (rec y) y-0)))
+      (send (cat (exp (gen) y) (mul x (rec y) y-0))))
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b-0)) (exp h y)))))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y-0)
+          (enc (enc (exp (gen) y-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y-0)))))))
+  (label 49)
+  (parent 44)
+  (unrealized (1 0) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol station-to-station-unflip diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace (send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc h (exp (gen) x) (privk a)) (exp h x)))
+      (send (privk a)))
+    (uniq-gen x))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace (recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc (exp (gen) y) h (privk a)) (exp h y)))
+      (send (privk b)))
+    (uniq-gen y))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (h base) (y rndx))
+  (defstrand resp 3 (a a) (b b) (h h) (y y))
+  (deflistener (exp h y))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y)
+  (traces
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc (exp (gen) y) h (privk a)) (exp h y))))
+    ((recv (exp h y)) (send (exp h y))))
+  (label 50)
+  (unrealized (0 2) (1 0))
+  (preskeleton)
+  (origs)
+  (comment "Not a skeleton"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (h base) (y rndx))
+  (defstrand resp 3 (a a) (b b) (h h) (y y))
+  (deflistener (exp h y))
+  (precedes ((0 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y)
+  (traces
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc (exp (gen) y) h (privk a)) (exp h y))))
+    ((recv (exp h y)) (send (exp h y))))
+  (label 51)
+  (parent 50)
+  (unrealized (0 2) (1 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (h base) (y rndx) (w expt))
+  (defstrand resp 3 (a a) (b b) (h h) (y y))
+  (deflistener (exp h y))
+  (deflistener (cat (exp h (mul y (rec w))) w))
+  (precedes ((0 1) (2 0)) ((2 1) (1 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y)
+  (precur (2 0))
+  (operation nonce-test (added-listener (cat (exp h (mul y (rec w))) w))
+    (exp h y) (1 0))
+  (traces
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc (exp (gen) y) h (privk a)) (exp h y))))
+    ((recv (exp h y)) (send (exp h y)))
+    ((recv (cat (exp h (mul y (rec w))) w))
+      (send (cat (exp h (mul y (rec w))) w))))
+  (label 52)
+  (parent 51)
+  (unrealized (0 2) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol station-to-station-unflip diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace (send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc h (exp (gen) x) (privk a)) (exp h x)))
+      (send (privk a)))
+    (uniq-gen x))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace (recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc (exp (gen) y) h (privk a)) (exp h y)))
+      (send (privk b)))
+    (uniq-gen y))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton station-to-station-unflip
+  (vars (a b a-0 name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a a-0) (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a-0))
+          (exp (gen) (mul x y)))) (send (privk b))))
+  (label 53)
+  (unrealized (1 2))
+  (origs ((privk b) (1 3)) ((privk a) (0 3)))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (y x rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a a) (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)))
+  (uniq-orig (privk a) (privk b))
+  (uniq-gen y x)
+  (operation encryption-test (displaced 2 0 init 3)
+    (enc (enc (exp (gen) y) (exp (gen) x) (privk a-0))
+      (exp (gen) (mul y x))) (1 2))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul y x)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul y x)))) (send (privk b))))
+  (label 54)
+  (parent 53)
+  (realized)
+  (shape)
+  (maps ((0 1) ((a a) (b b) (x x) (y y) (a-0 a))))
+  (origs ((privk b) (1 3)) ((privk a) (0 3))))
+
+(defskeleton station-to-station-unflip
+  (vars (a b name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a b) (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (operation encryption-test (displaced 2 1 resp 2)
+    (enc (enc (exp (gen) y) (exp (gen) x) (privk a-0))
+      (exp (gen) (mul x y))) (1 2))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+          (exp (gen) (mul x y)))) (send (privk b))))
+  (label 55)
+  (parent 53)
+  (realized)
+  (shape)
+  (maps ((0 1) ((a a) (b b) (x x) (y y) (a-0 b))))
+  (origs ((privk b) (1 3)) ((privk a) (0 3))))
+
+(defskeleton station-to-station-unflip
+  (vars (a b a-0 name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a a-0) (b b) (h (exp (gen) x)) (y y))
+  (deflistener (exp (gen) (mul x y)))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)) ((2 1) (1 2)))
+  (uniq-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (operation encryption-test (added-listener (exp (gen) (mul x y)))
+    (enc (enc (exp (gen) y) (exp (gen) x) (privk a-0))
+      (exp (gen) (mul x y))) (1 2))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a-0))
+          (exp (gen) (mul x y)))) (send (privk b)))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))
+  (label 56)
+  (parent 53)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b a-0 name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a a-0) (b b) (h (exp (gen) x)) (y y))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) x) y))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (1 2))
+    ((3 1) (2 0)))
+  (uniq-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (operation nonce-test (added-listener (cat (exp (gen) x) y))
+    (exp (gen) (mul x y)) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a-0))
+          (exp (gen) (mul x y)))) (send (privk b)))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
+  (label 57)
+  (parent 56)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b a-0 name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a a-0) (b b) (h (exp (gen) x)) (y y))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) y) x))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((2 1) (1 2))
+    ((3 1) (2 0)))
+  (uniq-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (operation nonce-test (added-listener (cat (exp (gen) y) x))
+    (exp (gen) (mul x y)) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a-0))
+          (exp (gen) (mul x y)))) (send (privk b)))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
+  (label 58)
+  (parent 56)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol station-to-station-unflip diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace (send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc h (exp (gen) x) (privk a)) (exp h x)))
+      (send (privk a)))
+    (uniq-gen x))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace (recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc (exp (gen) y) h (privk a)) (exp h y)))
+      (send (privk b)))
+    (uniq-gen y))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton station-to-station-unflip
+  (vars (a b a-0 name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a a-0) (b b) (h (exp (gen) x)) (y y))
+  (deflistener (exp (gen) (mul x y)))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a-0))
+          (exp (gen) (mul x y)))) (send (privk b)))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))
+  (label 59)
+  (unrealized (1 2) (2 0))
+  (preskeleton)
+  (origs ((privk b) (1 3)) ((privk a) (0 3)))
+  (comment "Not a skeleton"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b a-0 name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a a-0) (b b) (h (exp (gen) x)) (y y))
+  (deflistener (exp (gen) (mul x y)))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (2 0)))
+  (uniq-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a-0))
+          (exp (gen) (mul x y)))) (send (privk b)))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))
+  (label 60)
+  (parent 59)
+  (unrealized (1 2) (2 0))
+  (origs ((privk b) (1 3)) ((privk a) (0 3)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b a-0 name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a a-0) (b b) (h (exp (gen) x)) (y y))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) x) y))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((3 1) (2 0)))
+  (uniq-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (operation nonce-test (added-listener (cat (exp (gen) x) y))
+    (exp (gen) (mul x y)) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a-0))
+          (exp (gen) (mul x y)))) (send (privk b)))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
+  (label 61)
+  (parent 60)
+  (unrealized (1 2) (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-to-station-unflip
+  (vars (a b a-0 name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a a-0) (b b) (h (exp (gen) x)) (y y))
+  (deflistener (exp (gen) (mul x y)))
+  (deflistener (cat (exp (gen) y) x))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 1) (3 0)) ((3 1) (2 0)))
+  (uniq-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (operation nonce-test (added-listener (cat (exp (gen) y) x))
+    (exp (gen) (mul x y)) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a))
+          (exp (gen) (mul x y)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) x) (privk a-0))
+          (exp (gen) (mul x y)))) (send (privk b)))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
+  (label 62)
+  (parent 60)
+  (unrealized (1 2) (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/tst/sts_weak.scm b/tst/sts_weak.scm
new file mode 100644
--- /dev/null
+++ b/tst/sts_weak.scm
@@ -0,0 +1,76 @@
+;;; Station-to-station weak
+
+;;; This is an authenticated form of a Diffie-Hellman key exchange.
+
+;;; The file contains one model of the station-to-station protocol.
+;;; It weakens the previous model by omitting an assumption.
+
+;;; Namely, we do not assume that *every* initiator or responder
+;;; properly picks a fresh random exponent and does not allow it to be
+;;; obtained by the adversary.
+
+(herald "Station-to-station protocol:  Weakened version" (algebra diffie-hellman))
+
+(defprotocol station-weak diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace
+     (send (exp (gen) x))
+     (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+     (send (enc (enc (exp (gen) x) h (privk a)) (exp h x)))
+     (send (privk a)))
+  )
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace
+     (recv h)
+     (send (cat (exp (gen) y) (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+     (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y)))
+     (send (privk b)))
+    ;;    (absent (y h)
+    ))
+
+(defskeleton station-weak
+  (vars (a b name) (x y rndx) (h base))
+  (defstrand init 3 (a a) (b b) (x x) (h (exp (gen) y)))
+  (uniq-gen x y)
+  (non-orig (privk b) (privk a))
+)
+
+(defskeleton station-weak
+  (vars (a b name) (y x rndx) (h base))
+  (defstrand resp 3 (a a) (b b) (y y) (h (exp (gen) x)))
+  (uniq-gen y x)
+  (non-orig (privk a) (privk b))
+)
+
+(defskeleton station-weak
+  (vars (a b name)(x y rndx) (h base))
+  (defstrand init 3 (a a) (b b) (x x) (h h))
+  (deflistener (exp h x))
+  (non-orig (privk b) (privk a))
+)
+
+(defskeleton station-weak
+  (vars (a b name) (x y rndx)(h base))
+  (defstrand resp 3 (a a) (b b) (y y) (h h))
+  (deflistener (exp h y))
+  (non-orig (privk a) (privk b))
+)
+
+(defskeleton station-weak
+  (vars (a b name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig (privk b) (privk a))
+  )
+
+(defskeleton station-weak
+  (vars (a b name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (b b) (h (exp (gen) x)) (y y))
+  (deflistener (exp (gen) (mul x y)))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig (privk b) (privk a))
+  )
diff --git a/tst/sts_weak.tst b/tst/sts_weak.tst
new file mode 100644
--- /dev/null
+++ b/tst/sts_weak.tst
@@ -0,0 +1,794 @@
+(herald "Station-to-station protocol:  Weakened version"
+  (algebra diffie-hellman))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/sts_weak.scm")
+
+(defprotocol station-weak diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace (send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc (exp (gen) x) h (privk a)) (exp h x)))
+      (send (privk a))))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace (recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y)))
+      (send (privk b))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton station-weak
+  (vars (a b name) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y))))))
+  (label 0)
+  (unrealized (0 1))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-weak
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (precedes ((0 0) (1 1)) ((1 2) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (operation encryption-test (added-strand init 3)
+    (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0))))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-weak
+  (vars (a b name) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (operation encryption-test (added-strand resp 2)
+    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))))
+  (label 2)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (x x) (y y))))
+  (origs))
+
+(defskeleton station-weak
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (precedes ((0 0) (2 0)) ((1 0) (2 0)) ((1 2) (0 1)) ((2 1) (1 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (operation encryption-test (added-listener (exp (gen) (mul x x-0)))
+    (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+      (exp (gen) (mul x x-0))) (1 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0)))))
+  (label 3)
+  (parent 1)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-weak
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x) x-0))
+  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))
+    ((3 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (operation nonce-test (added-listener (cat (exp (gen) x) x-0))
+    (exp (gen) (mul x x-0)) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x) x-0)) (send (cat (exp (gen) x) x-0))))
+  (label 4)
+  (parent 3)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-weak
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (deflistener (exp (gen) (mul x x-0)))
+  (deflistener (cat (exp (gen) x-0) x))
+  (precedes ((0 0) (3 0)) ((1 0) (3 0)) ((1 2) (0 1)) ((2 1) (1 1))
+    ((3 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x x-0)
+  (operation nonce-test (added-listener (cat (exp (gen) x-0) x))
+    (exp (gen) (mul x x-0)) (2 0))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((recv (cat (exp (gen) x-0) x)) (send (cat (exp (gen) x-0) x))))
+  (label 5)
+  (parent 3)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol station-weak diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace (send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc (exp (gen) x) h (privk a)) (exp h x)))
+      (send (privk a))))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace (recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y)))
+      (send (privk b))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton station-weak
+  (vars (a b name) (y x rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x)
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x))))))
+  (label 6)
+  (unrealized (0 2))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton station-weak
+  (vars (a b b-0 name) (y x rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x)
+  (operation encryption-test (added-strand init 3)
+    (enc (exp (gen) x) (exp (gen) y) (privk a)) (0 2))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x)))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+            (exp (gen) (mul y x)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x))))))
+  (label 7)
+  (parent 6)
+  (unrealized (1 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-weak
+  (vars (a b name) (x y rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen x y)
+  (operation encryption-test (displaced 2 0 resp 2)
+    (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+      (exp (gen) (mul x y))) (1 1))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y))))))
+  (label 8)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (y y) (x x))))
+  (origs))
+
+(defskeleton station-weak
+  (vars (a b b-0 name) (y x rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul y x)))
+  (precedes ((0 1) (2 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x)
+  (operation encryption-test (added-listener (exp (gen) (mul y x)))
+    (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+      (exp (gen) (mul y x))) (1 1))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x)))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+            (exp (gen) (mul y x)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x)))))
+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x)))))
+  (label 9)
+  (parent 7)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-weak
+  (vars (a b b-0 name) (y x rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul y x)))
+  (deflistener (cat (exp (gen) y) x))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))
+    ((3 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x)
+  (operation nonce-test (added-listener (cat (exp (gen) y) x))
+    (exp (gen) (mul y x)) (2 0))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x)))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+            (exp (gen) (mul y x)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x)))))
+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
+    ((recv (cat (exp (gen) y) x)) (send (cat (exp (gen) y) x))))
+  (label 10)
+  (parent 9)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton station-weak
+  (vars (a b b-0 name) (y x rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul y x)))
+  (deflistener (cat (exp (gen) x) y))
+  (precedes ((0 1) (3 0)) ((1 0) (0 0)) ((1 2) (0 2)) ((2 1) (1 1))
+    ((3 1) (2 0)))
+  (non-orig (privk a) (privk b))
+  (uniq-gen y x)
+  (operation nonce-test (added-listener (cat (exp (gen) x) y))
+    (exp (gen) (mul y x)) (2 0))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x)))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+            (exp (gen) (mul y x)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x)))))
+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
+    ((recv (cat (exp (gen) x) y)) (send (cat (exp (gen) x) y))))
+  (label 11)
+  (parent 9)
+  (unrealized (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol station-weak diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace (send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc (exp (gen) x) h (privk a)) (exp h x)))
+      (send (privk a))))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace (recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y)))
+      (send (privk b))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton station-weak
+  (vars (a b name) (h base) (x rndx))
+  (defstrand init 3 (a a) (b b) (h h) (x x))
+  (deflistener (exp h x))
+  (non-orig (privk a) (privk b))
+  (traces
+    ((send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc (exp (gen) x) h (privk a)) (exp h x))))
+    ((recv (exp h x)) (send (exp h x))))
+  (label 12)
+  (unrealized (0 1))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton station-weak
+  (vars (a b b-0 name) (x x-0 rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) x-0)) (x x))
+  (deflistener (exp (gen) (mul x x-0)))
+  (defstrand init 3 (a b) (b b-0) (h (exp (gen) x)) (x x-0))
+  (precedes ((2 2) (0 1)))
+  (non-orig (privk a) (privk b))
+  (operation encryption-test (added-strand init 3)
+    (enc (exp (gen) x-0) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) x-0)
+          (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) x-0) (privk a))
+          (exp (gen) (mul x x-0)))))
+    ((recv (exp (gen) (mul x x-0))) (send (exp (gen) (mul x x-0))))
+    ((send (exp (gen) x-0))
+      (recv
+        (cat (exp (gen) x)
+          (enc (enc (exp (gen) x) (exp (gen) x-0) (privk b-0))
+            (exp (gen) (mul x x-0)))))
+      (send
+        (enc (enc (exp (gen) x-0) (exp (gen) x) (privk b))
+          (exp (gen) (mul x x-0))))))
+  (label 13)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps ((0 1) ((a a) (b b) (x x) (h (exp (gen) x-0)))))
+  (origs))
+
+(defskeleton station-weak
+  (vars (a b name) (x y rndx))
+  (defstrand init 3 (a a) (b b) (h (exp (gen) y)) (x x))
+  (deflistener (exp (gen) (mul x y)))
+  (defstrand resp 2 (b b) (h (exp (gen) x)) (y y))
+  (precedes ((2 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (operation encryption-test (added-strand resp 2)
+    (enc (exp (gen) y) (exp (gen) x) (privk b)) (0 1))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y))))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))))
+  (label 14)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps ((0 1) ((a a) (b b) (x x) (h (exp (gen) y)))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol station-weak diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace (send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc (exp (gen) x) h (privk a)) (exp h x)))
+      (send (privk a))))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace (recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y)))
+      (send (privk b))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton station-weak
+  (vars (a b name) (h base) (y rndx))
+  (defstrand resp 3 (a a) (b b) (h h) (y y))
+  (deflistener (exp h y))
+  (non-orig (privk a) (privk b))
+  (traces
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y))))
+    ((recv (exp h y)) (send (exp h y))))
+  (label 15)
+  (unrealized (0 2))
+  (preskeleton)
+  (origs)
+  (comment "Not a skeleton"))
+
+(defskeleton station-weak
+  (vars (a b name) (h base) (y rndx))
+  (defstrand resp 3 (a a) (b b) (h h) (y y))
+  (deflistener (exp h y))
+  (non-orig (privk a) (privk b))
+  (traces
+    ((recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y))))
+    ((recv (exp h y)) (send (exp h y))))
+  (label 16)
+  (parent 15)
+  (unrealized (0 2))
+  (origs)
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton station-weak
+  (vars (a b b-0 name) (y x rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) x)) (y y))
+  (deflistener (exp (gen) (mul y x)))
+  (defstrand init 3 (a a) (b b-0) (h (exp (gen) y)) (x x))
+  (precedes ((2 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (operation encryption-test (added-strand init 3)
+    (enc (exp (gen) x) (exp (gen) y) (privk a)) (0 2))
+  (traces
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul y x)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x)))))
+    ((recv (exp (gen) (mul y x))) (send (exp (gen) (mul y x))))
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b-0))
+            (exp (gen) (mul y x)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul y x))))))
+  (label 17)
+  (parent 16)
+  (realized)
+  (shape)
+  (maps ((0 1) ((a a) (b b) (y y) (h (exp (gen) x)))))
+  (origs))
+
+(defskeleton station-weak
+  (vars (b name) (y rndx))
+  (defstrand resp 3 (a b) (b b) (h (exp (gen) y)) (y y))
+  (deflistener (exp (gen) (mul y y)))
+  (non-orig (privk b))
+  (operation encryption-test (displaced 2 0 resp 2)
+    (enc (exp (gen) y-0) (exp (gen) y-1) (privk a)) (0 2))
+  (traces
+    ((recv (exp (gen) y))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) y) (privk b))
+            (exp (gen) (mul y y)))))
+      (recv
+        (enc (enc (exp (gen) y) (exp (gen) y) (privk b))
+          (exp (gen) (mul y y)))))
+    ((recv (exp (gen) (mul y y))) (send (exp (gen) (mul y y)))))
+  (label 18)
+  (parent 16)
+  (realized)
+  (shape)
+  (maps ((0 1) ((a b) (b b) (y y) (h (exp (gen) y)))))
+  (origs))
+
+(defskeleton station-weak
+  (vars (a b name) (y y-0 rndx))
+  (defstrand resp 3 (a a) (b b) (h (exp (gen) y-0)) (y y))
+  (deflistener (exp (gen) (mul y y-0)))
+  (defstrand resp 2 (b a) (h (exp (gen) y)) (y y-0))
+  (precedes ((2 1) (0 2)))
+  (non-orig (privk a) (privk b))
+  (operation encryption-test (added-strand resp 2)
+    (enc (exp (gen) y-0) (exp (gen) y) (privk a)) (0 2))
+  (traces
+    ((recv (exp (gen) y-0))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) y-0) (privk b))
+            (exp (gen) (mul y y-0)))))
+      (recv
+        (enc (enc (exp (gen) y-0) (exp (gen) y) (privk a))
+          (exp (gen) (mul y y-0)))))
+    ((recv (exp (gen) (mul y y-0))) (send (exp (gen) (mul y y-0))))
+    ((recv (exp (gen) y))
+      (send
+        (cat (exp (gen) y-0)
+          (enc (enc (exp (gen) y-0) (exp (gen) y) (privk a))
+            (exp (gen) (mul y y-0)))))))
+  (label 19)
+  (parent 16)
+  (realized)
+  (shape)
+  (maps ((0 1) ((a a) (b b) (y y) (h (exp (gen) y-0)))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol station-weak diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace (send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc (exp (gen) x) h (privk a)) (exp h x)))
+      (send (privk a))))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace (recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y)))
+      (send (privk b))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton station-weak
+  (vars (a b a-0 name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a a-0) (b b) (h (exp (gen) x)) (y y))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig (privk a) (privk b))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a-0))
+          (exp (gen) (mul x y)))) (send (privk b))))
+  (label 20)
+  (realized)
+  (shape)
+  (maps ((0 1) ((a a) (b b) (x x) (y y) (a-0 a-0))))
+  (origs ((privk b) (1 3)) ((privk a) (0 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol station-weak diffie-hellman
+  (defrole init
+    (vars (x rndx) (h base) (a b name))
+    (trace (send (exp (gen) x))
+      (recv (cat h (enc (enc h (exp (gen) x) (privk b)) (exp h x))))
+      (send (enc (enc (exp (gen) x) h (privk a)) (exp h x)))
+      (send (privk a))))
+  (defrole resp
+    (vars (y rndx) (h base) (a b name))
+    (trace (recv h)
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) h (privk b)) (exp h y))))
+      (recv (enc (enc h (exp (gen) y) (privk a)) (exp h y)))
+      (send (privk b))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton station-weak
+  (vars (a b a-0 name) (x y rndx))
+  (defstrand init 4 (a a) (b b) (h (exp (gen) y)) (x x))
+  (defstrand resp 4 (a a-0) (b b) (h (exp (gen) x)) (y y))
+  (deflistener (exp (gen) (mul x y)))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-orig (privk a) (privk b))
+  (traces
+    ((send (exp (gen) x))
+      (recv
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (send
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a))
+          (exp (gen) (mul x y)))) (send (privk a)))
+    ((recv (exp (gen) x))
+      (send
+        (cat (exp (gen) y)
+          (enc (enc (exp (gen) y) (exp (gen) x) (privk b))
+            (exp (gen) (mul x y)))))
+      (recv
+        (enc (enc (exp (gen) x) (exp (gen) y) (privk a-0))
+          (exp (gen) (mul x y)))) (send (privk b)))
+    ((recv (exp (gen) (mul x y))) (send (exp (gen) (mul x y)))))
+  (label 21)
+  (realized)
+  (shape)
+  (maps ((0 1 2) ((a a) (b b) (x x) (y y) (a-0 a-0))))
+  (origs ((privk b) (1 3)) ((privk a) (0 3))))
+
+(comment "Nothing left to do")
diff --git a/tst/subatomic-open-closed-test-genrule.scm b/tst/subatomic-open-closed-test-genrule.scm
new file mode 100644
--- /dev/null
+++ b/tst/subatomic-open-closed-test-genrule.scm
@@ -0,0 +1,223 @@
+(herald subatomic-open-closed-test-genrule
+	;; (try-old-strands)
+	;; 	(check-nonces)
+	;; 	(reverse-nodes)
+	(bound 40))
+
+(defmacro (dev-key-state d o k)
+  (cat "st-k" d o k))
+
+(defmacro (opened o)
+  (cat o o))
+
+(defmacro (closed o) o)
+
+(defmacro (dev-state-opened d o)
+  (cat "st" d (opened o)))
+
+(defmacro (dev-state-closed d o)
+  (cat "st" d (closed o)))
+
+(defmacro (dev-state-any d o any)
+  (cat "st" d any))
+
+(defprotocol subatomic-open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (load ls old1) (stor lk (cat "st-k" d o k))
+      (stor ls (cat "st" d o)) (send (enc "up" k)))
+    (auth start-ch)
+    (critical-sections (1 4))
+    (facts (same-dev ls lk)))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "open" d o n k)) (load ls (cat "st" d any))
+      (load lk (cat "st-k" d o k)) (stor ls (cat "st" d o o)) (send n))
+    (critical-sections (1 3))
+    (gen-st (cat "st-k" d o k) (cat "st" d (cat o o)))
+    (facts (same-dev ls lk)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "close" d o n k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o)) (send n))
+    (gen-st (cat "st-k" d o k))
+    (critical-sections (1 3))
+    (facts (same-dev ls lk)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (load ls (cat "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    (uniq-orig n)
+    (gen-st (cat "st-k" d o k) (cat "st" d (cat o o)))
+    (critical-sections (0 1))
+    (facts (same-dev ls lk)))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 2) (p "dev-up" z2 2) (p "dev-up" "k" z1 k)
+          (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defrule same-dev-ls-lk
+    (forall ((ls lk lk-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls lk-0))
+        (= lk lk-0))))
+  (defrule same-dev-lk-ls
+    (forall ((lk ls ls-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls-0 lk))
+        (= ls ls-0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule gen-st-dev-pass-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-pass" z 1) (p "dev-pass" "o" z o)
+          (p "dev-pass" "d" z d)) (gen-st (cat "st" d o o)))))
+  (defgenrule gen-st-dev-pass-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-pass" z 1) (p "dev-pass" "k" z k)
+          (p "dev-pass" "o" z o) (p "dev-pass" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule fact-dev-pass-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-pass" z 2) (p "dev-pass" "ls" z ls)
+          (p "dev-pass" "lk" z lk)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd)) (implies (p "dev-close" z 3) (trans z 2))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd)) (implies (p "dev-close" z 4) (trans z 3))))
+  (defgenrule gen-st-dev-close-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-close" z 1) (p "dev-close" "k" z k)
+          (p "dev-close" "o" z o) (p "dev-close" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule fact-dev-close-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-close" z 3) (p "dev-close" "ls" z ls)
+          (p "dev-close" "lk" z lk)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-open-at-1
+    (forall ((z strd)) (implies (p "dev-open" z 2) (trans z 1))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd)) (implies (p "dev-open" z 4) (trans z 3))))
+  (defgenrule gen-st-dev-open-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-open" z 1) (p "dev-open" "o" z o)
+          (p "dev-open" "d" z d)) (gen-st (cat "st" d o o)))))
+  (defgenrule gen-st-dev-open-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-open" z 1) (p "dev-open" "k" z k)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule fact-dev-open-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-open" z 3) (p "dev-open" "ls" z ls)
+          (p "dev-open" "lk" z lk)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd)) (implies (p "dev-up" z 2) (trans z 1))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd)) (implies (p "dev-up" z 3) (trans z 2))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd)) (implies (p "dev-up" z 4) (trans z 3))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd)) (implies (p "dev-up" z 5) (trans z 4))))
+  (defgenrule fact-dev-up-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-up" z 3) (p "dev-up" "ls" z ls)
+          (p "dev-up" "lk" z lk)) (fact same-dev ls lk))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cau-dev-pass-1
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-pass" z 2) (prec z1 i z 1))
+        (or (= z z1) (prec z1 i z 0)))))
+  (defgenrule cau-dev-close-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-close" z 3) (prec z1 i z 2))
+        (or (= z z1) (prec z1 i z 1)))))
+  (defgenrule cau-dev-open-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-open" z 3) (prec z1 i z 2))
+        (or (= z z1) (prec z1 i z 1)))))
+  (defgenrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z 3) (prec z1 i z 2))
+        (or (= z z1) (prec z1 i z 1)))))
+  (defgenrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z 4) (prec z 3 z1 i))
+        (or (= z z1) (and (p "dev-up" z 5) (prec z 4 z1 i))))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2))))))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k))
+  (deflistener k)
+  (uniq-orig k)
+  (facts (no-state-split)))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  (defstrand dev-pass 4 (k k))
+  (facts (no-state-split)))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k))
+  (defstrand dev-pass 4 (k k))
+  (uniq-orig k)
+  (facts (no-state-split)))
diff --git a/tst/subatomic-open-closed-test-genrule.tst b/tst/subatomic-open-closed-test-genrule.tst
new file mode 100644
--- /dev/null
+++ b/tst/subatomic-open-closed-test-genrule.tst
@@ -0,0 +1,1706 @@
+(herald subatomic-open-closed-test-genrule (bound 40))
+
+(comment "CPSA 4.4.1")
+(comment
+  "All input read from tst/subatomic-open-closed-test-genrule.scm")
+(comment "Strand count bounded at 40")
+
+(defprotocol subatomic-open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (load ls old1) (stor lk (cat "st-k" d o k))
+      (stor ls (cat "st" d o)) (send (enc "up" k)))
+    (auth start-ch)
+    (critical-sections (1 4))
+    (facts (same-dev ls lk)))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "open" d o n k)) (load ls (cat "st" d any))
+      (load lk (cat "st-k" d o k)) (stor ls (cat "st" d o o)) (send n))
+    (critical-sections (1 3))
+    (gen-st (cat "st-k" d o k) (cat "st" d (cat o o)))
+    (facts (same-dev ls lk)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "close" d o n k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o)) (send n))
+    (gen-st (cat "st-k" d o k))
+    (critical-sections (1 3))
+    (facts (same-dev ls lk)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (load ls (cat "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    (uniq-orig n)
+    (gen-st (cat "st-k" d o k) (cat "st" d (cat o o)))
+    (critical-sections (0 1))
+    (facts (same-dev ls lk)))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defrule same-dev-ls-lk
+    (forall ((ls lk lk-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls lk-0))
+        (= lk lk-0))))
+  (defrule same-dev-lk-ls
+    (forall ((lk ls ls-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls-0 lk))
+        (= ls ls-0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule fact-dev-up-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-up" z (idx 3)) (p "dev-up" "lk" z lk)
+          (p "dev-up" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-open-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-open" z (idx 3)) (p "dev-open" "lk" z lk)
+          (p "dev-open" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-close-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-close" z (idx 3)) (p "dev-close" "lk" z lk)
+          (p "dev-close" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-pass-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-pass" z (idx 2)) (p "dev-pass" "lk" z lk)
+          (p "dev-pass" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-1
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 4)) (prec z (idx 3) z1 i))
+        (or (= z z1)
+          (and (p "dev-up" z (idx 5)) (prec z (idx 4) z1 i))))))
+  (defgenrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-open-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-open" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-close-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-close" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-pass-1
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-pass" z (idx 2)) (prec z1 i z (idx 1)))
+        (or (= z z1) (prec z1 i z (idx 0))))))
+  (defgenrule gen-st-dev-open-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-open" z (idx 1)) (p "dev-open" "k" z k)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule gen-st-dev-open-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-open" z (idx 1)) (p "dev-open" "o" z o)
+          (p "dev-open" "d" z d)) (gen-st (cat "st" d o o)))))
+  (defgenrule gen-st-dev-close-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-close" z (idx 1)) (p "dev-close" "k" z k)
+          (p "dev-close" "o" z o) (p "dev-close" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule gen-st-dev-pass-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "k" z k)
+          (p "dev-pass" "o" z o) (p "dev-pass" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule gen-st-dev-pass-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "o" z o)
+          (p "dev-pass" "d" z d)) (gen-st (cat "st" d o o)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule gen-st-dev-pass-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-pass" z 1) (p "dev-pass" "o" z o)
+          (p "dev-pass" "d" z d)) (gen-st (cat "st" d o o)))))
+  (defgenrule gen-st-dev-pass-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-pass" z 1) (p "dev-pass" "k" z k)
+          (p "dev-pass" "o" z o) (p "dev-pass" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule fact-dev-pass-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-pass" z 2) (p "dev-pass" "ls" z ls)
+          (p "dev-pass" "lk" z lk)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd)) (implies (p "dev-close" z 3) (trans z 2))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd)) (implies (p "dev-close" z 4) (trans z 3))))
+  (defgenrule gen-st-dev-close-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-close" z 1) (p "dev-close" "k" z k)
+          (p "dev-close" "o" z o) (p "dev-close" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule fact-dev-close-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-close" z 3) (p "dev-close" "ls" z ls)
+          (p "dev-close" "lk" z lk)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-open-at-1
+    (forall ((z strd)) (implies (p "dev-open" z 2) (trans z 1))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd)) (implies (p "dev-open" z 4) (trans z 3))))
+  (defgenrule gen-st-dev-open-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-open" z 1) (p "dev-open" "o" z o)
+          (p "dev-open" "d" z d)) (gen-st (cat "st" d o o)))))
+  (defgenrule gen-st-dev-open-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-open" z 1) (p "dev-open" "k" z k)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule fact-dev-open-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-open" z 3) (p "dev-open" "ls" z ls)
+          (p "dev-open" "lk" z lk)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd)) (implies (p "dev-up" z 2) (trans z 1))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd)) (implies (p "dev-up" z 3) (trans z 2))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd)) (implies (p "dev-up" z 4) (trans z 3))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd)) (implies (p "dev-up" z 5) (trans z 4))))
+  (defgenrule fact-dev-up-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-up" z 3) (p "dev-up" "ls" z ls)
+          (p "dev-up" "lk" z lk)) (fact same-dev ls lk))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cau-dev-pass-1
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-pass" z 2) (prec z1 i z 1))
+        (or (= z z1) (prec z1 i z 0)))))
+  (defgenrule cau-dev-close-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-close" z 3) (prec z1 i z 2))
+        (or (= z z1) (prec z1 i z 1)))))
+  (defgenrule cau-dev-open-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-open" z 3) (prec z1 i z 2))
+        (or (= z z1) (prec z1 i z 1)))))
+  (defgenrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z 3) (prec z1 i z 2))
+        (or (= z z1) (prec z1 i z 1)))))
+  (defgenrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z 4) (prec z 3 z1 i))
+        (or (= z z1) (and (p "dev-up" z 5) (prec z 4 z1 i))))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2))))))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (d o name) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (uniq-orig k)
+  (conf start-ch)
+  (facts (no-state-split))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k)))
+  (label 0)
+  (unrealized (0 1) (1 0))
+  (preskeleton)
+  (origs (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (d o name) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (facts (no-state-split))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k)))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1) (1 0))
+  (origs (k (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (k skey) (d o name) (pt pt-0 pt-1 pt-2 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule eff-dev-up-3 fact-dev-up-same-dev0 trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (added-strand dev-up 4) k (1 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt old))
+      (load ls (cat pt-0 old1)) (stor lk (cat pt-1 "st-k" d o k))
+      (stor ls (cat pt-2 "st" d o))))
+  (label 2)
+  (parent 1)
+  (seen 2)
+  (unrealized (0 1) (1 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol subatomic-open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (load ls old1) (stor lk (cat "st-k" d o k))
+      (stor ls (cat "st" d o)) (send (enc "up" k)))
+    (auth start-ch)
+    (critical-sections (1 4))
+    (facts (same-dev ls lk)))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "open" d o n k)) (load ls (cat "st" d any))
+      (load lk (cat "st-k" d o k)) (stor ls (cat "st" d o o)) (send n))
+    (critical-sections (1 3))
+    (gen-st (cat "st-k" d o k) (cat "st" d (cat o o)))
+    (facts (same-dev ls lk)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "close" d o n k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o)) (send n))
+    (gen-st (cat "st-k" d o k))
+    (critical-sections (1 3))
+    (facts (same-dev ls lk)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (load ls (cat "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    (uniq-orig n)
+    (gen-st (cat "st-k" d o k) (cat "st" d (cat o o)))
+    (critical-sections (0 1))
+    (facts (same-dev ls lk)))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defrule same-dev-ls-lk
+    (forall ((ls lk lk-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls lk-0))
+        (= lk lk-0))))
+  (defrule same-dev-lk-ls
+    (forall ((lk ls ls-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls-0 lk))
+        (= ls ls-0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule fact-dev-up-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-up" z (idx 3)) (p "dev-up" "lk" z lk)
+          (p "dev-up" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-open-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-open" z (idx 3)) (p "dev-open" "lk" z lk)
+          (p "dev-open" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-close-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-close" z (idx 3)) (p "dev-close" "lk" z lk)
+          (p "dev-close" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-pass-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-pass" z (idx 2)) (p "dev-pass" "lk" z lk)
+          (p "dev-pass" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-1
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 4)) (prec z (idx 3) z1 i))
+        (or (= z z1)
+          (and (p "dev-up" z (idx 5)) (prec z (idx 4) z1 i))))))
+  (defgenrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-open-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-open" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-close-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-close" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-pass-1
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-pass" z (idx 2)) (prec z1 i z (idx 1)))
+        (or (= z z1) (prec z1 i z (idx 0))))))
+  (defgenrule gen-st-dev-open-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-open" z (idx 1)) (p "dev-open" "k" z k)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule gen-st-dev-open-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-open" z (idx 1)) (p "dev-open" "o" z o)
+          (p "dev-open" "d" z d)) (gen-st (cat "st" d o o)))))
+  (defgenrule gen-st-dev-close-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-close" z (idx 1)) (p "dev-close" "k" z k)
+          (p "dev-close" "o" z o) (p "dev-close" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule gen-st-dev-pass-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "k" z k)
+          (p "dev-pass" "o" z o) (p "dev-pass" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule gen-st-dev-pass-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "o" z o)
+          (p "dev-pass" "d" z d)) (gen-st (cat "st" d o o)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule gen-st-dev-pass-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-pass" z 1) (p "dev-pass" "o" z o)
+          (p "dev-pass" "d" z d)) (gen-st (cat "st" d o o)))))
+  (defgenrule gen-st-dev-pass-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-pass" z 1) (p "dev-pass" "k" z k)
+          (p "dev-pass" "o" z o) (p "dev-pass" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule fact-dev-pass-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-pass" z 2) (p "dev-pass" "ls" z ls)
+          (p "dev-pass" "lk" z lk)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd)) (implies (p "dev-close" z 3) (trans z 2))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd)) (implies (p "dev-close" z 4) (trans z 3))))
+  (defgenrule gen-st-dev-close-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-close" z 1) (p "dev-close" "k" z k)
+          (p "dev-close" "o" z o) (p "dev-close" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule fact-dev-close-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-close" z 3) (p "dev-close" "ls" z ls)
+          (p "dev-close" "lk" z lk)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-open-at-1
+    (forall ((z strd)) (implies (p "dev-open" z 2) (trans z 1))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd)) (implies (p "dev-open" z 4) (trans z 3))))
+  (defgenrule gen-st-dev-open-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-open" z 1) (p "dev-open" "o" z o)
+          (p "dev-open" "d" z d)) (gen-st (cat "st" d o o)))))
+  (defgenrule gen-st-dev-open-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-open" z 1) (p "dev-open" "k" z k)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule fact-dev-open-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-open" z 3) (p "dev-open" "ls" z ls)
+          (p "dev-open" "lk" z lk)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd)) (implies (p "dev-up" z 2) (trans z 1))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd)) (implies (p "dev-up" z 3) (trans z 2))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd)) (implies (p "dev-up" z 4) (trans z 3))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd)) (implies (p "dev-up" z 5) (trans z 4))))
+  (defgenrule fact-dev-up-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-up" z 3) (p "dev-up" "ls" z ls)
+          (p "dev-up" "lk" z lk)) (fact same-dev ls lk))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cau-dev-pass-1
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-pass" z 2) (prec z1 i z 1))
+        (or (= z z1) (prec z1 i z 0)))))
+  (defgenrule cau-dev-close-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-close" z 3) (prec z1 i z 2))
+        (or (= z z1) (prec z1 i z 1)))))
+  (defgenrule cau-dev-open-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-open" z 3) (prec z1 i z 2))
+        (or (= z z1) (prec z1 i z 1)))))
+  (defgenrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z 3) (prec z1 i z 2))
+        (or (= z z1) (prec z1 i z 1)))))
+  (defgenrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z 4) (prec z 3 z1 i))
+        (or (= z z1) (and (p "dev-up" z 5) (prec z 4 z1 i))))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2))))))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (n text) (d o name) (pt pt-0 pval) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (uniq-orig n)
+  (facts (no-state-split))
+  (traces
+    ((load lk (cat pt "st-k" d o k)) (load ls (cat pt-0 "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k))))
+  (label 3)
+  (realized)
+  (origs (n (0 3)))
+  (comment "Not closed under rules"))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (n text) (d o name) (pt pt-0 pval) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (uniq-orig n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (facts (same-dev ls lk) (no-state-split))
+  (rule fact-dev-pass-same-dev0 gen-st-dev-pass-0 gen-st-dev-pass-1)
+  (traces
+    ((load lk (cat pt "st-k" d o k)) (load ls (cat pt-0 "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k))))
+  (label 4)
+  (parent 3)
+  (seen 5)
+  (unrealized (0 0) (0 1))
+  (origs (n (0 3)))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (k skey) (n text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((1 4) (0 0)))
+  (uniq-orig n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((1 3) (0 0)))
+  (rule cau-dev-pass-1 eff-dev-up-3 fact-dev-pass-same-dev0
+    fact-dev-up-same-dev0 same-dev-lk-ls trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-2 "st-k" d o k)) (0 0))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o))))
+  (label 5)
+  (parent 4)
+  (unrealized (0 1) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (k skey) (n text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (precedes ((1 4) (0 0)) ((2 0) (1 0)))
+  (uniq-orig n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand owner-power-dev 1)
+    (ch-msg start-ch (cat "power-up" d o k)) (1 0))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k))))
+  (label 6)
+  (parent 5)
+  (seen 7)
+  (unrealized (0 1))
+  (comment "5 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k k-0 skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (precedes ((1 4) (3 1)) ((2 0) (1 0)) ((3 3) (0 0)))
+  (uniq-orig n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((1 3) (0 0)) ((3 3) (0 1)))
+  (rule cau-dev-open-2 cau-dev-pass-1 fact-dev-open-same-dev0
+    fact-dev-pass-same-dev0 gen-st-dev-open-1 invShearsRule
+    same-dev-ls-lk trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-open 4)
+    (ch-msg ls (cat pt "st" d o o)) (0 1))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (enc "open" d o n-0 k-0)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-5 "st-k" d o k-0))
+      (stor ls (cat pt "st" d o o))))
+  (label 7)
+  (parent 6)
+  (seen 8)
+  (unrealized (3 2))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (precedes ((1 4) (3 1)) ((2 0) (1 0)) ((3 3) (0 0)))
+  (uniq-orig n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((1 3) (0 0)) ((1 3) (3 2)) ((3 3) (0 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (displaced 4 1 dev-up 4)
+    (ch-msg lk (cat pt-5 "st-k" d o k-0)) (3 2))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-2 "st-k" d o k)) (stor ls (cat pt "st" d o o))))
+  (label 8)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0) ((k k) (n n) (d d) (o o) (lk lk) (ls ls))))
+  (origs (pt-2 (1 3)) (pt (3 3)) (pt-3 (1 4)) (n (0 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol subatomic-open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (load ls old1) (stor lk (cat "st-k" d o k))
+      (stor ls (cat "st" d o)) (send (enc "up" k)))
+    (auth start-ch)
+    (critical-sections (1 4))
+    (facts (same-dev ls lk)))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "open" d o n k)) (load ls (cat "st" d any))
+      (load lk (cat "st-k" d o k)) (stor ls (cat "st" d o o)) (send n))
+    (critical-sections (1 3))
+    (gen-st (cat "st-k" d o k) (cat "st" d (cat o o)))
+    (facts (same-dev ls lk)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "close" d o n k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o)) (send n))
+    (gen-st (cat "st-k" d o k))
+    (critical-sections (1 3))
+    (facts (same-dev ls lk)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (load ls (cat "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    (uniq-orig n)
+    (gen-st (cat "st-k" d o k) (cat "st" d (cat o o)))
+    (critical-sections (0 1))
+    (facts (same-dev ls lk)))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defrule same-dev-ls-lk
+    (forall ((ls lk lk-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls lk-0))
+        (= lk lk-0))))
+  (defrule same-dev-lk-ls
+    (forall ((lk ls ls-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls-0 lk))
+        (= ls ls-0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule fact-dev-up-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-up" z (idx 3)) (p "dev-up" "lk" z lk)
+          (p "dev-up" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-open-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-open" z (idx 3)) (p "dev-open" "lk" z lk)
+          (p "dev-open" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-close-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-close" z (idx 3)) (p "dev-close" "lk" z lk)
+          (p "dev-close" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-pass-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-pass" z (idx 2)) (p "dev-pass" "lk" z lk)
+          (p "dev-pass" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-1
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 4)) (prec z (idx 3) z1 i))
+        (or (= z z1)
+          (and (p "dev-up" z (idx 5)) (prec z (idx 4) z1 i))))))
+  (defgenrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-open-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-open" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-close-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-close" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-pass-1
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-pass" z (idx 2)) (prec z1 i z (idx 1)))
+        (or (= z z1) (prec z1 i z (idx 0))))))
+  (defgenrule gen-st-dev-open-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-open" z (idx 1)) (p "dev-open" "k" z k)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule gen-st-dev-open-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-open" z (idx 1)) (p "dev-open" "o" z o)
+          (p "dev-open" "d" z d)) (gen-st (cat "st" d o o)))))
+  (defgenrule gen-st-dev-close-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-close" z (idx 1)) (p "dev-close" "k" z k)
+          (p "dev-close" "o" z o) (p "dev-close" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule gen-st-dev-pass-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "k" z k)
+          (p "dev-pass" "o" z o) (p "dev-pass" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule gen-st-dev-pass-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "o" z o)
+          (p "dev-pass" "d" z d)) (gen-st (cat "st" d o o)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule gen-st-dev-pass-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-pass" z 1) (p "dev-pass" "o" z o)
+          (p "dev-pass" "d" z d)) (gen-st (cat "st" d o o)))))
+  (defgenrule gen-st-dev-pass-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-pass" z 1) (p "dev-pass" "k" z k)
+          (p "dev-pass" "o" z o) (p "dev-pass" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule fact-dev-pass-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-pass" z 2) (p "dev-pass" "ls" z ls)
+          (p "dev-pass" "lk" z lk)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd)) (implies (p "dev-close" z 3) (trans z 2))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd)) (implies (p "dev-close" z 4) (trans z 3))))
+  (defgenrule gen-st-dev-close-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-close" z 1) (p "dev-close" "k" z k)
+          (p "dev-close" "o" z o) (p "dev-close" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule fact-dev-close-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-close" z 3) (p "dev-close" "ls" z ls)
+          (p "dev-close" "lk" z lk)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-open-at-1
+    (forall ((z strd)) (implies (p "dev-open" z 2) (trans z 1))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd)) (implies (p "dev-open" z 4) (trans z 3))))
+  (defgenrule gen-st-dev-open-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-open" z 1) (p "dev-open" "o" z o)
+          (p "dev-open" "d" z d)) (gen-st (cat "st" d o o)))))
+  (defgenrule gen-st-dev-open-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-open" z 1) (p "dev-open" "k" z k)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule fact-dev-open-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-open" z 3) (p "dev-open" "ls" z ls)
+          (p "dev-open" "lk" z lk)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd)) (implies (p "dev-up" z 2) (trans z 1))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd)) (implies (p "dev-up" z 3) (trans z 2))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd)) (implies (p "dev-up" z 4) (trans z 3))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd)) (implies (p "dev-up" z 5) (trans z 4))))
+  (defgenrule fact-dev-up-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-up" z 3) (p "dev-up" "ls" z ls)
+          (p "dev-up" "lk" z lk)) (fact same-dev ls lk))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cau-dev-pass-1
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-pass" z 2) (prec z1 i z 1))
+        (or (= z z1) (prec z1 i z 0)))))
+  (defgenrule cau-dev-close-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-close" z 3) (prec z1 i z 2))
+        (or (= z z1) (prec z1 i z 1)))))
+  (defgenrule cau-dev-open-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-open" z 3) (prec z1 i z 2))
+        (or (= z z1) (prec z1 i z 1)))))
+  (defgenrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z 3) (prec z1 i z 2))
+        (or (= z z1) (prec z1 i z 1)))))
+  (defgenrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z 4) (prec z 3 z1 i))
+        (or (= z z1) (and (p "dev-up" z 5) (prec z 4 z1 i))))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2))))))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (n text) (d o d-0 o-0 name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (uniq-orig k n)
+  (conf start-ch)
+  (facts (no-state-split))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0)) (recv (enc "may I pass" k))
+      (send (enc "you may pass" n k))))
+  (label 9)
+  (unrealized (0 1) (1 0) (1 2))
+  (preskeleton)
+  (origs (n (1 3)) (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (n text) (d o d-0 o-0 name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k n)
+  (conf start-ch)
+  (facts (no-state-split))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0)) (recv (enc "may I pass" k))
+      (send (enc "you may pass" n k))))
+  (label 10)
+  (parent 9)
+  (unrealized (0 1) (1 0) (1 2))
+  (origs (n (1 3)) (k (0 0)))
+  (comment "Not closed under rules"))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (n text) (d o d-0 o-0 name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d-0 o-0 o-0) (cat "st-k" d-0 o-0 k))
+  (conf start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule fact-dev-pass-same-dev0 gen-st-dev-pass-0 gen-st-dev-pass-1)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0)) (recv (enc "may I pass" k))
+      (send (enc "you may pass" n k))))
+  (label 11)
+  (parent 10)
+  (seen 12)
+  (unrealized (0 1) (1 0) (1 1) (1 2))
+  (origs (n (1 3)) (k (0 0)))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (k skey) (n text) (d o d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch start-ch-0 chan)
+    (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d-0) (o o-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d-0 o-0 o-0) (cat "st-k" d-0 o-0 k))
+  (conf start-ch)
+  (auth start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)))
+  (rule cau-dev-pass-1 eff-dev-up-3 fact-dev-pass-same-dev0
+    fact-dev-up-same-dev0 same-dev-lk-ls trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-2 "st-k" d-0 o-0 k)) (1 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d-0 o-0 k))
+      (load ls (cat pt "st" d-0 o-0 o-0)) (recv (enc "may I pass" k))
+      (send (enc "you may pass" n k)))
+    ((recv start-ch-0 (cat "power-up" d-0 o-0 k))
+      (load lk (cat pt-0 old)) (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 "st-k" d-0 o-0 k))
+      (stor ls (cat pt-3 "st" d-0 o-0))))
+  (label 12)
+  (parent 11)
+  (unrealized (0 1) (1 1) (1 2) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (k skey) (n text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (displaced 3 0 owner-power-dev 1)
+    (ch-msg start-ch-0 (cat "power-up" d-0 o-0 k)) (2 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o))))
+  (label 13)
+  (parent 12)
+  (seen 14)
+  (unrealized (0 1) (1 1) (1 2))
+  (comment "5 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k k-0 skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)) ((3 3) (1 1)))
+  (rule cau-dev-open-2 cau-dev-pass-1 fact-dev-open-same-dev0
+    fact-dev-pass-same-dev0 gen-st-dev-open-1 invShearsRule
+    same-dev-ls-lk trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-open 4)
+    (ch-msg ls (cat pt "st" d o o)) (1 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k-0)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-5 "st-k" d o k-0))
+      (stor ls (cat pt "st" d o o))))
+  (label 14)
+  (parent 13)
+  (seen 15)
+  (unrealized (0 1) (1 2) (3 2))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (displaced 4 2 dev-up 4)
+    (ch-msg lk (cat pt-5 "st-k" d o k-0)) (3 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-2 "st-k" d o k)) (stor ls (cat pt "st" d o o))))
+  (label 15)
+  (parent 14)
+  (unrealized (0 1) (1 2) (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (k k) (n n-0) (d d) (o o))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 0) (3 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-strand owner-open 1)
+    (enc "open" d o n-0 k) (3 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-2 "st-k" d o k)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))))
+  (label 16)
+  (parent 15)
+  (unrealized (0 1) (1 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((2 4) (3 1)) ((3 3) (1 0))
+    ((4 1) (3 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-listener k) (enc "open" d o n-0 k)
+    (3 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-2 "st-k" d o k)) (stor ls (cat pt "st" d o o)))
+    ((recv k) (send k)))
+  (label 17)
+  (parent 15)
+  (seen 20)
+  (unrealized (0 1) (4 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (k k) (n n-0) (d d) (o o))
+  (defstrand user-pass 1 (k k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 0) (3 0))
+    ((5 0) (1 2)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-strand user-pass 1)
+    (enc "may I pass" k) (1 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-2 "st-k" d o k)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))) ((send (enc "may I pass" k))))
+  (label 18)
+  (parent 16)
+  (seen 21)
+  (unrealized (0 1))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (k k) (n n-0) (d d) (o o))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((2 4) (3 1)) ((3 3) (1 0))
+    ((4 0) (3 0)) ((5 1) (1 2)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-listener k) (enc "may I pass" k)
+    (1 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-2 "st-k" d o k)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))) ((recv k) (send k)))
+  (label 19)
+  (parent 16)
+  (seen 23)
+  (unrealized (0 1) (5 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 4) (4 0)) ((3 3) (1 0)) ((4 1) (3 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-1
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (displaced 5 2 dev-up 4) k (4 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-2 "st-k" d o k)) (stor ls (cat pt "st" d o o)))
+    ((recv k) (send k)))
+  (label 20)
+  (parent 17)
+  (seen 20)
+  (unrealized (0 1) (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (any old old1 mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (k k) (n n-0) (d d) (o o))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-up 6 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (5 0)) ((2 3) (1 0)) ((3 0) (2 0)) ((4 0) (1 2))
+    ((5 4) (2 1)) ((5 5) (0 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 1)) ((5 3) (1 0)) ((5 3) (2 2)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (displaced 2 6 dev-up 6) (enc "up" k)
+    (0 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-3 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-0 "st" d any))
+      (load lk (cat pt-3 "st-k" d o k)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))) ((send (enc "may I pass" k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-1 old))
+      (load ls (cat pt-2 old1)) (stor lk (cat pt-3 "st-k" d o k))
+      (stor ls (cat pt-4 "st" d o)) (send (enc "up" k))))
+  (label 21)
+  (parent 18)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((k k) (d d) (o o) (start-ch start-ch) (n n) (d-0 d) (o-0 o)
+        (lk lk) (ls ls))))
+  (origs (pt-3 (5 3)) (pt-4 (5 4)) (pt (2 3)) (n (1 3)) (k (0 0))))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (k k) (n n-0) (d d) (o o))
+  (defstrand user-pass 1 (k k))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((2 4) (3 1)) ((3 3) (1 0))
+    ((4 0) (3 0)) ((5 0) (1 2)) ((6 1) (0 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-listener k) (enc "up" k) (0 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-2 "st-k" d o k)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))) ((send (enc "may I pass" k)))
+    ((recv k) (send k)))
+  (label 22)
+  (parent 18)
+  (seen 24)
+  (unrealized (6 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (k k) (n n-0) (d d) (o o))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((2 4) (5 0)) ((3 3) (1 0))
+    ((4 0) (3 0)) ((5 1) (1 2)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-1
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (displaced 6 2 dev-up 4) k (5 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-2 "st-k" d o k)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))) ((recv k) (send k)))
+  (label 23)
+  (parent 19)
+  (seen 23)
+  (unrealized (0 1) (5 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (k k) (n n-0) (d d) (o o))
+  (defstrand user-pass 1 (k k))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((2 4) (6 0)) ((3 3) (1 0))
+    ((4 0) (3 0)) ((5 0) (1 2)) ((6 1) (0 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-1
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (displaced 7 2 dev-up 4) k (6 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-2 "st-k" d o k)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))) ((send (enc "may I pass" k)))
+    ((recv k) (send k)))
+  (label 24)
+  (parent 22)
+  (seen 24)
+  (unrealized (6 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/tst/subatomic-open-closed.scm b/tst/subatomic-open-closed.scm
new file mode 100644
--- /dev/null
+++ b/tst/subatomic-open-closed.scm
@@ -0,0 +1,161 @@
+(herald subatomic-open-closed
+	;; (try-old-strands)
+	;; 	(check-nonces)
+	;; 	(reverse-nodes)
+	(bound 40))
+
+(defmacro (dev-key-state d o k)
+  (cat "st-k" d o k))
+
+(defmacro (opened o)
+  (cat o o))
+
+(defmacro (closed o) o)
+
+(defmacro (dev-state-opened d o)
+  (cat "st" d (opened o)))
+
+(defmacro (dev-state-closed d o)
+  (cat "st" d (closed o)))
+
+(defmacro (dev-state-any d o any)
+  (cat "st" d any))
+
+(defprotocol subatomic-open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan) (lk ls locn))
+    (trace
+     (recv start-ch (cat "power-up" d o k))
+     (load lk old)
+     (load ls old1)
+     (stor lk (dev-key-state d o k))
+     (stor ls (dev-state-closed d o))
+     (send (enc "up" k)))
+    (auth start-ch)
+    (critical-sections (1 4))
+    (facts (same-dev ls lk)))
+
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace
+     (send start-ch (cat "power-up" d o k))
+     (recv (enc "up" k)))
+    (conf start-ch))
+
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace
+     (send (enc "open" d o n k))
+     (recv n)))
+
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace
+     (send (enc "close" d o n k))
+     (recv n)))
+
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace
+     (recv (enc "open" d o n k))
+     (load ls (dev-state-any d o any))
+     (load lk (dev-key-state d o k))
+     (stor ls (dev-state-opened d o))
+     (send n))
+    (critical-sections (1 3))
+    (gen-st (dev-key-state d o k) (dev-state-opened d o))
+    (facts (same-dev ls lk)))
+
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace
+     (recv (enc "close" d o n k))
+     (load lk (dev-key-state d o k))
+     (load ls (dev-state-any d o any))
+     (stor ls (dev-state-closed d o))
+     (send n))
+    (gen-st (dev-key-state d o k))
+    (critical-sections (1 3))
+    (facts (same-dev ls lk)))
+
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace
+     (load lk (dev-key-state d o k))
+     (load ls (dev-state-opened d o))
+     (recv (enc "may I pass" k))
+     (send (enc "you may pass" n k)))
+    (uniq-orig n)
+    (gen-st (dev-key-state d o k) (dev-state-opened d o))
+    (critical-sections (0 1))
+    (facts (same-dev ls lk)))
+
+  (defrole user-pass
+    (vars (k skey) (n text) (d o name) (l locn))
+    (trace
+     (send (enc "may I pass" k))
+     (recv (enc "you may pass" k))))
+
+   (defrule power-deliver-once
+     (forall
+      ((z1 z2 strd) (k skey))
+      (implies
+       (and (p "dev-up" z1 2)
+ 	   (p "dev-up" z2 2)
+ 	   (p "dev-up" "k" z1 k)
+ 	   (p "dev-up" "k" z2 k))
+       (= z1 z2))))
+
+   (defrule same-dev-ls-lk
+     (forall ((ls lk lk-0 locn))
+  	     (implies
+  	      (and (fact same-dev ls lk)
+  		   (fact same-dev ls lk-0))
+  	      (= lk lk-0))))
+
+   (defrule same-dev-lk-ls
+     (forall ((lk ls ls-0 locn))
+  	     (implies
+  	      (and (fact same-dev ls lk)
+  		   (fact same-dev ls-0 lk))
+     	      (= ls ls-0)))))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k))
+  (deflistener k)
+  (uniq-orig k)
+  (facts (no-state-split)))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (d o name) (n text) (start-ch chan))
+  (defstrand dev-pass 4 (k k))
+  (facts (no-state-split)))
+
+(defskeleton subatomic-open-closed
+	   (vars (k skey) (d o name) (n text) (start-ch chan))
+	   (defstrand owner-power-dev 2 (k k))
+	   (defstrand dev-pass 4 (k k))
+	   (uniq-orig k)
+	   (facts (no-state-split)))
+
+(comment
+ (defskeleton subatomic-open-closed
+   (vars (any old old1 mesg) (k skey) (n n-0 text) (d o name)
+	 (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (lk ls locn))
+   (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+   (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+   (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+     (ls ls))
+   (defstrand owner-open 1 (k k) (n n-0) (d d) (o o))
+   (defstrand user-pass 1 (k k))
+   (defstrand dev-up 6 (old old) (old1 old1) (k k) (d d) (o o)
+     (start-ch start-ch) (lk lk) (ls ls))
+   (precedes ((0 0) (5 0)) ((2 3) (1 0)) ((3 0) (2 0)) ((4 0) (1 2))
+	     ((5 4) (2 1)) ((5 5) (0 1)))
+   (uniq-orig k n)
+   (gen-st (cat "st" d o o) (cat "st-k" d o k))
+   (conf start-ch)
+   (auth start-ch)
+   ;;  (facts (same-dev ls lk) (no-state-split))
+   (leads-to ((2 3) (1 1)) ((5 3) (1 0)) ((5 3) (2 2)))))
diff --git a/tst/subatomic-open-closed.tst b/tst/subatomic-open-closed.tst
new file mode 100644
--- /dev/null
+++ b/tst/subatomic-open-closed.tst
@@ -0,0 +1,1345 @@
+(herald subatomic-open-closed (bound 40))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/subatomic-open-closed.scm")
+(comment "Strand count bounded at 40")
+
+(defprotocol subatomic-open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (load ls old1) (stor lk (cat "st-k" d o k))
+      (stor ls (cat "st" d o)) (send (enc "up" k)))
+    (auth start-ch)
+    (critical-sections (1 4))
+    (facts (same-dev ls lk)))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "open" d o n k)) (load ls (cat "st" d any))
+      (load lk (cat "st-k" d o k)) (stor ls (cat "st" d o o)) (send n))
+    (critical-sections (1 3))
+    (gen-st (cat "st-k" d o k) (cat "st" d (cat o o)))
+    (facts (same-dev ls lk)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "close" d o n k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o)) (send n))
+    (gen-st (cat "st-k" d o k))
+    (critical-sections (1 3))
+    (facts (same-dev ls lk)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (load ls (cat "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    (uniq-orig n)
+    (gen-st (cat "st-k" d o k) (cat "st" d (cat o o)))
+    (critical-sections (0 1))
+    (facts (same-dev ls lk)))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defrule same-dev-ls-lk
+    (forall ((ls lk lk-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls lk-0))
+        (= lk lk-0))))
+  (defrule same-dev-lk-ls
+    (forall ((lk ls ls-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls-0 lk))
+        (= ls ls-0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule fact-dev-up-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-up" z (idx 3)) (p "dev-up" "lk" z lk)
+          (p "dev-up" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-open-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-open" z (idx 3)) (p "dev-open" "lk" z lk)
+          (p "dev-open" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-close-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-close" z (idx 3)) (p "dev-close" "lk" z lk)
+          (p "dev-close" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-pass-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-pass" z (idx 2)) (p "dev-pass" "lk" z lk)
+          (p "dev-pass" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-1
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 4)) (prec z (idx 3) z1 i))
+        (or (= z z1)
+          (and (p "dev-up" z (idx 5)) (prec z (idx 4) z1 i))))))
+  (defgenrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-open-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-open" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-close-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-close" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-pass-1
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-pass" z (idx 2)) (prec z1 i z (idx 1)))
+        (or (= z z1) (prec z1 i z (idx 0))))))
+  (defgenrule gen-st-dev-open-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-open" z (idx 1)) (p "dev-open" "k" z k)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule gen-st-dev-open-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-open" z (idx 1)) (p "dev-open" "o" z o)
+          (p "dev-open" "d" z d)) (gen-st (cat "st" d o o)))))
+  (defgenrule gen-st-dev-close-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-close" z (idx 1)) (p "dev-close" "k" z k)
+          (p "dev-close" "o" z o) (p "dev-close" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule gen-st-dev-pass-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "k" z k)
+          (p "dev-pass" "o" z o) (p "dev-pass" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule gen-st-dev-pass-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "o" z o)
+          (p "dev-pass" "d" z d)) (gen-st (cat "st" d o o))))))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (d o name) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (uniq-orig k)
+  (conf start-ch)
+  (facts (no-state-split))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k)))
+  (label 0)
+  (unrealized (0 1) (1 0))
+  (preskeleton)
+  (origs (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (d o name) (start-ch chan))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (facts (no-state-split))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k)))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1) (1 0))
+  (origs (k (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (k skey) (d o name) (pt pt-0 pt-1 pt-2 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (deflistener k)
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule eff-dev-up-3 fact-dev-up-same-dev0 trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (added-strand dev-up 4) k (1 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt old))
+      (load ls (cat pt-0 old1)) (stor lk (cat pt-1 "st-k" d o k))
+      (stor ls (cat pt-2 "st" d o))))
+  (label 2)
+  (parent 1)
+  (seen 2)
+  (unrealized (0 1) (1 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol subatomic-open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (load ls old1) (stor lk (cat "st-k" d o k))
+      (stor ls (cat "st" d o)) (send (enc "up" k)))
+    (auth start-ch)
+    (critical-sections (1 4))
+    (facts (same-dev ls lk)))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "open" d o n k)) (load ls (cat "st" d any))
+      (load lk (cat "st-k" d o k)) (stor ls (cat "st" d o o)) (send n))
+    (critical-sections (1 3))
+    (gen-st (cat "st-k" d o k) (cat "st" d (cat o o)))
+    (facts (same-dev ls lk)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "close" d o n k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o)) (send n))
+    (gen-st (cat "st-k" d o k))
+    (critical-sections (1 3))
+    (facts (same-dev ls lk)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (load ls (cat "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    (uniq-orig n)
+    (gen-st (cat "st-k" d o k) (cat "st" d (cat o o)))
+    (critical-sections (0 1))
+    (facts (same-dev ls lk)))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defrule same-dev-ls-lk
+    (forall ((ls lk lk-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls lk-0))
+        (= lk lk-0))))
+  (defrule same-dev-lk-ls
+    (forall ((lk ls ls-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls-0 lk))
+        (= ls ls-0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule fact-dev-up-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-up" z (idx 3)) (p "dev-up" "lk" z lk)
+          (p "dev-up" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-open-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-open" z (idx 3)) (p "dev-open" "lk" z lk)
+          (p "dev-open" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-close-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-close" z (idx 3)) (p "dev-close" "lk" z lk)
+          (p "dev-close" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-pass-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-pass" z (idx 2)) (p "dev-pass" "lk" z lk)
+          (p "dev-pass" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-1
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 4)) (prec z (idx 3) z1 i))
+        (or (= z z1)
+          (and (p "dev-up" z (idx 5)) (prec z (idx 4) z1 i))))))
+  (defgenrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-open-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-open" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-close-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-close" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-pass-1
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-pass" z (idx 2)) (prec z1 i z (idx 1)))
+        (or (= z z1) (prec z1 i z (idx 0))))))
+  (defgenrule gen-st-dev-open-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-open" z (idx 1)) (p "dev-open" "k" z k)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule gen-st-dev-open-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-open" z (idx 1)) (p "dev-open" "o" z o)
+          (p "dev-open" "d" z d)) (gen-st (cat "st" d o o)))))
+  (defgenrule gen-st-dev-close-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-close" z (idx 1)) (p "dev-close" "k" z k)
+          (p "dev-close" "o" z o) (p "dev-close" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule gen-st-dev-pass-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "k" z k)
+          (p "dev-pass" "o" z o) (p "dev-pass" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule gen-st-dev-pass-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "o" z o)
+          (p "dev-pass" "d" z d)) (gen-st (cat "st" d o o))))))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (n text) (d o name) (pt pt-0 pval) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (uniq-orig n)
+  (facts (no-state-split))
+  (traces
+    ((load lk (cat pt "st-k" d o k)) (load ls (cat pt-0 "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k))))
+  (label 3)
+  (realized)
+  (origs (n (0 3)))
+  (comment "Not closed under rules"))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (n text) (d o name) (pt pt-0 pval) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (uniq-orig n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (facts (same-dev ls lk) (no-state-split))
+  (rule fact-dev-pass-same-dev0 gen-st-dev-pass-0 gen-st-dev-pass-1)
+  (traces
+    ((load lk (cat pt "st-k" d o k)) (load ls (cat pt-0 "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k))))
+  (label 4)
+  (parent 3)
+  (seen 5)
+  (unrealized (0 0) (0 1))
+  (origs (n (0 3)))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (k skey) (n text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((1 4) (0 0)))
+  (uniq-orig n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((1 3) (0 0)))
+  (rule cau-dev-pass-1 eff-dev-up-3 fact-dev-pass-same-dev0
+    fact-dev-up-same-dev0 same-dev-lk-ls trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-2 "st-k" d o k)) (0 0))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o))))
+  (label 5)
+  (parent 4)
+  (unrealized (0 1) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (k skey) (n text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (lk ls locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (precedes ((1 4) (0 0)) ((2 0) (1 0)))
+  (uniq-orig n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((1 3) (0 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand owner-power-dev 1)
+    (ch-msg start-ch (cat "power-up" d o k)) (1 0))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k))))
+  (label 6)
+  (parent 5)
+  (seen 7)
+  (unrealized (0 1))
+  (comment "5 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k k-0 skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (precedes ((1 4) (3 1)) ((2 0) (1 0)) ((3 3) (0 0)))
+  (uniq-orig n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((1 3) (0 0)) ((3 3) (0 1)))
+  (rule cau-dev-open-2 cau-dev-pass-1 fact-dev-open-same-dev0
+    fact-dev-pass-same-dev0 gen-st-dev-open-1 invShearsRule
+    same-dev-ls-lk trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-open 4)
+    (ch-msg ls (cat pt "st" d o o)) (0 1))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (enc "open" d o n-0 k-0)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-5 "st-k" d o k-0))
+      (stor ls (cat pt "st" d o o))))
+  (label 7)
+  (parent 6)
+  (seen 8)
+  (unrealized (3 2))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (precedes ((1 4) (3 1)) ((2 0) (1 0)) ((3 3) (0 0)))
+  (uniq-orig n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((1 3) (0 0)) ((1 3) (3 2)) ((3 3) (0 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (displaced 4 1 dev-up 4)
+    (ch-msg lk (cat pt-5 "st-k" d o k-0)) (3 2))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-2 "st-k" d o k)) (stor ls (cat pt "st" d o o))))
+  (label 8)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0) ((k k) (n n) (d d) (o o) (lk lk) (ls ls))))
+  (origs (pt-2 (1 3)) (pt (3 3)) (pt-3 (1 4)) (n (0 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol subatomic-open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (load ls old1) (stor lk (cat "st-k" d o k))
+      (stor ls (cat "st" d o)) (send (enc "up" k)))
+    (auth start-ch)
+    (critical-sections (1 4))
+    (facts (same-dev ls lk)))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "open" d o n k)) (load ls (cat "st" d any))
+      (load lk (cat "st-k" d o k)) (stor ls (cat "st" d o o)) (send n))
+    (critical-sections (1 3))
+    (gen-st (cat "st-k" d o k) (cat "st" d (cat o o)))
+    (facts (same-dev ls lk)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "close" d o n k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o)) (send n))
+    (gen-st (cat "st-k" d o k))
+    (critical-sections (1 3))
+    (facts (same-dev ls lk)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (load ls (cat "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    (uniq-orig n)
+    (gen-st (cat "st-k" d o k) (cat "st" d (cat o o)))
+    (critical-sections (0 1))
+    (facts (same-dev ls lk)))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 (idx 2)) (p "dev-up" z2 (idx 2))
+          (p "dev-up" "k" z1 k) (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defrule same-dev-ls-lk
+    (forall ((ls lk lk-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls lk-0))
+        (= lk lk-0))))
+  (defrule same-dev-lk-ls
+    (forall ((lk ls ls-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls-0 lk))
+        (= ls ls-0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule fact-dev-up-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-up" z (idx 3)) (p "dev-up" "lk" z lk)
+          (p "dev-up" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-open-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-open" z (idx 3)) (p "dev-open" "lk" z lk)
+          (p "dev-open" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-close-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-close" z (idx 3)) (p "dev-close" "lk" z lk)
+          (p "dev-close" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule fact-dev-pass-same-dev0
+    (forall ((z strd) (lk ls locn))
+      (implies
+        (and (p "dev-pass" z (idx 2)) (p "dev-pass" "lk" z lk)
+          (p "dev-pass" "ls" z ls)) (fact same-dev ls lk))))
+  (defgenrule trRl_dev-up-at-4
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 4)))))
+  (defgenrule trRl_dev-up-at-3
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-up-at-2
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 5)) (trans z (idx 2)))))
+  (defgenrule trRl_dev-up-at-1
+    (forall ((z strd))
+      (implies (p "dev-up" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-open-at-3
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-open-at-1
+    (forall ((z strd))
+      (implies (p "dev-open" z (idx 4)) (trans z (idx 1)))))
+  (defgenrule trRl_dev-close-at-3
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_dev-close-at-2
+    (forall ((z strd))
+      (implies (p "dev-close" z (idx 4)) (trans z (idx 2)))))
+  (defgenrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 4)) (prec z (idx 3) z1 i))
+        (or (= z z1)
+          (and (p "dev-up" z (idx 5)) (prec z (idx 4) z1 i))))))
+  (defgenrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-up" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-open-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-open" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-close-2
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-close" z (idx 3)) (prec z1 i z (idx 2)))
+        (or (= z z1) (prec z1 i z (idx 1))))))
+  (defgenrule cau-dev-pass-1
+    (forall ((z z1 strd) (i indx))
+      (implies (and (p "dev-pass" z (idx 2)) (prec z1 i z (idx 1)))
+        (or (= z z1) (prec z1 i z (idx 0))))))
+  (defgenrule gen-st-dev-open-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-open" z (idx 1)) (p "dev-open" "k" z k)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule gen-st-dev-open-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-open" z (idx 1)) (p "dev-open" "o" z o)
+          (p "dev-open" "d" z d)) (gen-st (cat "st" d o o)))))
+  (defgenrule gen-st-dev-close-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-close" z (idx 1)) (p "dev-close" "k" z k)
+          (p "dev-close" "o" z o) (p "dev-close" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule gen-st-dev-pass-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "k" z k)
+          (p "dev-pass" "o" z o) (p "dev-pass" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defgenrule gen-st-dev-pass-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-pass" z (idx 1)) (p "dev-pass" "o" z o)
+          (p "dev-pass" "d" z d)) (gen-st (cat "st" d o o))))))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (n text) (d o d-0 o-0 name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (uniq-orig k n)
+  (conf start-ch)
+  (facts (no-state-split))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0)) (recv (enc "may I pass" k))
+      (send (enc "you may pass" n k))))
+  (label 9)
+  (unrealized (0 1) (1 0) (1 2))
+  (preskeleton)
+  (origs (n (1 3)) (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (n text) (d o d-0 o-0 name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k n)
+  (conf start-ch)
+  (facts (no-state-split))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0)) (recv (enc "may I pass" k))
+      (send (enc "you may pass" n k))))
+  (label 10)
+  (parent 9)
+  (unrealized (0 1) (1 0) (1 2))
+  (origs (n (1 3)) (k (0 0)))
+  (comment "Not closed under rules"))
+
+(defskeleton subatomic-open-closed
+  (vars (k skey) (n text) (d o d-0 o-0 name) (pt pt-0 pval)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d-0 o-0 o-0) (cat "st-k" d-0 o-0 k))
+  (conf start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule fact-dev-pass-same-dev0 gen-st-dev-pass-0 gen-st-dev-pass-1)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0)) (recv (enc "may I pass" k))
+      (send (enc "you may pass" n k))))
+  (label 11)
+  (parent 10)
+  (seen 12)
+  (unrealized (0 1) (1 0) (1 1) (1 2))
+  (origs (n (1 3)) (k (0 0)))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (k skey) (n text) (d o d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch start-ch-0 chan)
+    (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d-0) (o o-0) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d-0) (o o-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d-0 o-0 o-0) (cat "st-k" d-0 o-0 k))
+  (conf start-ch)
+  (auth start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)))
+  (rule cau-dev-pass-1 eff-dev-up-3 fact-dev-pass-same-dev0
+    fact-dev-up-same-dev0 same-dev-lk-ls trRl_dev-up-at-1
+    trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-2 "st-k" d-0 o-0 k)) (1 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d-0 o-0 k))
+      (load ls (cat pt "st" d-0 o-0 o-0)) (recv (enc "may I pass" k))
+      (send (enc "you may pass" n k)))
+    ((recv start-ch-0 (cat "power-up" d-0 o-0 k))
+      (load lk (cat pt-0 old)) (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 "st-k" d-0 o-0 k))
+      (stor ls (cat pt-3 "st" d-0 o-0))))
+  (label 12)
+  (parent 11)
+  (unrealized (0 1) (1 1) (1 2) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (k skey) (n text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (displaced 3 0 owner-power-dev 1)
+    (ch-msg start-ch-0 (cat "power-up" d-0 o-0 k)) (2 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o))))
+  (label 13)
+  (parent 12)
+  (seen 14)
+  (unrealized (0 1) (1 1) (1 2))
+  (comment "5 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k k-0 skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (start-ch chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k-0) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)) ((3 3) (1 1)))
+  (rule cau-dev-open-2 cau-dev-pass-1 fact-dev-open-same-dev0
+    fact-dev-pass-same-dev0 gen-st-dev-open-1 invShearsRule
+    same-dev-ls-lk trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (added-strand dev-open 4)
+    (ch-msg ls (cat pt "st" d o o)) (1 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k-0)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-5 "st-k" d o k-0))
+      (stor ls (cat pt "st" d o o))))
+  (label 14)
+  (parent 13)
+  (seen 15)
+  (unrealized (0 1) (1 2) (3 2))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation channel-test (displaced 4 2 dev-up 4)
+    (ch-msg lk (cat pt-5 "st-k" d o k-0)) (3 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-2 "st-k" d o k)) (stor ls (cat pt "st" d o o))))
+  (label 15)
+  (parent 14)
+  (unrealized (0 1) (1 2) (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (k k) (n n-0) (d d) (o o))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 0) (3 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-strand owner-open 1)
+    (enc "open" d o n-0 k) (3 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-2 "st-k" d o k)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))))
+  (label 16)
+  (parent 15)
+  (unrealized (0 1) (1 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((2 4) (3 1)) ((3 3) (1 0))
+    ((4 1) (3 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-listener k) (enc "open" d o n-0 k)
+    (3 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-2 "st-k" d o k)) (stor ls (cat pt "st" d o o)))
+    ((recv k) (send k)))
+  (label 17)
+  (parent 15)
+  (seen 20)
+  (unrealized (0 1) (4 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (k k) (n n-0) (d d) (o o))
+  (defstrand user-pass 1 (k k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 0) (3 0))
+    ((5 0) (1 2)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-strand user-pass 1)
+    (enc "may I pass" k) (1 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-2 "st-k" d o k)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))) ((send (enc "may I pass" k))))
+  (label 18)
+  (parent 16)
+  (seen 21)
+  (unrealized (0 1))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (k k) (n n-0) (d d) (o o))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((2 4) (3 1)) ((3 3) (1 0))
+    ((4 0) (3 0)) ((5 1) (1 2)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-listener k) (enc "may I pass" k)
+    (1 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-2 "st-k" d o k)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))) ((recv k) (send k)))
+  (label 19)
+  (parent 16)
+  (seen 23)
+  (unrealized (0 1) (5 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 4) (4 0)) ((3 3) (1 0)) ((4 1) (3 0)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-1
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (displaced 5 2 dev-up 4) k (4 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-2 "st-k" d o k)) (stor ls (cat pt "st" d o o)))
+    ((recv k) (send k)))
+  (label 20)
+  (parent 17)
+  (seen 20)
+  (unrealized (0 1) (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (any old old1 mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (k k) (n n-0) (d d) (o o))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-up 6 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (5 0)) ((2 3) (1 0)) ((3 0) (2 0)) ((4 0) (1 2))
+    ((5 4) (2 1)) ((5 5) (0 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 1)) ((5 3) (1 0)) ((5 3) (2 2)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (displaced 2 6 dev-up 6) (enc "up" k)
+    (0 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-3 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-0 "st" d any))
+      (load lk (cat pt-3 "st-k" d o k)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))) ((send (enc "may I pass" k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-1 old))
+      (load ls (cat pt-2 old1)) (stor lk (cat pt-3 "st-k" d o k))
+      (stor ls (cat pt-4 "st" d o)) (send (enc "up" k))))
+  (label 21)
+  (parent 18)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((k k) (d d) (o o) (start-ch start-ch) (n n) (d-0 d) (o-0 o)
+        (lk lk) (ls ls))))
+  (origs (pt-3 (5 3)) (pt-4 (5 4)) (pt (2 3)) (n (1 3)) (k (0 0))))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (k k) (n n-0) (d d) (o o))
+  (defstrand user-pass 1 (k k))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((2 4) (3 1)) ((3 3) (1 0))
+    ((4 0) (3 0)) ((5 0) (1 2)) ((6 1) (0 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule fact-dev-pass-same-dev0 trRl_dev-open-at-1 trRl_dev-open-at-3
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation encryption-test (added-listener k) (enc "up" k) (0 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-2 "st-k" d o k)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))) ((send (enc "may I pass" k)))
+    ((recv k) (send k)))
+  (label 22)
+  (parent 18)
+  (seen 24)
+  (unrealized (6 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (k k) (n n-0) (d d) (o o))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((2 4) (5 0)) ((3 3) (1 0))
+    ((4 0) (3 0)) ((5 1) (1 2)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-1
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (displaced 6 2 dev-up 4) k (5 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-2 "st-k" d o k)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))) ((recv k) (send k)))
+  (label 23)
+  (parent 19)
+  (seen 23)
+  (unrealized (0 1) (5 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (k skey) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (start-ch chan) (ls lk locn))
+  (defstrand owner-power-dev 2 (k k) (d d) (o o) (start-ch start-ch))
+  (defstrand dev-pass 4 (k k) (n n) (d d) (o o) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (k k) (d d) (o o)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (k k) (n n-0) (d d) (o o) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (k k) (n n-0) (d d) (o o))
+  (defstrand user-pass 1 (k k))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((2 4) (6 0)) ((3 3) (1 0))
+    ((4 0) (3 0)) ((5 0) (1 2)) ((6 1) (0 1)))
+  (uniq-orig k n)
+  (gen-st (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (leads-to ((2 3) (1 0)) ((2 3) (3 2)) ((3 3) (1 1)))
+  (rule eff-dev-up-3 fact-dev-pass-same-dev0 trRl_dev-open-at-1
+    trRl_dev-open-at-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 trRl_dev-up-at-4)
+  (operation nonce-test (displaced 7 2 dev-up 4) k (6 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load ls (cat pt-4 "st" d any))
+      (load lk (cat pt-2 "st-k" d o k)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))) ((send (enc "may I pass" k)))
+    ((recv k) (send k)))
+  (label 24)
+  (parent 22)
+  (seen 24)
+  (unrealized (6 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/tst/subsort_test.scm b/tst/subsort_test.scm
deleted file mode 100644
--- a/tst/subsort_test.scm
+++ /dev/null
@@ -1,43 +0,0 @@
-(herald "Subsort constraint test protocol"
-   (comment "First, third, and fourth skeletons should have a shape,"
-            "second should be dead."))
-
-(defprotocol subsorttest basic
-  (defrole init
-     (vars (n1 n2 text) (k skey))
-     (trace
-       (send (cat n1 (enc n1 n2 k)))
-       (recv n2))
-     (non-orig k)
-     (uniq-orig n1 n2)
-  )
-)
-
-;;; With no declaration, a shape should be found where n1 = n2.
-(defskeleton subsorttest
-   (vars (n1 n2 text) (k skey))
-   (defstrand init 2) (n1 n1) (n2 n2) (k k))
-
-;;; By declaring n1 to be of subsort A and n2 to be of subsort B, the
-;;; unification of n1 and n2 is prevented, so no shape should exist.
-(defskeleton subsorttest
-   (vars (n1 n2 text))
-   (defstrand init 2 (n1 n1) (n2 n2))
-   (subsort (A n1) (B n2))
-)
-
-;;; Here, only n1 is declared to be of a subsort.  Unification with n2
-;;; is allowed, so a shape should be found.
-(defskeleton subsorttest
-   (vars (n1 n2 text))
-   (defstrand init 2 (n1 n1) (n2 n2))
-   (subsort (A n1))
-)
-
-;;; Here, both n1 and n2 are declared to be of the same subsort (A),
-;;; which should allow their unification.
-(defskeleton subsorttest
-   (vars (n1 n2 text))
-   (defstrand init 2 (n1 n1) (n2 n2))
-   (subsort (A n1 n2))
-)
diff --git a/tst/subsort_test.tst b/tst/subsort_test.tst
deleted file mode 100644
--- a/tst/subsort_test.tst
+++ /dev/null
@@ -1,134 +0,0 @@
-(herald "Subsort constraint test protocol"
-  (comment "First, third, and fourth skeletons should have a shape,"
-    "second should be dead."))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/subsort_test.scm")
-
-(defprotocol subsorttest basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))
-
-(defskeleton subsorttest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (non-orig k)
-  (uniq-orig n1 n2)
-  (traces ((send (cat n1 (enc n1 n2 k))) (recv n2)))
-  (label 0)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton subsorttest
-  (vars (n1 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n1) (k k))
-  (non-orig k)
-  (uniq-orig n1)
-  (operation nonce-test (displaced 1 0 init 1) n2 (0 1) (enc n1 n2 k))
-  (traces ((send (cat n1 (enc n1 n1 k))) (recv n1)))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n1 n1) (n2 n1) (k k))))
-  (origs (n1 (0 0))))
-
-(comment "Nothing left to do")
-
-(defprotocol subsorttest basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))
-
-(defskeleton subsorttest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (non-orig k)
-  (subsort (A n1) (B n2))
-  (uniq-orig n1 n2)
-  (traces ((send (cat n1 (enc n1 n2 k))) (recv n2)))
-  (label 2)
-  (unrealized (0 1))
-  (dead)
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol subsorttest basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))
-
-(defskeleton subsorttest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (non-orig k)
-  (subsort (A n1))
-  (uniq-orig n1 n2)
-  (traces ((send (cat n1 (enc n1 n2 k))) (recv n2)))
-  (label 3)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton subsorttest
-  (vars (n1 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n1) (k k))
-  (non-orig k)
-  (subsort (A n1))
-  (uniq-orig n1)
-  (operation nonce-test (displaced 1 0 init 1) n2 (0 1) (enc n1 n2 k))
-  (traces ((send (cat n1 (enc n1 n1 k))) (recv n1)))
-  (label 4)
-  (parent 3)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n1 n1) (n2 n1) (k k))))
-  (origs (n1 (0 0))))
-
-(comment "Nothing left to do")
-
-(defprotocol subsorttest basic
-  (defrole init
-    (vars (n1 n2 text) (k skey))
-    (trace (send (cat n1 (enc n1 n2 k))) (recv n2))
-    (non-orig k)
-    (uniq-orig n1 n2)))
-
-(defskeleton subsorttest
-  (vars (n1 n2 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n2) (k k))
-  (non-orig k)
-  (subsort (A n1 n2))
-  (uniq-orig n1 n2)
-  (traces ((send (cat n1 (enc n1 n2 k))) (recv n2)))
-  (label 5)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton subsorttest
-  (vars (n1 text) (k skey))
-  (defstrand init 2 (n1 n1) (n2 n1) (k k))
-  (non-orig k)
-  (subsort (A n1))
-  (uniq-orig n1)
-  (operation nonce-test (displaced 1 0 init 1) n2 (0 1) (enc n1 n2 k))
-  (traces ((send (cat n1 (enc n1 n1 k))) (recv n1)))
-  (label 6)
-  (parent 5)
-  (unrealized)
-  (shape)
-  (maps ((0) ((n1 n1) (n2 n1) (k k))))
-  (origs (n1 (0 0))))
-
-(comment "Nothing left to do")
diff --git a/tst/sync_locn_envelope.scm b/tst/sync_locn_envelope.scm
new file mode 100644
--- /dev/null
+++ b/tst/sync_locn_envelope.scm
@@ -0,0 +1,303 @@
+(herald "Envelope Protocol, location-based version"
+   	;;   (reverse-nodes)
+	;; (try-old-strands)
+	(check-nonces)
+	(bound 30)
+	(limit 6000))
+
+;;; This file analyzes the Envelope Protocol using three rules sets.
+;;; For each rule set, it checks three scenarios.  In every scenario,
+;;; an Alice strand runs to completion.  In the first scenario, the
+;;; obtain token is listened for.  In the second, a listener for the
+;;; refusal token is included.  In the third scenario, both listeners
+;;; are included.  The third scenario should be impossible, but rules
+;;; are required to accurately model state.
+;;;
+;;; The first rule set is empty and the answer to the third scenario
+;;; shows a case is which the TPM's PCR state splits.  The second rule
+;;; set forces TPM extends to be linearly ordered.  However, in this
+;;; case, there are two TPMs when there should be one as Alice uses
+;;; one TPM storage key to communicate with both TPMs.  The final rule
+;;; set includes a rule about storage keys and thus accurately models
+;;; state.
+;;;
+;;; Macros are used to avoid copying roles and scenarios.
+
+;; This is the refusal token
+(defmacro (refuse pcr-id n v k aik)
+  (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+
+;;; This protocol tracks the TPM's PCR state
+;;; by sending a message with the current PCR
+;;; value encrypted by a hashed secret key.
+;;; The hash is used to prevent a confusion with
+;;; the key for an encrypted session.
+
+(defmacro (roles)
+  (^
+   ;; Power on sets the pcr to 0
+   (defrole tpm-power-on
+     (vars (current-value mesg) (pcr locn) (tpm chan))
+     (trace
+      (recv tpm "power on")
+      (load pcr current-value)
+      (stor pcr "0")))
+
+   ;; The extend command takes the value to extend and the current PCR
+   ;; value and produces the hash of the two values.
+   ;;     (defrole tpm-extend
+   ;;        (vars (value current-value mesg) (pcr locn))
+   ;;        (trace
+   ;;         (recv (cat "extend" value))
+   ;;         (recv pcr current-value)		    ;; MSR lhs (deleted)
+   ;;         (stor pcr (hash current-value value)) ;; MSR rhs
+   ;;         (send "ext ok")))
+
+   ;; The extend command can also occur within an
+   ;; encrypted session.  We assume some session key already exists
+   (defrole tpm-extend-enc
+     (vars (value current-value mesg) (pcr-id nonce text) (pcr locn) (tpm chan))
+     (trace
+      (send tpm (cat "token" nonce))
+      (recv tpm (cat "extend" pcr-id value (hash pcr-id value nonce)))
+      (load pcr current-value)		    ;; MSR lhs (deleted)
+      (stor pcr (hash current-value value)) ;; MSR rhs
+      (send "ext ok"))
+     (uniq-orig nonce))
+
+   ;; The TPM must retrieve the current pcr value.  Notice that
+   ;; the nonce is of sort mesg, which allows non-atomic values.
+   (defrole tpm-quote
+     (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn) (tpm chan))
+     (trace
+      (recv tpm (cat "quote" pcr-id nonce))
+      (load pcr current-value) ;; MSR lhs (not deleted)
+      (send (enc "quote" pcr-id current-value nonce aik))))
+
+   ;; This role creates a key whose use is restricted to a
+   ;; requested pcr value (since we only model one pcr).
+   ;; It doesn't create or change any TPM state.
+   (defrole tpm-create-key
+     (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
+     (trace
+      (recv tpm (cat "create-req" pcr-id pcrval))
+      (send (enc "created" k pcr-id pcrval aik))) ;; no tpm state is set
+     (uniq-orig k)
+     (non-orig (invk k))
+     (auth tpm)			; Weird shapes without auth
+     )
+
+   ;; This role receives an encryption and a previously
+   ;; made key structure that restricts the decryption key
+   ;; to be used with a certain pcr value.  It retrieves the
+   ;; current value and checks that it matches before decrypting.
+   (defrole tpm-decrypt
+     (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn) (tpm chan))
+     (trace
+      (recv tpm (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcr-id current-value aik))
+      (load pcr current-value) ;; MSR lhs (not deleted)
+      (send m))
+     (non-orig aik))
+
+   ;; Alice extends a pcr with a fresh nonce in an encrypted
+   ;; session.  She has the TPM create a new key whose use is
+   ;; bound to the hash of pcr value she just created with the
+   ;; string "obtain".  She then encrypts her fresh secret with
+   ;; this newly created key.
+   (defrole alice
+     (vars (n v data) (pcr-id nonce text) (k aik akey) (tpm tpmconf chan))
+     (trace
+      (recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      ;; (enc "create key" (hash (hash "0" n) "obtain") esk)
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+     (neq (k aik))
+     (uniq-orig n v)
+     (non-orig aik)
+     (conf tpmconf))))
+
+(defmacro (genStV-rules)
+  (^
+
+;;      (defrule genStV-if-hashed-tpm-extend
+;;        (forall
+;;         ((z strd) (v1 v2 mesg))
+;;         (implies
+;;          (and
+;;   	(p "tpm-extend" z 2)
+;;   	(p "tpm-extend" "current-value" z (hash v1 v2)))
+;;          (gen-st (hash v1 v2)))))
+
+   (defrule genStV-if-hashed-tpm-power-on
+     (forall
+      ((z strd) (v1 v2 mesg))
+      (implies
+       (and
+	(p "tpm-power-on" z 2)
+	(p "tpm-power-on" "current-value" z (hash v1 v2)))
+       (gen-st (hash v1 v2)))))
+
+   (defrule genStV-if-hashed-tpm-extend-enc
+     (forall
+      ((z strd) (v1 v2 mesg))
+      (implies
+       (and
+	(p "tpm-extend-enc" z 3)
+	(p "tpm-extend-enc" "current-value" z (hash v1 v2)))
+       (gen-st (hash v1 v2)))))
+
+   (defrule genStV-if-hashed-tpm-decrypt
+     (forall
+      ((z strd) (v1 v2 mesg))
+      (implies
+       (and
+	(p "tpm-decrypt" z 3)
+	(p "tpm-decrypt" "current-value" z (hash v1 v2)))
+       (gen-st (hash v1 v2)))))
+
+   (defrule genStV-if-hashed-tpm-quote
+     (forall
+      ((z strd) (v1 v2 mesg))
+      (implies
+       (and
+	(p "tpm-quote" z 2)
+	(p "tpm-quote" "current-value" z (hash v1 v2)))
+       (gen-st (hash v1 v2)))))
+
+;;      (defrule genStV-not-catted-tpm-power-on
+;;        (forall
+;;         ((z strd) (v1 v2 mesg))
+;;         (implies
+;;          (and
+;;   	(p "tpm-power-on" z 2)
+;;   	(p "tpm-power-on" "current-value" z (cat v1 v2)))
+;;          (false))))
+;;
+;;      (defrule genStV-not-catted-tpm-extend-enc
+;;        (forall
+;;         ((z strd) (v1 v2 mesg))
+;;         (implies
+;;          (and
+;;   	(p "tpm-extend-enc" z 2)
+;;   	(p "tpm-extend-enc" "current-value" z (cat v1 v2)))
+;;          (false))))
+;;
+;;      (defrule genStV-not-catted-tpm-decrypt
+;;        (forall
+;;         ((z strd) (v1 v2 mesg))
+;;         (implies
+;;          (and
+;;   	(p "tpm-decrypt" z 3)
+;;   	(p "tpm-decrypt" "current-value" z (cat v1 v2)))
+;;          (false))))
+;;
+;;      (defrule genStV-not-catted-tpm-quote
+;;        (forall
+;;         ((z strd) (v1 v2 mesg))
+;;         (implies
+;;          (and
+;;   	(p "tpm-quote" z 2)
+;;   	(p "tpm-quote" "current-value" z (cat v1 v2)))
+   ;;          (false))))
+   ))
+
+(defprotocol envelope basic
+  (roles)
+  (genStV-rules)
+  )
+
+(defskeleton envelope
+  (vars (v data))
+  (deflistener v)
+  (defstrand alice 5 (v v)))
+
+(defskeleton envelope
+  (vars (n v data) (k aik akey) (pcr-id text))
+  (deflistener (refuse pcr-id n v k aik))
+  (defstrand alice 5 (n n) (v v) (k k) (aik aik)))
+
+(defskeleton envelope
+  (vars (n v data) (k aik akey) (pcr-id text))
+  (deflistener (refuse pcr-id n v k aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (k k) (aik aik)))
+
+(defskeleton envelope
+  (vars (n v data) (k aik akey) (pcr-id text))
+  (deflistener (refuse pcr-id n v k aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (k k) (aik aik))
+  (facts (no-state-split)))
+
+;;   (defprotocol envelope-plus basic
+;;     (roles)
+;;     (genStV-rules)
+;;
+;;     (defrule ordered-extends
+;;       (forall ((y z strd) (pcr locn))
+;;   	    (implies
+;;   	     (and (p "tpm-extend-enc" y 4)
+;;   		  (p "tpm-extend-enc" z 4)
+;;   		  (p "tpm-extend-enc" "pcr" y pcr)
+;;   		  (p "tpm-extend-enc" "pcr" z pcr))
+;;   	     (or (= y z)
+;;   		 (prec y 3 z 2)
+;;   		 (prec z 3 y 2))))))
+;;
+;;
+;;   (defskeleton envelope-plus
+;;     (vars (v data))
+;;     (deflistener v)
+;;     (defstrand alice 5 (v v)))
+;;
+;;   (defskeleton envelope-plus
+;;     (vars (n v data) (k aik akey) (pcr-id text))
+;;     (deflistener (refuse pcr-id n v k aik))
+;;     (defstrand alice 5 (n n) (v v) (k k) (aik aik)))
+;;
+;;   (defskeleton envelope-plus
+;;     (vars (n v data) (k aik akey) (pcr-id text))
+;;     (deflistener (refuse pcr-id n v k aik))
+;;     (deflistener v)
+;;     (defstrand alice 5 (n n) (v v) (k k) (aik aik)))
+
+(comment (defprotocol envelope-plus-2 basic
+	   (roles)
+	   (genStV-rules)
+
+	   (defrule pcr-id-identifies-pcr
+	     (forall ((y z strd) (pcr-id text) (pcr pcr-0 locn))
+		     (implies
+		      (and (p "tpm-extend-enc" y 3)
+			   (p "tpm-extend-enc" z 3)
+			   (p "tpm-extend-enc" "pcr-id" y pcr-id)
+			   (p "tpm-extend-enc" "pcr-id" z pcr-id)
+			   (p "tpm-extend-enc" "pcr" y pcr)
+			   (p "tpm-extend-enc" "pcr" z pcr-0))
+		      (= pcr pcr-0)))))
+
+	 (defskeleton envelope-plus-2
+	   (vars (v data))
+	   (deflistener v)
+	   (defstrand alice 5 (v v)))
+
+	 (defskeleton envelope-plus-2
+	   (vars (n v data) (k aik akey) (pcr-id text))
+	   (deflistener (refuse pcr-id n v k aik))
+	   (defstrand alice 5 (n n) (v v) (k k) (aik aik)))
+
+	 (defskeleton envelope-plus-2
+	   (vars (n v data) (k aik akey) (pcr-id text))
+	   (deflistener (refuse pcr-id n v k aik))
+	   (deflistener v)
+	   (defstrand alice 5 (n n) (v v) (k k) (aik aik)))
+
+	 (defskeleton envelope-plus-2
+	   (vars (n v data) (k aik akey) (pcr-id text))
+	   (deflistener (refuse pcr-id n v k aik))
+	   (deflistener v)
+	   (defstrand alice 5 (n n) (v v) (k k) (aik aik))
+	   (facts (no-state-split))))
diff --git a/tst/sync_locn_envelope.tst b/tst/sync_locn_envelope.tst
new file mode 100644
--- /dev/null
+++ b/tst/sync_locn_envelope.tst
@@ -0,0 +1,3160 @@
+(herald "Envelope Protocol, location-based version" (check-nonces)
+  (bound 30) (limit 6000))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/sync_locn_envelope.scm")
+(comment "Step count limited to 6000")
+(comment "Strand count bounded at 30")
+(comment "Nonces checked first")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (current-value mesg) (pcr locn) (tpm chan))
+    (trace (recv tpm "power on") (load pcr current-value)
+      (stor pcr "0")))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcr-id nonce text) (pcr locn)
+      (tpm chan))
+    (trace (send tpm (cat "token" nonce))
+      (recv tpm (cat "extend" pcr-id value (hash pcr-id value nonce)))
+      (load pcr current-value) (stor pcr (hash current-value value))
+      (send "ext ok"))
+    (uniq-orig nonce))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "quote" pcr-id nonce))
+      (load pcr current-value)
+      (send (enc "quote" pcr-id current-value nonce aik))))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
+    (trace (recv tpm (cat "create-req" pcr-id pcrval))
+      (send (enc "created" k pcr-id pcrval aik)))
+    (non-orig (invk k))
+    (uniq-orig k)
+    (auth tpm))
+  (defrole tpm-decrypt
+    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcr-id current-value aik))
+      (load pcr current-value) (send m))
+    (non-orig aik))
+  (defrole alice
+    (vars (n v data) (pcr-id nonce text) (k aik akey)
+      (tpm tpmconf chan))
+    (trace (recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig aik)
+    (uniq-orig n v)
+    (conf tpmconf)
+    (neq (k aik)))
+  (defrule genStV-if-hashed-tpm-power-on
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-power-on" z (idx 2))
+          (p "tpm-power-on" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-extend-enc
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-extend-enc" z (idx 3))
+          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-decrypt
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-decrypt" z (idx 3))
+          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-quote
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-quote" z (idx 2))
+          (p "tpm-quote" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_tpm-power-on-at-2
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-power-on-at-1
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_tpm-extend-enc-at-3
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_tpm-extend-enc-at-2
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 4)) (trans z (idx 2))))))
+
+(defskeleton envelope
+  (vars (v n data) (pcr-id nonce text) (k aik akey) (tpm tpmconf chan))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (non-orig aik)
+  (uniq-orig v n)
+  (conf tpmconf)
+  (traces ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 0)
+  (unrealized (0 0) (1 3))
+  (preskeleton)
+  (origs (v (1 4)) (n (1 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (v n data) (pcr-id nonce text) (k aik akey) (tpm tpmconf chan))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (precedes ((1 4) (0 0)))
+  (non-orig aik)
+  (uniq-orig v n)
+  (conf tpmconf)
+  (traces ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 3))
+  (origs (v (1 4)) (n (1 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (pcr-id nonce text) (k aik akey)
+    (tpm tpmconf tpm-0 chan))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
+  (precedes ((1 4) (0 0)) ((2 1) (1 3)))
+  (non-orig aik (invk k))
+  (uniq-orig v n k)
+  (conf tpmconf)
+  (auth tpm-0)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik) (1 3))
+  (traces ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (pcr-id nonce text) (k aik akey) (tpm tpmconf chan))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (precedes ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3)))
+  (non-orig aik (invk k))
+  (uniq-orig v n k)
+  (conf tpmconf)
+  (auth tpm)
+  (operation channel-test (displaced 3 1 alice 3)
+    (ch-msg tpm-0
+      (cat "create-req" pcr-id (hash (hash "0" n) "obtain"))) (2 0))
+  (traces ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (pcr-id nonce text) (k aik akey) (tpm tpmconf chan))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-extend-enc 1 (nonce nonce) (tpm tpm))
+  (precedes ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 0) (1 0)))
+  (non-orig aik (invk k))
+  (uniq-orig v n nonce k)
+  (conf tpmconf)
+  (auth tpm)
+  (operation channel-test (added-strand tpm-extend-enc 1)
+    (ch-msg tpm (cat "token" nonce)) (1 0))
+  (traces ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((send tpm (cat "token" nonce))))
+  (label 4)
+  (parent 3)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (current-value mesg) (v n data) (pcr-id nonce pcr-id-0 text)
+    (k aik aik-0 akey) (pt pval) (tpm tpmconf tpm-0 chan) (pcr locn))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-extend-enc 1 (nonce nonce) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
+    (pcr-id pcr-id-0) (k k) (aik aik-0) (tpm tpm-0) (pcr pcr))
+  (precedes ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3)) ((3 0) (1 0))
+    ((4 3) (0 0)))
+  (non-orig aik aik-0 (invk k))
+  (uniq-orig v n nonce k)
+  (conf tpmconf)
+  (auth tpm)
+  (operation nonce-test (added-strand tpm-decrypt 4) v (0 0) (enc v k))
+  (traces ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((send tpm (cat "token" nonce)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 current-value aik-0))
+      (load pcr (cat pt current-value)) (send v)))
+  (label 5)
+  (parent 4)
+  (unrealized (4 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (pcr-id nonce text) (k aik akey) (pt pval)
+    (tpm tpmconf tpm-0 chan) (pcr locn))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-extend-enc 1 (nonce nonce) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (precedes ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3)) ((3 0) (1 0))
+    ((4 3) (0 0)))
+  (non-orig aik (invk k))
+  (uniq-orig v n nonce k)
+  (gen-st (hash (hash "0" n) "obtain"))
+  (conf tpmconf)
+  (auth tpm)
+  (rule genStV-if-hashed-tpm-decrypt)
+  (operation encryption-test (displaced 5 2 tpm-create-key 2)
+    (enc "created" k pcr-id-0 current-value aik-0) (4 1))
+  (traces ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((send tpm (cat "token" nonce)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v)))
+  (label 6)
+  (parent 5)
+  (unrealized (4 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (pcr-id pcr-id-0 nonce text) (k aik akey)
+    (pt pt-0 pval) (tpmconf tpm tpm-0 chan) (pcr locn))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id) (nonce nonce) (k k)
+    (aik aik) (tpm tpm-0) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-0))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (k k)
+    (aik aik) (tpm tpm) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce)
+    (tpm tpm-0) (pcr pcr))
+  (precedes ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 3) (0 0))
+    ((4 0) (1 0)) ((4 3) (3 2)))
+  (non-orig aik (invk k))
+  (uniq-orig v n nonce k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpmconf)
+  (auth tpm-0)
+  (leads-to ((4 3) (3 2)))
+  (rule genStV-if-hashed-tpm-extend-enc trRl_tpm-extend-enc-at-2
+    trRl_tpm-extend-enc-at-3)
+  (operation channel-test (displaced 3 5 tpm-extend-enc 4)
+    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))) (4 2))
+  (traces ((recv v) (send v))
+    ((recv tpm-0 (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
+      (send tpm-0
+        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-0 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-0 (cat "token" nonce))
+      (recv tpm-0
+        (cat "extend" pcr-id-0 "obtain" (hash pcr-id-0 "obtain" nonce)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain")))))
+  (label 7)
+  (parent 6)
+  (unrealized (4 1) (4 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (v n data) (pcr-id nonce pcr-id-0 nonce-0 text) (k aik akey)
+    (pt pt-0 pval) (tpm tpmconf tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-extend-enc 1 (nonce nonce) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
+    (tpm tpm-1) (pcr pcr))
+  (precedes ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3)) ((3 0) (1 0))
+    ((4 3) (0 0)) ((5 3) (4 2)))
+  (non-orig aik (invk k))
+  (uniq-orig v n nonce nonce-0 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpmconf)
+  (auth tpm)
+  (leads-to ((5 3) (4 2)))
+  (rule genStV-if-hashed-tpm-extend-enc trRl_tpm-extend-enc-at-2
+    trRl_tpm-extend-enc-at-3)
+  (operation channel-test (added-strand tpm-extend-enc 4)
+    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))) (4 2))
+  (traces ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((send tpm (cat "token" nonce)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-1 (cat "token" nonce-0))
+      (recv tpm-1
+        (cat "extend" pcr-id-0 "obtain"
+          (hash pcr-id-0 "obtain" nonce-0)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain")))))
+  (label 8)
+  (parent 6)
+  (unrealized (5 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text)
+    (k aik akey) (pt pt-0 pt-1 pval) (tpmconf tpm tpm-0 tpm-1 chan)
+    (pcr locn))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id) (nonce nonce-0) (k k)
+    (aik aik) (tpm tpm-1) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm-1))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (k k)
+    (aik aik) (tpm tpm) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce)
+    (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
+    (pcr-id pcr-id-1) (nonce nonce-0) (tpm tpm-1) (pcr pcr))
+  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
+    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2)))
+  (non-orig aik (invk k))
+  (uniq-orig v n nonce nonce-0 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpmconf)
+  (auth tpm-1)
+  (leads-to ((4 3) (3 2)) ((5 3) (4 2)))
+  (rule trRl_tpm-extend-enc-at-2 trRl_tpm-extend-enc-at-3)
+  (operation channel-test (displaced 3 6 tpm-extend-enc 4)
+    (ch-msg pcr (cat pt-0 (hash "0" n))) (5 2))
+  (traces ((recv v) (send v))
+    ((recv tpm-1 (cat "token" nonce-0))
+      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
+      (send tpm-1
+        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-1 (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-0 (cat "token" nonce))
+      (recv tpm-0
+        (cat "extend" pcr-id-0 "obtain" (hash pcr-id-0 "obtain" nonce)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((send tpm-1 (cat "token" nonce-0))
+      (recv tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-0)))
+      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 9)
+  (parent 8)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (v n data) (pcr-id nonce pcr-id-0 nonce-0 pcr-id-1 nonce-1 text)
+    (k aik akey) (pt pt-0 pt-1 pval)
+    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-extend-enc 1 (nonce nonce) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce-0)
+    (tpm tpm-1) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
+    (pcr-id pcr-id-1) (nonce nonce-1) (tpm tpm-2) (pcr pcr))
+  (precedes ((1 1) (6 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
+    ((3 0) (1 0)) ((4 3) (0 0)) ((5 3) (4 2)) ((6 3) (5 2)))
+  (non-orig aik (invk k))
+  (uniq-orig v n nonce nonce-0 nonce-1 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpmconf)
+  (auth tpm)
+  (leads-to ((5 3) (4 2)) ((6 3) (5 2)))
+  (rule trRl_tpm-extend-enc-at-2 trRl_tpm-extend-enc-at-3)
+  (operation channel-test (added-strand tpm-extend-enc 4)
+    (ch-msg pcr (cat pt-0 (hash "0" n))) (5 2))
+  (traces ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((send tpm (cat "token" nonce)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-1 (cat "token" nonce-0))
+      (recv tpm-1
+        (cat "extend" pcr-id-0 "obtain"
+          (hash pcr-id-0 "obtain" nonce-0)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((send tpm-2 (cat "token" nonce-1))
+      (recv tpm-2 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-1)))
+      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 10)
+  (parent 8)
+  (unrealized (6 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (v n data) (pcr-id pcr-id-0 nonce nonce-0 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpmconf tpm tpm-0 chan) (pcr locn))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id) (nonce nonce-0) (k k)
+    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id) (k k) (aik aik) (tpm tpmconf))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id) (k k)
+    (aik aik) (tpm tpm) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-0) (nonce nonce)
+    (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
+    (pcr-id pcr-id) (nonce nonce-0) (tpm tpmconf) (pcr pcr))
+  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
+    ((3 3) (0 0)) ((4 3) (3 2)) ((5 0) (1 0)) ((5 3) (4 2)))
+  (non-orig aik (invk k))
+  (uniq-orig v n nonce nonce-0 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpmconf)
+  (auth tpmconf)
+  (leads-to ((4 3) (3 2)) ((5 3) (4 2)))
+  (rule trRl_tpm-extend-enc-at-2 trRl_tpm-extend-enc-at-3)
+  (operation channel-test (displaced 6 1 alice 2)
+    (ch-msg tpm-1 (cat "extend" pcr-id-1 n (hash pcr-id-1 n nonce-0)))
+    (5 1))
+  (traces ((recv v) (send v))
+    ((recv tpmconf (cat "token" nonce-0))
+      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
+      (send tpmconf
+        (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpmconf
+       (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (send (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-0 (cat "token" nonce))
+      (recv tpm-0
+        (cat "extend" pcr-id-0 "obtain" (hash pcr-id-0 "obtain" nonce)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((send tpmconf (cat "token" nonce-0))
+      (recv tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce-0)))
+      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 11)
+  (parent 9)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((v v) (n n) (pcr-id pcr-id) (nonce nonce-0) (k k) (aik aik)
+        (tpm tpmconf) (tpmconf tpmconf))))
+  (origs (n (1 1)) (nonce-0 (5 0)) (pt-0 (5 3)) (nonce (4 0)) (pt (4 3))
+    (k (2 1)) (v (1 4))))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (current-value mesg) (pcr locn) (tpm chan))
+    (trace (recv tpm "power on") (load pcr current-value)
+      (stor pcr "0")))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcr-id nonce text) (pcr locn)
+      (tpm chan))
+    (trace (send tpm (cat "token" nonce))
+      (recv tpm (cat "extend" pcr-id value (hash pcr-id value nonce)))
+      (load pcr current-value) (stor pcr (hash current-value value))
+      (send "ext ok"))
+    (uniq-orig nonce))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "quote" pcr-id nonce))
+      (load pcr current-value)
+      (send (enc "quote" pcr-id current-value nonce aik))))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
+    (trace (recv tpm (cat "create-req" pcr-id pcrval))
+      (send (enc "created" k pcr-id pcrval aik)))
+    (non-orig (invk k))
+    (uniq-orig k)
+    (auth tpm))
+  (defrole tpm-decrypt
+    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcr-id current-value aik))
+      (load pcr current-value) (send m))
+    (non-orig aik))
+  (defrole alice
+    (vars (n v data) (pcr-id nonce text) (k aik akey)
+      (tpm tpmconf chan))
+    (trace (recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig aik)
+    (uniq-orig n v)
+    (conf tpmconf)
+    (neq (k aik)))
+  (defrule genStV-if-hashed-tpm-power-on
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-power-on" z (idx 2))
+          (p "tpm-power-on" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-extend-enc
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-extend-enc" z (idx 3))
+          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-decrypt
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-decrypt" z (idx 3))
+          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-quote
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-quote" z (idx 2))
+          (p "tpm-quote" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_tpm-power-on-at-2
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-power-on-at-1
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_tpm-extend-enc-at-3
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_tpm-extend-enc-at-2
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 4)) (trans z (idx 2))))))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce text) (k aik akey)
+    (tpm tpmconf chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (non-orig aik)
+  (uniq-orig n v)
+  (conf tpmconf)
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 12)
+  (unrealized (0 0) (1 3))
+  (preskeleton)
+  (origs (v (1 4)) (n (1 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce text) (k aik akey)
+    (tpm tpmconf chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (precedes ((1 4) (0 0)))
+  (non-orig aik)
+  (uniq-orig n v)
+  (conf tpmconf)
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 13)
+  (parent 12)
+  (unrealized (0 0) (1 3))
+  (origs (v (1 4)) (n (1 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce text) (k aik akey)
+    (tpm tpmconf tpm-0 chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
+  (precedes ((1 4) (0 0)) ((2 1) (1 3)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (conf tpmconf)
+  (auth tpm-0)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik) (1 3))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-0
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
+  (label 14)
+  (parent 13)
+  (unrealized (0 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce text) (k aik akey)
+    (tpm tpmconf chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (precedes ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (conf tpmconf)
+  (auth tpm)
+  (operation channel-test (displaced 3 1 alice 3)
+    (ch-msg tpm-0
+      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))) (2 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
+  (label 15)
+  (parent 14)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce text) (k aik akey)
+    (tpm tpmconf chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-extend-enc 1 (nonce nonce) (tpm tpm))
+  (precedes ((1 2) (2 0)) ((1 4) (0 0)) ((2 1) (1 3)) ((3 0) (1 0)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce k)
+  (conf tpmconf)
+  (auth tpm)
+  (operation channel-test (added-strand tpm-extend-enc 1)
+    (ch-msg tpm (cat "token" nonce)) (1 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((send tpm (cat "token" nonce))))
+  (label 16)
+  (parent 15)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce text) (k aik akey) (pt pval)
+    (tpm tpmconf tpm-0 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-extend-enc 1 (nonce nonce) (tpm tpm))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (precedes ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3)) ((3 0) (1 0))
+    ((4 2) (0 0)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce k)
+  (gen-st (hash (hash "0" n) "refuse"))
+  (conf tpmconf)
+  (auth tpm)
+  (rule genStV-if-hashed-tpm-quote)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
+    (0 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((send tpm (cat "token" nonce)))
+    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
+      (load pcr (cat pt (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))))
+  (label 17)
+  (parent 16)
+  (unrealized (4 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 nonce text) (k aik akey)
+    (pt pt-0 pval) (tpmconf tpm tpm-0 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm-0) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce)
+    (tpm tpm-0) (pcr pcr))
+  (precedes ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3)) ((3 2) (0 0))
+    ((4 0) (1 0)) ((4 3) (3 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "refuse"))
+  (conf tpmconf)
+  (auth tpm-0)
+  (leads-to ((4 3) (3 1)))
+  (rule genStV-if-hashed-tpm-extend-enc trRl_tpm-extend-enc-at-2
+    trRl_tpm-extend-enc-at-3)
+  (operation channel-test (displaced 3 5 tpm-extend-enc 4)
+    (ch-msg pcr (cat pt (hash (hash "0" n) "refuse"))) (4 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm-0 (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm-0
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-0
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm (cat "quote" pcr-id (enc v k)))
+      (load pcr (cat pt (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm-0 (cat "token" nonce))
+      (recv tpm-0
+        (cat "extend" pcr-id-1 "refuse" (hash pcr-id-1 "refuse" nonce)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "refuse")))))
+  (label 18)
+  (parent 17)
+  (unrealized (4 1) (4 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text)
+    (k aik akey) (pt pt-0 pval) (tpm tpmconf tpm-0 tpm-1 chan)
+    (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-extend-enc 1 (nonce nonce) (tpm tpm))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
+    (tpm tpm-1) (pcr pcr))
+  (precedes ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3)) ((3 0) (1 0))
+    ((4 2) (0 0)) ((5 3) (4 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce nonce-0 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "refuse"))
+  (conf tpmconf)
+  (auth tpm)
+  (leads-to ((5 3) (4 1)))
+  (rule genStV-if-hashed-tpm-extend-enc trRl_tpm-extend-enc-at-2
+    trRl_tpm-extend-enc-at-3)
+  (operation channel-test (added-strand tpm-extend-enc 4)
+    (ch-msg pcr (cat pt (hash (hash "0" n) "refuse"))) (4 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((send tpm (cat "token" nonce)))
+    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
+      (load pcr (cat pt (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm-1 (cat "token" nonce-0))
+      (recv tpm-1
+        (cat "extend" pcr-id-1 "refuse"
+          (hash pcr-id-1 "refuse" nonce-0)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "refuse")))))
+  (label 19)
+  (parent 17)
+  (unrealized (5 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data)
+    (pcr-id pcr-id-0 pcr-id-1 nonce pcr-id-2 nonce-0 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce-0) (k k)
+    (aik aik) (tpm tpm-1) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-1))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce)
+    (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
+    (pcr-id pcr-id-2) (nonce nonce-0) (tpm tpm-1) (pcr pcr))
+  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
+    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce nonce-0 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "refuse"))
+  (conf tpmconf)
+  (auth tpm-1)
+  (leads-to ((4 3) (3 1)) ((5 3) (4 2)))
+  (rule trRl_tpm-extend-enc-at-2 trRl_tpm-extend-enc-at-3)
+  (operation channel-test (displaced 3 6 tpm-extend-enc 4)
+    (ch-msg pcr (cat pt-0 (hash "0" n))) (5 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm-1 (cat "token" nonce-0))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (send tpm-1
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-1
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm (cat "quote" pcr-id (enc v k)))
+      (load pcr (cat pt (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm-0 (cat "token" nonce))
+      (recv tpm-0
+        (cat "extend" pcr-id-1 "refuse" (hash pcr-id-1 "refuse" nonce)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
+    ((send tpm-1 (cat "token" nonce-0))
+      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-0)))
+      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 20)
+  (parent 19)
+  (unrealized (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data)
+    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
+    (k aik akey) (pt pt-0 pt-1 pval)
+    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-extend-enc 1 (nonce nonce) (tpm tpm))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
+    (tpm tpm-1) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
+    (pcr-id pcr-id-2) (nonce nonce-1) (tpm tpm-2) (pcr pcr))
+  (precedes ((1 1) (6 1)) ((1 2) (2 0)) ((1 4) (4 0)) ((2 1) (1 3))
+    ((3 0) (1 0)) ((4 2) (0 0)) ((5 3) (4 1)) ((6 3) (5 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce nonce-0 nonce-1 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "refuse"))
+  (conf tpmconf)
+  (auth tpm)
+  (leads-to ((5 3) (4 1)) ((6 3) (5 2)))
+  (rule trRl_tpm-extend-enc-at-2 trRl_tpm-extend-enc-at-3)
+  (operation channel-test (added-strand tpm-extend-enc 4)
+    (ch-msg pcr (cat pt-0 (hash "0" n))) (5 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((send tpm (cat "token" nonce)))
+    ((recv tpm-0 (cat "quote" pcr-id (enc v k)))
+      (load pcr (cat pt (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm-1 (cat "token" nonce-0))
+      (recv tpm-1
+        (cat "extend" pcr-id-1 "refuse"
+          (hash pcr-id-1 "refuse" nonce-0)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
+    ((send tpm-2 (cat "token" nonce-1))
+      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
+      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 21)
+  (parent 19)
+  (unrealized (6 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 nonce nonce-0 text)
+    (k aik akey) (pt pt-0 pt-1 pval) (tpmconf tpm tpm-0 chan)
+    (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce-0) (k k)
+    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce)
+    (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (nonce nonce-0) (tpm tpmconf) (pcr pcr))
+  (precedes ((1 1) (5 1)) ((1 2) (2 0)) ((1 4) (3 0)) ((2 1) (1 3))
+    ((3 2) (0 0)) ((4 3) (3 1)) ((5 0) (1 0)) ((5 3) (4 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce nonce-0 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "refuse"))
+  (conf tpmconf)
+  (auth tpmconf)
+  (leads-to ((4 3) (3 1)) ((5 3) (4 2)))
+  (rule trRl_tpm-extend-enc-at-2 trRl_tpm-extend-enc-at-3)
+  (operation channel-test (displaced 6 1 alice 2)
+    (ch-msg tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-0)))
+    (5 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((recv tpmconf (cat "token" nonce-0))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (send tpmconf
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpmconf
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm (cat "quote" pcr-id (enc v k)))
+      (load pcr (cat pt (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm-0 (cat "token" nonce))
+      (recv tpm-0
+        (cat "extend" pcr-id-1 "refuse" (hash pcr-id-1 "refuse" nonce)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "refuse"))))
+    ((send tpmconf (cat "token" nonce-0))
+      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 22)
+  (parent 20)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((n n) (v v) (k k) (aik aik) (pcr-id pcr-id) (pcr-id-0 pcr-id-0)
+        (nonce nonce-0) (tpm tpmconf) (tpmconf tpmconf))))
+  (origs (n (1 1)) (nonce-0 (5 0)) (pt-0 (5 3)) (nonce (4 0)) (pt (4 3))
+    (k (2 1)) (v (1 4))))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (current-value mesg) (pcr locn) (tpm chan))
+    (trace (recv tpm "power on") (load pcr current-value)
+      (stor pcr "0")))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcr-id nonce text) (pcr locn)
+      (tpm chan))
+    (trace (send tpm (cat "token" nonce))
+      (recv tpm (cat "extend" pcr-id value (hash pcr-id value nonce)))
+      (load pcr current-value) (stor pcr (hash current-value value))
+      (send "ext ok"))
+    (uniq-orig nonce))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "quote" pcr-id nonce))
+      (load pcr current-value)
+      (send (enc "quote" pcr-id current-value nonce aik))))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
+    (trace (recv tpm (cat "create-req" pcr-id pcrval))
+      (send (enc "created" k pcr-id pcrval aik)))
+    (non-orig (invk k))
+    (uniq-orig k)
+    (auth tpm))
+  (defrole tpm-decrypt
+    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcr-id current-value aik))
+      (load pcr current-value) (send m))
+    (non-orig aik))
+  (defrole alice
+    (vars (n v data) (pcr-id nonce text) (k aik akey)
+      (tpm tpmconf chan))
+    (trace (recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig aik)
+    (uniq-orig n v)
+    (conf tpmconf)
+    (neq (k aik)))
+  (defrule genStV-if-hashed-tpm-power-on
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-power-on" z (idx 2))
+          (p "tpm-power-on" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-extend-enc
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-extend-enc" z (idx 3))
+          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-decrypt
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-decrypt" z (idx 3))
+          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-quote
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-quote" z (idx 2))
+          (p "tpm-quote" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_tpm-power-on-at-2
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-power-on-at-1
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_tpm-extend-enc-at-3
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_tpm-extend-enc-at-2
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 4)) (trans z (idx 2))))))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce text) (k aik akey)
+    (tpm tpmconf chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (non-orig aik)
+  (uniq-orig n v)
+  (conf tpmconf)
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 23)
+  (unrealized (0 0) (1 0) (2 3))
+  (preskeleton)
+  (origs (v (2 4)) (n (2 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce text) (k aik akey)
+    (tpm tpmconf chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (precedes ((2 4) (0 0)) ((2 4) (1 0)))
+  (non-orig aik)
+  (uniq-orig n v)
+  (conf tpmconf)
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 24)
+  (parent 23)
+  (unrealized (0 0) (2 3))
+  (origs (v (2 4)) (n (2 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce text) (k aik akey)
+    (tpm tpmconf tpm-0 chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
+  (precedes ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (conf tpmconf)
+  (auth tpm-0)
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik) (2 3))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-0
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
+  (label 25)
+  (parent 24)
+  (unrealized (0 0) (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce text) (k aik akey)
+    (tpm tpmconf chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (conf tpmconf)
+  (auth tpm)
+  (operation channel-test (displaced 4 2 alice 3)
+    (ch-msg tpm-0
+      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))) (3 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
+  (label 26)
+  (parent 25)
+  (unrealized (0 0) (1 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce text) (k aik akey)
+    (tpm tpmconf chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-extend-enc 1 (nonce nonce) (tpm tpm))
+  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
+    ((4 0) (2 0)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce k)
+  (conf tpmconf)
+  (auth tpm)
+  (operation channel-test (added-strand tpm-extend-enc 1)
+    (ch-msg tpm (cat "token" nonce)) (2 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((send tpm (cat "token" nonce))))
+  (label 27)
+  (parent 26)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (current-value mesg) (n v data)
+    (pcr-id pcr-id-0 nonce pcr-id-1 text) (k aik aik-0 akey) (pt pval)
+    (tpm tpmconf tpm-0 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-extend-enc 1 (nonce nonce) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
+    (pcr-id pcr-id-1) (k k) (aik aik-0) (tpm tpm-0) (pcr pcr))
+  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (5 0)) ((3 1) (2 3))
+    ((4 0) (2 0)) ((5 3) (1 0)))
+  (non-orig aik aik-0 (invk k))
+  (uniq-orig n v nonce k)
+  (conf tpmconf)
+  (auth tpm)
+  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((send tpm (cat "token" nonce)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-1 current-value aik-0))
+      (load pcr (cat pt current-value)) (send v)))
+  (label 28)
+  (parent 27)
+  (unrealized (0 0) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce text) (k aik akey) (pt pval)
+    (tpm tpmconf tpm-0 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-extend-enc 1 (nonce nonce) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (5 0)) ((3 1) (2 3))
+    ((4 0) (2 0)) ((5 3) (1 0)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce k)
+  (gen-st (hash (hash "0" n) "obtain"))
+  (conf tpmconf)
+  (auth tpm)
+  (rule genStV-if-hashed-tpm-decrypt)
+  (operation encryption-test (displaced 6 3 tpm-create-key 2)
+    (enc "created" k pcr-id-1 current-value aik-0) (5 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((send tpm (cat "token" nonce)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v)))
+  (label 29)
+  (parent 28)
+  (unrealized (0 0) (5 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 nonce text) (k aik akey)
+    (pt pt-0 pval) (tpmconf tpm tpm-0 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm-0) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce)
+    (tpm tpm-0) (pcr pcr))
+  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0)) ((3 1) (2 3))
+    ((4 3) (1 0)) ((5 0) (2 0)) ((5 3) (4 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpmconf)
+  (auth tpm-0)
+  (leads-to ((5 3) (4 2)))
+  (rule genStV-if-hashed-tpm-extend-enc trRl_tpm-extend-enc-at-2
+    trRl_tpm-extend-enc-at-3)
+  (operation channel-test (displaced 4 6 tpm-extend-enc 4)
+    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))) (5 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm-0 (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm-0
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-0
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-0 (cat "token" nonce))
+      (recv tpm-0
+        (cat "extend" pcr-id-1 "obtain" (hash pcr-id-1 "obtain" nonce)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain")))))
+  (label 30)
+  (parent 29)
+  (unrealized (0 0) (5 1) (5 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text)
+    (k aik akey) (pt pt-0 pval) (tpm tpmconf tpm-0 tpm-1 chan)
+    (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-extend-enc 1 (nonce nonce) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
+    (tpm tpm-1) (pcr pcr))
+  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (5 0)) ((3 1) (2 3))
+    ((4 0) (2 0)) ((5 3) (1 0)) ((6 3) (5 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce nonce-0 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpmconf)
+  (auth tpm)
+  (leads-to ((6 3) (5 2)))
+  (rule genStV-if-hashed-tpm-extend-enc trRl_tpm-extend-enc-at-2
+    trRl_tpm-extend-enc-at-3)
+  (operation channel-test (added-strand tpm-extend-enc 4)
+    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))) (5 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((send tpm (cat "token" nonce)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-1 (cat "token" nonce-0))
+      (recv tpm-1
+        (cat "extend" pcr-id-1 "obtain"
+          (hash pcr-id-1 "obtain" nonce-0)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain")))))
+  (label 31)
+  (parent 29)
+  (unrealized (0 0) (6 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data)
+    (pcr-id pcr-id-0 pcr-id-1 nonce pcr-id-2 nonce-0 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce-0) (k k)
+    (aik aik) (tpm tpm-1) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-1))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce)
+    (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
+    (pcr-id pcr-id-2) (nonce nonce-0) (tpm tpm-1) (pcr pcr))
+  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
+    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
+    ((6 3) (5 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce nonce-0 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpmconf)
+  (auth tpm-1)
+  (leads-to ((5 3) (4 2)) ((6 3) (5 2)))
+  (rule trRl_tpm-extend-enc-at-2 trRl_tpm-extend-enc-at-3)
+  (operation channel-test (displaced 4 7 tpm-extend-enc 4)
+    (ch-msg pcr (cat pt-0 (hash "0" n))) (6 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm-1 (cat "token" nonce-0))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (send tpm-1
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-1
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-0 (cat "token" nonce))
+      (recv tpm-0
+        (cat "extend" pcr-id-1 "obtain" (hash pcr-id-1 "obtain" nonce)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((send tpm-1 (cat "token" nonce-0))
+      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-0)))
+      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 32)
+  (parent 31)
+  (unrealized (0 0) (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data)
+    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
+    (k aik akey) (pt pt-0 pt-1 pval)
+    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-extend-enc 1 (nonce nonce) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
+    (tpm tpm-1) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
+    (pcr-id pcr-id-2) (nonce nonce-1) (tpm tpm-2) (pcr pcr))
+  (precedes ((2 1) (7 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (5 0))
+    ((3 1) (2 3)) ((4 0) (2 0)) ((5 3) (1 0)) ((6 3) (5 2))
+    ((7 3) (6 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce nonce-0 nonce-1 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpmconf)
+  (auth tpm)
+  (leads-to ((6 3) (5 2)) ((7 3) (6 2)))
+  (rule trRl_tpm-extend-enc-at-2 trRl_tpm-extend-enc-at-3)
+  (operation channel-test (added-strand tpm-extend-enc 4)
+    (ch-msg pcr (cat pt-0 (hash "0" n))) (6 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((send tpm (cat "token" nonce)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-1 (cat "token" nonce-0))
+      (recv tpm-1
+        (cat "extend" pcr-id-1 "obtain"
+          (hash pcr-id-1 "obtain" nonce-0)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((send tpm-2 (cat "token" nonce-1))
+      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
+      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 33)
+  (parent 31)
+  (unrealized (0 0) (7 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 nonce nonce-0 text)
+    (k aik akey) (pt pt-0 pt-1 pval) (tpmconf tpm tpm-0 chan)
+    (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce-0) (k k)
+    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce)
+    (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (nonce nonce-0) (tpm tpmconf) (pcr pcr))
+  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
+    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
+    ((6 3) (5 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce nonce-0 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpmconf)
+  (auth tpmconf)
+  (leads-to ((5 3) (4 2)) ((6 3) (5 2)))
+  (rule trRl_tpm-extend-enc-at-2 trRl_tpm-extend-enc-at-3)
+  (operation channel-test (displaced 7 2 alice 2)
+    (ch-msg tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-0)))
+    (6 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpmconf (cat "token" nonce-0))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (send tpmconf
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpmconf
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-0 (cat "token" nonce))
+      (recv tpm-0
+        (cat "extend" pcr-id-1 "obtain" (hash pcr-id-1 "obtain" nonce)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((send tpmconf (cat "token" nonce-0))
+      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 34)
+  (parent 32)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 nonce nonce-0 text)
+    (k aik akey) (pt pt-0 pt-1 pt-2 pval) (tpmconf tpm tpm-0 tpm-1 chan)
+    (pcr pcr-0 locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce-0) (k k)
+    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce)
+    (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (nonce nonce-0) (tpm tpmconf) (pcr pcr))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-1) (pcr pcr-0))
+  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (7 0))
+    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
+    ((6 3) (5 2)) ((7 2) (0 0)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce nonce-0 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain")
+    (hash (hash "0" n) "refuse"))
+  (conf tpmconf)
+  (auth tpmconf)
+  (leads-to ((5 3) (4 2)) ((6 3) (5 2)))
+  (rule genStV-if-hashed-tpm-quote trRl_tpm-extend-enc-at-2
+    trRl_tpm-extend-enc-at-3)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
+    (0 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpmconf (cat "token" nonce-0))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (send tpmconf
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpmconf
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-0 (cat "token" nonce))
+      (recv tpm-0
+        (cat "extend" pcr-id-1 "obtain" (hash pcr-id-1 "obtain" nonce)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((send tpmconf (cat "token" nonce-0))
+      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
+    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
+      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))))
+  (label 35)
+  (parent 34)
+  (unrealized (7 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data)
+    (pcr-id pcr-id-0 pcr-id-1 nonce nonce-0 pcr-id-2 nonce-1 text)
+    (k aik akey) (pt pt-0 pt-1 pt-2 pt-3 pval)
+    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce-0) (k k)
+    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce)
+    (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (nonce nonce-0) (tpm tpmconf) (pcr pcr))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-1) (pcr pcr-0))
+  (defstrand tpm-extend-enc 4 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
+    (tpm tpm-2) (pcr pcr-0))
+  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (7 0))
+    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
+    ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (7 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce nonce-0 nonce-1 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain")
+    (hash (hash "0" n) "refuse"))
+  (conf tpmconf)
+  (auth tpmconf)
+  (leads-to ((5 3) (4 2)) ((6 3) (5 2)) ((8 3) (7 1)))
+  (rule trRl_tpm-extend-enc-at-2 trRl_tpm-extend-enc-at-3)
+  (operation channel-test (added-strand tpm-extend-enc 4)
+    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (7 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpmconf (cat "token" nonce-0))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (send tpmconf
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpmconf
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-0 (cat "token" nonce))
+      (recv tpm-0
+        (cat "extend" pcr-id-1 "obtain" (hash pcr-id-1 "obtain" nonce)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((send tpmconf (cat "token" nonce-0))
+      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
+    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
+      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm-2 (cat "token" nonce-1))
+      (recv tpm-2
+        (cat "extend" pcr-id-2 "refuse"
+          (hash pcr-id-2 "refuse" nonce-1)))
+      (load pcr-0 (cat pt-3 (hash "0" n)))
+      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
+  (label 36)
+  (parent 35)
+  (unrealized (8 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data)
+    (pcr-id pcr-id-0 pcr-id-1 nonce nonce-0 pcr-id-2 nonce-1 pcr-id-3
+      nonce-2 text) (k aik akey) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce-0) (k k)
+    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce)
+    (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (nonce nonce-0) (tpm tpmconf) (pcr pcr))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-1) (pcr pcr-0))
+  (defstrand tpm-extend-enc 4 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
+    (tpm tpm-2) (pcr pcr-0))
+  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
+    (pcr-id pcr-id-3) (nonce nonce-2) (tpm tpm-3) (pcr pcr-0))
+  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (4 0))
+    ((2 4) (7 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
+    ((6 0) (2 0)) ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (7 1))
+    ((9 3) (8 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce nonce-0 nonce-1 nonce-2 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain")
+    (hash (hash "0" n) "refuse"))
+  (conf tpmconf)
+  (auth tpmconf)
+  (leads-to ((5 3) (4 2)) ((6 3) (5 2)) ((8 3) (7 1)) ((9 3) (8 2)))
+  (rule trRl_tpm-extend-enc-at-2 trRl_tpm-extend-enc-at-3)
+  (operation channel-test (added-strand tpm-extend-enc 4)
+    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpmconf (cat "token" nonce-0))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (send tpmconf
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpmconf
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-0 (cat "token" nonce))
+      (recv tpm-0
+        (cat "extend" pcr-id-1 "obtain" (hash pcr-id-1 "obtain" nonce)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((send tpmconf (cat "token" nonce-0))
+      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
+    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
+      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm-2 (cat "token" nonce-1))
+      (recv tpm-2
+        (cat "extend" pcr-id-2 "refuse"
+          (hash pcr-id-2 "refuse" nonce-1)))
+      (load pcr-0 (cat pt-3 (hash "0" n)))
+      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
+    ((send tpm-3 (cat "token" nonce-2))
+      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
+      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
+  (label 37)
+  (parent 36)
+  (unrealized (9 1))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol envelope basic
+  (defrole tpm-power-on
+    (vars (current-value mesg) (pcr locn) (tpm chan))
+    (trace (recv tpm "power on") (load pcr current-value)
+      (stor pcr "0")))
+  (defrole tpm-extend-enc
+    (vars (value current-value mesg) (pcr-id nonce text) (pcr locn)
+      (tpm chan))
+    (trace (send tpm (cat "token" nonce))
+      (recv tpm (cat "extend" pcr-id value (hash pcr-id value nonce)))
+      (load pcr current-value) (stor pcr (hash current-value value))
+      (send "ext ok"))
+    (uniq-orig nonce))
+  (defrole tpm-quote
+    (vars (nonce current-value mesg) (pcr-id text) (aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "quote" pcr-id nonce))
+      (load pcr current-value)
+      (send (enc "quote" pcr-id current-value nonce aik))))
+  (defrole tpm-create-key
+    (vars (k aik akey) (pcr-id text) (pcrval mesg) (tpm chan))
+    (trace (recv tpm (cat "create-req" pcr-id pcrval))
+      (send (enc "created" k pcr-id pcrval aik)))
+    (non-orig (invk k))
+    (uniq-orig k)
+    (auth tpm))
+  (defrole tpm-decrypt
+    (vars (m current-value mesg) (pcr-id text) (k aik akey) (pcr locn)
+      (tpm chan))
+    (trace (recv tpm (cat "decrypt" (enc m k)))
+      (recv (enc "created" k pcr-id current-value aik))
+      (load pcr current-value) (send m))
+    (non-orig aik))
+  (defrole alice
+    (vars (n v data) (pcr-id nonce text) (k aik akey)
+      (tpm tpmconf chan))
+    (trace (recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id n (hash pcr-id n nonce)))
+      (send tpm (cat "create-req" pcr-id (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    (non-orig aik)
+    (uniq-orig n v)
+    (conf tpmconf)
+    (neq (k aik)))
+  (defrule genStV-if-hashed-tpm-power-on
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-power-on" z (idx 2))
+          (p "tpm-power-on" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-extend-enc
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-extend-enc" z (idx 3))
+          (p "tpm-extend-enc" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-decrypt
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-decrypt" z (idx 3))
+          (p "tpm-decrypt" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defrule genStV-if-hashed-tpm-quote
+    (forall ((z strd) (v1 v2 mesg))
+      (implies
+        (and (p "tpm-quote" z (idx 2))
+          (p "tpm-quote" "current-value" z (hash v1 v2)))
+        (gen-st (hash v1 v2)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defgenrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defgenrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2)) (false))))
+  (defgenrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defgenrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defgenrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defgenrule trRl_tpm-power-on-at-2
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 2)))))
+  (defgenrule trRl_tpm-power-on-at-1
+    (forall ((z strd))
+      (implies (p "tpm-power-on" z (idx 3)) (trans z (idx 1)))))
+  (defgenrule trRl_tpm-extend-enc-at-3
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 4)) (trans z (idx 3)))))
+  (defgenrule trRl_tpm-extend-enc-at-2
+    (forall ((z strd))
+      (implies (p "tpm-extend-enc" z (idx 4)) (trans z (idx 2))))))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce text) (k aik akey)
+    (tpm tpmconf chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (non-orig aik)
+  (uniq-orig n v)
+  (conf tpmconf)
+  (facts (no-state-split))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 38)
+  (unrealized (0 0) (1 0) (2 3))
+  (preskeleton)
+  (origs (v (2 4)) (n (2 1)))
+  (comment "Not a skeleton"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce text) (k aik akey)
+    (tpm tpmconf chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (precedes ((2 4) (0 0)) ((2 4) (1 0)))
+  (non-orig aik)
+  (uniq-orig n v)
+  (conf tpmconf)
+  (facts (no-state-split))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k))))
+  (label 39)
+  (parent 38)
+  (unrealized (0 0) (2 3))
+  (origs (v (2 4)) (n (2 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce text) (k aik akey)
+    (tpm tpmconf tpm-0 chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
+  (precedes ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (conf tpmconf)
+  (auth tpm-0)
+  (facts (no-state-split))
+  (operation encryption-test (added-strand tpm-create-key 2)
+    (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik) (2 3))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-0
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
+  (label 40)
+  (parent 39)
+  (unrealized (0 0) (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce text) (k aik akey)
+    (tpm tpmconf chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3)))
+  (non-orig aik (invk k))
+  (uniq-orig n v k)
+  (conf tpmconf)
+  (auth tpm)
+  (facts (no-state-split))
+  (operation channel-test (displaced 4 2 alice 3)
+    (ch-msg tpm-0
+      (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain"))) (3 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))))
+  (label 41)
+  (parent 40)
+  (unrealized (0 0) (1 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce text) (k aik akey)
+    (tpm tpmconf chan))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-extend-enc 1 (nonce nonce) (tpm tpm))
+  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (1 0)) ((3 1) (2 3))
+    ((4 0) (2 0)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce k)
+  (conf tpmconf)
+  (auth tpm)
+  (facts (no-state-split))
+  (operation channel-test (added-strand tpm-extend-enc 1)
+    (ch-msg tpm (cat "token" nonce)) (2 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((send tpm (cat "token" nonce))))
+  (label 42)
+  (parent 41)
+  (unrealized (0 0) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (current-value mesg) (n v data)
+    (pcr-id pcr-id-0 nonce pcr-id-1 text) (k aik aik-0 akey) (pt pval)
+    (tpm tpmconf tpm-0 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-extend-enc 1 (nonce nonce) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v) (current-value current-value)
+    (pcr-id pcr-id-1) (k k) (aik aik-0) (tpm tpm-0) (pcr pcr))
+  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (5 0)) ((3 1) (2 3))
+    ((4 0) (2 0)) ((5 3) (1 0)))
+  (non-orig aik aik-0 (invk k))
+  (uniq-orig n v nonce k)
+  (conf tpmconf)
+  (auth tpm)
+  (facts (no-state-split))
+  (operation nonce-test (added-strand tpm-decrypt 4) v (1 0) (enc v k))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((send tpm (cat "token" nonce)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-1 current-value aik-0))
+      (load pcr (cat pt current-value)) (send v)))
+  (label 43)
+  (parent 42)
+  (unrealized (0 0) (5 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce text) (k aik akey) (pt pval)
+    (tpm tpmconf tpm-0 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-extend-enc 1 (nonce nonce) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (5 0)) ((3 1) (2 3))
+    ((4 0) (2 0)) ((5 3) (1 0)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce k)
+  (gen-st (hash (hash "0" n) "obtain"))
+  (conf tpmconf)
+  (auth tpm)
+  (facts (no-state-split))
+  (rule genStV-if-hashed-tpm-decrypt)
+  (operation encryption-test (displaced 6 3 tpm-create-key 2)
+    (enc "created" k pcr-id-1 current-value aik-0) (5 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((send tpm (cat "token" nonce)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v)))
+  (label 44)
+  (parent 43)
+  (unrealized (0 0) (5 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 nonce text) (k aik akey)
+    (pt pt-0 pval) (tpmconf tpm tpm-0 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm-0) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-0))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce)
+    (tpm tpm-0) (pcr pcr))
+  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0)) ((3 1) (2 3))
+    ((4 3) (1 0)) ((5 0) (2 0)) ((5 3) (4 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpmconf)
+  (auth tpm-0)
+  (facts (no-state-split))
+  (leads-to ((5 3) (4 2)))
+  (rule genStV-if-hashed-tpm-extend-enc trRl_tpm-extend-enc-at-2
+    trRl_tpm-extend-enc-at-3)
+  (operation channel-test (displaced 4 6 tpm-extend-enc 4)
+    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))) (5 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm-0 (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm-0
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-0
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-0 (cat "token" nonce))
+      (recv tpm-0
+        (cat "extend" pcr-id-1 "obtain" (hash pcr-id-1 "obtain" nonce)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain")))))
+  (label 45)
+  (parent 44)
+  (unrealized (0 0) (5 1) (5 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 text)
+    (k aik akey) (pt pt-0 pval) (tpm tpmconf tpm-0 tpm-1 chan)
+    (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-extend-enc 1 (nonce nonce) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
+    (tpm tpm-1) (pcr pcr))
+  (precedes ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (5 0)) ((3 1) (2 3))
+    ((4 0) (2 0)) ((5 3) (1 0)) ((6 3) (5 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce nonce-0 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpmconf)
+  (auth tpm)
+  (facts (no-state-split))
+  (leads-to ((6 3) (5 2)))
+  (rule genStV-if-hashed-tpm-extend-enc trRl_tpm-extend-enc-at-2
+    trRl_tpm-extend-enc-at-3)
+  (operation channel-test (added-strand tpm-extend-enc 4)
+    (ch-msg pcr (cat pt (hash (hash "0" n) "obtain"))) (5 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((send tpm (cat "token" nonce)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-1 (cat "token" nonce-0))
+      (recv tpm-1
+        (cat "extend" pcr-id-1 "obtain"
+          (hash pcr-id-1 "obtain" nonce-0)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain")))))
+  (label 46)
+  (parent 44)
+  (unrealized (0 0) (6 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data)
+    (pcr-id pcr-id-0 pcr-id-1 nonce pcr-id-2 nonce-0 text) (k aik akey)
+    (pt pt-0 pt-1 pval) (tpmconf tpm tpm-0 tpm-1 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce-0) (k k)
+    (aik aik) (tpm tpm-1) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm-1))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce)
+    (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
+    (pcr-id pcr-id-2) (nonce nonce-0) (tpm tpm-1) (pcr pcr))
+  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
+    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
+    ((6 3) (5 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce nonce-0 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpmconf)
+  (auth tpm-1)
+  (facts (no-state-split))
+  (leads-to ((5 3) (4 2)) ((6 3) (5 2)))
+  (rule trRl_tpm-extend-enc-at-2 trRl_tpm-extend-enc-at-3)
+  (operation channel-test (displaced 4 7 tpm-extend-enc 4)
+    (ch-msg pcr (cat pt-0 (hash "0" n))) (6 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm-1 (cat "token" nonce-0))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (send tpm-1
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm-1
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-0 (cat "token" nonce))
+      (recv tpm-0
+        (cat "extend" pcr-id-1 "obtain" (hash pcr-id-1 "obtain" nonce)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((send tpm-1 (cat "token" nonce-0))
+      (recv tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-0)))
+      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 47)
+  (parent 46)
+  (unrealized (0 0) (6 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data)
+    (pcr-id pcr-id-0 nonce pcr-id-1 nonce-0 pcr-id-2 nonce-1 text)
+    (k aik akey) (pt pt-0 pt-1 pval)
+    (tpm tpmconf tpm-0 tpm-1 tpm-2 chan) (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce) (k k)
+    (aik aik) (tpm tpm) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpm))
+  (defstrand tpm-extend-enc 1 (nonce nonce) (tpm tpm))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce-0)
+    (tpm tpm-1) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
+    (pcr-id pcr-id-2) (nonce nonce-1) (tpm tpm-2) (pcr pcr))
+  (precedes ((2 1) (7 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (5 0))
+    ((3 1) (2 3)) ((4 0) (2 0)) ((5 3) (1 0)) ((6 3) (5 2))
+    ((7 3) (6 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce nonce-0 nonce-1 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpmconf)
+  (auth tpm)
+  (facts (no-state-split))
+  (leads-to ((6 3) (5 2)) ((7 3) (6 2)))
+  (rule trRl_tpm-extend-enc-at-2 trRl_tpm-extend-enc-at-3)
+  (operation channel-test (added-strand tpm-extend-enc 4)
+    (ch-msg pcr (cat pt-0 (hash "0" n))) (6 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpm (cat "token" nonce))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce)))
+      (send tpm
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpm (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((send tpm (cat "token" nonce)))
+    ((recv tpm-0 (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-1 (cat "token" nonce-0))
+      (recv tpm-1
+        (cat "extend" pcr-id-1 "obtain"
+          (hash pcr-id-1 "obtain" nonce-0)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((send tpm-2 (cat "token" nonce-1))
+      (recv tpm-2 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-1)))
+      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 48)
+  (parent 46)
+  (unrealized (0 0) (7 1))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 nonce nonce-0 text)
+    (k aik akey) (pt pt-0 pt-1 pval) (tpmconf tpm tpm-0 chan)
+    (pcr locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce-0) (k k)
+    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce)
+    (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (nonce nonce-0) (tpm tpmconf) (pcr pcr))
+  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (0 0)) ((2 4) (4 0))
+    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
+    ((6 3) (5 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce nonce-0 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain"))
+  (conf tpmconf)
+  (auth tpmconf)
+  (facts (no-state-split))
+  (leads-to ((5 3) (4 2)) ((6 3) (5 2)))
+  (rule trRl_tpm-extend-enc-at-2 trRl_tpm-extend-enc-at-3)
+  (operation channel-test (displaced 7 2 alice 2)
+    (ch-msg tpm-1 (cat "extend" pcr-id-2 n (hash pcr-id-2 n nonce-0)))
+    (6 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpmconf (cat "token" nonce-0))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (send tpmconf
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpmconf
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-0 (cat "token" nonce))
+      (recv tpm-0
+        (cat "extend" pcr-id-1 "obtain" (hash pcr-id-1 "obtain" nonce)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((send tpmconf (cat "token" nonce-0))
+      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n)))))
+  (label 49)
+  (parent 47)
+  (unrealized (0 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data) (pcr-id pcr-id-0 pcr-id-1 nonce nonce-0 text)
+    (k aik akey) (pt pt-0 pt-1 pt-2 pval) (tpmconf tpm tpm-0 tpm-1 chan)
+    (pcr pcr-0 locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce-0) (k k)
+    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce)
+    (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (nonce nonce-0) (tpm tpmconf) (pcr pcr))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-1) (pcr pcr-0))
+  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (7 0))
+    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
+    ((6 3) (5 2)) ((7 2) (0 0)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce nonce-0 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain")
+    (hash (hash "0" n) "refuse"))
+  (conf tpmconf)
+  (auth tpmconf)
+  (facts (no-state-split))
+  (leads-to ((5 3) (4 2)) ((6 3) (5 2)))
+  (rule genStV-if-hashed-tpm-quote trRl_tpm-extend-enc-at-2
+    trRl_tpm-extend-enc-at-3)
+  (operation encryption-test (added-strand tpm-quote 3)
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik)
+    (0 0))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpmconf (cat "token" nonce-0))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (send tpmconf
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpmconf
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-0 (cat "token" nonce))
+      (recv tpm-0
+        (cat "extend" pcr-id-1 "obtain" (hash pcr-id-1 "obtain" nonce)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((send tpmconf (cat "token" nonce-0))
+      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
+    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
+      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))))
+  (label 50)
+  (parent 49)
+  (unrealized (7 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data)
+    (pcr-id pcr-id-0 pcr-id-1 nonce nonce-0 pcr-id-2 nonce-1 text)
+    (k aik akey) (pt pt-0 pt-1 pt-2 pt-3 pval)
+    (tpmconf tpm tpm-0 tpm-1 tpm-2 chan) (pcr pcr-0 locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce-0) (k k)
+    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce)
+    (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (nonce nonce-0) (tpm tpmconf) (pcr pcr))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-1) (pcr pcr-0))
+  (defstrand tpm-extend-enc 4 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
+    (tpm tpm-2) (pcr pcr-0))
+  (precedes ((2 1) (6 1)) ((2 2) (3 0)) ((2 4) (4 0)) ((2 4) (7 0))
+    ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2)) ((6 0) (2 0))
+    ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (7 1)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce nonce-0 nonce-1 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain")
+    (hash (hash "0" n) "refuse"))
+  (conf tpmconf)
+  (auth tpmconf)
+  (facts (no-state-split))
+  (leads-to ((5 3) (4 2)) ((6 3) (5 2)) ((8 3) (7 1)))
+  (rule trRl_tpm-extend-enc-at-2 trRl_tpm-extend-enc-at-3)
+  (operation channel-test (added-strand tpm-extend-enc 4)
+    (ch-msg pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))) (7 1))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpmconf (cat "token" nonce-0))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (send tpmconf
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpmconf
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-0 (cat "token" nonce))
+      (recv tpm-0
+        (cat "extend" pcr-id-1 "obtain" (hash pcr-id-1 "obtain" nonce)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((send tpmconf (cat "token" nonce-0))
+      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
+    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
+      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm-2 (cat "token" nonce-1))
+      (recv tpm-2
+        (cat "extend" pcr-id-2 "refuse"
+          (hash pcr-id-2 "refuse" nonce-1)))
+      (load pcr-0 (cat pt-3 (hash "0" n)))
+      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))))
+  (label 51)
+  (parent 50)
+  (unrealized (8 2))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton envelope
+  (vars (n v data)
+    (pcr-id pcr-id-0 pcr-id-1 nonce nonce-0 pcr-id-2 nonce-1 pcr-id-3
+      nonce-2 text) (k aik akey) (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval)
+    (tpmconf tpm tpm-0 tpm-1 tpm-2 tpm-3 chan) (pcr pcr-0 locn))
+  (deflistener
+    (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+  (deflistener v)
+  (defstrand alice 5 (n n) (v v) (pcr-id pcr-id-0) (nonce nonce-0) (k k)
+    (aik aik) (tpm tpmconf) (tpmconf tpmconf))
+  (defstrand tpm-create-key 2 (pcrval (hash (hash "0" n) "obtain"))
+    (pcr-id pcr-id-0) (k k) (aik aik) (tpm tpmconf))
+  (defstrand tpm-decrypt 4 (m v)
+    (current-value (hash (hash "0" n) "obtain")) (pcr-id pcr-id-0) (k k)
+    (aik aik) (tpm tpm) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value "obtain")
+    (current-value (hash "0" n)) (pcr-id pcr-id-1) (nonce nonce)
+    (tpm tpm-0) (pcr pcr))
+  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
+    (pcr-id pcr-id-0) (nonce nonce-0) (tpm tpmconf) (pcr pcr))
+  (defstrand tpm-quote 3 (nonce (enc v k))
+    (current-value (hash (hash "0" n) "refuse")) (pcr-id pcr-id)
+    (aik aik) (tpm tpm-1) (pcr pcr-0))
+  (defstrand tpm-extend-enc 4 (value "refuse")
+    (current-value (hash "0" n)) (pcr-id pcr-id-2) (nonce nonce-1)
+    (tpm tpm-2) (pcr pcr-0))
+  (defstrand tpm-extend-enc 4 (value n) (current-value "0")
+    (pcr-id pcr-id-3) (nonce nonce-2) (tpm tpm-3) (pcr pcr-0))
+  (precedes ((2 1) (6 1)) ((2 1) (9 1)) ((2 2) (3 0)) ((2 4) (4 0))
+    ((2 4) (7 0)) ((3 1) (2 3)) ((4 3) (1 0)) ((5 3) (4 2))
+    ((6 0) (2 0)) ((6 3) (5 2)) ((7 2) (0 0)) ((8 3) (7 1))
+    ((9 3) (8 2)))
+  (non-orig aik (invk k))
+  (uniq-orig n v nonce nonce-0 nonce-1 nonce-2 k)
+  (gen-st (hash "0" n) (hash (hash "0" n) "obtain")
+    (hash (hash "0" n) "refuse"))
+  (conf tpmconf)
+  (auth tpmconf)
+  (facts (no-state-split))
+  (leads-to ((5 3) (4 2)) ((6 3) (5 2)) ((8 3) (7 1)) ((9 3) (8 2)))
+  (rule trRl_tpm-extend-enc-at-2 trRl_tpm-extend-enc-at-3)
+  (operation channel-test (added-strand tpm-extend-enc 4)
+    (ch-msg pcr-0 (cat pt-3 (hash "0" n))) (8 2))
+  (traces
+    ((recv
+       (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k) aik))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik))) ((recv v) (send v))
+    ((recv tpmconf (cat "token" nonce-0))
+      (send tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (send tpmconf
+        (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (send (enc v k)))
+    ((recv tpmconf
+       (cat "create-req" pcr-id-0 (hash (hash "0" n) "obtain")))
+      (send
+        (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik)))
+    ((recv tpm (cat "decrypt" (enc v k)))
+      (recv (enc "created" k pcr-id-0 (hash (hash "0" n) "obtain") aik))
+      (load pcr (cat pt (hash (hash "0" n) "obtain"))) (send v))
+    ((send tpm-0 (cat "token" nonce))
+      (recv tpm-0
+        (cat "extend" pcr-id-1 "obtain" (hash pcr-id-1 "obtain" nonce)))
+      (load pcr (cat pt-0 (hash "0" n)))
+      (stor pcr (cat pt (hash (hash "0" n) "obtain"))))
+    ((send tpmconf (cat "token" nonce-0))
+      (recv tpmconf (cat "extend" pcr-id-0 n (hash pcr-id-0 n nonce-0)))
+      (load pcr (cat pt-1 "0")) (stor pcr (cat pt-0 (hash "0" n))))
+    ((recv tpm-1 (cat "quote" pcr-id (enc v k)))
+      (load pcr-0 (cat pt-2 (hash (hash "0" n) "refuse")))
+      (send
+        (enc "quote" pcr-id (hash (hash "0" n) "refuse") (enc v k)
+          aik)))
+    ((send tpm-2 (cat "token" nonce-1))
+      (recv tpm-2
+        (cat "extend" pcr-id-2 "refuse"
+          (hash pcr-id-2 "refuse" nonce-1)))
+      (load pcr-0 (cat pt-3 (hash "0" n)))
+      (stor pcr-0 (cat pt-2 (hash (hash "0" n) "refuse"))))
+    ((send tpm-3 (cat "token" nonce-2))
+      (recv tpm-3 (cat "extend" pcr-id-3 n (hash pcr-id-3 n nonce-2)))
+      (load pcr-0 (cat pt-4 "0")) (stor pcr-0 (cat pt-3 (hash "0" n)))))
+  (label 52)
+  (parent 51)
+  (unrealized (9 1))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/tst/tag_test.scm b/tst/tag_test.scm
deleted file mode 100644
--- a/tst/tag_test.scm
+++ /dev/null
@@ -1,48 +0,0 @@
-(herald "Tag Test File"
-	(algebra diffie-hellman)
-   (bound 12))
-
-(defprotocol test diffie-hellman
-  (defrole rtag
-    (vars (a name) (t tag))
-    (trace
-     (send (enc "hello world" (ltk a a)))
-     (recv (enc t (ltk a a))))
-    (non-orig (ltk a a)))
-  (defrole rtag_mesg
-    (vars (a name) (t mesg))
-    (trace
-     (send (enc "hello world" (ltk a a)))
-     (recv (enc t (ltk a a))))
-    (non-orig (ltk a a)))
-  (defrole stag
-    (vars (k skey) (t tag))
-    (trace
-     (send (enc "init" t k))
-     (recv (enc t k)))
-    (non-orig k))
-)
-
-;; Should force t to be unified with "hello world"
-(defskeleton test
-  (vars )
-  (defstrand rtag 2 )
-)
-
-;; Now t could be a pair ("init" t) with an stag instance, or "hello world".
-(defskeleton test
-  (vars )
-  (defstrand rtag_mesg 2 )
-  )
-
-;; Demonstrates that t does not have to be acquired
-(defskeleton test
-  (vars )
-  (defstrand stag 2 )
-  )
-
-(defskeleton test
-  (vars )
-  (defstrand rtag_mesg 2 )
-  (uniq-orig "hello world")
-  )
diff --git a/tst/tag_test.tst b/tst/tag_test.tst
deleted file mode 100644
--- a/tst/tag_test.tst
+++ /dev/null
@@ -1,227 +0,0 @@
-(herald "Tag Test File" (algebra diffie-hellman) (bound 12))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/tag_test.scm")
-
-(defprotocol test diffie-hellman
-  (defrole rtag
-    (vars (a name) (t tag))
-    (trace (send (enc "hello world" (ltk a a)))
-      (recv (enc t (ltk a a))))
-    (non-orig (ltk a a)))
-  (defrole rtag_mesg
-    (vars (a name) (t mesg))
-    (trace (send (enc "hello world" (ltk a a)))
-      (recv (enc t (ltk a a))))
-    (non-orig (ltk a a)))
-  (defrole stag
-    (vars (k skey) (t tag))
-    (trace (send (enc "init" t k)) (recv (enc t k)))
-    (non-orig k)))
-
-(defskeleton test
-  (vars (a name) (t tag))
-  (defstrand rtag 2 (a a) (t t))
-  (non-orig (ltk a a))
-  (traces
-    ((send (enc "hello world" (ltk a a))) (recv (enc t (ltk a a)))))
-  (label 0)
-  (unrealized (0 1))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton test
-  (vars (a name))
-  (defstrand rtag 2 (a a) (t "hello world"))
-  (non-orig (ltk a a))
-  (operation encryption-test (displaced 1 0 rtag_mesg 1)
-    (enc "hello world" (ltk a a)) (0 1))
-  (traces
-    ((send (enc "hello world" (ltk a a)))
-      (recv (enc "hello world" (ltk a a)))))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (t "hello world"))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol test diffie-hellman
-  (defrole rtag
-    (vars (a name) (t tag))
-    (trace (send (enc "hello world" (ltk a a)))
-      (recv (enc t (ltk a a))))
-    (non-orig (ltk a a)))
-  (defrole rtag_mesg
-    (vars (a name) (t mesg))
-    (trace (send (enc "hello world" (ltk a a)))
-      (recv (enc t (ltk a a))))
-    (non-orig (ltk a a)))
-  (defrole stag
-    (vars (k skey) (t tag))
-    (trace (send (enc "init" t k)) (recv (enc t k)))
-    (non-orig k)))
-
-(defskeleton test
-  (vars (t mesg) (a name))
-  (defstrand rtag_mesg 2 (t t) (a a))
-  (non-orig (ltk a a))
-  (traces
-    ((send (enc "hello world" (ltk a a))) (recv (enc t (ltk a a)))))
-  (label 2)
-  (unrealized (0 1))
-  (origs)
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton test
-  (vars (a name))
-  (defstrand rtag_mesg 2 (t "hello world") (a a))
-  (non-orig (ltk a a))
-  (operation encryption-test (displaced 1 0 rtag_mesg 1)
-    (enc "hello world" (ltk a a)) (0 1))
-  (traces
-    ((send (enc "hello world" (ltk a a)))
-      (recv (enc "hello world" (ltk a a)))))
-  (label 3)
-  (parent 2)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (t "hello world"))))
-  (origs))
-
-(defskeleton test
-  (vars (a name) (t tag))
-  (defstrand rtag_mesg 2 (t (cat "init" t)) (a a))
-  (defstrand stag 1 (k (ltk a a)) (t t))
-  (precedes ((1 0) (0 1)))
-  (non-orig (ltk a a))
-  (operation encryption-test (added-strand stag 1)
-    (enc "init" t (ltk a a)) (0 1))
-  (traces
-    ((send (enc "hello world" (ltk a a)))
-      (recv (enc "init" t (ltk a a))))
-    ((send (enc "init" t (ltk a a)))))
-  (label 4)
-  (parent 2)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (t (cat "init" t)))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol test diffie-hellman
-  (defrole rtag
-    (vars (a name) (t tag))
-    (trace (send (enc "hello world" (ltk a a)))
-      (recv (enc t (ltk a a))))
-    (non-orig (ltk a a)))
-  (defrole rtag_mesg
-    (vars (a name) (t mesg))
-    (trace (send (enc "hello world" (ltk a a)))
-      (recv (enc t (ltk a a))))
-    (non-orig (ltk a a)))
-  (defrole stag
-    (vars (k skey) (t tag))
-    (trace (send (enc "init" t k)) (recv (enc t k)))
-    (non-orig k)))
-
-(defskeleton test
-  (vars (k skey) (t tag))
-  (defstrand stag 2 (k k) (t t))
-  (non-orig k)
-  (traces ((send (enc "init" t k)) (recv (enc t k))))
-  (label 5)
-  (unrealized (0 1))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton test
-  (vars (a name))
-  (defstrand stag 2 (k (ltk a a)) (t "hello world"))
-  (defstrand rtag_mesg 1 (a a))
-  (precedes ((1 0) (0 1)))
-  (non-orig (ltk a a))
-  (operation encryption-test (added-strand rtag_mesg 1)
-    (enc "hello world" (ltk a a)) (0 1))
-  (traces
-    ((send (enc "init" "hello world" (ltk a a)))
-      (recv (enc "hello world" (ltk a a))))
-    ((send (enc "hello world" (ltk a a)))))
-  (label 6)
-  (parent 5)
-  (unrealized)
-  (shape)
-  (maps ((0) ((k (ltk a a)) (t "hello world"))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol test diffie-hellman
-  (defrole rtag
-    (vars (a name) (t tag))
-    (trace (send (enc "hello world" (ltk a a)))
-      (recv (enc t (ltk a a))))
-    (non-orig (ltk a a)))
-  (defrole rtag_mesg
-    (vars (a name) (t mesg))
-    (trace (send (enc "hello world" (ltk a a)))
-      (recv (enc t (ltk a a))))
-    (non-orig (ltk a a)))
-  (defrole stag
-    (vars (k skey) (t tag))
-    (trace (send (enc "init" t k)) (recv (enc t k)))
-    (non-orig k)))
-
-(defskeleton test
-  (vars (t mesg) (a name))
-  (defstrand rtag_mesg 2 (t t) (a a))
-  (non-orig (ltk a a))
-  (uniq-orig "hello world")
-  (traces
-    ((send (enc "hello world" (ltk a a))) (recv (enc t (ltk a a)))))
-  (label 7)
-  (unrealized (0 1))
-  (origs ("hello world" (0 0)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton test
-  (vars (a name))
-  (defstrand rtag_mesg 2 (t "hello world") (a a))
-  (non-orig (ltk a a))
-  (uniq-orig "hello world")
-  (operation encryption-test (displaced 1 0 rtag_mesg 1)
-    (enc "hello world" (ltk a a)) (0 1))
-  (traces
-    ((send (enc "hello world" (ltk a a)))
-      (recv (enc "hello world" (ltk a a)))))
-  (label 8)
-  (parent 7)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (t "hello world"))))
-  (origs ("hello world" (0 0))))
-
-(defskeleton test
-  (vars (a name) (t tag))
-  (defstrand rtag_mesg 2 (t (cat "init" t)) (a a))
-  (defstrand stag 1 (k (ltk a a)) (t t))
-  (precedes ((1 0) (0 1)))
-  (non-orig (ltk a a))
-  (uniq-orig "hello world")
-  (operation encryption-test (added-strand stag 1)
-    (enc "init" t (ltk a a)) (0 1))
-  (traces
-    ((send (enc "hello world" (ltk a a)))
-      (recv (enc "init" t (ltk a a))))
-    ((send (enc "init" t (ltk a a)))))
-  (label 9)
-  (parent 7)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (t (cat "init" t)))))
-  (origs ("hello world" (0 0))))
-
-(comment "Nothing left to do")
diff --git a/tst/target.scm b/tst/target.scm
deleted file mode 100644
--- a/tst/target.scm
+++ /dev/null
@@ -1,88 +0,0 @@
-;;; Target terms experiment
-;
-
-(defprotocol target-simple basic
-  (defrole comb (vars (k1 k2 skey) (n1 n2 text))
-    (trace
-     (send  (enc "oo" (enc "bar" n1 k1) (enc "baz" n2 k1) k2))
-     (recv n1)
-    )
-    (non-orig k1 k2)
-    (uniq-orig n1 n2)
-    )
-  (defrole trans1 (vars (n text) (k1 k2 skey) (m mesg))
-  (trace
-   (recv (enc "oo" (enc "bar" n k1) m k2))
-   (send m))
-   (non-orig k1 k2)
-  )
-  (defrole trans2 (vars (n text) (k skey))
-    (trace
-     (recv (enc "baz" n k))
-     (send n)
-     )
-    (non-orig k)
-  )
-)
-
-(defskeleton target-simple
-  (vars )
-  (defstrand comb 2 )
-)
-
-; The aim of this experiment was to verify a suspected incompleteness
-; in CPSA.  This protocol is designed so that the initiator point of
-; view has a single shape.  The protocol deals with encrypted pieces
-; identified with a tag, either "foo", "bar", or "baz".  When a nonce
-; is generated by the init role, it is encrypted with "foo."  The
-; combiner role (comb) takes two "foo" pieces associated with nonces
-; n1 and n2, and combines them to make a pair where n1 is placed in a
-; "bar" piece and n2 is placed in a "baz" piece and these two are
-; encrypted under another key.  There are two transforming roles.  One
-; takes an encryption with two pieces in it where the first is a "bar"
-; piece and removes the second piece from the encryption.  The other
-; decrypts the nonce out of a "baz" piece.
-
-; The shape expected involves a single init role that generates a
-; "foo" piece with a nonce n.  That message supplied to the combiner
-; role twice, which produces an "oo" encryption of an n "bar" piece
-; and an n "baz" piece.  A trans1 instance extracts the "baz" piece,
-; and a trans2 instance extracts n from the baz piece and returns it
-; to init.
-
-(defprotocol target basic
-  (defrole comb (vars (k1 k2 skey) (n1 n2 text))
-    (trace
-     (recv (enc "foo" n1 k1))
-     (recv (enc "foo" n2 k1))
-     (send  (enc "oo" (enc "bar" n1 k1) (enc "baz" n2 k1) k2))
-    )
-    (non-orig k1 k2)
-    (neq (n1 n2))
-    )
-  (defrole init (vars (k skey) (n text))
-    (trace
-     (send (enc "foo" n k))
-     (recv n))
-    (uniq-orig n)
-    (non-orig k)
-  )
-  (defrole trans1 (vars (n text) (k1 k2 skey) (m mesg))
-  (trace
-   (recv (enc "oo" (enc "bar" n k1) m k2))
-   (send m))
-   (non-orig k1 k2)
-  )
-  (defrole trans2 (vars (n text) (k skey))
-    (trace
-     (recv (enc "baz" n k))
-     (send n)
-     )
-    (non-orig k)
-  )
-)
-
-;(defskeleton target
-;  (vars )
-;  (defstrand init 2 )
-;)
diff --git a/tst/target.tst b/tst/target.tst
deleted file mode 100644
--- a/tst/target.tst
+++ /dev/null
@@ -1,131 +0,0 @@
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/target.scm")
-
-(defprotocol target-simple basic
-  (defrole comb
-    (vars (k1 k2 skey) (n1 n2 text))
-    (trace (send (enc "oo" (enc "bar" n1 k1) (enc "baz" n2 k1) k2))
-      (recv n1))
-    (non-orig k1 k2)
-    (uniq-orig n1 n2))
-  (defrole trans1
-    (vars (n text) (k1 k2 skey) (m mesg))
-    (trace (recv (enc "oo" (enc "bar" n k1) m k2)) (send m))
-    (non-orig k1 k2))
-  (defrole trans2
-    (vars (n text) (k skey))
-    (trace (recv (enc "baz" n k)) (send n))
-    (non-orig k)))
-
-(defskeleton target-simple
-  (vars (n1 n2 text) (k1 k2 skey))
-  (defstrand comb 2 (n1 n1) (n2 n2) (k1 k1) (k2 k2))
-  (non-orig k1 k2)
-  (uniq-orig n1 n2)
-  (traces
-    ((send (enc "oo" (enc "bar" n1 k1) (enc "baz" n2 k1) k2))
-      (recv n1)))
-  (label 0)
-  (unrealized (0 1))
-  (origs (n1 (0 0)) (n2 (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton target-simple
-  (vars (n2 text) (k1 k2 skey))
-  (defstrand comb 2 (n1 n2) (n2 n2) (k1 k1) (k2 k2))
-  (non-orig k1 k2)
-  (uniq-orig n2)
-  (operation nonce-test (displaced 1 0 comb 1) n1 (0 1)
-    (enc "oo" (enc "bar" n1 k1) (enc "baz" n2 k1) k2))
-  (traces
-    ((send (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2))
-      (recv n2)))
-  (label 1)
-  (parent 0)
-  (unrealized (0 1))
-  (origs (n2 (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton target-simple
-  (vars (n2 text) (k1 k2 skey))
-  (defstrand comb 2 (n1 n2) (n2 n2) (k1 k1) (k2 k2))
-  (defstrand trans1 2 (m (enc "baz" n2 k1)) (n n2) (k1 k1) (k2 k2))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig k1 k2)
-  (uniq-orig n2)
-  (operation nonce-test (added-strand trans1 2) n2 (0 1)
-    (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2))
-  (traces
-    ((send (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2)) (recv n2))
-    ((recv (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2))
-      (send (enc "baz" n2 k1))))
-  (label 2)
-  (parent 1)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton target-simple
-  (vars (n2 text) (k1 k2 skey))
-  (defstrand comb 2 (n1 n2) (n2 n2) (k1 k1) (k2 k2))
-  (defstrand trans1 2 (m (enc "baz" n2 k1)) (n n2) (k1 k1) (k2 k2))
-  (defstrand trans2 2 (n n2) (k k1))
-  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
-  (non-orig k1 k2)
-  (uniq-orig n2)
-  (operation nonce-test (added-strand trans2 2) n2 (0 1)
-    (enc "baz" n2 k1) (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2))
-  (traces
-    ((send (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2)) (recv n2))
-    ((recv (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2))
-      (send (enc "baz" n2 k1))) ((recv (enc "baz" n2 k1)) (send n2)))
-  (label 3)
-  (parent 2)
-  (unrealized (2 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton target-simple
-  (vars (n2 text) (k1 k2 skey))
-  (defstrand comb 2 (n1 n2) (n2 n2) (k1 k1) (k2 k2))
-  (defstrand trans1 2 (m (enc "baz" n2 k1)) (n n2) (k1 k1) (k2 k2))
-  (defstrand trans2 2 (n n2) (k k1))
-  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((2 1) (0 1)))
-  (non-orig k1 k2)
-  (uniq-orig n2)
-  (operation encryption-test (displaced 3 1 trans1 2) (enc "baz" n2 k1)
-    (2 0) (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2))
-  (traces
-    ((send (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2)) (recv n2))
-    ((recv (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2))
-      (send (enc "baz" n2 k1))) ((recv (enc "baz" n2 k1)) (send n2)))
-  (label 4)
-  (parent 3)
-  (unrealized)
-  (shape)
-  (maps ((0) ((k1 k1) (k2 k2) (n1 n2) (n2 n2))))
-  (origs (n2 (0 0))))
-
-(defskeleton target-simple
-  (vars (n2 text) (k1 k2 skey))
-  (defstrand comb 2 (n1 n2) (n2 n2) (k1 k1) (k2 k2))
-  (defstrand trans1 2 (m (enc "baz" n2 k1)) (n n2) (k1 k1) (k2 k2))
-  (defstrand trans2 2 (n n2) (k k1))
-  (defstrand trans1 2 (m (enc "baz" n2 k1)) (n n2) (k1 k1) (k2 k2))
-  (precedes ((0 0) (1 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
-    ((3 1) (2 0)))
-  (non-orig k1 k2)
-  (uniq-orig n2)
-  (operation encryption-test (added-strand trans1 2) (enc "baz" n2 k1)
-    (2 0) (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2))
-  (traces
-    ((send (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2)) (recv n2))
-    ((recv (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2))
-      (send (enc "baz" n2 k1))) ((recv (enc "baz" n2 k1)) (send n2))
-    ((recv (enc "oo" (enc "bar" n2 k1) (enc "baz" n2 k1) k2))
-      (send (enc "baz" n2 k1))))
-  (label 5)
-  (parent 3)
-  (seen 4)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(comment "Nothing left to do")
diff --git a/tst/targetterms1.scm b/tst/targetterms1.scm
new file mode 100644
--- /dev/null
+++ b/tst/targetterms1.scm
@@ -0,0 +1,21 @@
+;; Solution requires the use of target terms in the solved filter.
+
+;; The protocol is strange because the initiator sends out two texts
+;; that turn out must be the same.
+
+(defprotocol targetterms basic
+  (defrole init (vars (a skey) (n1 n2 text) (k akey))
+    (trace
+     (send (enc n1 (enc a n2 k) k))
+     (recv (enc a n1 k))))
+
+  (defrole resp (vars (n1 text) (m mesg) (k akey))
+    (trace
+     (recv (enc n1 m k))
+     (send m))))
+
+(defskeleton targetterms
+  (vars (n1 text) (k akey))
+  (defstrand init 2 (n1 n1) (k k))
+  (non-orig (invk k))
+  (uniq-orig n1))
diff --git a/tst/targetterms1.tst b/tst/targetterms1.tst
new file mode 100644
--- /dev/null
+++ b/tst/targetterms1.tst
@@ -0,0 +1,61 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/targetterms1.scm")
+
+(defprotocol targetterms basic
+  (defrole init
+    (vars (a skey) (n1 n2 text) (k akey))
+    (trace (send (enc n1 (enc a n2 k) k)) (recv (enc a n1 k))))
+  (defrole resp
+    (vars (n1 text) (m mesg) (k akey))
+    (trace (recv (enc n1 m k)) (send m)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton targetterms
+  (vars (a skey) (n1 n2 text) (k akey))
+  (defstrand init 2 (a a) (n1 n1) (n2 n2) (k k))
+  (non-orig (invk k))
+  (uniq-orig n1)
+  (traces ((send (enc n1 (enc a n2 k) k)) (recv (enc a n1 k))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton targetterms
+  (vars (a skey) (n2 text) (k akey))
+  (defstrand init 2 (a a) (n1 n2) (n2 n2) (k k))
+  (non-orig (invk k))
+  (uniq-orig n2)
+  (operation nonce-test (displaced 1 0 init 1) n1 (0 1)
+    (enc n1 (enc a n2 k) k))
+  (traces ((send (enc n2 (enc a n2 k) k)) (recv (enc a n2 k))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1))
+  (origs (n2 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton targetterms
+  (vars (a skey) (n2 text) (k akey))
+  (defstrand init 2 (a a) (n1 n2) (n2 n2) (k k))
+  (defstrand resp 2 (m (enc a n2 k)) (n1 n2) (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig n2)
+  (operation nonce-test (added-strand resp 2) n2 (0 1)
+    (enc n2 (enc a n2 k) k))
+  (traces ((send (enc n2 (enc a n2 k) k)) (recv (enc a n2 k)))
+    ((recv (enc n2 (enc a n2 k) k)) (send (enc a n2 k))))
+  (label 2)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((n1 n2) (k k) (a a) (n2 n2))))
+  (origs (n2 (0 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/targetterms2.scm b/tst/targetterms2.scm
new file mode 100644
--- /dev/null
+++ b/tst/targetterms2.scm
@@ -0,0 +1,36 @@
+;;; Target terms experiment
+;  The aim of this "experiment" was to try to create an instance
+; where we would want to do an augmentation where (1) the critical
+; term is to appear in a variable of sort mesg in the transforming
+; node and moreover (2) the target term we'd like to use is a
+; subterm of what is currently a variable of sort mesg in the
+; escape set.
+;  This was not wholly successful.  However, targetterms2 did
+; illustrate something interesting: a lack of factoring all homomorphisms
+; through members of the cohort.  We could have the init2 strand and a
+; mostly generic trans strand, and there are two trans strands in the
+; shape.  There are two homomorphisms, then, but only one factored through
+; what happened next, because the only next step was a contraction that
+; effectively fixed our idea of which trans strand we had.
+
+(defprotocol targetterms2 basic
+  (defrole init (vars (a name) (n text))
+    (trace
+	(send (enc n (pubk a)))
+      (recv (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a)))
+    )
+    (uniq-orig n)
+    (non-orig (privk a))
+)
+  (defrole trans (vars (a name) (n text) (m mesg))
+    (trace
+     (recv (enc n (pubk a)))
+     (recv m)
+     (send (enc n m (pubk a)))
+    ))
+)
+
+(defskeleton targetterms2
+  (vars (a name) (n text))
+  (defstrand init 2 (a a) (n n))
+)
diff --git a/tst/targetterms2.tst b/tst/targetterms2.tst
new file mode 100644
--- /dev/null
+++ b/tst/targetterms2.tst
@@ -0,0 +1,257 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/targetterms2.scm")
+
+(defprotocol targetterms2 basic
+  (defrole init
+    (vars (a name) (n text))
+    (trace (send (enc n (pubk a)))
+      (recv (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))))
+    (non-orig (privk a))
+    (uniq-orig n))
+  (defrole trans
+    (vars (a name) (n text) (m mesg))
+    (trace (recv (enc n (pubk a))) (recv m) (send (enc n m (pubk a)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton targetterms2
+  (vars (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (traces
+    ((send (enc n (pubk a)))
+      (recv (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a)))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton targetterms2
+  (vars (m mesg) (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (defstrand trans 3 (m m) (n n) (a a))
+  (precedes ((0 0) (1 0)) ((1 2) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test (added-strand trans 3) n (0 1) (enc n (pubk a)))
+  (traces
+    ((send (enc n (pubk a)))
+      (recv (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv m) (send (enc n m (pubk a)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton targetterms2
+  (vars (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (defstrand trans 3 (m (enc n (pubk a))) (n n) (a a))
+  (precedes ((0 0) (1 0)) ((1 2) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test (contracted (m (enc n (pubk a)))) n (0 1)
+    (enc n (pubk a)) (enc n (enc n (pubk a)) (pubk a)))
+  (traces
+    ((send (enc n (pubk a)))
+      (recv (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (pubk a)))
+      (send (enc n (enc n (pubk a)) (pubk a)))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton targetterms2
+  (vars (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (defstrand trans 3 (m (enc n (enc n (pubk a)) (pubk a))) (n n) (a a))
+  (precedes ((0 0) (1 0)) ((1 2) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test
+    (contracted (m (enc n (enc n (pubk a)) (pubk a)))) n (0 1)
+    (enc n (pubk a)) (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a)))
+  (traces
+    ((send (enc n (pubk a)))
+      (recv (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (enc n (pubk a)) (pubk a)))
+      (send (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a)))))
+  (label 3)
+  (parent 1)
+  (unrealized (1 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton targetterms2
+  (vars (m mesg) (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (defstrand trans 3 (m (enc n (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m m) (n n) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 2) (0 1)) ((2 2) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test (added-strand trans 3) n (0 1) (enc n (pubk a))
+    (enc n (enc n (pubk a)) (pubk a)))
+  (traces
+    ((send (enc n (pubk a)))
+      (recv (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (pubk a)))
+      (send (enc n (enc n (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv m) (send (enc n m (pubk a)))))
+  (label 4)
+  (parent 2)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton targetterms2
+  (vars (m mesg) (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (defstrand trans 3 (m (enc n (enc n (pubk a)) (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m m) (n n) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 2) (0 1)) ((2 2) (1 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test (added-strand trans 3) n (1 1) (enc n (pubk a)))
+  (traces
+    ((send (enc n (pubk a)))
+      (recv (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (enc n (pubk a)) (pubk a)))
+      (send (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv m) (send (enc n m (pubk a)))))
+  (label 5)
+  (parent 3)
+  (unrealized (1 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton targetterms2
+  (vars (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (defstrand trans 3 (m (enc n (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m (enc n (enc n (pubk a)) (pubk a))) (n n) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 2) (0 1)) ((2 2) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test
+    (contracted (m (enc n (enc n (pubk a)) (pubk a)))) n (0 1)
+    (enc n (pubk a)) (enc n (enc n (pubk a)) (pubk a))
+    (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a)))
+  (traces
+    ((send (enc n (pubk a)))
+      (recv (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (pubk a)))
+      (send (enc n (enc n (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (enc n (pubk a)) (pubk a)))
+      (send (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a)))))
+  (label 6)
+  (parent 4)
+  (seen 7)
+  (unrealized (2 1))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton targetterms2
+  (vars (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (defstrand trans 3 (m (enc n (enc n (pubk a)) (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m (enc n (pubk a))) (n n) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 2) (0 1)) ((2 2) (1 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test (contracted (m (enc n (pubk a)))) n (1 1)
+    (enc n (pubk a)) (enc n (enc n (pubk a)) (pubk a)))
+  (traces
+    ((send (enc n (pubk a)))
+      (recv (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (enc n (pubk a)) (pubk a)))
+      (send (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (pubk a)))
+      (send (enc n (enc n (pubk a)) (pubk a)))))
+  (label 7)
+  (parent 5)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (n n))))
+  (origs (n (0 0))))
+
+(defskeleton targetterms2
+  (vars (m mesg) (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (defstrand trans 3 (m (enc n (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m (enc n (enc n (pubk a)) (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m m) (n n) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 2) (0 1))
+    ((2 2) (0 1)) ((3 2) (2 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test (added-strand trans 3) n (2 1) (enc n (pubk a)))
+  (traces
+    ((send (enc n (pubk a)))
+      (recv (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (pubk a)))
+      (send (enc n (enc n (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (enc n (pubk a)) (pubk a)))
+      (send (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv m) (send (enc n m (pubk a)))))
+  (label 8)
+  (parent 6)
+  (unrealized (2 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton targetterms2
+  (vars (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (defstrand trans 3 (m (enc n (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m (enc n (enc n (pubk a)) (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m (enc n (pubk a))) (n n) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 2) (0 1))
+    ((2 2) (0 1)) ((3 2) (2 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test (contracted (m (enc n (pubk a)))) n (2 1)
+    (enc n (pubk a)) (enc n (enc n (pubk a)) (pubk a)))
+  (traces
+    ((send (enc n (pubk a)))
+      (recv (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (pubk a)))
+      (send (enc n (enc n (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (enc n (pubk a)) (pubk a)))
+      (send (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (pubk a)))
+      (send (enc n (enc n (pubk a)) (pubk a)))))
+  (label 9)
+  (parent 8)
+  (seen 7)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton targetterms2
+  (vars (m mesg) (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (defstrand trans 3 (m (enc n (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m (enc n (enc n (pubk a)) (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m m) (n n) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 2) (2 1))
+    ((2 2) (0 1)) ((3 2) (2 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test (displaced 4 1 trans 3) n (2 1) (enc n (pubk a))
+    (enc n m (pubk a)))
+  (traces
+    ((send (enc n (pubk a)))
+      (recv (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (pubk a)))
+      (send (enc n (enc n (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (enc n (pubk a)) (pubk a)))
+      (send (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv m) (send (enc n m (pubk a)))))
+  (label 10)
+  (parent 8)
+  (seen 7)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/tst/targetterms6.scm b/tst/targetterms6.scm
new file mode 100644
--- /dev/null
+++ b/tst/targetterms6.scm
@@ -0,0 +1,56 @@
+;;; Target terms experiment
+;
+;  After a series of other experiments on target terms
+; this example arose, and it demonstrated two serious bugs
+; in CPSA.
+;  First, before this example, CPSA was looking for contractions
+; that would completely realize a test node (at least, with respect
+; to one critical message).  In this example, the unrealized node
+; is the second node of the init strand, and the only critical
+; message is the nonce n.  Only if TWO instances of trans were
+; available, both with variable m unbound, could we completely
+; solve the reception with a single substitution.  However, we can't
+; have two instances of trans that are so generic, if we are
+; to terminate in circumstances like these (similar to the pruning
+; necessary to make Needham-Schroeder terminate).  The fix is to
+; make contractions solve only one *position* of the critical
+; message at a time.
+;  The other problem arose when we added that fix - CPSA was still
+; unable to find the shape.  This time, the problem was that pruning
+; was overly aggressive: we had an instance of trans in which m had
+; been bound, and another version in which m had not.  There was a
+; homomorphism and all other conditions were satisfied but the pruning
+; was not justified, because the new copy of the trans strand retained
+; the freedom to have m map to something not unifiable with the binding
+; of m in the other strand.
+
+(defprotocol targetterms6 basic
+  (defrole init (vars (a name) (n text) (m mesg))
+    (trace
+	(send (enc n (pubk a)))
+      (recv (cat (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))
+         (enc n (enc n (pubk a)) (pubk a)) ))
+    )
+    (uniq-orig n)
+    (non-orig (privk a))
+)
+  (defrole trans (vars (a name) (n text) (m mesg))
+    (trace
+     (recv (enc n (pubk a)))
+     (recv m)
+     (send (enc n m (pubk a)))
+    ))
+)
+
+(defskeleton targetterms6
+  (vars (a name) (n text))
+  (defstrand init 2 (a a) (n n))
+)
+
+(defskeleton targetterms6
+  (vars (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (defstrand trans 3 (m (enc n (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m (enc n (enc n (pubk a)) (pubk a))) (n n) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 2) (2 1)) ((2 2) (0 1)))
+)
diff --git a/tst/targetterms6.tst b/tst/targetterms6.tst
new file mode 100644
--- /dev/null
+++ b/tst/targetterms6.tst
@@ -0,0 +1,280 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/targetterms6.scm")
+
+(defprotocol targetterms6 basic
+  (defrole init
+    (vars (a name) (n text))
+    (trace (send (enc n (pubk a)))
+      (recv
+        (cat (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))
+          (enc n (enc n (pubk a)) (pubk a)))))
+    (non-orig (privk a))
+    (uniq-orig n))
+  (defrole trans
+    (vars (a name) (n text) (m mesg))
+    (trace (recv (enc n (pubk a))) (recv m) (send (enc n m (pubk a)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton targetterms6
+  (vars (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (traces
+    ((send (enc n (pubk a)))
+      (recv
+        (cat (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))
+          (enc n (enc n (pubk a)) (pubk a))))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton targetterms6
+  (vars (m mesg) (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (defstrand trans 3 (m m) (n n) (a a))
+  (precedes ((0 0) (1 0)) ((1 2) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test (added-strand trans 3) n (0 1) (enc n (pubk a)))
+  (traces
+    ((send (enc n (pubk a)))
+      (recv
+        (cat (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))
+          (enc n (enc n (pubk a)) (pubk a)))))
+    ((recv (enc n (pubk a))) (recv m) (send (enc n m (pubk a)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton targetterms6
+  (vars (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (defstrand trans 3 (m (enc n (pubk a))) (n n) (a a))
+  (precedes ((0 0) (1 0)) ((1 2) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test (contracted (m (enc n (pubk a)))) n (0 1)
+    (enc n (pubk a)) (enc n (enc n (pubk a)) (pubk a)))
+  (traces
+    ((send (enc n (pubk a)))
+      (recv
+        (cat (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))
+          (enc n (enc n (pubk a)) (pubk a)))))
+    ((recv (enc n (pubk a))) (recv (enc n (pubk a)))
+      (send (enc n (enc n (pubk a)) (pubk a)))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton targetterms6
+  (vars (m mesg) (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (defstrand trans 3 (m (enc n (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m m) (n n) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 2) (0 1)) ((2 2) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test (added-strand trans 3) n (0 1) (enc n (pubk a))
+    (enc n (enc n (pubk a)) (pubk a)))
+  (traces
+    ((send (enc n (pubk a)))
+      (recv
+        (cat (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))
+          (enc n (enc n (pubk a)) (pubk a)))))
+    ((recv (enc n (pubk a))) (recv (enc n (pubk a)))
+      (send (enc n (enc n (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv m) (send (enc n m (pubk a)))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton targetterms6
+  (vars (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (defstrand trans 3 (m (enc n (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m (enc n (enc n (pubk a)) (pubk a))) (n n) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 2) (0 1)) ((2 2) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test
+    (contracted (m (enc n (enc n (pubk a)) (pubk a)))) n (0 1)
+    (enc n (pubk a)) (enc n (enc n (pubk a)) (pubk a))
+    (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a)))
+  (traces
+    ((send (enc n (pubk a)))
+      (recv
+        (cat (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))
+          (enc n (enc n (pubk a)) (pubk a)))))
+    ((recv (enc n (pubk a))) (recv (enc n (pubk a)))
+      (send (enc n (enc n (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (enc n (pubk a)) (pubk a)))
+      (send (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a)))))
+  (label 4)
+  (parent 3)
+  (unrealized (2 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton targetterms6
+  (vars (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (defstrand trans 3 (m (enc n (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m (enc n (enc n (pubk a)) (pubk a))) (n n) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 2) (2 1)) ((2 2) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test (displaced 3 1 trans 3) n (2 1)
+    (enc n (pubk a)))
+  (traces
+    ((send (enc n (pubk a)))
+      (recv
+        (cat (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))
+          (enc n (enc n (pubk a)) (pubk a)))))
+    ((recv (enc n (pubk a))) (recv (enc n (pubk a)))
+      (send (enc n (enc n (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (enc n (pubk a)) (pubk a)))
+      (send (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a)))))
+  (label 5)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (n n))))
+  (origs (n (0 0))))
+
+(defskeleton targetterms6
+  (vars (m mesg) (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (defstrand trans 3 (m (enc n (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m (enc n (enc n (pubk a)) (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m m) (n n) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 2) (0 1))
+    ((2 2) (0 1)) ((3 2) (2 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test (added-strand trans 3) n (2 1) (enc n (pubk a)))
+  (traces
+    ((send (enc n (pubk a)))
+      (recv
+        (cat (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))
+          (enc n (enc n (pubk a)) (pubk a)))))
+    ((recv (enc n (pubk a))) (recv (enc n (pubk a)))
+      (send (enc n (enc n (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (enc n (pubk a)) (pubk a)))
+      (send (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv m) (send (enc n m (pubk a)))))
+  (label 6)
+  (parent 4)
+  (unrealized (2 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton targetterms6
+  (vars (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (defstrand trans 3 (m (enc n (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m (enc n (enc n (pubk a)) (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m (enc n (pubk a))) (n n) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 2) (0 1))
+    ((2 2) (0 1)) ((3 2) (2 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test (contracted (m (enc n (pubk a)))) n (2 1)
+    (enc n (pubk a)) (enc n (enc n (pubk a)) (pubk a)))
+  (traces
+    ((send (enc n (pubk a)))
+      (recv
+        (cat (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))
+          (enc n (enc n (pubk a)) (pubk a)))))
+    ((recv (enc n (pubk a))) (recv (enc n (pubk a)))
+      (send (enc n (enc n (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (enc n (pubk a)) (pubk a)))
+      (send (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (pubk a)))
+      (send (enc n (enc n (pubk a)) (pubk a)))))
+  (label 7)
+  (parent 6)
+  (seen 5)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton targetterms6
+  (vars (m mesg) (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (defstrand trans 3 (m (enc n (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m (enc n (enc n (pubk a)) (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m m) (n n) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 2) (2 1))
+    ((2 2) (0 1)) ((3 2) (2 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (operation nonce-test (displaced 4 1 trans 3) n (2 1) (enc n (pubk a))
+    (enc n m (pubk a)))
+  (traces
+    ((send (enc n (pubk a)))
+      (recv
+        (cat (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))
+          (enc n (enc n (pubk a)) (pubk a)))))
+    ((recv (enc n (pubk a))) (recv (enc n (pubk a)))
+      (send (enc n (enc n (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (enc n (pubk a)) (pubk a)))
+      (send (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv m) (send (enc n m (pubk a)))))
+  (label 8)
+  (parent 6)
+  (seen 5)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol targetterms6 basic
+  (defrole init
+    (vars (a name) (n text))
+    (trace (send (enc n (pubk a)))
+      (recv
+        (cat (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))
+          (enc n (enc n (pubk a)) (pubk a)))))
+    (non-orig (privk a))
+    (uniq-orig n))
+  (defrole trans
+    (vars (a name) (n text) (m mesg))
+    (trace (recv (enc n (pubk a))) (recv m) (send (enc n m (pubk a)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton targetterms6
+  (vars (n text) (a name))
+  (defstrand init 2 (n n) (a a))
+  (defstrand trans 3 (m (enc n (pubk a))) (n n) (a a))
+  (defstrand trans 3 (m (enc n (enc n (pubk a)) (pubk a))) (n n) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 2) (2 1)) ((2 2) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig n)
+  (traces
+    ((send (enc n (pubk a)))
+      (recv
+        (cat (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a))
+          (enc n (enc n (pubk a)) (pubk a)))))
+    ((recv (enc n (pubk a))) (recv (enc n (pubk a)))
+      (send (enc n (enc n (pubk a)) (pubk a))))
+    ((recv (enc n (pubk a))) (recv (enc n (enc n (pubk a)) (pubk a)))
+      (send (enc n (enc n (enc n (pubk a)) (pubk a)) (pubk a)))))
+  (label 9)
+  (realized)
+  (shape)
+  (maps ((0 1 2) ((n n) (a a))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/targetterms8.scm b/tst/targetterms8.scm
new file mode 100644
--- /dev/null
+++ b/tst/targetterms8.scm
@@ -0,0 +1,64 @@
+;;; Target terms experiment
+;
+;  This example demonstrates the need for the solved filter condition "2a",
+; which we had suspected was necessary for months but until now we were not
+; sure.
+;
+;
+;  The initiator sends out an encryption {|n1 {|a n2|} |}, with both levels
+; of encryption being under an asymmetric key whose inverse is assumed to be
+; non-originating.  n1 is freshly chosen.  The initiator expects to receive
+; {|a n1|}.
+;
+;  The responder takes {|n1 {|m|} |} and outputs {|m|}.
+;
+;  The initial POV (which is just the init 2 role) is dead because we don't
+; have condition 2a in the solved predicate.  If we did, we could try an
+; augmentation or displacement for a length-1 init strand with n1 being
+; used as the value for n2.  Hulling would require that this unify with the
+; existing init strand, and the result would be an init strand in which n1
+; and n2 are unified.  (Our second POV is this skeleton).
+;
+;  However, the escape set after this map is no bigger than it was; it consists
+; of only {|n1 {|a n1|} |}, which is in the image of the old escape set, so
+; we don't meet condition 2.  We do meet condition 2a, since the target term
+; (a n1) is not an image of any old target term (the old target terms were only
+; n1 and (n1 {|a n2|}).
+;
+;  Note that the first POV is dead (in CPSA 2.2.2) but the second POV is not,
+; and leads to a shape.
+
+(defprotocol targetterms8 basic
+  (defrole init (vars (a name) (n1 n2 text) (k akey))
+    (trace
+	(send (enc n1 (enc a n2 k) k))
+      (recv (enc a n1 k))
+    )
+    (uniq-orig n1)
+    (non-orig (invk k))
+)
+  (defrole resp (vars (n1 text) (m mesg) (k akey))
+    (trace
+     (recv (enc n1 (enc m k) k))
+     (send (enc m k))
+    ))
+)
+
+(comment First POV)
+(defskeleton targetterms8
+  (vars (a name) (n1 n2 text) (k akey))
+  (defstrand init 2 (a a) (n1 n1) (n2 n2) (k k))
+)
+
+(comment Second POV)
+(defskeleton targetterms8
+  (vars (a name) (n1 text) (k akey))
+  (defstrand init 2 (a a) (n1 n1) (n2 n1) (k k))
+)
+
+(comment "This is the shape.  We don't need it because we find it from the second POV.")
+(comment (defskeleton targetterms8
+  (vars (a name) (n1 text) (k akey) )
+  (defstrand init 2 (a a) (n1 n1) (n2 n1) (k k))
+  (defstrand resp 2 (n1 n1) (k k) (m (cat a n1)))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))))
diff --git a/tst/targetterms8.tst b/tst/targetterms8.tst
new file mode 100644
--- /dev/null
+++ b/tst/targetterms8.tst
@@ -0,0 +1,110 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/targetterms8.scm")
+
+(defprotocol targetterms8 basic
+  (defrole init
+    (vars (a name) (n1 n2 text) (k akey))
+    (trace (send (enc n1 (enc a n2 k) k)) (recv (enc a n1 k)))
+    (non-orig (invk k))
+    (uniq-orig n1))
+  (defrole resp
+    (vars (n1 text) (m mesg) (k akey))
+    (trace (recv (enc n1 (enc m k) k)) (send (enc m k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton targetterms8
+  (vars (n1 n2 text) (k akey) (a name))
+  (defstrand init 2 (n1 n1) (n2 n2) (k k) (a a))
+  (non-orig (invk k))
+  (uniq-orig n1)
+  (traces ((send (enc n1 (enc a n2 k) k)) (recv (enc a n1 k))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton targetterms8
+  (vars (n2 text) (k akey) (a name))
+  (defstrand init 2 (n1 n2) (n2 n2) (k k) (a a))
+  (non-orig (invk k))
+  (uniq-orig n2)
+  (operation nonce-test (displaced 1 0 init 1) n1 (0 1)
+    (enc n1 (enc a n2 k) k))
+  (traces ((send (enc n2 (enc a n2 k) k)) (recv (enc a n2 k))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1))
+  (origs (n2 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton targetterms8
+  (vars (n2 text) (k akey) (a name))
+  (defstrand init 2 (n1 n2) (n2 n2) (k k) (a a))
+  (defstrand resp 2 (m (cat a n2)) (n1 n2) (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig n2)
+  (operation nonce-test (added-strand resp 2) n2 (0 1)
+    (enc n2 (enc a n2 k) k))
+  (traces ((send (enc n2 (enc a n2 k) k)) (recv (enc a n2 k)))
+    ((recv (enc n2 (enc a n2 k) k)) (send (enc a n2 k))))
+  (label 2)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (n1 n2) (n2 n2) (k k))))
+  (origs (n2 (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol targetterms8 basic
+  (defrole init
+    (vars (a name) (n1 n2 text) (k akey))
+    (trace (send (enc n1 (enc a n2 k) k)) (recv (enc a n1 k)))
+    (non-orig (invk k))
+    (uniq-orig n1))
+  (defrole resp
+    (vars (n1 text) (m mesg) (k akey))
+    (trace (recv (enc n1 (enc m k) k)) (send (enc m k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton targetterms8
+  (vars (n1 text) (k akey) (a name))
+  (defstrand init 2 (n1 n1) (n2 n1) (k k) (a a))
+  (non-orig (invk k))
+  (uniq-orig n1)
+  (traces ((send (enc n1 (enc a n1 k) k)) (recv (enc a n1 k))))
+  (label 3)
+  (unrealized (0 1))
+  (origs (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton targetterms8
+  (vars (n1 text) (k akey) (a name))
+  (defstrand init 2 (n1 n1) (n2 n1) (k k) (a a))
+  (defstrand resp 2 (m (cat a n1)) (n1 n1) (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig n1)
+  (operation nonce-test (added-strand resp 2) n1 (0 1)
+    (enc n1 (enc a n1 k) k))
+  (traces ((send (enc n1 (enc a n1 k) k)) (recv (enc a n1 k)))
+    ((recv (enc n1 (enc a n1 k) k)) (send (enc a n1 k))))
+  (label 4)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (n1 n1) (k k))))
+  (origs (n1 (0 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/test_g.scm b/tst/test_g.scm
deleted file mode 100644
--- a/tst/test_g.scm
+++ /dev/null
@@ -1,20 +0,0 @@
-(herald "small test" (algebra diffie-hellman)
- ;(limit 1)
-)
-
-(defprotocol test1 diffie-hellman
-  (defrole init
-    (vars (x rndx) (w expt) (k skey))
-    (trace
-     (send (enc (exp (gen) x) k))
-     (recv (exp (gen) (mul x w))))
-    (uniq-gen x)
-  (non-orig k)
-  )
-)
-
-;; Should need to use contraction with g to produce a shape.
-(defskeleton test1
-  (vars (k skey))
-  (defstrand init 2 (k k))
-  )
diff --git a/tst/test_g.tst b/tst/test_g.tst
deleted file mode 100644
--- a/tst/test_g.tst
+++ /dev/null
@@ -1,314 +0,0 @@
-(herald "small test" (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/test_g.scm")
-
-(defprotocol test1 diffie-hellman
-  (defrole init
-    (vars (x rndx) (w expt) (k skey))
-    (trace (send (enc (exp (gen) x) k)) (recv (exp (gen) (mul x w))))
-    (non-orig k)
-    (uniq-gen x)))
-
-(defskeleton test1
-  (vars (k skey) (x rndx) (w expt))
-  (defstrand init 2 (k k) (x x) (w w))
-  (non-orig k)
-  (uniq-gen x)
-  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) (mul x w)))))
-  (label 0)
-  (unrealized (0 1))
-  (origs)
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton test1
-  (vars (k skey) (x rndx))
-  (defstrand init 2 (k k) (x x) (w (rec x)))
-  (non-orig k)
-  (uniq-gen x)
-  (operation nonce-test (contracted (x-0 x) (w (rec x))) (gen) (0 1))
-  (traces ((send (enc (exp (gen) x) k)) (recv (gen))))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((k k) (x x) (w (rec x)))))
-  (origs))
-
-(defskeleton test1
-  (vars (k skey) (x rndx))
-  (defstrand init 2 (k k) (x x) (w (one)))
-  (non-orig k)
-  (uniq-gen x)
-  (operation nonce-test (displaced 1 0 init 1) (exp (gen) x-0) (0 1))
-  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) x))))
-  (label 2)
-  (parent 0)
-  (unrealized (0 1))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton test1
-  (vars (k k-0 skey) (x x-0 rndx))
-  (defstrand init 2 (k k) (x x) (w (mul (rec x) x-0)))
-  (defstrand init 1 (k k-0) (x x-0))
-  (precedes ((1 0) (0 1)))
-  (non-orig k k-0)
-  (uniq-gen x x-0)
-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (0 1))
-  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) x-0)))
-    ((send (enc (exp (gen) x-0) k-0))))
-  (label 3)
-  (parent 0)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton test1
-  (vars (k skey) (x rndx) (w w-0 expt))
-  (defstrand init 2 (k k) (x x) (w w))
-  (deflistener (cat (exp (gen) (mul x w (rec w-0))) w-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig k)
-  (uniq-gen x)
-  (precur (1 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x w (rec w-0))) w-0))
-    (exp (gen) (mul x w)) (0 1))
-  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) (mul x w))))
-    ((recv (cat (exp (gen) (mul x w (rec w-0))) w-0))
-      (send (cat (exp (gen) (mul x w (rec w-0))) w-0))))
-  (label 4)
-  (parent 0)
-  (unrealized (1 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton test1
-  (vars (k skey) (x rndx) (w expt))
-  (defstrand init 2 (k k) (x x) (w (one)))
-  (deflistener (cat (exp (gen) (mul x (rec w))) w))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig k)
-  (uniq-gen x)
-  (precur (1 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x (rec w))) w)) (exp (gen) x)
-    (0 1) (enc (exp (gen) x) k))
-  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) x)))
-    ((recv (cat (exp (gen) (mul x (rec w))) w))
-      (send (cat (exp (gen) (mul x (rec w))) w))))
-  (label 5)
-  (parent 2)
-  (unrealized (1 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton test1
-  (vars (k k-0 skey) (x x-0 rndx) (w expt))
-  (defstrand init 2 (k k) (x x) (w (mul (rec x) x-0)))
-  (defstrand init 1 (k k-0) (x x-0))
-  (deflistener (cat (exp (gen) (mul x-0 (rec w))) w))
-  (precedes ((1 0) (2 0)) ((2 1) (0 1)))
-  (non-orig k k-0)
-  (uniq-gen x x-0)
-  (precur (2 0))
-  (operation nonce-test
-    (added-listener (cat (exp (gen) (mul x-0 (rec w))) w))
-    (exp (gen) x-0) (0 1) (enc (exp (gen) x-0) k-0))
-  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) x-0)))
-    ((send (enc (exp (gen) x-0) k-0)))
-    ((recv (cat (exp (gen) (mul x-0 (rec w))) w))
-      (send (cat (exp (gen) (mul x-0 (rec w))) w))))
-  (label 6)
-  (parent 3)
-  (unrealized (2 0))
-  (comment "4 in cohort - 4 not yet seen"))
-
-(defskeleton test1
-  (vars (k skey) (x rndx) (w expt))
-  (defstrand init 2 (k k) (x x) (w (mul (rec x) w)))
-  (deflistener (cat (gen) w))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig k)
-  (uniq-gen x)
-  (precur (1 0))
-  (operation nonce-test
-    (contracted (x-0 x) (w-0 (mul (rec x) w)) (w-1 w)) (gen) (1 0))
-  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) w)))
-    ((recv (cat (gen) w)) (send (cat (gen) w))))
-  (label 7)
-  (parent 4)
-  (seen 0)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton test1
-  (vars (k skey) (w expt) (x rndx))
-  (defstrand init 2 (k k) (x x) (w w))
-  (deflistener (cat (exp (gen) x) w))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig k)
-  (precur (1 0))
-  (uniq-gen x)
-  (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))
-  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) (mul w x))))
-    ((recv (cat (exp (gen) x) w)) (send (cat (exp (gen) x) w))))
-  (label 8)
-  (parent 4)
-  (unrealized (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton test1
-  (vars (k k-0 skey) (x rndx) (w expt) (x-0 rndx))
-  (defstrand init 2 (k k) (x x) (w (mul (rec x) w x-0)))
-  (deflistener (cat (exp (gen) x-0) w))
-  (defstrand init 1 (k k-0) (x x-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 0) (1 0)))
-  (non-orig k k-0)
-  (precur (1 0))
-  (uniq-gen x x-0)
-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))
-  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) (mul w x-0))))
-    ((recv (cat (exp (gen) x-0) w)) (send (cat (exp (gen) x-0) w)))
-    ((send (enc (exp (gen) x-0) k-0))))
-  (label 9)
-  (parent 4)
-  (unrealized (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton test1
-  (vars (k skey) (x rndx))
-  (defstrand init 2 (k k) (x x) (w (one)))
-  (deflistener (cat (gen) x))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig k)
-  (uniq-gen x)
-  (precur (1 0))
-  (operation nonce-test (contracted (x-0 x) (w x)) (gen) (1 0))
-  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) x)))
-    ((recv (cat (gen) x)) (send (cat (gen) x))))
-  (label 10)
-  (parent 5)
-  (unrealized (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton test1
-  (vars (k skey) (x rndx))
-  (defstrand init 2 (k k) (x x) (w (one)))
-  (deflistener (cat (exp (gen) x) (one)))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig k)
-  (precur (1 0))
-  (uniq-gen x)
-  (operation nonce-test (displaced 2 0 init 1) (exp (gen) x-0) (1 0))
-  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) x)))
-    ((recv (cat (exp (gen) x) (one))) (send (cat (exp (gen) x) (one)))))
-  (label 11)
-  (parent 5)
-  (unrealized (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton test1
-  (vars (k k-0 skey) (x x-0 rndx))
-  (defstrand init 2 (k k) (x x) (w (one)))
-  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
-  (defstrand init 1 (k k-0) (x x-0))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((2 0) (1 0)))
-  (non-orig k k-0)
-  (precur (1 0))
-  (uniq-gen x x-0)
-  (operation nonce-test (added-strand init 1) (exp (gen) x-0) (1 0))
-  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) x)))
-    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
-      (send (cat (exp (gen) x-0) (mul x (rec x-0)))))
-    ((send (enc (exp (gen) x-0) k-0))))
-  (label 12)
-  (parent 5)
-  (unrealized (0 1) (1 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton test1
-  (vars (k k-0 skey) (x x-0 rndx))
-  (defstrand init 2 (k k) (x x) (w (mul (rec x) x-0)))
-  (defstrand init 1 (k k-0) (x x-0))
-  (deflistener (cat (gen) x-0))
-  (precedes ((1 0) (2 0)) ((2 1) (0 1)))
-  (non-orig k k-0)
-  (uniq-gen x x-0)
-  (precur (2 0))
-  (operation nonce-test (contracted (x-1 x-0) (w x-0)) (gen) (2 0))
-  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) x-0)))
-    ((send (enc (exp (gen) x-0) k-0)))
-    ((recv (cat (gen) x-0)) (send (cat (gen) x-0))))
-  (label 13)
-  (parent 6)
-  (unrealized (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton test1
-  (vars (k k-0 skey) (x x-0 rndx))
-  (defstrand init 2 (k k) (x x-0) (w (mul x (rec x-0))))
-  (defstrand init 1 (k k-0) (x x))
-  (deflistener (cat (exp (gen) x-0) (mul x (rec x-0))))
-  (precedes ((0 0) (2 0)) ((1 0) (2 0)) ((2 1) (0 1)))
-  (non-orig k k-0)
-  (precur (2 0))
-  (uniq-gen x x-0)
-  (operation nonce-test (displaced 3 0 init 1) (exp (gen) x-1) (2 0))
-  (traces ((send (enc (exp (gen) x-0) k)) (recv (exp (gen) x)))
-    ((send (enc (exp (gen) x) k-0)))
-    ((recv (cat (exp (gen) x-0) (mul x (rec x-0))))
-      (send (cat (exp (gen) x-0) (mul x (rec x-0))))))
-  (label 14)
-  (parent 6)
-  (unrealized (0 1) (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton test1
-  (vars (k k-0 skey) (x x-0 rndx))
-  (defstrand init 2 (k k) (x x) (w (mul (rec x) x-0)))
-  (defstrand init 1 (k k-0) (x x-0))
-  (deflistener (cat (exp (gen) x-0) (one)))
-  (precedes ((1 0) (2 0)) ((2 1) (0 1)))
-  (non-orig k k-0)
-  (precur (2 0))
-  (uniq-gen x x-0)
-  (operation nonce-test (displaced 3 1 init 1) (exp (gen) x-1) (2 0))
-  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) x-0)))
-    ((send (enc (exp (gen) x-0) k-0)))
-    ((recv (cat (exp (gen) x-0) (one)))
-      (send (cat (exp (gen) x-0) (one)))))
-  (label 15)
-  (parent 6)
-  (unrealized (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton test1
-  (vars (k k-0 k-1 skey) (x x-0 x-1 rndx))
-  (defstrand init 2 (k k) (x x) (w (mul (rec x) x-0)))
-  (defstrand init 1 (k k-0) (x x-0))
-  (deflistener (cat (exp (gen) x-1) (mul x-0 (rec x-1))))
-  (defstrand init 1 (k k-1) (x x-1))
-  (precedes ((1 0) (2 0)) ((2 1) (0 1)) ((3 0) (2 0)))
-  (non-orig k k-0 k-1)
-  (precur (2 0))
-  (uniq-gen x x-0 x-1)
-  (operation nonce-test (added-strand init 1) (exp (gen) x-1) (2 0))
-  (traces ((send (enc (exp (gen) x) k)) (recv (exp (gen) x-0)))
-    ((send (enc (exp (gen) x-0) k-0)))
-    ((recv (cat (exp (gen) x-1) (mul x-0 (rec x-1))))
-      (send (cat (exp (gen) x-1) (mul x-0 (rec x-1)))))
-    ((send (enc (exp (gen) x-1) k-1))))
-  (label 16)
-  (parent 6)
-  (unrealized (0 1) (2 0))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
diff --git a/tst/test_small.scm b/tst/test_small.scm
deleted file mode 100644
--- a/tst/test_small.scm
+++ /dev/null
@@ -1,37 +0,0 @@
-(herald "small test" (algebra diffie-hellman)
-;(limit 1)
-)
-
-(defprotocol test diffie-hellman
-  (defrole init
-    (vars (hr base) (a b name) (xi rndx))
-    (trace
-     (recv (enc hr (privk b)))
-     (send (enc (hash (exp hr xi)) (exp (gen) xi) (privk a))))
-    (uniq-gen xi)
-;    (non-orig (privk b))
-)
-  (defrole resp
-    (vars (xr rndx) (a b name) (hi base))
-    (trace
-     (send (enc (exp (gen) xr) (privk b)))
-     (recv (enc (hash (exp hi xr)) hi (privk a))))
-    (uniq-gen xr)
-;    (non-orig (privk a))
-
-;  (defrole signer
-;    (vars (m mesg) (n name))
-;    (trace
-;      (recv m)
-;      (send (enc m (privk n)))))
-))
-
-;(defskeleton test
-;  (vars (a b name))
-;  (defstrand init 2 (a a) (b b))
-;  (non-orig (privk a) (privk b)))
-
-(defskeleton test
-  (vars (a b name))
-  (defstrand resp 2 (a a) (b b))
-  (non-orig (privk a) (privk b)))
diff --git a/tst/test_small.tst b/tst/test_small.tst
deleted file mode 100644
--- a/tst/test_small.tst
+++ /dev/null
@@ -1,56 +0,0 @@
-(herald "small test" (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/test_small.scm")
-
-(defprotocol test diffie-hellman
-  (defrole init
-    (vars (hr base) (a b name) (xi rndx))
-    (trace (recv (enc hr (privk b)))
-      (send (enc (hash (exp hr xi)) (exp (gen) xi) (privk a))))
-    (uniq-gen xi)
-    (absent (xi hr)))
-  (defrole resp
-    (vars (xr rndx) (a b name) (hi base))
-    (trace (send (enc (exp (gen) xr) (privk b)))
-      (recv (enc (hash (exp hi xr)) hi (privk a))))
-    (uniq-gen xr)))
-
-(defskeleton test
-  (vars (a b name) (hi base) (xr rndx))
-  (defstrand resp 2 (a a) (b b) (hi hi) (xr xr))
-  (non-orig (privk a) (privk b))
-  (uniq-gen xr)
-  (traces
-    ((send (enc (exp (gen) xr) (privk b)))
-      (recv (enc (hash (exp hi xr)) hi (privk a)))))
-  (label 0)
-  (unrealized (0 1))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton test
-  (vars (a b b-0 name) (xr xi rndx))
-  (defstrand resp 2 (a a) (b b) (hi (exp (gen) xi)) (xr xr))
-  (defstrand init 2 (a a) (b b-0) (hr (exp (gen) xr)) (xi xi))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (absent (xi (exp (gen) xr)))
-  (non-orig (privk a) (privk b))
-  (uniq-gen xr xi)
-  (operation encryption-test (added-strand init 2)
-    (enc (hash (exp (gen) (mul xr xi))) (exp (gen) xi) (privk a)) (0 1))
-  (traces
-    ((send (enc (exp (gen) xr) (privk b)))
-      (recv
-        (enc (hash (exp (gen) (mul xr xi))) (exp (gen) xi) (privk a))))
-    ((recv (enc (exp (gen) xr) (privk b-0)))
-      (send
-        (enc (hash (exp (gen) (mul xr xi))) (exp (gen) xi) (privk a)))))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (xr xr) (hi (exp (gen) xi)))))
-  (origs))
-
-(comment "Nothing left to do")
diff --git a/tst/thinning.scm b/tst/thinning.scm
deleted file mode 100644
--- a/tst/thinning.scm
+++ /dev/null
@@ -1,85 +0,0 @@
-(herald thinning (algebra diffie-hellman))
-
-;; This examples shows a problem with thinning.
-;;
-;; Skeleton 12 should lead to a shape, but a bug in thinning causes it
-;; to be dead.  Adding one neq in the point-of-view fixes the problem,
-;; and adding two causes the problem to re-emerge.  Skeleton 36 is
-;; what is being erroneously thinned in the first run.
-
-;; Blindvault provisioner
-;;
-;; Diffie-Hellman algebra used so that bltk is available.
-
-(defprotocol provision diffie-hellman
-
-  (defrole supplicant
-    (vars (self pal admin name) (meas text) (count data))
-    (trace
-     (send (enc "endpoint" self pal meas (pubk self) (pubk admin)))
-     (recv (enc "admit"
-		(enc "admitted" count meas (hash (bltk self pal)) (privk admin))
-		(bltk self pal)
-		(pubk self))))
-    (uniq-orig meas))
-
-  (defrole admission
-    (vars (self pal admin counter name)
-	  (meas-self meas-pal text) (token count data))
-    (trace
-     (recv (enc "endpoint" self pal meas-self (pubk self) (pubk admin)))
-     (send (enc "incr" token (pubk counter)))
-     (recv (enc "count" count token (privk counter)))
-     (send (enc "admit"
-		(enc "admitted" count meas-self
-		     (hash (bltk self pal)) (privk admin))
-		(bltk self pal)
-		(pubk self))))
-    (uniq-orig token)
-    (non-orig (privk counter)))
-
-  (defrole counter
-    (vars (t n data) (k akey))
-    (trace
-     (recv (enc "incr" t k))
-     (send (enc "count" n t (invk k))))
-    (uniq-orig n))
-
-  (defrule one-counter
-    (forall ((z w strd) (counter1 counter2 name))
-	    (implies
-	     (and (p "admission" z 2)
-		  (p "admission" "counter" z counter1)
-		  (p "admission" w 2)
-		  (p "admission" "counter" w counter2))
-	     (= counter1 counter2))))
-
-  )
-
-(defskeleton provision
-  (vars (left right admin name))
-  (defstrand supplicant 2 (self left) (pal right) (admin admin))
-  (defstrand supplicant 2 (self right) (pal left) (admin admin))
-  (pen-non-orig (bltk left right))
-  ;; (neq (left right))  ;; One fixes the problem.
-  ;; (neq (right left))  ;; Two makes the problem reappear.
-  (non-orig (privk left) (privk right) (privk admin)))
-
-
-(defskeleton provision
-  (vars (left right admin name))
-  (defstrand supplicant 2 (self left) (pal right) (admin admin))
-  (defstrand supplicant 2 (self right) (pal left) (admin admin))
-  (pen-non-orig (bltk left right))
-  (neq (left right)) ;; One fixes the problem.
-  (non-orig (privk left) (privk right) (privk admin)))
-
-
-(defskeleton provision
-  (vars (left right admin name))
-  (defstrand supplicant 2 (self left) (pal right) (admin admin))
-  (defstrand supplicant 2 (self right) (pal left) (admin admin))
-  (pen-non-orig (bltk left right))
-  (neq (left right)) ;; One fixes the problem.
-  (neq (right left)) ;; Two makes the problem reappear.
-  (non-orig (privk left) (privk right) (privk admin)))
diff --git a/tst/thinning.tst b/tst/thinning.tst
deleted file mode 100644
--- a/tst/thinning.tst
+++ /dev/null
@@ -1,2933 +0,0 @@
-(herald thinning (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/thinning.scm")
-
-(defprotocol provision diffie-hellman
-  (defrole supplicant
-    (vars (self pal admin name) (meas text) (count data))
-    (trace
-      (send (enc "endpoint" self pal meas (pubk self) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk self pal))
-            (privk admin)) (bltk self pal) (pubk self))))
-    (uniq-orig meas))
-  (defrole admission
-    (vars (self pal admin counter name) (meas-self text)
-      (token count data))
-    (trace
-      (recv
-        (enc "endpoint" self pal meas-self (pubk self) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas-self (hash (bltk self pal))
-            (privk admin)) (bltk self pal) (pubk self))))
-    (non-orig (privk counter))
-    (uniq-orig token))
-  (defrole counter
-    (vars (t n data) (k akey))
-    (trace (recv (enc "incr" t k)) (send (enc "count" n t (invk k))))
-    (uniq-orig n))
-  (defrule one-counter
-    (forall ((z w strd) (counter1 counter2 name))
-      (implies
-        (and (p "admission" z 2) (p "admission" "counter" z counter1)
-          (p "admission" w 2) (p "admission" "counter" w counter2))
-        (= counter1 counter2)))))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 data) (left right admin name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (non-orig (privk left) (privk right) (privk admin))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0)
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right)))))
-  (label 0)
-  (unrealized (0 1) (1 1))
-  (origs (meas-0 (1 0)) (meas (0 0)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton provision
-  (vars (meas text) (count data) (left admin name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal left) (admin admin))
-  (non-orig (privk left) (privk admin))
-  (pen-non-orig (bltk left left))
-  (uniq-orig meas)
-  (operation collapsed 1 0)
-  (traces
-    ((send (enc "endpoint" left left meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left)))))
-  (label 1)
-  (parent 0)
-  (unrealized (0 1))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self left) (pal right) (admin admin)
-    (counter counter))
-  (precedes ((1 0) (2 0)) ((2 3) (1 1)))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 token)
-  (operation encryption-test (added-strand admission 4)
-    (enc "admitted" count-0 meas-0 (hash (bltk left right))
-      (privk admin)) (1 1))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left)))))
-  (label 2)
-  (parent 0)
-  (seen 6)
-  (unrealized (0 1) (1 1) (2 0) (2 2))
-  (comment "3 in cohort - 2 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (precedes ((1 0) (2 0)) ((2 3) (1 1)))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 token)
-  (operation encryption-test (added-strand admission 4)
-    (enc "admitted" count-0 meas-0 (hash (bltk left right))
-      (privk admin)) (1 1))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right)))))
-  (label 3)
-  (parent 0)
-  (unrealized (0 1) (2 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas text) (count token data) (left admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas) (token token) (count count)
-    (self left) (pal left) (admin admin) (counter counter))
-  (precedes ((0 0) (1 0)) ((1 3) (0 1)))
-  (non-orig (privk left) (privk admin) (privk counter))
-  (pen-non-orig (bltk left left))
-  (uniq-orig meas token)
-  (operation encryption-test (added-strand admission 4)
-    (enc "admitted" count meas (hash (bltk left left)) (privk admin))
-    (0 1))
-  (traces
-    ((send (enc "endpoint" left left meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((recv (enc "endpoint" left left meas (pubk left) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left)))))
-  (label 4)
-  (parent 1)
-  (unrealized (1 2))
-  (origs (token (1 1)) (meas (0 0)))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token data)
-    (right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self right)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal right) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal right) (admin admin)
-    (counter counter))
-  (precedes ((1 0) (2 0)) ((2 3) (1 1)))
-  (non-orig (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk right right))
-  (uniq-orig meas meas-0 token)
-  (operation nonce-test (contracted (left right)) meas-0 (2 0)
-    (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))
-  (traces
-    ((send (enc "endpoint" right right meas (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk right right))
-            (privk admin)) (bltk right right) (pubk right))))
-    ((send
-       (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk right right))
-            (privk admin)) (bltk right right) (pubk right))))
-    ((recv
-       (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk right right))
-            (privk admin)) (bltk right right) (pubk right)))))
-  (label 5)
-  (parent 2)
-  (unrealized (0 1) (2 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token token-0 count-1 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self left) (pal right) (admin admin)
-    (counter counter))
-  (defstrand admission 4 (meas-self meas-0) (token token-0)
-    (count count-1) (self right) (pal left) (admin admin)
-    (counter counter))
-  (precedes ((1 0) (3 0)) ((2 3) (1 1)) ((3 3) (2 0)))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 token token-0)
-  (rule one-counter)
-  (operation nonce-test (added-strand admission 4) meas-0 (2 0)
-    (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count-1 token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right)))))
-  (label 6)
-  (parent 2)
-  (unrealized (0 1) (1 1) (2 0) (2 2) (3 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (precedes ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1)) ((3 1) (2 2)))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count-0 token)
-  (operation encryption-test (added-strand counter 2)
-    (enc "count" count-0 token (privk counter)) (2 2))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter)))))
-  (label 7)
-  (parent 3)
-  (seen 11 12)
-  (unrealized (0 1))
-  (comment "4 in cohort - 2 not yet seen"))
-
-(defskeleton provision
-  (vars (meas text) (count token data) (left admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas) (token token) (count count)
-    (self left) (pal left) (admin admin) (counter counter))
-  (defstrand counter 2 (t token) (n count) (k (pubk counter)))
-  (precedes ((0 0) (1 0)) ((1 1) (2 0)) ((1 3) (0 1)) ((2 1) (1 2)))
-  (non-orig (privk left) (privk admin) (privk counter))
-  (pen-non-orig (bltk left left))
-  (uniq-orig meas count token)
-  (operation encryption-test (added-strand counter 2)
-    (enc "count" count token (privk counter)) (1 2))
-  (traces
-    ((send (enc "endpoint" left left meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((recv (enc "endpoint" left left meas (pubk left) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count token (privk counter)))))
-  (label 8)
-  (parent 4)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 0)
-      ((left left) (right left) (admin admin) (meas meas) (count count)
-        (meas-0 meas) (count-0 count))))
-  (origs (count (2 1)) (token (1 1)) (meas (0 0))))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token data)
-    (right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self right)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal right) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal right) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (precedes ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1)) ((3 1) (2 2)))
-  (non-orig (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk right right))
-  (uniq-orig meas meas-0 count-0 token)
-  (operation encryption-test (added-strand counter 2)
-    (enc "count" count-0 token (privk counter)) (2 2))
-  (traces
-    ((send (enc "endpoint" right right meas (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk right right))
-            (privk admin)) (bltk right right) (pubk right))))
-    ((send
-       (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk right right))
-            (privk admin)) (bltk right right) (pubk right))))
-    ((recv
-       (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk right right))
-            (privk admin)) (bltk right right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter)))))
-  (label 9)
-  (parent 5)
-  (seen 13)
-  (unrealized (0 1))
-  (comment "2 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token token-0 count-1 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self left) (pal right) (admin admin)
-    (counter counter))
-  (defstrand admission 4 (meas-self meas-0) (token token-0)
-    (count count-1) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))
-  (precedes ((1 0) (3 0)) ((2 3) (1 1)) ((3 1) (4 0)) ((3 3) (2 0))
-    ((4 1) (3 2)))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 token token-0 count-1)
-  (operation encryption-test (added-strand counter 2)
-    (enc "count" count-1 token-0 (privk counter)) (3 2))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count-1 token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token-0 (pubk counter)))
-      (send (enc "count" count-1 token-0 (privk counter)))))
-  (label 10)
-  (parent 6)
-  (seen 15)
-  (unrealized (0 1) (1 1) (2 0) (2 2))
-  (comment "5 in cohort - 2 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token token-0 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self right) (pal left) (admin admin) (counter counter))
-  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))
-    ((3 1) (2 2)) ((4 3) (0 1)))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count-0 token token-0)
-  (rule one-counter)
-  (operation encryption-test (added-strand admission 4)
-    (enc "admitted" count meas (hash (bltk left right)) (privk admin))
-    (0 1))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right)))))
-  (label 11)
-  (parent 7)
-  (seen 13 16)
-  (unrealized (0 1) (4 0) (4 2))
-  (comment "5 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token token-0 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self left) (pal right) (admin admin) (counter counter))
-  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))
-    ((3 1) (2 2)) ((4 3) (0 1)))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count-0 token token-0)
-  (rule one-counter)
-  (operation encryption-test (added-strand admission 4)
-    (enc "admitted" count meas (hash (bltk left right)) (privk admin))
-    (0 1))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left)))))
-  (label 12)
-  (parent 7)
-  (unrealized (4 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token token-0 data)
-    (right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self right)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal right) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal right) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self right) (pal right) (admin admin) (counter counter))
-  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))
-    ((3 1) (2 2)) ((4 3) (0 1)))
-  (non-orig (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk right right))
-  (uniq-orig meas meas-0 count-0 token token-0)
-  (rule one-counter)
-  (operation encryption-test (added-strand admission 4)
-    (enc "admitted" count meas (hash (bltk right right)) (privk admin))
-    (0 1))
-  (traces
-    ((send (enc "endpoint" right right meas (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk right right))
-            (privk admin)) (bltk right right) (pubk right))))
-    ((send
-       (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk right right))
-            (privk admin)) (bltk right right) (pubk right))))
-    ((recv
-       (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk right right))
-            (privk admin)) (bltk right right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" right right meas (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk right right))
-            (privk admin)) (bltk right right) (pubk right)))))
-  (label 13)
-  (parent 9)
-  (unrealized (4 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token token-0 count-1 data)
-    (left admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal left) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self left)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self left) (pal left) (admin admin)
-    (counter counter))
-  (defstrand admission 4 (meas-self meas-0) (token token-0)
-    (count count-1) (self left) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))
-  (precedes ((1 0) (3 0)) ((2 3) (1 1)) ((3 1) (4 0)) ((3 3) (2 0))
-    ((4 1) (3 2)))
-  (non-orig (privk left) (privk admin) (privk counter))
-  (pen-non-orig (bltk left left))
-  (uniq-orig meas meas-0 token token-0 count-1)
-  (operation nonce-test (displaced 5 3 admission 4) meas-0 (2 0)
-    (enc "admit"
-      (enc "admitted" count-1 meas-0 (hash (bltk left right))
-        (privk admin)) (bltk left right) (pubk right))
-    (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-  (traces
-    ((send (enc "endpoint" left left meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((send (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((recv (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((recv (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count-1 token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas-0 (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((recv (enc "incr" token-0 (pubk counter)))
-      (send (enc "count" count-1 token-0 (privk counter)))))
-  (label 14)
-  (parent 10)
-  (unrealized (0 1) (2 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text)
-    (count count-0 token token-0 count-1 token-1 count-2 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self left) (pal right) (admin admin)
-    (counter counter))
-  (defstrand admission 4 (meas-self meas-0) (token token-0)
-    (count count-1) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas-0) (token token-1)
-    (count count-2) (self right) (pal left) (admin admin)
-    (counter counter))
-  (precedes ((1 0) (3 0)) ((1 0) (5 0)) ((2 3) (1 1)) ((3 1) (4 0))
-    ((3 3) (2 0)) ((4 1) (3 2)) ((5 3) (2 0)))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 token token-0 count-1 token-1)
-  (rule one-counter)
-  (operation nonce-test (added-strand admission 4) meas-0 (2 0)
-    (enc "admit"
-      (enc "admitted" count-1 meas-0 (hash (bltk left right))
-        (privk admin)) (bltk left right) (pubk right))
-    (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count-1 token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token-0 (pubk counter)))
-      (send (enc "count" count-1 token-0 (privk counter))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token-1 (pubk counter)))
-      (recv (enc "count" count-2 token-1 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-2 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right)))))
-  (label 15)
-  (parent 10)
-  (unrealized (0 1) (1 1) (2 0) (2 2) (5 2))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton provision
-  (vars (meas meas-0 text)
-    (count count-0 token token-0 token-1 count-1 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self right) (pal left) (admin admin) (counter counter))
-  (defstrand admission 4 (meas-self meas) (token token-1)
-    (count count-1) (self left) (pal right) (admin admin)
-    (counter counter))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))
-    ((3 1) (2 2)) ((4 3) (0 1)) ((5 3) (4 0)))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count-0 token token-0 token-1)
-  (rule one-counter)
-  (operation nonce-test (added-strand admission 4) meas (4 0)
-    (enc "endpoint" left right meas (pubk left) (pubk admin)))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-1 (pubk counter)))
-      (recv (enc "count" count-1 token-1 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left)))))
-  (label 16)
-  (parent 11)
-  (unrealized (0 1) (4 0) (4 2) (5 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token token-0 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self left) (pal right) (admin admin) (counter counter))
-  (defstrand counter 2 (t token-0) (n count) (k (pubk counter)))
-  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))
-    ((3 1) (2 2)) ((4 1) (5 0)) ((4 3) (0 1)) ((5 1) (4 2)))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count count-0 token token-0)
-  (operation encryption-test (added-strand counter 2)
-    (enc "count" count token-0 (privk counter)) (4 2))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((recv (enc "incr" token-0 (pubk counter)))
-      (send (enc "count" count token-0 (privk counter)))))
-  (label 17)
-  (parent 12)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((left left) (right right) (admin admin) (meas meas) (count count)
-        (meas-0 meas-0) (count-0 count-0))))
-  (origs (count (5 1)) (token-0 (4 1)) (count-0 (3 1)) (token (2 1))
-    (meas-0 (1 0)) (meas (0 0))))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token token-0 data)
-    (right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self right)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal right) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal right) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self right) (pal right) (admin admin) (counter counter))
-  (defstrand counter 2 (t token-0) (n count) (k (pubk counter)))
-  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))
-    ((3 1) (2 2)) ((4 1) (5 0)) ((4 3) (0 1)) ((5 1) (4 2)))
-  (non-orig (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk right right))
-  (uniq-orig meas meas-0 count count-0 token token-0)
-  (operation encryption-test (added-strand counter 2)
-    (enc "count" count token-0 (privk counter)) (4 2))
-  (traces
-    ((send (enc "endpoint" right right meas (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk right right))
-            (privk admin)) (bltk right right) (pubk right))))
-    ((send
-       (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk right right))
-            (privk admin)) (bltk right right) (pubk right))))
-    ((recv
-       (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk right right))
-            (privk admin)) (bltk right right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" right right meas (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk right right))
-            (privk admin)) (bltk right right) (pubk right))))
-    ((recv (enc "incr" token-0 (pubk counter)))
-      (send (enc "count" count token-0 (privk counter)))))
-  (label 18)
-  (parent 13)
-  (seen 17)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token token-0 count-1 data)
-    (left admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal left) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self left)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self left) (pal left) (admin admin)
-    (counter counter))
-  (defstrand admission 4 (meas-self meas-0) (token token-0)
-    (count count-1) (self left) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (precedes ((1 0) (3 0)) ((2 1) (5 0)) ((2 3) (1 1)) ((3 1) (4 0))
-    ((3 3) (2 0)) ((4 1) (3 2)) ((5 1) (2 2)))
-  (non-orig (privk left) (privk admin) (privk counter))
-  (pen-non-orig (bltk left left))
-  (uniq-orig meas meas-0 count-0 token token-0 count-1)
-  (operation encryption-test (added-strand counter 2)
-    (enc "count" count-0 token (privk counter)) (2 2))
-  (traces
-    ((send (enc "endpoint" left left meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((send (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((recv (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((recv (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count-1 token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas-0 (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((recv (enc "incr" token-0 (pubk counter)))
-      (send (enc "count" count-1 token-0 (privk counter))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter)))))
-  (label 19)
-  (parent 14)
-  (seen 21)
-  (unrealized (0 1))
-  (comment "4 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text)
-    (count count-0 token token-0 token-1 count-1 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self right) (pal left) (admin admin) (counter counter))
-  (defstrand admission 4 (meas-self meas) (token token-1)
-    (count count-1) (self left) (pal right) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token-1) (n count-1) (k (pubk counter)))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))
-    ((3 1) (2 2)) ((4 3) (0 1)) ((5 1) (6 0)) ((5 3) (4 0))
-    ((6 1) (5 2)))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count-0 token token-0 token-1 count-1)
-  (operation encryption-test (added-strand counter 2)
-    (enc "count" count-1 token-1 (privk counter)) (5 2))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-1 (pubk counter)))
-      (recv (enc "count" count-1 token-1 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((recv (enc "incr" token-1 (pubk counter)))
-      (send (enc "count" count-1 token-1 (privk counter)))))
-  (label 20)
-  (parent 16)
-  (seen 23)
-  (unrealized (0 1) (4 0) (4 2))
-  (comment "7 in cohort - 2 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text)
-    (count count-0 token token-0 count-1 token-1 data)
-    (left admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal left) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self left)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self left) (pal left) (admin admin)
-    (counter counter))
-  (defstrand admission 4 (meas-self meas-0) (token token-0)
-    (count count-1) (self left) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-1) (count count)
-    (self left) (pal left) (admin admin) (counter counter))
-  (precedes ((0 0) (6 0)) ((1 0) (3 0)) ((2 1) (5 0)) ((2 3) (1 1))
-    ((3 1) (4 0)) ((3 3) (2 0)) ((4 1) (3 2)) ((5 1) (2 2))
-    ((6 3) (0 1)))
-  (non-orig (privk left) (privk admin) (privk counter))
-  (pen-non-orig (bltk left left))
-  (uniq-orig meas meas-0 count-0 token token-0 count-1 token-1)
-  (rule one-counter)
-  (operation encryption-test (added-strand admission 4)
-    (enc "admitted" count meas (hash (bltk left left)) (privk admin))
-    (0 1))
-  (traces
-    ((send (enc "endpoint" left left meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((send (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((recv (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((recv (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count-1 token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas-0 (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((recv (enc "incr" token-0 (pubk counter)))
-      (send (enc "count" count-1 token-0 (privk counter))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" left left meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-1 (pubk counter)))
-      (recv (enc "count" count token-1 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left)))))
-  (label 21)
-  (parent 19)
-  (unrealized (6 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text)
-    (count count-0 token token-0 token-1 count-1 data)
-    (right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self right)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal right) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal right) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self right) (pal right) (admin admin) (counter counter))
-  (defstrand admission 4 (meas-self meas) (token token-1)
-    (count count-1) (self right) (pal right) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token-1) (n count-1) (k (pubk counter)))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))
-    ((3 1) (2 2)) ((4 3) (0 1)) ((5 1) (6 0)) ((5 3) (4 0))
-    ((6 1) (5 2)))
-  (non-orig (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk right right))
-  (uniq-orig meas meas-0 count-0 token token-0 token-1 count-1)
-  (operation nonce-test (displaced 7 5 admission 4) meas (4 0)
-    (enc "admit"
-      (enc "admitted" count-1 meas (hash (bltk left right))
-        (privk admin)) (bltk left right) (pubk left))
-    (enc "endpoint" left right meas (pubk left) (pubk admin)))
-  (traces
-    ((send (enc "endpoint" right right meas (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk right right))
-            (privk admin)) (bltk right right) (pubk right))))
-    ((send
-       (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk right right))
-            (privk admin)) (bltk right right) (pubk right))))
-    ((recv
-       (enc "endpoint" right right meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk right right))
-            (privk admin)) (bltk right right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" right right meas (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk right right))
-            (privk admin)) (bltk right right) (pubk right))))
-    ((recv (enc "endpoint" right right meas (pubk right) (pubk admin)))
-      (send (enc "incr" token-1 (pubk counter)))
-      (recv (enc "count" count-1 token-1 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas (hash (bltk right right))
-            (privk admin)) (bltk right right) (pubk right))))
-    ((recv (enc "incr" token-1 (pubk counter)))
-      (send (enc "count" count-1 token-1 (privk counter)))))
-  (label 22)
-  (parent 20)
-  (seen 24)
-  (unrealized (4 2))
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text)
-    (count count-0 token token-0 token-1 count-1 token-2 count-2 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self right) (pal left) (admin admin) (counter counter))
-  (defstrand admission 4 (meas-self meas) (token token-1)
-    (count count-1) (self left) (pal right) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token-1) (n count-1) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-2)
-    (count count-2) (self left) (pal right) (admin admin)
-    (counter counter))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((2 1) (3 0))
-    ((2 3) (1 1)) ((3 1) (2 2)) ((4 3) (0 1)) ((5 1) (6 0))
-    ((5 3) (4 0)) ((6 1) (5 2)) ((7 3) (4 0)))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count-0 token token-0 token-1 count-1 token-2)
-  (rule one-counter)
-  (operation nonce-test (added-strand admission 4) meas (4 0)
-    (enc "admit"
-      (enc "admitted" count-1 meas (hash (bltk left right))
-        (privk admin)) (bltk left right) (pubk left))
-    (enc "endpoint" left right meas (pubk left) (pubk admin)))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-1 (pubk counter)))
-      (recv (enc "count" count-1 token-1 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((recv (enc "incr" token-1 (pubk counter)))
-      (send (enc "count" count-1 token-1 (privk counter))))
-    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-2 (pubk counter)))
-      (recv (enc "count" count-2 token-2 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-2 meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left)))))
-  (label 23)
-  (parent 20)
-  (unrealized (0 1) (4 0) (4 2) (7 2))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton provision
-  (vars (meas meas-0 text)
-    (count count-0 token token-0 count-1 token-1 data)
-    (left admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal left) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self left)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self left) (pal left) (admin admin)
-    (counter counter))
-  (defstrand admission 4 (meas-self meas-0) (token token-0)
-    (count count-1) (self left) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-1) (count count)
-    (self left) (pal left) (admin admin) (counter counter))
-  (defstrand counter 2 (t token-1) (n count) (k (pubk counter)))
-  (precedes ((0 0) (6 0)) ((1 0) (3 0)) ((2 1) (5 0)) ((2 3) (1 1))
-    ((3 1) (4 0)) ((3 3) (2 0)) ((4 1) (3 2)) ((5 1) (2 2))
-    ((6 1) (7 0)) ((6 3) (0 1)) ((7 1) (6 2)))
-  (non-orig (privk left) (privk admin) (privk counter))
-  (pen-non-orig (bltk left left))
-  (uniq-orig meas meas-0 count count-0 token token-0 count-1 token-1)
-  (operation encryption-test (added-strand counter 2)
-    (enc "count" count token-1 (privk counter)) (6 2))
-  (traces
-    ((send (enc "endpoint" left left meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((send (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((recv (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((recv (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count-1 token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas-0 (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((recv (enc "incr" token-0 (pubk counter)))
-      (send (enc "count" count-1 token-0 (privk counter))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" left left meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-1 (pubk counter)))
-      (recv (enc "count" count token-1 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((recv (enc "incr" token-1 (pubk counter)))
-      (send (enc "count" count token-1 (privk counter)))))
-  (label 24)
-  (parent 21)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text)
-    (count count-0 token token-0 count-1 token-1 data)
-    (left admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal left) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self left)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self left) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-1) (count count)
-    (self left) (pal left) (admin admin) (counter counter))
-  (defstrand counter 2 (t token-1) (n count) (k (pubk counter)))
-  (precedes ((0 0) (5 0)) ((1 0) (3 0)) ((2 1) (4 0)) ((2 3) (1 1))
-    ((3 1) (2 0)) ((4 1) (2 2)) ((5 1) (6 0)) ((5 3) (0 1))
-    ((6 1) (5 2)))
-  (non-orig (privk left) (privk admin) (privk counter))
-  (pen-non-orig (bltk left left))
-  (uniq-orig meas meas-0 count count-0 token count-1 token-1)
-  (operation generalization deleted (3 0))
-  (traces
-    ((send (enc "endpoint" left left meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((send (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((recv (enc "endpoint" left left meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((recv (enc "incr" token-0 (pubk counter)))
-      (send (enc "count" count-1 token-0 (privk counter))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" left left meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-1 (pubk counter)))
-      (recv (enc "count" count token-1 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left left))
-            (privk admin)) (bltk left left) (pubk left))))
-    ((recv (enc "incr" token-1 (pubk counter)))
-      (send (enc "count" count token-1 (privk counter)))))
-  (label 25)
-  (parent 24)
-  (seen 18)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(comment "Nothing left to do")
-
-(defprotocol provision diffie-hellman
-  (defrole supplicant
-    (vars (self pal admin name) (meas text) (count data))
-    (trace
-      (send (enc "endpoint" self pal meas (pubk self) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk self pal))
-            (privk admin)) (bltk self pal) (pubk self))))
-    (uniq-orig meas))
-  (defrole admission
-    (vars (self pal admin counter name) (meas-self text)
-      (token count data))
-    (trace
-      (recv
-        (enc "endpoint" self pal meas-self (pubk self) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas-self (hash (bltk self pal))
-            (privk admin)) (bltk self pal) (pubk self))))
-    (non-orig (privk counter))
-    (uniq-orig token))
-  (defrole counter
-    (vars (t n data) (k akey))
-    (trace (recv (enc "incr" t k)) (send (enc "count" n t (invk k))))
-    (uniq-orig n))
-  (defrule one-counter
-    (forall ((z w strd) (counter1 counter2 name))
-      (implies
-        (and (p "admission" z 2) (p "admission" "counter" z counter1)
-          (p "admission" w 2) (p "admission" "counter" w counter2))
-        (= counter1 counter2)))))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 data) (left right admin name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (neq (left right))
-  (non-orig (privk left) (privk right) (privk admin))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0)
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right)))))
-  (label 26)
-  (unrealized (0 1) (1 1))
-  (origs (meas-0 (1 0)) (meas (0 0)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self left) (pal right) (admin admin)
-    (counter counter))
-  (precedes ((1 0) (2 0)) ((2 3) (1 1)))
-  (neq (left right))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 token)
-  (operation encryption-test (added-strand admission 4)
-    (enc "admitted" count-0 meas-0 (hash (bltk left right))
-      (privk admin)) (1 1))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left)))))
-  (label 27)
-  (parent 26)
-  (seen 29)
-  (unrealized (0 1) (1 1) (2 0) (2 2))
-  (comment "2 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (precedes ((1 0) (2 0)) ((2 3) (1 1)))
-  (neq (left right))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 token)
-  (operation encryption-test (added-strand admission 4)
-    (enc "admitted" count-0 meas-0 (hash (bltk left right))
-      (privk admin)) (1 1))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right)))))
-  (label 28)
-  (parent 26)
-  (unrealized (0 1) (2 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token token-0 count-1 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self left) (pal right) (admin admin)
-    (counter counter))
-  (defstrand admission 4 (meas-self meas-0) (token token-0)
-    (count count-1) (self right) (pal left) (admin admin)
-    (counter counter))
-  (precedes ((1 0) (3 0)) ((2 3) (1 1)) ((3 3) (2 0)))
-  (neq (left right))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 token token-0)
-  (rule one-counter)
-  (operation nonce-test (added-strand admission 4) meas-0 (2 0)
-    (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count-1 token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right)))))
-  (label 29)
-  (parent 27)
-  (unrealized (0 1) (1 1) (2 0) (2 2) (3 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (precedes ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1)) ((3 1) (2 2)))
-  (neq (left right))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count-0 token)
-  (operation encryption-test (added-strand counter 2)
-    (enc "count" count-0 token (privk counter)) (2 2))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter)))))
-  (label 30)
-  (parent 28)
-  (seen 32 33)
-  (unrealized (0 1))
-  (comment "4 in cohort - 2 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token token-0 count-1 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self left) (pal right) (admin admin)
-    (counter counter))
-  (defstrand admission 4 (meas-self meas-0) (token token-0)
-    (count count-1) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))
-  (precedes ((1 0) (3 0)) ((2 3) (1 1)) ((3 1) (4 0)) ((3 3) (2 0))
-    ((4 1) (3 2)))
-  (neq (left right))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 token token-0 count-1)
-  (operation encryption-test (added-strand counter 2)
-    (enc "count" count-1 token-0 (privk counter)) (3 2))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count-1 token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token-0 (pubk counter)))
-      (send (enc "count" count-1 token-0 (privk counter)))))
-  (label 31)
-  (parent 29)
-  (seen 34)
-  (unrealized (0 1) (1 1) (2 0) (2 2))
-  (comment "4 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token token-0 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self right) (pal left) (admin admin) (counter counter))
-  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))
-    ((3 1) (2 2)) ((4 3) (0 1)))
-  (neq (left right))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count-0 token token-0)
-  (rule one-counter)
-  (operation encryption-test (added-strand admission 4)
-    (enc "admitted" count meas (hash (bltk left right)) (privk admin))
-    (0 1))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right)))))
-  (label 32)
-  (parent 30)
-  (seen 35)
-  (unrealized (0 1) (4 0) (4 2))
-  (comment "4 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token token-0 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self left) (pal right) (admin admin) (counter counter))
-  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))
-    ((3 1) (2 2)) ((4 3) (0 1)))
-  (neq (left right))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count-0 token token-0)
-  (rule one-counter)
-  (operation encryption-test (added-strand admission 4)
-    (enc "admitted" count meas (hash (bltk left right)) (privk admin))
-    (0 1))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left)))))
-  (label 33)
-  (parent 30)
-  (unrealized (4 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text)
-    (count count-0 token token-0 count-1 token-1 count-2 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self left) (pal right) (admin admin)
-    (counter counter))
-  (defstrand admission 4 (meas-self meas-0) (token token-0)
-    (count count-1) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas-0) (token token-1)
-    (count count-2) (self right) (pal left) (admin admin)
-    (counter counter))
-  (precedes ((1 0) (3 0)) ((1 0) (5 0)) ((2 3) (1 1)) ((3 1) (4 0))
-    ((3 3) (2 0)) ((4 1) (3 2)) ((5 3) (2 0)))
-  (neq (left right))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 token token-0 count-1 token-1)
-  (rule one-counter)
-  (operation nonce-test (added-strand admission 4) meas-0 (2 0)
-    (enc "admit"
-      (enc "admitted" count-1 meas-0 (hash (bltk left right))
-        (privk admin)) (bltk left right) (pubk right))
-    (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count-1 token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token-0 (pubk counter)))
-      (send (enc "count" count-1 token-0 (privk counter))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token-1 (pubk counter)))
-      (recv (enc "count" count-2 token-1 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-2 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right)))))
-  (label 34)
-  (parent 31)
-  (unrealized (0 1) (1 1) (2 0) (2 2) (5 2))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton provision
-  (vars (meas meas-0 text)
-    (count count-0 token token-0 token-1 count-1 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self right) (pal left) (admin admin) (counter counter))
-  (defstrand admission 4 (meas-self meas) (token token-1)
-    (count count-1) (self left) (pal right) (admin admin)
-    (counter counter))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))
-    ((3 1) (2 2)) ((4 3) (0 1)) ((5 3) (4 0)))
-  (neq (left right))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count-0 token token-0 token-1)
-  (rule one-counter)
-  (operation nonce-test (added-strand admission 4) meas (4 0)
-    (enc "endpoint" left right meas (pubk left) (pubk admin)))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-1 (pubk counter)))
-      (recv (enc "count" count-1 token-1 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left)))))
-  (label 35)
-  (parent 32)
-  (unrealized (0 1) (4 0) (4 2) (5 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token token-0 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self left) (pal right) (admin admin) (counter counter))
-  (defstrand counter 2 (t token-0) (n count) (k (pubk counter)))
-  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))
-    ((3 1) (2 2)) ((4 1) (5 0)) ((4 3) (0 1)) ((5 1) (4 2)))
-  (neq (left right))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count count-0 token token-0)
-  (operation encryption-test (added-strand counter 2)
-    (enc "count" count token-0 (privk counter)) (4 2))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((recv (enc "incr" token-0 (pubk counter)))
-      (send (enc "count" count token-0 (privk counter)))))
-  (label 36)
-  (parent 33)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((left left) (right right) (admin admin) (meas meas) (count count)
-        (meas-0 meas-0) (count-0 count-0))))
-  (origs (count (5 1)) (token-0 (4 1)) (count-0 (3 1)) (token (2 1))
-    (meas-0 (1 0)) (meas (0 0))))
-
-(defskeleton provision
-  (vars (meas meas-0 text)
-    (count count-0 token token-0 token-1 count-1 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self right) (pal left) (admin admin) (counter counter))
-  (defstrand admission 4 (meas-self meas) (token token-1)
-    (count count-1) (self left) (pal right) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token-1) (n count-1) (k (pubk counter)))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))
-    ((3 1) (2 2)) ((4 3) (0 1)) ((5 1) (6 0)) ((5 3) (4 0))
-    ((6 1) (5 2)))
-  (neq (left right))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count-0 token token-0 token-1 count-1)
-  (operation encryption-test (added-strand counter 2)
-    (enc "count" count-1 token-1 (privk counter)) (5 2))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-1 (pubk counter)))
-      (recv (enc "count" count-1 token-1 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((recv (enc "incr" token-1 (pubk counter)))
-      (send (enc "count" count-1 token-1 (privk counter)))))
-  (label 37)
-  (parent 35)
-  (seen 38)
-  (unrealized (0 1) (4 0) (4 2))
-  (comment "6 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text)
-    (count count-0 token token-0 token-1 count-1 token-2 count-2 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self right) (pal left) (admin admin) (counter counter))
-  (defstrand admission 4 (meas-self meas) (token token-1)
-    (count count-1) (self left) (pal right) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token-1) (n count-1) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-2)
-    (count count-2) (self left) (pal right) (admin admin)
-    (counter counter))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((2 1) (3 0))
-    ((2 3) (1 1)) ((3 1) (2 2)) ((4 3) (0 1)) ((5 1) (6 0))
-    ((5 3) (4 0)) ((6 1) (5 2)) ((7 3) (4 0)))
-  (neq (left right))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count-0 token token-0 token-1 count-1 token-2)
-  (rule one-counter)
-  (operation nonce-test (added-strand admission 4) meas (4 0)
-    (enc "admit"
-      (enc "admitted" count-1 meas (hash (bltk left right))
-        (privk admin)) (bltk left right) (pubk left))
-    (enc "endpoint" left right meas (pubk left) (pubk admin)))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-1 (pubk counter)))
-      (recv (enc "count" count-1 token-1 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((recv (enc "incr" token-1 (pubk counter)))
-      (send (enc "count" count-1 token-1 (privk counter))))
-    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-2 (pubk counter)))
-      (recv (enc "count" count-2 token-2 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-2 meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left)))))
-  (label 38)
-  (parent 37)
-  (unrealized (0 1) (4 0) (4 2) (7 2))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol provision diffie-hellman
-  (defrole supplicant
-    (vars (self pal admin name) (meas text) (count data))
-    (trace
-      (send (enc "endpoint" self pal meas (pubk self) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk self pal))
-            (privk admin)) (bltk self pal) (pubk self))))
-    (uniq-orig meas))
-  (defrole admission
-    (vars (self pal admin counter name) (meas-self text)
-      (token count data))
-    (trace
-      (recv
-        (enc "endpoint" self pal meas-self (pubk self) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas-self (hash (bltk self pal))
-            (privk admin)) (bltk self pal) (pubk self))))
-    (non-orig (privk counter))
-    (uniq-orig token))
-  (defrole counter
-    (vars (t n data) (k akey))
-    (trace (recv (enc "incr" t k)) (send (enc "count" n t (invk k))))
-    (uniq-orig n))
-  (defrule one-counter
-    (forall ((z w strd) (counter1 counter2 name))
-      (implies
-        (and (p "admission" z 2) (p "admission" "counter" z counter1)
-          (p "admission" w 2) (p "admission" "counter" w counter2))
-        (= counter1 counter2)))))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 data) (left right admin name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (neq (left right) (right left))
-  (non-orig (privk left) (privk right) (privk admin))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0)
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right)))))
-  (label 39)
-  (unrealized (0 1) (1 1))
-  (origs (meas-0 (1 0)) (meas (0 0)))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self left) (pal right) (admin admin)
-    (counter counter))
-  (precedes ((1 0) (2 0)) ((2 3) (1 1)))
-  (neq (left right) (right left))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 token)
-  (operation encryption-test (added-strand admission 4)
-    (enc "admitted" count-0 meas-0 (hash (bltk left right))
-      (privk admin)) (1 1))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left)))))
-  (label 40)
-  (parent 39)
-  (seen 42)
-  (unrealized (0 1) (1 1) (2 0) (2 2))
-  (comment "2 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (precedes ((1 0) (2 0)) ((2 3) (1 1)))
-  (neq (left right) (right left))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 token)
-  (operation encryption-test (added-strand admission 4)
-    (enc "admitted" count-0 meas-0 (hash (bltk left right))
-      (privk admin)) (1 1))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right)))))
-  (label 41)
-  (parent 39)
-  (unrealized (0 1) (2 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token token-0 count-1 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self left) (pal right) (admin admin)
-    (counter counter))
-  (defstrand admission 4 (meas-self meas-0) (token token-0)
-    (count count-1) (self right) (pal left) (admin admin)
-    (counter counter))
-  (precedes ((1 0) (3 0)) ((2 3) (1 1)) ((3 3) (2 0)))
-  (neq (left right) (right left))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 token token-0)
-  (rule one-counter)
-  (operation nonce-test (added-strand admission 4) meas-0 (2 0)
-    (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count-1 token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right)))))
-  (label 42)
-  (parent 40)
-  (unrealized (0 1) (1 1) (2 0) (2 2) (3 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (precedes ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1)) ((3 1) (2 2)))
-  (neq (left right) (right left))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count-0 token)
-  (operation encryption-test (added-strand counter 2)
-    (enc "count" count-0 token (privk counter)) (2 2))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter)))))
-  (label 43)
-  (parent 41)
-  (seen 45 46)
-  (unrealized (0 1))
-  (comment "4 in cohort - 2 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token token-0 count-1 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self left) (pal right) (admin admin)
-    (counter counter))
-  (defstrand admission 4 (meas-self meas-0) (token token-0)
-    (count count-1) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))
-  (precedes ((1 0) (3 0)) ((2 3) (1 1)) ((3 1) (4 0)) ((3 3) (2 0))
-    ((4 1) (3 2)))
-  (neq (left right) (right left))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 token token-0 count-1)
-  (operation encryption-test (added-strand counter 2)
-    (enc "count" count-1 token-0 (privk counter)) (3 2))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count-1 token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token-0 (pubk counter)))
-      (send (enc "count" count-1 token-0 (privk counter)))))
-  (label 44)
-  (parent 42)
-  (seen 47)
-  (unrealized (0 1) (1 1) (2 0) (2 2))
-  (comment "4 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token token-0 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self right) (pal left) (admin admin) (counter counter))
-  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))
-    ((3 1) (2 2)) ((4 3) (0 1)))
-  (neq (left right) (right left))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count-0 token token-0)
-  (rule one-counter)
-  (operation encryption-test (added-strand admission 4)
-    (enc "admitted" count meas (hash (bltk left right)) (privk admin))
-    (0 1))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right)))))
-  (label 45)
-  (parent 43)
-  (seen 48)
-  (unrealized (0 1) (4 0) (4 2))
-  (comment "4 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token token-0 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self left) (pal right) (admin admin) (counter counter))
-  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))
-    ((3 1) (2 2)) ((4 3) (0 1)))
-  (neq (left right) (right left))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count-0 token token-0)
-  (rule one-counter)
-  (operation encryption-test (added-strand admission 4)
-    (enc "admitted" count meas (hash (bltk left right)) (privk admin))
-    (0 1))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left)))))
-  (label 46)
-  (parent 43)
-  (unrealized (4 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text)
-    (count count-0 token token-0 count-1 token-1 count-2 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self left) (pal right) (admin admin)
-    (counter counter))
-  (defstrand admission 4 (meas-self meas-0) (token token-0)
-    (count count-1) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token-0) (n count-1) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas-0) (token token-1)
-    (count count-2) (self right) (pal left) (admin admin)
-    (counter counter))
-  (precedes ((1 0) (3 0)) ((1 0) (5 0)) ((2 3) (1 1)) ((3 1) (4 0))
-    ((3 3) (2 0)) ((4 1) (3 2)) ((5 3) (2 0)))
-  (neq (left right) (right left))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 token token-0 count-1 token-1)
-  (rule one-counter)
-  (operation nonce-test (added-strand admission 4) meas-0 (2 0)
-    (enc "admit"
-      (enc "admitted" count-1 meas-0 (hash (bltk left right))
-        (privk admin)) (bltk left right) (pubk right))
-    (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas-0 (pubk left) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count-1 token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token-0 (pubk counter)))
-      (send (enc "count" count-1 token-0 (privk counter))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token-1 (pubk counter)))
-      (recv (enc "count" count-2 token-1 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-2 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right)))))
-  (label 47)
-  (parent 44)
-  (unrealized (0 1) (1 1) (2 0) (2 2) (5 2))
-  (dead)
-  (comment "empty cohort"))
-
-(defskeleton provision
-  (vars (meas meas-0 text)
-    (count count-0 token token-0 token-1 count-1 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self right) (pal left) (admin admin) (counter counter))
-  (defstrand admission 4 (meas-self meas) (token token-1)
-    (count count-1) (self left) (pal right) (admin admin)
-    (counter counter))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))
-    ((3 1) (2 2)) ((4 3) (0 1)) ((5 3) (4 0)))
-  (neq (left right) (right left))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count-0 token token-0 token-1)
-  (rule one-counter)
-  (operation nonce-test (added-strand admission 4) meas (4 0)
-    (enc "endpoint" left right meas (pubk left) (pubk admin)))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-1 (pubk counter)))
-      (recv (enc "count" count-1 token-1 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left)))))
-  (label 48)
-  (parent 45)
-  (unrealized (0 1) (4 0) (4 2) (5 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text) (count count-0 token token-0 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self left) (pal right) (admin admin) (counter counter))
-  (defstrand counter 2 (t token-0) (n count) (k (pubk counter)))
-  (precedes ((0 0) (4 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))
-    ((3 1) (2 2)) ((4 1) (5 0)) ((4 3) (0 1)) ((5 1) (4 2)))
-  (neq (left right) (right left))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count count-0 token token-0)
-  (operation encryption-test (added-strand counter 2)
-    (enc "count" count token-0 (privk counter)) (4 2))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((recv (enc "incr" token-0 (pubk counter)))
-      (send (enc "count" count token-0 (privk counter)))))
-  (label 49)
-  (parent 46)
-  (unrealized)
-  (shape)
-  (maps
-    ((0 1)
-      ((left left) (right right) (admin admin) (meas meas) (count count)
-        (meas-0 meas-0) (count-0 count-0))))
-  (origs (count (5 1)) (token-0 (4 1)) (count-0 (3 1)) (token (2 1))
-    (meas-0 (1 0)) (meas (0 0))))
-
-(defskeleton provision
-  (vars (meas meas-0 text)
-    (count count-0 token token-0 token-1 count-1 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self right) (pal left) (admin admin) (counter counter))
-  (defstrand admission 4 (meas-self meas) (token token-1)
-    (count count-1) (self left) (pal right) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token-1) (n count-1) (k (pubk counter)))
-  (precedes ((0 0) (5 0)) ((1 0) (2 0)) ((2 1) (3 0)) ((2 3) (1 1))
-    ((3 1) (2 2)) ((4 3) (0 1)) ((5 1) (6 0)) ((5 3) (4 0))
-    ((6 1) (5 2)))
-  (neq (left right) (right left))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count-0 token token-0 token-1 count-1)
-  (operation encryption-test (added-strand counter 2)
-    (enc "count" count-1 token-1 (privk counter)) (5 2))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-1 (pubk counter)))
-      (recv (enc "count" count-1 token-1 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((recv (enc "incr" token-1 (pubk counter)))
-      (send (enc "count" count-1 token-1 (privk counter)))))
-  (label 50)
-  (parent 48)
-  (seen 51)
-  (unrealized (0 1) (4 0) (4 2))
-  (comment "6 in cohort - 1 not yet seen"))
-
-(defskeleton provision
-  (vars (meas meas-0 text)
-    (count count-0 token token-0 token-1 count-1 token-2 count-2 data)
-    (left right admin counter name))
-  (defstrand supplicant 2 (meas meas) (count count) (self left)
-    (pal right) (admin admin))
-  (defstrand supplicant 2 (meas meas-0) (count count-0) (self right)
-    (pal left) (admin admin))
-  (defstrand admission 4 (meas-self meas-0) (token token)
-    (count count-0) (self right) (pal left) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token) (n count-0) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-0) (count count)
-    (self right) (pal left) (admin admin) (counter counter))
-  (defstrand admission 4 (meas-self meas) (token token-1)
-    (count count-1) (self left) (pal right) (admin admin)
-    (counter counter))
-  (defstrand counter 2 (t token-1) (n count-1) (k (pubk counter)))
-  (defstrand admission 4 (meas-self meas) (token token-2)
-    (count count-2) (self left) (pal right) (admin admin)
-    (counter counter))
-  (precedes ((0 0) (5 0)) ((0 0) (7 0)) ((1 0) (2 0)) ((2 1) (3 0))
-    ((2 3) (1 1)) ((3 1) (2 2)) ((4 3) (0 1)) ((5 1) (6 0))
-    ((5 3) (4 0)) ((6 1) (5 2)) ((7 3) (4 0)))
-  (neq (left right) (right left))
-  (non-orig (privk left) (privk right) (privk admin) (privk counter))
-  (pen-non-orig (bltk left right))
-  (uniq-orig meas meas-0 count-0 token token-0 token-1 count-1 token-2)
-  (rule one-counter)
-  (operation nonce-test (added-strand admission 4) meas (4 0)
-    (enc "admit"
-      (enc "admitted" count-1 meas (hash (bltk left right))
-        (privk admin)) (bltk left right) (pubk left))
-    (enc "endpoint" left right meas (pubk left) (pubk admin)))
-  (traces
-    ((send (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((send (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (recv
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" right left meas-0 (pubk right) (pubk admin)))
-      (send (enc "incr" token (pubk counter)))
-      (recv (enc "count" count-0 token (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-0 meas-0 (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "incr" token (pubk counter)))
-      (send (enc "count" count-0 token (privk counter))))
-    ((recv (enc "endpoint" right left meas (pubk right) (pubk admin)))
-      (send (enc "incr" token-0 (pubk counter)))
-      (recv (enc "count" count token-0 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk right))))
-    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-1 (pubk counter)))
-      (recv (enc "count" count-1 token-1 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-1 meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left))))
-    ((recv (enc "incr" token-1 (pubk counter)))
-      (send (enc "count" count-1 token-1 (privk counter))))
-    ((recv (enc "endpoint" left right meas (pubk left) (pubk admin)))
-      (send (enc "incr" token-2 (pubk counter)))
-      (recv (enc "count" count-2 token-2 (privk counter)))
-      (send
-        (enc "admit"
-          (enc "admitted" count-2 meas (hash (bltk left right))
-            (privk admin)) (bltk left right) (pubk left)))))
-  (label 51)
-  (parent 50)
-  (unrealized (0 1) (4 0) (4 2) (7 2))
-  (dead)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
diff --git a/tst/thisthat.scm b/tst/thisthat.scm
new file mode 100644
--- /dev/null
+++ b/tst/thisthat.scm
@@ -0,0 +1,31 @@
+(herald "Needham-Schroeder Public-Key Protocol This-That Variant")
+
+(defprotocol thisthat basic
+  (defrole init
+    (vars (a b name) (n1 n2 n3 text))
+    (trace
+     (send (enc n1 a (pubk b)))
+     (recv (cat (enc n1 n2 (pubk a)) (enc n1 n3 (pubk a))))
+     (recv (cat (enc "this" n2 (pubk b)) (enc "that" n3 (pubk b))))))
+  (defrole this
+    (vars (b a name) (n2 n1 text))
+    (trace
+     (recv (enc n1 a (pubk b)))
+     (send (enc n1 n2 (pubk a)))
+     (send (enc "this" n2 (pubk b))))
+    (uniq-orig n2))
+  (defrole that
+    (vars (b a name) (n3 n1 text))
+    (trace
+     (recv (enc n1 a (pubk b)))
+     (send (enc n1 n3 (pubk a)))
+     (send (enc "that" n3 (pubk b))))
+    (uniq-orig n3)))
+
+;;; The initiator point-of-view
+(defskeleton thisthat
+  (vars (a b name) (n1 text))
+  (defstrand init 3 (a a) (b b) (n1 n1))
+  (non-orig (privk b) (privk a))
+  (uniq-orig n1)
+  (comment "Initiator point-of-view"))
diff --git a/tst/thisthat.tst b/tst/thisthat.tst
new file mode 100644
--- /dev/null
+++ b/tst/thisthat.tst
@@ -0,0 +1,401 @@
+(herald "Needham-Schroeder Public-Key Protocol This-That Variant")
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/thisthat.scm")
+
+(defprotocol thisthat basic
+  (defrole init
+    (vars (a b name) (n1 n2 n3 text))
+    (trace (send (enc n1 a (pubk b)))
+      (recv (cat (enc n1 n2 (pubk a)) (enc n1 n3 (pubk a))))
+      (recv (cat (enc "this" n2 (pubk b)) (enc "that" n3 (pubk b))))))
+  (defrole this
+    (vars (b a name) (n2 n1 text))
+    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n2 (pubk a)))
+      (send (enc "this" n2 (pubk b))))
+    (uniq-orig n2))
+  (defrole that
+    (vars (b a name) (n3 n1 text))
+    (trace (recv (enc n1 a (pubk b))) (send (enc n1 n3 (pubk a)))
+      (send (enc "that" n3 (pubk b))))
+    (uniq-orig n3))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton thisthat
+  (vars (n1 n2 n3 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (n3 n3) (a a) (b b))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1)
+  (comment "Initiator point-of-view")
+  (traces
+    ((send (enc n1 a (pubk b)))
+      (recv (cat (enc n1 n2 (pubk a)) (enc n1 n3 (pubk a))))
+      (recv (cat (enc "this" n2 (pubk b)) (enc "that" n3 (pubk b))))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (n1 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton thisthat
+  (vars (n1 n2 n3 n3-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (n3 n3) (a a) (b b))
+  (defstrand that 2 (n3 n3-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n3-0)
+  (operation nonce-test (added-strand that 2) n1 (0 1)
+    (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b)))
+      (recv (cat (enc n1 n2 (pubk a)) (enc n1 n3 (pubk a))))
+      (recv (cat (enc "this" n2 (pubk b)) (enc "that" n3 (pubk b)))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3-0 (pubk a)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton thisthat
+  (vars (n1 n2 n3 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (n3 n3) (a a) (b b))
+  (defstrand that 2 (n3 n3) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n3)
+  (operation nonce-test (contracted (n3-0 n3)) n1 (0 1)
+    (enc n1 n3 (pubk a)) (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b)))
+      (recv (cat (enc n1 n2 (pubk a)) (enc n1 n3 (pubk a))))
+      (recv (cat (enc "this" n2 (pubk b)) (enc "that" n3 (pubk b)))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3 (pubk a)))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 1) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton thisthat
+  (vars (n1 n3 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n3) (n3 n3) (a a) (b b))
+  (defstrand that 2 (n3 n3) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n3)
+  (operation nonce-test (contracted (n2 n3)) n1 (0 1)
+    (enc n1 n3 (pubk a)) (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b)))
+      (recv (cat (enc n1 n3 (pubk a)) (enc n1 n3 (pubk a))))
+      (recv (cat (enc "this" n3 (pubk b)) (enc "that" n3 (pubk b)))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3 (pubk a)))))
+  (label 3)
+  (parent 2)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton thisthat
+  (vars (n1 n2 n3 n3-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n2) (n3 n3) (a a) (b b))
+  (defstrand that 2 (n3 n3) (n1 n1) (b b) (a a))
+  (defstrand that 2 (n3 n3-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n3 n3-0)
+  (operation nonce-test (added-strand that 2) n1 (0 1)
+    (enc n1 n3 (pubk a)) (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b)))
+      (recv (cat (enc n1 n2 (pubk a)) (enc n1 n3 (pubk a))))
+      (recv (cat (enc "this" n2 (pubk b)) (enc "that" n3 (pubk b)))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3 (pubk a))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3-0 (pubk a)))))
+  (label 4)
+  (parent 2)
+  (unrealized (0 1) (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton thisthat
+  (vars (n1 n3 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n3) (n3 n3) (a a) (b b))
+  (defstrand this 3 (n2 n3) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n3)
+  (operation nonce-test (displaced 1 2 this 3) n3 (0 2)
+    (enc n1 n3 (pubk a)))
+  (traces
+    ((send (enc n1 a (pubk b)))
+      (recv (cat (enc n1 n3 (pubk a)) (enc n1 n3 (pubk a))))
+      (recv (cat (enc "this" n3 (pubk b)) (enc "that" n3 (pubk b)))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3 (pubk a)))
+      (send (enc "this" n3 (pubk b)))))
+  (label 5)
+  (parent 3)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton thisthat
+  (vars (n1 n3 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n3) (n3 n3) (a a) (b b))
+  (defstrand that 3 (n3 n3) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)) ((1 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n3)
+  (operation nonce-test (displaced 1 2 that 3) n3 (0 2)
+    (enc n1 n3 (pubk a)))
+  (traces
+    ((send (enc n1 a (pubk b)))
+      (recv (cat (enc n1 n3 (pubk a)) (enc n1 n3 (pubk a))))
+      (recv (cat (enc "this" n3 (pubk b)) (enc "that" n3 (pubk b)))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3 (pubk a)))
+      (send (enc "that" n3 (pubk b)))))
+  (label 6)
+  (parent 3)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton thisthat
+  (vars (n1 n3 n3-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n3) (n3 n3) (a a) (b b))
+  (defstrand that 2 (n3 n3) (n1 n1) (b b) (a a))
+  (defstrand that 2 (n3 n3-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n3 n3-0)
+  (operation nonce-test (contracted (n2 n3)) n1 (0 1)
+    (enc n1 n3 (pubk a)) (enc n1 n3-0 (pubk a)) (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b)))
+      (recv (cat (enc n1 n3 (pubk a)) (enc n1 n3 (pubk a))))
+      (recv (cat (enc "this" n3 (pubk b)) (enc "that" n3 (pubk b)))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3 (pubk a))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3-0 (pubk a)))))
+  (label 7)
+  (parent 4)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton thisthat
+  (vars (n1 n3 n3-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n3-0) (n3 n3) (a a) (b b))
+  (defstrand that 2 (n3 n3) (n1 n1) (b b) (a a))
+  (defstrand that 2 (n3 n3-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n3 n3-0)
+  (operation nonce-test (contracted (n2 n3-0)) n1 (0 1)
+    (enc n1 n3 (pubk a)) (enc n1 n3-0 (pubk a)) (enc n1 a (pubk b)))
+  (traces
+    ((send (enc n1 a (pubk b)))
+      (recv (cat (enc n1 n3-0 (pubk a)) (enc n1 n3 (pubk a))))
+      (recv (cat (enc "this" n3-0 (pubk b)) (enc "that" n3 (pubk b)))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3 (pubk a))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3-0 (pubk a)))))
+  (label 8)
+  (parent 4)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton thisthat
+  (vars (n1 n3 n3-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n3) (n3 n3) (a a) (b b))
+  (defstrand that 2 (n3 n3-0) (n1 n1) (b b) (a a))
+  (defstrand this 3 (n2 n3) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((2 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n3 n3-0)
+  (operation nonce-test (displaced 1 3 this 3) n3 (0 2)
+    (enc n1 n3 (pubk a)))
+  (traces
+    ((send (enc n1 a (pubk b)))
+      (recv (cat (enc n1 n3 (pubk a)) (enc n1 n3 (pubk a))))
+      (recv (cat (enc "this" n3 (pubk b)) (enc "that" n3 (pubk b)))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3-0 (pubk a))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3 (pubk a)))
+      (send (enc "this" n3 (pubk b)))))
+  (label 9)
+  (parent 7)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton thisthat
+  (vars (n1 n3 n3-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n3) (n3 n3) (a a) (b b))
+  (defstrand that 2 (n3 n3-0) (n1 n1) (b b) (a a))
+  (defstrand that 3 (n3 n3) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((2 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n3 n3-0)
+  (operation nonce-test (displaced 1 3 that 3) n3 (0 2)
+    (enc n1 n3 (pubk a)))
+  (traces
+    ((send (enc n1 a (pubk b)))
+      (recv (cat (enc n1 n3 (pubk a)) (enc n1 n3 (pubk a))))
+      (recv (cat (enc "this" n3 (pubk b)) (enc "that" n3 (pubk b)))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3-0 (pubk a))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3 (pubk a)))
+      (send (enc "that" n3 (pubk b)))))
+  (label 10)
+  (parent 7)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton thisthat
+  (vars (n1 n3 n3-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n3-0) (n3 n3) (a a) (b b))
+  (defstrand that 2 (n3 n3-0) (n1 n1) (b b) (a a))
+  (defstrand this 3 (n2 n3) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((2 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n3 n3-0)
+  (operation nonce-test (displaced 1 3 this 3) n3 (0 2)
+    (enc n1 n3 (pubk a)))
+  (traces
+    ((send (enc n1 a (pubk b)))
+      (recv (cat (enc n1 n3-0 (pubk a)) (enc n1 n3 (pubk a))))
+      (recv (cat (enc "this" n3-0 (pubk b)) (enc "that" n3 (pubk b)))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3-0 (pubk a))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3 (pubk a)))
+      (send (enc "this" n3 (pubk b)))))
+  (label 11)
+  (parent 8)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton thisthat
+  (vars (n1 n3 n3-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n3-0) (n3 n3) (a a) (b b))
+  (defstrand that 2 (n3 n3-0) (n1 n1) (b b) (a a))
+  (defstrand that 3 (n3 n3) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((2 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n3 n3-0)
+  (operation nonce-test (displaced 1 3 that 3) n3 (0 2)
+    (enc n1 n3 (pubk a)))
+  (traces
+    ((send (enc n1 a (pubk b)))
+      (recv (cat (enc n1 n3-0 (pubk a)) (enc n1 n3 (pubk a))))
+      (recv (cat (enc "this" n3-0 (pubk b)) (enc "that" n3 (pubk b)))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3-0 (pubk a))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3 (pubk a)))
+      (send (enc "that" n3 (pubk b)))))
+  (label 12)
+  (parent 8)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton thisthat
+  (vars (n1 n3 n3-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n3-0) (n3 n3) (a a) (b b))
+  (defstrand this 3 (n2 n3) (n1 n1) (b b) (a a))
+  (defstrand this 3 (n2 n3-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((1 2) (0 2))
+    ((2 1) (0 1)) ((2 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n3 n3-0)
+  (operation nonce-test (displaced 1 3 this 3) n3-0 (0 2)
+    (enc n1 n3-0 (pubk a)))
+  (traces
+    ((send (enc n1 a (pubk b)))
+      (recv (cat (enc n1 n3-0 (pubk a)) (enc n1 n3 (pubk a))))
+      (recv (cat (enc "this" n3-0 (pubk b)) (enc "that" n3 (pubk b)))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3 (pubk a)))
+      (send (enc "this" n3 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3-0 (pubk a)))
+      (send (enc "this" n3-0 (pubk b)))))
+  (label 13)
+  (parent 11)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton thisthat
+  (vars (n1 n3 n3-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n3-0) (n3 n3) (a a) (b b))
+  (defstrand this 3 (n2 n3) (n1 n1) (b b) (a a))
+  (defstrand that 3 (n3 n3-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((1 2) (0 2))
+    ((2 1) (0 1)) ((2 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n3 n3-0)
+  (operation nonce-test (displaced 1 3 that 3) n3-0 (0 2)
+    (enc n1 n3-0 (pubk a)))
+  (traces
+    ((send (enc n1 a (pubk b)))
+      (recv (cat (enc n1 n3-0 (pubk a)) (enc n1 n3 (pubk a))))
+      (recv (cat (enc "this" n3-0 (pubk b)) (enc "that" n3 (pubk b)))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3 (pubk a)))
+      (send (enc "this" n3 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3-0 (pubk a)))
+      (send (enc "that" n3-0 (pubk b)))))
+  (label 14)
+  (parent 11)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton thisthat
+  (vars (n1 n3 n3-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n3-0) (n3 n3) (a a) (b b))
+  (defstrand that 3 (n3 n3) (n1 n1) (b b) (a a))
+  (defstrand this 3 (n2 n3-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((1 2) (0 2))
+    ((2 1) (0 1)) ((2 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n3 n3-0)
+  (operation nonce-test (displaced 1 3 this 3) n3-0 (0 2)
+    (enc n1 n3-0 (pubk a)))
+  (traces
+    ((send (enc n1 a (pubk b)))
+      (recv (cat (enc n1 n3-0 (pubk a)) (enc n1 n3 (pubk a))))
+      (recv (cat (enc "this" n3-0 (pubk b)) (enc "that" n3 (pubk b)))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3 (pubk a)))
+      (send (enc "that" n3 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3-0 (pubk a)))
+      (send (enc "this" n3-0 (pubk b)))))
+  (label 15)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (n1 n1) (n2 n3-0) (n3 n3))))
+  (origs (n3-0 (2 1)) (n3 (1 1)) (n1 (0 0))))
+
+(defskeleton thisthat
+  (vars (n1 n3 n3-0 text) (a b name))
+  (defstrand init 3 (n1 n1) (n2 n3-0) (n3 n3) (a a) (b b))
+  (defstrand that 3 (n3 n3) (n1 n1) (b b) (a a))
+  (defstrand that 3 (n3 n3-0) (n1 n1) (b b) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((1 2) (0 2))
+    ((2 1) (0 1)) ((2 2) (0 2)))
+  (non-orig (privk a) (privk b))
+  (uniq-orig n1 n3 n3-0)
+  (operation nonce-test (displaced 1 3 that 3) n3-0 (0 2)
+    (enc n1 n3-0 (pubk a)))
+  (traces
+    ((send (enc n1 a (pubk b)))
+      (recv (cat (enc n1 n3-0 (pubk a)) (enc n1 n3 (pubk a))))
+      (recv (cat (enc "this" n3-0 (pubk b)) (enc "that" n3 (pubk b)))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3 (pubk a)))
+      (send (enc "that" n3 (pubk b))))
+    ((recv (enc n1 a (pubk b))) (send (enc n1 n3-0 (pubk a)))
+      (send (enc "that" n3-0 (pubk b)))))
+  (label 16)
+  (parent 12)
+  (unrealized (0 2))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/tst/tickle-unique.scm b/tst/tickle-unique.scm
new file mode 100644
--- /dev/null
+++ b/tst/tickle-unique.scm
@@ -0,0 +1,39 @@
+(herald tickle-unique)
+
+(defprotocol tickle basic
+  (defrole init
+    (vars (a b name) (na nb text))
+    (trace
+     (send (enc a na (pubk b)))
+     (recv (enc b na na nb (pubk a)))
+     (send nb))
+    (uniq-orig na))
+
+  (defrole resp
+    (vars (a b name) (na nb0 nb text))
+    (trace
+     (recv (enc a na (pubk b)))
+     (send (enc b na nb0 nb (pubk a)))
+     (recv nb)))
+
+  (defrule uniq-tickle
+    (forall
+     ((z strd) (nb0 text))
+     (implies
+      (and (fact guard-me)
+	   (p "resp" z 2)
+	   (p "resp" "nb0" z nb0))
+      (uniq nb0)))))
+
+(defskeleton tickle
+  (vars (a b name) (na nb0 nb text))
+  (defstrand resp 3 (a a) (b b) (nb0 nb0) (nb nb))
+  (non-orig (privk a))
+  (uniq-orig nb))
+
+(defskeleton tickle
+  (vars (a b name) (na nb0 nb text))
+  (defstrand resp 3 (a a) (b b) (nb0 nb0) (nb nb))
+  (facts (guard-me))
+  (non-orig (privk a))
+  (uniq-orig nb))
diff --git a/tst/tickle-unique.tst b/tst/tickle-unique.tst
new file mode 100644
--- /dev/null
+++ b/tst/tickle-unique.tst
@@ -0,0 +1,119 @@
+(herald tickle-unique)
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/tickle-unique.scm")
+
+(defprotocol tickle basic
+  (defrole init
+    (vars (a b name) (na nb text))
+    (trace (send (enc a na (pubk b))) (recv (enc b na na nb (pubk a)))
+      (send nb))
+    (uniq-orig na))
+  (defrole resp
+    (vars (a b name) (na nb0 nb text))
+    (trace (recv (enc a na (pubk b))) (send (enc b na nb0 nb (pubk a)))
+      (recv nb)))
+  (defrule uniq-tickle
+    (forall ((z strd) (nb0 text))
+      (implies
+        (and (fact guard-me) (p "resp" z (idx 2))
+          (p "resp" "nb0" z nb0))
+        (uniq nb0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton tickle
+  (vars (nb0 nb na text) (a b name))
+  (defstrand resp 3 (na na) (nb0 nb0) (nb nb) (a a) (b b))
+  (non-orig (privk a))
+  (uniq-orig nb)
+  (traces
+    ((recv (enc a na (pubk b))) (send (enc b na nb0 nb (pubk a)))
+      (recv nb)))
+  (label 0)
+  (unrealized (0 2))
+  (origs (nb (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton tickle
+  (vars (nb0 nb text) (a b name))
+  (defstrand resp 3 (na nb0) (nb0 nb0) (nb nb) (a a) (b b))
+  (defstrand init 3 (na nb0) (nb nb) (a a) (b b))
+  (precedes ((0 1) (1 1)) ((1 0) (0 0)) ((1 2) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig nb0 nb)
+  (operation nonce-test (added-strand init 3) nb (0 2)
+    (enc b nb0 nb0 nb (pubk a)))
+  (traces
+    ((recv (enc a nb0 (pubk b))) (send (enc b nb0 nb0 nb (pubk a)))
+      (recv nb))
+    ((send (enc a nb0 (pubk b))) (recv (enc b nb0 nb0 nb (pubk a)))
+      (send nb)))
+  (label 1)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (nb0 nb0) (nb nb) (na nb0))))
+  (origs (nb0 (1 0)) (nb (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol tickle basic
+  (defrole init
+    (vars (a b name) (na nb text))
+    (trace (send (enc a na (pubk b))) (recv (enc b na na nb (pubk a)))
+      (send nb))
+    (uniq-orig na))
+  (defrole resp
+    (vars (a b name) (na nb0 nb text))
+    (trace (recv (enc a na (pubk b))) (send (enc b na nb0 nb (pubk a)))
+      (recv nb)))
+  (defrule uniq-tickle
+    (forall ((z strd) (nb0 text))
+      (implies
+        (and (fact guard-me) (p "resp" z (idx 2))
+          (p "resp" "nb0" z nb0))
+        (uniq nb0))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton tickle
+  (vars (nb0 nb na text) (a b name))
+  (defstrand resp 3 (na na) (nb0 nb0) (nb nb) (a a) (b b))
+  (non-orig (privk a))
+  (uniq-orig nb)
+  (facts (guard-me))
+  (traces
+    ((recv (enc a na (pubk b))) (send (enc b na nb0 nb (pubk a)))
+      (recv nb)))
+  (label 2)
+  (unrealized (0 2))
+  (origs (nb (0 1)))
+  (comment "Not closed under rules"))
+
+(defskeleton tickle
+  (vars (nb0 nb na text) (a b name))
+  (defstrand resp 3 (na na) (nb0 nb0) (nb nb) (a a) (b b))
+  (non-orig (privk a))
+  (uniq-orig nb0 nb)
+  (facts (guard-me))
+  (rule uniq-tickle)
+  (traces
+    ((recv (enc a na (pubk b))) (send (enc b na nb0 nb (pubk a)))
+      (recv nb)))
+  (label 3)
+  (parent 2)
+  (unrealized (0 2))
+  (dead)
+  (origs (nb0 (0 1)) (nb (0 1)))
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/tst/timestamping.scm b/tst/timestamping.scm
new file mode 100644
--- /dev/null
+++ b/tst/timestamping.scm
@@ -0,0 +1,46 @@
+(herald timestamping-service)
+
+;; Timestamping service as described on Page 76 in Applied
+;; Cryptography, Second Edition by Bruce Schneier.
+
+;; This version DOES NOT send the identity of timestamp holder that
+;; follows the one sent to the client.  It's a to do.
+
+(defmacro (link)
+  (cat alice_1 h_1 t_1 l_1))
+
+(defmacro (timestamp l)
+  (enc n alice h alice_1 h_1 t_1 l (privk trent)))
+
+(defprotocol timestamping-service basic
+  (defrole client (vars (alice alice_1 trent name)
+  			(n data) (h h_1 text) (t_1 l mesg))
+    (trace
+     (send (cat h alice))
+     (recv (timestamp l))))
+  (defrole server (vars (alice alice_1 trent name)
+			(n data) (h h_1 text) (t_1 l_1 mesg))
+    (trace
+     (recv (cat (enc (enc (link) (privk trent)) (pubk trent)) h alice))
+     (send (cat (timestamp (hash (link)))
+		(enc
+		 (enc (hash alice h (timestamp (hash (link))) (hash (link)))
+		      (privk trent))
+		 (pubk trent)))))
+    (uniq-orig n))
+  (defrole origin (vars (alice alice_1 trent name)
+  			(n data) (h h_1 text) (t_1 l_1 text))
+    (trace
+     (recv (enc (enc n (privk trent)) (pubk trent)))
+     (send (enc
+	    (enc alice h (timestamp (hash (link))) (hash (link))
+		 (privk trent))
+	    (pubk trent)))))
+  (defrole big-bang (vars (n data) (trent name))
+    (trace (send (enc (enc n (privk trent)) (pubk trent))))
+    (uniq-orig n)))
+
+(defskeleton timestamping-service
+  (vars (trent name) (n_0 data))
+  (defstrand client 2 (trent trent))
+  (non-orig (privk trent)))
diff --git a/tst/timestamping.tst b/tst/timestamping.tst
new file mode 100644
--- /dev/null
+++ b/tst/timestamping.tst
@@ -0,0 +1,564 @@
+(herald timestamping-service)
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/timestamping.scm")
+
+(defprotocol timestamping-service basic
+  (defrole client
+    (vars (alice alice_1 trent name) (n data) (h h_1 text) (t_1 l mesg))
+    (trace (send (cat h alice))
+      (recv (enc n alice h alice_1 h_1 t_1 l (privk trent)))))
+  (defrole server
+    (vars (alice alice_1 trent name) (n data) (h h_1 text)
+      (t_1 l_1 mesg))
+    (trace
+      (recv
+        (cat (enc (enc alice_1 h_1 t_1 l_1 (privk trent)) (pubk trent))
+          h alice))
+      (send
+        (cat
+          (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+            (privk trent))
+          (enc
+            (enc
+              (hash alice h
+                (enc n alice h alice_1 h_1 t_1
+                  (hash alice_1 h_1 t_1 l_1) (privk trent))
+                (hash alice_1 h_1 t_1 l_1)) (privk trent))
+            (pubk trent)))))
+    (uniq-orig n))
+  (defrole origin
+    (vars (alice alice_1 trent name) (n data) (h h_1 t_1 l_1 text))
+    (trace (recv (enc (enc n (privk trent)) (pubk trent)))
+      (send
+        (enc
+          (enc alice h
+            (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+              (privk trent)) (hash alice_1 h_1 t_1 l_1) (privk trent))
+          (pubk trent)))))
+  (defrole big-bang
+    (vars (n data) (trent name))
+    (trace (send (enc (enc n (privk trent)) (pubk trent))))
+    (uniq-orig n))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton timestamping-service
+  (vars (t_1 l mesg) (n data) (h h_1 text) (trent alice alice_1 name))
+  (defstrand client 2 (t_1 t_1) (l l) (n n) (h h) (h_1 h_1)
+    (alice alice) (alice_1 alice_1) (trent trent))
+  (non-orig (privk trent))
+  (traces
+    ((send (cat h alice))
+      (recv (enc n alice h alice_1 h_1 t_1 l (privk trent)))))
+  (label 0)
+  (unrealized (0 1))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton timestamping-service
+  (vars (t_1 l_1 mesg) (n data) (h h_1 text) (trent alice alice_1 name))
+  (defstrand client 2 (t_1 t_1) (l (hash alice_1 h_1 t_1 l_1)) (n n)
+    (h h) (h_1 h_1) (alice alice) (alice_1 alice_1) (trent trent))
+  (defstrand server 2 (t_1 t_1) (l_1 l_1) (n n) (h h) (h_1 h_1)
+    (alice alice) (alice_1 alice_1) (trent trent))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk trent))
+  (uniq-orig n)
+  (operation encryption-test (added-strand server 2)
+    (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+      (privk trent)) (0 1))
+  (traces
+    ((send (cat h alice))
+      (recv
+        (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+          (privk trent))))
+    ((recv
+       (cat (enc (enc alice_1 h_1 t_1 l_1 (privk trent)) (pubk trent)) h
+         alice))
+      (send
+        (cat
+          (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+            (privk trent))
+          (enc
+            (enc
+              (hash alice h
+                (enc n alice h alice_1 h_1 t_1
+                  (hash alice_1 h_1 t_1 l_1) (privk trent))
+                (hash alice_1 h_1 t_1 l_1)) (privk trent))
+            (pubk trent))))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton timestamping-service
+  (vars (n data) (h h_1 t_1 l_1 text) (trent alice alice_1 name))
+  (defstrand client 2 (t_1 t_1) (l (hash alice_1 h_1 t_1 l_1)) (n n)
+    (h h) (h_1 h_1) (alice alice) (alice_1 alice_1) (trent trent))
+  (defstrand origin 2 (n n) (h h) (h_1 h_1) (t_1 t_1) (l_1 l_1)
+    (alice alice) (alice_1 alice_1) (trent trent))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk trent))
+  (operation encryption-test (added-strand origin 2)
+    (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+      (privk trent)) (0 1))
+  (traces
+    ((send (cat h alice))
+      (recv
+        (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+          (privk trent))))
+    ((recv (enc (enc n (privk trent)) (pubk trent)))
+      (send
+        (enc
+          (enc alice h
+            (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+              (privk trent)) (hash alice_1 h_1 t_1 l_1) (privk trent))
+          (pubk trent)))))
+  (label 2)
+  (parent 0)
+  (unrealized (0 1) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton timestamping-service
+  (vars (n n-0 data) (h h_1 h_1-0 t_1 l_1 text)
+    (trent alice alice_1 alice_1-0 name))
+  (defstrand client 2
+    (t_1
+      (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+        (hash alice_1-0 h_1-0 t_1 l_1) (privk trent)))
+    (l
+      (hash alice_1 h_1
+        (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+          (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+        (hash alice_1-0 h_1-0 t_1 l_1))) (n n) (h h) (h_1 h_1)
+    (alice alice) (alice_1 alice_1) (trent trent))
+  (defstrand server 2
+    (t_1
+      (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+        (hash alice_1-0 h_1-0 t_1 l_1) (privk trent)))
+    (l_1 (hash alice_1-0 h_1-0 t_1 l_1)) (n n) (h h) (h_1 h_1)
+    (alice alice) (alice_1 alice_1) (trent trent))
+  (defstrand origin 2 (n n-0) (h h_1) (h_1 h_1-0) (t_1 t_1) (l_1 l_1)
+    (alice alice_1) (alice_1 alice_1-0) (trent trent))
+  (precedes ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk trent))
+  (uniq-orig n)
+  (operation encryption-test (added-strand origin 2)
+    (enc alice_1 h_1
+      (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+        (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+      (hash alice_1-0 h_1-0 t_1 l_1) (privk trent)) (1 0))
+  (traces
+    ((send (cat h alice))
+      (recv
+        (enc n alice h alice_1 h_1
+          (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+            (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+          (hash alice_1 h_1
+            (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+              (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+            (hash alice_1-0 h_1-0 t_1 l_1)) (privk trent))))
+    ((recv
+       (cat
+         (enc
+           (enc alice_1 h_1
+             (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+               (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+             (hash alice_1-0 h_1-0 t_1 l_1) (privk trent)) (pubk trent))
+         h alice))
+      (send
+        (cat
+          (enc n alice h alice_1 h_1
+            (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+              (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+            (hash alice_1 h_1
+              (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+                (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+              (hash alice_1-0 h_1-0 t_1 l_1)) (privk trent))
+          (enc
+            (enc
+              (hash alice h
+                (enc n alice h alice_1 h_1
+                  (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+                    (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+                  (hash alice_1 h_1
+                    (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+                      (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+                    (hash alice_1-0 h_1-0 t_1 l_1)) (privk trent))
+                (hash alice_1 h_1
+                  (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+                    (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+                  (hash alice_1-0 h_1-0 t_1 l_1))) (privk trent))
+            (pubk trent)))))
+    ((recv (enc (enc n-0 (privk trent)) (pubk trent)))
+      (send
+        (enc
+          (enc alice_1 h_1
+            (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+              (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+            (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+          (pubk trent)))))
+  (label 3)
+  (parent 1)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton timestamping-service
+  (vars (n data) (h h_1 t_1 l_1 text) (trent alice alice_1 name))
+  (defstrand client 2 (t_1 t_1) (l (hash alice_1 h_1 t_1 l_1)) (n n)
+    (h h) (h_1 h_1) (alice alice) (alice_1 alice_1) (trent trent))
+  (defstrand origin 2 (n n) (h h) (h_1 h_1) (t_1 t_1) (l_1 l_1)
+    (alice alice) (alice_1 alice_1) (trent trent))
+  (defstrand big-bang 1 (n n) (trent trent))
+  (precedes ((1 1) (0 1)) ((2 0) (1 0)))
+  (non-orig (privk trent))
+  (uniq-orig n)
+  (operation encryption-test (added-strand big-bang 1)
+    (enc n (privk trent)) (1 0))
+  (traces
+    ((send (cat h alice))
+      (recv
+        (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+          (privk trent))))
+    ((recv (enc (enc n (privk trent)) (pubk trent)))
+      (send
+        (enc
+          (enc alice h
+            (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+              (privk trent)) (hash alice_1 h_1 t_1 l_1) (privk trent))
+          (pubk trent))))
+    ((send (enc (enc n (privk trent)) (pubk trent)))))
+  (label 4)
+  (parent 2)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton timestamping-service
+  (vars (n n-0 data) (h h_1 h_1-0 t_1 l_1 text)
+    (trent alice alice_1 alice_1-0 name))
+  (defstrand client 2
+    (t_1
+      (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+        (hash alice_1-0 h_1-0 t_1 l_1) (privk trent)))
+    (l
+      (hash alice_1 h_1
+        (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+          (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+        (hash alice_1-0 h_1-0 t_1 l_1))) (n n) (h h) (h_1 h_1)
+    (alice alice) (alice_1 alice_1) (trent trent))
+  (defstrand server 2
+    (t_1
+      (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+        (hash alice_1-0 h_1-0 t_1 l_1) (privk trent)))
+    (l_1 (hash alice_1-0 h_1-0 t_1 l_1)) (n n) (h h) (h_1 h_1)
+    (alice alice) (alice_1 alice_1) (trent trent))
+  (defstrand origin 2 (n n-0) (h h_1) (h_1 h_1-0) (t_1 t_1) (l_1 l_1)
+    (alice alice_1) (alice_1 alice_1-0) (trent trent))
+  (defstrand big-bang 1 (n n-0) (trent trent))
+  (precedes ((1 1) (0 1)) ((2 1) (1 0)) ((3 0) (2 0)))
+  (non-orig (privk trent))
+  (uniq-orig n n-0)
+  (operation encryption-test (added-strand big-bang 1)
+    (enc n-0 (privk trent)) (2 0))
+  (traces
+    ((send (cat h alice))
+      (recv
+        (enc n alice h alice_1 h_1
+          (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+            (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+          (hash alice_1 h_1
+            (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+              (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+            (hash alice_1-0 h_1-0 t_1 l_1)) (privk trent))))
+    ((recv
+       (cat
+         (enc
+           (enc alice_1 h_1
+             (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+               (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+             (hash alice_1-0 h_1-0 t_1 l_1) (privk trent)) (pubk trent))
+         h alice))
+      (send
+        (cat
+          (enc n alice h alice_1 h_1
+            (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+              (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+            (hash alice_1 h_1
+              (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+                (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+              (hash alice_1-0 h_1-0 t_1 l_1)) (privk trent))
+          (enc
+            (enc
+              (hash alice h
+                (enc n alice h alice_1 h_1
+                  (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+                    (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+                  (hash alice_1 h_1
+                    (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+                      (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+                    (hash alice_1-0 h_1-0 t_1 l_1)) (privk trent))
+                (hash alice_1 h_1
+                  (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+                    (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+                  (hash alice_1-0 h_1-0 t_1 l_1))) (privk trent))
+            (pubk trent)))))
+    ((recv (enc (enc n-0 (privk trent)) (pubk trent)))
+      (send
+        (enc
+          (enc alice_1 h_1
+            (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+              (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+            (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+          (pubk trent))))
+    ((send (enc (enc n-0 (privk trent)) (pubk trent)))))
+  (label 5)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((trent trent) (alice alice) (alice_1 alice_1) (n n) (h h)
+        (h_1 h_1)
+        (t_1
+          (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+            (hash alice_1-0 h_1-0 t_1 l_1) (privk trent)))
+        (l
+          (hash alice_1 h_1
+            (enc n-0 alice_1 h_1 alice_1-0 h_1-0 t_1
+              (hash alice_1-0 h_1-0 t_1 l_1) (privk trent))
+            (hash alice_1-0 h_1-0 t_1 l_1))))))
+  (origs (n-0 (3 0)) (n (1 1))))
+
+(defskeleton timestamping-service
+  (vars (n n-0 data) (h h_1 t_1 l_1 h-0 text)
+    (trent alice alice_1 alice-0 name))
+  (defstrand client 2 (t_1 t_1) (l (hash alice_1 h_1 t_1 l_1)) (n n)
+    (h h) (h_1 h_1) (alice alice) (alice_1 alice_1) (trent trent))
+  (defstrand origin 2 (n n) (h h) (h_1 h_1) (t_1 t_1) (l_1 l_1)
+    (alice alice) (alice_1 alice_1) (trent trent))
+  (defstrand big-bang 1 (n n) (trent trent))
+  (defstrand server 2
+    (t_1
+      (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+        (privk trent))) (l_1 (hash alice_1 h_1 t_1 l_1)) (n n-0) (h h-0)
+    (h_1 h) (alice alice-0) (alice_1 alice) (trent trent))
+  (precedes ((1 1) (0 1)) ((2 0) (1 0)) ((2 0) (3 0)) ((3 1) (0 1)))
+  (non-orig (privk trent))
+  (uniq-orig n n-0)
+  (operation encryption-test (added-strand server 2)
+    (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+      (privk trent)) (0 1)
+    (enc
+      (enc alice h
+        (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+          (privk trent)) (hash alice_1 h_1 t_1 l_1) (privk trent))
+      (pubk trent)))
+  (traces
+    ((send (cat h alice))
+      (recv
+        (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+          (privk trent))))
+    ((recv (enc (enc n (privk trent)) (pubk trent)))
+      (send
+        (enc
+          (enc alice h
+            (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+              (privk trent)) (hash alice_1 h_1 t_1 l_1) (privk trent))
+          (pubk trent))))
+    ((send (enc (enc n (privk trent)) (pubk trent))))
+    ((recv
+       (cat
+         (enc
+           (enc alice h
+             (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+               (privk trent)) (hash alice_1 h_1 t_1 l_1) (privk trent))
+           (pubk trent)) h-0 alice-0))
+      (send
+        (cat
+          (enc n-0 alice-0 h-0 alice h
+            (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+              (privk trent))
+            (hash alice h
+              (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+                (privk trent)) (hash alice_1 h_1 t_1 l_1))
+            (privk trent))
+          (enc
+            (enc
+              (hash alice-0 h-0
+                (enc n-0 alice-0 h-0 alice h
+                  (enc n alice h alice_1 h_1 t_1
+                    (hash alice_1 h_1 t_1 l_1) (privk trent))
+                  (hash alice h
+                    (enc n alice h alice_1 h_1 t_1
+                      (hash alice_1 h_1 t_1 l_1) (privk trent))
+                    (hash alice_1 h_1 t_1 l_1)) (privk trent))
+                (hash alice h
+                  (enc n alice h alice_1 h_1 t_1
+                    (hash alice_1 h_1 t_1 l_1) (privk trent))
+                  (hash alice_1 h_1 t_1 l_1))) (privk trent))
+            (pubk trent))))))
+  (label 6)
+  (parent 4)
+  (unrealized (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton timestamping-service
+  (vars (n n-0 data) (h h_1 t_1 l_1 h-0 text)
+    (trent alice alice_1 alice-0 name))
+  (defstrand client 2 (t_1 t_1) (l (hash alice_1 h_1 t_1 l_1)) (n n)
+    (h h) (h_1 h_1) (alice alice) (alice_1 alice_1) (trent trent))
+  (defstrand origin 2 (n n) (h h) (h_1 h_1) (t_1 t_1) (l_1 l_1)
+    (alice alice) (alice_1 alice_1) (trent trent))
+  (defstrand big-bang 1 (n n) (trent trent))
+  (defstrand server 2
+    (t_1
+      (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+        (privk trent))) (l_1 (hash alice_1 h_1 t_1 l_1)) (n n-0) (h h-0)
+    (h_1 h) (alice alice-0) (alice_1 alice) (trent trent))
+  (precedes ((1 1) (3 0)) ((2 0) (1 0)) ((3 1) (0 1)))
+  (non-orig (privk trent))
+  (uniq-orig n n-0)
+  (operation encryption-test (displaced 4 1 origin 2)
+    (enc alice h
+      (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+        (privk trent)) (hash alice_1 h_1 t_1 l_1) (privk trent)) (3 0))
+  (traces
+    ((send (cat h alice))
+      (recv
+        (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+          (privk trent))))
+    ((recv (enc (enc n (privk trent)) (pubk trent)))
+      (send
+        (enc
+          (enc alice h
+            (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+              (privk trent)) (hash alice_1 h_1 t_1 l_1) (privk trent))
+          (pubk trent))))
+    ((send (enc (enc n (privk trent)) (pubk trent))))
+    ((recv
+       (cat
+         (enc
+           (enc alice h
+             (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+               (privk trent)) (hash alice_1 h_1 t_1 l_1) (privk trent))
+           (pubk trent)) h-0 alice-0))
+      (send
+        (cat
+          (enc n-0 alice-0 h-0 alice h
+            (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+              (privk trent))
+            (hash alice h
+              (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+                (privk trent)) (hash alice_1 h_1 t_1 l_1))
+            (privk trent))
+          (enc
+            (enc
+              (hash alice-0 h-0
+                (enc n-0 alice-0 h-0 alice h
+                  (enc n alice h alice_1 h_1 t_1
+                    (hash alice_1 h_1 t_1 l_1) (privk trent))
+                  (hash alice h
+                    (enc n alice h alice_1 h_1 t_1
+                      (hash alice_1 h_1 t_1 l_1) (privk trent))
+                    (hash alice_1 h_1 t_1 l_1)) (privk trent))
+                (hash alice h
+                  (enc n alice h alice_1 h_1 t_1
+                    (hash alice_1 h_1 t_1 l_1) (privk trent))
+                  (hash alice_1 h_1 t_1 l_1))) (privk trent))
+            (pubk trent))))))
+  (label 7)
+  (parent 6)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((trent trent) (alice alice) (alice_1 alice_1) (n n) (h h)
+        (h_1 h_1) (t_1 t_1) (l (hash alice_1 h_1 t_1 l_1)))))
+  (origs (n-0 (3 1)) (n (2 0))))
+
+(defskeleton timestamping-service
+  (vars (n n-0 data) (h h_1 t_1 l_1 h-0 text)
+    (trent alice alice_1 alice-0 name))
+  (defstrand client 2 (t_1 t_1) (l (hash alice_1 h_1 t_1 l_1)) (n n)
+    (h h) (h_1 h_1) (alice alice) (alice_1 alice_1) (trent trent))
+  (defstrand origin 2 (n n) (h h) (h_1 h_1) (t_1 t_1) (l_1 l_1)
+    (alice alice) (alice_1 alice_1) (trent trent))
+  (defstrand big-bang 1 (n n) (trent trent))
+  (defstrand server 2
+    (t_1
+      (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+        (privk trent))) (l_1 (hash alice_1 h_1 t_1 l_1)) (n n-0) (h h-0)
+    (h_1 h) (alice alice-0) (alice_1 alice) (trent trent))
+  (defstrand origin 2 (n n) (h h) (h_1 h_1) (t_1 t_1) (l_1 l_1)
+    (alice alice) (alice_1 alice_1) (trent trent))
+  (precedes ((1 1) (0 1)) ((2 0) (1 0)) ((2 0) (4 0)) ((3 1) (0 1))
+    ((4 1) (3 0)))
+  (non-orig (privk trent))
+  (uniq-orig n n-0)
+  (operation encryption-test (added-strand origin 2)
+    (enc alice h
+      (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+        (privk trent)) (hash alice_1 h_1 t_1 l_1) (privk trent)) (3 0))
+  (traces
+    ((send (cat h alice))
+      (recv
+        (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+          (privk trent))))
+    ((recv (enc (enc n (privk trent)) (pubk trent)))
+      (send
+        (enc
+          (enc alice h
+            (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+              (privk trent)) (hash alice_1 h_1 t_1 l_1) (privk trent))
+          (pubk trent))))
+    ((send (enc (enc n (privk trent)) (pubk trent))))
+    ((recv
+       (cat
+         (enc
+           (enc alice h
+             (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+               (privk trent)) (hash alice_1 h_1 t_1 l_1) (privk trent))
+           (pubk trent)) h-0 alice-0))
+      (send
+        (cat
+          (enc n-0 alice-0 h-0 alice h
+            (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+              (privk trent))
+            (hash alice h
+              (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+                (privk trent)) (hash alice_1 h_1 t_1 l_1))
+            (privk trent))
+          (enc
+            (enc
+              (hash alice-0 h-0
+                (enc n-0 alice-0 h-0 alice h
+                  (enc n alice h alice_1 h_1 t_1
+                    (hash alice_1 h_1 t_1 l_1) (privk trent))
+                  (hash alice h
+                    (enc n alice h alice_1 h_1 t_1
+                      (hash alice_1 h_1 t_1 l_1) (privk trent))
+                    (hash alice_1 h_1 t_1 l_1)) (privk trent))
+                (hash alice h
+                  (enc n alice h alice_1 h_1 t_1
+                    (hash alice_1 h_1 t_1 l_1) (privk trent))
+                  (hash alice_1 h_1 t_1 l_1))) (privk trent))
+            (pubk trent)))))
+    ((recv (enc (enc n (privk trent)) (pubk trent)))
+      (send
+        (enc
+          (enc alice h
+            (enc n alice h alice_1 h_1 t_1 (hash alice_1 h_1 t_1 l_1)
+              (privk trent)) (hash alice_1 h_1 t_1 l_1) (privk trent))
+          (pubk trent)))))
+  (label 8)
+  (parent 6)
+  (seen 7)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/tst/tnsl5.lisp b/tst/tnsl5.lisp
new file mode 100644
--- /dev/null
+++ b/tst/tnsl5.lisp
@@ -0,0 +1,168 @@
+(defprotocol tnsl5 basic
+  (defrole init
+    (vars (a b c d e name)
+      (na0 na1 na2 na3 nb0 nb1 nb2 nb3 nc0 nc1 nc2 nc3 nd0 nd1 nd2 nd3
+        ne0 ne1 ne2 ne3 text))
+    (trace
+      (send
+        (enc na0 a c d e (enc "unitac" na1 a b d e (pubk c))
+          (enc "unitad" na2 a b c e (pubk d))
+          (enc "unitae" na3 a b c d (pubk e)) (pubk b)))
+      (recv
+        (enc na3 ne0 e b c d (enc "repba" na0 nb3 b c d e (pubk a))
+          (enc "repca" na1 nc2 c b d e (pubk a))
+          (enc "repda" na2 nd1 d e b c (pubk a))
+          (enc "repcb" nb0 nc3 c d e a (pubk b))
+          (enc "repdb" nb1 nd2 d c e a (pubk b))
+          (enc "repeb" nb2 ne1 e a c d (pubk b))
+          (enc "repdc" nc0 nd3 d e a b (pubk c))
+          (enc "repec" nc1 ne2 e a b d (pubk c))
+          (enc "reped" nd0 ne3 e a b c (pubk d)) (pubk a)))
+      (send
+        (enc nb3 (enc "repcb" nb0 nc3 c d e a (pubk b))
+          (enc "repdb" nb1 nd2 d c e a (pubk b))
+          (enc "repeb" nb2 ne1 e a c d (pubk b))
+          (enc "repdc" nc0 nd3 d e a b (pubk c))
+          (enc "repec" nc1 ne2 e a b d (pubk c))
+          (enc "confac" nc2 (pubk c))
+          (enc "reped" nd0 ne3 e a b c (pubk d))
+          (enc "confad" nd1 (pubk d)) (enc "confae" ne0 (pubk e))
+          (pubk b))))
+    (uniq-orig na0 na1 na2 na3))
+  (defrole resp1
+    (vars (a b c d e name)
+      (na0 na1 na2 na3 nb0 nb1 nb2 nb3 nc0 nc1 nc2 nc3 nd0 nd1 nd2 nd3
+        ne0 ne1 ne2 ne3 text))
+    (trace
+      (recv
+        (enc na0 a c d e (enc "unitac" na1 a b d e (pubk c))
+          (enc "unitad" na2 a b c e (pubk d))
+          (enc "unitae" na3 a b c d (pubk e)) (pubk b)))
+      (send
+        (enc nb0 b d e a (enc "unitac" na1 a b d e (pubk c))
+          (enc "unitad" na2 a b c e (pubk d))
+          (enc "unitbd" nb1 b c e a (pubk d))
+          (enc "unitae" na3 a b c d (pubk e))
+          (enc "unitbe" nb2 b c d a (pubk e))
+          (enc "repba" na0 nb3 b c d e (pubk a)) (pubk c)))
+      (recv
+        (enc nb3 (enc "repcb" nb0 nc3 c d e a (pubk b))
+          (enc "repdb" nb1 nd2 d c e a (pubk b))
+          (enc "repeb" nb2 ne1 e a c d (pubk b))
+          (enc "repdc" nc0 nd3 d e a b (pubk c))
+          (enc "repec" nc1 ne2 e a b d (pubk c))
+          (enc "confac" nc2 (pubk c))
+          (enc "reped" nd0 ne3 e a b c (pubk d))
+          (enc "confad" nd1 (pubk d)) (enc "confae" ne0 (pubk e))
+          (pubk b)))
+      (send
+        (enc nc3 (enc "repdc" nc0 nd3 d e a b (pubk c))
+          (enc "repec" nc1 ne2 e a b d (pubk c))
+          (enc "confac" nc2 (pubk c))
+          (enc "reped" nd0 ne3 e a b c (pubk d))
+          (enc "confad" nd1 (pubk d)) (enc "confbd" nd2 (pubk d))
+          (enc "confae" ne0 (pubk e)) (enc "confbe" ne1 (pubk e))
+          (pubk c))))
+    (uniq-orig nb0 nb1 nb2 nb3))
+  (defrole resp2
+    (vars (a b c d e name)
+      (na0 na1 na2 na3 nb0 nb1 nb2 nb3 nc0 nc1 nc2 nc3 nd0 nd1 nd2 nd3
+        ne0 ne1 ne2 ne3 text))
+    (trace
+      (recv
+        (enc nb0 b d e a (enc "unitac" na1 a b d e (pubk c))
+          (enc "unitad" na2 a b c e (pubk d))
+          (enc "unitbd" nb1 b c e a (pubk d))
+          (enc "unitae" na3 a b c d (pubk e))
+          (enc "unitbe" nb2 b c d a (pubk e))
+          (enc "repba" na0 nb3 b c d e (pubk a)) (pubk c)))
+      (send
+        (enc nc0 c e a b (enc "unitad" na2 a b c e (pubk d))
+          (enc "unitbd" nb1 b c e a (pubk d))
+          (enc "unitae" na3 a b c d (pubk e))
+          (enc "unitbe" nb2 b c d a (pubk e))
+          (enc "unitce" nc1 c d a b (pubk e))
+          (enc "repba" na0 nb3 b c d e (pubk a))
+          (enc "repca" na1 nc2 c b d e (pubk a))
+          (enc "repcb" nb0 nc3 c d e a (pubk b)) (pubk d)))
+      (recv
+        (enc nc3 (enc "repdc" nc0 nd3 d e a b (pubk c))
+          (enc "repec" nc1 ne2 e a b d (pubk c))
+          (enc "confac" nc2 (pubk c))
+          (enc "reped" nd0 ne3 e a b c (pubk d))
+          (enc "confad" nd1 (pubk d)) (enc "confbd" nd2 (pubk d))
+          (enc "confae" ne0 (pubk e)) (enc "confbe" ne1 (pubk e))
+          (pubk c)))
+      (send
+        (enc nd3 (enc "reped" nd0 ne3 e a b c (pubk d))
+          (enc "confad" nd1 (pubk d)) (enc "confbd" nd2 (pubk d))
+          (enc "confae" ne0 (pubk e)) (enc "confbe" ne1 (pubk e))
+          (enc "confce" ne2 (pubk e)) (pubk d))))
+    (uniq-orig nc0 nc1 nc2 nc3))
+  (defrole resp3
+    (vars (a b c d e name)
+      (na0 na1 na2 na3 nb0 nb1 nb2 nb3 nc0 nc1 nc2 nc3 nd0 nd1 nd2 nd3
+        ne0 ne1 ne2 ne3 text))
+    (trace
+      (recv
+        (enc nc0 c e a b (enc "unitad" na2 a b c e (pubk d))
+          (enc "unitbd" nb1 b c e a (pubk d))
+          (enc "unitae" na3 a b c d (pubk e))
+          (enc "unitbe" nb2 b c d a (pubk e))
+          (enc "unitce" nc1 c d a b (pubk e))
+          (enc "repba" na0 nb3 b c d e (pubk a))
+          (enc "repca" na1 nc2 c b d e (pubk a))
+          (enc "repcb" nb0 nc3 c d e a (pubk b)) (pubk d)))
+      (send
+        (enc nd0 d a b c (enc "unitae" na3 a b c d (pubk e))
+          (enc "unitbe" nb2 b c d a (pubk e))
+          (enc "unitce" nc1 c d a b (pubk e))
+          (enc "repba" na0 nb3 b c d e (pubk a))
+          (enc "repca" na1 nc2 c b d e (pubk a))
+          (enc "repda" na2 nd1 d e b c (pubk a))
+          (enc "repcb" nb0 nc3 c d e a (pubk b))
+          (enc "repdb" nb1 nd2 d c e a (pubk b))
+          (enc "repde" nc0 nd3 d e a b (pubk c)) (pubk e)))
+      (recv
+        (enc nd3 (enc "reped" nd0 ne3 e a b c (pubk d))
+          (enc "confad" nd1 (pubk d)) (enc "confbd" nd2 (pubk d))
+          (enc "confae" ne0 (pubk e)) (enc "confbe" ne1 (pubk e))
+          (enc "confce" ne2 (pubk e)) (pubk d)))
+      (send
+        (enc ne3 (enc "confae" ne0 (pubk e)) (enc "confbe" ne1 (pubk e))
+          (enc "confce" ne2 (pubk e)) (pubk e))))
+    (uniq-orig nd0 nd1 nd2 nd3))
+  (defrole resp4
+    (vars (a b c d e name)
+      (na0 na1 na2 na3 nb0 nb1 nb2 nb3 nc0 nc1 nc2 nc3 nd0 nd1 nd2 nd3
+        ne0 ne1 ne2 ne3 text))
+    (trace
+      (recv
+        (enc nd0 d a b c (enc "unitae" na3 a b c d (pubk e))
+          (enc "unitbe" nb2 b c d a (pubk e))
+          (enc "unitce" nc1 c d a b (pubk e))
+          (enc "repba" na0 nb3 b c d e (pubk a))
+          (enc "repca" na1 nc2 c b d e (pubk a))
+          (enc "repda" na2 nd1 d e b c (pubk a))
+          (enc "repcb" nb0 nc3 c d e a (pubk b))
+          (enc "repdb" nb1 nd2 d c e a (pubk b))
+          (enc "repde" nc0 nd3 d e a b (pubk c)) (pubk e)))
+      (send
+        (enc na3 ne0 e b c d (enc "repba" na0 nb3 b c d e (pubk a))
+          (enc "repca" na1 nc2 c b d e (pubk a))
+          (enc "repda" na2 nd1 d e b c (pubk a))
+          (enc "repcb" nb0 nc3 c d e a (pubk b))
+          (enc "repdb" nb1 nd2 d c e a (pubk b))
+          (enc "repeb" nb2 ne1 e a c d (pubk b))
+          (enc "repdc" nc0 nd3 d e a b (pubk c))
+          (enc "repec" nc1 ne2 e a b d (pubk c))
+          (enc "reped" nd0 ne3 e a b c (pubk d)) (pubk a)))
+      (recv
+        (enc ne3 (enc "confae" ne0 (pubk e)) (enc "confbe" ne1 (pubk e))
+          (enc "confce" ne2 (pubk e)) (pubk e))))
+    (uniq-orig ne0 ne1 ne2 ne3)))
+
+(defskeleton tnsl5
+  (vars (a b c d e name))
+  (defstrand init 3 (a a) (b b) (c c) (d d) (e e))
+  (non-orig (privk a) (privk b) (privk c) (privk d) (privk e)))
diff --git a/tst/trust-anchor.tst b/tst/trust-anchor.tst
--- a/tst/trust-anchor.tst
+++ b/tst/trust-anchor.tst
@@ -1,12 +1,18 @@
 (herald trust-anchor
   (comment "Tests rule application on initial skeleton"))
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/trust-anchor.scm")
 
 (defprotocol trust-anchor basic
   (defrule trust-anchor-inverse-is-non
-    (forall ((k akey)) (implies (fact trust-anchor k) (non (invk k))))))
+    (forall ((k akey)) (implies (fact trust-anchor k) (non (invk k)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton trust-anchor
   (vars (f ca name))
@@ -25,7 +31,13 @@
 
 (defprotocol trust-anchor basic
   (defrule trust-anchor-inverse-is-non
-    (forall ((k akey)) (implies (fact trust-anchor k) (non (invk k))))))
+    (forall ((k akey)) (implies (fact trust-anchor k) (non (invk k)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton trust-anchor
   (vars (f ca name))
@@ -35,7 +47,7 @@
     ((recv (enc f (pubk f) (privk ca)))
       (send (enc f (pubk f) (privk ca)))))
   (label 1)
-  (unrealized)
+  (realized)
   (origs)
   (comment "Not closed under rules"))
 
diff --git a/tst/ugen_test.scm b/tst/ugen_test.scm
deleted file mode 100644
--- a/tst/ugen_test.scm
+++ /dev/null
@@ -1,60 +0,0 @@
-(herald "Ugen test"
-	(comment This protocol demonstrates a bug in CPSA: points of
-origination are not always preserved for skeleton uniq-orig
-assumptions) (algebra diffie-hellman)) 
-
-(defprotocol uof diffie-hellman
-  (defrole init
-    (vars (a b name) (x1 rndx) (x2 expt))
-    (trace
-     (send (exp (gen) x1))
-     (recv (exp (gen) x2))
-     (send (enc (exp (gen) x1) (exp (gen) x2) (exp (gen) x1) (ltk a b)))))
-  (defrole resp
-    (vars (b a name) (x2 rndx) (x1 expt))
-    (trace
-     (recv (exp (gen) x1))
-     (send (exp (gen) x2))
-     (recv (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b)))))
-)
-
-;;; The responder point-of-view
-(defskeleton uof 
-  (vars (a b name) (x2 rndx))
-  (defstrand resp 3 (a a) (b b) (x2 x2))
-  (non-orig (ltk a b))
-  (uniq-gen x2)
-  (comment "Responder point-of-view"))
-
-;;; The responder point-of-view
-(defskeleton uof 
-  (vars (a b name) (x2 rndx) (x1 expt))
-  (defstrand resp 3 (a a) (b b) (x2 x2) (x1 x1))
-  (non-orig (ltk a b))
-  (uniq-gen x2)
-  (absent (x2 (exp (gen) x1)))
-  (comment "Responder point-of-view"))
-
-(defprotocol uof2 diffie-hellman
-  (defrole init
-    (vars (a b name) (x1 rndx) (x2 expt))
-    (trace
-     (send (exp (gen) x1))
-     (recv (exp (gen) x2))
-     (send (enc (exp (gen) x1) (exp (gen) x2) (exp (gen) x1) (ltk a b)))))
-  (defrole resp
-    (vars (b a name) (x2 rndx) (x1 expt))
-    (trace
-     (recv (exp (gen) x1))
-     (send (exp (gen) x2))
-     (recv (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b))))
-    (uniq-gen x2)
-    )
-)
-;;; The responder point-of-view
-(defskeleton uof2
-  (vars (a b name) (x2 rndx))
-  (defstrand resp 3 (a a) (b b) (x2 x2))
-  (non-orig (ltk a b))
-  (comment "Responder point-of-view"))
-
diff --git a/tst/ugen_test.tst b/tst/ugen_test.tst
deleted file mode 100644
--- a/tst/ugen_test.tst
+++ /dev/null
@@ -1,123 +0,0 @@
-(herald "Ugen test"
-  (comment This protocol demonstrates a bug in CPSA: points of
-    origination are not always preserved for skeleton uniq-orig
-    assumptions) (algebra diffie-hellman))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/ugen_test.scm")
-
-(defprotocol uof diffie-hellman
-  (defrole init
-    (vars (a b name) (x1 rndx) (x2 expt))
-    (trace (send (exp (gen) x1)) (recv (exp (gen) x2))
-      (send
-        (enc (exp (gen) x1) (exp (gen) x2) (exp (gen) x1) (ltk a b)))))
-  (defrole resp
-    (vars (b a name) (x2 rndx) (x1 expt))
-    (trace (recv (exp (gen) x1)) (send (exp (gen) x2))
-      (recv
-        (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b))))))
-
-(defskeleton uof
-  (vars (a b name) (x2 rndx) (x1 expt))
-  (defstrand resp 3 (b b) (a a) (x2 x2) (x1 x1))
-  (non-orig (ltk a b))
-  (uniq-gen x2)
-  (comment "Responder point-of-view")
-  (traces
-    ((recv (exp (gen) x1)) (send (exp (gen) x2))
-      (recv
-        (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b)))))
-  (label 0)
-  (unrealized (0 2))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton uof
-  (vars (a b name) (x1 rndx))
-  (defstrand resp 3 (b b) (a a) (x2 x1) (x1 x1))
-  (defstrand init 3 (a a) (b b) (x1 x1) (x2 x1))
-  (precedes ((1 0) (0 0)) ((1 2) (0 2)))
-  (non-orig (ltk a b))
-  (uniq-gen x1)
-  (operation encryption-test (added-strand init 3)
-    (enc (exp (gen) x1) (exp (gen) x1) (exp (gen) x1) (ltk a b)) (0 2))
-  (traces
-    ((recv (exp (gen) x1)) (send (exp (gen) x1))
-      (recv
-        (enc (exp (gen) x1) (exp (gen) x1) (exp (gen) x1) (ltk a b))))
-    ((send (exp (gen) x1)) (recv (exp (gen) x1))
-      (send
-        (enc (exp (gen) x1) (exp (gen) x1) (exp (gen) x1) (ltk a b)))))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (x2 x1) (x1 x1))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol uof diffie-hellman
-  (defrole init
-    (vars (a b name) (x1 rndx) (x2 expt))
-    (trace (send (exp (gen) x1)) (recv (exp (gen) x2))
-      (send
-        (enc (exp (gen) x1) (exp (gen) x2) (exp (gen) x1) (ltk a b)))))
-  (defrole resp
-    (vars (b a name) (x2 rndx) (x1 expt))
-    (trace (recv (exp (gen) x1)) (send (exp (gen) x2))
-      (recv
-        (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b))))))
-
-(defskeleton uof
-  (vars (a b name) (x2 rndx) (x1 expt))
-  (defstrand resp 3 (b b) (a a) (x2 x2) (x1 x1))
-  (absent (x2 (exp (gen) x1)))
-  (non-orig (ltk a b))
-  (uniq-gen x2)
-  (comment "Responder point-of-view")
-  (traces
-    ((recv (exp (gen) x1)) (send (exp (gen) x2))
-      (recv
-        (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b)))))
-  (label 2)
-  (unrealized (0 2))
-  (dead)
-  (origs)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol uof2 diffie-hellman
-  (defrole init
-    (vars (a b name) (x1 rndx) (x2 expt))
-    (trace (send (exp (gen) x1)) (recv (exp (gen) x2))
-      (send
-        (enc (exp (gen) x1) (exp (gen) x2) (exp (gen) x1) (ltk a b)))))
-  (defrole resp
-    (vars (b a name) (x2 rndx) (x1 expt))
-    (trace (recv (exp (gen) x1)) (send (exp (gen) x2))
-      (recv
-        (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b))))
-    (uniq-gen x2)
-    (absent (x2 (exp (gen) x1)))))
-
-(defskeleton uof2
-  (vars (a b name) (x2 rndx) (x1 expt))
-  (defstrand resp 3 (b b) (a a) (x2 x2) (x1 x1))
-  (absent (x2 (exp (gen) x1)))
-  (non-orig (ltk a b))
-  (uniq-gen x2)
-  (comment "Responder point-of-view")
-  (traces
-    ((recv (exp (gen) x1)) (send (exp (gen) x2))
-      (recv
-        (enc (exp (gen) x2) (exp (gen) x1) (exp (gen) x1) (ltk a b)))))
-  (label 3)
-  (unrealized (0 2))
-  (dead)
-  (origs)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
diff --git a/tst/uncarried_keys.scm b/tst/uncarried_keys.scm
new file mode 100644
--- /dev/null
+++ b/tst/uncarried_keys.scm
@@ -0,0 +1,30 @@
+; uncarried-keys
+;   Shows that our notion of uniquely-originating
+; does not necessarily correspond to the notion of
+; a freshly-generated nonce, because such values can
+; be used in non-carried positions before they are
+; received.  Here, the initiator originates K in its
+; 4th message but receives (earlier) a message
+; encrypted with K from the responder.
+
+(defprotocol uncarried-keys basic
+  (defrole init
+    (vars (a text) (A B name) (K akey))
+    (trace
+     (send (enc "start" a A B (pubk B)))
+     (recv (enc a A B (pubk A)))
+     (send (enc a K (pubk B)))
+     (recv (enc a A B K)))
+    (non-orig (privk B) (invk K))
+    (uniq-orig a K))
+  (defrole resp
+    (vars (a text) (A B name) (K akey))
+    (trace
+     (recv (enc "start" a A B (pubk B)))
+     (send (enc a A B (pubk A)))
+     (recv (enc a K (pubk B)))
+     (send (enc a A B K)))))
+
+(defskeleton uncarried-keys
+  (vars (a text) (A B name) (K akey))
+  (defstrand init 4 (a a) (A A) (B B) (K K)))
diff --git a/tst/uncarried_keys.tst b/tst/uncarried_keys.tst
new file mode 100644
--- /dev/null
+++ b/tst/uncarried_keys.tst
@@ -0,0 +1,138 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/uncarried_keys.scm")
+
+(defprotocol uncarried-keys basic
+  (defrole init
+    (vars (a text) (A B name) (K akey))
+    (trace (send (enc "start" a A B (pubk B)))
+      (recv (enc a A B (pubk A))) (send (enc a K (pubk B)))
+      (recv (enc a A B K)))
+    (non-orig (invk K) (privk B))
+    (uniq-orig a K))
+  (defrole resp
+    (vars (a text) (A B name) (K akey))
+    (trace (recv (enc "start" a A B (pubk B)))
+      (send (enc a A B (pubk A))) (recv (enc a K (pubk B)))
+      (send (enc a A B K))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton uncarried-keys
+  (vars (a text) (K akey) (A B name))
+  (defstrand init 4 (a a) (K K) (A A) (B B))
+  (non-orig (invk K) (privk B))
+  (uniq-orig a K)
+  (traces
+    ((send (enc "start" a A B (pubk B))) (recv (enc a A B (pubk A)))
+      (send (enc a K (pubk B))) (recv (enc a A B K))))
+  (label 0)
+  (unrealized (0 1) (0 3))
+  (origs (K (0 2)) (a (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton uncarried-keys
+  (vars (a text) (K akey) (A B name))
+  (defstrand init 4 (a a) (K K) (A A) (B B))
+  (defstrand resp 2 (a a) (A A) (B B))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk K) (privk B))
+  (uniq-orig a K)
+  (operation nonce-test (added-strand resp 2) a (0 1)
+    (enc "start" a A B (pubk B)))
+  (traces
+    ((send (enc "start" a A B (pubk B))) (recv (enc a A B (pubk A)))
+      (send (enc a K (pubk B))) (recv (enc a A B K)))
+    ((recv (enc "start" a A B (pubk B))) (send (enc a A B (pubk A)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 3))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton uncarried-keys
+  (vars (a text) (K akey) (A B name))
+  (defstrand init 4 (a a) (K K) (A A) (B B))
+  (defstrand resp 2 (a a) (A A) (B B))
+  (defstrand resp 4 (a a) (K K) (A A) (B B))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 2) (2 2)) ((1 1) (0 1))
+    ((2 3) (0 3)))
+  (non-orig (invk K) (privk B))
+  (uniq-orig a K)
+  (operation encryption-test (added-strand resp 4) (enc a A B K) (0 3))
+  (traces
+    ((send (enc "start" a A B (pubk B))) (recv (enc a A B (pubk A)))
+      (send (enc a K (pubk B))) (recv (enc a A B K)))
+    ((recv (enc "start" a A B (pubk B))) (send (enc a A B (pubk A))))
+    ((recv (enc "start" a A B (pubk B))) (send (enc a A B (pubk A)))
+      (recv (enc a K (pubk B))) (send (enc a A B K))))
+  (label 2)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (A A) (B B) (K K))))
+  (origs (K (0 2)) (a (0 0))))
+
+(defskeleton uncarried-keys
+  (vars (a text) (K akey) (A B name))
+  (defstrand init 4 (a a) (K K) (A A) (B B))
+  (defstrand resp 4 (a a) (K K) (A A) (B B))
+  (precedes ((0 0) (1 0)) ((0 2) (1 2)) ((1 1) (0 1)) ((1 3) (0 3)))
+  (non-orig (invk K) (privk B))
+  (uniq-orig a K)
+  (operation encryption-test (displaced 1 2 resp 4) (enc a A B K) (0 3))
+  (traces
+    ((send (enc "start" a A B (pubk B))) (recv (enc a A B (pubk A)))
+      (send (enc a K (pubk B))) (recv (enc a A B K)))
+    ((recv (enc "start" a A B (pubk B))) (send (enc a A B (pubk A)))
+      (recv (enc a K (pubk B))) (send (enc a A B K))))
+  (label 3)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (A A) (B B) (K K))))
+  (origs (K (0 2)) (a (0 0))))
+
+(defskeleton uncarried-keys
+  (vars (a text) (A B name))
+  (defstrand init 4 (a a) (K (pubk A)) (A A) (B B))
+  (defstrand resp 2 (a a) (A A) (B B))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk A) (privk B))
+  (uniq-orig a (pubk A))
+  (operation encryption-test (displaced 2 1 resp 2) (enc a A B (pubk A))
+    (0 3))
+  (traces
+    ((send (enc "start" a A B (pubk B))) (recv (enc a A B (pubk A)))
+      (send (enc a (pubk A) (pubk B))) (recv (enc a A B (pubk A))))
+    ((recv (enc "start" a A B (pubk B))) (send (enc a A B (pubk A)))))
+  (label 4)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (A A) (B B) (K (pubk A)))))
+  (origs ((pubk A) (0 2)) (a (0 0))))
+
+(defskeleton uncarried-keys
+  (vars (a text) (K akey) (A B name))
+  (defstrand init 4 (a a) (K K) (A A) (B B))
+  (defstrand resp 2 (a a) (A A) (B B))
+  (deflistener K)
+  (precedes ((0 0) (1 0)) ((0 2) (2 0)) ((1 1) (0 1)) ((2 1) (0 3)))
+  (non-orig (invk K) (privk B))
+  (uniq-orig a K)
+  (operation encryption-test (added-listener K) (enc a A B K) (0 3))
+  (traces
+    ((send (enc "start" a A B (pubk B))) (recv (enc a A B (pubk A)))
+      (send (enc a K (pubk B))) (recv (enc a A B K)))
+    ((recv (enc "start" a A B (pubk B))) (send (enc a A B (pubk A))))
+    ((recv K) (send K)))
+  (label 5)
+  (parent 1)
+  (unrealized (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/tst/unilateral.scm b/tst/unilateral.scm
--- a/tst/unilateral.scm
+++ b/tst/unilateral.scm
@@ -23,3 +23,67 @@
    (defstrand resp 2 (n n) (k k))
    (pen-non-orig n)
    (non-orig (invk k)))
+
+;;; The same two problems posed using security goals.  The goals were
+;;; taken from the output of cpsasas.
+
+(defgoal unilateral
+  (forall ((n text) (k akey) (z strd))
+    (implies
+      (and (p "init" z 2) (p "init" "n" z n) (p "init" "k" z k)
+        (non (invk k)) (uniq-at n z 0))
+      (exists ((z-0 strd))
+        (and (p "resp" z-0 2) (p "resp" "n" z-0 n) (p "resp" "k" z-0 k)
+          (prec z 0 z-0 0) (prec z-0 1 z 1))))))
+
+(defgoal unilateral
+  (forall ((n text) (k akey) (z strd))
+    (implies
+      (and (p "resp" z 2) (p "resp" "n" z n) (p "resp" "k" z k)
+        (non (invk k)) (pnon n))
+      (exists ((k-0 akey) (z-0 strd))
+        (and (p "init" z-0 1) (p "init" "n" z-0 n)
+          (p "init" "k" z-0 k-0) (prec z-0 0 z 0) (uniq-at n z-0 0))))))
+
+;;; Unilateral authentication from ISO/IEC JTC 1/SC 27/WG 2 N1050
+
+(defprotocol iso-unilateral basic
+  (defrole resp
+    (vars (na nb t1 t2 t3 text) (b name))
+    (trace
+     (recv (cat nb t1))
+     (send (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    (uniq-orig na))
+  (defrole init
+    (vars (na nb t1 t2 t3 text) (b name))
+    (trace
+     (send (cat nb t1))
+     (recv (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    (uniq-orig nb))
+  (comment "Two pass authentication"))
+
+(defskeleton iso-unilateral
+  (vars (b name))
+  (defstrand init 2 (b b))
+  (non-orig (privk b)))
+
+;;; Same as above, but also checking to see if there was agreement.
+(defgoal iso-unilateral
+  (forall ((b name) (z strd))
+    (implies
+     (and (p "init" z 2)
+	  (p "init" "b" z b)
+	  (non (privk b)))
+      (exists ((y strd))
+	      (and (p "resp" y 2)
+		   (p "resp" "b" y b))))))
+
+;;; Silly example.  Of course the shape produced does not satisfy this
+;;; goal!
+(defgoal iso-unilateral
+  (forall ((b name) (z strd))
+    (implies
+     (and (p "init" z 2)
+	  (p "init" "b" z b)
+	  (non (privk b)))
+     (false))))
diff --git a/tst/unilateral.tst b/tst/unilateral.tst
--- a/tst/unilateral.tst
+++ b/tst/unilateral.tst
@@ -1,6 +1,6 @@
 (herald unilateral)
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/unilateral.scm")
 
 (defprotocol unilateral basic
@@ -10,7 +10,13 @@
     (uniq-orig n))
   (defrole resp
     (vars (n text) (k akey))
-    (trace (recv (enc n k)) (send n))))
+    (trace (recv (enc n k)) (send n)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton unilateral
   (vars (n text) (k akey))
@@ -34,7 +40,7 @@
   (traces ((send (enc n k)) (recv n)) ((recv (enc n k)) (send n)))
   (label 1)
   (parent 0)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((k k) (n n))))
   (origs (n (0 0))))
@@ -48,7 +54,13 @@
     (uniq-orig n))
   (defrole resp
     (vars (n text) (k akey))
-    (trace (recv (enc n k)) (send n))))
+    (trace (recv (enc n k)) (send n)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton unilateral
   (vars (n text) (k akey))
@@ -73,9 +85,292 @@
   (traces ((recv (enc n k)) (send n)) ((send (enc n k-0))))
   (label 3)
   (parent 2)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((n n) (k k))))
   (origs (n (1 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol unilateral basic
+  (defrole init
+    (vars (n text) (k akey))
+    (trace (send (enc n k)) (recv n))
+    (uniq-orig n))
+  (defrole resp
+    (vars (n text) (k akey))
+    (trace (recv (enc n k)) (send n)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton unilateral
+  (vars (n text) (k akey))
+  (defstrand init 2 (n n) (k k))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (goals
+    (forall ((n text) (k akey) (z strd))
+      (implies
+        (and (p "init" z 2) (p "init" "n" z n) (p "init" "k" z k)
+          (non (invk k)) (uniq-at n z 0))
+        (exists ((z-0 strd))
+          (and (p "resp" z-0 2) (p "resp" "n" z-0 n)
+            (p "resp" "k" z-0 k) (prec z 0 z-0 0) (prec z-0 1 z 1))))))
+  (traces ((send (enc n k)) (recv n)))
+  (label 4)
+  (unrealized (0 1))
+  (origs (n (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton unilateral
+  (vars (n text) (k akey))
+  (defstrand init 2 (n n) (k k))
+  (defstrand resp 2 (n n) (k k))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (invk k))
+  (uniq-orig n)
+  (operation nonce-test (added-strand resp 2) n (0 1) (enc n k))
+  (traces ((send (enc n k)) (recv n)) ((recv (enc n k)) (send n)))
+  (label 5)
+  (parent 4)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0) ((n n) (k k))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol unilateral basic
+  (defrole init
+    (vars (n text) (k akey))
+    (trace (send (enc n k)) (recv n))
+    (uniq-orig n))
+  (defrole resp
+    (vars (n text) (k akey))
+    (trace (recv (enc n k)) (send n)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton unilateral
+  (vars (n text) (k akey))
+  (defstrand resp 2 (n n) (k k))
+  (non-orig (invk k))
+  (pen-non-orig n)
+  (goals
+    (forall ((n text) (k akey) (z strd))
+      (implies
+        (and (p "resp" z 2) (p "resp" "n" z n) (p "resp" "k" z k)
+          (non (invk k)) (pnon n))
+        (exists ((k-0 akey) (z-0 strd))
+          (and (p "init" z-0 1) (p "init" "n" z-0 n)
+            (p "init" "k" z-0 k-0) (prec z-0 0 z 0)
+            (uniq-at n z-0 0))))))
+  (traces ((recv (enc n k)) (send n)))
+  (label 6)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton unilateral
+  (vars (n text) (k k-0 akey))
+  (defstrand resp 2 (n n) (k k))
+  (defstrand init 1 (n n) (k k-0))
+  (precedes ((1 0) (0 0)))
+  (non-orig (invk k))
+  (pen-non-orig n)
+  (uniq-orig n)
+  (operation nonce-test (added-strand init 1) n (0 0))
+  (traces ((recv (enc n k)) (send n)) ((send (enc n k-0))))
+  (label 7)
+  (parent 6)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0) ((n n) (k k))))
+  (origs (n (1 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol iso-unilateral basic
+  (defrole resp
+    (vars (na nb t1 t2 t3 text) (b name))
+    (trace (recv (cat nb t1))
+      (send (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    (uniq-orig na))
+  (defrole init
+    (vars (na nb t1 t2 t3 text) (b name))
+    (trace (send (cat nb t1))
+      (recv (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    (uniq-orig nb))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Two pass authentication"))
+
+(defskeleton iso-unilateral
+  (vars (na nb t1 t2 t3 text) (b name))
+  (defstrand init 2 (na na) (nb nb) (t1 t1) (t2 t2) (t3 t3) (b b))
+  (non-orig (privk b))
+  (uniq-orig nb)
+  (traces
+    ((send (cat nb t1))
+      (recv (cat na nb b t3 (enc na nb b t2 (privk b))))))
+  (label 8)
+  (unrealized (0 1))
+  (origs (nb (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton iso-unilateral
+  (vars (na nb t1 t2 t3 t1-0 t3-0 text) (b name))
+  (defstrand init 2 (na na) (nb nb) (t1 t1) (t2 t2) (t3 t3) (b b))
+  (defstrand resp 2 (na na) (nb nb) (t1 t1-0) (t2 t2) (t3 t3-0) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-orig na nb)
+  (operation encryption-test (added-strand resp 2)
+    (enc na nb b t2 (privk b)) (0 1))
+  (traces
+    ((send (cat nb t1))
+      (recv (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    ((recv (cat nb t1-0))
+      (send (cat na nb b t3-0 (enc na nb b t2 (privk b))))))
+  (label 9)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (na na) (nb nb) (t1 t1) (t2 t2) (t3 t3))))
+  (origs (na (1 1)) (nb (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol iso-unilateral basic
+  (defrole resp
+    (vars (na nb t1 t2 t3 text) (b name))
+    (trace (recv (cat nb t1))
+      (send (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    (uniq-orig na))
+  (defrole init
+    (vars (na nb t1 t2 t3 text) (b name))
+    (trace (send (cat nb t1))
+      (recv (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    (uniq-orig nb))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Two pass authentication"))
+
+(defskeleton iso-unilateral
+  (vars (na nb t1 t2 t3 text) (b name))
+  (defstrand init 2 (na na) (nb nb) (t1 t1) (t2 t2) (t3 t3) (b b))
+  (non-orig (privk b))
+  (uniq-orig nb)
+  (goals
+    (forall ((b name) (z strd))
+      (implies (and (p "init" z 2) (p "init" "b" z b) (non (privk b)))
+        (exists ((y strd)) (and (p "resp" y 2) (p "resp" "b" y b))))))
+  (traces
+    ((send (cat nb t1))
+      (recv (cat na nb b t3 (enc na nb b t2 (privk b))))))
+  (label 10)
+  (unrealized (0 1))
+  (origs (nb (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton iso-unilateral
+  (vars (na nb t1 t2 t3 t1-0 t3-0 text) (b name))
+  (defstrand init 2 (na na) (nb nb) (t1 t1) (t2 t2) (t3 t3) (b b))
+  (defstrand resp 2 (na na) (nb nb) (t1 t1-0) (t2 t2) (t3 t3-0) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-orig na nb)
+  (operation encryption-test (added-strand resp 2)
+    (enc na nb b t2 (privk b)) (0 1))
+  (traces
+    ((send (cat nb t1))
+      (recv (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    ((recv (cat nb t1-0))
+      (send (cat na nb b t3-0 (enc na nb b t2 (privk b))))))
+  (label 11)
+  (parent 10)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0) ((b b) (na na) (nb nb) (t1 t1) (t2 t2) (t3 t3))))
+  (origs (na (1 1)) (nb (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol iso-unilateral basic
+  (defrole resp
+    (vars (na nb t1 t2 t3 text) (b name))
+    (trace (recv (cat nb t1))
+      (send (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    (uniq-orig na))
+  (defrole init
+    (vars (na nb t1 t2 t3 text) (b name))
+    (trace (send (cat nb t1))
+      (recv (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    (uniq-orig nb))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Two pass authentication"))
+
+(defskeleton iso-unilateral
+  (vars (na nb t1 t2 t3 text) (b name))
+  (defstrand init 2 (na na) (nb nb) (t1 t1) (t2 t2) (t3 t3) (b b))
+  (non-orig (privk b))
+  (uniq-orig nb)
+  (goals
+    (forall ((b name) (z strd))
+      (implies (and (p "init" z 2) (p "init" "b" z b) (non (privk b)))
+        (false))))
+  (traces
+    ((send (cat nb t1))
+      (recv (cat na nb b t3 (enc na nb b t2 (privk b))))))
+  (label 12)
+  (unrealized (0 1))
+  (origs (nb (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton iso-unilateral
+  (vars (na nb t1 t2 t3 t1-0 t3-0 text) (b name))
+  (defstrand init 2 (na na) (nb nb) (t1 t1) (t2 t2) (t3 t3) (b b))
+  (defstrand resp 2 (na na) (nb nb) (t1 t1-0) (t2 t2) (t3 t3-0) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk b))
+  (uniq-orig na nb)
+  (operation encryption-test (added-strand resp 2)
+    (enc na nb b t2 (privk b)) (0 1))
+  (traces
+    ((send (cat nb t1))
+      (recv (cat na nb b t3 (enc na nb b t2 (privk b)))))
+    ((recv (cat nb t1-0))
+      (send (cat na nb b t3-0 (enc na nb b t2 (privk b))))))
+  (label 13)
+  (parent 12)
+  (realized)
+  (shape)
+  (satisfies (no (fact false) (b b) (z 0)))
+  (maps ((0) ((b b) (na na) (nb nb) (t1 t1) (t2 t2) (t3 t3))))
+  (origs (na (1 1)) (nb (0 0))))
 
 (comment "Nothing left to do")
diff --git a/tst/uniq-gen-test.scm b/tst/uniq-gen-test.scm
--- a/tst/uniq-gen-test.scm
+++ b/tst/uniq-gen-test.scm
@@ -1,47 +1,35 @@
 (herald "Unique generation test protocols."
-   (comment "Skeletons 2, 4, and 7 should have no shapes."))
+	(comment "Skeletons 2, 4, and 7 should have no shapes."))
 
 (defprotocol uniqgentest basic
   (defrole init
     (vars (a name) (k skey))
     (trace
-       (send (enc a k))
-       (recv (enc a a k))
-    )
-   )
+     (send (enc a k))
+     (recv (enc a a k))))
   (defrole doubler
     (vars (a name) (k skey))
     (trace
-       (send (enc a a k)))
-  )
+     (send (enc a a k))))
   (defrole resp
     (vars (a name) (k skey))
     (trace
      (recv (enc a k))
-     (send (enc a a k)))
-    )
-)
-
-;; This input, if enabled, should cause an
-;; error, since k is not carried anywhere.
-;(defskeleton uniqgentest
-;   (vars (k skey))
-;   (defstrand init 2 (k k))
-;   (uniq-orig k))
-
-;; This input should have a shape in which a
-;; doubler produces the message needed by the
-;; initiator.
-(defskeleton uniqgentest
-   (vars (k skey))
-   (defstrand init 2 (k k))
-   (non-orig k))
+     (send (enc a a k)))))
 
 ;; This input should have no shape, because
 ;; declaring k to be uniq-gen does not allow
 ;; a doubler strand: the doubler strand generates
 ;; its key.
 (defskeleton uniqgentest
-   (vars (k skey))
-   (defstrand init 2 (k k))
-   (uniq-gen k))
+  (vars (k skey))
+  (defstrand init 2 (k k))
+  (uniq-gen k))
+
+;; This input should have a shape in which a
+;; doubler produces the message needed by the
+;; initiator.
+(defskeleton uniqgentest
+  (vars (k skey))
+  (defstrand init 2 (k k))
+  (non-orig k))
diff --git a/tst/uniq-gen-test.tst b/tst/uniq-gen-test.tst
--- a/tst/uniq-gen-test.tst
+++ b/tst/uniq-gen-test.tst
@@ -1,7 +1,7 @@
 (herald "Unique generation test protocols."
   (comment "Skeletons 2, 4, and 7 should have no shapes."))
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/uniq-gen-test.scm")
 
 (defprotocol uniqgentest basic
@@ -11,12 +11,18 @@
   (defrole doubler (vars (a name) (k skey)) (trace (send (enc a a k))))
   (defrole resp
     (vars (a name) (k skey))
-    (trace (recv (enc a k)) (send (enc a a k)))))
+    (trace (recv (enc a k)) (send (enc a a k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton uniqgentest
-  (vars (a name) (k skey))
-  (defstrand init 2 (a a) (k k))
-  (non-orig k)
+  (vars (k skey) (a name))
+  (defstrand init 2 (k k) (a a))
+  (uniq-gen k)
   (traces ((send (enc a k)) (recv (enc a a k))))
   (label 0)
   (unrealized (0 1))
@@ -24,66 +30,34 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton uniqgentest
-  (vars (a name) (k skey))
-  (defstrand init 2 (a a) (k k))
-  (defstrand doubler 1 (a a) (k k))
-  (precedes ((1 0) (0 1)))
-  (non-orig k)
-  (operation encryption-test (added-strand doubler 1) (enc a a k) (0 1))
-  (traces ((send (enc a k)) (recv (enc a a k))) ((send (enc a a k))))
+  (vars (k skey) (a name))
+  (defstrand init 2 (k k) (a a))
+  (defstrand resp 2 (k k) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-gen k)
+  (operation encryption-test (added-strand resp 2) (enc a a k) (0 1))
+  (traces ((send (enc a k)) (recv (enc a a k)))
+    ((recv (enc a k)) (send (enc a a k))))
   (label 1)
   (parent 0)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((k k) (a a))))
   (origs))
 
 (defskeleton uniqgentest
-  (vars (a name) (k skey))
-  (defstrand init 2 (a a) (k k))
-  (defstrand resp 2 (a a) (k k))
-  (precedes ((1 1) (0 1)))
-  (non-orig k)
-  (operation encryption-test (added-strand resp 2) (enc a a k) (0 1))
-  (traces ((send (enc a k)) (recv (enc a a k)))
-    ((recv (enc a k)) (send (enc a a k))))
+  (vars (k skey) (a name))
+  (defstrand init 2 (k k) (a a))
+  (deflistener k)
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (uniq-gen k)
+  (operation encryption-test (added-listener k) (enc a a k) (0 1))
+  (traces ((send (enc a k)) (recv (enc a a k))) ((recv k) (send k)))
   (label 2)
   (parent 0)
   (unrealized (1 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton uniqgentest
-  (vars (a name) (k skey))
-  (defstrand init 2 (a a) (k k))
-  (defstrand resp 2 (a a) (k k))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (non-orig k)
-  (operation encryption-test (displaced 2 0 init 1) (enc a k) (1 0))
-  (traces ((send (enc a k)) (recv (enc a a k)))
-    ((recv (enc a k)) (send (enc a a k))))
-  (label 3)
-  (parent 2)
-  (unrealized)
-  (shape)
-  (maps ((0) ((k k) (a a))))
-  (origs))
-
-(defskeleton uniqgentest
-  (vars (a name) (k skey))
-  (defstrand init 2 (a a) (k k))
-  (defstrand resp 2 (a a) (k k))
-  (defstrand init 1 (a a) (k k))
-  (precedes ((1 1) (0 1)) ((2 0) (1 0)))
-  (non-orig k)
-  (operation encryption-test (added-strand init 1) (enc a k) (1 0))
-  (traces ((send (enc a k)) (recv (enc a a k)))
-    ((recv (enc a k)) (send (enc a a k))) ((send (enc a k))))
-  (label 4)
-  (parent 2)
-  (unrealized)
-  (shape)
-  (maps ((0) ((k k) (a a))))
-  (origs))
+  (dead)
+  (comment "empty cohort"))
 
 (comment "Nothing left to do")
 
@@ -94,46 +68,84 @@
   (defrole doubler (vars (a name) (k skey)) (trace (send (enc a a k))))
   (defrole resp
     (vars (a name) (k skey))
-    (trace (recv (enc a k)) (send (enc a a k)))))
+    (trace (recv (enc a k)) (send (enc a a k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton uniqgentest
-  (vars (a name) (k skey))
-  (defstrand init 2 (a a) (k k))
-  (uniq-gen k)
+  (vars (k skey) (a name))
+  (defstrand init 2 (k k) (a a))
+  (non-orig k)
   (traces ((send (enc a k)) (recv (enc a a k))))
-  (label 5)
+  (label 3)
   (unrealized (0 1))
   (origs)
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton uniqgentest
-  (vars (a name) (k skey))
-  (defstrand init 2 (a a) (k k))
-  (defstrand resp 2 (a a) (k k))
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (uniq-gen k)
+  (vars (k skey) (a name))
+  (defstrand init 2 (k k) (a a))
+  (defstrand doubler 1 (k k) (a a))
+  (precedes ((1 0) (0 1)))
+  (non-orig k)
+  (operation encryption-test (added-strand doubler 1) (enc a a k) (0 1))
+  (traces ((send (enc a k)) (recv (enc a a k))) ((send (enc a a k))))
+  (label 4)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0) ((k k) (a a))))
+  (origs))
+
+(defskeleton uniqgentest
+  (vars (k skey) (a name))
+  (defstrand init 2 (k k) (a a))
+  (defstrand resp 2 (k k) (a a))
+  (precedes ((1 1) (0 1)))
+  (non-orig k)
   (operation encryption-test (added-strand resp 2) (enc a a k) (0 1))
   (traces ((send (enc a k)) (recv (enc a a k)))
     ((recv (enc a k)) (send (enc a a k))))
+  (label 5)
+  (parent 3)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton uniqgentest
+  (vars (k skey) (a name))
+  (defstrand init 2 (k k) (a a))
+  (defstrand resp 2 (k k) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig k)
+  (operation encryption-test (displaced 2 0 init 1) (enc a k) (1 0))
+  (traces ((send (enc a k)) (recv (enc a a k)))
+    ((recv (enc a k)) (send (enc a a k))))
   (label 6)
   (parent 5)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((k k) (a a))))
   (origs))
 
 (defskeleton uniqgentest
-  (vars (a name) (k skey))
-  (defstrand init 2 (a a) (k k))
-  (deflistener k)
-  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
-  (uniq-gen k)
-  (operation encryption-test (added-listener k) (enc a a k) (0 1))
-  (traces ((send (enc a k)) (recv (enc a a k))) ((recv k) (send k)))
+  (vars (k skey) (a name))
+  (defstrand init 2 (k k) (a a))
+  (defstrand resp 2 (k k) (a a))
+  (defstrand init 1 (k k) (a a))
+  (precedes ((1 1) (0 1)) ((2 0) (1 0)))
+  (non-orig k)
+  (operation encryption-test (added-strand init 1) (enc a k) (1 0))
+  (traces ((send (enc a k)) (recv (enc a a k)))
+    ((recv (enc a k)) (send (enc a a k))) ((send (enc a k))))
   (label 7)
   (parent 5)
-  (unrealized (1 0))
-  (dead)
-  (comment "empty cohort"))
+  (realized)
+  (shape)
+  (maps ((0) ((k k) (a a))))
+  (origs))
 
 (comment "Nothing left to do")
diff --git a/tst/uniq_orig_doesnt_fail.scm b/tst/uniq_orig_doesnt_fail.scm
deleted file mode 100644
--- a/tst/uniq_orig_doesnt_fail.scm
+++ /dev/null
@@ -1,70 +0,0 @@
-(herald "Uniq orig fail"
-	(comment This protocol demonstrates a bug in CPSA: points of
-origination are not always preserved for skeleton uniq-orig
-assumptions)) 
-
-(defprotocol uof basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace
-     (send n1)
-     (recv n2)
-     (send (enc n1 n2 n1 (ltk a b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace
-     (recv n1)
-     (send n2)
-     (recv (enc n2 n1 n1 (ltk a b))))
-  )
-)
-
-;;; The responder point-of-view
-(defskeleton uof 
-  (vars (a b name) (n2 text))
-  (defstrand resp 3 (a a) (b b) (n2 n2))
-  (non-orig (ltk a b))
-  (uniq-orig n2)
-  (comment "Responder point-of-view"))
-
-;;; The responder point-of-view
-(defskeleton uof 
-  (vars (a b name) (n2 text))
-  (defstrand resp 3 (a a) (b b) (n2 n2))
-  (non-orig (ltk a b))
-  (uniq-gen n2)
-  (comment "Responder point-of-view"))
-
-;;; The responder point-of-view
-(defskeleton uof 
-  (vars (a b name) (n2 text))
-  (defstrand resp 3 (a a) (b b) (n2 n2))
-  (non-orig (ltk a b))
-  (comment "Responder point-of-view"))
-
-(defprotocol uof2 basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace
-     (send n1)
-     (recv n2)
-     (send (enc n1 n2 (ltk a b))))
-    (uniq-orig n1)
-    )
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace
-     (recv n1)
-     (send n2)
-     (recv (enc n2 n1 (ltk a b))))
-  )
-)
-
-;;; The responder point-of-view
-(defskeleton uof2 
-  (vars (a b name) (n2 text))
-  (defstrand resp 3 (a a) (b b) (n2 n2))
-  (non-orig (ltk a b))
-  (uniq-orig n2)
-  (comment "Responder point-of-view"))
-
diff --git a/tst/uniq_orig_doesnt_fail.tst b/tst/uniq_orig_doesnt_fail.tst
deleted file mode 100644
--- a/tst/uniq_orig_doesnt_fail.tst
+++ /dev/null
@@ -1,115 +0,0 @@
-(herald "Uniq orig fail"
-  (comment This protocol demonstrates a bug in CPSA: points of
-    origination are not always preserved for skeleton uniq-orig
-    assumptions))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/uniq_orig_doesnt_fail.scm")
-
-(defprotocol uof basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace (send n1) (recv n2) (send (enc n1 n2 n1 (ltk a b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace (recv n1) (send n2) (recv (enc n2 n1 n1 (ltk a b))))))
-
-(defskeleton uof
-  (vars (n2 n1 text) (a b name))
-  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
-  (non-orig (ltk a b))
-  (uniq-orig n2)
-  (comment "Responder point-of-view")
-  (traces ((recv n1) (send n2) (recv (enc n2 n1 n1 (ltk a b)))))
-  (label 0)
-  (unrealized (0 2))
-  (dead)
-  (origs (n2 (0 1)))
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol uof basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace (send n1) (recv n2) (send (enc n1 n2 n1 (ltk a b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace (recv n1) (send n2) (recv (enc n2 n1 n1 (ltk a b))))))
-
-(defskeleton uof
-  (vars (n2 n1 text) (a b name))
-  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
-  (non-orig (ltk a b))
-  (uniq-gen n2)
-  (comment "Responder point-of-view")
-  (traces ((recv n1) (send n2) (recv (enc n2 n1 n1 (ltk a b)))))
-  (label 1)
-  (unrealized (0 2))
-  (dead)
-  (origs)
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
-
-(defprotocol uof basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace (send n1) (recv n2) (send (enc n1 n2 n1 (ltk a b)))))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace (recv n1) (send n2) (recv (enc n2 n1 n1 (ltk a b))))))
-
-(defskeleton uof
-  (vars (n2 n1 text) (a b name))
-  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
-  (non-orig (ltk a b))
-  (comment "Responder point-of-view")
-  (traces ((recv n1) (send n2) (recv (enc n2 n1 n1 (ltk a b)))))
-  (label 2)
-  (unrealized (0 2))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton uof
-  (vars (n1 text) (a b name))
-  (defstrand resp 3 (n2 n1) (n1 n1) (b b) (a a))
-  (defstrand init 3 (n1 n1) (n2 n1) (a a) (b b))
-  (precedes ((1 2) (0 2)))
-  (non-orig (ltk a b))
-  (operation encryption-test (added-strand init 3)
-    (enc n1 n1 n1 (ltk a b)) (0 2))
-  (traces ((recv n1) (send n1) (recv (enc n1 n1 n1 (ltk a b))))
-    ((send n1) (recv n1) (send (enc n1 n1 n1 (ltk a b)))))
-  (label 3)
-  (parent 2)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (b b) (n2 n1) (n1 n1))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol uof2 basic
-  (defrole init
-    (vars (a b name) (n1 n2 text))
-    (trace (send n1) (recv n2) (send (enc n1 n2 (ltk a b))))
-    (uniq-orig n1))
-  (defrole resp
-    (vars (b a name) (n2 n1 text))
-    (trace (recv n1) (send n2) (recv (enc n2 n1 (ltk a b))))))
-
-(defskeleton uof2
-  (vars (n2 n1 text) (a b name))
-  (defstrand resp 3 (n2 n2) (n1 n1) (b b) (a a))
-  (non-orig (ltk a b))
-  (uniq-orig n2)
-  (comment "Responder point-of-view")
-  (traces ((recv n1) (send n2) (recv (enc n2 n1 (ltk a b)))))
-  (label 4)
-  (unrealized (0 2))
-  (dead)
-  (origs (n2 (0 1)))
-  (comment "empty cohort"))
-
-(comment "Nothing left to do")
diff --git a/tst/uo.scm b/tst/uo.scm
new file mode 100644
--- /dev/null
+++ b/tst/uo.scm
@@ -0,0 +1,25 @@
+; uniq-orig
+;   Shows that our notion of uniquely-originating
+; does not necessarily correspond to the notion of
+; a freshly-generated nonce, because such values can
+; be used in non-carried positions before they are
+; received.  Here, the initiator originates n in its
+; message but no problem is detected with a responder
+; that sends a message encrypted under n as its first
+; message, before receiving n.
+
+(defprotocol uniq-orig basic
+  (defrole init
+    (vars (n text))
+    (trace (send n))
+    (uniq-orig n))
+  (defrole resp
+    (vars (m n text))
+    (trace
+     (send (enc m n))
+     (recv n))))
+
+(defskeleton uniq-orig
+  (vars (n text))
+  (defstrand init 1 (n n))
+  (defstrand resp 2 (n n)))
diff --git a/tst/uo.tst b/tst/uo.tst
new file mode 100644
--- /dev/null
+++ b/tst/uo.tst
@@ -0,0 +1,40 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/uo.scm")
+
+(defprotocol uniq-orig basic
+  (defrole init (vars (n text)) (trace (send n)) (uniq-orig n))
+  (defrole resp (vars (m n text)) (trace (send (enc m n)) (recv n)))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton uniq-orig
+  (vars (n m text))
+  (defstrand init 1 (n n))
+  (defstrand resp 2 (m m) (n n))
+  (uniq-orig n)
+  (traces ((send n)) ((send (enc m n)) (recv n)))
+  (label 0)
+  (unrealized (1 1))
+  (preskeleton)
+  (origs (n (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton uniq-orig
+  (vars (n m text))
+  (defstrand init 1 (n n))
+  (defstrand resp 2 (m m) (n n))
+  (precedes ((0 0) (1 1)))
+  (uniq-orig n)
+  (traces ((send n)) ((send (enc m n)) (recv n)))
+  (label 1)
+  (parent 0)
+  (realized)
+  (shape)
+  (maps ((0 1) ((n n) (m m))))
+  (origs (n (0 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/wang-hash.scm b/tst/wang-hash.scm
new file mode 100644
--- /dev/null
+++ b/tst/wang-hash.scm
@@ -0,0 +1,434 @@
+(herald "Wang's Fair Exchange Protocol" (bound 10))
+
+;; CPSA input file to represent
+;; Wang's Fair Exchange Protocol
+
+;; This macro implements the CPSA
+;; convention of regarding a hash as
+;; an asymmetric encryption.  The
+;; decryption key inverse to (pubk
+;; hash) is assumed non-originating
+;; in roles using hashing.
+
+;; (defmacro (hash x)
+;;  (enc "h" (cat "h" x)))
+
+;; Wang's encrypted format for the
+;; message payload.  Observe that m,
+;; k get their values from the
+;; like-named messages in the context
+;; where the macro is expanded.
+
+(defmacro (em)
+  (enc m k))
+
+;; The session label L as a fn of
+;; the values that *should be* the
+;; hashes of the encrypted message EM
+;; and the session key K.
+
+(defmacro (l-prime y x)
+  (cat a b t y x))
+
+;; The recipient can check that a
+;; session label has an l-prime where
+;; y is the hash of another parameter.
+;; Hence recipient roles use l-star.
+
+(defmacro (l-star e1 x)
+  (l-prime (hash e1) x))
+
+;; The Evidence of Origin is checked
+;; to be this fn of other parameters
+;; available to the recipient.
+
+(defmacro (eoo-star x e1 e2)
+  (enc (cat "eootag"
+	    (hash (l-star e1 x)) e2)
+       (privk "sign" a)))
+
+;; The Evidence of Receipt is computed
+;; as this fn of other parameters
+;; available to the recipient.
+
+(defmacro (eor-star x e1 e2)
+  (enc (cat "eortag"
+	    (hash (l-star e1 x)) e2)
+       (privk "sign" b)))
+
+;; The Recovery Request as computed by
+;; the recipient.
+
+(defmacro (rr-star x e1 e2)
+  (cat (l-star e1 x) e2
+       (eoo-star x e1 e2)
+       (eor-star x e1 e2)
+       (enc (cat "rcrq" (l-star e1 x) e2)
+            (privk "sign" b))))
+
+;; The Abort Token is checked
+;; to be this fn of other parameters
+;; available to the recipient.
+
+(defmacro (at-star e1 x)
+  (enc (enc "abrq" (l-star e1 x)
+            (privk "sign" a))
+       (privk "sign" t)))
+
+;; How the initiator computes the
+;; encrypted key package:
+
+(defmacro (ek l)
+  (enc (cat "keytag" (hash l) k r)
+       (pubk "encr" t)))
+
+;; The Initiator's computed
+;; version of L.
+
+(defmacro (l)
+  (l-prime (hash (enc m k)) (hash k)))
+
+;; The TTP can check that the session
+;; label L is this fn of other
+;; parameters available to the TTP.
+
+(defmacro (l-prime-prime y)
+  (cat a b t y (hash k)))
+
+;; The TTP can check that the EOO
+;; is this fn of other parameters
+;; available to the TTP.
+
+(defmacro (eoo-prime-prime y)
+  (enc (cat "eootag"
+            (hash (l-prime-prime y))
+	    (ek (l-prime-prime y)))
+       (privk "sign" a)))
+
+;; The TTP can check that the EOR
+;; is this fn of other parameters
+;; available to the TTP.
+
+(defmacro (eor-prime-prime y)
+  (enc (cat "eortag"
+	    (hash (l-prime-prime y))
+	    (ek (l-prime-prime y)))
+       (privk "sign" b)))
+
+;; The TTP can check that the RR
+;; is this fn of other parameters
+;; available to the TTP.
+
+(defmacro (rr-prime-prime y)
+  (cat (l-prime-prime y)
+       (ek (l-prime-prime y))
+       (eoo-prime-prime y)
+       (eor-prime-prime y)
+       (enc "rcrq" (l-prime-prime y)
+	    (ek (l-prime-prime y))
+            (privk "sign" b))))
+
+;; The TTP can check that the Confirmation
+;; Request is this fn of other parameters
+;; available to the TTP.
+
+(defmacro (cf-prime-prime y)
+  (cat (l-prime-prime y) (ek (l-prime-prime y))
+       (eoo-prime-prime y) (eor-prime-prime y)
+       (enc "cfrq" (l-prime-prime y)
+	    (ek (l-prime-prime y))
+            (privk "sign" b))))
+
+;; Defn of Wang's Fair Exchange Protocol.
+;; Closely follows the presentation in the
+;; figures in Section 3.  In the TTP roles,
+;; we have put a dummy send or receive in place
+;; of the state synchronization event to keep
+;; the indices matching the spec.
+
+(defprotocol wang basic
+
+  ;; Successful initiator run with no TTP involvement
+
+  (defrole init1
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (send (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (recv (eor-star (hash k) (enc m k) (ek (l))))
+     (send (cat k r)))
+    (non-orig (privk hash_id)))
+
+  ;; Aborted initiator run
+
+  (defrole init2
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (send (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (send (enc "abrq" (l) (privk "sign" a)))
+     (recv (enc "abcf"
+                (enc "abrq" (l) (privk "sign" a))
+                (privk "sign" t))))
+    (non-orig (privk hash_id)))
+
+  ;; Initiator run with abort request and forced recovery
+
+  (defrole init3
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (send (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (send (enc "abrq" (l) (privk "sign" a)))
+     (recv (eor-star (hash k) (enc m k) (ek (l)))))
+    (non-orig (privk hash_id)))
+
+  ;; Aborted initiator run, but with EOR received
+
+  (defrole init4
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (send (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (recv (eor-star (hash k) (enc m k) (ek (l))))
+     (send (enc "abrq" (l) (privk "sign" a)))
+     (recv (enc "abcf"
+                (enc "abrq" (l) (privk "sign" a))
+                (privk "sign" t))))
+    (non-orig (privk hash_id)))
+
+  ;; Initiator run with abort requested after EOR received,
+  ;; but recovery forced
+
+  (defrole init5
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (send (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (recv (eor-star (hash k) (enc m k) (ek (l))))
+     (send (enc "abrq" (l) (privk "sign" a)))
+     (recv (eor-star (hash k) (enc m k) (ek (l)))))
+    (non-orig (privk hash_id)))
+
+  ;; Successful responder run with no TTP involvement
+
+  (defrole resp1
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (recv (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (send (eor-star (hash k) (enc m k) (ek (l))))
+     (recv (cat k r)))
+    (non-orig (privk hash_id)))
+
+  ;;Responder run with recovery via TTP
+
+  (defrole resp2
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (recv (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (send (cat (l) (ek (l)) (eoo-star (hash k) (enc m k) (ek (l)))
+                (eor-star (hash k) (enc m k) (ek (l)))))
+     (send (cat (l) (ek (l)) (eoo-star (hash k) (enc m k) (ek (l)))
+                (eor-star (hash k) (enc m k) (ek (l)))
+                (enc "rcrq" (l) (ek (l)) (privk "sign" b))))
+     (recv (cat k r)))
+    (non-orig (privk hash_id)))
+
+  ;; Responder run with recovery request and forced abort
+
+  (defrole resp3
+    (vars (a b t hash_id name) (e1 e2 x mesg))
+    (trace
+     (recv (cat (l-star e1 x) e1 e2 (eoo-star x e1 e2)))
+     (send (cat (l-star e1 x) e2 (eoo-star x e1 e2) (eor-star x e1 e2)))
+     (send (cat (l-star e1 x) e2 (eoo-star x e1 e2) (eor-star x e1 e2)
+                (enc "rcrq" (l-star e1 x) e2 (privk "sign" b))))
+     (recv (enc "abcf"
+                (enc "abrq" (l-star e1 x) (privk "sign" a))
+                (privk "sign" t))))
+    (non-orig (privk hash_id)))
+
+  ;; TTP handles an abort
+
+  (defrole ttp-ab1
+    (vars (a b t hash_id name) (y x mesg))
+    (trace
+     (recv (enc "abrq" (l-prime y x) (privk "sign" a)))
+     (send (cat "sync-abrq"
+                (enc "abrq" (l-prime y x) (privk "sign" a))))
+     (send (enc "abcf"
+                (enc "abrq" (l-prime y x) (privk "sign" a))
+                (privk "sign" t))))
+    (non-orig (privk hash_id)))
+
+  ;; TTP forces recovery in response to an abort request
+
+  (defrole ttp-ab2
+    (vars (a b t hash_id name) (y x e mesg))
+    (trace
+     (recv (enc "abrq" (l-prime y x) (privk "sign" a)))
+     (recv (cat "sync-abrq"
+                (enc "eortag" (hash (l-prime y x)) e
+                     (privk "sign" b))))
+     (send (enc "eortag" (hash (l-prime y x)) e
+                (privk "sign" b))))
+    (non-orig (privk hash_id)))
+
+  ;; TTP handles a recovery
+
+  (defrole ttp-rc1
+    (vars (a b t hash_id name) (r text) (k skey) (y mesg))
+    (trace
+     (recv (rr-prime-prime y))
+     (send (cat "sync-rc-req"
+                (rr-prime-prime y)))
+     (send (cat k r)))
+    (non-orig (privk hash_id)))
+
+  ;; TTP forces abort in response to a recovery request
+
+  (defrole ttp-rc2
+    (vars (a b t hash_id name) (r text) (k skey) (y mesg))
+    (trace
+     (recv (rr-prime-prime y))
+     (recv (cat "sync-rc-req"
+		(enc "abrq" (l-prime-prime y) (privk "sign" a))))
+     (send (enc "abcf"
+                (enc "abrq" (l-prime-prime y) (privk "sign" a))
+                (privk "sign" t))))
+    (non-orig (privk hash_id)))
+
+  ;; TTP handles a confirm request
+
+  (defrole ttp-cf1
+    (vars (a b t hash_id name) (r text) (k skey) (y mesg))
+    (trace
+     (recv (cf-prime-prime y))
+     (send (cat "sync-cf-req"
+                (cf-prime-prime y)))
+     (send (enc (cf-prime-prime y) (privk "sign" t))))
+    (non-orig (privk hash_id)))
+
+  ;; TTP replies with abort token given confirm request
+
+  (defrole ttp-cf2
+    (vars (a b t hash_id name) (r text) (k skey) (y mesg))
+    (trace
+     (recv (cf-prime-prime y))
+     (recv (cat "sync-cf-req"
+                (enc "abrq"(l-prime-prime y) (privk "sign" a))))
+     (send (enc "abcf"
+                (enc "abrq"(l-prime-prime y) (privk "sign" a))
+                (privk "sign" t))))
+    (non-orig (privk hash_id))))
+
+;; End of Wang's protocol defn.
+
+;; Two experiments to prove Lemma 4.1
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand init1 1 (b b) (t t) (m m) (r r) (k k))
+  (deflistener m)
+  (non-orig
+   (privk "encr" t))
+  (uniq-orig m k)
+  (comment "Experiment 1 to prove Lemma 4.1."))
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand init1 1 (b b) (t t) (m m) (r r) (k k))
+  (deflistener k)
+  (non-orig
+   (privk "encr" t))
+  (uniq-orig m k)
+  (comment "Experiment 2 to prove Lemma 4.1."))
+
+;; We now have three experiments
+;; to prove Lemma 4.2, clause 1.
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand init1 3 (b b) (t t) (m m) (r r) (k k))
+  (non-orig
+   (privk "sign" b))
+  (comment "First of three experiments to prove Lemma 4.2, clause 1."))
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand init3 3 (b b) (t t) (m m) (r r) (k k))
+  (non-orig
+   (privk "sign" b))
+  (comment "Second of three experiments to prove Lemma 4.2, clause 1."))
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand init5 4 (b b) (t t) (m m) (r r) (k k))
+  (non-orig
+   (privk "sign" b))
+  (comment "Third of three experiments to prove Lemma 4.2, clause 1."))
+
+;; Two experiments to prove 4.2, Clause 2.
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand resp1 3 (a a) (t t) (m m) (r r) (k k))
+  (non-orig
+   (privk "sign" a))
+  (comment
+   "First of two experiments to prove Lemma 4.2, clause 2."))
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand resp2 4 (a a) (t t) (m m) (r r) (k k))
+  (non-orig
+   (privk "sign" a))
+  (comment
+   "Second of two experiments to prove Lemma 4.2, clause 2."))
+
+;; Experiment to prove Lemma 4.2, clause 3.
+
+(defskeleton wang
+  (vars (a b t hash_id name) (e1 e2 x mesg))
+  (defstrand resp3 4 (a a) (t t))
+  (non-orig
+   (privk "sign" a))
+  (comment
+   "Experiments to prove Lemma 4.2, clause 3."))
+
+;; One experiment to prove Lemma 4.3, Clause 1.
+
+(defskeleton wang
+  (vars (a b t hash_id name) (y x mesg))
+  (deflistener
+    (enc "abcf" (enc "abrq" (l-prime y x) (privk "sign" a))
+	 (privk "sign" t)))
+  (non-orig
+   (privk "sign" t))
+  (comment
+   "Experiments to prove Lemma 4.3, clause 1."))
+
+;; Three experiments to prove Lemma 4.3, Clause 2.
+
+(defskeleton wang
+  (vars (y x mesg) (a b t name))
+  (defstrand ttp-ab1 3 (y y) (x x) (a a) (b b) (t t))
+  (non-orig (privk "sign" a)  (privk "encr" t))
+  (comment
+   "Experiment 1 to prove Lemma 4.3, clause 2."))
+
+(defskeleton wang
+  (vars (a b t hash_id name) (r text) (k skey) (y mesg))
+  (defstrand ttp-rc2 3 (a a) (b b) (t t))
+  (non-orig (privk "sign" a)  (privk "encr" t))
+  (comment
+   "Experiment 2 to prove Lemma 4.3, clause 2."))
+
+(defskeleton wang
+  (vars (a b t hash_id name) (r text) (k skey) (y mesg))
+  (defstrand ttp-cf2 3 (a a) (b b) (t t))
+  (non-orig (privk "sign" a)  (privk "encr" t))
+  (comment
+   "Experiment 3 to prove Lemma 4.3, clause 2."))
diff --git a/tst/wang-hash.tst b/tst/wang-hash.tst
new file mode 100644
--- /dev/null
+++ b/tst/wang-hash.tst
@@ -0,0 +1,5437 @@
+(herald "Wang's Fair Exchange Protocol" (bound 10))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/wang-hash.scm")
+(comment "Strand count bounded at 10")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (hash e1) x) e1 e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
+      (recv
+        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
+      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (enc (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (deflistener m)
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (comment "Experiment 1 to prove Lemma 4.1.")
+  (traces
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))) ((recv m) (send m)))
+  (label 0)
+  (unrealized (1 0))
+  (preskeleton)
+  (origs (m (0 0)) (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (deflistener m)
+  (precedes ((0 0) (1 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (traces
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))) ((recv m) (send m)))
+  (label 1)
+  (parent 0)
+  (unrealized (1 0))
+  (origs (m (0 0)) (k (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (deflistener m)
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 1) (1 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation nonce-test (added-listener k) m (1 0) (enc m k))
+  (traces
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))) ((recv m) (send m))
+    ((recv k) (send k)))
+  (label 2)
+  (parent 1)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (deflistener m)
+  (deflistener k)
+  (defstrand init1 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 1) (0 0)) ((2 2) (1 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation nonce-test (displaced 0 3 init1 3) k (2 0)
+    (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+      (pubk "encr" t)))
+  (traces ((recv m) (send m)) ((recv k) (send k))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
+  (label 3)
+  (parent 2)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (deflistener m)
+  (deflistener k)
+  (defstrand ttp-rc1 3 (y (hash (enc m k))) (k k) (r r) (a a) (b b)
+    (t t))
+  (precedes ((0 0) (3 0)) ((2 1) (1 0)) ((3 2) (2 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation nonce-test (added-strand ttp-rc1 3) k (2 0)
+    (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+      (pubk "encr" t)))
+  (traces
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))) ((recv m) (send m))
+    ((recv k) (send k))
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k))
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (label 4)
+  (parent 2)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (deflistener m)
+  (defstrand init1 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation generalization deleted (1 0))
+  (traces ((recv m) (send m))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
+  (label 5)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((1 0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs (m (1 0)) (k (1 0))))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (deflistener m)
+  (defstrand ttp-rc1 3 (y (hash (enc m k))) (k k) (r r) (a a) (b b)
+    (t t))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))) ((recv m) (send m))
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k))
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (label 6)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0 1) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs (m (0 0)) (k (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (hash e1) x) e1 e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
+      (recv
+        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
+      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (enc (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (deflistener k)
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (comment "Experiment 2 to prove Lemma 4.1.")
+  (traces
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))) ((recv k) (send k)))
+  (label 7)
+  (unrealized (1 0))
+  (preskeleton)
+  (origs (m (0 0)) (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (deflistener k)
+  (precedes ((0 0) (1 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (traces
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))) ((recv k) (send k)))
+  (label 8)
+  (parent 7)
+  (unrealized (1 0))
+  (origs (m (0 0)) (k (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (deflistener k)
+  (defstrand init1 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation nonce-test (displaced 0 2 init1 3) k (1 0)
+    (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+      (pubk "encr" t)))
+  (traces ((recv k) (send k))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
+  (label 9)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps ((1 0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs (m (1 0)) (k (1 0))))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (deflistener k)
+  (defstrand ttp-rc1 3 (y (hash (enc m k))) (k k) (r r) (a a) (b b)
+    (t t))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation nonce-test (added-strand ttp-rc1 3) k (1 0)
+    (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+      (pubk "encr" t)))
+  (traces
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))) ((recv k) (send k))
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k))
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (label 10)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps ((0 1) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs (m (0 0)) (k (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (hash e1) x) e1 e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
+      (recv
+        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
+      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (enc (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (non-orig (privk "sign" b))
+  (comment "First of three experiments to prove Lemma 4.2, clause 1.")
+  (traces
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
+  (label 11)
+  (unrealized (0 1))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand resp1 2 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp1 2)
+    (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+        (pubk "encr" t)) (privk "sign" b)) (0 1))
+  (traces
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (send (cat k r)))
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (label 12)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand resp3 2 (e1 (enc m k))
+    (e2
+      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+        (pubk "encr" t))) (x (hash k)) (a a) (b b) (t t))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp3 2)
+    (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+        (pubk "encr" t)) (privk "sign" b)) (0 1))
+  (traces
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (send (cat k r)))
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))))
+  (label 13)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (hash e1) x) e1 e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
+      (recv
+        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
+      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (enc (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init3 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (non-orig (privk "sign" b))
+  (comment "Second of three experiments to prove Lemma 4.2, clause 1.")
+  (traces
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (label 14)
+  (unrealized (0 2))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init3 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand resp1 2 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 1) (0 2)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp1 2)
+    (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+        (pubk "encr" t)) (privk "sign" b)) (0 2))
+  (traces
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))))
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (label 15)
+  (parent 14)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init3 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand resp3 2 (e1 (enc m k))
+    (e2
+      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+        (pubk "encr" t))) (x (hash k)) (a a) (b b) (t t))
+  (precedes ((1 1) (0 2)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp3 2)
+    (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+        (pubk "encr" t)) (privk "sign" b)) (0 2))
+  (traces
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))))
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))))
+  (label 16)
+  (parent 14)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (hash e1) x) e1 e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
+      (recv
+        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
+      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (enc (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init5 4 (m m) (k k) (r r) (a a) (b b) (t t))
+  (non-orig (privk "sign" b))
+  (comment "Third of three experiments to prove Lemma 4.2, clause 1.")
+  (traces
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (label 17)
+  (unrealized (0 1) (0 3))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init5 4 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand resp1 2 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp1 2)
+    (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+        (pubk "encr" t)) (privk "sign" b)) (0 1))
+  (traces
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))))
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (label 18)
+  (parent 17)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init5 4 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand resp3 2 (e1 (enc m k))
+    (e2
+      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+        (pubk "encr" t))) (x (hash k)) (a a) (b b) (t t))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp3 2)
+    (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+        (pubk "encr" t)) (privk "sign" b)) (0 1))
+  (traces
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))))
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))))
+  (label 19)
+  (parent 17)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (hash e1) x) e1 e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
+      (recv
+        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
+      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (enc (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a t b name))
+  (defstrand resp1 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (non-orig (privk "sign" a))
+  (comment "First of two experiments to prove Lemma 4.2, clause 2.")
+  (traces
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
+  (label 20)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a t b name))
+  (defstrand resp1 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (added-strand init5 1)
+    (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+        (pubk "encr" t)) (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r)))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))))
+  (label 21)
+  (parent 20)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (t t) (m m) (r r) (k k) (b b))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (hash e1) x) e1 e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
+      (recv
+        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
+      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (enc (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a t b name))
+  (defstrand resp2 4 (m m) (k k) (r r) (a a) (b b) (t t))
+  (non-orig (privk "sign" a))
+  (comment "Second of two experiments to prove Lemma 4.2, clause 2.")
+  (traces
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
+  (label 22)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a t b name))
+  (defstrand resp2 4 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (added-strand init5 1)
+    (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+        (pubk "encr" t)) (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r)))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))))
+  (label 23)
+  (parent 22)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (t t) (m m) (r r) (k k) (b b))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (hash e1) x) e1 e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
+      (recv
+        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
+      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (enc (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (e1 e2 x mesg) (a t b name))
+  (defstrand resp3 4 (e1 e1) (e2 e2) (x x) (a a) (b b) (t t))
+  (non-orig (privk "sign" a))
+  (comment "Experiments to prove Lemma 4.2, clause 3.")
+  (traces
+    ((recv
+       (cat (cat a b t (hash e1) x) e1 e2
+         (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
+      (recv
+        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
+          (privk "sign" t)))))
+  (label 24)
+  (unrealized (0 0) (0 3))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a t b name))
+  (defstrand resp3 4 (e1 (enc m k))
+    (e2
+      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+        (pubk "encr" t))) (x (hash k)) (a a) (b b) (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (added-strand init5 1)
+    (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+        (pubk "encr" t)) (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))))
+  (label 25)
+  (parent 24)
+  (unrealized (0 3))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r r-0 text) (a t b name))
+  (defstrand resp3 4 (e1 (enc m k))
+    (e2
+      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+        (pubk "encr" t))) (x (hash k)) (a a) (b b) (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand init3 2 (m m) (k k) (r r-0) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((2 1) (0 3)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (added-strand init3 2)
+    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 3))
+  (traces
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a)))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
+  (label 26)
+  (parent 25)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (t t) (b b) (e1 (enc m k))
+        (e2
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))) (x (hash k)))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a t b name))
+  (defstrand resp3 4 (e1 (enc m k))
+    (e2
+      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+        (pubk "encr" t))) (x (hash k)) (a a) (b b) (t t))
+  (defstrand init3 2 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((1 1) (0 3)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init3 2)
+    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 3))
+  (traces
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
+  (label 27)
+  (parent 25)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (t t) (b b) (e1 (enc m k))
+        (e2
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))) (x (hash k)))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a t b name))
+  (defstrand resp3 4 (e1 (enc m k))
+    (e2
+      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+        (pubk "encr" t))) (x (hash k)) (a a) (b b) (t t))
+  (defstrand init5 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((1 2) (0 3)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init5 3)
+    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 3))
+  (traces
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
+  (label 28)
+  (parent 25)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (t t) (b b) (e1 (enc m k))
+        (e2
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))) (x (hash k)))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r r-0 text) (a t b name))
+  (defstrand resp3 4 (e1 (enc m k))
+    (e2
+      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+        (pubk "encr" t))) (x (hash k)) (a a) (b b) (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand init5 3 (m m) (k k) (r r-0) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((2 2) (0 3)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (added-strand init5 3)
+    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 3))
+  (traces
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a)))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
+             (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
+  (label 29)
+  (parent 25)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (t t) (b b) (e1 (enc m k))
+        (e2
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))) (x (hash k)))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (hash e1) x) e1 e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
+      (recv
+        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
+      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (enc (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (y x mesg) (a b t name))
+  (deflistener
+    (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+      (privk "sign" t)))
+  (non-orig (privk "sign" t))
+  (comment "Experiments to prove Lemma 4.3, clause 1.")
+  (traces
+    ((recv
+       (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+         (privk "sign" t)))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (label 30)
+  (unrealized (0 0))
+  (origs)
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton wang
+  (vars (y x mesg) (a b t name))
+  (deflistener
+    (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+      (privk "sign" t)))
+  (defstrand ttp-ab1 3 (y y) (x x) (a a) (b b) (t t))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "sign" t))
+  (operation encryption-test (added-strand ttp-ab1 3)
+    (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+      (privk "sign" t)) (0 0))
+  (traces
+    ((recv
+       (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+         (privk "sign" t)))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t))))
+    ((recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (label 31)
+  (parent 30)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (y y) (x x))))
+  (origs))
+
+(defskeleton wang
+  (vars (y mesg) (k skey) (r text) (a b t name))
+  (deflistener
+    (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+      (privk "sign" t)))
+  (defstrand ttp-rc2 3 (y y) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "sign" t))
+  (operation encryption-test (added-strand ttp-rc2 3)
+    (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+      (privk "sign" t)) (0 0))
+  (traces
+    ((recv
+       (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+         (privk "sign" t)))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t))))
+    ((recv
+       (cat (cat a b t y (hash k))
+         (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+         (enc "eootag" (hash a b t y (hash k))
+           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag" (hash a b t y (hash k))
+           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq" (cat a b t y (hash k))
+           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (label 32)
+  (parent 30)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (y y) (x (hash k)))))
+  (origs))
+
+(defskeleton wang
+  (vars (y mesg) (k skey) (r text) (a b t name))
+  (deflistener
+    (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+      (privk "sign" t)))
+  (defstrand ttp-cf2 3 (y y) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "sign" t))
+  (operation encryption-test (added-strand ttp-cf2 3)
+    (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+      (privk "sign" t)) (0 0))
+  (traces
+    ((recv
+       (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+         (privk "sign" t)))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t))))
+    ((recv
+       (cat (cat a b t y (hash k))
+         (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+         (enc "eootag" (hash a b t y (hash k))
+           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag" (hash a b t y (hash k))
+           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "cfrq" (cat a b t y (hash k))
+           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (label 33)
+  (parent 30)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (y y) (x (hash k)))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (hash e1) x) e1 e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
+      (recv
+        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
+      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (enc (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (y x mesg) (a b t name))
+  (defstrand ttp-ab1 3 (y y) (x x) (a a) (b b) (t t))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (comment "Experiment 1 to prove Lemma 4.3, clause 2.")
+  (traces
+    ((recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (label 34)
+  (unrealized (0 0))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a b t name))
+  (defstrand ttp-ab1 3 (y (hash (enc m k))) (x (hash k)) (a a) (b b)
+    (t t))
+  (defstrand init3 2 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 1) (0 0)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init3 2)
+    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (send
+        (cat "sync-abrq"
+          (enc "abrq" a b t (hash (enc m k)) (hash k)
+            (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
+  (label 35)
+  (parent 34)
+  (realized)
+  (shape)
+  (maps ((0) ((y (hash (enc m k))) (x (hash k)) (a a) (b b) (t t))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a b t name))
+  (defstrand ttp-ab1 3 (y (hash (enc m k))) (x (hash k)) (a a) (b b)
+    (t t))
+  (defstrand init5 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init5 3)
+    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (send
+        (cat "sync-abrq"
+          (enc "abrq" a b t (hash (enc m k)) (hash k)
+            (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
+  (label 36)
+  (parent 34)
+  (realized)
+  (shape)
+  (maps ((0) ((y (hash (enc m k))) (x (hash k)) (a a) (b b) (t t))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (hash e1) x) e1 e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
+      (recv
+        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
+      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (enc (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (y mesg) (k skey) (r text) (a b t name))
+  (defstrand ttp-rc2 3 (y y) (k k) (r r) (a a) (b b) (t t))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (comment "Experiment 2 to prove Lemma 4.3, clause 2.")
+  (traces
+    ((recv
+       (cat (cat a b t y (hash k))
+         (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+         (enc "eootag" (hash a b t y (hash k))
+           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag" (hash a b t y (hash k))
+           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq" (cat a b t y (hash k))
+           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (label 37)
+  (unrealized (0 0) (0 1))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a b t name))
+  (defstrand ttp-rc2 3 (y (hash (enc m k))) (k k) (r r) (a a) (b b)
+    (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init5 1)
+    (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+        (pubk "encr" t)) (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k))
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t (hash (enc m k)) (hash k)
+            (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))))
+  (label 38)
+  (parent 37)
+  (unrealized (0 1))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r r-0 text) (a b t name))
+  (defstrand ttp-rc2 3 (y (hash (enc m k))) (k k) (r r) (a a) (b b)
+    (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand init3 2 (m m) (k k) (r r-0) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((2 1) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init3 2)
+    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k))
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t (hash (enc m k)) (hash k)
+            (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a)))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
+  (label 39)
+  (parent 38)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (r r) (k k) (y (hash (enc m k))))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a b t name))
+  (defstrand ttp-rc2 3 (y (hash (enc m k))) (k k) (r r) (a a) (b b)
+    (t t))
+  (defstrand init3 2 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((1 1) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init3 2)
+    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k))
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t (hash (enc m k)) (hash k)
+            (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
+  (label 40)
+  (parent 38)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (r r) (k k) (y (hash (enc m k))))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a b t name))
+  (defstrand ttp-rc2 3 (y (hash (enc m k))) (k k) (r r) (a a) (b b)
+    (t t))
+  (defstrand init5 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((1 2) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init5 3)
+    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k))
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t (hash (enc m k)) (hash k)
+            (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
+  (label 41)
+  (parent 38)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (r r) (k k) (y (hash (enc m k))))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r r-0 text) (a b t name))
+  (defstrand ttp-rc2 3 (y (hash (enc m k))) (k k) (r r) (a a) (b b)
+    (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand init5 3 (m m) (k k) (r r-0) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((2 2) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init5 3)
+    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k))
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t (hash (enc m k)) (hash k)
+            (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a)))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
+             (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
+  (label 42)
+  (parent 38)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (r r) (k k) (y (hash (enc m k))))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t))
+          (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash (enc m k)) (hash k))
+            (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+              (pubk "encr" t)) (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (hash e1) x) e1 e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))))
+      (send
+        (cat (cat a b t (hash e1) x) e2
+          (enc "eootag" (hash a b t (hash e1) x) e2 (privk "sign" a))
+          (enc "eortag" (hash a b t (hash e1) x) e2 (privk "sign" b))
+          (enc "rcrq" (cat a b t (hash e1) x) e2 (privk "sign" b))))
+      (recv
+        (enc "abcf" (enc "abrq" a b t (hash e1) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (hash a b t y x) e (privk "sign" b))))
+      (send (enc "eortag" (hash a b t y x) e (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (enc (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (hash k))
+          (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+          (enc "eootag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag" (hash a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "cfrq" (cat a b t y (hash k))
+            (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (y mesg) (k skey) (r text) (a b t name))
+  (defstrand ttp-cf2 3 (y y) (k k) (r r) (a a) (b b) (t t))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (comment "Experiment 3 to prove Lemma 4.3, clause 2.")
+  (traces
+    ((recv
+       (cat (cat a b t y (hash k))
+         (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+         (enc "eootag" (hash a b t y (hash k))
+           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag" (hash a b t y (hash k))
+           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "cfrq" (cat a b t y (hash k))
+           (enc "keytag" (hash a b t y (hash k)) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (hash k) (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y (hash k) (privk "sign" a))
+          (privk "sign" t)))))
+  (label 43)
+  (unrealized (0 0) (0 1))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a b t name))
+  (defstrand ttp-cf2 3 (y (hash (enc m k))) (k k) (r r) (a a) (b b)
+    (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init5 1)
+    (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+      (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+        (pubk "encr" t)) (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k))
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "cfrq" (cat a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t (hash (enc m k)) (hash k)
+            (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))))
+  (label 44)
+  (parent 43)
+  (unrealized (0 1))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r r-0 text) (a b t name))
+  (defstrand ttp-cf2 3 (y (hash (enc m k))) (k k) (r r) (a a) (b b)
+    (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand init3 2 (m m) (k k) (r r-0) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((2 1) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init3 2)
+    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k))
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "cfrq" (cat a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t (hash (enc m k)) (hash k)
+            (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a)))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
+  (label 45)
+  (parent 44)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (r r) (k k) (y (hash (enc m k))))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a b t name))
+  (defstrand ttp-cf2 3 (y (hash (enc m k))) (k k) (r r) (a a) (b b)
+    (t t))
+  (defstrand init3 2 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((1 1) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init3 2)
+    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k))
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "cfrq" (cat a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t (hash (enc m k)) (hash k)
+            (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
+  (label 46)
+  (parent 44)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (r r) (k k) (y (hash (enc m k))))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a b t name))
+  (defstrand ttp-cf2 3 (y (hash (enc m k))) (k k) (r r) (a a) (b b)
+    (t t))
+  (defstrand init5 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((1 2) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init5 3)
+    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k))
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "cfrq" (cat a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t (hash (enc m k)) (hash k)
+            (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
+  (label 47)
+  (parent 44)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (r r) (k k) (y (hash (enc m k))))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r r-0 text) (a b t name))
+  (defstrand ttp-cf2 3 (y (hash (enc m k))) (k k) (r r) (a a) (b b)
+    (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand init5 3 (m m) (k k) (r r-0) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((2 2) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init5 3)
+    (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat (cat a b t (hash (enc m k)) (hash k))
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "cfrq" (cat a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t (hash (enc m k)) (hash k)
+            (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a))
+          (privk "sign" t))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r
+             (pubk "encr" t)) (privk "sign" a)))))
+    ((send
+       (cat (cat a b t (hash (enc m k)) (hash k)) (enc m k)
+         (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
+           (pubk "encr" t))
+         (enc "eootag" (hash a b t (hash (enc m k)) (hash k))
+           (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
+             (pubk "encr" t)) (privk "sign" a))))
+      (recv
+        (enc "eortag" (hash a b t (hash (enc m k)) (hash k))
+          (enc "keytag" (hash a b t (hash (enc m k)) (hash k)) k r-0
+            (pubk "encr" t)) (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (hash (enc m k)) (hash k) (privk "sign" a)))))
+  (label 48)
+  (parent 44)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (r r) (k k) (y (hash (enc m k))))))
+  (origs))
+
+(comment "Nothing left to do")
diff --git a/tst/wang-key-hash-tst.tst b/tst/wang-key-hash-tst.tst
new file mode 100644
--- /dev/null
+++ b/tst/wang-key-hash-tst.tst
@@ -0,0 +1,19236 @@
+(herald "Wang's Fair Exchange Protocol" (bound 10))
+
+(comment "CPSA 4.3.0")
+(comment "All input read from tst/wang-key-hash-tst.scm")
+(comment "Strand count bounded at 10")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (deflistener m)
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (comment "Experiment 1 to prove Lemma 4.1.")
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))) ((recv m) (send m)))
+  (label 0)
+  (unrealized (1 0))
+  (preskeleton)
+  (origs (m (0 0)) (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (deflistener m)
+  (precedes ((0 0) (1 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))) ((recv m) (send m)))
+  (label 1)
+  (parent 0)
+  (unrealized (1 0))
+  (origs (m (0 0)) (k (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (deflistener m)
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 1) (1 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation nonce-test (added-listener k) m (1 0) (enc m k))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))) ((recv m) (send m)) ((recv k) (send k)))
+  (label 2)
+  (parent 1)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (deflistener m)
+  (deflistener k)
+  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 1) (0 0)) ((2 2) (1 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation nonce-test (displaced 0 3 init1 3) k (2 0)
+    (enc "keytag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+  (traces ((recv m) (send m)) ((recv k) (send k))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (label 3)
+  (parent 2)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (deflistener m)
+  (deflistener k)
+  (defstrand ttp-rc1 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (precedes ((0 0) (3 0)) ((2 1) (1 0)) ((3 2) (2 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation nonce-test (added-strand ttp-rc1 3) k (2 0)
+    (enc "keytag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))) ((recv m) (send m)) ((recv k) (send k))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (send
+        (cat "sync-rc-req"
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (label 4)
+  (parent 2)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (deflistener m)
+  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation generalization deleted (1 0))
+  (traces ((recv m) (send m))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (label 5)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((1 0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs (m (1 0)) (k (1 0))))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (deflistener m)
+  (defstrand ttp-rc1 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))) ((recv m) (send m))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (send
+        (cat "sync-rc-req"
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (label 6)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0 1) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs (m (0 0)) (k (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (deflistener k)
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (comment "Experiment 2 to prove Lemma 4.1.")
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))) ((recv k) (send k)))
+  (label 7)
+  (unrealized (1 0))
+  (preskeleton)
+  (origs (m (0 0)) (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (deflistener k)
+  (precedes ((0 0) (1 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))) ((recv k) (send k)))
+  (label 8)
+  (parent 7)
+  (unrealized (1 0))
+  (origs (m (0 0)) (k (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (deflistener k)
+  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation nonce-test (displaced 0 2 init1 3) k (1 0)
+    (enc "keytag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+  (traces ((recv k) (send k))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (label 9)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps ((1 0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs (m (1 0)) (k (1 0))))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (deflistener k)
+  (defstrand ttp-rc1 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation nonce-test (added-strand ttp-rc1 3) k (1 0)
+    (enc "keytag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))) ((recv k) (send k))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (send
+        (cat "sync-rc-req"
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (label 10)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps ((0 1) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs (m (0 0)) (k (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (non-orig (privk "sign" b))
+  (comment "First of three experiments to prove Lemma 4.2, clause 1.")
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (label 11)
+  (unrealized (0 1))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand resp1 2 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp1 2)
+    (enc "eortag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" b)) (0 1))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r)))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (label 12)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand resp3 2 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp3 2)
+    (enc "eortag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" b)) (0 1))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r)))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))))
+  (label 13)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init3 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (non-orig (privk "sign" b))
+  (comment "Second of three experiments to prove Lemma 4.2, clause 1.")
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (label 14)
+  (unrealized (0 2))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init3 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand resp1 2 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 1) (0 2)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp1 2)
+    (enc "eortag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" b)) (0 2))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (label 15)
+  (parent 14)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init3 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand resp3 2 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (precedes ((1 1) (0 2)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp3 2)
+    (enc "eortag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" b)) (0 2))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))))
+  (label 16)
+  (parent 14)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init5 4 (r r) (m m) (a a) (b b) (t t) (k k))
+  (non-orig (privk "sign" b))
+  (comment "Third of three experiments to prove Lemma 4.2, clause 1.")
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (label 17)
+  (unrealized (0 1) (0 3))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init5 4 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand resp1 2 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp1 2)
+    (enc "eortag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" b)) (0 1))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (label 18)
+  (parent 17)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init5 4 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand resp3 2 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp3 2)
+    (enc "eortag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" b)) (0 1))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))))
+  (label 19)
+  (parent 17)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (r text) (m data) (a t b name) (k skey))
+  (defstrand resp1 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (non-orig (privk "sign" a))
+  (comment "First of two experiments to prove Lemma 4.2, clause 2.")
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (label 20)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (a t b name) (k skey))
+  (defstrand resp1 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (added-strand init5 1)
+    (enc "eootag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r)))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))))
+  (label 21)
+  (parent 20)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (t t) (m m) (r r) (k k) (b b))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (r text) (m data) (a t b name) (k skey))
+  (defstrand resp2 4 (r r) (m m) (a a) (b b) (t t) (k k))
+  (non-orig (privk "sign" a))
+  (comment "Second of two experiments to prove Lemma 4.2, clause 2.")
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (label 22)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (a t b name) (k skey))
+  (defstrand resp2 4 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (added-strand init5 1)
+    (enc "eootag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r)))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))))
+  (label 23)
+  (parent 22)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (t t) (m m) (r r) (k k) (b b))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (e1 e2 x mesg) (a t b name))
+  (defstrand resp3 4 (e1 e1) (e2 e2) (x x) (a a) (b b) (t t))
+  (non-orig (privk "sign" a))
+  (comment "Experiments to prove Lemma 4.2, clause 3.")
+  (traces
+    ((recv
+       (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+         (enc "eootag"
+           (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+           (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (label 24)
+  (unrealized (0 0) (0 3))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (a t b name) (k skey))
+  (defstrand resp3 4 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (added-strand init5 1)
+    (enc "eootag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))))
+  (label 25)
+  (parent 24)
+  (unrealized (0 3))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton wang
+  (vars (r r-0 text) (m data) (a t b name) (k skey))
+  (defstrand resp3 4 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand init3 2 (r r-0) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)) ((2 1) (0 3)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (added-strand init3 2)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 3))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a)))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 26)
+  (parent 25)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (t t) (b b) (e1 (enc m k))
+        (e2
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+        (x (enc "h" (cat "h" k))))))
+  (origs))
+
+(defskeleton wang
+  (vars (r text) (m data) (a t b name) (k skey))
+  (defstrand resp3 4 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init3 2 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)) ((1 1) (0 3)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init3 2)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 3))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 27)
+  (parent 25)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (t t) (b b) (e1 (enc m k))
+        (e2
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+        (x (enc "h" (cat "h" k))))))
+  (origs))
+
+(defskeleton wang
+  (vars (r text) (m data) (a t b name) (k skey))
+  (defstrand resp3 4 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init5 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)) ((1 2) (0 3)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init5 3)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 3))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 28)
+  (parent 25)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (t t) (b b) (e1 (enc m k))
+        (e2
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+        (x (enc "h" (cat "h" k))))))
+  (origs))
+
+(defskeleton wang
+  (vars (r r-0 text) (m data) (a t b name) (k skey))
+  (defstrand resp3 4 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand init5 3 (r r-0) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)) ((2 2) (0 3)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (added-strand init5 3)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 3))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a)))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 29)
+  (parent 25)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (t t) (b b) (e1 (enc m k))
+        (e2
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+        (x (enc "h" (cat "h" k))))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (y x mesg) (a b t name))
+  (deflistener
+    (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+      (privk "sign" t)))
+  (non-orig (privk "sign" t))
+  (comment "Experiments to prove Lemma 4.3, clause 1.")
+  (traces
+    ((recv
+       (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+         (privk "sign" t)))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (label 30)
+  (unrealized (0 0))
+  (origs)
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton wang
+  (vars (y x mesg) (a b t name))
+  (deflistener
+    (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+      (privk "sign" t)))
+  (defstrand ttp-ab1 3 (y y) (x x) (a a) (b b) (t t))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "sign" t))
+  (operation encryption-test (added-strand ttp-ab1 3)
+    (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+      (privk "sign" t)) (0 0))
+  (traces
+    ((recv
+       (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+         (privk "sign" t)))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t))))
+    ((recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (label 31)
+  (parent 30)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (y y) (x x))))
+  (origs))
+
+(defskeleton wang
+  (vars (y mesg) (r text) (a b t name) (k skey))
+  (deflistener
+    (enc "abcf"
+      (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+      (privk "sign" t)))
+  (defstrand ttp-rc2 3 (y y) (r r) (a a) (b b) (t t) (k k))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "sign" t))
+  (operation encryption-test (added-strand ttp-rc2 3)
+    (enc "abcf"
+      (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+      (privk "sign" t)) (0 0))
+  (traces
+    ((recv
+       (enc "abcf"
+         (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+         (privk "sign" t)))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t))))
+    ((recv
+       (cat (cat a b t y (enc "h" (cat "h" k)))
+         (enc "keytag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           k r (pubk "encr" t))
+         (enc "eootag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (label 32)
+  (parent 30)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (y y) (x (enc "h" (cat "h" k))))))
+  (origs))
+
+(defskeleton wang
+  (vars (y mesg) (r text) (a b t name) (k skey))
+  (deflistener
+    (enc "abcf"
+      (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+      (privk "sign" t)))
+  (defstrand ttp-cf2 3 (y y) (r r) (a a) (b b) (t t) (k k))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "sign" t))
+  (operation encryption-test (added-strand ttp-cf2 3)
+    (enc "abcf"
+      (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+      (privk "sign" t)) (0 0))
+  (traces
+    ((recv
+       (enc "abcf"
+         (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+         (privk "sign" t)))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t))))
+    ((recv
+       (cat (cat a b t y (enc "h" (cat "h" k)))
+         (enc "keytag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           k r (pubk "encr" t))
+         (enc "eootag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (label 33)
+  (parent 30)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (y y) (x (enc "h" (cat "h" k))))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (y x mesg) (a b t name))
+  (defstrand ttp-ab1 3 (y y) (x x) (a a) (b b) (t t))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (comment "Experiment 1 to prove Lemma 4.3, clause 2.")
+  (traces
+    ((recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (label 34)
+  (unrealized (0 0))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (a b t name) (k skey))
+  (defstrand ttp-ab1 3 (y (enc "h" (cat "h" (enc m k))))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init3 2 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 1) (0 0)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init3 2)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+         (enc "h" (cat "h" k)) (privk "sign" a)))
+      (send
+        (cat "sync-abrq"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 35)
+  (parent 34)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((y (enc "h" (cat "h" (enc m k)))) (x (enc "h" (cat "h" k))) (a a)
+        (b b) (t t))))
+  (origs))
+
+(defskeleton wang
+  (vars (r text) (m data) (a b t name) (k skey))
+  (defstrand ttp-ab1 3 (y (enc "h" (cat "h" (enc m k))))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init5 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init5 3)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+         (enc "h" (cat "h" k)) (privk "sign" a)))
+      (send
+        (cat "sync-abrq"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 36)
+  (parent 34)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((y (enc "h" (cat "h" (enc m k)))) (x (enc "h" (cat "h" k))) (a a)
+        (b b) (t t))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (y mesg) (r text) (a b t name) (k skey))
+  (defstrand ttp-rc2 3 (y y) (r r) (a a) (b b) (t t) (k k))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (comment "Experiment 2 to prove Lemma 4.3, clause 2.")
+  (traces
+    ((recv
+       (cat (cat a b t y (enc "h" (cat "h" k)))
+         (enc "keytag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           k r (pubk "encr" t))
+         (enc "eootag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (label 37)
+  (unrealized (0 0) (0 1))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (a b t name) (k skey))
+  (defstrand ttp-rc2 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init5 1)
+    (enc "eootag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))))
+  (label 38)
+  (parent 37)
+  (unrealized (0 1))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton wang
+  (vars (r r-0 text) (m data) (a b t name) (k skey))
+  (defstrand ttp-rc2 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand init3 2 (r r-0) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)) ((2 1) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init3 2)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a)))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 39)
+  (parent 38)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (t t) (r r) (k k)
+        (y (enc "h" (cat "h" (enc m k)))))))
+  (origs))
+
+(defskeleton wang
+  (vars (r text) (m data) (a b t name) (k skey))
+  (defstrand ttp-rc2 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (defstrand init3 2 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)) ((1 1) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init3 2)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 40)
+  (parent 38)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (t t) (r r) (k k)
+        (y (enc "h" (cat "h" (enc m k)))))))
+  (origs))
+
+(defskeleton wang
+  (vars (r text) (m data) (a b t name) (k skey))
+  (defstrand ttp-rc2 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (defstrand init5 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)) ((1 2) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init5 3)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 41)
+  (parent 38)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (t t) (r r) (k k)
+        (y (enc "h" (cat "h" (enc m k)))))))
+  (origs))
+
+(defskeleton wang
+  (vars (r r-0 text) (m data) (a b t name) (k skey))
+  (defstrand ttp-rc2 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand init5 3 (r r-0) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)) ((2 2) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init5 3)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a)))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 42)
+  (parent 38)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (t t) (r r) (k k)
+        (y (enc "h" (cat "h" (enc m k)))))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (y mesg) (r text) (a b t name) (k skey))
+  (defstrand ttp-cf2 3 (y y) (r r) (a a) (b b) (t t) (k k))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (comment "Experiment 3 to prove Lemma 4.3, clause 2.")
+  (traces
+    ((recv
+       (cat (cat a b t y (enc "h" (cat "h" k)))
+         (enc "keytag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           k r (pubk "encr" t))
+         (enc "eootag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (label 43)
+  (unrealized (0 0) (0 1))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (a b t name) (k skey))
+  (defstrand ttp-cf2 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init5 1)
+    (enc "eootag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "cfrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))))
+  (label 44)
+  (parent 43)
+  (unrealized (0 1))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton wang
+  (vars (r r-0 text) (m data) (a b t name) (k skey))
+  (defstrand ttp-cf2 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand init3 2 (r r-0) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)) ((2 1) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init3 2)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "cfrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a)))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 45)
+  (parent 44)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (t t) (r r) (k k)
+        (y (enc "h" (cat "h" (enc m k)))))))
+  (origs))
+
+(defskeleton wang
+  (vars (r text) (m data) (a b t name) (k skey))
+  (defstrand ttp-cf2 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (defstrand init3 2 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)) ((1 1) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init3 2)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "cfrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 46)
+  (parent 44)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (t t) (r r) (k k)
+        (y (enc "h" (cat "h" (enc m k)))))))
+  (origs))
+
+(defskeleton wang
+  (vars (r text) (m data) (a b t name) (k skey))
+  (defstrand ttp-cf2 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (defstrand init5 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)) ((1 2) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init5 3)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "cfrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 47)
+  (parent 44)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (t t) (r r) (k k)
+        (y (enc "h" (cat "h" (enc m k)))))))
+  (origs))
+
+(defskeleton wang
+  (vars (r r-0 text) (m data) (a b t name) (k skey))
+  (defstrand ttp-cf2 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand init5 3 (r r-0) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)) ((2 2) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init5 3)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "cfrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a)))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 48)
+  (parent 44)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (t t) (r r) (k k)
+        (y (enc "h" (cat "h" (enc m k)))))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (deflistener m)
+  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (goals
+    (forall ((r text) (m data) (b t a name) (k skey) (z z-0 strd))
+      (implies
+        (and (p "init1" z 1) (p "" z-0 2) (p "init1" "r" z r)
+          (p "init1" "m" z m) (p "init1" "a" z a) (p "init1" "b" z b)
+          (p "init1" "t" z t) (p "init1" "k" z k) (p "" "x" z-0 m)
+          (non (privk "encr" t)) (uniq-at m z 0) (uniq-at k z 0))
+        (or (and (p "init1" z 3) (prec z 2 z-0 0))
+          (exists ((z-1 strd))
+            (and (p "ttp-rc1" z-1 3)
+              (p "ttp-rc1" "y" z-1 (enc "h" (cat "h" (enc m k))))
+              (p "ttp-rc1" "r" z-1 r) (p "ttp-rc1" "a" z-1 a)
+              (p "ttp-rc1" "b" z-1 b) (p "ttp-rc1" "t" z-1 t)
+              (p "ttp-rc1" "k" z-1 k) (prec z 0 z-1 0)
+              (prec z-1 2 z-0 0)))))))
+  (traces ((recv m) (send m))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))))
+  (label 49)
+  (unrealized (0 0))
+  (preskeleton)
+  (origs (m (1 0)) (k (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (deflistener m)
+  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (traces ((recv m) (send m))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))))
+  (label 50)
+  (parent 49)
+  (unrealized (0 0))
+  (origs (m (1 0)) (k (1 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (deflistener m)
+  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (deflistener k)
+  (precedes ((1 0) (2 0)) ((2 1) (0 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation nonce-test (added-listener k) m (0 0) (enc m k))
+  (traces ((recv m) (send m))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))) ((recv k) (send k)))
+  (label 51)
+  (parent 50)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (deflistener m)
+  (deflistener k)
+  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 1) (0 0)) ((2 2) (1 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation nonce-test (displaced 1 3 init1 3) k (2 0)
+    (enc "keytag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+  (traces ((recv m) (send m)) ((recv k) (send k))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (label 52)
+  (parent 51)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (deflistener m)
+  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (deflistener k)
+  (defstrand ttp-rc1 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (precedes ((1 0) (3 0)) ((2 1) (0 0)) ((3 2) (2 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation nonce-test (added-strand ttp-rc1 3) k (2 0)
+    (enc "keytag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+  (traces ((recv m) (send m))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))) ((recv k) (send k))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (send
+        (cat "sync-rc-req"
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (label 53)
+  (parent 51)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (deflistener m)
+  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation generalization deleted (1 0))
+  (traces ((recv m) (send m))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (label 54)
+  (parent 52)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0 1) ((r r) (m m) (b b) (t t) (a a) (k k))))
+  (origs (m (1 0)) (k (1 0))))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (deflistener m)
+  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand ttp-rc1 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (precedes ((1 0) (2 0)) ((2 2) (0 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation generalization deleted (2 0))
+  (traces ((recv m) (send m))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a)))))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (send
+        (cat "sync-rc-req"
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (label 55)
+  (parent 53)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0 1) ((r r) (m m) (b b) (t t) (a a) (k k))))
+  (origs (m (1 0)) (k (1 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (deflistener k)
+  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (goals
+    (forall ((r text) (m data) (b t a name) (k skey) (z z-0 strd))
+      (implies
+        (and (p "init1" z 1) (p "" z-0 2) (p "init1" "r" z r)
+          (p "init1" "m" z m) (p "init1" "a" z a) (p "init1" "b" z b)
+          (p "init1" "t" z t) (p "init1" "k" z k) (p "" "x" z-0 k)
+          (non (privk "encr" t)) (uniq-at m z 0) (uniq-at k z 0))
+        (or (and (p "init1" z 3) (prec z 2 z-0 0))
+          (exists ((z-1 strd))
+            (and (p "ttp-rc1" z-1 3)
+              (p "ttp-rc1" "y" z-1 (enc "h" (cat "h" (enc m k))))
+              (p "ttp-rc1" "r" z-1 r) (p "ttp-rc1" "a" z-1 a)
+              (p "ttp-rc1" "b" z-1 b) (p "ttp-rc1" "t" z-1 t)
+              (p "ttp-rc1" "k" z-1 k) (prec z 0 z-1 0)
+              (prec z-1 2 z-0 0)))))))
+  (traces ((recv k) (send k))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))))
+  (label 56)
+  (unrealized (0 0))
+  (preskeleton)
+  (origs (m (1 0)) (k (1 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (deflistener k)
+  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (traces ((recv k) (send k))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))))
+  (label 57)
+  (parent 56)
+  (unrealized (0 0))
+  (origs (m (1 0)) (k (1 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (deflistener k)
+  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation nonce-test (displaced 1 2 init1 3) k (0 0)
+    (enc "keytag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+  (traces ((recv k) (send k))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (label 58)
+  (parent 57)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0 1) ((r r) (m m) (b b) (t t) (a a) (k k))))
+  (origs (m (1 0)) (k (1 0))))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (deflistener k)
+  (defstrand init1 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand ttp-rc1 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (precedes ((1 0) (2 0)) ((2 2) (0 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation nonce-test (added-strand ttp-rc1 3) k (0 0)
+    (enc "keytag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+  (traces ((recv k) (send k))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a)))))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (send
+        (cat "sync-rc-req"
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (label 59)
+  (parent 57)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0 1) ((r r) (m m) (b b) (t t) (a a) (k k))))
+  (origs (m (1 0)) (k (1 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (non-orig (privk "sign" b))
+  (goals
+    (forall ((r text) (m data) (b t a name) (k skey) (z strd))
+      (implies
+        (and (p "init1" z 3) (p "init1" "r" z r) (p "init1" "m" z m)
+          (p "init1" "a" z a) (p "init1" "b" z b) (p "init1" "t" z t)
+          (p "init1" "k" z k) (non (privk "sign" b)))
+        (or
+          (exists ((z-0 strd))
+            (and (p "resp1" z-0 2) (p "resp1" "r" z-0 r)
+              (p "resp1" "m" z-0 m) (p "resp1" "a" z-0 a)
+              (p "resp1" "b" z-0 b) (p "resp1" "t" z-0 t)
+              (p "resp1" "k" z-0 k) (prec z-0 1 z 1)))
+          (exists ((z-0 strd))
+            (and (p "resp3" z-0 2) (p "resp3" "e1" z-0 (enc m k))
+              (p "resp3" "e2" z-0
+                (enc "keytag"
+                  (enc "h"
+                    (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                      (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+              (p "resp3" "x" z-0 (enc "h" (cat "h" k)))
+              (p "resp3" "a" z-0 a) (p "resp3" "b" z-0 b)
+              (p "resp3" "t" z-0 t) (prec z-0 1 z 1)))))))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (label 60)
+  (unrealized (0 1))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand resp1 2 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp1 2)
+    (enc "eortag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" b)) (0 1))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r)))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (label 61)
+  (parent 60)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0) ((r r) (m m) (b b) (t t) (a a) (k k))))
+  (origs))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init1 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand resp3 2 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp3 2)
+    (enc "eortag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" b)) (0 1))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r)))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))))
+  (label 62)
+  (parent 60)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0) ((r r) (m m) (b b) (t t) (a a) (k k))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init3 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (non-orig (privk "sign" b))
+  (goals
+    (forall ((r text) (m data) (b t a name) (k skey) (z strd))
+      (implies
+        (and (p "init3" z 3) (p "init3" "r" z r) (p "init3" "m" z m)
+          (p "init3" "a" z a) (p "init3" "b" z b) (p "init3" "t" z t)
+          (p "init3" "k" z k) (non (privk "sign" b)))
+        (or
+          (exists ((z-0 strd))
+            (and (p "resp1" z-0 2) (p "resp1" "r" z-0 r)
+              (p "resp1" "m" z-0 m) (p "resp1" "a" z-0 a)
+              (p "resp1" "b" z-0 b) (p "resp1" "t" z-0 t)
+              (p "resp1" "k" z-0 k) (prec z-0 1 z 2)))
+          (exists ((z-0 strd))
+            (and (p "resp3" z-0 2) (p "resp3" "e1" z-0 (enc m k))
+              (p "resp3" "e2" z-0
+                (enc "keytag"
+                  (enc "h"
+                    (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                      (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+              (p "resp3" "x" z-0 (enc "h" (cat "h" k)))
+              (p "resp3" "a" z-0 a) (p "resp3" "b" z-0 b)
+              (p "resp3" "t" z-0 t) (prec z-0 1 z 2)))))))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (label 63)
+  (unrealized (0 2))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init3 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand resp1 2 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 1) (0 2)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp1 2)
+    (enc "eortag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" b)) (0 2))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (label 64)
+  (parent 63)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0) ((r r) (m m) (b b) (t t) (a a) (k k))))
+  (origs))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init3 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand resp3 2 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (precedes ((1 1) (0 2)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp3 2)
+    (enc "eortag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" b)) (0 2))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))))
+  (label 65)
+  (parent 63)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0) ((r r) (m m) (b b) (t t) (a a) (k k))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init5 4 (r r) (m m) (a a) (b b) (t t) (k k))
+  (non-orig (privk "sign" b))
+  (goals
+    (forall ((r text) (m data) (b t a name) (k skey) (z strd))
+      (implies
+        (and (p "init5" z 4) (p "init5" "r" z r) (p "init5" "m" z m)
+          (p "init5" "a" z a) (p "init5" "b" z b) (p "init5" "t" z t)
+          (p "init5" "k" z k) (non (privk "sign" b)))
+        (or
+          (exists ((z-0 strd))
+            (and (p "resp1" z-0 2) (p "resp1" "r" z-0 r)
+              (p "resp1" "m" z-0 m) (p "resp1" "a" z-0 a)
+              (p "resp1" "b" z-0 b) (p "resp1" "t" z-0 t)
+              (p "resp1" "k" z-0 k) (prec z-0 1 z 1)))
+          (exists ((z-0 strd))
+            (and (p "resp3" z-0 2) (p "resp3" "e1" z-0 (enc m k))
+              (p "resp3" "e2" z-0
+                (enc "keytag"
+                  (enc "h"
+                    (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                      (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+              (p "resp3" "x" z-0 (enc "h" (cat "h" k)))
+              (p "resp3" "a" z-0 a) (p "resp3" "b" z-0 b)
+              (p "resp3" "t" z-0 t) (prec z-0 1 z 1)))))))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (label 66)
+  (unrealized (0 1) (0 3))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init5 4 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand resp1 2 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp1 2)
+    (enc "eortag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" b)) (0 1))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (label 67)
+  (parent 66)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0) ((r r) (m m) (b b) (t t) (a a) (k k))))
+  (origs))
+
+(defskeleton wang
+  (vars (r text) (m data) (b t a name) (k skey))
+  (defstrand init5 4 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand resp3 2 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp3 2)
+    (enc "eortag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" b)) (0 1))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))))
+  (label 68)
+  (parent 66)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0) ((r r) (m m) (b b) (t t) (a a) (k k))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (r text) (m data) (a t b name) (k skey))
+  (defstrand resp1 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (non-orig (privk "sign" a))
+  (goals
+    (forall ((r text) (m data) (a t b name) (k skey) (z strd))
+      (implies
+        (and (p "resp1" z 3) (p "resp1" "r" z r) (p "resp1" "m" z m)
+          (p "resp1" "a" z a) (p "resp1" "b" z b) (p "resp1" "t" z t)
+          (p "resp1" "k" z k) (non (privk "sign" a)))
+        (exists ((z-0 strd))
+          (and (p "init5" z-0 1) (p "init5" "r" z-0 r)
+            (p "init5" "m" z-0 m) (p "init5" "a" z-0 a)
+            (p "init5" "b" z-0 b) (p "init5" "t" z-0 t)
+            (p "init5" "k" z-0 k) (prec z-0 0 z 0))))))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (label 69)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (a t b name) (k skey))
+  (defstrand resp1 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (added-strand init5 1)
+    (enc "eootag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r)))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))))
+  (label 70)
+  (parent 69)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0) ((r r) (m m) (a a) (t t) (b b) (k k))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (r text) (m data) (a t b name) (k skey))
+  (defstrand resp2 4 (r r) (m m) (a a) (b b) (t t) (k k))
+  (non-orig (privk "sign" a))
+  (goals
+    (forall ((r text) (m data) (a t b name) (k skey) (z strd))
+      (implies
+        (and (p "resp2" z 4) (p "resp2" "r" z r) (p "resp2" "m" z m)
+          (p "resp2" "a" z a) (p "resp2" "b" z b) (p "resp2" "t" z t)
+          (p "resp2" "k" z k) (non (privk "sign" a)))
+        (exists ((z-0 strd))
+          (and (p "init5" z-0 1) (p "init5" "r" z-0 r)
+            (p "init5" "m" z-0 m) (p "init5" "a" z-0 a)
+            (p "init5" "b" z-0 b) (p "init5" "t" z-0 t)
+            (p "init5" "k" z-0 k) (prec z-0 0 z 0))))))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (label 71)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (a t b name) (k skey))
+  (defstrand resp2 4 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (added-strand init5 1)
+    (enc "eootag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r)))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))))
+  (label 72)
+  (parent 71)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0) ((r r) (m m) (a a) (t t) (b b) (k k))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (e1 e2 x mesg) (a t b name))
+  (defstrand resp3 4 (e1 e1) (e2 e2) (x x) (a a) (b b) (t t))
+  (non-orig (privk "sign" a))
+  (goals
+    (forall ((e1 e2 x mesg) (a t b name) (z strd))
+      (implies
+        (and (p "resp3" z 4) (p "resp3" "e1" z e1) (p "resp3" "e2" z e2)
+          (p "resp3" "x" z x) (p "resp3" "a" z a) (p "resp3" "b" z b)
+          (p "resp3" "t" z t) (non (privk "sign" a)))
+        (or
+          (exists ((r text) (m data) (k skey) (z-0 strd))
+            (and (= e1 (enc m k))
+              (= e2
+                (enc "keytag"
+                  (enc "h"
+                    (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                      (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+              (= x (enc "h" (cat "h" k))) (p "init3" z-0 2)
+              (p "resp3" "e1" z (enc m k))
+              (p "resp3" "e2" z
+                (enc "keytag"
+                  (enc "h"
+                    (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                      (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+              (p "resp3" "x" z (enc "h" (cat "h" k)))
+              (p "init3" "r" z-0 r) (p "init3" "m" z-0 m)
+              (p "init3" "a" z-0 a) (p "init3" "b" z-0 b)
+              (p "init3" "t" z-0 t) (p "init3" "k" z-0 k)
+              (prec z-0 0 z 0) (prec z-0 1 z 3)))
+          (exists ((r r-0 text) (m data) (k skey) (z-0 z-1 strd))
+            (and (= e1 (enc m k))
+              (= e2
+                (enc "keytag"
+                  (enc "h"
+                    (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                      (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+              (= x (enc "h" (cat "h" k))) (p "init5" z-0 1)
+              (p "init3" z-1 2) (p "resp3" "e1" z (enc m k))
+              (p "resp3" "e2" z
+                (enc "keytag"
+                  (enc "h"
+                    (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                      (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+              (p "resp3" "x" z (enc "h" (cat "h" k)))
+              (p "init5" "r" z-0 r) (p "init5" "m" z-0 m)
+              (p "init5" "a" z-0 a) (p "init5" "b" z-0 b)
+              (p "init5" "t" z-0 t) (p "init5" "k" z-0 k)
+              (p "init3" "r" z-1 r-0) (p "init3" "m" z-1 m)
+              (p "init3" "a" z-1 a) (p "init3" "b" z-1 b)
+              (p "init3" "t" z-1 t) (p "init3" "k" z-1 k)
+              (prec z-0 0 z 0) (prec z-1 1 z 3)))
+          (exists ((r text) (m data) (k skey) (z-0 strd))
+            (and (= e1 (enc m k))
+              (= e2
+                (enc "keytag"
+                  (enc "h"
+                    (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                      (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+              (= x (enc "h" (cat "h" k))) (p "init5" z-0 3)
+              (p "resp3" "e1" z (enc m k))
+              (p "resp3" "e2" z
+                (enc "keytag"
+                  (enc "h"
+                    (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                      (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+              (p "resp3" "x" z (enc "h" (cat "h" k)))
+              (p "init5" "r" z-0 r) (p "init5" "m" z-0 m)
+              (p "init5" "a" z-0 a) (p "init5" "b" z-0 b)
+              (p "init5" "t" z-0 t) (p "init5" "k" z-0 k)
+              (prec z-0 0 z 0) (prec z-0 2 z 3)))
+          (exists ((r r-0 text) (m data) (k skey) (z-0 z-1 strd))
+            (and (= e1 (enc m k))
+              (= e2
+                (enc "keytag"
+                  (enc "h"
+                    (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                      (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+              (= x (enc "h" (cat "h" k))) (p "init5" z-0 1)
+              (p "init5" z-1 3) (p "resp3" "e1" z (enc m k))
+              (p "resp3" "e2" z
+                (enc "keytag"
+                  (enc "h"
+                    (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                      (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+              (p "resp3" "x" z (enc "h" (cat "h" k)))
+              (p "init5" "r" z-0 r) (p "init5" "m" z-0 m)
+              (p "init5" "a" z-0 a) (p "init5" "b" z-0 b)
+              (p "init5" "t" z-0 t) (p "init5" "k" z-0 k)
+              (p "init5" "r" z-1 r-0) (p "init5" "m" z-1 m)
+              (p "init5" "a" z-1 a) (p "init5" "b" z-1 b)
+              (p "init5" "t" z-1 t) (p "init5" "k" z-1 k)
+              (prec z-0 0 z 0) (prec z-1 2 z 3)))))))
+  (traces
+    ((recv
+       (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+         (enc "eootag"
+           (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+           (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (label 73)
+  (unrealized (0 0) (0 3))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (a t b name) (k skey))
+  (defstrand resp3 4 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (added-strand init5 1)
+    (enc "eootag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))))
+  (label 74)
+  (parent 73)
+  (unrealized (0 3))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton wang
+  (vars (r r-0 text) (m data) (a t b name) (k skey))
+  (defstrand resp3 4 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand init3 2 (r r-0) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)) ((2 1) (0 3)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (added-strand init3 2)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 3))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a)))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 75)
+  (parent 74)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((0)
+      ((e1 (enc m k))
+        (e2
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+        (x (enc "h" (cat "h" k))) (a a) (t t) (b b))))
+  (origs))
+
+(defskeleton wang
+  (vars (r text) (m data) (a t b name) (k skey))
+  (defstrand resp3 4 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init3 2 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)) ((1 1) (0 3)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init3 2)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 3))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 76)
+  (parent 74)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((0)
+      ((e1 (enc m k))
+        (e2
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+        (x (enc "h" (cat "h" k))) (a a) (t t) (b b))))
+  (origs))
+
+(defskeleton wang
+  (vars (r text) (m data) (a t b name) (k skey))
+  (defstrand resp3 4 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init5 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)) ((1 2) (0 3)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init5 3)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 3))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 77)
+  (parent 74)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((0)
+      ((e1 (enc m k))
+        (e2
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+        (x (enc "h" (cat "h" k))) (a a) (t t) (b b))))
+  (origs))
+
+(defskeleton wang
+  (vars (r r-0 text) (m data) (a t b name) (k skey))
+  (defstrand resp3 4 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand init5 3 (r r-0) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)) ((2 2) (0 3)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (added-strand init5 3)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 3))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a)))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 78)
+  (parent 74)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((0)
+      ((e1 (enc m k))
+        (e2
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+        (x (enc "h" (cat "h" k))) (a a) (t t) (b b))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (y x mesg) (a b t name))
+  (deflistener
+    (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+      (privk "sign" t)))
+  (non-orig (privk "sign" t))
+  (goals
+    (forall ((y x mesg) (a b t name) (z strd))
+      (implies
+        (and (p "" z 2)
+          (p "" "x" z
+            (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+              (privk "sign" t))) (non (privk "sign" t)))
+        (or
+          (exists ((z-0 strd))
+            (and (p "ttp-ab1" z-0 3) (p "ttp-ab1" "y" z-0 y)
+              (p "ttp-ab1" "x" z-0 x) (p "ttp-ab1" "a" z-0 a)
+              (p "ttp-ab1" "b" z-0 b) (p "ttp-ab1" "t" z-0 t)
+              (prec z-0 2 z 0)))
+          (exists ((r text) (k skey) (z-0 strd))
+            (and (= x (enc "h" (cat "h" k))) (p "ttp-rc2" z-0 3)
+              (p "" "x" z
+                (enc "abcf"
+                  (enc "abrq" a b t y (enc "h" (cat "h" k))
+                    (privk "sign" a)) (privk "sign" t)))
+              (p "ttp-rc2" "y" z-0 y) (p "ttp-rc2" "r" z-0 r)
+              (p "ttp-rc2" "a" z-0 a) (p "ttp-rc2" "b" z-0 b)
+              (p "ttp-rc2" "t" z-0 t) (p "ttp-rc2" "k" z-0 k)
+              (prec z-0 2 z 0)))
+          (exists ((r text) (k skey) (z-0 strd))
+            (and (= x (enc "h" (cat "h" k))) (p "ttp-cf2" z-0 3)
+              (p "" "x" z
+                (enc "abcf"
+                  (enc "abrq" a b t y (enc "h" (cat "h" k))
+                    (privk "sign" a)) (privk "sign" t)))
+              (p "ttp-cf2" "y" z-0 y) (p "ttp-cf2" "r" z-0 r)
+              (p "ttp-cf2" "a" z-0 a) (p "ttp-cf2" "b" z-0 b)
+              (p "ttp-cf2" "t" z-0 t) (p "ttp-cf2" "k" z-0 k)
+              (prec z-0 2 z 0)))))))
+  (traces
+    ((recv
+       (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+         (privk "sign" t)))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (label 79)
+  (unrealized (0 0))
+  (origs)
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton wang
+  (vars (y x mesg) (a b t name))
+  (deflistener
+    (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+      (privk "sign" t)))
+  (defstrand ttp-ab1 3 (y y) (x x) (a a) (b b) (t t))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "sign" t))
+  (operation encryption-test (added-strand ttp-ab1 3)
+    (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+      (privk "sign" t)) (0 0))
+  (traces
+    ((recv
+       (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+         (privk "sign" t)))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t))))
+    ((recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (label 80)
+  (parent 79)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0) ((y y) (x x) (a a) (b b) (t t))))
+  (origs))
+
+(defskeleton wang
+  (vars (y mesg) (r text) (a b t name) (k skey))
+  (deflistener
+    (enc "abcf"
+      (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+      (privk "sign" t)))
+  (defstrand ttp-rc2 3 (y y) (r r) (a a) (b b) (t t) (k k))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "sign" t))
+  (operation encryption-test (added-strand ttp-rc2 3)
+    (enc "abcf"
+      (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+      (privk "sign" t)) (0 0))
+  (traces
+    ((recv
+       (enc "abcf"
+         (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+         (privk "sign" t)))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t))))
+    ((recv
+       (cat (cat a b t y (enc "h" (cat "h" k)))
+         (enc "keytag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           k r (pubk "encr" t))
+         (enc "eootag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (label 81)
+  (parent 79)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0) ((y y) (x (enc "h" (cat "h" k))) (a a) (b b) (t t))))
+  (origs))
+
+(defskeleton wang
+  (vars (y mesg) (r text) (a b t name) (k skey))
+  (deflistener
+    (enc "abcf"
+      (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+      (privk "sign" t)))
+  (defstrand ttp-cf2 3 (y y) (r r) (a a) (b b) (t t) (k k))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "sign" t))
+  (operation encryption-test (added-strand ttp-cf2 3)
+    (enc "abcf"
+      (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+      (privk "sign" t)) (0 0))
+  (traces
+    ((recv
+       (enc "abcf"
+         (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+         (privk "sign" t)))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t))))
+    ((recv
+       (cat (cat a b t y (enc "h" (cat "h" k)))
+         (enc "keytag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           k r (pubk "encr" t))
+         (enc "eootag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (label 82)
+  (parent 79)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps ((0) ((y y) (x (enc "h" (cat "h" k))) (a a) (b b) (t t))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (y x mesg) (a b t name))
+  (defstrand ttp-ab1 3 (y y) (x x) (a a) (b b) (t t))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (goals
+    (forall ((y x mesg) (a b t name) (z strd))
+      (implies
+        (and (p "ttp-ab1" z 3) (p "ttp-ab1" "y" z y)
+          (p "ttp-ab1" "x" z x) (p "ttp-ab1" "a" z a)
+          (p "ttp-ab1" "b" z b) (p "ttp-ab1" "t" z t)
+          (non (privk "encr" t)) (non (privk "sign" a)))
+        (or
+          (exists ((r text) (m data) (k skey) (z-0 strd))
+            (and (= y (enc "h" (cat "h" (enc m k))))
+              (= x (enc "h" (cat "h" k))) (p "init3" z-0 2)
+              (p "ttp-ab1" "y" z (enc "h" (cat "h" (enc m k))))
+              (p "ttp-ab1" "x" z (enc "h" (cat "h" k)))
+              (p "init3" "r" z-0 r) (p "init3" "m" z-0 m)
+              (p "init3" "a" z-0 a) (p "init3" "b" z-0 b)
+              (p "init3" "t" z-0 t) (p "init3" "k" z-0 k)
+              (prec z-0 1 z 0)))
+          (exists ((r text) (m data) (k skey) (z-0 strd))
+            (and (= y (enc "h" (cat "h" (enc m k))))
+              (= x (enc "h" (cat "h" k))) (p "init5" z-0 3)
+              (p "ttp-ab1" "y" z (enc "h" (cat "h" (enc m k))))
+              (p "ttp-ab1" "x" z (enc "h" (cat "h" k)))
+              (p "init5" "r" z-0 r) (p "init5" "m" z-0 m)
+              (p "init5" "a" z-0 a) (p "init5" "b" z-0 b)
+              (p "init5" "t" z-0 t) (p "init5" "k" z-0 k)
+              (prec z-0 2 z 0)))))))
+  (traces
+    ((recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (label 83)
+  (unrealized (0 0))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (a b t name) (k skey))
+  (defstrand ttp-ab1 3 (y (enc "h" (cat "h" (enc m k))))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init3 2 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 1) (0 0)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init3 2)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+         (enc "h" (cat "h" k)) (privk "sign" a)))
+      (send
+        (cat "sync-abrq"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 84)
+  (parent 83)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((0)
+      ((y (enc "h" (cat "h" (enc m k)))) (x (enc "h" (cat "h" k))) (a a)
+        (b b) (t t))))
+  (origs))
+
+(defskeleton wang
+  (vars (r text) (m data) (a b t name) (k skey))
+  (defstrand ttp-ab1 3 (y (enc "h" (cat "h" (enc m k))))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init5 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init5 3)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+         (enc "h" (cat "h" k)) (privk "sign" a)))
+      (send
+        (cat "sync-abrq"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 85)
+  (parent 83)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((0)
+      ((y (enc "h" (cat "h" (enc m k)))) (x (enc "h" (cat "h" k))) (a a)
+        (b b) (t t))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1))))))
+
+(defskeleton wang
+  (vars (y mesg) (r text) (a b t name) (k skey))
+  (defstrand ttp-rc2 3 (y y) (r r) (a a) (b b) (t t) (k k))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (goals
+    (forall ((y mesg) (r text) (a b t name) (k skey) (z strd))
+      (implies
+        (and (p "ttp-rc2" z 3) (p "ttp-rc2" "y" z y)
+          (p "ttp-rc2" "r" z r) (p "ttp-rc2" "a" z a)
+          (p "ttp-rc2" "b" z b) (p "ttp-rc2" "t" z t)
+          (p "ttp-rc2" "k" z k) (non (privk "encr" t))
+          (non (privk "sign" a)))
+        (or
+          (exists ((m data) (z-0 strd))
+            (and (= y (enc "h" (cat "h" (enc m k)))) (p "init3" z-0 2)
+              (p "ttp-rc2" "y" z (enc "h" (cat "h" (enc m k))))
+              (p "init3" "r" z-0 r) (p "init3" "m" z-0 m)
+              (p "init3" "a" z-0 a) (p "init3" "b" z-0 b)
+              (p "init3" "t" z-0 t) (p "init3" "k" z-0 k)
+              (prec z-0 0 z 0) (prec z-0 1 z 1)))
+          (exists ((r-0 text) (m data) (z-0 z-1 strd))
+            (and (= y (enc "h" (cat "h" (enc m k)))) (p "init5" z-0 1)
+              (p "init3" z-1 2)
+              (p "ttp-rc2" "y" z (enc "h" (cat "h" (enc m k))))
+              (p "init5" "r" z-0 r) (p "init5" "m" z-0 m)
+              (p "init5" "a" z-0 a) (p "init5" "b" z-0 b)
+              (p "init5" "t" z-0 t) (p "init5" "k" z-0 k)
+              (p "init3" "r" z-1 r-0) (p "init3" "m" z-1 m)
+              (p "init3" "a" z-1 a) (p "init3" "b" z-1 b)
+              (p "init3" "t" z-1 t) (p "init3" "k" z-1 k)
+              (prec z-0 0 z 0) (prec z-1 1 z 1)))
+          (exists ((m data) (z-0 strd))
+            (and (= y (enc "h" (cat "h" (enc m k)))) (p "init5" z-0 3)
+              (p "ttp-rc2" "y" z (enc "h" (cat "h" (enc m k))))
+              (p "init5" "r" z-0 r) (p "init5" "m" z-0 m)
+              (p "init5" "a" z-0 a) (p "init5" "b" z-0 b)
+              (p "init5" "t" z-0 t) (p "init5" "k" z-0 k)
+              (prec z-0 0 z 0) (prec z-0 2 z 1)))
+          (exists ((r-0 text) (m data) (z-0 z-1 strd))
+            (and (= y (enc "h" (cat "h" (enc m k)))) (p "init5" z-0 1)
+              (p "init5" z-1 3)
+              (p "ttp-rc2" "y" z (enc "h" (cat "h" (enc m k))))
+              (p "init5" "r" z-0 r) (p "init5" "m" z-0 m)
+              (p "init5" "a" z-0 a) (p "init5" "b" z-0 b)
+              (p "init5" "t" z-0 t) (p "init5" "k" z-0 k)
+              (p "init5" "r" z-1 r-0) (p "init5" "m" z-1 m)
+              (p "init5" "a" z-1 a) (p "init5" "b" z-1 b)
+              (p "init5" "t" z-1 t) (p "init5" "k" z-1 k)
+              (prec z-0 0 z 0) (prec z-1 2 z 1)))))))
+  (traces
+    ((recv
+       (cat (cat a b t y (enc "h" (cat "h" k)))
+         (enc "keytag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           k r (pubk "encr" t))
+         (enc "eootag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (label 86)
+  (unrealized (0 0) (0 1))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (r text) (m data) (a b t name) (k skey))
+  (defstrand ttp-rc2 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init5 1)
+    (enc "eootag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))))
+  (label 87)
+  (parent 86)
+  (unrealized (0 1))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton wang
+  (vars (r r-0 text) (m data) (a b t name) (k skey))
+  (defstrand ttp-rc2 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand init3 2 (r r-0) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)) ((2 1) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init3 2)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a)))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 88)
+  (parent 87)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((0)
+      ((y (enc "h" (cat "h" (enc m k)))) (r r) (a a) (b b) (t t)
+        (k k))))
+  (origs))
+
+(defskeleton wang
+  (vars (r text) (m data) (a b t name) (k skey))
+  (defstrand ttp-rc2 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (defstrand init3 2 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)) ((1 1) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init3 2)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 89)
+  (parent 87)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((0)
+      ((y (enc "h" (cat "h" (enc m k)))) (r r) (a a) (b b) (t t)
+        (k k))))
+  (origs))
+
+(defskeleton wang
+  (vars (r text) (m data) (a b t name) (k skey))
+  (defstrand ttp-rc2 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (defstrand init5 3 (r r) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)) ((1 2) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init5 3)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 90)
+  (parent 87)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((0)
+      ((y (enc "h" (cat "h" (enc m k)))) (r r) (a a) (b b) (t t)
+        (k k))))
+  (origs))
+
+(defskeleton wang
+  (vars (r r-0 text) (m data) (a b t name) (k skey))
+  (defstrand ttp-rc2 3 (y (enc "h" (cat "h" (enc m k)))) (r r) (a a)
+    (b b) (t t) (k k))
+  (defstrand init5 1 (r r) (m m) (a a) (b b) (t t) (k k))
+  (defstrand init5 3 (r r-0) (m m) (a a) (b b) (t t) (k k))
+  (precedes ((1 0) (0 0)) ((2 2) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init5 3)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a)))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 91)
+  (parent 87)
+  (realized)
+  (shape)
+  (satisfies yes)
+  (maps
+    ((0)
+      ((y (enc "h" (cat "h" (enc m k)))) (r r) (a a) (b b) (t t)
+        (k k))))
+  (origs))
+
+(comment "Nothing left to do")
diff --git a/tst/wang-key-hash.scm b/tst/wang-key-hash.scm
new file mode 100644
--- /dev/null
+++ b/tst/wang-key-hash.scm
@@ -0,0 +1,434 @@
+(herald "Wang's Fair Exchange Protocol" (bound 10))
+
+;; CPSA input file to represent
+;; Wang's Fair Exchange Protocol
+
+;; This macro implements the CPSA
+;; convention of regarding a hash as
+;; an asymmetric encryption.  The
+;; decryption key inverse to (pubk
+;; hash) is assumed non-originating
+;; in roles using hashing.
+
+(defmacro (hash x)
+  (enc "h" (cat "h" x)))
+
+;; Wang's encrypted format for the
+;; message payload.  Observe that m,
+;; k get their values from the
+;; like-named messages in the context
+;; where the macro is expanded.
+
+(defmacro (em)
+  (enc m k))
+
+;; The session label L as a fn of
+;; the values that *should be* the
+;; hashes of the encrypted message EM
+;; and the session key K.
+
+(defmacro (l-prime y x)
+  (cat a b t y x))
+
+;; The recipient can check that a
+;; session label has an l-prime where
+;; y is the hash of another parameter.
+;; Hence recipient roles use l-star.
+
+(defmacro (l-star e1 x)
+  (l-prime (hash e1) x))
+
+;; The Evidence of Origin is checked
+;; to be this fn of other parameters
+;; available to the recipient.
+
+(defmacro (eoo-star x e1 e2)
+  (enc (cat "eootag"
+	    (hash (l-star e1 x)) e2)
+       (privk "sign" a)))
+
+;; The Evidence of Receipt is computed
+;; as this fn of other parameters
+;; available to the recipient.
+
+(defmacro (eor-star x e1 e2)
+  (enc (cat "eortag"
+	    (hash (l-star e1 x)) e2)
+       (privk "sign" b)))
+
+;; The Recovery Request as computed by
+;; the recipient.
+
+(defmacro (rr-star x e1 e2)
+  (cat (l-star e1 x) e2
+       (eoo-star x e1 e2)
+       (eor-star x e1 e2)
+       (enc (cat "rcrq" (l-star e1 x) e2)
+            (privk "sign" b))))
+
+;; The Abort Token is checked
+;; to be this fn of other parameters
+;; available to the recipient.
+
+(defmacro (at-star e1 x)
+  (enc (enc "abrq" (l-star e1 x)
+            (privk "sign" a))
+       (privk "sign" t)))
+
+;; How the initiator computes the
+;; encrypted key package:
+
+(defmacro (ek l)
+  (enc (cat "keytag" (hash l) k r)
+       (pubk "encr" t)))
+
+;; The Initiator's computed
+;; version of L.
+
+(defmacro (l)
+  (l-prime (hash (enc m k)) (hash k)))
+
+;; The TTP can check that the session
+;; label L is this fn of other
+;; parameters available to the TTP.
+
+(defmacro (l-prime-prime y)
+  (cat a b t y (hash k)))
+
+;; The TTP can check that the EOO
+;; is this fn of other parameters
+;; available to the TTP.
+
+(defmacro (eoo-prime-prime y)
+  (enc (cat "eootag"
+            (hash (l-prime-prime y))
+	    (ek (l-prime-prime y)))
+       (privk "sign" a)))
+
+;; The TTP can check that the EOR
+;; is this fn of other parameters
+;; available to the TTP.
+
+(defmacro (eor-prime-prime y)
+  (enc (cat "eortag"
+	    (hash (l-prime-prime y))
+	    (ek (l-prime-prime y)))
+       (privk "sign" b)))
+
+;; The TTP can check that the RR
+;; is this fn of other parameters
+;; available to the TTP.
+
+(defmacro (rr-prime-prime y)
+  (cat (l-prime-prime y)
+       (ek (l-prime-prime y))
+       (eoo-prime-prime y)
+       (eor-prime-prime y)
+       (enc "rcrq" (l-prime-prime y)
+	    (ek (l-prime-prime y))
+            (privk "sign" b))))
+
+;; The TTP can check that the Confirmation
+;; Request is this fn of other parameters
+;; available to the TTP.
+
+(defmacro (cf-prime-prime y)
+  (cat (l-prime-prime y) (ek (l-prime-prime y))
+       (eoo-prime-prime y) (eor-prime-prime y)
+       (enc "cfrq" (l-prime-prime y)
+	    (ek (l-prime-prime y))
+            (privk "sign" b))))
+
+;; Defn of Wang's Fair Exchange Protocol.
+;; Closely follows the presentation in the
+;; figures in Section 3.  In the TTP roles,
+;; we have put a dummy send or receive in place
+;; of the state synchronization event to keep
+;; the indices matching the spec.
+
+(defprotocol wang basic
+
+  ;; Successful initiator run with no TTP involvement
+
+  (defrole init1
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (send (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (recv (eor-star (hash k) (enc m k) (ek (l))))
+     (send (cat k r)))
+    (non-orig (privk hash_id)))
+
+  ;; Aborted initiator run
+
+  (defrole init2
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (send (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (send (enc "abrq" (l) (privk "sign" a)))
+     (recv (enc "abcf"
+                (enc "abrq" (l) (privk "sign" a))
+                (privk "sign" t))))
+    (non-orig (privk hash_id)))
+
+  ;; Initiator run with abort request and forced recovery
+
+  (defrole init3
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (send (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (send (enc "abrq" (l) (privk "sign" a)))
+     (recv (eor-star (hash k) (enc m k) (ek (l)))))
+    (non-orig (privk hash_id)))
+
+  ;; Aborted initiator run, but with EOR received
+
+  (defrole init4
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (send (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (recv (eor-star (hash k) (enc m k) (ek (l))))
+     (send (enc "abrq" (l) (privk "sign" a)))
+     (recv (enc "abcf"
+                (enc "abrq" (l) (privk "sign" a))
+                (privk "sign" t))))
+    (non-orig (privk hash_id)))
+
+  ;; Initiator run with abort requested after EOR received,
+  ;; but recovery forced
+
+  (defrole init5
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (send (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (recv (eor-star (hash k) (enc m k) (ek (l))))
+     (send (enc "abrq" (l) (privk "sign" a)))
+     (recv (eor-star (hash k) (enc m k) (ek (l)))))
+    (non-orig (privk hash_id)))
+
+  ;; Successful responder run with no TTP involvement
+
+  (defrole resp1
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (recv (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (send (eor-star (hash k) (enc m k) (ek (l))))
+     (recv (cat k r)))
+    (non-orig (privk hash_id)))
+
+  ;;Responder run with recovery via TTP
+
+  (defrole resp2
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (recv (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (send (cat (l) (ek (l)) (eoo-star (hash k) (enc m k) (ek (l)))
+                (eor-star (hash k) (enc m k) (ek (l)))))
+     (send (cat (l) (ek (l)) (eoo-star (hash k) (enc m k) (ek (l)))
+                (eor-star (hash k) (enc m k) (ek (l)))
+                (enc "rcrq" (l) (ek (l)) (privk "sign" b))))
+     (recv (cat k r)))
+    (non-orig (privk hash_id)))
+
+  ;; Responder run with recovery request and forced abort
+
+  (defrole resp3
+    (vars (a b t hash_id name) (e1 e2 x mesg))
+    (trace
+     (recv (cat (l-star e1 x) e1 e2 (eoo-star x e1 e2)))
+     (send (cat (l-star e1 x) e2 (eoo-star x e1 e2) (eor-star x e1 e2)))
+     (send (cat (l-star e1 x) e2 (eoo-star x e1 e2) (eor-star x e1 e2)
+                (enc "rcrq" (l-star e1 x) e2 (privk "sign" b))))
+     (recv (enc "abcf"
+                (enc "abrq" (l-star e1 x) (privk "sign" a))
+                (privk "sign" t))))
+    (non-orig (privk hash_id)))
+
+  ;; TTP handles an abort
+
+  (defrole ttp-ab1
+    (vars (a b t hash_id name) (y x mesg))
+    (trace
+     (recv (enc "abrq" (l-prime y x) (privk "sign" a)))
+     (send (cat "sync-abrq"
+                (enc "abrq" (l-prime y x) (privk "sign" a))))
+     (send (enc "abcf"
+                (enc "abrq" (l-prime y x) (privk "sign" a))
+                (privk "sign" t))))
+    (non-orig (privk hash_id)))
+
+  ;; TTP forces recovery in response to an abort request
+
+  (defrole ttp-ab2
+    (vars (a b t hash_id name) (y x e mesg))
+    (trace
+     (recv (enc "abrq" (l-prime y x) (privk "sign" a)))
+     (recv (cat "sync-abrq"
+                (enc "eortag" (hash (l-prime y x)) e
+                     (privk "sign" b))))
+     (send (enc "eortag" (hash (l-prime y x)) e
+                (privk "sign" b))))
+    (non-orig (privk hash_id)))
+
+  ;; TTP handles a recovery
+
+  (defrole ttp-rc1
+    (vars (a b t hash_id name) (r text) (k skey) (y mesg))
+    (trace
+     (recv (rr-prime-prime y))
+     (send (cat "sync-rc-req"
+                (rr-prime-prime y)))
+     (send (cat k r)))
+    (non-orig (privk hash_id)))
+
+  ;; TTP forces abort in response to a recovery request
+
+  (defrole ttp-rc2
+    (vars (a b t hash_id name) (r text) (k skey) (y mesg))
+    (trace
+     (recv (rr-prime-prime y))
+     (recv (cat "sync-rc-req"
+		(enc "abrq" (l-prime-prime y) (privk "sign" a))))
+     (send (enc "abcf"
+                (enc "abrq" (l-prime-prime y) (privk "sign" a))
+                (privk "sign" t))))
+    (non-orig (privk hash_id)))
+
+  ;; TTP handles a confirm request
+
+  (defrole ttp-cf1
+    (vars (a b t hash_id name) (r text) (k skey) (y mesg))
+    (trace
+     (recv (cf-prime-prime y))
+     (send (cat "sync-cf-req"
+                (cf-prime-prime y)))
+     (send (enc (cf-prime-prime y) (privk "sign" t))))
+    (non-orig (privk hash_id)))
+
+  ;; TTP replies with abort token given confirm request
+
+  (defrole ttp-cf2
+    (vars (a b t hash_id name) (r text) (k skey) (y mesg))
+    (trace
+     (recv (cf-prime-prime y))
+     (recv (cat "sync-cf-req"
+                (enc "abrq"(l-prime-prime y) (privk "sign" a))))
+     (send (enc "abcf"
+                (enc "abrq"(l-prime-prime y) (privk "sign" a))
+                (privk "sign" t))))
+    (non-orig (privk hash_id))))
+
+;; End of Wang's protocol defn.
+
+;; Two experiments to prove Lemma 4.1
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand init1 1 (b b) (t t) (m m) (r r) (k k))
+  (deflistener m)
+  (non-orig
+   (privk "encr" t))
+  (uniq-orig m k)
+  (comment "Experiment 1 to prove Lemma 4.1."))
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand init1 1 (b b) (t t) (m m) (r r) (k k))
+  (deflistener k)
+  (non-orig
+   (privk "encr" t))
+  (uniq-orig m k)
+  (comment "Experiment 2 to prove Lemma 4.1."))
+
+;; We now have three experiments
+;; to prove Lemma 4.2, clause 1.
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand init1 3 (b b) (t t) (m m) (r r) (k k))
+  (non-orig
+   (privk "sign" b))
+  (comment "First of three experiments to prove Lemma 4.2, clause 1."))
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand init3 3 (b b) (t t) (m m) (r r) (k k))
+  (non-orig
+   (privk "sign" b))
+  (comment "Second of three experiments to prove Lemma 4.2, clause 1."))
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand init5 4 (b b) (t t) (m m) (r r) (k k))
+  (non-orig
+   (privk "sign" b))
+  (comment "Third of three experiments to prove Lemma 4.2, clause 1."))
+
+;; Two experiments to prove 4.2, Clause 2.
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand resp1 3 (a a) (t t) (m m) (r r) (k k))
+  (non-orig
+   (privk "sign" a))
+  (comment
+   "First of two experiments to prove Lemma 4.2, clause 2."))
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand resp2 4 (a a) (t t) (m m) (r r) (k k))
+  (non-orig
+   (privk "sign" a))
+  (comment
+   "Second of two experiments to prove Lemma 4.2, clause 2."))
+
+;; Experiment to prove Lemma 4.2, clause 3.
+
+(defskeleton wang
+  (vars (a b t hash_id name) (e1 e2 x mesg))
+  (defstrand resp3 4 (a a) (t t))
+  (non-orig
+   (privk "sign" a))
+  (comment
+   "Experiments to prove Lemma 4.2, clause 3."))
+
+;; One experiment to prove Lemma 4.3, Clause 1.
+
+(defskeleton wang
+  (vars (a b t hash_id name) (y x mesg))
+  (deflistener
+    (enc "abcf" (enc "abrq" (l-prime y x) (privk "sign" a))
+	 (privk "sign" t)))
+  (non-orig
+   (privk "sign" t))
+  (comment
+   "Experiments to prove Lemma 4.3, clause 1."))
+
+;; Three experiments to prove Lemma 4.3, Clause 2.
+
+(defskeleton wang
+  (vars (y x mesg) (a b t name))
+  (defstrand ttp-ab1 3 (y y) (x x) (a a) (b b) (t t))
+  (non-orig (privk "sign" a)  (privk "encr" t))
+  (comment
+   "Experiment 1 to prove Lemma 4.3, clause 2."))
+
+(defskeleton wang
+  (vars (a b t hash_id name) (r text) (k skey) (y mesg))
+  (defstrand ttp-rc2 3 (a a) (b b) (t t))
+  (non-orig (privk "sign" a)  (privk "encr" t))
+  (comment
+   "Experiment 2 to prove Lemma 4.3, clause 2."))
+
+(defskeleton wang
+  (vars (a b t hash_id name) (r text) (k skey) (y mesg))
+  (defstrand ttp-cf2 3 (a a) (b b) (t t))
+  (non-orig (privk "sign" a)  (privk "encr" t))
+  (comment
+   "Experiment 3 to prove Lemma 4.3, clause 2."))
diff --git a/tst/wang-key-hash.tst b/tst/wang-key-hash.tst
new file mode 100644
--- /dev/null
+++ b/tst/wang-key-hash.tst
@@ -0,0 +1,9599 @@
+(herald "Wang's Fair Exchange Protocol" (bound 10))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/wang-key-hash.scm")
+(comment "Strand count bounded at 10")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (deflistener m)
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (comment "Experiment 1 to prove Lemma 4.1.")
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))) ((recv m) (send m)))
+  (label 0)
+  (unrealized (1 0))
+  (preskeleton)
+  (origs (m (0 0)) (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (deflistener m)
+  (precedes ((0 0) (1 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))) ((recv m) (send m)))
+  (label 1)
+  (parent 0)
+  (unrealized (1 0))
+  (origs (m (0 0)) (k (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (deflistener m)
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 1) (1 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation nonce-test (added-listener k) m (1 0) (enc m k))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))) ((recv m) (send m)) ((recv k) (send k)))
+  (label 2)
+  (parent 1)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (deflistener m)
+  (deflistener k)
+  (defstrand init1 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 1) (0 0)) ((2 2) (1 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation nonce-test (displaced 0 3 init1 3) k (2 0)
+    (enc "keytag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+  (traces ((recv m) (send m)) ((recv k) (send k))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (label 3)
+  (parent 2)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (deflistener m)
+  (deflistener k)
+  (defstrand ttp-rc1 3 (y (enc "h" (cat "h" (enc m k)))) (k k) (r r)
+    (a a) (b b) (t t))
+  (precedes ((0 0) (3 0)) ((2 1) (1 0)) ((3 2) (2 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation nonce-test (added-strand ttp-rc1 3) k (2 0)
+    (enc "keytag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))) ((recv m) (send m)) ((recv k) (send k))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (send
+        (cat "sync-rc-req"
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (label 4)
+  (parent 2)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (deflistener m)
+  (defstrand init1 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation generalization deleted (1 0))
+  (traces ((recv m) (send m))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (label 5)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((1 0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs (m (1 0)) (k (1 0))))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (deflistener m)
+  (defstrand ttp-rc1 3 (y (enc "h" (cat "h" (enc m k)))) (k k) (r r)
+    (a a) (b b) (t t))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))) ((recv m) (send m))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (send
+        (cat "sync-rc-req"
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (label 6)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0 1) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs (m (0 0)) (k (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (deflistener k)
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (comment "Experiment 2 to prove Lemma 4.1.")
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))) ((recv k) (send k)))
+  (label 7)
+  (unrealized (1 0))
+  (preskeleton)
+  (origs (m (0 0)) (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (deflistener k)
+  (precedes ((0 0) (1 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))) ((recv k) (send k)))
+  (label 8)
+  (parent 7)
+  (unrealized (1 0))
+  (origs (m (0 0)) (k (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (deflistener k)
+  (defstrand init1 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation nonce-test (displaced 0 2 init1 3) k (1 0)
+    (enc "keytag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+  (traces ((recv k) (send k))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (label 9)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps ((1 0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs (m (1 0)) (k (1 0))))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (deflistener k)
+  (defstrand ttp-rc1 3 (y (enc "h" (cat "h" (enc m k)))) (k k) (r r)
+    (a a) (b b) (t t))
+  (precedes ((0 0) (2 0)) ((2 2) (1 0)))
+  (non-orig (privk "encr" t))
+  (uniq-orig m k)
+  (operation nonce-test (added-strand ttp-rc1 3) k (1 0)
+    (enc "keytag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))) ((recv k) (send k))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (send
+        (cat "sync-rc-req"
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (send (cat k r))))
+  (label 10)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps ((0 1) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs (m (0 0)) (k (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (non-orig (privk "sign" b))
+  (comment "First of three experiments to prove Lemma 4.2, clause 1.")
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (label 11)
+  (unrealized (0 1))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand resp1 2 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp1 2)
+    (enc "eortag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" b)) (0 1))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r)))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (label 12)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init1 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand resp3 2 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp3 2)
+    (enc "eortag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" b)) (0 1))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r)))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))))
+  (label 13)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init3 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (non-orig (privk "sign" b))
+  (comment "Second of three experiments to prove Lemma 4.2, clause 1.")
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (label 14)
+  (unrealized (0 2))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init3 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand resp1 2 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 1) (0 2)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp1 2)
+    (enc "eortag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" b)) (0 2))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (label 15)
+  (parent 14)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init3 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand resp3 2 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (precedes ((1 1) (0 2)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp3 2)
+    (enc "eortag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" b)) (0 2))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))))
+  (label 16)
+  (parent 14)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init5 4 (m m) (k k) (r r) (a a) (b b) (t t))
+  (non-orig (privk "sign" b))
+  (comment "Third of three experiments to prove Lemma 4.2, clause 1.")
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (label 17)
+  (unrealized (0 1) (0 3))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init5 4 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand resp1 2 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp1 2)
+    (enc "eortag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" b)) (0 1))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (label 18)
+  (parent 17)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (b t a name))
+  (defstrand init5 4 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand resp3 2 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (precedes ((1 1) (0 1)))
+  (non-orig (privk "sign" b))
+  (operation encryption-test (added-strand resp3 2)
+    (enc "eortag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" b)) (0 1))
+  (traces
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))))
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))))
+  (label 19)
+  (parent 17)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (m m) (r r) (k k) (a a))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a t b name))
+  (defstrand resp1 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (non-orig (privk "sign" a))
+  (comment "First of two experiments to prove Lemma 4.2, clause 2.")
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (label 20)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a t b name))
+  (defstrand resp1 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (added-strand init5 1)
+    (enc "eootag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r)))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))))
+  (label 21)
+  (parent 20)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (t t) (m m) (r r) (k k) (b b))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a t b name))
+  (defstrand resp2 4 (m m) (k k) (r r) (a a) (b b) (t t))
+  (non-orig (privk "sign" a))
+  (comment "Second of two experiments to prove Lemma 4.2, clause 2.")
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (label 22)
+  (unrealized (0 0))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a t b name))
+  (defstrand resp2 4 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (added-strand init5 1)
+    (enc "eootag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r)))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))))
+  (label 23)
+  (parent 22)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (t t) (m m) (r r) (k k) (b b))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (e1 e2 x mesg) (a t b name))
+  (defstrand resp3 4 (e1 e1) (e2 e2) (x x) (a a) (b b) (t t))
+  (non-orig (privk "sign" a))
+  (comment "Experiments to prove Lemma 4.2, clause 3.")
+  (traces
+    ((recv
+       (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+         (enc "eootag"
+           (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+           (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (label 24)
+  (unrealized (0 0) (0 3))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a t b name))
+  (defstrand resp3 4 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (added-strand init5 1)
+    (enc "eootag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))))
+  (label 25)
+  (parent 24)
+  (unrealized (0 3))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r r-0 text) (a t b name))
+  (defstrand resp3 4 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand init3 2 (m m) (k k) (r r-0) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((2 1) (0 3)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (added-strand init3 2)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 3))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a)))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 26)
+  (parent 25)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (t t) (b b) (e1 (enc m k))
+        (e2
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+        (x (enc "h" (cat "h" k))))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a t b name))
+  (defstrand resp3 4 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init3 2 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((1 1) (0 3)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init3 2)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 3))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 27)
+  (parent 25)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (t t) (b b) (e1 (enc m k))
+        (e2
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+        (x (enc "h" (cat "h" k))))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a t b name))
+  (defstrand resp3 4 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init5 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((1 2) (0 3)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init5 3)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 3))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 28)
+  (parent 25)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (t t) (b b) (e1 (enc m k))
+        (e2
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+        (x (enc "h" (cat "h" k))))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r r-0 text) (a t b name))
+  (defstrand resp3 4 (e1 (enc m k))
+    (e2
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand init5 3 (m m) (k k) (r r-0) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((2 2) (0 3)))
+  (non-orig (privk "sign" a))
+  (operation encryption-test (added-strand init5 3)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 3))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a)))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 29)
+  (parent 25)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (t t) (b b) (e1 (enc m k))
+        (e2
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t)))
+        (x (enc "h" (cat "h" k))))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (y x mesg) (a b t name))
+  (deflistener
+    (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+      (privk "sign" t)))
+  (non-orig (privk "sign" t))
+  (comment "Experiments to prove Lemma 4.3, clause 1.")
+  (traces
+    ((recv
+       (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+         (privk "sign" t)))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (label 30)
+  (unrealized (0 0))
+  (origs)
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton wang
+  (vars (y x mesg) (a b t name))
+  (deflistener
+    (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+      (privk "sign" t)))
+  (defstrand ttp-ab1 3 (y y) (x x) (a a) (b b) (t t))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "sign" t))
+  (operation encryption-test (added-strand ttp-ab1 3)
+    (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+      (privk "sign" t)) (0 0))
+  (traces
+    ((recv
+       (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+         (privk "sign" t)))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t))))
+    ((recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (label 31)
+  (parent 30)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (y y) (x x))))
+  (origs))
+
+(defskeleton wang
+  (vars (y mesg) (k skey) (r text) (a b t name))
+  (deflistener
+    (enc "abcf"
+      (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+      (privk "sign" t)))
+  (defstrand ttp-rc2 3 (y y) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "sign" t))
+  (operation encryption-test (added-strand ttp-rc2 3)
+    (enc "abcf"
+      (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+      (privk "sign" t)) (0 0))
+  (traces
+    ((recv
+       (enc "abcf"
+         (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+         (privk "sign" t)))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t))))
+    ((recv
+       (cat (cat a b t y (enc "h" (cat "h" k)))
+         (enc "keytag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           k r (pubk "encr" t))
+         (enc "eootag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (label 32)
+  (parent 30)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (y y) (x (enc "h" (cat "h" k))))))
+  (origs))
+
+(defskeleton wang
+  (vars (y mesg) (k skey) (r text) (a b t name))
+  (deflistener
+    (enc "abcf"
+      (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+      (privk "sign" t)))
+  (defstrand ttp-cf2 3 (y y) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "sign" t))
+  (operation encryption-test (added-strand ttp-cf2 3)
+    (enc "abcf"
+      (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+      (privk "sign" t)) (0 0))
+  (traces
+    ((recv
+       (enc "abcf"
+         (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+         (privk "sign" t)))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t))))
+    ((recv
+       (cat (cat a b t y (enc "h" (cat "h" k)))
+         (enc "keytag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           k r (pubk "encr" t))
+         (enc "eootag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (label 33)
+  (parent 30)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (y y) (x (enc "h" (cat "h" k))))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (y x mesg) (a b t name))
+  (defstrand ttp-ab1 3 (y y) (x x) (a a) (b b) (t t))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (comment "Experiment 1 to prove Lemma 4.3, clause 2.")
+  (traces
+    ((recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (label 34)
+  (unrealized (0 0))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a b t name))
+  (defstrand ttp-ab1 3 (y (enc "h" (cat "h" (enc m k))))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init3 2 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 1) (0 0)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init3 2)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+         (enc "h" (cat "h" k)) (privk "sign" a)))
+      (send
+        (cat "sync-abrq"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 35)
+  (parent 34)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((y (enc "h" (cat "h" (enc m k)))) (x (enc "h" (cat "h" k))) (a a)
+        (b b) (t t))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a b t name))
+  (defstrand ttp-ab1 3 (y (enc "h" (cat "h" (enc m k))))
+    (x (enc "h" (cat "h" k))) (a a) (b b) (t t))
+  (defstrand init5 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 2) (0 0)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init5 3)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+         (enc "h" (cat "h" k)) (privk "sign" a)))
+      (send
+        (cat "sync-abrq"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 36)
+  (parent 34)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((y (enc "h" (cat "h" (enc m k)))) (x (enc "h" (cat "h" k))) (a a)
+        (b b) (t t))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (y mesg) (k skey) (r text) (a b t name))
+  (defstrand ttp-rc2 3 (y y) (k k) (r r) (a a) (b b) (t t))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (comment "Experiment 2 to prove Lemma 4.3, clause 2.")
+  (traces
+    ((recv
+       (cat (cat a b t y (enc "h" (cat "h" k)))
+         (enc "keytag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           k r (pubk "encr" t))
+         (enc "eootag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (label 37)
+  (unrealized (0 0) (0 1))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a b t name))
+  (defstrand ttp-rc2 3 (y (enc "h" (cat "h" (enc m k)))) (k k) (r r)
+    (a a) (b b) (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init5 1)
+    (enc "eootag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))))
+  (label 38)
+  (parent 37)
+  (unrealized (0 1))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r r-0 text) (a b t name))
+  (defstrand ttp-rc2 3 (y (enc "h" (cat "h" (enc m k)))) (k k) (r r)
+    (a a) (b b) (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand init3 2 (m m) (k k) (r r-0) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((2 1) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init3 2)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a)))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 39)
+  (parent 38)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (t t) (r r) (k k)
+        (y (enc "h" (cat "h" (enc m k)))))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a b t name))
+  (defstrand ttp-rc2 3 (y (enc "h" (cat "h" (enc m k)))) (k k) (r r)
+    (a a) (b b) (t t))
+  (defstrand init3 2 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((1 1) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init3 2)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 40)
+  (parent 38)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (t t) (r r) (k k)
+        (y (enc "h" (cat "h" (enc m k)))))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a b t name))
+  (defstrand ttp-rc2 3 (y (enc "h" (cat "h" (enc m k)))) (k k) (r r)
+    (a a) (b b) (t t))
+  (defstrand init5 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((1 2) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init5 3)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 41)
+  (parent 38)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (t t) (r r) (k k)
+        (y (enc "h" (cat "h" (enc m k)))))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r r-0 text) (a b t name))
+  (defstrand ttp-rc2 3 (y (enc "h" (cat "h" (enc m k)))) (k k) (r r)
+    (a a) (b b) (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand init5 3 (m m) (k k) (r r-0) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((2 2) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init5 3)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "rcrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a)))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 42)
+  (parent 38)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (t t) (r r) (k k)
+        (y (enc "h" (cat "h" (enc m k)))))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wang basic
+  (defrole init1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (send (cat k r))))
+  (defrole init2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init3
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole init4
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t)))))
+  (defrole init5
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))))
+  (defrole resp1
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b))) (recv (cat k r))))
+  (defrole resp2
+    (vars (a b t name) (m data) (r text) (k skey))
+    (trace
+      (recv
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k))) (enc m k)
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))))
+      (send
+        (cat
+          (cat a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (enc "eootag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b))
+          (enc "rcrq"
+            (cat a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h"
+                (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                  (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+            (privk "sign" b)))) (recv (cat k r))))
+  (defrole resp3
+    (vars (a b t name) (e1 e2 x mesg))
+    (trace
+      (recv
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e1 e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))))
+      (send
+        (cat (cat a b t (enc "h" (cat "h" e1)) x) e2
+          (enc "eootag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t (enc "h" (cat "h" e1)) x)) e2
+            (privk "sign" b))
+          (enc "rcrq" (cat a b t (enc "h" (cat "h" e1)) x) e2
+            (privk "sign" b))))
+      (recv
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" e1)) x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab1
+    (vars (a b t name) (y x mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (send (cat "sync-abrq" (enc "abrq" a b t y x (privk "sign" a))))
+      (send
+        (enc "abcf" (enc "abrq" a b t y x (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-ab2
+    (vars (a b t name) (y x e mesg))
+    (trace (recv (enc "abrq" a b t y x (privk "sign" a)))
+      (recv
+        (cat "sync-abrq"
+          (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+            (privk "sign" b))))
+      (send
+        (enc "eortag" (enc "h" (cat "h" a b t y x)) e
+          (privk "sign" b)))))
+  (defrole ttp-rc1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-rc-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)))) (send (cat k r))))
+  (defrole ttp-rc2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "rcrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-rc-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defrole ttp-cf1
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (cat "sync-cf-req" (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (send
+        (enc (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b)) (privk "sign" t)))))
+  (defrole ttp-cf2
+    (vars (a b t name) (r text) (k skey) (y mesg))
+    (trace
+      (recv
+        (cat (cat a b t y (enc "h" (cat "h" k)))
+          (enc "keytag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+            (pubk "encr" t))
+          (enc "eootag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" a))
+          (enc "eortag"
+            (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))
+          (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+            (enc "keytag"
+              (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+              (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wang
+  (vars (y mesg) (k skey) (r text) (a b t name))
+  (defstrand ttp-cf2 3 (y y) (k k) (r r) (a a) (b b) (t t))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (comment "Experiment 3 to prove Lemma 4.3, clause 2.")
+  (traces
+    ((recv
+       (cat (cat a b t y (enc "h" (cat "h" k)))
+         (enc "keytag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           k r (pubk "encr" t))
+         (enc "eootag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" a))
+         (enc "eortag" (enc "h" (cat "h" a b t y (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))
+         (enc "cfrq" (cat a b t y (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h" (cat "h" a b t y (enc "h" (cat "h" k)))) k r
+             (pubk "encr" t)) (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t y (enc "h" (cat "h" k)) (privk "sign" a))
+          (privk "sign" t)))))
+  (label 43)
+  (unrealized (0 0) (0 1))
+  (origs)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a b t name))
+  (defstrand ttp-cf2 3 (y (enc "h" (cat "h" (enc m k)))) (k k) (r r)
+    (a a) (b b) (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init5 1)
+    (enc "eootag"
+      (enc "h"
+        (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k))))
+      (enc "keytag"
+        (enc "h"
+          (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+      (privk "sign" a)) (0 0))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "cfrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))))
+  (label 44)
+  (parent 43)
+  (unrealized (0 1))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r r-0 text) (a b t name))
+  (defstrand ttp-cf2 3 (y (enc "h" (cat "h" (enc m k)))) (k k) (r r)
+    (a a) (b b) (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand init3 2 (m m) (k k) (r r-0) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((2 1) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init3 2)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "cfrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a)))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 45)
+  (parent 44)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (t t) (r r) (k k)
+        (y (enc "h" (cat "h" (enc m k)))))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a b t name))
+  (defstrand ttp-cf2 3 (y (enc "h" (cat "h" (enc m k)))) (k k) (r r)
+    (a a) (b b) (t t))
+  (defstrand init3 2 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((1 1) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init3 2)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "cfrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 46)
+  (parent 44)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (t t) (r r) (k k)
+        (y (enc "h" (cat "h" (enc m k)))))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r text) (a b t name))
+  (defstrand ttp-cf2 3 (y (enc "h" (cat "h" (enc m k)))) (k k) (r r)
+    (a a) (b b) (t t))
+  (defstrand init5 3 (m m) (k k) (r r) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((1 2) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (displaced 1 2 init5 3)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "cfrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 47)
+  (parent 44)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (t t) (r r) (k k)
+        (y (enc "h" (cat "h" (enc m k)))))))
+  (origs))
+
+(defskeleton wang
+  (vars (m data) (k skey) (r r-0 text) (a b t name))
+  (defstrand ttp-cf2 3 (y (enc "h" (cat "h" (enc m k)))) (k k) (r r)
+    (a a) (b b) (t t))
+  (defstrand init5 1 (m m) (k k) (r r) (a a) (b b) (t t))
+  (defstrand init5 3 (m m) (k k) (r r-0) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)) ((2 2) (0 1)))
+  (non-orig (privk "encr" t) (privk "sign" a))
+  (operation encryption-test (added-strand init5 3)
+    (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+      (enc "h" (cat "h" k)) (privk "sign" a)) (0 1))
+  (traces
+    ((recv
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a))
+         (enc "eortag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))
+         (enc "cfrq"
+           (cat a b t (enc "h" (cat "h" (enc m k)))
+             (enc "h" (cat "h" k)))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" b))))
+      (recv
+        (cat "sync-cf-req"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a))))
+      (send
+        (enc "abcf"
+          (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+            (enc "h" (cat "h" k)) (privk "sign" a)) (privk "sign" t))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r (pubk "encr" t))
+           (privk "sign" a)))))
+    ((send
+       (cat
+         (cat a b t (enc "h" (cat "h" (enc m k))) (enc "h" (cat "h" k)))
+         (enc m k)
+         (enc "keytag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+         (enc "eootag"
+           (enc "h"
+             (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+               (enc "h" (cat "h" k))))
+           (enc "keytag"
+             (enc "h"
+               (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                 (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+           (privk "sign" a))))
+      (recv
+        (enc "eortag"
+          (enc "h"
+            (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+              (enc "h" (cat "h" k))))
+          (enc "keytag"
+            (enc "h"
+              (cat "h" a b t (enc "h" (cat "h" (enc m k)))
+                (enc "h" (cat "h" k)))) k r-0 (pubk "encr" t))
+          (privk "sign" b)))
+      (send
+        (enc "abrq" a b t (enc "h" (cat "h" (enc m k)))
+          (enc "h" (cat "h" k)) (privk "sign" a)))))
+  (label 48)
+  (parent 44)
+  (realized)
+  (shape)
+  (maps
+    ((0)
+      ((a a) (b b) (t t) (r r) (k k)
+        (y (enc "h" (cat "h" (enc m k)))))))
+  (origs))
+
+(comment "Nothing left to do")
diff --git a/tst/wang.lisp b/tst/wang.lisp
new file mode 100644
--- /dev/null
+++ b/tst/wang.lisp
@@ -0,0 +1,434 @@
+(herald "Wang's Fair Exchange Protocol" (bound 10))
+
+;; CPSA input file to represent
+;; Wang's Fair Exchange Protocol
+
+;; This macro implements the CPSA
+;; convention of regarding a hash as
+;; an asymmetric encryption.  The
+;; decryption key inverse to (pubk
+;; hash) is assumed non-originating
+;; in roles using hashing.
+
+(defmacro (hash x)
+  (enc x (pubk hash_id)))
+
+;; Wang's encrypted format for the
+;; message payload.  Observe that m,
+;; k get their values from the
+;; like-named messages in the context
+;; where the macro is expanded.
+
+(defmacro (em)
+  (enc m k))
+
+;; The session label L as a fn of
+;; the values that *should be* the
+;; hashes of the encrypted message EM
+;; and the session key K.
+
+(defmacro (l-prime y x)
+  (cat a b t y x))
+
+;; The recipient can check that a
+;; session label has an l-prime where
+;; y is the hash of another parameter.
+;; Hence recipient roles use l-star.
+
+(defmacro (l-star e1 x)
+  (l-prime (hash e1) x))
+
+;; The Evidence of Origin is checked
+;; to be this fn of other parameters
+;; available to the recipient.
+
+(defmacro (eoo-star x e1 e2)
+  (enc (cat "eootag"
+	    (hash (l-star e1 x)) e2)
+       (privk "sign" a)))
+
+;; The Evidence of Receipt is computed
+;; as this fn of other parameters
+;; available to the recipient.
+
+(defmacro (eor-star x e1 e2)
+  (enc (cat "eortag"
+	    (hash (l-star e1 x)) e2)
+       (privk "sign" b)))
+
+;; The Recovery Request as computed by
+;; the recipient.
+
+(defmacro (rr-star x e1 e2)
+  (cat (l-star e1 x) e2
+       (eoo-star x e1 e2)
+       (eor-star x e1 e2)
+       (enc (cat "rcrq" (l-star e1 x) e2)
+            (privk "sign" b))))
+
+;; The Abort Token is checked
+;; to be this fn of other parameters
+;; available to the recipient.
+
+(defmacro (at-star e1 x)
+  (enc (enc "abrq" (l-star e1 x)
+            (privk "sign" a))
+       (privk "sign" t)))
+
+;; How the initiator computes the
+;; encrypted key package:
+
+(defmacro (ek l)
+  (enc (cat "keytag" (hash l) k r)
+       (pubk "encr" t)))
+
+;; The Initiator's computed
+;; version of L.
+
+(defmacro (l)
+  (l-prime (hash (enc m k)) (hash k)))
+
+;; The TTP can check that the session
+;; label L is this fn of other
+;; parameters available to the TTP.
+
+(defmacro (l-prime-prime y)
+  (cat a b t y (hash k)))
+
+;; The TTP can check that the EOO
+;; is this fn of other parameters
+;; available to the TTP.
+
+(defmacro (eoo-prime-prime y)
+  (enc (cat "eootag"
+            (hash (l-prime-prime y))
+	    (ek (l-prime-prime y)))
+       (privk "sign" a)))
+
+;; The TTP can check that the EOR
+;; is this fn of other parameters
+;; available to the TTP.
+
+(defmacro (eor-prime-prime y)
+  (enc (cat "eortag"
+	    (hash (l-prime-prime y))
+	    (ek (l-prime-prime y)))
+       (privk "sign" b)))
+
+;; The TTP can check that the RR
+;; is this fn of other parameters
+;; available to the TTP.
+
+(defmacro (rr-prime-prime y)
+  (cat (l-prime-prime y)
+       (ek (l-prime-prime y))
+       (eoo-prime-prime y)
+       (eor-prime-prime y)
+       (enc "rcrq" (l-prime-prime y)
+	    (ek (l-prime-prime y))
+            (privk "sign" b))))
+
+;; The TTP can check that the Confirmation
+;; Request is this fn of other parameters
+;; available to the TTP.
+
+(defmacro (cf-prime-prime y)
+  (cat (l-prime-prime y) (ek (l-prime-prime y))
+       (eoo-prime-prime y) (eor-prime-prime y)
+       (enc "cfrq" (l-prime-prime y)
+	    (ek (l-prime-prime y))
+            (privk "sign" b))))
+
+;; Defn of Wang's Fair Exchange Protocol.
+;; Closely follows the presentation in the
+;; figures in Section 3.  In the TTP roles,
+;; we have put a dummy send or receive in place
+;; of the state synchronization event to keep
+;; the indices matching the spec.
+
+(defprotocol wang basic
+
+  ;; Successful initiator run with no TTP involvement
+
+  (defrole init1
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (send (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (recv (eor-star (hash k) (enc m k) (ek (l))))
+     (send (cat k r)))
+    (non-orig (privk hash_id)))
+
+  ;; Aborted initiator run
+
+  (defrole init2
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (send (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (send (enc "abrq" (l) (privk "sign" a)))
+     (recv (enc "abcf"
+                (enc "abrq" (l) (privk "sign" a))
+                (privk "sign" t))))
+    (non-orig (privk hash_id)))
+
+  ;; Initiator run with abort request and forced recovery
+
+  (defrole init3
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (send (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (send (enc "abrq" (l) (privk "sign" a)))
+     (recv (eor-star (hash k) (enc m k) (ek (l)))))
+    (non-orig (privk hash_id)))
+
+  ;; Aborted initiator run, but with EOR received
+
+  (defrole init4
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (send (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (recv (eor-star (hash k) (enc m k) (ek (l))))
+     (send (enc "abrq" (l) (privk "sign" a)))
+     (recv (enc "abcf"
+                (enc "abrq" (l) (privk "sign" a))
+                (privk "sign" t))))
+    (non-orig (privk hash_id)))
+
+  ;; Initiator run with abort requested after EOR received,
+  ;; but recovery forced
+
+  (defrole init5
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (send (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (recv (eor-star (hash k) (enc m k) (ek (l))))
+     (send (enc "abrq" (l) (privk "sign" a)))
+     (recv (eor-star (hash k) (enc m k) (ek (l)))))
+    (non-orig (privk hash_id)))
+
+  ;; Successful responder run with no TTP involvement
+
+  (defrole resp1
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (recv (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (send (eor-star (hash k) (enc m k) (ek (l))))
+     (recv (cat k r)))
+    (non-orig (privk hash_id)))
+
+  ;;Responder run with recovery via TTP
+
+  (defrole resp2
+    (vars (a b t hash_id name) (m data) (r text) (k skey))
+    (trace
+     (recv (cat (l) (enc m k) (ek (l))
+                (eoo-star (hash k) (enc m k) (ek (l)))))
+     (send (cat (l) (ek (l)) (eoo-star (hash k) (enc m k) (ek (l)))
+                (eor-star (hash k) (enc m k) (ek (l)))))
+     (send (cat (l) (ek (l)) (eoo-star (hash k) (enc m k) (ek (l)))
+                (eor-star (hash k) (enc m k) (ek (l)))
+                (enc "rcrq" (l) (ek (l)) (privk "sign" b))))
+     (recv (cat k r)))
+    (non-orig (privk hash_id)))
+
+  ;; Responder run with recovery request and forced abort
+
+  (defrole resp3
+    (vars (a b t hash_id name) (e1 e2 x mesg))
+    (trace
+     (recv (cat (l-star e1 x) e1 e2 (eoo-star x e1 e2)))
+     (send (cat (l-star e1 x) e2 (eoo-star x e1 e2) (eor-star x e1 e2)))
+     (send (cat (l-star e1 x) e2 (eoo-star x e1 e2) (eor-star x e1 e2)
+                (enc "rcrq" (l-star e1 x) e2 (privk "sign" b))))
+     (recv (enc "abcf"
+                (enc "abrq" (l-star e1 x) (privk "sign" a))
+                (privk "sign" t))))
+    (non-orig (privk hash_id)))
+
+  ;; TTP handles an abort
+
+  (defrole ttp-ab1
+    (vars (a b t hash_id name) (y x mesg))
+    (trace
+     (recv (enc "abrq" (l-prime y x) (privk "sign" a)))
+     (send (cat "sync-abrq"
+                (enc "abrq" (l-prime y x) (privk "sign" a))))
+     (send (enc "abcf"
+                (enc "abrq" (l-prime y x) (privk "sign" a))
+                (privk "sign" t))))
+    (non-orig (privk hash_id)))
+
+  ;; TTP forces recovery in response to an abort request
+
+  (defrole ttp-ab2
+    (vars (a b t hash_id name) (y x e mesg))
+    (trace
+     (recv (enc "abrq" (l-prime y x) (privk "sign" a)))
+     (recv (cat "sync-abrq"
+                (enc "eortag" (hash (l-prime y x)) e
+                     (privk "sign" b))))
+     (send (enc "eortag" (hash (l-prime y x)) e
+                (privk "sign" b))))
+    (non-orig (privk hash_id)))
+
+  ;; TTP handles a recovery
+
+  (defrole ttp-rc1
+    (vars (a b t hash_id name) (r text) (k skey) (y mesg))
+    (trace
+     (recv (rr-prime-prime y))
+     (send (cat "sync-rc-req"
+                (rr-prime-prime y)))
+     (send (cat k r)))
+    (non-orig (privk hash_id)))
+
+  ;; TTP forces abort in response to a recovery request
+
+  (defrole ttp-rc2
+    (vars (a b t hash_id name) (r text) (k skey) (y mesg))
+    (trace
+     (recv (rr-prime-prime y))
+     (recv (cat "sync-rc-req"
+		(enc "abrq" (l-prime-prime y) (privk "sign" a))))
+     (send (enc "abcf"
+                (enc "abrq" (l-prime-prime y) (privk "sign" a))
+                (privk "sign" t))))
+    (non-orig (privk hash_id)))
+
+  ;; TTP handles a confirm request
+
+  (defrole ttp-cf1
+    (vars (a b t hash_id name) (r text) (k skey) (y mesg))
+    (trace
+     (recv (cf-prime-prime y))
+     (send (cat "sync-cf-req"
+                (cf-prime-prime y)))
+     (send (enc (cf-prime-prime y) (privk "sign" t))))
+    (non-orig (privk hash_id)))
+
+  ;; TTP replies with abort token given confirm request
+
+  (defrole ttp-cf2
+    (vars (a b t hash_id name) (r text) (k skey) (y mesg))
+    (trace
+     (recv (cf-prime-prime y))
+     (recv (cat "sync-cf-req"
+                (enc "abrq"(l-prime-prime y) (privk "sign" a))))
+     (send (enc "abcf"
+                (enc "abrq"(l-prime-prime y) (privk "sign" a))
+                (privk "sign" t))))
+    (non-orig (privk hash_id))))
+
+;; End of Wang's protocol defn.
+
+;; Two experiments to prove Lemma 4.1
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand init1 1 (b b) (t t) (m m) (r r) (k k))
+  (deflistener m)
+  (non-orig
+   (privk "encr" t))
+  (uniq-orig m k)
+  (comment "Experiment 1 to prove Lemma 4.1."))
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand init1 1 (b b) (t t) (m m) (r r) (k k))
+  (deflistener k)
+  (non-orig
+   (privk "encr" t))
+  (uniq-orig m k)
+  (comment "Experiment 2 to prove Lemma 4.1."))
+
+;; We now have three experiments
+;; to prove Lemma 4.2, clause 1.
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand init1 3 (b b) (t t) (m m) (r r) (k k))
+  (non-orig
+   (privk "sign" b))
+  (comment "First of three experiments to prove Lemma 4.2, clause 1."))
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand init3 3 (b b) (t t) (m m) (r r) (k k))
+  (non-orig
+   (privk "sign" b))
+  (comment "Second of three experiments to prove Lemma 4.2, clause 1."))
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand init5 4 (b b) (t t) (m m) (r r) (k k))
+  (non-orig
+   (privk "sign" b))
+  (comment "Third of three experiments to prove Lemma 4.2, clause 1."))
+
+;; Two experiments to prove 4.2, Clause 2.
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand resp1 3 (a a) (t t) (m m) (r r) (k k))
+  (non-orig
+   (privk "sign" a))
+  (comment
+   "First of two experiments to prove Lemma 4.2, clause 2."))
+
+(defskeleton wang
+  (vars (a b t hash_id name) (m data) (r text) (k skey))
+  (defstrand resp2 4 (a a) (t t) (m m) (r r) (k k))
+  (non-orig
+   (privk "sign" a))
+  (comment
+   "Second of two experiments to prove Lemma 4.2, clause 2."))
+
+;; Experiment to prove Lemma 4.2, clause 3.
+
+(defskeleton wang
+  (vars (a b t hash_id name) (e1 e2 x mesg))
+  (defstrand resp3 4 (a a) (t t))
+  (non-orig
+   (privk "sign" a))
+  (comment
+   "Experiments to prove Lemma 4.2, clause 3."))
+
+;; One experiment to prove Lemma 4.3, Clause 1.
+
+(defskeleton wang
+  (vars (a b t hash_id name) (y x mesg))
+  (deflistener
+    (enc "abcf" (enc "abrq" (l-prime y x) (privk "sign" a))
+	 (privk "sign" t)))
+  (non-orig
+   (privk "sign" t))
+  (comment
+   "Experiments to prove Lemma 4.3, clause 1."))
+
+;; Three experiments to prove Lemma 4.3, Clause 2.
+
+(defskeleton wang
+  (vars (y x mesg) (a b t name))
+  (defstrand ttp-ab1 3 (y y) (x x) (a a) (b b) (t t))
+  (non-orig (privk "sign" a)  (privk "encr" t))
+  (comment
+   "Experiment 1 to prove Lemma 4.3, clause 2."))
+
+(defskeleton wang
+  (vars (a b t hash_id name) (r text) (k skey) (y mesg))
+  (defstrand ttp-rc2 3 (a a) (b b) (t t))
+  (non-orig (privk "sign" a)  (privk "encr" t))
+  (comment
+   "Experiment 2 to prove Lemma 4.3, clause 2."))
+
+(defskeleton wang
+  (vars (a b t hash_id name) (r text) (k skey) (y mesg))
+  (defstrand ttp-cf2 3 (a a) (b b) (t t))
+  (non-orig (privk "sign" a)  (privk "encr" t))
+  (comment
+   "Experiment 3 to prove Lemma 4.3, clause 2."))
diff --git a/tst/wd-goalssat.scm b/tst/wd-goalssat.scm
deleted file mode 100644
--- a/tst/wd-goalssat.scm
+++ /dev/null
@@ -1,147 +0,0 @@
-(herald "Wrap-Decrypt example"
-	(bound 24)
-	(limit 2000)
-	(goals-sat)
-	)
-
-;; In this version, the redirect URI is registered ahead of time
-;; and is not carried in the auth or access messages
-
-(defprotocol wrap-decrypt basic
-   (defrole create-key
-     (vars (k skey))
-     (trace
-      (recv (cat "CREATE"))
-      (send (cat "CREATED" (hash k)))
-      (init (cat "init" k)))
-     (uniq-gen k)
-     )
-   (defrole set-wrap
-     (vars (k skey) (type mesg))
-     (trace
-      (recv (cat "SET-WRAP" (hash k)))
-      (tran (cat type k) (cat "wrap" k))
-      (send (cat "SET-WRAP-DONE"))
-      ))
-   (defrole set-decrypt
-     (vars (k skey) (type mesg))
-     (trace
-      (recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat type k) (cat "decrypt" k))
-      (send (cat "SET-DECRYPT-DONE"))
-      ))
-   (defrole do-decrypt
-     (vars (k skey) (m mesg))
-     (trace
-      (recv (cat "DECRYPT" (hash k) (enc m k)))
-      (obsv (cat "decrypt" k))
-      (send m)))
-   (defrole do-wrap
-     (vars (wk ck skey) (cktype mesg))
-     (trace
-      (recv (cat "WRAP" (hash wk) (hash ck)))
-      (obsv (cat "wrap" wk))
-      (obsv (cat cktype ck))
-      (send (enc ck wk))
-      )
-    )
-   ;; --------- RULES -------------
-   (defrule no-key-cycle
-     (forall ((z strd) (k skey))
-	     (implies
-	      (and
-	       (p "do-wrap" z 4)
-	       (p "do-wrap" "ck" z k)
-	       (p "do-wrap" "wk" z k)
-	       )
-	      (fact falseFact))))
-
-   (defrule no-set-wrap-noops
-     (forall ((z strd))
-	     (implies
-	      (and
-	       (p "set-wrap" z 2)
-	       (p "set-wrap" "type" z "wrap")
-	       )
-	      (fact falseFact))))
-
-   (defrule no-set-decrypt-noops
-     (forall ((z strd))
-	     (implies
-	      (and
-	       (p "set-decrypt" z 2)
-	       (p "set-decrypt" "type" z "decrypt")
-	       )
-	      (fact falseFact))))
-
-   (defrule secure-mode
-     (forall ((z strd))
-     (implies
-      (and
-       (fact secureMode)
-       (p "set-decrypt" z 1)
-       (p "set-decrypt" "type" z "wrap")
-	   )
-      (fact falseFact))))
-
-   (defrule conclusion-of-simple
-     (forall ((z0 z1 strd) (k skey))
-	     (implies
-	      (and
-	       (p "create-key" z0 3)
-		   (p "create-key" "k" z0 k)
-		   (p "" z1 1)
-		   (p "" "x" z1 k)
-		   )
-	      ;; A key was used to decrypt after wrapping.
-;	      (fact falseFact))))
-	      (exists ((z2 z3 strd) (k2 skey))
-		      (and
-		       (p "do-decrypt" z2 1)
-		       (p "do-decrypt" "k" z2 k2)
-		       (p "do-wrap" z3 4)
-		       (p "do-wrap" "wk" z3 k2)
-		       (prec z3 3 z2 0)
-		       (prec z2 0 z1 0)
-		       )))))
-   )
-
-(comment
-(defskeleton wrap-decrypt
-  (vars (k skey))
-  (defstrand do-decrypt 3 (k k))
-  (defstrand do-wrap 3 (wk k))
-  (facts (secureMode))
-  (precedes ((1 2) (0 0))))
-)
-
-;;; Defgoals
-;;; Secure mode
-(defgoal wrap-decrypt
-  (forall ((z0 z1 strd) (k skey))
-	  (implies
-	   (and
-	    (fact secureMode)
-	    (p "do-decrypt" z0 3)
-	    (p "do-decrypt" "k" z0 k)
-	    (p "do-wrap" z1 4)
-	    (p "do-wrap" "wk" z1 k)
-	    (prec z1 3 z0 0))
-;;; Infinite descent: implies there exists two copies of decrypt followed by wrap, one before the other.
-	   (or
-	    (fact falseFact)
-	   (exists
-	    ((z2 z3 z4 z5 strd) (k0 k1 skey))
-	    (and
-	     (p "do-decrypt" z2 3)
-	     (p "do-decrypt" "k" z2 k0)
-	     (p "do-wrap" z3 4)
-	     (p "do-wrap" "wk" z3 k0)
-	     (prec z2 3 z3 0)
-	     (p "do-decrypt" z4 3)
-	     (p "do-decrypt" "k" z4 k1)
-	     (p "do-wrap" z5 4)
-	     (p "do-wrap" "wk" z5 k1)
-	     (prec z4 3 z5 0)
-	     (prec z2 3 z4 0))
-	    )))))
diff --git a/tst/wd-goalssat.tst b/tst/wd-goalssat.tst
deleted file mode 100644
--- a/tst/wd-goalssat.tst
+++ /dev/null
@@ -1,654 +0,0 @@
-(herald "Wrap-Decrypt example" (bound 24) (limit 2000) (goals-sat))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/wd-goalssat.scm")
-(comment "Strand count bounded at 24")
-(comment "Stop when goals satisfied")
-
-(defprotocol wrap-decrypt basic
-  (defrole create-key
-    (vars (k skey))
-    (trace (recv "CREATE") (send (cat "CREATED" (hash k)))
-      (init (cat "init" k)))
-    (uniq-gen k))
-  (defrole set-wrap
-    (vars (k skey) (type mesg))
-    (trace (recv (cat "SET-WRAP" (hash k)))
-      (tran (cat type k) (cat "wrap" k)) (send "SET-WRAP-DONE")))
-  (defrole set-decrypt
-    (vars (k skey) (type mesg))
-    (trace (recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat type k) (cat "decrypt" k)) (send "SET-DECRYPT-DONE")))
-  (defrole do-decrypt
-    (vars (k skey) (m mesg))
-    (trace (recv (cat "DECRYPT" (hash k) (enc m k)))
-      (obsv (cat "decrypt" k)) (send m)))
-  (defrole do-wrap
-    (vars (wk ck skey) (cktype mesg))
-    (trace (recv (cat "WRAP" (hash wk) (hash ck)))
-      (obsv (cat "wrap" wk)) (obsv (cat cktype ck)) (send (enc ck wk))))
-  (defrule no-key-cycle
-    (forall ((z strd) (k skey))
-      (implies
-        (and (p "do-wrap" z 4) (p "do-wrap" "ck" z k)
-          (p "do-wrap" "wk" z k))
-        (fact falseFact))))
-  (defrule no-set-wrap-noops
-    (forall ((z strd))
-      (implies
-        (and (p "set-wrap" z 2) (p "set-wrap" "type" z "wrap"))
-        (fact falseFact))))
-  (defrule no-set-decrypt-noops
-    (forall ((z strd))
-      (implies
-        (and (p "set-decrypt" z 2) (p "set-decrypt" "type" z "decrypt"))
-        (fact falseFact))))
-  (defrule secure-mode
-    (forall ((z strd))
-      (implies
-        (and (fact secureMode) (p "set-decrypt" z 1)
-          (p "set-decrypt" "type" z "wrap"))
-        (fact falseFact))))
-  (defrule conclusion-of-simple
-    (forall ((z0 z1 strd) (k skey))
-      (implies
-        (and (p "create-key" z0 3) (p "create-key" "k" z0 k) (p "" z1 1)
-          (p "" "x" z1 k))
-        (exists ((z2 z3 strd) (k2 skey))
-          (and (p "do-decrypt" z2 1) (p "do-wrap" z3 4)
-            (p "do-decrypt" "k" z2 k2) (p "do-wrap" "wk" z3 k2)
-            (prec z3 3 z2 0) (prec z2 0 z1 0)))))))
-
-(defskeleton wrap-decrypt
-  (vars (cktype m mesg) (k ck skey))
-  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))
-  (defstrand do-decrypt 3 (m m) (k k))
-  (precedes ((0 3) (1 0)))
-  (facts (secureMode))
-  (goals
-    (forall ((z0 z1 strd) (k skey))
-      (implies
-        (and (fact secureMode) (p "do-decrypt" z0 3)
-          (p "do-decrypt" "k" z0 k) (p "do-wrap" z1 4)
-          (p "do-wrap" "wk" z1 k) (prec z1 3 z0 0))
-        (or (fact falseFact)
-          (exists ((z2 z3 z4 z5 strd) (k0 k1 skey))
-            (and (p "do-decrypt" z2 3) (p "do-decrypt" "k" z2 k0)
-              (p "do-wrap" z3 4) (p "do-wrap" "wk" z3 k0)
-              (prec z2 3 z3 0) (p "do-decrypt" z4 3)
-              (p "do-decrypt" "k" z4 k1) (p "do-wrap" z5 4)
-              (p "do-wrap" "wk" z5 k1) (prec z4 3 z5 0)
-              (prec z2 3 z4 0)))))))
-  (traces
-    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))
-      (obsv (cat cktype ck)) (send (enc ck k)))
-    ((recv (cat "DECRYPT" (hash k) (enc m k))) (obsv (cat "decrypt" k))
-      (send m)))
-  (label 0)
-  (unrealized (0 1) (0 2) (1 1))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton wrap-decrypt
-  (vars (cktype m type mesg) (ck k skey))
-  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))
-  (defstrand do-decrypt 3 (m m) (k k))
-  (defstrand set-decrypt 2 (type type) (k k))
-  (precedes ((0 3) (1 0)) ((2 1) (1 1)))
-  (leadsto ((2 1) (1 1)))
-  (facts (secureMode))
-  (operation state-passing-test (added-strand set-decrypt 2)
-    (cat "decrypt" k) (1 1))
-  (traces
-    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))
-      (obsv (cat cktype ck)) (send (enc ck k)))
-    ((recv (cat "DECRYPT" (hash k) (enc m k))) (obsv (cat "decrypt" k))
-      (send m))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat type k) (cat "decrypt" k))))
-  (label 1)
-  (parent 0)
-  (unrealized (0 1) (0 2) (2 1))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton wrap-decrypt
-  (vars (cktype m mesg) (ck k skey))
-  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))
-  (defstrand do-decrypt 3 (m m) (k k))
-  (defstrand set-decrypt 2 (type "init") (k k))
-  (defstrand create-key 3 (k k))
-  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))
-    ((3 2) (2 1)))
-  (leadsto ((2 1) (1 1)) ((3 2) (2 1)))
-  (uniq-gen k)
-  (facts (secureMode))
-  (operation state-passing-test (added-strand create-key 3)
-    (cat "init" k) (2 1))
-  (traces
-    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))
-      (obsv (cat cktype ck)) (send (enc ck k)))
-    ((recv (cat "DECRYPT" (hash k) (enc m k))) (obsv (cat "decrypt" k))
-      (send m))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat "init" k) (cat "decrypt" k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k)))
-      (init (cat "init" k))))
-  (label 2)
-  (parent 1)
-  (unrealized (0 1) (0 2) (1 0))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton wrap-decrypt
-  (vars (cktype m type mesg) (ck k skey))
-  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))
-  (defstrand do-decrypt 3 (m m) (k k))
-  (defstrand set-decrypt 2 (type "wrap") (k k))
-  (defstrand set-wrap 2 (type type) (k k))
-  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (2 1)))
-  (leadsto ((2 1) (1 1)) ((3 1) (2 1)))
-  (facts (falseFact) (secureMode))
-  (rule secure-mode)
-  (operation state-passing-test (added-strand set-wrap 2) (cat "wrap" k)
-    (2 1))
-  (traces
-    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))
-      (obsv (cat cktype ck)) (send (enc ck k)))
-    ((recv (cat "DECRYPT" (hash k) (enc m k))) (obsv (cat "decrypt" k))
-      (send m))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat "wrap" k) (cat "decrypt" k)))
-    ((recv (cat "SET-WRAP" (hash k)))
-      (tran (cat type k) (cat "wrap" k))))
-  (label 3)
-  (parent 1)
-  (unrealized (0 1) (0 2) (3 1))
-  (fringe)
-  (satisfies-all)
-  (maps ((0 1) ((k k) (ck ck) (cktype cktype) (m m))))
-  (origs)
-  (comment "satisfies all"))
-
-(defskeleton wrap-decrypt
-  (vars (cktype m type mesg) (ck k skey))
-  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))
-  (defstrand do-decrypt 3 (m m) (k k))
-  (defstrand set-decrypt 2 (type "decrypt") (k k))
-  (defstrand set-decrypt 2 (type type) (k k))
-  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (2 1)))
-  (leadsto ((2 1) (1 1)) ((3 1) (2 1)))
-  (facts (falseFact) (secureMode))
-  (rule no-set-decrypt-noops)
-  (operation state-passing-test (added-strand set-decrypt 2)
-    (cat "decrypt" k) (2 1))
-  (traces
-    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))
-      (obsv (cat cktype ck)) (send (enc ck k)))
-    ((recv (cat "DECRYPT" (hash k) (enc m k))) (obsv (cat "decrypt" k))
-      (send m))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat "decrypt" k) (cat "decrypt" k)))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat type k) (cat "decrypt" k))))
-  (label 4)
-  (parent 1)
-  (unrealized (0 1) (0 2) (3 1))
-  (fringe)
-  (satisfies-all)
-  (maps ((0 1) ((k k) (ck ck) (cktype cktype) (m m))))
-  (origs)
-  (comment "satisfies all"))
-
-(defskeleton wrap-decrypt
-  (vars (cktype mesg) (ck k skey))
-  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))
-  (defstrand do-decrypt 3 (m ck) (k k))
-  (defstrand set-decrypt 2 (type "init") (k k))
-  (defstrand create-key 3 (k k))
-  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))
-    ((3 2) (2 1)))
-  (leadsto ((2 1) (1 1)) ((3 2) (2 1)))
-  (uniq-gen k)
-  (facts (secureMode))
-  (operation encryption-test (displaced 4 0 do-wrap 4) (enc ck-0 k)
-    (1 0))
-  (traces
-    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))
-      (obsv (cat cktype ck)) (send (enc ck k)))
-    ((recv (cat "DECRYPT" (hash k) (enc ck k))) (obsv (cat "decrypt" k))
-      (send ck))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat "init" k) (cat "decrypt" k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k)))
-      (init (cat "init" k))))
-  (label 5)
-  (parent 2)
-  (unrealized (0 1) (0 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton wrap-decrypt
-  (vars (cktype cktype-0 mesg) (ck k ck-0 skey))
-  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))
-  (defstrand do-decrypt 3 (m ck-0) (k k))
-  (defstrand set-decrypt 2 (type "init") (k k))
-  (defstrand create-key 3 (k k))
-  (defstrand do-wrap 4 (cktype cktype-0) (wk k) (ck ck-0))
-  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))
-    ((3 1) (4 0)) ((3 2) (2 1)) ((4 3) (1 0)))
-  (leadsto ((2 1) (1 1)) ((3 2) (2 1)))
-  (uniq-gen k)
-  (facts (secureMode))
-  (operation encryption-test (added-strand do-wrap 4) (enc ck-0 k)
-    (1 0))
-  (traces
-    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))
-      (obsv (cat cktype ck)) (send (enc ck k)))
-    ((recv (cat "DECRYPT" (hash k) (enc ck-0 k)))
-      (obsv (cat "decrypt" k)) (send ck-0))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat "init" k) (cat "decrypt" k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k)))
-      (init (cat "init" k)))
-    ((recv (cat "WRAP" (hash k) (hash ck-0))) (obsv (cat "wrap" k))
-      (obsv (cat cktype-0 ck-0)) (send (enc ck-0 k))))
-  (label 6)
-  (parent 2)
-  (unrealized (0 1) (0 2) (4 1) (4 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton wrap-decrypt
-  (vars (cktype type mesg) (ck k skey))
-  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))
-  (defstrand do-decrypt 3 (m ck) (k k))
-  (defstrand set-decrypt 2 (type "init") (k k))
-  (defstrand create-key 3 (k k))
-  (defstrand set-wrap 2 (type type) (k k))
-  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))
-    ((3 1) (4 0)) ((3 2) (2 1)) ((4 1) (0 1)))
-  (leadsto ((2 1) (1 1)) ((3 2) (2 1)) ((4 1) (0 1)))
-  (uniq-gen k)
-  (facts (secureMode))
-  (operation state-passing-test (added-strand set-wrap 2) (cat "wrap" k)
-    (0 1))
-  (traces
-    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))
-      (obsv (cat cktype ck)) (send (enc ck k)))
-    ((recv (cat "DECRYPT" (hash k) (enc ck k))) (obsv (cat "decrypt" k))
-      (send ck))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat "init" k) (cat "decrypt" k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k)))
-      (init (cat "init" k)))
-    ((recv (cat "SET-WRAP" (hash k)))
-      (tran (cat type k) (cat "wrap" k))))
-  (label 7)
-  (parent 5)
-  (unrealized (0 2) (4 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton wrap-decrypt
-  (vars (cktype cktype-0 type mesg) (ck ck-0 k skey))
-  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))
-  (defstrand do-decrypt 3 (m ck-0) (k k))
-  (defstrand set-decrypt 2 (type "init") (k k))
-  (defstrand create-key 3 (k k))
-  (defstrand do-wrap 4 (cktype cktype-0) (wk k) (ck ck-0))
-  (defstrand set-wrap 2 (type type) (k k))
-  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))
-    ((3 1) (4 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 3) (1 0))
-    ((5 1) (4 1)))
-  (leadsto ((2 1) (1 1)) ((3 2) (2 1)) ((5 1) (4 1)))
-  (uniq-gen k)
-  (facts (secureMode))
-  (operation state-passing-test (added-strand set-wrap 2) (cat "wrap" k)
-    (4 1))
-  (traces
-    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))
-      (obsv (cat cktype ck)) (send (enc ck k)))
-    ((recv (cat "DECRYPT" (hash k) (enc ck-0 k)))
-      (obsv (cat "decrypt" k)) (send ck-0))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat "init" k) (cat "decrypt" k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k)))
-      (init (cat "init" k)))
-    ((recv (cat "WRAP" (hash k) (hash ck-0))) (obsv (cat "wrap" k))
-      (obsv (cat cktype-0 ck-0)) (send (enc ck-0 k)))
-    ((recv (cat "SET-WRAP" (hash k)))
-      (tran (cat type k) (cat "wrap" k))))
-  (label 8)
-  (parent 6)
-  (unrealized (0 1) (0 2) (4 2) (5 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton wrap-decrypt
-  (vars (cktype type mesg) (ck k skey))
-  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))
-  (defstrand do-decrypt 3 (m ck) (k k))
-  (defstrand set-decrypt 2 (type "init") (k k))
-  (defstrand create-key 3 (k k))
-  (defstrand set-wrap 2 (type "wrap") (k k))
-  (defstrand set-wrap 2 (type type) (k k))
-  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))
-    ((3 1) (4 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (0 1))
-    ((5 1) (4 1)))
-  (leadsto ((2 1) (1 1)) ((3 2) (2 1)) ((4 1) (0 1)) ((5 1) (4 1)))
-  (uniq-gen k)
-  (facts (falseFact) (secureMode))
-  (rule no-set-wrap-noops)
-  (operation state-passing-test (added-strand set-wrap 2) (cat "wrap" k)
-    (4 1))
-  (traces
-    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))
-      (obsv (cat cktype ck)) (send (enc ck k)))
-    ((recv (cat "DECRYPT" (hash k) (enc ck k))) (obsv (cat "decrypt" k))
-      (send ck))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat "init" k) (cat "decrypt" k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k)))
-      (init (cat "init" k)))
-    ((recv (cat "SET-WRAP" (hash k)))
-      (tran (cat "wrap" k) (cat "wrap" k)))
-    ((recv (cat "SET-WRAP" (hash k)))
-      (tran (cat type k) (cat "wrap" k))))
-  (label 9)
-  (parent 7)
-  (unrealized (0 2) (5 1))
-  (fringe)
-  (satisfies-all)
-  (maps ((0 1) ((k k) (ck ck) (cktype cktype) (m ck))))
-  (origs)
-  (comment "satisfies all"))
-
-(defskeleton wrap-decrypt
-  (vars (cktype type mesg) (ck k skey))
-  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))
-  (defstrand do-decrypt 3 (m ck) (k k))
-  (defstrand set-decrypt 2 (type "init") (k k))
-  (defstrand create-key 3 (k k))
-  (defstrand set-wrap 2 (type "decrypt") (k k))
-  (defstrand set-decrypt 2 (type type) (k k))
-  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))
-    ((3 1) (4 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 1) (0 1))
-    ((5 1) (4 1)))
-  (leadsto ((2 1) (1 1)) ((3 2) (2 1)) ((4 1) (0 1)) ((5 1) (4 1)))
-  (uniq-gen k)
-  (facts (secureMode))
-  (operation state-passing-test (added-strand set-decrypt 2)
-    (cat "decrypt" k) (4 1))
-  (traces
-    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))
-      (obsv (cat cktype ck)) (send (enc ck k)))
-    ((recv (cat "DECRYPT" (hash k) (enc ck k))) (obsv (cat "decrypt" k))
-      (send ck))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat "init" k) (cat "decrypt" k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k)))
-      (init (cat "init" k)))
-    ((recv (cat "SET-WRAP" (hash k)))
-      (tran (cat "decrypt" k) (cat "wrap" k)))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat type k) (cat "decrypt" k))))
-  (label 10)
-  (parent 7)
-  (unrealized (0 2) (5 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton wrap-decrypt
-  (vars (cktype cktype-0 type mesg) (ck ck-0 k skey))
-  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))
-  (defstrand do-decrypt 3 (m ck-0) (k k))
-  (defstrand set-decrypt 2 (type "init") (k k))
-  (defstrand create-key 3 (k k))
-  (defstrand do-wrap 4 (cktype cktype-0) (wk k) (ck ck-0))
-  (defstrand set-wrap 2 (type "wrap") (k k))
-  (defstrand set-wrap 2 (type type) (k k))
-  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))
-    ((3 1) (4 0)) ((3 1) (5 0)) ((3 1) (6 0)) ((3 2) (2 1))
-    ((4 3) (1 0)) ((5 1) (4 1)) ((6 1) (5 1)))
-  (leadsto ((2 1) (1 1)) ((3 2) (2 1)) ((5 1) (4 1)) ((6 1) (5 1)))
-  (uniq-gen k)
-  (facts (falseFact) (secureMode))
-  (rule no-set-wrap-noops)
-  (operation state-passing-test (added-strand set-wrap 2) (cat "wrap" k)
-    (5 1))
-  (traces
-    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))
-      (obsv (cat cktype ck)) (send (enc ck k)))
-    ((recv (cat "DECRYPT" (hash k) (enc ck-0 k)))
-      (obsv (cat "decrypt" k)) (send ck-0))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat "init" k) (cat "decrypt" k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k)))
-      (init (cat "init" k)))
-    ((recv (cat "WRAP" (hash k) (hash ck-0))) (obsv (cat "wrap" k))
-      (obsv (cat cktype-0 ck-0)) (send (enc ck-0 k)))
-    ((recv (cat "SET-WRAP" (hash k)))
-      (tran (cat "wrap" k) (cat "wrap" k)))
-    ((recv (cat "SET-WRAP" (hash k)))
-      (tran (cat type k) (cat "wrap" k))))
-  (label 11)
-  (parent 8)
-  (unrealized (0 1) (0 2) (4 2) (6 1))
-  (fringe)
-  (satisfies-all)
-  (maps ((0 1) ((k k) (ck ck) (cktype cktype) (m ck-0))))
-  (origs)
-  (comment "satisfies all"))
-
-(defskeleton wrap-decrypt
-  (vars (cktype cktype-0 type mesg) (ck ck-0 k skey))
-  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))
-  (defstrand do-decrypt 3 (m ck-0) (k k))
-  (defstrand set-decrypt 2 (type "init") (k k))
-  (defstrand create-key 3 (k k))
-  (defstrand do-wrap 4 (cktype cktype-0) (wk k) (ck ck-0))
-  (defstrand set-wrap 2 (type "decrypt") (k k))
-  (defstrand set-decrypt 2 (type type) (k k))
-  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))
-    ((3 1) (4 0)) ((3 1) (5 0)) ((3 1) (6 0)) ((3 2) (2 1))
-    ((4 3) (1 0)) ((5 1) (4 1)) ((6 1) (5 1)))
-  (leadsto ((2 1) (1 1)) ((3 2) (2 1)) ((5 1) (4 1)) ((6 1) (5 1)))
-  (uniq-gen k)
-  (facts (secureMode))
-  (operation state-passing-test (added-strand set-decrypt 2)
-    (cat "decrypt" k) (5 1))
-  (traces
-    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))
-      (obsv (cat cktype ck)) (send (enc ck k)))
-    ((recv (cat "DECRYPT" (hash k) (enc ck-0 k)))
-      (obsv (cat "decrypt" k)) (send ck-0))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat "init" k) (cat "decrypt" k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k)))
-      (init (cat "init" k)))
-    ((recv (cat "WRAP" (hash k) (hash ck-0))) (obsv (cat "wrap" k))
-      (obsv (cat cktype-0 ck-0)) (send (enc ck-0 k)))
-    ((recv (cat "SET-WRAP" (hash k)))
-      (tran (cat "decrypt" k) (cat "wrap" k)))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat type k) (cat "decrypt" k))))
-  (label 12)
-  (parent 8)
-  (unrealized (0 1) (0 2) (4 2) (6 1))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton wrap-decrypt
-  (vars (cktype type mesg) (ck k skey))
-  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))
-  (defstrand do-decrypt 3 (m ck) (k k))
-  (defstrand set-decrypt 2 (type "init") (k k))
-  (defstrand create-key 3 (k k))
-  (defstrand set-wrap 2 (type "decrypt") (k k))
-  (defstrand set-decrypt 2 (type "wrap") (k k))
-  (defstrand set-wrap 2 (type type) (k k))
-  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))
-    ((3 1) (4 0)) ((3 1) (5 0)) ((3 1) (6 0)) ((3 2) (2 1))
-    ((4 1) (0 1)) ((5 1) (4 1)) ((6 1) (5 1)))
-  (leadsto ((2 1) (1 1)) ((3 2) (2 1)) ((4 1) (0 1)) ((5 1) (4 1))
-    ((6 1) (5 1)))
-  (uniq-gen k)
-  (facts (falseFact) (secureMode))
-  (rule secure-mode)
-  (operation state-passing-test (added-strand set-wrap 2) (cat "wrap" k)
-    (5 1))
-  (traces
-    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))
-      (obsv (cat cktype ck)) (send (enc ck k)))
-    ((recv (cat "DECRYPT" (hash k) (enc ck k))) (obsv (cat "decrypt" k))
-      (send ck))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat "init" k) (cat "decrypt" k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k)))
-      (init (cat "init" k)))
-    ((recv (cat "SET-WRAP" (hash k)))
-      (tran (cat "decrypt" k) (cat "wrap" k)))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat "wrap" k) (cat "decrypt" k)))
-    ((recv (cat "SET-WRAP" (hash k)))
-      (tran (cat type k) (cat "wrap" k))))
-  (label 13)
-  (parent 10)
-  (unrealized (0 2) (6 1))
-  (fringe)
-  (satisfies-all)
-  (maps ((0 1) ((k k) (ck ck) (cktype cktype) (m ck))))
-  (origs)
-  (comment "satisfies all"))
-
-(defskeleton wrap-decrypt
-  (vars (cktype type mesg) (ck k skey))
-  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))
-  (defstrand do-decrypt 3 (m ck) (k k))
-  (defstrand set-decrypt 2 (type "init") (k k))
-  (defstrand create-key 3 (k k))
-  (defstrand set-wrap 2 (type "decrypt") (k k))
-  (defstrand set-decrypt 2 (type "decrypt") (k k))
-  (defstrand set-decrypt 2 (type type) (k k))
-  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))
-    ((3 1) (4 0)) ((3 1) (5 0)) ((3 1) (6 0)) ((3 2) (2 1))
-    ((4 1) (0 1)) ((5 1) (4 1)) ((6 1) (5 1)))
-  (leadsto ((2 1) (1 1)) ((3 2) (2 1)) ((4 1) (0 1)) ((5 1) (4 1))
-    ((6 1) (5 1)))
-  (uniq-gen k)
-  (facts (falseFact) (secureMode))
-  (rule no-set-decrypt-noops)
-  (operation state-passing-test (added-strand set-decrypt 2)
-    (cat "decrypt" k) (5 1))
-  (traces
-    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))
-      (obsv (cat cktype ck)) (send (enc ck k)))
-    ((recv (cat "DECRYPT" (hash k) (enc ck k))) (obsv (cat "decrypt" k))
-      (send ck))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat "init" k) (cat "decrypt" k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k)))
-      (init (cat "init" k)))
-    ((recv (cat "SET-WRAP" (hash k)))
-      (tran (cat "decrypt" k) (cat "wrap" k)))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat "decrypt" k) (cat "decrypt" k)))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat type k) (cat "decrypt" k))))
-  (label 14)
-  (parent 10)
-  (unrealized (0 2) (6 1))
-  (fringe)
-  (satisfies-all)
-  (maps ((0 1) ((k k) (ck ck) (cktype cktype) (m ck))))
-  (origs)
-  (comment "satisfies all"))
-
-(defskeleton wrap-decrypt
-  (vars (cktype cktype-0 type mesg) (ck ck-0 k skey))
-  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))
-  (defstrand do-decrypt 3 (m ck-0) (k k))
-  (defstrand set-decrypt 2 (type "init") (k k))
-  (defstrand create-key 3 (k k))
-  (defstrand do-wrap 4 (cktype cktype-0) (wk k) (ck ck-0))
-  (defstrand set-wrap 2 (type "decrypt") (k k))
-  (defstrand set-decrypt 2 (type "wrap") (k k))
-  (defstrand set-wrap 2 (type type) (k k))
-  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))
-    ((3 1) (4 0)) ((3 1) (5 0)) ((3 1) (6 0)) ((3 1) (7 0))
-    ((3 2) (2 1)) ((4 3) (1 0)) ((5 1) (4 1)) ((6 1) (5 1))
-    ((7 1) (6 1)))
-  (leadsto ((2 1) (1 1)) ((3 2) (2 1)) ((5 1) (4 1)) ((6 1) (5 1))
-    ((7 1) (6 1)))
-  (uniq-gen k)
-  (facts (falseFact) (secureMode))
-  (rule secure-mode)
-  (operation state-passing-test (added-strand set-wrap 2) (cat "wrap" k)
-    (6 1))
-  (traces
-    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))
-      (obsv (cat cktype ck)) (send (enc ck k)))
-    ((recv (cat "DECRYPT" (hash k) (enc ck-0 k)))
-      (obsv (cat "decrypt" k)) (send ck-0))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat "init" k) (cat "decrypt" k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k)))
-      (init (cat "init" k)))
-    ((recv (cat "WRAP" (hash k) (hash ck-0))) (obsv (cat "wrap" k))
-      (obsv (cat cktype-0 ck-0)) (send (enc ck-0 k)))
-    ((recv (cat "SET-WRAP" (hash k)))
-      (tran (cat "decrypt" k) (cat "wrap" k)))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat "wrap" k) (cat "decrypt" k)))
-    ((recv (cat "SET-WRAP" (hash k)))
-      (tran (cat type k) (cat "wrap" k))))
-  (label 15)
-  (parent 12)
-  (unrealized (0 1) (0 2) (4 2) (7 1))
-  (fringe)
-  (satisfies-all)
-  (maps ((0 1) ((k k) (ck ck) (cktype cktype) (m ck-0))))
-  (origs)
-  (comment "satisfies all"))
-
-(defskeleton wrap-decrypt
-  (vars (cktype cktype-0 type mesg) (ck ck-0 k skey))
-  (defstrand do-wrap 4 (cktype cktype) (wk k) (ck ck))
-  (defstrand do-decrypt 3 (m ck-0) (k k))
-  (defstrand set-decrypt 2 (type "init") (k k))
-  (defstrand create-key 3 (k k))
-  (defstrand do-wrap 4 (cktype cktype-0) (wk k) (ck ck-0))
-  (defstrand set-wrap 2 (type "decrypt") (k k))
-  (defstrand set-decrypt 2 (type "decrypt") (k k))
-  (defstrand set-decrypt 2 (type type) (k k))
-  (precedes ((0 3) (1 0)) ((2 1) (1 1)) ((3 1) (0 0)) ((3 1) (2 0))
-    ((3 1) (4 0)) ((3 1) (5 0)) ((3 1) (6 0)) ((3 1) (7 0))
-    ((3 2) (2 1)) ((4 3) (1 0)) ((5 1) (4 1)) ((6 1) (5 1))
-    ((7 1) (6 1)))
-  (leadsto ((2 1) (1 1)) ((3 2) (2 1)) ((5 1) (4 1)) ((6 1) (5 1))
-    ((7 1) (6 1)))
-  (uniq-gen k)
-  (facts (falseFact) (secureMode))
-  (rule no-set-decrypt-noops)
-  (operation state-passing-test (added-strand set-decrypt 2)
-    (cat "decrypt" k) (6 1))
-  (traces
-    ((recv (cat "WRAP" (hash k) (hash ck))) (obsv (cat "wrap" k))
-      (obsv (cat cktype ck)) (send (enc ck k)))
-    ((recv (cat "DECRYPT" (hash k) (enc ck-0 k)))
-      (obsv (cat "decrypt" k)) (send ck-0))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat "init" k) (cat "decrypt" k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k)))
-      (init (cat "init" k)))
-    ((recv (cat "WRAP" (hash k) (hash ck-0))) (obsv (cat "wrap" k))
-      (obsv (cat cktype-0 ck-0)) (send (enc ck-0 k)))
-    ((recv (cat "SET-WRAP" (hash k)))
-      (tran (cat "decrypt" k) (cat "wrap" k)))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat "decrypt" k) (cat "decrypt" k)))
-    ((recv (cat "SET-DECRYPT" (hash k)))
-      (tran (cat type k) (cat "decrypt" k))))
-  (label 16)
-  (parent 12)
-  (unrealized (0 1) (0 2) (4 2) (7 1))
-  (fringe)
-  (satisfies-all)
-  (maps ((0 1) ((k k) (ck ck) (cktype cktype) (m ck-0))))
-  (origs)
-  (comment "satisfies all"))
-
-(comment "Nothing left to do")
diff --git a/tst/wd-gs-simple.scm b/tst/wd-gs-simple.scm
deleted file mode 100644
--- a/tst/wd-gs-simple.scm
+++ /dev/null
@@ -1,67 +0,0 @@
-(herald "Wrap-Decrypt example, simplified"
-	(bound 24)
-	(limit 500)
-	(goals-sat)
-	)
-
-;; In this version, the redirect URI is registered ahead of time
-;; and is not carried in the auth or access messages
-
-(defprotocol wrap-decrypt-simple basic
-   (defrole create-key
-     (vars (k skey))
-     (trace
-      (recv (cat "CREATE"))
-      (send (cat "CREATED" (hash k)))
-      (init k))
-     (uniq-gen k)
-     )
-   (defrole do-decrypt
-     (vars (k skey) (m mesg))
-     (trace
-      (recv (cat "DECRYPT" (hash k) (enc m k)))
-      (obsv k)
-      (send m)))
-   (defrole do-wrap
-     (vars (wk ck skey) (cktype mesg))
-     (trace
-      (recv (cat "WRAP" (hash wk) (hash ck)))
-      (obsv wk)
-      (obsv ck)
-      (send (enc ck wk))
-      )
-     (neq (ck wk))
-    )
-   ;; --------- RULES -------------
-   )
-
-(defgoal wrap-decrypt-simple
-  (forall ((z0 z1 strd) (k skey))
-  (implies
-   (and (p "create-key" z0 3)
-	(p "create-key" "k" z0 k)
-	(p "" z1 1)
-	(p "" "x" z1 k)
-	)
-   (or
-    ;; This is not the first instance of a key leaking
-    (exists ((z2 z3 z4 z5 strd) (k2 k3 skey))
-	   (and
-	    (p "create-key" z2 2)
-	    (p "create-key" "k" z2 k2)
-	    (p "create-key" z4 2)
-	    (p "create-key" "k" z4 k3)
-	    (p "" z3 1)
-	    (p "" "x" z3 k2)
-	    (p "" z5 1)
-	    (p "" "x" z5 k3)
-	    (prec z3 1 z5 0)))
-    ;; A key was used to decrypt after wrapping.
-    (exists ((z2 z3 strd) (k2 skey))
-	    (and
-	     (p "do-decrypt" z2 3)
-	     (p "do-decrypt" "k" z2 k2)
-	     (p "do-wrap" z3 4)
-	     (p "do-wrap" "wk" z3 k2)
-	     (prec z3 3 z2 0)
-	     ))))))
diff --git a/tst/wd-gs-simple.tst b/tst/wd-gs-simple.tst
deleted file mode 100644
--- a/tst/wd-gs-simple.tst
+++ /dev/null
@@ -1,393 +0,0 @@
-(herald "Wrap-Decrypt example, simplified" (bound 24) (limit 500)
-  (goals-sat))
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/wd-gs-simple.scm")
-(comment "Step count limited to 500")
-(comment "Strand count bounded at 24")
-(comment "Stop when goals satisfied")
-
-(defprotocol wrap-decrypt-simple basic
-  (defrole create-key
-    (vars (k skey))
-    (trace (recv "CREATE") (send (cat "CREATED" (hash k))) (init k))
-    (uniq-gen k))
-  (defrole do-decrypt
-    (vars (k skey) (m mesg))
-    (trace (recv (cat "DECRYPT" (hash k) (enc m k))) (obsv k) (send m)))
-  (defrole do-wrap
-    (vars (wk ck skey))
-    (trace (recv (cat "WRAP" (hash wk) (hash ck))) (obsv wk) (obsv ck)
-      (send (enc ck wk)))
-    (neq (ck wk))))
-
-(defskeleton wrap-decrypt-simple
-  (vars (k skey))
-  (deflistener k)
-  (defstrand create-key 3 (k k))
-  (uniq-gen k)
-  (goals
-    (forall ((z0 z1 strd) (k skey))
-      (implies
-        (and (p "create-key" z0 3) (p "create-key" "k" z0 k) (p "" z1 1)
-          (p "" "x" z1 k))
-        (or
-          (exists ((z2 z3 z4 z5 strd) (k2 k3 skey))
-            (and (p "create-key" z2 2) (p "create-key" "k" z2 k2)
-              (p "create-key" z4 2) (p "create-key" "k" z4 k3)
-              (p "" z3 1) (p "" "x" z3 k2) (p "" z5 1) (p "" "x" z5 k3)
-              (prec z3 1 z5 0)))
-          (exists ((z2 z3 strd) (k2 skey))
-            (and (p "do-decrypt" z2 3) (p "do-decrypt" "k" z2 k2)
-              (p "do-wrap" z3 4) (p "do-wrap" "wk" z3 k2)
-              (prec z3 3 z2 0)))))))
-  (traces ((recv k))
-    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k)))
-  (label 0)
-  (unrealized (0 0))
-  (preskeleton)
-  (origs)
-  (comment "Not a skeleton"))
-
-(defskeleton wrap-decrypt-simple
-  (vars (k skey))
-  (deflistener k)
-  (defstrand create-key 3 (k k))
-  (precedes ((1 1) (0 0)))
-  (uniq-gen k)
-  (goals
-    (forall ((z0 z1 strd) (k skey))
-      (implies
-        (and (p "create-key" z0 3) (p "create-key" "k" z0 k) (p "" z1 1)
-          (p "" "x" z1 k))
-        (or
-          (exists ((z2 z3 z4 z5 strd) (k2 k3 skey))
-            (and (p "create-key" z2 2) (p "create-key" "k" z2 k2)
-              (p "create-key" z4 2) (p "create-key" "k" z4 k3)
-              (p "" z3 1) (p "" "x" z3 k2) (p "" z5 1) (p "" "x" z5 k3)
-              (prec z3 1 z5 0)))
-          (exists ((z2 z3 strd) (k2 skey))
-            (and (p "do-decrypt" z2 3) (p "do-decrypt" "k" z2 k2)
-              (p "do-wrap" z3 4) (p "do-wrap" "wk" z3 k2)
-              (prec z3 3 z2 0)))))))
-  (traces ((recv k))
-    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k)))
-  (label 1)
-  (parent 0)
-  (unrealized (0 0))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton wrap-decrypt-simple
-  (vars (k wk skey))
-  (deflistener k)
-  (defstrand create-key 3 (k k))
-  (defstrand do-wrap 4 (wk wk) (ck k))
-  (precedes ((1 1) (2 0)) ((2 3) (0 0)))
-  (neq (k wk))
-  (uniq-gen k)
-  (operation nonce-test (added-strand do-wrap 4) k (0 0))
-  (traces ((recv k))
-    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))
-    ((recv (cat "WRAP" (hash wk) (hash k))) (obsv wk) (obsv k)
-      (send (enc k wk))))
-  (label 2)
-  (parent 1)
-  (unrealized (2 1) (2 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton wrap-decrypt-simple
-  (vars (k k-0 skey))
-  (deflistener k)
-  (defstrand create-key 3 (k k))
-  (defstrand do-wrap 4 (wk k-0) (ck k))
-  (defstrand create-key 3 (k k-0))
-  (precedes ((1 1) (2 0)) ((2 3) (0 0)) ((3 1) (2 0)) ((3 2) (2 1)))
-  (leadsto ((3 2) (2 1)))
-  (neq (k k-0))
-  (uniq-gen k k-0)
-  (operation state-passing-test (added-strand create-key 3) k-0 (2 1))
-  (traces ((recv k))
-    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))
-    ((recv (cat "WRAP" (hash k-0) (hash k))) (obsv k-0) (obsv k)
-      (send (enc k k-0)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k-0))) (init k-0)))
-  (label 3)
-  (parent 2)
-  (unrealized (0 0) (2 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton wrap-decrypt-simple
-  (vars (k k-0 skey))
-  (deflistener k-0)
-  (defstrand create-key 3 (k k-0))
-  (defstrand do-wrap 4 (wk k) (ck k-0))
-  (defstrand create-key 3 (k k))
-  (precedes ((1 1) (2 0)) ((1 2) (2 2)) ((2 3) (0 0)) ((3 1) (2 0))
-    ((3 2) (2 1)))
-  (leadsto ((1 2) (2 2)) ((3 2) (2 1)))
-  (neq (k-0 k))
-  (uniq-gen k k-0)
-  (operation state-passing-test (displaced 4 1 create-key 3) k-0 (2 2))
-  (traces ((recv k-0))
-    ((recv "CREATE") (send (cat "CREATED" (hash k-0))) (init k-0))
-    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)
-      (send (enc k-0 k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k)))
-  (label 4)
-  (parent 3)
-  (unrealized (0 0))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton wrap-decrypt-simple
-  (vars (k k-0 skey))
-  (deflistener k-0)
-  (defstrand create-key 3 (k k-0))
-  (defstrand do-wrap 4 (wk k) (ck k-0))
-  (defstrand create-key 3 (k k))
-  (defstrand do-decrypt 3 (m k-0) (k k))
-  (precedes ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (2 2)) ((2 3) (0 0))
-    ((3 1) (2 0)) ((3 1) (4 0)) ((3 2) (2 1)) ((4 2) (0 0)))
-  (leadsto ((1 2) (2 2)) ((3 2) (2 1)))
-  (neq (k-0 k))
-  (uniq-gen k k-0)
-  (operation nonce-test (added-strand do-decrypt 3) k-0 (0 0)
-    (enc k-0 k))
-  (traces ((recv k-0))
-    ((recv "CREATE") (send (cat "CREATED" (hash k-0))) (init k-0))
-    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)
-      (send (enc k-0 k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))
-    ((recv (cat "DECRYPT" (hash k) (enc k-0 k))) (obsv k) (send k-0)))
-  (label 5)
-  (parent 4)
-  (unrealized (4 0) (4 1))
-  (comment "3 in cohort - 3 not yet seen"))
-
-(defskeleton wrap-decrypt-simple
-  (vars (k k-0 wk skey))
-  (deflistener k-0)
-  (defstrand create-key 3 (k k-0))
-  (defstrand do-wrap 4 (wk k) (ck k-0))
-  (defstrand create-key 3 (k k))
-  (defstrand do-wrap 4 (wk wk) (ck k-0))
-  (precedes ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (2 2)) ((2 3) (0 0))
-    ((3 1) (2 0)) ((3 2) (2 1)) ((4 3) (0 0)))
-  (leadsto ((1 2) (2 2)) ((3 2) (2 1)))
-  (neq (k-0 wk) (k-0 k))
-  (uniq-gen k k-0)
-  (operation nonce-test (added-strand do-wrap 4) k-0 (0 0) (enc k-0 k))
-  (traces ((recv k-0))
-    ((recv "CREATE") (send (cat "CREATED" (hash k-0))) (init k-0))
-    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)
-      (send (enc k-0 k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))
-    ((recv (cat "WRAP" (hash wk) (hash k-0))) (obsv wk) (obsv k-0)
-      (send (enc k-0 wk))))
-  (label 6)
-  (parent 4)
-  (unrealized (4 1) (4 2))
-  (comment "2 in cohort - 2 not yet seen"))
-
-(defskeleton wrap-decrypt-simple
-  (vars (k k-0 skey))
-  (deflistener k-0)
-  (defstrand create-key 3 (k k-0))
-  (defstrand do-wrap 4 (wk k) (ck k-0))
-  (defstrand create-key 3 (k k))
-  (deflistener k)
-  (precedes ((1 1) (2 0)) ((1 2) (2 2)) ((2 3) (0 0)) ((3 1) (2 0))
-    ((3 1) (4 0)) ((3 2) (2 1)) ((4 1) (0 0)))
-  (leadsto ((1 2) (2 2)) ((3 2) (2 1)))
-  (neq (k-0 k))
-  (uniq-gen k k-0)
-  (operation nonce-test (added-listener k) k-0 (0 0) (enc k-0 k))
-  (traces ((recv k-0))
-    ((recv "CREATE") (send (cat "CREATED" (hash k-0))) (init k-0))
-    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)
-      (send (enc k-0 k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))
-    ((recv k) (send k)))
-  (label 7)
-  (parent 4)
-  (unrealized (4 0))
-  (fringe)
-  (satisfies-all)
-  (maps ((0 1) ((k k-0))))
-  (origs)
-  (comment "satisfies all"))
-
-(defskeleton wrap-decrypt-simple
-  (vars (k k-0 skey))
-  (deflistener k-0)
-  (defstrand create-key 3 (k k-0))
-  (defstrand do-wrap 4 (wk k) (ck k-0))
-  (defstrand create-key 3 (k k))
-  (defstrand do-decrypt 3 (m k-0) (k k))
-  (precedes ((1 1) (2 0)) ((1 2) (2 2)) ((2 3) (4 0)) ((3 1) (2 0))
-    ((3 2) (2 1)) ((4 2) (0 0)))
-  (leadsto ((1 2) (2 2)) ((3 2) (2 1)))
-  (neq (k-0 k))
-  (uniq-gen k k-0)
-  (operation encryption-test (displaced 5 2 do-wrap 4) (enc k-0 k)
-    (4 0))
-  (traces ((recv k-0))
-    ((recv "CREATE") (send (cat "CREATED" (hash k-0))) (init k-0))
-    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)
-      (send (enc k-0 k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))
-    ((recv (cat "DECRYPT" (hash k) (enc k-0 k))) (obsv k) (send k-0)))
-  (label 8)
-  (parent 5)
-  (unrealized (4 1))
-  (fringe)
-  (satisfies-all)
-  (maps ((0 1) ((k k-0))))
-  (origs)
-  (comment "satisfies all"))
-
-(defskeleton wrap-decrypt-simple
-  (vars (k k-0 skey))
-  (deflistener k-0)
-  (defstrand create-key 3 (k k-0))
-  (defstrand do-wrap 4 (wk k) (ck k-0))
-  (defstrand create-key 3 (k k))
-  (defstrand do-decrypt 3 (m k-0) (k k))
-  (defstrand do-wrap 4 (wk k) (ck k-0))
-  (precedes ((1 1) (2 0)) ((1 1) (5 0)) ((1 2) (2 2)) ((2 3) (0 0))
-    ((3 1) (2 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 2) (0 0))
-    ((5 3) (4 0)))
-  (leadsto ((1 2) (2 2)) ((3 2) (2 1)))
-  (neq (k-0 k))
-  (uniq-gen k k-0)
-  (operation encryption-test (added-strand do-wrap 4) (enc k-0 k) (4 0))
-  (traces ((recv k-0))
-    ((recv "CREATE") (send (cat "CREATED" (hash k-0))) (init k-0))
-    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)
-      (send (enc k-0 k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))
-    ((recv (cat "DECRYPT" (hash k) (enc k-0 k))) (obsv k) (send k-0))
-    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)
-      (send (enc k-0 k))))
-  (label 9)
-  (parent 5)
-  (unrealized (4 1) (5 1) (5 2))
-  (fringe)
-  (satisfies-all)
-  (maps ((0 1) ((k k-0))))
-  (origs)
-  (comment "satisfies all"))
-
-(defskeleton wrap-decrypt-simple
-  (vars (k k-0 skey))
-  (deflistener k-0)
-  (defstrand create-key 3 (k k-0))
-  (defstrand do-wrap 4 (wk k) (ck k-0))
-  (defstrand create-key 3 (k k))
-  (defstrand do-decrypt 3 (m k-0) (k k))
-  (deflistener k)
-  (precedes ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (2 2)) ((2 3) (0 0))
-    ((3 1) (2 0)) ((3 1) (5 0)) ((3 2) (2 1)) ((4 2) (0 0))
-    ((5 1) (4 0)))
-  (leadsto ((1 2) (2 2)) ((3 2) (2 1)))
-  (neq (k-0 k))
-  (uniq-gen k k-0)
-  (operation encryption-test (added-listener k) (enc k-0 k) (4 0))
-  (traces ((recv k-0))
-    ((recv "CREATE") (send (cat "CREATED" (hash k-0))) (init k-0))
-    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)
-      (send (enc k-0 k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))
-    ((recv (cat "DECRYPT" (hash k) (enc k-0 k))) (obsv k) (send k-0))
-    ((recv k) (send k)))
-  (label 10)
-  (parent 5)
-  (unrealized (4 0) (4 1) (5 0))
-  (fringe)
-  (satisfies-all)
-  (maps ((0 1) ((k k-0))))
-  (origs)
-  (comment "satisfies all"))
-
-(defskeleton wrap-decrypt-simple
-  (vars (k k-0 skey))
-  (deflistener k-0)
-  (defstrand create-key 3 (k k-0))
-  (defstrand do-wrap 4 (wk k) (ck k-0))
-  (defstrand create-key 3 (k k))
-  (defstrand do-wrap 4 (wk k) (ck k-0))
-  (precedes ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (2 2)) ((2 3) (0 0))
-    ((3 1) (2 0)) ((3 1) (4 0)) ((3 2) (2 1)) ((3 2) (4 1))
-    ((4 3) (0 0)))
-  (leadsto ((1 2) (2 2)) ((3 2) (2 1)) ((3 2) (4 1)))
-  (neq (k-0 k))
-  (uniq-gen k k-0)
-  (operation state-passing-test (displaced 5 3 create-key 3) k-1 (4 1))
-  (traces ((recv k-0))
-    ((recv "CREATE") (send (cat "CREATED" (hash k-0))) (init k-0))
-    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)
-      (send (enc k-0 k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))
-    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)
-      (send (enc k-0 k))))
-  (label 11)
-  (parent 6)
-  (seen 4)
-  (unrealized (0 0) (4 2))
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton wrap-decrypt-simple
-  (vars (k k-0 k-1 skey))
-  (deflistener k-0)
-  (defstrand create-key 3 (k k-0))
-  (defstrand do-wrap 4 (wk k) (ck k-0))
-  (defstrand create-key 3 (k k))
-  (defstrand do-wrap 4 (wk k-1) (ck k-0))
-  (defstrand create-key 3 (k k-1))
-  (precedes ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (2 2)) ((2 3) (0 0))
-    ((3 1) (2 0)) ((3 2) (2 1)) ((4 3) (0 0)) ((5 1) (4 0))
-    ((5 2) (4 1)))
-  (leadsto ((1 2) (2 2)) ((3 2) (2 1)) ((5 2) (4 1)))
-  (neq (k-0 k-1) (k-0 k))
-  (uniq-gen k k-0 k-1)
-  (operation state-passing-test (added-strand create-key 3) k-1 (4 1))
-  (traces ((recv k-0))
-    ((recv "CREATE") (send (cat "CREATED" (hash k-0))) (init k-0))
-    ((recv (cat "WRAP" (hash k) (hash k-0))) (obsv k) (obsv k-0)
-      (send (enc k-0 k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))
-    ((recv (cat "WRAP" (hash k-1) (hash k-0))) (obsv k-1) (obsv k-0)
-      (send (enc k-0 k-1)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k-1))) (init k-1)))
-  (label 12)
-  (parent 6)
-  (unrealized (0 0) (4 2))
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton wrap-decrypt-simple
-  (vars (k k-0 k-1 skey))
-  (deflistener k-1)
-  (defstrand create-key 3 (k k-1))
-  (defstrand do-wrap 4 (wk k) (ck k-1))
-  (defstrand create-key 3 (k k))
-  (defstrand do-wrap 4 (wk k-0) (ck k-1))
-  (precedes ((1 1) (2 0)) ((1 1) (4 0)) ((1 2) (2 2)) ((1 2) (4 2))
-    ((2 3) (0 0)) ((3 1) (2 0)) ((3 2) (2 1)) ((4 3) (0 0)))
-  (leadsto ((1 2) (2 2)) ((1 2) (4 2)) ((3 2) (2 1)))
-  (neq (k-1 k-0) (k-1 k))
-  (uniq-gen k k-1)
-  (operation state-passing-test (displaced 6 1 create-key 3) k-1 (4 2))
-  (traces ((recv k-1))
-    ((recv "CREATE") (send (cat "CREATED" (hash k-1))) (init k-1))
-    ((recv (cat "WRAP" (hash k) (hash k-1))) (obsv k) (obsv k-1)
-      (send (enc k-1 k)))
-    ((recv "CREATE") (send (cat "CREATED" (hash k))) (init k))
-    ((recv (cat "WRAP" (hash k-0) (hash k-1))) (obsv k-0) (obsv k-1)
-      (send (enc k-1 k-0))))
-  (label 13)
-  (parent 12)
-  (seen 4)
-  (unrealized (4 1))
-  (comment "1 in cohort - 0 not yet seen"))
-
-(comment "Nothing left to do")
diff --git a/tst/weakened-subatomic-open-closed.tst b/tst/weakened-subatomic-open-closed.tst
new file mode 100644
--- /dev/null
+++ b/tst/weakened-subatomic-open-closed.tst
@@ -0,0 +1,2509 @@
+(herald weakened-subatomic-open-closed (bound 40))
+
+(comment "CPSA 4.3.0")
+(comment "All input read from tst/weakened-subatomic-open-closed.scm")
+(comment "Strand count bounded at 40")
+
+(defprotocol subatomic-open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (load ls old1) (stor lk (cat "st-k" d o k))
+      (stor ls (cat "st" d o)) (send (enc "up" k)))
+    (auth start-ch)
+    (critical-sections (1 4))
+    (facts (same-dev ls lk)))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "open" d o n k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o o)) (send n))
+    (gen-st (cat "st-k" d o k) (cat "st" d (cat o o)))
+    (facts (same-dev ls lk)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "close" d o n k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o)) (send n))
+    (gen-st (cat "st-k" d o k))
+    (critical-sections (1 3))
+    (facts (same-dev ls lk)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (load ls (cat "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    (uniq-orig n)
+    (gen-st (cat "st-k" d o k) (cat "st" d (cat o o)))
+    (critical-sections (0 1))
+    (facts (same-dev ls lk)))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule fact-dev-up-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-up" z 3) (p "dev-up" "ls" z ls)
+          (p "dev-up" "lk" z lk))
+        (fact same-dev ls lk))))
+  (defrule trRl_dev-up-at-4
+    (forall ((z strd)) (implies (p "dev-up" z 5) (trans z 4))))
+  (defrule trRl_dev-up-at-3
+    (forall ((z strd)) (implies (p "dev-up" z 4) (trans z 3))))
+  (defrule trRl_dev-up-at-2
+    (forall ((z strd)) (implies (p "dev-up" z 3) (trans z 2))))
+  (defrule trRl_dev-up-at-1
+    (forall ((z strd)) (implies (p "dev-up" z 2) (trans z 1))))
+  (defrule fact-dev-open-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-open" z 3) (p "dev-open" "ls" z ls)
+          (p "dev-open" "lk" z lk))
+        (fact same-dev ls lk))))
+  (defrule gen-st-dev-open-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-open" z 1) (p "dev-open" "k" z k)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defrule gen-st-dev-open-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-open" z 1) (p "dev-open" "o" z o)
+          (p "dev-open" "d" z d))
+        (gen-st (cat "st" d o o)))))
+  (defrule trRl_dev-open-at-3
+    (forall ((z strd)) (implies (p "dev-open" z 4) (trans z 3))))
+  (defrule trRl_dev-open-at-2
+    (forall ((z strd)) (implies (p "dev-open" z 3) (trans z 2))))
+  (defrule fact-dev-close-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-close" z 3) (p "dev-close" "ls" z ls)
+          (p "dev-close" "lk" z lk))
+        (fact same-dev ls lk))))
+  (defrule gen-st-dev-close-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-close" z 1) (p "dev-close" "k" z k)
+          (p "dev-close" "o" z o) (p "dev-close" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defrule trRl_dev-close-at-3
+    (forall ((z strd)) (implies (p "dev-close" z 4) (trans z 3))))
+  (defrule trRl_dev-close-at-2
+    (forall ((z strd)) (implies (p "dev-close" z 3) (trans z 2))))
+  (defrule fact-dev-pass-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-pass" z 2) (p "dev-pass" "ls" z ls)
+          (p "dev-pass" "lk" z lk))
+        (fact same-dev ls lk))))
+  (defrule gen-st-dev-pass-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-pass" z 1) (p "dev-pass" "k" z k)
+          (p "dev-pass" "o" z o) (p "dev-pass" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defrule gen-st-dev-pass-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-pass" z 1) (p "dev-pass" "o" z o)
+          (p "dev-pass" "d" z d))
+        (gen-st (cat "st" d o o)))))
+  (defrule same-dev-lk-ls
+    (forall ((lk ls ls-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls-0 lk))
+        (= ls ls-0))))
+  (defrule same-dev-ls-lk
+    (forall ((ls lk lk-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls lk-0))
+        (= lk lk-0))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 2) (p "dev-up" z2 2) (p "dev-up" "k" z1 k)
+          (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies
+        (and (p "dev-up" z 4) (prec z 3 z1 i))
+        (or (= z z1) (and (p "dev-up" z 5) (prec z 4 z1 i))))))
+  (defrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies
+        (and (p "dev-up" z 3) (prec z1 i z 2))
+        (or (= z z1) (prec z1 i z 1)))))
+  (defrule cau-dev-close-2
+    (forall ((z z1 strd) (i indx))
+      (implies
+        (and (p "dev-close" z 3) (prec z1 i z 2))
+        (or (= z z1) (prec z1 i z 1)))))
+  (defrule cau-dev-pass-1
+    (forall ((z z1 strd) (i indx))
+      (implies
+        (and (p "dev-pass" z 2) (prec z1 i z 1))
+        (or (= z z1) (prec z1 i z 0))))))
+
+(defskeleton subatomic-open-closed
+  (vars (d o name) (k skey) (start-ch chan))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (deflistener k)
+  (uniq-orig k)
+  (conf start-ch)
+  (facts (no-state-split))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k)))
+  (label 0)
+  (unrealized (0 1) (1 0))
+  (preskeleton)
+  (origs (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton subatomic-open-closed
+  (vars (d o name) (k skey) (start-ch chan))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (deflistener k)
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (facts (no-state-split))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k)))
+  (label 1)
+  (parent 0)
+  (seen 2)
+  (unrealized (0 1) (1 0))
+  (origs (k (0 0)))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (d o name) (pt pt-0 pt-1 pt-2 pval) (k skey)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (deflistener k)
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig k)
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule trRl_dev-up-at-4 eff-dev-up-3 trRl_dev-up-at-1 trRl_dev-up-at-2
+    trRl_dev-up-at-3 fact-dev-up-same-dev0)
+  (operation nonce-test (added-strand dev-up 4) k (1 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((recv k) (send k))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt old))
+      (load ls (cat pt-0 old1)) (stor lk (cat pt-1 "st-k" d o k))
+      (stor ls (cat pt-2 "st" d o))))
+  (label 2)
+  (parent 1)
+  (unrealized (0 1) (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol subatomic-open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (load ls old1) (stor lk (cat "st-k" d o k))
+      (stor ls (cat "st" d o)) (send (enc "up" k)))
+    (auth start-ch)
+    (critical-sections (1 4))
+    (facts (same-dev ls lk)))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "open" d o n k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o o)) (send n))
+    (gen-st (cat "st-k" d o k) (cat "st" d (cat o o)))
+    (facts (same-dev ls lk)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "close" d o n k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o)) (send n))
+    (gen-st (cat "st-k" d o k))
+    (critical-sections (1 3))
+    (facts (same-dev ls lk)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (load ls (cat "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    (uniq-orig n)
+    (gen-st (cat "st-k" d o k) (cat "st" d (cat o o)))
+    (critical-sections (0 1))
+    (facts (same-dev ls lk)))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule fact-dev-up-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-up" z 3) (p "dev-up" "ls" z ls)
+          (p "dev-up" "lk" z lk))
+        (fact same-dev ls lk))))
+  (defrule trRl_dev-up-at-4
+    (forall ((z strd)) (implies (p "dev-up" z 5) (trans z 4))))
+  (defrule trRl_dev-up-at-3
+    (forall ((z strd)) (implies (p "dev-up" z 4) (trans z 3))))
+  (defrule trRl_dev-up-at-2
+    (forall ((z strd)) (implies (p "dev-up" z 3) (trans z 2))))
+  (defrule trRl_dev-up-at-1
+    (forall ((z strd)) (implies (p "dev-up" z 2) (trans z 1))))
+  (defrule fact-dev-open-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-open" z 3) (p "dev-open" "ls" z ls)
+          (p "dev-open" "lk" z lk))
+        (fact same-dev ls lk))))
+  (defrule gen-st-dev-open-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-open" z 1) (p "dev-open" "k" z k)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defrule gen-st-dev-open-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-open" z 1) (p "dev-open" "o" z o)
+          (p "dev-open" "d" z d))
+        (gen-st (cat "st" d o o)))))
+  (defrule trRl_dev-open-at-3
+    (forall ((z strd)) (implies (p "dev-open" z 4) (trans z 3))))
+  (defrule trRl_dev-open-at-2
+    (forall ((z strd)) (implies (p "dev-open" z 3) (trans z 2))))
+  (defrule fact-dev-close-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-close" z 3) (p "dev-close" "ls" z ls)
+          (p "dev-close" "lk" z lk))
+        (fact same-dev ls lk))))
+  (defrule gen-st-dev-close-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-close" z 1) (p "dev-close" "k" z k)
+          (p "dev-close" "o" z o) (p "dev-close" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defrule trRl_dev-close-at-3
+    (forall ((z strd)) (implies (p "dev-close" z 4) (trans z 3))))
+  (defrule trRl_dev-close-at-2
+    (forall ((z strd)) (implies (p "dev-close" z 3) (trans z 2))))
+  (defrule fact-dev-pass-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-pass" z 2) (p "dev-pass" "ls" z ls)
+          (p "dev-pass" "lk" z lk))
+        (fact same-dev ls lk))))
+  (defrule gen-st-dev-pass-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-pass" z 1) (p "dev-pass" "k" z k)
+          (p "dev-pass" "o" z o) (p "dev-pass" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defrule gen-st-dev-pass-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-pass" z 1) (p "dev-pass" "o" z o)
+          (p "dev-pass" "d" z d))
+        (gen-st (cat "st" d o o)))))
+  (defrule same-dev-lk-ls
+    (forall ((lk ls ls-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls-0 lk))
+        (= ls ls-0))))
+  (defrule same-dev-ls-lk
+    (forall ((ls lk lk-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls lk-0))
+        (= lk lk-0))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 2) (p "dev-up" z2 2) (p "dev-up" "k" z1 k)
+          (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies
+        (and (p "dev-up" z 4) (prec z 3 z1 i))
+        (or (= z z1) (and (p "dev-up" z 5) (prec z 4 z1 i))))))
+  (defrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies
+        (and (p "dev-up" z 3) (prec z1 i z 2))
+        (or (= z z1) (prec z1 i z 1)))))
+  (defrule cau-dev-close-2
+    (forall ((z z1 strd) (i indx))
+      (implies
+        (and (p "dev-close" z 3) (prec z1 i z 2))
+        (or (= z z1) (prec z1 i z 1)))))
+  (defrule cau-dev-pass-1
+    (forall ((z z1 strd) (i indx))
+      (implies
+        (and (p "dev-pass" z 2) (prec z1 i z 1))
+        (or (= z z1) (prec z1 i z 0))))))
+
+(defskeleton subatomic-open-closed
+  (vars (n text) (d o name) (pt pt-0 pval) (k skey) (lk ls locn))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (uniq-orig n)
+  (facts (no-state-split))
+  (traces
+    ((load lk (cat pt "st-k" d o k)) (load ls (cat pt-0 "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k))))
+  (label 3)
+  (realized)
+  (origs (n (0 3)))
+  (comment "Not closed under rules"))
+
+(defskeleton subatomic-open-closed
+  (vars (n text) (d o name) (pt pt-0 pval) (k skey) (lk ls locn))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (uniq-orig n)
+  (genStV (cat "st" d o o) (cat "st-k" d o k))
+  (facts (same-dev ls lk) (no-state-split))
+  (rule gen-st-dev-pass-0 gen-st-dev-pass-1 fact-dev-pass-same-dev0)
+  (traces
+    ((load lk (cat pt "st-k" d o k)) (load ls (cat pt-0 "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k))))
+  (label 4)
+  (parent 3)
+  (seen 5)
+  (unrealized (0 0) (0 1))
+  (origs (n (0 3)))
+  (comment "6 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (n text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (k skey) (start-ch chan) (lk ls locn))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((1 4) (0 0)))
+  (uniq-orig n)
+  (genStV (cat "st" d o o) (cat "st-k" d o k))
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule cau-dev-pass-1 eff-dev-up-3 trRl_dev-up-at-4 same-dev-lk-ls
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    fact-dev-up-same-dev0)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-2 "st-k" d o k)) (0 0))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o))))
+  (label 5)
+  (parent 4)
+  (unrealized (0 1) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (n text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (k skey) (start-ch chan) (lk ls locn))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k) (start-ch start-ch))
+  (precedes ((1 4) (0 0)) ((2 0) (1 0)))
+  (uniq-orig n)
+  (genStV (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (operation channel-test (added-strand owner-power-dev 1)
+    (ch-msg start-ch (cat "power-up" d o k)) (1 0))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k))))
+  (label 6)
+  (parent 5)
+  (seen 7)
+  (unrealized (0 1))
+  (comment "12 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k k-0 skey) (start-ch chan)
+    (ls lk locn))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (precedes ((1 4) (3 2)) ((2 0) (1 0)) ((3 3) (0 0)))
+  (uniq-orig n)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule cau-dev-pass-1 invShearsRule same-dev-ls-lk trRl_dev-open-at-2
+    trRl_dev-open-at-3 gen-st-dev-open-1 fact-dev-open-same-dev0)
+  (operation channel-test (added-strand dev-open 4)
+    (ch-msg ls (cat pt "st" d o o)) (0 1))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-4 "st-k" d o k-0))
+      (load ls (cat pt-5 "st" d any)) (stor ls (cat pt "st" d o o))))
+  (label 7)
+  (parent 6)
+  (seen 8 9 10 11 12 13 14 15)
+  (unrealized (3 1))
+  (comment "97 in cohort - 8 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k skey) (start-ch chan)
+    (ls lk locn))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k) (lk lk)
+    (ls ls))
+  (precedes ((1 4) (3 1)) ((2 0) (1 0)) ((3 3) (0 0)))
+  (uniq-orig n)
+  (genStV (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule eff-dev-up-3)
+  (operation channel-test (displaced 4 1 dev-up 4)
+    (ch-msg lk (cat pt-5 "st-k" d o k-0)) (3 1))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (enc "open" d o n-0 k)) (load lk (cat pt-2 "st-k" d o k))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o))))
+  (label 8)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps
+    ((0) ((k k) (n n) (d d) (o o) (lk lk) (ls ls) (pt pt-2) (pt-0 pt))))
+  (origs (pt-2 (1 3)) (pt-3 (1 4)) (pt (3 3)) (n (0 3))))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((1 4) (3 2)) ((2 0) (1 0)) ((3 3) (0 0)) ((4 4) (1 1))
+    ((4 4) (3 1)))
+  (uniq-orig n)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule cau-dev-up-2 eff-dev-up-3 trRl_dev-up-at-4 invShearsRule
+    same-dev-lk-ls trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    fact-dev-up-same-dev0)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-7 "st-k" d o k-0)) (3 1))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0))
+      (stor ls (cat pt-8 "st" d o))))
+  (label 9)
+  (parent 7)
+  (unrealized (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((1 4) (3 2)) ((2 0) (1 0)) ((3 3) (0 0)) ((4 3) (1 1))
+    ((4 4) (3 1)))
+  (uniq-orig n)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule cau-dev-up-2 trRl_dev-up-at-4 eff-dev-up-3 invShearsRule
+    same-dev-lk-ls trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    fact-dev-up-same-dev0)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-7 "st-k" d o k-0)) (3 1))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0))
+      (stor ls (cat pt-8 "st" d o))))
+  (label 10)
+  (parent 7)
+  (seen 16)
+  (unrealized (4 0))
+  (comment "4 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((1 4) (3 2)) ((2 0) (1 0)) ((3 3) (0 0)) ((4 3) (3 1))
+    ((4 4) (1 1)))
+  (uniq-orig n)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule cau-dev-up-2 trRl_dev-up-at-4 eff-dev-up-3 invShearsRule
+    same-dev-lk-ls trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    fact-dev-up-same-dev0)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-7 "st-k" d o k-0)) (3 1))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0))
+      (stor ls (cat pt-8 "st" d o))))
+  (label 11)
+  (parent 7)
+  (seen 16)
+  (unrealized (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((1 4) (3 2)) ((2 0) (1 0)) ((3 3) (0 0)) ((4 3) (1 1))
+    ((4 3) (3 1)) ((4 4) (1 2)))
+  (uniq-orig n)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule cau-dev-up-2 trRl_dev-up-at-4 eff-dev-up-3 invShearsRule
+    same-dev-lk-ls trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    fact-dev-up-same-dev0)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-7 "st-k" d o k-0)) (3 1))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0))
+      (stor ls (cat pt-8 "st" d o))))
+  (label 12)
+  (parent 7)
+  (seen 16)
+  (unrealized (4 0))
+  (comment "2 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((1 4) (3 2)) ((2 0) (1 0)) ((3 3) (0 0)) ((4 3) (1 1))
+    ((4 3) (3 1)) ((4 4) (3 2)))
+  (uniq-orig n)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule cau-dev-up-2 trRl_dev-up-at-4 eff-dev-up-3 invShearsRule
+    same-dev-lk-ls trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    fact-dev-up-same-dev0)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-7 "st-k" d o k-0)) (3 1))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0))
+      (stor ls (cat pt-8 "st" d o))))
+  (label 13)
+  (parent 7)
+  (seen 16)
+  (unrealized (4 0))
+  (comment "8 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((1 4) (3 2)) ((2 0) (1 0)) ((3 3) (0 0)) ((4 3) (1 1))
+    ((4 3) (3 1)) ((4 4) (0 0)))
+  (uniq-orig n)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule cau-dev-up-2 trRl_dev-up-at-4 eff-dev-up-3 invShearsRule
+    same-dev-lk-ls trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    fact-dev-up-same-dev0)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-7 "st-k" d o k-0)) (3 1))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0))
+      (stor ls (cat pt-8 "st" d o))))
+  (label 14)
+  (parent 7)
+  (seen 16)
+  (unrealized (4 0))
+  (comment "8 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((1 4) (3 2)) ((2 0) (1 0)) ((3 3) (0 0)) ((4 3) (1 1))
+    ((4 3) (3 1)) ((4 4) (0 2)))
+  (uniq-orig n)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule cau-dev-up-2 trRl_dev-up-at-4 eff-dev-up-3 invShearsRule
+    same-dev-lk-ls trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    fact-dev-up-same-dev0)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-7 "st-k" d o k-0)) (3 1))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0))
+      (stor ls (cat pt-8 "st" d o))))
+  (label 15)
+  (parent 7)
+  (seen 16 18 19)
+  (unrealized (4 0))
+  (comment "15 in cohort - 3 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k-0)
+    (start-ch start-ch-0))
+  (precedes ((1 4) (3 2)) ((2 0) (1 0)) ((3 3) (0 0)) ((4 4) (1 1))
+    ((4 4) (3 1)) ((5 0) (4 0)))
+  (uniq-orig n)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch start-ch-0)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (operation channel-test (added-strand owner-power-dev 1)
+    (ch-msg start-ch-0 (cat "power-up" d o k-0)) (4 0))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0)) (stor ls (cat pt-8 "st" d o)))
+    ((send start-ch-0 (cat "power-up" d o k-0))))
+  (label 16)
+  (parent 9)
+  (realized)
+  (shape)
+  (maps
+    ((0) ((k k) (n n) (d d) (o o) (lk lk) (ls ls) (pt pt-2) (pt-0 pt))))
+  (origs (pt-7 (4 3)) (pt-8 (4 4)) (pt (3 3)) (pt-2 (1 3)) (pt-3 (1 4))
+    (n (0 3))))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k-0)
+    (start-ch start-ch-0))
+  (precedes ((1 4) (3 2)) ((2 0) (1 0)) ((3 3) (0 0)) ((4 3) (1 1))
+    ((4 3) (3 1)) ((4 4) (3 2)) ((5 0) (4 0)))
+  (uniq-orig n)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch start-ch-0)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule eff-dev-up-3)
+  (operation channel-test (added-strand owner-power-dev 1)
+    (ch-msg start-ch-0 (cat "power-up" d o k-0)) (4 0))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0)) (stor ls (cat pt-8 "st" d o)))
+    ((send start-ch-0 (cat "power-up" d o k-0))))
+  (label 17)
+  (parent 15)
+  (realized)
+  (shape)
+  (maps
+    ((0) ((k k) (n n) (d d) (o o) (lk lk) (ls ls) (pt pt-2) (pt-0 pt))))
+  (origs (pt-7 (4 3)) (pt-8 (4 4)) (pt (3 3)) (pt-2 (1 3)) (pt-3 (1 4))
+    (n (0 3))))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k-0)
+    (start-ch start-ch-0))
+  (precedes ((1 4) (3 2)) ((2 0) (1 0)) ((3 3) (0 0)) ((4 3) (3 1))
+    ((4 4) (1 1)) ((5 0) (4 0)))
+  (uniq-orig n)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch start-ch-0)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule cau-dev-up-2 eff-dev-up-3)
+  (operation channel-test (added-strand owner-power-dev 1)
+    (ch-msg start-ch-0 (cat "power-up" d o k-0)) (4 0))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0)) (stor ls (cat pt-8 "st" d o)))
+    ((send start-ch-0 (cat "power-up" d o k-0))))
+  (label 18)
+  (parent 15)
+  (realized)
+  (shape)
+  (maps
+    ((0) ((k k) (n n) (d d) (o o) (lk lk) (ls ls) (pt pt-2) (pt-0 pt))))
+  (origs (pt-7 (4 3)) (pt-8 (4 4)) (pt (3 3)) (pt-2 (1 3)) (pt-3 (1 4))
+    (n (0 3))))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k-0)
+    (start-ch start-ch-0))
+  (precedes ((1 4) (3 2)) ((2 0) (1 0)) ((3 3) (0 0)) ((4 3) (1 1))
+    ((4 3) (3 1)) ((4 4) (0 0)) ((5 0) (4 0)))
+  (uniq-orig n)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch start-ch-0)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule eff-dev-up-3)
+  (operation channel-test (added-strand owner-power-dev 1)
+    (ch-msg start-ch-0 (cat "power-up" d o k-0)) (4 0))
+  (traces
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((send start-ch (cat "power-up" d o k)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0)) (stor ls (cat pt-8 "st" d o)))
+    ((send start-ch-0 (cat "power-up" d o k-0))))
+  (label 19)
+  (parent 15)
+  (realized)
+  (shape)
+  (maps
+    ((0) ((k k) (n n) (d d) (o o) (lk lk) (ls ls) (pt pt-2) (pt-0 pt))))
+  (origs (pt-7 (4 3)) (pt-8 (4 4)) (pt (3 3)) (pt-2 (1 3)) (pt-3 (1 4))
+    (n (0 3))))
+
+(comment "Nothing left to do")
+
+(defprotocol subatomic-open-closed basic
+  (defrole dev-up
+    (vars (k skey) (d o name) (old old1 mesg) (start-ch chan)
+      (lk ls locn))
+    (trace (recv start-ch (cat "power-up" d o k)) (load lk old)
+      (load ls old1) (stor lk (cat "st-k" d o k))
+      (stor ls (cat "st" d o)) (send (enc "up" k)))
+    (auth start-ch)
+    (critical-sections (1 4))
+    (facts (same-dev ls lk)))
+  (defrole owner-power-dev
+    (vars (k skey) (d o name) (start-ch chan))
+    (trace (send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    (conf start-ch))
+  (defrole owner-open
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "open" d o n k)) (recv n)))
+  (defrole owner-close
+    (vars (k skey) (n text) (d o name))
+    (trace (send (enc "close" d o n k)) (recv n)))
+  (defrole dev-open
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "open" d o n k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o o)) (send n))
+    (gen-st (cat "st-k" d o k) (cat "st" d (cat o o)))
+    (facts (same-dev ls lk)))
+  (defrole dev-close
+    (vars (k skey) (n text) (any mesg) (d o name) (lk ls locn))
+    (trace (recv (enc "close" d o n k)) (load lk (cat "st-k" d o k))
+      (load ls (cat "st" d any)) (stor ls (cat "st" d o)) (send n))
+    (gen-st (cat "st-k" d o k))
+    (critical-sections (1 3))
+    (facts (same-dev ls lk)))
+  (defrole dev-pass
+    (vars (k skey) (n text) (d o name) (lk ls locn))
+    (trace (load lk (cat "st-k" d o k)) (load ls (cat "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    (uniq-orig n)
+    (gen-st (cat "st-k" d o k) (cat "st" d (cat o o)))
+    (critical-sections (0 1))
+    (facts (same-dev ls lk)))
+  (defrole user-pass
+    (vars (k skey))
+    (trace (send (enc "may I pass" k)) (recv (enc "you may pass" k))))
+  (defrule cakeRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (leads-to z0 i0 z1 i1)
+          (leads-to z0 i0 z2 i2) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule no-interruption
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (leads-to z0 i0 z2 i2) (trans z1 i1)
+          (same-locn z0 i0 z1 i1) (prec z0 i0 z1 i1) (prec z1 i1 z2 i2))
+        (false))))
+  (defrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (defrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defrule scissorsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (leads-to z0 i0 z2 i2))
+        (and (= z1 z2) (= i1 i2)))))
+  (defrule fact-dev-up-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-up" z 3) (p "dev-up" "ls" z ls)
+          (p "dev-up" "lk" z lk))
+        (fact same-dev ls lk))))
+  (defrule trRl_dev-up-at-4
+    (forall ((z strd)) (implies (p "dev-up" z 5) (trans z 4))))
+  (defrule trRl_dev-up-at-3
+    (forall ((z strd)) (implies (p "dev-up" z 4) (trans z 3))))
+  (defrule trRl_dev-up-at-2
+    (forall ((z strd)) (implies (p "dev-up" z 3) (trans z 2))))
+  (defrule trRl_dev-up-at-1
+    (forall ((z strd)) (implies (p "dev-up" z 2) (trans z 1))))
+  (defrule fact-dev-open-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-open" z 3) (p "dev-open" "ls" z ls)
+          (p "dev-open" "lk" z lk))
+        (fact same-dev ls lk))))
+  (defrule gen-st-dev-open-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-open" z 1) (p "dev-open" "k" z k)
+          (p "dev-open" "o" z o) (p "dev-open" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defrule gen-st-dev-open-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-open" z 1) (p "dev-open" "o" z o)
+          (p "dev-open" "d" z d))
+        (gen-st (cat "st" d o o)))))
+  (defrule trRl_dev-open-at-3
+    (forall ((z strd)) (implies (p "dev-open" z 4) (trans z 3))))
+  (defrule trRl_dev-open-at-2
+    (forall ((z strd)) (implies (p "dev-open" z 3) (trans z 2))))
+  (defrule fact-dev-close-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-close" z 3) (p "dev-close" "ls" z ls)
+          (p "dev-close" "lk" z lk))
+        (fact same-dev ls lk))))
+  (defrule gen-st-dev-close-0
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-close" z 1) (p "dev-close" "k" z k)
+          (p "dev-close" "o" z o) (p "dev-close" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defrule trRl_dev-close-at-3
+    (forall ((z strd)) (implies (p "dev-close" z 4) (trans z 3))))
+  (defrule trRl_dev-close-at-2
+    (forall ((z strd)) (implies (p "dev-close" z 3) (trans z 2))))
+  (defrule fact-dev-pass-same-dev0
+    (forall ((z strd) (ls lk locn))
+      (implies
+        (and (p "dev-pass" z 2) (p "dev-pass" "ls" z ls)
+          (p "dev-pass" "lk" z lk))
+        (fact same-dev ls lk))))
+  (defrule gen-st-dev-pass-1
+    (forall ((z strd) (k skey) (o d name))
+      (implies
+        (and (p "dev-pass" z 1) (p "dev-pass" "k" z k)
+          (p "dev-pass" "o" z o) (p "dev-pass" "d" z d))
+        (gen-st (cat "st-k" d o k)))))
+  (defrule gen-st-dev-pass-0
+    (forall ((z strd) (o d name))
+      (implies
+        (and (p "dev-pass" z 1) (p "dev-pass" "o" z o)
+          (p "dev-pass" "d" z d))
+        (gen-st (cat "st" d o o)))))
+  (defrule same-dev-lk-ls
+    (forall ((lk ls ls-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls-0 lk))
+        (= ls ls-0))))
+  (defrule same-dev-ls-lk
+    (forall ((ls lk lk-0 locn))
+      (implies
+        (and (fact same-dev ls lk) (fact same-dev ls lk-0))
+        (= lk lk-0))))
+  (defrule power-deliver-once
+    (forall ((z1 z2 strd) (k skey))
+      (implies
+        (and (p "dev-up" z1 2) (p "dev-up" z2 2) (p "dev-up" "k" z1 k)
+          (p "dev-up" "k" z2 k))
+        (= z1 z2))))
+  (defrule shearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (trans z2 i2)
+          (leads-to z0 i0 z1 i1) (same-locn z0 i0 z2 i2)
+          (prec z0 i0 z2 i2))
+        (or (and (= z1 z2) (= i1 i2)) (prec z1 i1 z2 i2)))))
+  (defrule invShearsRule
+    (forall ((z0 z1 z2 strd) (i0 i1 i2 indx))
+      (implies
+        (and (trans z0 i0) (trans z1 i1) (same-locn z0 i0 z1 i1)
+          (leads-to z1 i1 z2 i2) (prec z0 i0 z2 i2))
+        (or (and (= z0 z1) (= i0 i1)) (prec z0 i0 z1 i1)))))
+  (defrule eff-dev-up-3
+    (forall ((z z1 strd) (i indx))
+      (implies
+        (and (p "dev-up" z 4) (prec z 3 z1 i))
+        (or (= z z1) (and (p "dev-up" z 5) (prec z 4 z1 i))))))
+  (defrule cau-dev-up-2
+    (forall ((z z1 strd) (i indx))
+      (implies
+        (and (p "dev-up" z 3) (prec z1 i z 2))
+        (or (= z z1) (prec z1 i z 1)))))
+  (defrule cau-dev-close-2
+    (forall ((z z1 strd) (i indx))
+      (implies
+        (and (p "dev-close" z 3) (prec z1 i z 2))
+        (or (= z z1) (prec z1 i z 1)))))
+  (defrule cau-dev-pass-1
+    (forall ((z z1 strd) (i indx))
+      (implies
+        (and (p "dev-pass" z 2) (prec z1 i z 1))
+        (or (= z z1) (prec z1 i z 0))))))
+
+(defskeleton subatomic-open-closed
+  (vars (n text) (d o d-0 o-0 name) (pt pt-0 pval) (k skey)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d-0) (o o-0) (k k) (lk lk) (ls ls))
+  (uniq-orig n k)
+  (conf start-ch)
+  (facts (no-state-split))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0)) (recv (enc "may I pass" k))
+      (send (enc "you may pass" n k))))
+  (label 20)
+  (unrealized (0 1) (1 0) (1 2))
+  (preskeleton)
+  (origs (n (1 3)) (k (0 0)))
+  (comment "Not a skeleton"))
+
+(defskeleton subatomic-open-closed
+  (vars (n text) (d o d-0 o-0 name) (pt pt-0 pval) (k skey)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d-0) (o o-0) (k k) (lk lk) (ls ls))
+  (precedes ((0 0) (1 0)))
+  (uniq-orig n k)
+  (conf start-ch)
+  (facts (no-state-split))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0)) (recv (enc "may I pass" k))
+      (send (enc "you may pass" n k))))
+  (label 21)
+  (parent 20)
+  (unrealized (0 1) (1 0) (1 2))
+  (origs (n (1 3)) (k (0 0)))
+  (comment "Not closed under rules"))
+
+(defskeleton subatomic-open-closed
+  (vars (n text) (d o d-0 o-0 name) (pt pt-0 pval) (k skey)
+    (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d-0) (o o-0) (k k) (lk lk) (ls ls))
+  (precedes ((0 0) (1 0)))
+  (uniq-orig n k)
+  (genStV (cat "st" d-0 o-0 o-0) (cat "st-k" d-0 o-0 k))
+  (conf start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule gen-st-dev-pass-0 gen-st-dev-pass-1 fact-dev-pass-same-dev0)
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt "st-k" d-0 o-0 k))
+      (load ls (cat pt-0 "st" d-0 o-0 o-0)) (recv (enc "may I pass" k))
+      (send (enc "you may pass" n k))))
+  (label 22)
+  (parent 21)
+  (seen 23)
+  (unrealized (0 1) (1 0) (1 1) (1 2))
+  (origs (n (1 3)) (k (0 0)))
+  (comment "6 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (n text) (d o d-0 o-0 name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (k skey) (start-ch start-ch-0 chan)
+    (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d-0) (o o-0) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d-0) (o o-0) (k k)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig n k)
+  (genStV (cat "st" d-0 o-0 o-0) (cat "st-k" d-0 o-0 k))
+  (conf start-ch)
+  (auth start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule cau-dev-pass-1 eff-dev-up-3 trRl_dev-up-at-4 same-dev-lk-ls
+    trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    fact-dev-up-same-dev0)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-2 "st-k" d-0 o-0 k)) (1 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d-0 o-0 k))
+      (load ls (cat pt "st" d-0 o-0 o-0)) (recv (enc "may I pass" k))
+      (send (enc "you may pass" n k)))
+    ((recv start-ch-0 (cat "power-up" d-0 o-0 k))
+      (load lk (cat pt-0 old)) (load ls (cat pt-1 old1))
+      (stor lk (cat pt-2 "st-k" d-0 o-0 k))
+      (stor ls (cat pt-3 "st" d-0 o-0))))
+  (label 23)
+  (parent 22)
+  (unrealized (0 1) (1 1) (1 2) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 mesg) (n text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pval) (k skey) (start-ch chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (1 0)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (operation channel-test (displaced 3 0 owner-power-dev 1)
+    (ch-msg start-ch-0 (cat "power-up" d-0 o-0 k)) (2 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o))))
+  (label 24)
+  (parent 23)
+  (seen 25)
+  (unrealized (0 1) (1 1) (1 2))
+  (comment "12 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pval) (k k-0 skey) (start-ch chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (3 2)) ((3 3) (1 0)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule cau-dev-pass-1 invShearsRule same-dev-ls-lk trRl_dev-open-at-2
+    trRl_dev-open-at-3 gen-st-dev-open-1 fact-dev-open-same-dev0)
+  (operation channel-test (added-strand dev-open 4)
+    (ch-msg ls (cat pt "st" d o o)) (1 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-4 "st-k" d o k-0))
+      (load ls (cat pt-5 "st" d any)) (stor ls (cat pt "st" d o o))))
+  (label 25)
+  (parent 24)
+  (seen 26 27 28 29 30 31 32 33)
+  (unrealized (0 1) (1 2) (3 1))
+  (comment "97 in cohort - 8 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k skey) (start-ch chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k) (lk lk)
+    (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule eff-dev-up-3)
+  (operation channel-test (displaced 4 2 dev-up 4)
+    (ch-msg lk (cat pt-5 "st-k" d o k-0)) (3 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load lk (cat pt-2 "st-k" d o k))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o))))
+  (label 26)
+  (parent 25)
+  (unrealized (0 1) (1 2) (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (3 2)) ((3 3) (1 0)) ((4 4) (2 1))
+    ((4 4) (3 1)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule cau-dev-up-2 eff-dev-up-3 trRl_dev-up-at-4 invShearsRule
+    same-dev-lk-ls trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    fact-dev-up-same-dev0)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-7 "st-k" d o k-0)) (3 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0))
+      (stor ls (cat pt-8 "st" d o))))
+  (label 27)
+  (parent 25)
+  (unrealized (0 1) (1 2) (4 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (3 2)) ((3 3) (1 0)) ((4 3) (2 1))
+    ((4 4) (3 1)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule cau-dev-up-2 trRl_dev-up-at-4 eff-dev-up-3 invShearsRule
+    same-dev-lk-ls trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    fact-dev-up-same-dev0)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-7 "st-k" d o k-0)) (3 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0))
+      (stor ls (cat pt-8 "st" d o))))
+  (label 28)
+  (parent 25)
+  (seen 36)
+  (unrealized (0 1) (1 2) (4 0))
+  (comment "4 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (3 2)) ((3 3) (1 0)) ((4 3) (3 1))
+    ((4 4) (2 1)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule cau-dev-up-2 trRl_dev-up-at-4 eff-dev-up-3 invShearsRule
+    same-dev-lk-ls trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    fact-dev-up-same-dev0)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-7 "st-k" d o k-0)) (3 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0))
+      (stor ls (cat pt-8 "st" d o))))
+  (label 29)
+  (parent 25)
+  (seen 36)
+  (unrealized (0 1) (1 2) (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (3 2)) ((3 3) (1 0)) ((4 3) (2 1))
+    ((4 3) (3 1)) ((4 4) (2 2)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule cau-dev-up-2 trRl_dev-up-at-4 eff-dev-up-3 invShearsRule
+    same-dev-lk-ls trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    fact-dev-up-same-dev0)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-7 "st-k" d o k-0)) (3 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0))
+      (stor ls (cat pt-8 "st" d o))))
+  (label 30)
+  (parent 25)
+  (seen 36)
+  (unrealized (0 1) (1 2) (4 0))
+  (comment "2 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (3 2)) ((3 3) (1 0)) ((4 3) (2 1))
+    ((4 3) (3 1)) ((4 4) (3 2)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule cau-dev-up-2 trRl_dev-up-at-4 eff-dev-up-3 invShearsRule
+    same-dev-lk-ls trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    fact-dev-up-same-dev0)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-7 "st-k" d o k-0)) (3 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0))
+      (stor ls (cat pt-8 "st" d o))))
+  (label 31)
+  (parent 25)
+  (seen 36)
+  (unrealized (0 1) (1 2) (4 0))
+  (comment "8 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (3 2)) ((3 3) (1 0)) ((4 3) (2 1))
+    ((4 3) (3 1)) ((4 4) (1 0)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule cau-dev-up-2 trRl_dev-up-at-4 eff-dev-up-3 invShearsRule
+    same-dev-lk-ls trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    fact-dev-up-same-dev0)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-7 "st-k" d o k-0)) (3 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0))
+      (stor ls (cat pt-8 "st" d o))))
+  (label 32)
+  (parent 25)
+  (seen 36)
+  (unrealized (0 1) (1 2) (4 0))
+  (comment "8 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((0 0) (2 0)) ((2 4) (3 2)) ((3 3) (1 0)) ((4 3) (2 1))
+    ((4 3) (3 1)) ((4 4) (1 2)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule cau-dev-up-2 trRl_dev-up-at-4 eff-dev-up-3 invShearsRule
+    same-dev-lk-ls trRl_dev-up-at-1 trRl_dev-up-at-2 trRl_dev-up-at-3
+    fact-dev-up-same-dev0)
+  (operation channel-test (added-strand dev-up 4)
+    (ch-msg lk (cat pt-7 "st-k" d o k-0)) (3 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0))
+      (stor ls (cat pt-8 "st" d o))))
+  (label 33)
+  (parent 25)
+  (seen 36 38 39)
+  (unrealized (0 1) (1 2) (4 0))
+  (comment "15 in cohort - 3 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k skey) (start-ch chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (n n-0) (d d) (o o) (k k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 0) (3 0)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (operation encryption-test (added-strand owner-open 1)
+    (enc "open" d o n-0 k) (3 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load lk (cat pt-2 "st-k" d o k))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))))
+  (label 34)
+  (parent 26)
+  (unrealized (0 1) (1 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k skey) (start-ch chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k) (lk lk)
+    (ls ls))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((0 0) (4 0)) ((2 4) (3 1)) ((3 3) (1 0))
+    ((4 1) (3 0)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (operation encryption-test (added-listener k) (enc "open" d o n-0 k)
+    (3 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load lk (cat pt-2 "st-k" d o k))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv k) (send k)))
+  (label 35)
+  (parent 26)
+  (seen 42)
+  (unrealized (0 1) (4 0))
+  (comment "8 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k-0)
+    (start-ch start-ch-0))
+  (precedes ((0 0) (2 0)) ((2 4) (3 2)) ((3 3) (1 0)) ((4 4) (2 1))
+    ((4 4) (3 1)) ((5 0) (4 0)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch start-ch-0)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (operation channel-test (added-strand owner-power-dev 1)
+    (ch-msg start-ch-0 (cat "power-up" d o k-0)) (4 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0)) (stor ls (cat pt-8 "st" d o)))
+    ((send start-ch-0 (cat "power-up" d o k-0))))
+  (label 36)
+  (parent 27)
+  (unrealized (0 1) (1 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k-0)
+    (start-ch start-ch-0))
+  (precedes ((0 0) (2 0)) ((2 4) (3 2)) ((3 3) (1 0)) ((4 3) (2 1))
+    ((4 3) (3 1)) ((4 4) (3 2)) ((5 0) (4 0)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch start-ch-0)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule eff-dev-up-3)
+  (operation channel-test (added-strand owner-power-dev 1)
+    (ch-msg start-ch-0 (cat "power-up" d o k-0)) (4 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0)) (stor ls (cat pt-8 "st" d o)))
+    ((send start-ch-0 (cat "power-up" d o k-0))))
+  (label 37)
+  (parent 33)
+  (seen 43 44)
+  (unrealized (0 1) (1 2))
+  (comment "16 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k-0)
+    (start-ch start-ch-0))
+  (precedes ((0 0) (2 0)) ((2 4) (3 2)) ((3 3) (1 0)) ((4 3) (3 1))
+    ((4 4) (2 1)) ((5 0) (4 0)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch start-ch-0)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule cau-dev-up-2 eff-dev-up-3)
+  (operation channel-test (added-strand owner-power-dev 1)
+    (ch-msg start-ch-0 (cat "power-up" d o k-0)) (4 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0)) (stor ls (cat pt-8 "st" d o)))
+    ((send start-ch-0 (cat "power-up" d o k-0))))
+  (label 38)
+  (parent 33)
+  (seen 43 44)
+  (unrealized (0 1) (1 2))
+  (comment "2 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k-0)
+    (start-ch start-ch-0))
+  (precedes ((0 0) (2 0)) ((2 4) (3 2)) ((3 3) (1 0)) ((4 3) (2 1))
+    ((4 3) (3 1)) ((4 4) (1 0)) ((5 0) (4 0)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch start-ch-0)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule eff-dev-up-3)
+  (operation channel-test (added-strand owner-power-dev 1)
+    (ch-msg start-ch-0 (cat "power-up" d o k-0)) (4 0))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0)) (stor ls (cat pt-8 "st" d o)))
+    ((send start-ch-0 (cat "power-up" d o k-0))))
+  (label 39)
+  (parent 33)
+  (seen 43 44)
+  (unrealized (0 1) (1 2))
+  (comment "16 in cohort - 0 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k skey) (start-ch chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (n n-0) (d d) (o o) (k k))
+  (defstrand user-pass 1 (k k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((3 3) (1 0)) ((4 0) (3 0))
+    ((5 0) (1 2)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (operation encryption-test (added-strand user-pass 1)
+    (enc "may I pass" k) (1 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load lk (cat pt-2 "st-k" d o k))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))) ((send (enc "may I pass" k))))
+  (label 40)
+  (parent 34)
+  (seen 45)
+  (unrealized (0 1))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k skey) (start-ch chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (n n-0) (d d) (o o) (k k))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((0 0) (5 0)) ((2 4) (3 1)) ((3 3) (1 0))
+    ((4 0) (3 0)) ((5 1) (1 2)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (operation encryption-test (added-listener k) (enc "may I pass" k)
+    (1 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load lk (cat pt-2 "st-k" d o k))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))) ((recv k) (send k)))
+  (label 41)
+  (parent 34)
+  (seen 47)
+  (unrealized (0 1) (5 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k skey) (start-ch chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k) (lk lk)
+    (ls ls))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 4) (4 0)) ((3 3) (1 0)) ((4 1) (3 0)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule eff-dev-up-3)
+  (operation nonce-test (displaced 5 2 dev-up 4) k (4 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load lk (cat pt-2 "st-k" d o k))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv k) (send k)))
+  (label 42)
+  (parent 35)
+  (unrealized (0 1) (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k-0)
+    (start-ch start-ch-0))
+  (defstrand user-pass 1 (k k))
+  (precedes ((0 0) (2 0)) ((2 4) (3 2)) ((3 3) (1 0)) ((4 4) (2 1))
+    ((4 4) (3 1)) ((5 0) (4 0)) ((6 0) (1 2)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch start-ch-0)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (operation encryption-test (added-strand user-pass 1)
+    (enc "may I pass" k) (1 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0)) (stor ls (cat pt-8 "st" d o)))
+    ((send start-ch-0 (cat "power-up" d o k-0)))
+    ((send (enc "may I pass" k))))
+  (label 43)
+  (parent 36)
+  (seen 48)
+  (unrealized (0 1))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k-0)
+    (start-ch start-ch-0))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((2 4) (3 2)) ((3 3) (1 0))
+    ((4 4) (2 1)) ((4 4) (3 1)) ((5 0) (4 0)) ((6 1) (1 2)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch start-ch-0)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (operation encryption-test (added-listener k) (enc "may I pass" k)
+    (1 2))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0)) (stor ls (cat pt-8 "st" d o)))
+    ((send start-ch-0 (cat "power-up" d o k-0))) ((recv k) (send k)))
+  (label 44)
+  (parent 36)
+  (seen 50)
+  (unrealized (0 1) (6 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (any old old1 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k skey) (start-ch chan)
+    (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (n n-0) (d d) (o o) (k k))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-up 6 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (precedes ((0 0) (5 0)) ((2 3) (1 0)) ((3 0) (2 0)) ((4 0) (1 2))
+    ((5 4) (2 1)) ((5 5) (0 1)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (operation encryption-test (displaced 2 6 dev-up 6) (enc "up" k)
+    (0 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-3 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv (enc "open" d o n-0 k)) (load lk (cat pt-3 "st-k" d o k))
+      (load ls (cat pt-0 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))) ((send (enc "may I pass" k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-1 old))
+      (load ls (cat pt-2 old1)) (stor lk (cat pt-3 "st-k" d o k))
+      (stor ls (cat pt-4 "st" d o)) (send (enc "up" k))))
+  (label 45)
+  (parent 40)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((k k) (d d) (o o) (start-ch start-ch) (n n) (d-0 d) (o-0 o)
+        (lk lk) (ls ls) (pt pt-3) (pt-0 pt))))
+  (origs (pt-3 (5 3)) (pt-4 (5 4)) (pt (2 3)) (n (1 3)) (k (0 0))))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k skey) (start-ch chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (n n-0) (d d) (o o) (k k))
+  (defstrand user-pass 1 (k k))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((0 0) (6 0)) ((2 4) (3 1)) ((3 3) (1 0))
+    ((4 0) (3 0)) ((5 0) (1 2)) ((6 1) (0 1)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (operation encryption-test (added-listener k) (enc "up" k) (0 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load lk (cat pt-2 "st-k" d o k))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))) ((send (enc "may I pass" k)))
+    ((recv k) (send k)))
+  (label 46)
+  (parent 40)
+  (seen 51)
+  (unrealized (6 0))
+  (comment "8 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k skey) (start-ch chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (n n-0) (d d) (o o) (k k))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((2 4) (5 0)) ((3 3) (1 0))
+    ((4 0) (3 0)) ((5 1) (1 2)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule eff-dev-up-3)
+  (operation nonce-test (displaced 6 2 dev-up 4) k (5 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load lk (cat pt-2 "st-k" d o k))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))) ((recv k) (send k)))
+  (label 47)
+  (parent 41)
+  (unrealized (0 1) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton subatomic-open-closed
+  (vars (any old old1 old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch-0))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k-0)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k-0) (start-ch start-ch))
+  (defstrand user-pass 1 (k k))
+  (defstrand dev-up 6 (old old-0) (old1 old1-0) (d d) (o o) (k k)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (precedes ((0 0) (6 0)) ((2 3) (1 0)) ((3 4) (2 1)) ((3 4) (6 1))
+    ((4 0) (3 0)) ((5 0) (1 2)) ((6 4) (2 2)) ((6 5) (0 1)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch start-ch-0)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (operation encryption-test (displaced 2 7 dev-up 6) (enc "up" k)
+    (0 1))
+  (traces ((send start-ch-0 (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-7 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-3 "st-k" d o k-0))
+      (load ls (cat pt-0 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch (cat "power-up" d o k-0)) (load lk (cat pt-1 old))
+      (load ls (cat pt-2 old1)) (stor lk (cat pt-3 "st-k" d o k-0))
+      (stor ls (cat pt-4 "st" d o)))
+    ((send start-ch (cat "power-up" d o k-0)))
+    ((send (enc "may I pass" k)))
+    ((recv start-ch-0 (cat "power-up" d o k)) (load lk (cat pt-5 old-0))
+      (load ls (cat pt-6 old1-0)) (stor lk (cat pt-7 "st-k" d o k))
+      (stor ls (cat pt-8 "st" d o)) (send (enc "up" k))))
+  (label 48)
+  (parent 43)
+  (realized)
+  (shape)
+  (maps
+    ((0 1)
+      ((k k) (d d) (o o) (start-ch start-ch-0) (n n) (d-0 d) (o-0 o)
+        (lk lk) (ls ls) (pt pt-7) (pt-0 pt))))
+  (origs (pt-7 (6 3)) (pt-8 (6 4)) (pt-3 (3 3)) (pt-4 (3 4)) (pt (2 3))
+    (n (1 3)) (k (0 0))))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k-0)
+    (start-ch start-ch-0))
+  (defstrand user-pass 1 (k k))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((0 0) (7 0)) ((2 4) (3 2)) ((3 3) (1 0))
+    ((4 4) (2 1)) ((4 4) (3 1)) ((5 0) (4 0)) ((6 0) (1 2))
+    ((7 1) (0 1)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch start-ch-0)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (operation encryption-test (added-listener k) (enc "up" k) (0 1))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0)) (stor ls (cat pt-8 "st" d o)))
+    ((send start-ch-0 (cat "power-up" d o k-0)))
+    ((send (enc "may I pass" k))) ((recv k) (send k)))
+  (label 49)
+  (parent 43)
+  (seen 52)
+  (unrealized (7 0))
+  (comment "8 in cohort - 1 not yet seen"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k-0)
+    (start-ch start-ch-0))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 4) (3 2)) ((2 4) (6 0)) ((3 3) (1 0))
+    ((4 4) (2 1)) ((4 4) (3 1)) ((5 0) (4 0)) ((6 1) (1 2)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch start-ch-0)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule eff-dev-up-3)
+  (operation nonce-test (displaced 7 2 dev-up 4) k (6 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0)) (stor ls (cat pt-8 "st" d o)))
+    ((send start-ch-0 (cat "power-up" d o k-0))) ((recv k) (send k)))
+  (label 50)
+  (parent 44)
+  (unrealized (0 1) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pval) (k skey) (start-ch chan)
+    (ls lk locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k) (lk lk)
+    (ls ls))
+  (defstrand owner-open 1 (n n-0) (d d) (o o) (k k))
+  (defstrand user-pass 1 (k k))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 4) (3 1)) ((2 4) (6 0)) ((3 3) (1 0))
+    ((4 0) (3 0)) ((5 0) (1 2)) ((6 1) (0 1)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k))
+  (conf start-ch)
+  (auth start-ch)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule eff-dev-up-3)
+  (operation nonce-test (displaced 7 2 dev-up 4) k (6 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k)) (load lk (cat pt-2 "st-k" d o k))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((send (enc "open" d o n-0 k))) ((send (enc "may I pass" k)))
+    ((recv k) (send k)))
+  (label 51)
+  (parent 46)
+  (unrealized (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton subatomic-open-closed
+  (vars (old old1 any old-0 old1-0 mesg) (n n-0 text) (d o name)
+    (pt pt-0 pt-1 pt-2 pt-3 pt-4 pt-5 pt-6 pt-7 pt-8 pval) (k k-0 skey)
+    (start-ch start-ch-0 chan) (lk ls locn))
+  (defstrand owner-power-dev 2 (d d) (o o) (k k) (start-ch start-ch))
+  (defstrand dev-pass 4 (n n) (d d) (o o) (k k) (lk lk) (ls ls))
+  (defstrand dev-up 5 (old old) (old1 old1) (d d) (o o) (k k)
+    (start-ch start-ch) (lk lk) (ls ls))
+  (defstrand dev-open 4 (any any) (n n-0) (d d) (o o) (k k-0) (lk lk)
+    (ls ls))
+  (defstrand dev-up 5 (old old-0) (old1 old1-0) (d d) (o o) (k k-0)
+    (start-ch start-ch-0) (lk lk) (ls ls))
+  (defstrand owner-power-dev 1 (d d) (o o) (k k-0)
+    (start-ch start-ch-0))
+  (defstrand user-pass 1 (k k))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 4) (3 2)) ((2 4) (7 0)) ((3 3) (1 0))
+    ((4 4) (2 1)) ((4 4) (3 1)) ((5 0) (4 0)) ((6 0) (1 2))
+    ((7 1) (0 1)))
+  (uniq-orig n k)
+  (genStV (cat "st" d o o) (cat "st-k" d o k) (cat "st-k" d o k-0))
+  (conf start-ch start-ch-0)
+  (auth start-ch start-ch-0)
+  (facts (same-dev ls lk) (no-state-split))
+  (rule eff-dev-up-3)
+  (operation nonce-test (displaced 8 2 dev-up 4) k (7 0)
+    (ch-msg start-ch (cat "power-up" d o k)))
+  (traces ((send start-ch (cat "power-up" d o k)) (recv (enc "up" k)))
+    ((load lk (cat pt-2 "st-k" d o k)) (load ls (cat pt "st" d o o))
+      (recv (enc "may I pass" k)) (send (enc "you may pass" n k)))
+    ((recv start-ch (cat "power-up" d o k)) (load lk (cat pt-0 old))
+      (load ls (cat pt-1 old1)) (stor lk (cat pt-2 "st-k" d o k))
+      (stor ls (cat pt-3 "st" d o)))
+    ((recv (enc "open" d o n-0 k-0)) (load lk (cat pt-7 "st-k" d o k-0))
+      (load ls (cat pt-4 "st" d any)) (stor ls (cat pt "st" d o o)))
+    ((recv start-ch-0 (cat "power-up" d o k-0))
+      (load lk (cat pt-5 old-0)) (load ls (cat pt-6 old1-0))
+      (stor lk (cat pt-7 "st-k" d o k-0)) (stor ls (cat pt-8 "st" d o)))
+    ((send start-ch-0 (cat "power-up" d o k-0)))
+    ((send (enc "may I pass" k))) ((recv k) (send k)))
+  (label 52)
+  (parent 49)
+  (unrealized (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
diff --git a/tst/weird.scm b/tst/weird.scm
new file mode 100644
--- /dev/null
+++ b/tst/weird.scm
@@ -0,0 +1,58 @@
+(defprotocol weird basic
+  (defrole originator
+    (vars (k skey))
+    (trace (send k))
+    (uniq-orig k))
+  (defrole guesser
+    (vars (k skey) (a name))
+    (trace (send (enc a k))))
+  (defrole encryptor
+    (vars (k skey) (a name))
+    (trace (recv (enc a k)))))
+
+;;; CPSA mistakenly concludes this is a skeleton.
+(defskeleton weird
+  (vars (k skey))
+  (defstrand originator 1 (k k))
+  (defstrand guesser 1 (k k)))
+
+;;; CPSA mistakenly concludes it is possible for the encryptor to
+;;; acquire k.
+(defskeleton weird
+  (vars (k skey))
+  (defstrand originator 1 (k k))
+  (defstrand encryptor 1 (k k)))
+
+(defskeleton weird
+  (vars (k skey))
+  (defstrand originator 1 (k k))
+  (defstrand encryptor 1 (k k))
+  (precedes ((0 0) (1 0))))
+
+(defprotocol weird-gen basic
+  (defrole originator
+    (vars (k skey))
+    (trace (send k))
+    (uniq-gen k))
+  (defrole guesser
+    (vars (k skey) (a name))
+    (trace (send (enc a k))))
+  (defrole encryptor
+    (vars (k skey) (a name))
+    (trace (recv (enc a k)))))
+
+(defskeleton weird-gen
+  (vars (k skey))
+  (defstrand originator 1 (k k))
+  (defstrand guesser 1 (k k)))
+
+(defskeleton weird-gen
+  (vars (k skey))
+  (defstrand originator 1 (k k))
+  (defstrand encryptor 1 (k k)))
+
+(defskeleton weird-gen
+  (vars (k skey))
+  (defstrand originator 1 (k k))
+  (defstrand encryptor 1 (k k))
+  (precedes ((0 0) (1 0))))
diff --git a/tst/weird.tst b/tst/weird.tst
new file mode 100644
--- /dev/null
+++ b/tst/weird.tst
@@ -0,0 +1,210 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/weird.scm")
+
+(defprotocol weird basic
+  (defrole originator (vars (k skey)) (trace (send k)) (uniq-orig k))
+  (defrole guesser (vars (k skey) (a name)) (trace (send (enc a k))))
+  (defrole encryptor (vars (k skey) (a name)) (trace (recv (enc a k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton weird
+  (vars (k skey) (a name))
+  (defstrand originator 1 (k k))
+  (defstrand guesser 1 (k k) (a a))
+  (uniq-orig k)
+  (traces ((send k)) ((send (enc a k))))
+  (label 0)
+  (realized)
+  (shape)
+  (maps ((0 1) ((k k) (a a))))
+  (origs (k (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol weird basic
+  (defrole originator (vars (k skey)) (trace (send k)) (uniq-orig k))
+  (defrole guesser (vars (k skey) (a name)) (trace (send (enc a k))))
+  (defrole encryptor (vars (k skey) (a name)) (trace (recv (enc a k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton weird
+  (vars (k skey) (a name))
+  (defstrand originator 1 (k k))
+  (defstrand encryptor 1 (k k) (a a))
+  (uniq-orig k)
+  (traces ((send k)) ((recv (enc a k))))
+  (label 1)
+  (unrealized (1 0))
+  (origs (k (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton weird
+  (vars (k skey) (a name))
+  (defstrand originator 1 (k k))
+  (defstrand encryptor 1 (k k) (a a))
+  (defstrand guesser 1 (k k) (a a))
+  (precedes ((2 0) (1 0)))
+  (uniq-orig k)
+  (operation encryption-test (added-strand guesser 1) (enc a k) (1 0))
+  (traces ((send k)) ((recv (enc a k))) ((send (enc a k))))
+  (label 2)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0 1) ((k k) (a a))))
+  (origs (k (0 0))))
+
+(defskeleton weird
+  (vars (k skey) (a name))
+  (defstrand originator 1 (k k))
+  (defstrand encryptor 1 (k k) (a a))
+  (deflistener k)
+  (precedes ((0 0) (2 0)) ((2 1) (1 0)))
+  (uniq-orig k)
+  (operation encryption-test (added-listener k) (enc a k) (1 0))
+  (traces ((send k)) ((recv (enc a k))) ((recv k) (send k)))
+  (label 3)
+  (parent 1)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton weird
+  (vars (k skey) (a name))
+  (defstrand originator 1 (k k))
+  (defstrand encryptor 1 (k k) (a a))
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k)
+  (operation generalization deleted (2 0))
+  (traces ((send k)) ((recv (enc a k))))
+  (label 4)
+  (parent 3)
+  (realized)
+  (shape)
+  (maps ((0 1) ((k k) (a a))))
+  (origs (k (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol weird basic
+  (defrole originator (vars (k skey)) (trace (send k)) (uniq-orig k))
+  (defrole guesser (vars (k skey) (a name)) (trace (send (enc a k))))
+  (defrole encryptor (vars (k skey) (a name)) (trace (recv (enc a k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton weird
+  (vars (k skey) (a name))
+  (defstrand originator 1 (k k))
+  (defstrand encryptor 1 (k k) (a a))
+  (precedes ((0 0) (1 0)))
+  (uniq-orig k)
+  (traces ((send k)) ((recv (enc a k))))
+  (label 5)
+  (realized)
+  (shape)
+  (maps ((0 1) ((k k) (a a))))
+  (origs (k (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol weird-gen basic
+  (defrole originator (vars (k skey)) (trace (send k)) (uniq-gen k))
+  (defrole guesser (vars (k skey) (a name)) (trace (send (enc a k))))
+  (defrole encryptor (vars (k skey) (a name)) (trace (recv (enc a k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton weird-gen
+  (vars (k skey) (a name))
+  (defstrand originator 1 (k k))
+  (defstrand guesser 1 (k k) (a a))
+  (uniq-gen k)
+  (traces ((send k)) ((send (enc a k))))
+  (label 6)
+  (realized)
+  (dead)
+  (origs)
+  (comment "Input cannot be made into a skeleton--nothing to do"))
+
+(defprotocol weird-gen basic
+  (defrole originator (vars (k skey)) (trace (send k)) (uniq-gen k))
+  (defrole guesser (vars (k skey) (a name)) (trace (send (enc a k))))
+  (defrole encryptor (vars (k skey) (a name)) (trace (recv (enc a k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton weird-gen
+  (vars (k skey) (a name))
+  (defstrand originator 1 (k k))
+  (defstrand encryptor 1 (k k) (a a))
+  (uniq-gen k)
+  (traces ((send k)) ((recv (enc a k))))
+  (label 7)
+  (unrealized (1 0))
+  (preskeleton)
+  (origs)
+  (comment "Not a skeleton"))
+
+(defskeleton weird-gen
+  (vars (k skey) (a name))
+  (defstrand originator 1 (k k))
+  (defstrand encryptor 1 (k k) (a a))
+  (precedes ((0 0) (1 0)))
+  (uniq-gen k)
+  (traces ((send k)) ((recv (enc a k))))
+  (label 8)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0 1) ((k k) (a a))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol weird-gen basic
+  (defrole originator (vars (k skey)) (trace (send k)) (uniq-gen k))
+  (defrole guesser (vars (k skey) (a name)) (trace (send (enc a k))))
+  (defrole encryptor (vars (k skey) (a name)) (trace (recv (enc a k))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton weird-gen
+  (vars (k skey) (a name))
+  (defstrand originator 1 (k k))
+  (defstrand encryptor 1 (k k) (a a))
+  (precedes ((0 0) (1 0)))
+  (uniq-gen k)
+  (traces ((send k)) ((recv (enc a k))))
+  (label 9)
+  (realized)
+  (shape)
+  (maps ((0 1) ((k k) (a a))))
+  (origs))
+
+(comment "Nothing left to do")
diff --git a/tst/wide-mouth-frog-scyther.lsp b/tst/wide-mouth-frog-scyther.lsp
new file mode 100644
--- /dev/null
+++ b/tst/wide-mouth-frog-scyther.lsp
@@ -0,0 +1,29 @@
+(herald "Wide-Mouth Frog Protocol from Scyther"
+  (comment "This protocol has an infinite number of shapes"))
+
+(defprotocol wide-mouth-frog basic
+  (defrole init (vars (a b t name) (ta text) (k skey))
+    (trace (send (cat a (enc a ta b k (ltk a t))))))
+  (defrole resp (vars (a b t name) (k skey) (tb text))
+    (trace (recv (enc t tb a k (ltk b t)))))
+  (defrole ks (vars (a b t name) (k skey) (ta tb text))
+    (trace (recv (cat a (enc a ta b k (ltk a t))))
+	   (send (enc t tb a k (ltk b t))))))
+
+(defskeleton wide-mouth-frog
+  (vars (a t name) (k skey))
+  (defstrand init 1 (a a) (t t) (k k))
+  (non-orig (ltk a t))
+  (uniq-orig k))
+
+(defskeleton wide-mouth-frog
+  (vars (b t name) (k skey))
+  (defstrand resp 1 (b b) (t t) (k k))
+  (non-orig (ltk b t))
+  (uniq-orig k))
+
+(defskeleton wide-mouth-frog
+  (vars (a b t name) (k skey))
+  (defstrand ks 2 (a a) (b b) (t t) (k k))
+  (non-orig (ltk a t) (ltk b t))
+  (uniq-orig k))
diff --git a/tst/wide-mouth-frog-scyther.tst b/tst/wide-mouth-frog-scyther.tst
new file mode 100644
--- /dev/null
+++ b/tst/wide-mouth-frog-scyther.tst
@@ -0,0 +1,545 @@
+(herald "Wide-Mouth Frog Protocol from Scyther"
+  (comment "This protocol has an infinite number of shapes"))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/wide-mouth-frog-scyther.lsp")
+
+(defprotocol wide-mouth-frog basic
+  (defrole init
+    (vars (a b t name) (ta text) (k skey))
+    (trace (send (cat a (enc a ta b k (ltk a t))))))
+  (defrole resp
+    (vars (a b t name) (k skey) (tb text))
+    (trace (recv (enc t tb a k (ltk b t)))))
+  (defrole ks
+    (vars (a b t name) (k skey) (ta tb text))
+    (trace (recv (cat a (enc a ta b k (ltk a t))))
+      (send (enc t tb a k (ltk b t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta text) (a t b name))
+  (defstrand init 1 (k k) (ta ta) (a a) (b b) (t t))
+  (non-orig (ltk a t))
+  (uniq-orig k)
+  (traces ((send (cat a (enc a ta b k (ltk a t))))))
+  (label 0)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (t t) (k k) (b b) (ta ta))))
+  (origs (k (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol wide-mouth-frog basic
+  (defrole init
+    (vars (a b t name) (ta text) (k skey))
+    (trace (send (cat a (enc a ta b k (ltk a t))))))
+  (defrole resp
+    (vars (a b t name) (k skey) (tb text))
+    (trace (recv (enc t tb a k (ltk b t)))))
+  (defrole ks
+    (vars (a b t name) (k skey) (ta tb text))
+    (trace (recv (cat a (enc a ta b k (ltk a t))))
+      (send (enc t tb a k (ltk b t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (tb text) (b t a name))
+  (defstrand resp 1 (k k) (tb tb) (a a) (b b) (t t))
+  (non-orig (ltk b t))
+  (uniq-orig k)
+  (traces ((recv (enc t tb a k (ltk b t)))))
+  (label 1)
+  (unrealized (0 0))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (tb text) (b a name))
+  (defstrand resp 1 (k k) (tb tb) (a a) (b b) (t b))
+  (defstrand init 1 (k k) (ta tb) (a b) (b a) (t b))
+  (precedes ((1 0) (0 0)))
+  (non-orig (ltk b b))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 1)
+    (enc b tb a k (ltk b b)) (0 0))
+  (traces ((recv (enc b tb a k (ltk b b))))
+    ((send (cat b (enc b tb a k (ltk b b))))))
+  (label 2)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t b) (k k) (a a) (tb tb))))
+  (origs (k (1 0))))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (tb ta text) (b t a name))
+  (defstrand resp 1 (k k) (tb tb) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a a) (b b) (t t))
+  (precedes ((1 1) (0 0)))
+  (non-orig (ltk b t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand ks 2)
+    (enc t tb a k (ltk b t)) (0 0))
+  (traces ((recv (enc t tb a k (ltk b t))))
+    ((recv (cat a (enc a ta b k (ltk a t))))
+      (send (enc t tb a k (ltk b t)))))
+  (label 3)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (k k) (a a) (tb tb))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wide-mouth-frog basic
+  (defrole init
+    (vars (a b t name) (ta text) (k skey))
+    (trace (send (cat a (enc a ta b k (ltk a t))))))
+  (defrole resp
+    (vars (a b t name) (k skey) (tb text))
+    (trace (recv (enc t tb a k (ltk b t)))))
+  (defrole ks
+    (vars (a b t name) (k skey) (ta tb text))
+    (trace (recv (cat a (enc a ta b k (ltk a t))))
+      (send (enc t tb a k (ltk b t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb text) (a b t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a a) (b b) (t t))
+  (non-orig (ltk a t) (ltk b t))
+  (uniq-orig k)
+  (traces
+    ((recv (cat a (enc a ta b k (ltk a t))))
+      (send (enc t tb a k (ltk b t)))))
+  (label 4)
+  (unrealized (0 0))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb text) (a b t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a a) (b b) (t t))
+  (defstrand init 1 (k k) (ta ta) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)))
+  (non-orig (ltk a t) (ltk b t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 1)
+    (enc a ta b k (ltk a t)) (0 0))
+  (traces
+    ((recv (cat a (enc a ta b k (ltk a t))))
+      (send (enc t tb a k (ltk b t))))
+    ((send (cat a (enc a ta b k (ltk a t))))))
+  (label 5)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (k k) (ta ta) (tb tb))))
+  (origs (k (1 0))))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 text) (b t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a t) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a b) (b t) (t t))
+  (precedes ((1 1) (0 0)))
+  (non-orig (ltk b t) (ltk t t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand ks 2)
+    (enc t ta b k (ltk t t)) (0 0))
+  (traces
+    ((recv (cat t (enc t ta b k (ltk t t))))
+      (send (enc t tb t k (ltk b t))))
+    ((recv (cat b (enc b ta-0 t k (ltk b t))))
+      (send (enc t ta b k (ltk t t)))))
+  (label 6)
+  (parent 4)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 text) (b t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a t) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a b) (b t) (t t))
+  (defstrand init 1 (k k) (ta ta-0) (a b) (b t) (t t))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)))
+  (non-orig (ltk b t) (ltk t t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 1)
+    (enc b ta-0 t k (ltk b t)) (1 0))
+  (traces
+    ((recv (cat t (enc t ta b k (ltk t t))))
+      (send (enc t tb t k (ltk b t))))
+    ((recv (cat b (enc b ta-0 t k (ltk b t))))
+      (send (enc t ta b k (ltk t t))))
+    ((send (cat b (enc b ta-0 t k (ltk b t))))))
+  (label 7)
+  (parent 6)
+  (realized)
+  (shape)
+  (maps ((0) ((a t) (b b) (t t) (k k) (ta ta) (tb tb))))
+  (origs (k (2 0))))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 text) (t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a t) (b t) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)))
+  (non-orig (ltk t t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand ks 2)
+    (enc t ta-0 t k (ltk t t)) (1 0))
+  (traces
+    ((recv (cat t (enc t ta t k (ltk t t))))
+      (send (enc t tb t k (ltk t t))))
+    ((recv (cat t (enc t ta-0 t k (ltk t t))))
+      (send (enc t ta t k (ltk t t))))
+    ((recv (cat t (enc t ta-1 t k (ltk t t))))
+      (send (enc t ta-0 t k (ltk t t)))))
+  (label 8)
+  (parent 6)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 text) (t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a t) (b t) (t t))
+  (defstrand init 1 (k k) (ta ta-1) (a t) (b t) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 0) (2 0)))
+  (non-orig (ltk t t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 1)
+    (enc t ta-1 t k (ltk t t)) (2 0))
+  (traces
+    ((recv (cat t (enc t ta t k (ltk t t))))
+      (send (enc t tb t k (ltk t t))))
+    ((recv (cat t (enc t ta-0 t k (ltk t t))))
+      (send (enc t ta t k (ltk t t))))
+    ((recv (cat t (enc t ta-1 t k (ltk t t))))
+      (send (enc t ta-0 t k (ltk t t))))
+    ((send (cat t (enc t ta-1 t k (ltk t t))))))
+  (label 9)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps ((0) ((a t) (b t) (t t) (k k) (ta ta) (tb tb))))
+  (origs (k (3 0))))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 ta-2 text) (t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-2) (tb ta-1) (a t) (b t) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)))
+  (non-orig (ltk t t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand ks 2)
+    (enc t ta-1 t k (ltk t t)) (2 0))
+  (traces
+    ((recv (cat t (enc t ta t k (ltk t t))))
+      (send (enc t tb t k (ltk t t))))
+    ((recv (cat t (enc t ta-0 t k (ltk t t))))
+      (send (enc t ta t k (ltk t t))))
+    ((recv (cat t (enc t ta-1 t k (ltk t t))))
+      (send (enc t ta-0 t k (ltk t t))))
+    ((recv (cat t (enc t ta-2 t k (ltk t t))))
+      (send (enc t ta-1 t k (ltk t t)))))
+  (label 10)
+  (parent 8)
+  (unrealized (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 ta-2 text) (t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-2) (tb ta-1) (a t) (b t) (t t))
+  (defstrand init 1 (k k) (ta ta-2) (a t) (b t) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (3 0)))
+  (non-orig (ltk t t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 1)
+    (enc t ta-2 t k (ltk t t)) (3 0))
+  (traces
+    ((recv (cat t (enc t ta t k (ltk t t))))
+      (send (enc t tb t k (ltk t t))))
+    ((recv (cat t (enc t ta-0 t k (ltk t t))))
+      (send (enc t ta t k (ltk t t))))
+    ((recv (cat t (enc t ta-1 t k (ltk t t))))
+      (send (enc t ta-0 t k (ltk t t))))
+    ((recv (cat t (enc t ta-2 t k (ltk t t))))
+      (send (enc t ta-1 t k (ltk t t))))
+    ((send (cat t (enc t ta-2 t k (ltk t t))))))
+  (label 11)
+  (parent 10)
+  (realized)
+  (shape)
+  (maps ((0) ((a t) (b t) (t t) (k k) (ta ta) (tb tb))))
+  (origs (k (4 0))))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 ta-2 ta-3 text) (t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-2) (tb ta-1) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-3) (tb ta-2) (a t) (b t) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0)))
+  (non-orig (ltk t t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand ks 2)
+    (enc t ta-2 t k (ltk t t)) (3 0))
+  (traces
+    ((recv (cat t (enc t ta t k (ltk t t))))
+      (send (enc t tb t k (ltk t t))))
+    ((recv (cat t (enc t ta-0 t k (ltk t t))))
+      (send (enc t ta t k (ltk t t))))
+    ((recv (cat t (enc t ta-1 t k (ltk t t))))
+      (send (enc t ta-0 t k (ltk t t))))
+    ((recv (cat t (enc t ta-2 t k (ltk t t))))
+      (send (enc t ta-1 t k (ltk t t))))
+    ((recv (cat t (enc t ta-3 t k (ltk t t))))
+      (send (enc t ta-2 t k (ltk t t)))))
+  (label 12)
+  (parent 10)
+  (unrealized (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 ta-2 ta-3 text) (t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-2) (tb ta-1) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-3) (tb ta-2) (a t) (b t) (t t))
+  (defstrand init 1 (k k) (ta ta-3) (a t) (b t) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
+    ((5 0) (4 0)))
+  (non-orig (ltk t t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 1)
+    (enc t ta-3 t k (ltk t t)) (4 0))
+  (traces
+    ((recv (cat t (enc t ta t k (ltk t t))))
+      (send (enc t tb t k (ltk t t))))
+    ((recv (cat t (enc t ta-0 t k (ltk t t))))
+      (send (enc t ta t k (ltk t t))))
+    ((recv (cat t (enc t ta-1 t k (ltk t t))))
+      (send (enc t ta-0 t k (ltk t t))))
+    ((recv (cat t (enc t ta-2 t k (ltk t t))))
+      (send (enc t ta-1 t k (ltk t t))))
+    ((recv (cat t (enc t ta-3 t k (ltk t t))))
+      (send (enc t ta-2 t k (ltk t t))))
+    ((send (cat t (enc t ta-3 t k (ltk t t))))))
+  (label 13)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps ((0) ((a t) (b t) (t t) (k k) (ta ta) (tb tb))))
+  (origs (k (5 0))))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 ta-2 ta-3 ta-4 text) (t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-2) (tb ta-1) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-3) (tb ta-2) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-4) (tb ta-3) (a t) (b t) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
+    ((5 1) (4 0)))
+  (non-orig (ltk t t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand ks 2)
+    (enc t ta-3 t k (ltk t t)) (4 0))
+  (traces
+    ((recv (cat t (enc t ta t k (ltk t t))))
+      (send (enc t tb t k (ltk t t))))
+    ((recv (cat t (enc t ta-0 t k (ltk t t))))
+      (send (enc t ta t k (ltk t t))))
+    ((recv (cat t (enc t ta-1 t k (ltk t t))))
+      (send (enc t ta-0 t k (ltk t t))))
+    ((recv (cat t (enc t ta-2 t k (ltk t t))))
+      (send (enc t ta-1 t k (ltk t t))))
+    ((recv (cat t (enc t ta-3 t k (ltk t t))))
+      (send (enc t ta-2 t k (ltk t t))))
+    ((recv (cat t (enc t ta-4 t k (ltk t t))))
+      (send (enc t ta-3 t k (ltk t t)))))
+  (label 14)
+  (parent 12)
+  (unrealized (5 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 ta-2 ta-3 ta-4 text) (t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-2) (tb ta-1) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-3) (tb ta-2) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-4) (tb ta-3) (a t) (b t) (t t))
+  (defstrand init 1 (k k) (ta ta-4) (a t) (b t) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
+    ((5 1) (4 0)) ((6 0) (5 0)))
+  (non-orig (ltk t t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 1)
+    (enc t ta-4 t k (ltk t t)) (5 0))
+  (traces
+    ((recv (cat t (enc t ta t k (ltk t t))))
+      (send (enc t tb t k (ltk t t))))
+    ((recv (cat t (enc t ta-0 t k (ltk t t))))
+      (send (enc t ta t k (ltk t t))))
+    ((recv (cat t (enc t ta-1 t k (ltk t t))))
+      (send (enc t ta-0 t k (ltk t t))))
+    ((recv (cat t (enc t ta-2 t k (ltk t t))))
+      (send (enc t ta-1 t k (ltk t t))))
+    ((recv (cat t (enc t ta-3 t k (ltk t t))))
+      (send (enc t ta-2 t k (ltk t t))))
+    ((recv (cat t (enc t ta-4 t k (ltk t t))))
+      (send (enc t ta-3 t k (ltk t t))))
+    ((send (cat t (enc t ta-4 t k (ltk t t))))))
+  (label 15)
+  (parent 14)
+  (realized)
+  (shape)
+  (maps ((0) ((a t) (b t) (t t) (k k) (ta ta) (tb tb))))
+  (origs (k (6 0))))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 ta-2 ta-3 ta-4 ta-5 text) (t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-2) (tb ta-1) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-3) (tb ta-2) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-4) (tb ta-3) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-5) (tb ta-4) (a t) (b t) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
+    ((5 1) (4 0)) ((6 1) (5 0)))
+  (non-orig (ltk t t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand ks 2)
+    (enc t ta-4 t k (ltk t t)) (5 0))
+  (traces
+    ((recv (cat t (enc t ta t k (ltk t t))))
+      (send (enc t tb t k (ltk t t))))
+    ((recv (cat t (enc t ta-0 t k (ltk t t))))
+      (send (enc t ta t k (ltk t t))))
+    ((recv (cat t (enc t ta-1 t k (ltk t t))))
+      (send (enc t ta-0 t k (ltk t t))))
+    ((recv (cat t (enc t ta-2 t k (ltk t t))))
+      (send (enc t ta-1 t k (ltk t t))))
+    ((recv (cat t (enc t ta-3 t k (ltk t t))))
+      (send (enc t ta-2 t k (ltk t t))))
+    ((recv (cat t (enc t ta-4 t k (ltk t t))))
+      (send (enc t ta-3 t k (ltk t t))))
+    ((recv (cat t (enc t ta-5 t k (ltk t t))))
+      (send (enc t ta-4 t k (ltk t t)))))
+  (label 16)
+  (parent 14)
+  (unrealized (6 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 ta-2 ta-3 ta-4 ta-5 text) (t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-2) (tb ta-1) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-3) (tb ta-2) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-4) (tb ta-3) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-5) (tb ta-4) (a t) (b t) (t t))
+  (defstrand init 1 (k k) (ta ta-5) (a t) (b t) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
+    ((5 1) (4 0)) ((6 1) (5 0)) ((7 0) (6 0)))
+  (non-orig (ltk t t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 1)
+    (enc t ta-5 t k (ltk t t)) (6 0))
+  (traces
+    ((recv (cat t (enc t ta t k (ltk t t))))
+      (send (enc t tb t k (ltk t t))))
+    ((recv (cat t (enc t ta-0 t k (ltk t t))))
+      (send (enc t ta t k (ltk t t))))
+    ((recv (cat t (enc t ta-1 t k (ltk t t))))
+      (send (enc t ta-0 t k (ltk t t))))
+    ((recv (cat t (enc t ta-2 t k (ltk t t))))
+      (send (enc t ta-1 t k (ltk t t))))
+    ((recv (cat t (enc t ta-3 t k (ltk t t))))
+      (send (enc t ta-2 t k (ltk t t))))
+    ((recv (cat t (enc t ta-4 t k (ltk t t))))
+      (send (enc t ta-3 t k (ltk t t))))
+    ((recv (cat t (enc t ta-5 t k (ltk t t))))
+      (send (enc t ta-4 t k (ltk t t))))
+    ((send (cat t (enc t ta-5 t k (ltk t t))))))
+  (label 17)
+  (parent 16)
+  (realized)
+  (shape)
+  (maps ((0) ((a t) (b t) (t t) (k k) (ta ta) (tb tb))))
+  (origs (k (7 0))))
+
+(comment "Strand bound exceeded--aborting run")
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 ta-2 ta-3 ta-4 ta-5 ta-6 text)
+    (t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-2) (tb ta-1) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-3) (tb ta-2) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-4) (tb ta-3) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-5) (tb ta-4) (a t) (b t) (t t))
+  (defstrand ks 2 (k k) (ta ta-6) (tb ta-5) (a t) (b t) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
+    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (6 0)))
+  (non-orig (ltk t t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand ks 2)
+    (enc t ta-5 t k (ltk t t)) (6 0))
+  (traces
+    ((recv (cat t (enc t ta t k (ltk t t))))
+      (send (enc t tb t k (ltk t t))))
+    ((recv (cat t (enc t ta-0 t k (ltk t t))))
+      (send (enc t ta t k (ltk t t))))
+    ((recv (cat t (enc t ta-1 t k (ltk t t))))
+      (send (enc t ta-0 t k (ltk t t))))
+    ((recv (cat t (enc t ta-2 t k (ltk t t))))
+      (send (enc t ta-1 t k (ltk t t))))
+    ((recv (cat t (enc t ta-3 t k (ltk t t))))
+      (send (enc t ta-2 t k (ltk t t))))
+    ((recv (cat t (enc t ta-4 t k (ltk t t))))
+      (send (enc t ta-3 t k (ltk t t))))
+    ((recv (cat t (enc t ta-5 t k (ltk t t))))
+      (send (enc t ta-4 t k (ltk t t))))
+    ((recv (cat t (enc t ta-6 t k (ltk t t))))
+      (send (enc t ta-5 t k (ltk t t)))))
+  (label 18)
+  (parent 16)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
diff --git a/tst/wide-mouth-frog.lsp b/tst/wide-mouth-frog.lsp
new file mode 100644
--- /dev/null
+++ b/tst/wide-mouth-frog.lsp
@@ -0,0 +1,29 @@
+(herald "Wide-Mouth Frog Protocol"
+  (comment "This protocol has an infinite number of shapes"))
+
+(defprotocol wide-mouth-frog basic
+  (defrole init (vars (a b t name) (ta text) (k skey))
+    (trace (send (cat a (enc ta b k (ltk a t))))))
+  (defrole resp (vars (a b t name) (k skey) (tb text))
+    (trace (recv (enc tb a k (ltk b t)))))
+  (defrole ks (vars (a b t name) (k skey) (ta tb text))
+    (trace (recv (cat a (enc ta b k (ltk a t))))
+	   (send (enc tb a k (ltk b t))))))
+
+(defskeleton wide-mouth-frog
+  (vars (a t name) (k skey))
+  (defstrand init 1 (a a) (t t) (k k))
+  (non-orig (ltk a t))
+  (uniq-orig k))
+
+(defskeleton wide-mouth-frog
+  (vars (b t name) (k skey))
+  (defstrand resp 1 (b b) (t t) (k k))
+  (non-orig (ltk b t))
+  (uniq-orig k))
+
+(defskeleton wide-mouth-frog
+  (vars (a b t name) (k skey))
+  (defstrand ks 2 (a a) (b b) (t t) (k k))
+  (non-orig (ltk a t) (ltk b t))
+  (uniq-orig k))
diff --git a/tst/wide-mouth-frog.tst b/tst/wide-mouth-frog.tst
new file mode 100644
--- /dev/null
+++ b/tst/wide-mouth-frog.tst
@@ -0,0 +1,547 @@
+(herald "Wide-Mouth Frog Protocol"
+  (comment "This protocol has an infinite number of shapes"))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/wide-mouth-frog.lsp")
+
+(defprotocol wide-mouth-frog basic
+  (defrole init
+    (vars (a b t name) (ta text) (k skey))
+    (trace (send (cat a (enc ta b k (ltk a t))))))
+  (defrole resp
+    (vars (a b t name) (k skey) (tb text))
+    (trace (recv (enc tb a k (ltk b t)))))
+  (defrole ks
+    (vars (a b t name) (k skey) (ta tb text))
+    (trace (recv (cat a (enc ta b k (ltk a t))))
+      (send (enc tb a k (ltk b t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta text) (a t b name))
+  (defstrand init 1 (k k) (ta ta) (a a) (b b) (t t))
+  (non-orig (ltk a t))
+  (uniq-orig k)
+  (traces ((send (cat a (enc ta b k (ltk a t))))))
+  (label 0)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (t t) (k k) (b b) (ta ta))))
+  (origs (k (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol wide-mouth-frog basic
+  (defrole init
+    (vars (a b t name) (ta text) (k skey))
+    (trace (send (cat a (enc ta b k (ltk a t))))))
+  (defrole resp
+    (vars (a b t name) (k skey) (tb text))
+    (trace (recv (enc tb a k (ltk b t)))))
+  (defrole ks
+    (vars (a b t name) (k skey) (ta tb text))
+    (trace (recv (cat a (enc ta b k (ltk a t))))
+      (send (enc tb a k (ltk b t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (tb text) (b t a name))
+  (defstrand resp 1 (k k) (tb tb) (a a) (b b) (t t))
+  (non-orig (ltk b t))
+  (uniq-orig k)
+  (traces ((recv (enc tb a k (ltk b t)))))
+  (label 1)
+  (unrealized (0 0))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (tb text) (b t a name))
+  (defstrand resp 1 (k k) (tb tb) (a a) (b b) (t t))
+  (defstrand init 1 (k k) (ta tb) (a b) (b a) (t t))
+  (precedes ((1 0) (0 0)))
+  (non-orig (ltk b t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 1)
+    (enc tb a k (ltk b t)) (0 0))
+  (traces ((recv (enc tb a k (ltk b t))))
+    ((send (cat b (enc tb a k (ltk b t))))))
+  (label 2)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (k k) (a a) (tb tb))))
+  (origs (k (1 0))))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (tb ta text) (b t a name))
+  (defstrand resp 1 (k k) (tb tb) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a a) (b b) (t t))
+  (precedes ((1 1) (0 0)))
+  (non-orig (ltk b t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand ks 2) (enc tb a k (ltk b t))
+    (0 0))
+  (traces ((recv (enc tb a k (ltk b t))))
+    ((recv (cat a (enc ta b k (ltk a t))))
+      (send (enc tb a k (ltk b t)))))
+  (label 3)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((b b) (t t) (k k) (a a) (tb tb))))
+  (origs))
+
+(comment "Nothing left to do")
+
+(defprotocol wide-mouth-frog basic
+  (defrole init
+    (vars (a b t name) (ta text) (k skey))
+    (trace (send (cat a (enc ta b k (ltk a t))))))
+  (defrole resp
+    (vars (a b t name) (k skey) (tb text))
+    (trace (recv (enc tb a k (ltk b t)))))
+  (defrole ks
+    (vars (a b t name) (k skey) (ta tb text))
+    (trace (recv (cat a (enc ta b k (ltk a t))))
+      (send (enc tb a k (ltk b t)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb text) (a b t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a a) (b b) (t t))
+  (non-orig (ltk a t) (ltk b t))
+  (uniq-orig k)
+  (traces
+    ((recv (cat a (enc ta b k (ltk a t))))
+      (send (enc tb a k (ltk b t)))))
+  (label 4)
+  (unrealized (0 0))
+  (origs)
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb text) (a b t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a a) (b b) (t t))
+  (defstrand init 1 (k k) (ta ta) (a a) (b b) (t t))
+  (precedes ((1 0) (0 0)))
+  (non-orig (ltk a t) (ltk b t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 1)
+    (enc ta b k (ltk a t)) (0 0))
+  (traces
+    ((recv (cat a (enc ta b k (ltk a t))))
+      (send (enc tb a k (ltk b t))))
+    ((send (cat a (enc ta b k (ltk a t))))))
+  (label 5)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (k k) (ta ta) (tb tb))))
+  (origs (k (1 0))))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 text) (a b t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a b) (b a) (t t))
+  (precedes ((1 1) (0 0)))
+  (non-orig (ltk a t) (ltk b t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand ks 2) (enc ta b k (ltk a t))
+    (0 0))
+  (traces
+    ((recv (cat a (enc ta b k (ltk a t))))
+      (send (enc tb a k (ltk b t))))
+    ((recv (cat b (enc ta-0 a k (ltk b t))))
+      (send (enc ta b k (ltk a t)))))
+  (label 6)
+  (parent 4)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 text) (a b t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a b) (b a) (t t))
+  (defstrand init 1 (k k) (ta ta-0) (a b) (b a) (t t))
+  (precedes ((1 1) (0 0)) ((2 0) (1 0)))
+  (non-orig (ltk a t) (ltk b t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 1)
+    (enc ta-0 a k (ltk b t)) (1 0))
+  (traces
+    ((recv (cat a (enc ta b k (ltk a t))))
+      (send (enc tb a k (ltk b t))))
+    ((recv (cat b (enc ta-0 a k (ltk b t))))
+      (send (enc ta b k (ltk a t))))
+    ((send (cat b (enc ta-0 a k (ltk b t))))))
+  (label 7)
+  (parent 6)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (k k) (ta ta) (tb tb))))
+  (origs (k (2 0))))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 text) (a b t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a a) (b b) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)))
+  (non-orig (ltk a t) (ltk b t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand ks 2)
+    (enc ta-0 a k (ltk b t)) (1 0))
+  (traces
+    ((recv (cat a (enc ta b k (ltk a t))))
+      (send (enc tb a k (ltk b t))))
+    ((recv (cat b (enc ta-0 a k (ltk b t))))
+      (send (enc ta b k (ltk a t))))
+    ((recv (cat a (enc ta-1 b k (ltk a t))))
+      (send (enc ta-0 a k (ltk b t)))))
+  (label 8)
+  (parent 6)
+  (unrealized (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 text) (a b t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a a) (b b) (t t))
+  (defstrand init 1 (k k) (ta ta-1) (a a) (b b) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 0) (2 0)))
+  (non-orig (ltk a t) (ltk b t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 1)
+    (enc ta-1 b k (ltk a t)) (2 0))
+  (traces
+    ((recv (cat a (enc ta b k (ltk a t))))
+      (send (enc tb a k (ltk b t))))
+    ((recv (cat b (enc ta-0 a k (ltk b t))))
+      (send (enc ta b k (ltk a t))))
+    ((recv (cat a (enc ta-1 b k (ltk a t))))
+      (send (enc ta-0 a k (ltk b t))))
+    ((send (cat a (enc ta-1 b k (ltk a t))))))
+  (label 9)
+  (parent 8)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (k k) (ta ta) (tb tb))))
+  (origs (k (3 0))))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 ta-2 text) (a b t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-2) (tb ta-1) (a b) (b a) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)))
+  (non-orig (ltk a t) (ltk b t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand ks 2)
+    (enc ta-1 b k (ltk a t)) (2 0))
+  (traces
+    ((recv (cat a (enc ta b k (ltk a t))))
+      (send (enc tb a k (ltk b t))))
+    ((recv (cat b (enc ta-0 a k (ltk b t))))
+      (send (enc ta b k (ltk a t))))
+    ((recv (cat a (enc ta-1 b k (ltk a t))))
+      (send (enc ta-0 a k (ltk b t))))
+    ((recv (cat b (enc ta-2 a k (ltk b t))))
+      (send (enc ta-1 b k (ltk a t)))))
+  (label 10)
+  (parent 8)
+  (unrealized (3 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 ta-2 text) (a b t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-2) (tb ta-1) (a b) (b a) (t t))
+  (defstrand init 1 (k k) (ta ta-2) (a b) (b a) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 0) (3 0)))
+  (non-orig (ltk a t) (ltk b t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 1)
+    (enc ta-2 a k (ltk b t)) (3 0))
+  (traces
+    ((recv (cat a (enc ta b k (ltk a t))))
+      (send (enc tb a k (ltk b t))))
+    ((recv (cat b (enc ta-0 a k (ltk b t))))
+      (send (enc ta b k (ltk a t))))
+    ((recv (cat a (enc ta-1 b k (ltk a t))))
+      (send (enc ta-0 a k (ltk b t))))
+    ((recv (cat b (enc ta-2 a k (ltk b t))))
+      (send (enc ta-1 b k (ltk a t))))
+    ((send (cat b (enc ta-2 a k (ltk b t))))))
+  (label 11)
+  (parent 10)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (k k) (ta ta) (tb tb))))
+  (origs (k (4 0))))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 ta-2 ta-3 text) (a b t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-2) (tb ta-1) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-3) (tb ta-2) (a a) (b b) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0)))
+  (non-orig (ltk a t) (ltk b t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand ks 2)
+    (enc ta-2 a k (ltk b t)) (3 0))
+  (traces
+    ((recv (cat a (enc ta b k (ltk a t))))
+      (send (enc tb a k (ltk b t))))
+    ((recv (cat b (enc ta-0 a k (ltk b t))))
+      (send (enc ta b k (ltk a t))))
+    ((recv (cat a (enc ta-1 b k (ltk a t))))
+      (send (enc ta-0 a k (ltk b t))))
+    ((recv (cat b (enc ta-2 a k (ltk b t))))
+      (send (enc ta-1 b k (ltk a t))))
+    ((recv (cat a (enc ta-3 b k (ltk a t))))
+      (send (enc ta-2 a k (ltk b t)))))
+  (label 12)
+  (parent 10)
+  (unrealized (4 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 ta-2 ta-3 text) (a b t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-2) (tb ta-1) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-3) (tb ta-2) (a a) (b b) (t t))
+  (defstrand init 1 (k k) (ta ta-3) (a a) (b b) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
+    ((5 0) (4 0)))
+  (non-orig (ltk a t) (ltk b t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 1)
+    (enc ta-3 b k (ltk a t)) (4 0))
+  (traces
+    ((recv (cat a (enc ta b k (ltk a t))))
+      (send (enc tb a k (ltk b t))))
+    ((recv (cat b (enc ta-0 a k (ltk b t))))
+      (send (enc ta b k (ltk a t))))
+    ((recv (cat a (enc ta-1 b k (ltk a t))))
+      (send (enc ta-0 a k (ltk b t))))
+    ((recv (cat b (enc ta-2 a k (ltk b t))))
+      (send (enc ta-1 b k (ltk a t))))
+    ((recv (cat a (enc ta-3 b k (ltk a t))))
+      (send (enc ta-2 a k (ltk b t))))
+    ((send (cat a (enc ta-3 b k (ltk a t))))))
+  (label 13)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (k k) (ta ta) (tb tb))))
+  (origs (k (5 0))))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 ta-2 ta-3 ta-4 text) (a b t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-2) (tb ta-1) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-3) (tb ta-2) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-4) (tb ta-3) (a b) (b a) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
+    ((5 1) (4 0)))
+  (non-orig (ltk a t) (ltk b t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand ks 2)
+    (enc ta-3 b k (ltk a t)) (4 0))
+  (traces
+    ((recv (cat a (enc ta b k (ltk a t))))
+      (send (enc tb a k (ltk b t))))
+    ((recv (cat b (enc ta-0 a k (ltk b t))))
+      (send (enc ta b k (ltk a t))))
+    ((recv (cat a (enc ta-1 b k (ltk a t))))
+      (send (enc ta-0 a k (ltk b t))))
+    ((recv (cat b (enc ta-2 a k (ltk b t))))
+      (send (enc ta-1 b k (ltk a t))))
+    ((recv (cat a (enc ta-3 b k (ltk a t))))
+      (send (enc ta-2 a k (ltk b t))))
+    ((recv (cat b (enc ta-4 a k (ltk b t))))
+      (send (enc ta-3 b k (ltk a t)))))
+  (label 14)
+  (parent 12)
+  (unrealized (5 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 ta-2 ta-3 ta-4 text) (a b t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-2) (tb ta-1) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-3) (tb ta-2) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-4) (tb ta-3) (a b) (b a) (t t))
+  (defstrand init 1 (k k) (ta ta-4) (a b) (b a) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
+    ((5 1) (4 0)) ((6 0) (5 0)))
+  (non-orig (ltk a t) (ltk b t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 1)
+    (enc ta-4 a k (ltk b t)) (5 0))
+  (traces
+    ((recv (cat a (enc ta b k (ltk a t))))
+      (send (enc tb a k (ltk b t))))
+    ((recv (cat b (enc ta-0 a k (ltk b t))))
+      (send (enc ta b k (ltk a t))))
+    ((recv (cat a (enc ta-1 b k (ltk a t))))
+      (send (enc ta-0 a k (ltk b t))))
+    ((recv (cat b (enc ta-2 a k (ltk b t))))
+      (send (enc ta-1 b k (ltk a t))))
+    ((recv (cat a (enc ta-3 b k (ltk a t))))
+      (send (enc ta-2 a k (ltk b t))))
+    ((recv (cat b (enc ta-4 a k (ltk b t))))
+      (send (enc ta-3 b k (ltk a t))))
+    ((send (cat b (enc ta-4 a k (ltk b t))))))
+  (label 15)
+  (parent 14)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (k k) (ta ta) (tb tb))))
+  (origs (k (6 0))))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 ta-2 ta-3 ta-4 ta-5 text)
+    (a b t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-2) (tb ta-1) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-3) (tb ta-2) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-4) (tb ta-3) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-5) (tb ta-4) (a a) (b b) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
+    ((5 1) (4 0)) ((6 1) (5 0)))
+  (non-orig (ltk a t) (ltk b t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand ks 2)
+    (enc ta-4 a k (ltk b t)) (5 0))
+  (traces
+    ((recv (cat a (enc ta b k (ltk a t))))
+      (send (enc tb a k (ltk b t))))
+    ((recv (cat b (enc ta-0 a k (ltk b t))))
+      (send (enc ta b k (ltk a t))))
+    ((recv (cat a (enc ta-1 b k (ltk a t))))
+      (send (enc ta-0 a k (ltk b t))))
+    ((recv (cat b (enc ta-2 a k (ltk b t))))
+      (send (enc ta-1 b k (ltk a t))))
+    ((recv (cat a (enc ta-3 b k (ltk a t))))
+      (send (enc ta-2 a k (ltk b t))))
+    ((recv (cat b (enc ta-4 a k (ltk b t))))
+      (send (enc ta-3 b k (ltk a t))))
+    ((recv (cat a (enc ta-5 b k (ltk a t))))
+      (send (enc ta-4 a k (ltk b t)))))
+  (label 16)
+  (parent 14)
+  (unrealized (6 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 ta-2 ta-3 ta-4 ta-5 text)
+    (a b t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-2) (tb ta-1) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-3) (tb ta-2) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-4) (tb ta-3) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-5) (tb ta-4) (a a) (b b) (t t))
+  (defstrand init 1 (k k) (ta ta-5) (a a) (b b) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
+    ((5 1) (4 0)) ((6 1) (5 0)) ((7 0) (6 0)))
+  (non-orig (ltk a t) (ltk b t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand init 1)
+    (enc ta-5 b k (ltk a t)) (6 0))
+  (traces
+    ((recv (cat a (enc ta b k (ltk a t))))
+      (send (enc tb a k (ltk b t))))
+    ((recv (cat b (enc ta-0 a k (ltk b t))))
+      (send (enc ta b k (ltk a t))))
+    ((recv (cat a (enc ta-1 b k (ltk a t))))
+      (send (enc ta-0 a k (ltk b t))))
+    ((recv (cat b (enc ta-2 a k (ltk b t))))
+      (send (enc ta-1 b k (ltk a t))))
+    ((recv (cat a (enc ta-3 b k (ltk a t))))
+      (send (enc ta-2 a k (ltk b t))))
+    ((recv (cat b (enc ta-4 a k (ltk b t))))
+      (send (enc ta-3 b k (ltk a t))))
+    ((recv (cat a (enc ta-5 b k (ltk a t))))
+      (send (enc ta-4 a k (ltk b t))))
+    ((send (cat a (enc ta-5 b k (ltk a t))))))
+  (label 17)
+  (parent 16)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (t t) (k k) (ta ta) (tb tb))))
+  (origs (k (7 0))))
+
+(comment "Strand bound exceeded--aborting run")
+
+(defskeleton wide-mouth-frog
+  (vars (k skey) (ta tb ta-0 ta-1 ta-2 ta-3 ta-4 ta-5 ta-6 text)
+    (a b t name))
+  (defstrand ks 2 (k k) (ta ta) (tb tb) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-0) (tb ta) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-1) (tb ta-0) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-2) (tb ta-1) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-3) (tb ta-2) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-4) (tb ta-3) (a b) (b a) (t t))
+  (defstrand ks 2 (k k) (ta ta-5) (tb ta-4) (a a) (b b) (t t))
+  (defstrand ks 2 (k k) (ta ta-6) (tb ta-5) (a b) (b a) (t t))
+  (precedes ((1 1) (0 0)) ((2 1) (1 0)) ((3 1) (2 0)) ((4 1) (3 0))
+    ((5 1) (4 0)) ((6 1) (5 0)) ((7 1) (6 0)))
+  (non-orig (ltk a t) (ltk b t))
+  (uniq-orig k)
+  (operation encryption-test (added-strand ks 2)
+    (enc ta-5 b k (ltk a t)) (6 0))
+  (traces
+    ((recv (cat a (enc ta b k (ltk a t))))
+      (send (enc tb a k (ltk b t))))
+    ((recv (cat b (enc ta-0 a k (ltk b t))))
+      (send (enc ta b k (ltk a t))))
+    ((recv (cat a (enc ta-1 b k (ltk a t))))
+      (send (enc ta-0 a k (ltk b t))))
+    ((recv (cat b (enc ta-2 a k (ltk b t))))
+      (send (enc ta-1 b k (ltk a t))))
+    ((recv (cat a (enc ta-3 b k (ltk a t))))
+      (send (enc ta-2 a k (ltk b t))))
+    ((recv (cat b (enc ta-4 a k (ltk b t))))
+      (send (enc ta-3 b k (ltk a t))))
+    ((recv (cat a (enc ta-5 b k (ltk a t))))
+      (send (enc ta-4 a k (ltk b t))))
+    ((recv (cat b (enc ta-6 a k (ltk b t))))
+      (send (enc ta-5 b k (ltk a t)))))
+  (label 18)
+  (parent 16)
+  (unrealized (7 0))
+  (aborted)
+  (comment "aborted"))
diff --git a/tst/wonthull.scm b/tst/wonthull.scm
new file mode 100644
--- /dev/null
+++ b/tst/wonthull.scm
@@ -0,0 +1,40 @@
+(herald wonthull (bound 9))
+
+;;;  Wonthull:  Demonstrates a subtle incompleteness.
+;;;
+;;;  The second POV skeleton given is a shape not produced
+;;;   or covered in the first search.  The problem is that an
+;;;   augmentation is attempted only with the most general
+;;;   version of the responder strand that uses x3 as y1, not
+;;;   the more specific version in which this does not lead to
+;;;   x3 being originated in more than one place.)
+
+(defprotocol wonthull basic
+  (defrole init (vars (a name) (x1 x2 x3 x4 text))
+    (trace
+     (send (cat (enc x1 x2 (pubk a))
+		(enc x3 x2 (pubk a))))
+     (recv (enc "okay" x3 x4 (pubk a)))
+     )
+    (uniq-orig x1 x2 x3)
+    (non-orig (privk a))
+    )
+  (defrole resp (vars (a name) (y1 y2 y3 text))
+    (trace
+     (recv (enc y1 y2 (pubk a)) )
+     (send (enc "okay" y3 y1 (pubk a)) )
+     )
+    )
+  )
+
+(defskeleton wonthull
+  (vars)
+  (defstrand init 2)
+)
+
+(defskeleton wonthull
+  (vars (a name) (n text) (x1 x2 x3 x4 text))
+  (defstrand init 2 (a a) (x1 x1) (x2 x3) (x3 x3) (x4 x1))
+  (defstrand resp 2 (a a) (y1 x1) (y2 x3) (y3 x3))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+)
diff --git a/tst/wonthull.tst b/tst/wonthull.tst
new file mode 100644
--- /dev/null
+++ b/tst/wonthull.tst
@@ -0,0 +1,211 @@
+(herald wonthull (bound 9))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/wonthull.scm")
+(comment "Strand count bounded at 9")
+
+(defprotocol wonthull basic
+  (defrole init
+    (vars (a name) (x1 x2 x3 x4 text))
+    (trace (send (cat (enc x1 x2 (pubk a)) (enc x3 x2 (pubk a))))
+      (recv (enc "okay" x3 x4 (pubk a))))
+    (non-orig (privk a))
+    (uniq-orig x1 x2 x3))
+  (defrole resp
+    (vars (a name) (y1 y2 y3 text))
+    (trace (recv (enc y1 y2 (pubk a)))
+      (send (enc "okay" y3 y1 (pubk a)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wonthull
+  (vars (x1 x2 x3 x4 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 x3) (x4 x4) (a a))
+  (non-orig (privk a))
+  (uniq-orig x1 x2 x3)
+  (traces
+    ((send (cat (enc x1 x2 (pubk a)) (enc x3 x2 (pubk a))))
+      (recv (enc "okay" x3 x4 (pubk a)))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (x3 (0 0)) (x2 (0 0)) (x1 (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull
+  (vars (x1 x2 x4 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 x2) (x4 x4) (a a))
+  (non-orig (privk a))
+  (uniq-orig x1 x2)
+  (operation nonce-test (displaced 1 0 init 1) x3 (0 1)
+    (enc x3 x2 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x2 (pubk a)) (enc x2 x2 (pubk a))))
+      (recv (enc "okay" x2 x4 (pubk a)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1))
+  (origs (x1 (0 0)) (x2 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull
+  (vars (x1 x2 x3 x4 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 x3) (x4 x4) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x2) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1 x2 x3)
+  (operation nonce-test (added-strand resp 2) x3 (0 1)
+    (enc x3 x2 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x2 (pubk a)) (enc x3 x2 (pubk a))))
+      (recv (enc "okay" x3 x4 (pubk a))))
+    ((recv (enc x3 x2 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 2)
+  (parent 0)
+  (seen 3)
+  (unrealized (0 1))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull
+  (vars (x1 x2 x4 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 x2) (x4 x4) (a a))
+  (defstrand resp 2 (y1 x2) (y2 x2) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1 x2)
+  (operation nonce-test (added-strand resp 2) x2 (0 1)
+    (enc x1 x2 (pubk a)) (enc x2 x2 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x2 (pubk a)) (enc x2 x2 (pubk a))))
+      (recv (enc "okay" x2 x4 (pubk a))))
+    ((recv (enc x2 x2 (pubk a))) (send (enc "okay" y3 x2 (pubk a)))))
+  (label 3)
+  (parent 1)
+  (unrealized (0 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull
+  (vars (x1 x2 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x2) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1 x2 y3)
+  (operation nonce-test (contracted (x3 y3) (x4 y3)) y3 (0 1)
+    (enc "okay" y3 y3 (pubk a)) (enc y3 x2 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x2 (pubk a)) (enc y3 x2 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x2 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 4)
+  (parent 2)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (x1 x1) (x2 x2) (x3 y3) (x4 y3))))
+  (origs (y3 (0 0)) (x2 (0 0)) (x1 (0 0))))
+
+(defskeleton wonthull
+  (vars (x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 y3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1 y3)
+  (operation nonce-test (contracted (x2 y3) (x4 y3)) y3 (0 1)
+    (enc "okay" y3 y3 (pubk a)) (enc x1 y3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 y3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 5)
+  (parent 3)
+  (seen 4)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull
+  (vars (x1 x2 x4 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 x2) (x4 x4) (a a))
+  (defstrand resp 2 (y1 x2) (y2 x2) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x2) (y2 x2) (y3 x2) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1 x2)
+  (operation nonce-test (added-strand resp 2) x2 (0 1)
+    (enc "okay" y3 x2 (pubk a)) (enc x1 x2 (pubk a))
+    (enc x2 x2 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x2 (pubk a)) (enc x2 x2 (pubk a))))
+      (recv (enc "okay" x2 x4 (pubk a))))
+    ((recv (enc x2 x2 (pubk a))) (send (enc "okay" y3 x2 (pubk a))))
+    ((recv (enc x2 x2 (pubk a))) (send (enc "okay" x2 x2 (pubk a)))))
+  (label 6)
+  (parent 3)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull
+  (vars (x1 x2 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 x2) (x4 x2) (a a))
+  (defstrand resp 2 (y1 x2) (y2 x2) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x2) (y2 x2) (y3 x2) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1 x2)
+  (operation nonce-test (contracted (x4 x2)) x2 (0 1)
+    (enc "okay" x2 x2 (pubk a)) (enc "okay" y3 x2 (pubk a))
+    (enc x1 x2 (pubk a)) (enc x2 x2 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x2 (pubk a)) (enc x2 x2 (pubk a))))
+      (recv (enc "okay" x2 x2 (pubk a))))
+    ((recv (enc x2 x2 (pubk a))) (send (enc "okay" y3 x2 (pubk a))))
+    ((recv (enc x2 x2 (pubk a))) (send (enc "okay" x2 x2 (pubk a)))))
+  (label 7)
+  (parent 6)
+  (seen 5)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol wonthull basic
+  (defrole init
+    (vars (a name) (x1 x2 x3 x4 text))
+    (trace (send (cat (enc x1 x2 (pubk a)) (enc x3 x2 (pubk a))))
+      (recv (enc "okay" x3 x4 (pubk a))))
+    (non-orig (privk a))
+    (uniq-orig x1 x2 x3))
+  (defrole resp
+    (vars (a name) (y1 y2 y3 text))
+    (trace (recv (enc y1 y2 (pubk a)))
+      (send (enc "okay" y3 y1 (pubk a)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wonthull
+  (vars (x1 x3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1 x3)
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a)))))
+  (label 8)
+  (realized)
+  (shape)
+  (maps ((0 1) ((a a) (x1 x1) (x3 x3))))
+  (origs (x3 (0 0)) (x1 (0 0))))
+
+(comment "Nothing left to do")
diff --git a/tst/wonthull2.scm b/tst/wonthull2.scm
new file mode 100644
--- /dev/null
+++ b/tst/wonthull2.scm
@@ -0,0 +1,38 @@
+(herald wonthull2 (bound 9))
+;;;  Wonthull 2:  Demonstrates a subtle incompleteness.
+;;;
+;;;  From Wonthull 1, the difference here is that
+;;; Wonthull 2 should be able to do augmentation with
+;;; non-trivial deorigination immediately after the POV.
+;;;  Interestingly, Wonthull 2 (without deorigination)
+;;; actually finds the missing shape, but via variable
+;;; separation.
+
+(defprotocol wonthull2 basic
+  (defrole init (vars (a name) (x1 x2 x3 x4 text))
+    (trace
+     (send (cat (enc x1 x3 (pubk a)) (enc x3 x2 (pubk a))))
+     (recv (enc "okay" x3 x4 (pubk a)))
+     )
+    (uniq-orig x3)
+    (non-orig (privk a))
+  )
+  (defrole resp (vars (a name) (y1 y2 y3 text))
+     (trace
+       (recv (enc y1 y2 (pubk a)) )
+       (send (enc "okay" y3 y1 (pubk a)) )
+     )
+  )
+)
+
+(defskeleton wonthull2
+  (vars (a name) (n text) (x1 x2 x3 x4 text))
+  (defstrand init 2)
+)
+
+(defskeleton wonthull2
+  (vars (a name) (n text) (x1 x2 x3 x4 text))
+  (defstrand init 2 (x2 x3) (x4 x1))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+)
diff --git a/tst/wonthull2.tst b/tst/wonthull2.tst
new file mode 100644
--- /dev/null
+++ b/tst/wonthull2.tst
@@ -0,0 +1,9658 @@
+(herald wonthull2 (bound 9))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/wonthull2.scm")
+(comment "Strand count bounded at 9")
+
+(defprotocol wonthull2 basic
+  (defrole init
+    (vars (a name) (x1 x2 x3 x4 text))
+    (trace (send (cat (enc x1 x3 (pubk a)) (enc x3 x2 (pubk a))))
+      (recv (enc "okay" x3 x4 (pubk a))))
+    (non-orig (privk a))
+    (uniq-orig x3))
+  (defrole resp
+    (vars (a name) (y1 y2 y3 text))
+    (trace (recv (enc y1 y2 (pubk a)))
+      (send (enc "okay" y3 y1 (pubk a)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wonthull2
+  (vars (x1 x2 x3 x4 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 x3) (x4 x4) (a a))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x2 (pubk a))))
+      (recv (enc "okay" x3 x4 (pubk a)))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (x3 (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x2 x3 x4 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 x3) (x4 x4) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x2) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (0 1)
+    (enc x1 x3 (pubk a)) (enc x3 x2 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x2 (pubk a))))
+      (recv (enc "okay" x3 x4 (pubk a))))
+    ((recv (enc x3 x2 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x2 x4 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 x1) (x4 x4) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (0 1)
+    (enc x1 x1 (pubk a)) (enc x1 x2 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x2 (pubk a))))
+      (recv (enc "okay" x1 x4 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a)))))
+  (label 2)
+  (parent 0)
+  (seen 5)
+  (unrealized (0 1))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x2 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x2) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (x3 y3) (x4 y3)) y3 (0 1)
+    (enc "okay" y3 y3 (pubk a)) (enc x1 y3 (pubk a))
+    (enc y3 x2 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x2 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x2 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 3)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (x1 x1) (x2 x2) (x3 y3) (x4 y3))))
+  (origs (y3 (0 0))))
+
+(defskeleton wonthull2
+  (vars (x1 x2 x3 x4 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 x3) (x4 x4) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x2) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x2) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (0 1)
+    (enc "okay" y3 x3 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x3 x2 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x2 (pubk a))))
+      (recv (enc "okay" x3 x4 (pubk a))))
+    ((recv (enc x3 x2 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x2 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 4)
+  (parent 1)
+  (unrealized (0 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x2 x4 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 x1) (x4 x4) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x2) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (0 1)
+    (enc "okay" y3 x1 (pubk a)) (enc x1 x1 (pubk a))
+    (enc x1 x2 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x2 (pubk a))))
+      (recv (enc "okay" x1 x4 (pubk a))))
+    ((recv (enc x1 x2 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 5)
+  (parent 1)
+  (seen 10)
+  (unrealized (0 1))
+  (comment "4 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x2 y3 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x2) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (x1 y3) (x4 y3)) y3 (0 1)
+    (enc "okay" y3 y3 (pubk a)) (enc y3 x2 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x2 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 6)
+  (parent 2)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x2 x4 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 x1) (x4 x4) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (0 1)
+    (enc "okay" y3 x1 (pubk a)) (enc x1 x1 (pubk a))
+    (enc x1 x2 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x2 (pubk a))))
+      (recv (enc "okay" x1 x4 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 7)
+  (parent 2)
+  (seen 13)
+  (unrealized (0 1))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x2 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x2) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x2) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (x3 x1) (x4 x1)) x1 (0 1)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc x1 x1 (pubk a)) (enc x1 x2 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x2 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x2 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x2 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 8)
+  (parent 4)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x2 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x2) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x2) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (x3 y3) (x4 y3)) y3 (0 1)
+    (enc "okay" x1 y3 (pubk a)) (enc "okay" y3 y3 (pubk a))
+    (enc x1 y3 (pubk a)) (enc y3 x2 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x2 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x2 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x2 (pubk a))) (send (enc "okay" x1 y3 (pubk a)))))
+  (label 9)
+  (parent 4)
+  (seen 3)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x2 x4 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 x1) (x4 x4) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x2) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x2) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (0 1)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc x1 x1 (pubk a)) (enc x1 x2 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x2 (pubk a))))
+      (recv (enc "okay" x1 x4 (pubk a))))
+    ((recv (enc x1 x2 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x2 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 10)
+  (parent 4)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x2 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 y3-0) (x2 x2) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x2) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (contracted (x1 y3-0) (x4 y3-0)) y3-0 (0 1)
+    (enc "okay" y3 y3-0 (pubk a)) (enc "okay" y3-0 y3-0 (pubk a))
+    (enc y3-0 x2 (pubk a)) (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x2 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x2 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a)))))
+  (label 11)
+  (parent 5)
+  (seen 6)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x2 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x2) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x2) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (x1 y3) (x4 y3)) y3 (0 1)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-0 y3 (pubk a))
+    (enc y3 x2 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x2 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x2 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 12)
+  (parent 5)
+  (seen 16)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x2 x4 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 x1) (x4 x4) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x2) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (0 1)
+    (enc "okay" y3 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc x1 x1 (pubk a)) (enc x1 x2 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x2 (pubk a))))
+      (recv (enc "okay" x1 x4 (pubk a))))
+    ((recv (enc x1 x2 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 13)
+  (parent 5)
+  (unrealized (0 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x2 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x2) (x3 y3-0) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3-0) (y3 y3-0) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3 y3-0)
+  (operation generalization separated y3-0)
+  (traces
+    ((send (cat (enc y3 y3-0 (pubk a)) (enc y3-0 x2 (pubk a))))
+      (recv (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 14)
+  (parent 6)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x2 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (x4 x1)) x1 (0 1)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc x1 x1 (pubk a)) (enc x1 x2 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x2 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 15)
+  (parent 7)
+  (seen 6)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x2 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x2) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation generalization deleted (1 0))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x2 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x2 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 16)
+  (parent 8)
+  (seen 3)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x2 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x2) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x2) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (x4 x1)) x1 (0 1)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x1 (pubk a))
+    (enc x1 x2 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x2 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x2 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x2 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 17)
+  (parent 10)
+  (seen 12)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x2 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x2) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x2) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (x4 x1)) x1 (0 1)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x1 (pubk a))
+    (enc x1 x2 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x2 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x2 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 18)
+  (parent 13)
+  (seen 15)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x2 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x2) (x3 y3-0) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3-0) (y3 y3-0) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation generalization forgot y3)
+  (traces
+    ((send (cat (enc y3 y3-0 (pubk a)) (enc y3-0 x2 (pubk a))))
+      (recv (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 19)
+  (parent 14)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (x1 y3) (x2 x2) (x3 y3-0) (x4 y3))))
+  (origs (y3-0 (0 0))))
+
+(comment "Nothing left to do")
+
+(defprotocol wonthull2 basic
+  (defrole init
+    (vars (a name) (x1 x2 x3 x4 text))
+    (trace (send (cat (enc x1 x3 (pubk a)) (enc x3 x2 (pubk a))))
+      (recv (enc "okay" x3 x4 (pubk a))))
+    (non-orig (privk a))
+    (uniq-orig x3))
+  (defrole resp
+    (vars (a name) (y1 y2 y3 text))
+    (trace (recv (enc y1 y2 (pubk a)))
+      (send (enc "okay" y3 y1 (pubk a)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 x3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x3-0)
+  (traces
+    ((send (cat (enc x1-0 x3-0 (pubk a)) (enc x3-0 x3 (pubk a))))
+      (recv (enc "okay" x3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0)))
+      (send (enc "okay" x3 x1 (pubk a-0)))))
+  (label 20)
+  (unrealized (0 1))
+  (origs (x3-0 (0 0)))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 text) (a name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (displaced 2 1 resp 2) x3-0 (0 1)
+    (enc x1-0 x3-0 (pubk a-0)) (enc x3-0 x3 (pubk a-0)))
+  (traces
+    ((send (cat (enc x1-0 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a)))))
+  (label 21)
+  (parent 20)
+  (unrealized (0 1))
+  (origs (x1 (0 0)))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (displaced 2 1 resp 2) x3-0 (0 1)
+    (enc x1-0 x3-0 (pubk a)) (enc x3-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0)))
+      (send (enc "okay" x3 x1 (pubk a-0)))))
+  (label 22)
+  (parent 20)
+  (seen 25)
+  (unrealized (1 0))
+  (origs (x3 (0 0)))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 x3-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3-0) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x3-0)
+  (operation nonce-test (added-strand resp 2) x3-0 (0 1)
+    (enc x1-0 x3-0 (pubk a)) (enc x3-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3-0 (pubk a)) (enc x3-0 x3 (pubk a))))
+      (recv (enc "okay" x3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3-0 x3 (pubk a)))
+      (send (enc "okay" y3 x3-0 (pubk a)))))
+  (label 23)
+  (parent 20)
+  (seen 27)
+  (unrealized (0 1))
+  (comment "5 in cohort - 4 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x1-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1-0)
+  (operation nonce-test (added-strand resp 2) x1-0 (0 1)
+    (enc x1-0 x3 (pubk a)) (enc x1-0 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x1-0 (pubk a)) (enc x1-0 x3 (pubk a))))
+      (recv (enc "okay" x1-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" y3 x1-0 (pubk a)))))
+  (label 24)
+  (parent 20)
+  (seen 26 33)
+  (unrealized (0 1))
+  (comment "5 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (displaced 2 1 resp 2) x1-0 (0 1)
+    (enc "okay" x3 x1-0 (pubk a)) (enc x1-0 x3 (pubk a))
+    (enc x1 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 25)
+  (parent 21)
+  (realized)
+  (shape)
+  (maps ((0 1) ((x1 x3) (x3 x3) (a a) (x1-0 x1) (x3-0 x3) (a-0 a))))
+  (origs (x3 (0 0))))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (0 1)
+    (enc "okay" x3 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a)))))
+  (label 26)
+  (parent 21)
+  (unrealized (0 1))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 text) (a name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (0 1)
+    (enc "okay" x3 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1-0 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a)))))
+  (label 27)
+  (parent 21)
+  (seen 40)
+  (unrealized (0 1))
+  (comment "4 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a)))))
+  (label 28)
+  (parent 22)
+  (realized)
+  (shape)
+  (maps ((0 1) ((x1 x1) (x3 x3) (a a) (x1-0 x1) (x3-0 x3) (a-0 a))))
+  (origs (x3 (0 0))))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0)
+    (enc x3 x3 (pubk a)) (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 29)
+  (parent 22)
+  (unrealized (1 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 x3-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3-0) (y2 x3) (y3 x1-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x3-0)
+  (operation nonce-test (added-strand resp 2) x3-0 (0 1)
+    (enc "okay" y3 x3-0 (pubk a)) (enc x1-0 x3-0 (pubk a))
+    (enc x3-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3-0 (pubk a)) (enc x3-0 x3 (pubk a))))
+      (recv (enc "okay" x3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3-0 x3 (pubk a))) (send (enc "okay" y3 x3-0 (pubk a))))
+    ((recv (enc x3-0 x3 (pubk a)))
+      (send (enc "okay" x1-0 x3-0 (pubk a)))))
+  (label 30)
+  (parent 23)
+  (seen 42)
+  (unrealized (0 1))
+  (comment "5 in cohort - 4 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (x1-0 y3) (x3-0 y3)) y3 (0 1)
+    (enc "okay" y3 y3 (pubk a)) (enc x1 y3 (pubk a))
+    (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 31)
+  (parent 23)
+  (seen 43)
+  (unrealized (1 0))
+  (comment "4 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (displaced 3 1 resp 2) x3-0 (0 1)
+    (enc "okay" y3 x3-0 (pubk a)) (enc x1-0 x3-0 (pubk a))
+    (enc x3-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 32)
+  (parent 23)
+  (seen 29 41)
+  (unrealized (1 0))
+  (comment "4 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x1-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 y3-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1-0)
+  (operation nonce-test (added-strand resp 2) x1-0 (0 1)
+    (enc "okay" y3 x1-0 (pubk a)) (enc x1-0 x3 (pubk a))
+    (enc x1-0 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x1-0 (pubk a)) (enc x1-0 x3 (pubk a))))
+      (recv (enc "okay" x1-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1-0 x3 (pubk a))) (send (enc "okay" y3 x1-0 (pubk a))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" y3-0 x1-0 (pubk a)))))
+  (label 33)
+  (parent 23)
+  (seen 36 40 51)
+  (unrealized (0 1))
+  (comment "6 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x1-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 x1-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1-0)
+  (operation nonce-test (added-strand resp 2) x1-0 (0 1)
+    (enc "okay" y3 x1-0 (pubk a)) (enc x1-0 x3 (pubk a))
+    (enc x1-0 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x1-0 (pubk a)) (enc x1-0 x3 (pubk a))))
+      (recv (enc "okay" x1-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" y3 x1-0 (pubk a))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" x1-0 x1-0 (pubk a)))))
+  (label 34)
+  (parent 24)
+  (seen 57)
+  (unrealized (0 1))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (x1 y3) (x1-0 y3)) y3 (0 1)
+    (enc "okay" y3 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 35)
+  (parent 24)
+  (seen 37)
+  (unrealized (1 0))
+  (comment "4 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x1-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x1-0) (x3 x1-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1-0) (y3 x1-0) (a a-0))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1-0)
+  (operation nonce-test (displaced 3 2 resp 2) x1-0 (0 1)
+    (enc "okay" y3 x1-0 (pubk a)) (enc x1-0 x3 (pubk a))
+    (enc x1-0 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x1-0 (pubk a)) (enc x1-0 x1-0 (pubk a))))
+      (recv (enc "okay" x1-0 x1 (pubk a))))
+    ((recv (enc x1 x1-0 (pubk a-0)))
+      (send (enc "okay" x1-0 x1 (pubk a-0))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" y3 x1-0 (pubk a)))))
+  (label 36)
+  (parent 24)
+  (seen 39)
+  (unrealized (1 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (displaced 3 2 resp 2) x1 (0 1)
+    (enc "okay" x3 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 37)
+  (parent 26)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (0 1)
+    (enc "okay" x3 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 38)
+  (parent 26)
+  (seen 37)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x1) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (displaced 3 2 resp 2) x1 (0 1)
+    (enc "okay" x3 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x1 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a)))))
+  (label 39)
+  (parent 26)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (0 1)
+    (enc "okay" x3 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 40)
+  (parent 26)
+  (seen 39)
+  (unrealized (0 1))
+  (comment "5 in cohort - 4 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (displaced 3 1 resp 2) x1-0 (0 1)
+    (enc "okay" x3 x1-0 (pubk a)) (enc "okay" y3 x1-0 (pubk a))
+    (enc x1-0 x3 (pubk a)) (enc x1 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 41)
+  (parent 27)
+  (seen 25)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 text) (a name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (0 1)
+    (enc "okay" x3 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1-0 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1-0 x1 (pubk a)))))
+  (label 42)
+  (parent 27)
+  (unrealized (0 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (displaced 3 2 resp 2) x1-0 (0 1)
+    (enc "okay" x3 x1-0 (pubk a)) (enc "okay" y3 x1-0 (pubk a))
+    (enc x1-0 x3 (pubk a)) (enc x1 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 43)
+  (parent 27)
+  (realized)
+  (shape)
+  (maps ((0 1) ((x1 y3) (x3 x3) (a a) (x1-0 x1) (x3-0 y3) (a-0 a))))
+  (origs (y3 (0 0))))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc "okay" y3 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 44)
+  (parent 29)
+  (seen 28)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x3) (a-0 a)) x3 (1 0)
+    (enc "okay" y3 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 45)
+  (parent 29)
+  (seen 25)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0)
+    (enc "okay" y3 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1-0 x3 (pubk a)))))
+  (label 46)
+  (parent 29)
+  (unrealized (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0)
+    (enc "okay" y3 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 47)
+  (parent 29)
+  (seen 78)
+  (unrealized (1 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (x1-0 y3) (x3-0 y3)) y3 (0 1)
+    (enc "okay" x1 y3 (pubk a)) (enc "okay" y3 y3 (pubk a))
+    (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a)))))
+  (label 48)
+  (parent 30)
+  (seen 54 74)
+  (unrealized (1 0))
+  (comment "5 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (x1-0 x1) (x3-0 x1)) x1 (0 1)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 49)
+  (parent 30)
+  (seen 75)
+  (unrealized (1 0))
+  (comment "5 in cohort - 4 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (displaced 4 1 resp 2) x3-0 (0 1)
+    (enc "okay" x1-0 x3-0 (pubk a)) (enc "okay" y3 x3-0 (pubk a))
+    (enc x1-0 x3-0 (pubk a)) (enc x3-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1-0 x3 (pubk a)))))
+  (label 50)
+  (parent 30)
+  (seen 73)
+  (unrealized (1 0))
+  (comment "5 in cohort - 4 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x1-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1-0) (y2 x3) (y3 x1-0) (a a))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 y3-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1-0)
+  (operation nonce-test (added-strand resp 2) x1-0 (0 1)
+    (enc "okay" x1-0 x1-0 (pubk a)) (enc "okay" y3 x1-0 (pubk a))
+    (enc x1-0 x3 (pubk a)) (enc x1-0 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x1-0 (pubk a)) (enc x1-0 x3 (pubk a))))
+      (recv (enc "okay" x1-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1-0 x3 (pubk a))) (send (enc "okay" y3 x1-0 (pubk a))))
+    ((recv (enc x1-0 x3 (pubk a)))
+      (send (enc "okay" x1-0 x1-0 (pubk a))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" y3-0 x1-0 (pubk a)))))
+  (label 51)
+  (parent 30)
+  (seen 61)
+  (unrealized (0 1))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (displaced 3 2 resp 2) y3 (1 0)
+    (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 52)
+  (parent 31)
+  (unrealized (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 53)
+  (parent 31)
+  (seen 94)
+  (unrealized (1 0))
+  (comment "4 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a)))))
+  (label 54)
+  (parent 31)
+  (seen 95 98)
+  (unrealized (1 0))
+  (comment "4 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 55)
+  (parent 32)
+  (seen 28)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0)
+    (enc x3 x3 (pubk a)) (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a)))))
+  (label 56)
+  (parent 32)
+  (seen 29)
+  (unrealized (1 0))
+  (comment "5 in cohort - 4 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x1-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 x1-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1-0)
+  (operation nonce-test (added-strand resp 2) x1-0 (0 1)
+    (enc "okay" y3 x1-0 (pubk a)) (enc "okay" y3-0 x1-0 (pubk a))
+    (enc x1-0 x3 (pubk a)) (enc x1-0 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x1-0 (pubk a)) (enc x1-0 x3 (pubk a))))
+      (recv (enc "okay" x1-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1-0 x3 (pubk a))) (send (enc "okay" y3 x1-0 (pubk a))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" y3-0 x1-0 (pubk a))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" x1-0 x1-0 (pubk a)))))
+  (label 57)
+  (parent 33)
+  (seen 61)
+  (unrealized (0 1))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (contracted (x1 y3-0) (x1-0 y3-0)) y3-0 (0 1)
+    (enc "okay" y3 y3-0 (pubk a)) (enc "okay" y3-0 y3-0 (pubk a))
+    (enc y3-0 x3 (pubk a)) (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a-0)))
+      (send (enc "okay" x3 y3-0 (pubk a-0))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a)))))
+  (label 58)
+  (parent 33)
+  (seen 64 71)
+  (unrealized (1 0))
+  (comment "5 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (x1 y3) (x1-0 y3)) y3 (0 1)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-0 y3 (pubk a))
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 59)
+  (parent 33)
+  (seen 54 72)
+  (unrealized (1 0))
+  (comment "5 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (x1-0 x1)) x1 (0 1)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 60)
+  (parent 34)
+  (seen 38 63)
+  (unrealized (1 0))
+  (comment "5 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x1-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x1-0) (x3 x1-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1-0) (y3 x1-0) (a a-0))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 x1-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1-0)
+  (operation nonce-test (displaced 4 3 resp 2) x1-0 (0 1)
+    (enc "okay" x1-0 x1-0 (pubk a)) (enc "okay" y3 x1-0 (pubk a))
+    (enc x1-0 x3 (pubk a)) (enc x1-0 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x1-0 (pubk a)) (enc x1-0 x1-0 (pubk a))))
+      (recv (enc "okay" x1-0 x1 (pubk a))))
+    ((recv (enc x1 x1-0 (pubk a-0)))
+      (send (enc "okay" x1-0 x1 (pubk a-0))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" y3 x1-0 (pubk a))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" x1-0 x1-0 (pubk a)))))
+  (label 61)
+  (parent 34)
+  (unrealized (1 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (displaced 3 2 resp 2) y3 (1 0)
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 62)
+  (parent 35)
+  (unrealized (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 63)
+  (parent 35)
+  (seen 120)
+  (unrealized (1 0))
+  (comment "4 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 64)
+  (parent 35)
+  (seen 121 124)
+  (unrealized (1 0))
+  (comment "4 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x1-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x1-0) (x3 x1-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1-0) (y3 x1-0) (a a-0))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1-0)
+  (operation nonce-test (displaced 3 2 resp 2) x1-0 (1 0)
+    (enc x1-0 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x1-0 (pubk a)) (enc x1-0 x1-0 (pubk a))))
+      (recv (enc "okay" x1-0 x1 (pubk a))))
+    ((recv (enc x1 x1-0 (pubk a-0)))
+      (send (enc "okay" x1-0 x1 (pubk a-0))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" y3 x1-0 (pubk a)))))
+  (label 65)
+  (parent 36)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x1-0 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x1-0) (x3 x1-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1-0) (y3 x1-0) (a a-0))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1-0)
+  (operation nonce-test (added-strand resp 2) x1-0 (1 0)
+    (enc x1-0 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x1-0 (pubk a)) (enc x1-0 x1-0 (pubk a))))
+      (recv (enc "okay" x1-0 x1 (pubk a))))
+    ((recv (enc x1 x1-0 (pubk a-0)))
+      (send (enc "okay" x1-0 x1 (pubk a-0))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" y3 x1-0 (pubk a))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" y3-0 x1-0 (pubk a)))))
+  (label 66)
+  (parent 36)
+  (seen 65)
+  (unrealized (1 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3-0) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3-0) (y3 y3-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation generalization separated y3-0)
+  (traces
+    ((send (cat (enc y3 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 67)
+  (parent 37)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x1) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x1 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 68)
+  (parent 39)
+  (seen 25)
+  (realized)
+  (origs (x1 (0 0)))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (0 1)
+    (enc "okay" x3 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 69)
+  (parent 40)
+  (seen 75)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (0 1)
+    (enc "okay" x3 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 70)
+  (parent 40)
+  (seen 71)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (displaced 4 2 resp 2) x1 (0 1)
+    (enc "okay" x3 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 71)
+  (parent 40)
+  (seen 37)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (displaced 4 3 resp 2) x1 (0 1)
+    (enc "okay" x3 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" x3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a)))))
+  (label 72)
+  (parent 40)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (displaced 4 1 resp 2) x1-0 (0 1)
+    (enc "okay" x3 x1-0 (pubk a)) (enc "okay" x1 x1-0 (pubk a))
+    (enc "okay" y3 x1-0 (pubk a)) (enc x1-0 x3 (pubk a))
+    (enc x1 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 73)
+  (parent 42)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (displaced 4 2 resp 2) x1-0 (0 1)
+    (enc "okay" x3 x1-0 (pubk a)) (enc "okay" x1 x1-0 (pubk a))
+    (enc "okay" y3 x1-0 (pubk a)) (enc x1-0 x3 (pubk a))
+    (enc x1 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a)))))
+  (label 74)
+  (parent 42)
+  (seen 43)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (displaced 4 3 resp 2) x1-0 (0 1)
+    (enc "okay" x3 x1-0 (pubk a)) (enc "okay" x1 x1-0 (pubk a))
+    (enc "okay" y3 x1-0 (pubk a)) (enc x1-0 x3 (pubk a))
+    (enc x1 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 75)
+  (parent 42)
+  (seen 132)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x3) (a-0 a)) x3 (1 0)
+    (enc "okay" x1 x3 (pubk a)) (enc "okay" y3 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 76)
+  (parent 46)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc "okay" x1 x3 (pubk a)) (enc "okay" y3 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 77)
+  (parent 46)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0)
+    (enc "okay" x1-0 x3 (pubk a)) (enc "okay" y3 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 78)
+  (parent 46)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x3) (a-0 a)) x3 (1 0)
+    (enc "okay" x3 x3 (pubk a)) (enc "okay" y3 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 79)
+  (parent 47)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc "okay" x3 x3 (pubk a)) (enc "okay" y3 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 80)
+  (parent 47)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (displaced 4 2 resp 2) y3 (1 0)
+    (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a)))))
+  (label 81)
+  (parent 48)
+  (unrealized (1 0))
+  (comment "4 in cohort - 4 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (displaced 4 3 resp 2) y3 (1 0)
+    (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a)))))
+  (label 82)
+  (parent 48)
+  (seen 96 140 143)
+  (unrealized (1 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 83)
+  (parent 48)
+  (seen 96 98 142)
+  (unrealized (1 0))
+  (comment "5 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 84)
+  (parent 49)
+  (seen 98)
+  (unrealized (1 0))
+  (comment "5 in cohort - 4 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (displaced 4 2 resp 2) x1 (1 0)
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 85)
+  (parent 49)
+  (seen 98)
+  (unrealized (1 0))
+  (comment "4 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (displaced 4 3 resp 2) x1 (1 0)
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 86)
+  (parent 49)
+  (seen 149 153)
+  (unrealized (1 0))
+  (comment "4 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 87)
+  (parent 49)
+  (seen 85 150 155)
+  (unrealized (1 0))
+  (comment "5 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 88)
+  (parent 50)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (displaced 4 2 resp 2) x3 (1 0)
+    (enc x3 x3 (pubk a)) (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1-0 x3 (pubk a)))))
+  (label 89)
+  (parent 50)
+  (seen 46)
+  (unrealized (1 0))
+  (comment "5 in cohort - 4 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (displaced 4 3 resp 2) x3 (1 0)
+    (enc x3 x3 (pubk a)) (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1-0 x3 (pubk a)))))
+  (label 90)
+  (parent 50)
+  (seen 46 103)
+  (unrealized (1 0))
+  (comment "4 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0)
+    (enc x3 x3 (pubk a)) (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a)))))
+  (label 91)
+  (parent 50)
+  (seen 89 103)
+  (unrealized (1 0))
+  (comment "6 in cohort - 4 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (x1-0 x1)) x1 (0 1)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 92)
+  (parent 51)
+  (seen 69 84 111)
+  (unrealized (1 0))
+  (comment "6 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc x1 y3 (pubk a))
+    (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 93)
+  (parent 52)
+  (seen 43)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc x1 y3 (pubk a))
+    (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 94)
+  (parent 52)
+  (unrealized (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a)))))
+  (label 95)
+  (parent 52)
+  (seen 174)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3-0 y3 (pubk a)) (enc x1 y3 (pubk a))
+    (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a)))))
+  (label 96)
+  (parent 53)
+  (seen 173)
+  (unrealized (1 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3-0 y3 (pubk a)) (enc x1 y3 (pubk a))
+    (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 97)
+  (parent 53)
+  (seen 43)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" y3 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 98)
+  (parent 53)
+  (seen 174 177)
+  (unrealized (1 0))
+  (comment "4 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" y3 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 99)
+  (parent 54)
+  (seen 178)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" y3 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a)))))
+  (label 100)
+  (parent 54)
+  (seen 132)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc "okay" y3-0 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a)))))
+  (label 101)
+  (parent 56)
+  (seen 44)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x3) (a-0 a)) x3 (1 0)
+    (enc "okay" y3-0 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a)))))
+  (label 102)
+  (parent 56)
+  (seen 45)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0)
+    (enc "okay" y3-0 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1-0 x3 (pubk a)))))
+  (label 103)
+  (parent 56)
+  (seen 46)
+  (unrealized (1 0))
+  (comment "4 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0)
+    (enc "okay" y3-0 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 104)
+  (parent 56)
+  (seen 47 183)
+  (unrealized (1 0))
+  (comment "4 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (x1-0 x1)) x1 (0 1)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 105)
+  (parent 57)
+  (seen 70 107 114)
+  (unrealized (1 0))
+  (comment "6 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (displaced 4 3 resp 2) y3-0 (1 0)
+    (enc y3-0 x3 (pubk a)) (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a-0)))
+      (send (enc "okay" x3 y3-0 (pubk a-0))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a)))))
+  (label 106)
+  (parent 58)
+  (seen 121)
+  (unrealized (1 0))
+  (comment "4 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (added-strand resp 2) y3-0 (1 0)
+    (enc y3-0 x3 (pubk a)) (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a-0)))
+      (send (enc "okay" x3 y3-0 (pubk a-0))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-1 y3-0 (pubk a)))))
+  (label 107)
+  (parent 58)
+  (seen 124 189)
+  (unrealized (1 0))
+  (comment "5 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (added-strand resp 2) y3-0 (1 0)
+    (enc y3-0 x3 (pubk a)) (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a-0)))
+      (send (enc "okay" x3 y3-0 (pubk a-0))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a)))
+      (send (enc "okay" y3-1 y3-0 (pubk a)))))
+  (label 108)
+  (parent 58)
+  (seen 64 191 194)
+  (unrealized (1 0))
+  (comment "5 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a)))))
+  (label 109)
+  (parent 59)
+  (seen 54)
+  (unrealized (1 0))
+  (comment "5 in cohort - 4 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (displaced 4 2 resp 2) y3 (1 0)
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 110)
+  (parent 59)
+  (seen 95 199)
+  (unrealized (1 0))
+  (comment "4 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a)))))
+  (label 111)
+  (parent 59)
+  (seen 98 200 202)
+  (unrealized (1 0))
+  (comment "5 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (displaced 4 3 resp 2) x1 (1 0)
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 112)
+  (parent 60)
+  (seen 120)
+  (unrealized (1 0))
+  (comment "4 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 113)
+  (parent 60)
+  (seen 63 206)
+  (unrealized (1 0))
+  (comment "5 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 114)
+  (parent 60)
+  (seen 124 207 210)
+  (unrealized (1 0))
+  (comment "5 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x1-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x1-0) (x3 x1-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1-0) (y3 x1-0) (a a-0))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 x1-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1-0)
+  (operation nonce-test (displaced 4 2 resp 2) x1-0 (1 0)
+    (enc x1-0 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x1-0 (pubk a)) (enc x1-0 x1-0 (pubk a))))
+      (recv (enc "okay" x1-0 x1 (pubk a))))
+    ((recv (enc x1 x1-0 (pubk a-0)))
+      (send (enc "okay" x1-0 x1 (pubk a-0))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" y3 x1-0 (pubk a))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" x1-0 x1-0 (pubk a)))))
+  (label 115)
+  (parent 61)
+  (seen 128)
+  (unrealized (1 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x1) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x1 (1 0)
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x1 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 116)
+  (parent 61)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x1-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x1-0) (x3 x1-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1-0) (y3 x1-0) (a a-0))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 x1-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1-0)
+  (operation nonce-test (displaced 4 3 resp 2) x1-0 (1 0)
+    (enc x1-0 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x1-0 (pubk a)) (enc x1-0 x1-0 (pubk a))))
+      (recv (enc "okay" x1-0 x1 (pubk a))))
+    ((recv (enc x1 x1-0 (pubk a-0)))
+      (send (enc "okay" x1-0 x1 (pubk a-0))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" y3 x1-0 (pubk a))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" x1-0 x1-0 (pubk a)))))
+  (label 117)
+  (parent 61)
+  (seen 128 130)
+  (unrealized (1 0))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x1-0 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x1-0) (x3 x1-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1-0) (y3 x1-0) (a a-0))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 x1-0) (a a))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1-0)
+  (operation nonce-test (added-strand resp 2) x1-0 (1 0)
+    (enc x1-0 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x1-0 (pubk a)) (enc x1-0 x1-0 (pubk a))))
+      (recv (enc "okay" x1-0 x1 (pubk a))))
+    ((recv (enc x1 x1-0 (pubk a-0)))
+      (send (enc "okay" x1-0 x1 (pubk a-0))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" y3 x1-0 (pubk a))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" x1-0 x1-0 (pubk a))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" y3-0 x1-0 (pubk a)))))
+  (label 118)
+  (parent 61)
+  (seen 115 130)
+  (unrealized (1 0))
+  (comment "4 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 119)
+  (parent 62)
+  (seen 37)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 120)
+  (parent 62)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 121)
+  (parent 62)
+  (seen 220)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3-0 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 122)
+  (parent 63)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3-0 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 123)
+  (parent 63)
+  (seen 37)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3-0 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a)))))
+  (label 124)
+  (parent 63)
+  (seen 220 223)
+  (unrealized (1 0))
+  (comment "4 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3-0 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 125)
+  (parent 64)
+  (seen 225)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3-0 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 126)
+  (parent 64)
+  (seen 37)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x1) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x1 (1 0)
+    (enc "okay" y3 x1 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x1 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a)))))
+  (label 127)
+  (parent 65)
+  (seen 68)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x1-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x1-0) (x3 x1-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1-0) (y3 x1-0) (a a-0))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 x1-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1-0)
+  (operation nonce-test (added-strand resp 2) x1-0 (1 0)
+    (enc "okay" y3 x1-0 (pubk a)) (enc x1-0 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x1-0 (pubk a)) (enc x1-0 x1-0 (pubk a))))
+      (recv (enc "okay" x1-0 x1 (pubk a))))
+    ((recv (enc x1 x1-0 (pubk a-0)))
+      (send (enc "okay" x1-0 x1 (pubk a-0))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" y3 x1-0 (pubk a))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" x1-0 x1-0 (pubk a)))))
+  (label 128)
+  (parent 65)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x1) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x1 (1 0)
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x1 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 129)
+  (parent 66)
+  (seen 127)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x1-0 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x1-0) (x3 x1-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1-0) (y3 x1-0) (a a-0))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 x1-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1-0)
+  (operation nonce-test (added-strand resp 2) x1-0 (1 0)
+    (enc "okay" y3-0 x1-0 (pubk a)) (enc x1-0 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x1-0 (pubk a)) (enc x1-0 x1-0 (pubk a))))
+      (recv (enc "okay" x1-0 x1 (pubk a))))
+    ((recv (enc x1 x1-0 (pubk a-0)))
+      (send (enc "okay" x1-0 x1 (pubk a-0))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" y3 x1-0 (pubk a))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" y3-0 x1-0 (pubk a))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" x1-0 x1-0 (pubk a)))))
+  (label 130)
+  (parent 66)
+  (seen 128)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3-0) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 y3-0) (y3 y3-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a) (privk a-0))
+  (uniq-orig y3-0)
+  (operation generalization separated a-0)
+  (traces
+    ((send (cat (enc y3 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 131)
+  (parent 67)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 132)
+  (parent 72)
+  (seen 43)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 133)
+  (parent 73)
+  (seen 25)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 134)
+  (parent 76)
+  (seen 25)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 135)
+  (parent 77)
+  (seen 28)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x3) (a-0 a)) x3 (1 0)
+    (enc "okay" x3 x3 (pubk a)) (enc "okay" x1 x3 (pubk a))
+    (enc "okay" y3 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 136)
+  (parent 78)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc "okay" x3 x3 (pubk a)) (enc "okay" x1 x3 (pubk a))
+    (enc "okay" y3 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 137)
+  (parent 78)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 138)
+  (parent 79)
+  (seen 25)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 139)
+  (parent 80)
+  (seen 28)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (displaced 4 3 resp 2) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc x1 y3 (pubk a))
+    (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a)))))
+  (label 140)
+  (parent 81)
+  (seen 95 173)
+  (unrealized (1 0))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc x1 y3 (pubk a))
+    (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a)))))
+  (label 141)
+  (parent 81)
+  (seen 93)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc x1 y3 (pubk a))
+    (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 142)
+  (parent 81)
+  (seen 173 177)
+  (unrealized (1 0))
+  (comment "4 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a)))))
+  (label 143)
+  (parent 81)
+  (seen 177)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" x1 y3 (pubk a)) (enc x1 y3 (pubk a))
+    (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a)))))
+  (label 144)
+  (parent 82)
+  (seen 43)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3-0 y3 (pubk a)) (enc x1 y3 (pubk a))
+    (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a)))))
+  (label 145)
+  (parent 83)
+  (seen 177 233)
+  (unrealized (1 0))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3-0 y3 (pubk a)) (enc x1 y3 (pubk a))
+    (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 146)
+  (parent 83)
+  (seen 97)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 147)
+  (parent 84)
+  (seen 178)
+  (unrealized (1 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 148)
+  (parent 84)
+  (seen 100)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (displaced 5 3 resp 2) x1 (1 0)
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 149)
+  (parent 84)
+  (seen 174)
+  (unrealized (1 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 150)
+  (parent 84)
+  (seen 98 238 240)
+  (unrealized (1 0))
+  (comment "5 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" y3 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 151)
+  (parent 85)
+  (seen 177)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" y3 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 152)
+  (parent 85)
+  (seen 132)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (displaced 4 3 resp 2) x1 (1 0)
+    (enc "okay" y3 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 153)
+  (parent 85)
+  (seen 174)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 154)
+  (parent 86)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 155)
+  (parent 86)
+  (seen 153 240)
+  (unrealized (1 0))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 156)
+  (parent 87)
+  (seen 151 242)
+  (unrealized (1 0))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 157)
+  (parent 87)
+  (seen 152)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 158)
+  (parent 88)
+  (seen 28)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc "okay" y3 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 159)
+  (parent 89)
+  (seen 158)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x3) (a-0 a)) x3 (1 0)
+    (enc "okay" y3 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 160)
+  (parent 89)
+  (seen 133)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0)
+    (enc "okay" y3 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1-0 x3 (pubk a)))))
+  (label 161)
+  (parent 89)
+  (unrealized (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0)
+    (enc "okay" y3 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 162)
+  (parent 89)
+  (seen 78 250)
+  (unrealized (1 0))
+  (comment "4 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc "okay" x1 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 163)
+  (parent 90)
+  (seen 135)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x3) (a-0 a)) x3 (1 0)
+    (enc "okay" x1 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 164)
+  (parent 90)
+  (seen 134)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0)
+    (enc "okay" y3-0 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1-0 x3 (pubk a)))))
+  (label 165)
+  (parent 91)
+  (seen 161)
+  (unrealized (1 0))
+  (comment "4 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc "okay" y3-0 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a)))))
+  (label 166)
+  (parent 91)
+  (seen 159)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x3) (a-0 a)) x3 (1 0)
+    (enc "okay" y3-0 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a)))))
+  (label 167)
+  (parent 91)
+  (seen 160)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0)
+    (enc "okay" y3-0 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 168)
+  (parent 91)
+  (seen 162 183 255)
+  (unrealized (1 0))
+  (comment "5 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (0 1))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 169)
+  (parent 92)
+  (seen 84 200)
+  (unrealized (1 0))
+  (comment "6 in cohort - 4 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (displaced 5 3 resp 2) x1 (1 0)
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 170)
+  (parent 92)
+  (seen 149 202 260)
+  (unrealized (1 0))
+  (comment "5 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (0 1))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 171)
+  (parent 92)
+  (seen 111 150 261 263)
+  (unrealized (1 0))
+  (comment "6 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-0 y3 (pubk a))
+    (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 172)
+  (parent 94)
+  (seen 93)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-0 y3 (pubk a))
+    (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a)))))
+  (label 173)
+  (parent 94)
+  (seen 174)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 174)
+  (parent 94)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a)))))
+  (label 175)
+  (parent 95)
+  (seen 245)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" x1 y3 (pubk a)) (enc "okay" y3-0 y3 (pubk a))
+    (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a)))))
+  (label 176)
+  (parent 96)
+  (seen 144)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 177)
+  (parent 96)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" y3 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 178)
+  (parent 98)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" y3 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 179)
+  (parent 98)
+  (seen 100)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 180)
+  (parent 99)
+  (seen 219)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc "okay" x1 x3 (pubk a)) (enc "okay" y3-0 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 181)
+  (parent 103)
+  (seen 77)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x3) (a-0 a)) x3 (1 0)
+    (enc "okay" x1 x3 (pubk a)) (enc "okay" y3-0 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 182)
+  (parent 103)
+  (seen 76)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0)
+    (enc "okay" x1-0 x3 (pubk a)) (enc "okay" y3-0 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 183)
+  (parent 103)
+  (seen 78)
+  (unrealized (1 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc "okay" x3 x3 (pubk a)) (enc "okay" y3-0 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 184)
+  (parent 104)
+  (seen 80)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x3) (a-0 a)) x3 (1 0)
+    (enc "okay" x3 x3 (pubk a)) (enc "okay" y3-0 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 185)
+  (parent 104)
+  (seen 79)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (displaced 5 4 resp 2) x1 (1 0)
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 186)
+  (parent 105)
+  (seen 189 207)
+  (unrealized (1 0))
+  (comment "5 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (0 1))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 187)
+  (parent 105)
+  (seen 107 210 273)
+  (unrealized (1 0))
+  (comment "6 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (0 1))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 188)
+  (parent 105)
+  (seen 114 194 274 277)
+  (unrealized (1 0))
+  (comment "6 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (added-strand resp 2) y3-0 (1 0)
+    (enc "okay" y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))
+    (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a-0)))
+      (send (enc "okay" x3 y3-0 (pubk a-0))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-1 y3-0 (pubk a)))))
+  (label 189)
+  (parent 106)
+  (seen 220)
+  (unrealized (1 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (contracted (a-0 a)) y3-0 (1 0)
+    (enc "okay" y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))
+    (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" x3 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a)))))
+  (label 190)
+  (parent 106)
+  (seen 119)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (added-strand resp 2) y3-0 (1 0)
+    (enc "okay" y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))
+    (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a-0)))
+      (send (enc "okay" x3 y3-0 (pubk a-0))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a)))
+      (send (enc "okay" y3-1 y3-0 (pubk a)))))
+  (label 191)
+  (parent 106)
+  (seen 121 281)
+  (unrealized (1 0))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (added-strand resp 2) y3-0 (1 0)
+    (enc "okay" y3-1 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))
+    (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a-0)))
+      (send (enc "okay" x3 y3-0 (pubk a-0))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-1 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a)))))
+  (label 192)
+  (parent 107)
+  (seen 223)
+  (unrealized (1 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (contracted (a-0 a)) y3-0 (1 0)
+    (enc "okay" y3-1 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))
+    (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" x3 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-1 y3-0 (pubk a)))))
+  (label 193)
+  (parent 107)
+  (seen 123)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 y3-2 text) (a a-0 name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (added-strand resp 2) y3-0 (1 0)
+    (enc "okay" y3-1 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))
+    (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a-0)))
+      (send (enc "okay" x3 y3-0 (pubk a-0))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-1 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a)))
+      (send (enc "okay" y3-2 y3-0 (pubk a)))))
+  (label 194)
+  (parent 107)
+  (seen 124 281 284)
+  (unrealized (1 0))
+  (comment "5 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (added-strand resp 2) y3-0 (1 0)
+    (enc "okay" y3-1 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))
+    (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a-0)))
+      (send (enc "okay" x3 y3-0 (pubk a-0))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a)))
+      (send (enc "okay" y3-1 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a)))))
+  (label 195)
+  (parent 108)
+  (seen 125 286)
+  (unrealized (1 0))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (contracted (a-0 a)) y3-0 (1 0)
+    (enc "okay" y3-1 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))
+    (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" x3 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a)))
+      (send (enc "okay" y3-1 y3-0 (pubk a)))))
+  (label 196)
+  (parent 108)
+  (seen 126)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3-1 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 197)
+  (parent 109)
+  (seen 99)
+  (unrealized (1 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3-1 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a)))))
+  (label 198)
+  (parent 109)
+  (seen 100)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (displaced 5 2 resp 2) y3 (1 0)
+    (enc "okay" y3-1 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a)))))
+  (label 199)
+  (parent 109)
+  (seen 95)
+  (unrealized (1 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 y3-2 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3-1 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-2 y3 (pubk a)))))
+  (label 200)
+  (parent 109)
+  (seen 98 289 291)
+  (unrealized (1 0))
+  (comment "5 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 201)
+  (parent 110)
+  (seen 245)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a)))))
+  (label 202)
+  (parent 110)
+  (seen 174 291)
+  (unrealized (1 0))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3-1 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 203)
+  (parent 111)
+  (seen 177 293)
+  (unrealized (1 0))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3-1 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a)))))
+  (label 204)
+  (parent 111)
+  (seen 152)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 205)
+  (parent 112)
+  (seen 119)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 206)
+  (parent 112)
+  (seen 120)
+  (unrealized (1 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 207)
+  (parent 112)
+  (seen 220 297)
+  (unrealized (1 0))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 208)
+  (parent 113)
+  (seen 122)
+  (unrealized (1 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 209)
+  (parent 113)
+  (seen 123)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 210)
+  (parent 113)
+  (seen 124 297 300)
+  (unrealized (1 0))
+  (comment "5 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 211)
+  (parent 114)
+  (seen 225 302)
+  (unrealized (1 0))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 212)
+  (parent 114)
+  (seen 126)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x1) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x1 (1 0)
+    (enc "okay" y3 x1 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x1 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 213)
+  (parent 115)
+  (seen 215)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x1-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x1-0) (x3 x1-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1-0) (y3 x1-0) (a a-0))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 x1-0) (a a))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 x1-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1-0)
+  (operation nonce-test (added-strand resp 2) x1-0 (1 0)
+    (enc "okay" y3 x1-0 (pubk a)) (enc x1-0 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x1-0 (pubk a)) (enc x1-0 x1-0 (pubk a))))
+      (recv (enc "okay" x1-0 x1 (pubk a))))
+    ((recv (enc x1 x1-0 (pubk a-0)))
+      (send (enc "okay" x1-0 x1 (pubk a-0))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" y3 x1-0 (pubk a))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" x1-0 x1-0 (pubk a))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" x1-0 x1-0 (pubk a)))))
+  (label 214)
+  (parent 115)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x1) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x1 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 215)
+  (parent 116)
+  (seen 68)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x1) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x1 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 216)
+  (parent 117)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x1-0 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x1-0) (x3 x1-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1-0) (y3 x1-0) (a a-0))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 x1-0) (a a))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1-0) (y2 x1-0) (y3 x1-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1-0)
+  (operation nonce-test (added-strand resp 2) x1-0 (1 0)
+    (enc "okay" y3-0 x1-0 (pubk a)) (enc x1-0 x1-0 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x1-0 (pubk a)) (enc x1-0 x1-0 (pubk a))))
+      (recv (enc "okay" x1-0 x1 (pubk a))))
+    ((recv (enc x1 x1-0 (pubk a-0)))
+      (send (enc "okay" x1-0 x1 (pubk a-0))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" y3 x1-0 (pubk a))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" x1-0 x1-0 (pubk a))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" y3-0 x1-0 (pubk a))))
+    ((recv (enc x1-0 x1-0 (pubk a)))
+      (send (enc "okay" x1-0 x1-0 (pubk a)))))
+  (label 217)
+  (parent 118)
+  (seen 214)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x1) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x1 (1 0)
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x1 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 218)
+  (parent 118)
+  (seen 213)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-0 y3 (pubk a))
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 219)
+  (parent 120)
+  (seen 119)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-0 y3 (pubk a))
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a)))))
+  (label 220)
+  (parent 120)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-0 y3 (pubk a))
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 221)
+  (parent 121)
+  (seen 119)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-0 y3 (pubk a))
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 222)
+  (parent 122)
+  (seen 219)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-0 y3 (pubk a))
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a)))))
+  (label 223)
+  (parent 122)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3-0 y3 (pubk a)) (enc "okay" y3-1 y3 (pubk a))
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a)))))
+  (label 224)
+  (parent 124)
+  (seen 126)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3-0 y3 (pubk a)) (enc "okay" y3-1 y3 (pubk a))
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 225)
+  (parent 124)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-0 y3 (pubk a))
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 226)
+  (parent 125)
+  (seen 244)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x1) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x1 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 227)
+  (parent 128)
+  (seen 305)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x1) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x1 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 228)
+  (parent 130)
+  (seen 227)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3-0) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 y3-0) (y3 y3-0) (a a))
+  (precedes ((0 0) (1 0)) ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation generalization forgot (privk a-0))
+  (traces
+    ((send (cat (enc y3 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 229)
+  (parent 131)
+  (realized)
+  (shape)
+  (maps ((0 1) ((x1 y3) (x3 x3) (a a) (x1-0 y3) (x3-0 y3-0) (a-0 a-0))))
+  (origs (y3-0 (0 0))))
+
+(defskeleton wonthull2
+  (vars (x3 x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 230)
+  (parent 136)
+  (seen 138)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 231)
+  (parent 137)
+  (seen 139)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" x1 y3 (pubk a)) (enc "okay" y3 y3 (pubk a))
+    (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a)))))
+  (label 232)
+  (parent 140)
+  (seen 93)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-0 y3 (pubk a))
+    (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a)))))
+  (label 233)
+  (parent 142)
+  (seen 177)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-0 y3 (pubk a))
+    (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 234)
+  (parent 142)
+  (seen 172)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a)))))
+  (label 235)
+  (parent 143)
+  (seen 100)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" x1 y3 (pubk a)) (enc "okay" y3-0 y3 (pubk a))
+    (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a)))))
+  (label 236)
+  (parent 145)
+  (seen 176)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 237)
+  (parent 147)
+  (seen 180)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 238)
+  (parent 147)
+  (seen 178)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 239)
+  (parent 149)
+  (seen 175)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 240)
+  (parent 149)
+  (seen 174)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" y3-0 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 241)
+  (parent 150)
+  (seen 179)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" y3-0 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 242)
+  (parent 150)
+  (seen 177)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 243)
+  (parent 151)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 244)
+  (parent 153)
+  (seen 245)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 245)
+  (parent 154)
+  (seen 132)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 246)
+  (parent 155)
+  (seen 244)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 247)
+  (parent 156)
+  (seen 243)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x3) (a-0 a)) x3 (1 0)
+    (enc "okay" x1 x3 (pubk a)) (enc "okay" y3 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 248)
+  (parent 161)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc "okay" x1 x3 (pubk a)) (enc "okay" y3 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 249)
+  (parent 161)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0)
+    (enc "okay" x1-0 x3 (pubk a)) (enc "okay" y3 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 250)
+  (parent 161)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc "okay" x3 x3 (pubk a)) (enc "okay" y3 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 251)
+  (parent 162)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x3) (a-0 a)) x3 (1 0)
+    (enc "okay" x3 x3 (pubk a)) (enc "okay" y3 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 252)
+  (parent 162)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc "okay" x1 x3 (pubk a)) (enc "okay" y3-0 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 253)
+  (parent 165)
+  (seen 249)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x3) (a-0 a)) x3 (1 0)
+    (enc "okay" x1 x3 (pubk a)) (enc "okay" y3-0 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 254)
+  (parent 165)
+  (seen 248)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 x3 x1-0 y3 y3-0 text) (a a-0 name))
+  (defstrand init 2 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0)
+    (enc "okay" x1-0 x3 (pubk a)) (enc "okay" y3-0 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 255)
+  (parent 165)
+  (seen 250)
+  (unrealized (1 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc "okay" x3 x3 (pubk a)) (enc "okay" y3-0 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 256)
+  (parent 168)
+  (seen 251)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x3) (a-0 a)) x3 (1 0)
+    (enc "okay" x3 x3 (pubk a)) (enc "okay" y3-0 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 257)
+  (parent 168)
+  (seen 252)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" y3-1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 258)
+  (parent 169)
+  (seen 147 289)
+  (unrealized (1 0))
+  (comment "4 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (0 1))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" y3-1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 259)
+  (parent 169)
+  (seen 198)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (0 1))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (displaced 6 3 resp 2) x1 (1 0)
+    (enc "okay" y3-1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 260)
+  (parent 169)
+  (seen 149 291)
+  (unrealized (1 0))
+  (comment "4 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 y3-2 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" y3-1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-2 x1 (pubk a)))))
+  (label 261)
+  (parent 169)
+  (seen 150 200 324 326)
+  (unrealized (1 0))
+  (comment "6 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (0 1)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 262)
+  (parent 170)
+  (seen 201)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (0 1))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 263)
+  (parent 170)
+  (seen 202 240 326)
+  (unrealized (1 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" y3-1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 264)
+  (parent 171)
+  (seen 203 242 327)
+  (unrealized (1 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (0 1))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" y3-1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 265)
+  (parent 171)
+  (seen 204)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" x1 y3 (pubk a)) (enc "okay" y3 y3 (pubk a))
+    (enc "okay" y3-0 y3 (pubk a)) (enc x1 y3 (pubk a))
+    (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a)))))
+  (label 266)
+  (parent 173)
+  (seen 232)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 267)
+  (parent 174)
+  (seen 175)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 268)
+  (parent 177)
+  (seen 267)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc "okay" y3-0 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 269)
+  (parent 178)
+  (seen 307)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x3) (a-0 a)) x3 (1 0)
+    (enc "okay" x3 x3 (pubk a)) (enc "okay" x1 x3 (pubk a))
+    (enc "okay" y3-0 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 270)
+  (parent 183)
+  (seen 136)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc "okay" x3 x3 (pubk a)) (enc "okay" x1 x3 (pubk a))
+    (enc "okay" y3-0 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 271)
+  (parent 183)
+  (seen 137)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 272)
+  (parent 186)
+  (seen 205)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 273)
+  (parent 186)
+  (seen 189 297)
+  (unrealized (1 0))
+  (comment "4 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 274)
+  (parent 186)
+  (seen 207 281 332)
+  (unrealized (1 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" y3-1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 275)
+  (parent 187)
+  (seen 192 300)
+  (unrealized (1 0))
+  (comment "4 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (0 1))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" y3-1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 276)
+  (parent 187)
+  (seen 209)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 y3-2 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" y3-1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-2 x1 (pubk a)))))
+  (label 277)
+  (parent 187)
+  (seen 194 210 332 335)
+  (unrealized (1 0))
+  (comment "6 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" y3-1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 278)
+  (parent 188)
+  (seen 211 286 336)
+  (unrealized (1 0))
+  (comment "4 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (0 1))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" y3-1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 279)
+  (parent 188)
+  (seen 212)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (contracted (a-0 a)) y3-0 (1 0)
+    (enc "okay" y3-0 y3-0 (pubk a)) (enc "okay" y3-1 y3-0 (pubk a))
+    (enc y3-0 x3 (pubk a)) (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" x3 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-1 y3-0 (pubk a)))))
+  (label 280)
+  (parent 189)
+  (seen 219)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 y3-2 text) (a a-0 name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (added-strand resp 2) y3-0 (1 0)
+    (enc "okay" y3-0 y3-0 (pubk a)) (enc "okay" y3-1 y3-0 (pubk a))
+    (enc y3-0 x3 (pubk a)) (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a-0)))
+      (send (enc "okay" x3 y3-0 (pubk a-0))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-1 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a)))
+      (send (enc "okay" y3-2 y3-0 (pubk a)))))
+  (label 281)
+  (parent 189)
+  (seen 220)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (contracted (a-0 a)) y3-0 (1 0)
+    (enc "okay" y3-0 y3-0 (pubk a)) (enc "okay" y3-1 y3-0 (pubk a))
+    (enc y3-0 x3 (pubk a)) (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" x3 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a)))
+      (send (enc "okay" y3-1 y3-0 (pubk a)))))
+  (label 282)
+  (parent 191)
+  (seen 221)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (contracted (a-0 a)) y3-0 (1 0)
+    (enc "okay" y3-0 y3-0 (pubk a)) (enc "okay" y3-1 y3-0 (pubk a))
+    (enc y3-0 x3 (pubk a)) (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" x3 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-1 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a)))))
+  (label 283)
+  (parent 192)
+  (seen 222)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 y3-2 text) (a a-0 name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (added-strand resp 2) y3-0 (1 0)
+    (enc "okay" y3-0 y3-0 (pubk a)) (enc "okay" y3-1 y3-0 (pubk a))
+    (enc y3-0 x3 (pubk a)) (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a-0)))
+      (send (enc "okay" x3 y3-0 (pubk a-0))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-1 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a)))
+      (send (enc "okay" y3-2 y3-0 (pubk a)))))
+  (label 284)
+  (parent 192)
+  (seen 223)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 y3-2 text) (a name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (contracted (a-0 a)) y3-0 (1 0)
+    (enc "okay" y3-1 y3-0 (pubk a)) (enc "okay" y3-2 y3-0 (pubk a))
+    (enc y3-0 x3 (pubk a)) (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" x3 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-1 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a)))
+      (send (enc "okay" y3-2 y3-0 (pubk a)))))
+  (label 285)
+  (parent 194)
+  (seen 224)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 y3-2 text) (a a-0 name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3-2) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (added-strand resp 2) y3-0 (1 0)
+    (enc "okay" y3-1 y3-0 (pubk a)) (enc "okay" y3-2 y3-0 (pubk a))
+    (enc y3-0 x3 (pubk a)) (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a-0)))
+      (send (enc "okay" x3 y3-0 (pubk a-0))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-1 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a)))
+      (send (enc "okay" y3-2 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a)))))
+  (label 286)
+  (parent 194)
+  (seen 225)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (contracted (a-0 a)) y3-0 (1 0)
+    (enc "okay" y3-0 y3-0 (pubk a)) (enc "okay" y3-1 y3-0 (pubk a))
+    (enc y3-0 x3 (pubk a)) (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" x3 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a)))
+      (send (enc "okay" y3-1 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a)))))
+  (label 287)
+  (parent 195)
+  (seen 226)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-1 y3 (pubk a))
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 288)
+  (parent 197)
+  (seen 296)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 y3-2 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-1 y3 (pubk a))
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-2 y3 (pubk a)))))
+  (label 289)
+  (parent 197)
+  (seen 178)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-1 y3 (pubk a))
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a)))))
+  (label 290)
+  (parent 199)
+  (seen 175)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 y3-2 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-1 y3 (pubk a))
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-2 y3 (pubk a)))))
+  (label 291)
+  (parent 199)
+  (seen 174)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 y3-2 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3-1 y3 (pubk a)) (enc "okay" y3-2 y3 (pubk a))
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-2 y3 (pubk a)))))
+  (label 292)
+  (parent 200)
+  (seen 179)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 y3-2 text) (a a-0 name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-2) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0)
+    (enc "okay" y3-1 y3 (pubk a)) (enc "okay" y3-2 y3 (pubk a))
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-2 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 293)
+  (parent 200)
+  (seen 177)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-1 y3 (pubk a))
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a)))))
+  (label 294)
+  (parent 202)
+  (seen 244)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-1 y3 (pubk a))
+    (enc y3 x3 (pubk a)) (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 295)
+  (parent 203)
+  (seen 294)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 296)
+  (parent 206)
+  (seen 219)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 297)
+  (parent 206)
+  (seen 220)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 298)
+  (parent 207)
+  (seen 221)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 299)
+  (parent 208)
+  (seen 222)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 300)
+  (parent 208)
+  (seen 223)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" y3-0 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 301)
+  (parent 210)
+  (seen 224)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" y3-0 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 302)
+  (parent 210)
+  (seen 225)
+  (unrealized (1 0))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 303)
+  (parent 211)
+  (seen 226)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x1) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x1 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 304)
+  (parent 214)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x1) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x1 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 305)
+  (parent 216)
+  (seen 68)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x1) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x1 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 306)
+  (parent 217)
+  (seen 304)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (1 0)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-0 y3 (pubk a))
+    (enc "okay" y3-1 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a)))))
+  (label 307)
+  (parent 220)
+  (seen 221)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-0 y3 (pubk a))
+    (enc "okay" y3-1 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a)))))
+  (label 308)
+  (parent 223)
+  (seen 307)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-0 y3 (pubk a))
+    (enc "okay" y3-1 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 309)
+  (parent 225)
+  (seen 267)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" x1 y3 (pubk a)) (enc "okay" y3 y3 (pubk a))
+    (enc "okay" y3-0 y3 (pubk a)) (enc x1 y3 (pubk a))
+    (enc y3 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x1 y3 (pubk a)))))
+  (label 310)
+  (parent 233)
+  (seen 266)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc "okay" y3-1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 311)
+  (parent 238)
+  (seen 269)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc "okay" y3-1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 312)
+  (parent 240)
+  (seen 267)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc "okay" y3-1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 313)
+  (parent 242)
+  (seen 268)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 314)
+  (parent 243)
+  (seen 245)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 315)
+  (parent 248)
+  (seen 134)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a)))))
+  (label 316)
+  (parent 249)
+  (seen 135)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x3) (a-0 a)) x3 (1 0)
+    (enc "okay" x3 x3 (pubk a)) (enc "okay" x1 x3 (pubk a))
+    (enc "okay" y3 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 317)
+  (parent 250)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc "okay" x3 x3 (pubk a)) (enc "okay" x1 x3 (pubk a))
+    (enc "okay" y3 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 318)
+  (parent 250)
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 319)
+  (parent 251)
+  (seen 139)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 320)
+  (parent 252)
+  (seen 138)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x3) (a-0 a)) x3 (1 0)
+    (enc "okay" x3 x3 (pubk a)) (enc "okay" x1 x3 (pubk a))
+    (enc "okay" y3-0 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 321)
+  (parent 255)
+  (seen 317)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc "okay" x3 x3 (pubk a)) (enc "okay" x1 x3 (pubk a))
+    (enc "okay" y3-0 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 322)
+  (parent 255)
+  (seen 318)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 323)
+  (parent 258)
+  (seen 288)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 y3-2 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((0 0) (7 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (0 1)) ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-2 x1 (pubk a)))))
+  (label 324)
+  (parent 258)
+  (seen 238 289)
+  (unrealized (1 0))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (0 1))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 325)
+  (parent 260)
+  (seen 290)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 y3-2 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0))
+    ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-2 x1 (pubk a)))))
+  (label 326)
+  (parent 260)
+  (seen 240 291)
+  (unrealized (1 0))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 y3-2 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-2) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((0 0) (7 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (0 1)) ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" y3-1 x1 (pubk a)) (enc "okay" y3-2 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-2 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 327)
+  (parent 261)
+  (seen 242 293)
+  (unrealized (1 0))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 y3-2 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" y3-1 x1 (pubk a)) (enc "okay" y3-2 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-2 x1 (pubk a)))))
+  (label 328)
+  (parent 261)
+  (seen 292)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (0 1))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 329)
+  (parent 263)
+  (seen 294)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 330)
+  (parent 264)
+  (seen 295)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 331)
+  (parent 273)
+  (seen 296)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 y3-2 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-2 x1 (pubk a)))))
+  (label 332)
+  (parent 273)
+  (seen 281 297)
+  (unrealized (1 0))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 333)
+  (parent 274)
+  (seen 298)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 334)
+  (parent 275)
+  (seen 299)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 y3-2 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((0 0) (7 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (0 1)) ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-2 x1 (pubk a)))))
+  (label 335)
+  (parent 275)
+  (seen 284 300)
+  (unrealized (1 0))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 y3-2 text) (a a-0 name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-2) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((0 0) (7 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (0 1)) ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (1 0)
+    (enc "okay" y3-1 x1 (pubk a)) (enc "okay" y3-2 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-2 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 336)
+  (parent 277)
+  (seen 286 302)
+  (unrealized (1 0))
+  (comment "3 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 y3-2 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" y3-1 x1 (pubk a)) (enc "okay" y3-2 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-2 x1 (pubk a)))))
+  (label 337)
+  (parent 277)
+  (seen 301)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc x1 x3 (pubk a)) (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 338)
+  (parent 278)
+  (seen 303)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 y3-2 text) (a name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (contracted (a-0 a)) y3-0 (1 0)
+    (enc "okay" y3-0 y3-0 (pubk a)) (enc "okay" y3-1 y3-0 (pubk a))
+    (enc "okay" y3-2 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))
+    (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" x3 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-1 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a)))
+      (send (enc "okay" y3-2 y3-0 (pubk a)))))
+  (label 339)
+  (parent 281)
+  (seen 307)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 y3-2 text) (a name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (contracted (a-0 a)) y3-0 (1 0)
+    (enc "okay" y3-0 y3-0 (pubk a)) (enc "okay" y3-1 y3-0 (pubk a))
+    (enc "okay" y3-2 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))
+    (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" x3 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-1 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a)))
+      (send (enc "okay" y3-2 y3-0 (pubk a)))))
+  (label 340)
+  (parent 284)
+  (seen 308)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 y3-2 text) (a name))
+  (defstrand init 2 (x1 y3-0) (x2 x3) (x3 y3-0) (x4 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 y3-0) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3-2) (a a))
+  (defstrand resp 2 (y1 y3-0) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3-0)
+  (operation nonce-test (contracted (a-0 a)) y3-0 (1 0)
+    (enc "okay" y3-0 y3-0 (pubk a)) (enc "okay" y3-1 y3-0 (pubk a))
+    (enc "okay" y3-2 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))
+    (enc y3-0 y3-0 (pubk a)))
+  (traces
+    ((send (cat (enc y3-0 y3-0 (pubk a)) (enc y3-0 x3 (pubk a))))
+      (recv (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" x3 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a))) (send (enc "okay" y3 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a))))
+    ((recv (enc y3-0 y3-0 (pubk a)))
+      (send (enc "okay" y3-1 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a)))
+      (send (enc "okay" y3-2 y3-0 (pubk a))))
+    ((recv (enc y3-0 x3 (pubk a)))
+      (send (enc "okay" y3-0 y3-0 (pubk a)))))
+  (label 341)
+  (parent 286)
+  (seen 309)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 y3-2 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-1 y3 (pubk a))
+    (enc "okay" y3-2 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-2 y3 (pubk a)))))
+  (label 342)
+  (parent 289)
+  (seen 345)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 y3-2 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (1 0)) ((3 1) (0 1)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-1 y3 (pubk a))
+    (enc "okay" y3-2 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-2 y3 (pubk a)))))
+  (label 343)
+  (parent 291)
+  (seen 267)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 y3 y3-0 y3-1 y3-2 text) (a name))
+  (defstrand init 2 (x1 y3) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-2) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0)
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-1 y3 (pubk a))
+    (enc "okay" y3-2 y3 (pubk a)) (enc y3 x3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (cat (enc y3 y3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-2 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 344)
+  (parent 293)
+  (seen 343)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0))
+    ((5 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc "okay" y3-1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 345)
+  (parent 297)
+  (seen 307)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc "okay" y3-1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a)))))
+  (label 346)
+  (parent 300)
+  (seen 308)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-0 x1 (pubk a))
+    (enc "okay" y3-1 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 347)
+  (parent 302)
+  (seen 309)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x1) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x1 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 348)
+  (parent 304)
+  (seen 305)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 349)
+  (parent 317)
+  (seen 230)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((1 1) (0 1))
+    ((2 1) (0 1)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation generalization deleted (2 0))
+  (traces
+    ((send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x1 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 350)
+  (parent 318)
+  (seen 231)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 y3-2 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((0 0) (7 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (0 1)) ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc "okay" y3-2 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-2 x1 (pubk a)))))
+  (label 351)
+  (parent 324)
+  (seen 342)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 y3-2 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (1 0))
+    ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc "okay" y3-2 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-2 x1 (pubk a)))))
+  (label 352)
+  (parent 326)
+  (seen 343)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 y3-2 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-2) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((0 0) (7 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (0 1)) ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc "okay" y3-2 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-2 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 353)
+  (parent 327)
+  (seen 344)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 y3-2 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((1 1) (0 1)) ((2 1) (0 1)) ((3 1) (0 1))
+    ((4 1) (1 0)) ((5 1) (1 0)) ((6 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc "okay" y3-2 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-2 x1 (pubk a)))))
+  (label 354)
+  (parent 332)
+  (seen 345)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 y3-2 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-2) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((0 0) (7 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (0 1)) ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc "okay" y3-2 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-2 x1 (pubk a)))))
+  (label 355)
+  (parent 335)
+  (seen 346)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull2
+  (vars (x3 x1 y3 y3-0 y3-1 y3-2 text) (a name))
+  (defstrand init 2 (x1 x1) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x1) (y3 y3-1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-2) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x1) (a a))
+  (precedes ((0 0) (2 0)) ((0 0) (3 0)) ((0 0) (4 0)) ((0 0) (5 0))
+    ((0 0) (6 0)) ((0 0) (7 0)) ((1 1) (0 1)) ((2 1) (0 1))
+    ((3 1) (0 1)) ((4 1) (0 1)) ((5 1) (1 0)) ((6 1) (1 0))
+    ((7 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (contracted (a-0 a)) x1 (1 0)
+    (enc "okay" x1 x1 (pubk a)) (enc "okay" y3-1 x1 (pubk a))
+    (enc "okay" y3-2 x1 (pubk a)) (enc x1 x3 (pubk a))
+    (enc x1 x1 (pubk a)))
+  (traces
+    ((send (cat (enc x1 x1 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x1 (pubk a))) (send (enc "okay" y3-1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-2 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x1 x1 (pubk a)))))
+  (label 356)
+  (parent 336)
+  (seen 347)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/tst/wonthull3.scm b/tst/wonthull3.scm
new file mode 100644
--- /dev/null
+++ b/tst/wonthull3.scm
@@ -0,0 +1,36 @@
+;;;  Wonthull 3:  Demonstrates a subtle incompleteness.
+;;;
+;;;  Demonstrates that the deorigination incompleteness
+;;; is not inherently linked to point and position of
+;;; origination.
+
+(defprotocol wonthull3 basic
+  (defrole init (vars (a name) (x1 x2 x3 x4 text))
+    (trace
+     (send (enc x3 (pubk a)))
+     (send (cat (enc x1 x2 (pubk a))
+		(enc x3 x2 (pubk a))))
+     (recv (enc "okay" x3 x4 (pubk a)))
+     )
+    (uniq-orig x3)
+    (non-orig (privk a))
+    )
+  (defrole resp (vars (a name) (y1 y2 y3 text))
+    (trace
+     (recv (enc y1 y2 (pubk a)) )
+     (send (enc "okay" y3 y1 (pubk a)) )
+     )
+    )
+  )
+
+(defskeleton wonthull3
+  (vars (a name) (n text) (x1 x2 x3 x4 text))
+  (defstrand init 3)
+)
+
+(defskeleton wonthull3
+  (vars (a name) (n text) (x1 x2 x3 x4 text))
+  (defstrand init 3 (x2 x3) (x4 x1))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+)
diff --git a/tst/wonthull3.tst b/tst/wonthull3.tst
new file mode 100644
--- /dev/null
+++ b/tst/wonthull3.tst
@@ -0,0 +1,1379 @@
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/wonthull3.scm")
+
+(defprotocol wonthull3 basic
+  (defrole init
+    (vars (a name) (x1 x2 x3 x4 text))
+    (trace (send (enc x3 (pubk a)))
+      (send (cat (enc x1 x2 (pubk a)) (enc x3 x2 (pubk a))))
+      (recv (enc "okay" x3 x4 (pubk a))))
+    (non-orig (privk a))
+    (uniq-orig x3))
+  (defrole resp
+    (vars (a name) (y1 y2 y3 text))
+    (trace (recv (enc y1 y2 (pubk a)))
+      (send (enc "okay" y3 y1 (pubk a)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wonthull3
+  (vars (x1 x2 x3 x4 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x2) (x3 x3) (x4 x4) (a a))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x2 (pubk a)) (enc x3 x2 (pubk a))))
+      (recv (enc "okay" x3 x4 (pubk a)))))
+  (label 0)
+  (unrealized (0 2))
+  (origs (x3 (0 0)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 x2 x4 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x2) (x3 x2) (x4 x4) (a a))
+  (non-orig (privk a))
+  (uniq-orig x2)
+  (operation nonce-test (displaced 1 0 init 2) x3 (0 2)
+    (enc x3 (pubk a)) (enc x3 x2 (pubk a)))
+  (traces
+    ((send (enc x2 (pubk a)))
+      (send (cat (enc x1 x2 (pubk a)) (enc x2 x2 (pubk a))))
+      (recv (enc "okay" x2 x4 (pubk a)))))
+  (label 1)
+  (parent 0)
+  (unrealized (0 2))
+  (origs (x2 (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 x2 x3 x4 y3 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x2) (x3 x3) (x4 x4) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x2) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (0 2) (enc x3 (pubk a))
+    (enc x3 x2 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x2 (pubk a)) (enc x3 x2 (pubk a))))
+      (recv (enc "okay" x3 x4 (pubk a))))
+    ((recv (enc x3 x2 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 2)
+  (parent 0)
+  (unrealized (0 2) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 x2 x4 y3 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x2) (x3 x2) (x4 x4) (a a))
+  (defstrand resp 2 (y1 x2) (y2 x2) (y3 y3) (a a))
+  (precedes ((0 0) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x2)
+  (operation nonce-test (added-strand resp 2) x2 (0 2) (enc x2 (pubk a))
+    (enc x1 x2 (pubk a)) (enc x2 x2 (pubk a)))
+  (traces
+    ((send (enc x2 (pubk a)))
+      (send (cat (enc x1 x2 (pubk a)) (enc x2 x2 (pubk a))))
+      (recv (enc "okay" x2 x4 (pubk a))))
+    ((recv (enc x2 x2 (pubk a))) (send (enc "okay" y3 x2 (pubk a)))))
+  (label 3)
+  (parent 1)
+  (unrealized (0 2) (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 x2 x3 x4 y3 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x2) (x3 x3) (x4 x4) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x2) (y3 y3) (a a))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (displaced 2 0 init 2) x3 (1 0)
+    (enc x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x2 (pubk a)) (enc x3 x2 (pubk a))))
+      (recv (enc "okay" x3 x4 (pubk a))))
+    ((recv (enc x3 x2 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 4)
+  (parent 2)
+  (seen 5)
+  (unrealized (0 2))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 x2 x4 y3 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x2) (x3 x2) (x4 x4) (a a))
+  (defstrand resp 2 (y1 x2) (y2 x2) (y3 y3) (a a))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x2)
+  (operation nonce-test (displaced 2 0 init 2) x2 (1 0)
+    (enc x2 (pubk a)))
+  (traces
+    ((send (enc x2 (pubk a)))
+      (send (cat (enc x1 x2 (pubk a)) (enc x2 x2 (pubk a))))
+      (recv (enc "okay" x2 x4 (pubk a))))
+    ((recv (enc x2 x2 (pubk a))) (send (enc "okay" y3 x2 (pubk a)))))
+  (label 5)
+  (parent 3)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 x2 y3 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x2) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x2) (y3 y3) (a a))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (x3 y3) (x4 y3)) y3 (0 2)
+    (enc y3 (pubk a)) (enc "okay" y3 y3 (pubk a)) (enc y3 x2 (pubk a)))
+  (traces
+    ((send (enc y3 (pubk a)))
+      (send (cat (enc x1 x2 (pubk a)) (enc y3 x2 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x2 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 6)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (x1 x1) (x2 x2) (x3 y3) (x4 y3))))
+  (origs (y3 (0 0))))
+
+(defskeleton wonthull3
+  (vars (x1 x2 x3 x4 y3 y3-0 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x2) (x3 x3) (x4 x4) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x2) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x2) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (0 2) (enc x3 (pubk a))
+    (enc "okay" y3 x3 (pubk a)) (enc x3 x2 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x2 (pubk a)) (enc x3 x2 (pubk a))))
+      (recv (enc "okay" x3 x4 (pubk a))))
+    ((recv (enc x3 x2 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x2 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a)))))
+  (label 7)
+  (parent 4)
+  (seen 4)
+  (unrealized (0 2) (2 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 y3 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 y3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 y3) (y3 y3) (a a))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (x2 y3) (x4 y3)) y3 (0 2)
+    (enc y3 (pubk a)) (enc "okay" y3 y3 (pubk a)) (enc x1 y3 (pubk a))
+    (enc y3 y3 (pubk a)))
+  (traces
+    ((send (enc y3 (pubk a)))
+      (send (cat (enc x1 y3 (pubk a)) (enc y3 y3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 y3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 8)
+  (parent 5)
+  (seen 6)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 x2 x4 y3 y3-0 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x2) (x3 x2) (x4 x4) (a a))
+  (defstrand resp 2 (y1 x2) (y2 x2) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x2) (y2 x2) (y3 y3-0) (a a))
+  (precedes ((0 0) (2 0)) ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x2)
+  (operation nonce-test (added-strand resp 2) x2 (0 2) (enc x2 (pubk a))
+    (enc "okay" y3 x2 (pubk a)) (enc x1 x2 (pubk a))
+    (enc x2 x2 (pubk a)))
+  (traces
+    ((send (enc x2 (pubk a)))
+      (send (cat (enc x1 x2 (pubk a)) (enc x2 x2 (pubk a))))
+      (recv (enc "okay" x2 x4 (pubk a))))
+    ((recv (enc x2 x2 (pubk a))) (send (enc "okay" y3 x2 (pubk a))))
+    ((recv (enc x2 x2 (pubk a))) (send (enc "okay" y3-0 x2 (pubk a)))))
+  (label 9)
+  (parent 5)
+  (seen 5)
+  (unrealized (0 2) (2 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
+
+(defprotocol wonthull3 basic
+  (defrole init
+    (vars (a name) (x1 x2 x3 x4 text))
+    (trace (send (enc x3 (pubk a)))
+      (send (cat (enc x1 x2 (pubk a)) (enc x3 x2 (pubk a))))
+      (recv (enc "okay" x3 x4 (pubk a))))
+    (non-orig (privk a))
+    (uniq-orig x3))
+  (defrole resp
+    (vars (a name) (y1 y2 y3 text))
+    (trace (recv (enc y1 y2 (pubk a)))
+      (send (enc "okay" y3 y1 (pubk a)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton wonthull3
+  (vars (x1 x3 x1-0 x3-0 text) (a a-0 name))
+  (defstrand init 3 (x1 x1-0) (x2 x3) (x3 x3-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x3-0)
+  (traces
+    ((send (enc x3-0 (pubk a)))
+      (send (cat (enc x1-0 x3 (pubk a)) (enc x3-0 x3 (pubk a))))
+      (recv (enc "okay" x3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0)))
+      (send (enc "okay" x3 x1 (pubk a-0)))))
+  (label 10)
+  (unrealized (0 2))
+  (origs (x3-0 (0 0)))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 x3 x1-0 text) (a a-0 name))
+  (defstrand init 3 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (displaced 2 1 resp 2) x3-0 (0 2)
+    (enc x3-0 (pubk a)) (enc x3-0 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0)))
+      (send (enc "okay" x3 x1 (pubk a-0)))))
+  (label 11)
+  (parent 10)
+  (unrealized (1 0))
+  (origs (x3 (0 0)))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 x3 x1-0 text) (a name))
+  (defstrand init 3 (x1 x1-0) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (displaced 2 1 resp 2) x3-0 (0 2)
+    (enc x3-0 (pubk a-0)) (enc x3-0 x3 (pubk a-0)))
+  (traces
+    ((send (enc x1 (pubk a)))
+      (send (cat (enc x1-0 x3 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a)))))
+  (label 12)
+  (parent 10)
+  (seen 14)
+  (unrealized (0 2))
+  (origs (x1 (0 0)))
+  (comment "2 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 x3 x1-0 x3-0 y3 text) (a a-0 name))
+  (defstrand init 3 (x1 x1-0) (x2 x3) (x3 x3-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3-0) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x3-0)
+  (operation nonce-test (added-strand resp 2) x3-0 (0 2)
+    (enc x3-0 (pubk a)) (enc x3-0 x3 (pubk a)))
+  (traces
+    ((send (enc x3-0 (pubk a)))
+      (send (cat (enc x1-0 x3 (pubk a)) (enc x3-0 x3 (pubk a))))
+      (recv (enc "okay" x3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3-0 x3 (pubk a)))
+      (send (enc "okay" y3 x3-0 (pubk a)))))
+  (label 13)
+  (parent 10)
+  (unrealized (0 2) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x3) (a-0 a)) x3 (1 0)
+    (enc x3 (pubk a)) (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 14)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0 1) ((x1 x3) (x3 x3) (a a) (x1-0 x1) (x3-0 x3) (a-0 a))))
+  (origs (x3 (0 0))))
+
+(defskeleton wonthull3
+  (vars (x3 x1 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc x3 (pubk a)) (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a)))))
+  (label 15)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0 1) ((x1 x1) (x3 x3) (a a) (x1-0 x1) (x3-0 x3) (a-0 a))))
+  (origs (x3 (0 0))))
+
+(defskeleton wonthull3
+  (vars (x1 x3 x1-0 y3 text) (a a-0 name))
+  (defstrand init 3 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0) (enc x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 16)
+  (parent 11)
+  (unrealized (1 0) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 x3 x1-0 y3 text) (a name))
+  (defstrand init 3 (x1 x1-0) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (2 0)) ((0 1) (1 0)) ((1 1) (0 2)) ((2 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (0 2) (enc x1 (pubk a))
+    (enc "okay" x3 x1 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (enc x1 (pubk a)))
+      (send (cat (enc x1-0 x3 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a)))))
+  (label 17)
+  (parent 12)
+  (unrealized (0 2) (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 x3 x1-0 x3-0 y3 text) (a a-0 name))
+  (defstrand init 3 (x1 x1-0) (x2 x3) (x3 x3-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3-0) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 1) (1 0)) ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x3-0)
+  (operation nonce-test (displaced 3 0 init 2) x3-0 (2 0)
+    (enc x3-0 (pubk a)))
+  (traces
+    ((send (enc x3-0 (pubk a)))
+      (send (cat (enc x1-0 x3 (pubk a)) (enc x3-0 x3 (pubk a))))
+      (recv (enc "okay" x3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3-0 x3 (pubk a)))
+      (send (enc "okay" y3 x3-0 (pubk a)))))
+  (label 18)
+  (parent 13)
+  (seen 20)
+  (unrealized (0 2))
+  (comment "4 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 x3 x1-0 y3 text) (a a-0 name))
+  (defstrand init 3 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (displaced 3 0 init 2) x3 (2 0)
+    (enc x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 19)
+  (parent 16)
+  (unrealized (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 x3 x1-0 y3 text) (a name))
+  (defstrand init 3 (x1 x1-0) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 1) (1 0)) ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (displaced 3 0 init 2) x1 (2 0)
+    (enc x1 (pubk a)))
+  (traces
+    ((send (enc x1 (pubk a)))
+      (send (cat (enc x1-0 x3 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a)))))
+  (label 20)
+  (parent 17)
+  (unrealized (0 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 x3 x1-0 y3 text) (a a-0 name))
+  (defstrand init 3 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 1) (1 0)) ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (displaced 3 1 resp 2) x3-0 (0 2)
+    (enc x3-0 (pubk a)) (enc "okay" y3 x3-0 (pubk a))
+    (enc x3-0 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 21)
+  (parent 18)
+  (seen 19 27)
+  (unrealized (1 0))
+  (comment "4 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 1) (1 0)) ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (x1-0 y3) (x3-0 y3)) y3 (0 2)
+    (enc y3 (pubk a)) (enc "okay" y3 y3 (pubk a)) (enc y3 x3 (pubk a)))
+  (traces
+    ((send (enc y3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 22)
+  (parent 18)
+  (seen 28)
+  (unrealized (1 0))
+  (comment "4 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 x3 x1-0 x3-0 y3 y3-0 text) (a a-0 name))
+  (defstrand init 3 (x1 x1-0) (x2 x3) (x3 x3-0) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3-0) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3-0) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (3 0)) ((0 1) (1 0)) ((0 1) (2 0)) ((1 1) (0 2))
+    ((2 1) (0 2)) ((3 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x3-0)
+  (operation nonce-test (added-strand resp 2) x3-0 (0 2)
+    (enc x3-0 (pubk a)) (enc "okay" y3 x3-0 (pubk a))
+    (enc x3-0 x3 (pubk a)))
+  (traces
+    ((send (enc x3-0 (pubk a)))
+      (send (cat (enc x1-0 x3 (pubk a)) (enc x3-0 x3 (pubk a))))
+      (recv (enc "okay" x3-0 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3-0 x3 (pubk a))) (send (enc "okay" y3 x3-0 (pubk a))))
+    ((recv (enc x3-0 x3 (pubk a)))
+      (send (enc "okay" y3-0 x3-0 (pubk a)))))
+  (label 23)
+  (parent 18)
+  (seen 18)
+  (unrealized (0 2) (3 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x3) (a-0 a)) x3 (1 0)
+    (enc x3 (pubk a)) (enc "okay" y3 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 24)
+  (parent 19)
+  (seen 14)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc x3 (pubk a)) (enc "okay" y3 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 25)
+  (parent 19)
+  (seen 15)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 x3 x1-0 y3 y3-0 text) (a a-0 name))
+  (defstrand init 3 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (3 0)) ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0) (enc x3 (pubk a))
+    (enc "okay" y3 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a)))))
+  (label 26)
+  (parent 19)
+  (seen 19)
+  (unrealized (1 0) (3 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 1) (1 0)) ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (displaced 3 1 resp 2) x1-0 (0 2)
+    (enc x1-0 (pubk a)) (enc "okay" x3 x1-0 (pubk a))
+    (enc "okay" y3 x1-0 (pubk a)) (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 27)
+  (parent 20)
+  (seen 14)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 1) (1 0)) ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (displaced 3 2 resp 2) x1-0 (0 2)
+    (enc x1-0 (pubk a)) (enc "okay" x3 x1-0 (pubk a))
+    (enc "okay" y3 x1-0 (pubk a)) (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (enc y3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 28)
+  (parent 20)
+  (realized)
+  (shape)
+  (maps ((0 1) ((x1 y3) (x3 x3) (a a) (x1-0 x1) (x3-0 y3) (a-0 a))))
+  (origs (y3 (0 0))))
+
+(defskeleton wonthull3
+  (vars (x1 x3 x1-0 y3 y3-0 text) (a name))
+  (defstrand init 3 (x1 x1-0) (x2 x3) (x3 x1) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (3 0)) ((0 1) (1 0)) ((0 1) (2 0)) ((1 1) (0 2))
+    ((2 1) (0 2)) ((3 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x1)
+  (operation nonce-test (added-strand resp 2) x1 (0 2) (enc x1 (pubk a))
+    (enc "okay" x3 x1 (pubk a)) (enc "okay" y3 x1 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (enc x1 (pubk a)))
+      (send (cat (enc x1-0 x3 (pubk a)) (enc x1 x3 (pubk a))))
+      (recv (enc "okay" x1 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" y3-0 x1 (pubk a)))))
+  (label 29)
+  (parent 20)
+  (seen 20)
+  (unrealized (0 2) (3 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 1) (1 0)) ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc x3 (pubk a)) (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 30)
+  (parent 21)
+  (seen 15)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 x3 x1-0 y3 y3-0 text) (a a-0 name))
+  (defstrand init 3 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (3 0)) ((0 1) (1 0)) ((0 1) (2 0)) ((1 1) (0 2))
+    ((2 1) (0 2)) ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0) (enc x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a)))))
+  (label 31)
+  (parent 21)
+  (unrealized (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 text) (a a-0 name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 1) (1 0)) ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (displaced 3 0 init 2) y3 (1 0)
+    (enc y3 (pubk a)) (enc y3 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a-0))) (send (enc "okay" x3 x3 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 32)
+  (parent 22)
+  (unrealized (1 0))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (displaced 3 2 resp 2) y3 (1 0)
+    (enc y3 (pubk a)) (enc y3 x3 (pubk a)))
+  (traces
+    ((send (enc y3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 33)
+  (parent 22)
+  (seen 37)
+  (unrealized (1 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (3 0)) ((0 1) (1 0)) ((0 1) (2 0)) ((1 1) (0 2))
+    ((2 1) (0 2)) ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0) (enc y3 (pubk a))
+    (enc y3 x3 (pubk a)))
+  (traces
+    ((send (enc y3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 34)
+  (parent 22)
+  (unrealized (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 x3 x1-0 y3 y3-0 text) (a a-0 name))
+  (defstrand init 3 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 1) (2 0)) ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (0 2))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (displaced 4 0 init 2) x3 (3 0)
+    (enc x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a)))))
+  (label 35)
+  (parent 31)
+  (seen 19)
+  (unrealized (1 0))
+  (comment "4 in cohort - 3 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 1) (1 0)) ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (0 2)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (a-0 a)) x3 (1 0) (enc x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 36)
+  (parent 32)
+  (seen 14)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 text) (a a-0 name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (displaced 3 2 resp 2) x3 (1 0)
+    (enc x3 (pubk a)) (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a-0))) (send (enc "okay" x3 x3 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 37)
+  (parent 32)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (3 0)) ((0 1) (1 0)) ((0 1) (2 0)) ((1 1) (0 2))
+    ((2 1) (0 2)) ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0) (enc x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a-0))) (send (enc "okay" x3 x3 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 38)
+  (parent 32)
+  (unrealized (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0) (enc y3 (pubk a))
+    (enc "okay" y3 y3 (pubk a)) (enc y3 x3 (pubk a)))
+  (traces
+    ((send (enc y3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a)))))
+  (label 39)
+  (parent 33)
+  (seen 28)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (3 0)) ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0) (enc y3 (pubk a))
+    (enc "okay" y3 y3 (pubk a)) (enc y3 x3 (pubk a)))
+  (traces
+    ((send (enc y3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 40)
+  (parent 33)
+  (unrealized (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 1) (2 0)) ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (0 2))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (displaced 4 0 init 2) y3 (3 0)
+    (enc y3 (pubk a)))
+  (traces
+    ((send (enc y3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 41)
+  (parent 34)
+  (seen 47 48)
+  (unrealized (1 0))
+  (comment "4 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 1) (2 0)) ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (0 2))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x1) (a-0 a)) x3 (1 0)
+    (enc x3 (pubk a)) (enc "okay" y3-0 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a))) (send (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a)))))
+  (label 42)
+  (parent 35)
+  (seen 25)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 1) (2 0)) ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (0 2))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (x1-0 x3) (a-0 a)) x3 (1 0)
+    (enc x3 (pubk a)) (enc "okay" y3-0 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a)))))
+  (label 43)
+  (parent 35)
+  (seen 24)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x1 x3 x1-0 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 3 (x1 x1-0) (x2 x3) (x3 x3) (x4 x1) (a a))
+  (defstrand resp 2 (y1 x1) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (4 0)) ((0 1) (2 0)) ((0 1) (3 0)) ((1 1) (0 2))
+    ((2 1) (0 2)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0) (enc x3 (pubk a))
+    (enc "okay" y3-0 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1-0 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1-0 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x1 (pubk a))))
+    ((recv (enc x1 x3 (pubk a-0))) (send (enc "okay" x3 x1 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-1 x3 (pubk a)))))
+  (label 44)
+  (parent 35)
+  (seen 35)
+  (unrealized (1 0) (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (precedes ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (a-0 a)) x3 (1 0) (enc x3 (pubk a))
+    (enc "okay" x3 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a)))))
+  (label 45)
+  (parent 37)
+  (seen 14)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 0) (3 0)) ((0 1) (2 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0) (enc x3 (pubk a))
+    (enc "okay" x3 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a-0))) (send (enc "okay" x3 x3 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 46)
+  (parent 37)
+  (unrealized (1 0) (3 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 1) (2 0)) ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (0 2))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (displaced 4 0 init 2) x3 (3 0)
+    (enc x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a-0))) (send (enc "okay" x3 x3 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 47)
+  (parent 38)
+  (seen 51)
+  (unrealized (1 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 1) (2 0)) ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (displaced 4 0 init 2) y3 (3 0)
+    (enc y3 (pubk a)))
+  (traces
+    ((send (enc y3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 48)
+  (parent 40)
+  (seen 37)
+  (unrealized (1 0))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 1) (2 0)) ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (0 2))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0) (enc y3 (pubk a))
+    (enc "okay" y3-0 y3 (pubk a)) (enc y3 x3 (pubk a)))
+  (traces
+    ((send (enc y3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 49)
+  (parent 41)
+  (seen 28)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (4 0)) ((0 1) (2 0)) ((0 1) (3 0)) ((1 1) (0 2))
+    ((2 1) (0 2)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0) (enc y3 (pubk a))
+    (enc "okay" y3-0 y3 (pubk a)) (enc y3 x3 (pubk a)))
+  (traces
+    ((send (enc y3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a)))))
+  (label 50)
+  (parent 41)
+  (seen 41)
+  (unrealized (1 0) (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 text) (a a-0 name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 1) (2 0)) ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (displaced 4 0 init 2) x3 (3 0)
+    (enc x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a-0))) (send (enc "okay" x3 x3 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 51)
+  (parent 46)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 1) (2 0)) ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (0 2))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (a-0 a)) x3 (1 0) (enc x3 (pubk a))
+    (enc "okay" y3 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 52)
+  (parent 47)
+  (seen 24)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (4 0)) ((0 1) (2 0)) ((0 1) (3 0)) ((1 1) (0 2))
+    ((2 1) (0 2)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0) (enc x3 (pubk a))
+    (enc "okay" y3 x3 (pubk a)) (enc x3 x3 (pubk a))
+    (enc x1 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a-0))) (send (enc "okay" x3 x3 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a)))))
+  (label 53)
+  (parent 47)
+  (seen 47)
+  (unrealized (1 0) (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 y3-0 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 1) (2 0)) ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (contracted (a-0 a)) y3 (1 0) (enc y3 (pubk a))
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-0 y3 (pubk a))
+    (enc y3 x3 (pubk a)))
+  (traces
+    ((send (enc y3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" x3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a)))))
+  (label 54)
+  (parent 48)
+  (seen 39)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 y3-0 y3-1 text) (a a-0 name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 y3) (x4 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-0) (a a))
+  (defstrand resp 2 (y1 y3) (y2 x3) (y3 y3-1) (a a))
+  (precedes ((0 0) (4 0)) ((0 1) (2 0)) ((0 1) (3 0)) ((1 1) (0 2))
+    ((2 1) (1 0)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig y3)
+  (operation nonce-test (added-strand resp 2) y3 (1 0) (enc y3 (pubk a))
+    (enc "okay" y3 y3 (pubk a)) (enc "okay" y3-0 y3 (pubk a))
+    (enc y3 x3 (pubk a)))
+  (traces
+    ((send (enc y3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc y3 x3 (pubk a))))
+      (recv (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a-0))) (send (enc "okay" x3 y3 (pubk a-0))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-0 y3 (pubk a))))
+    ((recv (enc y3 x3 (pubk a))) (send (enc "okay" y3-1 y3 (pubk a)))))
+  (label 55)
+  (parent 48)
+  (seen 48)
+  (unrealized (1 0) (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 text) (a name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (precedes ((0 1) (2 0)) ((0 1) (3 0)) ((1 1) (0 2)) ((2 1) (1 0))
+    ((3 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (contracted (a-0 a)) x3 (1 0) (enc x3 (pubk a))
+    (enc "okay" x3 x3 (pubk a)) (enc "okay" y3 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a)))))
+  (label 56)
+  (parent 51)
+  (seen 24)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton wonthull3
+  (vars (x3 x1 y3 y3-0 text) (a a-0 name))
+  (defstrand init 3 (x1 x1) (x2 x3) (x3 x3) (x4 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a-0))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 x3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3) (a a))
+  (defstrand resp 2 (y1 x3) (y2 x3) (y3 y3-0) (a a))
+  (precedes ((0 0) (4 0)) ((0 1) (2 0)) ((0 1) (3 0)) ((1 1) (0 2))
+    ((2 1) (1 0)) ((3 1) (1 0)) ((4 1) (1 0)))
+  (non-orig (privk a))
+  (uniq-orig x3)
+  (operation nonce-test (added-strand resp 2) x3 (1 0) (enc x3 (pubk a))
+    (enc "okay" x3 x3 (pubk a)) (enc "okay" y3 x3 (pubk a))
+    (enc x3 x3 (pubk a)) (enc x1 x3 (pubk a)))
+  (traces
+    ((send (enc x3 (pubk a)))
+      (send (cat (enc x1 x3 (pubk a)) (enc x3 x3 (pubk a))))
+      (recv (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a-0))) (send (enc "okay" x3 x3 (pubk a-0))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" x3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3 x3 (pubk a))))
+    ((recv (enc x3 x3 (pubk a))) (send (enc "okay" y3-0 x3 (pubk a)))))
+  (label 57)
+  (parent 51)
+  (seen 51)
+  (unrealized (1 0) (4 0))
+  (comment "1 in cohort - 0 not yet seen"))
+
+(comment "Nothing left to do")
diff --git a/tst/woolam.scm b/tst/woolam.scm
--- a/tst/woolam.scm
+++ b/tst/woolam.scm
@@ -24,3 +24,53 @@
 (defskeleton woolam (vars (n text) (a s name))
   (defstrand resp 5 (a a) (s s))
   (non-orig (ltk a s)))
+
+(defprotocol woolam-msg basic
+  (defrole init (vars (a s name) (n text))
+    (trace
+     (send a)
+     (recv n)
+     (send (enc n (ltk a s))))
+    (non-orig (ltk a s)))
+  (defrole resp (vars (a s b name) (n text) (m mesg))
+    (trace
+     (recv a)
+     (send n)
+     (recv m)
+     (send (enc a m (ltk b s)))
+     (recv (enc n (ltk b s))))
+    (non-orig (ltk b s))
+    (uniq-orig n))
+  (defrole serv (vars (a s b name) (n text))
+    (trace
+     (recv (enc a (enc n (ltk a s)) (ltk b s)))
+     (send (enc n (ltk b s))))))
+
+(defskeleton woolam-msg (vars (a s name))
+  (defstrand resp 5 (a a) (s s))
+  (non-orig (ltk a s)))
+
+(defprotocol woolam-msg1 basic
+  (defrole init (vars (a s name) (n text))
+    (trace
+     (send a)
+     (recv n)
+     (send (enc n (ltk a s))))
+    (non-orig (ltk a s)))
+  (defrole resp (vars (a s b name) (n text) (m mesg))
+    (trace
+     (recv a)
+     (send n)
+     (recv m)
+     (send (cat a b (enc m (ltk b s))))
+     (recv (enc a n (ltk b s))))
+    (non-orig (ltk b s))
+    (uniq-orig n))
+  (defrole serv (vars (a s b name) (n text))
+    (trace
+     (recv (cat a b (enc (enc n (ltk a s)) (ltk b s))))
+     (send (enc a n (ltk b s))))))
+
+(defskeleton woolam-msg1 (vars (a s name))
+  (defstrand resp 5 (a a) (s s))
+  (non-orig (ltk a s)))
diff --git a/tst/woolam.tst b/tst/woolam.tst
--- a/tst/woolam.tst
+++ b/tst/woolam.tst
@@ -1,6 +1,6 @@
 (herald "Woo-Lam Protocol")
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/woolam.scm")
 
 (defprotocol woolam basic
@@ -18,7 +18,13 @@
   (defrole serv
     (vars (a s b name) (n text))
     (trace (recv (enc a (enc n (ltk a s)) (ltk b s)))
-      (send (enc a n (ltk b s))))))
+      (send (enc a n (ltk b s)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton woolam
   (vars (n text) (a s b name))
@@ -94,9 +100,467 @@
       (send (enc a n (ltk b s)))))
   (label 3)
   (parent 2)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (s s) (b b) (n n))))
   (origs (n (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol woolam-msg basic
+  (defrole init
+    (vars (a s name) (n text))
+    (trace (send a) (recv n) (send (enc n (ltk a s))))
+    (non-orig (ltk a s)))
+  (defrole resp
+    (vars (a s b name) (n text) (m mesg))
+    (trace (recv a) (send n) (recv m) (send (enc a m (ltk b s)))
+      (recv (enc n (ltk b s))))
+    (non-orig (ltk b s))
+    (uniq-orig n))
+  (defrole serv
+    (vars (a s b name) (n text))
+    (trace (recv (enc a (enc n (ltk a s)) (ltk b s)))
+      (send (enc n (ltk b s)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton woolam-msg
+  (vars (m mesg) (n text) (a s b name))
+  (defstrand resp 5 (m m) (n n) (a a) (s s) (b b))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n)
+  (traces
+    ((recv a) (send n) (recv m) (send (enc a m (ltk b s)))
+      (recv (enc n (ltk b s)))))
+  (label 4)
+  (unrealized (0 4))
+  (origs (n (0 1)))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton woolam-msg
+  (vars (m mesg) (n text) (a s b name))
+  (defstrand resp 5 (m m) (n n) (a a) (s s) (b b))
+  (defstrand init 3 (n n) (a b) (s s))
+  (precedes ((0 1) (1 1)) ((1 2) (0 4)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n)
+  (operation encryption-test (added-strand init 3) (enc n (ltk b s))
+    (0 4))
+  (traces
+    ((recv a) (send n) (recv m) (send (enc a m (ltk b s)))
+      (recv (enc n (ltk b s))))
+    ((send b) (recv n) (send (enc n (ltk b s)))))
+  (label 5)
+  (parent 4)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (s s) (b b) (n n) (m m))))
+  (origs (n (0 1))))
+
+(defskeleton woolam-msg
+  (vars (m mesg) (n text) (a s b a-0 name))
+  (defstrand resp 5 (m m) (n n) (a a) (s s) (b b))
+  (defstrand serv 2 (n n) (a a-0) (s s) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 4)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n)
+  (operation encryption-test (added-strand serv 2) (enc n (ltk b s))
+    (0 4))
+  (traces
+    ((recv a) (send n) (recv m) (send (enc a m (ltk b s)))
+      (recv (enc n (ltk b s))))
+    ((recv (enc a-0 (enc n (ltk a-0 s)) (ltk b s)))
+      (send (enc n (ltk b s)))))
+  (label 6)
+  (parent 4)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton woolam-msg
+  (vars (n text) (a s b name))
+  (defstrand resp 5 (m (enc n (ltk a s))) (n n) (a a) (s s) (b b))
+  (defstrand serv 2 (n n) (a a) (s s) (b b))
+  (precedes ((0 3) (1 0)) ((1 1) (0 4)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n)
+  (operation encryption-test (displaced 2 0 resp 4)
+    (enc a-0 (enc n (ltk a-0 s)) (ltk b s)) (1 0))
+  (traces
+    ((recv a) (send n) (recv (enc n (ltk a s)))
+      (send (enc a (enc n (ltk a s)) (ltk b s)))
+      (recv (enc n (ltk b s))))
+    ((recv (enc a (enc n (ltk a s)) (ltk b s)))
+      (send (enc n (ltk b s)))))
+  (label 7)
+  (parent 6)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton woolam-msg
+  (vars (m mesg) (n n-0 text) (a s b a-0 name))
+  (defstrand resp 5 (m m) (n n) (a a) (s s) (b b))
+  (defstrand serv 2 (n n) (a a-0) (s s) (b b))
+  (defstrand resp 4 (m (enc n (ltk a-0 s))) (n n-0) (a a-0) (s s) (b b))
+  (precedes ((0 1) (2 2)) ((1 1) (0 4)) ((2 3) (1 0)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n n-0)
+  (operation encryption-test (added-strand resp 4)
+    (enc a-0 (enc n (ltk a-0 s)) (ltk b s)) (1 0))
+  (traces
+    ((recv a) (send n) (recv m) (send (enc a m (ltk b s)))
+      (recv (enc n (ltk b s))))
+    ((recv (enc a-0 (enc n (ltk a-0 s)) (ltk b s)))
+      (send (enc n (ltk b s))))
+    ((recv a-0) (send n-0) (recv (enc n (ltk a-0 s)))
+      (send (enc a-0 (enc n (ltk a-0 s)) (ltk b s)))))
+  (label 8)
+  (parent 6)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (s s) (b b) (n n) (m m))))
+  (origs (n-0 (2 1)) (n (0 1))))
+
+(defskeleton woolam-msg
+  (vars (n text) (a s b name))
+  (defstrand resp 5 (m (enc n (ltk a s))) (n n) (a a) (s s) (b b))
+  (defstrand serv 2 (n n) (a a) (s s) (b b))
+  (defstrand init 3 (n n) (a a) (s s))
+  (precedes ((0 1) (2 1)) ((0 3) (1 0)) ((1 1) (0 4)) ((2 2) (0 2)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n)
+  (operation encryption-test (added-strand init 3) (enc n (ltk a s))
+    (0 2))
+  (traces
+    ((recv a) (send n) (recv (enc n (ltk a s)))
+      (send (enc a (enc n (ltk a s)) (ltk b s)))
+      (recv (enc n (ltk b s))))
+    ((recv (enc a (enc n (ltk a s)) (ltk b s)))
+      (send (enc n (ltk b s))))
+    ((send a) (recv n) (send (enc n (ltk a s)))))
+  (label 9)
+  (parent 7)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (s s) (b b) (n n) (m (enc n (ltk a s))))))
+  (origs (n (0 1))))
+
+(defskeleton woolam-msg
+  (vars (n text) (a s b a-0 name))
+  (defstrand resp 5 (m (enc n (ltk a s))) (n n) (a a) (s s) (b b))
+  (defstrand serv 2 (n n) (a a) (s s) (b b))
+  (defstrand serv 2 (n n) (a a-0) (s s) (b a))
+  (precedes ((0 1) (2 0)) ((0 3) (1 0)) ((1 1) (0 4)) ((2 1) (0 2)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n)
+  (operation encryption-test (added-strand serv 2) (enc n (ltk a s))
+    (0 2))
+  (traces
+    ((recv a) (send n) (recv (enc n (ltk a s)))
+      (send (enc a (enc n (ltk a s)) (ltk b s)))
+      (recv (enc n (ltk b s))))
+    ((recv (enc a (enc n (ltk a s)) (ltk b s)))
+      (send (enc n (ltk b s))))
+    ((recv (enc a-0 (enc n (ltk a-0 s)) (ltk a s)))
+      (send (enc n (ltk a s)))))
+  (label 10)
+  (parent 7)
+  (unrealized (2 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton woolam-msg
+  (vars (n n-0 text) (a s b a-0 name))
+  (defstrand resp 5 (m (enc n (ltk a s))) (n n) (a a) (s s) (b b))
+  (defstrand serv 2 (n n) (a a) (s s) (b b))
+  (defstrand serv 2 (n n) (a a-0) (s s) (b a))
+  (defstrand resp 4 (m (enc n (ltk a-0 s))) (n n-0) (a a-0) (s s) (b a))
+  (precedes ((0 1) (3 2)) ((0 3) (1 0)) ((1 1) (0 4)) ((2 1) (0 2))
+    ((3 3) (2 0)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n n-0)
+  (operation encryption-test (added-strand resp 4)
+    (enc a-0 (enc n (ltk a-0 s)) (ltk a s)) (2 0))
+  (traces
+    ((recv a) (send n) (recv (enc n (ltk a s)))
+      (send (enc a (enc n (ltk a s)) (ltk b s)))
+      (recv (enc n (ltk b s))))
+    ((recv (enc a (enc n (ltk a s)) (ltk b s)))
+      (send (enc n (ltk b s))))
+    ((recv (enc a-0 (enc n (ltk a-0 s)) (ltk a s)))
+      (send (enc n (ltk a s))))
+    ((recv a-0) (send n-0) (recv (enc n (ltk a-0 s)))
+      (send (enc a-0 (enc n (ltk a-0 s)) (ltk a s)))))
+  (label 11)
+  (parent 10)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (s s) (b b) (n n) (m (enc n (ltk a s))))))
+  (origs (n-0 (3 1)) (n (0 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol woolam-msg1 basic
+  (defrole init
+    (vars (a s name) (n text))
+    (trace (send a) (recv n) (send (enc n (ltk a s))))
+    (non-orig (ltk a s)))
+  (defrole resp
+    (vars (a s b name) (n text) (m mesg))
+    (trace (recv a) (send n) (recv m) (send (cat a b (enc m (ltk b s))))
+      (recv (enc a n (ltk b s))))
+    (non-orig (ltk b s))
+    (uniq-orig n))
+  (defrole serv
+    (vars (a s b name) (n text))
+    (trace (recv (cat a b (enc (enc n (ltk a s)) (ltk b s))))
+      (send (enc a n (ltk b s)))))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton woolam-msg1
+  (vars (m mesg) (n text) (a s b name))
+  (defstrand resp 5 (m m) (n n) (a a) (s s) (b b))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n)
+  (traces
+    ((recv a) (send n) (recv m) (send (cat a b (enc m (ltk b s))))
+      (recv (enc a n (ltk b s)))))
+  (label 12)
+  (unrealized (0 4))
+  (origs (n (0 1)))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton woolam-msg1
+  (vars (n text) (a s b name))
+  (defstrand resp 5 (m (cat a n)) (n n) (a a) (s s) (b b))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n)
+  (operation encryption-test (displaced 1 0 resp 4) (enc a n (ltk b s))
+    (0 4))
+  (traces
+    ((recv a) (send n) (recv (cat a n))
+      (send (cat a b (enc a n (ltk b s)))) (recv (enc a n (ltk b s)))))
+  (label 13)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (s s) (b b) (n n) (m (cat a n)))))
+  (origs (n (0 1))))
+
+(defskeleton woolam-msg1
+  (vars (m mesg) (n n-0 text) (a s b a-0 name))
+  (defstrand resp 5 (m m) (n n) (a a) (s s) (b b))
+  (defstrand resp 4 (m (cat a n)) (n n-0) (a a-0) (s s) (b b))
+  (precedes ((0 1) (1 2)) ((1 3) (0 4)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n n-0)
+  (operation encryption-test (added-strand resp 4) (enc a n (ltk b s))
+    (0 4))
+  (traces
+    ((recv a) (send n) (recv m) (send (cat a b (enc m (ltk b s))))
+      (recv (enc a n (ltk b s))))
+    ((recv a-0) (send n-0) (recv (cat a n))
+      (send (cat a-0 b (enc a n (ltk b s))))))
+  (label 14)
+  (parent 12)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (s s) (b b) (n n) (m m))))
+  (origs (n-0 (1 1)) (n (0 1))))
+
+(defskeleton woolam-msg1
+  (vars (m mesg) (n text) (a s b name))
+  (defstrand resp 5 (m m) (n n) (a a) (s s) (b b))
+  (defstrand serv 2 (n n) (a a) (s s) (b b))
+  (precedes ((0 1) (1 0)) ((1 1) (0 4)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n)
+  (operation encryption-test (added-strand serv 2) (enc a n (ltk b s))
+    (0 4))
+  (traces
+    ((recv a) (send n) (recv m) (send (cat a b (enc m (ltk b s))))
+      (recv (enc a n (ltk b s))))
+    ((recv (cat a b (enc (enc n (ltk a s)) (ltk b s))))
+      (send (enc a n (ltk b s)))))
+  (label 15)
+  (parent 12)
+  (unrealized (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton woolam-msg1
+  (vars (n text) (a s b name))
+  (defstrand resp 5 (m (enc n (ltk a s))) (n n) (a a) (s s) (b b))
+  (defstrand serv 2 (n n) (a a) (s s) (b b))
+  (precedes ((0 3) (1 0)) ((1 1) (0 4)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n)
+  (operation encryption-test (displaced 2 0 resp 4)
+    (enc (enc n (ltk a s)) (ltk b s)) (1 0))
+  (traces
+    ((recv a) (send n) (recv (enc n (ltk a s)))
+      (send (cat a b (enc (enc n (ltk a s)) (ltk b s))))
+      (recv (enc a n (ltk b s))))
+    ((recv (cat a b (enc (enc n (ltk a s)) (ltk b s))))
+      (send (enc a n (ltk b s)))))
+  (label 16)
+  (parent 15)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton woolam-msg1
+  (vars (m mesg) (n n-0 text) (a s b a-0 name))
+  (defstrand resp 5 (m m) (n n) (a a) (s s) (b b))
+  (defstrand serv 2 (n n) (a a) (s s) (b b))
+  (defstrand resp 4 (m (enc n (ltk a s))) (n n-0) (a a-0) (s s) (b b))
+  (precedes ((0 1) (2 2)) ((1 1) (0 4)) ((2 3) (1 0)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n n-0)
+  (operation encryption-test (added-strand resp 4)
+    (enc (enc n (ltk a s)) (ltk b s)) (1 0))
+  (traces
+    ((recv a) (send n) (recv m) (send (cat a b (enc m (ltk b s))))
+      (recv (enc a n (ltk b s))))
+    ((recv (cat a b (enc (enc n (ltk a s)) (ltk b s))))
+      (send (enc a n (ltk b s))))
+    ((recv a-0) (send n-0) (recv (enc n (ltk a s)))
+      (send (cat a-0 b (enc (enc n (ltk a s)) (ltk b s))))))
+  (label 17)
+  (parent 15)
+  (unrealized (2 2))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton woolam-msg1
+  (vars (n text) (a s b name))
+  (defstrand resp 5 (m (enc n (ltk a s))) (n n) (a a) (s s) (b b))
+  (defstrand serv 2 (n n) (a a) (s s) (b b))
+  (defstrand init 3 (n n) (a a) (s s))
+  (precedes ((0 1) (2 1)) ((0 3) (1 0)) ((1 1) (0 4)) ((2 2) (0 2)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n)
+  (operation encryption-test (added-strand init 3) (enc n (ltk a s))
+    (0 2))
+  (traces
+    ((recv a) (send n) (recv (enc n (ltk a s)))
+      (send (cat a b (enc (enc n (ltk a s)) (ltk b s))))
+      (recv (enc a n (ltk b s))))
+    ((recv (cat a b (enc (enc n (ltk a s)) (ltk b s))))
+      (send (enc a n (ltk b s))))
+    ((send a) (recv n) (send (enc n (ltk a s)))))
+  (label 18)
+  (parent 16)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (s s) (b b) (n n) (m (enc n (ltk a s))))))
+  (origs (n (0 1))))
+
+(defskeleton woolam-msg1
+  (vars (n n-0 text) (a s b a-0 name))
+  (defstrand resp 5 (m (enc n (ltk a s))) (n n) (a a) (s s) (b b))
+  (defstrand serv 2 (n n) (a a) (s s) (b b))
+  (defstrand resp 4 (m n) (n n-0) (a a-0) (s s) (b a))
+  (precedes ((0 1) (2 2)) ((0 3) (1 0)) ((1 1) (0 4)) ((2 3) (0 2)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n n-0)
+  (operation encryption-test (added-strand resp 4) (enc n (ltk a s))
+    (0 2))
+  (traces
+    ((recv a) (send n) (recv (enc n (ltk a s)))
+      (send (cat a b (enc (enc n (ltk a s)) (ltk b s))))
+      (recv (enc a n (ltk b s))))
+    ((recv (cat a b (enc (enc n (ltk a s)) (ltk b s))))
+      (send (enc a n (ltk b s))))
+    ((recv a-0) (send n-0) (recv n)
+      (send (cat a-0 a (enc n (ltk a s))))))
+  (label 19)
+  (parent 16)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (s s) (b b) (n n) (m (enc n (ltk a s))))))
+  (origs (n-0 (2 1)) (n (0 1))))
+
+(defskeleton woolam-msg1
+  (vars (m mesg) (n n-0 text) (a s b a-0 name))
+  (defstrand resp 5 (m m) (n n) (a a) (s s) (b b))
+  (defstrand serv 2 (n n) (a a) (s s) (b b))
+  (defstrand resp 4 (m (enc n (ltk a s))) (n n-0) (a a-0) (s s) (b b))
+  (defstrand init 3 (n n) (a a) (s s))
+  (precedes ((0 1) (3 1)) ((1 1) (0 4)) ((2 3) (1 0)) ((3 2) (2 2)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n n-0)
+  (operation encryption-test (added-strand init 3) (enc n (ltk a s))
+    (2 2))
+  (traces
+    ((recv a) (send n) (recv m) (send (cat a b (enc m (ltk b s))))
+      (recv (enc a n (ltk b s))))
+    ((recv (cat a b (enc (enc n (ltk a s)) (ltk b s))))
+      (send (enc a n (ltk b s))))
+    ((recv a-0) (send n-0) (recv (enc n (ltk a s)))
+      (send (cat a-0 b (enc (enc n (ltk a s)) (ltk b s)))))
+    ((send a) (recv n) (send (enc n (ltk a s)))))
+  (label 20)
+  (parent 17)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (s s) (b b) (n n) (m m))))
+  (origs (n-0 (2 1)) (n (0 1))))
+
+(defskeleton woolam-msg1
+  (vars (n n-0 text) (s b a name))
+  (defstrand resp 5 (m n) (n n) (a b) (s s) (b b))
+  (defstrand serv 2 (n n) (a b) (s s) (b b))
+  (defstrand resp 4 (m (enc n (ltk b s))) (n n-0) (a a) (s s) (b b))
+  (precedes ((0 3) (2 2)) ((1 1) (0 4)) ((2 3) (1 0)))
+  (non-orig (ltk b s))
+  (uniq-orig n n-0)
+  (operation encryption-test (displaced 3 0 resp 4) (enc n (ltk a-0 s))
+    (2 2))
+  (traces
+    ((recv b) (send n) (recv n) (send (cat b b (enc n (ltk b s))))
+      (recv (enc b n (ltk b s))))
+    ((recv (cat b b (enc (enc n (ltk b s)) (ltk b s))))
+      (send (enc b n (ltk b s))))
+    ((recv a) (send n-0) (recv (enc n (ltk b s)))
+      (send (cat a b (enc (enc n (ltk b s)) (ltk b s))))))
+  (label 21)
+  (parent 17)
+  (realized)
+  (shape)
+  (maps ((0) ((a b) (s s) (b b) (n n) (m n))))
+  (origs (n (0 1)) (n-0 (2 1))))
+
+(defskeleton woolam-msg1
+  (vars (m mesg) (n n-0 n-1 text) (a s b a-0 a-1 name))
+  (defstrand resp 5 (m m) (n n) (a a) (s s) (b b))
+  (defstrand serv 2 (n n) (a a) (s s) (b b))
+  (defstrand resp 4 (m (enc n (ltk a s))) (n n-0) (a a-0) (s s) (b b))
+  (defstrand resp 4 (m n) (n n-1) (a a-1) (s s) (b a))
+  (precedes ((0 1) (3 2)) ((1 1) (0 4)) ((2 3) (1 0)) ((3 3) (2 2)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n n-0 n-1)
+  (operation encryption-test (added-strand resp 4) (enc n (ltk a s))
+    (2 2))
+  (traces
+    ((recv a) (send n) (recv m) (send (cat a b (enc m (ltk b s))))
+      (recv (enc a n (ltk b s))))
+    ((recv (cat a b (enc (enc n (ltk a s)) (ltk b s))))
+      (send (enc a n (ltk b s))))
+    ((recv a-0) (send n-0) (recv (enc n (ltk a s)))
+      (send (cat a-0 b (enc (enc n (ltk a s)) (ltk b s)))))
+    ((recv a-1) (send n-1) (recv n)
+      (send (cat a-1 a (enc n (ltk a s))))))
+  (label 22)
+  (parent 17)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (s s) (b b) (n n) (m m))))
+  (origs (n-1 (3 1)) (n-0 (2 1)) (n (0 1))))
 
 (comment "Nothing left to do")
diff --git a/tst/wrap_decrypt.lsp b/tst/wrap_decrypt.lsp
deleted file mode 100644
--- a/tst/wrap_decrypt.lsp
+++ /dev/null
@@ -1,57 +0,0 @@
-(herald wrap-decrypt
-   (bound 10)
-;  (limit 1)
-)
-
-(defprotocol wrap-decrypt basic
-  (defrole make
-    (vars (k skey))
-    (trace
-     (init (cat k "init"))
-     (send (hash k)))
-    (uniq-gen k)
-)
-  (defrole set-wrap
-    (vars (k skey) (cur mesg))
-    (trace
-     (tran (cat k cur) (cat k "wrap")))
-    (neq (cur "wrap"))
-)
-  (defrole set-decrypt
-    (vars (k skey) (cur mesg))
-    (trace
-     (tran (cat k cur) (cat k "decrypt")))
-    (neq (cur "decrypt"))
-)
-  (defrole wrap
-    (vars (k0 k1 skey) (cur mesg))
-    (trace
-     (recv (hash k0))
-     (recv (hash k1))
-     (obsv (cat k0 cur))
-     (obsv (cat k1 "wrap"))
-     (send (enc k0 k1))))
-  (defrole decrypt
-    (vars (x mesg) (k skey))
-    (trace
-     (recv (enc x k))
-     (recv (hash k))
-     (obsv (cat k "decrypt"))
-     (send x))))
-
-(defskeleton wrap-decrypt
-  (vars (k kp skey))
-  (deflistener k)
-  (defstrand decrypt 4 (x k) (k kp))
-  (defstrand make 2 (k kp))
-  (defstrand set-decrypt 1 (k kp) (cur "wrap"))
-  (defstrand set-wrap 1 (k kp) (cur "init"))
-  (defstrand wrap 5 (k0 k) (k1 kp) (cur "init"))
-  (defstrand make 2 (k k))
-  (precedes ((1 3) (0 0)) ((2 0) (4 0)) ((2 1) (5 1)) ((3 0) (1 2)) ((4 0) (5 3))
-	    ((4 0) (3 0)) ((5 4) (1 0)) ((6 0) (5 2)) ((6 1) (5 0))))
-
-(defskeleton wrap-decrypt
-  (vars (k skey))
-  (deflistener k)
-  (pen-non-orig k))
diff --git a/tst/wrap_decrypt.tst b/tst/wrap_decrypt.tst
# file too large to diff: tst/wrap_decrypt.tst
diff --git a/tst/yahalom-6.3.6.scm b/tst/yahalom-6.3.6.scm
new file mode 100644
--- /dev/null
+++ b/tst/yahalom-6.3.6.scm
@@ -0,0 +1,53 @@
+(herald "Yahalom Protocol"
+  (comment "A Survey of Authentication Protocol Literature:"
+	   "Version 1.0, John Clark and Jeremy Jacob,"
+	   "Yahalom Protocol, Section 6.3.6, Page 49")
+  (url "http://www.eecs.umich.edu/acal/swerve/docs/49-1.pdf")
+  (bound 15))
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b s name) (n-a n-b text) (k skey) (blob mesg))
+    (trace
+     (send (cat a n-a))
+     (recv (cat (enc b k n-a n-b (ltk a s)) blob))
+     (send (cat blob (enc n-b k)))))
+  (defrole resp
+    (vars (a b s name) (n-a n-b text) (k skey))
+    (trace
+     (recv (cat a n-a))
+     (send (cat b (enc a n-a n-b (ltk b s))))
+     (recv (cat (enc a k (ltk b s)) (enc n-b k)))))
+  (defrole serv
+    (vars (a b s name) (n-a n-b text) (k skey))
+    (trace
+     (recv (cat b (enc a n-a n-b (ltk b s))))
+     (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s)))))
+    (uniq-orig k))
+  (comment "Yahalom protocol, Section 6.3.6, Page 49")
+  (url "http://www.eecs.umich.edu/acal/swerve/docs/49-1.pdf"))
+
+(defskeleton yahalom
+  (vars (a b s name) (n-a n-b text))
+  (defstrand init 3 (a a) (b b) (s s) (n-a n-a) (n-b n-b))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n-a n-b))
+
+(defskeleton yahalom
+  (vars (a b s name) (n-a n-b text) (k skey))
+  (defstrand resp 3 (a a) (b b) (s s) (n-a n-a) (n-b n-b) (k k))
+  (deflistener k)
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n-a n-b))
+
+(defskeleton yahalom
+  (vars (a b s name) (n-a n-b text))
+  (defstrand resp 3 (a a) (b b) (s s) (n-a n-a) (n-b n-b))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n-a n-b))
+
+(defskeleton yahalom
+  (vars (a b s name) (n-a n-b text))
+  (defstrand serv 2 (a a) (b b) (s s) (n-a n-a) (n-b n-b))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n-a n-b))
diff --git a/tst/yahalom-6.3.6.tst b/tst/yahalom-6.3.6.tst
new file mode 100644
--- /dev/null
+++ b/tst/yahalom-6.3.6.tst
@@ -0,0 +1,1010 @@
+(herald "Yahalom Protocol"
+  (comment "A Survey of Authentication Protocol Literature:"
+    "Version 1.0, John Clark and Jeremy Jacob,"
+    "Yahalom Protocol, Section 6.3.6, Page 49")
+  (url "http://www.eecs.umich.edu/acal/swerve/docs/49-1.pdf")
+  (bound 15))
+
+(comment "CPSA 4.4.1")
+(comment "All input read from tst/yahalom-6.3.6.scm")
+(comment "Strand count bounded at 15")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b s name) (n-a n-b text) (k skey) (blob mesg))
+    (trace (send (cat a n-a))
+      (recv (cat (enc b k n-a n-b (ltk a s)) blob))
+      (send (cat blob (enc n-b k)))))
+  (defrole resp
+    (vars (a b s name) (n-a n-b text) (k skey))
+    (trace (recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k)))))
+  (defrole serv
+    (vars (a b s name) (n-a n-b text) (k skey))
+    (trace (recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s)))))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Yahalom protocol, Section 6.3.6, Page 49")
+  (url "http://www.eecs.umich.edu/acal/swerve/docs/49-1.pdf"))
+
+(defskeleton yahalom
+  (vars (blob mesg) (k skey) (n-a n-b text) (a b s name))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a) (n-b n-b) (a a) (b b)
+    (s s))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n-a n-b)
+  (traces
+    ((send (cat a n-a)) (recv (cat (enc b k n-a n-b (ltk a s)) blob))
+      (send (cat blob (enc n-b k)))))
+  (label 0)
+  (unrealized (0 1))
+  (origs (n-a (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (blob mesg) (k skey) (n-a n-b text) (a b s name))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a) (n-b n-b) (a a) (b b)
+    (s s))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k n-a n-b)
+  (operation encryption-test (added-strand serv 2)
+    (enc b k n-a n-b (ltk a s)) (0 1))
+  (traces
+    ((send (cat a n-a)) (recv (cat (enc b k n-a n-b (ltk a s)) blob))
+      (send (cat blob (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s))))))
+  (label 1)
+  (parent 0)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (blob mesg) (k skey) (n-a n-b text) (a b s name))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a) (n-b n-b) (a a) (b b)
+    (s s))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand resp 2 (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k n-a n-b)
+  (operation encryption-test (added-strand resp 2)
+    (enc a n-a n-b (ltk b s)) (1 0))
+  (traces
+    ((send (cat a n-a)) (recv (cat (enc b k n-a n-b (ltk a s)) blob))
+      (send (cat blob (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s)))))
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))))
+  (label 2)
+  (parent 1)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (s s) (n-a n-a) (n-b n-b) (k k) (blob blob))))
+  (origs (k (1 1)) (n-a (0 0)) (n-b (2 1))))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b s name) (n-a n-b text) (k skey) (blob mesg))
+    (trace (send (cat a n-a))
+      (recv (cat (enc b k n-a n-b (ltk a s)) blob))
+      (send (cat blob (enc n-b k)))))
+  (defrole resp
+    (vars (a b s name) (n-a n-b text) (k skey))
+    (trace (recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k)))))
+  (defrole serv
+    (vars (a b s name) (n-a n-b text) (k skey))
+    (trace (recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s)))))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Yahalom protocol, Section 6.3.6, Page 49")
+  (url "http://www.eecs.umich.edu/acal/swerve/docs/49-1.pdf"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b s name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (deflistener k)
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n-a n-b)
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k)))) ((recv k) (send k)))
+  (label 3)
+  (unrealized (0 2))
+  (origs (n-b (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 text) (a b s name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (deflistener k)
+  (defstrand serv 2 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b) (s s))
+  (precedes ((2 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k n-a n-b)
+  (operation encryption-test (added-strand serv 2) (enc a k (ltk b s))
+    (0 2))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k)))) ((recv k) (send k))
+    ((recv (cat b (enc a n-a-0 n-b-0 (ltk b s))))
+      (send (cat (enc b k n-a-0 n-b-0 (ltk a s)) (enc a k (ltk b s))))))
+  (label 4)
+  (parent 3)
+  (unrealized (0 2) (1 0) (2 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b s name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (deflistener k)
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (precedes ((0 1) (2 0)) ((2 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k n-a n-b)
+  (operation encryption-test (displaced 3 0 resp 2)
+    (enc a n-a-0 n-b-0 (ltk b s)) (2 0))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k)))) ((recv k) (send k))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s))))))
+  (label 5)
+  (parent 4)
+  (unrealized (0 2) (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 text) (a b s name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (deflistener k)
+  (defstrand serv 2 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b) (s s))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (a a) (b b) (s s))
+  (precedes ((2 1) (0 2)) ((2 1) (1 0)) ((3 1) (2 0)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k n-a n-b)
+  (operation encryption-test (added-strand resp 2)
+    (enc a n-a-0 n-b-0 (ltk b s)) (2 0))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k)))) ((recv k) (send k))
+    ((recv (cat b (enc a n-a-0 n-b-0 (ltk b s))))
+      (send (cat (enc b k n-a-0 n-b-0 (ltk a s)) (enc a k (ltk b s)))))
+    ((recv (cat a n-a-0)) (send (cat b (enc a n-a-0 n-b-0 (ltk b s))))))
+  (label 6)
+  (parent 4)
+  (unrealized (0 2) (1 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b s name) (n-a n-b text) (k skey) (blob mesg))
+    (trace (send (cat a n-a))
+      (recv (cat (enc b k n-a n-b (ltk a s)) blob))
+      (send (cat blob (enc n-b k)))))
+  (defrole resp
+    (vars (a b s name) (n-a n-b text) (k skey))
+    (trace (recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k)))))
+  (defrole serv
+    (vars (a b s name) (n-a n-b text) (k skey))
+    (trace (recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s)))))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Yahalom protocol, Section 6.3.6, Page 49")
+  (url "http://www.eecs.umich.edu/acal/swerve/docs/49-1.pdf"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b s name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig n-a n-b)
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k)))))
+  (label 7)
+  (unrealized (0 2))
+  (origs (n-b (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 text) (a b s name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b) (s s))
+  (precedes ((1 1) (0 2)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k n-a n-b)
+  (operation encryption-test (added-strand serv 2) (enc a k (ltk b s))
+    (0 2))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a-0 n-b-0 (ltk b s))))
+      (send (cat (enc b k n-a-0 n-b-0 (ltk a s)) (enc a k (ltk b s))))))
+  (label 8)
+  (parent 7)
+  (unrealized (0 2) (1 0))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b s name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (precedes ((0 1) (1 0)) ((1 1) (0 2)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k n-a n-b)
+  (operation encryption-test (displaced 2 0 resp 2)
+    (enc a n-a-0 n-b-0 (ltk b s)) (1 0))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s))))))
+  (label 9)
+  (parent 8)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 text) (a b s name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b) (s s))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (a a) (b b) (s s))
+  (precedes ((1 1) (0 2)) ((2 1) (1 0)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k n-a n-b)
+  (operation encryption-test (added-strand resp 2)
+    (enc a n-a-0 n-b-0 (ltk b s)) (1 0))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a-0 n-b-0 (ltk b s))))
+      (send (cat (enc b k n-a-0 n-b-0 (ltk a s)) (enc a k (ltk b s)))))
+    ((recv (cat a n-a-0)) (send (cat b (enc a n-a-0 n-b-0 (ltk b s))))))
+  (label 10)
+  (parent 8)
+  (unrealized (0 2))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (blob mesg) (k skey) (n-a n-b n-a-0 text)
+    (a b s a-0 b-0 s-0 name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a-0) (n-b n-b) (a a-0)
+    (b b-0) (s s-0))
+  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((2 2) (0 2)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k n-a n-b)
+  (operation encryption-test (added-strand init 3) (enc n-b k) (0 2))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s)))))
+    ((send (cat a-0 n-a-0))
+      (recv (cat (enc b-0 k n-a-0 n-b (ltk a-0 s-0)) blob))
+      (send (cat blob (enc n-b k)))))
+  (label 11)
+  (parent 9)
+  (unrealized (2 1))
+  (comment "3 in cohort - 3 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b s name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (deflistener k)
+  (precedes ((0 1) (1 0)) ((1 1) (2 0)) ((2 1) (0 2)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k n-a n-b)
+  (operation encryption-test (added-listener k) (enc n-b k) (0 2))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s)))))
+    ((recv k) (send k)))
+  (label 12)
+  (parent 9)
+  (unrealized (0 2) (2 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton yahalom
+  (vars (blob mesg) (k skey) (n-a n-b n-a-0 n-b-0 n-a-1 text)
+    (a b s a-0 b-0 s-0 name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b) (s s))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a-1) (n-b n-b) (a a-0)
+    (b b-0) (s s-0))
+  (precedes ((0 1) (3 1)) ((1 1) (3 1)) ((2 1) (1 0)) ((3 2) (0 2)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k n-a n-b)
+  (operation encryption-test (added-strand init 3) (enc n-b k) (0 2))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a-0 n-b-0 (ltk b s))))
+      (send (cat (enc b k n-a-0 n-b-0 (ltk a s)) (enc a k (ltk b s)))))
+    ((recv (cat a n-a-0)) (send (cat b (enc a n-a-0 n-b-0 (ltk b s)))))
+    ((send (cat a-0 n-a-1))
+      (recv (cat (enc b-0 k n-a-1 n-b (ltk a-0 s-0)) blob))
+      (send (cat blob (enc n-b k)))))
+  (label 13)
+  (parent 10)
+  (unrealized (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b n-a-0 n-b-0 text) (a b s name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b) (s s))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (a a) (b b) (s s))
+  (deflistener k)
+  (precedes ((1 1) (3 0)) ((2 1) (1 0)) ((3 1) (0 2)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k n-a n-b)
+  (operation encryption-test (added-listener k) (enc n-b k) (0 2))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a-0 n-b-0 (ltk b s))))
+      (send (cat (enc b k n-a-0 n-b-0 (ltk a s)) (enc a k (ltk b s)))))
+    ((recv (cat a n-a-0)) (send (cat b (enc a n-a-0 n-b-0 (ltk b s)))))
+    ((recv k) (send k)))
+  (label 14)
+  (parent 10)
+  (unrealized (0 2) (3 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton yahalom
+  (vars (blob mesg) (k skey) (n-a n-b text) (a b s name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a) (n-b n-b) (a a) (b b)
+    (s s))
+  (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((2 0) (0 0)) ((2 2) (0 2)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k n-a n-b)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (s-0 s) (n-a-0 n-a))
+    n-b (2 1) (enc a n-a n-b (ltk b s)) (enc b k n-a n-b (ltk a s)))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s)))))
+    ((send (cat a n-a)) (recv (cat (enc b k n-a n-b (ltk a s)) blob))
+      (send (cat blob (enc n-b k)))))
+  (label 15)
+  (parent 11)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (s s) (n-a n-a) (n-b n-b) (k k))))
+  (origs (k (1 1)) (n-a (2 0)) (n-b (0 1))))
+
+(defskeleton yahalom
+  (vars (blob blob-0 mesg) (k skey) (n-a n-b n-a-0 text)
+    (a b s a-0 b-0 s-0 name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a-0) (n-b n-b) (a a-0)
+    (b b-0) (s s-0))
+  (defstrand init 3 (blob blob-0) (k k) (n-a n-a) (n-b n-b) (a a) (b b)
+    (s s))
+  (precedes ((0 1) (1 0)) ((1 1) (3 1)) ((2 2) (0 2)) ((3 0) (0 0))
+    ((3 2) (2 1)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k n-a n-b)
+  (operation nonce-test (added-strand init 3) n-b (2 1)
+    (enc a n-a n-b (ltk b s)) (enc b k n-a n-b (ltk a s)))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s)))))
+    ((send (cat a-0 n-a-0))
+      (recv (cat (enc b-0 k n-a-0 n-b (ltk a-0 s-0)) blob))
+      (send (cat blob (enc n-b k))))
+    ((send (cat a n-a)) (recv (cat (enc b k n-a n-b (ltk a s)) blob-0))
+      (send (cat blob-0 (enc n-b k)))))
+  (label 16)
+  (parent 11)
+  (unrealized (2 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (blob mesg) (k k-0 skey) (n-a n-b n-a-0 text)
+    (a b s a-0 b-0 s-0 name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a-0) (n-b n-b) (a a-0)
+    (b b-0) (s s-0))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((2 2) (0 2))
+    ((3 1) (2 1)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k k-0 n-a n-b)
+  (operation nonce-test (added-strand serv 2) n-b (2 1)
+    (enc a n-a n-b (ltk b s)) (enc b k n-a n-b (ltk a s)))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s)))))
+    ((send (cat a-0 n-a-0))
+      (recv (cat (enc b-0 k n-a-0 n-b (ltk a-0 s-0)) blob))
+      (send (cat blob (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k-0 n-a n-b (ltk a s)) (enc a k-0 (ltk b s))))))
+  (label 17)
+  (parent 11)
+  (seen 19)
+  (unrealized (2 1))
+  (comment "3 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (blob mesg) (k k-0 skey) (n-a n-b n-a-0 n-b-0 n-a-1 text)
+    (a b s a-0 b-0 s-0 name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b) (s s))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a-1) (n-b n-b) (a a-0)
+    (b b-0) (s s-0))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (precedes ((0 1) (4 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((3 2) (0 2))
+    ((4 1) (3 1)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k k-0 n-a n-b)
+  (operation nonce-test (added-strand serv 2) n-b (3 1)
+    (enc a n-a n-b (ltk b s)))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a-0 n-b-0 (ltk b s))))
+      (send (cat (enc b k n-a-0 n-b-0 (ltk a s)) (enc a k (ltk b s)))))
+    ((recv (cat a n-a-0)) (send (cat b (enc a n-a-0 n-b-0 (ltk b s)))))
+    ((send (cat a-0 n-a-1))
+      (recv (cat (enc b-0 k n-a-1 n-b (ltk a-0 s-0)) blob))
+      (send (cat blob (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k-0 n-a n-b (ltk a s)) (enc a k-0 (ltk b s))))))
+  (label 18)
+  (parent 13)
+  (unrealized (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (blob blob-0 mesg) (k k-0 skey) (n-a n-b n-a-0 text)
+    (a b s a-0 b-0 s-0 name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a-0) (n-b n-b) (a a-0)
+    (b b-0) (s s-0))
+  (defstrand init 3 (blob blob-0) (k k) (n-a n-a) (n-b n-b) (a a) (b b)
+    (s s))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((2 2) (0 2))
+    ((3 0) (0 0)) ((3 2) (2 1)) ((4 1) (2 1)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k k-0 n-a n-b)
+  (operation nonce-test (added-strand serv 2) n-b (2 1) (enc n-b k)
+    (enc a n-a n-b (ltk b s)) (enc b k n-a n-b (ltk a s)))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s)))))
+    ((send (cat a-0 n-a-0))
+      (recv (cat (enc b-0 k n-a-0 n-b (ltk a-0 s-0)) blob))
+      (send (cat blob (enc n-b k))))
+    ((send (cat a n-a)) (recv (cat (enc b k n-a n-b (ltk a s)) blob-0))
+      (send (cat blob-0 (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k-0 n-a n-b (ltk a s)) (enc a k-0 (ltk b s))))))
+  (label 19)
+  (parent 16)
+  (unrealized (2 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (blob blob-0 mesg) (k skey) (n-a n-b n-a-0 text)
+    (a b s a-0 b-0 s-0 name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a-0) (n-b n-b) (a a-0)
+    (b b-0) (s s-0))
+  (defstrand init 3 (blob blob-0) (k k) (n-a n-a) (n-b n-b) (a a) (b b)
+    (s s))
+  (deflistener k)
+  (precedes ((0 1) (1 0)) ((1 1) (3 1)) ((1 1) (4 0)) ((2 2) (0 2))
+    ((3 0) (0 0)) ((3 2) (2 1)) ((4 1) (2 1)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k n-a n-b)
+  (operation nonce-test (added-listener k) n-b (2 1) (enc n-b k)
+    (enc a n-a n-b (ltk b s)) (enc b k n-a n-b (ltk a s)))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s)))))
+    ((send (cat a-0 n-a-0))
+      (recv (cat (enc b-0 k n-a-0 n-b (ltk a-0 s-0)) blob))
+      (send (cat blob (enc n-b k))))
+    ((send (cat a n-a)) (recv (cat (enc b k n-a n-b (ltk a s)) blob-0))
+      (send (cat blob-0 (enc n-b k)))) ((recv k) (send k)))
+  (label 20)
+  (parent 16)
+  (unrealized (4 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton yahalom
+  (vars (blob mesg) (k k-0 skey) (n-a n-b text) (a b s name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a) (n-b n-b) (a a) (b b)
+    (s s))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((2 0) (0 0))
+    ((2 2) (0 2)) ((3 1) (2 1)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k k-0 n-a n-b)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (s-0 s) (n-a-0 n-a))
+    n-b (2 1) (enc a n-a n-b (ltk b s)) (enc b k n-a n-b (ltk a s))
+    (enc b k-0 n-a n-b (ltk a s)))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s)))))
+    ((send (cat a n-a)) (recv (cat (enc b k n-a n-b (ltk a s)) blob))
+      (send (cat blob (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k-0 n-a n-b (ltk a s)) (enc a k-0 (ltk b s))))))
+  (label 21)
+  (parent 17)
+  (seen 15)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton yahalom
+  (vars (blob blob-0 mesg) (k k-0 skey) (n-a n-b n-a-0 text)
+    (a b s a-0 b-0 s-0 name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a-0) (n-b n-b) (a a-0)
+    (b b-0) (s s-0))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob-0) (k k-0) (n-a n-a) (n-b n-b) (a a)
+    (b b) (s s))
+  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((2 2) (0 2))
+    ((3 1) (4 1)) ((4 0) (0 0)) ((4 2) (2 1)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k k-0 n-a n-b)
+  (operation nonce-test (added-strand init 3) n-b (2 1)
+    (enc a n-a n-b (ltk b s)) (enc b k n-a n-b (ltk a s))
+    (enc b k-0 n-a n-b (ltk a s)))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s)))))
+    ((send (cat a-0 n-a-0))
+      (recv (cat (enc b-0 k n-a-0 n-b (ltk a-0 s-0)) blob))
+      (send (cat blob (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k-0 n-a n-b (ltk a s)) (enc a k-0 (ltk b s)))))
+    ((send (cat a n-a))
+      (recv (cat (enc b k-0 n-a n-b (ltk a s)) blob-0))
+      (send (cat blob-0 (enc n-b k-0)))))
+  (label 22)
+  (parent 17)
+  (unrealized (2 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (blob blob-0 mesg) (k k-0 skey) (n-a n-b n-a-0 n-b-0 n-a-1 text)
+    (a b s a-0 b-0 s-0 name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b) (s s))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a-1) (n-b n-b) (a a-0)
+    (b b-0) (s s-0))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob-0) (k k-0) (n-a n-a) (n-b n-b) (a a)
+    (b b) (s s))
+  (precedes ((0 1) (4 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((3 2) (0 2))
+    ((4 1) (5 1)) ((5 0) (0 0)) ((5 2) (3 1)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k k-0 n-a n-b)
+  (operation nonce-test (added-strand init 3) n-b (3 1)
+    (enc a n-a n-b (ltk b s)) (enc b k-0 n-a n-b (ltk a s)))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a-0 n-b-0 (ltk b s))))
+      (send (cat (enc b k n-a-0 n-b-0 (ltk a s)) (enc a k (ltk b s)))))
+    ((recv (cat a n-a-0)) (send (cat b (enc a n-a-0 n-b-0 (ltk b s)))))
+    ((send (cat a-0 n-a-1))
+      (recv (cat (enc b-0 k n-a-1 n-b (ltk a-0 s-0)) blob))
+      (send (cat blob (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k-0 n-a n-b (ltk a s)) (enc a k-0 (ltk b s)))))
+    ((send (cat a n-a))
+      (recv (cat (enc b k-0 n-a n-b (ltk a s)) blob-0))
+      (send (cat blob-0 (enc n-b k-0)))))
+  (label 23)
+  (parent 18)
+  (unrealized (3 1))
+  (comment "2 in cohort - 2 not yet seen"))
+
+(defskeleton yahalom
+  (vars (blob blob-0 mesg) (k k-0 skey) (n-a n-b n-a-0 text)
+    (a b s a-0 b-0 s-0 name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a-0) (n-b n-b) (a a-0)
+    (b b-0) (s s-0))
+  (defstrand init 3 (blob blob-0) (k k) (n-a n-a) (n-b n-b) (a a) (b b)
+    (s s))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (deflistener k)
+  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((1 1) (5 0))
+    ((2 2) (0 2)) ((3 0) (0 0)) ((3 2) (2 1)) ((4 1) (2 1))
+    ((5 1) (2 1)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k k-0 n-a n-b)
+  (operation nonce-test (added-listener k) n-b (2 1) (enc n-b k)
+    (enc a n-a n-b (ltk b s)) (enc b k n-a n-b (ltk a s))
+    (enc b k-0 n-a n-b (ltk a s)))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s)))))
+    ((send (cat a-0 n-a-0))
+      (recv (cat (enc b-0 k n-a-0 n-b (ltk a-0 s-0)) blob))
+      (send (cat blob (enc n-b k))))
+    ((send (cat a n-a)) (recv (cat (enc b k n-a n-b (ltk a s)) blob-0))
+      (send (cat blob-0 (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k-0 n-a n-b (ltk a s)) (enc a k-0 (ltk b s)))))
+    ((recv k) (send k)))
+  (label 24)
+  (parent 19)
+  (unrealized (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton yahalom
+  (vars (blob blob-0 mesg) (k k-0 k-1 skey) (n-a n-b n-a-0 text)
+    (a b s a-0 b-0 s-0 name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a-0) (n-b n-b) (a a-0)
+    (b b-0) (s s-0))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob-0) (k k-0) (n-a n-a) (n-b n-b) (a a)
+    (b b) (s s))
+  (defstrand serv 2 (k k-1) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((0 1) (5 0)) ((1 1) (2 1))
+    ((2 2) (0 2)) ((3 1) (4 1)) ((4 0) (0 0)) ((4 2) (2 1))
+    ((5 1) (2 1)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k k-0 k-1 n-a n-b)
+  (operation nonce-test (added-strand serv 2) n-b (2 1) (enc n-b k-0)
+    (enc a n-a n-b (ltk b s)) (enc b k n-a n-b (ltk a s))
+    (enc b k-0 n-a n-b (ltk a s)))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s)))))
+    ((send (cat a-0 n-a-0))
+      (recv (cat (enc b-0 k n-a-0 n-b (ltk a-0 s-0)) blob))
+      (send (cat blob (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k-0 n-a n-b (ltk a s)) (enc a k-0 (ltk b s)))))
+    ((send (cat a n-a))
+      (recv (cat (enc b k-0 n-a n-b (ltk a s)) blob-0))
+      (send (cat blob-0 (enc n-b k-0))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k-1 n-a n-b (ltk a s)) (enc a k-1 (ltk b s))))))
+  (label 25)
+  (parent 22)
+  (unrealized (2 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (blob blob-0 mesg) (k k-0 skey) (n-a n-b n-a-0 text)
+    (a b s a-0 b-0 s-0 name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a-0) (n-b n-b) (a a-0)
+    (b b-0) (s s-0))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob-0) (k k-0) (n-a n-a) (n-b n-b) (a a)
+    (b b) (s s))
+  (deflistener k-0)
+  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((2 2) (0 2))
+    ((3 1) (4 1)) ((3 1) (5 0)) ((4 0) (0 0)) ((4 2) (2 1))
+    ((5 1) (2 1)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k k-0 n-a n-b)
+  (operation nonce-test (added-listener k-0) n-b (2 1) (enc n-b k-0)
+    (enc a n-a n-b (ltk b s)) (enc b k n-a n-b (ltk a s))
+    (enc b k-0 n-a n-b (ltk a s)))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s)))))
+    ((send (cat a-0 n-a-0))
+      (recv (cat (enc b-0 k n-a-0 n-b (ltk a-0 s-0)) blob))
+      (send (cat blob (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k-0 n-a n-b (ltk a s)) (enc a k-0 (ltk b s)))))
+    ((send (cat a n-a))
+      (recv (cat (enc b k-0 n-a n-b (ltk a s)) blob-0))
+      (send (cat blob-0 (enc n-b k-0)))) ((recv k-0) (send k-0)))
+  (label 26)
+  (parent 22)
+  (unrealized (2 1) (5 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton yahalom
+  (vars (blob blob-0 mesg) (k k-0 k-1 skey)
+    (n-a n-b n-a-0 n-b-0 n-a-1 text) (a b s a-0 b-0 s-0 name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b) (s s))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a-1) (n-b n-b) (a a-0)
+    (b b-0) (s s-0))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob-0) (k k-0) (n-a n-a) (n-b n-b) (a a)
+    (b b) (s s))
+  (defstrand serv 2 (k k-1) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (precedes ((0 1) (4 0)) ((0 1) (6 0)) ((1 1) (3 1)) ((2 1) (1 0))
+    ((3 2) (0 2)) ((4 1) (5 1)) ((5 0) (0 0)) ((5 2) (3 1))
+    ((6 1) (3 1)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k k-0 k-1 n-a n-b)
+  (operation nonce-test (added-strand serv 2) n-b (3 1) (enc n-b k-0)
+    (enc a n-a n-b (ltk b s)) (enc b k-0 n-a n-b (ltk a s)))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a-0 n-b-0 (ltk b s))))
+      (send (cat (enc b k n-a-0 n-b-0 (ltk a s)) (enc a k (ltk b s)))))
+    ((recv (cat a n-a-0)) (send (cat b (enc a n-a-0 n-b-0 (ltk b s)))))
+    ((send (cat a-0 n-a-1))
+      (recv (cat (enc b-0 k n-a-1 n-b (ltk a-0 s-0)) blob))
+      (send (cat blob (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k-0 n-a n-b (ltk a s)) (enc a k-0 (ltk b s)))))
+    ((send (cat a n-a))
+      (recv (cat (enc b k-0 n-a n-b (ltk a s)) blob-0))
+      (send (cat blob-0 (enc n-b k-0))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k-1 n-a n-b (ltk a s)) (enc a k-1 (ltk b s))))))
+  (label 27)
+  (parent 23)
+  (unrealized (3 1))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (blob blob-0 mesg) (k k-0 skey) (n-a n-b n-a-0 n-b-0 n-a-1 text)
+    (a b s a-0 b-0 s-0 name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b) (s s))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a-1) (n-b n-b) (a a-0)
+    (b b-0) (s s-0))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob-0) (k k-0) (n-a n-a) (n-b n-b) (a a)
+    (b b) (s s))
+  (deflistener k-0)
+  (precedes ((0 1) (4 0)) ((1 1) (3 1)) ((2 1) (1 0)) ((3 2) (0 2))
+    ((4 1) (5 1)) ((4 1) (6 0)) ((5 0) (0 0)) ((5 2) (3 1))
+    ((6 1) (3 1)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k k-0 n-a n-b)
+  (operation nonce-test (added-listener k-0) n-b (3 1) (enc n-b k-0)
+    (enc a n-a n-b (ltk b s)) (enc b k-0 n-a n-b (ltk a s)))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a-0 n-b-0 (ltk b s))))
+      (send (cat (enc b k n-a-0 n-b-0 (ltk a s)) (enc a k (ltk b s)))))
+    ((recv (cat a n-a-0)) (send (cat b (enc a n-a-0 n-b-0 (ltk b s)))))
+    ((send (cat a-0 n-a-1))
+      (recv (cat (enc b-0 k n-a-1 n-b (ltk a-0 s-0)) blob))
+      (send (cat blob (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k-0 n-a n-b (ltk a s)) (enc a k-0 (ltk b s)))))
+    ((send (cat a n-a))
+      (recv (cat (enc b k-0 n-a n-b (ltk a s)) blob-0))
+      (send (cat blob-0 (enc n-b k-0)))) ((recv k-0) (send k-0)))
+  (label 28)
+  (parent 23)
+  (unrealized (3 1) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton yahalom
+  (vars (blob blob-0 mesg) (k k-0 k-1 skey) (n-a n-b n-a-0 text)
+    (a b s a-0 b-0 s-0 name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a-0) (n-b n-b) (a a-0)
+    (b b-0) (s s-0))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob-0) (k k-0) (n-a n-a) (n-b n-b) (a a)
+    (b b) (s s))
+  (defstrand serv 2 (k k-1) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (deflistener k-0)
+  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((0 1) (5 0)) ((1 1) (2 1))
+    ((2 2) (0 2)) ((3 1) (4 1)) ((3 1) (6 0)) ((4 0) (0 0))
+    ((4 2) (2 1)) ((5 1) (2 1)) ((6 1) (2 1)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k k-0 k-1 n-a n-b)
+  (operation nonce-test (added-listener k-0) n-b (2 1) (enc n-b k-0)
+    (enc a n-a n-b (ltk b s)) (enc b k n-a n-b (ltk a s))
+    (enc b k-0 n-a n-b (ltk a s)) (enc b k-1 n-a n-b (ltk a s)))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s)))))
+    ((send (cat a-0 n-a-0))
+      (recv (cat (enc b-0 k n-a-0 n-b (ltk a-0 s-0)) blob))
+      (send (cat blob (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k-0 n-a n-b (ltk a s)) (enc a k-0 (ltk b s)))))
+    ((send (cat a n-a))
+      (recv (cat (enc b k-0 n-a n-b (ltk a s)) blob-0))
+      (send (cat blob-0 (enc n-b k-0))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k-1 n-a n-b (ltk a s)) (enc a k-1 (ltk b s)))))
+    ((recv k-0) (send k-0)))
+  (label 29)
+  (parent 25)
+  (unrealized (2 1) (6 0))
+  (dead)
+  (comment "empty cohort"))
+
+(defskeleton yahalom
+  (vars (blob blob-0 mesg) (k k-0 k-1 skey)
+    (n-a n-b n-a-0 n-b-0 n-a-1 text) (a b s a-0 b-0 s-0 name))
+  (defstrand resp 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand serv 2 (k k) (n-a n-a-0) (n-b n-b-0) (a a) (b b) (s s))
+  (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob) (k k) (n-a n-a-1) (n-b n-b) (a a-0)
+    (b b-0) (s s-0))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand init 3 (blob blob-0) (k k-0) (n-a n-a) (n-b n-b) (a a)
+    (b b) (s s))
+  (defstrand serv 2 (k k-1) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (deflistener k-0)
+  (precedes ((0 1) (4 0)) ((0 1) (6 0)) ((1 1) (3 1)) ((2 1) (1 0))
+    ((3 2) (0 2)) ((4 1) (5 1)) ((4 1) (7 0)) ((5 0) (0 0))
+    ((5 2) (3 1)) ((6 1) (3 1)) ((7 1) (3 1)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k k-0 k-1 n-a n-b)
+  (operation nonce-test (added-listener k-0) n-b (3 1) (enc n-b k-0)
+    (enc a n-a n-b (ltk b s)) (enc b k-0 n-a n-b (ltk a s))
+    (enc b k-1 n-a n-b (ltk a s)))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k))))
+    ((recv (cat b (enc a n-a-0 n-b-0 (ltk b s))))
+      (send (cat (enc b k n-a-0 n-b-0 (ltk a s)) (enc a k (ltk b s)))))
+    ((recv (cat a n-a-0)) (send (cat b (enc a n-a-0 n-b-0 (ltk b s)))))
+    ((send (cat a-0 n-a-1))
+      (recv (cat (enc b-0 k n-a-1 n-b (ltk a-0 s-0)) blob))
+      (send (cat blob (enc n-b k))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k-0 n-a n-b (ltk a s)) (enc a k-0 (ltk b s)))))
+    ((send (cat a n-a))
+      (recv (cat (enc b k-0 n-a n-b (ltk a s)) blob-0))
+      (send (cat blob-0 (enc n-b k-0))))
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k-1 n-a n-b (ltk a s)) (enc a k-1 (ltk b s)))))
+    ((recv k-0) (send k-0)))
+  (label 30)
+  (parent 27)
+  (unrealized (3 1) (7 0))
+  (dead)
+  (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b s name) (n-a n-b text) (k skey) (blob mesg))
+    (trace (send (cat a n-a))
+      (recv (cat (enc b k n-a n-b (ltk a s)) blob))
+      (send (cat blob (enc n-b k)))))
+  (defrole resp
+    (vars (a b s name) (n-a n-b text) (k skey))
+    (trace (recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))
+      (recv (cat (enc a k (ltk b s)) (enc n-b k)))))
+  (defrole serv
+    (vars (a b s name) (n-a n-b text) (k skey))
+    (trace (recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s)))))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false))))
+  (comment "Yahalom protocol, Section 6.3.6, Page 49")
+  (url "http://www.eecs.umich.edu/acal/swerve/docs/49-1.pdf"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b s name))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k n-a n-b)
+  (traces
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s))))))
+  (label 31)
+  (unrealized (0 0))
+  (origs (k (0 1)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b s name))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (defstrand resp 2 (n-a n-a) (n-b n-b) (a a) (b b) (s s))
+  (precedes ((1 1) (0 0)))
+  (non-orig (ltk a s) (ltk b s))
+  (uniq-orig k n-a n-b)
+  (operation encryption-test (added-strand resp 2)
+    (enc a n-a n-b (ltk b s)) (0 0))
+  (traces
+    ((recv (cat b (enc a n-a n-b (ltk b s))))
+      (send (cat (enc b k n-a n-b (ltk a s)) (enc a k (ltk b s)))))
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b s))))))
+  (label 32)
+  (parent 31)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (s s) (n-a n-a) (n-b n-b) (k k))))
+  (origs (k (0 1)) (n-b (1 1))))
+
+(comment "Nothing left to do")
diff --git a/tst/yahalom.scm b/tst/yahalom.scm
--- a/tst/yahalom.scm
+++ b/tst/yahalom.scm
@@ -1,8 +1,6 @@
-(herald "Yahalom Protocol with Forwarding Removed"
-	(algebra diffie-hellman)
-   (bound 12))
+(herald "Yahalom Protocol Without Forwarding" (bound 15))
 
-(defprotocol yahalom diffie-hellman
+(defprotocol yahalom basic
   (defrole init
     (vars (a b c name) (n-a n-b text) (k skey))
     (trace (send (cat a n-a))
@@ -34,3 +32,9 @@
   (deflistener k)
   (non-orig (ltk b c) (ltk a c))
   (uniq-orig n-b))
+
+(defskeleton yahalom
+  (vars (a b c name) (n-a text))
+  (defstrand init 3 (n-a n-a) (a a) (b b) (c c))
+  (non-orig (ltk b c) (ltk a c))
+  (uniq-orig n-a))
diff --git a/tst/yahalom.tst b/tst/yahalom.tst
--- a/tst/yahalom.tst
+++ b/tst/yahalom.tst
@@ -1,10 +1,10 @@
-(herald "Yahalom Protocol with Forwarding Removed"
-  (algebra diffie-hellman) (bound 12))
+(herald "Yahalom Protocol Without Forwarding" (bound 15))
 
-(comment "CPSA 3.6.11")
+(comment "CPSA 4.4.1")
 (comment "All input read from tst/yahalom.scm")
+(comment "Strand count bounded at 15")
 
-(defprotocol yahalom diffie-hellman
+(defprotocol yahalom basic
   (defrole init
     (vars (a b c name) (n-a n-b text) (k skey))
     (trace (send (cat a n-a)) (recv (enc b k n-a n-b (ltk a c)))
@@ -17,11 +17,17 @@
     (vars (c a b name) (n-a n-b text) (k skey))
     (trace (recv (cat b (enc a n-a n-b (ltk b c))))
       (send (enc b k n-a n-b (ltk a c))) (send (enc a k (ltk b c))))
-    (uniq-orig k)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
+  (vars (k skey) (n-b n-a text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
   (non-orig (ltk a c) (ltk b c))
   (uniq-orig n-b)
   (traces
@@ -33,12 +39,12 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b))
   (precedes ((1 2) (0 2)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
+  (uniq-orig k n-b)
   (operation encryption-test (added-strand serv 3) (enc a k (ltk b c))
     (0 2))
   (traces
@@ -53,12 +59,12 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
+  (vars (k skey) (n-b n-a text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (1 0)) ((1 2) (0 2)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
+  (uniq-orig k n-b)
   (operation encryption-test (displaced 2 0 resp 2)
     (enc a n-a-0 n-b-0 (ltk b c)) (1 0))
   (traces
@@ -72,13 +78,13 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b))
   (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
   (precedes ((1 2) (0 2)) ((2 1) (1 0)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
+  (uniq-orig k n-b)
   (operation encryption-test (added-strand resp 2)
     (enc a n-a-0 n-b-0 (ltk b c)) (1 0))
   (traces
@@ -93,13 +99,13 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
+  (vars (k skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
   (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((1 2) (0 2)) ((2 2) (0 3)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
+  (uniq-orig k n-b)
   (operation encryption-test (added-strand init 3) (enc n-b k) (0 3))
   (traces
     ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b c))))
@@ -114,13 +120,13 @@
   (comment "3 in cohort - 3 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
+  (vars (k skey) (n-b n-a text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (deflistener k)
   (precedes ((0 1) (1 0)) ((1 1) (2 0)) ((1 2) (0 2)) ((2 1) (0 3)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
+  (uniq-orig k n-b)
   (operation encryption-test (added-listener k) (enc n-b k) (0 3))
   (traces
     ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b c))))
@@ -134,16 +140,16 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b c a-0 b-0 c-0 name)
-    (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 n-a-1 text)
+    (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b))
   (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (defstrand init 3 (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
+  (defstrand init 3 (k k) (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0))
   (precedes ((0 1) (3 1)) ((1 1) (3 1)) ((1 2) (0 2)) ((2 1) (1 0))
     ((3 2) (0 3)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
+  (uniq-orig k n-b)
   (operation encryption-test (added-strand init 3) (enc n-b k) (0 3))
   (traces
     ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b c))))
@@ -159,14 +165,14 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b))
   (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
   (deflistener k)
   (precedes ((1 1) (3 0)) ((1 2) (0 2)) ((2 1) (1 0)) ((3 1) (0 3)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
+  (uniq-orig k n-b)
   (operation encryption-test (added-listener k) (enc n-b k) (0 3))
   (traces
     ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b c))))
@@ -181,13 +187,13 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
+  (vars (k skey) (n-b n-a text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
   (precedes ((0 1) (1 0)) ((1 1) (2 1)) ((1 2) (0 2)) ((2 2) (0 3)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
+  (uniq-orig k n-b)
   (operation nonce-test (contracted (a-0 a) (b-0 b) (c-0 c) (n-a-0 n-a))
     n-b (2 1) (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c)))
   (traces
@@ -199,21 +205,21 @@
       (send (enc n-b k))))
   (label 8)
   (parent 4)
-  (unrealized)
+  (realized)
   (shape)
   (maps ((0) ((a a) (b b) (c c) (n-b n-b) (n-a n-a) (k k))))
   (origs (k (1 1)) (n-b (0 1))))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
+  (vars (k skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
   (precedes ((0 1) (1 0)) ((1 1) (3 1)) ((1 2) (0 2)) ((2 2) (0 3))
     ((3 2) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
+  (uniq-orig k n-b)
   (operation nonce-test (added-strand init 3) n-b (2 1)
     (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c)))
   (traces
@@ -232,15 +238,15 @@
   (comment "3 in cohort - 2 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
+  (vars (k k-0 skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((1 2) (0 2))
     ((2 2) (0 3)) ((3 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
+  (uniq-orig k k-0 n-b)
   (operation nonce-test (added-strand serv 2) n-b (2 1)
     (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c)))
   (traces
@@ -259,13 +265,13 @@
   (comment "3 in cohort - 2 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
+  (vars (k skey) (n-b n-a text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (deflistener k)
   (precedes ((0 1) (1 0)) ((1 2) (0 2)) ((1 2) (2 0)) ((2 1) (0 3)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
+  (uniq-orig k n-b)
   (operation nonce-test (displaced 3 1 serv 3) k (2 0)
     (enc b k n-a n-b (ltk a c)))
   (traces
@@ -281,17 +287,17 @@
   (comment "empty cohort"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b c a-0 b-0 c-0 name)
-    (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
+  (vars (k k-0 skey) (n-b n-a n-a-0 n-b-0 n-a-1 text)
+    (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b))
   (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (defstrand init 3 (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
+  (defstrand init 3 (k k) (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2)) ((2 1) (1 0))
     ((3 2) (0 3)) ((4 1) (3 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
+  (uniq-orig k k-0 n-b)
   (operation nonce-test (added-strand serv 2) n-b (3 1)
     (enc a n-a n-b (ltk b c)))
   (traces
@@ -310,14 +316,14 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b))
   (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
   (deflistener k)
   (precedes ((1 2) (0 2)) ((1 2) (3 0)) ((2 1) (1 0)) ((3 1) (0 3)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
+  (uniq-orig k n-b)
   (operation nonce-test (displaced 4 1 serv 3) k (3 0)
     (enc b k n-a-0 n-b-0 (ltk a c)))
   (traces
@@ -334,16 +340,16 @@
   (comment "empty cohort"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
+  (vars (k k-0 skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2))
     ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
+  (uniq-orig k k-0 n-b)
   (operation nonce-test (added-strand serv 2) n-b (2 1) (enc n-b k)
     (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c)))
   (traces
@@ -363,16 +369,16 @@
   (comment "3 in cohort - 3 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
+  (vars (k skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
   (deflistener k)
   (precedes ((0 1) (1 0)) ((1 1) (3 1)) ((1 1) (4 0)) ((1 2) (0 2))
     ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
+  (uniq-orig k n-b)
   (operation nonce-test (added-listener k) n-b (2 1) (enc n-b k)
     (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c)))
   (traces
@@ -390,15 +396,15 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
+  (vars (k k-0 skey) (n-b n-a text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((1 2) (0 2))
     ((2 2) (0 3)) ((3 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
+  (uniq-orig k k-0 n-b)
   (operation nonce-test (contracted (a-0 a) (b-0 b) (c-0 c) (n-a-0 n-a))
     n-b (2 1) (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
     (enc b k-0 n-a n-b (ltk a c)))
@@ -414,20 +420,20 @@
   (label 16)
   (parent 10)
   (seen 8)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 0 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
+  (vars (k k-0 skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
   (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((1 2) (0 2))
     ((2 2) (0 3)) ((3 1) (4 1)) ((4 2) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
+  (uniq-orig k k-0 n-b)
   (operation nonce-test (added-strand init 3) n-b (2 1)
     (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
     (enc b k-0 n-a n-b (ltk a c)))
@@ -449,18 +455,18 @@
   (comment "4 in cohort - 3 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b c a-0 b-0 c-0 name)
-    (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
+  (vars (k k-0 skey) (n-b n-a n-a-0 n-b-0 n-a-1 text)
+    (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b))
   (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (defstrand init 3 (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
+  (defstrand init 3 (k k) (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
   (precedes ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2)) ((2 1) (1 0))
     ((3 2) (0 3)) ((4 1) (5 1)) ((5 2) (3 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
+  (uniq-orig k k-0 n-b)
   (operation nonce-test (added-strand init 3) n-b (3 1)
     (enc a n-a n-b (ltk b c)) (enc b k-0 n-a n-b (ltk a c)))
   (traces
@@ -481,16 +487,16 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
+  (vars (k k-0 skey) (n-b n-a text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2))
     ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
+  (uniq-orig k k-0 n-b)
   (operation nonce-test (contracted (a-0 a) (b-0 b) (c-0 c) (n-a-0 n-a))
     n-b (2 1) (enc n-b k) (enc a n-a n-b (ltk b c))
     (enc b k n-a n-b (ltk a c)) (enc b k-0 n-a n-b (ltk a c)))
@@ -507,21 +513,21 @@
       (send (enc b k-0 n-a n-b (ltk a c)))))
   (label 19)
   (parent 14)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
+  (vars (k k-0 skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
   (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2))
     ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (5 1)) ((5 2) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
+  (uniq-orig k k-0 n-b)
   (operation nonce-test (added-strand init 3) n-b (2 1) (enc n-b k)
     (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
     (enc b k-0 n-a n-b (ltk a c)))
@@ -544,18 +550,18 @@
   (comment "4 in cohort - 4 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
+  (vars (k k-0 skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (deflistener k)
   (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((1 1) (5 0))
     ((1 2) (0 2)) ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (2 1))
     ((5 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
+  (uniq-orig k k-0 n-b)
   (operation nonce-test (added-listener k) n-b (2 1) (enc n-b k)
     (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
     (enc b k-0 n-a n-b (ltk a c)))
@@ -576,16 +582,16 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
+  (vars (k skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
   (deflistener k)
   (precedes ((0 1) (1 0)) ((1 1) (3 1)) ((1 2) (0 2)) ((1 2) (4 0))
     ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
+  (uniq-orig k n-b)
   (operation nonce-test (displaced 5 1 serv 3) k (4 0)
     (enc b k n-a n-b (ltk a c)))
   (traces
@@ -604,16 +610,16 @@
   (comment "empty cohort"))
 
 (defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
+  (vars (k k-0 skey) (n-b n-a text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
   (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((1 2) (0 2))
     ((2 2) (0 3)) ((3 1) (4 1)) ((4 2) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
+  (uniq-orig k k-0 n-b)
   (operation nonce-test (contracted (a-0 a) (b-0 b) (c-0 c) (n-a-0 n-a))
     n-b (2 1) (enc n-b k-0) (enc a n-a n-b (ltk b c))
     (enc b k n-a n-b (ltk a c)) (enc b k-0 n-a n-b (ltk a c)))
@@ -631,22 +637,22 @@
   (label 23)
   (parent 17)
   (seen 16)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 0 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
+  (vars (k k-0 k-1 skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-1) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((0 1) (5 0)) ((1 1) (2 1))
     ((1 2) (0 2)) ((2 2) (0 3)) ((3 1) (4 1)) ((4 2) (2 1))
     ((5 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
+  (uniq-orig k k-0 k-1 n-b)
   (operation nonce-test (added-strand serv 2) n-b (2 1) (enc n-b k-0)
     (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
     (enc b k-0 n-a n-b (ltk a c)))
@@ -665,23 +671,23 @@
       (send (enc b k-1 n-a n-b (ltk a c)))))
   (label 24)
   (parent 17)
-  (seen 30)
+  (seen 29)
   (unrealized (2 1))
   (comment "3 in cohort - 2 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
+  (vars (k k-0 skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
   (deflistener k-0)
   (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((1 2) (0 2))
     ((2 2) (0 3)) ((3 1) (4 1)) ((3 1) (5 0)) ((4 2) (2 1))
     ((5 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
+  (uniq-orig k k-0 n-b)
   (operation nonce-test (added-listener k-0) n-b (2 1) (enc n-b k-0)
     (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
     (enc b k-0 n-a n-b (ltk a c)))
@@ -702,20 +708,20 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b c a-0 b-0 c-0 name)
-    (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
+  (vars (k k-0 k-1 skey) (n-b n-a n-a-0 n-b-0 n-a-1 text)
+    (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b))
   (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (defstrand init 3 (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
+  (defstrand init 3 (k k) (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-1) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (4 0)) ((0 1) (6 0)) ((1 1) (3 1)) ((1 2) (0 2))
     ((2 1) (1 0)) ((3 2) (0 3)) ((4 1) (5 1)) ((5 2) (3 1))
     ((6 1) (3 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
+  (uniq-orig k k-0 k-1 n-b)
   (operation nonce-test (added-strand serv 2) n-b (3 1) (enc n-b k-0)
     (enc a n-a n-b (ltk b c)) (enc b k-0 n-a n-b (ltk a c)))
   (traces
@@ -738,20 +744,20 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b c a-0 b-0 c-0 name)
-    (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
+  (vars (k k-0 skey) (n-b n-a n-a-0 n-b-0 n-a-1 text)
+    (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b))
   (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (defstrand init 3 (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
+  (defstrand init 3 (k k) (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
   (deflistener k-0)
   (precedes ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2)) ((2 1) (1 0))
     ((3 2) (0 3)) ((4 1) (5 1)) ((4 1) (6 0)) ((5 2) (3 1))
     ((6 1) (3 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
+  (uniq-orig k k-0 n-b)
   (operation nonce-test (added-listener k-0) n-b (3 1) (enc n-b k-0)
     (enc a n-a n-b (ltk b c)) (enc b k-0 n-a n-b (ltk a c)))
   (traces
@@ -772,15 +778,15 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
+  (vars (k k-0 skey) (n-b n-a text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((1 2) (0 2))
     ((2 2) (0 3)) ((3 1) (0 3)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
+  (uniq-orig k k-0 n-b)
   (operation generalization deleted (2 0))
   (traces
     ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b c))))
@@ -794,93 +800,93 @@
   (label 28)
   (parent 19)
   (seen 8)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 0 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2))
-    ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (5 1)) ((5 2) (2 1)))
+  (vars (k k-0 k-1 skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-1) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((0 1) (6 0)) ((1 1) (3 1))
+    ((1 2) (0 2)) ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (5 1))
+    ((5 2) (2 1)) ((6 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation nonce-test (contracted (a-0 a) (b-0 b) (c-0 c) (n-a-0 n-a))
-    n-b (2 1) (enc n-b k) (enc n-b k-0) (enc a n-a n-b (ltk b c))
-    (enc b k n-a n-b (ltk a c)) (enc b k-0 n-a n-b (ltk a c)))
+  (uniq-orig k k-0 k-1 n-b)
+  (operation nonce-test (added-strand serv 2) n-b (2 1) (enc n-b k)
+    (enc n-b k-0) (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
+    (enc b k-0 n-a n-b (ltk a c)))
   (traces
     ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b c))))
       (recv (enc a k (ltk b c))) (recv (enc n-b k)))
     ((recv (cat b (enc a n-a n-b (ltk b c))))
       (send (enc b k n-a n-b (ltk a c))) (send (enc a k (ltk b c))))
-    ((send (cat a n-a)) (recv (enc b k n-a n-b (ltk a c)))
+    ((send (cat a-0 n-a-0)) (recv (enc b-0 k n-a-0 n-b (ltk a-0 c-0)))
       (send (enc n-b k)))
     ((send (cat a n-a)) (recv (enc b k n-a n-b (ltk a c)))
       (send (enc n-b k)))
     ((recv (cat b (enc a n-a n-b (ltk b c))))
       (send (enc b k-0 n-a n-b (ltk a c))))
     ((send (cat a n-a)) (recv (enc b k-0 n-a n-b (ltk a c)))
-      (send (enc n-b k-0))))
+      (send (enc n-b k-0)))
+    ((recv (cat b (enc a n-a n-b (ltk b c))))
+      (send (enc b k-1 n-a n-b (ltk a c)))))
   (label 29)
   (parent 20)
-  (unrealized)
-  (comment "1 in cohort - 1 not yet seen"))
+  (unrealized (2 1))
+  (comment "3 in cohort - 3 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
-  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((0 1) (6 0)) ((1 1) (3 1))
-    ((1 2) (0 2)) ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (5 1))
-    ((5 2) (2 1)) ((6 1) (2 1)))
+  (vars (k k-0 skey) (n-b n-a text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2))
+    ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (5 1)) ((5 2) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
-  (operation nonce-test (added-strand serv 2) n-b (2 1) (enc n-b k)
-    (enc n-b k-0) (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
-    (enc b k-0 n-a n-b (ltk a c)))
+  (uniq-orig k k-0 n-b)
+  (operation nonce-test (contracted (a-0 a) (b-0 b) (c-0 c) (n-a-0 n-a))
+    n-b (2 1) (enc n-b k) (enc n-b k-0) (enc a n-a n-b (ltk b c))
+    (enc b k n-a n-b (ltk a c)) (enc b k-0 n-a n-b (ltk a c)))
   (traces
     ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b c))))
       (recv (enc a k (ltk b c))) (recv (enc n-b k)))
     ((recv (cat b (enc a n-a n-b (ltk b c))))
       (send (enc b k n-a n-b (ltk a c))) (send (enc a k (ltk b c))))
-    ((send (cat a-0 n-a-0)) (recv (enc b-0 k n-a-0 n-b (ltk a-0 c-0)))
+    ((send (cat a n-a)) (recv (enc b k n-a n-b (ltk a c)))
       (send (enc n-b k)))
     ((send (cat a n-a)) (recv (enc b k n-a n-b (ltk a c)))
       (send (enc n-b k)))
     ((recv (cat b (enc a n-a n-b (ltk b c))))
       (send (enc b k-0 n-a n-b (ltk a c))))
     ((send (cat a n-a)) (recv (enc b k-0 n-a n-b (ltk a c)))
-      (send (enc n-b k-0)))
-    ((recv (cat b (enc a n-a n-b (ltk b c))))
-      (send (enc b k-1 n-a n-b (ltk a c)))))
+      (send (enc n-b k-0))))
   (label 30)
   (parent 20)
-  (unrealized (2 1))
-  (comment "3 in cohort - 3 not yet seen"))
+  (realized)
+  (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
+  (vars (k k-0 skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
   (deflistener k)
   (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((1 1) (6 0))
     ((1 2) (0 2)) ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (5 1))
     ((5 2) (2 1)) ((6 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
+  (uniq-orig k k-0 n-b)
   (operation nonce-test (added-listener k) n-b (2 1) (enc n-b k)
     (enc n-b k-0) (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
     (enc b k-0 n-a n-b (ltk a c)))
@@ -903,19 +909,19 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
+  (vars (k k-0 skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
   (deflistener k-0)
   (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2))
     ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (5 1)) ((4 1) (6 0))
     ((5 2) (2 1)) ((6 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
+  (uniq-orig k k-0 n-b)
   (operation nonce-test (added-listener k-0) n-b (2 1) (enc n-b k)
     (enc n-b k-0) (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
     (enc b k-0 n-a n-b (ltk a c)))
@@ -938,18 +944,18 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
+  (vars (k k-0 skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (deflistener k)
   (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2))
     ((1 2) (5 0)) ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (2 1))
     ((5 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
+  (uniq-orig k k-0 n-b)
   (operation nonce-test (displaced 6 1 serv 3) k (5 0)
     (enc b k n-a n-b (ltk a c)))
   (traces
@@ -970,18 +976,18 @@
   (comment "empty cohort"))
 
 (defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
+  (vars (k k-0 k-1 skey) (n-b n-a text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-1) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((0 1) (5 0)) ((1 1) (2 1))
     ((1 2) (0 2)) ((2 2) (0 3)) ((3 1) (4 1)) ((4 2) (2 1))
     ((5 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
+  (uniq-orig k k-0 k-1 n-b)
   (operation nonce-test (contracted (a-0 a) (b-0 b) (c-0 c) (n-a-0 n-a))
     n-b (2 1) (enc n-b k-0) (enc a n-a n-b (ltk b c))
     (enc b k n-a n-b (ltk a c)) (enc b k-0 n-a n-b (ltk a c))
@@ -1001,23 +1007,23 @@
       (send (enc b k-1 n-a n-b (ltk a c)))))
   (label 34)
   (parent 24)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
+  (vars (k k-0 k-1 skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-1) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (deflistener k-0)
   (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((0 1) (5 0)) ((1 1) (2 1))
     ((1 2) (0 2)) ((2 2) (0 3)) ((3 1) (4 1)) ((3 1) (6 0))
     ((4 2) (2 1)) ((5 1) (2 1)) ((6 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
+  (uniq-orig k k-0 k-1 n-b)
   (operation nonce-test (added-listener k-0) n-b (2 1) (enc n-b k-0)
     (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
     (enc b k-0 n-a n-b (ltk a c)) (enc b k-1 n-a n-b (ltk a c)))
@@ -1040,18 +1046,18 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
+  (vars (k k-0 skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
   (deflistener k-0)
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
+  (defstrand serv 3 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (1 0)) ((0 1) (5 0)) ((1 1) (2 1)) ((1 2) (0 2))
     ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (2 1)) ((5 1) (3 1))
     ((5 2) (4 0)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
+  (uniq-orig k k-0 n-b)
   (operation nonce-test (displaced 3 6 serv 3) k-0 (5 0)
     (enc b k-0 n-a n-b (ltk a c)))
   (traces
@@ -1073,21 +1079,21 @@
   (comment "empty cohort"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b c a-0 b-0 c-0 name)
-    (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
+  (vars (k k-0 k-1 skey) (n-b n-a n-a-0 n-b-0 n-a-1 text)
+    (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b))
   (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (defstrand init 3 (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
+  (defstrand init 3 (k k) (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-1) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (deflistener k-0)
   (precedes ((0 1) (4 0)) ((0 1) (6 0)) ((1 1) (3 1)) ((1 2) (0 2))
     ((2 1) (1 0)) ((3 2) (0 3)) ((4 1) (5 1)) ((4 1) (7 0))
     ((5 2) (3 1)) ((6 1) (3 1)) ((7 1) (3 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
+  (uniq-orig k k-0 k-1 n-b)
   (operation nonce-test (added-listener k-0) n-b (3 1) (enc n-b k-0)
     (enc a n-a n-b (ltk b c)) (enc b k-0 n-a n-b (ltk a c))
     (enc b k-1 n-a n-b (ltk a c)))
@@ -1111,20 +1117,20 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b c a-0 b-0 c-0 name)
-    (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
+  (vars (k k-0 skey) (n-b n-a n-a-0 n-b-0 n-a-1 text)
+    (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b))
   (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (defstrand init 3 (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
+  (defstrand init 3 (k k) (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
   (deflistener k-0)
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
+  (defstrand serv 3 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (6 0)) ((1 1) (3 1)) ((1 2) (0 2)) ((2 1) (1 0))
     ((3 2) (0 3)) ((4 2) (3 1)) ((5 1) (3 1)) ((6 1) (4 1))
     ((6 2) (5 0)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
+  (uniq-orig k k-0 n-b)
   (operation nonce-test (displaced 4 7 serv 3) k-0 (6 0)
     (enc b k-0 n-a n-b (ltk a c)))
   (traces
@@ -1147,48 +1153,19 @@
   (comment "empty cohort"))
 
 (defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((1 2) (0 2))
-    ((2 2) (0 3)) ((3 1) (4 1)) ((4 2) (0 3)))
-  (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
-  (operation generalization deleted (2 0))
-  (traces
-    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b c))))
-      (recv (enc a k (ltk b c))) (recv (enc n-b k)))
-    ((recv (cat b (enc a n-a n-b (ltk b c))))
-      (send (enc b k n-a n-b (ltk a c))) (send (enc a k (ltk b c))))
-    ((send (cat a n-a)) (recv (enc b k n-a n-b (ltk a c)))
-      (send (enc n-b k)))
-    ((recv (cat b (enc a n-a n-b (ltk b c))))
-      (send (enc b k-0 n-a n-b (ltk a c))))
-    ((send (cat a n-a)) (recv (enc b k-0 n-a n-b (ltk a c)))
-      (send (enc n-b k-0))))
-  (label 39)
-  (parent 29)
-  (seen 28)
-  (unrealized)
-  (comment "1 in cohort - 0 not yet seen"))
-
-(defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
+  (vars (k k-0 k-1 skey) (n-b n-a text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-1) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((0 1) (6 0)) ((1 1) (3 1))
     ((1 2) (0 2)) ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (5 1))
     ((5 2) (2 1)) ((6 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
+  (uniq-orig k k-0 k-1 n-b)
   (operation nonce-test (contracted (a-0 a) (b-0 b) (c-0 c) (n-a-0 n-a))
     n-b (2 1) (enc n-b k) (enc n-b k-0) (enc a n-a n-b (ltk b c))
     (enc b k n-a n-b (ltk a c)) (enc b k-0 n-a n-b (ltk a c))
@@ -1208,26 +1185,26 @@
       (send (enc n-b k-0)))
     ((recv (cat b (enc a n-a n-b (ltk b c))))
       (send (enc b k-1 n-a n-b (ltk a c)))))
-  (label 40)
-  (parent 30)
-  (unrealized)
+  (label 39)
+  (parent 29)
+  (realized)
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
+  (vars (k k-0 k-1 skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-1) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (deflistener k)
   (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((0 1) (6 0)) ((1 1) (3 1))
     ((1 1) (7 0)) ((1 2) (0 2)) ((2 2) (0 3)) ((3 2) (2 1))
     ((4 1) (5 1)) ((5 2) (2 1)) ((6 1) (2 1)) ((7 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
+  (uniq-orig k k-0 k-1 n-b)
   (operation nonce-test (added-listener k) n-b (2 1) (enc n-b k)
     (enc n-b k-0) (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
     (enc b k-0 n-a n-b (ltk a c)) (enc b k-1 n-a n-b (ltk a c)))
@@ -1246,26 +1223,26 @@
       (send (enc n-b k-0)))
     ((recv (cat b (enc a n-a n-b (ltk b c))))
       (send (enc b k-1 n-a n-b (ltk a c)))) ((recv k) (send k)))
-  (label 41)
-  (parent 30)
+  (label 40)
+  (parent 29)
   (unrealized (7 0))
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
+  (vars (k k-0 k-1 skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-1) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (deflistener k-0)
   (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((0 1) (6 0)) ((1 1) (3 1))
     ((1 2) (0 2)) ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (5 1))
     ((4 1) (7 0)) ((5 2) (2 1)) ((6 1) (2 1)) ((7 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
+  (uniq-orig k k-0 k-1 n-b)
   (operation nonce-test (added-listener k-0) n-b (2 1) (enc n-b k)
     (enc n-b k-0) (enc a n-a n-b (ltk b c)) (enc b k n-a n-b (ltk a c))
     (enc b k-0 n-a n-b (ltk a c)) (enc b k-1 n-a n-b (ltk a c)))
@@ -1284,25 +1261,54 @@
       (send (enc n-b k-0)))
     ((recv (cat b (enc a n-a n-b (ltk b c))))
       (send (enc b k-1 n-a n-b (ltk a c)))) ((recv k-0) (send k-0)))
-  (label 42)
-  (parent 30)
+  (label 41)
+  (parent 29)
   (unrealized (2 1) (7 0))
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
+  (vars (k k-0 skey) (n-b n-a text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((1 1) (2 1)) ((1 2) (0 2))
+    ((2 2) (0 3)) ((3 1) (4 1)) ((4 2) (0 3)))
+  (non-orig (ltk a c) (ltk b c))
+  (uniq-orig k k-0 n-b)
+  (operation generalization deleted (2 0))
+  (traces
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b c))))
+      (recv (enc a k (ltk b c))) (recv (enc n-b k)))
+    ((recv (cat b (enc a n-a n-b (ltk b c))))
+      (send (enc b k n-a n-b (ltk a c))) (send (enc a k (ltk b c))))
+    ((send (cat a n-a)) (recv (enc b k n-a n-b (ltk a c)))
+      (send (enc n-b k)))
+    ((recv (cat b (enc a n-a n-b (ltk b c))))
+      (send (enc b k-0 n-a n-b (ltk a c))))
+    ((send (cat a n-a)) (recv (enc b k-0 n-a n-b (ltk a c)))
+      (send (enc n-b k-0))))
+  (label 42)
+  (parent 30)
+  (seen 28)
+  (realized)
+  (comment "1 in cohort - 0 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k k-0 skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
   (deflistener k)
   (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((1 1) (3 1)) ((1 2) (0 2))
     ((1 2) (6 0)) ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (5 1))
     ((5 2) (2 1)) ((6 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
+  (uniq-orig k k-0 n-b)
   (operation nonce-test (displaced 7 1 serv 3) k (6 0)
     (enc b k n-a n-b (ltk a c)))
   (traces
@@ -1325,19 +1331,19 @@
   (comment "empty cohort"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
+  (vars (k k-0 skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
   (deflistener k-0)
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
+  (defstrand serv 3 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (1 0)) ((0 1) (6 0)) ((1 1) (3 1)) ((1 2) (0 2))
     ((2 2) (0 3)) ((3 2) (2 1)) ((4 2) (2 1)) ((5 1) (2 1))
     ((6 1) (4 1)) ((6 2) (5 0)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0)
+  (uniq-orig k k-0 n-b)
   (operation nonce-test (displaced 4 7 serv 3) k-0 (6 0)
     (enc b k-0 n-a n-b (ltk a c)))
   (traces
@@ -1361,16 +1367,16 @@
   (comment "empty cohort"))
 
 (defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
+  (vars (k k-0 k-1 skey) (n-b n-a text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand serv 2 (k k-1) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((0 1) (4 0)) ((1 1) (2 1))
     ((1 2) (0 2)) ((2 2) (0 3)) ((3 1) (2 1)) ((4 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
+  (uniq-orig k k-0 k-1 n-b)
   (operation generalization deleted (4 0))
   (traces
     ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b c))))
@@ -1386,23 +1392,23 @@
   (label 45)
   (parent 34)
   (seen 16)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 0 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
+  (vars (k k-0 k-1 skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-1) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (deflistener k-0)
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
+  (defstrand serv 3 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((0 1) (6 0)) ((1 1) (2 1))
     ((1 2) (0 2)) ((2 2) (0 3)) ((3 2) (2 1)) ((4 1) (2 1))
     ((5 1) (2 1)) ((6 1) (3 1)) ((6 2) (5 0)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
+  (uniq-orig k k-0 k-1 n-b)
   (operation nonce-test (displaced 3 7 serv 3) k-0 (6 0)
     (enc b k-0 n-a n-b (ltk a c)))
   (traces
@@ -1426,21 +1432,21 @@
   (comment "empty cohort"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 n-a-1 text) (a b c a-0 b-0 c-0 name)
-    (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
+  (vars (k k-0 k-1 skey) (n-b n-a n-a-0 n-b-0 n-a-1 text)
+    (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b))
   (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
-  (defstrand init 3 (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
+  (defstrand init 3 (k k) (n-a n-a-1) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-1) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (deflistener k-0)
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
+  (defstrand serv 3 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (5 0)) ((0 1) (7 0)) ((1 1) (3 1)) ((1 2) (0 2))
     ((2 1) (1 0)) ((3 2) (0 3)) ((4 2) (3 1)) ((5 1) (3 1))
     ((6 1) (3 1)) ((7 1) (4 1)) ((7 2) (6 0)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
+  (uniq-orig k k-0 k-1 n-b)
   (operation nonce-test (displaced 4 8 serv 3) k-0 (7 0)
     (enc b k-0 n-a n-b (ltk a c)))
   (traces
@@ -1465,18 +1471,18 @@
   (comment "empty cohort"))
 
 (defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
+  (vars (k k-0 k-1 skey) (n-b n-a text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-1) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((0 1) (5 0)) ((1 1) (2 1))
     ((1 2) (0 2)) ((2 2) (0 3)) ((3 1) (4 1)) ((4 2) (0 3))
     ((5 1) (0 3)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
+  (uniq-orig k k-0 k-1 n-b)
   (operation generalization deleted (2 0))
   (traces
     ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b c))))
@@ -1492,25 +1498,25 @@
     ((recv (cat b (enc a n-a n-b (ltk b c))))
       (send (enc b k-1 n-a n-b (ltk a c)))))
   (label 48)
-  (parent 40)
-  (unrealized)
+  (parent 39)
+  (realized)
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
+  (vars (k k-0 k-1 skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-1) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (deflistener k)
   (precedes ((0 1) (1 0)) ((0 1) (4 0)) ((0 1) (6 0)) ((1 1) (3 1))
     ((1 2) (0 2)) ((1 2) (7 0)) ((2 2) (0 3)) ((3 2) (2 1))
     ((4 1) (5 1)) ((5 2) (2 1)) ((6 1) (2 1)) ((7 1) (2 1)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
+  (uniq-orig k k-0 k-1 n-b)
   (operation nonce-test (displaced 8 1 serv 3) k (7 0)
     (enc b k n-a n-b (ltk a c)))
   (traces
@@ -1529,26 +1535,26 @@
     ((recv (cat b (enc a n-a n-b (ltk b c))))
       (send (enc b k-1 n-a n-b (ltk a c)))) ((recv k) (send k)))
   (label 49)
-  (parent 41)
+  (parent 40)
   (unrealized (7 0))
   (dead)
   (comment "empty cohort"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
+  (vars (k k-0 k-1 skey) (n-b n-a n-a-0 text) (a b c a-0 b-0 c-0 name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a-0) (n-b n-b) (a a-0) (b b-0) (c c-0))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand init 3 (k k-0) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-1) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (deflistener k-0)
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
+  (defstrand serv 3 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (1 0)) ((0 1) (5 0)) ((0 1) (7 0)) ((1 1) (3 1))
     ((1 2) (0 2)) ((2 2) (0 3)) ((3 2) (2 1)) ((4 2) (2 1))
     ((5 1) (2 1)) ((6 1) (2 1)) ((7 1) (4 1)) ((7 2) (6 0)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
+  (uniq-orig k k-0 k-1 n-b)
   (operation nonce-test (displaced 4 8 serv 3) k-0 (7 0)
     (enc b k-0 n-a n-b (ltk a c)))
   (traces
@@ -1568,22 +1574,22 @@
       (send (enc b k-0 n-a n-b (ltk a c)))
       (send (enc a k-0 (ltk b c)))))
   (label 50)
-  (parent 42)
+  (parent 41)
   (unrealized (2 1) (6 0))
   (dead)
   (comment "empty cohort"))
 
 (defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k k-0 k-1 skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
-  (defstrand init 3 (n-a n-a) (n-b n-b) (a a) (b b) (c c) (k k))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-0))
-  (defstrand serv 2 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k-1))
+  (vars (k k-0 k-1 skey) (n-b n-a text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k-0) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand serv 2 (k k-1) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (1 0)) ((0 1) (3 0)) ((0 1) (4 0)) ((1 1) (2 1))
     ((1 2) (0 2)) ((2 2) (0 3)) ((3 1) (0 3)) ((4 1) (0 3)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k k-0 k-1)
+  (uniq-orig k k-0 k-1 n-b)
   (operation generalization deleted (4 0))
   (traces
     ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b c))))
@@ -1599,12 +1605,12 @@
   (label 51)
   (parent 48)
   (seen 28)
-  (unrealized)
+  (realized)
   (comment "1 in cohort - 0 not yet seen"))
 
 (comment "Nothing left to do")
 
-(defprotocol yahalom diffie-hellman
+(defprotocol yahalom basic
   (defrole init
     (vars (a b c name) (n-a n-b text) (k skey))
     (trace (send (cat a n-a)) (recv (enc b k n-a n-b (ltk a c)))
@@ -1617,11 +1623,17 @@
     (vars (c a b name) (n-a n-b text) (k skey))
     (trace (recv (cat b (enc a n-a n-b (ltk b c))))
       (send (enc b k n-a n-b (ltk a c))) (send (enc a k (ltk b c))))
-    (uniq-orig k)))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
 
 (defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
+  (vars (k skey) (n-b n-a text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
   (deflistener k)
   (non-orig (ltk a c) (ltk b c))
   (uniq-orig n-b)
@@ -1635,13 +1647,13 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
   (deflistener k)
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b))
   (precedes ((2 1) (1 0)) ((2 2) (0 2)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
+  (uniq-orig k n-b)
   (operation encryption-test (added-strand serv 3) (enc a k (ltk b c))
     (0 2))
   (traces
@@ -1656,13 +1668,13 @@
   (comment "2 in cohort - 2 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
+  (vars (k skey) (n-b n-a text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
   (deflistener k)
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (2 0)) ((2 1) (1 0)) ((2 2) (0 2)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
+  (uniq-orig k n-b)
   (operation encryption-test (displaced 3 0 resp 2)
     (enc a n-a-0 n-b-0 (ltk b c)) (2 0))
   (traces
@@ -1676,14 +1688,14 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
   (deflistener k)
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b))
   (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
   (precedes ((2 1) (1 0)) ((2 2) (0 2)) ((3 1) (2 0)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
+  (uniq-orig k n-b)
   (operation encryption-test (added-strand resp 2)
     (enc a n-a-0 n-b-0 (ltk b c)) (2 0))
   (traces
@@ -1698,13 +1710,13 @@
   (comment "1 in cohort - 1 not yet seen"))
 
 (defskeleton yahalom
-  (vars (n-b n-a text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
+  (vars (k skey) (n-b n-a text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
   (deflistener k)
-  (defstrand serv 3 (n-a n-a) (n-b n-b) (c c) (a a) (b b) (k k))
+  (defstrand serv 3 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
   (precedes ((0 1) (2 0)) ((2 2) (0 2)) ((2 2) (1 0)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
+  (uniq-orig k n-b)
   (operation nonce-test (displaced 3 2 serv 3) k (1 0)
     (enc b k n-a n-b (ltk a c)))
   (traces
@@ -1719,14 +1731,14 @@
   (comment "empty cohort"))
 
 (defskeleton yahalom
-  (vars (n-b n-a n-a-0 n-b-0 text) (a b c name) (k skey))
-  (defstrand resp 4 (n-a n-a) (n-b n-b) (b b) (a a) (c c) (k k))
+  (vars (k skey) (n-b n-a n-a-0 n-b-0 text) (a b c name))
+  (defstrand resp 4 (k k) (n-a n-a) (n-b n-b) (b b) (a a) (c c))
   (deflistener k)
-  (defstrand serv 3 (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b) (k k))
+  (defstrand serv 3 (k k) (n-a n-a-0) (n-b n-b-0) (c c) (a a) (b b))
   (defstrand resp 2 (n-a n-a-0) (n-b n-b-0) (b b) (a a) (c c))
   (precedes ((2 2) (0 2)) ((2 2) (1 0)) ((3 1) (2 0)))
   (non-orig (ltk a c) (ltk b c))
-  (uniq-orig n-b k)
+  (uniq-orig k n-b)
   (operation nonce-test (displaced 4 2 serv 3) k (1 0)
     (enc b k n-a-0 n-b-0 (ltk a c)))
   (traces
@@ -1740,5 +1752,83 @@
   (unrealized (0 3) (1 0))
   (dead)
   (comment "empty cohort"))
+
+(comment "Nothing left to do")
+
+(defprotocol yahalom basic
+  (defrole init
+    (vars (a b c name) (n-a n-b text) (k skey))
+    (trace (send (cat a n-a)) (recv (enc b k n-a n-b (ltk a c)))
+      (send (enc n-b k))))
+  (defrole resp
+    (vars (b a c name) (n-a n-b text) (k skey))
+    (trace (recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b c))))
+      (recv (enc a k (ltk b c))) (recv (enc n-b k))))
+  (defrole serv
+    (vars (c a b name) (n-a n-b text) (k skey))
+    (trace (recv (cat b (enc a n-a n-b (ltk b c))))
+      (send (enc b k n-a n-b (ltk a c))) (send (enc a k (ltk b c))))
+    (uniq-orig k))
+  (defgenrule neqRl_indx
+    (forall ((x indx)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_strd
+    (forall ((x strd)) (implies (fact neq x x) (false))))
+  (defgenrule neqRl_mesg
+    (forall ((x mesg)) (implies (fact neq x x) (false)))))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b c name))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (non-orig (ltk a c) (ltk b c))
+  (uniq-orig n-a)
+  (traces
+    ((send (cat a n-a)) (recv (enc b k n-a n-b (ltk a c)))
+      (send (enc n-b k))))
+  (label 58)
+  (unrealized (0 1))
+  (origs (n-a (0 0)))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b c name))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (precedes ((0 0) (1 0)) ((1 1) (0 1)))
+  (non-orig (ltk a c) (ltk b c))
+  (uniq-orig k n-a)
+  (operation encryption-test (added-strand serv 2)
+    (enc b k n-a n-b (ltk a c)) (0 1))
+  (traces
+    ((send (cat a n-a)) (recv (enc b k n-a n-b (ltk a c)))
+      (send (enc n-b k)))
+    ((recv (cat b (enc a n-a n-b (ltk b c))))
+      (send (enc b k n-a n-b (ltk a c)))))
+  (label 59)
+  (parent 58)
+  (unrealized (1 0))
+  (comment "1 in cohort - 1 not yet seen"))
+
+(defskeleton yahalom
+  (vars (k skey) (n-a n-b text) (a b c name))
+  (defstrand init 3 (k k) (n-a n-a) (n-b n-b) (a a) (b b) (c c))
+  (defstrand serv 2 (k k) (n-a n-a) (n-b n-b) (c c) (a a) (b b))
+  (defstrand resp 2 (n-a n-a) (n-b n-b) (b b) (a a) (c c))
+  (precedes ((0 0) (2 0)) ((1 1) (0 1)) ((2 1) (1 0)))
+  (non-orig (ltk a c) (ltk b c))
+  (uniq-orig k n-a)
+  (operation encryption-test (added-strand resp 2)
+    (enc a n-a n-b (ltk b c)) (1 0))
+  (traces
+    ((send (cat a n-a)) (recv (enc b k n-a n-b (ltk a c)))
+      (send (enc n-b k)))
+    ((recv (cat b (enc a n-a n-b (ltk b c))))
+      (send (enc b k n-a n-b (ltk a c))))
+    ((recv (cat a n-a)) (send (cat b (enc a n-a n-b (ltk b c))))))
+  (label 60)
+  (parent 59)
+  (realized)
+  (shape)
+  (maps ((0) ((a a) (b b) (c c) (n-a n-a) (n-b n-b) (k k))))
+  (origs (k (1 1)) (n-a (0 0))))
 
 (comment "Nothing left to do")
diff --git a/tst/yolo.scm b/tst/yolo.scm
deleted file mode 100644
--- a/tst/yolo.scm
+++ /dev/null
@@ -1,48 +0,0 @@
-(herald yolo)
-
-;;; This protocol illustates the odd effect of (uniq-gen (privk a)).
-
-(defprotocol yolo basic
-  (defrole init
-    (vars (a name) (n text))
-    (trace
-     (send n)
-     (recv (enc "yolo" n a (privk a)))))
-
-  (defrole resp
-    (vars (a name) (n text))
-    (trace
-     (recv n)
-     (send (enc "yolo" n a (privk a))))
-    (uniq-gen (privk a))))
-
-;;; First query:  the protocol does authenticate the responder to the
-;;; initiator.
-
-(defskeleton yolo
-  (vars (a name)(n text))
-  (defstrand init 2 (n n) (a a))
-  (non-orig (privk a)))
-
-;;; Second query:  Two responder strands cannot be completed to any
-;;; execution.  Oddly, the CPSA output has (unrealized) which may
-;;; confuse the reader.  The only clue that this query has turned out
-;;; to be dead is a comment:
-;;;
-;;; (comment "Input cannot be made into a skeleton--nothing to do")
-
-(defskeleton yolo
-  (vars (a name)(n text))
-  (defstrand resp 2 (a a))
-  (defstrand resp 2 (a a)))
-
-;;; Third query:  Two responder strands cannot be completed to any
-;;; execution, in this case with an initiator strand present too.
-;;; CPSA's output now reports (unrealized (0 1)), together with the
-;;; same comment that the input cannot be made into a skeleton.  
-
-(defskeleton yolo
-  (vars (a name)(n text))
-  (defstrand init 2 (n n) (a a))
-  (defstrand resp 2 (a a))
-  (defstrand resp 2 (a a)))
diff --git a/tst/yolo.tst b/tst/yolo.tst
deleted file mode 100644
--- a/tst/yolo.tst
+++ /dev/null
@@ -1,87 +0,0 @@
-(herald yolo)
-
-(comment "CPSA 3.6.11")
-(comment "All input read from tst/yolo.scm")
-
-(defprotocol yolo basic
-  (defrole init
-    (vars (a name) (n text))
-    (trace (send n) (recv (enc "yolo" n a (privk a)))))
-  (defrole resp
-    (vars (a name) (n text))
-    (trace (recv n) (send (enc "yolo" n a (privk a))))
-    (uniq-gen (privk a))))
-
-(defskeleton yolo
-  (vars (n text) (a name))
-  (defstrand init 2 (n n) (a a))
-  (non-orig (privk a))
-  (traces ((send n) (recv (enc "yolo" n a (privk a)))))
-  (label 0)
-  (unrealized (0 1))
-  (origs)
-  (comment "1 in cohort - 1 not yet seen"))
-
-(defskeleton yolo
-  (vars (n text) (a name))
-  (defstrand init 2 (n n) (a a))
-  (defstrand resp 2 (n n) (a a))
-  (precedes ((1 1) (0 1)))
-  (non-orig (privk a))
-  (uniq-gen (privk a))
-  (operation encryption-test (added-strand resp 2)
-    (enc "yolo" n a (privk a)) (0 1))
-  (traces ((send n) (recv (enc "yolo" n a (privk a))))
-    ((recv n) (send (enc "yolo" n a (privk a)))))
-  (label 1)
-  (parent 0)
-  (unrealized)
-  (shape)
-  (maps ((0) ((a a) (n n))))
-  (origs))
-
-(comment "Nothing left to do")
-
-(defprotocol yolo basic
-  (defrole init
-    (vars (a name) (n text))
-    (trace (send n) (recv (enc "yolo" n a (privk a)))))
-  (defrole resp
-    (vars (a name) (n text))
-    (trace (recv n) (send (enc "yolo" n a (privk a))))
-    (uniq-gen (privk a))))
-
-(defskeleton yolo
-  (vars (n n-0 text) (a name))
-  (defstrand resp 2 (n n) (a a))
-  (defstrand resp 2 (n n-0) (a a))
-  (uniq-gen (privk a) (privk a))
-  (traces ((recv n) (send (enc "yolo" n a (privk a))))
-    ((recv n-0) (send (enc "yolo" n-0 a (privk a)))))
-  (label 2)
-  (unrealized)
-  (origs)
-  (comment "Input cannot be made into a skeleton--nothing to do"))
-
-(defprotocol yolo basic
-  (defrole init
-    (vars (a name) (n text))
-    (trace (send n) (recv (enc "yolo" n a (privk a)))))
-  (defrole resp
-    (vars (a name) (n text))
-    (trace (recv n) (send (enc "yolo" n a (privk a))))
-    (uniq-gen (privk a))))
-
-(defskeleton yolo
-  (vars (n n-0 n-1 text) (a name))
-  (defstrand init 2 (n n) (a a))
-  (defstrand resp 2 (n n-0) (a a))
-  (defstrand resp 2 (n n-1) (a a))
-  (uniq-gen (privk a) (privk a))
-  (traces ((send n) (recv (enc "yolo" n a (privk a))))
-    ((recv n-0) (send (enc "yolo" n-0 a (privk a))))
-    ((recv n-1) (send (enc "yolo" n-1 a (privk a)))))
-  (label 3)
-  (unrealized (0 1))
-  (origs)
-  (comment "Input cannot be made into a skeleton--nothing to do"))
